@pascal-app/nodes 1.0.0-beta.5 → 1.0.0

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 (831) hide show
  1. package/LICENSE +21 -0
  2. package/dist/block/commands.d.ts +68 -0
  3. package/dist/block/commands.d.ts.map +1 -0
  4. package/dist/block/commands.js +1144 -0
  5. package/dist/block/contextual-help.d.ts +3 -0
  6. package/dist/block/contextual-help.d.ts.map +1 -0
  7. package/dist/block/contextual-help.js +38 -0
  8. package/dist/block/definition.d.ts +8 -0
  9. package/dist/block/definition.d.ts.map +1 -0
  10. package/dist/block/definition.js +126 -0
  11. package/dist/block/edit-session.d.ts +16 -0
  12. package/dist/block/edit-session.d.ts.map +1 -0
  13. package/dist/block/edit-session.js +32 -0
  14. package/dist/block/face-host.d.ts +3 -0
  15. package/dist/block/face-host.d.ts.map +1 -0
  16. package/dist/block/face-host.js +178 -0
  17. package/dist/block/floorplan.d.ts +3 -0
  18. package/dist/block/floorplan.d.ts.map +1 -0
  19. package/dist/block/floorplan.js +43 -0
  20. package/dist/block/geometry-snap.d.ts +18 -0
  21. package/dist/block/geometry-snap.d.ts.map +1 -0
  22. package/dist/block/geometry-snap.js +137 -0
  23. package/dist/block/geometry.d.ts +11 -0
  24. package/dist/block/geometry.d.ts.map +1 -0
  25. package/dist/block/geometry.js +146 -0
  26. package/dist/block/gesture-wheel.d.ts +8 -0
  27. package/dist/block/gesture-wheel.d.ts.map +1 -0
  28. package/dist/block/gesture-wheel.js +7 -0
  29. package/dist/block/interaction-sfx.d.ts +3 -0
  30. package/dist/block/interaction-sfx.d.ts.map +1 -0
  31. package/dist/block/interaction-sfx.js +16 -0
  32. package/dist/block/last-operation.d.ts +48 -0
  33. package/dist/block/last-operation.d.ts.map +1 -0
  34. package/dist/block/last-operation.js +120 -0
  35. package/dist/block/loop-cut-interaction.d.ts +5 -0
  36. package/dist/block/loop-cut-interaction.d.ts.map +1 -0
  37. package/dist/block/loop-cut-interaction.js +13 -0
  38. package/dist/block/material-slots.d.ts +61 -0
  39. package/dist/block/material-slots.d.ts.map +1 -0
  40. package/dist/block/material-slots.js +131 -0
  41. package/dist/block/modal-face-operation.d.ts +13 -0
  42. package/dist/block/modal-face-operation.d.ts.map +1 -0
  43. package/dist/block/modal-face-operation.js +40 -0
  44. package/dist/block/modal-session.d.ts +15 -0
  45. package/dist/block/modal-session.d.ts.map +1 -0
  46. package/dist/block/modal-session.js +40 -0
  47. package/dist/block/modal-transform.d.ts +30 -0
  48. package/dist/block/modal-transform.d.ts.map +1 -0
  49. package/dist/block/modal-transform.js +144 -0
  50. package/dist/block/paint.d.ts +3 -0
  51. package/dist/block/paint.d.ts.map +1 -0
  52. package/dist/block/paint.js +136 -0
  53. package/dist/block/panel.d.ts +2 -0
  54. package/dist/block/panel.d.ts.map +1 -0
  55. package/dist/block/panel.js +234 -0
  56. package/dist/block/parametrics.d.ts +4 -0
  57. package/dist/block/parametrics.d.ts.map +1 -0
  58. package/dist/block/parametrics.js +9 -0
  59. package/dist/block/preview.d.ts +6 -0
  60. package/dist/block/preview.d.ts.map +1 -0
  61. package/dist/block/preview.js +46 -0
  62. package/dist/block/rotation-drag.d.ts +5 -0
  63. package/dist/block/rotation-drag.d.ts.map +1 -0
  64. package/dist/block/rotation-drag.js +18 -0
  65. package/dist/block/schema.d.ts +2 -0
  66. package/dist/block/schema.d.ts.map +1 -0
  67. package/dist/block/schema.js +1 -0
  68. package/dist/block/selection-geometry.d.ts +9 -0
  69. package/dist/block/selection-geometry.d.ts.map +1 -0
  70. package/dist/block/selection-geometry.js +31 -0
  71. package/dist/block/selection-model.d.ts +17 -0
  72. package/dist/block/selection-model.d.ts.map +1 -0
  73. package/dist/block/selection-model.js +84 -0
  74. package/dist/block/selection.d.ts +4 -0
  75. package/dist/block/selection.d.ts.map +1 -0
  76. package/dist/block/selection.js +2570 -0
  77. package/dist/block/slots.d.ts +4 -0
  78. package/dist/block/slots.d.ts.map +1 -0
  79. package/dist/block/slots.js +17 -0
  80. package/dist/block/tool.d.ts +3 -0
  81. package/dist/block/tool.d.ts.map +1 -0
  82. package/dist/block/tool.js +174 -0
  83. package/dist/block/toolbar-state.d.ts +46 -0
  84. package/dist/block/toolbar-state.d.ts.map +1 -0
  85. package/dist/block/toolbar-state.js +67 -0
  86. package/dist/block/use-block-face-operation.d.ts +39 -0
  87. package/dist/block/use-block-face-operation.d.ts.map +1 -0
  88. package/dist/block/use-block-face-operation.js +218 -0
  89. package/dist/box-vent/definition.d.ts.map +1 -1
  90. package/dist/box-vent/definition.js +8 -5
  91. package/dist/box-vent/geometry.d.ts +4 -0
  92. package/dist/box-vent/geometry.d.ts.map +1 -1
  93. package/dist/box-vent/geometry.js +76 -44
  94. package/dist/box-vent/paint.d.ts +4 -0
  95. package/dist/box-vent/paint.d.ts.map +1 -0
  96. package/dist/box-vent/paint.js +40 -0
  97. package/dist/box-vent/panel.js +1 -1
  98. package/dist/box-vent/parametrics.js +3 -3
  99. package/dist/box-vent/renderer.d.ts.map +1 -1
  100. package/dist/box-vent/renderer.js +29 -10
  101. package/dist/cabinet/compartment-card.d.ts.map +1 -1
  102. package/dist/cabinet/compartment-card.js +11 -3
  103. package/dist/cabinet/continuous-placement.d.ts +3 -0
  104. package/dist/cabinet/continuous-placement.d.ts.map +1 -1
  105. package/dist/cabinet/continuous-placement.js +6 -0
  106. package/dist/cabinet/definition.d.ts.map +1 -1
  107. package/dist/cabinet/definition.js +400 -54
  108. package/dist/cabinet/floorplan-move.d.ts.map +1 -1
  109. package/dist/cabinet/floorplan-move.js +91 -22
  110. package/dist/cabinet/geometry/fridge.d.ts.map +1 -1
  111. package/dist/cabinet/geometry/fridge.js +25 -1
  112. package/dist/cabinet/geometry/fronts.d.ts +4 -0
  113. package/dist/cabinet/geometry/fronts.d.ts.map +1 -1
  114. package/dist/cabinet/geometry/fronts.js +1 -1
  115. package/dist/cabinet/geometry/run.d.ts.map +1 -1
  116. package/dist/cabinet/geometry/run.js +19 -1
  117. package/dist/cabinet/geometry.d.ts.map +1 -1
  118. package/dist/cabinet/geometry.js +63 -1
  119. package/dist/cabinet/index.d.ts +1 -0
  120. package/dist/cabinet/index.d.ts.map +1 -1
  121. package/dist/cabinet/index.js +1 -0
  122. package/dist/cabinet/insertion.d.ts +19 -0
  123. package/dist/cabinet/insertion.d.ts.map +1 -0
  124. package/dist/cabinet/insertion.js +49 -0
  125. package/dist/cabinet/move-frame.d.ts.map +1 -1
  126. package/dist/cabinet/move-frame.js +68 -2
  127. package/dist/cabinet/panel-context.d.ts +7 -0
  128. package/dist/cabinet/panel-context.d.ts.map +1 -0
  129. package/dist/cabinet/panel-context.js +16 -0
  130. package/dist/cabinet/panel-visibility.d.ts +9 -0
  131. package/dist/cabinet/panel-visibility.d.ts.map +1 -0
  132. package/dist/cabinet/panel-visibility.js +26 -0
  133. package/dist/cabinet/panel.d.ts.map +1 -1
  134. package/dist/cabinet/panel.js +221 -37
  135. package/dist/cabinet/placement-dimensions.d.ts +42 -0
  136. package/dist/cabinet/placement-dimensions.d.ts.map +1 -0
  137. package/dist/cabinet/placement-dimensions.js +227 -0
  138. package/dist/cabinet/placement-snap.d.ts +21 -1
  139. package/dist/cabinet/placement-snap.d.ts.map +1 -1
  140. package/dist/cabinet/placement-snap.js +48 -6
  141. package/dist/cabinet/preset-width-debt.d.ts +7 -0
  142. package/dist/cabinet/preset-width-debt.d.ts.map +1 -0
  143. package/dist/cabinet/preset-width-debt.js +45 -0
  144. package/dist/cabinet/presets.d.ts.map +1 -1
  145. package/dist/cabinet/presets.js +14 -13
  146. package/dist/cabinet/profiles.d.ts +14 -0
  147. package/dist/cabinet/profiles.d.ts.map +1 -0
  148. package/dist/cabinet/profiles.js +30 -0
  149. package/dist/cabinet/quick-actions.d.ts.map +1 -1
  150. package/dist/cabinet/quick-actions.js +8 -24
  151. package/dist/cabinet/reveals.d.ts +37 -0
  152. package/dist/cabinet/reveals.d.ts.map +1 -0
  153. package/dist/cabinet/reveals.js +13 -0
  154. package/dist/cabinet/run-layout.d.ts +90 -4
  155. package/dist/cabinet/run-layout.d.ts.map +1 -1
  156. package/dist/cabinet/run-layout.js +408 -23
  157. package/dist/cabinet/run-ops.d.ts +202 -10
  158. package/dist/cabinet/run-ops.d.ts.map +1 -1
  159. package/dist/cabinet/run-ops.js +520 -33
  160. package/dist/cabinet/run-panel.d.ts +6 -2
  161. package/dist/cabinet/run-panel.d.ts.map +1 -1
  162. package/dist/cabinet/run-panel.js +285 -108
  163. package/dist/cabinet/stack-transitions.d.ts.map +1 -1
  164. package/dist/cabinet/stack-transitions.js +35 -24
  165. package/dist/cabinet/stack.d.ts +169 -1
  166. package/dist/cabinet/stack.d.ts.map +1 -1
  167. package/dist/cabinet/stack.js +57 -18
  168. package/dist/cabinet/tool.d.ts.map +1 -1
  169. package/dist/cabinet/tool.js +615 -91
  170. package/dist/cabinet/validation.d.ts +27 -0
  171. package/dist/cabinet/validation.d.ts.map +1 -0
  172. package/dist/cabinet/validation.js +56 -0
  173. package/dist/cabinet/wall-height-presets.d.ts +12 -0
  174. package/dist/cabinet/wall-height-presets.d.ts.map +1 -0
  175. package/dist/cabinet/wall-height-presets.js +15 -0
  176. package/dist/cabinet/wall-snap.d.ts +27 -3
  177. package/dist/cabinet/wall-snap.d.ts.map +1 -1
  178. package/dist/cabinet/wall-snap.js +278 -62
  179. package/dist/cabinet/widths.d.ts +10 -0
  180. package/dist/cabinet/widths.d.ts.map +1 -0
  181. package/dist/cabinet/widths.js +13 -0
  182. package/dist/ceiling/definition.d.ts.map +1 -1
  183. package/dist/ceiling/definition.js +7 -1
  184. package/dist/ceiling/floorplan-affordances.d.ts +8 -8
  185. package/dist/ceiling/materials.d.ts.map +1 -1
  186. package/dist/ceiling/materials.js +0 -1
  187. package/dist/ceiling/panel.js +1 -1
  188. package/dist/ceiling/parametrics.js +1 -1
  189. package/dist/chimney/definition.js +1 -1
  190. package/dist/chimney/panel.js +1 -1
  191. package/dist/chimney/parametrics.js +3 -3
  192. package/dist/column/definition.d.ts.map +1 -1
  193. package/dist/column/definition.js +22 -4
  194. package/dist/column/panel.d.ts.map +1 -1
  195. package/dist/column/panel.js +37 -7
  196. package/dist/column/parametrics.d.ts.map +1 -1
  197. package/dist/column/parametrics.js +5 -3
  198. package/dist/column/tool.d.ts.map +1 -1
  199. package/dist/column/tool.js +50 -14
  200. package/dist/cupola/definition.d.ts.map +1 -1
  201. package/dist/cupola/definition.js +15 -6
  202. package/dist/cupola/geometry.d.ts +6 -0
  203. package/dist/cupola/geometry.d.ts.map +1 -1
  204. package/dist/cupola/geometry.js +60 -13
  205. package/dist/cupola/paint.d.ts +4 -0
  206. package/dist/cupola/paint.d.ts.map +1 -0
  207. package/dist/cupola/paint.js +39 -0
  208. package/dist/cupola/panel.js +1 -1
  209. package/dist/cupola/parametrics.js +3 -3
  210. package/dist/cupola/renderer.d.ts.map +1 -1
  211. package/dist/cupola/renderer.js +27 -8
  212. package/dist/door/floorplan-move.d.ts.map +1 -1
  213. package/dist/door/floorplan-move.js +1 -1
  214. package/dist/door/move-tool.d.ts.map +1 -1
  215. package/dist/door/move-tool.js +86 -32
  216. package/dist/door/panel.d.ts.map +1 -1
  217. package/dist/door/panel.js +1 -1
  218. package/dist/door/parametrics.js +2 -2
  219. package/dist/door/tool.d.ts.map +1 -1
  220. package/dist/door/tool.js +16 -4
  221. package/dist/dormer/csg-geometry.d.ts +6 -42
  222. package/dist/dormer/csg-geometry.d.ts.map +1 -1
  223. package/dist/dormer/csg-geometry.js +38 -209
  224. package/dist/dormer/definition.d.ts +4 -12
  225. package/dist/dormer/definition.d.ts.map +1 -1
  226. package/dist/dormer/definition.js +18 -193
  227. package/dist/dormer/floorplan.d.ts +3 -3
  228. package/dist/dormer/floorplan.d.ts.map +1 -1
  229. package/dist/dormer/floorplan.js +6 -17
  230. package/dist/dormer/geometry.d.ts +5 -24
  231. package/dist/dormer/geometry.d.ts.map +1 -1
  232. package/dist/dormer/geometry.js +64 -41
  233. package/dist/dormer/index.d.ts +1 -1
  234. package/dist/dormer/index.d.ts.map +1 -1
  235. package/dist/dormer/index.js +1 -1
  236. package/dist/dormer/move-tool.d.ts.map +1 -1
  237. package/dist/dormer/move-tool.js +31 -3
  238. package/dist/dormer/panel-windows-section.d.ts +9 -0
  239. package/dist/dormer/panel-windows-section.d.ts.map +1 -0
  240. package/dist/dormer/panel-windows-section.js +7 -0
  241. package/dist/dormer/panel.d.ts.map +1 -1
  242. package/dist/dormer/panel.js +100 -18
  243. package/dist/dormer/parametrics.d.ts.map +1 -1
  244. package/dist/dormer/parametrics.js +8 -77
  245. package/dist/dormer/preview.d.ts.map +1 -1
  246. package/dist/dormer/preview.js +9 -1
  247. package/dist/dormer/renderer.d.ts.map +1 -1
  248. package/dist/dormer/renderer.js +24 -26
  249. package/dist/dormer/tool.d.ts.map +1 -1
  250. package/dist/dormer/tool.js +3 -1
  251. package/dist/dormer/window-layout.d.ts +15 -0
  252. package/dist/dormer/window-layout.d.ts.map +1 -0
  253. package/dist/dormer/window-layout.js +59 -0
  254. package/dist/downspout/definition.d.ts.map +1 -1
  255. package/dist/downspout/definition.js +17 -4
  256. package/dist/downspout/geometry.d.ts.map +1 -1
  257. package/dist/downspout/geometry.js +10 -0
  258. package/dist/downspout/inspector-editors.d.ts.map +1 -1
  259. package/dist/downspout/inspector-editors.js +9 -1
  260. package/dist/downspout/parametrics.d.ts.map +1 -1
  261. package/dist/downspout/parametrics.js +2 -1
  262. package/dist/downspout/renderer.d.ts.map +1 -1
  263. package/dist/downspout/renderer.js +19 -3
  264. package/dist/downspout/system.d.ts +7 -0
  265. package/dist/downspout/system.d.ts.map +1 -0
  266. package/dist/downspout/system.js +114 -0
  267. package/dist/duct-fitting/accessory-geometry.d.ts +4 -0
  268. package/dist/duct-fitting/accessory-geometry.d.ts.map +1 -0
  269. package/dist/duct-fitting/accessory-geometry.js +47 -0
  270. package/dist/duct-fitting/definition.d.ts.map +1 -1
  271. package/dist/duct-fitting/definition.js +11 -1
  272. package/dist/duct-fitting/floorplan.d.ts.map +1 -1
  273. package/dist/duct-fitting/floorplan.js +8 -0
  274. package/dist/duct-fitting/geometry.d.ts.map +1 -1
  275. package/dist/duct-fitting/geometry.js +52 -38
  276. package/dist/duct-fitting/parametrics.d.ts.map +1 -1
  277. package/dist/duct-fitting/parametrics.js +78 -15
  278. package/dist/duct-fitting/ports.d.ts +1 -0
  279. package/dist/duct-fitting/ports.d.ts.map +1 -1
  280. package/dist/duct-fitting/ports.js +46 -0
  281. package/dist/duct-fitting/tool.d.ts +19 -0
  282. package/dist/duct-fitting/tool.d.ts.map +1 -1
  283. package/dist/duct-fitting/tool.js +126 -34
  284. package/dist/duct-segment/continuation.d.ts +21 -0
  285. package/dist/duct-segment/continuation.d.ts.map +1 -0
  286. package/dist/duct-segment/continuation.js +167 -0
  287. package/dist/duct-segment/definition.d.ts.map +1 -1
  288. package/dist/duct-segment/definition.js +19 -18
  289. package/dist/duct-segment/floorplan.d.ts.map +1 -1
  290. package/dist/duct-segment/floorplan.js +43 -0
  291. package/dist/duct-segment/geometry.d.ts.map +1 -1
  292. package/dist/duct-segment/geometry.js +3 -0
  293. package/dist/duct-segment/move-tool.d.ts.map +1 -1
  294. package/dist/duct-segment/move-tool.js +33 -6
  295. package/dist/duct-segment/parametrics.d.ts.map +1 -1
  296. package/dist/duct-segment/parametrics.js +45 -1
  297. package/dist/duct-segment/selection.d.ts +3 -4
  298. package/dist/duct-segment/selection.d.ts.map +1 -1
  299. package/dist/duct-segment/selection.js +186 -158
  300. package/dist/duct-segment/tool.d.ts +37 -0
  301. package/dist/duct-segment/tool.d.ts.map +1 -1
  302. package/dist/duct-segment/tool.js +305 -678
  303. package/dist/duct-terminal/parametrics.js +2 -2
  304. package/dist/duct-terminal/tool.d.ts.map +1 -1
  305. package/dist/duct-terminal/tool.js +37 -7
  306. package/dist/elevator/panel.d.ts.map +1 -1
  307. package/dist/elevator/panel.js +7 -7
  308. package/dist/elevator/system.d.ts.map +1 -1
  309. package/dist/elevator/system.js +10 -1
  310. package/dist/eyebrow-vent/definition.d.ts.map +1 -1
  311. package/dist/eyebrow-vent/definition.js +8 -5
  312. package/dist/eyebrow-vent/geometry.d.ts +4 -0
  313. package/dist/eyebrow-vent/geometry.d.ts.map +1 -1
  314. package/dist/eyebrow-vent/geometry.js +60 -15
  315. package/dist/eyebrow-vent/paint.d.ts +4 -0
  316. package/dist/eyebrow-vent/paint.d.ts.map +1 -0
  317. package/dist/eyebrow-vent/paint.js +33 -0
  318. package/dist/eyebrow-vent/panel.js +1 -1
  319. package/dist/eyebrow-vent/parametrics.js +3 -3
  320. package/dist/eyebrow-vent/renderer.d.ts.map +1 -1
  321. package/dist/eyebrow-vent/renderer.js +27 -8
  322. package/dist/fence/definition.d.ts.map +1 -1
  323. package/dist/fence/definition.js +2 -1
  324. package/dist/fence/floorplan-affordances.d.ts +1 -0
  325. package/dist/fence/floorplan-affordances.d.ts.map +1 -1
  326. package/dist/fence/floorplan-affordances.js +30 -1
  327. package/dist/fence/floorplan.d.ts.map +1 -1
  328. package/dist/fence/floorplan.js +14 -0
  329. package/dist/fence/parametrics.js +3 -3
  330. package/dist/fence/tool.d.ts.map +1 -1
  331. package/dist/fence/tool.js +47 -20
  332. package/dist/gutter/corner-mitre.d.ts.map +1 -1
  333. package/dist/gutter/corner-mitre.js +47 -7
  334. package/dist/gutter/definition.d.ts.map +1 -1
  335. package/dist/gutter/definition.js +23 -13
  336. package/dist/gutter/eave-align.d.ts.map +1 -1
  337. package/dist/gutter/eave-align.js +10 -0
  338. package/dist/gutter/eave-snap.d.ts +1 -1
  339. package/dist/gutter/eave-snap.d.ts.map +1 -1
  340. package/dist/gutter/eave-snap.js +10 -23
  341. package/dist/gutter/geometry.d.ts.map +1 -1
  342. package/dist/gutter/geometry.js +126 -8
  343. package/dist/gutter/outlet-lookup.d.ts.map +1 -1
  344. package/dist/gutter/outlet-lookup.js +22 -1
  345. package/dist/gutter/paint.d.ts +3 -0
  346. package/dist/gutter/paint.d.ts.map +1 -0
  347. package/dist/gutter/paint.js +6 -0
  348. package/dist/gutter/parametrics.d.ts.map +1 -1
  349. package/dist/gutter/parametrics.js +4 -1
  350. package/dist/gutter/renderer.d.ts.map +1 -1
  351. package/dist/gutter/renderer.js +63 -7
  352. package/dist/gutter/trim-clip.d.ts +3 -0
  353. package/dist/gutter/trim-clip.d.ts.map +1 -0
  354. package/dist/gutter/trim-clip.js +5 -0
  355. package/dist/hvac-equipment/parametrics.js +3 -3
  356. package/dist/hvac-equipment/tool.d.ts.map +1 -1
  357. package/dist/hvac-equipment/tool.js +12 -2
  358. package/dist/index.d.ts +5 -2
  359. package/dist/index.d.ts.map +1 -1
  360. package/dist/index.js +9 -2
  361. package/dist/item/definition.d.ts.map +1 -1
  362. package/dist/item/definition.js +10 -2
  363. package/dist/item/floorplan-move.d.ts.map +1 -1
  364. package/dist/item/floorplan-move.js +20 -1
  365. package/dist/item/floorplan.d.ts.map +1 -1
  366. package/dist/item/floorplan.js +22 -1
  367. package/dist/item/move-tool.d.ts +28 -1
  368. package/dist/item/move-tool.d.ts.map +1 -1
  369. package/dist/item/move-tool.js +14 -2
  370. package/dist/item/renderer.d.ts.map +1 -1
  371. package/dist/item/renderer.js +16 -6
  372. package/dist/item/system.d.ts +5 -0
  373. package/dist/item/system.d.ts.map +1 -1
  374. package/dist/item/system.js +7 -1
  375. package/dist/lean-to-extension/arc.d.ts +14 -0
  376. package/dist/lean-to-extension/arc.d.ts.map +1 -0
  377. package/dist/lean-to-extension/arc.js +56 -0
  378. package/dist/lean-to-extension/assembly.d.ts +61 -0
  379. package/dist/lean-to-extension/assembly.d.ts.map +1 -0
  380. package/dist/lean-to-extension/assembly.js +761 -0
  381. package/dist/lean-to-extension/canopy-joint.d.ts +35 -0
  382. package/dist/lean-to-extension/canopy-joint.d.ts.map +1 -0
  383. package/dist/lean-to-extension/canopy-joint.js +234 -0
  384. package/dist/lean-to-extension/conical-host.d.ts +15 -0
  385. package/dist/lean-to-extension/conical-host.d.ts.map +1 -0
  386. package/dist/lean-to-extension/conical-host.js +113 -0
  387. package/dist/lean-to-extension/corner-joint.d.ts +29 -0
  388. package/dist/lean-to-extension/corner-joint.d.ts.map +1 -0
  389. package/dist/lean-to-extension/corner-joint.js +1202 -0
  390. package/dist/lean-to-extension/definition.d.ts +4 -0
  391. package/dist/lean-to-extension/definition.d.ts.map +1 -0
  392. package/dist/lean-to-extension/definition.js +433 -0
  393. package/dist/lean-to-extension/floorplan-affordances.d.ts +4 -0
  394. package/dist/lean-to-extension/floorplan-affordances.d.ts.map +1 -0
  395. package/dist/lean-to-extension/floorplan-affordances.js +144 -0
  396. package/dist/lean-to-extension/floorplan-move.d.ts +3 -0
  397. package/dist/lean-to-extension/floorplan-move.d.ts.map +1 -0
  398. package/dist/lean-to-extension/floorplan-move.js +157 -0
  399. package/dist/lean-to-extension/floorplan-tool.d.ts +4 -0
  400. package/dist/lean-to-extension/floorplan-tool.d.ts.map +1 -0
  401. package/dist/lean-to-extension/floorplan-tool.js +385 -0
  402. package/dist/lean-to-extension/floorplan.d.ts +3 -0
  403. package/dist/lean-to-extension/floorplan.d.ts.map +1 -0
  404. package/dist/lean-to-extension/floorplan.js +373 -0
  405. package/dist/lean-to-extension/geometry.d.ts +7 -0
  406. package/dist/lean-to-extension/geometry.d.ts.map +1 -0
  407. package/dist/lean-to-extension/geometry.js +662 -0
  408. package/dist/lean-to-extension/index.d.ts +8 -0
  409. package/dist/lean-to-extension/index.d.ts.map +1 -0
  410. package/dist/lean-to-extension/index.js +7 -0
  411. package/dist/lean-to-extension/layout.d.ts +108 -0
  412. package/dist/lean-to-extension/layout.d.ts.map +1 -0
  413. package/dist/lean-to-extension/layout.js +477 -0
  414. package/dist/lean-to-extension/managed-preview.d.ts +3 -0
  415. package/dist/lean-to-extension/managed-preview.d.ts.map +1 -0
  416. package/dist/lean-to-extension/managed-preview.js +93 -0
  417. package/dist/lean-to-extension/move-tool.d.ts +8 -0
  418. package/dist/lean-to-extension/move-tool.d.ts.map +1 -0
  419. package/dist/lean-to-extension/move-tool.js +202 -0
  420. package/dist/lean-to-extension/paint.d.ts +2 -0
  421. package/dist/lean-to-extension/paint.d.ts.map +1 -0
  422. package/dist/lean-to-extension/paint.js +16 -0
  423. package/dist/lean-to-extension/parametrics.d.ts +4 -0
  424. package/dist/lean-to-extension/parametrics.d.ts.map +1 -0
  425. package/dist/lean-to-extension/parametrics.js +570 -0
  426. package/dist/lean-to-extension/placement-scope.d.ts +3 -0
  427. package/dist/lean-to-extension/placement-scope.d.ts.map +1 -0
  428. package/dist/lean-to-extension/placement-scope.js +4 -0
  429. package/dist/lean-to-extension/placement-validation.d.ts +4 -0
  430. package/dist/lean-to-extension/placement-validation.d.ts.map +1 -0
  431. package/dist/lean-to-extension/placement-validation.js +324 -0
  432. package/dist/lean-to-extension/placement.d.ts +59 -0
  433. package/dist/lean-to-extension/placement.d.ts.map +1 -0
  434. package/dist/lean-to-extension/placement.js +331 -0
  435. package/dist/lean-to-extension/plan-footprint.d.ts +10 -0
  436. package/dist/lean-to-extension/plan-footprint.d.ts.map +1 -0
  437. package/dist/lean-to-extension/plan-footprint.js +27 -0
  438. package/dist/lean-to-extension/preview-geometry.d.ts +7 -0
  439. package/dist/lean-to-extension/preview-geometry.d.ts.map +1 -0
  440. package/dist/lean-to-extension/preview-geometry.js +40 -0
  441. package/dist/lean-to-extension/preview.d.ts +7 -0
  442. package/dist/lean-to-extension/preview.d.ts.map +1 -0
  443. package/dist/lean-to-extension/preview.js +20 -0
  444. package/dist/lean-to-extension/renderer.d.ts +6 -0
  445. package/dist/lean-to-extension/renderer.d.ts.map +1 -0
  446. package/dist/lean-to-extension/renderer.js +34 -0
  447. package/dist/lean-to-extension/roof-attachment.d.ts +28 -0
  448. package/dist/lean-to-extension/roof-attachment.d.ts.map +1 -0
  449. package/dist/lean-to-extension/roof-attachment.js +376 -0
  450. package/dist/lean-to-extension/schema.d.ts +2 -0
  451. package/dist/lean-to-extension/schema.d.ts.map +1 -0
  452. package/dist/lean-to-extension/schema.js +1 -0
  453. package/dist/lean-to-extension/slots.d.ts +5 -0
  454. package/dist/lean-to-extension/slots.d.ts.map +1 -0
  455. package/dist/lean-to-extension/slots.js +15 -0
  456. package/dist/lean-to-extension/system.d.ts +7 -0
  457. package/dist/lean-to-extension/system.d.ts.map +1 -0
  458. package/dist/lean-to-extension/system.js +726 -0
  459. package/dist/lean-to-extension/tool.d.ts +3 -0
  460. package/dist/lean-to-extension/tool.d.ts.map +1 -0
  461. package/dist/lean-to-extension/tool.js +580 -0
  462. package/dist/lean-to-extension/wall-target.d.ts +10 -0
  463. package/dist/lean-to-extension/wall-target.d.ts.map +1 -0
  464. package/dist/lean-to-extension/wall-target.js +29 -0
  465. package/dist/lineset/definition.d.ts.map +1 -1
  466. package/dist/lineset/definition.js +1 -0
  467. package/dist/liquid-line/definition.d.ts.map +1 -1
  468. package/dist/liquid-line/definition.js +1 -0
  469. package/dist/pipe-fitting/definition.d.ts.map +1 -1
  470. package/dist/pipe-fitting/definition.js +16 -2
  471. package/dist/pipe-fitting/floorplan.d.ts.map +1 -1
  472. package/dist/pipe-fitting/floorplan.js +4 -0
  473. package/dist/pipe-fitting/geometry.d.ts +3 -5
  474. package/dist/pipe-fitting/geometry.d.ts.map +1 -1
  475. package/dist/pipe-fitting/geometry.js +154 -21
  476. package/dist/pipe-fitting/inline-insertion.d.ts +13 -0
  477. package/dist/pipe-fitting/inline-insertion.d.ts.map +1 -0
  478. package/dist/pipe-fitting/inline-insertion.js +96 -0
  479. package/dist/pipe-fitting/parametrics.d.ts.map +1 -1
  480. package/dist/pipe-fitting/parametrics.js +17 -3
  481. package/dist/pipe-fitting/ports.d.ts.map +1 -1
  482. package/dist/pipe-fitting/ports.js +8 -1
  483. package/dist/pipe-fitting/tool.d.ts +26 -0
  484. package/dist/pipe-fitting/tool.d.ts.map +1 -1
  485. package/dist/pipe-fitting/tool.js +182 -37
  486. package/dist/pipe-segment/continuation.d.ts +22 -0
  487. package/dist/pipe-segment/continuation.d.ts.map +1 -0
  488. package/dist/pipe-segment/continuation.js +146 -0
  489. package/dist/pipe-segment/definition.d.ts.map +1 -1
  490. package/dist/pipe-segment/definition.js +23 -7
  491. package/dist/pipe-segment/floorplan.d.ts.map +1 -1
  492. package/dist/pipe-segment/floorplan.js +42 -0
  493. package/dist/pipe-segment/geometry.d.ts +2 -1
  494. package/dist/pipe-segment/geometry.d.ts.map +1 -1
  495. package/dist/pipe-segment/geometry.js +4 -1
  496. package/dist/pipe-segment/move-tool.d.ts.map +1 -1
  497. package/dist/pipe-segment/move-tool.js +25 -5
  498. package/dist/pipe-segment/parametrics.d.ts.map +1 -1
  499. package/dist/pipe-segment/parametrics.js +45 -0
  500. package/dist/pipe-segment/selection.d.ts +3 -4
  501. package/dist/pipe-segment/selection.d.ts.map +1 -1
  502. package/dist/pipe-segment/selection.js +169 -105
  503. package/dist/pipe-segment/slope.d.ts +5 -0
  504. package/dist/pipe-segment/slope.d.ts.map +1 -0
  505. package/dist/pipe-segment/slope.js +10 -0
  506. package/dist/pipe-segment/tool.d.ts.map +1 -1
  507. package/dist/pipe-segment/tool.js +325 -545
  508. package/dist/pipe-trap/tool.d.ts.map +1 -1
  509. package/dist/pipe-trap/tool.js +15 -2
  510. package/dist/ridge-vent/definition.js +1 -1
  511. package/dist/ridge-vent/panel.d.ts.map +1 -1
  512. package/dist/ridge-vent/panel.js +2 -2
  513. package/dist/ridge-vent/parametrics.js +1 -1
  514. package/dist/roof/conical-roof-placement.d.ts +36 -0
  515. package/dist/roof/conical-roof-placement.d.ts.map +1 -0
  516. package/dist/roof/conical-roof-placement.js +134 -0
  517. package/dist/roof/conical-roof.d.ts +3 -0
  518. package/dist/roof/conical-roof.d.ts.map +1 -0
  519. package/dist/roof/conical-roof.js +53 -0
  520. package/dist/roof/definition.d.ts +3 -10
  521. package/dist/roof/definition.d.ts.map +1 -1
  522. package/dist/roof/definition.js +83 -13
  523. package/dist/roof/floorplan.d.ts +3 -10
  524. package/dist/roof/floorplan.d.ts.map +1 -1
  525. package/dist/roof/floorplan.js +139 -165
  526. package/dist/roof/index.d.ts +1 -0
  527. package/dist/roof/index.d.ts.map +1 -1
  528. package/dist/roof/index.js +1 -0
  529. package/dist/roof/panel.d.ts.map +1 -1
  530. package/dist/roof/panel.js +22 -23
  531. package/dist/roof/renderer.d.ts.map +1 -1
  532. package/dist/roof/roof-footprint-source.d.ts +16 -0
  533. package/dist/roof/roof-footprint-source.d.ts.map +1 -0
  534. package/dist/roof/roof-footprint-source.js +14 -0
  535. package/dist/roof/roof-footprint.d.ts +25 -0
  536. package/dist/roof/roof-footprint.d.ts.map +1 -0
  537. package/dist/roof/roof-footprint.js +94 -0
  538. package/dist/roof/roof-placement-mode.d.ts +18 -0
  539. package/dist/roof/roof-placement-mode.d.ts.map +1 -0
  540. package/dist/roof/roof-placement-mode.js +24 -0
  541. package/dist/roof/tool.d.ts +10 -0
  542. package/dist/roof/tool.d.ts.map +1 -0
  543. package/dist/roof/tool.js +922 -0
  544. package/dist/roof-segment/definition.d.ts.map +1 -1
  545. package/dist/roof-segment/definition.js +52 -8
  546. package/dist/roof-segment/floorplan-affordances.d.ts +5 -6
  547. package/dist/roof-segment/floorplan-affordances.d.ts.map +1 -1
  548. package/dist/roof-segment/floorplan-affordances.js +64 -18
  549. package/dist/roof-segment/floorplan.d.ts +3 -2
  550. package/dist/roof-segment/floorplan.d.ts.map +1 -1
  551. package/dist/roof-segment/floorplan.js +95 -46
  552. package/dist/roof-segment/panel.d.ts.map +1 -1
  553. package/dist/roof-segment/panel.js +122 -27
  554. package/dist/scan/definition.d.ts +2 -3
  555. package/dist/scan/definition.d.ts.map +1 -1
  556. package/dist/scan/definition.js +9 -7
  557. package/dist/scan/parametrics.d.ts.map +1 -1
  558. package/dist/scan/parametrics.js +13 -1
  559. package/dist/scan/renderer.d.ts.map +1 -1
  560. package/dist/scan/renderer.js +8 -2
  561. package/dist/shared/accessory-cursor.d.ts +7 -0
  562. package/dist/shared/accessory-cursor.d.ts.map +1 -0
  563. package/dist/shared/accessory-cursor.js +83 -0
  564. package/dist/shared/accessory-floorplan.d.ts +4 -0
  565. package/dist/shared/accessory-floorplan.d.ts.map +1 -0
  566. package/dist/shared/accessory-floorplan.js +51 -0
  567. package/dist/shared/accessory-geometry.d.ts +7 -0
  568. package/dist/shared/accessory-geometry.d.ts.map +1 -0
  569. package/dist/shared/accessory-geometry.js +79 -0
  570. package/dist/shared/accessory-placement.d.ts +10 -0
  571. package/dist/shared/accessory-placement.d.ts.map +1 -0
  572. package/dist/shared/accessory-placement.js +126 -0
  573. package/dist/shared/accessory-snapping.d.ts +5 -0
  574. package/dist/shared/accessory-snapping.d.ts.map +1 -0
  575. package/dist/shared/accessory-snapping.js +40 -0
  576. package/dist/shared/automatic-run-end-cap.d.ts +11 -0
  577. package/dist/shared/automatic-run-end-cap.d.ts.map +1 -0
  578. package/dist/shared/automatic-run-end-cap.js +159 -0
  579. package/dist/shared/block-face-host.d.ts +15 -0
  580. package/dist/shared/block-face-host.d.ts.map +1 -0
  581. package/dist/shared/block-face-host.js +36 -0
  582. package/dist/shared/connection-compatibility.d.ts +8 -0
  583. package/dist/shared/connection-compatibility.d.ts.map +1 -0
  584. package/dist/shared/connection-compatibility.js +28 -0
  585. package/dist/shared/connection-feedback.d.ts +10 -0
  586. package/dist/shared/connection-feedback.d.ts.map +1 -0
  587. package/dist/shared/connection-feedback.js +17 -0
  588. package/dist/shared/distribution-run-contract.d.ts +49 -0
  589. package/dist/shared/distribution-run-contract.d.ts.map +1 -0
  590. package/dist/shared/distribution-run-contract.js +30 -0
  591. package/dist/shared/distribution-run-tool.d.ts +107 -0
  592. package/dist/shared/distribution-run-tool.d.ts.map +1 -0
  593. package/dist/shared/distribution-run-tool.js +941 -0
  594. package/dist/shared/dormer-wall-opening-placement.d.ts +21 -0
  595. package/dist/shared/dormer-wall-opening-placement.d.ts.map +1 -0
  596. package/dist/shared/dormer-wall-opening-placement.js +101 -0
  597. package/dist/shared/duct-adapter.d.ts +10 -0
  598. package/dist/shared/duct-adapter.d.ts.map +1 -0
  599. package/dist/shared/duct-adapter.js +43 -0
  600. package/dist/shared/elbow-branch-continuation.d.ts +20 -0
  601. package/dist/shared/elbow-branch-continuation.d.ts.map +1 -0
  602. package/dist/shared/elbow-branch-continuation.js +200 -0
  603. package/dist/shared/fitting-clearance.d.ts +5 -0
  604. package/dist/shared/fitting-clearance.d.ts.map +1 -0
  605. package/dist/shared/fitting-clearance.js +11 -0
  606. package/dist/shared/fitting-deletion-cleanup.d.ts +14 -0
  607. package/dist/shared/fitting-deletion-cleanup.d.ts.map +1 -0
  608. package/dist/shared/fitting-deletion-cleanup.js +297 -0
  609. package/dist/shared/fitting-surface-support.d.ts +5 -0
  610. package/dist/shared/fitting-surface-support.d.ts.map +1 -0
  611. package/dist/shared/fitting-surface-support.js +42 -0
  612. package/dist/shared/fitting-tool-options.d.ts +4 -0
  613. package/dist/shared/fitting-tool-options.d.ts.map +1 -0
  614. package/dist/shared/fitting-tool-options.js +175 -0
  615. package/dist/shared/floor-placement.d.ts +1 -1
  616. package/dist/shared/floor-placement.d.ts.map +1 -1
  617. package/dist/shared/floor-placement.js +13 -33
  618. package/dist/shared/ghost-materials.d.ts.map +1 -1
  619. package/dist/shared/ghost-materials.js +2 -1
  620. package/dist/shared/lean-to-post-omissions.d.ts +8 -0
  621. package/dist/shared/lean-to-post-omissions.d.ts.map +1 -0
  622. package/dist/shared/lean-to-post-omissions.js +51 -0
  623. package/dist/shared/mep-fitting-actions.d.ts +5 -0
  624. package/dist/shared/mep-fitting-actions.d.ts.map +1 -0
  625. package/dist/shared/mep-fitting-actions.js +16 -0
  626. package/dist/shared/mep-presets.d.ts +11 -0
  627. package/dist/shared/mep-presets.d.ts.map +1 -0
  628. package/dist/shared/mep-presets.js +34 -0
  629. package/dist/shared/node-batch/candidates.d.ts +29 -0
  630. package/dist/shared/node-batch/candidates.d.ts.map +1 -0
  631. package/dist/shared/node-batch/candidates.js +260 -0
  632. package/dist/shared/node-batch/store.d.ts +26 -0
  633. package/dist/shared/node-batch/store.d.ts.map +1 -0
  634. package/dist/shared/node-batch/store.js +319 -0
  635. package/dist/shared/node-batch/system.d.ts +8 -0
  636. package/dist/shared/node-batch/system.d.ts.map +1 -0
  637. package/dist/shared/node-batch/system.js +569 -0
  638. package/dist/shared/node-batch/types.d.ts +99 -0
  639. package/dist/shared/node-batch/types.d.ts.map +1 -0
  640. package/dist/shared/node-batch/types.js +4 -0
  641. package/dist/shared/opening-move-history.d.ts +47 -0
  642. package/dist/shared/opening-move-history.d.ts.map +1 -0
  643. package/dist/shared/opening-move-history.js +18 -0
  644. package/dist/shared/opening-move-wall-gate.d.ts +55 -0
  645. package/dist/shared/opening-move-wall-gate.d.ts.map +1 -0
  646. package/dist/shared/opening-move-wall-gate.js +44 -0
  647. package/dist/shared/path-point-affordance.d.ts +2 -2
  648. package/dist/shared/path-point-affordance.d.ts.map +1 -1
  649. package/dist/shared/path-point-affordance.js +30 -6
  650. package/dist/shared/placeholder-geometry.d.ts.map +1 -1
  651. package/dist/shared/placeholder-geometry.js +4 -0
  652. package/dist/shared/ports.d.ts +20 -3
  653. package/dist/shared/ports.d.ts.map +1 -1
  654. package/dist/shared/ports.js +148 -7
  655. package/dist/shared/primitive-uv.d.ts +17 -0
  656. package/dist/shared/primitive-uv.d.ts.map +1 -0
  657. package/dist/shared/primitive-uv.js +107 -0
  658. package/dist/shared/reducer-size.d.ts +2 -0
  659. package/dist/shared/reducer-size.d.ts.map +1 -0
  660. package/dist/shared/reducer-size.js +12 -0
  661. package/dist/shared/ridge-snap.js +1 -1
  662. package/dist/shared/roof-surface.d.ts.map +1 -1
  663. package/dist/shared/roof-surface.js +17 -2
  664. package/dist/shared/run-cursor.d.ts +22 -0
  665. package/dist/shared/run-cursor.d.ts.map +1 -0
  666. package/dist/shared/run-cursor.js +19 -0
  667. package/dist/shared/run-direction-feedback.d.ts +20 -0
  668. package/dist/shared/run-direction-feedback.d.ts.map +1 -0
  669. package/dist/shared/run-direction-feedback.js +139 -0
  670. package/dist/shared/run-hanger-controls.d.ts +7 -0
  671. package/dist/shared/run-hanger-controls.d.ts.map +1 -0
  672. package/dist/shared/run-hanger-controls.js +44 -0
  673. package/dist/shared/run-hanger-inspector.d.ts +5 -0
  674. package/dist/shared/run-hanger-inspector.d.ts.map +1 -0
  675. package/dist/shared/run-hanger-inspector.js +43 -0
  676. package/dist/shared/run-hanger-mode.d.ts +11 -0
  677. package/dist/shared/run-hanger-mode.d.ts.map +1 -0
  678. package/dist/shared/run-hanger-mode.js +32 -0
  679. package/dist/shared/run-hanger-system.d.ts +3 -0
  680. package/dist/shared/run-hanger-system.d.ts.map +1 -0
  681. package/dist/shared/run-hanger-system.js +39 -0
  682. package/dist/shared/run-hangers.d.ts +25 -0
  683. package/dist/shared/run-hangers.d.ts.map +1 -0
  684. package/dist/shared/run-hangers.js +261 -0
  685. package/dist/shared/run-port-snap.d.ts +11 -0
  686. package/dist/shared/run-port-snap.d.ts.map +1 -0
  687. package/dist/shared/run-port-snap.js +19 -0
  688. package/dist/shared/run-screen-direction.d.ts +5 -0
  689. package/dist/shared/run-screen-direction.d.ts.map +1 -0
  690. package/dist/shared/run-screen-direction.js +24 -0
  691. package/dist/shared/selection-handles.d.ts +4 -0
  692. package/dist/shared/selection-handles.d.ts.map +1 -1
  693. package/dist/shared/selection-handles.js +10 -0
  694. package/dist/shared/slot-paint.d.ts +8 -1
  695. package/dist/shared/slot-paint.d.ts.map +1 -1
  696. package/dist/shared/slot-paint.js +120 -27
  697. package/dist/shared/surface-paint.d.ts +1 -2
  698. package/dist/shared/surface-paint.d.ts.map +1 -1
  699. package/dist/shared/surface-paint.js +9 -20
  700. package/dist/shared/system-check-panel.d.ts +6 -0
  701. package/dist/shared/system-check-panel.d.ts.map +1 -0
  702. package/dist/shared/system-check-panel.js +62 -0
  703. package/dist/shared/system-checks.d.ts +9 -0
  704. package/dist/shared/system-checks.d.ts.map +1 -0
  705. package/dist/shared/system-checks.js +131 -0
  706. package/dist/shared/wall-attach-target.d.ts +14 -2
  707. package/dist/shared/wall-attach-target.d.ts.map +1 -1
  708. package/dist/shared/wall-attach-target.js +108 -4
  709. package/dist/shared/wall-opening-clearance.d.ts +19 -0
  710. package/dist/shared/wall-opening-clearance.d.ts.map +1 -0
  711. package/dist/shared/wall-opening-clearance.js +28 -0
  712. package/dist/shared/wall-run-move.d.ts +17 -0
  713. package/dist/shared/wall-run-move.d.ts.map +1 -0
  714. package/dist/shared/wall-run-move.js +56 -0
  715. package/dist/shelf/parametrics.js +4 -4
  716. package/dist/site/renderer.d.ts.map +1 -1
  717. package/dist/site/renderer.js +40 -28
  718. package/dist/site/terrain-geometry.d.ts +1 -1
  719. package/dist/site/terrain-geometry.d.ts.map +1 -1
  720. package/dist/site/terrain-geometry.js +35 -9
  721. package/dist/site/terrain-mesh.d.ts +5 -0
  722. package/dist/site/terrain-mesh.d.ts.map +1 -1
  723. package/dist/site/terrain-mesh.js +63 -34
  724. package/dist/skylight/definition.js +1 -1
  725. package/dist/skylight/panel.js +1 -1
  726. package/dist/skylight/parametrics.js +2 -2
  727. package/dist/slab/definition.d.ts.map +1 -1
  728. package/dist/slab/definition.js +6 -1
  729. package/dist/slab/dependency-tracker.d.ts +3 -0
  730. package/dist/slab/dependency-tracker.d.ts.map +1 -0
  731. package/dist/slab/dependency-tracker.js +104 -0
  732. package/dist/slab/floorplan-affordances.d.ts +8 -8
  733. package/dist/slab/geometry.d.ts.map +1 -1
  734. package/dist/slab/geometry.js +16 -2
  735. package/dist/slab/panel.js +1 -1
  736. package/dist/slab/parametrics.js +1 -1
  737. package/dist/slab/system.d.ts.map +1 -1
  738. package/dist/slab/system.js +8 -64
  739. package/dist/solar-panel/definition.js +1 -1
  740. package/dist/solar-panel/panel.js +1 -1
  741. package/dist/solar-panel/parametrics.js +2 -2
  742. package/dist/stair/panel.d.ts.map +1 -1
  743. package/dist/stair/panel.js +18 -13
  744. package/dist/stair/stair-type.d.ts +18 -0
  745. package/dist/stair/stair-type.d.ts.map +1 -0
  746. package/dist/stair/stair-type.js +25 -0
  747. package/dist/stair-segment/panel.d.ts.map +1 -1
  748. package/dist/stair-segment/panel.js +44 -5
  749. package/dist/turbine-vent/definition.d.ts.map +1 -1
  750. package/dist/turbine-vent/definition.js +8 -5
  751. package/dist/turbine-vent/geometry.d.ts.map +1 -1
  752. package/dist/turbine-vent/geometry.js +48 -18
  753. package/dist/turbine-vent/paint.d.ts +4 -0
  754. package/dist/turbine-vent/paint.d.ts.map +1 -0
  755. package/dist/turbine-vent/paint.js +35 -0
  756. package/dist/turbine-vent/panel.js +1 -1
  757. package/dist/turbine-vent/parametrics.js +2 -2
  758. package/dist/turbine-vent/renderer.d.ts.map +1 -1
  759. package/dist/turbine-vent/renderer.js +31 -9
  760. package/dist/wall/curve-eligibility.d.ts +3 -0
  761. package/dist/wall/curve-eligibility.d.ts.map +1 -0
  762. package/dist/wall/curve-eligibility.js +10 -0
  763. package/dist/wall/curve-tool.d.ts.map +1 -1
  764. package/dist/wall/curve-tool.js +8 -11
  765. package/dist/wall/definition.d.ts +1 -1
  766. package/dist/wall/definition.d.ts.map +1 -1
  767. package/dist/wall/definition.js +36 -13
  768. package/dist/wall/floorplan-affordances.d.ts +1 -0
  769. package/dist/wall/floorplan-affordances.d.ts.map +1 -1
  770. package/dist/wall/floorplan-affordances.js +46 -7
  771. package/dist/wall/floorplan-move.d.ts +3 -4
  772. package/dist/wall/floorplan-move.d.ts.map +1 -1
  773. package/dist/wall/floorplan-move.js +122 -9
  774. package/dist/wall/floorplan.d.ts.map +1 -1
  775. package/dist/wall/floorplan.js +19 -23
  776. package/dist/wall/move-shared.d.ts.map +1 -1
  777. package/dist/wall/move-shared.js +10 -7
  778. package/dist/wall/paint.d.ts.map +1 -1
  779. package/dist/wall/paint.js +2 -0
  780. package/dist/wall/panel.d.ts.map +1 -1
  781. package/dist/wall/panel.js +10 -17
  782. package/dist/wall/parametrics.js +2 -2
  783. package/dist/wall/pointer-transparency.d.ts +128 -0
  784. package/dist/wall/pointer-transparency.d.ts.map +1 -0
  785. package/dist/wall/pointer-transparency.js +147 -0
  786. package/dist/wall/renderer.d.ts.map +1 -1
  787. package/dist/wall/renderer.js +65 -8
  788. package/dist/wall/selection-hit-owner.d.ts +53 -0
  789. package/dist/wall/selection-hit-owner.d.ts.map +1 -0
  790. package/dist/wall/selection-hit-owner.js +79 -0
  791. package/dist/wall/system.d.ts +2 -0
  792. package/dist/wall/system.d.ts.map +1 -1
  793. package/dist/wall/system.js +66 -25
  794. package/dist/wall/tool.d.ts.map +1 -1
  795. package/dist/wall/tool.js +5 -0
  796. package/dist/wall/treatment-level-data.d.ts +6 -1
  797. package/dist/wall/treatment-level-data.d.ts.map +1 -1
  798. package/dist/wall/treatment-level-data.js +82 -5
  799. package/dist/wall/treatments.d.ts +1 -0
  800. package/dist/wall/treatments.d.ts.map +1 -1
  801. package/dist/wall/treatments.js +5 -0
  802. package/dist/wall/wall-batch-system.d.ts +38 -6
  803. package/dist/wall/wall-batch-system.d.ts.map +1 -1
  804. package/dist/wall/wall-batch-system.js +122 -25
  805. package/dist/wall/wall-batch.js +2 -2
  806. package/dist/window/definition.d.ts +2 -1
  807. package/dist/window/definition.d.ts.map +1 -1
  808. package/dist/window/definition.js +51 -24
  809. package/dist/window/floorplan-move.d.ts.map +1 -1
  810. package/dist/window/floorplan-move.js +1 -1
  811. package/dist/window/move-tool.d.ts +7 -5
  812. package/dist/window/move-tool.d.ts.map +1 -1
  813. package/dist/window/move-tool.js +344 -58
  814. package/dist/window/panel.d.ts.map +1 -1
  815. package/dist/window/panel.js +2 -0
  816. package/dist/window/parametrics.js +2 -2
  817. package/dist/window/renderer.d.ts.map +1 -1
  818. package/dist/window/renderer.js +5 -7
  819. package/dist/window/tool.d.ts.map +1 -1
  820. package/dist/window/tool.js +227 -13
  821. package/dist/zone/floorplan-affordances.d.ts +12 -12
  822. package/package.json +11 -9
  823. package/dist/dormer/panel-window-section.d.ts +0 -14
  824. package/dist/dormer/panel-window-section.d.ts.map +0 -1
  825. package/dist/dormer/panel-window-section.js +0 -59
  826. package/dist/dormer/window-assembly.d.ts +0 -22
  827. package/dist/dormer/window-assembly.d.ts.map +0 -1
  828. package/dist/dormer/window-assembly.js +0 -111
  829. package/dist/dormer/window-frame.d.ts +0 -24
  830. package/dist/dormer/window-frame.d.ts.map +0 -1
  831. package/dist/dormer/window-frame.js +0 -100
package/dist/index.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { blockDefinition } from './block/definition';
1
2
  import { boxVentDefinition } from './box-vent';
2
3
  import { buildingDefinition } from './building';
3
4
  import { cabinetDefinition, cabinetModuleDefinition } from './cabinet';
@@ -19,6 +20,7 @@ import { guideDefinition } from './guide';
19
20
  import { gutterDefinition } from './gutter';
20
21
  import { hvacEquipmentDefinition } from './hvac-equipment';
21
22
  import { itemDefinition } from './item';
23
+ import { leanToExtensionDefinition } from './lean-to-extension';
22
24
  import { levelDefinition } from './level';
23
25
  import { linesetDefinition } from './lineset';
24
26
  import { liquidLineDefinition } from './liquid-line';
@@ -65,8 +67,10 @@ export const builtinPlugin = {
65
67
  nodes: [
66
68
  // Stage E-complete (full registry path)
67
69
  shelfDefinition,
70
+ blockDefinition,
68
71
  spawnDefinition,
69
72
  wallDefinition,
73
+ leanToExtensionDefinition,
70
74
  fenceDefinition,
71
75
  slabDefinition,
72
76
  ceilingDefinition,
@@ -117,9 +121,11 @@ export const builtinPlugin = {
117
121
  pipeTrapDefinition,
118
122
  ],
119
123
  };
124
+ export { applyBlockCommand, blockFaceCentroid, blockFaceNormal, } from './block/commands';
125
+ export { blockDefinition } from './block/definition';
120
126
  export { boxVentDefinition } from './box-vent';
121
127
  export { buildingDefinition } from './building';
122
- export { bakeCabinetAnimationClip, cabinetDefinition, cabinetModuleDefinition, poseCabinetMovingParts, useCabinetPlacementStatus, useCabinetPlacementType, } from './cabinet';
128
+ export { bakeCabinetAnimationClip, CABINET_PLANNING_TOLERANCE, cabinetDefinition, cabinetModuleDefinition, MIN_PRACTICAL_TOP_CABINET_HEIGHT, poseCabinetMovingParts, useCabinetPlacementStatus, useCabinetPlacementType, validateCabinetRun, } from './cabinet';
123
129
  export { ceilingDefinition } from './ceiling';
124
130
  export { chimneyDefinition } from './chimney';
125
131
  export { columnDefinition } from './column';
@@ -138,6 +144,7 @@ export { guideDefinition } from './guide';
138
144
  export { gutterDefinition } from './gutter';
139
145
  export { hvacEquipmentDefinition } from './hvac-equipment';
140
146
  export { itemDefinition } from './item';
147
+ export { leanToExtensionDefinition } from './lean-to-extension';
141
148
  export { levelDefinition } from './level';
142
149
  export { linesetDefinition } from './lineset';
143
150
  export { liquidLineDefinition, useLiquidLineToolOptions } from './liquid-line';
@@ -146,7 +153,7 @@ export { pipeFittingDefinition } from './pipe-fitting';
146
153
  export { pipeSegmentDefinition } from './pipe-segment';
147
154
  export { pipeTrapDefinition } from './pipe-trap';
148
155
  export { ridgeVentDefinition } from './ridge-vent';
149
- export { roofDefinition } from './roof';
156
+ export { roofDefinition, useRoofFootprintSource } from './roof';
150
157
  export { roofSegmentDefinition } from './roof-segment';
151
158
  export { scanDefinition } from './scan';
152
159
  export { shelfDefinition } from './shelf';
@@ -1 +1 @@
1
- {"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/item/definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,kBAAkB,CAAA;AAMzB,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AA+HnC;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,cAAc,EAAE,cAAc,CAAC,OAAO,QAAQ,CAgL1D,CAAA"}
1
+ {"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/item/definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,kBAAkB,CAAA;AAMzB,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AA+HnC;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,cAAc,EAAE,cAAc,CAAC,OAAO,QAAQ,CAwL1D,CAAA"}
@@ -154,7 +154,7 @@ export const itemDefinition = {
154
154
  kind: 'item',
155
155
  snapProfile: 'item',
156
156
  facingIndicator: true,
157
- schemaVersion: 1,
157
+ schemaVersion: 2,
158
158
  schema: ItemNode,
159
159
  category: 'furnish',
160
160
  surfaceRole: 'furnishing',
@@ -188,6 +188,14 @@ export const itemDefinition = {
188
188
  }),
189
189
  capabilities: {
190
190
  selectable: { hitVolume: 'bbox' },
191
+ surfaces: {
192
+ top: {
193
+ height: (node) => {
194
+ const item = node;
195
+ return (item.asset.surface?.height ?? item.asset.dimensions[1]) * item.scale[1];
196
+ },
197
+ },
198
+ },
191
199
  duplicable: true,
192
200
  deletable: true,
193
201
  paint: itemPaint,
@@ -204,7 +212,7 @@ export const itemDefinition = {
204
212
  // host app strips these via `getHostRefFields(def)` so the
205
213
  // descendant re-attaches against the new host geometry at
206
214
  // placement time.
207
- hostRefFields: ['wallId', 'wallT', 'roofSegmentId', 'roofFace'],
215
+ hostRefFields: ['wallId', 'wallT', 'roofSegmentId', 'roofFace', 'blockFaceId'],
208
216
  // Floor items get lifted by slabs underneath via the generic
209
217
  // `<FloorElevationSystem>`. Wall- / ceiling-attached items live in
210
218
  // their parent's local frame and skip the lift via `applies`.
@@ -1 +1 @@
1
- {"version":3,"file":"floorplan-move.d.ts","sourceRoot":"","sources":["../../src/item/floorplan-move.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,mBAAmB,EAIxB,KAAK,QAAQ,EAMd,MAAM,kBAAkB,CAAA;AAkJzB,eAAO,MAAM,uBAAuB,EAAE,mBAAmB,CAAC,QAAQ,CA+BjE,CAAA"}
1
+ {"version":3,"file":"floorplan-move.d.ts","sourceRoot":"","sources":["../../src/item/floorplan-move.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,mBAAmB,EAKxB,KAAK,QAAQ,EAMd,MAAM,kBAAkB,CAAA;AAsKzB,eAAO,MAAM,uBAAuB,EAAE,mBAAmB,CAAC,QAAQ,CA+BjE,CAAA"}
@@ -1,4 +1,4 @@
1
- import { collectAlignmentAnchors, getRoofWallFaceFrame, getScaledDimensions, movingFootprintAnchors, roofFacePointToSegment, useLiveNodeOverrides, useScene, } from '@pascal-app/core';
1
+ import { collectAlignmentAnchors, getBlockFaceFrame, getRoofWallFaceFrame, getScaledDimensions, movingFootprintAnchors, roofFacePointToSegment, useLiveNodeOverrides, useScene, } from '@pascal-app/core';
2
2
  import { applyFloorplanAlignment, isGridSnapActive, isMagneticSnapActive, useEditor, } from '@pascal-app/editor';
3
3
  import { createFloorplanCursorResolver } from '../shared/floorplan-cursor';
4
4
  import { findClosestWallInPlan, snapLocalXToNeighbors } from '../shared/wall-attach-target';
@@ -64,6 +64,24 @@ function resolveItemPlanTransform(item, nodes, cache = new Map()) {
64
64
  };
65
65
  }
66
66
  }
67
+ else if (parent?.type === 'block' && item.blockFaceId) {
68
+ const frame = getBlockFaceFrame(parent.topology, item.blockFaceId);
69
+ if (frame) {
70
+ const localX = frame.origin[0] +
71
+ frame.xAxis[0] * item.position[0] +
72
+ frame.yAxis[0] * item.position[1] +
73
+ frame.normal[0] * item.position[2];
74
+ const localZ = frame.origin[2] +
75
+ frame.xAxis[2] * item.position[0] +
76
+ frame.yAxis[2] * item.position[1] +
77
+ frame.normal[2] * item.position[2];
78
+ const [offsetX, offsetZ] = rotateVec(localX, localZ, parent.rotation ?? 0);
79
+ result = {
80
+ point: [parent.position[0] + offsetX, parent.position[2] + offsetZ],
81
+ rotation: (parent.rotation ?? 0) - Math.atan2(frame.xAxis[2], frame.xAxis[0]) + localRotation,
82
+ };
83
+ }
84
+ }
67
85
  cache.set(item.id, result);
68
86
  return result;
69
87
  }
@@ -159,6 +177,7 @@ function buildWallItemSession(node, startLevelId) {
159
177
  parentId: hit.wall.id,
160
178
  roofSegmentId: undefined,
161
179
  roofFace: undefined,
180
+ blockFaceId: undefined,
162
181
  };
163
182
  useLiveNodeOverrides.getState().set(node.id, lastPatch);
164
183
  useScene.getState().markDirty(node.id);
@@ -1 +1 @@
1
- {"version":3,"file":"floorplan.d.ts","sourceRoot":"","sources":["../../src/item/floorplan.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,iBAAiB,EAEtB,KAAK,eAAe,EAGpB,KAAK,QAAQ,EAId,MAAM,kBAAkB,CAAA;AAgJzB,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,QAAQ,EACd,GAAG,EAAE,eAAe,GACnB,iBAAiB,GAAG,IAAI,CA+C1B;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,eAAe,GAAG,iBAAiB,GAAG,IAAI,CAmGjG"}
1
+ {"version":3,"file":"floorplan.d.ts","sourceRoot":"","sources":["../../src/item/floorplan.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,iBAAiB,EAEtB,KAAK,eAAe,EAIpB,KAAK,QAAQ,EAId,MAAM,kBAAkB,CAAA;AAsKzB,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,QAAQ,EACd,GAAG,EAAE,eAAe,GACnB,iBAAiB,GAAG,IAAI,CA+C1B;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,eAAe,GAAG,iBAAiB,GAAG,IAAI,CAmGjG"}
@@ -1,4 +1,4 @@
1
- import { getRoofWallFaceFrame, getScaledDimensions, roofFacePointToSegment, useLiveTransforms, } from '@pascal-app/core';
1
+ import { getBlockFaceFrame, getRoofWallFaceFrame, getScaledDimensions, roofFacePointToSegment, useLiveTransforms, } from '@pascal-app/core';
2
2
  import { formatLinearMeasurement, readFloorplanMetricNotationOverride } from '@pascal-app/editor';
3
3
  // Plan-space rotation convention used by the legacy `rotatePlanVector`
4
4
  // in `editor/src/lib/floorplan/geometry.ts`. This is a CLOCKWISE rotation
@@ -94,6 +94,27 @@ function resolveItemTransform(item, ctx, cache = new Map()) {
94
94
  };
95
95
  }
96
96
  }
97
+ else if (parentNode?.type === 'block' && item.blockFaceId) {
98
+ const frame = getBlockFaceFrame(parentNode.topology, item.blockFaceId);
99
+ if (frame) {
100
+ const localX = frame.origin[0] +
101
+ frame.xAxis[0] * item.position[0] +
102
+ frame.yAxis[0] * item.position[1] +
103
+ frame.normal[0] * item.position[2];
104
+ const localZ = frame.origin[2] +
105
+ frame.xAxis[2] * item.position[0] +
106
+ frame.yAxis[2] * item.position[1] +
107
+ frame.normal[2] * item.position[2];
108
+ const hostRotation = parentNode.rotation ?? 0;
109
+ const [offsetX, offsetZ] = rotateVec(localX, localZ, hostRotation);
110
+ const faceRotation = -Math.atan2(frame.xAxis[2], frame.xAxis[0]);
111
+ result = {
112
+ x: parentNode.position[0] + offsetX,
113
+ y: parentNode.position[2] + offsetZ,
114
+ rotation: hostRotation + faceRotation + localRotation,
115
+ };
116
+ }
117
+ }
97
118
  else {
98
119
  // Level / slab / ceiling parent — item.position is level-local.
99
120
  result = {
@@ -1,4 +1,31 @@
1
- import { type ItemNode } from '@pascal-app/core';
1
+ import { type AnyNode, type ItemNode } from '@pascal-app/core';
2
+ import { type PlacementState } from '@pascal-app/editor';
3
+ /**
4
+ * Phase 5 Stage D — item's registry-driven 3D move affordance.
5
+ *
6
+ * Replaces the legacy `MoveItemContent` in `editor/src/components/tools/
7
+ * item/move-tool.tsx`. Behaviour is identical: it adopts the moving node
8
+ * (or creates a draft for duplicates flagged `isNew`), runs the placement
9
+ * coordinator with surface strategies for floor / wall / ceiling / item-
10
+ * surface, and commits via `useScene.updateNode` on click.
11
+ *
12
+ * Registered via `def.affordanceTools.move`. The editor's
13
+ * `MoveTool` dispatcher picks this up through `getRegistryAffordance
14
+ * Tool('item', 'move')` before its legacy chain reaches `<MoveItemContent>`
15
+ * — so the legacy fallback can now go away.
16
+ *
17
+ * Closes the 2D ↔ 3D coexistence bugs from last session: when both
18
+ * paths mounted, the legacy mover's `destroy()` would clobber the 2D
19
+ * commit; with this tool owning the move, only one path is alive at a
20
+ * time.
21
+ *
22
+ * Placement primitives (`useDraftNode`, `usePlacementCoordinator`,
23
+ * `PlacementState`) are re-exported from `@pascal-app/editor` — same
24
+ * hooks the legacy code used. When `ItemTool` (item placement, not
25
+ * move) also ports to `def.tool`, the primitives can be inlined here
26
+ * and dropped from editor.
27
+ */
28
+ export declare function getInitialState(node: ItemNode, parent?: AnyNode | undefined): PlacementState;
2
29
  export declare function MoveItemTool({ node }: {
3
30
  node: ItemNode;
4
31
  }): import("react").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"move-tool.d.ts","sourceRoot":"","sources":["../../src/item/move-tool.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAkB,KAAK,QAAQ,EAAY,MAAM,kBAAkB,CAAA;AAuG1E,wBAAgB,YAAY,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,+BAsDxD;AAED,eAAe,YAAY,CAAA"}
1
+ {"version":3,"file":"move-tool.d.ts","sourceRoot":"","sources":["../../src/item/move-tool.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,OAAO,EAAkB,KAAK,QAAQ,EAAY,MAAM,kBAAkB,CAAA;AACxF,OAAO,EACL,KAAK,cAAc,EAKpB,MAAM,oBAAoB,CAAA;AAG3B;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,QAAQ,EACd,MAAM,GAAE,OAAO,GAAG,SAEL,GACZ,cAAc,CA4EhB;AAED,wBAAgB,YAAY,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,+BAsDxD;AAED,eAAe,YAAY,CAAA"}
@@ -28,8 +28,21 @@ import { Vector3 } from 'three';
28
28
  * move) also ports to `def.tool`, the primitives can be inlined here
29
29
  * and dropped from editor.
30
30
  */
31
- function getInitialState(node) {
31
+ export function getInitialState(node, parent = node.parentId
32
+ ? useScene.getState().nodes[node.parentId]
33
+ : undefined) {
32
34
  const attachTo = node.asset.attachTo;
35
+ if (node.blockFaceId && parent?.type === 'block') {
36
+ return {
37
+ surface: 'block-face',
38
+ wallId: null,
39
+ roofSegmentId: null,
40
+ blockId: parent.id,
41
+ ceilingId: null,
42
+ surfaceItemId: null,
43
+ shelfId: null,
44
+ };
45
+ }
33
46
  if (attachTo === 'wall' || attachTo === 'wall-side') {
34
47
  if (node.roofSegmentId) {
35
48
  return {
@@ -65,7 +78,6 @@ function getInitialState(node) {
65
78
  // handler — which preserves the grab offset — instead of a fresh `enter()`
66
79
  // that snaps the item's origin under the cursor. Without this the item
67
80
  // teleports the instant it's grabbed.
68
- const parent = node.parentId ? useScene.getState().nodes[node.parentId] : undefined;
69
81
  if (parent?.type === 'item') {
70
82
  return {
71
83
  surface: 'item-surface',
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/item/renderer.tsx"],"names":[],"mappings":"AAEA,OAAO,EAML,KAAK,QAAQ,EAWd,MAAM,kBAAkB,CAAA;AAmZzB,eAAO,MAAM,YAAY,GAAI,qBAAqB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,gCAqDnE,CAAA;AA+CD,eAAO,MAAM,WAAW,GAAI,UAAU;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,gCAUvD,CAAA;AAuRD,eAAe,YAAY,CAAA"}
1
+ {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/item/renderer.tsx"],"names":[],"mappings":"AAEA,OAAO,EAML,KAAK,QAAQ,EAYd,MAAM,kBAAkB,CAAA;AA6ZzB,eAAO,MAAM,YAAY,GAAI,qBAAqB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,gCA4DnE,CAAA;AA+CD,eAAO,MAAM,WAAW,GAAI,UAAU;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,gCAUvD,CAAA;AA4RD,eAAe,YAAY,CAAA"}
@@ -1,15 +1,16 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
- import { deriveSlotId, getScaledDimensions, isSlotMaterialName, itemClipRegistry, LIBRARY_MATERIAL_REF_PREFIX, SCENE_MATERIAL_REF_PREFIX, toLibraryMaterialRef, useInteractive, useLiveNodeOverrides, useRegistry, useScene, } from '@pascal-app/core';
3
+ import { deriveSlotId, getScaledDimensions, isSlotMaterialName, itemClipRegistry, LIBRARY_MATERIAL_REF_PREFIX, SCENE_MATERIAL_REF_PREFIX, sceneRegistry, toLibraryMaterialRef, useInteractive, useLiveNodeOverrides, useRegistry, useScene, } from '@pascal-app/core';
4
4
  import { configureKtx2Support, createDefaultMaterial, createSurfaceRoleMaterial, ErrorBoundary, glassMaterial, NodeRenderer, resolveCdnUrl, resolveMaterialRef, stampPascalTextureRef, useItemLightPool, useNodeEvents, useViewer, } from '@pascal-app/viewer';
5
5
  import { useAnimations } from '@react-three/drei';
6
6
  import { Clone } from '@react-three/drei/core/Clone';
7
7
  import { useFrame, useLoader, useThree } from '@react-three/fiber';
8
- import { Suspense, useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react';
8
+ import { Suspense, useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState, } from 'react';
9
9
  import { MathUtils, Texture } from 'three';
10
10
  import { MeshoptDecoder } from 'three/examples/jsm/libs/meshopt_decoder.module.js';
11
11
  import { DRACOLoader } from 'three/examples/jsm/loaders/DRACOLoader.js';
12
12
  import { positionLocal, smoothstep, time } from 'three/tsl';
13
+ import { BlockFaceHostFrame } from '../shared/block-face-host';
13
14
  import { RoofFaceHostFrame } from '../shared/roof-face-host';
14
15
  import { cancelItemModelLoad, getUnavailableItemAsset, ItemGLTFLoader } from './model-loader';
15
16
  const getAuthoredSlotId = (material) => isSlotMaterialName(material.name) ? deriveSlotId(material.name) : null;
@@ -291,6 +292,9 @@ export const ItemRenderer = ({ node: storeNode }) => {
291
292
  setSettled(true);
292
293
  }, [roomClearPreview, setSettled]);
293
294
  const content = (_jsx("group", { position: node.position, ref: ref, rotation: node.rotation, visible: node.visible, children: roomClearPreview ? (_jsx(ClearPreviewModel, { node: node })) : (_jsxs(_Fragment, { children: [_jsx(ModelWithRetry, { node: node, setSettled: setSettled }, node.asset.src ?? 'no-src'), node.children?.map((childId) => (_jsx(NodeRenderer, { nodeId: childId }, childId)))] })) }));
295
+ if (node.blockFaceId && node.parentId) {
296
+ return (_jsx(BlockFaceHostFrame, { blockId: node.parentId, faceId: node.blockFaceId, children: content }));
297
+ }
294
298
  if (!node.roofSegmentId)
295
299
  return content;
296
300
  return (_jsx(RoofFaceHostFrame, { roofFace: node.roofFace, roofSegmentId: node.roofSegmentId, children: content }));
@@ -354,12 +358,17 @@ const ModelRenderer = ({ node, markSettled }) => {
354
358
  };
355
359
  const LoadedModelRenderer = ({ gltf: { scene, nodes, animations }, node, markSettled, }) => {
356
360
  const ref = useRef(null);
357
- const { actions } = useAnimations(animations, ref);
358
361
  // Mounting past the suspense gate means the GLB resolved — the item's build
359
362
  // work is done (`ItemSystem` may clear its dirty mark, scene-ready may fire).
360
363
  useEffect(() => {
364
+ // Clip presence, not just the effect path: with no animEffect,
365
+ // <ItemAnimation> still autoplays the first clip, and the node batch must
366
+ // keep such items out of static batches (shared/node-batch/candidates).
367
+ const group = sceneRegistry.nodes.get(node.id);
368
+ if (group)
369
+ group.userData.itemHasAnimations = animations.length > 0;
361
370
  markSettled();
362
- }, [markSettled]);
371
+ }, [markSettled, node.id, animations]);
363
372
  const shading = useViewer((s) => s.shading);
364
373
  const textures = useViewer((s) => s.textures);
365
374
  const colorPreset = useViewer((s) => s.colorPreset);
@@ -442,9 +451,10 @@ const LoadedModelRenderer = ({ gltf: { scene, nodes, animations }, node, markSet
442
451
  }, [node.id, animEffect, animations]);
443
452
  // useGLTF caches scenes, and Clone shares child geometry/material references.
444
453
  // Undo can unmount one item while another clone of the same asset still needs them.
445
- return (_jsxs(_Fragment, { children: [_jsx("group", { scale: node.scale, children: _jsx(Clone, { dispose: null, object: scene, position: node.asset.offset, ref: ref, rotation: node.asset.rotation, scale: node.asset.scale || [1, 1, 1], ...handlers }) }), animations.length > 0 && (_jsx(ItemAnimation, { actions: actions, animations: animations, animEffect: animEffect, interactive: interactive ?? null, nodeId: node.id })), lightEffects.map((effect, i) => (_jsx(ItemLightRegistrar, { effect: effect, index: i, interactive: interactive, nodeId: node.id }, i)))] }));
454
+ return (_jsxs(_Fragment, { children: [_jsx("group", { scale: node.scale, children: _jsx(Clone, { dispose: null, object: scene, position: node.asset.offset, ref: ref, rotation: node.asset.rotation, scale: node.asset.scale || [1, 1, 1], ...handlers }) }), animations.length > 0 && (_jsx(ItemAnimation, { animations: animations, animEffect: animEffect, interactive: interactive ?? null, nodeId: node.id, rootRef: ref })), lightEffects.map((effect, i) => (_jsx(ItemLightRegistrar, { effect: effect, index: i, interactive: interactive, nodeId: node.id }, i)))] }));
446
455
  };
447
- const ItemAnimation = ({ nodeId, animEffect, interactive, actions, animations, }) => {
456
+ const ItemAnimation = ({ nodeId, animEffect, interactive, animations, rootRef, }) => {
457
+ const { actions } = useAnimations(animations, rootRef);
448
458
  const activeClipRef = useRef(null);
449
459
  const fadingOutRef = useRef(null);
450
460
  // Reactive: derive target clip name — only re-renders when the clip name itself changes
@@ -5,6 +5,11 @@
5
5
  * (wall-side z-offset, slab elevation, ceiling mounting).
6
6
  * - **`ItemLightSystem`** — manages light sources attached to items
7
7
  * (lamps, ceiling lights, etc.).
8
+ * - **`NodeBatchSystem`** — once nodes stop changing, draws items, columns,
9
+ * ceilings, slabs and wall-hosted openings through per-material BatchedMeshes; lit or
10
+ * edited nodes draw themselves (see ../shared/node-batch/types.ts).
11
+ * Mounted from the item bundle because it must mount exactly once and
12
+ * every registered kind's system mounts scene-wide.
8
13
  */
9
14
  declare const ItemSystems: () => import("react").JSX.Element;
10
15
  export default ItemSystems;
@@ -1 +1 @@
1
- {"version":3,"file":"system.d.ts","sourceRoot":"","sources":["../../src/item/system.tsx"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AACH,QAAA,MAAM,WAAW,mCAOhB,CAAA;AAED,eAAe,WAAW,CAAA"}
1
+ {"version":3,"file":"system.d.ts","sourceRoot":"","sources":["../../src/item/system.tsx"],"names":[],"mappings":"AAKA;;;;;;;;;;;;GAYG;AACH,QAAA,MAAM,WAAW,mCAQhB,CAAA;AAED,eAAe,WAAW,CAAA"}
@@ -1,6 +1,7 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { ItemLightSystem, ItemSystem } from '@pascal-app/viewer';
4
+ import { NodeBatchSystem } from '../shared/node-batch/system';
4
5
  /**
5
6
  * Registry-driven item system bundle.
6
7
  *
@@ -8,8 +9,13 @@ import { ItemLightSystem, ItemSystem } from '@pascal-app/viewer';
8
9
  * (wall-side z-offset, slab elevation, ceiling mounting).
9
10
  * - **`ItemLightSystem`** — manages light sources attached to items
10
11
  * (lamps, ceiling lights, etc.).
12
+ * - **`NodeBatchSystem`** — once nodes stop changing, draws items, columns,
13
+ * ceilings, slabs and wall-hosted openings through per-material BatchedMeshes; lit or
14
+ * edited nodes draw themselves (see ../shared/node-batch/types.ts).
15
+ * Mounted from the item bundle because it must mount exactly once and
16
+ * every registered kind's system mounts scene-wide.
11
17
  */
12
18
  const ItemSystems = () => {
13
- return (_jsxs(_Fragment, { children: [_jsx(ItemSystem, {}), _jsx(ItemLightSystem, {})] }));
19
+ return (_jsxs(_Fragment, { children: [_jsx(ItemSystem, {}), _jsx(ItemLightSystem, {}), _jsx(NodeBatchSystem, {})] }));
14
20
  };
15
21
  export default ItemSystems;
@@ -0,0 +1,14 @@
1
+ import type { LeanToExtensionNode, Point2D } from '@pascal-app/core';
2
+ export type LeanToArcLike = Pick<LeanToExtensionNode, 'spanArcCenterZ' | 'spanArcRadius'>;
3
+ export type LeanToArcFrame = {
4
+ point: Point2D;
5
+ tangent: Point2D;
6
+ normal: Point2D;
7
+ rotationY: number;
8
+ };
9
+ export declare function isCurvedLeanTo(node: LeanToArcLike): boolean;
10
+ export declare function bendLocalPoint(node: LeanToArcLike, localX: number, localZ: number): Point2D;
11
+ export declare function bendRotationYAtLocalX(node: LeanToArcLike, localX: number): number;
12
+ export declare function leanToArcFrameAtLocalX(node: LeanToArcLike, localX: number): LeanToArcFrame;
13
+ export declare function leanToArcRadius(node: LeanToArcLike): number;
14
+ //# sourceMappingURL=arc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arc.d.ts","sourceRoot":"","sources":["../../src/lean-to-extension/arc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAkBpE,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,EAAE,gBAAgB,GAAG,eAAe,CAAC,CAAA;AAEzF,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,OAAO,CAAA;IACd,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,OAAO,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAU3D;AAGD,wBAAgB,cAAc,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAU3F;AAKD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAKjF;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc,CAkB1F;AAGD,wBAAgB,eAAe,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAE3D"}
@@ -0,0 +1,56 @@
1
+ const CURVE_EPSILON = 1e-6;
2
+ export function isCurvedLeanTo(node) {
3
+ const cz = node.spanArcCenterZ;
4
+ const radius = node.spanArcRadius;
5
+ return (cz != null &&
6
+ Number.isFinite(cz) &&
7
+ Math.abs(cz) > CURVE_EPSILON &&
8
+ radius != null &&
9
+ Number.isFinite(radius));
10
+ }
11
+ // Map a straight local-frame point onto the bent strip.
12
+ export function bendLocalPoint(node, localX, localZ) {
13
+ if (!isCurvedLeanTo(node))
14
+ return { x: localX, y: localZ };
15
+ const cz = node.spanArcCenterZ;
16
+ const signedRadius = (Math.sign(cz) || 1) * node.spanArcRadius;
17
+ const phi = localX / signedRadius;
18
+ const radial = localZ - cz;
19
+ return {
20
+ x: -radial * Math.sin(phi),
21
+ y: cz + radial * Math.cos(phi),
22
+ };
23
+ }
24
+ // Yaw (about local Y) that aligns local +X with the arc tangent. The tangent at
25
+ // angle phi is (cos phi, sin phi) in the local x-z plane; matching it under the YXZ
26
+ // convention (local +X -> (cos a, 0, -sin a)) gives a = atan2(-sin phi, cos phi) = -phi.
27
+ export function bendRotationYAtLocalX(node, localX) {
28
+ if (!isCurvedLeanTo(node))
29
+ return 0;
30
+ const cz = node.spanArcCenterZ;
31
+ const signedRadius = (Math.sign(cz) || 1) * node.spanArcRadius;
32
+ return -(localX / signedRadius);
33
+ }
34
+ export function leanToArcFrameAtLocalX(node, localX) {
35
+ if (!isCurvedLeanTo(node)) {
36
+ return {
37
+ point: { x: localX, y: 0 },
38
+ tangent: { x: 1, y: 0 },
39
+ normal: { x: 0, y: 1 },
40
+ rotationY: 0,
41
+ };
42
+ }
43
+ const cz = node.spanArcCenterZ;
44
+ const signedRadius = (Math.sign(cz) || 1) * node.spanArcRadius;
45
+ const phi = localX / signedRadius;
46
+ return {
47
+ point: bendLocalPoint(node, localX, 0),
48
+ tangent: { x: Math.cos(phi), y: Math.sin(phi) },
49
+ normal: { x: -Math.sin(phi), y: Math.cos(phi) },
50
+ rotationY: -phi,
51
+ };
52
+ }
53
+ // Radius of the local span arc (Infinity when straight).
54
+ export function leanToArcRadius(node) {
55
+ return isCurvedLeanTo(node) ? node.spanArcRadius : Number.POSITIVE_INFINITY;
56
+ }
@@ -0,0 +1,61 @@
1
+ import { type AnyNode, type ColumnNode as ColumnNodeType, type DownspoutNode as DownspoutNodeType, type GutterNode as GutterNodeType, type LeanToExtensionNode, type RoofNode as RoofNodeType, type RoofSegmentNode as RoofSegmentNodeType, type WallNode } from '@pascal-app/core';
2
+ import { type FreestandingCanopyJoint } from './canopy-joint';
3
+ import { type LeanToCornerJoint, type LeanToCornerSide } from './corner-joint';
4
+ export declare const LEFT_CORNER_POST_INDEX = -1001;
5
+ export declare const RIGHT_CORNER_POST_INDEX = -1002;
6
+ export declare function leanToCornerPostIndex(side: LeanToCornerSide): number;
7
+ type LeanToManagedRole = 'roof' | 'roof-segment' | 'gutter' | 'downspout' | 'post';
8
+ export type LeanToPostSide = 'high' | 'low';
9
+ export type LeanToDrainageSide = 'primary' | 'opposite';
10
+ export type LeanToRoofPlane = 'primary' | 'opposite';
11
+ export type LeanToRoofMaterialPatch = Pick<RoofNodeType, 'material' | 'materialPreset' | 'topMaterial' | 'topMaterialPreset' | 'edgeMaterial' | 'edgeMaterialPreset' | 'wallMaterial' | 'wallMaterialPreset'>;
12
+ export declare function isManagedLeanToNode(node: AnyNode, leanToId: LeanToExtensionNode['id'], role?: LeanToManagedRole): boolean;
13
+ export declare function isManagedLeanToPost(column: ColumnNodeType, leanToId: LeanToExtensionNode['id']): boolean;
14
+ export declare function managedLeanToPostIndex(column: ColumnNodeType): number | null;
15
+ export declare function managedLeanToPostSide(column: ColumnNodeType): LeanToPostSide;
16
+ export declare function managedLeanToDrainageSide(node: GutterNodeType | DownspoutNodeType): LeanToDrainageSide;
17
+ export declare function managedLeanToRoofPlane(node: RoofSegmentNodeType): LeanToRoofPlane;
18
+ export type LeanToPostLayoutPatch = Pick<ColumnNodeType, 'position' | 'rotation' | 'height' | 'width' | 'depth' | 'crossSection' | 'baseStyle' | 'baseHeight' | 'baseWidthScale' | 'baseDepthScale' | 'slots'>;
19
+ export declare function leanToPostLayoutPatch(leanTo: LeanToExtensionNode, index: number, baseY?: number, gutterSetback?: number, side?: LeanToPostSide): LeanToPostLayoutPatch;
20
+ export declare function leanToCornerPostLayoutPatch(leanTo: LeanToExtensionNode, joint: LeanToCornerJoint, baseY?: number, gutterSetback?: number): LeanToPostLayoutPatch;
21
+ export declare function leanToCanopyCornerPostLayoutPatch(leanTo: LeanToExtensionNode, joint: FreestandingCanopyJoint, side: LeanToPostSide, baseY?: number, gutterSetback?: number): LeanToPostLayoutPatch;
22
+ export declare function resolveLeanToPostGutterSetback(leanTo: LeanToExtensionNode, column?: ColumnNodeType): number;
23
+ export declare function resolveLeanToPostBaseY(leanTo: LeanToExtensionNode, wall: WallNode | undefined, nodes: Record<string, AnyNode>, index: number, side?: LeanToPostSide): number;
24
+ export declare function resolveLeanToPostBaseYAtLocalPosition(leanTo: LeanToExtensionNode, wall: WallNode | undefined, nodes: Record<string, AnyNode>, localPosition: readonly [number, number, number]): number;
25
+ export declare function createManagedLeanToPost(leanTo: LeanToExtensionNode, index: number, side?: LeanToPostSide): ColumnNodeType;
26
+ export declare function createManagedLeanToCornerPost(leanTo: LeanToExtensionNode, joint: LeanToCornerJoint): ColumnNodeType;
27
+ export declare function createManagedLeanToCanopyCornerPost(leanTo: LeanToExtensionNode, joint: FreestandingCanopyJoint, side: LeanToPostSide): ColumnNodeType;
28
+ export declare function resolveLeanToPostIndexes(leanTo: LeanToExtensionNode, cornerJoints: Partial<Record<LeanToCornerSide, LeanToCornerJoint>>, side: LeanToPostSide): number[];
29
+ export declare function resolveLeanToCanopyPostIndexes(leanTo: LeanToExtensionNode, cornerJoints: Partial<Record<LeanToCornerSide, LeanToCornerJoint>>, canopyJoints: Partial<Record<LeanToCornerSide, FreestandingCanopyJoint>>, side: LeanToPostSide): number[];
30
+ export type LeanToRoofSegmentLayoutPatch = Pick<RoofSegmentNodeType, 'position' | 'rotation' | 'roofType' | 'width' | 'depth' | 'wallHeight' | 'pitch' | 'wallThickness' | 'deckThickness' | 'shingleThickness' | 'overhang' | 'arc' | 'shedSideInfillSpan' | 'shedSideInfillMinX' | 'shedSideInfillMaxX' | 'shedFootprintPieces' | 'shedOpenEndSides' | 'shedJointFrame' | 'shedJointOwnerId' | 'shedJointNeighborIds' | 'shedJointScopeId' | 'managedByParent' | 'wallShell' | 'shedInsetEndPanels' | 'trim' | 'metadata'>;
31
+ export declare function leanToRoofSegmentLayoutPatch(leanTo: LeanToExtensionNode, nodes?: Record<string, AnyNode>, plane?: LeanToRoofPlane): LeanToRoofSegmentLayoutPatch;
32
+ export declare function leanToGutterLayoutPatch(segment: RoofSegmentNodeType, leanTo: LeanToExtensionNode, gutter?: GutterNodeType, nodes?: Record<string, AnyNode>, drainageSide?: LeanToDrainageSide): Pick<GutterNodeType, 'position' | 'rotation' | 'length' | 'arc' | 'roofSegmentId' | 'visible' | 'profile' | 'size' | 'endCapLeft' | 'endCapRight' | 'outlets' | 'metadata'>;
33
+ export declare function leanToDownspoutLayoutPatch(_segment: RoofSegmentNodeType, gutter: GutterNodeType, leanTo: LeanToExtensionNode, downspout?: DownspoutNodeType): Pick<DownspoutNodeType, 'diameter' | 'gutterId' | 'lengthMode' | 'visible' | 'outletId'>;
34
+ export declare function leanToRoofMaterialPatch(hostRoof: RoofNodeType): LeanToRoofMaterialPatch;
35
+ export type LeanToRoofAssembly = {
36
+ roof: RoofNodeType;
37
+ segment: RoofSegmentNodeType;
38
+ oppositeSegment?: RoofSegmentNodeType;
39
+ gutter: GutterNodeType;
40
+ downspout: DownspoutNodeType;
41
+ oppositeGutter?: GutterNodeType;
42
+ oppositeDownspout?: DownspoutNodeType;
43
+ };
44
+ export declare function createManagedLeanToRoofSegment(leanTo: LeanToExtensionNode, roofId: RoofNodeType['id'], plane?: LeanToRoofPlane, nodes?: Record<string, AnyNode>): RoofSegmentNodeType;
45
+ export declare function createManagedLeanToDrainagePair(segment: RoofSegmentNodeType, leanTo: LeanToExtensionNode, drainageSide: LeanToDrainageSide, nodes?: Record<string, AnyNode>): {
46
+ gutter: GutterNodeType;
47
+ downspout: DownspoutNodeType;
48
+ };
49
+ export declare function createManagedLeanToRoofAssembly(leanTo: LeanToExtensionNode, hostRoof?: RoofNodeType, nodes?: Record<string, AnyNode>): LeanToRoofAssembly;
50
+ export declare function createLeanToAssembly(leanTo: LeanToExtensionNode, hostRoof?: RoofNodeType, nodes?: Record<string, AnyNode>): {
51
+ extension: LeanToExtensionNode;
52
+ roof: RoofNodeType;
53
+ segment: RoofSegmentNodeType;
54
+ oppositeSegment?: RoofSegmentNodeType;
55
+ gutter: GutterNodeType;
56
+ downspout: DownspoutNodeType;
57
+ posts: ColumnNodeType[];
58
+ children: AnyNode[];
59
+ };
60
+ export {};
61
+ //# sourceMappingURL=assembly.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assembly.d.ts","sourceRoot":"","sources":["../../src/lean-to-extension/assembly.ts"],"names":[],"mappings":"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"}