@pascal-app/nodes 1.0.0-beta.5 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/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 +4 -4
- 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/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/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/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 +414 -61
- package/dist/cabinet/floorplan-move.d.ts.map +1 -1
- package/dist/cabinet/floorplan-move.js +91 -22
- package/dist/cabinet/geometry/cooktop.d.ts.map +1 -1
- package/dist/cabinet/geometry/cooktop.js +2 -2
- 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 +28 -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/geometry.d.ts.map +1 -1
- package/dist/cabinet/geometry.js +63 -1
- package/dist/cabinet/hosted-resize.d.ts +8 -0
- package/dist/cabinet/hosted-resize.d.ts.map +1 -0
- package/dist/cabinet/hosted-resize.js +158 -0
- 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 +98 -5
- package/dist/cabinet/run-layout.d.ts.map +1 -1
- package/dist/cabinet/run-layout.js +430 -37
- package/dist/cabinet/run-ops.d.ts +204 -12
- package/dist/cabinet/run-ops.d.ts.map +1 -1
- package/dist/cabinet/run-ops.js +523 -36
- 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 +294 -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/surfaces.d.ts +4 -0
- package/dist/cabinet/surfaces.d.ts.map +1 -0
- package/dist/cabinet/surfaces.js +101 -0
- package/dist/cabinet/tool.d.ts.map +1 -1
- package/dist/cabinet/tool.js +615 -91
- package/dist/cabinet/tree-structure.d.ts.map +1 -1
- package/dist/cabinet/tree-structure.js +10 -9
- 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 +8 -2
- package/dist/ceiling/floorplan-affordances.d.ts +12 -12
- 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 +9 -9
- 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 +12 -12
- 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-position-section.js +2 -2
- 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 +49 -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 +38 -0
- package/dist/duct-segment/tool.d.ts.map +1 -1
- package/dist/duct-segment/tool.js +306 -677
- 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/inspector-editors.js +1 -1
- 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/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 +7 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -2
- package/dist/item/definition.d.ts.map +1 -1
- package/dist/item/definition.js +10 -2
- 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 +74 -2
- package/dist/item/floorplan.d.ts.map +1 -1
- package/dist/item/floorplan.js +33 -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 +15 -3
- package/dist/item/panel.js +1 -1
- 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 +49 -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/procedural-item/definition.d.ts +4 -0
- package/dist/procedural-item/definition.d.ts.map +1 -0
- package/dist/procedural-item/definition.js +254 -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.js +1 -1
- package/dist/ridge-vent/panel.d.ts.map +1 -1
- package/dist/ridge-vent/panel.js +4 -4
- 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 +26 -25
- 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 +12 -0
- package/dist/shared/automatic-run-end-cap.d.ts.map +1 -0
- package/dist/shared/automatic-run-end-cap.js +169 -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 +117 -0
- package/dist/shared/distribution-run-tool.d.ts.map +1 -0
- package/dist/shared/distribution-run-tool.js +986 -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/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/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/resting-surface-plan.d.ts +3 -0
- package/dist/shared/resting-surface-plan.d.ts.map +1 -0
- package/dist/shared/resting-surface-plan.js +28 -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/definition.d.ts.map +1 -1
- package/dist/shelf/definition.js +2 -1
- 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/geometry.d.ts.map +1 -1
- package/dist/shelf/geometry.js +2 -10
- 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 +6 -6
- 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 +2 -2
- package/dist/solar-panel/parametrics.js +2 -2
- package/dist/spawn/panel.js +1 -1
- package/dist/stair/panel.d.ts.map +1 -1
- package/dist/stair/panel.js +23 -16
- 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 +45 -6
- 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/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/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 +8 -6
- 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/definition.d.ts.map +1 -1
- package/dist/zone/definition.js +7 -1
- package/dist/zone/floorplan-affordances.d.ts +12 -12
- 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 +33 -29
- package/dist/zone/renderer.d.ts.map +1 -1
- package/dist/zone/renderer.js +20 -6
- 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 +16 -8
- 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
package/dist/cabinet/panel.js
CHANGED
|
@@ -1,18 +1,24 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { jsx as _jsx,
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
3
|
import { createSceneApi, useScene } from '@pascal-app/core';
|
|
4
4
|
import { ActionButton, PanelSection, PanelWrapper, SegmentedControl, SliderControl, } from '@pascal-app/editor';
|
|
5
5
|
import { useViewer } from '@pascal-app/viewer';
|
|
6
|
-
import { Pause, Play, Plus } from 'lucide-react';
|
|
6
|
+
import { AlertTriangle, Pause, Play, Plus } from 'lucide-react';
|
|
7
7
|
import { useCallback, useEffect, useState } from 'react';
|
|
8
8
|
import { useShallow } from 'zustand/react/shallow';
|
|
9
9
|
import { CompartmentCard } from './compartment-card';
|
|
10
10
|
import { animateCabinetOperationState, isCabinetAnimationRunning, onCabinetAnimationChange, stopCabinetAnimation, } from './interaction';
|
|
11
|
+
import { cabinetModulePanelContext } from './panel-context';
|
|
12
|
+
import { cabinetModuleSupportsPresets, cabinetModuleSupportsTopFinish, cabinetModuleUsesFixedApplianceWidth, } from './panel-visibility';
|
|
11
13
|
import { CABINET_PRESETS } from './presets';
|
|
12
|
-
import {
|
|
14
|
+
import { CABINET_REVEAL_GAPS, cabinetRevealGapById, cabinetRevealGapId, } from './reveals';
|
|
15
|
+
import { addWallChildAbove, applyCabinetModuleFrontPatch, backAlignZ, cabinetCeilingGap, cabinetModuleCeilingOverflow, cabinetModulesForRun, resolveCabinetType, runModuleBaseY, switchCabinetToBase, switchCabinetToTall, syncCornerRunsFromSourceModule, syncCornerStyleGroupFromRun, wallChildOf, } from './run-ops';
|
|
13
16
|
import { bumpRunLayoutRevisionViaStore, CabinetRunPanel, reflowRunModules, } from './run-panel';
|
|
14
|
-
import { backAnchoredModuleZ, isHoodCompartmentType, minCabinetCarcassHeightForStack, newCabinetCompartment, normalizeCabinetStack, resizeCabinetCompartmentStack, stackForCabinet, } from './stack';
|
|
17
|
+
import { backAnchoredModuleZ, clampCabinetCarcassHeightForStack, isFridgeCompartmentType, isHoodCompartmentType, minCabinetCarcassHeightForStack, newCabinetCompartment, normalizeCabinetStack, removeCabinetCompartmentStack, resizeCabinetCompartmentStack, stackForCabinet, } from './stack';
|
|
15
18
|
import { resolveCompartmentTransition } from './stack-transitions';
|
|
19
|
+
import { validateCabinetRun } from './validation';
|
|
20
|
+
import { CABINET_WALL_HEIGHT_PRESETS, cabinetWallHeightPresetById, cabinetWallHeightPresetId, } from './wall-height-presets';
|
|
21
|
+
import { CABINET_STANDARD_WIDTHS, cabinetStandardWidthById, cabinetStandardWidthId, } from './widths';
|
|
16
22
|
const HANDLE_STYLE_OPTIONS = [
|
|
17
23
|
{ value: 'bar', label: 'Bar' },
|
|
18
24
|
{ value: 'knob', label: 'Knob' },
|
|
@@ -38,31 +44,38 @@ const CABINET_TIER_OPTIONS = [
|
|
|
38
44
|
{ value: 'base', label: 'Base Cabinet' },
|
|
39
45
|
{ value: 'tall', label: 'Tall Cabinet' },
|
|
40
46
|
];
|
|
47
|
+
const TOP_FINISH_OPTIONS = [
|
|
48
|
+
{ value: 'none', label: 'None' },
|
|
49
|
+
{ value: 'top-cabinet', label: 'Top Cabinet' },
|
|
50
|
+
{ value: 'trim', label: 'Trim / Soffit' },
|
|
51
|
+
];
|
|
41
52
|
const EMPTY_MODULES = [];
|
|
42
53
|
const EMPTY_MODULE_IDS = [];
|
|
43
54
|
const PRESET_BUTTON_CLASS = 'flex h-9 items-center justify-center rounded-md border border-border/40 bg-[#252527] px-3 py-2 text-center text-xs font-medium text-foreground transition-colors hover:border-border/70 hover:bg-[#303033]';
|
|
55
|
+
const REFLOW_REJECTED_MESSAGE = 'No space in this run. No base cabinet can shrink enough to fit this item.';
|
|
44
56
|
export default function CabinetPanel() {
|
|
45
57
|
const selectedId = useViewer((s) => s.selection.selectedIds[0]);
|
|
46
58
|
const setSelection = useViewer((s) => s.setSelection);
|
|
47
59
|
const [isAnimating, setIsAnimating] = useState(false);
|
|
60
|
+
const [reflowNotice, setReflowNotice] = useState(null);
|
|
48
61
|
const node = useScene((s) => selectedId ? s.nodes[selectedId] : undefined);
|
|
49
62
|
const parentRun = useScene((s) => {
|
|
50
63
|
if (!selectedId)
|
|
51
64
|
return undefined;
|
|
52
65
|
const selected = s.nodes[selectedId];
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
return parent?.type === 'cabinet' ? parent : undefined;
|
|
66
|
+
return selected?.type === 'cabinet-module'
|
|
67
|
+
? (cabinetModulePanelContext(selected, s.nodes)?.parentRun ?? undefined)
|
|
68
|
+
: undefined;
|
|
57
69
|
});
|
|
58
70
|
const moduleIds = useScene((s) => {
|
|
59
71
|
if (!selectedId)
|
|
60
72
|
return EMPTY_MODULE_IDS;
|
|
61
73
|
const selected = s.nodes[selectedId];
|
|
74
|
+
const panelContext = selected?.type === 'cabinet-module' ? cabinetModulePanelContext(selected, s.nodes) : null;
|
|
62
75
|
const parent = selected?.type === 'cabinet'
|
|
63
76
|
? selected
|
|
64
|
-
:
|
|
65
|
-
?
|
|
77
|
+
: panelContext?.reflowModule
|
|
78
|
+
? panelContext.parentRun
|
|
66
79
|
: undefined;
|
|
67
80
|
if (parent?.type !== 'cabinet')
|
|
68
81
|
return EMPTY_MODULE_IDS;
|
|
@@ -90,28 +103,86 @@ export default function CabinetPanel() {
|
|
|
90
103
|
selected.parentId != null &&
|
|
91
104
|
s.nodes[selected.parentId]?.type === 'cabinet-module');
|
|
92
105
|
});
|
|
106
|
+
const showReflowRejected = useCallback(() => {
|
|
107
|
+
setReflowNotice({ message: REFLOW_REJECTED_MESSAGE });
|
|
108
|
+
}, []);
|
|
109
|
+
useEffect(() => {
|
|
110
|
+
if (selectedId)
|
|
111
|
+
setReflowNotice(null);
|
|
112
|
+
}, [selectedId]);
|
|
113
|
+
useEffect(() => {
|
|
114
|
+
if (!reflowNotice)
|
|
115
|
+
return;
|
|
116
|
+
const timeout = window.setTimeout(() => setReflowNotice(null), 4000);
|
|
117
|
+
return () => window.clearTimeout(timeout);
|
|
118
|
+
}, [reflowNotice]);
|
|
93
119
|
const updateNode = useCallback((patch) => {
|
|
94
120
|
if (!selectedId)
|
|
95
121
|
return;
|
|
96
122
|
const scene = useScene.getState();
|
|
97
123
|
const liveBeforeUpdate = scene.nodes[selectedId];
|
|
98
124
|
const nextPatch = { ...patch };
|
|
125
|
+
const panelContext = liveBeforeUpdate?.type === 'cabinet-module'
|
|
126
|
+
? cabinetModulePanelContext(liveBeforeUpdate, scene.nodes)
|
|
127
|
+
: null;
|
|
99
128
|
if (liveBeforeUpdate?.type === 'cabinet-module' &&
|
|
100
129
|
typeof nextPatch.carcassHeight === 'number') {
|
|
101
|
-
nextPatch.carcassHeight =
|
|
130
|
+
nextPatch.carcassHeight = clampCabinetCarcassHeightForStack(liveBeforeUpdate, nextPatch.carcassHeight, nextPatch.stack);
|
|
131
|
+
}
|
|
132
|
+
if (liveBeforeUpdate?.type === 'cabinet-module') {
|
|
133
|
+
const frontPatch = {};
|
|
134
|
+
if ('frontStyle' in nextPatch)
|
|
135
|
+
frontPatch.frontStyle = nextPatch.frontStyle;
|
|
136
|
+
if ('frontOverlay' in nextPatch)
|
|
137
|
+
frontPatch.frontOverlay = nextPatch.frontOverlay;
|
|
138
|
+
if ('handleStyle' in nextPatch)
|
|
139
|
+
frontPatch.handleStyle = nextPatch.handleStyle;
|
|
140
|
+
if ('handlePosition' in nextPatch)
|
|
141
|
+
frontPatch.handlePosition = nextPatch.handlePosition;
|
|
142
|
+
if (Object.keys(frontPatch).length > 0) {
|
|
143
|
+
applyCabinetModuleFrontPatch({
|
|
144
|
+
module: liveBeforeUpdate,
|
|
145
|
+
patch: frontPatch,
|
|
146
|
+
sceneApi: createSceneApi(useScene),
|
|
147
|
+
});
|
|
148
|
+
}
|
|
102
149
|
}
|
|
103
150
|
if (liveBeforeUpdate?.type === 'cabinet-module' &&
|
|
104
151
|
liveBeforeUpdate.parentId &&
|
|
105
152
|
parentRun?.type === 'cabinet' &&
|
|
153
|
+
typeof nextPatch.frontGap === 'number') {
|
|
154
|
+
const frontGap = nextPatch.frontGap;
|
|
155
|
+
scene.updateNode(parentRun.id, { frontGap });
|
|
156
|
+
for (const module of modules) {
|
|
157
|
+
scene.updateNode(module.id, { frontGap });
|
|
158
|
+
const wallChild = wallChildOf(module, scene.nodes);
|
|
159
|
+
if (wallChild)
|
|
160
|
+
scene.updateNode(wallChild.id, { frontGap });
|
|
161
|
+
}
|
|
162
|
+
bumpRunLayoutRevisionViaStore(scene, parentRun);
|
|
163
|
+
syncCornerStyleGroupFromRun({
|
|
164
|
+
run: parentRun,
|
|
165
|
+
patch: { frontGap },
|
|
166
|
+
sceneApi: createSceneApi(useScene),
|
|
167
|
+
});
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
if (liveBeforeUpdate?.type === 'cabinet-module' &&
|
|
171
|
+
liveBeforeUpdate.parentId &&
|
|
172
|
+
panelContext?.reflowModule &&
|
|
106
173
|
'width' in nextPatch &&
|
|
107
174
|
typeof nextPatch.width === 'number') {
|
|
108
|
-
reflowRunModules({
|
|
175
|
+
const applied = reflowRunModules({
|
|
109
176
|
modules,
|
|
110
|
-
parentRun,
|
|
177
|
+
parentRun: panelContext.parentRun,
|
|
111
178
|
patch: nextPatch,
|
|
112
179
|
scene,
|
|
113
|
-
selected:
|
|
180
|
+
selected: panelContext.reflowModule,
|
|
114
181
|
});
|
|
182
|
+
if (applied)
|
|
183
|
+
setReflowNotice(null);
|
|
184
|
+
else
|
|
185
|
+
showReflowRejected();
|
|
115
186
|
return;
|
|
116
187
|
}
|
|
117
188
|
if (liveBeforeUpdate?.type === 'cabinet-module' &&
|
|
@@ -141,6 +212,7 @@ export default function CabinetPanel() {
|
|
|
141
212
|
if (liveNode?.type === 'cabinet-module') {
|
|
142
213
|
syncCornerRunsFromSourceModule({
|
|
143
214
|
module: liveNode,
|
|
215
|
+
previousModule: liveBeforeUpdate?.type === 'cabinet-module' ? liveBeforeUpdate : undefined,
|
|
144
216
|
run: parent,
|
|
145
217
|
sceneApi: createSceneApi(useScene),
|
|
146
218
|
});
|
|
@@ -161,7 +233,7 @@ export default function CabinetPanel() {
|
|
|
161
233
|
scene.markDirty(liveNode.id);
|
|
162
234
|
}
|
|
163
235
|
}
|
|
164
|
-
}, [modules, parentRun, selectedId]);
|
|
236
|
+
}, [modules, parentRun, selectedId, showReflowRejected]);
|
|
165
237
|
const close = useCallback(() => {
|
|
166
238
|
setSelection({ selectedIds: [] });
|
|
167
239
|
}, [setSelection]);
|
|
@@ -193,26 +265,84 @@ export default function CabinetPanel() {
|
|
|
193
265
|
if (!node || (node.type !== 'cabinet' && node.type !== 'cabinet-module'))
|
|
194
266
|
return null;
|
|
195
267
|
const stack = stackForCabinet(node);
|
|
268
|
+
const planningRun = node.type === 'cabinet' ? node : parentRun;
|
|
269
|
+
const planningReports = planningRun
|
|
270
|
+
? (() => {
|
|
271
|
+
const reports = [];
|
|
272
|
+
const pending = [planningRun];
|
|
273
|
+
const seen = new Set();
|
|
274
|
+
while (pending.length > 0) {
|
|
275
|
+
const run = pending.pop();
|
|
276
|
+
if (seen.has(run.id))
|
|
277
|
+
continue;
|
|
278
|
+
seen.add(run.id);
|
|
279
|
+
reports.push(validateCabinetRun(run, cabinetModulesForRun(run, useScene.getState().nodes), {
|
|
280
|
+
nodes: useScene.getState().nodes,
|
|
281
|
+
}));
|
|
282
|
+
for (const childId of run.children ?? []) {
|
|
283
|
+
const child = useScene.getState().nodes[childId];
|
|
284
|
+
if (child?.type === 'cabinet')
|
|
285
|
+
pending.push(child);
|
|
286
|
+
if (child?.type === 'cabinet-module') {
|
|
287
|
+
for (const nestedId of child.children ?? []) {
|
|
288
|
+
const nested = useScene.getState().nodes[nestedId];
|
|
289
|
+
if (nested?.type === 'cabinet')
|
|
290
|
+
pending.push(nested);
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
return reports;
|
|
296
|
+
})()
|
|
297
|
+
: [];
|
|
298
|
+
const planningReport = planningReports.length
|
|
299
|
+
? {
|
|
300
|
+
valid: planningReports.every((report) => report.valid),
|
|
301
|
+
errors: planningReports.flatMap((report) => report.errors),
|
|
302
|
+
warnings: planningReports.flatMap((report) => report.warnings),
|
|
303
|
+
}
|
|
304
|
+
: null;
|
|
196
305
|
const isHoodOnlyNode = stack.length > 0 && stack.every((compartment) => isHoodCompartmentType(compartment.type));
|
|
306
|
+
const isFridgeModule = node.type === 'cabinet-module' &&
|
|
307
|
+
stack.some((compartment) => isFridgeCompartmentType(compartment.type));
|
|
308
|
+
const ceilingOverflow = node.type === 'cabinet-module'
|
|
309
|
+
? cabinetModuleCeilingOverflow(node, useScene.getState().nodes)
|
|
310
|
+
: 0;
|
|
197
311
|
const normalized = normalizeCabinetStack(node);
|
|
198
312
|
const rowHeights = new Map(normalized.map((row) => [row.index, row.height]));
|
|
199
313
|
const rows = stack.map((compartment, index) => ({ compartment, index })).reverse();
|
|
314
|
+
const removeWallChildForTallPatch = (patch, scene, target = node) => {
|
|
315
|
+
if (target.type !== 'cabinet-module' || patch.cabinetType !== 'tall')
|
|
316
|
+
return;
|
|
317
|
+
const child = wallChildOf(target, scene.nodes);
|
|
318
|
+
if (child)
|
|
319
|
+
scene.deleteNode(child.id);
|
|
320
|
+
};
|
|
200
321
|
const commitStack = (next, extraPatch = {}) => {
|
|
201
322
|
const patch = { ...extraPatch, stack: next };
|
|
202
323
|
const minCarcassHeight = minCabinetCarcassHeightForStack({ ...node, stack: next });
|
|
203
324
|
const targetCarcassHeight = patch.carcassHeight ?? node.carcassHeight;
|
|
204
325
|
if (targetCarcassHeight < minCarcassHeight)
|
|
205
326
|
patch.carcassHeight = minCarcassHeight;
|
|
206
|
-
|
|
207
|
-
|
|
327
|
+
const scene = useScene.getState();
|
|
328
|
+
const panelContext = node.type === 'cabinet-module' ? cabinetModulePanelContext(node, scene.nodes) : null;
|
|
329
|
+
if (node.type === 'cabinet-module' && panelContext?.reflowModule && patch.width) {
|
|
330
|
+
const applied = reflowRunModules({
|
|
208
331
|
modules,
|
|
209
|
-
parentRun,
|
|
332
|
+
parentRun: panelContext.parentRun,
|
|
210
333
|
patch,
|
|
211
|
-
scene
|
|
212
|
-
selected:
|
|
334
|
+
scene,
|
|
335
|
+
selected: panelContext.reflowModule,
|
|
213
336
|
});
|
|
337
|
+
if (!applied) {
|
|
338
|
+
showReflowRejected();
|
|
339
|
+
return;
|
|
340
|
+
}
|
|
341
|
+
setReflowNotice(null);
|
|
342
|
+
removeWallChildForTallPatch(patch, scene, panelContext.reflowModule);
|
|
214
343
|
return;
|
|
215
344
|
}
|
|
345
|
+
removeWallChildForTallPatch(patch, scene);
|
|
216
346
|
updateNode(patch);
|
|
217
347
|
};
|
|
218
348
|
const replaceAt = (index, next) => {
|
|
@@ -220,7 +350,10 @@ export default function CabinetPanel() {
|
|
|
220
350
|
commitStack(transition.stack, transition.modulePatch);
|
|
221
351
|
};
|
|
222
352
|
const resizeAt = (index, height) => commitStack(resizeCabinetCompartmentStack(node, index, height));
|
|
223
|
-
const removeAt = (index) =>
|
|
353
|
+
const removeAt = (index) => {
|
|
354
|
+
const result = removeCabinetCompartmentStack(node, index);
|
|
355
|
+
commitStack(result.stack, result.carcassHeight == null ? {} : result);
|
|
356
|
+
};
|
|
224
357
|
const addCompartment = () => commitStack([...stack, newCabinetCompartment('shelf')]);
|
|
225
358
|
const moveCompartment = (index, delta) => {
|
|
226
359
|
const target = index + delta;
|
|
@@ -269,47 +402,77 @@ export default function CabinetPanel() {
|
|
|
269
402
|
};
|
|
270
403
|
const hasWallCabinet = node?.type === 'cabinet-module' ? Boolean(wallChild) : false;
|
|
271
404
|
const isWallChildModule = node?.type === 'cabinet-module' && parentIsModule;
|
|
405
|
+
const isWallCabinetModule = node?.type === 'cabinet-module' && (isWallChildModule || parentRun?.runTier === 'wall');
|
|
406
|
+
const wallHeightPreset = isWallCabinetModule ? cabinetWallHeightPresetId(node) : 'custom';
|
|
407
|
+
const applyWallHeightPreset = (presetId) => {
|
|
408
|
+
if (!isWallCabinetModule)
|
|
409
|
+
return;
|
|
410
|
+
updateNode({ carcassHeight: cabinetWallHeightPresetById(presetId).value });
|
|
411
|
+
};
|
|
412
|
+
const canAddTopFinish = node.type === 'cabinet-module' &&
|
|
413
|
+
!isHoodOnlyNode &&
|
|
414
|
+
cabinetModuleSupportsTopFinish({
|
|
415
|
+
module: node,
|
|
416
|
+
parentIsModule,
|
|
417
|
+
parentRun,
|
|
418
|
+
});
|
|
272
419
|
const applyPreset = (presetId) => {
|
|
273
|
-
if (node?.type !== 'cabinet-module')
|
|
420
|
+
if (node?.type !== 'cabinet-module' || !cabinetModuleSupportsPresets(node))
|
|
274
421
|
return;
|
|
275
422
|
const scene = useScene.getState();
|
|
276
423
|
const preset = CABINET_PRESETS.find((entry) => entry.id === presetId);
|
|
277
424
|
if (!preset)
|
|
278
425
|
return;
|
|
279
426
|
const patch = preset.createPatch(parentRun);
|
|
280
|
-
const
|
|
281
|
-
|
|
282
|
-
scene.deleteNode(wallChild.id);
|
|
283
|
-
}
|
|
427
|
+
const panelContext = cabinetModulePanelContext(node, scene.nodes);
|
|
428
|
+
const reflowModule = panelContext?.reflowModule;
|
|
284
429
|
const nextPatch = {
|
|
285
430
|
...patch,
|
|
286
431
|
position: [
|
|
287
432
|
node.position[0],
|
|
288
|
-
|
|
433
|
+
reflowModule ? runModuleBaseY(panelContext.parentRun) : node.position[1],
|
|
289
434
|
typeof patch.depth === 'number'
|
|
290
435
|
? backAnchoredModuleZ(node.position[2], node.depth, patch.depth)
|
|
291
436
|
: node.position[2],
|
|
292
437
|
],
|
|
293
438
|
};
|
|
294
|
-
if (
|
|
295
|
-
reflowRunModules({
|
|
439
|
+
if (reflowModule) {
|
|
440
|
+
const applied = reflowRunModules({
|
|
296
441
|
modules,
|
|
297
|
-
parentRun,
|
|
442
|
+
parentRun: panelContext.parentRun,
|
|
298
443
|
patch: nextPatch,
|
|
299
|
-
preserveExtent: true,
|
|
300
444
|
scene,
|
|
301
|
-
selected:
|
|
445
|
+
selected: reflowModule,
|
|
302
446
|
});
|
|
447
|
+
if (!applied) {
|
|
448
|
+
showReflowRejected();
|
|
449
|
+
return;
|
|
450
|
+
}
|
|
451
|
+
setReflowNotice(null);
|
|
452
|
+
removeWallChildForTallPatch(patch, scene, reflowModule);
|
|
303
453
|
}
|
|
304
454
|
else {
|
|
305
|
-
|
|
455
|
+
removeWallChildForTallPatch(patch, scene);
|
|
456
|
+
updateNode(nextPatch);
|
|
306
457
|
}
|
|
307
458
|
setSelection({ selectedIds: [node.id] });
|
|
308
459
|
};
|
|
460
|
+
const standardWidth = node.type === 'cabinet-module' ? cabinetStandardWidthId(node.width) : 'custom';
|
|
461
|
+
const usesFixedApplianceWidth = node.type === 'cabinet-module' && cabinetModuleUsesFixedApplianceWidth(node);
|
|
309
462
|
if (node.type === 'cabinet' && modules.length > 0) {
|
|
310
463
|
return _jsx(CabinetRunPanel, { modules: modules, node: node, onClose: close });
|
|
311
464
|
}
|
|
312
|
-
return (_jsxs(PanelWrapper, { icon: "/icons/item.webp", onBack: node.type === 'cabinet-module' ? backToRun : undefined, onClose: close, title: node.name || 'Modular Cabinet', width: 320, children: [node.type === 'cabinet-module' &&
|
|
465
|
+
return (_jsxs(PanelWrapper, { icon: "/icons/item.webp", onBack: node.type === 'cabinet-module' ? backToRun : undefined, onClose: close, title: node.name || 'Modular Cabinet', width: 320, children: [node.type === 'cabinet-module' &&
|
|
466
|
+
parentRun?.type === 'cabinet' &&
|
|
467
|
+
cabinetModuleSupportsPresets(node) && (_jsx(PanelSection, { title: "Presets", children: _jsx("div", { className: "grid grid-cols-2 gap-2 px-1 pb-2", children: CABINET_PRESETS.map((preset) => (_jsx("button", { className: PRESET_BUTTON_CLASS, onClick: () => applyPreset(preset.id), type: "button", children: _jsx("span", { className: "truncate", children: preset.label }) }, preset.id))) }) })), _jsxs(PanelSection, { title: "Dimensions", children: [node.type === 'cabinet-module' && !isHoodOnlyNode && (_jsxs("div", { className: "space-y-1 px-1 pb-2", children: [_jsx("div", { className: "px-1 pb-1 text-[10px] uppercase tracking-wide text-muted-foreground", children: "Standard width" }), _jsx(SegmentedControl, { disabled: usesFixedApplianceWidth, mixed: standardWidth === 'custom', onChange: (value) => updateNode({
|
|
468
|
+
width: cabinetStandardWidthById(value).value,
|
|
469
|
+
}), options: CABINET_STANDARD_WIDTHS.map((option) => ({
|
|
470
|
+
label: option.label,
|
|
471
|
+
value: option.id,
|
|
472
|
+
})), value: standardWidth === 'custom' ? '600' : standardWidth })] })), isWallCabinetModule && !isHoodOnlyNode && (_jsxs("div", { className: "space-y-1 px-1 pb-2", 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) => ({
|
|
473
|
+
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 })] })),
|
|
474
|
+
value: preset.id,
|
|
475
|
+
})), 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: "Width", max: 3, min: 0.3, onChange: (value) => updateNode({ width: value }), precision: 2, step: 0.05, unit: "m", value: node.width }), !isHoodOnlyNode && (_jsxs(_Fragment, { children: [_jsx(SliderControl, { label: "Depth", max: 1.2, min: 0.3, onChange: (value) => updateNode({ depth: value }), precision: 2, step: 0.01, unit: "m", value: node.depth }), _jsx(SliderControl, { label: "Carcass height", max: node.type === 'cabinet-module' && resolveCabinetType(node, parentRun) === 'tall'
|
|
313
476
|
? 2.4
|
|
314
477
|
: 1.4, min: node.type === 'cabinet-module'
|
|
315
478
|
? Math.max(0.4, minCabinetCarcassHeightForStack(node))
|
|
@@ -323,7 +486,18 @@ export default function CabinetPanel() {
|
|
|
323
486
|
value: option.value,
|
|
324
487
|
label: option.label,
|
|
325
488
|
})), value: resolveCabinetType(node, parentRun) }), resolveCabinetType(node, parentRun) === 'base' &&
|
|
326
|
-
(hasWallCabinet ? (_jsx(ActionButton, { label: "Remove wall cabinet", onClick: removeWallCabinet })) : (_jsxs(_Fragment, { children: [_jsx(ActionButton, { label: "Add wall cabinet", onClick: addWallCabinetAbove }), _jsx(ActionButton, { label: "Add chimney", onClick: addHoodAbove })] })))] }) })),
|
|
489
|
+
(hasWallCabinet ? (_jsx(ActionButton, { label: "Remove wall cabinet", onClick: removeWallCabinet })) : (_jsxs(_Fragment, { children: [_jsx(ActionButton, { label: "Add wall cabinet", onClick: addWallCabinetAbove }), _jsx(ActionButton, { label: "Add chimney", onClick: addHoodAbove })] })))] }) })), canAddTopFinish && (_jsx(PanelSection, { title: "Top / Ceiling", 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: "Finish" }), _jsx(SegmentedControl, { onChange: (value) => updateNode({
|
|
490
|
+
topFinish: value,
|
|
491
|
+
...(value !== 'none' && node.topFinish === 'none'
|
|
492
|
+
? { topFinishDepth: node.depth }
|
|
493
|
+
: {}),
|
|
494
|
+
}), options: TOP_FINISH_OPTIONS.map((option) => ({
|
|
495
|
+
label: option.label,
|
|
496
|
+
value: option.value,
|
|
497
|
+
})), value: node.topFinish ?? 'none' })] }), node.topFinish !== 'none' && (_jsxs(_Fragment, { children: [_jsx(ActionButton, { label: "Fill to ceiling", onClick: () => updateNode({
|
|
498
|
+
topFinishHeight: cabinetCeilingGap(node, useScene.getState().nodes),
|
|
499
|
+
}) }), _jsx(SliderControl, { label: "Top height", max: 1.2, min: 0, onChange: (value) => updateNode({ topFinishHeight: value }), precision: 2, step: 0.01, unit: "m", value: node.topFinishHeight }), _jsx(SliderControl, { label: "Top depth", max: 1.2, min: 0.15, onChange: (value) => updateNode({ topFinishDepth: value }), precision: 2, step: 0.01, unit: "m", value: node.topFinishDepth })] })), ceilingOverflow > 1e-4 && (_jsxs("div", { className: "flex gap-1.5 px-1 text-xs leading-5 text-red-300", children: [_jsx(AlertTriangle, { className: "mt-1 h-3.5 w-3.5 shrink-0" }), _jsxs("span", { children: ["Finished height extends ", (ceilingOverflow * 1000).toFixed(0), " mm above the ceiling."] })] }))] }) })), planningReport &&
|
|
500
|
+
(planningReport.errors.length > 0 || planningReport.warnings.length > 0) && (_jsx(PanelSection, { title: "Planning checks", children: _jsxs("div", { className: "space-y-1 px-1 pb-2 text-xs leading-5", children: [planningReport.errors.map((planningIssue) => (_jsxs("div", { className: "flex gap-1.5 text-red-300", children: [_jsx(AlertTriangle, { className: "mt-1 h-3.5 w-3.5 shrink-0" }), _jsx("span", { children: planningIssue.message })] }, `${planningIssue.severity}-${planningIssue.code}-${planningIssue.nodeIds.join('-')}`))), planningReport.warnings.map((planningIssue) => (_jsxs("div", { className: `flex gap-1.5 ${planningIssue.code === 'ceiling-overflow' ? 'text-red-300' : 'text-amber-300'}`, children: [_jsx(AlertTriangle, { className: "mt-1 h-3.5 w-3.5 shrink-0" }), _jsx("span", { children: planningIssue.message })] }, `${planningIssue.severity}-${planningIssue.code}-${planningIssue.nodeIds.join('-')}`)))] }) })), !isHoodOnlyNode && (_jsx(PanelSection, { title: "Open Animation", children: _jsxs("div", { className: "flex items-center gap-2 px-1", children: [_jsx("div", { className: "min-w-0 flex-1", children: _jsx(SliderControl, { label: "Open", max: 100, min: 0, onChange: (value) => {
|
|
327
501
|
if (isAnimating)
|
|
328
502
|
stopAnimation();
|
|
329
503
|
updateNode({ operationState: value / 100 });
|
|
@@ -341,13 +515,23 @@ export default function CabinetPanel() {
|
|
|
341
515
|
? 'Stop animation'
|
|
342
516
|
: (node.operationState ?? 0) >= 0.99
|
|
343
517
|
? 'Close cabinet'
|
|
344
|
-
: 'Play animation', type: "button", children: [isAnimating ? _jsx(Pause, { className: "h-4 w-4" }) : _jsx(Play, { className: "h-4 w-4" }), _jsx("span", { children: isAnimating ? 'Stop' : (node.operationState ?? 0) >= 0.99 ? 'Close' : 'Play' })] })] }) })), _jsxs(PanelSection, { title: "Compartments", children: [_jsx("div", { className: "flex flex-col gap-2 px-1 pb-2", children: rows.map(({ compartment, index }, displayIndex) => (_jsx(CompartmentCard, { allowHood: isWallChildModule, wallCabinet: isWallChildModule, compartment: compartment, carcassHeight: node.carcassHeight, displayIndex: displayIndex, index: index, onMove: (delta) => moveCompartment(index, delta), onRemove: () => removeAt(index), onReplace: (next) => replaceAt(index, next), onResizeHeight: (height) => resizeAt(index, height), resolvedHeight: rowHeights.get(index) ?? node.carcassHeight / Math.max(stack.length, 1), total: rows.length, width: node.width }, compartment.id))) }), _jsx("div", { className: "px-1 pb-1", children: _jsx(ActionButton, { icon: _jsx(Plus, { className: "h-4 w-4" }), label: "Add compartment", onClick: addCompartment }) })] }), !isHoodOnlyNode && (_jsxs(_Fragment, { children: [_jsx(PanelSection, { title: "
|
|
518
|
+
: 'Play animation', type: "button", children: [isAnimating ? _jsx(Pause, { className: "h-4 w-4" }) : _jsx(Play, { className: "h-4 w-4" }), _jsx("span", { children: isAnimating ? 'Stop' : (node.operationState ?? 0) >= 0.99 ? 'Close' : 'Play' })] })] }) })), _jsxs(PanelSection, { title: "Compartments", children: [reflowNotice ? (_jsx("p", { "aria-live": "polite", className: "px-1 pb-2 text-xs leading-5 text-amber-400", role: "status", children: reflowNotice.message })) : null, _jsx("div", { className: "flex flex-col gap-2 px-1 pb-2", children: rows.map(({ compartment, index }, displayIndex) => (_jsx(CompartmentCard, { allowHood: isWallChildModule, wallCabinet: isWallChildModule, compartment: compartment, carcassHeight: node.carcassHeight, displayIndex: displayIndex, index: index, onMove: (delta) => moveCompartment(index, delta), onRemove: () => removeAt(index), onReplace: (next) => replaceAt(index, next), onResizeHeight: (height) => resizeAt(index, height), resolvedHeight: rowHeights.get(index) ?? node.carcassHeight / Math.max(stack.length, 1), total: rows.length, width: node.width }, compartment.id))) }), _jsx("div", { className: "px-1 pb-1", children: _jsx(ActionButton, { icon: _jsx(Plus, { className: "h-4 w-4" }), label: "Add compartment", onClick: addCompartment }) })] }), !isHoodOnlyNode && (_jsxs(_Fragment, { children: [isFridgeModule && (_jsx(PanelSection, { title: "Appliance front", 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: "Panel-ready" }), _jsx(SegmentedControl, { onChange: (value) => updateNode({ panelReady: value === 'on' }), options: [
|
|
519
|
+
{ value: 'off', label: 'Appliance' },
|
|
520
|
+
{ value: 'on', label: 'Cabinet panel' },
|
|
521
|
+
], value: node.panelReady ? 'on' : 'off' })] }), node.panelReady && (_jsx("p", { className: "px-1 text-xs leading-5 text-muted-foreground", children: "Uses the cabinet front style, reveal, handle, and front material settings below." }))] }) })), _jsx(PanelSection, { title: "Fronts", 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) => updateNode({ frontStyle: value }), options: FRONT_STYLE_OPTIONS.map((option) => ({
|
|
345
522
|
value: option.value,
|
|
346
523
|
label: option.label,
|
|
347
524
|
})), 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) => updateNode({ frontOverlay: value }), options: FRONT_OVERLAY_OPTIONS.map((option) => ({
|
|
348
525
|
value: option.value,
|
|
349
526
|
label: option.label,
|
|
350
|
-
})), value: node.frontOverlay ?? 'full' })] })
|
|
527
|
+
})), 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) => updateNode({
|
|
528
|
+
frontGap: cabinetRevealGapById(value).value,
|
|
529
|
+
}), options: CABINET_REVEAL_GAPS.map((gap) => ({
|
|
530
|
+
value: gap.id,
|
|
531
|
+
label: gap.label,
|
|
532
|
+
})), value: cabinetRevealGapId(node.frontGap) === 'custom'
|
|
533
|
+
? '3'
|
|
534
|
+
: 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) => updateNode({ handleStyle: value }), options: HANDLE_STYLE_OPTIONS.map((option) => ({
|
|
351
535
|
value: option.value,
|
|
352
536
|
label: option.label,
|
|
353
537
|
})), 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) => updateNode({ handlePosition: value }), options: HANDLE_POSITION_OPTIONS.map((option) => ({
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { AnyNode, AnyNodeId } from '@pascal-app/core';
|
|
2
|
+
export type CabinetPlacementDimension = {
|
|
3
|
+
id: string;
|
|
4
|
+
start: [number, number, number];
|
|
5
|
+
end: [number, number, number];
|
|
6
|
+
offsetNormal: [number, number];
|
|
7
|
+
offsetDistance: number;
|
|
8
|
+
value: number;
|
|
9
|
+
renderIn3d?: boolean;
|
|
10
|
+
renderInFloorplan?: boolean;
|
|
11
|
+
};
|
|
12
|
+
export declare function buildCabinetPlacementSizeDimensions({ depth, height, position, rotation, width, }: {
|
|
13
|
+
depth: number;
|
|
14
|
+
height: number;
|
|
15
|
+
position: readonly [number, number, number];
|
|
16
|
+
rotation: number;
|
|
17
|
+
width: number;
|
|
18
|
+
}): CabinetPlacementDimension[];
|
|
19
|
+
export declare function resolveCabinetPlacementDimensions({ depth, levelId, nodes, position, rotation, wallId, width, }: {
|
|
20
|
+
depth: number;
|
|
21
|
+
levelId: AnyNodeId;
|
|
22
|
+
nodes: Readonly<Record<AnyNodeId, AnyNode>>;
|
|
23
|
+
position: readonly [number, number, number];
|
|
24
|
+
rotation: number;
|
|
25
|
+
wallId?: AnyNodeId;
|
|
26
|
+
width: number;
|
|
27
|
+
}): CabinetPlacementDimension[];
|
|
28
|
+
export declare function resolveCabinetPlacementDimensionPosition({ depth, dimensionId, levelId, nodes, position, rotation, wallId, width, value, }: {
|
|
29
|
+
depth: number;
|
|
30
|
+
dimensionId: string;
|
|
31
|
+
levelId: AnyNodeId;
|
|
32
|
+
nodes: Readonly<Record<AnyNodeId, AnyNode>>;
|
|
33
|
+
position: readonly [number, number, number];
|
|
34
|
+
rotation: number;
|
|
35
|
+
wallId?: AnyNodeId;
|
|
36
|
+
width: number;
|
|
37
|
+
value: number;
|
|
38
|
+
}): {
|
|
39
|
+
position: [number, number, number];
|
|
40
|
+
wallLocalX: number;
|
|
41
|
+
} | null;
|
|
42
|
+
//# sourceMappingURL=placement-dimensions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"placement-dimensions.d.ts","sourceRoot":"","sources":["../../src/cabinet/placement-dimensions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAY1D,MAAM,MAAM,yBAAyB,GAAG;IACtC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9B,cAAc,EAAE,MAAM,CAAA;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B,CAAA;AAED,wBAAgB,mCAAmC,CAAC,EAClD,KAAK,EACL,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,KAAK,GACN,EAAE;IACD,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAC3C,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;CACd,GAAG,yBAAyB,EAAE,CAmC9B;AAmED,wBAAgB,iCAAiC,CAAC,EAChD,KAAK,EACL,OAAO,EACP,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,KAAK,GACN,EAAE;IACD,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,SAAS,CAAA;IAClB,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAA;IAC3C,QAAQ,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAC3C,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd,GAAG,yBAAyB,EAAE,CAkF9B;AAED,wBAAgB,wCAAwC,CAAC,EACvD,KAAK,EACL,WAAW,EACX,OAAO,EACP,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,KAAK,EACL,KAAK,GACN,EAAE;IACD,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,SAAS,CAAA;IAClB,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAA;IAC3C,QAAQ,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAC3C,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd,GAAG;IAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAyEpE"}
|