@pascal-app/core 1.0.0-beta.5 → 1.0.1
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/LICENSE +21 -0
- package/README.md +23 -0
- package/dist/capture/index.d.ts +3 -0
- package/dist/capture/index.d.ts.map +1 -0
- package/dist/capture/index.js +2 -0
- package/dist/capture/schema.d.ts +417 -0
- package/dist/capture/schema.d.ts.map +1 -0
- package/dist/capture/schema.js +350 -0
- package/dist/capture/source.d.ts +60 -0
- package/dist/capture/source.d.ts.map +1 -0
- package/dist/capture/source.js +254 -0
- package/dist/events/bus.d.ts +58 -7
- package/dist/events/bus.d.ts.map +1 -1
- package/dist/events/hidden-wall-pointer-hold.d.ts +28 -0
- package/dist/events/hidden-wall-pointer-hold.d.ts.map +1 -0
- package/dist/events/hidden-wall-pointer-hold.js +37 -0
- package/dist/hooks/spatial-grid/floor-placed-elevation.d.ts +4 -4
- package/dist/hooks/spatial-grid/floor-placed-elevation.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/floor-placed-elevation.js +7 -12
- package/dist/hooks/spatial-grid/floor-placed-footprints.d.ts +4 -0
- package/dist/hooks/spatial-grid/floor-placed-footprints.d.ts.map +1 -0
- package/dist/hooks/spatial-grid/floor-placed-footprints.js +7 -0
- package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts +5 -8
- package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/spatial-grid-manager.js +23 -106
- package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts +2931 -2
- package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/spatial-grid-sync.js +207 -30
- package/dist/hooks/spatial-grid/support-host-patch.d.ts +45 -1
- package/dist/hooks/spatial-grid/support-host-patch.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/support-host-patch.js +174 -9
- package/dist/hooks/spatial-grid/use-spatial-query.d.ts +1 -1
- package/dist/hooks/spatial-grid/use-spatial-query.js +1 -1
- package/dist/index.d.ts +74 -64
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +74 -61
- package/dist/lib/asset-storage.d.ts.map +1 -1
- package/dist/lib/asset-storage.js +4 -1
- package/dist/lib/door-operation.d.ts +1 -1
- package/dist/lib/item-polygon-overlap.d.ts +6 -0
- package/dist/lib/item-polygon-overlap.d.ts.map +1 -0
- package/dist/lib/item-polygon-overlap.js +67 -0
- package/dist/lib/level-name.d.ts +1 -1
- package/dist/lib/measurement-geometry.d.ts +4 -4
- package/dist/lib/plan-footprint.d.ts +41 -0
- package/dist/lib/plan-footprint.d.ts.map +1 -0
- package/dist/lib/plan-footprint.js +58 -0
- package/dist/lib/polygon-union.d.ts +4 -0
- package/dist/lib/polygon-union.d.ts.map +1 -0
- package/dist/lib/polygon-union.js +306 -0
- package/dist/lib/roof-overlap.d.ts +32 -0
- package/dist/lib/roof-overlap.d.ts.map +1 -0
- package/dist/lib/roof-overlap.js +72 -0
- package/dist/lib/room-topology-index.d.ts +1 -1
- package/dist/lib/room-topology-index.js +1 -1
- package/dist/lib/selection-proxy.d.ts +1 -1
- package/dist/lib/slab-polygon.d.ts +36 -3
- package/dist/lib/slab-polygon.d.ts.map +1 -1
- package/dist/lib/slab-polygon.js +135 -29
- package/dist/lib/space-detection.d.ts +12 -1
- package/dist/lib/space-detection.d.ts.map +1 -1
- package/dist/lib/space-detection.js +58 -25
- package/dist/lib/terrain-brush.d.ts +1 -1
- package/dist/lib/terrain-brush.js +1 -1
- package/dist/lib/terrain-codec.d.ts +2 -2
- package/dist/lib/terrain-codec.js +1 -1
- package/dist/lib/terrain-raycast.d.ts +1 -1
- package/dist/lib/terrain-raycast.js +1 -1
- package/dist/lib/terrain-source.d.ts +3 -3
- package/dist/lib/terrain-source.js +3 -3
- package/dist/lib/terrain-support.d.ts +1 -1
- package/dist/lib/terrain-support.js +3 -3
- package/dist/lib/unit-containment.d.ts +19 -0
- package/dist/lib/unit-containment.d.ts.map +1 -0
- package/dist/lib/unit-containment.js +158 -0
- package/dist/lib/unit-report.d.ts +19 -0
- package/dist/lib/unit-report.d.ts.map +1 -0
- package/dist/lib/unit-report.js +36 -0
- package/dist/lib/wall-distance.d.ts +2 -2
- package/dist/lib/wall-distance.js +1 -1
- package/dist/lib/zone-quantities.d.ts +1 -1
- package/dist/lib/zone-quantities.js +7 -7
- package/dist/material-library.d.ts +1 -1
- package/dist/material-library.js +1 -1
- package/dist/procedural-items/fixtures.d.ts +261 -0
- package/dist/procedural-items/fixtures.d.ts.map +1 -0
- package/dist/procedural-items/fixtures.js +349 -0
- package/dist/procedural-items/index.d.ts +10 -0
- package/dist/procedural-items/index.d.ts.map +1 -0
- package/dist/procedural-items/index.js +9 -0
- package/dist/procedural-items/integration.d.ts +92 -0
- package/dist/procedural-items/integration.d.ts.map +1 -0
- package/dist/procedural-items/integration.js +19 -0
- package/dist/procedural-items/library-colors.d.ts +56 -0
- package/dist/procedural-items/library-colors.d.ts.map +1 -0
- package/dist/procedural-items/library-colors.js +84 -0
- package/dist/procedural-items/materials.d.ts +5 -0
- package/dist/procedural-items/materials.d.ts.map +1 -0
- package/dist/procedural-items/materials.js +47 -0
- package/dist/procedural-items/node.d.ts +280 -0
- package/dist/procedural-items/node.d.ts.map +1 -0
- package/dist/procedural-items/node.js +71 -0
- package/dist/procedural-items/placement.d.ts +7 -0
- package/dist/procedural-items/placement.d.ts.map +1 -0
- package/dist/procedural-items/placement.js +48 -0
- package/dist/procedural-items/query.d.ts +50 -0
- package/dist/procedural-items/query.d.ts.map +1 -0
- package/dist/procedural-items/query.js +298 -0
- package/dist/procedural-items/recipe.d.ts +144 -0
- package/dist/procedural-items/recipe.d.ts.map +1 -0
- package/dist/procedural-items/recipe.js +372 -0
- package/dist/procedural-items/spatial.d.ts +19 -0
- package/dist/procedural-items/spatial.d.ts.map +1 -0
- package/dist/procedural-items/spatial.js +39 -0
- package/dist/registry/__bench__/relations-resolver.bench.js +2 -2
- package/dist/registry/handles.d.ts +36 -7
- package/dist/registry/handles.d.ts.map +1 -1
- package/dist/registry/index.d.ts +6 -7
- package/dist/registry/index.d.ts.map +1 -1
- package/dist/registry/index.js +4 -5
- package/dist/registry/registry.d.ts +13 -6
- package/dist/registry/registry.d.ts.map +1 -1
- package/dist/registry/registry.js +37 -4
- package/dist/registry/relations-resolver.d.ts +2 -2
- package/dist/registry/relations-resolver.js +1 -1
- package/dist/registry/scene-api.d.ts +18 -2
- package/dist/registry/scene-api.d.ts.map +1 -1
- package/dist/registry/scene-api.js +50 -2
- package/dist/registry/subtree.d.ts +1 -1
- package/dist/registry/subtree.js +2 -2
- package/dist/registry/types.d.ts +246 -21
- package/dist/registry/types.d.ts.map +1 -1
- package/dist/registry/use-registry-version.js +1 -1
- package/dist/registry/validate-relations.d.ts +4 -0
- package/dist/registry/validate-relations.d.ts.map +1 -0
- package/dist/registry/validate-relations.js +22 -0
- package/dist/schema/__bench__/node-parsers.bench.d.ts +24 -0
- package/dist/schema/__bench__/node-parsers.bench.d.ts.map +1 -0
- package/dist/schema/__bench__/node-parsers.bench.js +314 -0
- package/dist/schema/__fixtures__/node-fixtures.d.ts +28 -0
- package/dist/schema/__fixtures__/node-fixtures.d.ts.map +1 -0
- package/dist/schema/__fixtures__/node-fixtures.js +127 -0
- package/dist/schema/base.d.ts +1 -1
- package/dist/schema/base.d.ts.map +1 -1
- package/dist/schema/base.js +9 -2
- package/dist/schema/collections.d.ts +1 -1
- package/dist/schema/collections.js +1 -1
- package/dist/schema/compiled-node-parsers.d.ts +40 -0
- package/dist/schema/compiled-node-parsers.d.ts.map +1 -0
- package/dist/schema/compiled-node-parsers.js +95 -0
- package/dist/schema/index.d.ts +73 -66
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/index.js +65 -57
- package/dist/schema/material.d.ts +1 -0
- package/dist/schema/material.d.ts.map +1 -1
- package/dist/schema/material.js +2 -1
- package/dist/schema/nodes/automatic-downspout.d.ts +17 -0
- package/dist/schema/nodes/automatic-downspout.d.ts.map +1 -0
- package/dist/schema/nodes/automatic-downspout.js +237 -0
- package/dist/schema/nodes/block.d.ts +107 -0
- package/dist/schema/nodes/block.d.ts.map +1 -0
- package/dist/schema/nodes/block.js +206 -0
- package/dist/schema/nodes/box-vent.d.ts +8 -2
- package/dist/schema/nodes/box-vent.d.ts.map +1 -1
- package/dist/schema/nodes/box-vent.js +4 -2
- package/dist/schema/nodes/building.d.ts +2 -2
- package/dist/schema/nodes/building.d.ts.map +1 -1
- package/dist/schema/nodes/building.js +8 -5
- package/dist/schema/nodes/cabinet.d.ts +26 -4
- package/dist/schema/nodes/cabinet.d.ts.map +1 -1
- package/dist/schema/nodes/cabinet.js +29 -8
- package/dist/schema/nodes/ceiling.d.ts +2 -2
- package/dist/schema/nodes/ceiling.js +5 -5
- package/dist/schema/nodes/chimney.d.ts +2 -2
- package/dist/schema/nodes/chimney.js +2 -2
- package/dist/schema/nodes/column.d.ts +7 -6
- package/dist/schema/nodes/column.d.ts.map +1 -1
- package/dist/schema/nodes/column.js +3 -2
- package/dist/schema/nodes/construction-dimension.d.ts +1 -1
- package/dist/schema/nodes/construction-dimension.js +2 -2
- package/dist/schema/nodes/cupola.d.ts +9 -1
- package/dist/schema/nodes/cupola.d.ts.map +1 -1
- package/dist/schema/nodes/cupola.js +4 -2
- package/dist/schema/nodes/door.d.ts +1 -1
- package/dist/schema/nodes/door.js +2 -2
- package/dist/schema/nodes/dormer.d.ts +45 -2
- package/dist/schema/nodes/dormer.d.ts.map +1 -1
- package/dist/schema/nodes/dormer.js +133 -9
- package/dist/schema/nodes/downspout.d.ts +11 -1
- package/dist/schema/nodes/downspout.d.ts.map +1 -1
- package/dist/schema/nodes/downspout.js +26 -2
- package/dist/schema/nodes/duct-fitting.d.ts +18 -1
- package/dist/schema/nodes/duct-fitting.d.ts.map +1 -1
- package/dist/schema/nodes/duct-fitting.js +26 -5
- package/dist/schema/nodes/duct-segment.d.ts +23 -1
- package/dist/schema/nodes/duct-segment.d.ts.map +1 -1
- package/dist/schema/nodes/duct-segment.js +21 -1
- package/dist/schema/nodes/duct-terminal.d.ts +1 -1
- package/dist/schema/nodes/duct-terminal.js +1 -1
- package/dist/schema/nodes/elevator.d.ts +1 -1
- package/dist/schema/nodes/elevator.js +2 -2
- package/dist/schema/nodes/eyebrow-vent.d.ts +8 -2
- package/dist/schema/nodes/eyebrow-vent.d.ts.map +1 -1
- package/dist/schema/nodes/eyebrow-vent.js +4 -2
- package/dist/schema/nodes/fence.d.ts +1 -1
- package/dist/schema/nodes/fence.js +2 -2
- package/dist/schema/nodes/guide.d.ts +1 -1
- package/dist/schema/nodes/guide.js +2 -2
- package/dist/schema/nodes/gutter.d.ts +36 -2
- package/dist/schema/nodes/gutter.d.ts.map +1 -1
- package/dist/schema/nodes/gutter.js +310 -3
- package/dist/schema/nodes/hanger-overrides.d.ts +7 -0
- package/dist/schema/nodes/hanger-overrides.d.ts.map +1 -0
- package/dist/schema/nodes/hanger-overrides.js +6 -0
- package/dist/schema/nodes/hvac-equipment.d.ts +1 -1
- package/dist/schema/nodes/hvac-equipment.js +1 -1
- package/dist/schema/nodes/imported-mesh.d.ts +40 -0
- package/dist/schema/nodes/imported-mesh.d.ts.map +1 -0
- package/dist/schema/nodes/imported-mesh.js +27 -0
- package/dist/schema/nodes/item.d.ts +3 -2
- package/dist/schema/nodes/item.d.ts.map +1 -1
- package/dist/schema/nodes/item.js +8 -3
- package/dist/schema/nodes/lean-to-extension.d.ts +212 -0
- package/dist/schema/nodes/lean-to-extension.d.ts.map +1 -0
- package/dist/schema/nodes/lean-to-extension.js +114 -0
- package/dist/schema/nodes/level.d.ts +2 -2
- package/dist/schema/nodes/level.d.ts.map +1 -1
- package/dist/schema/nodes/level.js +1 -1
- package/dist/schema/nodes/lineset.d.ts +1 -1
- package/dist/schema/nodes/lineset.js +1 -1
- package/dist/schema/nodes/liquid-line.d.ts +1 -1
- package/dist/schema/nodes/liquid-line.js +1 -1
- package/dist/schema/nodes/measurement.d.ts +1 -1
- package/dist/schema/nodes/measurement.js +2 -2
- package/dist/schema/nodes/pipe-fitting.d.ts +10 -2
- package/dist/schema/nodes/pipe-fitting.d.ts.map +1 -1
- package/dist/schema/nodes/pipe-fitting.js +7 -3
- package/dist/schema/nodes/pipe-segment.d.ts +24 -2
- package/dist/schema/nodes/pipe-segment.d.ts.map +1 -1
- package/dist/schema/nodes/pipe-segment.js +21 -1
- package/dist/schema/nodes/pipe-trap.d.ts +2 -2
- package/dist/schema/nodes/pipe-trap.js +1 -1
- package/dist/schema/nodes/ridge-vent.d.ts +2 -2
- package/dist/schema/nodes/ridge-vent.d.ts.map +1 -1
- package/dist/schema/nodes/ridge-vent.js +7 -4
- package/dist/schema/nodes/roof-segment-shape.d.ts +5 -1
- package/dist/schema/nodes/roof-segment-shape.d.ts.map +1 -1
- package/dist/schema/nodes/roof-segment-shape.js +65 -2
- package/dist/schema/nodes/roof-segment-walls.d.ts +4 -2
- package/dist/schema/nodes/roof-segment-walls.d.ts.map +1 -1
- package/dist/schema/nodes/roof-segment-walls.js +2 -2
- package/dist/schema/nodes/roof-segment.d.ts +42 -2
- package/dist/schema/nodes/roof-segment.d.ts.map +1 -1
- package/dist/schema/nodes/roof-segment.js +81 -4
- package/dist/schema/nodes/roof.d.ts +23 -2
- package/dist/schema/nodes/roof.d.ts.map +1 -1
- package/dist/schema/nodes/roof.js +17 -3
- package/dist/schema/nodes/scan.d.ts +19 -2
- package/dist/schema/nodes/scan.d.ts.map +1 -1
- package/dist/schema/nodes/scan.js +13 -3
- package/dist/schema/nodes/shelf.d.ts +3 -3
- package/dist/schema/nodes/shelf.d.ts.map +1 -1
- package/dist/schema/nodes/shelf.js +3 -4
- package/dist/schema/nodes/site.d.ts +1 -1
- package/dist/schema/nodes/site.js +2 -2
- package/dist/schema/nodes/skylight.d.ts +5 -5
- package/dist/schema/nodes/skylight.js +2 -2
- package/dist/schema/nodes/slab.d.ts +1 -1
- package/dist/schema/nodes/slab.js +3 -3
- package/dist/schema/nodes/solar-panel.d.ts +1 -1
- package/dist/schema/nodes/solar-panel.js +3 -3
- package/dist/schema/nodes/spawn.d.ts +1 -1
- package/dist/schema/nodes/spawn.js +1 -1
- package/dist/schema/nodes/stair-segment.d.ts +1 -1
- package/dist/schema/nodes/stair-segment.js +2 -2
- package/dist/schema/nodes/stair.d.ts +2 -2
- package/dist/schema/nodes/stair.js +3 -3
- package/dist/schema/nodes/structural-grid.d.ts +1 -1
- package/dist/schema/nodes/structural-grid.js +1 -1
- package/dist/schema/nodes/turbine-vent.d.ts +8 -2
- package/dist/schema/nodes/turbine-vent.d.ts.map +1 -1
- package/dist/schema/nodes/turbine-vent.js +4 -2
- package/dist/schema/nodes/unit.d.ts +33 -0
- package/dist/schema/nodes/unit.d.ts.map +1 -0
- package/dist/schema/nodes/unit.js +13 -0
- package/dist/schema/nodes/wall.d.ts +5 -5
- package/dist/schema/nodes/wall.d.ts.map +1 -1
- package/dist/schema/nodes/wall.js +13 -6
- package/dist/schema/nodes/window.d.ts +10 -3
- package/dist/schema/nodes/window.d.ts.map +1 -1
- package/dist/schema/nodes/window.js +6 -2
- package/dist/schema/nodes/zone.d.ts +2 -2
- package/dist/schema/nodes/zone.js +2 -2
- package/dist/schema/scene-material.js +2 -2
- package/dist/schema/types.d.ts +815 -118
- package/dist/schema/types.d.ts.map +1 -1
- package/dist/schema/types.js +79 -46
- package/dist/services/alignment-anchors.d.ts +6 -11
- package/dist/services/alignment-anchors.d.ts.map +1 -1
- package/dist/services/alignment-anchors.js +7 -34
- package/dist/services/drag-session.d.ts +4 -4
- package/dist/services/drag-session.js +1 -1
- package/dist/services/hosting.d.ts +4 -10
- package/dist/services/hosting.d.ts.map +1 -1
- package/dist/services/hosting.js +6 -16
- package/dist/services/index.d.ts +16 -13
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +16 -13
- package/dist/services/level-height.d.ts +2 -2
- package/dist/services/level-height.js +3 -3
- package/dist/services/movement.d.ts +3 -3
- package/dist/services/movement.js +2 -2
- package/dist/services/port-connectivity.d.ts +1 -1
- package/dist/services/port-connectivity.js +1 -1
- package/dist/services/riser-diagram.d.ts +1 -1
- package/dist/services/shelf-board.d.ts +5 -0
- package/dist/services/shelf-board.d.ts.map +1 -0
- package/dist/services/shelf-board.js +15 -0
- package/dist/services/storey.d.ts +2 -2
- package/dist/services/storey.js +2 -2
- package/dist/services/surface-hosting-procedural-parity.fixtures.d.ts +13 -0
- package/dist/services/surface-hosting-procedural-parity.fixtures.d.ts.map +1 -0
- package/dist/services/surface-hosting-procedural-parity.fixtures.js +4691 -0
- package/dist/services/surface-hosting-shelf-parity.fixtures.d.ts +1060 -0
- package/dist/services/surface-hosting-shelf-parity.fixtures.d.ts.map +1 -0
- package/dist/services/surface-hosting-shelf-parity.fixtures.js +3127 -0
- package/dist/services/surface-hosting.d.ts +88 -0
- package/dist/services/surface-hosting.d.ts.map +1 -0
- package/dist/services/surface-hosting.js +268 -0
- package/dist/services/surface-region.d.ts +8 -0
- package/dist/services/surface-region.d.ts.map +1 -0
- package/dist/services/surface-region.js +44 -0
- package/dist/services/system-graph.d.ts +12 -1
- package/dist/services/system-graph.d.ts.map +1 -1
- package/dist/services/system-graph.js +36 -6
- package/dist/services/validate-dwv.d.ts +1 -1
- package/dist/services/validate-dwv.js +1 -1
- package/dist/store/actions/node-actions.d.ts +9 -2
- package/dist/store/actions/node-actions.d.ts.map +1 -1
- package/dist/store/actions/node-actions.js +475 -24
- package/dist/store/history-control.d.ts +3 -3
- package/dist/store/history-invalidation.d.ts +3 -0
- package/dist/store/history-invalidation.d.ts.map +1 -0
- package/dist/store/history-invalidation.js +72 -0
- package/dist/store/scene-hydration.d.ts +5 -0
- package/dist/store/scene-hydration.d.ts.map +1 -0
- package/dist/store/scene-hydration.js +57 -0
- package/dist/store/use-interactive.d.ts +2 -2
- package/dist/store/use-live-terrain.d.ts +1 -1
- package/dist/store/use-scene.d.ts +7 -4
- package/dist/store/use-scene.d.ts.map +1 -1
- package/dist/store/use-scene.js +361 -87
- package/dist/systems/elevator/elevator-dispatch.d.ts +2 -2
- package/dist/systems/elevator/elevator-dispatch.js +1 -1
- package/dist/systems/elevator/elevator-geometry.d.ts +1 -1
- package/dist/systems/elevator/elevator-opening-sync.d.ts +1 -1
- package/dist/systems/elevator/elevator-opening-sync.js +2 -2
- package/dist/systems/elevator/elevator-opening-system.js +3 -3
- package/dist/systems/elevator/elevator-runtime.d.ts +3 -3
- package/dist/systems/elevator/elevator-runtime.js +3 -3
- package/dist/systems/elevator/elevator-service.d.ts +1 -1
- package/dist/systems/elevator/elevator-service.js +1 -1
- package/dist/systems/fence/fence-centerline.d.ts +2 -2
- package/dist/systems/fence/fence-centerline.js +2 -2
- package/dist/systems/fence/fence-spline.d.ts +2 -2
- package/dist/systems/roof/roof-elevation-system.d.ts +3 -0
- package/dist/systems/roof/roof-elevation-system.d.ts.map +1 -0
- package/dist/systems/roof/roof-elevation-system.js +94 -0
- package/dist/systems/roof/roof-elevation.d.ts +4 -0
- package/dist/systems/roof/roof-elevation.d.ts.map +1 -0
- package/dist/systems/roof/roof-elevation.js +95 -0
- package/dist/systems/roof/roof-footprint.d.ts +17 -0
- package/dist/systems/roof/roof-footprint.d.ts.map +1 -0
- package/dist/systems/roof/roof-footprint.js +83 -0
- package/dist/systems/slab/slab-placement.d.ts +1 -1
- package/dist/systems/slab/slab-support.d.ts +1 -1
- package/dist/systems/slab/slab-support.js +4 -4
- package/dist/systems/stair/stair-flight.d.ts +17 -0
- package/dist/systems/stair/stair-flight.d.ts.map +1 -0
- package/dist/systems/stair/stair-flight.js +27 -0
- package/dist/systems/stair/stair-footprint.d.ts +1 -1
- package/dist/systems/stair/stair-opening-preview.d.ts +1621 -1267
- package/dist/systems/stair/stair-opening-preview.d.ts.map +1 -1
- package/dist/systems/stair/stair-opening-preview.js +2 -2
- package/dist/systems/stair/stair-opening-sync.d.ts +1 -1
- package/dist/systems/stair/stair-opening-sync.js +6 -6
- package/dist/systems/stair/stair-opening-system.d.ts +1 -0
- package/dist/systems/stair/stair-opening-system.d.ts.map +1 -1
- package/dist/systems/stair/stair-opening-system.js +100 -103
- package/dist/systems/stair/stair-rise.d.ts +1 -1
- package/dist/systems/stair/stair-rise.d.ts.map +1 -1
- package/dist/systems/stair/stair-rise.js +23 -24
- package/dist/systems/wall/wall-curve.d.ts +3 -2
- package/dist/systems/wall/wall-curve.d.ts.map +1 -1
- package/dist/systems/wall/wall-curve.js +73 -0
- package/dist/systems/wall/wall-footprint.d.ts +3 -2
- package/dist/systems/wall/wall-footprint.d.ts.map +1 -1
- package/dist/systems/wall/wall-footprint.js +3 -2
- package/dist/systems/wall/wall-mitering.d.ts +1 -1
- package/dist/systems/wall/wall-mitering.js +1 -1
- package/dist/systems/wall/wall-move.d.ts +1 -1
- package/dist/systems/wall/wall-top.d.ts +1 -1
- package/dist/systems/wall/wall-topology.d.ts +2 -2
- package/dist/systems/wall/wall-topology.js +4 -4
- package/dist/utils/clone-scene-graph.d.ts +3 -3
- package/dist/utils/clone-scene-graph.d.ts.map +1 -1
- package/dist/utils/clone-scene-graph.js +35 -3
- package/dist/utils/scene-migrations.d.ts +3 -3
- package/dist/utils/scene-migrations.js +3 -3
- package/dist/utils/vertical-scene-migration.js +5 -5
- package/dist/validation/validate-build-json.d.ts +7 -1
- package/dist/validation/validate-build-json.d.ts.map +1 -1
- package/dist/validation/validate-build-json.js +92 -4
- package/package.json +23 -5
- package/dist/systems/elevator/elevator-runtime-system.d.ts +0 -2
- package/dist/systems/elevator/elevator-runtime-system.d.ts.map +0 -1
- package/dist/systems/elevator/elevator-runtime-system.js +0 -8
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
import dedent from 'dedent';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { BaseNode, nodeType, objectId } from '../base.js';
|
|
4
|
+
export const BlockVertex = z.object({
|
|
5
|
+
id: z.string().min(1),
|
|
6
|
+
position: z.tuple([z.number(), z.number(), z.number()]),
|
|
7
|
+
});
|
|
8
|
+
export const BlockEdge = z.object({
|
|
9
|
+
id: z.string().min(1),
|
|
10
|
+
vertexIds: z.tuple([z.string().min(1), z.string().min(1)]),
|
|
11
|
+
});
|
|
12
|
+
export const BlockFace = z.object({
|
|
13
|
+
id: z.string().min(1),
|
|
14
|
+
vertexIds: z.array(z.string().min(1)).min(3),
|
|
15
|
+
materialSlot: z.string().min(1).default('body'),
|
|
16
|
+
});
|
|
17
|
+
const BlockTopologyShape = z.object({
|
|
18
|
+
vertices: z.array(BlockVertex),
|
|
19
|
+
edges: z.array(BlockEdge),
|
|
20
|
+
faces: z.array(BlockFace),
|
|
21
|
+
});
|
|
22
|
+
function normalizeBlockVector(vector) {
|
|
23
|
+
const length = Math.hypot(vector[0], vector[1], vector[2]);
|
|
24
|
+
if (length < 1e-8)
|
|
25
|
+
return null;
|
|
26
|
+
return [vector[0] / length, vector[1] / length, vector[2] / length];
|
|
27
|
+
}
|
|
28
|
+
export function getBlockFaceNormal(topology, face) {
|
|
29
|
+
const vertices = new Map(topology.vertices.map((vertex) => [vertex.id, vertex.position]));
|
|
30
|
+
const positions = face.vertexIds
|
|
31
|
+
.map((id) => vertices.get(id))
|
|
32
|
+
.filter((value) => !!value);
|
|
33
|
+
if (positions.length < 3)
|
|
34
|
+
return null;
|
|
35
|
+
const normal = [0, 0, 0];
|
|
36
|
+
for (let index = 0; index < positions.length; index += 1) {
|
|
37
|
+
const current = positions[index];
|
|
38
|
+
const next = positions[(index + 1) % positions.length];
|
|
39
|
+
normal[0] += (current[1] - next[1]) * (current[2] + next[2]);
|
|
40
|
+
normal[1] += (current[2] - next[2]) * (current[0] + next[0]);
|
|
41
|
+
normal[2] += (current[0] - next[0]) * (current[1] + next[1]);
|
|
42
|
+
}
|
|
43
|
+
return normalizeBlockVector(normal);
|
|
44
|
+
}
|
|
45
|
+
export function getBlockFaceCentroid(topology, face) {
|
|
46
|
+
const vertices = new Map(topology.vertices.map((vertex) => [vertex.id, vertex.position]));
|
|
47
|
+
const positions = face.vertexIds
|
|
48
|
+
.map((id) => vertices.get(id))
|
|
49
|
+
.filter((value) => !!value);
|
|
50
|
+
if (positions.length !== face.vertexIds.length || positions.length === 0)
|
|
51
|
+
return null;
|
|
52
|
+
const sum = positions.reduce((total, position) => [total[0] + position[0], total[1] + position[1], total[2] + position[2]], [0, 0, 0]);
|
|
53
|
+
return [sum[0] / positions.length, sum[1] / positions.length, sum[2] / positions.length];
|
|
54
|
+
}
|
|
55
|
+
export function getBlockFaceFrame(topology, faceId) {
|
|
56
|
+
const face = topology.faces.find((candidate) => candidate.id === faceId);
|
|
57
|
+
if (!face)
|
|
58
|
+
return null;
|
|
59
|
+
const origin = getBlockFaceCentroid(topology, face);
|
|
60
|
+
const normal = getBlockFaceNormal(topology, face);
|
|
61
|
+
if (!(origin && normal))
|
|
62
|
+
return null;
|
|
63
|
+
const horizontal = [normal[2], 0, -normal[0]];
|
|
64
|
+
const xAxis = normalizeBlockVector(horizontal) ??
|
|
65
|
+
normalizeBlockVector([
|
|
66
|
+
1 - normal[0] * normal[0],
|
|
67
|
+
-normal[0] * normal[1],
|
|
68
|
+
-normal[0] * normal[2],
|
|
69
|
+
]);
|
|
70
|
+
if (!xAxis)
|
|
71
|
+
return null;
|
|
72
|
+
const yAxis = normalizeBlockVector([
|
|
73
|
+
normal[1] * xAxis[2] - normal[2] * xAxis[1],
|
|
74
|
+
normal[2] * xAxis[0] - normal[0] * xAxis[2],
|
|
75
|
+
normal[0] * xAxis[1] - normal[1] * xAxis[0],
|
|
76
|
+
]);
|
|
77
|
+
if (!yAxis)
|
|
78
|
+
return null;
|
|
79
|
+
return { origin, xAxis, yAxis, normal };
|
|
80
|
+
}
|
|
81
|
+
export function blockUndirectedEdgeKey(a, b) {
|
|
82
|
+
return a < b ? `${a}\u0000${b}` : `${b}\u0000${a}`;
|
|
83
|
+
}
|
|
84
|
+
export function inspectBlockTopology(topology) {
|
|
85
|
+
const issues = [];
|
|
86
|
+
const vertexIds = new Set();
|
|
87
|
+
const edgeIds = new Set();
|
|
88
|
+
const faceIds = new Set();
|
|
89
|
+
const edgeKeys = new Set();
|
|
90
|
+
topology.vertices.forEach((vertex, index) => {
|
|
91
|
+
if (vertexIds.has(vertex.id)) {
|
|
92
|
+
issues.push({ path: ['vertices', index, 'id'], message: `Duplicate vertex id: ${vertex.id}` });
|
|
93
|
+
}
|
|
94
|
+
vertexIds.add(vertex.id);
|
|
95
|
+
});
|
|
96
|
+
topology.edges.forEach((edge, index) => {
|
|
97
|
+
if (edgeIds.has(edge.id)) {
|
|
98
|
+
issues.push({ path: ['edges', index, 'id'], message: `Duplicate edge id: ${edge.id}` });
|
|
99
|
+
}
|
|
100
|
+
edgeIds.add(edge.id);
|
|
101
|
+
const [a, b] = edge.vertexIds;
|
|
102
|
+
if (a === b) {
|
|
103
|
+
issues.push({ path: ['edges', index, 'vertexIds'], message: 'An edge needs two vertices' });
|
|
104
|
+
}
|
|
105
|
+
edge.vertexIds.forEach((vertexId, vertexIndex) => {
|
|
106
|
+
if (!vertexIds.has(vertexId)) {
|
|
107
|
+
issues.push({
|
|
108
|
+
path: ['edges', index, 'vertexIds', vertexIndex],
|
|
109
|
+
message: `Unknown vertex id: ${vertexId}`,
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
const key = blockUndirectedEdgeKey(a, b);
|
|
114
|
+
if (edgeKeys.has(key)) {
|
|
115
|
+
issues.push({ path: ['edges', index], message: `Duplicate edge: ${a}–${b}` });
|
|
116
|
+
}
|
|
117
|
+
edgeKeys.add(key);
|
|
118
|
+
});
|
|
119
|
+
topology.faces.forEach((face, index) => {
|
|
120
|
+
if (faceIds.has(face.id)) {
|
|
121
|
+
issues.push({ path: ['faces', index, 'id'], message: `Duplicate face id: ${face.id}` });
|
|
122
|
+
}
|
|
123
|
+
faceIds.add(face.id);
|
|
124
|
+
if (new Set(face.vertexIds).size < 3) {
|
|
125
|
+
issues.push({ path: ['faces', index, 'vertexIds'], message: 'A face needs three vertices' });
|
|
126
|
+
}
|
|
127
|
+
face.vertexIds.forEach((vertexId, vertexIndex) => {
|
|
128
|
+
if (!vertexIds.has(vertexId)) {
|
|
129
|
+
issues.push({
|
|
130
|
+
path: ['faces', index, 'vertexIds', vertexIndex],
|
|
131
|
+
message: `Unknown vertex id: ${vertexId}`,
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
const nextVertexId = face.vertexIds[(vertexIndex + 1) % face.vertexIds.length];
|
|
135
|
+
if (nextVertexId && !edgeKeys.has(blockUndirectedEdgeKey(vertexId, nextVertexId))) {
|
|
136
|
+
issues.push({
|
|
137
|
+
path: ['faces', index, 'vertexIds', vertexIndex],
|
|
138
|
+
message: `Missing edge for face boundary: ${vertexId}–${nextVertexId}`,
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
});
|
|
143
|
+
return issues;
|
|
144
|
+
}
|
|
145
|
+
export const BlockTopology = BlockTopologyShape.superRefine((topology, context) => {
|
|
146
|
+
for (const issue of inspectBlockTopology(topology)) {
|
|
147
|
+
context.addIssue({ code: 'custom', path: issue.path, message: issue.message });
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
export function createBoxBlockTopology(width = 2, height = 2.4, depth = 2) {
|
|
151
|
+
const halfWidth = width / 2;
|
|
152
|
+
const halfDepth = depth / 2;
|
|
153
|
+
return {
|
|
154
|
+
vertices: [
|
|
155
|
+
{ id: 'v0', position: [-halfWidth, 0, -halfDepth] },
|
|
156
|
+
{ id: 'v1', position: [halfWidth, 0, -halfDepth] },
|
|
157
|
+
{ id: 'v2', position: [halfWidth, 0, halfDepth] },
|
|
158
|
+
{ id: 'v3', position: [-halfWidth, 0, halfDepth] },
|
|
159
|
+
{ id: 'v4', position: [-halfWidth, height, -halfDepth] },
|
|
160
|
+
{ id: 'v5', position: [halfWidth, height, -halfDepth] },
|
|
161
|
+
{ id: 'v6', position: [halfWidth, height, halfDepth] },
|
|
162
|
+
{ id: 'v7', position: [-halfWidth, height, halfDepth] },
|
|
163
|
+
],
|
|
164
|
+
edges: [
|
|
165
|
+
{ id: 'e0', vertexIds: ['v0', 'v1'] },
|
|
166
|
+
{ id: 'e1', vertexIds: ['v1', 'v2'] },
|
|
167
|
+
{ id: 'e2', vertexIds: ['v2', 'v3'] },
|
|
168
|
+
{ id: 'e3', vertexIds: ['v3', 'v0'] },
|
|
169
|
+
{ id: 'e4', vertexIds: ['v4', 'v5'] },
|
|
170
|
+
{ id: 'e5', vertexIds: ['v5', 'v6'] },
|
|
171
|
+
{ id: 'e6', vertexIds: ['v6', 'v7'] },
|
|
172
|
+
{ id: 'e7', vertexIds: ['v7', 'v4'] },
|
|
173
|
+
{ id: 'e8', vertexIds: ['v0', 'v4'] },
|
|
174
|
+
{ id: 'e9', vertexIds: ['v1', 'v5'] },
|
|
175
|
+
{ id: 'e10', vertexIds: ['v2', 'v6'] },
|
|
176
|
+
{ id: 'e11', vertexIds: ['v3', 'v7'] },
|
|
177
|
+
],
|
|
178
|
+
faces: [
|
|
179
|
+
{ id: 'f-bottom', vertexIds: ['v0', 'v1', 'v2', 'v3'], materialSlot: 'body' },
|
|
180
|
+
{ id: 'f-top', vertexIds: ['v4', 'v7', 'v6', 'v5'], materialSlot: 'body' },
|
|
181
|
+
{ id: 'f-front', vertexIds: ['v0', 'v4', 'v5', 'v1'], materialSlot: 'body' },
|
|
182
|
+
{ id: 'f-right', vertexIds: ['v1', 'v5', 'v6', 'v2'], materialSlot: 'body' },
|
|
183
|
+
{ id: 'f-back', vertexIds: ['v2', 'v6', 'v7', 'v3'], materialSlot: 'body' },
|
|
184
|
+
{ id: 'f-left', vertexIds: ['v3', 'v7', 'v4', 'v0'], materialSlot: 'body' },
|
|
185
|
+
],
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
export const BlockNode = BaseNode.extend({
|
|
189
|
+
id: objectId('block'),
|
|
190
|
+
type: nodeType('block'),
|
|
191
|
+
children: z.array(z.string()).default([]),
|
|
192
|
+
position: z.tuple([z.number(), z.number(), z.number()]).default([0, 0, 0]),
|
|
193
|
+
rotation: z.number().default(0),
|
|
194
|
+
supportSlabId: z.string().optional(),
|
|
195
|
+
topology: BlockTopology.default(createBoxBlockTopology),
|
|
196
|
+
slots: z.record(z.string(), z.string()).default({}),
|
|
197
|
+
slotNames: z.record(z.string(), z.string().min(1)).default({ body: 'Body' }),
|
|
198
|
+
}).describe(dedent `
|
|
199
|
+
block node - a topology-backed editable solid.
|
|
200
|
+
- children: hosted node ids
|
|
201
|
+
- topology: persistent vertices, edges, and ordered face loops with stable IDs
|
|
202
|
+
- position/rotation: level-local placement transform
|
|
203
|
+
- supportSlabId: persisted placement surface that prevents later slabs from lifting the mesh
|
|
204
|
+
- slots: material references keyed by face materialSlot; an unbound body uses the wall-role default
|
|
205
|
+
- slotNames: user-facing names for stable material slots; body is the permanent default slot
|
|
206
|
+
`);
|
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
export declare const BoxVentMaterialRole: z.ZodEnum<{
|
|
3
|
+
base: "base";
|
|
4
|
+
top: "top";
|
|
5
|
+
}>;
|
|
6
|
+
export type BoxVentMaterialRole = z.infer<typeof BoxVentMaterialRole>;
|
|
2
7
|
export declare const BoxVentNode: z.ZodObject<{
|
|
3
8
|
object: z.ZodDefault<z.ZodLiteral<"node">>;
|
|
4
9
|
name: z.ZodOptional<z.ZodString>;
|
|
@@ -14,7 +19,7 @@ export declare const BoxVentNode: z.ZodObject<{
|
|
|
14
19
|
fov: z.ZodOptional<z.ZodNumber>;
|
|
15
20
|
zoom: z.ZodOptional<z.ZodNumber>;
|
|
16
21
|
}, z.core.$strip>>;
|
|
17
|
-
metadata: z.ZodDefault<z.ZodOptional<z.
|
|
22
|
+
metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
18
23
|
id: z.ZodDefault<z.ZodTemplateLiteral<`bvent_${string}`>>;
|
|
19
24
|
type: z.ZodDefault<z.ZodLiteral<"box-vent">>;
|
|
20
25
|
material: z.ZodOptional<z.ZodObject<{
|
|
@@ -49,6 +54,7 @@ export declare const BoxVentNode: z.ZodObject<{
|
|
|
49
54
|
scale: z.ZodOptional<z.ZodNumber>;
|
|
50
55
|
}, z.core.$strip>>;
|
|
51
56
|
}, z.core.$strip>>;
|
|
57
|
+
slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
52
58
|
materialPreset: z.ZodDefault<z.ZodString>;
|
|
53
59
|
roofSegmentId: z.ZodOptional<z.ZodString>;
|
|
54
60
|
position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
@@ -68,7 +74,7 @@ export declare const BoxVentNode: z.ZodObject<{
|
|
|
68
74
|
box: "box";
|
|
69
75
|
cap: "cap";
|
|
70
76
|
dome: "dome";
|
|
71
|
-
}
|
|
77
|
+
}>>, unknown>;
|
|
72
78
|
}, z.core.$strip>;
|
|
73
79
|
export type BoxVentNode = z.infer<typeof BoxVentNode>;
|
|
74
80
|
//# sourceMappingURL=box-vent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"box-vent.d.ts","sourceRoot":"","sources":["../../../src/schema/nodes/box-vent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,eAAO,MAAM,WAAW
|
|
1
|
+
{"version":3,"file":"box-vent.d.ts","sourceRoot":"","sources":["../../../src/schema/nodes/box-vent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,eAAO,MAAM,mBAAmB;;;EAA0B,CAAA;AAC1D,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAErE,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAkEvB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAA"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import dedent from 'dedent';
|
|
2
2
|
import { z } from 'zod';
|
|
3
|
-
import { BaseNode, nodeType, objectId } from '../base';
|
|
4
|
-
import { MaterialSchema } from '../material';
|
|
3
|
+
import { BaseNode, nodeType, objectId } from '../base.js';
|
|
4
|
+
import { MaterialSchema } from '../material.js';
|
|
5
|
+
export const BoxVentMaterialRole = z.enum(['base', 'top']);
|
|
5
6
|
export const BoxVentNode = BaseNode.extend({
|
|
6
7
|
id: objectId('bvent'),
|
|
7
8
|
type: nodeType('box-vent'),
|
|
8
9
|
material: MaterialSchema.optional(),
|
|
10
|
+
slots: z.record(z.string(), z.string()).optional(),
|
|
9
11
|
// Default to the white preset so newly-placed vents read as clean
|
|
10
12
|
// painted metal — and so the paint inspector shows "White" as the
|
|
11
13
|
// current selection instead of an empty "no material" state, which
|
|
@@ -14,10 +14,10 @@ export declare const BuildingNode: z.ZodObject<{
|
|
|
14
14
|
fov: z.ZodOptional<z.ZodNumber>;
|
|
15
15
|
zoom: z.ZodOptional<z.ZodNumber>;
|
|
16
16
|
}, z.core.$strip>>;
|
|
17
|
-
metadata: z.ZodDefault<z.ZodOptional<z.
|
|
17
|
+
metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
18
18
|
id: z.ZodDefault<z.ZodTemplateLiteral<`building_${string}`>>;
|
|
19
19
|
type: z.ZodDefault<z.ZodLiteral<"building">>;
|
|
20
|
-
children: z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodDefault<z.ZodTemplateLiteral<`level_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`elevator_${string}`>>]>>>;
|
|
20
|
+
children: z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodDefault<z.ZodTemplateLiteral<`level_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`elevator_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`unit_${string}`>>]>>>;
|
|
21
21
|
position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
22
22
|
rotation: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
23
23
|
}, z.core.$strip>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"building.d.ts","sourceRoot":"","sources":["../../../src/schema/nodes/building.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"building.d.ts","sourceRoot":"","sources":["../../../src/schema/nodes/building.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAMvB,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;iBAexB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAA"}
|
|
@@ -1,17 +1,20 @@
|
|
|
1
1
|
import dedent from 'dedent';
|
|
2
2
|
import { z } from 'zod';
|
|
3
|
-
import { BaseNode, nodeType, objectId } from '../base';
|
|
4
|
-
import { ElevatorNode } from './elevator';
|
|
5
|
-
import { LevelNode } from './level';
|
|
3
|
+
import { BaseNode, nodeType, objectId } from '../base.js';
|
|
4
|
+
import { ElevatorNode } from './elevator.js';
|
|
5
|
+
import { LevelNode } from './level.js';
|
|
6
|
+
import { UnitNode } from './unit.js';
|
|
6
7
|
export const BuildingNode = BaseNode.extend({
|
|
7
8
|
id: objectId('building'),
|
|
8
9
|
type: nodeType('building'),
|
|
9
|
-
children: z
|
|
10
|
+
children: z
|
|
11
|
+
.array(z.union([LevelNode.shape.id, ElevatorNode.shape.id, UnitNode.shape.id]))
|
|
12
|
+
.default([]),
|
|
10
13
|
position: z.tuple([z.number(), z.number(), z.number()]).default([0, 0, 0]),
|
|
11
14
|
rotation: z.tuple([z.number(), z.number(), z.number()]).default([0, 0, 0]),
|
|
12
15
|
}).describe(dedent `
|
|
13
16
|
Building node - used to represent a building
|
|
14
17
|
- position: position in site coordinate system
|
|
15
18
|
- rotation: rotation in site coordinate system
|
|
16
|
-
- children: array of
|
|
19
|
+
- children: array of levels, units referencing zones, and building-level systems such as elevators
|
|
17
20
|
`);
|
|
@@ -4,6 +4,18 @@ export declare const CabinetFrontStyleSchema: z.ZodEnum<{
|
|
|
4
4
|
shaker: "shaker";
|
|
5
5
|
"raised-arch": "raised-arch";
|
|
6
6
|
}>;
|
|
7
|
+
export declare const CabinetTopFinishSchema: z.ZodEnum<{
|
|
8
|
+
trim: "trim";
|
|
9
|
+
none: "none";
|
|
10
|
+
"top-cabinet": "top-cabinet";
|
|
11
|
+
}>;
|
|
12
|
+
/** Canonical metric cabinet family used when no regional profile is selected. */
|
|
13
|
+
export declare const CABINET_METRIC_DEFAULTS: {
|
|
14
|
+
readonly depth: 0.6;
|
|
15
|
+
readonly carcassHeight: 0.8;
|
|
16
|
+
readonly plinthHeight: 0.1;
|
|
17
|
+
readonly countertopThickness: 0.02;
|
|
18
|
+
};
|
|
7
19
|
declare const CabinetCompartment: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
8
20
|
type: z.ZodLiteral<"shelf">;
|
|
9
21
|
shelfCount: z.ZodOptional<z.ZodNumber>;
|
|
@@ -123,7 +135,7 @@ export declare const CabinetNode: z.ZodObject<{
|
|
|
123
135
|
fov: z.ZodOptional<z.ZodNumber>;
|
|
124
136
|
zoom: z.ZodOptional<z.ZodNumber>;
|
|
125
137
|
}, z.core.$strip>>;
|
|
126
|
-
metadata: z.ZodDefault<z.ZodOptional<z.
|
|
138
|
+
metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
127
139
|
position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
128
140
|
rotation: z.ZodDefault<z.ZodNumber>;
|
|
129
141
|
supportSlabId: z.ZodOptional<z.ZodString>;
|
|
@@ -145,6 +157,7 @@ export declare const CabinetNode: z.ZodObject<{
|
|
|
145
157
|
shaker: "shaker";
|
|
146
158
|
"raised-arch": "raised-arch";
|
|
147
159
|
}>>;
|
|
160
|
+
panelReady: z.ZodDefault<z.ZodBoolean>;
|
|
148
161
|
handleStyle: z.ZodDefault<z.ZodEnum<{
|
|
149
162
|
none: "none";
|
|
150
163
|
bar: "bar";
|
|
@@ -308,7 +321,7 @@ export declare const CabinetNode: z.ZodObject<{
|
|
|
308
321
|
base: "base";
|
|
309
322
|
tall: "tall";
|
|
310
323
|
}>>;
|
|
311
|
-
children: z.ZodDefault<z.ZodArray<z.
|
|
324
|
+
children: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
312
325
|
barLedge: z.ZodOptional<z.ZodObject<{
|
|
313
326
|
edge: z.ZodDefault<z.ZodEnum<{
|
|
314
327
|
back: "back";
|
|
@@ -319,6 +332,7 @@ export declare const CabinetNode: z.ZodObject<{
|
|
|
319
332
|
depth: z.ZodDefault<z.ZodNumber>;
|
|
320
333
|
}, z.core.$strip>>;
|
|
321
334
|
withWaterfall: z.ZodDefault<z.ZodBoolean>;
|
|
335
|
+
withFinishedEnds: z.ZodDefault<z.ZodBoolean>;
|
|
322
336
|
}, z.core.$strip>;
|
|
323
337
|
export declare const CabinetModuleNode: z.ZodObject<{
|
|
324
338
|
object: z.ZodDefault<z.ZodLiteral<"node">>;
|
|
@@ -335,7 +349,7 @@ export declare const CabinetModuleNode: z.ZodObject<{
|
|
|
335
349
|
fov: z.ZodOptional<z.ZodNumber>;
|
|
336
350
|
zoom: z.ZodOptional<z.ZodNumber>;
|
|
337
351
|
}, z.core.$strip>>;
|
|
338
|
-
metadata: z.ZodDefault<z.ZodOptional<z.
|
|
352
|
+
metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
339
353
|
position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
340
354
|
rotation: z.ZodDefault<z.ZodNumber>;
|
|
341
355
|
supportSlabId: z.ZodOptional<z.ZodString>;
|
|
@@ -357,6 +371,7 @@ export declare const CabinetModuleNode: z.ZodObject<{
|
|
|
357
371
|
shaker: "shaker";
|
|
358
372
|
"raised-arch": "raised-arch";
|
|
359
373
|
}>>;
|
|
374
|
+
panelReady: z.ZodDefault<z.ZodBoolean>;
|
|
360
375
|
handleStyle: z.ZodDefault<z.ZodEnum<{
|
|
361
376
|
none: "none";
|
|
362
377
|
bar: "bar";
|
|
@@ -515,7 +530,7 @@ export declare const CabinetModuleNode: z.ZodObject<{
|
|
|
515
530
|
}, z.core.$strip>], "type">>>;
|
|
516
531
|
id: z.ZodDefault<z.ZodTemplateLiteral<`cabinet-module_${string}`>>;
|
|
517
532
|
type: z.ZodDefault<z.ZodLiteral<"cabinet-module">>;
|
|
518
|
-
children: z.ZodDefault<z.ZodArray<z.
|
|
533
|
+
children: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
519
534
|
cabinetType: z.ZodDefault<z.ZodEnum<{
|
|
520
535
|
base: "base";
|
|
521
536
|
tall: "tall";
|
|
@@ -529,6 +544,13 @@ export declare const CabinetModuleNode: z.ZodObject<{
|
|
|
529
544
|
left: "left";
|
|
530
545
|
}>>;
|
|
531
546
|
cornerShelf: z.ZodOptional<z.ZodBoolean>;
|
|
547
|
+
topFinish: z.ZodDefault<z.ZodEnum<{
|
|
548
|
+
trim: "trim";
|
|
549
|
+
none: "none";
|
|
550
|
+
"top-cabinet": "top-cabinet";
|
|
551
|
+
}>>;
|
|
552
|
+
topFinishHeight: z.ZodDefault<z.ZodNumber>;
|
|
553
|
+
topFinishDepth: z.ZodDefault<z.ZodNumber>;
|
|
532
554
|
}, z.core.$strip>;
|
|
533
555
|
export type CabinetNode = z.infer<typeof CabinetNode>;
|
|
534
556
|
export type CabinetModuleNode = z.infer<typeof CabinetModuleNode>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cabinet.d.ts","sourceRoot":"","sources":["../../../src/schema/nodes/cabinet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAgBvB,eAAO,MAAM,uBAAuB;;;;EAA4C,CAAA;
|
|
1
|
+
{"version":3,"file":"cabinet.d.ts","sourceRoot":"","sources":["../../../src/schema/nodes/cabinet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAgBvB,eAAO,MAAM,uBAAuB;;;;EAA4C,CAAA;AAChF,eAAO,MAAM,sBAAsB;;;;EAA0C,CAAA;AAE7E,iFAAiF;AACjF,eAAO,MAAM,uBAAuB;;;;;CAK1B,CAAA;AAMV,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAmDtB,CAAA;AAEF,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AA2CzE,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAmB0B,CAAA;AAElD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAqB+B,CAAA;AAE7D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAA;AACrD,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { BaseNode, nodeType, objectId } from '../base';
|
|
3
|
-
import { MaterialSchema } from '../material';
|
|
2
|
+
import { BaseNode, nodeType, objectId } from '../base.js';
|
|
3
|
+
import { MaterialSchema } from '../material.js';
|
|
4
4
|
const compartmentBase = {
|
|
5
5
|
id: z.string(),
|
|
6
6
|
height: z.number().positive().max(2.5).optional(),
|
|
@@ -12,6 +12,14 @@ const cooktopFields = {
|
|
|
12
12
|
cooktopShowGrate: z.boolean().optional(),
|
|
13
13
|
};
|
|
14
14
|
export const CabinetFrontStyleSchema = z.enum(['slab', 'shaker', 'raised-arch']);
|
|
15
|
+
export const CabinetTopFinishSchema = z.enum(['none', 'top-cabinet', 'trim']);
|
|
16
|
+
/** Canonical metric cabinet family used when no regional profile is selected. */
|
|
17
|
+
export const CABINET_METRIC_DEFAULTS = {
|
|
18
|
+
depth: 0.6,
|
|
19
|
+
carcassHeight: 0.8,
|
|
20
|
+
plinthHeight: 0.1,
|
|
21
|
+
countertopThickness: 0.02,
|
|
22
|
+
};
|
|
15
23
|
// Discriminated on `type` so invalid field combinations (a drawer with a
|
|
16
24
|
// pantry rack style, a fridge with burner state) are unrepresentable. New
|
|
17
25
|
// compartment kinds add a variant here rather than widening a shared bag of
|
|
@@ -76,13 +84,17 @@ const cabinetBoxFields = {
|
|
|
76
84
|
// Persisted slab-support host — see ItemNode.supportSlabId for the rules.
|
|
77
85
|
supportSlabId: z.string().optional(),
|
|
78
86
|
width: z.number().min(0.05).max(3).default(0.5),
|
|
79
|
-
depth: z.number().min(0.3).max(1.2).default(
|
|
80
|
-
carcassHeight: z.number().min(0.4).max(2.4).default(
|
|
87
|
+
depth: z.number().min(0.3).max(1.2).default(CABINET_METRIC_DEFAULTS.depth),
|
|
88
|
+
carcassHeight: z.number().min(0.4).max(2.4).default(CABINET_METRIC_DEFAULTS.carcassHeight),
|
|
81
89
|
operationState: z.number().min(0).max(1).default(0),
|
|
82
|
-
plinthHeight: z.number().min(0).max(0.3).default(
|
|
90
|
+
plinthHeight: z.number().min(0).max(0.3).default(CABINET_METRIC_DEFAULTS.plinthHeight),
|
|
83
91
|
toeKickDepth: z.number().min(0).max(0.2).default(0.075),
|
|
84
92
|
boardThickness: z.number().min(0.01).max(0.08).default(0.018),
|
|
85
|
-
countertopThickness: z
|
|
93
|
+
countertopThickness: z
|
|
94
|
+
.number()
|
|
95
|
+
.min(0)
|
|
96
|
+
.max(0.08)
|
|
97
|
+
.default(CABINET_METRIC_DEFAULTS.countertopThickness),
|
|
86
98
|
countertopOverhang: z.number().min(0).max(0.12).default(0.02),
|
|
87
99
|
// Extra slab reach off the back edge (island seating side) — up to a
|
|
88
100
|
// 45 cm knee-space overhang, unlike the small uniform front/side overhang.
|
|
@@ -91,6 +103,8 @@ const cabinetBoxFields = {
|
|
|
91
103
|
frontThickness: z.number().min(0.01).max(0.05).default(0.018),
|
|
92
104
|
frontGap: z.number().min(0.001).max(0.02).default(0.003),
|
|
93
105
|
frontStyle: CabinetFrontStyleSchema.default('slab'),
|
|
106
|
+
// Fridge-only: replace the appliance door face with a cabinet-matched panel.
|
|
107
|
+
panelReady: z.boolean().default(false),
|
|
94
108
|
handleStyle: z.enum(['none', 'bar', 'cutout', 'hole', 'knob']).default('bar'),
|
|
95
109
|
handlePosition: z.enum(['auto', 'top', 'center']).default('auto'),
|
|
96
110
|
frontOverlay: z.enum(['full', 'inset']).default('full'),
|
|
@@ -106,7 +120,7 @@ export const CabinetNode = BaseNode.extend({
|
|
|
106
120
|
id: objectId('cabinet'),
|
|
107
121
|
type: nodeType('cabinet'),
|
|
108
122
|
runTier: z.enum(['base', 'wall', 'tall']).default('base'),
|
|
109
|
-
children: z.array(
|
|
123
|
+
children: z.array(z.string()).default([]),
|
|
110
124
|
// Raised bar counter along one run edge: a knee wall topped by a slab at
|
|
111
125
|
// bar height. Run-level because it spans modules like the countertop.
|
|
112
126
|
barLedge: z
|
|
@@ -118,12 +132,14 @@ export const CabinetNode = BaseNode.extend({
|
|
|
118
132
|
.optional(),
|
|
119
133
|
// Countertop material dropping to the floor on exposed run ends.
|
|
120
134
|
withWaterfall: z.boolean().default(false),
|
|
135
|
+
// Add matching decorative panels to ends that are not joined to another run.
|
|
136
|
+
withFinishedEnds: z.boolean().default(false),
|
|
121
137
|
...cabinetBoxFields,
|
|
122
138
|
}).describe('Parametric modular cabinet run node');
|
|
123
139
|
export const CabinetModuleNode = BaseNode.extend({
|
|
124
140
|
id: objectId('cabinet-module'),
|
|
125
141
|
type: nodeType('cabinet-module'),
|
|
126
|
-
children: z.array(z.
|
|
142
|
+
children: z.array(z.string()).default([]),
|
|
127
143
|
cabinetType: z.enum(['base', 'tall']).default('base'),
|
|
128
144
|
// Discriminator for specialty units (corner L-shape, sink base, appliance
|
|
129
145
|
// gap, open shelving). 'standard' modules use the compartment stack as-is;
|
|
@@ -135,5 +151,10 @@ export const CabinetModuleNode = BaseNode.extend({
|
|
|
135
151
|
// Corner-pocket fillers carry a small internal shelf so the dead corner reads
|
|
136
152
|
// as reachable storage instead of an empty boxed void.
|
|
137
153
|
cornerShelf: z.boolean().optional(),
|
|
154
|
+
// Optional upper termination for wall/tall compositions. It is deliberately
|
|
155
|
+
// separate from carcassHeight so the main cabinet proportions stay stable.
|
|
156
|
+
topFinish: CabinetTopFinishSchema.default('none'),
|
|
157
|
+
topFinishHeight: z.number().min(0).max(1.2).default(0.33),
|
|
158
|
+
topFinishDepth: z.number().min(0.15).max(1.2).default(0.32),
|
|
138
159
|
...cabinetBoxFields,
|
|
139
160
|
}).describe('Parametric module inside a modular cabinet run');
|
|
@@ -14,10 +14,10 @@ export declare const CeilingNode: z.ZodObject<{
|
|
|
14
14
|
fov: z.ZodOptional<z.ZodNumber>;
|
|
15
15
|
zoom: z.ZodOptional<z.ZodNumber>;
|
|
16
16
|
}, z.core.$strip>>;
|
|
17
|
-
metadata: z.ZodDefault<z.ZodOptional<z.
|
|
17
|
+
metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
18
18
|
id: z.ZodDefault<z.ZodTemplateLiteral<`ceiling_${string}`>>;
|
|
19
19
|
type: z.ZodDefault<z.ZodLiteral<"ceiling">>;
|
|
20
|
-
children: z.ZodDefault<z.ZodArray<z.ZodDefault<z.ZodTemplateLiteral<`item_${string}
|
|
20
|
+
children: z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodDefault<z.ZodTemplateLiteral<`item_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`procedural-item_${string}`>>]>>>;
|
|
21
21
|
material: z.ZodOptional<z.ZodObject<{
|
|
22
22
|
id: z.ZodOptional<z.ZodString>;
|
|
23
23
|
preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import dedent from 'dedent';
|
|
2
2
|
import { z } from 'zod';
|
|
3
|
-
import { BaseNode, nodeType, objectId } from '../base';
|
|
4
|
-
import { MaterialSchema } from '../material';
|
|
5
|
-
import { ItemNode } from './item';
|
|
6
|
-
import { SurfaceHoleMetadata } from './surface-hole-metadata';
|
|
3
|
+
import { BaseNode, nodeType, objectId } from '../base.js';
|
|
4
|
+
import { MaterialSchema } from '../material.js';
|
|
5
|
+
import { ItemNode } from './item.js';
|
|
6
|
+
import { SurfaceHoleMetadata } from './surface-hole-metadata.js';
|
|
7
7
|
export const CeilingNode = BaseNode.extend({
|
|
8
8
|
id: objectId('ceiling'),
|
|
9
9
|
type: nodeType('ceiling'),
|
|
10
|
-
children: z.array(ItemNode.shape.id).default([]),
|
|
10
|
+
children: z.array(z.union([ItemNode.shape.id, objectId('procedural-item')])).default([]),
|
|
11
11
|
material: MaterialSchema.optional(),
|
|
12
12
|
materialPreset: z.string().optional(),
|
|
13
13
|
// Per-slot material overrides on the unified slot model, mirroring
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
export declare const ChimneyMaterialRole: z.ZodEnum<{
|
|
3
|
-
top: "top";
|
|
4
3
|
body: "body";
|
|
4
|
+
top: "top";
|
|
5
5
|
}>;
|
|
6
6
|
export type ChimneyMaterialRole = z.infer<typeof ChimneyMaterialRole>;
|
|
7
7
|
export declare const ChimneyNode: z.ZodObject<{
|
|
@@ -19,7 +19,7 @@ export declare const ChimneyNode: z.ZodObject<{
|
|
|
19
19
|
fov: z.ZodOptional<z.ZodNumber>;
|
|
20
20
|
zoom: z.ZodOptional<z.ZodNumber>;
|
|
21
21
|
}, z.core.$strip>>;
|
|
22
|
-
metadata: z.ZodDefault<z.ZodOptional<z.
|
|
22
|
+
metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
23
23
|
id: z.ZodDefault<z.ZodTemplateLiteral<`chimney_${string}`>>;
|
|
24
24
|
type: z.ZodDefault<z.ZodLiteral<"chimney">>;
|
|
25
25
|
material: z.ZodOptional<z.ZodObject<{
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import dedent from 'dedent';
|
|
2
2
|
import { z } from 'zod';
|
|
3
|
-
import { BaseNode, nodeType, objectId } from '../base';
|
|
4
|
-
import { MaterialSchema } from '../material';
|
|
3
|
+
import { BaseNode, nodeType, objectId } from '../base.js';
|
|
4
|
+
import { MaterialSchema } from '../material.js';
|
|
5
5
|
export const ChimneyMaterialRole = z.enum(['body', 'top']);
|
|
6
6
|
export const ChimneyNode = BaseNode.extend({
|
|
7
7
|
id: objectId('chimney'),
|
|
@@ -58,14 +58,14 @@ export declare const ColumnCapitalStyle: z.ZodEnum<{
|
|
|
58
58
|
"wood-bracket": "wood-bracket";
|
|
59
59
|
}>;
|
|
60
60
|
export declare const ColumnRingPlacement: z.ZodEnum<{
|
|
61
|
+
top: "top";
|
|
61
62
|
ends: "ends";
|
|
62
63
|
even: "even";
|
|
63
|
-
top: "top";
|
|
64
64
|
bottom: "bottom";
|
|
65
65
|
}>;
|
|
66
66
|
export declare const ColumnCarvingPlacement: z.ZodEnum<{
|
|
67
|
-
shaft: "shaft";
|
|
68
67
|
base: "base";
|
|
68
|
+
shaft: "shaft";
|
|
69
69
|
capital: "capital";
|
|
70
70
|
all: "all";
|
|
71
71
|
}>;
|
|
@@ -107,9 +107,10 @@ export declare const ColumnNode: z.ZodObject<{
|
|
|
107
107
|
fov: z.ZodOptional<z.ZodNumber>;
|
|
108
108
|
zoom: z.ZodOptional<z.ZodNumber>;
|
|
109
109
|
}, z.core.$strip>>;
|
|
110
|
-
metadata: z.ZodDefault<z.ZodOptional<z.
|
|
110
|
+
metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
111
111
|
id: z.ZodDefault<z.ZodTemplateLiteral<`column_${string}`>>;
|
|
112
112
|
type: z.ZodDefault<z.ZodLiteral<"column">>;
|
|
113
|
+
children: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
113
114
|
position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
114
115
|
rotation: z.ZodDefault<z.ZodNumber>;
|
|
115
116
|
supportSlabId: z.ZodOptional<z.ZodString>;
|
|
@@ -206,9 +207,9 @@ export declare const ColumnNode: z.ZodObject<{
|
|
|
206
207
|
capitalCarvingLevel: z.ZodDefault<z.ZodNumber>;
|
|
207
208
|
ringCount: z.ZodDefault<z.ZodNumber>;
|
|
208
209
|
ringPlacement: z.ZodDefault<z.ZodEnum<{
|
|
210
|
+
top: "top";
|
|
209
211
|
ends: "ends";
|
|
210
212
|
even: "even";
|
|
211
|
-
top: "top";
|
|
212
213
|
bottom: "bottom";
|
|
213
214
|
}>>;
|
|
214
215
|
ringThickness: z.ZodDefault<z.ZodNumber>;
|
|
@@ -227,15 +228,15 @@ export declare const ColumnNode: z.ZodObject<{
|
|
|
227
228
|
}>>;
|
|
228
229
|
latheRingCount: z.ZodDefault<z.ZodNumber>;
|
|
229
230
|
latheRingSpacing: z.ZodDefault<z.ZodEnum<{
|
|
231
|
+
top: "top";
|
|
230
232
|
ends: "ends";
|
|
231
233
|
even: "even";
|
|
232
|
-
top: "top";
|
|
233
234
|
bottom: "bottom";
|
|
234
235
|
}>>;
|
|
235
236
|
carvingLevel: z.ZodDefault<z.ZodNumber>;
|
|
236
237
|
carvingPlacement: z.ZodDefault<z.ZodEnum<{
|
|
237
|
-
shaft: "shaft";
|
|
238
238
|
base: "base";
|
|
239
|
+
shaft: "shaft";
|
|
239
240
|
capital: "capital";
|
|
240
241
|
all: "all";
|
|
241
242
|
}>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column.d.ts","sourceRoot":"","sources":["../../../src/schema/nodes/column.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,eAAO,MAAM,WAAW;;;;;;;EAOtB,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;;;;EAM7B,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;;;;EAAqE,CAAA;AAEpG,eAAO,MAAM,iBAAiB;;;;;;EAAmE,CAAA;AAEjG,eAAO,MAAM,gBAAgB;;;;EAA6C,CAAA;AAE1E,eAAO,MAAM,eAAe;;;;;;;;;EAS1B,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;EAa7B,CAAA;AAEF,eAAO,MAAM,mBAAmB;;;;;EAA4C,CAAA;AAE5E,eAAO,MAAM,sBAAsB;;;;;EAA8C,CAAA;AAEjF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;EAY7B,CAAA;AAEF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAA;AACrD,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AACnE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AACnE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AACjE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAC/D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AAC7D,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AACnE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AACrE,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAC3E,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAEnE,eAAO,MAAM,UAAU
|
|
1
|
+
{"version":3,"file":"column.d.ts","sourceRoot":"","sources":["../../../src/schema/nodes/column.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,eAAO,MAAM,WAAW;;;;;;;EAOtB,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;;;;EAM7B,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;;;;EAAqE,CAAA;AAEpG,eAAO,MAAM,iBAAiB;;;;;;EAAmE,CAAA;AAEjG,eAAO,MAAM,gBAAgB;;;;EAA6C,CAAA;AAE1E,eAAO,MAAM,eAAe;;;;;;;;;EAS1B,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;EAa7B,CAAA;AAEF,eAAO,MAAM,mBAAmB;;;;;EAA4C,CAAA;AAE5E,eAAO,MAAM,sBAAsB;;;;;EAA8C,CAAA;AAEjF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;EAY7B,CAAA;AAEF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAA;AACrD,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AACnE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AACnE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AACjE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAC/D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AAC7D,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AACnE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AACrE,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAC3E,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAEnE,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiGrB,CAAA;AAEF,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2yBiE,CAAA;AAE5F,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,cAAc,CAAA;AAExD,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAA"}
|