@oh-just-another/state 0.58.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 (272) hide show
  1. package/CHANGELOG.md +158 -0
  2. package/README.md +78 -27
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/actions/actionArrange.d.ts +13 -0
  5. package/dist/actions/actionArrange.d.ts.map +1 -0
  6. package/dist/actions/actionArrange.js +130 -0
  7. package/dist/actions/actionArrange.js.map +1 -0
  8. package/dist/actions/actionClipboard.d.ts +2 -0
  9. package/dist/actions/actionClipboard.d.ts.map +1 -1
  10. package/dist/actions/actionClipboard.js +32 -1
  11. package/dist/actions/actionClipboard.js.map +1 -1
  12. package/dist/actions/actionKeyboard.d.ts.map +1 -1
  13. package/dist/actions/actionKeyboard.js +77 -9
  14. package/dist/actions/actionKeyboard.js.map +1 -1
  15. package/dist/actions/actionMode.d.ts +4 -0
  16. package/dist/actions/actionMode.d.ts.map +1 -1
  17. package/dist/actions/actionMode.js +54 -0
  18. package/dist/actions/actionMode.js.map +1 -1
  19. package/dist/actions/actionSelection.d.ts.map +1 -1
  20. package/dist/actions/actionSelection.js +1 -0
  21. package/dist/actions/actionSelection.js.map +1 -1
  22. package/dist/actions/actionText.d.ts +5 -0
  23. package/dist/actions/actionText.d.ts.map +1 -0
  24. package/dist/actions/actionText.js +37 -0
  25. package/dist/actions/actionText.js.map +1 -0
  26. package/dist/actions/actionView.d.ts +6 -0
  27. package/dist/actions/actionView.d.ts.map +1 -1
  28. package/dist/actions/actionView.js +20 -2
  29. package/dist/actions/actionView.js.map +1 -1
  30. package/dist/actions/actionZoom.d.ts.map +1 -1
  31. package/dist/actions/actionZoom.js +5 -0
  32. package/dist/actions/actionZoom.js.map +1 -1
  33. package/dist/actions/index.d.ts +6 -4
  34. package/dist/actions/index.d.ts.map +1 -1
  35. package/dist/actions/index.js +6 -4
  36. package/dist/actions/index.js.map +1 -1
  37. package/dist/actions/registry.d.ts.map +1 -1
  38. package/dist/actions/registry.js +17 -0
  39. package/dist/actions/registry.js.map +1 -1
  40. package/dist/actions/types.d.ts +10 -1
  41. package/dist/actions/types.d.ts.map +1 -1
  42. package/dist/actions/types.js.map +1 -1
  43. package/dist/auto-layout-scheduler.d.ts +1 -3
  44. package/dist/auto-layout-scheduler.d.ts.map +1 -1
  45. package/dist/auto-layout-scheduler.js +1 -2
  46. package/dist/auto-layout-scheduler.js.map +1 -1
  47. package/dist/built-in-handlers.d.ts.map +1 -1
  48. package/dist/built-in-handlers.js +14 -1
  49. package/dist/built-in-handlers.js.map +1 -1
  50. package/dist/clipboard.d.ts +0 -14
  51. package/dist/clipboard.d.ts.map +1 -1
  52. package/dist/clipboard.js +1 -1
  53. package/dist/clipboard.js.map +1 -1
  54. package/dist/constants.d.ts +208 -41
  55. package/dist/constants.d.ts.map +1 -1
  56. package/dist/constants.js +210 -25
  57. package/dist/constants.js.map +1 -1
  58. package/dist/dom-events.d.ts +8 -2
  59. package/dist/dom-events.d.ts.map +1 -1
  60. package/dist/dom-events.js +12 -0
  61. package/dist/dom-events.js.map +1 -1
  62. package/dist/editor/animation-scene.d.ts +36 -0
  63. package/dist/editor/animation-scene.d.ts.map +1 -0
  64. package/dist/editor/animation-scene.js +194 -0
  65. package/dist/editor/animation-scene.js.map +1 -0
  66. package/dist/editor/animation.d.ts +43 -0
  67. package/dist/editor/animation.d.ts.map +1 -0
  68. package/dist/editor/animation.js +80 -0
  69. package/dist/editor/animation.js.map +1 -0
  70. package/dist/editor/applies/arrange.d.ts +46 -0
  71. package/dist/editor/applies/arrange.d.ts.map +1 -0
  72. package/dist/editor/applies/arrange.js +162 -0
  73. package/dist/editor/applies/arrange.js.map +1 -0
  74. package/dist/editor/applies/create.d.ts +0 -6
  75. package/dist/editor/applies/create.d.ts.map +1 -1
  76. package/dist/editor/applies/create.js +1 -1
  77. package/dist/editor/applies/create.js.map +1 -1
  78. package/dist/editor/applies/edge.d.ts +8 -1
  79. package/dist/editor/applies/edge.d.ts.map +1 -1
  80. package/dist/editor/applies/edge.js +31 -1
  81. package/dist/editor/applies/edge.js.map +1 -1
  82. package/dist/editor/applies/link-move.d.ts +0 -8
  83. package/dist/editor/applies/link-move.d.ts.map +1 -1
  84. package/dist/editor/applies/link-move.js +1 -1
  85. package/dist/editor/applies/link-move.js.map +1 -1
  86. package/dist/editor/applies/move.d.ts +6 -0
  87. package/dist/editor/applies/move.d.ts.map +1 -1
  88. package/dist/editor/applies/move.js +6 -0
  89. package/dist/editor/applies/move.js.map +1 -1
  90. package/dist/editor/applies/resize.d.ts +26 -5
  91. package/dist/editor/applies/resize.d.ts.map +1 -1
  92. package/dist/editor/applies/resize.js +91 -13
  93. package/dist/editor/applies/resize.js.map +1 -1
  94. package/dist/editor/caret-blink.d.ts +18 -0
  95. package/dist/editor/caret-blink.d.ts.map +1 -0
  96. package/dist/editor/caret-blink.js +42 -0
  97. package/dist/editor/caret-blink.js.map +1 -0
  98. package/dist/editor/container-ops.d.ts.map +1 -1
  99. package/dist/editor/container-ops.js +2 -2
  100. package/dist/editor/container-ops.js.map +1 -1
  101. package/dist/editor/dirty-rect.d.ts +23 -0
  102. package/dist/editor/dirty-rect.d.ts.map +1 -0
  103. package/dist/editor/dirty-rect.js +115 -0
  104. package/dist/editor/dirty-rect.js.map +1 -0
  105. package/dist/editor/gif-playback.d.ts +45 -0
  106. package/dist/editor/gif-playback.d.ts.map +1 -0
  107. package/dist/editor/gif-playback.js +125 -0
  108. package/dist/editor/gif-playback.js.map +1 -0
  109. package/dist/editor/hit-test.d.ts +3 -3
  110. package/dist/editor/hit-test.d.ts.map +1 -1
  111. package/dist/editor/hit-test.js +40 -15
  112. package/dist/editor/hit-test.js.map +1 -1
  113. package/dist/editor/interaction-state.d.ts +184 -0
  114. package/dist/editor/interaction-state.d.ts.map +1 -0
  115. package/dist/editor/interaction-state.js +139 -0
  116. package/dist/editor/interaction-state.js.map +1 -0
  117. package/dist/editor/link-handle-drag.d.ts +152 -0
  118. package/dist/editor/link-handle-drag.d.ts.map +1 -0
  119. package/dist/editor/link-handle-drag.js +300 -0
  120. package/dist/editor/link-handle-drag.js.map +1 -0
  121. package/dist/editor/long-press.d.ts.map +1 -1
  122. package/dist/editor/long-press.js +2 -2
  123. package/dist/editor/long-press.js.map +1 -1
  124. package/dist/editor/pinch.d.ts.map +1 -1
  125. package/dist/editor/pinch.js +6 -6
  126. package/dist/editor/pinch.js.map +1 -1
  127. package/dist/editor/pointer-binding.d.ts +9 -11
  128. package/dist/editor/pointer-binding.d.ts.map +1 -1
  129. package/dist/editor/pointer-binding.js +1191 -890
  130. package/dist/editor/pointer-binding.js.map +1 -1
  131. package/dist/editor/public/arrange-group.d.ts +3 -9
  132. package/dist/editor/public/arrange-group.d.ts.map +1 -1
  133. package/dist/editor/public/arrange-group.js +4 -6
  134. package/dist/editor/public/arrange-group.js.map +1 -1
  135. package/dist/editor/public/brush.d.ts +31 -12
  136. package/dist/editor/public/brush.d.ts.map +1 -1
  137. package/dist/editor/public/brush.js +66 -17
  138. package/dist/editor/public/brush.js.map +1 -1
  139. package/dist/editor/public/clipboard.d.ts +2 -4
  140. package/dist/editor/public/clipboard.d.ts.map +1 -1
  141. package/dist/editor/public/clipboard.js +2 -4
  142. package/dist/editor/public/clipboard.js.map +1 -1
  143. package/dist/editor/public/cursor.d.ts +29 -0
  144. package/dist/editor/public/cursor.d.ts.map +1 -0
  145. package/dist/editor/public/cursor.js +146 -0
  146. package/dist/editor/public/cursor.js.map +1 -0
  147. package/dist/editor/public/eraser.d.ts +55 -0
  148. package/dist/editor/public/eraser.d.ts.map +1 -0
  149. package/dist/editor/public/eraser.js +65 -0
  150. package/dist/editor/public/eraser.js.map +1 -0
  151. package/dist/editor/public/frame-name.d.ts +20 -0
  152. package/dist/editor/public/frame-name.d.ts.map +1 -0
  153. package/dist/editor/public/frame-name.js +54 -0
  154. package/dist/editor/public/frame-name.js.map +1 -0
  155. package/dist/editor/public/image-insert.d.ts +1 -1
  156. package/dist/editor/public/image-insert.d.ts.map +1 -1
  157. package/dist/editor/public/laser.d.ts +38 -0
  158. package/dist/editor/public/laser.d.ts.map +1 -0
  159. package/dist/editor/public/laser.js +42 -0
  160. package/dist/editor/public/laser.js.map +1 -0
  161. package/dist/editor/public/layers.d.ts.map +1 -1
  162. package/dist/editor/public/layers.js +2 -2
  163. package/dist/editor/public/layers.js.map +1 -1
  164. package/dist/editor/public/link.d.ts +11 -2
  165. package/dist/editor/public/link.d.ts.map +1 -1
  166. package/dist/editor/public/link.js +70 -2
  167. package/dist/editor/public/link.js.map +1 -1
  168. package/dist/editor/public/placement.d.ts +60 -2
  169. package/dist/editor/public/placement.d.ts.map +1 -1
  170. package/dist/editor/public/placement.js +193 -2
  171. package/dist/editor/public/placement.js.map +1 -1
  172. package/dist/editor/public/selection-ops.d.ts +35 -1
  173. package/dist/editor/public/selection-ops.d.ts.map +1 -1
  174. package/dist/editor/public/selection-ops.js +97 -2
  175. package/dist/editor/public/selection-ops.js.map +1 -1
  176. package/dist/editor/public/stroke-eraser-coverage.d.ts +37 -0
  177. package/dist/editor/public/stroke-eraser-coverage.d.ts.map +1 -0
  178. package/dist/editor/public/stroke-eraser-coverage.js +168 -0
  179. package/dist/editor/public/stroke-eraser-coverage.js.map +1 -0
  180. package/dist/editor/public/stroke-eraser.d.ts +50 -0
  181. package/dist/editor/public/stroke-eraser.d.ts.map +1 -0
  182. package/dist/editor/public/stroke-eraser.js +176 -0
  183. package/dist/editor/public/stroke-eraser.js.map +1 -0
  184. package/dist/editor/public/stroke-smoothing.d.ts +21 -0
  185. package/dist/editor/public/stroke-smoothing.d.ts.map +1 -0
  186. package/dist/editor/public/stroke-smoothing.js +37 -0
  187. package/dist/editor/public/stroke-smoothing.js.map +1 -0
  188. package/dist/editor/public/text-edit.d.ts +1 -10
  189. package/dist/editor/public/text-edit.d.ts.map +1 -1
  190. package/dist/editor/public/text-edit.js +2 -16
  191. package/dist/editor/public/text-edit.js.map +1 -1
  192. package/dist/editor/public/tool-ops.d.ts +130 -0
  193. package/dist/editor/public/tool-ops.d.ts.map +1 -0
  194. package/dist/editor/public/tool-ops.js +392 -0
  195. package/dist/editor/public/tool-ops.js.map +1 -0
  196. package/dist/editor/public/z-order.d.ts +1 -12
  197. package/dist/editor/public/z-order.d.ts.map +1 -1
  198. package/dist/editor/public/z-order.js +5 -5
  199. package/dist/editor/public/z-order.js.map +1 -1
  200. package/dist/editor/public/zoom-pan.d.ts +15 -4
  201. package/dist/editor/public/zoom-pan.d.ts.map +1 -1
  202. package/dist/editor/public/zoom-pan.js +39 -7
  203. package/dist/editor/public/zoom-pan.js.map +1 -1
  204. package/dist/editor/render-orchestrator.d.ts +177 -5
  205. package/dist/editor/render-orchestrator.d.ts.map +1 -1
  206. package/dist/editor/render-orchestrator.js +519 -358
  207. package/dist/editor/render-orchestrator.js.map +1 -1
  208. package/dist/editor/resize-helpers.d.ts +21 -5
  209. package/dist/editor/resize-helpers.d.ts.map +1 -1
  210. package/dist/editor/resize-helpers.js +59 -19
  211. package/dist/editor/resize-helpers.js.map +1 -1
  212. package/dist/editor/text-edit.d.ts +136 -0
  213. package/dist/editor/text-edit.d.ts.map +1 -0
  214. package/dist/editor/text-edit.js +328 -0
  215. package/dist/editor/text-edit.js.map +1 -0
  216. package/dist/editor/viewport-helpers.d.ts.map +1 -1
  217. package/dist/editor/viewport-helpers.js +3 -3
  218. package/dist/editor/viewport-helpers.js.map +1 -1
  219. package/dist/editor-events.d.ts +1 -1
  220. package/dist/editor-events.d.ts.map +1 -1
  221. package/dist/editor.d.ts +603 -346
  222. package/dist/editor.d.ts.map +1 -1
  223. package/dist/editor.js +1843 -1630
  224. package/dist/editor.js.map +1 -1
  225. package/dist/file-drop.d.ts.map +1 -1
  226. package/dist/file-drop.js +1 -2
  227. package/dist/file-drop.js.map +1 -1
  228. package/dist/frame-helpers.d.ts.map +1 -1
  229. package/dist/frame-helpers.js +5 -5
  230. package/dist/frame-helpers.js.map +1 -1
  231. package/dist/group-helpers.d.ts.map +1 -1
  232. package/dist/group-helpers.js +4 -4
  233. package/dist/group-helpers.js.map +1 -1
  234. package/dist/handle.d.ts +59 -6
  235. package/dist/handle.d.ts.map +1 -1
  236. package/dist/handle.js +99 -7
  237. package/dist/handle.js.map +1 -1
  238. package/dist/hotkeys-binding.d.ts +26 -0
  239. package/dist/hotkeys-binding.d.ts.map +1 -0
  240. package/dist/hotkeys-binding.js +35 -0
  241. package/dist/hotkeys-binding.js.map +1 -0
  242. package/dist/index.d.ts +9 -3
  243. package/dist/index.d.ts.map +1 -1
  244. package/dist/index.js +10 -3
  245. package/dist/index.js.map +1 -1
  246. package/dist/link-selection.d.ts +3 -5
  247. package/dist/link-selection.d.ts.map +1 -1
  248. package/dist/link-selection.js +3 -12
  249. package/dist/link-selection.js.map +1 -1
  250. package/dist/machine.d.ts +27 -1
  251. package/dist/machine.d.ts.map +1 -1
  252. package/dist/machine.js +38 -0
  253. package/dist/machine.js.map +1 -1
  254. package/dist/modes.d.ts +15 -1
  255. package/dist/modes.d.ts.map +1 -1
  256. package/dist/modes.js.map +1 -1
  257. package/dist/overlay.d.ts +92 -6
  258. package/dist/overlay.d.ts.map +1 -1
  259. package/dist/overlay.js +582 -125
  260. package/dist/overlay.js.map +1 -1
  261. package/dist/search.d.ts +37 -0
  262. package/dist/search.d.ts.map +1 -0
  263. package/dist/search.js +45 -0
  264. package/dist/search.js.map +1 -0
  265. package/dist/selection.d.ts.map +1 -1
  266. package/dist/selection.js +2 -10
  267. package/dist/selection.js.map +1 -1
  268. package/dist/util.d.ts +8 -0
  269. package/dist/util.d.ts.map +1 -0
  270. package/dist/util.js +17 -0
  271. package/dist/util.js.map +1 -0
  272. package/package.json +7 -7
@@ -1,9 +1,9 @@
1
1
  import type { LinkId } from "@oh-just-another/types";
2
2
  /**
3
3
  * Set of currently selected link (connector) ids. A parallel set to the
4
- * element selection, kept separate so the element-selection code is untouched
5
- * while links become first-class members of the overall selection (Cmd+A,
6
- * marquee, multi-select, delete).
4
+ * element selection, kept separate so links are first-class members of the
5
+ * overall selection (Cmd+A, marquee, multi-select, delete) without coupling to
6
+ * the element-selection set.
7
7
  *
8
8
  * Immutable — operations return new sets. Sets (not arrays) give O(1)
9
9
  * membership checks during overlay rendering and hit-testing.
@@ -11,9 +11,7 @@ import type { LinkId } from "@oh-just-another/types";
11
11
  export type LinkSelection = ReadonlySet<LinkId>;
12
12
  export declare const EMPTY: LinkSelection;
13
13
  export declare const single: (id: LinkId) => LinkSelection;
14
- export declare const has: (sel: LinkSelection, id: LinkId) => boolean;
15
14
  export declare const add: (sel: LinkSelection, id: LinkId) => LinkSelection;
16
- export declare const remove: (sel: LinkSelection, id: LinkId) => LinkSelection;
17
15
  export declare const toggle: (sel: LinkSelection, id: LinkId) => LinkSelection;
18
16
  export declare const equals: (a: LinkSelection, b: LinkSelection) => boolean;
19
17
  /** The sole selected link, or null unless exactly one is selected. */
@@ -1 +1 @@
1
- {"version":3,"file":"link-selection.d.ts","sourceRoot":"","sources":["../src/link-selection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAErD;;;;;;;;GAQG;AACH,MAAM,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;AAEhD,eAAO,MAAM,KAAK,EAAE,aAAgD,CAAC;AAErE,eAAO,MAAM,MAAM,GAAI,IAAI,MAAM,KAAG,aAA8B,CAAC;AAEnE,eAAO,MAAM,GAAG,GAAI,KAAK,aAAa,EAAE,IAAI,MAAM,KAAG,OAAsB,CAAC;AAE5E,eAAO,MAAM,GAAG,GAAI,KAAK,aAAa,EAAE,IAAI,MAAM,KAAG,aAKpD,CAAC;AAEF,eAAO,MAAM,MAAM,GAAI,KAAK,aAAa,EAAE,IAAI,MAAM,KAAG,aAKvD,CAAC;AAEF,eAAO,MAAM,MAAM,GAAI,KAAK,aAAa,EAAE,IAAI,MAAM,KAAG,aACV,CAAC;AAE/C,eAAO,MAAM,MAAM,GAAI,GAAG,aAAa,EAAE,GAAG,aAAa,KAAG,OAK3D,CAAC;AAEF,sEAAsE;AACtE,eAAO,MAAM,IAAI,GAAI,KAAK,aAAa,KAAG,MAAM,GAAG,IAIlD,CAAC"}
1
+ {"version":3,"file":"link-selection.d.ts","sourceRoot":"","sources":["../src/link-selection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAGrD;;;;;;;;GAQG;AACH,MAAM,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;AAEhD,eAAO,MAAM,KAAK,EAAE,aAAgD,CAAC;AAErE,eAAO,MAAM,MAAM,GAAI,IAAI,MAAM,KAAG,aAA8B,CAAC;AAEnE,eAAO,MAAM,GAAG,GAAI,KAAK,aAAa,EAAE,IAAI,MAAM,KAAG,aAKpD,CAAC;AASF,eAAO,MAAM,MAAM,GAAI,KAAK,aAAa,EAAE,IAAI,MAAM,KAAG,aACV,CAAC;AAE/C,eAAO,MAAM,MAAM,GAAI,GAAG,aAAa,EAAE,GAAG,aAAa,KAAG,OAA0B,CAAC;AAEvF,sEAAsE;AACtE,eAAO,MAAM,IAAI,GAAI,KAAK,aAAa,KAAG,MAAM,GAAG,IAIlD,CAAC"}
@@ -1,6 +1,6 @@
1
+ import { setsEqual } from "./util.js";
1
2
  export const EMPTY = Object.freeze(new Set());
2
3
  export const single = (id) => new Set([id]);
3
- export const has = (sel, id) => sel.has(id);
4
4
  export const add = (sel, id) => {
5
5
  if (sel.has(id))
6
6
  return sel;
@@ -8,7 +8,7 @@ export const add = (sel, id) => {
8
8
  next.add(id);
9
9
  return next;
10
10
  };
11
- export const remove = (sel, id) => {
11
+ const remove = (sel, id) => {
12
12
  if (!sel.has(id))
13
13
  return sel;
14
14
  const next = new Set(sel);
@@ -16,16 +16,7 @@ export const remove = (sel, id) => {
16
16
  return next;
17
17
  };
18
18
  export const toggle = (sel, id) => sel.has(id) ? remove(sel, id) : add(sel, id);
19
- export const equals = (a, b) => {
20
- if (a === b)
21
- return true;
22
- if (a.size !== b.size)
23
- return false;
24
- for (const id of a)
25
- if (!b.has(id))
26
- return false;
27
- return true;
28
- };
19
+ export const equals = (a, b) => setsEqual(a, b);
29
20
  /** The sole selected link, or null unless exactly one is selected. */
30
21
  export const sole = (sel) => {
31
22
  if (sel.size !== 1)
@@ -1 +1 @@
1
- {"version":3,"file":"link-selection.js","sourceRoot":"","sources":["../src/link-selection.ts"],"names":[],"mappings":"AAaA,MAAM,CAAC,MAAM,KAAK,GAAkB,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,EAAU,CAAC,CAAC;AAErE,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,EAAU,EAAiB,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAEnE,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,GAAkB,EAAE,EAAU,EAAW,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAE5E,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,GAAkB,EAAE,EAAU,EAAiB,EAAE;IACnE,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAAE,OAAO,GAAG,CAAC;IAC5B,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACb,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,GAAkB,EAAE,EAAU,EAAiB,EAAE;IACtE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAAE,OAAO,GAAG,CAAC;IAC7B,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,GAAkB,EAAE,EAAU,EAAiB,EAAE,CACtE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAE/C,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAgB,EAAE,CAAgB,EAAW,EAAE;IACpE,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACzB,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACpC,KAAK,MAAM,EAAE,IAAI,CAAC;QAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,OAAO,KAAK,CAAC;IACjD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,sEAAsE;AACtE,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,GAAkB,EAAiB,EAAE;IACxD,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAChC,KAAK,MAAM,EAAE,IAAI,GAAG;QAAE,OAAO,EAAE,CAAC;IAChC,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
1
+ {"version":3,"file":"link-selection.js","sourceRoot":"","sources":["../src/link-selection.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAatC,MAAM,CAAC,MAAM,KAAK,GAAkB,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,EAAU,CAAC,CAAC;AAErE,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,EAAU,EAAiB,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAEnE,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,GAAkB,EAAE,EAAU,EAAiB,EAAE;IACnE,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAAE,OAAO,GAAG,CAAC;IAC5B,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACb,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,CAAC,GAAkB,EAAE,EAAU,EAAiB,EAAE;IAC/D,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAAE,OAAO,GAAG,CAAC;IAC7B,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,GAAkB,EAAE,EAAU,EAAiB,EAAE,CACtE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAE/C,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAgB,EAAE,CAAgB,EAAW,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAEvF,sEAAsE;AACtE,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,GAAkB,EAAiB,EAAE;IACxD,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAChC,KAAK,MAAM,EAAE,IAAI,GAAG;QAAE,OAAO,EAAE,CAAC;IAChC,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
package/dist/machine.d.ts CHANGED
@@ -26,6 +26,16 @@ export type PressTarget = {
26
26
  readonly kind: "group-handle";
27
27
  readonly handle: HandleId;
28
28
  readonly bounds: Bounds;
29
+ } | {
30
+ /**
31
+ * The rotate grip above the selection (single shape or group). The
32
+ * machine emits a per-frame `ROTATE` with the angle swept around
33
+ * `pivot`; the editor reads the press-time snapshot it kept and turns
34
+ * every member rigidly. `pivot` is the selection bbox centre.
35
+ */
36
+ readonly kind: "rotate-handle";
37
+ readonly pivot: Vec2;
38
+ readonly bounds: Bounds;
29
39
  } | {
30
40
  readonly kind: "link";
31
41
  readonly id: LinkId;
@@ -165,6 +175,15 @@ export type InteractionEmit = {
165
175
  readonly handle: HandleId;
166
176
  readonly delta: Vec2;
167
177
  readonly originalBounds: Bounds;
178
+ } | {
179
+ /**
180
+ * Per-frame rotation of the selection about `pivot`. `deltaAngle` is the
181
+ * total swept angle since press-down (radians); the editor applies it to
182
+ * its press-time snapshot so the cumulative angle never drifts.
183
+ */
184
+ readonly type: "ROTATE";
185
+ readonly pivot: Vec2;
186
+ readonly deltaAngle: number;
168
187
  } | {
169
188
  readonly type: "CREATE_SHAPE";
170
189
  readonly shapeType: "rect" | "ellipse" | "frame";
@@ -247,6 +266,9 @@ export declare const interactionMachine: import("xstate").StateMachine<Interacti
247
266
  } | {
248
267
  type: "emitResizeGroup";
249
268
  params: import("xstate").NonReducibleUnknown;
269
+ } | {
270
+ type: "emitRotate";
271
+ params: import("xstate").NonReducibleUnknown;
250
272
  } | {
251
273
  type: "maybeEmitCreate";
252
274
  params: import("xstate").NonReducibleUnknown;
@@ -280,6 +302,9 @@ export declare const interactionMachine: import("xstate").StateMachine<Interacti
280
302
  } | {
281
303
  type: "movedAndOnGroupHandle";
282
304
  params: unknown;
305
+ } | {
306
+ type: "movedAndOnRotateHandle";
307
+ params: unknown;
283
308
  } | {
284
309
  type: "movedAndDrawing";
285
310
  params: unknown;
@@ -295,7 +320,7 @@ export declare const interactionMachine: import("xstate").StateMachine<Interacti
295
320
  } | {
296
321
  type: "movedAndLasso";
297
322
  params: unknown;
298
- }, never, "idle" | "pressing" | "draggingHandle" | "draggingGroupHandle" | "draggingElement" | "drawing" | "drawingLink" | "draggingLinkEndpoint" | "draggingAnnotation" | "lassoing", string, import("xstate").NonReducibleUnknown, import("xstate").NonReducibleUnknown, InteractionEmit, import("xstate").MetaObject, {
323
+ }, never, "idle" | "pressing" | "draggingHandle" | "draggingGroupHandle" | "draggingRotateHandle" | "draggingElement" | "drawing" | "drawingLink" | "draggingLinkEndpoint" | "draggingAnnotation" | "lassoing", string, import("xstate").NonReducibleUnknown, import("xstate").NonReducibleUnknown, InteractionEmit, import("xstate").MetaObject, {
299
324
  id: "interaction";
300
325
  states: {
301
326
  readonly idle: {};
@@ -303,6 +328,7 @@ export declare const interactionMachine: import("xstate").StateMachine<Interacti
303
328
  readonly draggingElement: {};
304
329
  readonly draggingHandle: {};
305
330
  readonly draggingGroupHandle: {};
331
+ readonly draggingRotateHandle: {};
306
332
  readonly drawing: {};
307
333
  readonly drawingLink: {};
308
334
  readonly draggingLinkEndpoint: {};
@@ -1 +1 @@
1
- {"version":3,"file":"machine.d.ts","sourceRoot":"","sources":["../src/machine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"machine.d.ts","sourceRoot":"","sources":["../src/machine.ts"],"names":[],"mappings":"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"}
package/dist/machine.js CHANGED
@@ -115,6 +115,17 @@ export const interactionMachine = setup({
115
115
  originalBounds: context.pressTarget.bounds,
116
116
  });
117
117
  }),
118
+ emitRotate: enqueueActions(({ context, event, enqueue }) => {
119
+ if (event.type !== "POINTER_MOVE" ||
120
+ !context.pressOrigin ||
121
+ context.pressTarget?.kind !== "rotate-handle") {
122
+ return;
123
+ }
124
+ const { pivot } = context.pressTarget;
125
+ const start = Math.atan2(context.pressOrigin.y - pivot.y, context.pressOrigin.x - pivot.x);
126
+ const now = Math.atan2(event.point.y - pivot.y, event.point.x - pivot.x);
127
+ enqueue.emit({ type: "ROTATE", pivot, deltaAngle: now - start });
128
+ }),
118
129
  maybeEmitCreate: enqueueActions(({ context, event, enqueue }) => {
119
130
  if (event.type !== "POINTER_UP" || !context.pressOrigin || !context.drawingType) {
120
131
  return;
@@ -239,6 +250,13 @@ export const interactionMachine = setup({
239
250
  return false;
240
251
  return dragExceeded(context.pressOrigin, event.point);
241
252
  },
253
+ movedAndOnRotateHandle: ({ context, event }) => {
254
+ if (event.type !== "POINTER_MOVE" || !context.pressOrigin)
255
+ return false;
256
+ if (context.pressTarget?.kind !== "rotate-handle")
257
+ return false;
258
+ return dragExceeded(context.pressOrigin, event.point);
259
+ },
242
260
  movedAndDrawing: ({ context, event }) => {
243
261
  if (event.type !== "POINTER_MOVE" || !context.pressOrigin)
244
262
  return false;
@@ -335,6 +353,14 @@ export const interactionMachine = setup({
335
353
  { type: "emitResizeGroup" },
336
354
  ],
337
355
  },
356
+ {
357
+ guard: "movedAndOnRotateHandle",
358
+ target: "draggingRotateHandle",
359
+ actions: [
360
+ { type: "updateLast", params: ({ event }) => ({ point: event.point }) },
361
+ { type: "emitRotate" },
362
+ ],
363
+ },
338
364
  {
339
365
  guard: "movedAndOnElement",
340
366
  target: "draggingElement",
@@ -436,6 +462,18 @@ export const interactionMachine = setup({
436
462
  POINTER_CANCEL: { target: "idle", actions: [{ type: "resetGesture" }] },
437
463
  },
438
464
  },
465
+ draggingRotateHandle: {
466
+ on: {
467
+ POINTER_MOVE: {
468
+ actions: [
469
+ { type: "updateLast", params: ({ event }) => ({ point: event.point }) },
470
+ { type: "emitRotate" },
471
+ ],
472
+ },
473
+ POINTER_UP: { target: "idle", actions: [{ type: "resetGesture" }] },
474
+ POINTER_CANCEL: { target: "idle", actions: [{ type: "resetGesture" }] },
475
+ },
476
+ },
439
477
  drawing: {
440
478
  on: {
441
479
  POINTER_MOVE: {
@@ -1 +1 @@
1
- {"version":3,"file":"machine.js","sourceRoot":"","sources":["../src/machine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"machine.js","sourceRoot":"","sources":["../src/machine.ts"],"names":[],"mappings":"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"}
package/dist/modes.d.ts CHANGED
@@ -14,11 +14,25 @@
14
14
  * - `draw-edge` — edge creation from press-down shape (or empty) to
15
15
  * release-shape (or empty).
16
16
  * - `brush` — pressure-sensitive freehand stroke.
17
+ * - `erase` — press-and-drag to sweep shapes under the cursor into a
18
+ * pending set (previewed dimmed); release deletes them all in one
19
+ * undo step. Never draws anything.
20
+ * - `laser` — ephemeral presentation pointer. Press-and-drag paints a
21
+ * red trail that fades over a couple of seconds; nothing is written
22
+ * to the scene or history — it lives purely on the overlay.
23
+ * - `eyedropper` — sample a colour. A click reads the fill (or stroke)
24
+ * of the shape under the cursor and applies it to the current
25
+ * selection, then reverts to `select` (unless the tool is locked).
26
+ * Never mutates geometry.
27
+ * - `crop` — image-crop mode, entered by double-clicking an image.
28
+ * The overlay shows a draggable crop frame over the target image;
29
+ * Enter commits the crop, Escape cancels. Owned end-to-end by the
30
+ * editor's crop session, not the interaction machine.
17
31
  *
18
32
  * Pan and zoom are STILL available as gestures (middle-mouse drag,
19
33
  * Space+drag, mouse wheel zoom) regardless of mode — `hand` is the
20
34
  * explicit single-button pan flow on top of that.
21
35
  */
22
- export type Mode = "select" | "hand" | "draw-rect" | "draw-ellipse" | "draw-text" | "draw-edge" | "draw-frame" | "brush";
36
+ export type Mode = "select" | "hand" | "draw-rect" | "draw-ellipse" | "draw-text" | "draw-edge" | "draw-frame" | "brush" | "erase" | "laser" | "eyedropper" | "crop";
23
37
  export declare const DEFAULT_MODE: Mode;
24
38
  //# sourceMappingURL=modes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"modes.d.ts","sourceRoot":"","sources":["../src/modes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,MAAM,IAAI,GACZ,QAAQ,GACR,MAAM,GACN,WAAW,GACX,cAAc,GACd,WAAW,GACX,WAAW,GACX,YAAY,GACZ,OAAO,CAAC;AAEZ,eAAO,MAAM,YAAY,EAAE,IAAe,CAAC"}
1
+ {"version":3,"file":"modes.d.ts","sourceRoot":"","sources":["../src/modes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,MAAM,IAAI,GACZ,QAAQ,GACR,MAAM,GACN,WAAW,GACX,cAAc,GACd,WAAW,GACX,WAAW,GACX,YAAY,GACZ,OAAO,GACP,OAAO,GACP,OAAO,GACP,YAAY,GACZ,MAAM,CAAC;AAEX,eAAO,MAAM,YAAY,EAAE,IAAe,CAAC"}
package/dist/modes.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"modes.js","sourceRoot":"","sources":["../src/modes.ts"],"names":[],"mappings":"AA+BA,MAAM,CAAC,MAAM,YAAY,GAAS,QAAQ,CAAC"}
1
+ {"version":3,"file":"modes.js","sourceRoot":"","sources":["../src/modes.ts"],"names":[],"mappings":"AAiDA,MAAM,CAAC,MAAM,YAAY,GAAS,QAAQ,CAAC"}
package/dist/overlay.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import type { AnnotationId, Bounds, Transform, Vec2 } from "@oh-just-another/types";
2
2
  import { type Annotation, type Element, type Scene } from "@oh-just-another/scene";
3
3
  import { type RenderTarget } from "@oh-just-another/renderer-core";
4
+ import { type LaserStroke } from "./editor/public/laser.js";
4
5
  import { type HitZoneAttach, type HitZoneContainers, type HitZoneVisibility } from "./editor/hit-test.js";
5
6
  import type { Selection } from "./selection.js";
6
7
  export interface OverlayStyle {
@@ -104,7 +105,32 @@ export interface PeerSelection {
104
105
  readonly color: string;
105
106
  readonly bounds: readonly Bounds[];
106
107
  }
107
- export declare const renderOverlay: (scene: Scene, selection: Selection, target: RenderTarget, options?: {
108
+ /**
109
+ * Full option set accepted by {@link renderOverlay}. Every field is a distinct
110
+ * overlay layer; the orchestrator supplies only the ones it wants painted this
111
+ * frame. Split out of the function signature so the per-section renderers can
112
+ * share a typed context (see {@link OverlayCtx}).
113
+ */
114
+ export interface OverlayOptions {
115
+ /**
116
+ * Image-crop frame: the world-space corners (clockwise, 4 points) of the
117
+ * pending crop region while in crop mode. Painted as a dashed accent quad
118
+ * with L-shaped corner brackets so the user sees what will be kept and can
119
+ * grab the corners. Honours rotation. Its presence also suppresses the
120
+ * normal per-shape and group-bounds resize/rotate handles.
121
+ */
122
+ cropFrame?: readonly Vec2[];
123
+ /**
124
+ * Crop-mode ghost: the original image element (transform + live bitmap) and
125
+ * the virtual full-image LOCAL rect the whole bitmap occupies. Painted first
126
+ * (behind the crop chrome) at {@link CROP_GHOST_OPACITY} so the parts hidden
127
+ * by the crop window stay faintly visible. Skipped gracefully when no live
128
+ * bitmap handle is available.
129
+ */
130
+ cropGhost?: {
131
+ readonly element: Element;
132
+ readonly fullRect: Bounds;
133
+ };
108
134
  drawingPreview?: Bounds;
109
135
  /**
110
136
  * WYSIWYG preview of the shape being drawn by drag (rect / ellipse):
@@ -115,6 +141,21 @@ export declare const renderOverlay: (scene: Scene, selection: Selection, target:
115
141
  * other (dashed only for the lasso / select rubber-band).
116
142
  */
117
143
  drawingPreviewElement?: Element;
144
+ /**
145
+ * Pending flowchart-create nodes (Cmd/Ctrl+Arrow grow session). Each is
146
+ * rendered through its real renderer at {@link FLOWCHART_PREVIEW_OPACITY} so
147
+ * the user previews the shapes that will be created; the connecting links are
148
+ * drawn separately by the orchestrator at the same opacity.
149
+ */
150
+ flowchartPreviewElements?: readonly Element[];
151
+ /**
152
+ * Live stroke-erase fragments (Shift eraser drag). The would-be brush
153
+ * fragments for every touched brush, drawn through their real renderer at full
154
+ * opacity — the touched originals are already hidden in the main pass, so this
155
+ * shows the cut WYSIWYG. Drawn per-element (NOT via `renderScene`, which would
156
+ * clear the overlay and wipe the eraser cursor / trail).
157
+ */
158
+ strokeErasePreviewElements?: readonly Element[];
118
159
  edgePreview?: LinkPreview;
119
160
  /**
120
161
  * Port-dot affordances to paint. A single set (one shape's anchors)
@@ -181,16 +222,38 @@ export declare const renderOverlay: (scene: Scene, selection: Selection, target:
181
222
  * (matches the BrushElement memory layout).
182
223
  */
183
224
  brushPreview?: {
184
- readonly origin: {
185
- readonly x: number;
186
- readonly y: number;
187
- };
225
+ readonly origin: Vec2;
188
226
  readonly points: readonly {
189
227
  x: number;
190
228
  y: number;
191
229
  width: number;
192
230
  }[];
193
231
  readonly fill: string;
232
+ /** Stroke opacity (0–1), matching the committed brush. Defaults to 1. */
233
+ readonly opacity: number;
234
+ };
235
+ /**
236
+ * Ephemeral laser-pointer trails. Each point carries a birth timestamp (`t`,
237
+ * `performance.now()` domain); the overlay ramps per-segment opacity from
238
+ * 1 → 0 over {@link LASER_TRAIL_TTL_MS} against the current time, so the trail
239
+ * fades tail-first like a comet. Purely presentational — never in the scene.
240
+ */
241
+ laserStrokes?: readonly LaserStroke[];
242
+ /**
243
+ * Fading eraser drag trail. Same {@link LaserStroke} shape and TTL fade as
244
+ * {@link laserStrokes}, but painted in a neutral eraser grey (not the laser
245
+ * red) — laid while an erase stroke is dragged. Purely presentational.
246
+ */
247
+ eraserTrail?: readonly LaserStroke[];
248
+ /**
249
+ * Eraser cursor ring: `center` in WORLD space (projected to screen), `radius`
250
+ * in SCREEN px (the panel's eraser width — NOT scaled by zoom). Painted as a
251
+ * grey ring following the pointer while the erase tool is active, replacing
252
+ * the hidden OS cursor. Skipped when `radius <= 0`.
253
+ */
254
+ eraserCursor?: {
255
+ readonly center: Vec2;
256
+ readonly radius: number;
194
257
  };
195
258
  /**
196
259
  * Remote peer cursors. Each one renders as a small coloured arrow
@@ -257,6 +320,29 @@ export declare const renderOverlay: (scene: Scene, selection: Selection, target:
257
320
  * targets the user can act on. Defaults to the at-rest set when omitted.
258
321
  */
259
322
  debugHitZoneVisibility?: HitZoneVisibility;
323
+ /**
324
+ * Read-only / view mode. When set, selection outlines (halos) still paint
325
+ * but every interactive handle is suppressed: per-shape resize/rotate grips
326
+ * (section 1), the combined group-bounds handles (section 7) and the
327
+ * selected-link endpoint/bend handles (section 5). A viewer sees what's
328
+ * selected but has no affordance to grab-and-mutate.
329
+ */
330
+ readOnly?: boolean;
260
331
  style?: Partial<OverlayStyle>;
261
- }) => void;
332
+ }
333
+ /**
334
+ * Draws selection outlines, resize handles, previews, peer chrome and other
335
+ * affordances on the overlay layer. Pure draw — does not alter scene or state.
336
+ * A thin dispatcher: each numbered layer lives in its own `render*` helper,
337
+ * called here in strict back-to-front paint order.
338
+ */
339
+ export declare const renderOverlay: (scene: Scene, selection: Selection, target: RenderTarget, options?: OverlayOptions) => void;
340
+ /**
341
+ * Build the closed outline polygon of a variable-width ribbon around the screen
342
+ * polyline `pts` (tail → head order). Each vertex is offset by ±`hw` along the
343
+ * local normal, where the half-width tapers linearly from 0 at the tail (index
344
+ * 0) to `maxHalf` at the head (last index). Returns the left side forward then
345
+ * the right side backward — one closed loop to fill in a single pass.
346
+ */
347
+ export declare const taperedTrailOutline: (pts: readonly Vec2[], maxHalf: number) => Vec2[];
262
348
  //# sourceMappingURL=overlay.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../src/overlay.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../src/overlay.ts"],"names":[],"mappings":"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"}