@vibecook/ice 0.10.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 (380) 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-5FQS7V2C.js → chunk-DYK6KNLG.js} +13303 -7485
  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 +34 -13
  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-5FQS7V2C.js.map +0 -1
  324. package/dist/chunk-JWRHAM7L.js +0 -1163
  325. package/dist/chunk-JWRHAM7L.js.map +0 -1
  326. package/dist/chunk-MFTMPJUF.js +0 -681
  327. package/dist/chunk-MFTMPJUF.js.map +0 -1
  328. package/dist/chunk-OR5FNVUE.js.map +0 -1
  329. package/dist/ground.js +0 -1213
  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 -103
  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-classic.d.ts +0 -30
  348. package/dist/types/packages/ground/src/passes/grid-magnet.d.ts +0 -31
  349. package/dist/types/packages/ground/src/passes/grid.d.ts +0 -28
  350. package/dist/types/packages/ground/src/passes/guides-collect.d.ts +0 -14
  351. package/dist/types/packages/ground/src/passes/guides.d.ts +0 -3
  352. package/dist/types/packages/ground/src/passes/magnet-collect.d.ts +0 -63
  353. package/dist/types/packages/ground/src/passes/soup-collect.d.ts +0 -35
  354. package/dist/types/packages/ground/src/passes/soup-mesh.d.ts +0 -8
  355. package/dist/types/packages/ground/src/passes/wires-collect.d.ts +0 -35
  356. package/dist/types/packages/ground/src/passes/wires.d.ts +0 -10
  357. package/dist/types/packages/ground/src/poles.d.ts +0 -47
  358. package/dist/types/packages/ground/src/renderer.d.ts +0 -15
  359. package/dist/types/packages/ice/src/ground.d.ts +0 -1
  360. package/dist/types/packages/ice/src/r3f.d.ts +0 -1
  361. package/dist/types/packages/kernel/src/eviction.d.ts +0 -23
  362. package/dist/types/packages/kernel/src/zoom-bands.d.ts +0 -19
  363. package/dist/types/packages/r3f/src/bridge.d.ts +0 -129
  364. package/dist/types/packages/r3f/src/composite-material.d.ts +0 -26
  365. package/dist/types/packages/r3f/src/compositor-pass.d.ts +0 -105
  366. package/dist/types/packages/r3f/src/dev-write-trap.d.ts +0 -30
  367. package/dist/types/packages/r3f/src/gl-root.d.ts +0 -96
  368. package/dist/types/packages/r3f/src/gl-router.d.ts +0 -70
  369. package/dist/types/packages/r3f/src/index.d.ts +0 -17
  370. package/dist/types/packages/r3f/src/island-state.d.ts +0 -112
  371. package/dist/types/packages/r3f/src/island.d.ts +0 -13
  372. package/dist/types/packages/r3f/src/pool.d.ts +0 -56
  373. package/dist/types/packages/r3f/src/preview-capture.d.ts +0 -19
  374. package/dist/types/packages/r3f/src/resource-registry.d.ts +0 -30
  375. package/dist/types/packages/r3f/src/self-sustain.d.ts +0 -39
  376. package/dist/types/packages/r3f/src/use-island-frame.d.ts +0 -39
  377. package/dist/types/packages/react/src/infinite-canvas.d.ts +0 -140
  378. package/dist/types/packages/react/src/preview-snapshots.d.ts +0 -17
  379. package/dist/types/packages/react/src/widget-preview.d.ts +0 -14
  380. package/dist/types/packages/react/src/widget-root.d.ts +0 -33
@@ -0,0 +1,475 @@
1
+ import { type MatLight } from "./mat/night";
2
+ export type RGB = readonly [number, number, number];
3
+ export type RGBA = readonly [number, number, number, number];
4
+ export type ThemeName = "light" | "dark";
5
+ /**
6
+ * Parse the CSS colour syntaxes tokens.css uses — `#rrggbb`, `rgb(r g b / p%)`,
7
+ * `rgba(r, g, b, a)` — into sRGB 0..1 + alpha. The swap chain is a plain
8
+ * 8-bit format, so what CSS shows is what the shader writes.
9
+ */
10
+ export declare function cssColor(css: string): RGBA;
11
+ export declare const rgb: (css: string) => RGB;
12
+ /** A colour as the design kit names it, with its CSS value verbatim. */
13
+ export interface TokenRef {
14
+ /** `--vf-*` = a tokens.css token (checked by name); anything else names its DESIGN.md source. */
15
+ readonly token: string;
16
+ readonly css: string;
17
+ }
18
+ /** The roles the ground paints from a product's palette, one token each, per theme. */
19
+ export interface Palette {
20
+ readonly canvasBg: TokenRef;
21
+ readonly select: TokenRef;
22
+ }
23
+ /**
24
+ * The GRID's fade-in window — the lattice's one law for every rung (lod.ts `FadeIn`,
25
+ * line.ts): a rung fades in as its OWN cell grows from 10 to 20 CSS px, one octave
26
+ * under the decade's 20 px bottom, so zoom 1 lands on a full lattice. The mat's
27
+ * lines, the rulers' ticks and a mini mat's face all read it. (It was the magnet
28
+ * field's `fadeIn` — ICE's `worldGrid.fadeIn` — and is the one number of that set
29
+ * the mat kept.) And the DRESSING's floor (PORTAL.md §9, MINIMAT.md §5): a mini mat's inside is dressed
30
+ * for its arrival — its lattice as it will look when entered, scaled — but the window is never scaled
31
+ * below this share of itself, so a miniature's grid is never finer than half the desk's: a tiny mini
32
+ * mat shows its inside's major lines, not a haze of its minor ones. The live inside, the face's far
33
+ * LOD and a flight's two desks all take the same floor, so none of them can disagree.
34
+ */
35
+ export declare const GRID: {
36
+ readonly fadeIn: readonly [10, 20];
37
+ readonly dressFloor: 0.5;
38
+ };
39
+ /**
40
+ * The CUTTING MAT — the ground's one grid: a hairline lattice on a green mat, ported
41
+ * from research/tree-shadow/prototype (the oryzo "hero desk"). Its colours are
42
+ * a material's, carried across both themes like an object's own colours;
43
+ * the numbers are the reference's, transcribed with their names. DESIGN.md has
44
+ * no cutting-mat row yet (it is a research port) — the token names below say
45
+ * where each value came from, and adding the material to the doc is the step
46
+ * before any of this leaves draft/.
47
+ *
48
+ * The reference draws its albedo through `srgbToLinear` and then `pow(2.2)`
49
+ * again, grades in HSB, and writes `pow(1/2.2)` straight to the swap chain: the
50
+ * mat on screen is the LINEARISED sage, a dark green. That chain is the look
51
+ * and is kept verbatim (mat.wgsl), so `ground` and `line` below are the values
52
+ * the chain STARTS from, not what a pixel measures.
53
+ */
54
+ export declare const MAT: {
55
+ readonly ground: {
56
+ readonly token: "hero cuttingMatAlbedo `sage`";
57
+ readonly css: "#86a078";
58
+ };
59
+ readonly line: {
60
+ readonly token: "hero cuttingMatAlbedo `cream`";
61
+ readonly css: "#e8dcbe";
62
+ };
63
+ /** The colour a desk object's shadow casts ON the mat — the tree-shadow design system's `--cast-rgb` (mat.css: "the world's darkest value"). */
64
+ readonly cast: {
65
+ readonly token: "tree-shadow design mat.css `--cast-rgb`";
66
+ readonly css: "#0e1a0a";
67
+ };
68
+ };
69
+ /** The same, parsed — what a pass reads (nothing outside this file parses a colour). */
70
+ export declare const MAT_COLORS: {
71
+ readonly ground: RGB;
72
+ readonly line: RGB;
73
+ readonly cast: RGB;
74
+ };
75
+ /**
76
+ * The mat's line law and the gobo's numbers (research/tree-shadow/prototype:
77
+ * shaders.js `cuttingMatAlbedo` · `sampleGobo` · `heroFrag`, scenes.js `hero`).
78
+ * Line widths are DEVICE px — the reference's hairlines are 0.5 / 0.75 of a
79
+ * framebuffer pixel; the alphas ride the engine's `fadeIn` window (line.ts).
80
+ */
81
+ export declare const MAT_GRID: {
82
+ readonly line: {
83
+ readonly thin: 0.5;
84
+ readonly thick: 0.75;
85
+ readonly alphaThin: 0.14;
86
+ readonly alphaThick: 0.28;
87
+ };
88
+ /** ±8/255 on the green channel (0.4× red, 0.35× blue): static hash + drifting value noise + blue noise. */
89
+ readonly grain: number;
90
+ readonly gobo: {
91
+ readonly opacity: 1;
92
+ /** `getGoboBlurRatio(z, params) * 2.0` — the blur radius in plate texels at full softness. */
93
+ readonly blurTexels: 2;
94
+ /** heroFrag: `shade = mix(1, coaster·(0.5 + 0.5·gobo), 0.975)`; then HSB s += (1−shade)·0.1, v *= shade. */
95
+ readonly shadeMix: 0.975;
96
+ readonly darkFloor: 0.5;
97
+ readonly saturate: 0.1;
98
+ /** scenes.js `hero.params` — the blur ramp's two linear depths (metres from the projector). */
99
+ readonly sharp: 0.372991;
100
+ readonly soft: 0.79059;
101
+ /** The plates: R silhouette, G wind amp 1, B phase, A amps 2+3; each with its wind strength. */
102
+ readonly plates: {
103
+ readonly c: {
104
+ readonly strength: 0.38847005;
105
+ };
106
+ readonly b: {
107
+ readonly strength: 0.4630597;
108
+ };
109
+ };
110
+ readonly plate: "c" | "b";
111
+ /** gobo.js: `time += dt·(speed + 1 + r)` at speed 4; the lab's 0 = frozen. */
112
+ readonly wind: 5;
113
+ /** hero `mouseStrength` — radians of projector tilt per unit of smoothed pointer NDC. */
114
+ readonly tilt: 0.003;
115
+ };
116
+ /**
117
+ * The RULERS printed along the mat's top and left edges (RULER.md — James's mockup of
118
+ * 2026-09-23, measured at its 1.6×: a 41 px band under a 41 px margin, 12 px numerals,
119
+ * ticks 9 · 15 · 24, 1–2 px lines): one MODULE for the unprinted margin and one for the
120
+ * band; 1 px lines; the text 10 px mono (DESIGN.md §3's caption size, the product's
121
+ * `--vf-font-mono`) 5 px in from the outer line and 3 px after its tick; the ink the
122
+ * mat's own cream at these presences. The fine rung's ticks arrive over a 6 → 9 px pitch
123
+ * (a ruler's mm under its cm; at 5 the comb read busy) and a level's labels over 50 → 70 px,
124
+ * so labels sit 50–250 px apart at every zoom (lattice/ruler.ts).
125
+ */
126
+ readonly ruler: {
127
+ readonly band: 26;
128
+ readonly margin: 26;
129
+ readonly tick: readonly [6, 9, 15];
130
+ readonly line: 1;
131
+ readonly alpha: {
132
+ readonly frame: 0.55;
133
+ readonly tick: 0.85;
134
+ readonly label: 0.85;
135
+ };
136
+ readonly ticksFrom: readonly [6, 9];
137
+ readonly labelsFrom: readonly [50, 70];
138
+ readonly text: {
139
+ readonly size: 10;
140
+ readonly top: 5;
141
+ readonly gap: 3;
142
+ };
143
+ readonly maxChars: 9;
144
+ };
145
+ /**
146
+ * World → desk: the hero's view at its default height is 0.2227 m over the
147
+ * window's height (900 px in the reference shots), so one world unit (a CSS
148
+ * px at zoom 1) is 0.2227 / 900 m and the dapple spans the same screen at
149
+ * zoom 1. The mat's centre (the reference's coaster) is world (0, 0); the
150
+ * desk plane is `y = 0.7471` in the projector's frame.
151
+ */
152
+ readonly plane: {
153
+ readonly metresPerUnit: number;
154
+ readonly originX: -0.0105761;
155
+ readonly originZ: -0.0485146;
156
+ readonly deskY: 0.7471;
157
+ };
158
+ };
159
+ /**
160
+ * The NIGHT — the cutting mat in the dark theme (MAT.md). The mat is a material and
161
+ * keeps its sage and cream in both themes; what the theme changes is the LIGHT: the
162
+ * Sun by day (the reference's chain, verbatim), the Moon by night — and the eye that
163
+ * sees by it. Every number here is a choice with its source; `mat/night.ts` turns
164
+ * them into the shader's numbers.
165
+ */
166
+ export declare const NIGHT: {
167
+ /** Full moonlight is REDDER than sunlight — ≈ 4100 K against the Sun's ≈ 5500 (Ciocca & Wang 2013); the blue of a moonlit scene is the eye's, not the light's. */
168
+ readonly kelvin: 4100;
169
+ /** A full Moon high in a clear sky: 0.1–0.3 lux on the ground, a million times under the Sun's. Where on the mesopic ramp the eye sits. */
170
+ readonly lux: 0.2;
171
+ /** The sky's share in the shadow — the same air scatters the same fraction of the Moon as of the Sun, ≈ 0.15–0.2 of the direct light at 45°. */
172
+ readonly fill: 0.18;
173
+ /** The rods' signal drawn as a colour: white pulled 18 % toward 485 nm — the low-purity blue the night-rendering literature gives scotopic vision (Jensen et al. 2000; Khan & Pattanaik 2004). */
174
+ readonly rodHue: {
175
+ readonly nm: 485;
176
+ readonly purity: 0.18;
177
+ };
178
+ /** Eigengrau — the "intrinsic grey" the eye reports with no light at all (the rods' own dark noise); the value the term is given. */
179
+ readonly eigengrau: {
180
+ readonly token: "Eigengrau (the dark's own grey)";
181
+ readonly css: "#16161d";
182
+ };
183
+ /** The appearance's one scale: the moonlit sage is drawn at HALF the sunlit one's displayed luminance — the million can't be shown; the adapted eye's report is. */
184
+ readonly litOverDay: 0.5;
185
+ /** The rods' own noise on the display: ±2/255, blue noise, achromatic. */
186
+ readonly snow: number;
187
+ /** CIECAM02's surround factor for the eye's adaptation to the Moon's colour: 0.8, a dark surround. */
188
+ readonly surround: 0.8;
189
+ };
190
+ /** The night's model, for a host that rebuilds the Moon from its own numbers (the desk's dev panel — D5a; the prototype's lab/params.ts). */
191
+ export { dayLuminance, type MatLight, nightLight } from "./mat/night";
192
+ /** Eigengrau, parsed — what a host hands `nightLight` (lab/params.ts rebuilds the night from its panel). */
193
+ export declare const EIGENGRAU: RGB;
194
+ /** The light the mat pass reads, per theme: the Sun (the reference's chain, bit for bit) by day, the Moon by night. */
195
+ export declare const MAT_LIGHT: Record<ThemeName, MatLight>;
196
+ /**
197
+ * The PORTAL's law (PORTAL.md §2.5, MINIMAT.md §5) — the live inside's GATE: a container's face shows its live inside
198
+ * only when its short side on screen is at least `lo` CSS px, fading in fully by `hi` (the rung law applied to portals).
199
+ * Under it the face is drawn by the container itself (the mini mat's lattice and chips); across it the nested desk fades
200
+ * in over them; past it the face is the nested desk, the flight's first frame. The engine's (nav/portal.ts
201
+ * `PORTAL_GATE`) since K4a — the mini mat's law (minimat/theme.ts) takes it by name, and the kinds' specs moved to their
202
+ * own folders (paper/, notebook/, board/, minimat/ `theme.ts`; the hand's law to kit/text.ts; what they share to
203
+ * kit/physics.ts).
204
+ */
205
+ export declare const PORTAL: {
206
+ readonly gate: readonly [140, 220];
207
+ };
208
+ /**
209
+ * The MARKS — the desk's chrome as the renderer draws it over every object (stratum 5; design-015 §7,
210
+ * D4a): *Marks on the Mat* v2 (claude.ai artifact W9xB23bF9JkSoZhxqKpjaQ, sources
211
+ * `vibe-field/draft/desk-chrome/`; Q-a…Q-k agreed 2026-09-25), its proposed DESIGN.md §14 "the
212
+ * desk's hands". Every mark has one hand and every hand one ink: YOU draw in the PENCIL — the
213
+ * selection's focus brackets, a several's union and its members' ticks, the knobs, the vellum
214
+ * marquee, your extent on the rulers (`--vf-select`'s hue, OKLCH 252°, lifted to L .76: 3.62:1 on
215
+ * the lit mat) — with a dark KEYLINE under every stroke so it holds on paper and on the whiteboard;
216
+ * the DESK states facts about space in the LASER — the snap guides, the equal gaps and their numbers
217
+ * — which is light, so it is ADDED; and the TAPE is masking tape across a taped object's top corners,
218
+ * an attachment of the OBJECT (it zooms with it) and so moonlit by night, where the pencil and the
219
+ * laser are light and the Moon does not dim them (Q-k). Lengths are SCREEN px (the chrome keeps its
220
+ * size at every zoom) unless named; the numbers are chrome.js's `CHROME`/`INK` and its `drawSelection`
221
+ * · `drawMember` · `drawUnion` · `drawMarquee` · `drawGuides` · `flare` · `pill` · `drawRulerBand`,
222
+ * number for number, and desk.css's tape; the clocks are the page's §14 motion table (ms).
223
+ */
224
+ export declare const MARKS: {
225
+ /** The inks, each with its token (the page's §14; desk.css; chrome.js `INK`). */
226
+ readonly inks: {
227
+ readonly pencil: {
228
+ readonly token: "--desk-pencil (Marks on the Mat §14, proposed)";
229
+ readonly css: "#79b5f8";
230
+ };
231
+ /** The keyline under a pencil stroke: the mat's cast at 34 % (`--desk-keyline`). */
232
+ readonly keyline: {
233
+ readonly token: "--desk-keyline — the tree-shadow design's `--cast-rgb`";
234
+ readonly css: "rgb(14 26 10 / .34)";
235
+ };
236
+ /** A resize knob's face: chrome.js `INK.paper`. */
237
+ readonly paper: {
238
+ readonly token: "chrome.js INK.paper";
239
+ readonly css: "#fffdf8";
240
+ };
241
+ readonly laser: {
242
+ readonly token: "--desk-laser (the bloom, added)";
243
+ readonly css: "#ff2e93";
244
+ };
245
+ readonly laserLine: {
246
+ readonly token: "--desk-laser-line";
247
+ readonly css: "#ff4fa3";
248
+ };
249
+ readonly laserCore: {
250
+ readonly token: "--desk-laser-core (5.94:1 on the lit mat)";
251
+ readonly css: "#ffd6ea";
252
+ };
253
+ /** The pencil pill's numerals: the tray's ink (`--desk-ink`, solid); the laser pill's: white. */
254
+ readonly tray: {
255
+ readonly token: "--desk-ink, solid (the tree-shadow design's `--ink`)";
256
+ readonly css: "#100904";
257
+ };
258
+ readonly white: {
259
+ readonly token: "chrome.js `pill` — the laser pill's numerals";
260
+ readonly css: "#ffffff";
261
+ };
262
+ readonly tape: {
263
+ readonly token: "--desk-tape";
264
+ readonly css: "rgb(238 228 204 / .88)";
265
+ };
266
+ /** The vellum's veil: cream by day, a cool milk by night (chrome.js `drawMarquee`). */
267
+ readonly vellumDay: {
268
+ readonly token: "chrome.js vellum, day";
269
+ readonly css: "rgb(255 250 238 / .11)";
270
+ };
271
+ readonly vellumNight: {
272
+ readonly token: "chrome.js vellum, night";
273
+ readonly css: "rgb(214 226 255 / .07)";
274
+ };
275
+ };
276
+ /** The keyline is this much wider than the stroke it lies under. */
277
+ readonly keyline: {
278
+ readonly grow: 2;
279
+ };
280
+ /** One object selected: the frame 6 out, brackets reaching 16 (≤ 30 % of a side, never under r + 2), 1.5 thick, the hairline between them one DEVICE px at 42 %, the corner r + 6 ≤ 10; the lock-on arrives from 8 further out, its presence full by 1/2.2 of the way; knobs (radius 3.5, a cast ring 1 wider at 28 %) where the object resizes; under 24 px on screen, one ring. */
281
+ readonly select: {
282
+ readonly gap: 6;
283
+ readonly reach: 16;
284
+ readonly share: 0.3;
285
+ readonly minOverR: 2;
286
+ readonly stroke: 1.5;
287
+ readonly hair: 0.42;
288
+ readonly radiusMax: 10;
289
+ readonly arrive: 8;
290
+ readonly rise: 2.2;
291
+ readonly knob: 3.5;
292
+ readonly knobShadow: 0.28;
293
+ readonly knobStroke: 1.5;
294
+ readonly collapse: 24;
295
+ };
296
+ /** A member of several: quiet ticks — 4 out, reaching 8, 1.25 thick, at 62 %; the union carries the weight. */
297
+ readonly member: {
298
+ readonly gap: 4;
299
+ readonly reach: 8;
300
+ readonly radiusMax: 8;
301
+ readonly stroke: 1.25;
302
+ readonly alpha: 0.62;
303
+ };
304
+ /** Several: one union, 10 out, square to the mat, its corner 4. */
305
+ readonly union: {
306
+ readonly gap: 10;
307
+ readonly radius: 4;
308
+ };
309
+ /** The vellum: its pencil edge at 80 % (one device px), brackets reaching 12 at its corners once both sides pass 14, the count riding the cursor at +14, +18. */
310
+ readonly marquee: {
311
+ readonly edge: 0.8;
312
+ readonly reach: 12;
313
+ readonly minSide: 14;
314
+ readonly count: readonly [14, 18];
315
+ };
316
+ /** A number the desk states: 10 px mono, 8 wider than its text, 15 tall, corner 3.5. */
317
+ readonly pill: {
318
+ readonly size: 10;
319
+ readonly pad: 8;
320
+ readonly height: 15;
321
+ readonly radius: 3.5;
322
+ };
323
+ /** The tray's name tags as LABEL TAPE (K5b, D-K5b.7 — marks/layout.ts `tagMarks`): the embosser's near-black tape and the pale plastic of its raised capitals. */
324
+ readonly label: {
325
+ readonly tape: "#17181b";
326
+ readonly letters: "#ecebe4";
327
+ };
328
+ /**
329
+ * The laser: a faint line wall to wall (3 px at 12 %, then 1 device px + 0.5 at 34 %, both added), and between the
330
+ * objects it aligns, 14 past them, the bloom (9 · 5 · 2.6 px at 7 · 16 · 32 %, added) under a 1.25 px line at 95 %
331
+ * with a 0.6 px core at 95 %; a centre is dotted (a dot every 4.51 px: the bloom 0.7 as wide, the line 2, the core 1);
332
+ * a new alignment strikes at 1.8×; a flare (radius 7) at every aligned corner; a gap, a 4 px bloom at 18 % under a
333
+ * 1.1 px line with 4 px ticks at its ends, its number in a laser pill on it (off it, under 26 px).
334
+ */
335
+ readonly laser: {
336
+ readonly wall: readonly [readonly [3, 0.12], readonly [0.5, 0.34]];
337
+ readonly bloom: readonly [readonly [9, 0.07], readonly [5, 0.16], readonly [2.6, 0.32]];
338
+ readonly line: 1.25;
339
+ readonly core: 0.6;
340
+ readonly alpha: 0.95;
341
+ readonly dotted: {
342
+ readonly period: 4.51;
343
+ readonly bloom: 0.7;
344
+ readonly line: 2;
345
+ readonly core: 1;
346
+ };
347
+ readonly past: 14;
348
+ readonly strike: 0.8;
349
+ readonly flare: {
350
+ readonly radius: 7;
351
+ readonly stop: 0.25;
352
+ readonly core: 0.9;
353
+ readonly mid: 0.55;
354
+ };
355
+ readonly bar: {
356
+ readonly bloom: readonly [4, 0.18];
357
+ readonly line: 1.1;
358
+ readonly tick: 4;
359
+ readonly pillFrom: 26;
360
+ readonly off: readonly [16, 14];
361
+ };
362
+ };
363
+ /** Your extent on the rulers (the mat's RULER band): a pencil wash at 16 %, its edges at 95 %, the edge coordinates 4 off them, 7 up from the band's inner line, over a 3 px cast halo at 55 %; a guide ticks the band in laser (1.5 px at 90 %, added). */
364
+ readonly ruler: {
365
+ readonly wash: 0.16;
366
+ readonly edge: 0.95;
367
+ readonly label: {
368
+ readonly gap: 4;
369
+ readonly lift: 7;
370
+ readonly halo: 1.5;
371
+ readonly haloAlpha: 0.55;
372
+ };
373
+ readonly tick: {
374
+ readonly width: 1.5;
375
+ readonly alpha: 0.9;
376
+ readonly inset: 3;
377
+ };
378
+ };
379
+ /** Masking tape (desk.css `.obj-tape`): two strips 60 × 17 (object units) crossing the top corners, 5 over the top edge and 20 past each side, turned 37°; fibres 1 in 3 at 10 % white, a light from above (18 % white → 4 % black); moonlit by night. */
380
+ readonly tape: {
381
+ readonly w: 60;
382
+ readonly h: 17;
383
+ readonly over: 5;
384
+ readonly past: 20;
385
+ readonly turn: 37;
386
+ readonly fibre: {
387
+ readonly every: 3;
388
+ readonly alpha: 0.1;
389
+ };
390
+ readonly sheen: readonly [0.18, 0.04];
391
+ readonly night: {
392
+ readonly saturate: 0.3;
393
+ readonly brightness: 0.46;
394
+ };
395
+ readonly press: 1.22;
396
+ };
397
+ /** The clocks, ms: the lock-on (on `--vf-ease-lift`) and the leave; several's union and its fade; the vellum's fold (`--vf-ease-island`); the strike; the tape pressed (the second strip 60 later) and lifted; the tape's GIVE — a drag that meets it shivers 2.2 px and settles. */
398
+ readonly clocks: {
399
+ readonly lockOn: 180;
400
+ readonly leave: 120;
401
+ readonly union: 220;
402
+ readonly unionFade: 120;
403
+ readonly fold: 240;
404
+ readonly strike: 160;
405
+ readonly tapePress: 240;
406
+ readonly tapeStagger: 60;
407
+ readonly tapeLift: 160;
408
+ readonly give: 360;
409
+ };
410
+ readonly give: {
411
+ readonly px: 2.2;
412
+ readonly rate: 44;
413
+ };
414
+ };
415
+ /**
416
+ * THE PEGBOARD TRAY (design-017 §6.5–§6.6; K3; design-018 §3) — the research board (research/sdf-pegboard, shader.js) under the desk's
417
+ * light, lying ON the mat. The face is its own render's (preview.jpg): lit flat, a flat face is drawn at this byte (the paper's law — a
418
+ * configured byte is the drawn byte). The punched edge keeps the research's edge/face albedo ratio. A hole shows the DESK as drawn under
419
+ * it (design-018 §3 — the research's plaster wall retired): the cavity is the share of the room's light that reaches the mat through a
420
+ * hole — at the hole's edge, at its heart, over what width (pitches) — kept near 1, so the densest hole is the mat's own shade under a
421
+ * leaf (one shadow language). The LAMP is the research's HOME lamp (D-K3.4, decided): from the upper left at 48°, so its light lays a
422
+ * patch through each slot on the mat, a shadow crescent along the lamp's side — its direction as the research states it (shader.js
423
+ * `lightDir`: azimuth from the eye's axis toward +x, elevation up the board, degrees), its angular radius the research's too (D-K3.5);
424
+ * the colour law and the room are the desk's.
425
+ */
426
+ export declare const TRAY: {
427
+ readonly face: {
428
+ readonly token: "research/sdf-pegboard preview.jpg — the face, lit flat";
429
+ readonly css: "#cdb491";
430
+ };
431
+ /** shader.js FACE_ALB · EDGE_ALB, linear. */
432
+ readonly research: {
433
+ readonly face: readonly [0.42, 0.26, 0.135];
434
+ readonly edge: readonly [0.56, 0.41, 0.25];
435
+ };
436
+ readonly cavity: {
437
+ readonly edge: 0.9;
438
+ readonly heart: 1;
439
+ readonly width: 0.1;
440
+ };
441
+ readonly lamp: {
442
+ readonly azimuth: -36;
443
+ readonly elevation: 48;
444
+ };
445
+ readonly lampSize: 0.06;
446
+ /**
447
+ * K5a — the ACCESSORIES the specimens hang on (hooks, shelves, clips, rails): SKÅDIS's white powder coat warmed to sit on the
448
+ * hardboard; how far each stands off the board (pitches — its shadow's reach on the board under the lamp); the shadow's strength.
449
+ */
450
+ readonly accessory: {
451
+ readonly token: "SKÅDIS white, warmed";
452
+ readonly css: "#e8e3d9";
453
+ readonly height: {
454
+ readonly hook: 0.45;
455
+ readonly shelf: 0.6;
456
+ readonly clip: 0.3;
457
+ readonly rail: 0.4;
458
+ };
459
+ readonly shadow: 0.38;
460
+ };
461
+ /** K5a — a specimen under the mouse lifts this share of the hold's lift (its own kind's `lift`): its shadow grows. */
462
+ readonly hoverLift: 0.3;
463
+ };
464
+ /** Everything the passes read, as numbers. */
465
+ export interface GroundTheme {
466
+ readonly name: ThemeName;
467
+ /** The clear colour — what shows where nothing is drawn (the mat covers it at rest). */
468
+ readonly canvasBg: RGB;
469
+ /** §2.5 the selection ring. */
470
+ readonly select: RGB;
471
+ /** The cutting mat's light (mat/night.ts): the Sun by day, the Moon by night. */
472
+ readonly matLight: MatLight;
473
+ }
474
+ /** A theme from a palette — the host's projection (lab/theme.ts builds VibeField's two). */
475
+ export declare function themeFrom(name: ThemeName, p: Palette): GroundTheme;
@@ -0,0 +1,99 @@
1
+ /** The carry's numbers: the lift's scale (widgetlab's ×1.06) and spring, the put-back's glide, the hand-off's patience, the grow's length. */
2
+ export declare const CARRY: {
3
+ /** The copy at its full lift is this much larger than its specimen, about the grab point. */
4
+ readonly liftScale: 1.06;
5
+ readonly liftHz: 9;
6
+ /** A take put back glides home in this long (widgetlab's 240 ms), on the drawer's curve. */
7
+ readonly backMs: 240;
8
+ /** A handed copy waits this many frames for its ghost; none (the hand-off was refused), it is put back. */
9
+ readonly handFrames: 3;
10
+ /** The ghost grows to its own size in the drawer's slide (340 ms, its curve): it is itself as the drawer is gone. */
11
+ readonly growMs: 340;
12
+ };
13
+ /** The take as core holds it (`Tray`): the type lifted ("" none), the grab point across the object, the pointer, the hand-off count. */
14
+ export interface CarryFacts {
15
+ readonly take: string;
16
+ readonly u: number;
17
+ readonly v: number;
18
+ readonly x: number;
19
+ readonly y: number;
20
+ readonly handed: number;
21
+ }
22
+ /** A specimen as the board drew it this frame: its type, the scale its kind drew it at, its object's rect on screen (CSS px). */
23
+ export interface CarrySpecimen {
24
+ readonly type: string;
25
+ readonly zoom: number;
26
+ readonly x0: number;
27
+ readonly y0: number;
28
+ readonly x1: number;
29
+ readonly y1: number;
30
+ }
31
+ /** An insert ghost in the world: its entity and type, its rect (world, top-left), whether it flies home and how far (its tween, 0 … 1). */
32
+ export interface CarryGhost {
33
+ readonly entity: number;
34
+ readonly type: string;
35
+ readonly x: number;
36
+ readonly y: number;
37
+ readonly w: number;
38
+ readonly h: number;
39
+ readonly retiring: boolean;
40
+ readonly progress: number;
41
+ }
42
+ /** The desk's camera (world → screen: `(p − cam) · zoom`). */
43
+ export interface CarryCamera {
44
+ readonly x: number;
45
+ readonly y: number;
46
+ readonly zoom: number;
47
+ }
48
+ /**
49
+ * One carried object this frame. `ghost` — the insert ghost's entity (its rect is the world's, its props the world's), absent for a copy
50
+ * (its rect its natural size about the origin, its props what one taken is made with). The object's point `(u, v)` across its rect lies at
51
+ * `(px, py)` on screen, at `zoom` screen px per object unit; `lift` its hold (0 … 1).
52
+ */
53
+ export interface CarryPose {
54
+ /** The carried thing's id — stable from its lift to its put-back or its hand-off (a copy's record key). */
55
+ readonly id: number;
56
+ readonly type: string;
57
+ readonly ghost?: number;
58
+ readonly u: number;
59
+ readonly v: number;
60
+ readonly px: number;
61
+ readonly py: number;
62
+ readonly zoom: number;
63
+ readonly lift: number;
64
+ /** The phase, a rig's witness. */
65
+ readonly phase: "lift" | "back" | "handing" | "grow" | "home";
66
+ }
67
+ export interface TrayCarry {
68
+ /**
69
+ * Step to `now` (frame clock, ms) with this frame's facts: the take (undefined: no tray), the specimens as drawn, the insert ghosts, the
70
+ * camera, the drawer's slide `p` (the ghost is the desk's again once it is its own size and the drawer is gone). Returns the poses.
71
+ */
72
+ step(now: number, facts: CarryFacts | undefined, specimens: readonly CarrySpecimen[], ghosts: readonly CarryGhost[], cam: CarryCamera, p: number): readonly CarryPose[];
73
+ /** The ghosts drawn here this frame — none of the desk's rows (the builder's `presented`). */
74
+ presented(): ReadonlySet<number>;
75
+ /** Something still moves: the next frame paints too. */
76
+ live(): boolean;
77
+ /** The types whose copy is up or on its way (their slots are made ahead of a hand-off — a composite kind's pass is made async). */
78
+ types(): readonly string[];
79
+ state(): {
80
+ readonly poses: readonly CarryPose[];
81
+ readonly handed: number;
82
+ readonly live: boolean;
83
+ };
84
+ }
85
+ export declare function createTrayCarry(): TrayCarry;
86
+ /**
87
+ * A pose's VIEW: the camera under which the object's point `(u, v)` across `rect` (its own units — the world's for a ghost, its natural
88
+ * size about the origin for a copy) lies at the pose's pivot on screen, at its scale.
89
+ */
90
+ export declare function carryView(pose: CarryPose, rect: {
91
+ readonly x: number;
92
+ readonly y: number;
93
+ readonly w: number;
94
+ readonly h: number;
95
+ }): {
96
+ readonly camX: number;
97
+ readonly camY: number;
98
+ readonly zoom: number;
99
+ };