@pascal-app/nodes 1.0.1 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (867) hide show
  1. package/dist/block/definition.d.ts.map +1 -1
  2. package/dist/block/definition.js +22 -4
  3. package/dist/block/face-host.d.ts.map +1 -1
  4. package/dist/block/face-host.js +19 -2
  5. package/dist/block/floorplan.d.ts +11 -1
  6. package/dist/block/floorplan.d.ts.map +1 -1
  7. package/dist/block/floorplan.js +81 -13
  8. package/dist/block/geometry.d.ts +2 -2
  9. package/dist/block/geometry.d.ts.map +1 -1
  10. package/dist/block/geometry.js +39 -24
  11. package/dist/block/hosted-edit.d.ts +13 -0
  12. package/dist/block/hosted-edit.d.ts.map +1 -0
  13. package/dist/block/hosted-edit.js +230 -0
  14. package/dist/block/last-operation.d.ts +1 -1
  15. package/dist/block/last-operation.d.ts.map +1 -1
  16. package/dist/block/last-operation.js +6 -4
  17. package/dist/block/material-slots.d.ts +1 -3
  18. package/dist/block/material-slots.d.ts.map +1 -1
  19. package/dist/block/material-slots.js +1 -11
  20. package/dist/block/modal-session.d.ts +2 -1
  21. package/dist/block/modal-session.d.ts.map +1 -1
  22. package/dist/block/modal-session.js +2 -2
  23. package/dist/block/paint.d.ts.map +1 -1
  24. package/dist/block/paint.js +4 -10
  25. package/dist/block/panel.d.ts.map +1 -1
  26. package/dist/block/panel.js +8 -3
  27. package/dist/block/selection.d.ts.map +1 -1
  28. package/dist/block/selection.js +83 -25
  29. package/dist/block/surface.d.ts +4 -0
  30. package/dist/block/surface.d.ts.map +1 -0
  31. package/dist/block/surface.js +54 -0
  32. package/dist/block/use-block-face-operation.d.ts +2 -2
  33. package/dist/block/use-block-face-operation.d.ts.map +1 -1
  34. package/dist/block/use-block-face-operation.js +25 -11
  35. package/dist/box-vent/definition.d.ts.map +1 -1
  36. package/dist/box-vent/definition.js +3 -5
  37. package/dist/box-vent/panel.d.ts.map +1 -1
  38. package/dist/box-vent/panel.js +5 -28
  39. package/dist/building/renderer.d.ts.map +1 -1
  40. package/dist/building/renderer.js +1 -1
  41. package/dist/cabinet/countertop-layout.d.ts +13 -2
  42. package/dist/cabinet/countertop-layout.d.ts.map +1 -1
  43. package/dist/cabinet/definition.d.ts.map +1 -1
  44. package/dist/cabinet/definition.js +4 -3
  45. package/dist/cabinet/floorplan.d.ts.map +1 -1
  46. package/dist/cabinet/floorplan.js +125 -28
  47. package/dist/cabinet/geometry/shared.d.ts +1 -2
  48. package/dist/cabinet/geometry/shared.d.ts.map +1 -1
  49. package/dist/cabinet/geometry/shared.js +1 -2
  50. package/dist/cabinet/hosted-resize.d.ts +3 -6
  51. package/dist/cabinet/hosted-resize.d.ts.map +1 -1
  52. package/dist/cabinet/hosted-resize.js +9 -153
  53. package/dist/cabinet/placement-snap.d.ts.map +1 -1
  54. package/dist/cabinet/placement-snap.js +4 -2
  55. package/dist/cabinet/run-layout.d.ts.map +1 -1
  56. package/dist/cabinet/run-layout.js +8 -5
  57. package/dist/cabinet/run-ops.d.ts +13 -2
  58. package/dist/cabinet/run-ops.d.ts.map +1 -1
  59. package/dist/cabinet/surfaces.d.ts +1 -0
  60. package/dist/cabinet/surfaces.d.ts.map +1 -1
  61. package/dist/cabinet/surfaces.js +13 -1
  62. package/dist/cabinet/tool.d.ts.map +1 -1
  63. package/dist/cabinet/tool.js +30 -28
  64. package/dist/cabinet/wall-snap.d.ts.map +1 -1
  65. package/dist/cabinet/wall-snap.js +8 -8
  66. package/dist/ceiling/boundary-editor.d.ts.map +1 -1
  67. package/dist/ceiling/boundary-editor.js +5 -3
  68. package/dist/ceiling/definition.d.ts +4 -4
  69. package/dist/ceiling/definition.d.ts.map +1 -1
  70. package/dist/ceiling/definition.js +20 -15
  71. package/dist/ceiling/floorplan-affordances.d.ts +84 -4
  72. package/dist/ceiling/floorplan-affordances.d.ts.map +1 -1
  73. package/dist/ceiling/floorplan-affordances.js +0 -1
  74. package/dist/ceiling/floorplan-move.d.ts.map +1 -1
  75. package/dist/ceiling/floorplan-move.js +0 -1
  76. package/dist/ceiling/floorplan.d.ts +1 -1
  77. package/dist/ceiling/floorplan.d.ts.map +1 -1
  78. package/dist/ceiling/floorplan.js +2 -1
  79. package/dist/ceiling/height-bounds.d.ts +19 -0
  80. package/dist/ceiling/height-bounds.d.ts.map +1 -0
  81. package/dist/ceiling/height-bounds.js +24 -0
  82. package/dist/ceiling/hole-editor.d.ts.map +1 -1
  83. package/dist/ceiling/hole-editor.js +3 -4
  84. package/dist/ceiling/materials.d.ts +1 -1
  85. package/dist/ceiling/materials.d.ts.map +1 -1
  86. package/dist/ceiling/materials.js +10 -3
  87. package/dist/ceiling/paint.d.ts +2 -8
  88. package/dist/ceiling/paint.d.ts.map +1 -1
  89. package/dist/ceiling/paint.js +121 -24
  90. package/dist/ceiling/panel.d.ts.map +1 -1
  91. package/dist/ceiling/panel.js +40 -23
  92. package/dist/ceiling/renderer.d.ts.map +1 -1
  93. package/dist/ceiling/renderer.js +43 -6
  94. package/dist/chimney/definition.d.ts.map +1 -1
  95. package/dist/chimney/definition.js +1 -0
  96. package/dist/chimney/move-tool.d.ts.map +1 -1
  97. package/dist/chimney/move-tool.js +8 -2
  98. package/dist/chimney/paint.d.ts.map +1 -1
  99. package/dist/chimney/paint.js +3 -10
  100. package/dist/column/definition.d.ts.map +1 -1
  101. package/dist/column/definition.js +34 -5
  102. package/dist/column/floorplan-affordances.d.ts.map +1 -1
  103. package/dist/column/floorplan-affordances.js +11 -1
  104. package/dist/column/floorplan.d.ts +1 -1
  105. package/dist/column/floorplan.d.ts.map +1 -1
  106. package/dist/column/floorplan.js +69 -12
  107. package/dist/column/hosted-resize.d.ts +215 -0
  108. package/dist/column/hosted-resize.d.ts.map +1 -0
  109. package/dist/column/hosted-resize.js +9 -0
  110. package/dist/column/panel.d.ts.map +1 -1
  111. package/dist/column/panel.js +153 -149
  112. package/dist/column/renderer.d.ts.map +1 -1
  113. package/dist/column/renderer.js +29 -105
  114. package/dist/column/shape.d.ts +22 -0
  115. package/dist/column/shape.d.ts.map +1 -0
  116. package/dist/column/shape.js +120 -0
  117. package/dist/column/surface.d.ts +4 -0
  118. package/dist/column/surface.d.ts.map +1 -0
  119. package/dist/column/surface.js +73 -0
  120. package/dist/construction-dimension/floorplan.js +7 -3
  121. package/dist/cupola/definition.d.ts.map +1 -1
  122. package/dist/cupola/definition.js +3 -8
  123. package/dist/cupola/panel.d.ts.map +1 -1
  124. package/dist/cupola/panel.js +5 -23
  125. package/dist/door/definition.d.ts.map +1 -1
  126. package/dist/door/definition.js +52 -4
  127. package/dist/door/door-math.d.ts +6 -11
  128. package/dist/door/door-math.d.ts.map +1 -1
  129. package/dist/door/door-math.js +13 -17
  130. package/dist/door/floorplan-affordances.d.ts.map +1 -1
  131. package/dist/door/floorplan-affordances.js +8 -12
  132. package/dist/door/floorplan-move.d.ts.map +1 -1
  133. package/dist/door/floorplan-move.js +3 -1
  134. package/dist/door/floorplan.d.ts.map +1 -1
  135. package/dist/door/floorplan.js +55 -21
  136. package/dist/door/mechanism.d.ts +4 -0
  137. package/dist/door/mechanism.d.ts.map +1 -0
  138. package/dist/door/mechanism.js +24 -0
  139. package/dist/door/move-tool.d.ts.map +1 -1
  140. package/dist/door/move-tool.js +75 -52
  141. package/dist/door/paint.d.ts.map +1 -1
  142. package/dist/door/paint.js +3 -0
  143. package/dist/door/panel.d.ts.map +1 -1
  144. package/dist/door/panel.js +54 -308
  145. package/dist/door/placement.d.ts +45 -0
  146. package/dist/door/placement.d.ts.map +1 -0
  147. package/dist/door/placement.js +51 -0
  148. package/dist/door/preview.d.ts.map +1 -1
  149. package/dist/door/preview.js +2 -0
  150. package/dist/door/renderer.d.ts.map +1 -1
  151. package/dist/door/renderer.js +3 -2
  152. package/dist/door/tool.d.ts.map +1 -1
  153. package/dist/door/tool.js +112 -23
  154. package/dist/dormer/csg-geometry.d.ts.map +1 -1
  155. package/dist/dormer/csg-geometry.js +2 -0
  156. package/dist/dormer/definition.d.ts.map +1 -1
  157. package/dist/dormer/definition.js +1 -0
  158. package/dist/dormer/paint.d.ts.map +1 -1
  159. package/dist/dormer/paint.js +2 -5
  160. package/dist/dormer/panel.d.ts.map +1 -1
  161. package/dist/dormer/panel.js +4 -14
  162. package/dist/downspout/definition.d.ts.map +1 -1
  163. package/dist/downspout/definition.js +3 -2
  164. package/dist/duct-fitting/definition.d.ts.map +1 -1
  165. package/dist/duct-fitting/definition.js +2 -1
  166. package/dist/duct-fitting/geometry.d.ts.map +1 -1
  167. package/dist/duct-fitting/geometry.js +1 -1
  168. package/dist/duct-fitting/move-tool.d.ts.map +1 -1
  169. package/dist/duct-fitting/move-tool.js +8 -2
  170. package/dist/duct-segment/definition.d.ts.map +1 -1
  171. package/dist/duct-segment/definition.js +2 -2
  172. package/dist/duct-segment/geometry.d.ts.map +1 -1
  173. package/dist/duct-segment/geometry.js +1 -1
  174. package/dist/duct-segment/move-tool.d.ts.map +1 -1
  175. package/dist/duct-segment/move-tool.js +8 -2
  176. package/dist/duct-segment/tool.d.ts.map +1 -1
  177. package/dist/duct-segment/tool.js +11 -0
  178. package/dist/duct-terminal/tool.d.ts.map +1 -1
  179. package/dist/duct-terminal/tool.js +77 -8
  180. package/dist/elevator/definition.d.ts.map +1 -1
  181. package/dist/elevator/definition.js +3 -2
  182. package/dist/elevator/panel.d.ts.map +1 -1
  183. package/dist/elevator/panel.js +5 -27
  184. package/dist/elevator/parametrics.d.ts.map +1 -1
  185. package/dist/elevator/parametrics.js +98 -1
  186. package/dist/elevator/renderer.d.ts.map +1 -1
  187. package/dist/elevator/renderer.js +3 -4
  188. package/dist/eyebrow-vent/definition.d.ts.map +1 -1
  189. package/dist/eyebrow-vent/definition.js +3 -5
  190. package/dist/eyebrow-vent/paint.d.ts.map +1 -1
  191. package/dist/eyebrow-vent/paint.js +3 -6
  192. package/dist/eyebrow-vent/panel.d.ts.map +1 -1
  193. package/dist/eyebrow-vent/panel.js +5 -23
  194. package/dist/fence/actions/move-endpoint.d.ts +1 -1
  195. package/dist/fence/actions/move-endpoint.d.ts.map +1 -1
  196. package/dist/fence/actions/move-endpoint.js +2 -1
  197. package/dist/fence/definition.d.ts +2 -1
  198. package/dist/fence/definition.d.ts.map +1 -1
  199. package/dist/fence/definition.js +84 -28
  200. package/dist/fence/drafting.d.ts +36 -0
  201. package/dist/fence/drafting.d.ts.map +1 -0
  202. package/dist/fence/drafting.js +210 -0
  203. package/dist/fence/feature-tool.d.ts +4 -0
  204. package/dist/fence/feature-tool.d.ts.map +1 -0
  205. package/dist/fence/feature-tool.js +140 -0
  206. package/dist/fence/features.d.ts +2 -0
  207. package/dist/fence/features.d.ts.map +1 -0
  208. package/dist/fence/features.js +12 -0
  209. package/dist/fence/floorplan-affordances.d.ts.map +1 -1
  210. package/dist/fence/floorplan-affordances.js +2 -1
  211. package/dist/fence/floorplan.d.ts +2 -3
  212. package/dist/fence/floorplan.d.ts.map +1 -1
  213. package/dist/fence/floorplan.js +131 -71
  214. package/dist/fence/geometry-parts.d.ts +50 -0
  215. package/dist/fence/geometry-parts.d.ts.map +1 -0
  216. package/dist/fence/geometry-parts.js +1144 -0
  217. package/dist/fence/geometry.d.ts +2 -3
  218. package/dist/fence/geometry.d.ts.map +1 -1
  219. package/dist/fence/geometry.js +84 -7
  220. package/dist/fence/index.d.ts +1 -0
  221. package/dist/fence/index.d.ts.map +1 -1
  222. package/dist/fence/index.js +1 -0
  223. package/dist/fence/inspector-editors.d.ts +15 -0
  224. package/dist/fence/inspector-editors.d.ts.map +1 -1
  225. package/dist/fence/inspector-editors.js +128 -3
  226. package/dist/fence/lift.d.ts.map +1 -1
  227. package/dist/fence/lift.js +5 -2
  228. package/dist/fence/move-tool.js +2 -1
  229. package/dist/fence/panel-model.d.ts +4 -0
  230. package/dist/fence/panel-model.d.ts.map +1 -0
  231. package/dist/fence/panel-model.js +12 -0
  232. package/dist/fence/parametrics.d.ts +0 -12
  233. package/dist/fence/parametrics.d.ts.map +1 -1
  234. package/dist/fence/parametrics.js +185 -18
  235. package/dist/fence/system.d.ts.map +1 -1
  236. package/dist/fence/system.js +141 -31
  237. package/dist/fence/tool.d.ts.map +1 -1
  238. package/dist/fence/tool.js +257 -48
  239. package/dist/fence-feature/actions.d.ts +7 -0
  240. package/dist/fence-feature/actions.d.ts.map +1 -0
  241. package/dist/fence-feature/actions.js +26 -0
  242. package/dist/fence-feature/definition.d.ts +4 -0
  243. package/dist/fence-feature/definition.d.ts.map +1 -0
  244. package/dist/fence-feature/definition.js +112 -0
  245. package/dist/fence-feature/floorplan-affordances.d.ts +3 -0
  246. package/dist/fence-feature/floorplan-affordances.d.ts.map +1 -0
  247. package/dist/fence-feature/floorplan-affordances.js +37 -0
  248. package/dist/fence-feature/floorplan.d.ts +4 -0
  249. package/dist/fence-feature/floorplan.d.ts.map +1 -0
  250. package/dist/fence-feature/floorplan.js +120 -0
  251. package/dist/fence-feature/geometry.d.ts +5 -0
  252. package/dist/fence-feature/geometry.d.ts.map +1 -0
  253. package/dist/fence-feature/geometry.js +43 -0
  254. package/dist/fence-feature/handles.d.ts +5 -0
  255. package/dist/fence-feature/handles.d.ts.map +1 -0
  256. package/dist/fence-feature/handles.js +84 -0
  257. package/dist/fence-feature/inspector.d.ts +6 -0
  258. package/dist/fence-feature/inspector.d.ts.map +1 -0
  259. package/dist/fence-feature/inspector.js +214 -0
  260. package/dist/fence-feature/interaction.d.ts +3 -0
  261. package/dist/fence-feature/interaction.d.ts.map +1 -0
  262. package/dist/fence-feature/interaction.js +41 -0
  263. package/dist/fence-feature/move-session.d.ts +9 -0
  264. package/dist/fence-feature/move-session.d.ts.map +1 -0
  265. package/dist/fence-feature/move-session.js +48 -0
  266. package/dist/fence-feature/move-tool.d.ts +5 -0
  267. package/dist/fence-feature/move-tool.d.ts.map +1 -0
  268. package/dist/fence-feature/move-tool.js +58 -0
  269. package/dist/fence-feature/pick-target.d.ts +7 -0
  270. package/dist/fence-feature/pick-target.d.ts.map +1 -0
  271. package/dist/fence-feature/pick-target.js +52 -0
  272. package/dist/floor-opening/definition.d.ts +3 -0
  273. package/dist/floor-opening/definition.d.ts.map +1 -0
  274. package/dist/floor-opening/definition.js +41 -0
  275. package/dist/floor-opening/floorplan.d.ts +156 -0
  276. package/dist/floor-opening/floorplan.d.ts.map +1 -0
  277. package/dist/floor-opening/floorplan.js +63 -0
  278. package/dist/guide/definition.d.ts.map +1 -1
  279. package/dist/guide/definition.js +1 -0
  280. package/dist/gutter/definition.d.ts.map +1 -1
  281. package/dist/gutter/definition.js +3 -2
  282. package/dist/hvac-equipment/tool.d.ts.map +1 -1
  283. package/dist/hvac-equipment/tool.js +8 -2
  284. package/dist/imported-mesh/definition.d.ts.map +1 -1
  285. package/dist/imported-mesh/definition.js +2 -0
  286. package/dist/imported-mesh/geometry.d.ts +1 -1
  287. package/dist/imported-mesh/geometry.d.ts.map +1 -1
  288. package/dist/imported-mesh/geometry.js +40 -12
  289. package/dist/index.d.ts +13 -2
  290. package/dist/index.d.ts.map +1 -1
  291. package/dist/index.js +20 -2
  292. package/dist/item/authored-face-host.d.ts +10 -0
  293. package/dist/item/authored-face-host.d.ts.map +1 -0
  294. package/dist/item/authored-face-host.js +87 -0
  295. package/dist/item/authored-params.d.ts +15 -0
  296. package/dist/item/authored-params.d.ts.map +1 -0
  297. package/dist/item/authored-params.js +72 -0
  298. package/dist/item/definition.d.ts +2 -2
  299. package/dist/item/definition.d.ts.map +1 -1
  300. package/dist/item/definition.js +35 -4
  301. package/dist/item/floorplan-move.d.ts.map +1 -1
  302. package/dist/item/floorplan-move.js +209 -130
  303. package/dist/item/floorplan.d.ts +22 -0
  304. package/dist/item/floorplan.d.ts.map +1 -1
  305. package/dist/item/floorplan.js +95 -6
  306. package/dist/item/index.d.ts +1 -0
  307. package/dist/item/index.d.ts.map +1 -1
  308. package/dist/item/index.js +1 -0
  309. package/dist/item/model-loader.d.ts +2 -0
  310. package/dist/item/model-loader.d.ts.map +1 -1
  311. package/dist/item/model-loader.js +55 -23
  312. package/dist/item/move-tool.d.ts +1 -1
  313. package/dist/item/move-tool.d.ts.map +1 -1
  314. package/dist/item/move-tool.js +19 -11
  315. package/dist/item/paint.d.ts.map +1 -1
  316. package/dist/item/paint.js +5 -24
  317. package/dist/item/panel.d.ts +1 -3
  318. package/dist/item/panel.d.ts.map +1 -1
  319. package/dist/item/panel.js +20 -24
  320. package/dist/item/placement-notice.d.ts +14 -0
  321. package/dist/item/placement-notice.d.ts.map +1 -0
  322. package/dist/item/placement-notice.js +38 -0
  323. package/dist/item/plan-symbols.d.ts +67 -0
  324. package/dist/item/plan-symbols.d.ts.map +1 -0
  325. package/dist/item/plan-symbols.js +407 -0
  326. package/dist/item/renderer.d.ts +10 -0
  327. package/dist/item/renderer.d.ts.map +1 -1
  328. package/dist/item/renderer.js +72 -40
  329. package/dist/item/script-param-defaults.d.ts +12 -0
  330. package/dist/item/script-param-defaults.d.ts.map +1 -0
  331. package/dist/item/script-param-defaults.js +34 -0
  332. package/dist/lean-to-extension/definition.d.ts.map +1 -1
  333. package/dist/lean-to-extension/definition.js +1 -2
  334. package/dist/lean-to-extension/geometry.d.ts.map +1 -1
  335. package/dist/lean-to-extension/geometry.js +1 -1
  336. package/dist/lean-to-extension/layout.d.ts.map +1 -1
  337. package/dist/lean-to-extension/layout.js +2 -3
  338. package/dist/lean-to-extension/placement-validation.d.ts.map +1 -1
  339. package/dist/lean-to-extension/placement-validation.js +5 -5
  340. package/dist/lean-to-extension/tool.d.ts.map +1 -1
  341. package/dist/lean-to-extension/tool.js +5 -5
  342. package/dist/level/renderer.js +1 -1
  343. package/dist/lineset/move-tool.d.ts.map +1 -1
  344. package/dist/lineset/move-tool.js +8 -2
  345. package/dist/lineset/tool.d.ts.map +1 -1
  346. package/dist/lineset/tool.js +1 -0
  347. package/dist/liquid-line/move-tool.d.ts.map +1 -1
  348. package/dist/liquid-line/move-tool.js +8 -2
  349. package/dist/liquid-line/tool.d.ts.map +1 -1
  350. package/dist/liquid-line/tool.js +5 -1
  351. package/dist/measurement/definition.d.ts.map +1 -1
  352. package/dist/measurement/definition.js +2 -1
  353. package/dist/pipe-fitting/move-tool.d.ts.map +1 -1
  354. package/dist/pipe-fitting/move-tool.js +8 -2
  355. package/dist/pipe-segment/move-tool.d.ts.map +1 -1
  356. package/dist/pipe-segment/move-tool.js +8 -2
  357. package/dist/pipe-segment/tool.d.ts.map +1 -1
  358. package/dist/pipe-segment/tool.js +14 -3
  359. package/dist/pipe-trap/tool.d.ts.map +1 -1
  360. package/dist/pipe-trap/tool.js +7 -8
  361. package/dist/procedural-item/animation.d.ts +8 -0
  362. package/dist/procedural-item/animation.d.ts.map +1 -0
  363. package/dist/procedural-item/animation.js +116 -0
  364. package/dist/procedural-item/definition.d.ts.map +1 -1
  365. package/dist/procedural-item/definition.js +77 -8
  366. package/dist/procedural-item/geometry.d.ts +5 -1
  367. package/dist/procedural-item/geometry.d.ts.map +1 -1
  368. package/dist/procedural-item/geometry.js +239 -15
  369. package/dist/procedural-item/renderer.d.ts.map +1 -1
  370. package/dist/procedural-item/renderer.js +272 -23
  371. package/dist/ridge-vent/definition.d.ts.map +1 -1
  372. package/dist/ridge-vent/definition.js +1 -0
  373. package/dist/ridge-vent/panel.d.ts.map +1 -1
  374. package/dist/ridge-vent/panel.js +5 -23
  375. package/dist/ridge-vent/renderer.d.ts.map +1 -1
  376. package/dist/ridge-vent/renderer.js +9 -8
  377. package/dist/roof/definition.d.ts.map +1 -1
  378. package/dist/roof/definition.js +8 -2
  379. package/dist/roof/floorplan.d.ts +8 -0
  380. package/dist/roof/floorplan.d.ts.map +1 -1
  381. package/dist/roof/floorplan.js +194 -18
  382. package/dist/roof/panel-model.d.ts +4 -0
  383. package/dist/roof/panel-model.d.ts.map +1 -0
  384. package/dist/roof/panel-model.js +155 -0
  385. package/dist/roof/panel.d.ts.map +1 -1
  386. package/dist/roof/panel.js +5 -13
  387. package/dist/roof/parametrics.d.ts.map +1 -1
  388. package/dist/roof/parametrics.js +16 -1
  389. package/dist/roof/renderer.d.ts.map +1 -1
  390. package/dist/roof/renderer.js +5 -2
  391. package/dist/roof-segment/definition.d.ts.map +1 -1
  392. package/dist/roof-segment/definition.js +1 -0
  393. package/dist/roof-segment/panel.d.ts.map +1 -1
  394. package/dist/roof-segment/panel.js +5 -24
  395. package/dist/roof-segment/parametrics.d.ts.map +1 -1
  396. package/dist/roof-segment/parametrics.js +176 -1
  397. package/dist/roof-segment/renderer.d.ts.map +1 -1
  398. package/dist/roof-segment/renderer.js +17 -8
  399. package/dist/scan/definition.d.ts.map +1 -1
  400. package/dist/scan/definition.js +1 -0
  401. package/dist/separator/definition.d.ts +3 -0
  402. package/dist/separator/definition.d.ts.map +1 -0
  403. package/dist/separator/definition.js +39 -0
  404. package/dist/separator/renderer.d.ts +5 -0
  405. package/dist/separator/renderer.d.ts.map +1 -0
  406. package/dist/separator/renderer.js +36 -0
  407. package/dist/shared/commit-opening-move.d.ts +4 -0
  408. package/dist/shared/commit-opening-move.d.ts.map +1 -0
  409. package/dist/shared/commit-opening-move.js +9 -0
  410. package/dist/shared/curtain-opening-limits.d.ts +14 -0
  411. package/dist/shared/curtain-opening-limits.d.ts.map +1 -0
  412. package/dist/shared/curtain-opening-limits.js +53 -0
  413. package/dist/shared/draft-axis-guides.d.ts +0 -6
  414. package/dist/shared/draft-axis-guides.d.ts.map +1 -1
  415. package/dist/shared/draft-axis-guides.js +1 -8
  416. package/dist/shared/duct-body-paint.d.ts +0 -4
  417. package/dist/shared/duct-body-paint.d.ts.map +1 -1
  418. package/dist/shared/duct-body-paint.js +1 -5
  419. package/dist/shared/hosted-resize.d.ts +12 -0
  420. package/dist/shared/hosted-resize.d.ts.map +1 -0
  421. package/dist/shared/hosted-resize.js +166 -0
  422. package/dist/shared/item-interaction-actions.d.ts +6 -0
  423. package/dist/shared/item-interaction-actions.d.ts.map +1 -0
  424. package/dist/shared/item-interaction-actions.js +27 -0
  425. package/dist/shared/item-interactions.d.ts +9 -0
  426. package/dist/shared/item-interactions.d.ts.map +1 -0
  427. package/dist/shared/item-interactions.js +74 -0
  428. package/dist/shared/item-light-placement.d.ts +2 -0
  429. package/dist/shared/item-light-placement.d.ts.map +1 -0
  430. package/dist/shared/item-light-placement.js +3 -0
  431. package/dist/shared/move-roof-tool.js +2 -1
  432. package/dist/shared/node-batch/batchable.d.ts +12 -0
  433. package/dist/shared/node-batch/batchable.d.ts.map +1 -0
  434. package/dist/shared/node-batch/batchable.js +41 -0
  435. package/dist/shared/node-batch/candidates.d.ts +7 -5
  436. package/dist/shared/node-batch/candidates.d.ts.map +1 -1
  437. package/dist/shared/node-batch/candidates.js +43 -59
  438. package/dist/shared/node-batch/release.d.ts +8 -0
  439. package/dist/shared/node-batch/release.d.ts.map +1 -0
  440. package/dist/shared/node-batch/release.js +16 -0
  441. package/dist/shared/node-batch/system.d.ts.map +1 -1
  442. package/dist/shared/node-batch/system.js +17 -12
  443. package/dist/shared/node-batch/types.d.ts +4 -1
  444. package/dist/shared/node-batch/types.d.ts.map +1 -1
  445. package/dist/shared/opening-documentation.d.ts +13 -1
  446. package/dist/shared/opening-documentation.d.ts.map +1 -1
  447. package/dist/shared/opening-documentation.js +245 -59
  448. package/dist/shared/opening-grid-follow.d.ts +8 -0
  449. package/dist/shared/opening-grid-follow.d.ts.map +1 -0
  450. package/dist/shared/opening-grid-follow.js +12 -0
  451. package/dist/shared/opening-guides-runtime.d.ts.map +1 -1
  452. package/dist/shared/opening-guides-runtime.js +17 -14
  453. package/dist/shared/opening-placement-dimensions.d.ts.map +1 -1
  454. package/dist/shared/opening-placement-dimensions.js +3 -3
  455. package/dist/shared/opening-plane-offset.d.ts +23 -0
  456. package/dist/shared/opening-plane-offset.d.ts.map +1 -0
  457. package/dist/shared/opening-plane-offset.js +24 -0
  458. package/dist/shared/opening-property-preview-host.d.ts +3 -0
  459. package/dist/shared/opening-property-preview-host.d.ts.map +1 -0
  460. package/dist/shared/opening-property-preview-host.js +21 -0
  461. package/dist/shared/opening-property-preview.d.ts +19 -0
  462. package/dist/shared/opening-property-preview.d.ts.map +1 -0
  463. package/dist/shared/opening-property-preview.js +99 -0
  464. package/dist/shared/polygon-centroid-move.d.ts.map +1 -1
  465. package/dist/shared/polygon-centroid-move.js +4 -1
  466. package/dist/shared/polygon-vertex-affordance.d.ts.map +1 -1
  467. package/dist/shared/polygon-vertex-affordance.js +19 -15
  468. package/dist/shared/resting-surface-plan.d.ts +2 -1
  469. package/dist/shared/resting-surface-plan.d.ts.map +1 -1
  470. package/dist/shared/resting-surface-plan.js +29 -4
  471. package/dist/shared/run-hangers.d.ts.map +1 -1
  472. package/dist/shared/run-hangers.js +5 -4
  473. package/dist/shared/scripted-opening-handles.d.ts +18 -0
  474. package/dist/shared/scripted-opening-handles.d.ts.map +1 -0
  475. package/dist/shared/scripted-opening-handles.js +53 -0
  476. package/dist/shared/scripted-opening.d.ts +25 -0
  477. package/dist/shared/scripted-opening.d.ts.map +1 -0
  478. package/dist/shared/scripted-opening.js +72 -0
  479. package/dist/shared/slot-paint.d.ts +14 -2
  480. package/dist/shared/slot-paint.d.ts.map +1 -1
  481. package/dist/shared/slot-paint.js +29 -29
  482. package/dist/shared/surface-counterparts.d.ts +12 -0
  483. package/dist/shared/surface-counterparts.d.ts.map +1 -0
  484. package/dist/shared/surface-counterparts.js +27 -0
  485. package/dist/shared/surface-paint.d.ts.map +1 -1
  486. package/dist/shared/surface-paint.js +2 -5
  487. package/dist/shared/swap-preview-material.d.ts +11 -0
  488. package/dist/shared/swap-preview-material.d.ts.map +1 -0
  489. package/dist/shared/swap-preview-material.js +16 -0
  490. package/dist/shared/system-checks.d.ts.map +1 -1
  491. package/dist/shared/system-checks.js +5 -3
  492. package/dist/shared/wall-attach-target.d.ts +4 -10
  493. package/dist/shared/wall-attach-target.d.ts.map +1 -1
  494. package/dist/shared/wall-attach-target.js +6 -63
  495. package/dist/shared/wall-event-from-grid.d.ts +5 -0
  496. package/dist/shared/wall-event-from-grid.d.ts.map +1 -0
  497. package/dist/shared/wall-event-from-grid.js +36 -0
  498. package/dist/shared/wall-opening-ceiling.d.ts +5 -15
  499. package/dist/shared/wall-opening-ceiling.d.ts.map +1 -1
  500. package/dist/shared/wall-opening-ceiling.js +10 -18
  501. package/dist/shelf/definition.d.ts.map +1 -1
  502. package/dist/shelf/definition.js +4 -2
  503. package/dist/shelf/floorplan.d.ts.map +1 -1
  504. package/dist/shelf/floorplan.js +9 -2
  505. package/dist/shelf/geometry.d.ts.map +1 -1
  506. package/dist/shelf/geometry.js +1 -2
  507. package/dist/shelf/paint.d.ts.map +1 -1
  508. package/dist/shelf/paint.js +4 -10
  509. package/dist/site/line-ribbon.d.ts +31 -0
  510. package/dist/site/line-ribbon.d.ts.map +1 -0
  511. package/dist/site/line-ribbon.js +117 -0
  512. package/dist/site/lot-mask.d.ts +18 -0
  513. package/dist/site/lot-mask.d.ts.map +1 -0
  514. package/dist/site/lot-mask.js +35 -0
  515. package/dist/site/panel.d.ts +10 -0
  516. package/dist/site/panel.d.ts.map +1 -0
  517. package/dist/site/panel.js +155 -0
  518. package/dist/site/parametrics.d.ts +7 -0
  519. package/dist/site/parametrics.d.ts.map +1 -1
  520. package/dist/site/parametrics.js +8 -0
  521. package/dist/site/recessed-slab-ground-holes.d.ts.map +1 -1
  522. package/dist/site/recessed-slab-ground-holes.js +5 -2
  523. package/dist/site/renderer.d.ts.map +1 -1
  524. package/dist/site/renderer.js +158 -20
  525. package/dist/site/setbacks.d.ts +33 -0
  526. package/dist/site/setbacks.d.ts.map +1 -0
  527. package/dist/site/setbacks.js +204 -0
  528. package/dist/site/terrain-geometry.d.ts +28 -1
  529. package/dist/site/terrain-geometry.d.ts.map +1 -1
  530. package/dist/site/terrain-geometry.js +78 -4
  531. package/dist/site/terrain-holes.d.ts +15 -0
  532. package/dist/site/terrain-holes.d.ts.map +1 -0
  533. package/dist/site/terrain-holes.js +74 -0
  534. package/dist/site/terrain-mesh.d.ts +9 -2
  535. package/dist/site/terrain-mesh.d.ts.map +1 -1
  536. package/dist/site/terrain-mesh.js +36 -9
  537. package/dist/site/terrain-renderer.d.ts +9 -2
  538. package/dist/site/terrain-renderer.d.ts.map +1 -1
  539. package/dist/site/terrain-renderer.js +14 -4
  540. package/dist/skylight/definition.d.ts.map +1 -1
  541. package/dist/skylight/definition.js +1 -0
  542. package/dist/slab/boundary-editor.d.ts +1 -1
  543. package/dist/slab/boundary-editor.d.ts.map +1 -1
  544. package/dist/slab/boundary-editor.js +13 -13
  545. package/dist/slab/definition.d.ts.map +1 -1
  546. package/dist/slab/definition.js +23 -3
  547. package/dist/slab/dependency-tracker.d.ts.map +1 -1
  548. package/dist/slab/dependency-tracker.js +67 -7
  549. package/dist/slab/elevation-limit.d.ts.map +1 -1
  550. package/dist/slab/elevation-limit.js +2 -2
  551. package/dist/slab/floorplan-affordances.d.ts +176 -4
  552. package/dist/slab/floorplan-affordances.d.ts.map +1 -1
  553. package/dist/slab/floorplan-affordances.js +0 -1
  554. package/dist/slab/floorplan-move.d.ts.map +1 -1
  555. package/dist/slab/floorplan-move.js +3 -4
  556. package/dist/slab/floorplan.d.ts +7 -0
  557. package/dist/slab/floorplan.d.ts.map +1 -1
  558. package/dist/slab/floorplan.js +22 -5
  559. package/dist/slab/geometry.d.ts.map +1 -1
  560. package/dist/slab/geometry.js +186 -76
  561. package/dist/slab/move-tool.js +7 -6
  562. package/dist/slab/paint.d.ts +18 -5
  563. package/dist/slab/paint.d.ts.map +1 -1
  564. package/dist/slab/paint.js +458 -9
  565. package/dist/slab/panel.d.ts.map +1 -1
  566. package/dist/slab/panel.js +28 -9
  567. package/dist/slab/placement-ownership.d.ts +2 -1
  568. package/dist/slab/placement-ownership.d.ts.map +1 -1
  569. package/dist/slab/placement-ownership.js +2 -2
  570. package/dist/slab/surface-split.d.ts +24 -0
  571. package/dist/slab/surface-split.d.ts.map +1 -0
  572. package/dist/slab/surface-split.js +389 -0
  573. package/dist/slab/tool.d.ts.map +1 -1
  574. package/dist/slab/tool.js +3 -3
  575. package/dist/solar-panel/definition.d.ts.map +1 -1
  576. package/dist/solar-panel/definition.js +1 -0
  577. package/dist/spawn/definition.d.ts.map +1 -1
  578. package/dist/spawn/definition.js +1 -0
  579. package/dist/stair/baluster-geometry.d.ts +21 -0
  580. package/dist/stair/baluster-geometry.d.ts.map +1 -0
  581. package/dist/stair/baluster-geometry.js +74 -0
  582. package/dist/stair/baluster-guard.d.ts +50 -0
  583. package/dist/stair/baluster-guard.d.ts.map +1 -0
  584. package/dist/stair/baluster-guard.js +71 -0
  585. package/dist/stair/boards-guard.d.ts +37 -0
  586. package/dist/stair/boards-guard.d.ts.map +1 -0
  587. package/dist/stair/boards-guard.js +61 -0
  588. package/dist/stair/cable-guard.d.ts +39 -0
  589. package/dist/stair/cable-guard.d.ts.map +1 -0
  590. package/dist/stair/cable-guard.js +105 -0
  591. package/dist/stair/construction-controls.d.ts +15 -0
  592. package/dist/stair/construction-controls.d.ts.map +1 -0
  593. package/dist/stair/construction-controls.js +29 -0
  594. package/dist/stair/continuous-railings.d.ts +10 -0
  595. package/dist/stair/continuous-railings.d.ts.map +1 -0
  596. package/dist/stair/continuous-railings.js +159 -0
  597. package/dist/stair/definition.d.ts.map +1 -1
  598. package/dist/stair/definition.js +18 -37
  599. package/dist/stair/documentation.d.ts +1 -1
  600. package/dist/stair/documentation.d.ts.map +1 -1
  601. package/dist/stair/documentation.js +10 -17
  602. package/dist/stair/floorplan-affordances.d.ts.map +1 -1
  603. package/dist/stair/floorplan-affordances.js +9 -25
  604. package/dist/stair/floorplan.d.ts +1 -23
  605. package/dist/stair/floorplan.d.ts.map +1 -1
  606. package/dist/stair/floorplan.js +102 -86
  607. package/dist/stair/glass-guard.d.ts +72 -0
  608. package/dist/stair/glass-guard.d.ts.map +1 -0
  609. package/dist/stair/glass-guard.js +167 -0
  610. package/dist/stair/guard-path.d.ts +119 -0
  611. package/dist/stair/guard-path.d.ts.map +1 -0
  612. package/dist/stair/guard-path.js +208 -0
  613. package/dist/stair/materials.d.ts +11 -0
  614. package/dist/stair/materials.d.ts.map +1 -0
  615. package/dist/stair/materials.js +51 -0
  616. package/dist/stair/metal-guard.d.ts +38 -0
  617. package/dist/stair/metal-guard.d.ts.map +1 -0
  618. package/dist/stair/metal-guard.js +79 -0
  619. package/dist/stair/paint.d.ts +32 -0
  620. package/dist/stair/paint.d.ts.map +1 -1
  621. package/dist/stair/paint.js +75 -36
  622. package/dist/stair/panel.d.ts.map +1 -1
  623. package/dist/stair/panel.js +154 -17
  624. package/dist/stair/parametrics.d.ts +1 -1
  625. package/dist/stair/parametrics.d.ts.map +1 -1
  626. package/dist/stair/parametrics.js +181 -1
  627. package/dist/stair/plan-entry.d.ts +31 -0
  628. package/dist/stair/plan-entry.d.ts.map +1 -0
  629. package/dist/stair/plan-entry.js +325 -0
  630. package/dist/stair/post-and-rail-guard.d.ts +31 -0
  631. package/dist/stair/post-and-rail-guard.d.ts.map +1 -0
  632. package/dist/stair/post-and-rail-guard.js +63 -0
  633. package/dist/stair/railing-controls.d.ts +9 -0
  634. package/dist/stair/railing-controls.d.ts.map +1 -0
  635. package/dist/stair/railing-controls.js +49 -0
  636. package/dist/stair/renderer.d.ts.map +1 -1
  637. package/dist/stair/renderer.js +259 -259
  638. package/dist/stair/use-stair-render-data.d.ts +317 -0
  639. package/dist/stair/use-stair-render-data.d.ts.map +1 -0
  640. package/dist/stair/use-stair-render-data.js +73 -0
  641. package/dist/stair-segment/definition.d.ts.map +1 -1
  642. package/dist/stair-segment/definition.js +52 -10
  643. package/dist/stair-segment/panel.d.ts.map +1 -1
  644. package/dist/stair-segment/panel.js +36 -42
  645. package/dist/stair-segment/parametrics.d.ts +1 -1
  646. package/dist/stair-segment/parametrics.d.ts.map +1 -1
  647. package/dist/stair-segment/parametrics.js +94 -1
  648. package/dist/stair-segment/renderer.d.ts.map +1 -1
  649. package/dist/stair-segment/renderer.js +16 -28
  650. package/dist/turbine-vent/definition.d.ts.map +1 -1
  651. package/dist/turbine-vent/definition.js +3 -5
  652. package/dist/turbine-vent/paint.d.ts.map +1 -1
  653. package/dist/turbine-vent/paint.js +2 -5
  654. package/dist/turbine-vent/panel.d.ts.map +1 -1
  655. package/dist/turbine-vent/panel.js +5 -23
  656. package/dist/unit/unit-panel.d.ts.map +1 -1
  657. package/dist/unit/unit-panel.js +6 -1
  658. package/dist/wall/actions.d.ts +3 -0
  659. package/dist/wall/actions.d.ts.map +1 -0
  660. package/dist/wall/actions.js +61 -0
  661. package/dist/wall/construction-dimensions.js +8 -5
  662. package/dist/wall/contextual-dimensions.js +4 -4
  663. package/dist/wall/curtain-opening-frame.d.ts +14 -0
  664. package/dist/wall/curtain-opening-frame.d.ts.map +1 -0
  665. package/dist/wall/curtain-opening-frame.js +111 -0
  666. package/dist/wall/curtain-panel-highlight.d.ts +3 -0
  667. package/dist/wall/curtain-panel-highlight.d.ts.map +1 -0
  668. package/dist/wall/curtain-panel-highlight.js +113 -0
  669. package/dist/wall/curtain-wall-adapter.d.ts +3 -0
  670. package/dist/wall/curtain-wall-adapter.d.ts.map +1 -0
  671. package/dist/wall/curtain-wall-adapter.js +55 -0
  672. package/dist/wall/curtain-wall-floorplan.d.ts +3 -0
  673. package/dist/wall/curtain-wall-floorplan.d.ts.map +1 -0
  674. package/dist/wall/curtain-wall-floorplan.js +91 -0
  675. package/dist/wall/curtain-wall-geometry.d.ts +4 -0
  676. package/dist/wall/curtain-wall-geometry.d.ts.map +1 -0
  677. package/dist/wall/curtain-wall-geometry.js +226 -0
  678. package/dist/wall/curtain-wall-layout.d.ts +16 -0
  679. package/dist/wall/curtain-wall-layout.d.ts.map +1 -0
  680. package/dist/wall/curtain-wall-layout.js +176 -0
  681. package/dist/wall/curtain-wall-materials.d.ts +5 -0
  682. package/dist/wall/curtain-wall-materials.d.ts.map +1 -0
  683. package/dist/wall/curtain-wall-materials.js +55 -0
  684. package/dist/wall/curtain-wall-panel.d.ts +14 -0
  685. package/dist/wall/curtain-wall-panel.d.ts.map +1 -0
  686. package/dist/wall/curtain-wall-panel.js +167 -0
  687. package/dist/wall/curtain-wall-piece-geometry.d.ts +5 -0
  688. package/dist/wall/curtain-wall-piece-geometry.d.ts.map +1 -0
  689. package/dist/wall/curtain-wall-piece-geometry.js +220 -0
  690. package/dist/wall/curtain-wall-shadow.d.ts +4 -0
  691. package/dist/wall/curtain-wall-shadow.d.ts.map +1 -0
  692. package/dist/wall/curtain-wall-shadow.js +15 -0
  693. package/dist/wall/curve-tool.d.ts.map +1 -1
  694. package/dist/wall/curve-tool.js +4 -0
  695. package/dist/wall/definition.d.ts +0 -15
  696. package/dist/wall/definition.d.ts.map +1 -1
  697. package/dist/wall/definition.js +92 -7
  698. package/dist/wall/floorplan-move.d.ts +1 -1
  699. package/dist/wall/floorplan-move.d.ts.map +1 -1
  700. package/dist/wall/floorplan-move.js +20 -83
  701. package/dist/wall/floorplan-tool.d.ts +4 -0
  702. package/dist/wall/floorplan-tool.d.ts.map +1 -0
  703. package/dist/wall/floorplan-tool.js +106 -0
  704. package/dist/wall/floorplan.d.ts +3 -1
  705. package/dist/wall/floorplan.d.ts.map +1 -1
  706. package/dist/wall/floorplan.js +189 -22
  707. package/dist/wall/length-patch.d.ts +3 -0
  708. package/dist/wall/length-patch.d.ts.map +1 -0
  709. package/dist/wall/length-patch.js +14 -0
  710. package/dist/wall/measurement.d.ts.map +1 -1
  711. package/dist/wall/measurement.js +5 -5
  712. package/dist/wall/move-endpoint-tool.d.ts.map +1 -1
  713. package/dist/wall/move-endpoint-tool.js +20 -7
  714. package/dist/wall/move-shared.d.ts.map +1 -1
  715. package/dist/wall/move-shared.js +11 -7
  716. package/dist/wall/move-tool.d.ts.map +1 -1
  717. package/dist/wall/move-tool.js +140 -148
  718. package/dist/wall/paint.d.ts +26 -15
  719. package/dist/wall/paint.d.ts.map +1 -1
  720. package/dist/wall/paint.js +339 -115
  721. package/dist/wall/panel-model.d.ts +22 -0
  722. package/dist/wall/panel-model.d.ts.map +1 -0
  723. package/dist/wall/panel-model.js +175 -0
  724. package/dist/wall/panel.d.ts.map +1 -1
  725. package/dist/wall/panel.js +233 -61
  726. package/dist/wall/parametrics.d.ts.map +1 -1
  727. package/dist/wall/parametrics.js +3 -0
  728. package/dist/wall/property-preview.d.ts +7 -0
  729. package/dist/wall/property-preview.d.ts.map +1 -0
  730. package/dist/wall/property-preview.js +31 -0
  731. package/dist/wall/rectangle-command.d.ts +248 -0
  732. package/dist/wall/rectangle-command.d.ts.map +1 -0
  733. package/dist/wall/rectangle-command.js +22 -0
  734. package/dist/wall/rectangle-tool.d.ts +2 -0
  735. package/dist/wall/rectangle-tool.d.ts.map +1 -0
  736. package/dist/wall/rectangle-tool.js +165 -0
  737. package/dist/wall/renderer.d.ts.map +1 -1
  738. package/dist/wall/renderer.js +9 -4
  739. package/dist/wall/split-floorplan-layer.d.ts +4 -0
  740. package/dist/wall/split-floorplan-layer.d.ts.map +1 -0
  741. package/dist/wall/split-floorplan-layer.js +71 -0
  742. package/dist/wall/split-pointer.d.ts +3 -0
  743. package/dist/wall/split-pointer.d.ts.map +1 -0
  744. package/dist/wall/split-pointer.js +95 -0
  745. package/dist/wall/split-preview.d.ts +55 -0
  746. package/dist/wall/split-preview.d.ts.map +1 -0
  747. package/dist/wall/split-preview.js +106 -0
  748. package/dist/wall/split-session.d.ts +16 -0
  749. package/dist/wall/split-session.d.ts.map +1 -0
  750. package/dist/wall/split-session.js +144 -0
  751. package/dist/wall/split-store.d.ts +16 -0
  752. package/dist/wall/split-store.d.ts.map +1 -0
  753. package/dist/wall/split-store.js +6 -0
  754. package/dist/wall/split-tool.d.ts +10 -0
  755. package/dist/wall/split-tool.d.ts.map +1 -0
  756. package/dist/wall/split-tool.js +95 -0
  757. package/dist/wall/system.d.ts.map +1 -1
  758. package/dist/wall/system.js +39 -5
  759. package/dist/wall/tool.d.ts.map +1 -1
  760. package/dist/wall/tool.js +114 -50
  761. package/dist/wall/treatment-level-data.d.ts +3 -2
  762. package/dist/wall/treatment-level-data.d.ts.map +1 -1
  763. package/dist/wall/treatment-level-data.js +17 -13
  764. package/dist/wall/treatments.d.ts +10 -10
  765. package/dist/wall/treatments.d.ts.map +1 -1
  766. package/dist/wall/treatments.js +67 -54
  767. package/dist/wall/wall-batch-system.d.ts +7 -0
  768. package/dist/wall/wall-batch-system.d.ts.map +1 -1
  769. package/dist/wall/wall-batch-system.js +38 -3
  770. package/dist/wall/wall-batch.d.ts +6 -0
  771. package/dist/wall/wall-batch.d.ts.map +1 -1
  772. package/dist/wall/wall-batch.js +7 -1
  773. package/dist/window/definition.d.ts.map +1 -1
  774. package/dist/window/definition.js +60 -5
  775. package/dist/window/floorplan-affordances.d.ts.map +1 -1
  776. package/dist/window/floorplan-affordances.js +8 -10
  777. package/dist/window/floorplan-move.d.ts.map +1 -1
  778. package/dist/window/floorplan-move.js +3 -1
  779. package/dist/window/floorplan.d.ts.map +1 -1
  780. package/dist/window/floorplan.js +145 -60
  781. package/dist/window/mechanism.d.ts +4 -0
  782. package/dist/window/mechanism.d.ts.map +1 -0
  783. package/dist/window/mechanism.js +20 -0
  784. package/dist/window/move-tool.d.ts.map +1 -1
  785. package/dist/window/move-tool.js +83 -54
  786. package/dist/window/paint.d.ts.map +1 -1
  787. package/dist/window/paint.js +3 -0
  788. package/dist/window/panel.d.ts.map +1 -1
  789. package/dist/window/panel.js +50 -144
  790. package/dist/window/placement.d.ts +23 -0
  791. package/dist/window/placement.d.ts.map +1 -0
  792. package/dist/window/placement.js +66 -0
  793. package/dist/window/preview.d.ts.map +1 -1
  794. package/dist/window/preview.js +2 -0
  795. package/dist/window/renderer.d.ts.map +1 -1
  796. package/dist/window/renderer.js +3 -2
  797. package/dist/window/tool.d.ts.map +1 -1
  798. package/dist/window/tool.js +130 -26
  799. package/dist/window/window-math.d.ts +6 -14
  800. package/dist/window/window-math.d.ts.map +1 -1
  801. package/dist/window/window-math.js +13 -22
  802. package/dist/zone/contextual-dimensions.d.ts.map +1 -1
  803. package/dist/zone/contextual-dimensions.js +6 -28
  804. package/dist/zone/definition.d.ts.map +1 -1
  805. package/dist/zone/definition.js +4 -3
  806. package/dist/zone/floorplan-affordances.d.ts +200 -0
  807. package/dist/zone/floorplan-affordances.d.ts.map +1 -1
  808. package/dist/zone/floorplan.d.ts +1 -1
  809. package/dist/zone/floorplan.d.ts.map +1 -1
  810. package/dist/zone/floorplan.js +93 -53
  811. package/dist/zone/quantities-panel.d.ts.map +1 -1
  812. package/dist/zone/quantities-panel.js +6 -33
  813. package/dist/zone/quick-measurement.d.ts +2 -2
  814. package/dist/zone/quick-measurement.d.ts.map +1 -1
  815. package/dist/zone/quick-measurement.js +6 -5
  816. package/dist/zone/renderer.d.ts +1 -1
  817. package/dist/zone/renderer.d.ts.map +1 -1
  818. package/dist/zone/renderer.js +58 -146
  819. package/dist/zone/room-clear-dimensions.js +3 -3
  820. package/dist/zone/room-documentation.d.ts.map +1 -1
  821. package/dist/zone/room-documentation.js +2 -6
  822. package/package.json +12 -12
  823. package/dist/block/slots.d.ts +0 -4
  824. package/dist/block/slots.d.ts.map +0 -1
  825. package/dist/block/slots.js +0 -17
  826. package/dist/cabinet/slots.d.ts +0 -4
  827. package/dist/cabinet/slots.d.ts.map +0 -1
  828. package/dist/cabinet/slots.js +0 -24
  829. package/dist/ceiling/slots.d.ts +0 -6
  830. package/dist/ceiling/slots.d.ts.map +0 -1
  831. package/dist/ceiling/slots.js +0 -7
  832. package/dist/column/slots.d.ts +0 -9
  833. package/dist/column/slots.d.ts.map +0 -1
  834. package/dist/column/slots.js +0 -19
  835. package/dist/door/slots.d.ts +0 -9
  836. package/dist/door/slots.d.ts.map +0 -1
  837. package/dist/door/slots.js +0 -20
  838. package/dist/elevator/slots.d.ts +0 -8
  839. package/dist/elevator/slots.d.ts.map +0 -1
  840. package/dist/elevator/slots.js +0 -17
  841. package/dist/fence/slots.d.ts +0 -10
  842. package/dist/fence/slots.d.ts.map +0 -1
  843. package/dist/fence/slots.js +0 -23
  844. package/dist/lean-to-extension/slots.d.ts +0 -5
  845. package/dist/lean-to-extension/slots.d.ts.map +0 -1
  846. package/dist/lean-to-extension/slots.js +0 -15
  847. package/dist/shared/opening-documentation-fields.d.ts +0 -16
  848. package/dist/shared/opening-documentation-fields.d.ts.map +0 -1
  849. package/dist/shared/opening-documentation-fields.js +0 -54
  850. package/dist/shelf/slots.d.ts +0 -9
  851. package/dist/shelf/slots.d.ts.map +0 -1
  852. package/dist/shelf/slots.js +0 -30
  853. package/dist/slab/slots.d.ts +0 -10
  854. package/dist/slab/slots.d.ts.map +0 -1
  855. package/dist/slab/slots.js +0 -20
  856. package/dist/stair/floor-stack.d.ts +0 -10
  857. package/dist/stair/floor-stack.d.ts.map +0 -1
  858. package/dist/stair/floor-stack.js +0 -115
  859. package/dist/stair/slots.d.ts +0 -7
  860. package/dist/stair/slots.d.ts.map +0 -1
  861. package/dist/stair/slots.js +0 -13
  862. package/dist/wall/slots.d.ts +0 -10
  863. package/dist/wall/slots.d.ts.map +0 -1
  864. package/dist/wall/slots.js +0 -84
  865. package/dist/window/slots.d.ts +0 -5
  866. package/dist/window/slots.d.ts.map +0 -1
  867. package/dist/window/slots.js +0 -11
@@ -1,4 +1,4 @@
1
- import { calculateLevelMiters, getWallArcData, getWallCurveFrameAt, getWallPlanFootprint, getWallThickness, isCurvedWall, WALL_SNAP_DISTANCE_M, } from '@pascal-app/core';
1
+ import { calculateLevelMiters, getWallArcData, getWallCurveFrameAt, getWallLocalFaceZ, getWallPlanFootprint, isCurvedWall, WALL_SNAP_DISTANCE_M, } from '@pascal-app/core';
2
2
  import { snapCabinetFootprintCenter } from './placement-snap';
3
3
  import { planToRunLocal, runLocalToPlan } from './run-layout';
4
4
  const EDGE_SNAP_THRESHOLD = 0.08;
@@ -190,7 +190,7 @@ function resolveCabinetWallUsableSpan({ depth, excludeIds, hit, nodes, parentLev
190
190
  const excluded = new Set(excludeIds);
191
191
  const frontNormal = [-hit.dirY, hit.dirX];
192
192
  const normalScale = hit.side === 'front' ? 1 : -1;
193
- const faceZ = normalScale * (getWallThickness(hit.wall) / 2);
193
+ const faceZ = getWallLocalFaceZ(hit.wall, hit.side === 'front' ? 'a' : 'b');
194
194
  const outerZ = faceZ + normalScale * depth;
195
195
  let start = 0;
196
196
  let end = hit.wallLength;
@@ -249,16 +249,16 @@ function cabinetRunWidthAndCenterOffset(cabinet, nodes) {
249
249
  }
250
250
  export function resolveCabinetWallFaceOffset({ hit, nodes, parentLevelId, }) {
251
251
  if (isCurvedWall(hit.wall)) {
252
- return (hit.side === 'front' ? 1 : -1) * (getWallThickness(hit.wall) / 2);
252
+ return getWallLocalFaceZ(hit.wall, hit.side === 'front' ? 'a' : 'b');
253
253
  }
254
254
  const walls = Object.values(nodes).filter((node) => node?.type === 'wall' && node.parentId === parentLevelId);
255
255
  if (walls.length === 0) {
256
- return (hit.side === 'front' ? 1 : -1) * (getWallThickness(hit.wall) / 2);
256
+ return getWallLocalFaceZ(hit.wall, hit.side === 'front' ? 'a' : 'b');
257
257
  }
258
258
  const miterData = calculateLevelMiters(walls);
259
259
  const footprint = getWallPlanFootprint(hit.wall, miterData);
260
260
  if (footprint.length < 3) {
261
- return (hit.side === 'front' ? 1 : -1) * (getWallThickness(hit.wall) / 2);
261
+ return getWallLocalFaceZ(hit.wall, hit.side === 'front' ? 'a' : 'b');
262
262
  }
263
263
  const frontNormal = [-hit.dirY, hit.dirX];
264
264
  const localPoints = footprint.map((point) => {
@@ -291,7 +291,7 @@ export function resolveCabinetWallFaceOffset({ hit, nodes, parentLevelId, }) {
291
291
  zIntersections.push(a.z + (b.z - a.z) * t);
292
292
  }
293
293
  if (zIntersections.length === 0) {
294
- return (hit.side === 'front' ? 1 : -1) * (getWallThickness(hit.wall) / 2);
294
+ return getWallLocalFaceZ(hit.wall, hit.side === 'front' ? 'a' : 'b');
295
295
  }
296
296
  return hit.side === 'front' ? Math.max(...zIntersections) : Math.min(...zIntersections);
297
297
  }
@@ -301,7 +301,7 @@ export function collectCabinetWallSnapNeighbors({ hit, nodes, excludeIds = [], p
301
301
  const frontNormal = [-hit.dirY, hit.dirX];
302
302
  const normalScale = hit.side === 'front' ? 1 : -1;
303
303
  const yaw = Math.atan2(frontNormal[0] * normalScale, frontNormal[1] * normalScale);
304
- const wallFaceOffset = getWallThickness(hit.wall) / 2;
304
+ const wallFaceOffset = getWallLocalFaceZ(hit.wall, hit.side === 'front' ? 'a' : 'b') * normalScale;
305
305
  const neighbors = [];
306
306
  const excluded = new Set(excludeIds);
307
307
  for (const node of Object.values(nodes)) {
@@ -353,7 +353,7 @@ export function resolveCabinetWallSnapPlacement({ depth, gridStep = 0, faceOffse
353
353
  const frontNormal = [frame.normal.x, frame.normal.y];
354
354
  const normalScale = hit.side === 'front' ? 1 : -1;
355
355
  const normal = [frontNormal[0] * normalScale, frontNormal[1] * normalScale];
356
- const resolvedFaceOffset = faceOffset ?? (normalScale * getWallThickness(hit.wall)) / 2;
356
+ const resolvedFaceOffset = faceOffset ?? getWallLocalFaceZ(hit.wall, hit.side === 'front' ? 'a' : 'b');
357
357
  const cabinetCenterOffset = resolvedFaceOffset + normalScale * (depth / 2);
358
358
  const guideOffset = resolvedFaceOffset;
359
359
  const guideStart = projectCabinetWallLocalPointToPlan(hit, Math.max(startStop, localX - halfWidth), guideOffset);
@@ -1 +1 @@
1
- {"version":3,"file":"boundary-editor.d.ts","sourceRoot":"","sources":["../../src/ceiling/boundary-editor.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,WAAW,EAKjB,MAAM,kBAAkB,CAAA;AAazB;;;;;;;;;;GAUG;AACH,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,CAAA;CAAE,CAwJ5E,CAAA;AAED,eAAe,qBAAqB,CAAA"}
1
+ {"version":3,"file":"boundary-editor.d.ts","sourceRoot":"","sources":["../../src/ceiling/boundary-editor.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,WAAW,EAKjB,MAAM,kBAAkB,CAAA;AAazB;;;;;;;;;;GAUG;AACH,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,CAAA;CAAE,CA0J5E,CAAA;AAED,eAAe,qBAAqB,CAAA"}
@@ -17,7 +17,7 @@ import { useCallback, useEffect, useMemo, useRef } from 'react';
17
17
  */
18
18
  export const CeilingBoundaryEditor = ({ ceilingId, }) => {
19
19
  const ceilingNode = useScene((s) => s.nodes[ceilingId]);
20
- const updateNode = useScene((s) => s.updateNode);
20
+ const detachDerivedNode = useScene((s) => s.detachDerivedNode);
21
21
  const markDirty = useScene((s) => s.markDirty);
22
22
  const setSelection = useViewer((s) => s.setSelection);
23
23
  const setHoveredId = useViewer((s) => s.setHoveredId);
@@ -35,9 +35,11 @@ export const CeilingBoundaryEditor = ({ ceilingId, }) => {
35
35
  : null;
36
36
  const handlePolygonChange = useCallback((newPolygon) => {
37
37
  clearCeilingSnapFeedback();
38
- updateNode(ceilingId, { polygon: newPolygon });
38
+ // Reshaping the boundary is the sanctioned conversion of a derived
39
+ // ceiling into an authored one — the reconciler stops owning it here.
40
+ detachDerivedNode(ceilingId, { polygon: newPolygon });
39
41
  setSelection({ selectedIds: [ceilingId] });
40
- }, [ceilingId, updateNode, setSelection]);
42
+ }, [ceilingId, detachDerivedNode, setSelection]);
41
43
  const handlePolygonPreview = useCallback((preview) => {
42
44
  if (preview) {
43
45
  ownsPolygonPreviewRef.current = true;
@@ -7,10 +7,10 @@ import { CeilingNode } from './schema';
7
7
  *
8
8
  * **Stage B intentionally skipped**: pure `def.geometry` extraction
9
9
  * would lose the React children rendering (hosted items) and the
10
- * named-mesh structure. Ceiling keeps `def.renderer` as the custom
11
- * escape hatch (per plans/editor-node-registry.md "custom-behavior
12
- * escape hatch"). Renderer wraps the legacy CeilingRenderer; system
13
- * wraps the legacy CeilingSystem.
10
+ * named-mesh structure. Ceiling keeps `def.renderer` as its escape hatch
11
+ * ("Opting out of a generic path" in wiki/architecture/node-definitions.md).
12
+ * Renderer wraps the legacy CeilingRenderer; system wraps the legacy
13
+ * CeilingSystem.
14
14
  *
15
15
  * **Stage C completed**: `def.floorplan` builder draws the ceiling
16
16
  * polygon as a dashed outline in floor plan; legacy `ceilingPolygons`
@@ -1 +1 @@
1
- {"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/ceiling/definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,cAAc,EAIpB,MAAM,kBAAkB,CAAA;AAmBzB,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAmFtC;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,iBAAiB,EAAE,cAAc,CAAC,OAAO,WAAW,CAiHhE,CAAA"}
1
+ {"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/ceiling/definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,cAAc,EAIpB,MAAM,kBAAkB,CAAA;AAuBzB,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AA+EtC;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,iBAAiB,EAAE,cAAc,CAAC,OAAO,WAAW,CAuHhE,CAAA"}
@@ -1,25 +1,24 @@
1
- import { getCeilingClampBound, resolveCeilingHeight, useScene, } from '@pascal-app/core';
1
+ import { ceilingSlots, resolveCeilingHeight, useScene, } from '@pascal-app/core';
2
2
  import { clearStructuralElevationGuide, DRAFTING_SURFACE_EXTENSION_KEY, publishStructuralElevationGuide, resolveStructuralElevationSnap, } from '@pascal-app/editor';
3
+ import { surfaceBatchable } from '../shared/node-batch/batchable';
3
4
  import { polygonMeasurementFeatures } from '../shared/polygon-measurement';
5
+ import { sameOutlineSurfaceCounterparts } from '../shared/surface-counterparts';
4
6
  import { buildCeilingFloorplan } from './floorplan';
5
7
  import { ceilingAddVertexAffordance, ceilingDeleteVertexAffordance, ceilingMoveEdgeAffordance, ceilingMoveVertexAffordance, } from './floorplan-affordances';
6
8
  import { ceilingFloorplanMoveTarget } from './floorplan-move';
9
+ import { CEILING_HANDLE_MIN_HEIGHT, ceilingHeightRange } from './height-bounds';
7
10
  import { ceilingPaint } from './paint';
8
11
  import { ceilingParametrics } from './parametrics';
9
12
  import { CeilingNode } from './schema';
10
- import { ceilingSlots } from './slots';
11
13
  const HEIGHT_HANDLE_OFFSET = 0.22;
12
- const MIN_CEILING_HEIGHT = 0.5;
13
14
  // Ceilings no longer drive the storey height; the stored level height
14
15
  // does. Height writes clamp under min(storey plane, lowest underside of
15
16
  // any covering slab from the level above) − CEILING_CLAMP_MARGIN, so a
16
17
  // ceiling can poke into neither the level above nor a deck hanging from
17
- // it (clamp, never ask).
18
- function ceilingHeightBound(n, sceneApi) {
19
- const parent = n.parentId ? sceneApi.get(n.parentId) : undefined;
20
- return parent?.type === 'level'
21
- ? getCeilingClampBound(parent.id, sceneApi.nodes(), n.polygon ?? [])
22
- : Number.POSITIVE_INFINITY;
18
+ // it (clamp, never ask). On a level above grade the ceiling may hang below
19
+ // the level floor down to grade (soffits owned by a roof level).
20
+ function ceilingHeightBounds(n, sceneApi) {
21
+ return ceilingHeightRange(n, sceneApi.nodes(), CEILING_HANDLE_MIN_HEIGHT);
23
22
  }
24
23
  function ceilingPolygonCenter(n) {
25
24
  const polygon = n.polygon ?? [];
@@ -59,8 +58,8 @@ function ceilingHeightHandle() {
59
58
  kind: 'linear-resize',
60
59
  axis: 'y',
61
60
  anchor: 'min',
62
- min: MIN_CEILING_HEIGHT,
63
- max: ceilingHeightBound,
61
+ min: (n, sceneApi) => ceilingHeightBounds(n, sceneApi).min,
62
+ max: (n, sceneApi) => ceilingHeightBounds(n, sceneApi).max,
64
63
  currentValue: (n) => resolveCeilingHeight(n, useScene.getState().nodes),
65
64
  magneticSnap: (n, newValue, sceneApi) => resolveStructuralElevationSnap(ceilingElevationGuideSource(n), newValue, sceneApi.nodes()),
66
65
  onDrag: (n, sceneApi) => publishStructuralElevationGuide(ceilingElevationGuideSource(n), resolveCeilingHeight(n, sceneApi.nodes()), sceneApi.nodes()),
@@ -84,10 +83,10 @@ function ceilingHandles(_node) {
84
83
  *
85
84
  * **Stage B intentionally skipped**: pure `def.geometry` extraction
86
85
  * would lose the React children rendering (hosted items) and the
87
- * named-mesh structure. Ceiling keeps `def.renderer` as the custom
88
- * escape hatch (per plans/editor-node-registry.md "custom-behavior
89
- * escape hatch"). Renderer wraps the legacy CeilingRenderer; system
90
- * wraps the legacy CeilingSystem.
86
+ * named-mesh structure. Ceiling keeps `def.renderer` as its escape hatch
87
+ * ("Opting out of a generic path" in wiki/architecture/node-definitions.md).
88
+ * Renderer wraps the legacy CeilingRenderer; system wraps the legacy
89
+ * CeilingSystem.
91
90
  *
92
91
  * **Stage C completed**: `def.floorplan` builder draws the ceiling
93
92
  * polygon as a dashed outline in floor plan; legacy `ceilingPolygons`
@@ -105,6 +104,9 @@ export const ceilingDefinition = {
105
104
  kind: 'ceiling',
106
105
  raycast: 'underside',
107
106
  },
107
+ 'pascal:editor/floorplan': {
108
+ selectionCounterparts: sameOutlineSurfaceCounterparts,
109
+ },
108
110
  },
109
111
  // Height-less on purpose: a new ceiling follows the level top until the
110
112
  // user gives it an explicit custom height.
@@ -120,8 +122,10 @@ export const ceilingDefinition = {
120
122
  autoFromWalls: false,
121
123
  }),
122
124
  capabilities: {
125
+ batchable: surfaceBatchable,
123
126
  selectable: { hitVolume: 'bbox' },
124
127
  surfaces: {
128
+ hosting: false,
125
129
  top: {
126
130
  height: (n) => resolveCeilingHeight(n, useScene.getState().nodes),
127
131
  },
@@ -167,6 +171,7 @@ export const ceilingDefinition = {
167
171
  priority: 4,
168
172
  },
169
173
  floorplan: buildCeilingFloorplan,
174
+ floorplanDependsOnSiblings: true,
170
175
  // 2D move handler — translates polygon by cursor delta from first
171
176
  // pointer position. Mirror of slab; 3D `MoveCeilingTool` skips
172
177
  // 2D-sourced grid events so they don't double-write on commit.
@@ -9,7 +9,8 @@ export declare const ceilingMoveVertexAffordance: import("@pascal-app/core").Flo
9
9
  polygon: [number, number][];
10
10
  holes: [number, number][][];
11
11
  holeMetadata: {
12
- source: "stair" | "elevator" | "manual";
12
+ source: "room" | "stair" | "elevator" | "manual" | "floor-opening";
13
+ openingId?: string | undefined;
13
14
  stairId?: string | undefined;
14
15
  elevatorId?: string | undefined;
15
16
  }[];
@@ -22,6 +23,17 @@ export declare const ceilingMoveVertexAffordance: import("@pascal-app/core").Flo
22
23
  fov?: number | undefined;
23
24
  zoom?: number | undefined;
24
25
  } | undefined;
26
+ provenance?: {
27
+ refs: {
28
+ id: string;
29
+ ns?: string | undefined;
30
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
31
+ }[];
32
+ lineage?: {
33
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
34
+ fromIds: string[];
35
+ } | undefined;
36
+ } | undefined;
25
37
  material?: {
26
38
  id?: string | undefined;
27
39
  preset?: "custom" | "white" | "brick" | "concrete" | "wood" | "glass" | "metal" | "plaster" | "tile" | "marble" | undefined;
@@ -41,7 +53,15 @@ export declare const ceilingMoveVertexAffordance: import("@pascal-app/core").Flo
41
53
  } | undefined;
42
54
  materialPreset?: string | undefined;
43
55
  slots?: Record<string, string> | undefined;
56
+ openingIds?: string[] | undefined;
44
57
  height?: number | undefined;
58
+ regions?: {
59
+ id: string;
60
+ polygon: [number, number][];
61
+ finish: string | Record<string, unknown>;
62
+ }[] | undefined;
63
+ boundary?: "auto" | undefined;
64
+ zoneId?: string | undefined;
45
65
  }>;
46
66
  export declare const ceilingAddVertexAffordance: import("@pascal-app/core").FloorplanAffordance<{
47
67
  object: "node";
@@ -54,7 +74,8 @@ export declare const ceilingAddVertexAffordance: import("@pascal-app/core").Floo
54
74
  polygon: [number, number][];
55
75
  holes: [number, number][][];
56
76
  holeMetadata: {
57
- source: "stair" | "elevator" | "manual";
77
+ source: "room" | "stair" | "elevator" | "manual" | "floor-opening";
78
+ openingId?: string | undefined;
58
79
  stairId?: string | undefined;
59
80
  elevatorId?: string | undefined;
60
81
  }[];
@@ -67,6 +88,17 @@ export declare const ceilingAddVertexAffordance: import("@pascal-app/core").Floo
67
88
  fov?: number | undefined;
68
89
  zoom?: number | undefined;
69
90
  } | undefined;
91
+ provenance?: {
92
+ refs: {
93
+ id: string;
94
+ ns?: string | undefined;
95
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
96
+ }[];
97
+ lineage?: {
98
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
99
+ fromIds: string[];
100
+ } | undefined;
101
+ } | undefined;
70
102
  material?: {
71
103
  id?: string | undefined;
72
104
  preset?: "custom" | "white" | "brick" | "concrete" | "wood" | "glass" | "metal" | "plaster" | "tile" | "marble" | undefined;
@@ -86,7 +118,15 @@ export declare const ceilingAddVertexAffordance: import("@pascal-app/core").Floo
86
118
  } | undefined;
87
119
  materialPreset?: string | undefined;
88
120
  slots?: Record<string, string> | undefined;
121
+ openingIds?: string[] | undefined;
89
122
  height?: number | undefined;
123
+ regions?: {
124
+ id: string;
125
+ polygon: [number, number][];
126
+ finish: string | Record<string, unknown>;
127
+ }[] | undefined;
128
+ boundary?: "auto" | undefined;
129
+ zoneId?: string | undefined;
90
130
  }>;
91
131
  export declare const ceilingMoveEdgeAffordance: import("@pascal-app/core").FloorplanAffordance<{
92
132
  object: "node";
@@ -99,7 +139,8 @@ export declare const ceilingMoveEdgeAffordance: import("@pascal-app/core").Floor
99
139
  polygon: [number, number][];
100
140
  holes: [number, number][][];
101
141
  holeMetadata: {
102
- source: "stair" | "elevator" | "manual";
142
+ source: "room" | "stair" | "elevator" | "manual" | "floor-opening";
143
+ openingId?: string | undefined;
103
144
  stairId?: string | undefined;
104
145
  elevatorId?: string | undefined;
105
146
  }[];
@@ -112,6 +153,17 @@ export declare const ceilingMoveEdgeAffordance: import("@pascal-app/core").Floor
112
153
  fov?: number | undefined;
113
154
  zoom?: number | undefined;
114
155
  } | undefined;
156
+ provenance?: {
157
+ refs: {
158
+ id: string;
159
+ ns?: string | undefined;
160
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
161
+ }[];
162
+ lineage?: {
163
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
164
+ fromIds: string[];
165
+ } | undefined;
166
+ } | undefined;
115
167
  material?: {
116
168
  id?: string | undefined;
117
169
  preset?: "custom" | "white" | "brick" | "concrete" | "wood" | "glass" | "metal" | "plaster" | "tile" | "marble" | undefined;
@@ -131,7 +183,15 @@ export declare const ceilingMoveEdgeAffordance: import("@pascal-app/core").Floor
131
183
  } | undefined;
132
184
  materialPreset?: string | undefined;
133
185
  slots?: Record<string, string> | undefined;
186
+ openingIds?: string[] | undefined;
134
187
  height?: number | undefined;
188
+ regions?: {
189
+ id: string;
190
+ polygon: [number, number][];
191
+ finish: string | Record<string, unknown>;
192
+ }[] | undefined;
193
+ boundary?: "auto" | undefined;
194
+ zoneId?: string | undefined;
135
195
  }>;
136
196
  export declare const ceilingDeleteVertexAffordance: import("@pascal-app/core").FloorplanAffordance<{
137
197
  object: "node";
@@ -144,7 +204,8 @@ export declare const ceilingDeleteVertexAffordance: import("@pascal-app/core").F
144
204
  polygon: [number, number][];
145
205
  holes: [number, number][][];
146
206
  holeMetadata: {
147
- source: "stair" | "elevator" | "manual";
207
+ source: "room" | "stair" | "elevator" | "manual" | "floor-opening";
208
+ openingId?: string | undefined;
148
209
  stairId?: string | undefined;
149
210
  elevatorId?: string | undefined;
150
211
  }[];
@@ -157,6 +218,17 @@ export declare const ceilingDeleteVertexAffordance: import("@pascal-app/core").F
157
218
  fov?: number | undefined;
158
219
  zoom?: number | undefined;
159
220
  } | undefined;
221
+ provenance?: {
222
+ refs: {
223
+ id: string;
224
+ ns?: string | undefined;
225
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
226
+ }[];
227
+ lineage?: {
228
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
229
+ fromIds: string[];
230
+ } | undefined;
231
+ } | undefined;
160
232
  material?: {
161
233
  id?: string | undefined;
162
234
  preset?: "custom" | "white" | "brick" | "concrete" | "wood" | "glass" | "metal" | "plaster" | "tile" | "marble" | undefined;
@@ -176,6 +248,14 @@ export declare const ceilingDeleteVertexAffordance: import("@pascal-app/core").F
176
248
  } | undefined;
177
249
  materialPreset?: string | undefined;
178
250
  slots?: Record<string, string> | undefined;
251
+ openingIds?: string[] | undefined;
179
252
  height?: number | undefined;
253
+ regions?: {
254
+ id: string;
255
+ polygon: [number, number][];
256
+ finish: string | Record<string, unknown>;
257
+ }[] | undefined;
258
+ boundary?: "auto" | undefined;
259
+ zoneId?: string | undefined;
180
260
  }>;
181
261
  //# sourceMappingURL=floorplan-affordances.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"floorplan-affordances.d.ts","sourceRoot":"","sources":["../../src/ceiling/floorplan-affordances.ts"],"names":[],"mappings":"AAqCA,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGvC,CAAA;AACD,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGtC,CAAA;AACD,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGrC,CAAA;AACD,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGzC,CAAA"}
1
+ {"version":3,"file":"floorplan-affordances.d.ts","sourceRoot":"","sources":["../../src/ceiling/floorplan-affordances.ts"],"names":[],"mappings":"AAoCA,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGvC,CAAA;AACD,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGtC,CAAA;AACD,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGrC,CAAA;AACD,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGzC,CAAA"}
@@ -8,7 +8,6 @@ import { createPolygonAddVertexAffordance, createPolygonDeleteVertexAffordance,
8
8
  * full contract.
9
9
  */
10
10
  const ceilingSnapOptions = {
11
- boundaryCommitData: { autoFromWalls: false },
12
11
  resolvePlanPoint({ node, nodes, rawPoint, fallbackPoint, }) {
13
12
  const sceneNodes = nodes;
14
13
  return resolveCeilingPlanPointSnap({
@@ -1 +1 @@
1
- {"version":3,"file":"floorplan-move.d.ts","sourceRoot":"","sources":["../../src/ceiling/floorplan-move.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,mBAAmB,EAAwB,MAAM,kBAAkB,CAAA;AAGnG;;;;;;;;GAQG;AACH,eAAO,MAAM,0BAA0B,EAAE,mBAAmB,CAAC,WAAW,CAMpE,CAAA"}
1
+ {"version":3,"file":"floorplan-move.d.ts","sourceRoot":"","sources":["../../src/ceiling/floorplan-move.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,mBAAmB,EAAwB,MAAM,kBAAkB,CAAA;AAGnG;;;;;;;;GAQG;AACH,eAAO,MAAM,0BAA0B,EAAE,mBAAmB,CAAC,WAAW,CAKpE,CAAA"}
@@ -13,5 +13,4 @@ export const ceilingFloorplanMoveTarget = ({ node, nodes }) => createPolygonCent
13
13
  node,
14
14
  nodes,
15
15
  meshY: resolveCeilingHeight(node, nodes) - 0.01,
16
- extraCommitData: node.autoFromWalls ? { autoFromWalls: false } : undefined,
17
16
  });
@@ -1,4 +1,4 @@
1
- import type { CeilingNode, FloorplanGeometry, GeometryContext } from '@pascal-app/core';
1
+ import { type CeilingNode, type FloorplanGeometry, type GeometryContext } from '@pascal-app/core';
2
2
  /**
3
3
  * Stage C floor-plan builder for ceiling. Dashed boundary (ceilings sit
4
4
  * above the slab); when selected, mounts the same boundary editor as
@@ -1 +1 @@
1
- {"version":3,"file":"floorplan.d.ts","sourceRoot":"","sources":["../../src/ceiling/floorplan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EAEjB,eAAe,EAChB,MAAM,kBAAkB,CAAA;AAEzB;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,WAAW,EACjB,GAAG,EAAE,eAAe,GACnB,iBAAiB,GAAG,IAAI,CA+C1B"}
1
+ {"version":3,"file":"floorplan.d.ts","sourceRoot":"","sources":["../../src/ceiling/floorplan.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,WAAW,EAEhB,KAAK,iBAAiB,EAEtB,KAAK,eAAe,EAErB,MAAM,kBAAkB,CAAA;AAEzB;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,WAAW,EACjB,GAAG,EAAE,eAAe,GACnB,iBAAiB,GAAG,IAAI,CA+C1B"}
@@ -1,3 +1,4 @@
1
+ import { cutterContextNodes, hostedCutterHoles, } from '@pascal-app/core';
1
2
  /**
2
3
  * Stage C floor-plan builder for ceiling. Dashed boundary (ceilings sit
3
4
  * above the slab); when selected, mounts the same boundary editor as
@@ -22,7 +23,7 @@ export function buildCeilingFloorplan(node, ctx) {
22
23
  };
23
24
  const segments = [ring(outer)];
24
25
  const holes = node.holes ?? [];
25
- for (const hole of holes) {
26
+ for (const hole of [...holes, ...hostedCutterHoles(node, cutterContextNodes(node, ctx))]) {
26
27
  if (hole.length < 3)
27
28
  continue;
28
29
  segments.push(ring(hole.map(([x, z]) => [x, z])));
@@ -0,0 +1,19 @@
1
+ import { type AnyNode, type AnyNodeId, type CeilingNode } from '@pascal-app/core';
2
+ /** Handle floor for a ceiling at grade: keeps the drag arrow off the floor. */
3
+ export declare const CEILING_HANDLE_MIN_HEIGHT = 0.5;
4
+ /** Panel slider floor for a ceiling at grade. */
5
+ export declare const CEILING_PANEL_MIN_HEIGHT = 0;
6
+ export type CeilingHeightRange = {
7
+ min: number;
8
+ max: number;
9
+ };
10
+ /**
11
+ * Where a ceiling's stored height may go. `max` clamps under the storey
12
+ * plane and any covering slab from the level above (clamp, never ask);
13
+ * `min` lets a ceiling on a level above grade hang down to grade, and
14
+ * keeps `atGradeMin` on the ground storey.
15
+ */
16
+ export declare function ceilingHeightRange(ceiling: Pick<CeilingNode, 'parentId' | 'polygon'>, nodes: Record<AnyNodeId, AnyNode>, atGradeMin: number): CeilingHeightRange;
17
+ /** Same order as the slider and handle clamps: the upper bound wins a conflict. */
18
+ export declare function clampCeilingHeight(height: number, range: CeilingHeightRange): number;
19
+ //# sourceMappingURL=height-bounds.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"height-bounds.d.ts","sourceRoot":"","sources":["../../src/ceiling/height-bounds.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,KAAK,WAAW,EAGjB,MAAM,kBAAkB,CAAA;AAEzB,+EAA+E;AAC/E,eAAO,MAAM,yBAAyB,MAAM,CAAA;AAC5C,iDAAiD;AACjD,eAAO,MAAM,wBAAwB,IAAI,CAAA;AAEzC,MAAM,MAAM,kBAAkB,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAA;AAE7D;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,SAAS,CAAC,EAClD,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,EACjC,UAAU,EAAE,MAAM,GACjB,kBAAkB,CAOpB;AAED,mFAAmF;AACnF,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,GAAG,MAAM,CAEpF"}
@@ -0,0 +1,24 @@
1
+ import { getCeilingClampBound, getCeilingMinHeight, } from '@pascal-app/core';
2
+ /** Handle floor for a ceiling at grade: keeps the drag arrow off the floor. */
3
+ export const CEILING_HANDLE_MIN_HEIGHT = 0.5;
4
+ /** Panel slider floor for a ceiling at grade. */
5
+ export const CEILING_PANEL_MIN_HEIGHT = 0;
6
+ /**
7
+ * Where a ceiling's stored height may go. `max` clamps under the storey
8
+ * plane and any covering slab from the level above (clamp, never ask);
9
+ * `min` lets a ceiling on a level above grade hang down to grade, and
10
+ * keeps `atGradeMin` on the ground storey.
11
+ */
12
+ export function ceilingHeightRange(ceiling, nodes, atGradeMin) {
13
+ const parent = ceiling.parentId ? nodes[ceiling.parentId] : undefined;
14
+ if (parent?.type !== 'level')
15
+ return { min: atGradeMin, max: Number.POSITIVE_INFINITY };
16
+ return {
17
+ min: getCeilingMinHeight(parent.id, nodes, atGradeMin),
18
+ max: getCeilingClampBound(parent.id, nodes, ceiling.polygon ?? []),
19
+ };
20
+ }
21
+ /** Same order as the slider and handle clamps: the upper bound wins a conflict. */
22
+ export function clampCeilingHeight(height, range) {
23
+ return Math.min(range.max, Math.max(range.min, height));
24
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"hole-editor.d.ts","sourceRoot":"","sources":["../../src/ceiling/hole-editor.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,WAAW,EAKjB,MAAM,kBAAkB,CAAA;AAKzB;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC;IACvC,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,CAAA;IAC5B,SAAS,EAAE,MAAM,CAAA;CAClB,CAwDA,CAAA;AAED,eAAe,iBAAiB,CAAA"}
1
+ {"version":3,"file":"hole-editor.d.ts","sourceRoot":"","sources":["../../src/ceiling/hole-editor.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,WAAW,EAKjB,MAAM,kBAAkB,CAAA;AAKzB;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC;IACvC,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,CAAA;IAC5B,SAAS,EAAE,MAAM,CAAA;CAClB,CAuDA,CAAA;AAED,eAAe,iBAAiB,CAAA"}
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import { resolveCeilingHeight, resolveLevelId, useLiveNodeOverrides, useScene, } from '@pascal-app/core';
4
- import { PolygonEditor } from '@pascal-app/editor';
4
+ import { PolygonEditor, setCeilingHoles } from '@pascal-app/editor';
5
5
  import { useViewer } from '@pascal-app/viewer';
6
6
  import { useCallback, useEffect } from 'react';
7
7
  /**
@@ -9,7 +9,6 @@ import { useCallback, useEffect } from 'react';
9
9
  */
10
10
  export const CeilingHoleEditor = ({ ceilingId, holeIndex }) => {
11
11
  const ceilingNode = useScene((s) => s.nodes[ceilingId]);
12
- const updateNode = useScene((s) => s.updateNode);
13
12
  const markDirty = useScene((s) => s.markDirty);
14
13
  const setSelection = useViewer((s) => s.setSelection);
15
14
  const ceiling = ceilingNode?.type === 'ceiling' ? ceilingNode : null;
@@ -18,9 +17,9 @@ export const CeilingHoleEditor = ({ ceilingId, holeIndex }) => {
18
17
  const handlePolygonChange = useCallback((newPolygon) => {
19
18
  const updatedHoles = [...holes];
20
19
  updatedHoles[holeIndex] = newPolygon;
21
- updateNode(ceilingId, { holes: updatedHoles });
20
+ setCeilingHoles(ceilingId, { holes: updatedHoles });
22
21
  setSelection({ selectedIds: [ceilingId] });
23
- }, [ceilingId, holeIndex, holes, updateNode, setSelection]);
22
+ }, [ceilingId, holeIndex, holes, setSelection]);
24
23
  const handlePolygonPreview = useCallback((preview) => {
25
24
  if (preview) {
26
25
  const updatedHoles = [...holes];
@@ -8,7 +8,7 @@ export declare function getCeilingMaterials(color?: string): CeilingMaterials;
8
8
  /**
9
9
  * Resolve a slot `MaterialRef` to a flat colour for the ceiling surface.
10
10
  * `library:` refs use the catalog preset's base colour; `scene:` refs use the
11
- * stored material's colour. Returns null for a dangling / unparseable ref so
11
+ * stored material's colour; a plain colour is itself. Returns null for a dangling / unparseable ref so
12
12
  * the caller falls back to its default.
13
13
  */
14
14
  export declare function ceilingColorFromRef(ref: string | undefined, sceneMaterials: Record<SceneMaterialId, SceneMaterial> | undefined): string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"materials.d.ts","sourceRoot":"","sources":["../../src/ceiling/materials.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,aAAa,EAClB,KAAK,eAAe,EACrB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAuB,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAoBzE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,WAAW,EAAE,qBAAqB,CAAA;IAClC,cAAc,EAAE,qBAAqB,CAAA;CACtC,CAAA;AAqBD,wBAAgB,mBAAmB,CAAC,KAAK,SAAY,GAAG,gBAAgB,CAMvE;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,cAAc,EAAE,MAAM,CAAC,eAAe,EAAE,aAAa,CAAC,GAAG,SAAS,GACjE,MAAM,GAAG,IAAI,CASf"}
1
+ {"version":3,"file":"materials.d.ts","sourceRoot":"","sources":["../../src/ceiling/materials.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,aAAa,EAClB,KAAK,eAAe,EACrB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAuB,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAoBzE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,WAAW,EAAE,qBAAqB,CAAA;IAClC,cAAc,EAAE,qBAAqB,CAAA;CACtC,CAAA;AAqBD,wBAAgB,mBAAmB,CAAC,KAAK,SAAY,GAAG,gBAAgB,CAMvE;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,cAAc,EAAE,MAAM,CAAC,eAAe,EAAE,aAAa,CAAC,GAAG,SAAS,GACjE,MAAM,GAAG,IAAI,CAiBf"}
@@ -1,4 +1,4 @@
1
- import { getMaterialPresetByRef, parseMaterialRef, resolveMaterial, } from '@pascal-app/core';
1
+ import { getCatalogMaterialById, getMaterialPresetByRef, parseMaterialColor, parseMaterialRef, resolveMaterial, } from '@pascal-app/core';
2
2
  import { float, mix, positionWorld, smoothstep } from 'three/tsl';
3
3
  import { BackSide, FrontSide, MeshBasicNodeMaterial } from 'three/webgpu';
4
4
  /**
@@ -43,15 +43,22 @@ export function getCeilingMaterials(color = '#999999') {
43
43
  /**
44
44
  * Resolve a slot `MaterialRef` to a flat colour for the ceiling surface.
45
45
  * `library:` refs use the catalog preset's base colour; `scene:` refs use the
46
- * stored material's colour. Returns null for a dangling / unparseable ref so
46
+ * stored material's colour; a plain colour is itself. Returns null for a dangling / unparseable ref so
47
47
  * the caller falls back to its default.
48
48
  */
49
49
  export function ceilingColorFromRef(ref, sceneMaterials) {
50
+ const color = parseMaterialColor(ref);
51
+ if (color)
52
+ return color;
50
53
  const parsed = parseMaterialRef(ref);
51
54
  if (!parsed)
52
55
  return null;
53
56
  if (parsed.kind === 'library') {
54
- return getMaterialPresetByRef(ref)?.mapProperties.color ?? null;
57
+ // A flat tint: the catalog's preview colour reads as the finish (a textured
58
+ // preset's map colour is often plain white).
59
+ return (getCatalogMaterialById(parsed.id)?.previewColor ??
60
+ getMaterialPresetByRef(ref)?.mapProperties.color ??
61
+ null);
55
62
  }
56
63
  const sceneMaterial = sceneMaterials?.[parsed.id];
57
64
  if (!sceneMaterial)
@@ -1,9 +1,3 @@
1
- /**
2
- * Ceiling paint on the unified slot model. A ceiling has one paintable surface,
3
- * so every hit resolves to `surface`; commit writes `node.slots.surface`. The
4
- * preview swaps the registered underside mesh to the ceiling's own flat-tinted
5
- * material (built `BackSide`, the way it renders), so the hover preview matches
6
- * the committed result — a generic PBR preview would be invisible from below.
7
- */
8
- export declare const ceilingPaint: import("@pascal-app/core").PaintCapability;
1
+ import { type PaintCapability } from '@pascal-app/core';
2
+ export declare const ceilingPaint: PaintCapability;
9
3
  //# sourceMappingURL=paint.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"paint.d.ts","sourceRoot":"","sources":["../../src/ceiling/paint.ts"],"names":[],"mappings":"AAUA;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,4CAwBvB,CAAA"}
1
+ {"version":3,"file":"paint.d.ts","sourceRoot":"","sources":["../../src/ceiling/paint.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,eAAe,EAQrB,MAAM,kBAAkB,CAAA;AAqHzB,eAAO,MAAM,YAAY,EAAE,eAyB1B,CAAA"}