@pascal-app/core 1.0.1 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent-operations/__fixtures__/add-object-cases.d.ts +235 -0
- package/dist/agent-operations/__fixtures__/add-object-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/add-object-cases.js +129 -0
- package/dist/agent-operations/__fixtures__/build-room-cases.d.ts +4 -0
- package/dist/agent-operations/__fixtures__/build-room-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/build-room-cases.js +635 -0
- package/dist/agent-operations/__fixtures__/cases.d.ts +52 -0
- package/dist/agent-operations/__fixtures__/cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/cases.js +689 -0
- package/dist/agent-operations/__fixtures__/find-by-type-cases.d.ts +7 -0
- package/dist/agent-operations/__fixtures__/find-by-type-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/find-by-type-cases.js +21 -0
- package/dist/agent-operations/__fixtures__/place-items-cases.d.ts +17 -0
- package/dist/agent-operations/__fixtures__/place-items-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/place-items-cases.js +506 -0
- package/dist/agent-operations/__fixtures__/room-cases.d.ts +3 -0
- package/dist/agent-operations/__fixtures__/room-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/room-cases.js +338 -0
- package/dist/agent-operations/__fixtures__/search-assets-cases.d.ts +5 -0
- package/dist/agent-operations/__fixtures__/search-assets-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/search-assets-cases.js +137 -0
- package/dist/agent-operations/__fixtures__/structure-cases.d.ts +6 -0
- package/dist/agent-operations/__fixtures__/structure-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/structure-cases.js +588 -0
- package/dist/agent-operations/__fixtures__/verify-scene-cases.d.ts +3 -0
- package/dist/agent-operations/__fixtures__/verify-scene-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/verify-scene-cases.js +302 -0
- package/dist/agent-operations/achieved.d.ts +16 -0
- package/dist/agent-operations/achieved.d.ts.map +1 -0
- package/dist/agent-operations/achieved.js +28 -0
- package/dist/agent-operations/add-column.d.ts +23 -0
- package/dist/agent-operations/add-column.d.ts.map +1 -0
- package/dist/agent-operations/add-column.js +97 -0
- package/dist/agent-operations/add-level.d.ts +14 -0
- package/dist/agent-operations/add-level.d.ts.map +1 -0
- package/dist/agent-operations/add-level.js +94 -0
- package/dist/agent-operations/add-object.d.ts +114 -0
- package/dist/agent-operations/add-object.d.ts.map +1 -0
- package/dist/agent-operations/add-object.js +361 -0
- package/dist/agent-operations/add-wall.d.ts +15 -0
- package/dist/agent-operations/add-wall.d.ts.map +1 -0
- package/dist/agent-operations/add-wall.js +47 -0
- package/dist/agent-operations/apply-changes.d.ts +16 -0
- package/dist/agent-operations/apply-changes.d.ts.map +1 -0
- package/dist/agent-operations/apply-changes.js +93 -0
- package/dist/agent-operations/apply-outcome.d.ts +15 -0
- package/dist/agent-operations/apply-outcome.d.ts.map +1 -0
- package/dist/agent-operations/apply-outcome.js +18 -0
- package/dist/agent-operations/collections.d.ts +28 -0
- package/dist/agent-operations/collections.d.ts.map +1 -0
- package/dist/agent-operations/collections.js +130 -0
- package/dist/agent-operations/create-room.d.ts +36 -0
- package/dist/agent-operations/create-room.d.ts.map +1 -0
- package/dist/agent-operations/create-room.js +177 -0
- package/dist/agent-operations/create-stair.d.ts +33 -0
- package/dist/agent-operations/create-stair.d.ts.map +1 -0
- package/dist/agent-operations/create-stair.js +247 -0
- package/dist/agent-operations/delete-node.d.ts +6 -0
- package/dist/agent-operations/delete-node.d.ts.map +1 -0
- package/dist/agent-operations/delete-node.js +9 -0
- package/dist/agent-operations/door-clearance.d.ts +135 -0
- package/dist/agent-operations/door-clearance.d.ts.map +1 -0
- package/dist/agent-operations/door-clearance.js +334 -0
- package/dist/agent-operations/duplicate-level.d.ts +12 -0
- package/dist/agent-operations/duplicate-level.d.ts.map +1 -0
- package/dist/agent-operations/duplicate-level.js +54 -0
- package/dist/agent-operations/find-by-type.d.ts +11 -0
- package/dist/agent-operations/find-by-type.d.ts.map +1 -0
- package/dist/agent-operations/find-by-type.js +94 -0
- package/dist/agent-operations/furnish-room.d.ts +18 -0
- package/dist/agent-operations/furnish-room.d.ts.map +1 -0
- package/dist/agent-operations/furnish-room.js +259 -0
- package/dist/agent-operations/get-node.d.ts +9 -0
- package/dist/agent-operations/get-node.d.ts.map +1 -0
- package/dist/agent-operations/get-node.js +33 -0
- package/dist/agent-operations/hosted-services.d.ts +13 -0
- package/dist/agent-operations/hosted-services.d.ts.map +1 -0
- package/dist/agent-operations/hosted-services.js +22 -0
- package/dist/agent-operations/index.d.ts +277 -0
- package/dist/agent-operations/index.d.ts.map +1 -0
- package/dist/agent-operations/index.js +80 -0
- package/dist/agent-operations/layout-clearance.d.ts +108 -0
- package/dist/agent-operations/layout-clearance.d.ts.map +1 -0
- package/dist/agent-operations/layout-clearance.js +190 -0
- package/dist/agent-operations/level-reads.d.ts +33 -0
- package/dist/agent-operations/level-reads.d.ts.map +1 -0
- package/dist/agent-operations/level-reads.js +161 -0
- package/dist/agent-operations/level-target.d.ts +11 -0
- package/dist/agent-operations/level-target.d.ts.map +1 -0
- package/dist/agent-operations/level-target.js +29 -0
- package/dist/agent-operations/list-levels.d.ts +4 -0
- package/dist/agent-operations/list-levels.d.ts.map +1 -0
- package/dist/agent-operations/list-levels.js +31 -0
- package/dist/agent-operations/material-preset.d.ts +11 -0
- package/dist/agent-operations/material-preset.d.ts.map +1 -0
- package/dist/agent-operations/material-preset.js +74 -0
- package/dist/agent-operations/material-refs.d.ts +24 -0
- package/dist/agent-operations/material-refs.d.ts.map +1 -0
- package/dist/agent-operations/material-refs.js +100 -0
- package/dist/agent-operations/node-patch.d.ts +3 -0
- package/dist/agent-operations/node-patch.d.ts.map +1 -0
- package/dist/agent-operations/node-patch.js +114 -0
- package/dist/agent-operations/paint.d.ts +21 -0
- package/dist/agent-operations/paint.d.ts.map +1 -0
- package/dist/agent-operations/paint.js +219 -0
- package/dist/agent-operations/place-items.d.ts +20 -0
- package/dist/agent-operations/place-items.d.ts.map +1 -0
- package/dist/agent-operations/place-items.js +226 -0
- package/dist/agent-operations/plan-geometry.d.ts +24 -0
- package/dist/agent-operations/plan-geometry.d.ts.map +1 -0
- package/dist/agent-operations/plan-geometry.js +94 -0
- package/dist/agent-operations/room-structure.d.ts +87 -0
- package/dist/agent-operations/room-structure.d.ts.map +1 -0
- package/dist/agent-operations/room-structure.js +144 -0
- package/dist/agent-operations/scene-materials.d.ts +15 -0
- package/dist/agent-operations/scene-materials.d.ts.map +1 -0
- package/dist/agent-operations/scene-materials.js +62 -0
- package/dist/agent-operations/scene-measure.d.ts +73 -0
- package/dist/agent-operations/scene-measure.d.ts.map +1 -0
- package/dist/agent-operations/scene-measure.js +73 -0
- package/dist/agent-operations/scene-queries.d.ts +4510 -0
- package/dist/agent-operations/scene-queries.d.ts.map +1 -0
- package/dist/agent-operations/scene-queries.js +84 -0
- package/dist/agent-operations/scene-view.d.ts +98 -0
- package/dist/agent-operations/scene-view.d.ts.map +1 -0
- package/dist/agent-operations/scene-view.js +559 -0
- package/dist/agent-operations/search-assets.d.ts +14 -0
- package/dist/agent-operations/search-assets.d.ts.map +1 -0
- package/dist/agent-operations/search-assets.js +42 -0
- package/dist/agent-operations/search-materials.d.ts +12 -0
- package/dist/agent-operations/search-materials.d.ts.map +1 -0
- package/dist/agent-operations/search-materials.js +111 -0
- package/dist/agent-operations/stairs.d.ts +5 -0
- package/dist/agent-operations/stairs.d.ts.map +1 -0
- package/dist/agent-operations/stairs.js +70 -0
- package/dist/agent-operations/types.d.ts +59 -0
- package/dist/agent-operations/types.d.ts.map +1 -0
- package/dist/agent-operations/types.js +1 -0
- package/dist/agent-operations/verify-scene.d.ts +50 -0
- package/dist/agent-operations/verify-scene.d.ts.map +1 -0
- package/dist/agent-operations/verify-scene.js +369 -0
- package/dist/agent-operations/wall-opening.d.ts +65 -0
- package/dist/agent-operations/wall-opening.d.ts.map +1 -0
- package/dist/agent-operations/wall-opening.js +55 -0
- package/dist/agent-tools/achieved.d.ts +9 -0
- package/dist/agent-tools/achieved.d.ts.map +1 -0
- package/dist/agent-tools/achieved.js +8 -0
- package/dist/agent-tools/add-object.d.ts +43 -0
- package/dist/agent-tools/add-object.d.ts.map +1 -0
- package/dist/agent-tools/add-object.js +86 -0
- package/dist/agent-tools/assets.d.ts +13 -0
- package/dist/agent-tools/assets.d.ts.map +1 -0
- package/dist/agent-tools/assets.js +18 -0
- package/dist/agent-tools/clear-scene.d.ts +10 -0
- package/dist/agent-tools/clear-scene.d.ts.map +1 -0
- package/dist/agent-tools/clear-scene.js +9 -0
- package/dist/agent-tools/collections.d.ts +35 -0
- package/dist/agent-tools/collections.d.ts.map +1 -0
- package/dist/agent-tools/collections.js +31 -0
- package/dist/agent-tools/columns.d.ts +44 -0
- package/dist/agent-tools/columns.d.ts.map +1 -0
- package/dist/agent-tools/columns.js +59 -0
- package/dist/agent-tools/contract.d.ts +68 -0
- package/dist/agent-tools/contract.d.ts.map +1 -0
- package/dist/agent-tools/contract.js +1 -0
- package/dist/agent-tools/create-room.d.ts +63 -0
- package/dist/agent-tools/create-room.d.ts.map +1 -0
- package/dist/agent-tools/create-room.js +90 -0
- package/dist/agent-tools/find-by-type.d.ts +11 -0
- package/dist/agent-tools/find-by-type.d.ts.map +1 -0
- package/dist/agent-tools/find-by-type.js +14 -0
- package/dist/agent-tools/furnish-room.d.ts +26 -0
- package/dist/agent-tools/furnish-room.d.ts.map +1 -0
- package/dist/agent-tools/furnish-room.js +35 -0
- package/dist/agent-tools/hosted-services.d.ts +402 -0
- package/dist/agent-tools/hosted-services.d.ts.map +1 -0
- package/dist/agent-tools/hosted-services.js +148 -0
- package/dist/agent-tools/index.d.ts +864 -0
- package/dist/agent-tools/index.d.ts.map +1 -0
- package/dist/agent-tools/index.js +82 -0
- package/dist/agent-tools/levels.d.ts +72 -0
- package/dist/agent-tools/levels.d.ts.map +1 -0
- package/dist/agent-tools/levels.js +76 -0
- package/dist/agent-tools/measurement.d.ts +37 -0
- package/dist/agent-tools/measurement.d.ts.map +1 -0
- package/dist/agent-tools/measurement.js +94 -0
- package/dist/agent-tools/node-id.d.ts +3 -0
- package/dist/agent-tools/node-id.d.ts.map +1 -0
- package/dist/agent-tools/node-id.js +2 -0
- package/dist/agent-tools/nodes.d.ts +17 -0
- package/dist/agent-tools/nodes.d.ts.map +1 -0
- package/dist/agent-tools/nodes.js +13 -0
- package/dist/agent-tools/paint.d.ts +46 -0
- package/dist/agent-tools/paint.d.ts.map +1 -0
- package/dist/agent-tools/paint.js +29 -0
- package/dist/agent-tools/place-items.d.ts +19 -0
- package/dist/agent-tools/place-items.d.ts.map +1 -0
- package/dist/agent-tools/place-items.js +29 -0
- package/dist/agent-tools/refusal.d.ts +20 -0
- package/dist/agent-tools/refusal.d.ts.map +1 -0
- package/dist/agent-tools/refusal.js +29 -0
- package/dist/agent-tools/room-structure.d.ts +438 -0
- package/dist/agent-tools/room-structure.d.ts.map +1 -0
- package/dist/agent-tools/room-structure.js +207 -0
- package/dist/agent-tools/search-materials.d.ts +20 -0
- package/dist/agent-tools/search-materials.d.ts.map +1 -0
- package/dist/agent-tools/search-materials.js +32 -0
- package/dist/agent-tools/stairs.d.ts +86 -0
- package/dist/agent-tools/stairs.d.ts.map +1 -0
- package/dist/agent-tools/stairs.js +103 -0
- package/dist/agent-tools/verify-scene.d.ts +13 -0
- package/dist/agent-tools/verify-scene.d.ts.map +1 -0
- package/dist/agent-tools/verify-scene.js +21 -0
- package/dist/agent-tools/view-scene.d.ts +43 -0
- package/dist/agent-tools/view-scene.d.ts.map +1 -0
- package/dist/agent-tools/view-scene.js +80 -0
- package/dist/agent-tools/wall-openings.d.ts +163 -0
- package/dist/agent-tools/wall-openings.d.ts.map +1 -0
- package/dist/agent-tools/wall-openings.js +144 -0
- package/dist/agent-tools/walls.d.ts +21 -0
- package/dist/agent-tools/walls.d.ts.map +1 -0
- package/dist/agent-tools/walls.js +30 -0
- package/dist/agent-tools/write-target.d.ts +12 -0
- package/dist/agent-tools/write-target.d.ts.map +1 -0
- package/dist/agent-tools/write-target.js +10 -0
- package/dist/building/__fixtures__/wall-opening-cases.d.ts +736 -0
- package/dist/building/__fixtures__/wall-opening-cases.d.ts.map +1 -0
- package/dist/building/__fixtures__/wall-opening-cases.js +307 -0
- package/dist/building/door-types.d.ts +22 -0
- package/dist/building/door-types.d.ts.map +1 -0
- package/dist/building/door-types.js +167 -0
- package/dist/building/floor-item-fit.d.ts +38 -0
- package/dist/building/floor-item-fit.d.ts.map +1 -0
- package/dist/building/floor-item-fit.js +47 -0
- package/dist/building/index.d.ts +7 -0
- package/dist/building/index.d.ts.map +1 -0
- package/dist/building/index.js +6 -0
- package/dist/building/level-duplication.d.ts +8983 -0
- package/dist/building/level-duplication.d.ts.map +1 -0
- package/dist/building/level-duplication.js +314 -0
- package/dist/building/opening-style-presets.d.ts +46 -0
- package/dist/building/opening-style-presets.d.ts.map +1 -0
- package/dist/building/opening-style-presets.js +195 -0
- package/dist/building/wall-openings.d.ts +445 -0
- package/dist/building/wall-openings.d.ts.map +1 -0
- package/dist/building/wall-openings.js +231 -0
- package/dist/building/window-types.d.ts +17 -0
- package/dist/building/window-types.d.ts.map +1 -0
- package/dist/building/window-types.js +31 -0
- package/dist/commands/structure/apply-zone-transform.d.ts +23 -0
- package/dist/commands/structure/apply-zone-transform.d.ts.map +1 -0
- package/dist/commands/structure/apply-zone-transform.js +55 -0
- package/dist/commands/structure/create-mezzanine.d.ts +12 -0
- package/dist/commands/structure/create-mezzanine.d.ts.map +1 -0
- package/dist/commands/structure/create-mezzanine.js +46 -0
- package/dist/commands/structure/create-zone.d.ts +32 -0
- package/dist/commands/structure/create-zone.d.ts.map +1 -0
- package/dist/commands/structure/create-zone.js +126 -0
- package/dist/commands/structure/delete-zone.d.ts +51 -0
- package/dist/commands/structure/delete-zone.d.ts.map +1 -0
- package/dist/commands/structure/delete-zone.js +354 -0
- package/dist/commands/structure/divide-zone.d.ts +38 -0
- package/dist/commands/structure/divide-zone.d.ts.map +1 -0
- package/dist/commands/structure/divide-zone.js +186 -0
- package/dist/commands/structure/duplicate-zone.d.ts +7 -0
- package/dist/commands/structure/duplicate-zone.d.ts.map +1 -0
- package/dist/commands/structure/duplicate-zone.js +21 -0
- package/dist/commands/structure/floor-opening.d.ts +36 -0
- package/dist/commands/structure/floor-opening.d.ts.map +1 -0
- package/dist/commands/structure/floor-opening.js +124 -0
- package/dist/commands/structure/index.d.ts +22 -0
- package/dist/commands/structure/index.d.ts.map +1 -0
- package/dist/commands/structure/index.js +20 -0
- package/dist/commands/structure/lock-outside-faces.d.ts +12 -0
- package/dist/commands/structure/lock-outside-faces.d.ts.map +1 -0
- package/dist/commands/structure/lock-outside-faces.js +32 -0
- package/dist/commands/structure/merge-zones.d.ts +5 -0
- package/dist/commands/structure/merge-zones.d.ts.map +1 -0
- package/dist/commands/structure/merge-zones.js +22 -0
- package/dist/commands/structure/mezzanine-content.d.ts +16 -0
- package/dist/commands/structure/mezzanine-content.d.ts.map +1 -0
- package/dist/commands/structure/mezzanine-content.js +109 -0
- package/dist/commands/structure/plan-mezzanine-stair.d.ts +7 -0
- package/dist/commands/structure/plan-mezzanine-stair.d.ts.map +1 -0
- package/dist/commands/structure/plan-mezzanine-stair.js +127 -0
- package/dist/commands/structure/plan-wall-deletion.d.ts +9 -0
- package/dist/commands/structure/plan-wall-deletion.d.ts.map +1 -0
- package/dist/commands/structure/plan-wall-deletion.js +151 -0
- package/dist/commands/structure/rebase-floor-reference.d.ts +7 -0
- package/dist/commands/structure/rebase-floor-reference.d.ts.map +1 -0
- package/dist/commands/structure/rebase-floor-reference.js +90 -0
- package/dist/commands/structure/resize-mezzanine.d.ts +8 -0
- package/dist/commands/structure/resize-mezzanine.d.ts.map +1 -0
- package/dist/commands/structure/resize-mezzanine.js +43 -0
- package/dist/commands/structure/rotate-zone.d.ts +8 -0
- package/dist/commands/structure/rotate-zone.d.ts.map +1 -0
- package/dist/commands/structure/rotate-zone.js +28 -0
- package/dist/commands/structure/set-floor-foundation.d.ts +62 -0
- package/dist/commands/structure/set-floor-foundation.d.ts.map +1 -0
- package/dist/commands/structure/set-floor-foundation.js +162 -0
- package/dist/commands/structure/set-room-floor-construction.d.ts +8 -0
- package/dist/commands/structure/set-room-floor-construction.d.ts.map +1 -0
- package/dist/commands/structure/set-room-floor-construction.js +72 -0
- package/dist/commands/structure/set-wall-geometry.d.ts +10 -0
- package/dist/commands/structure/set-wall-geometry.d.ts.map +1 -0
- package/dist/commands/structure/set-wall-geometry.js +52 -0
- package/dist/commands/structure/set-zone-edges.d.ts +14 -0
- package/dist/commands/structure/set-zone-edges.d.ts.map +1 -0
- package/dist/commands/structure/set-zone-edges.js +143 -0
- package/dist/commands/structure/set-zone-intent.d.ts +39 -0
- package/dist/commands/structure/set-zone-intent.d.ts.map +1 -0
- package/dist/commands/structure/set-zone-intent.js +125 -0
- package/dist/commands/structure/shared.d.ts +4512 -0
- package/dist/commands/structure/shared.d.ts.map +1 -0
- package/dist/commands/structure/shared.js +102 -0
- package/dist/commands/structure/transform-zone.d.ts +23 -0
- package/dist/commands/structure/transform-zone.d.ts.map +1 -0
- package/dist/commands/structure/transform-zone.js +472 -0
- package/dist/commands/structure/validate-mezzanine.d.ts +5 -0
- package/dist/commands/structure/validate-mezzanine.d.ts.map +1 -0
- package/dist/commands/structure/validate-mezzanine.js +46 -0
- package/dist/commands/structure/zone-crossings.d.ts +8 -0
- package/dist/commands/structure/zone-crossings.d.ts.map +1 -0
- package/dist/commands/structure/zone-crossings.js +162 -0
- package/dist/commands/structure/zone-drop.d.ts +4 -0
- package/dist/commands/structure/zone-drop.d.ts.map +1 -0
- package/dist/commands/structure/zone-drop.js +68 -0
- package/dist/commands/structure/zone-insertion.d.ts +4 -0
- package/dist/commands/structure/zone-insertion.d.ts.map +1 -0
- package/dist/commands/structure/zone-insertion.js +200 -0
- package/dist/commands/structure/zone-transform-content.d.ts +6 -0
- package/dist/commands/structure/zone-transform-content.d.ts.map +1 -0
- package/dist/commands/structure/zone-transform-content.js +117 -0
- package/dist/commands/structure/zone-wall-merge.d.ts +4977 -0
- package/dist/commands/structure/zone-wall-merge.d.ts.map +1 -0
- package/dist/commands/structure/zone-wall-merge.js +135 -0
- package/dist/contracts/reference-discovery.d.ts +18 -0
- package/dist/contracts/reference-discovery.d.ts.map +1 -0
- package/dist/contracts/reference-discovery.js +100 -0
- package/dist/contracts/reference-inventory.d.ts +44 -0
- package/dist/contracts/reference-inventory.d.ts.map +1 -0
- package/dist/contracts/reference-inventory.js +872 -0
- package/dist/events/bus.d.ts +70 -9
- package/dist/events/bus.d.ts.map +1 -1
- package/dist/hooks/scene-registry/item-clip-registry.d.ts +6 -3
- package/dist/hooks/scene-registry/item-clip-registry.d.ts.map +1 -1
- package/dist/hooks/scene-registry/item-clip-registry.js +2 -1
- package/dist/hooks/spatial-grid/floor-placed-elevation.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/floor-placed-elevation.js +15 -1
- package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts +3 -2
- package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/spatial-grid-manager.js +53 -66
- package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts +1650 -131
- package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/spatial-grid-sync.js +86 -83
- package/dist/hooks/spatial-grid/support-host-patch.d.ts +1 -0
- package/dist/hooks/spatial-grid/support-host-patch.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/support-host-patch.js +12 -5
- package/dist/index.d.ts +83 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +78 -11
- package/dist/lib/__bench__/near-linear-walls.d.ts +2 -0
- package/dist/lib/__bench__/near-linear-walls.d.ts.map +1 -0
- package/dist/lib/__bench__/near-linear-walls.js +24 -0
- package/dist/lib/__bench__/structure-preview.bench.d.ts +2 -0
- package/dist/lib/__bench__/structure-preview.bench.d.ts.map +1 -0
- package/dist/lib/__bench__/structure-preview.bench.js +72 -0
- package/dist/lib/__fixtures__/mezzanine.d.ts +13968 -0
- package/dist/lib/__fixtures__/mezzanine.d.ts.map +1 -0
- package/dist/lib/__fixtures__/mezzanine.js +43 -0
- package/dist/lib/absorb-wall-separators.d.ts +4483 -0
- package/dist/lib/absorb-wall-separators.d.ts.map +1 -0
- package/dist/lib/absorb-wall-separators.js +65 -0
- package/dist/lib/angle-accumulator.d.ts +3 -0
- package/dist/lib/angle-accumulator.d.ts.map +1 -0
- package/dist/lib/angle-accumulator.js +13 -0
- package/dist/lib/artifact-store.d.ts +31 -0
- package/dist/lib/artifact-store.d.ts.map +1 -0
- package/dist/lib/artifact-store.js +42 -0
- package/dist/lib/assembly-stack.d.ts +54 -0
- package/dist/lib/assembly-stack.d.ts.map +1 -0
- package/dist/lib/assembly-stack.js +52 -0
- package/dist/lib/asset-storage.d.ts.map +1 -1
- package/dist/lib/asset-storage.js +3 -0
- package/dist/lib/canonical-opening-ring.d.ts +3 -0
- package/dist/lib/canonical-opening-ring.d.ts.map +1 -0
- package/dist/lib/canonical-opening-ring.js +14 -0
- package/dist/lib/ceiling-children.d.ts +8 -0
- package/dist/lib/ceiling-children.d.ts.map +1 -0
- package/dist/lib/ceiling-children.js +36 -0
- package/dist/lib/ceiling-surface.d.ts +40 -0
- package/dist/lib/ceiling-surface.d.ts.map +1 -0
- package/dist/lib/ceiling-surface.js +65 -0
- package/dist/lib/cutter-host.d.ts +5 -0
- package/dist/lib/cutter-host.d.ts.map +1 -0
- package/dist/lib/cutter-host.js +30 -0
- package/dist/lib/floor-construction-lift.d.ts +4 -0
- package/dist/lib/floor-construction-lift.d.ts.map +1 -0
- package/dist/lib/floor-construction-lift.js +54 -0
- package/dist/lib/floor-footprint-key.d.ts +3 -0
- package/dist/lib/floor-footprint-key.d.ts.map +1 -0
- package/dist/lib/floor-footprint-key.js +9 -0
- package/dist/lib/floor-footprint-name.d.ts +11 -0
- package/dist/lib/floor-footprint-name.d.ts.map +1 -0
- package/dist/lib/floor-footprint-name.js +52 -0
- package/dist/lib/floor-foundation-datum.d.ts +31 -0
- package/dist/lib/floor-foundation-datum.d.ts.map +1 -0
- package/dist/lib/floor-foundation-datum.js +226 -0
- package/dist/lib/floor-foundation-stack.d.ts +16 -0
- package/dist/lib/floor-foundation-stack.d.ts.map +1 -0
- package/dist/lib/floor-foundation-stack.js +214 -0
- package/dist/lib/floor-intent-changes.d.ts +10 -0
- package/dist/lib/floor-intent-changes.d.ts.map +1 -0
- package/dist/lib/floor-intent-changes.js +461 -0
- package/dist/lib/floor-opening-footprints.d.ts +24 -0
- package/dist/lib/floor-opening-footprints.d.ts.map +1 -0
- package/dist/lib/floor-opening-footprints.js +127 -0
- package/dist/lib/floor-opening-intent.d.ts +16 -0
- package/dist/lib/floor-opening-intent.d.ts.map +1 -0
- package/dist/lib/floor-opening-intent.js +82 -0
- package/dist/lib/floor-plate-id.d.ts +5 -0
- package/dist/lib/floor-plate-id.d.ts.map +1 -0
- package/dist/lib/floor-plate-id.js +20 -0
- package/dist/lib/floor-plate-paint.d.ts +8 -0
- package/dist/lib/floor-plate-paint.d.ts.map +1 -0
- package/dist/lib/floor-plate-paint.js +11 -0
- package/dist/lib/floor-plates.d.ts +211 -0
- package/dist/lib/floor-plates.d.ts.map +1 -0
- package/dist/lib/floor-plates.js +729 -0
- package/dist/lib/floor-room-faces.d.ts +5 -0
- package/dist/lib/floor-room-faces.d.ts.map +1 -0
- package/dist/lib/floor-room-faces.js +29 -0
- package/dist/lib/floor-step-finish.d.ts +49 -0
- package/dist/lib/floor-step-finish.d.ts.map +1 -0
- package/dist/lib/floor-step-finish.js +128 -0
- package/dist/lib/geometry-script-node.d.ts +82 -0
- package/dist/lib/geometry-script-node.d.ts.map +1 -0
- package/dist/lib/geometry-script-node.js +147 -0
- package/dist/lib/geometry-surfaces.d.ts +61 -0
- package/dist/lib/geometry-surfaces.d.ts.map +1 -0
- package/dist/lib/geometry-surfaces.js +156 -0
- package/dist/lib/item-slab-support.d.ts +14 -0
- package/dist/lib/item-slab-support.d.ts.map +1 -0
- package/dist/lib/item-slab-support.js +40 -0
- package/dist/lib/level-footprints.d.ts +23 -0
- package/dist/lib/level-footprints.d.ts.map +1 -0
- package/dist/lib/level-footprints.js +398 -0
- package/dist/lib/level-name.d.ts +7 -0
- package/dist/lib/level-name.d.ts.map +1 -1
- package/dist/lib/level-name.js +11 -3
- package/dist/lib/new-zone.d.ts +10 -0
- package/dist/lib/new-zone.d.ts.map +1 -0
- package/dist/lib/new-zone.js +10 -0
- package/dist/lib/node-ancestry.d.ts +30 -0
- package/dist/lib/node-ancestry.d.ts.map +1 -0
- package/dist/lib/node-ancestry.js +76 -0
- package/dist/lib/node-visibility.d.ts +12 -0
- package/dist/lib/node-visibility.d.ts.map +1 -0
- package/dist/lib/node-visibility.js +12 -0
- package/dist/lib/object-cuts.d.ts +11 -0
- package/dist/lib/object-cuts.d.ts.map +1 -0
- package/dist/lib/object-cuts.js +63 -0
- package/dist/lib/opening-floor-datum.d.ts +24 -0
- package/dist/lib/opening-floor-datum.d.ts.map +1 -0
- package/dist/lib/opening-floor-datum.js +145 -0
- package/dist/lib/own-floor-intent.d.ts +15 -0
- package/dist/lib/own-floor-intent.d.ts.map +1 -0
- package/dist/lib/own-floor-intent.js +201 -0
- package/dist/lib/plate-reference.d.ts +3 -0
- package/dist/lib/plate-reference.d.ts.map +1 -0
- package/dist/lib/plate-reference.js +91 -0
- package/dist/lib/plate-surface.d.ts +120 -0
- package/dist/lib/plate-surface.d.ts.map +1 -0
- package/dist/lib/plate-surface.js +725 -0
- package/dist/lib/polygon-boolean.d.ts +17 -0
- package/dist/lib/polygon-boolean.d.ts.map +1 -0
- package/dist/lib/polygon-boolean.js +195 -0
- package/dist/lib/polygon-label.d.ts +7 -0
- package/dist/lib/polygon-label.d.ts.map +1 -0
- package/dist/lib/polygon-label.js +94 -0
- package/dist/lib/room-drawn-floor.d.ts +29 -0
- package/dist/lib/room-drawn-floor.d.ts.map +1 -0
- package/dist/lib/room-drawn-floor.js +88 -0
- package/dist/lib/room-floor-choices.d.ts +11 -0
- package/dist/lib/room-floor-choices.d.ts.map +1 -0
- package/dist/lib/room-floor-choices.js +60 -0
- package/dist/lib/room-floor-feasibility.d.ts +25 -0
- package/dist/lib/room-floor-feasibility.d.ts.map +1 -0
- package/dist/lib/room-floor-feasibility.js +293 -0
- package/dist/lib/room-floor-plate.d.ts +3 -0
- package/dist/lib/room-floor-plate.d.ts.map +1 -0
- package/dist/lib/room-floor-plate.js +4 -0
- package/dist/lib/room-graph.d.ts +79 -0
- package/dist/lib/room-graph.d.ts.map +1 -0
- package/dist/lib/room-graph.js +1265 -0
- package/dist/lib/room-name.d.ts +10 -0
- package/dist/lib/room-name.d.ts.map +1 -0
- package/dist/lib/room-name.js +22 -0
- package/dist/lib/room-topology-index.d.ts +53 -5
- package/dist/lib/room-topology-index.d.ts.map +1 -1
- package/dist/lib/room-topology-index.js +176 -30
- package/dist/lib/room-vertical-placement.d.ts +12 -0
- package/dist/lib/room-vertical-placement.d.ts.map +1 -0
- package/dist/lib/room-vertical-placement.js +28 -0
- package/dist/lib/room-zone-adoption.d.ts +74 -0
- package/dist/lib/room-zone-adoption.d.ts.map +1 -0
- package/dist/lib/room-zone-adoption.js +150 -0
- package/dist/lib/setback-envelope.d.ts +73 -0
- package/dist/lib/setback-envelope.d.ts.map +1 -0
- package/dist/lib/setback-envelope.js +506 -0
- package/dist/lib/slab-polygon.d.ts.map +1 -1
- package/dist/lib/slab-polygon.js +33 -12
- package/dist/lib/slots.d.ts +20 -0
- package/dist/lib/slots.d.ts.map +1 -1
- package/dist/lib/slots.js +44 -0
- package/dist/lib/space-detection.d.ts +14 -94
- package/dist/lib/space-detection.d.ts.map +1 -1
- package/dist/lib/space-detection.js +244 -1616
- package/dist/lib/structure-commit.d.ts +38 -0
- package/dist/lib/structure-commit.d.ts.map +1 -0
- package/dist/lib/structure-commit.js +52 -0
- package/dist/lib/structure-kernel.d.ts +66 -0
- package/dist/lib/structure-kernel.d.ts.map +1 -0
- package/dist/lib/structure-kernel.js +735 -0
- package/dist/lib/structure-reconcile.d.ts +15 -0
- package/dist/lib/structure-reconcile.d.ts.map +1 -0
- package/dist/lib/structure-reconcile.js +218 -0
- package/dist/lib/terrain-contours.d.ts +29 -0
- package/dist/lib/terrain-contours.d.ts.map +1 -0
- package/dist/lib/terrain-contours.js +199 -0
- package/dist/lib/terrain-source-persisted.d.ts +42 -0
- package/dist/lib/terrain-source-persisted.d.ts.map +1 -0
- package/dist/lib/terrain-source-persisted.js +68 -0
- package/dist/lib/terrain-source.d.ts +2 -40
- package/dist/lib/terrain-source.d.ts.map +1 -1
- package/dist/lib/terrain-source.js +2 -68
- package/dist/lib/terrain-support-query.d.ts +83 -0
- package/dist/lib/terrain-support-query.d.ts.map +1 -0
- package/dist/lib/terrain-support-query.js +187 -0
- package/dist/lib/terrain-support.d.ts +1 -77
- package/dist/lib/terrain-support.d.ts.map +1 -1
- package/dist/lib/terrain-support.js +3 -181
- package/dist/lib/unit-containment.js +2 -2
- package/dist/lib/unit-report.d.ts.map +1 -1
- package/dist/lib/unit-report.js +5 -4
- package/dist/lib/zone-colors.d.ts +11 -0
- package/dist/lib/zone-colors.d.ts.map +1 -0
- package/dist/lib/zone-colors.js +32 -0
- package/dist/lib/zone-quantities.d.ts.map +1 -1
- package/dist/lib/zone-quantities.js +113 -223
- package/dist/material-library.d.ts +9 -1
- package/dist/material-library.d.ts.map +1 -1
- package/dist/material-library.js +550 -1
- package/dist/node-slots/block.d.ts +7 -0
- package/dist/node-slots/block.d.ts.map +1 -0
- package/dist/node-slots/block.js +27 -0
- package/dist/node-slots/cabinet.d.ts +4 -0
- package/dist/node-slots/cabinet.d.ts.map +1 -0
- package/dist/node-slots/cabinet.js +24 -0
- package/dist/node-slots/ceiling.d.ts +6 -0
- package/dist/node-slots/ceiling.d.ts.map +1 -0
- package/dist/node-slots/ceiling.js +7 -0
- package/dist/node-slots/column.d.ts +9 -0
- package/dist/node-slots/column.d.ts.map +1 -0
- package/dist/node-slots/column.js +24 -0
- package/dist/node-slots/door.d.ts +9 -0
- package/dist/node-slots/door.d.ts.map +1 -0
- package/dist/node-slots/door.js +20 -0
- package/dist/node-slots/duct.d.ts +5 -0
- package/dist/node-slots/duct.d.ts.map +1 -0
- package/dist/node-slots/duct.js +5 -0
- package/dist/node-slots/elevator.d.ts +9 -0
- package/dist/node-slots/elevator.d.ts.map +1 -0
- package/dist/node-slots/elevator.js +17 -0
- package/dist/node-slots/fence.d.ts +10 -0
- package/dist/node-slots/fence.d.ts.map +1 -0
- package/dist/node-slots/fence.js +23 -0
- package/dist/node-slots/index.d.ts +25 -0
- package/dist/node-slots/index.d.ts.map +1 -0
- package/dist/node-slots/index.js +92 -0
- package/dist/node-slots/lean-to-extension.d.ts +5 -0
- package/dist/node-slots/lean-to-extension.d.ts.map +1 -0
- package/dist/node-slots/lean-to-extension.js +15 -0
- package/dist/node-slots/procedural-item.d.ts +4 -0
- package/dist/node-slots/procedural-item.d.ts.map +1 -0
- package/dist/node-slots/procedural-item.js +3 -0
- package/dist/node-slots/roof-accessories.d.ts +9 -0
- package/dist/node-slots/roof-accessories.d.ts.map +1 -0
- package/dist/node-slots/roof-accessories.js +34 -0
- package/dist/node-slots/shelf.d.ts +9 -0
- package/dist/node-slots/shelf.d.ts.map +1 -0
- package/dist/node-slots/shelf.js +30 -0
- package/dist/node-slots/slab.d.ts +7 -0
- package/dist/node-slots/slab.d.ts.map +1 -0
- package/dist/node-slots/slab.js +21 -0
- package/dist/node-slots/stair.d.ts +8 -0
- package/dist/node-slots/stair.d.ts.map +1 -0
- package/dist/node-slots/stair.js +17 -0
- package/dist/node-slots/wall.d.ts +12 -0
- package/dist/node-slots/wall.d.ts.map +1 -0
- package/dist/node-slots/wall.js +55 -0
- package/dist/node-slots/window.d.ts +5 -0
- package/dist/node-slots/window.d.ts.map +1 -0
- package/dist/node-slots/window.js +11 -0
- package/dist/procedural-items/design-placement.d.ts +49 -0
- package/dist/procedural-items/design-placement.d.ts.map +1 -0
- package/dist/procedural-items/design-placement.js +129 -0
- package/dist/procedural-items/design.d.ts +261 -0
- package/dist/procedural-items/design.d.ts.map +1 -0
- package/dist/procedural-items/design.js +707 -0
- package/dist/procedural-items/fixtures.d.ts +464 -24
- package/dist/procedural-items/fixtures.d.ts.map +1 -1
- package/dist/procedural-items/index.d.ts +5 -0
- package/dist/procedural-items/index.d.ts.map +1 -1
- package/dist/procedural-items/index.js +5 -0
- package/dist/procedural-items/integration.d.ts +127 -6
- package/dist/procedural-items/integration.d.ts.map +1 -1
- package/dist/procedural-items/joints.d.ts +56 -0
- package/dist/procedural-items/joints.d.ts.map +1 -0
- package/dist/procedural-items/joints.js +251 -0
- package/dist/procedural-items/library-colors.d.ts +12 -0
- package/dist/procedural-items/library-colors.d.ts.map +1 -1
- package/dist/procedural-items/library-colors.js +37 -3
- package/dist/procedural-items/motion-controller.d.ts +29 -0
- package/dist/procedural-items/motion-controller.d.ts.map +1 -0
- package/dist/procedural-items/motion-controller.js +130 -0
- package/dist/procedural-items/node.d.ts +490 -24
- package/dist/procedural-items/node.d.ts.map +1 -1
- package/dist/procedural-items/query.d.ts +19 -1
- package/dist/procedural-items/query.d.ts.map +1 -1
- package/dist/procedural-items/query.js +131 -48
- package/dist/procedural-items/recipe.d.ts +258 -14
- package/dist/procedural-items/recipe.d.ts.map +1 -1
- package/dist/procedural-items/recipe.js +933 -61
- package/dist/procedural-items/section.d.ts +27 -0
- package/dist/procedural-items/section.d.ts.map +1 -0
- package/dist/procedural-items/section.js +237 -0
- package/dist/procedural-items/spatial.d.ts +21 -0
- package/dist/procedural-items/spatial.d.ts.map +1 -1
- package/dist/procedural-items/spatial.js +90 -0
- package/dist/registry/handles.d.ts +30 -1
- package/dist/registry/handles.d.ts.map +1 -1
- package/dist/registry/index.d.ts +7 -5
- package/dist/registry/index.d.ts.map +1 -1
- package/dist/registry/index.js +4 -2
- package/dist/registry/mechanism.d.ts +9 -0
- package/dist/registry/mechanism.d.ts.map +1 -0
- package/dist/registry/mechanism.js +21 -0
- package/dist/registry/registry.d.ts +6 -3
- package/dist/registry/registry.d.ts.map +1 -1
- package/dist/registry/registry.js +59 -22
- package/dist/registry/scene-api.d.ts +20 -0
- package/dist/registry/scene-api.d.ts.map +1 -1
- package/dist/registry/scene-api.js +26 -13
- package/dist/registry/subtree.d.ts +8 -0
- package/dist/registry/subtree.d.ts.map +1 -1
- package/dist/registry/subtree.js +59 -0
- package/dist/registry/types.d.ts +352 -13
- package/dist/registry/types.d.ts.map +1 -1
- package/dist/schema/__fixtures__/node-fixtures.d.ts.map +1 -1
- package/dist/schema/__fixtures__/node-fixtures.js +2 -0
- package/dist/schema/assembly.d.ts +153 -0
- package/dist/schema/assembly.d.ts.map +1 -0
- package/dist/schema/assembly.js +155 -0
- package/dist/schema/asset-url.d.ts +2 -1
- package/dist/schema/asset-url.d.ts.map +1 -1
- package/dist/schema/asset-url.js +5 -2
- package/dist/schema/base.d.ts +26 -0
- package/dist/schema/base.d.ts.map +1 -1
- package/dist/schema/base.js +2 -0
- package/dist/schema/collection-templates.d.ts +46 -0
- package/dist/schema/collection-templates.d.ts.map +1 -0
- package/dist/schema/collection-templates.js +14 -0
- package/dist/schema/collections.d.ts +7 -0
- package/dist/schema/collections.d.ts.map +1 -1
- package/dist/schema/cut.d.ts +29 -0
- package/dist/schema/cut.d.ts.map +1 -0
- package/dist/schema/cut.js +50 -0
- package/dist/schema/geometry-metadata.d.ts +51 -0
- package/dist/schema/geometry-metadata.d.ts.map +1 -0
- package/dist/schema/geometry-metadata.js +57 -0
- package/dist/schema/geometry-source.d.ts +250 -0
- package/dist/schema/geometry-source.d.ts.map +1 -0
- package/dist/schema/geometry-source.js +130 -0
- package/dist/schema/index.d.ts +20 -7
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/index.js +22 -5
- package/dist/schema/nodes/block.d.ts +28 -2
- package/dist/schema/nodes/block.d.ts.map +1 -1
- package/dist/schema/nodes/block.js +22 -9
- package/dist/schema/nodes/box-vent.d.ts +26 -0
- package/dist/schema/nodes/box-vent.d.ts.map +1 -1
- package/dist/schema/nodes/building.d.ts +26 -0
- package/dist/schema/nodes/building.d.ts.map +1 -1
- package/dist/schema/nodes/cabinet.d.ts +61 -9
- package/dist/schema/nodes/cabinet.d.ts.map +1 -1
- package/dist/schema/nodes/ceiling.d.ts +37 -0
- package/dist/schema/nodes/ceiling.d.ts.map +1 -1
- package/dist/schema/nodes/ceiling.js +8 -0
- package/dist/schema/nodes/chimney.d.ts +26 -0
- package/dist/schema/nodes/chimney.d.ts.map +1 -1
- package/dist/schema/nodes/column.d.ts +126 -0
- package/dist/schema/nodes/column.d.ts.map +1 -1
- package/dist/schema/nodes/column.js +2 -0
- package/dist/schema/nodes/construction-dimension.d.ts +26 -0
- package/dist/schema/nodes/construction-dimension.d.ts.map +1 -1
- package/dist/schema/nodes/cupola.d.ts +26 -0
- package/dist/schema/nodes/cupola.d.ts.map +1 -1
- package/dist/schema/nodes/curtain-wall.d.ts +129 -0
- package/dist/schema/nodes/curtain-wall.d.ts.map +1 -0
- package/dist/schema/nodes/curtain-wall.js +49 -0
- package/dist/schema/nodes/door.d.ts +141 -22
- package/dist/schema/nodes/door.d.ts.map +1 -1
- package/dist/schema/nodes/door.js +18 -33
- package/dist/schema/nodes/dormer.d.ts +28 -2
- package/dist/schema/nodes/dormer.d.ts.map +1 -1
- package/dist/schema/nodes/downspout.d.ts +27 -1
- package/dist/schema/nodes/downspout.d.ts.map +1 -1
- package/dist/schema/nodes/duct-fitting.d.ts +27 -1
- package/dist/schema/nodes/duct-fitting.d.ts.map +1 -1
- package/dist/schema/nodes/duct-segment.d.ts +27 -1
- package/dist/schema/nodes/duct-segment.d.ts.map +1 -1
- package/dist/schema/nodes/duct-terminal.d.ts +26 -0
- package/dist/schema/nodes/duct-terminal.d.ts.map +1 -1
- package/dist/schema/nodes/elevator.d.ts +26 -0
- package/dist/schema/nodes/elevator.d.ts.map +1 -1
- package/dist/schema/nodes/eyebrow-vent.d.ts +26 -0
- package/dist/schema/nodes/eyebrow-vent.d.ts.map +1 -1
- package/dist/schema/nodes/fence-feature.d.ts +141 -0
- package/dist/schema/nodes/fence-feature.d.ts.map +1 -0
- package/dist/schema/nodes/fence-feature.js +21 -0
- package/dist/schema/nodes/fence.d.ts +186 -0
- package/dist/schema/nodes/fence.d.ts.map +1 -1
- package/dist/schema/nodes/fence.js +92 -7
- package/dist/schema/nodes/floor-opening.d.ts +61 -0
- package/dist/schema/nodes/floor-opening.d.ts.map +1 -0
- package/dist/schema/nodes/floor-opening.js +17 -0
- package/dist/schema/nodes/guide.d.ts +26 -0
- package/dist/schema/nodes/guide.d.ts.map +1 -1
- package/dist/schema/nodes/gutter.d.ts +26 -0
- package/dist/schema/nodes/gutter.d.ts.map +1 -1
- package/dist/schema/nodes/hvac-equipment.d.ts +26 -0
- package/dist/schema/nodes/hvac-equipment.d.ts.map +1 -1
- package/dist/schema/nodes/imported-mesh.d.ts +26 -0
- package/dist/schema/nodes/imported-mesh.d.ts.map +1 -1
- package/dist/schema/nodes/item.d.ts +153 -2
- package/dist/schema/nodes/item.d.ts.map +1 -1
- package/dist/schema/nodes/item.js +13 -0
- package/dist/schema/nodes/lean-to-extension.d.ts +26 -0
- package/dist/schema/nodes/lean-to-extension.d.ts.map +1 -1
- package/dist/schema/nodes/level.d.ts +27 -1
- package/dist/schema/nodes/level.d.ts.map +1 -1
- package/dist/schema/nodes/lineset.d.ts +26 -0
- package/dist/schema/nodes/lineset.d.ts.map +1 -1
- package/dist/schema/nodes/liquid-line.d.ts +26 -0
- package/dist/schema/nodes/liquid-line.d.ts.map +1 -1
- package/dist/schema/nodes/measurement.d.ts +26 -0
- package/dist/schema/nodes/measurement.d.ts.map +1 -1
- package/dist/schema/nodes/opening-types.d.ts +41 -0
- package/dist/schema/nodes/opening-types.d.ts.map +1 -0
- package/dist/schema/nodes/opening-types.js +48 -0
- package/dist/schema/nodes/pipe-fitting.d.ts +26 -0
- package/dist/schema/nodes/pipe-fitting.d.ts.map +1 -1
- package/dist/schema/nodes/pipe-segment.d.ts +26 -0
- package/dist/schema/nodes/pipe-segment.d.ts.map +1 -1
- package/dist/schema/nodes/pipe-trap.d.ts +26 -0
- package/dist/schema/nodes/pipe-trap.d.ts.map +1 -1
- package/dist/schema/nodes/ridge-vent.d.ts +26 -0
- package/dist/schema/nodes/ridge-vent.d.ts.map +1 -1
- package/dist/schema/nodes/roof-segment-walls.d.ts.map +1 -1
- package/dist/schema/nodes/roof-segment-walls.js +2 -1
- package/dist/schema/nodes/roof-segment.d.ts +30 -2
- package/dist/schema/nodes/roof-segment.d.ts.map +1 -1
- package/dist/schema/nodes/roof-segment.js +9 -0
- package/dist/schema/nodes/roof.d.ts +101 -0
- package/dist/schema/nodes/roof.d.ts.map +1 -1
- package/dist/schema/nodes/roof.js +6 -0
- package/dist/schema/nodes/scan.d.ts +26 -0
- package/dist/schema/nodes/scan.d.ts.map +1 -1
- package/dist/schema/nodes/separator.d.ts +50 -0
- package/dist/schema/nodes/separator.d.ts.map +1 -0
- package/dist/schema/nodes/separator.js +8 -0
- package/dist/schema/nodes/shelf.d.ts +26 -0
- package/dist/schema/nodes/shelf.d.ts.map +1 -1
- package/dist/schema/nodes/site.d.ts +192 -0
- package/dist/schema/nodes/site.d.ts.map +1 -1
- package/dist/schema/nodes/site.js +178 -1
- package/dist/schema/nodes/skylight.d.ts +30 -4
- package/dist/schema/nodes/skylight.d.ts.map +1 -1
- package/dist/schema/nodes/slab.d.ts +84 -0
- package/dist/schema/nodes/slab.d.ts.map +1 -1
- package/dist/schema/nodes/slab.js +37 -2
- package/dist/schema/nodes/solar-panel.d.ts +26 -0
- package/dist/schema/nodes/solar-panel.d.ts.map +1 -1
- package/dist/schema/nodes/spawn.d.ts +26 -0
- package/dist/schema/nodes/spawn.d.ts.map +1 -1
- package/dist/schema/nodes/stair-construction.d.ts +21 -0
- package/dist/schema/nodes/stair-construction.d.ts.map +1 -0
- package/dist/schema/nodes/stair-construction.js +13 -0
- package/dist/schema/nodes/stair-design-targets.d.ts +9 -0
- package/dist/schema/nodes/stair-design-targets.d.ts.map +1 -0
- package/dist/schema/nodes/stair-design-targets.js +7 -0
- package/dist/schema/nodes/stair-segment.d.ts +72 -4
- package/dist/schema/nodes/stair-segment.d.ts.map +1 -1
- package/dist/schema/nodes/stair-segment.js +13 -0
- package/dist/schema/nodes/stair.d.ts +119 -2
- package/dist/schema/nodes/stair.d.ts.map +1 -1
- package/dist/schema/nodes/stair.js +59 -2
- package/dist/schema/nodes/structural-grid.d.ts +26 -0
- package/dist/schema/nodes/structural-grid.d.ts.map +1 -1
- package/dist/schema/nodes/surface-hole-metadata.d.ts +3 -0
- package/dist/schema/nodes/surface-hole-metadata.d.ts.map +1 -1
- package/dist/schema/nodes/surface-hole-metadata.js +2 -1
- package/dist/schema/nodes/surface-paint-region.d.ts +14 -0
- package/dist/schema/nodes/surface-paint-region.d.ts.map +1 -0
- package/dist/schema/nodes/surface-paint-region.js +12 -0
- package/dist/schema/nodes/turbine-vent.d.ts +26 -0
- package/dist/schema/nodes/turbine-vent.d.ts.map +1 -1
- package/dist/schema/nodes/unit.d.ts +26 -0
- package/dist/schema/nodes/unit.d.ts.map +1 -1
- package/dist/schema/nodes/wall.d.ts +423 -59
- package/dist/schema/nodes/wall.d.ts.map +1 -1
- package/dist/schema/nodes/wall.js +188 -186
- package/dist/schema/nodes/window.d.ts +139 -20
- package/dist/schema/nodes/window.d.ts.map +1 -1
- package/dist/schema/nodes/window.js +12 -14
- package/dist/schema/nodes/zone.d.ts +69 -1
- package/dist/schema/nodes/zone.d.ts.map +1 -1
- package/dist/schema/nodes/zone.js +46 -0
- package/dist/schema/provenance.d.ts +118 -0
- package/dist/schema/provenance.d.ts.map +1 -0
- package/dist/schema/provenance.js +76 -0
- package/dist/schema/source-ref.d.ts +23 -0
- package/dist/schema/source-ref.d.ts.map +1 -0
- package/dist/schema/source-ref.js +29 -0
- package/dist/schema/types.d.ts +3389 -67
- package/dist/schema/types.d.ts.map +1 -1
- package/dist/schema/types.js +7 -0
- package/dist/services/__fixtures__/hosting.d.ts +3 -0
- package/dist/services/__fixtures__/hosting.d.ts.map +1 -0
- package/dist/services/__fixtures__/hosting.js +9 -0
- package/dist/services/__fixtures__/shelf-surface-rows.d.ts +4 -0
- package/dist/services/__fixtures__/shelf-surface-rows.d.ts.map +1 -0
- package/dist/services/__fixtures__/shelf-surface-rows.js +18 -0
- package/dist/services/alignment-anchors.d.ts +2 -1
- package/dist/services/alignment-anchors.d.ts.map +1 -1
- package/dist/services/alignment-anchors.js +9 -6
- package/dist/services/hosting.d.ts +3 -0
- package/dist/services/hosting.d.ts.map +1 -1
- package/dist/services/hosting.js +24 -7
- package/dist/services/index.d.ts +4 -4
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +4 -4
- package/dist/services/level-height.d.ts.map +1 -1
- package/dist/services/level-height.js +6 -4
- package/dist/services/snap.d.ts +3 -0
- package/dist/services/snap.d.ts.map +1 -1
- package/dist/services/snap.js +11 -0
- package/dist/services/storey.d.ts +21 -1
- package/dist/services/storey.d.ts.map +1 -1
- package/dist/services/storey.js +94 -8
- package/dist/services/surface-hosting.d.ts +6 -2
- package/dist/services/surface-hosting.d.ts.map +1 -1
- package/dist/services/surface-hosting.js +51 -11
- package/dist/store/actions/node-actions.d.ts +4563 -8
- package/dist/store/actions/node-actions.d.ts.map +1 -1
- package/dist/store/actions/node-actions.js +497 -269
- package/dist/store/derived-node-guard.d.ts +84 -0
- package/dist/store/derived-node-guard.d.ts.map +1 -0
- package/dist/store/derived-node-guard.js +586 -0
- package/dist/store/history-control.d.ts +34 -0
- package/dist/store/history-control.d.ts.map +1 -1
- package/dist/store/history-control.js +99 -1
- package/dist/store/history-drafts.d.ts +48 -0
- package/dist/store/history-drafts.d.ts.map +1 -0
- package/dist/store/history-drafts.js +403 -0
- package/dist/store/history-invalidation.d.ts.map +1 -1
- package/dist/store/history-invalidation.js +1 -0
- package/dist/store/item-interaction.d.ts +28 -0
- package/dist/store/item-interaction.d.ts.map +1 -0
- package/dist/store/item-interaction.js +34 -0
- package/dist/store/registered-node-defaults.d.ts +11 -0
- package/dist/store/registered-node-defaults.d.ts.map +1 -0
- package/dist/store/registered-node-defaults.js +25 -0
- package/dist/store/scene-annotations.d.ts +8969 -0
- package/dist/store/scene-annotations.d.ts.map +1 -0
- package/dist/store/scene-annotations.js +107 -0
- package/dist/store/use-interactive.d.ts +23 -1
- package/dist/store/use-interactive.d.ts.map +1 -1
- package/dist/store/use-interactive.js +128 -5
- package/dist/store/use-scene.d.ts +68 -12
- package/dist/store/use-scene.d.ts.map +1 -1
- package/dist/store/use-scene.js +429 -306
- package/dist/systems/elevator/elevator-opening-sync.d.ts.map +1 -1
- package/dist/systems/elevator/elevator-opening-sync.js +4 -6
- package/dist/systems/elevator/elevator-opening-system.d.ts.map +1 -1
- package/dist/systems/elevator/elevator-opening-system.js +12 -6
- package/dist/systems/elevator/elevator-service.d.ts.map +1 -1
- package/dist/systems/elevator/elevator-service.js +8 -3
- package/dist/systems/fence/fence-centerline.d.ts.map +1 -1
- package/dist/systems/fence/fence-centerline.js +6 -5
- package/dist/systems/fence/fence-features.d.ts +36 -0
- package/dist/systems/fence/fence-features.d.ts.map +1 -0
- package/dist/systems/fence/fence-features.js +105 -0
- package/dist/systems/fence/fence-spline.d.ts +8 -5
- package/dist/systems/fence/fence-spline.d.ts.map +1 -1
- package/dist/systems/fence/fence-spline.js +51 -16
- package/dist/systems/owned-floor-openings.d.ts +9 -0
- package/dist/systems/owned-floor-openings.d.ts.map +1 -0
- package/dist/systems/owned-floor-openings.js +326 -0
- package/dist/systems/reconcile-owned-floor-openings.d.ts +3 -0
- package/dist/systems/reconcile-owned-floor-openings.d.ts.map +1 -0
- package/dist/systems/reconcile-owned-floor-openings.js +25 -0
- package/dist/systems/slab/__fixtures__/doorway-steps.d.ts +8 -0
- package/dist/systems/slab/__fixtures__/doorway-steps.d.ts.map +1 -0
- package/dist/systems/slab/__fixtures__/doorway-steps.js +62 -0
- package/dist/systems/slab/__fixtures__/floor-step.d.ts +5636 -0
- package/dist/systems/slab/__fixtures__/floor-step.d.ts.map +1 -0
- package/dist/systems/slab/__fixtures__/floor-step.js +66 -0
- package/dist/systems/slab/__fixtures__/raised-room.d.ts +5775 -0
- package/dist/systems/slab/__fixtures__/raised-room.d.ts.map +1 -0
- package/dist/systems/slab/__fixtures__/raised-room.js +54 -0
- package/dist/systems/slab/ensure-slab-openings.d.ts +9 -0
- package/dist/systems/slab/ensure-slab-openings.d.ts.map +1 -0
- package/dist/systems/slab/ensure-slab-openings.js +41 -0
- package/dist/systems/slab/slab-support.d.ts +25 -6
- package/dist/systems/slab/slab-support.d.ts.map +1 -1
- package/dist/systems/slab/slab-support.js +471 -54
- package/dist/systems/stair/stair-base-elevation.d.ts +3 -0
- package/dist/systems/stair/stair-base-elevation.d.ts.map +1 -0
- package/dist/systems/stair/stair-base-elevation.js +49 -0
- package/dist/systems/stair/stair-clearance.d.ts +39 -0
- package/dist/systems/stair/stair-clearance.d.ts.map +1 -0
- package/dist/systems/stair/stair-clearance.js +508 -0
- package/dist/systems/stair/stair-construction.d.ts +37 -0
- package/dist/systems/stair/stair-construction.d.ts.map +1 -0
- package/dist/systems/stair/stair-construction.js +314 -0
- package/dist/systems/stair/stair-detail-budget.d.ts +13 -0
- package/dist/systems/stair/stair-detail-budget.d.ts.map +1 -0
- package/dist/systems/stair/stair-detail-budget.js +64 -0
- package/dist/systems/stair/stair-flight.d.ts +2 -2
- package/dist/systems/stair/stair-flight.d.ts.map +1 -1
- package/dist/systems/stair/stair-flight.js +4 -3
- package/dist/systems/stair/stair-floor-footprints.d.ts +7 -0
- package/dist/systems/stair/stair-floor-footprints.d.ts.map +1 -0
- package/dist/systems/stair/stair-floor-footprints.js +113 -0
- package/dist/systems/stair/stair-footprint.d.ts +3 -1
- package/dist/systems/stair/stair-footprint.d.ts.map +1 -1
- package/dist/systems/stair/stair-footprint.js +97 -44
- package/dist/systems/stair/stair-layout.d.ts +39 -0
- package/dist/systems/stair/stair-layout.d.ts.map +1 -0
- package/dist/systems/stair/stair-layout.js +58 -0
- package/dist/systems/stair/stair-opening-preview.d.ts +1650 -84
- package/dist/systems/stair/stair-opening-preview.d.ts.map +1 -1
- package/dist/systems/stair/stair-opening-sync.d.ts +8 -2
- package/dist/systems/stair/stair-opening-sync.d.ts.map +1 -1
- package/dist/systems/stair/stair-opening-sync.js +136 -315
- package/dist/systems/stair/stair-opening-system.d.ts.map +1 -1
- package/dist/systems/stair/stair-opening-system.js +40 -8
- package/dist/systems/stair/stair-presets.d.ts +276 -0
- package/dist/systems/stair/stair-presets.d.ts.map +1 -0
- package/dist/systems/stair/stair-presets.js +151 -0
- package/dist/systems/stair/stair-rail-budget.d.ts +6 -0
- package/dist/systems/stair/stair-rail-budget.d.ts.map +1 -0
- package/dist/systems/stair/stair-rail-budget.js +36 -0
- package/dist/systems/stair/stair-rail-path.d.ts +22 -0
- package/dist/systems/stair/stair-rail-path.d.ts.map +1 -0
- package/dist/systems/stair/stair-rail-path.js +497 -0
- package/dist/systems/stair/stair-rise-edit.d.ts +9 -0
- package/dist/systems/stair/stair-rise-edit.d.ts.map +1 -0
- package/dist/systems/stair/stair-rise-edit.js +46 -0
- package/dist/systems/stair/stair-rise-query.d.ts +24 -0
- package/dist/systems/stair/stair-rise-query.d.ts.map +1 -0
- package/dist/systems/stair/stair-rise-query.js +125 -0
- package/dist/systems/stair/stair-rise.d.ts +4 -19
- package/dist/systems/stair/stair-rise.d.ts.map +1 -1
- package/dist/systems/stair/stair-rise.js +8 -71
- package/dist/systems/stair/stair-sizing.d.ts +414 -0
- package/dist/systems/stair/stair-sizing.d.ts.map +1 -0
- package/dist/systems/stair/stair-sizing.js +255 -0
- package/dist/systems/stair/stair-sweep-edit.d.ts +7 -0
- package/dist/systems/stair/stair-sweep-edit.d.ts.map +1 -0
- package/dist/systems/stair/stair-sweep-edit.js +8 -0
- package/dist/systems/stair/stair-walking-line.d.ts +5 -0
- package/dist/systems/stair/stair-walking-line.d.ts.map +1 -0
- package/dist/systems/stair/stair-walking-line.js +91 -0
- package/dist/systems/stair/stair-winder.d.ts +36 -0
- package/dist/systems/stair/stair-winder.d.ts.map +1 -0
- package/dist/systems/stair/stair-winder.js +173 -0
- package/dist/systems/wall/wall-assembly.d.ts +234 -0
- package/dist/systems/wall/wall-assembly.d.ts.map +1 -0
- package/dist/systems/wall/wall-assembly.js +854 -0
- package/dist/systems/wall/wall-curve.d.ts +2 -1
- package/dist/systems/wall/wall-curve.d.ts.map +1 -1
- package/dist/systems/wall/wall-curve.js +21 -5
- package/dist/systems/wall/wall-finish.d.ts +102 -0
- package/dist/systems/wall/wall-finish.d.ts.map +1 -0
- package/dist/systems/wall/wall-finish.js +264 -0
- package/dist/systems/wall/wall-footprint.d.ts +3 -0
- package/dist/systems/wall/wall-footprint.d.ts.map +1 -1
- package/dist/systems/wall/wall-footprint.js +15 -13
- package/dist/systems/wall/wall-frame.d.ts +45 -0
- package/dist/systems/wall/wall-frame.d.ts.map +1 -0
- package/dist/systems/wall/wall-frame.js +162 -0
- package/dist/systems/wall/wall-layer-bands.d.ts +38 -0
- package/dist/systems/wall/wall-layer-bands.d.ts.map +1 -0
- package/dist/systems/wall/wall-layer-bands.js +109 -0
- package/dist/systems/wall/wall-merge.d.ts +57 -0
- package/dist/systems/wall/wall-merge.d.ts.map +1 -0
- package/dist/systems/wall/wall-merge.js +411 -0
- package/dist/systems/wall/wall-mitering.d.ts +6 -5
- package/dist/systems/wall/wall-mitering.d.ts.map +1 -1
- package/dist/systems/wall/wall-mitering.js +70 -20
- package/dist/systems/wall/wall-operations.d.ts +28 -0
- package/dist/systems/wall/wall-operations.d.ts.map +1 -0
- package/dist/systems/wall/wall-operations.js +146 -0
- package/dist/systems/wall/wall-paint-plan.d.ts +30 -0
- package/dist/systems/wall/wall-paint-plan.d.ts.map +1 -0
- package/dist/systems/wall/wall-paint-plan.js +167 -0
- package/dist/systems/wall/wall-room-sides.d.ts +6 -0
- package/dist/systems/wall/wall-room-sides.d.ts.map +1 -0
- package/dist/systems/wall/wall-room-sides.js +14 -0
- package/dist/systems/wall/wall-step-openings.d.ts +17 -0
- package/dist/systems/wall/wall-step-openings.d.ts.map +1 -0
- package/dist/systems/wall/wall-step-openings.js +32 -0
- package/dist/systems/wall/wall-top.d.ts +2 -6
- package/dist/systems/wall/wall-top.d.ts.map +1 -1
- package/dist/systems/wall/wall-top.js +3 -9
- package/dist/systems/wall/wall-topology.d.ts +28 -0
- package/dist/systems/wall/wall-topology.d.ts.map +1 -1
- package/dist/systems/wall/wall-topology.js +458 -9
- package/dist/utils/clone-scene-graph.d.ts +6 -0
- package/dist/utils/clone-scene-graph.d.ts.map +1 -1
- package/dist/utils/clone-scene-graph.js +123 -15
- package/dist/utils/ensure-scene-openings.d.ts +8965 -0
- package/dist/utils/ensure-scene-openings.d.ts.map +1 -0
- package/dist/utils/ensure-scene-openings.js +29 -0
- package/dist/utils/exterior-threshold-migration.d.ts +4 -0
- package/dist/utils/exterior-threshold-migration.d.ts.map +1 -0
- package/dist/utils/exterior-threshold-migration.js +114 -0
- package/dist/utils/floor-follow-migration.d.ts +3 -0
- package/dist/utils/floor-follow-migration.d.ts.map +1 -0
- package/dist/utils/floor-follow-migration.js +29 -0
- package/dist/utils/floor-opening-migration.d.ts +13 -0
- package/dist/utils/floor-opening-migration.d.ts.map +1 -0
- package/dist/utils/floor-opening-migration.js +148 -0
- package/dist/utils/floor-piece-adoption.d.ts +50 -0
- package/dist/utils/floor-piece-adoption.d.ts.map +1 -0
- package/dist/utils/floor-piece-adoption.js +182 -0
- package/dist/utils/floor-plate-migration.d.ts +4507 -0
- package/dist/utils/floor-plate-migration.d.ts.map +1 -0
- package/dist/utils/floor-plate-migration.js +1360 -0
- package/dist/utils/heal-plan-coordinates.d.ts +2 -0
- package/dist/utils/heal-plan-coordinates.d.ts.map +1 -0
- package/dist/utils/heal-plan-coordinates.js +69 -0
- package/dist/utils/heal-scene-graph.d.ts +20 -6
- package/dist/utils/heal-scene-graph.d.ts.map +1 -1
- package/dist/utils/heal-scene-graph.js +61 -16
- package/dist/utils/legacy-material-slots.d.ts +23 -0
- package/dist/utils/legacy-material-slots.d.ts.map +1 -0
- package/dist/utils/legacy-material-slots.js +120 -0
- package/dist/utils/legacy-opening-datums.d.ts +11 -0
- package/dist/utils/legacy-opening-datums.d.ts.map +1 -0
- package/dist/utils/legacy-opening-datums.js +92 -0
- package/dist/utils/legacy-wall-datums.d.ts +6 -0
- package/dist/utils/legacy-wall-datums.d.ts.map +1 -0
- package/dist/utils/legacy-wall-datums.js +199 -0
- package/dist/utils/load-migration.d.ts +28 -0
- package/dist/utils/load-migration.d.ts.map +1 -0
- package/dist/utils/load-migration.js +89 -0
- package/dist/utils/node-defaults.d.ts +37 -0
- package/dist/utils/node-defaults.d.ts.map +1 -0
- package/dist/utils/node-defaults.js +96 -0
- package/dist/utils/normalize-legacy-structure.d.ts +2 -0
- package/dist/utils/normalize-legacy-structure.d.ts.map +1 -0
- package/dist/utils/normalize-legacy-structure.js +61 -0
- package/dist/utils/omit-undefined.d.ts +2 -0
- package/dist/utils/omit-undefined.d.ts.map +1 -0
- package/dist/utils/omit-undefined.js +17 -0
- package/dist/utils/owned-floor-opening-migration.d.ts +4489 -0
- package/dist/utils/owned-floor-opening-migration.d.ts.map +1 -0
- package/dist/utils/owned-floor-opening-migration.js +365 -0
- package/dist/utils/reconcile-structure-on-load.d.ts +8965 -0
- package/dist/utils/reconcile-structure-on-load.d.ts.map +1 -0
- package/dist/utils/reconcile-structure-on-load.js +307 -0
- package/dist/utils/room-zone-migration.d.ts +18 -0
- package/dist/utils/room-zone-migration.d.ts.map +1 -0
- package/dist/utils/room-zone-migration.js +258 -0
- package/dist/utils/scene-migrations.d.ts +16 -1
- package/dist/utils/scene-migrations.d.ts.map +1 -1
- package/dist/utils/scene-migrations.js +15 -1
- package/dist/utils/structure-id.d.ts +4 -0
- package/dist/utils/structure-id.d.ts.map +1 -0
- package/dist/utils/structure-id.js +115 -0
- package/dist/utils/vertical-scene-migration.d.ts +8 -8
- package/dist/utils/vertical-scene-migration.d.ts.map +1 -1
- package/dist/utils/vertical-scene-migration.js +18 -8
- package/dist/utils/wall-assembly-migration.d.ts +14 -0
- package/dist/utils/wall-assembly-migration.d.ts.map +1 -0
- package/dist/utils/wall-assembly-migration.js +23 -0
- package/dist/utils/wall-face-migration.d.ts +23 -0
- package/dist/utils/wall-face-migration.d.ts.map +1 -0
- package/dist/utils/wall-face-migration.js +246 -0
- package/dist/validation/opening-bounds.d.ts +36 -0
- package/dist/validation/opening-bounds.d.ts.map +1 -0
- package/dist/validation/opening-bounds.js +34 -0
- package/dist/validation/validate-build-json.d.ts +2 -0
- package/dist/validation/validate-build-json.d.ts.map +1 -1
- package/dist/validation/validate-build-json.js +48 -1
- package/package.json +37 -4
- package/dist/services/surface-hosting-procedural-parity.fixtures.d.ts +0 -13
- package/dist/services/surface-hosting-procedural-parity.fixtures.d.ts.map +0 -1
- package/dist/services/surface-hosting-procedural-parity.fixtures.js +0 -4691
- package/dist/services/surface-hosting-shelf-parity.fixtures.d.ts +0 -1060
- package/dist/services/surface-hosting-shelf-parity.fixtures.d.ts.map +0 -1
- package/dist/services/surface-hosting-shelf-parity.fixtures.js +0 -3127
package/dist/registry/types.d.ts
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import type { ComponentType } from 'react';
|
|
2
2
|
import type { AnimationClip, BufferGeometry, Object3D, Ray } from 'three';
|
|
3
3
|
import type { ZodObject, z } from 'zod';
|
|
4
|
+
import type { CutIntent } from '../schema/cut.js';
|
|
4
5
|
import type { MaterialSchema, MaterialTarget } from '../schema/material.js';
|
|
5
6
|
import type { AssetInput, ItemNode } from '../schema/nodes/item.js';
|
|
6
7
|
import type { MeasurementFeatureReference, MeasurementPoint } from '../schema/nodes/measurement.js';
|
|
7
8
|
import type { SceneMaterial, SceneMaterialId } from '../schema/scene-material.js';
|
|
8
|
-
import type { AnyNode, AnyNodeId } from '../schema/types.js';
|
|
9
|
+
import type { AnyNode, AnyNodeId, Discipline, DisplayFamily, PartKey } from '../schema/types.js';
|
|
9
10
|
import type { SurfaceProvider } from '../services/surface-hosting.js';
|
|
11
|
+
import type { InteractiveState } from '../store/use-interactive.js';
|
|
10
12
|
import type { HandleList } from './handles.js';
|
|
11
13
|
import type { CloneNodesIntoOptions, Subtree } from './subtree.js';
|
|
12
14
|
export type GeometryContext = {
|
|
@@ -37,6 +39,10 @@ export type GeometryContext = {
|
|
|
37
39
|
* in 2D.
|
|
38
40
|
*/
|
|
39
41
|
levelBaseAt?: (x: number, z: number) => number;
|
|
42
|
+
/** Height of a rendered node's upward-facing top at level-local XZ, or null outside it. */
|
|
43
|
+
surfaceHeightAt?: (hostId: AnyNodeId, x: number, z: number) => number | null;
|
|
44
|
+
/** Highest terrain, slab, or shaped top at a level-local point. */
|
|
45
|
+
supportHeightAt?: (x: number, z: number, selectedHostId?: AnyNodeId) => number;
|
|
40
46
|
/**
|
|
41
47
|
* Pre-computed level-batch data, populated by the dispatcher when the
|
|
42
48
|
* kind declares `def.computeLevelData` (3D) or
|
|
@@ -262,6 +268,26 @@ export type NodePort = {
|
|
|
262
268
|
* face at roll 0, height the vertical one. */
|
|
263
269
|
width?: number;
|
|
264
270
|
height?: number;
|
|
271
|
+
/** Ports sharing a group are one flow path of one system (F6). Unread until F6. */
|
|
272
|
+
group?: string;
|
|
273
|
+
/** Membership label of this port's group; labels, never connects (F6). Unread until F6. */
|
|
274
|
+
systemId?: string;
|
|
275
|
+
};
|
|
276
|
+
/**
|
|
277
|
+
* One end of an explicit, persisted connection edge (F6). Proximity only
|
|
278
|
+
* proposes a connection; an edge is declared in `capabilities.refs` with role
|
|
279
|
+
* `connection` and stored by the end that joins. A `port` end names a declared
|
|
280
|
+
* port; a `tap` end is a station on a run's body, `at` metres of arc length
|
|
281
|
+
* from the run's start, where a branch joins midway along a duct or pipe.
|
|
282
|
+
*/
|
|
283
|
+
export type PortRef = {
|
|
284
|
+
kind: 'port';
|
|
285
|
+
nodeId: AnyNodeId;
|
|
286
|
+
portId: string;
|
|
287
|
+
} | {
|
|
288
|
+
kind: 'tap';
|
|
289
|
+
nodeId: AnyNodeId;
|
|
290
|
+
at: number;
|
|
265
291
|
};
|
|
266
292
|
export type ToolHint = {
|
|
267
293
|
/** Key combo or input label, e.g. 'Left click', 'Shift', 'Esc'. */
|
|
@@ -668,6 +694,12 @@ export type FloorplanGeometry = ({
|
|
|
668
694
|
text: string;
|
|
669
695
|
/** Optional override for the line/text colour. Defaults to the palette accent. */
|
|
670
696
|
stroke?: string;
|
|
697
|
+
/**
|
|
698
|
+
* WS3: the text is an author override rather than the measured value.
|
|
699
|
+
* Set when a typed dimension could not drive geometry and fell back to
|
|
700
|
+
* `textOverride`; the 2D renderer draws a small "override" badge.
|
|
701
|
+
*/
|
|
702
|
+
overridden?: boolean;
|
|
671
703
|
} | {
|
|
672
704
|
kind: 'dimension-string';
|
|
673
705
|
segments: readonly {
|
|
@@ -858,8 +890,8 @@ export type DistributionRole = 'run' | 'fitting' | 'terminal' | 'equipment';
|
|
|
858
890
|
*/
|
|
859
891
|
export type SnapProfile = 'item' | 'structural';
|
|
860
892
|
/**
|
|
861
|
-
* How a kind is treated by the GLB bake and the baked `/viewer`. See
|
|
862
|
-
*
|
|
893
|
+
* How a kind is treated by the GLB bake and the baked `/viewer`. See "Bake policy" in
|
|
894
|
+
* wiki/architecture/node-definitions.md.
|
|
863
895
|
* - `'static'` (default) — baked as geometry; the viewer shows the baked mesh.
|
|
864
896
|
* - `'strip'` — excluded from the bake; the viewer rebuilds it live from
|
|
865
897
|
* `scene_graph` via the registry renderer (heavy reference assets: scans, guides).
|
|
@@ -973,6 +1005,8 @@ export type NodeDefinition<S extends ZodObject<any>> = {
|
|
|
973
1005
|
* already null-guard on `def.renderer` so omitting it is safe.
|
|
974
1006
|
*/
|
|
975
1007
|
renderer?: RendererSource<z.infer<S>>;
|
|
1008
|
+
/** Custom renderers default to mounting arbitrary children; declare false when they do not. */
|
|
1009
|
+
rendersChildren?: boolean;
|
|
976
1010
|
/**
|
|
977
1011
|
* Collective renderer the baked `/viewer` uses to re-render this kind live when
|
|
978
1012
|
* `bake === 'replace'`. It receives every node of this kind under one baked
|
|
@@ -981,7 +1015,7 @@ export type NodeDefinition<S extends ZodObject<any>> = {
|
|
|
981
1015
|
* free) instead of the frozen baked meshes (which the viewer hides). Needed when
|
|
982
1016
|
* the normal per-node `renderer` can't stand alone in a baked scene (e.g. an
|
|
983
1017
|
* instanced kind whose `renderer` is an invisible selection proxy and whose real
|
|
984
|
-
* geometry comes from a `system`). See
|
|
1018
|
+
* geometry comes from a `system`). See "Bake policy" in wiki/architecture/node-definitions.md.
|
|
985
1019
|
*/
|
|
986
1020
|
bakeReplaceRenderer?: BakeReplaceRenderer<z.infer<S>>;
|
|
987
1021
|
/**
|
|
@@ -1073,6 +1107,17 @@ export type NodeDefinition<S extends ZodObject<any>> = {
|
|
|
1073
1107
|
* `nodes` is the committed scene, for dependencies the node doesn't name itself
|
|
1074
1108
|
* (a zone's owning unit lists the zone, not the other way round). */
|
|
1075
1109
|
floorplanDependencies?: (node: z.infer<S>, nodes: Readonly<Record<AnyNodeId, AnyNode>>) => readonly AnyNodeId[];
|
|
1110
|
+
/**
|
|
1111
|
+
* Why the node does not fit where it stands, for the person placing, moving or selecting it:
|
|
1112
|
+
* the editor shows `line` in the HUD's "!" row while the node is in hand, and `line` with
|
|
1113
|
+
* `detail` at the top of its panel. A warning, never a block. Pure: `live` is the node's
|
|
1114
|
+
* in-flight drag pose, which the kind merges in its own frame. Null when it fits, or when the
|
|
1115
|
+
* check doesn't apply.
|
|
1116
|
+
*/
|
|
1117
|
+
placementNotice?: (node: z.infer<S>, ctx: {
|
|
1118
|
+
nodes: Readonly<Record<string, AnyNode>>;
|
|
1119
|
+
live?: LiveTransformLike;
|
|
1120
|
+
}) => PlacementNotice | null;
|
|
1076
1121
|
/** Stable semantic geometry that associative measurement anchors may reference. */
|
|
1077
1122
|
measurement?: MeasurementContribution<z.infer<S>>;
|
|
1078
1123
|
/**
|
|
@@ -1219,9 +1264,11 @@ export type NodeDefinition<S extends ZodObject<any>> = {
|
|
|
1219
1264
|
* returns LEVEL-LOCAL positions/directions (the kind applies its own
|
|
1220
1265
|
* transform). Consumed by placement tools for port-snapping and, in a
|
|
1221
1266
|
* later slice, by the system graph for connectivity. Kinds with no
|
|
1222
|
-
* connectable geometry omit this.
|
|
1267
|
+
* connectable geometry omit this. `ctx` stays optional for API v1 (R1):
|
|
1268
|
+
* hosts must always pass it, and an implementation falls back to the
|
|
1269
|
+
* stored pose only when it is absent.
|
|
1223
1270
|
*/
|
|
1224
|
-
ports?: (node: z.infer<S
|
|
1271
|
+
ports?: (node: z.infer<S>, ctx?: EvaluationContext) => NodePort[];
|
|
1225
1272
|
system?: SystemContribution;
|
|
1226
1273
|
tool?: LazyComponent;
|
|
1227
1274
|
/**
|
|
@@ -1253,6 +1300,12 @@ export type NodeDefinition<S extends ZodObject<any>> = {
|
|
|
1253
1300
|
* its bespoke helper component instead.
|
|
1254
1301
|
*/
|
|
1255
1302
|
toolHints?: ToolHint[];
|
|
1303
|
+
/**
|
|
1304
|
+
* HUD hints for the kind's own reshapes, keyed by reshape name (see
|
|
1305
|
+
* `affordanceTools`): shown while a node of this kind is in that `reshaping`
|
|
1306
|
+
* scope, with the same chips and visibility rules as `toolHints`.
|
|
1307
|
+
*/
|
|
1308
|
+
affordanceHints?: Record<string, ToolHint[]>;
|
|
1256
1309
|
/**
|
|
1257
1310
|
* Pick-one option rows for this kind's build tool, rendered by the shared
|
|
1258
1311
|
* `<ToolOptionsPanel>` in whichever sidebar the host mounts it (see
|
|
@@ -1477,7 +1530,8 @@ export type DuplicateSubtreeCloneResult = {
|
|
|
1477
1530
|
parentId?: AnyNodeId | null;
|
|
1478
1531
|
};
|
|
1479
1532
|
export type DuplicableConfig = {
|
|
1480
|
-
|
|
1533
|
+
/** 'with-children' preserves the root-only draft lifecycle for childless nodes. */
|
|
1534
|
+
subtree?: boolean | 'with-children';
|
|
1481
1535
|
prepareSubtreeClone?: (args: DuplicateSubtreeCloneArgs) => DuplicateSubtreeCloneResult;
|
|
1482
1536
|
};
|
|
1483
1537
|
export type Capabilities = {
|
|
@@ -1485,14 +1539,26 @@ export type Capabilities = {
|
|
|
1485
1539
|
rotatable?: RotatableConfig;
|
|
1486
1540
|
scalable?: ScalableConfig;
|
|
1487
1541
|
hostable?: HostableConfig;
|
|
1542
|
+
surfacePlacement?: 'floor-only';
|
|
1543
|
+
/**
|
|
1544
|
+
* @deprecated Ignored: nothing has ever read it. Declare {@link Capabilities.cuts}
|
|
1545
|
+
* instead. Kept so plugin API v1 definitions still compile; removed in v2.
|
|
1546
|
+
*/
|
|
1488
1547
|
cuttable?: CuttableConfig;
|
|
1548
|
+
/**
|
|
1549
|
+
* What the node cuts out of its host(s), as cut intents (F5b). Frozen
|
|
1550
|
+
* contract, not read yet: DT-03b (walls, ceilings, slabs) and RL-02 (roofs)
|
|
1551
|
+
* consume it beside today's paths (`collectCutoutBrushes`,
|
|
1552
|
+
* `roofAccessory.buildCut`, `ceilingCut`), which it later replaces.
|
|
1553
|
+
*/
|
|
1554
|
+
cuts?: (node: AnyNode, ctx: CutsContext) => CutIntent[];
|
|
1489
1555
|
snappable?: SnappableConfig;
|
|
1490
1556
|
surfaces?: SurfacesConfig;
|
|
1491
1557
|
faceHost?: FaceHostCapability<any>;
|
|
1492
1558
|
duplicable?: boolean | DuplicableConfig;
|
|
1493
1559
|
deletable?: boolean;
|
|
1494
1560
|
groupable?: boolean;
|
|
1495
|
-
selectable?: SelectableConfig;
|
|
1561
|
+
selectable?: SelectableConfig | false;
|
|
1496
1562
|
/**
|
|
1497
1563
|
* Whether selecting this kind should replace its rendered mesh materials
|
|
1498
1564
|
* with the editor's selection tint. Defaults to `true`. Set to `false` for
|
|
@@ -1502,6 +1568,13 @@ export type Capabilities = {
|
|
|
1502
1568
|
selectionHighlight?: boolean;
|
|
1503
1569
|
interactive?: boolean;
|
|
1504
1570
|
floorPlaced?: FloorPlacedConfig;
|
|
1571
|
+
/**
|
|
1572
|
+
* Opt this kind into node draw batching. Its opaque single-material meshes
|
|
1573
|
+
* join its level's shared `BatchedMesh` containers while the node is
|
|
1574
|
+
* static; the sources stay mounted, pickable and exported. See
|
|
1575
|
+
* `BatchableConfig`.
|
|
1576
|
+
*/
|
|
1577
|
+
batchable?: BatchableConfig;
|
|
1505
1578
|
/**
|
|
1506
1579
|
* Plan footprint this kind exposes to the alignment-anchor pool when it
|
|
1507
1580
|
* isn't `floorPlaced` and isn't a structural primitive the bridge handles
|
|
@@ -1547,6 +1620,12 @@ export type Capabilities = {
|
|
|
1547
1620
|
* in the editor.
|
|
1548
1621
|
*/
|
|
1549
1622
|
sceneAction?: SceneActionCapability;
|
|
1623
|
+
/**
|
|
1624
|
+
* Moving parts people run: Play/Stop in the action menu, E, and the
|
|
1625
|
+
* walkthrough read this instead of a kind name, so any kind (plugins
|
|
1626
|
+
* included) gets them by declaring it. See `MechanismCapability`.
|
|
1627
|
+
*/
|
|
1628
|
+
mechanism?: MechanismCapability;
|
|
1550
1629
|
/**
|
|
1551
1630
|
* Declares the kind's paintable slots — the `{ slotId, label, default }`
|
|
1552
1631
|
* contract shared by items (scanned from the GLB) and procedural kinds
|
|
@@ -1596,6 +1675,20 @@ export type Capabilities = {
|
|
|
1596
1675
|
* `defaults()` or the dragging logic populates it dynamically.
|
|
1597
1676
|
*/
|
|
1598
1677
|
hostRefFields?: string[];
|
|
1678
|
+
/**
|
|
1679
|
+
* Every reference this kind persists, declared once (R3, F5a), with its
|
|
1680
|
+
* dependent fields. Frozen contract, not read yet: P-03's one extractor
|
|
1681
|
+
* will serve clone, delete, split/merge, preset save and the reverse
|
|
1682
|
+
* (host → dependents) index from it, replacing the hand-written remaps and
|
|
1683
|
+
* `hostRefFields`. Existing references are declared before any new one.
|
|
1684
|
+
*/
|
|
1685
|
+
refs?: readonly ReferenceDeclaration[];
|
|
1686
|
+
/**
|
|
1687
|
+
* The kind stores assembly layers in an optional `assembly` field (F2) and
|
|
1688
|
+
* says how they stack. Frozen contract, not read yet: WL-02 compiles wall
|
|
1689
|
+
* layers and RL-01 roof layers from it.
|
|
1690
|
+
*/
|
|
1691
|
+
assembly?: AssemblyHostConfig;
|
|
1599
1692
|
/**
|
|
1600
1693
|
* Whether instances of this kind can be saved as a reusable preset
|
|
1601
1694
|
* (unified `items` catalog, `kind='preset'`). The editor itself does
|
|
@@ -1678,6 +1771,12 @@ export type PaintCapability = {
|
|
|
1678
1771
|
* by accident, normal too oblique for an unambiguous side).
|
|
1679
1772
|
*/
|
|
1680
1773
|
resolveRole: (args: PaintResolveArgs) => string | null;
|
|
1774
|
+
/**
|
|
1775
|
+
* Optional: label for a role that is NOT one of the kind's declared slots.
|
|
1776
|
+
* A slab plate resolves per-room roles carrying a zone id, which would read
|
|
1777
|
+
* back to the user as the raw id. Return `null` to keep the derived label.
|
|
1778
|
+
*/
|
|
1779
|
+
roleLabel?: (node: AnyNode, role: string) => string | null;
|
|
1681
1780
|
/**
|
|
1682
1781
|
* Build the node-update patch that applies the new material at
|
|
1683
1782
|
* `role`. Returned partial is merged into the node by the editor.
|
|
@@ -1739,6 +1838,24 @@ export type SceneActionCapability<T = unknown> = {
|
|
|
1739
1838
|
/** Run the action. Return `true` to consume the click (skip selection). */
|
|
1740
1839
|
activate: (node: AnyNode, target: T, sceneApi: SceneApi) => boolean;
|
|
1741
1840
|
};
|
|
1841
|
+
/**
|
|
1842
|
+
* A kind's moving parts (a fan's spin, doors, an articulated asset's joints).
|
|
1843
|
+
* Operating state is transient: `set` writes `useInteractive`, never the node,
|
|
1844
|
+
* so running a mechanism never enters undo, autosave or collaboration. A kind
|
|
1845
|
+
* with a single switch keeps it in `useInteractive.mechanisms`.
|
|
1846
|
+
*/
|
|
1847
|
+
export type MechanismCapability = {
|
|
1848
|
+
/** Whether this node has anything to run. */
|
|
1849
|
+
has: (node: AnyNode) => boolean;
|
|
1850
|
+
/** Whether any of its mechanisms is running. */
|
|
1851
|
+
isOn: (node: AnyNode, state: InteractiveState) => boolean;
|
|
1852
|
+
/** Starts or stops all of them. */
|
|
1853
|
+
set: (node: AnyNode, on: boolean) => void;
|
|
1854
|
+
/** Walkthrough wording: `open` parts open and close; `run` parts (the default) turn on and off. */
|
|
1855
|
+
verb?: 'open' | 'run';
|
|
1856
|
+
/** Action-menu glyph: openable kinds show their own instead of Play/Stop. */
|
|
1857
|
+
icon?: 'door' | 'window';
|
|
1858
|
+
};
|
|
1742
1859
|
export type NodeQuickActionIcon = 'add-left' | 'add-right' | 'add' | 'convert';
|
|
1743
1860
|
export type NodeQuickActionResult = {
|
|
1744
1861
|
selectedIds?: AnyNodeId[];
|
|
@@ -1805,12 +1922,24 @@ export type PaintPreviewArgs = {
|
|
|
1805
1922
|
material: MaterialSchema | undefined;
|
|
1806
1923
|
materialPreset: string | undefined;
|
|
1807
1924
|
root: Object3D;
|
|
1925
|
+
/** Host snapshot used for parent finishes and per-flight overrides. */
|
|
1926
|
+
nodes?: Record<AnyNodeId, AnyNode>;
|
|
1927
|
+
/** Shared palette from the same host snapshot; absent means no scene palette. */
|
|
1928
|
+
materials?: Record<SceneMaterialId, SceneMaterial>;
|
|
1808
1929
|
};
|
|
1809
1930
|
export type PaintEffectiveMaterialArgs = {
|
|
1931
|
+
/** Host palette for resolving scene material refs without reading a store. */
|
|
1932
|
+
materials?: Record<SceneMaterialId, SceneMaterial>;
|
|
1810
1933
|
node: AnyNode;
|
|
1811
1934
|
role: string;
|
|
1812
1935
|
/** Snapshot of the scene `nodes` map — kinds whose effective material walks the parent chain (roof-segment → roof) read parents through it. */
|
|
1813
1936
|
nodes: Record<AnyNodeId, AnyNode>;
|
|
1937
|
+
/**
|
|
1938
|
+
* Resolve what the surface shows, falling through to the finish an unpainted
|
|
1939
|
+
* derived role draws with (the eyedropper). A slot role's declared `default`
|
|
1940
|
+
* stays the caller's to apply.
|
|
1941
|
+
*/
|
|
1942
|
+
rendered?: boolean;
|
|
1814
1943
|
};
|
|
1815
1944
|
/**
|
|
1816
1945
|
* Kinds mounted on a roof segment via `roofSegmentId`. Presence of this
|
|
@@ -1868,10 +1997,42 @@ export type RoofAccessoryConfig = {
|
|
|
1868
1997
|
*/
|
|
1869
1998
|
export type CeilingCutCapability = {
|
|
1870
1999
|
buildCeilingHole: (node: AnyNode) => Array<[number, number]> | null;
|
|
2000
|
+
/**
|
|
2001
|
+
* Holes this kind cuts in `ceiling` that no child of it reports, such as a node
|
|
2002
|
+
* whose live move preview sits on this ceiling while it still belongs to another.
|
|
2003
|
+
*/
|
|
2004
|
+
holesFor?: (ceiling: AnyNode) => Array<Array<[number, number]>>;
|
|
2005
|
+
};
|
|
2006
|
+
/**
|
|
2007
|
+
* The face body layers stack inward from: a wall's `front` face (+n), a
|
|
2008
|
+
* slab's `top`, a ceiling's `underside`, or a roof's `covering`-top plane
|
|
2009
|
+
* (every facet's `facet:<id>:covering` patch).
|
|
2010
|
+
*/
|
|
2011
|
+
export type AssemblyReference = 'front' | 'top' | 'underside' | 'covering';
|
|
2012
|
+
/**
|
|
2013
|
+
* Host declaration for assembly layers (F2, `editor-fidelity-foundations.md`
|
|
2014
|
+
* §2.3). Each host keeps its own datum rule instead of one offset equation.
|
|
2015
|
+
*/
|
|
2016
|
+
export type AssemblyHostConfig = {
|
|
2017
|
+
reference: AssemblyReference;
|
|
2018
|
+
/** The axis layer thickness runs along: the reference face's normal, or vertical. */
|
|
2019
|
+
measure: 'normal' | 'vertical';
|
|
2020
|
+
/**
|
|
2021
|
+
* The body thickness the host stores (a wall's `thickness`), which must
|
|
2022
|
+
* equal the sum of its layers: the stack sets it and writers re-derive it.
|
|
2023
|
+
* `null` when the host stores none (roofs).
|
|
2024
|
+
*/
|
|
2025
|
+
body: (node: AnyNode) => number | null;
|
|
2026
|
+
/** Accepts `assembly.backing` (slabs, ceilings). Absent = refused. */
|
|
2027
|
+
backing?: boolean;
|
|
1871
2028
|
};
|
|
1872
2029
|
export type CapabilityCtx = {
|
|
1873
2030
|
node: AnyNode;
|
|
1874
2031
|
};
|
|
2032
|
+
/** What a cut publisher may read: the scene, to find its host and the host's frame. */
|
|
2033
|
+
export type CutsContext = {
|
|
2034
|
+
nodes: Readonly<Record<AnyNodeId, AnyNode>>;
|
|
2035
|
+
};
|
|
1875
2036
|
export type MovableConfig = {
|
|
1876
2037
|
axes: ReadonlyArray<'x' | 'y' | 'z'>;
|
|
1877
2038
|
gridSnap?: boolean;
|
|
@@ -2024,6 +2185,11 @@ export type LiveTransformLike = {
|
|
|
2024
2185
|
position: [number, number, number];
|
|
2025
2186
|
rotation: number;
|
|
2026
2187
|
};
|
|
2188
|
+
/** What `NodeDefinition.placementNotice` says: a one-line warning and an optional detail. */
|
|
2189
|
+
export type PlacementNotice = {
|
|
2190
|
+
line: string;
|
|
2191
|
+
detail?: string;
|
|
2192
|
+
};
|
|
2027
2193
|
export type RotatableConfig = {
|
|
2028
2194
|
axes: ReadonlyArray<'x' | 'y' | 'z'>;
|
|
2029
2195
|
snapAngles?: readonly number[];
|
|
@@ -2042,6 +2208,7 @@ export type HostableConfig = {
|
|
|
2042
2208
|
modes?: Record<string, Partial<HostableConfig>>;
|
|
2043
2209
|
override?: (ctx: CapabilityCtx) => HostableConfig | null;
|
|
2044
2210
|
};
|
|
2211
|
+
/** @deprecated See {@link Capabilities.cuttable}. */
|
|
2045
2212
|
export type CuttableConfig = {
|
|
2046
2213
|
hostKinds: readonly string[];
|
|
2047
2214
|
override?: (ctx: CapabilityCtx) => CuttableConfig | null;
|
|
@@ -2052,11 +2219,15 @@ export type SnappableConfig = {
|
|
|
2052
2219
|
};
|
|
2053
2220
|
export type SnapPointKind = 'start' | 'end' | 'midpoint' | 'center' | 'corners';
|
|
2054
2221
|
export type SurfacesConfig = {
|
|
2055
|
-
hosting?: SurfaceProvider;
|
|
2222
|
+
hosting?: SurfaceProvider | false;
|
|
2056
2223
|
top?: {
|
|
2057
2224
|
height: number | ((n: AnyNode, context: {
|
|
2058
2225
|
nodes: Record<string, AnyNode>;
|
|
2059
2226
|
}) => number);
|
|
2227
|
+
/** Resolve support from node data; null means this point is outside the support footprint. */
|
|
2228
|
+
supportHeight?: (node: AnyNode, x: number, z: number, context: {
|
|
2229
|
+
nodes: Readonly<Record<AnyNodeId, AnyNode>>;
|
|
2230
|
+
}) => number | null;
|
|
2060
2231
|
};
|
|
2061
2232
|
sides?: {
|
|
2062
2233
|
faces: 'all' | ReadonlyArray<readonly [number, number, number]>;
|
|
@@ -2140,9 +2311,39 @@ export type FloorPlacedConfig = {
|
|
|
2140
2311
|
* placement/move refuses to overlap another colliding footprint (red ghost,
|
|
2141
2312
|
* Alt to force). Solid furniture-like kinds (item / shelf / column) set this;
|
|
2142
2313
|
* markers and port-mated kinds (spawn / MEP / stair) leave it off so they
|
|
2143
|
-
* neither block nor get blocked. Default off.
|
|
2314
|
+
* neither block nor get blocked. Default off. A predicate decides per node
|
|
2315
|
+
* (a block collides only while it rests on the floor); read it through
|
|
2316
|
+
* `floorPlacedCollides`.
|
|
2144
2317
|
*/
|
|
2145
|
-
collides?: boolean;
|
|
2318
|
+
collides?: boolean | ((node: AnyNode) => boolean);
|
|
2319
|
+
};
|
|
2320
|
+
/**
|
|
2321
|
+
* How the node batch treats a kind (`capabilities.batchable`). Selection,
|
|
2322
|
+
* hover, live transforms, live overrides and slot paint previews release any
|
|
2323
|
+
* batched node; these fields declare what is specific to the kind.
|
|
2324
|
+
*/
|
|
2325
|
+
export type BatchableConfig = {
|
|
2326
|
+
/**
|
|
2327
|
+
* Where the node's batches live. `'level'`: the node is a direct child of a
|
|
2328
|
+
* level; hosted or mounted nodes draw themselves, because their host moves
|
|
2329
|
+
* them without a signal the batch sees. `'wall'`: the node is hosted by a
|
|
2330
|
+
* visible wall that is a level child; the wall's edits, tint and gestures
|
|
2331
|
+
* release it.
|
|
2332
|
+
*/
|
|
2333
|
+
scope: 'level' | 'wall';
|
|
2334
|
+
/** Transient states in which the node draws its own meshes, such as a running animation. */
|
|
2335
|
+
excluded?: (node: AnyNode) => boolean;
|
|
2336
|
+
/** Whether the node's mounted object is final, read from its registered root's `userData`. */
|
|
2337
|
+
settled?: (userData: Readonly<Record<string, unknown>>) => boolean;
|
|
2338
|
+
/**
|
|
2339
|
+
* Allocation key for the node's `meshIndex`-th batchable mesh when the kind
|
|
2340
|
+
* rebuilds its geometry in place (slabs, ceilings): a rebuild then replaces
|
|
2341
|
+
* its packed slot instead of adding one. Without it, meshes that share a
|
|
2342
|
+
* geometry share one allocation.
|
|
2343
|
+
*/
|
|
2344
|
+
batchKey?: (node: AnyNode, meshIndex: number) => string;
|
|
2345
|
+
/** Joins wait until wall rebuilds and wall drags on the node's level have settled. */
|
|
2346
|
+
waitsForWalls?: boolean;
|
|
2146
2347
|
};
|
|
2147
2348
|
/**
|
|
2148
2349
|
* Plan footprint a kind contributes to the alignment-anchor pool when it is
|
|
@@ -2176,6 +2377,10 @@ export type AlignmentFootprint = {
|
|
|
2176
2377
|
};
|
|
2177
2378
|
export type AlignmentFootprintConfig = (node: AnyNode, nodes?: Readonly<Record<string, AnyNode>>) => AlignmentFootprint | null;
|
|
2178
2379
|
export type Relations = {
|
|
2380
|
+
/**
|
|
2381
|
+
* Derived, unpersisted junctions. Wall junctions are `endpoint-match` and
|
|
2382
|
+
* enter the reference index as derived `connection` references (R3).
|
|
2383
|
+
*/
|
|
2179
2384
|
linkedBy?: 'endpoint-match' | 'polygon-share' | {
|
|
2180
2385
|
custom: (n: AnyNode) => AnyNodeId[];
|
|
2181
2386
|
};
|
|
@@ -2183,6 +2388,137 @@ export type Relations = {
|
|
|
2183
2388
|
affectsSpatial?: readonly string[];
|
|
2184
2389
|
cascadeDelete?: 'descendants' | 'children' | 'none';
|
|
2185
2390
|
};
|
|
2391
|
+
/**
|
|
2392
|
+
* - `node`: a scene node id.
|
|
2393
|
+
* - `part`: a key inside one owner node (a generated `PartKey`, a gutter
|
|
2394
|
+
* outlet, a hanger slot, block topology); the owner is `owner`.
|
|
2395
|
+
* - `surface`: a finite patch or named face of one owner node.
|
|
2396
|
+
* - `asset`: content outside the graph by URL, catalog id or content hash.
|
|
2397
|
+
* - `source`: provenance ids of an importer or capture (stable across re-import).
|
|
2398
|
+
* - `collection`: a scene-root `collections` record.
|
|
2399
|
+
* - `material`: a `MaterialRef` (`scene:<id>` palette entry, `library:<id>`)
|
|
2400
|
+
* or a library material/preset name.
|
|
2401
|
+
* - `label`: an opaque key compared only for equality among peers (a join or
|
|
2402
|
+
* scope label). Producers may use a node id as the label, others a source
|
|
2403
|
+
* face id or any string; it is never dereferenced and never required to
|
|
2404
|
+
* resolve. A remap rewrites a label only where it equals a node id being
|
|
2405
|
+
* remapped in the same operation.
|
|
2406
|
+
*/
|
|
2407
|
+
export type ReferenceNamespace = 'node' | 'part' | 'surface' | 'asset' | 'source' | 'collection' | 'material' | 'label';
|
|
2408
|
+
/**
|
|
2409
|
+
* - `host`: the dependent resolves pose or geometry from the target (a mount,
|
|
2410
|
+
* support, hosting face, measurement anchor); follow or freeze.
|
|
2411
|
+
* - `internal`: a reference inside the owner's own data or its generated
|
|
2412
|
+
* output (block topology, hanger slots, an owning generator).
|
|
2413
|
+
* - `membership`: the target is a member of a set the owner labels (unit
|
|
2414
|
+
* zones, collection members, served levels, boundary walls).
|
|
2415
|
+
* - `connection`: an explicit join between peers (ports, shed joints, wall
|
|
2416
|
+
* junctions).
|
|
2417
|
+
* - `control`: a signal or driving relation, never flow (a collection's
|
|
2418
|
+
* control node, a controlling dimension, a switch's luminaires).
|
|
2419
|
+
* - `hierarchy`: `parentId` / `children` and records keyed by a child id;
|
|
2420
|
+
* their consistency is protected separately from the typed policy.
|
|
2421
|
+
* - `content`: the owner uses something outside the scene graph by
|
|
2422
|
+
* reference: an asset, a material, a pinned definition, provenance. Never
|
|
2423
|
+
* remapped by a clone.
|
|
2424
|
+
*/
|
|
2425
|
+
export type ReferenceRole = 'host' | 'internal' | 'membership' | 'connection' | 'control' | 'hierarchy' | 'content';
|
|
2426
|
+
/** When the target is deleted: freeze at the last resolved pose, drop the value, or delete the dependent. */
|
|
2427
|
+
export type ReferenceDeletePolicy = 'freeze' | 'drop' | 'cascade';
|
|
2428
|
+
/** When the owner is saved as a preset: strip the value, snapshot its resolved geometry then strip, or keep it. */
|
|
2429
|
+
export type ReferencePresetPolicy = 'strip' | 'materialize' | 'keep';
|
|
2430
|
+
/**
|
|
2431
|
+
* A path into a node's persisted data. Dot-separated field names; `[]` visits
|
|
2432
|
+
* every array or tuple element, `*` every record value and `@key` every record
|
|
2433
|
+
* key. A path that does not resolve on a value (an absent optional, another
|
|
2434
|
+
* union branch) yields no reference. Example: `measurement.points[].reference.nodeId`.
|
|
2435
|
+
*/
|
|
2436
|
+
export type ReferencePath = string;
|
|
2437
|
+
export type ReferenceDeclaration = {
|
|
2438
|
+
path: ReferencePath;
|
|
2439
|
+
namespace: ReferenceNamespace;
|
|
2440
|
+
role: ReferenceRole;
|
|
2441
|
+
onDelete: ReferenceDeletePolicy;
|
|
2442
|
+
onPreset: ReferencePresetPolicy;
|
|
2443
|
+
/** Node kinds the target may have (`node` namespace). Absent = any kind. */
|
|
2444
|
+
targetKinds?: readonly string[];
|
|
2445
|
+
/** Literal values that are not references (e.g. `supportSlabId: 'ground'`). */
|
|
2446
|
+
sentinels?: readonly string[];
|
|
2447
|
+
/** The value is `${prefix}${id}`; only values with this prefix are references. */
|
|
2448
|
+
prefix?: string;
|
|
2449
|
+
/**
|
|
2450
|
+
* `part` / `surface` namespaces: path to the owner node id, resolved in the
|
|
2451
|
+
* same element as `path` (shared `[]` / `*` prefixes bind to one element).
|
|
2452
|
+
* Absent = this node.
|
|
2453
|
+
*/
|
|
2454
|
+
owner?: ReferencePath;
|
|
2455
|
+
/**
|
|
2456
|
+
* Fields whose value is derived from, or only meaningful with, this
|
|
2457
|
+
* reference: the side, face, station or UV of the host it names (`wallT`
|
|
2458
|
+
* and `side` with `wallId`, `roofFace` with `roofSegmentId`). They share
|
|
2459
|
+
* its lifecycle: a preset strip, a drop or a freeze applies to the
|
|
2460
|
+
* reference and its dependents together. Paths absent on a kind are skipped.
|
|
2461
|
+
*/
|
|
2462
|
+
dependents?: readonly ReferencePath[];
|
|
2463
|
+
};
|
|
2464
|
+
/**
|
|
2465
|
+
* One model revision plus the live overrides of a gesture in flight (R2).
|
|
2466
|
+
* Every reader of resolved geometry — meshes, bounds, ports, cuts, bake, MCP —
|
|
2467
|
+
* resolves from the same context, so a device's ports never come from a
|
|
2468
|
+
* different snapshot than its mesh. Frozen name; the evaluator lands in P-03.
|
|
2469
|
+
*/
|
|
2470
|
+
export type EvaluationContext = {
|
|
2471
|
+
revision: number;
|
|
2472
|
+
nodes: Readonly<Record<AnyNodeId, AnyNode>>;
|
|
2473
|
+
/** Preview-only values; never committed, never persisted. */
|
|
2474
|
+
overrides?: ReadonlyMap<AnyNodeId, Readonly<Record<string, unknown>>>;
|
|
2475
|
+
};
|
|
2476
|
+
/**
|
|
2477
|
+
* Per-mesh export identity (F4), `userData.pascalPart` / glTF
|
|
2478
|
+
* `extras.pascalPart`, version 1. Validated live, in the raw bake, the
|
|
2479
|
+
* optimised bake and the saved viewer. A missing tag means `finish`.
|
|
2480
|
+
*/
|
|
2481
|
+
export type PascalPartTag = {
|
|
2482
|
+
v: 1;
|
|
2483
|
+
family: DisplayFamily;
|
|
2484
|
+
role: string;
|
|
2485
|
+
discipline?: Discipline;
|
|
2486
|
+
concealed?: boolean;
|
|
2487
|
+
layerId?: string;
|
|
2488
|
+
key?: PartKey;
|
|
2489
|
+
owner?: string;
|
|
2490
|
+
/** Envelope stand-in for a missing model: physical, exported. */
|
|
2491
|
+
proxy?: boolean;
|
|
2492
|
+
/** Presentation-only solid: never in the canonical bake. */
|
|
2493
|
+
presentation?: true;
|
|
2494
|
+
surfaceRole?: SurfaceRole;
|
|
2495
|
+
/** Source category when it differs from the owner's. */
|
|
2496
|
+
source?: string;
|
|
2497
|
+
};
|
|
2498
|
+
/**
|
|
2499
|
+
* `canonical` holds every physical part exactly once, compiled from persisted
|
|
2500
|
+
* state whatever was displayed; `finished` is what the visitor view shows;
|
|
2501
|
+
* `lightweight` declares its omissions.
|
|
2502
|
+
*/
|
|
2503
|
+
export type ExportProfile = 'canonical' | 'finished' | 'lightweight';
|
|
2504
|
+
/**
|
|
2505
|
+
* Root glTF `extras.pascalBake`, one arm per profile. A canonical artifact
|
|
2506
|
+
* always carries every family and declares no omissions; only `lightweight`
|
|
2507
|
+
* may omit. The benchmark harness refuses non-canonical bakes.
|
|
2508
|
+
*/
|
|
2509
|
+
export type PascalBakeExtras = {
|
|
2510
|
+
profile: 'canonical';
|
|
2511
|
+
families: 'all';
|
|
2512
|
+
omissions?: never;
|
|
2513
|
+
} | {
|
|
2514
|
+
profile: 'finished';
|
|
2515
|
+
families: readonly DisplayFamily[];
|
|
2516
|
+
omissions?: never;
|
|
2517
|
+
} | {
|
|
2518
|
+
profile: 'lightweight';
|
|
2519
|
+
families: 'all' | readonly DisplayFamily[];
|
|
2520
|
+
omissions: readonly string[];
|
|
2521
|
+
};
|
|
2186
2522
|
export type ParametricDescriptor<N> = {
|
|
2187
2523
|
groups: ParamGroup<N>[];
|
|
2188
2524
|
invariants?: ReadonlyArray<(n: N) => Issue[]>;
|
|
@@ -2201,9 +2537,10 @@ export type ParametricDescriptor<N> = {
|
|
|
2201
2537
|
* the scene consistent — e.g. duct runs re-trimmed onto a resized
|
|
2202
2538
|
* fitting's collars. `prev` is the node before the edit, `next` after
|
|
2203
2539
|
* (with `derive` already folded in). Applied in the same gesture via
|
|
2204
|
-
* `updateNodes`.
|
|
2540
|
+
* `updateNodes`. The third argument contains all pending edits in
|
|
2541
|
+
* the gesture, so reconciliation can read updated siblings during a multi-edit.
|
|
2205
2542
|
*/
|
|
2206
|
-
reconcile?: (prev: N, next: N) => Array<{
|
|
2543
|
+
reconcile?: (prev: N, next: N, nodes: Readonly<Record<string, AnyNode | undefined>>) => Array<{
|
|
2207
2544
|
id: AnyNodeId;
|
|
2208
2545
|
data: Partial<AnyNode>;
|
|
2209
2546
|
}>;
|
|
@@ -2291,6 +2628,8 @@ export type ParamField<N> = {
|
|
|
2291
2628
|
key: keyof N;
|
|
2292
2629
|
label?: string;
|
|
2293
2630
|
kind: 'boolean';
|
|
2631
|
+
/** Shown when the node omits the key (an optional field that reads as on). */
|
|
2632
|
+
default?: boolean;
|
|
2294
2633
|
visibleIf?: (n: N) => boolean;
|
|
2295
2634
|
} | {
|
|
2296
2635
|
key: keyof N;
|