@volter/cyclotron 0.5.194 → 0.5.196

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 (1099) hide show
  1. package/BUNDLED_NOTICES +14 -14
  2. package/README.md +4 -1
  3. package/dist/.vite/manifest.json +1346 -1363
  4. package/dist/assets/BVHLoader-BM-ytlM_.js +1 -0
  5. package/dist/assets/ColladaLoader-DYxD5g3n.js +3 -0
  6. package/dist/assets/EntityModelDocument-OJDzU3SU.js +1 -0
  7. package/dist/assets/EnvironmentAssetDocument-DtsyWs-T.js +1 -0
  8. package/dist/assets/FBXLoader-BR699s74.js +1 -0
  9. package/dist/assets/InspectorObjectPreview-Byc8aYDl.js +1 -0
  10. package/dist/assets/LiveModuleDocument-DpdzFw3k.js +2 -0
  11. package/dist/assets/LutAssetDocument-CMe_Alac.js +1 -0
  12. package/dist/assets/MTLLoader-DCCaZH_J.js +2 -0
  13. package/dist/assets/ModelAssetDocument-DlrDndu7.js +1 -0
  14. package/dist/assets/NonThreeAuthoringBootstrap-DDeqs6my.js +1 -0
  15. package/dist/assets/OBJLoader-Dxtbw0EX.js +5 -0
  16. package/dist/assets/Object3DDocumentToolbar-BKO72k2e.js +1 -0
  17. package/dist/assets/Object3DPreview-CWoVS7Tg.js +2 -0
  18. package/dist/assets/OrbitControls-D7G277ak.js +1 -0
  19. package/dist/assets/PLYLoader-D9ReqjwA.js +2 -0
  20. package/dist/assets/QuarksAssetDocument-C7hbIvvd.js +2 -0
  21. package/dist/assets/RectAreaLightUniformsLib-BuBHPnJ7.js +1 -0
  22. package/dist/assets/STLLoader-ifuTdYup.js +1 -0
  23. package/dist/assets/ShaderAssetDocument-DPBd2uVI.js +1 -0
  24. package/dist/assets/StageHost-DcqfcBlH.js +1179 -0
  25. package/dist/assets/TDSLoader-Iv5mk-w2.js +1 -0
  26. package/dist/assets/ToolObject3DPreview-Dz9HTZuM.js +1 -0
  27. package/dist/assets/ViewportShadingMenu-BttmtcPv.js +1 -0
  28. package/dist/assets/animation-mixers.service-Dj77dRI1.js +1 -0
  29. package/dist/assets/animation-timeline.utility-DmzfXBPg.js +1 -0
  30. package/dist/assets/asset-preview-2B7KMyGo.js +4 -0
  31. package/dist/assets/blender-emscripten-engine-BcBWzgZw.js +2 -0
  32. package/dist/assets/blender-node-editor.document-Bt-1bmJo.js +1 -0
  33. package/dist/assets/blender-properties-model-CuakoQCS.js +1 -0
  34. package/dist/assets/blender-properties-tab-BwId_uQT.js +3 -0
  35. package/dist/assets/blender-runtime-host-BZjXBC0J.js +7284 -0
  36. package/dist/assets/blender-runtime.document-DLvWojyd.js +13 -0
  37. package/dist/assets/blender-screenshot.menu-CXiEQWLs.js +1 -0
  38. package/dist/assets/blender-timeline.document-Bs0g5msN.js +1 -0
  39. package/dist/assets/blender-uv-editor.document-B5BXiNjZ.js +1 -0
  40. package/dist/assets/blender-version.status--pO13dCm.js +1 -0
  41. package/dist/assets/blender-wali-engine-BwGTBPRl.js +2 -0
  42. package/dist/assets/blender.command-DRvQsGZI.js +1 -0
  43. package/dist/assets/blender.status-CWWv9Bxn.js +1 -0
  44. package/dist/assets/index-Qvs50fnR.js +952 -0
  45. package/dist/assets/linear-resolve-su8rbE2x.js +377 -0
  46. package/dist/assets/model-inspection-rrj45UBa.js +1 -0
  47. package/dist/assets/models.finder-zTWyPNkO.js +1 -0
  48. package/dist/assets/object3d-document-session-registry-CXwx1fxa.js +2 -0
  49. package/dist/assets/output-pass-C2Jin9Z-.js +85 -0
  50. package/dist/assets/play-mode-D-32KLOy.js +1 -0
  51. package/dist/assets/product-Cr_7ROJc.js +14 -0
  52. package/dist/assets/properties-bone-constraints.inspector-BzQk-LUz.js +1 -0
  53. package/dist/assets/properties-bone.inspector-KwNqvqEj.js +1 -0
  54. package/dist/assets/properties-collection.inspector-dBGdP93e.js +1 -0
  55. package/dist/assets/properties-constraints.inspector-D6uul-L5.js +1 -0
  56. package/dist/assets/properties-data.inspector-BVIj9ooE.js +1 -0
  57. package/dist/assets/properties-material.inspector-Br22DxQo.js +1 -0
  58. package/dist/assets/properties-modifiers.inspector-Br487lZH.js +1 -0
  59. package/dist/assets/properties-object.inspector-DOPgbfH2.js +1 -0
  60. package/dist/assets/properties-output.inspector-CQ_5RlFU.js +1 -0
  61. package/dist/assets/properties-particles.inspector-C9-gYPLA.js +1 -0
  62. package/dist/assets/properties-physics.inspector-4K1gGK8j.js +1 -0
  63. package/dist/assets/properties-render.inspector-DEyqfwiy.js +1 -0
  64. package/dist/assets/properties-scene.inspector-D64Pn41Y.js +1 -0
  65. package/dist/assets/properties-texture.inspector-BTfdKgk1.js +1 -0
  66. package/dist/assets/properties-view-layer.inspector-DcheJr0Q.js +1 -0
  67. package/dist/assets/properties-world.inspector-DF4Xp64H.js +1 -0
  68. package/dist/assets/react-18-CHbAmMUt.js +1 -0
  69. package/dist/assets/session-C_pIgwQU.js +5681 -0
  70. package/dist/assets/spark.module-IbHFMmDi.js +12120 -0
  71. package/dist/assets/stage-keyboard-BIbqFoSe.js +1 -0
  72. package/dist/assets/stage-overlay-set-CJqxmhYO.js +1 -0
  73. package/dist/assets/stage-presence-markers-D4G7H_5M.js +1 -0
  74. package/dist/assets/stage-transform-tools-Cw8nCxet.js +1 -0
  75. package/dist/assets/standard-viewport-dressing-DsdyzsWJ.js +24 -0
  76. package/dist/assets/three-integration.service-BtStdKXg.js +2 -0
  77. package/dist/assets/three.module-FwjK5L7x.js +3840 -0
  78. package/dist/assets/volter-sdk-BlXl30lA.js +2359 -0
  79. package/dist/assets/volter-sdk-account-CYEHKnPY.js +1 -0
  80. package/dist/assets/volter-sdk-client-Bu1fZweF.js +1 -0
  81. package/dist/assets/volter-sdk-contributions-ChA3tODe.js +1 -0
  82. package/dist/assets/volter-sdk-css-numeric-style-CsqYzfNt.js +1 -0
  83. package/dist/assets/volter-sdk-document-probe-Cd22B3js.js +1 -0
  84. package/dist/assets/volter-sdk-editor-view-DANee9lb.js +1 -0
  85. package/dist/assets/volter-sdk-host-BwQrG6a0.js +1 -0
  86. package/dist/assets/volter-sdk-http-transport.browser-BAzbqSMj.js +1 -0
  87. package/dist/assets/volter-sdk-index-zHYEEzke.js +1 -0
  88. package/dist/assets/volter-sdk-kit-CapabilityCoverageSection-u7CZ1Fkk.js +1 -0
  89. package/dist/assets/volter-sdk-kit-account-client-DIwGIaDe.js +1 -0
  90. package/dist/assets/volter-sdk-kit-action-registry-D8dDW8Xx.js +1 -0
  91. package/dist/assets/volter-sdk-kit-active-product-CGRsKVAU.js +1 -0
  92. package/dist/assets/volter-sdk-kit-active-project-DAzxruGP.js +1 -0
  93. package/dist/assets/volter-sdk-kit-adapter-editor-config-DMTpRWQH.js +1 -0
  94. package/dist/assets/volter-sdk-kit-adapter-observation-dkDawgRR.js +1 -0
  95. package/dist/assets/volter-sdk-kit-animation-animation-clock-Dd8L8rwz.js +1 -0
  96. package/dist/assets/volter-sdk-kit-animation-stage-transport-lDL3PHzK.js +1 -0
  97. package/dist/assets/volter-sdk-kit-api-assets-ChPsRbgi.js +1 -0
  98. package/dist/assets/volter-sdk-kit-api-base-C9SsK1jD.js +1 -0
  99. package/dist/assets/volter-sdk-kit-api-build-DhllFdvR.js +1 -0
  100. package/dist/assets/volter-sdk-kit-api-logs-DMHJRFQS.js +1 -0
  101. package/dist/assets/volter-sdk-kit-api-project-identity-D6qsF6yb.js +1 -0
  102. package/dist/assets/volter-sdk-kit-api-project-open-QM7z2ute.js +1 -0
  103. package/dist/assets/volter-sdk-kit-api-project-source-DwyF40Hr.js +1 -0
  104. package/dist/assets/volter-sdk-kit-api-project-state-DslbPPRZ.js +1 -0
  105. package/dist/assets/volter-sdk-kit-api-relay-CaawoRlI.js +1 -0
  106. package/dist/assets/volter-sdk-kit-api-settings-BpjFifNW.js +1 -0
  107. package/dist/assets/volter-sdk-kit-api-themes-CRJHVTn4.js +1 -0
  108. package/dist/assets/volter-sdk-kit-api-worktrees-q2gKKQjM.js +1 -0
  109. package/dist/assets/volter-sdk-kit-asset-capabilities-BSR7wfei.js +1 -0
  110. package/dist/assets/volter-sdk-kit-asset-compare-core-CzCUheGI.js +1 -0
  111. package/dist/assets/volter-sdk-kit-asset-editor-context-CDbA-Gfd.js +1 -0
  112. package/dist/assets/volter-sdk-kit-asset-events-Bpl4ydAo.js +1 -0
  113. package/dist/assets/volter-sdk-kit-asset-inspector-actions-D7xUAsvC.js +1 -0
  114. package/dist/assets/volter-sdk-kit-asset-selection-DUC92-pA.js +1 -0
  115. package/dist/assets/volter-sdk-kit-asset-selection-viewer-registry-B-99M2Xu.js +1 -0
  116. package/dist/assets/volter-sdk-kit-asset-thumbnails-D9g3euJE.js +1 -0
  117. package/dist/assets/volter-sdk-kit-asset-viewers-AVRY5RkQ.js +1 -0
  118. package/dist/assets/volter-sdk-kit-asset-workflow-asset-import-jobs-C0CgJjG4.js +1 -0
  119. package/dist/assets/volter-sdk-kit-asset-workflow-asset-ledger-Bg2L8xmN.js +1 -0
  120. package/dist/assets/volter-sdk-kit-asset-workflow-asset-ledger-backend-CkdsTkMi.js +1 -0
  121. package/dist/assets/volter-sdk-kit-asset-workflow-asset-materialization-report-C1tSOn1R.js +1 -0
  122. package/dist/assets/volter-sdk-kit-asset-workflow-asset-pack-manifest-YX0Xi9Vc.js +1 -0
  123. package/dist/assets/volter-sdk-kit-asset-workflow-audio-preview-player-BscdHn6s.js +1 -0
  124. package/dist/assets/volter-sdk-kit-asset-workflow-audio-waveform-CN-T1nPc.js +1 -0
  125. package/dist/assets/volter-sdk-kit-asset-workflow-cloud-asset-client-dnqrOGUF.js +1 -0
  126. package/dist/assets/volter-sdk-kit-asset-workflow-hosted-asset-materialization-C7b0Sykd.js +1 -0
  127. package/dist/assets/volter-sdk-kit-asset-workflow-image-view-scale-C8DbyC7-.js +1 -0
  128. package/dist/assets/volter-sdk-kit-asset-workflow-ledger-write-lock-V3_PNK8O.js +1 -0
  129. package/dist/assets/volter-sdk-kit-asset-workflow-pixi-spritesheet-DPeyDO-X.js +1 -0
  130. package/dist/assets/volter-sdk-kit-asset-workflow-preview-resource-lifetime-_4ZO824z.js +1 -0
  131. package/dist/assets/volter-sdk-kit-asset-workflow-project-asset-commands-D-6tuGtm.js +1 -0
  132. package/dist/assets/volter-sdk-kit-asset-workflow-project-content-Dx_wxo9s.js +1 -0
  133. package/dist/assets/volter-sdk-kit-asset-workflow-thumbnail-system-LnPXh-wr.js +1 -0
  134. package/dist/assets/volter-sdk-kit-authoring-active-adapter-XwmAQIEM.js +1 -0
  135. package/dist/assets/volter-sdk-kit-authoring-active-systems-DVlVo0Ga.js +1 -0
  136. package/dist/assets/volter-sdk-kit-authoring-adapter-key-CrpCc1vl.js +1 -0
  137. package/dist/assets/volter-sdk-kit-authoring-authoring-asset-url-D3HyQmR4.js +1 -0
  138. package/dist/assets/volter-sdk-kit-authoring-bootstrap-state-BvuICg6P.js +1 -0
  139. package/dist/assets/volter-sdk-kit-authoring-boundary-authoring-adapter-CDB4229-.js +1 -0
  140. package/dist/assets/volter-sdk-kit-authoring-canvas-scene-guides-D5IVwiPT.js +1 -0
  141. package/dist/assets/volter-sdk-kit-authoring-composite-authoring-adapter-CC3XRti8.js +1 -0
  142. package/dist/assets/volter-sdk-kit-authoring-consumer-actions-DuBd87nO.js +1 -0
  143. package/dist/assets/volter-sdk-kit-authoring-design-time-layers-DrgEMxEA.js +1 -0
  144. package/dist/assets/volter-sdk-kit-authoring-design-time-mount-registry-CjPd56QG.js +1 -0
  145. package/dist/assets/volter-sdk-kit-authoring-edit-mode-authoring-D99F0oUz.js +1 -0
  146. package/dist/assets/volter-sdk-kit-authoring-empty-project-authoring-B_l_fgx5.js +1 -0
  147. package/dist/assets/volter-sdk-kit-authoring-instance-source-menu-BqIWJG1-.js +1 -0
  148. package/dist/assets/volter-sdk-kit-authoring-layered-pick-Bll34sFx.js +1 -0
  149. package/dist/assets/volter-sdk-kit-authoring-mounted-root-subjects-oM-0J1_R.js +1 -0
  150. package/dist/assets/volter-sdk-kit-authoring-no-authoring-adapter-DlF-LmZq.js +1 -0
  151. package/dist/assets/volter-sdk-kit-authoring-object3d-document-persistence-DN7k0xdv.js +1 -0
  152. package/dist/assets/volter-sdk-kit-authoring-panel-authoring-2PphPQx9.js +1 -0
  153. package/dist/assets/volter-sdk-kit-authoring-project-authoring-session-D7wBvvZv.js +1 -0
  154. package/dist/assets/volter-sdk-kit-authoring-provenance-DZLBlsw9.js +1 -0
  155. package/dist/assets/volter-sdk-kit-authoring-react-canvas-navigation-EwYEOfRB.js +1 -0
  156. package/dist/assets/volter-sdk-kit-authoring-react-design-canvas-style-CHo7Ak03.js +1 -0
  157. package/dist/assets/volter-sdk-kit-authoring-react-story-board-DoyhQ7VP.js +1 -0
  158. package/dist/assets/volter-sdk-kit-authoring-seam-evidence-DbK7b8hz.js +1 -0
  159. package/dist/assets/volter-sdk-kit-authoring-selection-scope-BiHp33SC.js +1 -0
  160. package/dist/assets/volter-sdk-kit-authoring-shell-document-ops-CPONkNj_.js +1 -0
  161. package/dist/assets/volter-sdk-kit-authoring-story-board-chrome-fit-BybF0MPb.js +1 -0
  162. package/dist/assets/volter-sdk-kit-authoring-three-root-CmUOIDEz.js +1 -0
  163. package/dist/assets/volter-sdk-kit-authoring-viewport-tool-context-CRdhQ3eH.js +1 -0
  164. package/dist/assets/volter-sdk-kit-authoring-viewport-tool-owner-BAM2YVGO.js +1 -0
  165. package/dist/assets/volter-sdk-kit-authoring-world-session-state-B4pQfZXm.js +1 -0
  166. package/dist/assets/volter-sdk-kit-availability-tick-u7ROQocj.js +1 -0
  167. package/dist/assets/volter-sdk-kit-bitmap-label-Bus9KCji.js +1 -0
  168. package/dist/assets/volter-sdk-kit-boot-routing-DJjFBz23.js +1 -0
  169. package/dist/assets/volter-sdk-kit-breakpoint-state-BZJCVawP.js +1 -0
  170. package/dist/assets/volter-sdk-kit-build-identity-13YCGFqg.js +1 -0
  171. package/dist/assets/volter-sdk-kit-bytes-codec-DCG639tt.js +1 -0
  172. package/dist/assets/volter-sdk-kit-cancellation-reason-C2Z5UNS6.js +1 -0
  173. package/dist/assets/volter-sdk-kit-canvas-frames-Cz1W4fnk.js +1 -0
  174. package/dist/assets/volter-sdk-kit-capture-camera-pose-BaoNtnK5.js +1 -0
  175. package/dist/assets/volter-sdk-kit-capture-size-BSkDvPGQ.js +1 -0
  176. package/dist/assets/volter-sdk-kit-chrome-registry-CmD1EcD-.js +1 -0
  177. package/dist/assets/volter-sdk-kit-chrome-slot-registry-CyJ3Tk3z.js +1 -0
  178. package/dist/assets/volter-sdk-kit-collaboration-client-DkJpJSZ4.js +1 -0
  179. package/dist/assets/volter-sdk-kit-collaboration-presence-Bj4qDDwf.js +1 -0
  180. package/dist/assets/volter-sdk-kit-command-dispatch-B0eO5ss0.js +1 -0
  181. package/dist/assets/volter-sdk-kit-command-listener-Dd_EYPNG.js +1 -0
  182. package/dist/assets/volter-sdk-kit-command-registry-DeLzZHp-.js +1 -0
  183. package/dist/assets/volter-sdk-kit-component-board-registry-BkcL7EPi.js +1 -0
  184. package/dist/assets/volter-sdk-kit-component-states-registry-DBj0NmCz.js +1 -0
  185. package/dist/assets/volter-sdk-kit-components-AlignToolbar-BrfQ_bRH.js +1 -0
  186. package/dist/assets/volter-sdk-kit-components-ApplicationMenus-CBoyE11j.js +1 -0
  187. package/dist/assets/volter-sdk-kit-components-AssetEditorShell-BhLaQbWK.js +1 -0
  188. package/dist/assets/volter-sdk-kit-components-AssetInspectorToolSection-iDjhXPIF.js +1 -0
  189. package/dist/assets/volter-sdk-kit-components-BoardRulers-CEL-U7EK.js +1 -0
  190. package/dist/assets/volter-sdk-kit-components-CanvasAddNodeDialogs-B3it0JZP.js +1 -0
  191. package/dist/assets/volter-sdk-kit-components-CanvasSceneViewport-DTGw7_8f.js +1 -0
  192. package/dist/assets/volter-sdk-kit-components-ChromeSlot-CPDCSllF.js +1 -0
  193. package/dist/assets/volter-sdk-kit-components-CodeView-By6UrPVj.js +1 -0
  194. package/dist/assets/volter-sdk-kit-components-CompactInspectorShell-CmLayHvE.js +1 -0
  195. package/dist/assets/volter-sdk-kit-components-ConsolePanel-D_Rt6IQS.js +1 -0
  196. package/dist/assets/volter-sdk-kit-components-GameplaySessionTimeline-CR9U2zac.js +1 -0
  197. package/dist/assets/volter-sdk-kit-components-InspectionProjection-CSEILuov.js +1 -0
  198. package/dist/assets/volter-sdk-kit-components-Inspector-Bj06zdGp.js +1 -0
  199. package/dist/assets/volter-sdk-kit-components-InspectorCanvasPreview-B8Qh0clM.js +1 -0
  200. package/dist/assets/volter-sdk-kit-components-InspectorFieldsSection-D3MLfbdc.js +1 -0
  201. package/dist/assets/volter-sdk-kit-components-InspectorStoriesSection-BX_zg0lI.js +1 -0
  202. package/dist/assets/volter-sdk-kit-components-InspectorToolSection-CszYguWN.js +1 -0
  203. package/dist/assets/volter-sdk-kit-components-InspectorTransformSection-BZRCAnDK.js +1 -0
  204. package/dist/assets/volter-sdk-kit-components-LightExplorerPanel-jkN0FP-X.js +1 -0
  205. package/dist/assets/volter-sdk-kit-components-MediaProperties-mM1YWxKM.js +1 -0
  206. package/dist/assets/volter-sdk-kit-components-ProjectHeader-CnMsrIP0.js +1 -0
  207. package/dist/assets/volter-sdk-kit-components-ReactCanvasControls-qOeTq4ZU.js +1 -0
  208. package/dist/assets/volter-sdk-kit-components-RootSelectionOverlay-CTa31AVm.js +1 -0
  209. package/dist/assets/volter-sdk-kit-components-RootTextEditor-BbRLAeo2.js +1 -0
  210. package/dist/assets/volter-sdk-kit-components-SaveStatus-7AEEA3QN.js +1 -0
  211. package/dist/assets/volter-sdk-kit-components-SurfaceCrashBoundary-CVG3aGOw.js +1 -0
  212. package/dist/assets/volter-sdk-kit-components-SurfaceStateOverlay-BxKJl368.js +1 -0
  213. package/dist/assets/volter-sdk-kit-components-ToolContributionSurfaces-DI-ucLkS.js +1 -0
  214. package/dist/assets/volter-sdk-kit-components-ToolHost-cPFSJamL.js +1 -0
  215. package/dist/assets/volter-sdk-kit-components-Toolbar-UlicDywd.js +1 -0
  216. package/dist/assets/volter-sdk-kit-components-TransientHint-WjEGlkSr.js +1 -0
  217. package/dist/assets/volter-sdk-kit-components-VersionControlSection-C7yVEbyp.js +1 -0
  218. package/dist/assets/volter-sdk-kit-components-ViewportOverlaysMenu-C5_pFets.js +1 -0
  219. package/dist/assets/volter-sdk-kit-components-VolterLogo-B4opwB92.js +1 -0
  220. package/dist/assets/volter-sdk-kit-components-WorktreeSwitcher-COaQvXeq.js +1 -0
  221. package/dist/assets/volter-sdk-kit-components-account-documents-DSTZ2XAw.js +1 -0
  222. package/dist/assets/volter-sdk-kit-components-asset-documents-CUmbPR_c.js +1 -0
  223. package/dist/assets/volter-sdk-kit-components-asset-editor-persistence-BEieqIIS.js +1 -0
  224. package/dist/assets/volter-sdk-kit-components-asset-selection-section-DdLMVzAy.js +1 -0
  225. package/dist/assets/volter-sdk-kit-components-asset-thumbnails-f3h37kgc.js +1 -0
  226. package/dist/assets/volter-sdk-kit-components-asset-viewers-AudioViewer-CH1UoRaF.js +1 -0
  227. package/dist/assets/volter-sdk-kit-components-asset-viewers-GenericJsonViewer-CEl-74Kl.js +1 -0
  228. package/dist/assets/volter-sdk-kit-components-asset-viewers-ImageViewer-oW6UxcKR.js +1 -0
  229. package/dist/assets/volter-sdk-kit-components-asset-viewers-JsonAssetDocument-DJDf8fWD.js +1 -0
  230. package/dist/assets/volter-sdk-kit-components-asset-viewers-OnlineAssetDetail-CSPKwO_I.js +1 -0
  231. package/dist/assets/volter-sdk-kit-components-asset-viewers-SourceAssetViewer-DUK9Qmwm.js +1 -0
  232. package/dist/assets/volter-sdk-kit-components-asset-viewers-SpritesheetSpriteView-3xe1ZPWz.js +1 -0
  233. package/dist/assets/volter-sdk-kit-components-asset-viewers-VideoViewer-CBgxPru0.js +1 -0
  234. package/dist/assets/volter-sdk-kit-components-asset-viewers-shader-source-C9J1LcHW.js +1 -0
  235. package/dist/assets/volter-sdk-kit-components-board-guides-CC7mkJ4f.js +1 -0
  236. package/dist/assets/volter-sdk-kit-components-canvas-scene-hotkeys-BTWYFbqo.js +1 -0
  237. package/dist/assets/volter-sdk-kit-components-canvas-temporary-pivot-CZt48fSu.js +1 -0
  238. package/dist/assets/volter-sdk-kit-components-core-utilities-C4fPpnoX.js +1 -0
  239. package/dist/assets/volter-sdk-kit-components-inspector-preview-section-BSJEkrqC.js +1 -0
  240. package/dist/assets/volter-sdk-kit-components-inspector-revert-label-C7Le32-Q.js +1 -0
  241. package/dist/assets/volter-sdk-kit-components-inspector-selection-Dtp235ow.js +1 -0
  242. package/dist/assets/volter-sdk-kit-components-inspector-stories-gating-DCn6l7jG.js +1 -0
  243. package/dist/assets/volter-sdk-kit-components-inspector-transform-rUFSGnHR.js +1 -0
  244. package/dist/assets/volter-sdk-kit-components-inspector-transform-subject-DwqHnw4I.js +1 -0
  245. package/dist/assets/volter-sdk-kit-components-kind-documents-CT7SAIGK.js +1 -0
  246. package/dist/assets/volter-sdk-kit-components-primitives-DraftColorInput-CgMSdlYc.js +1 -0
  247. package/dist/assets/volter-sdk-kit-components-project-tool-documents-eU4Yzyup.js +1 -0
  248. package/dist/assets/volter-sdk-kit-components-scene-documents-BJ5BEObf.js +1 -0
  249. package/dist/assets/volter-sdk-kit-components-status-contributions-9mKevKr8.js +1 -0
  250. package/dist/assets/volter-sdk-kit-components-tool-documents-mfpxrRxf.js +1 -0
  251. package/dist/assets/volter-sdk-kit-components-tool-schema-form-CO4nCIQt.js +1 -0
  252. package/dist/assets/volter-sdk-kit-components-use-after-paint-WadROTM_.js +1 -0
  253. package/dist/assets/volter-sdk-kit-components-use-project-image-assets-Bch78Jli.js +1 -0
  254. package/dist/assets/volter-sdk-kit-components-workspace-history-B6dBSsc0.js +1 -0
  255. package/dist/assets/volter-sdk-kit-components-world-documents-DFd5Fbbq.js +1 -0
  256. package/dist/assets/volter-sdk-kit-components-world-overlay-gestures-BARb7w9-.js +1 -0
  257. package/dist/assets/volter-sdk-kit-composite-screenshot-CYoebVTm.js +1 -0
  258. package/dist/assets/volter-sdk-kit-content-entry-source-registry-BqbaeZko.js +1 -0
  259. package/dist/assets/volter-sdk-kit-contribution-surfaces-TuL6kY_G.js +1 -0
  260. package/dist/assets/volter-sdk-kit-coverage-canvas-reveal-TA6tpL68.js +1 -0
  261. package/dist/assets/volter-sdk-kit-coverage-design-time-surfaces-6wNUsoay.js +1 -0
  262. package/dist/assets/volter-sdk-kit-coverage-ontology-invariants-B0NfjEVn.js +1 -0
  263. package/dist/assets/volter-sdk-kit-coverage-session-vitals-CxHRcsV1.js +1 -0
  264. package/dist/assets/volter-sdk-kit-creation-site-registry-B3aeEoVr.js +1 -0
  265. package/dist/assets/volter-sdk-kit-delegate-harness-registry-DLv0cWRy.js +1 -0
  266. package/dist/assets/volter-sdk-kit-document-areas-D_3VCaj-.js +1 -0
  267. package/dist/assets/volter-sdk-kit-document-context-registry-BOR11__P.js +1 -0
  268. package/dist/assets/volter-sdk-kit-document-open-registry-Dy4VxR58.js +1 -0
  269. package/dist/assets/volter-sdk-kit-document-play-extension-BD2k4vlT.js +1 -0
  270. package/dist/assets/volter-sdk-kit-document-preview-source-DrvK7a20.js +1 -0
  271. package/dist/assets/volter-sdk-kit-document-renderer-session-Chb3VJv0.js +1 -0
  272. package/dist/assets/volter-sdk-kit-document-stage-sessions-CfB9b9ig.js +1 -0
  273. package/dist/assets/volter-sdk-kit-document-viewports-D9nW5p8R.js +1 -0
  274. package/dist/assets/volter-sdk-kit-editor-api-DzcQ4N-j.js +1 -0
  275. package/dist/assets/volter-sdk-kit-editor-chrome-capture-DIEIgav5.js +1 -0
  276. package/dist/assets/volter-sdk-kit-editor-commands-BFwYTqti.js +1 -0
  277. package/dist/assets/volter-sdk-kit-editor-console-CEijCTvS.js +1 -0
  278. package/dist/assets/volter-sdk-kit-editor-current-view-D77yCMRr.js +1 -0
  279. package/dist/assets/volter-sdk-kit-editor-document-probe-Bnf6Lzk7.js +1 -0
  280. package/dist/assets/volter-sdk-kit-editor-git-client-DMPW3aYt.js +1 -0
  281. package/dist/assets/volter-sdk-kit-editor-hotkeys-C2uCKhB6.js +1 -0
  282. package/dist/assets/volter-sdk-kit-editor-lease-CKcX9jhu.js +1 -0
  283. package/dist/assets/volter-sdk-kit-editor-lease-view-ENfpZUvr.js +1 -0
  284. package/dist/assets/volter-sdk-kit-editor-mode-6WXb0FlL.js +1 -0
  285. package/dist/assets/volter-sdk-kit-editor-notifications-pWcd4mYD.js +1 -0
  286. package/dist/assets/volter-sdk-kit-editor-presence-BE4jsBPC.js +1 -0
  287. package/dist/assets/volter-sdk-kit-editor-presentation-activity-DWzSa7P1.js +1 -0
  288. package/dist/assets/volter-sdk-kit-editor-presentation-notice-C1G-kp1e.js +1 -0
  289. package/dist/assets/volter-sdk-kit-editor-runtime-CS9R2K_F.js +1 -0
  290. package/dist/assets/volter-sdk-kit-editor-server-response-0Mhh9yF4.js +1 -0
  291. package/dist/assets/volter-sdk-kit-editor-session-attribution-Ph7CASKx.js +1 -0
  292. package/dist/assets/volter-sdk-kit-editor-session-mode-XZLK9_P8.js +1 -0
  293. package/dist/assets/volter-sdk-kit-editor-state-facets-qNfBi4hD.js +1 -0
  294. package/dist/assets/volter-sdk-kit-editor-view-presentation-BErbRorP.js +1 -0
  295. package/dist/assets/volter-sdk-kit-environment-images-95-zxwZo.js +1 -0
  296. package/dist/assets/volter-sdk-kit-eyedropper-session-CQo7ItTv.js +1 -0
  297. package/dist/assets/volter-sdk-kit-files-file-provider-BrKqepH4.js +1 -0
  298. package/dist/assets/volter-sdk-kit-files-project-files-C4R3G9FJ.js +1 -0
  299. package/dist/assets/volter-sdk-kit-finders-index-CmDc-1jE.js +1 -0
  300. package/dist/assets/volter-sdk-kit-finders-scenes-from-entrypoint-selection-j53AbyhZ.js +1 -0
  301. package/dist/assets/volter-sdk-kit-frame-frame-parts-CaJezPKP.js +1 -0
  302. package/dist/assets/volter-sdk-kit-framed-document-capture-Di2cG_GL.js +1 -0
  303. package/dist/assets/volter-sdk-kit-game-surface-defaults-07pu0hO1.js +1 -0
  304. package/dist/assets/volter-sdk-kit-gameplay-export-state-BCwYIw0G.js +1 -0
  305. package/dist/assets/volter-sdk-kit-gameplay-replay-C7JAGkVb.js +1 -0
  306. package/dist/assets/volter-sdk-kit-gameplay-session-time-B_4OQ_hh.js +1 -0
  307. package/dist/assets/volter-sdk-kit-gameplay-sessions-ETTejTR6.js +1 -0
  308. package/dist/assets/volter-sdk-kit-hierarchy-component-marks-Sy2_q_r1.js +1 -0
  309. package/dist/assets/volter-sdk-kit-hierarchy-internals-CkmbCm81.js +1 -0
  310. package/dist/assets/volter-sdk-kit-hierarchy-kind-icon-CqTMCBvo.js +1 -0
  311. package/dist/assets/volter-sdk-kit-hierarchy-menu-registry-RUvfiIob.js +1 -0
  312. package/dist/assets/volter-sdk-kit-hierarchy-node-rows-mH1O2jtN.js +1 -0
  313. package/dist/assets/volter-sdk-kit-hierarchy-panel-view-CJ68YC6r.js +1 -0
  314. package/dist/assets/volter-sdk-kit-hierarchy-projection-C7OsTooA.js +1 -0
  315. package/dist/assets/volter-sdk-kit-hierarchy-row-media-8iQfUIgx.js +1 -0
  316. package/dist/assets/volter-sdk-kit-hierarchy-row-model-DcwhpwAH.js +1 -0
  317. package/dist/assets/volter-sdk-kit-hierarchy-rows-7bcFtACV.js +1 -0
  318. package/dist/assets/volter-sdk-kit-hierarchy-walk-D_VIQuyF.js +1 -0
  319. package/dist/assets/volter-sdk-kit-history-editor-session-DjUeYL6C.js +1 -0
  320. package/dist/assets/volter-sdk-kit-history-history-commands-Bp6JdOxW.js +1 -0
  321. package/dist/assets/volter-sdk-kit-history-history-delegate-CfTsfaoh.js +1 -0
  322. package/dist/assets/volter-sdk-kit-history-history-limit-notices-6FIA1fG4.js +1 -0
  323. package/dist/assets/volter-sdk-kit-history-history-service-BrrJt3WF.js +1 -0
  324. package/dist/assets/volter-sdk-kit-history-persistence-coordinator-DrvYMXCF.js +1 -0
  325. package/dist/assets/volter-sdk-kit-history-project-file-history-BQL_uZxB.js +1 -0
  326. package/dist/assets/volter-sdk-kit-history-project-root-history-backends-B9x5k08x.js +1 -0
  327. package/dist/assets/volter-sdk-kit-history-resource-registry-CPzLBRWm.js +1 -0
  328. package/dist/assets/volter-sdk-kit-history-snapshot-store-Cv9xZGx5.js +1 -0
  329. package/dist/assets/volter-sdk-kit-history-source-history-backend-CAYCG8kO.js +1 -0
  330. package/dist/assets/volter-sdk-kit-hmr-registration-group-BgIYC7Ew.js +1 -0
  331. package/dist/assets/volter-sdk-kit-hmr-stable-react-context-DFEHeEnE.js +1 -0
  332. package/dist/assets/volter-sdk-kit-hotkeys-CtcLIsD1.js +1 -0
  333. package/dist/assets/volter-sdk-kit-inference-diagnostics-DR_VA6rZ.js +1 -0
  334. package/dist/assets/volter-sdk-kit-initial-project-BKnwA0NS.js +1 -0
  335. package/dist/assets/volter-sdk-kit-inspection-active-subject-J-af-vVU.js +1 -0
  336. package/dist/assets/volter-sdk-kit-inspection-active-surface-D1thbbE6.js +1 -0
  337. package/dist/assets/volter-sdk-kit-inspection-compose-subject-XROb3T4o.js +1 -0
  338. package/dist/assets/volter-sdk-kit-inspection-display-Zlj9PF9l.js +1 -0
  339. package/dist/assets/volter-sdk-kit-inspection-document-subject-DT8a46Oa.js +1 -0
  340. package/dist/assets/volter-sdk-kit-inspection-game-subject-MGuGx2qn.js +1 -0
  341. package/dist/assets/volter-sdk-kit-inspection-model-D0sSLZVF.js +1 -0
  342. package/dist/assets/volter-sdk-kit-inspection-node-media-BKe4tyXf.js +1 -0
  343. package/dist/assets/volter-sdk-kit-inspection-null-subject-jq8hP5YM.js +1 -0
  344. package/dist/assets/volter-sdk-kit-inspection-serialize-tBLJtQY7.js +1 -0
  345. package/dist/assets/volter-sdk-kit-inspection-use-active-inspection-gLXu3U_i.js +1 -0
  346. package/dist/assets/volter-sdk-kit-inspector-presentation-DiHZplSm.js +1 -0
  347. package/dist/assets/volter-sdk-kit-inspector-property-grouping-kaUZxmq2.js +1 -0
  348. package/dist/assets/volter-sdk-kit-inspector-section-registry-CZeci2lH.js +1 -0
  349. package/dist/assets/volter-sdk-kit-instance-source-actions-Cj9z6MW6.js +1 -0
  350. package/dist/assets/volter-sdk-kit-js-heap-3VqL6K6C.js +1 -0
  351. package/dist/assets/volter-sdk-kit-key-actions-DoPP9rqr.js +1 -0
  352. package/dist/assets/volter-sdk-kit-keymap-presets-BPufKWCX.js +1 -0
  353. package/dist/assets/volter-sdk-kit-layout-policy-iwBFYW-S.js +1 -0
  354. package/dist/assets/volter-sdk-kit-light-explorer-model-DDdLHcG7.js +1 -0
  355. package/dist/assets/volter-sdk-kit-live-canvas-frame-BWyrMTGE.js +1 -0
  356. package/dist/assets/volter-sdk-kit-live-document-CkVmHmkX.js +1 -0
  357. package/dist/assets/volter-sdk-kit-live-gesture-lock-B1Kw7FxF.js +1 -0
  358. package/dist/assets/volter-sdk-kit-live-seam-evidence-CHSeTPbb.js +1 -0
  359. package/dist/assets/volter-sdk-kit-live-session-registry-DNMiXVAb.js +1 -0
  360. package/dist/assets/volter-sdk-kit-live-transition-BVfI-nCK.js +1 -0
  361. package/dist/assets/volter-sdk-kit-manifest-project-T2VLVy1E.js +1 -0
  362. package/dist/assets/volter-sdk-kit-module-fetch-diagnosis-TOYmyGOw.js +1 -0
  363. package/dist/assets/volter-sdk-kit-mount-failure-report-CubkuDA0.js +1 -0
  364. package/dist/assets/volter-sdk-kit-native-selection-style-Bxej5JVb.js +1 -0
  365. package/dist/assets/volter-sdk-kit-object3d-document-write-policy-lqQxYliq.js +1 -0
  366. package/dist/assets/volter-sdk-kit-packaged-runtime-DibpjT4r.js +1 -0
  367. package/dist/assets/volter-sdk-kit-performance-profiler-BP9OGGk0.js +1 -0
  368. package/dist/assets/volter-sdk-kit-performance-sources-CXr9OYCc.js +1 -0
  369. package/dist/assets/volter-sdk-kit-photograph-notice-DIiv-xOC.js +1 -0
  370. package/dist/assets/volter-sdk-kit-play-boot-phase-DneHi-nx.js +1 -0
  371. package/dist/assets/volter-sdk-kit-play-camera-flight-DU-umEdb.js +1 -0
  372. package/dist/assets/volter-sdk-kit-presentation-surface-guqE0hYn.js +1 -0
  373. package/dist/assets/volter-sdk-kit-product-command-D4bDmW55.js +1 -0
  374. package/dist/assets/volter-sdk-kit-project-adapter-a1ud49-s.js +1 -0
  375. package/dist/assets/volter-sdk-kit-project-asset-refresh-BlTB5dRi.js +1 -0
  376. package/dist/assets/volter-sdk-kit-project-asset-roots-BW6MjFC9.js +1 -0
  377. package/dist/assets/volter-sdk-kit-project-local-state-yoBDvXue.js +1 -0
  378. package/dist/assets/volter-sdk-kit-project-manager-Ds9CpTo7.js +1 -0
  379. package/dist/assets/volter-sdk-kit-project-module-changes-CrKdaUvH.js +1 -0
  380. package/dist/assets/volter-sdk-kit-project-module-split-BmGzHOIy.js +1 -0
  381. package/dist/assets/volter-sdk-kit-project-provenance-nPCc7CgI.js +1 -0
  382. package/dist/assets/volter-sdk-kit-project-ready-ryBQECaA.js +1 -0
  383. package/dist/assets/volter-sdk-kit-project-shape-C3QTghbI.js +1 -0
  384. package/dist/assets/volter-sdk-kit-project-tools-CkFnoRrq.js +1 -0
  385. package/dist/assets/volter-sdk-kit-readiness-DkbUWI79.js +1 -0
  386. package/dist/assets/volter-sdk-kit-renderer-resource-counts-Cd7QR1B0.js +1 -0
  387. package/dist/assets/volter-sdk-kit-reported-play-state-g71nXO8s.js +1 -0
  388. package/dist/assets/volter-sdk-kit-resolve-contributed-command-Cgi1uRys.js +1 -0
  389. package/dist/assets/volter-sdk-kit-resolve-relative-specifier-Ckdvt0oR.js +1 -0
  390. package/dist/assets/volter-sdk-kit-retained-document-states-DwRQKU_j.js +1 -0
  391. package/dist/assets/volter-sdk-kit-scene-document-plan-yqiANJTI.js +1 -0
  392. package/dist/assets/volter-sdk-kit-scene-live-open-Dib0doII.js +1 -0
  393. package/dist/assets/volter-sdk-kit-scoped-game-css-ipatSw1z.js +1 -0
  394. package/dist/assets/volter-sdk-kit-served-url-BwP3Evuj.js +1 -0
  395. package/dist/assets/volter-sdk-kit-session-close-Ch7OT4eV.js +1 -0
  396. package/dist/assets/volter-sdk-kit-session-tombstone-CkAp6XCX.js +1 -0
  397. package/dist/assets/volter-sdk-kit-settings-settings-provider-D4EMeZk2.js +1 -0
  398. package/dist/assets/volter-sdk-kit-settings-store-DHeMz9lE.js +1 -0
  399. package/dist/assets/volter-sdk-kit-shell-store-DhQk7GnG.js +1 -0
  400. package/dist/assets/volter-sdk-kit-shell-store-door-1_1q08hC.js +1 -0
  401. package/dist/assets/volter-sdk-kit-source-conflict-C1WWqxO6.js +1 -0
  402. package/dist/assets/volter-sdk-kit-stage-context-CoGo1_rD.js +1 -0
  403. package/dist/assets/volter-sdk-kit-stage-invalidation-D0t4qy2q.js +1 -0
  404. package/dist/assets/volter-sdk-kit-stage-store-registry-lP88N6Rn.js +1 -0
  405. package/dist/assets/volter-sdk-kit-startup-failure-BpblO6Vb.js +1 -0
  406. package/dist/assets/volter-sdk-kit-state-report-deferral-DBCnKpKp.js +1 -0
  407. package/dist/assets/volter-sdk-kit-storage-host-files-storage-iSUjddtz.js +1 -0
  408. package/dist/assets/volter-sdk-kit-storage-http-storage-CKHg16_a.js +1 -0
  409. package/dist/assets/volter-sdk-kit-storage-index-B3NYY3x1.js +1 -0
  410. package/dist/assets/volter-sdk-kit-storage-mem-storage-Ds8WWBSg.js +1 -0
  411. package/dist/assets/volter-sdk-kit-storage-path-lock-qh633U4m.js +1 -0
  412. package/dist/assets/volter-sdk-kit-storage-paths-CvhVAxYw.js +1 -0
  413. package/dist/assets/volter-sdk-kit-stories-StoryPreviewMount-Rjdn6N6C.js +1 -0
  414. package/dist/assets/volter-sdk-kit-stories-compose-project-stories-Dx59Fgec.js +1 -0
  415. package/dist/assets/volter-sdk-kit-stories-prefabs-finder-C7rb64ip.js +1 -0
  416. package/dist/assets/volter-sdk-kit-stories-prefabs-from-stories-Bh1seYcX.js +1 -0
  417. package/dist/assets/volter-sdk-kit-stories-project-story-regions-DlFU168W.js +1 -0
  418. package/dist/assets/volter-sdk-kit-stories-scope-DEba5NZ-.js +1 -0
  419. package/dist/assets/volter-sdk-kit-stories-story-capture-BkWj5fow.js +1 -0
  420. package/dist/assets/volter-sdk-kit-stories-story-declared-medium-Djv4Kdo3.js +1 -0
  421. package/dist/assets/volter-sdk-kit-stories-story-discovery-DQilBQM4.js +1 -0
  422. package/dist/assets/volter-sdk-kit-stories-story-dom-runtime-DHuQmL8l.js +1 -0
  423. package/dist/assets/volter-sdk-kit-stories-story-grouping-BtQGC1OT.js +1 -0
  424. package/dist/assets/volter-sdk-kit-stories-story-presentation-BhLuwjfQ.js +1 -0
  425. package/dist/assets/volter-sdk-kit-stories-story-registry-vOHdcejw.js +1 -0
  426. package/dist/assets/volter-sdk-kit-story-document-openers-DU5-W_TY.js +1 -0
  427. package/dist/assets/volter-sdk-kit-story-thumbnails-PuhV1Z9C.js +1 -0
  428. package/dist/assets/volter-sdk-kit-surface-keyboard-Bp8LsDSb.js +1 -0
  429. package/dist/assets/volter-sdk-kit-surface-state-zF8sFw_0.js +1 -0
  430. package/dist/assets/volter-sdk-kit-system-seam-evidence-BqfsxGN7.js +1 -0
  431. package/dist/assets/volter-sdk-kit-tab-census-DykdT3Nm.js +1 -0
  432. package/dist/assets/volter-sdk-kit-tab-lifecycle-client-ByaoGzmz.js +1 -0
  433. package/dist/assets/volter-sdk-kit-theme-library-BzIOYvFa.js +1 -0
  434. package/dist/assets/volter-sdk-kit-theme-preference-BhL0p9Ii.js +1 -0
  435. package/dist/assets/volter-sdk-kit-three-viewport-presentation-Ceo1i52F.js +1 -0
  436. package/dist/assets/volter-sdk-kit-tool-contribution-play-DFjHAIIy.js +1 -0
  437. package/dist/assets/volter-sdk-kit-tool-loader-1e14nuXx.js +1 -0
  438. package/dist/assets/volter-sdk-kit-transform-mode-request-4bTRHxw9.js +1 -0
  439. package/dist/assets/volter-sdk-kit-transient-hint-LcIQEZrl.js +1 -0
  440. package/dist/assets/volter-sdk-kit-transport-strip-BRpSUyiH.js +1 -0
  441. package/dist/assets/volter-sdk-kit-ui-source-file-region-resolver-BjIKVmyK.js +1 -0
  442. package/dist/assets/volter-sdk-kit-ui-source-inspect-exieB0K2.js +1 -0
  443. package/dist/assets/volter-sdk-kit-ui-source-source-write-backend-xQv2Wt6l.js +1 -0
  444. package/dist/assets/volter-sdk-kit-ui-source-tier-source-write-backend-DBGHGQyz.js +1 -0
  445. package/dist/assets/volter-sdk-kit-user-local-state-CMpF2JEO.js +1 -0
  446. package/dist/assets/volter-sdk-kit-viewport-activation-timings-BIeXkPqH.js +1 -0
  447. package/dist/assets/volter-sdk-kit-viewport-editor-controls-V4xAEciw.js +1 -0
  448. package/dist/assets/volter-sdk-kit-viewport-presentation-fsTrrEkL.js +1 -0
  449. package/dist/assets/volter-sdk-kit-viewport-surface-status-p-IuByPq.js +1 -0
  450. package/dist/assets/volter-sdk-kit-wait-until-Cwd2J4pd.js +1 -0
  451. package/dist/assets/volter-sdk-kit-worker-call-metrics-5nvPBs8j.js +1 -0
  452. package/dist/assets/volter-sdk-kit-workspace-areas-Cl6NLk4B.js +1 -0
  453. package/dist/assets/volter-sdk-kit-workspace-aux-commands-DX6anFlm.js +1 -0
  454. package/dist/assets/volter-sdk-kit-workspace-available-documents-C1HgfLae.js +1 -0
  455. package/dist/assets/volter-sdk-kit-workspace-core-utilities-DkYt4K_g.js +1 -0
  456. package/dist/assets/volter-sdk-kit-workspace-document-ids-B1tp2eHD.js +1 -0
  457. package/dist/assets/volter-sdk-kit-workspace-document-registry-D76JQUSb.js +1 -0
  458. package/dist/assets/volter-sdk-kit-workspace-document-restore-DZUJwUcj.js +1 -0
  459. package/dist/assets/volter-sdk-kit-workspace-host-commands-BwU_j5L7.js +1 -0
  460. package/dist/assets/volter-sdk-kit-workspace-persistence-gate-CoKgCkmK.js +1 -0
  461. package/dist/assets/volter-sdk-kit-workspace-play-utilities-DeaSjFd1.js +1 -0
  462. package/dist/assets/volter-sdk-kit-workspace-presets-CojvP5p6.js +1 -0
  463. package/dist/assets/volter-sdk-kit-workspace-regions-BNv2UMf-.js +1 -0
  464. package/dist/assets/volter-sdk-kit-workspace-static-panels-CihEDKn_.js +1 -0
  465. package/dist/assets/volter-sdk-kit-workspace-status-registry-CaFyFf4e.js +1 -0
  466. package/dist/assets/volter-sdk-kit-workspace-storage-x2Vjh37q.js +1 -0
  467. package/dist/assets/volter-sdk-kit-workspace-style-CFIVvzkR.js +1 -0
  468. package/dist/assets/volter-sdk-kit-workspace-utility-commands-APDmSz37.js +1 -0
  469. package/dist/assets/volter-sdk-kit-workspace-utility-registry-SHIO4BYH.js +1 -0
  470. package/dist/assets/volter-sdk-kit-world-adoption-BPzJlac3.js +1 -0
  471. package/dist/assets/volter-sdk-kit-world-canvas-viewport-state-HJgLY5Ur.js +1 -0
  472. package/dist/assets/volter-sdk-kit-world-document-routing-9OOV-b8k.js +1 -0
  473. package/dist/assets/volter-sdk-kit-world-pan-state-DeP09ToH.js +1 -0
  474. package/dist/assets/volter-sdk-kit-write-pipe-BmhrmNE_.js +1 -0
  475. package/dist/assets/volter-sdk-layout-arrangements-ajz4RFYA.js +1 -0
  476. package/dist/assets/volter-sdk-layouts-CsTRLVJ-.js +1 -0
  477. package/dist/assets/volter-sdk-selection-CHAPJRA-.js +1 -0
  478. package/dist/assets/volter-sdk-session-command-table-De2GjyYo.js +1 -0
  479. package/dist/assets/volter-sdk-session-editor-brand-DumOuQxQ.js +1 -0
  480. package/dist/assets/volter-sdk-session-editor-compatibility-DnYVTg43.js +1 -0
  481. package/dist/assets/volter-sdk-session-editor-control-protocol-DU7kSWw0.js +1 -0
  482. package/dist/assets/volter-sdk-session-entrypoint-selection-readers-CxEuV_5D.js +1 -0
  483. package/dist/assets/volter-sdk-session-game-css-scope-DzSdyxlo.js +1 -0
  484. package/dist/assets/volter-sdk-session-project-module-url-BM7Bt_Se.js +1 -0
  485. package/dist/assets/volter-sdk-session-relative-path-guard-Cuf7F5R9.js +1 -0
  486. package/dist/assets/volter-sdk-session-tool-contribution-convention-C_iK4XiC.js +1 -0
  487. package/dist/assets/volter-sdk-types-8GgynHo_.js +1 -0
  488. package/dist/assets/volter-sdk-views-Uyr8Pk-k.js +1 -0
  489. package/dist/assets/volter-sdk-widgets-design-system-CaaesxAC.js +1 -0
  490. package/dist/assets/volter-sdk-widgets-editor-appearance-BzX-DuOy.js +1 -0
  491. package/dist/assets/volter-sdk-widgets-editor-material-ta9WSLaA.js +1 -0
  492. package/dist/assets/volter-sdk-widgets-icon-set-registry-CRNUtvQI.js +1 -0
  493. package/dist/assets/volter-sdk-widgets-index-D-xLrh5i.js +1 -0
  494. package/dist/assets/volter-sdk-widgets-inspector-widgets-AlignmentGrid-DRQN50uf.js +1 -0
  495. package/dist/assets/volter-sdk-widgets-inspector-widgets-AssetSlotPicker-CuYj4dcb.js +1 -0
  496. package/dist/assets/volter-sdk-widgets-inspector-widgets-BorderEditor-Z1dLEkZC.js +1 -0
  497. package/dist/assets/volter-sdk-widgets-inspector-widgets-ColorPicker-Bz3OWf6r.js +1 -0
  498. package/dist/assets/volter-sdk-widgets-inspector-widgets-CurveEditor-B9DamAmR.js +1 -0
  499. package/dist/assets/volter-sdk-widgets-inspector-widgets-FilterEditor-CmnV-g_J.js +1 -0
  500. package/dist/assets/volter-sdk-widgets-inspector-widgets-FontPicker-CMniknnT.js +1 -0
  501. package/dist/assets/volter-sdk-widgets-inspector-widgets-GradientEditor-BZcKpi-s.js +1 -0
  502. package/dist/assets/volter-sdk-widgets-inspector-widgets-ScrubbableInput-BfIgLeOS.js +1 -0
  503. package/dist/assets/volter-sdk-widgets-inspector-widgets-ShadowEditor-CILYOly6.js +1 -0
  504. package/dist/assets/volter-sdk-widgets-inspector-widgets-color-utils-DAAjvwaI.js +1 -0
  505. package/dist/assets/volter-sdk-widgets-inspector-widgets-curve-utils-DoG298nM.js +1 -0
  506. package/dist/assets/volter-sdk-widgets-inspector-widgets-index-D3xQidvb.js +1 -0
  507. package/dist/assets/volter-sdk-widgets-inspector-widgets-shared-CmUDikeC.js +1 -0
  508. package/dist/assets/volter-sdk-widgets-interactive-edit-scope-CfDc1xBd.js +1 -0
  509. package/dist/assets/volter-sdk-widgets-patterns-Dialog-LwGvR09d.js +1 -0
  510. package/dist/assets/volter-sdk-widgets-patterns-Fields-CeXlcu_Z.js +1 -0
  511. package/dist/assets/volter-sdk-widgets-patterns-List-DKrm7Pt3.js +1 -0
  512. package/dist/assets/volter-sdk-widgets-patterns-StateSurface-CY2-m-30.js +1 -0
  513. package/dist/assets/volter-sdk-widgets-patterns-Surfaces-Cm2pzGw9.js +1 -0
  514. package/dist/assets/volter-sdk-widgets-patterns-Tabs-BIrcYiMQ.js +1 -0
  515. package/dist/assets/volter-sdk-widgets-patterns-Toolbar-B756h1OU.js +1 -0
  516. package/dist/assets/volter-sdk-widgets-patterns-Tree-CE_RNUg8.js +1 -0
  517. package/dist/assets/volter-sdk-widgets-primitives-AnchoredMenu-mz30ZPXf.js +1 -0
  518. package/dist/assets/volter-sdk-widgets-primitives-Button-fOkB6rUw.js +1 -0
  519. package/dist/assets/volter-sdk-widgets-primitives-ColorInput-B1fQ4bUU.js +1 -0
  520. package/dist/assets/volter-sdk-widgets-primitives-DraftTextInput-D1-TX5DY.js +1 -0
  521. package/dist/assets/volter-sdk-widgets-primitives-EditorIcon-Ci6Wq1Gn.js +1 -0
  522. package/dist/assets/volter-sdk-widgets-primitives-FormControls-C_GAr2_b.js +1 -0
  523. package/dist/assets/volter-sdk-widgets-primitives-HoverPreview-DU6tODP_.js +1 -0
  524. package/dist/assets/volter-sdk-widgets-primitives-JsonInput-CT7p1iY_.js +1 -0
  525. package/dist/assets/volter-sdk-widgets-primitives-Layout-C0izDLCQ.js +1 -0
  526. package/dist/assets/volter-sdk-widgets-primitives-Menu-Bgbu6smU.js +1 -0
  527. package/dist/assets/volter-sdk-widgets-primitives-NumberInput-D1NG9N1n.js +1 -0
  528. package/dist/assets/volter-sdk-widgets-primitives-Panel-k5Voj_zm.js +1 -0
  529. package/dist/assets/volter-sdk-widgets-primitives-SectionHeader-hL0XXuWY.js +1 -0
  530. package/dist/assets/volter-sdk-widgets-primitives-Text-DUZ5e-AG.js +1 -0
  531. package/dist/assets/volter-sdk-widgets-primitives-ThemeRootPortal-H_pIDc0w.js +1 -0
  532. package/dist/assets/volter-sdk-widgets-primitives-Tooltip-PwmRffa-.js +1 -0
  533. package/dist/assets/volter-sdk-widgets-primitives-Vec3Input-CtIeIMn4.js +1 -0
  534. package/dist/assets/volter-sdk-widgets-primitives-banner-tones-Di5Z1h2O.js +1 -0
  535. package/dist/assets/volter-sdk-widgets-primitives-clamp-to-viewport-CdCodoKJ.js +1 -0
  536. package/dist/assets/volter-sdk-widgets-primitives-editor-icons-FApZShEF.js +1 -0
  537. package/dist/assets/volter-sdk-widgets-primitives-panel-header-styles-Dc2zxyjA.js +1 -0
  538. package/dist/assets/volter-sdk-widgets-theme-DSw9aBGE.js +1 -0
  539. package/dist/assets/volter-sdk-widgets-z-index-Bgd6w77-.js +1 -0
  540. package/dist/assets/volter-shared-fontawesome-fnK-t539.js +1 -0
  541. package/dist/assets/volter-shared-jsx-dev-runtime-BrfuWuZe.js +1 -0
  542. package/dist/assets/volter-shared-jsx-runtime-CI2yyPaV.js +1 -0
  543. package/dist/assets/volter-shared-react-DAMHSe9Z.js +1 -0
  544. package/dist/assets/volter-shared-react-dom-1gsJuXOV.js +1 -0
  545. package/dist/assets/volter-shared-react-dom-client-zL8Fa4kc.js +1 -0
  546. package/dist/assets/volter-shared-three-YX0KNmsd.js +1 -0
  547. package/dist/assets/worker-CpcBN2Ba.js +8 -0
  548. package/dist/volter-shared-react.json +6 -6
  549. package/dist/volter-shared-sdk.json +461 -461
  550. package/dist/volter-shared-three.json +1 -1
  551. package/dist-node/cli.js +28 -23
  552. package/dist-node/create.js +20 -15
  553. package/package.json +14 -14
  554. package/starter/AGENTS.md +12 -0
  555. package/dist/assets/BVHLoader-BXKiHT5h.js +0 -1
  556. package/dist/assets/ColladaLoader-CyZbE4O2.js +0 -3
  557. package/dist/assets/EntityModelDocument-D2K-YeUs.js +0 -1
  558. package/dist/assets/EnvironmentAssetDocument-DBnJ4_-V.js +0 -1
  559. package/dist/assets/FBXLoader-D57b2Qrv.js +0 -1
  560. package/dist/assets/InspectorObjectPreview-qS1byRDV.js +0 -1
  561. package/dist/assets/LineSegments2-D_GgVQph.js +0 -370
  562. package/dist/assets/LiveModuleDocument-DaeiFQtn.js +0 -2
  563. package/dist/assets/LutAssetDocument-BpQ9GsJ9.js +0 -1
  564. package/dist/assets/MTLLoader-BqTkgdtE.js +0 -2
  565. package/dist/assets/ModelAssetDocument-CZTyX618.js +0 -1
  566. package/dist/assets/NonThreeAuthoringBootstrap-DUJbk9k-.js +0 -1
  567. package/dist/assets/OBJLoader-C6DZQNaC.js +0 -5
  568. package/dist/assets/Object3DDocumentToolbar-DLo3_IHd.js +0 -1
  569. package/dist/assets/Object3DPreview-CYzEOi6B.js +0 -2
  570. package/dist/assets/OrbitControls-YNq5RhEj.js +0 -1
  571. package/dist/assets/PLYLoader-BKPS0Afd.js +0 -2
  572. package/dist/assets/QuarksAssetDocument-DI_-XGJI.js +0 -2
  573. package/dist/assets/RectAreaLightUniformsLib-CfxEn3z_.js +0 -1
  574. package/dist/assets/STLLoader-DtW5I84v.js +0 -1
  575. package/dist/assets/ShaderAssetDocument-yDopYfwE.js +0 -1
  576. package/dist/assets/StageHost-D97jIRog.js +0 -1179
  577. package/dist/assets/TDSLoader-Bg7nII7y.js +0 -1
  578. package/dist/assets/ToolObject3DPreview-BrkGtgvC.js +0 -1
  579. package/dist/assets/ViewportShadingMenu-CCPx-8Rg.js +0 -1
  580. package/dist/assets/animation-mixers.service-C8Z6TcCX.js +0 -1
  581. package/dist/assets/animation-timeline.utility-BZkNK9-R.js +0 -1
  582. package/dist/assets/asset-preview-B4kK4wfl.js +0 -4
  583. package/dist/assets/blender-emscripten-engine-B_l8H9L4.js +0 -2
  584. package/dist/assets/blender-node-editor.document-Cm2yettL.js +0 -1
  585. package/dist/assets/blender-properties-model-CsZS91JN.js +0 -1
  586. package/dist/assets/blender-properties-tab-qj951C1w.js +0 -3
  587. package/dist/assets/blender-runtime-host-BGBnqcJk.js +0 -14
  588. package/dist/assets/blender-runtime.document-DURGLPev.js +0 -13
  589. package/dist/assets/blender-screenshot.menu-BvF_Eagq.js +0 -1
  590. package/dist/assets/blender-timeline.document-BGUCiiCU.js +0 -1
  591. package/dist/assets/blender-uv-editor.document-D9kg8-ry.js +0 -1
  592. package/dist/assets/blender-version.status-Dh7m7u-0.js +0 -1
  593. package/dist/assets/blender-wali-engine-BH54NSlp.js +0 -2
  594. package/dist/assets/blender.command-CaqBVtVQ.js +0 -1
  595. package/dist/assets/blender.status-CxdohUyQ.js +0 -1
  596. package/dist/assets/index-B28J5e-4.js +0 -952
  597. package/dist/assets/linear-resolve-CZ0wav6c.js +0 -8
  598. package/dist/assets/model-inspection-Dl7fyCmY.js +0 -1
  599. package/dist/assets/models.finder-CHQs8tVl.js +0 -1
  600. package/dist/assets/object3d-document-session-registry-COCylBVQ.js +0 -2
  601. package/dist/assets/output-pass-C_NksIPU.js +0 -85
  602. package/dist/assets/play-mode-Cvsdz02D.js +0 -7271
  603. package/dist/assets/product-wrgI_NFB.js +0 -14
  604. package/dist/assets/properties-bone-constraints.inspector-DLpEJmHt.js +0 -1
  605. package/dist/assets/properties-bone.inspector-DtIZop33.js +0 -1
  606. package/dist/assets/properties-collection.inspector-Ba56aP3f.js +0 -1
  607. package/dist/assets/properties-constraints.inspector-9g_MJmXF.js +0 -1
  608. package/dist/assets/properties-data.inspector-BUFAw4vd.js +0 -1
  609. package/dist/assets/properties-material.inspector-DutVHX2l.js +0 -1
  610. package/dist/assets/properties-modifiers.inspector-7BrqjXu1.js +0 -1
  611. package/dist/assets/properties-object.inspector-BCCelHxh.js +0 -1
  612. package/dist/assets/properties-output.inspector-CdVm6jQb.js +0 -1
  613. package/dist/assets/properties-particles.inspector-BGlWUwqw.js +0 -1
  614. package/dist/assets/properties-physics.inspector-BR7LRN9U.js +0 -1
  615. package/dist/assets/properties-render.inspector-Dv-6OeHT.js +0 -1
  616. package/dist/assets/properties-scene.inspector-DvuLw6sn.js +0 -1
  617. package/dist/assets/properties-texture.inspector-BesNoDJo.js +0 -1
  618. package/dist/assets/properties-view-layer.inspector-D8lf3UEA.js +0 -1
  619. package/dist/assets/properties-world.inspector-Dp9WcNb1.js +0 -1
  620. package/dist/assets/react-18-B-fDrlK3.js +0 -1
  621. package/dist/assets/session-BCbKE24z.js +0 -5598
  622. package/dist/assets/spark.module-Bheu1A5i.js +0 -12120
  623. package/dist/assets/stage-keyboard-CHXyPoVi.js +0 -1
  624. package/dist/assets/stage-overlay-set-DNTaFw5D.js +0 -1
  625. package/dist/assets/stage-presence-markers-e-4Izt1B.js +0 -1
  626. package/dist/assets/stage-transform-tools-CH8oKU9q.js +0 -1
  627. package/dist/assets/standard-viewport-dressing-DDY_9SZV.js +0 -24
  628. package/dist/assets/three-integration.service-BIlcUdBp.js +0 -2
  629. package/dist/assets/three.module-Ch_c8uGz.js +0 -3840
  630. package/dist/assets/volter-sdk-BQB0Zlob.js +0 -2359
  631. package/dist/assets/volter-sdk-account-BRmOQigQ.js +0 -1
  632. package/dist/assets/volter-sdk-client-BVPEmglb.js +0 -1
  633. package/dist/assets/volter-sdk-contributions-COTDJYO1.js +0 -1
  634. package/dist/assets/volter-sdk-css-numeric-style-D8wAOsPa.js +0 -1
  635. package/dist/assets/volter-sdk-document-probe-DXbTwL2u.js +0 -1
  636. package/dist/assets/volter-sdk-editor-view-Bzu-8CYm.js +0 -1
  637. package/dist/assets/volter-sdk-host-DqJQr1df.js +0 -1
  638. package/dist/assets/volter-sdk-http-transport.browser-dslmINS5.js +0 -1
  639. package/dist/assets/volter-sdk-index-Cecw-mhV.js +0 -1
  640. package/dist/assets/volter-sdk-kit-CapabilityCoverageSection-B0RqqZl4.js +0 -1
  641. package/dist/assets/volter-sdk-kit-account-client-DlGIQn1J.js +0 -1
  642. package/dist/assets/volter-sdk-kit-action-registry-iyJE-VV5.js +0 -1
  643. package/dist/assets/volter-sdk-kit-active-product-GLOp7SGI.js +0 -1
  644. package/dist/assets/volter-sdk-kit-active-project-Dq8kofND.js +0 -1
  645. package/dist/assets/volter-sdk-kit-adapter-editor-config-Cr-mrc_Y.js +0 -1
  646. package/dist/assets/volter-sdk-kit-adapter-observation-C6oW-ky_.js +0 -1
  647. package/dist/assets/volter-sdk-kit-animation-animation-clock-DXSx3lLN.js +0 -1
  648. package/dist/assets/volter-sdk-kit-animation-stage-transport-B9cPRQOS.js +0 -1
  649. package/dist/assets/volter-sdk-kit-api-assets-QQkgNwVu.js +0 -1
  650. package/dist/assets/volter-sdk-kit-api-base-Bi2i5hsp.js +0 -1
  651. package/dist/assets/volter-sdk-kit-api-build-1KMxNSM5.js +0 -1
  652. package/dist/assets/volter-sdk-kit-api-logs-CDY71iIJ.js +0 -1
  653. package/dist/assets/volter-sdk-kit-api-project-identity-BqUoSmNo.js +0 -1
  654. package/dist/assets/volter-sdk-kit-api-project-open-B1w4XBfB.js +0 -1
  655. package/dist/assets/volter-sdk-kit-api-project-source-F1AcNj-D.js +0 -1
  656. package/dist/assets/volter-sdk-kit-api-project-state-CB3cUFZU.js +0 -1
  657. package/dist/assets/volter-sdk-kit-api-relay-iOZ9kIor.js +0 -1
  658. package/dist/assets/volter-sdk-kit-api-settings-4yiNiPSb.js +0 -1
  659. package/dist/assets/volter-sdk-kit-api-themes-B9lXw-rS.js +0 -1
  660. package/dist/assets/volter-sdk-kit-api-worktrees-Bb349LYf.js +0 -1
  661. package/dist/assets/volter-sdk-kit-asset-capabilities-DTzFDavf.js +0 -1
  662. package/dist/assets/volter-sdk-kit-asset-compare-core-DIjVnsWv.js +0 -1
  663. package/dist/assets/volter-sdk-kit-asset-editor-context-B8nmnM0v.js +0 -1
  664. package/dist/assets/volter-sdk-kit-asset-events-p6ItxCTP.js +0 -1
  665. package/dist/assets/volter-sdk-kit-asset-inspector-actions-BTfyM2o7.js +0 -1
  666. package/dist/assets/volter-sdk-kit-asset-selection-CyBY_d7d.js +0 -1
  667. package/dist/assets/volter-sdk-kit-asset-selection-viewer-registry-GEOzhji9.js +0 -1
  668. package/dist/assets/volter-sdk-kit-asset-thumbnails-CtkiF-V5.js +0 -1
  669. package/dist/assets/volter-sdk-kit-asset-viewers-D3Mi8fQr.js +0 -1
  670. package/dist/assets/volter-sdk-kit-asset-workflow-asset-import-jobs-CYGzcTaL.js +0 -1
  671. package/dist/assets/volter-sdk-kit-asset-workflow-asset-ledger-D91D_0CF.js +0 -1
  672. package/dist/assets/volter-sdk-kit-asset-workflow-asset-ledger-backend-B0zRHiL9.js +0 -1
  673. package/dist/assets/volter-sdk-kit-asset-workflow-asset-materialization-report-IY6VUMHw.js +0 -1
  674. package/dist/assets/volter-sdk-kit-asset-workflow-asset-pack-manifest-Ce47mw6a.js +0 -1
  675. package/dist/assets/volter-sdk-kit-asset-workflow-audio-preview-player-CD1vnsZR.js +0 -1
  676. package/dist/assets/volter-sdk-kit-asset-workflow-audio-waveform-d0-Uzy03.js +0 -1
  677. package/dist/assets/volter-sdk-kit-asset-workflow-cloud-asset-client-D0vVAqBn.js +0 -1
  678. package/dist/assets/volter-sdk-kit-asset-workflow-hosted-asset-materialization-BAEvL1UZ.js +0 -1
  679. package/dist/assets/volter-sdk-kit-asset-workflow-image-view-scale-fPi29bOk.js +0 -1
  680. package/dist/assets/volter-sdk-kit-asset-workflow-ledger-write-lock-D6_Z95V4.js +0 -1
  681. package/dist/assets/volter-sdk-kit-asset-workflow-pixi-spritesheet-J-T1VMTl.js +0 -1
  682. package/dist/assets/volter-sdk-kit-asset-workflow-preview-resource-lifetime-EJZkn7bf.js +0 -1
  683. package/dist/assets/volter-sdk-kit-asset-workflow-project-asset-commands-DkuAqo0y.js +0 -1
  684. package/dist/assets/volter-sdk-kit-asset-workflow-project-content-DZNwlagz.js +0 -1
  685. package/dist/assets/volter-sdk-kit-asset-workflow-thumbnail-system-98jVdg4_.js +0 -1
  686. package/dist/assets/volter-sdk-kit-authoring-active-adapter-BUHOIghW.js +0 -1
  687. package/dist/assets/volter-sdk-kit-authoring-active-systems-BkfojKRD.js +0 -1
  688. package/dist/assets/volter-sdk-kit-authoring-adapter-key-DlUMlg2J.js +0 -1
  689. package/dist/assets/volter-sdk-kit-authoring-authoring-asset-url-j7BZcyGf.js +0 -1
  690. package/dist/assets/volter-sdk-kit-authoring-bootstrap-state-mMFV_DNR.js +0 -1
  691. package/dist/assets/volter-sdk-kit-authoring-boundary-authoring-adapter-BOxK4vQz.js +0 -1
  692. package/dist/assets/volter-sdk-kit-authoring-canvas-scene-guides-DFBqMSWw.js +0 -1
  693. package/dist/assets/volter-sdk-kit-authoring-composite-authoring-adapter-DMiKN7VF.js +0 -1
  694. package/dist/assets/volter-sdk-kit-authoring-consumer-actions-bhWe6xvl.js +0 -1
  695. package/dist/assets/volter-sdk-kit-authoring-design-time-layers-23UL6KYj.js +0 -1
  696. package/dist/assets/volter-sdk-kit-authoring-design-time-mount-registry-DW9dIClD.js +0 -1
  697. package/dist/assets/volter-sdk-kit-authoring-edit-mode-authoring-DBgL_lA2.js +0 -1
  698. package/dist/assets/volter-sdk-kit-authoring-empty-project-authoring-ClpazTR4.js +0 -1
  699. package/dist/assets/volter-sdk-kit-authoring-instance-source-menu-sWfxRUay.js +0 -1
  700. package/dist/assets/volter-sdk-kit-authoring-layered-pick-DS0eMkp2.js +0 -1
  701. package/dist/assets/volter-sdk-kit-authoring-mounted-root-subjects-DZs9VhIo.js +0 -1
  702. package/dist/assets/volter-sdk-kit-authoring-no-authoring-adapter-J4KHjSKS.js +0 -1
  703. package/dist/assets/volter-sdk-kit-authoring-object3d-document-persistence-M3aJf5zN.js +0 -1
  704. package/dist/assets/volter-sdk-kit-authoring-panel-authoring-7fQh-qhz.js +0 -1
  705. package/dist/assets/volter-sdk-kit-authoring-project-authoring-session-BccpEej-.js +0 -1
  706. package/dist/assets/volter-sdk-kit-authoring-provenance-CSBBulpS.js +0 -1
  707. package/dist/assets/volter-sdk-kit-authoring-react-canvas-navigation-CwqVcZU9.js +0 -1
  708. package/dist/assets/volter-sdk-kit-authoring-react-design-canvas-style-CNq_7ExO.js +0 -1
  709. package/dist/assets/volter-sdk-kit-authoring-react-story-board-C3IgU8EW.js +0 -1
  710. package/dist/assets/volter-sdk-kit-authoring-seam-evidence-C6_N51p0.js +0 -1
  711. package/dist/assets/volter-sdk-kit-authoring-selection-scope-Dx0OhjSY.js +0 -1
  712. package/dist/assets/volter-sdk-kit-authoring-shell-document-ops-vSHUVyMV.js +0 -1
  713. package/dist/assets/volter-sdk-kit-authoring-story-board-chrome-fit-CbEZTmx1.js +0 -1
  714. package/dist/assets/volter-sdk-kit-authoring-three-root-Dg0-ohDP.js +0 -1
  715. package/dist/assets/volter-sdk-kit-authoring-viewport-tool-context-igyC5lq5.js +0 -1
  716. package/dist/assets/volter-sdk-kit-authoring-viewport-tool-owner-CyLsqP5d.js +0 -1
  717. package/dist/assets/volter-sdk-kit-authoring-world-session-state-BkPCvL32.js +0 -1
  718. package/dist/assets/volter-sdk-kit-availability-tick-CztgdYL5.js +0 -1
  719. package/dist/assets/volter-sdk-kit-bitmap-label-0hGzu1o7.js +0 -1
  720. package/dist/assets/volter-sdk-kit-boot-routing-B6xZMCfo.js +0 -1
  721. package/dist/assets/volter-sdk-kit-breakpoint-state-DICezbj0.js +0 -1
  722. package/dist/assets/volter-sdk-kit-build-identity-DuHPXxO0.js +0 -1
  723. package/dist/assets/volter-sdk-kit-bytes-codec-rzvCGFIr.js +0 -1
  724. package/dist/assets/volter-sdk-kit-cancellation-reason-UOzNM96u.js +0 -1
  725. package/dist/assets/volter-sdk-kit-canvas-frames-CzkzpXX6.js +0 -1
  726. package/dist/assets/volter-sdk-kit-capture-camera-pose-I9C3liSR.js +0 -1
  727. package/dist/assets/volter-sdk-kit-capture-size-6Ya1f6kq.js +0 -1
  728. package/dist/assets/volter-sdk-kit-chrome-registry-CbG9Q3FR.js +0 -1
  729. package/dist/assets/volter-sdk-kit-chrome-slot-registry-wzW1ylyz.js +0 -1
  730. package/dist/assets/volter-sdk-kit-collaboration-client-AG1jGw5p.js +0 -1
  731. package/dist/assets/volter-sdk-kit-collaboration-presence-CyeZjLeU.js +0 -1
  732. package/dist/assets/volter-sdk-kit-command-dispatch-CAXRpf6i.js +0 -1
  733. package/dist/assets/volter-sdk-kit-command-listener-B6y1MEn7.js +0 -1
  734. package/dist/assets/volter-sdk-kit-command-registry-BaA8ssQ5.js +0 -1
  735. package/dist/assets/volter-sdk-kit-component-board-registry-DkdgKK0v.js +0 -1
  736. package/dist/assets/volter-sdk-kit-component-states-registry-3ciThnSP.js +0 -1
  737. package/dist/assets/volter-sdk-kit-components-AlignToolbar-Iwi81m1v.js +0 -1
  738. package/dist/assets/volter-sdk-kit-components-ApplicationMenus-dRU2zlOB.js +0 -1
  739. package/dist/assets/volter-sdk-kit-components-AssetEditorShell-CY0cXlne.js +0 -1
  740. package/dist/assets/volter-sdk-kit-components-AssetInspectorToolSection-BVB6gPIp.js +0 -1
  741. package/dist/assets/volter-sdk-kit-components-BoardRulers-Ddw0d1Mq.js +0 -1
  742. package/dist/assets/volter-sdk-kit-components-CanvasAddNodeDialogs-CmUPyJQk.js +0 -1
  743. package/dist/assets/volter-sdk-kit-components-CanvasSceneViewport-BkzB4oUY.js +0 -1
  744. package/dist/assets/volter-sdk-kit-components-ChromeSlot-BeFxCLHz.js +0 -1
  745. package/dist/assets/volter-sdk-kit-components-CodeView-QxuKeVvG.js +0 -1
  746. package/dist/assets/volter-sdk-kit-components-CompactInspectorShell-DjZIEp2q.js +0 -1
  747. package/dist/assets/volter-sdk-kit-components-ConsolePanel-DouDFNne.js +0 -1
  748. package/dist/assets/volter-sdk-kit-components-GameplaySessionTimeline-lAZoIi-u.js +0 -1
  749. package/dist/assets/volter-sdk-kit-components-InspectionProjection-hXragN0t.js +0 -1
  750. package/dist/assets/volter-sdk-kit-components-Inspector-BfgpPzq3.js +0 -1
  751. package/dist/assets/volter-sdk-kit-components-InspectorCanvasPreview-F6VuXOsD.js +0 -1
  752. package/dist/assets/volter-sdk-kit-components-InspectorFieldsSection-wuqUpHyM.js +0 -1
  753. package/dist/assets/volter-sdk-kit-components-InspectorStoriesSection-aAJUhffn.js +0 -1
  754. package/dist/assets/volter-sdk-kit-components-InspectorToolSection-Cocge2fh.js +0 -1
  755. package/dist/assets/volter-sdk-kit-components-InspectorTransformSection-AiA8zoWI.js +0 -1
  756. package/dist/assets/volter-sdk-kit-components-LightExplorerPanel-02Yf3R8-.js +0 -1
  757. package/dist/assets/volter-sdk-kit-components-MediaProperties-BXFREoRK.js +0 -1
  758. package/dist/assets/volter-sdk-kit-components-ProjectHeader-BzeFQSAJ.js +0 -1
  759. package/dist/assets/volter-sdk-kit-components-ReactCanvasControls-Bvic1Ayf.js +0 -1
  760. package/dist/assets/volter-sdk-kit-components-RootSelectionOverlay-CH7lZrRZ.js +0 -1
  761. package/dist/assets/volter-sdk-kit-components-RootTextEditor-Bvx3JFLQ.js +0 -1
  762. package/dist/assets/volter-sdk-kit-components-SaveStatus-Dr8FZj6d.js +0 -1
  763. package/dist/assets/volter-sdk-kit-components-SurfaceCrashBoundary-CYvTikb4.js +0 -1
  764. package/dist/assets/volter-sdk-kit-components-SurfaceStateOverlay-CgPZWiJ7.js +0 -1
  765. package/dist/assets/volter-sdk-kit-components-ToolContributionSurfaces-CtDzjSwg.js +0 -1
  766. package/dist/assets/volter-sdk-kit-components-ToolHost-Cyo_MKqv.js +0 -1
  767. package/dist/assets/volter-sdk-kit-components-Toolbar-WFauNr1P.js +0 -1
  768. package/dist/assets/volter-sdk-kit-components-TransientHint-FVfwK7Ca.js +0 -1
  769. package/dist/assets/volter-sdk-kit-components-VersionControlSection-Biji3eP8.js +0 -1
  770. package/dist/assets/volter-sdk-kit-components-ViewportOverlaysMenu-gYEaeGoB.js +0 -1
  771. package/dist/assets/volter-sdk-kit-components-VolterLogo-C_sHkE56.js +0 -1
  772. package/dist/assets/volter-sdk-kit-components-WorktreeSwitcher-B6-CfiZ4.js +0 -1
  773. package/dist/assets/volter-sdk-kit-components-account-documents-Chw7MMS0.js +0 -1
  774. package/dist/assets/volter-sdk-kit-components-asset-documents-BB8AUKFZ.js +0 -1
  775. package/dist/assets/volter-sdk-kit-components-asset-editor-persistence-DJUlflJ3.js +0 -1
  776. package/dist/assets/volter-sdk-kit-components-asset-selection-section-1-jSEte_.js +0 -1
  777. package/dist/assets/volter-sdk-kit-components-asset-thumbnails-QVXuceNT.js +0 -1
  778. package/dist/assets/volter-sdk-kit-components-asset-viewers-AudioViewer-Bm8sWT6v.js +0 -1
  779. package/dist/assets/volter-sdk-kit-components-asset-viewers-GenericJsonViewer-DhTeXByX.js +0 -1
  780. package/dist/assets/volter-sdk-kit-components-asset-viewers-ImageViewer-DEjeA96n.js +0 -1
  781. package/dist/assets/volter-sdk-kit-components-asset-viewers-JsonAssetDocument-B9cqEHWp.js +0 -1
  782. package/dist/assets/volter-sdk-kit-components-asset-viewers-OnlineAssetDetail-ThHv999_.js +0 -1
  783. package/dist/assets/volter-sdk-kit-components-asset-viewers-SourceAssetViewer-4l6r3olY.js +0 -1
  784. package/dist/assets/volter-sdk-kit-components-asset-viewers-SpritesheetSpriteView-Bxyen4JM.js +0 -1
  785. package/dist/assets/volter-sdk-kit-components-asset-viewers-VideoViewer-BbMJqQaS.js +0 -1
  786. package/dist/assets/volter-sdk-kit-components-asset-viewers-shader-source-Caowc3-j.js +0 -1
  787. package/dist/assets/volter-sdk-kit-components-board-guides-BXW3q7MN.js +0 -1
  788. package/dist/assets/volter-sdk-kit-components-canvas-scene-hotkeys-2X5Bx2Fu.js +0 -1
  789. package/dist/assets/volter-sdk-kit-components-canvas-temporary-pivot-DvjBV827.js +0 -1
  790. package/dist/assets/volter-sdk-kit-components-core-utilities-Z7YZB4yO.js +0 -1
  791. package/dist/assets/volter-sdk-kit-components-inspector-preview-section-cTdPXu6v.js +0 -1
  792. package/dist/assets/volter-sdk-kit-components-inspector-revert-label-B1ZSlBf0.js +0 -1
  793. package/dist/assets/volter-sdk-kit-components-inspector-selection-6Z7aLmWH.js +0 -1
  794. package/dist/assets/volter-sdk-kit-components-inspector-stories-gating-DNDinFBG.js +0 -1
  795. package/dist/assets/volter-sdk-kit-components-inspector-transform-CKtjqPwP.js +0 -1
  796. package/dist/assets/volter-sdk-kit-components-inspector-transform-subject-E-23DANe.js +0 -1
  797. package/dist/assets/volter-sdk-kit-components-kind-documents-Db2uK1Oy.js +0 -1
  798. package/dist/assets/volter-sdk-kit-components-primitives-DraftColorInput-C-_1gplg.js +0 -1
  799. package/dist/assets/volter-sdk-kit-components-project-tool-documents-D9-N15vG.js +0 -1
  800. package/dist/assets/volter-sdk-kit-components-scene-documents-u7dpCCdb.js +0 -1
  801. package/dist/assets/volter-sdk-kit-components-status-contributions-B6xlBlk4.js +0 -1
  802. package/dist/assets/volter-sdk-kit-components-tool-documents-DDvfJ5Cz.js +0 -1
  803. package/dist/assets/volter-sdk-kit-components-tool-schema-form-DQ_0hzjB.js +0 -1
  804. package/dist/assets/volter-sdk-kit-components-use-after-paint-MSFD3H8b.js +0 -1
  805. package/dist/assets/volter-sdk-kit-components-use-project-image-assets-BUkqg3mk.js +0 -1
  806. package/dist/assets/volter-sdk-kit-components-workspace-history-C4aj-JV5.js +0 -1
  807. package/dist/assets/volter-sdk-kit-components-world-documents-DfGiXnGG.js +0 -1
  808. package/dist/assets/volter-sdk-kit-components-world-overlay-gestures-0q-85Bpy.js +0 -1
  809. package/dist/assets/volter-sdk-kit-composite-screenshot-DowI-yBg.js +0 -1
  810. package/dist/assets/volter-sdk-kit-content-entry-source-registry-BKBx1Gqc.js +0 -1
  811. package/dist/assets/volter-sdk-kit-contribution-surfaces-BKX7_V94.js +0 -1
  812. package/dist/assets/volter-sdk-kit-coverage-canvas-reveal-DXuIFCaX.js +0 -1
  813. package/dist/assets/volter-sdk-kit-coverage-design-time-surfaces-DhUT9M6O.js +0 -1
  814. package/dist/assets/volter-sdk-kit-coverage-ontology-invariants-gpoWC6W_.js +0 -1
  815. package/dist/assets/volter-sdk-kit-coverage-session-vitals-zXrwtVLq.js +0 -1
  816. package/dist/assets/volter-sdk-kit-creation-site-registry-cfJyxPqx.js +0 -1
  817. package/dist/assets/volter-sdk-kit-delegate-harness-registry-Dg7yqRs1.js +0 -1
  818. package/dist/assets/volter-sdk-kit-document-areas-CWSscw4i.js +0 -1
  819. package/dist/assets/volter-sdk-kit-document-context-registry-liI7m3bn.js +0 -1
  820. package/dist/assets/volter-sdk-kit-document-open-registry-B0xtV3kM.js +0 -1
  821. package/dist/assets/volter-sdk-kit-document-play-extension-BIZPGKEi.js +0 -1
  822. package/dist/assets/volter-sdk-kit-document-preview-source-CKz96VVj.js +0 -1
  823. package/dist/assets/volter-sdk-kit-document-renderer-session-DC-_aHBi.js +0 -1
  824. package/dist/assets/volter-sdk-kit-document-stage-sessions-DdkM2E8o.js +0 -1
  825. package/dist/assets/volter-sdk-kit-document-viewports-BOAugjsJ.js +0 -1
  826. package/dist/assets/volter-sdk-kit-editor-api-D-OoPzLj.js +0 -1
  827. package/dist/assets/volter-sdk-kit-editor-chrome-capture-BtlUvnlO.js +0 -1
  828. package/dist/assets/volter-sdk-kit-editor-commands-DeDDPSwH.js +0 -1
  829. package/dist/assets/volter-sdk-kit-editor-console-CmaDwUfI.js +0 -1
  830. package/dist/assets/volter-sdk-kit-editor-current-view-D8qWFpK-.js +0 -1
  831. package/dist/assets/volter-sdk-kit-editor-document-probe-Db2-eadh.js +0 -1
  832. package/dist/assets/volter-sdk-kit-editor-git-client-DPeSWeR7.js +0 -1
  833. package/dist/assets/volter-sdk-kit-editor-hotkeys-CWlHo3Dq.js +0 -1
  834. package/dist/assets/volter-sdk-kit-editor-lease-BQHejuJ7.js +0 -1
  835. package/dist/assets/volter-sdk-kit-editor-lease-view-GDTMB6Vy.js +0 -1
  836. package/dist/assets/volter-sdk-kit-editor-mode-pmO1flrA.js +0 -1
  837. package/dist/assets/volter-sdk-kit-editor-notifications-DVpgNbN7.js +0 -1
  838. package/dist/assets/volter-sdk-kit-editor-presence-BcS5ndJL.js +0 -1
  839. package/dist/assets/volter-sdk-kit-editor-presentation-activity-CA1IqWXc.js +0 -1
  840. package/dist/assets/volter-sdk-kit-editor-presentation-notice-DbEDigBX.js +0 -1
  841. package/dist/assets/volter-sdk-kit-editor-runtime-CBUuMkNW.js +0 -1
  842. package/dist/assets/volter-sdk-kit-editor-server-response-C-G7z_cX.js +0 -1
  843. package/dist/assets/volter-sdk-kit-editor-session-attribution-C5kXN5Pt.js +0 -1
  844. package/dist/assets/volter-sdk-kit-editor-session-mode-Bp0TVYzH.js +0 -1
  845. package/dist/assets/volter-sdk-kit-editor-state-facets-CacSMrtw.js +0 -1
  846. package/dist/assets/volter-sdk-kit-editor-view-presentation-CmtPgOL3.js +0 -1
  847. package/dist/assets/volter-sdk-kit-environment-images-CCgKwC_f.js +0 -1
  848. package/dist/assets/volter-sdk-kit-eyedropper-session-DEUGSW3y.js +0 -1
  849. package/dist/assets/volter-sdk-kit-files-file-provider-Dq015zNu.js +0 -1
  850. package/dist/assets/volter-sdk-kit-files-project-files-CRUmsj64.js +0 -1
  851. package/dist/assets/volter-sdk-kit-finders-index-DMYWmVDz.js +0 -1
  852. package/dist/assets/volter-sdk-kit-finders-scenes-from-entrypoint-selection-IMUANy-Q.js +0 -1
  853. package/dist/assets/volter-sdk-kit-frame-frame-parts-BHC8Qhep.js +0 -1
  854. package/dist/assets/volter-sdk-kit-framed-document-capture-BTXr1ns8.js +0 -1
  855. package/dist/assets/volter-sdk-kit-game-surface-defaults-ByC_S19H.js +0 -1
  856. package/dist/assets/volter-sdk-kit-gameplay-export-state-8vLhFoqg.js +0 -1
  857. package/dist/assets/volter-sdk-kit-gameplay-replay-B89hoF7n.js +0 -1
  858. package/dist/assets/volter-sdk-kit-gameplay-session-time-BIMlPXez.js +0 -1
  859. package/dist/assets/volter-sdk-kit-gameplay-sessions-BIGSNv4W.js +0 -1
  860. package/dist/assets/volter-sdk-kit-hierarchy-component-marks-Do2Fr9kc.js +0 -1
  861. package/dist/assets/volter-sdk-kit-hierarchy-internals-C3W4IhCf.js +0 -1
  862. package/dist/assets/volter-sdk-kit-hierarchy-kind-icon-G7B0n3y5.js +0 -1
  863. package/dist/assets/volter-sdk-kit-hierarchy-menu-registry-CnLArtIh.js +0 -1
  864. package/dist/assets/volter-sdk-kit-hierarchy-node-rows-BxhOfAty.js +0 -1
  865. package/dist/assets/volter-sdk-kit-hierarchy-panel-view-B0F_lE9E.js +0 -1
  866. package/dist/assets/volter-sdk-kit-hierarchy-projection-DiSPEkht.js +0 -1
  867. package/dist/assets/volter-sdk-kit-hierarchy-row-media-CbfvRhDw.js +0 -1
  868. package/dist/assets/volter-sdk-kit-hierarchy-row-model-BG3MH2i0.js +0 -1
  869. package/dist/assets/volter-sdk-kit-hierarchy-rows-BoYVV4BM.js +0 -1
  870. package/dist/assets/volter-sdk-kit-hierarchy-walk-B1WITZT0.js +0 -1
  871. package/dist/assets/volter-sdk-kit-history-editor-session-BpSS2eCq.js +0 -1
  872. package/dist/assets/volter-sdk-kit-history-history-commands-DpYPaooe.js +0 -1
  873. package/dist/assets/volter-sdk-kit-history-history-delegate-CC36ndAU.js +0 -1
  874. package/dist/assets/volter-sdk-kit-history-history-limit-notices-CuRCkIsU.js +0 -1
  875. package/dist/assets/volter-sdk-kit-history-history-service-BZ2r4UsO.js +0 -1
  876. package/dist/assets/volter-sdk-kit-history-persistence-coordinator-BabhnPdr.js +0 -1
  877. package/dist/assets/volter-sdk-kit-history-project-file-history-DJyrfF-i.js +0 -1
  878. package/dist/assets/volter-sdk-kit-history-project-root-history-backends-CPPI1Q-C.js +0 -1
  879. package/dist/assets/volter-sdk-kit-history-resource-registry-D_FZDVeq.js +0 -1
  880. package/dist/assets/volter-sdk-kit-history-snapshot-store-DXG8sDri.js +0 -1
  881. package/dist/assets/volter-sdk-kit-history-source-history-backend-C9j6Tcs7.js +0 -1
  882. package/dist/assets/volter-sdk-kit-hmr-registration-group-BW8h_rqN.js +0 -1
  883. package/dist/assets/volter-sdk-kit-hmr-stable-react-context-DK8E77z7.js +0 -1
  884. package/dist/assets/volter-sdk-kit-hotkeys-C6LTBp6w.js +0 -1
  885. package/dist/assets/volter-sdk-kit-inference-diagnostics-U4MqgzGp.js +0 -1
  886. package/dist/assets/volter-sdk-kit-initial-project-CsT7shAO.js +0 -1
  887. package/dist/assets/volter-sdk-kit-inspection-active-subject-C4nF3lBr.js +0 -1
  888. package/dist/assets/volter-sdk-kit-inspection-active-surface-9iryi0aN.js +0 -1
  889. package/dist/assets/volter-sdk-kit-inspection-compose-subject-VBalD3jL.js +0 -1
  890. package/dist/assets/volter-sdk-kit-inspection-display-dQlcKD2T.js +0 -1
  891. package/dist/assets/volter-sdk-kit-inspection-document-subject-D_9SBCJn.js +0 -1
  892. package/dist/assets/volter-sdk-kit-inspection-game-subject-vVRfCg63.js +0 -1
  893. package/dist/assets/volter-sdk-kit-inspection-model-CmtP96Yt.js +0 -1
  894. package/dist/assets/volter-sdk-kit-inspection-node-media-1PWWiMnB.js +0 -1
  895. package/dist/assets/volter-sdk-kit-inspection-null-subject-CHmkmoqV.js +0 -1
  896. package/dist/assets/volter-sdk-kit-inspection-serialize-QwJ-RIBv.js +0 -1
  897. package/dist/assets/volter-sdk-kit-inspection-use-active-inspection-DaL1na5Y.js +0 -1
  898. package/dist/assets/volter-sdk-kit-inspector-presentation-JZXRW45s.js +0 -1
  899. package/dist/assets/volter-sdk-kit-inspector-property-grouping-Beab0j-E.js +0 -1
  900. package/dist/assets/volter-sdk-kit-inspector-section-registry-DUHmAmGH.js +0 -1
  901. package/dist/assets/volter-sdk-kit-instance-source-actions-bm8vOJnE.js +0 -1
  902. package/dist/assets/volter-sdk-kit-js-heap-B5vP1pk0.js +0 -1
  903. package/dist/assets/volter-sdk-kit-key-actions-CZdIVYSS.js +0 -1
  904. package/dist/assets/volter-sdk-kit-keymap-presets-DyfuCv1L.js +0 -1
  905. package/dist/assets/volter-sdk-kit-layout-policy-CCwA5cOZ.js +0 -1
  906. package/dist/assets/volter-sdk-kit-light-explorer-model-Dn7MIsU3.js +0 -1
  907. package/dist/assets/volter-sdk-kit-live-canvas-frame-CqdR3bjg.js +0 -1
  908. package/dist/assets/volter-sdk-kit-live-document-BfyRM7Gx.js +0 -1
  909. package/dist/assets/volter-sdk-kit-live-gesture-lock-CLH5XOvs.js +0 -1
  910. package/dist/assets/volter-sdk-kit-live-seam-evidence-Rr0EF7Ie.js +0 -1
  911. package/dist/assets/volter-sdk-kit-live-session-registry-Bq5chqfS.js +0 -1
  912. package/dist/assets/volter-sdk-kit-live-transition-BqvZmj3M.js +0 -1
  913. package/dist/assets/volter-sdk-kit-manifest-project-Dz-tIaCC.js +0 -1
  914. package/dist/assets/volter-sdk-kit-module-fetch-diagnosis-Cm7GUNDI.js +0 -1
  915. package/dist/assets/volter-sdk-kit-mount-failure-report-VckKBE0g.js +0 -1
  916. package/dist/assets/volter-sdk-kit-native-selection-style-DFyWIXzW.js +0 -1
  917. package/dist/assets/volter-sdk-kit-object3d-document-write-policy-NskdH99w.js +0 -1
  918. package/dist/assets/volter-sdk-kit-packaged-runtime-CdCdYjeq.js +0 -1
  919. package/dist/assets/volter-sdk-kit-performance-profiler-BwZxb2wN.js +0 -1
  920. package/dist/assets/volter-sdk-kit-performance-sources-CW46PNKI.js +0 -1
  921. package/dist/assets/volter-sdk-kit-photograph-notice-BYqkIM4V.js +0 -1
  922. package/dist/assets/volter-sdk-kit-play-boot-phase-Dzwqv3D1.js +0 -1
  923. package/dist/assets/volter-sdk-kit-play-camera-flight-DVQsN2rU.js +0 -1
  924. package/dist/assets/volter-sdk-kit-presentation-surface-dRR8vU_U.js +0 -1
  925. package/dist/assets/volter-sdk-kit-product-command-C8LM4ZGo.js +0 -1
  926. package/dist/assets/volter-sdk-kit-project-adapter-ispDkjSY.js +0 -1
  927. package/dist/assets/volter-sdk-kit-project-asset-refresh-uxC6Eshd.js +0 -1
  928. package/dist/assets/volter-sdk-kit-project-asset-roots-DR1YQ-l8.js +0 -1
  929. package/dist/assets/volter-sdk-kit-project-local-state-DoKZqGiv.js +0 -1
  930. package/dist/assets/volter-sdk-kit-project-manager-CbGXLUiQ.js +0 -1
  931. package/dist/assets/volter-sdk-kit-project-module-changes-BeQGAaZI.js +0 -1
  932. package/dist/assets/volter-sdk-kit-project-module-split-EroN_dmL.js +0 -1
  933. package/dist/assets/volter-sdk-kit-project-provenance-BcG5vk_U.js +0 -1
  934. package/dist/assets/volter-sdk-kit-project-ready-BIM5KwVl.js +0 -1
  935. package/dist/assets/volter-sdk-kit-project-shape-DTzM5AZp.js +0 -1
  936. package/dist/assets/volter-sdk-kit-project-tools-Bl29ZjLy.js +0 -1
  937. package/dist/assets/volter-sdk-kit-readiness-CQZbW2EN.js +0 -1
  938. package/dist/assets/volter-sdk-kit-renderer-resource-counts-B8SuN0f8.js +0 -1
  939. package/dist/assets/volter-sdk-kit-reported-play-state-CBIohvAi.js +0 -1
  940. package/dist/assets/volter-sdk-kit-resolve-contributed-command-CMfd_rdI.js +0 -1
  941. package/dist/assets/volter-sdk-kit-resolve-relative-specifier-BU7dyZXI.js +0 -1
  942. package/dist/assets/volter-sdk-kit-retained-document-states-CAvpFHQ9.js +0 -1
  943. package/dist/assets/volter-sdk-kit-scene-document-plan-BfdHESEZ.js +0 -1
  944. package/dist/assets/volter-sdk-kit-scene-live-open-DC0HsI96.js +0 -1
  945. package/dist/assets/volter-sdk-kit-scoped-game-css-CPGETy86.js +0 -1
  946. package/dist/assets/volter-sdk-kit-served-url-D_yrrv_1.js +0 -1
  947. package/dist/assets/volter-sdk-kit-session-close-YNH4zdyj.js +0 -1
  948. package/dist/assets/volter-sdk-kit-session-tombstone-CxGNCCDu.js +0 -1
  949. package/dist/assets/volter-sdk-kit-settings-settings-provider-BhPpKMj9.js +0 -1
  950. package/dist/assets/volter-sdk-kit-settings-store-Ctmz-9mi.js +0 -1
  951. package/dist/assets/volter-sdk-kit-shell-store-DyIjZ3x9.js +0 -1
  952. package/dist/assets/volter-sdk-kit-shell-store-door-CxpNnVpt.js +0 -1
  953. package/dist/assets/volter-sdk-kit-source-conflict-gJ1ttdYG.js +0 -1
  954. package/dist/assets/volter-sdk-kit-stage-context-BXWdaZZH.js +0 -1
  955. package/dist/assets/volter-sdk-kit-stage-invalidation-DoBa46UC.js +0 -1
  956. package/dist/assets/volter-sdk-kit-stage-store-registry-CSE-ryJ8.js +0 -1
  957. package/dist/assets/volter-sdk-kit-startup-failure-D1bKtcl4.js +0 -1
  958. package/dist/assets/volter-sdk-kit-state-report-deferral-XUgXV_Hc.js +0 -1
  959. package/dist/assets/volter-sdk-kit-storage-host-files-storage-DJITrBus.js +0 -1
  960. package/dist/assets/volter-sdk-kit-storage-http-storage-BK74iz56.js +0 -1
  961. package/dist/assets/volter-sdk-kit-storage-index-BZ0CScx0.js +0 -1
  962. package/dist/assets/volter-sdk-kit-storage-mem-storage-TiCBd4i3.js +0 -1
  963. package/dist/assets/volter-sdk-kit-storage-path-lock-Nmp75rjg.js +0 -1
  964. package/dist/assets/volter-sdk-kit-storage-paths-CNITX0tV.js +0 -1
  965. package/dist/assets/volter-sdk-kit-stories-StoryPreviewMount-D_9XN2LZ.js +0 -1
  966. package/dist/assets/volter-sdk-kit-stories-compose-project-stories-B96LV2aF.js +0 -1
  967. package/dist/assets/volter-sdk-kit-stories-prefabs-finder-BPS7TeVd.js +0 -1
  968. package/dist/assets/volter-sdk-kit-stories-prefabs-from-stories-B6SW9DUA.js +0 -1
  969. package/dist/assets/volter-sdk-kit-stories-project-story-regions-KM7bfb3W.js +0 -1
  970. package/dist/assets/volter-sdk-kit-stories-scope-By69yhUz.js +0 -1
  971. package/dist/assets/volter-sdk-kit-stories-story-capture-DloxZzrT.js +0 -1
  972. package/dist/assets/volter-sdk-kit-stories-story-declared-medium-CEEIRPOE.js +0 -1
  973. package/dist/assets/volter-sdk-kit-stories-story-discovery-BT3_14Xa.js +0 -1
  974. package/dist/assets/volter-sdk-kit-stories-story-dom-runtime-CLzsmM--.js +0 -1
  975. package/dist/assets/volter-sdk-kit-stories-story-grouping-DxBXFgHu.js +0 -1
  976. package/dist/assets/volter-sdk-kit-stories-story-presentation-DfJDlcUw.js +0 -1
  977. package/dist/assets/volter-sdk-kit-stories-story-registry-CAei4tIR.js +0 -1
  978. package/dist/assets/volter-sdk-kit-story-document-openers-B8NxCN3d.js +0 -1
  979. package/dist/assets/volter-sdk-kit-story-thumbnails-Dlm0eWNt.js +0 -1
  980. package/dist/assets/volter-sdk-kit-surface-keyboard-RaaImMOt.js +0 -1
  981. package/dist/assets/volter-sdk-kit-surface-state-CGPBfFdm.js +0 -1
  982. package/dist/assets/volter-sdk-kit-system-seam-evidence-BaXb7RCG.js +0 -1
  983. package/dist/assets/volter-sdk-kit-tab-census-Bk74bOKT.js +0 -1
  984. package/dist/assets/volter-sdk-kit-tab-lifecycle-client-CkTgM6Nz.js +0 -1
  985. package/dist/assets/volter-sdk-kit-theme-library-DSPv1Wns.js +0 -1
  986. package/dist/assets/volter-sdk-kit-theme-preference-BQNfH5vF.js +0 -1
  987. package/dist/assets/volter-sdk-kit-three-viewport-presentation-MYyhHeNE.js +0 -1
  988. package/dist/assets/volter-sdk-kit-tool-contribution-play-BntnYdSm.js +0 -1
  989. package/dist/assets/volter-sdk-kit-tool-loader-BsJw0vnd.js +0 -1
  990. package/dist/assets/volter-sdk-kit-transform-mode-request-C3PuFjVc.js +0 -1
  991. package/dist/assets/volter-sdk-kit-transient-hint-CVtQElA_.js +0 -1
  992. package/dist/assets/volter-sdk-kit-transport-strip-CfaFs3Yu.js +0 -1
  993. package/dist/assets/volter-sdk-kit-ui-source-file-region-resolver-DPXAGySM.js +0 -1
  994. package/dist/assets/volter-sdk-kit-ui-source-inspect-6GqYurA1.js +0 -1
  995. package/dist/assets/volter-sdk-kit-ui-source-source-write-backend-C-bGiG4D.js +0 -1
  996. package/dist/assets/volter-sdk-kit-ui-source-tier-source-write-backend-Ohf_RRv4.js +0 -1
  997. package/dist/assets/volter-sdk-kit-user-local-state-etm9FY2T.js +0 -1
  998. package/dist/assets/volter-sdk-kit-viewport-activation-timings-BcCqcD6V.js +0 -1
  999. package/dist/assets/volter-sdk-kit-viewport-editor-controls-B4gRjrxY.js +0 -1
  1000. package/dist/assets/volter-sdk-kit-viewport-presentation-Dcr3UwqV.js +0 -1
  1001. package/dist/assets/volter-sdk-kit-viewport-surface-status-7OdWYECT.js +0 -1
  1002. package/dist/assets/volter-sdk-kit-wait-until-Dh_onDNv.js +0 -1
  1003. package/dist/assets/volter-sdk-kit-worker-call-metrics-TJJbr4dU.js +0 -1
  1004. package/dist/assets/volter-sdk-kit-workspace-areas-Ds-xVOwK.js +0 -1
  1005. package/dist/assets/volter-sdk-kit-workspace-aux-commands-tOC4yQ8R.js +0 -1
  1006. package/dist/assets/volter-sdk-kit-workspace-available-documents-Dmk2fy2F.js +0 -1
  1007. package/dist/assets/volter-sdk-kit-workspace-core-utilities-BQyYzIc4.js +0 -1
  1008. package/dist/assets/volter-sdk-kit-workspace-document-ids-DEcnxFIB.js +0 -1
  1009. package/dist/assets/volter-sdk-kit-workspace-document-registry-C4HVUV-2.js +0 -1
  1010. package/dist/assets/volter-sdk-kit-workspace-document-restore-BWxTnjs9.js +0 -1
  1011. package/dist/assets/volter-sdk-kit-workspace-host-commands-B_tkERxo.js +0 -1
  1012. package/dist/assets/volter-sdk-kit-workspace-persistence-gate-rpCO_5KT.js +0 -1
  1013. package/dist/assets/volter-sdk-kit-workspace-play-utilities-Dvtn1V7m.js +0 -1
  1014. package/dist/assets/volter-sdk-kit-workspace-presets-DbQTAm5l.js +0 -1
  1015. package/dist/assets/volter-sdk-kit-workspace-regions-CjWoSqJ6.js +0 -1
  1016. package/dist/assets/volter-sdk-kit-workspace-static-panels-CKvedP-8.js +0 -1
  1017. package/dist/assets/volter-sdk-kit-workspace-status-registry-VjaCrPdJ.js +0 -1
  1018. package/dist/assets/volter-sdk-kit-workspace-storage-ByhjnSsr.js +0 -1
  1019. package/dist/assets/volter-sdk-kit-workspace-style-DEf6yZvO.js +0 -1
  1020. package/dist/assets/volter-sdk-kit-workspace-utility-commands-ChNufExZ.js +0 -1
  1021. package/dist/assets/volter-sdk-kit-workspace-utility-registry-Bn_McKXG.js +0 -1
  1022. package/dist/assets/volter-sdk-kit-world-adoption-HGJC0CsF.js +0 -1
  1023. package/dist/assets/volter-sdk-kit-world-canvas-viewport-state-ChDvLibG.js +0 -1
  1024. package/dist/assets/volter-sdk-kit-world-document-routing-DEXNxBk9.js +0 -1
  1025. package/dist/assets/volter-sdk-kit-world-pan-state-Bi2Lw5-Y.js +0 -1
  1026. package/dist/assets/volter-sdk-kit-write-pipe-BvZqw0Hp.js +0 -1
  1027. package/dist/assets/volter-sdk-layout-arrangements-Cr2uRsko.js +0 -1
  1028. package/dist/assets/volter-sdk-layouts-Bnykz5Ai.js +0 -1
  1029. package/dist/assets/volter-sdk-selection-CDQMMCEq.js +0 -1
  1030. package/dist/assets/volter-sdk-session-command-table-CbXHPwA2.js +0 -1
  1031. package/dist/assets/volter-sdk-session-editor-brand-DDQ18zLq.js +0 -1
  1032. package/dist/assets/volter-sdk-session-editor-compatibility-NOZDDZK_.js +0 -1
  1033. package/dist/assets/volter-sdk-session-editor-control-protocol-D6XiYb-A.js +0 -1
  1034. package/dist/assets/volter-sdk-session-entrypoint-selection-readers-Cdx8JIbN.js +0 -1
  1035. package/dist/assets/volter-sdk-session-game-css-scope-CB0ldJQ-.js +0 -1
  1036. package/dist/assets/volter-sdk-session-project-module-url-CJcubWJl.js +0 -1
  1037. package/dist/assets/volter-sdk-session-relative-path-guard-DQps9oYM.js +0 -1
  1038. package/dist/assets/volter-sdk-session-tool-contribution-convention-TjVNa6uv.js +0 -1
  1039. package/dist/assets/volter-sdk-types-PEqAjzBK.js +0 -1
  1040. package/dist/assets/volter-sdk-views-C_kZ1s6a.js +0 -1
  1041. package/dist/assets/volter-sdk-widgets-design-system-DoUKGljE.js +0 -1
  1042. package/dist/assets/volter-sdk-widgets-editor-appearance-9oVjYySg.js +0 -1
  1043. package/dist/assets/volter-sdk-widgets-editor-material-Vd-L9KgB.js +0 -1
  1044. package/dist/assets/volter-sdk-widgets-icon-set-registry-CxCcm-c1.js +0 -1
  1045. package/dist/assets/volter-sdk-widgets-index-CLvQfhRY.js +0 -1
  1046. package/dist/assets/volter-sdk-widgets-inspector-widgets-AlignmentGrid-BkERE2Jf.js +0 -1
  1047. package/dist/assets/volter-sdk-widgets-inspector-widgets-AssetSlotPicker-CWl1Ys5V.js +0 -1
  1048. package/dist/assets/volter-sdk-widgets-inspector-widgets-BorderEditor-CnzME7tq.js +0 -1
  1049. package/dist/assets/volter-sdk-widgets-inspector-widgets-ColorPicker-gDJtjosl.js +0 -1
  1050. package/dist/assets/volter-sdk-widgets-inspector-widgets-CurveEditor-BKLsGegH.js +0 -1
  1051. package/dist/assets/volter-sdk-widgets-inspector-widgets-FilterEditor-D7BNtJvk.js +0 -1
  1052. package/dist/assets/volter-sdk-widgets-inspector-widgets-FontPicker-CknrzEEc.js +0 -1
  1053. package/dist/assets/volter-sdk-widgets-inspector-widgets-GradientEditor--PUuRL_J.js +0 -1
  1054. package/dist/assets/volter-sdk-widgets-inspector-widgets-ScrubbableInput-BF-74OJ0.js +0 -1
  1055. package/dist/assets/volter-sdk-widgets-inspector-widgets-ShadowEditor-BJDkmQqr.js +0 -1
  1056. package/dist/assets/volter-sdk-widgets-inspector-widgets-color-utils-CC5e_wbs.js +0 -1
  1057. package/dist/assets/volter-sdk-widgets-inspector-widgets-curve-utils-BM0n4u4C.js +0 -1
  1058. package/dist/assets/volter-sdk-widgets-inspector-widgets-index-CAlsfatW.js +0 -1
  1059. package/dist/assets/volter-sdk-widgets-inspector-widgets-shared-Dr8Lr1KG.js +0 -1
  1060. package/dist/assets/volter-sdk-widgets-interactive-edit-scope-CC8fzEhK.js +0 -1
  1061. package/dist/assets/volter-sdk-widgets-patterns-Dialog-CMACvNwQ.js +0 -1
  1062. package/dist/assets/volter-sdk-widgets-patterns-Fields-CorJktC6.js +0 -1
  1063. package/dist/assets/volter-sdk-widgets-patterns-List-BS4Fm2PV.js +0 -1
  1064. package/dist/assets/volter-sdk-widgets-patterns-StateSurface-C9Uzxq1y.js +0 -1
  1065. package/dist/assets/volter-sdk-widgets-patterns-Surfaces-BMMqAg8s.js +0 -1
  1066. package/dist/assets/volter-sdk-widgets-patterns-Tabs-BApaduI4.js +0 -1
  1067. package/dist/assets/volter-sdk-widgets-patterns-Toolbar-CR9ti-h7.js +0 -1
  1068. package/dist/assets/volter-sdk-widgets-patterns-Tree-Cm_EQKv7.js +0 -1
  1069. package/dist/assets/volter-sdk-widgets-primitives-AnchoredMenu-C2WFo6cM.js +0 -1
  1070. package/dist/assets/volter-sdk-widgets-primitives-Button-Dk4KKaq8.js +0 -1
  1071. package/dist/assets/volter-sdk-widgets-primitives-ColorInput-cXDWaFqp.js +0 -1
  1072. package/dist/assets/volter-sdk-widgets-primitives-DraftTextInput-1KGMi_Rl.js +0 -1
  1073. package/dist/assets/volter-sdk-widgets-primitives-EditorIcon-j_sJkYTv.js +0 -1
  1074. package/dist/assets/volter-sdk-widgets-primitives-FormControls-CtgByRjD.js +0 -1
  1075. package/dist/assets/volter-sdk-widgets-primitives-HoverPreview-JpYZe_XQ.js +0 -1
  1076. package/dist/assets/volter-sdk-widgets-primitives-JsonInput-BG-yXU_y.js +0 -1
  1077. package/dist/assets/volter-sdk-widgets-primitives-Layout-CndjSS77.js +0 -1
  1078. package/dist/assets/volter-sdk-widgets-primitives-Menu-BIutSLlq.js +0 -1
  1079. package/dist/assets/volter-sdk-widgets-primitives-NumberInput-BUDuaSC3.js +0 -1
  1080. package/dist/assets/volter-sdk-widgets-primitives-Panel-BNXTITcJ.js +0 -1
  1081. package/dist/assets/volter-sdk-widgets-primitives-SectionHeader-DWMBw8Qg.js +0 -1
  1082. package/dist/assets/volter-sdk-widgets-primitives-Text-Cl_Lnbtl.js +0 -1
  1083. package/dist/assets/volter-sdk-widgets-primitives-ThemeRootPortal-A4QZ8r01.js +0 -1
  1084. package/dist/assets/volter-sdk-widgets-primitives-Tooltip-B-w_mbeY.js +0 -1
  1085. package/dist/assets/volter-sdk-widgets-primitives-Vec3Input-OekffUMN.js +0 -1
  1086. package/dist/assets/volter-sdk-widgets-primitives-banner-tones-D_B3XSIS.js +0 -1
  1087. package/dist/assets/volter-sdk-widgets-primitives-clamp-to-viewport-o_Ek7Meg.js +0 -1
  1088. package/dist/assets/volter-sdk-widgets-primitives-editor-icons-RYnsVO3a.js +0 -1
  1089. package/dist/assets/volter-sdk-widgets-primitives-panel-header-styles-BbG-knlC.js +0 -1
  1090. package/dist/assets/volter-sdk-widgets-theme-BEKMFghe.js +0 -1
  1091. package/dist/assets/volter-sdk-widgets-z-index-B2PEmd8v.js +0 -1
  1092. package/dist/assets/volter-shared-fontawesome-YzlKiPbn.js +0 -1
  1093. package/dist/assets/volter-shared-jsx-dev-runtime-DjRoguSG.js +0 -1
  1094. package/dist/assets/volter-shared-jsx-runtime-CuosbL2-.js +0 -1
  1095. package/dist/assets/volter-shared-react-B2G7k3gj.js +0 -1
  1096. package/dist/assets/volter-shared-react-dom-client-Bn--udp0.js +0 -1
  1097. package/dist/assets/volter-shared-react-dom-zuFYLViM.js +0 -1
  1098. package/dist/assets/volter-shared-three-Bd-6jvNx.js +0 -1
  1099. package/dist/assets/worker-ViyXMDMg.js +0 -8
@@ -0,0 +1,13 @@
1
+ import{h2 as V,x as xt,ih as Et,ii as dt,n as b,j as u,dv as Ct,ij as ce,dN as X,ik as pe,il as Ot,im as At,t as U,io as Rt,cr as Q,ev as Mt,B as De,dY as Re,ip as $t,aw as ut,ax as je,bC as Pt,aE as se,gF as Tt,iq as xe,aJ as Ee,ie as te,ir as Ve,c0 as Ft,c3 as Nt,gv as Ge,is as Lt,aA as It,it as Bt,iu as We,aO as Dt,iv as Vt,iw as ze,ix as Gt}from"./volter-sdk-BlXl30lA.js";import{o as Wt,i as he,j as ue,k as ge,l as zt,m as Me,g as He,p as Ht,q as qt,w as qe,t as Ut,u as Se,v as Kt,x as pt,y as ft,z as bt,A as Jt,B as Yt,C as Ue,s as mt,D as Xt,E as Qt,b as Ke,F as Zt,G as Je,H as er,I as tr,J as rr}from"./blender-runtime-host-BZjXBC0J.js";import{t as nr,v as ne,o as _e,s as ht,a as fe}from"./object3d-document-session-registry-CXwx1fxa.js";import{r as Ye,b as or,a as ar,w as sr}from"./blender-properties-model-CuakoQCS.js";import{g as lr,h as ir,n as cr,b as ie}from"./play-mode-D-32KLOy.js";import{aR as dr,aT as Xe,aS as ur,a_ as pr,au as fr}from"./three.module-FwjK5L7x.js";import"./output-pass-C2Jin9Z-.js";import"./linear-resolve-su8rbE2x.js";function gt(e){return`blender-${e.toLowerCase().replace(/_/g,"-")}`}function re(e){return e?.type==="TSE_SOME_ID"&&e.struct==="Object"&&e.object!==void 0}function Qe(e){if(e.struct)return e.struct}function Ze(e,t){return{id:e.id,label:e.name,role:"entity",kind:gt(e.icon),...Qe(e)?{typeLabel:Qe(e)}:{},parentId:t,childIds:e.children.map(o=>o.id),defaultExpanded:e.expanded}}const br={transform:!0,inspectorFields:!1,persist:!0},ve=new Set;let yt=0;const $e=new Set;function et(){queueMicrotask(()=>{yt++;for(const e of $e)e()})}function mr(e){return $e.add(e),()=>{$e.delete(e)}}function tt(){return yt}function hr(e){for(const t of ve)if(t.documentId===e||t.documentId===`object3d-document:${e}`)return t;return ve.values().next().value??null}const gr=()=>({position:[0,0,0],rotation:[0,0,0,1],scale:[1,1,1]});function rt(e,t){e.updateWorldMatrix(!0,!1);const o=t.matrixWorld.clone().invert().multiply(e.matrixWorld).elements;return[[o[0],o[1],o[2],o[3]],[o[4],o[5],o[6],o[7]],[o[8],o[9],o[10],o[11]],[o[12],o[13],o[14],o[15]]]}function be(e,t){return`${e} needs a file, and this editor has no door to ask for one: the host's file door (\`EditorHost.files\`, \`@volter/editor-sdk/host\`) reads and writes project-relative paths and has no file-picker member, so there is nothing to open the workbench's own dialog through. Blender's row opens a file browser; run without one, the engine answers "${t}".`}const yr=[{kind:"mesh.plane",label:"Plane",group:"Mesh",call:"mesh.primitive_plane_add"},{kind:"mesh.cube",label:"Cube",group:"Mesh",call:"mesh.primitive_cube_add"},{kind:"mesh.circle",label:"Circle",group:"Mesh",call:"mesh.primitive_circle_add"},{kind:"mesh.uv-sphere",label:"UV Sphere",group:"Mesh",call:"mesh.primitive_uv_sphere_add"},{kind:"mesh.ico-sphere",label:"Ico Sphere",group:"Mesh",call:"mesh.primitive_ico_sphere_add"},{kind:"mesh.cylinder",label:"Cylinder",group:"Mesh",call:"mesh.primitive_cylinder_add"},{kind:"mesh.cone",label:"Cone",group:"Mesh",call:"mesh.primitive_cone_add"},{kind:"mesh.torus",label:"Torus",group:"Mesh",call:"mesh.primitive_torus_add"},{kind:"mesh.grid",label:"Grid",group:"Mesh",call:"mesh.primitive_grid_add",separatorBefore:!0},{kind:"mesh.monkey",label:"Monkey",group:"Mesh",call:"mesh.primitive_monkey_add"},{kind:"curve.bezier",label:"Bézier",group:"Curve",call:"curve.primitive_bezier_curve_add"},{kind:"curve.bezier-circle",label:"Circle",group:"Curve",call:"curve.primitive_bezier_circle_add"},{kind:"curve.nurbs-curve",label:"Nurbs Curve",group:"Curve",call:"curve.primitive_nurbs_curve_add",separatorBefore:!0},{kind:"curve.nurbs-circle",label:"Nurbs Circle",group:"Curve",call:"curve.primitive_nurbs_circle_add"},{kind:"curve.path",label:"Path",group:"Curve",call:"curve.primitive_nurbs_path_add"},{kind:"curve.empty-hair",label:"Empty Hair",group:"Curve",call:"object.curves_empty_hair_add",separatorBefore:!0},{kind:"curve.fur",label:"Fur",group:"Curve",call:"object.quick_fur"},{kind:"surface.nurbs-curve",label:"Nurbs Curve",group:"Surface",call:"surface.primitive_nurbs_surface_curve_add"},{kind:"surface.nurbs-circle",label:"Nurbs Circle",group:"Surface",call:"surface.primitive_nurbs_surface_circle_add"},{kind:"surface.nurbs-surface",label:"Nurbs Surface",group:"Surface",call:"surface.primitive_nurbs_surface_surface_add"},{kind:"surface.nurbs-cylinder",label:"Nurbs Cylinder",group:"Surface",call:"surface.primitive_nurbs_surface_cylinder_add"},{kind:"surface.nurbs-sphere",label:"Nurbs Sphere",group:"Surface",call:"surface.primitive_nurbs_surface_sphere_add"},{kind:"surface.nurbs-torus",label:"Nurbs Torus",group:"Surface",call:"surface.primitive_nurbs_surface_torus_add"},{kind:"metaball.ball",label:"Ball",group:"Metaball",call:"object.metaball_add, type='BALL'"},{kind:"metaball.capsule",label:"Capsule",group:"Metaball",call:"object.metaball_add, type='CAPSULE'"},{kind:"metaball.plane",label:"Plane",group:"Metaball",call:"object.metaball_add, type='PLANE'"},{kind:"metaball.ellipsoid",label:"Ellipsoid",group:"Metaball",call:"object.metaball_add, type='ELLIPSOID'"},{kind:"metaball.cube",label:"Cube",group:"Metaball",call:"object.metaball_add, type='CUBE'"},{kind:"text",label:"Text",group:null,call:"object.text_add"},{kind:"point-cloud",label:"Point Cloud",group:null,call:"object.pointcloud_random_add"},{kind:"volume.import",label:"Import OpenVDB...",group:"Volume",call:"object.volume_import",refusal:`${be("Importing an OpenVDB volume","CANCELLED, with nothing created")} This build also has no OpenVDB at all (\`bpy.app.build_options.openvdb\` is False), so a file would not be read even with a picker.`},{kind:"volume.empty",label:"Empty",group:"Volume",call:"object.volume_add"},{kind:"grease-pencil.blank",label:"Blank",group:"Grease Pencil",call:"object.grease_pencil_add, type='EMPTY'"},{kind:"grease-pencil.stroke",label:"Stroke",group:"Grease Pencil",call:"object.grease_pencil_add, type='STROKE'"},{kind:"grease-pencil.monkey",label:"Monkey",group:"Grease Pencil",call:"object.grease_pencil_add, type='MONKEY'"},{kind:"grease-pencil.lineart-scene",label:"Scene Line Art",group:"Grease Pencil",call:"object.grease_pencil_add, type='LINEART_SCENE'",separatorBefore:!0},{kind:"grease-pencil.lineart-collection",label:"Collection Line Art",group:"Grease Pencil",call:"object.grease_pencil_add, type='LINEART_COLLECTION'"},{kind:"grease-pencil.lineart-object",label:"Object Line Art",group:"Grease Pencil",call:"object.grease_pencil_add, type='LINEART_OBJECT'"},{kind:"armature",label:"Armature",group:null,call:"object.armature_add"},{kind:"lattice.lattice",label:"Lattice",group:"Lattice",call:"object.add, type='LATTICE'"},{kind:"lattice.deform-selected",label:"Lattice Deform Selected",group:"Lattice",call:"object.lattice_add_to_selected"},{kind:"empty.plain-axes",label:"Plain Axes",group:"Empty",call:"object.empty_add, type='PLAIN_AXES'"},{kind:"empty.arrows",label:"Arrows",group:"Empty",call:"object.empty_add, type='ARROWS'"},{kind:"empty.single-arrow",label:"Single Arrow",group:"Empty",call:"object.empty_add, type='SINGLE_ARROW'"},{kind:"empty.circle",label:"Circle",group:"Empty",call:"object.empty_add, type='CIRCLE'"},{kind:"empty.cube",label:"Cube",group:"Empty",call:"object.empty_add, type='CUBE'"},{kind:"empty.sphere",label:"Sphere",group:"Empty",call:"object.empty_add, type='SPHERE'"},{kind:"empty.cone",label:"Cone",group:"Empty",call:"object.empty_add, type='CONE'"},{kind:"image.reference",label:"Reference...",group:"Image",call:"object.empty_image_add, background=False",refusal:be("A reference image","poll() failed, context is incorrect / Please select at least one image")},{kind:"image.background",label:"Background...",group:"Image",call:"object.empty_image_add, background=True",refusal:be("A background image","poll() failed, context is incorrect / Please select at least one image")},{kind:"image.mesh-plane",label:"Mesh Plane...",group:"Image",call:"image.import_as_mesh_planes",refusal:be("An image as a mesh plane","CANCELLED, with nothing created")},{kind:"image.empty-image",label:"Empty Image",group:"Image",call:"object.empty_add, type='IMAGE'"},{kind:"light.point",label:"Point",group:"Light",call:"object.light_add, type='POINT'"},{kind:"light.sun",label:"Sun",group:"Light",call:"object.light_add, type='SUN'"},{kind:"light.spot",label:"Spot",group:"Light",call:"object.light_add, type='SPOT'"},{kind:"light.area",label:"Area",group:"Light",call:"object.light_add, type='AREA'"},{kind:"light-probe.sphere",label:"Sphere",group:"Light Probe",call:"object.lightprobe_add, type='SPHERE'"},{kind:"light-probe.plane",label:"Plane",group:"Light Probe",call:"object.lightprobe_add, type='PLANE'"},{kind:"light-probe.volume",label:"Volume",group:"Light Probe",call:"object.lightprobe_add, type='VOLUME'"},{kind:"camera",label:"Camera",group:null,call:"object.camera_add"},{kind:"speaker",label:"Speaker",group:null,call:"object.speaker_add"},{kind:"force-field.force",label:"Force",group:"Force Field",call:"object.effector_add, type='FORCE'"},{kind:"force-field.wind",label:"Wind",group:"Force Field",call:"object.effector_add, type='WIND'"},{kind:"force-field.vortex",label:"Vortex",group:"Force Field",call:"object.effector_add, type='VORTEX'"},{kind:"force-field.magnetic",label:"Magnetic",group:"Force Field",call:"object.effector_add, type='MAGNET'"},{kind:"force-field.harmonic",label:"Harmonic",group:"Force Field",call:"object.effector_add, type='HARMONIC'"},{kind:"force-field.charge",label:"Charge",group:"Force Field",call:"object.effector_add, type='CHARGE'"},{kind:"force-field.lennard-jones",label:"Lennard-Jones",group:"Force Field",call:"object.effector_add, type='LENNARDJ'"},{kind:"force-field.texture",label:"Texture",group:"Force Field",call:"object.effector_add, type='TEXTURE'"},{kind:"force-field.curve-guide",label:"Curve Guide",group:"Force Field",call:"object.effector_add, type='GUIDE'"},{kind:"force-field.boid",label:"Boid",group:"Force Field",call:"object.effector_add, type='BOID'"},{kind:"force-field.turbulence",label:"Turbulence",group:"Force Field",call:"object.effector_add, type='TURBULENCE'"},{kind:"force-field.drag",label:"Drag",group:"Force Field",call:"object.effector_add, type='DRAG'"},{kind:"force-field.fluid-flow",label:"Fluid Flow",group:"Force Field",call:"object.effector_add, type='FLUID'"}],jr="collection-instance:";function _r(){const e=new Map;for(const t of ue().byId.values()){if(t.type!=="TSE_LAYER_COLLECTION")continue;const o=t.data;o===void 0||!o.startsWith("bpy.data.collections[")||e.has(t.name)||e.set(t.name,{kind:`${jr}${t.name}`,label:t.name,group:"Collection Instance",call:`object.collection_instance_add, collection=${le(t.name)}`})}return[...e.values()]}function ye(){return[...yr,..._r()]}function vr(e){const[t,...o]=e.call.split(", ");return`bpy.ops.${t}(${o.join(", ")})`}function le(e){return JSON.stringify(e)}const wr={"curve.primitive_bezier_circle_add":"Add Bézier Circle","curve.primitive_bezier_curve_add":"Add Bézier","curve.primitive_nurbs_circle_add":"Add Nurbs Circle","curve.primitive_nurbs_curve_add":"Add Nurbs Curve","curve.primitive_nurbs_path_add":"Add Path","image.import_as_mesh_planes":"Import Images as Planes","mesh.primitive_circle_add":"Add Circle","mesh.primitive_cone_add":"Add Cone","mesh.primitive_cube_add":"Add Cube","mesh.primitive_cylinder_add":"Add Cylinder","mesh.primitive_grid_add":"Add Grid","mesh.primitive_ico_sphere_add":"Add Ico Sphere","mesh.primitive_monkey_add":"Add Monkey","mesh.primitive_plane_add":"Add Plane","mesh.primitive_torus_add":"Add Torus","mesh.primitive_uv_sphere_add":"Add UV Sphere","object.armature_add":"Add Armature","object.camera_add":"Add Camera","object.collection_add":"Add to Collection","object.collection_instance_add":"Add Collection Instance","object.constraint_add":"Add Constraint","object.curves_empty_hair_add":"Add Empty Curves","object.curves_random_add":"Add Random Curves","object.data_instance_add":"Add Object Data Instance","object.delete":"Delete","object.duplicate":"Duplicate Objects","object.effector_add":"Add Effector","object.empty_add":"Add Empty","object.empty_image_add":"Add Empty Image/Drop Image to Empty","object.grease_pencil_add":"Add Grease Pencil","object.grease_pencil_dash_modifier_segment_add":"Add Segment","object.grease_pencil_time_modifier_segment_add":"Add Segment","object.lattice_add_to_selected":"Add Lattice Deformer","object.light_add":"Add Light","object.lightprobe_add":"Add Light Probe","object.location_clear":"Clear Location","object.material_slot_add":"Add Material Slot","object.metaball_add":"Add Metaball","object.modifier_add":"Add Modifier","object.origin_set":"Set Origin","object.particle_system_add":"Add Particle System Slot","object.pointcloud_random_add":"Add Point Cloud","object.quick_fur":"Quick Fur","object.rotation_clear":"Clear Rotation","object.scale_clear":"Clear Scale","object.shaderfx_add":"Add Effect","object.shape_key_add":"Add Shape Key","object.speaker_add":"Add Speaker","object.text_add":"Add Text","object.transform_apply":"Apply Object Transform","object.vertex_group_add":"Add Vertex Group","object.volume_add":"Add Volume","object.volume_import":"Import OpenVDB Volume","surface.primitive_nurbs_surface_circle_add":"Add Surface Circle","surface.primitive_nurbs_surface_curve_add":"Add Surface Curve","surface.primitive_nurbs_surface_cylinder_add":"Add Surface Cylinder","surface.primitive_nurbs_surface_sphere_add":"Add Surface Sphere","surface.primitive_nurbs_surface_surface_add":"Add Surface Patch","surface.primitive_nurbs_surface_torus_add":"Add Surface Torus"};function Sr(e){const t=/bpy\.ops\.([a-z_]+\.[a-z0-9_]+)\(/.exec(e)?.[1];return t===void 0?void 0:wr[t]}async function de(e,t){const o=["before = {o.name for o in bpy.data.objects}",e,"made = [o.name for o in bpy.data.objects if o.name not in before]",'print("\\n".join(made))'].join(`
2
+ `),s=await Se(o,!0,t??Sr(e));return s.error!==null?{made:[],error:s.error}:{made:s.result.split(`
3
+ `).map(p=>p.trim()).filter(p=>p.length>0),error:null}}async function kr(e,t){const o=[`_sel = {${e.map(le).join(", ")}}`,"_vl = bpy.context.view_layer","for _o in _vl.objects:"," _o.select_set(_o.name in _sel)",...t===null?[]:[`_vl.objects.active = bpy.data.objects.get(${le(t)})`]].join(`
4
+ `),s=await Se(o,!1);s.error!==null&&V().console.error(`Blender refused the selection write: ${s.error}`,"blender-outliner")}async function Ce(e,t){if(e.length===0)return{destination:"Nothing is selected, so there was nothing to run it on.",persisted:!1};const o=[`targets = [bpy.data.objects[n] for n in [${e.map(le).join(", ")}]]`,"with bpy.context.temp_override(selected_objects=targets, selected_editable_objects=targets, active_object=targets[0], object=targets[0]):",` ${t}`].join(`
5
+ `),{error:s}=await de(o);return s!==null?{destination:s,persisted:!1}:(await ge(e),{destination:`Blender — ${t}; the session saves the .blend`,persisted:!0})}const xr={source:"document",label:"blender",detail:"These rows are Blender's own View Layer tree, read from the engine through RNA. Editing the model is a bpy call; the eye and render columns write the engine directly."},Er="This collection is excluded from the view layer (LayerCollection.exclude), so its viewport visibility is not what is hiding it. Clear the Exclude checkbox on this row first.";function jt(e){return({defaultAdapter:t})=>{const o=new Set;let s=[],C=null,p=null;const g=new Map,y=new Map,S=()=>{for(const n of[...o])n()},h=()=>ue().byId,R=n=>{const r=h().get(n),a=e();return r===void 0||a===null?null:r.type==="TSE_VIEW_COLLECTION_BASE"?a.root:r.object===void 0?null:a.objectForBlenderName(r.object)},i=n=>{const r=e();if(r===null)return null;for(const a of h().values())if(re(a)&&r.objectForBlenderName(a.object)===n)return a.id;return null},c=n=>{for(const r of h().values())if(re(r)&&r.object===n)return r.id;return null},w=n=>{if(h().has(n))return n;const r=nr(t.hierarchy,n);return r===null?null:i(r)},m=n=>{const r=w(n);return r===null?null:R(r)},M=n=>{const r=m(n);return r===null?null:t.hierarchy.idForObject3D?.(r)??null},O={roots:()=>(Ut(B()),(ue().tree?.rows??[]).map(r=>Ze(r,null))),node:n=>{const r=ue(),a=r.byId.has(n)?n:w(n),f=a===null?void 0:r.byId.get(a);return f===void 0?null:Ze(f,r.parentOf.get(f.id)??null)},object3D:n=>m(n),idForObject3D:n=>i(n)};function B(){const n=h(),r=new Set;for(const a of s){const f=n.get(a)?.object;f!==void 0&&r.add(f)}return[...r]}const G=()=>{const n=[];for(const r of s){const a=m(r),f=a===null?null:t.hierarchy.idForObject3D?.(a);f&&n.push(f)}t.selection?.set(n,{intent:"exact"}),S()},d=()=>{if(l||p!==null)return;const n=zt(),r=`${Me()}\0${n.active??""}\0${[...n.selected].sort().join("")}`;if(r===C)return;C=r;const a=n.selected.filter(v=>v!==n.active);n.active!==null&&n.selected.includes(n.active)&&a.push(n.active);const f=a.map(c).filter(v=>v!==null);f.length===s.length&&f.every((v,E)=>v===s[E])||(s=f,G())},j={get:()=>[...s],set:n=>{if(l)return;const r=Symbol("Blender selection");p=r,s=n.map(w).filter(E=>E!==null),G();const a=h(),f=[],v=[];for(const E of s){const P=a.get(E),Y=P?.object;Y===void 0?v.push(P?.name??E):f.includes(Y)||f.push(Y)}v.length>0&&V().console.warn(`${v.join(", ")} ${v.length===1?"is":"are"} not an object, so Blender's object selection does not carry ${v.length===1?"it":"them"}. Selecting a collection sets the ACTIVE COLLECTION in Blender, which is its own gesture and not in this editor yet.`,"blender-outliner"),kr(f,f.length===0?null:f[f.length-1]).catch(E=>V().console.error(`Blender refused the selection write: ${String(E)}`,"blender-outliner")).finally(()=>{l||p!==r||(p=null,C=null,d())})}},$=n=>h().get(n)?.restrict,L={properties:n=>{const r=$(n);if(r===void 0)return[];const a=h().get(n),f=[{path:"name",label:"Name",type:"string",readonly:!re(a)}];return r.hide!==void 0&&f.push({path:"visible",label:"Show in Viewport",type:"boolean"}),r.render!==void 0&&f.push({path:"renderVisible",label:"Show in Renders",type:"boolean"}),r.exclude!==void 0&&f.push({path:"exclude",label:"Exclude from View Layer",type:"boolean"}),f},get:(n,r)=>{const a=h().get(n);if(a!==void 0){if(r==="name")return a.name;if(r==="visible")return a.restrict?.hide===void 0?void 0:!a.restrict.hide;if(r==="renderVisible")return a.restrict?.render===void 0?void 0:!a.restrict.render;if(r==="exclude")return a.restrict?.exclude}},editability:(n,r)=>{const a=h().get(n);return a===void 0?{writable:!1}:r==="name"?re(a)?{writable:!0}:{writable:!1,reason:`Renaming a ${a.struct??a.type} is not in this Outliner yet — only an object row renames here. Rename it with bpy.`}:a.notInCollection?{writable:!1,reason:"This row is a child drawn under its parent although it is not in that collection, and Blender's Outliner draws it no restriction columns."}:r==="visible"&&a.restrict?.exclude===!0?{writable:!1,reason:Er}:{writable:!0}},set:async(n,r,a)=>{const f=h().get(n);if(f===void 0)return;if(r==="name"){if(!re(f))return;const E=String(a);if(E===f.name||E.length===0)return;await He(`bpy.data.objects[${le(f.object)}]`,"name",E),await ge([E]);const P=c(E);P!==null&&j.set([P]);return}if(r==="exclude"){await qe(f.path,"exclude",a===!0);return}const v=r==="visible"?"hide":r==="renderVisible"?"render":null;v!==null&&await qe(f.path,v,a===!1)}},N={get:n=>{const r=M(n);return(r===null?void 0:t.transforms?.get(r))??gr()},editability:n=>{const r=w(n),a=r===null?void 0:h().get(r);return re(a)&&R(a.id)!==null?{writable:!0}:{writable:!1,reason:`Only an object has a transform; this row is a ${a?.struct??a?.type??"row"}.`}},beginEdit:n=>{const r=m(n);r!==null&&!g.has(r)&&(g.set(r,r.matrixWorld.clone()),y.set(n,r),qt())},apply:(n,r)=>{const a=m(n);a!==null&&(a.position.fromArray(r.position),a.quaternion.fromArray(r.rotation),a.scale.fromArray(r.scale),a.updateMatrix(),a.updateMatrixWorld(!0),e()?.mirrorPose?.(a))},endEdit:async n=>{const r=y.get(n)??m(n);y.delete(n);const a=e();if(r===null)return;const f=g.get(r);g.delete(r);try{if(a===null||(r.updateWorldMatrix(!0,!1),f?.equals(r.matrixWorld)===!0))return;const v=a.blenderObjectName(r);if(v===null)return;const E=`bpy.data.objects[${JSON.stringify(v)}]`;try{return await He(E,"matrix_world",rt(r,a.root)),{destination:`Blender — ${E}.matrix_world; the session saves the .blend`,persisted:!0}}catch(P){return{destination:P instanceof Error?P.message:String(P),persisted:!1}}}finally{f&&await Ht()}}},W=n=>{const r=w(n),a=r===null?void 0:h().get(r);return re(a)?a.object:null},T=n=>({destination:n,persisted:!1}),D=async n=>{await ge(n);const r=n.map(c).filter(a=>a!==null);return r.length>0&&j.set(r),r[0]??""},z=()=>{const n=t.documentId?.replace(/^object3d-document:/,""),r=ne().find(v=>v.documentId===n)?.rig().drawCamera()??null,a=e(),f=["bpy.ops.object.camera_add()","added = bpy.context.view_layer.objects.active"];return r!==null&&a!==null&&f.push("kept = added.location.copy()",`added.matrix_world = ${JSON.stringify(rt(r,a.root))}`,"added.location = kept"),f.push("if bpy.context.scene.camera is None:"," bpy.context.scene.camera = added"),f.join(`
6
+ `)},x={creatableKinds:()=>ye().map(({kind:n,label:r})=>({kind:n,label:r})),create:n=>{const r=ye().find(f=>f.kind===n);if(r===void 0)return{id:"",ack:T(`${n} is not a row of Blender's Add menu that this editor adds. Its rows are: ${ye().map(f=>f.label).join(", ")}.`)};if(r.refusal!==void 0)return{id:"",ack:T(r.refusal)};const a=r.call==="object.camera_add"?z():vr(r);return{id:"",ack:(async()=>{const{made:f,error:v}=await de(a);return v!==null?T(v):f.length===0?T(`Blender ran ${a} and created nothing. The operator reported no error, so it cancelled — most often because it wanted a file browser or a context this headless engine has no window for.`):(await D(f),{destination:`Blender — ${a}; the session saves the .blend`,persisted:!0})})()}},remove:n=>x.removeMany?.([n])??void 0,removeMany:async n=>{const r=[];for(const E of n){const P=W(E);if(P===null){const Y=w(E)===null?void 0:h().get(w(E));return T(`Only an object can be deleted here; this row is a ${Y?.struct??Y?.type??"row"}. Deleting a collection, a modifier or a vertex group is that datablock’s own bpy call.`)}r.push(P)}if(r.length===0)return T("Nothing selected to delete.");const f=[`targets = ${`[bpy.data.objects[n] for n in [${r.map(le).join(", ")}]]`}`,"with bpy.context.temp_override(selected_objects=targets, active_object=targets[0]):"," result = bpy.ops.object.delete(use_global=False)",'if "FINISHED" not in result: raise RuntimeError("Blender cancelled deleting the selected objects")'].join(`
7
+ `),{error:v}=await de(f,"Delete Objects");return v!==null?T(v):(j.set([]),await ge([]),{destination:"Blender — bpy.ops.object.delete(use_global=False); the session saves the .blend",persisted:!0})},duplicate:n=>{const r=W(n);if(r===null)return{id:n,ack:T("Only an object can be duplicated here. Duplicating a collection is `bpy.ops.object.collection_instance_add`, its own gesture.")};const a=[`source = bpy.data.objects[${le(r)}]`,"with bpy.context.temp_override(selected_objects=[source], active_object=source):"," result = bpy.ops.object.duplicate(linked=False)",'if "FINISHED" not in result: raise RuntimeError("Blender cancelled duplicating the selected object")'].join(`
8
+ `);return{id:n,ack:(async()=>{const{made:f,error:v}=await de(a,"Duplicate Object");return v!==null?T(v):(await D(f),{destination:`Blender — bpy.ops.object.duplicate(linked=False) on ${r}; the session saves the .blend`,persisted:!0})})()}},duplicateMany:async n=>{const r=[...new Set(n.map(W))];if(r.length===0||r.some(E=>E===null))return T("Select objects to duplicate; collections and data rows cannot be duplicated here.");const a=[`sources = [bpy.data.objects[name] for name in ${JSON.stringify(r)}]`,"with bpy.context.temp_override(selected_objects=sources, active_object=sources[0]):"," result = bpy.ops.object.duplicate(linked=False)",'if "FINISHED" not in result: raise RuntimeError("Blender cancelled duplicating the selected objects")'].join(`
9
+ `),{made:f,error:v}=await de(a,"Duplicate Objects");return v!==null?T(v):(await D(f),{destination:"Blender — duplicate selected objects as one native operation; the session saves the .blend",persisted:!0})},reparent:()=>T("Reparenting is Blender's `bpy.ops.object.parent_set`, which needs a parent TYPE (Object, Object Keep Transform, Armature Deform, …) that a drag does not say. Set the parent on the object’s Relations panel, or with bpy.")},F={get documentId(){return t.documentId},get documentRootObject(){return t.documentRootObject},capabilities:br,provenance:xr,hierarchy:O,selection:j,inspector:L,transforms:N,structure:x,subscribe:n=>{o.add(n);const r=he(n),a=t.subscribe?.(n)??(()=>{});return()=>{o.delete(n),r(),a()}}},H={get documentId(){return F.documentId},selectedObjectNames:()=>B(),allObjectNames:()=>{const n=[];for(const r of h().values())re(r)&&n.push(r.object);return n},selectObjects:n=>{const r=n.map(c).filter(a=>a!==null);j.set(r)},rowIdForObject:n=>c(n),structure:x,subscribe:n=>{o.add(n);const r=he(n);return()=>{o.delete(n),r()}}};ve.add(H);let l=!1;const _=setTimeout(()=>{l||(et(),d())},0),k=Wt(d),A=he(d);return{adapter:F,dispose:()=>{l=!0,clearTimeout(_),k(),A(),ve.delete(H),et(),o.clear()}}}}const Cr=jt(Kt);xt({match:({adapter:e})=>Ye(null,e)!==null,describe:({adapter:e})=>{const t=Ye(null,e);if(t===null)return null;const o=t.kind==="object"?[...ue().byId.values()].find(g=>g.struct==="Object"&&g.object===t.name):void 0,s=or().context?.scene,C=s?ar(s):void 0,p=t.kind==="object"?t.name:(C?.kind==="struct"?C.name:null)??"Scene";return{id:`blender-properties:${JSON.stringify(t)}`,title:p,identity:{kindLabel:t.kind==="object"?"Object":"Scene",kind:gt(o?.icon??"SCENE_DATA"),rename:{readOnly:t.kind!=="object",set:async g=>{t.kind==="object"&&g.length>0&&await sr(`bpy.data.objects[${JSON.stringify(t.name)}]`,"name",g)}}},sections:[]}}});function _t(e){const t=Number.isFinite(e)&&e>0?e:50;return{degrees:2*Math.atan(72/(2*t))*180/Math.PI,axis:"larger"}}Et("model",{camera:{fov:_t(50),opening:[.8187,.4458,.3617]},interaction:{bootTool:"select",boxSelect:"touch"},all:{lighting:{source:"studio",studioPreset:dt.id,auto:null,tone:{mapper:"none",exposure:1}},xray:{enabled:!1,alpha:.5}},modes:{wireframe:{xray:{enabled:!0,alpha:0}},preview:{lighting:{source:"preview",auto:null,preview:{sceneLights:!1,sun:{enabled:!1},environment:{enabled:!0,image:"blender:forest",energy:1,rotation:0}},tone:{mapper:"agx",exposure:1}},backdrop:{source:"fill"}},rendered:{lighting:{source:"scene",auto:null,tone:{mapper:"agx",exposure:1}},backdrop:{source:"scene"}}},overlays:{selection:{origins:!0}},world:{upAxis:"z"}});const Pe="volter.blender.area-split:",Te=new Set,Fe=new Map;function Or(e){try{return globalThis.localStorage?.getItem(Pe+e)==="1"}catch{return!1}}function Le(e){let t=Fe.get(e);return t===void 0&&(t=Or(e),Fe.set(e,t)),t}function nt(e,t){if(Le(e)!==t){Fe.set(e,t);try{t?globalThis.localStorage?.setItem(Pe+e,"1"):globalThis.localStorage?.removeItem(Pe+e)}catch{}for(const o of[...Te])o()}}function vt(e){return Te.add(e),()=>{Te.delete(e)}}const Ar=[{label:"Location",call:"location=True, rotation=False, scale=False"},{label:"Rotation",call:"location=False, rotation=True, scale=False"},{label:"Scale",call:"location=False, rotation=False, scale=True"},{label:"All Transforms",call:"location=True, rotation=True, scale=True"}],Rr=[{label:"Location",call:"bpy.ops.object.location_clear(clear_delta=False)"},{label:"Rotation",call:"bpy.ops.object.rotation_clear(clear_delta=False)"},{label:"Scale",call:"bpy.ops.object.scale_clear(clear_delta=False)"}],Mr=[{label:"Geometry to Origin",type:"GEOMETRY_ORIGIN"},{label:"Origin to Geometry",type:"ORIGIN_GEOMETRY"},{label:"Origin to 3D Cursor",type:"ORIGIN_CURSOR"}],$r=[{submenu:"Mesh",at:"2699"},{submenu:"Curve",at:"2702"},{submenu:"Surface",at:"2704"},{submenu:"Metaball",at:"2705"},{kind:"text",at:"2706"},{kind:"point-cloud",at:"2707"},{submenu:"Volume",at:"2708"},{submenu:"Grease Pencil",at:"2709"},{separatorAt:"2711"},{kind:"armature",at:"2716"},{submenu:"Lattice",at:"2718"},{separatorAt:"2720"},{submenu:"Empty",at:"2722"},{submenu:"Image",at:"2723"},{separatorAt:"2725"},{submenu:"Light",at:"2727"},{submenu:"Light Probe",at:"2728"},{separatorAt:"2730"},{kind:"camera",at:"2735"},{separatorAt:"2737"},{kind:"speaker",at:"2739"},{separatorAt:"2741"},{submenu:"Force Field",at:"2743"},{separatorAt:"2745"},{submenu:"Collection Instance",at:"2759"}],Pr="No Collections to Instance";function me({id:e,open:t,setOpen:o,anchorRef:s,children:C}){return u.jsxs("div",{ref:s,style:{position:"relative"},children:[u.jsx(Ot,{"data-testid":`blender-menu-${e}`,"aria-expanded":t===e,onClick:()=>o(t===e?null:e),onPointerEnter:()=>{t&&o(e)},style:{textTransform:"capitalize"},children:e}),t===e&&u.jsx(At,{anchorRef:s,dismissBoundaryRef:s,align:"start",gap:0,clamp:!0,"aria-label":e,onDismiss:()=>o(null),children:C})]})}function Tr(e,t,o){(async()=>{const s=await o;s===void 0||typeof s.destination!="string"||s.persisted!==!0&&e?.({tone:"error",title:`${t} was refused`,detail:s.destination})})()}function wt({documentId:e,notify:t}){b.useSyncExternalStore(he,Me,Me),b.useSyncExternalStore(mr,tt,tt);const[o,s]=b.useState(null),C=b.useRef(null),p=b.useRef(null),g=b.useRef(null),y=b.useRef(null),S=b.useRef(null),h=b.useSyncExternalStore(vt,()=>e===void 0?!1:Le(e),()=>!1),R=hr(e);if(R===null)return null;const i=(d,j)=>()=>{s(null),Tr(t,d,j(R))},c=R.selectedObjectNames(),w=R.allObjectNames(),m=c.length===0?"Nothing is selected.":void 0,M=ye(),O=d=>u.jsx(X,{"data-testid":`blender-add-${d.kind}`,disabled:d.refusal!==void 0,title:d.refusal,onSelect:i(`Add ${d.label}`,j=>j.structure.create(d.kind).ack),children:d.label},d.kind),B=d=>M.filter(j=>j.group===d).flatMap(j=>j.separatorBefore===!0?[u.jsx(pe,{},`${j.kind}-separator`),O(j)]:[O(j)]),G=d=>{if("separatorAt"in d)return u.jsx(pe,{},`separator-${d.separatorAt}`);if("kind"in d){const $=M.find(L=>L.kind===d.kind);return $===void 0?null:O($)}const j=B(d.submenu);return j.length===0?u.jsx(X,{"data-testid":"blender-add-collection-instance",disabled:!0,children:Pr},d.submenu):u.jsx(ce,{label:d.submenu,"data-testid":`blender-add-${d.submenu.toLowerCase().replaceAll(" ","-")}`,children:j},d.submenu)};return u.jsxs(Ct,{compact:!0,label:"Blender Object Mode menus","data-testid":"blender-object-mode-menus",ref:C,children:[u.jsx(me,{id:"view",open:o,setOpen:s,anchorRef:p,children:u.jsxs(ce,{label:"Area","data-testid":"blender-view-area",children:[u.jsx(X,{"data-testid":"blender-area-vertical-split",disabled:h||e===void 0,title:h?"This area is already split.":void 0,onSelect:()=>{s(null),e!==void 0&&nt(e,!0)},children:"Vertical Split"}),u.jsx(pe,{}),u.jsx(X,{"data-testid":"blender-area-close",disabled:!h,title:h?void 0:"There is no second area to close.",onSelect:()=>{s(null),e!==void 0&&nt(e,!1)},children:"Close Area"})]})}),u.jsxs(me,{id:"select",open:o,setOpen:s,anchorRef:g,children:[u.jsx(X,{"data-testid":"blender-select-all",onSelect:i("Select All",d=>d.selectObjects(w)),children:"All"}),u.jsx(X,{"data-testid":"blender-select-none",onSelect:i("Select None",d=>d.selectObjects([])),children:"None"}),u.jsx(X,{"data-testid":"blender-select-invert",onSelect:i("Select Invert",d=>d.selectObjects(w.filter(j=>!c.includes(j)))),children:"Invert"})]}),u.jsx(me,{id:"add",open:o,setOpen:s,anchorRef:y,children:$r.map(d=>G(d))}),u.jsxs(me,{id:"object",open:o,setOpen:s,anchorRef:S,children:[u.jsx(ce,{label:"Set Origin","data-testid":"blender-object-origin",children:Mr.map(d=>u.jsx(X,{"data-testid":`blender-origin-${d.type}`,disabled:d.refusal!==void 0||c.length===0,title:d.refusal??m,onSelect:i(`Set Origin ▸ ${d.label}`,j=>Ce(j.selectedObjectNames(),`bpy.ops.object.origin_set(type='${d.type}')`)),children:d.label},d.type))}),u.jsx(ce,{label:"Clear","data-testid":"blender-object-clear",children:Rr.map(d=>u.jsx(X,{"data-testid":`blender-clear-${d.label.toLowerCase()}`,disabled:c.length===0,title:m,onSelect:i(`Clear ▸ ${d.label}`,j=>Ce(j.selectedObjectNames(),d.call)),children:d.label},d.label))}),u.jsx(ce,{label:"Apply","data-testid":"blender-object-apply",children:Ar.map(d=>u.jsx(X,{"data-testid":`blender-apply-${d.label.toLowerCase().replace(/ /g,"-")}`,disabled:c.length===0,title:m,onSelect:i(`Apply ▸ ${d.label}`,j=>Ce(j.selectedObjectNames(),`bpy.ops.object.transform_apply(${d.call})`)),children:d.label},d.label))}),u.jsx(pe,{}),u.jsx(X,{"data-testid":"blender-object-duplicate",disabled:c.length===0,title:m,onSelect:i("Duplicate Objects",async d=>{const j=d.selectedObjectNames().map($=>d.rowIdForObject($)).filter($=>$!==null);return d.structure.duplicateMany?.(j)}),children:"Duplicate Objects"}),u.jsx(X,{"data-testid":"blender-object-delete",disabled:c.length===0,title:m,onSelect:i("Delete",d=>{const j=d.selectedObjectNames().map($=>d.rowIdForObject($)).filter($=>$!==null);return d.structure.removeMany?.(j)}),children:"Delete"})]})]})}async function Fr(){const e=[],[t,o]=await Promise.all([pt(),ft()]),s=new Map,C=new Map,p=new Map,g=async(y,S)=>{try{const h=await bt({object:y,action:S});if(h?.reason&&e.push(`${y} / ${S}: ${h.reason}`),h?.tracks.length&&h.clipStart!==void 0&&h.clipEnd!==void 0)return h}catch(h){e.push(`${y} / ${S} could not be read: ${h instanceof Error?h.message:String(h)}`)}return null};return await Promise.all((o?.armatures??[]).map(async({armature:y,actions:S,current:h})=>{if(s.set(y,S),!h)return;C.set(y,h);const R=await g(y,h);R&&p.set(y,new Map([[h,R]]))})),{rig:t,names:s,assigned:C,clips:p,bake:g,warnings:e}}function Nr(e,t){const o=[...t.warnings],s=[];for(const i of t.rig?.rigs??[]){if(!i.object||!i.armature||!i.skinIndexBase64||!i.skinWeightBase64){i.reason&&o.push(i.reason);continue}const c=lr(e,i,t.rig.frame,o);c&&s.push(c)}const C=new Map,p=new Map;for(const i of s)p.set(i.mesh,i.armature);const g=(i,c,w)=>{const m=ir(c,w,o);return m.length?new ur(i,c.duration??(c.clipEnd-c.clipStart)/c.fps,m):null};for(const[i,c]of t.names){const w=e.objectForBlenderName(i);if(!w||!c.length)continue;const m=new Map;for(const O of s)if(O.armature===i)for(const B of O.bones)m.set(B.name,B);if(!m.size){o.push(`${i} has actions but no skinned mesh is bound to it, so they would move nothing.`);continue}const M=new Map;for(const[O,B]of t.clips.get(i)??[]){const G=g(O,B,m);G&&M.set(O,G)}C.set(i,{name:i,object:w,mixer:new dr(w),names:c,bones:m,clips:M,baking:new Map,failed:new Set,current:null,wanted:null})}const y=new Map;for(const i of C.values())y.set(i.object,i);for(const i of C.values()){const c=t.assigned.get(i.name),w=c?i.clips.get(c):void 0;if(!c||!w)continue;const m=i.mixer.clipAction(w);m.setLoop(Xe,Number.POSITIVE_INFINITY),m.play(),i.current={name:c,action:m}}const S=i=>{const c=y.get(i)??C.get(p.get(i)??"");if(c)return c;for(let m=i.parent;m;m=m.parent){const M=y.get(m);if(M)return M}let w=null;return i.traverse(m=>{w||(w=y.get(m)??C.get(p.get(m)??"")??null)}),w};let h=!1;const R=(i,c,w)=>{const m=i.clips.get(c),M=Math.max(0,w.fade??.2),O=i.mixer.clipAction(m);if(O.setLoop(w.loop===!1?pr:Xe,Number.POSITIVE_INFINITY),O.clampWhenFinished=w.loop===!1,O.setEffectiveTimeScale(w.speed??1),i.current?.name===c){w.restart&&O.reset().play();return}O.reset().setEffectiveWeight(1).play(),i.current&&M>0?i.current.action.crossFadeTo(O,M,!1):i.current?.action.stop(),i.current={name:c,action:O}};return{warnings:o,clips:i=>[...S(i)?.names??[]],play(i,c,w={}){const m=S(i);return m?m.names.includes(c)?m.failed.has(c)?{ok:!1,why:`${m.name}'s action "${c}" has nothing this armature can play (see the console)`}:(m.wanted={name:c,options:w},m.clips.has(c)?(R(m,c,w),{ok:!0,armature:m.name}):(m.baking.has(c)||m.baking.set(c,t.bake(m.name,c).then(M=>{m.baking.delete(c);const O=M?g(c,M,m.bones):null;O?m.clips.set(c,O):(m.failed.add(c),m.wanted?.name===c&&(m.wanted=null)),O&&!h&&m.wanted?.name===c&&R(m,c,m.wanted.options)})),{ok:!0,armature:m.name})):{ok:!1,why:`${m.name} has no action "${c}"; it has ${m.names.join(", ")}`}:{ok:!1,why:`${i.name||"this object"} has no armature with actions`}},stop(i,c=.2){const w=S(i);w&&(w.wanted=null),w?.current&&(c>0?w.current.action.fadeOut(c):w.current.action.stop(),w.current=null)},playing:i=>{const c=S(i);return c?.wanted?.name??c?.current?.name??null},update(i){for(const c of C.values())c.mixer.update(i)},dispose(){h=!0;for(const i of C.values())i.mixer.stopAllAction();for(const i of s)i.skeleton.dispose()}}}function we(e){return/file format is not supported|not a blend file/i.test(e)?"This file is not a supported Blender model. Choose a valid .blend file or return to the previous model.":/EACCES|permission denied|read-only file system/i.test(e)?"Blender could not access the model file. Check its file permissions, then try again.":/ENOENT|no such file|file not found/i.test(e)?"The model file could not be found. Check that it still exists, or return to the previous model.":/failed to fetch|networkerror|network error/i.test(e)?"Blender could not finish loading. Check your connection, then try again.":"Blender could not open this model. Try again, or return to the previous model. Details are available in the console."}function ot({documentId:e,path:t,error:o,preview:s,retry:C,returnToPreview:p,preparingView:g=!1,note:y=null}){const S=o?"Could not open model":g?"Preparing model view":"Opening model",h=b.useMemo(()=>{const R={id:`opening:${e}`,label:S,secondaryLabel:t,role:"boundary",kind:"object",parentId:null,childIds:[]};return{capabilities:{transform:!1,inspectorFields:!1,persist:!1},hierarchy:{roots:()=>[R],node:i=>i===R.id?R:null},subscribe:()=>()=>{}}},[e,t,S]);return u.jsxs("div",{"data-testid":"blender-model-opening","aria-busy":!o,style:{position:"absolute",inset:0,overflow:"auto",background:U.surface.panel,color:U.content.primary},children:[!g&&u.jsx(Rt,{documentId:e,type:"Model",title:t,status:o?we(o):S,selection:()=>({adapter:h,nodeId:null})},S),s&&u.jsx("img",{src:s.image,alt:`Last view of ${s.path}`,draggable:!1,style:{position:"absolute",inset:0,width:"100%",height:"100%",objectFit:"contain",pointerEvents:"none"}}),u.jsxs("div",{style:{position:"relative",minHeight:"100%",display:"flex",flexDirection:"column",justifyContent:s?"flex-end":"center",alignItems:s?"flex-start":"center",boxSizing:"border-box",padding:Q[8],gap:Q[4]},children:[s&&u.jsxs("div",{style:{padding:`${Q[2]} ${Q[4]}`,background:U.surface.chrome,border:`1px solid ${U.boundary.default}`,borderRadius:U.shape.small,maxWidth:"100%",overflowWrap:"anywhere"},children:["Previous model: ",s.path," · Preview only"]}),u.jsx(Mt,{tone:o?"error":"loading",style:{width:"min(100%, 32rem)",background:U.surface.chrome,border:`1px solid ${U.boundary.default}`,borderRadius:U.shape.small,overflowWrap:"anywhere"},title:u.jsx("span",{style:{fontSize:Re.lg},children:S}),description:u.jsxs(u.Fragment,{children:[u.jsx("div",{style:{color:U.content.primary,marginBottom:Q[3]},children:t}),o?we(o):g?"The file is open. Preparing its viewport.":s?"The previous model stays visible while this file opens.":"Preparing Blender and opening this file. The model will appear here when it is ready.",!o&&y&&u.jsx("div",{"data-testid":"blender-model-opening-note",style:{marginTop:Q[3],color:U.content.muted,userSelect:"text"},children:y}),o&&u.jsx("div",{"data-testid":"blender-model-opening-detail",style:{marginTop:Q[3],fontFamily:$t,fontSize:Re.sm,color:U.content.muted,whiteSpace:"pre-wrap",userSelect:"text",textAlign:"left"},children:o})]}),action:o?u.jsxs("div",{style:{display:"flex",flexWrap:"wrap",justifyContent:"center",gap:Q[3]},children:[s&&u.jsx(De,{onClick:p,children:"Return to previous model"}),u.jsx(De,{variant:"secondary",onClick:C,children:"Retry opening"})]}):u.jsx("progress",{"aria-label":`Opening ${t}`,style:{width:"min(100%, 18rem)",accentColor:U.accent.default}})})]})]})}let oe=null;const Ne=new Set;let Oe=!1;function St(){Oe||(Oe=!0,queueMicrotask(()=>{Oe=!1;for(const e of[...Ne])e()}))}function at(e){oe?.project===e.project&&oe.capturedAt>e.capturedAt||oe!==e&&(oe=e,St())}function Lr(){oe&&(oe=null,St())}function Ir(e){return oe?.project===e?oe:null}function Br(e){return Ne.add(e),()=>{Ne.delete(e)}}const st="blender-model-open",Dr=3e4,lt=new WeakMap;let Vr=0;function Gr(e){let t=lt.get(e);return t===void 0&&(t=++Vr,lt.set(e,t)),t}const it=new WeakSet,rn="workspace.document",nn="Blender Model",on=({documentId:e,notify:t})=>u.jsx(wt,{documentId:e,notify:t}),Wr="model",an="owned",sn=[],Z=Yt,zr={wireframe:"WIREFRAME",solid:"SOLID",preview:"MATERIAL",rendered:"RENDERED"},ct=new WeakMap;function Hr(e){let t=ct.get(e);return t||(t={subject:()=>{const o=ie.playhead();return e.subjectLine(o===null?null:Math.floor(o))},gridScale:o=>e.gridUnitName(o),cameraView:{camera:()=>e.cameraViewCamera(),zoom:e.cameraViewZoom,pan:e.cameraViewPan,showing:o=>e.setCameraViewShowing(o),setPose:(o,s,C,p)=>{const{location:g,rotation:y}=e.blenderPose(s,C);return Se(`from mathutils import Matrix, Quaternion, Vector
10
+ import bpy
11
+ object = bpy.data.objects[${JSON.stringify(o)}]
12
+ object.matrix_world = Matrix.LocRotScale(Vector((${g.join(", ")})), Quaternion((${y.join(", ")})), object.matrix_world.to_scale())`,p,"Lock Camera to View").then(S=>{S.error!==null&&V().console.error(`Blender refused the camera's pose: ${S.error}`,"blender-camera")},S=>V().console.error(`The camera's pose was not written to Blender: ${String(S)}`,"blender-camera"))},view:(o,s,C,p)=>e.cameraView(o,s,C,p)}},ct.set(e,t),t)}function ln(e){const{active:t,document:o,documentId:s,notify:C,publishContext:p}=e,g=o?.source?.path,y=o?.id,S=JSON.stringify([s,y,g]),[h,R]=b.useState(null),[i,c]=b.useState(null),[w,m]=b.useState(0),M=V().projectLocalState.projectRootPath(),O=b.useSyncExternalStore(Br,()=>Ir(M),()=>null),B=b.useSyncExternalStore(ut,je,je),G=b.useRef(null),d=b.useRef({notify:C,publishContext:p});return d.current={notify:C,publishContext:p},b.useEffect(()=>V().session.onEnded(Lr),[]),b.useEffect(()=>{if(t===!1||!s||!y||!M||h?.key!==S||h.error)return;const j=_e(s);if(!j)return;let $=!1,L;const N=async()=>{try{const W=Z.snapshot(),T=se(s);if(!T||j.root!==Z.root||!Ue(s,y,g,W))return;const D=await j.requestPresentedFrame();if($||Z.snapshot()!==W||_e(s)!==j||j.root!==Z.root||se(s)!==T||!Ue(s,y,g,W))return;if(D&&D.width>0&&D.height>0){const z=window.document.createElement("canvas");z.width=Math.min(D.width,1024),z.height=Math.max(1,Math.round(z.width*D.height/D.width));const x=z.getContext("2d");x&&(x.drawImage(D,0,0,z.width,z.height),G.current={project:M,entryId:y,path:g??"Model",image:z.toDataURL("image/png"),capturedAt:performance.now()},at(G.current))}}catch{}finally{$||(L=setTimeout(()=>{N()},1e3))}};return N(),()=>{$=!0,clearTimeout(L)}},[t,g,s,y,M,S,h,B]),b.useLayoutEffect(()=>{if(!(t===!1||!s||!y||!M||h?.key!==S||h.error))return()=>{if(!V().session.open())return;const j=G.current;j?.project===M&&j.entryId===y&&at(j)}},[t,g,s,y,M,S,h]),b.useEffect(()=>{if(t===!1||!s)return;let j=!1,$;const L=g===void 0?null:{documentId:s,entryId:y,blend:g},N=Jt(L),W=()=>{$=d.current.publishContext?.(Z)};R(null),c(null);const T=V().documents;let D=!1,z=!1,x=!1;const F=g??"the model",H=async()=>{if(!(j||D||z)){if(L&&!Xt(L)){x=!0;return}D=!0,x=!1;try{if(L){if(!await Qt(L,W)){x=!0;return}}else W();j||(z=!0,Ft(st),R({key:S,error:null}))}catch(n){if(j)return;z=!0,$?.(),$=void 0;const r=n instanceof Error?n.message:String(n);R({key:S,error:r}),V().console.error(r,"blender-open"),d.current.notify?.({tone:"error",title:`Blender could not open ${F}`,detail:we(r)}),Nt(st,{message:`Blender could not open ${F}: ${r}`,guidance:`${we(r)} Dismiss this to reach the model's Retry.`,command:null})}finally{D=!1}}},l=setInterval(()=>{j||z||c(x?`Still waiting: Blender is holding another model, and opens ${F} when it is free.`:`Still opening ${F}: Blender is working (a large file, or a cold start). ${Pt("status")} shows what it is busy with.`)},Dr);let _=!1;const k=()=>{j||_||(_=!0,setTimeout(()=>{_=!1,H()},0))},A=T.subscribe(k);return k(),()=>{j=!0,clearInterval(l),A(),$?.(),N()}},[t,g,s,y,S,w]),t===!1||!s?null:h?.key!==S||h.error?u.jsx(ot,{documentId:s,path:g??"Model",error:h?.key===S?h.error:null,preview:O,note:i,retry:()=>{R(null),m(j=>j+1)},returnToPreview:()=>{O&&V().workspace.open({kind:"document",id:O.entryId}).then(j=>{if(!j)throw new Error("The previous model is no longer available in this project.")}).catch(j=>d.current.notify?.({tone:"error",title:"Could not return to the previous model",detail:String(j)}))}}):u.jsxs(u.Fragment,{children:[u.jsx(qr,{...e}),!se(s)&&u.jsx(ot,{documentId:s,path:g??"Model",error:null,preparingView:!0,preview:O,retry:()=>{},returnToPreview:()=>{}})]})}function qr(e){const{documentId:t}=e,o=e.document?.source?.path;b.useEffect(()=>t?cr(t,o):void 0,[t,o]),b.useEffect(()=>{if(!t)return;let x=!1,F=0,H=null;const l=[t,`${t}#area-2`,`${t}#play`],_=()=>{for(const a of l)_e(a)?.setDisplayTransform(H?.transform??null)},k=async()=>{const a=++F,f=await Zt();if(!f)return;const[v,E]=await Promise.all([Je(`${f.scene}.view_settings`),Je(`${f.scene}.display_settings`)]);if(x||a!==F||v?.kind!=="struct"||v.type!=="ColorManagedViewSettings")return;if(E?.kind==="struct"){const J=E.groups.flatMap(ke=>ke.rows).find(ke=>ke.identifier==="display_device")?.value;if(typeof J=="string"&&J!=="sRGB")throw new Error(`Blender display device ${J} has no browser display processor yet`)}const P=v.groups.flatMap(J=>J.rows),Y=P.find(J=>J.identifier==="view_transform")?.value,ae=P.find(J=>J.identifier==="exposure")?.value,q=P.find(J=>J.identifier==="look")?.value,I=P.find(J=>J.identifier==="gamma")?.value,K=typeof ae=="number"?2**ae:1,ee={transform:typeof Y=="string"?Y:"AgX",look:typeof q=="string"?q:"None",exposure:K,gamma:typeof I=="number"?I:1},Ie=JSON.stringify(ee);if(H?.key===Ie)return;const Be=await er(ee);if(x||a!==F){Be.dispose();return}const kt=H;H={key:Ie,transform:Be},_(),kt?.transform.dispose();for(const J of l)xe(J,{modes:{rendered:{lighting:{tone:{mapper:"none",exposure:1}}},preview:{lighting:{tone:{mapper:"none",exposure:1}}}}})},A=()=>{k().catch(a=>V().console.error(String(a),"blender-colour"))},n=mt(A),r=ht(_);return A(),()=>{x=!0,n(),r();const a=H;H=null,_(),a?.transform.dispose()}},[t]);const s=b.useSyncExternalStore(vt,()=>t?Le(t):!1,()=>!1),[C,p]=b.useState(null);b.useEffect(()=>{if(!s||!t)return;const x=`${t}#area-2`;Tt(x).drawMode===void 0&&xe(x,{drawMode:"rendered"});const F=Z.follow();return p(F),()=>{p(null),F.dispose()}},[s,t]);const g=b.useSyncExternalStore(Ee,()=>t?te("model")?.playing(t)??!1:!1,()=>!1),[y,S]=b.useState(null),h=b.useSyncExternalStore(Ee,()=>t?te("model")?.aspectRatio?.(t)??null:null,()=>null),[R,i]=b.useState(!1),c=b.useSyncExternalStore(Ee,()=>t?te("model")?.transport?.generation(t)??0:0,()=>0),[w,m]=b.useState(c),[M,O]=b.useState(null),B=b.useRef(!1),G=b.useRef(!1);b.useLayoutEffect(()=>{if(c!==w){if(g&&t){if(B.current=!0,!G.current){let x=null;try{x=se(`${t}#play`)?.capture?.()??null}catch{}O(x)}G.current=!0}m(c)}},[c,w,g,t]);const d=te("model")?.transport,j=b.useCallback(x=>d?.subscribeClock(x)??(()=>{}),[d]),$=b.useSyncExternalStore(j,()=>t&&d?d.clock(t).failure??null:null,()=>null);b.useEffect(()=>{$!==null&&(G.current=!1,O(null))},[$]);const L=b.useRef([]);b.useEffect(()=>{if(!g||!t){B.current=!1;return}const x=`${t}#play`;xe(x,{drawMode:"rendered"});const F=Z.detach(),H=B.current;return B.current=!1,H||i(!1),S(F),H||(Z.setPlaying(!0),Ve(t)),()=>{if(B.current&&te("model")?.playing(t)){L.current.push(F);return}F.dispose();for(const l of L.current.splice(0))l.dispose();G.current=!1,S(null),O(null),Z.setPlaying(!1),Ve(t)}},[g,t,w]),b.useEffect(()=>{for(const x of L.current.filter(F=>F!==y))x.dispose();L.current=L.current.filter(x=>x===y)},[y]),b.useEffect(()=>()=>{for(const x of L.current.splice(0))x.dispose()},[]),b.useEffect(()=>{if(t)return()=>te("model")?.setPlaying(t,!1)},[t]);const N=g?y:null,W=h===null?{position:"absolute",inset:0}:{position:"absolute",left:"50%",top:"50%",transform:"translate(-50%, -50%)",width:`min(100cqw, calc(100cqh * ${h}))`,height:`min(100cqh, calc(100cqw / ${h}))`};if(b.useEffect(()=>{if(!N||!t)return;const x=se(t);if(!x)return;const F=x.capture,H=l=>se(`${t}#play`)?.capture?.(l)??null;return x.capture=H,()=>{x.capture===H&&(F?x.capture=F:delete x.capture)}},[N,t]),!t)return null;const T=s?C:null,D={position:"relative",flex:"1 1 0",minWidth:0,margin:12},z=N!==null&&R;return u.jsxs("div",{style:N||T?{position:"absolute",inset:-12,display:"flex",gap:2}:{display:"contents"},children:[u.jsx("div",{inert:z||void 0,style:N?{position:"absolute",inset:12,zIndex:2,opacity:R?0:1,pointerEvents:R?"none":"auto",transition:"opacity 160ms ease-out"}:T?D:{display:"contents"},children:u.jsx(Ae,{...e,view:Z,main:!0})},"model"),N&&u.jsx("div",{style:{position:"absolute",inset:12,containerType:"size"},"data-testid":"blender-play-area",children:u.jsx("div",{"data-volter-play-frame":!0,style:W,children:u.jsx(Ae,{...e,documentId:`${t}#play`,view:N.view,main:!1,playing:!0,onPlayReady:()=>{G.current=!1,i(!0),O(null)},onPlayReturn:()=>i(!1)})})},`play-${Gr(N)}`),N&&$!==null&&u.jsxs("div",{role:"alert","data-testid":"blender-play-failure",style:{position:"absolute",left:24,right:24,top:24,zIndex:4,padding:`${Q[2]} ${Q[3]}`,background:U.surface.chrome,border:`1px solid ${U.semantic.danger}`,borderRadius:U.shape.small,color:U.content.primary,fontSize:Re.sm,whiteSpace:"pre-wrap",overflowWrap:"anywhere",userSelect:"text"},children:[u.jsx("strong",{style:{color:U.semantic.danger},children:"Play is not running."})," ",$," Restart (or save the script) to try again, or Stop."]},"play-failure"),N&&M!==null&&u.jsx("div",{style:{position:"absolute",inset:12,containerType:"size",zIndex:3,pointerEvents:"none"},"data-testid":"blender-play-restart-still",children:u.jsx("img",{alt:"",src:M,style:{...W,display:"block",objectFit:"fill"}})},"restart-still"),T&&u.jsxs("div",{style:{...D,visibility:N?"hidden":void 0},"aria-hidden":N?!0:void 0,"data-testid":"blender-second-area",children:[u.jsx(Ae,{...e,documentId:`${t}#area-2`,view:T.view,main:!1}),!N&&u.jsx(Ur,{documentId:t,areaId:`${t}#area-2`,notify:e.notify})]},"second")]})}function Ur({documentId:e,areaId:t,notify:o}){b.useSyncExternalStore(ut,je,je);const s=b.useSyncExternalStore(It,()=>Bt(e)),C=se(t)?.HeaderControls,p=b.useRef(null);return b.useEffect(()=>{const g=p.current,y=g?.parentElement;if(!y)return;const S=()=>We(e,{headerWidth:y.getBoundingClientRect().width+12,shelf:g});S();const h=new ResizeObserver(S);return h.observe(y),()=>{h.disconnect(),We(e,null)}},[e]),u.jsxs(u.Fragment,{children:[u.jsx("div",{ref:p,className:"volter-dock-document-shelf",role:"toolbar","aria-orientation":"vertical","aria-label":"Document tools"}),s&&Dt.createPortal(u.jsxs("div",{className:"volter-dock-document-toolbar-own","data-testid":`document-header:${t}`,style:{display:"flex",alignItems:"center"},children:[u.jsx(wt,{documentId:e,notify:o}),C&&u.jsx(b.Suspense,{fallback:null,children:u.jsx(C,{documentId:t})})]}),s)]})}function Ae({active:e,document:t,documentId:o,notify:s,surfaces:C,view:p,main:g,playing:y=!1,onPlayReady:S,onPlayReturn:h}){const R=Hr(p),i=b.useCallback(()=>({root:p.root,prepareDraw:(l,_)=>p.prepareDraw(l,_),...y?{}:{onChange(l){const _=p.onChange(l),k=ie.subscribe(l);return()=>{_(),k()}}},dispose(){}}),[p,y]),c=t?.source?.path,w=b.useCallback(l=>{const _=p.onChange(l),k=ie.subscribe(l);let A=null;const n=()=>{A?.(),A=ne().find(a=>a.documentId===o)?.onFrame(l)??null};n();const r=fe(n);return()=>{_(),k(),r(),A?.()}},[o,p]),m=b.useSyncExternalStore(w,R.subject),M=b.useMemo(()=>g?Cr:jt(()=>p),[g,p]);b.useEffect(()=>{if(g||y||!o)return;let l=!1;const _=()=>{if(l)return;const n=_e(o);n===null||p.cameraViewCamera()===null||(l=n.toggleCameraView())};_();const k=ht(_),A=p.subscribeFrames(_);return()=>{k(),A()}},[g,y,o,p]);const O=b.useRef(s),B=b.useRef(null),[G,d]=b.useState(!1);O.current=s;const j=b.useRef(S);j.current=S;const $=b.useRef(h);$.current=h,b.useEffect(()=>{if(!y||!o)return;if(c===void 0){O.current?.({tone:"error",title:"This model has no play script",detail:"A play script stands beside a model's .blend file, and this model has no file of its own."});return}const l=o.replace(/#play$/,""),_=window.document.createElement("div");Object.assign(_.style,{position:"absolute",inset:"0",pointerEvents:"none"}),_.dataset.testid="model-play-roots",B.current?.appendChild(_),d(!1);let k=!1,A=!1,n=null,r=null,a=null;const f=()=>{if(n||A||k)return;const q=ne().find(I=>I.documentId===o);!q||!p.root.parent||(A=!0,r=q.rig().orbit,r.enabled=!1,Promise.all([p.prepareRendered(q.rig().drawCamera(),"render"),Fr().catch(I=>(V().console.warn(`The game's animation could not be read: ${I instanceof Error?I.message:String(I)}`,"blender-play"),null))]).then(([,I])=>{if(!k){a=I?Nr(p,I):null;for(const K of a?.warnings??[])V().console.warn(K,"blender-play");n=te("model")?.run({...a?{animation:a}:{},documentId:l,container:_,ready:()=>{k||(d(!0),j.current?.())},returning:()=>{k||$.current?.()},sourcePath:c,root:p.root,camera:()=>q.rig().drawCamera(),editingCamera:()=>ne().find(K=>K.documentId===l)?.rig().drawCamera()??q.rig().drawCamera(),onFrame:K=>q.onFrame(K),ownMaterial:K=>tr(K),report:(K,ee)=>{V().console.error(`${K}: ${ee}`,"blender-play"),O.current?.({tone:"error",title:K,detail:ee})}})??null}},I=>{if(k)return;const K=`The game's stage could not be prepared for a rendered draw: ${I instanceof Error?I.message:String(I)}`;V().console.error(K,"model-play");const ee=te("model");ee?.transport?.fail?ee.transport.fail(l,c,K):(O.current?.({tone:"error",title:"Play could not start",detail:K}),ee?.setPlaying(l,!1))}))};f();let v,E;const P=()=>{const q=ne().find(I=>I.documentId===o);q!==v&&(E?.(),v=q,E=q?.onFrame(f),f())};P();const Y=fe(P),ae=q=>{if(q.key==="Escape"&&Vt(q)){const I=te("model");I?.escape?I.escape(l):I?.setPlaying(l,!1)}};return window.addEventListener("keydown",ae,!0),()=>{k=!0,Y(),E?.(),window.removeEventListener("keydown",ae,!0),n?.(),a?.dispose(),a=null,_.remove(),r&&(r.enabled=!0)}},[y,o,c,p]),b.useEffect(()=>!g||!o?void 0:Ge(()=>{const _=p.savedView(),k=ze(o).drawMode,A=zr[k];!_||A===void 0||_.drawMode===k||(p.noteSavedShading(A),rr(A))}),[g,o,p]),b.useEffect(()=>{if(g||!o)return;const l=()=>{const _=Gt(o);_===null||it.has(_)||(it.add(_),_.showHelpers&&_.toggleHelpers(),_.showGizmos&&_.toggleGizmos())};return l(),Lt(l)},[g,o]),b.useEffect(()=>{if(!o)return;const l=p.overlayGroups(),_=()=>{const A=ne().find(n=>n.documentId===o);if(A)for(const{kind:n,object:r}of l)A.setHelper(n,r)};_();const k=fe(_);return()=>{k();const A=ne().find(n=>n.documentId===o);for(const{kind:n}of l)A?.setHelper(n,null)}},[o,p]);const L=b.useSyncExternalStore(mt,Ke,Ke),N=b.useRef(null);b.useEffect(()=>{if(!o||!g)return;let l=!0;const _=setTimeout(()=>{(async()=>{const k=await ft();if(!l||!k?.armatures.length)return;const A=JSON.stringify([k.armatures,k.scene??null]);A===N.current&&!ie.stale(p)||(await ie.bind(p,{rig:()=>pt(),clip:()=>bt()}),N.current=A)})().catch(k=>{l&&V().console.warn(`This file's rig could not be read: ${k instanceof Error?k.message:String(k)}`,"blender-skin")})},400);return()=>{l=!1,clearTimeout(_)}},[o,g,p,L]),b.useEffect(()=>{if(!o||!g)return;const{transport:l}=V();let _=null,k=!1,A=!1;const n=()=>{if(k||_)return;const f=l.for(o);f&&(_=ie.attachTo(f))},r=()=>{k||A||(A=!0,queueMicrotask(()=>{A=!1,n()}))};r();const a=l.subscribe(r);return()=>{k=!0,a();const f=_;_=null,f&&queueMicrotask(f)}},[o,g]),b.useEffect(()=>{if(!o)return;const l=()=>ne().find(v=>v.documentId===o);let _,k=null;const A=new fr,n=()=>l()?.rig().drawCamera()??A,r=()=>{const v=l();v!==_&&(k?.(),k=v?v.onFrame(()=>p.refreshRendered()):null,_=v);const{lighting:E,drawMode:P}=ze(o),Y=P==="preview",ae=Y?{world:E.source==="scene",lights:E.preview.sceneLights}:void 0,q=E.source==="scene"||Y&&E.preview.sceneLights;p.holdRendered(q&&v?n:null,ae,y?"render":"viewport"),p.setWorkbench(E.source==="studio"&&E.studioPreset===dt.id)};r();const a=Ge(r),f=fe(r);return()=>{a(),f(),k?.(),p.holdRendered(null),p.setWorkbench(!1)}},[o,p,y]);const W=b.useRef(null),T=l=>!y&&l.button===2&&l.shiftKey&&l.target instanceof HTMLCanvasElement,D=l=>{if(!T(l)){W.current=null;return}l.preventDefault(),l.stopPropagation(),W.current={id:l.pointerId,x:l.clientX,y:l.clientY},l.isTrusted&&l.target.setPointerCapture(l.pointerId)},z=()=>{W.current=null},x=l=>{const _=W.current;if(_===null||l.pointerId!==_.id||l.button!==2||(W.current=null,l.preventDefault(),l.stopPropagation(),Math.hypot(l.clientX-_.x,l.clientY-_.y)>3))return;const k=p.placeCursor(l.clientX,l.clientY,l.target);if(k===null)return;const[A,n,r]=k.location,[a,f,v,E]=k.rotation;Se(`from mathutils import Matrix, Quaternion, Vector
13
+ bpy.context.scene.cursor.matrix = Matrix.LocRotScale(Vector((${A}, ${n}, ${r})), Quaternion((${a}, ${f}, ${v}, ${E})), None)`,!1,"Set 3D Cursor").then(P=>{P.error!==null&&V().console.error(`Blender refused the 3D cursor: ${P.error}`,"blender-cursor")},P=>V().console.error(`The 3D cursor was not written to Blender: ${String(P)}`,"blender-cursor"))},F=l=>{T(l)&&l.preventDefault()};if(!o)return null;const H=C.Object3DAuthoring;return u.jsx("div",{ref:B,"data-play-ready":y?G:void 0,style:y?{position:"absolute",inset:0}:{display:"contents"},onPointerDownCapture:D,onPointerUpCapture:x,onPointerCancelCapture:z,onLostPointerCaptureCapture:z,onContextMenuCapture:F,children:u.jsx(H,{active:e??!0,fillContainer:y,documentId:o,sourcePath:c??"blender:runtime",displayName:t?.label??"Model",...m===null?{}:{subject:m},gridScale:R.gridScale,cameraView:R.cameraView,build:i,audit:!1,...y?{}:{authoring:M},cameraDirection:[.8187,.4458,.3617],openingFit:3,openingView:p.savedView(),presentation:(()=>{const l=p.savedView();if(!l)return null;const _={fov:_t(l.lens)};return g&&l.drawMode?{camera:_,drawMode:l.drawMode,modes:{preview:{lighting:{source:l.sceneWorld?"scene":"preview",preview:{sceneLights:l.sceneLights}},backdrop:{source:l.sceneWorld?"scene":"fill"}}}}:{camera:_}})(),stageKind:Wr,dressing:{environment:!1,keyLight:!1,viewLocked:p.studioLights()}})})}export{on as Toolbar,ln as default,Wr as documentKind,sn as inspectorBuiltins,an as inspectorRail,rn as point,nn as title};
@@ -0,0 +1 @@
1
+ import{h2 as n,iD as r}from"./volter-sdk-BlXl30lA.js";const c="workspace.menu",i={menu:"window",items:[{id:"blender-save-screenshot-editor",label:"Save Screenshot (Editor)…",testId:"menu-save-screenshot-editor",execute:async()=>{const e=n(),t=await e.documents.captureActive();r(t.base64);const o=`screenshots/screenshot-${new Date().toISOString().replace(/[:.]/g,"-")}.png`;await e.files.write(o,Uint8Array.from(atob(t.base64),s=>s.charCodeAt(0))),e.console.log(`Saved the screenshot to ${o}.`,"blender-screenshot")}}]};export{i as menu,c as point};
@@ -0,0 +1 @@
1
+ import{n as u,aJ as Te,j as s,ie as Ge,h_ as Me,ig as he}from"./volter-sdk-BlXl30lA.js";import{s as Be,b as ye}from"./blender-runtime-host-BZjXBC0J.js";import{s as de,p as D,m as K,a as ie,b,c as We,d as je,e as Ne,f as q}from"./play-mode-D-32KLOy.js";import"./output-pass-C2Jin9Z-.js";import"./three.module-FwjK5L7x.js";import"./linear-resolve-su8rbE2x.js";const Ve={transform:{startFrame:-5,pixelsPerFrame:8},refusal:null,size:{w:0,h:0},framedAt:0,drawn:null,onlySelected:!0};let X=Ve,ce=0;const Z=new Set;let Pe=0;function F(){return X}function z(){return ce}function ue(e){return Z.add(e),()=>{Z.delete(e)}}function I(e){X={...X,...e},ce+=1;for(const t of[...Z])t()}function Ke(e){X.onlySelected!==e&&I({onlySelected:e})}function Ae(){Pe+=1,ce+=1;for(const e of[...Z])e()}function Je(){return Pe}function $e(e){I({refusal:e})}const Ye=20,A=23,Q=26,Ue=16,qe=2,Xe=A+qe,ge=35,Ze=6;function Fe(e){const t=[2,3,5],n=[];for(let r=0;r<t.length;r++){const a=t[r],i=Math.trunc(e/a),o=i*a===e;if(o&&i===2)return a;n[r]=o}for(let r=0;r<t.length;r++)if(n[r])return t[r];return e}function Qe(e,t,n,r){if(n===0)return 1;const a=t/n;let i=Math.max(e,1);if(a*i>r)for(;i>1;){const o=Fe(i),m=Math.trunc(i/o);if(a*m<r)break;i=m}else for(;a*i<r&&i<1<<30;)i*=2;return i}function et(e){return e<=1?null:e/Fe(Math.round(e))}const y={back:"#303030",header:"#303030",grid:"#161616",gridMinor:"#262626",scrubBack:"#1d1d1d",scrubText:"#808080",playhead:"#4772b3",playheadText:"#ffffff",keyBorder:"#000000"},xe={KEYFRAME:{fill:"#bfbfbf",selected:"#ffbe33"},EXTREME:{fill:"#e8b3cc",selected:"#f28080"},BREAKDOWN:{fill:"#b3dbe8",selected:"#54bfed"},JITTER:{fill:"#94e575",selected:"#61c042"},MOVING_HOLD:{fill:"#808080",selected:"#ffaf23"},GENERATED:{fill:"#585858",selected:"#a28962"}},tt={KEYFRAME:1,EXTREME:1.2,MOVING_HOLD:.925,BREAKDOWN:.85,JITTER:.8,GENERATED:.75},we=5.06,nt=2.12,rt=15,S={minPillWidth:24,textPadding:4,margin:2,radius:4,tipHalfWidth:6,tipHeight:6,stalkWidth:3},be="#212121",d={text:"#a6a6a6",rule:"#161616",widget:"#545454",widgetText:"#e6e6e6",widgetOutline:"#3d3d3d",widgetRadius:4,unit:Ye,refusal:"#ffaf23",headerPadding:"0 8px",headerGap:8,statusPadding:"2px 8px"},it=.2,ee={time:0,tick:0,paused:!1,speed:1},J={on:!1,available:!1,by:null};function O(){return Ge("model")}function H(e,t){t==="movie"&&O()?.playing(e)&&O()?.setPlaying(e,!1),t==="game"&&b.transport?.snapshot().playbackState==="playing"&&b.transport.pause(),We(e,t)}function M(e){const t=e?.document;if(typeof t=="string"&&t!=="")return t;const n=ie();if(n===null)throw new Error("No model document is open; open one, or name it with `document`.");return n}function $(){const e=O();if(e===null)throw new Error("This project has no Play tool: `cyclotron add-play` adds @volter/editor-model-play.");if(e.transport===void 0)throw new Error("The installed Play tool has no pause, step, speed or restart; update @volter/editor-model-play.");return e}function j(e){const t=O(),n=je(e);return{document:e,mode:K(e),playing:t?.playing(e)??!1,script:n===void 0||t?.scriptPath===void 0?null:{path:t.scriptPath(n),exists:t.hasScript?.(n)??null},clock:t?.transport?.clock(e)??ee,speeds:t?.transport?.speeds??[],autoplay:st(e)}}function Ie(e,t){return e?t.on?"bot":t.person===!1?"none":"person":null}function st(e){const t=O(),n=t?.transport?.autoplay?.(e)??J,r=t?.playing(e)??!1,a=Re(r,t?.transport?.clock(e)??ee,n);return{...n,driver:Ie(r,n),why:a}}function Oe(e,t,n){return n.available?null:e&&(t.running??!t.failure)?"no-bot":"not-running"}function Re(e,t,n){switch(Oe(e,t,n)){case null:return null;case"no-bot":return"No autoplay — this game doesn’t provide a bot: its play script registers none with play.autoplay(controller).";case"not-running":return e?`Autoplay is available once the game is running, and it is not running yet${t.failure?`: ${t.failure}`:"."}`:"Autoplay is available once the game is running, and nothing is playing; `play` starts it."}}function se(e,t){if(!$().playing(e))throw new Error(`Nothing is playing in ${e}, so there is nothing to ${t}; \`play\` starts it.`)}Me({view:"model-play",title:"Game",verbs:[{id:"state",run:e=>j(M(e))},{id:"mode",run:e=>{const t=M(e),n=e?.mode??e?.to;if(n!==void 0){if(n!=="game"&&n!=="movie")throw new Error(`mode is \`game\` or \`movie\`; got ${String(n)}.`);H(t,n)}return j(t)}},{id:"game-mode",title:"Game: Switch to Game Mode",run:e=>{const t=M(e);return H(t,"game"),j(t)}},{id:"movie-mode",title:"Game: Switch to Movie Mode",run:e=>{const t=M(e);return H(t,"movie"),j(t)}},{id:"play",title:"Game: Play",run:e=>{const t=M(e),n=$();return K(t)!=="game"&&H(t,"game"),n.playing(t)||n.setPlaying(t,!0),j(t)}},{id:"stop",title:"Game: Stop",run:e=>{const t=M(e);return $().setPlaying(t,!1),j(t)}},{id:"pause",title:"Game: Pause",run:e=>{const t=M(e);return se(t,"pause"),$().transport.setPaused(t,!0),j(t)}},{id:"resume",title:"Game: Resume",run:e=>{const t=M(e);return se(t,"resume"),$().transport.setPaused(t,!1),j(t)}},{id:"step",title:"Game: Step One Tick",run:e=>{const t=M(e);se(t,"step");const{transport:n}=$();if(!n.clock(t).paused)throw new Error("step runs one tick of a PAUSED game; `pause` first.");const r=e?.count,a=r===void 0?1:typeof r=="string"&&r.trim()!==""?Number(r):typeof r=="number"?r:Number.NaN;if(!Number.isInteger(a)||a<1||a>600)throw new Error(`step's \`count\` is a whole number from 1 to 600; got ${JSON.stringify(r)}.`);for(let i=0;i<a;i++)n.step(t);return j(t)}},{id:"speed",run:e=>{const t=M(e),{transport:n}=$(),r=e?.speed??e?.to,a=Number(typeof r=="string"?r.replace(/x$/i,""):r);if(!n.speeds.includes(a))throw new Error(`speed is one of ${n.speeds.join(", ")} (simulation seconds per real second); got ${JSON.stringify(r)}.`);return n.setSpeed(t,a),j(t)}},{id:"autoplay",run:e=>{const t=M(e),n=e?.on,r=n===!0||n==="on"||n==="true"?!0:n===!1||n==="off"||n==="false"?!1:void 0;if(r===void 0)throw new Error(`autoplay's \`on\` is true or false (\`play autoplay on|off\`); got ${String(n)}.`);const a=typeof e?.behavior=="string"&&e.behavior!==""?e.behavior:null,i=e?.for??e?.limit,o=i==null?null:Number(i);if(o!==null&&!(Number.isFinite(o)&&o>0))throw new Error(`autoplay's \`for\` is a positive number of simulation seconds; got ${JSON.stringify(i)}.`);const m=$(),{transport:p}=m;if(p.setAutoplay===void 0)throw new Error("The installed Play tool has no autoplay; update @volter/editor-model-play.");const c=r?Re(m.playing(t),p.clock(t),p.autoplay?.(t)??J):null;if(c!==null)throw new Error(c);return p.setAutoplay(t,r,"cli",r?{behavior:a,limit:o}:void 0),j(t)}},{id:"restart",title:"Game: Restart",run:e=>{const t=M(e),n=$();return K(t)!=="game"&&H(t,"game"),n.transport.restart(t),j(t)}}]});const ot=e=>e.preventDefault();function U(e){return s.jsx("svg",{width:12,height:12,viewBox:"0 0 12 12","aria-hidden":"true",children:s.jsx("path",{d:e,fill:d.widgetText})})}const C={play:"M3 2l7 4-7 4z",stop:"M2.5 2.5h7v7h-7z",pause:"M3 2h2v8H3zM7 2h2v8H7z",step:"M10 2H8.5v8H10zM2.5 2v8L7.5 6z",restart:"M6 1.5V0l3 2.25-3 2.25V3a3 3 0 1 0 3 3h1.5A4.5 4.5 0 1 1 6 1.5z"};function R({label:e,testId:t,disabled:n,pressed:r,wide:a,onClick:i,children:o}){const m=d.unit;return s.jsx("button",{type:"button","data-testid":t,title:e,"aria-label":e,"aria-pressed":r,disabled:n,onMouseDown:ot,onClick:i,style:{minWidth:m,height:m,padding:a?"0 6px":0,border:`1px solid ${d.widgetOutline}`,background:r?y.playhead:d.widget,color:d.widgetText,font:"inherit",display:"inline-flex",alignItems:"center",justifyContent:"center",gap:4,cursor:n?"not-allowed":"pointer",opacity:n?.4:1},children:o})}function _e({title:e}){u.useSyncExternalStore(de,D,D);const t=u.useSyncExternalStore(Te,O,()=>null),n=ie();if(t===null||n===null)return s.jsx("span",{style:{color:d.text},children:e});const r=K(n),a=(i,o,m)=>s.jsx(R,{testId:`model-play-mode-${i}`,label:m,pressed:r===i,wide:!0,onClick:()=>H(n,i),children:o});return s.jsxs("div",{role:"group","aria-label":"Game or Movie mode","data-testid":"model-play-mode",style:{display:"flex"},children:[a("game","Game","Game mode: this area is the Game panel, with Play, pause, step, speed, restart and autoplay"),a("movie","Movie","Movie mode: this area is the Timeline, playing the file’s animation")]})}function Le(e){const t=Math.floor(e/60),n=(e-t*60).toFixed(2).padStart(5,"0");return t<60?`${t}:${n}`:`${Math.floor(t/60)}:${String(t%60).padStart(2,"0")}:${n}`}function ve(e){return`${e}×`}function at(){u.useSyncExternalStore(de,D,D);const e=ie(),t=u.useSyncExternalStore(Te,O,()=>null),n=t?.transport,r=e!==null&&(t?.playing(e)??!1),a=u.useCallback(x=>n?.subscribeClock(x)??(()=>{}),[n]),i=u.useSyncExternalStore(a,()=>e!==null&&n?n.clock(e):ee,()=>ee),o=u.useSyncExternalStore(a,()=>e!==null&&n?.autoplay?n.autoplay(e):J,()=>J),m=e===null?void 0:je(e),p=m===void 0?null:t?.scriptPath?.(m)??null,c=m===void 0?null:t?.hasScript?.(m)??null,f=e!==null&&t!==null,g=e===null?"No model document is open.":c===!1&&p!==null?`No play script yet — Play runs ${p}. \`cyclotron add-play\` adds an example.`:r&&i.failure?`Not running — ${i.failure.replace(/\.$/,"")}. Restart (or save the script) to retry, or Stop.`:r?`${i.paused?"Paused":"Playing"} ${p??""}`.trim():p===null?"Stopped.":`Stopped · Play runs ${p}`;return s.jsxs("div",{"data-testid":"blender-game-panel","data-playing":r||void 0,"data-paused":r&&i.paused||void 0,"data-failed":r&&!!i.failure||void 0,style:{position:"absolute",inset:0,display:"flex",flexDirection:"column",overflow:"hidden",background:y.back,color:d.text,font:"11px Inter, system-ui, sans-serif"},children:[s.jsxs("div",{style:{height:Q,flex:`0 0 ${Q}px`,display:"flex",alignItems:"center",gap:d.headerGap,padding:d.headerPadding,background:y.header,borderBottom:`1px solid ${d.rule}`},children:[s.jsx(_e,{title:"Game"}),s.jsx("div",{style:{flex:1}}),s.jsxs("div",{style:{display:"flex"},role:"group","aria-label":"Game transport",children:[s.jsxs(R,{testId:"model-play-button",label:r?"Stop playing (Escape)":"Play this model’s script",pressed:r,wide:!0,disabled:!f,onClick:()=>{e!==null&&t&&t.setPlaying(e,!t.playing(e))},children:[U(r?C.stop:C.play),r?"Stop":"Play"]}),n&&s.jsxs(s.Fragment,{children:[s.jsx(R,{testId:"model-play-pause",label:i.paused?"Resume":"Pause",pressed:r&&i.paused,disabled:!r,onClick:()=>{e!==null&&n.setPaused(e,!n.clock(e).paused)},children:U(i.paused?C.play:C.pause)}),s.jsx(R,{testId:"model-play-step",label:"Step one tick (while paused)",disabled:!r||!i.paused,onClick:()=>{e!==null&&n.step(e)},children:U(C.step)}),s.jsx(R,{testId:"model-play-restart",label:"Restart on a fresh copy of the model",disabled:!r,onClick:()=>{e!==null&&n.restart(e)},children:U(C.restart)})]})]}),n&&s.jsx("div",{style:{display:"flex"},role:"group","aria-label":"Game speed",children:n.speeds.map(x=>s.jsx(R,{testId:`model-play-speed-${x}`,label:`Speed ${ve(x)}`,pressed:i.speed===x,wide:!0,disabled:e===null,onClick:()=>{e!==null&&n.setSpeed(e,x)},children:ve(x)},x))}),s.jsx("div",{style:{flex:1}}),s.jsxs("span",{"data-testid":"model-play-clock",style:{color:d.widgetText,fontVariantNumeric:"tabular-nums",whiteSpace:"nowrap"},children:[Le(i.time)," · tick ",i.tick]})]}),s.jsxs("div",{style:{flex:1,minHeight:0,display:"flex",alignItems:"stretch",gap:d.headerGap,padding:d.statusPadding,overflow:"hidden"},children:[s.jsxs("div",{style:{flex:"0 1 260px",minWidth:0,display:"flex",flexDirection:"column",gap:6},children:[s.jsx("span",{"data-testid":"model-play-status",title:g,style:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:g}),n?.autoplay&&e!==null&&s.jsx(lt,{documentId:e,playing:r,clock:i,autoplay:o,transport:n})]}),t?.log&&e!==null&&s.jsx(dt,{documentId:e,log:t.log})]})]})}function lt({documentId:e,playing:t,clock:n,autoplay:r,transport:a}){const i=Oe(t,n,r),o=r.armed===!0,m=!t&&a.armAutoplay!==void 0,p=i==="no-bot"?"This game provides no bot: its play script registers none with play.autoplay(controller)":i==="not-running"?m?o?"Autoplay is armed for the next Play; press to disarm":"Turn autoplay on as soon as the game is running (if it offers a bot)":"Autoplay is available once the game is running":r.on?"Stop autoplay and drive yourself":"Let the game’s bot drive (any key or click in the game takes over)",c=i==="no-bot"?"No autoplay — this game doesn’t provide a bot":i==="not-running"?o?"Armed — turns on once the game is running":"Available once the game is running":null,f=r.behaviors??[],[g,x]=u.useState(null),Y=r.on||o?r.behavior??null:g!==null&&f.includes(g)?g:f[0]??null,k=Ie(t,r),_=k!=="none"?null:r.by==="limit"&&r.limit?`Autoplay stopped at its ${Math.round(r.limit)} s limit`:r.refused?`Autoplay didn’t start: ${r.refused}`:null,G=[r.behavior,r.state].filter(Boolean).join(" — ");return s.jsxs("div",{style:{display:"flex",alignItems:"center",gap:d.headerGap,minWidth:0},children:[f.length>1&&s.jsx("select",{"data-testid":"model-play-autoplay-behavior",title:"The bot behaviour Autoplay runs",value:Y??"",disabled:r.on,onChange:T=>x(T.target.value),style:{background:d.widget,color:d.widgetText,border:"none",borderRadius:d.widgetRadius,font:"inherit",minWidth:0},children:f.map(T=>s.jsx("option",{value:T,children:T},T))}),s.jsx("span",{title:p,style:{display:"inline-flex"},children:s.jsx(R,{testId:"model-play-autoplay",label:p,pressed:r.on||o,wide:!0,disabled:m?!1:!t||!r.available||a.setAutoplay===void 0,onClick:()=>{const T=a.autoplay?.(e)??J;O()?.playing(e)??!1?a.setAutoplay?.(e,!T.on,"panel",T.on?void 0:{behavior:Y}):a.armAutoplay?.(e,!T.armed,{behavior:Y})},children:"Autoplay"})}),c!==null?s.jsx("span",{"data-testid":"model-play-autoplay-note","data-reason":i??void 0,style:{color:d.widgetText,minWidth:0},children:c}):t&&s.jsx("span",{"data-testid":"model-play-driver","data-driver":k??void 0,title:r.state?`The bot: ${r.state}`:void 0,style:{color:r.on?y.playhead:d.widgetText,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",minWidth:0},children:k==="bot"?`Bot driving${G?` · ${G}`:""}`:_?`${_}${r.state?` — ${r.state}`:""}`:k==="person"?"You’re driving":"Nobody’s driving"})]})}const oe=200;function Ee(e){if(e===void 0)return"";try{return JSON.stringify(e)}catch{return""}}function dt({documentId:e,log:t}){const[n,r]=u.useState(""),[,a]=u.useReducer(c=>c+1,0);u.useEffect(()=>{let c=0;const f=t.subscribe(()=>{c===0&&(c=requestAnimationFrame(()=>{c=0,a()}))});return()=>{f(),cancelAnimationFrame(c)}},[t]);const i=t.tail(e,oe,n===""?void 0:n),o=u.useRef(null),m=u.useRef(!0);u.useLayoutEffect(()=>{const c=o.current;c&&m.current&&(c.scrollTop=c.scrollHeight)});const p=i.entries.at(-1)?.seq;return s.jsxs("div",{"data-testid":"model-play-log",style:{flex:1,minWidth:0,display:"flex",flexDirection:"column",gap:4},children:[s.jsxs("div",{style:{display:"flex",alignItems:"center",gap:d.headerGap},children:[s.jsx("span",{children:"Play log"}),s.jsxs("select",{"data-testid":"model-play-log-kind","aria-label":"Show entries of kind",value:n,onChange:c=>{r(c.target.value),c.target.blur()},style:{height:d.unit,background:d.widget,color:d.widgetText,border:`1px solid ${d.widgetOutline}`,font:"inherit"},children:[s.jsx("option",{value:"",children:"All kinds"}),[...new Set([...i.kinds,...n===""?[]:[n]])].map(c=>s.jsx("option",{value:c,children:c},c))]}),s.jsx("span",{style:{color:d.widgetText},children:i.total===0?"Nothing logged yet":`${i.total} written${i.total>oe?` · newest ${oe} shown`:""}`})]}),s.jsx("div",{ref:o,"data-testid":"model-play-log-entries","data-newest":p,onScroll:c=>{const f=c.currentTarget;m.current=f.scrollTop+f.clientHeight>=f.scrollHeight-4},style:{flex:1,minHeight:0,overflowY:"auto",font:"12px/1.45 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace",background:y.header,border:`1px solid ${d.rule}`,padding:"2px 6px"},children:i.entries.map(c=>s.jsxs("div",{"data-kind":c.kind,style:{display:"flex",gap:10,whiteSpace:"nowrap",color:c.source==="play"?d.widgetText:d.text},children:[s.jsx("span",{style:{flex:"0 0 auto",fontVariantNumeric:"tabular-nums"},children:Le(c.simT)}),s.jsx("span",{style:{flex:"0 0 auto"},children:c.kind}),s.jsx("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis"},title:Ee(c.facts),children:Ee(c.facts)})]},c.seq))})]})}const bt="workspace.document",ct="Timeline",Ce=.25,He=200,ae={"set-range":"Setting the frame range writes `scene.frame_start`/`frame_end`, which the document would save. This is Blender's Timeline as an INSPECTION surface: the range is drawn, never set. Change it in bpy and the Timeline re-reads it.","insert-key":"Inserting a keyframe writes the action. Editing parity is not the program — key it in bpy (`pose_bone.keyframe_insert`) and the Timeline re-reads the action on the next present.","move-key":"Moving a keyframe writes the F-Curve's control points. The summary row draws the keys the action HAS; the Dope Sheet that would move them is the Animation workspace's, and it is not built.","delete-key":"Deleting a keyframe writes the action. Editing parity is not the program.","set-interpolation":"Setting a key's interpolation writes the F-Curve. Note also that this view PLAYS a per-frame bake (`rna_action_clip`), so interpolation is not a thing it reads back.","select-key":"Selecting a keyframe writes `Keyframe.select_control_point`. The view draws the flags the data carries — a selected key takes `.common.anim.keyframe_selected` — and changes none of them."},te="No scene transport is attached yet; open the model document first.";function w(){return b.transport}function le(){return w()?.snapshot().playbackState==="playing"}function ne(e){return $e(e),P()}const Se={JITTER:1,GENERATED:2,MOVING_HOLD:3,BREAKDOWN:4,KEYFRAME:5,EXTREME:6};function De(e,t){const n=[],r=new Map;for(const a of e)if(!(t&&!a.selected)){n.push(a.object);for(const i of a.keyframes){const o=r.get(i.frame);if(!o){r.set(i.frame,{...i});continue}o.select=o.select||i.select,(Se[i.type]??0)>(Se[o.type]??0)&&(o.type=i.type)}}return{columns:[...r.values()].sort((a,i)=>a.frame-i.frame),objects:n}}function re(){return De(b.state().summary,F().onlySelected).columns.map(e=>e.frame)}function P(){const e=F();return{...b.state(),transform:e.transform,size:e.size,refusal:e.refusal,drawn:e.drawn}}function V(e){if(!b.playable)return ne(te);const t=w();return t?(t.seekFrame(e),P()):ne("No stage transport is attached yet; open the model document first.")}Me({view:"timeline",title:ct,verbs:[{id:"state",run:()=>P()},{id:"frame",title:"Timeline: Set Frame",run:e=>{const t=Number(e?.frame??e?.to);if(!Number.isFinite(t))throw new Error("frame needs a numeric `frame` — a Blender frame number.");return V(t)}},{id:"play",title:"Timeline: Play",run:()=>{if(!b.playable)throw new Error(te);const e=w();if(!e)throw new Error("No stage transport is attached yet; open the model document first.");return e.play(),P()}},{id:"pause",title:"Timeline: Pause",run:()=>{const e=w();return e?(e.pause(),P()):ne("No stage transport is attached yet.")}},{id:"jump-start",title:"Timeline: Jump to Start",run:()=>V(b.state().start)},{id:"jump-end",title:"Timeline: Jump to End",run:()=>V(b.state().end)},{id:"next-keyframe",title:"Timeline: Next Keyframe",run:()=>{const e=b.frame(),t=re().find(n=>n>e+1e-4);return t===void 0?P():V(t)}},{id:"prev-keyframe",title:"Timeline: Previous Keyframe",run:()=>{const e=b.frame(),t=re().reverse().find(n=>n<e-1e-4);return t===void 0?P():V(t)}},{id:"view-all",title:"Timeline: View All",run:()=>(Ae(),P())},{id:"zoom",title:"Timeline: Zoom",run:e=>{const t=Number(e?.to??e?.zoom);if(!Number.isFinite(t))throw new Error("zoom needs a numeric `to` — CSS pixels per frame, 0.25 … 200.");const{transform:n,size:r}=F(),a=n.startFrame+r.w/2/n.pixelsPerFrame,i=Math.min(He,Math.max(Ce,t));return I({transform:{pixelsPerFrame:i,startFrame:a-r.w/2/i}}),P()}},{id:"pan",title:"Timeline: Pan",run:e=>{const t=Number(e?.frames??0);if(!Number.isFinite(t))throw new Error("pan needs a numeric `frames`.");const{transform:n}=F();return I({transform:{...n,startFrame:n.startFrame+t}}),P()}},...Object.keys(ae).map(e=>({id:e,run:()=>ne(ae[e])}))]});const ke="timeline";function vt(){u.useSyncExternalStore(de,D,D);const e=ie(),t=e!==null&&K(e)==="game";return u.useEffect(()=>he(ke,t?it:null),[t]),u.useEffect(()=>()=>he(ke,null),[]),t?s.jsx(at,{}):s.jsx(ut,{})}function ut(){u.useSyncExternalStore(Be,ye,ye),u.useSyncExternalStore(Ne,q,q),u.useSyncExternalStore(ue,z,z);const e=u.useRef(null),t=u.useRef(-1),{transform:n,size:r,refusal:a,onlySelected:i}=F(),o=b.state();u.useEffect(()=>{const l=e.current;if(!l)return;const v=new ResizeObserver(()=>{const h={w:l.clientWidth,h:l.clientHeight},E=F().size;(E.w!==h.w||E.h!==h.h)&&I({size:h})});return v.observe(l),I({size:{w:l.clientWidth,h:l.clientHeight}}),()=>v.disconnect()},[]);const m=Je();u.useEffect(()=>{if(m===t.current)return;t.current=m;const{w:l}=F().size;if(l===0)return;const v=Math.max(1,o.end-o.start),h=Math.min(He,Math.max(Ce,l*.9/v));I({transform:{pixelsPerFrame:h,startFrame:o.start-l*.05/h},framedAt:Date.now()})},[m,o.start,o.end]);const p=u.useCallback(l=>(l-n.startFrame)*n.pixelsPerFrame,[n]),c=u.useCallback(l=>n.startFrame+l/n.pixelsPerFrame,[n]),f=u.useMemo(()=>De(o.summary,i),[o.summary,i]),g=u.useMemo(()=>{if(r.w===0)return null;const l=r.w/n.pixelsPerFrame,v=Math.max(`${Math.round(n.startFrame)}`.length,`${Math.round(n.startFrame+l)}`.length),h=Math.max(ge,v*6+Ze),E=Qe(Math.round(o.fps),r.w+1,l,h),N=et(E),ze=Math.ceil(n.startFrame/E)*E,me=[];for(let B=ze;B<=n.startFrame+l;B+=E)me.push(B);const fe=[];if(N!==null&&N*n.pixelsPerFrame>=ge/5){const B=Math.ceil(n.startFrame/N)*N;for(let W=B;W<=n.startFrame+l;W+=N)Math.abs(W/E-Math.round(W/E))>1e-6&&fe.push(W)}return{major:E,minor:N,majors:me,minors:fe}},[r.w,n,o.fps]),x=A,k=Xe+Ue/2;u.useEffect(()=>{if(!g)return;const l=[...o.warnings];o.action||l.push("Nothing in this file carries an action, so the summary row is empty — which is Blender's own empty state for a Timeline over a still file."),l.push("While a clip plays, the picture is three.js evaluating the skin over the mesh columns Blender exported at the BIND frame. Anything else Blender would re-evaluate per frame — shape keys, a Displace or Cloth modifier reading the frame, a geometry driver — does not follow the playhead."),l.push("Blender puts this view's ONLY-SHOW-SELECTED toggle in the Timeline header's View MENU (`TIME_MT_view`'s `layout.prop(scene, \"show_keys_from_selected_only\")`, `space_time.py`); this header has no menu region, so the same toggle is drawn as a header button at the leading edge, where that menu sits. The filter itself is Blender's — `ADS_FILTER_ONLYSEL`, `anim_filter.cc:254-270`, tested per object at `:2307`."),i&&f.objects.length===0&&o.summary.length>0&&l.push(`The summary row is empty because nothing animated is SELECTED, which is Blender's own answer with this filter on. ${o.summary.map(h=>h.object).join(", ")} carr${o.summary.length===1?"ies":"y"} an action; select it, or turn the filter off.`),l.push("Markers, the cache bar and the preview range are drawn by Blender's Timeline and not here; the door carries none of them.");const v={drawn:{action:o.action,object:o.object,armature:o.armature,frame:o.frame,start:o.start,end:o.end,fps:o.fps,playing:le(),keyframes:f.columns.map(h=>h.frame),onlySelected:i,summaryObjects:f.objects,majorStep:g.major,minorStep:g.minor,majorLines:g.majors.length,minorLines:g.minors.length,labels:g.majors.length,diamonds:f.columns.length,diamondRadius:we,diamondSprite:rt,bones:o.bones,tracks:o.tracks,engineCalls:o.engineCalls,warnings:l}};JSON.stringify(v.drawn)!==JSON.stringify(F().drawn)&&I(v)},[g,o,f,i]);const _=u.useRef(!1),G=u.useCallback(l=>{const v=e.current;if(!v)return;const h=v.getBoundingClientRect();w()?.seekFrame(Math.round(c(l-h.left)))},[c]),T=`${Math.round(o.frame)}`,pe=Math.max(S.minPillWidth,T.length*6+2*S.textPadding),L=p(o.frame);return s.jsxs("div",{"data-testid":"blender-timeline",style:{position:"absolute",inset:0,display:"flex",flexDirection:"column",overflow:"hidden",background:y.back,color:d.text,font:"11px Inter, system-ui, sans-serif"},children:[s.jsx(mt,{}),s.jsx("div",{ref:e,style:{flex:1,minHeight:0,position:"relative"},children:s.jsxs("svg",{width:r.w,height:r.h,style:{display:"block",cursor:"ew-resize"},"aria-label":"Timeline",onPointerDown:l=>{_.current=!0,l.currentTarget.setPointerCapture(l.pointerId),G(l.clientX)},onPointerMove:l=>{_.current&&G(l.clientX)},onPointerUp:l=>{_.current=!1,l.currentTarget.releasePointerCapture(l.pointerId)},children:[s.jsx("title",{children:"Timeline"}),s.jsx("rect",{x:0,y:0,width:r.w,height:r.h,fill:y.back}),s.jsx("rect",{x:0,y:x,width:Math.max(0,p(o.start)),height:Math.max(0,r.h-x),fill:be}),s.jsx("rect",{x:p(o.end),y:x,width:Math.max(0,r.w-p(o.end)),height:Math.max(0,r.h-x),fill:be}),g?.minors.map(l=>s.jsx("line",{x1:p(l),y1:x,x2:p(l),y2:r.h,stroke:y.gridMinor,strokeWidth:1},`n${l}`)),g?.majors.map(l=>s.jsx("line",{x1:p(l),y1:x,x2:p(l),y2:r.h,stroke:y.grid,strokeWidth:1},`m${l}`)),s.jsx("rect",{x:0,y:0,width:r.w,height:A,fill:y.scrubBack}),g?.majors.map(l=>s.jsx("text",{x:p(l),y:15.5,textAnchor:"middle",fill:y.scrubText,fontSize:11,children:Math.round(l)},`t${l}`)),s.jsx("path",{d:`M3,${k-3.5} L6.5,${k} L3,${k+3.5} Z`,fill:y.scrubText}),f.columns.map(l=>{const v=tt[l.type]??1,h=we*v,E=xe[l.type]??xe.KEYFRAME,N=p(l.frame);return s.jsx("polygon",{points:`${N},${k-h} ${N+h},${k} ${N},${k+h} ${N-h},${k}`,fill:l.select?E.selected:E.fill,stroke:y.keyBorder,strokeWidth:nt*v},`k${l.frame}`)}),s.jsx("rect",{x:L-S.stalkWidth/2,y:A,width:S.stalkWidth,height:Math.max(0,r.h-A),fill:y.playhead}),s.jsx("rect",{x:L-pe/2,y:S.margin,width:pe,height:A-2*S.margin,rx:S.radius,fill:y.playhead}),s.jsx("polygon",{points:`${L-S.tipHalfWidth},${A-S.margin} ${L+S.tipHalfWidth},${A-S.margin} ${L},${A-S.margin+S.tipHeight}`,fill:y.playhead}),s.jsx("text",{x:L,y:15.5,textAnchor:"middle",fill:y.playheadText,fontSize:11,children:T})]})}),a?s.jsx("div",{style:{borderTop:`1px solid ${d.rule}`,padding:d.statusPadding,color:d.refusal},children:a}):null]})}function pt(){u.useSyncExternalStore(ue,z,z);const{onlySelected:e}=F(),[t,n]=u.useState(!1),r=(a,i,o)=>s.jsxs("button",{type:"button",onClick:()=>{o(),n(!1)},style:{display:"flex",alignItems:"center",gap:"var(--volter-space-2)",width:"100%",padding:"var(--volter-space-1) var(--volter-space-3)",border:"none",background:"transparent",color:d.widgetText,font:"inherit",textAlign:"left",cursor:"pointer"},children:[s.jsx("span",{style:{width:12,display:"inline-block"},children:i===null?"":i?"✓":""}),a]});return s.jsxs("span",{style:{position:"relative"},children:[s.jsx("button",{type:"button","aria-haspopup":"menu","aria-expanded":t,onClick:()=>n(a=>!a),style:{border:"none",background:"transparent",color:d.text,font:"inherit",padding:"0 var(--volter-space-2)",cursor:"pointer"},children:"View"}),t?s.jsxs("span",{role:"menu",style:{position:"absolute",top:"100%",left:0,zIndex:20,minWidth:210,display:"flex",flexDirection:"column",background:d.widget,border:`1px solid ${d.widgetOutline}`,boxShadow:"0 6px 18px rgba(0,0,0,0.45)"},children:[r("Only Show Selected",e,()=>Ke(!e)),r("Frame All",null,()=>Ae())]}):null]})}function mt(){u.useSyncExternalStore(Ne,q,q),u.useSyncExternalStore(ue,z,z);const e=b.state(),t=d.unit,n=b.playable,r=(i,o,m,p)=>s.jsx("button",{type:"button",title:n?p:`${p} — ${te}`,"aria-label":p,disabled:!n,onClick:m,style:{width:t,height:t,padding:0,border:`1px solid ${d.widgetOutline}`,background:d.widget,color:d.widgetText,display:"grid",placeItems:"center",cursor:n?"pointer":"not-allowed",opacity:n?1:.4},children:o},i),a=i=>s.jsx("svg",{width:12,height:12,viewBox:"0 0 12 12","aria-hidden":"true",children:s.jsx("path",{d:i,fill:d.widgetText})});return s.jsxs("div",{style:{height:Q,flex:`0 0 ${Q}px`,display:"flex",alignItems:"center",gap:d.headerGap,padding:d.headerPadding,background:y.header,borderBottom:`1px solid ${d.rule}`},children:[s.jsx(_e,{title:"Timeline"}),s.jsx(pt,{}),s.jsx("div",{style:{flex:1}}),s.jsxs("div",{style:{display:"flex"},children:[r("jump-start",a("M2 2h1.5v8H2zM10 2v8L4.5 6z"),()=>w()?.seekFrame(e.start),"Jump to Start"),r("prev-key",a("M5 2.5v7L1.5 6zM8.5 3.2L11 6L8.5 8.8L6 6z"),()=>{const i=re().reverse().find(o=>o<b.frame()-1e-4);i!==void 0&&w()?.seekFrame(i)},"Jump to Previous Keyframe"),n&&le()?r("pause-rev",a("M3 2h2v8H3zM7 2h2v8H7z"),()=>w()?.pause(),"Pause"):r("play-reverse",a("M9 2L2 6l7 4z"),()=>w()?.play("reverse"),"Play Reverse"),n&&le()?r("pause",a("M3 2h2v8H3zM7 2h2v8H7z"),()=>w()?.pause(),"Pause"):r("play",a("M3 2l7 4-7 4z"),()=>w()?.play(),"Play"),r("next-key",a("M7 2.5v7L10.5 6zM3.5 3.2L6 6L3.5 8.8L1 6z"),()=>{const i=re().find(o=>o>b.frame()+1e-4);i!==void 0&&w()?.seekFrame(i)},"Jump to Next Keyframe"),r("jump-end",a("M10 2H8.5v8H10zM2 2v8L7.5 6z"),()=>w()?.seekFrame(e.end),"Jump to End")]}),s.jsxs("div",{style:{display:"flex"},children:[r("step-back",a("M2 2h1.5v8H2zM9.5 2v8L4.5 6z"),()=>w()?.seekFrame(Math.round(e.frame)-1),"Step Back One Frame"),r("step-forward",a("M10 2H8.5v8H10zM2.5 2v8L7.5 6z"),()=>w()?.seekFrame(Math.round(e.frame)+1),"Step Forward One Frame")]}),s.jsx("div",{style:{flex:1}}),s.jsx("input",{type:"number",value:Math.round(e.frame),onChange:i=>{const o=Number(i.target.value);Number.isFinite(o)&&w()?.seekFrame(o)},"aria-label":"Current frame",disabled:!n,title:n?void 0:te,style:{width:75,height:t,textAlign:"center",border:`1px solid ${d.widgetOutline}`,borderRadius:d.widgetRadius,background:d.widget,color:d.widgetText,font:"inherit",cursor:n?"text":"not-allowed",opacity:n?1:.4}}),s.jsxs("span",{onClick:()=>$e(ae["set-range"]),onKeyDown:()=>{},style:{color:d.text,cursor:"not-allowed"},children:["Start ",e.start," · End ",e.end]})]})}export{vt as default,bt as point,ct as title};
@@ -0,0 +1 @@
1
+ import{n as c,j as u,h_ as le}from"./volter-sdk-BlXl30lA.js";import{s as ue,b as X,h as de}from"./blender-runtime-host-BZjXBC0J.js";import"./output-pass-C2Jin9Z-.js";import"./three.module-FwjK5L7x.js";import"./linear-resolve-su8rbE2x.js";const he={transform:{cx:.5,cy:.5,zoom:512},refusal:null,size:{w:0,h:0},framedAt:0,drawn:null};let L=he,N=0;const T=new Set;let te=0;function m(){return L}function Q(){return N}function fe(t){return T.add(t),()=>{T.delete(t)}}function v(t){L={...L,...t},N+=1;for(const r of[...T])r()}function pe(){te+=1,N+=1;for(const t of[...T])t()}function me(){return te}function ne(t){v({refusal:t})}const x={back:"#303030",grid:"#303030",face:"#ffffff",faceAlpha:10/255,uvShadow:"#707070",vertex:"#000000",faceDot:"#000000"},B={vertexSize:3,edgeWidth:1,facedotSize:3},se=1,ge=(B.vertexSize*se+1.5)*Math.SQRT2,ve=.75,we=B.facedotSize*se,ye=1,J=[1,1],K=[10,10],xe="Blender's `.space_image.grid` is #303030 at full alpha (userdef_default_theme.c:586) and this view's surface is #303030, so the tile grid draws at the theme's colour and is invisible against it. The image region's own clear is the overlay engine's (DRW_draw_view, space_image.cc:758), which is not in the source checkout — the sighted read settles the contrast.",be={shadow:{inner:x.uvShadow}},Ue=Math.max(B.edgeWidth,1),ee="#ff0000";function W(t){const r=atob(t),a=new Uint8Array(r.length);for(let d=0;d<r.length;d++)a[d]=r.charCodeAt(d);return a}function Ve(t){const r=W(t);return new Float32Array(r.buffer,r.byteOffset,r.byteLength>>2)}function z(t){const r=W(t);return new Uint32Array(r.buffer,r.byteOffset,r.byteLength>>2)}function _e(t,r){const a=Number.parseInt(t.slice(1),16);return`rgba(${a>>16&255}, ${a>>8&255}, ${a&255}, ${Math.round(r*1e3)/1e3})`}const _={text:"#e6e6e6",refusal:"#ed5700",rule:"#232323",statusPadding:"3px 8px",statusGap:12},Te="workspace.document",Ee="UV Editor",D=8e3,re=16,oe=8192,E={move:t=>`Dragging a UV in "${t}" writes the mesh's UV attribute, which the document would save. This is Blender's UV editor as an INSPECTION surface: editing parity is not the program.`,select:"Selecting a UV writes the mesh's selection state. This view draws what the DATA carries — and at this pin a mesh outside edit mode carries no UV selection at all (MeshUVLoopLayer declares uv, pin, name, active, active_render, active_clone and nothing else), so everything draws unselected. Editing parity is not the program.",pin:"Pinning a UV writes `MeshUVLoopLayer.pin`, which the document would save. Existing pins ARE drawn, in Blender's own hard red. Editing parity is not the program.",unwrap:"Unwrapping runs `bpy.ops.uv.unwrap`, which rewrites every UV on the mesh. Editing parity is not the program."};le({view:"blender-uv-view",title:Ee,verbs:[{id:"state",run:()=>m()},{id:"view-all",title:"UV Editor: View All",run:()=>(pe(),m())},{id:"zoom",title:"UV Editor: Zoom",run:t=>{const r=Number(t?.to??t?.zoom);if(!Number.isFinite(r))throw new Error("zoom needs a numeric `to` — CSS pixels per UV unit, 16 … 8192.");const{transform:a}=m();return v({transform:{...a,zoom:Math.min(oe,Math.max(re,r))}}),m()}},{id:"pan",title:"UV Editor: Pan",run:t=>{const r=Number(t?.u??0),a=Number(t?.v??0);if(!Number.isFinite(r)||!Number.isFinite(a))throw new Error("pan needs numeric `u` and `v`, in UV units.");const{transform:d}=m();return v({transform:{...d,cx:d.cx+r,cy:d.cy+a}}),m()}},{id:"move-uv",run:()=>R(E.move("the active UV map"))},{id:"select",run:()=>R(E.select)},{id:"pin",run:()=>R(E.pin)},{id:"unwrap",run:()=>R(E.unwrap)}]});function R(t){return ne(t),m()}function Se(t){return!t?.uvBase64||!t.triangleBase64?null:{uv:Ve(t.uvBase64),tris:z(t.triangleBase64),starts:z(t.loopStartBase64??""),totals:z(t.loopTotalBase64??""),pins:t.pinBase64?W(t.pinBase64):null}}function je(){const t=c.useSyncExternalStore(ue,X,X);c.useSyncExternalStore(fe,Q,Q);const r=c.useRef(0),a=c.useRef(null),d=c.useRef(null),j=c.useRef(null),{transform:b,refusal:C,size:U}=m(),[,F]=[0,c.useCallback(()=>v({}),[])];c.useEffect(()=>{let e=!0;return(async()=>{try{const s=await de();if(!e)return;d.current=s,j.current=null}catch(s){if(!e)return;j.current=s instanceof Error?s.message:String(s)}F()})(),()=>{e=!1}},[t,F]),c.useEffect(()=>{const e=a.current;if(!e)return;const s=new ResizeObserver(()=>{const l={w:e.clientWidth,h:e.clientHeight},h=m().size;(h.w!==l.w||h.h!==l.h)&&v({size:l})});return s.observe(e),v({size:{w:e.clientWidth,h:e.clientHeight}}),()=>s.disconnect()},[]);const n=d.current,M=c.useMemo(()=>Se(n),[n]),O=me();c.useEffect(()=>{if(O===r.current)return;r.current=O;const e=n?.bounds??[0,0,1,1],{w:s,h:l}=m().size;if(s===0||l===0)return;const[h,g,o,f]=e,V=Math.max(o-h,.001),S=Math.max(f-g,.001),k=Math.min(oe,Math.max(re,Math.min(s/V,l/S)*.9));v({transform:{cx:(h+o)/2,cy:(g+f)/2,zoom:k},framedAt:Date.now()})},[O,n]);const w=e=>(e-b.cx)*b.zoom+U.w/2,y=e=>U.h/2-(e-b.cy)*b.zoom,i=c.useMemo(()=>{if(!n||!M)return null;const{uv:e,tris:s,starts:l,totals:h,pins:g}=M,o=[],f=[],V=[],S=[],k=l.length;for(let p=0;p<k;p++){const ce=l[p],I=h[p];if(I<3)continue;let $="",H=0,G=0;for(let A=0;A<I;A++){const Z=ce+A,q=e[Z*2],Y=e[Z*2+1];H+=q,G+=Y,$+=`${A===0?"M":"L"}${w(q).toFixed(2)} ${y(Y).toFixed(2)}`}$+="Z",o.push($),f.push($),S.push({x:w(H/I),y:y(G/I)})}const P=e.length>>1;for(let p=0;p<P&&V.length<D;p++)V.push({x:w(e[p*2]),y:y(e[p*2+1]),pinned:g?g[p]!==0:!1});return{faces:o,outlines:f,dots:V,faceDots:S,corners:P,triangles:s.length/3}},[n,M,b,U]);c.useEffect(()=>{if(!n)return;const e=[];n.layers.length===0&&n.object&&e.push(`"${n.object}" has no UV map — Blender's UV editor draws an empty tile.`),i&&i.corners>D&&e.push(`${i.corners} UV corners exceed this view's ${D}-dot budget; ${i.corners-D} corner marks are not drawn. The islands, their edges and the face dots are all drawn.`),n.image||e.push("No image behind the tile: the active material's node tree has no image texture with an image, so there is nothing for Blender's backdrop to show."),e.push(xe),e.push("The line style is SHADOW (#707070), not Blender's stock OUTLINE: `edit_uv_line_style_from_space_image` returns OUTLINE only when `SpaceImage.mode == SI_MODE_UV`, and there is no SpaceImage here."),v({drawn:{object:n.object,mesh:n.mesh,layer:n.active,layers:n.layers,mode:n.mode,loops:n.loops,polygons:n.polygons,triangles:i?.triangles??0,faces:i?.faces.length??0,edges:i?.outlines.length??0,verts:i?.dots.length??0,faceDots:i?.faceDots.length??0,pinned:i?.dots.filter(s=>s.pinned).length??0,bounds:n.bounds??null,tiles:J,subdiv:K,image:n.image?.name??null,warnings:e}})},[n,i]);const ie=c.useMemo(()=>{const e=[],[s,l]=J,[h,g]=K;for(let o=0;o<=s*h;o++){const f=o/h;e.push({key:`u${o}`,x1:w(f),y1:y(0),x2:w(f),y2:y(l),major:o%h===0})}for(let o=0;o<=l*g;o++){const f=o/g;e.push({key:`v${o}`,x1:w(0),y1:y(f),x2:w(s),y2:y(f),major:o%g===0})}return e},[b,U]),ae=n?n.active?`UV Editor · ${n.object} · ${n.active} · ${n.polygons} faces, ${n.loops} corners · ${n.mode}`:`UV Editor · ${n.object??"no mesh selected"} · no UV map · ${n.mode}`:j.current??"UV Editor · reading…";return u.jsxs("div",{"data-testid":"blender-uv-editor",style:{display:"flex",flexDirection:"column",position:"absolute",inset:0,overflow:"hidden",background:x.back,color:_.text,font:"11px Inter, system-ui, sans-serif"},children:[u.jsx("div",{ref:a,style:{flex:1,minHeight:0,position:"relative"},children:u.jsxs("svg",{width:U.w,height:U.h,style:{display:"block"},onPointerDown:()=>ne(E.select),"aria-label":"UV layout",children:[u.jsx("title",{children:"UV layout"}),ie.map(e=>u.jsx("line",{x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2,stroke:x.grid,strokeWidth:e.major?2:1},e.key)),i?.faces.map((e,s)=>u.jsx("path",{d:e,fill:_e(x.face,x.faceAlpha*ye)},`f${s}`)),i?.outlines.map((e,s)=>u.jsx("path",{d:e,fill:"none",stroke:be.shadow.inner,strokeWidth:Ue},`e${s}`)),i?.faceDots.map((e,s)=>u.jsx("circle",{cx:e.x,cy:e.y,r:we/2,fill:x.faceDot},`fd${s}`)),i?.dots.map((e,s)=>u.jsx("circle",{cx:e.x,cy:e.y,r:ge/2,fill:e.pinned?ee:x.vertex,stroke:e.pinned?ee:"none",strokeWidth:e.pinned?ve:0},`v${s}`))]})}),u.jsxs("div",{style:{borderTop:`1px solid ${_.rule}`,padding:_.statusPadding,display:"flex",gap:_.statusGap,alignItems:"center"},children:[u.jsx("span",{children:ae}),C?u.jsx("span",{style:{color:_.refusal},children:C}):null]})]})}export{je as default,Te as point,Ee as title};
@@ -0,0 +1 @@
1
+ import{h2 as s,n as r,j as n}from"./volter-sdk-BlXl30lA.js";const i="workspace.status",a="Version",l="right",c=998;function u(){const{project:t}=s(),e=r.useSyncExternalStore(t.subscribe,t.engineVersion,t.engineVersion);return e===null?null:n.jsxs("span",{className:"volter-status-copy","data-testid":"status-blender-version","data-engine-version":e,style:{display:"inline-flex",alignItems:"center",gap:"var(--volter-space-2)",fontSize:"var(--volter-font-md)"},title:`This project is built against engine ${e}`,children:[n.jsx("span",{"aria-hidden":"true",style:{width:"var(--volter-stroke-resting)",height:"var(--volter-icon-md)",background:"currentColor"}}),e]})}export{l as align,u as default,c as order,i as point,a as title};
@@ -0,0 +1,2 @@
1
+ import{a as f,S as k,P as v,b as x,s as F,A as $,c as D,o as N}from"./worker-CpcBN2Ba.js";import{s as W}from"./session-C_pIgwQU.js";const u="/bw",B=`${k}/frame.bin`,A=new Set(["scripts/startup/vgai_three.py","scripts/startup/volter_three.py"]);async function T(e){const a=f(`wali/${e}`);try{return await import(a)}catch(l){throw new Error(`The substrate skew needs ${e}, which this editor serves from the WALI pack directory beside blender.wasm (${a}): ${l instanceof Error?l.message:String(l)}`)}}async function z(e,a){const l=performance.now(),r=await fetch(f("runtime.idx"));if(!r.ok)throw new Error(`${$}/runtime.idx answered ${r.status}`);const o=await r.json(),s=await fetch(f("runtime.bin"));if(!s.ok)throw new Error(`${$}/runtime.bin answered ${s.status}`);const i=new Uint8Array(await s.arrayBuffer());let d=0;for(const t of o.files){if(d+t.size>i.byteLength)throw new Error(`Blender runtime ${t.path}: bytes ${d}..${d+t.size} lie outside the ${i.byteLength}-byte runtime blob`);if(A.has(t.path)){d+=t.size;continue}const c=`${u}/${t.path}`;e.mkdirSync(c.slice(0,c.lastIndexOf("/")),{recursive:!0}),e.writeFileSync(c,i.subarray(d,d+t.size)),d+=t.size}if(d!==i.byteLength)throw new Error(`Blender runtime index accounts for ${d} of the ${i.byteLength} bytes served`);const h=Math.round(performance.now()-l);return a("log",`blender: staged Blender's ${o.files.length}-file runtime tree in ${h} ms`),{files:o.files.length,bytes:i.byteLength,ms:h}}async function C(e,a){const l=performance.now(),r=await fetch(f("runtime.idx"));if(!r.ok)throw new Error(`${$}/runtime.idx answered ${r.status}`);const o=await r.json(),s=o.files.reduce((b,n)=>b+n.size,0),i=await fetch(f("runtime.bin"));if(!i.ok||!i.body)throw new Error(`${$}/runtime.bin answered ${i.status}`);const d=new SharedArrayBuffer(s),h=new Uint8Array(d);let t=0;const c=i.body.getReader();for(;;){const{done:b,value:n}=await c.read();if(b)break;if(t+n.byteLength>s)throw new Error(`Blender runtime blob is longer than the ${s} bytes its index accounts for`);h.set(n,t),t+=n.byteLength}if(t!==s)throw new Error(`Blender runtime index accounts for ${s} bytes; the blob served ${t}`);const y=e(u,o.files,d,{mtimeMs:Date.now(),include:b=>!A.has(b)});return a("log",`blender: shared Blender's ${o.files.length}-file runtime tree in ${Math.round(performance.now()-l)} ms`),y}async function H(e,a,l){const r=performance.now(),o=await fetch(f("runtime.idx"));if(!o.ok)throw new Error(`${$}/runtime.idx answered ${o.status}`);const s=await o.text(),i=JSON.parse(s),h=[...new Uint8Array(await crypto.subtle.digest("SHA-256",new TextEncoder().encode(s))).slice(0,12)].map(n=>n.toString(16).padStart(2,"0")).join(""),t=`${_}${h}`;if(a)try{await a(t)}catch(n){l("log",`blender: the runtime tree stays in memory: it cannot be held in use (${n instanceof Error?n.message:String(n)})`);return}let c;try{c=new Worker(f("wali/browser-wali/tree-store-worker.js"),{type:"module"})}catch(n){l("log",`blender: the runtime tree stays in memory: no installer worker (${n instanceof Error?n.message:String(n)})`);return}const y=await new Promise(n=>{let g=!1;const S=w=>{g||(g=!0,n(w))};let E=setTimeout(()=>S({ok:!1,error:`no progress in ${R/1e3} s`}),R);c.onmessage=w=>{if(clearTimeout(E),typeof w.data?.progress=="number"){g||(E=setTimeout(()=>S({ok:!1,error:`no progress in ${R/1e3} s`}),R));return}c.terminate(),S(w.data)},c.onerror=w=>{clearTimeout(E),c.terminate(),S({ok:!1,error:w.message||"the installer worker failed to start"})},c.postMessage({projectId:t,family:_,root:u,files:i.files,blobUrl:new URL(f("runtime.bin"),location.href).href,mtimeMs:Date.now()})});if(!y.ok){l("log",`blender: the runtime tree stays in memory: it could not be installed (${y.error})`);return}const b=e(u,i.files,t,{mtimeMs:Date.now(),include:n=>!A.has(n)});return l("log",`blender: Blender's ${i.files.length}-file runtime tree is on disk (${y.installed?`installed, ${Math.round((y.bytes??0)/1e6)} MB`:"installed before"}) in ${Math.round(performance.now()-r)} ms`),b}const _="host-tree.blender-runtime-",R=2e4;function U(e){const a=new Set,l=()=>{for(const r of[...a])r()};return e.on?.("change",l),e.on?.("delete",l),{...e.on?{changed:r=>new Promise(o=>{const s=()=>{clearTimeout(i),a.delete(s),o()},i=setTimeout(s,r);a.add(s)})}:{},readFile:r=>e.readFile(r),writeFile:(r,o)=>(e.writeFileSync(r,o),Promise.resolve()),mkdirTree:async r=>e.mkdirSync(r,{recursive:!0}),readdir:async r=>e.readdirSync(r),stat:async r=>{if(!e.existsSync(r))return null;const o=e.statSync(r);return{size:o.size,mode:o.mode&4095|(o.isDirectory()?16384:32768),mtimeMs:o.mtimeMs}},unlink:async r=>e.unlinkSync(r)}}async function V(e,a){const l=performance.now(),[r,o,s]=await Promise.all([T("browser-wali/worker-program.js"),T("browser-runtime/browser-memory-filesystem.js"),T("browser-wali/shared-file-layer.js").catch(()=>({}))]),i=r.BrowserWaliWorkerProgram,d=o.BrowserMemoryFileSystem;if(!i||!d)throw new Error("The substrate modules this editor served do not export BrowserWaliWorkerProgram and BrowserMemoryFileSystem; the WALI pack directory holds a browser-substrate this engine does not know.");const h=r.preloadWaliModule;h&&a.integrity&&h(f("blender.wasm"),a.integrity).catch(()=>{});const t=new d;for(const m of["/tmp","/root","/work",k,...v,e.project])t.mkdirSync(m,{recursive:!0});const c=s.sharedFileLayerFromIndex,y=s.storeFileLayerFromIndex,b=s.holdTreeStore,n=(y?await H(y,b,e.log):void 0)??(c?await C(c,e.log):void 0);n||await z(t,e.log),t.writeFileSync(x,W);const g=a.workers??{pool:16,blender:4},S=new i(t,{url:f("blender.wasm"),...a.integrity?{integrity:a.integrity}:{},cwd:"/work",env:{HOME:"/root",TMPDIR:"/tmp",PATH:"/usr/bin:/bin",BLENDER_SYSTEM_RESOURCES:u,BLENDER_SYSTEM_SCRIPTS:`${u}/scripts`,BLENDER_SYSTEM_DATAFILES:`${u}/datafiles`,BLENDER_SYSTEM_PYTHON:`${u}/python`,PYTHONPATH:`${u}/python/lib/numpy313.zip:${u}/python/lib/wheels313.zip`,VOLTER_SESSION_ROOT:k,VOLTER_EXPORT_BUFFER_PATH:B,OPENIMAGEIO_THREADS:"1"},...n?{layers:[n]}:{},privateRoots:["/tmp"],threadPoolSize:g.pool,network:{allowedHosts:[],maxConnections:0,maxBytes:0}});let E=null,w=null;const L=m=>{for(const p of m.split(`
2
+ `))p!==""&&(p.startsWith("@@VOLTER-READY ")&&(E=p.slice(15)),e.log(D(p),p))};for(S.run(["/blender","-b","--factory-startup","-noaudio","--python-use-system-env","-t",String(g.blender),"--python",x],{onStdout:L,onStderr:L,onDiagnostic:m=>e.log("error",`@@VOLTER-ERROR ${m}`)}).then(m=>{w=`Blender exited ${m.exitCode}`},m=>{w=m instanceof Error?m.message:String(m)}).finally(()=>{w!==null&&e.log("error",`@@VOLTER-ERROR the Blender program ended: ${w}`)});E===null;){if(w!==null)throw new Error(`Blender never reached its session: ${w}`);await F(5)}const M=performance.now()-l,I=JSON.parse(E);e.log("log",`blender: the substrate skew is up (${g.blender} Blender threads in a pool of ${g.pool}; Blender is SERIAL without -t N and says so)`);const O=U(t),{request:P}=N(O,e,()=>w);return{skew:"wali",banner:I,files:O,request:P,readArena:()=>t.readFile(B),bootMs:M,memoryBytes:()=>null,releasedPayloadBytes:null}}export{V as startWaliBlenderEngine};
@@ -0,0 +1 @@
1
+ import{O as l}from"./blender-runtime-host-BZjXBC0J.js";import"./output-pass-C2Jin9Z-.js";import"./three.module-FwjK5L7x.js";import"./linear-resolve-su8rbE2x.js";import"./volter-sdk-BlXl30lA.js";const s="workspace.command",e=(o,n)=>({...n===void 0?{}:{timeoutMs:n},derivedRefresh:o,handle:r=>l(r)}),c={"blender-draw-batching":e("none"),"blender-start":e("none",12e4),"blender-stop":e("none",30*6e4),"blender-execute":e("always",30*6e4),"blender-native-preview":e("none",12e4),"blender-scene-info":e("none",6e4),"blender-object-info":e("none",6e4),"blender-screenshot-view":e("always",6e4),"blender-read-file":e("none",6e4),"blender-write-file":e("none",6e4),"blender-list-files":e("none",6e4),"blender-rna":e("none",6e4),"blender-rna-context":e("none",6e4),"blender-rna-set":e("always",6e4),"blender-outliner":e("none",6e4),"blender-node-tree":e("none",6e4),"blender-uv-layout":e("none",6e4),"blender-rig":e("none",6e4),"blender-action-clip":e("none",12e4),"blender-node-view":e("none"),"blender-outliner-set":e("always",6e4),"blender-status":e("none")};export{c as commands,s as point};
@@ -0,0 +1 @@
1
+ import{j as e}from"./volter-sdk-BlXl30lA.js";const w="workspace.status",m="Mouse hints",j="left",b=0,u=[{button:"left",label:"Select"},{button:"middle",label:"Pan View"},{button:"right",label:"Orbit View"}],l=1,h=8,a=5,x=1,r=6.25,g=3.6,i={width:12,height:16};function p({button:t}){const s=`volter-mouse-${t}`,c=i.width-a,d=t==="right"?c:0,o=l/2,n=g;return e.jsxs("svg",{viewBox:`0 0 ${i.width} ${i.height}`,role:"presentation","aria-hidden":"true",focusable:"false",style:{height:"var(--volter-icon-lg)",width:"auto",display:"block",flex:"0 0 auto"},children:[e.jsxs("title",{children:[t," mouse button"]}),e.jsx("clipPath",{id:`${s}-outer`,children:e.jsx("rect",{x:"0",y:"0",width:i.width,height:i.height,rx:n})}),e.jsxs("mask",{id:`${s}-shell`,children:[e.jsx("rect",{x:"0",y:"0",width:i.width,height:i.height,fill:"white"}),t!=="middle"&&e.jsx("rect",{x:t==="right"?r:-1,y:-1,width:t==="right"?i.width-r+1:r+1,height:h+x+1,fill:"black"})]}),e.jsx("rect",{x:o,y:o,width:i.width-l,height:i.height-l,rx:n-o,fill:"none",stroke:"currentColor",strokeWidth:l,mask:`url(#${s}-shell)`}),t!=="middle"&&e.jsx("rect",{x:d,y:"0",width:a,height:h,fill:"currentColor",clipPath:`url(#${s}-outer)`}),t==="middle"&&e.jsx("rect",{x:"4",y:"2",width:"4",height:"7",rx:"1.25",fill:"currentColor"})]})}function y(){return e.jsx("span",{className:"volter-status-copy","data-testid":"status-blender-mouse-hints",style:{display:"inline-flex",alignItems:"center",gap:"var(--volter-space-5)"},children:u.map(t=>e.jsxs("span",{"data-mouse-button":t.button,style:{display:"inline-flex",alignItems:"center",gap:"var(--volter-space-1)",fontSize:"var(--volter-font-md)"},title:`${t.label} — the ${t.button} mouse button in the viewport`,children:[e.jsx(p,{button:t.button}),t.label]},t.button))})}export{j as align,y as default,b as order,w as point,m as title};