@vibecook/ice 0.11.0 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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-VGVDJZSP.js → chunk-DYK6KNLG.js} +13206 -7387
- 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 +33 -12
- 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-2TNVB2ON.js +0 -1163
- package/dist/chunk-2TNVB2ON.js.map +0 -1
- package/dist/chunk-OR5FNVUE.js.map +0 -1
- package/dist/chunk-Q665T4L7.js +0 -681
- package/dist/chunk-Q665T4L7.js.map +0 -1
- package/dist/chunk-VGVDJZSP.js.map +0 -1
- package/dist/ground.js +0 -1108
- 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 -101
- 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-contract.d.ts +0 -28
- package/dist/types/packages/ground/src/passes/grid-magnet-pass.d.ts +0 -2
- package/dist/types/packages/ground/src/passes/grid-magnet.d.ts +0 -31
- package/dist/types/packages/ground/src/passes/grid.d.ts +0 -10
- 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
|
@@ -0,0 +1,429 @@
|
|
|
1
|
+
import type { Component, Entity, HeldToolDef, Relation, Tag, WidgetType, World } from "../../../core/src/index";
|
|
2
|
+
import type { TypingDocs } from "../docs";
|
|
3
|
+
import type { RasterBudget } from "../engine/budget";
|
|
4
|
+
import type { RasterQueue } from "../engine/rasters";
|
|
5
|
+
import type { KindPass, KindProgram, StratumName } from "../kind";
|
|
6
|
+
import type { DeskEditor, TextPart } from "../kit/editor";
|
|
7
|
+
import type { ChildShape, FaceLaw, InsideView } from "../kit/inside";
|
|
8
|
+
import type { Lamp } from "../kit/light";
|
|
9
|
+
import type { LendHost, Lent, ServiceKey, Services } from "../kit/services";
|
|
10
|
+
import type { Rect } from "../kit/nav";
|
|
11
|
+
import type { GridConfig, View } from "../kit/view";
|
|
12
|
+
import type { MarkFrame } from "../marks/layout";
|
|
13
|
+
import type { GroundTheme, Palette, ThemeName } from "../theme";
|
|
14
|
+
/**
|
|
15
|
+
* What the builder hands a CONTAINER kind's `record` about its inside (D2b): the bounds of the
|
|
16
|
+
* children's rects (`content`, null = empty — the arrival is the empty desk's), the inside's
|
|
17
|
+
* embedding and camera under this slot's camera (`view`, from the kind's own `face` — the
|
|
18
|
+
* flight's numbers, so the face's far LOD and the live inside agree to the bit), and the children
|
|
19
|
+
* as their kinds chip them (`chips`, in the inside's own units — the kind maps them through `view.M`).
|
|
20
|
+
*/
|
|
21
|
+
export interface InsideContext {
|
|
22
|
+
readonly content: Rect | null;
|
|
23
|
+
readonly view: InsideView | null;
|
|
24
|
+
readonly chips: readonly ChildShape[];
|
|
25
|
+
}
|
|
26
|
+
/** An object's rect on its desk, world units, CENTRED — converted from ICE's top-left `Position` + `Size` by the builder, once. */
|
|
27
|
+
export interface ObjectRect {
|
|
28
|
+
readonly cx: number;
|
|
29
|
+
readonly cy: number;
|
|
30
|
+
readonly w: number;
|
|
31
|
+
readonly h: number;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* What moves, per entity — the builder's springs, each 0..1 and SNAPPED to its target when settled
|
|
35
|
+
* (the B7 trap: a spring that never quite lands keeps the desk awake forever). `lift` follows the
|
|
36
|
+
* `Grab` fact (held), `hover` the local mouse pointer's exact hit (the B9 pairing — never the
|
|
37
|
+
* dead-band `Targets`), `fade` the delete ghost (1 alive … 0 gone). `ring` is ALWAYS 0 from the
|
|
38
|
+
* builder: the kinds' own selection ring retired at D4a (the marks draw the selection) and its
|
|
39
|
+
* spring went at D6; the Node oracle alone hands a ring, for the baseline against the prototype.
|
|
40
|
+
*/
|
|
41
|
+
export interface ObjectFlux {
|
|
42
|
+
readonly lift: number;
|
|
43
|
+
readonly hover: number;
|
|
44
|
+
readonly ring: number;
|
|
45
|
+
readonly fade: number;
|
|
46
|
+
}
|
|
47
|
+
/** A kind's answer to "what is under this world point" — the widget itself (`content`/`frame`), a part, or nothing. */
|
|
48
|
+
export type ObjectHit = "content" | "frame" | (string & {});
|
|
49
|
+
/**
|
|
50
|
+
* A slot of the held bar for a kind in hand (design-015 §8 — "the kind's tools take the middle"): core's `HeldToolDef`
|
|
51
|
+
* (D3t-a — widget/held-tools.ts), declared by the kind and carried onto its widget type by `defineObject`, so the one
|
|
52
|
+
* keymap and the one bar reach it through the engine: a `mode` (the tool in hand, core's `HeldTool`), an `action` (an op),
|
|
53
|
+
* or — no `kind` — declared only (dim; a later slice builds it). `glyph` names one of the bar's.
|
|
54
|
+
*/
|
|
55
|
+
export type { HeldToolDef } from "../../../core/src/index";
|
|
56
|
+
/**
|
|
57
|
+
* The kind's OPENING (design-015 §8; D4b) — what "pick it up" means for this kind. `extent`: the OPEN rect in the object's
|
|
58
|
+
* own desk units, centred as its rect is and UNTURNED (the builder turns it with the object): a notebook's spread (twice the
|
|
59
|
+
* case's width, left of the spine), a board's face, a calendar's month — what the reading size fits into the view. `pose`: how
|
|
60
|
+
* the reading size is reached — `camera` (a flat kind, the default: the held slot's camera maps the extent to the held rect
|
|
61
|
+
* and the kind draws at rest) or `eye` (a thing with height: the camera keeps the desk's zoom and the kind RISES toward the
|
|
62
|
+
* desk eye by `ctx.held.grow`). `openness`: how far the kind's own open motion has come (0 shut … 1 open) — the put-down
|
|
63
|
+
* flies home once it is under 0.35 and lands once under 0.02 (absent: 0, a kind with no motion of its own). `spread`: a
|
|
64
|
+
* two-page extent that opens one page at a time on a portrait phone (Q-p); `page`: which of its two is in view there — 0 the
|
|
65
|
+
* right (the default) … 1 the left, flux the view glides by (D3t-b: the notebook reads page by page). `tools`: the held bar's
|
|
66
|
+
* slots (D3t-a: live — a mode or an action each); `tool`: the mode in hand when it is picked up, from its props (default: the first mode);
|
|
67
|
+
* `swatches`: the colour a slot shows instead of its glyph (the board's four inks — the product's palette, through the look).
|
|
68
|
+
*/
|
|
69
|
+
export interface OpenBinding {
|
|
70
|
+
extent(ctx: Pick<ObjectContext, "rect" | "props">): ObjectRect;
|
|
71
|
+
readonly pose?: "camera" | "eye";
|
|
72
|
+
openness?(ctx: Pick<ObjectContext, "entity" | "local">): number;
|
|
73
|
+
readonly spread?: boolean;
|
|
74
|
+
page?(ctx: Pick<ObjectContext, "entity" | "local">): number;
|
|
75
|
+
readonly tools?: readonly HeldToolDef[];
|
|
76
|
+
tool?(props: Readonly<Record<string, unknown>>): string;
|
|
77
|
+
swatches?(look: unknown): Readonly<Record<string, string>>;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* What the builder hands the object IN HAND (D4b, beside its flux): the carry amount `e` (0 on the desk … 1 in hand — the
|
|
81
|
+
* lift's height, the focus behind), whether it should be OPEN (past 42 % of the pickup going up; never going down), the
|
|
82
|
+
* factor an `eye` kind must reach by rising (1 for a flat kind — the camera did it), and `snap` (a still: the open motion
|
|
83
|
+
* sits at its target, no spring).
|
|
84
|
+
*/
|
|
85
|
+
export interface HeldContext {
|
|
86
|
+
readonly e: number;
|
|
87
|
+
readonly open: boolean;
|
|
88
|
+
readonly grow: number;
|
|
89
|
+
readonly snap: boolean;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Everything a kind is handed for one entity, one frame. The props are the widget type's group
|
|
93
|
+
* fields as the builder cached them (refreshed from the change journal, never re-read per frame —
|
|
94
|
+
* the 09-23 profile); `look` is what the kind's own `theme()` made of the palette in force.
|
|
95
|
+
*/
|
|
96
|
+
export interface ObjectContext {
|
|
97
|
+
readonly entity: Entity;
|
|
98
|
+
readonly rect: ObjectRect;
|
|
99
|
+
readonly props: Readonly<Record<string, unknown>>;
|
|
100
|
+
readonly flux: ObjectFlux;
|
|
101
|
+
/** The kind's `theme(palette, name)` result for the theme in force; `undefined` when the kind declares none. */
|
|
102
|
+
readonly look: unknown;
|
|
103
|
+
readonly theme: GroundTheme;
|
|
104
|
+
/** The desk's one lamp — the gobo projector on the desk plane (`lampOf`), world units. */
|
|
105
|
+
readonly lamp: Lamp;
|
|
106
|
+
/** The slot's camera and attachment (CSS px) with the device pixel ratio. */
|
|
107
|
+
readonly view: View & {
|
|
108
|
+
readonly dpr: number;
|
|
109
|
+
};
|
|
110
|
+
/** The slot's grid: the mat's config (its vinyl, its gobo, its rulers) and the lattice's fade-in. */
|
|
111
|
+
readonly grid: GridConfig;
|
|
112
|
+
/** The frame's dt, SECONDS (the engine's clamped dt). */
|
|
113
|
+
readonly dt: number;
|
|
114
|
+
/**
|
|
115
|
+
* A per-entity asset the HOST pinned through the builder (`DeskBuilder.pin`) — `undefined` = none.
|
|
116
|
+
* Flux, never a world fact. (The note's committed raster moved into its kind's `local` at D2c.)
|
|
117
|
+
*/
|
|
118
|
+
readonly asset?: unknown;
|
|
119
|
+
/**
|
|
120
|
+
* The kind's OWN state on this desk — what `ObjectKind.local()` made for it (the note's writing:
|
|
121
|
+
* its layouts, its rasters' residency, the caret, the wipe — D2c); `undefined` when the kind keeps
|
|
122
|
+
* none. Flux, never a world fact; the builder threads it and tells it when an entity is forgotten.
|
|
123
|
+
*/
|
|
124
|
+
readonly local?: unknown;
|
|
125
|
+
/** A container's inside, for its `record` (D2b): the content bounds, the view through its face, the children's chips. Absent = not a container, or `resolve`. */
|
|
126
|
+
readonly inside?: InsideContext;
|
|
127
|
+
/** The object is IN HAND (D4b): its carry amount, its open target, the eye kind's rise. Absent = on the desk. */
|
|
128
|
+
readonly held?: HeldContext;
|
|
129
|
+
}
|
|
130
|
+
/** What a desk hands a kind's `local()` (D2c): its ROOT pass once the ground is made, the SERVICES lent on this desk, and the builder's doors. */
|
|
131
|
+
export interface KindHost {
|
|
132
|
+
/** The kind's root pass on this desk's ground; `undefined` before `Ground.create` resolves and after the layer ends. */
|
|
133
|
+
pass(): KindPass | undefined;
|
|
134
|
+
/**
|
|
135
|
+
* THE SERVICES (K8a, kit/services.ts — an open registry by key): what the host lends (its text raster `TEXT_RASTER`, the picture
|
|
136
|
+
* decoder `PICTURE_DECODER`, the app's byte store `BLOB_STORE`, anything in `deskLayer({ services })`) and what any object's DOM
|
|
137
|
+
* half lends (`ObjectHost.lend` — the desk calendar's `PRINT_RASTER`): `use(key)` answers it, or undefined when nothing on this
|
|
138
|
+
* desk lends it (in Node the oracle pins committed rasters and tiles). Absent: a bare host (a test) — no services at all.
|
|
139
|
+
* D-K8a.1: the desk's OWN doors stay fields of this host — `pass`, `children`, `drawn`, `budget`, `rasters`, `remake`, `wake`: the
|
|
140
|
+
* builder's word, its budget, its queue and its loop, made by the desk for each kind and never lent, replaced or taken by a kind.
|
|
141
|
+
*/
|
|
142
|
+
use?<T>(key: ServiceKey<T>): T | undefined;
|
|
143
|
+
/** An object's DATA children (D3w, design-015 §5.1 — a board's strokes, a pad's events and pins); absent = none (a test, the oracle). */
|
|
144
|
+
readonly children?: DataChildren | undefined;
|
|
145
|
+
/**
|
|
146
|
+
* The builder's word on what is DRAWN (D6, persistent records): the paint rank of `e` in the last build's root slot, undefined when it
|
|
147
|
+
* was not drawn there. A kind's residency reads it instead of counting its own `record` calls — those come only when a record is
|
|
148
|
+
* remade. Absent (a bare host, the oracle): the kind counts its own.
|
|
149
|
+
*/
|
|
150
|
+
readonly drawn?: ((e: Entity) => number | undefined) | undefined;
|
|
151
|
+
/**
|
|
152
|
+
* THE RASTER BUDGET (D6, engine/budget.ts): one ledger for every raster a kind keeps as a cache of its data — a board's ink, a
|
|
153
|
+
* notebook page's CPU raster, the calendar's tiles. A kind charges what it makes with a way to let it go and answers `keeps` for
|
|
154
|
+
* what is on screen; the host trims the ledger once a tick. Absent: nothing is counted or evicted.
|
|
155
|
+
*/
|
|
156
|
+
readonly budget?: RasterBudget | undefined;
|
|
157
|
+
/**
|
|
158
|
+
* THE FRAME'S RASTER QUEUE (K6b, engine/rasters.ts): a raster the zoom asks again (a new band, a new density) or an object come on
|
|
159
|
+
* screen holding none is ASKED here, with a priority, and made in the queue's turn under the frame's budget — the kind draws what
|
|
160
|
+
* it has meanwhile. Absent (a bare host, the oracle): a kind rasters in the frame that asks, as before.
|
|
161
|
+
*/
|
|
162
|
+
readonly rasters?: RasterQueue | undefined;
|
|
163
|
+
/** `e`'s record remade at the next build (K6b — a raster the queue laid: the record says where its ink is), the desk woken. */
|
|
164
|
+
readonly remake?: ((e: Entity) => void) | undefined;
|
|
165
|
+
/**
|
|
166
|
+
* THE KIND'S WAKE (K7a — registered wakes): something arrived OUTSIDE a frame that changes how the kind draws (a picture
|
|
167
|
+
* decoded, a tile printed, a detail fetched): the kind is ticked at the next frame, and a sleeping loop wakes for it. A
|
|
168
|
+
* kind never polls for what an arrival can tell it. Absent (a bare host, the oracle): its tick is asked every frame.
|
|
169
|
+
*/
|
|
170
|
+
readonly wake?: (() => void) | undefined;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* An object's DATA children as its kind reads them (D3w): entities `ChildOf` the object, never members of the desk's
|
|
174
|
+
* paint order — the `stamp` turns over whenever the set or its order changes (strata's order stamp), and `rows` are the
|
|
175
|
+
* children's values of one component, in sibling order (the oldest stroke first).
|
|
176
|
+
*/
|
|
177
|
+
export interface DataChildren {
|
|
178
|
+
stamp(parent: Entity): number;
|
|
179
|
+
rows<T>(parent: Entity, c: Component<T>): readonly T[];
|
|
180
|
+
/** The children holding `c`, each with its value, in sibling order (D3t-c — a pad's events by entity: the line you point at is one). */
|
|
181
|
+
entries?<T>(parent: Entity, c: Component<T>): readonly {
|
|
182
|
+
readonly entity: Entity;
|
|
183
|
+
readonly value: T;
|
|
184
|
+
}[];
|
|
185
|
+
/** A child's one edge `r` — the entity it names (D3t-c — a pin's note), undefined when it names none. */
|
|
186
|
+
target?(child: Entity, r: Relation): Entity | undefined;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* A kind's own state on ONE desk (D2c) — made once per desk by `ObjectKind.local`, threaded by the
|
|
190
|
+
* builder into every context of the kind as `ctx.local`, and told the frame's clock and each entity's
|
|
191
|
+
* end, so a kind can keep per-entity residency (a raster, a decoded picture) outside the world.
|
|
192
|
+
*/
|
|
193
|
+
export interface KindLocal {
|
|
194
|
+
/** Once a tick, before the draw, with the frame's clock (ms): does the state want a frame now (a wipe, a blink, an asset landed)? */
|
|
195
|
+
tick?(now: number): boolean;
|
|
196
|
+
/**
|
|
197
|
+
* WHEN THE KIND IS NEXT LIVE (K7a — registered wakes, design-015 §2.4): asked after each of its ticks, on the same clock —
|
|
198
|
+
* `now` or before: the next frame (a motion runs: a wipe, a roll, a flight, ink drying); a later time: then (the caret's
|
|
199
|
+
* next blink, a layer let go, midnight); `Infinity`: never on its own — only when the desk's facts move, an input comes, or
|
|
200
|
+
* the kind calls `KindHost.wake`. A loop at rest ticks a kind only when it is due: nothing is polled. Absent while `tick`
|
|
201
|
+
* is declared: due every frame — a kind that never said keeps the desk awake.
|
|
202
|
+
*/
|
|
203
|
+
due?(now: number): number;
|
|
204
|
+
/**
|
|
205
|
+
* What has LANDED on `e` so far — a count the kind moves when something arrives that changes how the object looks with no fact
|
|
206
|
+
* of its own moving (a picture decoded, ink replayed, a raster laid, tiles drawn, a wipe ended), never for a running motion (the
|
|
207
|
+
* ink drying, a wipe running, a pen). The builder reads it after it remakes a restless kind's record: a desk object's that moved
|
|
208
|
+
* remakes the blurred desk copy behind the hand (D7 — its stamp saw only the facts). Absent: nothing lands.
|
|
209
|
+
*/
|
|
210
|
+
landed?(e: Entity): number;
|
|
211
|
+
/** The entity left this desk for good — its ghost faded, it left the frame, the desk was reset: free what it held. */
|
|
212
|
+
forget?(e: Entity): void;
|
|
213
|
+
/**
|
|
214
|
+
* The entity is drawn LIFTED off the desk's order and away from its facts (D3t-a — a print in a hand, flicked, gliding or
|
|
215
|
+
* flying home): the builder paints it with the carried set, above its siblings, and the pick asks it first where it is drawn.
|
|
216
|
+
*/
|
|
217
|
+
lifted?(e: Entity): boolean;
|
|
218
|
+
/**
|
|
219
|
+
* Entities this kind's state says are NOT drawn this frame, of any kind (D3t-c — a note stuck to a day of a month the calendar is
|
|
220
|
+
* not showing): the builder draws none of them and the pick answers `outside` for them. Asked after `tick`, before the draw.
|
|
221
|
+
*/
|
|
222
|
+
veils?(): ReadonlySet<Entity>;
|
|
223
|
+
/** The kind's word on a raster it charged to the budget (D6): true = on screen this frame, never evicted now. */
|
|
224
|
+
keeps?(key: string): boolean;
|
|
225
|
+
dispose?(): void;
|
|
226
|
+
}
|
|
227
|
+
/** What a kind's `rung` reads (K6b): the object as the builder holds it, its SLOT's zoom (an inside's is its host's face's) and the dpr, and its kind's state on this desk. */
|
|
228
|
+
export interface RungContext {
|
|
229
|
+
readonly entity: Entity;
|
|
230
|
+
readonly rect: ObjectRect;
|
|
231
|
+
readonly props: Readonly<Record<string, unknown>>;
|
|
232
|
+
readonly zoom: number;
|
|
233
|
+
readonly dpr: number;
|
|
234
|
+
/** The kind's `local()` on this desk (`KindLocal`); undefined when it keeps none. */
|
|
235
|
+
readonly local: unknown;
|
|
236
|
+
/**
|
|
237
|
+
* The object's distance from the view's centre, screen px — the ORDER of what a kind asks at the new zoom (a raster at another band,
|
|
238
|
+
* of the frame raster queue: `KindHost.rasters`). The rung returned never reads it: it is where the camera is.
|
|
239
|
+
*/
|
|
240
|
+
readonly px: number;
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* A kind, whole: the render half the ground registers (`KindProgram` — name, stratum, the pass)
|
|
244
|
+
* and the world half the builder and the pick source drive. `G` is the kind's resolved geometry,
|
|
245
|
+
* `R` the record its pass draws, `L` its look (what `theme()` returns).
|
|
246
|
+
*/
|
|
247
|
+
export interface ObjectKind<G = unknown, R = unknown, L = unknown> extends KindProgram<R> {
|
|
248
|
+
/**
|
|
249
|
+
* How far the kind's drawing may reach PAST its rect, world units — its shadow, its lift, its
|
|
250
|
+
* tilt's overhang: the builder's cull margin, and the pick source's pad (`FramePickSource.pad`).
|
|
251
|
+
*/
|
|
252
|
+
readonly reach: number;
|
|
253
|
+
/** Components and tags the kind reads beyond its own props (the builder adds them to its change journal). */
|
|
254
|
+
readonly reads?: {
|
|
255
|
+
readonly components?: readonly Component[];
|
|
256
|
+
readonly tags?: readonly Tag[];
|
|
257
|
+
};
|
|
258
|
+
/**
|
|
259
|
+
* The record reads the view's ZOOM or dpr CONTINUOUSLY (a far-LOD lattice whose lines fade with every step of the zoom) and nothing
|
|
260
|
+
* else of the camera (design-015 §4.3; D6): the builder remakes it whenever they move and reuses it across a pan. A record that
|
|
261
|
+
* reads them only in steps says so with `rung` instead. Absent (and no `rung`) = the record is the facts' and the flux's alone. A
|
|
262
|
+
* composite kind is remade every frame it is drawn whatever it says (its `resolve` steps its own motion).
|
|
263
|
+
*/
|
|
264
|
+
readonly rezoom?: boolean;
|
|
265
|
+
/**
|
|
266
|
+
* The record reads the view's zoom or dpr ONLY THROUGH A RUNG (K6b, design-016 §6 — a raster's band): this object's rung under
|
|
267
|
+
* its slot's zoom, and the builder remakes the record only when that moves — a zoom within a rung remakes and writes nothing.
|
|
268
|
+
* Asked of a drawn object whenever its slot's zoom or the dpr moved since its rung was last read, never on a pan; it reads the
|
|
269
|
+
* zoom, never where the camera is. Wins over `rezoom`. A kind whose raster the frame queue makes asks for it HERE (ordered by
|
|
270
|
+
* `ctx.px`) and answers the rung of what it HOLDS — the record shows that until the queue lays the new one (`KindHost.remake`).
|
|
271
|
+
*/
|
|
272
|
+
rung?(ctx: RungContext): number;
|
|
273
|
+
/** A host's LIVE law (D5a — the dev panel's door, `handle.tuneLaw`): the kind resolves under it from the next build. Absent, its law is fixed. */
|
|
274
|
+
tune?(law: unknown): void;
|
|
275
|
+
/** The entity's geometry this frame, from its rect, its props and its flux — the prototype's `resolve*`. */
|
|
276
|
+
resolve(ctx: ObjectContext): G;
|
|
277
|
+
/** The record the kind's pass draws for that geometry — the prototype's instance. */
|
|
278
|
+
record(geometry: G, ctx: ObjectContext): R;
|
|
279
|
+
/** The CPU mirror on the SAME geometry the pass drew: the part under a world point, or null for a miss. */
|
|
280
|
+
hit(geometry: G, wx: number, wy: number): ObjectHit | null;
|
|
281
|
+
/**
|
|
282
|
+
* A CONTAINER kind's FACE as drawn — the window its inside shows through, in the desk's units
|
|
283
|
+
* (the mini mat: the sheet inset by its printed border, through its springs). The builder builds
|
|
284
|
+
* the live inside through it and the nav geometry seam answers core's nav with it (design-015 §9).
|
|
285
|
+
* Absent = the kind holds no desk.
|
|
286
|
+
*/
|
|
287
|
+
face?(geometry: G): Rect | undefined;
|
|
288
|
+
/**
|
|
289
|
+
* A CONTAINER kind's face law (K8a, kit/inside.ts `FaceLaw`): its face's corner radius, the most chips its face draws and the
|
|
290
|
+
* finishes it draws them in — the container's own numbers, never the kit's. Absent on a container: square, no chips.
|
|
291
|
+
*/
|
|
292
|
+
readonly faceLaw?: FaceLaw;
|
|
293
|
+
/**
|
|
294
|
+
* The kind's CHIP — its far impostor inside a container's face (MINIMAT.md §5; K8a: any kind's): the child as a `ChildShape` in
|
|
295
|
+
* ITS desk's units, in a finish the container draws — a note as paper with its writing greeked, a mini mat as vinyl with its
|
|
296
|
+
* border, a plugin kind as either or a finish of a plugin container's; `null` = nothing to chip. Absent = the kind has no chip
|
|
297
|
+
* (the oracle's prints): inside a far face it is not drawn.
|
|
298
|
+
*/
|
|
299
|
+
chip?(geometry: G, ctx: ObjectContext): ChildShape | null;
|
|
300
|
+
/** The grid a CONTAINER kind's inside draws with (the mini mat: the desk's fade-in, the mat in its vinyl, no rulers). Absent = the root's. */
|
|
301
|
+
insideGrid?(ctx: Pick<ObjectContext, "props" | "look">, root: GridConfig): GridConfig;
|
|
302
|
+
/**
|
|
303
|
+
* The silhouette the desk's MARKS go around (D4a — the brackets, a member's ticks, several's union, the tape):
|
|
304
|
+
* the geometry's centre, half extents AS DRAWN (the lift's scale in), turn and corner, world units. Absent =
|
|
305
|
+
* the rect, square to the mat (`rectFrame`).
|
|
306
|
+
*/
|
|
307
|
+
frame?(geometry: G): MarkFrame;
|
|
308
|
+
/** The kind's colours from the host's palette, per theme — the look `record` reads (`ctx.look`). */
|
|
309
|
+
theme?(palette: Palette, name: ThemeName): L;
|
|
310
|
+
/** The kind's own state on one desk (`ctx.local`) — made by the host once per desk; absent = none (D2c). */
|
|
311
|
+
local?(host: KindHost): KindLocal;
|
|
312
|
+
/** The kind's OPENING (design-015 §8, D4b): what picking it up means. Absent = the object never opens (`ops.open` refuses it). */
|
|
313
|
+
readonly open?: OpenBinding;
|
|
314
|
+
}
|
|
315
|
+
/**
|
|
316
|
+
* What the host lends a kind's DRIVERS (D7 #5, D-D7-A.3 — the hand onto the kind's state: a pen, a carry, a leaf, the
|
|
317
|
+
* calendar's writing and marks). A kind declares them in `defineObject` (`ObjectDef.drivers`); the host makes them once per
|
|
318
|
+
* desk, generically, and ticks them before the kinds' clocks — a third-party openable kind with held tools gets its driver
|
|
319
|
+
* the same way. Everything a driver needs comes through here: the world, the document's doors (docs.ts), the kind's own
|
|
320
|
+
* local and look, the builder's word (geometry as drawn, a held point into the world, the hand), the builder's give.
|
|
321
|
+
*/
|
|
322
|
+
export interface KindDriverHost {
|
|
323
|
+
readonly world: World;
|
|
324
|
+
/** The document's doors — `current()`, the writer's gate, the commit door, the history doors (docs.ts). */
|
|
325
|
+
readonly docs: TypingDocs;
|
|
326
|
+
/** This kind's own local (`ObjectKind.local`), if it declared one. */
|
|
327
|
+
readonly local: KindLocal | undefined;
|
|
328
|
+
/** This kind's look as the desk composed it (the swatches a pen draws in). */
|
|
329
|
+
readonly look: () => unknown;
|
|
330
|
+
/** Is `e` an object of this kind? */
|
|
331
|
+
readonly isKind: (e: Entity) => boolean;
|
|
332
|
+
/** Is `e` an object of the kind named — undefined when that kind is not on this desk. */
|
|
333
|
+
readonly kind: (name: string) => ((e: Entity) => boolean) | undefined;
|
|
334
|
+
/**
|
|
335
|
+
* Does `e`'s object type PROVIDE the key (K8a — `defineObject({ provides })`: the calendar asks after what is `PINNABLE`)? Undefined
|
|
336
|
+
* when no object type on this desk provides it. A kind asks after a capability, never after another kind's name.
|
|
337
|
+
*/
|
|
338
|
+
readonly provides: (key: string) => ((e: Entity) => boolean) | undefined;
|
|
339
|
+
/** The builder's word: an object's geometry as drawn (the kind's `G`), a held-screen point into its world, the hand. */
|
|
340
|
+
readonly geometryOf: (e: Entity) => unknown;
|
|
341
|
+
readonly heldToWorld: (e: Entity, x: number, y: number) => readonly [number, number] | undefined;
|
|
342
|
+
readonly hand: () => {
|
|
343
|
+
readonly entity: Entity;
|
|
344
|
+
readonly landing: boolean;
|
|
345
|
+
readonly frame: {
|
|
346
|
+
readonly cx: number;
|
|
347
|
+
readonly cy: number;
|
|
348
|
+
readonly s: number;
|
|
349
|
+
};
|
|
350
|
+
} | undefined;
|
|
351
|
+
/** The builder's give for a drag the kind refuses (a taped print meets the tape — D4a). */
|
|
352
|
+
readonly refused: (e: Entity) => void;
|
|
353
|
+
/** Ask the desk for a frame (something landed, a mark moved). */
|
|
354
|
+
readonly wake: () => void;
|
|
355
|
+
}
|
|
356
|
+
/** A kind's driver on one desk: ticked once a frame before the kinds' clocks; idle when it has nothing to follow (D7 #14). */
|
|
357
|
+
export interface KindDriver {
|
|
358
|
+
follow(now: number): void;
|
|
359
|
+
/** Nothing to follow this frame — nothing in hand, no press, no rest or roll owed: the host may skip `follow` (the idle-tick budget). Absent: never skipped. */
|
|
360
|
+
idle?(): boolean;
|
|
361
|
+
dispose?(): void;
|
|
362
|
+
}
|
|
363
|
+
/**
|
|
364
|
+
* An object's DOM HALF (K4b, design-016 §5 · K-L2) — what its kind needs of the browser, DECLARED with the object as its drivers
|
|
365
|
+
* are (`defineObject({ host })`): the desk layer builds what the registered objects declare and never finds a half by type or
|
|
366
|
+
* names a kind. Three moments, in the layer's order:
|
|
367
|
+
* - `lend`, before any kind's local: SERVICES only a browser can make, each under its key (K8a, kit/services.ts — the desk
|
|
368
|
+
* calendar lends `PRINT_RASTER`, in the host's hand, none without a text raster), handed what is lent so far (the host's, then
|
|
369
|
+
* the objects' before it) and the desk's wake for a service whose work lands later (`LendHost.wake` — K7a's sleeping loop steps);
|
|
370
|
+
* any kind's world half `use`s them (`KindHost.use`), a DOM half too (`ObjectDomHost.use`);
|
|
371
|
+
* - `text`, once the drivers are made: the object's TEXT PARTS (K8a, kit/editor.ts `TextPart`) — the parts of its objects that
|
|
372
|
+
* LEASE the desk's ONE editor: a part with a `tap` the desk routes every tap to (the note's body), a part without one its own
|
|
373
|
+
* half leases at event time (the desk calendar's day line). The editor is the DESK's (desk/host/editor.ts): no kind makes it;
|
|
374
|
+
* - `mount`, after that: a screen-space half, handed the editor like every half (the desk calendar's days and pen lease it). A
|
|
375
|
+
* mounted half is ended by what it joins — the calendar's by the calendar's driver.
|
|
376
|
+
*/
|
|
377
|
+
export interface ObjectHost {
|
|
378
|
+
readonly lend?: (host: LendHost) => readonly Lent[];
|
|
379
|
+
readonly text?: (host: ObjectDomHost) => readonly TextPart[] | undefined;
|
|
380
|
+
readonly mount?: (host: ObjectDomHost) => void;
|
|
381
|
+
}
|
|
382
|
+
/**
|
|
383
|
+
* What the host lends an object's DOM half (K4b): the screen-space container, the object the half was declared on and ITS
|
|
384
|
+
* driver, its kind's look, and the builder's word — a driver host's fields, and the few a browser half adds.
|
|
385
|
+
*/
|
|
386
|
+
export interface ObjectDomHost {
|
|
387
|
+
/** The host's container (screen space): a half's elements go in it, its taps are read on it. */
|
|
388
|
+
readonly container: HTMLElement;
|
|
389
|
+
readonly world: World;
|
|
390
|
+
/** The document's doors (docs.ts) — a half that writes, writes through them. */
|
|
391
|
+
readonly docs: TypingDocs;
|
|
392
|
+
/** The services lent on this desk (K8a — `KindHost.use`'s registry): a DOM half uses them by key as a world half does. */
|
|
393
|
+
readonly use: Services["use"];
|
|
394
|
+
/** The desk's ONE focused editor (K8a — the desk makes it; every kind leases it: kit/editor.ts `EditorLease`). */
|
|
395
|
+
readonly editor: DeskEditor;
|
|
396
|
+
/** The object the half was declared on — its compiled widget type (its props' groups). */
|
|
397
|
+
readonly object: WidgetType;
|
|
398
|
+
/** The object's own driver (`defineObject({ drivers })`), if it declared one. */
|
|
399
|
+
readonly driver: KindDriver | undefined;
|
|
400
|
+
/** The object's kind's look as the desk composed it. */
|
|
401
|
+
readonly look: () => unknown;
|
|
402
|
+
/** The builder's word: an object's geometry as drawn, the hand, a held-screen point into its world. */
|
|
403
|
+
readonly geometryOf: KindDriverHost["geometryOf"];
|
|
404
|
+
readonly hand: KindDriverHost["hand"];
|
|
405
|
+
readonly heldToWorld: KindDriverHost["heldToWorld"];
|
|
406
|
+
/** Ask the desk for a frame. */
|
|
407
|
+
readonly wake: () => void;
|
|
408
|
+
/** A writing session ends after this long without input, ms (`DeskLayerOptions.idleMs`); absent: the half's own. */
|
|
409
|
+
readonly idleMs?: number | undefined;
|
|
410
|
+
}
|
|
411
|
+
/** The strata a kind may declare — re-exported beside the contract for a kind's author. */
|
|
412
|
+
export type { StratumName };
|
|
413
|
+
/** ICE's top-left `Position` + `Size` → the centred rect every law reads: the ONE conversion. */
|
|
414
|
+
export declare function rectOf(pos: {
|
|
415
|
+
readonly x: number;
|
|
416
|
+
readonly y: number;
|
|
417
|
+
}, size: {
|
|
418
|
+
readonly w: number;
|
|
419
|
+
readonly h: number;
|
|
420
|
+
}): ObjectRect;
|
|
421
|
+
/** An object's marks' silhouette when its kind draws none of its own: the rect, square to the mat, no corner. */
|
|
422
|
+
export declare const rectFrame: (r: ObjectRect) => MarkFrame;
|
|
423
|
+
/** The flux of an object at rest: down, unhovered, unselected, whole. */
|
|
424
|
+
export declare const FLUX_REST: ObjectFlux;
|
|
425
|
+
/** A prop read with a type and a default — the kinds' one door to `ctx.props`. */
|
|
426
|
+
export declare const numberProp: (props: Readonly<Record<string, unknown>>, name: string, fallback: number) => number;
|
|
427
|
+
export declare const stringProp: (props: Readonly<Record<string, unknown>>, name: string, fallback: string) => string;
|
|
428
|
+
/** Is this opaque widget binding a desk kind — the world half present beside the program? */
|
|
429
|
+
export declare function isObjectKind(binding: unknown): binding is ObjectKind;
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/** The level of a `w × h` chain whose both sides first fit `side` (0 when the whole chain does). */
|
|
2
|
+
export declare function tailBase(w: number, h: number, side: number): number;
|
|
3
|
+
/** Bytes of `levels` of a chain from `w × h` at `texel` bytes a texel. */
|
|
4
|
+
export declare function chainBytes(w: number, h: number, levels: number, texel?: number): number;
|
|
5
|
+
/**
|
|
6
|
+
* THE LAYER ALLOCATOR: an array's layers handed out lowest first and taken back; `take` says the capacity the array must hold
|
|
7
|
+
* for the layer it hands out (doubling, from `first`, to the device's `max`) — null when it holds no more. K9 R2: `shrunk` says
|
|
8
|
+
* the capacity the layers in use let the array fall back to — halves, and nothing at all when none is in use.
|
|
9
|
+
*/
|
|
10
|
+
export declare class Layers {
|
|
11
|
+
readonly first: number;
|
|
12
|
+
readonly max: number;
|
|
13
|
+
private free;
|
|
14
|
+
private next;
|
|
15
|
+
capacity: number;
|
|
16
|
+
constructor(first?: number, max?: number);
|
|
17
|
+
take(): {
|
|
18
|
+
readonly layer: number;
|
|
19
|
+
readonly capacity: number;
|
|
20
|
+
} | null;
|
|
21
|
+
give(layer: number): void;
|
|
22
|
+
get used(): number;
|
|
23
|
+
/** The highest layer in use (−1 when none): what a smaller array must still hold. */
|
|
24
|
+
get highest(): number;
|
|
25
|
+
/**
|
|
26
|
+
* The capacity an array holding these layers may shrink to (K9 R2): halved while fewer than a QUARTER of it is in use and the
|
|
27
|
+
* highest layer in use fits the half — down to `first`; 0 when none is in use; the current capacity when it cannot shrink.
|
|
28
|
+
*/
|
|
29
|
+
shrunk(): number;
|
|
30
|
+
/** The allocator's word after the array was remade at `capacity` (from `shrunk()`): the layers past it are forgotten. */
|
|
31
|
+
shrinkTo(capacity: number): void;
|
|
32
|
+
}
|
|
33
|
+
/** The plain format an `-srgb` one is viewed as for a copy (the bytes pass unchanged); a plain format is its own. */
|
|
34
|
+
export declare const plainFormat: (f: GPUTextureFormat) => GPUTextureFormat;
|
|
35
|
+
export interface LayerArrayOptions {
|
|
36
|
+
/** The label every array is made with (`photo/thumbnails`) — the memory ledger's row. */
|
|
37
|
+
readonly label: string;
|
|
38
|
+
readonly format: GPUTextureFormat;
|
|
39
|
+
/** The layers' side, texels (square); every layer holds its full mip chain. */
|
|
40
|
+
readonly side: number;
|
|
41
|
+
/** Layers at the first growth (then doubling). */
|
|
42
|
+
readonly first?: number;
|
|
43
|
+
}
|
|
44
|
+
/** One kind's array of layers on one device: its texture (null before the first layer), the allocator, the fill. */
|
|
45
|
+
export declare class LayerArray {
|
|
46
|
+
readonly side: number;
|
|
47
|
+
readonly mips: number;
|
|
48
|
+
readonly format: GPUTextureFormat;
|
|
49
|
+
private readonly device;
|
|
50
|
+
private readonly label;
|
|
51
|
+
private readonly layers;
|
|
52
|
+
private tex;
|
|
53
|
+
/** The texture's layers (kept here: a fake device's texture has no count of its own). */
|
|
54
|
+
private cap;
|
|
55
|
+
/** Bumped whenever the texture is remade (a bind group holding its view must be made again). */
|
|
56
|
+
version: number;
|
|
57
|
+
/** The fill's pipeline, made on the first fill — labelled with the array's own name, so the profiler counts its passes as the kind's. */
|
|
58
|
+
private fillPipe;
|
|
59
|
+
constructor(device: GPUDevice, opts: LayerArrayOptions);
|
|
60
|
+
/** The array (null before its first layer). */
|
|
61
|
+
get texture(): GPUTexture | null;
|
|
62
|
+
/** Layers in use; the array's capacity. */
|
|
63
|
+
get used(): number;
|
|
64
|
+
get capacity(): number;
|
|
65
|
+
/** What the array weighs on the device, every layer of its capacity with its chain (the GPU ledger's row). */
|
|
66
|
+
get bytes(): number;
|
|
67
|
+
/** What the layers IN USE weigh (K9 R2: the budget's resident charge — the capacity's slack is the ledger's to show, bounded by `give`'s shrink). */
|
|
68
|
+
get usedBytes(): number;
|
|
69
|
+
/** A layer for a new object (the array grown — its old layers copied — when it must be); null when the device holds no more. */
|
|
70
|
+
take(): number | null;
|
|
71
|
+
/**
|
|
72
|
+
* A layer given back — and the array SHRUNK when fewer than a quarter of its layers are in use and the ones in use fit the
|
|
73
|
+
* half (K9 R2: an array never shrank before, so its charge survived a document switch): remade at half, its low layers copied;
|
|
74
|
+
* let go entirely when none is in use. The version moves as on a growth — a holder rebinds its view.
|
|
75
|
+
*/
|
|
76
|
+
give(layer: number): void;
|
|
77
|
+
/**
|
|
78
|
+
* Layer `layer`'s every level from `src`'s chain: level `base + m` at the origin, its edge carried to the layer's; a level past
|
|
79
|
+
* the chain's end takes its last. `src` must allow the plain view of its format (`viewFormats`) when that format is `-srgb`.
|
|
80
|
+
*/
|
|
81
|
+
fill(src: GPUTexture, srcMips: number, layer: number, base: number, encoder?: GPUCommandEncoder): void;
|
|
82
|
+
/** A `2d-array` view of the whole array — or of `blank` (a 1 × 1 × 1 stand-in the caller keeps) before its first layer. */
|
|
83
|
+
view(blank: GPUTexture): GPUTextureView;
|
|
84
|
+
destroy(): void;
|
|
85
|
+
/** The array made again at `capacity` layers — the old one's layers copied, as many as both hold — and the old destroyed. */
|
|
86
|
+
private remake;
|
|
87
|
+
private pipeline;
|
|
88
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { type ServiceKey } from "./services";
|
|
2
|
+
/** A blob as the store holds it: its bytes and its media type (`image/png`, `RGBA_TYPE`, …). */
|
|
3
|
+
export interface StoredBlob {
|
|
4
|
+
readonly bytes: Uint8Array<ArrayBuffer>;
|
|
5
|
+
readonly type: string;
|
|
6
|
+
}
|
|
7
|
+
/** The app's content-addressed byte store (D-D12): the desk names a blob by its hash; keeping the bytes is the app's. */
|
|
8
|
+
export interface BlobStore {
|
|
9
|
+
/** Keep `bytes` (idempotent by content); resolves to their hash — the name a print's `blob` prop carries. */
|
|
10
|
+
put(bytes: Uint8Array<ArrayBuffer>, type: string): Promise<string>;
|
|
11
|
+
/** The blob under a hash, or undefined when the store has none (a peer's picture not arrived yet, a hash from another desk). */
|
|
12
|
+
get(hash: string): Promise<StoredBlob | undefined>;
|
|
13
|
+
}
|
|
14
|
+
/** A picture ready for the pass: raw RGBA rows, or a source the device copies from (a browser's `ImageBitmap`) — closed once uploaded. */
|
|
15
|
+
export type DecodedPicture = {
|
|
16
|
+
readonly kind: "rgba";
|
|
17
|
+
readonly bytes: Uint8Array<ArrayBuffer>;
|
|
18
|
+
readonly width: number;
|
|
19
|
+
readonly height: number;
|
|
20
|
+
} | {
|
|
21
|
+
readonly kind: "source";
|
|
22
|
+
readonly source: unknown;
|
|
23
|
+
readonly width: number;
|
|
24
|
+
readonly height: number;
|
|
25
|
+
close?(): void;
|
|
26
|
+
};
|
|
27
|
+
/** The host's decoder for an encoded blob, scaled so its long side is at most `max` texels; undefined when it cannot. */
|
|
28
|
+
export type PictureDecoder = (blob: StoredBlob, max: number) => Promise<DecodedPicture | undefined>;
|
|
29
|
+
/** The app's byte store as a desk SERVICE (K8a, kit/services.ts — `deskLayer({ blobs })` lends it): `host.use?.(BLOB_STORE)`. */
|
|
30
|
+
export declare const BLOB_STORE: ServiceKey<BlobStore>;
|
|
31
|
+
/** The host's picture decoder as a desk SERVICE (K8a — the layer lends `decodePicture` in a browser): `host.use?.(PICTURE_DECODER)`. */
|
|
32
|
+
export declare const PICTURE_DECODER: ServiceKey<PictureDecoder>;
|
|
33
|
+
/** Raw RGBA8 rows, row-major, no header — the one media type the desk decodes itself (its size is the print's `width` × `height`). */
|
|
34
|
+
export declare const RGBA_TYPE = "image/x-ice-rgba";
|
|
35
|
+
/** The name a blob goes by: SHA-256 over its bytes, lowercase hex. */
|
|
36
|
+
export declare function hashBytes(bytes: Uint8Array<ArrayBuffer>): Promise<string>;
|
|
37
|
+
/** The reference store: every blob in a Map, for the life of the page. */
|
|
38
|
+
export declare function createMemoryBlobStore(): BlobStore & {
|
|
39
|
+
size(): number;
|
|
40
|
+
};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare const NbUniforms: import("../engine").StructDef<"view" | "eye" | "light" | "shadow" | "shadow2" | "paper" | "rule" | "cloth" | "castCol" | "select" | "ruleInk" | "ring">;
|
|
2
|
+
export declare const NbBook: import("../engine").StructDef<"size" | "light" | "model" | "inv" | "lamp" | "sh" | "page" | "open" | "look" | "foot" | "recv" | "inkPage" | "inkLayer" | "col0" | "col1" | "col2" | "col3" | "col4" | "col5" | "col6" | "col7">;
|