@oh-just-another/state 0.57.0 → 0.59.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 (233) hide show
  1. package/CHANGELOG.md +90 -0
  2. package/README.md +76 -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 +36 -4
  11. package/dist/actions/actionClipboard.js.map +1 -1
  12. package/dist/actions/actionGrouping.d.ts.map +1 -1
  13. package/dist/actions/actionGrouping.js +3 -1
  14. package/dist/actions/actionGrouping.js.map +1 -1
  15. package/dist/actions/actionKeyboard.d.ts.map +1 -1
  16. package/dist/actions/actionKeyboard.js +6 -2
  17. package/dist/actions/actionKeyboard.js.map +1 -1
  18. package/dist/actions/actionLayout.d.ts.map +1 -1
  19. package/dist/actions/actionLayout.js +12 -4
  20. package/dist/actions/actionLayout.js.map +1 -1
  21. package/dist/actions/actionMode.d.ts.map +1 -1
  22. package/dist/actions/actionMode.js +30 -10
  23. package/dist/actions/actionMode.js.map +1 -1
  24. package/dist/actions/actionSelection.d.ts.map +1 -1
  25. package/dist/actions/actionSelection.js +18 -6
  26. package/dist/actions/actionSelection.js.map +1 -1
  27. package/dist/actions/actionText.d.ts +5 -0
  28. package/dist/actions/actionText.d.ts.map +1 -0
  29. package/dist/actions/actionText.js +37 -0
  30. package/dist/actions/actionText.js.map +1 -0
  31. package/dist/actions/actionView.d.ts.map +1 -1
  32. package/dist/actions/actionView.js +4 -2
  33. package/dist/actions/actionView.js.map +1 -1
  34. package/dist/actions/actionZOrder.d.ts.map +1 -1
  35. package/dist/actions/actionZOrder.js +12 -4
  36. package/dist/actions/actionZOrder.js.map +1 -1
  37. package/dist/actions/actionZoom.d.ts.map +1 -1
  38. package/dist/actions/actionZoom.js +17 -17
  39. package/dist/actions/actionZoom.js.map +1 -1
  40. package/dist/actions/index.d.ts +3 -1
  41. package/dist/actions/index.d.ts.map +1 -1
  42. package/dist/actions/index.js +3 -1
  43. package/dist/actions/index.js.map +1 -1
  44. package/dist/actions/registry.d.ts.map +1 -1
  45. package/dist/actions/registry.js +5 -3
  46. package/dist/actions/registry.js.map +1 -1
  47. package/dist/actions/types.d.ts +1 -1
  48. package/dist/actions/types.d.ts.map +1 -1
  49. package/dist/actions/types.js.map +1 -1
  50. package/dist/auto-layout-scheduler.d.ts +1 -3
  51. package/dist/auto-layout-scheduler.d.ts.map +1 -1
  52. package/dist/auto-layout-scheduler.js +1 -2
  53. package/dist/auto-layout-scheduler.js.map +1 -1
  54. package/dist/built-in-handlers.d.ts.map +1 -1
  55. package/dist/built-in-handlers.js +30 -7
  56. package/dist/built-in-handlers.js.map +1 -1
  57. package/dist/clipboard.d.ts.map +1 -1
  58. package/dist/clipboard.js +6 -7
  59. package/dist/clipboard.js.map +1 -1
  60. package/dist/constants.d.ts +48 -23
  61. package/dist/constants.d.ts.map +1 -1
  62. package/dist/constants.js +48 -23
  63. package/dist/constants.js.map +1 -1
  64. package/dist/dom-events.d.ts +7 -0
  65. package/dist/dom-events.d.ts.map +1 -1
  66. package/dist/dom-events.js +12 -0
  67. package/dist/dom-events.js.map +1 -1
  68. package/dist/editor/animation-scene.d.ts +21 -0
  69. package/dist/editor/animation-scene.d.ts.map +1 -0
  70. package/dist/editor/animation-scene.js +71 -0
  71. package/dist/editor/animation-scene.js.map +1 -0
  72. package/dist/editor/animation.d.ts +43 -0
  73. package/dist/editor/animation.d.ts.map +1 -0
  74. package/dist/editor/animation.js +80 -0
  75. package/dist/editor/animation.js.map +1 -0
  76. package/dist/editor/applies/arrange.d.ts +46 -0
  77. package/dist/editor/applies/arrange.d.ts.map +1 -0
  78. package/dist/editor/applies/arrange.js +162 -0
  79. package/dist/editor/applies/arrange.js.map +1 -0
  80. package/dist/editor/applies/create.d.ts.map +1 -1
  81. package/dist/editor/applies/create.js +1 -1
  82. package/dist/editor/applies/create.js.map +1 -1
  83. package/dist/editor/applies/edge.d.ts +8 -1
  84. package/dist/editor/applies/edge.d.ts.map +1 -1
  85. package/dist/editor/applies/edge.js +31 -1
  86. package/dist/editor/applies/edge.js.map +1 -1
  87. package/dist/editor/applies/link-move.d.ts.map +1 -1
  88. package/dist/editor/applies/link-move.js +5 -2
  89. package/dist/editor/applies/link-move.js.map +1 -1
  90. package/dist/editor/applies/move.d.ts +6 -0
  91. package/dist/editor/applies/move.d.ts.map +1 -1
  92. package/dist/editor/applies/move.js +6 -0
  93. package/dist/editor/applies/move.js.map +1 -1
  94. package/dist/editor/applies/resize.d.ts +26 -5
  95. package/dist/editor/applies/resize.d.ts.map +1 -1
  96. package/dist/editor/applies/resize.js +92 -14
  97. package/dist/editor/applies/resize.js.map +1 -1
  98. package/dist/editor/applies/snap-grid.d.ts.map +1 -1
  99. package/dist/editor/applies/snap-grid.js.map +1 -1
  100. package/dist/editor/caret-blink.d.ts +18 -0
  101. package/dist/editor/caret-blink.d.ts.map +1 -0
  102. package/dist/editor/caret-blink.js +42 -0
  103. package/dist/editor/caret-blink.js.map +1 -0
  104. package/dist/editor/container-ops.d.ts.map +1 -1
  105. package/dist/editor/container-ops.js +2 -2
  106. package/dist/editor/container-ops.js.map +1 -1
  107. package/dist/editor/dirty-rect.d.ts +23 -0
  108. package/dist/editor/dirty-rect.d.ts.map +1 -0
  109. package/dist/editor/dirty-rect.js +115 -0
  110. package/dist/editor/dirty-rect.js.map +1 -0
  111. package/dist/editor/gif-playback.d.ts +45 -0
  112. package/dist/editor/gif-playback.d.ts.map +1 -0
  113. package/dist/editor/gif-playback.js +125 -0
  114. package/dist/editor/gif-playback.js.map +1 -0
  115. package/dist/editor/hit-test.d.ts +3 -3
  116. package/dist/editor/hit-test.d.ts.map +1 -1
  117. package/dist/editor/hit-test.js +40 -15
  118. package/dist/editor/hit-test.js.map +1 -1
  119. package/dist/editor/long-press.d.ts.map +1 -1
  120. package/dist/editor/long-press.js +2 -2
  121. package/dist/editor/long-press.js.map +1 -1
  122. package/dist/editor/pinch.d.ts.map +1 -1
  123. package/dist/editor/pinch.js +6 -7
  124. package/dist/editor/pinch.js.map +1 -1
  125. package/dist/editor/pointer-binding.d.ts.map +1 -1
  126. package/dist/editor/pointer-binding.js +42 -25
  127. package/dist/editor/pointer-binding.js.map +1 -1
  128. package/dist/editor/public/annotations.d.ts.map +1 -1
  129. package/dist/editor/public/annotations.js.map +1 -1
  130. package/dist/editor/public/arrange-group.d.ts +3 -9
  131. package/dist/editor/public/arrange-group.d.ts.map +1 -1
  132. package/dist/editor/public/arrange-group.js +4 -6
  133. package/dist/editor/public/arrange-group.js.map +1 -1
  134. package/dist/editor/public/brush.d.ts.map +1 -1
  135. package/dist/editor/public/brush.js +1 -3
  136. package/dist/editor/public/brush.js.map +1 -1
  137. package/dist/editor/public/clipboard.d.ts +2 -4
  138. package/dist/editor/public/clipboard.d.ts.map +1 -1
  139. package/dist/editor/public/clipboard.js +2 -4
  140. package/dist/editor/public/clipboard.js.map +1 -1
  141. package/dist/editor/public/cursor.d.ts +43 -0
  142. package/dist/editor/public/cursor.d.ts.map +1 -0
  143. package/dist/editor/public/cursor.js +135 -0
  144. package/dist/editor/public/cursor.js.map +1 -0
  145. package/dist/editor/public/frame-name.d.ts +20 -0
  146. package/dist/editor/public/frame-name.d.ts.map +1 -0
  147. package/dist/editor/public/frame-name.js +54 -0
  148. package/dist/editor/public/frame-name.js.map +1 -0
  149. package/dist/editor/public/image-insert.d.ts +1 -1
  150. package/dist/editor/public/image-insert.d.ts.map +1 -1
  151. package/dist/editor/public/layers.d.ts.map +1 -1
  152. package/dist/editor/public/layers.js +2 -2
  153. package/dist/editor/public/layers.js.map +1 -1
  154. package/dist/editor/public/link.d.ts +11 -2
  155. package/dist/editor/public/link.d.ts.map +1 -1
  156. package/dist/editor/public/link.js +71 -5
  157. package/dist/editor/public/link.js.map +1 -1
  158. package/dist/editor/public/placement.d.ts +60 -2
  159. package/dist/editor/public/placement.d.ts.map +1 -1
  160. package/dist/editor/public/placement.js +185 -2
  161. package/dist/editor/public/placement.js.map +1 -1
  162. package/dist/editor/public/selection-ops.d.ts +23 -1
  163. package/dist/editor/public/selection-ops.d.ts.map +1 -1
  164. package/dist/editor/public/selection-ops.js +81 -8
  165. package/dist/editor/public/selection-ops.js.map +1 -1
  166. package/dist/editor/public/text-edit.d.ts +1 -10
  167. package/dist/editor/public/text-edit.d.ts.map +1 -1
  168. package/dist/editor/public/text-edit.js +2 -16
  169. package/dist/editor/public/text-edit.js.map +1 -1
  170. package/dist/editor/public/z-order.d.ts.map +1 -1
  171. package/dist/editor/public/z-order.js +5 -5
  172. package/dist/editor/public/z-order.js.map +1 -1
  173. package/dist/editor/public/zoom-pan.d.ts +6 -4
  174. package/dist/editor/public/zoom-pan.d.ts.map +1 -1
  175. package/dist/editor/public/zoom-pan.js +8 -7
  176. package/dist/editor/public/zoom-pan.js.map +1 -1
  177. package/dist/editor/render-orchestrator.d.ts.map +1 -1
  178. package/dist/editor/render-orchestrator.js +5 -11
  179. package/dist/editor/render-orchestrator.js.map +1 -1
  180. package/dist/editor/resize-helpers.d.ts +21 -5
  181. package/dist/editor/resize-helpers.d.ts.map +1 -1
  182. package/dist/editor/resize-helpers.js +59 -19
  183. package/dist/editor/resize-helpers.js.map +1 -1
  184. package/dist/editor/viewport-helpers.d.ts.map +1 -1
  185. package/dist/editor/viewport-helpers.js +3 -3
  186. package/dist/editor/viewport-helpers.js.map +1 -1
  187. package/dist/editor-events.d.ts +1 -1
  188. package/dist/editor-events.d.ts.map +1 -1
  189. package/dist/editor.d.ts +125 -130
  190. package/dist/editor.d.ts.map +1 -1
  191. package/dist/editor.js +352 -985
  192. package/dist/editor.js.map +1 -1
  193. package/dist/file-drop.d.ts.map +1 -1
  194. package/dist/file-drop.js +7 -4
  195. package/dist/file-drop.js.map +1 -1
  196. package/dist/frame-helpers.d.ts.map +1 -1
  197. package/dist/frame-helpers.js +5 -5
  198. package/dist/frame-helpers.js.map +1 -1
  199. package/dist/group-helpers.d.ts.map +1 -1
  200. package/dist/group-helpers.js +4 -4
  201. package/dist/group-helpers.js.map +1 -1
  202. package/dist/handle.d.ts +61 -6
  203. package/dist/handle.d.ts.map +1 -1
  204. package/dist/handle.js +105 -7
  205. package/dist/handle.js.map +1 -1
  206. package/dist/hotkeys-binding.d.ts +26 -0
  207. package/dist/hotkeys-binding.d.ts.map +1 -0
  208. package/dist/hotkeys-binding.js +35 -0
  209. package/dist/hotkeys-binding.js.map +1 -0
  210. package/dist/index.d.ts +3 -2
  211. package/dist/index.d.ts.map +1 -1
  212. package/dist/index.js +3 -2
  213. package/dist/index.js.map +1 -1
  214. package/dist/link-selection.d.ts +3 -5
  215. package/dist/link-selection.d.ts.map +1 -1
  216. package/dist/link-selection.js +3 -12
  217. package/dist/link-selection.js.map +1 -1
  218. package/dist/machine.d.ts +27 -1
  219. package/dist/machine.d.ts.map +1 -1
  220. package/dist/machine.js +38 -0
  221. package/dist/machine.js.map +1 -1
  222. package/dist/overlay.d.ts +1 -4
  223. package/dist/overlay.d.ts.map +1 -1
  224. package/dist/overlay.js +142 -38
  225. package/dist/overlay.js.map +1 -1
  226. package/dist/selection.d.ts.map +1 -1
  227. package/dist/selection.js +2 -10
  228. package/dist/selection.js.map +1 -1
  229. package/dist/util.d.ts +8 -0
  230. package/dist/util.d.ts.map +1 -0
  231. package/dist/util.js +17 -0
  232. package/dist/util.js.map +1 -0
  233. package/package.json +9 -9
@@ -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":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AACvG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAgB,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AAErD;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GACnB;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC7E;IACE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,GACD;IACE;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAC9C;IACE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,GACD;IACE;;;;;;;OAOG;IACH,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;CACvB,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAE/B,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,IAAI,CAAC;IAC1D,+CAA+C;IAC/C,QAAQ,CAAC,cAAc,EAAE,SAAS,GAAG,IAAI,CAAC;CAC3C;AAWD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;CAChC;AACD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;CACtB;AACD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;IACrB;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AACD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;CACjC;AACD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;CACrB;AAED,MAAM,MAAM,gBAAgB,GACxB,gBAAgB,GAChB,gBAAgB,GAChB,cAAc,GACd,kBAAkB,GAClB,YAAY,CAAC;AAEjB;;;GAGG;AACH,MAAM,MAAM,eAAe,GACvB;IAAE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAA;CAAE,GAC3D;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAA;CAAE,GAC1D;IAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;CAAE,GACjC;IACE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;uCAEmC;IACnC,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,KAAK,CAAC;CAClC,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;CAAE,GAChC;IACE,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,8DAA8D;IAC9D,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,KAAK,CAAC;CAClC,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAC7D;IAAE,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAC5D;IAAE,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAA;CAAE,GACtC;IACE,QAAQ,CAAC,IAAI,EAAE,8BAA8B,CAAC;IAC9C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;CACxB,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;CACtC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;IACrB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;IACrB,QAAQ,CAAC,gBAAgB,EAAE,IAAI,CAAC;CACjC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAC;IACxC,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC;CAC3B,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;IACrB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC,GACD;IACE;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;IACrB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IACjD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,uEAAuE;IACvE,QAAQ,CAAC,WAAW,EAAE,SAAS,GAAG,IAAI,CAAC;IACvC,sEAAsE;IACtE,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IACrC,gFAAgF;IAChF,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB,8EAA8E;IAC9E,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;CACxB,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,SAAS,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;CACxB,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAA;CAAE,GAC5C;IACE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,qEAAqE;IACrE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,+CAA+C;IAC/C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,8CAA8C;IAC9C,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,yDAAyD;IACzD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,4EAA4E;IAC5E,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,iDAAiD;IACjD,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;CACtB,CAAC;AAEN,8DAA8D;AAC9D,eAAO,MAAM,cAAc,IAAI,CAAC;AAQhC,QAAA,MAAM,gBAAgB,GAAI,GAAG,IAAI,EAAE,GAAG,IAAI,KAAG,MAI5C,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;eAQJ,IAAI;gBAAU,WAAW;mBAAa,SAAS,GAAG,IAAI;;;;;eAOrC,IAAI;;;;;cACD,MAAM,GAAG,SAAS,GAAG,OAAO;;;;;;;;cAUnC,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8c1C,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,GAC5B,KAAK,kBAAkB,EACvB,SAAS,IAAI,KACZ,eAAe,GAAG,IA4BpB,CAAC;AAEF,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
1
+ {"version":3,"file":"machine.d.ts","sourceRoot":"","sources":["../src/machine.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,YAAY,EACZ,MAAM,EACN,MAAM,EACN,SAAS,EACT,SAAS,EACT,IAAI,EACL,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAgB,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AAErD;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GACnB;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC7E;IACE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,GACD;IACE;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,GACD;IACE;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAC9C;IACE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,GACD;IACE;;;;;;;OAOG;IACH,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;CACvB,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAE/B,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,IAAI,CAAC;IAC1D,+CAA+C;IAC/C,QAAQ,CAAC,cAAc,EAAE,SAAS,GAAG,IAAI,CAAC;CAC3C;AAWD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;CAChC;AACD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;CACtB;AACD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;IACrB;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AACD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;CACjC;AACD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;CACrB;AAED,MAAM,MAAM,gBAAgB,GACxB,gBAAgB,GAChB,gBAAgB,GAChB,cAAc,GACd,kBAAkB,GAClB,YAAY,CAAC;AAEjB;;;GAGG;AACH,MAAM,MAAM,eAAe,GACvB;IAAE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAA;CAAE,GAC3D;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAA;CAAE,GAC1D;IAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;CAAE,GACjC;IACE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;uCAEmC;IACnC,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,KAAK,CAAC;CAClC,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;CAAE,GAChC;IACE,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,8DAA8D;IAC9D,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,KAAK,CAAC;CAClC,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAC7D;IAAE,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAC5D;IAAE,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAA;CAAE,GACtC;IACE,QAAQ,CAAC,IAAI,EAAE,8BAA8B,CAAC;IAC9C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;CACxB,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;CACtC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;IACrB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;IACrB,QAAQ,CAAC,gBAAgB,EAAE,IAAI,CAAC;CACjC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAC;IACxC,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC;CAC3B,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;IACrB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC,GACD;IACE;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;IACrB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC,GACD;IACE;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;IACrB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IACjD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,uEAAuE;IACvE,QAAQ,CAAC,WAAW,EAAE,SAAS,GAAG,IAAI,CAAC;IACvC,sEAAsE;IACtE,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IACrC,gFAAgF;IAChF,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB,8EAA8E;IAC9E,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;CACxB,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,SAAS,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;CACxB,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAA;CAAE,GAC5C;IACE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,qEAAqE;IACrE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,+CAA+C;IAC/C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,8CAA8C;IAC9C,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,yDAAyD;IACzD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,4EAA4E;IAC5E,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,iDAAiD;IACjD,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;CACtB,CAAC;AAEN,8DAA8D;AAC9D,eAAO,MAAM,cAAc,IAAI,CAAC;AAQhC,QAAA,MAAM,gBAAgB,GAAI,GAAG,IAAI,EAAE,GAAG,IAAI,KAAG,MAI5C,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;eAQJ,IAAI;gBAAU,WAAW;mBAAa,SAAS,GAAG,IAAI;;;;;eAOrC,IAAI;;;;;cACD,MAAM,GAAG,SAAS,GAAG,OAAO;;;;;;;;cAUnC,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAof1C,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,GAC5B,KAAK,kBAAkB,EACvB,SAAS,IAAI,KACZ,eAAe,GAAG,IA4BpB,CAAC;AAEF,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
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/overlay.d.ts CHANGED
@@ -181,10 +181,7 @@ export declare const renderOverlay: (scene: Scene, selection: Selection, target:
181
181
  * (matches the BrushElement memory layout).
182
182
  */
183
183
  brushPreview?: {
184
- readonly origin: {
185
- readonly x: number;
186
- readonly y: number;
187
- };
184
+ readonly origin: Vec2;
188
185
  readonly points: readonly {
189
186
  x: number;
190
187
  y: number;
@@ -1 +1 @@
1
- {"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../src/overlay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,EAAa,SAAS,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC/F,OAAO,EAIL,KAAK,UAAU,EACf,KAAK,OAAO,EACZ,KAAK,KAAK,EACX,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,gCAAgC,CAAC;AAqCxC,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAwBhD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC;AAED,eAAO,MAAM,qBAAqB,EAAE,YAOnC,CAAC;AAKF;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC;IAC7C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,yBAAyB,GACpC,QAAQ,YAAY,EACpB,KAAK,SAAS,EACd,OAAO,SAAS,WAAW,EAAE,EAC7B,MAAM,MAAM,EACZ,QAAO,YAAoC,KAC1C,IAkCF,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B,wEAAwE;IACxE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,IAAI,EAAE,CAAC;CACnC;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,WAAW,EAAE,SAAS,IAAI,EAAE,CAAC;IACtC,+DAA+D;IAC/D,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,YAAY,GAAG,aAAa,CAAC;CAC9C;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,yDAAyD;IACzD,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,IAAI,EAAE,CAAC;IACrC,kEAAkE;IAClE,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,IAAI,EAAE,CAAC;CACtC;AAED;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAED,eAAO,MAAM,aAAa,GACxB,OAAO,KAAK,EACZ,WAAW,SAAS,EACpB,QAAQ,YAAY,EACpB,UAAS;IACP,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;;OAOG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;;;;OAKG;IACH,KAAK,CAAC,EAAE,WAAW,GAAG,SAAS,WAAW,EAAE,CAAC;IAC7C,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,IAAI,EAAE,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC1F;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;OAKG;IACH,YAAY,CAAC,EAAE;QACb,QAAQ,CAAC,MAAM,EAAE;YAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAC5D,QAAQ,CAAC,MAAM,EAAE,SAAS;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QACpE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;KACvB,CAAC;IACF;;;;OAIG;IACH,WAAW,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IACpC;;;OAGG;IACH,cAAc,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IAC1C;;;;;OAKG;IACH,WAAW,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IACpC,kBAAkB,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IACzC;;;;OAIG;IACH,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B;;;;;OAKG;IACH,WAAW,CAAC,EAAE;QACZ,QAAQ,CAAC,KAAK,EAAE;YAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,CAAC;QAC3F,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;KAC5C,CAAC;IACF;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,aAAa,CAAC;IACjC;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,iBAAiB,CAAC;IACxC;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,iBAAiB,CAAC;IAC3C,KAAK,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;CAC1B,KACL,IA8WF,CAAC"}
1
+ {"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../src/overlay.ts"],"names":[],"mappings":"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"}
package/dist/overlay.js CHANGED
@@ -1,16 +1,11 @@
1
- import { getAnnotationWorldPosition, getElementWorldBounds, getWorldToScreen, } from "@oh-just-another/scene";
1
+ import { getAnnotationWorldPosition, getElementWorldBounds, getWorldToScreen, isGroup, } from "@oh-just-another/scene";
2
2
  import { bounds as B, matrix } from "@oh-just-another/math";
3
3
  import { getElementRenderer, strokeRoundedPolyline, LINK_CORNER_RADIUS, } from "@oh-just-another/renderer-core";
4
- import { ANCHOR_DOT_ACTIVE_RADIUS, ANCHOR_DOT_RADIUS, ANCHOR_DOT_STROKE_WIDTH, ANNOTATION_PIN_BADGE_FONT_SIZE, ANNOTATION_PIN_FILL, ANNOTATION_PIN_RADIUS, ANNOTATION_PIN_RESOLVED_FILL, ANNOTATION_PIN_STROKE, CURSOR_ARROW_SIZE, CURSOR_NAME_CHIP_OFFSET, CURSOR_NAME_CHIP_PADDING_X, CURSOR_NAME_CHIP_PADDING_Y, CURSOR_NAME_FONT_SIZE, DRAW_PREVIEW_OPACITY, GHOST_PREVIEW_OPACITY, LINK_ATTACH_ANCHOR_FILL, LINK_ATTACH_ANCHOR_STROKE, LINK_ENDPOINT_HANDLE_DRAW_RADIUS, LINK_MIDPOINT_HANDLE_DRAW_RADIUS, SELECTION_HALO_PEEK_PX, LINK_START_ANCHOR_FILL, LINK_START_ANCHOR_STROKE, PEER_SELECTION_DASH, PEER_SELECTION_PADDING, PEER_SELECTION_STROKE_WIDTH, TEXT_CARET_WIDTH_PX, TEXT_SELECTION_FILL, TEXT_SELECTION_OPACITY, } from "./constants.js";
5
- import { CORNER_HANDLES, HANDLE_SIZE, handlePosition, } from "./handle.js";
4
+ import { ANCHOR_DOT_ACTIVE_RADIUS, ANCHOR_DOT_RADIUS, ANCHOR_DOT_STROKE_WIDTH, ANNOTATION_PIN_BADGE_FONT_SIZE, ANNOTATION_PIN_FILL, ANNOTATION_PIN_RADIUS, ANNOTATION_PIN_RESOLVED_FILL, ANNOTATION_PIN_STROKE, CURSOR_ARROW_SIZE, CURSOR_NAME_CHIP_OFFSET, CURSOR_NAME_CHIP_PADDING_X, CURSOR_NAME_CHIP_PADDING_Y, CURSOR_NAME_FONT_SIZE, DRAW_PREVIEW_OPACITY, GHOST_PREVIEW_OPACITY, LINK_ATTACH_ANCHOR_FILL, LINK_ATTACH_ANCHOR_STROKE, LINK_ENDPOINT_HANDLE_DRAW_RADIUS, LINK_MIDPOINT_HANDLE_DRAW_RADIUS, SELECTION_HALO_PEEK_PX, LINK_START_ANCHOR_FILL, LINK_START_ANCHOR_STROKE, PEER_SELECTION_DASH, PEER_SELECTION_PADDING, PEER_SELECTION_STROKE_WIDTH, TEXT_CARET_WIDTH_PX, TEXT_SELECTION_FILL, TEXT_SELECTION_OPACITY, GIF_BADGE_W, GIF_BADGE_H, GIF_BADGE_PAD, GIF_BADGE_RADIUS, GIF_BADGE_BG_COLOR, LOCK_BADGE_SIZE, LOCK_BADGE_COLOR, LOCK_BADGE_KEYHOLE_COLOR, ROTATE_ICON_RADIUS, } from "./constants.js";
5
+ import { CORNER_HANDLES, HANDLE_SIZE, frameCorners, handlePosition, handleWorldOnFrame, rotateGripForBounds, rotateGripWorld, shapeSelectionFrame, } from "./handle.js";
6
6
  import { isResizable } from "./editor/shape-traits.js";
7
7
  import { drawHitZones, hitZoneVisibility, } from "./editor/hit-test.js";
8
- /** Index-access helper: throws on out-of-range instead of returning `undefined`. */
9
- const req = (v) => {
10
- if (v === undefined)
11
- throw new Error("packages/state: index out of range");
12
- return v;
13
- };
8
+ import { req } from "./util.js";
14
9
  /**
15
10
  * Union AABB of every direct child of `groupId` (recursive). Returns
16
11
  * `null` for empty groups so callers can skip the outline pass. Used
@@ -21,7 +16,7 @@ const groupWorldBounds = (scene, groupId) => {
21
16
  for (const shape of scene.elements.values()) {
22
17
  if (shape.parentId !== groupId)
23
18
  continue;
24
- const inner = shape.type === "group" ? groupWorldBounds(scene, shape.id) : getElementWorldBounds(shape);
19
+ const inner = isGroup(shape) ? groupWorldBounds(scene, shape.id) : getElementWorldBounds(shape);
25
20
  if (!inner)
26
21
  continue;
27
22
  acc = acc ? B.union(acc, inner) : inner;
@@ -123,30 +118,54 @@ export const renderOverlay = (scene, selection, target, options = {}) => {
123
118
  if (!shape)
124
119
  continue;
125
120
  // Groups have no intrinsic geometry — outline the union of their
126
- // descendants instead. Otherwise the selection chrome would collapse
127
- // to a zero-size point at the group's origin.
128
- const worldBounds = shape.type === "group" ? groupWorldBounds(scene, id) : getElementWorldBounds(shape);
129
- if (!worldBounds)
121
+ // descendants as an axis-aligned box. A single shape gets an oriented
122
+ // frame that turns with its rotation, so the selection box hugs the body
123
+ // instead of its (larger, axis-aligned) AABB.
124
+ if (isGroup(shape)) {
125
+ const worldBounds = groupWorldBounds(scene, id);
126
+ if (!worldBounds)
127
+ continue;
128
+ const screenBounds = projectBounds(worldBounds, w2s);
129
+ drawOutline(target, screenBounds, style);
130
+ if (shape.locked === true) {
131
+ drawLockBadge(target, screenBounds);
132
+ continue;
133
+ }
134
+ if (multiSelect || !isResizable(shape))
135
+ continue;
136
+ for (const handle of CORNER_HANDLES) {
137
+ const worldPoint = handlePosition(handle, worldBounds, zoom);
138
+ drawHandle(target, matrix.applyToPoint(w2s, worldPoint), style);
139
+ }
140
+ drawRotateGripForBounds(target, worldBounds, zoom, w2s, style);
130
141
  continue;
131
- const screenBounds = projectBounds(worldBounds, w2s);
132
- drawOutline(target, screenBounds, style);
142
+ }
143
+ const frame = shapeSelectionFrame(shape);
144
+ // Unrotated → the plain AABB rect (unchanged rendering); rotated → a quad
145
+ // through the frame's corners so the box turns with the shape.
146
+ if (frame.rotation === 0) {
147
+ drawOutline(target, projectBounds(frame.bounds, w2s), style);
148
+ }
149
+ else {
150
+ drawFrameOutline(target, frame, w2s, style);
151
+ }
133
152
  // Locked element: no resize handles; show a small lock badge instead so
134
153
  // the user sees why it won't move/resize (click still selects → unlock).
135
154
  if (shape.locked === true) {
136
- drawLockBadge(target, screenBounds);
155
+ drawLockBadge(target, frameScreenBounds(frame, w2s));
137
156
  continue;
138
157
  }
139
158
  if (multiSelect || !isResizable(shape))
140
159
  continue;
141
- // Draw only the four CORNER dots. The edge-midpoint handles are gone from
142
- // the chrome — edge resize is done by dragging the selection-box side
143
- // (see `hitHandle`), so no midpoint dot is needed. `resizeHandlesFor`
144
- // (ALL_HANDLES) still drives hit-test capability.
160
+ // Draw only the four CORNER dots at the rotated frame corners. Edge
161
+ // resize is done by dragging the selection-box side itself, so no midpoint
162
+ // dot is needed; the edge handles stay hit-testable via `hitHandleOnFrame`.
145
163
  for (const handle of CORNER_HANDLES) {
146
- const worldPoint = handlePosition(handle, worldBounds, zoom);
147
- const screenPoint = matrix.applyToPoint(w2s, worldPoint);
148
- drawHandle(target, screenPoint, style);
164
+ const worldPoint = handleWorldOnFrame(handle, frame, zoom);
165
+ drawHandle(target, matrix.applyToPoint(w2s, worldPoint), style);
149
166
  }
167
+ // Rotate grip from the shape's template anchor (default bottom-left).
168
+ drawRotateIcon(target, matrix.applyToPoint(w2s, rotateGripWorld(shape, zoom)), style);
150
169
  }
151
170
  // 2. Rubber-band drawing preview (already in world coords if drawn before transform reset)
152
171
  if (options.drawingPreview) {
@@ -256,7 +275,7 @@ export const renderOverlay = (scene, selection, target, options = {}) => {
256
275
  if (options.selectedLinkPaths && options.selectedLinkPaths.length > 0) {
257
276
  target.setTransform(w2s);
258
277
  target.setStroke(style.selectionStroke);
259
- target.setOpacity(0.32);
278
+ target.setOpacity(SELECTION_HALO_OPACITY);
260
279
  target.setDashArray(null);
261
280
  target.setLineJoin("round");
262
281
  target.setLineCap("round");
@@ -377,6 +396,7 @@ export const renderOverlay = (scene, selection, target, options = {}) => {
377
396
  const screenPoint = matrix.applyToPoint(w2s, worldPoint);
378
397
  drawHandle(target, screenPoint, style);
379
398
  }
399
+ drawRotateGripForBounds(target, options.groupBounds, zoom, w2s, style);
380
400
  }
381
401
  // 7.5. Annotation pins — drawn before peer cursors so cursors stay
382
402
  // on top, but on top of selection handles. Each pin shows a comment
@@ -431,19 +451,11 @@ export const renderOverlay = (scene, selection, target, options = {}) => {
431
451
  }
432
452
  target.restore();
433
453
  };
434
- /** Rounded "gif" chip in a shape's top-left corner — signals a paused
435
- * GIF the user can click (or hover) to resume. */
436
- const GIF_BADGE_W = 30;
437
- const GIF_BADGE_H = 16;
438
- const GIF_BADGE_PAD = 4;
439
- const GIF_BADGE_RADIUS = 4;
440
- /** Small padlock badge at a selected locked element's top-right corner. */
441
- const LOCK_BADGE_SIZE = 16;
442
454
  const drawLockBadge = (target, b) => {
443
455
  const s = LOCK_BADGE_SIZE;
444
456
  const x = b.x + b.width - s - 2;
445
457
  const y = b.y + 2;
446
- const color = "#1a73e8";
458
+ const color = LOCK_BADGE_COLOR;
447
459
  // Shackle — a ring above the body; its lower half is hidden by the body so
448
460
  // the visible top arc reads as the lock's bow.
449
461
  target.setStroke(color);
@@ -461,7 +473,7 @@ const drawLockBadge = (target, b) => {
461
473
  target.rect(x + s * 0.2, y + s * 0.44, s * 0.6, s * 0.48);
462
474
  target.fill();
463
475
  // Keyhole.
464
- target.setFill("#fff");
476
+ target.setFill(LOCK_BADGE_KEYHOLE_COLOR);
465
477
  target.beginPath();
466
478
  target.ellipse(x + s / 2, y + s * 0.64, s * 0.07, s * 0.07);
467
479
  target.fill();
@@ -474,7 +486,7 @@ const drawGifBadge = (target, screen) => {
474
486
  const r = GIF_BADGE_RADIUS;
475
487
  // Rounded-rect background.
476
488
  target.setStroke(null);
477
- target.setFill("rgba(0,0,0,0.65)");
489
+ target.setFill(GIF_BADGE_BG_COLOR);
478
490
  target.beginPath();
479
491
  target.moveTo(x + r, y);
480
492
  target.lineTo(x + w - r, y);
@@ -509,6 +521,43 @@ const drawOutline = (target, b, style) => {
509
521
  target.rect(b.x, b.y, b.width, b.height);
510
522
  target.stroke();
511
523
  };
524
+ /** Selection outline as a (possibly rotated) quad through the frame's corners. */
525
+ const drawFrameOutline = (target, frame, w2s, style) => {
526
+ const [wnw, wne, wse, wsw] = frameCorners(frame);
527
+ const nw = matrix.applyToPoint(w2s, wnw);
528
+ const ne = matrix.applyToPoint(w2s, wne);
529
+ const se = matrix.applyToPoint(w2s, wse);
530
+ const sw = matrix.applyToPoint(w2s, wsw);
531
+ target.setStroke(style.selectionStroke);
532
+ target.setStrokeWidth(style.selectionStrokeWidth);
533
+ target.setDashArray(null);
534
+ target.beginPath();
535
+ target.moveTo(nw.x, nw.y);
536
+ target.lineTo(ne.x, ne.y);
537
+ target.lineTo(se.x, se.y);
538
+ target.lineTo(sw.x, sw.y);
539
+ target.closePath();
540
+ target.stroke();
541
+ };
542
+ /** Screen-space AABB enclosing the frame's (rotated) corners — for badges. */
543
+ const frameScreenBounds = (frame, w2s) => {
544
+ const pts = frameCorners(frame).map((c) => matrix.applyToPoint(w2s, c));
545
+ let minX = Infinity;
546
+ let minY = Infinity;
547
+ let maxX = -Infinity;
548
+ let maxY = -Infinity;
549
+ for (const p of pts) {
550
+ if (p.x < minX)
551
+ minX = p.x;
552
+ if (p.y < minY)
553
+ minY = p.y;
554
+ if (p.x > maxX)
555
+ maxX = p.x;
556
+ if (p.y > maxY)
557
+ maxY = p.y;
558
+ }
559
+ return { x: minX, y: minY, width: maxX - minX, height: maxY - minY };
560
+ };
512
561
  const drawHandle = (target, center, style) => {
513
562
  // Circle of radius HANDLE_SIZE — visually equivalent to a rounded
514
563
  // square with maximum corner radius, but renders via `ellipse`
@@ -523,6 +572,57 @@ const drawHandle = (target, center, style) => {
523
572
  target.fill();
524
573
  target.stroke();
525
574
  };
575
+ /**
576
+ * Rotate grip: a clockwise circular-arrow glyph (the `rotate-cw` icon) centred
577
+ * at `grip` (screen px), with no connector line back to the shape. Authored in
578
+ * lucide's 24×24 space — a near-full circle (radius 9) opening on the right plus
579
+ * an `L`-shaped arrowhead at the opening — scaled so the circle radius is
580
+ * `ROTATE_ICON_RADIUS` screen px.
581
+ */
582
+ const drawRotateIcon = (target, grip, style) => {
583
+ const s = ROTATE_ICON_RADIUS / 9; // icon radius 9 (in its 24×24 box) → screen px
584
+ // Map a point from the icon's 24×24 space (centre 12,12) to screen.
585
+ const tx = (px, py) => ({
586
+ x: grip.x + (px - 12) * s,
587
+ y: grip.y + (py - 12) * s,
588
+ });
589
+ target.setStroke(style.handleStroke);
590
+ target.setFill(null);
591
+ target.setStrokeWidth(2 * s); // lucide strokeWidth 2
592
+ target.setLineCap("round");
593
+ target.setLineJoin("round");
594
+ target.setDashArray(null);
595
+ // Arc: centre (12,12), radius 9, from 0° (east tail) clockwise to (21,8)
596
+ // (≈ 336° swept) — a polyline is smooth enough at this size.
597
+ const END_DEG = 336;
598
+ const STEPS = 30;
599
+ target.beginPath();
600
+ for (let i = 0; i <= STEPS; i++) {
601
+ const a = ((END_DEG * i) / STEPS) * (Math.PI / 180);
602
+ const p = tx(12 + 9 * Math.cos(a), 12 + 9 * Math.sin(a));
603
+ if (i === 0)
604
+ target.moveTo(p.x, p.y);
605
+ else
606
+ target.lineTo(p.x, p.y);
607
+ }
608
+ target.stroke();
609
+ // Arrowhead at the arc's end (lucide `M21 3 v5 h-5`): a right-angle chevron.
610
+ const a1 = tx(21, 3);
611
+ const a2 = tx(21, 8);
612
+ const a3 = tx(16, 8);
613
+ target.beginPath();
614
+ target.moveTo(a1.x, a1.y);
615
+ target.lineTo(a2.x, a2.y);
616
+ target.lineTo(a3.x, a3.y);
617
+ target.stroke();
618
+ target.setLineCap("butt");
619
+ target.setLineJoin("miter");
620
+ };
621
+ /** Project the rotate grip to screen and draw the icon for AABB `b`. */
622
+ const drawRotateGripForBounds = (target, b, zoom, w2s, style) => {
623
+ const grip = rotateGripForBounds(b, zoom);
624
+ drawRotateIcon(target, matrix.applyToPoint(w2s, grip), style);
625
+ };
526
626
  const drawDrawingPreview = (target, b, style) => {
527
627
  target.setStroke(style.drawingStroke);
528
628
  target.setStrokeWidth(1);
@@ -560,8 +660,12 @@ const drawPortDot = (target, center, style, active, role = "link-start", activeR
560
660
  // When active (snapped), use the inverse fill of the resting state
561
661
  // to highlight the dot.
562
662
  const fill = active
563
- ? (isStart ? LINK_START_ANCHOR_STROKE : LINK_ATTACH_ANCHOR_STROKE)
564
- : (isStart ? LINK_START_ANCHOR_FILL : LINK_ATTACH_ANCHOR_FILL);
663
+ ? isStart
664
+ ? LINK_START_ANCHOR_STROKE
665
+ : LINK_ATTACH_ANCHOR_STROKE
666
+ : isStart
667
+ ? LINK_START_ANCHOR_FILL
668
+ : LINK_ATTACH_ANCHOR_FILL;
565
669
  const stroke = isStart ? LINK_START_ANCHOR_STROKE : LINK_ATTACH_ANCHOR_STROKE;
566
670
  target.setStroke(stroke);
567
671
  target.setStrokeWidth(ANCHOR_DOT_STROKE_WIDTH);