@pascal-app/nodes 1.0.7 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +43 -8
- package/dist/agent-operations/index.d.ts +5 -0
- package/dist/agent-operations/index.d.ts.map +1 -1
- package/dist/agent-operations/index.js +10 -0
- package/dist/agent-tools/index.d.ts +195 -0
- package/dist/agent-tools/index.d.ts.map +1 -1
- package/dist/agent-tools/index.js +82 -2
- package/dist/beam/definition.d.ts +64 -13
- package/dist/beam/definition.d.ts.map +1 -1
- package/dist/beam/definition.edit.d.ts +4 -0
- package/dist/beam/definition.edit.d.ts.map +1 -0
- package/dist/beam/definition.edit.js +131 -0
- package/dist/beam/definition.js +4 -173
- package/dist/beam/definition.render.d.ts +6 -0
- package/dist/beam/definition.render.d.ts.map +1 -0
- package/dist/beam/definition.render.js +34 -0
- package/dist/beam/floorplan.d.ts.map +1 -1
- package/dist/beam/floorplan.js +1 -2
- package/dist/beam/panel.d.ts.map +1 -1
- package/dist/beam/panel.js +2 -2
- package/dist/beam/tool.d.ts.map +1 -1
- package/dist/beam/tool.js +2 -2
- package/dist/block/definition.d.ts +67 -7
- package/dist/block/definition.d.ts.map +1 -1
- package/dist/block/definition.edit.d.ts +4 -0
- package/dist/block/definition.edit.d.ts.map +1 -0
- package/dist/block/definition.edit.js +26 -0
- package/dist/block/definition.js +5 -144
- package/dist/block/definition.render.d.ts +11 -0
- package/dist/block/definition.render.d.ts.map +1 -0
- package/dist/block/definition.render.js +122 -0
- package/dist/block/floorplan.d.ts.map +1 -1
- package/dist/block/floorplan.js +1 -2
- package/dist/box-vent/definition.d.ts +103 -29
- package/dist/box-vent/definition.d.ts.map +1 -1
- package/dist/box-vent/definition.edit.d.ts +4 -0
- package/dist/box-vent/definition.edit.d.ts.map +1 -0
- package/dist/box-vent/definition.edit.js +149 -0
- package/dist/box-vent/definition.js +4 -212
- package/dist/box-vent/definition.render.d.ts +6 -0
- package/dist/box-vent/definition.render.d.ts.map +1 -0
- package/dist/box-vent/definition.render.js +42 -0
- package/dist/box-vent/move-tool.d.ts.map +1 -1
- package/dist/box-vent/move-tool.js +6 -5
- package/dist/building/definition.d.ts +49 -11
- package/dist/building/definition.d.ts.map +1 -1
- package/dist/building/definition.edit.d.ts +4 -0
- package/dist/building/definition.edit.d.ts.map +1 -0
- package/dist/building/definition.edit.js +10 -0
- package/dist/building/definition.js +4 -54
- package/dist/building/definition.render.d.ts +6 -0
- package/dist/building/definition.render.d.ts.map +1 -0
- package/dist/building/definition.render.js +38 -0
- package/dist/builtin-definitions.d.ts +9784 -0
- package/dist/builtin-definitions.d.ts.map +1 -0
- package/dist/builtin-definitions.js +113 -0
- package/dist/builtin-edit-contributions.d.ts +9608 -0
- package/dist/builtin-edit-contributions.d.ts.map +1 -0
- package/dist/builtin-edit-contributions.js +112 -0
- package/dist/builtin-plugin-metadata.d.ts +5 -0
- package/dist/builtin-plugin-metadata.d.ts.map +1 -0
- package/dist/builtin-plugin-metadata.js +1 -0
- package/dist/cabinet/definition.d.ts +497 -25
- package/dist/cabinet/definition.d.ts.map +1 -1
- package/dist/cabinet/definition.edit.d.ts +5 -0
- package/dist/cabinet/definition.edit.d.ts.map +1 -0
- package/dist/cabinet/definition.edit.js +1372 -0
- package/dist/cabinet/definition.js +6 -2115
- package/dist/cabinet/definition.render.d.ts +66 -0
- package/dist/cabinet/definition.render.d.ts.map +1 -0
- package/dist/cabinet/definition.render.js +754 -0
- package/dist/cabinet/floorplan.js +1 -1
- package/dist/cabinet/kitchen-module-actions.d.ts.map +1 -1
- package/dist/cabinet/kitchen-module-actions.js +2 -2
- package/dist/cabinet/placement-dimensions.d.ts +36 -2
- package/dist/cabinet/placement-dimensions.d.ts.map +1 -1
- package/dist/cabinet/placement-dimensions.js +68 -2
- package/dist/cabinet/system.js +1 -1
- package/dist/cabinet/tool.d.ts.map +1 -1
- package/dist/cabinet/tool.js +268 -15
- package/dist/cabinet/wall-snap.d.ts +5 -1
- package/dist/cabinet/wall-snap.d.ts.map +1 -1
- package/dist/cabinet/wall-snap.js +2 -2
- package/dist/ceiling/definition.d.ts +152 -19
- package/dist/ceiling/definition.d.ts.map +1 -1
- package/dist/ceiling/definition.edit.d.ts +4 -0
- package/dist/ceiling/definition.edit.d.ts.map +1 -0
- package/dist/ceiling/definition.edit.js +123 -0
- package/dist/ceiling/definition.js +4 -207
- package/dist/ceiling/definition.render.d.ts +6 -0
- package/dist/ceiling/definition.render.d.ts.map +1 -0
- package/dist/ceiling/definition.render.js +73 -0
- package/dist/ceiling/panel.js +2 -2
- package/dist/chimney/definition.d.ts +186 -17
- package/dist/chimney/definition.d.ts.map +1 -1
- package/dist/chimney/definition.edit.d.ts +4 -0
- package/dist/chimney/definition.edit.d.ts.map +1 -0
- package/dist/chimney/definition.edit.js +217 -0
- package/dist/chimney/definition.js +4 -390
- package/dist/chimney/definition.render.d.ts +6 -0
- package/dist/chimney/definition.render.d.ts.map +1 -0
- package/dist/chimney/definition.render.js +61 -0
- package/dist/chimney/move-tool.d.ts.map +1 -1
- package/dist/chimney/move-tool.js +6 -4
- package/dist/chimney/panel.js +1 -1
- package/dist/column/__bench__/geometry.d.ts +2 -0
- package/dist/column/__bench__/geometry.d.ts.map +1 -0
- package/dist/column/__bench__/geometry.js +36 -0
- package/dist/column/bounds.d.ts +7 -0
- package/dist/column/bounds.d.ts.map +1 -0
- package/dist/column/bounds.js +127 -0
- package/dist/column/definition.d.ts +372 -20
- package/dist/column/definition.d.ts.map +1 -1
- package/dist/column/definition.edit.d.ts +4 -0
- package/dist/column/definition.edit.d.ts.map +1 -0
- package/dist/column/definition.edit.js +320 -0
- package/dist/column/definition.js +4 -439
- package/dist/column/definition.render.d.ts +6 -0
- package/dist/column/definition.render.d.ts.map +1 -0
- package/dist/column/definition.render.js +84 -0
- package/dist/column/edit-policy.d.ts +5 -0
- package/dist/column/edit-policy.d.ts.map +1 -0
- package/dist/column/edit-policy.js +43 -0
- package/dist/column/floorplan-affordances.d.ts.map +1 -1
- package/dist/column/floorplan-affordances.js +2 -0
- package/dist/column/floorplan-move.d.ts.map +1 -1
- package/dist/column/floorplan-move.js +5 -1
- package/dist/column/floorplan.d.ts.map +1 -1
- package/dist/column/floorplan.js +34 -93
- package/dist/column/geometry.d.ts +13 -0
- package/dist/column/geometry.d.ts.map +1 -0
- package/dist/column/geometry.js +294 -0
- package/dist/column/hosted-resize.d.ts +3 -2
- package/dist/column/hosted-resize.d.ts.map +1 -1
- package/dist/column/hosted-resize.js +7 -1
- package/dist/column/inspector-highlight.d.ts +29 -0
- package/dist/column/inspector-highlight.d.ts.map +1 -0
- package/dist/column/inspector-highlight.js +166 -0
- package/dist/column/paint.d.ts.map +1 -1
- package/dist/column/paint.js +12 -2
- package/dist/column/panel.d.ts.map +1 -1
- package/dist/column/panel.js +451 -363
- package/dist/column/parametrics.js +1 -1
- package/dist/column/post-section.d.ts.map +1 -1
- package/dist/column/post-section.js +2 -2
- package/dist/column/preset-gallery.d.ts +8 -0
- package/dist/column/preset-gallery.d.ts.map +1 -0
- package/dist/column/preset-gallery.js +98 -0
- package/dist/column/presets.d.ts +16 -0
- package/dist/column/presets.d.ts.map +1 -0
- package/dist/column/presets.js +96 -0
- package/dist/column/property-preview.d.ts +8 -0
- package/dist/column/property-preview.d.ts.map +1 -0
- package/dist/column/property-preview.js +50 -0
- package/dist/column/renderer.d.ts +13 -1
- package/dist/column/renderer.d.ts.map +1 -1
- package/dist/column/renderer.js +174 -198
- package/dist/column/shape.d.ts +4 -4
- package/dist/column/shape.d.ts.map +1 -1
- package/dist/column/shape.js +1 -1
- package/dist/column/surface.d.ts.map +1 -1
- package/dist/column/surface.js +15 -8
- package/dist/column/tool.d.ts.map +1 -1
- package/dist/column/tool.js +21 -10
- package/dist/construction-dimension/definition.d.ts +129 -3
- package/dist/construction-dimension/definition.d.ts.map +1 -1
- package/dist/construction-dimension/definition.edit.d.ts +4 -0
- package/dist/construction-dimension/definition.edit.d.ts.map +1 -0
- package/dist/construction-dimension/definition.edit.js +30 -0
- package/dist/construction-dimension/definition.js +4 -83
- package/dist/construction-dimension/definition.render.d.ts +6 -0
- package/dist/construction-dimension/definition.render.d.ts.map +1 -0
- package/dist/construction-dimension/definition.render.js +55 -0
- package/dist/construction-dimension/floorplan-tool.d.ts.map +1 -1
- package/dist/construction-dimension/floorplan-tool.js +2 -2
- package/dist/construction-dimension/floorplan.d.ts.map +1 -1
- package/dist/construction-dimension/floorplan.js +1 -2
- package/dist/cupola/definition.d.ts +95 -10
- package/dist/cupola/definition.d.ts.map +1 -1
- package/dist/cupola/definition.edit.d.ts +4 -0
- package/dist/cupola/definition.edit.d.ts.map +1 -0
- package/dist/cupola/definition.edit.js +101 -0
- package/dist/cupola/definition.js +4 -148
- package/dist/cupola/definition.render.d.ts +6 -0
- package/dist/cupola/definition.render.d.ts.map +1 -0
- package/dist/cupola/definition.render.js +45 -0
- package/dist/cupola/move-tool.d.ts.map +1 -1
- package/dist/cupola/move-tool.js +6 -5
- package/dist/definition-contributions.d.ts +14 -0
- package/dist/definition-contributions.d.ts.map +1 -0
- package/dist/definition-contributions.js +8 -0
- package/dist/door/definition.d.ts +350 -22
- package/dist/door/definition.d.ts.map +1 -1
- package/dist/door/definition.edit.d.ts +4 -0
- package/dist/door/definition.edit.d.ts.map +1 -0
- package/dist/door/definition.edit.js +241 -0
- package/dist/door/definition.js +4 -341
- package/dist/door/definition.render.d.ts +6 -0
- package/dist/door/definition.render.d.ts.map +1 -0
- package/dist/door/definition.render.js +94 -0
- package/dist/door/floorplan-move.d.ts.map +1 -1
- package/dist/door/floorplan-move.js +11 -8
- package/dist/door/floorplan.d.ts.map +1 -1
- package/dist/door/floorplan.js +1 -2
- package/dist/door/mechanism.d.ts.map +1 -1
- package/dist/door/mechanism.js +1 -2
- package/dist/door/move-tool.d.ts.map +1 -1
- package/dist/door/move-tool.js +25 -23
- package/dist/door/tool.d.ts.map +1 -1
- package/dist/door/tool.js +2 -1
- package/dist/dormer/definition.d.ts +240 -11
- package/dist/dormer/definition.d.ts.map +1 -1
- package/dist/dormer/definition.edit.d.ts +4 -0
- package/dist/dormer/definition.edit.d.ts.map +1 -0
- package/dist/dormer/definition.edit.js +212 -0
- package/dist/dormer/definition.js +4 -319
- package/dist/dormer/definition.render.d.ts +6 -0
- package/dist/dormer/definition.render.d.ts.map +1 -0
- package/dist/dormer/definition.render.js +54 -0
- package/dist/dormer/panel-position-section.js +1 -1
- package/dist/downspout/definition.d.ts +108 -16
- package/dist/downspout/definition.d.ts.map +1 -1
- package/dist/downspout/definition.edit.d.ts +4 -0
- package/dist/downspout/definition.edit.d.ts.map +1 -0
- package/dist/downspout/definition.edit.js +134 -0
- package/dist/downspout/definition.js +4 -188
- package/dist/downspout/definition.render.d.ts +6 -0
- package/dist/downspout/definition.render.d.ts.map +1 -0
- package/dist/downspout/definition.render.js +46 -0
- package/dist/duct-fitting/definition.d.ts +99 -11
- package/dist/duct-fitting/definition.d.ts.map +1 -1
- package/dist/duct-fitting/definition.edit.d.ts +4 -0
- package/dist/duct-fitting/definition.edit.d.ts.map +1 -0
- package/dist/duct-fitting/definition.edit.js +47 -0
- package/dist/duct-fitting/definition.js +4 -135
- package/dist/duct-fitting/definition.render.d.ts +6 -0
- package/dist/duct-fitting/definition.render.d.ts.map +1 -0
- package/dist/duct-fitting/definition.render.js +84 -0
- package/dist/duct-fitting/floorplan.js +1 -1
- package/dist/duct-fitting/geometry.js +2 -1
- package/dist/duct-fitting/move-tool.d.ts.map +1 -1
- package/dist/duct-fitting/move-tool.js +19 -13
- package/dist/duct-fitting/selection.d.ts.map +1 -1
- package/dist/duct-fitting/selection.js +92 -80
- package/dist/duct-segment/continuation-handle.d.ts +8 -0
- package/dist/duct-segment/continuation-handle.d.ts.map +1 -0
- package/dist/duct-segment/continuation-handle.js +36 -0
- package/dist/duct-segment/continuation.d.ts +3 -7
- package/dist/duct-segment/continuation.d.ts.map +1 -1
- package/dist/duct-segment/continuation.js +54 -37
- package/dist/duct-segment/definition.d.ts +91 -3
- package/dist/duct-segment/definition.d.ts.map +1 -1
- package/dist/duct-segment/definition.edit.d.ts +4 -0
- package/dist/duct-segment/definition.edit.d.ts.map +1 -0
- package/dist/duct-segment/definition.edit.js +98 -0
- package/dist/duct-segment/definition.js +4 -181
- package/dist/duct-segment/definition.render.d.ts +6 -0
- package/dist/duct-segment/definition.render.d.ts.map +1 -0
- package/dist/duct-segment/definition.render.js +91 -0
- package/dist/duct-segment/edit-inspector.d.ts +5 -0
- package/dist/duct-segment/edit-inspector.d.ts.map +1 -0
- package/dist/duct-segment/edit-inspector.js +163 -0
- package/dist/duct-segment/edit-operation.d.ts +17 -0
- package/dist/duct-segment/edit-operation.d.ts.map +1 -0
- package/dist/duct-segment/edit-operation.js +283 -0
- package/dist/duct-segment/floorplan.js +2 -2
- package/dist/duct-segment/geometry.d.ts +0 -40
- package/dist/duct-segment/geometry.d.ts.map +1 -1
- package/dist/duct-segment/geometry.js +2 -77
- package/dist/duct-segment/move-tool.d.ts.map +1 -1
- package/dist/duct-segment/move-tool.js +34 -35
- package/dist/duct-segment/parametrics.d.ts.map +1 -1
- package/dist/duct-segment/parametrics.js +2 -35
- package/dist/duct-segment/profile.d.ts +42 -0
- package/dist/duct-segment/profile.d.ts.map +1 -0
- package/dist/duct-segment/profile.js +78 -0
- package/dist/duct-segment/selection.d.ts.map +1 -1
- package/dist/duct-segment/selection.js +114 -54
- package/dist/duct-segment/tool.d.ts.map +1 -1
- package/dist/duct-segment/tool.js +105 -28
- package/dist/duct-terminal/definition.d.ts +68 -12
- package/dist/duct-terminal/definition.d.ts.map +1 -1
- package/dist/duct-terminal/definition.edit.d.ts +4 -0
- package/dist/duct-terminal/definition.edit.d.ts.map +1 -0
- package/dist/duct-terminal/definition.edit.js +12 -0
- package/dist/duct-terminal/definition.js +4 -87
- package/dist/duct-terminal/definition.render.d.ts +6 -0
- package/dist/duct-terminal/definition.render.d.ts.map +1 -0
- package/dist/duct-terminal/definition.render.js +68 -0
- package/dist/duct-terminal/geometry.d.ts.map +1 -1
- package/dist/duct-terminal/geometry.js +2 -1
- package/dist/duct-terminal/parametrics.d.ts.map +1 -1
- package/dist/duct-terminal/parametrics.js +1 -0
- package/dist/duct-terminal/ports.js +1 -1
- package/dist/elevator/__bench__/runtime.d.ts +2 -0
- package/dist/elevator/__bench__/runtime.d.ts.map +1 -0
- package/dist/elevator/__bench__/runtime.js +38 -0
- package/dist/elevator/definition.d.ts +117 -10
- package/dist/elevator/definition.d.ts.map +1 -1
- package/dist/elevator/definition.edit.d.ts +4 -0
- package/dist/elevator/definition.edit.d.ts.map +1 -0
- package/dist/elevator/definition.edit.js +167 -0
- package/dist/elevator/definition.js +4 -258
- package/dist/elevator/definition.render.d.ts +11 -0
- package/dist/elevator/definition.render.d.ts.map +1 -0
- package/dist/elevator/definition.render.js +106 -0
- package/dist/elevator/floorplan-affordances.d.ts.map +1 -1
- package/dist/elevator/floorplan-affordances.js +11 -9
- package/dist/elevator/floorplan.d.ts +19 -0
- package/dist/elevator/floorplan.d.ts.map +1 -1
- package/dist/elevator/floorplan.js +3 -9
- package/dist/elevator/inspection.d.ts +17 -0
- package/dist/elevator/inspection.d.ts.map +1 -0
- package/dist/elevator/inspection.js +78 -0
- package/dist/elevator/panel.d.ts.map +1 -1
- package/dist/elevator/panel.js +152 -100
- package/dist/elevator/parametrics.d.ts +1 -1
- package/dist/elevator/parametrics.d.ts.map +1 -1
- package/dist/elevator/parametrics.js +7 -10
- package/dist/elevator/presets.d.ts +17 -0
- package/dist/elevator/presets.d.ts.map +1 -0
- package/dist/elevator/presets.js +52 -0
- package/dist/elevator/renderer.d.ts +2 -1
- package/dist/elevator/renderer.d.ts.map +1 -1
- package/dist/elevator/renderer.edit.d.ts +5 -0
- package/dist/elevator/renderer.edit.d.ts.map +1 -0
- package/dist/elevator/renderer.edit.js +8 -0
- package/dist/elevator/renderer.js +159 -60
- package/dist/elevator/tool.d.ts +2 -0
- package/dist/elevator/tool.d.ts.map +1 -0
- package/dist/elevator/tool.js +250 -0
- package/dist/eyebrow-vent/definition.d.ts +97 -11
- package/dist/eyebrow-vent/definition.d.ts.map +1 -1
- package/dist/eyebrow-vent/definition.edit.d.ts +4 -0
- package/dist/eyebrow-vent/definition.edit.d.ts.map +1 -0
- package/dist/eyebrow-vent/definition.edit.js +104 -0
- package/dist/eyebrow-vent/definition.js +4 -152
- package/dist/eyebrow-vent/definition.render.d.ts +6 -0
- package/dist/eyebrow-vent/definition.render.d.ts.map +1 -0
- package/dist/eyebrow-vent/definition.render.js +45 -0
- package/dist/eyebrow-vent/move-tool.d.ts.map +1 -1
- package/dist/eyebrow-vent/move-tool.js +6 -5
- package/dist/fence/definition.d.ts +186 -17
- package/dist/fence/definition.d.ts.map +1 -1
- package/dist/fence/definition.edit.d.ts +4 -0
- package/dist/fence/definition.edit.d.ts.map +1 -0
- package/dist/fence/definition.edit.js +276 -0
- package/dist/fence/definition.js +5 -413
- package/dist/fence/definition.render.d.ts +8 -0
- package/dist/fence/definition.render.d.ts.map +1 -0
- package/dist/fence/definition.render.js +126 -0
- package/dist/fence/move-endpoint-tool.d.ts.map +1 -1
- package/dist/fence/move-endpoint-tool.js +2 -2
- package/dist/fence/tool.js +2 -2
- package/dist/fence-feature/definition.d.ts +270 -3
- package/dist/fence-feature/definition.d.ts.map +1 -1
- package/dist/fence-feature/definition.edit.d.ts +5 -0
- package/dist/fence-feature/definition.edit.d.ts.map +1 -0
- package/dist/fence-feature/definition.edit.js +66 -0
- package/dist/fence-feature/definition.js +5 -116
- package/dist/fence-feature/definition.render.d.ts +9 -0
- package/dist/fence-feature/definition.render.d.ts.map +1 -0
- package/dist/fence-feature/definition.render.js +72 -0
- package/dist/floor-opening/definition.d.ts +58 -2
- package/dist/floor-opening/definition.d.ts.map +1 -1
- package/dist/floor-opening/definition.edit.d.ts +4 -0
- package/dist/floor-opening/definition.edit.d.ts.map +1 -0
- package/dist/floor-opening/definition.edit.js +9 -0
- package/dist/floor-opening/definition.js +4 -41
- package/dist/floor-opening/definition.render.d.ts +6 -0
- package/dist/floor-opening/definition.render.d.ts.map +1 -0
- package/dist/floor-opening/definition.render.js +35 -0
- package/dist/floor-opening/floorplan-affordances.d.ts +150 -0
- package/dist/floor-opening/floorplan-affordances.d.ts.map +1 -0
- package/dist/floor-opening/floorplan-affordances.js +67 -0
- package/dist/floor-opening/floorplan.d.ts +2 -151
- package/dist/floor-opening/floorplan.d.ts.map +1 -1
- package/dist/floor-opening/floorplan.js +0 -66
- package/dist/guide/definition.d.ts +65 -9
- package/dist/guide/definition.d.ts.map +1 -1
- package/dist/guide/definition.edit.d.ts +4 -0
- package/dist/guide/definition.edit.d.ts.map +1 -0
- package/dist/guide/definition.edit.js +4 -0
- package/dist/guide/definition.js +4 -53
- package/dist/guide/definition.render.d.ts +6 -0
- package/dist/guide/definition.render.d.ts.map +1 -0
- package/dist/guide/definition.render.js +45 -0
- package/dist/gutter/definition.d.ts +113 -18
- package/dist/gutter/definition.d.ts.map +1 -1
- package/dist/gutter/definition.edit.d.ts +4 -0
- package/dist/gutter/definition.edit.d.ts.map +1 -0
- package/dist/gutter/definition.edit.js +119 -0
- package/dist/gutter/definition.js +4 -176
- package/dist/gutter/definition.render.d.ts +6 -0
- package/dist/gutter/definition.render.d.ts.map +1 -0
- package/dist/gutter/definition.render.js +46 -0
- package/dist/gutter/move-tool.d.ts.map +1 -1
- package/dist/gutter/move-tool.js +5 -4
- package/dist/hvac-equipment/definition.d.ts +72 -12
- package/dist/hvac-equipment/definition.d.ts.map +1 -1
- package/dist/hvac-equipment/definition.edit.d.ts +4 -0
- package/dist/hvac-equipment/definition.edit.d.ts.map +1 -0
- package/dist/hvac-equipment/definition.edit.js +11 -0
- package/dist/hvac-equipment/definition.js +4 -92
- package/dist/hvac-equipment/definition.render.d.ts +6 -0
- package/dist/hvac-equipment/definition.render.d.ts.map +1 -0
- package/dist/hvac-equipment/definition.render.js +74 -0
- package/dist/hvac-equipment/floorplan.js +1 -1
- package/dist/hvac-equipment/geometry.d.ts.map +1 -1
- package/dist/hvac-equipment/geometry.js +2 -1
- package/dist/hvac-equipment/parametrics.d.ts.map +1 -1
- package/dist/hvac-equipment/parametrics.js +1 -0
- package/dist/hvac-equipment/ports.js +1 -1
- package/dist/i18n/definition-messages.js +1 -1
- package/dist/imported-mesh/definition.d.ts +54 -4
- package/dist/imported-mesh/definition.d.ts.map +1 -1
- package/dist/imported-mesh/definition.edit.d.ts +4 -0
- package/dist/imported-mesh/definition.edit.d.ts.map +1 -0
- package/dist/imported-mesh/definition.edit.js +3 -0
- package/dist/imported-mesh/definition.js +4 -40
- package/dist/imported-mesh/definition.render.d.ts +6 -0
- package/dist/imported-mesh/definition.render.d.ts.map +1 -0
- package/dist/imported-mesh/definition.render.js +38 -0
- package/dist/index.d.ts +3 -16
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -136
- package/dist/item/definition.d.ts +280 -31
- package/dist/item/definition.d.ts.map +1 -1
- package/dist/item/definition.edit.d.ts +4 -0
- package/dist/item/definition.edit.d.ts.map +1 -0
- package/dist/item/definition.edit.js +203 -0
- package/dist/item/definition.js +4 -356
- package/dist/item/definition.render.d.ts +6 -0
- package/dist/item/definition.render.d.ts.map +1 -0
- package/dist/item/definition.render.js +132 -0
- package/dist/item/floorplan.d.ts.map +1 -1
- package/dist/item/floorplan.js +1 -2
- package/dist/item/plan-symbols.js +1 -1
- package/dist/item/renderer.d.ts.map +1 -1
- package/dist/item/renderer.js +2 -2
- package/dist/lean-to-extension/definition.d.ts +177 -3
- package/dist/lean-to-extension/definition.d.ts.map +1 -1
- package/dist/lean-to-extension/definition.edit.d.ts +4 -0
- package/dist/lean-to-extension/definition.edit.d.ts.map +1 -0
- package/dist/lean-to-extension/definition.edit.js +390 -0
- package/dist/lean-to-extension/definition.js +4 -433
- package/dist/lean-to-extension/definition.render.d.ts +6 -0
- package/dist/lean-to-extension/definition.render.d.ts.map +1 -0
- package/dist/lean-to-extension/definition.render.js +48 -0
- package/dist/level/definition.d.ts +49 -8
- package/dist/level/definition.d.ts.map +1 -1
- package/dist/level/definition.edit.d.ts +4 -0
- package/dist/level/definition.edit.d.ts.map +1 -0
- package/dist/level/definition.edit.js +4 -0
- package/dist/level/definition.js +4 -60
- package/dist/level/definition.render.d.ts +6 -0
- package/dist/level/definition.render.d.ts.map +1 -0
- package/dist/level/definition.render.js +53 -0
- package/dist/lineset/definition.d.ts +49 -14
- package/dist/lineset/definition.d.ts.map +1 -1
- package/dist/lineset/definition.edit.d.ts +4 -0
- package/dist/lineset/definition.edit.d.ts.map +1 -0
- package/dist/lineset/definition.edit.js +36 -0
- package/dist/lineset/definition.js +4 -119
- package/dist/lineset/definition.render.d.ts +6 -0
- package/dist/lineset/definition.render.d.ts.map +1 -0
- package/dist/lineset/definition.render.js +74 -0
- package/dist/lineset/floorplan.js +1 -1
- package/dist/lineset/geometry.js +1 -1
- package/dist/lineset/move-tool.d.ts.map +1 -1
- package/dist/lineset/move-tool.js +14 -7
- package/dist/liquid-line/definition.d.ts +47 -15
- package/dist/liquid-line/definition.d.ts.map +1 -1
- package/dist/liquid-line/definition.edit.d.ts +4 -0
- package/dist/liquid-line/definition.edit.d.ts.map +1 -0
- package/dist/liquid-line/definition.edit.js +29 -0
- package/dist/liquid-line/definition.js +4 -111
- package/dist/liquid-line/definition.render.d.ts +6 -0
- package/dist/liquid-line/definition.render.d.ts.map +1 -0
- package/dist/liquid-line/definition.render.js +72 -0
- package/dist/liquid-line/floorplan.js +1 -1
- package/dist/liquid-line/geometry.js +1 -1
- package/dist/measurement/definition.d.ts +126 -3
- package/dist/measurement/definition.d.ts.map +1 -1
- package/dist/measurement/definition.edit.d.ts +4 -0
- package/dist/measurement/definition.edit.d.ts.map +1 -0
- package/dist/measurement/definition.edit.js +24 -0
- package/dist/measurement/definition.js +4 -67
- package/dist/measurement/definition.render.d.ts +6 -0
- package/dist/measurement/definition.render.d.ts.map +1 -0
- package/dist/measurement/definition.render.js +45 -0
- package/dist/measurement/floorplan.d.ts.map +1 -1
- package/dist/measurement/floorplan.js +2 -2
- package/dist/measurement/renderer.d.ts.map +1 -1
- package/dist/measurement/renderer.js +2 -3
- package/dist/measurement/selection.d.ts.map +1 -1
- package/dist/measurement/selection.js +2 -2
- package/dist/measurement/tool.d.ts +2 -2
- package/dist/measurement/tool.d.ts.map +1 -1
- package/dist/measurement/tool.js +3 -3
- package/dist/pipe-fitting/definition.d.ts +73 -9
- package/dist/pipe-fitting/definition.d.ts.map +1 -1
- package/dist/pipe-fitting/definition.edit.d.ts +4 -0
- package/dist/pipe-fitting/definition.edit.d.ts.map +1 -0
- package/dist/pipe-fitting/definition.edit.js +45 -0
- package/dist/pipe-fitting/definition.js +4 -105
- package/dist/pipe-fitting/definition.render.d.ts +6 -0
- package/dist/pipe-fitting/definition.render.d.ts.map +1 -0
- package/dist/pipe-fitting/definition.render.js +56 -0
- package/dist/pipe-fitting/floorplan.js +1 -1
- package/dist/pipe-fitting/geometry.js +1 -1
- package/dist/pipe-fitting/move-tool.d.ts +1 -1
- package/dist/pipe-fitting/move-tool.d.ts.map +1 -1
- package/dist/pipe-fitting/move-tool.js +28 -22
- package/dist/pipe-fitting/parametrics.d.ts.map +1 -1
- package/dist/pipe-fitting/parametrics.js +1 -0
- package/dist/pipe-fitting/ports.js +1 -1
- package/dist/pipe-fitting/selection.d.ts.map +1 -1
- package/dist/pipe-fitting/selection.js +73 -29
- package/dist/pipe-segment/collar-connection.d.ts +12 -0
- package/dist/pipe-segment/collar-connection.d.ts.map +1 -0
- package/dist/pipe-segment/collar-connection.js +58 -0
- package/dist/pipe-segment/connect-operation.d.ts +9 -0
- package/dist/pipe-segment/connect-operation.d.ts.map +1 -0
- package/dist/pipe-segment/connect-operation.js +44 -0
- package/dist/pipe-segment/continuation-handle.d.ts +9 -0
- package/dist/pipe-segment/continuation-handle.d.ts.map +1 -0
- package/dist/pipe-segment/continuation-handle.js +35 -0
- package/dist/pipe-segment/continuation.d.ts +4 -7
- package/dist/pipe-segment/continuation.d.ts.map +1 -1
- package/dist/pipe-segment/continuation.js +62 -36
- package/dist/pipe-segment/definition.d.ts +78 -13
- package/dist/pipe-segment/definition.d.ts.map +1 -1
- package/dist/pipe-segment/definition.edit.d.ts +4 -0
- package/dist/pipe-segment/definition.edit.d.ts.map +1 -0
- package/dist/pipe-segment/definition.edit.js +46 -0
- package/dist/pipe-segment/definition.js +4 -132
- package/dist/pipe-segment/definition.render.d.ts +6 -0
- package/dist/pipe-segment/definition.render.d.ts.map +1 -0
- package/dist/pipe-segment/definition.render.js +80 -0
- package/dist/pipe-segment/floorplan.d.ts +1 -1
- package/dist/pipe-segment/floorplan.d.ts.map +1 -1
- package/dist/pipe-segment/floorplan.js +35 -2
- package/dist/pipe-segment/geometry.d.ts.map +1 -1
- package/dist/pipe-segment/geometry.js +2 -1
- package/dist/pipe-segment/grade-affordance.d.ts +8 -0
- package/dist/pipe-segment/grade-affordance.d.ts.map +1 -0
- package/dist/pipe-segment/grade-affordance.js +116 -0
- package/dist/pipe-segment/grade-inspector.d.ts +5 -0
- package/dist/pipe-segment/grade-inspector.d.ts.map +1 -0
- package/dist/pipe-segment/grade-inspector.js +91 -0
- package/dist/pipe-segment/grade-label.d.ts +7 -0
- package/dist/pipe-segment/grade-label.d.ts.map +1 -0
- package/dist/pipe-segment/grade-label.js +32 -0
- package/dist/pipe-segment/grade-operation.d.ts +22 -0
- package/dist/pipe-segment/grade-operation.d.ts.map +1 -0
- package/dist/pipe-segment/grade-operation.js +114 -0
- package/dist/pipe-segment/move-tool.d.ts.map +1 -1
- package/dist/pipe-segment/move-tool.js +38 -15
- package/dist/pipe-segment/offset-inspector.d.ts +5 -0
- package/dist/pipe-segment/offset-inspector.d.ts.map +1 -0
- package/dist/pipe-segment/offset-inspector.js +112 -0
- package/dist/pipe-segment/offset-operation.d.ts +9 -0
- package/dist/pipe-segment/offset-operation.d.ts.map +1 -0
- package/dist/pipe-segment/offset-operation.js +104 -0
- package/dist/pipe-segment/parametrics.d.ts.map +1 -1
- package/dist/pipe-segment/parametrics.js +1 -9
- package/dist/pipe-segment/resize-inspector.d.ts +5 -0
- package/dist/pipe-segment/resize-inspector.d.ts.map +1 -0
- package/dist/pipe-segment/resize-inspector.js +75 -0
- package/dist/pipe-segment/resize-operation.d.ts +8 -0
- package/dist/pipe-segment/resize-operation.d.ts.map +1 -0
- package/dist/pipe-segment/resize-operation.js +143 -0
- package/dist/pipe-segment/run-move.d.ts +65 -0
- package/dist/pipe-segment/run-move.d.ts.map +1 -0
- package/dist/pipe-segment/run-move.js +110 -0
- package/dist/pipe-segment/selection.d.ts.map +1 -1
- package/dist/pipe-segment/selection.js +124 -179
- package/dist/pipe-segment/slope.d.ts +3 -0
- package/dist/pipe-segment/slope.d.ts.map +1 -1
- package/dist/pipe-segment/slope.js +47 -0
- package/dist/pipe-segment/tool.d.ts.map +1 -1
- package/dist/pipe-segment/tool.js +125 -29
- package/dist/pipe-trap/definition.d.ts +54 -9
- package/dist/pipe-trap/definition.d.ts.map +1 -1
- package/dist/pipe-trap/definition.edit.d.ts +4 -0
- package/dist/pipe-trap/definition.edit.d.ts.map +1 -0
- package/dist/pipe-trap/definition.edit.js +11 -0
- package/dist/pipe-trap/definition.js +4 -59
- package/dist/pipe-trap/definition.render.d.ts +6 -0
- package/dist/pipe-trap/definition.render.d.ts.map +1 -0
- package/dist/pipe-trap/definition.render.js +45 -0
- package/dist/pipe-trap/geometry.d.ts.map +1 -1
- package/dist/pipe-trap/geometry.js +2 -1
- package/dist/pipe-trap/parametrics.d.ts.map +1 -1
- package/dist/pipe-trap/parametrics.js +1 -0
- package/dist/procedural-item/definition.d.ts +734 -3
- package/dist/procedural-item/definition.d.ts.map +1 -1
- package/dist/procedural-item/definition.edit.d.ts +4 -0
- package/dist/procedural-item/definition.edit.d.ts.map +1 -0
- package/dist/procedural-item/definition.edit.js +202 -0
- package/dist/procedural-item/definition.js +4 -325
- package/dist/procedural-item/definition.render.d.ts +6 -0
- package/dist/procedural-item/definition.render.d.ts.map +1 -0
- package/dist/procedural-item/definition.render.js +137 -0
- package/dist/procedural-item/renderer.d.ts.map +1 -1
- package/dist/procedural-item/renderer.edit.d.ts +5 -0
- package/dist/procedural-item/renderer.edit.d.ts.map +1 -0
- package/dist/procedural-item/renderer.edit.js +49 -0
- package/dist/procedural-item/renderer.js +4 -21
- package/dist/render.d.ts +4 -0
- package/dist/render.d.ts.map +1 -0
- package/dist/render.js +4 -0
- package/dist/ridge-vent/definition.d.ts +95 -15
- package/dist/ridge-vent/definition.d.ts.map +1 -1
- package/dist/ridge-vent/definition.edit.d.ts +4 -0
- package/dist/ridge-vent/definition.edit.d.ts.map +1 -0
- package/dist/ridge-vent/definition.edit.js +146 -0
- package/dist/ridge-vent/definition.js +4 -197
- package/dist/ridge-vent/definition.render.d.ts +6 -0
- package/dist/ridge-vent/definition.render.d.ts.map +1 -0
- package/dist/ridge-vent/definition.render.js +44 -0
- package/dist/ridge-vent/move-tool.d.ts.map +1 -1
- package/dist/ridge-vent/move-tool.js +5 -4
- package/dist/roof/barrel-panel.d.ts.map +1 -1
- package/dist/roof/barrel-panel.js +2 -2
- package/dist/roof/definition.d.ts +325 -8
- package/dist/roof/definition.d.ts.map +1 -1
- package/dist/roof/definition.edit.d.ts +4 -0
- package/dist/roof/definition.edit.d.ts.map +1 -0
- package/dist/roof/definition.edit.js +181 -0
- package/dist/roof/definition.js +4 -284
- package/dist/roof/definition.render.d.ts +7 -0
- package/dist/roof/definition.render.d.ts.map +1 -0
- package/dist/roof/definition.render.js +112 -0
- package/dist/roof/floorplan.d.ts.map +1 -1
- package/dist/roof/floorplan.js +1 -2
- package/dist/roof/geometry-notice.d.ts +5 -0
- package/dist/roof/geometry-notice.d.ts.map +1 -0
- package/dist/roof/geometry-notice.js +27 -0
- package/dist/roof/glazing-controls.d.ts.map +1 -1
- package/dist/roof/glazing-controls.js +2 -2
- package/dist/roof/panel.d.ts.map +1 -1
- package/dist/roof/panel.js +4 -3
- package/dist/roof/renderer.d.ts.map +1 -1
- package/dist/roof/renderer.js +10 -5
- package/dist/roof/tool.d.ts +3 -0
- package/dist/roof/tool.d.ts.map +1 -1
- package/dist/roof/tool.js +56 -170
- package/dist/roof/type-thumbnail-assets.d.ts +3 -0
- package/dist/roof/type-thumbnail-assets.d.ts.map +1 -0
- package/dist/roof/type-thumbnail-assets.js +12 -0
- package/dist/roof/type-thumbnail.d.ts +5 -0
- package/dist/roof/type-thumbnail.d.ts.map +1 -0
- package/dist/roof/type-thumbnail.js +5 -0
- package/dist/roof-segment/definition.d.ts +564 -9
- package/dist/roof-segment/definition.d.ts.map +1 -1
- package/dist/roof-segment/definition.edit.d.ts +4 -0
- package/dist/roof-segment/definition.edit.d.ts.map +1 -0
- package/dist/roof-segment/definition.edit.js +303 -0
- package/dist/roof-segment/definition.js +4 -364
- package/dist/roof-segment/definition.render.d.ts +6 -0
- package/dist/roof-segment/definition.render.d.ts.map +1 -0
- package/dist/roof-segment/definition.render.js +61 -0
- package/dist/roof-segment/floorplan-affordances.d.ts.map +1 -1
- package/dist/roof-segment/floorplan-affordances.js +2 -2
- package/dist/roof-segment/paint.d.ts +0 -1
- package/dist/roof-segment/paint.d.ts.map +1 -1
- package/dist/roof-segment/paint.js +0 -1
- package/dist/roof-segment/panel.d.ts.map +1 -1
- package/dist/roof-segment/panel.js +32 -34
- package/dist/roof-segment/parametrics.d.ts.map +1 -1
- package/dist/roof-segment/parametrics.js +13 -11
- package/dist/roof-segment/slots.d.ts +2 -0
- package/dist/roof-segment/slots.d.ts.map +1 -0
- package/dist/roof-segment/slots.js +1 -0
- package/dist/scan/definition.d.ts +57 -7
- package/dist/scan/definition.d.ts.map +1 -1
- package/dist/scan/definition.edit.d.ts +4 -0
- package/dist/scan/definition.edit.d.ts.map +1 -0
- package/dist/scan/definition.edit.js +4 -0
- package/dist/scan/definition.js +4 -52
- package/dist/scan/definition.render.d.ts +6 -0
- package/dist/scan/definition.render.d.ts.map +1 -0
- package/dist/scan/definition.render.js +46 -0
- package/dist/separator/definition.d.ts +47 -2
- package/dist/separator/definition.d.ts.map +1 -1
- package/dist/separator/definition.edit.d.ts +4 -0
- package/dist/separator/definition.edit.d.ts.map +1 -0
- package/dist/separator/definition.edit.js +11 -0
- package/dist/separator/definition.js +4 -37
- package/dist/separator/definition.render.d.ts +6 -0
- package/dist/separator/definition.render.d.ts.map +1 -0
- package/dist/separator/definition.render.js +29 -0
- package/dist/separator/floorplan.js +1 -1
- package/dist/separator/renderer.d.ts +2 -1
- package/dist/separator/renderer.d.ts.map +1 -1
- package/dist/separator/renderer.edit.d.ts +5 -0
- package/dist/separator/renderer.edit.d.ts.map +1 -0
- package/dist/separator/renderer.edit.js +8 -0
- package/dist/separator/renderer.js +3 -5
- package/dist/separator/selection.d.ts.map +1 -1
- package/dist/separator/selection.js +2 -2
- package/dist/shared/accessory-placement.js +1 -1
- package/dist/shared/auto-fitting.js +1 -1
- package/dist/shared/auto-offset-tag.d.ts +1 -1
- package/dist/shared/auto-offset-tag.d.ts.map +1 -1
- package/dist/shared/auto-offset-tag.js +3 -1
- package/dist/shared/automatic-run-end-cap.d.ts +5 -0
- package/dist/shared/automatic-run-end-cap.d.ts.map +1 -1
- package/dist/shared/automatic-run-end-cap.js +17 -9
- package/dist/shared/connection-feedback.d.ts +6 -3
- package/dist/shared/connection-feedback.d.ts.map +1 -1
- package/dist/shared/connection-feedback.js +29 -6
- package/dist/shared/curtain-opening-limits.d.ts.map +1 -1
- package/dist/shared/curtain-opening-limits.js +2 -3
- package/dist/shared/draft-axis-guides.d.ts.map +1 -1
- package/dist/shared/draft-axis-guides.js +2 -1
- package/dist/shared/duct-adapter.js +1 -1
- package/dist/shared/duct-collar-inspector.d.ts +5 -0
- package/dist/shared/duct-collar-inspector.d.ts.map +1 -0
- package/dist/shared/duct-collar-inspector.js +36 -0
- package/dist/shared/follower-frames.d.ts +15 -0
- package/dist/shared/follower-frames.d.ts.map +1 -0
- package/dist/shared/follower-frames.js +36 -0
- package/dist/shared/handle-drag-scope.d.ts +14 -0
- package/dist/shared/handle-drag-scope.d.ts.map +1 -0
- package/dist/shared/handle-drag-scope.js +36 -0
- package/dist/shared/hosted-resize.d.ts +3 -1
- package/dist/shared/hosted-resize.d.ts.map +1 -1
- package/dist/shared/hosted-resize.js +10 -8
- package/dist/shared/live-preview.d.ts +16 -0
- package/dist/shared/live-preview.d.ts.map +1 -0
- package/dist/shared/live-preview.js +36 -0
- package/dist/shared/opening-documentation.d.ts +1 -1
- package/dist/shared/opening-documentation.d.ts.map +1 -1
- package/dist/shared/opening-documentation.js +1 -2
- package/dist/shared/opening-guides-runtime.d.ts.map +1 -1
- package/dist/shared/opening-guides-runtime.js +2 -2
- package/dist/shared/opening-placement-dimensions.d.ts.map +1 -1
- package/dist/shared/opening-placement-dimensions.js +2 -3
- package/dist/shared/path-point-affordance.d.ts.map +1 -1
- package/dist/shared/path-point-affordance.js +19 -24
- package/dist/shared/path-segment-affordance.d.ts +2 -1
- package/dist/shared/path-segment-affordance.d.ts.map +1 -1
- package/dist/shared/path-segment-affordance.js +11 -8
- package/dist/shared/pipe-collar-inspector.d.ts +5 -0
- package/dist/shared/pipe-collar-inspector.d.ts.map +1 -0
- package/dist/shared/pipe-collar-inspector.js +27 -0
- package/dist/shared/refrigerant-line-selection.d.ts.map +1 -1
- package/dist/shared/refrigerant-line-selection.js +46 -29
- package/dist/shared/relative-roof-drag.d.ts.map +1 -1
- package/dist/shared/relative-roof-drag.js +5 -4
- package/dist/shared/roof-surface.d.ts.map +1 -1
- package/dist/shared/roof-surface.js +2 -0
- package/dist/shared/run-hangers.d.ts.map +1 -1
- package/dist/shared/run-hangers.js +2 -2
- package/dist/shared/run-move-connectivity.d.ts +15 -6
- package/dist/shared/run-move-connectivity.d.ts.map +1 -1
- package/dist/shared/run-move-connectivity.js +14 -5
- package/dist/shared/run-tool-options.d.ts +8 -0
- package/dist/shared/run-tool-options.d.ts.map +1 -0
- package/dist/shared/run-tool-options.js +166 -0
- package/dist/shared/system-checks.d.ts.map +1 -1
- package/dist/shared/system-checks.js +2 -1
- package/dist/shared/vertical-offset.js +1 -1
- package/dist/shared/wall-opening-ceiling.d.ts +6 -0
- package/dist/shared/wall-opening-ceiling.d.ts.map +1 -1
- package/dist/shared/wall-opening-ceiling.js +36 -7
- package/dist/shelf/definition.d.ts +108 -3
- package/dist/shelf/definition.d.ts.map +1 -1
- package/dist/shelf/definition.edit.d.ts +4 -0
- package/dist/shelf/definition.edit.d.ts.map +1 -0
- package/dist/shelf/definition.edit.js +153 -0
- package/dist/shelf/definition.js +4 -272
- package/dist/shelf/definition.render.d.ts +6 -0
- package/dist/shelf/definition.render.d.ts.map +1 -0
- package/dist/shelf/definition.render.js +124 -0
- package/dist/site/definition.d.ts +312 -9
- package/dist/site/definition.d.ts.map +1 -1
- package/dist/site/definition.edit.d.ts +4 -0
- package/dist/site/definition.edit.d.ts.map +1 -0
- package/dist/site/definition.edit.js +4 -0
- package/dist/site/definition.js +4 -55
- package/dist/site/definition.render.d.ts +6 -0
- package/dist/site/definition.render.d.ts.map +1 -0
- package/dist/site/definition.render.js +47 -0
- package/dist/skylight/definition.d.ts +158 -9
- package/dist/skylight/definition.d.ts.map +1 -1
- package/dist/skylight/definition.edit.d.ts +4 -0
- package/dist/skylight/definition.edit.d.ts.map +1 -0
- package/dist/skylight/definition.edit.js +216 -0
- package/dist/skylight/definition.js +4 -271
- package/dist/skylight/definition.render.d.ts +6 -0
- package/dist/skylight/definition.render.d.ts.map +1 -0
- package/dist/skylight/definition.render.js +52 -0
- package/dist/skylight/move-tool.d.ts.map +1 -1
- package/dist/skylight/move-tool.js +7 -5
- package/dist/skylight/panel.js +1 -1
- package/dist/slab/definition.d.ts +289 -20
- package/dist/slab/definition.d.ts.map +1 -1
- package/dist/slab/definition.edit.d.ts +4 -0
- package/dist/slab/definition.edit.d.ts.map +1 -0
- package/dist/slab/definition.edit.js +226 -0
- package/dist/slab/definition.js +4 -334
- package/dist/slab/definition.render.d.ts +6 -0
- package/dist/slab/definition.render.d.ts.map +1 -0
- package/dist/slab/definition.render.js +96 -0
- package/dist/slab/floorplan.d.ts.map +1 -1
- package/dist/slab/floorplan.js +1 -2
- package/dist/slab/panel.js +2 -2
- package/dist/solar-panel/definition.d.ts +145 -14
- package/dist/solar-panel/definition.d.ts.map +1 -1
- package/dist/solar-panel/definition.edit.d.ts +4 -0
- package/dist/solar-panel/definition.edit.d.ts.map +1 -0
- package/dist/solar-panel/definition.edit.js +211 -0
- package/dist/solar-panel/definition.js +4 -263
- package/dist/solar-panel/definition.render.d.ts +6 -0
- package/dist/solar-panel/definition.render.d.ts.map +1 -0
- package/dist/solar-panel/definition.render.js +44 -0
- package/dist/solar-panel/move-tool.d.ts.map +1 -1
- package/dist/solar-panel/move-tool.js +7 -5
- package/dist/spawn/definition.d.ts +48 -3
- package/dist/spawn/definition.d.ts.map +1 -1
- package/dist/spawn/definition.edit.d.ts +4 -0
- package/dist/spawn/definition.edit.d.ts.map +1 -0
- package/dist/spawn/definition.edit.js +55 -0
- package/dist/spawn/definition.js +4 -109
- package/dist/spawn/definition.render.d.ts +6 -0
- package/dist/spawn/definition.render.d.ts.map +1 -0
- package/dist/spawn/definition.render.js +50 -0
- package/dist/stair/definition.d.ts +334 -8
- package/dist/stair/definition.d.ts.map +1 -1
- package/dist/stair/definition.edit.d.ts +4 -0
- package/dist/stair/definition.edit.d.ts.map +1 -0
- package/dist/stair/definition.edit.js +364 -0
- package/dist/stair/definition.js +4 -443
- package/dist/stair/definition.render.d.ts +6 -0
- package/dist/stair/definition.render.d.ts.map +1 -0
- package/dist/stair/definition.render.js +75 -0
- package/dist/stair/documentation.d.ts.map +1 -1
- package/dist/stair/documentation.js +1 -2
- package/dist/stair/floorplan.d.ts.map +1 -1
- package/dist/stair/floorplan.js +1 -2
- package/dist/stair/panel.js +2 -2
- package/dist/stair/plan-entry.d.ts.map +1 -1
- package/dist/stair/plan-entry.js +1 -2
- package/dist/stair/structure-controls.d.ts.map +1 -1
- package/dist/stair/structure-controls.js +2 -2
- package/dist/stair-segment/definition.d.ts +130 -7
- package/dist/stair-segment/definition.d.ts.map +1 -1
- package/dist/stair-segment/definition.edit.d.ts +4 -0
- package/dist/stair-segment/definition.edit.d.ts.map +1 -0
- package/dist/stair-segment/definition.edit.js +135 -0
- package/dist/stair-segment/definition.js +4 -172
- package/dist/stair-segment/definition.render.d.ts +6 -0
- package/dist/stair-segment/definition.render.d.ts.map +1 -0
- package/dist/stair-segment/definition.render.js +38 -0
- package/dist/structural-grid/definition.d.ts +50 -3
- package/dist/structural-grid/definition.d.ts.map +1 -1
- package/dist/structural-grid/definition.edit.d.ts +4 -0
- package/dist/structural-grid/definition.edit.d.ts.map +1 -0
- package/dist/structural-grid/definition.edit.js +16 -0
- package/dist/structural-grid/definition.js +4 -51
- package/dist/structural-grid/definition.render.d.ts +6 -0
- package/dist/structural-grid/definition.render.d.ts.map +1 -0
- package/dist/structural-grid/definition.render.js +37 -0
- package/dist/structural-grid/floorplan.js +1 -1
- package/dist/turbine-vent/definition.d.ts +97 -23
- package/dist/turbine-vent/definition.d.ts.map +1 -1
- package/dist/turbine-vent/definition.edit.d.ts +4 -0
- package/dist/turbine-vent/definition.edit.d.ts.map +1 -0
- package/dist/turbine-vent/definition.edit.js +64 -0
- package/dist/turbine-vent/definition.js +4 -121
- package/dist/turbine-vent/definition.render.d.ts +6 -0
- package/dist/turbine-vent/definition.render.d.ts.map +1 -0
- package/dist/turbine-vent/definition.render.js +42 -0
- package/dist/turbine-vent/move-tool.d.ts.map +1 -1
- package/dist/turbine-vent/move-tool.js +6 -5
- package/dist/unit/definition.d.ts +53 -9
- package/dist/unit/definition.d.ts.map +1 -1
- package/dist/unit/definition.edit.d.ts +4 -0
- package/dist/unit/definition.edit.d.ts.map +1 -0
- package/dist/unit/definition.edit.js +4 -0
- package/dist/unit/definition.js +4 -38
- package/dist/unit/definition.render.d.ts +6 -0
- package/dist/unit/definition.render.d.ts.map +1 -0
- package/dist/unit/definition.render.js +30 -0
- package/dist/unit/unit-panel.d.ts.map +1 -1
- package/dist/unit/unit-panel.js +2 -2
- package/dist/wall/contextual-dimensions.d.ts.map +1 -1
- package/dist/wall/contextual-dimensions.js +1 -2
- package/dist/wall/curtain-wall-panel.d.ts.map +1 -1
- package/dist/wall/curtain-wall-panel.js +2 -2
- package/dist/wall/definition.d.ts +809 -3
- package/dist/wall/definition.d.ts.map +1 -1
- package/dist/wall/definition.edit.d.ts +4 -0
- package/dist/wall/definition.edit.d.ts.map +1 -0
- package/dist/wall/definition.edit.js +179 -0
- package/dist/wall/definition.js +4 -279
- package/dist/wall/definition.render.d.ts +6 -0
- package/dist/wall/definition.render.d.ts.map +1 -0
- package/dist/wall/definition.render.js +105 -0
- package/dist/wall/floorplan.d.ts.map +1 -1
- package/dist/wall/floorplan.js +2 -3
- package/dist/wall/measurement.d.ts.map +1 -1
- package/dist/wall/measurement.js +22 -5
- package/dist/wall/move-endpoint-tool.d.ts.map +1 -1
- package/dist/wall/move-endpoint-tool.js +3 -3
- package/dist/wall/move-shared.js +1 -1
- package/dist/wall/panel-model.d.ts.map +1 -1
- package/dist/wall/panel-model.js +4 -3
- package/dist/wall/panel.d.ts.map +1 -1
- package/dist/wall/panel.js +15 -6
- package/dist/wall/quick-measurement.js +1 -1
- package/dist/wall/rectangle-command.d.ts +1 -0
- package/dist/wall/rectangle-command.d.ts.map +1 -1
- package/dist/wall/rectangle-tool.js +2 -2
- package/dist/wall/split-floorplan-layer.d.ts.map +1 -1
- package/dist/wall/split-floorplan-layer.js +2 -2
- package/dist/wall/split-tool.d.ts.map +1 -1
- package/dist/wall/split-tool.js +2 -2
- package/dist/wall/tool.d.ts.map +1 -1
- package/dist/wall/tool.js +138 -36
- package/dist/wall/treatments.d.ts.map +1 -1
- package/dist/wall/treatments.js +36 -16
- package/dist/window/definition.d.ts +356 -15
- package/dist/window/definition.d.ts.map +1 -1
- package/dist/window/definition.edit.d.ts +4 -0
- package/dist/window/definition.edit.d.ts.map +1 -0
- package/dist/window/definition.edit.js +250 -0
- package/dist/window/definition.js +5 -338
- package/dist/window/definition.render.d.ts +8 -0
- package/dist/window/definition.render.d.ts.map +1 -0
- package/dist/window/definition.render.js +89 -0
- package/dist/window/floorplan-move.d.ts.map +1 -1
- package/dist/window/floorplan-move.js +7 -4
- package/dist/window/floorplan.d.ts.map +1 -1
- package/dist/window/floorplan.js +1 -2
- package/dist/window/mechanism.js +1 -1
- package/dist/window/move-tool.d.ts.map +1 -1
- package/dist/window/move-tool.js +7 -11
- package/dist/window/tool.d.ts.map +1 -1
- package/dist/window/tool.js +5 -2
- package/dist/zone/contextual-dimensions.d.ts.map +1 -1
- package/dist/zone/contextual-dimensions.js +1 -2
- package/dist/zone/definition.d.ts +264 -9
- package/dist/zone/definition.d.ts.map +1 -1
- package/dist/zone/definition.edit.d.ts +4 -0
- package/dist/zone/definition.edit.d.ts.map +1 -0
- package/dist/zone/definition.edit.js +36 -0
- package/dist/zone/definition.js +4 -97
- package/dist/zone/definition.render.d.ts +6 -0
- package/dist/zone/definition.render.d.ts.map +1 -0
- package/dist/zone/definition.render.js +57 -0
- package/dist/zone/floorplan.d.ts.map +1 -1
- package/dist/zone/floorplan.js +1 -2
- package/dist/zone/quantities-panel.d.ts.map +1 -1
- package/dist/zone/quantities-panel.js +2 -2
- package/dist/zone/room-clear-dimensions.d.ts.map +1 -1
- package/dist/zone/room-clear-dimensions.js +1 -2
- package/dist/zone/room-documentation.d.ts +1 -2
- package/dist/zone/room-documentation.d.ts.map +1 -1
- package/dist/zone/room-documentation.js +1 -1
- package/package.json +21 -10
package/dist/column/panel.js
CHANGED
|
@@ -1,54 +1,195 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import {
|
|
4
|
-
import { ActionButton, ActionGroup,
|
|
3
|
+
import { ColumnBaseStyle, ColumnCapitalStyle, ColumnCarvingPlacement, ColumnCrossSection, ColumnPanelShape, ColumnShaftDetail, ColumnShaftProfile, ColumnStyle, scriptImages, useLiveNodeOverrides, usePascalI18n, useScene, } from '@pascal-app/core';
|
|
4
|
+
import { ActionButton, ActionGroup, armMaterialPaint, PanelSection as BasePanelSection, SliderControl as BaseSliderControl, PanelWrapper, ToggleControl, triggerSFX, useEditor, } from '@pascal-app/editor';
|
|
5
5
|
import { useViewer } from '@pascal-app/viewer';
|
|
6
|
-
import { Move, Trash2 } from 'lucide-react';
|
|
7
|
-
import { useCallback } from 'react';
|
|
6
|
+
import { Move, PaintBucket, Trash2 } from 'lucide-react';
|
|
7
|
+
import { useCallback, useEffect, useMemo, useState } from 'react';
|
|
8
8
|
import { AuthoredParams } from '../item/authored-params.js';
|
|
9
|
+
import { isManagedColumn } from './edit-policy.js';
|
|
9
10
|
import { planColumnEdit } from './hosted-resize.js';
|
|
11
|
+
import { ColumnInspectorHover } from './inspector-highlight.js';
|
|
10
12
|
import { FramingPostSection } from './post-section.js';
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
'
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
13
|
+
import { ColumnPresetGallery } from './preset-gallery.js';
|
|
14
|
+
import { columnSectionReset } from './presets.js';
|
|
15
|
+
import { createColumnPropertyPreview } from './property-preview.js';
|
|
16
|
+
function PanelSection({ part, ...props }) {
|
|
17
|
+
return (_jsx("div", { "data-column-part": part, children: _jsx(BasePanelSection, { ...props }) }));
|
|
18
|
+
}
|
|
19
|
+
function SliderControl({ axis, ...props }) {
|
|
20
|
+
return (_jsx("div", { "data-column-axis": axis, children: _jsx(BaseSliderControl, { ...props }) }));
|
|
21
|
+
}
|
|
22
|
+
/** Display names for the column's style, section, profile, detail and part values. */
|
|
23
|
+
const COLUMN_OPTION_LABELS = {
|
|
24
|
+
plain: /* i18n */ { id: 'node.column.panel.plain', message: 'Plain' },
|
|
25
|
+
faceted: /* i18n */ { id: 'node.column.panel.faceted', message: 'Faceted' },
|
|
26
|
+
fluted: /* i18n */ { id: 'node.column.panel.fluted', message: 'Fluted' },
|
|
27
|
+
'lathe-turned': /* i18n */ { id: 'node.column.panel.latheTurned', message: 'Lathe Turned' },
|
|
28
|
+
'dravidian-carved': /* i18n */ {
|
|
29
|
+
id: 'node.column.panel.dravidianCarved',
|
|
30
|
+
message: 'Dravidian Carved',
|
|
31
|
+
},
|
|
32
|
+
cluster: /* i18n */ { id: 'node.column.panel.cluster', message: 'Cluster' },
|
|
33
|
+
round: /* i18n */ { id: 'node.column.panel.round', message: 'Round' },
|
|
34
|
+
square: /* i18n */ { id: 'node.column.panel.square', message: 'Square' },
|
|
35
|
+
rectangular: /* i18n */ { id: 'node.column.panel.rectangular', message: 'Rectangular' },
|
|
36
|
+
octagonal: /* i18n */ { id: 'node.column.panel.octagonal', message: 'Octagonal' },
|
|
37
|
+
'sixteen-sided': /* i18n */ { id: 'node.column.panel.sixteenSided', message: 'Sixteen Sided' },
|
|
38
|
+
straight: /* i18n */ { id: 'node.column.panel.straight', message: 'Straight' },
|
|
39
|
+
tapered: /* i18n */ { id: 'node.column.panel.tapered', message: 'Tapered' },
|
|
40
|
+
bulged: /* i18n */ { id: 'node.column.panel.bulged', message: 'Bulged' },
|
|
41
|
+
baluster: /* i18n */ { id: 'node.column.panel.baluster', message: 'Baluster' },
|
|
42
|
+
hourglass: /* i18n */ { id: 'node.column.panel.hourglass', message: 'Hourglass' },
|
|
43
|
+
none: /* i18n */ { id: 'node.column.panel.none', message: 'None' },
|
|
44
|
+
spiral: /* i18n */ { id: 'node.column.panel.spiral', message: 'Spiral' },
|
|
45
|
+
panelled: /* i18n */ { id: 'node.column.panel.panelled', message: 'Panelled' },
|
|
46
|
+
rectangle: /* i18n */ { id: 'node.column.panel.rectangle', message: 'Rectangle' },
|
|
47
|
+
arched: /* i18n */ { id: 'node.column.panel.arched', message: 'Arched' },
|
|
48
|
+
diamond: /* i18n */ { id: 'node.column.panel.diamond', message: 'Diamond' },
|
|
49
|
+
'simple-square': /* i18n */ { id: 'node.column.panel.simpleSquare', message: 'Simple Square' },
|
|
50
|
+
'round-rings': /* i18n */ { id: 'node.column.panel.roundRings', message: 'Round Rings' },
|
|
51
|
+
'square-plinth': /* i18n */ { id: 'node.column.panel.squarePlinth', message: 'Square Plinth' },
|
|
52
|
+
'stepped-square': /* i18n */ { id: 'node.column.panel.steppedSquare', message: 'Stepped Square' },
|
|
53
|
+
lotus: /* i18n */ { id: 'node.column.panel.lotus', message: 'Lotus' },
|
|
54
|
+
'ribbed-lotus': /* i18n */ { id: 'node.column.panel.ribbedLotus', message: 'Ribbed Lotus' },
|
|
55
|
+
'panelled-pedestal': /* i18n */ {
|
|
56
|
+
id: 'node.column.panel.panelledPedestal',
|
|
57
|
+
message: 'Panelled Pedestal',
|
|
58
|
+
},
|
|
59
|
+
simple: /* i18n */ { id: 'node.column.panel.simple', message: 'Simple' },
|
|
60
|
+
'simple-slab': /* i18n */ { id: 'node.column.panel.simpleSlab', message: 'Simple Slab' },
|
|
61
|
+
rounded: /* i18n */ { id: 'node.column.panel.rounded', message: 'Rounded' },
|
|
62
|
+
stepped: /* i18n */ { id: 'node.column.panel.stepped', message: 'Stepped' },
|
|
63
|
+
doric: /* i18n */ { id: 'node.column.panel.doric', message: 'Doric' },
|
|
64
|
+
volute: /* i18n */ { id: 'node.column.panel.volute', message: 'Volute' },
|
|
65
|
+
'ionic-volute': /* i18n */ { id: 'node.column.panel.ionicVolute', message: 'Ionic Volute' },
|
|
66
|
+
'leaf-carved': /* i18n */ { id: 'node.column.panel.leafCarved', message: 'Leaf Carved' },
|
|
67
|
+
'corinthian-leaf': /* i18n */ {
|
|
68
|
+
id: 'node.column.panel.corinthianLeaf',
|
|
69
|
+
message: 'Corinthian Leaf',
|
|
39
70
|
},
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
id: 'node.column.preset.portalFrameSupport',
|
|
44
|
-
message: 'Portal Frame',
|
|
71
|
+
'south-indian-bracket': /* i18n */ {
|
|
72
|
+
id: 'node.column.panel.southIndianBracket',
|
|
73
|
+
message: 'South Indian Bracket',
|
|
45
74
|
},
|
|
46
|
-
|
|
75
|
+
'wood-bracket': /* i18n */ { id: 'node.column.panel.woodBracket', message: 'Wood Bracket' },
|
|
76
|
+
shaft: /* i18n */ { id: 'node.column.panel.shaft', message: 'Shaft' },
|
|
77
|
+
base: /* i18n */ { id: 'node.column.panel.base', message: 'Base' },
|
|
78
|
+
capital: /* i18n */ { id: 'node.column.panel.capital', message: 'Capital' },
|
|
79
|
+
all: /* i18n */ { id: 'node.column.panel.all', message: 'All' },
|
|
80
|
+
frame: /* i18n */ { id: 'node.column.panel.frame', message: 'Frame' },
|
|
47
81
|
};
|
|
48
|
-
const
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
}
|
|
82
|
+
const detailFields = [
|
|
83
|
+
[
|
|
84
|
+
'fluteCount',
|
|
85
|
+
/* i18n */ { id: 'node.column.panel.fluteCount', message: 'Flute Count' },
|
|
86
|
+
0,
|
|
87
|
+
32,
|
|
88
|
+
1,
|
|
89
|
+
],
|
|
90
|
+
[
|
|
91
|
+
'fluteDepth',
|
|
92
|
+
/* i18n */ { id: 'node.column.panel.fluteDepth', message: 'Flute Depth' },
|
|
93
|
+
0.005,
|
|
94
|
+
0.08,
|
|
95
|
+
0.005,
|
|
96
|
+
],
|
|
97
|
+
[
|
|
98
|
+
'fluteWidth',
|
|
99
|
+
/* i18n */ { id: 'node.column.panel.fluteWidth', message: 'Flute Width' },
|
|
100
|
+
0.005,
|
|
101
|
+
0.1,
|
|
102
|
+
0.005,
|
|
103
|
+
],
|
|
104
|
+
[
|
|
105
|
+
'spiralRibCount',
|
|
106
|
+
/* i18n */ { id: 'node.column.panel.spiralRibCount', message: 'Spiral Ribs' },
|
|
107
|
+
0,
|
|
108
|
+
32,
|
|
109
|
+
1,
|
|
110
|
+
],
|
|
111
|
+
[
|
|
112
|
+
'spiralTwist',
|
|
113
|
+
/* i18n */ { id: 'node.column.panel.spiralTwist', message: 'Spiral Turns' },
|
|
114
|
+
-3,
|
|
115
|
+
3,
|
|
116
|
+
0.1,
|
|
117
|
+
],
|
|
118
|
+
[
|
|
119
|
+
'panelCount',
|
|
120
|
+
/* i18n */ { id: 'node.column.panel.panelCount', message: 'Carved Panels' },
|
|
121
|
+
0,
|
|
122
|
+
24,
|
|
123
|
+
1,
|
|
124
|
+
],
|
|
125
|
+
[
|
|
126
|
+
'panelInsetDepth',
|
|
127
|
+
/* i18n */ { id: 'node.column.panel.panelInsetDepth', message: 'Panel Relief' },
|
|
128
|
+
0,
|
|
129
|
+
0.1,
|
|
130
|
+
0.005,
|
|
131
|
+
],
|
|
132
|
+
[
|
|
133
|
+
'latheRingCount',
|
|
134
|
+
/* i18n */ { id: 'node.column.panel.latheRingCount', message: 'Lathe Rings' },
|
|
135
|
+
0,
|
|
136
|
+
32,
|
|
137
|
+
1,
|
|
138
|
+
],
|
|
139
|
+
['voluteCount', /* i18n */ { id: 'node.column.panel.voluteCount', message: 'Volutes' }, 0, 8, 1],
|
|
140
|
+
[
|
|
141
|
+
'voluteSize',
|
|
142
|
+
/* i18n */ { id: 'node.column.panel.voluteSize', message: 'Volute Size' },
|
|
143
|
+
0.02,
|
|
144
|
+
0.3,
|
|
145
|
+
0.01,
|
|
146
|
+
],
|
|
147
|
+
['leafCount', /* i18n */ { id: 'node.column.panel.leafCount', message: 'Leaves' }, 0, 48, 1],
|
|
148
|
+
['leafRows', /* i18n */ { id: 'node.column.panel.leafRows', message: 'Leaf Rows' }, 0, 4, 1],
|
|
149
|
+
[
|
|
150
|
+
'bracketDepth',
|
|
151
|
+
/* i18n */ { id: 'node.column.panel.bracketDepth', message: 'Bracket Depth' },
|
|
152
|
+
0,
|
|
153
|
+
1.5,
|
|
154
|
+
0.01,
|
|
155
|
+
],
|
|
156
|
+
[
|
|
157
|
+
'bracketTierCount',
|
|
158
|
+
/* i18n */ { id: 'node.column.panel.bracketTierCount', message: 'Bracket Tiers' },
|
|
159
|
+
0,
|
|
160
|
+
8,
|
|
161
|
+
1,
|
|
162
|
+
],
|
|
163
|
+
[
|
|
164
|
+
'pendantCount',
|
|
165
|
+
/* i18n */ { id: 'node.column.panel.pendantCount', message: 'Pendants' },
|
|
166
|
+
0,
|
|
167
|
+
16,
|
|
168
|
+
1,
|
|
169
|
+
],
|
|
170
|
+
[
|
|
171
|
+
'baseRibCount',
|
|
172
|
+
/* i18n */ { id: 'node.column.panel.baseRibCount', message: 'Base Ribs' },
|
|
173
|
+
0,
|
|
174
|
+
48,
|
|
175
|
+
1,
|
|
176
|
+
],
|
|
177
|
+
[
|
|
178
|
+
'baseCarvingLevel',
|
|
179
|
+
/* i18n */ { id: 'node.column.panel.baseCarvingLevel', message: 'Base Carving' },
|
|
180
|
+
0,
|
|
181
|
+
4,
|
|
182
|
+
1,
|
|
183
|
+
],
|
|
184
|
+
[
|
|
185
|
+
'capitalCarvingLevel',
|
|
186
|
+
/* i18n */ { id: 'node.column.panel.capitalCarvingLevel', message: 'Capital Carving' },
|
|
187
|
+
0,
|
|
188
|
+
4,
|
|
189
|
+
1,
|
|
190
|
+
],
|
|
191
|
+
];
|
|
192
|
+
const SELECT_CLASS = 'h-10 w-full rounded-lg border border-border/50 bg-black/4 dark:bg-[#2C2C2E] px-3 text-sm text-foreground outline-none transition-colors hover:bg-black/8 dark:hover:bg-[#3e3e3e] focus:ring-1 focus:ring-border';
|
|
52
193
|
const COLUMN_PROPORTION_PRESETS = {
|
|
53
194
|
slender: {
|
|
54
195
|
label: /* i18n */ { id: 'node.column.panel.slender', message: 'Slender' },
|
|
@@ -95,136 +236,9 @@ const COLUMN_PROPORTION_OPTIONS = Object.entries(COLUMN_PROPORTION_PRESETS).map(
|
|
|
95
236
|
value: value,
|
|
96
237
|
label: preset.label,
|
|
97
238
|
}));
|
|
98
|
-
const SUPPORT_STYLE_OPTIONS = [
|
|
99
|
-
{
|
|
100
|
-
label: /* i18n */ { id: 'node.column.panel.vertical', message: 'Vertical' },
|
|
101
|
-
value: 'vertical',
|
|
102
|
-
},
|
|
103
|
-
{ label: /* i18n */ { id: 'node.column.panel.aFrame', message: 'A-Frame' }, value: 'a-frame' },
|
|
104
|
-
{
|
|
105
|
-
label: /* i18n */ { id: 'node.column.panel.ySupport', message: 'Y Support' },
|
|
106
|
-
value: 'y-frame',
|
|
107
|
-
},
|
|
108
|
-
{
|
|
109
|
-
label: /* i18n */ { id: 'node.column.panel.vSupport', message: 'V Support' },
|
|
110
|
-
value: 'v-frame',
|
|
111
|
-
},
|
|
112
|
-
{ label: /* i18n */ { id: 'node.column.panel.xBrace', message: 'X Brace' }, value: 'x-brace' },
|
|
113
|
-
{ label: /* i18n */ { id: 'node.column.panel.kBrace', message: 'K Brace' }, value: 'k-brace' },
|
|
114
|
-
{
|
|
115
|
-
label: /* i18n */ { id: 'node.column.panel.singleStrut', message: 'Single Strut' },
|
|
116
|
-
value: 'single-strut',
|
|
117
|
-
},
|
|
118
|
-
{ label: /* i18n */ { id: 'node.column.panel.tripod', message: 'Tripod' }, value: 'tripod' },
|
|
119
|
-
{ label: /* i18n */ { id: 'node.column.panel.trestle', message: 'Trestle' }, value: 'trestle' },
|
|
120
|
-
{
|
|
121
|
-
label: /* i18n */ { id: 'node.column.panel.portalFrame', message: 'Portal Frame' },
|
|
122
|
-
value: 'portal-frame',
|
|
123
|
-
},
|
|
124
|
-
{
|
|
125
|
-
label: /* i18n */ { id: 'node.column.panel.boxFrame', message: 'Box Frame' },
|
|
126
|
-
value: 'box-frame',
|
|
127
|
-
},
|
|
128
|
-
];
|
|
129
|
-
// Per-style brace defaults. Values mirror each support's renderer
|
|
130
|
-
// fall-through expressions so switching styles snaps the column to the
|
|
131
|
-
// shape that style was designed around — e.g. an A-frame opens wide at
|
|
132
|
-
// the foot and pinches at the top, an X-brace runs parallel legs, a
|
|
133
|
-
// tripod's "bottomSpread" / "topSpread" double as its X-span / Z-span.
|
|
134
|
-
// Without these, a user who customised one style (say A-frame bottom =
|
|
135
|
-
// 2.0) then switched to Y-frame would carry that 2.0 around in state
|
|
136
|
-
// even though Y-frame doesn't use it — and switching back to X-brace
|
|
137
|
-
// would inherit the leftover 0.12 top from A-frame, making the X look
|
|
138
|
-
// pinched.
|
|
139
|
-
const SUPPORT_STYLE_DEFAULTS = {
|
|
140
|
-
'a-frame': {
|
|
141
|
-
braceBottomSpread: 1.4,
|
|
142
|
-
braceTopSpread: 0.12,
|
|
143
|
-
braceWidth: 0.16,
|
|
144
|
-
braceDepth: 0.16,
|
|
145
|
-
},
|
|
146
|
-
'y-frame': {
|
|
147
|
-
braceBottomSpread: 0.2,
|
|
148
|
-
braceTopSpread: 0.9,
|
|
149
|
-
braceWidth: 0.16,
|
|
150
|
-
braceDepth: 0.16,
|
|
151
|
-
},
|
|
152
|
-
'v-frame': {
|
|
153
|
-
braceBottomSpread: 0.2,
|
|
154
|
-
braceTopSpread: 1.0,
|
|
155
|
-
braceWidth: 0.16,
|
|
156
|
-
braceDepth: 0.16,
|
|
157
|
-
},
|
|
158
|
-
'x-brace': {
|
|
159
|
-
braceBottomSpread: 1.0,
|
|
160
|
-
braceTopSpread: 1.0,
|
|
161
|
-
braceWidth: 0.14,
|
|
162
|
-
braceDepth: 0.14,
|
|
163
|
-
},
|
|
164
|
-
'k-brace': {
|
|
165
|
-
braceBottomSpread: 1.0,
|
|
166
|
-
braceTopSpread: 1.0,
|
|
167
|
-
braceWidth: 0.14,
|
|
168
|
-
braceDepth: 0.14,
|
|
169
|
-
},
|
|
170
|
-
'single-strut': {
|
|
171
|
-
braceBottomSpread: 0.6,
|
|
172
|
-
braceTopSpread: 0.6,
|
|
173
|
-
braceWidth: 0.12,
|
|
174
|
-
braceDepth: 0.12,
|
|
175
|
-
},
|
|
176
|
-
tripod: {
|
|
177
|
-
// bottomSpread = X span, topSpread = Z span (tripod's three legs).
|
|
178
|
-
braceBottomSpread: 1.1,
|
|
179
|
-
braceTopSpread: 1.1,
|
|
180
|
-
braceWidth: 0.12,
|
|
181
|
-
braceDepth: 0.12,
|
|
182
|
-
},
|
|
183
|
-
trestle: {
|
|
184
|
-
braceBottomSpread: 1.2,
|
|
185
|
-
braceTopSpread: 1.0,
|
|
186
|
-
braceWidth: 0.16,
|
|
187
|
-
braceDepth: 0.16,
|
|
188
|
-
},
|
|
189
|
-
'portal-frame': {
|
|
190
|
-
braceBottomSpread: 1.4,
|
|
191
|
-
braceTopSpread: 1.0,
|
|
192
|
-
braceWidth: 0.16,
|
|
193
|
-
braceDepth: 0.16,
|
|
194
|
-
},
|
|
195
|
-
'box-frame': {
|
|
196
|
-
// bottomSpread = X span, topSpread = Z span (rectangular footprint).
|
|
197
|
-
braceBottomSpread: 1.4,
|
|
198
|
-
braceTopSpread: 1.0,
|
|
199
|
-
braceWidth: 0.16,
|
|
200
|
-
braceDepth: 0.16,
|
|
201
|
-
},
|
|
202
|
-
};
|
|
203
239
|
function clamp(value, min, max) {
|
|
204
240
|
return Math.min(max, Math.max(min, value));
|
|
205
241
|
}
|
|
206
|
-
function isManagedLeanToPost(node) {
|
|
207
|
-
const metadata = node.metadata;
|
|
208
|
-
if (!metadata || typeof metadata !== 'object' || Array.isArray(metadata))
|
|
209
|
-
return false;
|
|
210
|
-
const record = metadata;
|
|
211
|
-
return record.managedByLeanTo !== undefined && record.leanToRole === 'post';
|
|
212
|
-
}
|
|
213
|
-
function filterManagedLeanToLayoutUpdates(updates) {
|
|
214
|
-
const filtered = { ...updates };
|
|
215
|
-
for (const key of MANAGED_LEAN_TO_LAYOUT_FIELDS) {
|
|
216
|
-
delete filtered[key];
|
|
217
|
-
}
|
|
218
|
-
return filtered;
|
|
219
|
-
}
|
|
220
|
-
function presetUpdates(presetId) {
|
|
221
|
-
const { label, ...preset } = COLUMN_PRESETS[presetId];
|
|
222
|
-
return {
|
|
223
|
-
name: label,
|
|
224
|
-
supportStyle: 'supportStyle' in preset ? preset.supportStyle : 'vertical',
|
|
225
|
-
...preset,
|
|
226
|
-
};
|
|
227
|
-
}
|
|
228
242
|
function proportionUpdates(node, presetId) {
|
|
229
243
|
const preset = COLUMN_PROPORTION_PRESETS[presetId];
|
|
230
244
|
const depth = node.crossSection === 'rectangular'
|
|
@@ -257,7 +271,7 @@ function shaftProfileUpdates(shaftProfile) {
|
|
|
257
271
|
shaftSegmentCount: 32,
|
|
258
272
|
};
|
|
259
273
|
}
|
|
260
|
-
if (shaftProfile === 'bulged') {
|
|
274
|
+
if (shaftProfile === 'bulged' || shaftProfile === 'baluster') {
|
|
261
275
|
return {
|
|
262
276
|
shaftProfile,
|
|
263
277
|
shaftTaper: 0,
|
|
@@ -295,17 +309,34 @@ export default function ColumnPanel() {
|
|
|
295
309
|
const updateNodes = useScene((s) => s.updateNodes);
|
|
296
310
|
const deleteNode = useScene((s) => s.deleteNode);
|
|
297
311
|
const setMovingNode = useEditor((s) => s.setMovingNode);
|
|
298
|
-
const
|
|
312
|
+
const storedNode = useScene((s) => selectedId ? s.nodes[selectedId] : undefined);
|
|
313
|
+
const overrides = useLiveNodeOverrides((s) => selectedId ? s.overrides.get(selectedId) : undefined);
|
|
314
|
+
const [previewingPreset, setPreviewingPreset] = useState(false);
|
|
315
|
+
const node = storedNode && overrides && !previewingPreset
|
|
316
|
+
? { ...storedNode, ...overrides }
|
|
317
|
+
: storedNode;
|
|
318
|
+
const preview = useMemo(() => (selectedId ? createColumnPropertyPreview(selectedId) : null), [selectedId]);
|
|
319
|
+
useEffect(() => () => preview?.cancel(), [preview]);
|
|
320
|
+
const previewProp = useCallback((updates) => preview?.preview(updates), [preview]);
|
|
321
|
+
const commitPreview = useCallback(() => preview?.commit(), [preview]);
|
|
322
|
+
const cancelPreview = useCallback(() => preview?.cancel(), [preview]);
|
|
323
|
+
const previewPreset = useCallback((updates) => {
|
|
324
|
+
// Presets preview the scene, while controls keep the committed shape's layout.
|
|
325
|
+
setPreviewingPreset(true);
|
|
326
|
+
preview?.preview(updates);
|
|
327
|
+
}, [preview]);
|
|
328
|
+
const cancelPresetPreview = useCallback(() => {
|
|
329
|
+
preview?.cancel();
|
|
330
|
+
setPreviewingPreset(false);
|
|
331
|
+
}, [preview]);
|
|
299
332
|
const handleUpdate = useCallback((updates) => {
|
|
300
333
|
if (!selectedId)
|
|
301
334
|
return;
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
return;
|
|
305
|
-
const updatesToApply = planColumnEdit(selectedId, nextUpdates);
|
|
335
|
+
preview?.cancel();
|
|
336
|
+
const updatesToApply = planColumnEdit(selectedId, updates);
|
|
306
337
|
if (updatesToApply)
|
|
307
338
|
updateNodes(updatesToApply.map(([id, data]) => ({ id, data })));
|
|
308
|
-
}, [
|
|
339
|
+
}, [selectedId, updateNodes, preview]);
|
|
309
340
|
const handleClose = useCallback(() => {
|
|
310
341
|
setSelection({ selectedIds: [] });
|
|
311
342
|
}, [setSelection]);
|
|
@@ -317,7 +348,7 @@ export default function ColumnPanel() {
|
|
|
317
348
|
setSelection({ selectedIds: [] });
|
|
318
349
|
}, [deleteNode, selectedId, setSelection]);
|
|
319
350
|
const handleMove = useCallback(() => {
|
|
320
|
-
if (!node)
|
|
351
|
+
if (!node || isManagedColumn(node))
|
|
321
352
|
return;
|
|
322
353
|
triggerSFX('sfx:item-pick');
|
|
323
354
|
setMovingNode(node);
|
|
@@ -326,8 +357,10 @@ export default function ColumnPanel() {
|
|
|
326
357
|
if (!(node && node.type === 'column' && selectedId && selectedCount === 1))
|
|
327
358
|
return null;
|
|
328
359
|
const shaftProfile = node.shaftProfile ?? 'straight';
|
|
360
|
+
const radialSection = ['round', 'octagonal', 'sixteen-sided'].includes(node.crossSection);
|
|
361
|
+
const spatialFrame = ['tripod', 'trestle', 'box-frame'].includes(node.supportStyle);
|
|
329
362
|
const supportStyle = node.supportStyle ?? 'vertical';
|
|
330
|
-
const managedByLeanTo =
|
|
363
|
+
const managedByLeanTo = isManagedColumn(node);
|
|
331
364
|
const isBraceSupport = supportStyle === 'a-frame' ||
|
|
332
365
|
supportStyle === 'y-frame' ||
|
|
333
366
|
supportStyle === 'v-frame' ||
|
|
@@ -338,201 +371,256 @@ export default function ColumnPanel() {
|
|
|
338
371
|
supportStyle === 'trestle' ||
|
|
339
372
|
supportStyle === 'portal-frame' ||
|
|
340
373
|
supportStyle === 'box-frame';
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
},
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
{
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
: 'text-muted-foreground/80'), children: option.icon }), _jsx("span", { className: "font-medium text-[11px] leading-none tracking-wide", children: option.label })] }, option.value));
|
|
395
|
-
}) }), _jsx(SliderControl, { label: i18n._({ id: 'node.column.panel.edgeSoftness', message: 'Edge Softness' }), max: 0.12, min: 0, onChange: (value) => handleUpdate({ edgeSoftness: value }), precision: 3, step: 0.005, unit: "m", value: node.edgeSoftness ?? 0.025 }), (node.crossSection === 'square' || node.crossSection === 'rectangular') && (_jsx(SliderControl, { label: i18n._({
|
|
396
|
-
id: 'node.column.panel.shaftCornerRadius',
|
|
397
|
-
message: 'Shaft Corner Radius',
|
|
398
|
-
}), max: 0.3, min: 0, onChange: (value) => handleUpdate({ shaftCornerRadius: value }), precision: 3, step: 0.005, unit: "m", value: node.shaftCornerRadius ?? 0.035 }))] }))] }), _jsxs(PanelSection, { title: i18n._({ id: 'node.column.panel.dimensions', message: 'Dimensions' }), children: [managedByLeanTo && (_jsx("p", { className: "px-1 pt-1 text-muted-foreground text-xs leading-relaxed", children: i18n._({
|
|
399
|
-
id: 'node.column.panel.heightAndFootprintAreControlledBy',
|
|
400
|
-
message: 'Height and footprint are controlled by the lean-to extension. Rotate or change the support style here; resize from the parent lean-to.',
|
|
401
|
-
}) })), !isBraceSupport && !managedByLeanTo && (_jsxs("select", { className: SELECT_CLASS, onChange: (event) => {
|
|
402
|
-
if (!event.target.value)
|
|
403
|
-
return;
|
|
404
|
-
handleUpdate(proportionUpdates(node, event.target.value));
|
|
405
|
-
}, value: "", children: [_jsx("option", { value: "", children: i18n._({
|
|
406
|
-
id: 'node.column.panel.applyProportion',
|
|
407
|
-
message: 'Apply proportion...',
|
|
408
|
-
}) }), COLUMN_PROPORTION_OPTIONS.map((option) => (_jsx("option", { value: option.value, children: i18n._(option.label) }, option.value)))] })), !managedByLeanTo && (_jsx(SliderControl, { label: i18n._({ id: 'node.column.panel.height', message: 'Height' }), max: 1000, min: 0.8, onChange: (value) => handleUpdate({ height: value }), precision: 2, step: 0.05, unit: "m", value: node.height })), isBraceSupport ? (_jsxs(_Fragment, { children: [(supportStyle === 'a-frame' ||
|
|
409
|
-
supportStyle === 'x-brace' ||
|
|
410
|
-
supportStyle === 'k-brace' ||
|
|
411
|
-
supportStyle === 'single-strut' ||
|
|
412
|
-
supportStyle === 'tripod' ||
|
|
413
|
-
supportStyle === 'trestle' ||
|
|
414
|
-
supportStyle === 'portal-frame' ||
|
|
415
|
-
supportStyle === 'box-frame') && (_jsx(SliderControl, { label: i18n._({
|
|
416
|
-
id: 'node.column.panel.bottomSpread',
|
|
417
|
-
message: 'Bottom Spread',
|
|
418
|
-
}), max: 1000, min: 0.2, onChange: (value) => handleUpdate({
|
|
419
|
-
braceBottomSpread: value,
|
|
420
|
-
braceTopSpread: supportStyle === 'a-frame'
|
|
421
|
-
? Math.min(node.braceTopSpread ?? 0.12, value)
|
|
422
|
-
: (node.braceTopSpread ?? 1),
|
|
423
|
-
}), precision: 2, step: 0.05, unit: "m", value: node.braceBottomSpread ?? 1.2 })), _jsx(SliderControl, { label: supportStyle === 'y-frame'
|
|
424
|
-
? i18n._({ id: 'node.column.panel.forkSpread', message: 'Fork Spread' })
|
|
425
|
-
: i18n._({ id: 'node.column.panel.topSpread', message: 'Top Spread' }), max: supportStyle === 'y-frame' ||
|
|
426
|
-
supportStyle === 'v-frame' ||
|
|
374
|
+
const renderDetails = (fields) => fields.map(([field, label, min, max, step]) => (_jsx(SliderControl, { label: i18n._(label), min: min, max: max, step: step, precision: step === 1 ? 0 : 3, unit: field === 'spiralTwist' ? 'turns' : step === 1 ? '' : 'm', value: node[field], onChange: (value) => previewProp({ [field]: value }), onCommit: commitPreview, onCancel: cancelPreview, restoreOnCommit: false }, field)));
|
|
375
|
+
const hasPanels = node.panelCount > 0 || node.style === 'dravidian-carved' || node.shaftDetail === 'panelled';
|
|
376
|
+
const shaftFields = detailFields.filter(([field]) => {
|
|
377
|
+
if (field.startsWith('flute'))
|
|
378
|
+
return node.crossSection === 'round' && (node.fluteCount > 0 || node.shaftDetail === 'fluted');
|
|
379
|
+
if (field.startsWith('spiral'))
|
|
380
|
+
return node.spiralRibCount > 0 || node.shaftDetail === 'spiral';
|
|
381
|
+
if (field.startsWith('panel'))
|
|
382
|
+
return hasPanels;
|
|
383
|
+
if (field === 'latheRingCount')
|
|
384
|
+
return node.latheRingCount > 0 || node.shaftDetail === 'lathe-turned';
|
|
385
|
+
return false;
|
|
386
|
+
});
|
|
387
|
+
const capitalFields = detailFields.filter(([field]) => {
|
|
388
|
+
if (node.capitalStyle === 'none')
|
|
389
|
+
return false;
|
|
390
|
+
if (field.startsWith('volute'))
|
|
391
|
+
return ['volute', 'ionic-volute'].includes(node.capitalStyle);
|
|
392
|
+
if (field.startsWith('leaf'))
|
|
393
|
+
return ['leaf-carved', 'corinthian-leaf'].includes(node.capitalStyle);
|
|
394
|
+
if (field.startsWith('bracket') || field === 'pendantCount')
|
|
395
|
+
return ['south-indian-bracket', 'wood-bracket'].includes(node.capitalStyle);
|
|
396
|
+
return field === 'capitalCarvingLevel' && ['capital', 'all'].includes(node.carvingPlacement);
|
|
397
|
+
});
|
|
398
|
+
const baseFields = detailFields.filter(([field]) => node.baseStyle !== 'none' &&
|
|
399
|
+
((field === 'baseRibCount' && ['lotus', 'ribbed-lotus'].includes(node.baseStyle)) ||
|
|
400
|
+
(field === 'baseCarvingLevel' && ['base', 'all'].includes(node.carvingPlacement))));
|
|
401
|
+
return (_jsx(PanelWrapper, { icon: scriptImages(node)?.thumbnail ?? '/icons/column.webp', onClose: handleClose, title: node.name || i18n._({ id: 'node.column.panel.column', message: 'Column' }), width: 300, children: _jsxs(ColumnInspectorHover, { nodeId: selectedId, children: [node.role === 'post' ? (_jsx(FramingPostSection, { node: node, onUpdate: handleUpdate })) : node.source ? (_jsx("div", { "data-column-part": "all", children: _jsx(AuthoredParams, { node: node }) })) : (_jsxs(_Fragment, { children: [_jsxs(PanelSection, { part: "all", title: i18n._({ id: 'node.column.panel.shape', message: 'Shape' }), children: [_jsx("button", { type: "button", className: "self-end text-xs text-muted-foreground hover:text-foreground", onClick: () => handleUpdate(columnSectionReset('Shape')), children: i18n._({ id: 'node.column.panel.resetShape', message: 'Reset shape' }) }), _jsx(ColumnPresetGallery, { node: node, onPreview: previewPreset, onCancel: cancelPresetPreview, onApply: handleUpdate }), !isBraceSupport && (_jsxs(_Fragment, { children: [_jsx("p", { className: "text-xs text-muted-foreground", children: i18n._({ id: 'node.column.panel.style', message: 'Style' }) }), _jsx("select", { "aria-label": i18n._({
|
|
402
|
+
id: 'node.column.panel.columnStyle',
|
|
403
|
+
message: 'Column style',
|
|
404
|
+
}), className: SELECT_CLASS, value: node.style, onChange: (event) => handleUpdate({ style: ColumnStyle.parse(event.target.value) }), children: ColumnStyle.options.map((value) => (_jsx("option", { value: value, children: i18n._(COLUMN_OPTION_LABELS[value]) }, value))) }), _jsx("p", { className: "text-xs text-muted-foreground", children: i18n._({ id: 'node.column.panel.crossSection', message: 'Cross section' }) }), _jsx("select", { "aria-label": i18n._({
|
|
405
|
+
id: 'node.column.panel.crossSection',
|
|
406
|
+
message: 'Cross section',
|
|
407
|
+
}), className: SELECT_CLASS, value: node.crossSection, onChange: (event) => handleUpdate({ crossSection: ColumnCrossSection.parse(event.target.value) }), children: ColumnCrossSection.options.map((value) => (_jsx("option", { value: value, children: i18n._(COLUMN_OPTION_LABELS[value]) }, value))) }), _jsx(SliderControl, { onCommit: commitPreview, onCancel: cancelPreview, restoreOnCommit: false, label: i18n._({
|
|
408
|
+
id: 'node.column.panel.edgeSoftness',
|
|
409
|
+
message: 'Edge Softness',
|
|
410
|
+
}), max: 0.12, min: 0, onChange: (value) => previewProp({ edgeSoftness: value }), precision: 3, step: 0.005, unit: "m", value: node.edgeSoftness ?? 0.025 }), (node.crossSection === 'square' || node.crossSection === 'rectangular') && (_jsx(SliderControl, { onCommit: commitPreview, onCancel: cancelPreview, restoreOnCommit: false, label: i18n._({
|
|
411
|
+
id: 'node.column.panel.shaftCornerRadius',
|
|
412
|
+
message: 'Shaft Corner Radius',
|
|
413
|
+
}), max: 0.3, min: 0, onChange: (value) => previewProp({ shaftCornerRadius: value }), precision: 3, step: 0.005, unit: "m", value: node.shaftCornerRadius ?? 0.035 }))] }))] }), _jsxs(PanelSection, { part: "all", title: i18n._({ id: 'node.column.panel.size', message: 'Size' }), children: [_jsx("button", { type: "button", className: "self-end text-xs text-muted-foreground hover:text-foreground", onClick: () => handleUpdate(columnSectionReset('Size')), children: i18n._({ id: 'node.column.panel.resetSize', message: 'Reset size' }) }), isBraceSupport && (_jsxs(_Fragment, { children: [_jsx(SliderControl, { onCommit: commitPreview, onCancel: cancelPreview, restoreOnCommit: false, label: i18n._({ id: 'node.column.panel.memberWidth', message: 'Member Width' }), axis: "x", max: 1000, min: 0.04, onChange: (value) => previewProp({ braceWidth: value, width: value }), precision: 2, step: 0.01, unit: "m", value: node.braceWidth ?? node.width }), _jsx(SliderControl, { onCommit: commitPreview, onCancel: cancelPreview, restoreOnCommit: false, label: i18n._({ id: 'node.column.panel.memberDepth', message: 'Member Depth' }), axis: "z", max: 1000, min: 0.04, onChange: (value) => previewProp({ braceDepth: value, depth: value }), precision: 2, step: 0.01, unit: "m", value: node.braceDepth ?? node.depth })] })), managedByLeanTo && (_jsx("p", { className: "px-1 pt-1 text-muted-foreground text-xs leading-relaxed", children: i18n._({
|
|
414
|
+
id: 'node.column.panel.heightAndFootprintAreControlledBy',
|
|
415
|
+
message: 'Height and footprint are controlled by the lean-to extension. Rotate or change the support style here; resize from the parent lean-to.',
|
|
416
|
+
}) })), !isBraceSupport && !managedByLeanTo && (_jsxs("select", { "aria-label": i18n._({
|
|
417
|
+
id: 'node.column.panel.columnProportions',
|
|
418
|
+
message: 'Column proportions',
|
|
419
|
+
}), className: SELECT_CLASS, onChange: (event) => {
|
|
420
|
+
if (!event.target.value)
|
|
421
|
+
return;
|
|
422
|
+
handleUpdate(proportionUpdates(node, event.target.value));
|
|
423
|
+
}, value: "", children: [_jsx("option", { value: "", children: i18n._({
|
|
424
|
+
id: 'node.column.panel.applyProportion',
|
|
425
|
+
message: 'Apply proportion...',
|
|
426
|
+
}) }), COLUMN_PROPORTION_OPTIONS.map((option) => (_jsx("option", { value: option.value, children: i18n._(option.label) }, option.value)))] })), !managedByLeanTo && (_jsx(SliderControl, { onCommit: commitPreview, onCancel: cancelPreview, restoreOnCommit: false, label: i18n._({ id: 'node.column.panel.height', message: 'Height' }), axis: "y", max: 1000, min: 0.2, onChange: (value) => previewProp({ height: value }), precision: 2, step: 0.05, unit: "m", value: node.height })), isBraceSupport ? (_jsxs(_Fragment, { children: [(supportStyle === 'a-frame' ||
|
|
427
427
|
supportStyle === 'x-brace' ||
|
|
428
428
|
supportStyle === 'k-brace' ||
|
|
429
429
|
supportStyle === 'single-strut' ||
|
|
430
430
|
supportStyle === 'tripod' ||
|
|
431
431
|
supportStyle === 'trestle' ||
|
|
432
|
-
supportStyle === '
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
432
|
+
supportStyle === 'portal-frame' ||
|
|
433
|
+
supportStyle === 'box-frame') && (_jsx(SliderControl, { onCommit: commitPreview, onCancel: cancelPreview, restoreOnCommit: false, axis: "x", label: spatialFrame || supportStyle === 'portal-frame'
|
|
434
|
+
? i18n._({ id: 'node.column.panel.widthSpan', message: 'Width Span' })
|
|
435
|
+
: i18n._({
|
|
436
|
+
id: 'node.column.panel.bottomSpread',
|
|
437
|
+
message: 'Bottom Spread',
|
|
438
|
+
}), max: 1000, min: 0.2, onChange: (value) => previewProp({
|
|
439
|
+
braceBottomSpread: value,
|
|
440
|
+
braceTopSpread: supportStyle === 'a-frame'
|
|
441
|
+
? Math.min(node.braceTopSpread ?? 0.12, value)
|
|
442
|
+
: (node.braceTopSpread ?? 1),
|
|
443
|
+
}), precision: 2, step: 0.05, unit: "m", value: node.braceBottomSpread ?? 1.2 })), supportStyle !== 'portal-frame' && (_jsx(SliderControl, { onCommit: commitPreview, onCancel: cancelPreview, restoreOnCommit: false, axis: spatialFrame ? 'z' : 'x', label: spatialFrame
|
|
444
|
+
? i18n._({ id: 'node.column.panel.depthSpan', message: 'Depth Span' })
|
|
445
|
+
: supportStyle === 'y-frame' || supportStyle === 'v-frame'
|
|
446
|
+
? i18n._({ id: 'node.column.panel.forkSpread', message: 'Fork Spread' })
|
|
447
|
+
: i18n._({ id: 'node.column.panel.topSpread', message: 'Top Spread' }), max: supportStyle === 'y-frame' ||
|
|
436
448
|
supportStyle === 'v-frame' ||
|
|
437
449
|
supportStyle === 'x-brace' ||
|
|
438
450
|
supportStyle === 'k-brace' ||
|
|
439
451
|
supportStyle === 'single-strut' ||
|
|
440
452
|
supportStyle === 'tripod' ||
|
|
441
453
|
supportStyle === 'trestle' ||
|
|
442
|
-
supportStyle === 'portal-frame' ||
|
|
443
454
|
supportStyle === 'box-frame'
|
|
444
|
-
?
|
|
445
|
-
: 0.
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
handleUpdate({
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
id: 'node.column.panel.
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
id: 'node.column.panel.
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
455
|
+
? 1000
|
|
456
|
+
: Math.max(0.2, node.braceBottomSpread ?? 1.2), min: 0, onChange: (value) => previewProp({ braceTopSpread: value }), precision: 2, step: 0.02, unit: "m", value: node.braceTopSpread ??
|
|
457
|
+
(supportStyle === 'y-frame' ||
|
|
458
|
+
supportStyle === 'v-frame' ||
|
|
459
|
+
supportStyle === 'x-brace' ||
|
|
460
|
+
supportStyle === 'k-brace' ||
|
|
461
|
+
supportStyle === 'single-strut' ||
|
|
462
|
+
supportStyle === 'tripod' ||
|
|
463
|
+
supportStyle === 'trestle' ||
|
|
464
|
+
supportStyle === 'box-frame'
|
|
465
|
+
? 1
|
|
466
|
+
: 0.12) })), _jsx(ToggleControl, { checked: node.bracePlateEnabled ?? true, label: i18n._({
|
|
467
|
+
id: 'node.column.panel.connectorPlates',
|
|
468
|
+
message: 'Connector Plates',
|
|
469
|
+
}), onChange: (checked) => handleUpdate({ bracePlateEnabled: checked }) })] })) : !managedByLeanTo ? (_jsxs(_Fragment, { children: [_jsx(SliderControl, { onCommit: commitPreview, onCancel: cancelPreview, restoreOnCommit: false, label: radialSection
|
|
470
|
+
? i18n._({ id: 'node.column.panel.diameter', message: 'Diameter' })
|
|
471
|
+
: i18n._({ id: 'node.column.panel.width', message: 'Width' }), axis: "x", max: 1000, min: 0.1, onChange: (value) => previewProp({
|
|
472
|
+
width: value,
|
|
473
|
+
radius: value / 2,
|
|
474
|
+
...(node.crossSection === 'rectangular' ? {} : { depth: value }),
|
|
475
|
+
}), precision: 2, step: 0.02, unit: "m", value: radialSection ? node.radius * 2 : node.width }), node.crossSection === 'rectangular' && (_jsx(SliderControl, { onCommit: commitPreview, onCancel: cancelPreview, restoreOnCommit: false, label: i18n._({ id: 'node.column.panel.depth', message: 'Depth' }), axis: "z", max: 1000, min: 0.1, onChange: (value) => previewProp({ depth: value }), precision: 2, step: 0.02, unit: "m", value: node.depth }))] })) : null] }), !isBraceSupport && node.style !== 'cluster' && (_jsxs(PanelSection, { part: "shaft", title: i18n._({ id: 'node.column.panel.profile', message: 'Profile' }), children: [_jsx("button", { type: "button", className: "self-end text-xs text-muted-foreground hover:text-foreground", onClick: () => handleUpdate(columnSectionReset('Profile')), children: i18n._({ id: 'node.column.panel.resetProfile', message: 'Reset profile' }) }), _jsx("p", { className: "text-xs text-muted-foreground", children: i18n._({
|
|
476
|
+
id: 'node.column.panel.scalesMultiplyTheDimensionsInSize',
|
|
477
|
+
message: 'Scales multiply the dimensions in Size. A ratio of 0.2 means 20%.',
|
|
478
|
+
}) }), _jsx("select", { "aria-label": i18n._({
|
|
479
|
+
id: 'node.column.panel.shaftProfile',
|
|
480
|
+
message: 'Shaft profile',
|
|
481
|
+
}), className: SELECT_CLASS, onChange: (event) => handleUpdate(shaftProfileUpdates(event.target.value)), value: shaftProfile, children: ColumnShaftProfile.options.map((value) => (_jsx("option", { value: value, children: i18n._(COLUMN_OPTION_LABELS[value]) }, value))) }), shaftProfile === 'straight' && (_jsx(SliderControl, { onCommit: commitPreview, onCancel: cancelPreview, restoreOnCommit: false, label: i18n._({ id: 'node.column.panel.shaftScale', message: 'Shaft Scale' }), unit: "\u00D7", max: 2, min: 0.2, onChange: (value) => previewProp({ shaftStartScale: value, shaftEndScale: value }), precision: 2, step: 0.02, value: node.shaftStartScale ?? 0.72 })), shaftProfile === 'tapered' && (_jsxs(_Fragment, { children: [_jsx(SliderControl, { onCommit: commitPreview, onCancel: cancelPreview, restoreOnCommit: false, label: i18n._({
|
|
482
|
+
id: 'node.column.panel.bottomScale',
|
|
483
|
+
message: 'Bottom Scale',
|
|
484
|
+
}), unit: "\u00D7", max: 2, min: 0.2, onChange: (value) => previewProp({ shaftStartScale: value }), precision: 2, step: 0.02, value: node.shaftStartScale ?? 0.82 }), _jsx(SliderControl, { onCommit: commitPreview, onCancel: cancelPreview, restoreOnCommit: false, label: i18n._({ id: 'node.column.panel.topScale', message: 'Top Scale' }), unit: "\u00D7", max: 2, min: 0.2, onChange: (value) => previewProp({ shaftEndScale: value }), precision: 2, step: 0.02, value: node.shaftEndScale ?? 0.72 }), _jsx(SliderControl, { onCommit: commitPreview, onCancel: cancelPreview, restoreOnCommit: false, label: i18n._({ id: 'node.column.panel.taperRatio', message: 'Taper Ratio' }), max: 0.85, min: 0, onChange: (value) => previewProp({ shaftTaper: value }), precision: 2, step: 0.01, value: node.shaftTaper ?? 0.14 })] })), (shaftProfile === 'bulged' || shaftProfile === 'baluster') && (_jsxs(_Fragment, { children: [_jsx(SliderControl, { onCommit: commitPreview, onCancel: cancelPreview, restoreOnCommit: false, label: i18n._({ id: 'node.column.panel.endScale', message: 'End Scale' }), unit: "\u00D7", max: 2, min: 0.2, onChange: (value) => previewProp({ shaftStartScale: value, shaftEndScale: value }), precision: 2, step: 0.02, value: node.shaftStartScale ?? 0.68 }), _jsx(SliderControl, { onCommit: commitPreview, onCancel: cancelPreview, restoreOnCommit: false, label: i18n._({ id: 'node.column.panel.bulgeRatio', message: 'Bulge Ratio' }), max: 0.8, min: -0.5, onChange: (value) => previewProp({ shaftBulge: value }), precision: 2, step: 0.01, value: node.shaftBulge ?? 0.12 })] })), shaftProfile === 'hourglass' && (_jsxs(_Fragment, { children: [_jsx(SliderControl, { onCommit: commitPreview, onCancel: cancelPreview, restoreOnCommit: false, label: i18n._({ id: 'node.column.panel.endScale', message: 'End Scale' }), unit: "\u00D7", max: 2, min: 0.2, onChange: (value) => previewProp({ shaftStartScale: value, shaftEndScale: value }), precision: 2, step: 0.02, value: node.shaftStartScale ?? 0.84 }), _jsx(SliderControl, { onCommit: commitPreview, onCancel: cancelPreview, restoreOnCommit: false, label: i18n._({
|
|
485
|
+
id: 'node.column.panel.waistReductionRatio',
|
|
486
|
+
message: 'Waist Reduction Ratio',
|
|
487
|
+
}), max: 0.8, min: -0.5, onChange: (value) => previewProp({ shaftBulge: value }), precision: 2, step: 0.01, value: node.shaftBulge ?? 0.12 })] })), _jsx(SliderControl, { onCommit: commitPreview, onCancel: cancelPreview, restoreOnCommit: false, label: i18n._({
|
|
488
|
+
id: 'node.column.panel.twistPerSegment',
|
|
489
|
+
message: 'Twist per Segment',
|
|
490
|
+
}), max: 90, min: -90, onChange: (value) => previewProp({
|
|
491
|
+
shaftTwistStep: value,
|
|
492
|
+
...(Math.abs(value) > 0.001 && (node.shaftSegmentCount ?? 1) < 8
|
|
493
|
+
? { shaftSegmentCount: 12 }
|
|
494
|
+
: {}),
|
|
495
|
+
}), precision: 0, step: 5, unit: "\u00B0", value: node.shaftTwistStep ?? 0 }), Math.abs(node.shaftTwistStep ?? 0) > 0.001 && (_jsx(SliderControl, { onCommit: commitPreview, onCancel: cancelPreview, restoreOnCommit: false, label: i18n._({
|
|
496
|
+
id: 'node.column.panel.twistSegments',
|
|
497
|
+
message: 'Twist Segments',
|
|
498
|
+
}), max: 64, min: 4, onChange: (value) => previewProp({ shaftSegmentCount: Math.round(value) }), precision: 0, step: 1, value: node.shaftSegmentCount ?? 12 }))] })), !isBraceSupport && (_jsxs(_Fragment, { children: [_jsxs(PanelSection, { part: "base", title: i18n._({ id: 'node.column.panel.base', message: 'Base' }), children: [_jsx("button", { type: "button", className: "self-end text-xs text-muted-foreground hover:text-foreground", onClick: () => handleUpdate(columnSectionReset('Base')), children: i18n._({ id: 'node.column.panel.resetBase', message: 'Reset base' }) }), _jsx("p", { className: "text-xs text-muted-foreground", children: i18n._({
|
|
499
|
+
id: 'node.column.panel.widthAndDepthScalesUseSize',
|
|
500
|
+
message: 'Width and depth scales use Size. Band and neck scales use the base footprint.',
|
|
501
|
+
}) }), _jsx("select", { "aria-label": i18n._({
|
|
502
|
+
id: 'node.column.panel.baseStyle',
|
|
503
|
+
message: 'Base style',
|
|
504
|
+
}), className: `${SELECT_CLASS} mt-2`, onChange: (event) => {
|
|
505
|
+
const baseStyle = event.target.value;
|
|
506
|
+
handleUpdate({
|
|
507
|
+
baseStyle,
|
|
508
|
+
...(baseStyle === 'none'
|
|
509
|
+
? {}
|
|
510
|
+
: {
|
|
511
|
+
baseHeight: Math.max(node.baseHeight, 0.12),
|
|
512
|
+
baseTierCount: baseStyle === 'stepped-square'
|
|
513
|
+
? Math.max(node.baseTierCount ?? 3, 3)
|
|
514
|
+
: node.baseTierCount,
|
|
515
|
+
baseWidthScale: Math.max(node.baseWidthScale ?? 1.24, baseStyle === 'stepped-square' ? 1.42 : 1.24),
|
|
516
|
+
baseDepthScale: Math.max(node.baseDepthScale ?? 1.24, baseStyle === 'stepped-square' ? 1.42 : 1.24),
|
|
517
|
+
baseStepSpread: baseStyle === 'stepped-square'
|
|
518
|
+
? Math.max(node.baseStepSpread ?? 0.34, 0.34)
|
|
519
|
+
: node.baseStepSpread,
|
|
520
|
+
basePlinthHeightRatio: baseStyle === 'round-rings'
|
|
521
|
+
? (node.basePlinthHeightRatio ?? 0.44)
|
|
522
|
+
: node.basePlinthHeightRatio,
|
|
523
|
+
baseRoundBandScale: baseStyle === 'round-rings'
|
|
524
|
+
? (node.baseRoundBandScale ?? 0.92)
|
|
525
|
+
: node.baseRoundBandScale,
|
|
526
|
+
baseNeckScale: baseStyle === 'round-rings'
|
|
527
|
+
? (node.baseNeckScale ?? 0.72)
|
|
528
|
+
: node.baseNeckScale,
|
|
529
|
+
}),
|
|
530
|
+
});
|
|
531
|
+
}, value: node.baseStyle ?? 'square-plinth', children: ColumnBaseStyle.options.map((value) => (_jsx("option", { value: value, children: i18n._(COLUMN_OPTION_LABELS[value]) }, value))) }), node.baseStyle !== 'none' && (_jsx(SliderControl, { onCommit: commitPreview, onCancel: cancelPreview, restoreOnCommit: false, label: i18n._({ id: 'node.column.panel.baseHeight', message: 'Base Height' }), axis: "y", max: node.height * 0.4, min: 0, onChange: (value) => previewProp({ baseHeight: value }), precision: 2, step: 0.02, unit: "m", value: node.baseHeight })), node.baseStyle !== 'none' && (_jsx(SliderControl, { onCommit: commitPreview, onCancel: cancelPreview, restoreOnCommit: false, label: i18n._({ id: 'node.column.panel.widthScale', message: 'Width Scale' }), axis: "x", unit: "\u00D7", max: 3, min: 0.4, onChange: (value) => previewProp({
|
|
532
|
+
baseWidthScale: value,
|
|
533
|
+
...(node.crossSection === 'rectangular' ? {} : { baseDepthScale: value }),
|
|
534
|
+
}), precision: 2, step: 0.02, value: node.baseWidthScale ?? 1.24 })), node.baseStyle !== 'none' && node.crossSection === 'rectangular' && (_jsx(SliderControl, { onCommit: commitPreview, onCancel: cancelPreview, restoreOnCommit: false, label: i18n._({ id: 'node.column.panel.depthScale', message: 'Depth Scale' }), axis: "z", unit: "\u00D7", max: 3, min: 0.4, onChange: (value) => previewProp({ baseDepthScale: value }), precision: 2, step: 0.02, value: node.baseDepthScale ?? node.baseWidthScale ?? 1.24 })), node.baseStyle === 'round-rings' && (_jsx(SliderControl, { onCommit: commitPreview, onCancel: cancelPreview, restoreOnCommit: false, label: i18n._({
|
|
535
|
+
id: 'node.column.panel.plinthHeightFraction',
|
|
536
|
+
message: 'Plinth Height Fraction',
|
|
537
|
+
}), max: 0.7, min: 0.2, onChange: (value) => previewProp({ basePlinthHeightRatio: value }), precision: 2, step: 0.01, value: node.basePlinthHeightRatio ?? 0.44 })), node.baseStyle === 'round-rings' && (_jsx(SliderControl, { onCommit: commitPreview, onCancel: cancelPreview, restoreOnCommit: false, label: i18n._({ id: 'node.column.panel.bandScale', message: 'Band Scale' }), unit: "\u00D7", max: 1.2, min: 0.5, onChange: (value) => previewProp({ baseRoundBandScale: value }), precision: 2, step: 0.01, value: node.baseRoundBandScale ?? 0.92 })), node.baseStyle === 'round-rings' && (_jsx(SliderControl, { onCommit: commitPreview, onCancel: cancelPreview, restoreOnCommit: false, label: i18n._({ id: 'node.column.panel.neckScale', message: 'Neck Scale' }), unit: "\u00D7", max: 1, min: 0.35, onChange: (value) => previewProp({ baseNeckScale: value }), precision: 2, step: 0.01, value: node.baseNeckScale ?? 0.72 })), node.baseStyle === 'stepped-square' && (_jsx(SliderControl, { onCommit: commitPreview, onCancel: cancelPreview, restoreOnCommit: false, label: i18n._({ id: 'node.column.panel.tierCount', message: 'Tier Count' }), max: 8, min: 3, onChange: (value) => previewProp({ baseTierCount: Math.round(value) }), precision: 0, step: 1, value: node.baseTierCount ?? 3 })), node.baseStyle === 'stepped-square' && (_jsx(SliderControl, { onCommit: commitPreview, onCancel: cancelPreview, restoreOnCommit: false, label: i18n._({
|
|
538
|
+
id: 'node.column.panel.stepScaleReduction',
|
|
539
|
+
message: 'Step Scale Reduction',
|
|
540
|
+
}), unit: "\u00D7", max: 0.9, min: 0.05, onChange: (value) => previewProp({ baseStepSpread: value }), precision: 2, step: 0.01, value: node.baseStepSpread ?? 0.34 })), renderDetails(baseFields)] }), _jsxs(PanelSection, { part: "capital", title: i18n._({ id: 'node.column.panel.capital', message: 'Capital' }), children: [_jsx("button", { type: "button", className: "self-end text-xs text-muted-foreground hover:text-foreground", onClick: () => handleUpdate(columnSectionReset('Capital')), children: i18n._({ id: 'node.column.panel.resetCapital', message: 'Reset capital' }) }), _jsx("p", { className: "text-xs text-muted-foreground", children: i18n._({
|
|
541
|
+
id: 'node.column.panel.widthAndDepthScalesMultiplyThe',
|
|
542
|
+
message: 'Width and depth scales multiply the dimensions in Size.',
|
|
543
|
+
}) }), _jsx("select", { "aria-label": i18n._({
|
|
544
|
+
id: 'node.column.panel.capitalStyle',
|
|
545
|
+
message: 'Capital style',
|
|
546
|
+
}), className: SELECT_CLASS, onChange: (event) => {
|
|
547
|
+
const capitalStyle = event.target.value;
|
|
548
|
+
handleUpdate({
|
|
549
|
+
capitalStyle,
|
|
550
|
+
...(capitalStyle === 'none'
|
|
551
|
+
? {}
|
|
552
|
+
: {
|
|
553
|
+
capitalHeight: Math.max(node.capitalHeight, 0.12),
|
|
554
|
+
capitalTierCount: capitalStyle === 'stepped'
|
|
555
|
+
? Math.max(node.capitalTierCount ?? 3, 3)
|
|
556
|
+
: node.capitalTierCount,
|
|
557
|
+
capitalWidthScale: Math.max(node.capitalWidthScale ?? 1.3, capitalStyle === 'stepped' ? 1.42 : 1.28),
|
|
558
|
+
capitalDepthScale: Math.max(node.capitalDepthScale ?? 1.3, capitalStyle === 'stepped' ? 1.42 : 1.28),
|
|
559
|
+
capitalStepSpread: capitalStyle === 'stepped'
|
|
560
|
+
? Math.max(node.capitalStepSpread ?? 0.34, 0.34)
|
|
561
|
+
: node.capitalStepSpread,
|
|
562
|
+
}),
|
|
563
|
+
});
|
|
564
|
+
}, value: node.capitalStyle, children: ColumnCapitalStyle.options.map((value) => (_jsx("option", { value: value, children: i18n._(COLUMN_OPTION_LABELS[value]) }, value))) }), node.capitalStyle !== 'none' && (_jsx(SliderControl, { onCommit: commitPreview, onCancel: cancelPreview, restoreOnCommit: false, label: i18n._({
|
|
565
|
+
id: 'node.column.panel.capitalHeight',
|
|
566
|
+
message: 'Capital Height',
|
|
567
|
+
}), axis: "y", max: node.height * 0.4, min: 0, onChange: (value) => previewProp({ capitalHeight: value }), precision: 2, step: 0.02, unit: "m", value: node.capitalHeight })), node.capitalStyle !== 'none' && (_jsx(SliderControl, { onCommit: commitPreview, onCancel: cancelPreview, restoreOnCommit: false, label: i18n._({ id: 'node.column.panel.widthScale', message: 'Width Scale' }), axis: "x", unit: "\u00D7", max: 3, min: 0.4, onChange: (value) => previewProp({
|
|
568
|
+
capitalWidthScale: value,
|
|
569
|
+
...(node.crossSection === 'rectangular'
|
|
570
|
+
? {}
|
|
571
|
+
: { capitalDepthScale: value }),
|
|
572
|
+
}), precision: 2, step: 0.02, value: node.capitalWidthScale ?? 1.28 })), node.capitalStyle !== 'none' && node.crossSection === 'rectangular' && (_jsx(SliderControl, { onCommit: commitPreview, onCancel: cancelPreview, restoreOnCommit: false, label: i18n._({ id: 'node.column.panel.depthScale', message: 'Depth Scale' }), axis: "z", unit: "\u00D7", max: 3, min: 0.4, onChange: (value) => previewProp({ capitalDepthScale: value }), precision: 2, step: 0.02, value: node.capitalDepthScale ?? node.capitalWidthScale ?? 1.28 })), node.capitalStyle === 'stepped' && (_jsx(SliderControl, { onCommit: commitPreview, onCancel: cancelPreview, restoreOnCommit: false, label: i18n._({ id: 'node.column.panel.tierCount', message: 'Tier Count' }), max: 8, min: 3, onChange: (value) => previewProp({ capitalTierCount: Math.round(value) }), precision: 0, step: 1, value: node.capitalTierCount ?? 3 })), node.capitalStyle === 'stepped' && (_jsx(SliderControl, { onCommit: commitPreview, onCancel: cancelPreview, restoreOnCommit: false, label: i18n._({
|
|
573
|
+
id: 'node.column.panel.stepScaleReduction',
|
|
574
|
+
message: 'Step Scale Reduction',
|
|
575
|
+
}), unit: "\u00D7", max: 0.9, min: 0.05, onChange: (value) => previewProp({ capitalStepSpread: value }), precision: 2, step: 0.01, value: node.capitalStepSpread ?? 0.34 })), renderDetails(capitalFields)] })] })), !isBraceSupport && (_jsxs(PanelSection, { part: "shaft", title: i18n._({
|
|
576
|
+
id: 'node.column.panel.surfaceDetails',
|
|
577
|
+
message: 'Surface Details',
|
|
578
|
+
}), children: [_jsx("button", { type: "button", className: "self-end text-xs text-muted-foreground hover:text-foreground", onClick: () => handleUpdate(columnSectionReset('Surface Details')), children: i18n._({
|
|
579
|
+
id: 'node.column.panel.resetSurfaceDetails',
|
|
580
|
+
message: 'Reset surface details',
|
|
581
|
+
}) }), _jsx("p", { className: "text-xs text-muted-foreground", children: i18n._({ id: 'node.column.panel.shaftDetail', message: 'Shaft detail' }) }), _jsx("select", { "aria-label": i18n._({
|
|
582
|
+
id: 'node.column.panel.shaftDetail',
|
|
583
|
+
message: 'Shaft detail',
|
|
584
|
+
}), className: SELECT_CLASS, value: node.shaftDetail, onChange: (event) => handleUpdate({ shaftDetail: ColumnShaftDetail.parse(event.target.value) }), children: ColumnShaftDetail.options.map((value) => (_jsx("option", { value: value, disabled: value === 'fluted' && node.crossSection !== 'round', children: i18n._(COLUMN_OPTION_LABELS[value]) }, value))) }), hasPanels && (_jsxs(_Fragment, { children: [_jsx("p", { className: "text-xs text-muted-foreground", children: i18n._({ id: 'node.column.panel.panelShape', message: 'Panel shape' }) }), _jsx("select", { "aria-label": i18n._({
|
|
585
|
+
id: 'node.column.panel.panelShape',
|
|
586
|
+
message: 'Panel shape',
|
|
587
|
+
}), className: SELECT_CLASS, value: node.panelShape, onChange: (event) => handleUpdate({ panelShape: ColumnPanelShape.parse(event.target.value) }), children: ColumnPanelShape.options.map((value) => (_jsx("option", { value: value, children: i18n._(COLUMN_OPTION_LABELS[value]) }, value))) })] })), renderDetails(shaftFields), _jsx(SliderControl, { onCommit: commitPreview, onCancel: cancelPreview, restoreOnCommit: false, label: i18n._({ id: 'node.column.panel.ringPairs', message: 'Ring Pairs' }), max: 8, min: 0, onChange: (value) => previewProp({
|
|
588
|
+
ringCount: Math.round(value) * 2,
|
|
589
|
+
ringPlacement: 'ends',
|
|
590
|
+
ringSpread: node.ringSpread ?? 0.16,
|
|
591
|
+
ringThickness: node.ringThickness ?? 0.055,
|
|
592
|
+
}), precision: 0, step: 1, value: Math.ceil((node.ringCount ?? 0) / 2) }), (node.ringCount ?? 0) > 0 && (_jsx(SliderControl, { onCommit: commitPreview, onCancel: cancelPreview, restoreOnCommit: false, label: i18n._({
|
|
593
|
+
id: 'node.column.panel.ringThickness',
|
|
594
|
+
message: 'Ring Thickness',
|
|
595
|
+
}), max: 0.14, min: 0.01, onChange: (value) => previewProp({ ringThickness: value }), precision: 3, step: 0.005, unit: "m", value: node.ringThickness ?? 0.055 })), (node.ringCount ?? 0) > 0 && (_jsx(SliderControl, { onCommit: commitPreview, onCancel: cancelPreview, restoreOnCommit: false, label: i18n._({
|
|
596
|
+
id: 'node.column.panel.ringSpreadRatio',
|
|
597
|
+
message: 'Ring Spread Ratio',
|
|
598
|
+
}), max: 0.45, min: 0.04, onChange: (value) => previewProp({ ringSpread: value, ringPlacement: 'ends' }), precision: 2, step: 0.01, value: node.ringSpread ?? 0.16 })), (node.baseStyle !== 'none' || node.capitalStyle !== 'none') && (_jsxs(_Fragment, { children: [_jsx("p", { className: "text-xs text-muted-foreground", children: i18n._({
|
|
599
|
+
id: 'node.column.panel.carvingPlacement',
|
|
600
|
+
message: 'Carving placement',
|
|
601
|
+
}) }), _jsx("select", { "aria-label": i18n._({
|
|
602
|
+
id: 'node.column.panel.carvingPlacement',
|
|
603
|
+
message: 'Carving placement',
|
|
604
|
+
}), className: SELECT_CLASS, value: node.carvingPlacement, onChange: (event) => handleUpdate({
|
|
605
|
+
carvingPlacement: ColumnCarvingPlacement.parse(event.target.value),
|
|
606
|
+
}), children: ColumnCarvingPlacement.options.map((value) => (_jsx("option", { value: value, children: i18n._(COLUMN_OPTION_LABELS[value]) }, value))) })] }))] }))] })), _jsxs(PanelSection, { title: i18n._({ id: 'node.column.panel.materials', message: 'Materials' }), defaultExpanded: false, children: [_jsx("button", { type: "button", className: "self-end text-xs text-muted-foreground hover:text-foreground", onClick: () => handleUpdate(columnSectionReset('Materials')), children: i18n._({ id: 'node.column.panel.resetMaterials', message: 'Reset materials' }) }), _jsx("p", { className: "text-xs text-muted-foreground", children: i18n._({
|
|
607
|
+
id: 'node.column.panel.chooseAMaterialThenClickThe',
|
|
608
|
+
message: 'Choose a material, then click the surface to paint.',
|
|
609
|
+
}) }), _jsx("div", { className: "flex flex-wrap gap-1", children: (node.source
|
|
610
|
+
? ['all']
|
|
611
|
+
: isBraceSupport
|
|
612
|
+
? ['frame']
|
|
613
|
+
: [
|
|
614
|
+
'shaft',
|
|
615
|
+
...(node.baseStyle !== 'none' ? ['base'] : []),
|
|
616
|
+
...(node.capitalStyle !== 'none' ? ['capital'] : []),
|
|
617
|
+
]).map((part) => (_jsx("button", { type: "button", "data-column-part": part, className: "rounded border border-border px-2 py-1 text-xs", onClick: () => {
|
|
618
|
+
cancelPreview();
|
|
619
|
+
armMaterialPaint(undefined, 'surface');
|
|
620
|
+
}, children: part === 'all'
|
|
621
|
+
? i18n._({ id: 'node.column.panel.entireObject', message: 'Entire Object' })
|
|
622
|
+
: i18n._(COLUMN_OPTION_LABELS[part]) }, part))) }), _jsx(ActionButton, { icon: _jsx(PaintBucket, { className: "h-4 w-4" }), label: i18n._({ id: 'node.column.panel.paintMaterials', message: 'Paint Materials' }), onClick: () => {
|
|
623
|
+
cancelPreview();
|
|
624
|
+
armMaterialPaint(undefined, 'surface');
|
|
625
|
+
} })] }), _jsxs(PanelSection, { part: "all", title: i18n._({ id: 'node.column.panel.transform', message: 'Transform' }), children: [_jsx("button", { type: "button", className: "self-end text-xs text-muted-foreground hover:text-foreground", onClick: () => handleUpdate(columnSectionReset('Transform')), children: i18n._({ id: 'node.column.panel.resetTransform', message: 'Reset transform' }) }), _jsx(SliderControl, { onCommit: commitPreview, onCancel: cancelPreview, restoreOnCommit: false, label: i18n._({ id: 'node.column.panel.rotation', message: 'Rotation' }), max: 180, min: -180, onChange: (value) => previewProp({ rotation: (value * Math.PI) / 180 }), precision: 0, step: 1, unit: "\u00B0", value: Math.round((node.rotation * 180) / Math.PI) })] }), _jsx(PanelSection, { title: i18n._({ id: 'node.column.panel.actions', message: 'Actions' }), children: _jsxs(ActionGroup, { children: [!managedByLeanTo && (_jsx(ActionButton, { icon: _jsx(Move, { className: "h-4 w-4" }), label: i18n._({ id: 'node.column.panel.move', message: 'Move' }), onClick: handleMove })), _jsx(ActionButton, { className: "border-red-500/40 text-red-700 dark:text-red-200 hover:bg-red-500/15", icon: _jsx(Trash2, { className: "h-4 w-4" }), label: i18n._({ id: 'node.column.panel.delete', message: 'Delete' }), onClick: handleDelete })] }) })] }) }));
|
|
538
626
|
}
|