@oh-just-another/state 0.62.0 → 0.63.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 (259) hide show
  1. package/CHANGELOG.md +77 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/actions/registry.js +1 -1
  4. package/dist/actions/registry.js.map +1 -1
  5. package/dist/constants.d.ts +162 -8
  6. package/dist/constants.d.ts.map +1 -1
  7. package/dist/constants.js +132 -8
  8. package/dist/constants.js.map +1 -1
  9. package/dist/editor/animation-scene.d.ts.map +1 -1
  10. package/dist/editor/animation-scene.js +27 -39
  11. package/dist/editor/animation-scene.js.map +1 -1
  12. package/dist/editor/animation.js +1 -1
  13. package/dist/editor/animation.js.map +1 -1
  14. package/dist/editor/applies/arrange-units.d.ts +24 -0
  15. package/dist/editor/applies/arrange-units.d.ts.map +1 -0
  16. package/dist/editor/applies/arrange-units.js +56 -0
  17. package/dist/editor/applies/arrange-units.js.map +1 -0
  18. package/dist/editor/applies/arrange.d.ts +16 -15
  19. package/dist/editor/applies/arrange.d.ts.map +1 -1
  20. package/dist/editor/applies/arrange.js +33 -48
  21. package/dist/editor/applies/arrange.js.map +1 -1
  22. package/dist/editor/applies/create.d.ts +16 -10
  23. package/dist/editor/applies/create.d.ts.map +1 -1
  24. package/dist/editor/applies/create.js +32 -12
  25. package/dist/editor/applies/create.js.map +1 -1
  26. package/dist/editor/applies/edge.d.ts +1 -1
  27. package/dist/editor/applies/edge.d.ts.map +1 -1
  28. package/dist/editor/applies/object-snap.d.ts +87 -0
  29. package/dist/editor/applies/object-snap.d.ts.map +1 -0
  30. package/dist/editor/applies/object-snap.js +198 -0
  31. package/dist/editor/applies/object-snap.js.map +1 -0
  32. package/dist/editor/applies/resize.d.ts +1 -1
  33. package/dist/editor/applies/resize.d.ts.map +1 -1
  34. package/dist/editor/applies/resize.js +6 -4
  35. package/dist/editor/applies/resize.js.map +1 -1
  36. package/dist/editor/applies/selection.d.ts +5 -5
  37. package/dist/editor/applies/selection.d.ts.map +1 -1
  38. package/dist/editor/applies/selection.js +15 -7
  39. package/dist/editor/applies/selection.js.map +1 -1
  40. package/dist/editor/applies/snap-grid.d.ts +1 -1
  41. package/dist/editor/applies/snap-grid.d.ts.map +1 -1
  42. package/dist/editor/container-ops.d.ts +1 -1
  43. package/dist/editor/container-ops.d.ts.map +1 -1
  44. package/dist/{editor-events.d.ts → editor/editor-events.d.ts} +2 -2
  45. package/dist/editor/editor-events.d.ts.map +1 -0
  46. package/dist/{editor-events.js.map → editor/editor-events.js.map} +1 -1
  47. package/dist/editor/event-fanout.d.ts +3 -3
  48. package/dist/editor/event-fanout.d.ts.map +1 -1
  49. package/dist/editor/gesture-tx.d.ts +1 -1
  50. package/dist/editor/gesture-tx.d.ts.map +1 -1
  51. package/dist/editor/hit-test.d.ts +5 -3
  52. package/dist/editor/hit-test.d.ts.map +1 -1
  53. package/dist/editor/hit-test.js +18 -10
  54. package/dist/editor/hit-test.js.map +1 -1
  55. package/dist/editor/interaction-state.d.ts +29 -2
  56. package/dist/editor/interaction-state.d.ts.map +1 -1
  57. package/dist/editor/interaction-state.js +34 -0
  58. package/dist/editor/interaction-state.js.map +1 -1
  59. package/dist/editor/link-handle-drag.d.ts +1 -1
  60. package/dist/editor/link-handle-drag.d.ts.map +1 -1
  61. package/dist/editor/link-handle-drag.js +1 -1
  62. package/dist/editor/link-handle-drag.js.map +1 -1
  63. package/dist/editor/pointer-binding.d.ts.map +1 -1
  64. package/dist/editor/pointer-binding.js +86 -24
  65. package/dist/editor/pointer-binding.js.map +1 -1
  66. package/dist/editor/public/arrange-group.d.ts +6 -5
  67. package/dist/editor/public/arrange-group.d.ts.map +1 -1
  68. package/dist/editor/public/arrange-group.js +39 -23
  69. package/dist/editor/public/arrange-group.js.map +1 -1
  70. package/dist/editor/public/clipboard.d.ts +1 -1
  71. package/dist/editor/public/clipboard.d.ts.map +1 -1
  72. package/dist/editor/public/clipboard.js +2 -2
  73. package/dist/editor/public/clipboard.js.map +1 -1
  74. package/dist/editor/public/cursor.js +1 -1
  75. package/dist/editor/public/cursor.js.map +1 -1
  76. package/dist/editor/public/eraser.js +1 -1
  77. package/dist/editor/public/eraser.js.map +1 -1
  78. package/dist/editor/public/image-insert.d.ts.map +1 -1
  79. package/dist/editor/public/image-insert.js +4 -1
  80. package/dist/editor/public/image-insert.js.map +1 -1
  81. package/dist/editor/public/label-seed.d.ts +12 -0
  82. package/dist/editor/public/label-seed.d.ts.map +1 -0
  83. package/dist/editor/public/label-seed.js +20 -0
  84. package/dist/editor/public/label-seed.js.map +1 -0
  85. package/dist/editor/public/layers.d.ts +1 -1
  86. package/dist/editor/public/layers.d.ts.map +1 -1
  87. package/dist/editor/public/placement.d.ts +6 -1
  88. package/dist/editor/public/placement.d.ts.map +1 -1
  89. package/dist/editor/public/placement.js +47 -17
  90. package/dist/editor/public/placement.js.map +1 -1
  91. package/dist/editor/public/selection-ops.d.ts +1 -1
  92. package/dist/editor/public/selection-ops.d.ts.map +1 -1
  93. package/dist/editor/public/selection-ops.js +31 -2
  94. package/dist/editor/public/selection-ops.js.map +1 -1
  95. package/dist/editor/public/stroke-eraser-coverage.js +1 -1
  96. package/dist/editor/public/stroke-eraser-coverage.js.map +1 -1
  97. package/dist/editor/public/stroke-eraser.js +1 -1
  98. package/dist/editor/public/stroke-eraser.js.map +1 -1
  99. package/dist/editor/public/text-edit.d.ts +4 -2
  100. package/dist/editor/public/text-edit.d.ts.map +1 -1
  101. package/dist/editor/public/text-edit.js +8 -4
  102. package/dist/editor/public/text-edit.js.map +1 -1
  103. package/dist/editor/public/tool-ops.d.ts +10 -7
  104. package/dist/editor/public/tool-ops.d.ts.map +1 -1
  105. package/dist/editor/public/tool-ops.js +141 -14
  106. package/dist/editor/public/tool-ops.js.map +1 -1
  107. package/dist/editor/public/zoom-pan.d.ts +10 -1
  108. package/dist/editor/public/zoom-pan.d.ts.map +1 -1
  109. package/dist/editor/public/zoom-pan.js +49 -0
  110. package/dist/editor/public/zoom-pan.js.map +1 -1
  111. package/dist/editor/render-orchestrator.d.ts +17 -11
  112. package/dist/editor/render-orchestrator.d.ts.map +1 -1
  113. package/dist/editor/render-orchestrator.js +45 -31
  114. package/dist/editor/render-orchestrator.js.map +1 -1
  115. package/dist/editor/resize-helpers.d.ts +1 -1
  116. package/dist/editor/resize-helpers.d.ts.map +1 -1
  117. package/dist/editor/shape-traits.d.ts +1 -1
  118. package/dist/editor/shape-traits.d.ts.map +1 -1
  119. package/dist/editor/shape-traits.js +1 -1
  120. package/dist/editor/shape-traits.js.map +1 -1
  121. package/dist/editor/text-edit.d.ts +24 -11
  122. package/dist/editor/text-edit.d.ts.map +1 -1
  123. package/dist/editor/text-edit.js +225 -45
  124. package/dist/editor/text-edit.js.map +1 -1
  125. package/dist/editor.d.ts +306 -18
  126. package/dist/editor.d.ts.map +1 -1
  127. package/dist/editor.js +1233 -67
  128. package/dist/editor.js.map +1 -1
  129. package/dist/features/built-in-handlers.d.ts.map +1 -0
  130. package/dist/{built-in-handlers.js → features/built-in-handlers.js} +7 -1
  131. package/dist/features/built-in-handlers.js.map +1 -0
  132. package/dist/{clipboard.d.ts → features/clipboard.d.ts} +14 -0
  133. package/dist/features/clipboard.d.ts.map +1 -0
  134. package/dist/{clipboard.js → features/clipboard.js} +1 -1
  135. package/dist/features/clipboard.js.map +1 -0
  136. package/dist/{file-drop.d.ts → features/file-drop.d.ts} +20 -1
  137. package/dist/features/file-drop.d.ts.map +1 -0
  138. package/dist/{file-drop.js → features/file-drop.js} +47 -19
  139. package/dist/features/file-drop.js.map +1 -0
  140. package/dist/features/insert-scene.d.ts +19 -0
  141. package/dist/features/insert-scene.d.ts.map +1 -0
  142. package/dist/features/insert-scene.js +145 -0
  143. package/dist/features/insert-scene.js.map +1 -0
  144. package/dist/features/search.d.ts.map +1 -0
  145. package/dist/features/search.js.map +1 -0
  146. package/dist/helpers/auto-compact.d.ts.map +1 -0
  147. package/dist/{auto-compact.js → helpers/auto-compact.js} +1 -1
  148. package/dist/helpers/auto-compact.js.map +1 -0
  149. package/dist/helpers/auto-layout-scheduler.d.ts.map +1 -0
  150. package/dist/helpers/auto-layout-scheduler.js.map +1 -0
  151. package/dist/helpers/frame-helpers.d.ts.map +1 -0
  152. package/dist/helpers/frame-helpers.js.map +1 -0
  153. package/dist/helpers/group-helpers.d.ts.map +1 -0
  154. package/dist/helpers/group-helpers.js.map +1 -0
  155. package/dist/helpers/util.d.ts.map +1 -0
  156. package/dist/helpers/util.js.map +1 -0
  157. package/dist/index.d.ts +23 -21
  158. package/dist/index.d.ts.map +1 -1
  159. package/dist/index.js +12 -12
  160. package/dist/index.js.map +1 -1
  161. package/dist/input/dom-events.d.ts.map +1 -0
  162. package/dist/input/dom-events.js.map +1 -0
  163. package/dist/{hotkeys-binding.d.ts → input/hotkeys-binding.d.ts} +2 -2
  164. package/dist/input/hotkeys-binding.d.ts.map +1 -0
  165. package/dist/{hotkeys-binding.js → input/hotkeys-binding.js} +1 -1
  166. package/dist/input/hotkeys-binding.js.map +1 -0
  167. package/dist/input/platform.d.ts.map +1 -0
  168. package/dist/input/platform.js.map +1 -0
  169. package/dist/{handle.d.ts → interaction/handle.d.ts} +1 -1
  170. package/dist/interaction/handle.d.ts.map +1 -0
  171. package/dist/{handle.js → interaction/handle.js} +1 -1
  172. package/dist/interaction/handle.js.map +1 -0
  173. package/dist/interaction/interactive.d.ts.map +1 -0
  174. package/dist/interaction/interactive.js.map +1 -0
  175. package/dist/interaction/machine.d.ts.map +1 -0
  176. package/dist/interaction/machine.js.map +1 -0
  177. package/dist/interaction/modes.d.ts.map +1 -0
  178. package/dist/interaction/modes.js.map +1 -0
  179. package/dist/render/animation-tick.d.ts.map +1 -0
  180. package/dist/render/animation-tick.js.map +1 -0
  181. package/dist/{overlay.d.ts → render/overlay.d.ts} +42 -38
  182. package/dist/render/overlay.d.ts.map +1 -0
  183. package/dist/{overlay.js → render/overlay.js} +174 -59
  184. package/dist/render/overlay.js.map +1 -0
  185. package/dist/selection/link-selection.d.ts.map +1 -0
  186. package/dist/{link-selection.js → selection/link-selection.js} +1 -1
  187. package/dist/selection/link-selection.js.map +1 -0
  188. package/dist/selection/selection.d.ts.map +1 -0
  189. package/dist/{selection.js → selection/selection.js} +1 -1
  190. package/dist/selection/selection.js.map +1 -0
  191. package/package.json +5 -5
  192. package/dist/animation-tick.d.ts.map +0 -1
  193. package/dist/animation-tick.js.map +0 -1
  194. package/dist/auto-compact.d.ts.map +0 -1
  195. package/dist/auto-compact.js.map +0 -1
  196. package/dist/auto-layout-scheduler.d.ts.map +0 -1
  197. package/dist/auto-layout-scheduler.js.map +0 -1
  198. package/dist/built-in-handlers.d.ts.map +0 -1
  199. package/dist/built-in-handlers.js.map +0 -1
  200. package/dist/clipboard.d.ts.map +0 -1
  201. package/dist/clipboard.js.map +0 -1
  202. package/dist/dom-events.d.ts.map +0 -1
  203. package/dist/dom-events.js.map +0 -1
  204. package/dist/editor-events.d.ts.map +0 -1
  205. package/dist/file-drop.d.ts.map +0 -1
  206. package/dist/file-drop.js.map +0 -1
  207. package/dist/frame-helpers.d.ts.map +0 -1
  208. package/dist/frame-helpers.js.map +0 -1
  209. package/dist/group-helpers.d.ts.map +0 -1
  210. package/dist/group-helpers.js.map +0 -1
  211. package/dist/handle.d.ts.map +0 -1
  212. package/dist/handle.js.map +0 -1
  213. package/dist/hotkeys-binding.d.ts.map +0 -1
  214. package/dist/hotkeys-binding.js.map +0 -1
  215. package/dist/interactive.d.ts.map +0 -1
  216. package/dist/interactive.js.map +0 -1
  217. package/dist/link-selection.d.ts.map +0 -1
  218. package/dist/link-selection.js.map +0 -1
  219. package/dist/machine.d.ts.map +0 -1
  220. package/dist/machine.js.map +0 -1
  221. package/dist/modes.d.ts.map +0 -1
  222. package/dist/modes.js.map +0 -1
  223. package/dist/overlay.d.ts.map +0 -1
  224. package/dist/overlay.js.map +0 -1
  225. package/dist/platform.d.ts.map +0 -1
  226. package/dist/platform.js.map +0 -1
  227. package/dist/search.d.ts.map +0 -1
  228. package/dist/search.js.map +0 -1
  229. package/dist/selection.d.ts.map +0 -1
  230. package/dist/selection.js.map +0 -1
  231. package/dist/util.d.ts.map +0 -1
  232. package/dist/util.js.map +0 -1
  233. /package/dist/{editor-events.js → editor/editor-events.js} +0 -0
  234. /package/dist/{built-in-handlers.d.ts → features/built-in-handlers.d.ts} +0 -0
  235. /package/dist/{search.d.ts → features/search.d.ts} +0 -0
  236. /package/dist/{search.js → features/search.js} +0 -0
  237. /package/dist/{auto-compact.d.ts → helpers/auto-compact.d.ts} +0 -0
  238. /package/dist/{auto-layout-scheduler.d.ts → helpers/auto-layout-scheduler.d.ts} +0 -0
  239. /package/dist/{auto-layout-scheduler.js → helpers/auto-layout-scheduler.js} +0 -0
  240. /package/dist/{frame-helpers.d.ts → helpers/frame-helpers.d.ts} +0 -0
  241. /package/dist/{frame-helpers.js → helpers/frame-helpers.js} +0 -0
  242. /package/dist/{group-helpers.d.ts → helpers/group-helpers.d.ts} +0 -0
  243. /package/dist/{group-helpers.js → helpers/group-helpers.js} +0 -0
  244. /package/dist/{util.d.ts → helpers/util.d.ts} +0 -0
  245. /package/dist/{util.js → helpers/util.js} +0 -0
  246. /package/dist/{dom-events.d.ts → input/dom-events.d.ts} +0 -0
  247. /package/dist/{dom-events.js → input/dom-events.js} +0 -0
  248. /package/dist/{platform.d.ts → input/platform.d.ts} +0 -0
  249. /package/dist/{platform.js → input/platform.js} +0 -0
  250. /package/dist/{interactive.d.ts → interaction/interactive.d.ts} +0 -0
  251. /package/dist/{interactive.js → interaction/interactive.js} +0 -0
  252. /package/dist/{machine.d.ts → interaction/machine.d.ts} +0 -0
  253. /package/dist/{machine.js → interaction/machine.js} +0 -0
  254. /package/dist/{modes.d.ts → interaction/modes.d.ts} +0 -0
  255. /package/dist/{modes.js → interaction/modes.js} +0 -0
  256. /package/dist/{animation-tick.d.ts → render/animation-tick.d.ts} +0 -0
  257. /package/dist/{animation-tick.js → render/animation-tick.js} +0 -0
  258. /package/dist/{link-selection.d.ts → selection/link-selection.d.ts} +0 -0
  259. /package/dist/{selection.d.ts → selection/selection.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"text-edit.js","sourceRoot":"","sources":["../../src/editor/text-edit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"text-edit.js","sourceRoot":"","sources":["../../src/editor/text-edit.ts"],"names":[],"mappings":"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"}
package/dist/editor.d.ts CHANGED
@@ -1,14 +1,15 @@
1
1
  import { type Actor } from "xstate";
2
2
  import type { Bounds, FileId, ElementId, Vec2 } from "@oh-just-another/types";
3
3
  import type { SpatialGrid } from "@oh-just-another/scene";
4
- import { type FractionalIndex, type BrushPoint, type Link, type Patch, type Scene, type Element, type GridStyle, type ImageCrop, type TextStyle } from "@oh-just-another/scene";
4
+ import { type FractionalIndex, type BrushPoint, type Link, type Patch, type Scene, type Element, type GridStyle, type StartView, type ImageCrop, type ImageMask, type TextStyle } from "@oh-just-another/scene";
5
5
  import { type AnnotationId, type Color, type CommentId, type LinkId, type LayerId } from "@oh-just-another/types";
6
6
  import { ElementCache, type RenderTarget, type TextShaper, type Rasterizer } from "@oh-just-another/renderer-core";
7
7
  import { type HistoryOptions, type HistoryProvider, type TransactionHandle } from "@oh-just-another/history";
8
- import { type FileDropHandler } from "./file-drop.js";
9
- import { interactionMachine, type InteractionContext, type InteractionEmit, type PressTarget } from "./machine.js";
10
- import type { ActiveTool, Mode } from "./modes.js";
11
- import type { EditorEvents } from "./editor-events.js";
8
+ import { type FileDropHandler } from "./features/file-drop.js";
9
+ import { type EditorPreferences, type ImageAspectPreset, type DrawShapeKind, type LinkDrawPreset } from "./constants.js";
10
+ import { interactionMachine, type InteractionContext, type InteractionEmit, type PressTarget } from "./interaction/machine.js";
11
+ import type { ActiveTool, Mode } from "./interaction/modes.js";
12
+ import type { EditorEvents } from "./editor/editor-events.js";
12
13
  import { GifPlaybackController } from "./editor/gif-playback.js";
13
14
  import { LongPressController } from "./editor/long-press.js";
14
15
  import { PinchController } from "./editor/pinch.js";
@@ -19,9 +20,10 @@ import { type LaserStroke } from "./editor/public/laser.js";
19
20
  import type { CursorRole, CursorSpec } from "./editor/public/cursor.js";
20
21
  import { type ConvertTarget, type CropHandle, type SpawnDirection } from "./editor/public/tool-ops.js";
21
22
  import { type AlignEdge, type DistributeAxis, type FlipAxis } from "./editor/applies/arrange.js";
22
- import { type PeerCursor, type PeerSelection } from "./overlay.js";
23
- import * as Selection from "./selection.js";
24
- import * as LinkSelection from "./link-selection.js";
23
+ import { type SizeMatch, type SnapGuide } from "./editor/applies/object-snap.js";
24
+ import { type EditingTextOverlay, type PeerCursor, type PeerSelection, type SizeReadout } from "./render/overlay.js";
25
+ import * as Selection from "./selection/selection.js";
26
+ import * as LinkSelection from "./selection/link-selection.js";
25
27
  export interface LoadSceneOptions {
26
28
  /**
27
29
  * Keep the existing undo/redo stack when swapping scenes. Used by
@@ -81,6 +83,13 @@ export interface EditorOptions {
81
83
  * reports a coarse primary pointer, else `"mouse"`. Default.
82
84
  */
83
85
  readonly inputMode?: "mouse" | "touch" | "auto";
86
+ /**
87
+ * Initial per-user preferences (object snapping, size readouts, wheel
88
+ * routing) — see {@link EditorPreferences}. Missing keys take
89
+ * {@link DEFAULT_EDITOR_PREFERENCES}; change at runtime via
90
+ * {@link Editor.setPreferences}.
91
+ */
92
+ readonly preferences?: Partial<EditorPreferences>;
84
93
  /**
85
94
  * Optional text shaper. When supplied, replaces the renderer's
86
95
  * default Canvas2D `measureText` path for wrap / layout. Plug
@@ -408,6 +417,14 @@ export declare class Editor {
408
417
  * this lets that active→inactive transition force one full repaint.
409
418
  */
410
419
  lastRenderedEraseActive: boolean;
420
+ /**
421
+ * Last-painted hovered sticky — paired with `lastRenderedScene` like
422
+ * {@link lastRenderedEnteredGroup}. Hovering changes only chrome (the
423
+ * "+" add-reaction button), not the scene, so the dirty-rect diff is
424
+ * empty and the button would never appear / disappear without this
425
+ * forcing a full repaint on hover transitions.
426
+ */
427
+ lastRenderedHoveredSticky: ElementId | null;
411
428
  /**
412
429
  * Set whenever an eraser move actually CHANGES the marked / cut set (a new
413
430
  * shape marked, un-marked, or a brush point cut). Gates the forced full
@@ -549,6 +566,9 @@ export declare class Editor {
549
566
  */
550
567
  get panGesture(): PanGesture | null;
551
568
  set panGesture(v: PanGesture | null);
569
+ /** Element being placed by a library drag, or null (see `beginPlacement`). */
570
+ get placementId(): ElementId | null;
571
+ set placementId(v: ElementId | null);
552
572
  /**
553
573
  * Set on a right-click pointerdown so the upcoming native
554
574
  * `contextmenu` event can be unconditionally preventDefault'ed
@@ -772,6 +792,33 @@ export declare class Editor {
772
792
  setGridVisible(on: boolean): void;
773
793
  /** Toggle the background grid on/off. */
774
794
  toggleGrid(): void;
795
+ private _preferences;
796
+ /** Per-user preferences — see {@link EditorPreferences}. */
797
+ get preferences(): EditorPreferences;
798
+ /**
799
+ * Merge `patch` over the current preferences. Not part of the document
800
+ * and never recorded in history; hosts persist the result per browser.
801
+ * Subscribers are notified (the object identity changes only when a
802
+ * value actually changed).
803
+ */
804
+ setPreferences(patch: Partial<EditorPreferences>): void;
805
+ /**
806
+ * Clear the `locked` flag on every locked element (one undo step).
807
+ * The canvas menu's "Unlock all"; no-op when nothing is locked.
808
+ */
809
+ unlockAll(): void;
810
+ /** The document's saved start view, or `null` when none is set. */
811
+ get startView(): StartView | null;
812
+ /**
813
+ * Save the current camera (pan + zoom) as the document's start view —
814
+ * where the document opens and where {@link goToStartView} jumps.
815
+ * Persists in the viewport (exported with the scene), not in history.
816
+ */
817
+ setCurrentViewAsStart(): void;
818
+ /** Forget the saved start view. No-op when none is set. */
819
+ clearStartView(): void;
820
+ /** Move the camera to the saved start view. No-op when none is set. */
821
+ goToStartView(): void;
775
822
  /** All currently-selected link (connector) ids. */
776
823
  get selectedLinks(): LinkSelection.LinkSelection;
777
824
  /**
@@ -797,6 +844,8 @@ export declare class Editor {
797
844
  registerFileDropHandler(handler: FileDropHandler): void;
798
845
  /** Drop a registered handler. */
799
846
  unregisterFileDropHandler(id: string): void;
847
+ /** Registered file-drop handlers, in dispatch order — the drop overlay lists the labelled ones. */
848
+ getFileDropHandlers(): readonly FileDropHandler[];
800
849
  /**
801
850
  * Dispatch a dropped file (or pasted file from clipboard) into
802
851
  * the registered handlers. Returns `true` when a handler accepted
@@ -819,6 +868,24 @@ export declare class Editor {
819
868
  * toolbar buttons and hotkeys reach it through the action registry.
820
869
  * Records the outgoing tool in `activeTool.lastActiveTool`.
821
870
  */
871
+ /**
872
+ * Shape kind the next rubber-band draw creates while `draw-rect` is
873
+ * armed (the "Shapes and lines" flyout arms diamond / triangle through
874
+ * the same mode). Reset to "rect" on every tool switch so hotkeys and
875
+ * plain toolbar buttons keep their stock behaviour.
876
+ */
877
+ private _drawShapeKind;
878
+ get drawShapeKind(): DrawShapeKind;
879
+ /**
880
+ * Connector preset for NEW links drawn in `draw-edge` mode (see
881
+ * `LINK_DRAW_PRESETS`); `null` = stock defaults. Reset on tool switch.
882
+ */
883
+ private _linkDrawPreset;
884
+ get linkDrawPreset(): LinkDrawPreset | null;
885
+ /** Arm the shape-drawing tool for `kind` (the flyout's shape rows). */
886
+ armShapeTool(kind: DrawShapeKind): void;
887
+ /** Arm the connector tool with a line preset (the flyout's line rows). */
888
+ armLineTool(preset: LinkDrawPreset): void;
822
889
  setActiveTool(mode: Mode): void;
823
890
  /** Undo the latest record. No-op if there is nothing to undo. */
824
891
  undo(): boolean;
@@ -894,6 +961,14 @@ export declare class Editor {
894
961
  * Pass `null` when the pointer leaves all shapes.
895
962
  */
896
963
  hoverAnimatedElement(id: ElementId | null): void;
964
+ /**
965
+ * Sticky under the idle cursor (its render bounds, so the reaction row
966
+ * below the card counts too) — drives the canvas-drawn hover-only "+"
967
+ * add-reaction button. Set by the pointer-move path; `null` clears.
968
+ */
969
+ private _hoveredStickyId;
970
+ get hoveredStickyId(): ElementId | null;
971
+ setHoveredSticky(id: ElementId | null): void;
897
972
  /** True when the shape's GIF is paused (drives the overlay badge). */
898
973
  isPlaybackPaused(id: ElementId): boolean;
899
974
  /**
@@ -1027,15 +1102,7 @@ export declare class Editor {
1027
1102
  * Returns `null` when not editing. The caret is `null` while blinked
1028
1103
  * off so the overlay can simply skip drawing it.
1029
1104
  */
1030
- editingTextOverlay(): {
1031
- caret: {
1032
- x: number;
1033
- y: number;
1034
- height: number;
1035
- } | null;
1036
- caretColor: string;
1037
- selectionRects: readonly Bounds[];
1038
- } | null;
1105
+ editingTextOverlay(): EditingTextOverlay | null;
1039
1106
  commitTextEdit(next?: string): void;
1040
1107
  cancelTextEdit(): void;
1041
1108
  /**
@@ -1064,6 +1131,11 @@ export declare class Editor {
1064
1131
  * the tool is locked.
1065
1132
  */
1066
1133
  createTextAt(worldPoint: Vec2): ElementId;
1134
+ /**
1135
+ * Drop a default sticky note centred on `worldPoint`, select it and open
1136
+ * its inline editor (the canvas menu's "Add sticky note"). One undo step.
1137
+ */
1138
+ createStickyAt(worldPoint: Vec2): ElementId | null;
1067
1139
  /** Current brush paint settings (line colour, fill, opacity, width). */
1068
1140
  private _brushSettings;
1069
1141
  get brushSettings(): BrushSettings;
@@ -1201,6 +1273,14 @@ export declare class Editor {
1201
1273
  * New shapes get fresh ids and end up selected. Single undo step.
1202
1274
  */
1203
1275
  paste(targetWorld?: Vec2): void;
1276
+ /**
1277
+ * Insert a whole scene fragment (an imported diagram — elements, links,
1278
+ * binary files) into the current scene, centred on `targetWorld` (default:
1279
+ * the last pointer position, else the fragment stays where it is). Ids are
1280
+ * remapped, everything lands on the active layer, one undo step; the new
1281
+ * elements become the selection. Returns their ids.
1282
+ */
1283
+ insertScene(fragment: Scene, targetWorld?: Vec2): readonly ElementId[];
1204
1284
  /**
1205
1285
  * Merge `partial` into the `style` of every shape in `ids`. Useful
1206
1286
  * for the inspector / PropertyPanel: flipping `roundness`, swapping
@@ -1236,6 +1316,111 @@ export declare class Editor {
1236
1316
  * inline-edit selection).
1237
1317
  */
1238
1318
  applyTextStyleToRange(id: ElementId, from: number, to: number, partial: Partial<TextStyle>): void;
1319
+ /**
1320
+ * Merge a partial text style into the embedded label's style on every
1321
+ * shape in `ids` that carries a label. One undo step. The counterpart
1322
+ * of `updateStyle` for shape labels (which must not collide with the
1323
+ * shape body's own fill / stroke).
1324
+ */
1325
+ updateLabelStyle(ids: Iterable<ElementId>, partial: Partial<TextStyle>): void;
1326
+ /**
1327
+ * Merge font family / size into the embedded label. Picking an
1328
+ * explicit `fontSize` also leaves auto-fit mode (reference behaviour —
1329
+ * a concrete size wins over the automatic one). One undo step.
1330
+ */
1331
+ updateLabelProps(ids: Iterable<ElementId>, partial: {
1332
+ readonly fontFamily?: string;
1333
+ readonly fontSize?: number;
1334
+ }): void;
1335
+ /** Toggle auto-fit label sizing (sticky notes). One undo step. */
1336
+ setLabelAutoFit(ids: Iterable<ElementId>, on: boolean): void;
1337
+ /**
1338
+ * Resize sticky notes to a square preset side (`STICKY_SIZE_PRESETS`).
1339
+ * One undo step; non-sticky ids are skipped.
1340
+ */
1341
+ setStickySize(ids: Iterable<ElementId>, side: number): void;
1342
+ /**
1343
+ * Toggle the author-name strip on sticky notes. Turning it on fills a
1344
+ * missing `authorName` from the editor's comment author (the local
1345
+ * user). One undo step.
1346
+ */
1347
+ toggleStickyAuthor(ids: Iterable<ElementId>): void;
1348
+ /** Replace the tag list on sticky notes. One undo step. */
1349
+ setStickyTags(ids: Iterable<ElementId>, tags: readonly string[]): void;
1350
+ /**
1351
+ * Toggle the local user's emoji reaction on a sticky note. A glyph the
1352
+ * user has NOT reacted with gains their reaction (+1); one they
1353
+ * already reacted with loses it (-1, removing the glyph at zero).
1354
+ * Other users' reactions are never touched — so counters only grow
1355
+ * through OTHER collaborators. Plain element data → syncs through the
1356
+ * normal scene channel. One undo step.
1357
+ */
1358
+ toggleStickyReaction(id: ElementId, glyph: string): void;
1359
+ /** Replace an emoji element's glyph (the toolbar picker). One undo step. */
1360
+ setEmojiGlyph(ids: Iterable<ElementId>, glyph: string): void;
1361
+ /**
1362
+ * Resize a frame to one of the `FRAME_SIZE_PRESETS` (top-left corner
1363
+ * stays put; members keep their absolute positions). One undo step.
1364
+ */
1365
+ applyFramePreset(id: ElementId, preset: {
1366
+ width: number;
1367
+ height: number;
1368
+ }): void;
1369
+ /**
1370
+ * Rename the binary file behind an image (the toolbar's file-name
1371
+ * input). One undo step; no-op when the id is unknown or the name is
1372
+ * unchanged.
1373
+ */
1374
+ renameBinaryFile(id: FileId, name: string): void;
1375
+ /** Set (or clear, with `null`) the accessible description on image shapes. */
1376
+ setImageAlt(ids: Iterable<ElementId>, alt: string | null): void;
1377
+ /**
1378
+ * Set (or clear, with `null`) the shape mask on image elements. The
1379
+ * mask clips the drawn box (renderer-side `RenderTarget.clip`);
1380
+ * normalised coordinates make it survive resizes. One undo step.
1381
+ */
1382
+ setImageMask(ids: Iterable<ElementId>, mask: ImageMask | null): void;
1383
+ /**
1384
+ * Apply an aspect preset from the mask picker to image elements.
1385
+ * `"original"` clears crop AND mask and refits the box to the source's
1386
+ * natural aspect; the ratio presets centre-crop the source to the
1387
+ * target aspect and refit the box height (width kept), with `"circle"`
1388
+ * additionally installing an ellipse mask on the square box. The
1389
+ * source's natural aspect derives from the current box + crop (the box
1390
+ * always displays the crop region undistorted), so no live image
1391
+ * handle is needed. One undo step.
1392
+ */
1393
+ setImageAspectPreset(ids: Iterable<ElementId>, preset: ImageAspectPreset): void;
1394
+ /**
1395
+ * Swap a media shape's backing file for `blob` while keeping its
1396
+ * position and width (height refits to the new aspect). Accepts static
1397
+ * images, GIFs and videos — the shape's animation fields are rewritten
1398
+ * to match the NEW media kind, and `crop` resets when the media kind
1399
+ * changes (its pixel rect targeted the old content). Registers the new
1400
+ * `BinaryFile`, points the shape at it, drops the stale live handle
1401
+ * (`metadata.image`) and rebuilds handles for the new bytes. One undo
1402
+ * step.
1403
+ */
1404
+ replaceImageFile(id: ElementId, blob: Blob, name?: string): Promise<void>;
1405
+ /**
1406
+ * Paragraph targets for the list operations: while inline-editing one
1407
+ * of `ids`, only the paragraphs covered by the caret / selection;
1408
+ * otherwise every paragraph of each text element. Returns `null` for
1409
+ * non-text ids.
1410
+ */
1411
+ private paragraphTargets;
1412
+ /**
1413
+ * Set (or clear, with `null`) the list kind on the targeted paragraphs
1414
+ * of every text element in `ids` — the inline-edit selection's
1415
+ * paragraphs while editing, the whole element otherwise. One undo step.
1416
+ */
1417
+ setParagraphList(ids: Iterable<ElementId>, kind: "bullet" | "numbered" | null): void;
1418
+ /**
1419
+ * Shift the targeted paragraphs' list nesting by `delta` (±1), clamped
1420
+ * to `[0, MAX_LIST_INDENT]`. Same targeting rules as
1421
+ * {@link setParagraphList}. One undo step.
1422
+ */
1423
+ indentParagraphs(ids: Iterable<ElementId>, delta: 1 | -1): void;
1239
1424
  /**
1240
1425
  * The fill (or stroke, per `role`) colour of the top-most shape under the
1241
1426
  * world point, or `null` on empty canvas. Pure read — no mutation.
@@ -1473,6 +1658,13 @@ export declare class Editor {
1473
1658
  * rotate gesture drives the same maths from a press-time snapshot.
1474
1659
  */
1475
1660
  rotateSelection(delta: number): void;
1661
+ /**
1662
+ * Straighten the selection: every selected element (and descendants of
1663
+ * selected groups) goes back to `rotation: 0`, each turning about its own
1664
+ * centre so it stays where it is. One undoable step; no-op when nothing
1665
+ * is rotated. Triggered by a double-click on the rotate grip.
1666
+ */
1667
+ resetSelectionRotation(): void;
1476
1668
  /** Apply a batch of arrange patches as a single undoable step. */
1477
1669
  private commitArrange;
1478
1670
  compactLayerZOrder(layerId?: LayerId, options?: {
@@ -1504,6 +1696,11 @@ export declare class Editor {
1504
1696
  zoomIn(): void;
1505
1697
  zoomOut(): void;
1506
1698
  private zoomStep;
1699
+ /**
1700
+ * Set an absolute zoom level (1 = 100%), scaling about the viewport
1701
+ * centre and clamped to `MIN_ZOOM..MAX_ZOOM`. The zoom menu's presets.
1702
+ */
1703
+ setZoom(level: number): void;
1507
1704
  resetZoom(): void;
1508
1705
  zoomToFit(padding?: number): void;
1509
1706
  /** Fit the camera to the current selection (standard `⌥2`). No-op when empty. */
@@ -1515,6 +1712,14 @@ export declare class Editor {
1515
1712
  * fit an oversized match. No-op when the selection is empty.
1516
1713
  */
1517
1714
  revealSelection(padding?: number): void;
1715
+ /**
1716
+ * "Back to content": jump to the element nearest the camera centre, keeping
1717
+ * the current zoom (it only drops when that element doesn't fit). Unlike
1718
+ * {@link zoomToFit} this neither shrinks a large board to a speck nor blows
1719
+ * a single small shape up to full screen. Groups are skipped (their own
1720
+ * bounds are empty — their children count). No-op on an empty scene.
1721
+ */
1722
+ revealNearestContent(padding?: number): void;
1518
1723
  /**
1519
1724
  * Select the nearest interactable top-level element in `direction` from the
1520
1725
  * current selection's centre (or the viewport centre when nothing is
@@ -1559,6 +1764,47 @@ export declare class Editor {
1559
1764
  private snapActive;
1560
1765
  /** World-unit spacing the current gesture snaps to. */
1561
1766
  private snapSpacing;
1767
+ /**
1768
+ * Object snapping is a per-user preference; the suppress modifier
1769
+ * (Cmd/Ctrl) bypasses it for the current gesture like grid snapping.
1770
+ */
1771
+ private objectSnapActive;
1772
+ private sizeSuggestActive;
1773
+ /**
1774
+ * World AABBs of the shapes a gesture may snap to (reference rules): every
1775
+ * visible element on screen that is not being moved / resized, except
1776
+ * groups (no geometry of their own), brush strokes (freehand ink is never
1777
+ * a snap target), shapes rotated off the 90° grid, and shapes too small on
1778
+ * screen (`OBJECT_SNAP_MIN_SIZE_PX`). Returns nothing on a crowded view
1779
+ * (`OBJECT_SNAP_MAX_CANDIDATES`) so a huge board never stalls a drag.
1780
+ */
1781
+ private snapCandidates;
1782
+ /** Brush strokes never snap (as movers or targets) — freehand ink has no meaningful edges. */
1783
+ private snapsAsMover;
1784
+ /**
1785
+ * Move-delta snapping: object snapping (edges / centres of nearby shapes)
1786
+ * wins when it lands; otherwise grid snapping. Records the guides for the
1787
+ * overlay either way.
1788
+ */
1789
+ private snapMoveDeltaFor;
1790
+ /**
1791
+ * Group move: the press-time union AABB of the members (each member's
1792
+ * current geometry at its press-time position; brush strokes excluded)
1793
+ * snaps to nearby shapes by its frame EDGES only — a multi-selection has
1794
+ * no centre line, like the reference. Falls back to the grid
1795
+ * reference-point snap.
1796
+ */
1797
+ private snapGroupMoveDelta;
1798
+ /** Resize-delta counterpart of {@link snapMoveDeltaFor}; also sets `sizeMatch`. */
1799
+ private snapResizeDeltaFor;
1800
+ /** Publish the `W × H` readout for `bounds` when the preference is on. */
1801
+ private setSizeReadout;
1802
+ /** Alignment guides of the current gesture tick (object snapping). */
1803
+ get snapGuides(): readonly SnapGuide[];
1804
+ /** `W × H` readout of the shape being resized, when `showObjectSize` is on. */
1805
+ get sizeReadout(): SizeReadout | null;
1806
+ /** Bounds of the shape whose size the current resize matched, if any. */
1807
+ get sizeMatch(): SizeMatch | null;
1562
1808
  /**
1563
1809
  * Replace the entire scene (e.g. after `parseScene`). Clears history,
1564
1810
  * selection and any open gesture. Use to load a saved document.
@@ -1583,6 +1829,17 @@ export declare class Editor {
1583
1829
  */
1584
1830
  endPanGesture(): void;
1585
1831
  isDrawingPhase(ctx: InteractionContext): boolean;
1832
+ /**
1833
+ * Context press (right-click / touch long-press): first make the selection
1834
+ * match what was pressed, then notify the `onLongPress` listeners so the
1835
+ * menu they open describes that point.
1836
+ * - On an unselected element / link → it becomes the selection.
1837
+ * - On a selected element (or its chrome: handles, rotate grip) → keep.
1838
+ * - On empty canvas → clear elements + links, so the menu is the canvas
1839
+ * menu rather than the previous selection's.
1840
+ */
1841
+ private fireContextPress;
1842
+ private routeContextPress;
1586
1843
  startLongPress(screenPoint: Vec2): void;
1587
1844
  cancelLongPress(): void;
1588
1845
  beginPinch(): void;
@@ -1648,6 +1905,21 @@ export declare class Editor {
1648
1905
  * can't be moved or resized.
1649
1906
  */
1650
1907
  toggleLockSelection(): void;
1908
+ /**
1909
+ * Topmost locked (own or inherited `locked`) shape at `worldPoint`, on a
1910
+ * visible, unlocked layer. Locked shapes are click-through for normal
1911
+ * interaction, so this is the dedicated lookup for affordances that must
1912
+ * still find them — the context menu's Unlock entry.
1913
+ */
1914
+ lockedElementAt(worldPoint: Vec2): Element | null;
1915
+ /**
1916
+ * Clear the `locked` flag on the shape that carries it. When the flag
1917
+ * lives on an ancestor (group lock propagation), the closest locked
1918
+ * ancestor is unlocked instead, so the whole locked unit is released.
1919
+ * Selects the unlocked shape afterwards — the natural next step after
1920
+ * an unlock is editing it. One undo step.
1921
+ */
1922
+ unlockElement(id: ElementId): void;
1651
1923
  /**
1652
1924
  * Promote a hit shape to the topmost ancestor whose group we have NOT
1653
1925
  * "entered" yet. Only **`group`**-typed parents promote — containers
@@ -1736,7 +2008,7 @@ export declare class Editor {
1736
2008
  * scene-identity. Scene operations replace `_scene` (immutable patches),
1737
2009
  * so reference-equality is a sufficient invalidation signal.
1738
2010
  */
1739
- acceleratedElementAt(worldPoint: Vec2): Element | undefined;
2011
+ acceleratedElementAt(worldPoint: Vec2, accept?: (shape: Element) => boolean): Element | undefined;
1740
2012
  /**
1741
2013
  * Build (or return the cached) `SpatialGrid` for the current scene.
1742
2014
  * Re-built only when `_scene` reference changes — scene operations
@@ -1855,6 +2127,15 @@ export declare class Editor {
1855
2127
  private applyRotate;
1856
2128
  private applyGroupResize;
1857
2129
  private applyResize;
2130
+ /** World AABB of `id` after a resize tick (null when the shape is gone). */
2131
+ private resizedBounds;
2132
+ /**
2133
+ * Snap freshly-drawn bounds onto the grid when snapping is active.
2134
+ * Shared by the live rubber-band preview and the final CREATE so the
2135
+ * preview shows exactly where the shape will land (parity with how
2136
+ * move / resize snap live during the gesture).
2137
+ */
2138
+ snapCreateBoundsIfActive(bounds: Bounds): Bounds;
1858
2139
  private applyCreate;
1859
2140
  /** Generate the next "Frame N" name based on existing frames. */
1860
2141
  private nextFrameName;
@@ -2054,6 +2335,13 @@ export declare class Editor {
2054
2335
  * into a single render per frame.
2055
2336
  */
2056
2337
  private renderRafId;
2338
+ /**
2339
+ * Set by {@link dispose}. Render scheduling bails out when set:
2340
+ * async completions (image decode, font load, wasm init) can resolve
2341
+ * after the host tears the editor down (e.g. a runtime backend
2342
+ * switch) and must not paint onto disposed render targets.
2343
+ */
2344
+ private disposed;
2057
2345
  /** Unsubscribe for the animation-content-ready listener (decode → re-render). */
2058
2346
  private animationContentOff;
2059
2347
  /**