@pascal-app/nodes 1.0.0 → 1.0.3
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/block/definition.d.ts.map +1 -1
- package/dist/block/definition.js +4 -1
- package/dist/block/face-host.d.ts.map +1 -1
- package/dist/block/face-host.js +19 -2
- package/dist/block/hosted-edit.d.ts +13 -0
- package/dist/block/hosted-edit.d.ts.map +1 -0
- package/dist/block/hosted-edit.js +205 -0
- package/dist/block/last-operation.d.ts +1 -1
- package/dist/block/last-operation.d.ts.map +1 -1
- package/dist/block/last-operation.js +6 -4
- package/dist/block/modal-session.d.ts +2 -1
- package/dist/block/modal-session.d.ts.map +1 -1
- package/dist/block/modal-session.js +2 -2
- package/dist/block/selection.d.ts.map +1 -1
- package/dist/block/selection.js +82 -24
- package/dist/block/surface.d.ts +4 -0
- package/dist/block/surface.d.ts.map +1 -0
- package/dist/block/surface.js +54 -0
- package/dist/block/use-block-face-operation.d.ts +2 -2
- package/dist/block/use-block-face-operation.d.ts.map +1 -1
- package/dist/block/use-block-face-operation.js +25 -11
- package/dist/box-vent/definition.d.ts.map +1 -1
- package/dist/box-vent/definition.js +1 -0
- package/dist/box-vent/panel.js +4 -4
- package/dist/building/renderer.d.ts.map +1 -1
- package/dist/building/renderer.js +1 -1
- package/dist/cabinet/appliance-layout.d.ts +26 -0
- package/dist/cabinet/appliance-layout.d.ts.map +1 -0
- package/dist/cabinet/appliance-layout.js +52 -0
- package/dist/cabinet/countertop-layout.d.ts +173 -0
- package/dist/cabinet/countertop-layout.d.ts.map +1 -0
- package/dist/cabinet/countertop-layout.js +80 -0
- package/dist/cabinet/definition.d.ts.map +1 -1
- package/dist/cabinet/definition.js +17 -8
- package/dist/cabinet/geometry/cooktop.d.ts.map +1 -1
- package/dist/cabinet/geometry/cooktop.js +2 -2
- package/dist/cabinet/geometry/run.d.ts.map +1 -1
- package/dist/cabinet/geometry/run.js +10 -71
- package/dist/cabinet/geometry/sink.d.ts +2 -12
- package/dist/cabinet/geometry/sink.d.ts.map +1 -1
- package/dist/cabinet/geometry/sink.js +8 -39
- package/dist/cabinet/hosted-resize.d.ts +5 -0
- package/dist/cabinet/hosted-resize.d.ts.map +1 -0
- package/dist/cabinet/hosted-resize.js +14 -0
- package/dist/cabinet/placement-snap.d.ts.map +1 -1
- package/dist/cabinet/placement-snap.js +4 -2
- package/dist/cabinet/run-layout.d.ts +8 -1
- package/dist/cabinet/run-layout.d.ts.map +1 -1
- package/dist/cabinet/run-layout.js +22 -14
- package/dist/cabinet/run-ops.d.ts +3 -3
- package/dist/cabinet/run-ops.js +3 -3
- package/dist/cabinet/run-panel.d.ts +1 -1
- package/dist/cabinet/run-panel.d.ts.map +1 -1
- package/dist/cabinet/run-panel.js +16 -7
- package/dist/cabinet/surfaces.d.ts +5 -0
- package/dist/cabinet/surfaces.d.ts.map +1 -0
- package/dist/cabinet/surfaces.js +113 -0
- package/dist/cabinet/tool.d.ts.map +1 -1
- package/dist/cabinet/tool.js +8 -4
- package/dist/cabinet/tree-structure.d.ts.map +1 -1
- package/dist/cabinet/tree-structure.js +10 -9
- package/dist/ceiling/definition.d.ts.map +1 -1
- package/dist/ceiling/definition.js +6 -1
- package/dist/ceiling/floorplan-affordances.d.ts +4 -4
- package/dist/ceiling/panel.js +1 -1
- package/dist/ceiling/renderer.d.ts.map +1 -1
- package/dist/ceiling/renderer.js +3 -2
- package/dist/chimney/definition.d.ts.map +1 -1
- package/dist/chimney/definition.js +1 -0
- package/dist/chimney/panel.js +9 -9
- package/dist/column/definition.d.ts.map +1 -1
- package/dist/column/definition.js +10 -3
- package/dist/column/floorplan-affordances.d.ts.map +1 -1
- package/dist/column/floorplan-affordances.js +6 -1
- package/dist/column/floorplan.d.ts.map +1 -1
- package/dist/column/floorplan.js +23 -11
- package/dist/column/hosted-resize.d.ts +116 -0
- package/dist/column/hosted-resize.d.ts.map +1 -0
- package/dist/column/hosted-resize.js +9 -0
- package/dist/column/panel.d.ts.map +1 -1
- package/dist/column/panel.js +6 -3
- package/dist/column/renderer.d.ts.map +1 -1
- package/dist/column/renderer.js +25 -103
- package/dist/column/shape.d.ts +22 -0
- package/dist/column/shape.d.ts.map +1 -0
- package/dist/column/shape.js +120 -0
- package/dist/column/surface.d.ts +4 -0
- package/dist/column/surface.d.ts.map +1 -0
- package/dist/column/surface.js +66 -0
- package/dist/cupola/definition.d.ts.map +1 -1
- package/dist/cupola/definition.js +1 -0
- package/dist/cupola/panel.js +1 -1
- package/dist/door/definition.d.ts.map +1 -1
- package/dist/door/definition.js +40 -1
- package/dist/door/door-math.d.ts +1 -1
- package/dist/door/door-math.d.ts.map +1 -1
- package/dist/door/door-math.js +7 -10
- package/dist/door/floorplan-affordances.d.ts.map +1 -1
- package/dist/door/floorplan-affordances.js +8 -12
- package/dist/door/move-tool.d.ts.map +1 -1
- package/dist/door/move-tool.js +3 -4
- package/dist/door/panel.d.ts.map +1 -1
- package/dist/door/panel.js +28 -57
- package/dist/door/tool.d.ts.map +1 -1
- package/dist/door/tool.js +20 -2
- package/dist/dormer/definition.d.ts.map +1 -1
- package/dist/dormer/definition.js +1 -0
- package/dist/dormer/panel-position-section.js +2 -2
- package/dist/dormer/panel.js +1 -1
- package/dist/downspout/definition.d.ts.map +1 -1
- package/dist/downspout/definition.js +1 -0
- package/dist/duct-segment/parametrics.d.ts.map +1 -1
- package/dist/duct-segment/parametrics.js +5 -1
- package/dist/duct-segment/tool.d.ts +1 -0
- package/dist/duct-segment/tool.d.ts.map +1 -1
- package/dist/duct-segment/tool.js +21 -8
- package/dist/duct-terminal/tool.d.ts.map +1 -1
- package/dist/duct-terminal/tool.js +77 -8
- package/dist/elevator/definition.d.ts.map +1 -1
- package/dist/elevator/definition.js +2 -0
- package/dist/elevator/parametrics.d.ts.map +1 -1
- package/dist/elevator/parametrics.js +98 -1
- package/dist/eyebrow-vent/definition.d.ts.map +1 -1
- package/dist/eyebrow-vent/definition.js +1 -0
- package/dist/eyebrow-vent/panel.js +1 -1
- package/dist/fence/definition.d.ts.map +1 -1
- package/dist/fence/definition.js +1 -0
- package/dist/fence/inspector-editors.js +1 -1
- package/dist/fence/tool.js +2 -2
- package/dist/guide/definition.d.ts.map +1 -1
- package/dist/guide/definition.js +1 -0
- package/dist/gutter/definition.d.ts.map +1 -1
- package/dist/gutter/definition.js +1 -0
- package/dist/hvac-equipment/tool.d.ts.map +1 -1
- package/dist/hvac-equipment/tool.js +8 -2
- package/dist/imported-mesh/definition.d.ts +5 -0
- package/dist/imported-mesh/definition.d.ts.map +1 -0
- package/dist/imported-mesh/definition.js +38 -0
- package/dist/imported-mesh/floorplan.d.ts +4 -0
- package/dist/imported-mesh/floorplan.d.ts.map +1 -0
- package/dist/imported-mesh/floorplan.js +34 -0
- package/dist/imported-mesh/geometry.d.ts +5 -0
- package/dist/imported-mesh/geometry.d.ts.map +1 -0
- package/dist/imported-mesh/geometry.js +34 -0
- package/dist/imported-mesh/index.d.ts +4 -0
- package/dist/imported-mesh/index.d.ts.map +1 -0
- package/dist/imported-mesh/index.js +3 -0
- package/dist/imported-mesh/schema.d.ts +2 -0
- package/dist/imported-mesh/schema.d.ts.map +1 -0
- package/dist/imported-mesh/schema.js +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -0
- package/dist/item/__fixtures__/main-floorplan.d.ts +26 -0
- package/dist/item/__fixtures__/main-floorplan.d.ts.map +1 -0
- package/dist/item/__fixtures__/main-floorplan.js +297 -0
- package/dist/item/definition.d.ts.map +1 -1
- package/dist/item/definition.js +3 -1
- package/dist/item/floorplan-move.d.ts +9 -1
- package/dist/item/floorplan-move.d.ts.map +1 -1
- package/dist/item/floorplan-move.js +231 -99
- package/dist/item/floorplan.d.ts +22 -0
- package/dist/item/floorplan.d.ts.map +1 -1
- package/dist/item/floorplan.js +72 -2
- package/dist/item/move-tool.d.ts +1 -1
- package/dist/item/move-tool.d.ts.map +1 -1
- package/dist/item/move-tool.js +15 -7
- package/dist/item/panel.js +1 -1
- package/dist/item/renderer.d.ts.map +1 -1
- package/dist/item/renderer.js +8 -2
- package/dist/level/renderer.js +1 -1
- package/dist/lineset/tool.d.ts.map +1 -1
- package/dist/lineset/tool.js +1 -0
- package/dist/liquid-line/tool.d.ts.map +1 -1
- package/dist/liquid-line/tool.js +5 -1
- package/dist/measurement/definition.d.ts.map +1 -1
- package/dist/measurement/definition.js +1 -0
- package/dist/pipe-segment/parametrics.d.ts.map +1 -1
- package/dist/pipe-segment/parametrics.js +5 -1
- package/dist/pipe-segment/tool.d.ts.map +1 -1
- package/dist/pipe-segment/tool.js +14 -3
- package/dist/pipe-trap/tool.d.ts.map +1 -1
- package/dist/pipe-trap/tool.js +7 -8
- package/dist/procedural-item/definition.d.ts +4 -0
- package/dist/procedural-item/definition.d.ts.map +1 -0
- package/dist/procedural-item/definition.js +257 -0
- package/dist/procedural-item/geometry.d.ts +31 -0
- package/dist/procedural-item/geometry.d.ts.map +1 -0
- package/dist/procedural-item/geometry.js +88 -0
- package/dist/procedural-item/index.d.ts +3 -0
- package/dist/procedural-item/index.d.ts.map +1 -0
- package/dist/procedural-item/index.js +2 -0
- package/dist/procedural-item/move-session.d.ts +15 -0
- package/dist/procedural-item/move-session.d.ts.map +1 -0
- package/dist/procedural-item/move-session.js +197 -0
- package/dist/procedural-item/move-tool.d.ts +5 -0
- package/dist/procedural-item/move-tool.d.ts.map +1 -0
- package/dist/procedural-item/move-tool.js +193 -0
- package/dist/procedural-item/renderer.d.ts +5 -0
- package/dist/procedural-item/renderer.d.ts.map +1 -0
- package/dist/procedural-item/renderer.js +66 -0
- package/dist/ridge-vent/definition.d.ts.map +1 -1
- package/dist/ridge-vent/definition.js +1 -0
- package/dist/ridge-vent/panel.js +4 -4
- package/dist/roof/definition.d.ts.map +1 -1
- package/dist/roof/definition.js +4 -1
- package/dist/roof/panel-model.d.ts +4 -0
- package/dist/roof/panel-model.d.ts.map +1 -0
- package/dist/roof/panel-model.js +151 -0
- package/dist/roof/panel.d.ts.map +1 -1
- package/dist/roof/panel.js +9 -8
- package/dist/roof/parametrics.d.ts.map +1 -1
- package/dist/roof/parametrics.js +16 -1
- package/dist/roof-segment/definition.d.ts.map +1 -1
- package/dist/roof-segment/definition.js +1 -0
- package/dist/roof-segment/panel.d.ts.map +1 -1
- package/dist/roof-segment/panel.js +5 -5
- package/dist/roof-segment/parametrics.d.ts.map +1 -1
- package/dist/roof-segment/parametrics.js +176 -1
- package/dist/scan/definition.d.ts.map +1 -1
- package/dist/scan/definition.js +1 -0
- package/dist/shared/automatic-run-end-cap.d.ts +1 -0
- package/dist/shared/automatic-run-end-cap.d.ts.map +1 -1
- package/dist/shared/automatic-run-end-cap.js +10 -0
- package/dist/shared/commit-opening-move.d.ts +4 -0
- package/dist/shared/commit-opening-move.d.ts.map +1 -0
- package/dist/shared/commit-opening-move.js +9 -0
- package/dist/shared/curtain-opening-limits.d.ts +14 -0
- package/dist/shared/curtain-opening-limits.d.ts.map +1 -0
- package/dist/shared/curtain-opening-limits.js +53 -0
- package/dist/shared/distribution-run-tool.d.ts +10 -0
- package/dist/shared/distribution-run-tool.d.ts.map +1 -1
- package/dist/shared/distribution-run-tool.js +56 -11
- package/dist/shared/draft-axis-guides.d.ts +0 -6
- package/dist/shared/draft-axis-guides.d.ts.map +1 -1
- package/dist/shared/draft-axis-guides.js +1 -8
- package/dist/shared/hosted-resize.d.ts +12 -0
- package/dist/shared/hosted-resize.d.ts.map +1 -0
- package/dist/shared/hosted-resize.js +166 -0
- package/dist/shared/opening-grid-follow.d.ts +8 -0
- package/dist/shared/opening-grid-follow.d.ts.map +1 -0
- package/dist/shared/opening-grid-follow.js +12 -0
- package/dist/shared/opening-property-preview-host.d.ts +3 -0
- package/dist/shared/opening-property-preview-host.d.ts.map +1 -0
- package/dist/shared/opening-property-preview-host.js +21 -0
- package/dist/shared/opening-property-preview.d.ts +19 -0
- package/dist/shared/opening-property-preview.d.ts.map +1 -0
- package/dist/shared/opening-property-preview.js +99 -0
- package/dist/shared/panel-fields.d.ts +15 -0
- package/dist/shared/panel-fields.d.ts.map +1 -0
- package/dist/shared/panel-fields.js +31 -0
- package/dist/shared/resting-surface-plan.d.ts +4 -0
- package/dist/shared/resting-surface-plan.d.ts.map +1 -0
- package/dist/shared/resting-surface-plan.js +53 -0
- package/dist/shared/surface-counterparts.d.ts +12 -0
- package/dist/shared/surface-counterparts.d.ts.map +1 -0
- package/dist/shared/surface-counterparts.js +27 -0
- package/dist/shared/wall-attach-target.d.ts +1 -0
- package/dist/shared/wall-attach-target.d.ts.map +1 -1
- package/dist/shared/wall-attach-target.js +4 -1
- package/dist/shared/wall-event-from-grid.d.ts +5 -0
- package/dist/shared/wall-event-from-grid.d.ts.map +1 -0
- package/dist/shared/wall-event-from-grid.js +36 -0
- package/dist/shelf/definition.d.ts.map +1 -1
- package/dist/shelf/definition.js +5 -2
- package/dist/shelf/floorplan-affordances.d.ts.map +1 -1
- package/dist/shelf/floorplan-affordances.js +5 -3
- package/dist/shelf/floorplan-move.d.ts.map +1 -1
- package/dist/shelf/floorplan-move.js +3 -2
- package/dist/shelf/floorplan.d.ts.map +1 -1
- package/dist/shelf/floorplan.js +9 -2
- package/dist/shelf/geometry.d.ts.map +1 -1
- package/dist/shelf/geometry.js +2 -10
- package/dist/site/renderer.d.ts.map +1 -1
- package/dist/site/renderer.js +9 -2
- package/dist/skylight/definition.d.ts.map +1 -1
- package/dist/skylight/definition.js +1 -0
- package/dist/skylight/panel.js +6 -6
- package/dist/slab/definition.d.ts.map +1 -1
- package/dist/slab/definition.js +4 -0
- package/dist/slab/panel.js +1 -1
- package/dist/solar-panel/definition.d.ts.map +1 -1
- package/dist/solar-panel/definition.js +1 -0
- package/dist/solar-panel/panel.js +2 -2
- package/dist/spawn/definition.d.ts.map +1 -1
- package/dist/spawn/definition.js +1 -0
- package/dist/spawn/panel.js +1 -1
- package/dist/stair/definition.d.ts.map +1 -1
- package/dist/stair/definition.js +2 -0
- package/dist/stair/panel.d.ts.map +1 -1
- package/dist/stair/panel.js +9 -7
- package/dist/stair/parametrics.d.ts.map +1 -1
- package/dist/stair/parametrics.js +164 -1
- package/dist/stair-segment/definition.d.ts.map +1 -1
- package/dist/stair-segment/definition.js +1 -0
- package/dist/stair-segment/panel.js +4 -4
- package/dist/stair-segment/parametrics.d.ts.map +1 -1
- package/dist/stair-segment/parametrics.js +81 -1
- package/dist/turbine-vent/definition.d.ts.map +1 -1
- package/dist/turbine-vent/definition.js +1 -0
- package/dist/turbine-vent/panel.js +1 -1
- package/dist/unit/definition.d.ts +10 -0
- package/dist/unit/definition.d.ts.map +1 -0
- package/dist/unit/definition.js +38 -0
- package/dist/unit/index.d.ts +2 -0
- package/dist/unit/index.d.ts.map +1 -0
- package/dist/unit/index.js +1 -0
- package/dist/unit/parametrics.d.ts +3 -0
- package/dist/unit/parametrics.d.ts.map +1 -0
- package/dist/unit/parametrics.js +4 -0
- package/dist/unit/schema.d.ts +2 -0
- package/dist/unit/schema.d.ts.map +1 -0
- package/dist/unit/schema.js +1 -0
- package/dist/unit/unit-panel.d.ts +5 -0
- package/dist/unit/unit-panel.d.ts.map +1 -0
- package/dist/unit/unit-panel.js +61 -0
- package/dist/wall/actions.d.ts +3 -0
- package/dist/wall/actions.d.ts.map +1 -0
- package/dist/wall/actions.js +56 -0
- package/dist/wall/curtain-opening-frame.d.ts +14 -0
- package/dist/wall/curtain-opening-frame.d.ts.map +1 -0
- package/dist/wall/curtain-opening-frame.js +111 -0
- package/dist/wall/curtain-panel-highlight.d.ts +3 -0
- package/dist/wall/curtain-panel-highlight.d.ts.map +1 -0
- package/dist/wall/curtain-panel-highlight.js +113 -0
- package/dist/wall/curtain-wall-adapter.d.ts +3 -0
- package/dist/wall/curtain-wall-adapter.d.ts.map +1 -0
- package/dist/wall/curtain-wall-adapter.js +55 -0
- package/dist/wall/curtain-wall-floorplan.d.ts +3 -0
- package/dist/wall/curtain-wall-floorplan.d.ts.map +1 -0
- package/dist/wall/curtain-wall-floorplan.js +91 -0
- package/dist/wall/curtain-wall-geometry.d.ts +4 -0
- package/dist/wall/curtain-wall-geometry.d.ts.map +1 -0
- package/dist/wall/curtain-wall-geometry.js +226 -0
- package/dist/wall/curtain-wall-layout.d.ts +16 -0
- package/dist/wall/curtain-wall-layout.d.ts.map +1 -0
- package/dist/wall/curtain-wall-layout.js +176 -0
- package/dist/wall/curtain-wall-materials.d.ts +5 -0
- package/dist/wall/curtain-wall-materials.d.ts.map +1 -0
- package/dist/wall/curtain-wall-materials.js +55 -0
- package/dist/wall/curtain-wall-panel.d.ts +14 -0
- package/dist/wall/curtain-wall-panel.d.ts.map +1 -0
- package/dist/wall/curtain-wall-panel.js +167 -0
- package/dist/wall/curtain-wall-piece-geometry.d.ts +5 -0
- package/dist/wall/curtain-wall-piece-geometry.d.ts.map +1 -0
- package/dist/wall/curtain-wall-piece-geometry.js +220 -0
- package/dist/wall/curtain-wall-shadow.d.ts +4 -0
- package/dist/wall/curtain-wall-shadow.d.ts.map +1 -0
- package/dist/wall/curtain-wall-shadow.js +15 -0
- package/dist/wall/definition.d.ts +0 -15
- package/dist/wall/definition.d.ts.map +1 -1
- package/dist/wall/definition.js +65 -4
- package/dist/wall/drawing-mode.d.ts +12 -0
- package/dist/wall/drawing-mode.d.ts.map +1 -0
- package/dist/wall/drawing-mode.js +38 -0
- package/dist/wall/floorplan-tool.d.ts +4 -0
- package/dist/wall/floorplan-tool.d.ts.map +1 -0
- package/dist/wall/floorplan-tool.js +107 -0
- package/dist/wall/floorplan.d.ts.map +1 -1
- package/dist/wall/floorplan.js +6 -2
- package/dist/wall/length-patch.d.ts +3 -0
- package/dist/wall/length-patch.d.ts.map +1 -0
- package/dist/wall/length-patch.js +14 -0
- package/dist/wall/move-tool.d.ts.map +1 -1
- package/dist/wall/move-tool.js +23 -1
- package/dist/wall/paint.d.ts.map +1 -1
- package/dist/wall/paint.js +39 -4
- package/dist/wall/panel-model.d.ts +4 -0
- package/dist/wall/panel-model.d.ts.map +1 -0
- package/dist/wall/panel-model.js +117 -0
- package/dist/wall/panel.d.ts.map +1 -1
- package/dist/wall/panel.js +20 -24
- package/dist/wall/property-preview.d.ts +7 -0
- package/dist/wall/property-preview.d.ts.map +1 -0
- package/dist/wall/property-preview.js +31 -0
- package/dist/wall/rectangle-command.d.ts +149 -0
- package/dist/wall/rectangle-command.d.ts.map +1 -0
- package/dist/wall/rectangle-command.js +22 -0
- package/dist/wall/rectangle-tool.d.ts +2 -0
- package/dist/wall/rectangle-tool.d.ts.map +1 -0
- package/dist/wall/rectangle-tool.js +147 -0
- package/dist/wall/renderer.d.ts.map +1 -1
- package/dist/wall/renderer.js +7 -4
- package/dist/wall/slots.d.ts +2 -2
- package/dist/wall/slots.d.ts.map +1 -1
- package/dist/wall/slots.js +10 -2
- package/dist/wall/split-floorplan-layer.d.ts +4 -0
- package/dist/wall/split-floorplan-layer.d.ts.map +1 -0
- package/dist/wall/split-floorplan-layer.js +71 -0
- package/dist/wall/split-pointer.d.ts +3 -0
- package/dist/wall/split-pointer.d.ts.map +1 -0
- package/dist/wall/split-pointer.js +95 -0
- package/dist/wall/split-preview.d.ts +55 -0
- package/dist/wall/split-preview.d.ts.map +1 -0
- package/dist/wall/split-preview.js +106 -0
- package/dist/wall/split-session.d.ts +16 -0
- package/dist/wall/split-session.d.ts.map +1 -0
- package/dist/wall/split-session.js +138 -0
- package/dist/wall/split-store.d.ts +16 -0
- package/dist/wall/split-store.d.ts.map +1 -0
- package/dist/wall/split-store.js +6 -0
- package/dist/wall/split-tool.d.ts +10 -0
- package/dist/wall/split-tool.d.ts.map +1 -0
- package/dist/wall/split-tool.js +95 -0
- package/dist/wall/system.d.ts.map +1 -1
- package/dist/wall/system.js +3 -1
- package/dist/wall/tool.d.ts.map +1 -1
- package/dist/wall/tool.js +14 -6
- package/dist/wall/wall-batch-system.d.ts.map +1 -1
- package/dist/wall/wall-batch-system.js +3 -0
- package/dist/window/definition.d.ts.map +1 -1
- package/dist/window/definition.js +48 -1
- package/dist/window/floorplan-affordances.d.ts.map +1 -1
- package/dist/window/floorplan-affordances.js +8 -10
- package/dist/window/move-tool.d.ts.map +1 -1
- package/dist/window/move-tool.js +4 -6
- package/dist/window/panel.d.ts.map +1 -1
- package/dist/window/panel.js +22 -60
- package/dist/window/tool.d.ts.map +1 -1
- package/dist/window/tool.js +34 -2
- package/dist/window/window-math.d.ts +1 -1
- package/dist/window/window-math.d.ts.map +1 -1
- package/dist/window/window-math.js +8 -11
- package/dist/zone/definition.d.ts.map +1 -1
- package/dist/zone/definition.js +8 -1
- package/dist/zone/floorplan.d.ts +1 -3
- package/dist/zone/floorplan.d.ts.map +1 -1
- package/dist/zone/floorplan.js +43 -28
- package/dist/zone/quantities-panel.d.ts.map +1 -1
- package/dist/zone/quantities-panel.js +32 -44
- package/dist/zone/renderer.d.ts.map +1 -1
- package/dist/zone/renderer.js +21 -7
- package/dist/zone/unit-membership.d.ts +12 -0
- package/dist/zone/unit-membership.d.ts.map +1 -0
- package/dist/zone/unit-membership.js +22 -0
- package/package.json +15 -9
- package/dist/shared/opening-documentation-fields.d.ts +0 -16
- package/dist/shared/opening-documentation-fields.d.ts.map +0 -1
- package/dist/shared/opening-documentation-fields.js +0 -54
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { DuctTerminalNode, emitter, pointInPolygon, resolveCeilingHeight, resolveLevelId, resolveSupportSlabPatch, sceneRegistry, useScene, } from '@pascal-app/core';
|
|
4
|
-
import { CursorSphere, getFloorStackPreviewPosition, isGridSnapActive, isMagneticSnapActive, triggerSFX, useEditor, } from '@pascal-app/editor';
|
|
4
|
+
import { CursorSphere, getFloorStackPreviewPosition, getSpatialPointerId, isGridSnapActive, isMagneticSnapActive, triggerSFX, useEditor, } from '@pascal-app/editor';
|
|
5
5
|
import { useViewer } from '@pascal-app/viewer';
|
|
6
6
|
import { Html } from '@react-three/drei';
|
|
7
7
|
import { useThree } from '@react-three/fiber';
|
|
@@ -111,6 +111,7 @@ function resolvePortSnap(position, fallbackYaw) {
|
|
|
111
111
|
const DuctTerminalTool = () => {
|
|
112
112
|
const { camera, gl } = useThree();
|
|
113
113
|
const activeLevelId = useViewer((s) => s.selection.levelId);
|
|
114
|
+
const toolDefaults = useEditor((s) => s.toolDefaults['duct-terminal']);
|
|
114
115
|
const [mount, setMount] = useState('floor');
|
|
115
116
|
const [placement, setPlacement] = useState(null);
|
|
116
117
|
const mountRef = useRef('floor');
|
|
@@ -121,11 +122,12 @@ const DuctTerminalTool = () => {
|
|
|
121
122
|
// override the manual M selection (port direction picks floor / ceiling /
|
|
122
123
|
// wall), so the preview must show the inferred mount, not the toolbar one.
|
|
123
124
|
const effectiveMount = placement?.mount ?? mount;
|
|
124
|
-
const
|
|
125
|
+
const configuredNode = useMemo(() => DuctTerminalNode.parse({
|
|
125
126
|
...ductTerminalDefinition.defaults(),
|
|
127
|
+
...toolDefaults,
|
|
126
128
|
name: 'Register',
|
|
127
|
-
|
|
128
|
-
}), [effectiveMount]);
|
|
129
|
+
}), [toolDefaults]);
|
|
130
|
+
const previewNode = useMemo(() => DuctTerminalNode.parse({ ...configuredNode, mount: effectiveMount }), [configuredNode, effectiveMount]);
|
|
129
131
|
const ghost = useMemo(() => {
|
|
130
132
|
const group = buildDuctTerminalGeometry(previewNode);
|
|
131
133
|
group.traverse((child) => {
|
|
@@ -137,6 +139,11 @@ const DuctTerminalTool = () => {
|
|
|
137
139
|
});
|
|
138
140
|
return group;
|
|
139
141
|
}, [previewNode]);
|
|
142
|
+
useEffect(() => {
|
|
143
|
+
mountRef.current = configuredNode.mount;
|
|
144
|
+
setMount(configuredNode.mount);
|
|
145
|
+
setPlacement(null);
|
|
146
|
+
}, [configuredNode.mount]);
|
|
140
147
|
useEffect(() => {
|
|
141
148
|
if (!activeLevelId)
|
|
142
149
|
return;
|
|
@@ -237,6 +244,7 @@ const DuctTerminalTool = () => {
|
|
|
237
244
|
const commit = (p) => {
|
|
238
245
|
const terminal = DuctTerminalNode.parse({
|
|
239
246
|
...ductTerminalDefinition.defaults(),
|
|
247
|
+
...toolDefaults,
|
|
240
248
|
name: 'Register',
|
|
241
249
|
mount: p.mount,
|
|
242
250
|
position: p.position,
|
|
@@ -251,17 +259,63 @@ const DuctTerminalTool = () => {
|
|
|
251
259
|
useViewer.getState().setSelection({ selectedIds: [committedTerminal.id] });
|
|
252
260
|
triggerSFX('sfx:item-place');
|
|
253
261
|
};
|
|
254
|
-
// ---- Floor / ceiling: own raycast against a horizontal plane ----
|
|
255
262
|
let lastPointer = null;
|
|
256
263
|
let lastWall = null;
|
|
264
|
+
let lastGrid = null;
|
|
265
|
+
let lastXRNode = null;
|
|
266
|
+
const resolveGrid = (event) => {
|
|
267
|
+
const step = isGridSnapActive() ? useEditor.getState().gridSnapStep : 0;
|
|
268
|
+
const position = alignDrawPoint([snap(event.localPosition[0], step), 0, snap(event.localPosition[2], step)], { applySnap: isMagneticSnapActive(), bypass: !isMagneticSnapActive() });
|
|
269
|
+
const snapEnabled = isGridSnapActive() || isMagneticSnapActive();
|
|
270
|
+
const mated = snapEnabled ? resolvePortSnap(position, yawRef.current) : null;
|
|
271
|
+
return mated
|
|
272
|
+
? { position: mated.position, yaw: mated.yaw, mount: mated.mount, snapped: true }
|
|
273
|
+
: { position, yaw: yawRef.current, mount: 'floor' };
|
|
274
|
+
};
|
|
275
|
+
const onGridMove = (event) => {
|
|
276
|
+
lastGrid = event;
|
|
277
|
+
if (mountRef.current === 'floor')
|
|
278
|
+
setPlacement(resolveGrid(event));
|
|
279
|
+
};
|
|
280
|
+
const onGridClick = (event) => {
|
|
281
|
+
if (mountRef.current === 'floor')
|
|
282
|
+
commit(resolveGrid(event));
|
|
283
|
+
};
|
|
284
|
+
const resolveXRCeiling = (event) => {
|
|
285
|
+
if (mountRef.current !== 'ceiling' || event.node.type !== 'ceiling')
|
|
286
|
+
return null;
|
|
287
|
+
if (getSpatialPointerId(event.nativeEvent) == null)
|
|
288
|
+
return null;
|
|
289
|
+
const world = new Vector3(...event.position);
|
|
290
|
+
const level = activeLevelMesh();
|
|
291
|
+
const local = level ? level.worldToLocal(world) : world;
|
|
292
|
+
return {
|
|
293
|
+
position: [local.x, resolveCeilingHeight(event.node, useScene.getState().nodes), local.z],
|
|
294
|
+
yaw: yawRef.current,
|
|
295
|
+
mount: 'ceiling',
|
|
296
|
+
};
|
|
297
|
+
};
|
|
298
|
+
const onXRNodeMove = (event) => {
|
|
299
|
+
lastXRNode = event;
|
|
300
|
+
const p = resolveXRCeiling(event);
|
|
301
|
+
if (p)
|
|
302
|
+
setPlacement(p);
|
|
303
|
+
};
|
|
304
|
+
const onXRNodeClick = (event) => {
|
|
305
|
+
const p = resolveXRCeiling(event);
|
|
306
|
+
if (p)
|
|
307
|
+
commit(p);
|
|
308
|
+
};
|
|
309
|
+
// ---- Ceiling: desktop owns a canvas ray; XR uses the spatial node ray. ----
|
|
257
310
|
const onPointerMove = (e) => {
|
|
258
311
|
lastPointer = e;
|
|
259
|
-
|
|
312
|
+
lastXRNode = null;
|
|
313
|
+
if (mountRef.current !== 'ceiling')
|
|
260
314
|
return;
|
|
261
315
|
setPlacement(resolvePlanar(e));
|
|
262
316
|
};
|
|
263
317
|
const onCanvasClick = (e) => {
|
|
264
|
-
if (mountRef.current
|
|
318
|
+
if (mountRef.current !== 'ceiling')
|
|
265
319
|
return;
|
|
266
320
|
if (useViewer.getState().cameraDragging)
|
|
267
321
|
return;
|
|
@@ -350,11 +404,22 @@ const DuctTerminalTool = () => {
|
|
|
350
404
|
if (lastWall)
|
|
351
405
|
onWallMove(lastWall);
|
|
352
406
|
}
|
|
407
|
+
else if (mountRef.current === 'floor') {
|
|
408
|
+
if (lastGrid)
|
|
409
|
+
onGridMove(lastGrid);
|
|
410
|
+
}
|
|
411
|
+
else if (lastXRNode && getSpatialPointerId(lastXRNode.nativeEvent) != null) {
|
|
412
|
+
onXRNodeMove(lastXRNode);
|
|
413
|
+
}
|
|
353
414
|
else if (lastPointer)
|
|
354
415
|
onPointerMove(lastPointer);
|
|
355
416
|
});
|
|
356
417
|
canvas.addEventListener('pointermove', onPointerMove);
|
|
357
418
|
canvas.addEventListener('click', onCanvasClick);
|
|
419
|
+
emitter.on('grid:move', onGridMove);
|
|
420
|
+
emitter.on('grid:click', onGridClick);
|
|
421
|
+
emitter.on('node:move', onXRNodeMove);
|
|
422
|
+
emitter.on('node:click', onXRNodeClick);
|
|
358
423
|
emitter.on('wall:move', onWallMove);
|
|
359
424
|
emitter.on('wall:click', onWallClick);
|
|
360
425
|
window.addEventListener('keydown', onKeyDown, true);
|
|
@@ -362,12 +427,16 @@ const DuctTerminalTool = () => {
|
|
|
362
427
|
unsubscribeSnapping();
|
|
363
428
|
canvas.removeEventListener('pointermove', onPointerMove);
|
|
364
429
|
canvas.removeEventListener('click', onCanvasClick);
|
|
430
|
+
emitter.off('grid:move', onGridMove);
|
|
431
|
+
emitter.off('grid:click', onGridClick);
|
|
432
|
+
emitter.off('node:move', onXRNodeMove);
|
|
433
|
+
emitter.off('node:click', onXRNodeClick);
|
|
365
434
|
emitter.off('wall:move', onWallMove);
|
|
366
435
|
emitter.off('wall:click', onWallClick);
|
|
367
436
|
window.removeEventListener('keydown', onKeyDown, true);
|
|
368
437
|
clearDrawAlignment();
|
|
369
438
|
};
|
|
370
|
-
}, [activeLevelId, camera, gl]);
|
|
439
|
+
}, [activeLevelId, camera, gl, toolDefaults]);
|
|
371
440
|
if (!activeLevelId || !placement)
|
|
372
441
|
return null;
|
|
373
442
|
const mountLabel = effectiveMount.charAt(0).toUpperCase() + effectiveMount.slice(1);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/elevator/definition.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,cAAc,EAEpB,MAAM,kBAAkB,CAAA;AAKzB,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAsJvC;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,EAAE,cAAc,CAAC,OAAO,YAAY,
|
|
1
|
+
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/elevator/definition.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,cAAc,EAEpB,MAAM,kBAAkB,CAAA;AAKzB,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAsJvC;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,EAAE,cAAc,CAAC,OAAO,YAAY,CAgHlE,CAAA"}
|
|
@@ -173,6 +173,7 @@ export const elevatorDefinition = {
|
|
|
173
173
|
return rest;
|
|
174
174
|
},
|
|
175
175
|
capabilities: {
|
|
176
|
+
surfacePlacement: 'floor-only',
|
|
176
177
|
selectable: { hitVolume: 'bbox' },
|
|
177
178
|
// Generic XZ translate so the floating action menu's Move button
|
|
178
179
|
// (and the side move-arrows emitted from `def.floorplan`) drive the
|
|
@@ -220,6 +221,7 @@ export const elevatorDefinition = {
|
|
|
220
221
|
handles: elevatorHandles,
|
|
221
222
|
// No dirty consumer rebuilds this kind — see NodeDefinition.dirtyTracking.
|
|
222
223
|
dirtyTracking: false,
|
|
224
|
+
rendersChildren: false,
|
|
223
225
|
renderer: {
|
|
224
226
|
kind: 'parametric',
|
|
225
227
|
module: () => import('./renderer'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parametrics.d.ts","sourceRoot":"","sources":["../../src/elevator/parametrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAE1E,eAAO,MAAM,mBAAmB,EAAE,oBAAoB,CAAC,YAAY,
|
|
1
|
+
{"version":3,"file":"parametrics.d.ts","sourceRoot":"","sources":["../../src/elevator/parametrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAE1E,eAAO,MAAM,mBAAmB,EAAE,oBAAoB,CAAC,YAAY,CAoGlE,CAAA"}
|
|
@@ -1,4 +1,101 @@
|
|
|
1
1
|
export const elevatorParametrics = {
|
|
2
|
-
groups: [
|
|
2
|
+
groups: [
|
|
3
|
+
{
|
|
4
|
+
label: 'Position',
|
|
5
|
+
fields: [
|
|
6
|
+
{ key: 'position', kind: 'vec3' },
|
|
7
|
+
{
|
|
8
|
+
key: 'rotation',
|
|
9
|
+
kind: 'number',
|
|
10
|
+
label: 'Rotation (rad)',
|
|
11
|
+
min: -Math.PI,
|
|
12
|
+
max: Math.PI,
|
|
13
|
+
step: Math.PI / 36,
|
|
14
|
+
},
|
|
15
|
+
],
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
label: 'Cab',
|
|
19
|
+
fields: [
|
|
20
|
+
{ key: 'width', kind: 'number', unit: 'm', min: 0.8, max: 1000, step: 0.05 },
|
|
21
|
+
{ key: 'depth', kind: 'number', unit: 'm', min: 0.8, max: 1000, step: 0.05 },
|
|
22
|
+
{ key: 'cabHeight', kind: 'number', unit: 'm', min: 1.8, max: 1000, step: 0.05 },
|
|
23
|
+
],
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
label: 'Shaft',
|
|
27
|
+
fields: [
|
|
28
|
+
{
|
|
29
|
+
key: 'shaftWallThickness',
|
|
30
|
+
kind: 'number',
|
|
31
|
+
label: 'Wall thickness',
|
|
32
|
+
unit: 'm',
|
|
33
|
+
min: 0.04,
|
|
34
|
+
max: 0.4,
|
|
35
|
+
step: 0.01,
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
key: 'shaftStyle',
|
|
39
|
+
kind: 'enum',
|
|
40
|
+
options: ['solid', 'glass'],
|
|
41
|
+
display: 'segmented',
|
|
42
|
+
},
|
|
43
|
+
],
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
label: 'Doors',
|
|
47
|
+
fields: [
|
|
48
|
+
{ key: 'doorWidth', kind: 'number', unit: 'm', min: 0.45, max: 1000, step: 0.05 },
|
|
49
|
+
{ key: 'doorHeight', kind: 'number', unit: 'm', min: 1.2, max: 1000, step: 0.05 },
|
|
50
|
+
{
|
|
51
|
+
key: 'doorStyle',
|
|
52
|
+
kind: 'enum',
|
|
53
|
+
options: ['center-opening', 'single-left', 'single-right'],
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
key: 'doorPanelStyle',
|
|
57
|
+
kind: 'enum',
|
|
58
|
+
label: 'Panel style',
|
|
59
|
+
options: ['glass-frame', 'solid-panel', 'segmented-panel'],
|
|
60
|
+
},
|
|
61
|
+
],
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
label: 'Levels',
|
|
65
|
+
fields: [
|
|
66
|
+
{ key: 'fromLevelId', kind: 'ref', label: 'From level', refKind: 'level' },
|
|
67
|
+
{ key: 'toLevelId', kind: 'ref', label: 'To level', refKind: 'level' },
|
|
68
|
+
{ key: 'defaultLevelId', kind: 'ref', label: 'Default level', refKind: 'level' },
|
|
69
|
+
],
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
label: 'Motion',
|
|
73
|
+
fields: [
|
|
74
|
+
{ key: 'speed', kind: 'number', unit: 'm/s', min: 0.5, max: 8, step: 0.1 },
|
|
75
|
+
{
|
|
76
|
+
key: 'doorDurationMs',
|
|
77
|
+
kind: 'number',
|
|
78
|
+
label: 'Door time',
|
|
79
|
+
unit: 'ms',
|
|
80
|
+
min: 300,
|
|
81
|
+
max: 2200,
|
|
82
|
+
step: 50,
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
key: 'dwellMs',
|
|
86
|
+
kind: 'number',
|
|
87
|
+
label: 'Dwell',
|
|
88
|
+
unit: 'ms',
|
|
89
|
+
min: 300,
|
|
90
|
+
max: 5000,
|
|
91
|
+
step: 100,
|
|
92
|
+
},
|
|
93
|
+
],
|
|
94
|
+
},
|
|
95
|
+
],
|
|
96
|
+
derive: (next) => ({
|
|
97
|
+
doorHeight: Math.min(next.doorHeight, Math.max(1.2, next.cabHeight - 0.1)),
|
|
98
|
+
doorWidth: Math.min(next.doorWidth, Math.max(0.45, next.width - 0.1)),
|
|
99
|
+
}),
|
|
3
100
|
customPanel: () => import('./panel'),
|
|
4
101
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/eyebrow-vent/definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,kBAAkB,CAAA;AAIzB,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AA+F1C;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,EAAE,cAAc,CAAC,OAAO,eAAe,
|
|
1
|
+
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/eyebrow-vent/definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,kBAAkB,CAAA;AAIzB,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AA+F1C;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,EAAE,cAAc,CAAC,OAAO,eAAe,CA+DxE,CAAA"}
|
|
@@ -127,6 +127,7 @@ export const eyebrowVentDefinition = {
|
|
|
127
127
|
parametrics: eyebrowVentParametrics,
|
|
128
128
|
handles: eyebrowVentHandles,
|
|
129
129
|
floorplan: buildEyebrowVentFloorplan,
|
|
130
|
+
rendersChildren: false,
|
|
130
131
|
renderer: {
|
|
131
132
|
kind: 'parametric',
|
|
132
133
|
module: () => import('./renderer'),
|
|
@@ -102,5 +102,5 @@ export default function EyebrowVentPanel() {
|
|
|
102
102
|
{ label: 'Scoop', value: 'scoop' },
|
|
103
103
|
{ label: 'Half-round', value: 'half-round' },
|
|
104
104
|
{ label: 'Slant-box', value: 'slant-box' },
|
|
105
|
-
], value: node.style ?? 'scoop' }), _jsx(SliderControl, { label: "Louvers", max: 8, min: 0, onChange: (v) => previewProp({ louverCount: Math.round(v) }), onCommit: (v) => handleUpdate({ louverCount: Math.round(v) }), precision: 0, restoreOnCommit: false, step: 1, value: node.louverCount ?? 3 }), node.style === 'slant-box' ? (_jsx(SliderControl, { label: "Back height", max: 1, min: 0.15, onChange: (v) => previewProp({ backRatio: v }), onCommit: (v) => handleUpdate({ backRatio: v }), precision: 2, restoreOnCommit: false, step: 0.05, value: Math.round((node.backRatio ?? 0.5) * 100) / 100 })) : null] }), _jsxs(PanelSection, { title: "Dimensions", children: [_jsx(SliderControl, { label: "Width", max: 1000, min: 0.4, onChange: (v) => previewProp({ width: v }), onCommit: (v) => handleUpdate({ width: v }), precision: 2, restoreOnCommit: false, step: 0.05, unit: "m", value:
|
|
105
|
+
], value: node.style ?? 'scoop' }), _jsx(SliderControl, { label: "Louvers", max: 8, min: 0, onChange: (v) => previewProp({ louverCount: Math.round(v) }), onCommit: (v) => handleUpdate({ louverCount: Math.round(v) }), precision: 0, restoreOnCommit: false, step: 1, value: node.louverCount ?? 3 }), node.style === 'slant-box' ? (_jsx(SliderControl, { label: "Back height", max: 1, min: 0.15, onChange: (v) => previewProp({ backRatio: v }), onCommit: (v) => handleUpdate({ backRatio: v }), precision: 2, restoreOnCommit: false, step: 0.05, value: Math.round((node.backRatio ?? 0.5) * 100) / 100 })) : null] }), _jsxs(PanelSection, { title: "Dimensions", children: [_jsx(SliderControl, { label: "Width", max: 1000, min: 0.4, onChange: (v) => previewProp({ width: v }), onCommit: (v) => handleUpdate({ width: v }), precision: 2, restoreOnCommit: false, step: 0.05, unit: "m", value: node.width }), _jsx(SliderControl, { label: "Depth", max: 1000, min: 0.2, onChange: (v) => previewProp({ depth: v }), onCommit: (v) => handleUpdate({ depth: v }), precision: 2, restoreOnCommit: false, step: 0.05, unit: "m", value: node.depth }), _jsx(SliderControl, { label: "Height", max: 1000, min: 0.08, onChange: (v) => previewProp({ height: v }), onCommit: (v) => handleUpdate({ height: v }), precision: 2, restoreOnCommit: false, step: 0.02, unit: "m", value: node.height })] }), _jsxs(PanelSection, { title: "Position", children: [_jsx(SliderControl, { label: "X", max: Math.round(((segment?.width ?? 10) / 2) * 100) / 100, min: -Math.round(((segment?.width ?? 10) / 2) * 100) / 100, onChange: (v) => previewProp({ position: [v, node.position[1] ?? 0, node.position[2] ?? 0] }), onCommit: (v) => handleUpdate({ position: [v, node.position[1] ?? 0, node.position[2] ?? 0] }), precision: 2, restoreOnCommit: false, step: 0.05, unit: "m", value: node.position[0] ?? 0 }), _jsx(SliderControl, { label: "Y", max: Math.max((segment?.wallHeight ?? 3) + (segment ? getActiveRoofHeight(segment) : 3) + 2, (node.position[1] ?? 0) + 0.1), min: Math.min(0, (node.position[1] ?? 0) - 0.5), onChange: (v) => previewProp({ position: [node.position[0] ?? 0, v, node.position[2] ?? 0] }), onCommit: (v) => handleUpdate({ position: [node.position[0] ?? 0, v, node.position[2] ?? 0] }), precision: 2, restoreOnCommit: false, step: 0.05, unit: "m", value: node.position[1] ?? 0 }), _jsx(SliderControl, { label: "Z", max: Math.round(((segment?.depth ?? 10) / 2) * 100) / 100, min: -Math.round(((segment?.depth ?? 10) / 2) * 100) / 100, onChange: (v) => previewProp({ position: [node.position[0] ?? 0, node.position[1] ?? 0, v] }), onCommit: (v) => handleUpdate({ position: [node.position[0] ?? 0, node.position[1] ?? 0, v] }), precision: 2, restoreOnCommit: false, step: 0.05, unit: "m", value: node.position[2] ?? 0 }), _jsx(SliderControl, { label: "Rotation", max: 180, min: -180, onChange: (deg) => previewProp({ rotation: (deg * Math.PI) / 180 }), onCommit: (deg) => handleUpdate({ rotation: (deg * Math.PI) / 180 }), precision: 0, restoreOnCommit: false, step: 1, unit: "\u00B0", value: Math.round(((node.rotation ?? 0) * 180) / Math.PI) })] }), _jsx(PanelSection, { title: "Actions", children: _jsxs(ActionGroup, { children: [_jsx(ActionButton, { icon: _jsx(Move, { className: "h-3.5 w-3.5" }), label: "Move", onClick: handleMove }), _jsx(ActionButton, { icon: _jsx(Copy, { className: "h-3.5 w-3.5" }), label: "Duplicate", onClick: handleDuplicate }), _jsx(ActionButton, { className: "hover:bg-red-500/20", icon: _jsx(Trash2, { className: "h-3.5 w-3.5 text-red-400" }), label: "Delete", onClick: handleDelete })] }) })] }));
|
|
106
106
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/fence/definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,cAAc,EAEpB,MAAM,kBAAkB,CAAA;AAmBzB,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAgPpC;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,eAAe,EAAE,cAAc,CAAC,OAAO,SAAS,
|
|
1
|
+
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/fence/definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,cAAc,EAEpB,MAAM,kBAAkB,CAAA;AAmBzB,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAgPpC;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,eAAe,EAAE,cAAc,CAAC,OAAO,SAAS,CA2H5D,CAAA"}
|
package/dist/fence/definition.js
CHANGED
|
@@ -39,5 +39,5 @@ export function FenceLengthEditor({ node, onUpdate, }) {
|
|
|
39
39
|
export function FenceCurveEditor({ node, onUpdate, }) {
|
|
40
40
|
const curveOffset = getClampedWallCurveOffset(node);
|
|
41
41
|
const maxCurveOffset = getMaxWallCurveOffset(node);
|
|
42
|
-
return (_jsx(SliderControl, { label: "Curve", max: Math.max(0.01, maxCurveOffset), min: -Math.max(0.01, maxCurveOffset), onChange: (value) => onUpdate({ curveOffset: normalizeWallCurveOffset(node, value) }), precision: 2, step: 0.1, unit: "m", value:
|
|
42
|
+
return (_jsx(SliderControl, { label: "Curve", max: Math.max(0.01, maxCurveOffset), min: -Math.max(0.01, maxCurveOffset), onChange: (value) => onUpdate({ curveOffset: normalizeWallCurveOffset(node, value) }), precision: 2, step: 0.1, unit: "m", value: curveOffset }));
|
|
43
43
|
}
|
package/dist/fence/tool.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
3
|
import { calculateLevelMiters, collectAlignmentAnchors, emitter, getTwoPointFenceCurveTangents, getWallMiterBoundaryPoints, resolveAlignment, sampleFenceSpline, useScene, } from '@pascal-app/core';
|
|
4
|
-
import { CursorSphere, clearPlacementSurface, createFenceOnCurrentLevel, createSplineFenceOnCurrentLevel, EDITOR_LAYER, formatAngleRadians, formatLinearMeasurement, getAngleArcToSegmentReference, getAngleToSegmentReference, getSegmentAngleReferenceAtPoint, getSegmentGridStep, isAlignmentGuideActive, isAngleSnapActive, isGridSnapActive, isMagneticSnapActive, markToolCancelConsumed, publishPlacementSurface, resolvePointerSupportSurface, snapFenceDraftPoint, snapScalarToGrid, triggerSFX, useAlignmentGuides, useEditor, useFenceCurveDraft, useFloorplanDraftPreview, useSegmentDraftChain, } from '@pascal-app/editor';
|
|
4
|
+
import { CursorSphere, clearPlacementSurface, createFenceOnCurrentLevel, createSplineFenceOnCurrentLevel, DraftMeasurementLabel, EDITOR_LAYER, formatAngleRadians, formatLinearMeasurement, getAngleArcToSegmentReference, getAngleToSegmentReference, getSegmentAngleReferenceAtPoint, getSegmentGridStep, isAlignmentGuideActive, isAngleSnapActive, isGridSnapActive, isMagneticSnapActive, markToolCancelConsumed, publishPlacementSurface, resolvePointerSupportSurface, snapFenceDraftPoint, snapScalarToGrid, triggerSFX, useAlignmentGuides, useEditor, useFenceCurveDraft, useFloorplanDraftPreview, useSegmentDraftChain, } from '@pascal-app/editor';
|
|
5
5
|
import { getSceneTheme, useViewer } from '@pascal-app/viewer';
|
|
6
6
|
import { useThree } from '@react-three/fiber';
|
|
7
7
|
import { useEffect, useMemo, useRef, useState } from 'react';
|
|
8
8
|
import { BufferGeometry, DoubleSide, Vector3 } from 'three';
|
|
9
|
-
import { DraftAngleArc, DraftAxisGuides,
|
|
9
|
+
import { DraftAngleArc, DraftAxisGuides, getNearestAxisAngleLabel, } from '../shared/draft-axis-guides';
|
|
10
10
|
const FENCE_PREVIEW_HEIGHT = 1.8;
|
|
11
11
|
const FENCE_PREVIEW_THICKNESS = 0.08;
|
|
12
12
|
// Grid-plane surface publish (pointer-decided): scratch + constant normal so
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/guide/definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEpF,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEpC;;;;;GAKG;AACH,eAAO,MAAM,eAAe,EAAE,cAAc,CAAC,OAAO,SAAS,
|
|
1
|
+
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/guide/definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEpF,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEpC;;;;;GAKG;AACH,eAAO,MAAM,eAAe,EAAE,cAAc,CAAC,OAAO,SAAS,CAiD5D,CAAA"}
|
package/dist/guide/definition.js
CHANGED
|
@@ -31,6 +31,7 @@ export const guideDefinition = {
|
|
|
31
31
|
parametrics: guideParametrics,
|
|
32
32
|
// No dirty consumer rebuilds this kind — see NodeDefinition.dirtyTracking.
|
|
33
33
|
dirtyTracking: false,
|
|
34
|
+
rendersChildren: false,
|
|
34
35
|
renderer: {
|
|
35
36
|
kind: 'parametric',
|
|
36
37
|
module: () => import('./renderer'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/gutter/definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,kBAAkB,CAAA;AAKzB,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAoHrC;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,gBAAgB,EAAE,cAAc,CAAC,OAAO,UAAU,
|
|
1
|
+
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/gutter/definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,kBAAkB,CAAA;AAKzB,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAoHrC;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,gBAAgB,EAAE,cAAc,CAAC,OAAO,UAAU,CA+D9D,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../src/hvac-equipment/tool.tsx"],"names":[],"mappings":"AA4BA;;;;;;;GAOG;AACH,QAAA,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../src/hvac-equipment/tool.tsx"],"names":[],"mappings":"AA4BA;;;;;;;GAOG;AACH,QAAA,MAAM,iBAAiB,0CAwHtB,CAAA;AAED,eAAe,iBAAiB,CAAA"}
|
|
@@ -28,10 +28,15 @@ function snap(value, step) {
|
|
|
28
28
|
*/
|
|
29
29
|
const HvacEquipmentTool = () => {
|
|
30
30
|
const activeLevelId = useViewer((s) => s.selection.levelId);
|
|
31
|
+
const toolDefaults = useEditor((s) => s.toolDefaults['hvac-equipment']);
|
|
31
32
|
const [cursor, setCursor] = useState(null);
|
|
32
33
|
const [yaw, setYaw] = useState(0);
|
|
33
34
|
const yawRef = useRef(0);
|
|
34
|
-
const previewNode = useMemo(() => HvacEquipmentNode.parse({
|
|
35
|
+
const previewNode = useMemo(() => HvacEquipmentNode.parse({
|
|
36
|
+
...hvacEquipmentDefinition.defaults(),
|
|
37
|
+
...toolDefaults,
|
|
38
|
+
name: 'Furnace',
|
|
39
|
+
}), [toolDefaults]);
|
|
35
40
|
const ghost = useMemo(() => {
|
|
36
41
|
const group = buildHvacEquipmentGeometry(previewNode);
|
|
37
42
|
group.traverse((child) => {
|
|
@@ -67,6 +72,7 @@ const HvacEquipmentTool = () => {
|
|
|
67
72
|
const position = resolveAligned(event);
|
|
68
73
|
const unit = HvacEquipmentNode.parse({
|
|
69
74
|
...hvacEquipmentDefinition.defaults(),
|
|
75
|
+
...toolDefaults,
|
|
70
76
|
name: 'Furnace',
|
|
71
77
|
position,
|
|
72
78
|
rotation: yawRef.current,
|
|
@@ -110,7 +116,7 @@ const HvacEquipmentTool = () => {
|
|
|
110
116
|
window.removeEventListener('keydown', onKeyDown, true);
|
|
111
117
|
clearDrawAlignment();
|
|
112
118
|
};
|
|
113
|
-
}, [activeLevelId]);
|
|
119
|
+
}, [activeLevelId, toolDefaults]);
|
|
114
120
|
if (!activeLevelId || !cursor)
|
|
115
121
|
return null;
|
|
116
122
|
return (_jsxs(LevelOffsetGroup, { children: [_jsx("group", { position: cursor, rotation: [0, yaw, 0], children: _jsx("primitive", { object: ghost }) }), _jsx(Html, { center: true, position: [cursor[0], cursor[1] + previewNode.height + 0.4, cursor[2]], style: { pointerEvents: 'none', userSelect: 'none' }, zIndexRange: [100, 0], children: _jsx("div", { className: "flex items-center gap-2 whitespace-nowrap rounded-full border border-border/60 bg-background/90 px-4 py-1.5 text-xs tabular-nums shadow-sm backdrop-blur", children: _jsx("span", { className: "font-medium text-foreground", children: "R/T rotate" }) }) })] }));
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { NodeDefinition } from '@pascal-app/core';
|
|
2
|
+
import { ImportedMeshNode } from './schema';
|
|
3
|
+
/** Format-neutral fallback for imported objects without a parametric node. */
|
|
4
|
+
export declare const importedMeshDefinition: NodeDefinition<typeof ImportedMeshNode>;
|
|
5
|
+
//# sourceMappingURL=definition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/imported-mesh/definition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAGtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAE3C,8EAA8E;AAC9E,eAAO,MAAM,sBAAsB,EAAE,cAAc,CAAC,OAAO,gBAAgB,CAiC1E,CAAA"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { buildImportedMeshFloorplan } from './floorplan';
|
|
2
|
+
import { buildImportedMeshGeometry } from './geometry';
|
|
3
|
+
import { ImportedMeshNode } from './schema';
|
|
4
|
+
/** Format-neutral fallback for imported objects without a parametric node. */
|
|
5
|
+
export const importedMeshDefinition = {
|
|
6
|
+
kind: 'imported-mesh',
|
|
7
|
+
schemaVersion: 1,
|
|
8
|
+
schema: ImportedMeshNode,
|
|
9
|
+
category: 'structure',
|
|
10
|
+
snapProfile: 'item',
|
|
11
|
+
defaults: () => ({
|
|
12
|
+
object: 'node',
|
|
13
|
+
parentId: null,
|
|
14
|
+
visible: true,
|
|
15
|
+
metadata: {},
|
|
16
|
+
position: [0, 0, 0],
|
|
17
|
+
rotation: [0, 0, 0],
|
|
18
|
+
primitives: [],
|
|
19
|
+
}),
|
|
20
|
+
capabilities: {
|
|
21
|
+
selectable: { hitVolume: 'bbox' },
|
|
22
|
+
duplicable: true,
|
|
23
|
+
deletable: true,
|
|
24
|
+
presettable: false,
|
|
25
|
+
},
|
|
26
|
+
geometryKey: (node) => `${node.id}:${node.primitives.length}`,
|
|
27
|
+
geometry: buildImportedMeshGeometry,
|
|
28
|
+
floorplan: buildImportedMeshFloorplan,
|
|
29
|
+
presentation: {
|
|
30
|
+
label: 'Imported Mesh',
|
|
31
|
+
description: 'Geometry preserved from an imported model when no native Pascal shape exists.',
|
|
32
|
+
icon: { kind: 'url', src: '/icons/item.webp' },
|
|
33
|
+
hidden: true,
|
|
34
|
+
},
|
|
35
|
+
mcp: {
|
|
36
|
+
description: 'Imported triangle geometry with source identity and properties in metadata.',
|
|
37
|
+
},
|
|
38
|
+
};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { FloorplanGeometry, GeometryContext, ImportedMeshNode } from '@pascal-app/core';
|
|
2
|
+
/** A compact plan proxy for imported geometry, derived from its XZ bounds. */
|
|
3
|
+
export declare function buildImportedMeshFloorplan(node: ImportedMeshNode, ctx: GeometryContext): FloorplanGeometry | null;
|
|
4
|
+
//# sourceMappingURL=floorplan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"floorplan.d.ts","sourceRoot":"","sources":["../../src/imported-mesh/floorplan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EAEjB,eAAe,EACf,gBAAgB,EACjB,MAAM,kBAAkB,CAAA;AAEzB,8EAA8E;AAC9E,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,gBAAgB,EACtB,GAAG,EAAE,eAAe,GACnB,iBAAiB,GAAG,IAAI,CAgC1B"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/** A compact plan proxy for imported geometry, derived from its XZ bounds. */
|
|
2
|
+
export function buildImportedMeshFloorplan(node, ctx) {
|
|
3
|
+
let minX = Number.POSITIVE_INFINITY;
|
|
4
|
+
let maxX = Number.NEGATIVE_INFINITY;
|
|
5
|
+
let minZ = Number.POSITIVE_INFINITY;
|
|
6
|
+
let maxZ = Number.NEGATIVE_INFINITY;
|
|
7
|
+
for (const primitive of node.primitives) {
|
|
8
|
+
for (let i = 0; i + 2 < primitive.positions.length; i += 3) {
|
|
9
|
+
minX = Math.min(minX, primitive.positions[i]);
|
|
10
|
+
maxX = Math.max(maxX, primitive.positions[i]);
|
|
11
|
+
minZ = Math.min(minZ, primitive.positions[i + 2]);
|
|
12
|
+
maxZ = Math.max(maxZ, primitive.positions[i + 2]);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
if (![minX, maxX, minZ, maxZ].every(Number.isFinite))
|
|
16
|
+
return null;
|
|
17
|
+
const yaw = node.rotation[1];
|
|
18
|
+
const cos = Math.cos(-yaw);
|
|
19
|
+
const sin = Math.sin(-yaw);
|
|
20
|
+
const toPlan = (x, z) => [
|
|
21
|
+
node.position[0] + x * cos - z * sin,
|
|
22
|
+
node.position[2] + x * sin + z * cos,
|
|
23
|
+
];
|
|
24
|
+
const selected = Boolean(ctx.viewState?.selected || ctx.viewState?.highlighted);
|
|
25
|
+
return {
|
|
26
|
+
kind: 'polygon',
|
|
27
|
+
points: [toPlan(minX, minZ), toPlan(maxX, minZ), toPlan(maxX, maxZ), toPlan(minX, maxZ)],
|
|
28
|
+
fill: '#94a3b8',
|
|
29
|
+
fillOpacity: selected ? 0.28 : 0.14,
|
|
30
|
+
stroke: selected ? (ctx.viewState?.palette?.selectedStroke ?? '#f97316') : '#64748b',
|
|
31
|
+
strokeWidth: selected ? 0.04 : 0.025,
|
|
32
|
+
vectorEffect: 'non-scaling-stroke',
|
|
33
|
+
};
|
|
34
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ImportedMeshNode } from '@pascal-app/core';
|
|
2
|
+
import { Group } from 'three';
|
|
3
|
+
/** Build serialized imported triangle buffers without source-format coupling. */
|
|
4
|
+
export declare function buildImportedMeshGeometry(node: ImportedMeshNode): Group;
|
|
5
|
+
//# sourceMappingURL=geometry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"geometry.d.ts","sourceRoot":"","sources":["../../src/imported-mesh/geometry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACxD,OAAO,EAIL,KAAK,EAGN,MAAM,OAAO,CAAA;AAEd,iFAAiF;AACjF,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,gBAAgB,GAAG,KAAK,CA6BvE"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { BufferGeometry, Float32BufferAttribute, FrontSide, Group, Mesh, MeshStandardMaterial, } from 'three';
|
|
2
|
+
/** Build serialized imported triangle buffers without source-format coupling. */
|
|
3
|
+
export function buildImportedMeshGeometry(node) {
|
|
4
|
+
const group = new Group();
|
|
5
|
+
for (const [primitiveIndex, primitive] of node.primitives.entries()) {
|
|
6
|
+
if (primitive.positions.length < 9)
|
|
7
|
+
continue;
|
|
8
|
+
const geometry = new BufferGeometry();
|
|
9
|
+
geometry.setAttribute('position', new Float32BufferAttribute(primitive.positions, 3));
|
|
10
|
+
if (primitive.normals?.length === primitive.positions.length) {
|
|
11
|
+
geometry.setAttribute('normal', new Float32BufferAttribute(primitive.normals, 3));
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
geometry.computeVertexNormals();
|
|
15
|
+
}
|
|
16
|
+
if (primitive.indices.length >= 3)
|
|
17
|
+
geometry.setIndex(primitive.indices);
|
|
18
|
+
geometry.computeBoundingBox();
|
|
19
|
+
geometry.computeBoundingSphere();
|
|
20
|
+
const material = new MeshStandardMaterial({
|
|
21
|
+
color: primitive.color,
|
|
22
|
+
opacity: primitive.opacity,
|
|
23
|
+
transparent: primitive.opacity < 1,
|
|
24
|
+
depthWrite: primitive.opacity >= 1,
|
|
25
|
+
metalness: 0.05,
|
|
26
|
+
roughness: 0.8,
|
|
27
|
+
side: FrontSide,
|
|
28
|
+
});
|
|
29
|
+
const mesh = new Mesh(geometry, material);
|
|
30
|
+
mesh.name = `${node.name ?? 'Imported mesh'} primitive ${primitiveIndex + 1}`;
|
|
31
|
+
group.add(mesh);
|
|
32
|
+
}
|
|
33
|
+
return group;
|
|
34
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/imported-mesh/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AACrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAA;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/imported-mesh/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { ImportedMeshNode } from '@pascal-app/core';
|
package/dist/index.d.ts
CHANGED
|
@@ -38,6 +38,7 @@ export { fenceDefinition } from './fence';
|
|
|
38
38
|
export { guideDefinition } from './guide';
|
|
39
39
|
export { gutterDefinition } from './gutter';
|
|
40
40
|
export { hvacEquipmentDefinition } from './hvac-equipment';
|
|
41
|
+
export { importedMeshDefinition } from './imported-mesh';
|
|
41
42
|
export { itemDefinition } from './item';
|
|
42
43
|
export { leanToExtensionDefinition } from './lean-to-extension';
|
|
43
44
|
export { levelDefinition } from './level';
|
|
@@ -61,6 +62,7 @@ export { stairDefinition } from './stair';
|
|
|
61
62
|
export { stairSegmentDefinition } from './stair-segment';
|
|
62
63
|
export { structuralGridDefinition } from './structural-grid';
|
|
63
64
|
export { turbineVentDefinition } from './turbine-vent';
|
|
65
|
+
export { unitDefinition } from './unit';
|
|
64
66
|
export { wallDefinition } from './wall';
|
|
65
67
|
export { windowDefinition } from './window';
|
|
66
68
|
export { zoneDefinition } from './zone';
|