feat: canvas select