@oh-just-another/state 0.59.0 → 0.60.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 (149) hide show
  1. package/CHANGELOG.md +91 -0
  2. package/README.md +2 -0
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/actions/actionArrange.js +4 -4
  5. package/dist/actions/actionArrange.js.map +1 -1
  6. package/dist/actions/actionClipboard.d.ts.map +1 -1
  7. package/dist/actions/actionClipboard.js +5 -0
  8. package/dist/actions/actionClipboard.js.map +1 -1
  9. package/dist/actions/actionKeyboard.d.ts.map +1 -1
  10. package/dist/actions/actionKeyboard.js +77 -9
  11. package/dist/actions/actionKeyboard.js.map +1 -1
  12. package/dist/actions/actionMode.d.ts +4 -0
  13. package/dist/actions/actionMode.d.ts.map +1 -1
  14. package/dist/actions/actionMode.js +54 -0
  15. package/dist/actions/actionMode.js.map +1 -1
  16. package/dist/actions/actionSelection.d.ts.map +1 -1
  17. package/dist/actions/actionSelection.js +1 -0
  18. package/dist/actions/actionSelection.js.map +1 -1
  19. package/dist/actions/actionView.d.ts +6 -0
  20. package/dist/actions/actionView.d.ts.map +1 -1
  21. package/dist/actions/actionView.js +19 -1
  22. package/dist/actions/actionView.js.map +1 -1
  23. package/dist/actions/actionZoom.d.ts.map +1 -1
  24. package/dist/actions/actionZoom.js +5 -0
  25. package/dist/actions/actionZoom.js.map +1 -1
  26. package/dist/actions/index.d.ts +3 -3
  27. package/dist/actions/index.d.ts.map +1 -1
  28. package/dist/actions/index.js +3 -3
  29. package/dist/actions/index.js.map +1 -1
  30. package/dist/actions/registry.d.ts.map +1 -1
  31. package/dist/actions/registry.js +13 -0
  32. package/dist/actions/registry.js.map +1 -1
  33. package/dist/actions/types.d.ts +9 -0
  34. package/dist/actions/types.d.ts.map +1 -1
  35. package/dist/actions/types.js.map +1 -1
  36. package/dist/clipboard.d.ts +0 -14
  37. package/dist/clipboard.d.ts.map +1 -1
  38. package/dist/clipboard.js +1 -1
  39. package/dist/clipboard.js.map +1 -1
  40. package/dist/constants.d.ts +160 -18
  41. package/dist/constants.d.ts.map +1 -1
  42. package/dist/constants.js +162 -2
  43. package/dist/constants.js.map +1 -1
  44. package/dist/dom-events.d.ts +1 -2
  45. package/dist/dom-events.d.ts.map +1 -1
  46. package/dist/dom-events.js.map +1 -1
  47. package/dist/editor/animation-scene.d.ts +15 -0
  48. package/dist/editor/animation-scene.d.ts.map +1 -1
  49. package/dist/editor/animation-scene.js +123 -0
  50. package/dist/editor/animation-scene.js.map +1 -1
  51. package/dist/editor/applies/create.d.ts +0 -6
  52. package/dist/editor/applies/create.d.ts.map +1 -1
  53. package/dist/editor/applies/create.js +1 -1
  54. package/dist/editor/applies/create.js.map +1 -1
  55. package/dist/editor/applies/link-move.d.ts +0 -8
  56. package/dist/editor/applies/link-move.d.ts.map +1 -1
  57. package/dist/editor/applies/link-move.js +1 -1
  58. package/dist/editor/applies/link-move.js.map +1 -1
  59. package/dist/editor/interaction-state.d.ts +184 -0
  60. package/dist/editor/interaction-state.d.ts.map +1 -0
  61. package/dist/editor/interaction-state.js +139 -0
  62. package/dist/editor/interaction-state.js.map +1 -0
  63. package/dist/editor/link-handle-drag.d.ts +152 -0
  64. package/dist/editor/link-handle-drag.d.ts.map +1 -0
  65. package/dist/editor/link-handle-drag.js +300 -0
  66. package/dist/editor/link-handle-drag.js.map +1 -0
  67. package/dist/editor/pointer-binding.d.ts +9 -11
  68. package/dist/editor/pointer-binding.d.ts.map +1 -1
  69. package/dist/editor/pointer-binding.js +1185 -901
  70. package/dist/editor/pointer-binding.js.map +1 -1
  71. package/dist/editor/public/brush.d.ts +31 -12
  72. package/dist/editor/public/brush.d.ts.map +1 -1
  73. package/dist/editor/public/brush.js +66 -17
  74. package/dist/editor/public/brush.js.map +1 -1
  75. package/dist/editor/public/cursor.d.ts +1 -15
  76. package/dist/editor/public/cursor.d.ts.map +1 -1
  77. package/dist/editor/public/cursor.js +14 -3
  78. package/dist/editor/public/cursor.js.map +1 -1
  79. package/dist/editor/public/eraser.d.ts +55 -0
  80. package/dist/editor/public/eraser.d.ts.map +1 -0
  81. package/dist/editor/public/eraser.js +65 -0
  82. package/dist/editor/public/eraser.js.map +1 -0
  83. package/dist/editor/public/laser.d.ts +38 -0
  84. package/dist/editor/public/laser.d.ts.map +1 -0
  85. package/dist/editor/public/laser.js +42 -0
  86. package/dist/editor/public/laser.js.map +1 -0
  87. package/dist/editor/public/placement.d.ts.map +1 -1
  88. package/dist/editor/public/placement.js +9 -1
  89. package/dist/editor/public/placement.js.map +1 -1
  90. package/dist/editor/public/selection-ops.d.ts +12 -0
  91. package/dist/editor/public/selection-ops.d.ts.map +1 -1
  92. package/dist/editor/public/selection-ops.js +19 -1
  93. package/dist/editor/public/selection-ops.js.map +1 -1
  94. package/dist/editor/public/stroke-eraser-coverage.d.ts +37 -0
  95. package/dist/editor/public/stroke-eraser-coverage.d.ts.map +1 -0
  96. package/dist/editor/public/stroke-eraser-coverage.js +168 -0
  97. package/dist/editor/public/stroke-eraser-coverage.js.map +1 -0
  98. package/dist/editor/public/stroke-eraser.d.ts +50 -0
  99. package/dist/editor/public/stroke-eraser.d.ts.map +1 -0
  100. package/dist/editor/public/stroke-eraser.js +176 -0
  101. package/dist/editor/public/stroke-eraser.js.map +1 -0
  102. package/dist/editor/public/stroke-smoothing.d.ts +21 -0
  103. package/dist/editor/public/stroke-smoothing.d.ts.map +1 -0
  104. package/dist/editor/public/stroke-smoothing.js +37 -0
  105. package/dist/editor/public/stroke-smoothing.js.map +1 -0
  106. package/dist/editor/public/tool-ops.d.ts +130 -0
  107. package/dist/editor/public/tool-ops.d.ts.map +1 -0
  108. package/dist/editor/public/tool-ops.js +392 -0
  109. package/dist/editor/public/tool-ops.js.map +1 -0
  110. package/dist/editor/public/z-order.d.ts +1 -12
  111. package/dist/editor/public/z-order.d.ts.map +1 -1
  112. package/dist/editor/public/z-order.js +1 -1
  113. package/dist/editor/public/z-order.js.map +1 -1
  114. package/dist/editor/public/zoom-pan.d.ts +9 -0
  115. package/dist/editor/public/zoom-pan.d.ts.map +1 -1
  116. package/dist/editor/public/zoom-pan.js +31 -0
  117. package/dist/editor/public/zoom-pan.js.map +1 -1
  118. package/dist/editor/render-orchestrator.d.ts +177 -5
  119. package/dist/editor/render-orchestrator.d.ts.map +1 -1
  120. package/dist/editor/render-orchestrator.js +517 -351
  121. package/dist/editor/render-orchestrator.js.map +1 -1
  122. package/dist/editor/text-edit.d.ts +136 -0
  123. package/dist/editor/text-edit.d.ts.map +1 -0
  124. package/dist/editor/text-edit.js +328 -0
  125. package/dist/editor/text-edit.js.map +1 -0
  126. package/dist/editor.d.ts +504 -239
  127. package/dist/editor.d.ts.map +1 -1
  128. package/dist/editor.js +1557 -706
  129. package/dist/editor.js.map +1 -1
  130. package/dist/handle.d.ts +0 -2
  131. package/dist/handle.d.ts.map +1 -1
  132. package/dist/handle.js +0 -6
  133. package/dist/handle.js.map +1 -1
  134. package/dist/index.d.ts +6 -1
  135. package/dist/index.d.ts.map +1 -1
  136. package/dist/index.js +7 -1
  137. package/dist/index.js.map +1 -1
  138. package/dist/modes.d.ts +15 -1
  139. package/dist/modes.d.ts.map +1 -1
  140. package/dist/modes.js.map +1 -1
  141. package/dist/overlay.d.ts +91 -2
  142. package/dist/overlay.d.ts.map +1 -1
  143. package/dist/overlay.js +450 -93
  144. package/dist/overlay.js.map +1 -1
  145. package/dist/search.d.ts +37 -0
  146. package/dist/search.d.ts.map +1 -0
  147. package/dist/search.js +45 -0
  148. package/dist/search.js.map +1 -0
  149. package/package.json +4 -4
@@ -16,20 +16,6 @@ export interface PasteResult {
16
16
  readonly scene: Scene;
17
17
  readonly newIds: readonly ElementId[];
18
18
  }
19
- /**
20
- * Clone a shape for the clipboard buffer / paste output. Deep-clones the
21
- * plain data (so later edits don't bleed into the buffer) but carries
22
- * live runtime handles by reference instead of cloning them:
23
- *
24
- * - `metadata.image` — a decoded `HTMLImageElement`; `structuredClone`
25
- * throws `DataCloneError` on DOM nodes.
26
- * - `animationData` — the raw GIF/video buffer; large and re-derivable
27
- * from `fileId`, so sharing the reference avoids copying megabytes.
28
- *
29
- * The live `<img>` / buffer is shared, so the pasted shape draws
30
- * immediately (same as the original) and still references its `fileId`.
31
- */
32
- export declare const cloneElementForClipboard: (shape: Element) => Element;
33
19
  /**
34
20
  * Snapshot every selected shape into a fresh array. Uses
35
21
  * {@link cloneElementForClipboard} so live runtime handles (decoded
@@ -1 +1 @@
1
- {"version":3,"file":"clipboard.d.ts","sourceRoot":"","sources":["../src/clipboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAML,KAAK,KAAK,EACV,KAAK,OAAO,EACb,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,CAAC;CACvC;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,wBAAwB,GAAI,OAAO,OAAO,KAAG,OAsBzD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,KAAK,EAAE,WAAW,QAAQ,CAAC,SAAS,CAAC,KAAG,OAAO,EAOlF,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,GACxB,OAAO,KAAK,EACZ,SAAS,eAAe,EACxB,WAAW,SAAS,OAAO,EAAE,EAC7B,QAAQ,IAAI,GAAG,IAAI,EACnB,OAAO,MAAM,SAAS,KACrB,WA0CF,CAAC"}
1
+ {"version":3,"file":"clipboard.d.ts","sourceRoot":"","sources":["../src/clipboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAML,KAAK,KAAK,EACV,KAAK,OAAO,EACb,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,CAAC;CACvC;AAuCD;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,KAAK,EAAE,WAAW,QAAQ,CAAC,SAAS,CAAC,KAAG,OAAO,EAOlF,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,GACxB,OAAO,KAAK,EACZ,SAAS,eAAe,EACxB,WAAW,SAAS,OAAO,EAAE,EAC7B,QAAQ,IAAI,GAAG,IAAI,EACnB,OAAO,MAAM,SAAS,KACrB,WA0CF,CAAC"}
package/dist/clipboard.js CHANGED
@@ -12,7 +12,7 @@ import { addElement, batch, getElement, orderForTop, } from "@oh-just-another/sc
12
12
  * The live `<img>` / buffer is shared, so the pasted shape draws
13
13
  * immediately (same as the original) and still references its `fileId`.
14
14
  */
15
- export const cloneElementForClipboard = (shape) => {
15
+ const cloneElementForClipboard = (shape) => {
16
16
  const meta = shape.metadata;
17
17
  const liveImage = meta && "image" in meta ? meta.image : undefined;
18
18
  const liveAnim = shape.animationData;
@@ -1 +1 @@
1
- {"version":3,"file":"clipboard.js","sourceRoot":"","sources":["../src/clipboard.ts"],"names":[],"mappings":"AACA,OAAO,EACL,UAAU,EACV,KAAK,EACL,UAAU,EACV,WAAW,GAIZ,MAAM,wBAAwB,CAAC;AAoBhC;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,KAAc,EAAW,EAAE;IAClE,MAAM,IAAI,GAAI,KAAgD,CAAC,QAAQ,CAAC;IACxE,MAAM,SAAS,GAAG,IAAI,IAAI,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IACnE,MAAM,QAAQ,GAAI,KAAqC,CAAC,aAAa,CAAC;IAEtE,sEAAsE;IACtE,MAAM,QAAQ,GAA4B,EAAE,GAAI,KAA4C,EAAE,CAAC;IAC/F,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC,aAAa,CAAC;IAC1D,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;QACtB,OAAO,CAAC,CAAC,KAAK,CAAC;QACf,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAC;IACxB,CAAC;IACD,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,CAAC,QAAQ,GAAG;YAChB,GAAI,MAAM,CAAC,QAAgD;YAC3D,KAAK,EAAE,SAAS;SACjB,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ,KAAK,SAAS;QAAE,MAAM,CAAC,aAAa,GAAG,QAAQ,CAAC;IAC5D,OAAO,MAA4B,CAAC;AACtC,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAY,EAAE,SAA8B,EAAa,EAAE;IACtF,MAAM,GAAG,GAAc,EAAE,CAAC;IAC1B,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAChC,IAAI,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,KAAY,EACZ,OAAwB,EACxB,SAA6B,EAC7B,MAAmB,EACnB,KAAsB,EACT,EAAE;IACf,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAEzD,IAAI,EAAE,GAAG,CAAC,CAAC;IACX,IAAI,EAAE,GAAG,CAAC,CAAC;IACX,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QAC1B,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnB,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrB,CAAC;IACD,EAAE,IAAI,SAAS,CAAC,MAAM,CAAC;IACvB,EAAE,IAAI,SAAS,CAAC,MAAM,CAAC;IACvB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;IAEjF,yEAAyE;IACzE,uEAAuE;IACvE,0EAA0E;IAC1E,yEAAyE;IACzE,gBAAgB;IAChB,MAAM,OAAO,GAAY,EAAE,CAAC;IAC5B,MAAM,MAAM,GAAgB,EAAE,CAAC;IAC/B,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,KAAK,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,WAAW,CACvB,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAC1F,CAAC;QACF,MAAM,KAAK,GAAG;YACZ,GAAG,wBAAwB,CAAC,IAAI,CAAC;YACjC,EAAE,EAAE,KAAK;YACT,QAAQ,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;YACxE,KAAK;SACK,CAAC;QACb,MAAM,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAClC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACtB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACzB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACjC,CAAC,CAAC"}
1
+ {"version":3,"file":"clipboard.js","sourceRoot":"","sources":["../src/clipboard.ts"],"names":[],"mappings":"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"}
@@ -112,24 +112,6 @@ export declare const LINK_HIT_THRESHOLD = 9;
112
112
  * thickness. Range: 3–8.
113
113
  */
114
114
  export declare const SELECTION_HALO_PEEK_PX = 4;
115
- /**
116
- * Connection anchors.
117
- *
118
- * Two visual roles, shown at different times:
119
- *
120
- * - **link-start** anchors — shown when an element is SELECTED. The user
121
- * drags from one to begin a link. Filled brand centre + neutral ring.
122
- * - **link-attach** anchors — shown when the cursor HOVERS / nears an
123
- * element (including while dragging a link). Where a link can land.
124
- * The inverse fill/ring of link-start, so the two roles read
125
- * differently at a glance.
126
- *
127
- * Radii are screen px (zoom-independent). Colours reuse the selection
128
- * brand blue / handle white so anchors share the resize-handle visual
129
- * language (they equal `DEFAULT_OVERLAY_STYLE.selectionStroke` / `.handleFill`).
130
- */
131
- export declare const ANCHOR_BRAND_COLOR = "#1a73e8";
132
- export declare const ANCHOR_NEUTRAL_COLOR = "#fff";
133
115
  /** Resting anchor-dot radius (screen px). */
134
116
  export declare const ANCHOR_DOT_RADIUS = 3.5;
135
117
  /** Highlighted radius for the hovered / snap-target anchor (screen px). */
@@ -345,6 +327,13 @@ export declare const DOUBLE_CLICK_TOLERANCE_PX = 8;
345
327
  * context.
346
328
  */
347
329
  export declare const ISOLATION_DIM_OPACITY = 0.6;
330
+ /**
331
+ * Opacity of an element MARKED for erasing while the eraser is swept over it
332
+ * (before the delete commits on pointer-up). Much lower than
333
+ * {@link ISOLATION_DIM_OPACITY} so "about to be deleted" reads clearly at a
334
+ * glance — matches the Excalidraw eraser's ~20% preview. Range: 0.15–0.4.
335
+ */
336
+ export declare const ERASE_DIM_OPACITY = 0.2;
348
337
  /**
349
338
  * Opacity of the WYSIWYG shape-draw preview (the live rect / ellipse drawn
350
339
  * through its real renderer while dragging out a new shape). Slightly below
@@ -455,6 +444,114 @@ export declare const MAX_BRUSH_WIDTH = 6;
455
444
  * Chromium) so a click-drag still produces a visible stroke.
456
445
  */
457
446
  export declare const DEFAULT_BRUSH_WIDTH = 2;
447
+ /**
448
+ * Default brush line colour — the paint a fresh stroke is committed with when
449
+ * the host hasn't changed the drawing panel. A dark neutral that reads on a
450
+ * light canvas (matches the pre-settings hard-coded value).
451
+ */
452
+ export declare const DEFAULT_BRUSH_COLOR = "#222222";
453
+ /**
454
+ * Default brush opacity (0–1) for a fresh stroke. 1 = fully opaque.
455
+ */
456
+ export declare const DEFAULT_BRUSH_OPACITY = 1;
457
+ /**
458
+ * Samples per Catmull-Rom span when smoothing a committed brush stroke. Brush
459
+ * points are captured sparsely (one per pointer-move), so the raw polyline is
460
+ * angular; on commit each span is resampled into this many sub-points along a
461
+ * Catmull-Rom curve through the captured points (interpolating per-point width
462
+ * too), baking a smooth stroke into the scene. Higher = smoother but more stored
463
+ * vertices per stroke. Range: 2–8.
464
+ */
465
+ export declare const BRUSH_SMOOTH_SEGMENTS = 4;
466
+ /**
467
+ * World-pixel distance under which a brush stroke's last point is treated as
468
+ * meeting its first — the trigger for auto-closing (and filling) a stroke on
469
+ * commit. Only applies when a fill colour is set and the stroke has ≥3 points.
470
+ * Scaled to the max stroke width so a thick stroke closes as forgivingly as it
471
+ * looks. Range: 6–30; larger closes more eagerly. Default: `MAX_BRUSH_WIDTH * 3`.
472
+ */
473
+ export declare const BRUSH_CLOSE_DISTANCE: number;
474
+ /**
475
+ * Eraser sampling step in WORLD units. While the eraser is dragged the host
476
+ * hit-tests points spaced this far apart along the pointer path so a fast
477
+ * swipe doesn't skip over small shapes between two move events. Smaller →
478
+ * more hit-tests per move (safer, costlier); larger → cheaper but can jump a
479
+ * thin shape. 6 px matches the default brush width so nothing narrower than a
480
+ * stroke slips through. Range: 3–12.
481
+ */
482
+ export declare const ERASER_SAMPLE_STEP = 6;
483
+ /**
484
+ * Stroke colour of the eraser cursor ring (and its fading drag trail). A neutral
485
+ * mid-grey so it reads on both light and dark canvases without looking like a
486
+ * tool accent. Range: any mid-luminance grey (#666–#aaa).
487
+ */
488
+ export declare const ERASER_CURSOR_STROKE = "#888888";
489
+ /**
490
+ * Screen-pixel line width of the eraser cursor ring. Constant on screen (the
491
+ * ring is drawn in screen space) so it stays crisp at any zoom. Range: 1–3.
492
+ */
493
+ export declare const ERASER_CURSOR_LINE_WIDTH = 1.5;
494
+ /**
495
+ * Lifetime (ms) of an eraser drag-trail point before it fully fades — the knob
496
+ * for how LONG the eraser wake is. Much shorter than {@link LASER_TRAIL_TTL_MS}
497
+ * (the laser comet) so the eraser leaves only a tight, brief wake behind the
498
+ * cursor, matching Excalidraw. Lower = shorter/snappier. Range: 100–400.
499
+ */
500
+ export declare const ERASER_TRAIL_TTL_MS = 120;
501
+ /**
502
+ * Stroke-eraser (Shift) samples a brush polyline this densely — as a FRACTION of
503
+ * the eraser radius — when computing which arc-length spans fall under the disc.
504
+ * The eraser cuts the line's GEOMETRY (segments), not just its vertices, so a big
505
+ * disc merely grazing a sparsely-sampled stroke still removes the covered span.
506
+ * Smaller = finer edges / more samples per move; larger = coarser / cheaper. The
507
+ * covered-span endpoints are refined by bisection ({@link ERASE_BOUNDARY_BISECT_ITERS})
508
+ * regardless, so this mainly bounds the miss-a-tiny-dip risk. Range: 0.15–0.5.
509
+ */
510
+ export declare const ERASE_COVERAGE_SAMPLE_FRACTION = 0.25;
511
+ /**
512
+ * Floor (world units) for the stroke-eraser sample step, so a tiny eraser radius
513
+ * doesn't explode the sample count on a long stroke. Range: 0.25–2.
514
+ */
515
+ export declare const ERASE_COVERAGE_MIN_SAMPLE_STEP = 0.5;
516
+ /**
517
+ * Bisection iterations used to pin each covered-span endpoint to the eraser ring
518
+ * (where the brush polyline crosses distance = radius). Each iteration halves the
519
+ * error, so 10 ≈ step/1024 — visually exact. Range: 6–14.
520
+ */
521
+ export declare const ERASE_BOUNDARY_BISECT_ITERS = 10;
522
+ /**
523
+ * A surviving stroke-eraser fragment shorter than this arc length (world units)
524
+ * is dropped as litter — an isolated nub reads as a stray dot, not a line. Range:
525
+ * 0.5–3.
526
+ */
527
+ export declare const ERASE_FRAGMENT_MIN_ARC = 1;
528
+ /**
529
+ * Lifetime (ms) of a laser-pointer trail point before it fully fades. Each
530
+ * point stores its birth time; the overlay ramps its opacity from 1 → 0 over
531
+ * this window and the editor prunes points older than it, so a stroke trails
532
+ * the cursor like a comet and vanishes ~this long after the pointer stops.
533
+ * "A couple of seconds" — range 800–3000.
534
+ */
535
+ export declare const LASER_TRAIL_TTL_MS = 1400;
536
+ /**
537
+ * Stroke colour of the laser-pointer trail. A saturated red reads as a
538
+ * presentation laser and stands out over any diagram fill.
539
+ */
540
+ export declare const LASER_COLOR = "#ff2d2d";
541
+ /**
542
+ * Screen-pixel stroke width of the laser trail. Constant on screen (drawn in
543
+ * screen space, not world) so the beam stays the same thickness at every zoom.
544
+ * Range: 2–6.
545
+ */
546
+ export declare const LASER_WIDTH = 4;
547
+ /**
548
+ * Samples per Catmull-Rom span when smoothing a laser trail for rendering.
549
+ * Laser points are collected sparsely (one per pointer-move), so the raw
550
+ * polyline looks angular; the overlay resamples each span into this many
551
+ * sub-points along a Catmull-Rom curve through the captured points, keeping the
552
+ * beam smooth. Higher = smoother but more segments per frame. Range: 4–16.
553
+ */
554
+ export declare const LASER_SMOOTH_SEGMENTS = 8;
458
555
  /**
459
556
  * Default upper bound on the longer edge of a freshly-inserted
460
557
  * image (CSS pixels). Larger images get downscaled proportionally
@@ -543,6 +640,27 @@ export declare const TEXT_RESIZE_MIN_FONT_SIZE = 4;
543
640
  * 1.1 ≈ a gentle 10 % step. Range: 1.05–1.5.
544
641
  */
545
642
  export declare const TEXT_FONT_SIZE_STEP = 1.1;
643
+ /**
644
+ * Gap (world px) between a source node and the connected node spawned by the
645
+ * flowchart create shortcut (`Cmd/Ctrl+Arrow`). Measured from the source's
646
+ * edge to the new node's edge along the spawn direction. Range: 40–160 —
647
+ * enough that the connecting link is clearly visible.
648
+ */
649
+ export declare const SPAWN_CONNECTED_GAP_PX = 80;
650
+ /**
651
+ * Upper cap on how many sibling nodes a single flowchart create session
652
+ * (`Cmd/Ctrl+Arrow` held, tapped an arrow repeatedly) can pending-grow before
653
+ * commit. Guards against an accidental key-repeat spraying dozens of nodes.
654
+ * Range: 4–16.
655
+ */
656
+ export declare const FLOWCHART_MAX_SIBLINGS = 8;
657
+ /**
658
+ * Opacity of the pending flowchart-create preview (the not-yet-committed
659
+ * nodes + links drawn on the overlay while `Cmd/Ctrl` is held). Below 1 so the
660
+ * preview reads as provisional, high enough to judge placement. Range:
661
+ * 0.35–0.65.
662
+ */
663
+ export declare const FLOWCHART_PREVIEW_OPACITY = 0.5;
546
664
  /**
547
665
  * Upper clamp (world px) for font size — matches the property panel's slider
548
666
  * ceiling so the keyboard and the panel agree on the maximum.
@@ -566,4 +684,28 @@ export declare const GIF_BADGE_BG_COLOR = "rgba(0,0,0,0.65)";
566
684
  export declare const LOCK_BADGE_SIZE = 16;
567
685
  export declare const LOCK_BADGE_COLOR = "#1a73e8";
568
686
  export declare const LOCK_BADGE_KEYHOLE_COLOR = "#fff";
687
+ /**
688
+ * Image-crop UX (Excalidraw-style handle cropping).
689
+ *
690
+ * - `CROP_MIN_SIZE` — smallest allowed crop window edge, in element-LOCAL
691
+ * units (unscaled). Dragging an edge handle inward stops here so the window
692
+ * can never collapse to zero. Range: 4–24.
693
+ * - `CROP_HANDLE_HIT_RADIUS` — screen-pixel grab radius around each of the 8
694
+ * crop handles. Divided by zoom before hit-testing so the effective screen
695
+ * target stays constant. Mirrors {@link HANDLE_HIT_SLOP}. Range: 8–14.
696
+ * - `CROP_GHOST_OPACITY` — alpha of the faint full-image "ghost" painted over
697
+ * the virtual full-image rect while cropping, so the user sees the hidden
698
+ * parts of the source. Low so the real (cropped) pixels stay dominant.
699
+ * Range: 0.08–0.2.
700
+ * - `CROP_BRACKET_LEN` — arm length (screen px) of the L-shaped corner brackets
701
+ * that mark the crop frame (Excalidraw-style), drawn instead of round nubs.
702
+ * Range: 10–20.
703
+ * - `CROP_BRACKET_WIDTH` — stroke width (screen px) of those brackets. Thicker
704
+ * than the frame outline so the corners read as grabbable. Range: 2–4.
705
+ */
706
+ export declare const CROP_MIN_SIZE = 10;
707
+ export declare const CROP_HANDLE_HIT_RADIUS = 11;
708
+ export declare const CROP_GHOST_OPACITY = 0.12;
709
+ export declare const CROP_BRACKET_LEN = 14;
710
+ export declare const CROP_BRACKET_WIDTH = 3;
569
711
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
package/dist/constants.js CHANGED
@@ -121,8 +121,8 @@ export const SELECTION_HALO_PEEK_PX = 4;
121
121
  * brand blue / handle white so anchors share the resize-handle visual
122
122
  * language (they equal `DEFAULT_OVERLAY_STYLE.selectionStroke` / `.handleFill`).
123
123
  */
124
- export const ANCHOR_BRAND_COLOR = "#1a73e8";
125
- export const ANCHOR_NEUTRAL_COLOR = "#fff";
124
+ const ANCHOR_BRAND_COLOR = "#1a73e8";
125
+ const ANCHOR_NEUTRAL_COLOR = "#fff";
126
126
  /** Resting anchor-dot radius (screen px). */
127
127
  export const ANCHOR_DOT_RADIUS = 3.5;
128
128
  /** Highlighted radius for the hovered / snap-target anchor (screen px). */
@@ -338,6 +338,13 @@ export const DOUBLE_CLICK_TOLERANCE_PX = 8;
338
338
  * context.
339
339
  */
340
340
  export const ISOLATION_DIM_OPACITY = 0.6;
341
+ /**
342
+ * Opacity of an element MARKED for erasing while the eraser is swept over it
343
+ * (before the delete commits on pointer-up). Much lower than
344
+ * {@link ISOLATION_DIM_OPACITY} so "about to be deleted" reads clearly at a
345
+ * glance — matches the Excalidraw eraser's ~20% preview. Range: 0.15–0.4.
346
+ */
347
+ export const ERASE_DIM_OPACITY = 0.2;
341
348
  /**
342
349
  * Opacity of the WYSIWYG shape-draw preview (the live rect / ellipse drawn
343
350
  * through its real renderer while dragging out a new shape). Slightly below
@@ -448,6 +455,114 @@ export const MAX_BRUSH_WIDTH = 6;
448
455
  * Chromium) so a click-drag still produces a visible stroke.
449
456
  */
450
457
  export const DEFAULT_BRUSH_WIDTH = 2;
458
+ /**
459
+ * Default brush line colour — the paint a fresh stroke is committed with when
460
+ * the host hasn't changed the drawing panel. A dark neutral that reads on a
461
+ * light canvas (matches the pre-settings hard-coded value).
462
+ */
463
+ export const DEFAULT_BRUSH_COLOR = "#222222";
464
+ /**
465
+ * Default brush opacity (0–1) for a fresh stroke. 1 = fully opaque.
466
+ */
467
+ export const DEFAULT_BRUSH_OPACITY = 1;
468
+ /**
469
+ * Samples per Catmull-Rom span when smoothing a committed brush stroke. Brush
470
+ * points are captured sparsely (one per pointer-move), so the raw polyline is
471
+ * angular; on commit each span is resampled into this many sub-points along a
472
+ * Catmull-Rom curve through the captured points (interpolating per-point width
473
+ * too), baking a smooth stroke into the scene. Higher = smoother but more stored
474
+ * vertices per stroke. Range: 2–8.
475
+ */
476
+ export const BRUSH_SMOOTH_SEGMENTS = 4;
477
+ /**
478
+ * World-pixel distance under which a brush stroke's last point is treated as
479
+ * meeting its first — the trigger for auto-closing (and filling) a stroke on
480
+ * commit. Only applies when a fill colour is set and the stroke has ≥3 points.
481
+ * Scaled to the max stroke width so a thick stroke closes as forgivingly as it
482
+ * looks. Range: 6–30; larger closes more eagerly. Default: `MAX_BRUSH_WIDTH * 3`.
483
+ */
484
+ export const BRUSH_CLOSE_DISTANCE = MAX_BRUSH_WIDTH * 3;
485
+ /**
486
+ * Eraser sampling step in WORLD units. While the eraser is dragged the host
487
+ * hit-tests points spaced this far apart along the pointer path so a fast
488
+ * swipe doesn't skip over small shapes between two move events. Smaller →
489
+ * more hit-tests per move (safer, costlier); larger → cheaper but can jump a
490
+ * thin shape. 6 px matches the default brush width so nothing narrower than a
491
+ * stroke slips through. Range: 3–12.
492
+ */
493
+ export const ERASER_SAMPLE_STEP = 6;
494
+ /**
495
+ * Stroke colour of the eraser cursor ring (and its fading drag trail). A neutral
496
+ * mid-grey so it reads on both light and dark canvases without looking like a
497
+ * tool accent. Range: any mid-luminance grey (#666–#aaa).
498
+ */
499
+ export const ERASER_CURSOR_STROKE = "#888888";
500
+ /**
501
+ * Screen-pixel line width of the eraser cursor ring. Constant on screen (the
502
+ * ring is drawn in screen space) so it stays crisp at any zoom. Range: 1–3.
503
+ */
504
+ export const ERASER_CURSOR_LINE_WIDTH = 1.5;
505
+ /**
506
+ * Lifetime (ms) of an eraser drag-trail point before it fully fades — the knob
507
+ * for how LONG the eraser wake is. Much shorter than {@link LASER_TRAIL_TTL_MS}
508
+ * (the laser comet) so the eraser leaves only a tight, brief wake behind the
509
+ * cursor, matching Excalidraw. Lower = shorter/snappier. Range: 100–400.
510
+ */
511
+ export const ERASER_TRAIL_TTL_MS = 120;
512
+ /**
513
+ * Stroke-eraser (Shift) samples a brush polyline this densely — as a FRACTION of
514
+ * the eraser radius — when computing which arc-length spans fall under the disc.
515
+ * The eraser cuts the line's GEOMETRY (segments), not just its vertices, so a big
516
+ * disc merely grazing a sparsely-sampled stroke still removes the covered span.
517
+ * Smaller = finer edges / more samples per move; larger = coarser / cheaper. The
518
+ * covered-span endpoints are refined by bisection ({@link ERASE_BOUNDARY_BISECT_ITERS})
519
+ * regardless, so this mainly bounds the miss-a-tiny-dip risk. Range: 0.15–0.5.
520
+ */
521
+ export const ERASE_COVERAGE_SAMPLE_FRACTION = 0.25;
522
+ /**
523
+ * Floor (world units) for the stroke-eraser sample step, so a tiny eraser radius
524
+ * doesn't explode the sample count on a long stroke. Range: 0.25–2.
525
+ */
526
+ export const ERASE_COVERAGE_MIN_SAMPLE_STEP = 0.5;
527
+ /**
528
+ * Bisection iterations used to pin each covered-span endpoint to the eraser ring
529
+ * (where the brush polyline crosses distance = radius). Each iteration halves the
530
+ * error, so 10 ≈ step/1024 — visually exact. Range: 6–14.
531
+ */
532
+ export const ERASE_BOUNDARY_BISECT_ITERS = 10;
533
+ /**
534
+ * A surviving stroke-eraser fragment shorter than this arc length (world units)
535
+ * is dropped as litter — an isolated nub reads as a stray dot, not a line. Range:
536
+ * 0.5–3.
537
+ */
538
+ export const ERASE_FRAGMENT_MIN_ARC = 1;
539
+ /**
540
+ * Lifetime (ms) of a laser-pointer trail point before it fully fades. Each
541
+ * point stores its birth time; the overlay ramps its opacity from 1 → 0 over
542
+ * this window and the editor prunes points older than it, so a stroke trails
543
+ * the cursor like a comet and vanishes ~this long after the pointer stops.
544
+ * "A couple of seconds" — range 800–3000.
545
+ */
546
+ export const LASER_TRAIL_TTL_MS = 1400;
547
+ /**
548
+ * Stroke colour of the laser-pointer trail. A saturated red reads as a
549
+ * presentation laser and stands out over any diagram fill.
550
+ */
551
+ export const LASER_COLOR = "#ff2d2d";
552
+ /**
553
+ * Screen-pixel stroke width of the laser trail. Constant on screen (drawn in
554
+ * screen space, not world) so the beam stays the same thickness at every zoom.
555
+ * Range: 2–6.
556
+ */
557
+ export const LASER_WIDTH = 4;
558
+ /**
559
+ * Samples per Catmull-Rom span when smoothing a laser trail for rendering.
560
+ * Laser points are collected sparsely (one per pointer-move), so the raw
561
+ * polyline looks angular; the overlay resamples each span into this many
562
+ * sub-points along a Catmull-Rom curve through the captured points, keeping the
563
+ * beam smooth. Higher = smoother but more segments per frame. Range: 4–16.
564
+ */
565
+ export const LASER_SMOOTH_SEGMENTS = 8;
451
566
  /**
452
567
  * Default upper bound on the longer edge of a freshly-inserted
453
568
  * image (CSS pixels). Larger images get downscaled proportionally
@@ -536,6 +651,27 @@ export const TEXT_RESIZE_MIN_FONT_SIZE = 4;
536
651
  * 1.1 ≈ a gentle 10 % step. Range: 1.05–1.5.
537
652
  */
538
653
  export const TEXT_FONT_SIZE_STEP = 1.1;
654
+ /**
655
+ * Gap (world px) between a source node and the connected node spawned by the
656
+ * flowchart create shortcut (`Cmd/Ctrl+Arrow`). Measured from the source's
657
+ * edge to the new node's edge along the spawn direction. Range: 40–160 —
658
+ * enough that the connecting link is clearly visible.
659
+ */
660
+ export const SPAWN_CONNECTED_GAP_PX = 80;
661
+ /**
662
+ * Upper cap on how many sibling nodes a single flowchart create session
663
+ * (`Cmd/Ctrl+Arrow` held, tapped an arrow repeatedly) can pending-grow before
664
+ * commit. Guards against an accidental key-repeat spraying dozens of nodes.
665
+ * Range: 4–16.
666
+ */
667
+ export const FLOWCHART_MAX_SIBLINGS = 8;
668
+ /**
669
+ * Opacity of the pending flowchart-create preview (the not-yet-committed
670
+ * nodes + links drawn on the overlay while `Cmd/Ctrl` is held). Below 1 so the
671
+ * preview reads as provisional, high enough to judge placement. Range:
672
+ * 0.35–0.65.
673
+ */
674
+ export const FLOWCHART_PREVIEW_OPACITY = 0.5;
539
675
  /**
540
676
  * Upper clamp (world px) for font size — matches the property panel's slider
541
677
  * ceiling so the keyboard and the panel agree on the maximum.
@@ -559,4 +695,28 @@ export const GIF_BADGE_BG_COLOR = "rgba(0,0,0,0.65)";
559
695
  export const LOCK_BADGE_SIZE = 16;
560
696
  export const LOCK_BADGE_COLOR = "#1a73e8";
561
697
  export const LOCK_BADGE_KEYHOLE_COLOR = "#fff";
698
+ /**
699
+ * Image-crop UX (Excalidraw-style handle cropping).
700
+ *
701
+ * - `CROP_MIN_SIZE` — smallest allowed crop window edge, in element-LOCAL
702
+ * units (unscaled). Dragging an edge handle inward stops here so the window
703
+ * can never collapse to zero. Range: 4–24.
704
+ * - `CROP_HANDLE_HIT_RADIUS` — screen-pixel grab radius around each of the 8
705
+ * crop handles. Divided by zoom before hit-testing so the effective screen
706
+ * target stays constant. Mirrors {@link HANDLE_HIT_SLOP}. Range: 8–14.
707
+ * - `CROP_GHOST_OPACITY` — alpha of the faint full-image "ghost" painted over
708
+ * the virtual full-image rect while cropping, so the user sees the hidden
709
+ * parts of the source. Low so the real (cropped) pixels stay dominant.
710
+ * Range: 0.08–0.2.
711
+ * - `CROP_BRACKET_LEN` — arm length (screen px) of the L-shaped corner brackets
712
+ * that mark the crop frame (Excalidraw-style), drawn instead of round nubs.
713
+ * Range: 10–20.
714
+ * - `CROP_BRACKET_WIDTH` — stroke width (screen px) of those brackets. Thicker
715
+ * than the frame outline so the corners read as grabbable. Range: 2–4.
716
+ */
717
+ export const CROP_MIN_SIZE = 10;
718
+ export const CROP_HANDLE_HIT_RADIUS = 11;
719
+ export const CROP_GHOST_OPACITY = 0.12;
720
+ export const CROP_BRACKET_LEN = 14;
721
+ export const CROP_BRACKET_WIDTH = 3;
562
722
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { KeyboardEventData, KeyPhase, PointerEventData, WheelEventData } from "@oh-just-another/types";
1
+ import type { KeyboardEventData, PointerEventData, WheelEventData } from "@oh-just-another/types";
2
2
  /**
3
3
  * Translate a browser `PointerEvent` into a domain `PointerEventData`. The
4
4
  * point is expressed in the host element's local CSS-pixel coordinate space
@@ -16,5 +16,4 @@ export declare const fromWheelEvent: (ev: WheelEvent, host: HTMLElement) => Whee
16
16
  * when this is true so the user's typing isn't hijacked by canvas shortcuts.
17
17
  */
18
18
  export declare const isEditableTarget: (target: EventTarget | null) => boolean;
19
- export type { KeyPhase };
20
19
  //# sourceMappingURL=dom-events.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dom-events.d.ts","sourceRoot":"","sources":["../src/dom-events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,QAAQ,EAER,gBAAgB,EAGhB,cAAc,EACf,MAAM,wBAAwB,CAAC;AAEhC;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,GAAI,IAAI,YAAY,EAAE,MAAM,WAAW,KAAG,gBAWtE,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,IAAI,aAAa,KAAG,iBAOpD,CAAC;AAEH,eAAO,MAAM,cAAc,GAAI,IAAI,UAAU,EAAE,MAAM,WAAW,KAAG,cAUlE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAI,QAAQ,WAAW,GAAG,IAAI,KAAG,OAI7D,CAAC;AAuCF,YAAY,EAAE,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"dom-events.d.ts","sourceRoot":"","sources":["../src/dom-events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EAEjB,gBAAgB,EAGhB,cAAc,EACf,MAAM,wBAAwB,CAAC;AAEhC;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,GAAI,IAAI,YAAY,EAAE,MAAM,WAAW,KAAG,gBAWtE,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,IAAI,aAAa,KAAG,iBAOpD,CAAC;AAEH,eAAO,MAAM,cAAc,GAAI,IAAI,UAAU,EAAE,MAAM,WAAW,KAAG,cAUlE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAI,QAAQ,WAAW,GAAG,IAAI,KAAG,OAI7D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"dom-events.js","sourceRoot":"","sources":["../src/dom-events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dom-events.js","sourceRoot":"","sources":["../src/dom-events.ts"],"names":[],"mappings":"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"}
@@ -18,4 +18,19 @@ export declare const autoStopHeavyGifs: (editor: Editor) => void;
18
18
  * Applied directly to `_scene` (no history entry — internal rehydration).
19
19
  */
20
20
  export declare const rehydrateAnimatedImages: (editor: Editor) => void;
21
+ /**
22
+ * Restore live image handles for *static* image shapes after a scene load.
23
+ *
24
+ * A live `<img>` / `ImageBitmap` in `metadata.image` does not survive
25
+ * serialisation (the serializer drops it) and the shape's `src` is a dead
26
+ * `blob:` URL once the page reloads — so a restored static image has no
27
+ * drawable handle and the renderer skips it (the "dead-blob-url" warning).
28
+ * The bytes still live in `Scene.files` via `fileId`, so decode them back into
29
+ * a live handle and re-attach it to `metadata.image` before the next paint.
30
+ *
31
+ * Async (decode is async) and applied directly to `_scene` with no history
32
+ * entry — a transient runtime handle, not user data. Repaints once when done.
33
+ * Animated shapes are handled by {@link rehydrateAnimatedImages}.
34
+ */
35
+ export declare const rehydrateStaticImages: (editor: Editor) => Promise<void>;
21
36
  //# sourceMappingURL=animation-scene.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"animation-scene.d.ts","sourceRoot":"","sources":["../../src/editor/animation-scene.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,GAAI,QAAQ,MAAM,KAAG,OAS1D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,QAAQ,MAAM,KAAG,IAWlD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,GAAI,QAAQ,MAAM,KAAG,IAgBxD,CAAC"}
1
+ {"version":3,"file":"animation-scene.d.ts","sourceRoot":"","sources":["../../src/editor/animation-scene.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,GAAI,QAAQ,MAAM,KAAG,OAS1D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,QAAQ,MAAM,KAAG,IAWlD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,GAAI,QAAQ,MAAM,KAAG,IAgBxD,CAAC;AA6EF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,qBAAqB,GAAU,QAAQ,MAAM,KAAG,OAAO,CAAC,IAAI,CAgCxE,CAAC"}