@yuzhouu/canvas-kit 0.1.2 → 0.1.4

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 (563) hide show
  1. package/README.md +80 -78
  2. package/_vendor/canvas-core/bindings/bindingUtil.d.ts +45 -0
  3. package/_vendor/canvas-core/bindings/bindingUtilRegistry.d.ts +8 -0
  4. package/_vendor/canvas-core/bindings/terminalBinding.d.ts +28 -0
  5. package/_vendor/canvas-core/editor/camera.d.ts +3 -0
  6. package/_vendor/canvas-core/editor/clipboard.d.ts +43 -0
  7. package/_vendor/canvas-core/editor/commands.d.ts +131 -0
  8. package/_vendor/canvas-core/editor/createEditorWithPlugins.d.ts +6 -0
  9. package/_vendor/canvas-core/editor/edgeScroll.d.ts +5 -0
  10. package/_vendor/canvas-core/editor/editor.d.ts +559 -0
  11. package/_vendor/canvas-core/editor/editorComputedHelpers.d.ts +21 -0
  12. package/_vendor/canvas-core/editor/editorSelectionTransforms.d.ts +6 -0
  13. package/_vendor/canvas-core/editor/events.d.ts +71 -0
  14. package/_vendor/canvas-core/editor/historyManager.d.ts +18 -0
  15. package/_vendor/canvas-core/editor/index.d.ts +11 -0
  16. package/_vendor/canvas-core/editor/interactions.d.ts +51 -0
  17. package/_vendor/canvas-core/editor/internal.d.ts +7 -0
  18. package/_vendor/canvas-core/editor/managers/bindingManager.d.ts +27 -0
  19. package/_vendor/canvas-core/editor/managers/cameraManager.d.ts +39 -0
  20. package/_vendor/canvas-core/editor/managers/clipboardManager.d.ts +14 -0
  21. package/_vendor/canvas-core/editor/managers/documentSnapshotManager.d.ts +28 -0
  22. package/_vendor/canvas-core/editor/managers/inputsManager.d.ts +44 -0
  23. package/_vendor/canvas-core/editor/managers/interactionTransientManager.d.ts +55 -0
  24. package/_vendor/canvas-core/editor/managers/queryManager.d.ts +77 -0
  25. package/_vendor/canvas-core/editor/managers/queryState.d.ts +18 -0
  26. package/_vendor/canvas-core/editor/managers/renderWindowManager.d.ts +25 -0
  27. package/_vendor/canvas-core/editor/managers/selectionGeometry.d.ts +28 -0
  28. package/_vendor/canvas-core/editor/managers/selectionLayoutManager.d.ts +29 -0
  29. package/_vendor/canvas-core/editor/managers/selectionManager.d.ts +21 -0
  30. package/_vendor/canvas-core/editor/managers/selectionOverlayManager.d.ts +24 -0
  31. package/_vendor/canvas-core/editor/managers/shapeEditingManager.d.ts +29 -0
  32. package/_vendor/canvas-core/editor/managers/shapeGeometryManager.d.ts +42 -0
  33. package/_vendor/canvas-core/editor/managers/shapeHierarchyManager.d.ts +55 -0
  34. package/_vendor/canvas-core/editor/managers/shapeOrder.d.ts +14 -0
  35. package/_vendor/canvas-core/editor/managers/shapeReparenting.d.ts +6 -0
  36. package/_vendor/canvas-core/editor/managers/shortcutManager.d.ts +56 -0
  37. package/_vendor/canvas-core/editor/managers/sideEffectManager.d.ts +23 -0
  38. package/_vendor/canvas-core/editor/managers/snapCalculations.d.ts +40 -0
  39. package/_vendor/canvas-core/editor/managers/snapGeometry.d.ts +26 -0
  40. package/_vendor/canvas-core/editor/managers/snapIndicators.d.ts +22 -0
  41. package/_vendor/canvas-core/editor/managers/snapManager.d.ts +29 -0
  42. package/_vendor/canvas-core/editor/managers/snapSnapshotBuilder.d.ts +22 -0
  43. package/_vendor/canvas-core/editor/managers/snapTypes.d.ts +98 -0
  44. package/_vendor/canvas-core/editor/managers/spatialIndexManager.d.ts +30 -0
  45. package/_vendor/canvas-core/editor/managers/toolManager.d.ts +24 -0
  46. package/_vendor/canvas-core/editor/queries/shapeTransforms.d.ts +27 -0
  47. package/_vendor/canvas-core/editor/renderWindow.d.ts +30 -0
  48. package/_vendor/canvas-core/editor/resizeGeometry.d.ts +97 -0
  49. package/_vendor/canvas-core/editor/selection.d.ts +231 -0
  50. package/_vendor/canvas-core/editor/selectionHandleInteractions.d.ts +11 -0
  51. package/_vendor/canvas-core/editor/selectionOverlay.d.ts +33 -0
  52. package/_vendor/canvas-core/editor/stateNode.d.ts +31 -0
  53. package/_vendor/canvas-core/exports/integrity.d.ts +32 -0
  54. package/_vendor/canvas-core/exports/svg.d.ts +52 -0
  55. package/_vendor/canvas-core/geometry/box.d.ts +19 -0
  56. package/_vendor/canvas-core/geometry/ellipse2d.d.ts +16 -0
  57. package/_vendor/canvas-core/geometry/geometry2d.d.ts +15 -0
  58. package/_vendor/canvas-core/geometry/index.d.ts +8 -0
  59. package/_vendor/canvas-core/geometry/mat.d.ts +28 -0
  60. package/_vendor/canvas-core/geometry/polyline2d.d.ts +14 -0
  61. package/_vendor/canvas-core/geometry/rectangle2d.d.ts +16 -0
  62. package/_vendor/canvas-core/geometry/segments.d.ts +5 -0
  63. package/_vendor/canvas-core/geometry/vec.d.ts +37 -0
  64. package/_vendor/canvas-core/index.d.ts +59 -0
  65. package/_vendor/canvas-core/plugins/editorPlugin.d.ts +28 -0
  66. package/_vendor/canvas-core/plugins/index.d.ts +1 -0
  67. package/_vendor/canvas-core/reactivity.d.ts +4 -0
  68. package/_vendor/canvas-core/schema/records.d.ts +112 -0
  69. package/_vendor/canvas-core/schema/snapshotSupport.d.ts +43 -0
  70. package/_vendor/canvas-core/schema/snapshots.d.ts +31 -0
  71. package/_vendor/canvas-core/shapes/capabilities.d.ts +25 -0
  72. package/_vendor/canvas-core/shapes/colors.d.ts +26 -0
  73. package/_vendor/canvas-core/shapes/shapeUtil.d.ts +146 -0
  74. package/_vendor/canvas-core/shapes/shapeUtilRegistry.d.ts +9 -0
  75. package/_vendor/canvas-core/shapes/types.d.ts +2 -0
  76. package/_vendor/canvas-core/surfaces/actions.d.ts +35 -0
  77. package/_vendor/canvas-core/surfaces/contextMenu.d.ts +64 -0
  78. package/_vendor/canvas-core/surfaces/toolbar.d.ts +96 -0
  79. package/_vendor/canvas-core/tools/hand/handTool.d.ts +5 -0
  80. package/_vendor/canvas-core/tools/index.d.ts +2 -0
  81. package/_vendor/canvas-core/tools/select/selectContainment.d.ts +12 -0
  82. package/_vendor/canvas-core/tools/select/selectTool.d.ts +5 -0
  83. package/_vendor/canvas-core/tools/select/selectToolHelpers.d.ts +161 -0
  84. package/_vendor/canvas-core/tools/select/states/brushingState.d.ts +19 -0
  85. package/_vendor/canvas-core/tools/select/states/draggingSelectionHandleInteractionState.d.ts +15 -0
  86. package/_vendor/canvas-core/tools/select/states/idleState.d.ts +8 -0
  87. package/_vendor/canvas-core/tools/select/states/index.d.ts +11 -0
  88. package/_vendor/canvas-core/tools/select/states/pointingCanvasState.d.ts +11 -0
  89. package/_vendor/canvas-core/tools/select/states/pointingResizeHandleState.d.ts +10 -0
  90. package/_vendor/canvas-core/tools/select/states/pointingRotateHandleState.d.ts +10 -0
  91. package/_vendor/canvas-core/tools/select/states/pointingSelectionHandleInteractionState.d.ts +10 -0
  92. package/_vendor/canvas-core/tools/select/states/pointingShapeState.d.ts +12 -0
  93. package/_vendor/canvas-core/tools/select/states/resizingState.d.ts +16 -0
  94. package/_vendor/canvas-core/tools/select/states/rotatingState.d.ts +14 -0
  95. package/_vendor/canvas-core/tools/select/states/selectStateNode.d.ts +60 -0
  96. package/_vendor/canvas-core/tools/select/states/translatingState.d.ts +17 -0
  97. package/_vendor/canvas-react/components/CanvasView.d.ts +14 -0
  98. package/_vendor/canvas-react/components/OverlayLayer.d.ts +1 -0
  99. package/_vendor/canvas-react/components/PageSpace.d.ts +6 -0
  100. package/_vendor/canvas-react/components/ShapeLayer.d.ts +4 -0
  101. package/_vendor/canvas-react/components/index.d.ts +2 -0
  102. package/_vendor/canvas-react/components/overlays/BindingGuide.d.ts +24 -0
  103. package/_vendor/canvas-react/components/overlays/BindingPreviewOverlay.d.ts +1 -0
  104. package/_vendor/canvas-react/components/overlays/BrushBoxOverlay.d.ts +1 -0
  105. package/_vendor/canvas-react/components/overlays/OverlaySvgRoot.d.ts +1 -0
  106. package/_vendor/canvas-react/components/overlays/SelectionFrameOverlay.d.ts +1 -0
  107. package/_vendor/canvas-react/components/overlays/SelectionHandlesOverlay.d.ts +1 -0
  108. package/_vendor/canvas-react/components/overlays/SelectionOverlaySvg.d.ts +1 -0
  109. package/_vendor/canvas-react/components/overlays/SelectionPathOverlay.d.ts +1 -0
  110. package/_vendor/canvas-react/components/overlays/ShapeOutlineOverlay.d.ts +8 -0
  111. package/_vendor/canvas-react/components/overlays/SnapIndicatorsOverlay.d.ts +1 -0
  112. package/_vendor/canvas-react/components/useCanvasDomEvents.d.ts +21 -0
  113. package/_vendor/canvas-react/dom.d.ts +10 -0
  114. package/_vendor/canvas-react/hooks/useEditor.d.ts +3 -0
  115. package/_vendor/canvas-react/hooks/useValue.d.ts +2 -0
  116. package/_vendor/canvas-react/host/canvasOverlayRegistryContext.d.ts +3 -0
  117. package/_vendor/canvas-react/host/canvasPlugin.d.ts +73 -0
  118. package/_vendor/canvas-react/host/canvasRendererRegistryContext.d.ts +3 -0
  119. package/_vendor/canvas-react/host/contextMenuRegistry.d.ts +12 -0
  120. package/_vendor/canvas-react/host/domEventGuards.d.ts +11 -0
  121. package/_vendor/canvas-react/host/extension.d.ts +37 -0
  122. package/_vendor/canvas-react/host/index.d.ts +13 -0
  123. package/_vendor/canvas-react/host/overlayRegistry.d.ts +18 -0
  124. package/_vendor/canvas-react/host/pluginHost.d.ts +2 -0
  125. package/_vendor/canvas-react/host/pluginHostManifest.d.ts +2 -0
  126. package/_vendor/canvas-react/host/pluginHostRuntime.d.ts +3 -0
  127. package/_vendor/canvas-react/host/pluginHostTypes.d.ts +102 -0
  128. package/_vendor/canvas-react/host/pluginHostValidation.d.ts +11 -0
  129. package/_vendor/canvas-react/host/rendererRegistry.d.ts +12 -0
  130. package/_vendor/canvas-react/host/toolbarRegistry.d.ts +24 -0
  131. package/_vendor/canvas-react/index.d.ts +4 -0
  132. package/_vendor/plugin-arrow/arrowBindingAnchors.d.ts +5 -0
  133. package/_vendor/plugin-arrow/arrowBindingGeometry.d.ts +28 -0
  134. package/_vendor/plugin-arrow/arrowBindingUtil.d.ts +27 -0
  135. package/_vendor/plugin-arrow/arrowGeometry.d.ts +74 -0
  136. package/_vendor/plugin-arrow/arrowShapeUtil.d.ts +21 -0
  137. package/_vendor/plugin-arrow/arrowTerminalBindingResolver.d.ts +20 -0
  138. package/_vendor/plugin-arrow/arrowTerminalCommands.d.ts +12 -0
  139. package/_vendor/plugin-arrow/arrowTool.d.ts +4 -0
  140. package/_vendor/plugin-arrow/canvas.d.ts +2 -0
  141. package/_vendor/plugin-arrow/editor.d.ts +7 -0
  142. package/_vendor/plugin-arrow/feature.d.ts +3 -0
  143. package/_vendor/plugin-arrow/index.d.ts +12 -0
  144. package/_vendor/plugin-arrow/selectionHandleInteractions.d.ts +3 -0
  145. package/_vendor/plugin-arrow/types.d.ts +31 -0
  146. package/_vendor/plugin-draw/DrawShapeRenderer.d.ts +10 -0
  147. package/_vendor/plugin-draw/canvas.d.ts +2 -0
  148. package/_vendor/plugin-draw/drawGeometry.d.ts +45 -0
  149. package/_vendor/plugin-draw/drawHitTest.d.ts +11 -0
  150. package/_vendor/plugin-draw/drawInterpolation.d.ts +5 -0
  151. package/_vendor/plugin-draw/drawPath.d.ts +37 -0
  152. package/_vendor/plugin-draw/drawSegments.d.ts +11 -0
  153. package/_vendor/plugin-draw/drawSelectionTransform.d.ts +18 -0
  154. package/_vendor/plugin-draw/drawShapeGeometry.d.ts +33 -0
  155. package/_vendor/plugin-draw/drawShapeUtil.d.ts +21 -0
  156. package/_vendor/plugin-draw/drawStrokeGeometry.d.ts +17 -0
  157. package/_vendor/plugin-draw/drawTool.d.ts +6 -0
  158. package/_vendor/plugin-draw/editor.d.ts +7 -0
  159. package/_vendor/plugin-draw/feature.d.ts +3 -0
  160. package/_vendor/plugin-draw/index.d.ts +13 -0
  161. package/_vendor/plugin-draw/types.d.ts +23 -0
  162. package/_vendor/plugin-eraser/canvas.d.ts +2 -0
  163. package/_vendor/plugin-eraser/editor.d.ts +2 -0
  164. package/_vendor/plugin-eraser/eraserTool.d.ts +5 -0
  165. package/_vendor/plugin-eraser/feature.d.ts +3 -0
  166. package/_vendor/plugin-eraser/{index.ts → index.d.ts} +2 -2
  167. package/_vendor/plugin-frame/canvas.d.ts +9 -0
  168. package/_vendor/plugin-frame/editor.d.ts +7 -0
  169. package/_vendor/plugin-frame/feature.d.ts +3 -0
  170. package/_vendor/plugin-frame/frameShapeUtil.d.ts +23 -0
  171. package/_vendor/plugin-frame/frameTool.d.ts +6 -0
  172. package/_vendor/plugin-frame/index.d.ts +6 -0
  173. package/_vendor/plugin-geo/canvas.d.ts +13 -0
  174. package/_vendor/plugin-geo/editor.d.ts +7 -0
  175. package/_vendor/plugin-geo/feature.d.ts +3 -0
  176. package/_vendor/plugin-geo/geoGeometry.d.ts +8 -0
  177. package/_vendor/plugin-geo/geoShapeUtil.d.ts +13 -0
  178. package/_vendor/plugin-geo/geoTools.d.ts +26 -0
  179. package/_vendor/plugin-geo/index.d.ts +7 -0
  180. package/_vendor/plugin-geo/types.d.ts +17 -0
  181. package/_vendor/plugin-group/canvas.d.ts +10 -0
  182. package/_vendor/plugin-group/editor.d.ts +7 -0
  183. package/_vendor/plugin-group/feature.d.ts +3 -0
  184. package/_vendor/plugin-group/groupShapeUtil.d.ts +15 -0
  185. package/_vendor/plugin-group/index.d.ts +5 -0
  186. package/_vendor/plugin-image/canvas.d.ts +2 -0
  187. package/_vendor/plugin-image/crop.d.ts +112 -0
  188. package/_vendor/plugin-image/cropInteractions.d.ts +3 -0
  189. package/_vendor/plugin-image/cropSession.d.ts +4 -0
  190. package/_vendor/plugin-image/editor.d.ts +16 -0
  191. package/_vendor/plugin-image/feature.d.ts +3 -0
  192. package/_vendor/plugin-image/imageShapeUtil.d.ts +11 -0
  193. package/_vendor/plugin-image/index.d.ts +8 -0
  194. package/_vendor/plugin-image/types.d.ts +37 -0
  195. package/_vendor/plugin-laser/canvas.d.ts +2 -0
  196. package/_vendor/plugin-laser/editor.d.ts +2 -0
  197. package/_vendor/plugin-laser/feature.d.ts +3 -0
  198. package/_vendor/plugin-laser/{index.ts → index.d.ts} +2 -2
  199. package/_vendor/plugin-laser/laserTool.d.ts +4 -0
  200. package/_vendor/plugin-text/arrowLabelBindingUtil.d.ts +42 -0
  201. package/_vendor/plugin-text/canvas.d.ts +2 -0
  202. package/_vendor/plugin-text/editor.d.ts +2 -0
  203. package/_vendor/plugin-text/feature.d.ts +3 -0
  204. package/_vendor/plugin-text/geoLabelBindingUtil.d.ts +45 -0
  205. package/_vendor/plugin-text/host/RichTextEditingBox.d.ts +5 -0
  206. package/_vendor/plugin-text/host/RichTextToolbar.d.ts +8 -0
  207. package/_vendor/plugin-text/host/TiptapTextEditor.d.ts +24 -0
  208. package/_vendor/plugin-text/host/richTextBubbleMenuPositionSync.d.ts +7 -0
  209. package/_vendor/plugin-text/host/richTextRendering.d.ts +3 -0
  210. package/_vendor/plugin-text/host/textDomSelection.d.ts +7 -0
  211. package/_vendor/plugin-text/host/textEditingBoxStyle.d.ts +3 -0
  212. package/_vendor/plugin-text/host/textEntryFocus.d.ts +22 -0
  213. package/_vendor/plugin-text/host/textFontLoader.d.ts +2 -0
  214. package/_vendor/plugin-text/host/textMeasurement.d.ts +12 -0
  215. package/_vendor/plugin-text/host/textMeasurementSync.d.ts +10 -0
  216. package/_vendor/plugin-text/host/textRangeSelection.d.ts +14 -0
  217. package/_vendor/plugin-text/host/textShapeRendererRuntime.d.ts +8 -0
  218. package/_vendor/plugin-text/host/textShapeSync.d.ts +17 -0
  219. package/_vendor/plugin-text/host/tiptapTextEditorController.d.ts +33 -0
  220. package/_vendor/plugin-text/index.d.ts +4 -0
  221. package/_vendor/plugin-text/richTextUtils.d.ts +18 -0
  222. package/_vendor/plugin-text/textInteractions.d.ts +2 -0
  223. package/_vendor/plugin-text/textLabelHelpers.d.ts +44 -0
  224. package/_vendor/plugin-text/textShapeHelpers.d.ts +21 -0
  225. package/_vendor/plugin-text/textShapeSvgExporter.d.ts +6 -0
  226. package/_vendor/plugin-text/textShapeUtil.d.ts +19 -0
  227. package/_vendor/plugin-text/textStyle.d.ts +9 -0
  228. package/_vendor/plugin-text/textTool.d.ts +4 -0
  229. package/_vendor/plugin-text/textTypes.d.ts +28 -0
  230. package/_vendor/signals/atom.d.ts +9 -0
  231. package/_vendor/signals/computed.d.ts +11 -0
  232. package/_vendor/signals/core.d.ts +17 -0
  233. package/_vendor/signals/effect.d.ts +29 -0
  234. package/_vendor/signals/types.d.ts +15 -0
  235. package/_vendor/store/diff.d.ts +9 -0
  236. package/_vendor/store/history.d.ts +37 -0
  237. package/_vendor/store/index.d.ts +5 -0
  238. package/_vendor/store/store.d.ts +32 -0
  239. package/_vendor/store/types.d.ts +27 -0
  240. package/browser/localSnapshotRestore.d.ts +13 -0
  241. package/browser/persistence.d.ts +46 -0
  242. package/builtins/controller/createBuiltInCanvasController.d.ts +16 -0
  243. package/builtins/controller/layerController.d.ts +9 -0
  244. package/builtins/controller/shapeCreationController.d.ts +74 -0
  245. package/builtins/extensions.d.ts +15 -0
  246. package/builtins/index.d.ts +5 -0
  247. package/chrome/CanvasKitFloatingToolbarLayer.d.ts +6 -0
  248. package/chrome/FloatingSelectionToolbarPageSpace.d.ts +9 -0
  249. package/chrome/bindings/useCanvasKitChromeControls.d.ts +27 -0
  250. package/chrome/bindings/useContextMenuSurface.d.ts +12 -0
  251. package/chrome/bindings/useSvgExport.d.ts +15 -0
  252. package/chrome/bindings/useToolbarSurfaces.d.ts +26 -0
  253. package/chrome/types.d.ts +66 -0
  254. package/chrome/useCanvasKitChromeContext.d.ts +19 -0
  255. package/controller/canvasKitController.d.ts +36 -0
  256. package/core/controller/canvasProductController.d.ts +114 -0
  257. package/core/controller/featureControllerRegistry.d.ts +12 -0
  258. package/core/controller/index.d.ts +4 -0
  259. package/core/controller/productLayerTree.d.ts +10 -0
  260. package/core/features/actions/canvasActionContext.d.ts +15 -0
  261. package/core/features/actions/canvasActions.d.ts +26 -0
  262. package/core/features/clipboard/clipboardContextMenuContributions.d.ts +2 -0
  263. package/core/features/clipboard/clipboardContribution.d.ts +19 -0
  264. package/core/features/clipboard/clipboardService.d.ts +10 -0
  265. package/core/features/context-menu/contextMenuActions.d.ts +12 -0
  266. package/core/features/context-menu/contextMenuContext.d.ts +6 -0
  267. package/core/features/context-menu/contextMenuContribution.d.ts +4 -0
  268. package/core/features/context-menu/viewContextMenuContributions.d.ts +2 -0
  269. package/core/features/export/svgExport.d.ts +33 -0
  270. package/core/features/hostActionIds.d.ts +1 -0
  271. package/core/features/toolbar/selectionContextMenuContributions.d.ts +2 -0
  272. package/core/features/toolbar/toolContextMenuContributions.d.ts +2 -0
  273. package/core/features/toolbar/toolbarContribution.d.ts +4 -0
  274. package/core/features/toolbar/toolbarLabels.d.ts +8 -0
  275. package/core/index.d.ts +23 -0
  276. package/core/runtime/productAssets.d.ts +18 -0
  277. package/core/runtime/productContributions.d.ts +9 -0
  278. package/core/runtime/productDefinition.d.ts +32 -0
  279. package/core/runtime/productEditor.d.ts +3 -0
  280. package/core/runtime/productHost.d.ts +17 -0
  281. package/core/runtime/productServices.d.ts +30 -0
  282. package/features/image/ImageImportController.d.ts +9 -0
  283. package/features/image/imageAssetService.d.ts +7 -0
  284. package/features/image/imageBlobStore.d.ts +25 -0
  285. package/features/image/imageFileHelpers.d.ts +35 -0
  286. package/features/image/imageHostActions.d.ts +36 -0
  287. package/features/image/imageHostExtension.d.ts +5 -0
  288. package/features/image/imageProductController.d.ts +22 -0
  289. package/features/image/imageProductToolbarActions.d.ts +2 -0
  290. package/features/image/imageToolbarHostBridge.d.ts +14 -0
  291. package/features/image/index.d.ts +15 -0
  292. package/features/image/svgImageAssetInliner.d.ts +3 -0
  293. package/features/image/useImageImport.d.ts +17 -0
  294. package/index.css +1 -2
  295. package/index.d.ts +12 -15
  296. package/index.mjs +66 -1
  297. package/package.json +1 -11
  298. package/product/canvasKitProduct.d.ts +59 -0
  299. package/react/CanvasKitPersistenceNotice.d.ts +4 -0
  300. package/react/CanvasKitRoot.d.ts +5 -0
  301. package/react/useCanvasKitController.d.ts +5 -0
  302. package/react/useCanvasKitKeyboardShortcuts.d.ts +6 -0
  303. package/react/useCanvasKitRuntime.d.ts +4 -0
  304. package/react/useCanvasKitStartup.d.ts +9 -0
  305. package/runtime/canvasKitHostExtensions.d.ts +19 -0
  306. package/runtime/canvasKitRuntime.d.ts +19 -0
  307. package/runtime/canvasKitRuntimeInitializer.d.ts +11 -0
  308. package/_vendor/canvas-core/bindings/BindingUtil.ts +0 -92
  309. package/_vendor/canvas-core/bindings/BindingUtilRegistry.ts +0 -22
  310. package/_vendor/canvas-core/bindings/arrow/arrowBindingHelpers.ts +0 -52
  311. package/_vendor/canvas-core/contextMenu.ts +0 -85
  312. package/_vendor/canvas-core/editor/Editor.ts +0 -2614
  313. package/_vendor/canvas-core/editor/HistoryManager.ts +0 -83
  314. package/_vendor/canvas-core/editor/StateNode.ts +0 -162
  315. package/_vendor/canvas-core/editor/camera.ts +0 -6
  316. package/_vendor/canvas-core/editor/clipboard.ts +0 -478
  317. package/_vendor/canvas-core/editor/commands.ts +0 -833
  318. package/_vendor/canvas-core/editor/edgeScroll.ts +0 -37
  319. package/_vendor/canvas-core/editor/editorComputedHelpers.ts +0 -257
  320. package/_vendor/canvas-core/editor/editorSelectionTransforms.ts +0 -116
  321. package/_vendor/canvas-core/editor/events.ts +0 -93
  322. package/_vendor/canvas-core/editor/index.ts +0 -12
  323. package/_vendor/canvas-core/editor/interactions.ts +0 -101
  324. package/_vendor/canvas-core/editor/internal.ts +0 -22
  325. package/_vendor/canvas-core/editor/managers/BindingManager.ts +0 -262
  326. package/_vendor/canvas-core/editor/managers/CameraManager.ts +0 -147
  327. package/_vendor/canvas-core/editor/managers/ClipboardManager.ts +0 -32
  328. package/_vendor/canvas-core/editor/managers/DocumentSnapshotManager.ts +0 -256
  329. package/_vendor/canvas-core/editor/managers/InputsManager.ts +0 -319
  330. package/_vendor/canvas-core/editor/managers/InteractionTransientManager.ts +0 -218
  331. package/_vendor/canvas-core/editor/managers/QueryManager.ts +0 -837
  332. package/_vendor/canvas-core/editor/managers/RenderWindowManager.ts +0 -347
  333. package/_vendor/canvas-core/editor/managers/SelectionLayoutManager.ts +0 -196
  334. package/_vendor/canvas-core/editor/managers/SelectionManager.ts +0 -98
  335. package/_vendor/canvas-core/editor/managers/SelectionOverlayManager.ts +0 -308
  336. package/_vendor/canvas-core/editor/managers/ShapeEditingManager.ts +0 -226
  337. package/_vendor/canvas-core/editor/managers/ShapeGeometryManager.ts +0 -162
  338. package/_vendor/canvas-core/editor/managers/ShapeHierarchyManager.ts +0 -797
  339. package/_vendor/canvas-core/editor/managers/SideEffectManager.ts +0 -83
  340. package/_vendor/canvas-core/editor/managers/SnapManager.ts +0 -433
  341. package/_vendor/canvas-core/editor/managers/SnapSnapshotBuilder.ts +0 -430
  342. package/_vendor/canvas-core/editor/managers/SpatialIndexManager.ts +0 -354
  343. package/_vendor/canvas-core/editor/managers/ToolManager.ts +0 -81
  344. package/_vendor/canvas-core/editor/managers/queryState.ts +0 -583
  345. package/_vendor/canvas-core/editor/managers/selectionGeometry.ts +0 -287
  346. package/_vendor/canvas-core/editor/managers/shapeOrder.ts +0 -350
  347. package/_vendor/canvas-core/editor/managers/shapeReparenting.ts +0 -160
  348. package/_vendor/canvas-core/editor/managers/snapCalculations.ts +0 -412
  349. package/_vendor/canvas-core/editor/managers/snapGeometry.ts +0 -202
  350. package/_vendor/canvas-core/editor/managers/snapIndicators.ts +0 -403
  351. package/_vendor/canvas-core/editor/managers/snapTypes.ts +0 -122
  352. package/_vendor/canvas-core/editor/queries/shapeTransforms.ts +0 -171
  353. package/_vendor/canvas-core/editor/renderWindow.ts +0 -439
  354. package/_vendor/canvas-core/editor/resizeGeometry.ts +0 -654
  355. package/_vendor/canvas-core/editor/selection.ts +0 -489
  356. package/_vendor/canvas-core/editor/selectionHandleInteractions.ts +0 -43
  357. package/_vendor/canvas-core/editor/selectionOverlay.ts +0 -567
  358. package/_vendor/canvas-core/exports/integrity.ts +0 -174
  359. package/_vendor/canvas-core/exports/svg.ts +0 -494
  360. package/_vendor/canvas-core/geometry/Box.ts +0 -80
  361. package/_vendor/canvas-core/geometry/Ellipse2d.ts +0 -67
  362. package/_vendor/canvas-core/geometry/Geometry2d.ts +0 -52
  363. package/_vendor/canvas-core/geometry/Mat.ts +0 -92
  364. package/_vendor/canvas-core/geometry/Polyline2d.ts +0 -63
  365. package/_vendor/canvas-core/geometry/Rectangle2d.ts +0 -64
  366. package/_vendor/canvas-core/geometry/Vec.ts +0 -123
  367. package/_vendor/canvas-core/geometry/index.ts +0 -13
  368. package/_vendor/canvas-core/geometry/segments.ts +0 -65
  369. package/_vendor/canvas-core/index.ts +0 -391
  370. package/_vendor/canvas-core/plugins/index.ts +0 -5
  371. package/_vendor/canvas-core/plugins/types.ts +0 -53
  372. package/_vendor/canvas-core/reactivity.ts +0 -16
  373. package/_vendor/canvas-core/schema/records.ts +0 -221
  374. package/_vendor/canvas-core/schema/snapshots.ts +0 -527
  375. package/_vendor/canvas-core/shapes/ShapeUtil.ts +0 -516
  376. package/_vendor/canvas-core/shapes/ShapeUtilRegistry.ts +0 -26
  377. package/_vendor/canvas-core/shapes/capabilities.ts +0 -67
  378. package/_vendor/canvas-core/shapes/types.ts +0 -20
  379. package/_vendor/canvas-core/toolbar.ts +0 -148
  380. package/_vendor/canvas-core/tools/hand/HandTool.ts +0 -75
  381. package/_vendor/canvas-core/tools/index.ts +0 -2
  382. package/_vendor/canvas-core/tools/select/SelectTool.ts +0 -33
  383. package/_vendor/canvas-core/tools/select/selectContainment.ts +0 -104
  384. package/_vendor/canvas-core/tools/select/selectToolHelpers.ts +0 -801
  385. package/_vendor/canvas-core/tools/select/states/BrushingState.ts +0 -145
  386. package/_vendor/canvas-core/tools/select/states/DraggingSelectionHandleInteractionState.ts +0 -116
  387. package/_vendor/canvas-core/tools/select/states/IdleState.ts +0 -159
  388. package/_vendor/canvas-core/tools/select/states/PointingCanvasState.ts +0 -41
  389. package/_vendor/canvas-core/tools/select/states/PointingResizeHandleState.ts +0 -78
  390. package/_vendor/canvas-core/tools/select/states/PointingRotateHandleState.ts +0 -64
  391. package/_vendor/canvas-core/tools/select/states/PointingSelectionHandleInteractionState.ts +0 -34
  392. package/_vendor/canvas-core/tools/select/states/PointingShapeState.ts +0 -140
  393. package/_vendor/canvas-core/tools/select/states/ResizingState.ts +0 -171
  394. package/_vendor/canvas-core/tools/select/states/RotatingState.ts +0 -124
  395. package/_vendor/canvas-core/tools/select/states/SelectStateNode.ts +0 -128
  396. package/_vendor/canvas-core/tools/select/states/TranslatingState.ts +0 -139
  397. package/_vendor/canvas-core/tools/select/states/index.ts +0 -11
  398. package/_vendor/canvas-plugin-api/feature.ts +0 -204
  399. package/_vendor/canvas-plugin-api/index.ts +0 -142
  400. package/_vendor/canvas-product-react/api/apiRegistry.ts +0 -35
  401. package/_vendor/canvas-product-react/api/canvasProductApi.ts +0 -422
  402. package/_vendor/canvas-product-react/api/index.ts +0 -31
  403. package/_vendor/canvas-product-react/capabilities/clipboard/clipboardService.ts +0 -36
  404. package/_vendor/canvas-product-react/capabilities/clipboard/systemClipboard.ts +0 -245
  405. package/_vendor/canvas-product-react/capabilities/context-menu/systemContextMenu.ts +0 -396
  406. package/_vendor/canvas-product-react/capabilities/context-menu/useContextMenuSurface.ts +0 -59
  407. package/_vendor/canvas-product-react/capabilities/export/useSvgExport.ts +0 -156
  408. package/_vendor/canvas-product-react/capabilities/history/useHistoryControls.ts +0 -23
  409. package/_vendor/canvas-product-react/capabilities/pages/usePageControls.ts +0 -41
  410. package/_vendor/canvas-product-react/capabilities/toolbar/systemToolbar.ts +0 -490
  411. package/_vendor/canvas-product-react/capabilities/toolbar/useToolbarSurfaces.ts +0 -92
  412. package/_vendor/canvas-product-react/capabilities/zoom/useZoomControls.ts +0 -27
  413. package/_vendor/canvas-product-react/index.ts +0 -84
  414. package/_vendor/canvas-product-react/persistence/index.ts +0 -18
  415. package/_vendor/canvas-product-react/persistence/localSnapshotPersistence.ts +0 -294
  416. package/_vendor/canvas-product-react/runtime/CanvasProductRoot.tsx +0 -250
  417. package/_vendor/canvas-product-react/runtime/productDefinition.ts +0 -72
  418. package/_vendor/canvas-product-react/runtime/productServices.ts +0 -96
  419. package/_vendor/canvas-react/components/CanvasView.tsx +0 -796
  420. package/_vendor/canvas-react/components/OverlayLayer.tsx +0 -879
  421. package/_vendor/canvas-react/components/PageSpace.tsx +0 -34
  422. package/_vendor/canvas-react/components/ShapeLayer.tsx +0 -428
  423. package/_vendor/canvas-react/components/index.ts +0 -4
  424. package/_vendor/canvas-react/hooks/useEditor.ts +0 -11
  425. package/_vendor/canvas-react/hooks/useValue.ts +0 -14
  426. package/_vendor/canvas-react/host/CanvasRendererRegistryContext.tsx +0 -14
  427. package/_vendor/canvas-react/host/contextMenuRegistry.ts +0 -61
  428. package/_vendor/canvas-react/host/domEventGuards.ts +0 -61
  429. package/_vendor/canvas-react/host/index.ts +0 -38
  430. package/_vendor/canvas-react/host/pluginHost.ts +0 -635
  431. package/_vendor/canvas-react/host/rendererRegistry.tsx +0 -58
  432. package/_vendor/canvas-react/host/toolbarRegistry.ts +0 -100
  433. package/_vendor/canvas-react/index.ts +0 -3
  434. package/_vendor/plugin-arrow/ArrowBindingUtil.ts +0 -239
  435. package/_vendor/plugin-arrow/ArrowShapeUtil.ts +0 -311
  436. package/_vendor/plugin-arrow/ArrowTool.ts +0 -208
  437. package/_vendor/plugin-arrow/arrowGeometry.ts +0 -441
  438. package/_vendor/plugin-arrow/arrowTerminalBindingResolver.ts +0 -253
  439. package/_vendor/plugin-arrow/arrowTerminalCommands.ts +0 -230
  440. package/_vendor/plugin-arrow/canvas.tsx +0 -92
  441. package/_vendor/plugin-arrow/core.ts +0 -409
  442. package/_vendor/plugin-arrow/feature.ts +0 -20
  443. package/_vendor/plugin-arrow/index.ts +0 -28
  444. package/_vendor/plugin-arrow/selectionHandleInteractions.ts +0 -154
  445. package/_vendor/plugin-arrow/types.ts +0 -63
  446. package/_vendor/plugin-draw/DrawShapeRenderer.tsx +0 -60
  447. package/_vendor/plugin-draw/DrawShapeUtil.ts +0 -372
  448. package/_vendor/plugin-draw/DrawTool.ts +0 -444
  449. package/_vendor/plugin-draw/canvas.tsx +0 -24
  450. package/_vendor/plugin-draw/core.ts +0 -515
  451. package/_vendor/plugin-draw/drawGeometry.ts +0 -491
  452. package/_vendor/plugin-draw/drawHitTest.ts +0 -271
  453. package/_vendor/plugin-draw/drawInterpolation.ts +0 -250
  454. package/_vendor/plugin-draw/drawPath.ts +0 -550
  455. package/_vendor/plugin-draw/drawSegments.ts +0 -106
  456. package/_vendor/plugin-draw/drawSelectionTransform.ts +0 -67
  457. package/_vendor/plugin-draw/drawShapeGeometry.ts +0 -307
  458. package/_vendor/plugin-draw/drawStrokeGeometry.ts +0 -454
  459. package/_vendor/plugin-draw/feature.ts +0 -20
  460. package/_vendor/plugin-draw/index.ts +0 -31
  461. package/_vendor/plugin-draw/types.ts +0 -36
  462. package/_vendor/plugin-eraser/EraserTool.ts +0 -297
  463. package/_vendor/plugin-eraser/canvas.tsx +0 -616
  464. package/_vendor/plugin-eraser/core.ts +0 -49
  465. package/_vendor/plugin-eraser/feature.ts +0 -20
  466. package/_vendor/plugin-frame/FrameShapeUtil.ts +0 -173
  467. package/_vendor/plugin-frame/FrameTool.ts +0 -225
  468. package/_vendor/plugin-frame/canvas.tsx +0 -75
  469. package/_vendor/plugin-frame/core.ts +0 -534
  470. package/_vendor/plugin-frame/feature.ts +0 -20
  471. package/_vendor/plugin-frame/index.ts +0 -6
  472. package/_vendor/plugin-geo/GeoShapeUtil.ts +0 -463
  473. package/_vendor/plugin-geo/GeoTools.ts +0 -247
  474. package/_vendor/plugin-geo/canvas.tsx +0 -90
  475. package/_vendor/plugin-geo/core.ts +0 -495
  476. package/_vendor/plugin-geo/feature.ts +0 -20
  477. package/_vendor/plugin-geo/index.ts +0 -7
  478. package/_vendor/plugin-geo/types.ts +0 -27
  479. package/_vendor/plugin-group/GroupShapeUtil.ts +0 -59
  480. package/_vendor/plugin-group/canvas.tsx +0 -59
  481. package/_vendor/plugin-group/core.ts +0 -40
  482. package/_vendor/plugin-group/feature.ts +0 -20
  483. package/_vendor/plugin-group/index.ts +0 -5
  484. package/_vendor/plugin-image/ImageShapeUtil.ts +0 -95
  485. package/_vendor/plugin-image/canvas.tsx +0 -212
  486. package/_vendor/plugin-image/core.ts +0 -542
  487. package/_vendor/plugin-image/crop.ts +0 -770
  488. package/_vendor/plugin-image/cropInteractions.ts +0 -350
  489. package/_vendor/plugin-image/cropSession.ts +0 -38
  490. package/_vendor/plugin-image/feature.ts +0 -20
  491. package/_vendor/plugin-image/index.ts +0 -29
  492. package/_vendor/plugin-image/types.ts +0 -55
  493. package/_vendor/plugin-image-product-react/ImageImportController.tsx +0 -143
  494. package/_vendor/plugin-image-product-react/imageAssetService.ts +0 -52
  495. package/_vendor/plugin-image-product-react/imageBlobStore.ts +0 -315
  496. package/_vendor/plugin-image-product-react/imageHostActions.ts +0 -438
  497. package/_vendor/plugin-image-product-react/imageProductApi.ts +0 -88
  498. package/_vendor/plugin-image-product-react/imageToolbarHostBridge.ts +0 -48
  499. package/_vendor/plugin-image-product-react/imageToolbarRuntime.ts +0 -21
  500. package/_vendor/plugin-image-product-react/index.ts +0 -60
  501. package/_vendor/plugin-image-product-react/snapshotGuards.ts +0 -33
  502. package/_vendor/plugin-image-product-react/svgImageAssetInliner.ts +0 -54
  503. package/_vendor/plugin-image-product-react/useImageImport.ts +0 -64
  504. package/_vendor/plugin-laser/LaserTool.ts +0 -154
  505. package/_vendor/plugin-laser/canvas.tsx +0 -645
  506. package/_vendor/plugin-laser/core.ts +0 -49
  507. package/_vendor/plugin-laser/feature.ts +0 -20
  508. package/_vendor/plugin-text/ArrowLabelBindingUtil.ts +0 -336
  509. package/_vendor/plugin-text/GeoLabelBindingUtil.ts +0 -391
  510. package/_vendor/plugin-text/TextShapeSvgExporter.ts +0 -101
  511. package/_vendor/plugin-text/TextShapeUtil.ts +0 -284
  512. package/_vendor/plugin-text/TextTool.ts +0 -228
  513. package/_vendor/plugin-text/canvas.tsx +0 -115
  514. package/_vendor/plugin-text/core.ts +0 -422
  515. package/_vendor/plugin-text/feature.ts +0 -20
  516. package/_vendor/plugin-text/host/RichTextEditingBox.tsx +0 -144
  517. package/_vendor/plugin-text/host/RichTextToolbar.tsx +0 -266
  518. package/_vendor/plugin-text/host/TiptapTextEditor.tsx +0 -191
  519. package/_vendor/plugin-text/host/richTextRendering.tsx +0 -49
  520. package/_vendor/plugin-text/host/textDomSelection.ts +0 -93
  521. package/_vendor/plugin-text/host/textEditingBoxStyle.ts +0 -36
  522. package/_vendor/plugin-text/host/textEntryFocus.ts +0 -307
  523. package/_vendor/plugin-text/host/textFontLoader.ts +0 -149
  524. package/_vendor/plugin-text/host/textMeasurement.ts +0 -258
  525. package/_vendor/plugin-text/host/textMeasurementSync.ts +0 -77
  526. package/_vendor/plugin-text/host/textRangeSelection.ts +0 -134
  527. package/_vendor/plugin-text/host/textShapeRendererRuntime.tsx +0 -89
  528. package/_vendor/plugin-text/host/textShapeSync.ts +0 -173
  529. package/_vendor/plugin-text/host/tiptapTextEditorController.ts +0 -148
  530. package/_vendor/plugin-text/index.ts +0 -18
  531. package/_vendor/plugin-text/richTextUtils.ts +0 -259
  532. package/_vendor/plugin-text/textInteractions.ts +0 -366
  533. package/_vendor/plugin-text/textLabelHelpers.ts +0 -235
  534. package/_vendor/plugin-text/textShapeHelpers.ts +0 -123
  535. package/_vendor/plugin-text/textStyle.ts +0 -96
  536. package/_vendor/plugin-text/textTypes.ts +0 -48
  537. package/_vendor/signals/atom.ts +0 -74
  538. package/_vendor/signals/computed.ts +0 -132
  539. package/_vendor/signals/core.ts +0 -130
  540. package/_vendor/signals/effect.ts +0 -117
  541. package/_vendor/signals/types.ts +0 -17
  542. package/_vendor/store/Store.ts +0 -171
  543. package/_vendor/store/diff.ts +0 -229
  544. package/_vendor/store/history.ts +0 -177
  545. package/_vendor/store/index.ts +0 -32
  546. package/_vendor/store/types.ts +0 -37
  547. package/api/canvasKitApi.d.ts +0 -29
  548. package/internal-modules.d.ts +0 -187
  549. package/product/Shell.d.ts +0 -19
  550. package/product/chromeContext.d.ts +0 -70
  551. package/product/createCanvasKitEditor.d.ts +0 -6
  552. package/product/index.d.ts +0 -7
  553. package/product/persistence.d.ts +0 -3
  554. package/product/product.d.ts +0 -22
  555. package/product/useCanvasClipboardShortcuts.d.ts +0 -6
  556. package/product-iyBbEPIs.mjs +0 -4
  557. package/product.mjs +0 -1
  558. package/standard/extensions.d.ts +0 -1
  559. package/standard/index.d.ts +0 -3
  560. package/standard/standardApi.d.ts +0 -91
  561. package/standard-BmrxwqpJ.mjs +0 -44
  562. package/standard.mjs +0 -1
  563. /package/_vendor/signals/{index.ts → index.d.ts} +0 -0
@@ -1,130 +0,0 @@
1
- import { Child, Signal } from "./types";
2
-
3
- /** Global epoch counter — increments on every atom change */
4
- let globalEpoch = 0;
5
-
6
- export function getGlobalEpoch(): number {
7
- return globalEpoch;
8
- }
9
-
10
- export function advanceGlobalEpoch(): number {
11
- return ++globalEpoch;
12
- }
13
-
14
- // --- Transaction ---
15
-
16
- interface Transaction {
17
- initialAtomValues: Map<_Atom<any>, any>;
18
- }
19
-
20
- let currentTransaction: Transaction | null = null;
21
-
22
- export function getCurrentTransaction(): Transaction | null {
23
- return currentTransaction;
24
- }
25
-
26
- export function transact(fn: () => void): void {
27
- if (currentTransaction) {
28
- // Nested transaction — just run inside the existing one
29
- fn();
30
- return;
31
- }
32
-
33
- const txn: Transaction = { initialAtomValues: new Map() };
34
- currentTransaction = txn;
35
- try {
36
- fn();
37
- // Commit: flush all effects
38
- flushChanges(txn.initialAtomValues.keys());
39
- } catch (e) {
40
- // Abort: rollback
41
- for (const [a, value] of txn.initialAtomValues) {
42
- a.__unsafe__setWithoutNotify(value);
43
- }
44
- throw e;
45
- } finally {
46
- currentTransaction = null;
47
- }
48
- }
49
-
50
- export function noteInitialValue(
51
- atom: _Atom<any>,
52
- previousValue: any,
53
- ): void {
54
- if (
55
- currentTransaction &&
56
- !currentTransaction.initialAtomValues.has(atom)
57
- ) {
58
- currentTransaction.initialAtomValues.set(atom, previousValue);
59
- }
60
- }
61
-
62
- // --- Dependency capture ---
63
-
64
- interface CaptureFrame {
65
- child: Child;
66
- parentSet: Set<Signal<any>>;
67
- below: CaptureFrame | null;
68
- }
69
-
70
- let captureStack: CaptureFrame | null = null;
71
-
72
- export function startCapture(child: Child): void {
73
- captureStack = { child, parentSet: new Set(), below: captureStack };
74
- }
75
-
76
- export function stopCapture(): Set<Signal<any>> {
77
- if (!captureStack) {
78
- throw new Error(
79
- "Cannot stop dependency capture because no capture is active",
80
- );
81
- }
82
- const frame = captureStack;
83
- captureStack = frame.below;
84
- return frame.parentSet;
85
- }
86
-
87
- export function maybeCaptureParent(parent: Signal<any>): void {
88
- if (!captureStack) return;
89
- captureStack.parentSet.add(parent);
90
- parent.children.add(captureStack.child);
91
- }
92
-
93
- // --- Change propagation ---
94
-
95
- function flushChanges(changedAtoms: Iterable<_Atom<any>>): void {
96
- const effects = new Set<Child>();
97
- const visited = new Set<Child>();
98
-
99
- function traverse(children: Set<Child>) {
100
- for (const child of children) {
101
- if (visited.has(child)) continue;
102
- visited.add(child);
103
- if (child.type === "effect") {
104
- effects.add(child);
105
- } else if (child.type === "computed") {
106
- const source = child.source;
107
- if (source) traverse(source.children);
108
- }
109
- }
110
- }
111
-
112
- for (const atom of changedAtoms) {
113
- traverse(atom.children);
114
- }
115
-
116
- for (const effect of effects) {
117
- effect.notify();
118
- }
119
- }
120
-
121
- export function atomDidChange(atom: _Atom<any>): void {
122
- if (!currentTransaction) {
123
- flushChanges([atom]);
124
- }
125
- }
126
-
127
- // Forward reference types — implemented in their own files
128
- interface _Atom<T> extends Signal<T> {
129
- __unsafe__setWithoutNotify(value: T): void;
130
- }
@@ -1,117 +0,0 @@
1
- import { Child, Signal } from "./types";
2
- import { getGlobalEpoch, startCapture, stopCapture } from "./core";
3
-
4
- export interface EffectSchedulerOptions {
5
- scheduleEffect?: (execute: () => void) => void;
6
- }
7
-
8
- export class EffectScheduler {
9
- type = "effect" as const;
10
- private parents: Signal<any>[] = [];
11
- private parentEpochs: number[] = [];
12
- private lastReactedEpoch = -1;
13
- private isActive = false;
14
- private scheduleEffect?: (execute: () => void) => void;
15
-
16
- constructor(
17
- public readonly name: string,
18
- private fn: () => void,
19
- opts?: EffectSchedulerOptions,
20
- ) {
21
- this.scheduleEffect = opts?.scheduleEffect;
22
- }
23
-
24
- private selfAsChild: Child = {
25
- type: "effect",
26
- notify: () => this.maybeSchedule(),
27
- };
28
-
29
- attach(): void {
30
- this.isActive = true;
31
- this.execute();
32
- }
33
-
34
- detach(): void {
35
- this.isActive = false;
36
- // Remove from all parents
37
- for (const parent of this.parents) {
38
- parent.children.delete(this.selfAsChild);
39
- }
40
- this.parents = [];
41
- this.parentEpochs = [];
42
- }
43
-
44
- maybeSchedule(): void {
45
- if (!this.isActive) return;
46
- if (this.lastReactedEpoch === getGlobalEpoch()) return;
47
-
48
- if (!this.haveParentsChanged()) {
49
- this.lastReactedEpoch = getGlobalEpoch();
50
- return;
51
- }
52
-
53
- if (this.scheduleEffect) {
54
- this.scheduleEffect(() => this.execute());
55
- } else {
56
- this.execute();
57
- }
58
- }
59
-
60
- execute(): void {
61
- if (!this.isActive) return;
62
-
63
- // Remove from old parents
64
- for (const parent of this.parents) {
65
- parent.children.delete(this.selfAsChild);
66
- }
67
-
68
- startCapture(this.selfAsChild);
69
- try {
70
- this.fn();
71
- } finally {
72
- const newParentSet = stopCapture();
73
- this.parents = [...newParentSet];
74
- this.parentEpochs = this.parents.map((p) => p.lastChangedEpoch);
75
- for (const parent of this.parents) {
76
- parent.children.add(this.selfAsChild);
77
- }
78
- this.lastReactedEpoch = getGlobalEpoch();
79
- }
80
- }
81
-
82
- private haveParentsChanged(): boolean {
83
- for (let i = 0; i < this.parents.length; i++) {
84
- const parent = this.parents[i];
85
- parent.__unsafe__getWithoutCapture();
86
- if (parent.lastChangedEpoch !== this.parentEpochs[i]) {
87
- return true;
88
- }
89
- }
90
- return false;
91
- }
92
- }
93
-
94
- /**
95
- * Create a reactive effect that re-runs whenever its dependencies change.
96
- * Returns a cleanup function to stop the effect.
97
- */
98
- export function effect(
99
- name: string,
100
- fn: () => void,
101
- opts?: EffectSchedulerOptions,
102
- ): () => void {
103
- const scheduler = new EffectScheduler(name, fn, opts);
104
- scheduler.attach();
105
- return () => scheduler.detach();
106
- }
107
-
108
- /**
109
- * Alias: react() — same as effect()
110
- */
111
- export function react(
112
- name: string,
113
- fn: () => void,
114
- opts?: EffectSchedulerOptions,
115
- ): () => void {
116
- return effect(name, fn, opts);
117
- }
@@ -1,17 +0,0 @@
1
- /** A reactive signal that holds subscribers */
2
- export interface Signal<T> {
3
- readonly name: string;
4
- get(): T;
5
- __unsafe__getWithoutCapture(): T;
6
- lastChangedEpoch: number;
7
- children: Set<Child>;
8
- }
9
-
10
- export interface Child {
11
- type: "computed" | "effect";
12
- notify(): void;
13
- source?: Signal<any>;
14
- }
15
-
16
- export const RESET_VALUE: unique symbol = Symbol("RESET_VALUE");
17
- export type RESET_VALUE = typeof RESET_VALUE;
@@ -1,171 +0,0 @@
1
- import { atom, type Atom } from "@land/signals";
2
- import {
3
- createEmptyRecordsDiff,
4
- getRecordsDiff,
5
- hasRecordsDiff,
6
- } from "./diff";
7
- import type {
8
- ChangeSource,
9
- RecordsDiff,
10
- ScopedStoreRecord,
11
- StoreChange,
12
- StoreRecord,
13
- StoreScopeOf,
14
- } from "./types";
15
-
16
- type StoreListener<TRecord extends StoreRecord> = (
17
- change: StoreChange<TRecord>,
18
- ) => void;
19
- type ScopedRecord<TRecord extends StoreRecord> = Extract<
20
- TRecord,
21
- ScopedStoreRecord
22
- >;
23
-
24
- export class Store<TRecord extends StoreRecord = StoreRecord> {
25
- readonly recordsSignal: Atom<Map<string, TRecord>>;
26
-
27
- private readonly listeners = new Set<StoreListener<TRecord>>();
28
- private transactionDepth = 0;
29
- private draftRecords: Map<string, TRecord> | null = null;
30
- private pendingSource: ChangeSource = "system";
31
-
32
- constructor(initialRecords: TRecord[]) {
33
- this.recordsSignal = atom(
34
- "store.records",
35
- new Map(initialRecords.map((record) => [record.id, record])),
36
- );
37
- }
38
-
39
- get(id: string): TRecord | undefined {
40
- return this.getReadableRecords().get(id);
41
- }
42
-
43
- getAll(): TRecord[] {
44
- return Array.from(this.getReadableRecords().values());
45
- }
46
-
47
- getByScope<TScope extends StoreScopeOf<ScopedRecord<TRecord>>>(
48
- scope: TScope,
49
- ): Array<Extract<ScopedRecord<TRecord>, { scope: TScope }>> {
50
- return this.getAll().filter(
51
- (record): record is Extract<ScopedRecord<TRecord>, { scope: TScope }> =>
52
- "scope" in record && record.scope === scope,
53
- );
54
- }
55
-
56
- listen(listener: StoreListener<TRecord>): () => void {
57
- this.listeners.add(listener);
58
- return () => this.listeners.delete(listener);
59
- }
60
-
61
- atomic(fn: () => void, source: ChangeSource = "system"): void {
62
- const isOuter = this.transactionDepth === 0;
63
- if (isOuter) {
64
- this.draftRecords = new Map(this.recordsSignal.get());
65
- this.pendingSource = source;
66
- }
67
-
68
- this.transactionDepth += 1;
69
- let thrown: unknown;
70
-
71
- try {
72
- fn();
73
- } catch (error) {
74
- thrown = error;
75
- }
76
-
77
- this.transactionDepth -= 1;
78
-
79
- if (isOuter) {
80
- const previous = this.recordsSignal.get();
81
- const next = this.draftRecords;
82
- const pendingSource = this.pendingSource;
83
- this.draftRecords = null;
84
- this.pendingSource = "system";
85
- const diff = next ? getRecordsDiff(previous, next) : createEmptyRecordsDiff<TRecord>();
86
-
87
- if (!thrown && next && hasRecordsDiff(diff)) {
88
- this.recordsSignal.set(next);
89
- const change = {
90
- source: pendingSource,
91
- diff,
92
- } satisfies StoreChange<TRecord>;
93
- for (const notify of this.listeners) {
94
- notify(change);
95
- }
96
- }
97
- }
98
-
99
- if (thrown) {
100
- throw thrown;
101
- }
102
- }
103
-
104
- put(records: TRecord[], source: ChangeSource = "system"): void {
105
- this.atomic(() => {
106
- const target = this.getMutableRecords();
107
- for (const record of records) {
108
- const previous = target.get(record.id);
109
- if (previous === record) continue;
110
- target.set(record.id, record);
111
- }
112
- }, source);
113
- }
114
-
115
- remove(ids: string[], source: ChangeSource = "system"): void {
116
- this.atomic(() => {
117
- const target = this.getMutableRecords();
118
- for (const id of ids) {
119
- if (!target.delete(id)) continue;
120
- }
121
- }, source);
122
- }
123
-
124
- replaceAll(records: TRecord[], source: ChangeSource = "system"): void {
125
- const next = new Map(records.map((record) => [record.id, record]));
126
- const diff = getRecordsDiff(this.recordsSignal.get(), next);
127
- if (!hasRecordsDiff(diff)) {
128
- return;
129
- }
130
- this.recordsSignal.set(next);
131
- const change = {
132
- source,
133
- diff,
134
- } satisfies StoreChange<TRecord>;
135
- for (const notify of this.listeners) {
136
- notify(change);
137
- }
138
- }
139
-
140
- applyDiff<TChangeRecord extends TRecord>(
141
- diff: RecordsDiff<TChangeRecord>,
142
- source: ChangeSource = "system",
143
- ): void {
144
- this.atomic(() => {
145
- const target = this.getMutableRecords();
146
-
147
- for (const record of diff.added) {
148
- target.set(record.id, record);
149
- }
150
-
151
- for (const update of diff.updated) {
152
- target.set(update.after.id, update.after);
153
- }
154
-
155
- for (const record of diff.removed) {
156
- target.delete(record.id);
157
- }
158
- }, source);
159
- }
160
-
161
- private getMutableRecords(): Map<string, TRecord> {
162
- if (!this.draftRecords) {
163
- throw new Error("Store mutations must run inside store.atomic");
164
- }
165
- return this.draftRecords;
166
- }
167
-
168
- private getReadableRecords(): Map<string, TRecord> {
169
- return this.draftRecords ?? this.recordsSignal.get();
170
- }
171
- }
@@ -1,229 +0,0 @@
1
- import type {
2
- RecordUpdate,
3
- RecordsDiff,
4
- StoreRecord,
5
- } from "./types";
6
-
7
- function isMap<TRecord extends StoreRecord>(
8
- value: Map<string, TRecord> | Iterable<TRecord>,
9
- ): value is Map<string, TRecord> {
10
- return value instanceof Map;
11
- }
12
-
13
- export function createEmptyRecordsDiff<
14
- TRecord extends StoreRecord,
15
- >(): RecordsDiff<TRecord> {
16
- return {
17
- added: [],
18
- updated: [],
19
- removed: [],
20
- };
21
- }
22
-
23
- export function hasRecordsDiff<TRecord extends StoreRecord>(
24
- diff: RecordsDiff<TRecord>,
25
- ): boolean {
26
- return diff.added.length > 0 || diff.updated.length > 0 || diff.removed.length > 0;
27
- }
28
-
29
- export function getRecordMap<TRecord extends StoreRecord>(
30
- records: Map<string, TRecord> | Iterable<TRecord>,
31
- ): Map<string, TRecord> {
32
- return isMap(records)
33
- ? new Map(records)
34
- : new Map(Array.from(records, (record) => [record.id, record]));
35
- }
36
-
37
- export function getRecordsDiff<TRecord extends StoreRecord>(
38
- before: Map<string, TRecord> | Iterable<TRecord>,
39
- after: Map<string, TRecord> | Iterable<TRecord>,
40
- ): RecordsDiff<TRecord> {
41
- const beforeMap = getRecordMap(before);
42
- const afterMap = getRecordMap(after);
43
- const diff = createEmptyRecordsDiff<TRecord>();
44
-
45
- for (const [id, previous] of beforeMap) {
46
- const next = afterMap.get(id);
47
- if (!next) {
48
- diff.removed.push(previous);
49
- continue;
50
- }
51
-
52
- if (next !== previous) {
53
- diff.updated.push({
54
- before: previous,
55
- after: next,
56
- });
57
- }
58
- }
59
-
60
- for (const [id, next] of afterMap) {
61
- if (!beforeMap.has(id)) {
62
- diff.added.push(next);
63
- }
64
- }
65
-
66
- return diff;
67
- }
68
-
69
- export function invertRecordsDiff<TRecord extends StoreRecord>(
70
- diff: RecordsDiff<TRecord>,
71
- ): RecordsDiff<TRecord> {
72
- return {
73
- added: [...diff.removed],
74
- updated: diff.updated.map(
75
- (update): RecordUpdate<TRecord> => ({
76
- before: update.after,
77
- after: update.before,
78
- }),
79
- ),
80
- removed: [...diff.added],
81
- };
82
- }
83
-
84
- export function composeRecordsDiff<
85
- TRecord extends StoreRecord,
86
- TNextRecord extends TRecord,
87
- >(
88
- left: RecordsDiff<TRecord>,
89
- right: RecordsDiff<TNextRecord>,
90
- ): RecordsDiff<TRecord | TNextRecord> {
91
- const added = new Map<string, TRecord | TNextRecord>();
92
- const updated = new Map<string, RecordUpdate<TRecord | TNextRecord>>();
93
- const removed = new Map<string, TRecord | TNextRecord>();
94
-
95
- for (const record of left.added) {
96
- added.set(record.id, record);
97
- }
98
-
99
- for (const update of left.updated) {
100
- updated.set(update.after.id, update);
101
- }
102
-
103
- for (const record of left.removed) {
104
- removed.set(record.id, record);
105
- }
106
-
107
- for (const record of right.added) {
108
- const existingRemoved = removed.get(record.id);
109
- if (existingRemoved) {
110
- removed.delete(record.id);
111
- updated.set(record.id, {
112
- before: existingRemoved,
113
- after: record,
114
- });
115
- continue;
116
- }
117
-
118
- const existingUpdated = updated.get(record.id);
119
- if (existingUpdated) {
120
- updated.set(record.id, {
121
- before: existingUpdated.before,
122
- after: record,
123
- });
124
- continue;
125
- }
126
-
127
- added.set(record.id, record);
128
- }
129
-
130
- for (const change of right.updated) {
131
- const existingAdded = added.get(change.after.id);
132
- if (existingAdded) {
133
- added.set(change.after.id, change.after);
134
- continue;
135
- }
136
-
137
- const existingRemoved = removed.get(change.after.id);
138
- if (existingRemoved) {
139
- removed.delete(change.after.id);
140
- updated.set(change.after.id, {
141
- before: existingRemoved,
142
- after: change.after,
143
- });
144
- continue;
145
- }
146
-
147
- const existingUpdated = updated.get(change.after.id);
148
- if (existingUpdated) {
149
- updated.set(change.after.id, {
150
- before: existingUpdated.before,
151
- after: change.after,
152
- });
153
- continue;
154
- }
155
-
156
- updated.set(change.after.id, {
157
- before: change.before,
158
- after: change.after,
159
- });
160
- }
161
-
162
- for (const record of right.removed) {
163
- const existingAdded = added.get(record.id);
164
- if (existingAdded) {
165
- added.delete(record.id);
166
- continue;
167
- }
168
-
169
- const existingUpdated = updated.get(record.id);
170
- if (existingUpdated) {
171
- updated.delete(record.id);
172
- removed.set(record.id, existingUpdated.before);
173
- continue;
174
- }
175
-
176
- removed.set(record.id, record);
177
- }
178
-
179
- const next = createEmptyRecordsDiff<TRecord | TNextRecord>();
180
-
181
- for (const record of added.values()) {
182
- next.added.push(record);
183
- }
184
-
185
- for (const change of updated.values()) {
186
- if (change.before === change.after) {
187
- continue;
188
- }
189
- next.updated.push(change);
190
- }
191
-
192
- for (const record of removed.values()) {
193
- next.removed.push(record);
194
- }
195
-
196
- return next;
197
- }
198
-
199
- export function squashRecordsDiffs<
200
- TRecord extends StoreRecord,
201
- TNextRecord extends TRecord,
202
- >(
203
- diffs: Iterable<RecordsDiff<TRecord> | RecordsDiff<TNextRecord>>,
204
- ): RecordsDiff<TRecord | TNextRecord> {
205
- let next = createEmptyRecordsDiff<TRecord | TNextRecord>();
206
- for (const diff of diffs) {
207
- next = composeRecordsDiff(next, diff);
208
- }
209
- return next;
210
- }
211
-
212
- export function filterRecordsDiff<
213
- TRecord extends StoreRecord,
214
- TFilteredRecord extends TRecord,
215
- >(
216
- diff: RecordsDiff<TRecord>,
217
- predicate: (record: TRecord) => record is TFilteredRecord,
218
- ): RecordsDiff<TFilteredRecord> {
219
- return {
220
- added: diff.added.filter(predicate),
221
- updated: diff.updated.filter(
222
- (
223
- update,
224
- ): update is RecordUpdate<TFilteredRecord> =>
225
- predicate(update.before) && predicate(update.after),
226
- ),
227
- removed: diff.removed.filter(predicate),
228
- };
229
- }