@pascal-app/core 1.0.5 → 1.0.7

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 (940) hide show
  1. package/dist/agent-operations/__fixtures__/add-object-cases.d.ts +31 -0
  2. package/dist/agent-operations/__fixtures__/add-object-cases.d.ts.map +1 -1
  3. package/dist/agent-operations/__fixtures__/build-room-cases.d.ts.map +1 -1
  4. package/dist/agent-operations/__fixtures__/build-room-cases.js +27 -0
  5. package/dist/agent-operations/__fixtures__/cases.d.ts.map +1 -1
  6. package/dist/agent-operations/__fixtures__/cases.js +19 -11
  7. package/dist/agent-operations/__fixtures__/design-brief-cases.d.ts +25 -2
  8. package/dist/agent-operations/__fixtures__/design-brief-cases.d.ts.map +1 -1
  9. package/dist/agent-operations/__fixtures__/design-brief-cases.js +509 -66
  10. package/dist/agent-operations/__fixtures__/dressing-scenes.d.ts +30 -0
  11. package/dist/agent-operations/__fixtures__/dressing-scenes.d.ts.map +1 -0
  12. package/dist/agent-operations/__fixtures__/dressing-scenes.js +82 -0
  13. package/dist/agent-operations/__fixtures__/native-materials.d.ts +407 -9
  14. package/dist/agent-operations/__fixtures__/native-materials.d.ts.map +1 -1
  15. package/dist/agent-operations/__fixtures__/notation-cases.d.ts.map +1 -1
  16. package/dist/agent-operations/__fixtures__/notation-cases.js +14 -0
  17. package/dist/agent-operations/__fixtures__/roof-bearing-cases.d.ts +7253 -4053
  18. package/dist/agent-operations/__fixtures__/roof-bearing-cases.d.ts.map +1 -1
  19. package/dist/agent-operations/__fixtures__/room-cases.d.ts +1 -0
  20. package/dist/agent-operations/__fixtures__/room-cases.d.ts.map +1 -1
  21. package/dist/agent-operations/__fixtures__/room-cases.js +57 -1
  22. package/dist/agent-operations/__fixtures__/room-check-scenes.d.ts +51 -0
  23. package/dist/agent-operations/__fixtures__/room-check-scenes.d.ts.map +1 -0
  24. package/dist/agent-operations/__fixtures__/room-check-scenes.js +121 -0
  25. package/dist/agent-operations/__fixtures__/scene-check-cases.d.ts.map +1 -1
  26. package/dist/agent-operations/__fixtures__/scene-check-cases.js +152 -18
  27. package/dist/agent-operations/__fixtures__/search-assets-cases.d.ts.map +1 -1
  28. package/dist/agent-operations/__fixtures__/search-assets-cases.js +91 -0
  29. package/dist/agent-operations/__fixtures__/site-cases.d.ts +40 -1
  30. package/dist/agent-operations/__fixtures__/site-cases.d.ts.map +1 -1
  31. package/dist/agent-operations/__fixtures__/structure-cases.d.ts +3 -0
  32. package/dist/agent-operations/__fixtures__/structure-cases.d.ts.map +1 -1
  33. package/dist/agent-operations/__fixtures__/structure-cases.js +199 -18
  34. package/dist/agent-operations/__fixtures__/unit-cases.d.ts +6 -0
  35. package/dist/agent-operations/__fixtures__/unit-cases.d.ts.map +1 -0
  36. package/dist/agent-operations/__fixtures__/unit-cases.js +266 -0
  37. package/dist/agent-operations/__fixtures__/verify-scene-cases.d.ts +109 -73
  38. package/dist/agent-operations/__fixtures__/verify-scene-cases.d.ts.map +1 -1
  39. package/dist/agent-operations/add-column.d.ts.map +1 -1
  40. package/dist/agent-operations/add-column.js +32 -3
  41. package/dist/agent-operations/add-fence.d.ts.map +1 -1
  42. package/dist/agent-operations/add-fence.js +2 -1
  43. package/dist/agent-operations/add-level.d.ts.map +1 -1
  44. package/dist/agent-operations/add-level.js +4 -4
  45. package/dist/agent-operations/add-object.d.ts +32 -6
  46. package/dist/agent-operations/add-object.d.ts.map +1 -1
  47. package/dist/agent-operations/add-object.js +59 -12
  48. package/dist/agent-operations/add-wall.d.ts +3 -8
  49. package/dist/agent-operations/add-wall.d.ts.map +1 -1
  50. package/dist/agent-operations/add-wall.js +31 -8
  51. package/dist/agent-operations/apply-changes.d.ts.map +1 -1
  52. package/dist/agent-operations/apply-changes.js +2 -1
  53. package/dist/agent-operations/asset-catalog.d.ts +63 -0
  54. package/dist/agent-operations/asset-catalog.d.ts.map +1 -0
  55. package/dist/agent-operations/asset-catalog.js +182 -0
  56. package/dist/agent-operations/asset-views.d.ts +4 -2
  57. package/dist/agent-operations/asset-views.d.ts.map +1 -1
  58. package/dist/agent-operations/asset-views.js +1 -3
  59. package/dist/agent-operations/author-scene-checks.d.ts +38 -0
  60. package/dist/agent-operations/author-scene-checks.d.ts.map +1 -0
  61. package/dist/agent-operations/author-scene-checks.js +266 -0
  62. package/dist/agent-operations/author-scene.d.ts +54 -20
  63. package/dist/agent-operations/author-scene.d.ts.map +1 -1
  64. package/dist/agent-operations/author-scene.js +1164 -196
  65. package/dist/agent-operations/authored-scene-merge.d.ts.map +1 -1
  66. package/dist/agent-operations/authored-scene-merge.js +61 -3
  67. package/dist/agent-operations/batch.d.ts +1 -1
  68. package/dist/agent-operations/batch.d.ts.map +1 -1
  69. package/dist/agent-operations/batch.js +38 -39
  70. package/dist/agent-operations/ceiling-object-observations.d.ts.map +1 -1
  71. package/dist/agent-operations/ceiling-object-observations.js +5 -4
  72. package/dist/agent-operations/circulation-geometry.d.ts +14 -0
  73. package/dist/agent-operations/circulation-geometry.d.ts.map +1 -0
  74. package/dist/agent-operations/circulation-geometry.js +151 -0
  75. package/dist/agent-operations/circulation-graph.d.ts +72 -0
  76. package/dist/agent-operations/circulation-graph.d.ts.map +1 -0
  77. package/dist/agent-operations/circulation-graph.js +713 -0
  78. package/dist/agent-operations/circulation-non-spaces.d.ts +10 -0
  79. package/dist/agent-operations/circulation-non-spaces.d.ts.map +1 -0
  80. package/dist/agent-operations/circulation-non-spaces.js +88 -0
  81. package/dist/agent-operations/circulation-spaces.d.ts +5880 -0
  82. package/dist/agent-operations/circulation-spaces.d.ts.map +1 -0
  83. package/dist/agent-operations/circulation-spaces.js +368 -0
  84. package/dist/agent-operations/collections.d.ts.map +1 -1
  85. package/dist/agent-operations/collections.js +9 -7
  86. package/dist/agent-operations/corner-window.d.ts.map +1 -1
  87. package/dist/agent-operations/corner-window.js +2 -4
  88. package/dist/agent-operations/create-roof.d.ts.map +1 -1
  89. package/dist/agent-operations/create-roof.js +5 -7
  90. package/dist/agent-operations/create-room.d.ts +4 -1
  91. package/dist/agent-operations/create-room.d.ts.map +1 -1
  92. package/dist/agent-operations/create-room.js +7 -4
  93. package/dist/agent-operations/create-stair.js +2 -2
  94. package/dist/agent-operations/design-brief.d.ts +13 -7
  95. package/dist/agent-operations/design-brief.d.ts.map +1 -1
  96. package/dist/agent-operations/design-brief.js +172 -92
  97. package/dist/agent-operations/door-clearance.d.ts +68 -8
  98. package/dist/agent-operations/door-clearance.d.ts.map +1 -1
  99. package/dist/agent-operations/door-clearance.js +127 -20
  100. package/dist/agent-operations/dress-targets.d.ts +23 -0
  101. package/dist/agent-operations/dress-targets.d.ts.map +1 -0
  102. package/dist/agent-operations/dress-targets.js +34 -0
  103. package/dist/agent-operations/duplicate-node.d.ts +14 -0
  104. package/dist/agent-operations/duplicate-node.d.ts.map +1 -0
  105. package/dist/agent-operations/duplicate-node.js +173 -0
  106. package/dist/agent-operations/find-by-type.d.ts.map +1 -1
  107. package/dist/agent-operations/find-by-type.js +3 -0
  108. package/dist/agent-operations/furnish-room.d.ts +2 -0
  109. package/dist/agent-operations/furnish-room.d.ts.map +1 -1
  110. package/dist/agent-operations/furnish-room.js +15 -4
  111. package/dist/agent-operations/furniture-kind.d.ts +28 -1
  112. package/dist/agent-operations/furniture-kind.d.ts.map +1 -1
  113. package/dist/agent-operations/furniture-kind.js +105 -6
  114. package/dist/agent-operations/ground-reader.d.ts +10 -0
  115. package/dist/agent-operations/ground-reader.d.ts.map +1 -0
  116. package/dist/agent-operations/ground-reader.js +25 -0
  117. package/dist/agent-operations/index.d.ts +118 -12
  118. package/dist/agent-operations/index.d.ts.map +1 -1
  119. package/dist/agent-operations/index.js +26 -1
  120. package/dist/agent-operations/item-solids.d.ts +39 -0
  121. package/dist/agent-operations/item-solids.d.ts.map +1 -0
  122. package/dist/agent-operations/item-solids.js +128 -0
  123. package/dist/agent-operations/layout-clearance.d.ts +91 -11
  124. package/dist/agent-operations/layout-clearance.d.ts.map +1 -1
  125. package/dist/agent-operations/layout-clearance.js +280 -73
  126. package/dist/agent-operations/level-height-fill.d.ts.map +1 -1
  127. package/dist/agent-operations/level-height-fill.js +7 -1
  128. package/dist/agent-operations/level-reads.d.ts +5 -0
  129. package/dist/agent-operations/level-reads.d.ts.map +1 -1
  130. package/dist/agent-operations/level-reads.js +38 -2
  131. package/dist/agent-operations/list-levels.d.ts.map +1 -1
  132. package/dist/agent-operations/list-levels.js +2 -4
  133. package/dist/agent-operations/move-node.d.ts +12 -0
  134. package/dist/agent-operations/move-node.d.ts.map +1 -0
  135. package/dist/agent-operations/move-node.js +28 -0
  136. package/dist/agent-operations/move-plan.d.ts +28 -0
  137. package/dist/agent-operations/move-plan.d.ts.map +1 -0
  138. package/dist/agent-operations/move-plan.js +257 -0
  139. package/dist/agent-operations/node-patch.d.ts.map +1 -1
  140. package/dist/agent-operations/node-patch.js +15 -0
  141. package/dist/agent-operations/paint.d.ts +3 -1
  142. package/dist/agent-operations/paint.d.ts.map +1 -1
  143. package/dist/agent-operations/paint.js +14 -1
  144. package/dist/agent-operations/photo-elevation.d.ts.map +1 -1
  145. package/dist/agent-operations/photo-elevation.js +2 -1
  146. package/dist/agent-operations/place-in-room.d.ts.map +1 -1
  147. package/dist/agent-operations/place-in-room.js +1 -0
  148. package/dist/agent-operations/place-items.d.ts.map +1 -1
  149. package/dist/agent-operations/place-items.js +3 -4
  150. package/dist/agent-operations/plan-clearance.d.ts +28 -0
  151. package/dist/agent-operations/plan-clearance.d.ts.map +1 -0
  152. package/dist/agent-operations/plan-clearance.js +47 -0
  153. package/dist/agent-operations/plan-geometry.d.ts +2 -0
  154. package/dist/agent-operations/plan-geometry.d.ts.map +1 -1
  155. package/dist/agent-operations/plan-geometry.js +10 -0
  156. package/dist/agent-operations/project-files.d.ts +10 -0
  157. package/dist/agent-operations/project-files.d.ts.map +1 -1
  158. package/dist/agent-operations/reachability.d.ts +41 -0
  159. package/dist/agent-operations/reachability.d.ts.map +1 -0
  160. package/dist/agent-operations/reachability.js +199 -0
  161. package/dist/agent-operations/room-checks.d.ts +60 -0
  162. package/dist/agent-operations/room-checks.d.ts.map +1 -0
  163. package/dist/agent-operations/room-checks.js +226 -0
  164. package/dist/agent-operations/room-faces.d.ts +30 -0
  165. package/dist/agent-operations/room-faces.d.ts.map +1 -0
  166. package/dist/agent-operations/room-faces.js +31 -0
  167. package/dist/agent-operations/room-findings.d.ts +5 -2
  168. package/dist/agent-operations/room-findings.d.ts.map +1 -1
  169. package/dist/agent-operations/room-findings.js +30 -0
  170. package/dist/agent-operations/room-finishes.d.ts +87 -0
  171. package/dist/agent-operations/room-finishes.d.ts.map +1 -0
  172. package/dist/agent-operations/room-finishes.js +193 -0
  173. package/dist/agent-operations/room-floor-script.d.ts +3 -3
  174. package/dist/agent-operations/room-floor-script.js +3 -3
  175. package/dist/agent-operations/room-readings.d.ts +90 -0
  176. package/dist/agent-operations/room-readings.d.ts.map +1 -0
  177. package/dist/agent-operations/room-readings.js +369 -0
  178. package/dist/agent-operations/room-tile.d.ts +15 -0
  179. package/dist/agent-operations/room-tile.d.ts.map +1 -0
  180. package/dist/agent-operations/room-tile.js +30 -0
  181. package/dist/agent-operations/room-wet.d.ts +55 -0
  182. package/dist/agent-operations/room-wet.d.ts.map +1 -0
  183. package/dist/agent-operations/room-wet.js +203 -0
  184. package/dist/agent-operations/scene-check-policy.d.ts +5 -0
  185. package/dist/agent-operations/scene-check-policy.d.ts.map +1 -0
  186. package/dist/agent-operations/scene-check-policy.js +24 -0
  187. package/dist/agent-operations/scene-checkpoint.d.ts +10 -0
  188. package/dist/agent-operations/scene-checkpoint.d.ts.map +1 -1
  189. package/dist/agent-operations/scene-checkpoint.js +31 -0
  190. package/dist/agent-operations/scene-issue-groups.d.ts +17 -0
  191. package/dist/agent-operations/scene-issue-groups.d.ts.map +1 -0
  192. package/dist/agent-operations/scene-issue-groups.js +71 -0
  193. package/dist/agent-operations/scene-materials.d.ts +23 -0
  194. package/dist/agent-operations/scene-materials.d.ts.map +1 -1
  195. package/dist/agent-operations/scene-materials.js +41 -0
  196. package/dist/agent-operations/scene-queries.d.ts +1667 -866
  197. package/dist/agent-operations/scene-queries.d.ts.map +1 -1
  198. package/dist/agent-operations/scene-queries.js +3 -3
  199. package/dist/agent-operations/scene-review.d.ts.map +1 -1
  200. package/dist/agent-operations/scene-review.js +3 -2
  201. package/dist/agent-operations/scene-view.d.ts.map +1 -1
  202. package/dist/agent-operations/scene-view.js +91 -21
  203. package/dist/agent-operations/search-assets.d.ts +10 -6
  204. package/dist/agent-operations/search-assets.d.ts.map +1 -1
  205. package/dist/agent-operations/search-assets.js +37 -22
  206. package/dist/agent-operations/set-checkpoint.d.ts.map +1 -1
  207. package/dist/agent-operations/set-checkpoint.js +1 -0
  208. package/dist/agent-operations/set-ground-level.d.ts +1 -1
  209. package/dist/agent-operations/set-ground-level.d.ts.map +1 -1
  210. package/dist/agent-operations/set-ground-level.js +3 -14
  211. package/dist/agent-operations/site.js +3 -2
  212. package/dist/agent-operations/slab-surface-script.d.ts +25 -0
  213. package/dist/agent-operations/slab-surface-script.d.ts.map +1 -0
  214. package/dist/agent-operations/slab-surface-script.js +60 -0
  215. package/dist/agent-operations/stair-plan-footprint.d.ts +9 -0
  216. package/dist/agent-operations/stair-plan-footprint.d.ts.map +1 -0
  217. package/dist/agent-operations/stair-plan-footprint.js +50 -0
  218. package/dist/agent-operations/types.d.ts +10 -5
  219. package/dist/agent-operations/types.d.ts.map +1 -1
  220. package/dist/agent-operations/units.d.ts +26 -0
  221. package/dist/agent-operations/units.d.ts.map +1 -0
  222. package/dist/agent-operations/units.js +110 -0
  223. package/dist/agent-operations/unreachable-rooms-check.d.ts +17 -0
  224. package/dist/agent-operations/unreachable-rooms-check.d.ts.map +1 -0
  225. package/dist/agent-operations/unreachable-rooms-check.js +35 -0
  226. package/dist/agent-operations/usage-checks.d.ts +2 -0
  227. package/dist/agent-operations/usage-checks.d.ts.map +1 -0
  228. package/dist/agent-operations/usage-checks.js +12 -0
  229. package/dist/agent-operations/verify-scene.d.ts +8 -11
  230. package/dist/agent-operations/verify-scene.d.ts.map +1 -1
  231. package/dist/agent-operations/verify-scene.js +55 -11
  232. package/dist/agent-operations/wall-face-defaults.d.ts +44 -0
  233. package/dist/agent-operations/wall-face-defaults.d.ts.map +1 -0
  234. package/dist/agent-operations/wall-face-defaults.js +229 -0
  235. package/dist/agent-operations/wall-joins.d.ts +119 -0
  236. package/dist/agent-operations/wall-joins.d.ts.map +1 -0
  237. package/dist/agent-operations/wall-joins.js +308 -0
  238. package/dist/agent-operations/wall-object-observations.d.ts.map +1 -1
  239. package/dist/agent-operations/wall-object-observations.js +4 -6
  240. package/dist/agent-operations/wall-skirting.d.ts.map +1 -1
  241. package/dist/agent-operations/wall-skirting.js +2 -0
  242. package/dist/agent-operations/wall-type.d.ts +49 -0
  243. package/dist/agent-operations/wall-type.d.ts.map +1 -0
  244. package/dist/agent-operations/wall-type.js +31 -0
  245. package/dist/agent-operations/zone-coverage.d.ts +85 -0
  246. package/dist/agent-operations/zone-coverage.d.ts.map +1 -0
  247. package/dist/agent-operations/zone-coverage.js +208 -0
  248. package/dist/agent-tools/add-object.d.ts +31 -0
  249. package/dist/agent-tools/add-object.d.ts.map +1 -1
  250. package/dist/agent-tools/add-object.js +44 -7
  251. package/dist/agent-tools/assets.d.ts +4 -0
  252. package/dist/agent-tools/assets.d.ts.map +1 -1
  253. package/dist/agent-tools/assets.js +11 -1
  254. package/dist/agent-tools/author-scene.d.ts +810 -15
  255. package/dist/agent-tools/author-scene.d.ts.map +1 -1
  256. package/dist/agent-tools/author-scene.js +275 -34
  257. package/dist/agent-tools/batch.d.ts +1 -1
  258. package/dist/agent-tools/batch.d.ts.map +1 -1
  259. package/dist/agent-tools/batch.js +5 -1
  260. package/dist/agent-tools/checkpoints.js +1 -1
  261. package/dist/agent-tools/columns.d.ts +14 -0
  262. package/dist/agent-tools/columns.d.ts.map +1 -1
  263. package/dist/agent-tools/columns.js +14 -2
  264. package/dist/agent-tools/contract.d.ts +10 -0
  265. package/dist/agent-tools/contract.d.ts.map +1 -1
  266. package/dist/agent-tools/contract.js +5 -1
  267. package/dist/agent-tools/corner-window.d.ts +1 -0
  268. package/dist/agent-tools/corner-window.d.ts.map +1 -1
  269. package/dist/agent-tools/corner-window.js +1 -1
  270. package/dist/agent-tools/create-room.d.ts +85 -0
  271. package/dist/agent-tools/create-room.d.ts.map +1 -1
  272. package/dist/agent-tools/create-room.js +8 -1
  273. package/dist/agent-tools/design-brief.d.ts +513 -7
  274. package/dist/agent-tools/design-brief.d.ts.map +1 -1
  275. package/dist/agent-tools/design-brief.js +192 -14
  276. package/dist/agent-tools/designs.js +1 -1
  277. package/dist/agent-tools/find-by-type.js +1 -1
  278. package/dist/agent-tools/index.d.ts +658 -10
  279. package/dist/agent-tools/index.d.ts.map +1 -1
  280. package/dist/agent-tools/index.js +9 -1
  281. package/dist/agent-tools/levels.js +4 -4
  282. package/dist/agent-tools/move-duplicate.d.ts +65 -0
  283. package/dist/agent-tools/move-duplicate.d.ts.map +1 -0
  284. package/dist/agent-tools/move-duplicate.js +68 -0
  285. package/dist/agent-tools/paint.d.ts +6 -0
  286. package/dist/agent-tools/paint.d.ts.map +1 -1
  287. package/dist/agent-tools/paint.js +7 -3
  288. package/dist/agent-tools/photo-elevation.js +1 -1
  289. package/dist/agent-tools/project-files.d.ts +2 -2
  290. package/dist/agent-tools/project-files.d.ts.map +1 -1
  291. package/dist/agent-tools/project-files.js +1 -1
  292. package/dist/agent-tools/refusal.d.ts +9 -1
  293. package/dist/agent-tools/refusal.d.ts.map +1 -1
  294. package/dist/agent-tools/refusal.js +5 -1
  295. package/dist/agent-tools/roofs.js +1 -1
  296. package/dist/agent-tools/room-structure.d.ts +60 -0
  297. package/dist/agent-tools/room-structure.d.ts.map +1 -1
  298. package/dist/agent-tools/room-structure.js +20 -1
  299. package/dist/agent-tools/search-materials.d.ts +1 -0
  300. package/dist/agent-tools/search-materials.d.ts.map +1 -1
  301. package/dist/agent-tools/site.js +1 -1
  302. package/dist/agent-tools/stairs.js +1 -1
  303. package/dist/agent-tools/units.d.ts +84 -0
  304. package/dist/agent-tools/units.d.ts.map +1 -0
  305. package/dist/agent-tools/units.js +54 -0
  306. package/dist/agent-tools/verify-scene-usage.d.ts +44 -0
  307. package/dist/agent-tools/verify-scene-usage.d.ts.map +1 -0
  308. package/dist/agent-tools/verify-scene-usage.js +146 -0
  309. package/dist/agent-tools/verify-scene.d.ts +12 -1
  310. package/dist/agent-tools/verify-scene.d.ts.map +1 -1
  311. package/dist/agent-tools/verify-scene.js +183 -3
  312. package/dist/agent-tools/view-scene.d.ts +3 -0
  313. package/dist/agent-tools/view-scene.d.ts.map +1 -1
  314. package/dist/agent-tools/view-scene.js +4 -1
  315. package/dist/agent-tools/wall-openings.d.ts +121 -2
  316. package/dist/agent-tools/wall-openings.d.ts.map +1 -1
  317. package/dist/agent-tools/wall-openings.js +123 -18
  318. package/dist/agent-tools/walls.d.ts +30 -0
  319. package/dist/agent-tools/walls.d.ts.map +1 -1
  320. package/dist/agent-tools/walls.js +54 -2
  321. package/dist/building/__fixtures__/wall-opening-cases.d.ts +340 -195
  322. package/dist/building/__fixtures__/wall-opening-cases.d.ts.map +1 -1
  323. package/dist/building/__fixtures__/wall-opening-cases.js +13 -0
  324. package/dist/building/code-profile.d.ts +231 -0
  325. package/dist/building/code-profile.d.ts.map +1 -0
  326. package/dist/building/code-profile.js +208 -0
  327. package/dist/building/corner-window.d.ts +2 -2
  328. package/dist/building/corner-window.d.ts.map +1 -1
  329. package/dist/building/corner-window.js +11 -2
  330. package/dist/building/door-types.d.ts +1 -0
  331. package/dist/building/door-types.d.ts.map +1 -1
  332. package/dist/building/door-types.js +2 -0
  333. package/dist/building/floor-item-fit.d.ts.map +1 -1
  334. package/dist/building/floor-item-fit.js +2 -4
  335. package/dist/building/ground-level.d.ts +1 -3
  336. package/dist/building/ground-level.d.ts.map +1 -1
  337. package/dist/building/ground-level.js +3 -5
  338. package/dist/building/index.d.ts +2 -0
  339. package/dist/building/index.d.ts.map +1 -1
  340. package/dist/building/index.js +2 -0
  341. package/dist/building/level-duplication.d.ts +5951 -4351
  342. package/dist/building/level-duplication.d.ts.map +1 -1
  343. package/dist/building/level-insertion.d.ts +1 -1
  344. package/dist/building/level-wall-copy.d.ts +24 -0
  345. package/dist/building/level-wall-copy.d.ts.map +1 -0
  346. package/dist/building/level-wall-copy.js +53 -0
  347. package/dist/building/merge-windows.d.ts.map +1 -1
  348. package/dist/building/merge-windows.js +1 -0
  349. package/dist/building/opening-style-presets.d.ts +2 -0
  350. package/dist/building/opening-style-presets.d.ts.map +1 -1
  351. package/dist/building/opening-style-presets.js +26 -5
  352. package/dist/building/room-use.d.ts +26 -0
  353. package/dist/building/room-use.d.ts.map +1 -0
  354. package/dist/building/room-use.js +102 -0
  355. package/dist/building/wall-openings.d.ts +115 -7
  356. package/dist/building/wall-openings.d.ts.map +1 -1
  357. package/dist/building/wall-openings.js +121 -29
  358. package/dist/building/window-types.d.ts +1 -0
  359. package/dist/building/window-types.d.ts.map +1 -1
  360. package/dist/building/window-types.js +3 -0
  361. package/dist/coherence/__fixtures__/enclosure-scenes.d.ts +84 -0
  362. package/dist/coherence/__fixtures__/enclosure-scenes.d.ts.map +1 -0
  363. package/dist/coherence/__fixtures__/enclosure-scenes.js +44 -0
  364. package/dist/commands/structure/attached-walls.d.ts +16 -0
  365. package/dist/commands/structure/attached-walls.d.ts.map +1 -0
  366. package/dist/commands/structure/attached-walls.js +53 -0
  367. package/dist/commands/structure/index.d.ts +3 -0
  368. package/dist/commands/structure/index.d.ts.map +1 -1
  369. package/dist/commands/structure/index.js +3 -0
  370. package/dist/commands/structure/move-separators.d.ts +62 -0
  371. package/dist/commands/structure/move-separators.d.ts.map +1 -0
  372. package/dist/commands/structure/move-separators.js +346 -0
  373. package/dist/commands/structure/set-floor-foundation.d.ts +5 -0
  374. package/dist/commands/structure/set-floor-foundation.d.ts.map +1 -1
  375. package/dist/commands/structure/set-wall-geometry.d.ts.map +1 -1
  376. package/dist/commands/structure/set-wall-geometry.js +44 -11
  377. package/dist/commands/structure/set-zone-intent.d.ts +26 -0
  378. package/dist/commands/structure/set-zone-intent.d.ts.map +1 -1
  379. package/dist/commands/structure/set-zone-intent.js +107 -2
  380. package/dist/commands/structure/shared.d.ts +888 -88
  381. package/dist/commands/structure/shared.d.ts.map +1 -1
  382. package/dist/commands/structure/wall-overlap.d.ts +45 -0
  383. package/dist/commands/structure/wall-overlap.d.ts.map +1 -0
  384. package/dist/commands/structure/wall-overlap.js +289 -0
  385. package/dist/commands/structure/zone-wall-merge.d.ts +3326 -2370
  386. package/dist/commands/structure/zone-wall-merge.d.ts.map +1 -1
  387. package/dist/contracts/reference-discovery.d.ts +2 -2
  388. package/dist/contracts/reference-discovery.d.ts.map +1 -1
  389. package/dist/contracts/reference-discovery.js +5 -3
  390. package/dist/contracts/reference-inventory.d.ts.map +1 -1
  391. package/dist/contracts/reference-inventory.js +75 -24
  392. package/dist/events/bus.d.ts +15 -2
  393. package/dist/events/bus.d.ts.map +1 -1
  394. package/dist/hooks/spatial-grid/built-in-floor-placed.d.ts +40 -0
  395. package/dist/hooks/spatial-grid/built-in-floor-placed.d.ts.map +1 -0
  396. package/dist/hooks/spatial-grid/built-in-floor-placed.js +220 -0
  397. package/dist/hooks/spatial-grid/floor-placed-elevation.d.ts.map +1 -1
  398. package/dist/hooks/spatial-grid/floor-placed-elevation.js +13 -7
  399. package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts +56 -1
  400. package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts.map +1 -1
  401. package/dist/hooks/spatial-grid/spatial-grid-manager.js +177 -27
  402. package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts +1631 -831
  403. package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts.map +1 -1
  404. package/dist/hooks/spatial-grid/spatial-grid-sync.js +24 -1
  405. package/dist/hooks/spatial-grid/support-host-patch.js +10 -10
  406. package/dist/i18n/format.d.ts +41 -0
  407. package/dist/i18n/format.d.ts.map +1 -0
  408. package/dist/i18n/format.js +124 -0
  409. package/dist/i18n/index.d.ts +5 -0
  410. package/dist/i18n/index.d.ts.map +1 -0
  411. package/dist/i18n/index.js +3 -0
  412. package/dist/i18n/registry.d.ts +78 -0
  413. package/dist/i18n/registry.d.ts.map +1 -0
  414. package/dist/i18n/registry.js +252 -0
  415. package/dist/i18n/use-translate.d.ts +16 -0
  416. package/dist/i18n/use-translate.d.ts.map +1 -0
  417. package/dist/i18n/use-translate.js +23 -0
  418. package/dist/index.d.ts +32 -16
  419. package/dist/index.d.ts.map +1 -1
  420. package/dist/index.js +31 -15
  421. package/dist/lib/__fixtures__/mezzanine.d.ts +6840 -4169
  422. package/dist/lib/__fixtures__/mezzanine.d.ts.map +1 -1
  423. package/dist/lib/absorb-wall-separators.d.ts +2128 -1328
  424. package/dist/lib/absorb-wall-separators.d.ts.map +1 -1
  425. package/dist/lib/beam.d.ts +137 -0
  426. package/dist/lib/beam.d.ts.map +1 -0
  427. package/dist/lib/beam.js +297 -0
  428. package/dist/lib/below-grade-footprints.d.ts +13 -5
  429. package/dist/lib/below-grade-footprints.d.ts.map +1 -1
  430. package/dist/lib/below-grade-footprints.js +53 -10
  431. package/dist/lib/build-up.d.ts +89 -0
  432. package/dist/lib/build-up.d.ts.map +1 -0
  433. package/dist/lib/build-up.js +216 -0
  434. package/dist/lib/corner-pair.d.ts +205 -4
  435. package/dist/lib/corner-pair.d.ts.map +1 -1
  436. package/dist/lib/deck-boards.d.ts +80 -0
  437. package/dist/lib/deck-boards.d.ts.map +1 -0
  438. package/dist/lib/deck-boards.js +184 -0
  439. package/dist/lib/deck-framing.d.ts +150 -0
  440. package/dist/lib/deck-framing.d.ts.map +1 -0
  441. package/dist/lib/deck-framing.js +515 -0
  442. package/dist/lib/deepest-drawn.d.ts +3 -6
  443. package/dist/lib/deepest-drawn.d.ts.map +1 -1
  444. package/dist/lib/deepest-drawn.js +4 -8
  445. package/dist/lib/door-opening.d.ts +19 -0
  446. package/dist/lib/door-opening.d.ts.map +1 -0
  447. package/dist/lib/door-opening.js +27 -0
  448. package/dist/lib/door-operation.d.ts +2 -0
  449. package/dist/lib/door-operation.d.ts.map +1 -1
  450. package/dist/lib/door-operation.js +4 -0
  451. package/dist/lib/exterior-wall-loops.d.ts.map +1 -1
  452. package/dist/lib/exterior-wall-loops.js +2 -1
  453. package/dist/lib/finish-script.d.ts +5 -5
  454. package/dist/lib/finish-script.d.ts.map +1 -1
  455. package/dist/lib/finish-script.js +12 -5
  456. package/dist/lib/floor-footprint-name.d.ts +17 -0
  457. package/dist/lib/floor-footprint-name.d.ts.map +1 -1
  458. package/dist/lib/floor-footprint-name.js +17 -4
  459. package/dist/lib/floor-intent-changes.d.ts.map +1 -1
  460. package/dist/lib/floor-intent-changes.js +60 -35
  461. package/dist/lib/floor-opening-footprints.d.ts +1 -1
  462. package/dist/lib/floor-opening-footprints.d.ts.map +1 -1
  463. package/dist/lib/floor-opening-footprints.js +10 -4
  464. package/dist/lib/floor-plate-paint.d.ts +2 -0
  465. package/dist/lib/floor-plate-paint.d.ts.map +1 -1
  466. package/dist/lib/floor-plate-paint.js +12 -0
  467. package/dist/lib/floor-plates.d.ts +250 -0
  468. package/dist/lib/floor-plates.d.ts.map +1 -1
  469. package/dist/lib/floor-plates.js +43 -4
  470. package/dist/lib/floor-script.d.ts +35 -6
  471. package/dist/lib/floor-script.d.ts.map +1 -1
  472. package/dist/lib/floor-script.js +96 -16
  473. package/dist/lib/foundation-construction.d.ts +4 -13
  474. package/dist/lib/foundation-construction.d.ts.map +1 -1
  475. package/dist/lib/foundation-construction.js +4 -14
  476. package/dist/lib/foundation-standard.d.ts +2 -3
  477. package/dist/lib/foundation-standard.d.ts.map +1 -1
  478. package/dist/lib/foundation-standard.js +2 -3
  479. package/dist/lib/foundation-wall.d.ts +1 -2
  480. package/dist/lib/foundation-wall.d.ts.map +1 -1
  481. package/dist/lib/foundation-wall.js +1 -2
  482. package/dist/lib/framing-post.d.ts +91 -0
  483. package/dist/lib/framing-post.d.ts.map +1 -0
  484. package/dist/lib/framing-post.js +174 -0
  485. package/dist/lib/geometry-script-node.d.ts +11 -0
  486. package/dist/lib/geometry-script-node.d.ts.map +1 -1
  487. package/dist/lib/geometry-script-node.js +35 -0
  488. package/dist/lib/grade-standing.d.ts +16 -2
  489. package/dist/lib/grade-standing.d.ts.map +1 -1
  490. package/dist/lib/grade-standing.js +129 -9
  491. package/dist/lib/ground-seat.d.ts +2 -22
  492. package/dist/lib/ground-seat.d.ts.map +1 -1
  493. package/dist/lib/ground-seat.js +2 -17
  494. package/dist/lib/ground-window.d.ts +2 -1
  495. package/dist/lib/ground-window.d.ts.map +1 -1
  496. package/dist/lib/ground-window.js +5 -2
  497. package/dist/lib/level-footprints.d.ts +2 -0
  498. package/dist/lib/level-footprints.d.ts.map +1 -1
  499. package/dist/lib/level-footprints.js +7 -0
  500. package/dist/lib/opening-casing.d.ts +67 -0
  501. package/dist/lib/opening-casing.d.ts.map +1 -0
  502. package/dist/lib/opening-casing.js +131 -0
  503. package/dist/lib/opening-exterior-face.d.ts +6 -0
  504. package/dist/lib/opening-exterior-face.d.ts.map +1 -0
  505. package/dist/lib/opening-exterior-face.js +15 -0
  506. package/dist/lib/opening-floor-datum.d.ts +11 -5
  507. package/dist/lib/opening-floor-datum.d.ts.map +1 -1
  508. package/dist/lib/opening-floor-datum.js +38 -6
  509. package/dist/lib/opening-frame-depth.d.ts +18 -0
  510. package/dist/lib/opening-frame-depth.d.ts.map +1 -0
  511. package/dist/lib/opening-frame-depth.js +22 -0
  512. package/dist/lib/outdoor-room.d.ts +32 -0
  513. package/dist/lib/outdoor-room.d.ts.map +1 -0
  514. package/dist/lib/outdoor-room.js +66 -0
  515. package/dist/lib/plate-surface.d.ts +8 -0
  516. package/dist/lib/plate-surface.d.ts.map +1 -1
  517. package/dist/lib/plate-surface.js +53 -3
  518. package/dist/lib/porch-framing-sync.d.ts +46 -0
  519. package/dist/lib/porch-framing-sync.d.ts.map +1 -0
  520. package/dist/lib/porch-framing-sync.js +206 -0
  521. package/dist/lib/porch-framing.d.ts +44 -0
  522. package/dist/lib/porch-framing.d.ts.map +1 -0
  523. package/dist/lib/porch-framing.js +159 -0
  524. package/dist/lib/railing-rooms.d.ts +13 -0
  525. package/dist/lib/railing-rooms.d.ts.map +1 -0
  526. package/dist/lib/railing-rooms.js +37 -0
  527. package/dist/lib/roof-eave.d.ts +135 -0
  528. package/dist/lib/roof-eave.d.ts.map +1 -0
  529. package/dist/lib/roof-eave.js +186 -0
  530. package/dist/lib/room-floor-plate.d.ts +3 -1
  531. package/dist/lib/room-floor-plate.d.ts.map +1 -1
  532. package/dist/lib/room-floor-plate.js +7 -0
  533. package/dist/lib/space-detection.d.ts +13 -0
  534. package/dist/lib/space-detection.d.ts.map +1 -1
  535. package/dist/lib/space-detection.js +112 -24
  536. package/dist/lib/structure-kernel.d.ts +22 -9
  537. package/dist/lib/structure-kernel.d.ts.map +1 -1
  538. package/dist/lib/structure-kernel.js +146 -28
  539. package/dist/lib/structure-reconcile.d.ts +1 -1
  540. package/dist/lib/structure-reconcile.d.ts.map +1 -1
  541. package/dist/lib/structure-reconcile.js +7 -4
  542. package/dist/lib/surface-intent.d.ts +10 -0
  543. package/dist/lib/surface-intent.d.ts.map +1 -0
  544. package/dist/lib/surface-intent.js +18 -0
  545. package/dist/lib/terrain-source.d.ts.map +1 -1
  546. package/dist/lib/terrain-source.js +2 -1
  547. package/dist/lib/wall-face-script.d.ts.map +1 -1
  548. package/dist/lib/wall-face-script.js +5 -2
  549. package/dist/material-kinds.d.ts +1 -1
  550. package/dist/material-kinds.d.ts.map +1 -1
  551. package/dist/material-kinds.js +1 -0
  552. package/dist/material-library.d.ts +15 -0
  553. package/dist/material-library.d.ts.map +1 -1
  554. package/dist/material-library.js +458 -59
  555. package/dist/node-slots/door.d.ts +3 -4
  556. package/dist/node-slots/door.d.ts.map +1 -1
  557. package/dist/node-slots/door.js +4 -3
  558. package/dist/node-slots/wall.d.ts.map +1 -1
  559. package/dist/node-slots/wall.js +21 -3
  560. package/dist/node-slots/window.d.ts +2 -2
  561. package/dist/node-slots/window.d.ts.map +1 -1
  562. package/dist/node-slots/window.js +6 -1
  563. package/dist/procedural-items/design.d.ts +8 -0
  564. package/dist/procedural-items/design.d.ts.map +1 -1
  565. package/dist/procedural-items/design.js +169 -21
  566. package/dist/procedural-items/motion-controller.d.ts +2 -0
  567. package/dist/procedural-items/motion-controller.d.ts.map +1 -1
  568. package/dist/procedural-items/motion-controller.js +2 -1
  569. package/dist/registry/index.d.ts +2 -2
  570. package/dist/registry/index.d.ts.map +1 -1
  571. package/dist/registry/index.js +1 -1
  572. package/dist/registry/mechanism.d.ts +4 -1
  573. package/dist/registry/mechanism.d.ts.map +1 -1
  574. package/dist/registry/mechanism.js +10 -0
  575. package/dist/registry/types.d.ts +65 -23
  576. package/dist/registry/types.d.ts.map +1 -1
  577. package/dist/runtime/__fixtures__/live-scene.d.ts +14 -0
  578. package/dist/runtime/__fixtures__/live-scene.d.ts.map +1 -0
  579. package/dist/runtime/__fixtures__/live-scene.js +64 -0
  580. package/dist/runtime/apply.d.ts +42 -0
  581. package/dist/runtime/apply.d.ts.map +1 -0
  582. package/dist/runtime/apply.js +274 -0
  583. package/dist/runtime/dependencies.d.ts +97 -0
  584. package/dist/runtime/dependencies.d.ts.map +1 -0
  585. package/dist/runtime/dependencies.js +42 -0
  586. package/dist/runtime/ids.d.ts +11 -0
  587. package/dist/runtime/ids.d.ts.map +1 -0
  588. package/dist/runtime/ids.js +80 -0
  589. package/dist/runtime/index.d.ts +14 -0
  590. package/dist/runtime/index.d.ts.map +1 -0
  591. package/dist/runtime/index.js +11 -0
  592. package/dist/runtime/node-queries.d.ts +16 -0
  593. package/dist/runtime/node-queries.d.ts.map +1 -0
  594. package/dist/runtime/node-queries.js +30 -0
  595. package/dist/runtime/patch.d.ts +26 -0
  596. package/dist/runtime/patch.d.ts.map +1 -0
  597. package/dist/runtime/patch.js +165 -0
  598. package/dist/runtime/reader.d.ts +104 -0
  599. package/dist/runtime/reader.d.ts.map +1 -0
  600. package/dist/runtime/reader.js +455 -0
  601. package/dist/runtime/scene-runtime.d.ts +112 -0
  602. package/dist/runtime/scene-runtime.d.ts.map +1 -0
  603. package/dist/runtime/scene-runtime.js +302 -0
  604. package/dist/schema/__fixtures__/node-fixtures.d.ts.map +1 -1
  605. package/dist/schema/__fixtures__/node-fixtures.js +1 -0
  606. package/dist/schema/assembly.d.ts +3 -0
  607. package/dist/schema/assembly.d.ts.map +1 -1
  608. package/dist/schema/assembly.js +13 -0
  609. package/dist/schema/asset-url.d.ts +37 -2
  610. package/dist/schema/asset-url.d.ts.map +1 -1
  611. package/dist/schema/asset-url.js +80 -11
  612. package/dist/schema/base.d.ts +8 -0
  613. package/dist/schema/base.d.ts.map +1 -1
  614. package/dist/schema/base.js +19 -1
  615. package/dist/schema/build-up.d.ts +247 -0
  616. package/dist/schema/build-up.d.ts.map +1 -0
  617. package/dist/schema/build-up.js +83 -0
  618. package/dist/schema/geometry-source.d.ts +80 -0
  619. package/dist/schema/geometry-source.d.ts.map +1 -1
  620. package/dist/schema/geometry-source.js +38 -0
  621. package/dist/schema/index.d.ts +12 -7
  622. package/dist/schema/index.d.ts.map +1 -1
  623. package/dist/schema/index.js +12 -6
  624. package/dist/schema/material.d.ts +5 -0
  625. package/dist/schema/material.d.ts.map +1 -1
  626. package/dist/schema/material.js +6 -0
  627. package/dist/schema/nodes/beam.d.ts +264 -0
  628. package/dist/schema/nodes/beam.d.ts.map +1 -0
  629. package/dist/schema/nodes/beam.js +139 -0
  630. package/dist/schema/nodes/box-vent.d.ts +5 -0
  631. package/dist/schema/nodes/box-vent.d.ts.map +1 -1
  632. package/dist/schema/nodes/cabinet.d.ts +10 -0
  633. package/dist/schema/nodes/cabinet.d.ts.map +1 -1
  634. package/dist/schema/nodes/ceiling.d.ts +48 -0
  635. package/dist/schema/nodes/ceiling.d.ts.map +1 -1
  636. package/dist/schema/nodes/ceiling.js +5 -0
  637. package/dist/schema/nodes/chimney.d.ts +10 -0
  638. package/dist/schema/nodes/chimney.d.ts.map +1 -1
  639. package/dist/schema/nodes/column.d.ts +42 -0
  640. package/dist/schema/nodes/column.d.ts.map +1 -1
  641. package/dist/schema/nodes/column.js +11 -1
  642. package/dist/schema/nodes/cupola.d.ts +5 -0
  643. package/dist/schema/nodes/cupola.d.ts.map +1 -1
  644. package/dist/schema/nodes/door.d.ts +54 -3
  645. package/dist/schema/nodes/door.d.ts.map +1 -1
  646. package/dist/schema/nodes/door.js +41 -7
  647. package/dist/schema/nodes/dormer.d.ts +20 -0
  648. package/dist/schema/nodes/dormer.d.ts.map +1 -1
  649. package/dist/schema/nodes/downspout.d.ts +5 -0
  650. package/dist/schema/nodes/downspout.d.ts.map +1 -1
  651. package/dist/schema/nodes/elevator.d.ts +5 -0
  652. package/dist/schema/nodes/elevator.d.ts.map +1 -1
  653. package/dist/schema/nodes/eyebrow-vent.d.ts +5 -0
  654. package/dist/schema/nodes/eyebrow-vent.d.ts.map +1 -1
  655. package/dist/schema/nodes/fence.d.ts +5 -0
  656. package/dist/schema/nodes/fence.d.ts.map +1 -1
  657. package/dist/schema/nodes/guide.d.ts +14 -0
  658. package/dist/schema/nodes/guide.d.ts.map +1 -1
  659. package/dist/schema/nodes/guide.js +2 -0
  660. package/dist/schema/nodes/gutter.d.ts +5 -0
  661. package/dist/schema/nodes/gutter.d.ts.map +1 -1
  662. package/dist/schema/nodes/item.d.ts +71 -0
  663. package/dist/schema/nodes/item.d.ts.map +1 -1
  664. package/dist/schema/nodes/item.js +5 -1
  665. package/dist/schema/nodes/level.d.ts +1 -1
  666. package/dist/schema/nodes/level.d.ts.map +1 -1
  667. package/dist/schema/nodes/opening-types.d.ts +13 -0
  668. package/dist/schema/nodes/opening-types.d.ts.map +1 -1
  669. package/dist/schema/nodes/opening-types.js +8 -1
  670. package/dist/schema/nodes/railing-wall.d.ts +112 -0
  671. package/dist/schema/nodes/railing-wall.d.ts.map +1 -0
  672. package/dist/schema/nodes/railing-wall.js +160 -0
  673. package/dist/schema/nodes/ridge-vent.d.ts +5 -0
  674. package/dist/schema/nodes/ridge-vent.d.ts.map +1 -1
  675. package/dist/schema/nodes/roof-segment.d.ts +224 -1
  676. package/dist/schema/nodes/roof-segment.d.ts.map +1 -1
  677. package/dist/schema/nodes/roof-segment.js +57 -10
  678. package/dist/schema/nodes/roof-types.d.ts +11 -0
  679. package/dist/schema/nodes/roof-types.d.ts.map +1 -1
  680. package/dist/schema/nodes/roof-types.js +6 -0
  681. package/dist/schema/nodes/roof.d.ts +60 -0
  682. package/dist/schema/nodes/roof.d.ts.map +1 -1
  683. package/dist/schema/nodes/roof.js +4 -0
  684. package/dist/schema/nodes/shelf.d.ts +5 -0
  685. package/dist/schema/nodes/shelf.d.ts.map +1 -1
  686. package/dist/schema/nodes/site.d.ts +80 -0
  687. package/dist/schema/nodes/site.d.ts.map +1 -1
  688. package/dist/schema/nodes/site.js +7 -0
  689. package/dist/schema/nodes/skylight.d.ts +10 -0
  690. package/dist/schema/nodes/skylight.d.ts.map +1 -1
  691. package/dist/schema/nodes/slab.d.ts +137 -0
  692. package/dist/schema/nodes/slab.d.ts.map +1 -1
  693. package/dist/schema/nodes/slab.js +3 -0
  694. package/dist/schema/nodes/solar-panel.d.ts +10 -0
  695. package/dist/schema/nodes/solar-panel.d.ts.map +1 -1
  696. package/dist/schema/nodes/stair-segment.d.ts +5 -0
  697. package/dist/schema/nodes/stair-segment.d.ts.map +1 -1
  698. package/dist/schema/nodes/stair-structure.d.ts +69 -0
  699. package/dist/schema/nodes/stair-structure.d.ts.map +1 -0
  700. package/dist/schema/nodes/stair-structure.js +39 -0
  701. package/dist/schema/nodes/stair.d.ts +46 -0
  702. package/dist/schema/nodes/stair.d.ts.map +1 -1
  703. package/dist/schema/nodes/stair.js +3 -0
  704. package/dist/schema/nodes/turbine-vent.d.ts +5 -0
  705. package/dist/schema/nodes/turbine-vent.d.ts.map +1 -1
  706. package/dist/schema/nodes/wall.d.ts +135 -2
  707. package/dist/schema/nodes/wall.d.ts.map +1 -1
  708. package/dist/schema/nodes/wall.js +42 -6
  709. package/dist/schema/nodes/window.d.ts +66 -1
  710. package/dist/schema/nodes/window.d.ts.map +1 -1
  711. package/dist/schema/nodes/window.js +50 -5
  712. package/dist/schema/nodes/zone.d.ts +68 -0
  713. package/dist/schema/nodes/zone.d.ts.map +1 -1
  714. package/dist/schema/nodes/zone.js +32 -0
  715. package/dist/schema/scene-material.d.ts +5 -0
  716. package/dist/schema/scene-material.d.ts.map +1 -1
  717. package/dist/schema/types.d.ts +1079 -4
  718. package/dist/schema/types.d.ts.map +1 -1
  719. package/dist/schema/types.js +2 -0
  720. package/dist/schema/wall-type.d.ts +95 -0
  721. package/dist/schema/wall-type.d.ts.map +1 -0
  722. package/dist/schema/wall-type.js +32 -0
  723. package/dist/services/roof-bearing.d.ts.map +1 -1
  724. package/dist/services/roof-bearing.js +6 -3
  725. package/dist/services/roof-level.d.ts.map +1 -1
  726. package/dist/services/roof-level.js +4 -3
  727. package/dist/services/roof-move.d.ts.map +1 -1
  728. package/dist/services/roof-move.js +13 -7
  729. package/dist/services/storey.d.ts.map +1 -1
  730. package/dist/services/storey.js +13 -8
  731. package/dist/spatial/usage-field/beds.d.ts +51 -0
  732. package/dist/spatial/usage-field/beds.d.ts.map +1 -0
  733. package/dist/spatial/usage-field/beds.js +346 -0
  734. package/dist/spatial/usage-field/blocked.d.ts +28 -0
  735. package/dist/spatial/usage-field/blocked.d.ts.map +1 -0
  736. package/dist/spatial/usage-field/blocked.js +185 -0
  737. package/dist/spatial/usage-field/boxes.d.ts +17 -0
  738. package/dist/spatial/usage-field/boxes.d.ts.map +1 -0
  739. package/dist/spatial/usage-field/boxes.js +82 -0
  740. package/dist/spatial/usage-field/catalogue-shapes.d.ts +3 -0
  741. package/dist/spatial/usage-field/catalogue-shapes.d.ts.map +1 -0
  742. package/dist/spatial/usage-field/catalogue-shapes.js +257 -0
  743. package/dist/spatial/usage-field/catalogue.d.ts +6 -0
  744. package/dist/spatial/usage-field/catalogue.d.ts.map +1 -0
  745. package/dist/spatial/usage-field/catalogue.js +11 -0
  746. package/dist/spatial/usage-field/clash.d.ts +40 -0
  747. package/dist/spatial/usage-field/clash.d.ts.map +1 -0
  748. package/dist/spatial/usage-field/clash.js +187 -0
  749. package/dist/spatial/usage-field/door-stairs.d.ts +18 -0
  750. package/dist/spatial/usage-field/door-stairs.d.ts.map +1 -0
  751. package/dist/spatial/usage-field/door-stairs.js +129 -0
  752. package/dist/spatial/usage-field/entry-way.d.ts +14 -0
  753. package/dist/spatial/usage-field/entry-way.d.ts.map +1 -0
  754. package/dist/spatial/usage-field/entry-way.js +219 -0
  755. package/dist/spatial/usage-field/fences.d.ts +18 -0
  756. package/dist/spatial/usage-field/fences.d.ts.map +1 -0
  757. package/dist/spatial/usage-field/fences.js +253 -0
  758. package/dist/spatial/usage-field/field.d.ts +44 -0
  759. package/dist/spatial/usage-field/field.d.ts.map +1 -0
  760. package/dist/spatial/usage-field/field.js +145 -0
  761. package/dist/spatial/usage-field/findings.d.ts +76 -0
  762. package/dist/spatial/usage-field/findings.d.ts.map +1 -0
  763. package/dist/spatial/usage-field/findings.js +252 -0
  764. package/dist/spatial/usage-field/fixtures.d.ts +18 -0
  765. package/dist/spatial/usage-field/fixtures.d.ts.map +1 -0
  766. package/dist/spatial/usage-field/fixtures.js +160 -0
  767. package/dist/spatial/usage-field/flag.d.ts +10 -0
  768. package/dist/spatial/usage-field/flag.d.ts.map +1 -0
  769. package/dist/spatial/usage-field/flag.js +12 -0
  770. package/dist/spatial/usage-field/floors.d.ts +13 -0
  771. package/dist/spatial/usage-field/floors.d.ts.map +1 -0
  772. package/dist/spatial/usage-field/floors.js +36 -0
  773. package/dist/spatial/usage-field/index.d.ts +7 -0
  774. package/dist/spatial/usage-field/index.d.ts.map +1 -0
  775. package/dist/spatial/usage-field/index.js +5 -0
  776. package/dist/spatial/usage-field/items.d.ts +38 -0
  777. package/dist/spatial/usage-field/items.d.ts.map +1 -0
  778. package/dist/spatial/usage-field/items.js +261 -0
  779. package/dist/spatial/usage-field/labels.d.ts +8 -0
  780. package/dist/spatial/usage-field/labels.d.ts.map +1 -0
  781. package/dist/spatial/usage-field/labels.js +14 -0
  782. package/dist/spatial/usage-field/level-field.d.ts +47 -0
  783. package/dist/spatial/usage-field/level-field.d.ts.map +1 -0
  784. package/dist/spatial/usage-field/level-field.js +96 -0
  785. package/dist/spatial/usage-field/measure.d.ts +324 -0
  786. package/dist/spatial/usage-field/measure.d.ts.map +1 -0
  787. package/dist/spatial/usage-field/measure.js +458 -0
  788. package/dist/spatial/usage-field/obstacles.d.ts +63 -0
  789. package/dist/spatial/usage-field/obstacles.d.ts.map +1 -0
  790. package/dist/spatial/usage-field/obstacles.js +215 -0
  791. package/dist/spatial/usage-field/openings.d.ts +12 -0
  792. package/dist/spatial/usage-field/openings.d.ts.map +1 -0
  793. package/dist/spatial/usage-field/openings.js +162 -0
  794. package/dist/spatial/usage-field/path.d.ts +48 -0
  795. package/dist/spatial/usage-field/path.d.ts.map +1 -0
  796. package/dist/spatial/usage-field/path.js +354 -0
  797. package/dist/spatial/usage-field/pieces.d.ts +27 -0
  798. package/dist/spatial/usage-field/pieces.d.ts.map +1 -0
  799. package/dist/spatial/usage-field/pieces.js +89 -0
  800. package/dist/spatial/usage-field/shapes.d.ts +18 -0
  801. package/dist/spatial/usage-field/shapes.d.ts.map +1 -0
  802. package/dist/spatial/usage-field/shapes.js +92 -0
  803. package/dist/spatial/usage-field/stairs.d.ts +23 -0
  804. package/dist/spatial/usage-field/stairs.d.ts.map +1 -0
  805. package/dist/spatial/usage-field/stairs.js +163 -0
  806. package/dist/spatial/usage-field/support.d.ts +24 -0
  807. package/dist/spatial/usage-field/support.d.ts.map +1 -0
  808. package/dist/spatial/usage-field/support.js +46 -0
  809. package/dist/spatial/usage-field/swings.d.ts +846 -0
  810. package/dist/spatial/usage-field/swings.d.ts.map +1 -0
  811. package/dist/spatial/usage-field/swings.js +427 -0
  812. package/dist/spatial/usage-field/types.d.ts +65 -0
  813. package/dist/spatial/usage-field/types.d.ts.map +1 -0
  814. package/dist/spatial/usage-field/types.js +1 -0
  815. package/dist/spatial/usage-field/walls.d.ts +1057 -0
  816. package/dist/spatial/usage-field/walls.d.ts.map +1 -0
  817. package/dist/spatial/usage-field/walls.js +166 -0
  818. package/dist/spatial/usage-field/way-in.d.ts +26 -0
  819. package/dist/spatial/usage-field/way-in.d.ts.map +1 -0
  820. package/dist/spatial/usage-field/way-in.js +113 -0
  821. package/dist/store/actions/node-actions.d.ts +2124 -1322
  822. package/dist/store/actions/node-actions.d.ts.map +1 -1
  823. package/dist/store/actions/node-actions.js +42 -16
  824. package/dist/store/derived-node-guard.d.ts +10 -2
  825. package/dist/store/derived-node-guard.d.ts.map +1 -1
  826. package/dist/store/derived-node-guard.js +31 -11
  827. package/dist/store/document-settling.d.ts +9 -0
  828. package/dist/store/document-settling.d.ts.map +1 -0
  829. package/dist/store/document-settling.js +22 -0
  830. package/dist/store/history-control.d.ts +19 -10
  831. package/dist/store/history-control.d.ts.map +1 -1
  832. package/dist/store/history-control.js +176 -127
  833. package/dist/store/history-drafts.d.ts.map +1 -1
  834. package/dist/store/history-drafts.js +21 -17
  835. package/dist/store/live-previews.d.ts +9 -0
  836. package/dist/store/live-previews.d.ts.map +1 -0
  837. package/dist/store/live-previews.js +19 -0
  838. package/dist/store/scene-annotations.d.ts +6751 -5151
  839. package/dist/store/scene-annotations.d.ts.map +1 -1
  840. package/dist/store/scene-environment.d.ts +33 -0
  841. package/dist/store/scene-environment.d.ts.map +1 -0
  842. package/dist/store/scene-environment.js +54 -0
  843. package/dist/store/scene-hydration.d.ts.map +1 -1
  844. package/dist/store/scene-hydration.js +41 -30
  845. package/dist/store/use-interactive.d.ts +9 -3
  846. package/dist/store/use-interactive.d.ts.map +1 -1
  847. package/dist/store/use-interactive.js +43 -11
  848. package/dist/store/use-live-node-overrides.d.ts.map +1 -1
  849. package/dist/store/use-live-node-overrides.js +3 -0
  850. package/dist/store/use-scene.d.ts +25 -0
  851. package/dist/store/use-scene.d.ts.map +1 -1
  852. package/dist/store/use-scene.js +408 -336
  853. package/dist/systems/document-reconcile.d.ts +40 -0
  854. package/dist/systems/document-reconcile.d.ts.map +1 -0
  855. package/dist/systems/document-reconcile.js +159 -0
  856. package/dist/systems/elevator/elevator-opening-system.d.ts.map +1 -1
  857. package/dist/systems/elevator/elevator-opening-system.js +9 -24
  858. package/dist/systems/fence/guard-layout.d.ts +69 -0
  859. package/dist/systems/fence/guard-layout.d.ts.map +1 -0
  860. package/dist/systems/fence/guard-layout.js +194 -0
  861. package/dist/systems/owned-floor-openings.d.ts +13 -1
  862. package/dist/systems/owned-floor-openings.d.ts.map +1 -1
  863. package/dist/systems/owned-floor-openings.js +58 -2
  864. package/dist/systems/reconcile-owned-floor-openings.d.ts +3 -1
  865. package/dist/systems/reconcile-owned-floor-openings.d.ts.map +1 -1
  866. package/dist/systems/reconcile-owned-floor-openings.js +4 -4
  867. package/dist/systems/roof/roof-elevation-system.d.ts.map +1 -1
  868. package/dist/systems/roof/roof-elevation-system.js +8 -26
  869. package/dist/systems/roof/roof-elevation.d.ts +16 -1
  870. package/dist/systems/roof/roof-elevation.d.ts.map +1 -1
  871. package/dist/systems/roof/roof-elevation.js +85 -4
  872. package/dist/systems/roof/roof-footprint.d.ts +42 -1
  873. package/dist/systems/roof/roof-footprint.d.ts.map +1 -1
  874. package/dist/systems/roof/roof-footprint.js +160 -4
  875. package/dist/systems/slab/__fixtures__/floor-step.d.ts +3163 -1934
  876. package/dist/systems/slab/__fixtures__/floor-step.d.ts.map +1 -1
  877. package/dist/systems/slab/__fixtures__/raised-room.d.ts +2495 -1249
  878. package/dist/systems/slab/__fixtures__/raised-room.d.ts.map +1 -1
  879. package/dist/systems/stair/stair-clearance.d.ts +7 -0
  880. package/dist/systems/stair/stair-clearance.d.ts.map +1 -1
  881. package/dist/systems/stair/stair-clearance.js +31 -11
  882. package/dist/systems/stair/stair-construction.d.ts +8 -3
  883. package/dist/systems/stair/stair-construction.d.ts.map +1 -1
  884. package/dist/systems/stair/stair-construction.js +55 -4
  885. package/dist/systems/stair/stair-opening-preview.d.ts +889 -89
  886. package/dist/systems/stair/stair-opening-preview.d.ts.map +1 -1
  887. package/dist/systems/stair/stair-opening-system.d.ts.map +1 -1
  888. package/dist/systems/stair/stair-opening-system.js +18 -34
  889. package/dist/systems/stair/stair-presets.d.ts +36 -0
  890. package/dist/systems/stair/stair-presets.d.ts.map +1 -1
  891. package/dist/systems/stair/stair-rise-query.d.ts.map +1 -1
  892. package/dist/systems/stair/stair-rise-query.js +3 -2
  893. package/dist/systems/stair/stair-rise.d.ts.map +1 -1
  894. package/dist/systems/stair/stair-rise.js +6 -0
  895. package/dist/systems/stair/stair-sizing.d.ts +42 -11
  896. package/dist/systems/stair/stair-sizing.d.ts.map +1 -1
  897. package/dist/systems/stair/stair-sizing.js +10 -1
  898. package/dist/systems/stair/stair-structure.d.ts +277 -0
  899. package/dist/systems/stair/stair-structure.d.ts.map +1 -0
  900. package/dist/systems/stair/stair-structure.js +496 -0
  901. package/dist/systems/wall/wall-assembly.d.ts +84 -6
  902. package/dist/systems/wall/wall-assembly.d.ts.map +1 -1
  903. package/dist/systems/wall/wall-assembly.js +204 -5
  904. package/dist/systems/wall/wall-finish.d.ts +38 -2
  905. package/dist/systems/wall/wall-finish.d.ts.map +1 -1
  906. package/dist/systems/wall/wall-finish.js +70 -2
  907. package/dist/systems/wall/wall-footprint.js +2 -2
  908. package/dist/systems/wall/wall-merge.d.ts.map +1 -1
  909. package/dist/systems/wall/wall-merge.js +28 -7
  910. package/dist/systems/wall/wall-mitering.d.ts +1 -0
  911. package/dist/systems/wall/wall-mitering.d.ts.map +1 -1
  912. package/dist/systems/wall/wall-mitering.js +152 -52
  913. package/dist/systems/wall/wall-move.d.ts +23 -6
  914. package/dist/systems/wall/wall-move.d.ts.map +1 -1
  915. package/dist/systems/wall/wall-move.js +65 -0
  916. package/dist/systems/wall/wall-top.d.ts +2 -2
  917. package/dist/systems/wall/wall-top.d.ts.map +1 -1
  918. package/dist/systems/wall/wall-top.js +6 -1
  919. package/dist/systems/wall/wall-topology.d.ts +32 -1
  920. package/dist/systems/wall/wall-topology.d.ts.map +1 -1
  921. package/dist/systems/wall/wall-topology.js +118 -10
  922. package/dist/systems/wall/wall-trim-profiles.d.ts +12 -0
  923. package/dist/systems/wall/wall-trim-profiles.d.ts.map +1 -0
  924. package/dist/systems/wall/wall-trim-profiles.js +191 -0
  925. package/dist/utils/ensure-scene-openings.d.ts +6523 -4923
  926. package/dist/utils/ensure-scene-openings.d.ts.map +1 -1
  927. package/dist/utils/floor-piece-adoption.d.ts +5 -0
  928. package/dist/utils/floor-piece-adoption.d.ts.map +1 -1
  929. package/dist/utils/floor-plate-migration.d.ts +1930 -1130
  930. package/dist/utils/floor-plate-migration.d.ts.map +1 -1
  931. package/dist/utils/owned-floor-opening-migration.d.ts +888 -88
  932. package/dist/utils/owned-floor-opening-migration.d.ts.map +1 -1
  933. package/dist/utils/reconcile-structure-on-load.d.ts +1930 -1130
  934. package/dist/utils/reconcile-structure-on-load.d.ts.map +1 -1
  935. package/dist/utils/structure-id.d.ts.map +1 -1
  936. package/dist/utils/structure-id.js +4 -0
  937. package/package.json +22 -5
  938. package/dist/lib/generic-foundation.d.ts +0 -40
  939. package/dist/lib/generic-foundation.d.ts.map +0 -1
  940. package/dist/lib/generic-foundation.js +0 -200
@@ -1,92 +1,152 @@
1
1
  import { withSceneHistoryDraftSuspended } from './history-drafts.js';
2
- let sceneHistoryRestoreDepth = 0;
2
+ import { currentSceneEnvironment, sceneEnvironmentOf, } from './scene-environment.js';
3
+ const HISTORY_CONTROL = Symbol('scene-history-control');
4
+ function controlOf(environment) {
5
+ return environment.slot(HISTORY_CONTROL, () => ({
6
+ restoreDepth: 0,
7
+ remoteOperationDepth: 0,
8
+ pauseDepth: 0,
9
+ pauseLeases: new Set(),
10
+ commitListeners: new Set(),
11
+ commitTransactionDepth: 0,
12
+ pendingCommit: null,
13
+ commitNodeIdScopes: [],
14
+ gesturePauseHolders: new Map(),
15
+ livePauseHolders: new Set(),
16
+ writeGuards: new Set(),
17
+ derivedWrites: new Map(),
18
+ }));
19
+ }
20
+ /** The state of the environment whose store is acting, or the live one. */
21
+ const current = () => controlOf(currentSceneEnvironment());
22
+ /** The state of `store`'s own environment. */
23
+ const of = (store) => controlOf(sceneEnvironmentOf(store));
3
24
  export function isRestoringSceneHistory() {
4
- return sceneHistoryRestoreDepth > 0;
25
+ return current().restoreDepth > 0;
5
26
  }
6
27
  export function runAsSceneHistoryRestore(run) {
7
- sceneHistoryRestoreDepth += 1;
28
+ const control = current();
29
+ control.restoreDepth += 1;
8
30
  try {
9
31
  return run();
10
32
  }
11
33
  finally {
12
- sceneHistoryRestoreDepth -= 1;
34
+ control.restoreDepth -= 1;
13
35
  }
14
36
  }
15
- let remoteSceneOperationDepth = 0;
16
37
  /**
17
38
  * Whether the scene is being written by a collaborator's change (a shared
18
39
  * operation or snapshot applied from the host), not by this client — what a
19
40
  * live session that takes back its own writes must leave alone.
20
41
  */
21
42
  export function isApplyingRemoteSceneChange() {
22
- return remoteSceneOperationDepth > 0;
43
+ return current().remoteOperationDepth > 0;
23
44
  }
24
45
  export function runAsRemoteSceneChange(run) {
25
- remoteSceneOperationDepth += 1;
46
+ const control = current();
47
+ control.remoteOperationDepth += 1;
26
48
  try {
27
49
  return run();
28
50
  }
29
51
  finally {
30
- remoteSceneOperationDepth -= 1;
52
+ control.remoteOperationDepth -= 1;
31
53
  }
32
54
  }
33
- let sceneHistoryPauseDepth = 0;
34
- const sceneHistoryPauseLeases = new Set();
35
- const sceneCommitListeners = new Set();
36
- let sceneCommitTransactionDepth = 0;
37
- let pendingSceneCommit = null;
38
- const sceneCommitNodeIdScopes = [];
39
55
  function mergedNodeIds(left, right) {
40
56
  if (!(left || right))
41
57
  return undefined;
42
58
  return new Set([...(left ?? []), ...(right ?? [])]);
43
59
  }
44
60
  export function activeSceneCommitNodeIds() {
45
- if (sceneCommitNodeIdScopes.length === 0)
61
+ const scopes = current().commitNodeIdScopes;
62
+ if (scopes.length === 0)
46
63
  return undefined;
47
64
  const ids = new Set();
48
- for (const scope of sceneCommitNodeIdScopes) {
65
+ for (const scope of scopes) {
49
66
  for (const id of scope)
50
67
  ids.add(id);
51
68
  }
52
69
  return ids;
53
70
  }
54
71
  export function addActiveSceneCommitNodeIds(nodeIds) {
55
- const scope = sceneCommitNodeIdScopes.at(-1);
72
+ const scope = current().commitNodeIdScopes.at(-1);
56
73
  if (!scope)
57
74
  return;
58
75
  for (const id of nodeIds)
59
76
  scope.add(id);
60
77
  }
61
78
  export function runWithSceneCommitNodeIds(nodeIds, run) {
79
+ const scopes = current().commitNodeIdScopes;
62
80
  const scope = new Set(nodeIds);
63
- sceneCommitNodeIdScopes.push(scope);
81
+ scopes.push(scope);
64
82
  try {
65
83
  return run();
66
84
  }
67
85
  finally {
68
- sceneCommitNodeIdScopes.pop();
69
- const parentScope = sceneCommitNodeIdScopes.at(-1);
86
+ scopes.pop();
87
+ const parentScope = scopes.at(-1);
70
88
  if (parentScope) {
71
89
  for (const id of scope)
72
90
  parentScope.add(id);
73
91
  }
74
92
  }
75
93
  }
76
- const sceneWriteGuards = new Set();
94
+ function areSemanticValuesEqual(left, right) {
95
+ if (Object.is(left, right))
96
+ return true;
97
+ if (typeof left !== typeof right || left === null || right === null)
98
+ return false;
99
+ if (Array.isArray(left) || Array.isArray(right)) {
100
+ if (!(Array.isArray(left) && Array.isArray(right)) || left.length !== right.length)
101
+ return false;
102
+ return left.every((value, index) => areSemanticValuesEqual(value, right[index]));
103
+ }
104
+ if (typeof left !== 'object' || typeof right !== 'object')
105
+ return false;
106
+ const leftRecord = left;
107
+ const rightRecord = right;
108
+ const leftKeys = Object.keys(leftRecord);
109
+ const rightKeys = Object.keys(rightRecord);
110
+ if (leftKeys.length !== rightKeys.length)
111
+ return false;
112
+ for (const key of leftKeys) {
113
+ if (!(key in rightRecord) || !areSemanticValuesEqual(leftRecord[key], rightRecord[key])) {
114
+ return false;
115
+ }
116
+ }
117
+ return true;
118
+ }
119
+ export function areSceneSnapshotsEqual(left, right) {
120
+ return (areSemanticValuesEqual(left.nodes, right.nodes) &&
121
+ areSemanticValuesEqual(left.rootNodeIds, right.rootNodeIds) &&
122
+ areSemanticValuesEqual(left.collections, right.collections) &&
123
+ areSemanticValuesEqual(left.materials, right.materials) &&
124
+ areSemanticValuesEqual(left.installedPlugins, right.installedPlugins) &&
125
+ (left.hasExplicitPluginInstallState ?? false) === (right.hasExplicitPluginInstallState ?? false));
126
+ }
127
+ /** Listens to the commits of the current environment's store: the live editor's, by default. */
128
+ export function subscribeSceneCommits(listener) {
129
+ const listeners = current().commitListeners;
130
+ listeners.add(listener);
131
+ return () => {
132
+ listeners.delete(listener);
133
+ };
134
+ }
77
135
  /**
78
- * Registers something that must let go of the scene before anything writes it: a preview that
79
- * shows another state (`scene-preview.ts`) would otherwise swallow the write or have it land on
80
- * the wrong state. Returns the unregister.
136
+ * Registers something that must let go of the current environment's scene before anything writes
137
+ * it: a preview that shows another state (`scene-preview.ts`) would otherwise swallow the write or
138
+ * have it land on the wrong state. Returns the unregister.
81
139
  */
82
140
  export function registerSceneWriteGuard(guard) {
83
- sceneWriteGuards.add(guard);
141
+ const guards = current().writeGuards;
142
+ guards.add(guard);
84
143
  return () => {
85
- sceneWriteGuards.delete(guard);
144
+ guards.delete(guard);
86
145
  };
87
146
  }
88
- export function runSceneWriteGuards() {
89
- for (const guard of [...sceneWriteGuards])
147
+ /** Runs the guards of `sceneStore`'s environment, or of the current one. */
148
+ export function runSceneWriteGuards(sceneStore) {
149
+ for (const guard of [...(sceneStore ? of(sceneStore) : current()).writeGuards])
90
150
  guard();
91
151
  }
92
152
  const sceneCommitAuthorScopes = [];
@@ -124,51 +184,12 @@ export function acquireSceneCommitAuthor(author) {
124
184
  sceneCommitAuthorLeases.delete(lease);
125
185
  };
126
186
  }
127
- function areSemanticValuesEqual(left, right) {
128
- if (Object.is(left, right))
129
- return true;
130
- if (typeof left !== typeof right || left === null || right === null)
131
- return false;
132
- if (Array.isArray(left) || Array.isArray(right)) {
133
- if (!(Array.isArray(left) && Array.isArray(right)) || left.length !== right.length)
134
- return false;
135
- return left.every((value, index) => areSemanticValuesEqual(value, right[index]));
136
- }
137
- if (typeof left !== 'object' || typeof right !== 'object')
138
- return false;
139
- const leftRecord = left;
140
- const rightRecord = right;
141
- const leftKeys = Object.keys(leftRecord);
142
- const rightKeys = Object.keys(rightRecord);
143
- if (leftKeys.length !== rightKeys.length)
144
- return false;
145
- for (const key of leftKeys) {
146
- if (!(key in rightRecord) || !areSemanticValuesEqual(leftRecord[key], rightRecord[key])) {
147
- return false;
148
- }
149
- }
150
- return true;
151
- }
152
- export function areSceneSnapshotsEqual(left, right) {
153
- return (areSemanticValuesEqual(left.nodes, right.nodes) &&
154
- areSemanticValuesEqual(left.rootNodeIds, right.rootNodeIds) &&
155
- areSemanticValuesEqual(left.collections, right.collections) &&
156
- areSemanticValuesEqual(left.materials, right.materials) &&
157
- areSemanticValuesEqual(left.installedPlugins, right.installedPlugins) &&
158
- (left.hasExplicitPluginInstallState ?? false) === (right.hasExplicitPluginInstallState ?? false));
159
- }
160
- export function subscribeSceneCommits(listener) {
161
- sceneCommitListeners.add(listener);
162
- return () => {
163
- sceneCommitListeners.delete(listener);
164
- };
165
- }
166
- let derivedWrites = new Map();
167
187
  /**
168
- * Records what the derived-writer capability writes, for the commit that follows: each node, and the
169
- * fields written (none given: the node as a whole).
188
+ * Records what the derived-writer capability writes, for the current environment's commit that
189
+ * follows: each node, and the fields written (none given: the node as a whole).
170
190
  */
171
191
  export function noteDerivedNodeWrites(writes) {
192
+ const derivedWrites = current().derivedWrites;
172
193
  for (const { id, fields } of writes) {
173
194
  const noted = derivedWrites.get(id);
174
195
  if (noted === 'all')
@@ -179,11 +200,11 @@ export function noteDerivedNodeWrites(writes) {
179
200
  derivedWrites.set(id, new Set([...(noted ?? []), ...fields]));
180
201
  }
181
202
  }
182
- function emitSceneCommit(authored) {
183
- const derived = derivedWrites;
184
- derivedWrites = new Map();
203
+ function emitSceneCommit(control, authored) {
204
+ const derived = control.derivedWrites;
205
+ control.derivedWrites = new Map();
185
206
  const commit = derived.size > 0 ? { ...authored, derivedWrites: derived } : authored;
186
- for (const listener of [...sceneCommitListeners]) {
207
+ for (const listener of [...control.commitListeners]) {
187
208
  try {
188
209
  listener(commit);
189
210
  }
@@ -193,9 +214,10 @@ function emitSceneCommit(authored) {
193
214
  }
194
215
  }
195
216
  export function notifySceneCommit(commit) {
217
+ const control = current();
196
218
  if (areSceneSnapshotsEqual(commit.before, commit.current)) {
197
- if (sceneCommitTransactionDepth === 0)
198
- derivedWrites = new Map();
219
+ if (control.commitTransactionDepth === 0)
220
+ control.derivedWrites = new Map();
199
221
  return;
200
222
  }
201
223
  const author = commit.author ?? activeSceneCommitAuthor();
@@ -204,80 +226,101 @@ export function notifySceneCommit(commit) {
204
226
  ...(author ? { author } : {}),
205
227
  changedNodeIds: mergedNodeIds(commit.changedNodeIds, activeSceneCommitNodeIds()),
206
228
  };
207
- if (sceneCommitTransactionDepth > 0) {
208
- if (pendingSceneCommit) {
209
- const pendingAuthor = pendingSceneCommit.author ?? contextualCommit.author;
210
- pendingSceneCommit = {
211
- origin: pendingSceneCommit.origin,
229
+ if (control.commitTransactionDepth > 0) {
230
+ const pending = control.pendingCommit;
231
+ if (pending) {
232
+ const pendingAuthor = pending.author ?? contextualCommit.author;
233
+ control.pendingCommit = {
234
+ origin: pending.origin,
212
235
  ...(pendingAuthor ? { author: pendingAuthor } : {}),
213
- before: pendingSceneCommit.before,
236
+ before: pending.before,
214
237
  current: contextualCommit.current,
215
- changedNodeIds: mergedNodeIds(pendingSceneCommit.changedNodeIds, contextualCommit.changedNodeIds),
238
+ changedNodeIds: mergedNodeIds(pending.changedNodeIds, contextualCommit.changedNodeIds),
216
239
  };
217
240
  }
218
241
  else {
219
- pendingSceneCommit = contextualCommit;
242
+ control.pendingCommit = contextualCommit;
220
243
  }
221
244
  return;
222
245
  }
223
- emitSceneCommit(contextualCommit);
246
+ emitSceneCommit(control, contextualCommit);
224
247
  }
225
- function beginSceneCommitTransaction() {
226
- sceneCommitTransactionDepth += 1;
248
+ /**
249
+ * Makes `commit` the one `store`'s open transaction (`runAsSingleSceneHistoryStep`) emits: the
250
+ * pending commit, if any, keeps its origin, author and `before` and takes `commit`'s `current`,
251
+ * with both sets of changed ids. Outside a transaction, `commit` is emitted.
252
+ */
253
+ export function settlePendingSceneCommit(store, commit) {
254
+ const control = of(store);
255
+ if (control.commitTransactionDepth === 0) {
256
+ sceneEnvironmentOf(store).run(() => notifySceneCommit(commit));
257
+ return;
258
+ }
259
+ const pending = control.pendingCommit;
260
+ const author = pending?.author ?? commit.author ?? activeSceneCommitAuthor();
261
+ control.pendingCommit = {
262
+ origin: pending?.origin ?? commit.origin,
263
+ ...(author ? { author } : {}),
264
+ before: pending?.before ?? commit.before,
265
+ current: commit.current,
266
+ changedNodeIds: mergedNodeIds(pending?.changedNodeIds, commit.changedNodeIds),
267
+ };
227
268
  }
228
- function pendingSceneCommitIsNoOp() {
229
- return Boolean(pendingSceneCommit &&
230
- areSceneSnapshotsEqual(pendingSceneCommit.before, pendingSceneCommit.current));
269
+ function pendingSceneCommitIsNoOp(control) {
270
+ const pending = control.pendingCommit;
271
+ return Boolean(pending && areSceneSnapshotsEqual(pending.before, pending.current));
231
272
  }
232
- function endSceneCommitTransaction() {
233
- if (sceneCommitTransactionDepth === 0)
273
+ function endSceneCommitTransaction(control) {
274
+ if (control.commitTransactionDepth === 0)
234
275
  return;
235
- sceneCommitTransactionDepth -= 1;
236
- if (sceneCommitTransactionDepth > 0)
276
+ control.commitTransactionDepth -= 1;
277
+ if (control.commitTransactionDepth > 0)
237
278
  return;
238
- const commit = pendingSceneCommit;
239
- pendingSceneCommit = null;
279
+ const commit = control.pendingCommit;
280
+ control.pendingCommit = null;
240
281
  if (!commit)
241
282
  return;
242
283
  if (areSceneSnapshotsEqual(commit.before, commit.current))
243
- derivedWrites = new Map();
284
+ control.derivedWrites = new Map();
244
285
  else
245
- emitSceneCommit(commit);
286
+ emitSceneCommit(control, commit);
246
287
  }
288
+ const pauseDepthOf = (control) => control.pauseDepth + control.pauseLeases.size;
247
289
  export function pauseSceneHistory(sceneStore) {
248
- if (getSceneHistoryPauseDepth() === 0) {
290
+ const control = of(sceneStore);
291
+ if (pauseDepthOf(control) === 0) {
249
292
  sceneStore.temporal.getState().pause();
250
293
  }
251
- sceneHistoryPauseDepth += 1;
294
+ control.pauseDepth += 1;
252
295
  }
253
296
  export function resumeSceneHistory(sceneStore) {
254
- if (sceneHistoryPauseDepth === 0) {
297
+ const control = of(sceneStore);
298
+ if (control.pauseDepth === 0) {
255
299
  return;
256
300
  }
257
- sceneHistoryPauseDepth -= 1;
258
- if (getSceneHistoryPauseDepth() === 0) {
301
+ control.pauseDepth -= 1;
302
+ if (pauseDepthOf(control) === 0) {
259
303
  sceneStore.temporal.getState().resume();
260
304
  }
261
305
  }
262
306
  export function acquireSceneHistoryPause(sceneStore) {
263
- if (getSceneHistoryPauseDepth() === 0) {
307
+ const control = of(sceneStore);
308
+ if (pauseDepthOf(control) === 0) {
264
309
  sceneStore.temporal.getState().pause();
265
310
  }
266
311
  const lease = Symbol('scene-history-pause');
267
- sceneHistoryPauseLeases.add(lease);
312
+ control.pauseLeases.add(lease);
268
313
  let released = false;
269
314
  return () => {
270
315
  if (released)
271
316
  return;
272
317
  released = true;
273
- sceneHistoryPauseLeases.delete(lease);
274
- if (getSceneHistoryPauseDepth() === 0) {
318
+ control.pauseLeases.delete(lease);
319
+ if (pauseDepthOf(control) === 0) {
275
320
  sceneStore.temporal.getState().resume();
276
321
  }
277
322
  };
278
323
  }
279
- const gesturePauseHolders = new Map();
280
- const livePauseHolders = new Set();
281
324
  /** Lifts `holders`' pauses for `write`, then takes back those that have not ended. */
282
325
  function runWithHoldersLifted(sceneStore, holders, write) {
283
326
  const lifted = [...holders].filter((holder) => holder.release);
@@ -308,20 +351,22 @@ function runWithHoldersLifted(sceneStore, holders, write) {
308
351
  */
309
352
  export function beginSceneHistoryPauseSession(sceneStore, options = {}) {
310
353
  const { gesture } = options;
354
+ const environment = sceneEnvironmentOf(sceneStore);
355
+ const control = controlOf(environment);
311
356
  const holder = {
312
357
  release: acquireSceneHistoryPause(sceneStore),
313
358
  ended: false,
314
359
  };
315
- livePauseHolders.add(holder);
360
+ control.livePauseHolders.add(holder);
316
361
  let coOwners = new Set([holder]);
317
362
  if (gesture) {
318
- coOwners = gesturePauseHolders.get(gesture) ?? new Set();
363
+ coOwners = control.gesturePauseHolders.get(gesture) ?? new Set();
319
364
  coOwners.add(holder);
320
- gesturePauseHolders.set(gesture, coOwners);
365
+ control.gesturePauseHolders.set(gesture, coOwners);
321
366
  }
322
367
  return {
323
368
  commitStep(write) {
324
- return runWithHoldersLifted(sceneStore, coOwners, () => withSceneHistoryDraftSuspended(gesture, write));
369
+ return environment.run(() => runWithHoldersLifted(sceneStore, coOwners, () => withSceneHistoryDraftSuspended(gesture, write)));
325
370
  },
326
371
  end() {
327
372
  if (holder.ended)
@@ -329,24 +374,26 @@ export function beginSceneHistoryPauseSession(sceneStore, options = {}) {
329
374
  holder.ended = true;
330
375
  holder.release?.();
331
376
  holder.release = null;
332
- livePauseHolders.delete(holder);
377
+ control.livePauseHolders.delete(holder);
333
378
  coOwners.delete(holder);
334
379
  if (gesture && coOwners.size === 0)
335
- gesturePauseHolders.delete(gesture);
380
+ control.gesturePauseHolders.delete(gesture);
336
381
  },
337
382
  };
338
383
  }
339
- export function getSceneHistoryPauseDepth() {
340
- return sceneHistoryPauseDepth + sceneHistoryPauseLeases.size;
384
+ /** Pauses held on `sceneStore`'s history, or on the current environment's store's. */
385
+ export function getSceneHistoryPauseDepth(sceneStore) {
386
+ return pauseDepthOf(sceneStore ? of(sceneStore) : current());
341
387
  }
342
- export function resetSceneHistoryPauseDepth() {
343
- sceneHistoryPauseDepth = 0;
344
- sceneHistoryPauseLeases.clear();
388
+ export function resetSceneHistoryPauseDepth(sceneStore) {
389
+ const control = sceneStore ? of(sceneStore) : current();
390
+ control.pauseDepth = 0;
391
+ control.pauseLeases.clear();
345
392
  // Open sessions no longer hold anything; a later commitStep must not re-take their pause.
346
- for (const holder of livePauseHolders)
393
+ for (const holder of control.livePauseHolders)
347
394
  holder.release = null;
348
- livePauseHolders.clear();
349
- gesturePauseHolders.clear();
395
+ control.livePauseHolders.clear();
396
+ control.gesturePauseHolders.clear();
350
397
  }
351
398
  function retainedPastStateCount(before, after) {
352
399
  for (let start = 0; start < before.length; start += 1) {
@@ -366,14 +413,16 @@ function retainedPastStateCount(before, after) {
366
413
  return 0;
367
414
  }
368
415
  export function runAsSingleSceneHistoryStep(sceneStore, run) {
416
+ const environment = sceneEnvironmentOf(sceneStore);
417
+ const control = controlOf(environment);
369
418
  const beforePastStates = sceneStore.temporal.getState().pastStates;
370
- beginSceneCommitTransaction();
419
+ control.commitTransactionDepth += 1;
371
420
  try {
372
- const result = run();
421
+ const result = environment.run(run);
373
422
  const afterPastStates = sceneStore.temporal.getState().pastStates;
374
423
  const retainedCount = retainedPastStateCount(beforePastStates, afterPastStates);
375
424
  const addedCount = afterPastStates.length - retainedCount;
376
- if (addedCount > 0 && pendingSceneCommitIsNoOp()) {
425
+ if (addedCount > 0 && pendingSceneCommitIsNoOp(control)) {
377
426
  sceneStore.temporal.setState({ pastStates: afterPastStates.slice(0, retainedCount) });
378
427
  }
379
428
  else if (addedCount > 1) {
@@ -387,6 +436,6 @@ export function runAsSingleSceneHistoryStep(sceneStore, run) {
387
436
  return result;
388
437
  }
389
438
  finally {
390
- endSceneCommitTransaction();
439
+ endSceneCommitTransaction(control);
391
440
  }
392
441
  }
@@ -1 +1 @@
1
- {"version":3,"file":"history-drafts.d.ts","sourceRoot":"","sources":["../../src/store/history-drafts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAgDzD,KAAK,OAAO,GAAG,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;AAWzC;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,SAAS,EACb,QAAQ,EAAE,OAAO,GAAG,IAAI,EACxB,KAAK,EAAE,OAAO,GACb,MAAM,IAAI,CAmBZ;AAcD;;;GAGG;AACH,wBAAgB,8BAA8B,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAW3F;AA4BD,wBAAgB,qBAAqB,IAAI,OAAO,CAE/C;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAwChF;AAiCD;;;GAGG;AACH,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,QAAQ,CAAC,SAAS,CAAC,GACvB,KAAK,CAAC;IAAE,EAAE,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC,CAsBzD;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,IAAI,CAOvE;AAED,wBAAgB,uBAAuB,IAAI,IAAI,CAE9C;AAED,6FAA6F;AAC7F,wBAAgB,2BAA2B,IAAI,SAAS,EAAE,CAIzD;AAiDD;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,GAAG,OAAO,CAmC1F;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI,CAwFlF"}
1
+ {"version":3,"file":"history-drafts.d.ts","sourceRoot":"","sources":["../../src/store/history-drafts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAqDzD,KAAK,OAAO,GAAG,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;AAWzC;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,SAAS,EACb,QAAQ,EAAE,OAAO,GAAG,IAAI,EACxB,KAAK,EAAE,OAAO,GACb,MAAM,IAAI,CAoBZ;AAkBD;;;GAGG;AACH,wBAAgB,8BAA8B,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAW3F;AA4BD,wBAAgB,qBAAqB,IAAI,OAAO,CAE/C;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAwChF;AAiCD;;;GAGG;AACH,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,QAAQ,CAAC,SAAS,CAAC,GACvB,KAAK,CAAC;IAAE,EAAE,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC,CAsBzD;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,IAAI,CAOvE;AAED,wBAAgB,uBAAuB,IAAI,IAAI,CAE9C;AAED,6FAA6F;AAC7F,wBAAgB,2BAA2B,IAAI,SAAS,EAAE,CAIzD;AAiDD;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,GAAG,OAAO,CAmC1F;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI,CAwFlF"}
@@ -1,3 +1,4 @@
1
+ import { currentSceneEnvironment } from './scene-environment.js';
1
2
  /** Structural equality for node field values (plain data: arrays, objects, primitives). */
2
3
  function sameValue(a, b) {
3
4
  if (a === b)
@@ -12,7 +13,9 @@ function sameValue(a, b) {
12
13
  return false;
13
14
  return aKeys.every((key) => sameValue(a[key], b[key]));
14
15
  }
15
- const sceneHistoryDrafts = new Map();
16
+ const HISTORY_DRAFTS = Symbol('scene-history-drafts');
17
+ /** The carried drafts of the current environment's store (scene-environment.ts). */
18
+ const sceneHistoryDrafts = () => currentSceneEnvironment().slot(HISTORY_DRAFTS, () => new Map());
16
19
  const faceHostFields = ['roofSegmentId', 'roofFace', 'blockFaceId'];
17
20
  const childIdsOf = (node) => node && 'children' in node && Array.isArray(node.children) ? node.children : [];
18
21
  const attachmentsOf = (node) => node && 'attachments' in node && node.attachments && typeof node.attachments === 'object'
@@ -23,10 +26,11 @@ const attachmentsOf = (node) => node && 'attachments' in node && node.attachment
23
26
  * already carried (split view) shares its registration, which ends with its last holder.
24
27
  */
25
28
  export function beginSceneHistoryDraft(id, original, nodes) {
26
- const existing = sceneHistoryDrafts.get(id);
29
+ const drafts = sceneHistoryDrafts();
30
+ const existing = drafts.get(id);
27
31
  if (existing && !existing.ended) {
28
32
  existing.refs += 1;
29
- return releaseOnce(id, existing);
33
+ return releaseOnce(drafts, id, existing);
30
34
  }
31
35
  const parent = original?.parentId ? nodes[original.parentId] : undefined;
32
36
  const draft = {
@@ -39,10 +43,10 @@ export function beginSceneHistoryDraft(id, original, nodes) {
39
43
  ended: false,
40
44
  suspended: false,
41
45
  };
42
- sceneHistoryDrafts.set(id, draft);
43
- return releaseOnce(id, draft);
46
+ drafts.set(id, draft);
47
+ return releaseOnce(drafts, id, draft);
44
48
  }
45
- function releaseOnce(id, draft) {
49
+ function releaseOnce(drafts, id, draft) {
46
50
  let released = false;
47
51
  return () => {
48
52
  if (released)
@@ -52,8 +56,8 @@ function releaseOnce(id, draft) {
52
56
  if (draft.refs > 0)
53
57
  return;
54
58
  draft.ended = true;
55
- if (sceneHistoryDrafts.get(id) === draft)
56
- sceneHistoryDrafts.delete(id);
59
+ if (drafts.get(id) === draft)
60
+ drafts.delete(id);
57
61
  };
58
62
  }
59
63
  /**
@@ -61,7 +65,7 @@ function releaseOnce(id, draft) {
61
65
  * gesture drops it (the 3D mover or the 2D move overlay) records the change.
62
66
  */
63
67
  export function withSceneHistoryDraftSuspended(id, write) {
64
- const draft = id ? sceneHistoryDrafts.get(id) : undefined;
68
+ const draft = id ? sceneHistoryDrafts().get(id) : undefined;
65
69
  if (!(id && draft))
66
70
  return write();
67
71
  // Visible to history for this write, but still the carry's: its own restore can revert it.
@@ -92,7 +96,7 @@ function heldHostEntries(draft, id, nodes) {
92
96
  return [...draft.hostEntries].filter(([hostId, entry]) => nodes[hostId] && sameValue(hostEntry(nodes, hostId, id), entry.carried));
93
97
  }
94
98
  export function hasSceneHistoryDrafts() {
95
- return sceneHistoryDrafts.size > 0;
99
+ return sceneHistoryDrafts().size > 0;
96
100
  }
97
101
  /**
98
102
  * Records a carry's own write: each field it changed on an adopted draft is held with the value
@@ -100,7 +104,7 @@ export function hasSceneHistoryDrafts() {
100
104
  * the carry wrote. A write back to that earlier value ends the hold.
101
105
  */
102
106
  export function noteSceneHistoryDraftWrite(before, after) {
103
- for (const [id, draft] of sceneHistoryDrafts) {
107
+ for (const [id, draft] of sceneHistoryDrafts()) {
104
108
  const previous = before[id];
105
109
  const next = after[id];
106
110
  if (!(draft.original && previous && next))
@@ -181,7 +185,7 @@ function heldFields(draft, live) {
181
185
  export function sceneHistoryDraftRevertUpdates(nodes, ids) {
182
186
  const updates = [];
183
187
  for (const id of ids) {
184
- const draft = sceneHistoryDrafts.get(id);
188
+ const draft = sceneHistoryDrafts().get(id);
185
189
  const live = nodes[id];
186
190
  if (!(draft?.original && live))
187
191
  continue;
@@ -212,7 +216,7 @@ export function sceneHistoryDraftRevertUpdates(nodes, ids) {
212
216
  */
213
217
  export function settleSceneHistoryDrafts(ids) {
214
218
  for (const id of ids) {
215
- const draft = sceneHistoryDrafts.get(id);
219
+ const draft = sceneHistoryDrafts().get(id);
216
220
  if (!draft)
217
221
  continue;
218
222
  draft.owned.clear();
@@ -220,11 +224,11 @@ export function settleSceneHistoryDrafts(ids) {
220
224
  }
221
225
  }
222
226
  export function clearSceneHistoryDrafts() {
223
- sceneHistoryDrafts.clear();
227
+ sceneHistoryDrafts().clear();
224
228
  }
225
229
  /** Created drafts: history excludes them (and their subtrees) like fresh-placement nodes. */
226
230
  export function createdSceneHistoryDraftIds() {
227
- return [...sceneHistoryDrafts]
231
+ return [...sceneHistoryDrafts()]
228
232
  .filter(([, draft]) => !(draft.original || draft.suspended))
229
233
  .map(([id]) => id);
230
234
  }
@@ -277,7 +281,7 @@ function placeChild(nodes, id, fromParentId, toParentId, index, attachment) {
277
281
  */
278
282
  export function withAdoptedDraftsAsOriginal(nodes, historyNodes) {
279
283
  let result = null;
280
- for (const [id, draft] of sceneHistoryDrafts) {
284
+ for (const [id, draft] of sceneHistoryDrafts()) {
281
285
  if (draft.suspended)
282
286
  continue;
283
287
  const live = nodes[id];
@@ -316,7 +320,7 @@ export function withAdoptedDraftsAsOriginal(nodes, historyNodes) {
316
320
  */
317
321
  export function withDraftsRestored(before, after) {
318
322
  let result = null;
319
- for (const [id, draft] of sceneHistoryDrafts) {
323
+ for (const [id, draft] of sceneHistoryDrafts()) {
320
324
  if (draft.suspended)
321
325
  continue;
322
326
  const live = before[id];
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Whether the editor's live previews (field overrides, drag transforms, an in-flight terrain
3
+ * stroke) are part of what is being read. They are not inside `withoutLivePreviews`: a detached
4
+ * scene, and the document reconciliation, compute from saved state only, since a preview is
5
+ * neither a dependency anyone can check nor a value that will necessarily be committed.
6
+ */
7
+ export declare function livePreviewsVisible(): boolean;
8
+ export declare function withoutLivePreviews<T>(run: () => T): T;
9
+ //# sourceMappingURL=live-previews.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"live-previews.d.ts","sourceRoot":"","sources":["../../src/store/live-previews.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAOtD"}
@@ -0,0 +1,19 @@
1
+ let hidden = 0;
2
+ /**
3
+ * Whether the editor's live previews (field overrides, drag transforms, an in-flight terrain
4
+ * stroke) are part of what is being read. They are not inside `withoutLivePreviews`: a detached
5
+ * scene, and the document reconciliation, compute from saved state only, since a preview is
6
+ * neither a dependency anyone can check nor a value that will necessarily be committed.
7
+ */
8
+ export function livePreviewsVisible() {
9
+ return hidden === 0;
10
+ }
11
+ export function withoutLivePreviews(run) {
12
+ hidden += 1;
13
+ try {
14
+ return run();
15
+ }
16
+ finally {
17
+ hidden -= 1;
18
+ }
19
+ }