@pascal-app/nodes 1.0.7 → 1.1.1

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