@pascal-app/nodes 1.0.7 → 1.1.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 (915) hide show
  1. package/README.md +42 -8
  2. package/dist/agent-operations/index.d.ts +5 -0
  3. package/dist/agent-operations/index.d.ts.map +1 -1
  4. package/dist/agent-operations/index.js +10 -0
  5. package/dist/agent-tools/index.d.ts +195 -0
  6. package/dist/agent-tools/index.d.ts.map +1 -1
  7. package/dist/agent-tools/index.js +82 -2
  8. package/dist/beam/definition.d.ts +64 -13
  9. package/dist/beam/definition.d.ts.map +1 -1
  10. package/dist/beam/definition.edit.d.ts +4 -0
  11. package/dist/beam/definition.edit.d.ts.map +1 -0
  12. package/dist/beam/definition.edit.js +133 -0
  13. package/dist/beam/definition.js +4 -173
  14. package/dist/beam/definition.render.d.ts +6 -0
  15. package/dist/beam/definition.render.d.ts.map +1 -0
  16. package/dist/beam/definition.render.js +32 -0
  17. package/dist/beam/floorplan.d.ts.map +1 -1
  18. package/dist/beam/floorplan.js +2 -2
  19. package/dist/beam/panel.d.ts.map +1 -1
  20. package/dist/beam/panel.js +2 -2
  21. package/dist/beam/tool.d.ts.map +1 -1
  22. package/dist/beam/tool.js +2 -2
  23. package/dist/block/definition.d.ts +67 -7
  24. package/dist/block/definition.d.ts.map +1 -1
  25. package/dist/block/definition.edit.d.ts +4 -0
  26. package/dist/block/definition.edit.d.ts.map +1 -0
  27. package/dist/block/definition.edit.js +28 -0
  28. package/dist/block/definition.js +5 -144
  29. package/dist/block/definition.render.d.ts +11 -0
  30. package/dist/block/definition.render.d.ts.map +1 -0
  31. package/dist/block/definition.render.js +120 -0
  32. package/dist/box-vent/definition.d.ts +103 -29
  33. package/dist/box-vent/definition.d.ts.map +1 -1
  34. package/dist/box-vent/definition.edit.d.ts +4 -0
  35. package/dist/box-vent/definition.edit.d.ts.map +1 -0
  36. package/dist/box-vent/definition.edit.js +151 -0
  37. package/dist/box-vent/definition.js +4 -212
  38. package/dist/box-vent/definition.render.d.ts +6 -0
  39. package/dist/box-vent/definition.render.d.ts.map +1 -0
  40. package/dist/box-vent/definition.render.js +40 -0
  41. package/dist/box-vent/move-tool.d.ts.map +1 -1
  42. package/dist/box-vent/move-tool.js +6 -5
  43. package/dist/building/definition.d.ts +49 -11
  44. package/dist/building/definition.d.ts.map +1 -1
  45. package/dist/building/definition.edit.d.ts +4 -0
  46. package/dist/building/definition.edit.d.ts.map +1 -0
  47. package/dist/building/definition.edit.js +10 -0
  48. package/dist/building/definition.js +4 -54
  49. package/dist/building/definition.render.d.ts +6 -0
  50. package/dist/building/definition.render.d.ts.map +1 -0
  51. package/dist/building/definition.render.js +38 -0
  52. package/dist/builtin-definitions.d.ts +9784 -0
  53. package/dist/builtin-definitions.d.ts.map +1 -0
  54. package/dist/builtin-definitions.js +113 -0
  55. package/dist/builtin-edit-contributions.d.ts +9608 -0
  56. package/dist/builtin-edit-contributions.d.ts.map +1 -0
  57. package/dist/builtin-edit-contributions.js +112 -0
  58. package/dist/builtin-plugin-metadata.d.ts +5 -0
  59. package/dist/builtin-plugin-metadata.d.ts.map +1 -0
  60. package/dist/builtin-plugin-metadata.js +1 -0
  61. package/dist/cabinet/definition.d.ts +497 -25
  62. package/dist/cabinet/definition.d.ts.map +1 -1
  63. package/dist/cabinet/definition.edit.d.ts +5 -0
  64. package/dist/cabinet/definition.edit.d.ts.map +1 -0
  65. package/dist/cabinet/definition.edit.js +1375 -0
  66. package/dist/cabinet/definition.js +6 -2115
  67. package/dist/cabinet/definition.render.d.ts +66 -0
  68. package/dist/cabinet/definition.render.d.ts.map +1 -0
  69. package/dist/cabinet/definition.render.js +751 -0
  70. package/dist/cabinet/kitchen-module-actions.d.ts.map +1 -1
  71. package/dist/cabinet/kitchen-module-actions.js +2 -2
  72. package/dist/cabinet/placement-dimensions.d.ts +36 -2
  73. package/dist/cabinet/placement-dimensions.d.ts.map +1 -1
  74. package/dist/cabinet/placement-dimensions.js +68 -2
  75. package/dist/cabinet/system.js +1 -1
  76. package/dist/cabinet/tool.d.ts.map +1 -1
  77. package/dist/cabinet/tool.js +268 -15
  78. package/dist/cabinet/wall-snap.d.ts +5 -1
  79. package/dist/cabinet/wall-snap.d.ts.map +1 -1
  80. package/dist/cabinet/wall-snap.js +2 -2
  81. package/dist/ceiling/definition.d.ts +152 -19
  82. package/dist/ceiling/definition.d.ts.map +1 -1
  83. package/dist/ceiling/definition.edit.d.ts +4 -0
  84. package/dist/ceiling/definition.edit.d.ts.map +1 -0
  85. package/dist/ceiling/definition.edit.js +125 -0
  86. package/dist/ceiling/definition.js +4 -207
  87. package/dist/ceiling/definition.render.d.ts +6 -0
  88. package/dist/ceiling/definition.render.d.ts.map +1 -0
  89. package/dist/ceiling/definition.render.js +71 -0
  90. package/dist/ceiling/panel.js +2 -2
  91. package/dist/chimney/definition.d.ts +186 -17
  92. package/dist/chimney/definition.d.ts.map +1 -1
  93. package/dist/chimney/definition.edit.d.ts +4 -0
  94. package/dist/chimney/definition.edit.d.ts.map +1 -0
  95. package/dist/chimney/definition.edit.js +219 -0
  96. package/dist/chimney/definition.js +4 -390
  97. package/dist/chimney/definition.render.d.ts +6 -0
  98. package/dist/chimney/definition.render.d.ts.map +1 -0
  99. package/dist/chimney/definition.render.js +59 -0
  100. package/dist/chimney/move-tool.d.ts.map +1 -1
  101. package/dist/chimney/move-tool.js +6 -4
  102. package/dist/column/__bench__/geometry.d.ts +2 -0
  103. package/dist/column/__bench__/geometry.d.ts.map +1 -0
  104. package/dist/column/__bench__/geometry.js +36 -0
  105. package/dist/column/bounds.d.ts +7 -0
  106. package/dist/column/bounds.d.ts.map +1 -0
  107. package/dist/column/bounds.js +127 -0
  108. package/dist/column/definition.d.ts +372 -20
  109. package/dist/column/definition.d.ts.map +1 -1
  110. package/dist/column/definition.edit.d.ts +4 -0
  111. package/dist/column/definition.edit.d.ts.map +1 -0
  112. package/dist/column/definition.edit.js +323 -0
  113. package/dist/column/definition.js +4 -439
  114. package/dist/column/definition.render.d.ts +6 -0
  115. package/dist/column/definition.render.d.ts.map +1 -0
  116. package/dist/column/definition.render.js +81 -0
  117. package/dist/column/edit-policy.d.ts +5 -0
  118. package/dist/column/edit-policy.d.ts.map +1 -0
  119. package/dist/column/edit-policy.js +43 -0
  120. package/dist/column/floorplan-affordances.d.ts.map +1 -1
  121. package/dist/column/floorplan-affordances.js +2 -0
  122. package/dist/column/floorplan-move.d.ts.map +1 -1
  123. package/dist/column/floorplan-move.js +5 -1
  124. package/dist/column/floorplan.d.ts.map +1 -1
  125. package/dist/column/floorplan.js +33 -91
  126. package/dist/column/geometry.d.ts +13 -0
  127. package/dist/column/geometry.d.ts.map +1 -0
  128. package/dist/column/geometry.js +294 -0
  129. package/dist/column/hosted-resize.d.ts +3 -2
  130. package/dist/column/hosted-resize.d.ts.map +1 -1
  131. package/dist/column/hosted-resize.js +7 -1
  132. package/dist/column/inspector-highlight.d.ts +29 -0
  133. package/dist/column/inspector-highlight.d.ts.map +1 -0
  134. package/dist/column/inspector-highlight.js +166 -0
  135. package/dist/column/paint.d.ts.map +1 -1
  136. package/dist/column/paint.js +12 -2
  137. package/dist/column/panel.d.ts.map +1 -1
  138. package/dist/column/panel.js +451 -363
  139. package/dist/column/parametrics.js +1 -1
  140. package/dist/column/post-section.d.ts.map +1 -1
  141. package/dist/column/post-section.js +2 -2
  142. package/dist/column/preset-gallery.d.ts +8 -0
  143. package/dist/column/preset-gallery.d.ts.map +1 -0
  144. package/dist/column/preset-gallery.js +98 -0
  145. package/dist/column/presets.d.ts +16 -0
  146. package/dist/column/presets.d.ts.map +1 -0
  147. package/dist/column/presets.js +96 -0
  148. package/dist/column/property-preview.d.ts +8 -0
  149. package/dist/column/property-preview.d.ts.map +1 -0
  150. package/dist/column/property-preview.js +50 -0
  151. package/dist/column/renderer.d.ts +13 -1
  152. package/dist/column/renderer.d.ts.map +1 -1
  153. package/dist/column/renderer.js +174 -198
  154. package/dist/column/shape.d.ts +4 -4
  155. package/dist/column/shape.d.ts.map +1 -1
  156. package/dist/column/shape.js +1 -1
  157. package/dist/column/surface.d.ts.map +1 -1
  158. package/dist/column/surface.js +15 -8
  159. package/dist/column/tool.d.ts.map +1 -1
  160. package/dist/column/tool.js +21 -10
  161. package/dist/construction-dimension/definition.d.ts +129 -3
  162. package/dist/construction-dimension/definition.d.ts.map +1 -1
  163. package/dist/construction-dimension/definition.edit.d.ts +4 -0
  164. package/dist/construction-dimension/definition.edit.d.ts.map +1 -0
  165. package/dist/construction-dimension/definition.edit.js +32 -0
  166. package/dist/construction-dimension/definition.js +4 -83
  167. package/dist/construction-dimension/definition.render.d.ts +6 -0
  168. package/dist/construction-dimension/definition.render.d.ts.map +1 -0
  169. package/dist/construction-dimension/definition.render.js +53 -0
  170. package/dist/construction-dimension/floorplan-tool.d.ts.map +1 -1
  171. package/dist/construction-dimension/floorplan-tool.js +2 -2
  172. package/dist/cupola/definition.d.ts +95 -10
  173. package/dist/cupola/definition.d.ts.map +1 -1
  174. package/dist/cupola/definition.edit.d.ts +4 -0
  175. package/dist/cupola/definition.edit.d.ts.map +1 -0
  176. package/dist/cupola/definition.edit.js +103 -0
  177. package/dist/cupola/definition.js +4 -148
  178. package/dist/cupola/definition.render.d.ts +6 -0
  179. package/dist/cupola/definition.render.d.ts.map +1 -0
  180. package/dist/cupola/definition.render.js +43 -0
  181. package/dist/cupola/move-tool.d.ts.map +1 -1
  182. package/dist/cupola/move-tool.js +6 -5
  183. package/dist/definition-contributions.d.ts +14 -0
  184. package/dist/definition-contributions.d.ts.map +1 -0
  185. package/dist/definition-contributions.js +8 -0
  186. package/dist/door/definition.d.ts +350 -22
  187. package/dist/door/definition.d.ts.map +1 -1
  188. package/dist/door/definition.edit.d.ts +4 -0
  189. package/dist/door/definition.edit.d.ts.map +1 -0
  190. package/dist/door/definition.edit.js +246 -0
  191. package/dist/door/definition.js +4 -341
  192. package/dist/door/definition.render.d.ts +6 -0
  193. package/dist/door/definition.render.d.ts.map +1 -0
  194. package/dist/door/definition.render.js +88 -0
  195. package/dist/door/floorplan-move.d.ts.map +1 -1
  196. package/dist/door/floorplan-move.js +11 -8
  197. package/dist/door/mechanism.d.ts.map +1 -1
  198. package/dist/door/mechanism.js +1 -2
  199. package/dist/door/move-tool.d.ts.map +1 -1
  200. package/dist/door/move-tool.js +25 -23
  201. package/dist/door/tool.d.ts.map +1 -1
  202. package/dist/door/tool.js +2 -1
  203. package/dist/dormer/definition.d.ts +240 -11
  204. package/dist/dormer/definition.d.ts.map +1 -1
  205. package/dist/dormer/definition.edit.d.ts +4 -0
  206. package/dist/dormer/definition.edit.d.ts.map +1 -0
  207. package/dist/dormer/definition.edit.js +214 -0
  208. package/dist/dormer/definition.js +4 -319
  209. package/dist/dormer/definition.render.d.ts +6 -0
  210. package/dist/dormer/definition.render.d.ts.map +1 -0
  211. package/dist/dormer/definition.render.js +52 -0
  212. package/dist/downspout/definition.d.ts +108 -16
  213. package/dist/downspout/definition.d.ts.map +1 -1
  214. package/dist/downspout/definition.edit.d.ts +4 -0
  215. package/dist/downspout/definition.edit.d.ts.map +1 -0
  216. package/dist/downspout/definition.edit.js +134 -0
  217. package/dist/downspout/definition.js +4 -188
  218. package/dist/downspout/definition.render.d.ts +6 -0
  219. package/dist/downspout/definition.render.d.ts.map +1 -0
  220. package/dist/downspout/definition.render.js +46 -0
  221. package/dist/duct-fitting/definition.d.ts +99 -11
  222. package/dist/duct-fitting/definition.d.ts.map +1 -1
  223. package/dist/duct-fitting/definition.edit.d.ts +4 -0
  224. package/dist/duct-fitting/definition.edit.d.ts.map +1 -0
  225. package/dist/duct-fitting/definition.edit.js +49 -0
  226. package/dist/duct-fitting/definition.js +4 -135
  227. package/dist/duct-fitting/definition.render.d.ts +6 -0
  228. package/dist/duct-fitting/definition.render.d.ts.map +1 -0
  229. package/dist/duct-fitting/definition.render.js +82 -0
  230. package/dist/duct-fitting/floorplan.js +1 -1
  231. package/dist/duct-fitting/geometry.js +2 -1
  232. package/dist/duct-fitting/move-tool.d.ts.map +1 -1
  233. package/dist/duct-fitting/move-tool.js +19 -13
  234. package/dist/duct-fitting/selection.d.ts.map +1 -1
  235. package/dist/duct-fitting/selection.js +92 -80
  236. package/dist/duct-segment/continuation.d.ts +2 -2
  237. package/dist/duct-segment/continuation.d.ts.map +1 -1
  238. package/dist/duct-segment/continuation.js +53 -2
  239. package/dist/duct-segment/definition.d.ts +91 -3
  240. package/dist/duct-segment/definition.d.ts.map +1 -1
  241. package/dist/duct-segment/definition.edit.d.ts +4 -0
  242. package/dist/duct-segment/definition.edit.d.ts.map +1 -0
  243. package/dist/duct-segment/definition.edit.js +100 -0
  244. package/dist/duct-segment/definition.js +4 -181
  245. package/dist/duct-segment/definition.render.d.ts +6 -0
  246. package/dist/duct-segment/definition.render.d.ts.map +1 -0
  247. package/dist/duct-segment/definition.render.js +89 -0
  248. package/dist/duct-segment/edit-inspector.d.ts +5 -0
  249. package/dist/duct-segment/edit-inspector.d.ts.map +1 -0
  250. package/dist/duct-segment/edit-inspector.js +163 -0
  251. package/dist/duct-segment/edit-operation.d.ts +17 -0
  252. package/dist/duct-segment/edit-operation.d.ts.map +1 -0
  253. package/dist/duct-segment/edit-operation.js +283 -0
  254. package/dist/duct-segment/floorplan.js +1 -1
  255. package/dist/duct-segment/geometry.d.ts +0 -40
  256. package/dist/duct-segment/geometry.d.ts.map +1 -1
  257. package/dist/duct-segment/geometry.js +2 -77
  258. package/dist/duct-segment/move-tool.d.ts.map +1 -1
  259. package/dist/duct-segment/move-tool.js +34 -35
  260. package/dist/duct-segment/parametrics.d.ts.map +1 -1
  261. package/dist/duct-segment/parametrics.js +2 -35
  262. package/dist/duct-segment/profile.d.ts +42 -0
  263. package/dist/duct-segment/profile.d.ts.map +1 -0
  264. package/dist/duct-segment/profile.js +78 -0
  265. package/dist/duct-segment/selection.d.ts.map +1 -1
  266. package/dist/duct-segment/selection.js +112 -53
  267. package/dist/duct-segment/tool.d.ts.map +1 -1
  268. package/dist/duct-segment/tool.js +103 -27
  269. package/dist/duct-terminal/definition.d.ts +68 -12
  270. package/dist/duct-terminal/definition.d.ts.map +1 -1
  271. package/dist/duct-terminal/definition.edit.d.ts +4 -0
  272. package/dist/duct-terminal/definition.edit.d.ts.map +1 -0
  273. package/dist/duct-terminal/definition.edit.js +14 -0
  274. package/dist/duct-terminal/definition.js +4 -87
  275. package/dist/duct-terminal/definition.render.d.ts +6 -0
  276. package/dist/duct-terminal/definition.render.d.ts.map +1 -0
  277. package/dist/duct-terminal/definition.render.js +66 -0
  278. package/dist/duct-terminal/geometry.d.ts.map +1 -1
  279. package/dist/duct-terminal/geometry.js +2 -1
  280. package/dist/duct-terminal/parametrics.d.ts.map +1 -1
  281. package/dist/duct-terminal/parametrics.js +1 -0
  282. package/dist/duct-terminal/ports.js +1 -1
  283. package/dist/elevator/__bench__/runtime.d.ts +2 -0
  284. package/dist/elevator/__bench__/runtime.d.ts.map +1 -0
  285. package/dist/elevator/__bench__/runtime.js +38 -0
  286. package/dist/elevator/definition.d.ts +117 -10
  287. package/dist/elevator/definition.d.ts.map +1 -1
  288. package/dist/elevator/definition.edit.d.ts +4 -0
  289. package/dist/elevator/definition.edit.d.ts.map +1 -0
  290. package/dist/elevator/definition.edit.js +177 -0
  291. package/dist/elevator/definition.js +4 -258
  292. package/dist/elevator/definition.render.d.ts +11 -0
  293. package/dist/elevator/definition.render.d.ts.map +1 -0
  294. package/dist/elevator/definition.render.js +96 -0
  295. package/dist/elevator/floorplan-affordances.d.ts.map +1 -1
  296. package/dist/elevator/floorplan-affordances.js +11 -9
  297. package/dist/elevator/floorplan.d.ts +19 -0
  298. package/dist/elevator/floorplan.d.ts.map +1 -1
  299. package/dist/elevator/floorplan.js +3 -9
  300. package/dist/elevator/inspection.d.ts +17 -0
  301. package/dist/elevator/inspection.d.ts.map +1 -0
  302. package/dist/elevator/inspection.js +78 -0
  303. package/dist/elevator/panel.d.ts.map +1 -1
  304. package/dist/elevator/panel.js +152 -100
  305. package/dist/elevator/parametrics.d.ts +1 -1
  306. package/dist/elevator/parametrics.d.ts.map +1 -1
  307. package/dist/elevator/parametrics.js +7 -10
  308. package/dist/elevator/presets.d.ts +17 -0
  309. package/dist/elevator/presets.d.ts.map +1 -0
  310. package/dist/elevator/presets.js +52 -0
  311. package/dist/elevator/renderer.d.ts +2 -1
  312. package/dist/elevator/renderer.d.ts.map +1 -1
  313. package/dist/elevator/renderer.edit.d.ts +5 -0
  314. package/dist/elevator/renderer.edit.d.ts.map +1 -0
  315. package/dist/elevator/renderer.edit.js +8 -0
  316. package/dist/elevator/renderer.js +159 -60
  317. package/dist/elevator/tool.d.ts +2 -0
  318. package/dist/elevator/tool.d.ts.map +1 -0
  319. package/dist/elevator/tool.js +250 -0
  320. package/dist/eyebrow-vent/definition.d.ts +97 -11
  321. package/dist/eyebrow-vent/definition.d.ts.map +1 -1
  322. package/dist/eyebrow-vent/definition.edit.d.ts +4 -0
  323. package/dist/eyebrow-vent/definition.edit.d.ts.map +1 -0
  324. package/dist/eyebrow-vent/definition.edit.js +106 -0
  325. package/dist/eyebrow-vent/definition.js +4 -152
  326. package/dist/eyebrow-vent/definition.render.d.ts +6 -0
  327. package/dist/eyebrow-vent/definition.render.d.ts.map +1 -0
  328. package/dist/eyebrow-vent/definition.render.js +43 -0
  329. package/dist/eyebrow-vent/move-tool.d.ts.map +1 -1
  330. package/dist/eyebrow-vent/move-tool.js +6 -5
  331. package/dist/fence/definition.d.ts +186 -17
  332. package/dist/fence/definition.d.ts.map +1 -1
  333. package/dist/fence/definition.edit.d.ts +4 -0
  334. package/dist/fence/definition.edit.d.ts.map +1 -0
  335. package/dist/fence/definition.edit.js +282 -0
  336. package/dist/fence/definition.js +5 -413
  337. package/dist/fence/definition.render.d.ts +8 -0
  338. package/dist/fence/definition.render.d.ts.map +1 -0
  339. package/dist/fence/definition.render.js +124 -0
  340. package/dist/fence/move-endpoint-tool.d.ts.map +1 -1
  341. package/dist/fence/move-endpoint-tool.js +2 -2
  342. package/dist/fence/tool.js +2 -2
  343. package/dist/fence-feature/definition.d.ts +270 -3
  344. package/dist/fence-feature/definition.d.ts.map +1 -1
  345. package/dist/fence-feature/definition.edit.d.ts +5 -0
  346. package/dist/fence-feature/definition.edit.d.ts.map +1 -0
  347. package/dist/fence-feature/definition.edit.js +69 -0
  348. package/dist/fence-feature/definition.js +5 -116
  349. package/dist/fence-feature/definition.render.d.ts +9 -0
  350. package/dist/fence-feature/definition.render.d.ts.map +1 -0
  351. package/dist/fence-feature/definition.render.js +69 -0
  352. package/dist/floor-opening/definition.d.ts +58 -2
  353. package/dist/floor-opening/definition.d.ts.map +1 -1
  354. package/dist/floor-opening/definition.edit.d.ts +4 -0
  355. package/dist/floor-opening/definition.edit.d.ts.map +1 -0
  356. package/dist/floor-opening/definition.edit.js +11 -0
  357. package/dist/floor-opening/definition.js +4 -41
  358. package/dist/floor-opening/definition.render.d.ts +6 -0
  359. package/dist/floor-opening/definition.render.d.ts.map +1 -0
  360. package/dist/floor-opening/definition.render.js +32 -0
  361. package/dist/guide/definition.d.ts +65 -9
  362. package/dist/guide/definition.d.ts.map +1 -1
  363. package/dist/guide/definition.edit.d.ts +4 -0
  364. package/dist/guide/definition.edit.d.ts.map +1 -0
  365. package/dist/guide/definition.edit.js +4 -0
  366. package/dist/guide/definition.js +4 -53
  367. package/dist/guide/definition.render.d.ts +6 -0
  368. package/dist/guide/definition.render.d.ts.map +1 -0
  369. package/dist/guide/definition.render.js +45 -0
  370. package/dist/gutter/definition.d.ts +113 -18
  371. package/dist/gutter/definition.d.ts.map +1 -1
  372. package/dist/gutter/definition.edit.d.ts +4 -0
  373. package/dist/gutter/definition.edit.d.ts.map +1 -0
  374. package/dist/gutter/definition.edit.js +121 -0
  375. package/dist/gutter/definition.js +4 -176
  376. package/dist/gutter/definition.render.d.ts +6 -0
  377. package/dist/gutter/definition.render.d.ts.map +1 -0
  378. package/dist/gutter/definition.render.js +44 -0
  379. package/dist/gutter/move-tool.d.ts.map +1 -1
  380. package/dist/gutter/move-tool.js +5 -4
  381. package/dist/hvac-equipment/definition.d.ts +72 -12
  382. package/dist/hvac-equipment/definition.d.ts.map +1 -1
  383. package/dist/hvac-equipment/definition.edit.d.ts +4 -0
  384. package/dist/hvac-equipment/definition.edit.d.ts.map +1 -0
  385. package/dist/hvac-equipment/definition.edit.js +13 -0
  386. package/dist/hvac-equipment/definition.js +4 -92
  387. package/dist/hvac-equipment/definition.render.d.ts +6 -0
  388. package/dist/hvac-equipment/definition.render.d.ts.map +1 -0
  389. package/dist/hvac-equipment/definition.render.js +72 -0
  390. package/dist/hvac-equipment/floorplan.js +1 -1
  391. package/dist/hvac-equipment/geometry.d.ts.map +1 -1
  392. package/dist/hvac-equipment/geometry.js +2 -1
  393. package/dist/hvac-equipment/parametrics.d.ts.map +1 -1
  394. package/dist/hvac-equipment/parametrics.js +1 -0
  395. package/dist/hvac-equipment/ports.js +1 -1
  396. package/dist/i18n/definition-messages.js +1 -1
  397. package/dist/imported-mesh/definition.d.ts +54 -4
  398. package/dist/imported-mesh/definition.d.ts.map +1 -1
  399. package/dist/imported-mesh/definition.edit.d.ts +4 -0
  400. package/dist/imported-mesh/definition.edit.d.ts.map +1 -0
  401. package/dist/imported-mesh/definition.edit.js +5 -0
  402. package/dist/imported-mesh/definition.js +4 -40
  403. package/dist/imported-mesh/definition.render.d.ts +6 -0
  404. package/dist/imported-mesh/definition.render.d.ts.map +1 -0
  405. package/dist/imported-mesh/definition.render.js +36 -0
  406. package/dist/index.d.ts +3 -16
  407. package/dist/index.d.ts.map +1 -1
  408. package/dist/index.js +9 -136
  409. package/dist/item/definition.d.ts +280 -31
  410. package/dist/item/definition.d.ts.map +1 -1
  411. package/dist/item/definition.edit.d.ts +4 -0
  412. package/dist/item/definition.edit.d.ts.map +1 -0
  413. package/dist/item/definition.edit.js +206 -0
  414. package/dist/item/definition.js +4 -356
  415. package/dist/item/definition.render.d.ts +6 -0
  416. package/dist/item/definition.render.d.ts.map +1 -0
  417. package/dist/item/definition.render.js +128 -0
  418. package/dist/item/floorplan.d.ts.map +1 -1
  419. package/dist/item/floorplan.js +2 -2
  420. package/dist/item/renderer.d.ts.map +1 -1
  421. package/dist/item/renderer.js +2 -2
  422. package/dist/lean-to-extension/definition.d.ts +177 -3
  423. package/dist/lean-to-extension/definition.d.ts.map +1 -1
  424. package/dist/lean-to-extension/definition.edit.d.ts +4 -0
  425. package/dist/lean-to-extension/definition.edit.d.ts.map +1 -0
  426. package/dist/lean-to-extension/definition.edit.js +392 -0
  427. package/dist/lean-to-extension/definition.js +4 -433
  428. package/dist/lean-to-extension/definition.render.d.ts +6 -0
  429. package/dist/lean-to-extension/definition.render.d.ts.map +1 -0
  430. package/dist/lean-to-extension/definition.render.js +46 -0
  431. package/dist/level/definition.d.ts +49 -8
  432. package/dist/level/definition.d.ts.map +1 -1
  433. package/dist/level/definition.edit.d.ts +4 -0
  434. package/dist/level/definition.edit.d.ts.map +1 -0
  435. package/dist/level/definition.edit.js +4 -0
  436. package/dist/level/definition.js +4 -60
  437. package/dist/level/definition.render.d.ts +6 -0
  438. package/dist/level/definition.render.d.ts.map +1 -0
  439. package/dist/level/definition.render.js +53 -0
  440. package/dist/lineset/definition.d.ts +49 -14
  441. package/dist/lineset/definition.d.ts.map +1 -1
  442. package/dist/lineset/definition.edit.d.ts +4 -0
  443. package/dist/lineset/definition.edit.d.ts.map +1 -0
  444. package/dist/lineset/definition.edit.js +38 -0
  445. package/dist/lineset/definition.js +4 -119
  446. package/dist/lineset/definition.render.d.ts +6 -0
  447. package/dist/lineset/definition.render.d.ts.map +1 -0
  448. package/dist/lineset/definition.render.js +72 -0
  449. package/dist/lineset/floorplan.js +1 -1
  450. package/dist/lineset/geometry.js +1 -1
  451. package/dist/lineset/move-tool.d.ts.map +1 -1
  452. package/dist/lineset/move-tool.js +14 -7
  453. package/dist/liquid-line/definition.d.ts +47 -15
  454. package/dist/liquid-line/definition.d.ts.map +1 -1
  455. package/dist/liquid-line/definition.edit.d.ts +4 -0
  456. package/dist/liquid-line/definition.edit.d.ts.map +1 -0
  457. package/dist/liquid-line/definition.edit.js +31 -0
  458. package/dist/liquid-line/definition.js +4 -111
  459. package/dist/liquid-line/definition.render.d.ts +6 -0
  460. package/dist/liquid-line/definition.render.d.ts.map +1 -0
  461. package/dist/liquid-line/definition.render.js +70 -0
  462. package/dist/liquid-line/floorplan.js +1 -1
  463. package/dist/liquid-line/geometry.js +1 -1
  464. package/dist/measurement/definition.d.ts +126 -3
  465. package/dist/measurement/definition.d.ts.map +1 -1
  466. package/dist/measurement/definition.edit.d.ts +4 -0
  467. package/dist/measurement/definition.edit.d.ts.map +1 -0
  468. package/dist/measurement/definition.edit.js +26 -0
  469. package/dist/measurement/definition.js +4 -67
  470. package/dist/measurement/definition.render.d.ts +6 -0
  471. package/dist/measurement/definition.render.d.ts.map +1 -0
  472. package/dist/measurement/definition.render.js +43 -0
  473. package/dist/measurement/floorplan.d.ts.map +1 -1
  474. package/dist/measurement/floorplan.js +3 -2
  475. package/dist/measurement/renderer.d.ts.map +1 -1
  476. package/dist/measurement/renderer.js +2 -3
  477. package/dist/measurement/selection.d.ts.map +1 -1
  478. package/dist/measurement/selection.js +2 -2
  479. package/dist/measurement/tool.d.ts +2 -2
  480. package/dist/measurement/tool.d.ts.map +1 -1
  481. package/dist/measurement/tool.js +3 -3
  482. package/dist/pipe-fitting/definition.d.ts +73 -9
  483. package/dist/pipe-fitting/definition.d.ts.map +1 -1
  484. package/dist/pipe-fitting/definition.edit.d.ts +4 -0
  485. package/dist/pipe-fitting/definition.edit.d.ts.map +1 -0
  486. package/dist/pipe-fitting/definition.edit.js +47 -0
  487. package/dist/pipe-fitting/definition.js +4 -105
  488. package/dist/pipe-fitting/definition.render.d.ts +6 -0
  489. package/dist/pipe-fitting/definition.render.d.ts.map +1 -0
  490. package/dist/pipe-fitting/definition.render.js +54 -0
  491. package/dist/pipe-fitting/floorplan.js +1 -1
  492. package/dist/pipe-fitting/geometry.js +1 -1
  493. package/dist/pipe-fitting/move-tool.d.ts +1 -1
  494. package/dist/pipe-fitting/move-tool.d.ts.map +1 -1
  495. package/dist/pipe-fitting/move-tool.js +28 -22
  496. package/dist/pipe-fitting/parametrics.d.ts.map +1 -1
  497. package/dist/pipe-fitting/parametrics.js +1 -0
  498. package/dist/pipe-fitting/ports.js +1 -1
  499. package/dist/pipe-fitting/selection.d.ts.map +1 -1
  500. package/dist/pipe-fitting/selection.js +73 -29
  501. package/dist/pipe-segment/collar-connection.d.ts +12 -0
  502. package/dist/pipe-segment/collar-connection.d.ts.map +1 -0
  503. package/dist/pipe-segment/collar-connection.js +58 -0
  504. package/dist/pipe-segment/connect-operation.d.ts +9 -0
  505. package/dist/pipe-segment/connect-operation.d.ts.map +1 -0
  506. package/dist/pipe-segment/connect-operation.js +44 -0
  507. package/dist/pipe-segment/continuation.d.ts +3 -2
  508. package/dist/pipe-segment/continuation.d.ts.map +1 -1
  509. package/dist/pipe-segment/continuation.js +60 -1
  510. package/dist/pipe-segment/definition.d.ts +78 -13
  511. package/dist/pipe-segment/definition.d.ts.map +1 -1
  512. package/dist/pipe-segment/definition.edit.d.ts +4 -0
  513. package/dist/pipe-segment/definition.edit.d.ts.map +1 -0
  514. package/dist/pipe-segment/definition.edit.js +48 -0
  515. package/dist/pipe-segment/definition.js +4 -132
  516. package/dist/pipe-segment/definition.render.d.ts +6 -0
  517. package/dist/pipe-segment/definition.render.d.ts.map +1 -0
  518. package/dist/pipe-segment/definition.render.js +78 -0
  519. package/dist/pipe-segment/floorplan.d.ts +1 -1
  520. package/dist/pipe-segment/floorplan.d.ts.map +1 -1
  521. package/dist/pipe-segment/floorplan.js +34 -1
  522. package/dist/pipe-segment/geometry.d.ts.map +1 -1
  523. package/dist/pipe-segment/geometry.js +2 -1
  524. package/dist/pipe-segment/grade-affordance.d.ts +8 -0
  525. package/dist/pipe-segment/grade-affordance.d.ts.map +1 -0
  526. package/dist/pipe-segment/grade-affordance.js +116 -0
  527. package/dist/pipe-segment/grade-inspector.d.ts +5 -0
  528. package/dist/pipe-segment/grade-inspector.d.ts.map +1 -0
  529. package/dist/pipe-segment/grade-inspector.js +91 -0
  530. package/dist/pipe-segment/grade-label.d.ts +7 -0
  531. package/dist/pipe-segment/grade-label.d.ts.map +1 -0
  532. package/dist/pipe-segment/grade-label.js +32 -0
  533. package/dist/pipe-segment/grade-operation.d.ts +22 -0
  534. package/dist/pipe-segment/grade-operation.d.ts.map +1 -0
  535. package/dist/pipe-segment/grade-operation.js +114 -0
  536. package/dist/pipe-segment/move-tool.d.ts.map +1 -1
  537. package/dist/pipe-segment/move-tool.js +38 -15
  538. package/dist/pipe-segment/offset-inspector.d.ts +5 -0
  539. package/dist/pipe-segment/offset-inspector.d.ts.map +1 -0
  540. package/dist/pipe-segment/offset-inspector.js +112 -0
  541. package/dist/pipe-segment/offset-operation.d.ts +9 -0
  542. package/dist/pipe-segment/offset-operation.d.ts.map +1 -0
  543. package/dist/pipe-segment/offset-operation.js +104 -0
  544. package/dist/pipe-segment/parametrics.d.ts.map +1 -1
  545. package/dist/pipe-segment/parametrics.js +1 -9
  546. package/dist/pipe-segment/resize-inspector.d.ts +5 -0
  547. package/dist/pipe-segment/resize-inspector.d.ts.map +1 -0
  548. package/dist/pipe-segment/resize-inspector.js +75 -0
  549. package/dist/pipe-segment/resize-operation.d.ts +8 -0
  550. package/dist/pipe-segment/resize-operation.d.ts.map +1 -0
  551. package/dist/pipe-segment/resize-operation.js +143 -0
  552. package/dist/pipe-segment/run-move.d.ts +65 -0
  553. package/dist/pipe-segment/run-move.d.ts.map +1 -0
  554. package/dist/pipe-segment/run-move.js +110 -0
  555. package/dist/pipe-segment/selection.d.ts.map +1 -1
  556. package/dist/pipe-segment/selection.js +122 -178
  557. package/dist/pipe-segment/slope.d.ts +3 -0
  558. package/dist/pipe-segment/slope.d.ts.map +1 -1
  559. package/dist/pipe-segment/slope.js +47 -0
  560. package/dist/pipe-segment/tool.d.ts.map +1 -1
  561. package/dist/pipe-segment/tool.js +123 -28
  562. package/dist/pipe-trap/definition.d.ts +54 -9
  563. package/dist/pipe-trap/definition.d.ts.map +1 -1
  564. package/dist/pipe-trap/definition.edit.d.ts +4 -0
  565. package/dist/pipe-trap/definition.edit.d.ts.map +1 -0
  566. package/dist/pipe-trap/definition.edit.js +13 -0
  567. package/dist/pipe-trap/definition.js +4 -59
  568. package/dist/pipe-trap/definition.render.d.ts +6 -0
  569. package/dist/pipe-trap/definition.render.d.ts.map +1 -0
  570. package/dist/pipe-trap/definition.render.js +43 -0
  571. package/dist/pipe-trap/geometry.d.ts.map +1 -1
  572. package/dist/pipe-trap/geometry.js +2 -1
  573. package/dist/pipe-trap/parametrics.d.ts.map +1 -1
  574. package/dist/pipe-trap/parametrics.js +1 -0
  575. package/dist/procedural-item/definition.d.ts +734 -3
  576. package/dist/procedural-item/definition.d.ts.map +1 -1
  577. package/dist/procedural-item/definition.edit.d.ts +4 -0
  578. package/dist/procedural-item/definition.edit.d.ts.map +1 -0
  579. package/dist/procedural-item/definition.edit.js +255 -0
  580. package/dist/procedural-item/definition.js +4 -325
  581. package/dist/procedural-item/definition.render.d.ts +6 -0
  582. package/dist/procedural-item/definition.render.d.ts.map +1 -0
  583. package/dist/procedural-item/definition.render.js +84 -0
  584. package/dist/procedural-item/renderer.d.ts.map +1 -1
  585. package/dist/procedural-item/renderer.edit.d.ts +5 -0
  586. package/dist/procedural-item/renderer.edit.d.ts.map +1 -0
  587. package/dist/procedural-item/renderer.edit.js +49 -0
  588. package/dist/procedural-item/renderer.js +4 -21
  589. package/dist/render.d.ts +4 -0
  590. package/dist/render.d.ts.map +1 -0
  591. package/dist/render.js +4 -0
  592. package/dist/ridge-vent/definition.d.ts +95 -15
  593. package/dist/ridge-vent/definition.d.ts.map +1 -1
  594. package/dist/ridge-vent/definition.edit.d.ts +4 -0
  595. package/dist/ridge-vent/definition.edit.d.ts.map +1 -0
  596. package/dist/ridge-vent/definition.edit.js +148 -0
  597. package/dist/ridge-vent/definition.js +4 -197
  598. package/dist/ridge-vent/definition.render.d.ts +6 -0
  599. package/dist/ridge-vent/definition.render.d.ts.map +1 -0
  600. package/dist/ridge-vent/definition.render.js +42 -0
  601. package/dist/ridge-vent/move-tool.d.ts.map +1 -1
  602. package/dist/ridge-vent/move-tool.js +5 -4
  603. package/dist/roof/barrel-panel.d.ts.map +1 -1
  604. package/dist/roof/barrel-panel.js +2 -2
  605. package/dist/roof/definition.d.ts +325 -8
  606. package/dist/roof/definition.d.ts.map +1 -1
  607. package/dist/roof/definition.edit.d.ts +4 -0
  608. package/dist/roof/definition.edit.d.ts.map +1 -0
  609. package/dist/roof/definition.edit.js +183 -0
  610. package/dist/roof/definition.js +4 -284
  611. package/dist/roof/definition.render.d.ts +7 -0
  612. package/dist/roof/definition.render.d.ts.map +1 -0
  613. package/dist/roof/definition.render.js +101 -0
  614. package/dist/roof/geometry-notice.d.ts +5 -0
  615. package/dist/roof/geometry-notice.d.ts.map +1 -0
  616. package/dist/roof/geometry-notice.js +27 -0
  617. package/dist/roof/glazing-controls.d.ts.map +1 -1
  618. package/dist/roof/glazing-controls.js +2 -2
  619. package/dist/roof/panel.d.ts.map +1 -1
  620. package/dist/roof/panel.js +4 -3
  621. package/dist/roof/tool.d.ts +3 -0
  622. package/dist/roof/tool.d.ts.map +1 -1
  623. package/dist/roof/tool.js +56 -170
  624. package/dist/roof/type-thumbnail-assets.d.ts +3 -0
  625. package/dist/roof/type-thumbnail-assets.d.ts.map +1 -0
  626. package/dist/roof/type-thumbnail-assets.js +12 -0
  627. package/dist/roof/type-thumbnail.d.ts +5 -0
  628. package/dist/roof/type-thumbnail.d.ts.map +1 -0
  629. package/dist/roof/type-thumbnail.js +5 -0
  630. package/dist/roof-segment/definition.d.ts +564 -9
  631. package/dist/roof-segment/definition.d.ts.map +1 -1
  632. package/dist/roof-segment/definition.edit.d.ts +4 -0
  633. package/dist/roof-segment/definition.edit.d.ts.map +1 -0
  634. package/dist/roof-segment/definition.edit.js +305 -0
  635. package/dist/roof-segment/definition.js +4 -364
  636. package/dist/roof-segment/definition.render.d.ts +6 -0
  637. package/dist/roof-segment/definition.render.d.ts.map +1 -0
  638. package/dist/roof-segment/definition.render.js +59 -0
  639. package/dist/roof-segment/floorplan-affordances.d.ts.map +1 -1
  640. package/dist/roof-segment/floorplan-affordances.js +2 -2
  641. package/dist/roof-segment/paint.d.ts +0 -1
  642. package/dist/roof-segment/paint.d.ts.map +1 -1
  643. package/dist/roof-segment/paint.js +0 -1
  644. package/dist/roof-segment/panel.d.ts.map +1 -1
  645. package/dist/roof-segment/panel.js +32 -34
  646. package/dist/roof-segment/parametrics.d.ts.map +1 -1
  647. package/dist/roof-segment/parametrics.js +13 -11
  648. package/dist/roof-segment/slots.d.ts +2 -0
  649. package/dist/roof-segment/slots.d.ts.map +1 -0
  650. package/dist/roof-segment/slots.js +1 -0
  651. package/dist/scan/definition.d.ts +57 -7
  652. package/dist/scan/definition.d.ts.map +1 -1
  653. package/dist/scan/definition.edit.d.ts +4 -0
  654. package/dist/scan/definition.edit.d.ts.map +1 -0
  655. package/dist/scan/definition.edit.js +4 -0
  656. package/dist/scan/definition.js +4 -52
  657. package/dist/scan/definition.render.d.ts +6 -0
  658. package/dist/scan/definition.render.d.ts.map +1 -0
  659. package/dist/scan/definition.render.js +46 -0
  660. package/dist/separator/definition.d.ts +47 -2
  661. package/dist/separator/definition.d.ts.map +1 -1
  662. package/dist/separator/definition.edit.d.ts +4 -0
  663. package/dist/separator/definition.edit.d.ts.map +1 -0
  664. package/dist/separator/definition.edit.js +13 -0
  665. package/dist/separator/definition.js +4 -37
  666. package/dist/separator/definition.render.d.ts +6 -0
  667. package/dist/separator/definition.render.d.ts.map +1 -0
  668. package/dist/separator/definition.render.js +27 -0
  669. package/dist/separator/renderer.d.ts +2 -1
  670. package/dist/separator/renderer.d.ts.map +1 -1
  671. package/dist/separator/renderer.edit.d.ts +5 -0
  672. package/dist/separator/renderer.edit.d.ts.map +1 -0
  673. package/dist/separator/renderer.edit.js +8 -0
  674. package/dist/separator/renderer.js +3 -5
  675. package/dist/separator/selection.d.ts.map +1 -1
  676. package/dist/separator/selection.js +2 -2
  677. package/dist/shared/accessory-placement.js +1 -1
  678. package/dist/shared/auto-fitting.js +1 -1
  679. package/dist/shared/auto-offset-tag.d.ts +1 -1
  680. package/dist/shared/auto-offset-tag.d.ts.map +1 -1
  681. package/dist/shared/auto-offset-tag.js +3 -1
  682. package/dist/shared/automatic-run-end-cap.d.ts +5 -0
  683. package/dist/shared/automatic-run-end-cap.d.ts.map +1 -1
  684. package/dist/shared/automatic-run-end-cap.js +17 -9
  685. package/dist/shared/connection-feedback.d.ts +6 -3
  686. package/dist/shared/connection-feedback.d.ts.map +1 -1
  687. package/dist/shared/connection-feedback.js +29 -6
  688. package/dist/shared/curtain-opening-limits.d.ts.map +1 -1
  689. package/dist/shared/curtain-opening-limits.js +2 -3
  690. package/dist/shared/draft-axis-guides.d.ts.map +1 -1
  691. package/dist/shared/draft-axis-guides.js +2 -1
  692. package/dist/shared/duct-adapter.js +1 -1
  693. package/dist/shared/duct-collar-inspector.d.ts +5 -0
  694. package/dist/shared/duct-collar-inspector.d.ts.map +1 -0
  695. package/dist/shared/duct-collar-inspector.js +36 -0
  696. package/dist/shared/follower-frames.d.ts +15 -0
  697. package/dist/shared/follower-frames.d.ts.map +1 -0
  698. package/dist/shared/follower-frames.js +36 -0
  699. package/dist/shared/handle-drag-scope.d.ts +14 -0
  700. package/dist/shared/handle-drag-scope.d.ts.map +1 -0
  701. package/dist/shared/handle-drag-scope.js +36 -0
  702. package/dist/shared/hosted-resize.d.ts +3 -1
  703. package/dist/shared/hosted-resize.d.ts.map +1 -1
  704. package/dist/shared/hosted-resize.js +10 -8
  705. package/dist/shared/live-preview.d.ts +16 -0
  706. package/dist/shared/live-preview.d.ts.map +1 -0
  707. package/dist/shared/live-preview.js +36 -0
  708. package/dist/shared/opening-guides-runtime.d.ts.map +1 -1
  709. package/dist/shared/opening-guides-runtime.js +2 -2
  710. package/dist/shared/opening-placement-dimensions.d.ts.map +1 -1
  711. package/dist/shared/opening-placement-dimensions.js +1 -1
  712. package/dist/shared/path-point-affordance.d.ts.map +1 -1
  713. package/dist/shared/path-point-affordance.js +19 -24
  714. package/dist/shared/path-segment-affordance.d.ts +2 -1
  715. package/dist/shared/path-segment-affordance.d.ts.map +1 -1
  716. package/dist/shared/path-segment-affordance.js +11 -8
  717. package/dist/shared/pipe-collar-inspector.d.ts +5 -0
  718. package/dist/shared/pipe-collar-inspector.d.ts.map +1 -0
  719. package/dist/shared/pipe-collar-inspector.js +27 -0
  720. package/dist/shared/refrigerant-line-selection.d.ts.map +1 -1
  721. package/dist/shared/refrigerant-line-selection.js +46 -29
  722. package/dist/shared/relative-roof-drag.d.ts.map +1 -1
  723. package/dist/shared/relative-roof-drag.js +5 -4
  724. package/dist/shared/roof-surface.d.ts.map +1 -1
  725. package/dist/shared/roof-surface.js +2 -0
  726. package/dist/shared/run-hangers.d.ts.map +1 -1
  727. package/dist/shared/run-hangers.js +2 -2
  728. package/dist/shared/run-move-connectivity.d.ts +15 -6
  729. package/dist/shared/run-move-connectivity.d.ts.map +1 -1
  730. package/dist/shared/run-move-connectivity.js +14 -5
  731. package/dist/shared/run-tool-options.d.ts +8 -0
  732. package/dist/shared/run-tool-options.d.ts.map +1 -0
  733. package/dist/shared/run-tool-options.js +166 -0
  734. package/dist/shared/system-checks.d.ts.map +1 -1
  735. package/dist/shared/system-checks.js +2 -1
  736. package/dist/shared/vertical-offset.js +1 -1
  737. package/dist/shared/wall-opening-ceiling.d.ts +6 -0
  738. package/dist/shared/wall-opening-ceiling.d.ts.map +1 -1
  739. package/dist/shared/wall-opening-ceiling.js +36 -7
  740. package/dist/shelf/definition.d.ts +108 -3
  741. package/dist/shelf/definition.d.ts.map +1 -1
  742. package/dist/shelf/definition.edit.d.ts +4 -0
  743. package/dist/shelf/definition.edit.d.ts.map +1 -0
  744. package/dist/shelf/definition.edit.js +155 -0
  745. package/dist/shelf/definition.js +4 -272
  746. package/dist/shelf/definition.render.d.ts +6 -0
  747. package/dist/shelf/definition.render.d.ts.map +1 -0
  748. package/dist/shelf/definition.render.js +122 -0
  749. package/dist/site/definition.d.ts +312 -9
  750. package/dist/site/definition.d.ts.map +1 -1
  751. package/dist/site/definition.edit.d.ts +4 -0
  752. package/dist/site/definition.edit.d.ts.map +1 -0
  753. package/dist/site/definition.edit.js +4 -0
  754. package/dist/site/definition.js +4 -55
  755. package/dist/site/definition.render.d.ts +6 -0
  756. package/dist/site/definition.render.d.ts.map +1 -0
  757. package/dist/site/definition.render.js +47 -0
  758. package/dist/skylight/definition.d.ts +158 -9
  759. package/dist/skylight/definition.d.ts.map +1 -1
  760. package/dist/skylight/definition.edit.d.ts +4 -0
  761. package/dist/skylight/definition.edit.d.ts.map +1 -0
  762. package/dist/skylight/definition.edit.js +218 -0
  763. package/dist/skylight/definition.js +4 -271
  764. package/dist/skylight/definition.render.d.ts +6 -0
  765. package/dist/skylight/definition.render.d.ts.map +1 -0
  766. package/dist/skylight/definition.render.js +50 -0
  767. package/dist/skylight/move-tool.d.ts.map +1 -1
  768. package/dist/skylight/move-tool.js +7 -5
  769. package/dist/slab/definition.d.ts +289 -20
  770. package/dist/slab/definition.d.ts.map +1 -1
  771. package/dist/slab/definition.edit.d.ts +4 -0
  772. package/dist/slab/definition.edit.d.ts.map +1 -0
  773. package/dist/slab/definition.edit.js +230 -0
  774. package/dist/slab/definition.js +4 -334
  775. package/dist/slab/definition.render.d.ts +6 -0
  776. package/dist/slab/definition.render.d.ts.map +1 -0
  777. package/dist/slab/definition.render.js +92 -0
  778. package/dist/slab/panel.js +2 -2
  779. package/dist/solar-panel/definition.d.ts +145 -14
  780. package/dist/solar-panel/definition.d.ts.map +1 -1
  781. package/dist/solar-panel/definition.edit.d.ts +4 -0
  782. package/dist/solar-panel/definition.edit.d.ts.map +1 -0
  783. package/dist/solar-panel/definition.edit.js +213 -0
  784. package/dist/solar-panel/definition.js +4 -263
  785. package/dist/solar-panel/definition.render.d.ts +6 -0
  786. package/dist/solar-panel/definition.render.d.ts.map +1 -0
  787. package/dist/solar-panel/definition.render.js +42 -0
  788. package/dist/solar-panel/move-tool.d.ts.map +1 -1
  789. package/dist/solar-panel/move-tool.js +7 -5
  790. package/dist/spawn/definition.d.ts +48 -3
  791. package/dist/spawn/definition.d.ts.map +1 -1
  792. package/dist/spawn/definition.edit.d.ts +4 -0
  793. package/dist/spawn/definition.edit.d.ts.map +1 -0
  794. package/dist/spawn/definition.edit.js +64 -0
  795. package/dist/spawn/definition.js +4 -109
  796. package/dist/spawn/definition.render.d.ts +6 -0
  797. package/dist/spawn/definition.render.d.ts.map +1 -0
  798. package/dist/spawn/definition.render.js +48 -0
  799. package/dist/stair/definition.d.ts +334 -8
  800. package/dist/stair/definition.d.ts.map +1 -1
  801. package/dist/stair/definition.edit.d.ts +4 -0
  802. package/dist/stair/definition.edit.d.ts.map +1 -0
  803. package/dist/stair/definition.edit.js +377 -0
  804. package/dist/stair/definition.js +4 -443
  805. package/dist/stair/definition.render.d.ts +6 -0
  806. package/dist/stair/definition.render.d.ts.map +1 -0
  807. package/dist/stair/definition.render.js +65 -0
  808. package/dist/stair/panel.js +2 -2
  809. package/dist/stair/structure-controls.d.ts.map +1 -1
  810. package/dist/stair/structure-controls.js +2 -2
  811. package/dist/stair-segment/definition.d.ts +130 -7
  812. package/dist/stair-segment/definition.d.ts.map +1 -1
  813. package/dist/stair-segment/definition.edit.d.ts +4 -0
  814. package/dist/stair-segment/definition.edit.d.ts.map +1 -0
  815. package/dist/stair-segment/definition.edit.js +135 -0
  816. package/dist/stair-segment/definition.js +4 -172
  817. package/dist/stair-segment/definition.render.d.ts +6 -0
  818. package/dist/stair-segment/definition.render.d.ts.map +1 -0
  819. package/dist/stair-segment/definition.render.js +38 -0
  820. package/dist/structural-grid/definition.d.ts +50 -3
  821. package/dist/structural-grid/definition.d.ts.map +1 -1
  822. package/dist/structural-grid/definition.edit.d.ts +4 -0
  823. package/dist/structural-grid/definition.edit.d.ts.map +1 -0
  824. package/dist/structural-grid/definition.edit.js +18 -0
  825. package/dist/structural-grid/definition.js +4 -51
  826. package/dist/structural-grid/definition.render.d.ts +6 -0
  827. package/dist/structural-grid/definition.render.d.ts.map +1 -0
  828. package/dist/structural-grid/definition.render.js +35 -0
  829. package/dist/turbine-vent/definition.d.ts +97 -23
  830. package/dist/turbine-vent/definition.d.ts.map +1 -1
  831. package/dist/turbine-vent/definition.edit.d.ts +4 -0
  832. package/dist/turbine-vent/definition.edit.d.ts.map +1 -0
  833. package/dist/turbine-vent/definition.edit.js +66 -0
  834. package/dist/turbine-vent/definition.js +4 -121
  835. package/dist/turbine-vent/definition.render.d.ts +6 -0
  836. package/dist/turbine-vent/definition.render.d.ts.map +1 -0
  837. package/dist/turbine-vent/definition.render.js +40 -0
  838. package/dist/turbine-vent/move-tool.d.ts.map +1 -1
  839. package/dist/turbine-vent/move-tool.js +6 -5
  840. package/dist/unit/definition.d.ts +53 -9
  841. package/dist/unit/definition.d.ts.map +1 -1
  842. package/dist/unit/definition.edit.d.ts +4 -0
  843. package/dist/unit/definition.edit.d.ts.map +1 -0
  844. package/dist/unit/definition.edit.js +4 -0
  845. package/dist/unit/definition.js +4 -38
  846. package/dist/unit/definition.render.d.ts +6 -0
  847. package/dist/unit/definition.render.d.ts.map +1 -0
  848. package/dist/unit/definition.render.js +30 -0
  849. package/dist/unit/unit-panel.d.ts.map +1 -1
  850. package/dist/unit/unit-panel.js +2 -2
  851. package/dist/wall/contextual-dimensions.d.ts.map +1 -1
  852. package/dist/wall/contextual-dimensions.js +2 -2
  853. package/dist/wall/curtain-wall-panel.d.ts.map +1 -1
  854. package/dist/wall/curtain-wall-panel.js +2 -2
  855. package/dist/wall/definition.d.ts +809 -3
  856. package/dist/wall/definition.d.ts.map +1 -1
  857. package/dist/wall/definition.edit.d.ts +4 -0
  858. package/dist/wall/definition.edit.d.ts.map +1 -0
  859. package/dist/wall/definition.edit.js +184 -0
  860. package/dist/wall/definition.js +4 -279
  861. package/dist/wall/definition.render.d.ts +6 -0
  862. package/dist/wall/definition.render.d.ts.map +1 -0
  863. package/dist/wall/definition.render.js +100 -0
  864. package/dist/wall/floorplan.js +1 -1
  865. package/dist/wall/measurement.d.ts.map +1 -1
  866. package/dist/wall/measurement.js +22 -5
  867. package/dist/wall/move-endpoint-tool.d.ts.map +1 -1
  868. package/dist/wall/move-endpoint-tool.js +3 -3
  869. package/dist/wall/move-shared.js +1 -1
  870. package/dist/wall/panel-model.d.ts.map +1 -1
  871. package/dist/wall/panel-model.js +4 -3
  872. package/dist/wall/panel.d.ts.map +1 -1
  873. package/dist/wall/panel.js +15 -6
  874. package/dist/wall/quick-measurement.js +1 -1
  875. package/dist/wall/rectangle-command.d.ts +1 -0
  876. package/dist/wall/rectangle-command.d.ts.map +1 -1
  877. package/dist/wall/rectangle-tool.js +2 -2
  878. package/dist/wall/split-floorplan-layer.d.ts.map +1 -1
  879. package/dist/wall/split-floorplan-layer.js +2 -2
  880. package/dist/wall/split-tool.d.ts.map +1 -1
  881. package/dist/wall/split-tool.js +2 -2
  882. package/dist/wall/tool.d.ts.map +1 -1
  883. package/dist/wall/tool.js +138 -36
  884. package/dist/wall/treatments.d.ts.map +1 -1
  885. package/dist/wall/treatments.js +36 -16
  886. package/dist/window/definition.d.ts +356 -15
  887. package/dist/window/definition.d.ts.map +1 -1
  888. package/dist/window/definition.edit.d.ts +4 -0
  889. package/dist/window/definition.edit.d.ts.map +1 -0
  890. package/dist/window/definition.edit.js +255 -0
  891. package/dist/window/definition.js +5 -338
  892. package/dist/window/definition.render.d.ts +8 -0
  893. package/dist/window/definition.render.d.ts.map +1 -0
  894. package/dist/window/definition.render.js +83 -0
  895. package/dist/window/floorplan-move.d.ts.map +1 -1
  896. package/dist/window/floorplan-move.js +7 -4
  897. package/dist/window/mechanism.js +1 -1
  898. package/dist/window/move-tool.d.ts.map +1 -1
  899. package/dist/window/move-tool.js +7 -11
  900. package/dist/window/tool.d.ts.map +1 -1
  901. package/dist/window/tool.js +5 -2
  902. package/dist/zone/contextual-dimensions.d.ts.map +1 -1
  903. package/dist/zone/contextual-dimensions.js +1 -2
  904. package/dist/zone/definition.d.ts +264 -9
  905. package/dist/zone/definition.d.ts.map +1 -1
  906. package/dist/zone/definition.edit.d.ts +4 -0
  907. package/dist/zone/definition.edit.d.ts.map +1 -0
  908. package/dist/zone/definition.edit.js +38 -0
  909. package/dist/zone/definition.js +4 -97
  910. package/dist/zone/definition.render.d.ts +6 -0
  911. package/dist/zone/definition.render.d.ts.map +1 -0
  912. package/dist/zone/definition.render.js +55 -0
  913. package/dist/zone/quantities-panel.d.ts.map +1 -1
  914. package/dist/zone/quantities-panel.js +2 -2
  915. package/package.json +21 -10
@@ -1,11 +1,118 @@
1
- import { type NodeDefinition } from '@pascal-app/core';
2
- import { ElevatorNode } from './schema.js';
3
- /**
4
- * Elevator — Stage A registration. Wrap-exports the legacy renderer +
5
- * the three legacy systems (runtime / interaction / opening) bundled
6
- * as one `def.system`. Move / inspector still go through legacy
7
- * (`MoveElevatorTool`, `<ElevatorPanel>`) via panel-manager's
8
- * hardcoded switch.
9
- */
10
- export declare const elevatorDefinition: NodeDefinition<typeof ElevatorNode>;
1
+ export declare const elevatorDefinition: import("@pascal-app/core").NodeDefinition<import("zod").ZodObject<{
2
+ object: import("zod").ZodDefault<import("zod").ZodLiteral<"node">>;
3
+ name: import("zod").ZodOptional<import("zod").ZodString>;
4
+ parentId: import("zod").ZodDefault<import("zod").ZodNullable<import("zod").ZodString>>;
5
+ visible: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodBoolean>>;
6
+ camera: import("zod").ZodOptional<import("zod").ZodObject<{
7
+ position: import("zod").ZodTuple<[import("zod").ZodNumber, import("zod").ZodNumber, import("zod").ZodNumber], null>;
8
+ target: import("zod").ZodTuple<[import("zod").ZodNumber, import("zod").ZodNumber, import("zod").ZodNumber], null>;
9
+ mode: import("zod").ZodDefault<import("zod").ZodEnum<{
10
+ orthographic: "orthographic";
11
+ perspective: "perspective";
12
+ }>>;
13
+ fov: import("zod").ZodOptional<import("zod").ZodNumber>;
14
+ zoom: import("zod").ZodOptional<import("zod").ZodNumber>;
15
+ }, import("zod/v4/core").$strip>>;
16
+ metadata: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>>;
17
+ provenance: import("zod").ZodOptional<import("zod").ZodObject<{
18
+ refs: import("zod").ZodArray<import("zod").ZodObject<{
19
+ ns: import("zod").ZodOptional<import("zod").ZodString>;
20
+ id: import("zod").ZodString;
21
+ role: import("zod").ZodOptional<import("zod").ZodEnum<{
22
+ absorbed: "absorbed";
23
+ alias: "alias";
24
+ derived: "derived";
25
+ piece: "piece";
26
+ primary: "primary";
27
+ }>>;
28
+ }, import("zod/v4/core").$strip>>;
29
+ lineage: import("zod").ZodOptional<import("zod").ZodObject<{
30
+ op: import("zod").ZodEnum<{
31
+ attach: "attach";
32
+ convert: "convert";
33
+ duplicate: "duplicate";
34
+ import: "import";
35
+ "make-independent": "make-independent";
36
+ merge: "merge";
37
+ promote: "promote";
38
+ split: "split";
39
+ }>;
40
+ fromIds: import("zod").ZodArray<import("zod").ZodString>;
41
+ }, import("zod/v4/core").$strip>>;
42
+ }, import("zod/v4/core").$strip>>;
43
+ id: import("zod").ZodDefault<import("zod").ZodTemplateLiteral<`elevator_${string}`>>;
44
+ type: import("zod").ZodDefault<import("zod").ZodLiteral<"elevator">>;
45
+ material: import("zod").ZodOptional<import("zod").ZodObject<{
46
+ id: import("zod").ZodOptional<import("zod").ZodString>;
47
+ preset: import("zod").ZodOptional<import("zod").ZodCatch<import("zod").ZodEnum<{
48
+ brick: "brick";
49
+ concrete: "concrete";
50
+ custom: "custom";
51
+ glass: "glass";
52
+ marble: "marble";
53
+ metal: "metal";
54
+ plaster: "plaster";
55
+ tile: "tile";
56
+ white: "white";
57
+ wood: "wood";
58
+ }>>>;
59
+ properties: import("zod").ZodOptional<import("zod").ZodObject<{
60
+ color: import("zod").ZodDefault<import("zod").ZodString>;
61
+ roughness: import("zod").ZodDefault<import("zod").ZodNumber>;
62
+ metalness: import("zod").ZodDefault<import("zod").ZodNumber>;
63
+ opacity: import("zod").ZodDefault<import("zod").ZodNumber>;
64
+ transparent: import("zod").ZodDefault<import("zod").ZodBoolean>;
65
+ side: import("zod").ZodDefault<import("zod").ZodEnum<{
66
+ back: "back";
67
+ double: "double";
68
+ front: "front";
69
+ }>>;
70
+ }, import("zod/v4/core").$strip>>;
71
+ texture: import("zod").ZodOptional<import("zod").ZodObject<{
72
+ url: import("zod").ZodString;
73
+ repeat: import("zod").ZodOptional<import("zod").ZodTuple<[import("zod").ZodNumber, import("zod").ZodNumber], null>>;
74
+ scale: import("zod").ZodOptional<import("zod").ZodNumber>;
75
+ offset: import("zod").ZodOptional<import("zod").ZodTuple<[import("zod").ZodNumber, import("zod").ZodNumber], null>>;
76
+ normalMap: import("zod").ZodOptional<import("zod").ZodString>;
77
+ normalScale: import("zod").ZodOptional<import("zod").ZodNumber>;
78
+ bumpMap: import("zod").ZodOptional<import("zod").ZodString>;
79
+ bumpScale: import("zod").ZodOptional<import("zod").ZodNumber>;
80
+ }, import("zod/v4/core").$strip>>;
81
+ }, import("zod/v4/core").$strip>>;
82
+ materialPreset: import("zod").ZodOptional<import("zod").ZodString>;
83
+ slots: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodString>>;
84
+ position: import("zod").ZodDefault<import("zod").ZodTuple<[import("zod").ZodNumber, import("zod").ZodNumber, import("zod").ZodNumber], null>>;
85
+ rotation: import("zod").ZodDefault<import("zod").ZodNumber>;
86
+ width: import("zod").ZodDefault<import("zod").ZodNumber>;
87
+ depth: import("zod").ZodDefault<import("zod").ZodNumber>;
88
+ shaftWidth: import("zod").ZodOptional<import("zod").ZodNumber>;
89
+ shaftDepth: import("zod").ZodOptional<import("zod").ZodNumber>;
90
+ shaftWallThickness: import("zod").ZodDefault<import("zod").ZodNumber>;
91
+ shaftStyle: import("zod").ZodDefault<import("zod").ZodEnum<{
92
+ glass: "glass";
93
+ solid: "solid";
94
+ }>>;
95
+ cabHeight: import("zod").ZodDefault<import("zod").ZodNumber>;
96
+ doorWidth: import("zod").ZodDefault<import("zod").ZodNumber>;
97
+ doorHeight: import("zod").ZodDefault<import("zod").ZodNumber>;
98
+ doorStyle: import("zod").ZodDefault<import("zod").ZodEnum<{
99
+ "center-opening": "center-opening";
100
+ "single-left": "single-left";
101
+ "single-right": "single-right";
102
+ }>>;
103
+ doorPanelStyle: import("zod").ZodDefault<import("zod").ZodEnum<{
104
+ "glass-frame": "glass-frame";
105
+ "segmented-panel": "segmented-panel";
106
+ "solid-panel": "solid-panel";
107
+ }>>;
108
+ fromLevelId: import("zod").ZodDefault<import("zod").ZodNullable<import("zod").ZodString>>;
109
+ toLevelId: import("zod").ZodDefault<import("zod").ZodNullable<import("zod").ZodString>>;
110
+ servedLevelIds: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
111
+ disabledLevelIds: import("zod").ZodDefault<import("zod").ZodArray<import("zod").ZodString>>;
112
+ serviceOnlyLevelIds: import("zod").ZodDefault<import("zod").ZodArray<import("zod").ZodString>>;
113
+ defaultLevelId: import("zod").ZodDefault<import("zod").ZodNullable<import("zod").ZodString>>;
114
+ speed: import("zod").ZodDefault<import("zod").ZodNumber>;
115
+ doorDurationMs: import("zod").ZodDefault<import("zod").ZodNumber>;
116
+ dwellMs: import("zod").ZodDefault<import("zod").ZodNumber>;
117
+ }, import("zod/v4/core").$strip>>;
11
118
  //# sourceMappingURL=definition.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/elevator/definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAUL,KAAK,cAAc,EAEpB,MAAM,kBAAkB,CAAA;AAKzB,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAqJvC;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,EAAE,cAAc,CAAC,OAAO,YAAY,CAgHlE,CAAA"}
1
+ {"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/elevator/definition.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCAG9B,CAAA"}
@@ -0,0 +1,4 @@
1
+ import type { NodeEditContribution } from '../definition-contributions.js';
2
+ import type { ElevatorNode } from './schema.js';
3
+ export declare const elevatorEditContribution: NodeEditContribution<typeof ElevatorNode>;
4
+ //# sourceMappingURL=definition.edit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definition.edit.d.ts","sourceRoot":"","sources":["../../src/elevator/definition.edit.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAMvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAsJ5C,eAAO,MAAM,wBAAwB,EAAE,oBAAoB,CAAC,OAAO,YAAY,CAqC9E,CAAA"}
@@ -0,0 +1,177 @@
1
+ import { ELEVATOR_MIN_CAB_DIMENSION, ELEVATOR_MIN_CAB_HEIGHT, getElevatorCabDepth, getElevatorCabWidth, getElevatorShaftDepth, getElevatorShaftWallThickness, getElevatorShaftWidth, normalizeElevatorDimensions, resolveElevatorDimensions, resolveElevatorLevels, } from '@pascal-app/core';
2
+ import { elevatorOuterHalfExtents } from './definition.render.js';
3
+ import { buildElevatorFloorplan } from './floorplan.js';
4
+ import { elevatorResizeAffordance, elevatorRotateAffordance } from './floorplan-affordances.js';
5
+ import { elevatorPaint } from './paint.js';
6
+ import { elevatorParametrics } from './parametrics.js';
7
+ const SIDE_HANDLE_OFFSET = 0.22;
8
+ const HEIGHT_HANDLE_OFFSET = 0.3;
9
+ const MOVE_FRONT_OFFSET = 0.35;
10
+ const MIN_ELEVATOR_DIM = ELEVATOR_MIN_CAB_DIMENSION;
11
+ const MIN_CAB_HEIGHT = ELEVATOR_MIN_CAB_HEIGHT;
12
+ const ROTATE_CORNER_OFFSET = 0.4;
13
+ const ROTATE_RING_OFFSET = 0.08;
14
+ // Symmetric width / depth arrows around the cab footprint. The descriptor
15
+ // edits the CAB dimension (`width` / `depth`) — but the arrow must sit
16
+ // outside the SHAFT shell so it doesn't disappear inside the rendered
17
+ // elevator. Placement uses the shaft's outer extent + wall thickness +
18
+ // padding so the arrow clears the visible body on both `solid` and
19
+ // `glass` shafts. `anchor: 'center'` means dragging outward grows the
20
+ // full span 2× the pointer delta; node.position stays put.
21
+ function elevatorAxisHandle(axis) {
22
+ return {
23
+ kind: 'linear-resize',
24
+ axis,
25
+ anchor: 'center',
26
+ min: MIN_ELEVATOR_DIM,
27
+ currentValue: (n) => axis === 'x' ? resolveElevatorDimensions(n).width : resolveElevatorDimensions(n).depth,
28
+ apply: (n, newValue) => normalizeElevatorDimensions({
29
+ ...n,
30
+ ...(axis === 'x' ? { width: newValue } : { depth: newValue }),
31
+ }),
32
+ placement: {
33
+ position: (n) => {
34
+ const cabWidth = getElevatorCabWidth(n);
35
+ const cabDepth = getElevatorCabDepth(n);
36
+ const wallThickness = getElevatorShaftWallThickness(n);
37
+ const outerHalf = axis === 'x'
38
+ ? getElevatorShaftWidth(n, cabWidth) / 2 + wallThickness
39
+ : getElevatorShaftDepth(n, cabDepth) / 2 + wallThickness;
40
+ const yMid = Math.max(n.cabHeight, MIN_CAB_HEIGHT) / 2;
41
+ return axis === 'x'
42
+ ? [outerHalf + SIDE_HANDLE_OFFSET, yMid, 0]
43
+ : [0, yMid, outerHalf + SIDE_HANDLE_OFFSET];
44
+ },
45
+ },
46
+ };
47
+ }
48
+ // Cab-height arrow — `anchor: 'min'` keeps the cab floor fixed and grows
49
+ // the cab upward. The arrow itself sits above the full SHAFT top (not
50
+ // just the cab) so a multi-level elevator's arrow appears outside the
51
+ // rendered body rather than buried inside the shaft. `resolveElevatorLevels`
52
+ // walks the building's level chain to find shaftTopY; the fallback
53
+ // (cabHeight + 0.3) matches the renderer's own when no service levels
54
+ // are configured yet.
55
+ function elevatorCabHeightHandle() {
56
+ return {
57
+ kind: 'linear-resize',
58
+ axis: 'y',
59
+ anchor: 'min',
60
+ min: MIN_CAB_HEIGHT,
61
+ currentValue: (n) => Math.max(n.cabHeight, MIN_CAB_HEIGHT),
62
+ apply: (n, newValue) => normalizeElevatorDimensions({ ...n, cabHeight: newValue }),
63
+ placement: {
64
+ position: (n, scene) => {
65
+ const { shaftTopY } = resolveElevatorLevels(n, scene.nodes());
66
+ const cabTop = Math.max(n.cabHeight, MIN_CAB_HEIGHT) + 0.3;
67
+ const top = Math.max(shaftTopY, cabTop);
68
+ return [0, top + HEIGHT_HANDLE_OFFSET, 0];
69
+ },
70
+ },
71
+ };
72
+ }
73
+ // Rotation handle — sits at the front-right corner of the shaft
74
+ // footprint. `arc-resize` does the angular drag math (raycasts a
75
+ // horizontal plane at the arrow's Y, measures cursor angle around the
76
+ // elevator's local origin, returns the delta to apply). On hover or
77
+ // drag the decoration ring traces the shaft's bounding circle through
78
+ // all four corners — same idiom as the column radius ring.
79
+ function elevatorRotateHandle() {
80
+ return {
81
+ kind: 'arc-resize',
82
+ axis: 'angular',
83
+ shape: 'rotate',
84
+ // The cursor delta `atan2(hit.z - center.z, hit.x - center.x)` ticks
85
+ // up in the opposite handedness from three.js's Y-rotation (positive
86
+ // Ry takes +X → -Z, while atan2(z,x) increases as we go +X → +Z).
87
+ // Negate so dragging the cursor CCW around the elevator (as seen
88
+ // from above) actually rotates the elevator CCW.
89
+ apply: (initial, delta) => ({ rotation: (initial.rotation ?? 0) - delta }),
90
+ placement: {
91
+ // Offset along +Z only so the gizmo sticks out the front of the
92
+ // shaft rather than diagonally at the corner — matches the column's
93
+ // one-direction rotate placement.
94
+ position: (n) => {
95
+ const { halfX, halfZ } = elevatorOuterHalfExtents(n);
96
+ const yMid = Math.max(n.cabHeight, MIN_CAB_HEIGHT) / 2;
97
+ return [halfX, yMid, halfZ + ROTATE_CORNER_OFFSET];
98
+ },
99
+ // Fixed −45° tilt — leans the curve clockwise (as seen from above)
100
+ // toward the shaft's front face.
101
+ rotationY: () => -Math.PI / 4,
102
+ },
103
+ decoration: {
104
+ kind: 'ring',
105
+ // Bounding circle through the shaft corners — drawn slightly larger
106
+ // so it sits outside the visible shell.
107
+ radius: (n) => {
108
+ const { halfX, halfZ } = elevatorOuterHalfExtents(n);
109
+ return Math.hypot(halfX, halfZ) + ROTATE_RING_OFFSET;
110
+ },
111
+ y: (n) => Math.max(n.cabHeight, MIN_CAB_HEIGHT) / 2,
112
+ },
113
+ };
114
+ }
115
+ function elevatorMoveHandle() {
116
+ return {
117
+ // Tap-to-engage: hand the elevator to its move tool (same path the
118
+ // floating action menu's Move button takes via `setMovingNode`) so the
119
+ // 3D grip and the floating-UI button share one move flow — green
120
+ // bounding box, alignment guides, R/T rotation, click-to-commit.
121
+ kind: 'tap-action',
122
+ shape: 'move-cross',
123
+ cursor: 'move',
124
+ onActivate: (node, _scene, editor) => editor.engageMove(node),
125
+ placement: {
126
+ position: (n) => {
127
+ const { halfZ } = elevatorOuterHalfExtents(n);
128
+ return [0, 0.02, halfZ + MOVE_FRONT_OFFSET];
129
+ },
130
+ },
131
+ };
132
+ }
133
+ const elevatorHandles = [
134
+ elevatorAxisHandle('x'),
135
+ elevatorAxisHandle('z'),
136
+ elevatorCabHeightHandle(),
137
+ elevatorRotateHandle(),
138
+ elevatorMoveHandle(),
139
+ ];
140
+ export const elevatorEditContribution = {
141
+ snapProfile: 'structural',
142
+ // Placed as a footprint (R/T rotates), not a directional draw → no angle-lock
143
+ // mode. The toolHints presence routes it through the contextual HUD so the
144
+ // snapping chip shows during placement.
145
+ snapDraftDirectional: false,
146
+ toolHints: [
147
+ { key: 'Left click', label: 'Place elevator' },
148
+ { key: 'R / T', label: 'Rotate' },
149
+ { key: 'Esc', label: 'Cancel' },
150
+ ],
151
+ capabilities: {
152
+ paint: elevatorPaint,
153
+ },
154
+ tool: () => import('./tool.js'),
155
+ renderer: {
156
+ kind: 'parametric',
157
+ module: () => import('./renderer.edit.js'),
158
+ },
159
+ parametrics: elevatorParametrics,
160
+ handles: elevatorHandles,
161
+ floorplan: buildElevatorFloorplan,
162
+ // Elevators are parented to the building (siblings of levels), so the
163
+ // floor-plan layer's level-rooted DFS never reaches them. Declaring
164
+ // `floorplanScope: 'building'` tells `FloorplanRegistryLayer` to walk
165
+ // building-scoped kinds separately and synthesise `ctx.parent` as the
166
+ // active level — that's what `buildElevatorFloorplan` reads via
167
+ // `ctx.parent?.id` to decide whether this floor is in the elevator's
168
+ // service range.
169
+ floorplanScope: 'building',
170
+ // 2D drag affordance for the rotate-arrow emitted at the elevator's
171
+ // front-right corner. Body move uses the generic move-arrow / move-
172
+ // handle path emitted by the floor-plan builder.
173
+ floorplanAffordances: {
174
+ 'elevator-resize': elevatorResizeAffordance,
175
+ 'elevator-rotate': elevatorRotateAffordance,
176
+ },
177
+ };
@@ -1,258 +1,4 @@
1
- import { ElevatorNode as ElevatorNodeSchema, elevatorSlots, getElevatorCabDepth, getElevatorCabWidth, getElevatorShaftDepth, getElevatorShaftWallThickness, getElevatorShaftWidth, resolveElevatorLevels, } from '@pascal-app/core';
2
- import { buildElevatorFloorplan } from './floorplan.js';
3
- import { elevatorResizeAffordance, elevatorRotateAffordance } from './floorplan-affordances.js';
4
- import { elevatorPaint } from './paint.js';
5
- import { elevatorParametrics } from './parametrics.js';
6
- import { ElevatorNode } from './schema.js';
7
- const SIDE_HANDLE_OFFSET = 0.22;
8
- const HEIGHT_HANDLE_OFFSET = 0.3;
9
- const MOVE_FRONT_OFFSET = 0.35;
10
- const MIN_ELEVATOR_DIM = 0.6;
11
- const MIN_CAB_HEIGHT = 1.4;
12
- const ROTATE_CORNER_OFFSET = 0.4;
13
- const ROTATE_RING_OFFSET = 0.08;
14
- // Symmetric width / depth arrows around the cab footprint. The descriptor
15
- // edits the CAB dimension (`width` / `depth`) — but the arrow must sit
16
- // outside the SHAFT shell so it doesn't disappear inside the rendered
17
- // elevator. Placement uses the shaft's outer extent + wall thickness +
18
- // padding so the arrow clears the visible body on both `solid` and
19
- // `glass` shafts. `anchor: 'center'` means dragging outward grows the
20
- // full span 2× the pointer delta; node.position stays put.
21
- function elevatorAxisHandle(axis) {
22
- return {
23
- kind: 'linear-resize',
24
- axis,
25
- anchor: 'center',
26
- min: MIN_ELEVATOR_DIM,
27
- currentValue: (n) => (axis === 'x' ? n.width : n.depth),
28
- apply: (_n, newValue) => (axis === 'x' ? { width: newValue } : { depth: newValue }),
29
- placement: {
30
- position: (n) => {
31
- const cabWidth = getElevatorCabWidth(n);
32
- const cabDepth = getElevatorCabDepth(n);
33
- const wallThickness = getElevatorShaftWallThickness(n);
34
- const outerHalf = axis === 'x'
35
- ? getElevatorShaftWidth(n, cabWidth) / 2 + wallThickness
36
- : getElevatorShaftDepth(n, cabDepth) / 2 + wallThickness;
37
- const yMid = Math.max(n.cabHeight, MIN_CAB_HEIGHT) / 2;
38
- return axis === 'x'
39
- ? [outerHalf + SIDE_HANDLE_OFFSET, yMid, 0]
40
- : [0, yMid, outerHalf + SIDE_HANDLE_OFFSET];
41
- },
42
- },
43
- };
44
- }
45
- // Cab-height arrow — `anchor: 'min'` keeps the cab floor fixed and grows
46
- // the cab upward. The arrow itself sits above the full SHAFT top (not
47
- // just the cab) so a multi-level elevator's arrow appears outside the
48
- // rendered body rather than buried inside the shaft. `resolveElevatorLevels`
49
- // walks the building's level chain to find shaftTopY; the fallback
50
- // (cabHeight + 0.3) matches the renderer's own when no service levels
51
- // are configured yet.
52
- function elevatorCabHeightHandle() {
53
- return {
54
- kind: 'linear-resize',
55
- axis: 'y',
56
- anchor: 'min',
57
- min: MIN_CAB_HEIGHT,
58
- currentValue: (n) => Math.max(n.cabHeight, MIN_CAB_HEIGHT),
59
- apply: (_n, newValue) => ({ cabHeight: newValue }),
60
- placement: {
61
- position: (n, scene) => {
62
- const { shaftTopY } = resolveElevatorLevels(n, scene.nodes());
63
- const cabTop = Math.max(n.cabHeight, MIN_CAB_HEIGHT) + 0.3;
64
- const top = Math.max(shaftTopY, cabTop);
65
- return [0, top + HEIGHT_HANDLE_OFFSET, 0];
66
- },
67
- },
68
- };
69
- }
70
- function elevatorOuterHalfExtents(n) {
71
- const cabWidth = getElevatorCabWidth(n);
72
- const cabDepth = getElevatorCabDepth(n);
73
- const wallThickness = getElevatorShaftWallThickness(n);
74
- return {
75
- halfX: getElevatorShaftWidth(n, cabWidth) / 2 + wallThickness,
76
- halfZ: getElevatorShaftDepth(n, cabDepth) / 2 + wallThickness,
77
- };
78
- }
79
- // Rotation handle — sits at the front-right corner of the shaft
80
- // footprint. `arc-resize` does the angular drag math (raycasts a
81
- // horizontal plane at the arrow's Y, measures cursor angle around the
82
- // elevator's local origin, returns the delta to apply). On hover or
83
- // drag the decoration ring traces the shaft's bounding circle through
84
- // all four corners — same idiom as the column radius ring.
85
- function elevatorRotateHandle() {
86
- return {
87
- kind: 'arc-resize',
88
- axis: 'angular',
89
- shape: 'rotate',
90
- // The cursor delta `atan2(hit.z - center.z, hit.x - center.x)` ticks
91
- // up in the opposite handedness from three.js's Y-rotation (positive
92
- // Ry takes +X → -Z, while atan2(z,x) increases as we go +X → +Z).
93
- // Negate so dragging the cursor CCW around the elevator (as seen
94
- // from above) actually rotates the elevator CCW.
95
- apply: (initial, delta) => ({ rotation: (initial.rotation ?? 0) - delta }),
96
- placement: {
97
- // Offset along +Z only so the gizmo sticks out the front of the
98
- // shaft rather than diagonally at the corner — matches the column's
99
- // one-direction rotate placement.
100
- position: (n) => {
101
- const { halfX, halfZ } = elevatorOuterHalfExtents(n);
102
- const yMid = Math.max(n.cabHeight, MIN_CAB_HEIGHT) / 2;
103
- return [halfX, yMid, halfZ + ROTATE_CORNER_OFFSET];
104
- },
105
- // Fixed −45° tilt — leans the curve clockwise (as seen from above)
106
- // toward the shaft's front face.
107
- rotationY: () => -Math.PI / 4,
108
- },
109
- decoration: {
110
- kind: 'ring',
111
- // Bounding circle through the shaft corners — drawn slightly larger
112
- // so it sits outside the visible shell.
113
- radius: (n) => {
114
- const { halfX, halfZ } = elevatorOuterHalfExtents(n);
115
- return Math.hypot(halfX, halfZ) + ROTATE_RING_OFFSET;
116
- },
117
- y: (n) => Math.max(n.cabHeight, MIN_CAB_HEIGHT) / 2,
118
- },
119
- };
120
- }
121
- function elevatorMoveHandle() {
122
- return {
123
- // Tap-to-engage: hand the elevator to its move tool (same path the
124
- // floating action menu's Move button takes via `setMovingNode`) so the
125
- // 3D grip and the floating-UI button share one move flow — green
126
- // bounding box, alignment guides, R/T rotation, click-to-commit.
127
- kind: 'tap-action',
128
- shape: 'move-cross',
129
- cursor: 'move',
130
- onActivate: (node, _scene, editor) => editor.engageMove(node),
131
- placement: {
132
- position: (n) => {
133
- const { halfZ } = elevatorOuterHalfExtents(n);
134
- return [0, 0.02, halfZ + MOVE_FRONT_OFFSET];
135
- },
136
- },
137
- };
138
- }
139
- const elevatorHandles = [
140
- elevatorAxisHandle('x'),
141
- elevatorAxisHandle('z'),
142
- elevatorCabHeightHandle(),
143
- elevatorRotateHandle(),
144
- elevatorMoveHandle(),
145
- ];
146
- /**
147
- * Elevator — Stage A registration. Wrap-exports the legacy renderer +
148
- * the three legacy systems (runtime / interaction / opening) bundled
149
- * as one `def.system`. Move / inspector still go through legacy
150
- * (`MoveElevatorTool`, `<ElevatorPanel>`) via panel-manager's
151
- * hardcoded switch.
152
- */
153
- export const elevatorDefinition = {
154
- kind: 'elevator',
155
- schemaVersion: 1,
156
- schema: ElevatorNode,
157
- category: 'structure',
158
- snapProfile: 'structural',
159
- // Placed as a footprint (R/T rotates), not a directional draw → no angle-lock
160
- // mode. The toolHints presence routes it through the contextual HUD so the
161
- // snapping chip shows during placement.
162
- snapDraftDirectional: false,
163
- toolHints: [
164
- { key: 'Left click', label: 'Place elevator' },
165
- { key: 'R / T', label: 'Rotate' },
166
- { key: 'Esc', label: 'Cancel' },
167
- ],
168
- surfaceRole: 'joinery',
169
- defaults: () => {
170
- const stub = ElevatorNodeSchema.parse({ id: 'elevator_default', type: 'elevator' });
171
- const { id: _id, type: _type, ...rest } = stub;
172
- return rest;
173
- },
174
- capabilities: {
175
- surfacePlacement: 'floor-only',
176
- selectable: { hitVolume: 'bbox' },
177
- // Generic XZ translate so the floating action menu's Move button
178
- // (and the side move-arrows emitted from `def.floorplan`) drive the
179
- // 2D body-move flow through `FloorplanRegistryMoveOverlay`'s
180
- // Path 2 — position[0] / position[2] update with a 0.5m grid snap.
181
- movable: { axes: ['x', 'z'], gridSnap: true },
182
- // Align by the OUTER SHAFT (shaft + wall — what's drawn in plan and 3D),
183
- // not the cab `width × depth`: the cab is inset by the shaft wall +
184
- // clearance, so cab corners sit ~9 cm inside the visible edge — past the
185
- // 8 cm snap, which is why the elevator never surfaced a guide. A `box`
186
- // shape (not `aabb`) because the elevator is `movable`, so the anchor
187
- // bridge relocates this same footprint to the drag point.
188
- alignmentFootprint: (node) => {
189
- const e = node;
190
- const { halfX, halfZ } = elevatorOuterHalfExtents(e);
191
- return {
192
- shape: 'box',
193
- dimensions: [halfX * 2, 1, halfZ * 2],
194
- rotation: [0, e.rotation ?? 0, 0],
195
- };
196
- },
197
- // Drag box wraps just the OUTER SHAFT × full shaft height — same footprint
198
- // alignment uses, same height the rendered shell occupies. Without this
199
- // override, `DragBoundingBox` would measure the whole mesh tree (per-level
200
- // landing assemblies, cab interior, buttons) and the box would feel
201
- // vertically off-centre when the elevator's lowest served level isn't the
202
- // building origin.
203
- dragBounds: (node, nodes) => {
204
- const e = node;
205
- const { halfX, halfZ } = elevatorOuterHalfExtents(e);
206
- const { shaftBaseY, totalHeight } = resolveElevatorLevels(e, nodes ?? {});
207
- const cabHeight = Math.max(e.cabHeight, 1.4);
208
- const shaftHeight = Math.max(totalHeight, cabHeight + 0.3);
209
- return {
210
- size: [halfX * 2, shaftHeight, halfZ * 2],
211
- centerY: shaftBaseY + shaftHeight / 2,
212
- };
213
- },
214
- duplicable: true,
215
- deletable: true,
216
- slots: (node) => elevatorSlots(node),
217
- paint: elevatorPaint,
218
- },
219
- parametrics: elevatorParametrics,
220
- handles: elevatorHandles,
221
- // No dirty consumer rebuilds this kind — see NodeDefinition.dirtyTracking.
222
- dirtyTracking: false,
223
- rendersChildren: false,
224
- renderer: {
225
- kind: 'parametric',
226
- module: () => import('./renderer.js'),
227
- },
228
- system: {
229
- module: () => import('./system.js'),
230
- priority: 3,
231
- },
232
- floorplan: buildElevatorFloorplan,
233
- // Elevators are parented to the building (siblings of levels), so the
234
- // floor-plan layer's level-rooted DFS never reaches them. Declaring
235
- // `floorplanScope: 'building'` tells `FloorplanRegistryLayer` to walk
236
- // building-scoped kinds separately and synthesise `ctx.parent` as the
237
- // active level — that's what `buildElevatorFloorplan` reads via
238
- // `ctx.parent?.id` to decide whether this floor is in the elevator's
239
- // service range.
240
- floorplanScope: 'building',
241
- // 2D drag affordance for the rotate-arrow emitted at the elevator's
242
- // front-right corner. Body move uses the generic move-arrow / move-
243
- // handle path emitted by the floor-plan builder.
244
- floorplanAffordances: {
245
- 'elevator-resize': elevatorResizeAffordance,
246
- 'elevator-rotate': elevatorRotateAffordance,
247
- },
248
- presentation: {
249
- label: 'Elevator',
250
- description: 'A multi-level elevator shaft with configurable openings per level.',
251
- icon: { kind: 'url', src: '/icons/wallcut.webp' },
252
- paletteSection: 'structure',
253
- paletteOrder: 80,
254
- },
255
- mcp: {
256
- description: 'A multi-level elevator with shaft + openings per level.',
257
- },
258
- };
1
+ import { composeNodeDefinition } from '../definition-contributions.js';
2
+ import { elevatorEditContribution } from './definition.edit.js';
3
+ import { elevatorRenderDefinition } from './definition.render.js';
4
+ export const elevatorDefinition = composeNodeDefinition(elevatorRenderDefinition, elevatorEditContribution);
@@ -0,0 +1,11 @@
1
+ import { type ElevatorNode as ElevatorNodeType } from '@pascal-app/core';
2
+ import type { NodeRenderDefinition } from '../definition-contributions.js';
3
+ import { ElevatorNode } from './schema.js';
4
+ export declare function elevatorOuterHalfExtents(n: ElevatorNodeType): {
5
+ halfX: number;
6
+ halfZ: number;
7
+ };
8
+ export declare const elevatorRenderDefinition: NodeRenderDefinition<typeof ElevatorNode> & {
9
+ kind: 'elevator';
10
+ };
11
+ //# sourceMappingURL=definition.render.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definition.render.d.ts","sourceRoot":"","sources":["../../src/elevator/definition.render.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,YAAY,IAAI,gBAAgB,EAUtC,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAEvC,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,gBAAgB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAQ9F;AAED,eAAO,MAAM,wBAAwB,EAAE,oBAAoB,CAAC,OAAO,YAAY,CAAC,GAAG;IACjF,IAAI,EAAE,UAAU,CAAA;CAqFjB,CAAA"}