@volter/cyclotron 0.5.195 → 0.5.197
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.
- package/BUNDLED_NOTICES +12 -12
- package/README.md +3 -1
- package/dist/.vite/manifest.json +1343 -1343
- package/dist/assets/BVHLoader-_L0rt83K.js +1 -0
- package/dist/assets/ColladaLoader-BQqbx1cL.js +3 -0
- package/dist/assets/EntityModelDocument-uBuW4dcw.js +1 -0
- package/dist/assets/EnvironmentAssetDocument-DacXIlc2.js +1 -0
- package/dist/assets/FBXLoader-Du5wU7lO.js +1 -0
- package/dist/assets/InspectorObjectPreview-BscZ9D5-.js +1 -0
- package/dist/assets/LiveModuleDocument-C2C628D6.js +2 -0
- package/dist/assets/LutAssetDocument-BZwFFsRG.js +1 -0
- package/dist/assets/MTLLoader-BZbBRmlK.js +2 -0
- package/dist/assets/ModelAssetDocument-DC2JaSyA.js +1 -0
- package/dist/assets/NonThreeAuthoringBootstrap-DGrRc7p7.js +1 -0
- package/dist/assets/OBJLoader-IbBt7d-p.js +5 -0
- package/dist/assets/Object3DDocumentToolbar-BpXQ5sDh.js +1 -0
- package/dist/assets/Object3DPreview-DQELJiRV.js +2 -0
- package/dist/assets/OrbitControls-DnIL5QCN.js +1 -0
- package/dist/assets/PLYLoader-BxIpCBha.js +2 -0
- package/dist/assets/QuarksAssetDocument-SmMX3vmi.js +2 -0
- package/dist/assets/RectAreaLightUniformsLib-eEvUA1RR.js +1 -0
- package/dist/assets/STLLoader-TWmWoghe.js +1 -0
- package/dist/assets/ShaderAssetDocument-DrnxUKur.js +1 -0
- package/dist/assets/StageHost-BORfSKrG.js +1179 -0
- package/dist/assets/TDSLoader-DUvmhaj2.js +1 -0
- package/dist/assets/ToolObject3DPreview-PdwmvcU3.js +1 -0
- package/dist/assets/ViewportShadingMenu-BUZ0ii10.js +1 -0
- package/dist/assets/animation-mixers.service-BwWjc8OM.js +1 -0
- package/dist/assets/animation-timeline.utility-BT21NUzP.js +1 -0
- package/dist/assets/asset-preview-pmefkWZp.js +4 -0
- package/dist/assets/blender-emscripten-engine-zb7uttQi.js +2 -0
- package/dist/assets/blender-node-editor.document-9d2d3qxK.js +1 -0
- package/dist/assets/blender-properties-model-Bl_Fx2f0.js +1 -0
- package/dist/assets/blender-properties-tab-XFyOIyeh.js +3 -0
- package/dist/assets/blender-runtime-host-C8oSlAg-.js +7284 -0
- package/dist/assets/blender-runtime.document-CyGd9xBN.js +13 -0
- package/dist/assets/blender-screenshot.menu-Ckky16ke.js +1 -0
- package/dist/assets/blender-timeline.document-CAsbinZe.js +1 -0
- package/dist/assets/blender-uv-editor.document-BqYufr4M.js +1 -0
- package/dist/assets/blender-version.status-D7fBYUxm.js +1 -0
- package/dist/assets/blender-wali-engine-D2IttqWz.js +2 -0
- package/dist/assets/blender.command-BFGIhCsk.js +1 -0
- package/dist/assets/blender.status-C6PV4Fk2.js +1 -0
- package/dist/assets/index-GOVTlxY2.js +952 -0
- package/dist/assets/linear-resolve-DHfrDPG9.js +377 -0
- package/dist/assets/model-inspection-YwC3k-Ge.js +1 -0
- package/dist/assets/models.finder-C3RQvvgC.js +1 -0
- package/dist/assets/object3d-document-session-registry-Csh0ljOG.js +2 -0
- package/dist/assets/output-pass-CLtpDjSJ.js +85 -0
- package/dist/assets/play-mode-Dh0iSK-i.js +1 -0
- package/dist/assets/product-EqCjkr47.js +14 -0
- package/dist/assets/properties-bone-constraints.inspector-KjKBQxis.js +1 -0
- package/dist/assets/properties-bone.inspector-BKPPhosH.js +1 -0
- package/dist/assets/properties-collection.inspector-By8Lgc4p.js +1 -0
- package/dist/assets/properties-constraints.inspector-GQ8bhuc6.js +1 -0
- package/dist/assets/properties-data.inspector-B_Q1JEan.js +1 -0
- package/dist/assets/properties-material.inspector-B67qSdbx.js +1 -0
- package/dist/assets/properties-modifiers.inspector-lmXggWdE.js +1 -0
- package/dist/assets/properties-object.inspector-D13tx1Gr.js +1 -0
- package/dist/assets/properties-output.inspector-CDgE7Q6-.js +1 -0
- package/dist/assets/properties-particles.inspector-B89tCHgO.js +1 -0
- package/dist/assets/properties-physics.inspector-CXPOIP1b.js +1 -0
- package/dist/assets/properties-render.inspector-CxM6dwRw.js +1 -0
- package/dist/assets/properties-scene.inspector-By2E4nBk.js +1 -0
- package/dist/assets/properties-texture.inspector-D-WbjrTn.js +1 -0
- package/dist/assets/properties-view-layer.inspector-DXByR2Sp.js +1 -0
- package/dist/assets/properties-world.inspector-BkrjMxdw.js +1 -0
- package/dist/assets/react-18-DrxvWpX8.js +1 -0
- package/dist/assets/session-jWA2YopV.js +5648 -0
- package/dist/assets/spark.module-DPtvi_Wx.js +12120 -0
- package/dist/assets/stage-keyboard-BFsxczKr.js +1 -0
- package/dist/assets/stage-overlay-set-DuL_t9j3.js +1 -0
- package/dist/assets/stage-presence-markers-CXn4E7Ji.js +1 -0
- package/dist/assets/stage-transform-tools-CFooi_vU.js +1 -0
- package/dist/assets/standard-viewport-dressing-B2FyG7Yt.js +24 -0
- package/dist/assets/three-integration.service-C-sp8jZH.js +2 -0
- package/dist/assets/three.module-1DIrGqXA.js +3840 -0
- package/dist/assets/volter-sdk-BuGz2Ml5.js +2363 -0
- package/dist/assets/volter-sdk-account-BaS4WA7K.js +1 -0
- package/dist/assets/volter-sdk-client-ClWACCN8.js +1 -0
- package/dist/assets/volter-sdk-contributions-xNy5M4q3.js +1 -0
- package/dist/assets/volter-sdk-css-numeric-style-RyQ9txBt.js +1 -0
- package/dist/assets/volter-sdk-document-probe-CbBBfnoa.js +1 -0
- package/dist/assets/volter-sdk-editor-view-CW5yLSf1.js +1 -0
- package/dist/assets/volter-sdk-host-k3OjsSnp.js +1 -0
- package/dist/assets/volter-sdk-http-transport.browser-DwRQvIkp.js +1 -0
- package/dist/assets/volter-sdk-index-BSGaFJX0.js +1 -0
- package/dist/assets/volter-sdk-kit-CapabilityCoverageSection-DoM4eH2r.js +1 -0
- package/dist/assets/volter-sdk-kit-account-client-DbPdgslp.js +1 -0
- package/dist/assets/volter-sdk-kit-action-registry-C3338C3W.js +1 -0
- package/dist/assets/volter-sdk-kit-active-product-Cs8Lz-4U.js +1 -0
- package/dist/assets/volter-sdk-kit-active-project-BJyc4ilA.js +1 -0
- package/dist/assets/volter-sdk-kit-adapter-editor-config-iW9zKdMw.js +1 -0
- package/dist/assets/volter-sdk-kit-adapter-observation-DfbUI10T.js +1 -0
- package/dist/assets/volter-sdk-kit-animation-animation-clock-DL6gO72M.js +1 -0
- package/dist/assets/volter-sdk-kit-animation-stage-transport-mKR990ZL.js +1 -0
- package/dist/assets/volter-sdk-kit-api-assets-CMAdNXDa.js +1 -0
- package/dist/assets/volter-sdk-kit-api-base-CZ_JB5-3.js +1 -0
- package/dist/assets/volter-sdk-kit-api-build-DVMeJcv1.js +1 -0
- package/dist/assets/volter-sdk-kit-api-logs-DNzQPXl-.js +1 -0
- package/dist/assets/volter-sdk-kit-api-project-identity-CXlY4knY.js +1 -0
- package/dist/assets/volter-sdk-kit-api-project-open-DKWGJ78L.js +1 -0
- package/dist/assets/volter-sdk-kit-api-project-source-DPHGpA-N.js +1 -0
- package/dist/assets/volter-sdk-kit-api-project-state-BaCY6LR-.js +1 -0
- package/dist/assets/volter-sdk-kit-api-relay-UdKkDHS2.js +1 -0
- package/dist/assets/volter-sdk-kit-api-settings-DKgLopNt.js +1 -0
- package/dist/assets/volter-sdk-kit-api-themes-CSlqIt16.js +1 -0
- package/dist/assets/volter-sdk-kit-api-worktrees-9ZH7LSMe.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-capabilities-CHNVTEVS.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-compare-core-zxwGEyLW.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-editor-context-BlNkNcbW.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-events-CBL8PPkV.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-inspector-actions-B5nsd99u.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-selection-CoYolyme.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-selection-viewer-registry-Dty6Nyty.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-thumbnails-BsYEE5H1.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-viewers-BTeOIYMJ.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-import-jobs-SRGGq8rN.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-ledger-CMuilZzI.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-ledger-backend-DHPBQE2P.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-materialization-report-DvMTJ-Kw.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-pack-manifest-J47-xeXG.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-audio-preview-player-DrEDkshS.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-audio-waveform-DGrhk2SI.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-cloud-asset-client-CTy3wYbx.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-hosted-asset-materialization-BdO7yi5j.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-image-view-scale-Cj56fNID.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-ledger-write-lock-Bu3cTPD_.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-pixi-spritesheet-FyRkv4GZ.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-preview-resource-lifetime-C02t313z.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-project-asset-commands-DzqVRopm.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-project-content-CzDTEWJ3.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-thumbnail-system-DvI2MNoI.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-active-adapter-DMMv2CML.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-active-systems-Cz8Nuy9y.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-adapter-key-CWu71rh_.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-authoring-asset-url-C2sx4kqS.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-bootstrap-state-B0uqG-wA.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-boundary-authoring-adapter-BqDT2c3P.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-canvas-scene-guides-BVsSWkIF.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-composite-authoring-adapter-Co7EXfDd.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-consumer-actions-6aYnKXsw.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-design-time-layers-vfif1Ww7.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-design-time-mount-registry-CgWGMyUl.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-edit-mode-authoring-CVi8fVDM.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-empty-project-authoring-BJKCXpvi.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-instance-source-menu-CFIxT70U.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-layered-pick-p1GeVJ3P.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-mounted-root-subjects-BozjrYyJ.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-no-authoring-adapter-UrhQE4Bg.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-object3d-document-persistence-BiAGrCZi.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-panel-authoring-CSG80mnp.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-project-authoring-session-BJ9XWHjf.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-provenance-BtQZvlqy.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-react-canvas-navigation-Z8uEcPcV.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-react-design-canvas-style-CgwJ2uQS.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-react-story-board-2D4PCN5C.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-seam-evidence-CaFMODmD.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-selection-scope-Fu869Tzi.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-shell-document-ops-BS3J8Z5O.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-story-board-chrome-fit-t-zjR84h.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-three-root-DGxip12B.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-viewport-tool-context-mC6ONUnS.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-viewport-tool-owner-CnwjLzfR.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-world-session-state-DkSuP3KC.js +1 -0
- package/dist/assets/volter-sdk-kit-availability-tick-s0j3DFYR.js +1 -0
- package/dist/assets/volter-sdk-kit-bitmap-label-DUFn0rV0.js +1 -0
- package/dist/assets/volter-sdk-kit-boot-routing-CnipG4uw.js +1 -0
- package/dist/assets/volter-sdk-kit-breakpoint-state-C7ROJpX3.js +1 -0
- package/dist/assets/volter-sdk-kit-build-identity-BFVS_ntm.js +1 -0
- package/dist/assets/volter-sdk-kit-bytes-codec-C8OuAd7r.js +1 -0
- package/dist/assets/volter-sdk-kit-cancellation-reason-BPHCN2P0.js +1 -0
- package/dist/assets/volter-sdk-kit-canvas-frames-C5nsqNcJ.js +1 -0
- package/dist/assets/volter-sdk-kit-capture-camera-pose-CSgqKEAs.js +1 -0
- package/dist/assets/volter-sdk-kit-capture-size-B-P1nNLN.js +1 -0
- package/dist/assets/volter-sdk-kit-chrome-registry-Bm3hbYUV.js +1 -0
- package/dist/assets/volter-sdk-kit-chrome-slot-registry-C1AIuJJ7.js +1 -0
- package/dist/assets/volter-sdk-kit-collaboration-client-CF12FhLi.js +1 -0
- package/dist/assets/volter-sdk-kit-collaboration-presence-DJLPXFV2.js +1 -0
- package/dist/assets/volter-sdk-kit-command-dispatch-CE2t7q5Z.js +1 -0
- package/dist/assets/volter-sdk-kit-command-listener-C2vNFjdH.js +1 -0
- package/dist/assets/volter-sdk-kit-command-registry-D7y0owIJ.js +1 -0
- package/dist/assets/volter-sdk-kit-component-board-registry-akDmV4yk.js +1 -0
- package/dist/assets/volter-sdk-kit-component-states-registry-DF3CFQg_.js +1 -0
- package/dist/assets/volter-sdk-kit-components-AlignToolbar-XtYtQIkv.js +1 -0
- package/dist/assets/volter-sdk-kit-components-ApplicationMenus-Bru3f2Yh.js +1 -0
- package/dist/assets/volter-sdk-kit-components-AssetEditorShell-Bl5qEa0D.js +1 -0
- package/dist/assets/volter-sdk-kit-components-AssetInspectorToolSection-J8abeMJV.js +1 -0
- package/dist/assets/volter-sdk-kit-components-BoardRulers-DiS-3-25.js +1 -0
- package/dist/assets/volter-sdk-kit-components-CanvasAddNodeDialogs-CdGLQ55E.js +1 -0
- package/dist/assets/volter-sdk-kit-components-CanvasSceneViewport-C3SO5PI5.js +1 -0
- package/dist/assets/volter-sdk-kit-components-ChromeSlot-BhK10Tvx.js +1 -0
- package/dist/assets/volter-sdk-kit-components-CodeView-CpiS2EmB.js +1 -0
- package/dist/assets/volter-sdk-kit-components-CompactInspectorShell-DJgBRVX2.js +1 -0
- package/dist/assets/volter-sdk-kit-components-ConsolePanel-DDN-VXqk.js +1 -0
- package/dist/assets/volter-sdk-kit-components-GameplaySessionTimeline-DsCFiGOc.js +1 -0
- package/dist/assets/volter-sdk-kit-components-InspectionProjection-_Li0DPzH.js +1 -0
- package/dist/assets/volter-sdk-kit-components-Inspector-DJRySnhW.js +1 -0
- package/dist/assets/volter-sdk-kit-components-InspectorCanvasPreview-Bxr13fLx.js +1 -0
- package/dist/assets/volter-sdk-kit-components-InspectorFieldsSection-DMldy7J1.js +1 -0
- package/dist/assets/volter-sdk-kit-components-InspectorStoriesSection-qnQ5jDaH.js +1 -0
- package/dist/assets/volter-sdk-kit-components-InspectorToolSection-DjwuF8ZD.js +1 -0
- package/dist/assets/volter-sdk-kit-components-InspectorTransformSection-ByB1IwxW.js +1 -0
- package/dist/assets/volter-sdk-kit-components-LightExplorerPanel-DPW9rVT8.js +1 -0
- package/dist/assets/volter-sdk-kit-components-MediaProperties-B7rosLXR.js +1 -0
- package/dist/assets/volter-sdk-kit-components-ProjectHeader-Du4I_Krs.js +1 -0
- package/dist/assets/volter-sdk-kit-components-ReactCanvasControls-DfNwNEFe.js +1 -0
- package/dist/assets/volter-sdk-kit-components-RootSelectionOverlay-Dq2FAhu3.js +1 -0
- package/dist/assets/volter-sdk-kit-components-RootTextEditor-CeWfzCLN.js +1 -0
- package/dist/assets/volter-sdk-kit-components-SaveStatus-CfZ4Wc0c.js +1 -0
- package/dist/assets/volter-sdk-kit-components-SurfaceCrashBoundary-DmERbROP.js +1 -0
- package/dist/assets/volter-sdk-kit-components-SurfaceStateOverlay-Dt7GOswD.js +1 -0
- package/dist/assets/volter-sdk-kit-components-ToolContributionSurfaces-Dx22WBfu.js +1 -0
- package/dist/assets/volter-sdk-kit-components-ToolHost-BwdWKvpp.js +1 -0
- package/dist/assets/volter-sdk-kit-components-Toolbar-a48EfHxk.js +1 -0
- package/dist/assets/volter-sdk-kit-components-TransientHint-DEek0Yl-.js +1 -0
- package/dist/assets/volter-sdk-kit-components-VersionControlSection-DQuGXh6x.js +1 -0
- package/dist/assets/volter-sdk-kit-components-ViewportOverlaysMenu-6SR0y1Ux.js +1 -0
- package/dist/assets/volter-sdk-kit-components-VolterLogo-DL0qWj2E.js +1 -0
- package/dist/assets/volter-sdk-kit-components-WorktreeSwitcher-Hz2__Gf-.js +1 -0
- package/dist/assets/volter-sdk-kit-components-account-documents-DGZpAUM3.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-documents-BnPdxLkE.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-editor-persistence-C9ziE52o.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-selection-section-DldUz-Eo.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-thumbnails-D0yLdobl.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-AudioViewer-3eEtlbIq.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-GenericJsonViewer-CWlUaOCk.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-ImageViewer-CSUTmlJh.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-JsonAssetDocument-ChW4Odw_.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-OnlineAssetDetail-CPKelQXA.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-SourceAssetViewer-CzaXBBAR.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-SpritesheetSpriteView-IcXNzKWu.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-VideoViewer-_JqP023S.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-shader-source-C5QfngU5.js +1 -0
- package/dist/assets/volter-sdk-kit-components-board-guides-DUsV4ymi.js +1 -0
- package/dist/assets/volter-sdk-kit-components-canvas-scene-hotkeys-BA_Z-KD1.js +1 -0
- package/dist/assets/volter-sdk-kit-components-canvas-temporary-pivot-DW44wzC2.js +1 -0
- package/dist/assets/volter-sdk-kit-components-core-utilities-DbwQUAAX.js +1 -0
- package/dist/assets/volter-sdk-kit-components-inspector-preview-section-DkxmnSQu.js +1 -0
- package/dist/assets/volter-sdk-kit-components-inspector-revert-label-CffCwYjn.js +1 -0
- package/dist/assets/volter-sdk-kit-components-inspector-selection-Bi_cGKAD.js +1 -0
- package/dist/assets/volter-sdk-kit-components-inspector-stories-gating-Cw-fRr86.js +1 -0
- package/dist/assets/volter-sdk-kit-components-inspector-transform-C028guPN.js +1 -0
- package/dist/assets/volter-sdk-kit-components-inspector-transform-subject-x5tZejfU.js +1 -0
- package/dist/assets/volter-sdk-kit-components-kind-documents-CgAqYiez.js +1 -0
- package/dist/assets/volter-sdk-kit-components-primitives-DraftColorInput-vwqKkNYy.js +1 -0
- package/dist/assets/volter-sdk-kit-components-project-tool-documents-etpTjF8B.js +1 -0
- package/dist/assets/volter-sdk-kit-components-scene-documents-D11Z_yxX.js +1 -0
- package/dist/assets/volter-sdk-kit-components-status-contributions-oL35obJe.js +1 -0
- package/dist/assets/volter-sdk-kit-components-tool-documents-CBPqKURX.js +1 -0
- package/dist/assets/volter-sdk-kit-components-tool-schema-form-B_PNUAYm.js +1 -0
- package/dist/assets/volter-sdk-kit-components-use-after-paint-3A-qr0qd.js +1 -0
- package/dist/assets/volter-sdk-kit-components-use-project-image-assets-DbzqTmwu.js +1 -0
- package/dist/assets/volter-sdk-kit-components-workspace-history-C7ElGRcY.js +1 -0
- package/dist/assets/volter-sdk-kit-components-world-documents-BL22vGyv.js +1 -0
- package/dist/assets/volter-sdk-kit-components-world-overlay-gestures-7ulSoGPq.js +1 -0
- package/dist/assets/volter-sdk-kit-composite-screenshot-DdSEw5mS.js +1 -0
- package/dist/assets/volter-sdk-kit-content-entry-source-registry-O_99icc9.js +1 -0
- package/dist/assets/volter-sdk-kit-contribution-surfaces-DIsIUpUl.js +1 -0
- package/dist/assets/volter-sdk-kit-coverage-canvas-reveal-DpETZx7H.js +1 -0
- package/dist/assets/volter-sdk-kit-coverage-design-time-surfaces-CQ7KMc4S.js +1 -0
- package/dist/assets/volter-sdk-kit-coverage-ontology-invariants-BaRrgxoi.js +1 -0
- package/dist/assets/volter-sdk-kit-coverage-session-vitals-CW4TGmBO.js +1 -0
- package/dist/assets/volter-sdk-kit-creation-site-registry-DFoGzGY6.js +1 -0
- package/dist/assets/volter-sdk-kit-delegate-harness-registry-DDMPMQJC.js +1 -0
- package/dist/assets/volter-sdk-kit-document-areas-B6sYou9m.js +1 -0
- package/dist/assets/volter-sdk-kit-document-context-registry-wPCvICE8.js +1 -0
- package/dist/assets/volter-sdk-kit-document-open-registry-BafY7g52.js +1 -0
- package/dist/assets/volter-sdk-kit-document-play-extension-B-m7YLQu.js +1 -0
- package/dist/assets/volter-sdk-kit-document-preview-source-Bu3-dBW2.js +1 -0
- package/dist/assets/volter-sdk-kit-document-renderer-session-C8jngaCr.js +1 -0
- package/dist/assets/volter-sdk-kit-document-stage-sessions-ztEHGWpo.js +1 -0
- package/dist/assets/volter-sdk-kit-document-viewports-DiQ50HgX.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-api-D-ihI220.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-chrome-capture-dzVef4wQ.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-commands-CXNNYGgL.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-console-toWDj6Xd.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-current-view-DOZ1GBrr.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-document-probe-CXhrSBhH.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-git-client-C8u4Jtbm.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-hotkeys-B6O0XbGk.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-lease-CUTTPRw7.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-lease-view-CVHgCNEE.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-mode-BxzdzEVb.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-notifications-BnFT34-R.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-presence-B64J4MYZ.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-presentation-activity-BVC0gsn4.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-presentation-notice-D43ZYpLA.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-runtime-Dyw4cFds.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-server-response-cBDnwIjo.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-session-attribution-CQuWY9VV.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-session-mode-Cj28jo9w.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-state-facets-DMtJcqv8.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-view-presentation-4WiQvaBf.js +1 -0
- package/dist/assets/volter-sdk-kit-environment-images-BrLSggXC.js +1 -0
- package/dist/assets/volter-sdk-kit-eyedropper-session-DwcqYOkN.js +1 -0
- package/dist/assets/volter-sdk-kit-files-file-provider-NumGFtPc.js +1 -0
- package/dist/assets/volter-sdk-kit-files-project-files-CmZaJrdY.js +1 -0
- package/dist/assets/volter-sdk-kit-finders-index-eSewdfGj.js +1 -0
- package/dist/assets/volter-sdk-kit-finders-scenes-from-entrypoint-selection-D3O9EuCP.js +1 -0
- package/dist/assets/volter-sdk-kit-frame-frame-parts-UYFyHuj3.js +1 -0
- package/dist/assets/volter-sdk-kit-framed-document-capture-DWE0L-k2.js +1 -0
- package/dist/assets/volter-sdk-kit-game-surface-defaults-co4UxbSP.js +1 -0
- package/dist/assets/volter-sdk-kit-gameplay-export-state-BlEj8kSJ.js +1 -0
- package/dist/assets/volter-sdk-kit-gameplay-replay-CTn0CiOI.js +1 -0
- package/dist/assets/volter-sdk-kit-gameplay-session-time-CWEn34qM.js +1 -0
- package/dist/assets/volter-sdk-kit-gameplay-sessions-D1lkfWl2.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-component-marks-vqZDUc-y.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-internals-De9zLKRr.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-kind-icon-BSxee6uE.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-menu-registry-Di06vtoN.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-node-rows-DMMVezN6.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-panel-view-CSG9PJ83.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-projection-CTQi3AI-.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-row-media-DHLi38ku.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-row-model-CrG2T1fc.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-rows-C2Xaet_N.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-walk-BzkebnEJ.js +1 -0
- package/dist/assets/volter-sdk-kit-history-editor-session-th-t-OpK.js +1 -0
- package/dist/assets/volter-sdk-kit-history-history-commands-385t6ZTT.js +1 -0
- package/dist/assets/volter-sdk-kit-history-history-delegate-DNCjeYy7.js +1 -0
- package/dist/assets/volter-sdk-kit-history-history-limit-notices-CqFkjaF-.js +1 -0
- package/dist/assets/volter-sdk-kit-history-history-service-CCR9c1XU.js +1 -0
- package/dist/assets/volter-sdk-kit-history-persistence-coordinator-DSwdhoHR.js +1 -0
- package/dist/assets/volter-sdk-kit-history-project-file-history-B5a2Fdnt.js +1 -0
- package/dist/assets/volter-sdk-kit-history-project-root-history-backends-DWZPbyiI.js +1 -0
- package/dist/assets/volter-sdk-kit-history-resource-registry-BKhumiY7.js +1 -0
- package/dist/assets/volter-sdk-kit-history-snapshot-store-quvLoOv1.js +1 -0
- package/dist/assets/volter-sdk-kit-history-source-history-backend-DD-p7hzm.js +1 -0
- package/dist/assets/volter-sdk-kit-hmr-registration-group-NtPAiWFl.js +1 -0
- package/dist/assets/volter-sdk-kit-hmr-stable-react-context-BXiW8laY.js +1 -0
- package/dist/assets/volter-sdk-kit-hotkeys-C5qgsk6l.js +1 -0
- package/dist/assets/volter-sdk-kit-inference-diagnostics-7sIFq3FY.js +1 -0
- package/dist/assets/volter-sdk-kit-initial-project-mpHYN5E5.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-active-subject-DJ9fdsLd.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-active-surface-lqLNh25j.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-compose-subject-CaADU4-F.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-display-Lae6cndL.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-document-subject-BroDmnRI.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-game-subject-DRPgtjc4.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-model-Boygu020.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-node-media-1upwsha9.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-null-subject-BD4SNP3r.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-serialize-CeL-NYLg.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-use-active-inspection-Ca_AkBYC.js +1 -0
- package/dist/assets/volter-sdk-kit-inspector-presentation-BmmBeygi.js +1 -0
- package/dist/assets/volter-sdk-kit-inspector-property-grouping-BjlAicTS.js +1 -0
- package/dist/assets/volter-sdk-kit-inspector-section-registry-DCGjcahW.js +1 -0
- package/dist/assets/volter-sdk-kit-instance-source-actions-Tmeq2Cxo.js +1 -0
- package/dist/assets/volter-sdk-kit-js-heap-DaNZX9Xi.js +1 -0
- package/dist/assets/volter-sdk-kit-key-actions-B5Y42WSQ.js +1 -0
- package/dist/assets/volter-sdk-kit-keymap-presets-D50WZCjT.js +1 -0
- package/dist/assets/volter-sdk-kit-layout-policy-BUJ-lcCw.js +1 -0
- package/dist/assets/volter-sdk-kit-light-explorer-model-YchcoM4e.js +1 -0
- package/dist/assets/volter-sdk-kit-live-canvas-frame-CyJEivMI.js +1 -0
- package/dist/assets/volter-sdk-kit-live-document-CMLwxZ4A.js +1 -0
- package/dist/assets/volter-sdk-kit-live-gesture-lock-sNIYLN-M.js +1 -0
- package/dist/assets/volter-sdk-kit-live-seam-evidence-a0yWdRMa.js +1 -0
- package/dist/assets/volter-sdk-kit-live-session-registry-G7Fk-vBc.js +1 -0
- package/dist/assets/volter-sdk-kit-live-transition-b5sAc28o.js +1 -0
- package/dist/assets/volter-sdk-kit-manifest-project-CtuSrqpL.js +1 -0
- package/dist/assets/volter-sdk-kit-module-fetch-diagnosis-DbBT8c5N.js +1 -0
- package/dist/assets/volter-sdk-kit-mount-failure-report-BkQ511CN.js +1 -0
- package/dist/assets/volter-sdk-kit-native-selection-style-B1yKp6kz.js +1 -0
- package/dist/assets/volter-sdk-kit-object3d-document-write-policy-BXOdxIM9.js +1 -0
- package/dist/assets/volter-sdk-kit-packaged-runtime-DfUuSJML.js +1 -0
- package/dist/assets/volter-sdk-kit-performance-profiler-Bmt2PZSQ.js +1 -0
- package/dist/assets/volter-sdk-kit-performance-sources-BnRArurs.js +1 -0
- package/dist/assets/volter-sdk-kit-photograph-notice-BftnEDDl.js +1 -0
- package/dist/assets/volter-sdk-kit-play-boot-phase-BE_DCepY.js +1 -0
- package/dist/assets/volter-sdk-kit-play-camera-flight-CwF3JTbw.js +1 -0
- package/dist/assets/volter-sdk-kit-presentation-surface-d-yPuSWF.js +1 -0
- package/dist/assets/volter-sdk-kit-product-command-BOl1qowj.js +1 -0
- package/dist/assets/volter-sdk-kit-project-adapter-BKy8-p-a.js +1 -0
- package/dist/assets/volter-sdk-kit-project-asset-refresh-DX0fqdHG.js +1 -0
- package/dist/assets/volter-sdk-kit-project-asset-roots-aXR7jU6w.js +1 -0
- package/dist/assets/volter-sdk-kit-project-local-state-sMlTJ8-H.js +1 -0
- package/dist/assets/volter-sdk-kit-project-manager-CLDfeYO1.js +1 -0
- package/dist/assets/volter-sdk-kit-project-module-changes-gQXPdN5x.js +1 -0
- package/dist/assets/volter-sdk-kit-project-module-split-DId3a5b5.js +1 -0
- package/dist/assets/volter-sdk-kit-project-provenance-CwU78F6Q.js +1 -0
- package/dist/assets/volter-sdk-kit-project-ready-B2XPkaFQ.js +1 -0
- package/dist/assets/volter-sdk-kit-project-shape-Clhby2wv.js +1 -0
- package/dist/assets/volter-sdk-kit-project-tools-Dm4R_k8O.js +1 -0
- package/dist/assets/volter-sdk-kit-readiness-2jf-JOoo.js +1 -0
- package/dist/assets/volter-sdk-kit-renderer-resource-counts-CjUagMou.js +1 -0
- package/dist/assets/volter-sdk-kit-reported-play-state-DQe-rX-k.js +1 -0
- package/dist/assets/volter-sdk-kit-resolve-contributed-command-CbGN54Ly.js +1 -0
- package/dist/assets/volter-sdk-kit-resolve-relative-specifier-bu3vkzYk.js +1 -0
- package/dist/assets/volter-sdk-kit-retained-document-states-DxQBSGGp.js +1 -0
- package/dist/assets/volter-sdk-kit-scene-document-plan-7FR168iH.js +1 -0
- package/dist/assets/volter-sdk-kit-scene-live-open-BtvePOGc.js +1 -0
- package/dist/assets/volter-sdk-kit-scoped-game-css-HqDqbKEQ.js +1 -0
- package/dist/assets/volter-sdk-kit-served-url-D1x4ofam.js +1 -0
- package/dist/assets/volter-sdk-kit-session-close-CPnONE9R.js +1 -0
- package/dist/assets/volter-sdk-kit-session-tombstone-BV_wdmsc.js +1 -0
- package/dist/assets/volter-sdk-kit-settings-settings-provider-hoHco7b6.js +1 -0
- package/dist/assets/volter-sdk-kit-settings-store-BcfF2-8U.js +1 -0
- package/dist/assets/volter-sdk-kit-shell-store-DjfVma00.js +1 -0
- package/dist/assets/volter-sdk-kit-shell-store-door-qMauXxhL.js +1 -0
- package/dist/assets/volter-sdk-kit-source-conflict-CrqPaV8f.js +1 -0
- package/dist/assets/volter-sdk-kit-stage-context-Bwb2Dy9L.js +1 -0
- package/dist/assets/volter-sdk-kit-stage-invalidation-DzPbe4oz.js +1 -0
- package/dist/assets/volter-sdk-kit-stage-store-registry-8cIpF2Kp.js +1 -0
- package/dist/assets/volter-sdk-kit-startup-failure-CBI29OlW.js +1 -0
- package/dist/assets/volter-sdk-kit-state-report-deferral-BGx7CPXD.js +1 -0
- package/dist/assets/volter-sdk-kit-storage-host-files-storage-Zw7xzSCF.js +1 -0
- package/dist/assets/volter-sdk-kit-storage-http-storage-Y6gYn4KB.js +1 -0
- package/dist/assets/volter-sdk-kit-storage-index-26kI--h7.js +1 -0
- package/dist/assets/volter-sdk-kit-storage-mem-storage-C7VJzpik.js +1 -0
- package/dist/assets/volter-sdk-kit-storage-path-lock-yk1M_ULA.js +1 -0
- package/dist/assets/volter-sdk-kit-storage-paths-ClfKWvT_.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-StoryPreviewMount-yTa5zu5X.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-compose-project-stories-Hj6e4aC_.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-prefabs-finder--5BuYSVM.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-prefabs-from-stories-DFKkEOjK.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-project-story-regions-DraS1Dxi.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-scope-Bs0Kc5If.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-story-capture-DwPDCqtv.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-story-declared-medium-dhGOrtET.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-story-discovery-HGldSwme.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-story-dom-runtime-nUkY4iF-.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-story-grouping-ynl92Pfy.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-story-presentation-xiGWv5w5.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-story-registry-D44sH8PA.js +1 -0
- package/dist/assets/volter-sdk-kit-story-document-openers-BTojG5GB.js +1 -0
- package/dist/assets/volter-sdk-kit-story-thumbnails-Qffk46Zt.js +1 -0
- package/dist/assets/volter-sdk-kit-surface-keyboard-BBZJTHNb.js +1 -0
- package/dist/assets/volter-sdk-kit-surface-state-CtJX-pwE.js +1 -0
- package/dist/assets/volter-sdk-kit-system-seam-evidence-Dg4ud2GK.js +1 -0
- package/dist/assets/volter-sdk-kit-tab-census-Ckknq9Ij.js +1 -0
- package/dist/assets/volter-sdk-kit-tab-lifecycle-client-DGpscCYK.js +1 -0
- package/dist/assets/volter-sdk-kit-theme-library-C32t-3c4.js +1 -0
- package/dist/assets/volter-sdk-kit-theme-preference-Be_Jsgu3.js +1 -0
- package/dist/assets/volter-sdk-kit-three-viewport-presentation-DPlNHHc_.js +1 -0
- package/dist/assets/volter-sdk-kit-tool-contribution-play-Df3xfRHG.js +1 -0
- package/dist/assets/volter-sdk-kit-tool-loader-Cbu95_oL.js +1 -0
- package/dist/assets/volter-sdk-kit-transform-mode-request-BpR0R_I5.js +1 -0
- package/dist/assets/volter-sdk-kit-transient-hint-qtKEj7di.js +1 -0
- package/dist/assets/volter-sdk-kit-transport-strip-DRY0_Gsp.js +1 -0
- package/dist/assets/volter-sdk-kit-ui-source-file-region-resolver-VJWpWXvn.js +1 -0
- package/dist/assets/volter-sdk-kit-ui-source-inspect-DRHx8JoJ.js +1 -0
- package/dist/assets/volter-sdk-kit-ui-source-source-write-backend-BhzzNlTz.js +1 -0
- package/dist/assets/volter-sdk-kit-ui-source-tier-source-write-backend-CMHu58Mw.js +1 -0
- package/dist/assets/volter-sdk-kit-user-local-state-ZQGMBceJ.js +1 -0
- package/dist/assets/volter-sdk-kit-viewport-activation-timings-DOcEFMvv.js +1 -0
- package/dist/assets/volter-sdk-kit-viewport-editor-controls-CD3y3m6_.js +1 -0
- package/dist/assets/volter-sdk-kit-viewport-presentation-DVU3y_LS.js +1 -0
- package/dist/assets/volter-sdk-kit-viewport-surface-status-BBDtvVIV.js +1 -0
- package/dist/assets/volter-sdk-kit-wait-until-CYo_4TNS.js +1 -0
- package/dist/assets/volter-sdk-kit-worker-call-metrics-qWOopwqX.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-areas-CdQXdrms.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-aux-commands-BSZ6B-fG.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-available-documents-CVY6VniD.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-core-utilities-BLVvZ0qW.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-document-ids-D5QIVoig.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-document-registry-CAeI4xl_.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-document-restore-oixPIJCT.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-host-commands-DJPYmejr.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-persistence-gate-BZJViVf9.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-play-utilities-CxuewnPn.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-presets-K4QQdYij.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-regions-BMr4Uzps.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-static-panels-BKy6gu80.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-status-registry-DCdw7SmY.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-storage-BT0dc5ah.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-style-C-hmO50T.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-utility-commands-Chi8WvtN.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-utility-registry-5jhwfPDw.js +1 -0
- package/dist/assets/volter-sdk-kit-world-adoption-BLBFpmbS.js +1 -0
- package/dist/assets/volter-sdk-kit-world-canvas-viewport-state-B8jqLNhR.js +1 -0
- package/dist/assets/volter-sdk-kit-world-document-routing-l-FnSZFA.js +1 -0
- package/dist/assets/volter-sdk-kit-world-pan-state-BS3XzdLO.js +1 -0
- package/dist/assets/volter-sdk-kit-write-pipe-B3EQOcwS.js +1 -0
- package/dist/assets/volter-sdk-layout-arrangements-D3hu-hDQ.js +1 -0
- package/dist/assets/volter-sdk-layouts-Cs1hDFaK.js +1 -0
- package/dist/assets/volter-sdk-selection-CXm4sd7m.js +1 -0
- package/dist/assets/volter-sdk-session-command-table-BFSHedZc.js +1 -0
- package/dist/assets/volter-sdk-session-editor-brand-CMe4GycQ.js +1 -0
- package/dist/assets/volter-sdk-session-editor-compatibility-DF256xbt.js +1 -0
- package/dist/assets/volter-sdk-session-editor-control-protocol-ucnlJKEE.js +1 -0
- package/dist/assets/volter-sdk-session-entrypoint-selection-readers-C_hVPDft.js +1 -0
- package/dist/assets/volter-sdk-session-game-css-scope-Ck6WmVtj.js +1 -0
- package/dist/assets/volter-sdk-session-project-module-url-DFhUBkrg.js +1 -0
- package/dist/assets/volter-sdk-session-relative-path-guard-BaHGISgP.js +1 -0
- package/dist/assets/volter-sdk-session-tool-contribution-convention-BPb1dySY.js +1 -0
- package/dist/assets/volter-sdk-types-DJPATwCD.js +1 -0
- package/dist/assets/volter-sdk-views-uBqcKp7c.js +1 -0
- package/dist/assets/volter-sdk-widgets-design-system-BcwmL_uz.js +1 -0
- package/dist/assets/volter-sdk-widgets-editor-appearance-BKNCOfzd.js +1 -0
- package/dist/assets/volter-sdk-widgets-editor-material-URIYPmDp.js +1 -0
- package/dist/assets/volter-sdk-widgets-icon-set-registry-Cy8f58K0.js +1 -0
- package/dist/assets/volter-sdk-widgets-index-DESakM6Y.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-AlignmentGrid-BgfACRtv.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-AssetSlotPicker-BKka5P3T.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-BorderEditor-CjPVOhgu.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ColorPicker-DtCuEEmm.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-CurveEditor-BvwVuVtV.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-FilterEditor-C93xp0sy.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-FontPicker-BBJD9AYY.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-GradientEditor-BcCGcUyf.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ScrubbableInput-DvwcPfUJ.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ShadowEditor-Ts8-xWax.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-color-utils-CFarRcZS.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-curve-utils-BO1Y9riE.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-index-B0hivUt8.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-shared-BifcHVDi.js +1 -0
- package/dist/assets/volter-sdk-widgets-interactive-edit-scope-C__6QdNw.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-Dialog-C2-8Xasw.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-Fields-C9MjbsUQ.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-List-Cclehe82.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-StateSurface-dyIgeg43.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-Surfaces-BYoWI0L-.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-Tabs-G6b2WDBQ.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-Toolbar-L_F1Rur7.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-Tree-DU8LZmjW.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-AnchoredMenu-DZFStAAl.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Button-D1vitvWv.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-ColorInput-C-4rI_RR.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-DraftTextInput-Bb64ImDl.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-EditorIcon-C43YbJQf.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-FormControls-4vWDp7d6.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-HoverPreview-OZT90Bkd.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-JsonInput-CqQN1KwQ.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Layout-BocSkpOk.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Menu-BlCbDeiP.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-NumberInput-Ck7vl8-1.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Panel-20FrUR2j.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-SectionHeader-BjJ0HkR-.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Text-DWRmgp-e.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-ThemeRootPortal-Y5Ry9o4n.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Tooltip-vLvmHJDs.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Vec3Input-CI24_CM9.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-banner-tones-BKVICK-7.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-clamp-to-viewport-UyuEoej0.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-editor-icons-CcvOJT7q.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-panel-header-styles-CYSSNuxN.js +1 -0
- package/dist/assets/volter-sdk-widgets-theme-C7KX-pfq.js +1 -0
- package/dist/assets/volter-sdk-widgets-z-index-BeoVog1y.js +1 -0
- package/dist/assets/volter-shared-fontawesome-D77aOHw1.js +1 -0
- package/dist/assets/volter-shared-jsx-dev-runtime-eOctA51e.js +1 -0
- package/dist/assets/volter-shared-jsx-runtime-Dwzs3hHO.js +1 -0
- package/dist/assets/volter-shared-react-BBzfqye9.js +1 -0
- package/dist/assets/volter-shared-react-dom-bD6Gpcb1.js +1 -0
- package/dist/assets/volter-shared-react-dom-client-Cw6Ktnfu.js +1 -0
- package/dist/assets/volter-shared-three--8dRrWug.js +1 -0
- package/dist/assets/worker-DeCVN0ii.js +8 -0
- package/dist/volter-shared-react.json +6 -6
- package/dist/volter-shared-sdk.json +461 -461
- package/dist/volter-shared-three.json +1 -1
- package/dist-node/cli.js +25 -20
- package/dist-node/create.js +14 -9
- package/package.json +8 -8
- package/starter/AGENTS.md +17 -0
- package/dist/assets/BVHLoader-Cd_6-cHc.js +0 -1
- package/dist/assets/ColladaLoader-CmghI2ax.js +0 -3
- package/dist/assets/EntityModelDocument-3Lfy70FJ.js +0 -1
- package/dist/assets/EnvironmentAssetDocument-BBBgn8n4.js +0 -1
- package/dist/assets/FBXLoader-efmcKaVM.js +0 -1
- package/dist/assets/InspectorObjectPreview-Dz9jYErM.js +0 -1
- package/dist/assets/LiveModuleDocument--O5GGdPG.js +0 -2
- package/dist/assets/LutAssetDocument-PFywsg-U.js +0 -1
- package/dist/assets/MTLLoader-Bw0eyNxZ.js +0 -2
- package/dist/assets/ModelAssetDocument-98Kdxzpw.js +0 -1
- package/dist/assets/NonThreeAuthoringBootstrap-BeZhvd8z.js +0 -1
- package/dist/assets/OBJLoader-C0_wGMZp.js +0 -5
- package/dist/assets/Object3DDocumentToolbar-D6c-mNoU.js +0 -1
- package/dist/assets/Object3DPreview-BOJIg30-.js +0 -2
- package/dist/assets/OrbitControls-BPmW7u-G.js +0 -1
- package/dist/assets/PLYLoader-FwrQPNRq.js +0 -2
- package/dist/assets/QuarksAssetDocument-DtW7__Em.js +0 -2
- package/dist/assets/RectAreaLightUniformsLib-luK8KjS3.js +0 -1
- package/dist/assets/STLLoader-Bk5mb0xl.js +0 -1
- package/dist/assets/ShaderAssetDocument-8RiQ5rAQ.js +0 -1
- package/dist/assets/StageHost-B3CZwWuZ.js +0 -1179
- package/dist/assets/TDSLoader-C7bapvdb.js +0 -1
- package/dist/assets/ToolObject3DPreview-OsFfd2UH.js +0 -1
- package/dist/assets/ViewportShadingMenu-CdkRwKml.js +0 -1
- package/dist/assets/animation-mixers.service-BKB-ZUnS.js +0 -1
- package/dist/assets/animation-timeline.utility-BaQ3XbF8.js +0 -1
- package/dist/assets/asset-preview-DBV8RIu5.js +0 -4
- package/dist/assets/blender-emscripten-engine-cXX1oKuF.js +0 -2
- package/dist/assets/blender-node-editor.document-TEY5EUzO.js +0 -1
- package/dist/assets/blender-properties-model-oqlyz_19.js +0 -1
- package/dist/assets/blender-properties-tab-IHaCR2B3.js +0 -3
- package/dist/assets/blender-runtime-host-Cf1oujMK.js +0 -7284
- package/dist/assets/blender-runtime.document-CUr6sVcl.js +0 -13
- package/dist/assets/blender-screenshot.menu-CFCYPBkz.js +0 -1
- package/dist/assets/blender-timeline.document-C4KRf3CV.js +0 -1
- package/dist/assets/blender-uv-editor.document-Dv_vg3Lh.js +0 -1
- package/dist/assets/blender-version.status-aEa0sjka.js +0 -1
- package/dist/assets/blender-wali-engine-MsGPPV3H.js +0 -2
- package/dist/assets/blender.command-DJvPGiZp.js +0 -1
- package/dist/assets/blender.status-BjeOLc3b.js +0 -1
- package/dist/assets/index-C8uic39W.js +0 -952
- package/dist/assets/linear-resolve-DC32b5sD.js +0 -377
- package/dist/assets/model-inspection-ecjUBNfM.js +0 -1
- package/dist/assets/models.finder-CuSn7g4o.js +0 -1
- package/dist/assets/object3d-document-session-registry-hr7eLe2x.js +0 -2
- package/dist/assets/output-pass-hnwmr8Q8.js +0 -85
- package/dist/assets/play-mode-BSuPqjXD.js +0 -1
- package/dist/assets/product-BzjsyUN9.js +0 -14
- package/dist/assets/properties-bone-constraints.inspector-DyQUcW1F.js +0 -1
- package/dist/assets/properties-bone.inspector-BcRq8wqk.js +0 -1
- package/dist/assets/properties-collection.inspector-BnGrnoeZ.js +0 -1
- package/dist/assets/properties-constraints.inspector-B-PjHcNW.js +0 -1
- package/dist/assets/properties-data.inspector-ix9CRGWG.js +0 -1
- package/dist/assets/properties-material.inspector-B-5xtas0.js +0 -1
- package/dist/assets/properties-modifiers.inspector-9Di6Qt3o.js +0 -1
- package/dist/assets/properties-object.inspector-Bu18kjlG.js +0 -1
- package/dist/assets/properties-output.inspector-BUmDLALO.js +0 -1
- package/dist/assets/properties-particles.inspector-B92e7-Ec.js +0 -1
- package/dist/assets/properties-physics.inspector-CXB8OF54.js +0 -1
- package/dist/assets/properties-render.inspector-Cu83D42P.js +0 -1
- package/dist/assets/properties-scene.inspector-CKnlw6C2.js +0 -1
- package/dist/assets/properties-texture.inspector-B66rtMGq.js +0 -1
- package/dist/assets/properties-view-layer.inspector-BeCyH0PH.js +0 -1
- package/dist/assets/properties-world.inspector-CgHwK5Ym.js +0 -1
- package/dist/assets/react-18-xVBtY1rg.js +0 -1
- package/dist/assets/session-C5HnKX8j.js +0 -5616
- package/dist/assets/spark.module-Dx3twgjf.js +0 -12120
- package/dist/assets/stage-keyboard-bmP5PIXN.js +0 -1
- package/dist/assets/stage-overlay-set-D6Uj7J5g.js +0 -1
- package/dist/assets/stage-presence-markers-DIzeR8XG.js +0 -1
- package/dist/assets/stage-transform-tools-hnjIKkgZ.js +0 -1
- package/dist/assets/standard-viewport-dressing-xAubI9B2.js +0 -24
- package/dist/assets/three-integration.service-F7Y81Rht.js +0 -2
- package/dist/assets/three.module-CbQa04Ag.js +0 -3840
- package/dist/assets/volter-sdk-BwxTpY8N.js +0 -2359
- package/dist/assets/volter-sdk-account-CMuofYbx.js +0 -1
- package/dist/assets/volter-sdk-client-CFJ-gecB.js +0 -1
- package/dist/assets/volter-sdk-contributions-DsmHGmEC.js +0 -1
- package/dist/assets/volter-sdk-css-numeric-style-DtDEjueb.js +0 -1
- package/dist/assets/volter-sdk-document-probe-BKE_FHy8.js +0 -1
- package/dist/assets/volter-sdk-editor-view-BWmiCBaH.js +0 -1
- package/dist/assets/volter-sdk-host-B86Jv_m6.js +0 -1
- package/dist/assets/volter-sdk-http-transport.browser-CVS0uufv.js +0 -1
- package/dist/assets/volter-sdk-index-BfHW-Kru.js +0 -1
- package/dist/assets/volter-sdk-kit-CapabilityCoverageSection-Dv2zDkzF.js +0 -1
- package/dist/assets/volter-sdk-kit-account-client-D7yZnYsT.js +0 -1
- package/dist/assets/volter-sdk-kit-action-registry-BFLtbzcO.js +0 -1
- package/dist/assets/volter-sdk-kit-active-product-BsaPoa9j.js +0 -1
- package/dist/assets/volter-sdk-kit-active-project-aeKZNWjm.js +0 -1
- package/dist/assets/volter-sdk-kit-adapter-editor-config-waTkULmP.js +0 -1
- package/dist/assets/volter-sdk-kit-adapter-observation-DPtNsQOX.js +0 -1
- package/dist/assets/volter-sdk-kit-animation-animation-clock-BEeOcECA.js +0 -1
- package/dist/assets/volter-sdk-kit-animation-stage-transport-BqtTw4ib.js +0 -1
- package/dist/assets/volter-sdk-kit-api-assets-D8c0zR6b.js +0 -1
- package/dist/assets/volter-sdk-kit-api-base-DdHvds2T.js +0 -1
- package/dist/assets/volter-sdk-kit-api-build-B81zOERY.js +0 -1
- package/dist/assets/volter-sdk-kit-api-logs-5xmkzys1.js +0 -1
- package/dist/assets/volter-sdk-kit-api-project-identity-Dsxv3dvB.js +0 -1
- package/dist/assets/volter-sdk-kit-api-project-open-CddRB1Sp.js +0 -1
- package/dist/assets/volter-sdk-kit-api-project-source-BrpttQsF.js +0 -1
- package/dist/assets/volter-sdk-kit-api-project-state-lpFB9hHj.js +0 -1
- package/dist/assets/volter-sdk-kit-api-relay-D3oUxzbn.js +0 -1
- package/dist/assets/volter-sdk-kit-api-settings-T_VkcP3c.js +0 -1
- package/dist/assets/volter-sdk-kit-api-themes-CgVKfUcM.js +0 -1
- package/dist/assets/volter-sdk-kit-api-worktrees-BtKiA6sE.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-capabilities-4el5KOuF.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-compare-core-B6G-wk04.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-editor-context-03URzGhc.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-events-DuQyEwjX.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-inspector-actions-BbOgMuWi.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-selection-BFjLsrhZ.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-selection-viewer-registry-CZh_-Wdo.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-thumbnails-Dym0sSog.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-viewers-CritiqPf.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-import-jobs-DuSmoHfD.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-ledger-CxwvpZtT.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-ledger-backend-Dn12wcWn.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-materialization-report-Dex1Rp0E.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-pack-manifest-Dg-KpTSx.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-audio-preview-player-Cmj3RSxF.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-audio-waveform-DOa_Ja2Q.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-cloud-asset-client-EDbNtwzb.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-hosted-asset-materialization-8C5oVfnW.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-image-view-scale-DKJxn7vR.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-ledger-write-lock-Cjy5Q2YX.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-pixi-spritesheet-BnLhfgnn.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-preview-resource-lifetime-rohTV2Fk.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-project-asset-commands--eikfkCn.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-project-content-7YY2QcKD.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-thumbnail-system-SL8cfErR.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-active-adapter-BW5xKwk0.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-active-systems-rNHRgAqs.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-adapter-key-C937uVpd.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-authoring-asset-url-C2VPrE_V.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-bootstrap-state-4FKICheh.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-boundary-authoring-adapter-B49EEEGT.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-canvas-scene-guides-oKayglkq.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-composite-authoring-adapter-CxcSwOqN.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-consumer-actions-DAeXUKg4.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-design-time-layers-C3vdY5Et.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-design-time-mount-registry-CegX3wXs.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-edit-mode-authoring-C_uGy186.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-empty-project-authoring-rN9M64aB.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-instance-source-menu-CJhW_f2u.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-layered-pick-BloVEVI1.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-mounted-root-subjects-Dv9GxHde.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-no-authoring-adapter-UkigEOuH.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-object3d-document-persistence-DcT5J0gl.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-panel-authoring-pAaPJ4mI.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-project-authoring-session-DEZ5U7Jq.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-provenance-CBeDGwGL.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-react-canvas-navigation-De4RnnhW.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-react-design-canvas-style-CtDTblVC.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-react-story-board-CxKRx_5-.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-seam-evidence-6VTOvJl0.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-selection-scope-CKtYLyVe.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-shell-document-ops-5Ds7ukwD.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-story-board-chrome-fit-D0O3uaZ5.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-three-root-B_p-KEWk.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-viewport-tool-context-DPYE9E5G.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-viewport-tool-owner-BS3nl1Es.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-world-session-state-DFDkEqqv.js +0 -1
- package/dist/assets/volter-sdk-kit-availability-tick-CQwmvE79.js +0 -1
- package/dist/assets/volter-sdk-kit-bitmap-label-D-IknzxA.js +0 -1
- package/dist/assets/volter-sdk-kit-boot-routing-DEYlEfEM.js +0 -1
- package/dist/assets/volter-sdk-kit-breakpoint-state-Cpk6K8wD.js +0 -1
- package/dist/assets/volter-sdk-kit-build-identity-P3jCq_IC.js +0 -1
- package/dist/assets/volter-sdk-kit-bytes-codec-BDUKoHfq.js +0 -1
- package/dist/assets/volter-sdk-kit-cancellation-reason-WRwTwseG.js +0 -1
- package/dist/assets/volter-sdk-kit-canvas-frames-DkUDWjdZ.js +0 -1
- package/dist/assets/volter-sdk-kit-capture-camera-pose-Dxb97QNW.js +0 -1
- package/dist/assets/volter-sdk-kit-capture-size-c8iMlk31.js +0 -1
- package/dist/assets/volter-sdk-kit-chrome-registry-BEgzjxZp.js +0 -1
- package/dist/assets/volter-sdk-kit-chrome-slot-registry-D2lagM9D.js +0 -1
- package/dist/assets/volter-sdk-kit-collaboration-client-B2N1XGf-.js +0 -1
- package/dist/assets/volter-sdk-kit-collaboration-presence-DfmFoX2l.js +0 -1
- package/dist/assets/volter-sdk-kit-command-dispatch-DWvVTPVF.js +0 -1
- package/dist/assets/volter-sdk-kit-command-listener-Dr-iwAWR.js +0 -1
- package/dist/assets/volter-sdk-kit-command-registry-DzSvgDOP.js +0 -1
- package/dist/assets/volter-sdk-kit-component-board-registry-CcKg6WWw.js +0 -1
- package/dist/assets/volter-sdk-kit-component-states-registry-BpyDHN--.js +0 -1
- package/dist/assets/volter-sdk-kit-components-AlignToolbar-DNCQvUxK.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ApplicationMenus-B6TNeQ0U.js +0 -1
- package/dist/assets/volter-sdk-kit-components-AssetEditorShell-BK7-stmN.js +0 -1
- package/dist/assets/volter-sdk-kit-components-AssetInspectorToolSection-CcgUvu5V.js +0 -1
- package/dist/assets/volter-sdk-kit-components-BoardRulers-CRLj_edO.js +0 -1
- package/dist/assets/volter-sdk-kit-components-CanvasAddNodeDialogs-BG_b8jJ_.js +0 -1
- package/dist/assets/volter-sdk-kit-components-CanvasSceneViewport-B0MXg9mn.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ChromeSlot-BH9_cPJw.js +0 -1
- package/dist/assets/volter-sdk-kit-components-CodeView-D9OD5Rwd.js +0 -1
- package/dist/assets/volter-sdk-kit-components-CompactInspectorShell-BWsQ1GaV.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ConsolePanel-DaWBPXuh.js +0 -1
- package/dist/assets/volter-sdk-kit-components-GameplaySessionTimeline-cZnvuIoo.js +0 -1
- package/dist/assets/volter-sdk-kit-components-InspectionProjection-7gE4QCx3.js +0 -1
- package/dist/assets/volter-sdk-kit-components-Inspector-CU801s_m.js +0 -1
- package/dist/assets/volter-sdk-kit-components-InspectorCanvasPreview-CJaVbL0s.js +0 -1
- package/dist/assets/volter-sdk-kit-components-InspectorFieldsSection-DewdjX_X.js +0 -1
- package/dist/assets/volter-sdk-kit-components-InspectorStoriesSection-B0DYEV4q.js +0 -1
- package/dist/assets/volter-sdk-kit-components-InspectorToolSection-BLdIMcEo.js +0 -1
- package/dist/assets/volter-sdk-kit-components-InspectorTransformSection-BnHVemYx.js +0 -1
- package/dist/assets/volter-sdk-kit-components-LightExplorerPanel-JtjlLIbQ.js +0 -1
- package/dist/assets/volter-sdk-kit-components-MediaProperties-C3WfiDHg.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ProjectHeader-CFmZm0IO.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ReactCanvasControls-CPat6YMC.js +0 -1
- package/dist/assets/volter-sdk-kit-components-RootSelectionOverlay-C_B9M0K2.js +0 -1
- package/dist/assets/volter-sdk-kit-components-RootTextEditor-Cf_lcmpX.js +0 -1
- package/dist/assets/volter-sdk-kit-components-SaveStatus-C2_YqVsX.js +0 -1
- package/dist/assets/volter-sdk-kit-components-SurfaceCrashBoundary-DCw5oYpC.js +0 -1
- package/dist/assets/volter-sdk-kit-components-SurfaceStateOverlay-ebrKdWrv.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ToolContributionSurfaces-DoGLyv29.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ToolHost-CuM_GSSC.js +0 -1
- package/dist/assets/volter-sdk-kit-components-Toolbar-BmHSqu1n.js +0 -1
- package/dist/assets/volter-sdk-kit-components-TransientHint-B0CCpqcw.js +0 -1
- package/dist/assets/volter-sdk-kit-components-VersionControlSection-hKraNpwB.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ViewportOverlaysMenu-DUJINtIb.js +0 -1
- package/dist/assets/volter-sdk-kit-components-VolterLogo-15T4VZGx.js +0 -1
- package/dist/assets/volter-sdk-kit-components-WorktreeSwitcher-yig_dj7Y.js +0 -1
- package/dist/assets/volter-sdk-kit-components-account-documents-CWG_08Hf.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-documents-O_pLe3PL.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-editor-persistence-ORuSJwBQ.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-selection-section-KRRxusDp.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-thumbnails-DCl4wT-5.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-AudioViewer-DyPk6Qu-.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-GenericJsonViewer-I91AGsgz.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-ImageViewer-CREUyQLc.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-JsonAssetDocument-CtPadbcc.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-OnlineAssetDetail-DOfCapnD.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-SourceAssetViewer-D-TWbsk3.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-SpritesheetSpriteView-DDVtjuZ0.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-VideoViewer-wbON7wPy.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-shader-source-xPfu7noR.js +0 -1
- package/dist/assets/volter-sdk-kit-components-board-guides-DVn_p3jy.js +0 -1
- package/dist/assets/volter-sdk-kit-components-canvas-scene-hotkeys-C2yJz4s6.js +0 -1
- package/dist/assets/volter-sdk-kit-components-canvas-temporary-pivot-BerO2UuW.js +0 -1
- package/dist/assets/volter-sdk-kit-components-core-utilities-CUiNV7E6.js +0 -1
- package/dist/assets/volter-sdk-kit-components-inspector-preview-section-CjzoiCXI.js +0 -1
- package/dist/assets/volter-sdk-kit-components-inspector-revert-label-CGmO7Eat.js +0 -1
- package/dist/assets/volter-sdk-kit-components-inspector-selection-BmagRxBc.js +0 -1
- package/dist/assets/volter-sdk-kit-components-inspector-stories-gating-ILLK4ySD.js +0 -1
- package/dist/assets/volter-sdk-kit-components-inspector-transform-CTDHXwof.js +0 -1
- package/dist/assets/volter-sdk-kit-components-inspector-transform-subject-9dgWdg5t.js +0 -1
- package/dist/assets/volter-sdk-kit-components-kind-documents-Bt8fk9H-.js +0 -1
- package/dist/assets/volter-sdk-kit-components-primitives-DraftColorInput-CeMcG5Ra.js +0 -1
- package/dist/assets/volter-sdk-kit-components-project-tool-documents-4T6dbkvS.js +0 -1
- package/dist/assets/volter-sdk-kit-components-scene-documents-CNiUM-yj.js +0 -1
- package/dist/assets/volter-sdk-kit-components-status-contributions-DXuodFCz.js +0 -1
- package/dist/assets/volter-sdk-kit-components-tool-documents-DdOIwDvt.js +0 -1
- package/dist/assets/volter-sdk-kit-components-tool-schema-form-BRpOkCTq.js +0 -1
- package/dist/assets/volter-sdk-kit-components-use-after-paint-O94tL9IL.js +0 -1
- package/dist/assets/volter-sdk-kit-components-use-project-image-assets-C3f9GBpf.js +0 -1
- package/dist/assets/volter-sdk-kit-components-workspace-history-qHXRT5AH.js +0 -1
- package/dist/assets/volter-sdk-kit-components-world-documents-DWUxmJb5.js +0 -1
- package/dist/assets/volter-sdk-kit-components-world-overlay-gestures-De0rIdGy.js +0 -1
- package/dist/assets/volter-sdk-kit-composite-screenshot-BryfJiz7.js +0 -1
- package/dist/assets/volter-sdk-kit-content-entry-source-registry-DxdRoYTp.js +0 -1
- package/dist/assets/volter-sdk-kit-contribution-surfaces-Bi0gdwfF.js +0 -1
- package/dist/assets/volter-sdk-kit-coverage-canvas-reveal-0QnePDcN.js +0 -1
- package/dist/assets/volter-sdk-kit-coverage-design-time-surfaces-DvPfnVwt.js +0 -1
- package/dist/assets/volter-sdk-kit-coverage-ontology-invariants-DzDm8BWu.js +0 -1
- package/dist/assets/volter-sdk-kit-coverage-session-vitals-DjMpKEP4.js +0 -1
- package/dist/assets/volter-sdk-kit-creation-site-registry-B5ZHrltE.js +0 -1
- package/dist/assets/volter-sdk-kit-delegate-harness-registry-DHacoMtU.js +0 -1
- package/dist/assets/volter-sdk-kit-document-areas-DGRyKf9f.js +0 -1
- package/dist/assets/volter-sdk-kit-document-context-registry-lpLU4rQb.js +0 -1
- package/dist/assets/volter-sdk-kit-document-open-registry-DqhDSMB8.js +0 -1
- package/dist/assets/volter-sdk-kit-document-play-extension-Bjt9_XZg.js +0 -1
- package/dist/assets/volter-sdk-kit-document-preview-source-BIVTkMn4.js +0 -1
- package/dist/assets/volter-sdk-kit-document-renderer-session-CbSuX4ox.js +0 -1
- package/dist/assets/volter-sdk-kit-document-stage-sessions-B9snfKee.js +0 -1
- package/dist/assets/volter-sdk-kit-document-viewports-AgWPwqPN.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-api-B17GLfKz.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-chrome-capture-BaWzgo1Q.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-commands-BIEoxS0S.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-console-DrBuvMvX.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-current-view-adI1F52H.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-document-probe-i5MnKCWm.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-git-client-BpCWZw9F.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-hotkeys-BeyBjplR.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-lease-CeW2EkxJ.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-lease-view-7gFYAhxa.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-mode-YQCPLrgM.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-notifications-Dp8gsDRR.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-presence-BHDJ4-sq.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-presentation-activity-DjllvJQW.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-presentation-notice-DWqaoXHT.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-runtime-DECNrjXV.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-server-response-CKkeVxiv.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-session-attribution-CQULbTsP.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-session-mode-BFKIN3ui.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-state-facets-B4PsZPB0.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-view-presentation-BvPnKMrR.js +0 -1
- package/dist/assets/volter-sdk-kit-environment-images-DmJgPIEV.js +0 -1
- package/dist/assets/volter-sdk-kit-eyedropper-session-CxgK0sJZ.js +0 -1
- package/dist/assets/volter-sdk-kit-files-file-provider-C-y47De8.js +0 -1
- package/dist/assets/volter-sdk-kit-files-project-files-d0LeJQh8.js +0 -1
- package/dist/assets/volter-sdk-kit-finders-index-DtRh00JX.js +0 -1
- package/dist/assets/volter-sdk-kit-finders-scenes-from-entrypoint-selection-D0gOHrIL.js +0 -1
- package/dist/assets/volter-sdk-kit-frame-frame-parts-5o8jh0E3.js +0 -1
- package/dist/assets/volter-sdk-kit-framed-document-capture-CaznXeS7.js +0 -1
- package/dist/assets/volter-sdk-kit-game-surface-defaults-qpieWNBj.js +0 -1
- package/dist/assets/volter-sdk-kit-gameplay-export-state-DZo4dSCI.js +0 -1
- package/dist/assets/volter-sdk-kit-gameplay-replay-CDyXWM4E.js +0 -1
- package/dist/assets/volter-sdk-kit-gameplay-session-time-C-Y0RC8v.js +0 -1
- package/dist/assets/volter-sdk-kit-gameplay-sessions-CdC8RnTy.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-component-marks-CyL_oAxG.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-internals-BBg5IC6S.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-kind-icon-xLyMH3SO.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-menu-registry-BEP0_wZo.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-node-rows-BtvnNfSJ.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-panel-view-DEEPdL41.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-projection-D-aZ7dG1.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-row-media-hcJXwBUn.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-row-model-D4S5duzO.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-rows-TtiOPbht.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-walk-DlZOkjZX.js +0 -1
- package/dist/assets/volter-sdk-kit-history-editor-session-DMfWgs2x.js +0 -1
- package/dist/assets/volter-sdk-kit-history-history-commands-CNHgCZFT.js +0 -1
- package/dist/assets/volter-sdk-kit-history-history-delegate-Cd5HvG-Z.js +0 -1
- package/dist/assets/volter-sdk-kit-history-history-limit-notices-C83lhsVI.js +0 -1
- package/dist/assets/volter-sdk-kit-history-history-service-BDXFKWvH.js +0 -1
- package/dist/assets/volter-sdk-kit-history-persistence-coordinator-C9CyTaVq.js +0 -1
- package/dist/assets/volter-sdk-kit-history-project-file-history-CaZJ2ZqN.js +0 -1
- package/dist/assets/volter-sdk-kit-history-project-root-history-backends-bG5bb7qn.js +0 -1
- package/dist/assets/volter-sdk-kit-history-resource-registry-DWxj8-tf.js +0 -1
- package/dist/assets/volter-sdk-kit-history-snapshot-store-wpiRY29-.js +0 -1
- package/dist/assets/volter-sdk-kit-history-source-history-backend-BD-x0qXQ.js +0 -1
- package/dist/assets/volter-sdk-kit-hmr-registration-group-D__-rP7a.js +0 -1
- package/dist/assets/volter-sdk-kit-hmr-stable-react-context-Y_52_bjm.js +0 -1
- package/dist/assets/volter-sdk-kit-hotkeys-CwtRZ5oP.js +0 -1
- package/dist/assets/volter-sdk-kit-inference-diagnostics-CaIsWLeC.js +0 -1
- package/dist/assets/volter-sdk-kit-initial-project-QBGiKCgt.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-active-subject-BBhTzW_T.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-active-surface-DmQ_orQm.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-compose-subject-nSjue0vY.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-display-9UIvuxs7.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-document-subject-D84m-zii.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-game-subject-CzQxhXXU.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-model-CyOg8SSf.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-node-media-Cuffm1OX.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-null-subject-Bn1buI0D.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-serialize-CcsJ3nT7.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-use-active-inspection-C12J9vxS.js +0 -1
- package/dist/assets/volter-sdk-kit-inspector-presentation-DkEAHx_L.js +0 -1
- package/dist/assets/volter-sdk-kit-inspector-property-grouping-C3cNPch8.js +0 -1
- package/dist/assets/volter-sdk-kit-inspector-section-registry-Cg2x3VsO.js +0 -1
- package/dist/assets/volter-sdk-kit-instance-source-actions-C9fx4D1d.js +0 -1
- package/dist/assets/volter-sdk-kit-js-heap-BS6mmU0W.js +0 -1
- package/dist/assets/volter-sdk-kit-key-actions-VDJx5_sQ.js +0 -1
- package/dist/assets/volter-sdk-kit-keymap-presets-BX3zHwUC.js +0 -1
- package/dist/assets/volter-sdk-kit-layout-policy-DekOyYgZ.js +0 -1
- package/dist/assets/volter-sdk-kit-light-explorer-model-YZw6SV8v.js +0 -1
- package/dist/assets/volter-sdk-kit-live-canvas-frame-CZM9O7HC.js +0 -1
- package/dist/assets/volter-sdk-kit-live-document-DGGQgMBh.js +0 -1
- package/dist/assets/volter-sdk-kit-live-gesture-lock-DhMOhBbo.js +0 -1
- package/dist/assets/volter-sdk-kit-live-seam-evidence-FOYHr0zb.js +0 -1
- package/dist/assets/volter-sdk-kit-live-session-registry-S2fvzpRm.js +0 -1
- package/dist/assets/volter-sdk-kit-live-transition-lNQCzUMv.js +0 -1
- package/dist/assets/volter-sdk-kit-manifest-project-vX9SBm6y.js +0 -1
- package/dist/assets/volter-sdk-kit-module-fetch-diagnosis-Yl6RlGaG.js +0 -1
- package/dist/assets/volter-sdk-kit-mount-failure-report-DiISuMdz.js +0 -1
- package/dist/assets/volter-sdk-kit-native-selection-style-CLtn2Dre.js +0 -1
- package/dist/assets/volter-sdk-kit-object3d-document-write-policy-DjfdQJX9.js +0 -1
- package/dist/assets/volter-sdk-kit-packaged-runtime-DKH3MHsz.js +0 -1
- package/dist/assets/volter-sdk-kit-performance-profiler-BOBcBjv-.js +0 -1
- package/dist/assets/volter-sdk-kit-performance-sources-CZEsPOKr.js +0 -1
- package/dist/assets/volter-sdk-kit-photograph-notice-DHQrK9DD.js +0 -1
- package/dist/assets/volter-sdk-kit-play-boot-phase-9HgqNFfv.js +0 -1
- package/dist/assets/volter-sdk-kit-play-camera-flight-BIjBmPN2.js +0 -1
- package/dist/assets/volter-sdk-kit-presentation-surface-CGgXJTWQ.js +0 -1
- package/dist/assets/volter-sdk-kit-product-command-B3lyoQMq.js +0 -1
- package/dist/assets/volter-sdk-kit-project-adapter-BIiJpvZd.js +0 -1
- package/dist/assets/volter-sdk-kit-project-asset-refresh-BjqxcUkD.js +0 -1
- package/dist/assets/volter-sdk-kit-project-asset-roots-CQYvh4BE.js +0 -1
- package/dist/assets/volter-sdk-kit-project-local-state-6IYAVCsI.js +0 -1
- package/dist/assets/volter-sdk-kit-project-manager-bq75HQaX.js +0 -1
- package/dist/assets/volter-sdk-kit-project-module-changes-BFdMy7dw.js +0 -1
- package/dist/assets/volter-sdk-kit-project-module-split-BfPa7tNm.js +0 -1
- package/dist/assets/volter-sdk-kit-project-provenance-CMd-_pel.js +0 -1
- package/dist/assets/volter-sdk-kit-project-ready-B-jK7bCE.js +0 -1
- package/dist/assets/volter-sdk-kit-project-shape-bHBpuNdr.js +0 -1
- package/dist/assets/volter-sdk-kit-project-tools-CaWuzTUX.js +0 -1
- package/dist/assets/volter-sdk-kit-readiness-DPmacd3Y.js +0 -1
- package/dist/assets/volter-sdk-kit-renderer-resource-counts-C2hUQST_.js +0 -1
- package/dist/assets/volter-sdk-kit-reported-play-state-iF8aiKD2.js +0 -1
- package/dist/assets/volter-sdk-kit-resolve-contributed-command-dD2eIyLY.js +0 -1
- package/dist/assets/volter-sdk-kit-resolve-relative-specifier-B2zi_QGZ.js +0 -1
- package/dist/assets/volter-sdk-kit-retained-document-states-MjWyLk1H.js +0 -1
- package/dist/assets/volter-sdk-kit-scene-document-plan-CtN25bQF.js +0 -1
- package/dist/assets/volter-sdk-kit-scene-live-open-CbPu8FLt.js +0 -1
- package/dist/assets/volter-sdk-kit-scoped-game-css-DkKPd1En.js +0 -1
- package/dist/assets/volter-sdk-kit-served-url-CkQBKZcr.js +0 -1
- package/dist/assets/volter-sdk-kit-session-close-DK9GRg8M.js +0 -1
- package/dist/assets/volter-sdk-kit-session-tombstone-DvPKxdih.js +0 -1
- package/dist/assets/volter-sdk-kit-settings-settings-provider-BtILHV9v.js +0 -1
- package/dist/assets/volter-sdk-kit-settings-store-PFMg8Scu.js +0 -1
- package/dist/assets/volter-sdk-kit-shell-store-D7vv8dbq.js +0 -1
- package/dist/assets/volter-sdk-kit-shell-store-door-BGMuU6y_.js +0 -1
- package/dist/assets/volter-sdk-kit-source-conflict-BdNScyTK.js +0 -1
- package/dist/assets/volter-sdk-kit-stage-context-Dir3SNSF.js +0 -1
- package/dist/assets/volter-sdk-kit-stage-invalidation-D8HOjOhn.js +0 -1
- package/dist/assets/volter-sdk-kit-stage-store-registry-B_hVY5zR.js +0 -1
- package/dist/assets/volter-sdk-kit-startup-failure-DeeUO1yr.js +0 -1
- package/dist/assets/volter-sdk-kit-state-report-deferral-jLRmMR9D.js +0 -1
- package/dist/assets/volter-sdk-kit-storage-host-files-storage-YvbZgnHW.js +0 -1
- package/dist/assets/volter-sdk-kit-storage-http-storage-BA9-muxW.js +0 -1
- package/dist/assets/volter-sdk-kit-storage-index-BoeAdVl2.js +0 -1
- package/dist/assets/volter-sdk-kit-storage-mem-storage-DRr5g_ru.js +0 -1
- package/dist/assets/volter-sdk-kit-storage-path-lock-BeRFwv-a.js +0 -1
- package/dist/assets/volter-sdk-kit-storage-paths-Bu3irYNe.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-StoryPreviewMount-4vMHhXeY.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-compose-project-stories-Dj2tAPjI.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-prefabs-finder-TpoU8FYJ.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-prefabs-from-stories-WVrddyZY.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-project-story-regions-8F15_wzy.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-scope-XyIB3GDl.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-story-capture-gnl_iD_J.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-story-declared-medium-BxRPqzHp.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-story-discovery-Dr6jpJZ1.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-story-dom-runtime-B_maIY7Q.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-story-grouping-BCKO_k-W.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-story-presentation-B9cZtHWS.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-story-registry-BP11iSZC.js +0 -1
- package/dist/assets/volter-sdk-kit-story-document-openers-CnVRm5s5.js +0 -1
- package/dist/assets/volter-sdk-kit-story-thumbnails-B207_glL.js +0 -1
- package/dist/assets/volter-sdk-kit-surface-keyboard-B8Vytzet.js +0 -1
- package/dist/assets/volter-sdk-kit-surface-state-BiSiR500.js +0 -1
- package/dist/assets/volter-sdk-kit-system-seam-evidence-CYibBkyB.js +0 -1
- package/dist/assets/volter-sdk-kit-tab-census-bnx9I9JP.js +0 -1
- package/dist/assets/volter-sdk-kit-tab-lifecycle-client-CvESs077.js +0 -1
- package/dist/assets/volter-sdk-kit-theme-library-iTV-nCd1.js +0 -1
- package/dist/assets/volter-sdk-kit-theme-preference-CdlT4yEB.js +0 -1
- package/dist/assets/volter-sdk-kit-three-viewport-presentation-CmqsVz82.js +0 -1
- package/dist/assets/volter-sdk-kit-tool-contribution-play-YnfJKGPP.js +0 -1
- package/dist/assets/volter-sdk-kit-tool-loader-GezkUiHM.js +0 -1
- package/dist/assets/volter-sdk-kit-transform-mode-request-CouDOZ6X.js +0 -1
- package/dist/assets/volter-sdk-kit-transient-hint-3sU4PFpk.js +0 -1
- package/dist/assets/volter-sdk-kit-transport-strip-DPCHQyfw.js +0 -1
- package/dist/assets/volter-sdk-kit-ui-source-file-region-resolver-Bh38Jpnw.js +0 -1
- package/dist/assets/volter-sdk-kit-ui-source-inspect-FVy_ovQ2.js +0 -1
- package/dist/assets/volter-sdk-kit-ui-source-source-write-backend-BS86JVx3.js +0 -1
- package/dist/assets/volter-sdk-kit-ui-source-tier-source-write-backend-DQsfTyUH.js +0 -1
- package/dist/assets/volter-sdk-kit-user-local-state-CP64bixF.js +0 -1
- package/dist/assets/volter-sdk-kit-viewport-activation-timings-biWnxxfE.js +0 -1
- package/dist/assets/volter-sdk-kit-viewport-editor-controls-CdmZxWVh.js +0 -1
- package/dist/assets/volter-sdk-kit-viewport-presentation-BM7UhJku.js +0 -1
- package/dist/assets/volter-sdk-kit-viewport-surface-status-DZdAVHfU.js +0 -1
- package/dist/assets/volter-sdk-kit-wait-until-B4J1DcM6.js +0 -1
- package/dist/assets/volter-sdk-kit-worker-call-metrics-ByxSGGPC.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-areas-BTekB3Zp.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-aux-commands-C45_g_uM.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-available-documents-CuujZqyF.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-core-utilities-BlswWZwS.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-document-ids-BQZFrzxN.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-document-registry-BE7CWvkP.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-document-restore-B0NGQMfU.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-host-commands-DsPIbaB4.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-persistence-gate-BLUKYGEM.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-play-utilities-BOLJECAs.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-presets--kgOKgJl.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-regions-NANRt1Gi.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-static-panels-D66IM5bx.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-status-registry-DhaO-HnG.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-storage-DCoSJJt1.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-style-CQ2b8B6w.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-utility-commands-wkERXsh2.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-utility-registry-D3eNW65k.js +0 -1
- package/dist/assets/volter-sdk-kit-world-adoption-CPzq-_6r.js +0 -1
- package/dist/assets/volter-sdk-kit-world-canvas-viewport-state-C8YK3r6N.js +0 -1
- package/dist/assets/volter-sdk-kit-world-document-routing-DR_Lxmz-.js +0 -1
- package/dist/assets/volter-sdk-kit-world-pan-state-bIRTsLbS.js +0 -1
- package/dist/assets/volter-sdk-kit-write-pipe-Dr9KZLOk.js +0 -1
- package/dist/assets/volter-sdk-layout-arrangements-BIJhiqLw.js +0 -1
- package/dist/assets/volter-sdk-layouts-Bl5eztFP.js +0 -1
- package/dist/assets/volter-sdk-selection-_Hn836rx.js +0 -1
- package/dist/assets/volter-sdk-session-command-table-C29xdh5-.js +0 -1
- package/dist/assets/volter-sdk-session-editor-brand-DlKTO5F9.js +0 -1
- package/dist/assets/volter-sdk-session-editor-compatibility-PD_QoBn9.js +0 -1
- package/dist/assets/volter-sdk-session-editor-control-protocol-DHZ1EHj6.js +0 -1
- package/dist/assets/volter-sdk-session-entrypoint-selection-readers-DJIxIWvr.js +0 -1
- package/dist/assets/volter-sdk-session-game-css-scope-BK-99htz.js +0 -1
- package/dist/assets/volter-sdk-session-project-module-url-RZX776da.js +0 -1
- package/dist/assets/volter-sdk-session-relative-path-guard-BNg6chlA.js +0 -1
- package/dist/assets/volter-sdk-session-tool-contribution-convention-kNGnrJYb.js +0 -1
- package/dist/assets/volter-sdk-types-BYTOQlB8.js +0 -1
- package/dist/assets/volter-sdk-views-6c-rigUk.js +0 -1
- package/dist/assets/volter-sdk-widgets-design-system-DatIclGp.js +0 -1
- package/dist/assets/volter-sdk-widgets-editor-appearance-C5h4mQUG.js +0 -1
- package/dist/assets/volter-sdk-widgets-editor-material-DTSQeEty.js +0 -1
- package/dist/assets/volter-sdk-widgets-icon-set-registry-0AXazPbS.js +0 -1
- package/dist/assets/volter-sdk-widgets-index-C6B29gSg.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-AlignmentGrid-DnRPu5Qc.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-AssetSlotPicker-BiSIHdWt.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-BorderEditor-DJGaUb74.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ColorPicker-J2mHdD6R.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-CurveEditor-DKAV0aMv.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-FilterEditor-EQ0vRFWg.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-FontPicker-BrZX6Kmm.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-GradientEditor-B7AzhOla.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ScrubbableInput-ByAzvK26.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ShadowEditor-BFwk9hiv.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-color-utils-N1l7wnXo.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-curve-utils-DhcQJIwu.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-index-DQ1Vh7vD.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-shared-CGZHq6Oz.js +0 -1
- package/dist/assets/volter-sdk-widgets-interactive-edit-scope-DdVLbRL6.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Dialog-30mbpACS.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Fields-B8iNpeZg.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-List-4NaAZ49T.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-StateSurface-CvgLWGkH.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Surfaces-BB4d08Qi.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Tabs-V2q1gUrE.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Toolbar-CtvArSmy.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Tree-B8W756wO.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-AnchoredMenu-DkL4jUMi.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Button-D96LRk_s.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-ColorInput-BC9q0oKV.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-DraftTextInput-BilrApcn.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-EditorIcon-C7e9h2X7.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-FormControls-Cp3ZO6uU.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-HoverPreview-D7MS6D5j.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-JsonInput-B1n4GG13.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Layout-By2HlzMD.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Menu-C7epHdU9.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-NumberInput-C0SBjdrB.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Panel-DRbA5vBM.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-SectionHeader-BFnmUWiv.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Text-BTR2FD9d.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-ThemeRootPortal-CDBgcVT_.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Tooltip-CkghcoKB.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Vec3Input-nXXYQzXd.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-banner-tones-CNdf9z-S.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-clamp-to-viewport-BeMMC3JI.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-editor-icons-BY2Ahm_A.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-panel-header-styles-BKXEfwTa.js +0 -1
- package/dist/assets/volter-sdk-widgets-theme-B5oPCtQC.js +0 -1
- package/dist/assets/volter-sdk-widgets-z-index-BfZGe1NG.js +0 -1
- package/dist/assets/volter-shared-fontawesome-D1kpCOP0.js +0 -1
- package/dist/assets/volter-shared-jsx-dev-runtime-CqYlZerE.js +0 -1
- package/dist/assets/volter-shared-jsx-runtime-A7mFgLTP.js +0 -1
- package/dist/assets/volter-shared-react-JT9YrOkr.js +0 -1
- package/dist/assets/volter-shared-react-dom-DgU4Mn-6.js +0 -1
- package/dist/assets/volter-shared-react-dom-client-CQOqZACk.js +0 -1
- package/dist/assets/volter-shared-three-CrS2hcH2.js +0 -1
- package/dist/assets/worker-BRpzp8WI.js +0 -8
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import{h2 as z,x as Ct,ih as Ot,ii as bt,n as m,j as f,dv as At,ij as pe,dN as X,ik as he,il as Mt,im as Rt,t as H,io as $t,cr as Z,ev as Ft,B as We,dY as Pe,ip as Pt,aw as mt,ax as Se,bC as Tt,aE as se,gF as Nt,iq as Ae,aJ as Me,ie as te,ir as Ge,c0 as Lt,c3 as It,gv as ze,is as Bt,aA as Dt,it as Vt,iu as qe,aO as Wt,iv as Gt,iw as He,ix as zt}from"./volter-sdk-BuGz2Ml5.js";import{o as qt,i as _e,j as me,k as we,l as Ht,m as Te,g as Ue,p as Ut,q as Kt,w as Ke,t as Jt,u as Ce,v as Qt,x as Xt,y as Yt,z as Je,s as ht,A as Zt,B as er,b as Qe,C as Xe,D as tr,E as Ye,F as rr,G as nr,H as or}from"./blender-runtime-host-C8oSlAg-.js";import{t as Ze,v as oe,o as xe,s as gt,a as ge}from"./object3d-document-session-registry-Csh0ljOG.js";import{r as et,b as ar,a as sr,w as lr}from"./blender-properties-model-Bl_Fx2f0.js";import{g as ir,n as cr,b as fe}from"./play-mode-Dh0iSK-i.js";import{aV as dr,Q as de,V as Y,aW as yt,aX as ur,a_ as pr,u as fr,ay as br}from"./three.module-1DIrGqXA.js";import"./output-pass-CLtpDjSJ.js";import"./linear-resolve-DHfrDPG9.js";function jt(r){return`blender-${r.toLowerCase().replace(/_/g,"-")}`}function ne(r){return r?.type==="TSE_SOME_ID"&&r.struct==="Object"&&r.object!==void 0}function tt(r){if(r.struct)return r.struct}function rt(r,e){return{id:r.id,label:r.name,role:"entity",kind:jt(r.icon),...tt(r)?{typeLabel:tt(r)}:{},parentId:e,childIds:r.children.map(t=>t.id),defaultExpanded:r.expanded}}const mr={transform:!0,inspectorFields:!1,persist:!0},ke=new Set;let _t=0;const Ne=new Set;function nt(){queueMicrotask(()=>{_t++;for(const r of Ne)r()})}function hr(r){return Ne.add(r),()=>{Ne.delete(r)}}function ot(){return _t}function gr(r){for(const e of ke)if(e.documentId===r||e.documentId===`object3d-document:${r}`)return e;return ke.values().next().value??null}const yr=()=>({position:[0,0,0],rotation:[0,0,0,1],scale:[1,1,1]});function at(r,e){r.updateWorldMatrix(!0,!1);const t=e.matrixWorld.clone().invert().multiply(r.matrixWorld).elements;return[[t[0],t[1],t[2],t[3]],[t[4],t[5],t[6],t[7]],[t[8],t[9],t[10],t[11]],[t[12],t[13],t[14],t[15]]]}function ye(r,e){return`${r} 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 "${e}".`}const jr=[{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:`${ye("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:ye("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:ye("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:ye("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'"}],_r="collection-instance:";function wr(){const r=new Map;for(const e of me().byId.values()){if(e.type!=="TSE_LAYER_COLLECTION")continue;const t=e.data;t===void 0||!t.startsWith("bpy.data.collections[")||r.has(e.name)||r.set(e.name,{kind:`${_r}${e.name}`,label:e.name,group:"Collection Instance",call:`object.collection_instance_add, collection=${le(e.name)}`})}return[...r.values()]}function ve(){return[...jr,...wr()]}function vr(r){const[e,...t]=r.call.split(", ");return`bpy.ops.${e}(${t.join(", ")})`}function le(r){return JSON.stringify(r)}const Sr={"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 xr(r){const e=/bpy\.ops\.([a-z_]+\.[a-z0-9_]+)\(/.exec(r)?.[1];return e===void 0?void 0:Sr[e]}async function be(r,e){const t=["before = {o.name for o in bpy.data.objects}",r,"made = [o.name for o in bpy.data.objects if o.name not in before]",'print("\\n".join(made))'].join(`
|
|
2
|
+
`),o=await Ce(t,!0,e??xr(r));return o.error!==null?{made:[],error:o.error}:{made:o.result.split(`
|
|
3
|
+
`).map(i=>i.trim()).filter(i=>i.length>0),error:null}}async function kr(r,e){const t=[`_sel = {${r.map(le).join(", ")}}`,"_vl = bpy.context.view_layer","for _o in _vl.objects:"," _o.select_set(_o.name in _sel)",...e===null?[]:[`_vl.objects.active = bpy.data.objects.get(${le(e)})`]].join(`
|
|
4
|
+
`),o=await Ce(t,!1);o.error!==null&&z().console.error(`Blender refused the selection write: ${o.error}`,"blender-outliner")}async function Re(r,e){if(r.length===0)return{destination:"Nothing is selected, so there was nothing to run it on.",persisted:!1};const t=[`targets = [bpy.data.objects[n] for n in [${r.map(le).join(", ")}]]`,"with bpy.context.temp_override(selected_objects=targets, selected_editable_objects=targets, active_object=targets[0], object=targets[0]):",` ${e}`].join(`
|
|
5
|
+
`),{error:o}=await be(t);return o!==null?{destination:o,persisted:!1}:(await we(r),{destination:`Blender — ${e}; the session saves the .blend`,persisted:!0})}const Er={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."},Cr="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 wt(r){return({defaultAdapter:e})=>{const t=new Set;let o=[],u=null,i=null;const c=new Map,j=new Map,S=()=>{for(const a of[...t])a()},y=()=>me().byId,O=a=>{const n=y().get(a),s=r();return n===void 0||s===null?null:n.type==="TSE_VIEW_COLLECTION_BASE"?s.root:n.object===void 0?null:s.objectForBlenderName(n.object)},F=a=>{const n=r();if(n===null)return null;for(const s of y().values())if(ne(s)&&n.objectForBlenderName(s.object)===a)return s.id;return null},A=a=>{for(const n of y().values())if(ne(n)&&n.object===a)return n.id;return null},p=a=>{if(y().has(a))return a;const n=Ze(e.hierarchy,a);return n===null?null:F(n)},b=a=>{const n=p(a);return n===null?null:O(n)},v=a=>{const n=b(a);return n===null?null:e.hierarchy.idForObject3D?.(n)??null},w={roots:()=>(Jt(P()),(me().tree?.rows??[]).map(n=>rt(n,null))),node:a=>{const n=me(),s=n.byId.has(a)?a:p(a),g=s===null?void 0:n.byId.get(s);return g===void 0?null:rt(g,n.parentOf.get(g.id)??null)},object3D:a=>b(a),idForObject3D:a=>F(a)};function P(){const a=y(),n=new Set;for(const s of o){const g=a.get(s)?.object;g!==void 0&&n.add(g)}return[...n]}const V=()=>{const a=[];for(const n of o){const s=b(n),g=s===null?null:e.hierarchy.idForObject3D?.(s);g&&a.push(g)}e.selection?.set(a,{intent:"exact"}),S()},d=()=>{if(h||i!==null)return;const a=Ht(),n=`${Te()}\0${a.active??""}\0${[...a.selected].sort().join("")}`;if(n===u)return;u=n;const s=a.selected.filter(x=>x!==a.active);a.active!==null&&a.selected.includes(a.active)&&s.push(a.active);const g=s.map(A).filter(x=>x!==null);g.length===o.length&&g.every((x,C)=>x===o[C])||(o=g,V())},_={get:()=>[...o],set:a=>{if(h)return;const n=Symbol("Blender selection");i=n;const s=a.map(p);o=s.filter(B=>B!==null),V();const g=y(),x=r(),C=[],I=[],K=[];a.forEach((B,T)=>{const J=s[T];if(J!==null){const ue=g.get(J),ce=ue?.object;ce===void 0?I.push(ue?.name??J):C.includes(ce)||C.push(ce);return}const re=Ze(e.hierarchy,B),ie=re===null?null:x?.blenderObjectName(re)??null;ie===null?K.push(B):C.includes(ie)||C.push(ie)}),K.length>0&&z().console.warn(`No Blender object answers to ${K.join(", ")}, so Blender's selection leaves ${K.length===1?"it":"them"} out.`,"blender-outliner"),I.length>0&&z().console.warn(`${I.join(", ")} ${I.length===1?"is":"are"} not an object, so Blender's object selection does not carry ${I.length===1?"it":"them"}. Selecting a collection sets the ACTIVE COLLECTION in Blender, which is its own gesture and not in this editor yet.`,"blender-outliner"),kr(C,C.length===0?null:C[C.length-1]).catch(B=>z().console.error(`Blender refused the selection write: ${String(B)}`,"blender-outliner")).finally(()=>{h||i!==n||(i=null,u=null,d())})}},$=a=>y().get(a)?.restrict,W={properties:a=>{const n=$(a);if(n===void 0)return[];const s=y().get(a),g=[{path:"name",label:"Name",type:"string",readonly:!ne(s)}];return n.hide!==void 0&&g.push({path:"visible",label:"Show in Viewport",type:"boolean"}),n.render!==void 0&&g.push({path:"renderVisible",label:"Show in Renders",type:"boolean"}),n.exclude!==void 0&&g.push({path:"exclude",label:"Exclude from View Layer",type:"boolean"}),g},get:(a,n)=>{const s=y().get(a);if(s!==void 0){if(n==="name")return s.name;if(n==="visible")return s.restrict?.hide===void 0?void 0:!s.restrict.hide;if(n==="renderVisible")return s.restrict?.render===void 0?void 0:!s.restrict.render;if(n==="exclude")return s.restrict?.exclude}},editability:(a,n)=>{const s=y().get(a);return s===void 0?{writable:!1}:n==="name"?ne(s)?{writable:!0}:{writable:!1,reason:`Renaming a ${s.struct??s.type} is not in this Outliner yet — only an object row renames here. Rename it with bpy.`}:s.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."}:n==="visible"&&s.restrict?.exclude===!0?{writable:!1,reason:Cr}:{writable:!0}},set:async(a,n,s)=>{const g=y().get(a);if(g===void 0)return;if(n==="name"){if(!ne(g))return;const C=String(s);if(C===g.name||C.length===0)return;await Ue(`bpy.data.objects[${le(g.object)}]`,"name",C),await we([C]);const I=A(C);I!==null&&_.set([I]);return}if(n==="exclude"){await Ke(g.path,"exclude",s===!0);return}const x=n==="visible"?"hide":n==="renderVisible"?"render":null;x!==null&&await Ke(g.path,x,s===!1)}},N={get:a=>{const n=v(a);return(n===null?void 0:e.transforms?.get(n))??yr()},editability:a=>{const n=p(a),s=n===null?void 0:y().get(n);return ne(s)&&O(s.id)!==null?{writable:!0}:{writable:!1,reason:`Only an object has a transform; this row is a ${s?.struct??s?.type??"row"}.`}},beginEdit:a=>{const n=b(a);n!==null&&!c.has(n)&&(c.set(n,n.matrixWorld.clone()),j.set(a,n),Kt())},apply:(a,n)=>{const s=b(a);s!==null&&(s.position.fromArray(n.position),s.quaternion.fromArray(n.rotation),s.scale.fromArray(n.scale),s.updateMatrix(),s.updateMatrixWorld(!0),r()?.mirrorPose?.(s))},endEdit:async a=>{const n=j.get(a)??b(a);j.delete(a);const s=r();if(n===null)return;const g=c.get(n);c.delete(n);try{if(s===null||(n.updateWorldMatrix(!0,!1),g?.equals(n.matrixWorld)===!0))return;const x=s.blenderObjectName(n);if(x===null)return;const C=`bpy.data.objects[${JSON.stringify(x)}]`;try{return await Ue(C,"matrix_world",at(n,s.root)),{destination:`Blender — ${C}.matrix_world; the session saves the .blend`,persisted:!0}}catch(I){return{destination:I instanceof Error?I.message:String(I),persisted:!1}}}finally{g&&await Ut()}}},U=a=>{const n=p(a),s=n===null?void 0:y().get(n);return ne(s)?s.object:null},D=a=>({destination:a,persisted:!1}),G=async a=>{await we(a);const n=a.map(A).filter(s=>s!==null);return n.length>0&&_.set(n),n[0]??""},q=()=>{const a=e.documentId?.replace(/^object3d-document:/,""),n=oe().find(x=>x.documentId===a)?.rig().drawCamera()??null,s=r(),g=["bpy.ops.object.camera_add()","added = bpy.context.view_layer.objects.active"];return n!==null&&s!==null&&g.push("kept = added.location.copy()",`added.matrix_world = ${JSON.stringify(at(n,s.root))}`,"added.location = kept"),g.push("if bpy.context.scene.camera is None:"," bpy.context.scene.camera = added"),g.join(`
|
|
6
|
+
`)},k={creatableKinds:()=>ve().map(({kind:a,label:n})=>({kind:a,label:n})),create:a=>{const n=ve().find(g=>g.kind===a);if(n===void 0)return{id:"",ack:D(`${a} is not a row of Blender's Add menu that this editor adds. Its rows are: ${ve().map(g=>g.label).join(", ")}.`)};if(n.refusal!==void 0)return{id:"",ack:D(n.refusal)};const s=n.call==="object.camera_add"?q():vr(n);return{id:"",ack:(async()=>{const{made:g,error:x}=await be(s);return x!==null?D(x):g.length===0?D(`Blender ran ${s} 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 G(g),{destination:`Blender — ${s}; the session saves the .blend`,persisted:!0})})()}},remove:a=>k.removeMany?.([a])??void 0,removeMany:async a=>{const n=[];for(const C of a){const I=U(C);if(I===null){const K=p(C)===null?void 0:y().get(p(C));return D(`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.`)}n.push(I)}if(n.length===0)return D("Nothing selected to delete.");const g=[`targets = ${`[bpy.data.objects[n] for n in [${n.map(le).join(", ")}]]`}`,"with bpy.context.temp_override(selected_objects=targets, active_object=targets[0]):"," result = bpy.ops.object.delete(use_global=False)",'if "FINISHED" not in result: raise RuntimeError("Blender cancelled deleting the selected objects")'].join(`
|
|
7
|
+
`),{error:x}=await be(g,"Delete Objects");return x!==null?D(x):(_.set([]),await we([]),{destination:"Blender — bpy.ops.object.delete(use_global=False); the session saves the .blend",persisted:!0})},duplicate:a=>{const n=U(a);if(n===null)return{id:a,ack:D("Only an object can be duplicated here. Duplicating a collection is `bpy.ops.object.collection_instance_add`, its own gesture.")};const s=[`source = bpy.data.objects[${le(n)}]`,"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:a,ack:(async()=>{const{made:g,error:x}=await be(s,"Duplicate Object");return x!==null?D(x):(await G(g),{destination:`Blender — bpy.ops.object.duplicate(linked=False) on ${n}; the session saves the .blend`,persisted:!0})})()}},duplicateMany:async a=>{const n=[...new Set(a.map(U))];if(n.length===0||n.some(C=>C===null))return D("Select objects to duplicate; collections and data rows cannot be duplicated here.");const s=[`sources = [bpy.data.objects[name] for name in ${JSON.stringify(n)}]`,"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:g,error:x}=await be(s,"Duplicate Objects");return x!==null?D(x):(await G(g),{destination:"Blender — duplicate selected objects as one native operation; the session saves the .blend",persisted:!0})},reparent:()=>D("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 e.documentId},get documentRootObject(){return e.documentRootObject},capabilities:mr,provenance:Er,hierarchy:w,selection:_,inspector:W,transforms:N,structure:k,subscribe:a=>{t.add(a);const n=_e(a),s=e.subscribe?.(a)??(()=>{});return()=>{t.delete(a),n(),s()}}},l={get documentId(){return L.documentId},selectedObjectNames:()=>P(),allObjectNames:()=>{const a=[];for(const n of y().values())ne(n)&&a.push(n.object);return a},selectObjects:a=>{const n=a.map(A).filter(s=>s!==null);_.set(n)},rowIdForObject:a=>A(a),structure:k,subscribe:a=>{t.add(a);const n=_e(a);return()=>{t.delete(a),n()}}};ke.add(l);let h=!1;const E=setTimeout(()=>{h||(nt(),d())},0),M=qt(d),R=_e(d);return{adapter:L,dispose:()=>{h=!0,clearTimeout(E),M(),R(),ke.delete(l),nt(),t.clear()}}}}const Or=wt(Qt);Ct({match:({adapter:r})=>et(null,r)!==null,describe:({adapter:r})=>{const e=et(null,r);if(e===null)return null;const t=e.kind==="object"?[...me().byId.values()].find(c=>c.struct==="Object"&&c.object===e.name):void 0,o=ar().context?.scene,u=o?sr(o):void 0,i=e.kind==="object"?e.name:(u?.kind==="struct"?u.name:null)??"Scene";return{id:`blender-properties:${JSON.stringify(e)}`,title:i,identity:{kindLabel:e.kind==="object"?"Object":"Scene",kind:jt(t?.icon??"SCENE_DATA"),rename:{readOnly:e.kind!=="object",set:async c=>{e.kind==="object"&&c.length>0&&await lr(`bpy.data.objects[${JSON.stringify(e.name)}]`,"name",c)}}},sections:[]}}});function vt(r){const e=Number.isFinite(r)&&r>0?r:50;return{degrees:2*Math.atan(72/(2*e))*180/Math.PI,axis:"larger"}}Ot("model",{camera:{fov:vt(50),opening:[.8187,.4458,.3617]},interaction:{bootTool:"select",boxSelect:"touch"},all:{lighting:{source:"studio",studioPreset:bt.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 Le="volter.blender.area-split:",Ie=new Set,Be=new Map;function Ar(r){try{return globalThis.localStorage?.getItem(Le+r)==="1"}catch{return!1}}function Ve(r){let e=Be.get(r);return e===void 0&&(e=Ar(r),Be.set(r,e)),e}function st(r,e){if(Ve(r)!==e){Be.set(r,e);try{e?globalThis.localStorage?.setItem(Le+r,"1"):globalThis.localStorage?.removeItem(Le+r)}catch{}for(const t of[...Ie])t()}}function St(r){return Ie.add(r),()=>{Ie.delete(r)}}const Mr=[{label:"Location",call:"location=True, rotation=False, scale=False"},{label:"Rotation",call:"location=False, rotation=True, scale=False"},{label:"Scale",call:"location=False, rotation=False, scale=True"},{label:"All Transforms",call:"location=True, rotation=True, scale=True"}],Rr=[{label:"Location",call:"bpy.ops.object.location_clear(clear_delta=False)"},{label:"Rotation",call:"bpy.ops.object.rotation_clear(clear_delta=False)"},{label:"Scale",call:"bpy.ops.object.scale_clear(clear_delta=False)"}],$r=[{label:"Geometry to Origin",type:"GEOMETRY_ORIGIN"},{label:"Origin to Geometry",type:"ORIGIN_GEOMETRY"},{label:"Origin to 3D Cursor",type:"ORIGIN_CURSOR"}],Fr=[{submenu:"Mesh",at:"2699"},{submenu:"Curve",at:"2702"},{submenu:"Surface",at:"2704"},{submenu:"Metaball",at:"2705"},{kind:"text",at:"2706"},{kind:"point-cloud",at:"2707"},{submenu:"Volume",at:"2708"},{submenu:"Grease Pencil",at:"2709"},{separatorAt:"2711"},{kind:"armature",at:"2716"},{submenu:"Lattice",at:"2718"},{separatorAt:"2720"},{submenu:"Empty",at:"2722"},{submenu:"Image",at:"2723"},{separatorAt:"2725"},{submenu:"Light",at:"2727"},{submenu:"Light Probe",at:"2728"},{separatorAt:"2730"},{kind:"camera",at:"2735"},{separatorAt:"2737"},{kind:"speaker",at:"2739"},{separatorAt:"2741"},{submenu:"Force Field",at:"2743"},{separatorAt:"2745"},{submenu:"Collection Instance",at:"2759"}],Pr="No Collections to Instance";function je({id:r,open:e,setOpen:t,anchorRef:o,children:u}){return f.jsxs("div",{ref:o,style:{position:"relative"},children:[f.jsx(Mt,{"data-testid":`blender-menu-${r}`,"aria-expanded":e===r,onClick:()=>t(e===r?null:r),onPointerEnter:()=>{e&&t(r)},style:{textTransform:"capitalize"},children:r}),e===r&&f.jsx(Rt,{anchorRef:o,dismissBoundaryRef:o,align:"start",gap:0,clamp:!0,"aria-label":r,onDismiss:()=>t(null),children:u})]})}function Tr(r,e,t){(async()=>{const o=await t;o===void 0||typeof o.destination!="string"||o.persisted!==!0&&r?.({tone:"error",title:`${e} was refused`,detail:o.destination})})()}function xt({documentId:r,notify:e}){m.useSyncExternalStore(_e,Te,Te),m.useSyncExternalStore(hr,ot,ot);const[t,o]=m.useState(null),u=m.useRef(null),i=m.useRef(null),c=m.useRef(null),j=m.useRef(null),S=m.useRef(null),y=m.useSyncExternalStore(St,()=>r===void 0?!1:Ve(r),()=>!1),O=gr(r);if(O===null)return null;const F=(d,_)=>()=>{o(null),Tr(e,d,_(O))},A=O.selectedObjectNames(),p=O.allObjectNames(),b=A.length===0?"Nothing is selected.":void 0,v=ve(),w=d=>f.jsx(X,{"data-testid":`blender-add-${d.kind}`,disabled:d.refusal!==void 0,title:d.refusal,onSelect:F(`Add ${d.label}`,_=>_.structure.create(d.kind).ack),children:d.label},d.kind),P=d=>v.filter(_=>_.group===d).flatMap(_=>_.separatorBefore===!0?[f.jsx(he,{},`${_.kind}-separator`),w(_)]:[w(_)]),V=d=>{if("separatorAt"in d)return f.jsx(he,{},`separator-${d.separatorAt}`);if("kind"in d){const $=v.find(W=>W.kind===d.kind);return $===void 0?null:w($)}const _=P(d.submenu);return _.length===0?f.jsx(X,{"data-testid":"blender-add-collection-instance",disabled:!0,children:Pr},d.submenu):f.jsx(pe,{label:d.submenu,"data-testid":`blender-add-${d.submenu.toLowerCase().replaceAll(" ","-")}`,children:_},d.submenu)};return f.jsxs(At,{compact:!0,label:"Blender Object Mode menus","data-testid":"blender-object-mode-menus",ref:u,children:[f.jsx(je,{id:"view",open:t,setOpen:o,anchorRef:i,children:f.jsxs(pe,{label:"Area","data-testid":"blender-view-area",children:[f.jsx(X,{"data-testid":"blender-area-vertical-split",disabled:y||r===void 0,title:y?"This area is already split.":void 0,onSelect:()=>{o(null),r!==void 0&&st(r,!0)},children:"Vertical Split"}),f.jsx(he,{}),f.jsx(X,{"data-testid":"blender-area-close",disabled:!y,title:y?void 0:"There is no second area to close.",onSelect:()=>{o(null),r!==void 0&&st(r,!1)},children:"Close Area"})]})}),f.jsxs(je,{id:"select",open:t,setOpen:o,anchorRef:c,children:[f.jsx(X,{"data-testid":"blender-select-all",onSelect:F("Select All",d=>d.selectObjects(p)),children:"All"}),f.jsx(X,{"data-testid":"blender-select-none",onSelect:F("Select None",d=>d.selectObjects([])),children:"None"}),f.jsx(X,{"data-testid":"blender-select-invert",onSelect:F("Select Invert",d=>d.selectObjects(p.filter(_=>!A.includes(_)))),children:"Invert"})]}),f.jsx(je,{id:"add",open:t,setOpen:o,anchorRef:j,children:Fr.map(d=>V(d))}),f.jsxs(je,{id:"object",open:t,setOpen:o,anchorRef:S,children:[f.jsx(pe,{label:"Set Origin","data-testid":"blender-object-origin",children:$r.map(d=>f.jsx(X,{"data-testid":`blender-origin-${d.type}`,disabled:d.refusal!==void 0||A.length===0,title:d.refusal??b,onSelect:F(`Set Origin ▸ ${d.label}`,_=>Re(_.selectedObjectNames(),`bpy.ops.object.origin_set(type='${d.type}')`)),children:d.label},d.type))}),f.jsx(pe,{label:"Clear","data-testid":"blender-object-clear",children:Rr.map(d=>f.jsx(X,{"data-testid":`blender-clear-${d.label.toLowerCase()}`,disabled:A.length===0,title:b,onSelect:F(`Clear ▸ ${d.label}`,_=>Re(_.selectedObjectNames(),d.call)),children:d.label},d.label))}),f.jsx(pe,{label:"Apply","data-testid":"blender-object-apply",children:Mr.map(d=>f.jsx(X,{"data-testid":`blender-apply-${d.label.toLowerCase().replace(/ /g,"-")}`,disabled:A.length===0,title:b,onSelect:F(`Apply ▸ ${d.label}`,_=>Re(_.selectedObjectNames(),`bpy.ops.object.transform_apply(${d.call})`)),children:d.label},d.label))}),f.jsx(he,{}),f.jsx(X,{"data-testid":"blender-object-duplicate",disabled:A.length===0,title:b,onSelect:F("Duplicate Objects",async d=>{const _=d.selectedObjectNames().map($=>d.rowIdForObject($)).filter($=>$!==null);return d.structure.duplicateMany?.(_)}),children:"Duplicate Objects"}),f.jsx(X,{"data-testid":"blender-object-delete",disabled:A.length===0,title:b,onSelect:F("Delete",d=>{const _=d.selectedObjectNames().map($=>d.rowIdForObject($)).filter($=>$!==null);return d.structure.removeMany?.(_)}),children:"Delete"})]})]})}const lt={x:new Y(1,0,0),y:new Y(0,1,0),z:new Y(0,0,1),"-x":new Y(-1,0,0),"-y":new Y(0,-1,0),"-z":new Y(0,0,-1)};class Nr{constructor(e,t,o){this.root=e,this.bones=t,this.clipFor=o,this.#t=new dr(e),e.updateWorldMatrix(!0,!0);const u=e.getWorldQuaternion(new de),i=new Y(0,-1,0).applyQuaternion(u);for(const[c,j]of t){const S=j.getWorldQuaternion(new de);this.#a.set(c,i.clone().applyQuaternion(S.invert()).normalize())}this.#e.set("base",{name:"base",from:null,bones:null,entries:new Map})}#t;#e=new Map;#o=new Map;#r=new Map;#a=new Map;set(e,t={}){const o=this.#s(t);if(typeof o=="string")return o;const u=o.entries.get(e);return u&&t.restart&&u.action?.reset(),this.#n(o,{[e]:1},t.fade??.2,t),null}blend(e,t={}){const o=this.#s(t);return typeof o=="string"?o:(this.#n(o,e,t.fade??0,t),null)}stop(e={}){const t=this.#e.get(e.layer??"base");t&&this.#n(t,{},e.fade??.2,e)}playing(e="base"){let t=null;for(const o of this.#e.get(e)?.entries.values()??[])o.target>0&&(!t||o.target>t.target)&&(t=o);return t?.name??null}lookAt(e,t,o={}){if(t===null)return this.#r.delete(e),null;const u=this.bones.get(e);return u?(this.#r.set(e,{bone:u,target:t,options:{...o,axis:o.axis??"forward"}}),null):`no bone "${e}"`}update(e){for(const t of this.#e.values())for(const[o,u]of[...t.entries])u.action||(u.action=this.#i(t,o,u)),u.weight=u.rate<=0?u.target:u.weight<u.target?Math.min(u.target,u.weight+e*u.rate):Math.max(u.target,u.weight-e*u.rate),u.action&&u.action.setEffectiveWeight(u.weight),u.weight===0&&u.target===0&&(u.action?.stop(),t.entries.delete(o));this.#t.update(e);for(const t of this.#r.values())this.#d(t.bone,t.target,t.options)}dispose(){this.#t.stopAllAction(),this.#r.clear()}#s(e){const t=e.layer??"base";if(t==="base")return this.#e.get("base");let o=this.#e.get(t);if(!o||e.from!==void 0&&e.from!==o.from){if(!e.from)return`layer "${t}" needs the bone it plays from (\`from\`)`;const u=this.bones.get(e.from);if(!u)return`no bone "${e.from}" for layer "${t}"`;const i=new Set;if(u.traverse(c=>{c.isBone&&i.add(c.uuid)}),o)for(const c of o.entries.values())c.action?.stop();o={name:t,from:e.from,bones:i,entries:o?.entries??new Map};for(const c of o.entries.values())c.action=null;this.#e.set(t,o);for(const c of this.#e.get("base").entries.values())c.action?.stop(),c.action=null}return o}#n(e,t,o,u){const i=o>0?1/o:0;for(const c of e.entries.values())c.target=0,c.rate=i;for(const[c,j]of Object.entries(t)){const S=Math.max(0,Math.min(1,j)),y=e.entries.get(c)??{name:c,action:null,weight:0,target:0,rate:i,loop:!0,speed:1};y.target=S,y.rate=i,y.loop=u.loop??y.loop,y.speed=u.speed??y.speed,y.action&&this.#l(y.action,y),e.entries.set(c,y)}}#i(e,t,o){const u=this.clipFor(t);if(!u)return null;const i=e.bones??this.#c(),c=`${t}\0${e.name}\0${i.size}`;let j=this.#o.get(c);if(!j){const y=u.tracks.filter(O=>i.has(O.name.slice(0,O.name.indexOf("."))));j=new yt(`${t}@${e.name}`,u.duration,y),this.#o.set(c,j)}const S=this.#t.clipAction(j);return this.#l(S,o),S.setEffectiveWeight(o.weight),S.play(),S}#l(e,t){e.setLoop(t.loop?ur:pr,Number.POSITIVE_INFINITY),e.clampWhenFinished=!t.loop,e.setEffectiveTimeScale(t.speed)}#c(){const e=new Set;for(const o of this.#e.values())for(const u of o.bones??[])e.add(u);const t=new Set;for(const o of this.bones.values())e.has(o.uuid)||t.add(o.uuid);return t}#d(e,t,o){const u=Math.max(0,Math.min(1,o.weight??1));if(u===0)return;e.updateWorldMatrix(!0,!1);const i=t.isVector3?new Y().copy(t):t.getWorldPosition(new Y),c=new Y,j=new de;e.matrixWorld.decompose(c,j,new Y);const S=i.sub(c);if(S.lengthSq()<1e-10)return;S.normalize();const y=o.axis??"forward",F=(y==="forward"?this.#a.get(e.name)??lt.y:lt[y]).clone().applyQuaternion(j).normalize(),A=new de().setFromUnitVectors(F,S),p=fr.degToRad(o.limit??75),b=2*Math.acos(Math.min(1,Math.abs(A.w))),v=b>p?p/b*u:u,P=new de().slerp(A,v).multiply(j),V=new de;e.parent?.getWorldQuaternion(V),e.quaternion.copy(V.invert().multiply(P)),e.updateMatrixWorld(!0)}}function Lr(r,e){const t=[],o=r.animationFacts(),u=Object.keys(o.actions),i=new Map;let c=!1;const j=(p,b,v)=>{p.failed.set(b,v),t.push(`${p.rig.armature} / ${b}: ${v}`)},S=(p,b)=>{const v=p.clips.get(b);return v||c||p.failed.has(b)||p.baking.has(b)?v??null:(p.baking.add(b),e(p.rig.armature,b).then(w=>{p.baking.delete(b);const P=w&&w.clipStart!==void 0&&w.clipEnd!==void 0?ir(w,p.rig.bones,t):[];if(!w||!P.length){j(p,b,w?.reason??`it animates none of ${p.rig.armature}'s bones`);return}const V=w.duration??(w.clipEnd-w.clipStart)/w.fps;p.clips.set(b,new yt(b,V,P))},w=>{p.baking.delete(b),j(p,b,`it could not be read: ${w instanceof Error?w.message:String(w)}`)}),null)};for(const p of r.skeletons.rigs()){const b={rig:p,clips:new Map,baking:new Set,failed:new Map,mixer:new Nr(p.object,p.bones,v=>S(b,v))};i.set(p.armature,b)}for(const p of i.values()){const b=o.armatures[p.rig.armature]?.action;b&&p.mixer.set(b,{fade:0})}const y=p=>{for(const v of i.values())if(v.rig.object===p)return v;const b=p.geometry?.userData.blenderSkin;return b?i.get(b.armature)??null:null},O=p=>{for(let v=p;v;v=v.parent){const w=y(v);if(w)return w}let b=null;return p.traverse(v=>{b||(b=y(v))}),b},F=(p,b)=>{const v=O(p);if(!v)return{why:`${p.name||"this object"} has no armature`};for(const w of b){if(!(w in o.actions))return{why:`the file has no action "${w}"`};const P=v.failed.get(w);if(P)return{why:P}}return v},A=(p,b)=>b?{ok:!1,why:b}:{ok:!0,armature:p.rig.armature};return{warnings:t,clips:p=>O(p)?u:[],play(p,b,v={}){const w=F(p,[b]);return"why"in w?{ok:!1,why:w.why}:A(w,w.mixer.set(b,v))},blend(p,b,v={}){const w=F(p,Object.keys(b));return"why"in w?{ok:!1,why:w.why}:A(w,w.mixer.blend(b,v))},stop(p,b=.2,v){O(p)?.mixer.stop({fade:b,...v?{layer:v}:{}})},playing:(p,b)=>O(p)?.mixer.playing(b)??null,lookAt(p,b,v,w={}){const P=O(p);return P?A(P,P.mixer.lookAt(b,v,w)):{ok:!1,why:`${p.name||"this object"} has no armature`}},update(p){for(const b of i.values())b.mixer.update(p)},dispose(){c=!0;for(const p of i.values())p.mixer.dispose()}}}function Ee(r){return/file format is not supported|not a blend file/i.test(r)?"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(r)?"Blender could not access the model file. Check its file permissions, then try again.":/ENOENT|no such file|file not found/i.test(r)?"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(r)?"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 it({documentId:r,path:e,error:t,preview:o,retry:u,returnToPreview:i,preparingView:c=!1,note:j=null}){const S=t?"Could not open model":c?"Preparing model view":"Opening model",y=m.useMemo(()=>{const O={id:`opening:${r}`,label:S,secondaryLabel:e,role:"boundary",kind:"object",parentId:null,childIds:[]};return{capabilities:{transform:!1,inspectorFields:!1,persist:!1},hierarchy:{roots:()=>[O],node:F=>F===O.id?O:null},subscribe:()=>()=>{}}},[r,e,S]);return f.jsxs("div",{"data-testid":"blender-model-opening","aria-busy":!t,style:{position:"absolute",inset:0,overflow:"auto",background:H.surface.panel,color:H.content.primary},children:[!c&&f.jsx($t,{documentId:r,type:"Model",title:e,status:t?Ee(t):S,selection:()=>({adapter:y,nodeId:null})},S),o&&f.jsx("img",{src:o.image,alt:`Last view of ${o.path}`,draggable:!1,style:{position:"absolute",inset:0,width:"100%",height:"100%",objectFit:"contain",pointerEvents:"none"}}),f.jsxs("div",{style:{position:"relative",minHeight:"100%",display:"flex",flexDirection:"column",justifyContent:o?"flex-end":"center",alignItems:o?"flex-start":"center",boxSizing:"border-box",padding:Z[8],gap:Z[4]},children:[o&&f.jsxs("div",{style:{padding:`${Z[2]} ${Z[4]}`,background:H.surface.chrome,border:`1px solid ${H.boundary.default}`,borderRadius:H.shape.small,maxWidth:"100%",overflowWrap:"anywhere"},children:["Previous model: ",o.path," · Preview only"]}),f.jsx(Ft,{tone:t?"error":"loading",style:{width:"min(100%, 32rem)",background:H.surface.chrome,border:`1px solid ${H.boundary.default}`,borderRadius:H.shape.small,overflowWrap:"anywhere"},title:f.jsx("span",{style:{fontSize:Pe.lg},children:S}),description:f.jsxs(f.Fragment,{children:[f.jsx("div",{style:{color:H.content.primary,marginBottom:Z[3]},children:e}),t?Ee(t):c?"The file is open. Preparing its viewport.":o?"The previous model stays visible while this file opens.":"Preparing Blender and opening this file. The model will appear here when it is ready.",!t&&j&&f.jsx("div",{"data-testid":"blender-model-opening-note",style:{marginTop:Z[3],color:H.content.muted,userSelect:"text"},children:j}),t&&f.jsx("div",{"data-testid":"blender-model-opening-detail",style:{marginTop:Z[3],fontFamily:Pt,fontSize:Pe.sm,color:H.content.muted,whiteSpace:"pre-wrap",userSelect:"text",textAlign:"left"},children:t})]}),action:t?f.jsxs("div",{style:{display:"flex",flexWrap:"wrap",justifyContent:"center",gap:Z[3]},children:[o&&f.jsx(We,{onClick:i,children:"Return to previous model"}),f.jsx(We,{variant:"secondary",onClick:u,children:"Retry opening"})]}):f.jsx("progress",{"aria-label":`Opening ${e}`,style:{width:"min(100%, 18rem)",accentColor:H.accent.default}})})]})]})}let ae=null;const De=new Set;let $e=!1;function kt(){$e||($e=!0,queueMicrotask(()=>{$e=!1;for(const r of[...De])r()}))}function ct(r){ae?.project===r.project&&ae.capturedAt>r.capturedAt||ae!==r&&(ae=r,kt())}function Ir(){ae&&(ae=null,kt())}function Br(r){return ae?.project===r?ae:null}function Dr(r){return De.add(r),()=>{De.delete(r)}}const dt="blender-model-open",Vr=3e4,ut=new WeakMap;let Wr=0;function Gr(r){let e=ut.get(r);return e===void 0&&(e=++Wr,ut.set(r,e)),e}const pt=new WeakSet,nn="workspace.document",on="Blender Model",an=({documentId:r,notify:e})=>f.jsx(xt,{documentId:r,notify:e}),zr="model",sn="owned",ln=[],ee=Yt,qr={wireframe:"WIREFRAME",solid:"SOLID",preview:"MATERIAL",rendered:"RENDERED"},ft=new WeakMap;function Hr(r){let e=ft.get(r);return e||(e={subject:()=>{const t=fe.playhead();return r.subjectLine(t===null?null:Math.floor(t))},gridScale:t=>r.gridUnitName(t),cameraView:{camera:()=>r.cameraViewCamera(),zoom:r.cameraViewZoom,pan:r.cameraViewPan,showing:t=>r.setCameraViewShowing(t),setPose:(t,o,u,i)=>{const{location:c,rotation:j}=r.blenderPose(o,u);return Ce(`from mathutils import Matrix, Quaternion, Vector
|
|
10
|
+
import bpy
|
|
11
|
+
object = bpy.data.objects[${JSON.stringify(t)}]
|
|
12
|
+
object.matrix_world = Matrix.LocRotScale(Vector((${c.join(", ")})), Quaternion((${j.join(", ")})), object.matrix_world.to_scale())`,i,"Lock Camera to View").then(S=>{S.error!==null&&z().console.error(`Blender refused the camera's pose: ${S.error}`,"blender-camera")},S=>z().console.error(`The camera's pose was not written to Blender: ${String(S)}`,"blender-camera"))},view:(t,o,u,i)=>r.cameraView(t,o,u,i)}},ft.set(r,e),e)}function cn(r){const{active:e,document:t,documentId:o,notify:u,publishContext:i}=r,c=t?.source?.path,j=t?.id,S=JSON.stringify([o,j,c]),[y,O]=m.useState(null),[F,A]=m.useState(null),[p,b]=m.useState(0),v=z().projectLocalState.projectRootPath(),w=m.useSyncExternalStore(Dr,()=>Br(v),()=>null),P=m.useSyncExternalStore(mt,Se,Se),V=m.useRef(null),d=m.useRef({notify:u,publishContext:i});return d.current={notify:u,publishContext:i},m.useEffect(()=>z().session.onEnded(Ir),[]),m.useEffect(()=>{if(e===!1||!o||!j||!v||y?.key!==S||y.error)return;const _=xe(o);if(!_)return;let $=!1,W;const N=async()=>{try{const U=ee.snapshot(),D=se(o);if(!D||_.root!==ee.root||!Je(o,j,c,U))return;const G=await _.requestPresentedFrame();if($||ee.snapshot()!==U||xe(o)!==_||_.root!==ee.root||se(o)!==D||!Je(o,j,c,U))return;if(G&&G.width>0&&G.height>0){const q=window.document.createElement("canvas");q.width=Math.min(G.width,1024),q.height=Math.max(1,Math.round(q.width*G.height/G.width));const k=q.getContext("2d");k&&(k.drawImage(G,0,0,q.width,q.height),V.current={project:v,entryId:j,path:c??"Model",image:q.toDataURL("image/png"),capturedAt:performance.now()},ct(V.current))}}catch{}finally{$||(W=setTimeout(()=>{N()},1e3))}};return N(),()=>{$=!0,clearTimeout(W)}},[e,c,o,j,v,S,y,P]),m.useLayoutEffect(()=>{if(!(e===!1||!o||!j||!v||y?.key!==S||y.error))return()=>{if(!z().session.open())return;const _=V.current;_?.project===v&&_.entryId===j&&ct(_)}},[e,c,o,j,v,S,y]),m.useEffect(()=>{if(e===!1||!o)return;let _=!1,$;const W=c===void 0?null:{documentId:o,entryId:j,blend:c},N=Xt(W),U=()=>{$=d.current.publishContext?.(ee)};O(null),A(null);const D=z().documents;let G=!1,q=!1,k=!1;const L=c??"the model",l=async()=>{if(!(_||G||q)){if(W&&!Zt(W)){k=!0;return}G=!0,k=!1;try{if(W){if(!await er(W,U)){k=!0;return}}else U();_||(q=!0,Lt(dt),O({key:S,error:null}))}catch(a){if(_)return;q=!0,$?.(),$=void 0;const n=a instanceof Error?a.message:String(a);O({key:S,error:n}),z().console.error(n,"blender-open"),d.current.notify?.({tone:"error",title:`Blender could not open ${L}`,detail:Ee(n)}),It(dt,{message:`Blender could not open ${L}: ${n}`,guidance:`${Ee(n)} Dismiss this to reach the model's Retry.`,command:null})}finally{G=!1}}},h=setInterval(()=>{_||q||A(k?`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). ${Tt("status")} shows what it is busy with.`)},Vr);let E=!1;const M=()=>{_||E||(E=!0,setTimeout(()=>{E=!1,l()},0))},R=D.subscribe(M);return M(),()=>{_=!0,clearInterval(h),R(),$?.(),N()}},[e,c,o,j,S,p]),e===!1||!o?null:y?.key!==S||y.error?f.jsx(it,{documentId:o,path:c??"Model",error:y?.key===S?y.error:null,preview:w,note:F,retry:()=>{O(null),b(_=>_+1)},returnToPreview:()=>{w&&z().workspace.open({kind:"document",id:w.entryId}).then(_=>{if(!_)throw new Error("The previous model is no longer available in this project.")}).catch(_=>d.current.notify?.({tone:"error",title:"Could not return to the previous model",detail:String(_)}))}}):f.jsxs(f.Fragment,{children:[f.jsx(Ur,{...r}),!se(o)&&f.jsx(it,{documentId:o,path:c??"Model",error:null,preparingView:!0,preview:w,retry:()=>{},returnToPreview:()=>{}})]})}function Ur(r){const{documentId:e}=r,t=r.document?.source?.path;m.useEffect(()=>e?cr(e,t):void 0,[e,t]),m.useEffect(()=>{if(!e)return;let k=!1,L=0,l=null;const h=[e,`${e}#area-2`,`${e}#play`],E=()=>{for(const s of h)xe(s)?.setDisplayTransform(l?.transform??null)},M=async()=>{const s=++L,g=await tr();if(!g)return;const[x,C]=await Promise.all([Ye(`${g.scene}.view_settings`),Ye(`${g.scene}.display_settings`)]);if(k||s!==L||x?.kind!=="struct"||x.type!=="ColorManagedViewSettings")return;if(C?.kind==="struct"){const Q=C.groups.flatMap(Oe=>Oe.rows).find(Oe=>Oe.identifier==="display_device")?.value;if(typeof Q=="string"&&Q!=="sRGB")throw new Error(`Blender display device ${Q} has no browser display processor yet`)}const I=x.groups.flatMap(Q=>Q.rows),K=I.find(Q=>Q.identifier==="view_transform")?.value,B=I.find(Q=>Q.identifier==="exposure")?.value,T=I.find(Q=>Q.identifier==="look")?.value,J=I.find(Q=>Q.identifier==="gamma")?.value,re=typeof B=="number"?2**B:1,ie={transform:typeof K=="string"?K:"AgX",look:typeof T=="string"?T:"None",exposure:re,gamma:typeof J=="number"?J:1},ue=JSON.stringify(ie);if(l?.key===ue)return;const ce=await rr(ie);if(k||s!==L){ce.dispose();return}const Et=l;l={key:ue,transform:ce},E(),Et?.transform.dispose();for(const Q of h)Ae(Q,{modes:{rendered:{lighting:{tone:{mapper:"none",exposure:1}}},preview:{lighting:{tone:{mapper:"none",exposure:1}}}}})},R=()=>{M().catch(s=>z().console.error(String(s),"blender-colour"))},a=ht(R),n=gt(E);return R(),()=>{k=!0,a(),n();const s=l;l=null,E(),s?.transform.dispose()}},[e]);const o=m.useSyncExternalStore(St,()=>e?Ve(e):!1,()=>!1),[u,i]=m.useState(null);m.useEffect(()=>{if(!o||!e)return;const k=`${e}#area-2`;Nt(k).drawMode===void 0&&Ae(k,{drawMode:"rendered"});const L=ee.follow();return i(L),()=>{i(null),L.dispose()}},[o,e]);const c=m.useSyncExternalStore(Me,()=>e?te("model")?.playing(e)??!1:!1,()=>!1),[j,S]=m.useState(null),y=m.useSyncExternalStore(Me,()=>e?te("model")?.aspectRatio?.(e)??null:null,()=>null),[O,F]=m.useState(!1),A=m.useSyncExternalStore(Me,()=>e?te("model")?.transport?.generation(e)??0:0,()=>0),[p,b]=m.useState(A),[v,w]=m.useState(null),P=m.useRef(!1),V=m.useRef(!1);m.useLayoutEffect(()=>{if(A!==p){if(c&&e){if(P.current=!0,!V.current){let k=null;try{k=se(`${e}#play`)?.capture?.()??null}catch{}w(k)}V.current=!0}b(A)}},[A,p,c,e]);const d=te("model")?.transport,_=m.useCallback(k=>d?.subscribeClock(k)??(()=>{}),[d]),$=m.useSyncExternalStore(_,()=>e&&d?d.clock(e).failure??null:null,()=>null);m.useEffect(()=>{$!==null&&(V.current=!1,w(null))},[$]);const W=m.useRef([]);m.useEffect(()=>{if(!c||!e){P.current=!1;return}const k=`${e}#play`;Ae(k,{drawMode:"rendered"});const L=ee.detach(),l=P.current;return P.current=!1,l||F(!1),S(L),l||(ee.setPlaying(!0),Ge(e)),()=>{if(P.current&&te("model")?.playing(e)){W.current.push(L);return}L.dispose();for(const h of W.current.splice(0))h.dispose();V.current=!1,S(null),w(null),ee.setPlaying(!1),Ge(e)}},[c,e,p]),m.useEffect(()=>{for(const k of W.current.filter(L=>L!==j))k.dispose();W.current=W.current.filter(k=>k===j)},[j]),m.useEffect(()=>()=>{for(const k of W.current.splice(0))k.dispose()},[]),m.useEffect(()=>{if(e)return()=>te("model")?.setPlaying(e,!1)},[e]);const N=c?j:null,U=y===null?{position:"absolute",inset:0}:{position:"absolute",left:"50%",top:"50%",transform:"translate(-50%, -50%)",width:`min(100cqw, calc(100cqh * ${y}))`,height:`min(100cqh, calc(100cqw / ${y}))`};if(m.useEffect(()=>{if(!N||!e)return;const k=se(e);if(!k)return;const L=k.capture,l=h=>se(`${e}#play`)?.capture?.(h)??null;return k.capture=l,()=>{k.capture===l&&(L?k.capture=L:delete k.capture)}},[N,e]),!e)return null;const D=o?u:null,G={position:"relative",flex:"1 1 0",minWidth:0,margin:12},q=N!==null&&O;return f.jsxs("div",{style:N||D?{position:"absolute",inset:-12,display:"flex",gap:2}:{display:"contents"},children:[f.jsx("div",{inert:q||void 0,style:N?{position:"absolute",inset:12,zIndex:2,opacity:O?0:1,pointerEvents:O?"none":"auto",transition:"opacity 160ms ease-out"}:D?G:{display:"contents"},children:f.jsx(Fe,{...r,view:ee,main:!0})},"model"),N&&f.jsx("div",{style:{position:"absolute",inset:12,containerType:"size"},"data-testid":"blender-play-area",children:f.jsx("div",{"data-volter-play-frame":!0,style:U,children:f.jsx(Fe,{...r,documentId:`${e}#play`,view:N.view,main:!1,playing:!0,onPlayReady:()=>{V.current=!1,F(!0),w(null)},onPlayReturn:()=>F(!1)})})},`play-${Gr(N)}`),N&&$!==null&&f.jsxs("div",{role:"alert","data-testid":"blender-play-failure",style:{position:"absolute",left:24,right:24,top:24,zIndex:4,padding:`${Z[2]} ${Z[3]}`,background:H.surface.chrome,border:`1px solid ${H.semantic.danger}`,borderRadius:H.shape.small,color:H.content.primary,fontSize:Pe.sm,whiteSpace:"pre-wrap",overflowWrap:"anywhere",userSelect:"text"},children:[f.jsx("strong",{style:{color:H.semantic.danger},children:"Play is not running."})," ",$," Restart (or save the script) to try again, or Stop."]},"play-failure"),N&&v!==null&&f.jsx("div",{style:{position:"absolute",inset:12,containerType:"size",zIndex:3,pointerEvents:"none"},"data-testid":"blender-play-restart-still",children:f.jsx("img",{alt:"",src:v,style:{...U,display:"block",objectFit:"fill"}})},"restart-still"),D&&f.jsxs("div",{style:{...G,visibility:N?"hidden":void 0},"aria-hidden":N?!0:void 0,"data-testid":"blender-second-area",children:[f.jsx(Fe,{...r,documentId:`${e}#area-2`,view:D.view,main:!1}),!N&&f.jsx(Kr,{documentId:e,areaId:`${e}#area-2`,notify:r.notify})]},"second")]})}function Kr({documentId:r,areaId:e,notify:t}){m.useSyncExternalStore(mt,Se,Se);const o=m.useSyncExternalStore(Dt,()=>Vt(r)),u=se(e)?.HeaderControls,i=m.useRef(null);return m.useEffect(()=>{const c=i.current,j=c?.parentElement;if(!j)return;const S=()=>qe(r,{headerWidth:j.getBoundingClientRect().width+12,shelf:c});S();const y=new ResizeObserver(S);return y.observe(j),()=>{y.disconnect(),qe(r,null)}},[r]),f.jsxs(f.Fragment,{children:[f.jsx("div",{ref:i,className:"volter-dock-document-shelf",role:"toolbar","aria-orientation":"vertical","aria-label":"Document tools"}),o&&Wt.createPortal(f.jsxs("div",{className:"volter-dock-document-toolbar-own","data-testid":`document-header:${e}`,style:{display:"flex",alignItems:"center"},children:[f.jsx(xt,{documentId:r,notify:t}),u&&f.jsx(m.Suspense,{fallback:null,children:f.jsx(u,{documentId:e})})]}),o)]})}function Fe({active:r,document:e,documentId:t,notify:o,surfaces:u,view:i,main:c,playing:j=!1,onPlayReady:S,onPlayReturn:y}){const O=Hr(i),F=m.useCallback(()=>({root:i.root,prepareDraw:(l,h)=>i.prepareDraw(l,h),...j?{}:{onChange(l){const h=i.onChange(l),E=fe.subscribe(l);return()=>{h(),E()}}},dispose(){}}),[i,j]),A=e?.source?.path,p=m.useCallback(l=>{const h=i.onChange(l),E=fe.subscribe(l);let M=null;const R=()=>{M?.(),M=oe().find(n=>n.documentId===t)?.onFrame(l)??null};R();const a=ge(R);return()=>{h(),E(),a(),M?.()}},[t,i]),b=m.useSyncExternalStore(p,O.subject),v=m.useMemo(()=>c?Or:wt(()=>i),[c,i]);m.useEffect(()=>{if(c||j||!t)return;let l=!1;const h=()=>{if(l)return;const R=xe(t);R===null||i.cameraViewCamera()===null||(l=R.toggleCameraView())};h();const E=gt(h),M=i.subscribeFrames(h);return()=>{E(),M()}},[c,j,t,i]);const w=m.useRef(o),P=m.useRef(null),[V,d]=m.useState(!1);w.current=o;const _=m.useRef(S);_.current=S;const $=m.useRef(y);$.current=y,m.useEffect(()=>{if(!j||!t)return;if(A===void 0){w.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=t.replace(/#play$/,""),h=window.document.createElement("div");Object.assign(h.style,{position:"absolute",inset:"0",pointerEvents:"none"}),h.dataset.testid="model-play-roots",P.current?.appendChild(h),d(!1);let E=!1,M=!1,R=null,a=null,n=null;const s=()=>{if(R||M||E)return;const B=oe().find(T=>T.documentId===t);!B||!i.root.parent||(M=!0,a=B.rig().orbit,a.enabled=!1,i.prepareRendered(B.rig().drawCamera(),"render").then(()=>{E||(n=Lr(i,(T,J)=>Xe({object:T,action:J})),R=te("model")?.run({...n?{animation:n}:{},documentId:l,container:h,ready:()=>{E||(d(!0),_.current?.())},returning:()=>{E||$.current?.()},sourcePath:A,root:i.root,camera:()=>B.rig().drawCamera(),editingCamera:()=>oe().find(T=>T.documentId===l)?.rig().drawCamera()??B.rig().drawCamera(),onFrame:T=>B.onFrame(T),ownMaterial:T=>nr(T),report:(T,J)=>{z().console.error(`${T}: ${J}`,"blender-play"),w.current?.({tone:"error",title:T,detail:J})}})??null)},T=>{if(E)return;const J=`The game's stage could not be prepared for a rendered draw: ${T instanceof Error?T.message:String(T)}`;z().console.error(J,"model-play");const re=te("model");re?.transport?.fail?re.transport.fail(l,A,J):(w.current?.({tone:"error",title:"Play could not start",detail:J}),re?.setPlaying(l,!1))}))};s();let g,x;const C=()=>{const B=oe().find(T=>T.documentId===t);B!==g&&(x?.(),g=B,x=B?.onFrame(s),s())};C();const I=ge(C),K=B=>{if(B.key==="Escape"&&Gt(B)){const T=te("model");T?.escape?T.escape(l):T?.setPlaying(l,!1)}};return window.addEventListener("keydown",K,!0),()=>{E=!0,I(),x?.(),window.removeEventListener("keydown",K,!0),R?.(),n?.dispose(),n=null,h.remove(),a&&(a.enabled=!0)}},[j,t,A,i]),m.useEffect(()=>!c||!t?void 0:ze(()=>{const h=i.savedView(),E=He(t).drawMode,M=qr[E];!h||M===void 0||h.drawMode===E||(i.noteSavedShading(M),or(M))}),[c,t,i]),m.useEffect(()=>{if(c||!t)return;const l=()=>{const h=zt(t);h===null||pt.has(h)||(pt.add(h),h.showHelpers&&h.toggleHelpers(),h.showGizmos&&h.toggleGizmos())};return l(),Bt(l)},[c,t]),m.useEffect(()=>{if(!t)return;const l=i.overlayGroups(),h=()=>{const M=oe().find(R=>R.documentId===t);if(M)for(const{kind:R,object:a}of l)M.setHelper(R,a)};h();const E=ge(h);return()=>{E();const M=oe().find(R=>R.documentId===t);for(const{kind:R}of l)M?.setHelper(R,null)}},[t,i]);const W=m.useSyncExternalStore(ht,Qe,Qe);m.useEffect(()=>{if(!t||!c)return;let l=!0;return fe.sync(i,{clip:h=>Xe({object:h})}).catch(h=>{l&&z().console.warn(`This file's action could not be read: ${h instanceof Error?h.message:String(h)}`,"blender-skin")}),()=>{l=!1}},[t,c,i,W]),m.useEffect(()=>{if(!t||!c)return;const{transport:l}=z();let h=null,E=!1,M=!1;const R=()=>{if(E||h)return;const s=l.for(t);s&&(h=fe.attachTo(s))},a=()=>{E||M||(M=!0,queueMicrotask(()=>{M=!1,R()}))};a();const n=l.subscribe(a);return()=>{E=!0,n();const s=h;h=null,s&&queueMicrotask(s)}},[t,c]),m.useEffect(()=>{if(!t)return;const l=()=>oe().find(g=>g.documentId===t);let h,E=null;const M=new br,R=()=>l()?.rig().drawCamera()??M,a=()=>{const g=l();g!==h&&(E?.(),E=g?g.onFrame(()=>i.refreshRendered()):null,h=g);const{lighting:x,drawMode:C}=He(t),I=C==="preview",K=I?{world:x.source==="scene",lights:x.preview.sceneLights}:void 0,B=x.source==="scene"||I&&x.preview.sceneLights;i.holdRendered(B&&g?R:null,K,j?"render":"viewport"),i.setWorkbench(x.source==="studio"&&x.studioPreset===bt.id)};a();const n=ze(a),s=ge(a);return()=>{n(),s(),E?.(),i.holdRendered(null),i.setWorkbench(!1)}},[t,i,j]);const N=m.useRef(null),U=l=>!j&&l.button===2&&l.shiftKey&&l.target instanceof HTMLCanvasElement,D=l=>{if(!U(l)){N.current=null;return}l.preventDefault(),l.stopPropagation(),N.current={id:l.pointerId,x:l.clientX,y:l.clientY},l.isTrusted&&l.target.setPointerCapture(l.pointerId)},G=()=>{N.current=null},q=l=>{const h=N.current;if(h===null||l.pointerId!==h.id||l.button!==2||(N.current=null,l.preventDefault(),l.stopPropagation(),Math.hypot(l.clientX-h.x,l.clientY-h.y)>3))return;const E=i.placeCursor(l.clientX,l.clientY,l.target);if(E===null)return;const[M,R,a]=E.location,[n,s,g,x]=E.rotation;Ce(`from mathutils import Matrix, Quaternion, Vector
|
|
13
|
+
bpy.context.scene.cursor.matrix = Matrix.LocRotScale(Vector((${M}, ${R}, ${a})), Quaternion((${n}, ${s}, ${g}, ${x})), None)`,!1,"Set 3D Cursor").then(C=>{C.error!==null&&z().console.error(`Blender refused the 3D cursor: ${C.error}`,"blender-cursor")},C=>z().console.error(`The 3D cursor was not written to Blender: ${String(C)}`,"blender-cursor"))},k=l=>{U(l)&&l.preventDefault()};if(!t)return null;const L=u.Object3DAuthoring;return f.jsx("div",{ref:P,"data-play-ready":j?V:void 0,style:j?{position:"absolute",inset:0}:{display:"contents"},onPointerDownCapture:D,onPointerUpCapture:q,onPointerCancelCapture:G,onLostPointerCaptureCapture:G,onContextMenuCapture:k,children:f.jsx(L,{active:r??!0,fillContainer:j,documentId:t,sourcePath:A??"blender:runtime",displayName:e?.label??"Model",...b===null?{}:{subject:b},gridScale:O.gridScale,cameraView:O.cameraView,build:F,audit:!1,...j?{}:{authoring:v},cameraDirection:[.8187,.4458,.3617],openingFit:3,openingView:i.savedView(),presentation:(()=>{const l=i.savedView();if(!l)return null;const h={fov:vt(l.lens)};return c&&l.drawMode?{camera:h,drawMode:l.drawMode,modes:{preview:{lighting:{source:l.sceneWorld?"scene":"preview",preview:{sceneLights:l.sceneLights}},backdrop:{source:l.sceneWorld?"scene":"fill"}}}}:{camera:h}})(),stageKind:zr,dressing:{environment:!1,keyLight:!1,viewLocked:i.studioLights()}})})}export{an as Toolbar,cn as default,zr as documentKind,ln as inspectorBuiltins,sn as inspectorRail,nn as point,on as title};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{h2 as n,iD as r}from"./volter-sdk-BuGz2Ml5.js";const c="workspace.menu",i={menu:"window",items:[{id:"blender-save-screenshot-editor",label:"Save Screenshot (Editor)…",testId:"menu-save-screenshot-editor",execute:async()=>{const e=n(),t=await e.documents.captureActive();r(t.base64);const o=`screenshots/screenshot-${new Date().toISOString().replace(/[:.]/g,"-")}.png`;await e.files.write(o,Uint8Array.from(atob(t.base64),s=>s.charCodeAt(0))),e.console.log(`Saved the screenshot to ${o}.`,"blender-screenshot")}}]};export{i as menu,c as point};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as u,aJ as Te,j as s,ie as Ge,h_ as Me,ig as he}from"./volter-sdk-BuGz2Ml5.js";import{s as Be,b as ye}from"./blender-runtime-host-C8oSlAg-.js";import{s as de,p as D,m as K,a as ie,b,c as We,d as je,e as Ne,f as q}from"./play-mode-Dh0iSK-i.js";import"./output-pass-CLtpDjSJ.js";import"./three.module-1DIrGqXA.js";import"./linear-resolve-DHfrDPG9.js";const Ve={transform:{startFrame:-5,pixelsPerFrame:8},refusal:null,size:{w:0,h:0},framedAt:0,drawn:null,onlySelected:!0};let X=Ve,ce=0;const Z=new Set;let Pe=0;function F(){return X}function z(){return ce}function ue(e){return Z.add(e),()=>{Z.delete(e)}}function I(e){X={...X,...e},ce+=1;for(const t of[...Z])t()}function Ke(e){X.onlySelected!==e&&I({onlySelected:e})}function Ae(){Pe+=1,ce+=1;for(const e of[...Z])e()}function Je(){return Pe}function $e(e){I({refusal:e})}const Ye=20,A=23,Q=26,Ue=16,qe=2,Xe=A+qe,ge=35,Ze=6;function Fe(e){const t=[2,3,5],n=[];for(let r=0;r<t.length;r++){const a=t[r],i=Math.trunc(e/a),o=i*a===e;if(o&&i===2)return a;n[r]=o}for(let r=0;r<t.length;r++)if(n[r])return t[r];return e}function Qe(e,t,n,r){if(n===0)return 1;const a=t/n;let i=Math.max(e,1);if(a*i>r)for(;i>1;){const o=Fe(i),m=Math.trunc(i/o);if(a*m<r)break;i=m}else for(;a*i<r&&i<1<<30;)i*=2;return i}function et(e){return e<=1?null:e/Fe(Math.round(e))}const y={back:"#303030",header:"#303030",grid:"#161616",gridMinor:"#262626",scrubBack:"#1d1d1d",scrubText:"#808080",playhead:"#4772b3",playheadText:"#ffffff",keyBorder:"#000000"},xe={KEYFRAME:{fill:"#bfbfbf",selected:"#ffbe33"},EXTREME:{fill:"#e8b3cc",selected:"#f28080"},BREAKDOWN:{fill:"#b3dbe8",selected:"#54bfed"},JITTER:{fill:"#94e575",selected:"#61c042"},MOVING_HOLD:{fill:"#808080",selected:"#ffaf23"},GENERATED:{fill:"#585858",selected:"#a28962"}},tt={KEYFRAME:1,EXTREME:1.2,MOVING_HOLD:.925,BREAKDOWN:.85,JITTER:.8,GENERATED:.75},we=5.06,nt=2.12,rt=15,S={minPillWidth:24,textPadding:4,margin:2,radius:4,tipHalfWidth:6,tipHeight:6,stalkWidth:3},be="#212121",d={text:"#a6a6a6",rule:"#161616",widget:"#545454",widgetText:"#e6e6e6",widgetOutline:"#3d3d3d",widgetRadius:4,unit:Ye,refusal:"#ffaf23",headerPadding:"0 8px",headerGap:8,statusPadding:"2px 8px"},it=.2,ee={time:0,tick:0,paused:!1,speed:1},J={on:!1,available:!1,by:null};function O(){return Ge("model")}function H(e,t){t==="movie"&&O()?.playing(e)&&O()?.setPlaying(e,!1),t==="game"&&b.transport?.snapshot().playbackState==="playing"&&b.transport.pause(),We(e,t)}function M(e){const t=e?.document;if(typeof t=="string"&&t!=="")return t;const n=ie();if(n===null)throw new Error("No model document is open; open one, or name it with `document`.");return n}function $(){const e=O();if(e===null)throw new Error("This project has no Play tool: `cyclotron add-play` adds @volter/editor-model-play.");if(e.transport===void 0)throw new Error("The installed Play tool has no pause, step, speed or restart; update @volter/editor-model-play.");return e}function j(e){const t=O(),n=je(e);return{document:e,mode:K(e),playing:t?.playing(e)??!1,script:n===void 0||t?.scriptPath===void 0?null:{path:t.scriptPath(n),exists:t.hasScript?.(n)??null},clock:t?.transport?.clock(e)??ee,speeds:t?.transport?.speeds??[],autoplay:st(e)}}function Ie(e,t){return e?t.on?"bot":t.person===!1?"none":"person":null}function st(e){const t=O(),n=t?.transport?.autoplay?.(e)??J,r=t?.playing(e)??!1,a=Re(r,t?.transport?.clock(e)??ee,n);return{...n,driver:Ie(r,n),why:a}}function Oe(e,t,n){return n.available?null:e&&(t.running??!t.failure)?"no-bot":"not-running"}function Re(e,t,n){switch(Oe(e,t,n)){case null:return null;case"no-bot":return"No autoplay — this game doesn’t provide a bot: its play script registers none with play.autoplay(controller).";case"not-running":return e?`Autoplay is available once the game is running, and it is not running yet${t.failure?`: ${t.failure}`:"."}`:"Autoplay is available once the game is running, and nothing is playing; `play` starts it."}}function se(e,t){if(!$().playing(e))throw new Error(`Nothing is playing in ${e}, so there is nothing to ${t}; \`play\` starts it.`)}Me({view:"model-play",title:"Game",verbs:[{id:"state",run:e=>j(M(e))},{id:"mode",run:e=>{const t=M(e),n=e?.mode??e?.to;if(n!==void 0){if(n!=="game"&&n!=="movie")throw new Error(`mode is \`game\` or \`movie\`; got ${String(n)}.`);H(t,n)}return j(t)}},{id:"game-mode",title:"Game: Switch to Game Mode",run:e=>{const t=M(e);return H(t,"game"),j(t)}},{id:"movie-mode",title:"Game: Switch to Movie Mode",run:e=>{const t=M(e);return H(t,"movie"),j(t)}},{id:"play",title:"Game: Play",run:e=>{const t=M(e),n=$();return K(t)!=="game"&&H(t,"game"),n.playing(t)||n.setPlaying(t,!0),j(t)}},{id:"stop",title:"Game: Stop",run:e=>{const t=M(e);return $().setPlaying(t,!1),j(t)}},{id:"pause",title:"Game: Pause",run:e=>{const t=M(e);return se(t,"pause"),$().transport.setPaused(t,!0),j(t)}},{id:"resume",title:"Game: Resume",run:e=>{const t=M(e);return se(t,"resume"),$().transport.setPaused(t,!1),j(t)}},{id:"step",title:"Game: Step One Tick",run:e=>{const t=M(e);se(t,"step");const{transport:n}=$();if(!n.clock(t).paused)throw new Error("step runs one tick of a PAUSED game; `pause` first.");const r=e?.count,a=r===void 0?1:typeof r=="string"&&r.trim()!==""?Number(r):typeof r=="number"?r:Number.NaN;if(!Number.isInteger(a)||a<1||a>600)throw new Error(`step's \`count\` is a whole number from 1 to 600; got ${JSON.stringify(r)}.`);for(let i=0;i<a;i++)n.step(t);return j(t)}},{id:"speed",run:e=>{const t=M(e),{transport:n}=$(),r=e?.speed??e?.to,a=Number(typeof r=="string"?r.replace(/x$/i,""):r);if(!n.speeds.includes(a))throw new Error(`speed is one of ${n.speeds.join(", ")} (simulation seconds per real second); got ${JSON.stringify(r)}.`);return n.setSpeed(t,a),j(t)}},{id:"autoplay",run:e=>{const t=M(e),n=e?.on,r=n===!0||n==="on"||n==="true"?!0:n===!1||n==="off"||n==="false"?!1:void 0;if(r===void 0)throw new Error(`autoplay's \`on\` is true or false (\`play autoplay on|off\`); got ${String(n)}.`);const a=typeof e?.behavior=="string"&&e.behavior!==""?e.behavior:null,i=e?.for??e?.limit,o=i==null?null:Number(i);if(o!==null&&!(Number.isFinite(o)&&o>0))throw new Error(`autoplay's \`for\` is a positive number of simulation seconds; got ${JSON.stringify(i)}.`);const m=$(),{transport:p}=m;if(p.setAutoplay===void 0)throw new Error("The installed Play tool has no autoplay; update @volter/editor-model-play.");const c=r?Re(m.playing(t),p.clock(t),p.autoplay?.(t)??J):null;if(c!==null)throw new Error(c);return p.setAutoplay(t,r,"cli",r?{behavior:a,limit:o}:void 0),j(t)}},{id:"restart",title:"Game: Restart",run:e=>{const t=M(e),n=$();return K(t)!=="game"&&H(t,"game"),n.transport.restart(t),j(t)}}]});const ot=e=>e.preventDefault();function U(e){return s.jsx("svg",{width:12,height:12,viewBox:"0 0 12 12","aria-hidden":"true",children:s.jsx("path",{d:e,fill:d.widgetText})})}const C={play:"M3 2l7 4-7 4z",stop:"M2.5 2.5h7v7h-7z",pause:"M3 2h2v8H3zM7 2h2v8H7z",step:"M10 2H8.5v8H10zM2.5 2v8L7.5 6z",restart:"M6 1.5V0l3 2.25-3 2.25V3a3 3 0 1 0 3 3h1.5A4.5 4.5 0 1 1 6 1.5z"};function R({label:e,testId:t,disabled:n,pressed:r,wide:a,onClick:i,children:o}){const m=d.unit;return s.jsx("button",{type:"button","data-testid":t,title:e,"aria-label":e,"aria-pressed":r,disabled:n,onMouseDown:ot,onClick:i,style:{minWidth:m,height:m,padding:a?"0 6px":0,border:`1px solid ${d.widgetOutline}`,background:r?y.playhead:d.widget,color:d.widgetText,font:"inherit",display:"inline-flex",alignItems:"center",justifyContent:"center",gap:4,cursor:n?"not-allowed":"pointer",opacity:n?.4:1},children:o})}function _e({title:e}){u.useSyncExternalStore(de,D,D);const t=u.useSyncExternalStore(Te,O,()=>null),n=ie();if(t===null||n===null)return s.jsx("span",{style:{color:d.text},children:e});const r=K(n),a=(i,o,m)=>s.jsx(R,{testId:`model-play-mode-${i}`,label:m,pressed:r===i,wide:!0,onClick:()=>H(n,i),children:o});return s.jsxs("div",{role:"group","aria-label":"Game or Movie mode","data-testid":"model-play-mode",style:{display:"flex"},children:[a("game","Game","Game mode: this area is the Game panel, with Play, pause, step, speed, restart and autoplay"),a("movie","Movie","Movie mode: this area is the Timeline, playing the file’s animation")]})}function Le(e){const t=Math.floor(e/60),n=(e-t*60).toFixed(2).padStart(5,"0");return t<60?`${t}:${n}`:`${Math.floor(t/60)}:${String(t%60).padStart(2,"0")}:${n}`}function ve(e){return`${e}×`}function at(){u.useSyncExternalStore(de,D,D);const e=ie(),t=u.useSyncExternalStore(Te,O,()=>null),n=t?.transport,r=e!==null&&(t?.playing(e)??!1),a=u.useCallback(x=>n?.subscribeClock(x)??(()=>{}),[n]),i=u.useSyncExternalStore(a,()=>e!==null&&n?n.clock(e):ee,()=>ee),o=u.useSyncExternalStore(a,()=>e!==null&&n?.autoplay?n.autoplay(e):J,()=>J),m=e===null?void 0:je(e),p=m===void 0?null:t?.scriptPath?.(m)??null,c=m===void 0?null:t?.hasScript?.(m)??null,f=e!==null&&t!==null,g=e===null?"No model document is open.":c===!1&&p!==null?`No play script yet — Play runs ${p}. \`cyclotron add-play\` adds an example.`:r&&i.failure?`Not running — ${i.failure.replace(/\.$/,"")}. Restart (or save the script) to retry, or Stop.`:r?`${i.paused?"Paused":"Playing"} ${p??""}`.trim():p===null?"Stopped.":`Stopped · Play runs ${p}`;return s.jsxs("div",{"data-testid":"blender-game-panel","data-playing":r||void 0,"data-paused":r&&i.paused||void 0,"data-failed":r&&!!i.failure||void 0,style:{position:"absolute",inset:0,display:"flex",flexDirection:"column",overflow:"hidden",background:y.back,color:d.text,font:"11px Inter, system-ui, sans-serif"},children:[s.jsxs("div",{style:{height:Q,flex:`0 0 ${Q}px`,display:"flex",alignItems:"center",gap:d.headerGap,padding:d.headerPadding,background:y.header,borderBottom:`1px solid ${d.rule}`},children:[s.jsx(_e,{title:"Game"}),s.jsx("div",{style:{flex:1}}),s.jsxs("div",{style:{display:"flex"},role:"group","aria-label":"Game transport",children:[s.jsxs(R,{testId:"model-play-button",label:r?"Stop playing (Escape)":"Play this model’s script",pressed:r,wide:!0,disabled:!f,onClick:()=>{e!==null&&t&&t.setPlaying(e,!t.playing(e))},children:[U(r?C.stop:C.play),r?"Stop":"Play"]}),n&&s.jsxs(s.Fragment,{children:[s.jsx(R,{testId:"model-play-pause",label:i.paused?"Resume":"Pause",pressed:r&&i.paused,disabled:!r,onClick:()=>{e!==null&&n.setPaused(e,!n.clock(e).paused)},children:U(i.paused?C.play:C.pause)}),s.jsx(R,{testId:"model-play-step",label:"Step one tick (while paused)",disabled:!r||!i.paused,onClick:()=>{e!==null&&n.step(e)},children:U(C.step)}),s.jsx(R,{testId:"model-play-restart",label:"Restart on a fresh copy of the model",disabled:!r,onClick:()=>{e!==null&&n.restart(e)},children:U(C.restart)})]})]}),n&&s.jsx("div",{style:{display:"flex"},role:"group","aria-label":"Game speed",children:n.speeds.map(x=>s.jsx(R,{testId:`model-play-speed-${x}`,label:`Speed ${ve(x)}`,pressed:i.speed===x,wide:!0,disabled:e===null,onClick:()=>{e!==null&&n.setSpeed(e,x)},children:ve(x)},x))}),s.jsx("div",{style:{flex:1}}),s.jsxs("span",{"data-testid":"model-play-clock",style:{color:d.widgetText,fontVariantNumeric:"tabular-nums",whiteSpace:"nowrap"},children:[Le(i.time)," · tick ",i.tick]})]}),s.jsxs("div",{style:{flex:1,minHeight:0,display:"flex",alignItems:"stretch",gap:d.headerGap,padding:d.statusPadding,overflow:"hidden"},children:[s.jsxs("div",{style:{flex:"0 1 260px",minWidth:0,display:"flex",flexDirection:"column",gap:6},children:[s.jsx("span",{"data-testid":"model-play-status",title:g,style:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:g}),n?.autoplay&&e!==null&&s.jsx(lt,{documentId:e,playing:r,clock:i,autoplay:o,transport:n})]}),t?.log&&e!==null&&s.jsx(dt,{documentId:e,log:t.log})]})]})}function lt({documentId:e,playing:t,clock:n,autoplay:r,transport:a}){const i=Oe(t,n,r),o=r.armed===!0,m=!t&&a.armAutoplay!==void 0,p=i==="no-bot"?"This game provides no bot: its play script registers none with play.autoplay(controller)":i==="not-running"?m?o?"Autoplay is armed for the next Play; press to disarm":"Turn autoplay on as soon as the game is running (if it offers a bot)":"Autoplay is available once the game is running":r.on?"Stop autoplay and drive yourself":"Let the game’s bot drive (any key or click in the game takes over)",c=i==="no-bot"?"No autoplay — this game doesn’t provide a bot":i==="not-running"?o?"Armed — turns on once the game is running":"Available once the game is running":null,f=r.behaviors??[],[g,x]=u.useState(null),Y=r.on||o?r.behavior??null:g!==null&&f.includes(g)?g:f[0]??null,k=Ie(t,r),_=k!=="none"?null:r.by==="limit"&&r.limit?`Autoplay stopped at its ${Math.round(r.limit)} s limit`:r.refused?`Autoplay didn’t start: ${r.refused}`:null,G=[r.behavior,r.state].filter(Boolean).join(" — ");return s.jsxs("div",{style:{display:"flex",alignItems:"center",gap:d.headerGap,minWidth:0},children:[f.length>1&&s.jsx("select",{"data-testid":"model-play-autoplay-behavior",title:"The bot behaviour Autoplay runs",value:Y??"",disabled:r.on,onChange:T=>x(T.target.value),style:{background:d.widget,color:d.widgetText,border:"none",borderRadius:d.widgetRadius,font:"inherit",minWidth:0},children:f.map(T=>s.jsx("option",{value:T,children:T},T))}),s.jsx("span",{title:p,style:{display:"inline-flex"},children:s.jsx(R,{testId:"model-play-autoplay",label:p,pressed:r.on||o,wide:!0,disabled:m?!1:!t||!r.available||a.setAutoplay===void 0,onClick:()=>{const T=a.autoplay?.(e)??J;O()?.playing(e)??!1?a.setAutoplay?.(e,!T.on,"panel",T.on?void 0:{behavior:Y}):a.armAutoplay?.(e,!T.armed,{behavior:Y})},children:"Autoplay"})}),c!==null?s.jsx("span",{"data-testid":"model-play-autoplay-note","data-reason":i??void 0,style:{color:d.widgetText,minWidth:0},children:c}):t&&s.jsx("span",{"data-testid":"model-play-driver","data-driver":k??void 0,title:r.state?`The bot: ${r.state}`:void 0,style:{color:r.on?y.playhead:d.widgetText,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",minWidth:0},children:k==="bot"?`Bot driving${G?` · ${G}`:""}`:_?`${_}${r.state?` — ${r.state}`:""}`:k==="person"?"You’re driving":"Nobody’s driving"})]})}const oe=200;function Ee(e){if(e===void 0)return"";try{return JSON.stringify(e)}catch{return""}}function dt({documentId:e,log:t}){const[n,r]=u.useState(""),[,a]=u.useReducer(c=>c+1,0);u.useEffect(()=>{let c=0;const f=t.subscribe(()=>{c===0&&(c=requestAnimationFrame(()=>{c=0,a()}))});return()=>{f(),cancelAnimationFrame(c)}},[t]);const i=t.tail(e,oe,n===""?void 0:n),o=u.useRef(null),m=u.useRef(!0);u.useLayoutEffect(()=>{const c=o.current;c&&m.current&&(c.scrollTop=c.scrollHeight)});const p=i.entries.at(-1)?.seq;return s.jsxs("div",{"data-testid":"model-play-log",style:{flex:1,minWidth:0,display:"flex",flexDirection:"column",gap:4},children:[s.jsxs("div",{style:{display:"flex",alignItems:"center",gap:d.headerGap},children:[s.jsx("span",{children:"Play log"}),s.jsxs("select",{"data-testid":"model-play-log-kind","aria-label":"Show entries of kind",value:n,onChange:c=>{r(c.target.value),c.target.blur()},style:{height:d.unit,background:d.widget,color:d.widgetText,border:`1px solid ${d.widgetOutline}`,font:"inherit"},children:[s.jsx("option",{value:"",children:"All kinds"}),[...new Set([...i.kinds,...n===""?[]:[n]])].map(c=>s.jsx("option",{value:c,children:c},c))]}),s.jsx("span",{style:{color:d.widgetText},children:i.total===0?"Nothing logged yet":`${i.total} written${i.total>oe?` · newest ${oe} shown`:""}`})]}),s.jsx("div",{ref:o,"data-testid":"model-play-log-entries","data-newest":p,onScroll:c=>{const f=c.currentTarget;m.current=f.scrollTop+f.clientHeight>=f.scrollHeight-4},style:{flex:1,minHeight:0,overflowY:"auto",font:"12px/1.45 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace",background:y.header,border:`1px solid ${d.rule}`,padding:"2px 6px"},children:i.entries.map(c=>s.jsxs("div",{"data-kind":c.kind,style:{display:"flex",gap:10,whiteSpace:"nowrap",color:c.source==="play"?d.widgetText:d.text},children:[s.jsx("span",{style:{flex:"0 0 auto",fontVariantNumeric:"tabular-nums"},children:Le(c.simT)}),s.jsx("span",{style:{flex:"0 0 auto"},children:c.kind}),s.jsx("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis"},title:Ee(c.facts),children:Ee(c.facts)})]},c.seq))})]})}const bt="workspace.document",ct="Timeline",Ce=.25,He=200,ae={"set-range":"Setting the frame range writes `scene.frame_start`/`frame_end`, which the document would save. This is Blender's Timeline as an INSPECTION surface: the range is drawn, never set. Change it in bpy and the Timeline re-reads it.","insert-key":"Inserting a keyframe writes the action. Editing parity is not the program — key it in bpy (`pose_bone.keyframe_insert`) and the Timeline re-reads the action on the next present.","move-key":"Moving a keyframe writes the F-Curve's control points. The summary row draws the keys the action HAS; the Dope Sheet that would move them is the Animation workspace's, and it is not built.","delete-key":"Deleting a keyframe writes the action. Editing parity is not the program.","set-interpolation":"Setting a key's interpolation writes the F-Curve. Note also that this view PLAYS a per-frame bake (`rna_action_clip`), so interpolation is not a thing it reads back.","select-key":"Selecting a keyframe writes `Keyframe.select_control_point`. The view draws the flags the data carries — a selected key takes `.common.anim.keyframe_selected` — and changes none of them."},te="No scene transport is attached yet; open the model document first.";function w(){return b.transport}function le(){return w()?.snapshot().playbackState==="playing"}function ne(e){return $e(e),P()}const Se={JITTER:1,GENERATED:2,MOVING_HOLD:3,BREAKDOWN:4,KEYFRAME:5,EXTREME:6};function De(e,t){const n=[],r=new Map;for(const a of e)if(!(t&&!a.selected)){n.push(a.object);for(const i of a.keyframes){const o=r.get(i.frame);if(!o){r.set(i.frame,{...i});continue}o.select=o.select||i.select,(Se[i.type]??0)>(Se[o.type]??0)&&(o.type=i.type)}}return{columns:[...r.values()].sort((a,i)=>a.frame-i.frame),objects:n}}function re(){return De(b.state().summary,F().onlySelected).columns.map(e=>e.frame)}function P(){const e=F();return{...b.state(),transform:e.transform,size:e.size,refusal:e.refusal,drawn:e.drawn}}function V(e){if(!b.playable)return ne(te);const t=w();return t?(t.seekFrame(e),P()):ne("No stage transport is attached yet; open the model document first.")}Me({view:"timeline",title:ct,verbs:[{id:"state",run:()=>P()},{id:"frame",title:"Timeline: Set Frame",run:e=>{const t=Number(e?.frame??e?.to);if(!Number.isFinite(t))throw new Error("frame needs a numeric `frame` — a Blender frame number.");return V(t)}},{id:"play",title:"Timeline: Play",run:()=>{if(!b.playable)throw new Error(te);const e=w();if(!e)throw new Error("No stage transport is attached yet; open the model document first.");return e.play(),P()}},{id:"pause",title:"Timeline: Pause",run:()=>{const e=w();return e?(e.pause(),P()):ne("No stage transport is attached yet.")}},{id:"jump-start",title:"Timeline: Jump to Start",run:()=>V(b.state().start)},{id:"jump-end",title:"Timeline: Jump to End",run:()=>V(b.state().end)},{id:"next-keyframe",title:"Timeline: Next Keyframe",run:()=>{const e=b.frame(),t=re().find(n=>n>e+1e-4);return t===void 0?P():V(t)}},{id:"prev-keyframe",title:"Timeline: Previous Keyframe",run:()=>{const e=b.frame(),t=re().reverse().find(n=>n<e-1e-4);return t===void 0?P():V(t)}},{id:"view-all",title:"Timeline: View All",run:()=>(Ae(),P())},{id:"zoom",title:"Timeline: Zoom",run:e=>{const t=Number(e?.to??e?.zoom);if(!Number.isFinite(t))throw new Error("zoom needs a numeric `to` — CSS pixels per frame, 0.25 … 200.");const{transform:n,size:r}=F(),a=n.startFrame+r.w/2/n.pixelsPerFrame,i=Math.min(He,Math.max(Ce,t));return I({transform:{pixelsPerFrame:i,startFrame:a-r.w/2/i}}),P()}},{id:"pan",title:"Timeline: Pan",run:e=>{const t=Number(e?.frames??0);if(!Number.isFinite(t))throw new Error("pan needs a numeric `frames`.");const{transform:n}=F();return I({transform:{...n,startFrame:n.startFrame+t}}),P()}},...Object.keys(ae).map(e=>({id:e,run:()=>ne(ae[e])}))]});const ke="timeline";function vt(){u.useSyncExternalStore(de,D,D);const e=ie(),t=e!==null&&K(e)==="game";return u.useEffect(()=>he(ke,t?it:null),[t]),u.useEffect(()=>()=>he(ke,null),[]),t?s.jsx(at,{}):s.jsx(ut,{})}function ut(){u.useSyncExternalStore(Be,ye,ye),u.useSyncExternalStore(Ne,q,q),u.useSyncExternalStore(ue,z,z);const e=u.useRef(null),t=u.useRef(-1),{transform:n,size:r,refusal:a,onlySelected:i}=F(),o=b.state();u.useEffect(()=>{const l=e.current;if(!l)return;const v=new ResizeObserver(()=>{const h={w:l.clientWidth,h:l.clientHeight},E=F().size;(E.w!==h.w||E.h!==h.h)&&I({size:h})});return v.observe(l),I({size:{w:l.clientWidth,h:l.clientHeight}}),()=>v.disconnect()},[]);const m=Je();u.useEffect(()=>{if(m===t.current)return;t.current=m;const{w:l}=F().size;if(l===0)return;const v=Math.max(1,o.end-o.start),h=Math.min(He,Math.max(Ce,l*.9/v));I({transform:{pixelsPerFrame:h,startFrame:o.start-l*.05/h},framedAt:Date.now()})},[m,o.start,o.end]);const p=u.useCallback(l=>(l-n.startFrame)*n.pixelsPerFrame,[n]),c=u.useCallback(l=>n.startFrame+l/n.pixelsPerFrame,[n]),f=u.useMemo(()=>De(o.summary,i),[o.summary,i]),g=u.useMemo(()=>{if(r.w===0)return null;const l=r.w/n.pixelsPerFrame,v=Math.max(`${Math.round(n.startFrame)}`.length,`${Math.round(n.startFrame+l)}`.length),h=Math.max(ge,v*6+Ze),E=Qe(Math.round(o.fps),r.w+1,l,h),N=et(E),ze=Math.ceil(n.startFrame/E)*E,me=[];for(let B=ze;B<=n.startFrame+l;B+=E)me.push(B);const fe=[];if(N!==null&&N*n.pixelsPerFrame>=ge/5){const B=Math.ceil(n.startFrame/N)*N;for(let W=B;W<=n.startFrame+l;W+=N)Math.abs(W/E-Math.round(W/E))>1e-6&&fe.push(W)}return{major:E,minor:N,majors:me,minors:fe}},[r.w,n,o.fps]),x=A,k=Xe+Ue/2;u.useEffect(()=>{if(!g)return;const l=[...o.warnings];o.action||l.push("Nothing in this file carries an action, so the summary row is empty — which is Blender's own empty state for a Timeline over a still file."),l.push("While a clip plays, the picture is three.js evaluating the skin over the mesh columns Blender exported at the BIND frame. Anything else Blender would re-evaluate per frame — shape keys, a Displace or Cloth modifier reading the frame, a geometry driver — does not follow the playhead."),l.push("Blender puts this view's ONLY-SHOW-SELECTED toggle in the Timeline header's View MENU (`TIME_MT_view`'s `layout.prop(scene, \"show_keys_from_selected_only\")`, `space_time.py`); this header has no menu region, so the same toggle is drawn as a header button at the leading edge, where that menu sits. The filter itself is Blender's — `ADS_FILTER_ONLYSEL`, `anim_filter.cc:254-270`, tested per object at `:2307`."),i&&f.objects.length===0&&o.summary.length>0&&l.push(`The summary row is empty because nothing animated is SELECTED, which is Blender's own answer with this filter on. ${o.summary.map(h=>h.object).join(", ")} carr${o.summary.length===1?"ies":"y"} an action; select it, or turn the filter off.`),l.push("Markers, the cache bar and the preview range are drawn by Blender's Timeline and not here; the door carries none of them.");const v={drawn:{action:o.action,object:o.object,armature:o.armature,frame:o.frame,start:o.start,end:o.end,fps:o.fps,playing:le(),keyframes:f.columns.map(h=>h.frame),onlySelected:i,summaryObjects:f.objects,majorStep:g.major,minorStep:g.minor,majorLines:g.majors.length,minorLines:g.minors.length,labels:g.majors.length,diamonds:f.columns.length,diamondRadius:we,diamondSprite:rt,bones:o.bones,tracks:o.tracks,engineCalls:o.engineCalls,warnings:l}};JSON.stringify(v.drawn)!==JSON.stringify(F().drawn)&&I(v)},[g,o,f,i]);const _=u.useRef(!1),G=u.useCallback(l=>{const v=e.current;if(!v)return;const h=v.getBoundingClientRect();w()?.seekFrame(Math.round(c(l-h.left)))},[c]),T=`${Math.round(o.frame)}`,pe=Math.max(S.minPillWidth,T.length*6+2*S.textPadding),L=p(o.frame);return s.jsxs("div",{"data-testid":"blender-timeline",style:{position:"absolute",inset:0,display:"flex",flexDirection:"column",overflow:"hidden",background:y.back,color:d.text,font:"11px Inter, system-ui, sans-serif"},children:[s.jsx(mt,{}),s.jsx("div",{ref:e,style:{flex:1,minHeight:0,position:"relative"},children:s.jsxs("svg",{width:r.w,height:r.h,style:{display:"block",cursor:"ew-resize"},"aria-label":"Timeline",onPointerDown:l=>{_.current=!0,l.currentTarget.setPointerCapture(l.pointerId),G(l.clientX)},onPointerMove:l=>{_.current&&G(l.clientX)},onPointerUp:l=>{_.current=!1,l.currentTarget.releasePointerCapture(l.pointerId)},children:[s.jsx("title",{children:"Timeline"}),s.jsx("rect",{x:0,y:0,width:r.w,height:r.h,fill:y.back}),s.jsx("rect",{x:0,y:x,width:Math.max(0,p(o.start)),height:Math.max(0,r.h-x),fill:be}),s.jsx("rect",{x:p(o.end),y:x,width:Math.max(0,r.w-p(o.end)),height:Math.max(0,r.h-x),fill:be}),g?.minors.map(l=>s.jsx("line",{x1:p(l),y1:x,x2:p(l),y2:r.h,stroke:y.gridMinor,strokeWidth:1},`n${l}`)),g?.majors.map(l=>s.jsx("line",{x1:p(l),y1:x,x2:p(l),y2:r.h,stroke:y.grid,strokeWidth:1},`m${l}`)),s.jsx("rect",{x:0,y:0,width:r.w,height:A,fill:y.scrubBack}),g?.majors.map(l=>s.jsx("text",{x:p(l),y:15.5,textAnchor:"middle",fill:y.scrubText,fontSize:11,children:Math.round(l)},`t${l}`)),s.jsx("path",{d:`M3,${k-3.5} L6.5,${k} L3,${k+3.5} Z`,fill:y.scrubText}),f.columns.map(l=>{const v=tt[l.type]??1,h=we*v,E=xe[l.type]??xe.KEYFRAME,N=p(l.frame);return s.jsx("polygon",{points:`${N},${k-h} ${N+h},${k} ${N},${k+h} ${N-h},${k}`,fill:l.select?E.selected:E.fill,stroke:y.keyBorder,strokeWidth:nt*v},`k${l.frame}`)}),s.jsx("rect",{x:L-S.stalkWidth/2,y:A,width:S.stalkWidth,height:Math.max(0,r.h-A),fill:y.playhead}),s.jsx("rect",{x:L-pe/2,y:S.margin,width:pe,height:A-2*S.margin,rx:S.radius,fill:y.playhead}),s.jsx("polygon",{points:`${L-S.tipHalfWidth},${A-S.margin} ${L+S.tipHalfWidth},${A-S.margin} ${L},${A-S.margin+S.tipHeight}`,fill:y.playhead}),s.jsx("text",{x:L,y:15.5,textAnchor:"middle",fill:y.playheadText,fontSize:11,children:T})]})}),a?s.jsx("div",{style:{borderTop:`1px solid ${d.rule}`,padding:d.statusPadding,color:d.refusal},children:a}):null]})}function pt(){u.useSyncExternalStore(ue,z,z);const{onlySelected:e}=F(),[t,n]=u.useState(!1),r=(a,i,o)=>s.jsxs("button",{type:"button",onClick:()=>{o(),n(!1)},style:{display:"flex",alignItems:"center",gap:"var(--volter-space-2)",width:"100%",padding:"var(--volter-space-1) var(--volter-space-3)",border:"none",background:"transparent",color:d.widgetText,font:"inherit",textAlign:"left",cursor:"pointer"},children:[s.jsx("span",{style:{width:12,display:"inline-block"},children:i===null?"":i?"✓":""}),a]});return s.jsxs("span",{style:{position:"relative"},children:[s.jsx("button",{type:"button","aria-haspopup":"menu","aria-expanded":t,onClick:()=>n(a=>!a),style:{border:"none",background:"transparent",color:d.text,font:"inherit",padding:"0 var(--volter-space-2)",cursor:"pointer"},children:"View"}),t?s.jsxs("span",{role:"menu",style:{position:"absolute",top:"100%",left:0,zIndex:20,minWidth:210,display:"flex",flexDirection:"column",background:d.widget,border:`1px solid ${d.widgetOutline}`,boxShadow:"0 6px 18px rgba(0,0,0,0.45)"},children:[r("Only Show Selected",e,()=>Ke(!e)),r("Frame All",null,()=>Ae())]}):null]})}function mt(){u.useSyncExternalStore(Ne,q,q),u.useSyncExternalStore(ue,z,z);const e=b.state(),t=d.unit,n=b.playable,r=(i,o,m,p)=>s.jsx("button",{type:"button",title:n?p:`${p} — ${te}`,"aria-label":p,disabled:!n,onClick:m,style:{width:t,height:t,padding:0,border:`1px solid ${d.widgetOutline}`,background:d.widget,color:d.widgetText,display:"grid",placeItems:"center",cursor:n?"pointer":"not-allowed",opacity:n?1:.4},children:o},i),a=i=>s.jsx("svg",{width:12,height:12,viewBox:"0 0 12 12","aria-hidden":"true",children:s.jsx("path",{d:i,fill:d.widgetText})});return s.jsxs("div",{style:{height:Q,flex:`0 0 ${Q}px`,display:"flex",alignItems:"center",gap:d.headerGap,padding:d.headerPadding,background:y.header,borderBottom:`1px solid ${d.rule}`},children:[s.jsx(_e,{title:"Timeline"}),s.jsx(pt,{}),s.jsx("div",{style:{flex:1}}),s.jsxs("div",{style:{display:"flex"},children:[r("jump-start",a("M2 2h1.5v8H2zM10 2v8L4.5 6z"),()=>w()?.seekFrame(e.start),"Jump to Start"),r("prev-key",a("M5 2.5v7L1.5 6zM8.5 3.2L11 6L8.5 8.8L6 6z"),()=>{const i=re().reverse().find(o=>o<b.frame()-1e-4);i!==void 0&&w()?.seekFrame(i)},"Jump to Previous Keyframe"),n&&le()?r("pause-rev",a("M3 2h2v8H3zM7 2h2v8H7z"),()=>w()?.pause(),"Pause"):r("play-reverse",a("M9 2L2 6l7 4z"),()=>w()?.play("reverse"),"Play Reverse"),n&&le()?r("pause",a("M3 2h2v8H3zM7 2h2v8H7z"),()=>w()?.pause(),"Pause"):r("play",a("M3 2l7 4-7 4z"),()=>w()?.play(),"Play"),r("next-key",a("M7 2.5v7L10.5 6zM3.5 3.2L6 6L3.5 8.8L1 6z"),()=>{const i=re().find(o=>o>b.frame()+1e-4);i!==void 0&&w()?.seekFrame(i)},"Jump to Next Keyframe"),r("jump-end",a("M10 2H8.5v8H10zM2 2v8L7.5 6z"),()=>w()?.seekFrame(e.end),"Jump to End")]}),s.jsxs("div",{style:{display:"flex"},children:[r("step-back",a("M2 2h1.5v8H2zM9.5 2v8L4.5 6z"),()=>w()?.seekFrame(Math.round(e.frame)-1),"Step Back One Frame"),r("step-forward",a("M10 2H8.5v8H10zM2.5 2v8L7.5 6z"),()=>w()?.seekFrame(Math.round(e.frame)+1),"Step Forward One Frame")]}),s.jsx("div",{style:{flex:1}}),s.jsx("input",{type:"number",value:Math.round(e.frame),onChange:i=>{const o=Number(i.target.value);Number.isFinite(o)&&w()?.seekFrame(o)},"aria-label":"Current frame",disabled:!n,title:n?void 0:te,style:{width:75,height:t,textAlign:"center",border:`1px solid ${d.widgetOutline}`,borderRadius:d.widgetRadius,background:d.widget,color:d.widgetText,font:"inherit",cursor:n?"text":"not-allowed",opacity:n?1:.4}}),s.jsxs("span",{onClick:()=>$e(ae["set-range"]),onKeyDown:()=>{},style:{color:d.text,cursor:"not-allowed"},children:["Start ",e.start," · End ",e.end]})]})}export{vt as default,bt as point,ct as title};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as c,j as u,h_ as le}from"./volter-sdk-BuGz2Ml5.js";import{s as ue,b as X,h as de}from"./blender-runtime-host-C8oSlAg-.js";import"./output-pass-CLtpDjSJ.js";import"./three.module-1DIrGqXA.js";import"./linear-resolve-DHfrDPG9.js";const he={transform:{cx:.5,cy:.5,zoom:512},refusal:null,size:{w:0,h:0},framedAt:0,drawn:null};let L=he,N=0;const T=new Set;let te=0;function m(){return L}function Q(){return N}function fe(t){return T.add(t),()=>{T.delete(t)}}function v(t){L={...L,...t},N+=1;for(const r of[...T])r()}function pe(){te+=1,N+=1;for(const t of[...T])t()}function me(){return te}function ne(t){v({refusal:t})}const x={back:"#303030",grid:"#303030",face:"#ffffff",faceAlpha:10/255,uvShadow:"#707070",vertex:"#000000",faceDot:"#000000"},B={vertexSize:3,edgeWidth:1,facedotSize:3},se=1,ge=(B.vertexSize*se+1.5)*Math.SQRT2,ve=.75,we=B.facedotSize*se,ye=1,J=[1,1],K=[10,10],xe="Blender's `.space_image.grid` is #303030 at full alpha (userdef_default_theme.c:586) and this view's surface is #303030, so the tile grid draws at the theme's colour and is invisible against it. The image region's own clear is the overlay engine's (DRW_draw_view, space_image.cc:758), which is not in the source checkout — the sighted read settles the contrast.",be={shadow:{inner:x.uvShadow}},Ue=Math.max(B.edgeWidth,1),ee="#ff0000";function W(t){const r=atob(t),a=new Uint8Array(r.length);for(let d=0;d<r.length;d++)a[d]=r.charCodeAt(d);return a}function Ve(t){const r=W(t);return new Float32Array(r.buffer,r.byteOffset,r.byteLength>>2)}function z(t){const r=W(t);return new Uint32Array(r.buffer,r.byteOffset,r.byteLength>>2)}function _e(t,r){const a=Number.parseInt(t.slice(1),16);return`rgba(${a>>16&255}, ${a>>8&255}, ${a&255}, ${Math.round(r*1e3)/1e3})`}const _={text:"#e6e6e6",refusal:"#ed5700",rule:"#232323",statusPadding:"3px 8px",statusGap:12},Te="workspace.document",Ee="UV Editor",D=8e3,re=16,oe=8192,E={move:t=>`Dragging a UV in "${t}" writes the mesh's UV attribute, which the document would save. This is Blender's UV editor as an INSPECTION surface: editing parity is not the program.`,select:"Selecting a UV writes the mesh's selection state. This view draws what the DATA carries — and at this pin a mesh outside edit mode carries no UV selection at all (MeshUVLoopLayer declares uv, pin, name, active, active_render, active_clone and nothing else), so everything draws unselected. Editing parity is not the program.",pin:"Pinning a UV writes `MeshUVLoopLayer.pin`, which the document would save. Existing pins ARE drawn, in Blender's own hard red. Editing parity is not the program.",unwrap:"Unwrapping runs `bpy.ops.uv.unwrap`, which rewrites every UV on the mesh. Editing parity is not the program."};le({view:"blender-uv-view",title:Ee,verbs:[{id:"state",run:()=>m()},{id:"view-all",title:"UV Editor: View All",run:()=>(pe(),m())},{id:"zoom",title:"UV Editor: Zoom",run:t=>{const r=Number(t?.to??t?.zoom);if(!Number.isFinite(r))throw new Error("zoom needs a numeric `to` — CSS pixels per UV unit, 16 … 8192.");const{transform:a}=m();return v({transform:{...a,zoom:Math.min(oe,Math.max(re,r))}}),m()}},{id:"pan",title:"UV Editor: Pan",run:t=>{const r=Number(t?.u??0),a=Number(t?.v??0);if(!Number.isFinite(r)||!Number.isFinite(a))throw new Error("pan needs numeric `u` and `v`, in UV units.");const{transform:d}=m();return v({transform:{...d,cx:d.cx+r,cy:d.cy+a}}),m()}},{id:"move-uv",run:()=>R(E.move("the active UV map"))},{id:"select",run:()=>R(E.select)},{id:"pin",run:()=>R(E.pin)},{id:"unwrap",run:()=>R(E.unwrap)}]});function R(t){return ne(t),m()}function Se(t){return!t?.uvBase64||!t.triangleBase64?null:{uv:Ve(t.uvBase64),tris:z(t.triangleBase64),starts:z(t.loopStartBase64??""),totals:z(t.loopTotalBase64??""),pins:t.pinBase64?W(t.pinBase64):null}}function je(){const t=c.useSyncExternalStore(ue,X,X);c.useSyncExternalStore(fe,Q,Q);const r=c.useRef(0),a=c.useRef(null),d=c.useRef(null),j=c.useRef(null),{transform:b,refusal:C,size:U}=m(),[,F]=[0,c.useCallback(()=>v({}),[])];c.useEffect(()=>{let e=!0;return(async()=>{try{const s=await de();if(!e)return;d.current=s,j.current=null}catch(s){if(!e)return;j.current=s instanceof Error?s.message:String(s)}F()})(),()=>{e=!1}},[t,F]),c.useEffect(()=>{const e=a.current;if(!e)return;const s=new ResizeObserver(()=>{const l={w:e.clientWidth,h:e.clientHeight},h=m().size;(h.w!==l.w||h.h!==l.h)&&v({size:l})});return s.observe(e),v({size:{w:e.clientWidth,h:e.clientHeight}}),()=>s.disconnect()},[]);const n=d.current,M=c.useMemo(()=>Se(n),[n]),O=me();c.useEffect(()=>{if(O===r.current)return;r.current=O;const e=n?.bounds??[0,0,1,1],{w:s,h:l}=m().size;if(s===0||l===0)return;const[h,g,o,f]=e,V=Math.max(o-h,.001),S=Math.max(f-g,.001),k=Math.min(oe,Math.max(re,Math.min(s/V,l/S)*.9));v({transform:{cx:(h+o)/2,cy:(g+f)/2,zoom:k},framedAt:Date.now()})},[O,n]);const w=e=>(e-b.cx)*b.zoom+U.w/2,y=e=>U.h/2-(e-b.cy)*b.zoom,i=c.useMemo(()=>{if(!n||!M)return null;const{uv:e,tris:s,starts:l,totals:h,pins:g}=M,o=[],f=[],V=[],S=[],k=l.length;for(let p=0;p<k;p++){const ce=l[p],I=h[p];if(I<3)continue;let $="",H=0,G=0;for(let A=0;A<I;A++){const Z=ce+A,q=e[Z*2],Y=e[Z*2+1];H+=q,G+=Y,$+=`${A===0?"M":"L"}${w(q).toFixed(2)} ${y(Y).toFixed(2)}`}$+="Z",o.push($),f.push($),S.push({x:w(H/I),y:y(G/I)})}const P=e.length>>1;for(let p=0;p<P&&V.length<D;p++)V.push({x:w(e[p*2]),y:y(e[p*2+1]),pinned:g?g[p]!==0:!1});return{faces:o,outlines:f,dots:V,faceDots:S,corners:P,triangles:s.length/3}},[n,M,b,U]);c.useEffect(()=>{if(!n)return;const e=[];n.layers.length===0&&n.object&&e.push(`"${n.object}" has no UV map — Blender's UV editor draws an empty tile.`),i&&i.corners>D&&e.push(`${i.corners} UV corners exceed this view's ${D}-dot budget; ${i.corners-D} corner marks are not drawn. The islands, their edges and the face dots are all drawn.`),n.image||e.push("No image behind the tile: the active material's node tree has no image texture with an image, so there is nothing for Blender's backdrop to show."),e.push(xe),e.push("The line style is SHADOW (#707070), not Blender's stock OUTLINE: `edit_uv_line_style_from_space_image` returns OUTLINE only when `SpaceImage.mode == SI_MODE_UV`, and there is no SpaceImage here."),v({drawn:{object:n.object,mesh:n.mesh,layer:n.active,layers:n.layers,mode:n.mode,loops:n.loops,polygons:n.polygons,triangles:i?.triangles??0,faces:i?.faces.length??0,edges:i?.outlines.length??0,verts:i?.dots.length??0,faceDots:i?.faceDots.length??0,pinned:i?.dots.filter(s=>s.pinned).length??0,bounds:n.bounds??null,tiles:J,subdiv:K,image:n.image?.name??null,warnings:e}})},[n,i]);const ie=c.useMemo(()=>{const e=[],[s,l]=J,[h,g]=K;for(let o=0;o<=s*h;o++){const f=o/h;e.push({key:`u${o}`,x1:w(f),y1:y(0),x2:w(f),y2:y(l),major:o%h===0})}for(let o=0;o<=l*g;o++){const f=o/g;e.push({key:`v${o}`,x1:w(0),y1:y(f),x2:w(s),y2:y(f),major:o%g===0})}return e},[b,U]),ae=n?n.active?`UV Editor · ${n.object} · ${n.active} · ${n.polygons} faces, ${n.loops} corners · ${n.mode}`:`UV Editor · ${n.object??"no mesh selected"} · no UV map · ${n.mode}`:j.current??"UV Editor · reading…";return u.jsxs("div",{"data-testid":"blender-uv-editor",style:{display:"flex",flexDirection:"column",position:"absolute",inset:0,overflow:"hidden",background:x.back,color:_.text,font:"11px Inter, system-ui, sans-serif"},children:[u.jsx("div",{ref:a,style:{flex:1,minHeight:0,position:"relative"},children:u.jsxs("svg",{width:U.w,height:U.h,style:{display:"block"},onPointerDown:()=>ne(E.select),"aria-label":"UV layout",children:[u.jsx("title",{children:"UV layout"}),ie.map(e=>u.jsx("line",{x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2,stroke:x.grid,strokeWidth:e.major?2:1},e.key)),i?.faces.map((e,s)=>u.jsx("path",{d:e,fill:_e(x.face,x.faceAlpha*ye)},`f${s}`)),i?.outlines.map((e,s)=>u.jsx("path",{d:e,fill:"none",stroke:be.shadow.inner,strokeWidth:Ue},`e${s}`)),i?.faceDots.map((e,s)=>u.jsx("circle",{cx:e.x,cy:e.y,r:we/2,fill:x.faceDot},`fd${s}`)),i?.dots.map((e,s)=>u.jsx("circle",{cx:e.x,cy:e.y,r:ge/2,fill:e.pinned?ee:x.vertex,stroke:e.pinned?ee:"none",strokeWidth:e.pinned?ve:0},`v${s}`))]})}),u.jsxs("div",{style:{borderTop:`1px solid ${_.rule}`,padding:_.statusPadding,display:"flex",gap:_.statusGap,alignItems:"center"},children:[u.jsx("span",{children:ae}),C?u.jsx("span",{style:{color:_.refusal},children:C}):null]})]})}export{je as default,Te as point,Ee as title};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{h2 as s,n as r,j as n}from"./volter-sdk-BuGz2Ml5.js";const i="workspace.status",a="Version",l="right",c=998;function u(){const{project:t}=s(),e=r.useSyncExternalStore(t.subscribe,t.engineVersion,t.engineVersion);return e===null?null:n.jsxs("span",{className:"volter-status-copy","data-testid":"status-blender-version","data-engine-version":e,style:{display:"inline-flex",alignItems:"center",gap:"var(--volter-space-2)",fontSize:"var(--volter-font-md)"},title:`This project is built against engine ${e}`,children:[n.jsx("span",{"aria-hidden":"true",style:{width:"var(--volter-stroke-resting)",height:"var(--volter-icon-md)",background:"currentColor"}}),e]})}export{l as align,u as default,c as order,i as point,a as title};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as f,S as k,P as v,b as x,s as F,A as $,c as D,o as N}from"./worker-DeCVN0ii.js";import{s as W}from"./session-jWA2YopV.js";const u="/bw",B=`${k}/frame.bin`,A=new Set(["scripts/startup/vgai_three.py","scripts/startup/volter_three.py"]);async function T(e){const a=f(`wali/${e}`);try{return await import(a)}catch(l){throw new Error(`The substrate skew needs ${e}, which this editor serves from the WALI pack directory beside blender.wasm (${a}): ${l instanceof Error?l.message:String(l)}`)}}async function z(e,a){const l=performance.now(),r=await fetch(f("runtime.idx"));if(!r.ok)throw new Error(`${$}/runtime.idx answered ${r.status}`);const o=await r.json(),s=await fetch(f("runtime.bin"));if(!s.ok)throw new Error(`${$}/runtime.bin answered ${s.status}`);const i=new Uint8Array(await s.arrayBuffer());let d=0;for(const t of o.files){if(d+t.size>i.byteLength)throw new Error(`Blender runtime ${t.path}: bytes ${d}..${d+t.size} lie outside the ${i.byteLength}-byte runtime blob`);if(A.has(t.path)){d+=t.size;continue}const c=`${u}/${t.path}`;e.mkdirSync(c.slice(0,c.lastIndexOf("/")),{recursive:!0}),e.writeFileSync(c,i.subarray(d,d+t.size)),d+=t.size}if(d!==i.byteLength)throw new Error(`Blender runtime index accounts for ${d} of the ${i.byteLength} bytes served`);const h=Math.round(performance.now()-l);return a("log",`blender: staged Blender's ${o.files.length}-file runtime tree in ${h} ms`),{files:o.files.length,bytes:i.byteLength,ms:h}}async function C(e,a){const l=performance.now(),r=await fetch(f("runtime.idx"));if(!r.ok)throw new Error(`${$}/runtime.idx answered ${r.status}`);const o=await r.json(),s=o.files.reduce((b,n)=>b+n.size,0),i=await fetch(f("runtime.bin"));if(!i.ok||!i.body)throw new Error(`${$}/runtime.bin answered ${i.status}`);const d=new SharedArrayBuffer(s),h=new Uint8Array(d);let t=0;const c=i.body.getReader();for(;;){const{done:b,value:n}=await c.read();if(b)break;if(t+n.byteLength>s)throw new Error(`Blender runtime blob is longer than the ${s} bytes its index accounts for`);h.set(n,t),t+=n.byteLength}if(t!==s)throw new Error(`Blender runtime index accounts for ${s} bytes; the blob served ${t}`);const y=e(u,o.files,d,{mtimeMs:Date.now(),include:b=>!A.has(b)});return a("log",`blender: shared Blender's ${o.files.length}-file runtime tree in ${Math.round(performance.now()-l)} ms`),y}async function H(e,a,l){const r=performance.now(),o=await fetch(f("runtime.idx"));if(!o.ok)throw new Error(`${$}/runtime.idx answered ${o.status}`);const s=await o.text(),i=JSON.parse(s),h=[...new Uint8Array(await crypto.subtle.digest("SHA-256",new TextEncoder().encode(s))).slice(0,12)].map(n=>n.toString(16).padStart(2,"0")).join(""),t=`${_}${h}`;if(a)try{await a(t)}catch(n){l("log",`blender: the runtime tree stays in memory: it cannot be held in use (${n instanceof Error?n.message:String(n)})`);return}let c;try{c=new Worker(f("wali/browser-wali/tree-store-worker.js"),{type:"module"})}catch(n){l("log",`blender: the runtime tree stays in memory: no installer worker (${n instanceof Error?n.message:String(n)})`);return}const y=await new Promise(n=>{let g=!1;const S=w=>{g||(g=!0,n(w))};let E=setTimeout(()=>S({ok:!1,error:`no progress in ${R/1e3} s`}),R);c.onmessage=w=>{if(clearTimeout(E),typeof w.data?.progress=="number"){g||(E=setTimeout(()=>S({ok:!1,error:`no progress in ${R/1e3} s`}),R));return}c.terminate(),S(w.data)},c.onerror=w=>{clearTimeout(E),c.terminate(),S({ok:!1,error:w.message||"the installer worker failed to start"})},c.postMessage({projectId:t,family:_,root:u,files:i.files,blobUrl:new URL(f("runtime.bin"),location.href).href,mtimeMs:Date.now()})});if(!y.ok){l("log",`blender: the runtime tree stays in memory: it could not be installed (${y.error})`);return}const b=e(u,i.files,t,{mtimeMs:Date.now(),include:n=>!A.has(n)});return l("log",`blender: Blender's ${i.files.length}-file runtime tree is on disk (${y.installed?`installed, ${Math.round((y.bytes??0)/1e6)} MB`:"installed before"}) in ${Math.round(performance.now()-r)} ms`),b}const _="host-tree.blender-runtime-",R=2e4;function U(e){const a=new Set,l=()=>{for(const r of[...a])r()};return e.on?.("change",l),e.on?.("delete",l),{...e.on?{changed:r=>new Promise(o=>{const s=()=>{clearTimeout(i),a.delete(s),o()},i=setTimeout(s,r);a.add(s)})}:{},readFile:r=>e.readFile(r),writeFile:(r,o)=>(e.writeFileSync(r,o),Promise.resolve()),mkdirTree:async r=>e.mkdirSync(r,{recursive:!0}),readdir:async r=>e.readdirSync(r),stat:async r=>{if(!e.existsSync(r))return null;const o=e.statSync(r);return{size:o.size,mode:o.mode&4095|(o.isDirectory()?16384:32768),mtimeMs:o.mtimeMs}},unlink:async r=>e.unlinkSync(r)}}async function V(e,a){const l=performance.now(),[r,o,s]=await Promise.all([T("browser-wali/worker-program.js"),T("browser-runtime/browser-memory-filesystem.js"),T("browser-wali/shared-file-layer.js").catch(()=>({}))]),i=r.BrowserWaliWorkerProgram,d=o.BrowserMemoryFileSystem;if(!i||!d)throw new Error("The substrate modules this editor served do not export BrowserWaliWorkerProgram and BrowserMemoryFileSystem; the WALI pack directory holds a browser-substrate this engine does not know.");const h=r.preloadWaliModule;h&&a.integrity&&h(f("blender.wasm"),a.integrity).catch(()=>{});const t=new d;for(const m of["/tmp","/root","/work",k,...v,e.project])t.mkdirSync(m,{recursive:!0});const c=s.sharedFileLayerFromIndex,y=s.storeFileLayerFromIndex,b=s.holdTreeStore,n=(y?await H(y,b,e.log):void 0)??(c?await C(c,e.log):void 0);n||await z(t,e.log),t.writeFileSync(x,W);const g=a.workers??{pool:16,blender:4},S=new i(t,{url:f("blender.wasm"),...a.integrity?{integrity:a.integrity}:{},cwd:"/work",env:{HOME:"/root",TMPDIR:"/tmp",PATH:"/usr/bin:/bin",BLENDER_SYSTEM_RESOURCES:u,BLENDER_SYSTEM_SCRIPTS:`${u}/scripts`,BLENDER_SYSTEM_DATAFILES:`${u}/datafiles`,BLENDER_SYSTEM_PYTHON:`${u}/python`,PYTHONPATH:`${u}/python/lib/numpy313.zip:${u}/python/lib/wheels313.zip`,VOLTER_SESSION_ROOT:k,VOLTER_EXPORT_BUFFER_PATH:B,OPENIMAGEIO_THREADS:"1"},...n?{layers:[n]}:{},privateRoots:["/tmp"],threadPoolSize:g.pool,network:{allowedHosts:[],maxConnections:0,maxBytes:0}});let E=null,w=null;const L=m=>{for(const p of m.split(`
|
|
2
|
+
`))p!==""&&(p.startsWith("@@VOLTER-READY ")&&(E=p.slice(15)),e.log(D(p),p))};for(S.run(["/blender","-b","--factory-startup","-noaudio","--python-use-system-env","-t",String(g.blender),"--python",x],{onStdout:L,onStderr:L,onDiagnostic:m=>e.log("error",`@@VOLTER-ERROR ${m}`)}).then(m=>{w=`Blender exited ${m.exitCode}`},m=>{w=m instanceof Error?m.message:String(m)}).finally(()=>{w!==null&&e.log("error",`@@VOLTER-ERROR the Blender program ended: ${w}`)});E===null;){if(w!==null)throw new Error(`Blender never reached its session: ${w}`);await F(5)}const M=performance.now()-l,I=JSON.parse(E);e.log("log",`blender: the substrate skew is up (${g.blender} Blender threads in a pool of ${g.pool}; Blender is SERIAL without -t N and says so)`);const O=U(t),{request:P}=N(O,e,()=>w);return{skew:"wali",banner:I,files:O,request:P,readArena:()=>t.readFile(B),bootMs:M,memoryBytes:()=>null,releasedPayloadBytes:null}}export{V as startWaliBlenderEngine};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{L as l}from"./blender-runtime-host-C8oSlAg-.js";import"./output-pass-CLtpDjSJ.js";import"./three.module-1DIrGqXA.js";import"./linear-resolve-DHfrDPG9.js";import"./volter-sdk-BuGz2Ml5.js";const s="workspace.command",e=(o,n)=>({...n===void 0?{}:{timeoutMs:n},derivedRefresh:o,handle:r=>l(r)}),c={"blender-draw-batching":e("none"),"blender-start":e("none",12e4),"blender-stop":e("none",30*6e4),"blender-execute":e("always",30*6e4),"blender-native-preview":e("none",12e4),"blender-scene-info":e("none",6e4),"blender-object-info":e("none",6e4),"blender-screenshot-view":e("always",6e4),"blender-read-file":e("none",6e4),"blender-write-file":e("none",6e4),"blender-list-files":e("none",6e4),"blender-rna":e("none",6e4),"blender-rna-context":e("none",6e4),"blender-rna-set":e("always",6e4),"blender-outliner":e("none",6e4),"blender-node-tree":e("none",6e4),"blender-uv-layout":e("none",6e4),"blender-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-BuGz2Ml5.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};
|