@oh-just-another/scene 0.61.0 → 0.63.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (231) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/a11y.d.ts +1 -1
  4. package/dist/a11y.d.ts.map +1 -1
  5. package/dist/{annotation-geometry.d.ts → annotations/annotation-geometry.d.ts} +1 -1
  6. package/dist/annotations/annotation-geometry.d.ts.map +1 -0
  7. package/dist/{annotation-geometry.js → annotations/annotation-geometry.js} +1 -1
  8. package/dist/annotations/annotation-geometry.js.map +1 -0
  9. package/dist/annotations/annotation.d.ts.map +1 -0
  10. package/dist/{annotation.js.map → annotations/annotation.js.map} +1 -1
  11. package/dist/constants.d.ts +34 -0
  12. package/dist/constants.d.ts.map +1 -1
  13. package/dist/constants.js +62 -0
  14. package/dist/constants.js.map +1 -1
  15. package/dist/edges/edge-curve.d.ts.map +1 -0
  16. package/dist/{edge-curve.js → edges/edge-curve.js} +1 -1
  17. package/dist/edges/edge-curve.js.map +1 -0
  18. package/dist/{edge-geometry.d.ts → edges/edge-geometry.d.ts} +1 -1
  19. package/dist/edges/edge-geometry.d.ts.map +1 -0
  20. package/dist/{edge-geometry.js → edges/edge-geometry.js} +5 -5
  21. package/dist/edges/edge-geometry.js.map +1 -0
  22. package/dist/edges/edge-label.d.ts.map +1 -0
  23. package/dist/{edge-label.js → edges/edge-label.js} +1 -1
  24. package/dist/edges/edge-label.js.map +1 -0
  25. package/dist/{edge.d.ts → edges/edge.d.ts} +1 -1
  26. package/dist/edges/edge.d.ts.map +1 -0
  27. package/dist/edges/edge.js.map +1 -0
  28. package/dist/{elbow-link.d.ts → edges/elbow-link.d.ts} +1 -1
  29. package/dist/edges/elbow-link.d.ts.map +1 -0
  30. package/dist/{elbow-link.js → edges/elbow-link.js} +3 -3
  31. package/dist/edges/elbow-link.js.map +1 -0
  32. package/dist/edges/elbow-router.d.ts.map +1 -0
  33. package/dist/{elbow-router.js → edges/elbow-router.js} +1 -1
  34. package/dist/edges/elbow-router.js.map +1 -0
  35. package/dist/{heading.d.ts → edges/heading.d.ts} +1 -1
  36. package/dist/edges/heading.d.ts.map +1 -0
  37. package/dist/{heading.js → edges/heading.js} +1 -1
  38. package/dist/edges/heading.js.map +1 -0
  39. package/dist/{anchors.d.ts → geometry/anchors.d.ts} +2 -2
  40. package/dist/geometry/anchors.d.ts.map +1 -0
  41. package/dist/{anchors.js → geometry/anchors.js} +2 -2
  42. package/dist/geometry/anchors.js.map +1 -0
  43. package/dist/{outline.d.ts → geometry/outline.d.ts} +1 -1
  44. package/dist/geometry/outline.d.ts.map +1 -0
  45. package/dist/{outline.js → geometry/outline.js} +4 -4
  46. package/dist/geometry/outline.js.map +1 -0
  47. package/dist/{snap.d.ts → geometry/snap.d.ts} +1 -1
  48. package/dist/geometry/snap.d.ts.map +1 -0
  49. package/dist/{snap.js → geometry/snap.js} +1 -1
  50. package/dist/geometry/snap.js.map +1 -0
  51. package/dist/index.d.ts +53 -51
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js +35 -33
  54. package/dist/index.js.map +1 -1
  55. package/dist/{layout-registry.d.ts → layout/layout-registry.d.ts} +2 -2
  56. package/dist/layout/layout-registry.d.ts.map +1 -0
  57. package/dist/layout/layout-registry.js.map +1 -0
  58. package/dist/{layout.d.ts → layout/layout.d.ts} +3 -3
  59. package/dist/layout/layout.d.ts.map +1 -0
  60. package/dist/{layout.js → layout/layout.js} +7 -7
  61. package/dist/layout/layout.js.map +1 -0
  62. package/dist/model/diff.d.ts.map +1 -0
  63. package/dist/model/diff.js.map +1 -0
  64. package/dist/{file.d.ts → model/file.d.ts} +9 -0
  65. package/dist/model/file.d.ts.map +1 -0
  66. package/dist/model/file.js +42 -0
  67. package/dist/model/file.js.map +1 -0
  68. package/dist/{hydrate.d.ts → model/hydrate.d.ts} +2 -0
  69. package/dist/model/hydrate.d.ts.map +1 -0
  70. package/dist/{hydrate.js → model/hydrate.js} +2 -0
  71. package/dist/model/hydrate.js.map +1 -0
  72. package/dist/model/layer.d.ts.map +1 -0
  73. package/dist/model/layer.js.map +1 -0
  74. package/dist/{operations.d.ts → model/operations.d.ts} +3 -3
  75. package/dist/model/operations.d.ts.map +1 -0
  76. package/dist/model/operations.js.map +1 -0
  77. package/dist/model/order.d.ts.map +1 -0
  78. package/dist/model/order.js.map +1 -0
  79. package/dist/{patch.d.ts → model/patch.d.ts} +3 -3
  80. package/dist/model/patch.d.ts.map +1 -0
  81. package/dist/model/patch.js.map +1 -0
  82. package/dist/{scene.d.ts → model/scene.d.ts} +3 -3
  83. package/dist/model/scene.d.ts.map +1 -0
  84. package/dist/model/scene.js.map +1 -0
  85. package/dist/{three-way-merge.d.ts → model/three-way-merge.d.ts} +1 -1
  86. package/dist/model/three-way-merge.d.ts.map +1 -0
  87. package/dist/model/three-way-merge.js.map +1 -0
  88. package/dist/{viewport.d.ts → model/viewport.d.ts} +18 -0
  89. package/dist/model/viewport.d.ts.map +1 -0
  90. package/dist/{viewport.js → model/viewport.js} +3 -1
  91. package/dist/model/viewport.js.map +1 -0
  92. package/dist/{queries.d.ts → query/queries.d.ts} +12 -7
  93. package/dist/query/queries.d.ts.map +1 -0
  94. package/dist/{queries.js → query/queries.js} +20 -10
  95. package/dist/query/queries.js.map +1 -0
  96. package/dist/query/spatial.d.ts.map +1 -0
  97. package/dist/query/spatial.js.map +1 -0
  98. package/dist/shapes/brush-outline.d.ts.map +1 -0
  99. package/dist/{brush-outline.js → shapes/brush-outline.js} +1 -1
  100. package/dist/shapes/brush-outline.js.map +1 -0
  101. package/dist/{container.d.ts → shapes/container.d.ts} +1 -1
  102. package/dist/shapes/container.d.ts.map +1 -0
  103. package/dist/{container.js → shapes/container.js} +1 -1
  104. package/dist/shapes/container.js.map +1 -0
  105. package/dist/shapes/ellipse.d.ts.map +1 -0
  106. package/dist/shapes/ellipse.js.map +1 -0
  107. package/dist/shapes/render-bounds.d.ts.map +1 -0
  108. package/dist/shapes/render-bounds.js.map +1 -0
  109. package/dist/shapes/shape-transform.d.ts.map +1 -0
  110. package/dist/shapes/shape-transform.js.map +1 -0
  111. package/dist/{shape.d.ts → shapes/shape.d.ts} +130 -3
  112. package/dist/shapes/shape.d.ts.map +1 -0
  113. package/dist/{shape.js → shapes/shape.js} +30 -5
  114. package/dist/shapes/shape.js.map +1 -0
  115. package/dist/text/paragraphs.d.ts +44 -0
  116. package/dist/text/paragraphs.d.ts.map +1 -0
  117. package/dist/text/paragraphs.js +133 -0
  118. package/dist/text/paragraphs.js.map +1 -0
  119. package/dist/text/placeholder.d.ts +9 -0
  120. package/dist/text/placeholder.d.ts.map +1 -0
  121. package/dist/text/placeholder.js +29 -0
  122. package/dist/text/placeholder.js.map +1 -0
  123. package/dist/{style.d.ts → text/style.d.ts} +6 -0
  124. package/dist/text/style.d.ts.map +1 -0
  125. package/dist/{style.js → text/style.js} +1 -1
  126. package/dist/text/style.js.map +1 -0
  127. package/dist/text/text-measure.d.ts.map +1 -0
  128. package/dist/text/text-measure.js.map +1 -0
  129. package/dist/{text-runs.d.ts → text/text-runs.d.ts} +1 -1
  130. package/dist/text/text-runs.d.ts.map +1 -0
  131. package/dist/text/text-runs.js.map +1 -0
  132. package/package.json +1 -1
  133. package/dist/anchors.d.ts.map +0 -1
  134. package/dist/anchors.js.map +0 -1
  135. package/dist/annotation-geometry.d.ts.map +0 -1
  136. package/dist/annotation-geometry.js.map +0 -1
  137. package/dist/annotation.d.ts.map +0 -1
  138. package/dist/brush-outline.d.ts.map +0 -1
  139. package/dist/brush-outline.js.map +0 -1
  140. package/dist/container.d.ts.map +0 -1
  141. package/dist/container.js.map +0 -1
  142. package/dist/diff.d.ts.map +0 -1
  143. package/dist/diff.js.map +0 -1
  144. package/dist/edge-curve.d.ts.map +0 -1
  145. package/dist/edge-curve.js.map +0 -1
  146. package/dist/edge-geometry.d.ts.map +0 -1
  147. package/dist/edge-geometry.js.map +0 -1
  148. package/dist/edge-label.d.ts.map +0 -1
  149. package/dist/edge-label.js.map +0 -1
  150. package/dist/edge.d.ts.map +0 -1
  151. package/dist/edge.js.map +0 -1
  152. package/dist/elbow-link.d.ts.map +0 -1
  153. package/dist/elbow-link.js.map +0 -1
  154. package/dist/elbow-router.d.ts.map +0 -1
  155. package/dist/elbow-router.js.map +0 -1
  156. package/dist/ellipse.d.ts.map +0 -1
  157. package/dist/ellipse.js.map +0 -1
  158. package/dist/file.d.ts.map +0 -1
  159. package/dist/file.js +0 -13
  160. package/dist/file.js.map +0 -1
  161. package/dist/heading.d.ts.map +0 -1
  162. package/dist/heading.js.map +0 -1
  163. package/dist/hydrate.d.ts.map +0 -1
  164. package/dist/hydrate.js.map +0 -1
  165. package/dist/layer.d.ts.map +0 -1
  166. package/dist/layer.js.map +0 -1
  167. package/dist/layout-registry.d.ts.map +0 -1
  168. package/dist/layout-registry.js.map +0 -1
  169. package/dist/layout.d.ts.map +0 -1
  170. package/dist/layout.js.map +0 -1
  171. package/dist/operations.d.ts.map +0 -1
  172. package/dist/operations.js.map +0 -1
  173. package/dist/order.d.ts.map +0 -1
  174. package/dist/order.js.map +0 -1
  175. package/dist/outline.d.ts.map +0 -1
  176. package/dist/outline.js.map +0 -1
  177. package/dist/patch.d.ts.map +0 -1
  178. package/dist/patch.js.map +0 -1
  179. package/dist/queries.d.ts.map +0 -1
  180. package/dist/queries.js.map +0 -1
  181. package/dist/render-bounds.d.ts.map +0 -1
  182. package/dist/render-bounds.js.map +0 -1
  183. package/dist/scene.d.ts.map +0 -1
  184. package/dist/scene.js.map +0 -1
  185. package/dist/shape-transform.d.ts.map +0 -1
  186. package/dist/shape-transform.js.map +0 -1
  187. package/dist/shape.d.ts.map +0 -1
  188. package/dist/shape.js.map +0 -1
  189. package/dist/snap.d.ts.map +0 -1
  190. package/dist/snap.js.map +0 -1
  191. package/dist/spatial.d.ts.map +0 -1
  192. package/dist/spatial.js.map +0 -1
  193. package/dist/style.d.ts.map +0 -1
  194. package/dist/style.js.map +0 -1
  195. package/dist/text-measure.d.ts.map +0 -1
  196. package/dist/text-measure.js.map +0 -1
  197. package/dist/text-runs.d.ts.map +0 -1
  198. package/dist/text-runs.js.map +0 -1
  199. package/dist/three-way-merge.d.ts.map +0 -1
  200. package/dist/three-way-merge.js.map +0 -1
  201. package/dist/viewport.d.ts.map +0 -1
  202. package/dist/viewport.js.map +0 -1
  203. /package/dist/{annotation.d.ts → annotations/annotation.d.ts} +0 -0
  204. /package/dist/{annotation.js → annotations/annotation.js} +0 -0
  205. /package/dist/{edge-curve.d.ts → edges/edge-curve.d.ts} +0 -0
  206. /package/dist/{edge-label.d.ts → edges/edge-label.d.ts} +0 -0
  207. /package/dist/{edge.js → edges/edge.js} +0 -0
  208. /package/dist/{elbow-router.d.ts → edges/elbow-router.d.ts} +0 -0
  209. /package/dist/{layout-registry.js → layout/layout-registry.js} +0 -0
  210. /package/dist/{diff.d.ts → model/diff.d.ts} +0 -0
  211. /package/dist/{diff.js → model/diff.js} +0 -0
  212. /package/dist/{layer.d.ts → model/layer.d.ts} +0 -0
  213. /package/dist/{layer.js → model/layer.js} +0 -0
  214. /package/dist/{operations.js → model/operations.js} +0 -0
  215. /package/dist/{order.d.ts → model/order.d.ts} +0 -0
  216. /package/dist/{order.js → model/order.js} +0 -0
  217. /package/dist/{patch.js → model/patch.js} +0 -0
  218. /package/dist/{scene.js → model/scene.js} +0 -0
  219. /package/dist/{three-way-merge.js → model/three-way-merge.js} +0 -0
  220. /package/dist/{spatial.d.ts → query/spatial.d.ts} +0 -0
  221. /package/dist/{spatial.js → query/spatial.js} +0 -0
  222. /package/dist/{brush-outline.d.ts → shapes/brush-outline.d.ts} +0 -0
  223. /package/dist/{ellipse.d.ts → shapes/ellipse.d.ts} +0 -0
  224. /package/dist/{ellipse.js → shapes/ellipse.js} +0 -0
  225. /package/dist/{render-bounds.d.ts → shapes/render-bounds.d.ts} +0 -0
  226. /package/dist/{render-bounds.js → shapes/render-bounds.js} +0 -0
  227. /package/dist/{shape-transform.d.ts → shapes/shape-transform.d.ts} +0 -0
  228. /package/dist/{shape-transform.js → shapes/shape-transform.js} +0 -0
  229. /package/dist/{text-measure.d.ts → text/text-measure.d.ts} +0 -0
  230. /package/dist/{text-measure.js → text/text-measure.js} +0 -0
  231. /package/dist/{text-runs.js → text/text-runs.js} +0 -0
package/dist/index.js CHANGED
@@ -1,50 +1,52 @@
1
- export { getCornerRadius, strokeOutsideExtent } from "./style.js";
2
- export { runsToText, normalizeRuns, sliceRuns, applyStyleToRange } from "./text-runs.js";
1
+ export { getCornerRadius, strokeOutsideExtent } from "./text/style.js";
2
+ export { pickTextPlaceholder } from "./text/placeholder.js";
3
+ export { runsToText, normalizeRuns, sliceRuns, applyStyleToRange } from "./text/text-runs.js";
4
+ export { paragraphCount, paragraphRangeForOffsets, paragraphAt, normalizeParagraphs, remapParagraphsForTextChange, listMarkers, } from "./text/paragraphs.js";
3
5
  export { ADAPTIVE_CORNER_RADIUS, PROPORTIONAL_CORNER_RADIUS } from "./constants.js";
4
- export { isAnchorRef, endpointElementId } from "./edge.js";
5
- export { getLinkEndpointWorld, getLinkPath, findLinkAt, getElbowSegmentHandles, getLinkCurvePoints, getLinkCurveSegments, linkLabelBounds, getLinkWaypointMidpoints, getSelfLoopSpec, straightElbowFallback, } from "./edge-geometry.js";
6
- export { estimateLinkLabelBox, linkLabelAnchor, linkLabelBoundsForPath, nudgeHandleOffLabel, pointAlongPath, projectPointToPathT, } from "./edge-label.js";
7
- export { catmullRomBeziers, cubicWithEndTangents, flattenSegments, } from "./edge-curve.js";
6
+ export { isAnchorRef, endpointElementId } from "./edges/edge.js";
7
+ export { getLinkEndpointWorld, getLinkPath, findLinkAt, getElbowSegmentHandles, getLinkCurvePoints, getLinkCurveSegments, linkLabelBounds, getLinkWaypointMidpoints, getSelfLoopSpec, straightElbowFallback, } from "./edges/edge-geometry.js";
8
+ export { estimateLinkLabelBox, linkLabelAnchor, linkLabelBoundsForPath, nudgeHandleOffLabel, pointAlongPath, projectPointToPathT, } from "./edges/edge-label.js";
9
+ export { catmullRomBeziers, cubicWithEndTangents, flattenSegments, } from "./edges/edge-curve.js";
8
10
  // Element helpers + bounder registry
9
- export { isRectangle, isEllipse, isPolygon, isPath, isText, isImage, isTemplate, isGroup, isFrame, isBlockArrow, isBrush, brushBodyColor, registerBounder, getBounder, getElementLocalBounds, getElementWorldBounds, } from "./shape.js";
10
- export { brushOutline } from "./brush-outline.js";
11
- export { registerRenderOverflow, getElementRenderBounds, } from "./render-bounds.js";
12
- export { setTextMeasurer, getTextMeasurer, } from "./text-measure.js";
11
+ export { isRectangle, isEllipse, isPolygon, isPath, isText, isImage, isTemplate, isGroup, isFrame, isBlockArrow, isBrush, canCarryLabel, isSticky, isEmoji, brushBodyColor, registerBounder, getBounder, getElementLocalBounds, getElementWorldBounds, } from "./shapes/shape.js";
12
+ export { brushOutline } from "./shapes/brush-outline.js";
13
+ export { registerRenderOverflow, getElementRenderBounds, } from "./shapes/render-bounds.js";
14
+ export { setTextMeasurer, getTextMeasurer, } from "./text/text-measure.js";
13
15
  // Anchor helpers
14
- export { STANDARD_ANCHORS, STANDARD_ANCHOR_RATIOS, CARDINAL_ANCHORS, getNamedAnchorLocal, getAnchorLocal, getAnchorWorld, getAnchorOutwardNormal, listAnchorsLocal, geometryDefaultAnchorsLocal, findNearestAnchor, snapExcludedAnchors, } from "./anchors.js";
15
- export { SnapEngine, gridSnapper, anchorSnapper, outlineSnapper } from "./snap.js";
16
- export { registerOutlineSampler, getOutlineSampler, getOutlinePoint, findNearestOutlinePoint, } from "./outline.js";
16
+ export { STANDARD_ANCHORS, STANDARD_ANCHOR_RATIOS, CARDINAL_ANCHORS, getNamedAnchorLocal, getAnchorLocal, getAnchorWorld, getAnchorOutwardNormal, listAnchorsLocal, geometryDefaultAnchorsLocal, findNearestAnchor, snapExcludedAnchors, } from "./geometry/anchors.js";
17
+ export { SnapEngine, gridSnapper, anchorSnapper, outlineSnapper } from "./geometry/snap.js";
18
+ export { registerOutlineSampler, getOutlineSampler, getOutlinePoint, findNearestOutlinePoint, } from "./geometry/outline.js";
17
19
  // Viewport helpers
18
- export { DEFAULT_VIEWPORT, getWorldToScreen, getScreenToWorld, panBy, zoomAt, resize, resolveSnapSpacing, isSnapToGridEnabled, } from "./viewport.js";
20
+ export { DEFAULT_VIEWPORT, canvasBackgroundOf, getWorldToScreen, getScreenToWorld, panBy, zoomAt, resize, resolveSnapSpacing, isSnapToGridEnabled, } from "./model/viewport.js";
19
21
  // Scene constructor + apply + ordering helpers
20
- export { DEFAULT_LAYER_ID, DEFAULT_SCENE, emptyScene, apply, orderForTop, orderForBottom, orderBetween, orderBetweenMany, addBinaryFile, removeBinaryFile, getBinaryFile, } from "./scene.js";
22
+ export { DEFAULT_LAYER_ID, DEFAULT_SCENE, emptyScene, apply, orderForTop, orderForBottom, orderBetween, orderBetweenMany, addBinaryFile, removeBinaryFile, getBinaryFile, } from "./model/scene.js";
21
23
  // Z-order comparators.
22
- export { byOrderAsc, byOrderDesc } from "./order.js";
24
+ export { byOrderAsc, byOrderDesc } from "./model/order.js";
23
25
  // Scene defaults: hydration / dehydration + per-key persistence scope
24
- export { hydrateScene, dehydrateScene, VIEWPORT_SCOPE } from "./hydrate.js";
25
- export { createBinaryFile } from "./file.js";
26
+ export { hydrateScene, dehydrateScene, VIEWPORT_SCOPE } from "./model/hydrate.js";
27
+ export { createBinaryFile, sniffBinaryFileMime } from "./model/file.js";
26
28
  // Patch utilities
27
- export { invert, batch, isNoop } from "./patch.js";
29
+ export { invert, batch, isNoop } from "./model/patch.js";
28
30
  // Operations (return { scene, patch })
29
- export { addElement, removeElement, updateElement, moveElement, addLink, removeLink, updateLink, addLayer, removeLayer, updateLayer, setViewport, addAnnotation, removeAnnotation, updateAnnotation, } from "./operations.js";
30
- export { getAnnotationWorldPosition } from "./annotation-geometry.js";
31
+ export { addElement, removeElement, updateElement, moveElement, addLink, removeLink, updateLink, addLayer, removeLayer, updateLayer, setViewport, addAnnotation, removeAnnotation, updateAnnotation, } from "./model/operations.js";
32
+ export { getAnnotationWorldPosition } from "./annotations/annotation-geometry.js";
31
33
  // Queries
32
- export { getElement, getLink, getLayer, getLayersInOrder, getElementsInLayer, getLinksInLayer, getElementsInBounds, getElementsCoveredByBounds, getElementAt, buildSpatialIndex, queryByIndex, getElementAtIndexed, getChildrenOf, getElementOutline, registerElementOutline, getRootSelf, getDescendantsOf, isElementLocked, isElementHidden, } from "./queries.js";
34
+ export { getElement, getLink, getLayer, getLayersInOrder, getElementsInLayer, getLinksInLayer, getElementsInBounds, getElementsCoveredByBounds, getElementAt, buildSpatialIndex, queryByIndex, getElementAtIndexed, getChildrenOf, getElementOutline, registerElementOutline, getRootSelf, getDescendantsOf, isElementLocked, isElementHidden, } from "./query/queries.js";
33
35
  // Spatial index (the class itself, for advanced uses)
34
- export { SpatialGrid } from "./spatial.js";
36
+ export { SpatialGrid } from "./query/spatial.js";
35
37
  export { getElementAccessibleName, registerAccessibleName } from "./a11y.js";
36
- export { gridLayout, stackLayout, wrapLayout, measureWrap, treeLayout, getAutoLayoutSpec, runAutoLayout, } from "./layout.js";
37
- export { registerLayoutKind, unregisterLayoutKind, getLayoutKind, listLayoutKinds, } from "./layout-registry.js";
38
+ export { gridLayout, stackLayout, wrapLayout, measureWrap, treeLayout, getAutoLayoutSpec, runAutoLayout, } from "./layout/layout.js";
39
+ export { registerLayoutKind, unregisterLayoutKind, getLayoutKind, listLayoutKinds, } from "./layout/layout-registry.js";
38
40
  // Tunable thresholds.
39
- export { SNAP_PROBE_CULL_RADIUS, DEFAULT_GRID_SPACING, ELBOW_OBSTACLE_MARGIN, ELBOW_OBSTACLE_INTERIOR_EPSILON, FRAME_HEADER_HEIGHT, FRAME_HEADER_PADDING_X, FRAME_HEADER_FONT_SIZE, FALLBACK_SCENE_WIDTH, FALLBACK_SCENE_HEIGHT, LINK_LABEL_DEFAULT_POSITION, LINK_LABEL_DEFAULT_FONT_SIZE, LINK_LABEL_MAX_WIDTH, LINK_LABEL_PAD_X, LINK_LABEL_PAD_Y, LINK_LABEL_LINE_HEIGHT, LINK_LABEL_END_CLEARANCE, LINK_LABEL_CHAR_WIDTH_FACTOR, } from "./constants.js";
41
+ export { SNAP_PROBE_CULL_RADIUS, DEFAULT_GRID_SPACING, ELBOW_OBSTACLE_MARGIN, ELBOW_OBSTACLE_INTERIOR_EPSILON, FRAME_HEADER_HEIGHT, FRAME_HEADER_PADDING_X, FRAME_HEADER_FONT_SIZE, FALLBACK_SCENE_WIDTH, FALLBACK_SCENE_HEIGHT, LINK_LABEL_DEFAULT_POSITION, LINK_LABEL_DEFAULT_FONT_SIZE, LINK_LABEL_MAX_WIDTH, LINK_LABEL_PAD_X, LINK_LABEL_PAD_Y, LINK_LABEL_LINE_HEIGHT, LINK_LABEL_END_CLEARANCE, LINK_LABEL_CHAR_WIDTH_FACTOR, IMAGE_MASK_POLYGON_PRESETS, DEFAULT_CANVAS_BACKGROUND, TEXT_PLACEHOLDERS, } from "./constants.js";
40
42
  // Elbow router — A*-based obstacle-avoiding 90° routing.
41
- export { elbowRoute } from "./elbow-router.js";
42
- export { routeElbowLink, routeElbowPreview } from "./elbow-link.js";
43
- export { HEADING_RIGHT, HEADING_DOWN, HEADING_LEFT, HEADING_UP, headingIsHorizontal, headingsEqual, flipHeading, vectorToHeading, headingForPoint, headingForPointFromElement, headingForEdgePoint, } from "./heading.js";
44
- export { diffSceneElements } from "./diff.js";
45
- export { mergeScenesThreeWay, applyConflictResolutions } from "./three-way-merge.js";
43
+ export { elbowRoute } from "./edges/elbow-router.js";
44
+ export { routeElbowLink, routeElbowPreview } from "./edges/elbow-link.js";
45
+ export { HEADING_RIGHT, HEADING_DOWN, HEADING_LEFT, HEADING_UP, headingIsHorizontal, headingsEqual, flipHeading, vectorToHeading, headingForPoint, headingForPointFromElement, headingForEdgePoint, } from "./edges/heading.js";
46
+ export { diffSceneElements } from "./model/diff.js";
47
+ export { mergeScenesThreeWay, applyConflictResolutions } from "./model/three-way-merge.js";
46
48
  // Shape local↔world transform helpers.
47
- export { localToWorld, worldToLocal } from "./shape-transform.js";
49
+ export { localToWorld, worldToLocal } from "./shapes/shape-transform.js";
48
50
  // Container / drop-zone protocol.
49
- export { isContainer, getContainerSpec, getDropZoneWorld, findContainerAt, expandDropZoneToFit, containerSizeForZone, registerContainerResolver, getDropZonesWorld, registerContainerZonesResolver, } from "./container.js";
51
+ export { isContainer, getContainerSpec, getDropZoneWorld, findContainerAt, expandDropZoneToFit, containerSizeForZone, registerContainerResolver, getDropZonesWorld, registerContainerZonesResolver, } from "./shapes/container.js";
50
52
  //# 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":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC9F,OAAO,EACL,cAAc,EACd,wBAAwB,EACxB,WAAW,EACX,mBAAmB,EACnB,4BAA4B,EAC5B,WAAW,GACZ,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAqCpF,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EACL,oBAAoB,EACpB,WAAW,EACX,UAAU,EACV,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,wBAAwB,EACxB,eAAe,EACf,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,sBAAsB,EACtB,mBAAmB,EACnB,cAAc,EACd,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,GAEhB,MAAM,uBAAuB,CAAC;AAO/B,qCAAqC;AACrC,OAAO,EACL,WAAW,EACX,SAAS,EACT,SAAS,EACT,MAAM,EACN,MAAM,EACN,OAAO,EACP,UAAU,EACV,OAAO,EACP,OAAO,EACP,YAAY,EACZ,OAAO,EACP,aAAa,EACb,QAAQ,EACR,OAAO,EACP,cAAc,EACd,eAAe,EACf,UAAU,EACV,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EACL,sBAAsB,EACtB,sBAAsB,GAEvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,eAAe,EACf,eAAe,GAGhB,MAAM,wBAAwB,CAAC;AAEhC,iBAAiB;AACjB,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,sBAAsB,EACtB,gBAAgB,EAChB,2BAA2B,EAC3B,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAI/B,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAI5F,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,EACf,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAE/B,mBAAmB;AACnB,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,EACL,MAAM,EACN,MAAM,EACN,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAE7B,+CAA+C;AAC/C,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,UAAU,EACV,KAAK,EACL,WAAW,EACX,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,aAAa,GACd,MAAM,kBAAkB,CAAC;AAG1B,uBAAuB;AACvB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE3D,sEAAsE;AACtE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAKlF,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAExE,kBAAkB;AAClB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEzD,uCAAuC;AACvC,OAAO,EACL,UAAU,EACV,aAAa,EACb,aAAa,EACb,WAAW,EACX,OAAO,EACP,UAAU,EACV,UAAU,EACV,QAAQ,EACR,WAAW,EACX,WAAW,EACX,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAI/B,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAElF,UAAU;AACV,OAAO,EACL,UAAU,EACV,OAAO,EACP,QAAQ,EACR,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,0BAA0B,EAC1B,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACb,iBAAiB,EACjB,sBAAsB,EAEtB,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAE5B,sDAAsD;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAIjD,OAAO,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAY7E,OAAO,EACL,UAAU,EACV,WAAW,EACX,UAAU,EACV,WAAW,EACX,UAAU,EACV,iBAAiB,EACjB,aAAa,GACd,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,eAAe,GAChB,MAAM,6BAA6B,CAAC;AAErC,sBAAsB;AACtB,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,+BAA+B,EAC/B,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,2BAA2B,EAC3B,4BAA4B,EAC5B,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,EACtB,wBAAwB,EACxB,4BAA4B,EAC5B,0BAA0B,EAC1B,yBAAyB,EACzB,iBAAiB,GAElB,MAAM,gBAAgB,CAAC;AAExB,yDAAyD;AACzD,OAAO,EAAE,UAAU,EAA0B,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAEL,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,eAAe,EACf,eAAe,EACf,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAK5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AASpD,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAE3F,uCAAuC;AACvC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEzE,kCAAkC;AAClC,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,yBAAyB,EACzB,iBAAiB,EACjB,8BAA8B,GAI/B,MAAM,uBAAuB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import type { ElementId, Vec2 } from "@oh-just-another/types";
2
- import type { Patch } from "./patch.js";
3
- import type { Scene } from "./scene.js";
2
+ import type { Patch } from "../model/patch.js";
3
+ import type { Scene } from "../model/scene.js";
4
4
  /**
5
5
  * Pluggable layout registry.
6
6
  *
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout-registry.d.ts","sourceRoot":"","sources":["../../src/layout/layout-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,MAAM,WAAW,eAAe,CAAC,IAAI,GAAG,OAAO;IAC7C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC;IACtC,GAAG,CACD,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,SAAS,SAAS,EAAE,EAC9B,MAAM,EAAE,IAAI,EACZ,IAAI,EAAE,IAAI,GACT,KAAK,GAAG,IAAI,CAAC;CACjB;AAID,eAAO,MAAM,kBAAkB,GAAI,CAAC,EAAE,OAAO,eAAe,CAAC,CAAC,CAAC,KAAG,IAEjE,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,MAAM,MAAM,KAAG,eAAe,GAAG,SAIrE,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,KAAG,eAAe,GAAG,SAA+B,CAAC;AAE/F,sEAAsE;AACtE,eAAO,MAAM,eAAe,QAAO,SAAS,MAAM,EAA0B,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout-registry.js","sourceRoot":"","sources":["../../src/layout/layout-registry.ts"],"names":[],"mappings":"AAsCA,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA2B,CAAC;AAEpD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAI,KAAyB,EAAQ,EAAE;IACvE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAClC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,IAAY,EAA+B,EAAE;IAChF,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtB,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAY,EAA+B,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAE/F,sEAAsE;AACtE,MAAM,CAAC,MAAM,eAAe,GAAG,GAAsB,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { type ElementId, type Vec2 } from "@oh-just-another/types";
2
- import type { Scene } from "./scene.js";
3
- import { type Element } from "./shape.js";
4
- import { type Patch } from "./patch.js";
2
+ import type { Scene } from "../model/scene.js";
3
+ import { type Element } from "../shapes/shape.js";
4
+ import { type Patch } from "../model/patch.js";
5
5
  /**
6
6
  * Pure layout function. Computes new positions for a subset of shapes
7
7
  * and returns a single batched patch (or null when nothing changed).
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/layout/layout.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  import { req } from "@oh-just-another/types";
2
- import { getDropZoneWorld } from "./container.js";
3
- import { getElementLocalBounds } from "./shape.js";
4
- import { getElement } from "./queries.js";
5
- import { updateElement } from "./operations.js";
6
- import { batch } from "./patch.js";
2
+ import { getDropZoneWorld } from "../shapes/container.js";
3
+ import { getElementLocalBounds } from "../shapes/shape.js";
4
+ import { getElement } from "../query/queries.js";
5
+ import { updateElement } from "../model/operations.js";
6
+ import { batch } from "../model/patch.js";
7
7
  import { getLayoutKind } from "./layout-registry.js";
8
- import { byOrderAsc } from "./order.js";
9
- import { DEFAULT_LAYOUT_GAP, DEFAULT_TREE_NODE_SEP, DEFAULT_TREE_RANK_SEP } from "./constants.js";
8
+ import { byOrderAsc } from "../model/order.js";
9
+ import { DEFAULT_LAYOUT_GAP, DEFAULT_TREE_NODE_SEP, DEFAULT_TREE_RANK_SEP } from "../constants.js";
10
10
  /**
11
11
  * Visual width / height of a shape in its OWN frame (no `position`,
12
12
  * yes `scale`). Uses the registered bounder so polygon / path /
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.js","sourceRoot":"","sources":["../../src/layout/layout.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../src/model/diff.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,SAAS,SAAS,EAAE,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,SAAS,SAAS,EAAE,CAAC;CACzC;AAED,eAAO,MAAM,iBAAiB,GAAI,MAAM,KAAK,EAAE,MAAM,KAAK,KAAG,gBAa5D,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff.js","sourceRoot":"","sources":["../../src/model/diff.ts"],"names":[],"mappings":"AAsBA,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,IAAW,EAAE,IAAW,EAAoB,EAAE;IAC9E,MAAM,KAAK,GAAgB,EAAE,CAAC;IAC9B,MAAM,OAAO,GAAgB,EAAE,CAAC;IAChC,MAAM,QAAQ,GAAgB,EAAE,CAAC;IACjC,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrC,IAAI,MAAM,KAAK,SAAS;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aACpC,IAAI,MAAM,KAAK,KAAK;YAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/C,CAAC;IACD,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AACtC,CAAC,CAAC"}
@@ -38,4 +38,13 @@ export declare const createBinaryFile: (id: FileId, data: ArrayBuffer, options?:
38
38
  readonly name?: string;
39
39
  readonly createdAt?: number;
40
40
  }) => BinaryFile;
41
+ /**
42
+ * Content-sniff a media MIME from the leading magic bytes, or `null`
43
+ * when unrecognised. Used as a fallback when a stored `BinaryFile`
44
+ * carries a generic mime (`application/octet-stream` — e.g. a file
45
+ * dropped with an empty `File.type` by the browser): rehydration
46
+ * routes image-vs-video decoding by mime, so a generic one would send
47
+ * an mp4 into the image decoder and the shape would reload blank.
48
+ */
49
+ export declare const sniffBinaryFileMime: (data: ArrayBuffer) => string | null;
41
50
  //# sourceMappingURL=file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../src/model/file.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAErD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAC3B,IAAI,MAAM,EACV,MAAM,WAAW,EACjB,UAAS;IAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,KAC5F,UAMD,CAAC;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,GAAI,MAAM,WAAW,KAAG,MAAM,GAAG,IAchE,CAAC"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Convenience constructor — assigns the current timestamp + a
3
+ * sensible default `mime` of `application/octet-stream`. Hosts
4
+ * normally pass an explicit `mime` from the source `Blob.type`.
5
+ */
6
+ export const createBinaryFile = (id, data, options = {}) => ({
7
+ id,
8
+ data,
9
+ mime: options.mime ?? "application/octet-stream",
10
+ createdAt: options.createdAt ?? Date.now(),
11
+ ...(options.name !== undefined ? { name: options.name } : {}),
12
+ });
13
+ /**
14
+ * Content-sniff a media MIME from the leading magic bytes, or `null`
15
+ * when unrecognised. Used as a fallback when a stored `BinaryFile`
16
+ * carries a generic mime (`application/octet-stream` — e.g. a file
17
+ * dropped with an empty `File.type` by the browser): rehydration
18
+ * routes image-vs-video decoding by mime, so a generic one would send
19
+ * an mp4 into the image decoder and the shape would reload blank.
20
+ */
21
+ export const sniffBinaryFileMime = (data) => {
22
+ const b = new Uint8Array(data, 0, Math.min(16, data.byteLength));
23
+ const ascii = (from, to) => String.fromCharCode(...b.subarray(from, Math.min(to, b.length)));
24
+ if (b.length >= 12 && ascii(4, 8) === "ftyp")
25
+ return "video/mp4"; // ISO-BMFF (mp4 / mov)
26
+ if (b.length >= 4 && b[0] === 0x1a && b[1] === 0x45 && b[2] === 0xdf && b[3] === 0xa3)
27
+ return "video/webm"; // EBML (webm / mkv)
28
+ if (b.length >= 4 && ascii(0, 4) === "OggS")
29
+ return "video/ogg";
30
+ if (b.length >= 8 && b[0] === 0x89 && ascii(1, 4) === "PNG")
31
+ return "image/png";
32
+ if (b.length >= 3 && b[0] === 0xff && b[1] === 0xd8 && b[2] === 0xff)
33
+ return "image/jpeg";
34
+ if (b.length >= 4 && ascii(0, 4) === "GIF8")
35
+ return "image/gif";
36
+ if (b.length >= 12 && ascii(0, 4) === "RIFF" && ascii(8, 12) === "WEBP")
37
+ return "image/webp";
38
+ if (b.length >= 4 && (ascii(0, 4) === "<svg" || ascii(0, 2) === "<?"))
39
+ return "image/svg+xml";
40
+ return null;
41
+ };
42
+ //# sourceMappingURL=file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file.js","sourceRoot":"","sources":["../../src/model/file.ts"],"names":[],"mappings":"AAgCA;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,EAAU,EACV,IAAiB,EACjB,UAA2F,EAAE,EACjF,EAAE,CAAC,CAAC;IAChB,EAAE;IACF,IAAI;IACJ,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,0BAA0B;IAChD,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE;IAC1C,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;CAC9D,CAAC,CAAC;AAEH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAAiB,EAAiB,EAAE;IACtE,MAAM,CAAC,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACjE,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,EAAU,EAAU,EAAE,CACjD,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACnE,IAAI,CAAC,CAAC,MAAM,IAAI,EAAE,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM;QAAE,OAAO,WAAW,CAAC,CAAC,uBAAuB;IACzF,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI;QACnF,OAAO,YAAY,CAAC,CAAC,oBAAoB;IAC3C,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM;QAAE,OAAO,WAAW,CAAC;IAChE,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK;QAAE,OAAO,WAAW,CAAC;IAChF,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI;QAAE,OAAO,YAAY,CAAC;IAC1F,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM;QAAE,OAAO,WAAW,CAAC;IAChE,IAAI,CAAC,CAAC,MAAM,IAAI,EAAE,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,IAAI,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,MAAM;QAAE,OAAO,YAAY,CAAC;IAC7F,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;QAAE,OAAO,eAAe,CAAC;IAC9F,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
@@ -16,6 +16,8 @@ export declare const VIEWPORT_SCOPE: {
16
16
  readonly gridEnabled: "export";
17
17
  readonly gridStyle: "export";
18
18
  readonly snapToGrid: "export";
19
+ readonly startView: "export";
20
+ readonly background: "export";
19
21
  };
20
22
  /** Host-supplied setting overrides accepted by hydration. */
21
23
  export interface SceneSettings {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hydrate.d.ts","sourceRoot":"","sources":["../../src/model/hydrate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAC;AAE9D,8EAA8E;AAC9E,eAAO,MAAM,cAAc;;;;;;;;;;CAU8B,CAAC;AAM1D,6DAA6D;AAC7D,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;CACvC;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,qEAAqE;IACrE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAChC,qEAAqE;IACrE,QAAQ,CAAC,YAAY,CAAC,EAAE,aAAa,CAAC;CACvC;AAsBD;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,QAAO,YAAiB,KAAG,KAUvD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,OAAO,KAAK,KAAG,KAM7C,CAAC"}
@@ -8,6 +8,8 @@ export const VIEWPORT_SCOPE = {
8
8
  gridEnabled: "export",
9
9
  gridStyle: "export",
10
10
  snapToGrid: "export",
11
+ startView: "export",
12
+ background: "export",
11
13
  };
12
14
  const VIEWPORT_KEYS = Object.keys(VIEWPORT_SCOPE);
13
15
  const EPHEMERAL_VIEWPORT_KEYS = VIEWPORT_KEYS.filter((key) => VIEWPORT_SCOPE[key] === "ephemeral");
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hydrate.js","sourceRoot":"","sources":["../../src/model/hydrate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAc,MAAM,YAAY,CAAC;AAWvD,8EAA8E;AAC9E,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,GAAG,EAAE,SAAS;IACd,IAAI,EAAE,SAAS;IACf,QAAQ,EAAE,SAAS;IACnB,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,QAAQ;IACrB,SAAS,EAAE,QAAQ;IACnB,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE,QAAQ;IACnB,UAAU,EAAE,QAAQ;CACmC,CAAC;AAE1D,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAuB,CAAC;AAExE,MAAM,uBAAuB,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,WAAW,CAAC,CAAC;AAkBnG;;;GAGG;AACH,MAAM,aAAa,GAAG,CACpB,IAAc,EACd,GAAG,SAAqD,EAC9C,EAAE;IACZ,IAAI,GAAG,GAAG,IAAI,CAAC;IACf,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,IAAI,CAAC,QAAQ;YAAE,SAAS;QACxB,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;YAChC,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;gBAChC,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACzC,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,QAAsB,EAAE,EAAS,EAAE;IAC9D,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC;IACtC,OAAO;QACL,QAAQ,EAAE,IAAI,GAAG,CAAC,KAAK,EAAE,QAAQ,IAAI,aAAa,CAAC,QAAQ,CAAC;QAC5D,KAAK,EAAE,IAAI,GAAG,CAAC,KAAK,EAAE,KAAK,IAAI,aAAa,CAAC,KAAK,CAAC;QACnD,MAAM,EAAE,IAAI,GAAG,CAAC,KAAK,EAAE,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC;QACtD,WAAW,EAAE,IAAI,GAAG,CAAC,KAAK,EAAE,WAAW,IAAI,aAAa,CAAC,WAAW,CAAC;QACrE,KAAK,EAAE,IAAI,GAAG,CAAC,KAAK,EAAE,KAAK,IAAI,aAAa,CAAC,KAAK,CAAC;QACnD,QAAQ,EAAE,aAAa,CAAC,aAAa,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC;KACzF,CAAC;AACJ,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAY,EAAS,EAAE;IACpD,IAAI,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;IAC9B,KAAK,MAAM,GAAG,IAAI,uBAAuB,EAAE,CAAC;QAC1C,QAAQ,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;IACjE,CAAC;IACD,OAAO,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,CAAC;AAChC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layer.d.ts","sourceRoot":"","sources":["../../src/model/layer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD;;;;;;;GAOG;AACH,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;CACjC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layer.js","sourceRoot":"","sources":["../../src/model/layer.ts"],"names":[],"mappings":""}
@@ -1,10 +1,10 @@
1
1
  import type { AnnotationId, LinkId, LayerId, ElementId, Vec2 } from "@oh-just-another/types";
2
- import type { Annotation } from "./annotation.js";
3
- import type { Link } from "./edge.js";
2
+ import type { Annotation } from "../annotations/annotation.js";
3
+ import type { Link } from "../edges/edge.js";
4
4
  import type { Layer } from "./layer.js";
5
5
  import type { Patch } from "./patch.js";
6
6
  import { type Scene } from "./scene.js";
7
- import type { Element } from "./shape.js";
7
+ import type { Element } from "../shapes/shape.js";
8
8
  import type { Viewport } from "./viewport.js";
9
9
  /**
10
10
  * Every mutating operation returns the pair `{ scene, patch }`. The patch is
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../../src/model/operations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC7F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAS,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;CACvB;AAID,eAAO,MAAM,UAAU,GAAI,OAAO,KAAK,EAAE,OAAO,OAAO,KAAG,eAMzD,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,OAAO,KAAK,EAAE,IAAI,SAAS,KAAG,eAK3D,CAAC;AAEF,eAAO,MAAM,aAAa,GACxB,OAAO,KAAK,EACZ,IAAI,SAAS,EACb,QAAQ,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,KAClC,eAMF,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,OAAO,KAAK,EAAE,IAAI,SAAS,EAAE,IAAI,IAAI,KAAG,eACT,CAAC;AAI5D,eAAO,MAAM,OAAO,GAAI,OAAO,KAAK,EAAE,MAAM,IAAI,KAAG,eAMlD,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,OAAO,KAAK,EAAE,IAAI,MAAM,KAAG,eAKrD,CAAC;AAEF,eAAO,MAAM,UAAU,GACrB,OAAO,KAAK,EACZ,IAAI,MAAM,EACV,QAAQ,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,KAC3B,eAMF,CAAC;AAIF,eAAO,MAAM,QAAQ,GAAI,OAAO,KAAK,EAAE,OAAO,KAAK,KAAG,eAMrD,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,OAAO,KAAK,EAAE,IAAI,OAAO,KAAG,eAKvD,CAAC;AAEF,eAAO,MAAM,WAAW,GACtB,OAAO,KAAK,EACZ,IAAI,OAAO,EACX,QAAQ,CAAC,KAAK,EAAE,KAAK,KAAK,KAAK,KAC9B,eAMF,CAAC;AAIF,eAAO,MAAM,aAAa,GAAI,OAAO,KAAK,EAAE,YAAY,UAAU,KAAG,eAWpE,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,OAAO,KAAK,EAAE,IAAI,YAAY,KAAG,eAKjE,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,OAAO,KAAK,EACZ,IAAI,YAAY,EAChB,QAAQ,CAAC,UAAU,EAAE,UAAU,KAAK,UAAU,KAC7C,eAMF,CAAC;AAIF,eAAO,MAAM,WAAW,GAAI,OAAO,KAAK,EAAE,UAAU,QAAQ,KAAG,eAG9D,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations.js","sourceRoot":"","sources":["../../src/model/operations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order.d.ts","sourceRoot":"","sources":["../../src/model/order.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD,wEAAwE;AACxE,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS;IAAE,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAA;CAAE,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,KAAG,MACnC,CAAC;AAErD,iEAAiE;AACjE,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS;IAAE,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAA;CAAE,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,KAAG,MACtE,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order.js","sourceRoot":"","sources":["../../src/model/order.ts"],"names":[],"mappings":"AAEA,wEAAwE;AACxE,MAAM,CAAC,MAAM,UAAU,GAAG,CAAgD,CAAI,EAAE,CAAI,EAAU,EAAE,CAC9F,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAErD,iEAAiE;AACjE,MAAM,CAAC,MAAM,WAAW,GAAG,CAAgD,CAAI,EAAE,CAAI,EAAU,EAAE,CAC/F,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC"}
@@ -1,9 +1,9 @@
1
1
  import type { AnnotationId, LinkId, FileId, LayerId, ElementId } from "@oh-just-another/types";
2
- import type { Annotation } from "./annotation.js";
3
- import type { Link } from "./edge.js";
2
+ import type { Annotation } from "../annotations/annotation.js";
3
+ import type { Link } from "../edges/edge.js";
4
4
  import type { BinaryFile } from "./file.js";
5
5
  import type { Layer } from "./layer.js";
6
- import type { Element } from "./shape.js";
6
+ import type { Element } from "../shapes/shape.js";
7
7
  import type { Viewport } from "./viewport.js";
8
8
  /**
9
9
  * Unified patch model: each entity update carries `before` and `after`.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patch.d.ts","sourceRoot":"","sources":["../../src/model/patch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC/F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C;;;;;;;;;GASG;AACH,MAAM,MAAM,KAAK,GACb;IACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;CAChC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;CAC7B,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CAC9B,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;CACnC,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAA;CAAE,GAClF;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;CACnC,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,KAAK,EAAE,CAAA;CAAE,CAAC;AAEnE,6CAA6C;AAC7C,eAAO,MAAM,MAAM,GAAI,OAAO,KAAK,KAAG,KAkBrC,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,KAAK,GAAI,SAAS,SAAS,KAAK,EAAE,KAAG,KAOjD,CAAC;AAEF,+DAA+D;AAC/D,eAAO,MAAM,MAAM,GAAI,OAAO,KAAK,KAAG,OAarC,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patch.js","sourceRoot":"","sources":["../../src/model/patch.ts"],"names":[],"mappings":"AAoDA,6CAA6C;AAC7C,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,KAAY,EAAS,EAAE;IAC5C,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,SAAS;YACZ,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;QACrF,KAAK,MAAM;YACT,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;QAClF,KAAK,OAAO;YACV,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;QACnF,KAAK,YAAY;YACf,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;QACxF,KAAK,UAAU;YACb,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;QACxE,KAAK,MAAM;YACT,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;QAClF,KAAK,OAAO;YACV,uDAAuD;YACvD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;IAC3E,CAAC;AACH,CAAC,CAAC;AAEF,0EAA0E;AAC1E,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,OAAyB,EAAS,EAAE;IACxD,MAAM,IAAI,GAAY,EAAE,CAAC;IACzB,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO;YAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;;YAC3C,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC1C,CAAC,CAAC;AAEF,+DAA+D;AAC/D,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,KAAY,EAAW,EAAE;IAC9C,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,SAAS,CAAC;QACf,KAAK,MAAM,CAAC;QACZ,KAAK,OAAO,CAAC;QACb,KAAK,YAAY,CAAC;QAClB,KAAK,MAAM;YACT,OAAO,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,KAAK,CAAC;QACtC,KAAK,UAAU;YACb,OAAO,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,KAAK,CAAC;QACtC,KAAK,OAAO;YACV,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACrE,CAAC;AACH,CAAC,CAAC"}
@@ -1,11 +1,11 @@
1
1
  import { type AnnotationId, type LinkId, type FileId, type LayerId, type ElementId } from "@oh-just-another/types";
2
2
  import { type FractionalIndex } from "fractional-keys";
3
- import type { Annotation } from "./annotation.js";
4
- import type { Link } from "./edge.js";
3
+ import type { Annotation } from "../annotations/annotation.js";
4
+ import type { Link } from "../edges/edge.js";
5
5
  import type { BinaryFile } from "./file.js";
6
6
  import { type Layer } from "./layer.js";
7
7
  import type { Patch } from "./patch.js";
8
- import type { Element } from "./shape.js";
8
+ import type { Element } from "../shapes/shape.js";
9
9
  import { type Viewport } from "./viewport.js";
10
10
  /**
11
11
  * Whole-scene container. Entities are stored in immutable `ReadonlyMap`s for
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../../src/model/scene.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,MAAM,EACX,KAAK,MAAM,EACX,KAAK,OAAO,EACZ,KAAK,SAAS,EACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAA4C,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACjG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAoB,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEhE;;;;;GAKG;AACH,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACnD,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC7C;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IAC5D;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAChD,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC7B;AAED,eAAO,MAAM,gBAAgB,EAAE,OAAgC,CAAC;AAUhE;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,KAO1B,CAAC;AAEH,+EAA+E;AAC/E,eAAO,MAAM,UAAU,QAAO,KAO5B,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,OAAO,KAAK,EAAE,MAAM,UAAU,KAAG,KAI9D,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAI,OAAO,KAAK,EAAE,IAAI,MAAM,KAAG,KAK3D,CAAC;AAEF,8DAA8D;AAC9D,eAAO,MAAM,aAAa,GAAI,OAAO,KAAK,EAAE,IAAI,MAAM,KAAG,UAAU,GAAG,SACjD,CAAC;AAEtB,6DAA6D;AAC7D,eAAO,MAAM,KAAK,GAAI,OAAO,KAAK,EAAE,OAAO,KAAK,KAAG,KAqClD,CAAC;AAIF;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,UAAU,QAAQ,CAAC,eAAe,CAAC,KAAG,eAMjE,CAAC;AAEF,4DAA4D;AAC5D,eAAO,MAAM,cAAc,GAAI,UAAU,QAAQ,CAAC,eAAe,CAAC,KAAG,eAMpE,CAAC;AAEF,kEAAkE;AAClE,eAAO,MAAM,YAAY,GACvB,GAAG,eAAe,GAAG,IAAI,EACzB,GAAG,eAAe,GAAG,IAAI,KACxB,eAA2C,CAAC;AAE/C;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,GAC3B,GAAG,eAAe,GAAG,IAAI,EACzB,GAAG,eAAe,GAAG,IAAI,EACzB,GAAG,MAAM,KACR,SAAS,eAAe,EAAmC,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scene.js","sourceRoot":"","sources":["../../src/model/scene.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { ElementId } from "@oh-just-another/types";
2
2
  import type { Scene } from "./scene.js";
3
- import type { Element } from "./shape.js";
3
+ import type { Element } from "../shapes/shape.js";
4
4
  /**
5
5
  * Pure three-way merge for scene shapes. Takes the common ancestor of two
6
6
  * branches + the two heads, returns a merge report:
@@ -0,0 +1 @@
1
+ {"version":3,"file":"three-way-merge.d.ts","sourceRoot":"","sources":["../../src/model/three-way-merge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAElD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,WAAW,mBAAmB;IAClC,uEAAuE;IACvE,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,SAAS,qBAAqB,EAAE,CAAC;CACtD;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,wFAAwF;IACxF,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC;CAChE;AAED,eAAO,MAAM,mBAAmB,GAC9B,UAAU,KAAK,EACf,QAAQ,KAAK,EACb,QAAQ,KAAK,EACb,UAAS,oBAAyB,KACjC,mBAgEF,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;CAC7C;AAED,eAAO,MAAM,wBAAwB,GACnC,QAAQ,mBAAmB,EAC3B,aAAa,SAAS,uBAAuB,EAAE,EAC/C,iBAAgB,CAAC,KAAK,EAAE,OAAO,KAAK,OAAsB,KACzD,KA4BF,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"three-way-merge.js","sourceRoot":"","sources":["../../src/model/three-way-merge.ts"],"names":[],"mappings":"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"}
@@ -37,6 +37,24 @@ export interface Viewport {
37
37
  * matters while `gridEnabled` is true.
38
38
  */
39
39
  readonly snapToGrid?: boolean;
40
+ /**
41
+ * Saved "start view" camera — where the document opens (and where
42
+ * "go to start view" jumps). Absent until the author sets one.
43
+ */
44
+ readonly startView?: StartView;
45
+ /**
46
+ * Canvas paper colour (any CSS colour) behind the grid and the shapes.
47
+ * Absent = {@link DEFAULT_CANVAS_BACKGROUND}. Part of the document: it
48
+ * serialises with the scene and reaches "with background" exports.
49
+ */
50
+ readonly background?: string;
51
+ }
52
+ /** The canvas paper colour of `viewport`, defaulted. */
53
+ export declare const canvasBackgroundOf: (viewport: Viewport) => string;
54
+ /** A saved camera pose: pan + zoom (rotation is not part of a start view). */
55
+ export interface StartView {
56
+ readonly pan: Vec2;
57
+ readonly zoom: number;
40
58
  }
41
59
  /** World-unit spacing snap-to-grid rounds to (the fixed grid spacing). */
42
60
  export declare const resolveSnapSpacing: () => number;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewport.d.ts","sourceRoot":"","sources":["../../src/model/viewport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAI9D;;;;;;GAMG;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;AAEzC;;;;GAIG;AACH,MAAM,WAAW,QAAQ;IACvB,2DAA2D;IAC3D,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;IACnB,mDAAmD;IACnD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,8CAA8C;IAC9C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACnE;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,wEAAwE;IACxE,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAC/B;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B;;;OAGG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,wDAAwD;AACxD,eAAO,MAAM,kBAAkB,GAAI,UAAU,QAAQ,KAAG,MACN,CAAC;AAEnD,8EAA8E;AAC9E,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,0EAA0E;AAC1E,eAAO,MAAM,kBAAkB,QAAO,MAA8B,CAAC;AAErE;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAAI,UAAU,QAAQ,KAAG,OAAsC,CAAC;AAEhG,eAAO,MAAM,gBAAgB,EAAE,QAO7B,CAAC;AAEH,gCAAgC;AAChC,eAAO,MAAM,gBAAgB,GAAI,UAAU,QAAQ,KAAG,SAMrD,CAAC;AAEF,gEAAgE;AAChE,eAAO,MAAM,gBAAgB,GAAI,UAAU,QAAQ,KAAG,SACV,CAAC;AAE7C;;;;GAIG;AACH,eAAO,MAAM,KAAK,GAAI,UAAU,QAAQ,EAAE,aAAa,IAAI,KAAG,QAM5D,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,MAAM,GAAI,UAAU,QAAQ,EAAE,QAAQ,MAAM,EAAE,aAAa,IAAI,KAAG,QAW9E,CAAC;AAEF,eAAO,MAAM,MAAM,GAAI,UAAU,QAAQ,EAAE,OAAO,MAAM,EAAE,QAAQ,MAAM,KAAG,QAGzE,CAAC"}
@@ -1,5 +1,7 @@
1
1
  import { matrix } from "@oh-just-another/math";
2
- import { DEFAULT_GRID_SPACING } from "./constants.js";
2
+ import { DEFAULT_GRID_SPACING, DEFAULT_CANVAS_BACKGROUND } from "../constants.js";
3
+ /** The canvas paper colour of `viewport`, defaulted. */
4
+ export const canvasBackgroundOf = (viewport) => viewport.background ?? DEFAULT_CANVAS_BACKGROUND;
3
5
  /** World-unit spacing snap-to-grid rounds to (the fixed grid spacing). */
4
6
  export const resolveSnapSpacing = () => DEFAULT_GRID_SPACING;
5
7
  /**
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewport.js","sourceRoot":"","sources":["../../src/model/viewport.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import type { Bounds, LinkId, LayerId, ElementId, Vec2 } from "@oh-just-another/types";
2
- import type { Link } from "./edge.js";
3
- import type { Layer } from "./layer.js";
4
- import type { Scene } from "./scene.js";
5
- import { type Element } from "./shape.js";
2
+ import type { Link } from "../edges/edge.js";
3
+ import type { Layer } from "../model/layer.js";
4
+ import type { Scene } from "../model/scene.js";
5
+ import { type Element } from "../shapes/shape.js";
6
6
  import { SpatialGrid } from "./spatial.js";
7
7
  export declare const getElement: (scene: Scene, id: ElementId) => Element | undefined;
8
8
  export declare const getLink: (scene: Scene, id: LinkId) => Link | undefined;
@@ -89,8 +89,12 @@ export declare const getElementsCoveredByBounds: (scene: Scene, range: Bounds, m
89
89
  * within each layer top-to-bottom; returns the first hit. Hit-test here is the
90
90
  * conservative AABB test; renderer-specific shape-precise hit-tests belong
91
91
  * with the renderer.
92
+ *
93
+ * `accept` filters candidates: a shape it rejects is skipped and the scan
94
+ * continues to the shapes beneath it (click-through), instead of shadowing
95
+ * them the way a post-hoc filter on the topmost hit would.
92
96
  */
93
- export declare const getElementAt: (scene: Scene, point: Vec2) => Element | undefined;
97
+ export declare const getElementAt: (scene: Scene, point: Vec2, accept?: (shape: Element) => boolean) => Element | undefined;
94
98
  /**
95
99
  * Build a `SpatialGrid` from the current scene. Re-build (or update
96
100
  * incrementally) when shapes change — the grid is not auto-synced with the
@@ -109,7 +113,8 @@ export declare const queryByIndex: (scene: Scene, grid: SpatialGrid, range: Boun
109
113
  * pre-filters candidates through `grid.query` — O(k) where k is the
110
114
  * shapes overlapping the point's cell. Walks layers top-to-bottom for
111
115
  * stable z-order; within a layer picks the highest-`order` shape that
112
- * actually contains the point.
116
+ * actually contains the point. `accept` skips rejected shapes and keeps
117
+ * scanning beneath them (same click-through contract as `getElementAt`).
113
118
  */
114
- export declare const getElementAtIndexed: (scene: Scene, grid: SpatialGrid, point: Vec2) => Element | undefined;
119
+ export declare const getElementAtIndexed: (scene: Scene, grid: SpatialGrid, point: Vec2, accept?: (shape: Element) => boolean) => Element | undefined;
115
120
  //# sourceMappingURL=queries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../src/query/queries.ts"],"names":[],"mappings":"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"}