@vibecook/ice 0.11.0 → 0.14.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 (381) hide show
  1. package/README.md +79 -50
  2. package/dist/chunk-BA7XJC27.js +2429 -0
  3. package/dist/chunk-BA7XJC27.js.map +1 -0
  4. package/dist/chunk-BKV4ZEU3.js +1 -0
  5. package/dist/chunk-BKV4ZEU3.js.map +1 -0
  6. package/dist/{chunk-VGVDJZSP.js → chunk-DYK6KNLG.js} +13206 -7387
  7. package/dist/chunk-DYK6KNLG.js.map +1 -0
  8. package/dist/chunk-ENIFIUEP.js +155 -0
  9. package/dist/chunk-ENIFIUEP.js.map +1 -0
  10. package/dist/chunk-IBWWLA6D.js +634 -0
  11. package/dist/chunk-IBWWLA6D.js.map +1 -0
  12. package/dist/{chunk-OR5FNVUE.js → chunk-JS6PG6YD.js} +398 -167
  13. package/dist/chunk-JS6PG6YD.js.map +1 -0
  14. package/dist/chunk-QXOCF56A.js +148 -0
  15. package/dist/chunk-QXOCF56A.js.map +1 -0
  16. package/dist/chunk-ZPUPBULB.js +7399 -0
  17. package/dist/chunk-ZPUPBULB.js.map +1 -0
  18. package/dist/desk-engine.js +36 -0
  19. package/dist/desk-engine.js.map +1 -0
  20. package/dist/desk-kit.js +244 -0
  21. package/dist/desk-kit.js.map +1 -0
  22. package/dist/desk-objects.js +12728 -0
  23. package/dist/desk-objects.js.map +1 -0
  24. package/dist/desk.js +469 -0
  25. package/dist/desk.js.map +1 -0
  26. package/dist/devtools.js +233 -189
  27. package/dist/devtools.js.map +1 -1
  28. package/dist/dom.js +7 -19
  29. package/dist/index.js +232 -20
  30. package/dist/kernel.js +53 -25
  31. package/dist/react.js +1045 -38
  32. package/dist/react.js.map +1 -1
  33. package/dist/types/packages/core/src/behavior/define-behavior.d.ts +11 -0
  34. package/dist/types/packages/core/src/behavior/runtime.d.ts +4 -0
  35. package/dist/types/packages/core/src/canvas/define-canvas-type.d.ts +86 -0
  36. package/dist/types/packages/core/src/canvas/define-container.d.ts +17 -0
  37. package/dist/types/packages/core/src/canvas/diagnostics.d.ts +27 -0
  38. package/dist/types/packages/core/src/canvas/engine-catalog.d.ts +70 -0
  39. package/dist/types/packages/core/src/canvas/extensions.d.ts +125 -0
  40. package/dist/types/packages/core/src/canvas/frame-behavior-host.d.ts +16 -0
  41. package/dist/types/packages/core/src/canvas/frame-preview.d.ts +79 -0
  42. package/dist/types/packages/core/src/canvas/frame-projection.d.ts +38 -0
  43. package/dist/types/packages/core/src/canvas/frame-view.d.ts +36 -0
  44. package/dist/types/packages/core/src/canvas/migrate.d.ts +14 -0
  45. package/dist/types/packages/core/src/canvas/placement.d.ts +30 -0
  46. package/dist/types/packages/core/src/canvas/presentation-transition.d.ts +100 -0
  47. package/dist/types/packages/core/src/canvas/runtime-extension-host.d.ts +16 -0
  48. package/dist/types/packages/core/src/canvas/session.d.ts +47 -0
  49. package/dist/types/packages/core/src/catalog/camera-derived.d.ts +16 -27
  50. package/dist/types/packages/core/src/catalog/desk.d.ts +326 -0
  51. package/dist/types/packages/core/src/catalog/gesture.d.ts +51 -0
  52. package/dist/types/packages/core/src/catalog/graph.d.ts +2 -2
  53. package/dist/types/packages/core/src/catalog/index.d.ts +2 -0
  54. package/dist/types/packages/core/src/catalog/pointer.d.ts +42 -0
  55. package/dist/types/packages/core/src/catalog/selection-presence.d.ts +7 -0
  56. package/dist/types/packages/core/src/catalog/settings-resources.d.ts +28 -2
  57. package/dist/types/packages/core/src/catalog/surface.d.ts +1 -0
  58. package/dist/types/packages/core/src/doc/doc-commit-sink.d.ts +18 -2
  59. package/dist/types/packages/core/src/doc/doc-kit.d.ts +21 -2
  60. package/dist/types/packages/core/src/doc/envelope.d.ts +5 -2
  61. package/dist/types/packages/core/src/doc/schema-migrate.d.ts +1 -1
  62. package/dist/types/packages/core/src/doc/version-gate.d.ts +21 -3
  63. package/dist/types/packages/core/src/engine/commit-sink.d.ts +10 -1
  64. package/dist/types/packages/core/src/engine/engine.d.ts +6 -0
  65. package/dist/types/packages/core/src/engine/frame-control.d.ts +74 -0
  66. package/dist/types/packages/core/src/engine/guests.d.ts +4 -1
  67. package/dist/types/packages/core/src/engine/world-doors.d.ts +12 -0
  68. package/dist/types/packages/core/src/facade/create-canvas-engine.d.ts +146 -13
  69. package/dist/types/packages/core/src/index.d.ts +33 -12
  70. package/dist/types/packages/core/src/input/queue.d.ts +3 -1
  71. package/dist/types/packages/core/src/interaction/install.d.ts +30 -0
  72. package/dist/types/packages/core/src/interaction/wakes.d.ts +24 -0
  73. package/dist/types/packages/core/src/nav/nav-geometry.d.ts +100 -0
  74. package/dist/types/packages/core/src/nav/nested-canvas.d.ts +47 -4
  75. package/dist/types/packages/core/src/ops/cascade.d.ts +2 -1
  76. package/dist/types/packages/core/src/ops/claims.d.ts +6 -0
  77. package/dist/types/packages/core/src/ops/insert.d.ts +4 -0
  78. package/dist/types/packages/core/src/ops/point-pick.d.ts +4 -1
  79. package/dist/types/packages/core/src/ops/sibling-order.d.ts +14 -4
  80. package/dist/types/packages/core/src/ops/tray.d.ts +48 -0
  81. package/dist/types/packages/core/src/presence/presence-kit.d.ts +5 -0
  82. package/dist/types/packages/core/src/schema/meta.d.ts +10 -0
  83. package/dist/types/packages/core/src/schema/prefab.d.ts +8 -0
  84. package/dist/types/packages/core/src/settings/defaults.d.ts +25 -6
  85. package/dist/types/packages/core/src/surface/gpu-device.d.ts +55 -0
  86. package/dist/types/packages/core/src/systems/camera-sim.d.ts +29 -0
  87. package/dist/types/packages/core/src/systems/chrome.d.ts +15 -23
  88. package/dist/types/packages/core/src/systems/drag-mods.d.ts +34 -0
  89. package/dist/types/packages/core/src/systems/held.d.ts +71 -0
  90. package/dist/types/packages/core/src/systems/insert-ghost.d.ts +2 -0
  91. package/dist/types/packages/core/src/systems/l0-input.d.ts +14 -0
  92. package/dist/types/packages/core/src/systems/l1-pick.d.ts +37 -1
  93. package/dist/types/packages/core/src/systems/l2-arbitrate.d.ts +18 -4
  94. package/dist/types/packages/core/src/systems/l3-behave.d.ts +4 -1
  95. package/dist/types/packages/core/src/systems/l3-claim.d.ts +7 -0
  96. package/dist/types/packages/core/src/systems/l3-connect.d.ts +1 -1
  97. package/dist/types/packages/core/src/systems/l3-drop.d.ts +30 -1
  98. package/dist/types/packages/core/src/systems/l3-marquee.d.ts +2 -1
  99. package/dist/types/packages/core/src/systems/l3-ports.d.ts +1 -1
  100. package/dist/types/packages/core/src/systems/l4-cursor.d.ts +5 -0
  101. package/dist/types/packages/core/src/systems/nav-flight.d.ts +85 -3
  102. package/dist/types/packages/core/src/systems/nav-tap.d.ts +44 -0
  103. package/dist/types/packages/core/src/systems/press-wheel.d.ts +11 -0
  104. package/dist/types/packages/core/src/systems/tray.d.ts +108 -0
  105. package/dist/types/packages/core/src/systems/zoom-through.d.ts +30 -0
  106. package/dist/types/packages/core/src/tools/define-tool.d.ts +10 -0
  107. package/dist/types/packages/core/src/widget/define-widget.d.ts +166 -63
  108. package/dist/types/packages/core/src/widget/equip.d.ts +14 -2
  109. package/dist/types/packages/core/src/widget/held-tools.d.ts +83 -0
  110. package/dist/types/packages/core/src/widget/menu-actions.d.ts +44 -0
  111. package/dist/types/packages/core/src/widget/mount-store.d.ts +21 -46
  112. package/dist/types/packages/core/src/widget/spawn.d.ts +1 -1
  113. package/dist/types/packages/desk/src/assets/blue-noise.gen.d.ts +10 -0
  114. package/dist/types/packages/desk/src/card/card.d.ts +103 -0
  115. package/dist/types/packages/desk/src/compose/ambient.d.ts +59 -0
  116. package/dist/types/packages/desk/src/compose/builder.d.ts +285 -0
  117. package/dist/types/packages/desk/src/compose/children.d.ts +3 -0
  118. package/dist/types/packages/desk/src/compose/index.d.ts +14 -0
  119. package/dist/types/packages/desk/src/compose/marks.d.ts +126 -0
  120. package/dist/types/packages/desk/src/compose/pick.d.ts +5 -0
  121. package/dist/types/packages/desk/src/compose/reflector.d.ts +111 -0
  122. package/dist/types/packages/desk/src/compose/tap.d.ts +5 -0
  123. package/dist/types/packages/desk/src/docs.d.ts +23 -0
  124. package/dist/types/packages/desk/src/engine/budget.d.ts +38 -0
  125. package/dist/types/packages/desk/src/engine/device.d.ts +54 -0
  126. package/dist/types/packages/desk/src/engine/index.d.ts +5 -0
  127. package/dist/types/packages/desk/src/engine/pipeline.d.ts +36 -0
  128. package/dist/types/packages/desk/src/engine/rasters.d.ts +66 -0
  129. package/dist/types/packages/desk/src/engine/records.d.ts +56 -0
  130. package/dist/types/packages/desk/src/engine/shader.d.ts +22 -0
  131. package/dist/types/packages/desk/src/engine/struct.d.ts +39 -0
  132. package/dist/types/packages/desk/src/engine/target.d.ts +26 -0
  133. package/dist/types/packages/desk/src/gpu-ablation.d.ts +61 -0
  134. package/dist/types/packages/desk/src/gpu-memory.d.ts +54 -0
  135. package/dist/types/packages/desk/src/gpu-profiler.d.ts +141 -0
  136. package/dist/types/packages/desk/src/gpu-wrap.d.ts +8 -0
  137. package/dist/types/packages/desk/src/ground.d.ts +388 -0
  138. package/dist/types/packages/desk/src/hold/focus.d.ts +53 -0
  139. package/dist/types/packages/desk/src/hold/pose.d.ts +132 -0
  140. package/dist/types/packages/desk/src/hold/shaders.d.ts +9 -0
  141. package/dist/types/packages/desk/src/host/editor.d.ts +18 -0
  142. package/dist/types/packages/desk/src/host/index.d.ts +9 -0
  143. package/dist/types/packages/desk/src/host/ink.d.ts +18 -0
  144. package/dist/types/packages/desk/src/host/layer.d.ts +430 -0
  145. package/dist/types/packages/desk/src/host/picture.d.ts +2 -0
  146. package/dist/types/packages/desk/src/host/surface.d.ts +5 -0
  147. package/dist/types/packages/desk/src/index.d.ts +13 -0
  148. package/dist/types/packages/desk/src/kind.d.ts +187 -0
  149. package/dist/types/packages/desk/src/kinds/world.d.ts +429 -0
  150. package/dist/types/packages/desk/src/kit/arrays.d.ts +88 -0
  151. package/dist/types/packages/desk/src/kit/blobs.d.ts +40 -0
  152. package/dist/types/packages/desk/src/kit/book.d.ts +2 -0
  153. package/dist/types/packages/desk/src/kit/editor.d.ts +103 -0
  154. package/dist/types/packages/desk/src/kit/eye.d.ts +37 -0
  155. package/dist/types/packages/desk/src/kit/hold.d.ts +1 -0
  156. package/dist/types/packages/desk/src/kit/index.d.ts +26 -0
  157. package/dist/types/packages/desk/src/kit/inside.d.ts +116 -0
  158. package/dist/types/packages/desk/src/kit/layer.d.ts +159 -0
  159. package/dist/types/packages/desk/src/kit/light.d.ts +3 -0
  160. package/dist/types/packages/desk/src/kit/mesh.d.ts +29 -0
  161. package/dist/types/packages/desk/src/kit/mips.d.ts +2 -0
  162. package/dist/types/packages/desk/src/kit/nav.d.ts +2 -0
  163. package/dist/types/packages/desk/src/kit/paper-tex.d.ts +5 -0
  164. package/dist/types/packages/desk/src/kit/physics.d.ts +44 -0
  165. package/dist/types/packages/desk/src/kit/place.d.ts +44 -0
  166. package/dist/types/packages/desk/src/kit/print.d.ts +30 -0
  167. package/dist/types/packages/desk/src/kit/raster.d.ts +34 -0
  168. package/dist/types/packages/desk/src/kit/sdf.d.ts +1 -0
  169. package/dist/types/packages/desk/src/kit/seeds.d.ts +11 -0
  170. package/dist/types/packages/desk/src/kit/services.d.ts +34 -0
  171. package/dist/types/packages/desk/src/kit/springs.d.ts +12 -0
  172. package/dist/types/packages/desk/src/kit/strokes.d.ts +93 -0
  173. package/dist/types/packages/desk/src/kit/text.d.ts +142 -0
  174. package/dist/types/packages/desk/src/kit/uniform.d.ts +8 -0
  175. package/dist/types/packages/desk/src/kit/view.d.ts +39 -0
  176. package/dist/types/packages/desk/src/kit/wgsl.d.ts +15 -0
  177. package/dist/types/packages/desk/src/lattice/line.d.ts +15 -0
  178. package/dist/types/packages/desk/src/lattice/lod.d.ts +52 -0
  179. package/dist/types/packages/desk/src/lattice/ruler.d.ts +88 -0
  180. package/dist/types/packages/desk/src/marks/assemble.d.ts +65 -0
  181. package/dist/types/packages/desk/src/marks/ease.d.ts +4 -0
  182. package/dist/types/packages/desk/src/marks/laser.d.ts +41 -0
  183. package/dist/types/packages/desk/src/marks/layout.d.ts +167 -0
  184. package/dist/types/packages/desk/src/marks/pass.d.ts +59 -0
  185. package/dist/types/packages/desk/src/marks/shaders.d.ts +12 -0
  186. package/dist/types/packages/desk/src/mat/grid.d.ts +50 -0
  187. package/dist/types/packages/desk/src/mat/lamp.d.ts +14 -0
  188. package/dist/types/packages/desk/src/mat/layout.d.ts +144 -0
  189. package/dist/types/packages/desk/src/mat/mat-pass.d.ts +83 -0
  190. package/dist/types/packages/desk/src/mat/night.d.ts +95 -0
  191. package/dist/types/packages/desk/src/mat/projector.d.ts +39 -0
  192. package/dist/types/packages/desk/src/mat/shaders.d.ts +17 -0
  193. package/dist/types/packages/desk/src/mat/tilt.d.ts +14 -0
  194. package/dist/types/packages/desk/src/nav/flight.d.ts +186 -0
  195. package/dist/types/packages/desk/src/nav/portal.d.ts +95 -0
  196. package/dist/types/packages/desk/src/object.d.ts +46 -0
  197. package/dist/types/packages/desk/src/pass-instrument.d.ts +89 -0
  198. package/dist/types/packages/desk/src/shaders.d.ts +12 -0
  199. package/dist/types/packages/desk/src/shaders.gen.d.ts +16 -0
  200. package/dist/types/packages/desk/src/submit-instrument.d.ts +36 -0
  201. package/dist/types/packages/desk/src/theme.d.ts +475 -0
  202. package/dist/types/packages/desk/src/tray/carry.d.ts +99 -0
  203. package/dist/types/packages/desk/src/tray/drawer.d.ts +113 -0
  204. package/dist/types/packages/desk/src/tray/flux.d.ts +46 -0
  205. package/dist/types/packages/desk/src/tray/index.d.ts +4 -0
  206. package/dist/types/packages/desk/src/tray/lattice.d.ts +71 -0
  207. package/dist/types/packages/desk/src/tray/layout.d.ts +7 -0
  208. package/dist/types/packages/desk/src/tray/look.d.ts +29 -0
  209. package/dist/types/packages/desk/src/tray/pass.d.ts +96 -0
  210. package/dist/types/packages/desk/src/tray/shaders.d.ts +10 -0
  211. package/dist/types/packages/desk/src/tray/specimens.d.ts +199 -0
  212. package/dist/types/packages/devtools/src/attach.d.ts +22 -8
  213. package/dist/types/packages/devtools/src/dock.d.ts +18 -14
  214. package/dist/types/packages/devtools/src/gpu-panel.d.ts +105 -0
  215. package/dist/types/packages/devtools/src/index.d.ts +5 -4
  216. package/dist/types/packages/dom/src/desk-host.d.ts +91 -0
  217. package/dist/types/packages/dom/src/host.d.ts +13 -14
  218. package/dist/types/packages/dom/src/index.d.ts +12 -10
  219. package/dist/types/packages/dom/src/loop.d.ts +18 -1
  220. package/dist/types/packages/dom/src/pointer-adapter.d.ts +5 -29
  221. package/dist/types/packages/dom/src/widget-focus.d.ts +17 -13
  222. package/dist/types/packages/ice/src/desk-engine.d.ts +2 -0
  223. package/dist/types/packages/ice/src/desk-kit.d.ts +6 -0
  224. package/dist/types/packages/ice/src/desk-objects.d.ts +5 -0
  225. package/dist/types/packages/ice/src/desk.d.ts +5 -0
  226. package/dist/types/packages/kernel/src/atlas-pack.d.ts +157 -0
  227. package/dist/types/packages/kernel/src/bezier.d.ts +0 -15
  228. package/dist/types/packages/kernel/src/coords.d.ts +0 -39
  229. package/dist/types/packages/kernel/src/index.d.ts +2 -2
  230. package/dist/types/packages/kernel/src/nav-flight.d.ts +6 -0
  231. package/dist/types/packages/kernel/src/tray.d.ts +155 -0
  232. package/dist/types/packages/objects/src/board/board-pass.d.ts +180 -0
  233. package/dist/types/packages/objects/src/board/board-pen.d.ts +36 -0
  234. package/dist/types/packages/objects/src/board/board.d.ts +104 -0
  235. package/dist/types/packages/objects/src/board/data.d.ts +31 -0
  236. package/dist/types/packages/objects/src/board/history.d.ts +33 -0
  237. package/dist/types/packages/objects/src/board/kind.d.ts +208 -0
  238. package/dist/types/packages/objects/src/board/layout.d.ts +102 -0
  239. package/dist/types/packages/objects/src/board/object.d.ts +7 -0
  240. package/dist/types/packages/objects/src/board/pen.d.ts +71 -0
  241. package/dist/types/packages/objects/src/board/shaders.d.ts +36 -0
  242. package/dist/types/packages/objects/src/board/stroke.d.ts +99 -0
  243. package/dist/types/packages/objects/src/board/theme.d.ts +150 -0
  244. package/dist/types/packages/objects/src/calendar/data.d.ts +97 -0
  245. package/dist/types/packages/objects/src/calendar/events.d.ts +58 -0
  246. package/dist/types/packages/objects/src/calendar/hand.d.ts +53 -0
  247. package/dist/types/packages/objects/src/calendar/host/input.d.ts +67 -0
  248. package/dist/types/packages/objects/src/calendar/host/print.d.ts +9 -0
  249. package/dist/types/packages/objects/src/calendar/kind.d.ts +297 -0
  250. package/dist/types/packages/objects/src/calendar/law.d.ts +151 -0
  251. package/dist/types/packages/objects/src/calendar/layout.d.ts +47 -0
  252. package/dist/types/packages/objects/src/calendar/month.d.ts +75 -0
  253. package/dist/types/packages/objects/src/calendar/object.d.ts +45 -0
  254. package/dist/types/packages/objects/src/calendar/pad.d.ts +42 -0
  255. package/dist/types/packages/objects/src/calendar/pass.d.ts +229 -0
  256. package/dist/types/packages/objects/src/calendar/print.d.ts +87 -0
  257. package/dist/types/packages/objects/src/calendar/printing.d.ts +80 -0
  258. package/dist/types/packages/objects/src/calendar/roll.d.ts +45 -0
  259. package/dist/types/packages/objects/src/calendar/shaders.d.ts +12 -0
  260. package/dist/types/packages/objects/src/calendar/sheet.d.ts +43 -0
  261. package/dist/types/packages/objects/src/calendar/tiles.d.ts +67 -0
  262. package/dist/types/packages/objects/src/calendar/turn.d.ts +73 -0
  263. package/dist/types/packages/objects/src/calendar/writing.d.ts +42 -0
  264. package/dist/types/packages/objects/src/index.d.ts +22 -0
  265. package/dist/types/packages/objects/src/kinds.d.ts +24 -0
  266. package/dist/types/packages/objects/src/minimat/inside.d.ts +17 -0
  267. package/dist/types/packages/objects/src/minimat/kind.d.ts +51 -0
  268. package/dist/types/packages/objects/src/minimat/layout.d.ts +83 -0
  269. package/dist/types/packages/objects/src/minimat/minimat.d.ts +179 -0
  270. package/dist/types/packages/objects/src/minimat/object.d.ts +8 -0
  271. package/dist/types/packages/objects/src/minimat/pass.d.ts +61 -0
  272. package/dist/types/packages/objects/src/minimat/shaders.d.ts +10 -0
  273. package/dist/types/packages/objects/src/minimat/theme.d.ts +98 -0
  274. package/dist/types/packages/objects/src/notebook/ink.d.ts +70 -0
  275. package/dist/types/packages/objects/src/notebook/kind.d.ts +236 -0
  276. package/dist/types/packages/objects/src/notebook/law.d.ts +129 -0
  277. package/dist/types/packages/objects/src/notebook/layout.d.ts +46 -0
  278. package/dist/types/packages/objects/src/notebook/leaf.d.ts +44 -0
  279. package/dist/types/packages/objects/src/notebook/mesh.d.ts +20 -0
  280. package/dist/types/packages/objects/src/notebook/motion.d.ts +107 -0
  281. package/dist/types/packages/objects/src/notebook/object.d.ts +8 -0
  282. package/dist/types/packages/objects/src/notebook/pages.d.ts +56 -0
  283. package/dist/types/packages/objects/src/notebook/pass.d.ts +197 -0
  284. package/dist/types/packages/objects/src/notebook/pick.d.ts +30 -0
  285. package/dist/types/packages/objects/src/notebook/raster.d.ts +28 -0
  286. package/dist/types/packages/objects/src/notebook/shaders.d.ts +11 -0
  287. package/dist/types/packages/objects/src/notebook/shape.d.ts +155 -0
  288. package/dist/types/packages/objects/src/notebook/theme.d.ts +76 -0
  289. package/dist/types/packages/objects/src/palette.d.ts +577 -0
  290. package/dist/types/packages/objects/src/paper/host/body.d.ts +30 -0
  291. package/dist/types/packages/objects/src/paper/kind.d.ts +81 -0
  292. package/dist/types/packages/objects/src/paper/layout.d.ts +73 -0
  293. package/dist/types/packages/objects/src/paper/object.d.ts +31 -0
  294. package/dist/types/packages/objects/src/paper/pages.d.ts +43 -0
  295. package/dist/types/packages/objects/src/paper/paper-pass.d.ts +86 -0
  296. package/dist/types/packages/objects/src/paper/paper.d.ts +117 -0
  297. package/dist/types/packages/objects/src/paper/shaders.d.ts +18 -0
  298. package/dist/types/packages/objects/src/paper/theme.d.ts +58 -0
  299. package/dist/types/packages/objects/src/paper/typing.d.ts +51 -0
  300. package/dist/types/packages/objects/src/paper/writing.d.ts +161 -0
  301. package/dist/types/packages/objects/src/photo/carry.d.ts +33 -0
  302. package/dist/types/packages/objects/src/photo/kind.d.ts +136 -0
  303. package/dist/types/packages/objects/src/photo/layout.d.ts +39 -0
  304. package/dist/types/packages/objects/src/photo/object.d.ts +5 -0
  305. package/dist/types/packages/objects/src/photo/photo-pass.d.ts +104 -0
  306. package/dist/types/packages/objects/src/photo/photo.d.ts +262 -0
  307. package/dist/types/packages/objects/src/photo/pictures.d.ts +152 -0
  308. package/dist/types/packages/objects/src/photo/sample.d.ts +9 -0
  309. package/dist/types/packages/objects/src/photo/shaders.d.ts +18 -0
  310. package/dist/types/packages/objects/src/preset.d.ts +44 -0
  311. package/dist/types/packages/objects/src/shaders.d.ts +3 -0
  312. package/dist/types/packages/objects/src/shaders.gen.d.ts +21 -0
  313. package/dist/types/packages/react/src/canvas-hooks.d.ts +12 -0
  314. package/dist/types/packages/react/src/desk.d.ts +56 -0
  315. package/dist/types/packages/react/src/engine-context.d.ts +2 -2
  316. package/dist/types/packages/react/src/frame-preview-boundary.d.ts +19 -0
  317. package/dist/types/packages/react/src/hooks.d.ts +9 -14
  318. package/dist/types/packages/react/src/index.d.ts +16 -9
  319. package/dist/types/packages/react/src/keymap.d.ts +21 -2
  320. package/dist/types/packages/react/src/selection-menu.d.ts +171 -0
  321. package/dist/types/packages/react/src/tray-bar.d.ts +124 -0
  322. package/package.json +64 -31
  323. package/dist/chunk-2TNVB2ON.js +0 -1163
  324. package/dist/chunk-2TNVB2ON.js.map +0 -1
  325. package/dist/chunk-OR5FNVUE.js.map +0 -1
  326. package/dist/chunk-Q665T4L7.js +0 -681
  327. package/dist/chunk-Q665T4L7.js.map +0 -1
  328. package/dist/chunk-VGVDJZSP.js.map +0 -1
  329. package/dist/ground.js +0 -1108
  330. package/dist/ground.js.map +0 -1
  331. package/dist/r3f.js +0 -1644
  332. package/dist/r3f.js.map +0 -1
  333. package/dist/types/packages/core/src/input/measure-queue.d.ts +0 -30
  334. package/dist/types/packages/core/src/settings/ground-config.d.ts +0 -101
  335. package/dist/types/packages/core/src/systems/measure-ingest.d.ts +0 -26
  336. package/dist/types/packages/devtools/src/gl-panel.d.ts +0 -69
  337. package/dist/types/packages/dom/src/measure-adapter.d.ts +0 -31
  338. package/dist/types/packages/dom/src/measure-wiring.d.ts +0 -49
  339. package/dist/types/packages/dom/src/planes.d.ts +0 -33
  340. package/dist/types/packages/dom/src/reflectors/chrome.d.ts +0 -33
  341. package/dist/types/packages/dom/src/reflectors/dom-widgets.d.ts +0 -59
  342. package/dist/types/packages/dom/src/reflectors/graybox.d.ts +0 -31
  343. package/dist/types/packages/dom/src/reflectors/plane-transform.d.ts +0 -38
  344. package/dist/types/packages/ground/src/index.d.ts +0 -69
  345. package/dist/types/packages/ground/src/layer.d.ts +0 -40
  346. package/dist/types/packages/ground/src/pass.d.ts +0 -41
  347. package/dist/types/packages/ground/src/passes/grid-contract.d.ts +0 -28
  348. package/dist/types/packages/ground/src/passes/grid-magnet-pass.d.ts +0 -2
  349. package/dist/types/packages/ground/src/passes/grid-magnet.d.ts +0 -31
  350. package/dist/types/packages/ground/src/passes/grid.d.ts +0 -10
  351. package/dist/types/packages/ground/src/passes/guides-collect.d.ts +0 -14
  352. package/dist/types/packages/ground/src/passes/guides.d.ts +0 -3
  353. package/dist/types/packages/ground/src/passes/magnet-collect.d.ts +0 -63
  354. package/dist/types/packages/ground/src/passes/soup-collect.d.ts +0 -35
  355. package/dist/types/packages/ground/src/passes/soup-mesh.d.ts +0 -8
  356. package/dist/types/packages/ground/src/passes/wires-collect.d.ts +0 -35
  357. package/dist/types/packages/ground/src/passes/wires.d.ts +0 -10
  358. package/dist/types/packages/ground/src/poles.d.ts +0 -47
  359. package/dist/types/packages/ground/src/renderer.d.ts +0 -15
  360. package/dist/types/packages/ice/src/ground.d.ts +0 -1
  361. package/dist/types/packages/ice/src/r3f.d.ts +0 -1
  362. package/dist/types/packages/kernel/src/eviction.d.ts +0 -23
  363. package/dist/types/packages/kernel/src/zoom-bands.d.ts +0 -19
  364. package/dist/types/packages/r3f/src/bridge.d.ts +0 -129
  365. package/dist/types/packages/r3f/src/composite-material.d.ts +0 -26
  366. package/dist/types/packages/r3f/src/compositor-pass.d.ts +0 -105
  367. package/dist/types/packages/r3f/src/dev-write-trap.d.ts +0 -30
  368. package/dist/types/packages/r3f/src/gl-root.d.ts +0 -96
  369. package/dist/types/packages/r3f/src/gl-router.d.ts +0 -70
  370. package/dist/types/packages/r3f/src/index.d.ts +0 -17
  371. package/dist/types/packages/r3f/src/island-state.d.ts +0 -112
  372. package/dist/types/packages/r3f/src/island.d.ts +0 -13
  373. package/dist/types/packages/r3f/src/pool.d.ts +0 -56
  374. package/dist/types/packages/r3f/src/preview-capture.d.ts +0 -19
  375. package/dist/types/packages/r3f/src/resource-registry.d.ts +0 -30
  376. package/dist/types/packages/r3f/src/self-sustain.d.ts +0 -39
  377. package/dist/types/packages/r3f/src/use-island-frame.d.ts +0 -39
  378. package/dist/types/packages/react/src/infinite-canvas.d.ts +0 -140
  379. package/dist/types/packages/react/src/preview-snapshots.d.ts +0 -17
  380. package/dist/types/packages/react/src/widget-preview.d.ts +0 -14
  381. package/dist/types/packages/react/src/widget-root.d.ts +0 -33
@@ -0,0 +1,125 @@
1
+ /**
2
+ * Governed Canvas SDK logic definitions.
3
+ *
4
+ * These handles are immutable declarations. Like WidgetType/Tool/CanvasType,
5
+ * their process registries are authoring-time identity stores only; an
6
+ * EngineCatalog decides which declarations exist in one engine.
7
+ */
8
+ import type { Component, Entity, Relation, Resource, Tag } from "@vibecook/strata-ecs";
9
+ import type { CanvasSessionValue } from "./session";
10
+ export type CanvasReadFacet = Component | Tag | Relation | Resource;
11
+ export interface CanvasRuntimeChanges {
12
+ readonly full: boolean;
13
+ readonly changed: readonly Entity[];
14
+ readonly removed: readonly Entity[];
15
+ }
16
+ export interface CanvasScopedReader {
17
+ readonly frame: Entity;
18
+ readonly children: readonly Entity[];
19
+ read<S>(entity: Entity, component: Component<S>): S;
20
+ get<S>(entity: Entity, component: Component<S>): S | undefined;
21
+ hasTag(entity: Entity, tag: Tag): boolean;
22
+ getRelation(entity: Entity, relation: Relation): Entity | undefined;
23
+ getRelations(entity: Entity, relation: Relation): readonly Entity[];
24
+ getReverse(entity: Entity, relation: Relation): readonly Entity[];
25
+ getResource<S>(resource: Resource<S>): S | undefined;
26
+ }
27
+ export interface CanvasRuntimeExtensionContext extends CanvasScopedReader {
28
+ readonly session: CanvasSessionValue & {
29
+ readonly state: "attached";
30
+ };
31
+ readonly changes: CanvasRuntimeChanges;
32
+ readonly signal: AbortSignal;
33
+ /** Set one declared runtime-only output on the frame owner or a direct child. */
34
+ set<S>(entity: Entity, component: Component<S>, value: S): void;
35
+ /** Remove one declared runtime-only output owned by this extension. */
36
+ remove(entity: Entity, component: Component): void;
37
+ }
38
+ export interface CanvasRuntimeExtensionDef {
39
+ readonly id: string;
40
+ /** Runtime/cache identity only; never a document requirement. */
41
+ readonly version: number;
42
+ readonly phase?: "derive";
43
+ readonly after?: readonly string[];
44
+ readonly before?: readonly string[];
45
+ readonly reads?: readonly CanvasReadFacet[];
46
+ readonly writesRuntime?: readonly Component[];
47
+ readonly budgetMs?: number;
48
+ run(context: CanvasRuntimeExtensionContext): void;
49
+ }
50
+ export interface CanvasRuntimeExtension extends CanvasRuntimeExtensionDef {
51
+ readonly __canvasRuntimeExtension: true;
52
+ readonly phase: "derive";
53
+ readonly after: readonly string[];
54
+ readonly before: readonly string[];
55
+ readonly reads: readonly CanvasReadFacet[];
56
+ readonly writesRuntime: readonly Component[];
57
+ }
58
+ export interface FrameBehaviorWriteContext extends CanvasScopedReader {
59
+ readonly canvasTypeId: string;
60
+ /** Absolute, change-only component write queued into this behavior's transaction. */
61
+ set<S>(entity: Entity, component: Component<S>, value: S): void;
62
+ remove(entity: Entity, component: Component): void;
63
+ setRelation(entity: Entity, relation: Relation, target: Entity): void;
64
+ removeRelation(entity: Entity, relation: Relation, target?: Entity): void;
65
+ }
66
+ export interface FrameBehaviorDef {
67
+ readonly id: string;
68
+ readonly version: number;
69
+ readonly phase?: "postSettle";
70
+ readonly after?: readonly string[];
71
+ readonly before?: readonly string[];
72
+ readonly reads?: readonly CanvasReadFacet[];
73
+ readonly writesDurable?: readonly Component[];
74
+ readonly writesRelations?: readonly Relation[];
75
+ readonly budget?: {
76
+ readonly entities?: number;
77
+ readonly ms?: number;
78
+ };
79
+ run(context: FrameBehaviorWriteContext): void;
80
+ }
81
+ export interface FrameBehavior extends FrameBehaviorDef {
82
+ readonly __frameBehavior: true;
83
+ readonly phase: "postSettle";
84
+ readonly after: readonly string[];
85
+ readonly before: readonly string[];
86
+ readonly reads: readonly CanvasReadFacet[];
87
+ readonly writesDurable: readonly Component[];
88
+ readonly writesRelations: readonly Relation[];
89
+ readonly budget: {
90
+ readonly entities: number;
91
+ readonly ms: number;
92
+ };
93
+ }
94
+ export type ExistingPlacementPosture = "preserve-and-warn" | "repair";
95
+ export interface CanvasSemanticMigrationContext extends CanvasScopedReader {
96
+ readonly canvasTypeId: string;
97
+ readonly from: number;
98
+ readonly to: number;
99
+ set<S>(entity: Entity, component: Component<S>, value: S): void;
100
+ remove(entity: Entity, component: Component): void;
101
+ setRelation(entity: Entity, relation: Relation, target: Entity): void;
102
+ removeRelation(entity: Entity, relation: Relation, target?: Entity): void;
103
+ /** Explicit frame-ownership repair; target must be a live valid frame. */
104
+ reparent(entity: Entity, targetFrame: Entity): void;
105
+ }
106
+ export interface CanvasSemanticMigration {
107
+ readonly from: number;
108
+ readonly to: number;
109
+ readonly reads?: readonly CanvasReadFacet[];
110
+ readonly writes?: readonly (Component | Relation)[];
111
+ readonly existingPlacement: ExistingPlacementPosture;
112
+ migrate(context: CanvasSemanticMigrationContext): void;
113
+ }
114
+ export declare const canvasRuntimeExtensions: {
115
+ get(id: string): CanvasRuntimeExtension | undefined;
116
+ all(): readonly CanvasRuntimeExtension[];
117
+ };
118
+ export declare const frameBehaviors: {
119
+ get(id: string): FrameBehavior | undefined;
120
+ all(): readonly FrameBehavior[];
121
+ };
122
+ export declare function defineCanvasRuntimeExtension(def: CanvasRuntimeExtensionDef): CanvasRuntimeExtension;
123
+ export declare function defineFrameBehavior(def: FrameBehaviorDef): FrameBehavior;
124
+ /** Existing pack-gate namespace reserved for semantic frame behavior code. */
125
+ export declare function frameBehaviorPackId(id: string): string;
@@ -0,0 +1,16 @@
1
+ /** View-independent, dirt-routed semantic FrameBehavior host. */
2
+ import { type World } from "@vibecook/strata-ecs";
3
+ import type { DocSession } from "../doc/doc-kit";
4
+ import type { Engine } from "../engine/engine";
5
+ import type { EngineCatalog } from "./engine-catalog";
6
+ export interface FrameBehaviorHost {
7
+ isCanvasWritable(canvasTypeId: string): boolean;
8
+ dispose(): void;
9
+ }
10
+ export declare function installFrameBehaviors(opts: {
11
+ readonly world: World;
12
+ readonly engine: Engine;
13
+ readonly catalog: EngineCatalog;
14
+ readonly session: () => DocSession | undefined;
15
+ readonly onAvailabilityChange?: () => void;
16
+ }): FrameBehaviorHost;
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Demand-driven, immutable semantic previews for container frames.
3
+ *
4
+ * This store intentionally has no timer and no eager frame index. A frame pays
5
+ * for observers and projection work only while at least one consumer is
6
+ * subscribed. Projection authors receive declared, bounded plain reads rather
7
+ * than a World or document handle.
8
+ */
9
+ import { type Entity, type World } from "@vibecook/strata-ecs";
10
+ import type { DurableStore } from "@vibecook/strata-ecs/durable";
11
+ import type { CanvasDiagnostic } from "./diagnostics";
12
+ import type { EngineCatalog } from "./engine-catalog";
13
+ import { type CanvasRect } from "./frame-view";
14
+ export declare const FRAME_PREVIEW_DEFAULT_CHILDREN = 128;
15
+ export declare const FRAME_PREVIEW_DEFAULT_BYTES: number;
16
+ export declare const FRAME_PREVIEW_MAX_CHILDREN = 256;
17
+ export declare const FRAME_PREVIEW_MAX_BYTES: number;
18
+ /** Smallest budget that can contain the mandatory immutable preview envelope. */
19
+ export declare const FRAME_PREVIEW_MIN_BYTES = 512;
20
+ export type FramePreviewValidity = "valid" | "incompatible" | "malformed-parent";
21
+ export interface FramePreviewChild {
22
+ readonly key: string;
23
+ readonly widgetType: string;
24
+ readonly rect: CanvasRect;
25
+ readonly order: number;
26
+ readonly validity: FramePreviewValidity;
27
+ }
28
+ export interface FramePreviewSnapshot {
29
+ readonly revision: number;
30
+ readonly frameKey: string;
31
+ readonly bounds: CanvasRect;
32
+ readonly resolvedView: {
33
+ readonly x: number;
34
+ readonly y: number;
35
+ readonly zoom: number;
36
+ };
37
+ /** Destination viewport used by the shared arrival-camera solve. */
38
+ readonly viewport: {
39
+ readonly width: number;
40
+ readonly height: number;
41
+ };
42
+ readonly portal: CanvasRect;
43
+ readonly totalChildren: number;
44
+ readonly truncated: boolean;
45
+ readonly children: readonly FramePreviewChild[];
46
+ readonly facets: Readonly<Record<string, unknown>>;
47
+ }
48
+ export interface FramePreviewBudgets {
49
+ readonly children?: number;
50
+ readonly bytes?: number;
51
+ }
52
+ export interface FramePreviewStats {
53
+ readonly activeFrames: number;
54
+ readonly observers: number;
55
+ readonly rebuilds: number;
56
+ readonly projectionRuns: number;
57
+ }
58
+ export interface FramePreviewStore {
59
+ /** Pure snapshot read. It never arms observers or performs a projection. */
60
+ snapshot(frame: Entity): FramePreviewSnapshot;
61
+ /** First subscriber activates; the last exact inverse removes every observer. */
62
+ subscribe(frame: Entity, onChange: () => void): () => void;
63
+ /** Re-arm active entries after a document import/reset invalidates reactivity. */
64
+ rebind(): void;
65
+ stats(): FramePreviewStats;
66
+ dispose(): void;
67
+ }
68
+ export interface FramePreviewStoreOpts {
69
+ readonly world: World;
70
+ readonly catalog: EngineCatalog;
71
+ readonly session: () => {
72
+ readonly documentEpoch: number;
73
+ readonly store?: Pick<DurableStore, "keyOf">;
74
+ };
75
+ readonly diagnostics: () => readonly CanvasDiagnostic[];
76
+ readonly budgets?: FramePreviewBudgets;
77
+ readonly onFault?: (projectionId: string, error: unknown) => void;
78
+ }
79
+ export declare function createFramePreviewStore(opts: FramePreviewStoreOpts): FramePreviewStore;
@@ -0,0 +1,38 @@
1
+ /** Declared, bounded custom facets for semantic container previews. */
2
+ import type { Component, Relation } from "@vibecook/strata-ecs";
3
+ export interface FrameProjectionChildRef {
4
+ readonly key: string;
5
+ readonly widgetType: string;
6
+ readonly order: number;
7
+ }
8
+ export interface FrameProjectionRelationRow {
9
+ readonly source: string;
10
+ readonly target: string;
11
+ }
12
+ export interface FrameProjectionContext {
13
+ readonly frameKey: string;
14
+ readonly children: readonly FrameProjectionChildRef[];
15
+ get<S>(childKey: string, component: Component<S>): S | undefined;
16
+ relations(relation: Relation): readonly FrameProjectionRelationRow[];
17
+ }
18
+ export interface FrameProjectionDef {
19
+ readonly id: string;
20
+ readonly version?: number;
21
+ readonly reads?: readonly Component[];
22
+ readonly relations?: readonly Relation[];
23
+ project(context: FrameProjectionContext): unknown;
24
+ }
25
+ export interface FrameProjection extends FrameProjectionDef {
26
+ readonly __frameProjection: true;
27
+ readonly version: number;
28
+ readonly reads: readonly Component[];
29
+ readonly relations: readonly Relation[];
30
+ }
31
+ export interface CanvasPreviewDeclaration {
32
+ readonly projection?: FrameProjection;
33
+ }
34
+ export declare const frameProjections: {
35
+ get(id: string): FrameProjection | undefined;
36
+ all(): readonly FrameProjection[];
37
+ };
38
+ export declare function defineFrameProjection(def: FrameProjectionDef): FrameProjection;
@@ -0,0 +1,36 @@
1
+ /** Shared portal geometry and frame-arrival view resolution. */
2
+ import type { Entity, World } from "@vibecook/strata-ecs";
3
+ import { type CameraState } from "../../../kernel/src/index";
4
+ import type { CanvasType } from "./define-canvas-type";
5
+ import type { WidgetContainerEntry } from "../widget/define-widget";
6
+ export interface CanvasRect {
7
+ readonly x: number;
8
+ readonly y: number;
9
+ readonly width: number;
10
+ readonly height: number;
11
+ }
12
+ export interface ResolvedPortal {
13
+ readonly local: CanvasRect;
14
+ readonly parent: CanvasRect;
15
+ /** False means authored insets were invalid at the effective instance size. */
16
+ readonly authored: boolean;
17
+ }
18
+ export interface ResolvedFrameView {
19
+ readonly bounds: CanvasRect;
20
+ readonly camera: CameraState;
21
+ readonly totalChildren: number;
22
+ }
23
+ export interface FrameChildrenOpts {
24
+ /** When supplied, malformed descendants inherit the nearest container frame. */
25
+ readonly isContainer?: (entity: Entity) => boolean;
26
+ }
27
+ /**
28
+ * Converged effective frame order. Without a container predicate this is the
29
+ * ordinary direct sequence. Compatibility callers supply the engine-scoped
30
+ * predicate to include malformed descendants and stop at nested frames.
31
+ */
32
+ export declare function resolveFrameChildren(world: World, frame: Entity, opts?: FrameChildrenOpts): readonly Entity[];
33
+ /** One source for preview clipping and navigation/transition portal math. */
34
+ export declare function resolvePortal(world: World, container: Entity, binding: WidgetContainerEntry | undefined): ResolvedPortal | undefined;
35
+ /** One source for arrival camera and semantic preview projection. */
36
+ export declare function resolveFrameView(world: World, frame: Entity, canvas: CanvasType | undefined, opts?: FrameChildrenOpts): ResolvedFrameView;
@@ -0,0 +1,14 @@
1
+ /** CanvasType semantic migrations — bounded, frame-scoped, and view-independent. */
2
+ import { type World } from "@vibecook/strata-ecs";
3
+ import type { DurableStore } from "@vibecook/strata-ecs/durable";
4
+ import type { DocVersionReport } from "../doc/version-gate";
5
+ import type { EngineCatalog } from "./engine-catalog";
6
+ export interface CanvasMigrationOutcome {
7
+ readonly migrated: readonly string[];
8
+ readonly skipped: readonly string[];
9
+ }
10
+ /**
11
+ * Run semantic steps after structural/prefab normalization. Each step plans
12
+ * every bound frame before writing, then stamps its reached version last.
13
+ */
14
+ export declare function runCanvasSemanticMigrations(store: DurableStore, world: World, catalog: EngineCatalog, initialReport: DocVersionReport): CanvasMigrationOutcome;
@@ -0,0 +1,30 @@
1
+ /** One semantic placement authority for facade mutation and typed drop paths. */
2
+ import type { Entity, World } from "@vibecook/strata-ecs";
3
+ import type { EngineCatalog } from "./engine-catalog";
4
+ export type PlacementReason = "ok" | "unknown-widget" | "pack-disabled" | "target-dead" | "target-not-frame" | "unknown-canvas" | "canvas-pack-disabled" | "frame-behavior-unavailable" | "widget-not-allowed" | "ingress-rejected" | "cycle" | "malformed-parent" | "depth-limit";
5
+ export type PlacementDecision = {
6
+ readonly ok: true;
7
+ readonly canvasTypeId: string;
8
+ readonly targetFrame: Entity;
9
+ } | {
10
+ readonly ok: false;
11
+ readonly reason: Exclude<PlacementReason, "ok">;
12
+ readonly message: string;
13
+ };
14
+ export interface PlacementAuthority {
15
+ canPlace(widgetTypeId: string, targetFrame: Entity): PlacementDecision;
16
+ canIngress(widgetTypeId: string, targetContainer: Entity): PlacementDecision;
17
+ validateReparent(entity: Entity, targetFrame: Entity): PlacementDecision;
18
+ assertPlace(widgetTypeId: string, targetFrame: Entity, operation: string): void;
19
+ assertReparent(entity: Entity, targetFrame: Entity, operation: string): void;
20
+ }
21
+ export interface PlacementAuthorityOpts {
22
+ readonly world: World;
23
+ readonly catalog: EngineCatalog;
24
+ readonly rootCanvasTypeId: () => string | undefined;
25
+ readonly packEnabled?: (id: string, version: number) => boolean;
26
+ /** False while a required semantic FrameBehavior is faulted/suspended. */
27
+ readonly canvasWritable?: (canvasTypeId: string) => boolean;
28
+ readonly maxDepth?: number;
29
+ }
30
+ export declare function createPlacementAuthority(opts: PlacementAuthorityOpts): PlacementAuthority;
@@ -0,0 +1,100 @@
1
+ /**
2
+ * Epoch-keyed presentation retention for cut-first nested-canvas navigation.
3
+ *
4
+ * Core owns only timing, identity, and exact release. DOM/GL/Ground adapters
5
+ * synchronously capture their already-presented state in `prepare`; they never
6
+ * receive a World and cannot delay or veto the authority cut.
7
+ */
8
+ import type { Entity, World } from "@vibecook/strata-ecs";
9
+ import type { CameraState, PortalAffine } from "../../../kernel/src/index";
10
+ import type { Engine } from "../engine/engine";
11
+ /**
12
+ * The ONE presentation plane (design-015 §1, D5b). Until D5b this was
13
+ * `"ground" | "dom" | "gl"` — a DOM widget needed the `dom` plane's adapter to
14
+ * prepare its outgoing hosts and a GL island the `gl` plane's — and
15
+ * `presentationPlanesOf(widget)` said which a type needed. Everything under the
16
+ * camera is the desk's now, so a flight prepares `ground` and nothing else; the
17
+ * type stays a union of one so the coordinator's plane ownership keeps its shape.
18
+ */
19
+ export type PresentationPlane = "ground";
20
+ export type PresentationReleaseReason = "settled" | "interrupted" | "superseded" | "detached" | "fault" | "timeout" | "cancelled";
21
+ export interface FrameSwitchDescriptor {
22
+ readonly kind: "enter" | "exit";
23
+ readonly documentEpoch: number;
24
+ readonly fromFrame: Entity;
25
+ readonly toFrame: Entity;
26
+ readonly fromTypeId: string;
27
+ readonly toTypeId: string;
28
+ readonly fromCamera: CameraState;
29
+ readonly toCamera: CameraState;
30
+ readonly affine: PortalAffine;
31
+ /** Geometry and caller policy permit motion; adapter completeness is evaluated later. */
32
+ readonly requestedMotion: boolean;
33
+ /** Cross-program motion may proceed only when every required plane prepared. */
34
+ readonly requiresFullT2: boolean;
35
+ readonly requiredPlanes: readonly PresentationPlane[];
36
+ }
37
+ /** Geometry/identity assembled by core navigation before policy adds plane requirements. */
38
+ export type FrameSwitchRequest = Omit<FrameSwitchDescriptor, "requiresFullT2" | "requiredPlanes">;
39
+ export type PresentationMotion = "flight" | "crossfade" | "fast-fade";
40
+ export interface PresentationTransitionFrame {
41
+ readonly epoch: number;
42
+ readonly descriptor: FrameSwitchDescriptor;
43
+ readonly motion: PresentationMotion;
44
+ readonly camera: CameraState;
45
+ readonly outgoingCamera: CameraState;
46
+ readonly progress: number;
47
+ readonly outgoingOpacity: number;
48
+ readonly incomingOpacity: number;
49
+ readonly frozen: boolean;
50
+ }
51
+ export interface PresentationRetainer {
52
+ update(frame: PresentationTransitionFrame): void;
53
+ /** Exact and idempotent on the adapter side. */
54
+ release(reason: PresentationReleaseReason): void;
55
+ }
56
+ export interface PresentationTransitionAdapter {
57
+ readonly id: string;
58
+ readonly plane: PresentationPlane;
59
+ /** `null` means this plane has no outgoing visual but prepared successfully. */
60
+ prepare(descriptor: FrameSwitchDescriptor): PresentationRetainer | null;
61
+ }
62
+ export interface PreparedFrameSwitch {
63
+ readonly complete: boolean;
64
+ readonly allowFlight: boolean;
65
+ commit(): void;
66
+ /**
67
+ * Release a preparation that will not commit. `cancelled` is reserved for a
68
+ * rollback before navigation authority changes; callers that already
69
+ * mutated authority must pass the actual terminal reason (normally
70
+ * `fault`).
71
+ */
72
+ cancel(reason?: PresentationReleaseReason): void;
73
+ }
74
+ export interface PresentationTransitionStats {
75
+ readonly active: boolean;
76
+ readonly epoch: number;
77
+ readonly motion?: PresentationMotion;
78
+ readonly retainers: number;
79
+ readonly adapters: number;
80
+ readonly reducedMotion: boolean;
81
+ }
82
+ export interface PresentationTransitionCoordinator {
83
+ register(adapter: PresentationTransitionAdapter): () => void;
84
+ /**
85
+ * The id of the adapter that owns `plane`, or `undefined` when the plane is
86
+ * free (D-C4.6). A plane is single-owner and {@link register} THROWS on a
87
+ * second claim — inside a `useEffect` that unmounts the React tree — so a
88
+ * host that may be mounted twice on one engine asks here first.
89
+ */
90
+ ownerOf(plane: PresentationPlane): string | undefined;
91
+ prepare(descriptor: FrameSwitchDescriptor): PreparedFrameSwitch;
92
+ abort(reason?: PresentationReleaseReason): void;
93
+ setReducedMotion(value: boolean): void;
94
+ reducedMotion(): boolean;
95
+ stats(): PresentationTransitionStats;
96
+ dispose(): void;
97
+ }
98
+ export declare function createPresentationTransitionCoordinator(world: World, engine: Engine, opts?: {
99
+ readonly onFault?: (adapterId: string, error: unknown) => void;
100
+ }): PresentationTransitionCoordinator;
@@ -0,0 +1,16 @@
1
+ /** Current-frame CanvasRuntimeExtension dispatcher and fault/output governor. */
2
+ import { type World } from "@vibecook/strata-ecs";
3
+ import type { Engine } from "../engine/engine";
4
+ import type { CanvasSessionValue } from "./session";
5
+ import type { EngineCatalog } from "./engine-catalog";
6
+ export interface CanvasRuntimeExtensionHost {
7
+ /** Force output teardown at the synchronous authority cut. */
8
+ invalidate(): void;
9
+ dispose(): void;
10
+ }
11
+ export declare function installCanvasRuntimeExtensions(opts: {
12
+ readonly world: World;
13
+ readonly engine: Engine;
14
+ readonly catalog: EngineCatalog;
15
+ readonly session: () => CanvasSessionValue;
16
+ }): CanvasRuntimeExtensionHost;
@@ -0,0 +1,47 @@
1
+ /** Generation-safe local CanvasSession resource and its engine-owned writer. */
2
+ import { type Entity, type World } from "@vibecook/strata-ecs";
3
+ export declare const CanvasSession: import("@vibecook/strata-ecs").Resource<import("@vibecook/strata-ecs").ValueOf<{
4
+ readonly state: import("@vibecook/strata-ecs").FieldSpec<import("@vibecook/strata-ecs").EnumType<"detached" | "attached">, true>;
5
+ readonly documentEpoch: import("@vibecook/strata-ecs").FieldSpec<"u32", true>;
6
+ readonly epoch: import("@vibecook/strata-ecs").FieldSpec<"u32", true>;
7
+ /** Ignored while detached. Zero is a sentinel, never a retained entity API. */
8
+ readonly frame: import("@vibecook/strata-ecs").FieldSpec<"eid", true>;
9
+ readonly typeId: import("@vibecook/strata-ecs").FieldSpec<"string", true>;
10
+ readonly depth: import("@vibecook/strata-ecs").FieldSpec<"u8", true>;
11
+ }>, {
12
+ readonly state: import("@vibecook/strata-ecs").FieldSpec<import("@vibecook/strata-ecs").EnumType<"detached" | "attached">, true>;
13
+ readonly documentEpoch: import("@vibecook/strata-ecs").FieldSpec<"u32", true>;
14
+ readonly epoch: import("@vibecook/strata-ecs").FieldSpec<"u32", true>;
15
+ /** Ignored while detached. Zero is a sentinel, never a retained entity API. */
16
+ readonly frame: import("@vibecook/strata-ecs").FieldSpec<"eid", true>;
17
+ readonly typeId: import("@vibecook/strata-ecs").FieldSpec<"string", true>;
18
+ readonly depth: import("@vibecook/strata-ecs").FieldSpec<"u8", true>;
19
+ }>;
20
+ /** Gesture-start latch used to reject commits after a document/nav switch. */
21
+ export declare const CanvasIntentScope: import("@vibecook/strata-ecs").Component<import("@vibecook/strata-ecs").ValueOf<{
22
+ readonly documentEpoch: import("@vibecook/strata-ecs").FieldSpec<"u32", true>;
23
+ readonly canvasEpoch: import("@vibecook/strata-ecs").FieldSpec<"u32", true>;
24
+ readonly frame: import("@vibecook/strata-ecs").FieldSpec<"eid", true>;
25
+ }>, {
26
+ readonly documentEpoch: import("@vibecook/strata-ecs").FieldSpec<"u32", true>;
27
+ readonly canvasEpoch: import("@vibecook/strata-ecs").FieldSpec<"u32", true>;
28
+ readonly frame: import("@vibecook/strata-ecs").FieldSpec<"eid", true>;
29
+ }>;
30
+ export type CanvasSessionValue = {
31
+ readonly state: "detached" | "attached";
32
+ readonly documentEpoch: number;
33
+ readonly epoch: number;
34
+ readonly frame: Entity;
35
+ readonly typeId: string;
36
+ readonly depth: number;
37
+ };
38
+ export interface CanvasSessionController {
39
+ current(): CanvasSessionValue;
40
+ attach(frame: Entity, typeId: string): CanvasSessionValue;
41
+ detach(): CanvasSessionValue;
42
+ switchFrame(frame: Entity, typeId: string, depth: number): CanvasSessionValue;
43
+ bumpCapabilities(): CanvasSessionValue;
44
+ /** Re-publish closure state after world.reset() clears runtime resources. */
45
+ republish(): void;
46
+ }
47
+ export declare function createCanvasSessionController(world: World): CanvasSessionController;
@@ -103,31 +103,11 @@ export declare const WidgetBreakpoint: import("@vibecook/strata-ecs").Component<
103
103
  readonly w: import("@vibecook/strata-ecs").FieldSpec<"u16", true>;
104
104
  readonly h: import("@vibecook/strata-ecs").FieldSpec<"u16", true>;
105
105
  }>;
106
- /** Session rider on auto-sized widgets (ResizeObserver → queue → ingest; never committed). */
107
- export declare const MeasuredSize: import("@vibecook/strata-ecs").Component<import("@vibecook/strata-ecs").ValueOf<{
108
- readonly w: import("@vibecook/strata-ecs").FieldSpec<"f32", true>;
109
- readonly h: import("@vibecook/strata-ecs").FieldSpec<"f32", true>;
110
- }>, {
111
- readonly w: import("@vibecook/strata-ecs").FieldSpec<"f32", true>;
112
- readonly h: import("@vibecook/strata-ecs").FieldSpec<"f32", true>;
113
- }>;
114
- /** Selection outline rect. */
115
- export declare const SelectionBox: import("@vibecook/strata-ecs").Component<import("@vibecook/strata-ecs").ValueOf<{
116
- readonly x: import("@vibecook/strata-ecs").FieldSpec<"f64", true>;
117
- readonly y: import("@vibecook/strata-ecs").FieldSpec<"f64", true>;
118
- readonly w: import("@vibecook/strata-ecs").FieldSpec<"f32", true>;
119
- readonly h: import("@vibecook/strata-ecs").FieldSpec<"f32", true>;
120
- }>, {
121
- readonly x: import("@vibecook/strata-ecs").FieldSpec<"f64", true>;
122
- readonly y: import("@vibecook/strata-ecs").FieldSpec<"f64", true>;
123
- readonly w: import("@vibecook/strata-ecs").FieldSpec<"f32", true>;
124
- readonly h: import("@vibecook/strata-ecs").FieldSpec<"f32", true>;
125
- }>;
126
106
  /** A resize handle's anchor (the one chrome kind behaviors capture). */
127
107
  export declare const HandleSpec: import("@vibecook/strata-ecs").Component<import("@vibecook/strata-ecs").ValueOf<{
128
- readonly anchor: import("@vibecook/strata-ecs").EnumType<"s" | "w" | "nw" | "n" | "ne" | "e" | "se" | "sw">;
108
+ readonly anchor: import("@vibecook/strata-ecs").EnumType<"w" | "nw" | "n" | "ne" | "e" | "se" | "s" | "sw">;
129
109
  }>, {
130
- readonly anchor: import("@vibecook/strata-ecs").EnumType<"s" | "w" | "nw" | "n" | "ne" | "e" | "se" | "sw">;
110
+ readonly anchor: import("@vibecook/strata-ecs").EnumType<"w" | "nw" | "n" | "ne" | "e" | "se" | "s" | "sw">;
131
111
  }>;
132
112
  /** A snap guide line along one axis. `from == to` ⇒ full-viewport line (v1's full-canvas alignment look — design-003 §6). */
133
113
  export declare const GuideLine: import("@vibecook/strata-ecs").Component<import("@vibecook/strata-ecs").ValueOf<{
@@ -182,23 +162,32 @@ export declare const CursorVisual: import("@vibecook/strata-ecs").Component<impo
182
162
  }>;
183
163
  /** cursor → pointer or presence peer. */
184
164
  export declare const Follows: import("@vibecook/strata-ecs").Relation;
185
- /** chrome → its source (recognizer, selection). */
186
- export declare const VisualOf: import("@vibecook/strata-ecs").Relation;
187
165
  /** Depth of a nav entry (root = 0). */
188
166
  export declare const NavDepth: import("@vibecook/strata-ecs").Component<import("@vibecook/strata-ecs").ValueOf<{
189
167
  readonly d: import("@vibecook/strata-ecs").FieldSpec<"u8", true>;
190
168
  }>, {
191
169
  readonly d: import("@vibecook/strata-ecs").FieldSpec<"u8", true>;
192
170
  }>;
193
- /** Camera stored on a nav entry. */
171
+ /**
172
+ * Camera stored on a nav entry. `zoom` is f64 (D2b, design-015 §9): the return pose is a
173
+ * flight's ARRIVAL when one is driving (`enterContainer`'s settled-pose rule), and the arrival
174
+ * lives in f64 on the flight resource — an f32 cell here rounded it, and the exit then landed
175
+ * one ulp off the camera the desk had been dressed for.
176
+ */
194
177
  export declare const NavCamera: import("@vibecook/strata-ecs").Component<import("@vibecook/strata-ecs").ValueOf<{
195
178
  readonly x: import("@vibecook/strata-ecs").FieldSpec<"f64", true>;
196
179
  readonly y: import("@vibecook/strata-ecs").FieldSpec<"f64", true>;
197
- readonly zoom: import("@vibecook/strata-ecs").FieldSpec<"f32", true>;
180
+ readonly zoom: import("@vibecook/strata-ecs").FieldSpec<"f64", true>;
198
181
  }>, {
199
182
  readonly x: import("@vibecook/strata-ecs").FieldSpec<"f64", true>;
200
183
  readonly y: import("@vibecook/strata-ecs").FieldSpec<"f64", true>;
201
- readonly zoom: import("@vibecook/strata-ecs").FieldSpec<"f32", true>;
184
+ readonly zoom: import("@vibecook/strata-ecs").FieldSpec<"f64", true>;
185
+ }>;
186
+ /** Tool active in the departed frame, restored when this nav entry is popped. */
187
+ export declare const NavTool: import("@vibecook/strata-ecs").Component<import("@vibecook/strata-ecs").ValueOf<{
188
+ readonly id: import("@vibecook/strata-ecs").FieldSpec<"string", true>;
189
+ }>, {
190
+ readonly id: import("@vibecook/strata-ecs").FieldSpec<"string", true>;
202
191
  }>;
203
192
  /** nav entry → container widget. */
204
193
  export declare const NavFrame: import("@vibecook/strata-ecs").Relation;