@pascal-app/nodes 1.0.0-beta.5 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/dist/block/commands.d.ts +68 -0
- package/dist/block/commands.d.ts.map +1 -0
- package/dist/block/commands.js +1144 -0
- package/dist/block/contextual-help.d.ts +3 -0
- package/dist/block/contextual-help.d.ts.map +1 -0
- package/dist/block/contextual-help.js +38 -0
- package/dist/block/definition.d.ts +8 -0
- package/dist/block/definition.d.ts.map +1 -0
- package/dist/block/definition.js +126 -0
- package/dist/block/edit-session.d.ts +16 -0
- package/dist/block/edit-session.d.ts.map +1 -0
- package/dist/block/edit-session.js +32 -0
- package/dist/block/face-host.d.ts +3 -0
- package/dist/block/face-host.d.ts.map +1 -0
- package/dist/block/face-host.js +178 -0
- package/dist/block/floorplan.d.ts +3 -0
- package/dist/block/floorplan.d.ts.map +1 -0
- package/dist/block/floorplan.js +43 -0
- package/dist/block/geometry-snap.d.ts +18 -0
- package/dist/block/geometry-snap.d.ts.map +1 -0
- package/dist/block/geometry-snap.js +137 -0
- package/dist/block/geometry.d.ts +11 -0
- package/dist/block/geometry.d.ts.map +1 -0
- package/dist/block/geometry.js +146 -0
- package/dist/block/gesture-wheel.d.ts +8 -0
- package/dist/block/gesture-wheel.d.ts.map +1 -0
- package/dist/block/gesture-wheel.js +7 -0
- package/dist/block/interaction-sfx.d.ts +3 -0
- package/dist/block/interaction-sfx.d.ts.map +1 -0
- package/dist/block/interaction-sfx.js +16 -0
- package/dist/block/last-operation.d.ts +48 -0
- package/dist/block/last-operation.d.ts.map +1 -0
- package/dist/block/last-operation.js +120 -0
- package/dist/block/loop-cut-interaction.d.ts +5 -0
- package/dist/block/loop-cut-interaction.d.ts.map +1 -0
- package/dist/block/loop-cut-interaction.js +13 -0
- package/dist/block/material-slots.d.ts +61 -0
- package/dist/block/material-slots.d.ts.map +1 -0
- package/dist/block/material-slots.js +131 -0
- package/dist/block/modal-face-operation.d.ts +13 -0
- package/dist/block/modal-face-operation.d.ts.map +1 -0
- package/dist/block/modal-face-operation.js +40 -0
- package/dist/block/modal-session.d.ts +15 -0
- package/dist/block/modal-session.d.ts.map +1 -0
- package/dist/block/modal-session.js +40 -0
- package/dist/block/modal-transform.d.ts +30 -0
- package/dist/block/modal-transform.d.ts.map +1 -0
- package/dist/block/modal-transform.js +144 -0
- package/dist/block/paint.d.ts +3 -0
- package/dist/block/paint.d.ts.map +1 -0
- package/dist/block/paint.js +136 -0
- package/dist/block/panel.d.ts +2 -0
- package/dist/block/panel.d.ts.map +1 -0
- package/dist/block/panel.js +234 -0
- package/dist/block/parametrics.d.ts +4 -0
- package/dist/block/parametrics.d.ts.map +1 -0
- package/dist/block/parametrics.js +9 -0
- package/dist/block/preview.d.ts +6 -0
- package/dist/block/preview.d.ts.map +1 -0
- package/dist/block/preview.js +46 -0
- package/dist/block/rotation-drag.d.ts +5 -0
- package/dist/block/rotation-drag.d.ts.map +1 -0
- package/dist/block/rotation-drag.js +18 -0
- package/dist/block/schema.d.ts +2 -0
- package/dist/block/schema.d.ts.map +1 -0
- package/dist/block/schema.js +1 -0
- package/dist/block/selection-geometry.d.ts +9 -0
- package/dist/block/selection-geometry.d.ts.map +1 -0
- package/dist/block/selection-geometry.js +31 -0
- package/dist/block/selection-model.d.ts +17 -0
- package/dist/block/selection-model.d.ts.map +1 -0
- package/dist/block/selection-model.js +84 -0
- package/dist/block/selection.d.ts +4 -0
- package/dist/block/selection.d.ts.map +1 -0
- package/dist/block/selection.js +2570 -0
- package/dist/block/slots.d.ts +4 -0
- package/dist/block/slots.d.ts.map +1 -0
- package/dist/block/slots.js +17 -0
- package/dist/block/tool.d.ts +3 -0
- package/dist/block/tool.d.ts.map +1 -0
- package/dist/block/tool.js +174 -0
- package/dist/block/toolbar-state.d.ts +46 -0
- package/dist/block/toolbar-state.d.ts.map +1 -0
- package/dist/block/toolbar-state.js +67 -0
- package/dist/block/use-block-face-operation.d.ts +39 -0
- package/dist/block/use-block-face-operation.d.ts.map +1 -0
- package/dist/block/use-block-face-operation.js +218 -0
- package/dist/box-vent/definition.d.ts.map +1 -1
- package/dist/box-vent/definition.js +8 -5
- package/dist/box-vent/geometry.d.ts +4 -0
- package/dist/box-vent/geometry.d.ts.map +1 -1
- package/dist/box-vent/geometry.js +76 -44
- package/dist/box-vent/paint.d.ts +4 -0
- package/dist/box-vent/paint.d.ts.map +1 -0
- package/dist/box-vent/paint.js +40 -0
- package/dist/box-vent/panel.js +1 -1
- package/dist/box-vent/parametrics.js +3 -3
- package/dist/box-vent/renderer.d.ts.map +1 -1
- package/dist/box-vent/renderer.js +29 -10
- package/dist/cabinet/compartment-card.d.ts.map +1 -1
- package/dist/cabinet/compartment-card.js +11 -3
- package/dist/cabinet/continuous-placement.d.ts +3 -0
- package/dist/cabinet/continuous-placement.d.ts.map +1 -1
- package/dist/cabinet/continuous-placement.js +6 -0
- package/dist/cabinet/definition.d.ts.map +1 -1
- package/dist/cabinet/definition.js +400 -54
- package/dist/cabinet/floorplan-move.d.ts.map +1 -1
- package/dist/cabinet/floorplan-move.js +91 -22
- package/dist/cabinet/geometry/fridge.d.ts.map +1 -1
- package/dist/cabinet/geometry/fridge.js +25 -1
- package/dist/cabinet/geometry/fronts.d.ts +4 -0
- package/dist/cabinet/geometry/fronts.d.ts.map +1 -1
- package/dist/cabinet/geometry/fronts.js +1 -1
- package/dist/cabinet/geometry/run.d.ts.map +1 -1
- package/dist/cabinet/geometry/run.js +19 -1
- package/dist/cabinet/geometry.d.ts.map +1 -1
- package/dist/cabinet/geometry.js +63 -1
- package/dist/cabinet/index.d.ts +1 -0
- package/dist/cabinet/index.d.ts.map +1 -1
- package/dist/cabinet/index.js +1 -0
- package/dist/cabinet/insertion.d.ts +19 -0
- package/dist/cabinet/insertion.d.ts.map +1 -0
- package/dist/cabinet/insertion.js +49 -0
- package/dist/cabinet/move-frame.d.ts.map +1 -1
- package/dist/cabinet/move-frame.js +68 -2
- package/dist/cabinet/panel-context.d.ts +7 -0
- package/dist/cabinet/panel-context.d.ts.map +1 -0
- package/dist/cabinet/panel-context.js +16 -0
- package/dist/cabinet/panel-visibility.d.ts +9 -0
- package/dist/cabinet/panel-visibility.d.ts.map +1 -0
- package/dist/cabinet/panel-visibility.js +26 -0
- package/dist/cabinet/panel.d.ts.map +1 -1
- package/dist/cabinet/panel.js +221 -37
- package/dist/cabinet/placement-dimensions.d.ts +42 -0
- package/dist/cabinet/placement-dimensions.d.ts.map +1 -0
- package/dist/cabinet/placement-dimensions.js +227 -0
- package/dist/cabinet/placement-snap.d.ts +21 -1
- package/dist/cabinet/placement-snap.d.ts.map +1 -1
- package/dist/cabinet/placement-snap.js +48 -6
- package/dist/cabinet/preset-width-debt.d.ts +7 -0
- package/dist/cabinet/preset-width-debt.d.ts.map +1 -0
- package/dist/cabinet/preset-width-debt.js +45 -0
- package/dist/cabinet/presets.d.ts.map +1 -1
- package/dist/cabinet/presets.js +14 -13
- package/dist/cabinet/profiles.d.ts +14 -0
- package/dist/cabinet/profiles.d.ts.map +1 -0
- package/dist/cabinet/profiles.js +30 -0
- package/dist/cabinet/quick-actions.d.ts.map +1 -1
- package/dist/cabinet/quick-actions.js +8 -24
- package/dist/cabinet/reveals.d.ts +37 -0
- package/dist/cabinet/reveals.d.ts.map +1 -0
- package/dist/cabinet/reveals.js +13 -0
- package/dist/cabinet/run-layout.d.ts +90 -4
- package/dist/cabinet/run-layout.d.ts.map +1 -1
- package/dist/cabinet/run-layout.js +408 -23
- package/dist/cabinet/run-ops.d.ts +202 -10
- package/dist/cabinet/run-ops.d.ts.map +1 -1
- package/dist/cabinet/run-ops.js +520 -33
- package/dist/cabinet/run-panel.d.ts +6 -2
- package/dist/cabinet/run-panel.d.ts.map +1 -1
- package/dist/cabinet/run-panel.js +285 -108
- package/dist/cabinet/stack-transitions.d.ts.map +1 -1
- package/dist/cabinet/stack-transitions.js +35 -24
- package/dist/cabinet/stack.d.ts +169 -1
- package/dist/cabinet/stack.d.ts.map +1 -1
- package/dist/cabinet/stack.js +57 -18
- package/dist/cabinet/tool.d.ts.map +1 -1
- package/dist/cabinet/tool.js +615 -91
- package/dist/cabinet/validation.d.ts +27 -0
- package/dist/cabinet/validation.d.ts.map +1 -0
- package/dist/cabinet/validation.js +56 -0
- package/dist/cabinet/wall-height-presets.d.ts +12 -0
- package/dist/cabinet/wall-height-presets.d.ts.map +1 -0
- package/dist/cabinet/wall-height-presets.js +15 -0
- package/dist/cabinet/wall-snap.d.ts +27 -3
- package/dist/cabinet/wall-snap.d.ts.map +1 -1
- package/dist/cabinet/wall-snap.js +278 -62
- package/dist/cabinet/widths.d.ts +10 -0
- package/dist/cabinet/widths.d.ts.map +1 -0
- package/dist/cabinet/widths.js +13 -0
- package/dist/ceiling/definition.d.ts.map +1 -1
- package/dist/ceiling/definition.js +7 -1
- package/dist/ceiling/floorplan-affordances.d.ts +8 -8
- package/dist/ceiling/materials.d.ts.map +1 -1
- package/dist/ceiling/materials.js +0 -1
- package/dist/ceiling/panel.js +1 -1
- package/dist/ceiling/parametrics.js +1 -1
- package/dist/chimney/definition.js +1 -1
- package/dist/chimney/panel.js +1 -1
- package/dist/chimney/parametrics.js +3 -3
- package/dist/column/definition.d.ts.map +1 -1
- package/dist/column/definition.js +22 -4
- package/dist/column/panel.d.ts.map +1 -1
- package/dist/column/panel.js +37 -7
- package/dist/column/parametrics.d.ts.map +1 -1
- package/dist/column/parametrics.js +5 -3
- package/dist/column/tool.d.ts.map +1 -1
- package/dist/column/tool.js +50 -14
- package/dist/cupola/definition.d.ts.map +1 -1
- package/dist/cupola/definition.js +15 -6
- package/dist/cupola/geometry.d.ts +6 -0
- package/dist/cupola/geometry.d.ts.map +1 -1
- package/dist/cupola/geometry.js +60 -13
- package/dist/cupola/paint.d.ts +4 -0
- package/dist/cupola/paint.d.ts.map +1 -0
- package/dist/cupola/paint.js +39 -0
- package/dist/cupola/panel.js +1 -1
- package/dist/cupola/parametrics.js +3 -3
- package/dist/cupola/renderer.d.ts.map +1 -1
- package/dist/cupola/renderer.js +27 -8
- package/dist/door/floorplan-move.d.ts.map +1 -1
- package/dist/door/floorplan-move.js +1 -1
- package/dist/door/move-tool.d.ts.map +1 -1
- package/dist/door/move-tool.js +86 -32
- package/dist/door/panel.d.ts.map +1 -1
- package/dist/door/panel.js +1 -1
- package/dist/door/parametrics.js +2 -2
- package/dist/door/tool.d.ts.map +1 -1
- package/dist/door/tool.js +16 -4
- package/dist/dormer/csg-geometry.d.ts +6 -42
- package/dist/dormer/csg-geometry.d.ts.map +1 -1
- package/dist/dormer/csg-geometry.js +38 -209
- package/dist/dormer/definition.d.ts +4 -12
- package/dist/dormer/definition.d.ts.map +1 -1
- package/dist/dormer/definition.js +18 -193
- package/dist/dormer/floorplan.d.ts +3 -3
- package/dist/dormer/floorplan.d.ts.map +1 -1
- package/dist/dormer/floorplan.js +6 -17
- package/dist/dormer/geometry.d.ts +5 -24
- package/dist/dormer/geometry.d.ts.map +1 -1
- package/dist/dormer/geometry.js +64 -41
- package/dist/dormer/index.d.ts +1 -1
- package/dist/dormer/index.d.ts.map +1 -1
- package/dist/dormer/index.js +1 -1
- package/dist/dormer/move-tool.d.ts.map +1 -1
- package/dist/dormer/move-tool.js +31 -3
- package/dist/dormer/panel-windows-section.d.ts +9 -0
- package/dist/dormer/panel-windows-section.d.ts.map +1 -0
- package/dist/dormer/panel-windows-section.js +7 -0
- package/dist/dormer/panel.d.ts.map +1 -1
- package/dist/dormer/panel.js +100 -18
- package/dist/dormer/parametrics.d.ts.map +1 -1
- package/dist/dormer/parametrics.js +8 -77
- package/dist/dormer/preview.d.ts.map +1 -1
- package/dist/dormer/preview.js +9 -1
- package/dist/dormer/renderer.d.ts.map +1 -1
- package/dist/dormer/renderer.js +24 -26
- package/dist/dormer/tool.d.ts.map +1 -1
- package/dist/dormer/tool.js +3 -1
- package/dist/dormer/window-layout.d.ts +15 -0
- package/dist/dormer/window-layout.d.ts.map +1 -0
- package/dist/dormer/window-layout.js +59 -0
- package/dist/downspout/definition.d.ts.map +1 -1
- package/dist/downspout/definition.js +17 -4
- package/dist/downspout/geometry.d.ts.map +1 -1
- package/dist/downspout/geometry.js +10 -0
- package/dist/downspout/inspector-editors.d.ts.map +1 -1
- package/dist/downspout/inspector-editors.js +9 -1
- package/dist/downspout/parametrics.d.ts.map +1 -1
- package/dist/downspout/parametrics.js +2 -1
- package/dist/downspout/renderer.d.ts.map +1 -1
- package/dist/downspout/renderer.js +19 -3
- package/dist/downspout/system.d.ts +7 -0
- package/dist/downspout/system.d.ts.map +1 -0
- package/dist/downspout/system.js +114 -0
- package/dist/duct-fitting/accessory-geometry.d.ts +4 -0
- package/dist/duct-fitting/accessory-geometry.d.ts.map +1 -0
- package/dist/duct-fitting/accessory-geometry.js +47 -0
- package/dist/duct-fitting/definition.d.ts.map +1 -1
- package/dist/duct-fitting/definition.js +11 -1
- package/dist/duct-fitting/floorplan.d.ts.map +1 -1
- package/dist/duct-fitting/floorplan.js +8 -0
- package/dist/duct-fitting/geometry.d.ts.map +1 -1
- package/dist/duct-fitting/geometry.js +52 -38
- package/dist/duct-fitting/parametrics.d.ts.map +1 -1
- package/dist/duct-fitting/parametrics.js +78 -15
- package/dist/duct-fitting/ports.d.ts +1 -0
- package/dist/duct-fitting/ports.d.ts.map +1 -1
- package/dist/duct-fitting/ports.js +46 -0
- package/dist/duct-fitting/tool.d.ts +19 -0
- package/dist/duct-fitting/tool.d.ts.map +1 -1
- package/dist/duct-fitting/tool.js +126 -34
- package/dist/duct-segment/continuation.d.ts +21 -0
- package/dist/duct-segment/continuation.d.ts.map +1 -0
- package/dist/duct-segment/continuation.js +167 -0
- package/dist/duct-segment/definition.d.ts.map +1 -1
- package/dist/duct-segment/definition.js +19 -18
- package/dist/duct-segment/floorplan.d.ts.map +1 -1
- package/dist/duct-segment/floorplan.js +43 -0
- package/dist/duct-segment/geometry.d.ts.map +1 -1
- package/dist/duct-segment/geometry.js +3 -0
- package/dist/duct-segment/move-tool.d.ts.map +1 -1
- package/dist/duct-segment/move-tool.js +33 -6
- package/dist/duct-segment/parametrics.d.ts.map +1 -1
- package/dist/duct-segment/parametrics.js +45 -1
- package/dist/duct-segment/selection.d.ts +3 -4
- package/dist/duct-segment/selection.d.ts.map +1 -1
- package/dist/duct-segment/selection.js +186 -158
- package/dist/duct-segment/tool.d.ts +37 -0
- package/dist/duct-segment/tool.d.ts.map +1 -1
- package/dist/duct-segment/tool.js +305 -678
- package/dist/duct-terminal/parametrics.js +2 -2
- package/dist/duct-terminal/tool.d.ts.map +1 -1
- package/dist/duct-terminal/tool.js +37 -7
- package/dist/elevator/panel.d.ts.map +1 -1
- package/dist/elevator/panel.js +7 -7
- package/dist/elevator/system.d.ts.map +1 -1
- package/dist/elevator/system.js +10 -1
- package/dist/eyebrow-vent/definition.d.ts.map +1 -1
- package/dist/eyebrow-vent/definition.js +8 -5
- package/dist/eyebrow-vent/geometry.d.ts +4 -0
- package/dist/eyebrow-vent/geometry.d.ts.map +1 -1
- package/dist/eyebrow-vent/geometry.js +60 -15
- package/dist/eyebrow-vent/paint.d.ts +4 -0
- package/dist/eyebrow-vent/paint.d.ts.map +1 -0
- package/dist/eyebrow-vent/paint.js +33 -0
- package/dist/eyebrow-vent/panel.js +1 -1
- package/dist/eyebrow-vent/parametrics.js +3 -3
- package/dist/eyebrow-vent/renderer.d.ts.map +1 -1
- package/dist/eyebrow-vent/renderer.js +27 -8
- package/dist/fence/definition.d.ts.map +1 -1
- package/dist/fence/definition.js +2 -1
- package/dist/fence/floorplan-affordances.d.ts +1 -0
- package/dist/fence/floorplan-affordances.d.ts.map +1 -1
- package/dist/fence/floorplan-affordances.js +30 -1
- package/dist/fence/floorplan.d.ts.map +1 -1
- package/dist/fence/floorplan.js +14 -0
- package/dist/fence/parametrics.js +3 -3
- package/dist/fence/tool.d.ts.map +1 -1
- package/dist/fence/tool.js +47 -20
- package/dist/gutter/corner-mitre.d.ts.map +1 -1
- package/dist/gutter/corner-mitre.js +47 -7
- package/dist/gutter/definition.d.ts.map +1 -1
- package/dist/gutter/definition.js +23 -13
- package/dist/gutter/eave-align.d.ts.map +1 -1
- package/dist/gutter/eave-align.js +10 -0
- package/dist/gutter/eave-snap.d.ts +1 -1
- package/dist/gutter/eave-snap.d.ts.map +1 -1
- package/dist/gutter/eave-snap.js +10 -23
- package/dist/gutter/geometry.d.ts.map +1 -1
- package/dist/gutter/geometry.js +126 -8
- package/dist/gutter/outlet-lookup.d.ts.map +1 -1
- package/dist/gutter/outlet-lookup.js +22 -1
- package/dist/gutter/paint.d.ts +3 -0
- package/dist/gutter/paint.d.ts.map +1 -0
- package/dist/gutter/paint.js +6 -0
- package/dist/gutter/parametrics.d.ts.map +1 -1
- package/dist/gutter/parametrics.js +4 -1
- package/dist/gutter/renderer.d.ts.map +1 -1
- package/dist/gutter/renderer.js +63 -7
- package/dist/gutter/trim-clip.d.ts +3 -0
- package/dist/gutter/trim-clip.d.ts.map +1 -0
- package/dist/gutter/trim-clip.js +5 -0
- package/dist/hvac-equipment/parametrics.js +3 -3
- package/dist/hvac-equipment/tool.d.ts.map +1 -1
- package/dist/hvac-equipment/tool.js +12 -2
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -2
- package/dist/item/definition.d.ts.map +1 -1
- package/dist/item/definition.js +10 -2
- package/dist/item/floorplan-move.d.ts.map +1 -1
- package/dist/item/floorplan-move.js +20 -1
- package/dist/item/floorplan.d.ts.map +1 -1
- package/dist/item/floorplan.js +22 -1
- package/dist/item/move-tool.d.ts +28 -1
- package/dist/item/move-tool.d.ts.map +1 -1
- package/dist/item/move-tool.js +14 -2
- package/dist/item/renderer.d.ts.map +1 -1
- package/dist/item/renderer.js +16 -6
- package/dist/item/system.d.ts +5 -0
- package/dist/item/system.d.ts.map +1 -1
- package/dist/item/system.js +7 -1
- package/dist/lean-to-extension/arc.d.ts +14 -0
- package/dist/lean-to-extension/arc.d.ts.map +1 -0
- package/dist/lean-to-extension/arc.js +56 -0
- package/dist/lean-to-extension/assembly.d.ts +61 -0
- package/dist/lean-to-extension/assembly.d.ts.map +1 -0
- package/dist/lean-to-extension/assembly.js +761 -0
- package/dist/lean-to-extension/canopy-joint.d.ts +35 -0
- package/dist/lean-to-extension/canopy-joint.d.ts.map +1 -0
- package/dist/lean-to-extension/canopy-joint.js +234 -0
- package/dist/lean-to-extension/conical-host.d.ts +15 -0
- package/dist/lean-to-extension/conical-host.d.ts.map +1 -0
- package/dist/lean-to-extension/conical-host.js +113 -0
- package/dist/lean-to-extension/corner-joint.d.ts +29 -0
- package/dist/lean-to-extension/corner-joint.d.ts.map +1 -0
- package/dist/lean-to-extension/corner-joint.js +1202 -0
- package/dist/lean-to-extension/definition.d.ts +4 -0
- package/dist/lean-to-extension/definition.d.ts.map +1 -0
- package/dist/lean-to-extension/definition.js +433 -0
- package/dist/lean-to-extension/floorplan-affordances.d.ts +4 -0
- package/dist/lean-to-extension/floorplan-affordances.d.ts.map +1 -0
- package/dist/lean-to-extension/floorplan-affordances.js +144 -0
- package/dist/lean-to-extension/floorplan-move.d.ts +3 -0
- package/dist/lean-to-extension/floorplan-move.d.ts.map +1 -0
- package/dist/lean-to-extension/floorplan-move.js +157 -0
- package/dist/lean-to-extension/floorplan-tool.d.ts +4 -0
- package/dist/lean-to-extension/floorplan-tool.d.ts.map +1 -0
- package/dist/lean-to-extension/floorplan-tool.js +385 -0
- package/dist/lean-to-extension/floorplan.d.ts +3 -0
- package/dist/lean-to-extension/floorplan.d.ts.map +1 -0
- package/dist/lean-to-extension/floorplan.js +373 -0
- package/dist/lean-to-extension/geometry.d.ts +7 -0
- package/dist/lean-to-extension/geometry.d.ts.map +1 -0
- package/dist/lean-to-extension/geometry.js +662 -0
- package/dist/lean-to-extension/index.d.ts +8 -0
- package/dist/lean-to-extension/index.d.ts.map +1 -0
- package/dist/lean-to-extension/index.js +7 -0
- package/dist/lean-to-extension/layout.d.ts +108 -0
- package/dist/lean-to-extension/layout.d.ts.map +1 -0
- package/dist/lean-to-extension/layout.js +477 -0
- package/dist/lean-to-extension/managed-preview.d.ts +3 -0
- package/dist/lean-to-extension/managed-preview.d.ts.map +1 -0
- package/dist/lean-to-extension/managed-preview.js +93 -0
- package/dist/lean-to-extension/move-tool.d.ts +8 -0
- package/dist/lean-to-extension/move-tool.d.ts.map +1 -0
- package/dist/lean-to-extension/move-tool.js +202 -0
- package/dist/lean-to-extension/paint.d.ts +2 -0
- package/dist/lean-to-extension/paint.d.ts.map +1 -0
- package/dist/lean-to-extension/paint.js +16 -0
- package/dist/lean-to-extension/parametrics.d.ts +4 -0
- package/dist/lean-to-extension/parametrics.d.ts.map +1 -0
- package/dist/lean-to-extension/parametrics.js +570 -0
- package/dist/lean-to-extension/placement-scope.d.ts +3 -0
- package/dist/lean-to-extension/placement-scope.d.ts.map +1 -0
- package/dist/lean-to-extension/placement-scope.js +4 -0
- package/dist/lean-to-extension/placement-validation.d.ts +4 -0
- package/dist/lean-to-extension/placement-validation.d.ts.map +1 -0
- package/dist/lean-to-extension/placement-validation.js +324 -0
- package/dist/lean-to-extension/placement.d.ts +59 -0
- package/dist/lean-to-extension/placement.d.ts.map +1 -0
- package/dist/lean-to-extension/placement.js +331 -0
- package/dist/lean-to-extension/plan-footprint.d.ts +10 -0
- package/dist/lean-to-extension/plan-footprint.d.ts.map +1 -0
- package/dist/lean-to-extension/plan-footprint.js +27 -0
- package/dist/lean-to-extension/preview-geometry.d.ts +7 -0
- package/dist/lean-to-extension/preview-geometry.d.ts.map +1 -0
- package/dist/lean-to-extension/preview-geometry.js +40 -0
- package/dist/lean-to-extension/preview.d.ts +7 -0
- package/dist/lean-to-extension/preview.d.ts.map +1 -0
- package/dist/lean-to-extension/preview.js +20 -0
- package/dist/lean-to-extension/renderer.d.ts +6 -0
- package/dist/lean-to-extension/renderer.d.ts.map +1 -0
- package/dist/lean-to-extension/renderer.js +34 -0
- package/dist/lean-to-extension/roof-attachment.d.ts +28 -0
- package/dist/lean-to-extension/roof-attachment.d.ts.map +1 -0
- package/dist/lean-to-extension/roof-attachment.js +376 -0
- package/dist/lean-to-extension/schema.d.ts +2 -0
- package/dist/lean-to-extension/schema.d.ts.map +1 -0
- package/dist/lean-to-extension/schema.js +1 -0
- package/dist/lean-to-extension/slots.d.ts +5 -0
- package/dist/lean-to-extension/slots.d.ts.map +1 -0
- package/dist/lean-to-extension/slots.js +15 -0
- package/dist/lean-to-extension/system.d.ts +7 -0
- package/dist/lean-to-extension/system.d.ts.map +1 -0
- package/dist/lean-to-extension/system.js +726 -0
- package/dist/lean-to-extension/tool.d.ts +3 -0
- package/dist/lean-to-extension/tool.d.ts.map +1 -0
- package/dist/lean-to-extension/tool.js +580 -0
- package/dist/lean-to-extension/wall-target.d.ts +10 -0
- package/dist/lean-to-extension/wall-target.d.ts.map +1 -0
- package/dist/lean-to-extension/wall-target.js +29 -0
- package/dist/lineset/definition.d.ts.map +1 -1
- package/dist/lineset/definition.js +1 -0
- package/dist/liquid-line/definition.d.ts.map +1 -1
- package/dist/liquid-line/definition.js +1 -0
- package/dist/pipe-fitting/definition.d.ts.map +1 -1
- package/dist/pipe-fitting/definition.js +16 -2
- package/dist/pipe-fitting/floorplan.d.ts.map +1 -1
- package/dist/pipe-fitting/floorplan.js +4 -0
- package/dist/pipe-fitting/geometry.d.ts +3 -5
- package/dist/pipe-fitting/geometry.d.ts.map +1 -1
- package/dist/pipe-fitting/geometry.js +154 -21
- package/dist/pipe-fitting/inline-insertion.d.ts +13 -0
- package/dist/pipe-fitting/inline-insertion.d.ts.map +1 -0
- package/dist/pipe-fitting/inline-insertion.js +96 -0
- package/dist/pipe-fitting/parametrics.d.ts.map +1 -1
- package/dist/pipe-fitting/parametrics.js +17 -3
- package/dist/pipe-fitting/ports.d.ts.map +1 -1
- package/dist/pipe-fitting/ports.js +8 -1
- package/dist/pipe-fitting/tool.d.ts +26 -0
- package/dist/pipe-fitting/tool.d.ts.map +1 -1
- package/dist/pipe-fitting/tool.js +182 -37
- package/dist/pipe-segment/continuation.d.ts +22 -0
- package/dist/pipe-segment/continuation.d.ts.map +1 -0
- package/dist/pipe-segment/continuation.js +146 -0
- package/dist/pipe-segment/definition.d.ts.map +1 -1
- package/dist/pipe-segment/definition.js +23 -7
- package/dist/pipe-segment/floorplan.d.ts.map +1 -1
- package/dist/pipe-segment/floorplan.js +42 -0
- package/dist/pipe-segment/geometry.d.ts +2 -1
- package/dist/pipe-segment/geometry.d.ts.map +1 -1
- package/dist/pipe-segment/geometry.js +4 -1
- package/dist/pipe-segment/move-tool.d.ts.map +1 -1
- package/dist/pipe-segment/move-tool.js +25 -5
- package/dist/pipe-segment/parametrics.d.ts.map +1 -1
- package/dist/pipe-segment/parametrics.js +45 -0
- package/dist/pipe-segment/selection.d.ts +3 -4
- package/dist/pipe-segment/selection.d.ts.map +1 -1
- package/dist/pipe-segment/selection.js +169 -105
- package/dist/pipe-segment/slope.d.ts +5 -0
- package/dist/pipe-segment/slope.d.ts.map +1 -0
- package/dist/pipe-segment/slope.js +10 -0
- package/dist/pipe-segment/tool.d.ts.map +1 -1
- package/dist/pipe-segment/tool.js +325 -545
- package/dist/pipe-trap/tool.d.ts.map +1 -1
- package/dist/pipe-trap/tool.js +15 -2
- package/dist/ridge-vent/definition.js +1 -1
- package/dist/ridge-vent/panel.d.ts.map +1 -1
- package/dist/ridge-vent/panel.js +2 -2
- package/dist/ridge-vent/parametrics.js +1 -1
- package/dist/roof/conical-roof-placement.d.ts +36 -0
- package/dist/roof/conical-roof-placement.d.ts.map +1 -0
- package/dist/roof/conical-roof-placement.js +134 -0
- package/dist/roof/conical-roof.d.ts +3 -0
- package/dist/roof/conical-roof.d.ts.map +1 -0
- package/dist/roof/conical-roof.js +53 -0
- package/dist/roof/definition.d.ts +3 -10
- package/dist/roof/definition.d.ts.map +1 -1
- package/dist/roof/definition.js +83 -13
- package/dist/roof/floorplan.d.ts +3 -10
- package/dist/roof/floorplan.d.ts.map +1 -1
- package/dist/roof/floorplan.js +139 -165
- package/dist/roof/index.d.ts +1 -0
- package/dist/roof/index.d.ts.map +1 -1
- package/dist/roof/index.js +1 -0
- package/dist/roof/panel.d.ts.map +1 -1
- package/dist/roof/panel.js +22 -23
- package/dist/roof/renderer.d.ts.map +1 -1
- package/dist/roof/roof-footprint-source.d.ts +16 -0
- package/dist/roof/roof-footprint-source.d.ts.map +1 -0
- package/dist/roof/roof-footprint-source.js +14 -0
- package/dist/roof/roof-footprint.d.ts +25 -0
- package/dist/roof/roof-footprint.d.ts.map +1 -0
- package/dist/roof/roof-footprint.js +94 -0
- package/dist/roof/roof-placement-mode.d.ts +18 -0
- package/dist/roof/roof-placement-mode.d.ts.map +1 -0
- package/dist/roof/roof-placement-mode.js +24 -0
- package/dist/roof/tool.d.ts +10 -0
- package/dist/roof/tool.d.ts.map +1 -0
- package/dist/roof/tool.js +922 -0
- package/dist/roof-segment/definition.d.ts.map +1 -1
- package/dist/roof-segment/definition.js +52 -8
- package/dist/roof-segment/floorplan-affordances.d.ts +5 -6
- package/dist/roof-segment/floorplan-affordances.d.ts.map +1 -1
- package/dist/roof-segment/floorplan-affordances.js +64 -18
- package/dist/roof-segment/floorplan.d.ts +3 -2
- package/dist/roof-segment/floorplan.d.ts.map +1 -1
- package/dist/roof-segment/floorplan.js +95 -46
- package/dist/roof-segment/panel.d.ts.map +1 -1
- package/dist/roof-segment/panel.js +122 -27
- package/dist/scan/definition.d.ts +2 -3
- package/dist/scan/definition.d.ts.map +1 -1
- package/dist/scan/definition.js +9 -7
- package/dist/scan/parametrics.d.ts.map +1 -1
- package/dist/scan/parametrics.js +13 -1
- package/dist/scan/renderer.d.ts.map +1 -1
- package/dist/scan/renderer.js +8 -2
- package/dist/shared/accessory-cursor.d.ts +7 -0
- package/dist/shared/accessory-cursor.d.ts.map +1 -0
- package/dist/shared/accessory-cursor.js +83 -0
- package/dist/shared/accessory-floorplan.d.ts +4 -0
- package/dist/shared/accessory-floorplan.d.ts.map +1 -0
- package/dist/shared/accessory-floorplan.js +51 -0
- package/dist/shared/accessory-geometry.d.ts +7 -0
- package/dist/shared/accessory-geometry.d.ts.map +1 -0
- package/dist/shared/accessory-geometry.js +79 -0
- package/dist/shared/accessory-placement.d.ts +10 -0
- package/dist/shared/accessory-placement.d.ts.map +1 -0
- package/dist/shared/accessory-placement.js +126 -0
- package/dist/shared/accessory-snapping.d.ts +5 -0
- package/dist/shared/accessory-snapping.d.ts.map +1 -0
- package/dist/shared/accessory-snapping.js +40 -0
- package/dist/shared/automatic-run-end-cap.d.ts +11 -0
- package/dist/shared/automatic-run-end-cap.d.ts.map +1 -0
- package/dist/shared/automatic-run-end-cap.js +159 -0
- package/dist/shared/block-face-host.d.ts +15 -0
- package/dist/shared/block-face-host.d.ts.map +1 -0
- package/dist/shared/block-face-host.js +36 -0
- package/dist/shared/connection-compatibility.d.ts +8 -0
- package/dist/shared/connection-compatibility.d.ts.map +1 -0
- package/dist/shared/connection-compatibility.js +28 -0
- package/dist/shared/connection-feedback.d.ts +10 -0
- package/dist/shared/connection-feedback.d.ts.map +1 -0
- package/dist/shared/connection-feedback.js +17 -0
- package/dist/shared/distribution-run-contract.d.ts +49 -0
- package/dist/shared/distribution-run-contract.d.ts.map +1 -0
- package/dist/shared/distribution-run-contract.js +30 -0
- package/dist/shared/distribution-run-tool.d.ts +107 -0
- package/dist/shared/distribution-run-tool.d.ts.map +1 -0
- package/dist/shared/distribution-run-tool.js +941 -0
- package/dist/shared/dormer-wall-opening-placement.d.ts +21 -0
- package/dist/shared/dormer-wall-opening-placement.d.ts.map +1 -0
- package/dist/shared/dormer-wall-opening-placement.js +101 -0
- package/dist/shared/duct-adapter.d.ts +10 -0
- package/dist/shared/duct-adapter.d.ts.map +1 -0
- package/dist/shared/duct-adapter.js +43 -0
- package/dist/shared/elbow-branch-continuation.d.ts +20 -0
- package/dist/shared/elbow-branch-continuation.d.ts.map +1 -0
- package/dist/shared/elbow-branch-continuation.js +200 -0
- package/dist/shared/fitting-clearance.d.ts +5 -0
- package/dist/shared/fitting-clearance.d.ts.map +1 -0
- package/dist/shared/fitting-clearance.js +11 -0
- package/dist/shared/fitting-deletion-cleanup.d.ts +14 -0
- package/dist/shared/fitting-deletion-cleanup.d.ts.map +1 -0
- package/dist/shared/fitting-deletion-cleanup.js +297 -0
- package/dist/shared/fitting-surface-support.d.ts +5 -0
- package/dist/shared/fitting-surface-support.d.ts.map +1 -0
- package/dist/shared/fitting-surface-support.js +42 -0
- package/dist/shared/fitting-tool-options.d.ts +4 -0
- package/dist/shared/fitting-tool-options.d.ts.map +1 -0
- package/dist/shared/fitting-tool-options.js +175 -0
- package/dist/shared/floor-placement.d.ts +1 -1
- package/dist/shared/floor-placement.d.ts.map +1 -1
- package/dist/shared/floor-placement.js +13 -33
- package/dist/shared/ghost-materials.d.ts.map +1 -1
- package/dist/shared/ghost-materials.js +2 -1
- package/dist/shared/lean-to-post-omissions.d.ts +8 -0
- package/dist/shared/lean-to-post-omissions.d.ts.map +1 -0
- package/dist/shared/lean-to-post-omissions.js +51 -0
- package/dist/shared/mep-fitting-actions.d.ts +5 -0
- package/dist/shared/mep-fitting-actions.d.ts.map +1 -0
- package/dist/shared/mep-fitting-actions.js +16 -0
- package/dist/shared/mep-presets.d.ts +11 -0
- package/dist/shared/mep-presets.d.ts.map +1 -0
- package/dist/shared/mep-presets.js +34 -0
- package/dist/shared/node-batch/candidates.d.ts +29 -0
- package/dist/shared/node-batch/candidates.d.ts.map +1 -0
- package/dist/shared/node-batch/candidates.js +260 -0
- package/dist/shared/node-batch/store.d.ts +26 -0
- package/dist/shared/node-batch/store.d.ts.map +1 -0
- package/dist/shared/node-batch/store.js +319 -0
- package/dist/shared/node-batch/system.d.ts +8 -0
- package/dist/shared/node-batch/system.d.ts.map +1 -0
- package/dist/shared/node-batch/system.js +569 -0
- package/dist/shared/node-batch/types.d.ts +99 -0
- package/dist/shared/node-batch/types.d.ts.map +1 -0
- package/dist/shared/node-batch/types.js +4 -0
- package/dist/shared/opening-move-history.d.ts +47 -0
- package/dist/shared/opening-move-history.d.ts.map +1 -0
- package/dist/shared/opening-move-history.js +18 -0
- package/dist/shared/opening-move-wall-gate.d.ts +55 -0
- package/dist/shared/opening-move-wall-gate.d.ts.map +1 -0
- package/dist/shared/opening-move-wall-gate.js +44 -0
- package/dist/shared/path-point-affordance.d.ts +2 -2
- package/dist/shared/path-point-affordance.d.ts.map +1 -1
- package/dist/shared/path-point-affordance.js +30 -6
- package/dist/shared/placeholder-geometry.d.ts.map +1 -1
- package/dist/shared/placeholder-geometry.js +4 -0
- package/dist/shared/ports.d.ts +20 -3
- package/dist/shared/ports.d.ts.map +1 -1
- package/dist/shared/ports.js +148 -7
- package/dist/shared/primitive-uv.d.ts +17 -0
- package/dist/shared/primitive-uv.d.ts.map +1 -0
- package/dist/shared/primitive-uv.js +107 -0
- package/dist/shared/reducer-size.d.ts +2 -0
- package/dist/shared/reducer-size.d.ts.map +1 -0
- package/dist/shared/reducer-size.js +12 -0
- package/dist/shared/ridge-snap.js +1 -1
- package/dist/shared/roof-surface.d.ts.map +1 -1
- package/dist/shared/roof-surface.js +17 -2
- package/dist/shared/run-cursor.d.ts +22 -0
- package/dist/shared/run-cursor.d.ts.map +1 -0
- package/dist/shared/run-cursor.js +19 -0
- package/dist/shared/run-direction-feedback.d.ts +20 -0
- package/dist/shared/run-direction-feedback.d.ts.map +1 -0
- package/dist/shared/run-direction-feedback.js +139 -0
- package/dist/shared/run-hanger-controls.d.ts +7 -0
- package/dist/shared/run-hanger-controls.d.ts.map +1 -0
- package/dist/shared/run-hanger-controls.js +44 -0
- package/dist/shared/run-hanger-inspector.d.ts +5 -0
- package/dist/shared/run-hanger-inspector.d.ts.map +1 -0
- package/dist/shared/run-hanger-inspector.js +43 -0
- package/dist/shared/run-hanger-mode.d.ts +11 -0
- package/dist/shared/run-hanger-mode.d.ts.map +1 -0
- package/dist/shared/run-hanger-mode.js +32 -0
- package/dist/shared/run-hanger-system.d.ts +3 -0
- package/dist/shared/run-hanger-system.d.ts.map +1 -0
- package/dist/shared/run-hanger-system.js +39 -0
- package/dist/shared/run-hangers.d.ts +25 -0
- package/dist/shared/run-hangers.d.ts.map +1 -0
- package/dist/shared/run-hangers.js +261 -0
- package/dist/shared/run-port-snap.d.ts +11 -0
- package/dist/shared/run-port-snap.d.ts.map +1 -0
- package/dist/shared/run-port-snap.js +19 -0
- package/dist/shared/run-screen-direction.d.ts +5 -0
- package/dist/shared/run-screen-direction.d.ts.map +1 -0
- package/dist/shared/run-screen-direction.js +24 -0
- package/dist/shared/selection-handles.d.ts +4 -0
- package/dist/shared/selection-handles.d.ts.map +1 -1
- package/dist/shared/selection-handles.js +10 -0
- package/dist/shared/slot-paint.d.ts +8 -1
- package/dist/shared/slot-paint.d.ts.map +1 -1
- package/dist/shared/slot-paint.js +120 -27
- package/dist/shared/surface-paint.d.ts +1 -2
- package/dist/shared/surface-paint.d.ts.map +1 -1
- package/dist/shared/surface-paint.js +9 -20
- package/dist/shared/system-check-panel.d.ts +6 -0
- package/dist/shared/system-check-panel.d.ts.map +1 -0
- package/dist/shared/system-check-panel.js +62 -0
- package/dist/shared/system-checks.d.ts +9 -0
- package/dist/shared/system-checks.d.ts.map +1 -0
- package/dist/shared/system-checks.js +131 -0
- package/dist/shared/wall-attach-target.d.ts +14 -2
- package/dist/shared/wall-attach-target.d.ts.map +1 -1
- package/dist/shared/wall-attach-target.js +108 -4
- package/dist/shared/wall-opening-clearance.d.ts +19 -0
- package/dist/shared/wall-opening-clearance.d.ts.map +1 -0
- package/dist/shared/wall-opening-clearance.js +28 -0
- package/dist/shared/wall-run-move.d.ts +17 -0
- package/dist/shared/wall-run-move.d.ts.map +1 -0
- package/dist/shared/wall-run-move.js +56 -0
- package/dist/shelf/parametrics.js +4 -4
- package/dist/site/renderer.d.ts.map +1 -1
- package/dist/site/renderer.js +40 -28
- package/dist/site/terrain-geometry.d.ts +1 -1
- package/dist/site/terrain-geometry.d.ts.map +1 -1
- package/dist/site/terrain-geometry.js +35 -9
- package/dist/site/terrain-mesh.d.ts +5 -0
- package/dist/site/terrain-mesh.d.ts.map +1 -1
- package/dist/site/terrain-mesh.js +63 -34
- package/dist/skylight/definition.js +1 -1
- package/dist/skylight/panel.js +1 -1
- package/dist/skylight/parametrics.js +2 -2
- package/dist/slab/definition.d.ts.map +1 -1
- package/dist/slab/definition.js +6 -1
- package/dist/slab/dependency-tracker.d.ts +3 -0
- package/dist/slab/dependency-tracker.d.ts.map +1 -0
- package/dist/slab/dependency-tracker.js +104 -0
- package/dist/slab/floorplan-affordances.d.ts +8 -8
- package/dist/slab/geometry.d.ts.map +1 -1
- package/dist/slab/geometry.js +16 -2
- package/dist/slab/panel.js +1 -1
- package/dist/slab/parametrics.js +1 -1
- package/dist/slab/system.d.ts.map +1 -1
- package/dist/slab/system.js +8 -64
- package/dist/solar-panel/definition.js +1 -1
- package/dist/solar-panel/panel.js +1 -1
- package/dist/solar-panel/parametrics.js +2 -2
- package/dist/stair/panel.d.ts.map +1 -1
- package/dist/stair/panel.js +18 -13
- package/dist/stair/stair-type.d.ts +18 -0
- package/dist/stair/stair-type.d.ts.map +1 -0
- package/dist/stair/stair-type.js +25 -0
- package/dist/stair-segment/panel.d.ts.map +1 -1
- package/dist/stair-segment/panel.js +44 -5
- package/dist/turbine-vent/definition.d.ts.map +1 -1
- package/dist/turbine-vent/definition.js +8 -5
- package/dist/turbine-vent/geometry.d.ts.map +1 -1
- package/dist/turbine-vent/geometry.js +48 -18
- package/dist/turbine-vent/paint.d.ts +4 -0
- package/dist/turbine-vent/paint.d.ts.map +1 -0
- package/dist/turbine-vent/paint.js +35 -0
- package/dist/turbine-vent/panel.js +1 -1
- package/dist/turbine-vent/parametrics.js +2 -2
- package/dist/turbine-vent/renderer.d.ts.map +1 -1
- package/dist/turbine-vent/renderer.js +31 -9
- package/dist/wall/curve-eligibility.d.ts +3 -0
- package/dist/wall/curve-eligibility.d.ts.map +1 -0
- package/dist/wall/curve-eligibility.js +10 -0
- package/dist/wall/curve-tool.d.ts.map +1 -1
- package/dist/wall/curve-tool.js +8 -11
- package/dist/wall/definition.d.ts +1 -1
- package/dist/wall/definition.d.ts.map +1 -1
- package/dist/wall/definition.js +36 -13
- package/dist/wall/floorplan-affordances.d.ts +1 -0
- package/dist/wall/floorplan-affordances.d.ts.map +1 -1
- package/dist/wall/floorplan-affordances.js +46 -7
- package/dist/wall/floorplan-move.d.ts +3 -4
- package/dist/wall/floorplan-move.d.ts.map +1 -1
- package/dist/wall/floorplan-move.js +122 -9
- package/dist/wall/floorplan.d.ts.map +1 -1
- package/dist/wall/floorplan.js +19 -23
- package/dist/wall/move-shared.d.ts.map +1 -1
- package/dist/wall/move-shared.js +10 -7
- package/dist/wall/paint.d.ts.map +1 -1
- package/dist/wall/paint.js +2 -0
- package/dist/wall/panel.d.ts.map +1 -1
- package/dist/wall/panel.js +10 -17
- package/dist/wall/parametrics.js +2 -2
- package/dist/wall/pointer-transparency.d.ts +128 -0
- package/dist/wall/pointer-transparency.d.ts.map +1 -0
- package/dist/wall/pointer-transparency.js +147 -0
- package/dist/wall/renderer.d.ts.map +1 -1
- package/dist/wall/renderer.js +65 -8
- package/dist/wall/selection-hit-owner.d.ts +53 -0
- package/dist/wall/selection-hit-owner.d.ts.map +1 -0
- package/dist/wall/selection-hit-owner.js +79 -0
- package/dist/wall/system.d.ts +2 -0
- package/dist/wall/system.d.ts.map +1 -1
- package/dist/wall/system.js +66 -25
- package/dist/wall/tool.d.ts.map +1 -1
- package/dist/wall/tool.js +5 -0
- package/dist/wall/treatment-level-data.d.ts +6 -1
- package/dist/wall/treatment-level-data.d.ts.map +1 -1
- package/dist/wall/treatment-level-data.js +82 -5
- package/dist/wall/treatments.d.ts +1 -0
- package/dist/wall/treatments.d.ts.map +1 -1
- package/dist/wall/treatments.js +5 -0
- package/dist/wall/wall-batch-system.d.ts +38 -6
- package/dist/wall/wall-batch-system.d.ts.map +1 -1
- package/dist/wall/wall-batch-system.js +122 -25
- package/dist/wall/wall-batch.js +2 -2
- package/dist/window/definition.d.ts +2 -1
- package/dist/window/definition.d.ts.map +1 -1
- package/dist/window/definition.js +51 -24
- package/dist/window/floorplan-move.d.ts.map +1 -1
- package/dist/window/floorplan-move.js +1 -1
- package/dist/window/move-tool.d.ts +7 -5
- package/dist/window/move-tool.d.ts.map +1 -1
- package/dist/window/move-tool.js +344 -58
- package/dist/window/panel.d.ts.map +1 -1
- package/dist/window/panel.js +2 -0
- package/dist/window/parametrics.js +2 -2
- package/dist/window/renderer.d.ts.map +1 -1
- package/dist/window/renderer.js +5 -7
- package/dist/window/tool.d.ts.map +1 -1
- package/dist/window/tool.js +227 -13
- package/dist/zone/floorplan-affordances.d.ts +12 -12
- package/package.json +11 -9
- package/dist/dormer/panel-window-section.d.ts +0 -14
- package/dist/dormer/panel-window-section.d.ts.map +0 -1
- package/dist/dormer/panel-window-section.js +0 -59
- package/dist/dormer/window-assembly.d.ts +0 -22
- package/dist/dormer/window-assembly.d.ts.map +0 -1
- package/dist/dormer/window-assembly.js +0 -111
- package/dist/dormer/window-frame.d.ts +0 -24
- package/dist/dormer/window-frame.d.ts.map +0 -1
- package/dist/dormer/window-frame.js +0 -100
|
@@ -2,13 +2,17 @@ import type { CabinetModuleNode as CabinetModuleNodeType, CabinetNode as Cabinet
|
|
|
2
2
|
import { useScene } from '@pascal-app/core';
|
|
3
3
|
export type CabinetEditableNode = CabinetNodeType | CabinetModuleNodeType;
|
|
4
4
|
export declare function bumpRunLayoutRevisionViaStore(scene: ReturnType<typeof useScene.getState>, run: CabinetNodeType): void;
|
|
5
|
-
export declare function reflowRunModules({ modules, parentRun, patch,
|
|
5
|
+
export declare function reflowRunModules({ modules, parentRun, patch, scene, selected, }: {
|
|
6
6
|
modules: CabinetModuleNodeType[];
|
|
7
7
|
parentRun: CabinetNodeType;
|
|
8
8
|
patch: Partial<CabinetModuleNodeType>;
|
|
9
|
-
preserveExtent?: boolean;
|
|
10
9
|
scene: ReturnType<typeof useScene.getState>;
|
|
11
10
|
selected: CabinetModuleNodeType;
|
|
11
|
+
}): boolean;
|
|
12
|
+
export declare function updateCabinetRun({ modules, node, patch, }: {
|
|
13
|
+
modules: CabinetModuleNodeType[];
|
|
14
|
+
node: CabinetNodeType;
|
|
15
|
+
patch: Partial<CabinetNodeType>;
|
|
12
16
|
}): void;
|
|
13
17
|
export declare function CabinetRunPanel({ node, modules, onClose, }: {
|
|
14
18
|
node: CabinetNodeType;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-panel.d.ts","sourceRoot":"","sources":["../../src/cabinet/run-panel.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"run-panel.d.ts","sourceRoot":"","sources":["../../src/cabinet/run-panel.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAGV,iBAAiB,IAAI,qBAAqB,EAC1C,WAAW,IAAI,eAAe,EAC/B,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAkC,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AA+D3E,MAAM,MAAM,mBAAmB,GAAG,eAAe,GAAG,qBAAqB,CAAA;AAoFzE,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,UAAU,CAAC,OAAO,QAAQ,CAAC,QAAQ,CAAC,EAC3C,GAAG,EAAE,eAAe,QAIrB;AAuBD,wBAAgB,gBAAgB,CAAC,EAC/B,OAAO,EACP,SAAS,EACT,KAAK,EACL,KAAK,EACL,QAAQ,GACT,EAAE;IACD,OAAO,EAAE,qBAAqB,EAAE,CAAA;IAChC,SAAS,EAAE,eAAe,CAAA;IAC1B,KAAK,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAA;IACrC,KAAK,EAAE,UAAU,CAAC,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAC3C,QAAQ,EAAE,qBAAqB,CAAA;CAChC,GAAG,OAAO,CA8JV;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,OAAO,EACP,IAAI,EACJ,KAAK,GACN,EAAE;IACD,OAAO,EAAE,qBAAqB,EAAE,CAAA;IAChC,IAAI,EAAE,eAAe,CAAA;IACrB,KAAK,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;CAChC,QAgFA;AAED,wBAAgB,eAAe,CAAC,EAC9B,IAAI,EACJ,OAAO,EACP,OAAO,GACR,EAAE;IACD,IAAI,EAAE,eAAe,CAAA;IACrB,OAAO,EAAE,qBAAqB,EAAE,CAAA;IAChC,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB,+BA8iBA"}
|
|
@@ -1,21 +1,59 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
-
import { createSceneApi, useScene } from '@pascal-app/core';
|
|
3
|
+
import { createSceneApi, resolveLevelId, useScene } from '@pascal-app/core';
|
|
4
4
|
import { ActionButton, PanelSection, PanelWrapper, SegmentedControl, SliderControl, ToggleControl, } from '@pascal-app/editor';
|
|
5
5
|
import { useViewer } from '@pascal-app/viewer';
|
|
6
|
-
import { Plus, Trash } from 'lucide-react';
|
|
7
|
-
import { useCallback, useMemo } from 'react';
|
|
8
|
-
import {
|
|
6
|
+
import { Copy, Equal as EqualIcon, Plus, Trash } from 'lucide-react';
|
|
7
|
+
import { useCallback, useMemo, useState } from 'react';
|
|
8
|
+
import { useShallow } from 'zustand/react/shallow';
|
|
9
|
+
import { metadataForSelectedWidth, metadataWithPresetWidthDebt, presetNominalWidth, presetWidthDebt, recordedPresetNominalWidth, } from './preset-width-debt';
|
|
10
|
+
import { CABINET_DIMENSION_PROFILES, cabinetDimensionProfileById, cabinetDimensionProfileId, } from './profiles';
|
|
11
|
+
import { MAX_CABINET_WIDTH } from './resize-limits';
|
|
12
|
+
import { CABINET_REVEAL_GAPS, cabinetRevealGapById, cabinetRevealGapId, } from './reveals';
|
|
13
|
+
import { runWallConstraints } from './run-layout';
|
|
14
|
+
import { addCabinetModuleSide, backAlignZ, bumpCabinetRunLayoutRevision, cabinetMetadataRecord, cabinetRunArrayPlan, cabinetRunWidthEqualizationPlan, duplicateCabinetModuleAlongRun, equalizeCabinetRunWidths, nestedCornerRunPositionOverrides, resolveCabinetType, runModuleBaseY, syncCornerRunsFromRunSources, syncCornerStyleGroupFromRun, wallChildOf, } from './run-ops';
|
|
9
15
|
import { backAnchoredModuleZ, minCabinetCarcassHeightForStack, reflowCabinetRunModules, stackForCabinet, } from './stack';
|
|
16
|
+
import { CABINET_WALL_HEIGHT_PRESETS, cabinetWallHeightPresetById, cabinetWallHeightPresetId, } from './wall-height-presets';
|
|
10
17
|
const RUN_POSITION_PATCH_KEYS = new Set(['showPlinth', 'plinthHeight']);
|
|
11
18
|
const RUN_MODULE_SYNC_PATCH_KEYS = new Set([
|
|
12
19
|
'frontStyle',
|
|
13
20
|
'frontOverlay',
|
|
14
21
|
'handleStyle',
|
|
15
22
|
'handlePosition',
|
|
23
|
+
'frontGap',
|
|
16
24
|
]);
|
|
17
25
|
const RUN_DEPTH_PATCH_KEY = 'depth';
|
|
18
|
-
const
|
|
26
|
+
const MIN_TRIMMED_CORNER_PRESET_WIDTH = 0.05;
|
|
27
|
+
function selectCabinetRunPlanningNodes(nodes, runId) {
|
|
28
|
+
const run = nodes[runId];
|
|
29
|
+
if (run?.type !== 'cabinet')
|
|
30
|
+
return [];
|
|
31
|
+
const relevantIds = new Set();
|
|
32
|
+
const addWithAncestors = (node) => {
|
|
33
|
+
let current = node;
|
|
34
|
+
const visited = new Set();
|
|
35
|
+
while (current && !visited.has(current.id)) {
|
|
36
|
+
const currentId = current.id;
|
|
37
|
+
visited.add(currentId);
|
|
38
|
+
relevantIds.add(currentId);
|
|
39
|
+
current = current.parentId ? nodes[current.parentId] : undefined;
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
addWithAncestors(run);
|
|
43
|
+
for (const childId of run.children ?? [])
|
|
44
|
+
addWithAncestors(nodes[childId]);
|
|
45
|
+
const levelId = resolveLevelId(run, nodes);
|
|
46
|
+
for (const candidate of Object.values(nodes)) {
|
|
47
|
+
if (candidate?.type === 'wall' &&
|
|
48
|
+
resolveLevelId(candidate, nodes) === levelId) {
|
|
49
|
+
addWithAncestors(candidate);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return [...relevantIds].flatMap((id) => {
|
|
53
|
+
const node = nodes[id];
|
|
54
|
+
return node ? [node] : [];
|
|
55
|
+
});
|
|
56
|
+
}
|
|
19
57
|
const FRONT_STYLE_OPTIONS = [
|
|
20
58
|
{ value: 'slab', label: 'Slab' },
|
|
21
59
|
{ value: 'shaker', label: 'Shaker' },
|
|
@@ -51,37 +89,81 @@ export function bumpRunLayoutRevisionViaStore(scene, run) {
|
|
|
51
89
|
bumpCabinetRunLayoutRevision(createSceneApi(useScene), run);
|
|
52
90
|
scene.markDirty(run.id);
|
|
53
91
|
}
|
|
54
|
-
function
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
return typeof debt === 'number' && debt > 0 ? debt : 0;
|
|
92
|
+
function canDonatePresetWidth(module, run) {
|
|
93
|
+
return (resolveCabinetType(module, run) === 'base' &&
|
|
94
|
+
stackForCabinet(module).every((compartment) => compartment.type === 'door' ||
|
|
95
|
+
compartment.type === 'drawer' ||
|
|
96
|
+
compartment.type === 'shelf'));
|
|
60
97
|
}
|
|
61
|
-
function
|
|
62
|
-
const
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
: {};
|
|
67
|
-
const nextDebt = Math.max(0, presetWidthDebt(module, sourceId) - widthDelta);
|
|
68
|
-
if (nextDebt > 1e-4)
|
|
69
|
-
debts[sourceId] = nextDebt;
|
|
70
|
-
else
|
|
71
|
-
delete debts[sourceId];
|
|
72
|
-
if (Object.keys(debts).length > 0) {
|
|
73
|
-
return { ...metadata, [PRESET_WIDTH_DEBT_KEY]: debts };
|
|
74
|
-
}
|
|
75
|
-
const { [PRESET_WIDTH_DEBT_KEY]: _removed, ...rest } = metadata;
|
|
76
|
-
return rest;
|
|
98
|
+
function hasLinkedCornerRun(module) {
|
|
99
|
+
const value = cabinetMetadataRecord(module.metadata).cabinetCornerSourceLink;
|
|
100
|
+
return (Boolean(value && typeof value === 'object' && !Array.isArray(value)) &&
|
|
101
|
+
Array.isArray(value.linkedRunIds) &&
|
|
102
|
+
value.linkedRunIds.length > 0);
|
|
77
103
|
}
|
|
78
|
-
export function reflowRunModules({ modules, parentRun, patch,
|
|
104
|
+
export function reflowRunModules({ modules, parentRun, patch, scene, selected, }) {
|
|
105
|
+
const wallConstraints = runWallConstraints(parentRun, modules, scene.nodes, { widthGrowth: Math.max(0, (patch.width ?? selected.width) - selected.width) });
|
|
106
|
+
const sortedModules = [...modules].sort((a, b) => a.position[0] - b.position[0]);
|
|
107
|
+
const leftCornerAnchored = Boolean(sortedModules[0] && hasLinkedCornerRun(sortedModules[0]));
|
|
108
|
+
const rightCornerAnchored = Boolean(sortedModules.at(-1) && hasLinkedCornerRun(sortedModules.at(-1)));
|
|
109
|
+
const effectiveWallConstraints = {
|
|
110
|
+
left: leftCornerAnchored && wallConstraints.left.constrained
|
|
111
|
+
? { constrained: true, slack: 0 }
|
|
112
|
+
: wallConstraints.left,
|
|
113
|
+
right: rightCornerAnchored && wallConstraints.right.constrained
|
|
114
|
+
? { constrained: true, slack: 0 }
|
|
115
|
+
: wallConstraints.right,
|
|
116
|
+
};
|
|
117
|
+
const eligibleDonorIds = new Set(modules.filter((module) => canDonatePresetWidth(module, parentRun)).map((module) => module.id));
|
|
118
|
+
const preserveExtent = effectiveWallConstraints.left.constrained && effectiveWallConstraints.right.constrained;
|
|
119
|
+
const selectedWillShrink = (patch.width ?? selected.width) < selected.width - 1e-4;
|
|
120
|
+
const nominalWidthById = new Map(modules.map((module) => [module.id, recordedPresetNominalWidth(module)]));
|
|
121
|
+
const maximumWidthById = new Map(modules.map((module) => [module.id, presetNominalWidth(module)]));
|
|
122
|
+
const originalDonorIds = new Set(modules
|
|
123
|
+
.filter((module) => eligibleDonorIds.has(module.id) && presetWidthDebt(module, selected.id) > 1e-4)
|
|
124
|
+
.map((module) => module.id));
|
|
125
|
+
if (preserveExtent && selectedWillShrink) {
|
|
126
|
+
const sorted = [...modules].sort((a, b) => a.position[0] - b.position[0]);
|
|
127
|
+
const selectedIndex = sorted.findIndex((module) => module.id === selected.id);
|
|
128
|
+
const fallbackCandidates = sorted
|
|
129
|
+
.map((module, index) => ({ index, module }))
|
|
130
|
+
.filter(({ module }) => module.id !== selected.id && eligibleDonorIds.has(module.id))
|
|
131
|
+
.sort((a, b) => {
|
|
132
|
+
const distance = Math.abs(a.index - selectedIndex) - Math.abs(b.index - selectedIndex);
|
|
133
|
+
return distance !== 0 ? distance : b.index - a.index;
|
|
134
|
+
});
|
|
135
|
+
const freedWidth = selected.width - (patch.width ?? selected.width);
|
|
136
|
+
const ordinaryCapacity = fallbackCandidates.reduce((total, { module }) => {
|
|
137
|
+
const maximumWidth = maximumWidthById.get(module.id) ?? MAX_CABINET_WIDTH;
|
|
138
|
+
return total + Math.max(0, maximumWidth - module.width);
|
|
139
|
+
}, 0);
|
|
140
|
+
let extraCapacity = Math.max(0, freedWidth - ordinaryCapacity);
|
|
141
|
+
const extensionCandidates = [...fallbackCandidates].sort((a, b) => {
|
|
142
|
+
const donorOrder = Number(originalDonorIds.has(a.module.id)) - Number(originalDonorIds.has(b.module.id));
|
|
143
|
+
return donorOrder !== 0 ? donorOrder : 0;
|
|
144
|
+
});
|
|
145
|
+
for (const { module } of extensionCandidates) {
|
|
146
|
+
if (extraCapacity <= 1e-4)
|
|
147
|
+
break;
|
|
148
|
+
const nominalWidth = maximumWidthById.get(module.id) ?? MAX_CABINET_WIDTH;
|
|
149
|
+
const addedCapacity = Math.min(extraCapacity, MAX_CABINET_WIDTH - nominalWidth);
|
|
150
|
+
maximumWidthById.set(module.id, nominalWidth + addedCapacity);
|
|
151
|
+
extraCapacity -= addedCapacity;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
79
154
|
const reflowed = reflowCabinetRunModules(modules, selected.id, patch.width ?? selected.width, {
|
|
80
|
-
|
|
155
|
+
wallConstraints: effectiveWallConstraints,
|
|
156
|
+
eligibleDonorIds,
|
|
157
|
+
minimumWidthById: new Map(modules
|
|
158
|
+
.filter(hasLinkedCornerRun)
|
|
159
|
+
.map((module) => [module.id, MIN_TRIMMED_CORNER_PRESET_WIDTH])),
|
|
160
|
+
maximumWidth: MAX_CABINET_WIDTH,
|
|
161
|
+
maximumWidthById,
|
|
162
|
+
nominalWidthById,
|
|
81
163
|
restorableWidthById: new Map(modules.map((module) => [module.id, presetWidthDebt(module, selected.id)])),
|
|
82
164
|
});
|
|
83
165
|
if (reflowed.length === 0)
|
|
84
|
-
return;
|
|
166
|
+
return false;
|
|
85
167
|
const reflowById = new Map(reflowed.map((entry) => [entry.id, entry]));
|
|
86
168
|
for (const module of [...modules].sort((a, b) => a.position[0] - b.position[0])) {
|
|
87
169
|
const reflow = reflowById.get(module.id);
|
|
@@ -92,7 +174,10 @@ export function reflowRunModules({ modules, parentRun, patch, preserveExtent = f
|
|
|
92
174
|
? { ...patch, width: reflow.width }
|
|
93
175
|
: { width: reflow.width };
|
|
94
176
|
const widthDelta = reflow.width - module.width;
|
|
95
|
-
if (
|
|
177
|
+
if (isSelected && Math.abs(widthDelta) > 1e-4) {
|
|
178
|
+
nextPatch.metadata = metadataForSelectedWidth(module, reflow.width, nextPatch.metadata);
|
|
179
|
+
}
|
|
180
|
+
if (!isSelected && Math.abs(widthDelta) > 1e-4) {
|
|
96
181
|
nextPatch.metadata = metadataWithPresetWidthDebt(module, selected.id, widthDelta);
|
|
97
182
|
}
|
|
98
183
|
const nextPosition = [
|
|
@@ -104,17 +189,22 @@ export function reflowRunModules({ modules, parentRun, patch, preserveExtent = f
|
|
|
104
189
|
];
|
|
105
190
|
if (isSelected) {
|
|
106
191
|
const cabinetType = patch.cabinetType ?? module.cabinetType;
|
|
107
|
-
|
|
192
|
+
const convertsToBase = cabinetType === 'base' && resolveCabinetType(module, parentRun) !== 'base';
|
|
193
|
+
if (convertsToBase) {
|
|
108
194
|
nextPatch.depth = patch.depth ?? parentRun.depth;
|
|
109
195
|
nextPatch.carcassHeight = patch.carcassHeight ?? parentRun.carcassHeight;
|
|
110
196
|
nextPatch.plinthHeight = patch.plinthHeight ?? parentRun.plinthHeight;
|
|
111
197
|
nextPatch.toeKickDepth = patch.toeKickDepth ?? parentRun.toeKickDepth;
|
|
112
|
-
nextPatch.countertopThickness = patch.countertopThickness ??
|
|
198
|
+
nextPatch.countertopThickness = patch.countertopThickness ?? parentRun.countertopThickness;
|
|
113
199
|
nextPatch.countertopOverhang = patch.countertopOverhang ?? parentRun.countertopOverhang;
|
|
114
200
|
}
|
|
115
201
|
}
|
|
116
202
|
nextPatch.position = nextPosition;
|
|
203
|
+
const nestedCornerOverrides = nestedCornerRunPositionOverrides(module, nextPosition, scene.nodes);
|
|
117
204
|
scene.updateNode(module.id, nextPatch);
|
|
205
|
+
for (const [id, override] of nestedCornerOverrides) {
|
|
206
|
+
scene.updateNode(id, override);
|
|
207
|
+
}
|
|
118
208
|
const wallChild = wallChildOf(module, scene.nodes);
|
|
119
209
|
if (wallChild) {
|
|
120
210
|
scene.updateNode(wallChild.id, {
|
|
@@ -128,86 +218,109 @@ export function reflowRunModules({ modules, parentRun, patch, preserveExtent = f
|
|
|
128
218
|
scene.markDirty(module.id);
|
|
129
219
|
}
|
|
130
220
|
}
|
|
221
|
+
syncCornerRunsFromRunSources({
|
|
222
|
+
baseLayout: 'width-only',
|
|
223
|
+
previousModules: modules,
|
|
224
|
+
run: useScene.getState().nodes[parentRun.id] ?? parentRun,
|
|
225
|
+
sceneApi: createSceneApi(useScene),
|
|
226
|
+
});
|
|
131
227
|
bumpRunLayoutRevisionViaStore(scene, parentRun);
|
|
228
|
+
return true;
|
|
132
229
|
}
|
|
133
|
-
export function
|
|
134
|
-
const
|
|
135
|
-
const
|
|
136
|
-
const
|
|
137
|
-
|
|
138
|
-
const
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
230
|
+
export function updateCabinetRun({ modules, node, patch, }) {
|
|
231
|
+
const scene = useScene.getState();
|
|
232
|
+
const sceneApi = createSceneApi(useScene);
|
|
233
|
+
const nextPatch = { ...patch };
|
|
234
|
+
if (typeof nextPatch.carcassHeight === 'number') {
|
|
235
|
+
const minModuleHeight = Math.max(0.4, ...modules.map((module) => minCabinetCarcassHeightForStack(module)));
|
|
236
|
+
nextPatch.carcassHeight = Math.max(nextPatch.carcassHeight, minModuleHeight);
|
|
237
|
+
}
|
|
238
|
+
const nextNode = { ...node, ...nextPatch };
|
|
239
|
+
scene.updateNode(node.id, nextPatch);
|
|
240
|
+
const shouldSyncDepth = RUN_DEPTH_PATCH_KEY in nextPatch;
|
|
241
|
+
const shouldSyncHeight = 'carcassHeight' in nextPatch;
|
|
242
|
+
const shouldSyncPosition = Object.keys(nextPatch).some((key) => RUN_POSITION_PATCH_KEYS.has(key));
|
|
243
|
+
const shouldSyncModules = Object.keys(nextPatch).some((key) => RUN_MODULE_SYNC_PATCH_KEYS.has(key));
|
|
244
|
+
if (!shouldSyncDepth && !shouldSyncHeight && !shouldSyncPosition && !shouldSyncModules)
|
|
245
|
+
return;
|
|
246
|
+
const stylePatch = {};
|
|
247
|
+
if ('frontStyle' in nextPatch)
|
|
248
|
+
stylePatch.frontStyle = nextNode.frontStyle;
|
|
249
|
+
if ('frontOverlay' in nextPatch)
|
|
250
|
+
stylePatch.frontOverlay = nextNode.frontOverlay;
|
|
251
|
+
if ('handleStyle' in nextPatch)
|
|
252
|
+
stylePatch.handleStyle = nextNode.handleStyle;
|
|
253
|
+
if ('handlePosition' in nextPatch)
|
|
254
|
+
stylePatch.handlePosition = nextNode.handlePosition;
|
|
255
|
+
if ('frontGap' in nextPatch)
|
|
256
|
+
stylePatch.frontGap = nextNode.frontGap;
|
|
257
|
+
for (const module of modules) {
|
|
258
|
+
const modulePatch = {};
|
|
259
|
+
if (shouldSyncDepth) {
|
|
260
|
+
modulePatch.depth = nextNode.depth;
|
|
143
261
|
}
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
const shouldSyncModules = Object.keys(nextPatch).some((key) => RUN_MODULE_SYNC_PATCH_KEYS.has(key));
|
|
150
|
-
if (!shouldSyncDepth && !shouldSyncHeight && !shouldSyncPosition && !shouldSyncModules)
|
|
151
|
-
return;
|
|
152
|
-
const stylePatch = {};
|
|
153
|
-
if ('frontStyle' in nextPatch)
|
|
154
|
-
stylePatch.frontStyle = nextNode.frontStyle;
|
|
155
|
-
if ('frontOverlay' in nextPatch)
|
|
156
|
-
stylePatch.frontOverlay = nextNode.frontOverlay;
|
|
157
|
-
if ('handleStyle' in nextPatch)
|
|
158
|
-
stylePatch.handleStyle = nextNode.handleStyle;
|
|
159
|
-
if ('handlePosition' in nextPatch)
|
|
160
|
-
stylePatch.handlePosition = nextNode.handlePosition;
|
|
161
|
-
for (const module of modules) {
|
|
162
|
-
const modulePatch = {};
|
|
163
|
-
if (shouldSyncDepth) {
|
|
164
|
-
modulePatch.depth = nextNode.depth;
|
|
165
|
-
}
|
|
166
|
-
if (shouldSyncHeight) {
|
|
167
|
-
modulePatch.carcassHeight = Math.max(nextNode.carcassHeight, minCabinetCarcassHeightForStack(module));
|
|
168
|
-
}
|
|
169
|
-
if (shouldSyncPosition) {
|
|
170
|
-
modulePatch.position = [module.position[0], runModuleBaseY(nextNode), module.position[2]];
|
|
171
|
-
}
|
|
172
|
-
if (shouldSyncModules) {
|
|
173
|
-
if ('frontStyle' in nextPatch)
|
|
174
|
-
modulePatch.frontStyle = nextNode.frontStyle;
|
|
175
|
-
if ('frontOverlay' in nextPatch)
|
|
176
|
-
modulePatch.frontOverlay = nextNode.frontOverlay;
|
|
177
|
-
if ('handleStyle' in nextPatch)
|
|
178
|
-
modulePatch.handleStyle = nextNode.handleStyle;
|
|
179
|
-
if ('handlePosition' in nextPatch)
|
|
180
|
-
modulePatch.handlePosition = nextNode.handlePosition;
|
|
181
|
-
}
|
|
182
|
-
scene.updateNode(module.id, modulePatch);
|
|
183
|
-
if (shouldSyncModules) {
|
|
184
|
-
const wallChild = wallChildOf(module, scene.nodes);
|
|
185
|
-
if (wallChild) {
|
|
186
|
-
scene.updateNode(wallChild.id, {
|
|
187
|
-
frontStyle: nextNode.frontStyle,
|
|
188
|
-
frontOverlay: nextNode.frontOverlay,
|
|
189
|
-
handleStyle: nextNode.handleStyle,
|
|
190
|
-
handlePosition: nextNode.handlePosition,
|
|
191
|
-
});
|
|
192
|
-
}
|
|
193
|
-
}
|
|
262
|
+
if (shouldSyncHeight) {
|
|
263
|
+
modulePatch.carcassHeight = Math.max(nextNode.carcassHeight, minCabinetCarcassHeightForStack(module));
|
|
264
|
+
}
|
|
265
|
+
if (shouldSyncPosition) {
|
|
266
|
+
modulePatch.position = [module.position[0], runModuleBaseY(nextNode), module.position[2]];
|
|
194
267
|
}
|
|
195
|
-
const cornerSource = cornerLinkedSourceModuleForRun(nextNode, scene.nodes);
|
|
196
268
|
if (shouldSyncModules) {
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
269
|
+
if ('frontStyle' in nextPatch)
|
|
270
|
+
modulePatch.frontStyle = nextNode.frontStyle;
|
|
271
|
+
if ('frontOverlay' in nextPatch)
|
|
272
|
+
modulePatch.frontOverlay = nextNode.frontOverlay;
|
|
273
|
+
if ('handleStyle' in nextPatch)
|
|
274
|
+
modulePatch.handleStyle = nextNode.handleStyle;
|
|
275
|
+
if ('handlePosition' in nextPatch)
|
|
276
|
+
modulePatch.handlePosition = nextNode.handlePosition;
|
|
277
|
+
if ('frontGap' in nextPatch)
|
|
278
|
+
modulePatch.frontGap = nextNode.frontGap;
|
|
202
279
|
}
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
280
|
+
scene.updateNode(module.id, modulePatch);
|
|
281
|
+
if (shouldSyncModules) {
|
|
282
|
+
const wallChild = wallChildOf(module, scene.nodes);
|
|
283
|
+
if (wallChild) {
|
|
284
|
+
scene.updateNode(wallChild.id, {
|
|
285
|
+
frontStyle: nextNode.frontStyle,
|
|
286
|
+
frontOverlay: nextNode.frontOverlay,
|
|
287
|
+
handleStyle: nextNode.handleStyle,
|
|
288
|
+
handlePosition: nextNode.handlePosition,
|
|
289
|
+
...('frontGap' in nextPatch ? { frontGap: nextNode.frontGap } : {}),
|
|
290
|
+
});
|
|
291
|
+
}
|
|
209
292
|
}
|
|
210
|
-
}
|
|
293
|
+
}
|
|
294
|
+
if (shouldSyncModules) {
|
|
295
|
+
syncCornerStyleGroupFromRun({
|
|
296
|
+
run: nextNode,
|
|
297
|
+
patch: stylePatch,
|
|
298
|
+
sceneApi,
|
|
299
|
+
});
|
|
300
|
+
}
|
|
301
|
+
else {
|
|
302
|
+
syncCornerRunsFromRunSources({ run: nextNode, sceneApi });
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
export function CabinetRunPanel({ node, modules, onClose, }) {
|
|
306
|
+
const setSelection = useViewer((s) => s.setSelection);
|
|
307
|
+
const planningNodeList = useScene(useShallow((state) => selectCabinetRunPlanningNodes(state.nodes, node.id)));
|
|
308
|
+
const planningNodes = useMemo(() => Object.fromEntries(planningNodeList.map((planningNode) => [planningNode.id, planningNode])), [planningNodeList]);
|
|
309
|
+
const planningNode = planningNodes[node.id] ?? node;
|
|
310
|
+
const sortedModules = useMemo(() => [...modules].sort((a, b) => a.position[0] - b.position[0]), [modules]);
|
|
311
|
+
const [arraySourceId, setArraySourceId] = useState(null);
|
|
312
|
+
const [arrayCopyCount, setArrayCopyCount] = useState(2);
|
|
313
|
+
const [arraySpacing, setArraySpacing] = useState(0);
|
|
314
|
+
const [arrayDirection, setArrayDirection] = useState('right');
|
|
315
|
+
const widthEqualization = useMemo(() => cabinetRunWidthEqualizationPlan(planningNode, planningNodes), [planningNode, planningNodes]);
|
|
316
|
+
const arraySource = useMemo(() => sortedModules.find((module) => module.id === arraySourceId && module.moduleKind !== 'corner-filler') ?? sortedModules.find((module) => module.moduleKind !== 'corner-filler'), [arraySourceId, sortedModules]);
|
|
317
|
+
const arrayPlan = useMemo(() => cabinetRunArrayPlan(planningNode, planningNodes, {
|
|
318
|
+
copyCount: arrayCopyCount,
|
|
319
|
+
direction: arrayDirection,
|
|
320
|
+
sourceModuleId: arraySource?.id ?? null,
|
|
321
|
+
spacing: arraySpacing,
|
|
322
|
+
}), [arrayCopyCount, arrayDirection, arraySource?.id, arraySpacing, planningNode, planningNodes]);
|
|
323
|
+
const updateRun = useCallback((patch) => updateCabinetRun({ modules, node, patch }), [modules, node]);
|
|
211
324
|
const addModule = useCallback((side) => {
|
|
212
325
|
const id = addCabinetModuleSide({
|
|
213
326
|
anchorModule: null,
|
|
@@ -218,6 +331,51 @@ export function CabinetRunPanel({ node, modules, onClose, }) {
|
|
|
218
331
|
if (id)
|
|
219
332
|
setSelection({ selectedIds: [id] });
|
|
220
333
|
}, [node, setSelection]);
|
|
334
|
+
const equalizeWidths = useCallback(() => {
|
|
335
|
+
equalizeCabinetRunWidths({ run: node, sceneApi: createSceneApi(useScene) });
|
|
336
|
+
}, [node]);
|
|
337
|
+
const equalizeWidthsTitle = !widthEqualization.ok
|
|
338
|
+
? widthEqualization.reason === 'not-enough-modules'
|
|
339
|
+
? 'At least two standard base cabinets are required'
|
|
340
|
+
: 'The available run width cannot satisfy the cabinet width limits'
|
|
341
|
+
: widthEqualization.changed
|
|
342
|
+
? 'Equalize all resizeable standard base cabinets in this run'
|
|
343
|
+
: 'The resizeable cabinet widths are already equal';
|
|
344
|
+
const duplicateAlongRun = useCallback(() => {
|
|
345
|
+
if (!arraySource)
|
|
346
|
+
return;
|
|
347
|
+
const copiedIds = duplicateCabinetModuleAlongRun({
|
|
348
|
+
copyCount: arrayCopyCount,
|
|
349
|
+
direction: arrayDirection,
|
|
350
|
+
run: node,
|
|
351
|
+
sceneApi: createSceneApi(useScene),
|
|
352
|
+
sourceModuleId: arraySource.id,
|
|
353
|
+
spacing: arraySpacing,
|
|
354
|
+
});
|
|
355
|
+
if (copiedIds?.length)
|
|
356
|
+
setSelection({ selectedIds: [node.id] });
|
|
357
|
+
}, [arrayCopyCount, arrayDirection, arraySpacing, arraySource, node, setSelection]);
|
|
358
|
+
const duplicateAlongRunTitle = !arrayPlan.ok
|
|
359
|
+
? arrayPlan.reason === 'no-source'
|
|
360
|
+
? 'Choose a standard or appliance module as the source'
|
|
361
|
+
: arrayPlan.reason === 'invalid-options'
|
|
362
|
+
? 'Choose a copy count from 1 to 20 and spacing from 0 to 2 m'
|
|
363
|
+
: 'There is not enough room in this run for the requested array'
|
|
364
|
+
: `Create ${arrayCopyCount} ${arraySource?.name || 'module'} cop${arrayCopyCount === 1 ? 'y' : 'ies'}`;
|
|
365
|
+
const dimensionProfile = cabinetDimensionProfileId(node);
|
|
366
|
+
const wallHeightPreset = cabinetWallHeightPresetId(node);
|
|
367
|
+
const applyWallHeightPreset = useCallback((presetId) => {
|
|
368
|
+
updateRun({ carcassHeight: cabinetWallHeightPresetById(presetId).value });
|
|
369
|
+
}, [updateRun]);
|
|
370
|
+
const applyDimensionProfile = useCallback((profileId) => {
|
|
371
|
+
const profile = cabinetDimensionProfileById(profileId);
|
|
372
|
+
updateRun({
|
|
373
|
+
carcassHeight: profile.carcassHeight,
|
|
374
|
+
countertopThickness: profile.countertopThickness,
|
|
375
|
+
depth: profile.depth,
|
|
376
|
+
plinthHeight: profile.plinthHeight,
|
|
377
|
+
});
|
|
378
|
+
}, [updateRun]);
|
|
221
379
|
const deleteModule = useCallback((module) => {
|
|
222
380
|
useScene.getState().deleteNode(module.id);
|
|
223
381
|
// Deleting the last module cascades the empty run away too — only
|
|
@@ -230,7 +388,19 @@ export function CabinetRunPanel({ node, modules, onClose, }) {
|
|
|
230
388
|
setSelection({ selectedIds: [] });
|
|
231
389
|
}
|
|
232
390
|
}, [node.id, setSelection]);
|
|
233
|
-
return (_jsxs(PanelWrapper, { icon: "/icons/item.webp", onClose: onClose, title: node.name || 'Modular Cabinet', width: 320, children: [_jsxs(PanelSection, { title: "Modules", children: [_jsx("div", { className: "flex flex-col gap-2 px-1 pb-2", children: sortedModules.map((module, index) => (_jsxs("div", { className: "flex items-center justify-between rounded-lg border border-border/40 bg-[#252527] px-2 py-2", children: [_jsxs("button", { className: "min-w-0 flex-1 text-left", onClick: () => setSelection({ selectedIds: [module.id] }), type: "button", children: [_jsx("div", { className: "truncate text-xs font-medium text-foreground", children: module.name || `Module ${index + 1}` }), _jsx("div", { className: "text-[10px] uppercase tracking-wide text-muted-foreground", children: moduleSummary(module) })] }), _jsx("button", { className: "flex h-8 w-8 shrink-0 items-center justify-center rounded-md border border-
|
|
391
|
+
return (_jsxs(PanelWrapper, { icon: "/icons/item.webp", onClose: onClose, title: node.name || 'Modular Cabinet', width: 320, children: [_jsxs(PanelSection, { title: "Modules", children: [_jsx("div", { className: "flex flex-col gap-2 px-1 pb-2", children: sortedModules.map((module, index) => (_jsxs("div", { className: "flex items-center justify-between rounded-lg border border-border/40 bg-[#252527] px-2 py-2", children: [_jsxs("button", { className: "min-w-0 flex-1 text-left", onClick: () => setSelection({ selectedIds: [module.id] }), type: "button", children: [_jsx("div", { className: "truncate text-xs font-medium text-foreground", children: module.name || `Module ${index + 1}` }), _jsx("div", { className: "text-[10px] uppercase tracking-wide text-muted-foreground", children: moduleSummary(module) })] }), _jsx("button", { "aria-label": `Use ${module.name || `Module ${index + 1}`} as array source`, className: "mr-1 flex h-8 w-8 shrink-0 items-center justify-center rounded-md border border-border/50 text-muted-foreground transition-colors hover:bg-white/8 hover:text-foreground disabled:cursor-not-allowed disabled:opacity-30", disabled: module.moduleKind === 'corner-filler', onClick: () => setArraySourceId(module.id), title: module.moduleKind === 'corner-filler'
|
|
392
|
+
? 'Corner fillers cannot be used as array sources'
|
|
393
|
+
: 'Use this module as the array source', type: "button", children: _jsx(Copy, { className: "h-3.5 w-3.5" }) }), _jsx("button", { className: "flex h-8 w-8 shrink-0 items-center justify-center rounded-md border border-red-500/20 bg-red-500/8 text-red-300 transition-colors hover:bg-red-500/15 hover:text-red-200 disabled:opacity-30", disabled: modules.length <= 1, onClick: () => deleteModule(module), type: "button", children: _jsx(Trash, { className: "h-3.5 w-3.5" }) })] }, module.id))) }), _jsxs("div", { className: "px-1 pb-1", children: [_jsxs("div", { className: "grid grid-cols-2 gap-2", children: [_jsx(ActionButton, { icon: _jsx(Plus, { className: "h-4 w-4" }), label: "Add left", onClick: () => addModule('left') }), _jsx(ActionButton, { icon: _jsx(Plus, { className: "h-4 w-4" }), label: "Add right", onClick: () => addModule('right') })] }), _jsx(ActionButton, { className: "mt-2 w-full", disabled: !widthEqualization.ok || !widthEqualization.changed, icon: _jsx(EqualIcon, { className: "h-4 w-4" }), label: "Equalize widths", onClick: equalizeWidths, title: equalizeWidthsTitle }), _jsx("p", { className: "px-1 pt-1 text-[10px] leading-4 text-muted-foreground", children: "Balances standard base cabinets while keeping appliance and corner-filler widths fixed." })] })] }), _jsx(PanelSection, { title: "Duplicate along run", children: _jsxs("div", { className: "space-y-2 px-1 pb-2", children: [_jsxs("div", { className: "rounded-lg border border-border/40 bg-[#252527] px-2 py-2", children: [_jsx("div", { className: "text-[10px] uppercase tracking-wide text-muted-foreground", children: "Source module" }), _jsx("div", { className: "truncate pt-1 text-xs font-medium text-foreground", children: arraySource?.name ||
|
|
394
|
+
(arraySource ? moduleSummary(arraySource) : 'No eligible module') })] }), _jsx(SliderControl, { label: "Copies", max: 20, min: 1, onChange: (value) => setArrayCopyCount(Math.round(value)), precision: 0, step: 1, value: arrayCopyCount }), _jsx(SliderControl, { label: "Spacing", max: 2, min: 0, onChange: setArraySpacing, precision: 2, step: 0.01, unit: "m", value: arraySpacing }), _jsxs("div", { children: [_jsx("div", { className: "px-1 pb-1 text-[10px] uppercase tracking-wide text-muted-foreground", children: "Direction" }), _jsx(SegmentedControl, { onChange: (value) => setArrayDirection(value), options: [
|
|
395
|
+
{ value: 'left', label: 'Left' },
|
|
396
|
+
{ value: 'right', label: 'Right' },
|
|
397
|
+
], value: arrayDirection })] }), _jsx(ActionButton, { className: "w-full", disabled: !arrayPlan.ok, icon: _jsx(Copy, { className: "h-4 w-4" }), label: "Create array", onClick: duplicateAlongRun, title: duplicateAlongRunTitle }), _jsx("p", { className: "px-1 pt-1 text-[10px] leading-4 text-muted-foreground", children: "Copies include the source cabinet structure and any attached wall cabinet. Existing modules stay fixed; the requested array must fit in the available run space." })] }) }), _jsx(PanelSection, { title: "Shared Plinth & Countertop", children: _jsxs("div", { className: "space-y-2 px-1 pb-2", children: [node.runTier === 'base' && (_jsxs("div", { children: [_jsx("div", { className: "px-1 pb-1 text-[10px] uppercase tracking-wide text-muted-foreground", children: "Standard dimensions" }), _jsx(SegmentedControl, { mixed: dimensionProfile === 'custom', onChange: (value) => applyDimensionProfile(value), options: CABINET_DIMENSION_PROFILES.map((profile) => ({
|
|
398
|
+
label: profile.label,
|
|
399
|
+
value: profile.id,
|
|
400
|
+
})), value: dimensionProfile === 'us-base' ? 'us-base' : 'metric-base' }), _jsx("p", { className: "px-1 pt-1 text-[10px] leading-4 text-muted-foreground", children: "Applies depth, carcass, plinth, and countertop thickness to this run." })] })), node.runTier === 'wall' && (_jsxs("div", { children: [_jsx("div", { className: "px-1 pb-1 text-[10px] uppercase tracking-wide text-muted-foreground", children: "Height preset" }), _jsx(SegmentedControl, { mixed: wallHeightPreset === 'custom', onChange: (value) => applyWallHeightPreset(value), options: CABINET_WALL_HEIGHT_PRESETS.map((preset) => ({
|
|
401
|
+
label: (_jsxs("span", { className: "flex flex-col items-center leading-3", children: [_jsx("span", { children: preset.label }), _jsx("span", { className: "text-[9px] text-muted-foreground", children: preset.metricLabel })] })),
|
|
402
|
+
value: preset.id,
|
|
403
|
+
})), value: wallHeightPreset === 'custom' ? '18' : wallHeightPreset }), _jsx("p", { className: "px-1 pt-1 text-[10px] leading-4 text-muted-foreground", children: "Common wall-cabinet heights. Use the slider below for a custom height." })] })), _jsx(SliderControl, { label: "Depth", max: 1.2, min: 0.3, onChange: (value) => updateRun({ depth: value }), precision: 2, step: 0.01, unit: "m", value: node.depth }), _jsx(SliderControl, { label: "Carcass height", max: node.runTier === 'tall' ? 2.4 : 1.4, min: Math.max(0.4, ...modules.map((module) => minCabinetCarcassHeightForStack(module))), onChange: (value) => updateRun({ carcassHeight: value }), precision: 2, step: 0.01, unit: "m", value: node.carcassHeight }), _jsx(ToggleControl, { checked: node.showPlinth, label: "Show plinth", onChange: (checked) => updateRun({ showPlinth: checked }) }), node.showPlinth && (_jsx(SliderControl, { label: "Plinth height", max: 0.3, min: 0.02, onChange: (value) => updateRun({ plinthHeight: value }), precision: 2, step: 0.01, unit: "m", value: node.plinthHeight })), _jsx(ToggleControl, { checked: node.withCountertop, label: "Show countertop", onChange: (checked) => updateRun({ withCountertop: checked }) }), node.withCountertop && (_jsxs(_Fragment, { children: [_jsx(SliderControl, { label: "Countertop height", max: 0.08, min: 0.005, onChange: (value) => updateRun({ countertopThickness: value }), precision: 3, step: 0.005, unit: "m", value: node.countertopThickness }), _jsx(SliderControl, { label: "Countertop depth", max: 0.12, min: 0, onChange: (value) => updateRun({ countertopOverhang: value }), precision: 2, step: 0.005, unit: "m", value: node.countertopOverhang })] }))] }) }), _jsx(PanelSection, { title: "Island & Bar", children: _jsxs("div", { className: "space-y-2 px-1 pb-2", children: [node.withCountertop && node.barLedge?.edge !== 'back' && (_jsx(SliderControl, { label: "Seating overhang", max: 0.45, min: 0, onChange: (value) => updateRun({ countertopBackOverhang: value }), precision: 2, step: 0.05, unit: "m", value: node.countertopBackOverhang })), _jsx(ToggleControl, { checked: node.withFinishedBack, label: "Finished back", onChange: (checked) => updateRun({ withFinishedBack: checked }) }), _jsx(ToggleControl, { checked: node.withFinishedEnds, label: "Finished end panels", onChange: (checked) => updateRun({ withFinishedEnds: checked }) }), node.withCountertop && (_jsx(ToggleControl, { checked: node.withWaterfall, label: "Waterfall ends", onChange: (checked) => updateRun({ withWaterfall: checked }) })), _jsx(ToggleControl, { checked: Boolean(node.barLedge), label: "Bar counter", onChange: (checked) => updateRun({
|
|
234
404
|
barLedge: checked ? { edge: 'back', height: 1.06, depth: 0.35 } : undefined,
|
|
235
405
|
}) }), node.barLedge && (_jsxs(_Fragment, { children: [_jsx(SegmentedControl, { onChange: (value) => updateRun({
|
|
236
406
|
barLedge: { ...node.barLedge, edge: value },
|
|
@@ -244,7 +414,14 @@ export function CabinetRunPanel({ node, modules, onClose, }) {
|
|
|
244
414
|
})), value: node.frontStyle ?? 'slab' })] }), _jsxs("div", { children: [_jsx("div", { className: "px-1 pb-1 text-[10px] uppercase tracking-wide text-muted-foreground", children: "Mounting" }), _jsx(SegmentedControl, { onChange: (value) => updateRun({ frontOverlay: value }), options: FRONT_OVERLAY_OPTIONS.map((option) => ({
|
|
245
415
|
value: option.value,
|
|
246
416
|
label: option.label,
|
|
247
|
-
})), value: node.frontOverlay ?? 'full' })] })
|
|
417
|
+
})), value: node.frontOverlay ?? 'full' })] }), _jsxs("div", { children: [_jsx("div", { className: "px-1 pb-1 text-[10px] uppercase tracking-wide text-muted-foreground", children: "Reveal gap" }), _jsx(SegmentedControl, { mixed: cabinetRevealGapId(node.frontGap) === 'custom', onChange: (value) => updateRun({
|
|
418
|
+
frontGap: cabinetRevealGapById(value).value,
|
|
419
|
+
}), options: CABINET_REVEAL_GAPS.map((gap) => ({
|
|
420
|
+
value: gap.id,
|
|
421
|
+
label: gap.label,
|
|
422
|
+
})), value: cabinetRevealGapId(node.frontGap) === 'custom'
|
|
423
|
+
? '3'
|
|
424
|
+
: cabinetRevealGapId(node.frontGap) })] })] }) }), _jsx(PanelSection, { title: "Handles", children: _jsxs("div", { className: "space-y-2 px-1 pb-2", children: [_jsxs("div", { children: [_jsx("div", { className: "px-1 pb-1 text-[10px] uppercase tracking-wide text-muted-foreground", children: "Style" }), _jsx(SegmentedControl, { onChange: (value) => updateRun({ handleStyle: value }), options: HANDLE_STYLE_OPTIONS.map((option) => ({
|
|
248
425
|
value: option.value,
|
|
249
426
|
label: option.label,
|
|
250
427
|
})), value: node.handleStyle })] }), (node.handleStyle === 'bar' || node.handleStyle === 'knob') && (_jsxs("div", { children: [_jsx("div", { className: "px-1 pb-1 text-[10px] uppercase tracking-wide text-muted-foreground", children: "Position" }), _jsx(SegmentedControl, { onChange: (value) => updateRun({ handlePosition: value }), options: HANDLE_POSITION_OPTIONS.map((option) => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stack-transitions.d.ts","sourceRoot":"","sources":["../../src/cabinet/stack-transitions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,IAAI,qBAAqB,EAC1C,WAAW,IAAI,eAAe,EAC/B,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"stack-transitions.d.ts","sourceRoot":"","sources":["../../src/cabinet/stack-transitions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,IAAI,qBAAqB,EAC1C,WAAW,IAAI,eAAe,EAC/B,MAAM,kBAAkB,CAAA;AAGzB,OAAO,EACL,KAAK,kBAAkB,EAuBxB,MAAM,SAAS,CAAA;AAOhB,wBAAgB,4BAA4B,CAAC,EAC3C,IAAI,EACJ,SAAS,EACT,KAAK,EACL,IAAI,GACL,EAAE;IACD,IAAI,EAAE,eAAe,GAAG,qBAAqB,CAAA;IAC7C,SAAS,EAAE,eAAe,GAAG,SAAS,CAAA;IACtC,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,kBAAkB,CAAA;CACzB,GAAG;IAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAAC,WAAW,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAA;CAAE,CAgI/E"}
|