@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 +1 @@
1
- {"version":3,"file":"file-drop.d.ts","sourceRoot":"","sources":["../src/file-drop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,gDAAgD;IAChD,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC;IAC5B;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAChE;AAED;;;;GAIG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;IAEjD,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAWxC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAK5B,MAAM,IAAI,SAAS,eAAe,EAAE;IAIpC;;;;OAIG;IACG,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC;CAQnE;AAED,iCAAiC;AACjC,eAAO,MAAM,gBAAgB,EAAE,SAAS,MAAM,EAU7C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,EAAE,SAAS,MAAM,EAK7C,CAAC;AAEF,gEAAgE;AAChE,eAAO,MAAM,WAAW,GAAI,MAAM,IAAI,KAAG,OAIxC,CAAC;AAEF,uFAAuF;AACvF,eAAO,MAAM,WAAW,GAAI,MAAM,IAAI,KAAG,OAkBxC,CAAC;AAEF,6EAA6E;AAC7E,eAAO,MAAM,eAAe,GAAI,MAAM,IAAI,KAAG,OAG5C,CAAC;AAEF,qEAAqE;AACrE,eAAO,MAAM,iBAAiB,GAAI,MAAM,IAAI,KAAG,OAAO,CAAC,MAAM,CAYzD,CAAC;AAEL,iCAAiC;AACjC,eAAO,MAAM,cAAc,GAAI,MAAM,IAAI,KAAG,OAAO,CAAC,MAAM,CAYtD,CAAC;AAEL;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACnD,sEAAsE;IACtE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,kEAAkE;IAClE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CAC3D;AA6BD,eAAO,MAAM,gBAAgB,GAC3B,IAAI,YAAY,EAChB,UAAS,WAAgB,KACxB,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAsBjC,CAAC"}
1
+ {"version":3,"file":"file-drop.d.ts","sourceRoot":"","sources":["../src/file-drop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,gDAAgD;IAChD,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC;IAC5B;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAChE;AAED;;;;GAIG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;IAEjD,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAUxC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAK5B,MAAM,IAAI,SAAS,eAAe,EAAE;IAIpC;;;;OAIG;IACG,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC;CAQnE;AAED,iCAAiC;AACjC,eAAO,MAAM,gBAAgB,EAAE,SAAS,MAAM,EAU7C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,EAAE,SAAS,MAAM,EAK7C,CAAC;AAEF,gEAAgE;AAChE,eAAO,MAAM,WAAW,GAAI,MAAM,IAAI,KAAG,OAIxC,CAAC;AAEF,uFAAuF;AACvF,eAAO,MAAM,WAAW,GAAI,MAAM,IAAI,KAAG,OAkBxC,CAAC;AAEF,6EAA6E;AAC7E,eAAO,MAAM,eAAe,GAAI,MAAM,IAAI,KAAG,OAG5C,CAAC;AAEF,qEAAqE;AACrE,eAAO,MAAM,iBAAiB,GAAI,MAAM,IAAI,KAAG,OAAO,CAAC,MAAM,CAYzD,CAAC;AAEL,iCAAiC;AACjC,eAAO,MAAM,cAAc,GAAI,MAAM,IAAI,KAAG,OAAO,CAAC,MAAM,CAYtD,CAAC;AAEL;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACnD,sEAAsE;IACtE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,kEAAkE;IAClE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CAC3D;AA6BD,eAAO,MAAM,gBAAgB,GAC3B,IAAI,YAAY,EAChB,UAAS,WAAgB,KACxB,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAsBjC,CAAC"}
package/dist/file-drop.js CHANGED
@@ -6,8 +6,7 @@
6
6
  export class FileDropRegistry {
7
7
  entries = [];
8
8
  register(handler) {
9
- // Replace existing entry with the same id so re-registration is idempotent
10
- // (mirrors ActionRegistry.replace semantics).
9
+ // Replace existing entry with the same id so re-registration is idempotent.
11
10
  const idx = this.entries.findIndex((h) => h.id === handler.id);
12
11
  if (idx !== -1) {
13
12
  this.entries[idx] = handler;
@@ -1 +1 @@
1
- {"version":3,"file":"file-drop.js","sourceRoot":"","sources":["../src/file-drop.ts"],"names":[],"mappings":"AAoCA;;;;GAIG;AACH,MAAM,OAAO,gBAAgB;IACV,OAAO,GAAsB,EAAE,CAAC;IAEjD,QAAQ,CAAC,OAAwB;QAC/B,2EAA2E;QAC3E,8CAA8C;QAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC;QAC/D,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;YACf,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;YAC5B,OAAO;QACT,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED,UAAU,CAAC,EAAU;QACnB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACvD,IAAI,GAAG,KAAK,CAAC,CAAC;YAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,QAAQ,CAAC,IAAU,EAAE,GAAoB;QAC7C,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACnC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;gBAAE,SAAS;YACpC,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAChC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAED,iCAAiC;AACjC,MAAM,CAAC,MAAM,gBAAgB,GAAsB;IACjD,WAAW;IACX,YAAY;IACZ,eAAe;IACf,WAAW;IACX,YAAY;IACZ,WAAW;IACX,cAAc;IACd,YAAY;IACZ,YAAY;CACb,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAsB;IACjD,WAAW;IACX,YAAY;IACZ,WAAW;IACX,iBAAiB;CAClB,CAAC;AAEF,gEAAgE;AAChE,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAU,EAAW,EAAE;IACjD,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IAChD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACrD,OAAO,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,KAAK,CAAC;AAC3E,CAAC,CAAC;AAEF,uFAAuF;AACvF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAU,EAAW,EAAE;IACjD,IAAI,IAAI,CAAC,IAAI,IAAI,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACnE,mEAAmE;IACnE,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACrD,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IACvB,MAAM,KAAK,GAA2B;QACpC,GAAG,EAAE,WAAW;QAChB,GAAG,EAAE,YAAY;QACjB,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,YAAY;QAClB,GAAG,EAAE,eAAe;QACpB,GAAG,EAAE,WAAW;QAChB,IAAI,EAAE,YAAY;QAClB,GAAG,EAAE,WAAW;QAChB,GAAG,EAAE,cAAc;QACnB,IAAI,EAAE,YAAY;KACnB,CAAC;IACF,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC;AAClC,CAAC,CAAC;AAEF,6EAA6E;AAC7E,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAU,EAAW,EAAE;IACrD,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB;QAAE,OAAO,IAAI,CAAC;IAClD,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACnD,CAAC,CAAC;AAEF,qEAAqE;AACrE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,IAAU,EAAmB,EAAE,CAC/D,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;IAC9B,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;IAChC,MAAM,CAAC,MAAM,GAAG,GAAG,EAAE;QACnB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC7B,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,OAAO,CAAC,MAAM,CAAC,CAAC;;YAC3C,MAAM,CAAC,IAAI,KAAK,CAAC,yCAAyC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC/E,CAAC,CAAC;IACF,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE;QACpB,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,kBAAkB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACnE,CAAC,CAAC;IACF,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEL,iCAAiC;AACjC,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAU,EAAmB,EAAE,CAC5D,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;IAC9B,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;IAChC,MAAM,CAAC,MAAM,GAAG,GAAG,EAAE;QACnB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC7B,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,OAAO,CAAC,MAAM,CAAC,CAAC;;YAC3C,MAAM,CAAC,IAAI,KAAK,CAAC,yCAAyC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC/E,CAAC,CAAC;IACF,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE;QACpB,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,kBAAkB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACnE,CAAC,CAAC;IACF,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC,CAAC,CAAC;AAgCL,MAAM,YAAY,GAAG,CAAC,IAAY,EAAW,EAAE,CAC7C,IAAI,KAAK,MAAM;IACf,IAAI,KAAK,cAAc;IACvB,IAAI,KAAK,UAAU;IACnB,IAAI,KAAK,WAAW;IACpB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAsBvB,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,SAAS,CAAC,EAC7C,EAAgB,EAChB,UAAuB,EAAE;IAEzB,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,IAAI,YAAY,CAAC;IACnD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;IACxC,iEAAiE;IACjE,+DAA+D;IAC/D,MAAM,KAAK,GAAG,EAAE,CAAC,KAA0D,CAAC;IAE5E,wEAAwE;IACxE,uBAAuB;IACvB,MAAM,WAAW,GACf,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,gBAAgB,KAAK,UAAU,CAAC;IACzF,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,CAAC;QACpD,OAAO;IACT,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;YAAE,SAAS;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC;QACxC,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,KAAK,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAClE,CAAC;AACH,CAAC,CAAC;AAEF,KAAK,SAAS,CAAC,CAAC,SAAS,CACvB,KAA0B,EAC1B,MAAc,EACd,KAAa,EACb,IAA+B,EAC/B,QAAgB,EAChB,OAA2D;IAE3D,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;IAE7D,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACvD,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAChC,CAAC,CAAC,CAAC;YACH,MAAM,IAAI,CAAC;QACb,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACvB,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,WAAW;QAAE,OAAO;IAC/B,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,OAAO;IAC7B,IAAI,KAAK,IAAI,QAAQ,EAAE,CAAC;QACtB,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,wBAAwB,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC/D,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,EAAE,EAAE,CAAC;IACtC,IAAI,CAAC,MAAM;QAAE,OAAO;IAEpB,wEAAwE;IACxE,8BAA8B;IAC9B,SAAS,CAAC;QACR,IAAI,KAA4B,CAAC;QACjC,IAAI,CAAC;YACH,KAAK,GAAG,MAAM,IAAI,OAAO,CAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACnE,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAC/B,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;YAC1B,KAAK,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"file-drop.js","sourceRoot":"","sources":["../src/file-drop.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"frame-helpers.d.ts","sourceRoot":"","sources":["../src/frame-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAwC,KAAK,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC1F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAWhE;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,OAAO,KAAK,KAAG,MAQ5C,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,GAC7B,OAAO,KAAK,EACZ,SAAS,eAAe,EACxB,SAAS,SAAS,EAClB,aAAa,MAAM,KAClB,KAmBF,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,wBAAwB,GAAI,OAAO,KAAK,EAAE,SAAS,eAAe,KAAG,KAkCjF,CAAC"}
1
+ {"version":3,"file":"frame-helpers.d.ts","sourceRoot":"","sources":["../src/frame-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAiD,KAAK,KAAK,EAAE,MAAM,wBAAwB,CAAC;AACnG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAWhE;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,OAAO,KAAK,KAAG,MAQ5C,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,GAC7B,OAAO,KAAK,EACZ,SAAS,eAAe,EACxB,SAAS,SAAS,EAClB,aAAa,MAAM,KAClB,KAmBF,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,wBAAwB,GAAI,OAAO,KAAK,EAAE,SAAS,eAAe,KAAG,KAkCjF,CAAC"}
@@ -1,4 +1,4 @@
1
- import { getElementWorldBounds, updateElement } from "@oh-just-another/scene";
1
+ import { getElementWorldBounds, isFrame, updateElement } from "@oh-just-another/scene";
2
2
  /**
3
3
  * Frame helpers. Two distinct concerns: choosing a free auto-name
4
4
  * (`Frame N+1`) and assigning ownership when a frame is freshly drawn over
@@ -14,7 +14,7 @@ const FRAME_NAME_PATTERN = /^Frame (\d+)$/;
14
14
  export const nextFrameName = (scene) => {
15
15
  let max = 0;
16
16
  for (const s of scene.elements.values()) {
17
- if (s.type !== "frame")
17
+ if (!isFrame(s))
18
18
  continue;
19
19
  const m = FRAME_NAME_PATTERN.exec(s.name ?? "");
20
20
  if (m)
@@ -40,7 +40,7 @@ export const assignFrameMembers = (scene, history, frameId, frameBounds) => {
40
40
  for (const shape of scene.elements.values()) {
41
41
  if (shape.id === frameId)
42
42
  continue;
43
- if (shape.type === "frame")
43
+ if (isFrame(shape))
44
44
  continue;
45
45
  if (shape.frameId !== undefined)
46
46
  continue;
@@ -68,12 +68,12 @@ export const reconcileFrameMembership = (scene, history) => {
68
68
  // Frames top-most first — highest z-order (fractional-index string) wins
69
69
  // when frames overlap.
70
70
  const frames = [...scene.elements.values()]
71
- .filter((s) => s.type === "frame")
71
+ .filter(isFrame)
72
72
  .sort((a, b) => (a.order < b.order ? 1 : a.order > b.order ? -1 : 0))
73
73
  .map((f) => ({ id: f.id, b: getElementWorldBounds(f) }));
74
74
  let next = scene;
75
75
  for (const shape of scene.elements.values()) {
76
- if (shape.type === "frame")
76
+ if (isFrame(shape))
77
77
  continue;
78
78
  const b = getElementWorldBounds(shape);
79
79
  const cx = b.x + b.width / 2;
@@ -1 +1 @@
1
- {"version":3,"file":"frame-helpers.js","sourceRoot":"","sources":["../src/frame-helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frame-helpers.js","sourceRoot":"","sources":["../src/frame-helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,OAAO,EAAE,aAAa,EAAc,MAAM,wBAAwB,CAAC;AAGnG;;;;;GAKG;AAEH,MAAM,kBAAkB,GAAG,eAAe,CAAC;AAE3C;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAY,EAAU,EAAE;IACpD,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;QACxC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YAAE,SAAS;QAC1B,MAAM,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAE,CAAuB,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC;YAAE,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,SAAS,GAAG,GAAG,CAAC,EAAE,CAAC;AAC5B,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,KAAY,EACZ,OAAwB,EACxB,OAAkB,EAClB,WAAmB,EACZ,EAAE;IACT,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC;IAC3B,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC;IAC1B,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC;IAChD,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC;IAClD,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;QAC5C,IAAI,KAAK,CAAC,EAAE,KAAK,OAAO;YAAE,SAAS;QACnC,IAAI,OAAO,CAAC,KAAK,CAAC;YAAE,SAAS;QAC7B,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS;YAAE,SAAS;QAC1C,MAAM,CAAC,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;QAC7B,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAC9B,IAAI,EAAE,GAAG,IAAI,IAAI,EAAE,GAAG,KAAK,IAAI,EAAE,GAAG,GAAG,IAAI,EAAE,GAAG,MAAM;YAAE,SAAS;QACjE,MAAM,CAAC,GAAG,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QACpE,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,KAAY,EAAE,OAAwB,EAAS,EAAE;IACxF,yEAAyE;IACzE,uBAAuB;IACvB,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;SACxC,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACpE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAE3D,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;QAC5C,IAAI,OAAO,CAAC,KAAK,CAAC;YAAE,SAAS;QAC7B,MAAM,CAAC,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;QAC7B,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAC9B,IAAI,KAA4B,CAAC;QACjC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBACtF,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;gBACb,MAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK;YAAE,SAAS;QACtC,MAAM,CAAC,GAAG,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE;YAC5C,MAAM,IAAI,GAAa,EAAE,GAAG,CAAC,EAAE,CAAC;YAChC,oEAAoE;YACpE,6BAA6B;YAC7B,IAAI,KAAK,KAAK,SAAS;gBAAE,OAAQ,IAAgC,CAAC,OAAO,CAAC;;gBACpE,IAAgC,CAAC,OAAO,GAAG,KAAK,CAAC;YACvD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QACH,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"group-helpers.d.ts","sourceRoot":"","sources":["../src/group-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAc,KAAK,KAAK,EAAE,KAAK,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAU9E;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAI,OAAO,KAAK,EAAE,OAAO,OAAO,KAAG,OAAO,GAAG,IAYzE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAC9B,OAAO,KAAK,EACZ,WAAW,SAAS,EACpB,SAAS,SAAS,KACjB,OAUF,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,GAC7B,OAAO,KAAK,EACZ,OAAO,OAAO,EACd,cAAc,SAAS,GAAG,IAAI,KAC7B,OAYF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAC7B,OAAO,KAAK,EACZ,WAAW,QAAQ,CAAC,SAAS,CAAC,EAC9B,gBAAgB,SAAS,KACxB,WAAW,CAAC,SAAS,CAUvB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,GAC1B,OAAO,KAAK,EACZ,KAAK,OAAO,EACZ,KAAK,OAAO,GAAG,IAAI,EACnB,cAAc,SAAS,GAAG,IAAI,KAC7B,OAAO,GAAG,IAeZ,CAAC"}
1
+ {"version":3,"file":"group-helpers.d.ts","sourceRoot":"","sources":["../src/group-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAuB,KAAK,KAAK,EAAE,KAAK,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAUvF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAI,OAAO,KAAK,EAAE,OAAO,OAAO,KAAG,OAAO,GAAG,IAYzE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAC9B,OAAO,KAAK,EACZ,WAAW,SAAS,EACpB,SAAS,SAAS,KACjB,OAUF,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,GAC7B,OAAO,KAAK,EACZ,OAAO,OAAO,EACd,cAAc,SAAS,GAAG,IAAI,KAC7B,OAYF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAC7B,OAAO,KAAK,EACZ,WAAW,QAAQ,CAAC,SAAS,CAAC,EAC9B,gBAAgB,SAAS,KACxB,WAAW,CAAC,SAAS,CAUvB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,GAC1B,OAAO,KAAK,EACZ,KAAK,OAAO,EACZ,KAAK,OAAO,GAAG,IAAI,EACnB,cAAc,SAAS,GAAG,IAAI,KAC7B,OAAO,GAAG,IAeZ,CAAC"}
@@ -1,4 +1,4 @@
1
- import { getElement } from "@oh-just-another/scene";
1
+ import { getElement, isGroup } from "@oh-just-another/scene";
2
2
  /**
3
3
  * Group / isolation helpers — pure functions over Scene + ElementId with no
4
4
  * Editor back-reference, so the test suite can drive them directly. Editor
@@ -18,7 +18,7 @@ export const topGroupAncestor = (scene, shape) => {
18
18
  const parent = getElement(scene, cursor.parentId);
19
19
  if (!parent)
20
20
  break;
21
- if (parent.type === "group")
21
+ if (isGroup(parent))
22
22
  topGroup = parent;
23
23
  cursor = parent;
24
24
  depth++;
@@ -60,7 +60,7 @@ export const promoteToGroupRoot = (scene, shape, enteredGroup) => {
60
60
  const parent = getElement(scene, current.parentId);
61
61
  if (!parent)
62
62
  break;
63
- if (parent.type !== "group")
63
+ if (!isGroup(parent))
64
64
  break;
65
65
  current = parent;
66
66
  depth++;
@@ -106,7 +106,7 @@ export const pickDrillTarget = (scene, raw, top, enteredGroup) => {
106
106
  break;
107
107
  if (parent.id === top.id)
108
108
  break;
109
- if (parent.type === "group")
109
+ if (isGroup(parent))
110
110
  next = parent;
111
111
  cursor = parent;
112
112
  depth++;
@@ -1 +1 @@
1
- {"version":3,"file":"group-helpers.js","sourceRoot":"","sources":["../src/group-helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAA4B,MAAM,wBAAwB,CAAC;AAE9E;;;;GAIG;AAEH,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAE5B;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAY,EAAE,KAAc,EAAkB,EAAE;IAC/E,IAAI,QAAQ,GAAmB,IAAI,CAAC;IACpC,IAAI,MAAM,GAAY,KAAK,CAAC;IAC5B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,OAAO,MAAM,CAAC,QAAQ,IAAI,KAAK,GAAG,gBAAgB,EAAE,CAAC;QACnD,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM;YAAE,MAAM;QACnB,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO;YAAE,QAAQ,GAAG,MAAM,CAAC;QAC/C,MAAM,GAAG,MAAM,CAAC;QAChB,KAAK,EAAE,CAAC;IACV,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,KAAY,EACZ,SAAoB,EACpB,OAAkB,EACT,EAAE;IACX,IAAI,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC1C,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,OAAO,MAAM,IAAI,KAAK,GAAG,gBAAgB,EAAE,CAAC;QAC1C,IAAI,MAAM,CAAC,EAAE,KAAK,OAAO;YAAE,OAAO,IAAI,CAAC;QACvC,IAAI,CAAC,MAAM,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QACnC,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC5C,KAAK,EAAE,CAAC;IACV,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,KAAY,EACZ,KAAc,EACd,YAA8B,EACrB,EAAE;IACX,IAAI,OAAO,GAAY,KAAK,CAAC;IAC7B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,OAAO,OAAO,CAAC,QAAQ,IAAI,KAAK,GAAG,gBAAgB,EAAE,CAAC;QACpD,IAAI,YAAY,KAAK,OAAO,CAAC,QAAQ;YAAE,MAAM;QAC7C,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM;YAAE,MAAM;QACnB,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO;YAAE,MAAM;QACnC,OAAO,GAAG,MAAM,CAAC;QACjB,KAAK,EAAE,CAAC;IACV,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,KAAY,EACZ,SAA8B,EAC9B,cAAyB,EACD,EAAE;IAC1B,MAAM,GAAG,GAAG,IAAI,GAAG,EAAa,CAAC;IACjC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;IACxC,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;QACxC,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAAE,SAAS;QACrC,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,cAAc,CAAC,EAAE,CAAC;YACtD,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAChB,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,KAAY,EACZ,GAAY,EACZ,GAAmB,EACnB,YAA8B,EACd,EAAE;IAClB,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,IAAI,YAAY,KAAK,GAAG,CAAC,EAAE;QAAE,OAAO,GAAG,CAAC;IACxC,IAAI,MAAM,GAAY,GAAG,CAAC;IAC1B,IAAI,IAAI,GAAmB,IAAI,CAAC;IAChC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,OAAO,MAAM,CAAC,QAAQ,IAAI,KAAK,GAAG,gBAAgB,EAAE,CAAC;QACnD,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM;YAAE,MAAM;QACnB,IAAI,MAAM,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE;YAAE,MAAM;QAChC,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO;YAAE,IAAI,GAAG,MAAM,CAAC;QAC3C,MAAM,GAAG,MAAM,CAAC;QAChB,KAAK,EAAE,CAAC;IACV,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
1
+ {"version":3,"file":"group-helpers.js","sourceRoot":"","sources":["../src/group-helpers.ts"],"names":[],"mappings":"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"}
package/dist/handle.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import type { Bounds, Vec2 } from "@oh-just-another/types";
2
+ import { type AnchorRef, type ElementBase } from "@oh-just-another/scene";
2
3
  import { HANDLE_HIT_SLOP, HANDLE_OUTSET, HANDLE_SIZE } from "./constants.js";
3
4
  /**
4
5
  * Eight resize-handle positions arranged around the shape's AABB. `nw` is
@@ -22,10 +23,9 @@ export declare const CORNER_HANDLES: readonly HandleId[];
22
23
  */
23
24
  export declare const cursorForHandle: (handle: HandleId) => string;
24
25
  /**
25
- * Re-exports handle geometry/hit-target constants from `constants.ts`.
26
- * `HANDLE_HIT_SLOP` is decoupled from `HANDLE_SIZE`/`HANDLE_OUTSET` — the grab
27
- * area grows independently of the drawn square. Re-exported so consumers
28
- * (`overlay`, `editor`, `index`, tests) keep importing from `./handle.js`.
26
+ * Handle geometry / hit-target constants. `HANDLE_HIT_SLOP` is decoupled from
27
+ * `HANDLE_SIZE`/`HANDLE_OUTSET` — the grab area grows independently of the
28
+ * drawn square.
29
29
  */
30
30
  export { HANDLE_HIT_SLOP, HANDLE_OUTSET, HANDLE_SIZE };
31
31
  /**
@@ -63,11 +63,64 @@ export declare const handlePosition: (handle: HandleId, b: Bounds, zoom?: number
63
63
  * `TOUCH_HANDLE_HIT_SLOP` so a finger can grab without precision-pointing.
64
64
  */
65
65
  export declare const hitHandle: (point: Vec2, b: Bounds, zoom: number, screenHalfSize?: number, handleSet?: readonly HandleId[]) => HandleId | null;
66
+ /**
67
+ * An oriented selection frame: an axis-aligned `bounds` rectangle expressed in
68
+ * a frame rotated `rotation` radians (CCW) about `pivot` (world). For a single
69
+ * rotated shape the frame hugs the shape — so the selection box, resize handles
70
+ * and rotate grip turn with it. For groups / multi-selection it degenerates to
71
+ * the world AABB (`rotation: 0`), where every helper below is the identity in
72
+ * the rotated axis and behaves exactly like the old AABB chrome.
73
+ */
74
+ export interface SelectionFrame {
75
+ /** Axis-aligned box in the (un-rotated) frame coordinates. */
76
+ readonly bounds: Bounds;
77
+ /** Frame rotation in radians, CCW. */
78
+ readonly rotation: number;
79
+ /** World point the frame rotates about (the renderer's pivot). */
80
+ readonly pivot: Vec2;
81
+ }
82
+ /**
83
+ * Selection frame hugging a single shape: the shape's scaled local footprint,
84
+ * rotated about its `position` (the renderer's pivot). Reuses the shape's own
85
+ * transform so the box / handles align pixel-exact with the rendered body, and
86
+ * non-uniform / negative `scale` (flip) is folded into the axis-aligned bounds.
87
+ */
88
+ export declare const shapeSelectionFrame: (shape: ElementBase) => SelectionFrame;
89
+ /** The four world corners of the frame, in `nw → ne → se → sw` order. */
90
+ export declare const frameCorners: (frame: SelectionFrame) => readonly [Vec2, Vec2, Vec2, Vec2];
91
+ /** World centre of the frame — the natural pivot for the rotate gesture. */
92
+ export declare const frameCenter: (frame: SelectionFrame) => Vec2;
93
+ /** World position of a resize handle on the frame (rotates with the frame). */
94
+ export declare const handleWorldOnFrame: (handle: HandleId, frame: SelectionFrame, zoom?: number) => Vec2;
95
+ /**
96
+ * Find which resize handle the world `point` is over on the frame. Inverse-
97
+ * rotates the point into frame coordinates, then runs the flat {@link hitHandle}
98
+ * — so corner dots / edge bands are matched in the frame's own axes.
99
+ */
100
+ export declare const hitHandleOnFrame: (point: Vec2, frame: SelectionFrame, zoom: number, screenHalfSize?: number, handleSet?: readonly HandleId[]) => HandleId | null;
101
+ /** Override the rotate-grip anchor for a shape type (element template hook). */
102
+ export declare const registerRotateAnchor: (type: string, anchor: AnchorRef) => void;
103
+ /** The rotate-grip anchor for a shape type (falls back to bottom-left). */
104
+ export declare const getRotateAnchor: (type: string) => AnchorRef;
105
+ /**
106
+ * World position of the rotate grip for a single shape: the template anchor
107
+ * pushed `ROTATE_HANDLE_OFFSET` screen pixels along its outward normal. Both
108
+ * anchor and normal come from the shape transform, so the grip turns and scales
109
+ * with the element automatically.
110
+ */
111
+ export declare const rotateGripWorld: (shape: ElementBase, zoom?: number) => Vec2;
112
+ /**
113
+ * World position of the rotate grip for an axis-aligned group / multi-selection
114
+ * frame: the bottom-left corner of `b`, pushed out along the down-left diagonal.
115
+ */
116
+ export declare const rotateGripForBounds: (b: Bounds, zoom?: number) => Vec2;
117
+ /** True when world `point` is within grab slop of a grip at `grip`. */
118
+ export declare const hitRotateGrip: (point: Vec2, grip: Vec2, zoom: number, screenHalfSize?: number) => boolean;
66
119
  /**
67
120
  * Apply a delta in world coordinates to bounds, using the given handle as the
68
121
  * grab point. Anchor (opposite corner) stays fixed. The result may have
69
- * negative width/height while dragging — `bounds.normalize` in `@math` flips
70
- * it on commit.
122
+ * negative width/height while dragging — bounds normalization flips it on
123
+ * commit.
71
124
  */
72
125
  export declare const resizeBounds: (b: Bounds, handle: HandleId, delta: Vec2) => Bounds;
73
126
  //# sourceMappingURL=handle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"handle.d.ts","sourceRoot":"","sources":["../src/handle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7E;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC;AAEzE,eAAO,MAAM,WAAW,EAAE,SAAS,QAAQ,EAAiD,CAAC;AAE7F;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,SAAS,QAAQ,EAA6B,CAAC;AAE5E;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,GAAI,QAAQ,QAAQ,KAAG,MAelD,CAAC;AAEF;;;;;GAKG;AACH,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC;AAEvD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,cAAc,GAAI,QAAQ,QAAQ,EAAE,GAAG,MAAM,EAAE,aAAQ,KAAG,IAwBtE,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,SAAS,GACpB,OAAO,IAAI,EACX,GAAG,MAAM,EACT,MAAM,MAAM,EACZ,iBAAgB,MAAwB,EACxC,YAAW,SAAS,QAAQ,EAAgB,KAC3C,QAAQ,GAAG,IAkCb,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,GAAG,MAAM,EAAE,QAAQ,QAAQ,EAAE,OAAO,IAAI,KAAG,MAuCvE,CAAC"}
1
+ {"version":3,"file":"handle.d.ts","sourceRoot":"","sources":["../src/handle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,WAAW,EACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,EAAwB,MAAM,gBAAgB,CAAC;AAEnG;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC;AAEzE,eAAO,MAAM,WAAW,EAAE,SAAS,QAAQ,EAAiD,CAAC;AAE7F;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,SAAS,QAAQ,EAA6B,CAAC;AAE5E;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,GAAI,QAAQ,QAAQ,KAAG,MAelD,CAAC;AAEF;;;;GAIG;AACH,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC;AAEvD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,cAAc,GAAI,QAAQ,QAAQ,EAAE,GAAG,MAAM,EAAE,aAAQ,KAAG,IAwBtE,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,SAAS,GACpB,OAAO,IAAI,EACX,GAAG,MAAM,EACT,MAAM,MAAM,EACZ,iBAAgB,MAAwB,EACxC,YAAW,SAAS,QAAQ,EAAgB,KAC3C,QAAQ,GAAG,IAkCb,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC7B,8DAA8D;IAC9D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,sCAAsC;IACtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,kEAAkE;IAClE,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;CACtB;AAUD;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAAI,OAAO,WAAW,KAAG,cAgBxD,CAAC;AAEF,yEAAyE;AACzE,eAAO,MAAM,YAAY,GAAI,OAAO,cAAc,KAAG,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAQpF,CAAC;AAEF,4EAA4E;AAC5E,eAAO,MAAM,WAAW,GAAI,OAAO,cAAc,KAAG,IAIhD,CAAC;AAEL,+EAA+E;AAC/E,eAAO,MAAM,kBAAkB,GAAI,QAAQ,QAAQ,EAAE,OAAO,cAAc,EAAE,aAAQ,KAAG,IACtB,CAAC;AAElE;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAC3B,OAAO,IAAI,EACX,OAAO,cAAc,EACrB,MAAM,MAAM,EACZ,iBAAgB,MAAwB,EACxC,YAAW,SAAS,QAAQ,EAAgB,KAC3C,QAAQ,GAAG,IACwE,CAAC;AAavF,gFAAgF;AAChF,eAAO,MAAM,oBAAoB,GAAI,MAAM,MAAM,EAAE,QAAQ,SAAS,KAAG,IAEtE,CAAC;AAEF,2EAA2E;AAC3E,eAAO,MAAM,eAAe,GAAI,MAAM,MAAM,KAAG,SACG,CAAC;AAEnD;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO,WAAW,EAAE,aAAQ,KAAG,IAM9D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAAI,GAAG,MAAM,EAAE,aAAQ,KAAG,IAGzD,CAAC;AAEF,uEAAuE;AACvE,eAAO,MAAM,aAAa,GACxB,OAAO,IAAI,EACX,MAAM,IAAI,EACV,MAAM,MAAM,EACZ,iBAAgB,MAAwB,KACvC,OAGF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,GAAG,MAAM,EAAE,QAAQ,QAAQ,EAAE,OAAO,IAAI,KAAG,MAuCvE,CAAC"}
package/dist/handle.js CHANGED
@@ -1,4 +1,6 @@
1
- import { HANDLE_HIT_SLOP, HANDLE_OUTSET, HANDLE_SIZE } from "./constants.js";
1
+ import { vec2 } from "@oh-just-another/math";
2
+ import { getAnchorOutwardNormal, getAnchorWorld, getElementLocalBounds, } from "@oh-just-another/scene";
3
+ import { HANDLE_HIT_SLOP, HANDLE_OUTSET, HANDLE_SIZE, ROTATE_HANDLE_OFFSET } from "./constants.js";
2
4
  export const ALL_HANDLES = ["nw", "n", "ne", "e", "se", "s", "sw", "w"];
3
5
  /**
4
6
  * Subset of `ALL_HANDLES` containing only the four corner positions. Used for
@@ -31,10 +33,9 @@ export const cursorForHandle = (handle) => {
31
33
  }
32
34
  };
33
35
  /**
34
- * Re-exports handle geometry/hit-target constants from `constants.ts`.
35
- * `HANDLE_HIT_SLOP` is decoupled from `HANDLE_SIZE`/`HANDLE_OUTSET` — the grab
36
- * area grows independently of the drawn square. Re-exported so consumers
37
- * (`overlay`, `editor`, `index`, tests) keep importing from `./handle.js`.
36
+ * Handle geometry / hit-target constants. `HANDLE_HIT_SLOP` is decoupled from
37
+ * `HANDLE_SIZE`/`HANDLE_OUTSET` — the grab area grows independently of the
38
+ * drawn square.
38
39
  */
39
40
  export { HANDLE_HIT_SLOP, HANDLE_OUTSET, HANDLE_SIZE };
40
41
  /**
@@ -135,11 +136,102 @@ export const hitHandle = (point, b, zoom, screenHalfSize = HANDLE_HIT_SLOP, hand
135
136
  }
136
137
  return null;
137
138
  };
139
+ /** Map a point from frame coordinates to world (rotate about the pivot). */
140
+ const frameToWorld = (frame, p) => frame.rotation === 0 ? p : vec2.rotateAround(p, frame.pivot, frame.rotation);
141
+ /** Map a world point into the frame's (un-rotated) coordinates. */
142
+ const worldToFrame = (frame, w) => frame.rotation === 0 ? w : vec2.rotateAround(w, frame.pivot, -frame.rotation);
143
+ /**
144
+ * Selection frame hugging a single shape: the shape's scaled local footprint,
145
+ * rotated about its `position` (the renderer's pivot). Reuses the shape's own
146
+ * transform so the box / handles align pixel-exact with the rendered body, and
147
+ * non-uniform / negative `scale` (flip) is folded into the axis-aligned bounds.
148
+ */
149
+ export const shapeSelectionFrame = (shape) => {
150
+ const lb = getElementLocalBounds(shape);
151
+ const x0 = lb.x * shape.scale.x;
152
+ const x1 = (lb.x + lb.width) * shape.scale.x;
153
+ const y0 = lb.y * shape.scale.y;
154
+ const y1 = (lb.y + lb.height) * shape.scale.y;
155
+ return {
156
+ bounds: {
157
+ x: shape.position.x + Math.min(x0, x1),
158
+ y: shape.position.y + Math.min(y0, y1),
159
+ width: Math.abs(x1 - x0),
160
+ height: Math.abs(y1 - y0),
161
+ },
162
+ rotation: shape.rotation,
163
+ pivot: shape.position,
164
+ };
165
+ };
166
+ /** The four world corners of the frame, in `nw → ne → se → sw` order. */
167
+ export const frameCorners = (frame) => {
168
+ const b = frame.bounds;
169
+ return [
170
+ frameToWorld(frame, { x: b.x, y: b.y }),
171
+ frameToWorld(frame, { x: b.x + b.width, y: b.y }),
172
+ frameToWorld(frame, { x: b.x + b.width, y: b.y + b.height }),
173
+ frameToWorld(frame, { x: b.x, y: b.y + b.height }),
174
+ ];
175
+ };
176
+ /** World centre of the frame — the natural pivot for the rotate gesture. */
177
+ export const frameCenter = (frame) => frameToWorld(frame, {
178
+ x: frame.bounds.x + frame.bounds.width / 2,
179
+ y: frame.bounds.y + frame.bounds.height / 2,
180
+ });
181
+ /** World position of a resize handle on the frame (rotates with the frame). */
182
+ export const handleWorldOnFrame = (handle, frame, zoom = 1) => frameToWorld(frame, handlePosition(handle, frame.bounds, zoom));
183
+ /**
184
+ * Find which resize handle the world `point` is over on the frame. Inverse-
185
+ * rotates the point into frame coordinates, then runs the flat {@link hitHandle}
186
+ * — so corner dots / edge bands are matched in the frame's own axes.
187
+ */
188
+ export const hitHandleOnFrame = (point, frame, zoom, screenHalfSize = HANDLE_HIT_SLOP, handleSet = ALL_HANDLES) => hitHandle(worldToFrame(frame, point), frame.bounds, zoom, screenHalfSize, handleSet);
189
+ /**
190
+ * Per-shape-type template for where the rotate grip sits, as an {@link AnchorRef}
191
+ * — the same vocabulary that positions a shape's custom connection points. The
192
+ * grip is placed at this anchor and pushed `ROTATE_HANDLE_OFFSET` screen pixels
193
+ * along the anchor's outward normal, so it rotates / scales with the shape for
194
+ * free. Default: the bottom-left corner (`ratio { 0, 1 }`), pushed out below-left.
195
+ */
196
+ const DEFAULT_ROTATE_ANCHOR = { kind: "ratio", position: { x: 0, y: 1 } };
197
+ const rotateAnchors = new Map();
198
+ /** Override the rotate-grip anchor for a shape type (element template hook). */
199
+ export const registerRotateAnchor = (type, anchor) => {
200
+ rotateAnchors.set(type, anchor);
201
+ };
202
+ /** The rotate-grip anchor for a shape type (falls back to bottom-left). */
203
+ export const getRotateAnchor = (type) => rotateAnchors.get(type) ?? DEFAULT_ROTATE_ANCHOR;
204
+ /**
205
+ * World position of the rotate grip for a single shape: the template anchor
206
+ * pushed `ROTATE_HANDLE_OFFSET` screen pixels along its outward normal. Both
207
+ * anchor and normal come from the shape transform, so the grip turns and scales
208
+ * with the element automatically.
209
+ */
210
+ export const rotateGripWorld = (shape, zoom = 1) => {
211
+ const anchor = getRotateAnchor(shape.type);
212
+ const at = getAnchorWorld(shape, anchor);
213
+ const n = getAnchorOutwardNormal(shape, anchor);
214
+ const o = ROTATE_HANDLE_OFFSET / zoom;
215
+ return { x: at.x + n.x * o, y: at.y + n.y * o };
216
+ };
217
+ /**
218
+ * World position of the rotate grip for an axis-aligned group / multi-selection
219
+ * frame: the bottom-left corner of `b`, pushed out along the down-left diagonal.
220
+ */
221
+ export const rotateGripForBounds = (b, zoom = 1) => {
222
+ const o = (ROTATE_HANDLE_OFFSET / zoom) * Math.SQRT1_2;
223
+ return { x: b.x - o, y: b.y + b.height + o };
224
+ };
225
+ /** True when world `point` is within grab slop of a grip at `grip`. */
226
+ export const hitRotateGrip = (point, grip, zoom, screenHalfSize = HANDLE_HIT_SLOP) => {
227
+ const slop = screenHalfSize / zoom;
228
+ return Math.abs(point.x - grip.x) <= slop && Math.abs(point.y - grip.y) <= slop;
229
+ };
138
230
  /**
139
231
  * Apply a delta in world coordinates to bounds, using the given handle as the
140
232
  * grab point. Anchor (opposite corner) stays fixed. The result may have
141
- * negative width/height while dragging — `bounds.normalize` in `@math` flips
142
- * it on commit.
233
+ * negative width/height while dragging — bounds normalization flips it on
234
+ * commit.
143
235
  */
144
236
  export const resizeBounds = (b, handle, delta) => {
145
237
  let { x, y, width, height } = b;
@@ -1 +1 @@
1
- {"version":3,"file":"handle.js","sourceRoot":"","sources":["../src/handle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handle.js","sourceRoot":"","sources":["../src/handle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { type ActionRegistry } from "./actions/registry.js";
2
+ import type { Editor } from "./editor.js";
3
+ export interface HotkeyBindingOptions {
4
+ /**
5
+ * Where to listen for keystrokes. Defaults to `window` (global shortcuts).
6
+ * Pass the editor's host element to scope shortcuts to it — the right
7
+ * choice when several editors share a page, or when the editor lives in a
8
+ * shadow root and you want shortcuts only while it has focus.
9
+ */
10
+ readonly target?: Window | Document | HTMLElement;
11
+ /** Action registry to match against. Defaults to {@link defaultActionRegistry}. */
12
+ readonly registry?: ActionRegistry;
13
+ }
14
+ /**
15
+ * Drive the editor's keyboard shortcuts from a `keydown` listener: each event
16
+ * is matched against the registry's actions and the first match is dispatched.
17
+ * Returns an unbind function.
18
+ *
19
+ * Typing in an `<input>` / `<textarea>` / `contenteditable` is left alone
20
+ * (only `Escape` still passes through, blurring the field first). The
21
+ * editable-target check reads `composedPath()[0]`, so it sees the real
22
+ * focused node even across a shadow-root boundary where `event.target` is
23
+ * retargeted to the host.
24
+ */
25
+ export declare const bindEditorHotkeys: (editor: Editor, options?: HotkeyBindingOptions) => (() => void);
26
+ //# sourceMappingURL=hotkeys-binding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hotkeys-binding.d.ts","sourceRoot":"","sources":["../src/hotkeys-binding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEnF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,WAAW,oBAAoB;IACnC;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,WAAW,CAAC;IAClD,mFAAmF;IACnF,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC;CACpC;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iBAAiB,GAC5B,QAAQ,MAAM,EACd,UAAS,oBAAyB,KACjC,CAAC,MAAM,IAAI,CAkBb,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { defaultActionRegistry } from "./actions/registry.js";
2
+ import { isEditableTarget } from "./dom-events.js";
3
+ /**
4
+ * Drive the editor's keyboard shortcuts from a `keydown` listener: each event
5
+ * is matched against the registry's actions and the first match is dispatched.
6
+ * Returns an unbind function.
7
+ *
8
+ * Typing in an `<input>` / `<textarea>` / `contenteditable` is left alone
9
+ * (only `Escape` still passes through, blurring the field first). The
10
+ * editable-target check reads `composedPath()[0]`, so it sees the real
11
+ * focused node even across a shadow-root boundary where `event.target` is
12
+ * retargeted to the host.
13
+ */
14
+ export const bindEditorHotkeys = (editor, options = {}) => {
15
+ const target = options.target ?? window;
16
+ const registry = options.registry ?? defaultActionRegistry;
17
+ const onKeyDown = (event) => {
18
+ if (!(event instanceof KeyboardEvent))
19
+ return;
20
+ const focused = event.composedPath()[0] ?? event.target;
21
+ if (isEditableTarget(focused)) {
22
+ if (event.key !== "Escape")
23
+ return;
24
+ if (focused instanceof HTMLElement)
25
+ focused.blur();
26
+ }
27
+ if (registry.dispatchHotkey(event, { editor }))
28
+ event.preventDefault();
29
+ };
30
+ target.addEventListener("keydown", onKeyDown);
31
+ return () => {
32
+ target.removeEventListener("keydown", onKeyDown);
33
+ };
34
+ };
35
+ //# sourceMappingURL=hotkeys-binding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hotkeys-binding.js","sourceRoot":"","sources":["../src/hotkeys-binding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAuB,MAAM,uBAAuB,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAenD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,MAAc,EACd,UAAgC,EAAE,EACpB,EAAE;IAChB,MAAM,MAAM,GAAoC,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC;IACzE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,qBAAqB,CAAC;IAE3D,MAAM,SAAS,GAAG,CAAC,KAAY,EAAQ,EAAE;QACvC,IAAI,CAAC,CAAC,KAAK,YAAY,aAAa,CAAC;YAAE,OAAO;QAC9C,MAAM,OAAO,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC;QACxD,IAAI,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9B,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ;gBAAE,OAAO;YACnC,IAAI,OAAO,YAAY,WAAW;gBAAE,OAAO,CAAC,IAAI,EAAE,CAAC;QACrD,CAAC;QACD,IAAI,QAAQ,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC;YAAE,KAAK,CAAC,cAAc,EAAE,CAAC;IACzE,CAAC,CAAC;IAEF,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAC9C,OAAO,GAAG,EAAE;QACV,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACnD,CAAC,CAAC;AACJ,CAAC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -3,23 +3,29 @@ export { DEFAULT_MODE } from "./modes.js";
3
3
  export type { Selection } from "./selection.js";
4
4
  export * as selection from "./selection.js";
5
5
  export type { HandleId } from "./handle.js";
6
- export { ALL_HANDLES, HANDLE_SIZE, handlePosition, hitHandle, resizeBounds } from "./handle.js";
6
+ export { ALL_HANDLES, HANDLE_SIZE, handlePosition, hitHandle, resizeBounds, registerRotateAnchor, getRotateAnchor, } from "./handle.js";
7
7
  export type { InteractionContext, InteractionEvent, InteractionEmit, PressTarget, PointerDownEvent, PointerMoveEvent, PointerUpEvent, PointerCancelEvent, SetModeEvent, } from "./machine.js";
8
8
  export { interactionMachine, interpretPressEnd, DRAG_THRESHOLD, boundsFromPoints, } from "./machine.js";
9
9
  export type { OverlayStyle, PeerCursor, PeerSelection } from "./overlay.js";
10
10
  export { renderOverlay, DEFAULT_OVERLAY_STYLE } from "./overlay.js";
11
11
  export { PEER_CURSOR_BROADCAST_INTERVAL_MS } from "./constants.js";
12
- export { fromPointerEvent, fromKeyboardEvent, fromWheelEvent } from "./dom-events.js";
12
+ export { fromPointerEvent, fromKeyboardEvent, fromWheelEvent, isEditableTarget, } from "./dom-events.js";
13
+ export { bindEditorHotkeys, type HotkeyBindingOptions } from "./hotkeys-binding.js";
14
+ export { searchScene, elementSearchText, type SceneSearchMatch, type SceneSearchKind, } from "./search.js";
13
15
  export type { InteractiveHitTester } from "./interactive.js";
14
16
  export { registerInteractiveHitTester, getInteractiveHitTester } from "./interactive.js";
15
17
  export type { EditorOptions, LoadSceneOptions, CursorRole, CursorSpec } from "./editor.js";
16
18
  export { Editor } from "./editor.js";
17
19
  export type { EditorEvents } from "./editor-events.js";
18
20
  export { normalizeHref, safeHref } from "./editor/public/link.js";
21
+ export { DEFAULT_BRUSH_SETTINGS } from "./editor/public/brush.js";
22
+ export type { BrushSettings } from "./editor/public/brush.js";
23
+ export { clampCrop, computeConvertType, computeSetImageCrop, computeCommitImageCrop, computeSpawnConnectedNode, cropFullImageLocalRect, cropHandleWorldPoints, computeCropHandleDrag, computeCropBodyPan, CROP_HANDLES, FULL_CROP, pickColorAt, } from "./editor/public/tool-ops.js";
24
+ export type { ConvertTarget, CropDragResult, CropHandle, SpawnDirection, } from "./editor/public/tool-ops.js";
19
25
  export type { FileDropHandler, FileDropContext, WalkOptions } from "./file-drop.js";
20
26
  export { FileDropRegistry, IMAGE_MIME_TYPES, VIDEO_MIME_TYPES, isImageFile, isVideoFile, isSceneJsonFile, readFileAsDataURL, readFileAsText, walkDataTransfer, } from "./file-drop.js";
21
27
  export type { Action, ActionCategory, ActionContext, HotkeyMatcher } from "./actions/index.js";
22
- export { ActionRegistry, defaultActionRegistry, registerBuiltinActions, hasSelection, hasSelectionOrLink, actionUndo, actionRedo, historyActions, actionSelectAll, actionDeleteSelection, actionDuplicateSelection, selectionActions, actionCopy, actionCut, actionPaste, clipboardActions, actionBringToFront, actionSendToBack, zOrderActions, actionGroupSelection, actionUngroupSelection, groupingActions, actionZoomIn, actionZoomOut, actionZoomReset, actionZoomToFit, zoomActions, actionModeSelect, actionModeHand, actionModeRect, actionModeEllipse, actionModeText, actionModeLink, actionModeBrush, actionModeFrame, actionToggleToolLock, actionCancel, modeActions, } from "./actions/index.js";
28
+ export { ActionRegistry, defaultActionRegistry, registerBuiltinActions, hasSelection, hasSelectionOrLink, actionUndo, actionRedo, historyActions, actionSelectAll, actionDeleteSelection, actionDuplicateSelection, actionToggleLock, actionEnterContainer, actionExitContainer, selectionActions, actionCopy, actionCut, actionPaste, actionCopyStyle, actionPasteStyle, clipboardActions, actionBringToFront, actionSendToBack, actionBringForward, actionSendBackward, zOrderActions, actionGroupSelection, actionUngroupSelection, groupingActions, actionZoomIn, actionZoomOut, actionZoomReset, actionZoomToFit, actionZoomToSelection, zoomActions, actionToggleGrid, actionToggleReadOnly, viewActions, actionFlipHorizontal, actionFlipVertical, actionAlignLeft, actionAlignHCenter, actionAlignRight, actionAlignTop, actionAlignVCenter, actionAlignBottom, actionDistributeHorizontal, actionDistributeVertical, arrangeActions, actionIncreaseFontSize, actionDecreaseFontSize, textActions, actionModeSelect, actionModeHand, actionModeRect, actionModeEllipse, actionModeText, actionModeLink, actionModeBrush, actionModeErase, actionModeLaser, actionModeFrame, actionToggleToolLock, actionCancel, modeActions, } from "./actions/index.js";
23
29
  export type { PrettyHotkeyDesc } from "./platform.js";
24
30
  export { isMac, isWindows, isAndroid, isIOS, isLinux, isFirefox, isSafari, CTRL_OR_CMD_KEY, getDevicePixelRatio, formatHotkey, formatHotkeyParts, } from "./platform.js";
25
31
  export type { Annotation, Comment } from "@oh-just-another/scene";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,16 +1,23 @@
1
1
  export { DEFAULT_MODE } from "./modes.js";
2
2
  export * as selection from "./selection.js";
3
- export { ALL_HANDLES, HANDLE_SIZE, handlePosition, hitHandle, resizeBounds } from "./handle.js";
3
+ export { ALL_HANDLES, HANDLE_SIZE, handlePosition, hitHandle, resizeBounds, registerRotateAnchor, getRotateAnchor, } from "./handle.js";
4
4
  export { interactionMachine, interpretPressEnd, DRAG_THRESHOLD, boundsFromPoints, } from "./machine.js";
5
5
  export { renderOverlay, DEFAULT_OVERLAY_STYLE } from "./overlay.js";
6
6
  export { PEER_CURSOR_BROADCAST_INTERVAL_MS } from "./constants.js";
7
- export { fromPointerEvent, fromKeyboardEvent, fromWheelEvent } from "./dom-events.js";
7
+ export { fromPointerEvent, fromKeyboardEvent, fromWheelEvent, isEditableTarget, } from "./dom-events.js";
8
+ export { bindEditorHotkeys } from "./hotkeys-binding.js";
9
+ // Scene text search — pure substring index over shape text / frame names /
10
+ // edge labels. UI-agnostic; drives the search overlay.
11
+ export { searchScene, elementSearchText, } from "./search.js";
8
12
  export { registerInteractiveHitTester, getInteractiveHitTester } from "./interactive.js";
9
13
  export { Editor } from "./editor.js";
10
14
  export { normalizeHref, safeHref } from "./editor/public/link.js";
15
+ export { DEFAULT_BRUSH_SETTINGS } from "./editor/public/brush.js";
16
+ // Tool operations (eyedropper / convert-type / image-crop / spawn-connected).
17
+ export { clampCrop, computeConvertType, computeSetImageCrop, computeCommitImageCrop, computeSpawnConnectedNode, cropFullImageLocalRect, cropHandleWorldPoints, computeCropHandleDrag, computeCropBodyPan, CROP_HANDLES, FULL_CROP, pickColorAt, } from "./editor/public/tool-ops.js";
11
18
  export { FileDropRegistry, IMAGE_MIME_TYPES, VIDEO_MIME_TYPES, isImageFile, isVideoFile, isSceneJsonFile, readFileAsDataURL, readFileAsText, walkDataTransfer, } from "./file-drop.js";
12
19
  export { ActionRegistry, defaultActionRegistry, registerBuiltinActions, hasSelection, hasSelectionOrLink,
13
20
  // Re-export individual built-ins so hosts can replace / compose.
14
- actionUndo, actionRedo, historyActions, actionSelectAll, actionDeleteSelection, actionDuplicateSelection, selectionActions, actionCopy, actionCut, actionPaste, clipboardActions, actionBringToFront, actionSendToBack, zOrderActions, actionGroupSelection, actionUngroupSelection, groupingActions, actionZoomIn, actionZoomOut, actionZoomReset, actionZoomToFit, zoomActions, actionModeSelect, actionModeHand, actionModeRect, actionModeEllipse, actionModeText, actionModeLink, actionModeBrush, actionModeFrame, actionToggleToolLock, actionCancel, modeActions, } from "./actions/index.js";
21
+ actionUndo, actionRedo, historyActions, actionSelectAll, actionDeleteSelection, actionDuplicateSelection, actionToggleLock, actionEnterContainer, actionExitContainer, selectionActions, actionCopy, actionCut, actionPaste, actionCopyStyle, actionPasteStyle, clipboardActions, actionBringToFront, actionSendToBack, actionBringForward, actionSendBackward, zOrderActions, actionGroupSelection, actionUngroupSelection, groupingActions, actionZoomIn, actionZoomOut, actionZoomReset, actionZoomToFit, actionZoomToSelection, zoomActions, actionToggleGrid, actionToggleReadOnly, viewActions, actionFlipHorizontal, actionFlipVertical, actionAlignLeft, actionAlignHCenter, actionAlignRight, actionAlignTop, actionAlignVCenter, actionAlignBottom, actionDistributeHorizontal, actionDistributeVertical, arrangeActions, actionIncreaseFontSize, actionDecreaseFontSize, textActions, actionModeSelect, actionModeHand, actionModeRect, actionModeEllipse, actionModeText, actionModeLink, actionModeBrush, actionModeErase, actionModeLaser, actionModeFrame, actionToggleToolLock, actionCancel, modeActions, } from "./actions/index.js";
15
22
  export { isMac, isWindows, isAndroid, isIOS, isLinux, isFirefox, isSafari, CTRL_OR_CMD_KEY, getDevicePixelRatio, formatHotkey, formatHotkeyParts, } from "./platform.js";
16
23
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1C,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAC;AAG5C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAahG,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAEpE,OAAO,EAAE,iCAAiC,EAAE,MAAM,gBAAgB,CAAC;AAEnE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGtF,OAAO,EAAE,4BAA4B,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAGzF,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAIlE,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AAIxB,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,sBAAsB,EACtB,YAAY,EACZ,kBAAkB;AAClB,iEAAiE;AACjE,UAAU,EACV,UAAU,EACV,cAAc,EACd,eAAe,EACf,qBAAqB,EACrB,wBAAwB,EACxB,gBAAgB,EAChB,UAAU,EACV,SAAS,EACT,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,oBAAoB,EACpB,sBAAsB,EACtB,eAAe,EACf,YAAY,EACZ,aAAa,EACb,eAAe,EACf,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,YAAY,EACZ,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EACL,KAAK,EACL,SAAS,EACT,SAAS,EACT,KAAK,EACL,OAAO,EACP,SAAS,EACT,QAAQ,EACR,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,GAClB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}