@pascal-app/core 0.9.1 → 1.0.0-beta.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/README.md +17 -10
- package/dist/events/bus.d.ts +49 -2
- 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 +8 -1
- package/dist/hooks/scene-registry/scene-registry.d.ts.map +1 -1
- package/dist/hooks/scene-registry/scene-registry.js +27 -1
- package/dist/hooks/spatial-grid/floor-placed-elevation.d.ts +17 -1
- package/dist/hooks/spatial-grid/floor-placed-elevation.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/floor-placed-elevation.js +61 -8
- package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts +135 -28
- package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/spatial-grid-manager.js +427 -271
- package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts +46 -1
- package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/spatial-grid-sync.js +208 -9
- package/dist/hooks/spatial-grid/support-host-id.d.ts +3 -0
- package/dist/hooks/spatial-grid/support-host-id.d.ts.map +1 -0
- package/dist/hooks/spatial-grid/support-host-id.js +2 -0
- package/dist/hooks/spatial-grid/support-host-patch.d.ts +51 -0
- package/dist/hooks/spatial-grid/support-host-patch.d.ts.map +1 -0
- package/dist/hooks/spatial-grid/support-host-patch.js +164 -0
- package/dist/index.d.ts +33 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +32 -10
- 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 +23 -0
- package/dist/lib/measurement-geometry.d.ts.map +1 -0
- package/dist/lib/measurement-geometry.js +249 -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/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 +557 -31
- 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.d.ts +40 -6
- package/dist/lib/space-detection.d.ts.map +1 -1
- package/dist/lib/space-detection.js +574 -192
- package/dist/lib/terrain-brush.d.ts +163 -0
- package/dist/lib/terrain-brush.d.ts.map +1 -0
- package/dist/lib/terrain-brush.js +359 -0
- package/dist/lib/terrain-codec.d.ts +51 -0
- package/dist/lib/terrain-codec.d.ts.map +1 -0
- package/dist/lib/terrain-codec.js +167 -0
- package/dist/lib/terrain-field.d.ts +150 -0
- package/dist/lib/terrain-field.d.ts.map +1 -0
- package/dist/lib/terrain-field.js +248 -0
- package/dist/lib/terrain-raycast.d.ts +44 -0
- package/dist/lib/terrain-raycast.d.ts.map +1 -0
- package/dist/lib/terrain-raycast.js +188 -0
- package/dist/lib/terrain-source.d.ts +60 -0
- package/dist/lib/terrain-source.d.ts.map +1 -0
- package/dist/lib/terrain-source.js +90 -0
- package/dist/lib/terrain-support.d.ts +60 -0
- package/dist/lib/terrain-support.d.ts.map +1 -0
- package/dist/lib/terrain-support.js +150 -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 +428 -0
- package/dist/material-library.d.ts +28 -1
- package/dist/material-library.d.ts.map +1 -1
- package/dist/material-library.js +2233 -441
- package/dist/registry/handles.d.ts +91 -3
- package/dist/registry/handles.d.ts.map +1 -1
- package/dist/registry/index.d.ts +3 -3
- package/dist/registry/index.d.ts.map +1 -1
- package/dist/registry/index.js +1 -1
- package/dist/registry/registry.d.ts +46 -3
- package/dist/registry/registry.d.ts.map +1 -1
- package/dist/registry/registry.js +82 -1
- package/dist/registry/subtree.d.ts.map +1 -1
- package/dist/registry/subtree.js +8 -1
- package/dist/registry/types.d.ts +781 -39
- package/dist/registry/types.d.ts.map +1 -1
- package/dist/schema/index.d.ts +27 -8
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/index.js +23 -6
- package/dist/schema/material.d.ts +3 -2
- package/dist/schema/material.d.ts.map +1 -1
- package/dist/schema/material.js +7 -5
- package/dist/schema/nodes/box-vent.d.ts +2 -2
- package/dist/schema/nodes/cabinet.d.ts +536 -0
- package/dist/schema/nodes/cabinet.d.ts.map +1 -0
- package/dist/schema/nodes/cabinet.js +139 -0
- package/dist/schema/nodes/ceiling.d.ts +4 -3
- package/dist/schema/nodes/ceiling.d.ts.map +1 -1
- package/dist/schema/nodes/ceiling.js +11 -1
- package/dist/schema/nodes/chimney.d.ts +4 -4
- package/dist/schema/nodes/column.d.ts +4 -2
- package/dist/schema/nodes/column.d.ts.map +1 -1
- package/dist/schema/nodes/column.js +5 -0
- package/dist/schema/nodes/construction-dimension.d.ts +195 -0
- package/dist/schema/nodes/construction-dimension.d.ts.map +1 -0
- package/dist/schema/nodes/construction-dimension.js +151 -0
- package/dist/schema/nodes/cupola.d.ts +2 -2
- package/dist/schema/nodes/door.d.ts +42 -5
- package/dist/schema/nodes/door.d.ts.map +1 -1
- package/dist/schema/nodes/door.js +32 -0
- package/dist/schema/nodes/dormer.d.ts +8 -8
- package/dist/schema/nodes/dormer.js +1 -1
- package/dist/schema/nodes/downspout.d.ts +2 -2
- 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 +58 -0
- package/dist/schema/nodes/duct-terminal.d.ts.map +1 -0
- package/dist/schema/nodes/duct-terminal.js +53 -0
- package/dist/schema/nodes/elevator.d.ts +3 -2
- package/dist/schema/nodes/elevator.d.ts.map +1 -1
- package/dist/schema/nodes/elevator.js +3 -0
- package/dist/schema/nodes/eyebrow-vent.d.ts +2 -2
- package/dist/schema/nodes/fence.d.ts +20 -2
- package/dist/schema/nodes/fence.d.ts.map +1 -1
- package/dist/schema/nodes/fence.js +33 -2
- package/dist/schema/nodes/gutter.d.ts +2 -2
- package/dist/schema/nodes/hvac-equipment.d.ts +64 -0
- package/dist/schema/nodes/hvac-equipment.d.ts.map +1 -0
- package/dist/schema/nodes/hvac-equipment.js +57 -0
- package/dist/schema/nodes/item.d.ts +9 -0
- package/dist/schema/nodes/item.d.ts.map +1 -1
- package/dist/schema/nodes/item.js +24 -0
- package/dist/schema/nodes/level.d.ts +2 -1
- package/dist/schema/nodes/level.d.ts.map +1 -1
- package/dist/schema/nodes/level.js +12 -31
- 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/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.d.ts +18 -3
- package/dist/schema/nodes/ridge-vent.d.ts.map +1 -1
- package/dist/schema/nodes/ridge-vent.js +221 -3
- 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-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.d.ts +84 -8
- package/dist/schema/nodes/roof-segment.d.ts.map +1 -1
- package/dist/schema/nodes/roof-segment.js +290 -5
- package/dist/schema/nodes/roof.d.ts +8 -8
- package/dist/schema/nodes/shelf.d.ts +4 -2
- package/dist/schema/nodes/shelf.d.ts.map +1 -1
- package/dist/schema/nodes/shelf.js +8 -0
- package/dist/schema/nodes/site.d.ts +9 -0
- package/dist/schema/nodes/site.d.ts.map +1 -1
- package/dist/schema/nodes/site.js +8 -6
- package/dist/schema/nodes/skylight.d.ts +10 -10
- package/dist/schema/nodes/slab.d.ts +8 -2
- package/dist/schema/nodes/slab.d.ts.map +1 -1
- package/dist/schema/nodes/slab.js +18 -2
- package/dist/schema/nodes/solar-panel.d.ts +4 -4
- package/dist/schema/nodes/spawn.d.ts +1 -0
- package/dist/schema/nodes/spawn.d.ts.map +1 -1
- package/dist/schema/nodes/spawn.js +2 -0
- package/dist/schema/nodes/stair-segment.d.ts +4 -4
- package/dist/schema/nodes/stair.d.ts +16 -13
- package/dist/schema/nodes/stair.d.ts.map +1 -1
- package/dist/schema/nodes/stair.js +11 -1
- package/dist/schema/nodes/structural-grid.d.ts +27 -0
- package/dist/schema/nodes/structural-grid.d.ts.map +1 -0
- package/dist/schema/nodes/structural-grid.js +17 -0
- package/dist/schema/nodes/turbine-vent.d.ts +2 -2
- package/dist/schema/nodes/wall.d.ts +248 -6
- package/dist/schema/nodes/wall.d.ts.map +1 -1
- package/dist/schema/nodes/wall.js +266 -0
- package/dist/schema/nodes/window.d.ts +40 -3
- package/dist/schema/nodes/window.d.ts.map +1 -1
- package/dist/schema/nodes/window.js +30 -0
- package/dist/schema/nodes/zone.d.ts +22 -0
- package/dist/schema/nodes/zone.d.ts.map +1 -1
- package/dist/schema/nodes/zone.js +21 -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/terrain.d.ts +28 -0
- package/dist/schema/terrain.d.ts.map +1 -0
- package/dist/schema/terrain.js +30 -0
- package/dist/schema/types.d.ts +1300 -97
- package/dist/schema/types.d.ts.map +1 -1
- package/dist/schema/types.js +27 -0
- package/dist/services/__fixtures__/wall-plane-top-boundary-repro.d.ts +80 -0
- package/dist/services/__fixtures__/wall-plane-top-boundary-repro.d.ts.map +1 -0
- package/dist/services/__fixtures__/wall-plane-top-boundary-repro.js +89 -0
- package/dist/services/alignment-anchors.d.ts.map +1 -1
- package/dist/services/alignment-anchors.js +30 -1
- package/dist/services/alignment.d.ts +5 -0
- package/dist/services/alignment.d.ts.map +1 -1
- package/dist/services/alignment.js +2 -0
- package/dist/services/hosting.d.ts +8 -0
- package/dist/services/hosting.d.ts.map +1 -1
- package/dist/services/hosting.js +13 -4
- package/dist/services/index.d.ts +9 -2
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +9 -2
- package/dist/services/level-height.d.ts +27 -0
- package/dist/services/level-height.d.ts.map +1 -0
- package/dist/services/level-height.js +94 -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/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/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/snap.d.ts +9 -1
- package/dist/services/snap.d.ts.map +1 -1
- package/dist/services/snap.js +21 -1
- package/dist/services/storey.d.ts +103 -0
- package/dist/services/storey.d.ts.map +1 -0
- package/dist/services/storey.js +296 -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/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/store/actions/node-actions.d.ts.map +1 -1
- package/dist/store/actions/node-actions.js +141 -4
- package/dist/store/history-control.d.ts +31 -0
- package/dist/store/history-control.d.ts.map +1 -1
- package/dist/store/history-control.js +130 -0
- package/dist/store/use-live-terrain.d.ts +65 -0
- package/dist/store/use-live-terrain.d.ts.map +1 -0
- package/dist/store/use-live-terrain.js +31 -0
- package/dist/store/use-live-transforms.d.ts +8 -0
- package/dist/store/use-live-transforms.d.ts.map +1 -1
- package/dist/store/use-scene.d.ts +47 -3
- package/dist/store/use-scene.d.ts.map +1 -1
- package/dist/store/use-scene.js +992 -55
- package/dist/systems/elevator/elevator-opening-system.d.ts +1 -0
- package/dist/systems/elevator/elevator-opening-system.d.ts.map +1 -1
- package/dist/systems/elevator/elevator-opening-system.js +27 -21
- package/dist/systems/elevator/elevator-service.d.ts +0 -2
- package/dist/systems/elevator/elevator-service.d.ts.map +1 -1
- package/dist/systems/elevator/elevator-service.js +2 -24
- 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/slab/slab-placement.d.ts +11 -0
- package/dist/systems/slab/slab-placement.d.ts.map +1 -0
- package/dist/systems/slab/slab-placement.js +14 -0
- package/dist/systems/slab/slab-support.d.ts +137 -0
- package/dist/systems/slab/slab-support.d.ts.map +1 -0
- package/dist/systems/slab/slab-support.js +557 -0
- package/dist/systems/stair/stair-footprint.d.ts.map +1 -1
- package/dist/systems/stair/stair-footprint.js +21 -11
- package/dist/systems/stair/stair-opening-preview.d.ts +1300 -505
- package/dist/systems/stair/stair-opening-preview.d.ts.map +1 -1
- package/dist/systems/stair/stair-opening-sync.d.ts.map +1 -1
- package/dist/systems/stair/stair-opening-sync.js +19 -33
- package/dist/systems/stair/stair-opening-system.d.ts.map +1 -1
- package/dist/systems/stair/stair-opening-system.js +32 -4
- package/dist/systems/stair/stair-rise.d.ts +22 -0
- package/dist/systems/stair/stair-rise.d.ts.map +1 -0
- package/dist/systems/stair/stair-rise.js +79 -0
- package/dist/systems/wall/wall-curve.d.ts +10 -0
- package/dist/systems/wall/wall-curve.d.ts.map +1 -1
- package/dist/systems/wall/wall-curve.js +1 -1
- package/dist/systems/wall/wall-mitering.d.ts.map +1 -1
- package/dist/systems/wall/wall-mitering.js +44 -8
- package/dist/systems/wall/wall-top.d.ts +40 -0
- package/dist/systems/wall/wall-top.d.ts.map +1 -0
- package/dist/systems/wall/wall-top.js +46 -0
- package/dist/utils/clone-scene-graph.d.ts +1 -0
- package/dist/utils/clone-scene-graph.d.ts.map +1 -1
- package/dist/utils/clone-scene-graph.js +56 -5
- 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 +106 -0
- package/dist/validation/validate-build-json.d.ts +3 -0
- package/dist/validation/validate-build-json.d.ts.map +1 -1
- package/dist/validation/validate-build-json.js +90 -5
- package/package.json +4 -4
- package/dist/hooks/spatial-grid/floor-placed-elevation.test.d.ts +0 -2
- package/dist/hooks/spatial-grid/floor-placed-elevation.test.d.ts.map +0 -1
- package/dist/hooks/spatial-grid/floor-placed-elevation.test.js +0 -273
- package/dist/lib/space-detection-pause.test.d.ts +0 -2
- package/dist/lib/space-detection-pause.test.d.ts.map +0 -1
- package/dist/lib/space-detection-pause.test.js +0 -42
- package/dist/lib/space-detection.test.d.ts +0 -2
- package/dist/lib/space-detection.test.d.ts.map +0 -1
- package/dist/lib/space-detection.test.js +0 -77
- package/dist/registry/registry.test.d.ts +0 -2
- package/dist/registry/registry.test.d.ts.map +0 -1
- package/dist/registry/registry.test.js +0 -183
- package/dist/registry/relations-resolver.test.d.ts +0 -2
- package/dist/registry/relations-resolver.test.d.ts.map +0 -1
- package/dist/registry/relations-resolver.test.js +0 -183
- package/dist/registry/scene-api.test.d.ts +0 -2
- package/dist/registry/scene-api.test.d.ts.map +0 -1
- package/dist/registry/scene-api.test.js +0 -183
- package/dist/registry/subtree.test.d.ts +0 -2
- package/dist/registry/subtree.test.d.ts.map +0 -1
- package/dist/registry/subtree.test.js +0 -133
- package/dist/schema/asset-url.test.d.ts +0 -2
- package/dist/schema/asset-url.test.d.ts.map +0 -1
- package/dist/schema/asset-url.test.js +0 -134
- package/dist/services/alignment-anchors.test.d.ts +0 -2
- package/dist/services/alignment-anchors.test.d.ts.map +0 -1
- package/dist/services/alignment-anchors.test.js +0 -383
- package/dist/services/alignment.test.d.ts +0 -2
- package/dist/services/alignment.test.d.ts.map +0 -1
- package/dist/services/alignment.test.js +0 -92
- package/dist/services/drag-session.test.d.ts +0 -2
- package/dist/services/drag-session.test.d.ts.map +0 -1
- package/dist/services/drag-session.test.js +0 -219
- package/dist/services/hosting.test.d.ts +0 -2
- package/dist/services/hosting.test.d.ts.map +0 -1
- package/dist/services/hosting.test.js +0 -199
- package/dist/services/movement.test.d.ts +0 -2
- package/dist/services/movement.test.d.ts.map +0 -1
- package/dist/services/movement.test.js +0 -133
- package/dist/services/single-undo-dance.test.d.ts +0 -2
- package/dist/services/single-undo-dance.test.d.ts.map +0 -1
- package/dist/services/single-undo-dance.test.js +0 -210
- package/dist/services/snap.test.d.ts +0 -2
- package/dist/services/snap.test.d.ts.map +0 -1
- package/dist/services/snap.test.js +0 -95
- package/dist/store/actions/node-mutation-sanitize.test.d.ts +0 -2
- package/dist/store/actions/node-mutation-sanitize.test.d.ts.map +0 -1
- package/dist/store/actions/node-mutation-sanitize.test.js +0 -147
- package/dist/store/actions/reparent.test.d.ts +0 -2
- package/dist/store/actions/reparent.test.d.ts.map +0 -1
- package/dist/store/actions/reparent.test.js +0 -212
- package/dist/store/use-scene-elevator-migration.test.d.ts +0 -2
- package/dist/store/use-scene-elevator-migration.test.d.ts.map +0 -1
- package/dist/store/use-scene-elevator-migration.test.js +0 -109
- package/dist/systems/elevator/elevator-opening-sync.test.d.ts +0 -2
- package/dist/systems/elevator/elevator-opening-sync.test.d.ts.map +0 -1
- package/dist/systems/elevator/elevator-opening-sync.test.js +0 -146
- package/dist/systems/elevator/elevator-runtime.test.d.ts +0 -2
- package/dist/systems/elevator/elevator-runtime.test.d.ts.map +0 -1
- package/dist/systems/elevator/elevator-runtime.test.js +0 -64
- package/dist/systems/stair/stair-opening-preview.test.d.ts +0 -2
- package/dist/systems/stair/stair-opening-preview.test.d.ts.map +0 -1
- package/dist/systems/stair/stair-opening-preview.test.js +0 -80
- package/dist/systems/stair/stair-opening-sync.test.d.ts +0 -2
- package/dist/systems/stair/stair-opening-sync.test.d.ts.map +0 -1
- package/dist/systems/stair/stair-opening-sync.test.js +0 -446
- package/dist/utils/clone-scene-graph.test.d.ts +0 -2
- package/dist/utils/clone-scene-graph.test.d.ts.map +0 -1
- package/dist/utils/clone-scene-graph.test.js +0 -59
|
@@ -20,7 +20,7 @@ export declare const CeilingNode: z.ZodObject<{
|
|
|
20
20
|
children: z.ZodDefault<z.ZodArray<z.ZodDefault<z.ZodTemplateLiteral<`item_${string}`>>>>;
|
|
21
21
|
material: z.ZodOptional<z.ZodObject<{
|
|
22
22
|
id: z.ZodOptional<z.ZodString>;
|
|
23
|
-
preset: z.ZodOptional<z.ZodEnum<{
|
|
23
|
+
preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
|
|
24
24
|
custom: "custom";
|
|
25
25
|
white: "white";
|
|
26
26
|
brick: "brick";
|
|
@@ -31,7 +31,7 @@ export declare const CeilingNode: z.ZodObject<{
|
|
|
31
31
|
plaster: "plaster";
|
|
32
32
|
tile: "tile";
|
|
33
33
|
marble: "marble";
|
|
34
|
-
}
|
|
34
|
+
}>>>;
|
|
35
35
|
properties: z.ZodOptional<z.ZodObject<{
|
|
36
36
|
color: z.ZodDefault<z.ZodString>;
|
|
37
37
|
roughness: z.ZodDefault<z.ZodNumber>;
|
|
@@ -51,6 +51,7 @@ export declare const CeilingNode: z.ZodObject<{
|
|
|
51
51
|
}, z.core.$strip>>;
|
|
52
52
|
}, z.core.$strip>>;
|
|
53
53
|
materialPreset: z.ZodOptional<z.ZodString>;
|
|
54
|
+
slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
54
55
|
polygon: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
|
|
55
56
|
holes: z.ZodDefault<z.ZodArray<z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>>>;
|
|
56
57
|
holeMetadata: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
@@ -62,7 +63,7 @@ export declare const CeilingNode: z.ZodObject<{
|
|
|
62
63
|
stairId: z.ZodOptional<z.ZodString>;
|
|
63
64
|
elevatorId: z.ZodOptional<z.ZodString>;
|
|
64
65
|
}, z.core.$strip>>>;
|
|
65
|
-
height: z.
|
|
66
|
+
height: z.ZodOptional<z.ZodNumber>;
|
|
66
67
|
autoFromWalls: z.ZodDefault<z.ZodBoolean>;
|
|
67
68
|
}, z.core.$strip>;
|
|
68
69
|
export type CeilingNode = z.infer<typeof CeilingNode>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ceiling.d.ts","sourceRoot":"","sources":["../../../src/schema/nodes/ceiling.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAMvB,eAAO,MAAM,WAAW
|
|
1
|
+
{"version":3,"file":"ceiling.d.ts","sourceRoot":"","sources":["../../../src/schema/nodes/ceiling.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAMvB,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA6BvB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAA"}
|
|
@@ -10,15 +10,25 @@ export const CeilingNode = BaseNode.extend({
|
|
|
10
10
|
children: z.array(ItemNode.shape.id).default([]),
|
|
11
11
|
material: MaterialSchema.optional(),
|
|
12
12
|
materialPreset: z.string().optional(),
|
|
13
|
+
// Per-slot material overrides on the unified slot model, mirroring
|
|
14
|
+
// `ShelfNode.slots`. Key = slot id (`surface`), value = a `MaterialRef`
|
|
15
|
+
// (`library:<id>` / `scene:<id>`). Absent = the declared slot default.
|
|
16
|
+
slots: z.record(z.string(), z.string()).optional(),
|
|
13
17
|
polygon: z.array(z.tuple([z.number(), z.number()])),
|
|
14
18
|
holes: z.array(z.array(z.tuple([z.number(), z.number()]))).default([]),
|
|
15
19
|
holeMetadata: z.array(SurfaceHoleMetadata).default([]),
|
|
16
|
-
|
|
20
|
+
// Height in meters. Absent = the ceiling follows the level top: its
|
|
21
|
+
// effective height is the same bound its write-clamp uses —
|
|
22
|
+
// min(storey plane, lowest covering-slab underside over the polygon)
|
|
23
|
+
// − CEILING_CLAMP_MARGIN (see `resolveCeilingHeight`). Present = an
|
|
24
|
+
// explicit custom height, still write-clamped under that bound.
|
|
25
|
+
height: z.number().optional(),
|
|
17
26
|
autoFromWalls: z.boolean().default(false),
|
|
18
27
|
}).describe(dedent `
|
|
19
28
|
Ceiling node - used to represent a ceiling in the building
|
|
20
29
|
- polygon: array of [x, z] points defining the ceiling boundary
|
|
21
30
|
- holes: array of polygons representing holes in the ceiling
|
|
22
31
|
- holeMetadata: metadata parallel to holes, used to preserve manual and auto-managed cutouts
|
|
32
|
+
- height: explicit height in meters; absent = follows the level top automatically
|
|
23
33
|
- autoFromWalls: whether the ceiling is automatically generated from a closed wall loop
|
|
24
34
|
`);
|
|
@@ -24,7 +24,7 @@ export declare const ChimneyNode: z.ZodObject<{
|
|
|
24
24
|
type: z.ZodDefault<z.ZodLiteral<"chimney">>;
|
|
25
25
|
material: z.ZodOptional<z.ZodObject<{
|
|
26
26
|
id: z.ZodOptional<z.ZodString>;
|
|
27
|
-
preset: z.ZodOptional<z.ZodEnum<{
|
|
27
|
+
preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
|
|
28
28
|
custom: "custom";
|
|
29
29
|
white: "white";
|
|
30
30
|
brick: "brick";
|
|
@@ -35,7 +35,7 @@ export declare const ChimneyNode: z.ZodObject<{
|
|
|
35
35
|
plaster: "plaster";
|
|
36
36
|
tile: "tile";
|
|
37
37
|
marble: "marble";
|
|
38
|
-
}
|
|
38
|
+
}>>>;
|
|
39
39
|
properties: z.ZodOptional<z.ZodObject<{
|
|
40
40
|
color: z.ZodDefault<z.ZodString>;
|
|
41
41
|
roughness: z.ZodDefault<z.ZodNumber>;
|
|
@@ -57,7 +57,7 @@ export declare const ChimneyNode: z.ZodObject<{
|
|
|
57
57
|
materialPreset: z.ZodOptional<z.ZodString>;
|
|
58
58
|
topMaterial: z.ZodOptional<z.ZodObject<{
|
|
59
59
|
id: z.ZodOptional<z.ZodString>;
|
|
60
|
-
preset: z.ZodOptional<z.ZodEnum<{
|
|
60
|
+
preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
|
|
61
61
|
custom: "custom";
|
|
62
62
|
white: "white";
|
|
63
63
|
brick: "brick";
|
|
@@ -68,7 +68,7 @@ export declare const ChimneyNode: z.ZodObject<{
|
|
|
68
68
|
plaster: "plaster";
|
|
69
69
|
tile: "tile";
|
|
70
70
|
marble: "marble";
|
|
71
|
-
}
|
|
71
|
+
}>>>;
|
|
72
72
|
properties: z.ZodOptional<z.ZodObject<{
|
|
73
73
|
color: z.ZodDefault<z.ZodString>;
|
|
74
74
|
roughness: z.ZodDefault<z.ZodNumber>;
|
|
@@ -112,6 +112,7 @@ export declare const ColumnNode: z.ZodObject<{
|
|
|
112
112
|
type: z.ZodDefault<z.ZodLiteral<"column">>;
|
|
113
113
|
position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
114
114
|
rotation: z.ZodDefault<z.ZodNumber>;
|
|
115
|
+
supportSlabId: z.ZodOptional<z.ZodString>;
|
|
115
116
|
style: z.ZodDefault<z.ZodEnum<{
|
|
116
117
|
plain: "plain";
|
|
117
118
|
faceted: "faceted";
|
|
@@ -263,7 +264,7 @@ export declare const ColumnNode: z.ZodObject<{
|
|
|
263
264
|
bracePlateEnabled: z.ZodDefault<z.ZodBoolean>;
|
|
264
265
|
material: z.ZodOptional<z.ZodObject<{
|
|
265
266
|
id: z.ZodOptional<z.ZodString>;
|
|
266
|
-
preset: z.ZodOptional<z.ZodEnum<{
|
|
267
|
+
preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
|
|
267
268
|
custom: "custom";
|
|
268
269
|
white: "white";
|
|
269
270
|
brick: "brick";
|
|
@@ -274,7 +275,7 @@ export declare const ColumnNode: z.ZodObject<{
|
|
|
274
275
|
plaster: "plaster";
|
|
275
276
|
tile: "tile";
|
|
276
277
|
marble: "marble";
|
|
277
|
-
}
|
|
278
|
+
}>>>;
|
|
278
279
|
properties: z.ZodOptional<z.ZodObject<{
|
|
279
280
|
color: z.ZodDefault<z.ZodString>;
|
|
280
281
|
roughness: z.ZodDefault<z.ZodNumber>;
|
|
@@ -294,6 +295,7 @@ export declare const ColumnNode: z.ZodObject<{
|
|
|
294
295
|
}, z.core.$strip>>;
|
|
295
296
|
}, z.core.$strip>>;
|
|
296
297
|
materialPreset: z.ZodOptional<z.ZodString>;
|
|
298
|
+
slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
297
299
|
}, z.core.$strip>;
|
|
298
300
|
export declare const COLUMN_PRESETS: {
|
|
299
301
|
readonly basicPillar: {
|
|
@@ -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":"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"}
|
|
@@ -64,6 +64,8 @@ export const ColumnNode = BaseNode.extend({
|
|
|
64
64
|
type: nodeType('column'),
|
|
65
65
|
position: z.tuple([z.number(), z.number(), z.number()]).default([0, 0, 0]),
|
|
66
66
|
rotation: z.number().default(0),
|
|
67
|
+
// Persisted slab-support host — see ItemNode.supportSlabId for the rules.
|
|
68
|
+
supportSlabId: z.string().optional(),
|
|
67
69
|
style: ColumnStyle.default('plain'),
|
|
68
70
|
crossSection: ColumnCrossSection.default('round'),
|
|
69
71
|
height: z.number().positive().default(2.5),
|
|
@@ -137,6 +139,9 @@ export const ColumnNode = BaseNode.extend({
|
|
|
137
139
|
bracePlateEnabled: z.boolean().default(true),
|
|
138
140
|
material: MaterialSchema.optional(),
|
|
139
141
|
materialPreset: z.string().optional(),
|
|
142
|
+
// Unified paint-slot refs (`scene:`/`library:` MaterialRef per slot id),
|
|
143
|
+
// matching the slot model items/slab/shelf use. Absent = declared default.
|
|
144
|
+
slots: z.record(z.string(), z.string()).optional(),
|
|
140
145
|
}).describe(dedent `
|
|
141
146
|
Column node - used to represent structural or decorative pillars/columns.
|
|
142
147
|
- style: visual approach such as plain, lathe-turned, carved, or cluster
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const ConstructionDimensionBaseline: z.ZodObject<{
|
|
3
|
+
origin: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
|
|
4
|
+
direction: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
|
|
5
|
+
}, z.core.$strip>;
|
|
6
|
+
export declare const ConstructionDimensionChainMode: z.ZodEnum<{
|
|
7
|
+
"point-to-point": "point-to-point";
|
|
8
|
+
continuous: "continuous";
|
|
9
|
+
}>;
|
|
10
|
+
export declare const ConstructionDimensionMode: z.ZodEnum<{
|
|
11
|
+
radius: "radius";
|
|
12
|
+
linear: "linear";
|
|
13
|
+
diameter: "diameter";
|
|
14
|
+
"center-mark": "center-mark";
|
|
15
|
+
chord: "chord";
|
|
16
|
+
"arc-length": "arc-length";
|
|
17
|
+
angular: "angular";
|
|
18
|
+
coordinate: "coordinate";
|
|
19
|
+
}>;
|
|
20
|
+
export declare const ConstructionDrawingType: z.ZodEnum<{
|
|
21
|
+
"floor-plan": "floor-plan";
|
|
22
|
+
"foundation-plan": "foundation-plan";
|
|
23
|
+
"reflected-ceiling-plan": "reflected-ceiling-plan";
|
|
24
|
+
"roof-plan": "roof-plan";
|
|
25
|
+
"site-plan": "site-plan";
|
|
26
|
+
}>;
|
|
27
|
+
export declare const ConstructionDimensionDrawingPresentation: z.ZodEnum<{
|
|
28
|
+
shown: "shown";
|
|
29
|
+
omit: "omit";
|
|
30
|
+
controlled: "controlled";
|
|
31
|
+
}>;
|
|
32
|
+
export declare const ConstructionDimensionDrawingOverride: z.ZodObject<{
|
|
33
|
+
drawingType: z.ZodEnum<{
|
|
34
|
+
"floor-plan": "floor-plan";
|
|
35
|
+
"foundation-plan": "foundation-plan";
|
|
36
|
+
"reflected-ceiling-plan": "reflected-ceiling-plan";
|
|
37
|
+
"roof-plan": "roof-plan";
|
|
38
|
+
"site-plan": "site-plan";
|
|
39
|
+
}>;
|
|
40
|
+
presentation: z.ZodEnum<{
|
|
41
|
+
shown: "shown";
|
|
42
|
+
omit: "omit";
|
|
43
|
+
controlled: "controlled";
|
|
44
|
+
}>;
|
|
45
|
+
suppressedSegmentIndexes: z.ZodDefault<z.ZodArray<z.ZodNumber>>;
|
|
46
|
+
}, z.core.$strip>;
|
|
47
|
+
export declare const ConstructionDimensionDatumPolicy: z.ZodEnum<{
|
|
48
|
+
centerline: "centerline";
|
|
49
|
+
"wall-face": "wall-face";
|
|
50
|
+
"structural-face": "structural-face";
|
|
51
|
+
"finish-face": "finish-face";
|
|
52
|
+
}>;
|
|
53
|
+
export declare const ConstructionDimensionTerminator: z.ZodEnum<{
|
|
54
|
+
"architectural-tick": "architectural-tick";
|
|
55
|
+
"filled-arrow": "filled-arrow";
|
|
56
|
+
"open-arrow": "open-arrow";
|
|
57
|
+
dot: "dot";
|
|
58
|
+
}>;
|
|
59
|
+
export declare const ConstructionDimensionTextPosition: z.ZodEnum<{
|
|
60
|
+
above: "above";
|
|
61
|
+
centered: "centered";
|
|
62
|
+
}>;
|
|
63
|
+
export declare const ConstructionDimensionImperialPrecision: z.ZodEnum<{
|
|
64
|
+
1: "1";
|
|
65
|
+
"1/2": "1/2";
|
|
66
|
+
"1/4": "1/4";
|
|
67
|
+
"1/8": "1/8";
|
|
68
|
+
"1/16": "1/16";
|
|
69
|
+
}>;
|
|
70
|
+
export declare const ConstructionDimensionMetricNotation: z.ZodEnum<{
|
|
71
|
+
meters: "meters";
|
|
72
|
+
millimeters: "millimeters";
|
|
73
|
+
}>;
|
|
74
|
+
export declare const ConstructionDimensionNode: z.ZodObject<{
|
|
75
|
+
object: z.ZodDefault<z.ZodLiteral<"node">>;
|
|
76
|
+
name: z.ZodOptional<z.ZodString>;
|
|
77
|
+
parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
78
|
+
visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
79
|
+
camera: z.ZodOptional<z.ZodObject<{
|
|
80
|
+
position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
81
|
+
target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
82
|
+
mode: z.ZodDefault<z.ZodEnum<{
|
|
83
|
+
perspective: "perspective";
|
|
84
|
+
orthographic: "orthographic";
|
|
85
|
+
}>>;
|
|
86
|
+
fov: z.ZodOptional<z.ZodNumber>;
|
|
87
|
+
zoom: z.ZodOptional<z.ZodNumber>;
|
|
88
|
+
}, z.core.$strip>>;
|
|
89
|
+
metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
|
|
90
|
+
id: z.ZodDefault<z.ZodTemplateLiteral<`construction-dimension_${string}`>>;
|
|
91
|
+
type: z.ZodDefault<z.ZodLiteral<"construction-dimension">>;
|
|
92
|
+
anchors: z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>, z.ZodObject<{
|
|
93
|
+
kind: z.ZodLiteral<"feature">;
|
|
94
|
+
reference: z.ZodObject<{
|
|
95
|
+
nodeId: z.ZodString;
|
|
96
|
+
featureId: z.ZodString;
|
|
97
|
+
parameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodBoolean, z.ZodNumber]>>>;
|
|
98
|
+
}, z.core.$strip>;
|
|
99
|
+
fallback: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
100
|
+
}, z.core.$strip>]>>>;
|
|
101
|
+
baseline: z.ZodDefault<z.ZodObject<{
|
|
102
|
+
origin: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
|
|
103
|
+
direction: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
|
|
104
|
+
}, z.core.$strip>>;
|
|
105
|
+
chainMode: z.ZodDefault<z.ZodEnum<{
|
|
106
|
+
"point-to-point": "point-to-point";
|
|
107
|
+
continuous: "continuous";
|
|
108
|
+
}>>;
|
|
109
|
+
mode: z.ZodDefault<z.ZodEnum<{
|
|
110
|
+
radius: "radius";
|
|
111
|
+
linear: "linear";
|
|
112
|
+
diameter: "diameter";
|
|
113
|
+
"center-mark": "center-mark";
|
|
114
|
+
chord: "chord";
|
|
115
|
+
"arc-length": "arc-length";
|
|
116
|
+
angular: "angular";
|
|
117
|
+
coordinate: "coordinate";
|
|
118
|
+
}>>;
|
|
119
|
+
featureCount: z.ZodDefault<z.ZodNumber>;
|
|
120
|
+
showCenterMark: z.ZodDefault<z.ZodBoolean>;
|
|
121
|
+
prefix: z.ZodDefault<z.ZodString>;
|
|
122
|
+
suffix: z.ZodDefault<z.ZodString>;
|
|
123
|
+
textOverride: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
124
|
+
datumPolicy: z.ZodDefault<z.ZodEnum<{
|
|
125
|
+
centerline: "centerline";
|
|
126
|
+
"wall-face": "wall-face";
|
|
127
|
+
"structural-face": "structural-face";
|
|
128
|
+
"finish-face": "finish-face";
|
|
129
|
+
}>>;
|
|
130
|
+
terminator: z.ZodDefault<z.ZodEnum<{
|
|
131
|
+
"architectural-tick": "architectural-tick";
|
|
132
|
+
"filled-arrow": "filled-arrow";
|
|
133
|
+
"open-arrow": "open-arrow";
|
|
134
|
+
dot: "dot";
|
|
135
|
+
}>>;
|
|
136
|
+
textPosition: z.ZodDefault<z.ZodEnum<{
|
|
137
|
+
above: "above";
|
|
138
|
+
centered: "centered";
|
|
139
|
+
}>>;
|
|
140
|
+
imperialPrecision: z.ZodDefault<z.ZodEnum<{
|
|
141
|
+
1: "1";
|
|
142
|
+
"1/2": "1/2";
|
|
143
|
+
"1/4": "1/4";
|
|
144
|
+
"1/8": "1/8";
|
|
145
|
+
"1/16": "1/16";
|
|
146
|
+
}>>;
|
|
147
|
+
metricNotation: z.ZodDefault<z.ZodEnum<{
|
|
148
|
+
meters: "meters";
|
|
149
|
+
millimeters: "millimeters";
|
|
150
|
+
}>>;
|
|
151
|
+
extensionStartGap: z.ZodDefault<z.ZodNumber>;
|
|
152
|
+
extensionOvershoot: z.ZodDefault<z.ZodNumber>;
|
|
153
|
+
drawingType: z.ZodDefault<z.ZodEnum<{
|
|
154
|
+
"floor-plan": "floor-plan";
|
|
155
|
+
"foundation-plan": "foundation-plan";
|
|
156
|
+
"reflected-ceiling-plan": "reflected-ceiling-plan";
|
|
157
|
+
"roof-plan": "roof-plan";
|
|
158
|
+
"site-plan": "site-plan";
|
|
159
|
+
}>>;
|
|
160
|
+
drawingOverrides: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
161
|
+
drawingType: z.ZodEnum<{
|
|
162
|
+
"floor-plan": "floor-plan";
|
|
163
|
+
"foundation-plan": "foundation-plan";
|
|
164
|
+
"reflected-ceiling-plan": "reflected-ceiling-plan";
|
|
165
|
+
"roof-plan": "roof-plan";
|
|
166
|
+
"site-plan": "site-plan";
|
|
167
|
+
}>;
|
|
168
|
+
presentation: z.ZodEnum<{
|
|
169
|
+
shown: "shown";
|
|
170
|
+
omit: "omit";
|
|
171
|
+
controlled: "controlled";
|
|
172
|
+
}>;
|
|
173
|
+
suppressedSegmentIndexes: z.ZodDefault<z.ZodArray<z.ZodNumber>>;
|
|
174
|
+
}, z.core.$strip>>>;
|
|
175
|
+
controllingDimensionId: z.ZodDefault<z.ZodNullable<z.ZodDefault<z.ZodTemplateLiteral<`construction-dimension_${string}`>>>>;
|
|
176
|
+
}, z.core.$strip>;
|
|
177
|
+
export type ConstructionDimensionBaseline = z.infer<typeof ConstructionDimensionBaseline>;
|
|
178
|
+
export type ConstructionDimensionChainMode = z.infer<typeof ConstructionDimensionChainMode>;
|
|
179
|
+
export type ConstructionDimensionMode = z.infer<typeof ConstructionDimensionMode>;
|
|
180
|
+
export type ConstructionDrawingType = z.infer<typeof ConstructionDrawingType>;
|
|
181
|
+
export type ConstructionDimensionDrawingPresentation = z.infer<typeof ConstructionDimensionDrawingPresentation>;
|
|
182
|
+
export type ConstructionDimensionDrawingOverride = z.infer<typeof ConstructionDimensionDrawingOverride>;
|
|
183
|
+
export type ConstructionDimensionDatumPolicy = z.infer<typeof ConstructionDimensionDatumPolicy>;
|
|
184
|
+
export type ConstructionDimensionTerminator = z.infer<typeof ConstructionDimensionTerminator>;
|
|
185
|
+
export type ConstructionDimensionTextPosition = z.infer<typeof ConstructionDimensionTextPosition>;
|
|
186
|
+
export type ConstructionDimensionImperialPrecision = z.infer<typeof ConstructionDimensionImperialPrecision>;
|
|
187
|
+
export type ConstructionDimensionMetricNotation = z.infer<typeof ConstructionDimensionMetricNotation>;
|
|
188
|
+
export type ConstructionDimensionNode = z.infer<typeof ConstructionDimensionNode>;
|
|
189
|
+
export declare const CONSTRUCTION_DRAWING_TYPES: ("floor-plan" | "foundation-plan" | "reflected-ceiling-plan" | "roof-plan" | "site-plan")[];
|
|
190
|
+
export declare function resolveConstructionDimensionDrawingPresentation(node: Pick<ConstructionDimensionNode, 'drawingType' | 'drawingOverrides'>, drawingType: ConstructionDrawingType): ConstructionDimensionDrawingPresentation;
|
|
191
|
+
export declare function resolveConstructionDimensionDrawingOverride(node: Pick<ConstructionDimensionNode, 'drawingOverrides'>, drawingType: ConstructionDrawingType): ConstructionDimensionDrawingOverride | null;
|
|
192
|
+
export declare function setConstructionDimensionDrawingPresentation(node: Pick<ConstructionDimensionNode, 'drawingType' | 'drawingOverrides'>, drawingType: ConstructionDrawingType, presentation: ConstructionDimensionDrawingPresentation): ConstructionDimensionDrawingOverride[];
|
|
193
|
+
export declare function setConstructionDimensionDrawingSuppressedSegments(node: Pick<ConstructionDimensionNode, 'drawingType' | 'drawingOverrides'>, drawingType: ConstructionDrawingType, suppressedSegmentIndexes: readonly number[]): ConstructionDimensionDrawingOverride[];
|
|
194
|
+
export declare function constructionDimensionRequiredAnchorCount(mode: ConstructionDimensionMode): number;
|
|
195
|
+
//# sourceMappingURL=construction-dimension.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"construction-dimension.d.ts","sourceRoot":"","sources":["../../../src/schema/nodes/construction-dimension.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import dedent from 'dedent';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { BaseNode, nodeType, objectId } from '../base';
|
|
4
|
+
import { MeasurementAnchor } from './measurement';
|
|
5
|
+
const FiniteCoordinate = z.number().finite();
|
|
6
|
+
export const ConstructionDimensionBaseline = z
|
|
7
|
+
.object({
|
|
8
|
+
origin: z.tuple([FiniteCoordinate, FiniteCoordinate]).default([0, 0.6]),
|
|
9
|
+
direction: z.tuple([FiniteCoordinate, FiniteCoordinate]).default([1, 0]),
|
|
10
|
+
})
|
|
11
|
+
.superRefine((baseline, ctx) => {
|
|
12
|
+
if (Math.hypot(baseline.direction[0], baseline.direction[1]) <= 1e-9) {
|
|
13
|
+
ctx.addIssue({
|
|
14
|
+
code: 'custom',
|
|
15
|
+
path: ['direction'],
|
|
16
|
+
message: 'Construction dimension baseline direction must be non-zero',
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
export const ConstructionDimensionChainMode = z.enum(['point-to-point', 'continuous']);
|
|
21
|
+
export const ConstructionDimensionMode = z.enum([
|
|
22
|
+
'linear',
|
|
23
|
+
'radius',
|
|
24
|
+
'diameter',
|
|
25
|
+
'center-mark',
|
|
26
|
+
'chord',
|
|
27
|
+
'arc-length',
|
|
28
|
+
'angular',
|
|
29
|
+
'coordinate',
|
|
30
|
+
]);
|
|
31
|
+
export const ConstructionDrawingType = z.enum([
|
|
32
|
+
'floor-plan',
|
|
33
|
+
'foundation-plan',
|
|
34
|
+
'reflected-ceiling-plan',
|
|
35
|
+
'roof-plan',
|
|
36
|
+
'site-plan',
|
|
37
|
+
]);
|
|
38
|
+
export const ConstructionDimensionDrawingPresentation = z.enum(['shown', 'omit', 'controlled']);
|
|
39
|
+
export const ConstructionDimensionDrawingOverride = z.object({
|
|
40
|
+
drawingType: ConstructionDrawingType,
|
|
41
|
+
presentation: ConstructionDimensionDrawingPresentation,
|
|
42
|
+
suppressedSegmentIndexes: z.array(z.number().int().min(0).max(999)).max(200).default([]),
|
|
43
|
+
});
|
|
44
|
+
export const ConstructionDimensionDatumPolicy = z.enum([
|
|
45
|
+
'centerline',
|
|
46
|
+
'wall-face',
|
|
47
|
+
'structural-face',
|
|
48
|
+
'finish-face',
|
|
49
|
+
]);
|
|
50
|
+
export const ConstructionDimensionTerminator = z.enum([
|
|
51
|
+
'architectural-tick',
|
|
52
|
+
'filled-arrow',
|
|
53
|
+
'open-arrow',
|
|
54
|
+
'dot',
|
|
55
|
+
]);
|
|
56
|
+
export const ConstructionDimensionTextPosition = z.enum(['above', 'centered']);
|
|
57
|
+
export const ConstructionDimensionImperialPrecision = z.enum(['1', '1/2', '1/4', '1/8', '1/16']);
|
|
58
|
+
export const ConstructionDimensionMetricNotation = z.enum(['meters', 'millimeters']);
|
|
59
|
+
export const ConstructionDimensionNode = BaseNode.extend({
|
|
60
|
+
id: objectId('construction-dimension'),
|
|
61
|
+
type: nodeType('construction-dimension'),
|
|
62
|
+
anchors: z
|
|
63
|
+
.array(MeasurementAnchor)
|
|
64
|
+
.min(2)
|
|
65
|
+
.default([
|
|
66
|
+
[0, 0, 0],
|
|
67
|
+
[1, 0, 0],
|
|
68
|
+
]),
|
|
69
|
+
baseline: ConstructionDimensionBaseline.default({ origin: [0, 0.6], direction: [1, 0] }),
|
|
70
|
+
chainMode: ConstructionDimensionChainMode.default('point-to-point'),
|
|
71
|
+
mode: ConstructionDimensionMode.default('linear'),
|
|
72
|
+
featureCount: z.number().int().min(1).max(999).default(1),
|
|
73
|
+
showCenterMark: z.boolean().default(true),
|
|
74
|
+
prefix: z.string().max(40).default(''),
|
|
75
|
+
suffix: z.string().max(40).default(''),
|
|
76
|
+
textOverride: z.string().trim().min(1).max(120).nullable().default(null),
|
|
77
|
+
datumPolicy: ConstructionDimensionDatumPolicy.default('centerline'),
|
|
78
|
+
terminator: ConstructionDimensionTerminator.default('architectural-tick'),
|
|
79
|
+
textPosition: ConstructionDimensionTextPosition.default('above'),
|
|
80
|
+
imperialPrecision: ConstructionDimensionImperialPrecision.default('1/16'),
|
|
81
|
+
metricNotation: ConstructionDimensionMetricNotation.default('meters'),
|
|
82
|
+
extensionStartGap: z.number().finite().min(0).max(1).default(0.075),
|
|
83
|
+
extensionOvershoot: z.number().finite().min(0).max(1).default(0.12),
|
|
84
|
+
drawingType: ConstructionDrawingType.default('floor-plan'),
|
|
85
|
+
drawingOverrides: z.array(ConstructionDimensionDrawingOverride).max(5).default([]),
|
|
86
|
+
controllingDimensionId: objectId('construction-dimension').nullable().default(null),
|
|
87
|
+
}).describe(dedent `
|
|
88
|
+
Construction dimension node - an associative floor-plan construction dimension
|
|
89
|
+
- anchors: two or more free or semantic feature anchors that supply the witness origins
|
|
90
|
+
- baseline.origin: a point on the independently placed dimension line
|
|
91
|
+
- baseline.direction: the fixed plan direction used to project the witness origins
|
|
92
|
+
- chainMode: point-to-point for one segment or continuous for adjacent dimension strings
|
|
93
|
+
- mode: linear, radius, diameter, center mark, chord, arc length, angular, or coordinate
|
|
94
|
+
- featureCount: repeated-feature multiplier used by diameter/radius and other notation
|
|
95
|
+
- showCenterMark: displays the resolved circle/angle center where applicable
|
|
96
|
+
- prefix/suffix/textOverride: document notation overrides without changing geometry
|
|
97
|
+
- datumPolicy/terminator/textPosition/imperialPrecision/metricNotation/extensionStartGap/extensionOvershoot: dimension-standard overrides
|
|
98
|
+
- drawingType: the primary persistent drawing that owns the dimension
|
|
99
|
+
- drawingOverrides: omit, show, or foundation-control presentation per drawing type
|
|
100
|
+
- controllingDimensionId: foundation dimension whose associative geometry controls this dimension
|
|
101
|
+
`);
|
|
102
|
+
export const CONSTRUCTION_DRAWING_TYPES = ConstructionDrawingType.options;
|
|
103
|
+
export function resolveConstructionDimensionDrawingPresentation(node, drawingType) {
|
|
104
|
+
let override;
|
|
105
|
+
for (const entry of node.drawingOverrides) {
|
|
106
|
+
if (entry.drawingType === drawingType)
|
|
107
|
+
override = entry;
|
|
108
|
+
}
|
|
109
|
+
return override?.presentation ?? (node.drawingType === drawingType ? 'shown' : 'omit');
|
|
110
|
+
}
|
|
111
|
+
export function resolveConstructionDimensionDrawingOverride(node, drawingType) {
|
|
112
|
+
let override;
|
|
113
|
+
for (const entry of node.drawingOverrides) {
|
|
114
|
+
if (entry.drawingType === drawingType)
|
|
115
|
+
override = entry;
|
|
116
|
+
}
|
|
117
|
+
return override ?? null;
|
|
118
|
+
}
|
|
119
|
+
export function setConstructionDimensionDrawingPresentation(node, drawingType, presentation) {
|
|
120
|
+
const defaultPresentation = node.drawingType === drawingType ? 'shown' : 'omit';
|
|
121
|
+
const existing = resolveConstructionDimensionDrawingOverride(node, drawingType);
|
|
122
|
+
const withoutDrawing = node.drawingOverrides.filter((entry) => entry.drawingType !== drawingType);
|
|
123
|
+
const next = {
|
|
124
|
+
drawingType,
|
|
125
|
+
presentation,
|
|
126
|
+
suppressedSegmentIndexes: existing?.suppressedSegmentIndexes ?? [],
|
|
127
|
+
};
|
|
128
|
+
return isDefaultConstructionDimensionDrawingOverride(next, defaultPresentation)
|
|
129
|
+
? withoutDrawing
|
|
130
|
+
: [...withoutDrawing, next];
|
|
131
|
+
}
|
|
132
|
+
export function setConstructionDimensionDrawingSuppressedSegments(node, drawingType, suppressedSegmentIndexes) {
|
|
133
|
+
const defaultPresentation = node.drawingType === drawingType ? 'shown' : 'omit';
|
|
134
|
+
const existing = resolveConstructionDimensionDrawingOverride(node, drawingType);
|
|
135
|
+
const presentation = existing?.presentation ?? defaultPresentation;
|
|
136
|
+
const suppressed = normalizeSuppressedSegmentIndexes(suppressedSegmentIndexes);
|
|
137
|
+
const withoutDrawing = node.drawingOverrides.filter((entry) => entry.drawingType !== drawingType);
|
|
138
|
+
const next = { drawingType, presentation, suppressedSegmentIndexes: suppressed };
|
|
139
|
+
return isDefaultConstructionDimensionDrawingOverride(next, defaultPresentation)
|
|
140
|
+
? withoutDrawing
|
|
141
|
+
: [...withoutDrawing, next];
|
|
142
|
+
}
|
|
143
|
+
export function constructionDimensionRequiredAnchorCount(mode) {
|
|
144
|
+
return mode === 'arc-length' || mode === 'angular' ? 3 : 2;
|
|
145
|
+
}
|
|
146
|
+
function isDefaultConstructionDimensionDrawingOverride(override, defaultPresentation) {
|
|
147
|
+
return (override.presentation === defaultPresentation && override.suppressedSegmentIndexes.length === 0);
|
|
148
|
+
}
|
|
149
|
+
function normalizeSuppressedSegmentIndexes(indexes) {
|
|
150
|
+
return [...new Set(indexes.filter((index) => Number.isInteger(index) && index >= 0))].sort((left, right) => left - right);
|
|
151
|
+
}
|
|
@@ -19,7 +19,7 @@ export declare const CupolaNode: z.ZodObject<{
|
|
|
19
19
|
type: z.ZodDefault<z.ZodLiteral<"cupola">>;
|
|
20
20
|
material: z.ZodOptional<z.ZodObject<{
|
|
21
21
|
id: z.ZodOptional<z.ZodString>;
|
|
22
|
-
preset: z.ZodOptional<z.ZodEnum<{
|
|
22
|
+
preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
|
|
23
23
|
custom: "custom";
|
|
24
24
|
white: "white";
|
|
25
25
|
brick: "brick";
|
|
@@ -30,7 +30,7 @@ export declare const CupolaNode: z.ZodObject<{
|
|
|
30
30
|
plaster: "plaster";
|
|
31
31
|
tile: "tile";
|
|
32
32
|
marble: "marble";
|
|
33
|
-
}
|
|
33
|
+
}>>>;
|
|
34
34
|
properties: z.ZodOptional<z.ZodObject<{
|
|
35
35
|
color: z.ZodDefault<z.ZodString>;
|
|
36
36
|
roughness: z.ZodDefault<z.ZodNumber>;
|
|
@@ -16,6 +16,16 @@ export declare const DoorCategory: z.ZodEnum<{
|
|
|
16
16
|
interior: "interior";
|
|
17
17
|
garage: "garage";
|
|
18
18
|
}>;
|
|
19
|
+
export declare const OpeningConstructionType: z.ZodEnum<{
|
|
20
|
+
framed: "framed";
|
|
21
|
+
masonry: "masonry";
|
|
22
|
+
}>;
|
|
23
|
+
export declare const OpeningDimensionReference: z.ZodEnum<{
|
|
24
|
+
nominal: "nominal";
|
|
25
|
+
"rough-opening": "rough-opening";
|
|
26
|
+
"masonry-opening": "masonry-opening";
|
|
27
|
+
"finish-opening": "finish-opening";
|
|
28
|
+
}>;
|
|
19
29
|
export declare const DoorType: z.ZodEnum<{
|
|
20
30
|
double: "double";
|
|
21
31
|
hinged: "hinged";
|
|
@@ -35,6 +45,8 @@ export declare const DoorTrackStyle: z.ZodEnum<{
|
|
|
35
45
|
overhead: "overhead";
|
|
36
46
|
}>;
|
|
37
47
|
export type DoorCategory = z.infer<typeof DoorCategory>;
|
|
48
|
+
export type OpeningConstructionType = z.infer<typeof OpeningConstructionType>;
|
|
49
|
+
export type OpeningDimensionReference = z.infer<typeof OpeningDimensionReference>;
|
|
38
50
|
export type DoorType = z.infer<typeof DoorType>;
|
|
39
51
|
export type DoorTrackStyle = z.infer<typeof DoorTrackStyle>;
|
|
40
52
|
export declare const DoorNode: z.ZodObject<{
|
|
@@ -57,7 +69,7 @@ export declare const DoorNode: z.ZodObject<{
|
|
|
57
69
|
type: z.ZodDefault<z.ZodLiteral<"door">>;
|
|
58
70
|
material: z.ZodOptional<z.ZodObject<{
|
|
59
71
|
id: z.ZodOptional<z.ZodString>;
|
|
60
|
-
preset: z.ZodOptional<z.ZodEnum<{
|
|
72
|
+
preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
|
|
61
73
|
custom: "custom";
|
|
62
74
|
white: "white";
|
|
63
75
|
brick: "brick";
|
|
@@ -68,7 +80,7 @@ export declare const DoorNode: z.ZodObject<{
|
|
|
68
80
|
plaster: "plaster";
|
|
69
81
|
tile: "tile";
|
|
70
82
|
marble: "marble";
|
|
71
|
-
}
|
|
83
|
+
}>>>;
|
|
72
84
|
properties: z.ZodOptional<z.ZodObject<{
|
|
73
85
|
color: z.ZodDefault<z.ZodString>;
|
|
74
86
|
roughness: z.ZodDefault<z.ZodNumber>;
|
|
@@ -87,6 +99,7 @@ export declare const DoorNode: z.ZodObject<{
|
|
|
87
99
|
scale: z.ZodOptional<z.ZodNumber>;
|
|
88
100
|
}, z.core.$strip>>;
|
|
89
101
|
}, z.core.$strip>>;
|
|
102
|
+
slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
90
103
|
position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
91
104
|
rotation: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
92
105
|
side: z.ZodOptional<z.ZodEnum<{
|
|
@@ -94,8 +107,32 @@ export declare const DoorNode: z.ZodObject<{
|
|
|
94
107
|
back: "back";
|
|
95
108
|
}>>;
|
|
96
109
|
wallId: z.ZodOptional<z.ZodString>;
|
|
110
|
+
roofSegmentId: z.ZodOptional<z.ZodString>;
|
|
111
|
+
roofFace: z.ZodOptional<z.ZodEnum<{
|
|
112
|
+
front: "front";
|
|
113
|
+
back: "back";
|
|
114
|
+
right: "right";
|
|
115
|
+
left: "left";
|
|
116
|
+
}>>;
|
|
97
117
|
width: z.ZodDefault<z.ZodNumber>;
|
|
98
118
|
height: z.ZodDefault<z.ZodNumber>;
|
|
119
|
+
mark: z.ZodOptional<z.ZodString>;
|
|
120
|
+
constructionType: z.ZodDefault<z.ZodEnum<{
|
|
121
|
+
framed: "framed";
|
|
122
|
+
masonry: "masonry";
|
|
123
|
+
}>>;
|
|
124
|
+
dimensionReference: z.ZodDefault<z.ZodEnum<{
|
|
125
|
+
nominal: "nominal";
|
|
126
|
+
"rough-opening": "rough-opening";
|
|
127
|
+
"masonry-opening": "masonry-opening";
|
|
128
|
+
"finish-opening": "finish-opening";
|
|
129
|
+
}>>;
|
|
130
|
+
roughOpeningWidth: z.ZodOptional<z.ZodNumber>;
|
|
131
|
+
roughOpeningHeight: z.ZodOptional<z.ZodNumber>;
|
|
132
|
+
masonryOpeningWidth: z.ZodOptional<z.ZodNumber>;
|
|
133
|
+
masonryOpeningHeight: z.ZodOptional<z.ZodNumber>;
|
|
134
|
+
finishOpeningWidth: z.ZodOptional<z.ZodNumber>;
|
|
135
|
+
finishOpeningHeight: z.ZodOptional<z.ZodNumber>;
|
|
99
136
|
doorCategory: z.ZodDefault<z.ZodEnum<{
|
|
100
137
|
interior: "interior";
|
|
101
138
|
garage: "garage";
|
|
@@ -115,8 +152,8 @@ export declare const DoorNode: z.ZodObject<{
|
|
|
115
152
|
leafCount: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>]>>;
|
|
116
153
|
operationState: z.ZodDefault<z.ZodNumber>;
|
|
117
154
|
slideDirection: z.ZodDefault<z.ZodEnum<{
|
|
118
|
-
left: "left";
|
|
119
155
|
right: "right";
|
|
156
|
+
left: "left";
|
|
120
157
|
}>>;
|
|
121
158
|
trackStyle: z.ZodDefault<z.ZodEnum<{
|
|
122
159
|
visible: "visible";
|
|
@@ -147,8 +184,8 @@ export declare const DoorNode: z.ZodObject<{
|
|
|
147
184
|
threshold: z.ZodDefault<z.ZodBoolean>;
|
|
148
185
|
thresholdHeight: z.ZodDefault<z.ZodNumber>;
|
|
149
186
|
hingesSide: z.ZodDefault<z.ZodEnum<{
|
|
150
|
-
left: "left";
|
|
151
187
|
right: "right";
|
|
188
|
+
left: "left";
|
|
152
189
|
}>>;
|
|
153
190
|
swingDirection: z.ZodDefault<z.ZodEnum<{
|
|
154
191
|
inward: "inward";
|
|
@@ -170,8 +207,8 @@ export declare const DoorNode: z.ZodObject<{
|
|
|
170
207
|
handle: z.ZodDefault<z.ZodBoolean>;
|
|
171
208
|
handleHeight: z.ZodDefault<z.ZodNumber>;
|
|
172
209
|
handleSide: z.ZodDefault<z.ZodEnum<{
|
|
173
|
-
left: "left";
|
|
174
210
|
right: "right";
|
|
211
|
+
left: "left";
|
|
175
212
|
}>>;
|
|
176
213
|
contentPadding: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
|
|
177
214
|
doorCloser: z.ZodDefault<z.ZodBoolean>;
|