@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.
- package/README.md +79 -50
- package/dist/chunk-BA7XJC27.js +2429 -0
- package/dist/chunk-BA7XJC27.js.map +1 -0
- package/dist/chunk-BKV4ZEU3.js +1 -0
- package/dist/chunk-BKV4ZEU3.js.map +1 -0
- package/dist/{chunk-5FQS7V2C.js → chunk-DYK6KNLG.js} +13303 -7485
- package/dist/chunk-DYK6KNLG.js.map +1 -0
- package/dist/chunk-ENIFIUEP.js +155 -0
- package/dist/chunk-ENIFIUEP.js.map +1 -0
- package/dist/chunk-IBWWLA6D.js +634 -0
- package/dist/chunk-IBWWLA6D.js.map +1 -0
- package/dist/{chunk-OR5FNVUE.js → chunk-JS6PG6YD.js} +398 -167
- package/dist/chunk-JS6PG6YD.js.map +1 -0
- package/dist/chunk-QXOCF56A.js +148 -0
- package/dist/chunk-QXOCF56A.js.map +1 -0
- package/dist/chunk-ZPUPBULB.js +7399 -0
- package/dist/chunk-ZPUPBULB.js.map +1 -0
- package/dist/desk-engine.js +36 -0
- package/dist/desk-engine.js.map +1 -0
- package/dist/desk-kit.js +244 -0
- package/dist/desk-kit.js.map +1 -0
- package/dist/desk-objects.js +12728 -0
- package/dist/desk-objects.js.map +1 -0
- package/dist/desk.js +469 -0
- package/dist/desk.js.map +1 -0
- package/dist/devtools.js +233 -189
- package/dist/devtools.js.map +1 -1
- package/dist/dom.js +7 -19
- package/dist/index.js +232 -20
- package/dist/kernel.js +53 -25
- package/dist/react.js +1045 -38
- package/dist/react.js.map +1 -1
- package/dist/types/packages/core/src/behavior/define-behavior.d.ts +11 -0
- package/dist/types/packages/core/src/behavior/runtime.d.ts +4 -0
- package/dist/types/packages/core/src/canvas/define-canvas-type.d.ts +86 -0
- package/dist/types/packages/core/src/canvas/define-container.d.ts +17 -0
- package/dist/types/packages/core/src/canvas/diagnostics.d.ts +27 -0
- package/dist/types/packages/core/src/canvas/engine-catalog.d.ts +70 -0
- package/dist/types/packages/core/src/canvas/extensions.d.ts +125 -0
- package/dist/types/packages/core/src/canvas/frame-behavior-host.d.ts +16 -0
- package/dist/types/packages/core/src/canvas/frame-preview.d.ts +79 -0
- package/dist/types/packages/core/src/canvas/frame-projection.d.ts +38 -0
- package/dist/types/packages/core/src/canvas/frame-view.d.ts +36 -0
- package/dist/types/packages/core/src/canvas/migrate.d.ts +14 -0
- package/dist/types/packages/core/src/canvas/placement.d.ts +30 -0
- package/dist/types/packages/core/src/canvas/presentation-transition.d.ts +100 -0
- package/dist/types/packages/core/src/canvas/runtime-extension-host.d.ts +16 -0
- package/dist/types/packages/core/src/canvas/session.d.ts +47 -0
- package/dist/types/packages/core/src/catalog/camera-derived.d.ts +16 -27
- package/dist/types/packages/core/src/catalog/desk.d.ts +326 -0
- package/dist/types/packages/core/src/catalog/gesture.d.ts +51 -0
- package/dist/types/packages/core/src/catalog/graph.d.ts +2 -2
- package/dist/types/packages/core/src/catalog/index.d.ts +2 -0
- package/dist/types/packages/core/src/catalog/pointer.d.ts +42 -0
- package/dist/types/packages/core/src/catalog/selection-presence.d.ts +7 -0
- package/dist/types/packages/core/src/catalog/settings-resources.d.ts +28 -2
- package/dist/types/packages/core/src/catalog/surface.d.ts +1 -0
- package/dist/types/packages/core/src/doc/doc-commit-sink.d.ts +18 -2
- package/dist/types/packages/core/src/doc/doc-kit.d.ts +21 -2
- package/dist/types/packages/core/src/doc/envelope.d.ts +5 -2
- package/dist/types/packages/core/src/doc/schema-migrate.d.ts +1 -1
- package/dist/types/packages/core/src/doc/version-gate.d.ts +21 -3
- package/dist/types/packages/core/src/engine/commit-sink.d.ts +10 -1
- package/dist/types/packages/core/src/engine/engine.d.ts +6 -0
- package/dist/types/packages/core/src/engine/frame-control.d.ts +74 -0
- package/dist/types/packages/core/src/engine/guests.d.ts +4 -1
- package/dist/types/packages/core/src/engine/world-doors.d.ts +12 -0
- package/dist/types/packages/core/src/facade/create-canvas-engine.d.ts +146 -13
- package/dist/types/packages/core/src/index.d.ts +34 -13
- package/dist/types/packages/core/src/input/queue.d.ts +3 -1
- package/dist/types/packages/core/src/interaction/install.d.ts +30 -0
- package/dist/types/packages/core/src/interaction/wakes.d.ts +24 -0
- package/dist/types/packages/core/src/nav/nav-geometry.d.ts +100 -0
- package/dist/types/packages/core/src/nav/nested-canvas.d.ts +47 -4
- package/dist/types/packages/core/src/ops/cascade.d.ts +2 -1
- package/dist/types/packages/core/src/ops/claims.d.ts +6 -0
- package/dist/types/packages/core/src/ops/insert.d.ts +4 -0
- package/dist/types/packages/core/src/ops/point-pick.d.ts +4 -1
- package/dist/types/packages/core/src/ops/sibling-order.d.ts +14 -4
- package/dist/types/packages/core/src/ops/tray.d.ts +48 -0
- package/dist/types/packages/core/src/presence/presence-kit.d.ts +5 -0
- package/dist/types/packages/core/src/schema/meta.d.ts +10 -0
- package/dist/types/packages/core/src/schema/prefab.d.ts +8 -0
- package/dist/types/packages/core/src/settings/defaults.d.ts +25 -6
- package/dist/types/packages/core/src/surface/gpu-device.d.ts +55 -0
- package/dist/types/packages/core/src/systems/camera-sim.d.ts +29 -0
- package/dist/types/packages/core/src/systems/chrome.d.ts +15 -23
- package/dist/types/packages/core/src/systems/drag-mods.d.ts +34 -0
- package/dist/types/packages/core/src/systems/held.d.ts +71 -0
- package/dist/types/packages/core/src/systems/insert-ghost.d.ts +2 -0
- package/dist/types/packages/core/src/systems/l0-input.d.ts +14 -0
- package/dist/types/packages/core/src/systems/l1-pick.d.ts +37 -1
- package/dist/types/packages/core/src/systems/l2-arbitrate.d.ts +18 -4
- package/dist/types/packages/core/src/systems/l3-behave.d.ts +4 -1
- package/dist/types/packages/core/src/systems/l3-claim.d.ts +7 -0
- package/dist/types/packages/core/src/systems/l3-connect.d.ts +1 -1
- package/dist/types/packages/core/src/systems/l3-drop.d.ts +30 -1
- package/dist/types/packages/core/src/systems/l3-marquee.d.ts +2 -1
- package/dist/types/packages/core/src/systems/l3-ports.d.ts +1 -1
- package/dist/types/packages/core/src/systems/l4-cursor.d.ts +5 -0
- package/dist/types/packages/core/src/systems/nav-flight.d.ts +85 -3
- package/dist/types/packages/core/src/systems/nav-tap.d.ts +44 -0
- package/dist/types/packages/core/src/systems/press-wheel.d.ts +11 -0
- package/dist/types/packages/core/src/systems/tray.d.ts +108 -0
- package/dist/types/packages/core/src/systems/zoom-through.d.ts +30 -0
- package/dist/types/packages/core/src/tools/define-tool.d.ts +10 -0
- package/dist/types/packages/core/src/widget/define-widget.d.ts +166 -63
- package/dist/types/packages/core/src/widget/equip.d.ts +14 -2
- package/dist/types/packages/core/src/widget/held-tools.d.ts +83 -0
- package/dist/types/packages/core/src/widget/menu-actions.d.ts +44 -0
- package/dist/types/packages/core/src/widget/mount-store.d.ts +21 -46
- package/dist/types/packages/core/src/widget/spawn.d.ts +1 -1
- package/dist/types/packages/desk/src/assets/blue-noise.gen.d.ts +10 -0
- package/dist/types/packages/desk/src/card/card.d.ts +103 -0
- package/dist/types/packages/desk/src/compose/ambient.d.ts +59 -0
- package/dist/types/packages/desk/src/compose/builder.d.ts +285 -0
- package/dist/types/packages/desk/src/compose/children.d.ts +3 -0
- package/dist/types/packages/desk/src/compose/index.d.ts +14 -0
- package/dist/types/packages/desk/src/compose/marks.d.ts +126 -0
- package/dist/types/packages/desk/src/compose/pick.d.ts +5 -0
- package/dist/types/packages/desk/src/compose/reflector.d.ts +111 -0
- package/dist/types/packages/desk/src/compose/tap.d.ts +5 -0
- package/dist/types/packages/desk/src/docs.d.ts +23 -0
- package/dist/types/packages/desk/src/engine/budget.d.ts +38 -0
- package/dist/types/packages/desk/src/engine/device.d.ts +54 -0
- package/dist/types/packages/desk/src/engine/index.d.ts +5 -0
- package/dist/types/packages/desk/src/engine/pipeline.d.ts +36 -0
- package/dist/types/packages/desk/src/engine/rasters.d.ts +66 -0
- package/dist/types/packages/desk/src/engine/records.d.ts +56 -0
- package/dist/types/packages/desk/src/engine/shader.d.ts +22 -0
- package/dist/types/packages/desk/src/engine/struct.d.ts +39 -0
- package/dist/types/packages/desk/src/engine/target.d.ts +26 -0
- package/dist/types/packages/desk/src/gpu-ablation.d.ts +61 -0
- package/dist/types/packages/desk/src/gpu-memory.d.ts +54 -0
- package/dist/types/packages/desk/src/gpu-profiler.d.ts +141 -0
- package/dist/types/packages/desk/src/gpu-wrap.d.ts +8 -0
- package/dist/types/packages/desk/src/ground.d.ts +388 -0
- package/dist/types/packages/desk/src/hold/focus.d.ts +53 -0
- package/dist/types/packages/desk/src/hold/pose.d.ts +132 -0
- package/dist/types/packages/desk/src/hold/shaders.d.ts +9 -0
- package/dist/types/packages/desk/src/host/editor.d.ts +18 -0
- package/dist/types/packages/desk/src/host/index.d.ts +9 -0
- package/dist/types/packages/desk/src/host/ink.d.ts +18 -0
- package/dist/types/packages/desk/src/host/layer.d.ts +430 -0
- package/dist/types/packages/desk/src/host/picture.d.ts +2 -0
- package/dist/types/packages/desk/src/host/surface.d.ts +5 -0
- package/dist/types/packages/desk/src/index.d.ts +13 -0
- package/dist/types/packages/desk/src/kind.d.ts +187 -0
- package/dist/types/packages/desk/src/kinds/world.d.ts +429 -0
- package/dist/types/packages/desk/src/kit/arrays.d.ts +88 -0
- package/dist/types/packages/desk/src/kit/blobs.d.ts +40 -0
- package/dist/types/packages/desk/src/kit/book.d.ts +2 -0
- package/dist/types/packages/desk/src/kit/editor.d.ts +103 -0
- package/dist/types/packages/desk/src/kit/eye.d.ts +37 -0
- package/dist/types/packages/desk/src/kit/hold.d.ts +1 -0
- package/dist/types/packages/desk/src/kit/index.d.ts +26 -0
- package/dist/types/packages/desk/src/kit/inside.d.ts +116 -0
- package/dist/types/packages/desk/src/kit/layer.d.ts +159 -0
- package/dist/types/packages/desk/src/kit/light.d.ts +3 -0
- package/dist/types/packages/desk/src/kit/mesh.d.ts +29 -0
- package/dist/types/packages/desk/src/kit/mips.d.ts +2 -0
- package/dist/types/packages/desk/src/kit/nav.d.ts +2 -0
- package/dist/types/packages/desk/src/kit/paper-tex.d.ts +5 -0
- package/dist/types/packages/desk/src/kit/physics.d.ts +44 -0
- package/dist/types/packages/desk/src/kit/place.d.ts +44 -0
- package/dist/types/packages/desk/src/kit/print.d.ts +30 -0
- package/dist/types/packages/desk/src/kit/raster.d.ts +34 -0
- package/dist/types/packages/desk/src/kit/sdf.d.ts +1 -0
- package/dist/types/packages/desk/src/kit/seeds.d.ts +11 -0
- package/dist/types/packages/desk/src/kit/services.d.ts +34 -0
- package/dist/types/packages/desk/src/kit/springs.d.ts +12 -0
- package/dist/types/packages/desk/src/kit/strokes.d.ts +93 -0
- package/dist/types/packages/desk/src/kit/text.d.ts +142 -0
- package/dist/types/packages/desk/src/kit/uniform.d.ts +8 -0
- package/dist/types/packages/desk/src/kit/view.d.ts +39 -0
- package/dist/types/packages/desk/src/kit/wgsl.d.ts +15 -0
- package/dist/types/packages/desk/src/lattice/line.d.ts +15 -0
- package/dist/types/packages/desk/src/lattice/lod.d.ts +52 -0
- package/dist/types/packages/desk/src/lattice/ruler.d.ts +88 -0
- package/dist/types/packages/desk/src/marks/assemble.d.ts +65 -0
- package/dist/types/packages/desk/src/marks/ease.d.ts +4 -0
- package/dist/types/packages/desk/src/marks/laser.d.ts +41 -0
- package/dist/types/packages/desk/src/marks/layout.d.ts +167 -0
- package/dist/types/packages/desk/src/marks/pass.d.ts +59 -0
- package/dist/types/packages/desk/src/marks/shaders.d.ts +12 -0
- package/dist/types/packages/desk/src/mat/grid.d.ts +50 -0
- package/dist/types/packages/desk/src/mat/lamp.d.ts +14 -0
- package/dist/types/packages/desk/src/mat/layout.d.ts +144 -0
- package/dist/types/packages/desk/src/mat/mat-pass.d.ts +83 -0
- package/dist/types/packages/desk/src/mat/night.d.ts +95 -0
- package/dist/types/packages/desk/src/mat/projector.d.ts +39 -0
- package/dist/types/packages/desk/src/mat/shaders.d.ts +17 -0
- package/dist/types/packages/desk/src/mat/tilt.d.ts +14 -0
- package/dist/types/packages/desk/src/nav/flight.d.ts +186 -0
- package/dist/types/packages/desk/src/nav/portal.d.ts +95 -0
- package/dist/types/packages/desk/src/object.d.ts +46 -0
- package/dist/types/packages/desk/src/pass-instrument.d.ts +89 -0
- package/dist/types/packages/desk/src/shaders.d.ts +12 -0
- package/dist/types/packages/desk/src/shaders.gen.d.ts +16 -0
- package/dist/types/packages/desk/src/submit-instrument.d.ts +36 -0
- package/dist/types/packages/desk/src/theme.d.ts +475 -0
- package/dist/types/packages/desk/src/tray/carry.d.ts +99 -0
- package/dist/types/packages/desk/src/tray/drawer.d.ts +113 -0
- package/dist/types/packages/desk/src/tray/flux.d.ts +46 -0
- package/dist/types/packages/desk/src/tray/index.d.ts +4 -0
- package/dist/types/packages/desk/src/tray/lattice.d.ts +71 -0
- package/dist/types/packages/desk/src/tray/layout.d.ts +7 -0
- package/dist/types/packages/desk/src/tray/look.d.ts +29 -0
- package/dist/types/packages/desk/src/tray/pass.d.ts +96 -0
- package/dist/types/packages/desk/src/tray/shaders.d.ts +10 -0
- package/dist/types/packages/desk/src/tray/specimens.d.ts +199 -0
- package/dist/types/packages/devtools/src/attach.d.ts +22 -8
- package/dist/types/packages/devtools/src/dock.d.ts +18 -14
- package/dist/types/packages/devtools/src/gpu-panel.d.ts +105 -0
- package/dist/types/packages/devtools/src/index.d.ts +5 -4
- package/dist/types/packages/dom/src/desk-host.d.ts +91 -0
- package/dist/types/packages/dom/src/host.d.ts +13 -14
- package/dist/types/packages/dom/src/index.d.ts +12 -10
- package/dist/types/packages/dom/src/loop.d.ts +18 -1
- package/dist/types/packages/dom/src/pointer-adapter.d.ts +5 -29
- package/dist/types/packages/dom/src/widget-focus.d.ts +17 -13
- package/dist/types/packages/ice/src/desk-engine.d.ts +2 -0
- package/dist/types/packages/ice/src/desk-kit.d.ts +6 -0
- package/dist/types/packages/ice/src/desk-objects.d.ts +5 -0
- package/dist/types/packages/ice/src/desk.d.ts +5 -0
- package/dist/types/packages/kernel/src/atlas-pack.d.ts +157 -0
- package/dist/types/packages/kernel/src/bezier.d.ts +0 -15
- package/dist/types/packages/kernel/src/coords.d.ts +0 -39
- package/dist/types/packages/kernel/src/index.d.ts +2 -2
- package/dist/types/packages/kernel/src/nav-flight.d.ts +6 -0
- package/dist/types/packages/kernel/src/tray.d.ts +155 -0
- package/dist/types/packages/objects/src/board/board-pass.d.ts +180 -0
- package/dist/types/packages/objects/src/board/board-pen.d.ts +36 -0
- package/dist/types/packages/objects/src/board/board.d.ts +104 -0
- package/dist/types/packages/objects/src/board/data.d.ts +31 -0
- package/dist/types/packages/objects/src/board/history.d.ts +33 -0
- package/dist/types/packages/objects/src/board/kind.d.ts +208 -0
- package/dist/types/packages/objects/src/board/layout.d.ts +102 -0
- package/dist/types/packages/objects/src/board/object.d.ts +7 -0
- package/dist/types/packages/objects/src/board/pen.d.ts +71 -0
- package/dist/types/packages/objects/src/board/shaders.d.ts +36 -0
- package/dist/types/packages/objects/src/board/stroke.d.ts +99 -0
- package/dist/types/packages/objects/src/board/theme.d.ts +150 -0
- package/dist/types/packages/objects/src/calendar/data.d.ts +97 -0
- package/dist/types/packages/objects/src/calendar/events.d.ts +58 -0
- package/dist/types/packages/objects/src/calendar/hand.d.ts +53 -0
- package/dist/types/packages/objects/src/calendar/host/input.d.ts +67 -0
- package/dist/types/packages/objects/src/calendar/host/print.d.ts +9 -0
- package/dist/types/packages/objects/src/calendar/kind.d.ts +297 -0
- package/dist/types/packages/objects/src/calendar/law.d.ts +151 -0
- package/dist/types/packages/objects/src/calendar/layout.d.ts +47 -0
- package/dist/types/packages/objects/src/calendar/month.d.ts +75 -0
- package/dist/types/packages/objects/src/calendar/object.d.ts +45 -0
- package/dist/types/packages/objects/src/calendar/pad.d.ts +42 -0
- package/dist/types/packages/objects/src/calendar/pass.d.ts +229 -0
- package/dist/types/packages/objects/src/calendar/print.d.ts +87 -0
- package/dist/types/packages/objects/src/calendar/printing.d.ts +80 -0
- package/dist/types/packages/objects/src/calendar/roll.d.ts +45 -0
- package/dist/types/packages/objects/src/calendar/shaders.d.ts +12 -0
- package/dist/types/packages/objects/src/calendar/sheet.d.ts +43 -0
- package/dist/types/packages/objects/src/calendar/tiles.d.ts +67 -0
- package/dist/types/packages/objects/src/calendar/turn.d.ts +73 -0
- package/dist/types/packages/objects/src/calendar/writing.d.ts +42 -0
- package/dist/types/packages/objects/src/index.d.ts +22 -0
- package/dist/types/packages/objects/src/kinds.d.ts +24 -0
- package/dist/types/packages/objects/src/minimat/inside.d.ts +17 -0
- package/dist/types/packages/objects/src/minimat/kind.d.ts +51 -0
- package/dist/types/packages/objects/src/minimat/layout.d.ts +83 -0
- package/dist/types/packages/objects/src/minimat/minimat.d.ts +179 -0
- package/dist/types/packages/objects/src/minimat/object.d.ts +8 -0
- package/dist/types/packages/objects/src/minimat/pass.d.ts +61 -0
- package/dist/types/packages/objects/src/minimat/shaders.d.ts +10 -0
- package/dist/types/packages/objects/src/minimat/theme.d.ts +98 -0
- package/dist/types/packages/objects/src/notebook/ink.d.ts +70 -0
- package/dist/types/packages/objects/src/notebook/kind.d.ts +236 -0
- package/dist/types/packages/objects/src/notebook/law.d.ts +129 -0
- package/dist/types/packages/objects/src/notebook/layout.d.ts +46 -0
- package/dist/types/packages/objects/src/notebook/leaf.d.ts +44 -0
- package/dist/types/packages/objects/src/notebook/mesh.d.ts +20 -0
- package/dist/types/packages/objects/src/notebook/motion.d.ts +107 -0
- package/dist/types/packages/objects/src/notebook/object.d.ts +8 -0
- package/dist/types/packages/objects/src/notebook/pages.d.ts +56 -0
- package/dist/types/packages/objects/src/notebook/pass.d.ts +197 -0
- package/dist/types/packages/objects/src/notebook/pick.d.ts +30 -0
- package/dist/types/packages/objects/src/notebook/raster.d.ts +28 -0
- package/dist/types/packages/objects/src/notebook/shaders.d.ts +11 -0
- package/dist/types/packages/objects/src/notebook/shape.d.ts +155 -0
- package/dist/types/packages/objects/src/notebook/theme.d.ts +76 -0
- package/dist/types/packages/objects/src/palette.d.ts +577 -0
- package/dist/types/packages/objects/src/paper/host/body.d.ts +30 -0
- package/dist/types/packages/objects/src/paper/kind.d.ts +81 -0
- package/dist/types/packages/objects/src/paper/layout.d.ts +73 -0
- package/dist/types/packages/objects/src/paper/object.d.ts +31 -0
- package/dist/types/packages/objects/src/paper/pages.d.ts +43 -0
- package/dist/types/packages/objects/src/paper/paper-pass.d.ts +86 -0
- package/dist/types/packages/objects/src/paper/paper.d.ts +117 -0
- package/dist/types/packages/objects/src/paper/shaders.d.ts +18 -0
- package/dist/types/packages/objects/src/paper/theme.d.ts +58 -0
- package/dist/types/packages/objects/src/paper/typing.d.ts +51 -0
- package/dist/types/packages/objects/src/paper/writing.d.ts +161 -0
- package/dist/types/packages/objects/src/photo/carry.d.ts +33 -0
- package/dist/types/packages/objects/src/photo/kind.d.ts +136 -0
- package/dist/types/packages/objects/src/photo/layout.d.ts +39 -0
- package/dist/types/packages/objects/src/photo/object.d.ts +5 -0
- package/dist/types/packages/objects/src/photo/photo-pass.d.ts +104 -0
- package/dist/types/packages/objects/src/photo/photo.d.ts +262 -0
- package/dist/types/packages/objects/src/photo/pictures.d.ts +152 -0
- package/dist/types/packages/objects/src/photo/sample.d.ts +9 -0
- package/dist/types/packages/objects/src/photo/shaders.d.ts +18 -0
- package/dist/types/packages/objects/src/preset.d.ts +44 -0
- package/dist/types/packages/objects/src/shaders.d.ts +3 -0
- package/dist/types/packages/objects/src/shaders.gen.d.ts +21 -0
- package/dist/types/packages/react/src/canvas-hooks.d.ts +12 -0
- package/dist/types/packages/react/src/desk.d.ts +56 -0
- package/dist/types/packages/react/src/engine-context.d.ts +2 -2
- package/dist/types/packages/react/src/frame-preview-boundary.d.ts +19 -0
- package/dist/types/packages/react/src/hooks.d.ts +9 -14
- package/dist/types/packages/react/src/index.d.ts +16 -9
- package/dist/types/packages/react/src/keymap.d.ts +21 -2
- package/dist/types/packages/react/src/selection-menu.d.ts +171 -0
- package/dist/types/packages/react/src/tray-bar.d.ts +124 -0
- package/package.json +64 -31
- package/dist/chunk-5FQS7V2C.js.map +0 -1
- package/dist/chunk-JWRHAM7L.js +0 -1163
- package/dist/chunk-JWRHAM7L.js.map +0 -1
- package/dist/chunk-MFTMPJUF.js +0 -681
- package/dist/chunk-MFTMPJUF.js.map +0 -1
- package/dist/chunk-OR5FNVUE.js.map +0 -1
- package/dist/ground.js +0 -1213
- package/dist/ground.js.map +0 -1
- package/dist/r3f.js +0 -1644
- package/dist/r3f.js.map +0 -1
- package/dist/types/packages/core/src/input/measure-queue.d.ts +0 -30
- package/dist/types/packages/core/src/settings/ground-config.d.ts +0 -103
- package/dist/types/packages/core/src/systems/measure-ingest.d.ts +0 -26
- package/dist/types/packages/devtools/src/gl-panel.d.ts +0 -69
- package/dist/types/packages/dom/src/measure-adapter.d.ts +0 -31
- package/dist/types/packages/dom/src/measure-wiring.d.ts +0 -49
- package/dist/types/packages/dom/src/planes.d.ts +0 -33
- package/dist/types/packages/dom/src/reflectors/chrome.d.ts +0 -33
- package/dist/types/packages/dom/src/reflectors/dom-widgets.d.ts +0 -59
- package/dist/types/packages/dom/src/reflectors/graybox.d.ts +0 -31
- package/dist/types/packages/dom/src/reflectors/plane-transform.d.ts +0 -38
- package/dist/types/packages/ground/src/index.d.ts +0 -69
- package/dist/types/packages/ground/src/layer.d.ts +0 -40
- package/dist/types/packages/ground/src/pass.d.ts +0 -41
- package/dist/types/packages/ground/src/passes/grid-classic.d.ts +0 -30
- package/dist/types/packages/ground/src/passes/grid-magnet.d.ts +0 -31
- package/dist/types/packages/ground/src/passes/grid.d.ts +0 -28
- package/dist/types/packages/ground/src/passes/guides-collect.d.ts +0 -14
- package/dist/types/packages/ground/src/passes/guides.d.ts +0 -3
- package/dist/types/packages/ground/src/passes/magnet-collect.d.ts +0 -63
- package/dist/types/packages/ground/src/passes/soup-collect.d.ts +0 -35
- package/dist/types/packages/ground/src/passes/soup-mesh.d.ts +0 -8
- package/dist/types/packages/ground/src/passes/wires-collect.d.ts +0 -35
- package/dist/types/packages/ground/src/passes/wires.d.ts +0 -10
- package/dist/types/packages/ground/src/poles.d.ts +0 -47
- package/dist/types/packages/ground/src/renderer.d.ts +0 -15
- package/dist/types/packages/ice/src/ground.d.ts +0 -1
- package/dist/types/packages/ice/src/r3f.d.ts +0 -1
- package/dist/types/packages/kernel/src/eviction.d.ts +0 -23
- package/dist/types/packages/kernel/src/zoom-bands.d.ts +0 -19
- package/dist/types/packages/r3f/src/bridge.d.ts +0 -129
- package/dist/types/packages/r3f/src/composite-material.d.ts +0 -26
- package/dist/types/packages/r3f/src/compositor-pass.d.ts +0 -105
- package/dist/types/packages/r3f/src/dev-write-trap.d.ts +0 -30
- package/dist/types/packages/r3f/src/gl-root.d.ts +0 -96
- package/dist/types/packages/r3f/src/gl-router.d.ts +0 -70
- package/dist/types/packages/r3f/src/index.d.ts +0 -17
- package/dist/types/packages/r3f/src/island-state.d.ts +0 -112
- package/dist/types/packages/r3f/src/island.d.ts +0 -13
- package/dist/types/packages/r3f/src/pool.d.ts +0 -56
- package/dist/types/packages/r3f/src/preview-capture.d.ts +0 -19
- package/dist/types/packages/r3f/src/resource-registry.d.ts +0 -30
- package/dist/types/packages/r3f/src/self-sustain.d.ts +0 -39
- package/dist/types/packages/r3f/src/use-island-frame.d.ts +0 -39
- package/dist/types/packages/react/src/infinite-canvas.d.ts +0 -140
- package/dist/types/packages/react/src/preview-snapshots.d.ts +0 -17
- package/dist/types/packages/react/src/widget-preview.d.ts +0 -14
- package/dist/types/packages/react/src/widget-root.d.ts +0 -33
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* scene systems · doc kit · publish step · engine facade · reflector registry.
|
|
4
4
|
* Import wall: strata-ecs + @ice/kernel ONLY — never react/dom/three (enforced).
|
|
5
5
|
*/
|
|
6
|
-
export declare const CORE_VERSION = "0.
|
|
6
|
+
export declare const CORE_VERSION = "0.11.0";
|
|
7
7
|
export { defineSchemaOnce, hmrInvalidateOnSchemaChange } from "./boot/hmr";
|
|
8
8
|
export { All, Any, Not, Related, createWorld, defineQuery, defineSystem, defineTickSystem, enumOf, field, Local, } from "@vibecook/strata-ecs";
|
|
9
9
|
export type { Batch, Component, Condition, Entity, OrderPlace, Pipeline, Query, Relation, Resource, System, SystemCtx, Tag, TickSystem, World, } from "@vibecook/strata-ecs";
|
|
@@ -14,10 +14,12 @@ export { FrameInfo, setFrameInfo } from "./engine/frame-info";
|
|
|
14
14
|
export { createPipelineRegistry, PHASE_GROUPS, type AnySystem, type PhaseGroup, type PipelineRegistry } from "./engine/pipeline";
|
|
15
15
|
export { createReflectorRegistry, type ReflectorDef, type ReflectorObserve, type ReflectorQuerySpec, type ReflectorRegistry, } from "./engine/reflectors";
|
|
16
16
|
export { createEngine, type Engine, type EngineOpts, type FrameTelemetry, type PublishHook, type SystemRunRecord, } from "./engine/engine";
|
|
17
|
-
export { createFrameControl, SETTLE_CAP, type FrameControl } from "./engine/frame-control";
|
|
17
|
+
export { createFrameControl, SETTLE_CAP, SLEEP_TAIL, type FrameControl, type SleepStats } from "./engine/frame-control";
|
|
18
|
+
export { interactionPending } from "./interaction/wakes";
|
|
18
19
|
export { createGuestRegistry, GUEST_BUDGET, type GuestFactory, type GuestFrame, type GuestGeneration, type GuestInstance, type GuestLedgerRecord, type GuestRegistry, type GuestRegistryOpts, type GuestRun, type GuestSpec, type GuestStatus, } from "./engine/guests";
|
|
19
20
|
export { behaviors, defineBehavior, describeBehavior } from "./behavior/define-behavior";
|
|
20
|
-
export
|
|
21
|
+
export { createBehaviorRuntime } from "./behavior/runtime";
|
|
22
|
+
export type { BehaviorPresence, BehaviorRegistrationOptions, BehaviorRuntime, BehaviorRuntimeOpts, BehaviorSession, } from "./behavior/runtime";
|
|
21
23
|
export { BEHAVIOR_DEFAULT_PHASE, BEHAVIOR_PHASES, type AnyBehaviorAttachSpec, type AnyBehaviorDef, type BehaviorAttachSpec, type BehaviorChanges, type BehaviorCtxBase, type BehaviorCtxFor, type BehaviorDescription, type BehaviorFrame, type BehaviorHandle, type BehaviorHookName, type BehaviorHooks, type BehaviorPhase, type BehaviorPropDescription, type BehaviorQuery, type BehaviorQuerySpec, type BehaviorRead, type BehaviorReadDescription, type BehaviorSchema, type BehaviorSpec, type BehaviorStore, type BehaviorTx, type BehaviorWorld, type DataOf, type DurableBehaviorCtx, type EphemeralBehaviorCtx, type PeerFacet, type RuntimeBehaviorCtx, } from "./behavior/types";
|
|
22
24
|
export { compileBehavior, isDurableEligible, type CompiledBehavior } from "./behavior/compile";
|
|
23
25
|
export { behaviorMarkerKey, classifyBehaviorVersion, docBehaviorVersion, stampBehaviorMarker, BEHAVIOR_MARKER_PREFIX, type BehaviorMeta, type BehaviorVerdict, } from "./behavior/migrate";
|
|
@@ -49,31 +51,50 @@ export { createWireSync, type WireSyncSystem } from "./systems/l1-wires";
|
|
|
49
51
|
export { createPortMaterialize } from "./systems/l3-ports";
|
|
50
52
|
export { createConnectSystems, type ConnectSystems, type WirePreviewBuffer, } from "./systems/l3-connect";
|
|
51
53
|
export { ENGINE_SCHEMA_VERSION, ENVELOPE_MAGIC, ENVELOPE_VERSION, EnvelopeError, decodeEnvelope, encodeEnvelope, type EnvelopeHeader, } from "./doc/envelope";
|
|
52
|
-
export { gateVerdict, readDocVersionReport, stampEngineMeta, type DocVersionReport, type GateVerdict, } from "./doc/version-gate";
|
|
53
|
-
export { createDocCommitSink, createReadOnlyCommitSink } from "./doc/doc-commit-sink";
|
|
54
|
+
export { gateVerdict, readEnvelopeVersionReport, readDocVersionReport, stampEngineMeta, type DocVersionScope, type DocVersionReport, type GateVerdict, } from "./doc/version-gate";
|
|
55
|
+
export { type CommitExtender, createDocCommitSink, createReadOnlyCommitSink } from "./doc/doc-commit-sink";
|
|
54
56
|
export { DurableUndoStatus } from "@vibecook/strata-ecs/durable";
|
|
55
57
|
export type { DurableUndoStatusValue } from "@vibecook/strata-ecs/durable";
|
|
56
58
|
export { createDocSession, openDocSession, type DocSession, type DocSessionOpts, type OpenDocResult, } from "./doc/doc-kit";
|
|
57
59
|
export { runMigrations, type MigrationCtx, type MigrationOutcome } from "./doc/migrate";
|
|
58
60
|
export { p, type JsonShape, type PropSpec, type PropsDecl, type StandardSchemaV1 } from "./widget/props";
|
|
59
|
-
export { WidgetEquipped, defineWidget, renames, widgets, type
|
|
61
|
+
export { WidgetEquipped, defineWidget, renames, widgets, type WidgetDef, type WidgetGroup, type WidgetInteraction, type WidgetContainerDef, type WidgetContainerEntry, type WidgetPortalInsets, type WidgetPortDecl, type WidgetBehaviorDecl, type WidgetBehaviorEntry, type WidgetRename, type WidgetRenameEntry, type WidgetType, type TrayEntry, trayTakeProps, } from "./widget/define-widget";
|
|
62
|
+
export { type HeldGlyph, type HeldToolApi, type HeldToolDef, isHeldGlyph, type KeyChord, keyMatches, matchHeldTool } from "./widget/held-tools";
|
|
63
|
+
export { type MenuActionApi, type MenuActionDef, menuActionsFor } from "./widget/menu-actions";
|
|
64
|
+
export { DefaultCanvasType, ROOT_CANVAS_META_KEY, canvasIdentityOf, canvasPackId, canvasTypes, contributeCanvasCatalog, defineCanvasType, encodeCanvasIdentity, parseCanvasIdentity, sameCanvasIdentity, type CanvasCatalogSection, type CanvasCatalogContribution, type CanvasPlacementDef, type CanvasType, type CanvasTypeDef, type CanvasTypeIdentity, } from "./canvas/define-canvas-type";
|
|
65
|
+
export { defineContainer, type ContainerDef, type ContainerIngressDef, } from "./canvas/define-container";
|
|
66
|
+
export { bindEngineCatalog, compileEngineCatalog, dataPrefabFor, durablePrefabFor, engineCatalogFor, resolveToolFor, toolTypeFor, widgetTypeFor, type EngineCatalog, type EngineCatalogCompileOpts, } from "./canvas/engine-catalog";
|
|
67
|
+
export { createPlacementAuthority, type PlacementAuthority, type PlacementAuthorityOpts, type PlacementDecision, type PlacementReason, } from "./canvas/placement";
|
|
68
|
+
export { CanvasIntentScope, CanvasSession, createCanvasSessionController, type CanvasSessionController, type CanvasSessionValue, } from "./canvas/session";
|
|
69
|
+
export { collectCanvasDiagnostics, type CanvasDiagnostic, type CanvasDiagnosticCode, type CanvasDiagnosticSnapshot, } from "./canvas/diagnostics";
|
|
70
|
+
export { resolveFrameChildren, resolveFrameView, resolvePortal, type CanvasRect, type FrameChildrenOpts, type ResolvedFrameView, type ResolvedPortal, } from "./canvas/frame-view";
|
|
71
|
+
export { defineFrameProjection, frameProjections, type CanvasPreviewDeclaration, type FrameProjection, type FrameProjectionChildRef, type FrameProjectionContext, type FrameProjectionDef, type FrameProjectionRelationRow, } from "./canvas/frame-projection";
|
|
72
|
+
export { createFramePreviewStore, FRAME_PREVIEW_DEFAULT_BYTES, FRAME_PREVIEW_DEFAULT_CHILDREN, FRAME_PREVIEW_MAX_BYTES, FRAME_PREVIEW_MAX_CHILDREN, FRAME_PREVIEW_MIN_BYTES, type FramePreviewBudgets, type FramePreviewChild, type FramePreviewSnapshot, type FramePreviewStats, type FramePreviewStore, type FramePreviewStoreOpts, type FramePreviewValidity, } from "./canvas/frame-preview";
|
|
73
|
+
export { createPresentationTransitionCoordinator, type FrameSwitchDescriptor, type FrameSwitchRequest, type PreparedFrameSwitch, type PresentationMotion, type PresentationPlane, type PresentationReleaseReason, type PresentationRetainer, type PresentationTransitionAdapter, type PresentationTransitionCoordinator, type PresentationTransitionFrame, type PresentationTransitionStats, } from "./canvas/presentation-transition";
|
|
74
|
+
export { canvasRuntimeExtensions, defineCanvasRuntimeExtension, defineFrameBehavior, frameBehaviorPackId, frameBehaviors, type CanvasReadFacet, type CanvasRuntimeChanges, type CanvasRuntimeExtension, type CanvasRuntimeExtensionContext, type CanvasRuntimeExtensionDef, type CanvasScopedReader, type CanvasSemanticMigration, type CanvasSemanticMigrationContext, type ExistingPlacementPosture, type FrameBehavior, type FrameBehaviorDef, type FrameBehaviorWriteContext, } from "./canvas/extensions";
|
|
60
75
|
export { createWidgetEquipSystem } from "./widget/equip";
|
|
61
76
|
export { attachSpawnBehaviors, attachSpawnParent, spawnWidget, widgetSpawnInits, type SpawnWidgetOpts } from "./widget/spawn";
|
|
77
|
+
export type { FramePickSlot, FramePickSource } from "./systems/l1-pick";
|
|
62
78
|
export { setWidgetProps } from "./widget/set-props";
|
|
63
|
-
export { createWidgetRuntime, installWidgetRuntime, type
|
|
79
|
+
export { createWidgetRuntime, installWidgetRuntime, type WidgetRuntime } from "./widget/mount-store";
|
|
64
80
|
export * from "./settings/defaults";
|
|
65
|
-
export
|
|
66
|
-
export { CameraInertia, createCameraSystems, type CameraSystems } from "./systems/camera-sim";
|
|
81
|
+
export { CameraInertia, WheelZoomStep, createCameraSystems, type CameraSystems } from "./systems/camera-sim";
|
|
67
82
|
export { restoreAutosave, startAutosave, type Autosave, type AutosaveOpts, type AutosaveState, type AutosaveStatus, type AutosaveStorageRead, type AutosaveStorageWrite, type CancelScheduled, type RestoreResult, } from "./doc/autosave";
|
|
68
83
|
export { attachBroadcastRelay, type BroadcastRelay, type BroadcastRelayOpts, type RelayChannel, } from "./doc/broadcast-relay";
|
|
69
|
-
export { createMeasureQueue, type MeasureEvent, type MeasureQueue } from "./input/measure-queue";
|
|
70
|
-
export { createMeasureIngest } from "./systems/measure-ingest";
|
|
71
84
|
export { createBreakpointSystem, createSelectionChromeSystem } from "./systems/chrome";
|
|
72
85
|
export { createActiveMembership, createNestedCanvas, currentNavEntry, currentNavFrame, type NavOpts, type NestedCanvas, type NestedCanvasOpts, } from "./nav/nested-canvas";
|
|
73
|
-
export {
|
|
86
|
+
export { defaultArrivalCamera, fallbackNavFace, type NavFace, type NavGeometrySlot, type NavGeometrySource, NavIntent, NavRedress, resolveNavFace, smoothstep, staticFace, } from "./nav/nav-geometry";
|
|
87
|
+
export { createNavTap, NavTapMemo, type NavTapOpts } from "./systems/nav-tap";
|
|
88
|
+
export { createHeldInput, heldEntity, HOLD_INPUT, type HeldPoseSlot, type HeldPoseSource, type HeldScreenFrame } from "./systems/held";
|
|
89
|
+
export { createPressWheel } from "./systems/press-wheel";
|
|
90
|
+
export { createTrayInput, createTrayLay, hungTypes, scrollBy, specimensOf, TRAY_INPUT, type TrayPoseSlot, type TrayPoseSource, type TrayScreenFrame } from "./systems/tray";
|
|
91
|
+
export { closeTray, ensureTray, openTray, scrollTray, setTrayCategory, toggleTray, trayCategories, trayCategory, type TrayCategory, trayEntity, trayEntryCount, trayOpen } from "./ops/tray";
|
|
92
|
+
export { createZoomThrough, type ZoomThroughOpts } from "./systems/zoom-through";
|
|
93
|
+
export { abortNavFlight, createNavFlight, departedCameraOf, type DepartedCameraInputs, navFlightActive, NavTransition, publishNavCut, startNavFlight, type NavTransitionIdentity, } from "./systems/nav-flight";
|
|
74
94
|
export { attachPresence, createPresencePublish, createRemoteCursorsSystem, DEFAULT_PRESENCE_TTL_MS, installPresence, type InstallPresenceOpts, type PresenceOpts, type PresencePublishOpts, type PresenceSession, } from "./presence";
|
|
75
95
|
export { joinDoc, offerBase, type BootstrapClock, type JoinDocOpts, type JoinResult, } from "./doc/bootstrap";
|
|
76
96
|
export { broadcastChannelByteChannel, webSocketByteChannel, type ByteChannel, type OwnedByteChannel, type WebSocketLike, } from "./doc/channels";
|
|
77
97
|
export { createDrawTool, defineTool, tools, type CanvasDragRoute, type Tool, type ToolDef, type ToolGates, type ToolRoute, type WidgetDragRoute, } from "./tools/define-tool";
|
|
78
|
-
export { createCanvasEngine, type CanvasDocs, type CanvasEngine, type CanvasEngineOpts, type StageControl, type CanvasOps, } from "./facade/create-canvas-engine";
|
|
98
|
+
export { createCanvasEngine, type CanvasDocs, type CanvasEngine, type CanvasEngineOpts, type CurrentCanvasScope, type StageControl, type CanvasOps, } from "./facade/create-canvas-engine";
|
|
79
99
|
export { createDrawBehavior } from "./systems/l3-draw";
|
|
100
|
+
export { acquireCompositorDevice, GpuUnavailableError, type AcquireDeviceOpts, type EngineGpu, type GpuUncapturedError, } from "./surface/gpu-device";
|
|
@@ -6,7 +6,9 @@
|
|
|
6
6
|
* per tick and turns events into world facts. Handlers run mid-frame at
|
|
7
7
|
* arbitrary times — the queue is what keeps every world write inside the frame
|
|
8
8
|
* contract (design-002 §3). It is pre-ingest TRANSPORT, not world state: no
|
|
9
|
-
* system reads it, nothing observes it, it holds nothing across a drain
|
|
9
|
+
* system reads it, nothing observes it, and it holds nothing across a drain but
|
|
10
|
+
* the tail ingest hands back — the events past a pointer's transition, which
|
|
11
|
+
* are the next tick's facts (l0-input.ts, the fold's cut).
|
|
10
12
|
*
|
|
11
13
|
* Pointer identity: `pointerId` is the adapter's stable string for a device
|
|
12
14
|
* pointer — `"mouse"` for the one mouse, `"touch:<n>"` per touch contact,
|
|
@@ -17,15 +17,26 @@ import { SpatialIndex } from "../../../kernel/src/index";
|
|
|
17
17
|
import { type CommitSink } from "../engine/commit-sink";
|
|
18
18
|
import type { Engine } from "../engine/engine";
|
|
19
19
|
import type { InputQueue } from "../input/queue";
|
|
20
|
+
import { type FramePickSlot } from "../systems/l1-pick";
|
|
20
21
|
import { type SpawnProfiles } from "../systems/l2-recognize";
|
|
21
22
|
import { type WirePreviewBuffer } from "../systems/l3-connect";
|
|
23
|
+
import { type DropPlacementPolicy } from "../systems/l3-drop";
|
|
22
24
|
import { type MarqueeBuffer } from "../systems/l3-marquee";
|
|
25
|
+
import { type HeldPoseSlot } from "../systems/held";
|
|
26
|
+
import { type TrayPoseSlot } from "../systems/tray";
|
|
27
|
+
import type { NavGeometrySlot } from "../nav/nav-geometry";
|
|
23
28
|
/** Ensure the guaranteed pick-fallback entity exists (idempotent; outside tick). */
|
|
24
29
|
export declare function ensureCanvasSurface(world: World): Entity;
|
|
25
30
|
export interface InteractionCoreOpts {
|
|
26
31
|
readonly queue?: InputQueue;
|
|
27
32
|
readonly sink?: CommitSink;
|
|
28
33
|
readonly profiles?: SpawnProfiles;
|
|
34
|
+
/** Typed Canvas SDK placement truth; omission retains compatibility cells. */
|
|
35
|
+
readonly placement?: DropPlacementPolicy;
|
|
36
|
+
/** Is this entity a container the engine may ENTER (the facade's catalog-backed test; design-015 §9's gesture and zoom-through)? Default: the `Container` tag. */
|
|
37
|
+
readonly isContainer?: (entity: Entity) => boolean;
|
|
38
|
+
/** Is this entity an object that OPENS (design-015 §8's double-tap; the facade's catalog-backed test — its type declares `openable`)? Default: nothing opens. */
|
|
39
|
+
readonly isOpenable?: (entity: Entity) => boolean;
|
|
29
40
|
}
|
|
30
41
|
export interface InteractionCore {
|
|
31
42
|
readonly queue: InputQueue;
|
|
@@ -42,6 +53,25 @@ export interface InteractionStack extends InteractionCore {
|
|
|
42
53
|
readonly marqueeBuffer: MarqueeBuffer;
|
|
43
54
|
/** Connect preview render buffer (out-of-ECS — design-004 §6; M8). */
|
|
44
55
|
readonly wirePreview: WirePreviewBuffer;
|
|
56
|
+
/** The frame pick source's slot (design-014, B3b): the ground layer sets `current` at mount, clears it at dispose. */
|
|
57
|
+
readonly framePick: FramePickSlot;
|
|
58
|
+
/**
|
|
59
|
+
* The nav geometry seam (design-015 §9; D2b) beside `framePick`: the renderer's word on a
|
|
60
|
+
* container's DRAWN face, the inside's arrival and the exact cut camera — core's nav, the
|
|
61
|
+
* zoom-through and the drop-into read it when set; the renderer sets it at mount, clears it at dispose.
|
|
62
|
+
*/
|
|
63
|
+
readonly navGeometry: NavGeometrySlot;
|
|
64
|
+
/**
|
|
65
|
+
* The held pose seam (design-015 §8; D4b) beside the two above: the renderer's word on where the object in
|
|
66
|
+
* hand is ON SCREEN this frame, through which every pointer is mapped while something is held; the renderer
|
|
67
|
+
* sets it at mount, clears it at dispose.
|
|
68
|
+
*/
|
|
69
|
+
readonly heldPose: HeldPoseSlot;
|
|
70
|
+
/**
|
|
71
|
+
* The tray pose seam (design-017 §4; K3) beside `heldPose`: the renderer's word on where the pegboard drawer is ON SCREEN this
|
|
72
|
+
* frame (its rect mid-slide, its scroll range), which the tray's input hit-tests and clamps by; set at mount, cleared at dispose.
|
|
73
|
+
*/
|
|
74
|
+
readonly trayPose: TrayPoseSlot;
|
|
45
75
|
/** Nav-op seam (design-004 §7): forget spatialSync's last-known AABBs. */
|
|
46
76
|
clearCaches(): void;
|
|
47
77
|
/** L4 cursor readout for the DOM cursor reflector. */
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* THE INTERACTION STACK'S REGISTERED WAKE (2026-09-27, ICE M21 K7a — engine/frame-control.ts's sleep). A sleeping loop asks
|
|
3
|
+
* after every step when the stack is next due; it is due EVERY frame while any of its time-driven work is pending, and
|
|
4
|
+
* otherwise never on its own (the next input wakes the loop through the queue). Each pending state is a fact in the world
|
|
5
|
+
* (the engine's law: all interaction state lives there), read O(1) — a queue's length, a resource, `firstOf` a query:
|
|
6
|
+
* - input waiting in the queue;
|
|
7
|
+
* - a gesture RECOGNIZER alive (systems/l2-recognize.ts): a press held (the long-press timer), a tap's multi-tap window
|
|
8
|
+
* after its release, a drag, a pinch, a wheel gesture's end silence (`wheelEndSilenceMs`) — each reaped once it ended;
|
|
9
|
+
* - the camera gesturing, or its inertia still moving (systems/camera-sim.ts `cameraInertia`);
|
|
10
|
+
* - a transform tween running (`TransformTween`, camera-sim.ts `tweenSystem`);
|
|
11
|
+
* - a nav flight (`NavTransition.active`, systems/nav-flight.ts);
|
|
12
|
+
* - the pegboard's band stretched (systems/tray.ts: it lets go `letGoMs` after the last wheel);
|
|
13
|
+
* - ports materialized (systems/l3-ports.ts: staged over frames, reaped `portReapGraceMs` after their trigger lapsed).
|
|
14
|
+
* The one-tick protocols after an input (the tags `oneTickClear` clears, a recognizer reaped a tick after it ended) are the
|
|
15
|
+
* sleep's tail (`SLEEP_TAIL`), not this reporter's.
|
|
16
|
+
*/
|
|
17
|
+
import type { World } from "@vibecook/strata-ecs";
|
|
18
|
+
import type { InputQueue } from "../input/queue";
|
|
19
|
+
/** Which of the stack's time-driven work is pending now — the first found, or undefined when the stack is at rest. */
|
|
20
|
+
export declare function interactionPending(world: World, queue: InputQueue): string | undefined;
|
|
21
|
+
/** The stack's registered wake: `now` (the next frame) while anything is pending, else never on its own. */
|
|
22
|
+
export declare function interactionDue(world: World, queue: InputQueue): (now: number) => number;
|
|
23
|
+
/** The input queue, waking the loop on every enqueue (Law 2: the adapters only enqueue — this is the one door they share). */
|
|
24
|
+
export declare function wakefulQueue(queue: InputQueue, wake: () => void): InputQueue;
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import type { Entity, World } from "@vibecook/strata-ecs";
|
|
2
|
+
import { type CameraState, type PortalAffine } from "../../../kernel/src/index";
|
|
3
|
+
import { type CanvasRect } from "../canvas/frame-view";
|
|
4
|
+
/** A container's face and its inside's embedding, under one host camera. */
|
|
5
|
+
export interface NavFace {
|
|
6
|
+
/** The FACE — the portal rect — in the parent frame's world units, as drawn this frame (springs included) or at rest. */
|
|
7
|
+
readonly face: CanvasRect;
|
|
8
|
+
/** The inside's arrival camera: what its lattice is dressed for and what a flight lands on. */
|
|
9
|
+
readonly arrival: CameraState;
|
|
10
|
+
/** The embedding `M`: inside → parent (`portalAffine(visibleRect(arrival), face)`), the flight's own. */
|
|
11
|
+
readonly affine: PortalAffine;
|
|
12
|
+
/** The camera the inside renders under at the host camera — the enter cut's exact `c0` (`outgoingCamera(M, cam)`). */
|
|
13
|
+
readonly camera: CameraState;
|
|
14
|
+
/** The gate's answer at the host camera, 0..1: 0 = the far LOD alone, 1 = the live inside whole. */
|
|
15
|
+
readonly presence: number;
|
|
16
|
+
/** Does the face cover the whole viewport at the host camera by `marginPx` CSS px (negative: it may poke out by that much)? */
|
|
17
|
+
covers(marginPx: number): boolean;
|
|
18
|
+
}
|
|
19
|
+
/** What a renderer with a word on its containers' geometry answers. */
|
|
20
|
+
export interface NavGeometrySource {
|
|
21
|
+
/**
|
|
22
|
+
* The container's face under the host camera `cam`: as DRAWN when the container is in the current
|
|
23
|
+
* frame, at REST when it is not (the current frame's own container, an exit's); `undefined` = no
|
|
24
|
+
* word — core computes from the static rect.
|
|
25
|
+
*/
|
|
26
|
+
face(container: Entity, cam: CameraState): NavFace | undefined;
|
|
27
|
+
}
|
|
28
|
+
/** The stack's slot for the nav geometry source — a mutable box beside `framePick`, so the renderer can arrive after install. */
|
|
29
|
+
export interface NavGeometrySlot {
|
|
30
|
+
current: NavGeometrySource | null;
|
|
31
|
+
}
|
|
32
|
+
/** Smooth at both ends; exactly 0 below `a` and 1 above `b`. */
|
|
33
|
+
export declare const smoothstep: (a: number, b: number, x: number) => number;
|
|
34
|
+
/**
|
|
35
|
+
* The DEFAULT arrival camera for a frame (design-006 as amended; nested-canvas's rule): kernel
|
|
36
|
+
* `fitCamera` over its direct content, capped into the natural band (FIT_DEFAULTS ∩ the
|
|
37
|
+
* session's CameraLimits ∩ the canvas type's camera policy); identity when empty or headless.
|
|
38
|
+
*/
|
|
39
|
+
export declare function defaultArrivalCamera(world: World, frame: Entity, isContainer?: (e: Entity) => boolean): CameraState;
|
|
40
|
+
/** The container's STATIC face: its body rect through its `portal` insets, parent-frame units (`resolvePortal`). */
|
|
41
|
+
export declare function staticFace(world: World, container: Entity): CanvasRect | undefined;
|
|
42
|
+
/**
|
|
43
|
+
* A `NavFace` from the STATIC geometry — core's own word when no renderer has one: the face is
|
|
44
|
+
* the portal rect, the arrival `defaultArrivalCamera`'s, the cover test sharp-cornered (the
|
|
45
|
+
* desk's mini mat's face has square corners too — its face law's `radius` 0, K8a — so the two agree where both answer).
|
|
46
|
+
*/
|
|
47
|
+
export declare function fallbackNavFace(world: World, container: Entity, cam: CameraState, opts?: {
|
|
48
|
+
readonly face?: CanvasRect;
|
|
49
|
+
readonly arrival?: CameraState;
|
|
50
|
+
readonly isContainer?: (e: Entity) => boolean;
|
|
51
|
+
}): NavFace | undefined;
|
|
52
|
+
/**
|
|
53
|
+
* THE one door core's nav reads a container's face through: the renderer's word when a source is
|
|
54
|
+
* mounted and answers, else the fallback. `overrides` are an op's own numbers (`NavOpts.face` /
|
|
55
|
+
* `.arrival`), which outrank both.
|
|
56
|
+
*/
|
|
57
|
+
export declare function resolveNavFace(world: World, container: Entity, cam: CameraState, slot: NavGeometrySlot | undefined, overrides?: {
|
|
58
|
+
readonly face?: CanvasRect;
|
|
59
|
+
readonly arrival?: CameraState;
|
|
60
|
+
readonly isContainer?: (e: Entity) => boolean;
|
|
61
|
+
}): NavFace | undefined;
|
|
62
|
+
/**
|
|
63
|
+
* A nav op asked for from INSIDE the tick — by the double-tap gesture (`navTap`) or the
|
|
64
|
+
* zoom-through — for the facade to apply once the tick is over. `epoch` bumps per request;
|
|
65
|
+
* `transition` is the op's (a `"cut"` states `NavRedress` itself). `target` is the container to
|
|
66
|
+
* enter (unused on exit).
|
|
67
|
+
*/
|
|
68
|
+
export declare const NavIntent: import("@vibecook/strata-ecs").Resource<import("@vibecook/strata-ecs").ValueOf<{
|
|
69
|
+
readonly kind: import("@vibecook/strata-ecs").FieldSpec<import("@vibecook/strata-ecs").EnumType<"enter" | "exit">, true>;
|
|
70
|
+
readonly target: import("@vibecook/strata-ecs").FieldSpec<"eid", true>;
|
|
71
|
+
readonly transition: import("@vibecook/strata-ecs").FieldSpec<import("@vibecook/strata-ecs").EnumType<"zoom" | "none" | "cut">, true>;
|
|
72
|
+
readonly source: import("@vibecook/strata-ecs").FieldSpec<import("@vibecook/strata-ecs").EnumType<"tap" | "through">, true>;
|
|
73
|
+
readonly epoch: import("@vibecook/strata-ecs").FieldSpec<"u32", true>;
|
|
74
|
+
}>, {
|
|
75
|
+
readonly kind: import("@vibecook/strata-ecs").FieldSpec<import("@vibecook/strata-ecs").EnumType<"enter" | "exit">, true>;
|
|
76
|
+
readonly target: import("@vibecook/strata-ecs").FieldSpec<"eid", true>;
|
|
77
|
+
readonly transition: import("@vibecook/strata-ecs").FieldSpec<import("@vibecook/strata-ecs").EnumType<"zoom" | "none" | "cut">, true>;
|
|
78
|
+
readonly source: import("@vibecook/strata-ecs").FieldSpec<import("@vibecook/strata-ecs").EnumType<"tap" | "through">, true>;
|
|
79
|
+
readonly epoch: import("@vibecook/strata-ecs").FieldSpec<"u32", true>;
|
|
80
|
+
}>;
|
|
81
|
+
/**
|
|
82
|
+
* A zoom-through cut left a desk dressed for another zoom (design-015 §9): `in` — the desk
|
|
83
|
+
* entered was dressed for its arrival (`from`) as a face and re-dresses to the camera's zoom;
|
|
84
|
+
* `out` — the desk left, now the live inside of `frame`, was dressed for the camera it was cut
|
|
85
|
+
* at (`from`) and re-dresses to its arrival. Stated by the nav ops on every `transition: "cut"`
|
|
86
|
+
* (one writer); the renderer eases; `epoch` bumps per cut.
|
|
87
|
+
*/
|
|
88
|
+
export declare const NavRedress: import("@vibecook/strata-ecs").Resource<import("@vibecook/strata-ecs").ValueOf<{
|
|
89
|
+
readonly kind: import("@vibecook/strata-ecs").FieldSpec<import("@vibecook/strata-ecs").EnumType<"in" | "out">, true>;
|
|
90
|
+
readonly from: import("@vibecook/strata-ecs").FieldSpec<"f64", true>;
|
|
91
|
+
/** The container whose desk re-dresses: the one entered (`in`), the one left (`out`). */
|
|
92
|
+
readonly frame: import("@vibecook/strata-ecs").FieldSpec<"eid", true>;
|
|
93
|
+
readonly epoch: import("@vibecook/strata-ecs").FieldSpec<"u32", true>;
|
|
94
|
+
}>, {
|
|
95
|
+
readonly kind: import("@vibecook/strata-ecs").FieldSpec<import("@vibecook/strata-ecs").EnumType<"in" | "out">, true>;
|
|
96
|
+
readonly from: import("@vibecook/strata-ecs").FieldSpec<"f64", true>;
|
|
97
|
+
/** The container whose desk re-dresses: the one entered (`in`), the one left (`out`). */
|
|
98
|
+
readonly frame: import("@vibecook/strata-ecs").FieldSpec<"eid", true>;
|
|
99
|
+
readonly epoch: import("@vibecook/strata-ecs").FieldSpec<"u32", true>;
|
|
100
|
+
}>;
|
|
@@ -26,6 +26,15 @@
|
|
|
26
26
|
* project both rows of that tx. A bare runtime `world.setRelation(e,
|
|
27
27
|
* ChildOf, …)` with no Position write on a pre-existing entity is OUTSIDE
|
|
28
28
|
* the contract and goes stale until the next resweep.
|
|
29
|
+
* THE SELECTION IS SCOPED HERE (design-011 §6/§16 `Selected ⇒ Active`,
|
|
30
|
+
* 2026-09-26): a widget classified OUT of the frame loses `Selected` in the
|
|
31
|
+
* same flush — a drop into a mini mat, a peer's reparent, an undo or a redo
|
|
32
|
+
* that carries it away. The collector journals `Selected` too, so a
|
|
33
|
+
* selection written onto a standing non-member (the undo stack's selection
|
|
34
|
+
* restore of a stale key, an app's raw write) is dropped the next tick.
|
|
35
|
+
* Found at D4a's landing: a note dropped into a mini mat stayed selected
|
|
36
|
+
* inside it — no marks, no menu, but reachable by every consumer that does
|
|
37
|
+
* not filter by membership (the nudge, the tape, a drag of the rest).
|
|
29
38
|
* - Nav stack = SESSION entities: `NavEntry` rows carry NavDepth + NavCamera
|
|
30
39
|
* (the camera to restore on exit) + NavFrame(entry→container). Root =
|
|
31
40
|
* empty stack. Current frame = deepest live entry's NavFrame target.
|
|
@@ -54,14 +63,31 @@
|
|
|
54
63
|
* calls snap, preserving the pre-T1 behavior exactly.
|
|
55
64
|
*/
|
|
56
65
|
import type { Entity, TickSystem, World } from "@vibecook/strata-ecs";
|
|
57
|
-
import type { SpatialIndex } from "../../../kernel/src/index";
|
|
66
|
+
import type { CameraState, SpatialIndex } from "../../../kernel/src/index";
|
|
67
|
+
import { type NavTransitionIdentity } from "../systems/nav-flight";
|
|
68
|
+
import type { CanvasRect } from "../canvas/frame-view";
|
|
69
|
+
import type { FrameSwitchRequest, PreparedFrameSwitch, PresentationReleaseReason } from "../canvas/presentation-transition";
|
|
70
|
+
import { type NavGeometrySlot } from "./nav-geometry";
|
|
58
71
|
/** Deepest live nav entry, or undefined at root. */
|
|
59
72
|
export declare function currentNavEntry(world: World): Entity | undefined;
|
|
60
73
|
/** The container the user is inside, or undefined at root. */
|
|
61
74
|
export declare function currentNavFrame(world: World): Entity | undefined;
|
|
62
|
-
/**
|
|
75
|
+
/**
|
|
76
|
+
* Per-op transition choice (design-006 §3.1); default is the portal zoom. `"none"` snaps to
|
|
77
|
+
* the arrival; `"cut"` (design-015 §9, the zoom-through — D2b) moves nothing either but lands
|
|
78
|
+
* on the CONTINUITY camera — the one the destination was already rendering under through the
|
|
79
|
+
* face (`c0`) — so the cut changes no pixel; the renderer then re-dresses.
|
|
80
|
+
*
|
|
81
|
+
* The three overrides are the renderer's word on the container's DRAWN geometry (the nav
|
|
82
|
+
* geometry seam, nav-geometry.ts): the face `K` in the parent's units, the inside's `arrival`,
|
|
83
|
+
* and the exact `c0`. Given, they outrank the seam and core's own computation; absent, the op
|
|
84
|
+
* asks the seam, then computes.
|
|
85
|
+
*/
|
|
63
86
|
export interface NavOpts {
|
|
64
|
-
readonly transition?: "zoom" | "none";
|
|
87
|
+
readonly transition?: "zoom" | "none" | "cut";
|
|
88
|
+
readonly face?: CanvasRect;
|
|
89
|
+
readonly arrival?: CameraState;
|
|
90
|
+
readonly c0?: CameraState;
|
|
65
91
|
}
|
|
66
92
|
export interface NestedCanvas {
|
|
67
93
|
readonly activeMembership: TickSystem;
|
|
@@ -82,6 +108,23 @@ export interface NestedCanvasOpts {
|
|
|
82
108
|
* stale entries still exist).
|
|
83
109
|
*/
|
|
84
110
|
readonly clearSpatialCaches: () => void;
|
|
111
|
+
/** EngineCatalog-backed container validity; legacy rigs may omit it. */
|
|
112
|
+
readonly isContainer?: (entity: Entity) => boolean;
|
|
113
|
+
/** The nav geometry seam (design-015 §9; D2b): the renderer's word on a container's drawn face, arrival and exact `c0`. */
|
|
114
|
+
readonly navGeometry?: NavGeometrySlot;
|
|
115
|
+
/** Runs synchronously before an explicit enter/exit visibility cut. */
|
|
116
|
+
readonly beforeSwitch?: () => void;
|
|
117
|
+
/** Presentation gate: false forces an atomic cut (for example, cross-ground before T2). */
|
|
118
|
+
readonly transitionAllowed?: (fromFrame: Entity | undefined, toFrame: Entity | undefined) => boolean;
|
|
119
|
+
/** Trusted synchronous pre-cut presentation capture. It cannot veto the cut. */
|
|
120
|
+
readonly prepareTransition?: (request: FrameSwitchRequest) => PreparedFrameSwitch;
|
|
121
|
+
/** Integrity/doc recovery releases any adapter holds without animation. */
|
|
122
|
+
readonly abortTransition?: (reason: PresentationReleaseReason) => void;
|
|
123
|
+
/** Capture stable frame/type/document identity before the authority cut. */
|
|
124
|
+
readonly transitionIdentity?: (fromFrame: Entity | undefined, toFrame: Entity | undefined) => NavTransitionIdentity;
|
|
125
|
+
/** One publication per completed switch or integrity pop. */
|
|
126
|
+
readonly onSwitch?: (frame: Entity | undefined, depth: number, restoreTool: string | undefined) => void;
|
|
127
|
+
readonly maxDepth?: number;
|
|
85
128
|
}
|
|
86
129
|
/**
|
|
87
130
|
* The membership stamper alone — installed by `installWidgetRuntime` (before
|
|
@@ -95,4 +138,4 @@ export interface NestedCanvasOpts {
|
|
|
95
138
|
* PER IDLE FRAME at 100k widgets nested 8 deep.
|
|
96
139
|
*/
|
|
97
140
|
export declare function createActiveMembership(world: World): TickSystem;
|
|
98
|
-
export declare function createNestedCanvas(world: World,
|
|
141
|
+
export declare function createNestedCanvas(world: World, config: NestedCanvasOpts): NestedCanvas;
|
|
@@ -7,7 +7,8 @@
|
|
|
7
7
|
* edge entities, so a wire whose `WireFrom`/`WireTo` endpoint dies is destroyed
|
|
8
8
|
* with it (reverse-index lookup, same transaction).
|
|
9
9
|
*
|
|
10
|
-
*
|
|
10
|
+
* Beyond the wires, any source of a DEPENDENT relation pointing at a doomed entity dies with it (`defineRelation({ dependent:
|
|
11
|
+
* true })`, design-015 D3t-c). The walk reads runtime world state via `getReverse`; `tx.destroy` only RECORDS
|
|
11
12
|
* (applied at seal / projection), so the reverse indices stay whole for the whole
|
|
12
13
|
* walk. A `visited` set guards against cycles and double-destroying a wire that
|
|
13
14
|
* touches two doomed endpoints.
|
|
@@ -10,6 +10,12 @@
|
|
|
10
10
|
* by default; tests and special hosts may still inject their own predicate.
|
|
11
11
|
* Discrete claims (`GestureRecognized`) deliberately do NOT grant divergence —
|
|
12
12
|
* design-001 §3 live-writes happen only under continuous Active gestures.
|
|
13
|
+
*
|
|
14
|
+
* The KEYBOARD is a continuous gesture too (design-015 §6.1, D2c): an object
|
|
15
|
+
* carrying the runtime `Editing` rider is claimed by the one focused editor's
|
|
16
|
+
* typing session, which live-writes its text and commits it once at the
|
|
17
|
+
* session's end — a third SOURCE of the gesture claim, not a third kind of
|
|
18
|
+
* grant (design-009 §3's divergence law stands: a claim or a tween).
|
|
13
19
|
*/
|
|
14
20
|
import type { Entity, World } from "@vibecook/strata-ecs";
|
|
15
21
|
export declare function makeDefaultMayDiverge(world: World): (e: Entity) => boolean;
|
|
@@ -15,6 +15,10 @@
|
|
|
15
15
|
* 500ms over a palette;
|
|
16
16
|
* - `SweepsContained`: a comment ghost at the tray's world point must not
|
|
17
17
|
* sweep the widgets resting under the tray into the insert.
|
|
18
|
+
* And one is always GIVEN (K5b, design-017 §9): `Movable` — the adoption
|
|
19
|
+
* drag is core's whatever the kind's own carry (a print is not core-movable:
|
|
20
|
+
* its carry is its physics), so every kind taken off the tray runs the
|
|
21
|
+
* ordinary drag to its drop.
|
|
18
22
|
* The projected twin gets the FULL tag set from the equip system.
|
|
19
23
|
*
|
|
20
24
|
* 2. Enqueue ONE synthetic un-flagged `down` (Law 2 — this op is an adapter
|
|
@@ -12,7 +12,10 @@
|
|
|
12
12
|
* ONE comparator paint and pick share). Deliberately NOT plane-stratified:
|
|
13
13
|
* cross-plane z is stratified visually (P2 GL composites above P1 DOM), but
|
|
14
14
|
* pick order is sibling order across all surfaces — design-004 §1 names the
|
|
15
|
-
* mixed-overlap consequence and accepts it; do not "fix" it here.
|
|
15
|
+
* mixed-overlap consequence and accepts it; do not "fix" it here. (The desk's
|
|
16
|
+
* `Stratum` bands — design-015 §4.2 — are NOT that stratification: they are
|
|
17
|
+
* the desk's PAINT order, read inside compareStackOrder, so pick still equals
|
|
18
|
+
* paint. No pre-desk widget carries one.)
|
|
16
19
|
*/
|
|
17
20
|
import type { Component, Entity } from "@vibecook/strata-ecs";
|
|
18
21
|
import type { Cubic, SpatialIndex } from "../../../kernel/src/index";
|
|
@@ -6,6 +6,12 @@
|
|
|
6
6
|
* — every renderer/pick consumer shares this module so the orders can never
|
|
7
7
|
* diverge (the point-pick lesson, extended to the comparator).
|
|
8
8
|
*
|
|
9
|
+
* THE DESK'S STRATA (design-015 §4.2, D2a-core, 2026-09-25) rank ABOVE the
|
|
10
|
+
* sequence: `compareStackOrder` orders by `Stratum.band` first (pads · sheets ·
|
|
11
|
+
* things; absent = things) and by sibling order within a band, so an object's
|
|
12
|
+
* pick order is its paint order across kinds. No pre-desk widget carries a
|
|
13
|
+
* `Stratum`, so every existing board is one band and orders as it always did.
|
|
14
|
+
*
|
|
9
15
|
* LEGACY FALLBACK (must keep working): when the `BoardRoot` resource is absent
|
|
10
16
|
* (a pre-schema-2 doc opened read-only, or a doc-less runtime world) OR an
|
|
11
17
|
* entity carries no `ChildOf` edge (bare runtime spawns), stacking falls back
|
|
@@ -41,10 +47,14 @@ export declare function frameParent(world: World): Entity | undefined;
|
|
|
41
47
|
export declare function buildOrdinals(world: World, parent: Entity): Map<Entity, number>;
|
|
42
48
|
/**
|
|
43
49
|
* THE stacking comparator (ascending = paint order; the pick tier takes the
|
|
44
|
-
* max).
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
50
|
+
* max). The desk's STRATUM first (design-015 §4.2, D-D4 — D2a-core): pads
|
|
51
|
+
* under sheets under things, whatever the sibling order says, so what the desk
|
|
52
|
+
* paints on top is what a point picks; an entity with no `Stratum` is a thing,
|
|
53
|
+
* which is every pre-desk widget — an all-dom board is one band and orders
|
|
54
|
+
* exactly as before. Within a band: ordinal-mapped entities order by sibling
|
|
55
|
+
* position; entities missing from the map use the legacy `(StackZ asc, entity
|
|
56
|
+
* asc)` fallback among themselves and sort ABOVE the ordinal-mapped set (see
|
|
57
|
+
* the header note on nominally-impossible mixed frames).
|
|
48
58
|
*/
|
|
49
59
|
export declare function compareStackOrder(reader: StackOrderReader, ordinals: ReadonlyMap<Entity, number>, a: Entity, b: Entity): number;
|
|
50
60
|
export interface SiblingOrderIndex {
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* THE TRAY'S OPS (design-017 §2; K3) — the ways a host, the keymap and a rig move the pegboard drawer's facts (`Tray`, runtime, one
|
|
3
|
+
* per view). Outside the tick, world-taking like `cancelActiveGestures`; the tray's input system (systems/tray.ts) is their one
|
|
4
|
+
* in-tick peer. Opening is refused while an object is in hand (the hand is a focus of its own — put it down first) and cancels every
|
|
5
|
+
* gesture in flight (widgetlab's hygiene: nothing freezes mid-drag under the drawer); closing lets the band go. design-018 §6 (R2):
|
|
6
|
+
* the drawer's CATEGORY — which of the entries it lays ("" all), and the categories the frame hangs, for a host's chips.
|
|
7
|
+
*/
|
|
8
|
+
import type { Entity, World } from "@vibecook/strata-ecs";
|
|
9
|
+
/**
|
|
10
|
+
* The view's tray entity, spawned (runtime, closed) if the world has none — at install, and after a reset. It ROOTS the tray's
|
|
11
|
+
* runtime canvas (K5a — a `Container`, so its specimens' first container is it, never a frame: none is ever `Active`), its
|
|
12
|
+
* content not yet laid.
|
|
13
|
+
*/
|
|
14
|
+
export declare function ensureTray(world: World): Entity;
|
|
15
|
+
/** The view's tray entity, if there is one. */
|
|
16
|
+
export declare function trayEntity(world: World): Entity | undefined;
|
|
17
|
+
/** Is the drawer out? */
|
|
18
|
+
export declare function trayOpen(world: World): boolean;
|
|
19
|
+
/** Open the drawer: refused (false) while an object is in hand; every gesture in flight is cancelled. */
|
|
20
|
+
export declare function openTray(world: World): boolean;
|
|
21
|
+
/** Close the drawer; the band lets go. */
|
|
22
|
+
export declare function closeTray(world: World): void;
|
|
23
|
+
/** Open a closed drawer, close an open one; returns whether it is open now. */
|
|
24
|
+
export declare function toggleTray(world: World): boolean;
|
|
25
|
+
/** Set the board's scroll (CSS px past its top) — a host's or a rig's door; any value (the input clamps what it moves). */
|
|
26
|
+
export declare function scrollTray(world: World, scroll: number): void;
|
|
27
|
+
/** A tray category as a host's chip shows it (design-018 §6): its id (an entry's `category`), its label, how many entries the frame hangs in it. */
|
|
28
|
+
export interface TrayCategory {
|
|
29
|
+
readonly id: string;
|
|
30
|
+
/** The id with its first letter capitalized ("surfaces" → "Surfaces"). */
|
|
31
|
+
readonly label: string;
|
|
32
|
+
readonly count: number;
|
|
33
|
+
}
|
|
34
|
+
/** The category the drawer shows ("" — all). */
|
|
35
|
+
export declare function trayCategory(world: World): string;
|
|
36
|
+
/**
|
|
37
|
+
* Show one category of the tray's entries ("" — all): the lay (systems/tray.ts `createTrayLay`) hangs only its entries, zeroes the
|
|
38
|
+
* scroll and the band on the change, and falls back to all when the frame hangs none of it (an id no entry names included).
|
|
39
|
+
*/
|
|
40
|
+
export declare function setTrayCategory(world: World, id: string): void;
|
|
41
|
+
/**
|
|
42
|
+
* The categories PRESENT among the entries the drawer's frame hangs (design-018 §6) — the catalog's tray entries the current frame
|
|
43
|
+
* takes (K9 S13), before the category's filter — in the lay's order, each with its label and count: a host's chips. An entry that
|
|
44
|
+
* names no category is laid under all alone (it has no chip). Empty until the lay has run (the renderer's first frame).
|
|
45
|
+
*/
|
|
46
|
+
export declare function trayCategories(world: World): TrayCategory[];
|
|
47
|
+
/** How many entries the drawer's frame hangs, every category (before the filter) — 0: the tray has nothing to offer here. */
|
|
48
|
+
export declare function trayEntryCount(world: World): number;
|
|
@@ -22,6 +22,11 @@ export interface PresenceOpts {
|
|
|
22
22
|
* `console.error`.
|
|
23
23
|
*/
|
|
24
24
|
readonly onFault?: (where: "outbound" | "leave" | "heal", error: unknown) => void;
|
|
25
|
+
/**
|
|
26
|
+
* A peer's presence ARRIVED or AGED OUT (the Loro store's imports and its TTL sweep — never this peer's own sets): it is
|
|
27
|
+
* projected at the next `world.sync()`, so the host's next frame must come — the facade wakes a sleeping loop here (K7a).
|
|
28
|
+
*/
|
|
29
|
+
readonly onRemote?: () => void;
|
|
25
30
|
}
|
|
26
31
|
export interface PresenceSession {
|
|
27
32
|
/** This session's peer id (the ephemeral partition prefix). */
|
|
@@ -21,6 +21,8 @@ export interface ComponentMeta {
|
|
|
21
21
|
export interface RelationMeta {
|
|
22
22
|
name: string;
|
|
23
23
|
arity: "one" | "many";
|
|
24
|
+
/** A DEPENDENT edge (design-015 D3t-c): its source dies with its target — the cascade walks it as it walks a wire's ends. */
|
|
25
|
+
dependent?: boolean;
|
|
24
26
|
}
|
|
25
27
|
export interface ResourceMeta {
|
|
26
28
|
name: string;
|
|
@@ -41,9 +43,15 @@ export declare function defineComponent<const Sch extends RawSchema>(name: strin
|
|
|
41
43
|
*/
|
|
42
44
|
export declare function ensureComponent<const Sch extends RawSchema>(name: string, schema: Sch): Component;
|
|
43
45
|
export declare function defineTag(name: string): Tag;
|
|
46
|
+
/**
|
|
47
|
+
* A relation. `dependent` (design-015 D3t-c — a reified edge, the wire's precedent generalised: the desk calendar's pin → its note):
|
|
48
|
+
* the entity the edge goes OUT of dies with the entity it points AT — `cascadeDestroy` takes it in the same transaction, so one undo
|
|
49
|
+
* brings both back.
|
|
50
|
+
*/
|
|
44
51
|
export declare function defineRelation(name: string, opts?: {
|
|
45
52
|
arity?: "one" | "many";
|
|
46
53
|
ordered?: boolean;
|
|
54
|
+
dependent?: boolean;
|
|
47
55
|
}): Relation;
|
|
48
56
|
export declare function defineResource<const Sch extends RawSchema>(name: string, schema: Sch, opts?: {
|
|
49
57
|
durable?: boolean;
|
|
@@ -52,5 +60,7 @@ export declare const schemaMeta: {
|
|
|
52
60
|
component(c: Component): ComponentMeta | undefined;
|
|
53
61
|
tagName(t: Tag): string | undefined;
|
|
54
62
|
relation(r: Relation): RelationMeta | undefined;
|
|
63
|
+
/** The relations whose sources die with their targets (`defineRelation({ dependent: true })`). */
|
|
64
|
+
dependents(): readonly Relation[];
|
|
55
65
|
resource(r: Resource): ResourceMeta | undefined;
|
|
56
66
|
};
|
|
@@ -48,6 +48,14 @@ export interface PrefabDef {
|
|
|
48
48
|
* compared at open. Bump when the prefab's durable shape changes. Default 1.
|
|
49
49
|
*/
|
|
50
50
|
version?: number;
|
|
51
|
+
/**
|
|
52
|
+
* A DATA prefab's own migration chain (design-015 §5.1, D3t-a — an object's data children, the board's
|
|
53
|
+
* strokes): `{ fromVersion: (prev) => next }` over the flat record of its essential components' fields,
|
|
54
|
+
* every version `1..version-1` covered — defineWidget's `migrate` shape. The M9 runner applies it to a
|
|
55
|
+
* document whose `engine.pack.<id>` marker is older, when an engine catalog tracks the prefab (an
|
|
56
|
+
* object's `data`). A widget's own prefab migrates by its widget's chain instead.
|
|
57
|
+
*/
|
|
58
|
+
migrate?: Readonly<Record<number, (prev: Record<string, unknown>) => Record<string, unknown>>>;
|
|
51
59
|
}
|
|
52
60
|
export interface Prefab extends PrefabDef {
|
|
53
61
|
id: string;
|
|
@@ -17,7 +17,11 @@ export declare const GESTURE_DEFAULTS: {
|
|
|
17
17
|
readonly multiTapSlopPx: 20;
|
|
18
18
|
readonly wheelZoomSensitivity: 0.01;
|
|
19
19
|
readonly wheelZoomMaxStep: 10;
|
|
20
|
+
readonly wheel: "pan";
|
|
21
|
+
readonly wheelZoomRate: 0.0016;
|
|
20
22
|
};
|
|
23
|
+
/** What a plain wheel does to the camera (`GestureSettings.wheel`, design-015 §9). */
|
|
24
|
+
export type WheelMode = "pan" | "zoom";
|
|
21
25
|
/** Pick radii + retarget dead-band (design-003 §3 L1 targeting). */
|
|
22
26
|
export declare const POINTER_DEFAULTS: {
|
|
23
27
|
readonly radiusMousePx: 0;
|
|
@@ -43,9 +47,8 @@ export declare const SNAP_DEFAULTS: {
|
|
|
43
47
|
};
|
|
44
48
|
/**
|
|
45
49
|
* Selection-chrome knobs (2026-07-17). `liftScale` mirrors the app's visual
|
|
46
|
-
* drag-lift scale
|
|
47
|
-
*
|
|
48
|
-
* visual, no inflation.
|
|
50
|
+
* drag-lift scale so the resize handles can inflate a grabbed member's rect
|
|
51
|
+
* and keep WRAPPING the card it sees; 1 = no lift visual, no inflation.
|
|
49
52
|
*/
|
|
50
53
|
export declare const CHROME_DEFAULTS: {
|
|
51
54
|
readonly liftScale: 1;
|
|
@@ -90,10 +93,26 @@ export declare const NAV_TRANSITION_DEFAULTS: {
|
|
|
90
93
|
readonly settleP: 0.999;
|
|
91
94
|
readonly settleV: 0.02;
|
|
92
95
|
};
|
|
93
|
-
/**
|
|
96
|
+
/**
|
|
97
|
+
* The zoom-through (design-015 §9, PORTAL.md §8 — D2b): a wheel zoom IN that leaves a
|
|
98
|
+
* container's face covering the whole view by `in` CSS px cuts into it; a zoom OUT that
|
|
99
|
+
* leaves the current frame's face `out` px short of covering cuts back out — both as cuts
|
|
100
|
+
* nobody can see. `gate` is the face's short side (CSS px) across which a live inside comes
|
|
101
|
+
* in over its far LOD (presence 0 → 1); a face enters only at presence 1. OFF by default: the
|
|
102
|
+
* desk turns it on (`settings.nav.zoomThrough.enabled`); every other app keeps explicit entry.
|
|
103
|
+
*/
|
|
104
|
+
export declare const ZOOM_THROUGH_DEFAULTS: {
|
|
105
|
+
readonly enabled: false;
|
|
106
|
+
readonly in: 2;
|
|
107
|
+
readonly out: 6;
|
|
108
|
+
readonly gate: readonly [number, number];
|
|
109
|
+
};
|
|
110
|
+
/**
|
|
111
|
+
* Port and cull budgets (design-004 §6 port materialization; ported into design-005 §4 engine
|
|
112
|
+
* facade). `keepMountedWidgets` and `fboBytes` left at design-015 D5b with the mount LRU and the
|
|
113
|
+
* GL allocation ledger they bounded.
|
|
114
|
+
*/
|
|
94
115
|
export declare const RUNTIME_BUDGETS: {
|
|
95
|
-
readonly keepMountedWidgets: 256;
|
|
96
|
-
readonly fboBytes: 268435456;
|
|
97
116
|
readonly portSpawnPerFrame: 64;
|
|
98
117
|
readonly portLightUpRadiusPx: 600;
|
|
99
118
|
readonly portReapGraceMs: 1000;
|