@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,104 @@
1
+ import { type CameraState, type Viewport, type Lamp } from "../../../desk/src/kit/index";
2
+ /** The board's numbers (theme.ts `BOARD`) — the engine's unless a host tweaks them. */
3
+ export interface BoardLaw {
4
+ readonly spec: {
5
+ readonly width: number;
6
+ readonly height: number;
7
+ readonly frame: number;
8
+ readonly radius: number;
9
+ readonly thick: number;
10
+ readonly recess: number;
11
+ };
12
+ readonly lift: {
13
+ readonly height: number;
14
+ readonly scale: number;
15
+ };
16
+ readonly shadow: {
17
+ readonly penumbra: {
18
+ readonly sigma0: number;
19
+ readonly sigmaPerHeight: number;
20
+ readonly alpha: number;
21
+ };
22
+ readonly contact: {
23
+ readonly sigma: number;
24
+ readonly alpha: number;
25
+ readonly reach: number;
26
+ };
27
+ readonly slopeMax: number;
28
+ };
29
+ readonly focus: {
30
+ readonly pad: number;
31
+ readonly tray: number;
32
+ readonly minZoom: number;
33
+ readonly maxZoom: number;
34
+ readonly close: number;
35
+ };
36
+ }
37
+ export declare const DEFAULT_BOARD_LAW: BoardLaw;
38
+ /** Where a board lies: its world centre and its outer size (world units). Boards stay square to the desk — an open one is drawn on under a camera that never turns. */
39
+ export interface BoardRect {
40
+ readonly cx: number;
41
+ readonly cy: number;
42
+ readonly w: number;
43
+ readonly h: number;
44
+ }
45
+ /** What moves: the hold's lift (0..1), the selection ring's presence (0..1), the presence itself (1 … 0 gone). */
46
+ export interface BoardMotion {
47
+ readonly held: number;
48
+ readonly ring: number;
49
+ readonly fade: number;
50
+ }
51
+ export declare const BOARD_REST: BoardMotion;
52
+ export interface BoardGeometry {
53
+ readonly centre: readonly [number, number];
54
+ /** The outer half extents as drawn (the hold's scale applied). */
55
+ readonly half: readonly [number, number];
56
+ /** The melamine's half extents and corner radius (inside the frame). */
57
+ readonly inner: readonly [number, number];
58
+ readonly innerR: number;
59
+ readonly frame: number;
60
+ readonly radius: number;
61
+ /** The slab: its height, the melamine's recess below the frame's top, how far its underside floats (the hold's rise). */
62
+ readonly thick: number;
63
+ readonly recess: number;
64
+ readonly lift: number;
65
+ readonly scale: number;
66
+ /** The shadow's ground offset per unit of height, world axes — away from the lamp, capped. */
67
+ readonly slope: readonly [number, number];
68
+ /** The unit direction TO the lamp, world axes (x right, y down the screen, z off the desk). */
69
+ readonly lamp: readonly [number, number, number];
70
+ readonly ring: number;
71
+ readonly alpha: number;
72
+ }
73
+ /** The melamine's corner: the frame's outer radius less its width, never sharper than this. */
74
+ export declare const INNER_RADIUS_MIN = 1.5;
75
+ export declare function resolveBoard(b: BoardRect, m: BoardMotion, lamp: Lamp, law?: BoardLaw): BoardGeometry;
76
+ /** The outer silhouette's signed distance at a world point. */
77
+ export declare const sdBoard: (G: BoardGeometry, wx: number, wy: number) => number;
78
+ /** The melamine's signed distance at a world point. */
79
+ export declare const sdSurface: (G: BoardGeometry, wx: number, wy: number) => number;
80
+ export type BoardHit = "surface" | "frame" | "outside";
81
+ /** What is under a world point: the melamine (drawn on when open), the frame, or nothing. */
82
+ export declare function pickBoard(G: BoardGeometry, wx: number, wy: number): BoardHit;
83
+ /** A world point in the melamine's own units: world units from its top-left (what a stamp carries). */
84
+ export declare function toSurface(G: BoardGeometry, wx: number, wy: number): readonly [number, number];
85
+ /** The melamine's size in world units at scale 1 — what its raster covers, whatever the hold's scale. */
86
+ export declare const surfaceSize: (G: BoardGeometry) => readonly [number, number];
87
+ /** The raster a melamine of this size takes at `density` texels per world unit (BOARD.ink.density). */
88
+ export declare function rasterSize(surface: readonly [number, number], density: number): readonly [number, number];
89
+ /** How far the slab's shadow can reach past the board, world units: the top's offset along the slope, and 2.5 σ of its penumbra. */
90
+ export declare function shadowReach(G: BoardGeometry, law?: BoardLaw): number;
91
+ export interface WorldBox {
92
+ readonly x0: number;
93
+ readonly y0: number;
94
+ readonly x1: number;
95
+ readonly y1: number;
96
+ }
97
+ /** The world rect the fragment may paint: the board and its shadow's reach, grown to take in `extra` (the pen in the hand, when it is shown). */
98
+ export declare function quadOf(G: BoardGeometry, extra?: WorldBox, law?: BoardLaw): WorldBox;
99
+ /**
100
+ * The camera an OPEN board is seen under: the whole board, `pad` CSS px clear on every side, in
101
+ * the view above the marker tray's `tray` px band — its zoom in the band, its centre at the
102
+ * centre of what the tray leaves. The focus glide (book/focus.ts `glideTo`) flies here.
103
+ */
104
+ export declare function framing(b: BoardRect, vp: Viewport, law?: BoardLaw): CameraState;
@@ -0,0 +1,31 @@
1
+ import { type StrokeRow, type StrokeSpec } from "../../../desk/src/kit/index";
2
+ import type { RGB } from "../../../desk/src/index";
3
+ import { type BoardOp } from "./history";
4
+ export { addStroke, BoardStroke, decodePoints, decodeTimes, encodePoints, encodeTimes, meanSpeed, seedOfRow, STROKE_TYPE, StrokePrefab, type StrokeRow, strokeRow, strokeSeed, type StrokeSpec } from "../../../desk/src/kit/index";
5
+ import { StrokeBuilder } from "./stroke";
6
+ /** The dry-erase markers a board is written with (BOARD.md §3) — names; the inks are the host's palette. */
7
+ export declare const MARKERS: readonly ["black", "blue", "red", "green"];
8
+ export type MarkerName = (typeof MARKERS)[number];
9
+ /** A marker's ink as the palette gives it: the colour (sRGB) and the coverage one pass lays. */
10
+ export interface MarkerInk {
11
+ readonly color: RGB;
12
+ readonly opacity: number;
13
+ }
14
+ /**
15
+ * Feed a stroke's samples to the pen, as the hand did: the first is the press (`begin`), a sample that repeats its point exactly is
16
+ * the pen RESTING (`hold` — its bleed), any other a move, the last the lift (`end`). Timed (`times`, one per point), the samples keep
17
+ * their own clocks; else they are spaced by distance / `speed` (an old stroke — the bench's `sketch`, which never rests).
18
+ */
19
+ export declare function feedStroke(builder: StrokeBuilder, points: readonly (readonly [number, number])[], times: readonly number[] | null, speed: number, upto?: number): void;
20
+ /**
21
+ * The pen a spec is drawn with and its builder at seed `seed` — the replay's own choice (`boardOps`): the eraser's felt, or the
22
+ * marker in the palette's ink (the first it names when it names not this one) at the spec's tip; undefined = no ink to draw with.
23
+ */
24
+ export declare function strokePen(s: StrokeSpec, markers: Readonly<Record<string, MarkerInk>>, seed: number): StrokeBuilder | undefined;
25
+ /**
26
+ * A board's strokes as the history a replay walks — the bench's `sketch` (and the oracle's `opsOf`), stroke for stroke: each
27
+ * through the StrokeBuilder at the bench's seed (`strokeSeed` of the ops before it), its samples fed as the hand laid them
28
+ * (`feedStroke`), committed dry; a wipe clears what came before. An ink the palette does not name draws in the first it does
29
+ * (never a blank); no ink at all draws no marker.
30
+ */
31
+ export declare function boardOps(rows: readonly StrokeRow[], markers: Readonly<Record<string, MarkerInk>>): readonly BoardOp[];
@@ -0,0 +1,33 @@
1
+ import { type Tool } from "./stroke";
2
+ export type BoardOp = {
3
+ readonly kind: "stroke";
4
+ readonly tool: Tool;
5
+ readonly stamps: Float32Array;
6
+ readonly ink?: string;
7
+ } | {
8
+ readonly kind: "wipe";
9
+ };
10
+ export declare class BoardHistory {
11
+ private ops;
12
+ private cursor;
13
+ /** Bumps on every change — what a host compares to know the raster is stale. */
14
+ version: number;
15
+ /** Do something new: anything undone past the cursor is forgotten. */
16
+ push(op: BoardOp): void;
17
+ get canUndo(): boolean;
18
+ get canRedo(): boolean;
19
+ undo(): boolean;
20
+ redo(): boolean;
21
+ /** What is on the board now, in the order it was done. */
22
+ get done(): readonly BoardOp[];
23
+ /** What a replay needs: everything after the last wipe (a wipe clears all before it). */
24
+ get replay(): readonly BoardOp[];
25
+ /** Is there ink on the board? (A stroke after the last wipe — the eraser's count too: it may leave a ghost.) */
26
+ get inked(): boolean;
27
+ /** The board as a reader sees it: each stroke's tool, ink and path since the last wipe. */
28
+ read(every?: number): Array<{
29
+ tool: "marker" | "eraser";
30
+ ink: string | null;
31
+ path: Array<readonly [number, number]>;
32
+ }>;
33
+ }
@@ -0,0 +1,208 @@
1
+ import { BoardPass } from "./board-pass";
2
+ import { type BoardGeometry, type BoardLaw } from "./board";
3
+ import { type MarkerInk, type StrokeSpec } from "./data";
4
+ import type { BoardInstance } from "./layout";
5
+ import { type PenState } from "./pen";
6
+ import { type StrokeBuilder, type TipName } from "./stroke";
7
+ import { type KindExtra, type KindPass, type KindProgram, type SlotContext, type Palette, type RGB, type TokenRef, type KindHost, type KindLocal, type ObjectKind } from "../../../desk/src/index";
8
+ import { type MarkFrame, type MatPass, type ShaderText, inking } from "../../../desk/src/kit/index";
9
+ import { type Entity, type HeldToolDef, type World } from "../../../core/src/index";
10
+ /** The whiteboard's kind name — its key in the registry and in every slot's `objects`. */
11
+ export declare const BOARD_KIND = "board";
12
+ export declare class BoardKind implements KindPass<BoardInstance> {
13
+ /** The board pass itself: a host's door to the rasters (`ensure`, `lay`, `commit`, `replay`, `dry`) and the look (`look`, `chain`). */
14
+ readonly pass: BoardPass;
15
+ constructor(pass: BoardPass);
16
+ spawn(mat: MatPass): BoardKind;
17
+ tune(root: KindPass<BoardInstance>): void;
18
+ /** The pass's own `prepare`, argument for argument: the slot's camera, grid, clocks, the objects' presence, the light and the theme (its ring's colour) — and the records' keys (D6). */
19
+ prepare(_encoder: GPUCommandEncoder, s: SlotContext, records: readonly BoardInstance[], extra?: KindExtra): number;
20
+ dropped(): number;
21
+ /** Records [first, end) — a board whose raster is missing draws nothing (the pass counts in the list it was handed). */
22
+ drawRange(pass: GPURenderPassEncoder, first: number, end: number): void;
23
+ cardResources(): {
24
+ readonly version: number;
25
+ readonly resources: readonly (GPUBuffer | GPUTextureView | GPUSampler)[];
26
+ };
27
+ cardSlot(index: number): number;
28
+ records(): import("../../../desk/src/index").RecordStoreStats;
29
+ dispose(): void;
30
+ }
31
+ /** The whiteboard's program for a host's shader text: its passes made on the root's mat. */
32
+ export declare function boardProgram(text: ShaderText): KindProgram<BoardInstance>;
33
+ /** The whiteboard's silhouette for the desk's marks (D4a): its aluminium frame's outside as drawn, square to the mat. */
34
+ export declare function boardFrame(G: BoardGeometry): MarkFrame;
35
+ /**
36
+ * What the board's kind takes from the host's palette: its materials (BOARD.md — the melamine, the anodised frame, the
37
+ * marker's barrel, the eraser's felt and wooden back) and the dry-erase markers by name, each an ink and the coverage one
38
+ * pass lays. The product's (the theme gate), never the engine's.
39
+ */
40
+ export interface BoardPalette extends Palette {
41
+ readonly board?: {
42
+ readonly surface: TokenRef;
43
+ readonly frame: TokenRef;
44
+ readonly barrel: TokenRef;
45
+ readonly felt: TokenRef;
46
+ readonly wood: TokenRef;
47
+ };
48
+ readonly markers?: Readonly<Record<string, TokenRef & {
49
+ readonly opacity: number;
50
+ }>>;
51
+ }
52
+ /** The board's look for a theme, parsed: the melamine and the frame a record takes, the pen's materials the pass takes, the markers' inks the replay takes, and each marker's CSS the held bar's swatch shows (by tool id). */
53
+ export interface BoardObjectLook {
54
+ readonly surface: RGB;
55
+ readonly metal: RGB;
56
+ readonly pen: {
57
+ readonly barrel: RGB;
58
+ readonly felt: RGB;
59
+ readonly wood: RGB;
60
+ };
61
+ readonly markers: Readonly<Record<string, MarkerInk>>;
62
+ readonly swatches: Readonly<Record<string, string>>;
63
+ }
64
+ /** A marker's tool id in the held bar ("marker:blue"); the eraser's is `ERASER_TOOL_ID`. */
65
+ export declare const markerToolId: (ink: string) => string;
66
+ export declare const ERASER_TOOL_ID = "eraser";
67
+ /** The ink a tool id names, or undefined (the eraser, anything else). */
68
+ export declare const inkOfTool: (id: string) => string | undefined;
69
+ export { inking };
70
+ /** Is there ink on board `e` — a stroke (the eraser's too: it may leave a ghost) after its last wipe? */
71
+ export declare function boardInked(world: World, e: Entity): boolean;
72
+ /**
73
+ * The whiteboard's tools in hand (BOARD.md §5, *Marks on the Mat*'s contract: "four markers, eraser, undo, redo"; the tray merged
74
+ * into the held bar, Q-o): the four markers (`1`–`4`) and the eraser (`e`, a toggle — chosen again, the marker it took over from
75
+ * comes back) are MODES — core's `HeldTool`, the user's fact — whose cursor is none over the melamine (the pen draws itself);
76
+ * undo and redo are the DOCUMENT's history (a stroke is one transaction, D-D5) and wait for a stroke in hand to land; on keys
77
+ * alone, the tip (`t`: fine → bullet → chisel, the capped marker's durable `tip`) and the wipe (⌘⌫, one transaction — itself
78
+ * undoable, as the bench's was). The pen's own state is written off the undo stack: ⌘Z undoes ink, never a pick of the pen.
79
+ */
80
+ export declare const BOARD_TOOLS: readonly HeldToolDef[];
81
+ /**
82
+ * A board at rest as the bench draws it (`BoardDesk.instances` + `poseOf` with no board open), all but its raster: THE
83
+ * marker lying where a hand put it down — the pen's flux at rest (board/pen.ts: every hand term at e = 0, kept as the bench
84
+ * computes them) —, the world rect the fragment may paint (the board, its shadow, the pen's box), the eye straight over it
85
+ * (the parallax at rest).
86
+ */
87
+ export declare function boardRest(G: BoardGeometry, w: number, h: number, tip: TipName, capInk: RGB, look: BoardObjectLook, law?: BoardLaw): Omit<BoardInstance, "id">;
88
+ /**
89
+ * A board as drawn with its pen in whatever pose its flux has reached (D3t-a — board/pen.ts `penPose`): lying, taken up, in the
90
+ * hand at `at` (a desk point), the eraser rubbing there; the quad grown to take in both. At rest it is `boardRest`, byte for byte.
91
+ */
92
+ export declare function boardPose(G: BoardGeometry, w: number, h: number, tip: TipName, ink: RGB, look: BoardObjectLook, pen: PenState, at: readonly [number, number] | null, law?: BoardLaw): Omit<BoardInstance, "id">;
93
+ /**
94
+ * How far a board's drawing reaches past its rect, world units: the slab's shadow at full lift, or the resting pen's box
95
+ * (it lies near the bottom edge and its box is wide), whichever is further; the held scale.
96
+ */
97
+ export declare function boardReach(law?: BoardLaw): number;
98
+ /** What the hand is doing over a board in hand this frame, as the pen driver (objects/pen.ts) reads the world: where (a desk point), over the melamine or not, laying a stroke or not, with which tool and ink, and the pointer on screen (its velocity leans the pen). */
99
+ export interface PenHand {
100
+ readonly at: readonly [number, number] | null;
101
+ readonly over: boolean;
102
+ readonly pressing: boolean;
103
+ readonly erasing: boolean;
104
+ /** The ink in hand (the marker's, or the one it lies down in while the eraser rubs); absent = the capped marker's. */
105
+ readonly ink?: string;
106
+ /** The pointer on screen, CSS px, and the clock (ms) it was read at. */
107
+ readonly screen?: readonly [number, number];
108
+ readonly t?: number;
109
+ }
110
+ /** A still's pen (a pinned hand): its desk point, pressed or hovering, the eraser or the marker, the ink. */
111
+ export interface PenPin {
112
+ readonly x: number;
113
+ readonly y: number;
114
+ readonly press?: boolean;
115
+ readonly erase?: boolean;
116
+ readonly ink?: string;
117
+ }
118
+ /**
119
+ * The board's own state on one desk: each board's raster on the root pass, a cache of its strokes — and (D3t-a) what the hand
120
+ * does to it in hand: the stroke laid LIVE into its stroke layer, committed WET and drying, its entity adopted when it lands
121
+ * rather than replayed; the pen's flux and the hand it follows.
122
+ */
123
+ export interface BoardInk extends KindLocal {
124
+ /** When the kind is next live (K7a — `KindLocal.due`, declared: the six built-ins all say). */
125
+ due(now: number): number;
126
+ /**
127
+ * The raster board `e` draws with (its id on the pass): made the first time, its children REPLAYED into it whenever
128
+ * their stamp turned over or the look changed — unless the turnover is the stroke the hand just committed (adopted: the
129
+ * raster holds it already, wet) —; a stroke in hand is laid again over a replay; a fading ghost keeps what it had. 0 before
130
+ * the pass is here. `zd` — device px a world unit where it is drawn (zoom × dpr): a raster made now is made at its ZOOM
131
+ * RUNG (K6a, `boardRung`); the pass's step raises it when the board grows on screen. K6b: a raster to MAKE (none held — never
132
+ * made, or evicted — or its density raised) is asked of the desk's frame raster queue when the host has one, `px` (screen px
133
+ * from the view's centre) its place: the board draws its old raster, its thumbnail, else its melamine bare until its turn.
134
+ */
135
+ raster(e: Entity, G: BoardGeometry, look: BoardObjectLook, ghost: boolean, zd?: number, px?: number): number;
136
+ /** How many replays since the desk was made (a rig's witness). */
137
+ replays(): number;
138
+ /** Board `e`'s raster on the pass (`BoardPass.readInk` reads it — a rig's witness); undefined before it is met. */
139
+ rasterOf(e: Entity): number | undefined;
140
+ /** Board `e`'s residency (K6a — a rig's witness): its raster's density (null: evicted or not made), whether the pool binds it this frame, whether its thumbnail is cut. */
141
+ residency(e: Entity): {
142
+ readonly density: number | null;
143
+ readonly bound: boolean;
144
+ readonly thumb: boolean;
145
+ } | undefined;
146
+ /**
147
+ * The boards' residency in sum (K9 R5 — rig:scale's row): how many boards the desk has, how many were ever inked (replayed),
148
+ * how many keep a far-LOD thumbnail (every inked board should, until the array's layer cap reclaims one — K9 R1), hold a raster,
149
+ * are bound in the pool this frame; the thumbnail array's layers in use and capacity.
150
+ */
151
+ stats(): {
152
+ readonly boards: number;
153
+ readonly inked: number;
154
+ readonly thumbed: number;
155
+ readonly rastered: number;
156
+ readonly bound: number;
157
+ readonly layers: number;
158
+ readonly capacity: number;
159
+ };
160
+ /** The stroke in hand on `e`: the builder's stamps since the last call into the stroke layer (sent at the next prepare). */
161
+ lay(e: Entity, builder: StrokeBuilder): void;
162
+ /** The lift: the stroke in hand laid into the ink and marked WET; its entity (its cell's `points`) is adopted when it lands. */
163
+ commit(e: Entity, points: string): void;
164
+ /** A stroke in hand abandoned (or its transaction refused): its stamps dropped, the raster replayed from the children. */
165
+ cancel(e: Entity): void;
166
+ /** The stroke being laid on `e` — its ink (LINEAR) and whether it erases — for the record; undefined when none. */
167
+ laying(e: Entity): {
168
+ readonly color: RGB;
169
+ readonly erase: boolean;
170
+ } | undefined;
171
+ /** The hand over board `e` this frame (the pen driver's word). */
172
+ hand(e: Entity, h: PenHand): void;
173
+ /** Pin the hand for a still (`undefined` unpins): the pen sits where the pin says, its springs snapped. */
174
+ pinPen(e: Entity, pin: PenPin | undefined): void;
175
+ /** The pen's flux of board `e` (a rig's witness). */
176
+ penOf(e: Entity): PenState | undefined;
177
+ /** The world half's: the hand over `e` as the record reads it (the pin's, else the driver's), and the pen's flux. */
178
+ handFor(e: Entity): {
179
+ readonly hand: PenHand | undefined;
180
+ readonly pen: PenState;
181
+ readonly pinned: boolean;
182
+ };
183
+ /** A pen still moving (the record says so): the next tick asks a frame. */
184
+ moving(e: Entity): void;
185
+ /**
186
+ * A STILL's ink on board `e` (a rig's door — the oracle's `wet`/`live` board, D3t-a): after its children replayed, `wet` laid
187
+ * LIVE and committed wet, then `live` mid-draw — its first `upto` samples in the stroke layer, the pen never lifted — each at the
188
+ * seed of the op it would be. False before the board's raster is here.
189
+ */
190
+ sketch(e: Entity, s: {
191
+ readonly wet?: StrokeSpec;
192
+ readonly live?: StrokeSpec & {
193
+ readonly upto: number;
194
+ };
195
+ }): boolean;
196
+ /** Hold the ink still (a still): no drying, no frame asked for a stroke in hand. */
197
+ pinStill(on: boolean): void;
198
+ }
199
+ /** The board's `local()`: rasters by entity, released when the builder forgets a board. */
200
+ export declare function createBoardInk(host: KindHost): BoardInk;
201
+ export interface BoardKindOptions {
202
+ /** The host's shader text; the generated module unless a host says. */
203
+ readonly text?: ShaderText;
204
+ /** The board's numbers (theme.ts `BOARD`) — the engine's unless a host tweaks them. */
205
+ readonly law?: BoardLaw;
206
+ }
207
+ /** The whiteboard's kind, whole (kinds/world.ts `ObjectKind`): the program, and the world half on the bench's laws. */
208
+ export declare function boardKind(opts?: BoardKindOptions): ObjectKind<BoardGeometry, BoardInstance, BoardObjectLook>;
@@ -0,0 +1,102 @@
1
+ import type { RGB } from "../../../desk/src/index";
2
+ import type { BoardGeometry, WorldBox } from "./board";
3
+ export declare const Board: import("../../../desk/src/engine/index").StructDef<"ring" | "lamp" | "tier" | "tool" | "pen" | "frame" | "surface" | "inner" | "centre" | "half" | "quad" | "lift" | "alpha" | "slope" | "radius" | "thick" | "eraser" | "sheen" | "texels" | "innerR" | "recess" | "density" | "wet" | "laying" | "scale" | "metal" | "penPose" | "penInk">;
4
+ export declare const BoardUniforms: import("../../../desk/src/engine/index").StructDef<"light" | "shadow" | "shadow2" | "select" | "pen" | "felt" | "block" | "castTint" | "sheen" | "mel" | "lip" | "glint" | "barrel" | "wood" | "pen2" | "block2">;
5
+ /** One footprint of the pen (stroke.ts `STAMP_FLOATS` — the same eight floats, in the same order). */
6
+ export declare const Stamp: import("../../../desk/src/engine/index").StructDef<"size" | "s" | "seed" | "dir" | "pos" | "flow">;
7
+ export declare const StampUniforms: import("../../../desk/src/engine/index").StructDef<"felt" | "tip" | "tex" | "lanes">;
8
+ export declare const InkUniforms: import("../../../desk/src/engine/index").StructDef<"color">;
9
+ export declare const MAX_BOARDS = 64;
10
+ /**
11
+ * THE marker of a board, in whatever pose it is in: lying capped on the melamine, in the hand at
12
+ * the pointer with its cap posted, or anywhere between as it is picked up or put down (lab/board.ts
13
+ * moves it; the shader draws it). Heights are over the melamine.
14
+ */
15
+ export interface BoardPen {
16
+ /** The nib's end, world units. */
17
+ readonly x: number;
18
+ readonly y: number;
19
+ /** Radians: the direction from the nib along the barrel. */
20
+ readonly angle: number;
21
+ /** The axis' height over the melamine at the nib's end, and how steeply it rises along the barrel. */
22
+ readonly height: number;
23
+ readonly rise: number;
24
+ /** Where the cap is: 0 on the nib … 1 posted on the back. */
25
+ readonly cap: number;
26
+ /** The nib's half-width (the tip in use). */
27
+ readonly nib: number;
28
+ readonly presence: number;
29
+ /** Its colour as it looks (sRGB). */
30
+ readonly ink: RGB;
31
+ }
32
+ /** The eraser in the hand of an open board. */
33
+ export interface BoardEraser {
34
+ readonly x: number;
35
+ readonly y: number;
36
+ readonly height: number;
37
+ readonly presence: number;
38
+ }
39
+ /** One board for the pass: its geometry, its materials, its raster, and what is on and over it this frame. */
40
+ export interface BoardInstance {
41
+ /** Its raster (BoardPass.ensure) — the ink the melamine shows. */
42
+ readonly id: number;
43
+ readonly geometry: BoardGeometry;
44
+ readonly surface: RGB;
45
+ readonly metal: RGB;
46
+ /** The world rect it may paint (board.ts `quadOf`). */
47
+ readonly quad: WorldBox;
48
+ /** The eye's offset over the board, −1..1 each way (the pointer's parallax); absent = straight over its centre. */
49
+ readonly sheen?: readonly [number, number] | undefined;
50
+ /** The stroke being laid: its ink (LINEAR) and whether it erases. */
51
+ readonly stroke?: {
52
+ readonly color: RGB;
53
+ readonly erase: boolean;
54
+ } | undefined;
55
+ readonly pen?: BoardPen | undefined;
56
+ readonly eraser?: BoardEraser | undefined;
57
+ /**
58
+ * The pen's MATERIALS (a marker's barrel, the eraser's felt and back) when the record was made WITHOUT the desk's local — a tray
59
+ * specimen (K5b): nobody else sets them on the pass that draws it (the local's raster sets the root's, and only for a desk board
60
+ * drawn), so the specimen carries its look's; else the one its slot's pass copied from the root showed whatever the last desk board
61
+ * left there — black before any was drawn (an order-dependent still). Absent: the pass's own.
62
+ */
63
+ readonly materials?: {
64
+ readonly barrel: RGB;
65
+ readonly felt: RGB;
66
+ readonly wood: RGB;
67
+ } | undefined;
68
+ }
69
+ export declare function boardValues(b: BoardInstance, raster: {
70
+ readonly size: readonly [number, number];
71
+ readonly density: number;
72
+ readonly wet: boolean;
73
+ }, tier?: readonly [number, number, number, number]): {
74
+ centre: readonly [number, number];
75
+ half: readonly [number, number];
76
+ inner: readonly [number, number];
77
+ slope: readonly [number, number];
78
+ sheen: readonly [number, number];
79
+ texels: readonly [number, number];
80
+ frame: number;
81
+ radius: number;
82
+ innerR: number;
83
+ thick: number;
84
+ recess: number;
85
+ lift: number;
86
+ alpha: number;
87
+ ring: number;
88
+ density: number;
89
+ wet: number;
90
+ laying: number;
91
+ scale: number;
92
+ lamp: number[];
93
+ quad: number[];
94
+ surface: number[];
95
+ metal: number[];
96
+ tool: number[];
97
+ pen: number[];
98
+ penPose: number[];
99
+ penInk: number[];
100
+ eraser: number[];
101
+ tier: number[];
102
+ };
@@ -0,0 +1,7 @@
1
+ /** The dry-erase markers a board is written with (BOARD.md §3) — names; the inks are the host's (board/data.ts). */
2
+ export { MARKERS, type MarkerName } from "./data";
3
+ /** The marker's tips (board/stroke.ts `TIPS`). */
4
+ export declare const TIPS: readonly ["fine", "bullet", "chisel"];
5
+ /** The board's durable type id. */
6
+ export declare const BOARD_TYPE = "desk.board";
7
+ export declare const Board: import("../../../core/src/index").WidgetType;
@@ -0,0 +1,71 @@
1
+ import type { RGB } from "../../../desk/src/index";
2
+ import type { BoardGeometry, WorldBox } from "./board";
3
+ import type { BoardEraser, BoardPen } from "./layout";
4
+ import { type TipName } from "./stroke";
5
+ /** A right hand holds a marker with its barrel rising away to the upper right (lab/board.ts). */
6
+ export declare const HAND_ANGLE: number;
7
+ /**
8
+ * A board's pen as flux: `take` (0 lying … 1 in the hand), `shown` (present at the hand — over the melamine), `rub` (the eraser at
9
+ * the hand), `press` (0 hovering … 1 on the board), each a spring with its velocity; `lean` (radians across the barrel) and the
10
+ * hand's smoothed velocity (CSS px/s) it follows.
11
+ */
12
+ export interface PenState {
13
+ take: number;
14
+ takeV: number;
15
+ shown: number;
16
+ shownV: number;
17
+ rub: number;
18
+ rubV: number;
19
+ press: number;
20
+ pressV: number;
21
+ lean: number;
22
+ vx: number;
23
+ vy: number;
24
+ }
25
+ export declare const penAtRest: () => PenState;
26
+ /** What the hand is doing this frame, as the board's pen reads it. */
27
+ export interface PenInput {
28
+ /** The pen is in hand: the board held and open (past 42 % of the pickup) — false on the desk and flying home. */
29
+ readonly held: boolean;
30
+ /** The eraser is the tool in hand (the marker lies down). */
31
+ readonly erasing: boolean;
32
+ /** The hand is over the melamine or laying a stroke: the pen (or the eraser) shows at it. */
33
+ readonly over: boolean;
34
+ /** A stroke is being laid: the nib meets the board. */
35
+ readonly pressing: boolean;
36
+ }
37
+ /** The springs' numbers (lab/board.ts `step`): take 2.4 Hz critically damped, shown and rub 7 Hz, press 9 Hz ζ .85; the lean's decay and follow. */
38
+ export declare const PEN_SPRINGS: {
39
+ readonly take: readonly [2.4, 1];
40
+ readonly shown: readonly [7, 1];
41
+ readonly rub: readonly [7, 1];
42
+ readonly press: readonly [9, 0.85];
43
+ readonly leanDecay: 6;
44
+ readonly leanFollow: 12;
45
+ };
46
+ /**
47
+ * Advance the pen's flux by `dt` seconds toward what the hand is doing (lab/board.ts `step`, the pen's rows); `snap` sits every
48
+ * spring at its target (a still). Returns true while anything still moves.
49
+ */
50
+ export declare function stepPen(s: PenState, input: PenInput, dt: number, snap?: boolean): boolean;
51
+ /** The hand moved: its velocity, CSS px/s, folded into the pen's (the bench's per-event smoothing, a frame at a time). */
52
+ export declare function followHand(s: PenState, dx: number, dy: number, dt: number): void;
53
+ /** Where the marker lies on a board of `w × h`: its centre from the board's (× the hold's scale) and its angle — BOARD.md §5's rest. */
54
+ export declare const penRest: (w: number, h: number) => {
55
+ readonly x: number;
56
+ readonly y: number;
57
+ readonly angle: number;
58
+ };
59
+ /** The hand's world point kept on the melamine (lab/board.ts `handOf`); none seen: the board's centre. */
60
+ export declare function handOnMelamine(G: BoardGeometry, at: readonly [number, number] | null): readonly [number, number];
61
+ /**
62
+ * THE marker's pose this frame between where it lies and the hand (lab/board.ts `poseOf`, number for number): the nib slides from
63
+ * its resting place to the hand and turns to the hand's angle (plus the lean); it rises in an arc, its barrel tilting up from the
64
+ * nib as a held pen does; its cap slides back along the barrel and posts on the end; present in the hand only where the hand is
65
+ * over the board. The eraser at the hand while it rubs. And the world box both may paint, shadows and all.
66
+ */
67
+ export declare function penPose(G: BoardGeometry, w: number, h: number, tip: TipName, ink: RGB, s: PenState, at: readonly [number, number] | null): {
68
+ readonly pen: BoardPen;
69
+ readonly eraser: BoardEraser | undefined;
70
+ readonly box: WorldBox;
71
+ };
@@ -0,0 +1,36 @@
1
+ import type { CardMaterial } from "../../../desk/src/index";
2
+ import type { ComposeOptions } from "../../../desk/src/engine/index";
3
+ import { type ShaderText } from "../../../desk/src/kit/index";
4
+ export interface BoardShaders {
5
+ readonly board: ComposeOptions;
6
+ readonly stamp: ComposeOptions;
7
+ readonly ink: ComposeOptions;
8
+ readonly mip: ComposeOptions;
9
+ }
10
+ /** The board's own shader files (the kit's pieces come by name). */
11
+ export declare const BOARD_SHADER_FILES: {
12
+ readonly felt: "board/felt.wgsl";
13
+ readonly board: "board/board.wgsl";
14
+ readonly boardCard: "board/board-card.wgsl";
15
+ readonly boardPass: "board/board-pass.wgsl";
16
+ readonly stamp: "board/stamp.wgsl";
17
+ readonly ink: "board/ink.wgsl";
18
+ readonly mip: "board/mip.wgsl";
19
+ };
20
+ export declare function boardShaders(text: ShaderText): BoardShaders;
21
+ /**
22
+ * The whiteboard's CARD MATERIAL (K7b, design-016 §6 K7): the flat-card pipeline draws a board with board-card.wgsl's quad and
23
+ * fragment over the board pass's own records, knobs, samplers and thumbnail array (`BoardPass.cardResources`, in this order) —
24
+ * every board drawn from its thumbnail (the card binds no pool and no live layers: its `board_ink` is the thumbnail's, its
25
+ * stroke and wet none).
26
+ */
27
+ export declare function boardCard(text: ShaderText): CardMaterial;
28
+ /**
29
+ * The board's fragment as the flat-card pipeline splices it (K7b): board-pass.wgsl's `fs`, statement for statement — its `in.idx`
30
+ * the card's `slot`, its shade `cb`, its return the card's `c` — because shade_board reached through one more function compiles to
31
+ * one LSB off on a pixel a scene (measured on the oracle): the card runs the very code the pass runs. `boardFsOf` is the pass's `fs`
32
+ * the same statements make (test/card.test.ts holds board-pass.wgsl to it).
33
+ */
34
+ export declare const BOARD_FRAGMENT: string;
35
+ /** The pass's `fs` body BOARD_FRAGMENT's statements make — as board-pass.wgsl writes it (a test holds the two equal). */
36
+ export declare const boardFsOf: (fragment: string) => string;