@volter/cyclotron 0.5.191 → 0.5.192

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 (1053) hide show
  1. package/BUNDLED_NOTICES +12 -12
  2. package/dist/.vite/manifest.json +1179 -1179
  3. package/dist/assets/EntityModelDocument-KYkNDaSy.js +1 -0
  4. package/dist/assets/EnvironmentAssetDocument-Bn36-K03.js +1 -0
  5. package/dist/assets/InspectorObjectPreview-CQMs9zha.js +1 -0
  6. package/dist/assets/LiveModuleDocument-ye1IT-i6.js +2 -0
  7. package/dist/assets/LutAssetDocument-CouZZubV.js +1 -0
  8. package/dist/assets/ModelAssetDocument-SpE-ctRj.js +1 -0
  9. package/dist/assets/NonThreeAuthoringBootstrap-BAe_hy9t.js +1 -0
  10. package/dist/assets/Object3DDocumentToolbar-Bfm-RTS8.js +1 -0
  11. package/dist/assets/Object3DPreview-C4Ai3BNI.js +2 -0
  12. package/dist/assets/QuarksAssetDocument-CqYjSnLo.js +2 -0
  13. package/dist/assets/ShaderAssetDocument-BBT3ENGG.js +1 -0
  14. package/dist/assets/StageHost-qZAn6HZ3.js +1179 -0
  15. package/dist/assets/ToolObject3DPreview-ClIcOYFk.js +1 -0
  16. package/dist/assets/ViewportShadingMenu-DmM-Odyl.js +1 -0
  17. package/dist/assets/animation-mixers.service-CsBdF1O3.js +1 -0
  18. package/dist/assets/animation-timeline.utility-DRfepAbV.js +1 -0
  19. package/dist/assets/asset-preview-jtcCFntF.js +4 -0
  20. package/dist/assets/blender-node-editor.document-Bi2T12bG.js +1 -0
  21. package/dist/assets/blender-properties-model-Yj49RcLm.js +1 -0
  22. package/dist/assets/blender-properties-tab-Dtap7p2U.js +3 -0
  23. package/dist/assets/blender-runtime-host-CMI7ldx1.js +17 -0
  24. package/dist/assets/blender-runtime.document-D0NB4iPR.js +13 -0
  25. package/dist/assets/blender-screenshot.menu-D0-n31XK.js +1 -0
  26. package/dist/assets/blender-timeline.document-_1xorgQ6.js +1 -0
  27. package/dist/assets/blender-uv-editor.document-Dki4Ui-b.js +1 -0
  28. package/dist/assets/blender-version.status-DlBU0k-r.js +1 -0
  29. package/dist/assets/blender.command-BcpIwWTF.js +1 -0
  30. package/dist/assets/blender.status-B1L-FZyU.js +1 -0
  31. package/dist/assets/model-inspection-jRplyguX.js +1 -0
  32. package/dist/assets/models.finder-jvcjSDNd.js +1 -0
  33. package/dist/assets/object3d-document-session-registry-_NnPOZmk.js +2 -0
  34. package/dist/assets/play-mode-DljPhCBr.js +7208 -0
  35. package/dist/assets/product-Dcs9ogdH.js +14 -0
  36. package/dist/assets/properties-bone-constraints.inspector-sNOrOqmn.js +1 -0
  37. package/dist/assets/properties-bone.inspector-DrRAhkXh.js +1 -0
  38. package/dist/assets/properties-collection.inspector-D2bNhLqd.js +1 -0
  39. package/dist/assets/properties-constraints.inspector-CGTEqVBY.js +1 -0
  40. package/dist/assets/properties-data.inspector-nwiHdy4s.js +1 -0
  41. package/dist/assets/properties-material.inspector-CPW_Te19.js +1 -0
  42. package/dist/assets/properties-modifiers.inspector-CsIgxGPe.js +1 -0
  43. package/dist/assets/properties-object.inspector-Cwx4QctT.js +1 -0
  44. package/dist/assets/properties-output.inspector-CgChOQat.js +1 -0
  45. package/dist/assets/properties-particles.inspector-B8j59UFB.js +1 -0
  46. package/dist/assets/properties-physics.inspector-ComSsHn6.js +1 -0
  47. package/dist/assets/properties-render.inspector-BTqY-F5-.js +1 -0
  48. package/dist/assets/properties-scene.inspector-C-R7eu1o.js +1 -0
  49. package/dist/assets/properties-texture.inspector-CFmTTdHS.js +1 -0
  50. package/dist/assets/properties-view-layer.inspector-BvMUCTd_.js +1 -0
  51. package/dist/assets/properties-world.inspector-Dpb6EWk8.js +1 -0
  52. package/dist/assets/react-18-BDYozTc0.js +1 -0
  53. package/dist/assets/stage-keyboard-Cjy_uKPi.js +1 -0
  54. package/dist/assets/stage-overlay-set-BV78wZfK.js +1 -0
  55. package/dist/assets/stage-presence-markers-CJVuC1Vh.js +1 -0
  56. package/dist/assets/stage-transform-tools-B21BRk-L.js +1 -0
  57. package/dist/assets/standard-viewport-dressing-zXbS_1ew.js +24 -0
  58. package/dist/assets/three-integration.service-Bfy6rPSh.js +2 -0
  59. package/dist/assets/volter-sdk-BwU3fa6G.js +2358 -0
  60. package/dist/assets/volter-sdk-account-BlUZdl9g.js +1 -0
  61. package/dist/assets/volter-sdk-client-C_pM7u8F.js +1 -0
  62. package/dist/assets/volter-sdk-contributions-CyyzzsHD.js +1 -0
  63. package/dist/assets/volter-sdk-css-numeric-style-B404pZI8.js +1 -0
  64. package/dist/assets/volter-sdk-document-probe-DAjYzNFt.js +1 -0
  65. package/dist/assets/volter-sdk-editor-view-suHsPgK2.js +1 -0
  66. package/dist/assets/volter-sdk-host-58UWGff-.js +1 -0
  67. package/dist/assets/volter-sdk-http-transport.browser-VJksIuNN.js +1 -0
  68. package/dist/assets/volter-sdk-index-DQpzb0WD.js +1 -0
  69. package/dist/assets/volter-sdk-kit-CapabilityCoverageSection-C41uHAFx.js +1 -0
  70. package/dist/assets/volter-sdk-kit-account-client-BnrRHdPV.js +1 -0
  71. package/dist/assets/volter-sdk-kit-action-registry-Co0Hbo6i.js +1 -0
  72. package/dist/assets/volter-sdk-kit-active-product-7gseHcVz.js +1 -0
  73. package/dist/assets/volter-sdk-kit-active-project-Bmrlj0XL.js +1 -0
  74. package/dist/assets/volter-sdk-kit-adapter-editor-config-DqGAdw2_.js +1 -0
  75. package/dist/assets/volter-sdk-kit-adapter-observation-Y-Cr3BiX.js +1 -0
  76. package/dist/assets/volter-sdk-kit-animation-animation-clock-BYmBGV0P.js +1 -0
  77. package/dist/assets/volter-sdk-kit-animation-stage-transport-CY7-VoVp.js +1 -0
  78. package/dist/assets/volter-sdk-kit-api-assets-CRsoN16p.js +1 -0
  79. package/dist/assets/volter-sdk-kit-api-base-Dw9L5xJS.js +1 -0
  80. package/dist/assets/volter-sdk-kit-api-build-BapF1Knc.js +1 -0
  81. package/dist/assets/volter-sdk-kit-api-logs-ClNHtQ6y.js +1 -0
  82. package/dist/assets/volter-sdk-kit-api-project-identity-CLam3F93.js +1 -0
  83. package/dist/assets/volter-sdk-kit-api-project-open-D9BK6gAR.js +1 -0
  84. package/dist/assets/volter-sdk-kit-api-project-source-B4ZDf1-O.js +1 -0
  85. package/dist/assets/volter-sdk-kit-api-project-state-Q0gbhHMy.js +1 -0
  86. package/dist/assets/volter-sdk-kit-api-relay-CEs5T2gc.js +1 -0
  87. package/dist/assets/volter-sdk-kit-api-settings-DQhJJaCN.js +1 -0
  88. package/dist/assets/volter-sdk-kit-api-themes-CK0mpUed.js +1 -0
  89. package/dist/assets/volter-sdk-kit-api-worktrees-CZAcA-yg.js +1 -0
  90. package/dist/assets/volter-sdk-kit-asset-capabilities-BH2tqp_X.js +1 -0
  91. package/dist/assets/volter-sdk-kit-asset-compare-core-CO4rbaNo.js +1 -0
  92. package/dist/assets/volter-sdk-kit-asset-editor-context-Crd2QR_x.js +1 -0
  93. package/dist/assets/volter-sdk-kit-asset-events-Cfuds14S.js +1 -0
  94. package/dist/assets/volter-sdk-kit-asset-inspector-actions-BOh3j-zP.js +1 -0
  95. package/dist/assets/volter-sdk-kit-asset-selection-UhfuT50E.js +1 -0
  96. package/dist/assets/volter-sdk-kit-asset-selection-viewer-registry-EWMtCoHo.js +1 -0
  97. package/dist/assets/volter-sdk-kit-asset-thumbnails-CzMUys7a.js +1 -0
  98. package/dist/assets/volter-sdk-kit-asset-viewers-Cf_KVYEv.js +1 -0
  99. package/dist/assets/volter-sdk-kit-asset-workflow-asset-import-jobs-CBNjRa8N.js +1 -0
  100. package/dist/assets/volter-sdk-kit-asset-workflow-asset-ledger-_i8-7mdV.js +1 -0
  101. package/dist/assets/volter-sdk-kit-asset-workflow-asset-ledger-backend-C20xqeUO.js +1 -0
  102. package/dist/assets/volter-sdk-kit-asset-workflow-asset-materialization-report-Dech0lQC.js +1 -0
  103. package/dist/assets/volter-sdk-kit-asset-workflow-asset-pack-manifest-pPS9qzPW.js +1 -0
  104. package/dist/assets/volter-sdk-kit-asset-workflow-audio-preview-player-0wPh24zI.js +1 -0
  105. package/dist/assets/volter-sdk-kit-asset-workflow-audio-waveform-BAY5AA4K.js +1 -0
  106. package/dist/assets/volter-sdk-kit-asset-workflow-cloud-asset-client-DRc8hWEO.js +1 -0
  107. package/dist/assets/volter-sdk-kit-asset-workflow-hosted-asset-materialization-BW7Al90A.js +1 -0
  108. package/dist/assets/volter-sdk-kit-asset-workflow-image-view-scale-DNIgToKY.js +1 -0
  109. package/dist/assets/volter-sdk-kit-asset-workflow-ledger-write-lock-DT7NxaAG.js +1 -0
  110. package/dist/assets/volter-sdk-kit-asset-workflow-pixi-spritesheet-F0tDOvEn.js +1 -0
  111. package/dist/assets/volter-sdk-kit-asset-workflow-preview-resource-lifetime-BvmHntAY.js +1 -0
  112. package/dist/assets/volter-sdk-kit-asset-workflow-project-asset-commands-Dar362Gf.js +1 -0
  113. package/dist/assets/volter-sdk-kit-asset-workflow-project-content-DAMV_NEZ.js +1 -0
  114. package/dist/assets/volter-sdk-kit-asset-workflow-thumbnail-system-D9b6o-CL.js +1 -0
  115. package/dist/assets/volter-sdk-kit-authoring-active-adapter-BZ9hzFLG.js +1 -0
  116. package/dist/assets/volter-sdk-kit-authoring-active-systems-Cpbjxaoi.js +1 -0
  117. package/dist/assets/volter-sdk-kit-authoring-adapter-key-CNJDTSi4.js +1 -0
  118. package/dist/assets/volter-sdk-kit-authoring-authoring-asset-url-BnteIxrT.js +1 -0
  119. package/dist/assets/volter-sdk-kit-authoring-bootstrap-state-DMaoNrQW.js +1 -0
  120. package/dist/assets/volter-sdk-kit-authoring-boundary-authoring-adapter-DBAwTDuf.js +1 -0
  121. package/dist/assets/volter-sdk-kit-authoring-canvas-scene-guides-DWrvby2w.js +1 -0
  122. package/dist/assets/volter-sdk-kit-authoring-composite-authoring-adapter-C4-Kp99J.js +1 -0
  123. package/dist/assets/volter-sdk-kit-authoring-consumer-actions-CBBDoLEX.js +1 -0
  124. package/dist/assets/volter-sdk-kit-authoring-design-time-layers-DuxPqGrN.js +1 -0
  125. package/dist/assets/volter-sdk-kit-authoring-design-time-mount-registry-Div61xFj.js +1 -0
  126. package/dist/assets/volter-sdk-kit-authoring-edit-mode-authoring-lp1HgOZY.js +1 -0
  127. package/dist/assets/volter-sdk-kit-authoring-empty-project-authoring-DESJUilA.js +1 -0
  128. package/dist/assets/volter-sdk-kit-authoring-instance-source-menu-Yw8ilOpP.js +1 -0
  129. package/dist/assets/volter-sdk-kit-authoring-layered-pick-CnFv-JJ4.js +1 -0
  130. package/dist/assets/volter-sdk-kit-authoring-mounted-root-subjects-BG3VV4R2.js +1 -0
  131. package/dist/assets/volter-sdk-kit-authoring-no-authoring-adapter-DdsbWdzA.js +1 -0
  132. package/dist/assets/volter-sdk-kit-authoring-object3d-document-persistence-Cz3dTWOm.js +1 -0
  133. package/dist/assets/volter-sdk-kit-authoring-panel-authoring-CVVMuMz7.js +1 -0
  134. package/dist/assets/volter-sdk-kit-authoring-project-authoring-session-Dr97ZYKO.js +1 -0
  135. package/dist/assets/volter-sdk-kit-authoring-provenance-B5PenuKN.js +1 -0
  136. package/dist/assets/volter-sdk-kit-authoring-react-canvas-navigation-C-FLncdT.js +1 -0
  137. package/dist/assets/volter-sdk-kit-authoring-react-design-canvas-style-mWGHuhfC.js +1 -0
  138. package/dist/assets/volter-sdk-kit-authoring-react-story-board-BJdVcnM0.js +1 -0
  139. package/dist/assets/volter-sdk-kit-authoring-seam-evidence-kaO6Kcw3.js +1 -0
  140. package/dist/assets/volter-sdk-kit-authoring-selection-scope-MaPGsoaC.js +1 -0
  141. package/dist/assets/volter-sdk-kit-authoring-shell-document-ops-fzF3ajnE.js +1 -0
  142. package/dist/assets/volter-sdk-kit-authoring-story-board-chrome-fit-BmaeUc2Q.js +1 -0
  143. package/dist/assets/volter-sdk-kit-authoring-three-root-_Iik8VOw.js +1 -0
  144. package/dist/assets/volter-sdk-kit-authoring-viewport-tool-context-BMaVuFyB.js +1 -0
  145. package/dist/assets/volter-sdk-kit-authoring-viewport-tool-owner-D7gzEf8Y.js +1 -0
  146. package/dist/assets/volter-sdk-kit-authoring-world-session-state-DHU1uP-A.js +1 -0
  147. package/dist/assets/volter-sdk-kit-availability-tick-mnrfOjCO.js +1 -0
  148. package/dist/assets/volter-sdk-kit-bitmap-label-tfpyi7Ai.js +1 -0
  149. package/dist/assets/volter-sdk-kit-boot-routing-BHPc5GLo.js +1 -0
  150. package/dist/assets/volter-sdk-kit-breakpoint-state-Db1oqXJX.js +1 -0
  151. package/dist/assets/volter-sdk-kit-build-identity-BTQ1Xdpa.js +1 -0
  152. package/dist/assets/volter-sdk-kit-bytes-codec-DvWCmxma.js +1 -0
  153. package/dist/assets/volter-sdk-kit-cancellation-reason-BEjzQjCf.js +1 -0
  154. package/dist/assets/volter-sdk-kit-canvas-frames-BJEuXRrc.js +1 -0
  155. package/dist/assets/volter-sdk-kit-capture-camera-pose-YJBoQ23O.js +1 -0
  156. package/dist/assets/volter-sdk-kit-capture-size-EmnVLs8n.js +1 -0
  157. package/dist/assets/volter-sdk-kit-chrome-registry-Cs0k1OX1.js +1 -0
  158. package/dist/assets/volter-sdk-kit-chrome-slot-registry-BwDDbLjQ.js +1 -0
  159. package/dist/assets/volter-sdk-kit-collaboration-client-C2jtyYW3.js +1 -0
  160. package/dist/assets/volter-sdk-kit-collaboration-presence-D3UftauX.js +1 -0
  161. package/dist/assets/volter-sdk-kit-command-dispatch-BZWUjbx5.js +1 -0
  162. package/dist/assets/volter-sdk-kit-command-listener-CfFEgEYh.js +1 -0
  163. package/dist/assets/volter-sdk-kit-command-registry-CxqLDZ_t.js +1 -0
  164. package/dist/assets/volter-sdk-kit-component-board-registry-wPpm4hz2.js +1 -0
  165. package/dist/assets/volter-sdk-kit-component-states-registry-DUnoMxYg.js +1 -0
  166. package/dist/assets/volter-sdk-kit-components-AlignToolbar-kgkYRPYY.js +1 -0
  167. package/dist/assets/volter-sdk-kit-components-ApplicationMenus-DSUoF1z8.js +1 -0
  168. package/dist/assets/volter-sdk-kit-components-AssetEditorShell-BsmfaAE9.js +1 -0
  169. package/dist/assets/volter-sdk-kit-components-AssetInspectorToolSection-GxYRyjBh.js +1 -0
  170. package/dist/assets/volter-sdk-kit-components-BoardRulers-XXJ7RCz4.js +1 -0
  171. package/dist/assets/volter-sdk-kit-components-CanvasAddNodeDialogs-DSg-5iRY.js +1 -0
  172. package/dist/assets/volter-sdk-kit-components-CanvasSceneViewport-C8suTPNd.js +1 -0
  173. package/dist/assets/volter-sdk-kit-components-ChromeSlot-kgnOcXb4.js +1 -0
  174. package/dist/assets/volter-sdk-kit-components-CodeView-8_n22zvN.js +1 -0
  175. package/dist/assets/volter-sdk-kit-components-CompactInspectorShell-DkR_oNfI.js +1 -0
  176. package/dist/assets/volter-sdk-kit-components-ConsolePanel-DiI4aQRP.js +1 -0
  177. package/dist/assets/volter-sdk-kit-components-GameplaySessionTimeline-BwzyAzUn.js +1 -0
  178. package/dist/assets/volter-sdk-kit-components-InspectionProjection-Cz94_Rt7.js +1 -0
  179. package/dist/assets/volter-sdk-kit-components-Inspector-BPFGLp3d.js +1 -0
  180. package/dist/assets/volter-sdk-kit-components-InspectorCanvasPreview-CA1NTcqw.js +1 -0
  181. package/dist/assets/volter-sdk-kit-components-InspectorFieldsSection-BuwRGDJ0.js +1 -0
  182. package/dist/assets/volter-sdk-kit-components-InspectorStoriesSection-BsVaquIj.js +1 -0
  183. package/dist/assets/volter-sdk-kit-components-InspectorToolSection-Di0bMd01.js +1 -0
  184. package/dist/assets/volter-sdk-kit-components-InspectorTransformSection-_E4Y2mdm.js +1 -0
  185. package/dist/assets/volter-sdk-kit-components-LightExplorerPanel-4D34umvc.js +1 -0
  186. package/dist/assets/volter-sdk-kit-components-MediaProperties-BtpXA40W.js +1 -0
  187. package/dist/assets/volter-sdk-kit-components-ProjectHeader-COVqavbg.js +1 -0
  188. package/dist/assets/volter-sdk-kit-components-ReactCanvasControls-lvb140oy.js +1 -0
  189. package/dist/assets/volter-sdk-kit-components-RootSelectionOverlay-BWDtha0N.js +1 -0
  190. package/dist/assets/volter-sdk-kit-components-RootTextEditor-E99FydcX.js +1 -0
  191. package/dist/assets/volter-sdk-kit-components-SaveStatus-DolfRGCT.js +1 -0
  192. package/dist/assets/volter-sdk-kit-components-SurfaceStateOverlay-BHtKccFF.js +1 -0
  193. package/dist/assets/volter-sdk-kit-components-ToolContributionSurfaces-D02jF-QD.js +1 -0
  194. package/dist/assets/volter-sdk-kit-components-ToolHost-xY2N5GR3.js +1 -0
  195. package/dist/assets/volter-sdk-kit-components-Toolbar-XTw72bRl.js +1 -0
  196. package/dist/assets/volter-sdk-kit-components-TransientHint-LyCJ6M5h.js +1 -0
  197. package/dist/assets/volter-sdk-kit-components-VersionControlSection-CaUBgU7Q.js +1 -0
  198. package/dist/assets/volter-sdk-kit-components-ViewportOverlaysMenu-DJm0Vtra.js +1 -0
  199. package/dist/assets/volter-sdk-kit-components-VolterLogo-7QJN2Aue.js +1 -0
  200. package/dist/assets/volter-sdk-kit-components-WorktreeSwitcher-Cm6EQlo9.js +1 -0
  201. package/dist/assets/volter-sdk-kit-components-account-documents-C1w8-N3m.js +1 -0
  202. package/dist/assets/volter-sdk-kit-components-asset-documents-o5P9hniy.js +1 -0
  203. package/dist/assets/volter-sdk-kit-components-asset-editor-persistence-DLsU0r1E.js +1 -0
  204. package/dist/assets/volter-sdk-kit-components-asset-selection-section-BYEwJfLy.js +1 -0
  205. package/dist/assets/volter-sdk-kit-components-asset-thumbnails-C-LgDd2_.js +1 -0
  206. package/dist/assets/volter-sdk-kit-components-asset-viewers-AudioViewer-BR48_QX5.js +1 -0
  207. package/dist/assets/volter-sdk-kit-components-asset-viewers-GenericJsonViewer-C9IP9LWM.js +1 -0
  208. package/dist/assets/volter-sdk-kit-components-asset-viewers-ImageViewer-Dffdgv60.js +1 -0
  209. package/dist/assets/volter-sdk-kit-components-asset-viewers-JsonAssetDocument-ChmgYQAP.js +1 -0
  210. package/dist/assets/volter-sdk-kit-components-asset-viewers-OnlineAssetDetail-Bdpm--Jx.js +1 -0
  211. package/dist/assets/volter-sdk-kit-components-asset-viewers-SourceAssetViewer-DdJX9xCd.js +1 -0
  212. package/dist/assets/volter-sdk-kit-components-asset-viewers-SpritesheetSpriteView-DYXAuujE.js +1 -0
  213. package/dist/assets/volter-sdk-kit-components-asset-viewers-VideoViewer-6xqrjETd.js +1 -0
  214. package/dist/assets/volter-sdk-kit-components-asset-viewers-shader-source-cHZlxpZt.js +1 -0
  215. package/dist/assets/volter-sdk-kit-components-board-guides-7WFdaGRg.js +1 -0
  216. package/dist/assets/volter-sdk-kit-components-canvas-scene-hotkeys-CnxAX0SN.js +1 -0
  217. package/dist/assets/volter-sdk-kit-components-canvas-temporary-pivot-CtpM87Bn.js +1 -0
  218. package/dist/assets/volter-sdk-kit-components-core-utilities-CHVzLxwg.js +1 -0
  219. package/dist/assets/volter-sdk-kit-components-inspector-preview-section-B8TaQyFK.js +1 -0
  220. package/dist/assets/volter-sdk-kit-components-inspector-revert-label-BNzoXVNS.js +1 -0
  221. package/dist/assets/volter-sdk-kit-components-inspector-selection-BpPShgrU.js +1 -0
  222. package/dist/assets/volter-sdk-kit-components-inspector-stories-gating-DiH66VA6.js +1 -0
  223. package/dist/assets/volter-sdk-kit-components-inspector-transform-CmjteW7M.js +1 -0
  224. package/dist/assets/volter-sdk-kit-components-inspector-transform-subject-DrIk_jIn.js +1 -0
  225. package/dist/assets/volter-sdk-kit-components-kind-documents-BK3KZxJA.js +1 -0
  226. package/dist/assets/volter-sdk-kit-components-primitives-DraftColorInput-1nPD0Wmj.js +1 -0
  227. package/dist/assets/volter-sdk-kit-components-project-tool-documents-DJ4Ucdcc.js +1 -0
  228. package/dist/assets/volter-sdk-kit-components-scene-documents-D0S3Ip8u.js +1 -0
  229. package/dist/assets/volter-sdk-kit-components-status-contributions-CnD50KDE.js +1 -0
  230. package/dist/assets/volter-sdk-kit-components-tool-documents-CFPlSwI0.js +1 -0
  231. package/dist/assets/volter-sdk-kit-components-tool-schema-form-DDm00y0g.js +1 -0
  232. package/dist/assets/volter-sdk-kit-components-use-after-paint-DvCjTL4J.js +1 -0
  233. package/dist/assets/volter-sdk-kit-components-use-project-image-assets-C2yOGb4T.js +1 -0
  234. package/dist/assets/volter-sdk-kit-components-workspace-history-cK1qO4Ko.js +1 -0
  235. package/dist/assets/volter-sdk-kit-components-world-documents-Ca0Kvd6F.js +1 -0
  236. package/dist/assets/volter-sdk-kit-components-world-overlay-gestures-D9tS4EXa.js +1 -0
  237. package/dist/assets/volter-sdk-kit-composite-screenshot-DrxN3o4m.js +1 -0
  238. package/dist/assets/volter-sdk-kit-content-entry-source-registry-WrKmcDj4.js +1 -0
  239. package/dist/assets/volter-sdk-kit-contribution-surfaces-DkZ0OqGh.js +1 -0
  240. package/dist/assets/volter-sdk-kit-coverage-canvas-reveal-C8pETRas.js +1 -0
  241. package/dist/assets/volter-sdk-kit-coverage-design-time-surfaces-BEEt0Akm.js +1 -0
  242. package/dist/assets/volter-sdk-kit-coverage-ontology-invariants-Bxd6b-Me.js +1 -0
  243. package/dist/assets/volter-sdk-kit-coverage-session-vitals-C_KOh0vV.js +1 -0
  244. package/dist/assets/volter-sdk-kit-creation-site-registry-xToT1mgQ.js +1 -0
  245. package/dist/assets/volter-sdk-kit-delegate-harness-registry-BQ2Z3x4u.js +1 -0
  246. package/dist/assets/volter-sdk-kit-document-areas-BoFteXyg.js +1 -0
  247. package/dist/assets/volter-sdk-kit-document-context-registry-DCltdAwX.js +1 -0
  248. package/dist/assets/volter-sdk-kit-document-open-registry-nUKbpgXi.js +1 -0
  249. package/dist/assets/volter-sdk-kit-document-play-extension-LhA9YSwP.js +1 -0
  250. package/dist/assets/volter-sdk-kit-document-preview-source-BjKu56A5.js +1 -0
  251. package/dist/assets/volter-sdk-kit-document-renderer-session-CmO67Fns.js +1 -0
  252. package/dist/assets/volter-sdk-kit-document-stage-sessions-DhjElggV.js +1 -0
  253. package/dist/assets/volter-sdk-kit-document-viewports-JkYxkBPk.js +1 -0
  254. package/dist/assets/volter-sdk-kit-editor-api-CkTONSnh.js +1 -0
  255. package/dist/assets/volter-sdk-kit-editor-chrome-capture-Ryy6MFML.js +1 -0
  256. package/dist/assets/volter-sdk-kit-editor-commands-A6xFbhNt.js +1 -0
  257. package/dist/assets/volter-sdk-kit-editor-console-CfXqiRHJ.js +1 -0
  258. package/dist/assets/volter-sdk-kit-editor-current-view-Blu4WXH4.js +1 -0
  259. package/dist/assets/volter-sdk-kit-editor-document-probe-DLQ4_TGz.js +1 -0
  260. package/dist/assets/volter-sdk-kit-editor-git-client-79qLddTa.js +1 -0
  261. package/dist/assets/volter-sdk-kit-editor-hotkeys-Bf8x8pPR.js +1 -0
  262. package/dist/assets/volter-sdk-kit-editor-lease-DnDA6DTK.js +1 -0
  263. package/dist/assets/volter-sdk-kit-editor-lease-view-DnYNNuac.js +1 -0
  264. package/dist/assets/volter-sdk-kit-editor-mode-TyppF_mm.js +1 -0
  265. package/dist/assets/volter-sdk-kit-editor-notifications-DbJyIY8R.js +1 -0
  266. package/dist/assets/volter-sdk-kit-editor-presence-CDht_mUS.js +1 -0
  267. package/dist/assets/volter-sdk-kit-editor-presentation-activity-BAw4OBGu.js +1 -0
  268. package/dist/assets/volter-sdk-kit-editor-presentation-notice-vPwlLZpU.js +1 -0
  269. package/dist/assets/volter-sdk-kit-editor-runtime-BM50QyRE.js +1 -0
  270. package/dist/assets/volter-sdk-kit-editor-server-response-BMR_IEYq.js +1 -0
  271. package/dist/assets/volter-sdk-kit-editor-session-attribution-GlzM29Xi.js +1 -0
  272. package/dist/assets/volter-sdk-kit-editor-session-mode-zTS3Hh7x.js +1 -0
  273. package/dist/assets/volter-sdk-kit-editor-state-facets-iq5aCQYy.js +1 -0
  274. package/dist/assets/volter-sdk-kit-editor-view-presentation-D-Zr2xsr.js +1 -0
  275. package/dist/assets/volter-sdk-kit-environment-images-BBbuCQN0.js +1 -0
  276. package/dist/assets/volter-sdk-kit-eyedropper-session-CVQTFAKM.js +1 -0
  277. package/dist/assets/volter-sdk-kit-files-file-provider-DnQAC1u2.js +1 -0
  278. package/dist/assets/volter-sdk-kit-files-project-files-CwASwqrX.js +1 -0
  279. package/dist/assets/volter-sdk-kit-finders-index-CclbaymG.js +1 -0
  280. package/dist/assets/volter-sdk-kit-finders-scenes-from-entrypoint-selection-B17U2yvo.js +1 -0
  281. package/dist/assets/volter-sdk-kit-frame-frame-parts-VVzfs78H.js +1 -0
  282. package/dist/assets/volter-sdk-kit-framed-document-capture-Cha1yjuL.js +1 -0
  283. package/dist/assets/volter-sdk-kit-game-surface-defaults-CsAR7C_G.js +1 -0
  284. package/dist/assets/volter-sdk-kit-gameplay-export-state-D2gCoh9n.js +1 -0
  285. package/dist/assets/volter-sdk-kit-gameplay-replay-DkkfYYwX.js +1 -0
  286. package/dist/assets/volter-sdk-kit-gameplay-session-time-Dht9eZ_4.js +1 -0
  287. package/dist/assets/volter-sdk-kit-gameplay-sessions-CCOOL4Eg.js +1 -0
  288. package/dist/assets/volter-sdk-kit-hierarchy-component-marks-CTw2KFgo.js +1 -0
  289. package/dist/assets/volter-sdk-kit-hierarchy-internals-D8gRo1WQ.js +1 -0
  290. package/dist/assets/volter-sdk-kit-hierarchy-kind-icon-D0OctdvL.js +1 -0
  291. package/dist/assets/volter-sdk-kit-hierarchy-menu-registry-DwA4Z2A9.js +1 -0
  292. package/dist/assets/volter-sdk-kit-hierarchy-node-rows-BGNi2kxs.js +1 -0
  293. package/dist/assets/volter-sdk-kit-hierarchy-panel-view-Bb1EP0Bk.js +1 -0
  294. package/dist/assets/volter-sdk-kit-hierarchy-projection-BtCzTzOY.js +1 -0
  295. package/dist/assets/volter-sdk-kit-hierarchy-row-media-CnHgcQM8.js +1 -0
  296. package/dist/assets/volter-sdk-kit-hierarchy-row-model-l7Qbe9Dk.js +1 -0
  297. package/dist/assets/volter-sdk-kit-hierarchy-rows-C20aO3up.js +1 -0
  298. package/dist/assets/volter-sdk-kit-hierarchy-walk-CE_FQf5c.js +1 -0
  299. package/dist/assets/volter-sdk-kit-history-editor-session-CS5IwxZx.js +1 -0
  300. package/dist/assets/volter-sdk-kit-history-history-commands-VU0Tf0lj.js +1 -0
  301. package/dist/assets/volter-sdk-kit-history-history-delegate-ZQwI-0MR.js +1 -0
  302. package/dist/assets/volter-sdk-kit-history-history-limit-notices-BrhHiRSY.js +1 -0
  303. package/dist/assets/volter-sdk-kit-history-history-service-BZ4AidfS.js +1 -0
  304. package/dist/assets/volter-sdk-kit-history-persistence-coordinator-Bpi3os_u.js +1 -0
  305. package/dist/assets/volter-sdk-kit-history-project-file-history-hDI70zmi.js +1 -0
  306. package/dist/assets/volter-sdk-kit-history-project-root-history-backends-BAfTGdrX.js +1 -0
  307. package/dist/assets/volter-sdk-kit-history-resource-registry-CGjyTLt-.js +1 -0
  308. package/dist/assets/volter-sdk-kit-history-snapshot-store-BgZ7Byks.js +1 -0
  309. package/dist/assets/volter-sdk-kit-history-source-history-backend-B25Z4lQz.js +1 -0
  310. package/dist/assets/volter-sdk-kit-hmr-registration-group-CiEUgAw2.js +1 -0
  311. package/dist/assets/volter-sdk-kit-hmr-stable-react-context-AymxVJvR.js +1 -0
  312. package/dist/assets/volter-sdk-kit-hotkeys-DlADec38.js +1 -0
  313. package/dist/assets/volter-sdk-kit-inference-diagnostics-GA9FnyOh.js +1 -0
  314. package/dist/assets/volter-sdk-kit-initial-project-zsKWa81T.js +1 -0
  315. package/dist/assets/volter-sdk-kit-inspection-active-subject-qZ5hTw90.js +1 -0
  316. package/dist/assets/volter-sdk-kit-inspection-active-surface-PhQ5uNsI.js +1 -0
  317. package/dist/assets/volter-sdk-kit-inspection-compose-subject-BgSCqJ-r.js +1 -0
  318. package/dist/assets/volter-sdk-kit-inspection-display-D8Nr6_ES.js +1 -0
  319. package/dist/assets/volter-sdk-kit-inspection-document-subject-DGznaZh-.js +1 -0
  320. package/dist/assets/volter-sdk-kit-inspection-game-subject-N0AxqX7G.js +1 -0
  321. package/dist/assets/volter-sdk-kit-inspection-model-hQetv0U9.js +1 -0
  322. package/dist/assets/volter-sdk-kit-inspection-node-media-fGRDtgJj.js +1 -0
  323. package/dist/assets/volter-sdk-kit-inspection-null-subject-ClNE9x2e.js +1 -0
  324. package/dist/assets/volter-sdk-kit-inspection-serialize-CpExrPTA.js +1 -0
  325. package/dist/assets/volter-sdk-kit-inspection-use-active-inspection-CRPvV320.js +1 -0
  326. package/dist/assets/volter-sdk-kit-inspector-presentation-BFfpxT4_.js +1 -0
  327. package/dist/assets/volter-sdk-kit-inspector-property-grouping-o7vgYhKg.js +1 -0
  328. package/dist/assets/volter-sdk-kit-inspector-section-registry-R5_0mSBl.js +1 -0
  329. package/dist/assets/volter-sdk-kit-instance-source-actions-B0lePqHO.js +1 -0
  330. package/dist/assets/volter-sdk-kit-js-heap-BpRVEyaI.js +1 -0
  331. package/dist/assets/volter-sdk-kit-key-actions-BEL1ou9N.js +1 -0
  332. package/dist/assets/volter-sdk-kit-keymap-presets-Qdpmq1MJ.js +1 -0
  333. package/dist/assets/volter-sdk-kit-layout-policy-CoLfPtzo.js +1 -0
  334. package/dist/assets/volter-sdk-kit-light-explorer-model-lqJF5X7X.js +1 -0
  335. package/dist/assets/volter-sdk-kit-live-canvas-frame-DdlhSZOw.js +1 -0
  336. package/dist/assets/volter-sdk-kit-live-document-MPCQkIxv.js +1 -0
  337. package/dist/assets/volter-sdk-kit-live-gesture-lock-BGiQikS-.js +1 -0
  338. package/dist/assets/volter-sdk-kit-live-seam-evidence-HsOKXOM-.js +1 -0
  339. package/dist/assets/volter-sdk-kit-live-session-registry-DPshp-zS.js +1 -0
  340. package/dist/assets/volter-sdk-kit-live-transition-SzISwcSc.js +1 -0
  341. package/dist/assets/volter-sdk-kit-manifest-project-BaQmD3cM.js +1 -0
  342. package/dist/assets/volter-sdk-kit-module-fetch-diagnosis-DVmHXvNS.js +1 -0
  343. package/dist/assets/volter-sdk-kit-mount-failure-report-Dk4LNPuk.js +1 -0
  344. package/dist/assets/volter-sdk-kit-native-selection-style-Bz3kzLsL.js +1 -0
  345. package/dist/assets/volter-sdk-kit-object3d-document-write-policy-yZfQc3Ch.js +1 -0
  346. package/dist/assets/volter-sdk-kit-packaged-runtime-Bofk4pL5.js +1 -0
  347. package/dist/assets/volter-sdk-kit-performance-profiler-BCQbvJC2.js +1 -0
  348. package/dist/assets/volter-sdk-kit-performance-sources-DmFnsOyy.js +1 -0
  349. package/dist/assets/volter-sdk-kit-photograph-notice-Ba8RTcKf.js +1 -0
  350. package/dist/assets/volter-sdk-kit-play-boot-phase-BtZNGfEm.js +1 -0
  351. package/dist/assets/volter-sdk-kit-play-camera-flight-DyDq7TW9.js +1 -0
  352. package/dist/assets/volter-sdk-kit-presentation-surface-CcUgETps.js +1 -0
  353. package/dist/assets/volter-sdk-kit-product-command-CTGtMf--.js +1 -0
  354. package/dist/assets/volter-sdk-kit-project-adapter-CncSm07i.js +1 -0
  355. package/dist/assets/volter-sdk-kit-project-asset-refresh-ff5GvzjI.js +1 -0
  356. package/dist/assets/volter-sdk-kit-project-asset-roots-2I55e0Tl.js +1 -0
  357. package/dist/assets/volter-sdk-kit-project-local-state-CoOxczZf.js +1 -0
  358. package/dist/assets/volter-sdk-kit-project-manager-CXwXszeS.js +1 -0
  359. package/dist/assets/volter-sdk-kit-project-module-changes-Df7bwGJA.js +1 -0
  360. package/dist/assets/volter-sdk-kit-project-module-split-CoOXmcMq.js +1 -0
  361. package/dist/assets/volter-sdk-kit-project-provenance-CsWz3dFr.js +1 -0
  362. package/dist/assets/volter-sdk-kit-project-ready-CEngokqw.js +1 -0
  363. package/dist/assets/volter-sdk-kit-project-shape-Bnk7IlEF.js +1 -0
  364. package/dist/assets/volter-sdk-kit-project-tools-CIrlsLd2.js +1 -0
  365. package/dist/assets/volter-sdk-kit-readiness-8iK1xUw-.js +1 -0
  366. package/dist/assets/volter-sdk-kit-renderer-resource-counts-BRlynwAB.js +1 -0
  367. package/dist/assets/volter-sdk-kit-reported-play-state-CdpNf7iS.js +1 -0
  368. package/dist/assets/volter-sdk-kit-resolve-contributed-command-CAPTMDEe.js +1 -0
  369. package/dist/assets/volter-sdk-kit-resolve-relative-specifier-CQavCIRh.js +1 -0
  370. package/dist/assets/volter-sdk-kit-retained-document-states-CkXz8CLe.js +1 -0
  371. package/dist/assets/volter-sdk-kit-scene-document-plan-C29w0uq_.js +1 -0
  372. package/dist/assets/volter-sdk-kit-scene-live-open-fodeYzCv.js +1 -0
  373. package/dist/assets/volter-sdk-kit-scoped-game-css-C2WRruBw.js +1 -0
  374. package/dist/assets/volter-sdk-kit-served-url-C17qOcC3.js +1 -0
  375. package/dist/assets/volter-sdk-kit-session-close-BKSX8DPi.js +1 -0
  376. package/dist/assets/volter-sdk-kit-session-tombstone-CQ1abA0T.js +1 -0
  377. package/dist/assets/volter-sdk-kit-settings-settings-provider-Drp8Ja5S.js +1 -0
  378. package/dist/assets/volter-sdk-kit-settings-store-DVv602rH.js +1 -0
  379. package/dist/assets/volter-sdk-kit-shell-store-Dwkc4LeK.js +1 -0
  380. package/dist/assets/volter-sdk-kit-shell-store-door-D6VAgShZ.js +1 -0
  381. package/dist/assets/volter-sdk-kit-source-conflict-BsgmQDuR.js +1 -0
  382. package/dist/assets/volter-sdk-kit-stage-context-CF3ATuJX.js +1 -0
  383. package/dist/assets/volter-sdk-kit-stage-invalidation-D1EKNjPS.js +1 -0
  384. package/dist/assets/volter-sdk-kit-stage-store-registry-DMqC8KJA.js +1 -0
  385. package/dist/assets/volter-sdk-kit-startup-failure-CJjXtSxT.js +1 -0
  386. package/dist/assets/volter-sdk-kit-state-report-deferral-BZ1Gll2x.js +1 -0
  387. package/dist/assets/volter-sdk-kit-storage-host-files-storage-BeBBCrF4.js +1 -0
  388. package/dist/assets/volter-sdk-kit-storage-http-storage-DMwE4aCU.js +1 -0
  389. package/dist/assets/volter-sdk-kit-storage-index-85BJsCgw.js +1 -0
  390. package/dist/assets/volter-sdk-kit-storage-mem-storage-Cp5EThww.js +1 -0
  391. package/dist/assets/volter-sdk-kit-storage-path-lock-BEHmTQkG.js +1 -0
  392. package/dist/assets/volter-sdk-kit-storage-paths-GkBBUtDn.js +1 -0
  393. package/dist/assets/volter-sdk-kit-stories-StoryPreviewMount-D07t88Iu.js +1 -0
  394. package/dist/assets/volter-sdk-kit-stories-compose-project-stories-BAw1haKj.js +1 -0
  395. package/dist/assets/volter-sdk-kit-stories-prefabs-finder-EMDMwLXg.js +1 -0
  396. package/dist/assets/volter-sdk-kit-stories-prefabs-from-stories-CEQekPVJ.js +1 -0
  397. package/dist/assets/volter-sdk-kit-stories-project-story-regions-m9-rTkrt.js +1 -0
  398. package/dist/assets/volter-sdk-kit-stories-scope-PLybjgWr.js +1 -0
  399. package/dist/assets/volter-sdk-kit-stories-story-capture-B3uLpufo.js +1 -0
  400. package/dist/assets/volter-sdk-kit-stories-story-declared-medium-D92bJmIo.js +1 -0
  401. package/dist/assets/volter-sdk-kit-stories-story-discovery-DtaxRT_i.js +1 -0
  402. package/dist/assets/volter-sdk-kit-stories-story-dom-runtime-BjR7PW3K.js +1 -0
  403. package/dist/assets/volter-sdk-kit-stories-story-grouping-BibwARwc.js +1 -0
  404. package/dist/assets/volter-sdk-kit-stories-story-presentation-DaweRLV-.js +1 -0
  405. package/dist/assets/volter-sdk-kit-stories-story-registry-BuTw7T27.js +1 -0
  406. package/dist/assets/volter-sdk-kit-story-document-openers-COzuCirA.js +1 -0
  407. package/dist/assets/volter-sdk-kit-story-thumbnails-DsLqdnDq.js +1 -0
  408. package/dist/assets/volter-sdk-kit-surface-keyboard-RiClmb_a.js +1 -0
  409. package/dist/assets/volter-sdk-kit-surface-state-DjeLKyCd.js +1 -0
  410. package/dist/assets/volter-sdk-kit-system-seam-evidence-omzWuzNM.js +1 -0
  411. package/dist/assets/volter-sdk-kit-tab-census-C8mQ0l9z.js +1 -0
  412. package/dist/assets/volter-sdk-kit-tab-lifecycle-client-28DSypwI.js +1 -0
  413. package/dist/assets/volter-sdk-kit-theme-library-DCToyXQ0.js +1 -0
  414. package/dist/assets/volter-sdk-kit-theme-preference-Dc-_5b1n.js +1 -0
  415. package/dist/assets/volter-sdk-kit-three-viewport-presentation-1LxA9rSc.js +1 -0
  416. package/dist/assets/volter-sdk-kit-tool-contribution-play--JvesPkN.js +1 -0
  417. package/dist/assets/volter-sdk-kit-tool-loader-LTQw0aL4.js +1 -0
  418. package/dist/assets/volter-sdk-kit-transform-mode-request-BY9JxShG.js +1 -0
  419. package/dist/assets/volter-sdk-kit-transient-hint-CM0bpYj2.js +1 -0
  420. package/dist/assets/volter-sdk-kit-transport-strip-5bUygAkv.js +1 -0
  421. package/dist/assets/volter-sdk-kit-ui-source-file-region-resolver-CQMWmqhP.js +1 -0
  422. package/dist/assets/volter-sdk-kit-ui-source-inspect-CfayTFdC.js +1 -0
  423. package/dist/assets/volter-sdk-kit-ui-source-source-write-backend-DzQseyn4.js +1 -0
  424. package/dist/assets/volter-sdk-kit-ui-source-tier-source-write-backend-3NgYZbUE.js +1 -0
  425. package/dist/assets/volter-sdk-kit-user-local-state-BZf1C-cO.js +1 -0
  426. package/dist/assets/volter-sdk-kit-viewport-activation-timings-C-7ETz2q.js +1 -0
  427. package/dist/assets/volter-sdk-kit-viewport-editor-controls-f4cwlOWa.js +1 -0
  428. package/dist/assets/volter-sdk-kit-viewport-presentation-Il1TLCMT.js +1 -0
  429. package/dist/assets/volter-sdk-kit-viewport-surface-status-CXyJJGil.js +1 -0
  430. package/dist/assets/volter-sdk-kit-wait-until-D3i87ehY.js +1 -0
  431. package/dist/assets/volter-sdk-kit-worker-call-metrics-DAK8SW-7.js +1 -0
  432. package/dist/assets/volter-sdk-kit-workspace-areas-DxhakPE3.js +1 -0
  433. package/dist/assets/volter-sdk-kit-workspace-aux-commands-j3FyV7Rh.js +1 -0
  434. package/dist/assets/volter-sdk-kit-workspace-available-documents-DS5ZkDU4.js +1 -0
  435. package/dist/assets/volter-sdk-kit-workspace-core-utilities-BbuDHrHq.js +1 -0
  436. package/dist/assets/volter-sdk-kit-workspace-document-ids-Bm3qMqdx.js +1 -0
  437. package/dist/assets/volter-sdk-kit-workspace-document-registry-CfkdJLBO.js +1 -0
  438. package/dist/assets/volter-sdk-kit-workspace-document-restore-BqBMoUhE.js +1 -0
  439. package/dist/assets/volter-sdk-kit-workspace-host-commands-BC-mYI2s.js +1 -0
  440. package/dist/assets/volter-sdk-kit-workspace-persistence-gate-CN-Z9G7V.js +1 -0
  441. package/dist/assets/volter-sdk-kit-workspace-play-utilities-C5iNgpyt.js +1 -0
  442. package/dist/assets/volter-sdk-kit-workspace-presets-B6MKS0jx.js +1 -0
  443. package/dist/assets/volter-sdk-kit-workspace-regions-DZevxGmg.js +1 -0
  444. package/dist/assets/volter-sdk-kit-workspace-static-panels-CUVjETSY.js +1 -0
  445. package/dist/assets/volter-sdk-kit-workspace-status-registry-Cim_nGuV.js +1 -0
  446. package/dist/assets/volter-sdk-kit-workspace-storage-B9Vf07gg.js +1 -0
  447. package/dist/assets/volter-sdk-kit-workspace-style-yCExFcBd.js +1 -0
  448. package/dist/assets/volter-sdk-kit-workspace-utility-commands-C3a_TCq8.js +1 -0
  449. package/dist/assets/volter-sdk-kit-workspace-utility-registry-CmYswBtf.js +1 -0
  450. package/dist/assets/volter-sdk-kit-world-adoption-1Q7uBdLI.js +1 -0
  451. package/dist/assets/volter-sdk-kit-world-canvas-viewport-state-DaZzYmQU.js +1 -0
  452. package/dist/assets/volter-sdk-kit-world-document-routing-d9K0XNhN.js +1 -0
  453. package/dist/assets/volter-sdk-kit-world-pan-state-Bui5iuls.js +1 -0
  454. package/dist/assets/volter-sdk-kit-write-pipe-BMOSwffA.js +1 -0
  455. package/dist/assets/volter-sdk-layout-arrangements-DMEnPpvu.js +1 -0
  456. package/dist/assets/volter-sdk-layouts-DKIqaCd4.js +1 -0
  457. package/dist/assets/volter-sdk-selection-DM8JuNxQ.js +1 -0
  458. package/dist/assets/volter-sdk-session-command-table-G119qBvl.js +1 -0
  459. package/dist/assets/volter-sdk-session-editor-brand-DCHKPDxT.js +1 -0
  460. package/dist/assets/volter-sdk-session-editor-compatibility-B165I_B1.js +1 -0
  461. package/dist/assets/volter-sdk-session-editor-control-protocol-DwV-576_.js +1 -0
  462. package/dist/assets/volter-sdk-session-entrypoint-selection-readers-D88QrS-p.js +1 -0
  463. package/dist/assets/volter-sdk-session-game-css-scope-UkCRVi6L.js +1 -0
  464. package/dist/assets/volter-sdk-session-project-module-url-B49W1ltn.js +1 -0
  465. package/dist/assets/volter-sdk-session-relative-path-guard-Bk6lCH4Z.js +1 -0
  466. package/dist/assets/volter-sdk-session-tool-contribution-convention-QXzdw52f.js +1 -0
  467. package/dist/assets/volter-sdk-types-yKC1STwH.js +1 -0
  468. package/dist/assets/volter-sdk-views-CLPSu14j.js +1 -0
  469. package/dist/assets/volter-sdk-widgets-design-system-842xdooz.js +1 -0
  470. package/dist/assets/volter-sdk-widgets-editor-appearance-CoihkoDV.js +1 -0
  471. package/dist/assets/volter-sdk-widgets-editor-material-B4PbVOyD.js +1 -0
  472. package/dist/assets/volter-sdk-widgets-icon-set-registry-DzBkVTxs.js +1 -0
  473. package/dist/assets/volter-sdk-widgets-index-DRlEnpTD.js +1 -0
  474. package/dist/assets/volter-sdk-widgets-inspector-widgets-AlignmentGrid-DKC7RjtF.js +1 -0
  475. package/dist/assets/volter-sdk-widgets-inspector-widgets-AssetSlotPicker-CGyznIv-.js +1 -0
  476. package/dist/assets/volter-sdk-widgets-inspector-widgets-BorderEditor-C74QsfSH.js +1 -0
  477. package/dist/assets/volter-sdk-widgets-inspector-widgets-ColorPicker-Czwcm_Fi.js +1 -0
  478. package/dist/assets/volter-sdk-widgets-inspector-widgets-CurveEditor-Tij7lXpB.js +1 -0
  479. package/dist/assets/volter-sdk-widgets-inspector-widgets-FilterEditor-CY45gPqT.js +1 -0
  480. package/dist/assets/volter-sdk-widgets-inspector-widgets-FontPicker-BnGlrZAL.js +1 -0
  481. package/dist/assets/volter-sdk-widgets-inspector-widgets-GradientEditor-uN_3-0Hz.js +1 -0
  482. package/dist/assets/volter-sdk-widgets-inspector-widgets-ScrubbableInput-kk1HfmXA.js +1 -0
  483. package/dist/assets/volter-sdk-widgets-inspector-widgets-ShadowEditor-OuqeQbiU.js +1 -0
  484. package/dist/assets/volter-sdk-widgets-inspector-widgets-color-utils-BArl9zsg.js +1 -0
  485. package/dist/assets/volter-sdk-widgets-inspector-widgets-curve-utils-C9xyDCr6.js +1 -0
  486. package/dist/assets/volter-sdk-widgets-inspector-widgets-index-DCEai530.js +1 -0
  487. package/dist/assets/volter-sdk-widgets-inspector-widgets-shared-CJSGOgSm.js +1 -0
  488. package/dist/assets/volter-sdk-widgets-interactive-edit-scope-6PmN1jnt.js +1 -0
  489. package/dist/assets/volter-sdk-widgets-patterns-Dialog-CnuLoAXX.js +1 -0
  490. package/dist/assets/volter-sdk-widgets-patterns-Fields-wFJZE-ci.js +1 -0
  491. package/dist/assets/volter-sdk-widgets-patterns-List-DNL6_6To.js +1 -0
  492. package/dist/assets/volter-sdk-widgets-patterns-StateSurface-Ih0mzWk7.js +1 -0
  493. package/dist/assets/volter-sdk-widgets-patterns-Surfaces-07TRSs2c.js +1 -0
  494. package/dist/assets/volter-sdk-widgets-patterns-Tabs-BKYsTo--.js +1 -0
  495. package/dist/assets/volter-sdk-widgets-patterns-Toolbar-BxOrCYIs.js +1 -0
  496. package/dist/assets/volter-sdk-widgets-patterns-Tree-BfYgX2pa.js +1 -0
  497. package/dist/assets/volter-sdk-widgets-primitives-AnchoredMenu-BgHf-cYK.js +1 -0
  498. package/dist/assets/volter-sdk-widgets-primitives-Button-BUrjXrb8.js +1 -0
  499. package/dist/assets/volter-sdk-widgets-primitives-ColorInput-BiRkft3M.js +1 -0
  500. package/dist/assets/volter-sdk-widgets-primitives-DraftTextInput-B1KK1N_R.js +1 -0
  501. package/dist/assets/volter-sdk-widgets-primitives-EditorIcon-CP8wT6d7.js +1 -0
  502. package/dist/assets/volter-sdk-widgets-primitives-FormControls-ScHBA1o4.js +1 -0
  503. package/dist/assets/volter-sdk-widgets-primitives-HoverPreview-CSS-glOy.js +1 -0
  504. package/dist/assets/volter-sdk-widgets-primitives-JsonInput-C0TAVCVh.js +1 -0
  505. package/dist/assets/volter-sdk-widgets-primitives-Layout-CfLBd5Or.js +1 -0
  506. package/dist/assets/volter-sdk-widgets-primitives-Menu-C-Wd4QZF.js +1 -0
  507. package/dist/assets/volter-sdk-widgets-primitives-NumberInput-sPbmhEcp.js +1 -0
  508. package/dist/assets/volter-sdk-widgets-primitives-Panel-CssQZiuw.js +1 -0
  509. package/dist/assets/volter-sdk-widgets-primitives-SectionHeader-CCbuJZbe.js +1 -0
  510. package/dist/assets/volter-sdk-widgets-primitives-Text-CnnND9sI.js +1 -0
  511. package/dist/assets/volter-sdk-widgets-primitives-ThemeRootPortal-DmN1LfqW.js +1 -0
  512. package/dist/assets/volter-sdk-widgets-primitives-Tooltip-D9uLAtac.js +1 -0
  513. package/dist/assets/volter-sdk-widgets-primitives-Vec3Input-CbkOGVMc.js +1 -0
  514. package/dist/assets/volter-sdk-widgets-primitives-banner-tones-D4w8jWDq.js +1 -0
  515. package/dist/assets/volter-sdk-widgets-primitives-clamp-to-viewport-DUn6HqOF.js +1 -0
  516. package/dist/assets/volter-sdk-widgets-primitives-editor-icons-Dw62jIE_.js +1 -0
  517. package/dist/assets/volter-sdk-widgets-primitives-panel-header-styles-BsPj50mE.js +1 -0
  518. package/dist/assets/volter-sdk-widgets-theme-CWND6gaS.js +1 -0
  519. package/dist/assets/volter-sdk-widgets-z-index-CAROhwsS.js +1 -0
  520. package/dist/assets/volter-shared-fontawesome-CU2fjApc.js +1 -0
  521. package/dist/assets/volter-shared-jsx-dev-runtime-CSjBZz-G.js +1 -0
  522. package/dist/assets/volter-shared-jsx-runtime-BfW1mwnX.js +1 -0
  523. package/dist/assets/volter-shared-react-B7X6VYnC.js +1 -0
  524. package/dist/assets/volter-shared-react-dom-DjKMQVYW.js +1 -0
  525. package/dist/assets/volter-shared-react-dom-client-76WJXUTi.js +1 -0
  526. package/dist/volter-shared-react.json +6 -6
  527. package/dist/volter-shared-sdk.json +460 -460
  528. package/dist-node/cli.js +8 -8
  529. package/dist-node/create.js +8 -8
  530. package/package.json +8 -8
  531. package/dist/assets/EntityModelDocument-H5MGTLgY.js +0 -1
  532. package/dist/assets/EnvironmentAssetDocument-DscnToFv.js +0 -1
  533. package/dist/assets/InspectorObjectPreview-DmgzscPS.js +0 -1
  534. package/dist/assets/LiveModuleDocument-DAYkZerk.js +0 -2
  535. package/dist/assets/LutAssetDocument-B7CFf1iQ.js +0 -1
  536. package/dist/assets/ModelAssetDocument-C3AYQW5D.js +0 -1
  537. package/dist/assets/NonThreeAuthoringBootstrap-BnkHNgwT.js +0 -1
  538. package/dist/assets/Object3DDocumentToolbar-6iKyx5P7.js +0 -1
  539. package/dist/assets/Object3DPreview-CVsX3Ez6.js +0 -2
  540. package/dist/assets/QuarksAssetDocument-BrUx0sFF.js +0 -2
  541. package/dist/assets/ShaderAssetDocument-8fZCtoKv.js +0 -1
  542. package/dist/assets/StageHost-CM6pXufo.js +0 -1179
  543. package/dist/assets/ToolObject3DPreview-BY-w2JDK.js +0 -1
  544. package/dist/assets/ViewportShadingMenu-BcSW0SdM.js +0 -1
  545. package/dist/assets/animation-mixers.service-Dh2f8bk9.js +0 -1
  546. package/dist/assets/animation-timeline.utility-DTZfezuF.js +0 -1
  547. package/dist/assets/asset-preview-BCSH6zvx.js +0 -4
  548. package/dist/assets/blender-node-editor.document-sTxATkra.js +0 -1
  549. package/dist/assets/blender-properties-model-DG3h6RbJ.js +0 -1
  550. package/dist/assets/blender-properties-tab-kS_hNbKV.js +0 -3
  551. package/dist/assets/blender-runtime-host-CJ3l04y8.js +0 -17
  552. package/dist/assets/blender-runtime.document-CIJypNav.js +0 -13
  553. package/dist/assets/blender-screenshot.menu-B0WniIkP.js +0 -1
  554. package/dist/assets/blender-timeline.document-CCIcBTnZ.js +0 -1
  555. package/dist/assets/blender-uv-editor.document-CENezQQk.js +0 -1
  556. package/dist/assets/blender-version.status-aS3tabn9.js +0 -1
  557. package/dist/assets/blender.command-Cl2XnwrS.js +0 -1
  558. package/dist/assets/blender.status-BgdpgL9J.js +0 -1
  559. package/dist/assets/model-inspection-D_Z7lPhp.js +0 -1
  560. package/dist/assets/models.finder-n0qYfNhP.js +0 -1
  561. package/dist/assets/object3d-document-session-registry-Dso-3DdQ.js +0 -2
  562. package/dist/assets/play-mode-CB-BAREv.js +0 -7208
  563. package/dist/assets/product-2FMfCeKv.js +0 -14
  564. package/dist/assets/properties-bone-constraints.inspector-DPD94zpc.js +0 -1
  565. package/dist/assets/properties-bone.inspector-CDYgJFMb.js +0 -1
  566. package/dist/assets/properties-collection.inspector-Bc7-DzEi.js +0 -1
  567. package/dist/assets/properties-constraints.inspector-CnyXcr_p.js +0 -1
  568. package/dist/assets/properties-data.inspector-Y9trp74x.js +0 -1
  569. package/dist/assets/properties-material.inspector-DKW8fWHF.js +0 -1
  570. package/dist/assets/properties-modifiers.inspector-CCxaKRAi.js +0 -1
  571. package/dist/assets/properties-object.inspector-DHCzFViD.js +0 -1
  572. package/dist/assets/properties-output.inspector-Jcvyw8r-.js +0 -1
  573. package/dist/assets/properties-particles.inspector-DHrpt9YM.js +0 -1
  574. package/dist/assets/properties-physics.inspector-BdCSY9ed.js +0 -1
  575. package/dist/assets/properties-render.inspector-DPNhVHyH.js +0 -1
  576. package/dist/assets/properties-scene.inspector-BEyWMESu.js +0 -1
  577. package/dist/assets/properties-texture.inspector-BDAHphbo.js +0 -1
  578. package/dist/assets/properties-view-layer.inspector-Dd1R2c8y.js +0 -1
  579. package/dist/assets/properties-world.inspector-GA10_Q2q.js +0 -1
  580. package/dist/assets/react-18-DLRa6EBJ.js +0 -1
  581. package/dist/assets/stage-keyboard-DQMRbQSk.js +0 -1
  582. package/dist/assets/stage-overlay-set-BjkX6NS2.js +0 -1
  583. package/dist/assets/stage-presence-markers-BLzWksKB.js +0 -1
  584. package/dist/assets/stage-transform-tools-CmCouHjc.js +0 -1
  585. package/dist/assets/standard-viewport-dressing-tRKYG-Oe.js +0 -24
  586. package/dist/assets/three-integration.service-CZBtvpOJ.js +0 -2
  587. package/dist/assets/volter-sdk-CTPCkGXt.js +0 -2358
  588. package/dist/assets/volter-sdk-account-C7TbJeFz.js +0 -1
  589. package/dist/assets/volter-sdk-client-DTdXvoMD.js +0 -1
  590. package/dist/assets/volter-sdk-contributions-eo4CPh2p.js +0 -1
  591. package/dist/assets/volter-sdk-css-numeric-style-Ttf_8Kmw.js +0 -1
  592. package/dist/assets/volter-sdk-document-probe-uMZJqaXu.js +0 -1
  593. package/dist/assets/volter-sdk-editor-view-CRZQicqm.js +0 -1
  594. package/dist/assets/volter-sdk-host-B-zxfcPu.js +0 -1
  595. package/dist/assets/volter-sdk-http-transport.browser-DPW20rVu.js +0 -1
  596. package/dist/assets/volter-sdk-index-Cb7Yywg-.js +0 -1
  597. package/dist/assets/volter-sdk-kit-CapabilityCoverageSection-D0IDzMdi.js +0 -1
  598. package/dist/assets/volter-sdk-kit-account-client-BcyEmaPH.js +0 -1
  599. package/dist/assets/volter-sdk-kit-action-registry-DriAF6Sc.js +0 -1
  600. package/dist/assets/volter-sdk-kit-active-product-r7jCIax2.js +0 -1
  601. package/dist/assets/volter-sdk-kit-active-project-Cjf4pJ6J.js +0 -1
  602. package/dist/assets/volter-sdk-kit-adapter-editor-config-BaNyB8ig.js +0 -1
  603. package/dist/assets/volter-sdk-kit-adapter-observation-V71hItcC.js +0 -1
  604. package/dist/assets/volter-sdk-kit-animation-animation-clock-DmeLqo0W.js +0 -1
  605. package/dist/assets/volter-sdk-kit-animation-stage-transport-BaD_Lz7M.js +0 -1
  606. package/dist/assets/volter-sdk-kit-api-assets-D9KgHTyt.js +0 -1
  607. package/dist/assets/volter-sdk-kit-api-base-DH9EkQUe.js +0 -1
  608. package/dist/assets/volter-sdk-kit-api-build-DHp-caUc.js +0 -1
  609. package/dist/assets/volter-sdk-kit-api-logs-DLGBnX6D.js +0 -1
  610. package/dist/assets/volter-sdk-kit-api-project-identity-Ce2bcNI8.js +0 -1
  611. package/dist/assets/volter-sdk-kit-api-project-open-BUoW4R4G.js +0 -1
  612. package/dist/assets/volter-sdk-kit-api-project-source-D_ZKYf7K.js +0 -1
  613. package/dist/assets/volter-sdk-kit-api-project-state-fp96KH-b.js +0 -1
  614. package/dist/assets/volter-sdk-kit-api-relay-Da3eSdYq.js +0 -1
  615. package/dist/assets/volter-sdk-kit-api-settings-7nqXhmRG.js +0 -1
  616. package/dist/assets/volter-sdk-kit-api-themes-CcJT4tNc.js +0 -1
  617. package/dist/assets/volter-sdk-kit-api-worktrees-BPery5as.js +0 -1
  618. package/dist/assets/volter-sdk-kit-asset-capabilities-B0ay5F3v.js +0 -1
  619. package/dist/assets/volter-sdk-kit-asset-compare-core-BRjsa1JH.js +0 -1
  620. package/dist/assets/volter-sdk-kit-asset-editor-context-QSJFkrTF.js +0 -1
  621. package/dist/assets/volter-sdk-kit-asset-events-DhC-oWIc.js +0 -1
  622. package/dist/assets/volter-sdk-kit-asset-inspector-actions-DOGzxnKO.js +0 -1
  623. package/dist/assets/volter-sdk-kit-asset-selection-D3iKMZhc.js +0 -1
  624. package/dist/assets/volter-sdk-kit-asset-selection-viewer-registry-iSjetPTF.js +0 -1
  625. package/dist/assets/volter-sdk-kit-asset-thumbnails-B-rnrR4e.js +0 -1
  626. package/dist/assets/volter-sdk-kit-asset-viewers-DW_B6mUz.js +0 -1
  627. package/dist/assets/volter-sdk-kit-asset-workflow-asset-import-jobs-zpDDAGhi.js +0 -1
  628. package/dist/assets/volter-sdk-kit-asset-workflow-asset-ledger-BLvGK5K9.js +0 -1
  629. package/dist/assets/volter-sdk-kit-asset-workflow-asset-ledger-backend-R_sMRJxQ.js +0 -1
  630. package/dist/assets/volter-sdk-kit-asset-workflow-asset-materialization-report-Cu8PzcuH.js +0 -1
  631. package/dist/assets/volter-sdk-kit-asset-workflow-asset-pack-manifest-CykYNw93.js +0 -1
  632. package/dist/assets/volter-sdk-kit-asset-workflow-audio-preview-player-DisMJvNX.js +0 -1
  633. package/dist/assets/volter-sdk-kit-asset-workflow-audio-waveform-DaE4b6q5.js +0 -1
  634. package/dist/assets/volter-sdk-kit-asset-workflow-cloud-asset-client-BA2DspQh.js +0 -1
  635. package/dist/assets/volter-sdk-kit-asset-workflow-hosted-asset-materialization-CAs2DnB-.js +0 -1
  636. package/dist/assets/volter-sdk-kit-asset-workflow-image-view-scale-CKGz1teu.js +0 -1
  637. package/dist/assets/volter-sdk-kit-asset-workflow-ledger-write-lock-CUSx23CF.js +0 -1
  638. package/dist/assets/volter-sdk-kit-asset-workflow-pixi-spritesheet-20DVa19-.js +0 -1
  639. package/dist/assets/volter-sdk-kit-asset-workflow-preview-resource-lifetime-9aCVJ5ZD.js +0 -1
  640. package/dist/assets/volter-sdk-kit-asset-workflow-project-asset-commands-D9rsm7id.js +0 -1
  641. package/dist/assets/volter-sdk-kit-asset-workflow-project-content-MiELo_O1.js +0 -1
  642. package/dist/assets/volter-sdk-kit-asset-workflow-thumbnail-system-C2_qZtHy.js +0 -1
  643. package/dist/assets/volter-sdk-kit-authoring-active-adapter-CF9u3FRf.js +0 -1
  644. package/dist/assets/volter-sdk-kit-authoring-active-systems-BHJmeKT1.js +0 -1
  645. package/dist/assets/volter-sdk-kit-authoring-adapter-key-Crk3ASvv.js +0 -1
  646. package/dist/assets/volter-sdk-kit-authoring-authoring-asset-url-DG5Fxmhm.js +0 -1
  647. package/dist/assets/volter-sdk-kit-authoring-bootstrap-state-B0nbQdGo.js +0 -1
  648. package/dist/assets/volter-sdk-kit-authoring-boundary-authoring-adapter-CeQy5qiB.js +0 -1
  649. package/dist/assets/volter-sdk-kit-authoring-canvas-scene-guides-1JIcdD37.js +0 -1
  650. package/dist/assets/volter-sdk-kit-authoring-composite-authoring-adapter-B92Z3v81.js +0 -1
  651. package/dist/assets/volter-sdk-kit-authoring-consumer-actions-VKZPMDF4.js +0 -1
  652. package/dist/assets/volter-sdk-kit-authoring-design-time-layers-CjdjzFCK.js +0 -1
  653. package/dist/assets/volter-sdk-kit-authoring-design-time-mount-registry-Dj9yuM04.js +0 -1
  654. package/dist/assets/volter-sdk-kit-authoring-edit-mode-authoring-7WjAL2FS.js +0 -1
  655. package/dist/assets/volter-sdk-kit-authoring-empty-project-authoring-Cl7rnMX7.js +0 -1
  656. package/dist/assets/volter-sdk-kit-authoring-instance-source-menu-D3W4NqNC.js +0 -1
  657. package/dist/assets/volter-sdk-kit-authoring-layered-pick-BdohFxNz.js +0 -1
  658. package/dist/assets/volter-sdk-kit-authoring-mounted-root-subjects-Djn9pHUW.js +0 -1
  659. package/dist/assets/volter-sdk-kit-authoring-no-authoring-adapter-B7eiKgrk.js +0 -1
  660. package/dist/assets/volter-sdk-kit-authoring-object3d-document-persistence-DLcEQvHq.js +0 -1
  661. package/dist/assets/volter-sdk-kit-authoring-panel-authoring-gK-CPiH6.js +0 -1
  662. package/dist/assets/volter-sdk-kit-authoring-project-authoring-session-uHS0CYvK.js +0 -1
  663. package/dist/assets/volter-sdk-kit-authoring-provenance-D-BET8RO.js +0 -1
  664. package/dist/assets/volter-sdk-kit-authoring-react-canvas-navigation-B60IffcY.js +0 -1
  665. package/dist/assets/volter-sdk-kit-authoring-react-design-canvas-style-ks9HoOST.js +0 -1
  666. package/dist/assets/volter-sdk-kit-authoring-react-story-board-C_LkOQ31.js +0 -1
  667. package/dist/assets/volter-sdk-kit-authoring-seam-evidence-Cs2OD8Mp.js +0 -1
  668. package/dist/assets/volter-sdk-kit-authoring-selection-scope-BBRJ_LYX.js +0 -1
  669. package/dist/assets/volter-sdk-kit-authoring-shell-document-ops-BgFY_dTi.js +0 -1
  670. package/dist/assets/volter-sdk-kit-authoring-story-board-chrome-fit-DBmpy3fX.js +0 -1
  671. package/dist/assets/volter-sdk-kit-authoring-three-root-DcfxyBfe.js +0 -1
  672. package/dist/assets/volter-sdk-kit-authoring-viewport-tool-context-iBDEmcv0.js +0 -1
  673. package/dist/assets/volter-sdk-kit-authoring-viewport-tool-owner-B_6F6Tjj.js +0 -1
  674. package/dist/assets/volter-sdk-kit-authoring-world-session-state-D5dzuuRn.js +0 -1
  675. package/dist/assets/volter-sdk-kit-availability-tick-CY8If63r.js +0 -1
  676. package/dist/assets/volter-sdk-kit-bitmap-label-Beh0HDVB.js +0 -1
  677. package/dist/assets/volter-sdk-kit-boot-routing-BJca1uda.js +0 -1
  678. package/dist/assets/volter-sdk-kit-breakpoint-state-CNWGaLfG.js +0 -1
  679. package/dist/assets/volter-sdk-kit-build-identity-BBdzUzJV.js +0 -1
  680. package/dist/assets/volter-sdk-kit-bytes-codec-DLFzHQUN.js +0 -1
  681. package/dist/assets/volter-sdk-kit-cancellation-reason-BH7-0ZVf.js +0 -1
  682. package/dist/assets/volter-sdk-kit-canvas-frames-BieYMTcU.js +0 -1
  683. package/dist/assets/volter-sdk-kit-capture-camera-pose-CHUoNB6d.js +0 -1
  684. package/dist/assets/volter-sdk-kit-capture-size-CAnl2oe2.js +0 -1
  685. package/dist/assets/volter-sdk-kit-chrome-registry-MC5H7QaT.js +0 -1
  686. package/dist/assets/volter-sdk-kit-chrome-slot-registry-0ZLiAfjQ.js +0 -1
  687. package/dist/assets/volter-sdk-kit-collaboration-client-BuG6oS42.js +0 -1
  688. package/dist/assets/volter-sdk-kit-collaboration-presence-De8jBlkX.js +0 -1
  689. package/dist/assets/volter-sdk-kit-command-dispatch-k9Qre0zs.js +0 -1
  690. package/dist/assets/volter-sdk-kit-command-listener-BCAbvhi5.js +0 -1
  691. package/dist/assets/volter-sdk-kit-command-registry-DhoVVzF5.js +0 -1
  692. package/dist/assets/volter-sdk-kit-component-board-registry-BeICFKFG.js +0 -1
  693. package/dist/assets/volter-sdk-kit-component-states-registry-QdCQHRDN.js +0 -1
  694. package/dist/assets/volter-sdk-kit-components-AlignToolbar-UuSLtczL.js +0 -1
  695. package/dist/assets/volter-sdk-kit-components-ApplicationMenus-DRnMid6h.js +0 -1
  696. package/dist/assets/volter-sdk-kit-components-AssetEditorShell-k_gEaNs8.js +0 -1
  697. package/dist/assets/volter-sdk-kit-components-AssetInspectorToolSection-CgmL27Qf.js +0 -1
  698. package/dist/assets/volter-sdk-kit-components-BoardRulers-DaINv5KN.js +0 -1
  699. package/dist/assets/volter-sdk-kit-components-CanvasAddNodeDialogs-D33j4CtY.js +0 -1
  700. package/dist/assets/volter-sdk-kit-components-CanvasSceneViewport-U0vUe3Gh.js +0 -1
  701. package/dist/assets/volter-sdk-kit-components-ChromeSlot-Di70MjzD.js +0 -1
  702. package/dist/assets/volter-sdk-kit-components-CodeView-Dw9qSGfW.js +0 -1
  703. package/dist/assets/volter-sdk-kit-components-CompactInspectorShell-BSaITVHL.js +0 -1
  704. package/dist/assets/volter-sdk-kit-components-ConsolePanel-CBX_j1sn.js +0 -1
  705. package/dist/assets/volter-sdk-kit-components-GameplaySessionTimeline-D_SOr8n1.js +0 -1
  706. package/dist/assets/volter-sdk-kit-components-InspectionProjection-BjmRH40i.js +0 -1
  707. package/dist/assets/volter-sdk-kit-components-Inspector-Bo9BYgAQ.js +0 -1
  708. package/dist/assets/volter-sdk-kit-components-InspectorCanvasPreview-C2U561Ms.js +0 -1
  709. package/dist/assets/volter-sdk-kit-components-InspectorFieldsSection-CKikcRO-.js +0 -1
  710. package/dist/assets/volter-sdk-kit-components-InspectorStoriesSection-CamEatgb.js +0 -1
  711. package/dist/assets/volter-sdk-kit-components-InspectorToolSection-qZTCY7B0.js +0 -1
  712. package/dist/assets/volter-sdk-kit-components-InspectorTransformSection-C1QrGase.js +0 -1
  713. package/dist/assets/volter-sdk-kit-components-LightExplorerPanel-D0XCAqj9.js +0 -1
  714. package/dist/assets/volter-sdk-kit-components-MediaProperties-CdL2K3l0.js +0 -1
  715. package/dist/assets/volter-sdk-kit-components-ProjectHeader-Ds2BEQBR.js +0 -1
  716. package/dist/assets/volter-sdk-kit-components-ReactCanvasControls-B-lQR6dk.js +0 -1
  717. package/dist/assets/volter-sdk-kit-components-RootSelectionOverlay-DL06pAbx.js +0 -1
  718. package/dist/assets/volter-sdk-kit-components-RootTextEditor-NXARIgKP.js +0 -1
  719. package/dist/assets/volter-sdk-kit-components-SaveStatus-D9k5E7Hu.js +0 -1
  720. package/dist/assets/volter-sdk-kit-components-SurfaceStateOverlay-B1204CGs.js +0 -1
  721. package/dist/assets/volter-sdk-kit-components-ToolContributionSurfaces-Dg-KoCOj.js +0 -1
  722. package/dist/assets/volter-sdk-kit-components-ToolHost-CQQFzB8P.js +0 -1
  723. package/dist/assets/volter-sdk-kit-components-Toolbar-B84RxD-H.js +0 -1
  724. package/dist/assets/volter-sdk-kit-components-TransientHint-Dm4X7E6D.js +0 -1
  725. package/dist/assets/volter-sdk-kit-components-VersionControlSection-fex1-uEJ.js +0 -1
  726. package/dist/assets/volter-sdk-kit-components-ViewportOverlaysMenu-BMtIjudq.js +0 -1
  727. package/dist/assets/volter-sdk-kit-components-VolterLogo-CtJX1fLJ.js +0 -1
  728. package/dist/assets/volter-sdk-kit-components-WorktreeSwitcher-I5L1eMS3.js +0 -1
  729. package/dist/assets/volter-sdk-kit-components-account-documents-Dlh8Fj4d.js +0 -1
  730. package/dist/assets/volter-sdk-kit-components-asset-documents-BGNKcXN5.js +0 -1
  731. package/dist/assets/volter-sdk-kit-components-asset-editor-persistence-DYf1sB59.js +0 -1
  732. package/dist/assets/volter-sdk-kit-components-asset-selection-section-DTX5bWfY.js +0 -1
  733. package/dist/assets/volter-sdk-kit-components-asset-thumbnails-CMcb7LxE.js +0 -1
  734. package/dist/assets/volter-sdk-kit-components-asset-viewers-AudioViewer-hYej0it1.js +0 -1
  735. package/dist/assets/volter-sdk-kit-components-asset-viewers-GenericJsonViewer-C29xbyEa.js +0 -1
  736. package/dist/assets/volter-sdk-kit-components-asset-viewers-ImageViewer-DKm5c9pQ.js +0 -1
  737. package/dist/assets/volter-sdk-kit-components-asset-viewers-JsonAssetDocument-DlKL0CIE.js +0 -1
  738. package/dist/assets/volter-sdk-kit-components-asset-viewers-OnlineAssetDetail-C4m5ChIc.js +0 -1
  739. package/dist/assets/volter-sdk-kit-components-asset-viewers-SourceAssetViewer-C14y3ihh.js +0 -1
  740. package/dist/assets/volter-sdk-kit-components-asset-viewers-SpritesheetSpriteView-CKB0yNjt.js +0 -1
  741. package/dist/assets/volter-sdk-kit-components-asset-viewers-VideoViewer-BDVR2s-T.js +0 -1
  742. package/dist/assets/volter-sdk-kit-components-asset-viewers-shader-source-DQ40_HIV.js +0 -1
  743. package/dist/assets/volter-sdk-kit-components-board-guides-vzj1_mB_.js +0 -1
  744. package/dist/assets/volter-sdk-kit-components-canvas-scene-hotkeys-BfUtoRtR.js +0 -1
  745. package/dist/assets/volter-sdk-kit-components-canvas-temporary-pivot-BOXeKsL_.js +0 -1
  746. package/dist/assets/volter-sdk-kit-components-core-utilities-2xqqv2Xj.js +0 -1
  747. package/dist/assets/volter-sdk-kit-components-inspector-preview-section-CIf6SZcH.js +0 -1
  748. package/dist/assets/volter-sdk-kit-components-inspector-revert-label-CB8zytBo.js +0 -1
  749. package/dist/assets/volter-sdk-kit-components-inspector-selection-B7qYFl9c.js +0 -1
  750. package/dist/assets/volter-sdk-kit-components-inspector-stories-gating-BBT6jLKq.js +0 -1
  751. package/dist/assets/volter-sdk-kit-components-inspector-transform-DfBSTsjH.js +0 -1
  752. package/dist/assets/volter-sdk-kit-components-inspector-transform-subject-BNvFtyig.js +0 -1
  753. package/dist/assets/volter-sdk-kit-components-kind-documents-Cz1AqKrb.js +0 -1
  754. package/dist/assets/volter-sdk-kit-components-primitives-DraftColorInput-2RRfpNhD.js +0 -1
  755. package/dist/assets/volter-sdk-kit-components-project-tool-documents-Baw6UVeU.js +0 -1
  756. package/dist/assets/volter-sdk-kit-components-scene-documents-Dp2nxLO5.js +0 -1
  757. package/dist/assets/volter-sdk-kit-components-status-contributions-0AL287G7.js +0 -1
  758. package/dist/assets/volter-sdk-kit-components-tool-documents-SxZNqv0G.js +0 -1
  759. package/dist/assets/volter-sdk-kit-components-tool-schema-form-CBlMD0L5.js +0 -1
  760. package/dist/assets/volter-sdk-kit-components-use-after-paint-HjJYZ8Gz.js +0 -1
  761. package/dist/assets/volter-sdk-kit-components-use-project-image-assets-BGRscgk_.js +0 -1
  762. package/dist/assets/volter-sdk-kit-components-workspace-history-BdMvmkrA.js +0 -1
  763. package/dist/assets/volter-sdk-kit-components-world-documents-BuIe0TVS.js +0 -1
  764. package/dist/assets/volter-sdk-kit-components-world-overlay-gestures-BKlVnBSH.js +0 -1
  765. package/dist/assets/volter-sdk-kit-composite-screenshot-ClRYm_mt.js +0 -1
  766. package/dist/assets/volter-sdk-kit-content-entry-source-registry-BTxRwbHZ.js +0 -1
  767. package/dist/assets/volter-sdk-kit-contribution-surfaces-BBsj68Wz.js +0 -1
  768. package/dist/assets/volter-sdk-kit-coverage-canvas-reveal-CPo5_e0H.js +0 -1
  769. package/dist/assets/volter-sdk-kit-coverage-design-time-surfaces-CZyb5EH5.js +0 -1
  770. package/dist/assets/volter-sdk-kit-coverage-ontology-invariants-Blt31TSP.js +0 -1
  771. package/dist/assets/volter-sdk-kit-coverage-session-vitals-Da5QSNR9.js +0 -1
  772. package/dist/assets/volter-sdk-kit-creation-site-registry-wwmnNA8H.js +0 -1
  773. package/dist/assets/volter-sdk-kit-delegate-harness-registry-DZhtG99C.js +0 -1
  774. package/dist/assets/volter-sdk-kit-document-areas-D660d1pQ.js +0 -1
  775. package/dist/assets/volter-sdk-kit-document-context-registry-C7A14BNb.js +0 -1
  776. package/dist/assets/volter-sdk-kit-document-open-registry-o7VHt0RE.js +0 -1
  777. package/dist/assets/volter-sdk-kit-document-play-extension-DnympyQy.js +0 -1
  778. package/dist/assets/volter-sdk-kit-document-preview-source-BIfEWYvh.js +0 -1
  779. package/dist/assets/volter-sdk-kit-document-renderer-session-BAoAh3oc.js +0 -1
  780. package/dist/assets/volter-sdk-kit-document-stage-sessions-rp-lUOf7.js +0 -1
  781. package/dist/assets/volter-sdk-kit-document-viewports-nfnBmvxp.js +0 -1
  782. package/dist/assets/volter-sdk-kit-editor-api-B4otzopy.js +0 -1
  783. package/dist/assets/volter-sdk-kit-editor-chrome-capture-CWmg17HP.js +0 -1
  784. package/dist/assets/volter-sdk-kit-editor-commands-cJDgiqAt.js +0 -1
  785. package/dist/assets/volter-sdk-kit-editor-console-DPkmRwd6.js +0 -1
  786. package/dist/assets/volter-sdk-kit-editor-current-view-DxGCw3Wd.js +0 -1
  787. package/dist/assets/volter-sdk-kit-editor-document-probe-CN2yr1kY.js +0 -1
  788. package/dist/assets/volter-sdk-kit-editor-git-client-B46cp3L1.js +0 -1
  789. package/dist/assets/volter-sdk-kit-editor-hotkeys-Dce3EYk2.js +0 -1
  790. package/dist/assets/volter-sdk-kit-editor-lease-BN3_7vDZ.js +0 -1
  791. package/dist/assets/volter-sdk-kit-editor-lease-view-C8WlPz7s.js +0 -1
  792. package/dist/assets/volter-sdk-kit-editor-mode-B5EZmrCR.js +0 -1
  793. package/dist/assets/volter-sdk-kit-editor-notifications-sTGM7WtH.js +0 -1
  794. package/dist/assets/volter-sdk-kit-editor-presence-BHriH9Fy.js +0 -1
  795. package/dist/assets/volter-sdk-kit-editor-presentation-activity-CmD9eBZ_.js +0 -1
  796. package/dist/assets/volter-sdk-kit-editor-presentation-notice-Decyhm66.js +0 -1
  797. package/dist/assets/volter-sdk-kit-editor-runtime-DHQJcaKd.js +0 -1
  798. package/dist/assets/volter-sdk-kit-editor-server-response-BkWelHzj.js +0 -1
  799. package/dist/assets/volter-sdk-kit-editor-session-attribution-BR9UWdR6.js +0 -1
  800. package/dist/assets/volter-sdk-kit-editor-session-mode-hqIWdf2B.js +0 -1
  801. package/dist/assets/volter-sdk-kit-editor-state-facets-bvq2P7SA.js +0 -1
  802. package/dist/assets/volter-sdk-kit-editor-view-presentation-DLOWDzzy.js +0 -1
  803. package/dist/assets/volter-sdk-kit-environment-images-oMeHjbDw.js +0 -1
  804. package/dist/assets/volter-sdk-kit-eyedropper-session-DWAa-Biy.js +0 -1
  805. package/dist/assets/volter-sdk-kit-files-file-provider-U0Hd4ukx.js +0 -1
  806. package/dist/assets/volter-sdk-kit-files-project-files-4-kjPKJS.js +0 -1
  807. package/dist/assets/volter-sdk-kit-finders-index-CII4_28l.js +0 -1
  808. package/dist/assets/volter-sdk-kit-finders-scenes-from-entrypoint-selection-B8hycBye.js +0 -1
  809. package/dist/assets/volter-sdk-kit-frame-frame-parts-D-8Ffbnn.js +0 -1
  810. package/dist/assets/volter-sdk-kit-framed-document-capture-xuaTlR2W.js +0 -1
  811. package/dist/assets/volter-sdk-kit-game-surface-defaults-DMPYj1cL.js +0 -1
  812. package/dist/assets/volter-sdk-kit-gameplay-export-state-DwPVbG_z.js +0 -1
  813. package/dist/assets/volter-sdk-kit-gameplay-replay-YQ9HaJ4D.js +0 -1
  814. package/dist/assets/volter-sdk-kit-gameplay-session-time-CHjy5x0w.js +0 -1
  815. package/dist/assets/volter-sdk-kit-gameplay-sessions-DVNFi3db.js +0 -1
  816. package/dist/assets/volter-sdk-kit-hierarchy-component-marks-BO6QFbcg.js +0 -1
  817. package/dist/assets/volter-sdk-kit-hierarchy-internals-DHl0iE2O.js +0 -1
  818. package/dist/assets/volter-sdk-kit-hierarchy-kind-icon-CsQB7hVX.js +0 -1
  819. package/dist/assets/volter-sdk-kit-hierarchy-menu-registry-BqwYB4wh.js +0 -1
  820. package/dist/assets/volter-sdk-kit-hierarchy-node-rows-SGt4wx3-.js +0 -1
  821. package/dist/assets/volter-sdk-kit-hierarchy-panel-view-j1CZFQrR.js +0 -1
  822. package/dist/assets/volter-sdk-kit-hierarchy-projection-DlD5Ge3J.js +0 -1
  823. package/dist/assets/volter-sdk-kit-hierarchy-row-media-C8NlC6Zs.js +0 -1
  824. package/dist/assets/volter-sdk-kit-hierarchy-row-model-CsxqvCkr.js +0 -1
  825. package/dist/assets/volter-sdk-kit-hierarchy-rows-B6vFr7fv.js +0 -1
  826. package/dist/assets/volter-sdk-kit-hierarchy-walk-BSorleKV.js +0 -1
  827. package/dist/assets/volter-sdk-kit-history-editor-session-Ch7Rju03.js +0 -1
  828. package/dist/assets/volter-sdk-kit-history-history-commands-DHfC2eEE.js +0 -1
  829. package/dist/assets/volter-sdk-kit-history-history-delegate-d1VrRfJ_.js +0 -1
  830. package/dist/assets/volter-sdk-kit-history-history-limit-notices-Cz_aUVbj.js +0 -1
  831. package/dist/assets/volter-sdk-kit-history-history-service-DQuzGZjj.js +0 -1
  832. package/dist/assets/volter-sdk-kit-history-persistence-coordinator-B_IHVPkm.js +0 -1
  833. package/dist/assets/volter-sdk-kit-history-project-file-history-Carvs4Xw.js +0 -1
  834. package/dist/assets/volter-sdk-kit-history-project-root-history-backends-BLD_AY74.js +0 -1
  835. package/dist/assets/volter-sdk-kit-history-resource-registry-CNjNiuSL.js +0 -1
  836. package/dist/assets/volter-sdk-kit-history-snapshot-store-CJSmgzLO.js +0 -1
  837. package/dist/assets/volter-sdk-kit-history-source-history-backend-Dl_iBeRi.js +0 -1
  838. package/dist/assets/volter-sdk-kit-hmr-registration-group-CXyUJGHt.js +0 -1
  839. package/dist/assets/volter-sdk-kit-hmr-stable-react-context-CcADd8vA.js +0 -1
  840. package/dist/assets/volter-sdk-kit-hotkeys-B5mfvdNj.js +0 -1
  841. package/dist/assets/volter-sdk-kit-inference-diagnostics-CKudL-Hd.js +0 -1
  842. package/dist/assets/volter-sdk-kit-initial-project-DxdY28Kn.js +0 -1
  843. package/dist/assets/volter-sdk-kit-inspection-active-subject-ayxYCqDa.js +0 -1
  844. package/dist/assets/volter-sdk-kit-inspection-active-surface-BU9dpZgu.js +0 -1
  845. package/dist/assets/volter-sdk-kit-inspection-compose-subject-qD3qBc4d.js +0 -1
  846. package/dist/assets/volter-sdk-kit-inspection-display-C5PF41kk.js +0 -1
  847. package/dist/assets/volter-sdk-kit-inspection-document-subject-C7wKxaTC.js +0 -1
  848. package/dist/assets/volter-sdk-kit-inspection-game-subject-DbMHqpER.js +0 -1
  849. package/dist/assets/volter-sdk-kit-inspection-model-7J8bEzro.js +0 -1
  850. package/dist/assets/volter-sdk-kit-inspection-node-media-CsqEbnmq.js +0 -1
  851. package/dist/assets/volter-sdk-kit-inspection-null-subject-DZbH2nfV.js +0 -1
  852. package/dist/assets/volter-sdk-kit-inspection-serialize-BRjHRzyv.js +0 -1
  853. package/dist/assets/volter-sdk-kit-inspection-use-active-inspection-BwlJ4cum.js +0 -1
  854. package/dist/assets/volter-sdk-kit-inspector-presentation-BAs9sxmj.js +0 -1
  855. package/dist/assets/volter-sdk-kit-inspector-property-grouping-BMPF_r1R.js +0 -1
  856. package/dist/assets/volter-sdk-kit-inspector-section-registry-sIu0cDZ3.js +0 -1
  857. package/dist/assets/volter-sdk-kit-instance-source-actions-CuCpNP44.js +0 -1
  858. package/dist/assets/volter-sdk-kit-js-heap-33ODHy-d.js +0 -1
  859. package/dist/assets/volter-sdk-kit-key-actions-CsRondgE.js +0 -1
  860. package/dist/assets/volter-sdk-kit-keymap-presets-AscUFBGG.js +0 -1
  861. package/dist/assets/volter-sdk-kit-layout-policy-CWNvk4YG.js +0 -1
  862. package/dist/assets/volter-sdk-kit-light-explorer-model-DtNXjPVL.js +0 -1
  863. package/dist/assets/volter-sdk-kit-live-canvas-frame-BjCbO1ip.js +0 -1
  864. package/dist/assets/volter-sdk-kit-live-document-DcKqP5Vm.js +0 -1
  865. package/dist/assets/volter-sdk-kit-live-gesture-lock-D8Xw-crH.js +0 -1
  866. package/dist/assets/volter-sdk-kit-live-seam-evidence-BFvKDVcA.js +0 -1
  867. package/dist/assets/volter-sdk-kit-live-session-registry-DH6Gw6mD.js +0 -1
  868. package/dist/assets/volter-sdk-kit-live-transition-BqyCVB6M.js +0 -1
  869. package/dist/assets/volter-sdk-kit-manifest-project-DB9obnxF.js +0 -1
  870. package/dist/assets/volter-sdk-kit-module-fetch-diagnosis-UWhRbWd2.js +0 -1
  871. package/dist/assets/volter-sdk-kit-mount-failure-report-CUeYgCgW.js +0 -1
  872. package/dist/assets/volter-sdk-kit-native-selection-style-Cn13Teb3.js +0 -1
  873. package/dist/assets/volter-sdk-kit-object3d-document-write-policy-CAuCUEuz.js +0 -1
  874. package/dist/assets/volter-sdk-kit-packaged-runtime-CfWW26Lw.js +0 -1
  875. package/dist/assets/volter-sdk-kit-performance-profiler-Drw2xyyh.js +0 -1
  876. package/dist/assets/volter-sdk-kit-performance-sources-C5_qaCKL.js +0 -1
  877. package/dist/assets/volter-sdk-kit-photograph-notice-BorTV754.js +0 -1
  878. package/dist/assets/volter-sdk-kit-play-boot-phase-DRILY5HB.js +0 -1
  879. package/dist/assets/volter-sdk-kit-play-camera-flight-xWnFHyCJ.js +0 -1
  880. package/dist/assets/volter-sdk-kit-presentation-surface-BVjhfPW_.js +0 -1
  881. package/dist/assets/volter-sdk-kit-product-command-Z3FUyOZH.js +0 -1
  882. package/dist/assets/volter-sdk-kit-project-adapter-DYLGSL7n.js +0 -1
  883. package/dist/assets/volter-sdk-kit-project-asset-refresh-BQRieOTY.js +0 -1
  884. package/dist/assets/volter-sdk-kit-project-asset-roots-BzvdTX0f.js +0 -1
  885. package/dist/assets/volter-sdk-kit-project-local-state-C3v2aoZe.js +0 -1
  886. package/dist/assets/volter-sdk-kit-project-manager-BhNOa6yj.js +0 -1
  887. package/dist/assets/volter-sdk-kit-project-module-changes-D6xXn9e0.js +0 -1
  888. package/dist/assets/volter-sdk-kit-project-module-split-hrsUcLWw.js +0 -1
  889. package/dist/assets/volter-sdk-kit-project-provenance-Ch-TcC33.js +0 -1
  890. package/dist/assets/volter-sdk-kit-project-ready-DIs3PAtE.js +0 -1
  891. package/dist/assets/volter-sdk-kit-project-shape-cp-U044u.js +0 -1
  892. package/dist/assets/volter-sdk-kit-project-tools-Dsz8XxT2.js +0 -1
  893. package/dist/assets/volter-sdk-kit-readiness-DGy_iPng.js +0 -1
  894. package/dist/assets/volter-sdk-kit-renderer-resource-counts-CSFdq6cn.js +0 -1
  895. package/dist/assets/volter-sdk-kit-reported-play-state-Bbfug76r.js +0 -1
  896. package/dist/assets/volter-sdk-kit-resolve-contributed-command-BbMh2utc.js +0 -1
  897. package/dist/assets/volter-sdk-kit-resolve-relative-specifier-BuivsBeF.js +0 -1
  898. package/dist/assets/volter-sdk-kit-retained-document-states-CxqjPi-M.js +0 -1
  899. package/dist/assets/volter-sdk-kit-scene-document-plan-Pq2qwZBi.js +0 -1
  900. package/dist/assets/volter-sdk-kit-scene-live-open-u4QDXpQ0.js +0 -1
  901. package/dist/assets/volter-sdk-kit-scoped-game-css-tb7gOlcn.js +0 -1
  902. package/dist/assets/volter-sdk-kit-served-url-DtZEq2OD.js +0 -1
  903. package/dist/assets/volter-sdk-kit-session-close-BE3nJmiM.js +0 -1
  904. package/dist/assets/volter-sdk-kit-session-tombstone-B9q2Gxk2.js +0 -1
  905. package/dist/assets/volter-sdk-kit-settings-settings-provider-Bo5k3qZx.js +0 -1
  906. package/dist/assets/volter-sdk-kit-settings-store-BJ_3jPnk.js +0 -1
  907. package/dist/assets/volter-sdk-kit-shell-store-CA_p9YRS.js +0 -1
  908. package/dist/assets/volter-sdk-kit-shell-store-door-DrDJAdEA.js +0 -1
  909. package/dist/assets/volter-sdk-kit-source-conflict-BskWTHl1.js +0 -1
  910. package/dist/assets/volter-sdk-kit-stage-context-d2MOE3m1.js +0 -1
  911. package/dist/assets/volter-sdk-kit-stage-invalidation-CaUfxL_V.js +0 -1
  912. package/dist/assets/volter-sdk-kit-stage-store-registry-CsPquPQN.js +0 -1
  913. package/dist/assets/volter-sdk-kit-startup-failure-Bf4E0YMD.js +0 -1
  914. package/dist/assets/volter-sdk-kit-state-report-deferral-CKxDlryl.js +0 -1
  915. package/dist/assets/volter-sdk-kit-storage-host-files-storage-DpV1XxZk.js +0 -1
  916. package/dist/assets/volter-sdk-kit-storage-http-storage-Bu87cOj_.js +0 -1
  917. package/dist/assets/volter-sdk-kit-storage-index-j54mTIme.js +0 -1
  918. package/dist/assets/volter-sdk-kit-storage-mem-storage-CtFx_JD9.js +0 -1
  919. package/dist/assets/volter-sdk-kit-storage-path-lock-CzDbr7Zo.js +0 -1
  920. package/dist/assets/volter-sdk-kit-storage-paths-C-fXy9NI.js +0 -1
  921. package/dist/assets/volter-sdk-kit-stories-StoryPreviewMount-X17hefjP.js +0 -1
  922. package/dist/assets/volter-sdk-kit-stories-compose-project-stories-Dm6PyZ2j.js +0 -1
  923. package/dist/assets/volter-sdk-kit-stories-prefabs-finder-Ch6FzvvU.js +0 -1
  924. package/dist/assets/volter-sdk-kit-stories-prefabs-from-stories-vm7c5Dez.js +0 -1
  925. package/dist/assets/volter-sdk-kit-stories-project-story-regions-0zBaevxR.js +0 -1
  926. package/dist/assets/volter-sdk-kit-stories-scope-CQF_Wn9H.js +0 -1
  927. package/dist/assets/volter-sdk-kit-stories-story-capture-CuSMTSru.js +0 -1
  928. package/dist/assets/volter-sdk-kit-stories-story-declared-medium-D5fxOuPe.js +0 -1
  929. package/dist/assets/volter-sdk-kit-stories-story-discovery-CARKaW03.js +0 -1
  930. package/dist/assets/volter-sdk-kit-stories-story-dom-runtime-SNxzbxPZ.js +0 -1
  931. package/dist/assets/volter-sdk-kit-stories-story-grouping-DyuyTFov.js +0 -1
  932. package/dist/assets/volter-sdk-kit-stories-story-presentation-DB5Pqlf7.js +0 -1
  933. package/dist/assets/volter-sdk-kit-stories-story-registry-C4PxIVxf.js +0 -1
  934. package/dist/assets/volter-sdk-kit-story-document-openers-BLRErv4h.js +0 -1
  935. package/dist/assets/volter-sdk-kit-story-thumbnails-nRyLNJxw.js +0 -1
  936. package/dist/assets/volter-sdk-kit-surface-keyboard-C5VehlZB.js +0 -1
  937. package/dist/assets/volter-sdk-kit-surface-state-D2RWtgU_.js +0 -1
  938. package/dist/assets/volter-sdk-kit-system-seam-evidence-DBmKEA5N.js +0 -1
  939. package/dist/assets/volter-sdk-kit-tab-census-DCYP_c6M.js +0 -1
  940. package/dist/assets/volter-sdk-kit-tab-lifecycle-client-B2dkacMA.js +0 -1
  941. package/dist/assets/volter-sdk-kit-theme-library-D2z9TIt_.js +0 -1
  942. package/dist/assets/volter-sdk-kit-theme-preference-CQYPOsMY.js +0 -1
  943. package/dist/assets/volter-sdk-kit-three-viewport-presentation-DjqLHzpC.js +0 -1
  944. package/dist/assets/volter-sdk-kit-tool-contribution-play-BJf9frMP.js +0 -1
  945. package/dist/assets/volter-sdk-kit-tool-loader-BJSPdpDJ.js +0 -1
  946. package/dist/assets/volter-sdk-kit-transform-mode-request-BysdaJxj.js +0 -1
  947. package/dist/assets/volter-sdk-kit-transient-hint-BCAURwwB.js +0 -1
  948. package/dist/assets/volter-sdk-kit-transport-strip-Dh_gh_Ar.js +0 -1
  949. package/dist/assets/volter-sdk-kit-ui-source-file-region-resolver-3PTxxNEF.js +0 -1
  950. package/dist/assets/volter-sdk-kit-ui-source-inspect-htLRFbbl.js +0 -1
  951. package/dist/assets/volter-sdk-kit-ui-source-source-write-backend--mXzGN0l.js +0 -1
  952. package/dist/assets/volter-sdk-kit-ui-source-tier-source-write-backend-BLldmdDB.js +0 -1
  953. package/dist/assets/volter-sdk-kit-user-local-state-BG9yY7wu.js +0 -1
  954. package/dist/assets/volter-sdk-kit-viewport-activation-timings-DI9VeZ8I.js +0 -1
  955. package/dist/assets/volter-sdk-kit-viewport-editor-controls-yx73yxqB.js +0 -1
  956. package/dist/assets/volter-sdk-kit-viewport-presentation-BiXyPx_l.js +0 -1
  957. package/dist/assets/volter-sdk-kit-viewport-surface-status-DhOHcCGA.js +0 -1
  958. package/dist/assets/volter-sdk-kit-wait-until-BxjkicFp.js +0 -1
  959. package/dist/assets/volter-sdk-kit-worker-call-metrics-CxIIhpb2.js +0 -1
  960. package/dist/assets/volter-sdk-kit-workspace-areas-CnNrdXA2.js +0 -1
  961. package/dist/assets/volter-sdk-kit-workspace-aux-commands-3Si9v39s.js +0 -1
  962. package/dist/assets/volter-sdk-kit-workspace-available-documents-DiQ-lLLQ.js +0 -1
  963. package/dist/assets/volter-sdk-kit-workspace-core-utilities-Htvt6dsG.js +0 -1
  964. package/dist/assets/volter-sdk-kit-workspace-document-ids-CaVQDIFY.js +0 -1
  965. package/dist/assets/volter-sdk-kit-workspace-document-registry-C-JtMmAl.js +0 -1
  966. package/dist/assets/volter-sdk-kit-workspace-document-restore-BMR96t8y.js +0 -1
  967. package/dist/assets/volter-sdk-kit-workspace-host-commands-lzroQNX_.js +0 -1
  968. package/dist/assets/volter-sdk-kit-workspace-persistence-gate-DuvwxRnn.js +0 -1
  969. package/dist/assets/volter-sdk-kit-workspace-play-utilities-C98Lvagt.js +0 -1
  970. package/dist/assets/volter-sdk-kit-workspace-presets-D-_A7JDE.js +0 -1
  971. package/dist/assets/volter-sdk-kit-workspace-regions-CjlUpZr0.js +0 -1
  972. package/dist/assets/volter-sdk-kit-workspace-static-panels-CMqSE6J4.js +0 -1
  973. package/dist/assets/volter-sdk-kit-workspace-status-registry-7kSA_sJg.js +0 -1
  974. package/dist/assets/volter-sdk-kit-workspace-storage-Dg-zwxJa.js +0 -1
  975. package/dist/assets/volter-sdk-kit-workspace-style-DOuNQjxD.js +0 -1
  976. package/dist/assets/volter-sdk-kit-workspace-utility-commands-Cb2B-wJ4.js +0 -1
  977. package/dist/assets/volter-sdk-kit-workspace-utility-registry-Bm-lvH6A.js +0 -1
  978. package/dist/assets/volter-sdk-kit-world-adoption-ndmh4Nmf.js +0 -1
  979. package/dist/assets/volter-sdk-kit-world-canvas-viewport-state-EnXhxxxs.js +0 -1
  980. package/dist/assets/volter-sdk-kit-world-document-routing-DBACuFYQ.js +0 -1
  981. package/dist/assets/volter-sdk-kit-world-pan-state-BGY2sBjP.js +0 -1
  982. package/dist/assets/volter-sdk-kit-write-pipe-D-TR3xVs.js +0 -1
  983. package/dist/assets/volter-sdk-layout-arrangements-DUPpMeSr.js +0 -1
  984. package/dist/assets/volter-sdk-layouts-CGyUD29k.js +0 -1
  985. package/dist/assets/volter-sdk-selection-tCvpnXRn.js +0 -1
  986. package/dist/assets/volter-sdk-session-command-table-BxONBy05.js +0 -1
  987. package/dist/assets/volter-sdk-session-editor-brand-BG0ODZ-8.js +0 -1
  988. package/dist/assets/volter-sdk-session-editor-compatibility-BHTMjwNA.js +0 -1
  989. package/dist/assets/volter-sdk-session-editor-control-protocol-CN7sZXZb.js +0 -1
  990. package/dist/assets/volter-sdk-session-entrypoint-selection-readers-9vLAGmig.js +0 -1
  991. package/dist/assets/volter-sdk-session-game-css-scope-BM1eAf3p.js +0 -1
  992. package/dist/assets/volter-sdk-session-project-module-url-CYuYhJk6.js +0 -1
  993. package/dist/assets/volter-sdk-session-relative-path-guard-BIEldh0Z.js +0 -1
  994. package/dist/assets/volter-sdk-session-tool-contribution-convention-DvN_LWlB.js +0 -1
  995. package/dist/assets/volter-sdk-types-BvyVPR_Q.js +0 -1
  996. package/dist/assets/volter-sdk-views-BDaWlMYB.js +0 -1
  997. package/dist/assets/volter-sdk-widgets-design-system-QBgXzl9_.js +0 -1
  998. package/dist/assets/volter-sdk-widgets-editor-appearance-BrIPELML.js +0 -1
  999. package/dist/assets/volter-sdk-widgets-editor-material-B_fvft70.js +0 -1
  1000. package/dist/assets/volter-sdk-widgets-icon-set-registry-T4Dmzqt7.js +0 -1
  1001. package/dist/assets/volter-sdk-widgets-index-B3HpUbVG.js +0 -1
  1002. package/dist/assets/volter-sdk-widgets-inspector-widgets-AlignmentGrid-CDr_zdnY.js +0 -1
  1003. package/dist/assets/volter-sdk-widgets-inspector-widgets-AssetSlotPicker-BWxes3gA.js +0 -1
  1004. package/dist/assets/volter-sdk-widgets-inspector-widgets-BorderEditor-etYg4PmT.js +0 -1
  1005. package/dist/assets/volter-sdk-widgets-inspector-widgets-ColorPicker-DetQDh_f.js +0 -1
  1006. package/dist/assets/volter-sdk-widgets-inspector-widgets-CurveEditor-BfTn_BsC.js +0 -1
  1007. package/dist/assets/volter-sdk-widgets-inspector-widgets-FilterEditor-saO-J7Oq.js +0 -1
  1008. package/dist/assets/volter-sdk-widgets-inspector-widgets-FontPicker-CZ7FmWxG.js +0 -1
  1009. package/dist/assets/volter-sdk-widgets-inspector-widgets-GradientEditor-ChiCM1d4.js +0 -1
  1010. package/dist/assets/volter-sdk-widgets-inspector-widgets-ScrubbableInput-Dz-bVsZ8.js +0 -1
  1011. package/dist/assets/volter-sdk-widgets-inspector-widgets-ShadowEditor-BAugA19h.js +0 -1
  1012. package/dist/assets/volter-sdk-widgets-inspector-widgets-color-utils-DxraCOXQ.js +0 -1
  1013. package/dist/assets/volter-sdk-widgets-inspector-widgets-curve-utils-kkJukQ0s.js +0 -1
  1014. package/dist/assets/volter-sdk-widgets-inspector-widgets-index-B3vyn0Ai.js +0 -1
  1015. package/dist/assets/volter-sdk-widgets-inspector-widgets-shared-CPkFF1JF.js +0 -1
  1016. package/dist/assets/volter-sdk-widgets-interactive-edit-scope-D4_tVXsa.js +0 -1
  1017. package/dist/assets/volter-sdk-widgets-patterns-Dialog-CkPDHAWE.js +0 -1
  1018. package/dist/assets/volter-sdk-widgets-patterns-Fields-BJShETId.js +0 -1
  1019. package/dist/assets/volter-sdk-widgets-patterns-List-BgG2_2xL.js +0 -1
  1020. package/dist/assets/volter-sdk-widgets-patterns-StateSurface-G2He1eZg.js +0 -1
  1021. package/dist/assets/volter-sdk-widgets-patterns-Surfaces-N-ry8Gth.js +0 -1
  1022. package/dist/assets/volter-sdk-widgets-patterns-Tabs-gSMJ3Pp_.js +0 -1
  1023. package/dist/assets/volter-sdk-widgets-patterns-Toolbar-BVbWQJC-.js +0 -1
  1024. package/dist/assets/volter-sdk-widgets-patterns-Tree-BsJEhxbv.js +0 -1
  1025. package/dist/assets/volter-sdk-widgets-primitives-AnchoredMenu-CaiLdn6d.js +0 -1
  1026. package/dist/assets/volter-sdk-widgets-primitives-Button-C0ugJ_I6.js +0 -1
  1027. package/dist/assets/volter-sdk-widgets-primitives-ColorInput-CJcVDa_m.js +0 -1
  1028. package/dist/assets/volter-sdk-widgets-primitives-DraftTextInput-B-I_hC_P.js +0 -1
  1029. package/dist/assets/volter-sdk-widgets-primitives-EditorIcon-BUbAPjrv.js +0 -1
  1030. package/dist/assets/volter-sdk-widgets-primitives-FormControls-9Ke8qtZ8.js +0 -1
  1031. package/dist/assets/volter-sdk-widgets-primitives-HoverPreview-IgTEdXXe.js +0 -1
  1032. package/dist/assets/volter-sdk-widgets-primitives-JsonInput-Dj0j9sft.js +0 -1
  1033. package/dist/assets/volter-sdk-widgets-primitives-Layout-BfWHHWVT.js +0 -1
  1034. package/dist/assets/volter-sdk-widgets-primitives-Menu-hgt5A7Kd.js +0 -1
  1035. package/dist/assets/volter-sdk-widgets-primitives-NumberInput-B_EwFkyN.js +0 -1
  1036. package/dist/assets/volter-sdk-widgets-primitives-Panel-Bv-Dt2pg.js +0 -1
  1037. package/dist/assets/volter-sdk-widgets-primitives-SectionHeader-CtGyBmQ7.js +0 -1
  1038. package/dist/assets/volter-sdk-widgets-primitives-Text-CROeI4AB.js +0 -1
  1039. package/dist/assets/volter-sdk-widgets-primitives-ThemeRootPortal-Bp6LhOHs.js +0 -1
  1040. package/dist/assets/volter-sdk-widgets-primitives-Tooltip-CKGQWC6W.js +0 -1
  1041. package/dist/assets/volter-sdk-widgets-primitives-Vec3Input-DKN5rnzb.js +0 -1
  1042. package/dist/assets/volter-sdk-widgets-primitives-banner-tones-2b5QAcYe.js +0 -1
  1043. package/dist/assets/volter-sdk-widgets-primitives-clamp-to-viewport-D94XgQyr.js +0 -1
  1044. package/dist/assets/volter-sdk-widgets-primitives-editor-icons-D9930eKI.js +0 -1
  1045. package/dist/assets/volter-sdk-widgets-primitives-panel-header-styles-DmH6-h4B.js +0 -1
  1046. package/dist/assets/volter-sdk-widgets-theme-ah2w0Fkn.js +0 -1
  1047. package/dist/assets/volter-sdk-widgets-z-index-BTO2KQ8P.js +0 -1
  1048. package/dist/assets/volter-shared-fontawesome-BjL6w6Cn.js +0 -1
  1049. package/dist/assets/volter-shared-jsx-dev-runtime-Bz1gHaPC.js +0 -1
  1050. package/dist/assets/volter-shared-jsx-runtime-DZaM4mR0.js +0 -1
  1051. package/dist/assets/volter-shared-react-71UsCCPo.js +0 -1
  1052. package/dist/assets/volter-shared-react-dom-BJsW7Z0N.js +0 -1
  1053. package/dist/assets/volter-shared-react-dom-client-Yf5gYUSE.js +0 -1
@@ -0,0 +1,13 @@
1
+ import{h1 as W,x as jt,ig as _t,ih as st,n as u,j as c,du as vt,ii as ae,dM as K,ij as ie,ik as wt,il as St,t as G,im as xt,cq as J,eu as kt,B as Be,dX as Ce,io as Et,aw as it,ax as he,bB as Ct,aE as re,gE as Ot,ip as we,aJ as Se,h_ as Q,iq as Ie,b$ as At,c2 as Rt,gu as Ve,ir as Mt,aA as Pt,is as Ft,it as Ge,aN as $t,iu as Tt,iv as We,iw as Lt}from"./volter-sdk-BwU3fa6G.js";import{o as Nt,k as pe,l as se,m as be,p as Dt,q as Oe,i as ze,t as Bt,u as It,w as qe,v as Vt,x as _e,y as Gt,z as Wt,A as He,s as zt,B as qt,C as Ht,D as Ut,E as Ue,F as Kt,G as Jt}from"./blender-runtime-host-CMI7ldx1.js";import{t as Xt,v as ee,o as ge,s as ct,a as ce}from"./object3d-document-session-registry-_NnPOZmk.js";import{r as Ke,b as Yt,a as Qt,w as Zt}from"./blender-properties-model-Yj49RcLm.js";import{g as er,n as tr,b as fe,o as rr}from"./play-mode-DljPhCBr.js";import{l as nr}from"./three.module-dk_BdrjN.js";import"./content-bounds-Dg9hT5Gp.js";import"./clip-planes-CmZu3QTO.js";import"./LineSegments2-D1_2s-N-.js";function dt(e){return`blender-${e.toLowerCase().replace(/_/g,"-")}`}function Z(e){return e?.type==="TSE_SOME_ID"&&e.struct==="Object"&&e.object!==void 0}function Je(e){if(e.struct)return e.struct}function Xe(e,t){return{id:e.id,label:e.name,role:"entity",kind:dt(e.icon),...Je(e)?{typeLabel:Je(e)}:{},parentId:t,childIds:e.children.map(o=>o.id),defaultExpanded:e.expanded}}const or={transform:!0,inspectorFields:!1,persist:!0},ye=new Set;let ut=0;const Ae=new Set;function Ye(){queueMicrotask(()=>{ut++;for(const e of Ae)e()})}function ar(e){return Ae.add(e),()=>{Ae.delete(e)}}function Qe(){return ut}function lr(e){for(const t of ye)if(t.documentId===e||t.documentId===`object3d-document:${e}`)return t;return ye.values().next().value??null}const sr=()=>({position:[0,0,0],rotation:[0,0,0,1],scale:[1,1,1]});function Ze(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 de(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 ir=[{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:`${de("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:de("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:de("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:de("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'"}],cr="collection-instance:";function dr(){const e=new Map;for(const t of se().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:`${cr}${t.name}`,label:t.name,group:"Collection Instance",call:`object.collection_instance_add, collection=${ne(t.name)}`})}return[...e.values()]}function me(){return[...ir,...dr()]}function ur(e){const[t,...o]=e.call.split(", ");return`bpy.ops.${t}(${o.join(", ")})`}function ne(e){return JSON.stringify(e)}const pr={"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 br(e){const t=/bpy\.ops\.([a-z_]+\.[a-z0-9_]+)\(/.exec(e)?.[1];return t===void 0?void 0:pr[t]}async function le(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 _e(o,!0,t??br(e));return s.error!==null?{made:[],error:s.error}:{made:s.result.split(`
3
+ `).map(b=>b.trim()).filter(b=>b.length>0),error:null}}async function fr(e,t){const o=[`_sel = {${e.map(ne).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(${ne(t)})`]].join(`
4
+ `),s=await _e(o,!1);s.error!==null&&W().console.error(`Blender refused the selection write: ${s.error}`,"blender-outliner")}async function xe(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(ne).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 le(o);return s!==null?{destination:s,persisted:!1}:(await be(e),{destination:`Blender — ${t}; the session saves the .blend`,persisted:!0})}const mr={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."},hr="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 pt(e){return({defaultAdapter:t})=>{const o=new Set;let s=[],O=null,b=null;const m=new Map,h=new Map,w=()=>{for(const n of[...o])n()},j=()=>se().byId,P=n=>{const r=j().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)},T=n=>{const r=e();if(r===null)return null;for(const a of j().values())if(Z(a)&&r.objectForBlenderName(a.object)===n)return a.id;return null},A=n=>{for(const r of j().values())if(Z(r)&&r.object===n)return r.id;return null},B=n=>{if(j().has(n))return n;const r=Xt(t.hierarchy,n);return r===null?null:T(r)},D=n=>{const r=B(n);return r===null?null:P(r)},V=n=>{const r=D(n);return r===null?null:t.hierarchy.idForObject3D?.(r)??null},L={roots:()=>(Vt(q()),(se().tree?.rows??[]).map(r=>Xe(r,null))),node:n=>{const r=se(),a=r.byId.has(n)?n:B(n),d=a===null?void 0:r.byId.get(a);return d===void 0?null:Xe(d,r.parentOf.get(d.id)??null)},object3D:n=>D(n),idForObject3D:n=>T(n)};function q(){const n=j(),r=new Set;for(const a of s){const d=n.get(a)?.object;d!==void 0&&r.add(d)}return[...r]}const z=()=>{const n=[];for(const r of s){const a=D(r),d=a===null?null:t.hierarchy.idForObject3D?.(a);d&&n.push(d)}t.selection?.set(n,{intent:"exact"}),w()},i=()=>{if(g||b!==null)return;const n=Dt(),r=`${Oe()}\0${n.active??""}\0${[...n.selected].sort().join("")}`;if(r===O)return;O=r;const a=n.selected.filter(y=>y!==n.active);n.active!==null&&n.selected.includes(n.active)&&a.push(n.active);const d=a.map(A).filter(y=>y!==null);d.length===s.length&&d.every((y,x)=>y===s[x])||(s=d,z())},f={get:()=>[...s],set:n=>{if(g)return;const r=Symbol("Blender selection");b=r,s=n.map(B).filter(x=>x!==null),z();const a=j(),d=[],y=[];for(const x of s){const S=a.get(x),k=S?.object;k===void 0?y.push(S?.name??x):d.includes(k)||d.push(k)}y.length>0&&W().console.warn(`${y.join(", ")} ${y.length===1?"is":"are"} not an object, so Blender's object selection does not carry ${y.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"),fr(d,d.length===0?null:d[d.length-1]).catch(x=>W().console.error(`Blender refused the selection write: ${String(x)}`,"blender-outliner")).finally(()=>{g||b!==r||(b=null,O=null,i())})}},C=n=>j().get(n)?.restrict,R={properties:n=>{const r=C(n);if(r===void 0)return[];const a=j().get(n),d=[{path:"name",label:"Name",type:"string",readonly:!Z(a)}];return r.hide!==void 0&&d.push({path:"visible",label:"Show in Viewport",type:"boolean"}),r.render!==void 0&&d.push({path:"renderVisible",label:"Show in Renders",type:"boolean"}),r.exclude!==void 0&&d.push({path:"exclude",label:"Exclude from View Layer",type:"boolean"}),d},get:(n,r)=>{const a=j().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=j().get(n);return a===void 0?{writable:!1}:r==="name"?Z(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:hr}:{writable:!0}},set:async(n,r,a)=>{const d=j().get(n);if(d===void 0)return;if(r==="name"){if(!Z(d))return;const x=String(a);if(x===d.name||x.length===0)return;await ze(`bpy.data.objects[${ne(d.object)}]`,"name",x),await be([x]);const S=A(x);S!==null&&f.set([S]);return}if(r==="exclude"){await qe(d.path,"exclude",a===!0);return}const y=r==="visible"?"hide":r==="renderVisible"?"render":null;y!==null&&await qe(d.path,y,a===!1)}},$={get:n=>{const r=V(n);return(r===null?void 0:t.transforms?.get(r))??sr()},editability:n=>{const r=B(n),a=r===null?void 0:j().get(r);return Z(a)&&P(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=D(n);r!==null&&!m.has(r)&&(m.set(r,r.matrixWorld.clone()),h.set(n,r),It())},apply:(n,r)=>{const a=D(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=h.get(n)??D(n);h.delete(n);const a=e();if(r===null)return;const d=m.get(r);m.delete(r);try{if(a===null||(r.updateWorldMatrix(!0,!1),d?.equals(r.matrixWorld)===!0))return;const y=a.blenderObjectName(r);if(y===null)return;const x=`bpy.data.objects[${JSON.stringify(y)}]`;try{return await ze(x,"matrix_world",Ze(r,a.root)),{destination:`Blender — ${x}.matrix_world; the session saves the .blend`,persisted:!0}}catch(S){return{destination:S instanceof Error?S.message:String(S),persisted:!1}}}finally{d&&await Bt()}}},H=n=>{const r=B(n),a=r===null?void 0:j().get(r);return Z(a)?a.object:null},M=n=>({destination:n,persisted:!1}),N=async n=>{await be(n);const r=n.map(A).filter(a=>a!==null);return r.length>0&&f.set(r),r[0]??""},I=()=>{const n=t.documentId?.replace(/^object3d-document:/,""),r=ee().find(y=>y.documentId===n)?.rig().drawCamera()??null,a=e(),d=["bpy.ops.object.camera_add()","added = bpy.context.view_layer.objects.active"];return r!==null&&a!==null&&d.push("kept = added.location.copy()",`added.matrix_world = ${JSON.stringify(Ze(r,a.root))}`,"added.location = kept"),d.push("if bpy.context.scene.camera is None:"," bpy.context.scene.camera = added"),d.join(`
6
+ `)},_={creatableKinds:()=>me().map(({kind:n,label:r})=>({kind:n,label:r})),create:n=>{const r=me().find(d=>d.kind===n);if(r===void 0)return{id:"",ack:M(`${n} is not a row of Blender's Add menu that this editor adds. Its rows are: ${me().map(d=>d.label).join(", ")}.`)};if(r.refusal!==void 0)return{id:"",ack:M(r.refusal)};const a=r.call==="object.camera_add"?I():ur(r);return{id:"",ack:(async()=>{const{made:d,error:y}=await le(a);return y!==null?M(y):d.length===0?M(`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 N(d),{destination:`Blender — ${a}; the session saves the .blend`,persisted:!0})})()}},remove:n=>_.removeMany?.([n])??void 0,removeMany:async n=>{const r=[];for(const x of n){const S=H(x);if(S===null){const k=B(x)===null?void 0:j().get(B(x));return M(`Only an object can be deleted here; this row is a ${k?.struct??k?.type??"row"}. Deleting a collection, a modifier or a vertex group is that datablock’s own bpy call.`)}r.push(S)}if(r.length===0)return M("Nothing selected to delete.");const d=[`targets = ${`[bpy.data.objects[n] for n in [${r.map(ne).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:y}=await le(d,"Delete Objects");return y!==null?M(y):(f.set([]),await be([]),{destination:"Blender — bpy.ops.object.delete(use_global=False); the session saves the .blend",persisted:!0})},duplicate:n=>{const r=H(n);if(r===null)return{id:n,ack:M("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[${ne(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:d,error:y}=await le(a,"Duplicate Object");return y!==null?M(y):(await N(d),{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(H))];if(r.length===0||r.some(x=>x===null))return M("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:d,error:y}=await le(a,"Duplicate Objects");return y!==null?M(y):(await N(d),{destination:"Blender — duplicate selected objects as one native operation; the session saves the .blend",persisted:!0})},reparent:()=>M("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.")},l={get documentId(){return t.documentId},get documentRootObject(){return t.documentRootObject},capabilities:or,provenance:mr,hierarchy:L,selection:f,inspector:R,transforms:$,structure:_,subscribe:n=>{o.add(n);const r=pe(n),a=t.subscribe?.(n)??(()=>{});return()=>{o.delete(n),r(),a()}}},p={get documentId(){return l.documentId},selectedObjectNames:()=>q(),allObjectNames:()=>{const n=[];for(const r of j().values())Z(r)&&n.push(r.object);return n},selectObjects:n=>{const r=n.map(A).filter(a=>a!==null);f.set(r)},rowIdForObject:n=>A(n),structure:_,subscribe:n=>{o.add(n);const r=pe(n);return()=>{o.delete(n),r()}}};ye.add(p);let g=!1;const v=setTimeout(()=>{g||(Ye(),i())},0),E=Nt(i),F=pe(i);return{adapter:l,dispose:()=>{g=!0,clearTimeout(v),E(),F(),ye.delete(p),Ye(),o.clear()}}}}const gr=pt(Gt);jt({match:({adapter:e})=>Ke(null,e)!==null,describe:({adapter:e})=>{const t=Ke(null,e);if(t===null)return null;const o=t.kind==="object"?[...se().byId.values()].find(m=>m.struct==="Object"&&m.object===t.name):void 0,s=Yt().context?.scene,O=s?Qt(s):void 0,b=t.kind==="object"?t.name:(O?.kind==="struct"?O.name:null)??"Scene";return{id:`blender-properties:${JSON.stringify(t)}`,title:b,identity:{kindLabel:t.kind==="object"?"Object":"Scene",kind:dt(o?.icon??"SCENE_DATA"),rename:{readOnly:t.kind!=="object",set:async m=>{t.kind==="object"&&m.length>0&&await Zt(`bpy.data.objects[${JSON.stringify(t.name)}]`,"name",m)}}},sections:[]}}});function bt(e){const t=Number.isFinite(e)&&e>0?e:50;return{degrees:2*Math.atan(72/(2*t))*180/Math.PI,axis:"larger"}}_t("model",{camera:{fov:bt(50),opening:[.8187,.4458,.3617]},interaction:{bootTool:"select",boxSelect:"touch"},all:{lighting:{source:"studio",studioPreset:st.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 Re="volter.blender.area-split:",Me=new Set,Pe=new Map;function yr(e){try{return globalThis.localStorage?.getItem(Re+e)==="1"}catch{return!1}}function $e(e){let t=Pe.get(e);return t===void 0&&(t=yr(e),Pe.set(e,t)),t}function et(e,t){if($e(e)!==t){Pe.set(e,t);try{t?globalThis.localStorage?.setItem(Re+e,"1"):globalThis.localStorage?.removeItem(Re+e)}catch{}for(const o of[...Me])o()}}function ft(e){return Me.add(e),()=>{Me.delete(e)}}const jr=[{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"}],_r=[{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)"}],vr=[{label:"Geometry to Origin",type:"GEOMETRY_ORIGIN"},{label:"Origin to Geometry",type:"ORIGIN_GEOMETRY"},{label:"Origin to 3D Cursor",type:"ORIGIN_CURSOR"}],wr=[{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"}],Sr="No Collections to Instance";function ue({id:e,open:t,setOpen:o,anchorRef:s,children:O}){return c.jsxs("div",{ref:s,style:{position:"relative"},children:[c.jsx(wt,{"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&&c.jsx(St,{anchorRef:s,dismissBoundaryRef:s,align:"start",gap:0,clamp:!0,"aria-label":e,onDismiss:()=>o(null),children:O})]})}function xr(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 mt({documentId:e,notify:t}){u.useSyncExternalStore(pe,Oe,Oe),u.useSyncExternalStore(ar,Qe,Qe);const[o,s]=u.useState(null),O=u.useRef(null),b=u.useRef(null),m=u.useRef(null),h=u.useRef(null),w=u.useRef(null),j=u.useSyncExternalStore(ft,()=>e===void 0?!1:$e(e),()=>!1),P=lr(e);if(P===null)return null;const T=(i,f)=>()=>{s(null),xr(t,i,f(P))},A=P.selectedObjectNames(),B=P.allObjectNames(),D=A.length===0?"Nothing is selected.":void 0,V=me(),L=i=>c.jsx(K,{"data-testid":`blender-add-${i.kind}`,disabled:i.refusal!==void 0,title:i.refusal,onSelect:T(`Add ${i.label}`,f=>f.structure.create(i.kind).ack),children:i.label},i.kind),q=i=>V.filter(f=>f.group===i).flatMap(f=>f.separatorBefore===!0?[c.jsx(ie,{},`${f.kind}-separator`),L(f)]:[L(f)]),z=i=>{if("separatorAt"in i)return c.jsx(ie,{},`separator-${i.separatorAt}`);if("kind"in i){const C=V.find(R=>R.kind===i.kind);return C===void 0?null:L(C)}const f=q(i.submenu);return f.length===0?c.jsx(K,{"data-testid":"blender-add-collection-instance",disabled:!0,children:Sr},i.submenu):c.jsx(ae,{label:i.submenu,"data-testid":`blender-add-${i.submenu.toLowerCase().replaceAll(" ","-")}`,children:f},i.submenu)};return c.jsxs(vt,{compact:!0,label:"Blender Object Mode menus","data-testid":"blender-object-mode-menus",ref:O,children:[c.jsx(ue,{id:"view",open:o,setOpen:s,anchorRef:b,children:c.jsxs(ae,{label:"Area","data-testid":"blender-view-area",children:[c.jsx(K,{"data-testid":"blender-area-vertical-split",disabled:j||e===void 0,title:j?"This area is already split.":void 0,onSelect:()=>{s(null),e!==void 0&&et(e,!0)},children:"Vertical Split"}),c.jsx(ie,{}),c.jsx(K,{"data-testid":"blender-area-close",disabled:!j,title:j?void 0:"There is no second area to close.",onSelect:()=>{s(null),e!==void 0&&et(e,!1)},children:"Close Area"})]})}),c.jsxs(ue,{id:"select",open:o,setOpen:s,anchorRef:m,children:[c.jsx(K,{"data-testid":"blender-select-all",onSelect:T("Select All",i=>i.selectObjects(B)),children:"All"}),c.jsx(K,{"data-testid":"blender-select-none",onSelect:T("Select None",i=>i.selectObjects([])),children:"None"}),c.jsx(K,{"data-testid":"blender-select-invert",onSelect:T("Select Invert",i=>i.selectObjects(B.filter(f=>!A.includes(f)))),children:"Invert"})]}),c.jsx(ue,{id:"add",open:o,setOpen:s,anchorRef:h,children:wr.map(i=>z(i))}),c.jsxs(ue,{id:"object",open:o,setOpen:s,anchorRef:w,children:[c.jsx(ae,{label:"Set Origin","data-testid":"blender-object-origin",children:vr.map(i=>c.jsx(K,{"data-testid":`blender-origin-${i.type}`,disabled:i.refusal!==void 0||A.length===0,title:i.refusal??D,onSelect:T(`Set Origin ▸ ${i.label}`,f=>xe(f.selectedObjectNames(),`bpy.ops.object.origin_set(type='${i.type}')`)),children:i.label},i.type))}),c.jsx(ae,{label:"Clear","data-testid":"blender-object-clear",children:_r.map(i=>c.jsx(K,{"data-testid":`blender-clear-${i.label.toLowerCase()}`,disabled:A.length===0,title:D,onSelect:T(`Clear ▸ ${i.label}`,f=>xe(f.selectedObjectNames(),i.call)),children:i.label},i.label))}),c.jsx(ae,{label:"Apply","data-testid":"blender-object-apply",children:jr.map(i=>c.jsx(K,{"data-testid":`blender-apply-${i.label.toLowerCase().replace(/ /g,"-")}`,disabled:A.length===0,title:D,onSelect:T(`Apply ▸ ${i.label}`,f=>xe(f.selectedObjectNames(),`bpy.ops.object.transform_apply(${i.call})`)),children:i.label},i.label))}),c.jsx(ie,{}),c.jsx(K,{"data-testid":"blender-object-duplicate",disabled:A.length===0,title:D,onSelect:T("Duplicate Objects",async i=>{const f=i.selectedObjectNames().map(C=>i.rowIdForObject(C)).filter(C=>C!==null);return i.structure.duplicateMany?.(f)}),children:"Duplicate Objects"}),c.jsx(K,{"data-testid":"blender-object-delete",disabled:A.length===0,title:D,onSelect:T("Delete",i=>{const f=i.selectedObjectNames().map(C=>i.rowIdForObject(C)).filter(C=>C!==null);return i.structure.removeMany?.(f)}),children:"Delete"})]})]})}function je(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 tt({documentId:e,path:t,error:o,preview:s,retry:O,returnToPreview:b,preparingView:m=!1,note:h=null}){const w=o?"Could not open model":m?"Preparing model view":"Opening model",j=u.useMemo(()=>{const P={id:`opening:${e}`,label:w,secondaryLabel:t,role:"boundary",kind:"object",parentId:null,childIds:[]};return{capabilities:{transform:!1,inspectorFields:!1,persist:!1},hierarchy:{roots:()=>[P],node:T=>T===P.id?P:null},subscribe:()=>()=>{}}},[e,t,w]);return c.jsxs("div",{"data-testid":"blender-model-opening","aria-busy":!o,style:{position:"absolute",inset:0,overflow:"auto",background:G.surface.panel,color:G.content.primary},children:[!m&&c.jsx(xt,{documentId:e,type:"Model",title:t,status:o?je(o):w,selection:()=>({adapter:j,nodeId:null})},w),s&&c.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"}}),c.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:J[8],gap:J[4]},children:[s&&c.jsxs("div",{style:{padding:`${J[2]} ${J[4]}`,background:G.surface.chrome,border:`1px solid ${G.boundary.default}`,borderRadius:G.shape.small,maxWidth:"100%",overflowWrap:"anywhere"},children:["Previous model: ",s.path," · Preview only"]}),c.jsx(kt,{tone:o?"error":"loading",style:{width:"min(100%, 32rem)",background:G.surface.chrome,border:`1px solid ${G.boundary.default}`,borderRadius:G.shape.small,overflowWrap:"anywhere"},title:c.jsx("span",{style:{fontSize:Ce.lg},children:w}),description:c.jsxs(c.Fragment,{children:[c.jsx("div",{style:{color:G.content.primary,marginBottom:J[3]},children:t}),o?je(o):m?"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&&h&&c.jsx("div",{"data-testid":"blender-model-opening-note",style:{marginTop:J[3],color:G.content.muted,userSelect:"text"},children:h}),o&&c.jsx("div",{"data-testid":"blender-model-opening-detail",style:{marginTop:J[3],fontFamily:Et,fontSize:Ce.sm,color:G.content.muted,whiteSpace:"pre-wrap",userSelect:"text",textAlign:"left"},children:o})]}),action:o?c.jsxs("div",{style:{display:"flex",flexWrap:"wrap",justifyContent:"center",gap:J[3]},children:[s&&c.jsx(Be,{onClick:b,children:"Return to previous model"}),c.jsx(Be,{variant:"secondary",onClick:O,children:"Retry opening"})]}):c.jsx("progress",{"aria-label":`Opening ${t}`,style:{width:"min(100%, 18rem)",accentColor:G.accent.default}})})]})]})}let te=null;const Fe=new Set;let ke=!1;function ht(){ke||(ke=!0,queueMicrotask(()=>{ke=!1;for(const e of[...Fe])e()}))}function rt(e){te?.project===e.project&&te.capturedAt>e.capturedAt||te!==e&&(te=e,ht())}function kr(){te&&(te=null,ht())}function Er(e){return te?.project===e?te:null}function Cr(e){return Fe.add(e),()=>{Fe.delete(e)}}const nt="blender-model-open",Or=3e4,ot=new WeakMap;let Ar=0;function Rr(e){let t=ot.get(e);return t===void 0&&(t=++Ar,ot.set(e,t)),t}const at=new WeakSet,qr="workspace.document",Hr="Blender Model",Ur=({documentId:e,notify:t})=>c.jsx(mt,{documentId:e,notify:t}),Mr="model",Kr="owned",Jr=[],X=er,Pr={wireframe:"WIREFRAME",solid:"SOLID",preview:"MATERIAL",rendered:"RENDERED"},lt=new WeakMap;function Fr(e){let t=lt.get(e);return t||(t={subject:()=>{const o=fe.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,O,b)=>{const{location:m,rotation:h}=e.blenderPose(s,O);return _e(`from mathutils import Matrix, Quaternion, Vector
10
+ import bpy
11
+ object = bpy.data.objects[${JSON.stringify(o)}]
12
+ object.matrix_world = Matrix.LocRotScale(Vector((${m.join(", ")})), Quaternion((${h.join(", ")})), object.matrix_world.to_scale())`,b,"Lock Camera to View").then(w=>{w.error!==null&&W().console.error(`Blender refused the camera's pose: ${w.error}`,"blender-camera")},w=>W().console.error(`The camera's pose was not written to Blender: ${String(w)}`,"blender-camera"))},view:(o,s,O,b)=>e.cameraView(o,s,O,b)}},lt.set(e,t),t)}function Xr(e){const{active:t,document:o,documentId:s,notify:O,publishContext:b}=e,m=o?.source?.path,h=o?.id,w=JSON.stringify([s,h,m]),[j,P]=u.useState(null),[T,A]=u.useState(null),[B,D]=u.useState(0),V=W().projectLocalState.projectRootPath(),L=u.useSyncExternalStore(Cr,()=>Er(V),()=>null),q=u.useSyncExternalStore(it,he,he),z=u.useRef(null),i=u.useRef({notify:O,publishContext:b});return i.current={notify:O,publishContext:b},u.useEffect(()=>W().session.onEnded(kr),[]),u.useEffect(()=>{if(t===!1||!s||!h||!V||j?.key!==w||j.error)return;const f=ge(s);if(!f)return;let C=!1,R;const $=async()=>{try{const H=X.snapshot(),M=re(s);if(!M||f.root!==X.root||!He(s,h,m,H))return;const N=await f.requestPresentedFrame();if(C||X.snapshot()!==H||ge(s)!==f||f.root!==X.root||re(s)!==M||!He(s,h,m,H))return;if(N&&N.width>0&&N.height>0){const I=window.document.createElement("canvas");I.width=Math.min(N.width,1024),I.height=Math.max(1,Math.round(I.width*N.height/N.width));const _=I.getContext("2d");_&&(_.drawImage(N,0,0,I.width,I.height),z.current={project:V,entryId:h,path:m??"Model",image:I.toDataURL("image/png"),capturedAt:performance.now()},rt(z.current))}}catch{}finally{C||(R=setTimeout(()=>{$()},1e3))}};return $(),()=>{C=!0,clearTimeout(R)}},[t,m,s,h,V,w,j,q]),u.useLayoutEffect(()=>{if(!(t===!1||!s||!h||!V||j?.key!==w||j.error))return()=>{if(!W().session.open())return;const f=z.current;f?.project===V&&f.entryId===h&&rt(f)}},[t,m,s,h,V,w,j]),u.useEffect(()=>{if(t===!1||!s)return;let f=!1,C;const R=m===void 0?null:{documentId:s,entryId:h,blend:m},$=Wt(R),H=()=>{C=i.current.publishContext?.(X)};P(null),A(null);const M=W().documents;let N=!1,I=!1,_=!1;const l=m??"the model",p=async()=>{if(!(f||N||I)){if(R&&!qt(R)){_=!0;return}N=!0,_=!1;try{if(R){if(!await Ht(R,H)){_=!0;return}}else H();f||(I=!0,At(nt),P({key:w,error:null}))}catch(n){if(f)return;I=!0,C?.(),C=void 0;const r=n instanceof Error?n.message:String(n);P({key:w,error:r}),W().console.error(r,"blender-open"),i.current.notify?.({tone:"error",title:`Blender could not open ${l}`,detail:je(r)}),Rt(nt,{message:`Blender could not open ${l}: ${r}`,guidance:`${je(r)} Dismiss this to reach the model's Retry.`,command:null})}finally{N=!1}}},g=setInterval(()=>{f||I||A(_?`Still waiting: Blender is holding another model, and opens ${l} when it is free.`:`Still opening ${l}: Blender is working (a large file, or a cold start). ${Ct("status")} shows what it is busy with.`)},Or);let v=!1;const E=()=>{f||v||(v=!0,setTimeout(()=>{v=!1,p()},0))},F=M.subscribe(E);return E(),()=>{f=!0,clearInterval(g),F(),C?.(),$()}},[t,m,s,h,w,B]),t===!1||!s?null:j?.key!==w||j.error?c.jsx(tt,{documentId:s,path:m??"Model",error:j?.key===w?j.error:null,preview:L,note:T,retry:()=>{P(null),D(f=>f+1)},returnToPreview:()=>{L&&W().workspace.open({kind:"document",id:L.entryId}).then(f=>{if(!f)throw new Error("The previous model is no longer available in this project.")}).catch(f=>i.current.notify?.({tone:"error",title:"Could not return to the previous model",detail:String(f)}))}}):c.jsxs(c.Fragment,{children:[c.jsx($r,{...e}),!re(s)&&c.jsx(tt,{documentId:s,path:m??"Model",error:null,preparingView:!0,preview:L,retry:()=>{},returnToPreview:()=>{}})]})}function $r(e){const{documentId:t}=e,o=e.document?.source?.path;u.useEffect(()=>t?tr(t,o):void 0,[t,o]),u.useEffect(()=>{if(!t)return;let _=!1,l=0,p=null;const g=[t,`${t}#area-2`,`${t}#play`],v=()=>{for(const a of g)ge(a)?.setDisplayTransform(p?.transform??null)},E=async()=>{const a=++l,d=await Ut();if(!d)return;const[y,x]=await Promise.all([Ue(`${d.scene}.view_settings`),Ue(`${d.scene}.display_settings`)]);if(_||a!==l||y?.kind!=="struct"||y.type!=="ColorManagedViewSettings")return;if(x?.kind==="struct"){const U=x.groups.flatMap(ve=>ve.rows).find(ve=>ve.identifier==="display_device")?.value;if(typeof U=="string"&&U!=="sRGB")throw new Error(`Blender display device ${U} has no browser display processor yet`)}const S=y.groups.flatMap(U=>U.rows),k=S.find(U=>U.identifier==="view_transform")?.value,Y=S.find(U=>U.identifier==="exposure")?.value,oe=S.find(U=>U.identifier==="look")?.value,Te=S.find(U=>U.identifier==="gamma")?.value,gt=typeof Y=="number"?2**Y:1,Le={transform:typeof k=="string"?k:"AgX",look:typeof oe=="string"?oe:"None",exposure:gt,gamma:typeof Te=="number"?Te:1},Ne=JSON.stringify(Le);if(p?.key===Ne)return;const De=await Kt(Le);if(_||a!==l){De.dispose();return}const yt=p;p={key:Ne,transform:De},v(),yt?.transform.dispose();for(const U of g)we(U,{modes:{rendered:{lighting:{tone:{mapper:"none",exposure:1}}},preview:{lighting:{tone:{mapper:"none",exposure:1}}}}})},F=()=>{E().catch(a=>W().console.error(String(a),"blender-colour"))},n=zt(F),r=ct(v);return F(),()=>{_=!0,n(),r();const a=p;p=null,v(),a?.transform.dispose()}},[t]);const s=u.useSyncExternalStore(ft,()=>t?$e(t):!1,()=>!1),[O,b]=u.useState(null);u.useEffect(()=>{if(!s||!t)return;const _=`${t}#area-2`;Ot(_).drawMode===void 0&&we(_,{drawMode:"rendered"});const l=X.follow();return b(l),()=>{b(null),l.dispose()}},[s,t]);const m=u.useSyncExternalStore(Se,()=>t?Q("model")?.playing(t)??!1:!1,()=>!1),[h,w]=u.useState(null),j=u.useSyncExternalStore(Se,()=>t?Q("model")?.aspectRatio?.(t)??null:null,()=>null),[P,T]=u.useState(!1),A=u.useSyncExternalStore(Se,()=>t?Q("model")?.transport?.generation(t)??0:0,()=>0),[B,D]=u.useState(A),[V,L]=u.useState(null),q=u.useRef(!1),z=u.useRef(!1);u.useLayoutEffect(()=>{if(A!==B){if(m&&t){if(q.current=!0,!z.current){let _=null;try{_=re(`${t}#play`)?.capture?.()??null}catch{}L(_)}z.current=!0}D(A)}},[A,B,m,t]);const i=Q("model")?.transport,f=u.useCallback(_=>i?.subscribeClock(_)??(()=>{}),[i]),C=u.useSyncExternalStore(f,()=>t&&i?i.clock(t).failure??null:null,()=>null);u.useEffect(()=>{C!==null&&(z.current=!1,L(null))},[C]);const R=u.useRef([]);u.useEffect(()=>{if(!m||!t){q.current=!1;return}const _=`${t}#play`;we(_,{drawMode:"rendered"});const l=X.detach(),p=q.current;return q.current=!1,p||T(!1),w(l),p||(X.setPlaying(!0),Ie(t)),()=>{if(q.current&&Q("model")?.playing(t)){R.current.push(l);return}l.dispose();for(const g of R.current.splice(0))g.dispose();z.current=!1,w(null),L(null),X.setPlaying(!1),Ie(t)}},[m,t,B]),u.useEffect(()=>{for(const _ of R.current.filter(l=>l!==h))_.dispose();R.current=R.current.filter(_=>_===h)},[h]),u.useEffect(()=>()=>{for(const _ of R.current.splice(0))_.dispose()},[]),u.useEffect(()=>{if(t)return()=>Q("model")?.setPlaying(t,!1)},[t]);const $=m?h:null,H=j===null?{position:"absolute",inset:0}:{position:"absolute",left:"50%",top:"50%",transform:"translate(-50%, -50%)",width:`min(100cqw, calc(100cqh * ${j}))`,height:`min(100cqh, calc(100cqw / ${j}))`};if(u.useEffect(()=>{if(!$||!t)return;const _=re(t);if(!_)return;const l=_.capture,p=g=>re(`${t}#play`)?.capture?.(g)??null;return _.capture=p,()=>{_.capture===p&&(l?_.capture=l:delete _.capture)}},[$,t]),!t)return null;const M=s?O:null,N={position:"relative",flex:"1 1 0",minWidth:0,margin:12},I=$!==null&&P;return c.jsxs("div",{style:$||M?{position:"absolute",inset:-12,display:"flex",gap:2}:{display:"contents"},children:[c.jsx("div",{inert:I||void 0,style:$?{position:"absolute",inset:12,zIndex:2,opacity:P?0:1,pointerEvents:P?"none":"auto",transition:"opacity 160ms ease-out"}:M?N:{display:"contents"},children:c.jsx(Ee,{...e,view:X,main:!0})},"model"),$&&c.jsx("div",{style:{position:"absolute",inset:12,containerType:"size"},"data-testid":"blender-play-area",children:c.jsx("div",{"data-volter-play-frame":!0,style:H,children:c.jsx(Ee,{...e,documentId:`${t}#play`,view:$.view,main:!1,playing:!0,onPlayReady:()=>{z.current=!1,T(!0),L(null)},onPlayReturn:()=>T(!1)})})},`play-${Rr($)}`),$&&C!==null&&c.jsxs("div",{role:"alert","data-testid":"blender-play-failure",style:{position:"absolute",left:24,right:24,top:24,zIndex:4,padding:`${J[2]} ${J[3]}`,background:G.surface.chrome,border:`1px solid ${G.semantic.danger}`,borderRadius:G.shape.small,color:G.content.primary,fontSize:Ce.sm,whiteSpace:"pre-wrap",overflowWrap:"anywhere",userSelect:"text"},children:[c.jsx("strong",{style:{color:G.semantic.danger},children:"Play is not running."})," ",C," Restart (or save the script) to try again, or Stop."]},"play-failure"),$&&V!==null&&c.jsx("div",{style:{position:"absolute",inset:12,containerType:"size",zIndex:3,pointerEvents:"none"},"data-testid":"blender-play-restart-still",children:c.jsx("img",{alt:"",src:V,style:{...H,display:"block",objectFit:"fill"}})},"restart-still"),M&&c.jsxs("div",{style:{...N,visibility:$?"hidden":void 0},"aria-hidden":$?!0:void 0,"data-testid":"blender-second-area",children:[c.jsx(Ee,{...e,documentId:`${t}#area-2`,view:M.view,main:!1}),!$&&c.jsx(Tr,{documentId:t,areaId:`${t}#area-2`,notify:e.notify})]},"second")]})}function Tr({documentId:e,areaId:t,notify:o}){u.useSyncExternalStore(it,he,he);const s=u.useSyncExternalStore(Pt,()=>Ft(e)),O=re(t)?.HeaderControls,b=u.useRef(null);return u.useEffect(()=>{const m=b.current,h=m?.parentElement;if(!h)return;const w=()=>Ge(e,{headerWidth:h.getBoundingClientRect().width+12,shelf:m});w();const j=new ResizeObserver(w);return j.observe(h),()=>{j.disconnect(),Ge(e,null)}},[e]),c.jsxs(c.Fragment,{children:[c.jsx("div",{ref:b,className:"volter-dock-document-shelf",role:"toolbar","aria-orientation":"vertical","aria-label":"Document tools"}),s&&$t.createPortal(c.jsxs("div",{className:"volter-dock-document-toolbar-own","data-testid":`document-header:${t}`,style:{display:"flex",alignItems:"center"},children:[c.jsx(mt,{documentId:e,notify:o}),O&&c.jsx(u.Suspense,{fallback:null,children:c.jsx(O,{documentId:t})})]}),s)]})}function Ee({active:e,document:t,documentId:o,notify:s,surfaces:O,view:b,main:m,playing:h=!1,onPlayReady:w,onPlayReturn:j}){const P=Fr(b),T=u.useCallback(()=>({root:b.root,prepareDraw:(l,p)=>b.prepareDraw(l,p),...h?{}:{onChange(l){const p=b.onChange(l),g=fe.subscribe(l);return()=>{p(),g()}}},dispose(){}}),[b,h]),A=t?.source?.path,B=u.useCallback(l=>{const p=b.onChange(l),g=fe.subscribe(l);let v=null;const E=()=>{v?.(),v=ee().find(n=>n.documentId===o)?.onFrame(l)??null};E();const F=ce(E);return()=>{p(),g(),F(),v?.()}},[o,b]),D=u.useSyncExternalStore(B,P.subject),V=u.useMemo(()=>m?gr:pt(()=>b),[m,b]);u.useEffect(()=>{if(m||h||!o)return;let l=!1;const p=()=>{if(l)return;const E=ge(o);E===null||b.cameraViewCamera()===null||(l=E.toggleCameraView())};p();const g=ct(p),v=b.subscribeFrames(p);return()=>{g(),v()}},[m,h,o,b]);const L=u.useRef(s),q=u.useRef(null),[z,i]=u.useState(!1);L.current=s;const f=u.useRef(w);f.current=w;const C=u.useRef(j);C.current=j,u.useEffect(()=>{if(!h||!o)return;if(A===void 0){L.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$/,""),p=window.document.createElement("div");Object.assign(p.style,{position:"absolute",inset:"0",pointerEvents:"none"}),p.dataset.testid="model-play-roots",q.current?.appendChild(p),i(!1);let g=!1,v=!1,E=null,F=null;const n=()=>{if(E||v||g)return;const S=ee().find(k=>k.documentId===o);!S||!b.root.parent||(v=!0,F=S.rig().orbit,F.enabled=!1,b.prepareRendered(S.rig().drawCamera(),"render").then(()=>{g||(E=Q("model")?.run({documentId:l,container:p,ready:()=>{g||(i(!0),f.current?.())},returning:()=>{g||C.current?.()},sourcePath:A,root:b.root,camera:()=>S.rig().drawCamera(),editingCamera:()=>ee().find(k=>k.documentId===l)?.rig().drawCamera()??S.rig().drawCamera(),onFrame:k=>S.onFrame(k),ownMaterial:k=>rr(k),report:(k,Y)=>{W().console.error(`${k}: ${Y}`,"blender-play"),L.current?.({tone:"error",title:k,detail:Y})}})??null)},k=>{if(g)return;const Y=`The game's stage could not be prepared for a rendered draw: ${k instanceof Error?k.message:String(k)}`;W().console.error(Y,"model-play");const oe=Q("model");oe?.transport?.fail?oe.transport.fail(l,A,Y):(L.current?.({tone:"error",title:"Play could not start",detail:Y}),oe?.setPlaying(l,!1))}))};n();let r,a;const d=()=>{const S=ee().find(k=>k.documentId===o);S!==r&&(a?.(),r=S,a=S?.onFrame(n),n())};d();const y=ce(d),x=S=>{if(S.key==="Escape"&&Tt(S)){const k=Q("model");k?.escape?k.escape(l):k?.setPlaying(l,!1)}};return window.addEventListener("keydown",x,!0),()=>{g=!0,y(),a?.(),window.removeEventListener("keydown",x,!0),E?.(),p.remove(),F&&(F.enabled=!0)}},[h,o,A,b]),u.useEffect(()=>!m||!o?void 0:Ve(()=>{const p=b.savedView(),g=We(o).drawMode,v=Pr[g];!p||v===void 0||p.drawMode===g||(b.noteSavedShading(v),Jt(v))}),[m,o,b]),u.useEffect(()=>{if(m||!o)return;const l=()=>{const p=Lt(o);p===null||at.has(p)||(at.add(p),p.showHelpers&&p.toggleHelpers(),p.showGizmos&&p.toggleGizmos())};return l(),Mt(l)},[m,o]),u.useEffect(()=>{if(!o)return;const l=b.overlayGroups(),p=()=>{const v=ee().find(E=>E.documentId===o);if(v)for(const{kind:E,object:F}of l)v.setHelper(E,F)};p();const g=ce(p);return()=>{g();const v=ee().find(E=>E.documentId===o);for(const{kind:E}of l)v?.setHelper(E,null)}},[o,b]),u.useEffect(()=>{if(!o||!m)return;const{transport:l}=W();let p=null,g=!1,v=!1;const E=()=>{if(g||p)return;const r=l.for(o);r&&(p=fe.attachTo(r))},F=()=>{g||v||(v=!0,queueMicrotask(()=>{v=!1,E()}))};F();const n=l.subscribe(F);return()=>{g=!0,n();const r=p;p=null,r&&queueMicrotask(r)}},[o,m]),u.useEffect(()=>{if(!o)return;const l=()=>ee().find(a=>a.documentId===o);let p,g=null;const v=new nr,E=()=>l()?.rig().drawCamera()??v,F=()=>{const a=l();a!==p&&(g?.(),g=a?a.onFrame(()=>b.refreshRendered()):null,p=a);const{lighting:d,drawMode:y}=We(o),x=y==="preview",S=x?{world:d.source==="scene",lights:d.preview.sceneLights}:void 0,k=d.source==="scene"||x&&d.preview.sceneLights;b.holdRendered(k&&a?E:null,S,h?"render":"viewport"),b.setWorkbench(d.source==="studio"&&d.studioPreset===st.id)};F();const n=Ve(F),r=ce(F);return()=>{n(),r(),g?.(),b.holdRendered(null),b.setWorkbench(!1)}},[o,b,h]);const R=u.useRef(null),$=l=>!h&&l.button===2&&l.shiftKey&&l.target instanceof HTMLCanvasElement,H=l=>{if(!$(l)){R.current=null;return}l.preventDefault(),l.stopPropagation(),R.current={id:l.pointerId,x:l.clientX,y:l.clientY},l.isTrusted&&l.target.setPointerCapture(l.pointerId)},M=()=>{R.current=null},N=l=>{const p=R.current;if(p===null||l.pointerId!==p.id||l.button!==2||(R.current=null,l.preventDefault(),l.stopPropagation(),Math.hypot(l.clientX-p.x,l.clientY-p.y)>3))return;const g=b.placeCursor(l.clientX,l.clientY,l.target);if(g===null)return;const[v,E,F]=g.location,[n,r,a,d]=g.rotation;_e(`from mathutils import Matrix, Quaternion, Vector
13
+ bpy.context.scene.cursor.matrix = Matrix.LocRotScale(Vector((${v}, ${E}, ${F})), Quaternion((${n}, ${r}, ${a}, ${d})), None)`,!1,"Set 3D Cursor").then(y=>{y.error!==null&&W().console.error(`Blender refused the 3D cursor: ${y.error}`,"blender-cursor")},y=>W().console.error(`The 3D cursor was not written to Blender: ${String(y)}`,"blender-cursor"))},I=l=>{$(l)&&l.preventDefault()};if(!o)return null;const _=O.Object3DAuthoring;return c.jsx("div",{ref:q,"data-play-ready":h?z:void 0,style:h?{position:"absolute",inset:0}:{display:"contents"},onPointerDownCapture:H,onPointerUpCapture:N,onPointerCancelCapture:M,onLostPointerCaptureCapture:M,onContextMenuCapture:I,children:c.jsx(_,{active:e??!0,fillContainer:h,documentId:o,sourcePath:A??"blender:runtime",displayName:t?.label??"Model",...D===null?{}:{subject:D},gridScale:P.gridScale,cameraView:P.cameraView,build:T,audit:!1,...h?{}:{authoring:V},cameraDirection:[.8187,.4458,.3617],openingFit:3,openingView:b.savedView(),presentation:(()=>{const l=b.savedView();if(!l)return null;const p={fov:bt(l.lens)};return m&&l.drawMode?{camera:p,drawMode:l.drawMode,modes:{preview:{lighting:{source:l.sceneWorld?"scene":"preview",preview:{sceneLights:l.sceneLights}},backdrop:{source:l.sceneWorld?"scene":"fill"}}}}:{camera:p}})(),stageKind:Mr,dressing:{environment:!1,keyLight:!1,viewLocked:b.studioLights()}})})}export{Ur as Toolbar,Xr as default,Mr as documentKind,Jr as inspectorBuiltins,Kr as inspectorRail,qr as point,Hr as title};
@@ -0,0 +1 @@
1
+ import{h1 as n,iC as r}from"./volter-sdk-BwU3fa6G.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 p,aJ as Me,j as i,h_ as ze,hZ as je,h$ as ye}from"./volter-sdk-BwU3fa6G.js";import{s as oe,p as H,m as W,a as te,b as x,c as Ge,d as Pe,e as Ae,f as J,g as Be}from"./play-mode-DljPhCBr.js";import{s as We,b as ge,g as Ve,h as Ke}from"./blender-runtime-host-CMI7ldx1.js";import"./LineSegments2-D1_2s-N-.js";import"./three.module-dk_BdrjN.js";import"./content-bounds-Dg9hT5Gp.js";import"./clip-planes-CmZu3QTO.js";const Je={transform:{startFrame:-5,pixelsPerFrame:8},refusal:null,size:{w:0,h:0},framedAt:0,drawn:null,onlySelected:!0};let Y=Je,le=0;const U=new Set;let Ne=0;function N(){return Y}function D(){return le}function de(e){return U.add(e),()=>{U.delete(e)}}function $(e){Y={...Y,...e},le+=1;for(const t of[...U])t()}function Ye(e){Y.onlySelected!==e&&$({onlySelected:e})}function $e(){Ne+=1,le+=1;for(const e of[...U])e()}function Ue(){return Ne}function ce(e){$({refusal:e})}const qe=20,P=23,q=26,Xe=16,Ze=2,Qe=P+Ze,xe=35,et=6;function Ie(e){const t=[2,3,5],n=[];for(let r=0;r<t.length;r++){const a=t[r],s=Math.trunc(e/a),c=s*a===e;if(c&&s===2)return a;n[r]=c}for(let r=0;r<t.length;r++)if(n[r])return t[r];return e}function tt(e,t,n,r){if(n===0)return 1;const a=t/n;let s=Math.max(e,1);if(a*s>r)for(;s>1;){const c=Ie(s),l=Math.trunc(s/c);if(a*l<r)break;s=l}else for(;a*s<r&&s<1<<30;)s*=2;return s}function nt(e){return e<=1?null:e/Ie(Math.round(e))}const g={back:"#303030",header:"#303030",grid:"#161616",gridMinor:"#262626",scrubBack:"#1d1d1d",scrubText:"#808080",playhead:"#4772b3",playheadText:"#ffffff",keyBorder:"#000000"},we={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"}},rt={KEYFRAME:1,EXTREME:1.2,MOVING_HOLD:.925,BREAKDOWN:.85,JITTER:.8,GENERATED:.75},be=5.06,st=2.12,it=15,E={minPillWidth:24,textPadding:4,margin:2,radius:4,tipHalfWidth:6,tipHeight:6,stalkWidth:3},ve="#212121",d={text:"#a6a6a6",rule:"#161616",widget:"#545454",widgetText:"#e6e6e6",widgetOutline:"#3d3d3d",widgetRadius:4,unit:qe,refusal:"#ffaf23",headerPadding:"0 8px",headerGap:8,statusPadding:"2px 8px"},at=.2,X={time:0,tick:0,paused:!1,speed:1},V={on:!1,available:!1,by:null};function I(){return ze("model")}function C(e,t){t==="movie"&&I()?.playing(e)&&I()?.setPlaying(e,!1),t==="game"&&x.transport?.snapshot().playbackState==="playing"&&x.transport.pause(),Ge(e,t)}function S(e){const t=e?.document;if(typeof t=="string"&&t!=="")return t;const n=te();if(n===null)throw new Error("No model document is open; open one, or name it with `document`.");return n}function A(){const e=I();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 k(e){const t=I(),n=Pe(e);return{document:e,mode:W(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)??X,speeds:t?.transport?.speeds??[],autoplay:ot(e)}}function ot(e){const t=I(),n=t?.transport?.autoplay?.(e)??V,r=t?.playing(e)??!1,a=Re(r,t?.transport?.clock(e)??X,n);return{...n,driver:r?n.on?"bot":"person":null,why:a}}function Fe(e,t,n){return n.available?null:e&&(t.running??!t.failure)?"no-bot":"not-running"}function Re(e,t,n){switch(Fe(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 re(e,t){if(!A().playing(e))throw new Error(`Nothing is playing in ${e}, so there is nothing to ${t}; \`play\` starts it.`)}je({view:"model-play",title:"Game",verbs:[{id:"state",run:e=>k(S(e))},{id:"mode",run:e=>{const t=S(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)}.`);C(t,n)}return k(t)}},{id:"game-mode",title:"Game: Switch to Game Mode",run:e=>{const t=S(e);return C(t,"game"),k(t)}},{id:"movie-mode",title:"Game: Switch to Movie Mode",run:e=>{const t=S(e);return C(t,"movie"),k(t)}},{id:"play",title:"Game: Play",run:e=>{const t=S(e),n=A();return W(t)!=="game"&&C(t,"game"),n.playing(t)||n.setPlaying(t,!0),k(t)}},{id:"stop",title:"Game: Stop",run:e=>{const t=S(e);return A().setPlaying(t,!1),k(t)}},{id:"pause",title:"Game: Pause",run:e=>{const t=S(e);return re(t,"pause"),A().transport.setPaused(t,!0),k(t)}},{id:"resume",title:"Game: Resume",run:e=>{const t=S(e);return re(t,"resume"),A().transport.setPaused(t,!1),k(t)}},{id:"step",title:"Game: Step One Tick",run:e=>{const t=S(e);re(t,"step");const{transport:n}=A();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 s=0;s<a;s++)n.step(t);return k(t)}},{id:"speed",run:e=>{const t=S(e),{transport:n}=A(),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),k(t)}},{id:"autoplay",run:e=>{const t=S(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=A(),{transport:s}=a;if(s.setAutoplay===void 0)throw new Error("The installed Play tool has no autoplay; update @volter/editor-model-play.");const c=r?Re(a.playing(t),s.clock(t),s.autoplay?.(t)??V):null;if(c!==null)throw new Error(c);return s.setAutoplay(t,r,"cli"),k(t)}},{id:"restart",title:"Game: Restart",run:e=>{const t=S(e),n=A();return W(t)!=="game"&&C(t,"game"),n.transport.restart(t),k(t)}}]});const lt=e=>e.preventDefault();function K(e){return i.jsx("svg",{width:12,height:12,viewBox:"0 0 12 12","aria-hidden":"true",children:i.jsx("path",{d:e,fill:d.widgetText})})}const L={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:s,children:c}){const l=d.unit;return i.jsx("button",{type:"button","data-testid":t,title:e,"aria-label":e,"aria-pressed":r,disabled:n,onMouseDown:lt,onClick:s,style:{minWidth:l,height:l,padding:a?"0 6px":0,border:`1px solid ${d.widgetOutline}`,background:r?g.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:c})}function Oe({title:e}){p.useSyncExternalStore(oe,H,H);const t=p.useSyncExternalStore(Me,I,()=>null),n=te();if(t===null||n===null)return i.jsx("span",{style:{color:d.text},children:e});const r=W(n),a=(s,c,l)=>i.jsx(R,{testId:`model-play-mode-${s}`,label:l,pressed:r===s,wide:!0,onClick:()=>C(n,s),children:c});return i.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 _e(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 Ee(e){return`${e}×`}function dt(){p.useSyncExternalStore(oe,H,H);const e=te(),t=p.useSyncExternalStore(Me,I,()=>null),n=t?.transport,r=e!==null&&(t?.playing(e)??!1),a=p.useCallback(m=>n?.subscribeClock(m)??(()=>{}),[n]),s=p.useSyncExternalStore(a,()=>e!==null&&n?n.clock(e):X,()=>X),c=p.useSyncExternalStore(a,()=>e!==null&&n?.autoplay?n.autoplay(e):V,()=>V),l=e===null?void 0:Pe(e),y=l===void 0?null:t?.scriptPath?.(l)??null,u=l===void 0?null:t?.hasScript?.(l)??null,b=e!==null&&t!==null,j=e===null?"No model document is open.":u===!1&&y!==null?`No play script yet — Play runs ${y}. \`cyclotron add-play\` adds an example.`:r&&s.failure?`Not running — ${s.failure.replace(/\.$/,"")}. Restart (or save the script) to retry, or Stop.`:r?`${s.paused?"Paused":"Playing"} ${y??""}`.trim():y===null?"Stopped.":`Stopped · Play runs ${y}`;return i.jsxs("div",{"data-testid":"blender-game-panel","data-playing":r||void 0,"data-paused":r&&s.paused||void 0,"data-failed":r&&!!s.failure||void 0,style:{position:"absolute",inset:0,display:"flex",flexDirection:"column",overflow:"hidden",background:g.back,color:d.text,font:"11px Inter, system-ui, sans-serif"},children:[i.jsxs("div",{style:{height:q,flex:`0 0 ${q}px`,display:"flex",alignItems:"center",gap:d.headerGap,padding:d.headerPadding,background:g.header,borderBottom:`1px solid ${d.rule}`},children:[i.jsx(Oe,{title:"Game"}),i.jsx("div",{style:{flex:1}}),i.jsxs("div",{style:{display:"flex"},role:"group","aria-label":"Game transport",children:[i.jsxs(R,{testId:"model-play-button",label:r?"Stop playing (Escape)":"Play this model’s script",pressed:r,wide:!0,disabled:!b,onClick:()=>{e!==null&&t&&t.setPlaying(e,!t.playing(e))},children:[K(r?L.stop:L.play),r?"Stop":"Play"]}),n&&i.jsxs(i.Fragment,{children:[i.jsx(R,{testId:"model-play-pause",label:s.paused?"Resume":"Pause",pressed:r&&s.paused,disabled:!r,onClick:()=>{e!==null&&n.setPaused(e,!n.clock(e).paused)},children:K(s.paused?L.play:L.pause)}),i.jsx(R,{testId:"model-play-step",label:"Step one tick (while paused)",disabled:!r||!s.paused,onClick:()=>{e!==null&&n.step(e)},children:K(L.step)}),i.jsx(R,{testId:"model-play-restart",label:"Restart on a fresh copy of the model",disabled:!r,onClick:()=>{e!==null&&n.restart(e)},children:K(L.restart)})]})]}),n&&i.jsx("div",{style:{display:"flex"},role:"group","aria-label":"Game speed",children:n.speeds.map(m=>i.jsx(R,{testId:`model-play-speed-${m}`,label:`Speed ${Ee(m)}`,pressed:s.speed===m,wide:!0,disabled:e===null,onClick:()=>{e!==null&&n.setSpeed(e,m)},children:Ee(m)},m))}),i.jsx("div",{style:{flex:1}}),i.jsxs("span",{"data-testid":"model-play-clock",style:{color:d.widgetText,fontVariantNumeric:"tabular-nums",whiteSpace:"nowrap"},children:[_e(s.time)," · tick ",s.tick]})]}),i.jsxs("div",{style:{flex:1,minHeight:0,display:"flex",alignItems:"stretch",gap:d.headerGap,padding:d.statusPadding,overflow:"hidden"},children:[i.jsxs("div",{style:{flex:"0 1 260px",minWidth:0,display:"flex",flexDirection:"column",gap:6},children:[i.jsx("span",{"data-testid":"model-play-status",title:j,style:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:j}),n?.autoplay&&e!==null&&i.jsx(ct,{documentId:e,playing:r,clock:s,autoplay:c,transport:n})]}),t?.log&&e!==null&&i.jsx(ut,{documentId:e,log:t.log})]})]})}function ct({documentId:e,playing:t,clock:n,autoplay:r,transport:a}){const s=Fe(t,n,r),c=r.armed===!0,l=!t&&a.armAutoplay!==void 0,y=s==="no-bot"?"This game provides no bot: its play script registers none with play.autoplay(controller)":s==="not-running"?l?c?"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)",u=s==="no-bot"?"No autoplay — this game doesn’t provide a bot":s==="not-running"?c?"Armed — turns on once the game is running":"Available once the game is running":null;return i.jsxs("div",{style:{display:"flex",alignItems:"center",gap:d.headerGap,minWidth:0},children:[i.jsx("span",{title:y,style:{display:"inline-flex"},children:i.jsx(R,{testId:"model-play-autoplay",label:y,pressed:r.on||c,wide:!0,disabled:l?!1:!t||!r.available||a.setAutoplay===void 0,onClick:()=>{const b=a.autoplay?.(e)??V;I()?.playing(e)??!1?a.setAutoplay?.(e,!b.on,"panel"):a.armAutoplay?.(e,!b.armed)},children:"Autoplay"})}),u!==null?i.jsx("span",{"data-testid":"model-play-autoplay-note","data-reason":s??void 0,style:{color:d.widgetText,minWidth:0},children:u}):t&&i.jsx("span",{"data-testid":"model-play-driver","data-driver":r.on?"bot":"person",style:{color:r.on?g.playhead:d.widgetText,whiteSpace:"nowrap"},children:r.on?"Bot driving":"You’re driving"})]})}const se=200;function Se(e){if(e===void 0)return"";try{return JSON.stringify(e)}catch{return""}}function ut({documentId:e,log:t}){const[n,r]=p.useState(""),[,a]=p.useReducer(u=>u+1,0);p.useEffect(()=>{let u=0;const b=t.subscribe(()=>{u===0&&(u=requestAnimationFrame(()=>{u=0,a()}))});return()=>{b(),cancelAnimationFrame(u)}},[t]);const s=t.tail(e,se,n===""?void 0:n),c=p.useRef(null),l=p.useRef(!0);p.useLayoutEffect(()=>{const u=c.current;u&&l.current&&(u.scrollTop=u.scrollHeight)});const y=s.entries.at(-1)?.seq;return i.jsxs("div",{"data-testid":"model-play-log",style:{flex:1,minWidth:0,display:"flex",flexDirection:"column",gap:4},children:[i.jsxs("div",{style:{display:"flex",alignItems:"center",gap:d.headerGap},children:[i.jsx("span",{children:"Play log"}),i.jsxs("select",{"data-testid":"model-play-log-kind","aria-label":"Show entries of kind",value:n,onChange:u=>{r(u.target.value),u.target.blur()},style:{height:d.unit,background:d.widget,color:d.widgetText,border:`1px solid ${d.widgetOutline}`,font:"inherit"},children:[i.jsx("option",{value:"",children:"All kinds"}),[...new Set([...s.kinds,...n===""?[]:[n]])].map(u=>i.jsx("option",{value:u,children:u},u))]}),i.jsx("span",{style:{color:d.widgetText},children:s.total===0?"Nothing logged yet":`${s.total} written${s.total>se?` · newest ${se} shown`:""}`})]}),i.jsx("div",{ref:c,"data-testid":"model-play-log-entries","data-newest":y,onScroll:u=>{const b=u.currentTarget;l.current=b.scrollTop+b.clientHeight>=b.scrollHeight-4},style:{flex:1,minHeight:0,overflowY:"auto",font:"12px/1.45 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace",background:g.header,border:`1px solid ${d.rule}`,padding:"2px 6px"},children:s.entries.map(u=>i.jsxs("div",{"data-kind":u.kind,style:{display:"flex",gap:10,whiteSpace:"nowrap",color:u.source==="play"?d.widgetText:d.text},children:[i.jsx("span",{style:{flex:"0 0 auto",fontVariantNumeric:"tabular-nums"},children:_e(u.simT)}),i.jsx("span",{style:{flex:"0 0 auto"},children:u.kind}),i.jsx("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis"},title:Se(u.facts),children:Se(u.facts)})]},u.seq))})]})}const kt="workspace.document",pt="Timeline",Le=.25,Ce=200,ie={"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."},Z="No scene transport is attached yet; open the model document first.";function w(){return x.transport}function ae(){return w()?.snapshot().playbackState==="playing"}function Q(e){return ce(e),M()}const ke={JITTER:1,GENERATED:2,MOVING_HOLD:3,BREAKDOWN:4,KEYFRAME:5,EXTREME:6};function He(e,t){const n=[],r=new Map;for(const a of e)if(!(t&&!a.selected)){n.push(a.object);for(const s of a.keyframes){const c=r.get(s.frame);if(!c){r.set(s.frame,{...s});continue}c.select=c.select||s.select,(ke[s.type]??0)>(ke[c.type]??0)&&(c.type=s.type)}}return{columns:[...r.values()].sort((a,s)=>a.frame-s.frame),objects:n}}function ee(){return He(x.state().summary,N().onlySelected).columns.map(e=>e.frame)}function M(){const e=N();return{...x.state(),transform:e.transform,size:e.size,refusal:e.refusal,drawn:e.drawn}}function B(e){if(!x.playable)return Q(Z);const t=w();return t?(t.seekFrame(e),M()):Q("No stage transport is attached yet; open the model document first.")}je({view:"timeline",title:pt,verbs:[{id:"state",run:()=>M()},{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 B(t)}},{id:"play",title:"Timeline: Play",run:()=>{if(!x.playable)throw new Error(Z);const e=w();if(!e)throw new Error("No stage transport is attached yet; open the model document first.");return e.play(),M()}},{id:"pause",title:"Timeline: Pause",run:()=>{const e=w();return e?(e.pause(),M()):Q("No stage transport is attached yet.")}},{id:"jump-start",title:"Timeline: Jump to Start",run:()=>B(x.state().start)},{id:"jump-end",title:"Timeline: Jump to End",run:()=>B(x.state().end)},{id:"next-keyframe",title:"Timeline: Next Keyframe",run:()=>{const e=x.frame(),t=ee().find(n=>n>e+1e-4);return t===void 0?M():B(t)}},{id:"prev-keyframe",title:"Timeline: Previous Keyframe",run:()=>{const e=x.frame(),t=ee().reverse().find(n=>n<e-1e-4);return t===void 0?M():B(t)}},{id:"view-all",title:"Timeline: View All",run:()=>($e(),M())},{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}=N(),a=n.startFrame+r.w/2/n.pixelsPerFrame,s=Math.min(Ce,Math.max(Le,t));return $({transform:{pixelsPerFrame:s,startFrame:a-r.w/2/s}}),M()}},{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}=N();return $({transform:{...n,startFrame:n.startFrame+t}}),M()}},...Object.keys(ie).map(e=>({id:e,run:()=>Q(ie[e])}))]});const Te="timeline";function Tt(){p.useSyncExternalStore(oe,H,H);const e=te(),t=e!==null&&W(e)==="game";return p.useEffect(()=>ye(Te,t?at:null),[t]),p.useEffect(()=>()=>ye(Te,null),[]),t?i.jsx(dt,{}):i.jsx(mt,{})}function mt(){const e=p.useSyncExternalStore(We,ge,ge);p.useSyncExternalStore(Ae,J,J),p.useSyncExternalStore(de,D,D);const t=p.useRef(null),n=p.useRef(-1),{transform:r,size:a,refusal:s,onlySelected:c}=N(),l=x.state();p.useEffect(()=>{let o=!0;return x.bind(Be,{rig:()=>Ke(),clip:()=>Ve()}).catch(f=>{o&&ce(`The Timeline could not read this file's rig: ${f instanceof Error?f.message:String(f)}`)}),()=>{o=!1}},[e]),p.useEffect(()=>{const o=t.current;if(!o)return;const f=new ResizeObserver(()=>{const h={w:o.clientWidth,h:o.clientHeight},v=N().size;(v.w!==h.w||v.h!==h.h)&&$({size:h})});return f.observe(o),$({size:{w:o.clientWidth,h:o.clientHeight}}),()=>f.disconnect()},[]);const y=Ue();p.useEffect(()=>{if(y===n.current)return;n.current=y;const{w:o}=N().size;if(o===0)return;const f=Math.max(1,l.end-l.start),h=Math.min(Ce,Math.max(Le,o*.9/f));$({transform:{pixelsPerFrame:h,startFrame:l.start-o*.05/h},framedAt:Date.now()})},[y,l.start,l.end]);const u=p.useCallback(o=>(o-r.startFrame)*r.pixelsPerFrame,[r]),b=p.useCallback(o=>r.startFrame+o/r.pixelsPerFrame,[r]),j=p.useMemo(()=>He(l.summary,c),[l.summary,c]),m=p.useMemo(()=>{if(a.w===0)return null;const o=a.w/r.pixelsPerFrame,f=Math.max(`${Math.round(r.startFrame)}`.length,`${Math.round(r.startFrame+o)}`.length),h=Math.max(xe,f*6+et),v=tt(Math.round(l.fps),a.w+1,o,h),T=nt(v),De=Math.ceil(r.startFrame/v)*v,fe=[];for(let z=De;z<=r.startFrame+o;z+=v)fe.push(z);const he=[];if(T!==null&&T*r.pixelsPerFrame>=xe/5){const z=Math.ceil(r.startFrame/T)*T;for(let G=z;G<=r.startFrame+o;G+=T)Math.abs(G/v-Math.round(G/v))>1e-6&&he.push(G)}return{major:v,minor:T,majors:fe,minors:he}},[a.w,r,l.fps]),O=P,F=Qe+Xe/2;p.useEffect(()=>{if(!m)return;const o=[...l.warnings];l.action||o.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."),o.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."),o.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`."),c&&j.objects.length===0&&l.summary.length>0&&o.push(`The summary row is empty because nothing animated is SELECTED, which is Blender's own answer with this filter on. ${l.summary.map(h=>h.object).join(", ")} carr${l.summary.length===1?"ies":"y"} an action; select it, or turn the filter off.`),o.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 f={drawn:{action:l.action,object:l.object,armature:l.armature,frame:l.frame,start:l.start,end:l.end,fps:l.fps,playing:ae(),keyframes:j.columns.map(h=>h.frame),onlySelected:c,summaryObjects:j.objects,majorStep:m.major,minorStep:m.minor,majorLines:m.majors.length,minorLines:m.minors.length,labels:m.majors.length,diamonds:j.columns.length,diamondRadius:be,diamondSprite:it,bones:l.bones,tracks:l.tracks,engineCalls:l.engineCalls,warnings:o}};JSON.stringify(f.drawn)!==JSON.stringify(N().drawn)&&$(f)},[m,l,j,c]);const ne=p.useRef(!1),ue=p.useCallback(o=>{const f=t.current;if(!f)return;const h=f.getBoundingClientRect();w()?.seekFrame(Math.round(b(o-h.left)))},[b]),pe=`${Math.round(l.frame)}`,me=Math.max(E.minPillWidth,pe.length*6+2*E.textPadding),_=u(l.frame);return i.jsxs("div",{"data-testid":"blender-timeline",style:{position:"absolute",inset:0,display:"flex",flexDirection:"column",overflow:"hidden",background:g.back,color:d.text,font:"11px Inter, system-ui, sans-serif"},children:[i.jsx(ht,{}),i.jsx("div",{ref:t,style:{flex:1,minHeight:0,position:"relative"},children:i.jsxs("svg",{width:a.w,height:a.h,style:{display:"block",cursor:"ew-resize"},"aria-label":"Timeline",onPointerDown:o=>{ne.current=!0,o.currentTarget.setPointerCapture(o.pointerId),ue(o.clientX)},onPointerMove:o=>{ne.current&&ue(o.clientX)},onPointerUp:o=>{ne.current=!1,o.currentTarget.releasePointerCapture(o.pointerId)},children:[i.jsx("title",{children:"Timeline"}),i.jsx("rect",{x:0,y:0,width:a.w,height:a.h,fill:g.back}),i.jsx("rect",{x:0,y:O,width:Math.max(0,u(l.start)),height:Math.max(0,a.h-O),fill:ve}),i.jsx("rect",{x:u(l.end),y:O,width:Math.max(0,a.w-u(l.end)),height:Math.max(0,a.h-O),fill:ve}),m?.minors.map(o=>i.jsx("line",{x1:u(o),y1:O,x2:u(o),y2:a.h,stroke:g.gridMinor,strokeWidth:1},`n${o}`)),m?.majors.map(o=>i.jsx("line",{x1:u(o),y1:O,x2:u(o),y2:a.h,stroke:g.grid,strokeWidth:1},`m${o}`)),i.jsx("rect",{x:0,y:0,width:a.w,height:P,fill:g.scrubBack}),m?.majors.map(o=>i.jsx("text",{x:u(o),y:15.5,textAnchor:"middle",fill:g.scrubText,fontSize:11,children:Math.round(o)},`t${o}`)),i.jsx("path",{d:`M3,${F-3.5} L6.5,${F} L3,${F+3.5} Z`,fill:g.scrubText}),j.columns.map(o=>{const f=rt[o.type]??1,h=be*f,v=we[o.type]??we.KEYFRAME,T=u(o.frame);return i.jsx("polygon",{points:`${T},${F-h} ${T+h},${F} ${T},${F+h} ${T-h},${F}`,fill:o.select?v.selected:v.fill,stroke:g.keyBorder,strokeWidth:st*f},`k${o.frame}`)}),i.jsx("rect",{x:_-E.stalkWidth/2,y:P,width:E.stalkWidth,height:Math.max(0,a.h-P),fill:g.playhead}),i.jsx("rect",{x:_-me/2,y:E.margin,width:me,height:P-2*E.margin,rx:E.radius,fill:g.playhead}),i.jsx("polygon",{points:`${_-E.tipHalfWidth},${P-E.margin} ${_+E.tipHalfWidth},${P-E.margin} ${_},${P-E.margin+E.tipHeight}`,fill:g.playhead}),i.jsx("text",{x:_,y:15.5,textAnchor:"middle",fill:g.playheadText,fontSize:11,children:pe})]})}),s?i.jsx("div",{style:{borderTop:`1px solid ${d.rule}`,padding:d.statusPadding,color:d.refusal},children:s}):null]})}function ft(){p.useSyncExternalStore(de,D,D);const{onlySelected:e}=N(),[t,n]=p.useState(!1),r=(a,s,c)=>i.jsxs("button",{type:"button",onClick:()=>{c(),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:[i.jsx("span",{style:{width:12,display:"inline-block"},children:s===null?"":s?"✓":""}),a]});return i.jsxs("span",{style:{position:"relative"},children:[i.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?i.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,()=>Ye(!e)),r("Frame All",null,()=>$e())]}):null]})}function ht(){p.useSyncExternalStore(Ae,J,J),p.useSyncExternalStore(de,D,D);const e=x.state(),t=d.unit,n=x.playable,r=(s,c,l,y)=>i.jsx("button",{type:"button",title:n?y:`${y} — ${Z}`,"aria-label":y,disabled:!n,onClick:l,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:c},s),a=s=>i.jsx("svg",{width:12,height:12,viewBox:"0 0 12 12","aria-hidden":"true",children:i.jsx("path",{d:s,fill:d.widgetText})});return i.jsxs("div",{style:{height:q,flex:`0 0 ${q}px`,display:"flex",alignItems:"center",gap:d.headerGap,padding:d.headerPadding,background:g.header,borderBottom:`1px solid ${d.rule}`},children:[i.jsx(Oe,{title:"Timeline"}),i.jsx(ft,{}),i.jsx("div",{style:{flex:1}}),i.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 s=ee().reverse().find(c=>c<x.frame()-1e-4);s!==void 0&&w()?.seekFrame(s)},"Jump to Previous Keyframe"),n&&ae()?r("pause-rev",a("M3 2h2v8H3zM7 2h2v8H7z"),()=>w()?.pause(),"Pause"):r("play-reverse",a("M9 2L2 6l7 4z"),()=>w()?.play("reverse"),"Play Reverse"),n&&ae()?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 s=ee().find(c=>c>x.frame()+1e-4);s!==void 0&&w()?.seekFrame(s)},"Jump to Next Keyframe"),r("jump-end",a("M10 2H8.5v8H10zM2 2v8L7.5 6z"),()=>w()?.seekFrame(e.end),"Jump to End")]}),i.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")]}),i.jsx("div",{style:{flex:1}}),i.jsx("input",{type:"number",value:Math.round(e.frame),onChange:s=>{const c=Number(s.target.value);Number.isFinite(c)&&w()?.seekFrame(c)},"aria-label":"Current frame",disabled:!n,title:n?void 0:Z,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}}),i.jsxs("span",{onClick:()=>ce(ie["set-range"]),onKeyDown:()=>{},style:{color:d.text,cursor:"not-allowed"},children:["Start ",e.start," · End ",e.end]})]})}export{Tt as default,kt as point,pt as title};
@@ -0,0 +1 @@
1
+ import{n as c,j as u,hZ as le}from"./volter-sdk-BwU3fa6G.js";import{s as ue,b as X,j as de}from"./blender-runtime-host-CMI7ldx1.js";import"./content-bounds-Dg9hT5Gp.js";import"./three.module-dk_BdrjN.js";import"./clip-planes-CmZu3QTO.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 Ee(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 E={text:"#e6e6e6",refusal:"#ed5700",rule:"#232323",statusPadding:"3px 8px",statusGap:12},Te="workspace.document",_e="UV Editor",D=8e3,re=16,oe=8192,_={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:_e,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(_.move("the active UV map"))},{id:"select",run:()=>R(_.select)},{id:"pin",run:()=>R(_.pin)},{id:"unwrap",run:()=>R(_.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,Z=0;for(let A=0;A<I;A++){const G=ce+A,q=e[G*2],Y=e[G*2+1];H+=q,Z+=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(Z/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:E.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(_.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:Ee(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 ${E.rule}`,padding:E.statusPadding,display:"flex",gap:E.statusGap,alignItems:"center"},children:[u.jsx("span",{children:ae}),C?u.jsx("span",{style:{color:E.refusal},children:C}):null]})]})}export{je as default,Te as point,_e as title};
@@ -0,0 +1 @@
1
+ import{h1 as s,n as r,j as n}from"./volter-sdk-BwU3fa6G.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 @@
1
+ import{K as l}from"./blender-runtime-host-CMI7ldx1.js";import"./content-bounds-Dg9hT5Gp.js";import"./three.module-dk_BdrjN.js";import"./volter-sdk-BwU3fa6G.js";import"./clip-planes-CmZu3QTO.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-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-BwU3fa6G.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};
@@ -0,0 +1 @@
1
+ import{g as q}from"./asset-preview-jtcCFntF.js";import{V,bi as L,a1 as X,M as F}from"./three.module-dk_BdrjN.js";function ae(t,e){return e.skinnedMeshes>0?"skinned":e.uniqueBones>0?"rigged":t.clips>0?"animated":"static"}const Y=["map","alphaMap","aoMap","bumpMap","displacementMap","emissiveMap","envMap","lightMap","metalnessMap","normalMap","roughnessMap","specularMap"];function Z(t){if(!("color"in t))return null;const e=t.color;return e?.isColor===!0?`#${e.getHexString()}`:null}function E(t){let e=0;for(const n of Object.values(t.attributes)){const s=n.array;for(let i=0;i<s.length;i++)Number.isFinite(Number(s[i]))||e++}return e}function O(t){if(!t)return null;const e=new X,n=new V;for(let s=0;s<t.count;s++)n.set(t.getX(s),t.getY(s),t.getZ(s)),Number.isFinite(n.x)&&Number.isFinite(n.y)&&Number.isFinite(n.z)&&e.expandByPoint(n);return e.isEmpty()?null:e}function R(t){const e=O(t.getAttribute("position"));if(!e)return null;for(const n of t.morphAttributes.position??[]){const s=O(n);s&&(t.morphTargetsRelative?(e.expandByPoint(new V().addVectors(e.min,s.min)),e.expandByPoint(new V().addVectors(e.max,s.max))):e.union(s))}return e}function J(t){return t.matrixAutoUpdate?new F().compose(t.position,t.quaternion,t.scale):t.matrix.clone()}function G(t,e,n){if(q(e,"editorHelper")||e.isSkeletonHelper)return;const s=e;if(!s.isMesh&&!s.isLine&&!s.isPoints||!s.geometry)return;const i=R(s.geometry);if(!i)return;const r=e;if(!r.isInstancedMesh){t.union(i.clone().applyMatrix4(n));return}const l=new F;for(let a=0;a<r.count;a++)r.getMatrixAt(a,l),t.union(i.clone().applyMatrix4(new F().multiplyMatrices(n,l)))}function K(t){const e=new X,n=[];for(let r=t.parent;r;r=r.parent)n.push(r);const s=new F;for(let r=n.length-1;r>=0;r--)s.multiply(J(n[r]));const i=(r,l)=>{const a=new F().multiplyMatrices(l,J(r));G(e,r,a);for(const p of r.children)i(p,a)};return i(t,s),e.isEmpty()?null:e}function le(t){const e=new Set,n=new Set,s=new Map,i=new Map,r=new Map,l=new Set,a=[],p=[];let M=0,v=0,x=0,g=0,T=0,A=0,C=0,N=0,f=0,d=0,b=0,z=0,P=0,D=0,U=0;t.traverse(o=>{if(q(o,"editorHelper")||o.isSkeletonHelper)return;M++;let c=0;for(let u=o.parent;u&&u!==t.parent;u=u.parent)c++;p.push({id:o.uuid,name:o.name||o.type,type:o.type,depth:c}),o.isBone&&A++,o.isLOD&&(D++,U+=o.levels.length);const h=o,S=o;if(!S.isMesh&&!S.isLine&&!S.isPoints)return;v++,h.isInstancedMesh&&b++,h.isSkinnedMesh&&z++;const m=h.geometry;if(m){P+=E(m);const u=m.getAttribute("position");g+=u?.count??0,T+=m.index?Math.floor(m.index.count/3):Math.floor((u?.count??0)/3),x+=Math.max(m.groups.length,1),C+=m.morphAttributes.position?.length??0,m.index?(f++,N+=m.index.array.byteLength):d++;for(const[w,B]of Object.entries(m.attributes)){N+=B.array.byteLength;const y=r.get(w)??{itemSize:B.itemSize,meshes:0};y.meshes++,r.set(w,y),/^uv\d*$/.test(w)&&l.add(w)}}const W=Array.isArray(h.material)?h.material:h.material?[h.material]:[];for(const u of W){e.add(u);const w=i.get(u)??new Set;w.add(o),i.set(u,w);const B=s.get(u)??[];for(const y of Y){const k=u[y];if(k?.isTexture!==!0)continue;n.add(k),B.includes(y)||B.push(y);const $=k.image;a.some(H=>H.materialId===u.uuid&&H.slot===y)||a.push({materialId:u.uuid,materialName:u.name||u.type,slot:y,textureName:k.name||k.source.data?.src||"Texture",width:$?.width??null,height:$?.height??null,format:k.format,colorSpace:k.colorSpace||"none"})}s.set(u,B)}});for(const o of n){const c=o.image;N+=(c?.width??0)*(c?.height??0)*4}const I=K(t)?.getSize(new V)??null;return{nodes:M,meshes:v,primitives:x,vertices:g,triangles:T,materials:e.size,textures:n.size,bones:A,clips:t.animations.length,morphTargets:C,memoryBytes:N,bounds:I?{x:I.x,y:I.y,z:I.z}:null,geometry:{attributes:[...r.entries()].map(([o,c])=>({name:o,itemSize:c.itemSize,meshCount:c.meshes})).sort((o,c)=>o.name.localeCompare(c.name)),uvChannels:[...l].sort(),indexedMeshes:f,nonIndexedMeshes:d,instancedMeshes:b,skinnedMeshes:z,nonFiniteAttributeValues:P,lodGroups:D,lodLevels:U},animationClips:t.animations.map((o,c)=>{const h=new Set;let S=0;for(const m of o.tracks){S+=m.times.length;const W=L.parseTrackName(m.name);W.nodeName&&h.add(W.nodeName)}return{id:`${c}:${o.uuid}`,name:o.name||`Clip ${c+1}`,duration:o.duration,tracks:o.tracks.length,keyframes:S,targets:[...h].sort(),rootMotion:se(o).length>1}}),hierarchy:p,materialNames:[...e].map(o=>o.name||o.type),textureNames:[...n].map(o=>o.name||o.source.data?.src||"Texture"),materialSlots:[...e].map(o=>({id:o.uuid,name:o.name||o.type,type:o.type,textureSlots:s.get(o)??[],usageCount:i.get(o)?.size??0,meshNames:[...i.get(o)??[]].map(c=>c.name||c.type).sort(),color:Z(o),transparent:o.transparent})),textureBindings:a}}function Q(t){const e=t.geometry.getAttribute("skinIndex"),n=t.geometry.getAttribute("skinWeight");if(!e||!n)return{weightedVertices:0,nonNormalizedVertices:0,zeroWeightVertices:0,invalidJointIndices:0};const s=Math.min(e.count,n.count);let i=0,r=0,l=0;for(let a=0;a<s;a++){const p=[n.getX(a),n.getY(a),n.getZ(a),n.getW(a)],M=[e.getX(a),e.getY(a),e.getZ(a),e.getW(a)],v=p.reduce((x,g)=>x+g,0);v<=1e-6?r++:Math.abs(v-1)>.001&&i++,l+=p.filter((x,g)=>x>1e-6&&(M[g]<0||M[g]>=t.skeleton.bones.length)).length}return{weightedVertices:s,nonNormalizedVertices:i,zeroWeightVertices:r,invalidJointIndices:l}}function _(t){let e=0;for(const n of t.times)Number.isFinite(n)||e++;for(const n of t.values)Number.isFinite(n)||e++;return e}function j(t,e){const n=L.parseTrackName(e.name).nodeName;return n&&!L.findNode(t,n)?n:null}function ee(t){let e=0;const n=new Set;for(const s of t.animations)for(const i of s.tracks){e+=_(i);const r=j(t,i);r&&n.add(r)}return{nonFiniteValues:e,unresolvedTargets:n}}function ue(t){const e=new Set,n=new Set,s=new Set;let i=0,r=0,l=0,a=0,p=0,M=0;const v=new Set,x=new Set,g=new Set;t.traverse(f=>{e.add(f);const d=f;d.isBone&&s.add(d)}),t.traverse(f=>{const d=f;if(!d.isSkinnedMesh)return;i++,g.add(d.bindMode),n.add(d.skeleton),d.skeleton.bones.length!==d.skeleton.boneInverses.length&&M++;for(const z of d.skeleton.bones)s.add(z),e.has(z)||v.add(z);const b=Q(d);r+=b.weightedVertices,l+=b.nonNormalizedVertices,a+=b.zeroWeightVertices,p+=b.invalidJointIndices});const T=ee(t);for(const f of s)(!f.parent?.isBone||!s.has(f.parent))&&x.add(f.name||f.uuid);const A=T.nonFiniteValues,C=T.unresolvedTargets,N=l===0&&a===0&&p===0&&M===0&&v.size===0&&A===0&&C.size===0;return{kind:i>0?"skinned":s.size>0?"rigid":"none",skinnedMeshes:i,skeletons:n.size,uniqueBones:s.size,weightedVertices:r,nonNormalizedVertices:l,zeroWeightVertices:a,invalidJointIndices:p,inverseBindMismatches:M,externalBones:v.size,nonFiniteAnimationValues:A,unresolvedTrackTargets:[...C].sort(),rootBones:[...x].sort(),bindModes:[...g].sort(),valid:N}}function ce(t,e){if(e&&!te(e))return null;const n=t.clone().normalize();for(const s of["front","back","left","right","top","bottom"])if(ne(s).angleTo(n)<.0087)return`${s[0]?.toUpperCase()}${s.slice(1)}`;return null}function te(t){const e=t.clone().normalize();return Math.max(Math.abs(e.x),Math.abs(e.y),Math.abs(e.z))>Math.cos(.0087)}function ne(t){const e={front:[0,0,1],back:[0,0,-1],left:[-1,0,0],right:[1,0,0],top:[0,1,0],bottom:[0,-1,0],isometric:[1,.72,1]};return new V(...e[t]).normalize()}function de(t){let e=!1,n=!1,s=!1,i=!1;return t.traverse(r=>{const l=r;e||=!!l.geometry?.getAttribute("uv"),n||=!!l.geometry?.getAttribute("color"),s||=!!(r.isBone||l.isSkinnedMesh),i||=r.isLOD===!0}),[{mode:"lit",available:!0},{mode:"unlit",available:!0},{mode:"wireframe",available:!0},{mode:"normals",available:!0},{mode:"uv",available:e,...e?{}:{reason:"No UV channel"}},{mode:"vertex-colors",available:n,...n?{}:{reason:"No vertex colors"}},{mode:"bounds",available:!0},{mode:"skeleton",available:s,...s?{}:{reason:"No skeleton"}},{mode:"collision",available:!1,reason:"No collision metadata"},{mode:"lod",available:i,...i?{}:{reason:"No LOD groups"}}]}function se(t){const e=t.tracks.filter(i=>i.ValueTypeName==="vector"&&i.name.toLowerCase().endsWith(".position")),n=e.find(i=>/(^|[./])(root|hips|armature)[./]/i.test(i.name))??e[0];if(!n||n.values.length<6)return[];const s=[];for(let i=0;i+2<n.values.length;i+=3)s.push(new V(n.values[i],n.values[i+1],n.values[i+2]));return s}export{ce as a,le as b,ne as c,ue as d,ae as e,te as i,de as s};
@@ -0,0 +1 @@
1
+ import{i0 as r,i1 as t,i2 as s,i9 as d}from"./volter-sdk-BwU3fa6G.js";const m={name:"modelsFromBlendFiles",reads:"files",schema:r({finder:d("modelsFromBlendFiles"),include:t(s().min(1)).min(1).describe("Project-relative globs of the Blender files to list (`src/models/**/*.blend`)")}).strict(),run(a,l){const n=[],o=[];for(const e of l.files??[]){if(!e.endsWith(".blend"))continue;const i=(e.split("/").pop()??e).replace(/\.blend$/,"");n.push({id:`model:${e}`,label:i,kind:"model",region:null,authorable:!0,reach:{kind:"root-mount"},source:{path:e}})}return n.length===0&&n.push({id:"blender:runtime",label:"Model",kind:"model",region:null,authorable:!0,reach:{kind:"root-mount"}}),{entries:n,notes:o}}};export{m as finder};
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/Object3DDocumentToolbar-Bfm-RTS8.js","assets/volter-sdk-BwU3fa6G.js","assets/asset-preview-jtcCFntF.js","assets/content-bounds-Dg9hT5Gp.js","assets/three.module-dk_BdrjN.js","assets/model-inspection-jRplyguX.js","assets/ViewportShadingMenu-DmM-Odyl.js"])))=>i.map(i=>d[i]);
2
+ import{A as j,ix as V,iy as I,iz as L,iA as O,iB as P,n as M,g as k}from"./volter-sdk-BwU3fa6G.js";function R(e,t){return e.object3D?.(t)??null}const o=new Map,l=new Map;function v(e){let t=l.get(e);return t||(t={frameListeners:new Set,helpers:new Map},l.set(e,t)),t}const d=new Set,p=new Set;function b(){for(const t of o.values())if(t.presenting)return t;const e=j();if(e!==null){const t=o.get(e);if(t)return t}return o.values().next().value??null}let s=null;function g(){s=null;const e=x();for(const t of p)t(e)}function _(e,t){const r=v(e);return{documentId:e,rig:()=>o.get(e)?.rig??t,setHelper:(n,a)=>{r.helpers.set(n,a),o.get(e)?.setHelper(n,a)},onFrame:n=>(r.frameListeners.add(n),()=>{r.frameListeners.delete(n)})}}function z(e,t,r,n){const a=v(n.documentId),c={documentId:n.documentId,rig:e,present:t,setHelper:r,frameListeners:a.frameListeners,helpers:a.helpers,presenting:!1};o.set(n.documentId,c);for(const[h,y]of c.helpers)r(h,y);return g(),()=>{o.get(n.documentId)===c&&(o.delete(n.documentId),g())}}function A(){return b()?.rig??null}function E(e){return d.add(e),()=>{d.delete(e)}}function x(){return s||(s=[...o.values()].map(e=>_(e.documentId,e.rig))),s}function H(e){const t=l.get(e);return t?[...t.helpers].filter(([,r])=>r!==null).map(([r])=>r):[]}function K(e){return p.add(e),()=>{p.delete(e)}}function q(e,t){const r=o.get(e);if(r){for(const n of r.frameListeners)n(t);if(b()===r)for(const n of d)n(t)}}const F=M.lazy(()=>k(()=>import("./Object3DDocumentToolbar-Bfm-RTS8.js"),__vite__mapDeps([0,1,2,3,4,5,6])).then(e=>({default:e.Object3DDocumentToolbar}))),i=new Map,u=new Map;let S=0;const m=new Set;let f=!1;function D(){f||(f=!0,queueMicrotask(()=>{f=!1,S++;for(const e of[...m])e()}))}function G(e,t={}){i.set(e.documentId,e);const r=V(e),n=I(e.documentId,{...T(e),...t});return D(),()=>{n(),r(),i.get(e.documentId)===e&&(i.delete(e.documentId),D())}}const w=([e,t,r])=>({x:e,y:t,z:r});function T(e){return{read:()=>{const t=e.cameraPose(),r=e.presentation();return{camera:{position:w(t.position),target:w(t.target),...t.fov?{fov:t.fov}:{}},diagnostic:r.skeleton?"skeleton":r.mode,grid:P(e.documentId)}},setDiagnostic:t=>{if(t==="preview"||t==="rendered"){const r=L(e.documentId)?.stageKind;if(!r||O(r)?.modes?.[t]?.lighting===void 0)return!1}return e.setSkeleton(t==="skeleton"),e.setBounds(t==="bounds"),e.setMode(t==="skeleton"||t==="bounds"?"solid":t),!0},setCamera:t=>(typeof t!="string"?e.setCameraPose(t.position,t.target,t.fov):t==="perspective"?(e.setProjection("perspective"),e.frame()):e.setViewPreset(t),!0),frame:t=>t==="selection"?e.frameSelection():(e.frame(),!0),selection:{read:()=>e.selection(),apply:t=>e.select(t)},idsNamed:t=>{const r=[];return e.root.traverse(n=>{if(n.name!==t)return;const a=e.idForObject(n);a&&r.push(a)}),r},setTransformMode:t=>e.viewport.setTransformMode(t),capture:t=>e.captureImage(t??512),prepare:()=>B(e.documentId),HeaderControls:F}}function N(e){return i.get(e)??null}function W(e,t){return u.set(e,t),()=>{u.get(e)===t&&u.delete(e)}}async function B(e){await u.get(e)?.()}function J(){return[...i.values()]}function Q(e){return m.add(e),()=>m.delete(e)}function U(){return S}export{K as a,J as b,A as c,E as d,U as e,H as f,z as g,G as h,W as i,N as o,q as r,Q as s,R as t,x as v};