@open-draw/canvas 0.1.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/README.md +1 -1
  2. package/dist/a11y.d.ts +13 -0
  3. package/dist/a11y.d.ts.map +1 -0
  4. package/dist/a11y.js +44 -0
  5. package/dist/a11y.js.map +1 -0
  6. package/dist/capabilities/text-editing/manager.d.ts.map +1 -1
  7. package/dist/capabilities/text-editing/manager.js +21 -3
  8. package/dist/capabilities/text-editing/manager.js.map +1 -1
  9. package/dist/editor.d.ts +1 -1
  10. package/dist/editor.d.ts.map +1 -1
  11. package/dist/editor.js +5 -5
  12. package/dist/editor.js.map +1 -1
  13. package/dist/interaction/creation.d.ts +16 -0
  14. package/dist/interaction/creation.d.ts.map +1 -0
  15. package/dist/interaction/creation.js +85 -0
  16. package/dist/interaction/creation.js.map +1 -0
  17. package/dist/interaction/ink.d.ts +14 -0
  18. package/dist/interaction/ink.d.ts.map +1 -0
  19. package/dist/interaction/ink.js +60 -0
  20. package/dist/interaction/ink.js.map +1 -0
  21. package/dist/interaction.d.ts +4 -5
  22. package/dist/interaction.d.ts.map +1 -1
  23. package/dist/interaction.js +34 -89
  24. package/dist/interaction.js.map +1 -1
  25. package/dist/renderer.d.ts.map +1 -1
  26. package/dist/renderer.js +10 -5
  27. package/dist/renderer.js.map +1 -1
  28. package/dist/selection/handlesView.d.ts.map +1 -1
  29. package/dist/selection/handlesView.js +4 -0
  30. package/dist/selection/handlesView.js.map +1 -1
  31. package/dist/selection/manager.d.ts.map +1 -1
  32. package/dist/selection/manager.js +4 -0
  33. package/dist/selection/manager.js.map +1 -1
  34. package/dist/selection/marquee.d.ts.map +1 -1
  35. package/dist/selection/marquee.js +6 -0
  36. package/dist/selection/marquee.js.map +1 -1
  37. package/dist/shapes/arrow/defs.d.ts.map +1 -1
  38. package/dist/shapes/arrow/defs.js +0 -2
  39. package/dist/shapes/arrow/defs.js.map +1 -1
  40. package/dist/shapes/arrow/geometry.d.ts.map +1 -1
  41. package/dist/shapes/arrow/geometry.js +6 -2
  42. package/dist/shapes/arrow/geometry.js.map +1 -1
  43. package/dist/shapes/note/geometry.d.ts.map +1 -1
  44. package/dist/shapes/note/geometry.js +7 -5
  45. package/dist/shapes/note/geometry.js.map +1 -1
  46. package/dist/shapes/text/defs.d.ts +1 -0
  47. package/dist/shapes/text/defs.d.ts.map +1 -1
  48. package/dist/shapes/text/geometry.d.ts.map +1 -1
  49. package/dist/shapes/text/geometry.js +11 -5
  50. package/dist/shapes/text/geometry.js.map +1 -1
  51. package/dist/shapes/text/render.d.ts.map +1 -1
  52. package/dist/shapes/text/render.js +9 -0
  53. package/dist/shapes/text/render.js.map +1 -1
  54. package/dist/store/history.d.ts +14 -0
  55. package/dist/store/history.d.ts.map +1 -0
  56. package/dist/store/history.js +40 -0
  57. package/dist/store/history.js.map +1 -0
  58. package/dist/store/parenting.d.ts +27 -0
  59. package/dist/store/parenting.d.ts.map +1 -0
  60. package/dist/store/parenting.js +98 -0
  61. package/dist/store/parenting.js.map +1 -0
  62. package/dist/store/store.d.ts +6 -3
  63. package/dist/store/store.d.ts.map +1 -1
  64. package/dist/store/store.js +41 -40
  65. package/dist/store/store.js.map +1 -1
  66. package/package.json +2 -2
package/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # @open-draw/canvas
2
2
 
3
3
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
4
- [![npm version](https://img.shields.io/badge/npm-0.1.0-green.svg)](https://www.npmjs.com/package/@open-draw/canvas)
4
+ [![npm version](https://img.shields.io/badge/npm-0.4.0-green.svg)](https://www.npmjs.com/package/@open-draw/canvas)
5
5
 
6
6
  > DOM Canvas engine — an infinite canvas where every shape is a real SVG element.
7
7
 
package/dist/a11y.d.ts ADDED
@@ -0,0 +1,13 @@
1
+ import type { ShapeRecord } from '@open-draw/schema';
2
+ import type { ShapeDefinition } from './registry.js';
3
+ /**
4
+ * Computes semantic role and accessible label for SVG shape wrappers.
5
+ * Containers (shapes with clipping or group capability) receive 'group' to prevent nested-interactive violations.
6
+ * Shapes with visible text (props.text, props.label, or text capability) include visible text in accessible name (WCAG 2.5.3).
7
+ */
8
+ export declare function computeShapeAria(shape: ShapeRecord, def?: ShapeDefinition): {
9
+ role: string;
10
+ ariaLabel: string;
11
+ };
12
+ export declare const A11Y_FOCUS_STYLES = "\n .od-canvas-root:focus-visible { outline: 2px solid #3b82f6; outline-offset: -2px; }\n .od-shape:focus-visible:not(.od-selected):not(:has(.od-selection-frame)) { outline: 2px solid #3b82f6; outline-offset: 2px; }\n .od-shape.od-selected,\n .od-shape:has(.od-selection-frame),\n .od-shape:has(.od-selection-outline) { outline: none !important; }\n";
13
+ //# sourceMappingURL=a11y.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a11y.d.ts","sourceRoot":"","sources":["../src/a11y.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,WAAW,EAClB,GAAG,CAAC,EAAE,eAAe,GACpB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CA8BrC;AAED,eAAO,MAAM,iBAAiB,sWAM7B,CAAC"}
package/dist/a11y.js ADDED
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Computes semantic role and accessible label for SVG shape wrappers.
3
+ * Containers (shapes with clipping or group capability) receive 'group' to prevent nested-interactive violations.
4
+ * Shapes with visible text (props.text, props.label, or text capability) include visible text in accessible name (WCAG 2.5.3).
5
+ */
6
+ export function computeShapeAria(shape, def) {
7
+ const isContainer = Boolean(def?.capabilities?.clipping || def?.capabilities?.group);
8
+ const role = isContainer ? 'group' : 'button';
9
+ let visibleText = '';
10
+ if (def?.capabilities?.text?.canEditText(shape)) {
11
+ visibleText = def.capabilities.text.getText(shape).trim();
12
+ }
13
+ else if (typeof shape.props['text'] === 'string' && shape.props['text'].trim()) {
14
+ visibleText = shape.props['text'].trim();
15
+ }
16
+ else if (typeof shape.props['label'] === 'string' && shape.props['label'].trim()) {
17
+ visibleText = shape.props['label'].trim();
18
+ }
19
+ const metaName = typeof shape.meta['name'] === 'string' && shape.meta['name'].trim()
20
+ ? shape.meta['name'].trim()
21
+ : '';
22
+ let ariaLabel;
23
+ if (visibleText && metaName) {
24
+ ariaLabel = `${visibleText} (${shape.type} ${metaName})`;
25
+ }
26
+ else if (visibleText) {
27
+ ariaLabel = `${visibleText} (${shape.type})`;
28
+ }
29
+ else if (metaName) {
30
+ ariaLabel = `${shape.type} ${metaName}`;
31
+ }
32
+ else {
33
+ ariaLabel = shape.type;
34
+ }
35
+ return { role, ariaLabel };
36
+ }
37
+ export const A11Y_FOCUS_STYLES = `
38
+ .od-canvas-root:focus-visible { outline: 2px solid #3b82f6; outline-offset: -2px; }
39
+ .od-shape:focus-visible:not(.od-selected):not(:has(.od-selection-frame)) { outline: 2px solid #3b82f6; outline-offset: 2px; }
40
+ .od-shape.od-selected,
41
+ .od-shape:has(.od-selection-frame),
42
+ .od-shape:has(.od-selection-outline) { outline: none !important; }
43
+ `;
44
+ //# sourceMappingURL=a11y.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a11y.js","sourceRoot":"","sources":["../src/a11y.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAAkB,EAClB,GAAqB;IAErB,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,YAAY,EAAE,QAAQ,IAAI,GAAG,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;IACrF,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;IAE9C,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,IAAI,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QAChD,WAAW,GAAG,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5D,CAAC;SAAM,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QACjF,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3C,CAAC;SAAM,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QACnF,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5C,CAAC;IAED,MAAM,QAAQ,GACZ,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE;QACjE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE;QAC3B,CAAC,CAAC,EAAE,CAAC;IAET,IAAI,SAAiB,CAAC;IACtB,IAAI,WAAW,IAAI,QAAQ,EAAE,CAAC;QAC5B,SAAS,GAAG,GAAG,WAAW,KAAK,KAAK,CAAC,IAAI,IAAI,QAAQ,GAAG,CAAC;IAC3D,CAAC;SAAM,IAAI,WAAW,EAAE,CAAC;QACvB,SAAS,GAAG,GAAG,WAAW,KAAK,KAAK,CAAC,IAAI,GAAG,CAAC;IAC/C,CAAC;SAAM,IAAI,QAAQ,EAAE,CAAC;QACpB,SAAS,GAAG,GAAG,KAAK,CAAC,IAAI,IAAI,QAAQ,EAAE,CAAC;IAC1C,CAAC;SAAM,CAAC;QACN,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC;IACzB,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AAC7B,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;CAMhC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/capabilities/text-editing/manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAe,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,aAAa,CAAwB;IAC7C,OAAO,CAAC,aAAa,CAAwC;IAC7D,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,YAAY,CAAS;IAE7B,SAAS,IAAI,OAAO,CAEnB;IAED,gBAAgB,IAAI,OAAO,GAAG,IAAI,CAEjC;IAED,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CA+D5D;IAED,MAAM,IAAI,IAAI,CAkCb;IAED,MAAM,IAAI,IAAI,CAKb;IAED,OAAO,CAAC,SAAS,CAMf;IAEF,OAAO,CAAC,MAAM,CAEZ;IAEF,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,UAAU;CAOnB"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/capabilities/text-editing/manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAe,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGpD,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,aAAa,CAAwB;IAC7C,OAAO,CAAC,aAAa,CAAwC;IAC7D,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,YAAY,CAAS;IAE7B,SAAS,IAAI,OAAO,CAEnB;IAED,gBAAgB,IAAI,OAAO,GAAG,IAAI,CAEjC;IAED,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAsE5D;IAED,MAAM,IAAI,IAAI,CAkCb;IAED,MAAM,IAAI,IAAI,CAMb;IAED,OAAO,CAAC,SAAS,CAMf;IAEF,OAAO,CAAC,MAAM,CAEZ;IAEF,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,UAAU;CAiBnB"}
@@ -1,3 +1,4 @@
1
+ import { computeShapeAria } from '../../a11y.js';
1
2
  export class TextEditingManager {
2
3
  activeShapeId = null;
3
4
  foreignObject = null;
@@ -28,6 +29,11 @@ export class TextEditingManager {
28
29
  this.activeShapeId = shapeId;
29
30
  this.currentEditor = editor;
30
31
  editor.mode = 'editing';
32
+ const wrapper = editor.renderer.getShapeWrapper(shapeId);
33
+ if (wrapper) {
34
+ wrapper.setAttribute('role', 'group');
35
+ wrapper.setAttribute('tabindex', '-1');
36
+ }
31
37
  const textCap = def.capabilities.text;
32
38
  this.initialText = textCap.getText(shape);
33
39
  const bounds = def.geometry.bounds(shape);
@@ -40,6 +46,7 @@ export class TextEditingManager {
40
46
  fo.style.pointerEvents = 'auto';
41
47
  const textarea = document.createElement('textarea');
42
48
  textarea.className = 'od-text-editor';
49
+ textarea.setAttribute('aria-label', 'Edit shape text');
43
50
  textarea.value = this.initialText;
44
51
  textarea.style.width = '100%';
45
52
  textarea.style.height = '100%';
@@ -94,14 +101,15 @@ export class TextEditingManager {
94
101
  editor.store.updateShape(shapeId, patch);
95
102
  });
96
103
  }
97
- this.resetState(editor);
104
+ this.resetState(editor, shapeId);
98
105
  }
99
106
  cancel() {
100
107
  if (!this.activeShapeId || !this.currentEditor)
101
108
  return;
109
+ const shapeId = this.activeShapeId;
102
110
  const editor = this.currentEditor;
103
111
  this.cleanupDOM();
104
- this.resetState(editor);
112
+ this.resetState(editor, shapeId);
105
113
  }
106
114
  onKeyDown = (e) => {
107
115
  if (e.key === 'Escape') {
@@ -124,7 +132,17 @@ export class TextEditingManager {
124
132
  this.foreignObject = null;
125
133
  this.textarea = null;
126
134
  }
127
- resetState(editor) {
135
+ resetState(editor, shapeId) {
136
+ if (shapeId) {
137
+ const wrapper = editor.renderer.getShapeWrapper(shapeId);
138
+ const shape = editor.store.getShape(shapeId);
139
+ if (wrapper && shape) {
140
+ const def = editor.registry.get(shape.type);
141
+ const { role } = computeShapeAria(shape, def);
142
+ wrapper.setAttribute('role', role);
143
+ wrapper.setAttribute('tabindex', '0');
144
+ }
145
+ }
128
146
  this.activeShapeId = null;
129
147
  this.currentEditor = null;
130
148
  this.initialText = '';
@@ -1 +1 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/capabilities/text-editing/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/capabilities/text-editing/manager.ts"],"names":[],"mappings":"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"}
package/dist/editor.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { Camera, Point, ShapeId, ShapeRecord, Snapshot } from '@open-draw/schema';
1
+ import { type Camera, type Point, type ShapeId, type ShapeRecord, type Snapshot } from '@open-draw/schema';
2
2
  import { CameraController, type ZoomOptions } from './camera.js';
3
3
  import { ShapeRegistry, type ShapeDefinition } from './registry.js';
4
4
  import { SVGRenderer } from './renderer.js';
@@ -1 +1 @@
1
- {"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../src/editor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../src/editor.ts"],"names":[],"mappings":"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"}
package/dist/editor.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { generateShapeId } from '@open-draw/schema';
1
2
  import { CameraController } from './camera.js';
2
3
  import { ShapeRegistry } from './registry.js';
3
4
  import { SVGRenderer } from './renderer.js';
@@ -121,6 +122,7 @@ export class CanvasEditor {
121
122
  this.unsubscribeStore();
122
123
  this.unsubscribeStore = null;
123
124
  }
125
+ this.textEditing.cancel();
124
126
  this.renderer.destroy();
125
127
  this.isMounted = false;
126
128
  this.container = null;
@@ -155,11 +157,9 @@ export class CanvasEditor {
155
157
  bringForward(ids) { this.store.reorderShapes('forward', ids ?? this.selection); }
156
158
  sendBackward(ids) { this.store.reorderShapes('backward', ids ?? this.selection); }
157
159
  createShape(record) {
158
- const id = record.id ?? `shape-${Date.now()}-${Math.random().toString(36).substring(2, 7)}`;
159
- return this.store.createShape({
160
- ...record,
161
- id,
162
- });
160
+ const id = record.id ?? generateShapeId(this.store.listShapes().map((s) => s.id));
161
+ const defaults = this.registry.get(record.type)?.defaultProps() ?? {};
162
+ return this.store.createShape({ ...record, id, props: { ...defaults, ...record.props } });
163
163
  }
164
164
  updateShape(id, patch) {
165
165
  return this.store.updateShape(id, patch);
@@ -1 +1 @@
1
- {"version":3,"file":"editor.js","sourceRoot":"","sources":["../src/editor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAoB,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,aAAa,EAAwB,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACvF,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,4BAA4B,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAmB,MAAM,sCAAsC,CAAC;AAC3F,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAmB,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAyB,MAAM,mBAAmB,CAAC;AAOrE;;;GAGG;AACH,MAAM,OAAO,YAAY;IACd,KAAK,CAAc;IACnB,MAAM,CAAmB;IACzB,OAAO,CAAsB;IAC7B,QAAQ,CAAgB;IACxB,QAAQ,CAAc;IACtB,WAAW,CAA+B;IAC1C,WAAW,CAAqB;IAChC,QAAQ,CAAkB;IAC1B,SAAS,CAAmB;IAC5B,gBAAgB,CAAmB;IACnC,QAAQ,CAAqB;IAC7B,OAAO,CAAoB;IAC3B,SAAS,CAAiB;IAEnC,IAAI,GAAe,MAAM,CAAC;IAElB,SAAS,GAAG,KAAK,CAAC;IAClB,SAAS,GAAuB,IAAI,CAAC;IACrC,iBAAiB,GAAwB,IAAI,CAAC;IAC9C,gBAAgB,GAAwB,IAAI,CAAC;IAC7C,mBAAmB,GAAwB,IAAI,CAAC;IAEhD,UAAU,GAAW,QAAQ,CAAC;IAEtC,YAAY,OAAO,GAAwB,EAAE;QAC3C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAC;QACpC,IAAI,CAAC,QAAQ,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,SAAS,GAAG,IAAI,cAAc,EAAE,CAAC;QACtC,IAAI,CAAC,WAAW,GAAG,IAAI,4BAA4B,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,CAAC,WAAW,GAAG,IAAI,kBAAkB,EAAE,CAAC;QAC5C,IAAI,CAAC,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;QACtC,IAAI,CAAC,SAAS,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACxC,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,CAAC;QAC/C,IAAI,CAAC,QAAQ,GAAG,IAAI,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAE7D,MAAM,QAAQ,GAAoC;YAChD,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,eAAe;YAClE,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,aAAa;YAC/D,qBAAqB,EAAE,eAAe;SACvC,CAAC;QACF,KAAK,MAAM,GAAG,IAAI,QAAQ;YAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACtD,CAAC;IAED,aAAa,CAA8B,UAA8B;QACvE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,SAAsB;QAC1B,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO;QAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;QAEjD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;YACrD,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YAChC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACrF,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YACjD,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC;gBAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YAClF,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACrC,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;gBAC3D,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC1D,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YACxF,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1C,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;YAClD,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBAC1B,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACpG,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,GAAG,EAAE;YACnC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpG,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACnC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7B,SAAS,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACxD,IAAI,CAAC,mBAAmB,GAAG,2BAA2B,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO;QACL,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAClE,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;QAC1B,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC7B,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAClC,CAAC;QACD,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAChC,CAAC;QACD,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC/B,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,OAAO,CAAC,MAAc;QACpB,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;IAC3B,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,IAAI,SAAS,KAAyB,OAAO,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/E,YAAY,KAAyB,OAAO,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9E,YAAY,CAAC,GAAuB,IAAU,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACxF,WAAW,CAAC,OAAuB,IAAU,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IAC9G,kBAAkB;QAChB,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3B,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACtD,CAAC;IACD,eAAe,CAAC,OAAgB,IAAU,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAClF,cAAc,CAAC,GAAuB,IAAU,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACjF,cAAc,KAAW,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACzD,SAAS,KAAW,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/E,UAAU,CAAC,EAAW,IAAa,OAAO,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACjF,cAAc,CAAC,SAAS,GAA2B,SAAS;QAC1D,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,CAAC,CAAC;IACxE,CAAC;IAED,YAAY,CAAC,GAAwB,IAAU,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC1G,UAAU,CAAC,GAAwB,IAAU,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACvG,YAAY,CAAC,GAAwB,IAAU,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,EAAE,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC5G,YAAY,CAAC,GAAwB,IAAU,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAE7G,WAAW,CAAC,MASX;QACC,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,IAAI,SAAS,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAC5F,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;YAC5B,GAAG,MAAM;YACT,EAAE;SACH,CAAC,CAAC;IACL,CAAC;IAED,WAAW,CACT,EAAW,EACX,KAAgD;QAEhD,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAC3C,CAAC;IAED,WAAW,CAAC,EAAW;QACrB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACnC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,UAAU;YAAE,OAAO,KAAK,CAAC;QAE9B,IAAI,GAAG,GAAG,KAAK,CAAC;QAChB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE;YACvB,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACnD,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC/E,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC;IACb,CAAC;IAED,QAAQ,CAAC,EAAW;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IAC9B,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IAC9B,CAAC;IAED,YAAY;QACV,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;IAC5B,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,YAAY,CAAC,QAAkB;QAC7B,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAClC,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,WAAW;QACT,OAAO;YACL,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;YAC3B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;SAC3B,CAAC;IACJ,CAAC;IAED,GAAG,CAAC,EAAU,EAAE,EAAU;QACxB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,eAAe,CAAC,WAAkB,EAAE,MAAc,EAAE,OAAqB;QACvE,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACnE,CAAC;IAED,SAAS,CAAC,MAAc;QACtB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,cAAc,CAAC,EAAW;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,eAAe,CAAC,EAAW;QACzB,OAAO,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAA0B;QACxC,OAAO,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAClC,CAAC;IAEO,UAAU,GAAG,CAAC,CAAa,EAAQ,EAAE;QAC3C,MAAM,MAAM,GAAG,CAAC,CAAC,MAAwB,CAAC;QAC1C,MAAM,YAAY,GAAG,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,YAAY,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;QACtD,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC,CAAC;CACH"}
1
+ {"version":3,"file":"editor.js","sourceRoot":"","sources":["../src/editor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAA0E,MAAM,mBAAmB,CAAC;AAC5H,OAAO,EAAE,gBAAgB,EAAoB,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,aAAa,EAAwB,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACvF,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,4BAA4B,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAmB,MAAM,sCAAsC,CAAC;AAC3F,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAmB,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAyB,MAAM,mBAAmB,CAAC;AAOrE;;;GAGG;AACH,MAAM,OAAO,YAAY;IACd,KAAK,CAAc;IACnB,MAAM,CAAmB;IACzB,OAAO,CAAsB;IAC7B,QAAQ,CAAgB;IACxB,QAAQ,CAAc;IACtB,WAAW,CAA+B;IAC1C,WAAW,CAAqB;IAChC,QAAQ,CAAkB;IAC1B,SAAS,CAAmB;IAC5B,gBAAgB,CAAmB;IACnC,QAAQ,CAAqB;IAC7B,OAAO,CAAoB;IAC3B,SAAS,CAAiB;IAEnC,IAAI,GAAe,MAAM,CAAC;IAElB,SAAS,GAAG,KAAK,CAAC;IAClB,SAAS,GAAuB,IAAI,CAAC;IACrC,iBAAiB,GAAwB,IAAI,CAAC;IAC9C,gBAAgB,GAAwB,IAAI,CAAC;IAC7C,mBAAmB,GAAwB,IAAI,CAAC;IAEhD,UAAU,GAAW,QAAQ,CAAC;IAEtC,YAAY,OAAO,GAAwB,EAAE;QAC3C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAC;QACpC,IAAI,CAAC,QAAQ,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,SAAS,GAAG,IAAI,cAAc,EAAE,CAAC;QACtC,IAAI,CAAC,WAAW,GAAG,IAAI,4BAA4B,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,CAAC,WAAW,GAAG,IAAI,kBAAkB,EAAE,CAAC;QAC5C,IAAI,CAAC,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;QACtC,IAAI,CAAC,SAAS,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACxC,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,CAAC;QAC/C,IAAI,CAAC,QAAQ,GAAG,IAAI,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAE7D,MAAM,QAAQ,GAAoC;YAChD,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,eAAe;YAClE,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,aAAa;YAC/D,qBAAqB,EAAE,eAAe;SACvC,CAAC;QACF,KAAK,MAAM,GAAG,IAAI,QAAQ;YAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACtD,CAAC;IAED,aAAa,CAA8B,UAA8B;QACvE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,SAAsB;QAC1B,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO;QAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;QAEjD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;YACrD,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YAChC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACrF,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YACjD,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC;gBAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YAClF,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACrC,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;gBAC3D,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC1D,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YACxF,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1C,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;YAClD,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBAC1B,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACpG,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,GAAG,EAAE;YACnC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpG,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACnC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7B,SAAS,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACxD,IAAI,CAAC,mBAAmB,GAAG,2BAA2B,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO;QACL,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAClE,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;QAC1B,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC7B,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAClC,CAAC;QACD,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAChC,CAAC;QACD,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC/B,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;QAC1B,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,OAAO,CAAC,MAAc;QACpB,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;IAC3B,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,IAAI,SAAS,KAAyB,OAAO,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/E,YAAY,KAAyB,OAAO,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9E,YAAY,CAAC,GAAuB,IAAU,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACxF,WAAW,CAAC,OAAuB,IAAU,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IAC9G,kBAAkB;QAChB,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3B,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACtD,CAAC;IACD,eAAe,CAAC,OAAgB,IAAU,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAClF,cAAc,CAAC,GAAuB,IAAU,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACjF,cAAc,KAAW,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACzD,SAAS,KAAW,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/E,UAAU,CAAC,EAAW,IAAa,OAAO,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACjF,cAAc,CAAC,SAAS,GAA2B,SAAS;QAC1D,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,CAAC,CAAC;IACxE,CAAC;IAED,YAAY,CAAC,GAAwB,IAAU,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC1G,UAAU,CAAC,GAAwB,IAAU,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACvG,YAAY,CAAC,GAAwB,IAAU,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,EAAE,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC5G,YAAY,CAAC,GAAwB,IAAU,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAE7G,WAAW,CAAC,MASX;QACC,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAClF,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;QACtE,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,GAAG,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,QAAQ,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED,WAAW,CACT,EAAW,EACX,KAAgD;QAEhD,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAC3C,CAAC;IAED,WAAW,CAAC,EAAW;QACrB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACnC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,UAAU;YAAE,OAAO,KAAK,CAAC;QAE9B,IAAI,GAAG,GAAG,KAAK,CAAC;QAChB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE;YACvB,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACnD,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC/E,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC;IACb,CAAC;IAED,QAAQ,CAAC,EAAW;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IAC9B,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IAC9B,CAAC;IAED,YAAY;QACV,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;IAC5B,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,YAAY,CAAC,QAAkB;QAC7B,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAClC,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,WAAW;QACT,OAAO;YACL,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;YAC3B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;SAC3B,CAAC;IACJ,CAAC;IAED,GAAG,CAAC,EAAU,EAAE,EAAU;QACxB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,eAAe,CAAC,WAAkB,EAAE,MAAc,EAAE,OAAqB;QACvE,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACnE,CAAC;IAED,SAAS,CAAC,MAAc;QACtB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,cAAc,CAAC,EAAW;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,eAAe,CAAC,EAAW;QACzB,OAAO,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAA0B;QACxC,OAAO,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAClC,CAAC;IAEO,UAAU,GAAG,CAAC,CAAa,EAAQ,EAAE;QAC3C,MAAM,MAAM,GAAG,CAAC,CAAC,MAAwB,CAAC;QAC1C,MAAM,YAAY,GAAG,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,YAAY,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;QACtD,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC,CAAC;CACH"}
@@ -0,0 +1,16 @@
1
+ import { type Point } from '@open-draw/schema';
2
+ import type { CanvasEditor } from '../editor.js';
3
+ export declare class ShapeCreationController {
4
+ private editor;
5
+ private isCreating;
6
+ private startPt;
7
+ private tool;
8
+ private createdId;
9
+ private didDrag;
10
+ constructor(editor: CanvasEditor);
11
+ get isActive(): boolean;
12
+ start(tool: string, pagePt: Point): void;
13
+ move(pagePt: Point, shiftKey: boolean): void;
14
+ end(): void;
15
+ }
16
+ //# sourceMappingURL=creation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"creation.d.ts","sourceRoot":"","sources":["../../src/interaction/creation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,KAAK,EAAgB,MAAM,mBAAmB,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAIjD,qBAAa,uBAAuB;IAClC,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,IAAI,CAAuB;IACnC,OAAO,CAAC,SAAS,CAAwB;IACzC,OAAO,CAAC,OAAO,CAAS;IAExB,YAAY,MAAM,EAAE,YAAY,EAE/B;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,GAAG,IAAI,CAOvC;IAED,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI,CAmC3C;IAED,GAAG,IAAI,IAAI,CA6BV;CACF"}
@@ -0,0 +1,85 @@
1
+ import { boundsOf } from '@open-draw/schema';
2
+ import { findSuggestedParent } from '../capabilities/clipping/index.js';
3
+ import { computeMarqueeBounds } from '../selection/marquee.js';
4
+ export class ShapeCreationController {
5
+ editor;
6
+ isCreating = false;
7
+ startPt = null;
8
+ tool = null;
9
+ createdId = null;
10
+ didDrag = false;
11
+ constructor(editor) {
12
+ this.editor = editor;
13
+ }
14
+ get isActive() {
15
+ return this.isCreating;
16
+ }
17
+ start(tool, pagePt) {
18
+ if (!this.editor.registry.has(tool))
19
+ return;
20
+ this.isCreating = true;
21
+ this.startPt = pagePt;
22
+ this.tool = tool;
23
+ this.createdId = null;
24
+ this.didDrag = false;
25
+ }
26
+ move(pagePt, shiftKey) {
27
+ if (!this.isCreating || !this.startPt || !this.tool)
28
+ return;
29
+ const dist = Math.hypot(pagePt.x - this.startPt.x, pagePt.y - this.startPt.y);
30
+ if (dist <= 3)
31
+ return;
32
+ const def = this.editor.registry.get(this.tool);
33
+ if (!def)
34
+ return;
35
+ if (!this.createdId) {
36
+ const s = this.editor.createShape({
37
+ type: this.tool,
38
+ x: this.startPt.x,
39
+ y: this.startPt.y,
40
+ props: def.defaultProps(),
41
+ });
42
+ this.createdId = s.id;
43
+ this.editor.selectShape(s.id);
44
+ }
45
+ this.didDrag = true;
46
+ let box = computeMarqueeBounds(this.startPt, pagePt);
47
+ if (shiftKey) {
48
+ const size = Math.max(box.width, box.height);
49
+ const x = pagePt.x < this.startPt.x ? this.startPt.x - size : this.startPt.x;
50
+ const y = pagePt.y < this.startPt.y ? this.startPt.y - size : this.startPt.y;
51
+ box = boundsOf(x, y, size, size);
52
+ }
53
+ const shape = this.editor.store.getShape(this.createdId);
54
+ if (shape) {
55
+ const patch = def.geometry.resize(shape, box, pagePt);
56
+ this.editor.store.updateShape(this.createdId, patch);
57
+ this.editor.store.mergeLastHistoryEntry();
58
+ }
59
+ }
60
+ end() {
61
+ if (!this.isCreating)
62
+ return;
63
+ if (this.createdId && this.tool && this.didDrag) {
64
+ const shape = this.editor.store.getShape(this.createdId);
65
+ const def = this.editor.registry.get(this.tool);
66
+ if (shape && def) {
67
+ const bounds = def.geometry.bounds(shape);
68
+ const suggested = findSuggestedParent(bounds, this.editor.store.listShapes(), this.editor.registry, shape.id);
69
+ if (suggested) {
70
+ this.editor.store.updateShape(shape.id, {
71
+ meta: { ...shape.meta, parent: suggested.id },
72
+ });
73
+ this.editor.store.mergeLastHistoryEntry();
74
+ }
75
+ }
76
+ }
77
+ this.isCreating = false;
78
+ this.startPt = null;
79
+ this.tool = null;
80
+ this.createdId = null;
81
+ this.didDrag = false;
82
+ this.editor.setTool('select');
83
+ }
84
+ }
85
+ //# sourceMappingURL=creation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"creation.js","sourceRoot":"","sources":["../../src/interaction/creation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { Point } from '@open-draw/schema';
2
+ import type { CanvasEditor } from '../editor.js';
3
+ export declare class FreehandDrawController {
4
+ private editor;
5
+ private isDrawing;
6
+ private currentShapeId;
7
+ private pts;
8
+ constructor(editor: CanvasEditor);
9
+ get isActive(): boolean;
10
+ start(tool: string, pagePt: Point): void;
11
+ move(pagePt: Point): void;
12
+ end(): void;
13
+ }
14
+ //# sourceMappingURL=ink.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ink.d.ts","sourceRoot":"","sources":["../../src/interaction/ink.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAW,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGjD,qBAAa,sBAAsB;IACjC,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,GAAG,CAAgB;IAE3B,YAAY,MAAM,EAAE,YAAY,EAE/B;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,GAAG,IAAI,CAevC;IAED,IAAI,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,CAWxB;IAED,GAAG,IAAI,IAAI,CAkBV;CACF"}
@@ -0,0 +1,60 @@
1
+ import { simplifyRDP } from '../shapes/ink/index.js';
2
+ export class FreehandDrawController {
3
+ editor;
4
+ isDrawing = false;
5
+ currentShapeId = null;
6
+ pts = [];
7
+ constructor(editor) {
8
+ this.editor = editor;
9
+ }
10
+ get isActive() {
11
+ return this.isDrawing;
12
+ }
13
+ start(tool, pagePt) {
14
+ const shapeType = tool === 'highlighter' ? 'highlighter' : 'ink';
15
+ const def = this.editor.registry.get(shapeType);
16
+ if (!def)
17
+ return;
18
+ this.isDrawing = true;
19
+ this.pts = [pagePt.x, pagePt.y];
20
+ const shape = this.editor.createShape({
21
+ type: shapeType,
22
+ x: pagePt.x,
23
+ y: pagePt.y,
24
+ props: { ...def.defaultProps(), pts: [pagePt.x, pagePt.y] },
25
+ });
26
+ this.currentShapeId = shape.id;
27
+ this.editor.selectShape(shape.id);
28
+ }
29
+ move(pagePt) {
30
+ if (!this.isDrawing || !this.currentShapeId)
31
+ return;
32
+ this.pts.push(pagePt.x, pagePt.y);
33
+ const shape = this.editor.store.getShape(this.currentShapeId);
34
+ if (shape) {
35
+ this.editor.store.updateShape(this.currentShapeId, {
36
+ props: { ...shape.props, pts: [...this.pts] },
37
+ });
38
+ this.editor.store.mergeLastHistoryEntry();
39
+ }
40
+ }
41
+ end() {
42
+ if (!this.isDrawing)
43
+ return;
44
+ if (this.currentShapeId) {
45
+ const simplified = simplifyRDP(this.pts, 1.5);
46
+ const shape = this.editor.store.getShape(this.currentShapeId);
47
+ if (shape) {
48
+ this.editor.store.updateShape(this.currentShapeId, {
49
+ props: { ...shape.props, pts: simplified },
50
+ });
51
+ this.editor.store.mergeLastHistoryEntry();
52
+ }
53
+ }
54
+ this.isDrawing = false;
55
+ this.currentShapeId = null;
56
+ this.pts = [];
57
+ this.editor.setTool('select');
58
+ }
59
+ }
60
+ //# sourceMappingURL=ink.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ink.js","sourceRoot":"","sources":["../../src/interaction/ink.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,MAAM,OAAO,sBAAsB;IACzB,MAAM,CAAe;IACrB,SAAS,GAAG,KAAK,CAAC;IAClB,cAAc,GAAmB,IAAI,CAAC;IACtC,GAAG,GAAa,EAAE,CAAC;IAE3B,YAAY,MAAoB;QAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,IAAY,EAAE,MAAa;QAC/B,MAAM,SAAS,GAAG,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC;QACjE,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAChD,IAAI,CAAC,GAAG;YAAE,OAAO;QAEjB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;YACpC,IAAI,EAAE,SAAS;YACf,CAAC,EAAE,MAAM,CAAC,CAAC;YACX,CAAC,EAAE,MAAM,CAAC,CAAC;YACX,KAAK,EAAE,EAAE,GAAG,GAAG,CAAC,YAAY,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE;SAC5D,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,EAAE,CAAC;QAC/B,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,CAAC,MAAa;QAChB,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,OAAO;QAEpD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC9D,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,EAAE;gBACjD,KAAK,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE;aAC9C,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,GAAG;QACD,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO;QAE5B,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC9D,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,EAAE;oBACjD,KAAK,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE;iBAC3C,CAAC,CAAC;gBACH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC;YAC5C,CAAC;QACH,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;CACF"}
@@ -1,8 +1,12 @@
1
1
  import type { CanvasEditor } from './editor.js';
2
+ export { ShapeCreationController } from './interaction/creation.js';
3
+ export { FreehandDrawController } from './interaction/ink.js';
2
4
  export declare class PointerInteractionController {
3
5
  private editor;
4
6
  private container;
5
7
  private eraser;
8
+ private creation;
9
+ private freehand;
6
10
  private clickedShapeId;
7
11
  private lastPointerDownShift;
8
12
  private cachedContainerRect;
@@ -13,16 +17,11 @@ export declare class PointerInteractionController {
13
17
  private isShiftMarquee;
14
18
  private initialSelectionBeforeMarquee;
15
19
  private marqueeOverlay;
16
- private isDrawing;
17
- private currentInkShapeId;
18
- private currentInkPts;
19
20
  constructor(editor: CanvasEditor);
20
21
  attach(container: HTMLElement): void;
21
22
  detach(): void;
22
23
  private onPointerDown;
23
24
  private onSelectPointerDown;
24
- private onInkPointerDown;
25
- private onShapeCreatePointerDown;
26
25
  private onPointerMove;
27
26
  private onPointerUp;
28
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"interaction.d.ts","sourceRoot":"","sources":["../src/interaction.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAShD,qBAAa,4BAA4B;IACvC,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,MAAM,CAAyB;IAEvC,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,mBAAmB,CAA8C;IACzE,OAAO,CAAC,kBAAkB,CAAuD;IACjF,OAAO,CAAC,SAAS,CAAuB;IAExC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,6BAA6B,CAA0B;IAC/D,OAAO,CAAC,cAAc,CAAwB;IAE9C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,iBAAiB,CAAwB;IACjD,OAAO,CAAC,aAAa,CAAgB;IAErC,YAAY,MAAM,EAAE,YAAY,EAG/B;IAED,MAAM,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI,CAKnC;IAED,MAAM,IAAI,IAAI,CAcb;IAED,OAAO,CAAC,aAAa,CAoBnB;IAEF,OAAO,CAAC,mBAAmB;IAkD3B,OAAO,CAAC,gBAAgB;IAkBxB,OAAO,CAAC,wBAAwB;IAqBhC,OAAO,CAAC,aAAa,CAiDnB;IAEF,OAAO,CAAC,WAAW,CA+CjB;CACH"}
1
+ {"version":3,"file":"interaction.d.ts","sourceRoot":"","sources":["../src/interaction.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAShD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,qBAAa,4BAA4B;IACvC,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,QAAQ,CAA0B;IAC1C,OAAO,CAAC,QAAQ,CAAyB;IAEzC,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,mBAAmB,CAA8C;IACzE,OAAO,CAAC,kBAAkB,CAAuD;IACjF,OAAO,CAAC,SAAS,CAAuB;IAExC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,6BAA6B,CAA0B;IAC/D,OAAO,CAAC,cAAc,CAAwB;IAE9C,YAAY,MAAM,EAAE,YAAY,EAK/B;IAED,MAAM,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI,CAKnC;IAED,MAAM,IAAI,IAAI,CAcb;IAED,OAAO,CAAC,aAAa,CAanB;IAEF,OAAO,CAAC,mBAAmB;IAuC3B,OAAO,CAAC,aAAa,CAgDnB;IAEF,OAAO,CAAC,WAAW,CAyCjB;CACH"}