@pascal-app/core 1.0.3 → 1.0.5

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 (1485) hide show
  1. package/dist/agent-operations/__fixtures__/add-object-cases.d.ts +247 -0
  2. package/dist/agent-operations/__fixtures__/add-object-cases.d.ts.map +1 -0
  3. package/dist/agent-operations/__fixtures__/add-object-cases.js +429 -0
  4. package/dist/agent-operations/__fixtures__/add-stair-cases.d.ts +3 -0
  5. package/dist/agent-operations/__fixtures__/add-stair-cases.d.ts.map +1 -0
  6. package/dist/agent-operations/__fixtures__/add-stair-cases.js +176 -0
  7. package/dist/agent-operations/__fixtures__/build-room-cases.d.ts +4 -0
  8. package/dist/agent-operations/__fixtures__/build-room-cases.d.ts.map +1 -0
  9. package/dist/agent-operations/__fixtures__/build-room-cases.js +1005 -0
  10. package/dist/agent-operations/__fixtures__/cases.d.ts +67 -0
  11. package/dist/agent-operations/__fixtures__/cases.d.ts.map +1 -0
  12. package/dist/agent-operations/__fixtures__/cases.js +868 -0
  13. package/dist/agent-operations/__fixtures__/corner-window-cases.d.ts +3 -0
  14. package/dist/agent-operations/__fixtures__/corner-window-cases.d.ts.map +1 -0
  15. package/dist/agent-operations/__fixtures__/corner-window-cases.js +155 -0
  16. package/dist/agent-operations/__fixtures__/design-brief-cases.d.ts +14 -0
  17. package/dist/agent-operations/__fixtures__/design-brief-cases.d.ts.map +1 -0
  18. package/dist/agent-operations/__fixtures__/design-brief-cases.js +709 -0
  19. package/dist/agent-operations/__fixtures__/find-by-type-cases.d.ts +7 -0
  20. package/dist/agent-operations/__fixtures__/find-by-type-cases.d.ts.map +1 -0
  21. package/dist/agent-operations/__fixtures__/find-by-type-cases.js +21 -0
  22. package/dist/agent-operations/__fixtures__/finish-cases.d.ts +7 -0
  23. package/dist/agent-operations/__fixtures__/finish-cases.d.ts.map +1 -0
  24. package/dist/agent-operations/__fixtures__/finish-cases.js +758 -0
  25. package/dist/agent-operations/__fixtures__/lot-info-cases.d.ts +3 -0
  26. package/dist/agent-operations/__fixtures__/lot-info-cases.d.ts.map +1 -0
  27. package/dist/agent-operations/__fixtures__/lot-info-cases.js +370 -0
  28. package/dist/agent-operations/__fixtures__/merge-windows-cases.d.ts +3 -0
  29. package/dist/agent-operations/__fixtures__/merge-windows-cases.d.ts.map +1 -0
  30. package/dist/agent-operations/__fixtures__/merge-windows-cases.js +321 -0
  31. package/dist/agent-operations/__fixtures__/native-materials.d.ts +2237 -0
  32. package/dist/agent-operations/__fixtures__/native-materials.d.ts.map +1 -0
  33. package/dist/agent-operations/__fixtures__/native-materials.js +82 -0
  34. package/dist/agent-operations/__fixtures__/node-read-cases.d.ts +4 -0
  35. package/dist/agent-operations/__fixtures__/node-read-cases.d.ts.map +1 -0
  36. package/dist/agent-operations/__fixtures__/node-read-cases.js +639 -0
  37. package/dist/agent-operations/__fixtures__/notation-cases.d.ts +24 -0
  38. package/dist/agent-operations/__fixtures__/notation-cases.d.ts.map +1 -0
  39. package/dist/agent-operations/__fixtures__/notation-cases.js +356 -0
  40. package/dist/agent-operations/__fixtures__/place-items-cases.d.ts +17 -0
  41. package/dist/agent-operations/__fixtures__/place-items-cases.d.ts.map +1 -0
  42. package/dist/agent-operations/__fixtures__/place-items-cases.js +584 -0
  43. package/dist/agent-operations/__fixtures__/roof-bearing-cases.d.ts +19726 -0
  44. package/dist/agent-operations/__fixtures__/roof-bearing-cases.d.ts.map +1 -0
  45. package/dist/agent-operations/__fixtures__/roof-bearing-cases.js +106 -0
  46. package/dist/agent-operations/__fixtures__/roof-cases.d.ts +9 -0
  47. package/dist/agent-operations/__fixtures__/roof-cases.d.ts.map +1 -0
  48. package/dist/agent-operations/__fixtures__/roof-cases.js +382 -0
  49. package/dist/agent-operations/__fixtures__/room-cases.d.ts +4 -0
  50. package/dist/agent-operations/__fixtures__/room-cases.d.ts.map +1 -0
  51. package/dist/agent-operations/__fixtures__/room-cases.js +473 -0
  52. package/dist/agent-operations/__fixtures__/scene-check-cases.d.ts +4 -0
  53. package/dist/agent-operations/__fixtures__/scene-check-cases.d.ts.map +1 -0
  54. package/dist/agent-operations/__fixtures__/scene-check-cases.js +417 -0
  55. package/dist/agent-operations/__fixtures__/search-assets-cases.d.ts +5 -0
  56. package/dist/agent-operations/__fixtures__/search-assets-cases.d.ts.map +1 -0
  57. package/dist/agent-operations/__fixtures__/search-assets-cases.js +149 -0
  58. package/dist/agent-operations/__fixtures__/site-cases.d.ts +290 -0
  59. package/dist/agent-operations/__fixtures__/site-cases.d.ts.map +1 -0
  60. package/dist/agent-operations/__fixtures__/site-cases.js +780 -0
  61. package/dist/agent-operations/__fixtures__/structure-cases.d.ts +7 -0
  62. package/dist/agent-operations/__fixtures__/structure-cases.d.ts.map +1 -0
  63. package/dist/agent-operations/__fixtures__/structure-cases.js +1215 -0
  64. package/dist/agent-operations/__fixtures__/verify-scene-cases.d.ts +313 -0
  65. package/dist/agent-operations/__fixtures__/verify-scene-cases.d.ts.map +1 -0
  66. package/dist/agent-operations/__fixtures__/verify-scene-cases.js +350 -0
  67. package/dist/agent-operations/__fixtures__/view-assets-cases.d.ts +3 -0
  68. package/dist/agent-operations/__fixtures__/view-assets-cases.d.ts.map +1 -0
  69. package/dist/agent-operations/__fixtures__/view-assets-cases.js +155 -0
  70. package/dist/agent-operations/__fixtures__/view-scene-cases.d.ts +50 -0
  71. package/dist/agent-operations/__fixtures__/view-scene-cases.d.ts.map +1 -0
  72. package/dist/agent-operations/__fixtures__/view-scene-cases.js +425 -0
  73. package/dist/agent-operations/achieved.d.ts +21 -0
  74. package/dist/agent-operations/achieved.d.ts.map +1 -0
  75. package/dist/agent-operations/achieved.js +48 -0
  76. package/dist/agent-operations/add-column.d.ts +23 -0
  77. package/dist/agent-operations/add-column.d.ts.map +1 -0
  78. package/dist/agent-operations/add-column.js +99 -0
  79. package/dist/agent-operations/add-fence.d.ts +18 -0
  80. package/dist/agent-operations/add-fence.d.ts.map +1 -0
  81. package/dist/agent-operations/add-fence.js +48 -0
  82. package/dist/agent-operations/add-level.d.ts +17 -0
  83. package/dist/agent-operations/add-level.d.ts.map +1 -0
  84. package/dist/agent-operations/add-level.js +130 -0
  85. package/dist/agent-operations/add-object.d.ts +143 -0
  86. package/dist/agent-operations/add-object.d.ts.map +1 -0
  87. package/dist/agent-operations/add-object.js +522 -0
  88. package/dist/agent-operations/add-wall.d.ts +13 -0
  89. package/dist/agent-operations/add-wall.d.ts.map +1 -0
  90. package/dist/agent-operations/add-wall.js +73 -0
  91. package/dist/agent-operations/apply-changes.d.ts +22 -0
  92. package/dist/agent-operations/apply-changes.d.ts.map +1 -0
  93. package/dist/agent-operations/apply-changes.js +125 -0
  94. package/dist/agent-operations/apply-outcome.d.ts +21 -0
  95. package/dist/agent-operations/apply-outcome.d.ts.map +1 -0
  96. package/dist/agent-operations/apply-outcome.js +33 -0
  97. package/dist/agent-operations/asset-views.d.ts +75 -0
  98. package/dist/agent-operations/asset-views.d.ts.map +1 -0
  99. package/dist/agent-operations/asset-views.js +234 -0
  100. package/dist/agent-operations/author-scene.d.ts +157 -0
  101. package/dist/agent-operations/author-scene.d.ts.map +1 -0
  102. package/dist/agent-operations/author-scene.js +1076 -0
  103. package/dist/agent-operations/authored-scene-merge.d.ts +4 -0
  104. package/dist/agent-operations/authored-scene-merge.d.ts.map +1 -0
  105. package/dist/agent-operations/authored-scene-merge.js +96 -0
  106. package/dist/agent-operations/batch.d.ts +22 -0
  107. package/dist/agent-operations/batch.d.ts.map +1 -0
  108. package/dist/agent-operations/batch.js +104 -0
  109. package/dist/agent-operations/ceiling-object-observations.d.ts +31 -0
  110. package/dist/agent-operations/ceiling-object-observations.d.ts.map +1 -0
  111. package/dist/agent-operations/ceiling-object-observations.js +111 -0
  112. package/dist/agent-operations/collections.d.ts +28 -0
  113. package/dist/agent-operations/collections.d.ts.map +1 -0
  114. package/dist/agent-operations/collections.js +130 -0
  115. package/dist/agent-operations/corner-window.d.ts +19 -0
  116. package/dist/agent-operations/corner-window.d.ts.map +1 -0
  117. package/dist/agent-operations/corner-window.js +84 -0
  118. package/dist/agent-operations/create-roof.d.ts +32 -0
  119. package/dist/agent-operations/create-roof.d.ts.map +1 -0
  120. package/dist/agent-operations/create-roof.js +304 -0
  121. package/dist/agent-operations/create-room.d.ts +38 -0
  122. package/dist/agent-operations/create-room.d.ts.map +1 -0
  123. package/dist/agent-operations/create-room.js +245 -0
  124. package/dist/agent-operations/create-stair.d.ts +11 -0
  125. package/dist/agent-operations/create-stair.d.ts.map +1 -0
  126. package/dist/agent-operations/create-stair.js +330 -0
  127. package/dist/agent-operations/delete-node.d.ts +6 -0
  128. package/dist/agent-operations/delete-node.d.ts.map +1 -0
  129. package/dist/agent-operations/delete-node.js +9 -0
  130. package/dist/agent-operations/design-brief.d.ts +38 -0
  131. package/dist/agent-operations/design-brief.d.ts.map +1 -0
  132. package/dist/agent-operations/design-brief.js +300 -0
  133. package/dist/agent-operations/designs.d.ts +24 -0
  134. package/dist/agent-operations/designs.d.ts.map +1 -0
  135. package/dist/agent-operations/designs.js +48 -0
  136. package/dist/agent-operations/door-clearance.d.ts +150 -0
  137. package/dist/agent-operations/door-clearance.d.ts.map +1 -0
  138. package/dist/agent-operations/door-clearance.js +391 -0
  139. package/dist/agent-operations/duplicate-level.d.ts +12 -0
  140. package/dist/agent-operations/duplicate-level.d.ts.map +1 -0
  141. package/dist/agent-operations/duplicate-level.js +55 -0
  142. package/dist/agent-operations/find-by-type.d.ts +18 -0
  143. package/dist/agent-operations/find-by-type.d.ts.map +1 -0
  144. package/dist/agent-operations/find-by-type.js +317 -0
  145. package/dist/agent-operations/furnish-room.d.ts +39 -0
  146. package/dist/agent-operations/furnish-room.d.ts.map +1 -0
  147. package/dist/agent-operations/furnish-room.js +306 -0
  148. package/dist/agent-operations/furniture-kind.d.ts +22 -0
  149. package/dist/agent-operations/furniture-kind.d.ts.map +1 -0
  150. package/dist/agent-operations/furniture-kind.js +69 -0
  151. package/dist/agent-operations/get-node.d.ts +12 -0
  152. package/dist/agent-operations/get-node.d.ts.map +1 -0
  153. package/dist/agent-operations/get-node.js +105 -0
  154. package/dist/agent-operations/hosted-services.d.ts +14 -0
  155. package/dist/agent-operations/hosted-services.d.ts.map +1 -0
  156. package/dist/agent-operations/hosted-services.js +22 -0
  157. package/dist/agent-operations/index.d.ts +489 -0
  158. package/dist/agent-operations/index.d.ts.map +1 -0
  159. package/dist/agent-operations/index.js +141 -0
  160. package/dist/agent-operations/item-space.d.ts +22 -0
  161. package/dist/agent-operations/item-space.d.ts.map +1 -0
  162. package/dist/agent-operations/item-space.js +69 -0
  163. package/dist/agent-operations/layout-clearance.d.ts +157 -0
  164. package/dist/agent-operations/layout-clearance.d.ts.map +1 -0
  165. package/dist/agent-operations/layout-clearance.js +500 -0
  166. package/dist/agent-operations/level-height-fill.d.ts +12 -0
  167. package/dist/agent-operations/level-height-fill.d.ts.map +1 -0
  168. package/dist/agent-operations/level-height-fill.js +59 -0
  169. package/dist/agent-operations/level-reads.d.ts +37 -0
  170. package/dist/agent-operations/level-reads.d.ts.map +1 -0
  171. package/dist/agent-operations/level-reads.js +168 -0
  172. package/dist/agent-operations/level-target.d.ts +11 -0
  173. package/dist/agent-operations/level-target.d.ts.map +1 -0
  174. package/dist/agent-operations/level-target.js +29 -0
  175. package/dist/agent-operations/list-levels.d.ts +4 -0
  176. package/dist/agent-operations/list-levels.d.ts.map +1 -0
  177. package/dist/agent-operations/list-levels.js +54 -0
  178. package/dist/agent-operations/material-preset.d.ts +11 -0
  179. package/dist/agent-operations/material-preset.d.ts.map +1 -0
  180. package/dist/agent-operations/material-preset.js +68 -0
  181. package/dist/agent-operations/material-refs.d.ts +30 -0
  182. package/dist/agent-operations/material-refs.d.ts.map +1 -0
  183. package/dist/agent-operations/material-refs.js +105 -0
  184. package/dist/agent-operations/merge-windows.d.ts +6 -0
  185. package/dist/agent-operations/merge-windows.d.ts.map +1 -0
  186. package/dist/agent-operations/merge-windows.js +27 -0
  187. package/dist/agent-operations/move-roofs.d.ts +9 -0
  188. package/dist/agent-operations/move-roofs.d.ts.map +1 -0
  189. package/dist/agent-operations/move-roofs.js +29 -0
  190. package/dist/agent-operations/node-patch.d.ts +3 -0
  191. package/dist/agent-operations/node-patch.d.ts.map +1 -0
  192. package/dist/agent-operations/node-patch.js +114 -0
  193. package/dist/agent-operations/paint.d.ts +22 -0
  194. package/dist/agent-operations/paint.d.ts.map +1 -0
  195. package/dist/agent-operations/paint.js +329 -0
  196. package/dist/agent-operations/photo-elevation.d.ts +155 -0
  197. package/dist/agent-operations/photo-elevation.d.ts.map +1 -0
  198. package/dist/agent-operations/photo-elevation.js +761 -0
  199. package/dist/agent-operations/place-in-room.d.ts +29 -0
  200. package/dist/agent-operations/place-in-room.d.ts.map +1 -0
  201. package/dist/agent-operations/place-in-room.js +403 -0
  202. package/dist/agent-operations/place-items.d.ts +20 -0
  203. package/dist/agent-operations/place-items.d.ts.map +1 -0
  204. package/dist/agent-operations/place-items.js +239 -0
  205. package/dist/agent-operations/plan-geometry.d.ts +24 -0
  206. package/dist/agent-operations/plan-geometry.d.ts.map +1 -0
  207. package/dist/agent-operations/plan-geometry.js +97 -0
  208. package/dist/agent-operations/point-context.d.ts +139 -0
  209. package/dist/agent-operations/point-context.d.ts.map +1 -0
  210. package/dist/agent-operations/point-context.js +1 -0
  211. package/dist/agent-operations/project-files.d.ts +9 -0
  212. package/dist/agent-operations/project-files.d.ts.map +1 -0
  213. package/dist/agent-operations/project-files.js +25 -0
  214. package/dist/agent-operations/record-made.d.ts +18 -0
  215. package/dist/agent-operations/record-made.d.ts.map +1 -0
  216. package/dist/agent-operations/record-made.js +28 -0
  217. package/dist/agent-operations/roof-footprint.d.ts +24 -0
  218. package/dist/agent-operations/roof-footprint.d.ts.map +1 -0
  219. package/dist/agent-operations/roof-footprint.js +242 -0
  220. package/dist/agent-operations/roof-writes.d.ts +20 -0
  221. package/dist/agent-operations/roof-writes.d.ts.map +1 -0
  222. package/dist/agent-operations/roof-writes.js +165 -0
  223. package/dist/agent-operations/room-findings.d.ts +54 -0
  224. package/dist/agent-operations/room-findings.d.ts.map +1 -0
  225. package/dist/agent-operations/room-findings.js +143 -0
  226. package/dist/agent-operations/room-floor-script.d.ts +23 -0
  227. package/dist/agent-operations/room-floor-script.d.ts.map +1 -0
  228. package/dist/agent-operations/room-floor-script.js +54 -0
  229. package/dist/agent-operations/room-structure.d.ts +87 -0
  230. package/dist/agent-operations/room-structure.d.ts.map +1 -0
  231. package/dist/agent-operations/room-structure.js +144 -0
  232. package/dist/agent-operations/scene-checkpoint.d.ts +94 -0
  233. package/dist/agent-operations/scene-checkpoint.d.ts.map +1 -0
  234. package/dist/agent-operations/scene-checkpoint.js +176 -0
  235. package/dist/agent-operations/scene-materials.d.ts +15 -0
  236. package/dist/agent-operations/scene-materials.d.ts.map +1 -0
  237. package/dist/agent-operations/scene-materials.js +62 -0
  238. package/dist/agent-operations/scene-measure.d.ts +73 -0
  239. package/dist/agent-operations/scene-measure.d.ts.map +1 -0
  240. package/dist/agent-operations/scene-measure.js +73 -0
  241. package/dist/agent-operations/scene-queries.d.ts +4941 -0
  242. package/dist/agent-operations/scene-queries.d.ts.map +1 -0
  243. package/dist/agent-operations/scene-queries.js +74 -0
  244. package/dist/agent-operations/scene-review.d.ts +52 -0
  245. package/dist/agent-operations/scene-review.d.ts.map +1 -0
  246. package/dist/agent-operations/scene-review.js +106 -0
  247. package/dist/agent-operations/scene-view.d.ts +165 -0
  248. package/dist/agent-operations/scene-view.d.ts.map +1 -0
  249. package/dist/agent-operations/scene-view.js +916 -0
  250. package/dist/agent-operations/search-assets.d.ts +14 -0
  251. package/dist/agent-operations/search-assets.d.ts.map +1 -0
  252. package/dist/agent-operations/search-assets.js +43 -0
  253. package/dist/agent-operations/search-materials.d.ts +18 -0
  254. package/dist/agent-operations/search-materials.d.ts.map +1 -0
  255. package/dist/agent-operations/search-materials.js +165 -0
  256. package/dist/agent-operations/set-checkpoint.d.ts +9 -0
  257. package/dist/agent-operations/set-checkpoint.d.ts.map +1 -0
  258. package/dist/agent-operations/set-checkpoint.js +31 -0
  259. package/dist/agent-operations/set-ground-level.d.ts +12 -0
  260. package/dist/agent-operations/set-ground-level.d.ts.map +1 -0
  261. package/dist/agent-operations/set-ground-level.js +61 -0
  262. package/dist/agent-operations/site.d.ts +21 -0
  263. package/dist/agent-operations/site.d.ts.map +1 -0
  264. package/dist/agent-operations/site.js +123 -0
  265. package/dist/agent-operations/stairs.d.ts +5 -0
  266. package/dist/agent-operations/stairs.d.ts.map +1 -0
  267. package/dist/agent-operations/stairs.js +70 -0
  268. package/dist/agent-operations/types.d.ts +118 -0
  269. package/dist/agent-operations/types.d.ts.map +1 -0
  270. package/dist/agent-operations/types.js +1 -0
  271. package/dist/agent-operations/verify-scene.d.ts +84 -0
  272. package/dist/agent-operations/verify-scene.d.ts.map +1 -0
  273. package/dist/agent-operations/verify-scene.js +548 -0
  274. package/dist/agent-operations/wall-face-script.d.ts +28 -0
  275. package/dist/agent-operations/wall-face-script.d.ts.map +1 -0
  276. package/dist/agent-operations/wall-face-script.js +62 -0
  277. package/dist/agent-operations/wall-object-observations.d.ts +41 -0
  278. package/dist/agent-operations/wall-object-observations.d.ts.map +1 -0
  279. package/dist/agent-operations/wall-object-observations.js +249 -0
  280. package/dist/agent-operations/wall-opening.d.ts +65 -0
  281. package/dist/agent-operations/wall-opening.d.ts.map +1 -0
  282. package/dist/agent-operations/wall-opening.js +55 -0
  283. package/dist/agent-operations/wall-skirting.d.ts +24 -0
  284. package/dist/agent-operations/wall-skirting.d.ts.map +1 -0
  285. package/dist/agent-operations/wall-skirting.js +85 -0
  286. package/dist/agent-tools/achieved.d.ts +9 -0
  287. package/dist/agent-tools/achieved.d.ts.map +1 -0
  288. package/dist/agent-tools/achieved.js +8 -0
  289. package/dist/agent-tools/add-object.d.ts +47 -0
  290. package/dist/agent-tools/add-object.d.ts.map +1 -0
  291. package/dist/agent-tools/add-object.js +92 -0
  292. package/dist/agent-tools/assets.d.ts +21 -0
  293. package/dist/agent-tools/assets.d.ts.map +1 -0
  294. package/dist/agent-tools/assets.js +30 -0
  295. package/dist/agent-tools/author-scene.d.ts +651 -0
  296. package/dist/agent-tools/author-scene.d.ts.map +1 -0
  297. package/dist/agent-tools/author-scene.js +252 -0
  298. package/dist/agent-tools/batch.d.ts +25 -0
  299. package/dist/agent-tools/batch.d.ts.map +1 -0
  300. package/dist/agent-tools/batch.js +61 -0
  301. package/dist/agent-tools/checkpoints.d.ts +13 -0
  302. package/dist/agent-tools/checkpoints.d.ts.map +1 -0
  303. package/dist/agent-tools/checkpoints.js +16 -0
  304. package/dist/agent-tools/clear-scene.d.ts +10 -0
  305. package/dist/agent-tools/clear-scene.d.ts.map +1 -0
  306. package/dist/agent-tools/clear-scene.js +9 -0
  307. package/dist/agent-tools/collections.d.ts +35 -0
  308. package/dist/agent-tools/collections.d.ts.map +1 -0
  309. package/dist/agent-tools/collections.js +31 -0
  310. package/dist/agent-tools/columns.d.ts +44 -0
  311. package/dist/agent-tools/columns.d.ts.map +1 -0
  312. package/dist/agent-tools/columns.js +59 -0
  313. package/dist/agent-tools/contract.d.ts +68 -0
  314. package/dist/agent-tools/contract.d.ts.map +1 -0
  315. package/dist/agent-tools/contract.js +1 -0
  316. package/dist/agent-tools/corner-window.d.ts +46 -0
  317. package/dist/agent-tools/corner-window.d.ts.map +1 -0
  318. package/dist/agent-tools/corner-window.js +47 -0
  319. package/dist/agent-tools/create-room.d.ts +64 -0
  320. package/dist/agent-tools/create-room.d.ts.map +1 -0
  321. package/dist/agent-tools/create-room.js +97 -0
  322. package/dist/agent-tools/design-brief.d.ts +408 -0
  323. package/dist/agent-tools/design-brief.d.ts.map +1 -0
  324. package/dist/agent-tools/design-brief.js +149 -0
  325. package/dist/agent-tools/designs.d.ts +34 -0
  326. package/dist/agent-tools/designs.d.ts.map +1 -0
  327. package/dist/agent-tools/designs.js +50 -0
  328. package/dist/agent-tools/fences.d.ts +28 -0
  329. package/dist/agent-tools/fences.d.ts.map +1 -0
  330. package/dist/agent-tools/fences.js +31 -0
  331. package/dist/agent-tools/find-by-type.d.ts +18 -0
  332. package/dist/agent-tools/find-by-type.d.ts.map +1 -0
  333. package/dist/agent-tools/find-by-type.js +35 -0
  334. package/dist/agent-tools/furnish-room.d.ts +28 -0
  335. package/dist/agent-tools/furnish-room.d.ts.map +1 -0
  336. package/dist/agent-tools/furnish-room.js +37 -0
  337. package/dist/agent-tools/hosted-services.d.ts +438 -0
  338. package/dist/agent-tools/hosted-services.d.ts.map +1 -0
  339. package/dist/agent-tools/hosted-services.js +181 -0
  340. package/dist/agent-tools/index.d.ts +1543 -0
  341. package/dist/agent-tools/index.d.ts.map +1 -0
  342. package/dist/agent-tools/index.js +126 -0
  343. package/dist/agent-tools/levels.d.ts +80 -0
  344. package/dist/agent-tools/levels.d.ts.map +1 -0
  345. package/dist/agent-tools/levels.js +87 -0
  346. package/dist/agent-tools/measurement.d.ts +55 -0
  347. package/dist/agent-tools/measurement.d.ts.map +1 -0
  348. package/dist/agent-tools/measurement.js +144 -0
  349. package/dist/agent-tools/merge-windows.d.ts +10 -0
  350. package/dist/agent-tools/merge-windows.d.ts.map +1 -0
  351. package/dist/agent-tools/merge-windows.js +12 -0
  352. package/dist/agent-tools/node-id.d.ts +3 -0
  353. package/dist/agent-tools/node-id.d.ts.map +1 -0
  354. package/dist/agent-tools/node-id.js +2 -0
  355. package/dist/agent-tools/nodes.d.ts +17 -0
  356. package/dist/agent-tools/nodes.d.ts.map +1 -0
  357. package/dist/agent-tools/nodes.js +13 -0
  358. package/dist/agent-tools/notation-inventory.d.ts +16 -0
  359. package/dist/agent-tools/notation-inventory.d.ts.map +1 -0
  360. package/dist/agent-tools/notation-inventory.js +105 -0
  361. package/dist/agent-tools/paint.d.ts +46 -0
  362. package/dist/agent-tools/paint.d.ts.map +1 -0
  363. package/dist/agent-tools/paint.js +29 -0
  364. package/dist/agent-tools/photo-elevation.d.ts +32 -0
  365. package/dist/agent-tools/photo-elevation.d.ts.map +1 -0
  366. package/dist/agent-tools/photo-elevation.js +73 -0
  367. package/dist/agent-tools/place-in-room.d.ts +35 -0
  368. package/dist/agent-tools/place-in-room.d.ts.map +1 -0
  369. package/dist/agent-tools/place-in-room.js +61 -0
  370. package/dist/agent-tools/place-items.d.ts +19 -0
  371. package/dist/agent-tools/place-items.d.ts.map +1 -0
  372. package/dist/agent-tools/place-items.js +29 -0
  373. package/dist/agent-tools/project-files.d.ts +189 -0
  374. package/dist/agent-tools/project-files.d.ts.map +1 -0
  375. package/dist/agent-tools/project-files.js +99 -0
  376. package/dist/agent-tools/refusal.d.ts +20 -0
  377. package/dist/agent-tools/refusal.d.ts.map +1 -0
  378. package/dist/agent-tools/refusal.js +29 -0
  379. package/dist/agent-tools/retired.d.ts +21 -0
  380. package/dist/agent-tools/retired.d.ts.map +1 -0
  381. package/dist/agent-tools/retired.js +29 -0
  382. package/dist/agent-tools/roofs.d.ts +100 -0
  383. package/dist/agent-tools/roofs.d.ts.map +1 -0
  384. package/dist/agent-tools/roofs.js +96 -0
  385. package/dist/agent-tools/room-structure.d.ts +446 -0
  386. package/dist/agent-tools/room-structure.d.ts.map +1 -0
  387. package/dist/agent-tools/room-structure.js +210 -0
  388. package/dist/agent-tools/search-materials.d.ts +39 -0
  389. package/dist/agent-tools/search-materials.d.ts.map +1 -0
  390. package/dist/agent-tools/search-materials.js +31 -0
  391. package/dist/agent-tools/site.d.ts +27 -0
  392. package/dist/agent-tools/site.d.ts.map +1 -0
  393. package/dist/agent-tools/site.js +40 -0
  394. package/dist/agent-tools/sources.d.ts +12 -0
  395. package/dist/agent-tools/sources.d.ts.map +1 -0
  396. package/dist/agent-tools/sources.js +11 -0
  397. package/dist/agent-tools/stairs.d.ts +106 -0
  398. package/dist/agent-tools/stairs.d.ts.map +1 -0
  399. package/dist/agent-tools/stairs.js +146 -0
  400. package/dist/agent-tools/verify-scene.d.ts +13 -0
  401. package/dist/agent-tools/verify-scene.d.ts.map +1 -0
  402. package/dist/agent-tools/verify-scene.js +21 -0
  403. package/dist/agent-tools/view-scene.d.ts +81 -0
  404. package/dist/agent-tools/view-scene.d.ts.map +1 -0
  405. package/dist/agent-tools/view-scene.js +123 -0
  406. package/dist/agent-tools/wall-openings.d.ts +167 -0
  407. package/dist/agent-tools/wall-openings.d.ts.map +1 -0
  408. package/dist/agent-tools/wall-openings.js +148 -0
  409. package/dist/agent-tools/walls.d.ts +21 -0
  410. package/dist/agent-tools/walls.d.ts.map +1 -0
  411. package/dist/agent-tools/walls.js +35 -0
  412. package/dist/agent-tools/write-target.d.ts +12 -0
  413. package/dist/agent-tools/write-target.d.ts.map +1 -0
  414. package/dist/agent-tools/write-target.js +10 -0
  415. package/dist/building/__fixtures__/wall-opening-cases.d.ts +940 -0
  416. package/dist/building/__fixtures__/wall-opening-cases.d.ts.map +1 -0
  417. package/dist/building/__fixtures__/wall-opening-cases.js +367 -0
  418. package/dist/building/corner-window.d.ts +56 -0
  419. package/dist/building/corner-window.d.ts.map +1 -0
  420. package/dist/building/corner-window.js +179 -0
  421. package/dist/building/door-types.d.ts +22 -0
  422. package/dist/building/door-types.d.ts.map +1 -0
  423. package/dist/building/door-types.js +167 -0
  424. package/dist/building/floor-item-fit.d.ts +38 -0
  425. package/dist/building/floor-item-fit.d.ts.map +1 -0
  426. package/dist/building/floor-item-fit.js +47 -0
  427. package/dist/building/ground-level.d.ts +26 -0
  428. package/dist/building/ground-level.d.ts.map +1 -0
  429. package/dist/building/ground-level.js +58 -0
  430. package/dist/building/index.d.ts +12 -0
  431. package/dist/building/index.d.ts.map +1 -0
  432. package/dist/building/index.js +11 -0
  433. package/dist/building/level-duplication.d.ts +9842 -0
  434. package/dist/building/level-duplication.d.ts.map +1 -0
  435. package/dist/building/level-duplication.js +328 -0
  436. package/dist/building/level-insertion.d.ts +55 -0
  437. package/dist/building/level-insertion.d.ts.map +1 -0
  438. package/dist/building/level-insertion.js +35 -0
  439. package/dist/building/merge-windows.d.ts +58 -0
  440. package/dist/building/merge-windows.d.ts.map +1 -0
  441. package/dist/building/merge-windows.js +189 -0
  442. package/dist/building/opening-style-presets.d.ts +46 -0
  443. package/dist/building/opening-style-presets.d.ts.map +1 -0
  444. package/dist/building/opening-style-presets.js +195 -0
  445. package/dist/building/photo-elevation.d.ts +125 -0
  446. package/dist/building/photo-elevation.d.ts.map +1 -0
  447. package/dist/building/photo-elevation.js +404 -0
  448. package/dist/building/wall-gaps.d.ts +13 -0
  449. package/dist/building/wall-gaps.d.ts.map +1 -0
  450. package/dist/building/wall-gaps.js +158 -0
  451. package/dist/building/wall-openings.d.ts +480 -0
  452. package/dist/building/wall-openings.d.ts.map +1 -0
  453. package/dist/building/wall-openings.js +259 -0
  454. package/dist/building/window-types.d.ts +17 -0
  455. package/dist/building/window-types.d.ts.map +1 -0
  456. package/dist/building/window-types.js +31 -0
  457. package/dist/capture/schema.d.ts +22 -22
  458. package/dist/capture/source.d.ts.map +1 -1
  459. package/dist/capture/source.js +1 -1
  460. package/dist/commands/structure/apply-zone-transform.d.ts +23 -0
  461. package/dist/commands/structure/apply-zone-transform.d.ts.map +1 -0
  462. package/dist/commands/structure/apply-zone-transform.js +55 -0
  463. package/dist/commands/structure/create-mezzanine.d.ts +12 -0
  464. package/dist/commands/structure/create-mezzanine.d.ts.map +1 -0
  465. package/dist/commands/structure/create-mezzanine.js +46 -0
  466. package/dist/commands/structure/create-zone.d.ts +43 -0
  467. package/dist/commands/structure/create-zone.d.ts.map +1 -0
  468. package/dist/commands/structure/create-zone.js +175 -0
  469. package/dist/commands/structure/delete-zone.d.ts +51 -0
  470. package/dist/commands/structure/delete-zone.d.ts.map +1 -0
  471. package/dist/commands/structure/delete-zone.js +354 -0
  472. package/dist/commands/structure/divide-zone.d.ts +38 -0
  473. package/dist/commands/structure/divide-zone.d.ts.map +1 -0
  474. package/dist/commands/structure/divide-zone.js +186 -0
  475. package/dist/commands/structure/duplicate-zone.d.ts +7 -0
  476. package/dist/commands/structure/duplicate-zone.d.ts.map +1 -0
  477. package/dist/commands/structure/duplicate-zone.js +21 -0
  478. package/dist/commands/structure/floor-opening.d.ts +36 -0
  479. package/dist/commands/structure/floor-opening.d.ts.map +1 -0
  480. package/dist/commands/structure/floor-opening.js +124 -0
  481. package/dist/commands/structure/index.d.ts +22 -0
  482. package/dist/commands/structure/index.d.ts.map +1 -0
  483. package/dist/commands/structure/index.js +20 -0
  484. package/dist/commands/structure/lock-outside-faces.d.ts +12 -0
  485. package/dist/commands/structure/lock-outside-faces.d.ts.map +1 -0
  486. package/dist/commands/structure/lock-outside-faces.js +32 -0
  487. package/dist/commands/structure/merge-zones.d.ts +5 -0
  488. package/dist/commands/structure/merge-zones.d.ts.map +1 -0
  489. package/dist/commands/structure/merge-zones.js +22 -0
  490. package/dist/commands/structure/mezzanine-content.d.ts +16 -0
  491. package/dist/commands/structure/mezzanine-content.d.ts.map +1 -0
  492. package/dist/commands/structure/mezzanine-content.js +109 -0
  493. package/dist/commands/structure/plan-mezzanine-stair.d.ts +7 -0
  494. package/dist/commands/structure/plan-mezzanine-stair.d.ts.map +1 -0
  495. package/dist/commands/structure/plan-mezzanine-stair.js +127 -0
  496. package/dist/commands/structure/plan-wall-deletion.d.ts +9 -0
  497. package/dist/commands/structure/plan-wall-deletion.d.ts.map +1 -0
  498. package/dist/commands/structure/plan-wall-deletion.js +151 -0
  499. package/dist/commands/structure/rebase-floor-reference.d.ts +7 -0
  500. package/dist/commands/structure/rebase-floor-reference.d.ts.map +1 -0
  501. package/dist/commands/structure/rebase-floor-reference.js +90 -0
  502. package/dist/commands/structure/resize-mezzanine.d.ts +8 -0
  503. package/dist/commands/structure/resize-mezzanine.d.ts.map +1 -0
  504. package/dist/commands/structure/resize-mezzanine.js +43 -0
  505. package/dist/commands/structure/rotate-zone.d.ts +8 -0
  506. package/dist/commands/structure/rotate-zone.d.ts.map +1 -0
  507. package/dist/commands/structure/rotate-zone.js +28 -0
  508. package/dist/commands/structure/set-floor-foundation.d.ts +62 -0
  509. package/dist/commands/structure/set-floor-foundation.d.ts.map +1 -0
  510. package/dist/commands/structure/set-floor-foundation.js +162 -0
  511. package/dist/commands/structure/set-room-floor-construction.d.ts +8 -0
  512. package/dist/commands/structure/set-room-floor-construction.d.ts.map +1 -0
  513. package/dist/commands/structure/set-room-floor-construction.js +72 -0
  514. package/dist/commands/structure/set-wall-geometry.d.ts +10 -0
  515. package/dist/commands/structure/set-wall-geometry.d.ts.map +1 -0
  516. package/dist/commands/structure/set-wall-geometry.js +52 -0
  517. package/dist/commands/structure/set-zone-edges.d.ts +14 -0
  518. package/dist/commands/structure/set-zone-edges.d.ts.map +1 -0
  519. package/dist/commands/structure/set-zone-edges.js +143 -0
  520. package/dist/commands/structure/set-zone-intent.d.ts +43 -0
  521. package/dist/commands/structure/set-zone-intent.d.ts.map +1 -0
  522. package/dist/commands/structure/set-zone-intent.js +144 -0
  523. package/dist/commands/structure/shared.d.ts +4941 -0
  524. package/dist/commands/structure/shared.d.ts.map +1 -0
  525. package/dist/commands/structure/shared.js +102 -0
  526. package/dist/commands/structure/transform-zone.d.ts +23 -0
  527. package/dist/commands/structure/transform-zone.d.ts.map +1 -0
  528. package/dist/commands/structure/transform-zone.js +472 -0
  529. package/dist/commands/structure/validate-mezzanine.d.ts +5 -0
  530. package/dist/commands/structure/validate-mezzanine.d.ts.map +1 -0
  531. package/dist/commands/structure/validate-mezzanine.js +46 -0
  532. package/dist/commands/structure/zone-crossings.d.ts +8 -0
  533. package/dist/commands/structure/zone-crossings.d.ts.map +1 -0
  534. package/dist/commands/structure/zone-crossings.js +162 -0
  535. package/dist/commands/structure/zone-drop.d.ts +4 -0
  536. package/dist/commands/structure/zone-drop.d.ts.map +1 -0
  537. package/dist/commands/structure/zone-drop.js +68 -0
  538. package/dist/commands/structure/zone-insertion.d.ts +4 -0
  539. package/dist/commands/structure/zone-insertion.d.ts.map +1 -0
  540. package/dist/commands/structure/zone-insertion.js +200 -0
  541. package/dist/commands/structure/zone-transform-content.d.ts +6 -0
  542. package/dist/commands/structure/zone-transform-content.d.ts.map +1 -0
  543. package/dist/commands/structure/zone-transform-content.js +117 -0
  544. package/dist/commands/structure/zone-wall-merge.d.ts +5792 -0
  545. package/dist/commands/structure/zone-wall-merge.d.ts.map +1 -0
  546. package/dist/commands/structure/zone-wall-merge.js +135 -0
  547. package/dist/contracts/reference-discovery.d.ts +18 -0
  548. package/dist/contracts/reference-discovery.d.ts.map +1 -0
  549. package/dist/contracts/reference-discovery.js +100 -0
  550. package/dist/contracts/reference-inventory.d.ts +44 -0
  551. package/dist/contracts/reference-inventory.d.ts.map +1 -0
  552. package/dist/contracts/reference-inventory.js +952 -0
  553. package/dist/events/bus.d.ts +90 -10
  554. package/dist/events/bus.d.ts.map +1 -1
  555. package/dist/events/capture-sessions.d.ts +5 -0
  556. package/dist/events/capture-sessions.d.ts.map +1 -0
  557. package/dist/events/capture-sessions.js +31 -0
  558. package/dist/hooks/scene-registry/item-clip-registry.d.ts +6 -3
  559. package/dist/hooks/scene-registry/item-clip-registry.d.ts.map +1 -1
  560. package/dist/hooks/scene-registry/item-clip-registry.js +2 -1
  561. package/dist/hooks/scene-registry/scene-registry.d.ts.map +1 -1
  562. package/dist/hooks/spatial-grid/floor-placed-elevation.d.ts.map +1 -1
  563. package/dist/hooks/spatial-grid/floor-placed-elevation.js +15 -1
  564. package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts +4 -4
  565. package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts.map +1 -1
  566. package/dist/hooks/spatial-grid/spatial-grid-manager.js +56 -71
  567. package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts +3948 -2034
  568. package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts.map +1 -1
  569. package/dist/hooks/spatial-grid/spatial-grid-sync.js +86 -83
  570. package/dist/hooks/spatial-grid/spatial-grid.d.ts.map +1 -1
  571. package/dist/hooks/spatial-grid/support-host-patch.d.ts +1 -0
  572. package/dist/hooks/spatial-grid/support-host-patch.d.ts.map +1 -1
  573. package/dist/hooks/spatial-grid/support-host-patch.js +21 -5
  574. package/dist/hooks/spatial-grid/use-spatial-query.d.ts +3 -3
  575. package/dist/hooks/spatial-grid/wall-spatial-grid.d.ts.map +1 -1
  576. package/dist/index.d.ts +109 -14
  577. package/dist/index.d.ts.map +1 -1
  578. package/dist/index.js +103 -12
  579. package/dist/lib/__bench__/near-linear-walls.d.ts +2 -0
  580. package/dist/lib/__bench__/near-linear-walls.d.ts.map +1 -0
  581. package/dist/lib/__bench__/near-linear-walls.js +24 -0
  582. package/dist/lib/__bench__/structure-preview.bench.d.ts +2 -0
  583. package/dist/lib/__bench__/structure-preview.bench.d.ts.map +1 -0
  584. package/dist/lib/__bench__/structure-preview.bench.js +72 -0
  585. package/dist/lib/__fixtures__/mezzanine.d.ts +15636 -0
  586. package/dist/lib/__fixtures__/mezzanine.d.ts.map +1 -0
  587. package/dist/lib/__fixtures__/mezzanine.js +43 -0
  588. package/dist/lib/absorb-wall-separators.d.ts +4912 -0
  589. package/dist/lib/absorb-wall-separators.d.ts.map +1 -0
  590. package/dist/lib/absorb-wall-separators.js +65 -0
  591. package/dist/lib/angle-accumulator.d.ts +3 -0
  592. package/dist/lib/angle-accumulator.d.ts.map +1 -0
  593. package/dist/lib/angle-accumulator.js +13 -0
  594. package/dist/lib/artifact-store.d.ts +31 -0
  595. package/dist/lib/artifact-store.d.ts.map +1 -0
  596. package/dist/lib/artifact-store.js +42 -0
  597. package/dist/lib/assembly-stack.d.ts +54 -0
  598. package/dist/lib/assembly-stack.d.ts.map +1 -0
  599. package/dist/lib/assembly-stack.js +52 -0
  600. package/dist/lib/asset-storage.d.ts.map +1 -1
  601. package/dist/lib/asset-storage.js +3 -0
  602. package/dist/lib/below-grade-footprints.d.ts +65 -0
  603. package/dist/lib/below-grade-footprints.d.ts.map +1 -0
  604. package/dist/lib/below-grade-footprints.js +181 -0
  605. package/dist/lib/building-footprint.d.ts +33 -0
  606. package/dist/lib/building-footprint.d.ts.map +1 -0
  607. package/dist/lib/building-footprint.js +89 -0
  608. package/dist/lib/canonical-opening-ring.d.ts +3 -0
  609. package/dist/lib/canonical-opening-ring.d.ts.map +1 -0
  610. package/dist/lib/canonical-opening-ring.js +14 -0
  611. package/dist/lib/ceiling-children.d.ts +8 -0
  612. package/dist/lib/ceiling-children.d.ts.map +1 -0
  613. package/dist/lib/ceiling-children.js +36 -0
  614. package/dist/lib/ceiling-surface.d.ts +40 -0
  615. package/dist/lib/ceiling-surface.d.ts.map +1 -0
  616. package/dist/lib/ceiling-surface.js +65 -0
  617. package/dist/lib/corner-pair.d.ts +1129 -0
  618. package/dist/lib/corner-pair.d.ts.map +1 -0
  619. package/dist/lib/corner-pair.js +130 -0
  620. package/dist/lib/corner-snap.d.ts +54 -0
  621. package/dist/lib/corner-snap.d.ts.map +1 -0
  622. package/dist/lib/corner-snap.js +125 -0
  623. package/dist/lib/critically-damped.d.ts +11 -0
  624. package/dist/lib/critically-damped.d.ts.map +1 -0
  625. package/dist/lib/critically-damped.js +14 -0
  626. package/dist/lib/cutter-host.d.ts +5 -0
  627. package/dist/lib/cutter-host.d.ts.map +1 -0
  628. package/dist/lib/cutter-host.js +30 -0
  629. package/dist/lib/deepest-drawn.d.ts +18 -0
  630. package/dist/lib/deepest-drawn.d.ts.map +1 -0
  631. package/dist/lib/deepest-drawn.js +65 -0
  632. package/dist/lib/door-operation.d.ts +1 -1
  633. package/dist/lib/exterior-wall-loops.d.ts +17 -0
  634. package/dist/lib/exterior-wall-loops.d.ts.map +1 -0
  635. package/dist/lib/exterior-wall-loops.js +334 -0
  636. package/dist/lib/finish-script.d.ts +61 -0
  637. package/dist/lib/finish-script.d.ts.map +1 -0
  638. package/dist/lib/finish-script.js +86 -0
  639. package/dist/lib/floor-construction-lift.d.ts +4 -0
  640. package/dist/lib/floor-construction-lift.d.ts.map +1 -0
  641. package/dist/lib/floor-construction-lift.js +54 -0
  642. package/dist/lib/floor-footprint-key.d.ts +3 -0
  643. package/dist/lib/floor-footprint-key.d.ts.map +1 -0
  644. package/dist/lib/floor-footprint-key.js +9 -0
  645. package/dist/lib/floor-footprint-name.d.ts +11 -0
  646. package/dist/lib/floor-footprint-name.d.ts.map +1 -0
  647. package/dist/lib/floor-footprint-name.js +52 -0
  648. package/dist/lib/floor-foundation-datum.d.ts +31 -0
  649. package/dist/lib/floor-foundation-datum.d.ts.map +1 -0
  650. package/dist/lib/floor-foundation-datum.js +226 -0
  651. package/dist/lib/floor-foundation-stack.d.ts +16 -0
  652. package/dist/lib/floor-foundation-stack.d.ts.map +1 -0
  653. package/dist/lib/floor-foundation-stack.js +214 -0
  654. package/dist/lib/floor-intent-changes.d.ts +10 -0
  655. package/dist/lib/floor-intent-changes.d.ts.map +1 -0
  656. package/dist/lib/floor-intent-changes.js +461 -0
  657. package/dist/lib/floor-opening-footprints.d.ts +24 -0
  658. package/dist/lib/floor-opening-footprints.d.ts.map +1 -0
  659. package/dist/lib/floor-opening-footprints.js +127 -0
  660. package/dist/lib/floor-opening-intent.d.ts +16 -0
  661. package/dist/lib/floor-opening-intent.d.ts.map +1 -0
  662. package/dist/lib/floor-opening-intent.js +82 -0
  663. package/dist/lib/floor-plate-id.d.ts +5 -0
  664. package/dist/lib/floor-plate-id.d.ts.map +1 -0
  665. package/dist/lib/floor-plate-id.js +20 -0
  666. package/dist/lib/floor-plate-paint.d.ts +10 -0
  667. package/dist/lib/floor-plate-paint.d.ts.map +1 -0
  668. package/dist/lib/floor-plate-paint.js +31 -0
  669. package/dist/lib/floor-plates.d.ts +211 -0
  670. package/dist/lib/floor-plates.d.ts.map +1 -0
  671. package/dist/lib/floor-plates.js +729 -0
  672. package/dist/lib/floor-room-faces.d.ts +5 -0
  673. package/dist/lib/floor-room-faces.d.ts.map +1 -0
  674. package/dist/lib/floor-room-faces.js +29 -0
  675. package/dist/lib/floor-script.d.ts +24 -0
  676. package/dist/lib/floor-script.d.ts.map +1 -0
  677. package/dist/lib/floor-script.js +51 -0
  678. package/dist/lib/floor-step-finish.d.ts +49 -0
  679. package/dist/lib/floor-step-finish.d.ts.map +1 -0
  680. package/dist/lib/floor-step-finish.js +128 -0
  681. package/dist/lib/foundation-construction.d.ts +73 -0
  682. package/dist/lib/foundation-construction.d.ts.map +1 -0
  683. package/dist/lib/foundation-construction.js +242 -0
  684. package/dist/lib/foundation-standard.d.ts +30 -0
  685. package/dist/lib/foundation-standard.d.ts.map +1 -0
  686. package/dist/lib/foundation-standard.js +30 -0
  687. package/dist/lib/foundation-wall.d.ts +36 -0
  688. package/dist/lib/foundation-wall.d.ts.map +1 -0
  689. package/dist/lib/foundation-wall.js +66 -0
  690. package/dist/lib/generic-foundation.d.ts +40 -0
  691. package/dist/lib/generic-foundation.d.ts.map +1 -0
  692. package/dist/lib/generic-foundation.js +200 -0
  693. package/dist/lib/geometry-script-node.d.ts +111 -0
  694. package/dist/lib/geometry-script-node.d.ts.map +1 -0
  695. package/dist/lib/geometry-script-node.js +173 -0
  696. package/dist/lib/geometry-surfaces.d.ts +61 -0
  697. package/dist/lib/geometry-surfaces.d.ts.map +1 -0
  698. package/dist/lib/geometry-surfaces.js +156 -0
  699. package/dist/lib/grade-standing.d.ts +38 -0
  700. package/dist/lib/grade-standing.d.ts.map +1 -0
  701. package/dist/lib/grade-standing.js +137 -0
  702. package/dist/lib/ground-level.d.ts +20 -0
  703. package/dist/lib/ground-level.d.ts.map +1 -0
  704. package/dist/lib/ground-level.js +49 -0
  705. package/dist/lib/ground-over-part.d.ts +13 -0
  706. package/dist/lib/ground-over-part.d.ts.map +1 -0
  707. package/dist/lib/ground-over-part.js +94 -0
  708. package/dist/lib/ground-seat.d.ts +47 -0
  709. package/dist/lib/ground-seat.d.ts.map +1 -0
  710. package/dist/lib/ground-seat.js +61 -0
  711. package/dist/lib/ground-window.d.ts +39 -0
  712. package/dist/lib/ground-window.d.ts.map +1 -0
  713. package/dist/lib/ground-window.js +147 -0
  714. package/dist/lib/item-slab-support.d.ts +14 -0
  715. package/dist/lib/item-slab-support.d.ts.map +1 -0
  716. package/dist/lib/item-slab-support.js +40 -0
  717. package/dist/lib/level-footprints.d.ts +23 -0
  718. package/dist/lib/level-footprints.d.ts.map +1 -0
  719. package/dist/lib/level-footprints.js +398 -0
  720. package/dist/lib/level-name.d.ts +7 -0
  721. package/dist/lib/level-name.d.ts.map +1 -1
  722. package/dist/lib/level-name.js +11 -3
  723. package/dist/lib/new-zone.d.ts +10 -0
  724. package/dist/lib/new-zone.d.ts.map +1 -0
  725. package/dist/lib/new-zone.js +10 -0
  726. package/dist/lib/node-ancestry.d.ts +30 -0
  727. package/dist/lib/node-ancestry.d.ts.map +1 -0
  728. package/dist/lib/node-ancestry.js +76 -0
  729. package/dist/lib/object-cuts.d.ts +11 -0
  730. package/dist/lib/object-cuts.d.ts.map +1 -0
  731. package/dist/lib/object-cuts.js +63 -0
  732. package/dist/lib/opening-floor-datum.d.ts +24 -0
  733. package/dist/lib/opening-floor-datum.d.ts.map +1 -0
  734. package/dist/lib/opening-floor-datum.js +144 -0
  735. package/dist/lib/own-floor-intent.d.ts +15 -0
  736. package/dist/lib/own-floor-intent.d.ts.map +1 -0
  737. package/dist/lib/own-floor-intent.js +201 -0
  738. package/dist/lib/plate-reference.d.ts +3 -0
  739. package/dist/lib/plate-reference.d.ts.map +1 -0
  740. package/dist/lib/plate-reference.js +91 -0
  741. package/dist/lib/plate-surface.d.ts +120 -0
  742. package/dist/lib/plate-surface.d.ts.map +1 -0
  743. package/dist/lib/plate-surface.js +727 -0
  744. package/dist/lib/point-ask.d.ts +9 -0
  745. package/dist/lib/point-ask.d.ts.map +1 -0
  746. package/dist/lib/point-ask.js +36 -0
  747. package/dist/lib/polygon-boolean.d.ts +17 -0
  748. package/dist/lib/polygon-boolean.d.ts.map +1 -0
  749. package/dist/lib/polygon-boolean.js +195 -0
  750. package/dist/lib/polygon-label.d.ts +7 -0
  751. package/dist/lib/polygon-label.d.ts.map +1 -0
  752. package/dist/lib/polygon-label.js +94 -0
  753. package/dist/lib/room-drawn-floor.d.ts +29 -0
  754. package/dist/lib/room-drawn-floor.d.ts.map +1 -0
  755. package/dist/lib/room-drawn-floor.js +88 -0
  756. package/dist/lib/room-floor-choices.d.ts +11 -0
  757. package/dist/lib/room-floor-choices.d.ts.map +1 -0
  758. package/dist/lib/room-floor-choices.js +60 -0
  759. package/dist/lib/room-floor-feasibility.d.ts +25 -0
  760. package/dist/lib/room-floor-feasibility.d.ts.map +1 -0
  761. package/dist/lib/room-floor-feasibility.js +293 -0
  762. package/dist/lib/room-floor-plate.d.ts +3 -0
  763. package/dist/lib/room-floor-plate.d.ts.map +1 -0
  764. package/dist/lib/room-floor-plate.js +4 -0
  765. package/dist/lib/room-graph.d.ts +79 -0
  766. package/dist/lib/room-graph.d.ts.map +1 -0
  767. package/dist/lib/room-graph.js +1267 -0
  768. package/dist/lib/room-name.d.ts +12 -0
  769. package/dist/lib/room-name.d.ts.map +1 -0
  770. package/dist/lib/room-name.js +24 -0
  771. package/dist/lib/room-topology-index.d.ts +53 -5
  772. package/dist/lib/room-topology-index.d.ts.map +1 -1
  773. package/dist/lib/room-topology-index.js +176 -30
  774. package/dist/lib/room-vertical-placement.d.ts +12 -0
  775. package/dist/lib/room-vertical-placement.d.ts.map +1 -0
  776. package/dist/lib/room-vertical-placement.js +28 -0
  777. package/dist/lib/room-zone-adoption.d.ts +74 -0
  778. package/dist/lib/room-zone-adoption.d.ts.map +1 -0
  779. package/dist/lib/room-zone-adoption.js +150 -0
  780. package/dist/lib/script-inputs-key.d.ts +3 -0
  781. package/dist/lib/script-inputs-key.d.ts.map +1 -0
  782. package/dist/lib/script-inputs-key.js +13 -0
  783. package/dist/lib/setback-envelope.d.ts +163 -0
  784. package/dist/lib/setback-envelope.d.ts.map +1 -0
  785. package/dist/lib/setback-envelope.js +822 -0
  786. package/dist/lib/site-flatwork.d.ts +11 -0
  787. package/dist/lib/site-flatwork.d.ts.map +1 -0
  788. package/dist/lib/site-flatwork.js +11 -0
  789. package/dist/lib/site-ground-height.d.ts +13 -0
  790. package/dist/lib/site-ground-height.d.ts.map +1 -0
  791. package/dist/lib/site-ground-height.js +16 -0
  792. package/dist/lib/site-placement.d.ts +362 -0
  793. package/dist/lib/site-placement.d.ts.map +1 -0
  794. package/dist/lib/site-placement.js +942 -0
  795. package/dist/lib/slab-polygon.d.ts.map +1 -1
  796. package/dist/lib/slab-polygon.js +33 -12
  797. package/dist/lib/slots.d.ts +20 -0
  798. package/dist/lib/slots.d.ts.map +1 -1
  799. package/dist/lib/slots.js +44 -0
  800. package/dist/lib/snap-ease.d.ts +20 -0
  801. package/dist/lib/snap-ease.d.ts.map +1 -0
  802. package/dist/lib/snap-ease.js +50 -0
  803. package/dist/lib/space-detection.d.ts +14 -94
  804. package/dist/lib/space-detection.d.ts.map +1 -1
  805. package/dist/lib/space-detection.js +244 -1616
  806. package/dist/lib/structure-commit.d.ts +38 -0
  807. package/dist/lib/structure-commit.d.ts.map +1 -0
  808. package/dist/lib/structure-commit.js +52 -0
  809. package/dist/lib/structure-kernel.d.ts +66 -0
  810. package/dist/lib/structure-kernel.d.ts.map +1 -0
  811. package/dist/lib/structure-kernel.js +737 -0
  812. package/dist/lib/structure-reconcile.d.ts +15 -0
  813. package/dist/lib/structure-reconcile.d.ts.map +1 -0
  814. package/dist/lib/structure-reconcile.js +218 -0
  815. package/dist/lib/surface-support-references.d.ts +4 -0
  816. package/dist/lib/surface-support-references.d.ts.map +1 -0
  817. package/dist/lib/surface-support-references.js +19 -0
  818. package/dist/lib/terrain-contours.d.ts +29 -0
  819. package/dist/lib/terrain-contours.d.ts.map +1 -0
  820. package/dist/lib/terrain-contours.js +199 -0
  821. package/dist/lib/terrain-source-persisted.d.ts +42 -0
  822. package/dist/lib/terrain-source-persisted.d.ts.map +1 -0
  823. package/dist/lib/terrain-source-persisted.js +68 -0
  824. package/dist/lib/terrain-source.d.ts +2 -40
  825. package/dist/lib/terrain-source.d.ts.map +1 -1
  826. package/dist/lib/terrain-source.js +2 -68
  827. package/dist/lib/terrain-support-query.d.ts +93 -0
  828. package/dist/lib/terrain-support-query.d.ts.map +1 -0
  829. package/dist/lib/terrain-support-query.js +187 -0
  830. package/dist/lib/terrain-support.d.ts +1 -77
  831. package/dist/lib/terrain-support.d.ts.map +1 -1
  832. package/dist/lib/terrain-support.js +3 -181
  833. package/dist/lib/unit-containment.js +2 -2
  834. package/dist/lib/unit-report.d.ts.map +1 -1
  835. package/dist/lib/unit-report.js +5 -4
  836. package/dist/lib/wall-face-script.d.ts +66 -0
  837. package/dist/lib/wall-face-script.d.ts.map +1 -0
  838. package/dist/lib/wall-face-script.js +235 -0
  839. package/dist/lib/zone-colors.d.ts +11 -0
  840. package/dist/lib/zone-colors.d.ts.map +1 -0
  841. package/dist/lib/zone-colors.js +32 -0
  842. package/dist/lib/zone-quantities.d.ts.map +1 -1
  843. package/dist/lib/zone-quantities.js +117 -228
  844. package/dist/material-kinds.d.ts +9 -0
  845. package/dist/material-kinds.d.ts.map +1 -0
  846. package/dist/material-kinds.js +30 -0
  847. package/dist/material-library.d.ts +13 -5
  848. package/dist/material-library.d.ts.map +1 -1
  849. package/dist/material-library.js +622 -27
  850. package/dist/node-slots/block.d.ts +7 -0
  851. package/dist/node-slots/block.d.ts.map +1 -0
  852. package/dist/node-slots/block.js +27 -0
  853. package/dist/node-slots/cabinet.d.ts +4 -0
  854. package/dist/node-slots/cabinet.d.ts.map +1 -0
  855. package/dist/node-slots/cabinet.js +24 -0
  856. package/dist/node-slots/ceiling.d.ts +6 -0
  857. package/dist/node-slots/ceiling.d.ts.map +1 -0
  858. package/dist/node-slots/ceiling.js +7 -0
  859. package/dist/node-slots/column.d.ts +9 -0
  860. package/dist/node-slots/column.d.ts.map +1 -0
  861. package/dist/node-slots/column.js +24 -0
  862. package/dist/node-slots/door.d.ts +9 -0
  863. package/dist/node-slots/door.d.ts.map +1 -0
  864. package/dist/node-slots/door.js +20 -0
  865. package/dist/node-slots/duct.d.ts +5 -0
  866. package/dist/node-slots/duct.d.ts.map +1 -0
  867. package/dist/node-slots/duct.js +5 -0
  868. package/dist/node-slots/elevator.d.ts +9 -0
  869. package/dist/node-slots/elevator.d.ts.map +1 -0
  870. package/dist/node-slots/elevator.js +17 -0
  871. package/dist/node-slots/fence.d.ts +10 -0
  872. package/dist/node-slots/fence.d.ts.map +1 -0
  873. package/dist/node-slots/fence.js +23 -0
  874. package/dist/node-slots/index.d.ts +26 -0
  875. package/dist/node-slots/index.d.ts.map +1 -0
  876. package/dist/node-slots/index.js +98 -0
  877. package/dist/node-slots/lean-to-extension.d.ts +5 -0
  878. package/dist/node-slots/lean-to-extension.d.ts.map +1 -0
  879. package/dist/node-slots/lean-to-extension.js +15 -0
  880. package/dist/node-slots/procedural-item.d.ts +4 -0
  881. package/dist/node-slots/procedural-item.d.ts.map +1 -0
  882. package/dist/node-slots/procedural-item.js +3 -0
  883. package/dist/node-slots/roof-accessories.d.ts +9 -0
  884. package/dist/node-slots/roof-accessories.d.ts.map +1 -0
  885. package/dist/node-slots/roof-accessories.js +34 -0
  886. package/dist/node-slots/roof.d.ts +5 -0
  887. package/dist/node-slots/roof.d.ts.map +1 -0
  888. package/dist/node-slots/roof.js +12 -0
  889. package/dist/node-slots/shelf.d.ts +9 -0
  890. package/dist/node-slots/shelf.d.ts.map +1 -0
  891. package/dist/node-slots/shelf.js +30 -0
  892. package/dist/node-slots/slab.d.ts +7 -0
  893. package/dist/node-slots/slab.d.ts.map +1 -0
  894. package/dist/node-slots/slab.js +21 -0
  895. package/dist/node-slots/stair.d.ts +10 -0
  896. package/dist/node-slots/stair.d.ts.map +1 -0
  897. package/dist/node-slots/stair.js +21 -0
  898. package/dist/node-slots/wall.d.ts +12 -0
  899. package/dist/node-slots/wall.d.ts.map +1 -0
  900. package/dist/node-slots/wall.js +55 -0
  901. package/dist/node-slots/window.d.ts +5 -0
  902. package/dist/node-slots/window.d.ts.map +1 -0
  903. package/dist/node-slots/window.js +11 -0
  904. package/dist/procedural-items/design-placement.d.ts +49 -0
  905. package/dist/procedural-items/design-placement.d.ts.map +1 -0
  906. package/dist/procedural-items/design-placement.js +129 -0
  907. package/dist/procedural-items/design.d.ts +261 -0
  908. package/dist/procedural-items/design.d.ts.map +1 -0
  909. package/dist/procedural-items/design.js +707 -0
  910. package/dist/procedural-items/fixtures.d.ts +515 -75
  911. package/dist/procedural-items/fixtures.d.ts.map +1 -1
  912. package/dist/procedural-items/index.d.ts +5 -0
  913. package/dist/procedural-items/index.d.ts.map +1 -1
  914. package/dist/procedural-items/index.js +5 -0
  915. package/dist/procedural-items/integration.d.ts +156 -35
  916. package/dist/procedural-items/integration.d.ts.map +1 -1
  917. package/dist/procedural-items/joints.d.ts +56 -0
  918. package/dist/procedural-items/joints.d.ts.map +1 -0
  919. package/dist/procedural-items/joints.js +251 -0
  920. package/dist/procedural-items/library-colors.d.ts +34 -22
  921. package/dist/procedural-items/library-colors.d.ts.map +1 -1
  922. package/dist/procedural-items/library-colors.js +37 -3
  923. package/dist/procedural-items/motion-controller.d.ts +29 -0
  924. package/dist/procedural-items/motion-controller.d.ts.map +1 -0
  925. package/dist/procedural-items/motion-controller.js +130 -0
  926. package/dist/procedural-items/node.d.ts +528 -62
  927. package/dist/procedural-items/node.d.ts.map +1 -1
  928. package/dist/procedural-items/query.d.ts +19 -2
  929. package/dist/procedural-items/query.d.ts.map +1 -1
  930. package/dist/procedural-items/query.js +78 -39
  931. package/dist/procedural-items/recipe.d.ts +260 -16
  932. package/dist/procedural-items/recipe.d.ts.map +1 -1
  933. package/dist/procedural-items/recipe.js +933 -61
  934. package/dist/procedural-items/section.d.ts +27 -0
  935. package/dist/procedural-items/section.d.ts.map +1 -0
  936. package/dist/procedural-items/section.js +237 -0
  937. package/dist/procedural-items/spatial.d.ts +21 -0
  938. package/dist/procedural-items/spatial.d.ts.map +1 -1
  939. package/dist/procedural-items/spatial.js +90 -0
  940. package/dist/registry/handles.d.ts +2 -0
  941. package/dist/registry/handles.d.ts.map +1 -1
  942. package/dist/registry/index.d.ts +6 -4
  943. package/dist/registry/index.d.ts.map +1 -1
  944. package/dist/registry/index.js +4 -2
  945. package/dist/registry/mechanism.d.ts +9 -0
  946. package/dist/registry/mechanism.d.ts.map +1 -0
  947. package/dist/registry/mechanism.js +21 -0
  948. package/dist/registry/registry.d.ts +6 -3
  949. package/dist/registry/registry.d.ts.map +1 -1
  950. package/dist/registry/registry.js +59 -22
  951. package/dist/registry/scene-api.d.ts +21 -0
  952. package/dist/registry/scene-api.d.ts.map +1 -1
  953. package/dist/registry/scene-api.js +29 -13
  954. package/dist/registry/subtree.d.ts +8 -0
  955. package/dist/registry/subtree.d.ts.map +1 -1
  956. package/dist/registry/subtree.js +55 -0
  957. package/dist/registry/types.d.ts +460 -12
  958. package/dist/registry/types.d.ts.map +1 -1
  959. package/dist/schema/__fixtures__/node-fixtures.d.ts.map +1 -1
  960. package/dist/schema/__fixtures__/node-fixtures.js +2 -0
  961. package/dist/schema/assembly.d.ts +153 -0
  962. package/dist/schema/assembly.d.ts.map +1 -0
  963. package/dist/schema/assembly.js +155 -0
  964. package/dist/schema/asset-url.d.ts +2 -1
  965. package/dist/schema/asset-url.d.ts.map +1 -1
  966. package/dist/schema/asset-url.js +5 -2
  967. package/dist/schema/base.d.ts +28 -2
  968. package/dist/schema/base.d.ts.map +1 -1
  969. package/dist/schema/base.js +2 -0
  970. package/dist/schema/camera.d.ts +1 -1
  971. package/dist/schema/collection-templates.d.ts +46 -0
  972. package/dist/schema/collection-templates.d.ts.map +1 -0
  973. package/dist/schema/collection-templates.js +14 -0
  974. package/dist/schema/collections.d.ts +7 -0
  975. package/dist/schema/collections.d.ts.map +1 -1
  976. package/dist/schema/cut.d.ts +29 -0
  977. package/dist/schema/cut.d.ts.map +1 -0
  978. package/dist/schema/cut.js +50 -0
  979. package/dist/schema/geometry-metadata.d.ts +51 -0
  980. package/dist/schema/geometry-metadata.d.ts.map +1 -0
  981. package/dist/schema/geometry-metadata.js +57 -0
  982. package/dist/schema/geometry-source.d.ts +260 -0
  983. package/dist/schema/geometry-source.d.ts.map +1 -0
  984. package/dist/schema/geometry-source.js +144 -0
  985. package/dist/schema/index.d.ts +27 -12
  986. package/dist/schema/index.d.ts.map +1 -1
  987. package/dist/schema/index.js +29 -10
  988. package/dist/schema/material.d.ts +33 -33
  989. package/dist/schema/nodes/barrel-roof.d.ts +3 -0
  990. package/dist/schema/nodes/barrel-roof.d.ts.map +1 -0
  991. package/dist/schema/nodes/barrel-roof.js +11 -0
  992. package/dist/schema/nodes/block.d.ts +27 -1
  993. package/dist/schema/nodes/block.d.ts.map +1 -1
  994. package/dist/schema/nodes/block.js +1 -1
  995. package/dist/schema/nodes/box-vent.d.ts +32 -6
  996. package/dist/schema/nodes/box-vent.d.ts.map +1 -1
  997. package/dist/schema/nodes/building.d.ts +28 -1
  998. package/dist/schema/nodes/building.d.ts.map +1 -1
  999. package/dist/schema/nodes/building.js +2 -0
  1000. package/dist/schema/nodes/cabinet.d.ts +167 -114
  1001. package/dist/schema/nodes/cabinet.d.ts.map +1 -1
  1002. package/dist/schema/nodes/cabinet.js +1 -1
  1003. package/dist/schema/nodes/ceiling.d.ts +44 -7
  1004. package/dist/schema/nodes/ceiling.d.ts.map +1 -1
  1005. package/dist/schema/nodes/ceiling.js +8 -0
  1006. package/dist/schema/nodes/chimney.d.ts +42 -16
  1007. package/dist/schema/nodes/chimney.d.ts.map +1 -1
  1008. package/dist/schema/nodes/column.d.ts +321 -187
  1009. package/dist/schema/nodes/column.d.ts.map +1 -1
  1010. package/dist/schema/nodes/column.js +4 -0
  1011. package/dist/schema/nodes/construction-dimension.d.ts +53 -27
  1012. package/dist/schema/nodes/construction-dimension.d.ts.map +1 -1
  1013. package/dist/schema/nodes/cupola.d.ts +34 -8
  1014. package/dist/schema/nodes/cupola.d.ts.map +1 -1
  1015. package/dist/schema/nodes/curtain-wall.d.ts +21 -20
  1016. package/dist/schema/nodes/curtain-wall.d.ts.map +1 -1
  1017. package/dist/schema/nodes/curtain-wall.js +23 -0
  1018. package/dist/schema/nodes/door.d.ts +170 -44
  1019. package/dist/schema/nodes/door.d.ts.map +1 -1
  1020. package/dist/schema/nodes/door.js +37 -33
  1021. package/dist/schema/nodes/dormer.d.ts +56 -29
  1022. package/dist/schema/nodes/dormer.d.ts.map +1 -1
  1023. package/dist/schema/nodes/downspout.d.ts +36 -10
  1024. package/dist/schema/nodes/downspout.d.ts.map +1 -1
  1025. package/dist/schema/nodes/duct-fitting.d.ts +44 -18
  1026. package/dist/schema/nodes/duct-fitting.d.ts.map +1 -1
  1027. package/dist/schema/nodes/duct-segment.d.ts +34 -8
  1028. package/dist/schema/nodes/duct-segment.d.ts.map +1 -1
  1029. package/dist/schema/nodes/duct-terminal.d.ts +31 -5
  1030. package/dist/schema/nodes/duct-terminal.d.ts.map +1 -1
  1031. package/dist/schema/nodes/elevator.d.ts +34 -8
  1032. package/dist/schema/nodes/elevator.d.ts.map +1 -1
  1033. package/dist/schema/nodes/eyebrow-vent.d.ts +32 -6
  1034. package/dist/schema/nodes/eyebrow-vent.d.ts.map +1 -1
  1035. package/dist/schema/nodes/fence-feature.d.ts +141 -0
  1036. package/dist/schema/nodes/fence-feature.d.ts.map +1 -0
  1037. package/dist/schema/nodes/fence-feature.js +21 -0
  1038. package/dist/schema/nodes/fence-types.d.ts +32 -0
  1039. package/dist/schema/nodes/fence-types.d.ts.map +1 -0
  1040. package/dist/schema/nodes/fence-types.js +22 -0
  1041. package/dist/schema/nodes/fence.d.ts +175 -18
  1042. package/dist/schema/nodes/fence.d.ts.map +1 -1
  1043. package/dist/schema/nodes/fence.js +76 -7
  1044. package/dist/schema/nodes/floor-opening.d.ts +61 -0
  1045. package/dist/schema/nodes/floor-opening.d.ts.map +1 -0
  1046. package/dist/schema/nodes/floor-opening.js +17 -0
  1047. package/dist/schema/nodes/guide.d.ts +27 -1
  1048. package/dist/schema/nodes/guide.d.ts.map +1 -1
  1049. package/dist/schema/nodes/gutter.d.ts +33 -7
  1050. package/dist/schema/nodes/gutter.d.ts.map +1 -1
  1051. package/dist/schema/nodes/gutter.js +6 -5
  1052. package/dist/schema/nodes/hvac-equipment.d.ts +32 -6
  1053. package/dist/schema/nodes/hvac-equipment.d.ts.map +1 -1
  1054. package/dist/schema/nodes/imported-mesh.d.ts +27 -1
  1055. package/dist/schema/nodes/imported-mesh.d.ts.map +1 -1
  1056. package/dist/schema/nodes/item.d.ts +169 -13
  1057. package/dist/schema/nodes/item.d.ts.map +1 -1
  1058. package/dist/schema/nodes/item.js +13 -0
  1059. package/dist/schema/nodes/lean-to-extension.d.ts +55 -29
  1060. package/dist/schema/nodes/lean-to-extension.d.ts.map +1 -1
  1061. package/dist/schema/nodes/level.d.ts +28 -2
  1062. package/dist/schema/nodes/level.d.ts.map +1 -1
  1063. package/dist/schema/nodes/lineset.d.ts +27 -1
  1064. package/dist/schema/nodes/lineset.d.ts.map +1 -1
  1065. package/dist/schema/nodes/liquid-line.d.ts +27 -1
  1066. package/dist/schema/nodes/liquid-line.d.ts.map +1 -1
  1067. package/dist/schema/nodes/measurement.d.ts +27 -1
  1068. package/dist/schema/nodes/measurement.d.ts.map +1 -1
  1069. package/dist/schema/nodes/opening-types.d.ts +41 -0
  1070. package/dist/schema/nodes/opening-types.d.ts.map +1 -0
  1071. package/dist/schema/nodes/opening-types.js +48 -0
  1072. package/dist/schema/nodes/pipe-fitting.d.ts +34 -8
  1073. package/dist/schema/nodes/pipe-fitting.d.ts.map +1 -1
  1074. package/dist/schema/nodes/pipe-segment.d.ts +30 -4
  1075. package/dist/schema/nodes/pipe-segment.d.ts.map +1 -1
  1076. package/dist/schema/nodes/pipe-trap.d.ts +28 -2
  1077. package/dist/schema/nodes/pipe-trap.d.ts.map +1 -1
  1078. package/dist/schema/nodes/ridge-vent.d.ts +33 -7
  1079. package/dist/schema/nodes/ridge-vent.d.ts.map +1 -1
  1080. package/dist/schema/nodes/ridge-vent.js +3 -1
  1081. package/dist/schema/nodes/roof-glazing-config.d.ts +90 -0
  1082. package/dist/schema/nodes/roof-glazing-config.d.ts.map +1 -0
  1083. package/dist/schema/nodes/roof-glazing-config.js +34 -0
  1084. package/dist/schema/nodes/roof-glazing.d.ts +57 -0
  1085. package/dist/schema/nodes/roof-glazing.d.ts.map +1 -0
  1086. package/dist/schema/nodes/roof-glazing.js +514 -0
  1087. package/dist/schema/nodes/roof-segment-resize.d.ts +4 -0
  1088. package/dist/schema/nodes/roof-segment-resize.d.ts.map +1 -0
  1089. package/dist/schema/nodes/roof-segment-resize.js +21 -0
  1090. package/dist/schema/nodes/roof-segment-shape.d.ts +5 -0
  1091. package/dist/schema/nodes/roof-segment-shape.d.ts.map +1 -1
  1092. package/dist/schema/nodes/roof-segment-shape.js +44 -0
  1093. package/dist/schema/nodes/roof-segment-walls.d.ts +1 -1
  1094. package/dist/schema/nodes/roof-segment-walls.d.ts.map +1 -1
  1095. package/dist/schema/nodes/roof-segment-walls.js +26 -1
  1096. package/dist/schema/nodes/roof-segment.d.ts +175 -40
  1097. package/dist/schema/nodes/roof-segment.d.ts.map +1 -1
  1098. package/dist/schema/nodes/roof-segment.js +100 -20
  1099. package/dist/schema/nodes/roof-types.d.ts +14 -0
  1100. package/dist/schema/nodes/roof-types.d.ts.map +1 -0
  1101. package/dist/schema/nodes/roof-types.js +14 -0
  1102. package/dist/schema/nodes/roof.d.ts +122 -21
  1103. package/dist/schema/nodes/roof.d.ts.map +1 -1
  1104. package/dist/schema/nodes/roof.js +6 -0
  1105. package/dist/schema/nodes/scan.d.ts +27 -1
  1106. package/dist/schema/nodes/scan.d.ts.map +1 -1
  1107. package/dist/schema/nodes/separator.d.ts +50 -0
  1108. package/dist/schema/nodes/separator.d.ts.map +1 -0
  1109. package/dist/schema/nodes/separator.js +8 -0
  1110. package/dist/schema/nodes/shelf.d.ts +35 -9
  1111. package/dist/schema/nodes/shelf.d.ts.map +1 -1
  1112. package/dist/schema/nodes/site-facts.d.ts +64 -0
  1113. package/dist/schema/nodes/site-facts.d.ts.map +1 -0
  1114. package/dist/schema/nodes/site-facts.js +73 -0
  1115. package/dist/schema/nodes/site.d.ts +235 -1
  1116. package/dist/schema/nodes/site.d.ts.map +1 -1
  1117. package/dist/schema/nodes/site.js +115 -1
  1118. package/dist/schema/nodes/skylight.d.ts +64 -38
  1119. package/dist/schema/nodes/skylight.d.ts.map +1 -1
  1120. package/dist/schema/nodes/slab.d.ts +91 -7
  1121. package/dist/schema/nodes/slab.d.ts.map +1 -1
  1122. package/dist/schema/nodes/slab.js +37 -2
  1123. package/dist/schema/nodes/solar-panel.d.ts +40 -14
  1124. package/dist/schema/nodes/solar-panel.d.ts.map +1 -1
  1125. package/dist/schema/nodes/spawn.d.ts +27 -1
  1126. package/dist/schema/nodes/spawn.d.ts.map +1 -1
  1127. package/dist/schema/nodes/stair-construction.d.ts +21 -0
  1128. package/dist/schema/nodes/stair-construction.d.ts.map +1 -0
  1129. package/dist/schema/nodes/stair-construction.js +13 -0
  1130. package/dist/schema/nodes/stair-defaults.d.ts +16 -0
  1131. package/dist/schema/nodes/stair-defaults.d.ts.map +1 -0
  1132. package/dist/schema/nodes/stair-defaults.js +15 -0
  1133. package/dist/schema/nodes/stair-design-targets.d.ts +9 -0
  1134. package/dist/schema/nodes/stair-design-targets.d.ts.map +1 -0
  1135. package/dist/schema/nodes/stair-design-targets.js +7 -0
  1136. package/dist/schema/nodes/stair-segment.d.ts +78 -10
  1137. package/dist/schema/nodes/stair-segment.d.ts.map +1 -1
  1138. package/dist/schema/nodes/stair-segment.js +13 -0
  1139. package/dist/schema/nodes/stair-types.d.ts +29 -0
  1140. package/dist/schema/nodes/stair-types.d.ts.map +1 -0
  1141. package/dist/schema/nodes/stair-types.js +23 -0
  1142. package/dist/schema/nodes/stair.d.ts +131 -38
  1143. package/dist/schema/nodes/stair.d.ts.map +1 -1
  1144. package/dist/schema/nodes/stair.js +46 -3
  1145. package/dist/schema/nodes/structural-grid.d.ts +27 -1
  1146. package/dist/schema/nodes/structural-grid.d.ts.map +1 -1
  1147. package/dist/schema/nodes/surface-hole-metadata.d.ts +4 -1
  1148. package/dist/schema/nodes/surface-hole-metadata.d.ts.map +1 -1
  1149. package/dist/schema/nodes/surface-hole-metadata.js +2 -1
  1150. package/dist/schema/nodes/surface-paint-region.d.ts +14 -0
  1151. package/dist/schema/nodes/surface-paint-region.d.ts.map +1 -0
  1152. package/dist/schema/nodes/surface-paint-region.js +12 -0
  1153. package/dist/schema/nodes/turbine-vent.d.ts +32 -6
  1154. package/dist/schema/nodes/turbine-vent.d.ts.map +1 -1
  1155. package/dist/schema/nodes/unit.d.ts +29 -3
  1156. package/dist/schema/nodes/unit.d.ts.map +1 -1
  1157. package/dist/schema/nodes/wall.d.ts +771 -147
  1158. package/dist/schema/nodes/wall.d.ts.map +1 -1
  1159. package/dist/schema/nodes/wall.js +204 -186
  1160. package/dist/schema/nodes/window.d.ts +173 -38
  1161. package/dist/schema/nodes/window.d.ts.map +1 -1
  1162. package/dist/schema/nodes/window.js +22 -14
  1163. package/dist/schema/nodes/zone.d.ts +291 -4
  1164. package/dist/schema/nodes/zone.d.ts.map +1 -1
  1165. package/dist/schema/nodes/zone.js +56 -0
  1166. package/dist/schema/provenance.d.ts +118 -0
  1167. package/dist/schema/provenance.d.ts.map +1 -0
  1168. package/dist/schema/provenance.js +76 -0
  1169. package/dist/schema/scene-material.d.ts +5 -5
  1170. package/dist/schema/site-presentation.d.ts +100 -0
  1171. package/dist/schema/site-presentation.d.ts.map +1 -0
  1172. package/dist/schema/site-presentation.js +83 -0
  1173. package/dist/schema/source-ref.d.ts +23 -0
  1174. package/dist/schema/source-ref.d.ts.map +1 -0
  1175. package/dist/schema/source-ref.js +29 -0
  1176. package/dist/schema/types.d.ts +4442 -653
  1177. package/dist/schema/types.d.ts.map +1 -1
  1178. package/dist/schema/types.js +7 -0
  1179. package/dist/services/__fixtures__/wall-plane-top-boundary-repro.d.ts.map +1 -1
  1180. package/dist/services/alignment-anchors.d.ts +2 -1
  1181. package/dist/services/alignment-anchors.d.ts.map +1 -1
  1182. package/dist/services/alignment-anchors.js +9 -6
  1183. package/dist/services/index.d.ts +5 -1
  1184. package/dist/services/index.d.ts.map +1 -1
  1185. package/dist/services/index.js +5 -1
  1186. package/dist/services/level-height.d.ts.map +1 -1
  1187. package/dist/services/level-height.js +10 -4
  1188. package/dist/services/port-connectivity.d.ts +4 -0
  1189. package/dist/services/port-connectivity.d.ts.map +1 -1
  1190. package/dist/services/port-connectivity.js +35 -0
  1191. package/dist/services/project-file-sink.d.ts +9 -0
  1192. package/dist/services/project-file-sink.d.ts.map +1 -0
  1193. package/dist/services/project-file-sink.js +13 -0
  1194. package/dist/services/roof-bearing.d.ts +62 -0
  1195. package/dist/services/roof-bearing.d.ts.map +1 -0
  1196. package/dist/services/roof-bearing.js +234 -0
  1197. package/dist/services/roof-level.d.ts +121 -0
  1198. package/dist/services/roof-level.d.ts.map +1 -0
  1199. package/dist/services/roof-level.js +280 -0
  1200. package/dist/services/roof-move.d.ts +83 -0
  1201. package/dist/services/roof-move.d.ts.map +1 -0
  1202. package/dist/services/roof-move.js +316 -0
  1203. package/dist/services/stair-surface-snap.d.ts +14 -0
  1204. package/dist/services/stair-surface-snap.d.ts.map +1 -0
  1205. package/dist/services/stair-surface-snap.js +116 -0
  1206. package/dist/services/storey-datum.d.ts +12 -0
  1207. package/dist/services/storey-datum.d.ts.map +1 -0
  1208. package/dist/services/storey-datum.js +18 -0
  1209. package/dist/services/storey.d.ts +72 -6
  1210. package/dist/services/storey.d.ts.map +1 -1
  1211. package/dist/services/storey.js +215 -12
  1212. package/dist/services/surface-hosting.d.ts.map +1 -1
  1213. package/dist/services/surface-hosting.js +4 -1
  1214. package/dist/solar-panel-presets.d.ts +2 -2
  1215. package/dist/store/actions/node-actions.d.ts +4994 -8
  1216. package/dist/store/actions/node-actions.d.ts.map +1 -1
  1217. package/dist/store/actions/node-actions.js +541 -175
  1218. package/dist/store/derived-node-guard.d.ts +84 -0
  1219. package/dist/store/derived-node-guard.d.ts.map +1 -0
  1220. package/dist/store/derived-node-guard.js +586 -0
  1221. package/dist/store/history-control.d.ts +73 -0
  1222. package/dist/store/history-control.d.ts.map +1 -1
  1223. package/dist/store/history-control.js +183 -5
  1224. package/dist/store/history-drafts.d.ts +48 -0
  1225. package/dist/store/history-drafts.d.ts.map +1 -0
  1226. package/dist/store/history-drafts.js +403 -0
  1227. package/dist/store/history-invalidation.d.ts.map +1 -1
  1228. package/dist/store/history-invalidation.js +1 -0
  1229. package/dist/store/item-interaction.d.ts +28 -0
  1230. package/dist/store/item-interaction.d.ts.map +1 -0
  1231. package/dist/store/item-interaction.js +34 -0
  1232. package/dist/store/registered-node-defaults.d.ts +11 -0
  1233. package/dist/store/registered-node-defaults.d.ts.map +1 -0
  1234. package/dist/store/registered-node-defaults.js +25 -0
  1235. package/dist/store/scene-annotations.d.ts +9827 -0
  1236. package/dist/store/scene-annotations.d.ts.map +1 -0
  1237. package/dist/store/scene-annotations.js +107 -0
  1238. package/dist/store/scene-preview.d.ts +16 -0
  1239. package/dist/store/scene-preview.d.ts.map +1 -0
  1240. package/dist/store/scene-preview.js +144 -0
  1241. package/dist/store/use-interactive.d.ts +23 -1
  1242. package/dist/store/use-interactive.d.ts.map +1 -1
  1243. package/dist/store/use-interactive.js +128 -5
  1244. package/dist/store/use-live-node-overrides.d.ts.map +1 -1
  1245. package/dist/store/use-live-terrain.d.ts.map +1 -1
  1246. package/dist/store/use-live-transforms.d.ts.map +1 -1
  1247. package/dist/store/use-scene.d.ts +68 -12
  1248. package/dist/store/use-scene.d.ts.map +1 -1
  1249. package/dist/store/use-scene.js +452 -308
  1250. package/dist/systems/elevator/elevator-dispatch.js +1 -1
  1251. package/dist/systems/elevator/elevator-opening-sync.d.ts.map +1 -1
  1252. package/dist/systems/elevator/elevator-opening-sync.js +4 -6
  1253. package/dist/systems/elevator/elevator-opening-system.d.ts.map +1 -1
  1254. package/dist/systems/elevator/elevator-opening-system.js +12 -6
  1255. package/dist/systems/elevator/elevator-service.d.ts.map +1 -1
  1256. package/dist/systems/elevator/elevator-service.js +8 -3
  1257. package/dist/systems/fence/fence-centerline.d.ts.map +1 -1
  1258. package/dist/systems/fence/fence-centerline.js +6 -5
  1259. package/dist/systems/fence/fence-features.d.ts +36 -0
  1260. package/dist/systems/fence/fence-features.d.ts.map +1 -0
  1261. package/dist/systems/fence/fence-features.js +105 -0
  1262. package/dist/systems/fence/fence-spline.d.ts +8 -5
  1263. package/dist/systems/fence/fence-spline.d.ts.map +1 -1
  1264. package/dist/systems/fence/fence-spline.js +51 -16
  1265. package/dist/systems/owned-floor-openings.d.ts +9 -0
  1266. package/dist/systems/owned-floor-openings.d.ts.map +1 -0
  1267. package/dist/systems/owned-floor-openings.js +347 -0
  1268. package/dist/systems/reconcile-owned-floor-openings.d.ts +3 -0
  1269. package/dist/systems/reconcile-owned-floor-openings.d.ts.map +1 -0
  1270. package/dist/systems/reconcile-owned-floor-openings.js +25 -0
  1271. package/dist/systems/roof/roof-elevation-system.d.ts.map +1 -1
  1272. package/dist/systems/roof/roof-elevation-system.js +9 -3
  1273. package/dist/systems/roof/roof-elevation.d.ts +5 -0
  1274. package/dist/systems/roof/roof-elevation.d.ts.map +1 -1
  1275. package/dist/systems/roof/roof-elevation.js +91 -62
  1276. package/dist/systems/slab/__fixtures__/doorway-steps.d.ts +8 -0
  1277. package/dist/systems/slab/__fixtures__/doorway-steps.d.ts.map +1 -0
  1278. package/dist/systems/slab/__fixtures__/doorway-steps.js +62 -0
  1279. package/dist/systems/slab/__fixtures__/floor-step.d.ts +6743 -0
  1280. package/dist/systems/slab/__fixtures__/floor-step.d.ts.map +1 -0
  1281. package/dist/systems/slab/__fixtures__/floor-step.js +66 -0
  1282. package/dist/systems/slab/__fixtures__/raised-room.d.ts +6848 -0
  1283. package/dist/systems/slab/__fixtures__/raised-room.d.ts.map +1 -0
  1284. package/dist/systems/slab/__fixtures__/raised-room.js +54 -0
  1285. package/dist/systems/slab/ensure-slab-openings.d.ts +9 -0
  1286. package/dist/systems/slab/ensure-slab-openings.d.ts.map +1 -0
  1287. package/dist/systems/slab/ensure-slab-openings.js +41 -0
  1288. package/dist/systems/slab/slab-support.d.ts +30 -8
  1289. package/dist/systems/slab/slab-support.d.ts.map +1 -1
  1290. package/dist/systems/slab/slab-support.js +547 -62
  1291. package/dist/systems/stair/stair-base-elevation.d.ts +3 -0
  1292. package/dist/systems/stair/stair-base-elevation.d.ts.map +1 -0
  1293. package/dist/systems/stair/stair-base-elevation.js +49 -0
  1294. package/dist/systems/stair/stair-clearance.d.ts +39 -0
  1295. package/dist/systems/stair/stair-clearance.d.ts.map +1 -0
  1296. package/dist/systems/stair/stair-clearance.js +508 -0
  1297. package/dist/systems/stair/stair-construction.d.ts +37 -0
  1298. package/dist/systems/stair/stair-construction.d.ts.map +1 -0
  1299. package/dist/systems/stair/stair-construction.js +314 -0
  1300. package/dist/systems/stair/stair-detail-budget.d.ts +13 -0
  1301. package/dist/systems/stair/stair-detail-budget.d.ts.map +1 -0
  1302. package/dist/systems/stair/stair-detail-budget.js +64 -0
  1303. package/dist/systems/stair/stair-flight.d.ts +2 -2
  1304. package/dist/systems/stair/stair-flight.d.ts.map +1 -1
  1305. package/dist/systems/stair/stair-flight.js +4 -3
  1306. package/dist/systems/stair/stair-floor-footprints.d.ts +7 -0
  1307. package/dist/systems/stair/stair-floor-footprints.d.ts.map +1 -0
  1308. package/dist/systems/stair/stair-floor-footprints.js +113 -0
  1309. package/dist/systems/stair/stair-footprint.d.ts +9 -1
  1310. package/dist/systems/stair/stair-footprint.d.ts.map +1 -1
  1311. package/dist/systems/stair/stair-footprint.js +123 -57
  1312. package/dist/systems/stair/stair-layout.d.ts +39 -0
  1313. package/dist/systems/stair/stair-layout.d.ts.map +1 -0
  1314. package/dist/systems/stair/stair-layout.js +58 -0
  1315. package/dist/systems/stair/stair-opening-preview.d.ts +4022 -2061
  1316. package/dist/systems/stair/stair-opening-preview.d.ts.map +1 -1
  1317. package/dist/systems/stair/stair-opening-sync.d.ts +8 -2
  1318. package/dist/systems/stair/stair-opening-sync.d.ts.map +1 -1
  1319. package/dist/systems/stair/stair-opening-sync.js +136 -315
  1320. package/dist/systems/stair/stair-opening-system.d.ts.map +1 -1
  1321. package/dist/systems/stair/stair-opening-system.js +40 -8
  1322. package/dist/systems/stair/stair-presets.d.ts +284 -0
  1323. package/dist/systems/stair/stair-presets.d.ts.map +1 -0
  1324. package/dist/systems/stair/stair-presets.js +158 -0
  1325. package/dist/systems/stair/stair-rail-budget.d.ts +6 -0
  1326. package/dist/systems/stair/stair-rail-budget.d.ts.map +1 -0
  1327. package/dist/systems/stair/stair-rail-budget.js +36 -0
  1328. package/dist/systems/stair/stair-rail-path.d.ts +22 -0
  1329. package/dist/systems/stair/stair-rail-path.d.ts.map +1 -0
  1330. package/dist/systems/stair/stair-rail-path.js +497 -0
  1331. package/dist/systems/stair/stair-rise-edit.d.ts +9 -0
  1332. package/dist/systems/stair/stair-rise-edit.d.ts.map +1 -0
  1333. package/dist/systems/stair/stair-rise-edit.js +46 -0
  1334. package/dist/systems/stair/stair-rise-query.d.ts +40 -0
  1335. package/dist/systems/stair/stair-rise-query.d.ts.map +1 -0
  1336. package/dist/systems/stair/stair-rise-query.js +175 -0
  1337. package/dist/systems/stair/stair-rise.d.ts +4 -19
  1338. package/dist/systems/stair/stair-rise.d.ts.map +1 -1
  1339. package/dist/systems/stair/stair-rise.js +8 -71
  1340. package/dist/systems/stair/stair-sizing.d.ts +416 -0
  1341. package/dist/systems/stair/stair-sizing.d.ts.map +1 -0
  1342. package/dist/systems/stair/stair-sizing.js +255 -0
  1343. package/dist/systems/stair/stair-sweep-edit.d.ts +7 -0
  1344. package/dist/systems/stair/stair-sweep-edit.d.ts.map +1 -0
  1345. package/dist/systems/stair/stair-sweep-edit.js +8 -0
  1346. package/dist/systems/stair/stair-walking-line.d.ts +5 -0
  1347. package/dist/systems/stair/stair-walking-line.d.ts.map +1 -0
  1348. package/dist/systems/stair/stair-walking-line.js +91 -0
  1349. package/dist/systems/stair/stair-winder.d.ts +36 -0
  1350. package/dist/systems/stair/stair-winder.d.ts.map +1 -0
  1351. package/dist/systems/stair/stair-winder.js +173 -0
  1352. package/dist/systems/wall/wall-assembly.d.ts +245 -0
  1353. package/dist/systems/wall/wall-assembly.d.ts.map +1 -0
  1354. package/dist/systems/wall/wall-assembly.js +875 -0
  1355. package/dist/systems/wall/wall-curve.d.ts +7 -1
  1356. package/dist/systems/wall/wall-curve.d.ts.map +1 -1
  1357. package/dist/systems/wall/wall-curve.js +34 -5
  1358. package/dist/systems/wall/wall-finish.d.ts +102 -0
  1359. package/dist/systems/wall/wall-finish.d.ts.map +1 -0
  1360. package/dist/systems/wall/wall-finish.js +264 -0
  1361. package/dist/systems/wall/wall-footprint.d.ts +3 -0
  1362. package/dist/systems/wall/wall-footprint.d.ts.map +1 -1
  1363. package/dist/systems/wall/wall-footprint.js +15 -13
  1364. package/dist/systems/wall/wall-frame.d.ts +45 -0
  1365. package/dist/systems/wall/wall-frame.d.ts.map +1 -0
  1366. package/dist/systems/wall/wall-frame.js +170 -0
  1367. package/dist/systems/wall/wall-layer-bands.d.ts +38 -0
  1368. package/dist/systems/wall/wall-layer-bands.d.ts.map +1 -0
  1369. package/dist/systems/wall/wall-layer-bands.js +109 -0
  1370. package/dist/systems/wall/wall-merge.d.ts +20 -1
  1371. package/dist/systems/wall/wall-merge.d.ts.map +1 -1
  1372. package/dist/systems/wall/wall-merge.js +189 -18
  1373. package/dist/systems/wall/wall-mitering.d.ts +6 -5
  1374. package/dist/systems/wall/wall-mitering.d.ts.map +1 -1
  1375. package/dist/systems/wall/wall-mitering.js +70 -20
  1376. package/dist/systems/wall/wall-operations.d.ts +1 -1
  1377. package/dist/systems/wall/wall-operations.d.ts.map +1 -1
  1378. package/dist/systems/wall/wall-operations.js +2 -1
  1379. package/dist/systems/wall/wall-paint-plan.d.ts +30 -0
  1380. package/dist/systems/wall/wall-paint-plan.d.ts.map +1 -0
  1381. package/dist/systems/wall/wall-paint-plan.js +167 -0
  1382. package/dist/systems/wall/wall-room-sides.d.ts +14 -0
  1383. package/dist/systems/wall/wall-room-sides.d.ts.map +1 -0
  1384. package/dist/systems/wall/wall-room-sides.js +67 -0
  1385. package/dist/systems/wall/wall-step-openings.d.ts +17 -0
  1386. package/dist/systems/wall/wall-step-openings.d.ts.map +1 -0
  1387. package/dist/systems/wall/wall-step-openings.js +32 -0
  1388. package/dist/systems/wall/wall-top.d.ts +7 -8
  1389. package/dist/systems/wall/wall-top.d.ts.map +1 -1
  1390. package/dist/systems/wall/wall-top.js +15 -13
  1391. package/dist/systems/wall/wall-topology.d.ts +25 -0
  1392. package/dist/systems/wall/wall-topology.d.ts.map +1 -1
  1393. package/dist/systems/wall/wall-topology.js +408 -5
  1394. package/dist/systems/wall/wall-trim.d.ts +7 -0
  1395. package/dist/systems/wall/wall-trim.d.ts.map +1 -0
  1396. package/dist/systems/wall/wall-trim.js +10 -0
  1397. package/dist/utils/clone-scene-graph.d.ts +6 -0
  1398. package/dist/utils/clone-scene-graph.d.ts.map +1 -1
  1399. package/dist/utils/clone-scene-graph.js +131 -15
  1400. package/dist/utils/ensure-scene-openings.d.ts +9823 -0
  1401. package/dist/utils/ensure-scene-openings.d.ts.map +1 -0
  1402. package/dist/utils/ensure-scene-openings.js +29 -0
  1403. package/dist/utils/exterior-threshold-migration.d.ts +4 -0
  1404. package/dist/utils/exterior-threshold-migration.d.ts.map +1 -0
  1405. package/dist/utils/exterior-threshold-migration.js +114 -0
  1406. package/dist/utils/floor-follow-migration.d.ts +3 -0
  1407. package/dist/utils/floor-follow-migration.d.ts.map +1 -0
  1408. package/dist/utils/floor-follow-migration.js +29 -0
  1409. package/dist/utils/floor-opening-migration.d.ts +13 -0
  1410. package/dist/utils/floor-opening-migration.d.ts.map +1 -0
  1411. package/dist/utils/floor-opening-migration.js +148 -0
  1412. package/dist/utils/floor-piece-adoption.d.ts +50 -0
  1413. package/dist/utils/floor-piece-adoption.d.ts.map +1 -0
  1414. package/dist/utils/floor-piece-adoption.js +182 -0
  1415. package/dist/utils/floor-plate-migration.d.ts +4936 -0
  1416. package/dist/utils/floor-plate-migration.d.ts.map +1 -0
  1417. package/dist/utils/floor-plate-migration.js +1360 -0
  1418. package/dist/utils/heal-plan-coordinates.d.ts +2 -0
  1419. package/dist/utils/heal-plan-coordinates.d.ts.map +1 -0
  1420. package/dist/utils/heal-plan-coordinates.js +69 -0
  1421. package/dist/utils/heal-scene-graph.d.ts +32 -6
  1422. package/dist/utils/heal-scene-graph.d.ts.map +1 -1
  1423. package/dist/utils/heal-scene-graph.js +78 -16
  1424. package/dist/utils/legacy-material-slots.d.ts +23 -0
  1425. package/dist/utils/legacy-material-slots.d.ts.map +1 -0
  1426. package/dist/utils/legacy-material-slots.js +120 -0
  1427. package/dist/utils/legacy-opening-datums.d.ts +11 -0
  1428. package/dist/utils/legacy-opening-datums.d.ts.map +1 -0
  1429. package/dist/utils/legacy-opening-datums.js +92 -0
  1430. package/dist/utils/legacy-wall-datums.d.ts +6 -0
  1431. package/dist/utils/legacy-wall-datums.d.ts.map +1 -0
  1432. package/dist/utils/legacy-wall-datums.js +199 -0
  1433. package/dist/utils/load-migration.d.ts +28 -0
  1434. package/dist/utils/load-migration.d.ts.map +1 -0
  1435. package/dist/utils/load-migration.js +89 -0
  1436. package/dist/utils/node-defaults.d.ts +37 -0
  1437. package/dist/utils/node-defaults.d.ts.map +1 -0
  1438. package/dist/utils/node-defaults.js +96 -0
  1439. package/dist/utils/normalize-legacy-structure.d.ts +2 -0
  1440. package/dist/utils/normalize-legacy-structure.d.ts.map +1 -0
  1441. package/dist/utils/normalize-legacy-structure.js +61 -0
  1442. package/dist/utils/omit-undefined.d.ts +2 -0
  1443. package/dist/utils/omit-undefined.d.ts.map +1 -0
  1444. package/dist/utils/omit-undefined.js +17 -0
  1445. package/dist/utils/owned-floor-opening-migration.d.ts +4918 -0
  1446. package/dist/utils/owned-floor-opening-migration.d.ts.map +1 -0
  1447. package/dist/utils/owned-floor-opening-migration.js +365 -0
  1448. package/dist/utils/reconcile-structure-on-load.d.ts +4918 -0
  1449. package/dist/utils/reconcile-structure-on-load.d.ts.map +1 -0
  1450. package/dist/utils/reconcile-structure-on-load.js +307 -0
  1451. package/dist/utils/room-zone-migration.d.ts +18 -0
  1452. package/dist/utils/room-zone-migration.d.ts.map +1 -0
  1453. package/dist/utils/room-zone-migration.js +258 -0
  1454. package/dist/utils/scene-migrations.d.ts +16 -1
  1455. package/dist/utils/scene-migrations.d.ts.map +1 -1
  1456. package/dist/utils/scene-migrations.js +15 -1
  1457. package/dist/utils/semantic-equal.d.ts +3 -0
  1458. package/dist/utils/semantic-equal.d.ts.map +1 -0
  1459. package/dist/utils/semantic-equal.js +26 -0
  1460. package/dist/utils/structure-id.d.ts +4 -0
  1461. package/dist/utils/structure-id.d.ts.map +1 -0
  1462. package/dist/utils/structure-id.js +115 -0
  1463. package/dist/utils/types.d.ts.map +1 -1
  1464. package/dist/utils/vertical-scene-migration.d.ts +8 -8
  1465. package/dist/utils/vertical-scene-migration.d.ts.map +1 -1
  1466. package/dist/utils/vertical-scene-migration.js +18 -8
  1467. package/dist/utils/wall-assembly-migration.d.ts +14 -0
  1468. package/dist/utils/wall-assembly-migration.d.ts.map +1 -0
  1469. package/dist/utils/wall-assembly-migration.js +23 -0
  1470. package/dist/utils/wall-face-migration.d.ts +23 -0
  1471. package/dist/utils/wall-face-migration.d.ts.map +1 -0
  1472. package/dist/utils/wall-face-migration.js +246 -0
  1473. package/dist/validation/opening-bounds.d.ts +36 -0
  1474. package/dist/validation/opening-bounds.d.ts.map +1 -0
  1475. package/dist/validation/opening-bounds.js +34 -0
  1476. package/dist/validation/validate-build-json.d.ts +2 -0
  1477. package/dist/validation/validate-build-json.d.ts.map +1 -1
  1478. package/dist/validation/validate-build-json.js +36 -1
  1479. package/package.json +69 -10
  1480. package/dist/services/surface-hosting-procedural-parity.fixtures.d.ts +0 -13
  1481. package/dist/services/surface-hosting-procedural-parity.fixtures.d.ts.map +0 -1
  1482. package/dist/services/surface-hosting-procedural-parity.fixtures.js +0 -4691
  1483. package/dist/services/surface-hosting-shelf-parity.fixtures.d.ts +0 -1060
  1484. package/dist/services/surface-hosting-shelf-parity.fixtures.d.ts.map +0 -1
  1485. package/dist/services/surface-hosting-shelf-parity.fixtures.js +0 -3127
@@ -1,4 +1,6 @@
1
- import { MaterialTarget as MaterialTargetSchema, } from './schema/material.js';
1
+ import { MaterialProperties, MaterialTarget as MaterialTargetSchema, } from './schema/material.js';
2
+ // The library's kinds and surfaces, kept apart so a tool contract names them without the catalog.
3
+ export { MATERIAL_CATEGORIES, MATERIAL_SURFACES, } from './material-kinds.js';
2
4
  const WALL_TARGETS = [
3
5
  MaterialTargetSchema.enum.wall,
4
6
  MaterialTargetSchema.enum.chimney,
@@ -29,32 +31,6 @@ const ROOF_TARGETS = [
29
31
  MaterialTargetSchema.enum.dormer,
30
32
  ];
31
33
  const CEILING_TARGETS = [MaterialTargetSchema.enum.ceiling];
32
- export const MATERIAL_CATEGORIES = [
33
- 'colors',
34
- 'wood',
35
- 'stone',
36
- 'brick',
37
- 'tile',
38
- 'wallpaper',
39
- 'concrete',
40
- 'metal',
41
- 'plastic',
42
- 'fabric',
43
- 'carpet',
44
- 'leather',
45
- 'roofing',
46
- 'ground',
47
- 'glass',
48
- 'other',
49
- ];
50
- export const MATERIAL_SURFACES = [
51
- 'floor',
52
- 'wall',
53
- 'ceiling',
54
- 'roof',
55
- 'furniture',
56
- 'outdoor',
57
- ];
58
34
  export const MATERIAL_CATALOG = [
59
35
  {
60
36
  id: 'wood-finewood27',
@@ -63,6 +39,7 @@ export const MATERIAL_CATALOG = [
63
39
  surfaces: ['floor', 'wall', 'furniture'],
64
40
  description: 'Fine wood finish',
65
41
  previewThumbnailUrl: '/material/wood/finewood_27/finewood_27_thumb.webp',
42
+ previewColor: '#a7753f',
66
43
  preset: {
67
44
  maps: {
68
45
  albedoMap: '/material/wood/finewood_27/finewood_27_basecolor_512.ktx2',
@@ -101,6 +78,7 @@ export const MATERIAL_CATALOG = [
101
78
  surfaces: ['floor'],
102
79
  description: 'Wood plank finish',
103
80
  previewThumbnailUrl: '/material/wood/floor_plank_1/floor_plank_1_thumb.webp',
81
+ previewColor: '#bf8552',
104
82
  preset: {
105
83
  maps: {
106
84
  albedoMap: '/material/wood/floor_plank_1/floor_plank_1_basecolor_512.ktx2',
@@ -138,6 +116,7 @@ export const MATERIAL_CATALOG = [
138
116
  surfaces: ['floor'],
139
117
  description: 'Parquet wood finish',
140
118
  previewThumbnailUrl: '/material/wood/hungarian_parquet_10/hungarian_parquet_10_thumb.webp',
119
+ previewColor: '#a87d50',
141
120
  preset: {
142
121
  maps: {
143
122
  albedoMap: '/material/wood/hungarian_parquet_10/hungarian_parquet_10_basecolor_512.ktx2',
@@ -175,6 +154,7 @@ export const MATERIAL_CATALOG = [
175
154
  surfaces: ['floor'],
176
155
  description: 'Parquet wood finish',
177
156
  previewThumbnailUrl: '/material/wood/hungarian_parquet_2/hungarian_parquet_2_thumb.webp',
157
+ previewColor: '#673021',
178
158
  preset: {
179
159
  maps: {
180
160
  albedoMap: '/material/wood/hungarian_parquet_2/hungarian_parquet_2_basecolor_512.ktx2',
@@ -212,6 +192,7 @@ export const MATERIAL_CATALOG = [
212
192
  surfaces: ['floor'],
213
193
  description: 'Parquet wood finish',
214
194
  previewThumbnailUrl: '/material/wood/square_parquet_21/square_parquet_21_thumb.webp',
195
+ previewColor: '#3f220f',
215
196
  preset: {
216
197
  maps: {
217
198
  albedoMap: '/material/wood/square_parquet_21/square_parquet_21_basecolor_512.ktx2',
@@ -249,6 +230,7 @@ export const MATERIAL_CATALOG = [
249
230
  surfaces: ['floor'],
250
231
  description: 'Parquet wood finish',
251
232
  previewThumbnailUrl: '/material/wood/square_wood_parquet_23/square_wood_parquet_23_thumb.webp',
233
+ previewColor: '#7e4108',
252
234
  preset: {
253
235
  maps: {
254
236
  albedoMap: '/material/wood/square_wood_parquet_23/square_wood_parquet_23_basecolor_512.ktx2',
@@ -286,6 +268,7 @@ export const MATERIAL_CATALOG = [
286
268
  surfaces: ['floor', 'wall', 'furniture'],
287
269
  description: 'Fine wood finish',
288
270
  previewThumbnailUrl: '/material/wood/wood_fine/wood_fine_thumb.webp',
271
+ previewColor: '#ba9a80',
289
272
  preset: {
290
273
  maps: {
291
274
  albedoMap: '/material/wood/wood_fine/wood_fine_basecolor_512.ktx2',
@@ -323,6 +306,7 @@ export const MATERIAL_CATALOG = [
323
306
  surfaces: ['floor', 'wall', 'furniture'],
324
307
  description: 'Fine wood finish',
325
308
  previewThumbnailUrl: '/material/wood/wood_fine_11/wood_fine_11_thumb.webp',
309
+ previewColor: '#f59d52',
326
310
  preset: {
327
311
  maps: {
328
312
  albedoMap: '/material/wood/wood_fine_11/wood_fine_11_basecolor_512.ktx2',
@@ -360,6 +344,7 @@ export const MATERIAL_CATALOG = [
360
344
  surfaces: ['floor', 'wall', 'furniture'],
361
345
  description: 'Fine wood finish',
362
346
  previewThumbnailUrl: '/material/wood/wood_fine_13/wood_fine_13_thumb.webp',
347
+ previewColor: '#e5a76f',
363
348
  preset: {
364
349
  maps: {
365
350
  albedoMap: '/material/wood/wood_fine_13/wood_fine_13_basecolor_512.ktx2',
@@ -397,6 +382,7 @@ export const MATERIAL_CATALOG = [
397
382
  surfaces: ['floor', 'wall', 'furniture'],
398
383
  description: 'Fine wood finish',
399
384
  previewThumbnailUrl: '/material/wood/wood_fine_2/wood_fine_2_thumb.webp',
385
+ previewColor: '#dcb791',
400
386
  preset: {
401
387
  maps: {
402
388
  albedoMap: '/material/wood/wood_fine_2/wood_fine_2_basecolor_512.ktx2',
@@ -434,6 +420,7 @@ export const MATERIAL_CATALOG = [
434
420
  surfaces: ['floor', 'wall', 'furniture'],
435
421
  description: 'Fine wood finish',
436
422
  previewThumbnailUrl: '/material/wood/wood_fine_22/wood_fine_22_thumb.webp',
423
+ previewColor: '#bfa67e',
437
424
  preset: {
438
425
  maps: {
439
426
  albedoMap: '/material/wood/wood_fine_22/wood_fine_22_basecolor_512.ktx2',
@@ -471,6 +458,7 @@ export const MATERIAL_CATALOG = [
471
458
  surfaces: ['floor', 'wall', 'furniture'],
472
459
  description: 'Fine wood finish',
473
460
  previewThumbnailUrl: '/material/wood/wood_fine_24/wood_fine_24_thumb.webp',
461
+ previewColor: '#a43c28',
474
462
  preset: {
475
463
  maps: {
476
464
  albedoMap: '/material/wood/wood_fine_24/wood_fine_24_basecolor_512.ktx2',
@@ -508,6 +496,7 @@ export const MATERIAL_CATALOG = [
508
496
  surfaces: ['floor'],
509
497
  description: 'Parquet wood finish',
510
498
  previewThumbnailUrl: '/material/wood/wood_parquet_14/wood_parquet_14_thumb.webp',
499
+ previewColor: '#e3d4c2',
511
500
  preset: {
512
501
  maps: {
513
502
  albedoMap: '/material/wood/wood_parquet_14/wood_parquet_14_basecolor_512.ktx2',
@@ -547,6 +536,7 @@ export const MATERIAL_CATALOG = [
547
536
  surfaces: ['floor'],
548
537
  description: 'Parquet wood finish',
549
538
  previewThumbnailUrl: '/material/wood/wooden_parquet_11/wooden_parquet_11_thumb.webp',
539
+ previewColor: '#59392d',
550
540
  preset: {
551
541
  maps: {
552
542
  albedoMap: '/material/wood/wooden_parquet_11/wooden_parquet_11_basecolor_512.ktx2',
@@ -584,6 +574,7 @@ export const MATERIAL_CATALOG = [
584
574
  surfaces: ['floor'],
585
575
  description: 'Parquet wood finish',
586
576
  previewThumbnailUrl: '/material/wood/woodparquet_121/woodparquet_121_thumb.webp',
577
+ previewColor: '#8f7247',
587
578
  preset: {
588
579
  maps: {
589
580
  albedoMap: '/material/wood/woodparquet_121/woodparquet_121_basecolor_512.ktx2',
@@ -622,6 +613,7 @@ export const MATERIAL_CATALOG = [
622
613
  surfaces: ['floor'],
623
614
  description: 'Parquet wood finish',
624
615
  previewThumbnailUrl: '/material/wood/woodparquet_56/woodparquet_56_thumb.webp',
616
+ previewColor: '#ba8b5d',
625
617
  preset: {
626
618
  maps: {
627
619
  albedoMap: '/material/wood/woodparquet_56/woodparquet_56_basecolor_512.ktx2',
@@ -661,6 +653,7 @@ export const MATERIAL_CATALOG = [
661
653
  surfaces: ['floor'],
662
654
  description: 'Parquet wood finish',
663
655
  previewThumbnailUrl: '/material/wood/woodparquet_65/woodparquet_65_thumb.webp',
656
+ previewColor: '#9f7841',
664
657
  preset: {
665
658
  maps: {
666
659
  albedoMap: '/material/wood/woodparquet_65/woodparquet_65_basecolor_512.ktx2',
@@ -700,6 +693,7 @@ export const MATERIAL_CATALOG = [
700
693
  surfaces: ['floor'],
701
694
  description: 'Parquet wood finish',
702
695
  previewThumbnailUrl: '/material/wood/woodparquet_99/woodparquet_99_thumb.webp',
696
+ previewColor: '#b69573',
703
697
  preset: {
704
698
  maps: {
705
699
  albedoMap: '/material/wood/woodparquet_99/woodparquet_99_basecolor_512.ktx2',
@@ -739,6 +733,7 @@ export const MATERIAL_CATALOG = [
739
733
  surfaces: ['floor', 'wall'],
740
734
  description: 'Wood plank finish',
741
735
  previewThumbnailUrl: '/material/wood/woodplank_19/woodplank_19_thumb.webp',
736
+ previewColor: '#8f7b5f',
742
737
  preset: {
743
738
  maps: {
744
739
  albedoMap: '/material/wood/woodplank_19/woodplank_19_basecolor_512.ktx2',
@@ -777,6 +772,7 @@ export const MATERIAL_CATALOG = [
777
772
  surfaces: ['floor', 'wall'],
778
773
  description: 'Wood plank finish',
779
774
  previewThumbnailUrl: '/material/wood/woodplank_48/woodplank_48_thumb.webp',
775
+ previewColor: '#89664d',
780
776
  preset: {
781
777
  maps: {
782
778
  albedoMap: '/material/wood/woodplank_48/woodplank_48_basecolor_512.ktx2',
@@ -815,6 +811,7 @@ export const MATERIAL_CATALOG = [
815
811
  surfaces: ['floor'],
816
812
  description: 'Floor tile finish',
817
813
  previewThumbnailUrl: '/material/flooring/tile_quarry/tile_quarry_thumb.webp',
814
+ previewColor: '#484946',
818
815
  preset: {
819
816
  maps: {
820
817
  albedoMap: '/material/flooring/tile_quarry/tile_quarry_basecolor_512.ktx2',
@@ -853,6 +850,7 @@ export const MATERIAL_CATALOG = [
853
850
  surfaces: ['wall', 'floor', 'outdoor'],
854
851
  description: 'Brick finish',
855
852
  previewThumbnailUrl: '/material/flooring/brick_wall_rustic/brick_wall_rustic_thumb.webp',
853
+ previewColor: '#9b6f57',
856
854
  preset: {
857
855
  maps: {
858
856
  albedoMap: '/material/flooring/brick_wall_rustic/brick_wall_rustic_basecolor_512.ktx2',
@@ -892,6 +890,7 @@ export const MATERIAL_CATALOG = [
892
890
  surfaces: ['wall', 'floor', 'outdoor'],
893
891
  description: 'Brick finish',
894
892
  previewThumbnailUrl: '/material/flooring/brick_wall_aged/brick_wall_aged_thumb.webp',
893
+ previewColor: '#be9877',
895
894
  preset: {
896
895
  maps: {
897
896
  albedoMap: '/material/flooring/brick_wall_aged/brick_wall_aged_basecolor_512.ktx2',
@@ -931,6 +930,7 @@ export const MATERIAL_CATALOG = [
931
930
  surfaces: ['wall', 'floor', 'outdoor'],
932
931
  description: 'Brick finish',
933
932
  previewThumbnailUrl: '/material/flooring/brick_wall_weathered/brick_wall_weathered_thumb.webp',
933
+ previewColor: '#86513c',
934
934
  preset: {
935
935
  maps: {
936
936
  albedoMap: '/material/flooring/brick_wall_weathered/brick_wall_weathered_basecolor_512.ktx2',
@@ -969,6 +969,7 @@ export const MATERIAL_CATALOG = [
969
969
  surfaces: ['wall', 'furniture'],
970
970
  description: 'Panel finish',
971
971
  previewThumbnailUrl: '/material/flooring/garage_panel/garage_panel_thumb.webp',
972
+ previewColor: '#d7dad7',
972
973
  preset: {
973
974
  maps: {
974
975
  albedoMap: '/material/flooring/garage_panel/garage_panel_basecolor_512.ktx2',
@@ -1006,6 +1007,7 @@ export const MATERIAL_CATALOG = [
1006
1007
  surfaces: ['floor', 'wall'],
1007
1008
  description: 'Stone flooring finish',
1008
1009
  previewThumbnailUrl: '/material/flooring/green_labradorite/green_labradorite_thumb.webp',
1010
+ previewColor: '#313828',
1009
1011
  preset: {
1010
1012
  maps: {
1011
1013
  albedoMap: '/material/flooring/green_labradorite/green_labradorite_basecolor_512.ktx2',
@@ -1043,6 +1045,7 @@ export const MATERIAL_CATALOG = [
1043
1045
  surfaces: ['outdoor', 'floor'],
1044
1046
  description: 'Ground surface finish',
1045
1047
  previewThumbnailUrl: '/material/flooring/ground_earth/ground_earth_thumb.webp',
1048
+ previewColor: '#716c62',
1046
1049
  preset: {
1047
1050
  maps: {
1048
1051
  albedoMap: '/material/flooring/ground_earth/ground_earth_basecolor_512.ktx2',
@@ -1082,6 +1085,7 @@ export const MATERIAL_CATALOG = [
1082
1085
  surfaces: ['floor', 'outdoor'],
1083
1086
  description: 'Pool tile finish',
1084
1087
  previewThumbnailUrl: '/material/flooring/pool_tiles/pool_tiles_thumb.webp',
1088
+ previewColor: '#79b4ce',
1085
1089
  preset: {
1086
1090
  maps: {
1087
1091
  albedoMap: '/material/flooring/pool_tiles/pool_tiles_basecolor_512.ktx2',
@@ -1119,6 +1123,7 @@ export const MATERIAL_CATALOG = [
1119
1123
  surfaces: ['floor'],
1120
1124
  description: 'Tile flooring finish',
1121
1125
  previewThumbnailUrl: '/material/flooring/tiles_checker/tiles_checker_thumb.webp',
1126
+ previewColor: '#bab4b0',
1122
1127
  preset: {
1123
1128
  maps: {
1124
1129
  albedoMap: '/material/flooring/tiles_checker/tiles_checker_basecolor_512.ktx2',
@@ -1156,6 +1161,7 @@ export const MATERIAL_CATALOG = [
1156
1161
  surfaces: ['floor'],
1157
1162
  description: 'Tile flooring finish',
1158
1163
  previewThumbnailUrl: '/material/flooring/tiles_grid/tiles_grid_thumb.webp',
1164
+ previewColor: '#828282',
1159
1165
  preset: {
1160
1166
  maps: {
1161
1167
  albedoMap: '/material/flooring/tiles_grid/tiles_grid_basecolor_512.ktx2',
@@ -1193,6 +1199,7 @@ export const MATERIAL_CATALOG = [
1193
1199
  surfaces: ['wall', 'floor', 'outdoor'],
1194
1200
  description: 'Stone finish',
1195
1201
  previewThumbnailUrl: '/material/flooring/stone_wall/stone_wall_thumb.webp',
1202
+ previewColor: '#b2845c',
1196
1203
  preset: {
1197
1204
  maps: {
1198
1205
  albedoMap: '/material/flooring/stone_wall/stone_wall_basecolor_512.ktx2',
@@ -1230,6 +1237,7 @@ export const MATERIAL_CATALOG = [
1230
1237
  surfaces: ['floor'],
1231
1238
  description: 'Wood-look ceramic flooring finish',
1232
1239
  previewThumbnailUrl: '/material/flooring/wooden_ceramic_3/wooden_ceramic_3_thumb.webp',
1240
+ previewColor: '#977459',
1233
1241
  preset: {
1234
1242
  maps: {
1235
1243
  albedoMap: '/material/flooring/wooden_ceramic_3/wooden_ceramic_3_basecolor_512.ktx2',
@@ -1267,6 +1275,7 @@ export const MATERIAL_CATALOG = [
1267
1275
  surfaces: ['floor', 'wall'],
1268
1276
  description: 'Ceramic flooring finish',
1269
1277
  previewThumbnailUrl: '/material/flooring/ceramic_mosaic/ceramic_mosaic_thumb.webp',
1278
+ previewColor: '#b9b6ae',
1270
1279
  preset: {
1271
1280
  maps: {
1272
1281
  albedoMap: '/material/flooring/ceramic_mosaic/ceramic_mosaic_basecolor_512.ktx2',
@@ -1306,6 +1315,7 @@ export const MATERIAL_CATALOG = [
1306
1315
  surfaces: ['floor', 'wall'],
1307
1316
  description: 'Terrazzo flooring finish',
1308
1317
  previewThumbnailUrl: '/material/flooring/terrazzo/terrazzo_thumb.webp',
1318
+ previewColor: '#939e9f',
1309
1319
  preset: {
1310
1320
  maps: {
1311
1321
  albedoMap: '/material/flooring/terrazzo/terrazzo_basecolor_512.ktx2',
@@ -1344,6 +1354,7 @@ export const MATERIAL_CATALOG = [
1344
1354
  surfaces: ['floor', 'wall'],
1345
1355
  description: 'Floor tile finish',
1346
1356
  previewThumbnailUrl: '/material/flooring/tile_stone/tile_stone_thumb.webp',
1357
+ previewColor: '#d1d0c9',
1347
1358
  preset: {
1348
1359
  maps: {
1349
1360
  albedoMap: '/material/flooring/tile_stone/tile_stone_basecolor_512.ktx2',
@@ -1382,6 +1393,7 @@ export const MATERIAL_CATALOG = [
1382
1393
  surfaces: ['floor'],
1383
1394
  description: 'Floor tile finish',
1384
1395
  previewThumbnailUrl: '/material/flooring/tile_terracotta/tile_terracotta_thumb.webp',
1396
+ previewColor: '#6e6b65',
1385
1397
  preset: {
1386
1398
  maps: {
1387
1399
  albedoMap: '/material/flooring/tile_terracotta/tile_terracotta_basecolor_512.ktx2',
@@ -1420,6 +1432,7 @@ export const MATERIAL_CATALOG = [
1420
1432
  surfaces: ['floor', 'wall'],
1421
1433
  description: 'Green quartzite flooring finish',
1422
1434
  previewThumbnailUrl: '/material/flooring/green_glass_quartzite/green_glass_quartzite_thumb.webp',
1435
+ previewColor: '#5d6957',
1423
1436
  preset: {
1424
1437
  maps: {
1425
1438
  albedoMap: '/material/flooring/green_glass_quartzite/green_glass_quartzite_basecolor_512.ktx2',
@@ -1457,6 +1470,7 @@ export const MATERIAL_CATALOG = [
1457
1470
  surfaces: ['floor'],
1458
1471
  description: 'Dark ceramic flooring finish',
1459
1472
  previewThumbnailUrl: '/material/flooring/dark_ceramic_grunge/dark_ceramic_grunge_thumb.webp',
1473
+ previewColor: '#535351',
1460
1474
  preset: {
1461
1475
  maps: {
1462
1476
  albedoMap: '/material/flooring/dark_ceramic_grunge/dark_ceramic_grunge_basecolor_512.ktx2',
@@ -1496,6 +1510,7 @@ export const MATERIAL_CATALOG = [
1496
1510
  surfaces: ['floor'],
1497
1511
  description: 'Light ceramic flooring finish',
1498
1512
  previewThumbnailUrl: '/material/flooring/light_ceramic_grunge/light_ceramic_grunge_thumb.webp',
1513
+ previewColor: '#9c9b95',
1499
1514
  preset: {
1500
1515
  maps: {
1501
1516
  albedoMap: '/material/flooring/light_ceramic_grunge/light_ceramic_grunge_basecolor_512.ktx2',
@@ -1535,6 +1550,7 @@ export const MATERIAL_CATALOG = [
1535
1550
  surfaces: ['floor', 'wall'],
1536
1551
  description: 'White marble flooring finish',
1537
1552
  previewThumbnailUrl: '/material/flooring/statuaretto/statuaretto_thumb.webp',
1553
+ previewColor: '#bcbec2',
1538
1554
  preset: {
1539
1555
  maps: {
1540
1556
  albedoMap: '/material/flooring/statuaretto/statuaretto_basecolor_512.ktx2',
@@ -1572,6 +1588,7 @@ export const MATERIAL_CATALOG = [
1572
1588
  surfaces: ['floor', 'wall'],
1573
1589
  description: 'Floor tile finish',
1574
1590
  previewThumbnailUrl: '/material/flooring/tile_mosaic/tile_mosaic_thumb.webp',
1591
+ previewColor: '#d1ccbe',
1575
1592
  preset: {
1576
1593
  maps: {
1577
1594
  albedoMap: '/material/flooring/tile_mosaic/tile_mosaic_basecolor_512.ktx2',
@@ -1611,6 +1628,7 @@ export const MATERIAL_CATALOG = [
1611
1628
  surfaces: ['floor', 'wall'],
1612
1629
  description: 'Floor tile finish',
1613
1630
  previewThumbnailUrl: '/material/flooring/tile_pattern/tile_pattern_thumb.webp',
1631
+ previewColor: '#999287',
1614
1632
  preset: {
1615
1633
  maps: {
1616
1634
  albedoMap: '/material/flooring/tile_pattern/tile_pattern_basecolor_512.ktx2',
@@ -1650,6 +1668,7 @@ export const MATERIAL_CATALOG = [
1650
1668
  surfaces: ['floor'],
1651
1669
  description: 'Wood-look ceramic flooring finish',
1652
1670
  previewThumbnailUrl: '/material/flooring/wooden_ceramic_2/wooden_ceramic_2_thumb.webp',
1671
+ previewColor: '#786250',
1653
1672
  preset: {
1654
1673
  maps: {
1655
1674
  albedoMap: '/material/flooring/wooden_ceramic_2/wooden_ceramic_2_basecolor_512.ktx2',
@@ -1687,6 +1706,7 @@ export const MATERIAL_CATALOG = [
1687
1706
  surfaces: ['floor'],
1688
1707
  description: 'Wood parquet flooring finish',
1689
1708
  previewThumbnailUrl: '/material/flooring/woodparquet/woodparquet_thumb.webp',
1709
+ previewColor: '#bea27e',
1690
1710
  preset: {
1691
1711
  maps: {
1692
1712
  albedoMap: '/material/flooring/woodparquet/woodparquet_basecolor_512.ktx2',
@@ -1726,6 +1746,7 @@ export const MATERIAL_CATALOG = [
1726
1746
  surfaces: ['roof'],
1727
1747
  description: 'Classic roof shingle finish',
1728
1748
  previewThumbnailUrl: '/material/roofing/roof_shingles_classic/roof_shingles_classic_thumb.webp',
1749
+ previewColor: '#9e5b46',
1729
1750
  preset: {
1730
1751
  maps: {
1731
1752
  albedoMap: '/material/roofing/roof_shingles_classic/roof_shingles_classic_basecolor_512.ktx2',
@@ -1765,6 +1786,7 @@ export const MATERIAL_CATALOG = [
1765
1786
  surfaces: ['roof'],
1766
1787
  description: 'Clay roof tile finish',
1767
1788
  previewThumbnailUrl: '/material/roofing/roof_tiles_clay/roof_tiles_clay_thumb.webp',
1789
+ previewColor: '#765241',
1768
1790
  preset: {
1769
1791
  maps: {
1770
1792
  albedoMap: '/material/roofing/roof_tiles_clay/roof_tiles_clay_basecolor_512.ktx2',
@@ -1804,6 +1826,7 @@ export const MATERIAL_CATALOG = [
1804
1826
  surfaces: ['roof'],
1805
1827
  description: 'Terracotta roof tile finish',
1806
1828
  previewThumbnailUrl: '/material/roofing/roof_tiles_terracotta/roof_tiles_terracotta_thumb.webp',
1829
+ previewColor: '#494b4d',
1807
1830
  preset: {
1808
1831
  maps: {
1809
1832
  albedoMap: '/material/roofing/roof_tiles_terracotta/roof_tiles_terracotta_basecolor_512.ktx2',
@@ -1836,6 +1859,46 @@ export const MATERIAL_CATALOG = [
1836
1859
  },
1837
1860
  },
1838
1861
  },
1862
+ {
1863
+ id: 'roof-greyshingles',
1864
+ label: 'Grey Shingles',
1865
+ category: 'roofing',
1866
+ surfaces: ['roof'],
1867
+ description: 'Grey composition shingle finish',
1868
+ previewThumbnailUrl: '/material/roofing/roof_shingles_grey/roof_shingles_grey_thumb.webp',
1869
+ previewColor: '#505050',
1870
+ preset: {
1871
+ maps: {
1872
+ albedoMap: '/material/roofing/roof_shingles_grey/roof_shingles_grey_basecolor_512.webp',
1873
+ aoMap: '/material/roofing/roof_shingles_classic/roof_shingles_classic_ao_512.ktx2',
1874
+ metalnessMap: '/material/roofing/roof_shingles_classic/roof_shingles_classic_metallic_512.ktx2',
1875
+ normalMap: '/material/roofing/roof_shingles_classic/roof_shingles_classic_normal_512.ktx2',
1876
+ roughnessMap: '/material/roofing/roof_shingles_classic/roof_shingles_classic_roughness_512.ktx2',
1877
+ },
1878
+ mapProperties: {
1879
+ color: '#ffffff',
1880
+ roughness: 1,
1881
+ metalness: 0.1,
1882
+ repeatX: 1,
1883
+ repeatY: 1,
1884
+ rotation: 0,
1885
+ wrapS: 'Repeat',
1886
+ wrapT: 'Repeat',
1887
+ normalScaleX: 1,
1888
+ normalScaleY: 1,
1889
+ emissiveIntensity: 1,
1890
+ displacementScale: 0,
1891
+ transparent: false,
1892
+ flipY: false,
1893
+ bumpScale: 1,
1894
+ emissiveColor: '#000000',
1895
+ aoMapIntensity: 1,
1896
+ side: 0,
1897
+ opacity: 1,
1898
+ lightMapIntensity: 1,
1899
+ },
1900
+ },
1901
+ },
1839
1902
  {
1840
1903
  id: 'roof-weatheredshingles',
1841
1904
  label: 'Weathered Shingles',
@@ -1843,6 +1906,7 @@ export const MATERIAL_CATALOG = [
1843
1906
  surfaces: ['roof'],
1844
1907
  description: 'Weathered roof shingle finish',
1845
1908
  previewThumbnailUrl: '/material/roofing/roof_shingles_weathered/roof_shingles_weathered_thumb.webp',
1909
+ previewColor: '#a15e49',
1846
1910
  preset: {
1847
1911
  maps: {
1848
1912
  albedoMap: '/material/roofing/roof_shingles_weathered/roof_shingles_weathered_basecolor_512.ktx2',
@@ -3391,6 +3455,7 @@ export const MATERIAL_CATALOG = [
3391
3455
  surfaces: ['furniture', 'wall'],
3392
3456
  description: 'Natural linen weave',
3393
3457
  previewThumbnailUrl: '/material/fabric/linen_hikari_fabric/linen_hikari_fabric_thumb.webp',
3458
+ previewColor: '#aaa49f',
3394
3459
  preset: {
3395
3460
  maps: {
3396
3461
  albedoMap: '/material/fabric/linen_hikari_fabric/linen_hikari_fabric_basecolor_512.ktx2',
@@ -3427,6 +3492,7 @@ export const MATERIAL_CATALOG = [
3427
3492
  surfaces: ['furniture', 'wall'],
3428
3493
  description: 'Plain cotton weave',
3429
3494
  previewThumbnailUrl: '/material/fabric/blue_cotton/blue_cotton_thumb.webp',
3495
+ previewColor: '#528bc1',
3430
3496
  preset: {
3431
3497
  maps: {
3432
3498
  albedoMap: '/material/fabric/blue_cotton/blue_cotton_basecolor_512.ktx2',
@@ -3465,6 +3531,7 @@ export const MATERIAL_CATALOG = [
3465
3531
  surfaces: ['furniture'],
3466
3532
  description: 'Velvet with a soft sheen',
3467
3533
  previewThumbnailUrl: '/material/fabric/red_velvet/red_velvet_thumb.webp',
3534
+ previewColor: '#781113',
3468
3535
  preset: {
3469
3536
  maps: {
3470
3537
  albedoMap: '/material/fabric/red_velvet/red_velvet_basecolor_512.ktx2',
@@ -3503,6 +3570,7 @@ export const MATERIAL_CATALOG = [
3503
3570
  surfaces: ['furniture'],
3504
3571
  description: 'Matte wool felt',
3505
3572
  previewThumbnailUrl: '/material/fabric/white_wool/white_wool_thumb.webp',
3573
+ previewColor: '#d2d2d2',
3506
3574
  preset: {
3507
3575
  maps: {
3508
3576
  albedoMap: '/material/fabric/white_wool/white_wool_basecolor_512.ktx2',
@@ -3541,6 +3609,7 @@ export const MATERIAL_CATALOG = [
3541
3609
  surfaces: ['furniture'],
3542
3610
  description: 'Matte suede nap',
3543
3611
  previewThumbnailUrl: '/material/fabric/suede/suede_thumb.webp',
3612
+ previewColor: '#c8be98',
3544
3613
  preset: {
3545
3614
  maps: {
3546
3615
  albedoMap: '/material/fabric/suede/suede_basecolor_512.ktx2',
@@ -3579,6 +3648,7 @@ export const MATERIAL_CATALOG = [
3579
3648
  surfaces: ['furniture'],
3580
3649
  description: 'Looped bouclé upholstery',
3581
3650
  previewThumbnailUrl: '/material/fabric/wool_boucle/wool_boucle_thumb.webp',
3651
+ previewColor: '#776d60',
3582
3652
  preset: {
3583
3653
  maps: {
3584
3654
  albedoMap: '/material/fabric/wool_boucle/wool_boucle_basecolor_512.ktx2',
@@ -3615,6 +3685,7 @@ export const MATERIAL_CATALOG = [
3615
3685
  surfaces: ['furniture'],
3616
3686
  description: 'Smooth black leather',
3617
3687
  previewThumbnailUrl: '/material/leather/black_leather/black_leather_thumb.webp',
3688
+ previewColor: '#2b2b2b',
3618
3689
  preset: {
3619
3690
  maps: {
3620
3691
  albedoMap: '/material/leather/black_leather/black_leather_basecolor_512.ktx2',
@@ -3652,6 +3723,7 @@ export const MATERIAL_CATALOG = [
3652
3723
  surfaces: ['furniture'],
3653
3724
  description: 'Pebbled calf leather',
3654
3725
  previewThumbnailUrl: '/material/leather/calf_leather/calf_leather_thumb.webp',
3726
+ previewColor: '#78411a',
3655
3727
  preset: {
3656
3728
  maps: {
3657
3729
  albedoMap: '/material/leather/calf_leather/calf_leather_basecolor_512.ktx2',
@@ -3690,6 +3762,7 @@ export const MATERIAL_CATALOG = [
3690
3762
  surfaces: ['wall', 'ceiling'],
3691
3763
  description: 'Smooth painted plaster wall',
3692
3764
  previewThumbnailUrl: '/material/concrete/plaster_painted/plaster_painted_thumb.webp',
3765
+ previewColor: '#c8c5bd',
3693
3766
  preset: {
3694
3767
  maps: {
3695
3768
  albedoMap: '/material/concrete/plaster_painted/plaster_painted_basecolor_512.ktx2',
@@ -3728,6 +3801,7 @@ export const MATERIAL_CATALOG = [
3728
3801
  surfaces: ['floor', 'wall'],
3729
3802
  description: 'Polished concrete floor',
3730
3803
  previewThumbnailUrl: '/material/concrete/concrete_polished/concrete_polished_thumb.webp',
3804
+ previewColor: '#6d6b69',
3731
3805
  preset: {
3732
3806
  maps: {
3733
3807
  albedoMap: '/material/concrete/concrete_polished/concrete_polished_basecolor_512.ktx2',
@@ -3765,6 +3839,7 @@ export const MATERIAL_CATALOG = [
3765
3839
  surfaces: ['wall', 'floor', 'outdoor'],
3766
3840
  description: 'Board-formed raw concrete',
3767
3841
  previewThumbnailUrl: '/material/concrete/concrete_raw/concrete_raw_thumb.webp',
3842
+ previewColor: '#a5a5a5',
3768
3843
  preset: {
3769
3844
  maps: {
3770
3845
  albedoMap: '/material/concrete/concrete_raw/concrete_raw_basecolor_512.ktx2',
@@ -3803,6 +3878,7 @@ export const MATERIAL_CATALOG = [
3803
3878
  surfaces: ['wall', 'floor'],
3804
3879
  description: 'Smooth cast concrete plate',
3805
3880
  previewThumbnailUrl: '/material/concrete/concrete_plate/concrete_plate_thumb.webp',
3881
+ previewColor: '#ababab',
3806
3882
  preset: {
3807
3883
  maps: {
3808
3884
  albedoMap: '/material/concrete/concrete_plate/concrete_plate_basecolor_512.ktx2',
@@ -3841,6 +3917,7 @@ export const MATERIAL_CATALOG = [
3841
3917
  surfaces: ['wall', 'outdoor'],
3842
3918
  description: 'Exterior stucco render',
3843
3919
  previewThumbnailUrl: '/material/concrete/white_stucco/white_stucco_thumb.webp',
3920
+ previewColor: '#cccccc',
3844
3921
  preset: {
3845
3922
  maps: {
3846
3923
  albedoMap: '/material/concrete/white_stucco/white_stucco_basecolor_512.ktx2',
@@ -3879,6 +3956,7 @@ export const MATERIAL_CATALOG = [
3879
3956
  surfaces: ['wall', 'ceiling'],
3880
3957
  description: 'Smooth prepared drywall ready for paint',
3881
3958
  previewThumbnailUrl: '/material/concrete/prepared_drywall/prepared_drywall_thumb.webp',
3959
+ previewColor: '#b1b1b1',
3882
3960
  preset: {
3883
3961
  maps: {
3884
3962
  albedoMap: '/material/concrete/prepared_drywall/prepared_drywall_basecolor_512.ktx2',
@@ -3917,6 +3995,7 @@ export const MATERIAL_CATALOG = [
3917
3995
  surfaces: ['furniture', 'wall'],
3918
3996
  description: 'Warm copper',
3919
3997
  previewThumbnailUrl: '/material/metal/copper_metal/copper_metal_thumb.webp',
3998
+ previewColor: '#cb845d',
3920
3999
  preset: {
3921
4000
  maps: {
3922
4001
  albedoMap: '/material/metal/copper_metal/copper_metal_basecolor_512.ktx2',
@@ -3955,6 +4034,7 @@ export const MATERIAL_CATALOG = [
3955
4034
  surfaces: ['furniture', 'wall'],
3956
4035
  description: 'Polished stainless steel',
3957
4036
  previewThumbnailUrl: '/material/metal/polished_metal/polished_metal_thumb.webp',
4037
+ previewColor: '#f2f4f3',
3958
4038
  preset: {
3959
4039
  maps: {
3960
4040
  albedoMap: '/material/metal/polished_metal/polished_metal_basecolor_512.ktx2',
@@ -3994,6 +4074,7 @@ export const MATERIAL_CATALOG = [
3994
4074
  surfaces: ['furniture', 'wall'],
3995
4075
  description: 'Brushed stainless steel',
3996
4076
  previewThumbnailUrl: '/material/metal/stainless_steel_brushed/stainless_steel_brushed_thumb.webp',
4077
+ previewColor: '#636363',
3997
4078
  preset: {
3998
4079
  maps: {
3999
4080
  albedoMap: '/material/metal/stainless_steel_brushed/stainless_steel_brushed_basecolor_512.ktx2',
@@ -4094,6 +4175,503 @@ export const MATERIAL_CATALOG = [
4094
4175
  },
4095
4176
  },
4096
4177
  },
4178
+ /* ── Siding ────────────────────────────────────────────────────────────────
4179
+ * The catalog shipped no siding finish at all — no lap, no clapboard, no
4180
+ * board-and-batten — so imported exterior walls could be color-true only as
4181
+ * flat paint. One white seamless albedo per profile,
4182
+ * tinted per entry via mapProperties.color (same mechanism the flat color
4183
+ * presets use), keeps this to two textures for twelve finishes.
4184
+ */
4185
+ {
4186
+ id: 'siding-lap-white',
4187
+ label: 'Lap siding — white',
4188
+ category: 'wood',
4189
+ surfaces: ['wall', 'outdoor'],
4190
+ description: 'Exterior clapboard lap siding, painted white',
4191
+ previewColor: '#e9e9e9',
4192
+ preset: {
4193
+ maps: {
4194
+ albedoMap: '/material/siding/lap_albedo_512.webp',
4195
+ },
4196
+ mapProperties: {
4197
+ color: '#e9e9e9',
4198
+ roughness: 0.85,
4199
+ metalness: 0,
4200
+ repeatX: 1,
4201
+ repeatY: 1,
4202
+ rotation: 0,
4203
+ wrapS: 'Repeat',
4204
+ wrapT: 'Repeat',
4205
+ normalScaleX: 1,
4206
+ normalScaleY: 1,
4207
+ emissiveIntensity: 1,
4208
+ displacementScale: 0.02,
4209
+ bumpScale: 1,
4210
+ transparent: false,
4211
+ flipY: true,
4212
+ emissiveColor: '#000000',
4213
+ aoMapIntensity: 1,
4214
+ side: 0,
4215
+ opacity: 1,
4216
+ lightMapIntensity: 1,
4217
+ },
4218
+ },
4219
+ },
4220
+ {
4221
+ id: 'siding-lap-greige',
4222
+ label: 'Lap siding — greige',
4223
+ category: 'wood',
4224
+ surfaces: ['wall', 'outdoor'],
4225
+ description: 'Exterior clapboard lap siding, painted greige',
4226
+ previewColor: '#c8c1b8',
4227
+ preset: {
4228
+ maps: {
4229
+ albedoMap: '/material/siding/lap_albedo_512.webp',
4230
+ },
4231
+ mapProperties: {
4232
+ color: '#c8c1b8',
4233
+ roughness: 0.85,
4234
+ metalness: 0,
4235
+ repeatX: 1,
4236
+ repeatY: 1,
4237
+ rotation: 0,
4238
+ wrapS: 'Repeat',
4239
+ wrapT: 'Repeat',
4240
+ normalScaleX: 1,
4241
+ normalScaleY: 1,
4242
+ emissiveIntensity: 1,
4243
+ displacementScale: 0.02,
4244
+ bumpScale: 1,
4245
+ transparent: false,
4246
+ flipY: true,
4247
+ emissiveColor: '#000000',
4248
+ aoMapIntensity: 1,
4249
+ side: 0,
4250
+ opacity: 1,
4251
+ lightMapIntensity: 1,
4252
+ },
4253
+ },
4254
+ },
4255
+ {
4256
+ id: 'siding-lap-gray',
4257
+ label: 'Lap siding — gray',
4258
+ category: 'wood',
4259
+ surfaces: ['wall', 'outdoor'],
4260
+ description: 'Exterior clapboard lap siding, painted gray',
4261
+ previewColor: '#8b8a86',
4262
+ preset: {
4263
+ maps: {
4264
+ albedoMap: '/material/siding/lap_albedo_512.webp',
4265
+ },
4266
+ mapProperties: {
4267
+ color: '#8b8a86',
4268
+ roughness: 0.85,
4269
+ metalness: 0,
4270
+ repeatX: 1,
4271
+ repeatY: 1,
4272
+ rotation: 0,
4273
+ wrapS: 'Repeat',
4274
+ wrapT: 'Repeat',
4275
+ normalScaleX: 1,
4276
+ normalScaleY: 1,
4277
+ emissiveIntensity: 1,
4278
+ displacementScale: 0.02,
4279
+ bumpScale: 1,
4280
+ transparent: false,
4281
+ flipY: true,
4282
+ emissiveColor: '#000000',
4283
+ aoMapIntensity: 1,
4284
+ side: 0,
4285
+ opacity: 1,
4286
+ lightMapIntensity: 1,
4287
+ },
4288
+ },
4289
+ },
4290
+ {
4291
+ id: 'siding-lap-sage',
4292
+ label: 'Lap siding — sage',
4293
+ category: 'wood',
4294
+ surfaces: ['wall', 'outdoor'],
4295
+ description: 'Exterior clapboard lap siding, painted sage',
4296
+ previewColor: '#bcc5b2',
4297
+ preset: {
4298
+ maps: {
4299
+ albedoMap: '/material/siding/lap_albedo_512.webp',
4300
+ },
4301
+ mapProperties: {
4302
+ color: '#bcc5b2',
4303
+ roughness: 0.85,
4304
+ metalness: 0,
4305
+ repeatX: 1,
4306
+ repeatY: 1,
4307
+ rotation: 0,
4308
+ wrapS: 'Repeat',
4309
+ wrapT: 'Repeat',
4310
+ normalScaleX: 1,
4311
+ normalScaleY: 1,
4312
+ emissiveIntensity: 1,
4313
+ displacementScale: 0.02,
4314
+ bumpScale: 1,
4315
+ transparent: false,
4316
+ flipY: true,
4317
+ emissiveColor: '#000000',
4318
+ aoMapIntensity: 1,
4319
+ side: 0,
4320
+ opacity: 1,
4321
+ lightMapIntensity: 1,
4322
+ },
4323
+ },
4324
+ },
4325
+ {
4326
+ id: 'siding-lap-cedar',
4327
+ label: 'Lap siding — cedar',
4328
+ category: 'wood',
4329
+ surfaces: ['wall', 'outdoor'],
4330
+ description: 'Exterior clapboard lap siding, stained cedar',
4331
+ previewColor: '#b5825a',
4332
+ preset: {
4333
+ maps: {
4334
+ albedoMap: '/material/siding/lap_albedo_512.webp',
4335
+ },
4336
+ mapProperties: {
4337
+ color: '#b5825a',
4338
+ roughness: 0.85,
4339
+ metalness: 0,
4340
+ repeatX: 1,
4341
+ repeatY: 1,
4342
+ rotation: 0,
4343
+ wrapS: 'Repeat',
4344
+ wrapT: 'Repeat',
4345
+ normalScaleX: 1,
4346
+ normalScaleY: 1,
4347
+ emissiveIntensity: 1,
4348
+ displacementScale: 0.02,
4349
+ bumpScale: 1,
4350
+ transparent: false,
4351
+ flipY: true,
4352
+ emissiveColor: '#000000',
4353
+ aoMapIntensity: 1,
4354
+ side: 0,
4355
+ opacity: 1,
4356
+ lightMapIntensity: 1,
4357
+ },
4358
+ },
4359
+ },
4360
+ {
4361
+ id: 'siding-lap-forest',
4362
+ label: 'Lap siding — forest',
4363
+ category: 'wood',
4364
+ surfaces: ['wall', 'outdoor'],
4365
+ description: 'Exterior clapboard lap siding, painted forest',
4366
+ previewColor: '#4f6b57',
4367
+ preset: {
4368
+ maps: {
4369
+ albedoMap: '/material/siding/lap_albedo_512.webp',
4370
+ },
4371
+ mapProperties: {
4372
+ color: '#4f6b57',
4373
+ roughness: 0.85,
4374
+ metalness: 0,
4375
+ repeatX: 1,
4376
+ repeatY: 1,
4377
+ rotation: 0,
4378
+ wrapS: 'Repeat',
4379
+ wrapT: 'Repeat',
4380
+ normalScaleX: 1,
4381
+ normalScaleY: 1,
4382
+ emissiveIntensity: 1,
4383
+ displacementScale: 0.02,
4384
+ bumpScale: 1,
4385
+ transparent: false,
4386
+ flipY: true,
4387
+ emissiveColor: '#000000',
4388
+ aoMapIntensity: 1,
4389
+ side: 0,
4390
+ opacity: 1,
4391
+ lightMapIntensity: 1,
4392
+ },
4393
+ },
4394
+ },
4395
+ {
4396
+ id: 'siding-lap-navy',
4397
+ label: 'Lap siding — navy',
4398
+ category: 'wood',
4399
+ surfaces: ['wall', 'outdoor'],
4400
+ description: 'Exterior clapboard lap siding, painted navy',
4401
+ previewColor: '#2f4865',
4402
+ preset: {
4403
+ maps: {
4404
+ albedoMap: '/material/siding/lap_albedo_512.webp',
4405
+ },
4406
+ mapProperties: {
4407
+ color: '#2f4865',
4408
+ roughness: 0.85,
4409
+ metalness: 0,
4410
+ repeatX: 1,
4411
+ repeatY: 1,
4412
+ rotation: 0,
4413
+ wrapS: 'Repeat',
4414
+ wrapT: 'Repeat',
4415
+ normalScaleX: 1,
4416
+ normalScaleY: 1,
4417
+ emissiveIntensity: 1,
4418
+ displacementScale: 0.02,
4419
+ bumpScale: 1,
4420
+ transparent: false,
4421
+ flipY: true,
4422
+ emissiveColor: '#000000',
4423
+ aoMapIntensity: 1,
4424
+ side: 0,
4425
+ opacity: 1,
4426
+ lightMapIntensity: 1,
4427
+ },
4428
+ },
4429
+ },
4430
+ {
4431
+ id: 'siding-lap-yellow',
4432
+ label: 'Lap siding — yellow',
4433
+ category: 'wood',
4434
+ surfaces: ['wall', 'outdoor'],
4435
+ description: 'Exterior clapboard lap siding, painted yellow',
4436
+ previewColor: '#f2e3b3',
4437
+ preset: {
4438
+ maps: {
4439
+ albedoMap: '/material/siding/lap_albedo_512.webp',
4440
+ },
4441
+ mapProperties: {
4442
+ color: '#f2e3b3',
4443
+ roughness: 0.85,
4444
+ metalness: 0,
4445
+ repeatX: 1,
4446
+ repeatY: 1,
4447
+ rotation: 0,
4448
+ wrapS: 'Repeat',
4449
+ wrapT: 'Repeat',
4450
+ normalScaleX: 1,
4451
+ normalScaleY: 1,
4452
+ emissiveIntensity: 1,
4453
+ displacementScale: 0.02,
4454
+ bumpScale: 1,
4455
+ transparent: false,
4456
+ flipY: true,
4457
+ emissiveColor: '#000000',
4458
+ aoMapIntensity: 1,
4459
+ side: 0,
4460
+ opacity: 1,
4461
+ lightMapIntensity: 1,
4462
+ },
4463
+ },
4464
+ },
4465
+ {
4466
+ id: 'siding-lap-nearblack',
4467
+ label: 'Lap siding — nearblack',
4468
+ category: 'wood',
4469
+ surfaces: ['wall', 'outdoor'],
4470
+ description: 'Exterior clapboard lap siding, painted nearblack',
4471
+ previewColor: '#232322',
4472
+ preset: {
4473
+ maps: {
4474
+ albedoMap: '/material/siding/lap_albedo_512.webp',
4475
+ },
4476
+ mapProperties: {
4477
+ color: '#5c5c59',
4478
+ roughness: 0.85,
4479
+ metalness: 0,
4480
+ repeatX: 1,
4481
+ repeatY: 1,
4482
+ rotation: 0,
4483
+ wrapS: 'Repeat',
4484
+ wrapT: 'Repeat',
4485
+ normalScaleX: 1,
4486
+ normalScaleY: 1,
4487
+ emissiveIntensity: 1,
4488
+ displacementScale: 0.02,
4489
+ bumpScale: 1,
4490
+ transparent: false,
4491
+ flipY: true,
4492
+ emissiveColor: '#000000',
4493
+ aoMapIntensity: 1,
4494
+ side: 0,
4495
+ opacity: 1,
4496
+ lightMapIntensity: 1,
4497
+ },
4498
+ },
4499
+ },
4500
+ {
4501
+ id: 'siding-lap-clay',
4502
+ label: 'Lap siding — clay',
4503
+ category: 'wood',
4504
+ surfaces: ['wall', 'outdoor'],
4505
+ description: 'Exterior clapboard lap siding, painted clay',
4506
+ previewColor: '#8f4a2e',
4507
+ preset: {
4508
+ maps: {
4509
+ albedoMap: '/material/siding/lap_albedo_512.webp',
4510
+ },
4511
+ mapProperties: {
4512
+ color: '#8f4a2e',
4513
+ roughness: 0.85,
4514
+ metalness: 0,
4515
+ repeatX: 1,
4516
+ repeatY: 1,
4517
+ rotation: 0,
4518
+ wrapS: 'Repeat',
4519
+ wrapT: 'Repeat',
4520
+ normalScaleX: 1,
4521
+ normalScaleY: 1,
4522
+ emissiveIntensity: 1,
4523
+ displacementScale: 0.02,
4524
+ bumpScale: 1,
4525
+ transparent: false,
4526
+ flipY: true,
4527
+ emissiveColor: '#000000',
4528
+ aoMapIntensity: 1,
4529
+ side: 0,
4530
+ opacity: 1,
4531
+ lightMapIntensity: 1,
4532
+ },
4533
+ },
4534
+ },
4535
+ {
4536
+ id: 'siding-batten-cream',
4537
+ label: 'Board & batten — cream',
4538
+ category: 'wood',
4539
+ surfaces: ['wall', 'outdoor'],
4540
+ description: 'Exterior board-and-batten siding, painted cream',
4541
+ previewColor: '#efe3cc',
4542
+ preset: {
4543
+ maps: {
4544
+ albedoMap: '/material/siding/batten_albedo_512.webp',
4545
+ },
4546
+ mapProperties: {
4547
+ color: '#efe3cc',
4548
+ roughness: 0.85,
4549
+ metalness: 0,
4550
+ repeatX: 1,
4551
+ repeatY: 1,
4552
+ rotation: 0,
4553
+ wrapS: 'Repeat',
4554
+ wrapT: 'Repeat',
4555
+ normalScaleX: 1,
4556
+ normalScaleY: 1,
4557
+ emissiveIntensity: 1,
4558
+ displacementScale: 0.02,
4559
+ bumpScale: 1,
4560
+ transparent: false,
4561
+ flipY: true,
4562
+ emissiveColor: '#000000',
4563
+ aoMapIntensity: 1,
4564
+ side: 0,
4565
+ opacity: 1,
4566
+ lightMapIntensity: 1,
4567
+ },
4568
+ },
4569
+ },
4570
+ {
4571
+ id: 'siding-batten-sand',
4572
+ label: 'Board & batten — sand',
4573
+ category: 'wood',
4574
+ surfaces: ['wall', 'outdoor'],
4575
+ description: 'Exterior board-and-batten siding, painted sand',
4576
+ previewColor: '#ddccae',
4577
+ preset: {
4578
+ maps: {
4579
+ albedoMap: '/material/siding/batten_albedo_512.webp',
4580
+ },
4581
+ mapProperties: {
4582
+ color: '#ddccae',
4583
+ roughness: 0.85,
4584
+ metalness: 0,
4585
+ repeatX: 1,
4586
+ repeatY: 1,
4587
+ rotation: 0,
4588
+ wrapS: 'Repeat',
4589
+ wrapT: 'Repeat',
4590
+ normalScaleX: 1,
4591
+ normalScaleY: 1,
4592
+ emissiveIntensity: 1,
4593
+ displacementScale: 0.02,
4594
+ bumpScale: 1,
4595
+ transparent: false,
4596
+ flipY: true,
4597
+ emissiveColor: '#000000',
4598
+ aoMapIntensity: 1,
4599
+ side: 0,
4600
+ opacity: 1,
4601
+ lightMapIntensity: 1,
4602
+ },
4603
+ },
4604
+ },
4605
+ {
4606
+ id: 'siding-batten-charcoal',
4607
+ label: 'Board & batten — charcoal',
4608
+ category: 'wood',
4609
+ surfaces: ['wall', 'outdoor'],
4610
+ description: 'Exterior board-and-batten siding, painted charcoal',
4611
+ previewColor: '#4e5257',
4612
+ preset: {
4613
+ maps: {
4614
+ albedoMap: '/material/siding/batten_albedo_512.webp',
4615
+ },
4616
+ mapProperties: {
4617
+ color: '#4e5257',
4618
+ roughness: 0.85,
4619
+ metalness: 0,
4620
+ repeatX: 1,
4621
+ repeatY: 1,
4622
+ rotation: 0,
4623
+ wrapS: 'Repeat',
4624
+ wrapT: 'Repeat',
4625
+ normalScaleX: 1,
4626
+ normalScaleY: 1,
4627
+ emissiveIntensity: 1,
4628
+ displacementScale: 0.02,
4629
+ bumpScale: 1,
4630
+ transparent: false,
4631
+ flipY: true,
4632
+ emissiveColor: '#000000',
4633
+ aoMapIntensity: 1,
4634
+ side: 0,
4635
+ opacity: 1,
4636
+ lightMapIntensity: 1,
4637
+ },
4638
+ },
4639
+ },
4640
+ {
4641
+ id: 'siding-batten-olive',
4642
+ label: 'Board & batten — olive',
4643
+ category: 'wood',
4644
+ surfaces: ['wall', 'outdoor'],
4645
+ description: 'Exterior board-and-batten siding, painted olive',
4646
+ previewColor: '#8d9368',
4647
+ preset: {
4648
+ maps: {
4649
+ albedoMap: '/material/siding/batten_albedo_512.webp',
4650
+ },
4651
+ mapProperties: {
4652
+ color: '#8d9368',
4653
+ roughness: 0.85,
4654
+ metalness: 0,
4655
+ repeatX: 1,
4656
+ repeatY: 1,
4657
+ rotation: 0,
4658
+ wrapS: 'Repeat',
4659
+ wrapT: 'Repeat',
4660
+ normalScaleX: 1,
4661
+ normalScaleY: 1,
4662
+ emissiveIntensity: 1,
4663
+ displacementScale: 0.02,
4664
+ bumpScale: 1,
4665
+ transparent: false,
4666
+ flipY: true,
4667
+ emissiveColor: '#000000',
4668
+ aoMapIntensity: 1,
4669
+ side: 0,
4670
+ opacity: 1,
4671
+ lightMapIntensity: 1,
4672
+ },
4673
+ },
4674
+ },
4097
4675
  ];
4098
4676
  const STATIC_CATALOG_IDS = new Set(MATERIAL_CATALOG.map((item) => item.id));
4099
4677
  // Embedder-registered library materials (user/community/workspace). Core stays
@@ -4144,6 +4722,10 @@ export function getMaterialsForCategory(category) {
4144
4722
  }
4145
4723
  return items;
4146
4724
  }
4725
+ /** A community material's id (`mtl_…`, as the host's database mints them), well formed. */
4726
+ export function isCommunityMaterialId(id) {
4727
+ return /^mtl_[\w-]+$/.test(id);
4728
+ }
4147
4729
  export function getCatalogMaterialById(id) {
4148
4730
  if (!id)
4149
4731
  return undefined;
@@ -4180,6 +4762,19 @@ export function parseMaterialRef(ref) {
4180
4762
  return { kind: 'scene', id: scene };
4181
4763
  return null;
4182
4764
  }
4765
+ const MATERIAL_COLOR = /^#(?:[0-9a-f]{3}|[0-9a-f]{6})$/i;
4766
+ /**
4767
+ * A plain CSS hex colour (`#rgb` / `#rrggbb`) stored where a `MaterialRef`
4768
+ * goes, e.g. a slot value: it paints that flat colour, as
4769
+ * `material: { properties: { color } }` does. Lowercased, or null.
4770
+ */
4771
+ export function parseMaterialColor(value) {
4772
+ return typeof value === 'string' && MATERIAL_COLOR.test(value) ? value.toLowerCase() : null;
4773
+ }
4774
+ /** The flat material a plain colour stored as a material ref paints. */
4775
+ export function materialColorPaint(color) {
4776
+ return { properties: MaterialProperties.parse({ color }) };
4777
+ }
4183
4778
  export function getMaterialPresetByRef(materialRef) {
4184
4779
  const materialId = getLibraryMaterialIdFromRef(materialRef);
4185
4780
  if (!materialId)