@pascal-app/core 0.9.1 → 1.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (378) hide show
  1. package/README.md +17 -10
  2. package/dist/events/bus.d.ts +49 -2
  3. package/dist/events/bus.d.ts.map +1 -1
  4. package/dist/hooks/scene-registry/item-clip-registry.d.ts +18 -0
  5. package/dist/hooks/scene-registry/item-clip-registry.d.ts.map +1 -0
  6. package/dist/hooks/scene-registry/item-clip-registry.js +10 -0
  7. package/dist/hooks/scene-registry/scene-registry.d.ts +8 -1
  8. package/dist/hooks/scene-registry/scene-registry.d.ts.map +1 -1
  9. package/dist/hooks/scene-registry/scene-registry.js +27 -1
  10. package/dist/hooks/spatial-grid/floor-placed-elevation.d.ts +17 -1
  11. package/dist/hooks/spatial-grid/floor-placed-elevation.d.ts.map +1 -1
  12. package/dist/hooks/spatial-grid/floor-placed-elevation.js +61 -8
  13. package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts +135 -28
  14. package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts.map +1 -1
  15. package/dist/hooks/spatial-grid/spatial-grid-manager.js +427 -271
  16. package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts +46 -1
  17. package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts.map +1 -1
  18. package/dist/hooks/spatial-grid/spatial-grid-sync.js +208 -9
  19. package/dist/hooks/spatial-grid/support-host-id.d.ts +3 -0
  20. package/dist/hooks/spatial-grid/support-host-id.d.ts.map +1 -0
  21. package/dist/hooks/spatial-grid/support-host-id.js +2 -0
  22. package/dist/hooks/spatial-grid/support-host-patch.d.ts +51 -0
  23. package/dist/hooks/spatial-grid/support-host-patch.d.ts.map +1 -0
  24. package/dist/hooks/spatial-grid/support-host-patch.js +164 -0
  25. package/dist/index.d.ts +33 -11
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +32 -10
  28. package/dist/lib/level-name.d.ts +4 -0
  29. package/dist/lib/level-name.d.ts.map +1 -0
  30. package/dist/lib/level-name.js +10 -0
  31. package/dist/lib/measurement-geometry.d.ts +23 -0
  32. package/dist/lib/measurement-geometry.d.ts.map +1 -0
  33. package/dist/lib/measurement-geometry.js +249 -0
  34. package/dist/lib/polygon-geometry.d.ts +0 -1
  35. package/dist/lib/polygon-geometry.d.ts.map +1 -1
  36. package/dist/lib/polygon-geometry.js +0 -18
  37. package/dist/lib/selection-proxy.d.ts +4 -0
  38. package/dist/lib/selection-proxy.d.ts.map +1 -0
  39. package/dist/lib/selection-proxy.js +12 -0
  40. package/dist/lib/slab-polygon.d.ts +31 -2
  41. package/dist/lib/slab-polygon.d.ts.map +1 -1
  42. package/dist/lib/slab-polygon.js +557 -31
  43. package/dist/lib/slots.d.ts +14 -0
  44. package/dist/lib/slots.d.ts.map +1 -0
  45. package/dist/lib/slots.js +26 -0
  46. package/dist/lib/space-detection.d.ts +40 -6
  47. package/dist/lib/space-detection.d.ts.map +1 -1
  48. package/dist/lib/space-detection.js +574 -192
  49. package/dist/lib/terrain-brush.d.ts +163 -0
  50. package/dist/lib/terrain-brush.d.ts.map +1 -0
  51. package/dist/lib/terrain-brush.js +359 -0
  52. package/dist/lib/terrain-codec.d.ts +51 -0
  53. package/dist/lib/terrain-codec.d.ts.map +1 -0
  54. package/dist/lib/terrain-codec.js +167 -0
  55. package/dist/lib/terrain-field.d.ts +150 -0
  56. package/dist/lib/terrain-field.d.ts.map +1 -0
  57. package/dist/lib/terrain-field.js +248 -0
  58. package/dist/lib/terrain-raycast.d.ts +44 -0
  59. package/dist/lib/terrain-raycast.d.ts.map +1 -0
  60. package/dist/lib/terrain-raycast.js +188 -0
  61. package/dist/lib/terrain-source.d.ts +60 -0
  62. package/dist/lib/terrain-source.d.ts.map +1 -0
  63. package/dist/lib/terrain-source.js +90 -0
  64. package/dist/lib/terrain-support.d.ts +60 -0
  65. package/dist/lib/terrain-support.d.ts.map +1 -0
  66. package/dist/lib/terrain-support.js +150 -0
  67. package/dist/lib/wall-distance.d.ts +60 -0
  68. package/dist/lib/wall-distance.d.ts.map +1 -0
  69. package/dist/lib/wall-distance.js +85 -0
  70. package/dist/lib/zone-quantities.d.ts +21 -0
  71. package/dist/lib/zone-quantities.d.ts.map +1 -0
  72. package/dist/lib/zone-quantities.js +428 -0
  73. package/dist/material-library.d.ts +28 -1
  74. package/dist/material-library.d.ts.map +1 -1
  75. package/dist/material-library.js +2233 -441
  76. package/dist/registry/handles.d.ts +91 -3
  77. package/dist/registry/handles.d.ts.map +1 -1
  78. package/dist/registry/index.d.ts +3 -3
  79. package/dist/registry/index.d.ts.map +1 -1
  80. package/dist/registry/index.js +1 -1
  81. package/dist/registry/registry.d.ts +46 -3
  82. package/dist/registry/registry.d.ts.map +1 -1
  83. package/dist/registry/registry.js +82 -1
  84. package/dist/registry/subtree.d.ts.map +1 -1
  85. package/dist/registry/subtree.js +8 -1
  86. package/dist/registry/types.d.ts +781 -39
  87. package/dist/registry/types.d.ts.map +1 -1
  88. package/dist/schema/index.d.ts +27 -8
  89. package/dist/schema/index.d.ts.map +1 -1
  90. package/dist/schema/index.js +23 -6
  91. package/dist/schema/material.d.ts +3 -2
  92. package/dist/schema/material.d.ts.map +1 -1
  93. package/dist/schema/material.js +7 -5
  94. package/dist/schema/nodes/box-vent.d.ts +2 -2
  95. package/dist/schema/nodes/cabinet.d.ts +536 -0
  96. package/dist/schema/nodes/cabinet.d.ts.map +1 -0
  97. package/dist/schema/nodes/cabinet.js +139 -0
  98. package/dist/schema/nodes/ceiling.d.ts +4 -3
  99. package/dist/schema/nodes/ceiling.d.ts.map +1 -1
  100. package/dist/schema/nodes/ceiling.js +11 -1
  101. package/dist/schema/nodes/chimney.d.ts +4 -4
  102. package/dist/schema/nodes/column.d.ts +4 -2
  103. package/dist/schema/nodes/column.d.ts.map +1 -1
  104. package/dist/schema/nodes/column.js +5 -0
  105. package/dist/schema/nodes/construction-dimension.d.ts +195 -0
  106. package/dist/schema/nodes/construction-dimension.d.ts.map +1 -0
  107. package/dist/schema/nodes/construction-dimension.js +151 -0
  108. package/dist/schema/nodes/cupola.d.ts +2 -2
  109. package/dist/schema/nodes/door.d.ts +42 -5
  110. package/dist/schema/nodes/door.d.ts.map +1 -1
  111. package/dist/schema/nodes/door.js +32 -0
  112. package/dist/schema/nodes/dormer.d.ts +8 -8
  113. package/dist/schema/nodes/dormer.js +1 -1
  114. package/dist/schema/nodes/downspout.d.ts +2 -2
  115. package/dist/schema/nodes/duct-fitting.d.ts +91 -0
  116. package/dist/schema/nodes/duct-fitting.d.ts.map +1 -0
  117. package/dist/schema/nodes/duct-fitting.js +92 -0
  118. package/dist/schema/nodes/duct-segment.d.ts +61 -0
  119. package/dist/schema/nodes/duct-segment.d.ts.map +1 -0
  120. package/dist/schema/nodes/duct-segment.js +73 -0
  121. package/dist/schema/nodes/duct-terminal.d.ts +58 -0
  122. package/dist/schema/nodes/duct-terminal.d.ts.map +1 -0
  123. package/dist/schema/nodes/duct-terminal.js +53 -0
  124. package/dist/schema/nodes/elevator.d.ts +3 -2
  125. package/dist/schema/nodes/elevator.d.ts.map +1 -1
  126. package/dist/schema/nodes/elevator.js +3 -0
  127. package/dist/schema/nodes/eyebrow-vent.d.ts +2 -2
  128. package/dist/schema/nodes/fence.d.ts +20 -2
  129. package/dist/schema/nodes/fence.d.ts.map +1 -1
  130. package/dist/schema/nodes/fence.js +33 -2
  131. package/dist/schema/nodes/gutter.d.ts +2 -2
  132. package/dist/schema/nodes/hvac-equipment.d.ts +64 -0
  133. package/dist/schema/nodes/hvac-equipment.d.ts.map +1 -0
  134. package/dist/schema/nodes/hvac-equipment.js +57 -0
  135. package/dist/schema/nodes/item.d.ts +9 -0
  136. package/dist/schema/nodes/item.d.ts.map +1 -1
  137. package/dist/schema/nodes/item.js +24 -0
  138. package/dist/schema/nodes/level.d.ts +2 -1
  139. package/dist/schema/nodes/level.d.ts.map +1 -1
  140. package/dist/schema/nodes/level.js +12 -31
  141. package/dist/schema/nodes/lineset.d.ts +42 -0
  142. package/dist/schema/nodes/lineset.d.ts.map +1 -0
  143. package/dist/schema/nodes/lineset.js +38 -0
  144. package/dist/schema/nodes/liquid-line.d.ts +34 -0
  145. package/dist/schema/nodes/liquid-line.d.ts.map +1 -0
  146. package/dist/schema/nodes/liquid-line.js +24 -0
  147. package/dist/schema/nodes/measurement.d.ts +306 -0
  148. package/dist/schema/nodes/measurement.d.ts.map +1 -0
  149. package/dist/schema/nodes/measurement.js +87 -0
  150. package/dist/schema/nodes/pipe-fitting.d.ts +56 -0
  151. package/dist/schema/nodes/pipe-fitting.d.ts.map +1 -0
  152. package/dist/schema/nodes/pipe-fitting.js +45 -0
  153. package/dist/schema/nodes/pipe-segment.d.ts +48 -0
  154. package/dist/schema/nodes/pipe-segment.d.ts.map +1 -0
  155. package/dist/schema/nodes/pipe-segment.js +36 -0
  156. package/dist/schema/nodes/pipe-trap.d.ts +43 -0
  157. package/dist/schema/nodes/pipe-trap.d.ts.map +1 -0
  158. package/dist/schema/nodes/pipe-trap.js +36 -0
  159. package/dist/schema/nodes/ridge-vent.d.ts +18 -3
  160. package/dist/schema/nodes/ridge-vent.d.ts.map +1 -1
  161. package/dist/schema/nodes/ridge-vent.js +221 -3
  162. package/dist/schema/nodes/roof-segment-shape.d.ts +90 -0
  163. package/dist/schema/nodes/roof-segment-shape.d.ts.map +1 -0
  164. package/dist/schema/nodes/roof-segment-shape.js +318 -0
  165. package/dist/schema/nodes/roof-segment-walls.d.ts +101 -0
  166. package/dist/schema/nodes/roof-segment-walls.d.ts.map +1 -0
  167. package/dist/schema/nodes/roof-segment-walls.js +330 -0
  168. package/dist/schema/nodes/roof-segment.d.ts +84 -8
  169. package/dist/schema/nodes/roof-segment.d.ts.map +1 -1
  170. package/dist/schema/nodes/roof-segment.js +290 -5
  171. package/dist/schema/nodes/roof.d.ts +8 -8
  172. package/dist/schema/nodes/shelf.d.ts +4 -2
  173. package/dist/schema/nodes/shelf.d.ts.map +1 -1
  174. package/dist/schema/nodes/shelf.js +8 -0
  175. package/dist/schema/nodes/site.d.ts +9 -0
  176. package/dist/schema/nodes/site.d.ts.map +1 -1
  177. package/dist/schema/nodes/site.js +8 -6
  178. package/dist/schema/nodes/skylight.d.ts +10 -10
  179. package/dist/schema/nodes/slab.d.ts +8 -2
  180. package/dist/schema/nodes/slab.d.ts.map +1 -1
  181. package/dist/schema/nodes/slab.js +18 -2
  182. package/dist/schema/nodes/solar-panel.d.ts +4 -4
  183. package/dist/schema/nodes/spawn.d.ts +1 -0
  184. package/dist/schema/nodes/spawn.d.ts.map +1 -1
  185. package/dist/schema/nodes/spawn.js +2 -0
  186. package/dist/schema/nodes/stair-segment.d.ts +4 -4
  187. package/dist/schema/nodes/stair.d.ts +16 -13
  188. package/dist/schema/nodes/stair.d.ts.map +1 -1
  189. package/dist/schema/nodes/stair.js +11 -1
  190. package/dist/schema/nodes/structural-grid.d.ts +27 -0
  191. package/dist/schema/nodes/structural-grid.d.ts.map +1 -0
  192. package/dist/schema/nodes/structural-grid.js +17 -0
  193. package/dist/schema/nodes/turbine-vent.d.ts +2 -2
  194. package/dist/schema/nodes/wall.d.ts +248 -6
  195. package/dist/schema/nodes/wall.d.ts.map +1 -1
  196. package/dist/schema/nodes/wall.js +266 -0
  197. package/dist/schema/nodes/window.d.ts +40 -3
  198. package/dist/schema/nodes/window.d.ts.map +1 -1
  199. package/dist/schema/nodes/window.js +30 -0
  200. package/dist/schema/nodes/zone.d.ts +22 -0
  201. package/dist/schema/nodes/zone.d.ts.map +1 -1
  202. package/dist/schema/nodes/zone.js +21 -0
  203. package/dist/schema/scene-material.d.ts +41 -0
  204. package/dist/schema/scene-material.d.ts.map +1 -0
  205. package/dist/schema/scene-material.js +9 -0
  206. package/dist/schema/terrain.d.ts +28 -0
  207. package/dist/schema/terrain.d.ts.map +1 -0
  208. package/dist/schema/terrain.js +30 -0
  209. package/dist/schema/types.d.ts +1300 -97
  210. package/dist/schema/types.d.ts.map +1 -1
  211. package/dist/schema/types.js +27 -0
  212. package/dist/services/__fixtures__/wall-plane-top-boundary-repro.d.ts +80 -0
  213. package/dist/services/__fixtures__/wall-plane-top-boundary-repro.d.ts.map +1 -0
  214. package/dist/services/__fixtures__/wall-plane-top-boundary-repro.js +89 -0
  215. package/dist/services/alignment-anchors.d.ts.map +1 -1
  216. package/dist/services/alignment-anchors.js +30 -1
  217. package/dist/services/alignment.d.ts +5 -0
  218. package/dist/services/alignment.d.ts.map +1 -1
  219. package/dist/services/alignment.js +2 -0
  220. package/dist/services/hosting.d.ts +8 -0
  221. package/dist/services/hosting.d.ts.map +1 -1
  222. package/dist/services/hosting.js +13 -4
  223. package/dist/services/index.d.ts +9 -2
  224. package/dist/services/index.d.ts.map +1 -1
  225. package/dist/services/index.js +9 -2
  226. package/dist/services/level-height.d.ts +27 -0
  227. package/dist/services/level-height.d.ts.map +1 -0
  228. package/dist/services/level-height.js +94 -0
  229. package/dist/services/opening-guides.d.ts +141 -0
  230. package/dist/services/opening-guides.d.ts.map +1 -0
  231. package/dist/services/opening-guides.js +267 -0
  232. package/dist/services/port-connectivity.d.ts +115 -0
  233. package/dist/services/port-connectivity.d.ts.map +1 -0
  234. package/dist/services/port-connectivity.js +300 -0
  235. package/dist/services/riser-diagram.d.ts +40 -0
  236. package/dist/services/riser-diagram.d.ts.map +1 -0
  237. package/dist/services/riser-diagram.js +110 -0
  238. package/dist/services/snap.d.ts +9 -1
  239. package/dist/services/snap.d.ts.map +1 -1
  240. package/dist/services/snap.js +21 -1
  241. package/dist/services/storey.d.ts +103 -0
  242. package/dist/services/storey.d.ts.map +1 -0
  243. package/dist/services/storey.js +296 -0
  244. package/dist/services/system-graph.d.ts +30 -0
  245. package/dist/services/system-graph.d.ts.map +1 -0
  246. package/dist/services/system-graph.js +164 -0
  247. package/dist/services/validate-dwv.d.ts +32 -0
  248. package/dist/services/validate-dwv.d.ts.map +1 -0
  249. package/dist/services/validate-dwv.js +118 -0
  250. package/dist/store/actions/node-actions.d.ts.map +1 -1
  251. package/dist/store/actions/node-actions.js +141 -4
  252. package/dist/store/history-control.d.ts +31 -0
  253. package/dist/store/history-control.d.ts.map +1 -1
  254. package/dist/store/history-control.js +130 -0
  255. package/dist/store/use-live-terrain.d.ts +65 -0
  256. package/dist/store/use-live-terrain.d.ts.map +1 -0
  257. package/dist/store/use-live-terrain.js +31 -0
  258. package/dist/store/use-live-transforms.d.ts +8 -0
  259. package/dist/store/use-live-transforms.d.ts.map +1 -1
  260. package/dist/store/use-scene.d.ts +47 -3
  261. package/dist/store/use-scene.d.ts.map +1 -1
  262. package/dist/store/use-scene.js +992 -55
  263. package/dist/systems/elevator/elevator-opening-system.d.ts +1 -0
  264. package/dist/systems/elevator/elevator-opening-system.d.ts.map +1 -1
  265. package/dist/systems/elevator/elevator-opening-system.js +27 -21
  266. package/dist/systems/elevator/elevator-service.d.ts +0 -2
  267. package/dist/systems/elevator/elevator-service.d.ts.map +1 -1
  268. package/dist/systems/elevator/elevator-service.js +2 -24
  269. package/dist/systems/fence/fence-centerline.d.ts +12 -0
  270. package/dist/systems/fence/fence-centerline.d.ts.map +1 -0
  271. package/dist/systems/fence/fence-centerline.js +37 -0
  272. package/dist/systems/fence/fence-spline.d.ts +39 -0
  273. package/dist/systems/fence/fence-spline.d.ts.map +1 -0
  274. package/dist/systems/fence/fence-spline.js +196 -0
  275. package/dist/systems/slab/slab-placement.d.ts +11 -0
  276. package/dist/systems/slab/slab-placement.d.ts.map +1 -0
  277. package/dist/systems/slab/slab-placement.js +14 -0
  278. package/dist/systems/slab/slab-support.d.ts +137 -0
  279. package/dist/systems/slab/slab-support.d.ts.map +1 -0
  280. package/dist/systems/slab/slab-support.js +557 -0
  281. package/dist/systems/stair/stair-footprint.d.ts.map +1 -1
  282. package/dist/systems/stair/stair-footprint.js +21 -11
  283. package/dist/systems/stair/stair-opening-preview.d.ts +1300 -505
  284. package/dist/systems/stair/stair-opening-preview.d.ts.map +1 -1
  285. package/dist/systems/stair/stair-opening-sync.d.ts.map +1 -1
  286. package/dist/systems/stair/stair-opening-sync.js +19 -33
  287. package/dist/systems/stair/stair-opening-system.d.ts.map +1 -1
  288. package/dist/systems/stair/stair-opening-system.js +32 -4
  289. package/dist/systems/stair/stair-rise.d.ts +22 -0
  290. package/dist/systems/stair/stair-rise.d.ts.map +1 -0
  291. package/dist/systems/stair/stair-rise.js +79 -0
  292. package/dist/systems/wall/wall-curve.d.ts +10 -0
  293. package/dist/systems/wall/wall-curve.d.ts.map +1 -1
  294. package/dist/systems/wall/wall-curve.js +1 -1
  295. package/dist/systems/wall/wall-mitering.d.ts.map +1 -1
  296. package/dist/systems/wall/wall-mitering.js +44 -8
  297. package/dist/systems/wall/wall-top.d.ts +40 -0
  298. package/dist/systems/wall/wall-top.d.ts.map +1 -0
  299. package/dist/systems/wall/wall-top.js +46 -0
  300. package/dist/utils/clone-scene-graph.d.ts +1 -0
  301. package/dist/utils/clone-scene-graph.d.ts.map +1 -1
  302. package/dist/utils/clone-scene-graph.js +56 -5
  303. package/dist/utils/heal-scene-graph.d.ts +18 -0
  304. package/dist/utils/heal-scene-graph.d.ts.map +1 -0
  305. package/dist/utils/heal-scene-graph.js +106 -0
  306. package/dist/validation/validate-build-json.d.ts +3 -0
  307. package/dist/validation/validate-build-json.d.ts.map +1 -1
  308. package/dist/validation/validate-build-json.js +90 -5
  309. package/package.json +4 -4
  310. package/dist/hooks/spatial-grid/floor-placed-elevation.test.d.ts +0 -2
  311. package/dist/hooks/spatial-grid/floor-placed-elevation.test.d.ts.map +0 -1
  312. package/dist/hooks/spatial-grid/floor-placed-elevation.test.js +0 -273
  313. package/dist/lib/space-detection-pause.test.d.ts +0 -2
  314. package/dist/lib/space-detection-pause.test.d.ts.map +0 -1
  315. package/dist/lib/space-detection-pause.test.js +0 -42
  316. package/dist/lib/space-detection.test.d.ts +0 -2
  317. package/dist/lib/space-detection.test.d.ts.map +0 -1
  318. package/dist/lib/space-detection.test.js +0 -77
  319. package/dist/registry/registry.test.d.ts +0 -2
  320. package/dist/registry/registry.test.d.ts.map +0 -1
  321. package/dist/registry/registry.test.js +0 -183
  322. package/dist/registry/relations-resolver.test.d.ts +0 -2
  323. package/dist/registry/relations-resolver.test.d.ts.map +0 -1
  324. package/dist/registry/relations-resolver.test.js +0 -183
  325. package/dist/registry/scene-api.test.d.ts +0 -2
  326. package/dist/registry/scene-api.test.d.ts.map +0 -1
  327. package/dist/registry/scene-api.test.js +0 -183
  328. package/dist/registry/subtree.test.d.ts +0 -2
  329. package/dist/registry/subtree.test.d.ts.map +0 -1
  330. package/dist/registry/subtree.test.js +0 -133
  331. package/dist/schema/asset-url.test.d.ts +0 -2
  332. package/dist/schema/asset-url.test.d.ts.map +0 -1
  333. package/dist/schema/asset-url.test.js +0 -134
  334. package/dist/services/alignment-anchors.test.d.ts +0 -2
  335. package/dist/services/alignment-anchors.test.d.ts.map +0 -1
  336. package/dist/services/alignment-anchors.test.js +0 -383
  337. package/dist/services/alignment.test.d.ts +0 -2
  338. package/dist/services/alignment.test.d.ts.map +0 -1
  339. package/dist/services/alignment.test.js +0 -92
  340. package/dist/services/drag-session.test.d.ts +0 -2
  341. package/dist/services/drag-session.test.d.ts.map +0 -1
  342. package/dist/services/drag-session.test.js +0 -219
  343. package/dist/services/hosting.test.d.ts +0 -2
  344. package/dist/services/hosting.test.d.ts.map +0 -1
  345. package/dist/services/hosting.test.js +0 -199
  346. package/dist/services/movement.test.d.ts +0 -2
  347. package/dist/services/movement.test.d.ts.map +0 -1
  348. package/dist/services/movement.test.js +0 -133
  349. package/dist/services/single-undo-dance.test.d.ts +0 -2
  350. package/dist/services/single-undo-dance.test.d.ts.map +0 -1
  351. package/dist/services/single-undo-dance.test.js +0 -210
  352. package/dist/services/snap.test.d.ts +0 -2
  353. package/dist/services/snap.test.d.ts.map +0 -1
  354. package/dist/services/snap.test.js +0 -95
  355. package/dist/store/actions/node-mutation-sanitize.test.d.ts +0 -2
  356. package/dist/store/actions/node-mutation-sanitize.test.d.ts.map +0 -1
  357. package/dist/store/actions/node-mutation-sanitize.test.js +0 -147
  358. package/dist/store/actions/reparent.test.d.ts +0 -2
  359. package/dist/store/actions/reparent.test.d.ts.map +0 -1
  360. package/dist/store/actions/reparent.test.js +0 -212
  361. package/dist/store/use-scene-elevator-migration.test.d.ts +0 -2
  362. package/dist/store/use-scene-elevator-migration.test.d.ts.map +0 -1
  363. package/dist/store/use-scene-elevator-migration.test.js +0 -109
  364. package/dist/systems/elevator/elevator-opening-sync.test.d.ts +0 -2
  365. package/dist/systems/elevator/elevator-opening-sync.test.d.ts.map +0 -1
  366. package/dist/systems/elevator/elevator-opening-sync.test.js +0 -146
  367. package/dist/systems/elevator/elevator-runtime.test.d.ts +0 -2
  368. package/dist/systems/elevator/elevator-runtime.test.d.ts.map +0 -1
  369. package/dist/systems/elevator/elevator-runtime.test.js +0 -64
  370. package/dist/systems/stair/stair-opening-preview.test.d.ts +0 -2
  371. package/dist/systems/stair/stair-opening-preview.test.d.ts.map +0 -1
  372. package/dist/systems/stair/stair-opening-preview.test.js +0 -80
  373. package/dist/systems/stair/stair-opening-sync.test.d.ts +0 -2
  374. package/dist/systems/stair/stair-opening-sync.test.d.ts.map +0 -1
  375. package/dist/systems/stair/stair-opening-sync.test.js +0 -446
  376. package/dist/utils/clone-scene-graph.test.d.ts +0 -2
  377. package/dist/utils/clone-scene-graph.test.d.ts.map +0 -1
  378. package/dist/utils/clone-scene-graph.test.js +0 -59
@@ -3,21 +3,37 @@ import { z } from 'zod';
3
3
  import { BaseNode, nodeType, objectId } from '../base';
4
4
  import { MaterialSchema } from '../material';
5
5
  import { SurfaceHoleMetadata } from './surface-hole-metadata';
6
+ // Edit-time floor for `thickness` — a thinner slab z-fights the ceiling's
7
+ // −0.01 underside offset. Applies to edits only; migration writes legacy
8
+ // intervals verbatim (including degenerate zero-thickness slabs).
9
+ export const MIN_SLAB_THICKNESS = 0.02;
6
10
  export const SlabNode = BaseNode.extend({
7
11
  id: objectId('slab'),
8
12
  type: nodeType('slab'),
9
13
  material: MaterialSchema.optional(),
10
14
  materialPreset: z.string().optional(),
15
+ // Per-slot material overrides on the unified slot model, mirroring
16
+ // `ShelfNode.slots`. Key = slot id (`surface`), value = a `MaterialRef`
17
+ // (`library:<id>` / `scene:<id>`). Absent = the declared slot default.
18
+ slots: z.record(z.string(), z.string()).optional(),
11
19
  polygon: z.array(z.tuple([z.number(), z.number()])),
12
20
  holes: z.array(z.array(z.tuple([z.number(), z.number()]))).default([]),
13
21
  holeMetadata: z.array(SurfaceHoleMetadata).default([]),
14
- elevation: z.number().default(0.05), // Elevation in meters
22
+ elevation: z.number().default(0.05), // Walking surface (slab top), meters above the level plane
23
+ thickness: z.number().default(0.05), // Grows downward from the surface
24
+ recessed: z.boolean().default(false),
25
+ recessedRimElevation: z.number().finite().optional(),
26
+ fillToTerrain: z.boolean().optional(),
15
27
  autoFromWalls: z.boolean().default(false),
16
28
  }).describe(dedent `
17
29
  Slab node - used to represent a slab/floor in the building
18
30
  - polygon: array of [x, z] points defining the slab boundary
19
31
  - holes: array of [x, z] polygons representing cutouts in the slab
20
32
  - holeMetadata: metadata parallel to holes, used to preserve manual and auto-managed cutouts
21
- - elevation: elevation in meters
33
+ - elevation: the walking surface (slab top), in meters above the level plane
34
+ - thickness: grows downward from the surface; the solid occupies [elevation - thickness, elevation]
35
+ - recessed: open recess (pool) whose floor sits at elevation
36
+ - recessedRimElevation: optional rim anchor for a raised/lowered recess; absent means the level plane
37
+ - fillToTerrain: extends a solid slab's perimeter downward to terrain without changing its flat top or authored thickness
22
38
  - autoFromWalls: whether the slab is automatically generated from a closed wall loop
23
39
  `);
@@ -24,7 +24,7 @@ export declare const SolarPanelNode: z.ZodObject<{
24
24
  type: z.ZodDefault<z.ZodLiteral<"solar-panel">>;
25
25
  material: z.ZodOptional<z.ZodObject<{
26
26
  id: z.ZodOptional<z.ZodString>;
27
- preset: z.ZodOptional<z.ZodEnum<{
27
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
28
28
  custom: "custom";
29
29
  white: "white";
30
30
  brick: "brick";
@@ -35,7 +35,7 @@ export declare const SolarPanelNode: z.ZodObject<{
35
35
  plaster: "plaster";
36
36
  tile: "tile";
37
37
  marble: "marble";
38
- }>>;
38
+ }>>>;
39
39
  properties: z.ZodOptional<z.ZodObject<{
40
40
  color: z.ZodDefault<z.ZodString>;
41
41
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -57,7 +57,7 @@ export declare const SolarPanelNode: z.ZodObject<{
57
57
  materialPreset: z.ZodOptional<z.ZodString>;
58
58
  panelMaterial: z.ZodOptional<z.ZodObject<{
59
59
  id: z.ZodOptional<z.ZodString>;
60
- preset: z.ZodOptional<z.ZodEnum<{
60
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
61
61
  custom: "custom";
62
62
  white: "white";
63
63
  brick: "brick";
@@ -68,7 +68,7 @@ export declare const SolarPanelNode: z.ZodObject<{
68
68
  plaster: "plaster";
69
69
  tile: "tile";
70
70
  marble: "marble";
71
- }>>;
71
+ }>>>;
72
72
  properties: z.ZodOptional<z.ZodObject<{
73
73
  color: z.ZodDefault<z.ZodString>;
74
74
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -19,6 +19,7 @@ export declare const SpawnNode: z.ZodObject<{
19
19
  type: z.ZodDefault<z.ZodLiteral<"spawn">>;
20
20
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
21
21
  rotation: z.ZodDefault<z.ZodNumber>;
22
+ supportSlabId: z.ZodOptional<z.ZodString>;
22
23
  }, z.core.$strip>;
23
24
  export type SpawnNode = z.infer<typeof SpawnNode>;
24
25
  //# sourceMappingURL=spawn.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"spawn.d.ts","sourceRoot":"","sources":["../../../src/schema/nodes/spawn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;iBAKpB,CAAA;AAEF,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAA"}
1
+ {"version":3,"file":"spawn.d.ts","sourceRoot":"","sources":["../../../src/schema/nodes/spawn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;iBAOpB,CAAA;AAEF,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAA"}
@@ -5,4 +5,6 @@ export const SpawnNode = BaseNode.extend({
5
5
  type: nodeType('spawn'),
6
6
  position: z.tuple([z.number(), z.number(), z.number()]).default([0, 0, 0]),
7
7
  rotation: z.number().default(0),
8
+ // Persisted slab-support host — see ItemNode.supportSlabId for the rules.
9
+ supportSlabId: z.string().optional(),
8
10
  });
@@ -6,8 +6,8 @@ export declare const StairSegmentType: z.ZodEnum<{
6
6
  export type StairSegmentType = z.infer<typeof StairSegmentType>;
7
7
  export declare const AttachmentSide: z.ZodEnum<{
8
8
  front: "front";
9
- left: "left";
10
9
  right: "right";
10
+ left: "left";
11
11
  }>;
12
12
  export type AttachmentSide = z.infer<typeof AttachmentSide>;
13
13
  export declare const StairSegmentNode: z.ZodObject<{
@@ -30,7 +30,7 @@ export declare const StairSegmentNode: z.ZodObject<{
30
30
  type: z.ZodDefault<z.ZodLiteral<"stair-segment">>;
31
31
  material: z.ZodOptional<z.ZodObject<{
32
32
  id: z.ZodOptional<z.ZodString>;
33
- preset: z.ZodOptional<z.ZodEnum<{
33
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
34
34
  custom: "custom";
35
35
  white: "white";
36
36
  brick: "brick";
@@ -41,7 +41,7 @@ export declare const StairSegmentNode: z.ZodObject<{
41
41
  plaster: "plaster";
42
42
  tile: "tile";
43
43
  marble: "marble";
44
- }>>;
44
+ }>>>;
45
45
  properties: z.ZodOptional<z.ZodObject<{
46
46
  color: z.ZodDefault<z.ZodString>;
47
47
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -73,8 +73,8 @@ export declare const StairSegmentNode: z.ZodObject<{
73
73
  stepCount: z.ZodDefault<z.ZodNumber>;
74
74
  attachmentSide: z.ZodDefault<z.ZodEnum<{
75
75
  front: "front";
76
- left: "left";
77
76
  right: "right";
77
+ left: "left";
78
78
  }>>;
79
79
  fillToFloor: z.ZodDefault<z.ZodBoolean>;
80
80
  thickness: z.ZodDefault<z.ZodNumber>;
@@ -1,9 +1,9 @@
1
1
  import { z } from 'zod';
2
2
  import type { MaterialSchema as MaterialSchemaType } from '../material';
3
3
  export declare const StairRailingMode: z.ZodEnum<{
4
- none: "none";
5
- left: "left";
6
4
  right: "right";
5
+ left: "left";
6
+ none: "none";
7
7
  both: "both";
8
8
  }>;
9
9
  export declare const StairType: z.ZodEnum<{
@@ -48,7 +48,7 @@ export declare const StairNode: z.ZodObject<{
48
48
  type: z.ZodDefault<z.ZodLiteral<"stair">>;
49
49
  material: z.ZodOptional<z.ZodObject<{
50
50
  id: z.ZodOptional<z.ZodString>;
51
- preset: z.ZodOptional<z.ZodEnum<{
51
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
52
52
  custom: "custom";
53
53
  white: "white";
54
54
  brick: "brick";
@@ -59,7 +59,7 @@ export declare const StairNode: z.ZodObject<{
59
59
  plaster: "plaster";
60
60
  tile: "tile";
61
61
  marble: "marble";
62
- }>>;
62
+ }>>>;
63
63
  properties: z.ZodOptional<z.ZodObject<{
64
64
  color: z.ZodDefault<z.ZodString>;
65
65
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -81,7 +81,7 @@ export declare const StairNode: z.ZodObject<{
81
81
  materialPreset: z.ZodOptional<z.ZodString>;
82
82
  railingMaterial: z.ZodOptional<z.ZodObject<{
83
83
  id: z.ZodOptional<z.ZodString>;
84
- preset: z.ZodOptional<z.ZodEnum<{
84
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
85
85
  custom: "custom";
86
86
  white: "white";
87
87
  brick: "brick";
@@ -92,7 +92,7 @@ export declare const StairNode: z.ZodObject<{
92
92
  plaster: "plaster";
93
93
  tile: "tile";
94
94
  marble: "marble";
95
- }>>;
95
+ }>>>;
96
96
  properties: z.ZodOptional<z.ZodObject<{
97
97
  color: z.ZodDefault<z.ZodString>;
98
98
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -114,7 +114,7 @@ export declare const StairNode: z.ZodObject<{
114
114
  railingMaterialPreset: z.ZodOptional<z.ZodString>;
115
115
  treadMaterial: z.ZodOptional<z.ZodObject<{
116
116
  id: z.ZodOptional<z.ZodString>;
117
- preset: z.ZodOptional<z.ZodEnum<{
117
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
118
118
  custom: "custom";
119
119
  white: "white";
120
120
  brick: "brick";
@@ -125,7 +125,7 @@ export declare const StairNode: z.ZodObject<{
125
125
  plaster: "plaster";
126
126
  tile: "tile";
127
127
  marble: "marble";
128
- }>>;
128
+ }>>>;
129
129
  properties: z.ZodOptional<z.ZodObject<{
130
130
  color: z.ZodDefault<z.ZodString>;
131
131
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -147,7 +147,7 @@ export declare const StairNode: z.ZodObject<{
147
147
  treadMaterialPreset: z.ZodOptional<z.ZodString>;
148
148
  sideMaterial: z.ZodOptional<z.ZodObject<{
149
149
  id: z.ZodOptional<z.ZodString>;
150
- preset: z.ZodOptional<z.ZodEnum<{
150
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
151
151
  custom: "custom";
152
152
  white: "white";
153
153
  brick: "brick";
@@ -158,7 +158,7 @@ export declare const StairNode: z.ZodObject<{
158
158
  plaster: "plaster";
159
159
  tile: "tile";
160
160
  marble: "marble";
161
- }>>;
161
+ }>>>;
162
162
  properties: z.ZodOptional<z.ZodObject<{
163
163
  color: z.ZodDefault<z.ZodString>;
164
164
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -178,8 +178,10 @@ export declare const StairNode: z.ZodObject<{
178
178
  }, z.core.$strip>>;
179
179
  }, z.core.$strip>>;
180
180
  sideMaterialPreset: z.ZodOptional<z.ZodString>;
181
+ slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
181
182
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
182
183
  rotation: z.ZodDefault<z.ZodNumber>;
184
+ supportSlabId: z.ZodOptional<z.ZodString>;
183
185
  stairType: z.ZodDefault<z.ZodEnum<{
184
186
  straight: "straight";
185
187
  spiral: "spiral";
@@ -187,13 +189,14 @@ export declare const StairNode: z.ZodObject<{
187
189
  }>>;
188
190
  fromLevelId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
189
191
  toLevelId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
192
+ deckSlabId: z.ZodOptional<z.ZodString>;
190
193
  slabOpeningMode: z.ZodDefault<z.ZodEnum<{
191
194
  none: "none";
192
195
  destination: "destination";
193
196
  }>>;
194
197
  openingOffset: z.ZodDefault<z.ZodNumber>;
195
198
  width: z.ZodDefault<z.ZodNumber>;
196
- totalRise: z.ZodDefault<z.ZodNumber>;
199
+ totalRise: z.ZodOptional<z.ZodNumber>;
197
200
  stepCount: z.ZodDefault<z.ZodNumber>;
198
201
  thickness: z.ZodDefault<z.ZodNumber>;
199
202
  fillToFloor: z.ZodDefault<z.ZodBoolean>;
@@ -207,9 +210,9 @@ export declare const StairNode: z.ZodObject<{
207
210
  showCenterColumn: z.ZodDefault<z.ZodBoolean>;
208
211
  showStepSupports: z.ZodDefault<z.ZodBoolean>;
209
212
  railingMode: z.ZodDefault<z.ZodEnum<{
210
- none: "none";
211
- left: "left";
212
213
  right: "right";
214
+ left: "left";
215
+ none: "none";
213
216
  both: "both";
214
217
  }>>;
215
218
  railingHeight: z.ZodDefault<z.ZodNumber>;
@@ -1 +1 @@
1
- {"version":3,"file":"stair.d.ts","sourceRoot":"","sources":["../../../src/schema/nodes/stair.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,KAAK,EAAE,cAAc,IAAI,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAIvE,eAAO,MAAM,gBAAgB;;;;;EAA4C,CAAA;AACzE,eAAO,MAAM,SAAS;;;;EAA2C,CAAA;AACjE,eAAO,MAAM,mBAAmB;;;EAAiC,CAAA;AACjE,eAAO,MAAM,oBAAoB;;;EAAkC,CAAA;AAEnE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAC/D,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAA;AACjD,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AACrE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AACvE,MAAM,MAAM,wBAAwB,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAA;AACnE,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,CAAC,EAAE,kBAAkB,CAAA;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA4DrB,CAAA;AAED,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAA;AASjD,wBAAgB,gCAAgC,CAC9C,IAAI,EAAE,SAAS,EACf,IAAI,EAAE,wBAAwB,GAC7B,wBAAwB,CAmE1B"}
1
+ {"version":3,"file":"stair.d.ts","sourceRoot":"","sources":["../../../src/schema/nodes/stair.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,KAAK,EAAE,cAAc,IAAI,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAIvE,eAAO,MAAM,gBAAgB;;;;;EAA4C,CAAA;AACzE,eAAO,MAAM,SAAS;;;;EAA2C,CAAA;AACjE,eAAO,MAAM,mBAAmB;;;EAAiC,CAAA;AACjE,eAAO,MAAM,oBAAoB;;;EAAkC,CAAA;AAEnE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAC/D,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAA;AACjD,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AACrE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AACvE,MAAM,MAAM,wBAAwB,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAA;AACnE,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,CAAC,EAAE,kBAAkB,CAAA;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAsErB,CAAA;AAED,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAA;AASjD,wBAAgB,gCAAgC,CAC9C,IAAI,EAAE,SAAS,EACf,IAAI,EAAE,wBAAwB,GAC7B,wBAAwB,CAmE1B"}
@@ -18,16 +18,25 @@ export const StairNode = BaseNode.extend({
18
18
  treadMaterialPreset: z.string().optional(),
19
19
  sideMaterial: MaterialSchema.optional(),
20
20
  sideMaterialPreset: z.string().optional(),
21
+ // Unified paint-slot refs (`scene:`/`library:` MaterialRef per slot id),
22
+ // matching the slot model items/slab/shelf use. Absent = declared default.
23
+ slots: z.record(z.string(), z.string()).optional(),
21
24
  position: z.tuple([z.number(), z.number(), z.number()]).default([0, 0, 0]),
22
25
  // Rotation around Y axis in radians
23
26
  rotation: z.number().default(0),
27
+ // Persisted slab-support host — see ItemNode.supportSlabId for the rules.
28
+ supportSlabId: z.string().optional(),
24
29
  stairType: StairType.default('straight'),
25
30
  fromLevelId: z.string().nullable().default(null),
26
31
  toLevelId: z.string().nullable().default(null),
32
+ // Destination deck (a slab id). When set, the stair's rise follows that
33
+ // slab's elevation live. An explicit `totalRise` still wins when BOTH are
34
+ // set (edge case — the panel clears the custom rise when attaching).
35
+ deckSlabId: z.string().optional(),
27
36
  slabOpeningMode: StairSlabOpeningMode.default('none'),
28
37
  openingOffset: z.number().default(0),
29
38
  width: z.number().default(1.0),
30
- totalRise: z.number().default(2.5),
39
+ totalRise: z.number().optional(),
31
40
  stepCount: z.number().default(10),
32
41
  thickness: z.number().default(0.25),
33
42
  fillToFloor: z.boolean().default(true),
@@ -49,6 +58,7 @@ export const StairNode = BaseNode.extend({
49
58
  - rotation: rotation around Y axis
50
59
  - stairType: straight (segment-based), curved (arc-based), or spiral
51
60
  - fromLevelId / toLevelId: source and destination levels used for auto slab cutouts
61
+ - deckSlabId: destination deck (slab) — the rise derives from its elevation while set
52
62
  - slabOpeningMode: whether a destination-level slab opening is generated for this stair
53
63
  - openingOffset: extra opening expansion applied after the cutout polygon is computed
54
64
  - width: stair width
@@ -0,0 +1,27 @@
1
+ import { z } from 'zod';
2
+ export declare const StructuralGridNode: z.ZodObject<{
3
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
4
+ name: z.ZodOptional<z.ZodString>;
5
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
6
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
7
+ camera: z.ZodOptional<z.ZodObject<{
8
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
9
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
10
+ mode: z.ZodDefault<z.ZodEnum<{
11
+ perspective: "perspective";
12
+ orthographic: "orthographic";
13
+ }>>;
14
+ fov: z.ZodOptional<z.ZodNumber>;
15
+ zoom: z.ZodOptional<z.ZodNumber>;
16
+ }, z.core.$strip>>;
17
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
18
+ id: z.ZodDefault<z.ZodTemplateLiteral<`structural-grid_${string}`>>;
19
+ type: z.ZodDefault<z.ZodLiteral<"structural-grid">>;
20
+ start: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
21
+ end: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
22
+ label: z.ZodDefault<z.ZodString>;
23
+ showStartBubble: z.ZodDefault<z.ZodBoolean>;
24
+ showEndBubble: z.ZodDefault<z.ZodBoolean>;
25
+ }, z.core.$strip>;
26
+ export type StructuralGridNode = z.infer<typeof StructuralGridNode>;
27
+ //# sourceMappingURL=structural-grid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structural-grid.d.ts","sourceRoot":"","sources":["../../../src/schema/nodes/structural-grid.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;iBAe9B,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA"}
@@ -0,0 +1,17 @@
1
+ import dedent from 'dedent';
2
+ import { z } from 'zod';
3
+ import { BaseNode, nodeType, objectId } from '../base';
4
+ export const StructuralGridNode = BaseNode.extend({
5
+ id: objectId('structural-grid'),
6
+ type: nodeType('structural-grid'),
7
+ start: z.tuple([z.number(), z.number()]).default([0, 0]),
8
+ end: z.tuple([z.number(), z.number()]).default([0, 5]),
9
+ label: z.string().trim().min(1).max(12).default('1'),
10
+ showStartBubble: z.boolean().default(true),
11
+ showEndBubble: z.boolean().default(true),
12
+ }).describe(dedent `
13
+ Structural grid node - a persistent floor-plan datum axis with identification bubbles
14
+ - start/end: level-local plan coordinates defining the grid axis extent
15
+ - label: axis identifier, commonly numeric in one direction and alphabetic in the other
16
+ - showStartBubble/showEndBubble: independently control the two endpoint identifiers
17
+ `);
@@ -19,7 +19,7 @@ export declare const TurbineVentNode: z.ZodObject<{
19
19
  type: z.ZodDefault<z.ZodLiteral<"turbine-vent">>;
20
20
  material: z.ZodOptional<z.ZodObject<{
21
21
  id: z.ZodOptional<z.ZodString>;
22
- preset: z.ZodOptional<z.ZodEnum<{
22
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
23
23
  custom: "custom";
24
24
  white: "white";
25
25
  brick: "brick";
@@ -30,7 +30,7 @@ export declare const TurbineVentNode: z.ZodObject<{
30
30
  plaster: "plaster";
31
31
  tile: "tile";
32
32
  marble: "marble";
33
- }>>;
33
+ }>>>;
34
34
  properties: z.ZodOptional<z.ZodObject<{
35
35
  color: z.ZodDefault<z.ZodString>;
36
36
  roughness: z.ZodDefault<z.ZodNumber>;