@pascal-app/nodes 1.0.6 → 1.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/beam/actions/move-endpoint.d.ts +24 -0
- package/dist/beam/actions/move-endpoint.d.ts.map +1 -0
- package/dist/beam/actions/move-endpoint.js +54 -0
- package/dist/beam/definition.d.ts +14 -0
- package/dist/beam/definition.d.ts.map +1 -0
- package/dist/beam/definition.js +173 -0
- package/dist/beam/draft-settings.d.ts +17 -0
- package/dist/beam/draft-settings.d.ts.map +1 -0
- package/dist/beam/draft-settings.js +81 -0
- package/dist/beam/drafting.d.ts +35 -0
- package/dist/beam/drafting.d.ts.map +1 -0
- package/dist/beam/drafting.js +103 -0
- package/dist/beam/floorplan-affordances.d.ts +8 -0
- package/dist/beam/floorplan-affordances.d.ts.map +1 -0
- package/dist/beam/floorplan-affordances.js +40 -0
- package/dist/beam/floorplan-move.d.ts +11 -0
- package/dist/beam/floorplan-move.d.ts.map +1 -0
- package/dist/beam/floorplan-move.js +54 -0
- package/dist/beam/floorplan.d.ts +11 -0
- package/dist/beam/floorplan.d.ts.map +1 -0
- package/dist/beam/floorplan.js +91 -0
- package/dist/beam/geometry.d.ts +19 -0
- package/dist/beam/geometry.d.ts.map +1 -0
- package/dist/beam/geometry.js +63 -0
- package/dist/beam/index.d.ts +3 -0
- package/dist/beam/index.d.ts.map +1 -0
- package/dist/beam/index.js +2 -0
- package/dist/beam/move-endpoint-tool.d.ts +21 -0
- package/dist/beam/move-endpoint-tool.d.ts.map +1 -0
- package/dist/beam/move-endpoint-tool.js +49 -0
- package/dist/beam/move-tool.d.ts +12 -0
- package/dist/beam/move-tool.d.ts.map +1 -0
- package/dist/beam/move-tool.js +114 -0
- package/dist/beam/panel-model.d.ts +28 -0
- package/dist/beam/panel-model.d.ts.map +1 -0
- package/dist/beam/panel-model.js +123 -0
- package/dist/beam/panel.d.ts +13 -0
- package/dist/beam/panel.d.ts.map +1 -0
- package/dist/beam/panel.js +107 -0
- package/dist/beam/parametrics.d.ts +3 -0
- package/dist/beam/parametrics.d.ts.map +1 -0
- package/dist/beam/parametrics.js +4 -0
- package/dist/beam/renderer.d.ts +13 -0
- package/dist/beam/renderer.d.ts.map +1 -0
- package/dist/beam/renderer.js +36 -0
- package/dist/beam/schema.d.ts +2 -0
- package/dist/beam/schema.d.ts.map +1 -0
- package/dist/beam/schema.js +1 -0
- package/dist/beam/tool.d.ts +13 -0
- package/dist/beam/tool.d.ts.map +1 -0
- package/dist/beam/tool.js +152 -0
- package/dist/box-vent/panel.d.ts.map +1 -1
- package/dist/box-vent/panel.js +8 -7
- package/dist/cabinet/batchable.d.ts +10 -0
- package/dist/cabinet/batchable.d.ts.map +1 -0
- package/dist/cabinet/batchable.js +12 -0
- package/dist/cabinet/compartment-card.d.ts.map +1 -1
- package/dist/cabinet/compartment-card.js +142 -46
- package/dist/cabinet/countertop-layout.d.ts +5 -0
- package/dist/cabinet/countertop-layout.d.ts.map +1 -1
- package/dist/cabinet/definition.d.ts.map +1 -1
- package/dist/cabinet/definition.js +3 -0
- package/dist/cabinet/dimension-input.d.ts +6 -0
- package/dist/cabinet/dimension-input.d.ts.map +1 -0
- package/dist/cabinet/dimension-input.js +8 -0
- package/dist/cabinet/essential-controls.d.ts.map +1 -1
- package/dist/cabinet/essential-controls.js +82 -17
- package/dist/cabinet/index.d.ts +1 -1
- package/dist/cabinet/index.d.ts.map +1 -1
- package/dist/cabinet/index.js +1 -1
- package/dist/cabinet/kitchen-catalog.d.ts +17 -4
- package/dist/cabinet/kitchen-catalog.d.ts.map +1 -1
- package/dist/cabinet/kitchen-catalog.js +45 -7
- package/dist/cabinet/kitchen-collection.d.ts.map +1 -1
- package/dist/cabinet/kitchen-collection.js +21 -5
- package/dist/cabinet/kitchen-module-actions.d.ts.map +1 -1
- package/dist/cabinet/kitchen-module-actions.js +107 -14
- package/dist/cabinet/neighbor-placement.d.ts +10 -0
- package/dist/cabinet/neighbor-placement.d.ts.map +1 -1
- package/dist/cabinet/panel.d.ts.map +1 -1
- package/dist/cabinet/panel.js +127 -50
- package/dist/cabinet/run-finishing.d.ts +5 -0
- package/dist/cabinet/run-finishing.d.ts.map +1 -1
- package/dist/cabinet/run-ops.d.ts +5 -0
- package/dist/cabinet/run-ops.d.ts.map +1 -1
- package/dist/cabinet/run-panel.d.ts.map +1 -1
- package/dist/cabinet/run-panel.js +203 -52
- package/dist/cabinet/tool.d.ts.map +1 -1
- package/dist/cabinet/tool.js +8 -5
- package/dist/ceiling/build-up-section.d.ts +7 -0
- package/dist/ceiling/build-up-section.d.ts.map +1 -0
- package/dist/ceiling/build-up-section.js +57 -0
- package/dist/ceiling/definition.d.ts.map +1 -1
- package/dist/ceiling/definition.js +3 -1
- package/dist/ceiling/floorplan-affordances.d.ts +112 -0
- package/dist/ceiling/floorplan-affordances.d.ts.map +1 -1
- package/dist/ceiling/materials.d.ts +5 -0
- package/dist/ceiling/materials.d.ts.map +1 -1
- package/dist/ceiling/materials.js +17 -0
- package/dist/ceiling/panel-model.d.ts +13 -0
- package/dist/ceiling/panel-model.d.ts.map +1 -0
- package/dist/ceiling/panel-model.js +49 -0
- package/dist/ceiling/panel.d.ts.map +1 -1
- package/dist/ceiling/panel.js +82 -18
- package/dist/ceiling/renderer.d.ts.map +1 -1
- package/dist/ceiling/renderer.js +10 -4
- package/dist/ceiling/tool.d.ts.map +1 -1
- package/dist/ceiling/tool.js +24 -4
- package/dist/chimney/panel.d.ts.map +1 -1
- package/dist/chimney/panel.js +113 -41
- package/dist/column/definition.d.ts.map +1 -1
- package/dist/column/definition.js +3 -0
- package/dist/column/floorplan.d.ts.map +1 -1
- package/dist/column/floorplan.js +17 -0
- package/dist/column/hosted-resize.d.ts +28 -1
- package/dist/column/hosted-resize.d.ts.map +1 -1
- package/dist/column/panel.d.ts.map +1 -1
- package/dist/column/panel.js +125 -37
- package/dist/column/post-options.d.ts +10 -0
- package/dist/column/post-options.d.ts.map +1 -0
- package/dist/column/post-options.js +71 -0
- package/dist/column/post-placement.d.ts +78 -0
- package/dist/column/post-placement.d.ts.map +1 -0
- package/dist/column/post-placement.js +157 -0
- package/dist/column/post-section.d.ts +17 -0
- package/dist/column/post-section.d.ts.map +1 -0
- package/dist/column/post-section.js +95 -0
- package/dist/column/post-tool.d.ts +11 -0
- package/dist/column/post-tool.d.ts.map +1 -0
- package/dist/column/post-tool.js +94 -0
- package/dist/column/tool.d.ts +3 -10
- package/dist/column/tool.d.ts.map +1 -1
- package/dist/column/tool.js +13 -1
- package/dist/cupola/panel.d.ts.map +1 -1
- package/dist/cupola/panel.js +14 -7
- package/dist/door/actions.d.ts +7 -0
- package/dist/door/actions.d.ts.map +1 -0
- package/dist/door/actions.js +32 -0
- package/dist/door/contextual-dimensions.d.ts.map +1 -1
- package/dist/door/contextual-dimensions.js +11 -1
- package/dist/door/definition.d.ts.map +1 -1
- package/dist/door/definition.js +34 -7
- package/dist/door/floorplan-affordances.d.ts.map +1 -1
- package/dist/door/floorplan-affordances.js +5 -2
- package/dist/door/floorplan-move.d.ts.map +1 -1
- package/dist/door/floorplan-move.js +28 -6
- package/dist/door/floorplan.d.ts +2 -0
- package/dist/door/floorplan.d.ts.map +1 -1
- package/dist/door/floorplan.js +89 -16
- package/dist/door/move-tool.d.ts.map +1 -1
- package/dist/door/move-tool.js +60 -16
- package/dist/door/paint.d.ts +2 -7
- package/dist/door/paint.d.ts.map +1 -1
- package/dist/door/paint.js +26 -2
- package/dist/door/panel.d.ts.map +1 -1
- package/dist/door/panel.js +242 -90
- package/dist/door/parametrics.js +1 -1
- package/dist/door/placement.d.ts.map +1 -1
- package/dist/door/placement.js +9 -2
- package/dist/door/swing.d.ts +22 -0
- package/dist/door/swing.d.ts.map +1 -0
- package/dist/door/swing.js +36 -0
- package/dist/door/tool.d.ts.map +1 -1
- package/dist/door/tool.js +76 -29
- package/dist/dormer/panel-actions-section.d.ts.map +1 -1
- package/dist/dormer/panel-actions-section.js +3 -1
- package/dist/dormer/panel-position-section.d.ts.map +1 -1
- package/dist/dormer/panel-position-section.js +4 -3
- package/dist/dormer/panel-windows-section.d.ts.map +1 -1
- package/dist/dormer/panel-windows-section.js +38 -1
- package/dist/dormer/panel.d.ts.map +1 -1
- package/dist/dormer/panel.js +24 -18
- package/dist/downspout/inspector-editors.d.ts.map +1 -1
- package/dist/downspout/inspector-editors.js +3 -2
- package/dist/duct-fitting/inspector-editors.d.ts.map +1 -1
- package/dist/duct-fitting/inspector-editors.js +6 -1
- package/dist/duct-fitting/tool.d.ts.map +1 -1
- package/dist/duct-fitting/tool.js +11 -2
- package/dist/duct-terminal/tool.d.ts.map +1 -1
- package/dist/duct-terminal/tool.js +11 -2
- package/dist/elevator/panel.d.ts.map +1 -1
- package/dist/elevator/panel.js +41 -18
- package/dist/eyebrow-vent/panel.d.ts.map +1 -1
- package/dist/eyebrow-vent/panel.js +16 -6
- package/dist/fence/drafting.d.ts +2 -3
- package/dist/fence/drafting.d.ts.map +1 -1
- package/dist/fence/drafting.js +2 -3
- package/dist/fence/inspector-editors.d.ts.map +1 -1
- package/dist/fence/inspector-editors.js +64 -21
- package/dist/fence/move-endpoint-tool.d.ts.map +1 -1
- package/dist/fence/move-endpoint-tool.js +11 -2
- package/dist/fence/system.d.ts.map +1 -1
- package/dist/fence/system.js +13 -0
- package/dist/fence-feature/actions.d.ts.map +1 -1
- package/dist/fence-feature/actions.js +5 -2
- package/dist/fence-feature/inspector.d.ts.map +1 -1
- package/dist/fence-feature/inspector.js +150 -34
- package/dist/fence-feature/move-session.d.ts +1 -1
- package/dist/floor-opening/floorplan.d.ts +29 -6
- package/dist/floor-opening/floorplan.d.ts.map +1 -1
- package/dist/floor-opening/floorplan.js +172 -14
- package/dist/gutter/downspouts-panel.d.ts.map +1 -1
- package/dist/gutter/downspouts-panel.js +14 -2
- package/dist/hvac-equipment/tool.d.ts.map +1 -1
- package/dist/hvac-equipment/tool.js +3 -2
- package/dist/i18n/definition-messages.d.ts +5 -0
- package/dist/i18n/definition-messages.d.ts.map +1 -0
- package/dist/i18n/definition-messages.js +771 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/item/authored-params.d.ts.map +1 -1
- package/dist/item/authored-params.js +19 -4
- package/dist/item/floorplan.d.ts +1 -1
- package/dist/item/floorplan.d.ts.map +1 -1
- package/dist/item/panel.d.ts.map +1 -1
- package/dist/item/panel.js +9 -7
- package/dist/liquid-line/tool.d.ts.map +1 -1
- package/dist/liquid-line/tool.js +10 -3
- package/dist/measurement/tool.d.ts +1 -1
- package/dist/measurement/tool.d.ts.map +1 -1
- package/dist/measurement/tool.js +8 -8
- package/dist/pipe-fitting/tool.d.ts.map +1 -1
- package/dist/pipe-fitting/tool.js +3 -2
- package/dist/pipe-trap/tool.d.ts.map +1 -1
- package/dist/pipe-trap/tool.js +7 -2
- package/dist/procedural-item/renderer.d.ts.map +1 -1
- package/dist/procedural-item/renderer.js +8 -1
- package/dist/ridge-vent/panel.d.ts.map +1 -1
- package/dist/ridge-vent/panel.js +22 -9
- package/dist/roof/barrel-panel.d.ts.map +1 -1
- package/dist/roof/barrel-panel.js +7 -3
- package/dist/roof/definition.d.ts.map +1 -1
- package/dist/roof/definition.js +33 -3
- package/dist/roof/floorplan-overrides.d.ts +22 -0
- package/dist/roof/floorplan-overrides.d.ts.map +1 -0
- package/dist/roof/floorplan-overrides.js +46 -0
- package/dist/roof/floorplan-tool.d.ts +9 -0
- package/dist/roof/floorplan-tool.d.ts.map +1 -0
- package/dist/roof/floorplan-tool.js +168 -0
- package/dist/roof/floorplan.d.ts.map +1 -1
- package/dist/roof/floorplan.js +131 -41
- package/dist/roof/glazing-controls.d.ts +2 -1
- package/dist/roof/glazing-controls.d.ts.map +1 -1
- package/dist/roof/glazing-controls.js +51 -13
- package/dist/roof/glazing-panel-editor.d.ts.map +1 -1
- package/dist/roof/glazing-panel-editor.js +40 -13
- package/dist/roof/glazing-panel.d.ts.map +1 -1
- package/dist/roof/glazing-panel.js +73 -9
- package/dist/roof/paint.d.ts +19 -0
- package/dist/roof/paint.d.ts.map +1 -0
- package/dist/roof/paint.js +158 -0
- package/dist/roof/panel.d.ts.map +1 -1
- package/dist/roof/panel.js +90 -22
- package/dist/roof/renderer.d.ts.map +1 -1
- package/dist/roof/renderer.js +13 -2
- package/dist/roof/roof-footprint-source.d.ts +17 -0
- package/dist/roof/roof-footprint-source.d.ts.map +1 -1
- package/dist/roof/roof-footprint-source.js +14 -0
- package/dist/roof/roof-footprint.d.ts +36 -2
- package/dist/roof/roof-footprint.d.ts.map +1 -1
- package/dist/roof/roof-footprint.js +124 -2
- package/dist/roof/roof-materials.d.ts.map +1 -1
- package/dist/roof/roof-materials.js +10 -1
- package/dist/roof/roof-placement-mode.d.ts +0 -2
- package/dist/roof/roof-placement-mode.d.ts.map +1 -1
- package/dist/roof/roof-placement-mode.js +8 -6
- package/dist/roof/roof-plan-creases.d.ts +50 -0
- package/dist/roof/roof-plan-creases.d.ts.map +1 -0
- package/dist/roof/roof-plan-creases.js +194 -0
- package/dist/roof/roof-ridge-mode.d.ts +20 -0
- package/dist/roof/roof-ridge-mode.d.ts.map +1 -0
- package/dist/roof/roof-ridge-mode.js +16 -0
- package/dist/roof/tool.d.ts +17 -4
- package/dist/roof/tool.d.ts.map +1 -1
- package/dist/roof/tool.js +211 -113
- package/dist/roof/wall-catch.d.ts +106 -0
- package/dist/roof/wall-catch.d.ts.map +1 -0
- package/dist/roof/wall-catch.js +267 -0
- package/dist/roof-segment/build-up-section.d.ts +9 -0
- package/dist/roof-segment/build-up-section.d.ts.map +1 -0
- package/dist/roof-segment/build-up-section.js +191 -0
- package/dist/roof-segment/definition.d.ts.map +1 -1
- package/dist/roof-segment/definition.js +50 -5
- package/dist/roof-segment/floorplan-affordances.d.ts.map +1 -1
- package/dist/roof-segment/floorplan-affordances.js +68 -19
- package/dist/roof-segment/floorplan.d.ts.map +1 -1
- package/dist/roof-segment/floorplan.js +16 -12
- package/dist/roof-segment/paint.d.ts +3 -1
- package/dist/roof-segment/paint.d.ts.map +1 -1
- package/dist/roof-segment/paint.js +43 -2
- package/dist/roof-segment/panel-model.d.ts +23 -0
- package/dist/roof-segment/panel-model.d.ts.map +1 -0
- package/dist/roof-segment/panel-model.js +64 -0
- package/dist/roof-segment/panel.d.ts.map +1 -1
- package/dist/roof-segment/panel.js +96 -14
- package/dist/roof-segment/parametrics.d.ts.map +1 -1
- package/dist/roof-segment/parametrics.js +4 -0
- package/dist/roof-segment/renderer.d.ts.map +1 -1
- package/dist/roof-segment/renderer.js +26 -5
- package/dist/separator/definition.d.ts.map +1 -1
- package/dist/separator/definition.js +10 -12
- package/dist/separator/floorplan-affordances.d.ts +9 -0
- package/dist/separator/floorplan-affordances.d.ts.map +1 -0
- package/dist/separator/floorplan-affordances.js +23 -0
- package/dist/separator/floorplan.d.ts +9 -0
- package/dist/separator/floorplan.d.ts.map +1 -0
- package/dist/separator/floorplan.js +54 -0
- package/dist/separator/renderer.d.ts +4 -0
- package/dist/separator/renderer.d.ts.map +1 -1
- package/dist/separator/renderer.js +21 -6
- package/dist/separator/selection.d.ts +10 -0
- package/dist/separator/selection.d.ts.map +1 -0
- package/dist/separator/selection.js +35 -0
- package/dist/shared/build-up-controls.d.ts +88 -0
- package/dist/shared/build-up-controls.d.ts.map +1 -0
- package/dist/shared/build-up-controls.js +139 -0
- package/dist/shared/curtain-opening-limits.d.ts.map +1 -1
- package/dist/shared/curtain-opening-limits.js +44 -14
- package/dist/shared/item-interaction-actions.d.ts.map +1 -1
- package/dist/shared/item-interaction-actions.js +11 -2
- package/dist/shared/layer-thickness.d.ts +2 -0
- package/dist/shared/layer-thickness.d.ts.map +1 -0
- package/dist/shared/layer-thickness.js +3 -0
- package/dist/shared/move-roof-tool.d.ts.map +1 -1
- package/dist/shared/move-roof-tool.js +100 -5
- package/dist/shared/node-batch/batchable.d.ts +2 -0
- package/dist/shared/node-batch/batchable.d.ts.map +1 -1
- package/dist/shared/node-batch/batchable.js +4 -0
- package/dist/shared/node-batch/candidates.d.ts +21 -5
- package/dist/shared/node-batch/candidates.d.ts.map +1 -1
- package/dist/shared/node-batch/candidates.js +85 -50
- package/dist/shared/node-batch/system.d.ts.map +1 -1
- package/dist/shared/node-batch/system.js +24 -15
- package/dist/shared/opening-casing-move.d.ts +16 -0
- package/dist/shared/opening-casing-move.d.ts.map +1 -0
- package/dist/shared/opening-casing-move.js +33 -0
- package/dist/shared/opening-casing-section.d.ts +15 -0
- package/dist/shared/opening-casing-section.d.ts.map +1 -0
- package/dist/shared/opening-casing-section.js +38 -0
- package/dist/shared/opening-casing.d.ts +26 -0
- package/dist/shared/opening-casing.d.ts.map +1 -0
- package/dist/shared/opening-casing.js +80 -0
- package/dist/shared/opening-depth-position.d.ts +13 -0
- package/dist/shared/opening-depth-position.d.ts.map +1 -0
- package/dist/shared/opening-depth-position.js +34 -0
- package/dist/shared/opening-documentation.d.ts.map +1 -1
- package/dist/shared/opening-documentation.js +17 -8
- package/dist/shared/opening-guides-runtime.d.ts +2 -1
- package/dist/shared/opening-guides-runtime.d.ts.map +1 -1
- package/dist/shared/opening-guides-runtime.js +11 -7
- package/dist/shared/opening-labels.d.ts +11 -0
- package/dist/shared/opening-labels.d.ts.map +1 -0
- package/dist/shared/opening-labels.js +46 -0
- package/dist/shared/opening-placement-dimensions.d.ts.map +1 -1
- package/dist/shared/opening-placement-dimensions.js +11 -9
- package/dist/shared/opening-plane-offset.d.ts +4 -3
- package/dist/shared/opening-plane-offset.d.ts.map +1 -1
- package/dist/shared/opening-plane-offset.js +7 -4
- package/dist/shared/opening-swap.d.ts +8 -0
- package/dist/shared/opening-swap.d.ts.map +1 -0
- package/dist/shared/opening-swap.js +18 -0
- package/dist/shared/polygon-vertex-affordance.d.ts +19 -0
- package/dist/shared/polygon-vertex-affordance.d.ts.map +1 -1
- package/dist/shared/polygon-vertex-affordance.js +65 -6
- package/dist/shared/roof-opening-host.d.ts +2 -1
- package/dist/shared/roof-opening-host.d.ts.map +1 -1
- package/dist/shared/roof-opening-host.js +14 -5
- package/dist/shared/roof-wall-opening-cut.d.ts.map +1 -1
- package/dist/shared/roof-wall-opening-cut.js +14 -6
- package/dist/shared/roof-wall-opening-placement.d.ts +2 -1
- package/dist/shared/roof-wall-opening-placement.d.ts.map +1 -1
- package/dist/shared/roof-wall-opening-placement.js +6 -4
- package/dist/shared/run-hanger-inspector.d.ts.map +1 -1
- package/dist/shared/run-hanger-inspector.js +39 -5
- package/dist/shared/system-check-panel.d.ts.map +1 -1
- package/dist/shared/system-check-panel.js +94 -15
- package/dist/shared/wall-attach-target.d.ts.map +1 -1
- package/dist/shared/wall-attach-target.js +6 -3
- package/dist/shelf/definition.d.ts.map +1 -1
- package/dist/shelf/definition.js +2 -0
- package/dist/site/ground-hole.d.ts +3 -3
- package/dist/site/ground-hole.js +3 -3
- package/dist/site/ground-veil.d.ts +5 -12
- package/dist/site/ground-veil.d.ts.map +1 -1
- package/dist/site/ground-veil.js +9 -33
- package/dist/site/panel.d.ts.map +1 -1
- package/dist/site/panel.js +52 -12
- package/dist/site/renderer.d.ts.map +1 -1
- package/dist/site/renderer.js +52 -23
- package/dist/skylight/panel.d.ts.map +1 -1
- package/dist/skylight/panel.js +49 -19
- package/dist/slab/deck-geometry.d.ts +28 -0
- package/dist/slab/deck-geometry.d.ts.map +1 -0
- package/dist/slab/deck-geometry.js +320 -0
- package/dist/slab/definition.d.ts +2 -1
- package/dist/slab/definition.d.ts.map +1 -1
- package/dist/slab/definition.js +6 -1
- package/dist/slab/dependency-tracker.d.ts.map +1 -1
- package/dist/slab/dependency-tracker.js +3 -0
- package/dist/slab/floorplan-affordances.d.ts +500 -0
- package/dist/slab/floorplan-affordances.d.ts.map +1 -1
- package/dist/slab/geometry.d.ts.map +1 -1
- package/dist/slab/geometry.js +46 -9
- package/dist/slab/panel.d.ts.map +1 -1
- package/dist/slab/panel.js +97 -21
- package/dist/slab/renderer.d.ts +11 -0
- package/dist/slab/renderer.d.ts.map +1 -0
- package/dist/slab/renderer.js +19 -0
- package/dist/slab/system.d.ts.map +1 -1
- package/dist/slab/system.js +12 -1
- package/dist/solar-panel/panel.d.ts.map +1 -1
- package/dist/solar-panel/panel.js +49 -14
- package/dist/stair/construction-controls.d.ts +3 -1
- package/dist/stair/construction-controls.d.ts.map +1 -1
- package/dist/stair/construction-controls.js +75 -12
- package/dist/stair/paint.d.ts +6 -0
- package/dist/stair/paint.d.ts.map +1 -1
- package/dist/stair/panel.d.ts.map +1 -1
- package/dist/stair/panel.js +243 -51
- package/dist/stair/parametrics.d.ts.map +1 -1
- package/dist/stair/parametrics.js +7 -0
- package/dist/stair/placement-defaults.d.ts +18 -0
- package/dist/stair/placement-defaults.d.ts.map +1 -0
- package/dist/stair/placement-defaults.js +27 -0
- package/dist/stair/railing-controls.d.ts.map +1 -1
- package/dist/stair/railing-controls.js +78 -18
- package/dist/stair/renderer.d.ts.map +1 -1
- package/dist/stair/renderer.js +16 -10
- package/dist/stair/structure-controls.d.ts +18 -0
- package/dist/stair/structure-controls.d.ts.map +1 -0
- package/dist/stair/structure-controls.js +275 -0
- package/dist/stair/tool.d.ts.map +1 -1
- package/dist/stair/tool.js +13 -9
- package/dist/stair/use-stair-render-data.d.ts +41 -0
- package/dist/stair/use-stair-render-data.d.ts.map +1 -1
- package/dist/stair-segment/panel.d.ts.map +1 -1
- package/dist/stair-segment/panel.js +65 -18
- package/dist/turbine-vent/panel.d.ts.map +1 -1
- package/dist/turbine-vent/panel.js +14 -5
- package/dist/unit/unit-panel.d.ts.map +1 -1
- package/dist/unit/unit-panel.js +28 -12
- package/dist/wall/actions.d.ts +1 -1
- package/dist/wall/actions.d.ts.map +1 -1
- package/dist/wall/actions.js +17 -13
- package/dist/wall/construction-dimensions.d.ts +6 -0
- package/dist/wall/construction-dimensions.d.ts.map +1 -1
- package/dist/wall/construction-dimensions.js +8 -0
- package/dist/wall/contextual-dimensions.d.ts +6 -0
- package/dist/wall/contextual-dimensions.d.ts.map +1 -1
- package/dist/wall/contextual-dimensions.js +104 -17
- package/dist/wall/curtain-opening-frame.d.ts.map +1 -1
- package/dist/wall/curtain-opening-frame.js +6 -4
- package/dist/wall/curtain-wall-layout.d.ts +1 -1
- package/dist/wall/curtain-wall-layout.d.ts.map +1 -1
- package/dist/wall/curtain-wall-layout.js +6 -4
- package/dist/wall/curtain-wall-materials.d.ts.map +1 -1
- package/dist/wall/curtain-wall-materials.js +8 -3
- package/dist/wall/curtain-wall-panel.d.ts.map +1 -1
- package/dist/wall/curtain-wall-panel.js +241 -37
- package/dist/wall/curve-tool.d.ts.map +1 -1
- package/dist/wall/curve-tool.js +2 -3
- package/dist/wall/definition.d.ts.map +1 -1
- package/dist/wall/definition.js +20 -5
- package/dist/wall/floorplan-affordances.d.ts.map +1 -1
- package/dist/wall/floorplan-affordances.js +9 -6
- package/dist/wall/floorplan-move.d.ts.map +1 -1
- package/dist/wall/floorplan-move.js +66 -16
- package/dist/wall/floorplan.d.ts +4 -5
- package/dist/wall/floorplan.d.ts.map +1 -1
- package/dist/wall/floorplan.js +62 -46
- package/dist/wall/move-endpoint-tool.d.ts.map +1 -1
- package/dist/wall/move-endpoint-tool.js +1 -0
- package/dist/wall/move-tool.d.ts.map +1 -1
- package/dist/wall/move-tool.js +77 -12
- package/dist/wall/paint.d.ts +2 -2
- package/dist/wall/paint.d.ts.map +1 -1
- package/dist/wall/paint.js +11 -4
- package/dist/wall/panel-model.d.ts +17 -2
- package/dist/wall/panel-model.d.ts.map +1 -1
- package/dist/wall/panel-model.js +158 -18
- package/dist/wall/panel.d.ts +8 -0
- package/dist/wall/panel.d.ts.map +1 -1
- package/dist/wall/panel.js +228 -156
- package/dist/wall/parametrics.d.ts +1 -1
- package/dist/wall/parametrics.d.ts.map +1 -1
- package/dist/wall/parametrics.js +14 -1
- package/dist/wall/railing-wall-adapter.d.ts +7 -0
- package/dist/wall/railing-wall-adapter.d.ts.map +1 -0
- package/dist/wall/railing-wall-adapter.js +38 -0
- package/dist/wall/railing-wall-floorplan.d.ts +8 -0
- package/dist/wall/railing-wall-floorplan.d.ts.map +1 -0
- package/dist/wall/railing-wall-floorplan.js +27 -0
- package/dist/wall/railing-wall-geometry.d.ts +12 -0
- package/dist/wall/railing-wall-geometry.d.ts.map +1 -0
- package/dist/wall/railing-wall-geometry.js +51 -0
- package/dist/wall/railing-wall-guard.d.ts +81 -0
- package/dist/wall/railing-wall-guard.d.ts.map +1 -0
- package/dist/wall/railing-wall-guard.js +435 -0
- package/dist/wall/railing-wall-materials.d.ts +11 -0
- package/dist/wall/railing-wall-materials.d.ts.map +1 -0
- package/dist/wall/railing-wall-materials.js +31 -0
- package/dist/wall/railing-wall-panel-model.d.ts +30 -0
- package/dist/wall/railing-wall-panel-model.d.ts.map +1 -0
- package/dist/wall/railing-wall-panel-model.js +117 -0
- package/dist/wall/railing-wall-panel.d.ts +17 -0
- package/dist/wall/railing-wall-panel.d.ts.map +1 -0
- package/dist/wall/railing-wall-panel.js +42 -0
- package/dist/wall/rectangle-command.d.ts +79 -1
- package/dist/wall/rectangle-command.d.ts.map +1 -1
- package/dist/wall/rectangle-tool.d.ts.map +1 -1
- package/dist/wall/rectangle-tool.js +2 -0
- package/dist/wall/renderer.d.ts.map +1 -1
- package/dist/wall/renderer.js +3 -1
- package/dist/wall/skirting-floor-gaps.d.ts +8 -0
- package/dist/wall/skirting-floor-gaps.d.ts.map +1 -0
- package/dist/wall/skirting-floor-gaps.js +36 -0
- package/dist/wall/system.d.ts +0 -14
- package/dist/wall/system.d.ts.map +1 -1
- package/dist/wall/system.js +6 -1
- package/dist/wall/tool.d.ts +16 -0
- package/dist/wall/tool.d.ts.map +1 -1
- package/dist/wall/tool.js +160 -47
- package/dist/wall/treatments.d.ts +3 -0
- package/dist/wall/treatments.d.ts.map +1 -1
- package/dist/wall/treatments.js +30 -7
- package/dist/window/actions.d.ts +7 -0
- package/dist/window/actions.d.ts.map +1 -0
- package/dist/window/actions.js +29 -0
- package/dist/window/definition.d.ts.map +1 -1
- package/dist/window/definition.js +11 -2
- package/dist/window/floorplan-move.d.ts.map +1 -1
- package/dist/window/floorplan-move.js +5 -0
- package/dist/window/floorplan.d.ts +2 -0
- package/dist/window/floorplan.d.ts.map +1 -1
- package/dist/window/floorplan.js +58 -1
- package/dist/window/mechanism.d.ts.map +1 -1
- package/dist/window/mechanism.js +21 -1
- package/dist/window/move-tool.d.ts.map +1 -1
- package/dist/window/move-tool.js +10 -3
- package/dist/window/paint.d.ts +2 -7
- package/dist/window/paint.d.ts.map +1 -1
- package/dist/window/paint.js +31 -3
- package/dist/window/panel.d.ts.map +1 -1
- package/dist/window/panel.js +311 -69
- package/dist/window/placement.d.ts.map +1 -1
- package/dist/window/placement.js +5 -1
- package/dist/window/swing.d.ts +13 -0
- package/dist/window/swing.d.ts.map +1 -0
- package/dist/window/swing.js +16 -0
- package/dist/window/tool.d.ts.map +1 -1
- package/dist/window/tool.js +19 -14
- package/dist/zone/floorplan-affordances.d.ts +136 -0
- package/dist/zone/floorplan-affordances.d.ts.map +1 -1
- package/dist/zone/quantities-panel.d.ts.map +1 -1
- package/dist/zone/quantities-panel.js +34 -9
- package/dist/zone/renderer.d.ts.map +1 -1
- package/dist/zone/renderer.js +9 -5
- package/package.json +14 -14
- package/dist/site/generic-foundation-geometry.d.ts +0 -16
- package/dist/site/generic-foundation-geometry.d.ts.map +0 -1
- package/dist/site/generic-foundation-geometry.js +0 -75
- package/dist/site/generic-foundation.d.ts +0 -4
- package/dist/site/generic-foundation.d.ts.map +0 -1
- package/dist/site/generic-foundation.js +0 -91
|
@@ -17,11 +17,38 @@ export const KITCHEN_ITEMS = CABINET_PRESETS.map((preset) => ({
|
|
|
17
17
|
'cooktop-induction': 'electric induction hob stove cooktop',
|
|
18
18
|
}[preset.id],
|
|
19
19
|
}));
|
|
20
|
-
|
|
20
|
+
/**
|
|
21
|
+
* Preset names in the UI language. The presets keep their English labels
|
|
22
|
+
* (agents and MCP read them); the kitchen picker and replace dialog show these.
|
|
23
|
+
*/
|
|
24
|
+
export const KITCHEN_ITEM_LABELS = {
|
|
25
|
+
'wall-cabinet': /* i18n */ { id: 'node.cabinet.preset.wallCabinet', message: 'Wall cabinet' },
|
|
26
|
+
'base-door': /* i18n */ { id: 'node.cabinet.preset.baseCabinet', message: 'Base cabinet' },
|
|
27
|
+
'drawer-base': /* i18n */ { id: 'node.cabinet.preset.drawerCabinet', message: 'Drawer cabinet' },
|
|
28
|
+
dishwasher: /* i18n */ { id: 'node.cabinet.preset.dishwasher', message: 'Dishwasher' },
|
|
29
|
+
'cooktop-gas': /* i18n */ { id: 'node.cabinet.preset.gasCooktop', message: 'Gas cooktop' },
|
|
30
|
+
'cooktop-induction': /* i18n */ {
|
|
31
|
+
id: 'node.cabinet.preset.inductionCooktop',
|
|
32
|
+
message: 'Induction cooktop',
|
|
33
|
+
},
|
|
34
|
+
'sink-base': /* i18n */ { id: 'node.cabinet.preset.sinkCabinet', message: 'Sink cabinet' },
|
|
35
|
+
'tall-pantry': /* i18n */ { id: 'node.cabinet.preset.tallPantry', message: 'Tall Pantry' },
|
|
36
|
+
'oven-tower': /* i18n */ { id: 'node.cabinet.preset.ovenTower', message: 'Oven Tower' },
|
|
37
|
+
'fridge-single': /* i18n */ { id: 'node.cabinet.preset.fridge', message: 'Fridge' },
|
|
38
|
+
};
|
|
39
|
+
export const KITCHEN_GROUP_TITLES = {
|
|
40
|
+
Cabinets: /* i18n */ { id: 'node.cabinet.kitchenGroup.cabinets', message: 'Cabinets' },
|
|
41
|
+
'Appliances & fixtures': /* i18n */ {
|
|
42
|
+
id: 'node.cabinet.kitchenGroup.appliances',
|
|
43
|
+
message: 'Appliances & fixtures',
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
/** `label` is the name the picker shows, when it is not the English one. */
|
|
47
|
+
export function kitchenItemMatches(id, query, label = '') {
|
|
21
48
|
const item = KITCHEN_ITEMS.find((entry) => entry.id === id);
|
|
22
49
|
if (!item)
|
|
23
50
|
return false;
|
|
24
|
-
const text = `${item.label} ${item.keywords} kitchen cabinet`.toLowerCase();
|
|
51
|
+
const text = `${item.label} ${label} ${item.keywords} kitchen cabinet`.toLowerCase();
|
|
25
52
|
return query
|
|
26
53
|
.trim()
|
|
27
54
|
.toLowerCase()
|
|
@@ -50,13 +77,24 @@ export function kitchenPresetForModule(node, run) {
|
|
|
50
77
|
return 'drawer-base';
|
|
51
78
|
return 'base-door';
|
|
52
79
|
}
|
|
53
|
-
/**
|
|
54
|
-
export function
|
|
80
|
+
/** A placed module's preset, reading its parent: an upper attached to a module is a wall cabinet. */
|
|
81
|
+
export function kitchenPresetForPlacedModule(nodes, node) {
|
|
82
|
+
const parent = node.parentId ? nodes[node.parentId] : undefined;
|
|
83
|
+
if (parent?.type === 'cabinet-module')
|
|
84
|
+
return 'wall-cabinet';
|
|
85
|
+
return kitchenPresetForModule(node, parent?.type === 'cabinet' ? parent : undefined);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* The kitchen's placed modules a query names; fillers are part of their run,
|
|
89
|
+
* not items. `labelFor` gives the name the UI shows for a preset, when it is
|
|
90
|
+
* not the English one.
|
|
91
|
+
*/
|
|
92
|
+
export function findKitchenItems(nodes, query, labelFor) {
|
|
55
93
|
return Object.values(nodes).filter((node) => {
|
|
56
94
|
if (node.type !== 'cabinet-module' || node.moduleKind !== 'standard')
|
|
57
95
|
return false;
|
|
58
|
-
const
|
|
59
|
-
|
|
60
|
-
|
|
96
|
+
const id = kitchenPresetForPlacedModule(nodes, node);
|
|
97
|
+
return (kitchenItemMatches(id, query, labelFor?.(id)) ||
|
|
98
|
+
(node.name ?? '').toLowerCase().includes(query.toLowerCase()));
|
|
61
99
|
});
|
|
62
100
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kitchen-collection.d.ts","sourceRoot":"","sources":["../../src/cabinet/kitchen-collection.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"kitchen-collection.d.ts","sourceRoot":"","sources":["../../src/cabinet/kitchen-collection.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAEhD,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,EAAE,EAAE;IAAE,EAAE,EAAE,eAAe,CAAA;CAAE,+BAc/D;AAED,wBAAgB,iBAAiB,CAAC,EAChC,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,WAAkB,GACnB,EAAE;IACD,QAAQ,EAAE,CAAC,EAAE,EAAE,eAAe,KAAK,IAAI,CAAA;IACvC,QAAQ,CAAC,EAAE,eAAe,GAAG,IAAI,CAAA;IACjC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB,+BA8EA"}
|
|
@@ -1,19 +1,35 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { usePascalI18n } from '@pascal-app/core';
|
|
3
4
|
import { BuildPanelSection, BuildToolGrid, BuildToolTile } from '@pascal-app/editor';
|
|
4
5
|
import { useId, useState } from 'react';
|
|
5
|
-
import { KITCHEN_ITEMS, kitchenItemMatches } from './kitchen-catalog.js';
|
|
6
|
+
import { KITCHEN_GROUP_TITLES, KITCHEN_ITEM_LABELS, KITCHEN_ITEMS, kitchenItemMatches, } from './kitchen-catalog.js';
|
|
6
7
|
import useCabinetPlacementStatus from './placement-status.js';
|
|
7
8
|
export function KitchenThumbnail({ id }) {
|
|
8
9
|
return (_jsx("img", { src: `/icons/kitchen/${id}.webp`, alt: "", "aria-hidden": "true", width: 256, height: 256, loading: "lazy", decoding: "async", draggable: false, className: "h-20 w-full object-contain" }));
|
|
9
10
|
}
|
|
10
11
|
export function KitchenCollection({ onSelect, activeId, query, includeWall = true, }) {
|
|
12
|
+
const i18n = usePascalI18n();
|
|
11
13
|
const [search, setSearch] = useState('');
|
|
12
14
|
const placementTarget = useCabinetPlacementStatus((state) => state.target);
|
|
13
15
|
const inputId = useId();
|
|
14
|
-
const items = KITCHEN_ITEMS.filter((item) => (includeWall || item.id !== 'wall-cabinet') &&
|
|
15
|
-
|
|
16
|
+
const items = KITCHEN_ITEMS.filter((item) => (includeWall || item.id !== 'wall-cabinet') &&
|
|
17
|
+
kitchenItemMatches(item.id, query ?? search, i18n._(KITCHEN_ITEM_LABELS[item.id])));
|
|
18
|
+
return (_jsxs("div", { className: "space-y-3", children: [placementTarget && (_jsx("p", { role: "status", className: "rounded-lg border border-border bg-muted/40 px-3 py-2 text-xs", children: placementTarget })), query === undefined && (_jsxs("div", { children: [_jsx("label", { htmlFor: inputId, className: "sr-only", children: i18n._({
|
|
19
|
+
id: 'node.cabinet.kitchenCollection.searchKitchenItems',
|
|
20
|
+
message: 'Search kitchen items',
|
|
21
|
+
}) }), _jsx("input", { id: inputId, type: "search", placeholder: i18n._({
|
|
22
|
+
id: 'node.cabinet.kitchenCollection.searchFridgeSinkCabinets',
|
|
23
|
+
message: 'Search fridge, sink, cabinets…',
|
|
24
|
+
}), value: search, onChange: (event) => setSearch(event.target.value), className: "h-9 w-full rounded-lg border border-border bg-background px-3 text-xs focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" })] })), ['Cabinets', 'Appliances & fixtures'].map((group) => {
|
|
16
25
|
const entries = items.filter((item) => item.group === group);
|
|
17
|
-
return (entries.length > 0 && (_jsx(BuildPanelSection, { id: `kitchen-${group === 'Cabinets' ? 'cabinets' : 'appliances'}`, title: group, children: _jsx(BuildToolGrid, { columns: 3, children: entries.map((item) => (_jsx(BuildToolTile, { "aria-label":
|
|
18
|
-
|
|
26
|
+
return (entries.length > 0 && (_jsx(BuildPanelSection, { id: `kitchen-${group === 'Cabinets' ? 'cabinets' : 'appliances'}`, title: i18n._(KITCHEN_GROUP_TITLES[group]), children: _jsx(BuildToolGrid, { columns: 3, children: entries.map((item) => (_jsx(BuildToolTile, { "aria-label": i18n._({
|
|
27
|
+
id: 'node.cabinet.kitchenCollection.chooseLabel',
|
|
28
|
+
message: 'Choose {label}',
|
|
29
|
+
values: { label: i18n._(KITCHEN_ITEM_LABELS[item.id]) },
|
|
30
|
+
}), active: activeId === item.id, tone: "neutral", iconSrc: `/icons/kitchen/${item.id}.webp`, label: i18n._(KITCHEN_ITEM_LABELS[item.id]), onClick: () => onSelect(item.id) }, item.id))) }) }, group)));
|
|
31
|
+
}), !items.length && (_jsx("p", { role: "status", className: "text-xs text-muted-foreground", children: i18n._({
|
|
32
|
+
id: 'node.cabinet.kitchenCollection.noKitchenItemsMatchTryFridge',
|
|
33
|
+
message: 'No kitchen items match. Try “fridge”, “sink”, or “cabinet”.',
|
|
34
|
+
}) }))] }));
|
|
19
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kitchen-module-actions.d.ts","sourceRoot":"","sources":["../../src/cabinet/kitchen-module-actions.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,iBAAiB,EACjB,KAAK,WAAW,
|
|
1
|
+
{"version":3,"file":"kitchen-module-actions.d.ts","sourceRoot":"","sources":["../../src/cabinet/kitchen-module-actions.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,iBAAiB,EACjB,KAAK,WAAW,EAKjB,MAAM,kBAAkB,CAAA;AAOzB,OAAO,EAAE,KAAK,eAAe,EAAqB,MAAM,WAAW,CAAA;AAYnE,wBAAgB,oBAAoB,CAAC,EACnC,IAAI,EACJ,GAAG,EACH,SAAS,GACV,EAAE;IACD,IAAI,EAAE,iBAAiB,CAAA;IACvB,GAAG,EAAE,WAAW,CAAA;IAChB,SAAS,EAAE,CAAC,EAAE,EAAE,eAAe,KAAK,IAAI,CAAA;CACzC,+BAyTA"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { CabinetModuleNode, createSceneApi, runAsSingleSceneHistoryStep, useScene, } from '@pascal-app/core';
|
|
3
|
+
import { CabinetModuleNode, createSceneApi, runAsSingleSceneHistoryStep, usePascalI18n, useScene, } from '@pascal-app/core';
|
|
4
4
|
import { ActionButton, formatLinearMeasurement } from '@pascal-app/editor';
|
|
5
5
|
import { useViewer } from '@pascal-app/viewer';
|
|
6
6
|
import { useState } from 'react';
|
|
7
7
|
import { applyCabinetModuleInsertion, cabinetModuleForRunInsertion } from './insertion.js';
|
|
8
|
+
import { KITCHEN_ITEM_LABELS } from './kitchen-catalog.js';
|
|
8
9
|
import { KitchenCollection } from './kitchen-collection.js';
|
|
9
10
|
import { cabinetPresetById } from './presets.js';
|
|
10
11
|
import { moduleMaxX, moduleMinX, planRunModuleInsertion, runWallConstraints } from './run-layout.js';
|
|
@@ -12,6 +13,7 @@ import { bumpCabinetRunLayoutRevision, cabinetModulesForRun, cornerPinnedEndsFor
|
|
|
12
13
|
import { planCabinetPresetReflow } from './run-panel.js';
|
|
13
14
|
import { backAnchoredModuleZ } from './stack.js';
|
|
14
15
|
export function KitchenModuleActions({ node, run, onReplace, }) {
|
|
16
|
+
const i18n = usePascalI18n();
|
|
15
17
|
const [action, setAction] = useState(null);
|
|
16
18
|
const [presetId, setPresetId] = useState(null);
|
|
17
19
|
const [error, setError] = useState(null);
|
|
@@ -21,6 +23,7 @@ export function KitchenModuleActions({ node, run, onReplace, }) {
|
|
|
21
23
|
const format = (value) => formatLinearMeasurement(value, unit, notation);
|
|
22
24
|
const modules = cabinetModulesForRun(run, nodes);
|
|
23
25
|
const preset = presetId ? cabinetPresetById(presetId) : null;
|
|
26
|
+
const presetLabel = presetId ? i18n._(KITCHEN_ITEM_LABELS[presetId]) : '';
|
|
24
27
|
const patch = preset?.createPatch(run);
|
|
25
28
|
const module = patch
|
|
26
29
|
? cabinetModuleForRunInsertion(CabinetModuleNode.parse({
|
|
@@ -80,7 +83,10 @@ export function KitchenModuleActions({ node, run, onReplace, }) {
|
|
|
80
83
|
else if (module && insertion?.ok) {
|
|
81
84
|
const id = applyCabinetModuleInsertion({ module, plan: insertion, run, sceneApi: api });
|
|
82
85
|
if (!id)
|
|
83
|
-
throw new Error(
|
|
86
|
+
throw new Error(i18n._({
|
|
87
|
+
id: 'node.cabinet.kitchenModuleActions.kitchenChanged',
|
|
88
|
+
message: 'The kitchen changed. Select an item again to refresh the preview.',
|
|
89
|
+
}));
|
|
84
90
|
syncCornerRunsFromRunSources({ run: api.get(run.id) ?? run, sceneApi: api });
|
|
85
91
|
bumpCabinetRunLayoutRevision(api, run);
|
|
86
92
|
useViewer.getState().setSelection({ selectedIds: [id] });
|
|
@@ -89,29 +95,116 @@ export function KitchenModuleActions({ node, run, onReplace, }) {
|
|
|
89
95
|
reset();
|
|
90
96
|
}
|
|
91
97
|
catch (cause) {
|
|
92
|
-
setError(cause instanceof Error
|
|
98
|
+
setError(cause instanceof Error
|
|
99
|
+
? cause.message
|
|
100
|
+
: i18n._({
|
|
101
|
+
id: 'node.cabinet.kitchenModuleActions.unableToUpdateThisKitchen',
|
|
102
|
+
message: 'Unable to update this kitchen.',
|
|
103
|
+
}));
|
|
93
104
|
}
|
|
94
105
|
};
|
|
95
106
|
const changedId = action === 'replace' ? node.id : module?.id;
|
|
96
|
-
return (_jsxs("div", { className: "space-y-3 px-1 pb-2", children: [_jsxs("div", { className: "flex gap-2", children: [_jsx(ActionButton, { label:
|
|
107
|
+
return (_jsxs("div", { className: "space-y-3 px-1 pb-2", children: [_jsxs("div", { className: "flex gap-2", children: [_jsx(ActionButton, { label: i18n._({
|
|
108
|
+
id: 'node.cabinet.kitchenModuleActions.addBeside',
|
|
109
|
+
message: 'Add beside',
|
|
110
|
+
}), onClick: () => {
|
|
97
111
|
setAction('right');
|
|
98
112
|
setPresetId(null);
|
|
99
|
-
} }), _jsx(ActionButton, { label:
|
|
113
|
+
} }), _jsx(ActionButton, { label: i18n._({
|
|
114
|
+
id: 'node.cabinet.kitchenModuleActions.replaceWith',
|
|
115
|
+
message: 'Replace with…',
|
|
116
|
+
}), onClick: () => {
|
|
100
117
|
setAction('replace');
|
|
101
118
|
setPresetId(null);
|
|
102
|
-
} })] }), action && (_jsxs("div", { className: "space-y-3 rounded-xl border border-border p-3", children: [_jsxs("div", { className: "flex items-center justify-between gap-2 text-xs font-medium", children: [_jsx("span", { children: action === 'replace'
|
|
119
|
+
} })] }), action && (_jsxs("div", { className: "space-y-3 rounded-xl border border-border p-3", children: [_jsxs("div", { className: "flex items-center justify-between gap-2 text-xs font-medium", children: [_jsx("span", { children: action === 'replace'
|
|
120
|
+
? i18n._({
|
|
121
|
+
id: 'node.cabinet.kitchenModuleActions.replaceSelectedItem',
|
|
122
|
+
message: 'Replace selected item',
|
|
123
|
+
})
|
|
124
|
+
: i18n._({
|
|
125
|
+
id: 'node.cabinet.kitchenModuleActions.addBesideSelectedItem',
|
|
126
|
+
message: 'Add beside selected item',
|
|
127
|
+
}) }), _jsx("button", { type: "button", onClick: reset, className: "min-h-8 shrink-0 rounded px-2 py-1.5 hover:bg-muted focus-visible:ring-2 focus-visible:ring-ring", children: i18n._({ id: 'node.cabinet.kitchenModuleActions.cancel', message: 'Cancel' }) })] }), action !== 'replace' && (_jsx("div", { className: "flex gap-2", children: ['left', 'right'].map((side) => (_jsx("button", { type: "button", "aria-pressed": action === side, onClick: () => setAction(side), className: `flex-1 rounded-lg border px-2 py-2 text-xs focus-visible:ring-2 focus-visible:ring-ring ${action === side ? 'border-primary bg-primary/10' : 'border-border'}`, children: side === 'left'
|
|
128
|
+
? i18n._({
|
|
129
|
+
id: 'node.cabinet.kitchenModuleActions.leftSide',
|
|
130
|
+
message: 'Left side',
|
|
131
|
+
})
|
|
132
|
+
: i18n._({
|
|
133
|
+
id: 'node.cabinet.kitchenModuleActions.rightSide',
|
|
134
|
+
message: 'Right side',
|
|
135
|
+
}) }, side))) })), _jsx(KitchenCollection, { activeId: presetId, includeWall: false, onSelect: (id) => {
|
|
103
136
|
setPresetId(id);
|
|
104
137
|
setError(null);
|
|
105
|
-
} }), preset && (_jsxs("div", { role: "status", className: "space-y-2 border-t border-border pt-3 text-xs", children: [_jsxs("p", { className: "font-medium", children: [
|
|
138
|
+
} }), preset && (_jsxs("div", { role: "status", className: "space-y-2 border-t border-border pt-3 text-xs", children: [_jsxs("p", { className: "font-medium", children: [presetLabel, " \u00B7 ", format(patch?.width ?? 0)] }), fits && planned ? (_jsxs(_Fragment, { children: [_jsx("div", { role: "img", "aria-label": i18n._({
|
|
139
|
+
id: 'node.cabinet.kitchenModuleActions.kitchenRunPreviewHighlightedItemIs',
|
|
140
|
+
message: 'Kitchen run preview, highlighted item is the proposed change',
|
|
141
|
+
}), className: "flex h-12 gap-0.5", children: [...planned]
|
|
106
142
|
.sort((a, b) => a.position[0] - b.position[0])
|
|
107
|
-
.map((entry) => (_jsx("div", { style: { flex: entry.width }, title:
|
|
108
|
-
|
|
109
|
-
|
|
143
|
+
.map((entry) => (_jsx("div", { style: { flex: entry.width }, title: i18n._({
|
|
144
|
+
id: 'node.cabinet.kitchenModuleActions.previewItem',
|
|
145
|
+
message: '{name}: {width}',
|
|
146
|
+
values: {
|
|
147
|
+
name: entry.id === changedId
|
|
148
|
+
? presetLabel
|
|
149
|
+
: (modules.find((existing) => existing.id === entry.id)?.name ??
|
|
150
|
+
i18n._({
|
|
151
|
+
id: 'node.cabinet.kitchenModuleActions.cabinet',
|
|
152
|
+
message: 'Cabinet',
|
|
153
|
+
})),
|
|
154
|
+
width: format(entry.width),
|
|
155
|
+
},
|
|
156
|
+
}), className: `min-w-0 rounded border ${entry.id === changedId ? 'border-primary bg-primary/30' : 'border-border bg-muted'}` }, entry.id))) }), _jsx("p", { children: action === 'replace'
|
|
157
|
+
? i18n._({
|
|
158
|
+
id: 'node.cabinet.kitchenModuleActions.replacesOnlyTheSelectedItem',
|
|
159
|
+
message: 'Replaces only the selected item.',
|
|
160
|
+
})
|
|
161
|
+
: i18n._({
|
|
162
|
+
id: 'node.cabinet.kitchenModuleActions.insertsBeside',
|
|
163
|
+
message: '{side, select, left {Inserts on the left of the selected item.} other {Inserts on the right of the selected item.}}',
|
|
164
|
+
values: { side: action },
|
|
165
|
+
}) }), changes.map((entry) => {
|
|
110
166
|
const before = modules.find((existing) => existing.id === entry.id);
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
167
|
+
const moduleName = before.name ||
|
|
168
|
+
i18n._({
|
|
169
|
+
id: 'node.cabinet.kitchenModuleActions.cabinet',
|
|
170
|
+
message: 'Cabinet',
|
|
171
|
+
});
|
|
172
|
+
return (_jsx("p", { className: "text-muted-foreground", children: Math.abs(before.width - entry.width) > 0.0001
|
|
173
|
+
? i18n._({
|
|
174
|
+
id: 'node.cabinet.kitchenModuleActions.resized',
|
|
175
|
+
message: '{name}: {before} → {after}',
|
|
176
|
+
values: {
|
|
177
|
+
name: moduleName,
|
|
178
|
+
before: format(before.width),
|
|
179
|
+
after: format(entry.width),
|
|
180
|
+
},
|
|
181
|
+
})
|
|
182
|
+
: i18n._({
|
|
183
|
+
id: 'node.cabinet.kitchenModuleActions.moved',
|
|
184
|
+
message: '{name}: moves {distance}',
|
|
185
|
+
values: {
|
|
186
|
+
name: moduleName,
|
|
187
|
+
distance: format(Math.abs(before.position[0] - entry.position[0])),
|
|
188
|
+
},
|
|
189
|
+
}) }, entry.id));
|
|
114
190
|
}), action === 'replace' &&
|
|
115
191
|
patch?.cabinetType === 'tall' &&
|
|
116
|
-
node.children.length > 0 && (_jsx("p", { className: "text-muted-foreground", children:
|
|
192
|
+
node.children.length > 0 && (_jsx("p", { className: "text-muted-foreground", children: i18n._({
|
|
193
|
+
id: 'node.cabinet.kitchenModuleActions.anUpperCabinetAttachedToThis',
|
|
194
|
+
message: 'An upper cabinet attached to this item will be removed to make room.',
|
|
195
|
+
}) })), _jsx(ActionButton, { label: action === 'replace'
|
|
196
|
+
? i18n._({
|
|
197
|
+
id: 'node.cabinet.kitchenModuleActions.replaceWithLabel',
|
|
198
|
+
message: 'Replace with {label}',
|
|
199
|
+
values: { label: presetLabel },
|
|
200
|
+
})
|
|
201
|
+
: i18n._({
|
|
202
|
+
id: 'node.cabinet.kitchenModuleActions.addLabel',
|
|
203
|
+
message: 'Add {label}',
|
|
204
|
+
values: { label: presetLabel },
|
|
205
|
+
}), onClick: commit })] })) : (_jsx("p", { children: i18n._({
|
|
206
|
+
id: 'node.cabinet.kitchenModuleActions.cannotFit',
|
|
207
|
+
message: 'This {width} item cannot fit within the current run and its wall or corner limits. Move an end cabinet or free space, then try again.',
|
|
208
|
+
values: { width: format(patch?.width ?? 0) },
|
|
209
|
+
}) }))] })), error && (_jsx("p", { role: "alert", className: "text-xs text-destructive", children: error }))] }))] }));
|
|
117
210
|
}
|
|
@@ -71,6 +71,11 @@ export declare function resolveCabinetNeighborPlacement({ nodes, levelId, positi
|
|
|
71
71
|
url: string;
|
|
72
72
|
repeat?: [number, number] | undefined;
|
|
73
73
|
scale?: number | undefined;
|
|
74
|
+
offset?: [number, number] | undefined;
|
|
75
|
+
normalMap?: string | undefined;
|
|
76
|
+
normalScale?: number | undefined;
|
|
77
|
+
bumpMap?: string | undefined;
|
|
78
|
+
bumpScale?: number | undefined;
|
|
74
79
|
} | undefined;
|
|
75
80
|
} | undefined;
|
|
76
81
|
materialPreset?: string | undefined;
|
|
@@ -234,6 +239,11 @@ export declare function resolveCabinetNeighborPlacement({ nodes, levelId, positi
|
|
|
234
239
|
url: string;
|
|
235
240
|
repeat?: [number, number] | undefined;
|
|
236
241
|
scale?: number | undefined;
|
|
242
|
+
offset?: [number, number] | undefined;
|
|
243
|
+
normalMap?: string | undefined;
|
|
244
|
+
normalScale?: number | undefined;
|
|
245
|
+
bumpMap?: string | undefined;
|
|
246
|
+
bumpScale?: number | undefined;
|
|
237
247
|
} | undefined;
|
|
238
248
|
} | undefined;
|
|
239
249
|
materialPreset?: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"neighbor-placement.d.ts","sourceRoot":"","sources":["../../src/cabinet/neighbor-placement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAe,MAAM,kBAAkB,CAAA;AAW1F,0FAA0F;AAC1F,wBAAgB,+BAA+B,CAAC,EAC9C,KAAK,EACL,OAAO,EACP,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,SAAgB,GACjB,EAAE;IACD,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IACjC,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAClC,MAAM,EAAE,iBAAiB,CAAA;IACzB,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB
|
|
1
|
+
{"version":3,"file":"neighbor-placement.d.ts","sourceRoot":"","sources":["../../src/cabinet/neighbor-placement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAe,MAAM,kBAAkB,CAAA;AAW1F,0FAA0F;AAC1F,wBAAgB,+BAA+B,CAAC,EAC9C,KAAK,EACL,OAAO,EACP,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,SAAgB,GACjB,EAAE;IACD,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IACjC,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAClC,MAAM,EAAE,iBAAiB,CAAA;IACzB,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAmDA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"panel.d.ts","sourceRoot":"","sources":["../../src/cabinet/panel.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"panel.d.ts","sourceRoot":"","sources":["../../src/cabinet/panel.tsx"],"names":[],"mappings":"AAwJA,MAAM,CAAC,OAAO,UAAU,YAAY,uCAukCnC"}
|