@pascal-app/core 0.8.0 → 0.9.2
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/dist/events/bus.d.ts +67 -13
- package/dist/events/bus.d.ts.map +1 -1
- package/dist/hooks/scene-registry/item-clip-registry.d.ts +18 -0
- package/dist/hooks/scene-registry/item-clip-registry.d.ts.map +1 -0
- package/dist/hooks/scene-registry/item-clip-registry.js +10 -0
- package/dist/hooks/scene-registry/scene-registry.d.ts +14 -23
- package/dist/hooks/scene-registry/scene-registry.d.ts.map +1 -1
- package/dist/hooks/scene-registry/scene-registry.js +59 -26
- package/dist/hooks/scene-registry/scene-registry.test.d.ts +2 -0
- package/dist/hooks/scene-registry/scene-registry.test.d.ts.map +1 -0
- package/dist/hooks/scene-registry/scene-registry.test.js +26 -0
- package/dist/hooks/spatial-grid/floor-placed-elevation.d.ts +14 -0
- package/dist/hooks/spatial-grid/floor-placed-elevation.d.ts.map +1 -0
- package/dist/hooks/spatial-grid/floor-placed-elevation.js +51 -0
- package/dist/hooks/spatial-grid/floor-placed-elevation.test.d.ts +2 -0
- package/dist/hooks/spatial-grid/floor-placed-elevation.test.d.ts.map +1 -0
- package/dist/hooks/spatial-grid/floor-placed-elevation.test.js +366 -0
- package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts +79 -11
- package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/spatial-grid-manager.js +508 -141
- package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts +28 -1
- package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/spatial-grid-sync.js +109 -18
- package/dist/hooks/spatial-grid/wall-slab-overlap.test.d.ts +2 -0
- package/dist/hooks/spatial-grid/wall-slab-overlap.test.d.ts.map +1 -0
- package/dist/hooks/spatial-grid/wall-slab-overlap.test.js +363 -0
- package/dist/index.d.ts +36 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +33 -6
- package/dist/lib/level-name.d.ts +4 -0
- package/dist/lib/level-name.d.ts.map +1 -0
- package/dist/lib/level-name.js +10 -0
- package/dist/lib/measurement-geometry.d.ts +19 -0
- package/dist/lib/measurement-geometry.d.ts.map +1 -0
- package/dist/lib/measurement-geometry.js +232 -0
- package/dist/lib/measurement-geometry.test.d.ts +2 -0
- package/dist/lib/measurement-geometry.test.d.ts.map +1 -0
- package/dist/lib/measurement-geometry.test.js +102 -0
- package/dist/lib/polygon-geometry.d.ts +0 -1
- package/dist/lib/polygon-geometry.d.ts.map +1 -1
- package/dist/lib/polygon-geometry.js +0 -18
- package/dist/lib/polygon-relations.d.ts +10 -0
- package/dist/lib/polygon-relations.d.ts.map +1 -0
- package/dist/lib/polygon-relations.js +73 -0
- package/dist/lib/selection-proxy.d.ts +4 -0
- package/dist/lib/selection-proxy.d.ts.map +1 -0
- package/dist/lib/selection-proxy.js +12 -0
- package/dist/lib/slab-polygon.d.ts +31 -2
- package/dist/lib/slab-polygon.d.ts.map +1 -1
- package/dist/lib/slab-polygon.js +525 -31
- package/dist/lib/slab-polygon.test.d.ts +2 -0
- package/dist/lib/slab-polygon.test.d.ts.map +1 -0
- package/dist/lib/slab-polygon.test.js +635 -0
- package/dist/lib/slots.d.ts +14 -0
- package/dist/lib/slots.d.ts.map +1 -0
- package/dist/lib/slots.js +26 -0
- package/dist/lib/space-detection-pause.test.d.ts +2 -0
- package/dist/lib/space-detection-pause.test.d.ts.map +1 -0
- package/dist/lib/space-detection-pause.test.js +42 -0
- package/dist/lib/space-detection.d.ts +54 -2
- package/dist/lib/space-detection.d.ts.map +1 -1
- package/dist/lib/space-detection.js +599 -124
- package/dist/lib/space-detection.test.d.ts +2 -0
- package/dist/lib/space-detection.test.d.ts.map +1 -0
- package/dist/lib/space-detection.test.js +376 -0
- package/dist/lib/wall-distance.d.ts +60 -0
- package/dist/lib/wall-distance.d.ts.map +1 -0
- package/dist/lib/wall-distance.js +85 -0
- package/dist/lib/zone-quantities.d.ts +21 -0
- package/dist/lib/zone-quantities.d.ts.map +1 -0
- package/dist/lib/zone-quantities.js +183 -0
- package/dist/lib/zone-quantities.test.d.ts +2 -0
- package/dist/lib/zone-quantities.test.d.ts.map +1 -0
- package/dist/lib/zone-quantities.test.js +82 -0
- package/dist/material-library.d.ts +20 -1
- package/dist/material-library.d.ts.map +1 -1
- package/dist/material-library.js +3737 -200
- package/dist/registry/__bench__/relations-resolver.bench.d.ts +15 -0
- package/dist/registry/__bench__/relations-resolver.bench.d.ts.map +1 -0
- package/dist/registry/__bench__/relations-resolver.bench.js +170 -0
- package/dist/registry/handles.d.ts +394 -0
- package/dist/registry/handles.d.ts.map +1 -0
- package/dist/registry/handles.js +24 -0
- package/dist/registry/index.d.ts +7 -0
- package/dist/registry/index.d.ts.map +1 -0
- package/dist/registry/index.js +4 -0
- package/dist/registry/registry.d.ts +136 -0
- package/dist/registry/registry.d.ts.map +1 -0
- package/dist/registry/registry.js +282 -0
- package/dist/registry/registry.test.d.ts +2 -0
- package/dist/registry/registry.test.d.ts.map +1 -0
- package/dist/registry/registry.test.js +196 -0
- package/dist/registry/relations-resolver.d.ts +42 -0
- package/dist/registry/relations-resolver.d.ts.map +1 -0
- package/dist/registry/relations-resolver.js +77 -0
- package/dist/registry/relations-resolver.test.d.ts +2 -0
- package/dist/registry/relations-resolver.test.d.ts.map +1 -0
- package/dist/registry/relations-resolver.test.js +183 -0
- package/dist/registry/scene-api.d.ts +44 -0
- package/dist/registry/scene-api.d.ts.map +1 -0
- package/dist/registry/scene-api.js +111 -0
- package/dist/registry/scene-api.test.d.ts +2 -0
- package/dist/registry/scene-api.test.d.ts.map +1 -0
- package/dist/registry/scene-api.test.js +183 -0
- package/dist/registry/subtree.d.ts +67 -0
- package/dist/registry/subtree.d.ts.map +1 -0
- package/dist/registry/subtree.js +123 -0
- package/dist/registry/subtree.test.d.ts +2 -0
- package/dist/registry/subtree.test.d.ts.map +1 -0
- package/dist/registry/subtree.test.js +163 -0
- package/dist/registry/types.d.ts +2099 -0
- package/dist/registry/types.d.ts.map +1 -0
- package/dist/registry/types.js +1 -0
- package/dist/schema/index.d.ts +35 -4
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/index.js +32 -4
- package/dist/schema/material.d.ts +13 -2
- package/dist/schema/material.d.ts.map +1 -1
- package/dist/schema/material.js +17 -5
- package/dist/schema/material.test.d.ts +2 -0
- package/dist/schema/material.test.d.ts.map +1 -0
- package/dist/schema/material.test.js +43 -0
- package/dist/schema/nodes/box-vent.d.ts +74 -0
- package/dist/schema/nodes/box-vent.d.ts.map +1 -0
- package/dist/schema/nodes/box-vent.js +63 -0
- package/dist/schema/nodes/building.d.ts +1 -1
- package/dist/schema/nodes/building.d.ts.map +1 -1
- package/dist/schema/nodes/building.js +3 -2
- package/dist/schema/nodes/cabinet.d.ts +534 -0
- package/dist/schema/nodes/cabinet.d.ts.map +1 -0
- package/dist/schema/nodes/cabinet.js +137 -0
- package/dist/schema/nodes/ceiling.d.ts +5 -2
- package/dist/schema/nodes/ceiling.d.ts.map +1 -1
- package/dist/schema/nodes/ceiling.js +5 -1
- package/dist/schema/nodes/chimney.d.ts +158 -0
- package/dist/schema/nodes/chimney.d.ts.map +1 -0
- package/dist/schema/nodes/chimney.js +67 -0
- package/dist/schema/nodes/column.d.ts +600 -7
- package/dist/schema/nodes/column.d.ts.map +1 -1
- package/dist/schema/nodes/column.js +589 -6
- package/dist/schema/nodes/cupola.d.ts +66 -0
- package/dist/schema/nodes/cupola.d.ts.map +1 -0
- package/dist/schema/nodes/cupola.js +28 -0
- package/dist/schema/nodes/door.d.ts +13 -5
- package/dist/schema/nodes/door.d.ts.map +1 -1
- package/dist/schema/nodes/door.js +12 -0
- package/dist/schema/nodes/dormer.d.ts +228 -0
- package/dist/schema/nodes/dormer.d.ts.map +1 -0
- package/dist/schema/nodes/dormer.js +119 -0
- package/dist/schema/nodes/downspout.d.ts +75 -0
- package/dist/schema/nodes/downspout.d.ts.map +1 -0
- package/dist/schema/nodes/downspout.js +63 -0
- package/dist/schema/nodes/duct-fitting.d.ts +91 -0
- package/dist/schema/nodes/duct-fitting.d.ts.map +1 -0
- package/dist/schema/nodes/duct-fitting.js +92 -0
- package/dist/schema/nodes/duct-segment.d.ts +61 -0
- package/dist/schema/nodes/duct-segment.d.ts.map +1 -0
- package/dist/schema/nodes/duct-segment.js +73 -0
- package/dist/schema/nodes/duct-terminal.d.ts +57 -0
- package/dist/schema/nodes/duct-terminal.d.ts.map +1 -0
- package/dist/schema/nodes/duct-terminal.js +51 -0
- package/dist/schema/nodes/elevator.d.ts +106 -0
- package/dist/schema/nodes/elevator.d.ts.map +1 -0
- package/dist/schema/nodes/elevator.js +57 -0
- package/dist/schema/nodes/eyebrow-vent.d.ts +68 -0
- package/dist/schema/nodes/eyebrow-vent.d.ts.map +1 -0
- package/dist/schema/nodes/eyebrow-vent.js +40 -0
- package/dist/schema/nodes/fence.d.ts +19 -2
- package/dist/schema/nodes/fence.d.ts.map +1 -1
- package/dist/schema/nodes/fence.js +27 -2
- package/dist/schema/nodes/gutter.d.ts +84 -0
- package/dist/schema/nodes/gutter.d.ts.map +1 -0
- package/dist/schema/nodes/gutter.js +76 -0
- package/dist/schema/nodes/hvac-equipment.d.ts +63 -0
- package/dist/schema/nodes/hvac-equipment.d.ts.map +1 -0
- package/dist/schema/nodes/hvac-equipment.js +55 -0
- package/dist/schema/nodes/item.d.ts +12 -0
- package/dist/schema/nodes/item.d.ts.map +1 -1
- package/dist/schema/nodes/item.js +20 -0
- package/dist/schema/nodes/level.d.ts +1 -1
- package/dist/schema/nodes/level.d.ts.map +1 -1
- package/dist/schema/nodes/level.js +4 -0
- package/dist/schema/nodes/lineset.d.ts +42 -0
- package/dist/schema/nodes/lineset.d.ts.map +1 -0
- package/dist/schema/nodes/lineset.js +38 -0
- package/dist/schema/nodes/liquid-line.d.ts +34 -0
- package/dist/schema/nodes/liquid-line.d.ts.map +1 -0
- package/dist/schema/nodes/liquid-line.js +24 -0
- package/dist/schema/nodes/measurement.d.ts +306 -0
- package/dist/schema/nodes/measurement.d.ts.map +1 -0
- package/dist/schema/nodes/measurement.js +87 -0
- package/dist/schema/nodes/measurement.test.d.ts +2 -0
- package/dist/schema/nodes/measurement.test.d.ts.map +1 -0
- package/dist/schema/nodes/measurement.test.js +139 -0
- package/dist/schema/nodes/pipe-fitting.d.ts +56 -0
- package/dist/schema/nodes/pipe-fitting.d.ts.map +1 -0
- package/dist/schema/nodes/pipe-fitting.js +45 -0
- package/dist/schema/nodes/pipe-segment.d.ts +48 -0
- package/dist/schema/nodes/pipe-segment.d.ts.map +1 -0
- package/dist/schema/nodes/pipe-segment.js +36 -0
- package/dist/schema/nodes/pipe-trap.d.ts +43 -0
- package/dist/schema/nodes/pipe-trap.d.ts.map +1 -0
- package/dist/schema/nodes/pipe-trap.js +36 -0
- package/dist/schema/nodes/ridge-vent-defaults.test.d.ts +2 -0
- package/dist/schema/nodes/ridge-vent-defaults.test.d.ts.map +1 -0
- package/dist/schema/nodes/ridge-vent-defaults.test.js +205 -0
- package/dist/schema/nodes/ridge-vent.d.ts +82 -0
- package/dist/schema/nodes/ridge-vent.d.ts.map +1 -0
- package/dist/schema/nodes/ridge-vent.js +248 -0
- package/dist/schema/nodes/roof-segment-shape.d.ts +90 -0
- package/dist/schema/nodes/roof-segment-shape.d.ts.map +1 -0
- package/dist/schema/nodes/roof-segment-shape.js +318 -0
- package/dist/schema/nodes/roof-segment-shape.test.d.ts +2 -0
- package/dist/schema/nodes/roof-segment-shape.test.d.ts.map +1 -0
- package/dist/schema/nodes/roof-segment-shape.test.js +175 -0
- package/dist/schema/nodes/roof-segment-surface.test.d.ts +2 -0
- package/dist/schema/nodes/roof-segment-surface.test.d.ts.map +1 -0
- package/dist/schema/nodes/roof-segment-surface.test.js +48 -0
- package/dist/schema/nodes/roof-segment-trim.test.d.ts +2 -0
- package/dist/schema/nodes/roof-segment-trim.test.d.ts.map +1 -0
- package/dist/schema/nodes/roof-segment-trim.test.js +107 -0
- package/dist/schema/nodes/roof-segment-walls.d.ts +101 -0
- package/dist/schema/nodes/roof-segment-walls.d.ts.map +1 -0
- package/dist/schema/nodes/roof-segment-walls.js +330 -0
- package/dist/schema/nodes/roof-segment-walls.test.d.ts +2 -0
- package/dist/schema/nodes/roof-segment-walls.test.d.ts.map +1 -0
- package/dist/schema/nodes/roof-segment-walls.test.js +92 -0
- package/dist/schema/nodes/roof-segment.d.ts +273 -3
- package/dist/schema/nodes/roof-segment.d.ts.map +1 -1
- package/dist/schema/nodes/roof-segment.js +539 -3
- package/dist/schema/nodes/roof.d.ts +8 -8
- package/dist/schema/nodes/roof.d.ts.map +1 -1
- package/dist/schema/nodes/roof.js +4 -16
- package/dist/schema/nodes/shelf.d.ts +106 -0
- package/dist/schema/nodes/shelf.d.ts.map +1 -0
- package/dist/schema/nodes/shelf.js +90 -0
- package/dist/schema/nodes/site.d.ts +1 -122
- package/dist/schema/nodes/site.d.ts.map +1 -1
- package/dist/schema/nodes/site.js +2 -6
- package/dist/schema/nodes/skylight.d.ts +279 -0
- package/dist/schema/nodes/skylight.d.ts.map +1 -0
- package/dist/schema/nodes/skylight.js +152 -0
- package/dist/schema/nodes/slab.d.ts +5 -2
- package/dist/schema/nodes/slab.d.ts.map +1 -1
- package/dist/schema/nodes/slab.js +5 -1
- package/dist/schema/nodes/solar-panel.d.ts +117 -0
- package/dist/schema/nodes/solar-panel.d.ts.map +1 -0
- package/dist/schema/nodes/solar-panel.js +47 -0
- package/dist/schema/nodes/stair-segment.d.ts +4 -4
- package/dist/schema/nodes/stair.d.ts +13 -12
- package/dist/schema/nodes/stair.d.ts.map +1 -1
- package/dist/schema/nodes/stair.js +3 -0
- package/dist/schema/nodes/surface-hole-metadata.d.ts +2 -0
- package/dist/schema/nodes/surface-hole-metadata.d.ts.map +1 -1
- package/dist/schema/nodes/surface-hole-metadata.js +3 -1
- package/dist/schema/nodes/turbine-vent.d.ts +68 -0
- package/dist/schema/nodes/turbine-vent.d.ts.map +1 -0
- package/dist/schema/nodes/turbine-vent.js +41 -0
- package/dist/schema/nodes/wall.d.ts +245 -6
- package/dist/schema/nodes/wall.d.ts.map +1 -1
- package/dist/schema/nodes/wall.js +257 -0
- package/dist/schema/nodes/wall.test.d.ts +2 -0
- package/dist/schema/nodes/wall.test.d.ts.map +1 -0
- package/dist/schema/nodes/wall.test.js +208 -0
- package/dist/schema/nodes/window.d.ts +11 -3
- package/dist/schema/nodes/window.d.ts.map +1 -1
- package/dist/schema/nodes/window.js +12 -0
- package/dist/schema/nodes/zone.d.ts +2 -0
- package/dist/schema/nodes/zone.d.ts.map +1 -1
- package/dist/schema/nodes/zone.js +6 -0
- package/dist/schema/scene-material.d.ts +41 -0
- package/dist/schema/scene-material.d.ts.map +1 -0
- package/dist/schema/scene-material.js +9 -0
- package/dist/schema/types.d.ts +2850 -655
- package/dist/schema/types.d.ts.map +1 -1
- package/dist/schema/types.js +49 -0
- package/dist/services/alignment-anchors.d.ts +100 -0
- package/dist/services/alignment-anchors.d.ts.map +1 -0
- package/dist/services/alignment-anchors.js +312 -0
- package/dist/services/alignment-anchors.test.d.ts +2 -0
- package/dist/services/alignment-anchors.test.d.ts.map +1 -0
- package/dist/services/alignment-anchors.test.js +383 -0
- package/dist/services/alignment.d.ts +131 -0
- package/dist/services/alignment.d.ts.map +1 -0
- package/dist/services/alignment.js +171 -0
- package/dist/services/alignment.test.d.ts +2 -0
- package/dist/services/alignment.test.d.ts.map +1 -0
- package/dist/services/alignment.test.js +92 -0
- package/dist/services/drag-session.d.ts +47 -0
- package/dist/services/drag-session.d.ts.map +1 -0
- package/dist/services/drag-session.js +100 -0
- package/dist/services/drag-session.test.d.ts +2 -0
- package/dist/services/drag-session.test.d.ts.map +1 -0
- package/dist/services/drag-session.test.js +219 -0
- package/dist/services/hosting.d.ts +88 -0
- package/dist/services/hosting.d.ts.map +1 -0
- package/dist/services/hosting.js +131 -0
- package/dist/services/hosting.test.d.ts +2 -0
- package/dist/services/hosting.test.d.ts.map +1 -0
- package/dist/services/hosting.test.js +230 -0
- package/dist/services/index.d.ts +13 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +12 -0
- package/dist/services/level-height.d.ts +28 -0
- package/dist/services/level-height.d.ts.map +1 -0
- package/dist/services/level-height.js +62 -0
- package/dist/services/movement.d.ts +48 -0
- package/dist/services/movement.d.ts.map +1 -0
- package/dist/services/movement.js +65 -0
- package/dist/services/movement.test.d.ts +2 -0
- package/dist/services/movement.test.d.ts.map +1 -0
- package/dist/services/movement.test.js +133 -0
- package/dist/services/opening-guides.d.ts +141 -0
- package/dist/services/opening-guides.d.ts.map +1 -0
- package/dist/services/opening-guides.js +267 -0
- package/dist/services/opening-guides.test.d.ts +2 -0
- package/dist/services/opening-guides.test.d.ts.map +1 -0
- package/dist/services/opening-guides.test.js +208 -0
- package/dist/services/port-connectivity.d.ts +115 -0
- package/dist/services/port-connectivity.d.ts.map +1 -0
- package/dist/services/port-connectivity.js +300 -0
- package/dist/services/port-connectivity.test.d.ts +2 -0
- package/dist/services/port-connectivity.test.d.ts.map +1 -0
- package/dist/services/port-connectivity.test.js +297 -0
- package/dist/services/riser-diagram.d.ts +40 -0
- package/dist/services/riser-diagram.d.ts.map +1 -0
- package/dist/services/riser-diagram.js +110 -0
- package/dist/services/riser-diagram.test.d.ts +2 -0
- package/dist/services/riser-diagram.test.d.ts.map +1 -0
- package/dist/services/riser-diagram.test.js +66 -0
- package/dist/services/single-undo-dance.test.d.ts +2 -0
- package/dist/services/single-undo-dance.test.d.ts.map +1 -0
- package/dist/services/single-undo-dance.test.js +210 -0
- package/dist/services/snap.d.ts +80 -0
- package/dist/services/snap.d.ts.map +1 -0
- package/dist/services/snap.js +140 -0
- package/dist/services/snap.test.d.ts +2 -0
- package/dist/services/snap.test.d.ts.map +1 -0
- package/dist/services/snap.test.js +137 -0
- package/dist/services/system-graph.d.ts +30 -0
- package/dist/services/system-graph.d.ts.map +1 -0
- package/dist/services/system-graph.js +164 -0
- package/dist/services/system-graph.test.d.ts +2 -0
- package/dist/services/system-graph.test.d.ts.map +1 -0
- package/dist/services/system-graph.test.js +138 -0
- package/dist/services/validate-dwv.d.ts +32 -0
- package/dist/services/validate-dwv.d.ts.map +1 -0
- package/dist/services/validate-dwv.js +118 -0
- package/dist/services/validate-dwv.test.d.ts +2 -0
- package/dist/services/validate-dwv.test.d.ts.map +1 -0
- package/dist/services/validate-dwv.test.js +109 -0
- package/dist/solar-panel-presets.d.ts +17 -0
- package/dist/solar-panel-presets.d.ts.map +1 -0
- package/dist/solar-panel-presets.js +43 -0
- package/dist/store/actions/node-actions.d.ts +14 -2
- package/dist/store/actions/node-actions.d.ts.map +1 -1
- package/dist/store/actions/node-actions.js +585 -15
- package/dist/store/actions/node-mutation-sanitize.test.d.ts +2 -0
- package/dist/store/actions/node-mutation-sanitize.test.d.ts.map +1 -0
- package/dist/store/actions/node-mutation-sanitize.test.js +147 -0
- package/dist/store/actions/reparent.test.d.ts +2 -0
- package/dist/store/actions/reparent.test.d.ts.map +1 -0
- package/dist/store/actions/reparent.test.js +212 -0
- package/dist/store/actions/ridge-vent-update.test.d.ts +2 -0
- package/dist/store/actions/ridge-vent-update.test.d.ts.map +1 -0
- package/dist/store/actions/ridge-vent-update.test.js +264 -0
- package/dist/store/history-control.d.ts +11 -0
- package/dist/store/history-control.d.ts.map +1 -1
- package/dist/store/history-control.js +33 -0
- package/dist/store/use-interactive.d.ts +39 -0
- package/dist/store/use-interactive.d.ts.map +1 -1
- package/dist/store/use-interactive.js +75 -0
- package/dist/store/use-live-node-overrides.d.ts +22 -0
- package/dist/store/use-live-node-overrides.d.ts.map +1 -0
- package/dist/store/use-live-node-overrides.js +59 -0
- package/dist/store/use-scene-dirty-tracking.test.d.ts +2 -0
- package/dist/store/use-scene-dirty-tracking.test.d.ts.map +1 -0
- package/dist/store/use-scene-dirty-tracking.test.js +68 -0
- package/dist/store/use-scene-elevator-migration.test.d.ts +2 -0
- package/dist/store/use-scene-elevator-migration.test.d.ts.map +1 -0
- package/dist/store/use-scene-elevator-migration.test.js +109 -0
- package/dist/store/use-scene-measurement-roundtrip.test.d.ts +2 -0
- package/dist/store/use-scene-measurement-roundtrip.test.d.ts.map +1 -0
- package/dist/store/use-scene-measurement-roundtrip.test.js +97 -0
- package/dist/store/use-scene-plugins.test.d.ts +2 -0
- package/dist/store/use-scene-plugins.test.d.ts.map +1 -0
- package/dist/store/use-scene-plugins.test.js +51 -0
- package/dist/store/use-scene-wall-slot-migration.test.d.ts +2 -0
- package/dist/store/use-scene-wall-slot-migration.test.d.ts.map +1 -0
- package/dist/store/use-scene-wall-slot-migration.test.js +210 -0
- package/dist/store/use-scene-window-migration.test.d.ts +2 -0
- package/dist/store/use-scene-window-migration.test.d.ts.map +1 -0
- package/dist/store/use-scene-window-migration.test.js +85 -0
- package/dist/store/use-scene.d.ts +28 -2
- package/dist/store/use-scene.d.ts.map +1 -1
- package/dist/store/use-scene.js +546 -49
- package/dist/systems/elevator/elevator-dispatch.d.ts +12 -0
- package/dist/systems/elevator/elevator-dispatch.d.ts.map +1 -0
- package/dist/systems/elevator/elevator-dispatch.js +57 -0
- package/dist/systems/elevator/elevator-geometry.d.ts +15 -0
- package/dist/systems/elevator/elevator-geometry.d.ts.map +1 -0
- package/dist/systems/elevator/elevator-geometry.js +50 -0
- package/dist/systems/elevator/elevator-opening-sync.d.ts +6 -0
- package/dist/systems/elevator/elevator-opening-sync.d.ts.map +1 -0
- package/dist/systems/elevator/elevator-opening-sync.js +218 -0
- package/dist/systems/elevator/elevator-opening-sync.test.d.ts +2 -0
- package/dist/systems/elevator/elevator-opening-sync.test.d.ts.map +1 -0
- package/dist/systems/elevator/elevator-opening-sync.test.js +146 -0
- package/dist/systems/elevator/elevator-opening-system.d.ts +2 -0
- package/dist/systems/elevator/elevator-opening-system.d.ts.map +1 -0
- package/dist/systems/elevator/elevator-opening-system.js +48 -0
- package/dist/systems/elevator/elevator-runtime-system.d.ts +2 -0
- package/dist/systems/elevator/elevator-runtime-system.d.ts.map +1 -0
- package/dist/systems/elevator/elevator-runtime-system.js +8 -0
- package/dist/systems/elevator/elevator-runtime.d.ts +18 -0
- package/dist/systems/elevator/elevator-runtime.d.ts.map +1 -0
- package/dist/systems/elevator/elevator-runtime.js +225 -0
- package/dist/systems/elevator/elevator-runtime.test.d.ts +2 -0
- package/dist/systems/elevator/elevator-runtime.test.d.ts.map +1 -0
- package/dist/systems/elevator/elevator-runtime.test.js +64 -0
- package/dist/systems/elevator/elevator-service.d.ts +19 -0
- package/dist/systems/elevator/elevator-service.d.ts.map +1 -0
- package/dist/systems/elevator/elevator-service.js +111 -0
- package/dist/systems/fence/fence-centerline.d.ts +12 -0
- package/dist/systems/fence/fence-centerline.d.ts.map +1 -0
- package/dist/systems/fence/fence-centerline.js +37 -0
- package/dist/systems/fence/fence-spline.d.ts +39 -0
- package/dist/systems/fence/fence-spline.d.ts.map +1 -0
- package/dist/systems/fence/fence-spline.js +196 -0
- package/dist/systems/fence/fence-spline.test.d.ts +2 -0
- package/dist/systems/fence/fence-spline.test.d.ts.map +1 -0
- package/dist/systems/fence/fence-spline.test.js +136 -0
- package/dist/systems/stair/stair-footprint.d.ts +44 -0
- package/dist/systems/stair/stair-footprint.d.ts.map +1 -0
- package/dist/systems/stair/stair-footprint.js +178 -0
- package/dist/systems/stair/stair-opening-preview.d.ts +2447 -0
- package/dist/systems/stair/stair-opening-preview.d.ts.map +1 -0
- package/dist/systems/stair/stair-opening-preview.js +93 -0
- package/dist/systems/stair/stair-opening-preview.test.d.ts +2 -0
- package/dist/systems/stair/stair-opening-preview.test.d.ts.map +1 -0
- package/dist/systems/stair/stair-opening-preview.test.js +80 -0
- package/dist/systems/stair/stair-opening-sync.d.ts.map +1 -1
- package/dist/systems/stair/stair-opening-sync.js +155 -147
- package/dist/systems/stair/stair-opening-sync.test.js +424 -2
- package/dist/systems/stair/stair-opening-system.d.ts +2 -0
- package/dist/systems/stair/stair-opening-system.d.ts.map +1 -0
- package/dist/systems/stair/stair-opening-system.js +104 -0
- package/dist/systems/wall/wall-mitering.d.ts.map +1 -1
- package/dist/systems/wall/wall-mitering.js +38 -2
- package/dist/systems/wall/wall-mitering.test.d.ts +2 -0
- package/dist/systems/wall/wall-mitering.test.d.ts.map +1 -0
- package/dist/systems/wall/wall-mitering.test.js +63 -0
- package/dist/systems/wall/wall-move.d.ts +48 -0
- package/dist/systems/wall/wall-move.d.ts.map +1 -0
- package/dist/systems/wall/wall-move.js +193 -0
- package/dist/utils/clone-scene-graph.d.ts +7 -4
- package/dist/utils/clone-scene-graph.d.ts.map +1 -1
- package/dist/utils/clone-scene-graph.js +29 -7
- package/dist/utils/clone-scene-graph.test.d.ts +2 -0
- package/dist/utils/clone-scene-graph.test.d.ts.map +1 -0
- package/dist/utils/clone-scene-graph.test.js +62 -0
- package/dist/utils/heal-scene-graph.d.ts +18 -0
- package/dist/utils/heal-scene-graph.d.ts.map +1 -0
- package/dist/utils/heal-scene-graph.js +90 -0
- package/dist/utils/heal-scene-graph.test.d.ts +2 -0
- package/dist/utils/heal-scene-graph.test.d.ts.map +1 -0
- package/dist/utils/heal-scene-graph.test.js +88 -0
- package/dist/validation/validate-build-json.d.ts +44 -0
- package/dist/validation/validate-build-json.d.ts.map +1 -0
- package/dist/validation/validate-build-json.js +256 -0
- package/package.json +11 -4
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import dedent from 'dedent';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { BaseNode, nodeType, objectId } from '../base';
|
|
4
|
+
import { MaterialSchema } from '../material';
|
|
5
|
+
export const DownspoutNode = BaseNode.extend({
|
|
6
|
+
id: objectId('downspout'),
|
|
7
|
+
type: nodeType('downspout'),
|
|
8
|
+
material: MaterialSchema.optional(),
|
|
9
|
+
// Match the gutter family default — paint inspector reads "White"
|
|
10
|
+
// instead of "no material" on a freshly placed downspout.
|
|
11
|
+
materialPreset: z.string().default('preset-white'),
|
|
12
|
+
// Logical attachment: the gutter this downspout drains. Scene-graph
|
|
13
|
+
// parent is the same roof-segment that hosts the gutter, so the
|
|
14
|
+
// renderer can be reached through the segment's children list (like
|
|
15
|
+
// every other roof accessory). gutterId then drives the LOOKUP of
|
|
16
|
+
// outlet X/Z/diameter — the downspout's actual mount position is
|
|
17
|
+
// derived from the gutter, not stored.
|
|
18
|
+
gutterId: z.string().optional(),
|
|
19
|
+
// Which of the host gutter's `outlets` this downspout drains, by the
|
|
20
|
+
// outlet's `id`. The mount position, bore, and cross-section shape are
|
|
21
|
+
// looked up from that outlet — so several downspouts on one gutter no
|
|
22
|
+
// longer stack on a single drop.
|
|
23
|
+
outletId: z.string().optional(),
|
|
24
|
+
// Length the pipe extends DOWN from the gutter outlet, in metres.
|
|
25
|
+
// Default 2.5 m covers a typical residential storey; the placement
|
|
26
|
+
// tool can default to the gutter's eave-Y minus building floor on
|
|
27
|
+
// commit so the user doesn't have to set it on every drop.
|
|
28
|
+
length: z.number().default(2.5),
|
|
29
|
+
// Bore diameter, default 0.07 m ≈ 3″ to match the gutter outlet
|
|
30
|
+
// default. Larger downspouts are common on commercial gutters.
|
|
31
|
+
diameter: z.number().default(0.07),
|
|
32
|
+
// Gap between the pipe's wall-facing surface and the wall face, in
|
|
33
|
+
// metres. The downspout's offset elbows step it back from the eave
|
|
34
|
+
// overhang to the wall; this controls how far proud of the wall it
|
|
35
|
+
// sits (real downspouts mount on standoff brackets ~1–2 cm off the
|
|
36
|
+
// wall). Larger values pull the run back OUT toward the eave — the
|
|
37
|
+
// escape hatch when the auto-routed wall position doesn't match the
|
|
38
|
+
// actual wall (overshoots into it). Default 0.02 m.
|
|
39
|
+
standoff: z.number().default(0.02),
|
|
40
|
+
// Cross-section shape. 'auto' follows the host gutter's profile (round
|
|
41
|
+
// on half-round, rectangular on k-style / box); 'round' / 'rect'
|
|
42
|
+
// override it for a mixed look.
|
|
43
|
+
shape: z.enum(['auto', 'round', 'rect']).default('auto'),
|
|
44
|
+
// Wall straps clamping the run to the wall. 'band' renders periodic
|
|
45
|
+
// bands; 'none' hides them. Spacing is metres between bands.
|
|
46
|
+
strapStyle: z.enum(['band', 'none']).default('band'),
|
|
47
|
+
strapSpacing: z.number().default(1.8),
|
|
48
|
+
// What happens at the bottom of the run:
|
|
49
|
+
// - 'splash': kickout elbow + a splash block on the ground (default)
|
|
50
|
+
// - 'kickout': kickout elbow only (e.g. into a drain pipe)
|
|
51
|
+
// - 'straight': no kick — runs straight down (into a grade drain)
|
|
52
|
+
terminal: z.enum(['splash', 'kickout', 'straight']).default('splash'),
|
|
53
|
+
}).describe(dedent `
|
|
54
|
+
Downspout — a vertical pipe that takes water from a gutter outlet
|
|
55
|
+
down to ground level. Parented to a roof-segment (scene-graph),
|
|
56
|
+
linked to a specific gutter via gutterId for outlet position.
|
|
57
|
+
- length: vertical pipe length below the gutter outlet
|
|
58
|
+
- diameter: bore diameter; should match the host gutter's outletDiameter
|
|
59
|
+
- standoff: gap the pipe sits proud of the wall (pulls the run out toward the eave)
|
|
60
|
+
- shape: cross-section (auto follows the gutter profile, or force round / rect)
|
|
61
|
+
- strapStyle / strapSpacing: wall straps clamping the run
|
|
62
|
+
- terminal: bottom treatment (splash block, kickout only, or straight down)
|
|
63
|
+
`);
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Duct fitting — the junction pieces that connect round duct segments:
|
|
4
|
+
* elbows (direction change), tees (branch takeoff), reducers (diameter
|
|
5
|
+
* transition).
|
|
6
|
+
*
|
|
7
|
+
* Phase 2 of the HVAC node system. Fittings are the first kind to expose
|
|
8
|
+
* typed ports (`def.ports`) — placement tools snap duct endpoints onto a
|
|
9
|
+
* fitting's collars, and the future system graph walks ports to decide
|
|
10
|
+
* connectivity.
|
|
11
|
+
*
|
|
12
|
+
* `position` is level-local meters; `rotation` is an XYZ euler in radians
|
|
13
|
+
* so a fitting can turn a horizontal run vertical (riser elbows).
|
|
14
|
+
*
|
|
15
|
+
* Local-frame conventions (before `rotation` is applied):
|
|
16
|
+
* - elbow: inlet faces -X, outlet turned by `angle` degrees in the
|
|
17
|
+
* XZ plane (90° → +Z).
|
|
18
|
+
* - tee: run along the X axis (ports face -X and +X), branch
|
|
19
|
+
* collar at `branchAngle`° from the +X (outlet) axis in the
|
|
20
|
+
* XZ plane — 90° a square straight tee, <90° a lateral
|
|
21
|
+
* leaning downstream toward the outlet, >90° leaning upstream
|
|
22
|
+
* toward the inlet — sized at `diameter2`.
|
|
23
|
+
* - cross: four-way junction — run along the X axis (ports face -X
|
|
24
|
+
* and +X) at the run profile, two opposed branches square to
|
|
25
|
+
* the run along ±Z (branch faces +Z, branch2 faces -Z) at the
|
|
26
|
+
* branch profile (`shape2` / `diameter2`).
|
|
27
|
+
* - reducer: inlet at `diameter` faces -X, outlet at `diameter2`
|
|
28
|
+
* faces +X.
|
|
29
|
+
* - transition: square-to-round — rect end at `width` × `height` faces
|
|
30
|
+
* -X, round end at `diameter2` faces +X. `diameter` carries
|
|
31
|
+
* the rect end's area-equivalent round size.
|
|
32
|
+
*/
|
|
33
|
+
export declare const DuctFittingNode: z.ZodObject<{
|
|
34
|
+
object: z.ZodDefault<z.ZodLiteral<"node">>;
|
|
35
|
+
name: z.ZodOptional<z.ZodString>;
|
|
36
|
+
parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
37
|
+
visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
38
|
+
camera: z.ZodOptional<z.ZodObject<{
|
|
39
|
+
position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
40
|
+
target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
41
|
+
mode: z.ZodDefault<z.ZodEnum<{
|
|
42
|
+
perspective: "perspective";
|
|
43
|
+
orthographic: "orthographic";
|
|
44
|
+
}>>;
|
|
45
|
+
fov: z.ZodOptional<z.ZodNumber>;
|
|
46
|
+
zoom: z.ZodOptional<z.ZodNumber>;
|
|
47
|
+
}, z.core.$strip>>;
|
|
48
|
+
metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
|
|
49
|
+
id: z.ZodDefault<z.ZodTemplateLiteral<`duct-fitting_${string}`>>;
|
|
50
|
+
type: z.ZodDefault<z.ZodLiteral<"duct-fitting">>;
|
|
51
|
+
position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
52
|
+
rotation: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
53
|
+
fittingType: z.ZodDefault<z.ZodEnum<{
|
|
54
|
+
elbow: "elbow";
|
|
55
|
+
tee: "tee";
|
|
56
|
+
cross: "cross";
|
|
57
|
+
reducer: "reducer";
|
|
58
|
+
transition: "transition";
|
|
59
|
+
}>>;
|
|
60
|
+
shape: z.ZodDefault<z.ZodEnum<{
|
|
61
|
+
round: "round";
|
|
62
|
+
rect: "rect";
|
|
63
|
+
oval: "oval";
|
|
64
|
+
}>>;
|
|
65
|
+
width: z.ZodDefault<z.ZodNumber>;
|
|
66
|
+
height: z.ZodDefault<z.ZodNumber>;
|
|
67
|
+
shape2: z.ZodDefault<z.ZodEnum<{
|
|
68
|
+
round: "round";
|
|
69
|
+
rect: "rect";
|
|
70
|
+
oval: "oval";
|
|
71
|
+
}>>;
|
|
72
|
+
width2: z.ZodDefault<z.ZodNumber>;
|
|
73
|
+
height2: z.ZodDefault<z.ZodNumber>;
|
|
74
|
+
angle: z.ZodDefault<z.ZodNumber>;
|
|
75
|
+
branchAngle: z.ZodDefault<z.ZodNumber>;
|
|
76
|
+
diameter: z.ZodDefault<z.ZodNumber>;
|
|
77
|
+
diameter2: z.ZodDefault<z.ZodNumber>;
|
|
78
|
+
ductMaterial: z.ZodDefault<z.ZodEnum<{
|
|
79
|
+
"sheet-metal": "sheet-metal";
|
|
80
|
+
flex: "flex";
|
|
81
|
+
"duct-board": "duct-board";
|
|
82
|
+
}>>;
|
|
83
|
+
system: z.ZodDefault<z.ZodEnum<{
|
|
84
|
+
supply: "supply";
|
|
85
|
+
return: "return";
|
|
86
|
+
}>>;
|
|
87
|
+
slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
88
|
+
}, z.core.$strip>;
|
|
89
|
+
export type DuctFittingNode = z.infer<typeof DuctFittingNode>;
|
|
90
|
+
export type DuctFittingNodeId = DuctFittingNode['id'];
|
|
91
|
+
//# sourceMappingURL=duct-fitting.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"duct-fitting.d.ts","sourceRoot":"","sources":["../../../src/schema/nodes/duct-fitting.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA2D3B,CAAA;AACD,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AAC7D,MAAM,MAAM,iBAAiB,GAAG,eAAe,CAAC,IAAI,CAAC,CAAA"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import dedent from 'dedent';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { BaseNode, nodeType, objectId } from '../base';
|
|
4
|
+
/**
|
|
5
|
+
* Duct fitting — the junction pieces that connect round duct segments:
|
|
6
|
+
* elbows (direction change), tees (branch takeoff), reducers (diameter
|
|
7
|
+
* transition).
|
|
8
|
+
*
|
|
9
|
+
* Phase 2 of the HVAC node system. Fittings are the first kind to expose
|
|
10
|
+
* typed ports (`def.ports`) — placement tools snap duct endpoints onto a
|
|
11
|
+
* fitting's collars, and the future system graph walks ports to decide
|
|
12
|
+
* connectivity.
|
|
13
|
+
*
|
|
14
|
+
* `position` is level-local meters; `rotation` is an XYZ euler in radians
|
|
15
|
+
* so a fitting can turn a horizontal run vertical (riser elbows).
|
|
16
|
+
*
|
|
17
|
+
* Local-frame conventions (before `rotation` is applied):
|
|
18
|
+
* - elbow: inlet faces -X, outlet turned by `angle` degrees in the
|
|
19
|
+
* XZ plane (90° → +Z).
|
|
20
|
+
* - tee: run along the X axis (ports face -X and +X), branch
|
|
21
|
+
* collar at `branchAngle`° from the +X (outlet) axis in the
|
|
22
|
+
* XZ plane — 90° a square straight tee, <90° a lateral
|
|
23
|
+
* leaning downstream toward the outlet, >90° leaning upstream
|
|
24
|
+
* toward the inlet — sized at `diameter2`.
|
|
25
|
+
* - cross: four-way junction — run along the X axis (ports face -X
|
|
26
|
+
* and +X) at the run profile, two opposed branches square to
|
|
27
|
+
* the run along ±Z (branch faces +Z, branch2 faces -Z) at the
|
|
28
|
+
* branch profile (`shape2` / `diameter2`).
|
|
29
|
+
* - reducer: inlet at `diameter` faces -X, outlet at `diameter2`
|
|
30
|
+
* faces +X.
|
|
31
|
+
* - transition: square-to-round — rect end at `width` × `height` faces
|
|
32
|
+
* -X, round end at `diameter2` faces +X. `diameter` carries
|
|
33
|
+
* the rect end's area-equivalent round size.
|
|
34
|
+
*/
|
|
35
|
+
export const DuctFittingNode = BaseNode.extend({
|
|
36
|
+
id: objectId('duct-fitting'),
|
|
37
|
+
type: nodeType('duct-fitting'),
|
|
38
|
+
// Level-local meters.
|
|
39
|
+
position: z.tuple([z.number(), z.number(), z.number()]).default([0, 0, 0]),
|
|
40
|
+
// XYZ euler radians.
|
|
41
|
+
rotation: z.tuple([z.number(), z.number(), z.number()]).default([0, 0, 0]),
|
|
42
|
+
fittingType: z.enum(['elbow', 'tee', 'cross', 'reducer', 'transition']).default('elbow'),
|
|
43
|
+
// Run-leg cross-section: round collars, or a rect / flat-oval profile
|
|
44
|
+
// matching the trunk the fitting sits in. Reducers ignore the shape.
|
|
45
|
+
// When non-round, `diameter` carries the area-equivalent round size
|
|
46
|
+
// (drives leg lengths + advertised ports).
|
|
47
|
+
shape: z.enum(['round', 'rect', 'oval']).default('rect'),
|
|
48
|
+
// Rect / oval run-leg profile in inches (used when shape ≠ 'round').
|
|
49
|
+
width: z.number().min(4).max(60).default(14),
|
|
50
|
+
height: z.number().min(3).max(40).default(8),
|
|
51
|
+
// Tee / cross BRANCH cross-section: a round collar at `diameter2` or a
|
|
52
|
+
// rect / oval profile matching the duct drawn off the tap. When
|
|
53
|
+
// non-round, `diameter2` carries the branch's area-equivalent round
|
|
54
|
+
// size. A cross's two opposed branches share this one profile.
|
|
55
|
+
shape2: z.enum(['round', 'rect', 'oval']).default('rect'),
|
|
56
|
+
// Rect / oval branch profile in inches (used when shape2 ≠ 'round').
|
|
57
|
+
width2: z.number().min(4).max(60).default(14),
|
|
58
|
+
height2: z.number().min(3).max(40).default(8),
|
|
59
|
+
// Elbow turn angle in degrees. Residential sheet-metal elbows come in
|
|
60
|
+
// 90° and 45°; adjustable elbows cover the range between. 0° is a
|
|
61
|
+
// straight coupling — what an elbow flattens to when its run is dragged
|
|
62
|
+
// into line with the fixed collar.
|
|
63
|
+
angle: z.number().min(0).max(90).default(90),
|
|
64
|
+
// Tee branch angle in degrees, measured off the +X (outlet) axis: 90°
|
|
65
|
+
// is a square straight tee, <90° a lateral whose branch sweeps
|
|
66
|
+
// downstream toward the outlet (flow merges), >90° leans the branch
|
|
67
|
+
// upstream toward the inlet. Ignored by every other fitting type.
|
|
68
|
+
branchAngle: z.number().min(45).max(135).default(90),
|
|
69
|
+
// Main (run/inlet) nominal diameter in inches.
|
|
70
|
+
diameter: z.number().min(2).max(48).default(6),
|
|
71
|
+
// Secondary diameter in inches — tee branch collar, reducer outlet.
|
|
72
|
+
// Ignored by elbows.
|
|
73
|
+
diameter2: z.number().min(2).max(48).default(6),
|
|
74
|
+
ductMaterial: z.enum(['sheet-metal', 'flex', 'duct-board']).default('sheet-metal'),
|
|
75
|
+
system: z.enum(['supply', 'return']).default('supply'),
|
|
76
|
+
slots: z.record(z.string(), z.string()).optional(),
|
|
77
|
+
}).describe(dedent `
|
|
78
|
+
Duct fitting - elbow, tee, cross, reducer, or square-to-round transition between duct runs.
|
|
79
|
+
- position: [x, y, z] level-local meters
|
|
80
|
+
- rotation: [x, y, z] euler radians
|
|
81
|
+
- fittingType: elbow | tee | cross | reducer | transition (rect end -X, round end +X)
|
|
82
|
+
- shape: round | rect | oval run legs (matches the trunk; ignored by reducer / transition)
|
|
83
|
+
- width / height: rect / oval run-leg profile in inches (transition: the rect end)
|
|
84
|
+
- shape2: round | rect | oval tee / cross branch (matches the duct drawn off the tap)
|
|
85
|
+
- width2 / height2: rect / oval branch profile in inches
|
|
86
|
+
- angle: elbow turn in degrees (45 or 90 typical)
|
|
87
|
+
- branchAngle: tee branch angle off the outlet axis (90 straight tee, 45 downstream lateral, 135 upstream); cross branches are always square
|
|
88
|
+
- diameter: main nominal diameter in inches
|
|
89
|
+
- diameter2: tee / cross branch / reducer outlet / transition round-end diameter in inches
|
|
90
|
+
- ductMaterial: sheet-metal | flex | duct-board
|
|
91
|
+
- system: supply | return
|
|
92
|
+
`);
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Round duct segment — a polyline of 3D points connected by cylindrical
|
|
4
|
+
* duct sections. Forced-air HVAC supply/return runs in US residential.
|
|
5
|
+
*
|
|
6
|
+
* Phase 1 of the HVAC node system: just the geometry primitive. Fittings,
|
|
7
|
+
* terminals, equipment, and typed ports come in later slices.
|
|
8
|
+
*
|
|
9
|
+
* Path coordinates are level-local meters: [x, y, z] tuples. y is height
|
|
10
|
+
* above the level floor. A duct hung at ceiling height through three points
|
|
11
|
+
* is e.g. `[[0, 2.6, 0], [3, 2.6, 0], [3, 2.6, 4]]`.
|
|
12
|
+
*
|
|
13
|
+
* Diameters are nominal US round-duct sizes in inches; the geometry
|
|
14
|
+
* builder converts to meters for the cylinder radius.
|
|
15
|
+
*/
|
|
16
|
+
export declare const DuctSegmentNode: z.ZodObject<{
|
|
17
|
+
object: z.ZodDefault<z.ZodLiteral<"node">>;
|
|
18
|
+
name: z.ZodOptional<z.ZodString>;
|
|
19
|
+
parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
20
|
+
visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
21
|
+
camera: z.ZodOptional<z.ZodObject<{
|
|
22
|
+
position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
23
|
+
target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
24
|
+
mode: z.ZodDefault<z.ZodEnum<{
|
|
25
|
+
perspective: "perspective";
|
|
26
|
+
orthographic: "orthographic";
|
|
27
|
+
}>>;
|
|
28
|
+
fov: z.ZodOptional<z.ZodNumber>;
|
|
29
|
+
zoom: z.ZodOptional<z.ZodNumber>;
|
|
30
|
+
}, z.core.$strip>>;
|
|
31
|
+
metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
|
|
32
|
+
id: z.ZodDefault<z.ZodTemplateLiteral<`duct-segment_${string}`>>;
|
|
33
|
+
type: z.ZodDefault<z.ZodLiteral<"duct-segment">>;
|
|
34
|
+
path: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
35
|
+
shape: z.ZodDefault<z.ZodEnum<{
|
|
36
|
+
round: "round";
|
|
37
|
+
rect: "rect";
|
|
38
|
+
oval: "oval";
|
|
39
|
+
}>>;
|
|
40
|
+
diameter: z.ZodDefault<z.ZodNumber>;
|
|
41
|
+
width: z.ZodDefault<z.ZodNumber>;
|
|
42
|
+
height: z.ZodDefault<z.ZodNumber>;
|
|
43
|
+
roll: z.ZodDefault<z.ZodNumber>;
|
|
44
|
+
ductMaterial: z.ZodDefault<z.ZodEnum<{
|
|
45
|
+
spiral: "spiral";
|
|
46
|
+
"sheet-metal": "sheet-metal";
|
|
47
|
+
flex: "flex";
|
|
48
|
+
"duct-board": "duct-board";
|
|
49
|
+
}>>;
|
|
50
|
+
seamDetail: z.ZodDefault<z.ZodBoolean>;
|
|
51
|
+
insulated: z.ZodDefault<z.ZodBoolean>;
|
|
52
|
+
insulationR: z.ZodDefault<z.ZodNumber>;
|
|
53
|
+
system: z.ZodDefault<z.ZodEnum<{
|
|
54
|
+
supply: "supply";
|
|
55
|
+
return: "return";
|
|
56
|
+
}>>;
|
|
57
|
+
slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
58
|
+
}, z.core.$strip>;
|
|
59
|
+
export type DuctSegmentNode = z.infer<typeof DuctSegmentNode>;
|
|
60
|
+
export type DuctSegmentNodeId = DuctSegmentNode['id'];
|
|
61
|
+
//# sourceMappingURL=duct-segment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"duct-segment.d.ts","sourceRoot":"","sources":["../../../src/schema/nodes/duct-segment.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAyD3B,CAAA;AACD,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AAC7D,MAAM,MAAM,iBAAiB,GAAG,eAAe,CAAC,IAAI,CAAC,CAAA"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import dedent from 'dedent';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { BaseNode, nodeType, objectId } from '../base';
|
|
4
|
+
/**
|
|
5
|
+
* Round duct segment — a polyline of 3D points connected by cylindrical
|
|
6
|
+
* duct sections. Forced-air HVAC supply/return runs in US residential.
|
|
7
|
+
*
|
|
8
|
+
* Phase 1 of the HVAC node system: just the geometry primitive. Fittings,
|
|
9
|
+
* terminals, equipment, and typed ports come in later slices.
|
|
10
|
+
*
|
|
11
|
+
* Path coordinates are level-local meters: [x, y, z] tuples. y is height
|
|
12
|
+
* above the level floor. A duct hung at ceiling height through three points
|
|
13
|
+
* is e.g. `[[0, 2.6, 0], [3, 2.6, 0], [3, 2.6, 4]]`.
|
|
14
|
+
*
|
|
15
|
+
* Diameters are nominal US round-duct sizes in inches; the geometry
|
|
16
|
+
* builder converts to meters for the cylinder radius.
|
|
17
|
+
*/
|
|
18
|
+
export const DuctSegmentNode = BaseNode.extend({
|
|
19
|
+
id: objectId('duct-segment'),
|
|
20
|
+
type: nodeType('duct-segment'),
|
|
21
|
+
// Polyline path in level-local meters. Minimum two points (start, end).
|
|
22
|
+
path: z.array(z.tuple([z.number(), z.number(), z.number()])).min(2),
|
|
23
|
+
// Cross-section. Round is the branch default; rect is the trunk /
|
|
24
|
+
// plenum profile (real US systems: rect trunk, round branches); oval
|
|
25
|
+
// is the flat-oval profile (two semicircles of the duct height joined
|
|
26
|
+
// by flat sides) used where round won't fit a joist bay.
|
|
27
|
+
shape: z.enum(['round', 'rect', 'oval']).default('round'),
|
|
28
|
+
// Nominal inner diameter in inches (round shape). Common residential
|
|
29
|
+
// sizes 4"–14"; we accept any positive number so the inspector slider
|
|
30
|
+
// stays ergonomic and larger commercial sizes load without a schema bump.
|
|
31
|
+
diameter: z.number().min(2).max(48).default(6),
|
|
32
|
+
// Rect / oval cross-section in inches: width is the horizontal face,
|
|
33
|
+
// height the vertical. Typical residential trunks 12×8 – 24×10. For
|
|
34
|
+
// oval, height is also the end-cap semicircle diameter (width ≥ height).
|
|
35
|
+
width: z.number().min(4).max(60).default(14),
|
|
36
|
+
height: z.number().min(3).max(40).default(8),
|
|
37
|
+
// Cross-section roll (radians) about the run direction. 0 = width
|
|
38
|
+
// horizontal / height vertical (the natural orientation the geometry
|
|
39
|
+
// derives from direction). Non-zero only on a rect riser turned out of
|
|
40
|
+
// the horizontal plane, so its profile stays continuous through the
|
|
41
|
+
// elbow it left instead of snapping to the world-axis fallback.
|
|
42
|
+
roll: z.number().default(0),
|
|
43
|
+
// Construction material. Spiral is round rigid sheet metal with the
|
|
44
|
+
// helical lock seam drawn on the body (round shape only — rect / oval
|
|
45
|
+
// runs render it as plain sheet metal).
|
|
46
|
+
ductMaterial: z.enum(['sheet-metal', 'spiral', 'flex', 'duct-board']).default('flex'),
|
|
47
|
+
// Whether to draw the construction body detail (spiral lock seam /
|
|
48
|
+
// flex wire corrugation) on round runs. Off renders a smooth body —
|
|
49
|
+
// lighter on the eyes and the GPU in dense scenes.
|
|
50
|
+
seamDetail: z.boolean().default(false),
|
|
51
|
+
// Whether the run wears its external insulation wrap (drawn as a
|
|
52
|
+
// translucent shell). Off by default — bare duct.
|
|
53
|
+
insulated: z.boolean().default(false),
|
|
54
|
+
// External insulation R-value (used when insulated). Common flex-duct
|
|
55
|
+
// values are R-4.2, R-6, R-8.
|
|
56
|
+
insulationR: z.number().min(0).max(12).default(0.5),
|
|
57
|
+
// Which side of the air loop this segment belongs to. Drives visual tint
|
|
58
|
+
// and (in later slices) System graph membership.
|
|
59
|
+
system: z.enum(['supply', 'return']).default('supply'),
|
|
60
|
+
slots: z.record(z.string(), z.string()).optional(),
|
|
61
|
+
}).describe(dedent `
|
|
62
|
+
Duct segment - polyline of 3D points connected by duct sections.
|
|
63
|
+
- path: list of [x, y, z] points in level-local meters (min 2)
|
|
64
|
+
- shape: round (branches) | rect (trunks / plenums) | oval (flat-oval, tight joist bays)
|
|
65
|
+
- diameter: nominal inner diameter in inches for round (typ. 4-14 residential)
|
|
66
|
+
- width / height: rect / oval cross-section in inches (typ. 12x8 - 24x10 trunks)
|
|
67
|
+
- roll: cross-section roll in radians (0 = upright; set on risers to stay continuous through their elbow)
|
|
68
|
+
- ductMaterial: sheet-metal | spiral (round rigid, helical seam) | flex | duct-board
|
|
69
|
+
- seamDetail: draw the spiral seam / flex corrugation on round runs (default off)
|
|
70
|
+
- insulated: whether the run wears its external insulation wrap (default off)
|
|
71
|
+
- insulationR: external insulation R-value when insulated (4, 6, 8 typical)
|
|
72
|
+
- system: supply | return (drives visual tint)
|
|
73
|
+
`);
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Duct terminal — where the air loop meets the room: supply registers,
|
|
4
|
+
* ceiling diffusers, return grilles.
|
|
5
|
+
*
|
|
6
|
+
* Phase 3 of the HVAC node system. Each terminal exposes a single typed
|
|
7
|
+
* port at its collar (behind/above/below the face depending on mount),
|
|
8
|
+
* so duct runs end onto it like any other port.
|
|
9
|
+
*
|
|
10
|
+
* `position` is the center of the visible face in level-local meters —
|
|
11
|
+
* floor registers at y≈0, ceiling diffusers at ceiling height, wall
|
|
12
|
+
* registers at their height on the wall. `rotation` is yaw radians.
|
|
13
|
+
*/
|
|
14
|
+
export declare const DuctTerminalNode: z.ZodObject<{
|
|
15
|
+
object: z.ZodDefault<z.ZodLiteral<"node">>;
|
|
16
|
+
name: z.ZodOptional<z.ZodString>;
|
|
17
|
+
parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
18
|
+
visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
19
|
+
camera: z.ZodOptional<z.ZodObject<{
|
|
20
|
+
position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
21
|
+
target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
22
|
+
mode: z.ZodDefault<z.ZodEnum<{
|
|
23
|
+
perspective: "perspective";
|
|
24
|
+
orthographic: "orthographic";
|
|
25
|
+
}>>;
|
|
26
|
+
fov: z.ZodOptional<z.ZodNumber>;
|
|
27
|
+
zoom: z.ZodOptional<z.ZodNumber>;
|
|
28
|
+
}, z.core.$strip>>;
|
|
29
|
+
metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
|
|
30
|
+
id: z.ZodDefault<z.ZodTemplateLiteral<`duct-terminal_${string}`>>;
|
|
31
|
+
type: z.ZodDefault<z.ZodLiteral<"duct-terminal">>;
|
|
32
|
+
position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
33
|
+
rotation: z.ZodDefault<z.ZodNumber>;
|
|
34
|
+
terminalType: z.ZodDefault<z.ZodEnum<{
|
|
35
|
+
"supply-register": "supply-register";
|
|
36
|
+
diffuser: "diffuser";
|
|
37
|
+
"return-grille": "return-grille";
|
|
38
|
+
}>>;
|
|
39
|
+
mount: z.ZodDefault<z.ZodEnum<{
|
|
40
|
+
wall: "wall";
|
|
41
|
+
ceiling: "ceiling";
|
|
42
|
+
floor: "floor";
|
|
43
|
+
}>>;
|
|
44
|
+
width: z.ZodDefault<z.ZodNumber>;
|
|
45
|
+
depth: z.ZodDefault<z.ZodNumber>;
|
|
46
|
+
collarShape: z.ZodDefault<z.ZodEnum<{
|
|
47
|
+
round: "round";
|
|
48
|
+
rect: "rect";
|
|
49
|
+
oval: "oval";
|
|
50
|
+
}>>;
|
|
51
|
+
collarDiameter: z.ZodDefault<z.ZodNumber>;
|
|
52
|
+
collarWidth: z.ZodDefault<z.ZodNumber>;
|
|
53
|
+
collarHeight: z.ZodDefault<z.ZodNumber>;
|
|
54
|
+
}, z.core.$strip>;
|
|
55
|
+
export type DuctTerminalNode = z.infer<typeof DuctTerminalNode>;
|
|
56
|
+
export type DuctTerminalNodeId = DuctTerminalNode['id'];
|
|
57
|
+
//# sourceMappingURL=duct-terminal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"duct-terminal.d.ts","sourceRoot":"","sources":["../../../src/schema/nodes/duct-terminal.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAqC5B,CAAA;AACD,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAC/D,MAAM,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import dedent from 'dedent';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { BaseNode, nodeType, objectId } from '../base';
|
|
4
|
+
/**
|
|
5
|
+
* Duct terminal — where the air loop meets the room: supply registers,
|
|
6
|
+
* ceiling diffusers, return grilles.
|
|
7
|
+
*
|
|
8
|
+
* Phase 3 of the HVAC node system. Each terminal exposes a single typed
|
|
9
|
+
* port at its collar (behind/above/below the face depending on mount),
|
|
10
|
+
* so duct runs end onto it like any other port.
|
|
11
|
+
*
|
|
12
|
+
* `position` is the center of the visible face in level-local meters —
|
|
13
|
+
* floor registers at y≈0, ceiling diffusers at ceiling height, wall
|
|
14
|
+
* registers at their height on the wall. `rotation` is yaw radians.
|
|
15
|
+
*/
|
|
16
|
+
export const DuctTerminalNode = BaseNode.extend({
|
|
17
|
+
id: objectId('duct-terminal'),
|
|
18
|
+
type: nodeType('duct-terminal'),
|
|
19
|
+
// Level-local meters — center of the face.
|
|
20
|
+
position: z.tuple([z.number(), z.number(), z.number()]).default([0, 0, 0]),
|
|
21
|
+
// Yaw in radians.
|
|
22
|
+
rotation: z.number().default(0),
|
|
23
|
+
terminalType: z.enum(['supply-register', 'diffuser', 'return-grille']).default('supply-register'),
|
|
24
|
+
// Which surface the terminal mounts on. Drives face orientation and
|
|
25
|
+
// which way the collar (and its port) points.
|
|
26
|
+
mount: z.enum(['floor', 'ceiling', 'wall']).default('floor'),
|
|
27
|
+
// Face dimensions in meters. Typical floor register ~0.30 × 0.15;
|
|
28
|
+
// ceiling diffusers are square (0.6 × 0.6); return grilles run large.
|
|
29
|
+
width: z.number().min(0.1).max(1.5).default(0.3),
|
|
30
|
+
depth: z.number().min(0.05).max(1.5).default(0.15),
|
|
31
|
+
// Collar cross-section on the duct side. Round is the default; rect and
|
|
32
|
+
// oval (flat-oval) match the duct shapes a run might end with.
|
|
33
|
+
collarShape: z.enum(['round', 'rect', 'oval']).default('round'),
|
|
34
|
+
// Round collar diameter in inches on the duct side.
|
|
35
|
+
collarDiameter: z.number().min(4).max(20).default(6),
|
|
36
|
+
// Rect / oval collar cross-section in inches: width is the horizontal
|
|
37
|
+
// face, height the vertical. For oval, height is also the end-cap
|
|
38
|
+
// semicircle diameter (width ≥ height).
|
|
39
|
+
collarWidth: z.number().min(4).max(20).default(10),
|
|
40
|
+
collarHeight: z.number().min(3).max(20).default(6),
|
|
41
|
+
}).describe(dedent `
|
|
42
|
+
Duct terminal - supply register, ceiling diffuser, or return grille.
|
|
43
|
+
- position: [x, y, z] level-local meters, center of the face
|
|
44
|
+
- rotation: yaw radians
|
|
45
|
+
- terminalType: supply-register | diffuser | return-grille (grille = return side)
|
|
46
|
+
- mount: floor | ceiling | wall - face orientation + collar direction
|
|
47
|
+
- width / depth: face size in meters
|
|
48
|
+
- collarShape: round | rect | oval - duct-side collar cross-section
|
|
49
|
+
- collarDiameter: round collar diameter in inches
|
|
50
|
+
- collarWidth / collarHeight: rect / oval collar cross-section in inches
|
|
51
|
+
`);
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const ElevatorDoorStyle: z.ZodEnum<{
|
|
3
|
+
"center-opening": "center-opening";
|
|
4
|
+
"single-left": "single-left";
|
|
5
|
+
"single-right": "single-right";
|
|
6
|
+
}>;
|
|
7
|
+
export declare const ElevatorDoorPanelStyle: z.ZodEnum<{
|
|
8
|
+
"glass-frame": "glass-frame";
|
|
9
|
+
"solid-panel": "solid-panel";
|
|
10
|
+
"segmented-panel": "segmented-panel";
|
|
11
|
+
}>;
|
|
12
|
+
export declare const ElevatorShaftStyle: z.ZodEnum<{
|
|
13
|
+
glass: "glass";
|
|
14
|
+
solid: "solid";
|
|
15
|
+
}>;
|
|
16
|
+
export type ElevatorDoorPanelStyle = z.infer<typeof ElevatorDoorPanelStyle>;
|
|
17
|
+
export type ElevatorDoorStyle = z.infer<typeof ElevatorDoorStyle>;
|
|
18
|
+
export type ElevatorShaftStyle = z.infer<typeof ElevatorShaftStyle>;
|
|
19
|
+
export declare const ElevatorNode: z.ZodObject<{
|
|
20
|
+
object: z.ZodDefault<z.ZodLiteral<"node">>;
|
|
21
|
+
name: z.ZodOptional<z.ZodString>;
|
|
22
|
+
parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
23
|
+
visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
24
|
+
camera: z.ZodOptional<z.ZodObject<{
|
|
25
|
+
position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
26
|
+
target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
27
|
+
mode: z.ZodDefault<z.ZodEnum<{
|
|
28
|
+
perspective: "perspective";
|
|
29
|
+
orthographic: "orthographic";
|
|
30
|
+
}>>;
|
|
31
|
+
fov: z.ZodOptional<z.ZodNumber>;
|
|
32
|
+
zoom: z.ZodOptional<z.ZodNumber>;
|
|
33
|
+
}, z.core.$strip>>;
|
|
34
|
+
metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
|
|
35
|
+
id: z.ZodDefault<z.ZodTemplateLiteral<`elevator_${string}`>>;
|
|
36
|
+
type: z.ZodDefault<z.ZodLiteral<"elevator">>;
|
|
37
|
+
material: z.ZodOptional<z.ZodObject<{
|
|
38
|
+
id: z.ZodOptional<z.ZodString>;
|
|
39
|
+
preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
|
|
40
|
+
custom: "custom";
|
|
41
|
+
white: "white";
|
|
42
|
+
brick: "brick";
|
|
43
|
+
concrete: "concrete";
|
|
44
|
+
wood: "wood";
|
|
45
|
+
glass: "glass";
|
|
46
|
+
metal: "metal";
|
|
47
|
+
plaster: "plaster";
|
|
48
|
+
tile: "tile";
|
|
49
|
+
marble: "marble";
|
|
50
|
+
}>>>;
|
|
51
|
+
properties: z.ZodOptional<z.ZodObject<{
|
|
52
|
+
color: z.ZodDefault<z.ZodString>;
|
|
53
|
+
roughness: z.ZodDefault<z.ZodNumber>;
|
|
54
|
+
metalness: z.ZodDefault<z.ZodNumber>;
|
|
55
|
+
opacity: z.ZodDefault<z.ZodNumber>;
|
|
56
|
+
transparent: z.ZodDefault<z.ZodBoolean>;
|
|
57
|
+
side: z.ZodDefault<z.ZodEnum<{
|
|
58
|
+
front: "front";
|
|
59
|
+
back: "back";
|
|
60
|
+
double: "double";
|
|
61
|
+
}>>;
|
|
62
|
+
}, z.core.$strip>>;
|
|
63
|
+
texture: z.ZodOptional<z.ZodObject<{
|
|
64
|
+
url: z.ZodString;
|
|
65
|
+
repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
|
|
66
|
+
scale: z.ZodOptional<z.ZodNumber>;
|
|
67
|
+
}, z.core.$strip>>;
|
|
68
|
+
}, z.core.$strip>>;
|
|
69
|
+
materialPreset: z.ZodOptional<z.ZodString>;
|
|
70
|
+
slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
71
|
+
position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
72
|
+
rotation: z.ZodDefault<z.ZodNumber>;
|
|
73
|
+
width: z.ZodDefault<z.ZodNumber>;
|
|
74
|
+
depth: z.ZodDefault<z.ZodNumber>;
|
|
75
|
+
shaftWidth: z.ZodOptional<z.ZodNumber>;
|
|
76
|
+
shaftDepth: z.ZodOptional<z.ZodNumber>;
|
|
77
|
+
shaftWallThickness: z.ZodDefault<z.ZodNumber>;
|
|
78
|
+
shaftStyle: z.ZodDefault<z.ZodEnum<{
|
|
79
|
+
glass: "glass";
|
|
80
|
+
solid: "solid";
|
|
81
|
+
}>>;
|
|
82
|
+
cabHeight: z.ZodDefault<z.ZodNumber>;
|
|
83
|
+
doorWidth: z.ZodDefault<z.ZodNumber>;
|
|
84
|
+
doorHeight: z.ZodDefault<z.ZodNumber>;
|
|
85
|
+
doorStyle: z.ZodDefault<z.ZodEnum<{
|
|
86
|
+
"center-opening": "center-opening";
|
|
87
|
+
"single-left": "single-left";
|
|
88
|
+
"single-right": "single-right";
|
|
89
|
+
}>>;
|
|
90
|
+
doorPanelStyle: z.ZodDefault<z.ZodEnum<{
|
|
91
|
+
"glass-frame": "glass-frame";
|
|
92
|
+
"solid-panel": "solid-panel";
|
|
93
|
+
"segmented-panel": "segmented-panel";
|
|
94
|
+
}>>;
|
|
95
|
+
fromLevelId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
96
|
+
toLevelId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
97
|
+
servedLevelIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
98
|
+
disabledLevelIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
99
|
+
serviceOnlyLevelIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
100
|
+
defaultLevelId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
101
|
+
speed: z.ZodDefault<z.ZodNumber>;
|
|
102
|
+
doorDurationMs: z.ZodDefault<z.ZodNumber>;
|
|
103
|
+
dwellMs: z.ZodDefault<z.ZodNumber>;
|
|
104
|
+
}, z.core.$strip>;
|
|
105
|
+
export type ElevatorNode = z.infer<typeof ElevatorNode>;
|
|
106
|
+
//# sourceMappingURL=elevator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"elevator.d.ts","sourceRoot":"","sources":["../../../src/schema/nodes/elevator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,eAAO,MAAM,iBAAiB;;;;EAA4D,CAAA;AAC1F,eAAO,MAAM,sBAAsB;;;;EAA4D,CAAA;AAC/F,eAAO,MAAM,kBAAkB;;;EAA6B,CAAA;AAE5D,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAC3E,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AACjE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAEnE,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAmDxB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAA"}
|