@volter/game-editor 0.5.80 → 0.5.82
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 +22 -22
- package/catalog/entries/blender.json +2 -2
- package/catalog/entries/music.json +2 -2
- package/dist/.vite/manifest.json +2115 -2114
- package/dist/assets/{AssetBudgetPanel-C-RNso12.js → AssetBudgetPanel-Iip49rxI.js} +3 -3
- package/dist/assets/{AudioViewer-BQ4yQJmw.js → AudioViewer-DmkOvskF.js} +1 -1
- package/dist/assets/{CanvasBoardDocument-D1_2Ahx7.js → CanvasBoardDocument-DCS8uzQo.js} +1 -1
- package/dist/assets/CanvasSceneViewport-CfOuQiQ0.js +1 -0
- package/dist/assets/{ColorInput-B-GRGKwB.js → ColorInput-7CPpl8MI.js} +1 -1
- package/dist/assets/EntityModelDocument-CplmAib0.js +1 -0
- package/dist/assets/{EnvironmentAssetDocument-BbWPrmTc.js → EnvironmentAssetDocument-DlS6KFJu.js} +1 -1
- package/dist/assets/{GameplaySessionTimeline-Bi_Z_lDm.js → GameplaySessionTimeline-C3zH6edi.js} +1 -1
- package/dist/assets/{ImageViewer-CVYDgTSj.js → ImageViewer-C0lQ6YO0.js} +1 -1
- package/dist/assets/InspectorObjectPreview-Bjc1Tn-I.js +1 -0
- package/dist/assets/{JsonAssetDocument-O-o1eVJB.js → JsonAssetDocument-DjmH9CQH.js} +1 -1
- package/dist/assets/{LiveModuleDocument-CCpe63vw.js → LiveModuleDocument-Hiot8Q5L.js} +1 -1
- package/dist/assets/{LutAssetDocument-C_QGvjj7.js → LutAssetDocument-6bBwNMOn.js} +1 -1
- package/dist/assets/{ModelAssetDocument-DKyxph4r.js → ModelAssetDocument-G6ajiV51.js} +1 -1
- package/dist/assets/{NonThreeAuthoringBootstrap-DkfIBzMs.js → NonThreeAuthoringBootstrap-DpieYAMC.js} +1 -1
- package/dist/assets/Object3DDocumentToolbar-BtZkDxKa.js +1 -0
- package/dist/assets/Object3DDocumentViewport-BhH8afDi.js +2 -0
- package/dist/assets/{Object3DPreview-DI7aoPKe.js → Object3DPreview-DdrYVJUZ.js} +1 -1
- package/dist/assets/{OnlineAssetDetail-BIRXvQsJ.js → OnlineAssetDetail-D06eTe3y.js} +1 -1
- package/dist/assets/{PlayBar-BYVJHvd5.js → PlayBar-BbzjgLFJ.js} +1 -1
- package/dist/assets/{QuarksAssetDocument-DEcSmewA.js → QuarksAssetDocument-wGHNt4ov.js} +1 -1
- package/dist/assets/{ReactCanvasControls-DplBODky.js → ReactCanvasControls-BL2tOUj6.js} +1 -1
- package/dist/assets/{RootSelectionOverlay-BzEZwAaO.js → RootSelectionOverlay-C6Wu8nIs.js} +1 -1
- package/dist/assets/{ShaderAssetDocument-ysUJR4Np.js → ShaderAssetDocument-BDi8iNLA.js} +4 -4
- package/dist/assets/{ShadowEditor-BKz_sq1R.js → ShadowEditor-C3L0UWSH.js} +1 -1
- package/dist/assets/{SourceAssetViewer-DhoQonvP.js → SourceAssetViewer-D832bARo.js} +1 -1
- package/dist/assets/StageHost-Bor1eHEO.js +2 -0
- package/dist/assets/{StoryPreviewMount-BF6vqmhx.js → StoryPreviewMount-CmOEFzZY.js} +1 -1
- package/dist/assets/{ThreeBoardDocument-vedTeiN9.js → ThreeBoardDocument-BtBMGtiQ.js} +2 -2
- package/dist/assets/{ThreeIsolationSceneContent-TT4T-ehp.js → ThreeIsolationSceneContent-BEHNSEsi.js} +1 -1
- package/dist/assets/{ToolObject3DPreview-C52QCJAO.js → ToolObject3DPreview-76LMkfin.js} +1 -1
- package/dist/assets/{Toolbar-Bo-l61Lo.js → Toolbar-BEBQdxRz.js} +1 -1
- package/dist/assets/{TransientHint-DFAcEEFI.js → TransientHint-CzsdY8W6.js} +1 -1
- package/dist/assets/{VideoViewer-BM_9gSgl.js → VideoViewer-Ckrawyuq.js} +1 -1
- package/dist/assets/{ViewportShadingMenu-CWutLX1G.js → ViewportShadingMenu-BofQt6_4.js} +1 -1
- package/dist/assets/{active-ingest-BuNeO4Mb.js → active-ingest-D_ryI_R4.js} +2 -2
- package/dist/assets/{animation-clock-B-fl-HTL.js → animation-clock-QjtJDIsR.js} +1 -1
- package/dist/assets/{animation-mixers.service-DgxB7R_k.js → animation-mixers.service-BInUs1US.js} +1 -1
- package/dist/assets/{animation-timeline.utility-RWwRwQvM.js → animation-timeline.utility-DUrfNSwn.js} +1 -1
- package/dist/assets/{asset-budget-asset.menu-D2Tdwqxf.js → asset-budget-asset.menu-DVQEksFp.js} +1 -1
- package/dist/assets/{asset-budget.action-WMiFAlTi.js → asset-budget.action-C-ENAa52.js} +1 -1
- package/dist/assets/{asset-budget.document-CckPEzno.js → asset-budget.document-Bb1PyL3H.js} +1 -1
- package/dist/assets/{asset-budget.menu-DPMPOTSo.js → asset-budget.menu-CPi2yjBA.js} +1 -1
- package/dist/assets/{asset-editor-persistence-DttxUta0.js → asset-editor-persistence-Duoq7o22.js} +1 -1
- package/dist/assets/{asset-loaders-9M6lxMew.js → asset-loaders-BftJ2m7-.js} +1 -1
- package/dist/assets/{asset-preview-C36PaXvM.js → asset-preview-BS71mXsZ.js} +1 -1
- package/dist/assets/{audio-unlock.service-BeHFOKOB.js → audio-unlock.service-C3ygvDjU.js} +1 -1
- package/dist/assets/{audio.utility-HRjVG-Co.js → audio.utility-DF55sgHW.js} +1 -1
- package/dist/assets/autoplay.service-DaonKf7O.js +1 -0
- package/dist/assets/{babylon-authoring-adapter-BHQY7yIy.js → babylon-authoring-adapter-CmeehOBt.js} +1 -1
- package/dist/assets/{binding-resolver-TD7-fKuX.js → binding-resolver-DUz8C8Fs.js} +2 -2
- package/dist/assets/{blender-emscripten-engine-CieQeF-r.js → blender-emscripten-engine-DQljvfR7.js} +1 -1
- package/dist/assets/{blender-node-editor.document-Bw2QbNTV.js → blender-node-editor.document-B8S2TVMM.js} +1 -1
- package/dist/assets/{blender-properties-tab-BnIbJN4f.js → blender-properties-tab-y-_BeZDx.js} +1 -1
- package/dist/assets/blender-runtime-host-CUH6peXj.js +4 -0
- package/dist/assets/{blender-runtime-skin-CwXXiusi.js → blender-runtime-skin-B1tYITn2.js} +36 -36
- package/dist/assets/blender-runtime.document-DnSl0twI.js +12 -0
- package/dist/assets/{blender-timeline.document-CESN0FrA.js → blender-timeline.document-CeCylyXB.js} +1 -1
- package/dist/assets/{blender-uv-editor.document-BdIUMC5X.js → blender-uv-editor.document-DEllMw3a.js} +1 -1
- package/dist/assets/{blender-version.status-CBKgGtQ0.js → blender-version.status-CrT9NqK-.js} +1 -1
- package/dist/assets/{blender-wali-engine-KWIxfB_o.js → blender-wali-engine-CO-jG_ik.js} +1 -1
- package/dist/assets/{blender.command-ChUV_DJE.js → blender.command-GIjMG1-m.js} +1 -1
- package/dist/assets/{board-guides-ClHJXXuu.js → board-guides-B6TEPOPi.js} +1 -1
- package/dist/assets/{bridge.command-DK8zE8yt.js → bridge.command-D6qTcgje.js} +3 -3
- package/dist/assets/{browserAll-Be-P25YM.js → browserAll-k35XRFil.js} +1 -1
- package/dist/assets/build-player.document-CHxj4P8q.js +1 -0
- package/dist/assets/{build-profiles.document-CNZvcPor.js → build-profiles.document-CZCk1HYA.js} +2 -2
- package/dist/assets/{build-progress.status-BMfffkUW.js → build-progress.status-BNwBxP2a.js} +1 -1
- package/dist/assets/{build-session-BHUOWzok.js → build-session-CW2UyYFF.js} +1 -1
- package/dist/assets/{build.action-BGriOSGD.js → build.action-EmCcMu47.js} +1 -1
- package/dist/assets/{build.command-BU7Wcsn5.js → build.command-CzEckGcR.js} +1 -1
- package/dist/assets/{build.header-B6KRt0O_.js → build.header-CsYLpZbh.js} +1 -1
- package/dist/assets/{build.menu-CpxN2aww.js → build.menu-CaDkDQuy.js} +1 -1
- package/dist/assets/{build.service-LRCZ0vL7.js → build.service-BcKtbU0-.js} +1 -1
- package/dist/assets/{camera-D8fxcMUB.js → camera-BwWZUyKt.js} +1 -1
- package/dist/assets/{camera-runtime.inspector-5RS6wvw2.js → camera-runtime.inspector-CJyi3zmp.js} +1 -1
- package/dist/assets/{canvas-design-mount-CoKGVZii.js → canvas-design-mount-B_uwZkEU.js} +6 -6
- package/dist/assets/{canvas-entry-runtime-Do5zL9dN.js → canvas-entry-runtime-DskaohHK.js} +2 -2
- package/dist/assets/{canvas-preview-frames-Jsd4Gi5S.js → canvas-preview-frames-BzLeTumX.js} +1 -1
- package/dist/assets/{canvas-story-capture.service-0SYz8LrL.js → canvas-story-capture.service-C80CsS8r.js} +2 -2
- package/dist/assets/{capability-coverage-BqCZSu0R.js → capability-coverage-wd6bAhv3.js} +2 -2
- package/dist/assets/{collaboration-presence-WWC9ZQsq.js → collaboration-presence-DcPhahtF.js} +1 -1
- package/dist/assets/{collider-DsdfCyWG.js → collider-Dw2iWV3F.js} +1 -1
- package/dist/assets/{component-board.service-6JDsY08Z.js → component-board.service-CH99sgj0.js} +2 -2
- package/dist/assets/component-board.service-Cd1c9oSN.js +2 -0
- package/dist/assets/{component-board.service-DZWOfhbB.js → component-board.service-XAxyLCnM.js} +2 -2
- package/dist/assets/{component-contracts.service-DXfwve-4.js → component-contracts.service-DerT0BP-.js} +1 -1
- package/dist/assets/{component-instance-root-pq7uyyej.js → component-instance-root-Cw_-ajBX.js} +1 -1
- package/dist/assets/{component-verbs.command-Cd_-gQ-Z.js → component-verbs.command-BHK9M2Rk.js} +1 -1
- package/dist/assets/component-verbs.service-DsxhVcvk.js +1 -0
- package/dist/assets/{config-CnqnR-iz.js → config-1rCvm02z.js} +3 -3
- package/dist/assets/configurations-CRTYw0r9.js +1 -0
- package/dist/assets/{connection.status-BkhMFG12.js → connection.status-D4fjnH24.js} +1 -1
- package/dist/assets/{constraints.inspector-CPWFDlY8.js → constraints.inspector-BgnafOLf.js} +1 -1
- package/dist/assets/{content-bounds-Ax7CFkXJ.js → content-bounds-D5pXeHJN.js} +1 -1
- package/dist/assets/{contract-system-adapters-0Odxcy6d.js → contract-system-adapters-rVGdworX.js} +1 -1
- package/dist/assets/{coverage.service-CcKdk7iJ.js → coverage.service-BNme5Agb.js} +1 -1
- package/dist/assets/{create-runtime-BhdSylT1.js → create-runtime-CcuQTSfy.js} +2 -2
- package/dist/assets/{curve-DiuqWf0-.js → curve-DorFv33R.js} +1 -1
- package/dist/assets/{data-asset-BiqUYQnI.js → data-asset-CAE35Emh.js} +1 -1
- package/dist/assets/{data-ref-mo1ecq_T.js → data-ref-DXqRnZsJ.js} +1 -1
- package/dist/assets/{debug-bridge-BN4INYe7.js → debug-bridge-DdCJSEni.js} +1 -1
- package/dist/assets/{debug-registry-BW5cue8V.js → debug-registry-xQJcVubm.js} +1 -1
- package/dist/assets/deferred-ingest-play-CEnsC3uN.js +2 -0
- package/dist/assets/{design-time-canvas-mount-mhxQlHHP.js → design-time-canvas-mount-CPRrCPFA.js} +2 -2
- package/dist/assets/design-time-layers-hmGqBp06.js +1 -0
- package/dist/assets/{design-time-mount.service-Cs_mT_-d.js → design-time-mount.service-CEmJjRIJ.js} +2 -2
- package/dist/assets/{design-time-mount.service-DPEpO4ny.js → design-time-mount.service-CLL-1Za4.js} +2 -2
- package/dist/assets/{design-time-react-mount-RdZmD9Dp.js → design-time-react-mount-DmXi3GBy.js} +1 -1
- package/dist/assets/{document-preview-three-D4M5qFH3.js → document-preview-three-B4j_zNef.js} +1 -1
- package/dist/assets/{dom-authoring-adapter-B97hwEwz.js → dom-authoring-adapter-BklRbjZB.js} +1 -1
- package/dist/assets/{draco3d-B_PtVdzj.js → draco3d-CFWI1XDT.js} +1 -1
- package/dist/assets/{edit-mode-audio.service-BZxbnyf-.js → edit-mode-audio.service-SUzv0nHs.js} +1 -1
- package/dist/assets/{edit-mode-authoring-CVKwIPOy.js → edit-mode-authoring-CSt3zzmS.js} +1 -1
- package/dist/assets/{edit-mode-networking.service-2aXyBwkO.js → edit-mode-networking.service-D6UohrCr.js} +1 -1
- package/dist/assets/editor-api-WeHVNlEo.js +1 -0
- package/dist/assets/{editor-layers-DI1Wkr8F.js → editor-layers-CjeYrUlm.js} +1 -1
- package/dist/assets/{editor-shell-store-DlGykD-E.js → editor-shell-store-DckLm6m8.js} +1 -1
- package/dist/assets/{entity-object-C374JqRs.js → entity-object-V13bGmay.js} +1 -1
- package/dist/assets/{extend-BOaYynPp.js → extend-BQeRA-aV.js} +1 -1
- package/dist/assets/{fork-menu-DGjsgL8L.js → fork-menu-Bthg9viY.js} +1 -1
- package/dist/assets/{frame-debugger-store-Czy2FTqO.js → frame-debugger-store-DDxWlDPK.js} +1 -1
- package/dist/assets/{game-contract-seams-GoIZaA0s.js → game-contract-seams-DrYyE5PX.js} +1 -1
- package/dist/assets/{game-css-scope-transform-9t97Smqk.js → game-css-scope-transform-D5hQWaci.js} +1 -1
- package/dist/assets/game-document.service-cJ1yKc2V.js +1 -0
- package/dist/assets/{game-eval.command-BYEEWjUv.js → game-eval.command-CKo-W17_.js} +1 -1
- package/dist/assets/{game-module-access-BqevF7uR.js → game-module-access-DuptGLGx.js} +1 -1
- package/dist/assets/game-network-CAH_Jsh6.js +22 -0
- package/dist/assets/gameplay-export-B-JE4uSD.js +1 -0
- package/dist/assets/gameplay-replay-WyopKGyB.js +1 -0
- package/dist/assets/{gameplay.command-BrleMyQK.js → gameplay.command-D4cY3nOq.js} +1 -1
- package/dist/assets/generation-jobs-CcCrhKLM.js +1 -0
- package/dist/assets/{generation.service-nVpgwKEB.js → generation.service-CQwmLAOQ.js} +1 -1
- package/dist/assets/{generations-AU4LkWAl.js → generations-qfhCRH8C.js} +1 -1
- package/dist/assets/{generations.status-CSeb5inI.js → generations.status-CcbR2OfF.js} +1 -1
- package/dist/assets/{hierarchy-marks-EEQa08In.js → hierarchy-marks-B1jSqxSv.js} +1 -1
- package/dist/assets/{hosted-asset-materialization-DZlaRGkJ.js → hosted-asset-materialization-BZf-8JA1.js} +1 -1
- package/dist/assets/{index-ynpEqujB.js → index-CHa43s2p.js} +1 -1
- package/dist/assets/{index-N4BP9b5x.js → index-Cj_b0Ygc.js} +1 -1
- package/dist/assets/{index-CUBra63E.js → index-D-RMHSzb.js} +1 -1
- package/dist/assets/{index-BpXj_ZfC.js → index-DXtfej3G.js} +1 -1
- package/dist/assets/{index-BHccVo52.js → index-D_ViOFCz.js} +2 -2
- package/dist/assets/{index-DlFjiZgV.js → index-DrEVdQvN.js} +1 -1
- package/dist/assets/{index-flxMlfV4.js → index-V4J7xfRg.js} +7 -7
- package/dist/assets/{index-OlF4eBxk.js → index-aREcGExk.js} +1 -1
- package/dist/assets/index-yXSK_qPW.js +1 -0
- package/dist/assets/{inference-diagnostics-MWqnRUsN.js → inference-diagnostics-DoZQ1mpg.js} +1 -1
- package/dist/assets/{ingest-boot-viewport-CT1eaWqO.js → ingest-boot-viewport-DWdOtGGE.js} +1 -1
- package/dist/assets/ingest-siblings-DyvasVDH.js +1 -0
- package/dist/assets/{ingest-source-persistence-CJGE5-AU.js → ingest-source-persistence-CQOJeGhj.js} +1 -1
- package/dist/assets/{ingest.service-2TRoiqQ8.js → ingest.service-CqIcydem.js} +1 -1
- package/dist/assets/{inspect-Dl5bH02T.js → inspect-DiSjB-N1.js} +1 -1
- package/dist/assets/instances.command-COw2QpbN.js +1 -0
- package/dist/assets/{json-history-resource-DTUpacfx.js → json-history-resource-CH2nzMZh.js} +1 -1
- package/dist/assets/{layered-pick-DKNj5L29.js → layered-pick-BUr1U8lU.js} +1 -1
- package/dist/assets/{light-CX-83nBK.js → light-CxiGIJma.js} +1 -1
- package/dist/assets/live-project-verbs-CnknlUlT.js +1 -0
- package/dist/assets/{machine.document-DE8aRbOi.js → machine.document-D7jMrzXt.js} +1 -1
- package/dist/assets/{machines.finder-CZ3P0odZ.js → machines.finder-Dor3O0uf.js} +1 -1
- package/dist/assets/{material-f1KOKE_r.js → material-B6cH1Oqw.js} +1 -1
- package/dist/assets/{material-factory-DkCPSCLt.js → material-factory-BN3Lax5C.js} +1 -1
- package/dist/assets/{mesh-DM3TH9xS.js → mesh-Cj-CYroI.js} +1 -1
- package/dist/assets/{model-asset-sections.service-CL4Rlwvc.js → model-asset-sections.service-mC4WJFTA.js} +1 -1
- package/dist/assets/{model-inspection-BS3uYvYU.js → model-inspection-8o57YSZW.js} +1 -1
- package/dist/assets/{model-thumbnail-WJb6B3qQ.js → model-thumbnail-chePRlH7.js} +1 -1
- package/dist/assets/{models.finder-BXJhCiw9.js → models.finder-CKkT5ZdU.js} +1 -1
- package/dist/assets/{module-mode-CtoVZDhp.js → module-mode-BMiMhHI3.js} +2 -2
- package/dist/assets/{mount-canvas-ingest-root-DI8iSEV4.js → mount-canvas-ingest-root-B1swVIUJ.js} +2 -2
- package/dist/assets/{mount-dom-ingest-root-n4tbYw-j.js → mount-dom-ingest-root-B8hO5mht.js} +2 -2
- package/dist/assets/{mount-ingest-root-pyV6jEkB.js → mount-ingest-root-Cbnh-mSw.js} +2 -2
- package/dist/assets/{mount-manifest-DsGMOkm4.js → mount-manifest-B7oL1Abg.js} +1 -1
- package/dist/assets/{mount-three-ingest-root-CeH_uOP0.js → mount-three-ingest-root-BdUJx6ix.js} +1 -1
- package/dist/assets/{mounted-authoring-BHpx-z2Y.js → mounted-authoring-C47L5H5t.js} +1 -1
- package/dist/assets/{mounted-story-viewport-source-D8kOfa96.js → mounted-story-viewport-source-CyEK_vaq.js} +1 -1
- package/dist/assets/{native-debug-module-lR1oG4Vd.js → native-debug-module-JJOFtIVz.js} +1 -1
- package/dist/assets/{navigation-DvTw5hJ4.js → navigation-ROJM2w84.js} +1 -1
- package/dist/assets/{navmesh.menu-BaBNScgJ.js → navmesh.menu-DjefqtkI.js} +1 -1
- package/dist/assets/{navmesh.service-BK6BlOz3.js → navmesh.service-BPqjEQiq.js} +1 -1
- package/dist/assets/network-observer.service-GFzXuBMb.js +1 -0
- package/dist/assets/{network.utility-BJ3bZOCQ.js → network.utility-6Y5u53n8.js} +1 -1
- package/dist/assets/object3d-document-session-registry-DNCOGA3i.js +2 -0
- package/dist/assets/{oid-transform-RlofQ4tU.js → oid-transform-DQzN_Gl_.js} +1 -1
- package/dist/assets/{particles-CjR9Po6N.js → particles-DGdUmqOr.js} +1 -1
- package/dist/assets/{pixi-authoring-adapter-B_mXxWkJ.js → pixi-authoring-adapter-BRktdcIz.js} +1 -1
- package/dist/assets/{pixi-live-write-target-tm5yHKss.js → pixi-live-write-target-Dg0mdLaa.js} +1 -1
- package/dist/assets/play.command-4IDAqR5W.js +2 -0
- package/dist/assets/{presentation-gTgwItzD.js → presentation-8m-RDKIS.js} +1 -1
- package/dist/assets/{product-Cmel9X9k.js → product-t6tauO7R.js} +1 -1
- package/dist/assets/{profiler.action-DSM2uSYR.js → profiler.action-CXA4IkQB.js} +1 -1
- package/dist/assets/{profiler.menu-CcYyqUfU.js → profiler.menu-BgIBv4-I.js} +1 -1
- package/dist/assets/{profiler.utility-CQtqdQgC.js → profiler.utility-BYoRbfIK.js} +1 -1
- package/dist/assets/{project-authoring-session-BqZuntp2.js → project-authoring-session-DkekCxNv.js} +2 -2
- package/dist/assets/{properties-bone-constraints.inspector-D3XrqptB.js → properties-bone-constraints.inspector-DXpiCtf9.js} +1 -1
- package/dist/assets/{properties-bone.inspector-CmVamAC6.js → properties-bone.inspector-wIDsP4c5.js} +1 -1
- package/dist/assets/{properties-collection.inspector-BGi5eXmI.js → properties-collection.inspector-5SRPbqfM.js} +1 -1
- package/dist/assets/{properties-constraints.inspector-C62EOuWg.js → properties-constraints.inspector-DIjKz692.js} +1 -1
- package/dist/assets/{properties-data.inspector-qDFtLdw8.js → properties-data.inspector-DE6i8biZ.js} +1 -1
- package/dist/assets/{properties-material.inspector-B--PD0se.js → properties-material.inspector-Cu1UCPY4.js} +1 -1
- package/dist/assets/{properties-modifiers.inspector-1tdk1EKp.js → properties-modifiers.inspector-DsQzA638.js} +1 -1
- package/dist/assets/{properties-object.inspector-CYH5w2un.js → properties-object.inspector-C57X0GJq.js} +1 -1
- package/dist/assets/{properties-output.inspector-C78QuVlY.js → properties-output.inspector-DzrcFuRM.js} +1 -1
- package/dist/assets/{properties-particles.inspector-DyDiMjmC.js → properties-particles.inspector-DGqSnelN.js} +1 -1
- package/dist/assets/{properties-physics.inspector-DG5GOyLE.js → properties-physics.inspector-DIjhtiLe.js} +1 -1
- package/dist/assets/{properties-render.inspector-D8ldGTdq.js → properties-render.inspector-CX0orwn9.js} +1 -1
- package/dist/assets/{properties-scene.inspector-Cf_KBWbv.js → properties-scene.inspector-DaHNL_sq.js} +1 -1
- package/dist/assets/{properties-texture.inspector-BznU5kNc.js → properties-texture.inspector-B5hmxPRy.js} +1 -1
- package/dist/assets/{properties-view-layer.inspector-pnRv91FS.js → properties-view-layer.inspector-C7hdJgei.js} +1 -1
- package/dist/assets/{properties-world.inspector-CzUtvYuC.js → properties-world.inspector-EWTC6jNw.js} +1 -1
- package/dist/assets/r3f-design-session-CXlGV9hp.js +2 -0
- package/dist/assets/{r3f-physics-binding-D6DKTgwF.js → r3f-physics-binding-DZSIB0d_.js} +1 -1
- package/dist/assets/{r3f-source-authoring-adapter-nqn_PR3m.js → r3f-source-authoring-adapter-GR97EmII.js} +1 -1
- package/dist/assets/{react-canvas-navigation-WxI8Mxyc.js → react-canvas-navigation-L_mOnybL.js} +1 -1
- package/dist/assets/{react-inspector.service-C1Prvq6u.js → react-inspector.service-B4P3UnSY.js} +1 -1
- package/dist/assets/{react-story-board-BRUE9hN1.js → react-story-board-CT1_3sk_.js} +1 -1
- package/dist/assets/{react-three-rapier.esm-CA7vFsM3.js → react-three-rapier.esm-DyMNYoA_.js} +1 -1
- package/dist/assets/{react-world-authoring-adapter-DVNps-az.js → react-world-authoring-adapter-OR1SW2jI.js} +1 -1
- package/dist/assets/{realm-services-CL4ih5gp.js → realm-services-u0mnjXU9.js} +1 -1
- package/dist/assets/{reflection-probe-capture.inspector-C9mzBLI7.js → reflection-probe-capture.inspector-CTNlSaGW.js} +1 -1
- package/dist/assets/{registry-N8Uqh2X-.js → registry-wqakYaDW.js} +1 -1
- package/dist/assets/{relative-import-specifier-cRtWQWmH.js → relative-import-specifier-DXWVQf0o.js} +1 -1
- package/dist/assets/{render-env-xu-q_sLG.js → render-env-CN09NtDf.js} +1 -1
- package/dist/assets/{render-features-BMOBYkLQ.js → render-features-HCEupUJ6.js} +1 -1
- package/dist/assets/{render-settings-Cnd69vhe.js → render-settings-Clt6d05o.js} +1 -1
- package/dist/assets/{resolve-three-C9OlnFHx.js → resolve-three-CLzKVMx2.js} +13 -13
- package/dist/assets/{root-seam-contract-BoD0NaOZ.js → root-seam-contract-D2uQHWF9.js} +1 -1
- package/dist/assets/{run-selection-DL0vJV6z.js → run-selection-AyelFc9T.js} +1 -1
- package/dist/assets/{scene-capture-CoTN4qOO.js → scene-capture-WbPcLfJl.js} +1 -1
- package/dist/assets/{scene-document.service-kgtsh1r2.js → scene-document.service-4U6rDhCp.js} +2 -2
- package/dist/assets/{scene-framing-CljHc6tN.js → scene-framing-DzSL2Cld.js} +1 -1
- package/dist/assets/{seeded-random-BlGWBUER.js → seeded-random-tpdJjdqy.js} +1 -1
- package/dist/assets/{session-BMie6EFt.js → session-kSIjcXJT.js} +47 -8
- package/dist/assets/{setup-renderer-jOQdnmo7.js → setup-renderer-B5vZmCyu.js} +1 -1
- package/dist/assets/{source-object3d-authoring-adapter-qg_NN2PX.js → source-object3d-authoring-adapter-BQnQ3Qzg.js} +1 -1
- package/dist/assets/{source-persistence-backend-DoNJeJa8.js → source-persistence-backend-uyd6NiWD.js} +1 -1
- package/dist/assets/stage-keyboard-B2yrk2zu.js +1 -0
- package/dist/assets/stage-overlay-set-Cqtz3s06.js +1 -0
- package/dist/assets/{stage-presence-markers-Bu9mH0m_.js → stage-presence-markers-BgLs0Aj5.js} +1 -1
- package/dist/assets/stage-transform-tools-BHcz53td.js +1 -0
- package/dist/assets/{standard-viewport-dressing-B8VpmbHt.js → standard-viewport-dressing-uhv_3JvQ.js} +2 -2
- package/dist/assets/{state-watch.action-Dhb9xQb9.js → state-watch.action-BJ08HgcO.js} +1 -1
- package/dist/assets/{state-watch.menu-xf7oO-4l.js → state-watch.menu-rAULwijr.js} +1 -1
- package/dist/assets/{state-watch.utility-DnGO08TW.js → state-watch.utility-eEbQcj8t.js} +1 -1
- package/dist/assets/{story-capture-CyeAHem-.js → story-capture-B8wfSf5s.js} +1 -1
- package/dist/assets/{story-documents-DUm0LUTp.js → story-documents-Cm4jCkW5.js} +2 -2
- package/dist/assets/{story-documents.service-BWBSUjBO.js → story-documents.service-BDvQCslK.js} +1 -1
- package/dist/assets/{story-documents.service-DOvAnwES.js → story-documents.service-Cgtg6rXn.js} +1 -1
- package/dist/assets/story-media-presence-SGlp_afL.js +1 -0
- package/dist/assets/{story-pixi-preview-DHtzdru2.js → story-pixi-preview-D62Q_vIW.js} +1 -1
- package/dist/assets/{story-presentation-BpfNrI6t.js → story-presentation-CofUdEU7.js} +1 -1
- package/dist/assets/{story-three-preview-pzhR44fH.js → story-three-preview-B9O1wapP.js} +2 -2
- package/dist/assets/{studio-environment-Dw2FBct5.js → studio-environment-BIhqrtFc.js} +1 -1
- package/dist/assets/{surface-state-NwiDDkWI.js → surface-state-DrM3wsrr.js} +1 -1
- package/dist/assets/{syntactic-prop-specs-_Yk2QtpW.js → syntactic-prop-specs-BGz0N7Dg.js} +1 -1
- package/dist/assets/{team-playtest.service-DdUlOcrk.js → team-playtest.service-CiE8UJAe.js} +1 -1
- package/dist/assets/{three-2yjp9YMj.js → three-BQfhEwUz.js} +1 -1
- package/dist/assets/{three-authoring-adapter-B5h6dxvp.js → three-authoring-adapter-COBwREQO.js} +1 -1
- package/dist/assets/three-authoring.service-C0azvoq8.js +2 -0
- package/dist/assets/{three-ingest-runtime-B9surImB.js → three-ingest-runtime-BnRF_nJN.js} +1 -1
- package/dist/assets/three-integration-DeWYFf1x.js +2 -0
- package/dist/assets/three-integration.service-CoWCBTmg.js +1 -0
- package/dist/assets/{three-projection-core-xgnaC08N.js → three-projection-core-PQm-CO61.js} +1 -1
- package/dist/assets/{three-state-DVnNjIbQ.js → three-state-C7khRIQE.js} +1 -1
- package/dist/assets/{three-story-capture.service-DgVUrOW6.js → three-story-capture.service-B0oiGIfp.js} +2 -2
- package/dist/assets/three-story-model-D7g2pqfJ.js +1 -0
- package/dist/assets/{three-viewport-presentation-C5wGhMgD.js → three-viewport-presentation-B_tBudM-.js} +5 -5
- package/dist/assets/transform-mode-request-DWM6BdRA.js +1 -0
- package/dist/assets/{transport-strip-Dvkyjqwq.js → transport-strip-vgXGDgkI.js} +1 -1
- package/dist/assets/transport.header-CfVHXjrT.js +1 -0
- package/dist/assets/{tuples-tlEYpiUU.js → tuples-BnYrlQqS.js} +1 -1
- package/dist/assets/ui-board-document-B_-K9luq.js +2 -0
- package/dist/assets/{user-data-C8dmlLGA.js → user-data-CifDDvSr.js} +1 -1
- package/dist/assets/{utility-view-state-8ikycS0_.js → utility-view-state-BPl8Asup.js} +1 -1
- package/dist/assets/{viewport-door-Brt6-rPp.js → viewport-door-BCXEYmon.js} +1 -1
- package/dist/assets/{viewport-root-presentation-DEm3C1-i.js → viewport-root-presentation-DJLpUuf0.js} +1 -1
- package/dist/assets/{viewport-surface-status-Dbc5Yxun.js → viewport-surface-status-jwLhIK_M.js} +1 -1
- package/dist/assets/{webworkerAll-qWuefF-u.js → webworkerAll-P6jePa6X.js} +1 -1
- package/dist/assets/{worker-Gtu-EAm9.js → worker-CJIsrsP6.js} +1 -1
- package/dist/assets/{workspace-arrangement-BnGzBm57.js → workspace-arrangement-B_OcbQbj.js} +1 -1
- package/dist/assets/{world-documents-DH7drgx-.js → world-documents-Bx3j867R.js} +1 -1
- package/dist/assets/{world-root-stage-binding-DIigD-mK.js → world-root-stage-binding-LEhjWDkn.js} +1 -1
- package/dist/assets/{xstate-animation-binding-BpYb4mXT.js → xstate-animation-binding-Dionc_fC.js} +1 -1
- package/dist/assets/{xstate-animation-meta-0RXvMgDk.js → xstate-animation-meta-XEmD_qc_.js} +1 -1
- package/dist-node/cli.js +16 -16
- package/package.json +16 -16
- package/dist/assets/CanvasSceneViewport-BdHcsAyR.js +0 -1
- package/dist/assets/EntityModelDocument-BkRbfE7C.js +0 -1
- package/dist/assets/InspectorObjectPreview-BooanIbq.js +0 -1
- package/dist/assets/Object3DDocumentToolbar-BGkgzg_Y.js +0 -1
- package/dist/assets/Object3DDocumentViewport-C81c8PFJ.js +0 -2
- package/dist/assets/StageHost-CSw286Im.js +0 -2
- package/dist/assets/autoplay.service-EjNkSGFD.js +0 -1
- package/dist/assets/blender-runtime-host-W_QVh8pY.js +0 -4
- package/dist/assets/blender-runtime.document-CxTCG8RI.js +0 -12
- package/dist/assets/build-player.document-Clkf52m6.js +0 -1
- package/dist/assets/component-board.service-Dj_INzxs.js +0 -2
- package/dist/assets/component-verbs.service-Do8eBA--.js +0 -1
- package/dist/assets/configurations-DFYaoXBK.js +0 -1
- package/dist/assets/deferred-ingest-play-C6qytzjB.js +0 -2
- package/dist/assets/design-time-layers-CCEX-9ul.js +0 -1
- package/dist/assets/editor-api-B0aNu3G5.js +0 -1
- package/dist/assets/game-document.service-DBSsz8Ne.js +0 -1
- package/dist/assets/game-network-DtzKFtge.js +0 -22
- package/dist/assets/gameplay-export-BNVUERuW.js +0 -1
- package/dist/assets/gameplay-replay-DEKg9ROx.js +0 -1
- package/dist/assets/generation-jobs-Bmm6k_GH.js +0 -1
- package/dist/assets/index-PKSmixoy.js +0 -1
- package/dist/assets/ingest-siblings-BJ66Uen_.js +0 -1
- package/dist/assets/instances.command-2QbcHvH-.js +0 -1
- package/dist/assets/live-project-verbs-nmQ1saHI.js +0 -1
- package/dist/assets/network-observer.service-CskzAy97.js +0 -1
- package/dist/assets/object3d-document-session-registry-DI9WfJDy.js +0 -2
- package/dist/assets/play.command-BmsyGtu0.js +0 -2
- package/dist/assets/r3f-design-session-Dwqxg13i.js +0 -2
- package/dist/assets/stage-keyboard-jfRYkBwZ.js +0 -1
- package/dist/assets/stage-overlay-set-Bo-JC6N0.js +0 -1
- package/dist/assets/stage-transform-tools-CSnDpsY3.js +0 -1
- package/dist/assets/story-media-presence-7Tbl7-hO.js +0 -1
- package/dist/assets/three-authoring.service-CIVEDuMV.js +0 -2
- package/dist/assets/three-integration-K2zwKa-Z.js +0 -2
- package/dist/assets/three-integration.service-kjZ0g0er.js +0 -1
- package/dist/assets/three-story-model-B0qnMa7M.js +0 -1
- package/dist/assets/transform-mode-request-COfeHSRX.js +0 -1
- package/dist/assets/transport.header-CFTM9Q_n.js +0 -1
- package/dist/assets/ui-board-document-BlKR5Cyh.js +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as i}from"./jsx-runtime-DPjLkJKQ.js";import{gl as Ce}from"./index-flxMlfV4.js";import{r as T}from"./index-nmcBqr7Y.js";import{s as Te,b as Q,a as Ee,n as ee,c as B,d as U,r as we,e as Oe,f as Ie,N as Ne}from"./blender-runtime-host-W_QVh8pY.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-D_NuPfjr.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./preview-renderer-BrYNFV1p.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./environment-Dg-YaLsA.js";import"./RoomEnvironment-BkknvS_I.js";import"./EXRLoader-CITMBvGd.js";import"./HDRLoader-BTGuGhVo.js";import"./renderer-ownership-BovSEcLv.js";import"./output-pass-HurwNl0G.js";import"./Pass-D1MRT672.js";import"./clip-planes-CnAI6DZn.js";import"./content-bounds-Ax7CFkXJ.js";import"./hierarchy-marks-EEQa08In.js";import"./workspace-arrangement-BnGzBm57.js";const Re={customSocketOrder:!0,items:[{kind:"input",name:"Image"},{kind:"output",name:"Image",alignWithPrevious:!0},{kind:"input",name:"Factor",identifier:"Fac"},{kind:"input",name:"Type"},{kind:"input",name:"Lift",identifier:"Base Lift"},{kind:"input",name:"Lift",identifier:"Color Lift"},{kind:"input",name:"Gamma",identifier:"Base Gamma"},{kind:"input",name:"Gamma",identifier:"Color Gamma"},{kind:"input",name:"Gain",identifier:"Base Gain"},{kind:"input",name:"Gain",identifier:"Color Gain"},{kind:"input",name:"Offset",identifier:"Base Offset"},{kind:"input",name:"Offset",identifier:"Color Offset"},{kind:"input",name:"Power",identifier:"Base Power"},{kind:"input",name:"Power",identifier:"Color Power"},{kind:"input",name:"Slope",identifier:"Base Slope"},{kind:"input",name:"Slope",identifier:"Color Slope"},{kind:"panel",name:"Input",items:[{kind:"input",name:"Temperature",identifier:"Input Temperature"},{kind:"input",name:"Tint",identifier:"Input Tint"},{kind:"layout"}]},{kind:"panel",name:"Output",items:[{kind:"input",name:"Temperature",identifier:"Output Temperature"},{kind:"input",name:"Tint",identifier:"Output Tint"},{kind:"layout"}]}]},Pe={customSocketOrder:!0,items:[{kind:"input",name:"Image"},{kind:"output",name:"Image",alignWithPrevious:!0},{kind:"input",name:"Mask"},{kind:"panel",name:"Master",items:[{kind:"input",name:"Saturation",identifier:"Master Saturation"},{kind:"input",name:"Contrast",identifier:"Master Contrast"},{kind:"input",name:"Gamma",identifier:"Master Gamma"},{kind:"input",name:"Gain",identifier:"Master Gain"},{kind:"input",name:"Offset",identifier:"Master Offset"}],defaultClosed:!0},{kind:"panel",name:"Highlights",items:[{kind:"input",name:"Saturation",identifier:"Highlights Saturation"},{kind:"input",name:"Contrast",identifier:"Highlights Contrast"},{kind:"input",name:"Gamma",identifier:"Highlights Gamma"},{kind:"input",name:"Gain",identifier:"Highlights Gain"},{kind:"input",name:"Offset",identifier:"Highlights Offset"}],defaultClosed:!0},{kind:"panel",name:"Midtones",items:[{kind:"input",name:"Saturation",identifier:"Midtones Saturation"},{kind:"input",name:"Contrast",identifier:"Midtones Contrast"},{kind:"input",name:"Gamma",identifier:"Midtones Gamma"},{kind:"input",name:"Gain",identifier:"Midtones Gain"},{kind:"input",name:"Offset",identifier:"Midtones Offset"}],defaultClosed:!0},{kind:"panel",name:"Shadows",items:[{kind:"input",name:"Saturation",identifier:"Shadows Saturation"},{kind:"input",name:"Contrast",identifier:"Shadows Contrast"},{kind:"input",name:"Gamma",identifier:"Shadows Gamma"},{kind:"input",name:"Gain",identifier:"Shadows Gain"},{kind:"input",name:"Offset",identifier:"Shadows Offset"}],defaultClosed:!0},{kind:"panel",name:"Tonal Range",items:[{kind:"input",name:"Midtones Start"},{kind:"input",name:"Midtones End"}],defaultClosed:!0},{kind:"panel",name:"Channels",items:[{kind:"input",name:"Red",identifier:"Apply On Red"},{kind:"input",name:"Green",identifier:"Apply On Green"},{kind:"input",name:"Blue",identifier:"Apply On Blue"}],defaultClosed:!0}]},_e={customSocketOrder:!0,items:[{kind:"output",name:"Image"},{kind:"input",name:"Image"},{kind:"input",name:"Factor",identifier:"Fac"},{kind:"input",name:"Spill Channel"},{kind:"input",name:"Limit Method"},{kind:"input",name:"Limit Channel"},{kind:"input",name:"Limit Strength"},{kind:"panel",name:"Spill Strength",items:[{kind:"input",name:"Use Spill Strength",panelToggle:!0},{kind:"input",name:"Strength",identifier:"Spill Strength"}],defaultClosed:!0}]},Me={customSocketOrder:!0,items:[{kind:"input",name:"Image"},{kind:"output",name:"Image",alignWithPrevious:!0},{kind:"output",name:"Plane"},{kind:"input",name:"Upper Left"},{kind:"input",name:"Upper Right"},{kind:"input",name:"Lower Left"},{kind:"input",name:"Lower Right"},{kind:"panel",name:"Sampling",items:[{kind:"input",name:"Interpolation"},{kind:"input",name:"Extension X"},{kind:"input",name:"Extension Y"}],defaultClosed:!0}]},ve={customSocketOrder:!0,items:[{kind:"input",name:"Image"},{kind:"output",name:"Image",alignWithPrevious:!0},{kind:"input",name:"Samples"},{kind:"input",name:"Center"},{kind:"input",name:"Rotation"},{kind:"input",name:"Scale"},{kind:"panel",name:"Translation",items:[{kind:"input",name:"Amount",identifier:"Translation Amount"},{kind:"input",name:"Direction",identifier:"Translation Direction"}]}]},Ae={customSocketOrder:!0,items:[{kind:"input",name:"Image"},{kind:"output",name:"Image",alignWithPrevious:!0},{kind:"input",name:"Displacement"},{kind:"panel",name:"Sampling",items:[{kind:"input",name:"Interpolation"},{kind:"input",name:"Extension X"},{kind:"input",name:"Extension Y"}],defaultClosed:!0}]},be={customSocketOrder:!0,items:[{kind:"input",name:"Image"},{kind:"output",name:"Image",alignWithPrevious:!0},{kind:"output",name:"Glare"},{kind:"output",name:"Highlights"},{kind:"input",name:"Type"},{kind:"input",name:"Quality"},{kind:"panel",name:"Highlights",items:[{kind:"input",name:"Threshold",identifier:"Highlights Threshold"},{kind:"input",name:"Smoothness",identifier:"Highlights Smoothness"},{kind:"panel",name:"Clamp",items:[{kind:"input",name:"Clamp",identifier:"Clamp Highlights",panelToggle:!0},{kind:"input",name:"Maximum",identifier:"Maximum Highlights"}],defaultClosed:!0}],defaultClosed:!0},{kind:"panel",name:"Adjust",items:[{kind:"input",name:"Strength"},{kind:"input",name:"Saturation"},{kind:"input",name:"Tint"}]},{kind:"panel",name:"Glare",items:[{kind:"input",name:"Size"},{kind:"input",name:"Streaks"},{kind:"input",name:"Streaks Angle"},{kind:"input",name:"Iterations"},{kind:"input",name:"Fade"},{kind:"input",name:"Color Modulation"},{kind:"input",name:"Diagonal",identifier:"Diagonal Star"},{kind:"input",name:"Sun Position"},{kind:"input",name:"Jitter"},{kind:"input",name:"Kernel Data Type"},{kind:"input",name:"Kernel",identifier:"Float Kernel"},{kind:"input",name:"Kernel",identifier:"Color Kernel"}]}]},De={customSocketOrder:!0,items:[{kind:"input",name:"Image"},{kind:"output",name:"Image",alignWithPrevious:!0},{kind:"output",name:"Matte"},{kind:"output",name:"Edges"},{kind:"input",name:"Key Color"},{kind:"panel",name:"Preprocess",items:[{kind:"input",name:"Blur Size",identifier:"Preprocess Blur Size"}],defaultClosed:!0},{kind:"panel",name:"Key",items:[{kind:"input",name:"Balance",identifier:"Key Balance"}],defaultClosed:!0},{kind:"panel",name:"Tweak",items:[{kind:"input",name:"Black Level"},{kind:"input",name:"White Level"},{kind:"panel",name:"Edges",items:[{kind:"input",name:"Size",identifier:"Edge Search Size"},{kind:"input",name:"Tolerance",identifier:"Edge Tolerance"}],defaultClosed:!0}],defaultClosed:!0},{kind:"panel",name:"Mask",items:[{kind:"input",name:"Garbage Matte"},{kind:"input",name:"Core Matte"}],defaultClosed:!0},{kind:"panel",name:"Postprocess",items:[{kind:"input",name:"Blur Size",identifier:"Postprocess Blur Size"},{kind:"input",name:"Dilate Size",identifier:"Postprocess Dilate Size"},{kind:"input",name:"Feather Size",identifier:"Postprocess Feather Size"},{kind:"input",name:"Feather Falloff"}],defaultClosed:!0},{kind:"panel",name:"Despill",items:[{kind:"input",name:"Strength",identifier:"Despill Strength"},{kind:"input",name:"Balance",identifier:"Despill Balance"}],defaultClosed:!0}]},Be={customSocketOrder:!0,items:[{kind:"input",name:"Image"},{kind:"output",name:"Image",alignWithPrevious:!0},{kind:"input",name:"UV"},{kind:"panel",name:"Sampling",items:[{kind:"input",name:"Interpolation"},{kind:"input",name:"Extension X"},{kind:"input",name:"Extension Y"}],defaultClosed:!0}]},Le={customSocketOrder:!0,items:[{kind:"output",name:"Mask"},{kind:"layout"},{kind:"input",name:"Size Source"},{kind:"input",name:"Size X"},{kind:"input",name:"Size Y"},{kind:"input",name:"Feather"},{kind:"panel",name:"Motion Blur",items:[{kind:"input",name:"Motion Blur",panelToggle:!0},{kind:"input",name:"Samples",identifier:"Motion Blur Samples"},{kind:"input",name:"Shutter",identifier:"Motion Blur Shutter"}],defaultClosed:!0}]},$e={customSocketOrder:!0,items:[{kind:"input",name:"Image"},{kind:"output",name:"Image",alignWithPrevious:!0},{kind:"output",name:"Plane"},{kind:"layout"},{kind:"panel",name:"Motion Blur",items:[{kind:"input",name:"Motion Blur",panelToggle:!0},{kind:"input",name:"Samples",identifier:"Motion Blur Samples"},{kind:"input",name:"Shutter",identifier:"Motion Blur Shutter"}],defaultClosed:!0}]},je={customSocketOrder:!0,items:[{kind:"input",name:"Image"},{kind:"output",name:"Image",alignWithPrevious:!0},{kind:"input",name:"Angle"},{kind:"panel",name:"Sampling",items:[{kind:"input",name:"Interpolation"},{kind:"input",name:"Extension X"},{kind:"input",name:"Extension Y"}],defaultClosed:!0}]},Fe={customSocketOrder:!0,items:[{kind:"input",name:"Image"},{kind:"output",name:"Image",alignWithPrevious:!0},{kind:"input",name:"Type"},{kind:"input",name:"X"},{kind:"input",name:"Y"},{kind:"input",name:"Frame Type"},{kind:"panel",name:"Sampling",items:[{kind:"input",name:"Interpolation"},{kind:"input",name:"Extension X"},{kind:"input",name:"Extension Y"}],defaultClosed:!0}]},Ge={customSocketOrder:!0,items:[{kind:"input",name:"Image"},{kind:"output",name:"Image",alignWithPrevious:!0},{kind:"layout"},{kind:"input",name:"Frame"},{kind:"input",name:"Invert"},{kind:"panel",name:"Sampling",items:[{kind:"input",name:"Interpolation"},{kind:"input",name:"Extension X"},{kind:"input",name:"Extension Y"}],defaultClosed:!0}]},We={customSocketOrder:!0,items:[{kind:"output",name:"Image"},{kind:"input",name:"String"},{kind:"input",name:"Font"},{kind:"input",name:"Size"},{kind:"panel",name:"Alignment",items:[{kind:"input",name:"Horizontal Alignment"},{kind:"input",name:"Vertical Alignment"}],defaultClosed:!0},{kind:"panel",name:"Wrap",items:[{kind:"input",name:"Wrap",panelToggle:!0},{kind:"input",name:"Width",identifier:"Wrap Width"}],defaultClosed:!0}]},He={customSocketOrder:!0,items:[{kind:"input",name:"Image"},{kind:"output",name:"Image",alignWithPrevious:!0},{kind:"input",name:"X"},{kind:"input",name:"Y"},{kind:"input",name:"Angle"},{kind:"input",name:"Scale"},{kind:"panel",name:"Sampling",items:[{kind:"input",name:"Interpolation"},{kind:"input",name:"Extension X"},{kind:"input",name:"Extension Y"}],defaultClosed:!0}]},Ue={customSocketOrder:!0,items:[{kind:"input",name:"Image"},{kind:"output",name:"Image",alignWithPrevious:!0},{kind:"input",name:"X"},{kind:"input",name:"Y"},{kind:"panel",name:"Sampling",items:[{kind:"input",name:"Interpolation"},{kind:"input",name:"Extension X"},{kind:"input",name:"Extension Y"}],defaultClosed:!0}]},Ye={customSocketOrder:!0,items:[{kind:"output",name:"Matrix"},{kind:"panel",name:"Column 1",items:[{kind:"input",name:"Column 1 Row 1"},{kind:"input",name:"Column 1 Row 2"},{kind:"input",name:"Column 1 Row 3"},{kind:"input",name:"Column 1 Row 4"}],defaultClosed:!0},{kind:"panel",name:"Column 2",items:[{kind:"input",name:"Column 2 Row 1"},{kind:"input",name:"Column 2 Row 2"},{kind:"input",name:"Column 2 Row 3"},{kind:"input",name:"Column 2 Row 4"}],defaultClosed:!0},{kind:"panel",name:"Column 3",items:[{kind:"input",name:"Column 3 Row 1"},{kind:"input",name:"Column 3 Row 2"},{kind:"input",name:"Column 3 Row 3"},{kind:"input",name:"Column 3 Row 4"}],defaultClosed:!0},{kind:"panel",name:"Column 4",items:[{kind:"input",name:"Column 4 Row 1"},{kind:"input",name:"Column 4 Row 2"},{kind:"input",name:"Column 4 Row 3"},{kind:"input",name:"Column 4 Row 4"}],defaultClosed:!0}]},ze={customSocketOrder:!0,items:[{kind:"panel",name:"Column 1",items:[{kind:"output",name:"Column 1 Row 1"},{kind:"output",name:"Column 1 Row 2"},{kind:"output",name:"Column 1 Row 3"},{kind:"output",name:"Column 1 Row 4"}],defaultClosed:!0},{kind:"panel",name:"Column 2",items:[{kind:"output",name:"Column 2 Row 1"},{kind:"output",name:"Column 2 Row 2"},{kind:"output",name:"Column 2 Row 3"},{kind:"output",name:"Column 2 Row 4"}],defaultClosed:!0},{kind:"panel",name:"Column 3",items:[{kind:"output",name:"Column 3 Row 1"},{kind:"output",name:"Column 3 Row 2"},{kind:"output",name:"Column 3 Row 3"},{kind:"output",name:"Column 3 Row 4"}],defaultClosed:!0},{kind:"panel",name:"Column 4",items:[{kind:"output",name:"Column 4 Row 1"},{kind:"output",name:"Column 4 Row 2"},{kind:"output",name:"Column 4 Row 3"},{kind:"output",name:"Column 4 Row 4"}],defaultClosed:!0},{kind:"input",name:"Matrix"}]},Ve={customSocketOrder:!0,items:[{kind:"input",name:"String"},{kind:"output",name:"String",alignWithPrevious:!0},{kind:"input",name:"Characters"},{kind:"input",name:"Whitespace"},{kind:"panel",name:"Limit",items:[{kind:"input",name:"Start"},{kind:"input",name:"End"}],defaultClosed:!0}]},Xe={customSocketOrder:!0,items:[{kind:"output",name:"Topology"},{kind:"input",name:"Bounds Min"},{kind:"input",name:"Bounds Max"},{kind:"input",name:"Resolution X"},{kind:"input",name:"Resolution Y"},{kind:"input",name:"Resolution Z"},{kind:"panel",name:"Min",items:[{kind:"input",name:"Min X"},{kind:"input",name:"Min Y"},{kind:"input",name:"Min Z"}],defaultClosed:!0}]},Ke={customSocketOrder:!0,conditional:!0,items:[{kind:"output",name:"Geometry"},{kind:"input",name:"",identifier:"__extend__main"},{kind:"output",name:"",identifier:"__extend__main",alignWithPrevious:!0},{kind:"panel",name:"Generated",items:[{kind:"separator"},{kind:"input",name:"",identifier:"__extend__generation"},{kind:"output",name:"",identifier:"__extend__generation",alignWithPrevious:!0}]}]},Ze={customSocketOrder:!0,items:[{kind:"output",name:"Names"},{kind:"input",name:"Geometry"},{kind:"panel",name:"Filter Data Type",items:[{kind:"input",name:"Filter Data Type",panelToggle:!0},{kind:"input",name:"Data Type"}]},{kind:"panel",name:"Filter Domain",items:[{kind:"input",name:"Filter Domain",panelToggle:!0},{kind:"input",name:"Domain"}]}]},qe={customSocketOrder:!0,conditional:!0,items:[{kind:"layout"},{kind:"output",name:"Points"},{kind:"output",name:"Value"},{kind:"panel",name:"Voxel Index",items:[{kind:"output",name:"X"},{kind:"output",name:"Y"},{kind:"output",name:"Z"},{kind:"output",name:"Is Tile"},{kind:"output",name:"Extent"}],defaultClosed:!0},{kind:"input",name:"Grid"}]},Je={customSocketOrder:!0,items:[{kind:"output",name:"X"},{kind:"output",name:"Y"},{kind:"output",name:"Z"},{kind:"panel",name:"Tile",items:[{kind:"output",name:"Is Tile"},{kind:"output",name:"Extent X"},{kind:"output",name:"Extent Y"},{kind:"output",name:"Extent Z"}],defaultClosed:!0}]},Qe={customSocketOrder:!0,items:[{kind:"input",name:"Mesh"},{kind:"output",name:"Mesh",alignWithPrevious:!0},{kind:"input",name:"Selection"},{kind:"input",name:"Affect Kind"},{kind:"input",name:"Start Left Offset"},{kind:"input",name:"Start Right Offset"},{kind:"input",name:"End Left Offset"},{kind:"input",name:"End Right Offset"},{kind:"input",name:"Offset"},{kind:"input",name:"Miter"},{kind:"input",name:"Spread"},{kind:"input",name:"Segments"},{kind:"input",name:"Shape"},{kind:"input",name:"Profile"},{kind:"panel",name:"Selections",items:[{kind:"output",name:"Vertex Face"},{kind:"output",name:"Edge Face"},{kind:"output",name:"Outer Edge"},{kind:"output",name:"Mid Edge"}]}]},en={customSocketOrder:!0,items:[{kind:"output",name:"Amplitude"},{kind:"input",name:"Sound"},{kind:"input",name:"Time"},{kind:"input",name:"All Channels"},{kind:"input",name:"Channel"},{kind:"input",name:"Low"},{kind:"input",name:"High"},{kind:"panel",name:"FFT",items:[{kind:"input",name:"FFT Size"},{kind:"input",name:"Window Function"}],defaultClosed:!0}]},nn={customSocketOrder:!0,items:[{kind:"output",name:"Curve Instances"},{kind:"output",name:"Remainder"},{kind:"output",name:"Line"},{kind:"output",name:"Word"},{kind:"output",name:"Pivot Point"},{kind:"input",name:"String"},{kind:"input",name:"Size"},{kind:"input",name:"Font"},{kind:"panel",name:"Alignment",items:[{kind:"input",name:"Align X"},{kind:"input",name:"Align Y"},{kind:"input",name:"Pivot Point"}],defaultClosed:!0},{kind:"panel",name:"Spacing",items:[{kind:"input",name:"Character Spacing"},{kind:"input",name:"Word Spacing"},{kind:"input",name:"Line Spacing"}],defaultClosed:!0},{kind:"panel",name:"Text Box",items:[{kind:"input",name:"Overflow"},{kind:"input",name:"Text Box Width"},{kind:"input",name:"Text Box Height"}],defaultClosed:!0}]},tn={customSocketOrder:!0,conditional:!0,items:[{kind:"input",name:"Target"},{kind:"output",name:"Target",alignWithPrevious:!0},{kind:"output",name:"Transferred Names"},{kind:"panel",name:"Target IDs",items:[],defaultClosed:!0},{kind:"input",name:"Source"},{kind:"panel",name:"Source IDs",items:[],defaultClosed:!0},{kind:"input",name:"Pattern Mode"},{kind:"input",name:"Attribute Names"},{kind:"input",name:"Exclude Names"}]},an={customSocketOrder:!0,items:[{kind:"input",name:"World"},{kind:"output",name:"World",alignWithPrevious:!0},{kind:"input",name:"Delta Time"},{kind:"input",name:"Filter"},{kind:"input",name:"Simulation to World"},{kind:"panel",name:"Solver",items:[{kind:"input",name:"Substeps"},{kind:"input",name:"Constraint Iterations"},{kind:"input",name:"Solver Path"}],defaultClosed:!0},{kind:"panel",name:"Interpolation Range",items:[{kind:"input",name:"Begin"},{kind:"input",name:"End"}],defaultClosed:!0}]},on={customSocketOrder:!0,conditional:!0,items:[{kind:"input",name:"Closure"},{kind:"panel",name:"Interface",items:[{kind:"output",name:"",identifier:"__extend__"},{kind:"input",name:"",identifier:"__extend__"}]}]},rn={customSocketOrder:!0,items:[{kind:"output",name:"BSDF"},{kind:"layout"},{kind:"input",name:"Color"},{kind:"input",name:"Roughness"},{kind:"input",name:"IOR"},{kind:"input",name:"Normal"},{kind:"input",name:"Weight",conditional:!0},{kind:"panel",name:"Thin Film",items:[{kind:"input",name:"Thin Film Thickness"},{kind:"input",name:"Thin Film IOR"}],defaultClosed:!0}]},un={customSocketOrder:!0,items:[{kind:"output",name:"BSDF"},{kind:"layout"},{kind:"input",name:"Base Color"},{kind:"input",name:"Edge Tint"},{kind:"input",name:"IOR"},{kind:"input",name:"Extinction"},{kind:"input",name:"Roughness"},{kind:"input",name:"Anisotropy"},{kind:"input",name:"Rotation"},{kind:"input",name:"Normal"},{kind:"input",name:"Tangent"},{kind:"input",name:"Weight",conditional:!0},{kind:"panel",name:"Thin Film",items:[{kind:"input",name:"Thin Film Thickness"},{kind:"input",name:"Thin Film IOR"}],defaultClosed:!0}]},sn={customSocketOrder:!0,items:[{kind:"output",name:"BSDF"},{kind:"input",name:"Base Color"},{kind:"input",name:"Metallic"},{kind:"input",name:"Roughness"},{kind:"input",name:"IOR"},{kind:"input",name:"Alpha"},{kind:"input",name:"Thin Wall"},{kind:"input",name:"Normal"},{kind:"input",name:"Weight",conditional:!0},{kind:"panel",name:"Diffuse",items:[{kind:"input",name:"Diffuse Roughness"}],defaultClosed:!0},{kind:"panel",name:"Subsurface",items:[{kind:"layout"},{kind:"input",name:"Subsurface Weight"},{kind:"input",name:"Subsurface Radius"},{kind:"input",name:"Subsurface Scale"},{kind:"input",name:"Subsurface IOR"},{kind:"input",name:"Subsurface Anisotropy"}],defaultClosed:!0},{kind:"panel",name:"Specular",items:[{kind:"layout"},{kind:"input",name:"Specular IOR Level"},{kind:"input",name:"Specular Tint"},{kind:"input",name:"Anisotropic"},{kind:"input",name:"Anisotropic Rotation"},{kind:"input",name:"Tangent"}],defaultClosed:!0},{kind:"panel",name:"Transmission",items:[{kind:"input",name:"Transmission Weight"}],defaultClosed:!0},{kind:"panel",name:"Coat",items:[{kind:"input",name:"Coat Weight"},{kind:"input",name:"Coat Roughness"},{kind:"input",name:"Coat IOR"},{kind:"input",name:"Coat Tint"},{kind:"input",name:"Coat Normal"}],defaultClosed:!0},{kind:"panel",name:"Sheen",items:[{kind:"input",name:"Sheen Weight"},{kind:"input",name:"Sheen Roughness"},{kind:"input",name:"Sheen Tint"}],defaultClosed:!0},{kind:"panel",name:"Emission",items:[{kind:"input",name:"Emission Color"},{kind:"input",name:"Emission Strength"}],defaultClosed:!0},{kind:"panel",name:"Thin Film",items:[{kind:"input",name:"Thin Film Thickness"},{kind:"input",name:"Thin Film IOR"}],defaultClosed:!0}]},dn={customSocketOrder:!0,conditional:!0,items:[{kind:"layout"},{kind:"output",name:"Is Hit"},{kind:"output",name:"Self Hit"},{kind:"output",name:"Hit Distance"},{kind:"output",name:"Hit Position"},{kind:"output",name:"Hit Normal"},{kind:"input",name:"Position"},{kind:"input",name:"Direction"},{kind:"input",name:"Length"},{kind:"panel",name:"Attributes",items:[{kind:"input",name:"",identifier:"__extend__"},{kind:"output",name:"",identifier:"__extend__",alignWithPrevious:!0}],defaultClosed:!0}]},ln={customSocketOrder:!0,items:[{kind:"output",name:"Volume"},{kind:"input",name:"Weight",conditional:!0},{kind:"panel",name:"Absorption",items:[{kind:"input",name:"Absorption Coefficients"}]},{kind:"panel",name:"Scatter",items:[{kind:"layout"},{kind:"input",name:"Scatter Coefficients"},{kind:"input",name:"Anisotropy"},{kind:"input",name:"IOR"},{kind:"input",name:"Backscatter"},{kind:"input",name:"Alpha"},{kind:"input",name:"Diameter"}]},{kind:"panel",name:"Emission",items:[{kind:"input",name:"Emission Coefficients"}]}]},mn={CompositorNodeColorBalance:Re,CompositorNodeColorCorrection:Pe,CompositorNodeColorSpill:_e,CompositorNodeCornerPin:Me,CompositorNodeDBlur:ve,CompositorNodeDisplace:Ae,CompositorNodeGlare:be,CompositorNodeKeying:De,CompositorNodeMapUV:Be,CompositorNodeMask:Le,CompositorNodePlaneTrackDeform:$e,CompositorNodeRotate:je,CompositorNodeScale:Fe,CompositorNodeStabilize:Ge,CompositorNodeStringToImage:We,CompositorNodeTransform:He,CompositorNodeTranslate:Ue,FunctionNodeCombineMatrix:Ye,FunctionNodeSeparateMatrix:ze,FunctionNodeTrimString:Ve,GeometryNodeCubeGridTopology:Xe,GeometryNodeForeachGeometryElementOutput:Ke,GeometryNodeGetAttributeNames:Ze,GeometryNodeGridToPoints:qe,GeometryNodeInputVoxelIndex:Je,GeometryNodeMeshBevel:Qe,GeometryNodeSampleSoundFrequencies:en,GeometryNodeStringToCurves:nn,GeometryNodeTransferAttributes:tn,GeometryNodeXPBDSolver:an,NodeEvaluateClosure:on,ShaderNodeBsdfGlass:rn,ShaderNodeBsdfMetallic:un,ShaderNodeBsdfPrincipled:sn,ShaderNodeRaycast:dn,ShaderNodeVolumeCoefficients:ln},I=20,N=1,S=I,O=I/2,D=.2*I,me=.25*I,Z=1.2*I,_=.1*I,pn=.8*I,w=.5,Y=D+w,cn=D+N,ne=2.5,kn=.2,fn=S*.5,z=S*-.5,hn=me,gn=1.5*I,R=11,h={sliderFill:"#4671b2",background:"#1a1a1a",body:"#303030",outline:"#ffffff",outlineAlpha:38/255,select:"#ed5700",active:"#ffffff",wireInner:"#8d8d8d",wire:"#1a1a1a",noodleCurving:4,dashAlpha:.5,text:"#e6e6e6",frame:"#0f0f0f",frameAlpha:204/255},Sn={INPUT:"#82354c",OUTPUT:"#3e232a",CONVERTER:"#246283",COLOR:"#6e6e23",VECTOR:"#3c3c83",FILTER:"#412b51",GROUP:"#374725",INTERFACE:"#1d1d1d",MATTE:"#5a3838",DISTORT:"#3e5a5b",TEXTURE:"#79461d",SHADER:"#2b652b",SCRIPT:"#203c3c",GEOMETRY:"#1d725e",ATTRIBUTE:"#1d2546",NONE:h.body,PATTERN:h.body},xn={VALUE:"#a1a1a1",VECTOR:"#6363c7",RGBA:"#c7c729",SHADER:"#63c763",BOOLEAN:"#cca6d6",INT:"#598c5c",STRING:"#70b3ff",OBJECT:"#ed9e5c",IMAGE:"#633863",GEOMETRY:"#00d6a3",COLLECTION:"#f5f5f5",TEXTURE:"#9e4fa3",MATERIAL:"#eb7582",ROTATION:"#a663c7",MENU:"#666666",MATRIX:"#b83385",BUNDLE:"#4d8080",CLOSURE:"#7d7d3b",FONT:"#635742",SOUND:"#635742",INT_VECTOR:"#5c789c",CUSTOM:"#333333"},yn="#ff00ff",pe=h.wire,Cn="#808080",F=N;function A(e){return e.enabled&&!e.hide}function V(e){const n=e.location[0]??0,a=e.location[1]??0,r=e.width,t=e.outputs.filter(A),o=e.inputs.filter(A);if(e.collapsed){const p=fn,m=p*Math.max(o.length,t.length,2)+D*2,x=a+m/2+z,c=a-m/2+z,k=(g,C)=>{let y=a+p*(g.length-1)*.5+z;return g.map(E=>{const P=M(E,C,C?n+r:n,y,y);return y-=p,P})};return{name:e.name,x:n,yTop:x,yBottom:c,width:r,collapsed:!0,sockets:[...k(t,!0),...k(o,!1)]}}let d=a-S;const u=[],l=(p,m)=>{const x=d;u.push(M(p,m,m?n+r:n,x-O,x)),d=x-S};return(t.length>0||o.length>0)&&(d-=2*_),t.forEach((p,m)=>{m>0&&(d-=_),l(p,!0)}),t.length>0&&o.length>0&&(d-=_),o.forEach((p,m)=>{(m>0||t.length>0)&&m>0&&(d-=_),l(p,!1)}),t.length>0||o.length>0?d-=2*_:d-=O,{name:e.name,x:n,yTop:a,yBottom:Math.min(d,a-2*S),width:r,collapsed:!1,sockets:u}}function M(e,n,a,r,t,o=!1){return{identifier:e.identifier,name:e.label??e.name,type:e.type,shape:e.shape,output:n,linked:e.linked,multiInput:e.multiInput,hideValue:e.hideValue,value:e.value,...e.softMin===void 0?{}:{softMin:e.softMin},...e.softMax===void 0?{}:{softMax:e.softMax},x:a,y:r,rowTop:t,panelCollapsed:o}}function Tn(e,n,a=h.noodleCurving){if(a===0)return[[e[0]+(n[0]-e[0])/3,e[1]+(n[1]-e[1])/3],[e[0]+(n[0]-e[0])*2/3,e[1]+(n[1]-e[1])*2/3]];const r=Math.abs(n[0]-e[0]),t=Math.abs(n[1]-e[1]),o=r===0?Number.POSITIVE_INFINITY:t/r,d=Math.min(1,o*(4.5-.25*a)),u=a*.1*r*d;return[[e[0]+u,e[1]],[n[0]-u,n[1]]]}function K(e){return e.idname==="NodeFrame"?h.frame:e.colorTag==="OUTPUT"&&!e.activeOutput?h.body:Sn[e.colorTag]??h.body}function te(e){return e.useCustomColor?b(e.color):h.body}function b(e){const n=a=>Math.round(Math.min(1,Math.max(0,a))*255).toString(16).padStart(2,"0");return`#${n(e[0]??0)}${n(e[1]??0)}${n(e[2]??0)}`}function ie(e,n){const a=ae(h.background),r=ae(e);return b([r[0]*(1-n)+a[0]*n,r[1]*(1-n)+a[1]*n,r[2]*(1-n)+a[2]*n])}const En=.6,wn=.8,On=.2;function ae(e){const n=Number.parseInt(e.slice(1),16);return[(n>>16&255)/255,(n>>8&255)/255,(n&255)/255]}function G(e){return xn[e]??yn}const oe=O,X=Z/3,re=Z/4,In=I,j={cell:8,reach:4,spread:3.64648,stroke:1},Nn="#000000",Rn=31/255*1.5,$=e=>e.identifier??e.name;function Pn(e,n,a){if(!e.customSocketOrder)return{ok:!1,why:"its declaration does not set use_custom_socket_order, so Blender lays it out the legacy way"};const r=[],t=[],o=l=>{for(const p of l)p.kind==="input"?r.push($(p)):p.kind==="output"?t.push($(p)):p.kind==="panel"&&o(p.items)};o(e.items);const d=(l,p,m)=>{if(l.length!==p.length)return`the declaration names ${l.length} ${m}${l.length===1?"":"s"} and the engine reports ${p.length}`;for(let x=0;x<l.length;x++)if(l[x]!==p[x]?.identifier)return`${m} ${x} is "${p[x]?.identifier}" in the engine and "${l[x]}" in the declaration`;return null},u=d(t,a,"output")??d(r,n,"input");return u===null?{ok:!0}:{ok:!1,why:u}}const _n={Socket:2,Separator:.5,Layout:3,PanelHeader:4},Mn={Socket:2,Separator:1,Layout:5,PanelHeader:4,PanelContentEnd:1},vn={Socket:{Socket:1,Separator:0,Layout:2,PanelHeader:3,PanelContentEnd:2},Layout:{Socket:2,Separator:0,Layout:1,PanelHeader:3,PanelContentEnd:2},Separator:{Socket:2,Separator:1,Layout:1,PanelHeader:1,PanelContentEnd:1},PanelHeader:{Socket:4,Separator:3,Layout:3,PanelHeader:5,PanelContentBegin:3,PanelContentEnd:3},PanelContentBegin:{Socket:2,Separator:1,Layout:2,PanelHeader:3,PanelContentEnd:1},PanelContentEnd:{Socket:1,Separator:1,Layout:1,PanelHeader:3,PanelContentEnd:0}};function ce(e,n,a,r,t,o,d){let u=!1;for(const l of e){if(l.kind==="input"||l.kind==="output"){const y=n.get(`${l.kind}:${$(l)}`);if(!y||!A(y)){u=!1;continue}const E=o[o.length-1];if(l.alignWithPrevious===!0&&u&&E&&E.type==="Socket"){o[o.length-1]={type:"Socket",input:l.kind==="input"?y:E.input,output:l.kind==="output"?y:E.output},u=!0;continue}o.push({type:"Socket",input:l.kind==="input"?y:void 0,output:l.kind==="output"?y:void 0}),u=!0;continue}if(u=!1,l.kind==="separator"){o.push({type:"Separator"});continue}if(l.kind==="layout"){r&&o.push({type:"Layout"});continue}if(l.kind!=="panel")continue;const p=l.items[0],m=p&&p.kind==="input"&&p.panelToggle===!0?p:null,x=m?n.get(`input:${$(m)}`)??null:null,c=[],k=y=>{for(const E of y)if(E.kind==="input"||E.kind==="output"){const P=n.get(`${E.kind}:${$(E)}`);P&&c.push(P)}else E.kind==="panel"&&k(E.items)};if(k(l.items),!c.some(A))continue;const g=a(l.defaultClosed===!0),C={name:l.name,depth:t,collapsed:g,toggle:x,owned:c,centerY:0,contentTop:null,contentBottom:null,fillsNodeEnd:!1};d.push(C),o.push({type:"PanelHeader",panel:C}),!g&&(o.push({type:"PanelContentBegin",panel:C}),ce(l.items.filter(y=>y!==m),n,a,r,t+1,o,d),o.push({type:"PanelContentEnd",panel:C}))}}function An(e){const n=e.location[0]??0,a=e.location[1]??0,r=e.width,t=new Map;for(const c of e.inputs)t.set(`input:${c.identifier}`,c);for(const c of e.outputs)t.set(`output:${c.identifier}`,c);let o=0;const d=e.panelStates,u=[],l=[];ce(e.declaration.items,t,c=>d[o++]?.collapsed??c,e.showOptions,0,u,l);const p=[];let m=a-S;u.length===0&&(m-=O);for(let c=0;c<u.length;c++){const k=u[c];if(!k)continue;const g=u[c-1],C=c===0?_n[k.type]??0:vn[g?.type??"Socket"]?.[k.type]??0;if(m-=C*_,k.type==="Socket"){const y=m;k.output&&p.push(M(k.output,!0,n+r,y-O,y)),k.input&&p.push(M(k.input,!1,n,y-O,y)),m=y-S;continue}if(k.type==="Layout"||k.type==="Separator"){m-=S;continue}if(k.type==="PanelHeader"&&k.panel){m-=oe/2,k.panel.centerY=m,m-=oe/2,k.panel.toggle&&p.push(M(k.panel.toggle,!1,n,k.panel.centerY,k.panel.centerY));continue}k.type==="PanelContentBegin"&&k.panel&&(k.panel.contentTop=m),k.type==="PanelContentEnd"&&k.panel&&(k.panel.contentBottom=m)}const x=u[u.length-1];x&&(m-=(Mn[x.type]??0)*_);for(const c of l)if(c.collapsed)for(const k of c.owned){if(!A(k))continue;const g=e.outputs.includes(k);p.push(M(k,g,g?n+r:n,c.centerY,c.centerY,!0))}for(let c=u.length-1;c>=0;c--){const k=u[c];if(!k||k.type!=="PanelContentEnd")break;k.panel&&(k.panel.fillsNodeEnd=!0)}return{name:e.name,x:n,yTop:a,yBottom:Math.min(m,a-2*S),width:r,collapsed:!1,sockets:p,panels:l.map(c=>({name:c.name,depth:c.depth,collapsed:c.collapsed,centerY:c.centerY,contentTop:c.contentTop,contentBottom:c.contentBottom,fillsNodeEnd:c.fillsNodeEnd,toggle:c.toggle?M(c.toggle,!1,n,c.centerY,c.centerY):null}))}}function bn(e){const n=a=>a.some(r=>r.kind==="layout"?!0:r.kind==="panel"?n(r.items):!1);return n(e.items)}const Ct="workspace.document",Tt="Shader Editor";Ce(Ne);const Dn=320,ue=.1,se=4;function Et(){const e=T.useSyncExternalStore(Te,Q,Q),[n,a]=T.useState(null),[r,t]=T.useState(null),o=T.useRef(null),d=T.useRef(!1);T.useSyncExternalStore(Ee,ee,ee);const{transform:u,looked:l,refusal:p,size:m}=U(),x=T.useCallback(s=>{const f=U().transform;B({transform:typeof s=="function"?s(f):s})},[]),c=T.useCallback(s=>{B({looked:s,refusal:null})},[]),k=T.useCallback(s=>{const f=U().size;f.w===s.w&&f.h===s.h||B({size:s})},[]),g=T.useCallback(s=>{we(s)},[]);T.useEffect(()=>{let s=!0;return(async()=>{try{const f=await Oe();if(!s)return;a(f),t(null)}catch(f){if(!s)return;t(f instanceof Error?f.message:String(f))}})(),()=>{s=!1}},[e]),T.useEffect(()=>{const s=o.current;if(!s)return;const f=new ResizeObserver(()=>{k({w:s.clientWidth,h:s.clientHeight})});return f.observe(s),k({w:s.clientWidth,h:s.clientHeight}),()=>f.disconnect()},[]);const C=T.useMemo(()=>jn(n),[n]);T.useEffect(()=>{B({drawn:[...C.frames,...C.nodes].map(({node:s,laid:f,panels:v,fallback:ye})=>{const J=f.sockets.find(H=>!H.panelCollapsed)??f.sockets[0];return{panels:v.length,collapsedPanels:v.filter(H=>H.collapsed).length,panelFallback:ye,name:s.name,x:f.x,yTop:f.yTop,yBottom:f.yBottom,width:f.width,height:f.yTop-f.yBottom,sockets:f.sockets.length,firstSocketBelowTop:J?f.yTop-J.y:null,header:K(s)}})})},[C]);const y=T.useCallback(()=>{const s=Fn(C.nodes);if(!s)return;const f=de(Math.min(m.w/(s.w+2*S),m.h/(s.h+2*S)),ue,se);B({transform:{cx:s.x+s.w/2,cy:s.y-s.h/2,zoom:f},framedAt:Date.now()})},[C.nodes,m.h,m.w]),E=Ie(),P=T.useRef(0);T.useEffect(()=>{E!==P.current&&(P.current=E,y())},[E,y]),T.useEffect(()=>{d.current||C.nodes.length===0||m.w<=1||(d.current=!0,y())},[C.nodes.length,m.w,y]);const W=T.useRef(null),fe=s=>{s.button===1&&(s.preventDefault(),s.target.setPointerCapture?.(s.pointerId),W.current={x:s.clientX,y:s.clientY,cx:u.cx,cy:u.cy})},he=s=>{const f=W.current;f&&x(v=>({...v,cx:f.cx-(s.clientX-f.x)/v.zoom,cy:f.cy+(s.clientY-f.y)/v.zoom}))},q=()=>{W.current=null},ge=s=>{s.preventDefault(),x(f=>({...f,zoom:de(f.zoom*(s.deltaY<0?1.1:1/1.1),ue,se)}))},Se=n?.nodes.find(s=>s.name===l)??null,xe=u.zoom>kn;return i.jsxs("div",{"data-testid":"blender-node-editor",style:{display:"flex",position:"absolute",inset:0,overflow:"hidden"},children:[i.jsxs("div",{style:{display:"flex",flexDirection:"column",flex:1,minWidth:0,minHeight:0},children:[i.jsx(Xn,{tree:n,zoom:u.zoom,onViewAll:y,onRefuse:g}),i.jsx("div",{ref:o,style:{position:"relative",flex:1,minHeight:0},children:i.jsx("svg",{role:"presentation",width:"100%",height:"100%",onPointerDown:fe,onPointerMove:he,onPointerUp:q,onPointerCancel:q,onWheel:ge,onContextMenu:s=>{s.preventDefault(),g("The node context menu adds, deletes and reconnects nodes — editing.")},style:{display:"block",background:h.background,cursor:"default"},children:i.jsxs("g",{transform:`translate(${m.w/2} ${m.h/2}) scale(${u.zoom} ${-u.zoom}) translate(${-u.cx} ${-u.cy})`,children:[C.frames.map(s=>i.jsx(Vn,{node:s.node,laid:s.laid},s.node.name)),C.links.map(s=>i.jsx(zn,{link:s},s.key)),C.nodes.map(s=>i.jsx(Gn,{node:s.node,laid:s.laid,panels:s.panels,looked:s.node.name===l,details:xe,onLook:()=>c(s.node.name),onRefuse:g},s.node.name))]})})}),i.jsx(Kn,{entries:C.nodes,error:r,refusal:p})]}),i.jsx(Zn,{node:Se,onRefuse:g})]})}const Bn=26,Ln=22,$n=mn;function jn(e){if(!e)return{nodes:[],frames:[],links:[]};const n=new Map,a=e.nodes.map(t=>{const o={name:t.name,location:t.location,width:t.width,collapsed:t.collapsed,inputs:t.inputs,outputs:t.outputs},d=t.collapsed?void 0:$n[t.idname];if(t.panelCount>0&&!d){const l=V(o);return n.set(t.name,l),{node:t,laid:l,panels:[],fallback:t.collapsed?null:"no traced declaration — the trace covers the 36 node types that declare a panel in Blender 5.2.0, and a node group’s panels are runtime data",approximate:!1}}if(d){const l=Pn(d,t.inputs,t.outputs);if(l.ok){const m=An({...o,declaration:d,panelStates:t.panels,showOptions:t.showOptions});return n.set(t.name,m),{node:t,laid:m,panels:m.panels,fallback:null,approximate:bn(d)}}const p=V(o);return n.set(t.name,p),{node:t,laid:p,panels:[],fallback:l.why,approximate:!1}}const u=V(o);return n.set(t.name,u),{node:t,laid:u,panels:[],fallback:null,approximate:!1}}),r=e.links.flatMap((t,o)=>{const d=n.get(t.fromNode),u=n.get(t.toNode);if(!d||!u)return[];const l=d.sockets.find(m=>m.output&&m.identifier===t.fromSocket),p=u.sockets.find(m=>!m.output&&m.identifier===t.toSocket);return!l||!p?[]:[{key:`${t.fromNode}.${t.fromSocket}→${t.toNode}.${t.toSocket}#${o}`,from:[l.x,l.y],to:[p.x,p.y],fromColor:G(l.type),toColor:G(p.type),muted:t.muted,valid:t.valid}]});return{nodes:a.filter(t=>t.node.idname!=="NodeFrame"),frames:a.filter(t=>t.node.idname==="NodeFrame"),links:r}}function Fn(e){if(e.length===0)return null;let n=Number.POSITIVE_INFINITY,a=Number.NEGATIVE_INFINITY,r=Number.POSITIVE_INFINITY,t=Number.NEGATIVE_INFINITY;for(const{laid:o}of e)n=Math.min(n,o.x),a=Math.max(a,o.x+o.width),r=Math.min(r,o.yBottom),t=Math.max(t,o.yTop);return{x:n,y:t,w:a-n,h:t-r}}const de=(e,n,a)=>Math.min(a,Math.max(n,e));function Gn({node:e,laid:n,panels:a,looked:r,details:t,onLook:o,onRefuse:d}){if(e.type==="REROUTE"){const g=n.sockets[0];return i.jsx("circle",{cx:n.x,cy:n.yTop,r:hn,fill:g?G(g.type):h.wireInner,stroke:pe,strokeWidth:F,onPointerDown:C=>{C.button===0&&o()}})}const u=e.muted?ie(K(e),En):K(e),l=e.muted?ie(te(e),wn):te(e),p=e.muted?1-On:1,m=e.selected?e.activeOutput||r?h.active:h.select:h.outline,x=e.selected?1:h.outlineAlpha,c=n.yTop-n.yBottom,k=e.label??e.typeLabel;return i.jsxs("g",{opacity:p,onPointerDown:g=>{g.button===0&&o()},onDoubleClick:()=>d(`Renaming "${e.name}" writes Node.name — editing parity is not the program.`),style:{cursor:"default"},children:[n.collapsed?i.jsx("rect",{x:n.x-w,y:-n.yTop-w,width:n.width+2*w,height:c+2*w,rx:Y,fill:u,transform:"scale(1 -1)"}):i.jsxs(i.Fragment,{children:[i.jsx("rect",{x:n.x-w,y:-(n.yTop-S)-w,width:n.width+2*w,height:c-S+2*w,rx:Y,fill:l,transform:"scale(1 -1)"}),i.jsx("rect",{x:n.x-w,y:-n.yTop-w,width:n.width+2*w,height:S+2*w,rx:Y,fill:u,transform:"scale(1 -1)"}),i.jsx("rect",{x:n.x-w,y:-(n.yTop-S)-w,width:n.width+2*w,height:D,fill:u,transform:"scale(1 -1)"}),a.map(g=>i.jsx(Wn,{panel:g,laid:n},`bg:${g.name}`))]}),i.jsx("rect",{x:n.x-N,y:-n.yTop-N,width:n.width+2*N,height:c+2*N,rx:cn,fill:"none",stroke:m,strokeOpacity:x,strokeWidth:N,transform:"scale(1 -1)"}),i.jsx("text",{x:n.x+Z,y:-(n.yTop-S/2),transform:"scale(1 -1)",fill:h.text,fontSize:R,dominantBaseline:"central",style:{pointerEvents:"none",userSelect:"none"},children:k}),t&&n.sockets.map(g=>i.jsx(Un,{socket:g,node:n,onRefuse:d},`${g.output?"o":"i"}:${g.identifier}`)),t&&a.map(g=>i.jsx(Hn,{panel:g,laid:n,onRefuse:d},`hd:${g.name}`))]})}function Wn({panel:e,laid:n}){if(e.contentTop===null||e.contentBottom===null)return null;const a=[{y:e.contentTop,height:e.contentTop-e.contentBottom,radius:0,times:1}];return e.fillsNodeEnd&&a.push({y:e.contentBottom,height:e.contentBottom-n.yBottom,radius:D,times:e.depth+1}),i.jsx("g",{style:{pointerEvents:"none"},children:a.flatMap((r,t)=>Array.from({length:r.times},(o,d)=>i.jsx("rect",{x:n.x,y:-r.y,width:n.width,height:Math.max(r.height,0),rx:r.radius,fill:Nn,fillOpacity:Rn,transform:"scale(1 -1)"},`${t}:${d}`)))})}function Hn({panel:e,laid:n,onRefuse:a}){const r=pn,t=r/j.cell,o=n.x+X+r/2,d=e.centerY,u=j.reach*t,l=j.spread*t,p=e.collapsed?`M ${o-u/2} ${-(d+l)} L ${o+u/2} ${-d} L ${o-u/2} ${-(d-l)}`:`M ${o-l} ${-(d+u/2)} L ${o} ${-(d-u/2)} L ${o+l} ${-(d+u/2)}`,m=n.x+X+r+re+(e.toggle&&!e.toggle.linked?In:0);return i.jsxs("g",{onPointerDown:x=>{x.button===0&&(x.stopPropagation(),a(`${e.collapsed?"Opening":"Collapsing"} "${e.name}" writes the panel's is_collapsed — editing parity is not the program.`))},style:{cursor:"default"},children:[i.jsx("rect",{x:n.x,y:-(d+O),width:n.width,height:2*O,fill:"transparent",transform:"scale(1 -1)"}),i.jsx("path",{d:p,fill:"none",stroke:h.text,strokeWidth:j.stroke*t,strokeLinecap:"round",strokeLinejoin:"round",transform:"scale(1 -1)",style:{pointerEvents:"none"}}),e.toggle&&!e.toggle.linked&&i.jsx("rect",{x:n.x+X+r+re,y:-(d+O/2),width:O,height:O,rx:.2*O,fill:e.toggle.value===!0?"#4772b3":"#545454",transform:"scale(1 -1)",style:{pointerEvents:"none"}}),i.jsx("text",{x:m,y:-d,transform:"scale(1 -1)",fill:h.text,fontSize:R,dominantBaseline:"central",style:{pointerEvents:"none",userSelect:"none"},children:e.name})]})}function Un({socket:e,node:n,onRefuse:a}){const r=G(e.type),t=e.type==="CUSTOM"?Cn:pe,o=me,d=e.shape.replace("_DOT",""),u=e.shape.endsWith("_DOT"),l=d==="SQUARE"?i.jsx("rect",{x:e.x-o,y:-e.y-o,width:2*o,height:2*o,fill:r,stroke:t,strokeWidth:F,transform:"scale(1 -1)"}):d==="DIAMOND"?i.jsx("polygon",{points:`${e.x},${-e.y-o} ${e.x+o},${-e.y} ${e.x},${-e.y+o} ${e.x-o},${-e.y}`,fill:r,stroke:t,strokeWidth:F,transform:"scale(1 -1)"}):i.jsx("circle",{cx:e.x,cy:-e.y,r:o,fill:r,stroke:t,strokeWidth:F,transform:"scale(1 -1)"});return i.jsxs("g",{onPointerDown:p=>{p.button===0&&(p.stopPropagation(),a(`Dragging from "${e.name}" would make a link — editing parity is not the program.`))},children:[l,u&&i.jsx("circle",{cx:e.x,cy:-e.y,r:o*.35,fill:t,transform:"scale(1 -1)"}),!n.collapsed&&!e.panelCollapsed&&i.jsx(Yn,{socket:e,node:n,onRefuse:a})]})}function Yn({socket:e,node:n,onRefuse:a}){const r=O,t=n.x+r,o=n.x+n.width-r,d=-(e.rowTop-S/2);if(!(!e.output&&!e.linked&&!e.hideValue&&e.value!==null))return i.jsx("text",{x:e.output?o:t,y:d,transform:"scale(1 -1)",textAnchor:e.output?"end":"start",fill:h.text,fontSize:R,dominantBaseline:"central",style:{pointerEvents:"none",userSelect:"none"},children:e.name});const l=Array.isArray(e.value)&&e.value.length>=3;return i.jsxs("g",{onPointerDown:p=>{p.button===0&&(p.stopPropagation(),a(`Changing "${e.name}" writes the socket's default_value — editing parity is not the program.`))},style:{cursor:"default"},children:[i.jsx("rect",{x:t,y:d-S/2+1,width:o-t,height:S-2,rx:.2*S,fill:"#545454",transform:"scale(1 -1)"}),le(e)!==null&&i.jsxs(i.Fragment,{children:[i.jsx("clipPath",{id:`sl-${e.identifier}`,children:i.jsx("rect",{x:t,y:d-S/2+1,width:o-t,height:S-2,rx:.2*S})}),i.jsx("rect",{x:t,y:d-S/2+1,width:(o-t)*(le(e)??0),height:S-2,fill:h.sliderFill,clipPath:`url(#sl-${e.identifier})`,transform:"scale(1 -1)"})]}),i.jsx("text",{x:t+6,y:d,transform:"scale(1 -1)",fill:h.text,fontSize:R,dominantBaseline:"central",style:{pointerEvents:"none",userSelect:"none"},children:e.name}),l?i.jsx("rect",{x:o-34,y:d-S/2+3,width:30,height:S-6,rx:2,fill:b(e.value),transform:"scale(1 -1)"}):i.jsx("text",{x:o-6,y:d,transform:"scale(1 -1)",textAnchor:"end",fill:h.text,fontSize:R,dominantBaseline:"central",style:{pointerEvents:"none",userSelect:"none"},children:ke(e.value)})]})}function le(e){const{softMin:n,softMax:a,value:r}=e;return n===void 0||a===void 0||typeof r!="number"||a<=n?null:Math.min(1,Math.max(0,(r-n)/(a-n)))}function ke(e){return e===null?"":typeof e=="boolean"?e?"On":"Off":typeof e=="number"?e.toFixed(3):typeof e=="string"?e:e.map(n=>n.toFixed(2)).join(", ")}function zn({link:e}){const[n,a]=Tn(e.from,e.to),r=`M ${e.from[0]} ${e.from[1]} C ${n[0]} ${n[1]}, ${a[0]} ${a[1]}, ${e.to[0]} ${e.to[1]}`,t=e.valid?h.wireInner:"#ff2020";return i.jsxs("g",{style:{pointerEvents:"none"},children:[i.jsx("path",{d:r,fill:"none",stroke:h.wire,strokeWidth:ne+2*N}),i.jsx("path",{d:r,fill:"none",stroke:t,strokeWidth:ne,strokeDasharray:e.muted?"10 10":void 0,strokeOpacity:e.muted?h.dashAlpha:1})]})}function Vn({node:e,laid:n}){const a=Math.max(n.yTop-n.yBottom,gn*2);return i.jsxs("g",{style:{pointerEvents:"none"},children:[i.jsx("rect",{x:n.x,y:-n.yTop,width:n.width,height:a,rx:D,fill:e.useCustomColor?b(e.color):h.frame,fillOpacity:h.frameAlpha,transform:"scale(1 -1)"}),e.label&&i.jsx("text",{x:n.x+n.width/2,y:-(n.yTop-25),transform:"scale(1 -1)",textAnchor:"middle",fill:h.text,fontSize:20,children:e.label})]})}function Xn({tree:e,zoom:n,onViewAll:a,onRefuse:r}){return i.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"var(--volter-space-2)",height:Bn,padding:"0 var(--volter-space-2)",background:h.background,color:h.text,font:`${R}px inherit`,borderBottom:"1px solid #161616"},children:[i.jsx("span",{"data-testid":"node-editor-tree-type",style:{opacity:.85},children:e?.typeLabel??"Shader Editor"}),i.jsx("span",{style:{opacity:.4},children:"·"}),i.jsx("span",{"data-testid":"node-editor-material",children:e?.material??"No material"}),i.jsx("span",{style:{flex:1}}),i.jsxs("span",{style:{opacity:.6},children:[Math.round(n*100),"%"]}),i.jsx("button",{type:"button",className:"volter-btn","data-variant":"ghost","data-size":"sm",onClick:a,"data-testid":"node-editor-view-all",children:"View All"}),i.jsx("button",{type:"button",className:"volter-btn","data-variant":"ghost","data-size":"sm","data-testid":"node-editor-use-nodes",onClick:()=>r("Use Nodes writes Material.use_nodes — editing parity is not the program."),children:"Use Nodes"})]})}function Kn({entries:e,error:n,refusal:a}){const r=e.filter(u=>u.fallback!==null),t=e.filter(u=>u.approximate),o=e.reduce((u,l)=>u+l.panels.length,0),d=n||a||(r.length>0?`${r.map(u=>`"${u.node.name}" draws its sockets flat: ${u.fallback}`).join("; ")}.`:t.length>0?`${t.map(u=>`"${u.node.name}"`).join(", ")} ${t.length===1?"carries a":"carry"} declaration LAYOUT row, whose drawn height RNA cannot answer; one UI unit is reserved for it.`:o>0?`${o} socket panel${o===1?"":"s"} drawn from Blender's own declarations. Read-only: this view inspects the node tree and never writes it.`:"Read-only: this view inspects the node tree and never writes it.");return i.jsx("div",{"data-testid":"node-editor-status",style:{flex:"0 0 auto",height:Ln,display:"flex",alignItems:"center",padding:"0 var(--volter-space-2)",background:h.background,color:n||a?"#ffa028":"#888888",font:`${R}px inherit`,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:d})}function Zn({node:e,onRefuse:n}){return i.jsxs("aside",{"data-testid":"node-editor-sidebar",style:{width:Dn,flex:"0 0 auto",overflow:"auto",background:h.background,color:h.text,font:`${R}px inherit`,borderLeft:"1px solid #161616",padding:"var(--volter-space-2)"},children:[i.jsx("div",{style:{opacity:.6,marginBottom:"var(--volter-space-2)"},children:"Node"}),e?i.jsxs(i.Fragment,{children:[i.jsx(L,{label:"Name",value:e.name,onRefuse:n}),i.jsx(L,{label:"Label",value:e.label??"",onRefuse:n}),i.jsx(L,{label:"Color",value:e.useCustomColor?b(e.color):"Off",onRefuse:n,swatch:e.useCustomColor?b(e.color):void 0}),i.jsx(L,{label:"Mute",value:e.muted?"On":"Off",onRefuse:n}),i.jsx("div",{style:{opacity:.6,margin:"var(--volter-space-3) 0 var(--volter-space-1)"},children:"Properties"}),e.inputs.filter(A).map(a=>i.jsx(L,{label:a.label??a.name,value:a.linked?"Linked":ke(a.value),onRefuse:n},a.identifier))]}):i.jsx("div",{style:{opacity:.5},children:"No node looked at."})]})}function L({label:e,value:n,swatch:a,onRefuse:r}){return i.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"var(--volter-space-2)",height:20},onPointerDown:()=>r(`"${e}" is read here and written nowhere — inspection parity.`),children:[i.jsx("span",{style:{flex:"0 0 45%",opacity:.75,textAlign:"right"},children:e}),a&&i.jsx("span",{style:{width:14,height:14,borderRadius:2,background:a,flex:"0 0 auto"}}),i.jsx("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis"},title:n,children:n})]})}export{Et as default,Ct as point,Tt as title};
|
|
1
|
+
import{a as i}from"./jsx-runtime-DPjLkJKQ.js";import{gl as Ce}from"./index-V4J7xfRg.js";import{r as T}from"./index-nmcBqr7Y.js";import{s as Te,b as Q,a as Ee,n as ee,c as B,d as U,r as we,e as Oe,f as Ie,N as Ne}from"./blender-runtime-host-CUH6peXj.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-D_NuPfjr.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./preview-renderer-BrYNFV1p.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./environment-Dg-YaLsA.js";import"./RoomEnvironment-BkknvS_I.js";import"./EXRLoader-CITMBvGd.js";import"./HDRLoader-BTGuGhVo.js";import"./renderer-ownership-BovSEcLv.js";import"./output-pass-HurwNl0G.js";import"./Pass-D1MRT672.js";import"./clip-planes-CnAI6DZn.js";import"./content-bounds-D5pXeHJN.js";import"./hierarchy-marks-B1jSqxSv.js";import"./workspace-arrangement-B_OcbQbj.js";const Re={customSocketOrder:!0,items:[{kind:"input",name:"Image"},{kind:"output",name:"Image",alignWithPrevious:!0},{kind:"input",name:"Factor",identifier:"Fac"},{kind:"input",name:"Type"},{kind:"input",name:"Lift",identifier:"Base Lift"},{kind:"input",name:"Lift",identifier:"Color Lift"},{kind:"input",name:"Gamma",identifier:"Base Gamma"},{kind:"input",name:"Gamma",identifier:"Color Gamma"},{kind:"input",name:"Gain",identifier:"Base Gain"},{kind:"input",name:"Gain",identifier:"Color Gain"},{kind:"input",name:"Offset",identifier:"Base Offset"},{kind:"input",name:"Offset",identifier:"Color Offset"},{kind:"input",name:"Power",identifier:"Base Power"},{kind:"input",name:"Power",identifier:"Color Power"},{kind:"input",name:"Slope",identifier:"Base Slope"},{kind:"input",name:"Slope",identifier:"Color Slope"},{kind:"panel",name:"Input",items:[{kind:"input",name:"Temperature",identifier:"Input Temperature"},{kind:"input",name:"Tint",identifier:"Input Tint"},{kind:"layout"}]},{kind:"panel",name:"Output",items:[{kind:"input",name:"Temperature",identifier:"Output Temperature"},{kind:"input",name:"Tint",identifier:"Output Tint"},{kind:"layout"}]}]},Pe={customSocketOrder:!0,items:[{kind:"input",name:"Image"},{kind:"output",name:"Image",alignWithPrevious:!0},{kind:"input",name:"Mask"},{kind:"panel",name:"Master",items:[{kind:"input",name:"Saturation",identifier:"Master Saturation"},{kind:"input",name:"Contrast",identifier:"Master Contrast"},{kind:"input",name:"Gamma",identifier:"Master Gamma"},{kind:"input",name:"Gain",identifier:"Master Gain"},{kind:"input",name:"Offset",identifier:"Master Offset"}],defaultClosed:!0},{kind:"panel",name:"Highlights",items:[{kind:"input",name:"Saturation",identifier:"Highlights Saturation"},{kind:"input",name:"Contrast",identifier:"Highlights Contrast"},{kind:"input",name:"Gamma",identifier:"Highlights Gamma"},{kind:"input",name:"Gain",identifier:"Highlights Gain"},{kind:"input",name:"Offset",identifier:"Highlights Offset"}],defaultClosed:!0},{kind:"panel",name:"Midtones",items:[{kind:"input",name:"Saturation",identifier:"Midtones Saturation"},{kind:"input",name:"Contrast",identifier:"Midtones Contrast"},{kind:"input",name:"Gamma",identifier:"Midtones Gamma"},{kind:"input",name:"Gain",identifier:"Midtones Gain"},{kind:"input",name:"Offset",identifier:"Midtones Offset"}],defaultClosed:!0},{kind:"panel",name:"Shadows",items:[{kind:"input",name:"Saturation",identifier:"Shadows Saturation"},{kind:"input",name:"Contrast",identifier:"Shadows Contrast"},{kind:"input",name:"Gamma",identifier:"Shadows Gamma"},{kind:"input",name:"Gain",identifier:"Shadows Gain"},{kind:"input",name:"Offset",identifier:"Shadows Offset"}],defaultClosed:!0},{kind:"panel",name:"Tonal Range",items:[{kind:"input",name:"Midtones Start"},{kind:"input",name:"Midtones End"}],defaultClosed:!0},{kind:"panel",name:"Channels",items:[{kind:"input",name:"Red",identifier:"Apply On Red"},{kind:"input",name:"Green",identifier:"Apply On Green"},{kind:"input",name:"Blue",identifier:"Apply On Blue"}],defaultClosed:!0}]},_e={customSocketOrder:!0,items:[{kind:"output",name:"Image"},{kind:"input",name:"Image"},{kind:"input",name:"Factor",identifier:"Fac"},{kind:"input",name:"Spill Channel"},{kind:"input",name:"Limit Method"},{kind:"input",name:"Limit Channel"},{kind:"input",name:"Limit Strength"},{kind:"panel",name:"Spill Strength",items:[{kind:"input",name:"Use Spill Strength",panelToggle:!0},{kind:"input",name:"Strength",identifier:"Spill Strength"}],defaultClosed:!0}]},Me={customSocketOrder:!0,items:[{kind:"input",name:"Image"},{kind:"output",name:"Image",alignWithPrevious:!0},{kind:"output",name:"Plane"},{kind:"input",name:"Upper Left"},{kind:"input",name:"Upper Right"},{kind:"input",name:"Lower Left"},{kind:"input",name:"Lower Right"},{kind:"panel",name:"Sampling",items:[{kind:"input",name:"Interpolation"},{kind:"input",name:"Extension X"},{kind:"input",name:"Extension Y"}],defaultClosed:!0}]},ve={customSocketOrder:!0,items:[{kind:"input",name:"Image"},{kind:"output",name:"Image",alignWithPrevious:!0},{kind:"input",name:"Samples"},{kind:"input",name:"Center"},{kind:"input",name:"Rotation"},{kind:"input",name:"Scale"},{kind:"panel",name:"Translation",items:[{kind:"input",name:"Amount",identifier:"Translation Amount"},{kind:"input",name:"Direction",identifier:"Translation Direction"}]}]},Ae={customSocketOrder:!0,items:[{kind:"input",name:"Image"},{kind:"output",name:"Image",alignWithPrevious:!0},{kind:"input",name:"Displacement"},{kind:"panel",name:"Sampling",items:[{kind:"input",name:"Interpolation"},{kind:"input",name:"Extension X"},{kind:"input",name:"Extension Y"}],defaultClosed:!0}]},be={customSocketOrder:!0,items:[{kind:"input",name:"Image"},{kind:"output",name:"Image",alignWithPrevious:!0},{kind:"output",name:"Glare"},{kind:"output",name:"Highlights"},{kind:"input",name:"Type"},{kind:"input",name:"Quality"},{kind:"panel",name:"Highlights",items:[{kind:"input",name:"Threshold",identifier:"Highlights Threshold"},{kind:"input",name:"Smoothness",identifier:"Highlights Smoothness"},{kind:"panel",name:"Clamp",items:[{kind:"input",name:"Clamp",identifier:"Clamp Highlights",panelToggle:!0},{kind:"input",name:"Maximum",identifier:"Maximum Highlights"}],defaultClosed:!0}],defaultClosed:!0},{kind:"panel",name:"Adjust",items:[{kind:"input",name:"Strength"},{kind:"input",name:"Saturation"},{kind:"input",name:"Tint"}]},{kind:"panel",name:"Glare",items:[{kind:"input",name:"Size"},{kind:"input",name:"Streaks"},{kind:"input",name:"Streaks Angle"},{kind:"input",name:"Iterations"},{kind:"input",name:"Fade"},{kind:"input",name:"Color Modulation"},{kind:"input",name:"Diagonal",identifier:"Diagonal Star"},{kind:"input",name:"Sun Position"},{kind:"input",name:"Jitter"},{kind:"input",name:"Kernel Data Type"},{kind:"input",name:"Kernel",identifier:"Float Kernel"},{kind:"input",name:"Kernel",identifier:"Color Kernel"}]}]},De={customSocketOrder:!0,items:[{kind:"input",name:"Image"},{kind:"output",name:"Image",alignWithPrevious:!0},{kind:"output",name:"Matte"},{kind:"output",name:"Edges"},{kind:"input",name:"Key Color"},{kind:"panel",name:"Preprocess",items:[{kind:"input",name:"Blur Size",identifier:"Preprocess Blur Size"}],defaultClosed:!0},{kind:"panel",name:"Key",items:[{kind:"input",name:"Balance",identifier:"Key Balance"}],defaultClosed:!0},{kind:"panel",name:"Tweak",items:[{kind:"input",name:"Black Level"},{kind:"input",name:"White Level"},{kind:"panel",name:"Edges",items:[{kind:"input",name:"Size",identifier:"Edge Search Size"},{kind:"input",name:"Tolerance",identifier:"Edge Tolerance"}],defaultClosed:!0}],defaultClosed:!0},{kind:"panel",name:"Mask",items:[{kind:"input",name:"Garbage Matte"},{kind:"input",name:"Core Matte"}],defaultClosed:!0},{kind:"panel",name:"Postprocess",items:[{kind:"input",name:"Blur Size",identifier:"Postprocess Blur Size"},{kind:"input",name:"Dilate Size",identifier:"Postprocess Dilate Size"},{kind:"input",name:"Feather Size",identifier:"Postprocess Feather Size"},{kind:"input",name:"Feather Falloff"}],defaultClosed:!0},{kind:"panel",name:"Despill",items:[{kind:"input",name:"Strength",identifier:"Despill Strength"},{kind:"input",name:"Balance",identifier:"Despill Balance"}],defaultClosed:!0}]},Be={customSocketOrder:!0,items:[{kind:"input",name:"Image"},{kind:"output",name:"Image",alignWithPrevious:!0},{kind:"input",name:"UV"},{kind:"panel",name:"Sampling",items:[{kind:"input",name:"Interpolation"},{kind:"input",name:"Extension X"},{kind:"input",name:"Extension Y"}],defaultClosed:!0}]},Le={customSocketOrder:!0,items:[{kind:"output",name:"Mask"},{kind:"layout"},{kind:"input",name:"Size Source"},{kind:"input",name:"Size X"},{kind:"input",name:"Size Y"},{kind:"input",name:"Feather"},{kind:"panel",name:"Motion Blur",items:[{kind:"input",name:"Motion Blur",panelToggle:!0},{kind:"input",name:"Samples",identifier:"Motion Blur Samples"},{kind:"input",name:"Shutter",identifier:"Motion Blur Shutter"}],defaultClosed:!0}]},$e={customSocketOrder:!0,items:[{kind:"input",name:"Image"},{kind:"output",name:"Image",alignWithPrevious:!0},{kind:"output",name:"Plane"},{kind:"layout"},{kind:"panel",name:"Motion Blur",items:[{kind:"input",name:"Motion Blur",panelToggle:!0},{kind:"input",name:"Samples",identifier:"Motion Blur Samples"},{kind:"input",name:"Shutter",identifier:"Motion Blur Shutter"}],defaultClosed:!0}]},je={customSocketOrder:!0,items:[{kind:"input",name:"Image"},{kind:"output",name:"Image",alignWithPrevious:!0},{kind:"input",name:"Angle"},{kind:"panel",name:"Sampling",items:[{kind:"input",name:"Interpolation"},{kind:"input",name:"Extension X"},{kind:"input",name:"Extension Y"}],defaultClosed:!0}]},Fe={customSocketOrder:!0,items:[{kind:"input",name:"Image"},{kind:"output",name:"Image",alignWithPrevious:!0},{kind:"input",name:"Type"},{kind:"input",name:"X"},{kind:"input",name:"Y"},{kind:"input",name:"Frame Type"},{kind:"panel",name:"Sampling",items:[{kind:"input",name:"Interpolation"},{kind:"input",name:"Extension X"},{kind:"input",name:"Extension Y"}],defaultClosed:!0}]},Ge={customSocketOrder:!0,items:[{kind:"input",name:"Image"},{kind:"output",name:"Image",alignWithPrevious:!0},{kind:"layout"},{kind:"input",name:"Frame"},{kind:"input",name:"Invert"},{kind:"panel",name:"Sampling",items:[{kind:"input",name:"Interpolation"},{kind:"input",name:"Extension X"},{kind:"input",name:"Extension Y"}],defaultClosed:!0}]},We={customSocketOrder:!0,items:[{kind:"output",name:"Image"},{kind:"input",name:"String"},{kind:"input",name:"Font"},{kind:"input",name:"Size"},{kind:"panel",name:"Alignment",items:[{kind:"input",name:"Horizontal Alignment"},{kind:"input",name:"Vertical Alignment"}],defaultClosed:!0},{kind:"panel",name:"Wrap",items:[{kind:"input",name:"Wrap",panelToggle:!0},{kind:"input",name:"Width",identifier:"Wrap Width"}],defaultClosed:!0}]},He={customSocketOrder:!0,items:[{kind:"input",name:"Image"},{kind:"output",name:"Image",alignWithPrevious:!0},{kind:"input",name:"X"},{kind:"input",name:"Y"},{kind:"input",name:"Angle"},{kind:"input",name:"Scale"},{kind:"panel",name:"Sampling",items:[{kind:"input",name:"Interpolation"},{kind:"input",name:"Extension X"},{kind:"input",name:"Extension Y"}],defaultClosed:!0}]},Ue={customSocketOrder:!0,items:[{kind:"input",name:"Image"},{kind:"output",name:"Image",alignWithPrevious:!0},{kind:"input",name:"X"},{kind:"input",name:"Y"},{kind:"panel",name:"Sampling",items:[{kind:"input",name:"Interpolation"},{kind:"input",name:"Extension X"},{kind:"input",name:"Extension Y"}],defaultClosed:!0}]},Ye={customSocketOrder:!0,items:[{kind:"output",name:"Matrix"},{kind:"panel",name:"Column 1",items:[{kind:"input",name:"Column 1 Row 1"},{kind:"input",name:"Column 1 Row 2"},{kind:"input",name:"Column 1 Row 3"},{kind:"input",name:"Column 1 Row 4"}],defaultClosed:!0},{kind:"panel",name:"Column 2",items:[{kind:"input",name:"Column 2 Row 1"},{kind:"input",name:"Column 2 Row 2"},{kind:"input",name:"Column 2 Row 3"},{kind:"input",name:"Column 2 Row 4"}],defaultClosed:!0},{kind:"panel",name:"Column 3",items:[{kind:"input",name:"Column 3 Row 1"},{kind:"input",name:"Column 3 Row 2"},{kind:"input",name:"Column 3 Row 3"},{kind:"input",name:"Column 3 Row 4"}],defaultClosed:!0},{kind:"panel",name:"Column 4",items:[{kind:"input",name:"Column 4 Row 1"},{kind:"input",name:"Column 4 Row 2"},{kind:"input",name:"Column 4 Row 3"},{kind:"input",name:"Column 4 Row 4"}],defaultClosed:!0}]},ze={customSocketOrder:!0,items:[{kind:"panel",name:"Column 1",items:[{kind:"output",name:"Column 1 Row 1"},{kind:"output",name:"Column 1 Row 2"},{kind:"output",name:"Column 1 Row 3"},{kind:"output",name:"Column 1 Row 4"}],defaultClosed:!0},{kind:"panel",name:"Column 2",items:[{kind:"output",name:"Column 2 Row 1"},{kind:"output",name:"Column 2 Row 2"},{kind:"output",name:"Column 2 Row 3"},{kind:"output",name:"Column 2 Row 4"}],defaultClosed:!0},{kind:"panel",name:"Column 3",items:[{kind:"output",name:"Column 3 Row 1"},{kind:"output",name:"Column 3 Row 2"},{kind:"output",name:"Column 3 Row 3"},{kind:"output",name:"Column 3 Row 4"}],defaultClosed:!0},{kind:"panel",name:"Column 4",items:[{kind:"output",name:"Column 4 Row 1"},{kind:"output",name:"Column 4 Row 2"},{kind:"output",name:"Column 4 Row 3"},{kind:"output",name:"Column 4 Row 4"}],defaultClosed:!0},{kind:"input",name:"Matrix"}]},Ve={customSocketOrder:!0,items:[{kind:"input",name:"String"},{kind:"output",name:"String",alignWithPrevious:!0},{kind:"input",name:"Characters"},{kind:"input",name:"Whitespace"},{kind:"panel",name:"Limit",items:[{kind:"input",name:"Start"},{kind:"input",name:"End"}],defaultClosed:!0}]},Xe={customSocketOrder:!0,items:[{kind:"output",name:"Topology"},{kind:"input",name:"Bounds Min"},{kind:"input",name:"Bounds Max"},{kind:"input",name:"Resolution X"},{kind:"input",name:"Resolution Y"},{kind:"input",name:"Resolution Z"},{kind:"panel",name:"Min",items:[{kind:"input",name:"Min X"},{kind:"input",name:"Min Y"},{kind:"input",name:"Min Z"}],defaultClosed:!0}]},Ke={customSocketOrder:!0,conditional:!0,items:[{kind:"output",name:"Geometry"},{kind:"input",name:"",identifier:"__extend__main"},{kind:"output",name:"",identifier:"__extend__main",alignWithPrevious:!0},{kind:"panel",name:"Generated",items:[{kind:"separator"},{kind:"input",name:"",identifier:"__extend__generation"},{kind:"output",name:"",identifier:"__extend__generation",alignWithPrevious:!0}]}]},Ze={customSocketOrder:!0,items:[{kind:"output",name:"Names"},{kind:"input",name:"Geometry"},{kind:"panel",name:"Filter Data Type",items:[{kind:"input",name:"Filter Data Type",panelToggle:!0},{kind:"input",name:"Data Type"}]},{kind:"panel",name:"Filter Domain",items:[{kind:"input",name:"Filter Domain",panelToggle:!0},{kind:"input",name:"Domain"}]}]},qe={customSocketOrder:!0,conditional:!0,items:[{kind:"layout"},{kind:"output",name:"Points"},{kind:"output",name:"Value"},{kind:"panel",name:"Voxel Index",items:[{kind:"output",name:"X"},{kind:"output",name:"Y"},{kind:"output",name:"Z"},{kind:"output",name:"Is Tile"},{kind:"output",name:"Extent"}],defaultClosed:!0},{kind:"input",name:"Grid"}]},Je={customSocketOrder:!0,items:[{kind:"output",name:"X"},{kind:"output",name:"Y"},{kind:"output",name:"Z"},{kind:"panel",name:"Tile",items:[{kind:"output",name:"Is Tile"},{kind:"output",name:"Extent X"},{kind:"output",name:"Extent Y"},{kind:"output",name:"Extent Z"}],defaultClosed:!0}]},Qe={customSocketOrder:!0,items:[{kind:"input",name:"Mesh"},{kind:"output",name:"Mesh",alignWithPrevious:!0},{kind:"input",name:"Selection"},{kind:"input",name:"Affect Kind"},{kind:"input",name:"Start Left Offset"},{kind:"input",name:"Start Right Offset"},{kind:"input",name:"End Left Offset"},{kind:"input",name:"End Right Offset"},{kind:"input",name:"Offset"},{kind:"input",name:"Miter"},{kind:"input",name:"Spread"},{kind:"input",name:"Segments"},{kind:"input",name:"Shape"},{kind:"input",name:"Profile"},{kind:"panel",name:"Selections",items:[{kind:"output",name:"Vertex Face"},{kind:"output",name:"Edge Face"},{kind:"output",name:"Outer Edge"},{kind:"output",name:"Mid Edge"}]}]},en={customSocketOrder:!0,items:[{kind:"output",name:"Amplitude"},{kind:"input",name:"Sound"},{kind:"input",name:"Time"},{kind:"input",name:"All Channels"},{kind:"input",name:"Channel"},{kind:"input",name:"Low"},{kind:"input",name:"High"},{kind:"panel",name:"FFT",items:[{kind:"input",name:"FFT Size"},{kind:"input",name:"Window Function"}],defaultClosed:!0}]},nn={customSocketOrder:!0,items:[{kind:"output",name:"Curve Instances"},{kind:"output",name:"Remainder"},{kind:"output",name:"Line"},{kind:"output",name:"Word"},{kind:"output",name:"Pivot Point"},{kind:"input",name:"String"},{kind:"input",name:"Size"},{kind:"input",name:"Font"},{kind:"panel",name:"Alignment",items:[{kind:"input",name:"Align X"},{kind:"input",name:"Align Y"},{kind:"input",name:"Pivot Point"}],defaultClosed:!0},{kind:"panel",name:"Spacing",items:[{kind:"input",name:"Character Spacing"},{kind:"input",name:"Word Spacing"},{kind:"input",name:"Line Spacing"}],defaultClosed:!0},{kind:"panel",name:"Text Box",items:[{kind:"input",name:"Overflow"},{kind:"input",name:"Text Box Width"},{kind:"input",name:"Text Box Height"}],defaultClosed:!0}]},tn={customSocketOrder:!0,conditional:!0,items:[{kind:"input",name:"Target"},{kind:"output",name:"Target",alignWithPrevious:!0},{kind:"output",name:"Transferred Names"},{kind:"panel",name:"Target IDs",items:[],defaultClosed:!0},{kind:"input",name:"Source"},{kind:"panel",name:"Source IDs",items:[],defaultClosed:!0},{kind:"input",name:"Pattern Mode"},{kind:"input",name:"Attribute Names"},{kind:"input",name:"Exclude Names"}]},an={customSocketOrder:!0,items:[{kind:"input",name:"World"},{kind:"output",name:"World",alignWithPrevious:!0},{kind:"input",name:"Delta Time"},{kind:"input",name:"Filter"},{kind:"input",name:"Simulation to World"},{kind:"panel",name:"Solver",items:[{kind:"input",name:"Substeps"},{kind:"input",name:"Constraint Iterations"},{kind:"input",name:"Solver Path"}],defaultClosed:!0},{kind:"panel",name:"Interpolation Range",items:[{kind:"input",name:"Begin"},{kind:"input",name:"End"}],defaultClosed:!0}]},on={customSocketOrder:!0,conditional:!0,items:[{kind:"input",name:"Closure"},{kind:"panel",name:"Interface",items:[{kind:"output",name:"",identifier:"__extend__"},{kind:"input",name:"",identifier:"__extend__"}]}]},rn={customSocketOrder:!0,items:[{kind:"output",name:"BSDF"},{kind:"layout"},{kind:"input",name:"Color"},{kind:"input",name:"Roughness"},{kind:"input",name:"IOR"},{kind:"input",name:"Normal"},{kind:"input",name:"Weight",conditional:!0},{kind:"panel",name:"Thin Film",items:[{kind:"input",name:"Thin Film Thickness"},{kind:"input",name:"Thin Film IOR"}],defaultClosed:!0}]},un={customSocketOrder:!0,items:[{kind:"output",name:"BSDF"},{kind:"layout"},{kind:"input",name:"Base Color"},{kind:"input",name:"Edge Tint"},{kind:"input",name:"IOR"},{kind:"input",name:"Extinction"},{kind:"input",name:"Roughness"},{kind:"input",name:"Anisotropy"},{kind:"input",name:"Rotation"},{kind:"input",name:"Normal"},{kind:"input",name:"Tangent"},{kind:"input",name:"Weight",conditional:!0},{kind:"panel",name:"Thin Film",items:[{kind:"input",name:"Thin Film Thickness"},{kind:"input",name:"Thin Film IOR"}],defaultClosed:!0}]},sn={customSocketOrder:!0,items:[{kind:"output",name:"BSDF"},{kind:"input",name:"Base Color"},{kind:"input",name:"Metallic"},{kind:"input",name:"Roughness"},{kind:"input",name:"IOR"},{kind:"input",name:"Alpha"},{kind:"input",name:"Thin Wall"},{kind:"input",name:"Normal"},{kind:"input",name:"Weight",conditional:!0},{kind:"panel",name:"Diffuse",items:[{kind:"input",name:"Diffuse Roughness"}],defaultClosed:!0},{kind:"panel",name:"Subsurface",items:[{kind:"layout"},{kind:"input",name:"Subsurface Weight"},{kind:"input",name:"Subsurface Radius"},{kind:"input",name:"Subsurface Scale"},{kind:"input",name:"Subsurface IOR"},{kind:"input",name:"Subsurface Anisotropy"}],defaultClosed:!0},{kind:"panel",name:"Specular",items:[{kind:"layout"},{kind:"input",name:"Specular IOR Level"},{kind:"input",name:"Specular Tint"},{kind:"input",name:"Anisotropic"},{kind:"input",name:"Anisotropic Rotation"},{kind:"input",name:"Tangent"}],defaultClosed:!0},{kind:"panel",name:"Transmission",items:[{kind:"input",name:"Transmission Weight"}],defaultClosed:!0},{kind:"panel",name:"Coat",items:[{kind:"input",name:"Coat Weight"},{kind:"input",name:"Coat Roughness"},{kind:"input",name:"Coat IOR"},{kind:"input",name:"Coat Tint"},{kind:"input",name:"Coat Normal"}],defaultClosed:!0},{kind:"panel",name:"Sheen",items:[{kind:"input",name:"Sheen Weight"},{kind:"input",name:"Sheen Roughness"},{kind:"input",name:"Sheen Tint"}],defaultClosed:!0},{kind:"panel",name:"Emission",items:[{kind:"input",name:"Emission Color"},{kind:"input",name:"Emission Strength"}],defaultClosed:!0},{kind:"panel",name:"Thin Film",items:[{kind:"input",name:"Thin Film Thickness"},{kind:"input",name:"Thin Film IOR"}],defaultClosed:!0}]},dn={customSocketOrder:!0,conditional:!0,items:[{kind:"layout"},{kind:"output",name:"Is Hit"},{kind:"output",name:"Self Hit"},{kind:"output",name:"Hit Distance"},{kind:"output",name:"Hit Position"},{kind:"output",name:"Hit Normal"},{kind:"input",name:"Position"},{kind:"input",name:"Direction"},{kind:"input",name:"Length"},{kind:"panel",name:"Attributes",items:[{kind:"input",name:"",identifier:"__extend__"},{kind:"output",name:"",identifier:"__extend__",alignWithPrevious:!0}],defaultClosed:!0}]},ln={customSocketOrder:!0,items:[{kind:"output",name:"Volume"},{kind:"input",name:"Weight",conditional:!0},{kind:"panel",name:"Absorption",items:[{kind:"input",name:"Absorption Coefficients"}]},{kind:"panel",name:"Scatter",items:[{kind:"layout"},{kind:"input",name:"Scatter Coefficients"},{kind:"input",name:"Anisotropy"},{kind:"input",name:"IOR"},{kind:"input",name:"Backscatter"},{kind:"input",name:"Alpha"},{kind:"input",name:"Diameter"}]},{kind:"panel",name:"Emission",items:[{kind:"input",name:"Emission Coefficients"}]}]},mn={CompositorNodeColorBalance:Re,CompositorNodeColorCorrection:Pe,CompositorNodeColorSpill:_e,CompositorNodeCornerPin:Me,CompositorNodeDBlur:ve,CompositorNodeDisplace:Ae,CompositorNodeGlare:be,CompositorNodeKeying:De,CompositorNodeMapUV:Be,CompositorNodeMask:Le,CompositorNodePlaneTrackDeform:$e,CompositorNodeRotate:je,CompositorNodeScale:Fe,CompositorNodeStabilize:Ge,CompositorNodeStringToImage:We,CompositorNodeTransform:He,CompositorNodeTranslate:Ue,FunctionNodeCombineMatrix:Ye,FunctionNodeSeparateMatrix:ze,FunctionNodeTrimString:Ve,GeometryNodeCubeGridTopology:Xe,GeometryNodeForeachGeometryElementOutput:Ke,GeometryNodeGetAttributeNames:Ze,GeometryNodeGridToPoints:qe,GeometryNodeInputVoxelIndex:Je,GeometryNodeMeshBevel:Qe,GeometryNodeSampleSoundFrequencies:en,GeometryNodeStringToCurves:nn,GeometryNodeTransferAttributes:tn,GeometryNodeXPBDSolver:an,NodeEvaluateClosure:on,ShaderNodeBsdfGlass:rn,ShaderNodeBsdfMetallic:un,ShaderNodeBsdfPrincipled:sn,ShaderNodeRaycast:dn,ShaderNodeVolumeCoefficients:ln},I=20,N=1,S=I,O=I/2,D=.2*I,me=.25*I,Z=1.2*I,_=.1*I,pn=.8*I,w=.5,Y=D+w,cn=D+N,ne=2.5,kn=.2,fn=S*.5,z=S*-.5,hn=me,gn=1.5*I,R=11,h={sliderFill:"#4671b2",background:"#1a1a1a",body:"#303030",outline:"#ffffff",outlineAlpha:38/255,select:"#ed5700",active:"#ffffff",wireInner:"#8d8d8d",wire:"#1a1a1a",noodleCurving:4,dashAlpha:.5,text:"#e6e6e6",frame:"#0f0f0f",frameAlpha:204/255},Sn={INPUT:"#82354c",OUTPUT:"#3e232a",CONVERTER:"#246283",COLOR:"#6e6e23",VECTOR:"#3c3c83",FILTER:"#412b51",GROUP:"#374725",INTERFACE:"#1d1d1d",MATTE:"#5a3838",DISTORT:"#3e5a5b",TEXTURE:"#79461d",SHADER:"#2b652b",SCRIPT:"#203c3c",GEOMETRY:"#1d725e",ATTRIBUTE:"#1d2546",NONE:h.body,PATTERN:h.body},xn={VALUE:"#a1a1a1",VECTOR:"#6363c7",RGBA:"#c7c729",SHADER:"#63c763",BOOLEAN:"#cca6d6",INT:"#598c5c",STRING:"#70b3ff",OBJECT:"#ed9e5c",IMAGE:"#633863",GEOMETRY:"#00d6a3",COLLECTION:"#f5f5f5",TEXTURE:"#9e4fa3",MATERIAL:"#eb7582",ROTATION:"#a663c7",MENU:"#666666",MATRIX:"#b83385",BUNDLE:"#4d8080",CLOSURE:"#7d7d3b",FONT:"#635742",SOUND:"#635742",INT_VECTOR:"#5c789c",CUSTOM:"#333333"},yn="#ff00ff",pe=h.wire,Cn="#808080",F=N;function A(e){return e.enabled&&!e.hide}function V(e){const n=e.location[0]??0,a=e.location[1]??0,r=e.width,t=e.outputs.filter(A),o=e.inputs.filter(A);if(e.collapsed){const p=fn,m=p*Math.max(o.length,t.length,2)+D*2,x=a+m/2+z,c=a-m/2+z,k=(g,C)=>{let y=a+p*(g.length-1)*.5+z;return g.map(E=>{const P=M(E,C,C?n+r:n,y,y);return y-=p,P})};return{name:e.name,x:n,yTop:x,yBottom:c,width:r,collapsed:!0,sockets:[...k(t,!0),...k(o,!1)]}}let d=a-S;const u=[],l=(p,m)=>{const x=d;u.push(M(p,m,m?n+r:n,x-O,x)),d=x-S};return(t.length>0||o.length>0)&&(d-=2*_),t.forEach((p,m)=>{m>0&&(d-=_),l(p,!0)}),t.length>0&&o.length>0&&(d-=_),o.forEach((p,m)=>{(m>0||t.length>0)&&m>0&&(d-=_),l(p,!1)}),t.length>0||o.length>0?d-=2*_:d-=O,{name:e.name,x:n,yTop:a,yBottom:Math.min(d,a-2*S),width:r,collapsed:!1,sockets:u}}function M(e,n,a,r,t,o=!1){return{identifier:e.identifier,name:e.label??e.name,type:e.type,shape:e.shape,output:n,linked:e.linked,multiInput:e.multiInput,hideValue:e.hideValue,value:e.value,...e.softMin===void 0?{}:{softMin:e.softMin},...e.softMax===void 0?{}:{softMax:e.softMax},x:a,y:r,rowTop:t,panelCollapsed:o}}function Tn(e,n,a=h.noodleCurving){if(a===0)return[[e[0]+(n[0]-e[0])/3,e[1]+(n[1]-e[1])/3],[e[0]+(n[0]-e[0])*2/3,e[1]+(n[1]-e[1])*2/3]];const r=Math.abs(n[0]-e[0]),t=Math.abs(n[1]-e[1]),o=r===0?Number.POSITIVE_INFINITY:t/r,d=Math.min(1,o*(4.5-.25*a)),u=a*.1*r*d;return[[e[0]+u,e[1]],[n[0]-u,n[1]]]}function K(e){return e.idname==="NodeFrame"?h.frame:e.colorTag==="OUTPUT"&&!e.activeOutput?h.body:Sn[e.colorTag]??h.body}function te(e){return e.useCustomColor?b(e.color):h.body}function b(e){const n=a=>Math.round(Math.min(1,Math.max(0,a))*255).toString(16).padStart(2,"0");return`#${n(e[0]??0)}${n(e[1]??0)}${n(e[2]??0)}`}function ie(e,n){const a=ae(h.background),r=ae(e);return b([r[0]*(1-n)+a[0]*n,r[1]*(1-n)+a[1]*n,r[2]*(1-n)+a[2]*n])}const En=.6,wn=.8,On=.2;function ae(e){const n=Number.parseInt(e.slice(1),16);return[(n>>16&255)/255,(n>>8&255)/255,(n&255)/255]}function G(e){return xn[e]??yn}const oe=O,X=Z/3,re=Z/4,In=I,j={cell:8,reach:4,spread:3.64648,stroke:1},Nn="#000000",Rn=31/255*1.5,$=e=>e.identifier??e.name;function Pn(e,n,a){if(!e.customSocketOrder)return{ok:!1,why:"its declaration does not set use_custom_socket_order, so Blender lays it out the legacy way"};const r=[],t=[],o=l=>{for(const p of l)p.kind==="input"?r.push($(p)):p.kind==="output"?t.push($(p)):p.kind==="panel"&&o(p.items)};o(e.items);const d=(l,p,m)=>{if(l.length!==p.length)return`the declaration names ${l.length} ${m}${l.length===1?"":"s"} and the engine reports ${p.length}`;for(let x=0;x<l.length;x++)if(l[x]!==p[x]?.identifier)return`${m} ${x} is "${p[x]?.identifier}" in the engine and "${l[x]}" in the declaration`;return null},u=d(t,a,"output")??d(r,n,"input");return u===null?{ok:!0}:{ok:!1,why:u}}const _n={Socket:2,Separator:.5,Layout:3,PanelHeader:4},Mn={Socket:2,Separator:1,Layout:5,PanelHeader:4,PanelContentEnd:1},vn={Socket:{Socket:1,Separator:0,Layout:2,PanelHeader:3,PanelContentEnd:2},Layout:{Socket:2,Separator:0,Layout:1,PanelHeader:3,PanelContentEnd:2},Separator:{Socket:2,Separator:1,Layout:1,PanelHeader:1,PanelContentEnd:1},PanelHeader:{Socket:4,Separator:3,Layout:3,PanelHeader:5,PanelContentBegin:3,PanelContentEnd:3},PanelContentBegin:{Socket:2,Separator:1,Layout:2,PanelHeader:3,PanelContentEnd:1},PanelContentEnd:{Socket:1,Separator:1,Layout:1,PanelHeader:3,PanelContentEnd:0}};function ce(e,n,a,r,t,o,d){let u=!1;for(const l of e){if(l.kind==="input"||l.kind==="output"){const y=n.get(`${l.kind}:${$(l)}`);if(!y||!A(y)){u=!1;continue}const E=o[o.length-1];if(l.alignWithPrevious===!0&&u&&E&&E.type==="Socket"){o[o.length-1]={type:"Socket",input:l.kind==="input"?y:E.input,output:l.kind==="output"?y:E.output},u=!0;continue}o.push({type:"Socket",input:l.kind==="input"?y:void 0,output:l.kind==="output"?y:void 0}),u=!0;continue}if(u=!1,l.kind==="separator"){o.push({type:"Separator"});continue}if(l.kind==="layout"){r&&o.push({type:"Layout"});continue}if(l.kind!=="panel")continue;const p=l.items[0],m=p&&p.kind==="input"&&p.panelToggle===!0?p:null,x=m?n.get(`input:${$(m)}`)??null:null,c=[],k=y=>{for(const E of y)if(E.kind==="input"||E.kind==="output"){const P=n.get(`${E.kind}:${$(E)}`);P&&c.push(P)}else E.kind==="panel"&&k(E.items)};if(k(l.items),!c.some(A))continue;const g=a(l.defaultClosed===!0),C={name:l.name,depth:t,collapsed:g,toggle:x,owned:c,centerY:0,contentTop:null,contentBottom:null,fillsNodeEnd:!1};d.push(C),o.push({type:"PanelHeader",panel:C}),!g&&(o.push({type:"PanelContentBegin",panel:C}),ce(l.items.filter(y=>y!==m),n,a,r,t+1,o,d),o.push({type:"PanelContentEnd",panel:C}))}}function An(e){const n=e.location[0]??0,a=e.location[1]??0,r=e.width,t=new Map;for(const c of e.inputs)t.set(`input:${c.identifier}`,c);for(const c of e.outputs)t.set(`output:${c.identifier}`,c);let o=0;const d=e.panelStates,u=[],l=[];ce(e.declaration.items,t,c=>d[o++]?.collapsed??c,e.showOptions,0,u,l);const p=[];let m=a-S;u.length===0&&(m-=O);for(let c=0;c<u.length;c++){const k=u[c];if(!k)continue;const g=u[c-1],C=c===0?_n[k.type]??0:vn[g?.type??"Socket"]?.[k.type]??0;if(m-=C*_,k.type==="Socket"){const y=m;k.output&&p.push(M(k.output,!0,n+r,y-O,y)),k.input&&p.push(M(k.input,!1,n,y-O,y)),m=y-S;continue}if(k.type==="Layout"||k.type==="Separator"){m-=S;continue}if(k.type==="PanelHeader"&&k.panel){m-=oe/2,k.panel.centerY=m,m-=oe/2,k.panel.toggle&&p.push(M(k.panel.toggle,!1,n,k.panel.centerY,k.panel.centerY));continue}k.type==="PanelContentBegin"&&k.panel&&(k.panel.contentTop=m),k.type==="PanelContentEnd"&&k.panel&&(k.panel.contentBottom=m)}const x=u[u.length-1];x&&(m-=(Mn[x.type]??0)*_);for(const c of l)if(c.collapsed)for(const k of c.owned){if(!A(k))continue;const g=e.outputs.includes(k);p.push(M(k,g,g?n+r:n,c.centerY,c.centerY,!0))}for(let c=u.length-1;c>=0;c--){const k=u[c];if(!k||k.type!=="PanelContentEnd")break;k.panel&&(k.panel.fillsNodeEnd=!0)}return{name:e.name,x:n,yTop:a,yBottom:Math.min(m,a-2*S),width:r,collapsed:!1,sockets:p,panels:l.map(c=>({name:c.name,depth:c.depth,collapsed:c.collapsed,centerY:c.centerY,contentTop:c.contentTop,contentBottom:c.contentBottom,fillsNodeEnd:c.fillsNodeEnd,toggle:c.toggle?M(c.toggle,!1,n,c.centerY,c.centerY):null}))}}function bn(e){const n=a=>a.some(r=>r.kind==="layout"?!0:r.kind==="panel"?n(r.items):!1);return n(e.items)}const Ct="workspace.document",Tt="Shader Editor";Ce(Ne);const Dn=320,ue=.1,se=4;function Et(){const e=T.useSyncExternalStore(Te,Q,Q),[n,a]=T.useState(null),[r,t]=T.useState(null),o=T.useRef(null),d=T.useRef(!1);T.useSyncExternalStore(Ee,ee,ee);const{transform:u,looked:l,refusal:p,size:m}=U(),x=T.useCallback(s=>{const f=U().transform;B({transform:typeof s=="function"?s(f):s})},[]),c=T.useCallback(s=>{B({looked:s,refusal:null})},[]),k=T.useCallback(s=>{const f=U().size;f.w===s.w&&f.h===s.h||B({size:s})},[]),g=T.useCallback(s=>{we(s)},[]);T.useEffect(()=>{let s=!0;return(async()=>{try{const f=await Oe();if(!s)return;a(f),t(null)}catch(f){if(!s)return;t(f instanceof Error?f.message:String(f))}})(),()=>{s=!1}},[e]),T.useEffect(()=>{const s=o.current;if(!s)return;const f=new ResizeObserver(()=>{k({w:s.clientWidth,h:s.clientHeight})});return f.observe(s),k({w:s.clientWidth,h:s.clientHeight}),()=>f.disconnect()},[]);const C=T.useMemo(()=>jn(n),[n]);T.useEffect(()=>{B({drawn:[...C.frames,...C.nodes].map(({node:s,laid:f,panels:v,fallback:ye})=>{const J=f.sockets.find(H=>!H.panelCollapsed)??f.sockets[0];return{panels:v.length,collapsedPanels:v.filter(H=>H.collapsed).length,panelFallback:ye,name:s.name,x:f.x,yTop:f.yTop,yBottom:f.yBottom,width:f.width,height:f.yTop-f.yBottom,sockets:f.sockets.length,firstSocketBelowTop:J?f.yTop-J.y:null,header:K(s)}})})},[C]);const y=T.useCallback(()=>{const s=Fn(C.nodes);if(!s)return;const f=de(Math.min(m.w/(s.w+2*S),m.h/(s.h+2*S)),ue,se);B({transform:{cx:s.x+s.w/2,cy:s.y-s.h/2,zoom:f},framedAt:Date.now()})},[C.nodes,m.h,m.w]),E=Ie(),P=T.useRef(0);T.useEffect(()=>{E!==P.current&&(P.current=E,y())},[E,y]),T.useEffect(()=>{d.current||C.nodes.length===0||m.w<=1||(d.current=!0,y())},[C.nodes.length,m.w,y]);const W=T.useRef(null),fe=s=>{s.button===1&&(s.preventDefault(),s.target.setPointerCapture?.(s.pointerId),W.current={x:s.clientX,y:s.clientY,cx:u.cx,cy:u.cy})},he=s=>{const f=W.current;f&&x(v=>({...v,cx:f.cx-(s.clientX-f.x)/v.zoom,cy:f.cy+(s.clientY-f.y)/v.zoom}))},q=()=>{W.current=null},ge=s=>{s.preventDefault(),x(f=>({...f,zoom:de(f.zoom*(s.deltaY<0?1.1:1/1.1),ue,se)}))},Se=n?.nodes.find(s=>s.name===l)??null,xe=u.zoom>kn;return i.jsxs("div",{"data-testid":"blender-node-editor",style:{display:"flex",position:"absolute",inset:0,overflow:"hidden"},children:[i.jsxs("div",{style:{display:"flex",flexDirection:"column",flex:1,minWidth:0,minHeight:0},children:[i.jsx(Xn,{tree:n,zoom:u.zoom,onViewAll:y,onRefuse:g}),i.jsx("div",{ref:o,style:{position:"relative",flex:1,minHeight:0},children:i.jsx("svg",{role:"presentation",width:"100%",height:"100%",onPointerDown:fe,onPointerMove:he,onPointerUp:q,onPointerCancel:q,onWheel:ge,onContextMenu:s=>{s.preventDefault(),g("The node context menu adds, deletes and reconnects nodes — editing.")},style:{display:"block",background:h.background,cursor:"default"},children:i.jsxs("g",{transform:`translate(${m.w/2} ${m.h/2}) scale(${u.zoom} ${-u.zoom}) translate(${-u.cx} ${-u.cy})`,children:[C.frames.map(s=>i.jsx(Vn,{node:s.node,laid:s.laid},s.node.name)),C.links.map(s=>i.jsx(zn,{link:s},s.key)),C.nodes.map(s=>i.jsx(Gn,{node:s.node,laid:s.laid,panels:s.panels,looked:s.node.name===l,details:xe,onLook:()=>c(s.node.name),onRefuse:g},s.node.name))]})})}),i.jsx(Kn,{entries:C.nodes,error:r,refusal:p})]}),i.jsx(Zn,{node:Se,onRefuse:g})]})}const Bn=26,Ln=22,$n=mn;function jn(e){if(!e)return{nodes:[],frames:[],links:[]};const n=new Map,a=e.nodes.map(t=>{const o={name:t.name,location:t.location,width:t.width,collapsed:t.collapsed,inputs:t.inputs,outputs:t.outputs},d=t.collapsed?void 0:$n[t.idname];if(t.panelCount>0&&!d){const l=V(o);return n.set(t.name,l),{node:t,laid:l,panels:[],fallback:t.collapsed?null:"no traced declaration — the trace covers the 36 node types that declare a panel in Blender 5.2.0, and a node group’s panels are runtime data",approximate:!1}}if(d){const l=Pn(d,t.inputs,t.outputs);if(l.ok){const m=An({...o,declaration:d,panelStates:t.panels,showOptions:t.showOptions});return n.set(t.name,m),{node:t,laid:m,panels:m.panels,fallback:null,approximate:bn(d)}}const p=V(o);return n.set(t.name,p),{node:t,laid:p,panels:[],fallback:l.why,approximate:!1}}const u=V(o);return n.set(t.name,u),{node:t,laid:u,panels:[],fallback:null,approximate:!1}}),r=e.links.flatMap((t,o)=>{const d=n.get(t.fromNode),u=n.get(t.toNode);if(!d||!u)return[];const l=d.sockets.find(m=>m.output&&m.identifier===t.fromSocket),p=u.sockets.find(m=>!m.output&&m.identifier===t.toSocket);return!l||!p?[]:[{key:`${t.fromNode}.${t.fromSocket}→${t.toNode}.${t.toSocket}#${o}`,from:[l.x,l.y],to:[p.x,p.y],fromColor:G(l.type),toColor:G(p.type),muted:t.muted,valid:t.valid}]});return{nodes:a.filter(t=>t.node.idname!=="NodeFrame"),frames:a.filter(t=>t.node.idname==="NodeFrame"),links:r}}function Fn(e){if(e.length===0)return null;let n=Number.POSITIVE_INFINITY,a=Number.NEGATIVE_INFINITY,r=Number.POSITIVE_INFINITY,t=Number.NEGATIVE_INFINITY;for(const{laid:o}of e)n=Math.min(n,o.x),a=Math.max(a,o.x+o.width),r=Math.min(r,o.yBottom),t=Math.max(t,o.yTop);return{x:n,y:t,w:a-n,h:t-r}}const de=(e,n,a)=>Math.min(a,Math.max(n,e));function Gn({node:e,laid:n,panels:a,looked:r,details:t,onLook:o,onRefuse:d}){if(e.type==="REROUTE"){const g=n.sockets[0];return i.jsx("circle",{cx:n.x,cy:n.yTop,r:hn,fill:g?G(g.type):h.wireInner,stroke:pe,strokeWidth:F,onPointerDown:C=>{C.button===0&&o()}})}const u=e.muted?ie(K(e),En):K(e),l=e.muted?ie(te(e),wn):te(e),p=e.muted?1-On:1,m=e.selected?e.activeOutput||r?h.active:h.select:h.outline,x=e.selected?1:h.outlineAlpha,c=n.yTop-n.yBottom,k=e.label??e.typeLabel;return i.jsxs("g",{opacity:p,onPointerDown:g=>{g.button===0&&o()},onDoubleClick:()=>d(`Renaming "${e.name}" writes Node.name — editing parity is not the program.`),style:{cursor:"default"},children:[n.collapsed?i.jsx("rect",{x:n.x-w,y:-n.yTop-w,width:n.width+2*w,height:c+2*w,rx:Y,fill:u,transform:"scale(1 -1)"}):i.jsxs(i.Fragment,{children:[i.jsx("rect",{x:n.x-w,y:-(n.yTop-S)-w,width:n.width+2*w,height:c-S+2*w,rx:Y,fill:l,transform:"scale(1 -1)"}),i.jsx("rect",{x:n.x-w,y:-n.yTop-w,width:n.width+2*w,height:S+2*w,rx:Y,fill:u,transform:"scale(1 -1)"}),i.jsx("rect",{x:n.x-w,y:-(n.yTop-S)-w,width:n.width+2*w,height:D,fill:u,transform:"scale(1 -1)"}),a.map(g=>i.jsx(Wn,{panel:g,laid:n},`bg:${g.name}`))]}),i.jsx("rect",{x:n.x-N,y:-n.yTop-N,width:n.width+2*N,height:c+2*N,rx:cn,fill:"none",stroke:m,strokeOpacity:x,strokeWidth:N,transform:"scale(1 -1)"}),i.jsx("text",{x:n.x+Z,y:-(n.yTop-S/2),transform:"scale(1 -1)",fill:h.text,fontSize:R,dominantBaseline:"central",style:{pointerEvents:"none",userSelect:"none"},children:k}),t&&n.sockets.map(g=>i.jsx(Un,{socket:g,node:n,onRefuse:d},`${g.output?"o":"i"}:${g.identifier}`)),t&&a.map(g=>i.jsx(Hn,{panel:g,laid:n,onRefuse:d},`hd:${g.name}`))]})}function Wn({panel:e,laid:n}){if(e.contentTop===null||e.contentBottom===null)return null;const a=[{y:e.contentTop,height:e.contentTop-e.contentBottom,radius:0,times:1}];return e.fillsNodeEnd&&a.push({y:e.contentBottom,height:e.contentBottom-n.yBottom,radius:D,times:e.depth+1}),i.jsx("g",{style:{pointerEvents:"none"},children:a.flatMap((r,t)=>Array.from({length:r.times},(o,d)=>i.jsx("rect",{x:n.x,y:-r.y,width:n.width,height:Math.max(r.height,0),rx:r.radius,fill:Nn,fillOpacity:Rn,transform:"scale(1 -1)"},`${t}:${d}`)))})}function Hn({panel:e,laid:n,onRefuse:a}){const r=pn,t=r/j.cell,o=n.x+X+r/2,d=e.centerY,u=j.reach*t,l=j.spread*t,p=e.collapsed?`M ${o-u/2} ${-(d+l)} L ${o+u/2} ${-d} L ${o-u/2} ${-(d-l)}`:`M ${o-l} ${-(d+u/2)} L ${o} ${-(d-u/2)} L ${o+l} ${-(d+u/2)}`,m=n.x+X+r+re+(e.toggle&&!e.toggle.linked?In:0);return i.jsxs("g",{onPointerDown:x=>{x.button===0&&(x.stopPropagation(),a(`${e.collapsed?"Opening":"Collapsing"} "${e.name}" writes the panel's is_collapsed — editing parity is not the program.`))},style:{cursor:"default"},children:[i.jsx("rect",{x:n.x,y:-(d+O),width:n.width,height:2*O,fill:"transparent",transform:"scale(1 -1)"}),i.jsx("path",{d:p,fill:"none",stroke:h.text,strokeWidth:j.stroke*t,strokeLinecap:"round",strokeLinejoin:"round",transform:"scale(1 -1)",style:{pointerEvents:"none"}}),e.toggle&&!e.toggle.linked&&i.jsx("rect",{x:n.x+X+r+re,y:-(d+O/2),width:O,height:O,rx:.2*O,fill:e.toggle.value===!0?"#4772b3":"#545454",transform:"scale(1 -1)",style:{pointerEvents:"none"}}),i.jsx("text",{x:m,y:-d,transform:"scale(1 -1)",fill:h.text,fontSize:R,dominantBaseline:"central",style:{pointerEvents:"none",userSelect:"none"},children:e.name})]})}function Un({socket:e,node:n,onRefuse:a}){const r=G(e.type),t=e.type==="CUSTOM"?Cn:pe,o=me,d=e.shape.replace("_DOT",""),u=e.shape.endsWith("_DOT"),l=d==="SQUARE"?i.jsx("rect",{x:e.x-o,y:-e.y-o,width:2*o,height:2*o,fill:r,stroke:t,strokeWidth:F,transform:"scale(1 -1)"}):d==="DIAMOND"?i.jsx("polygon",{points:`${e.x},${-e.y-o} ${e.x+o},${-e.y} ${e.x},${-e.y+o} ${e.x-o},${-e.y}`,fill:r,stroke:t,strokeWidth:F,transform:"scale(1 -1)"}):i.jsx("circle",{cx:e.x,cy:-e.y,r:o,fill:r,stroke:t,strokeWidth:F,transform:"scale(1 -1)"});return i.jsxs("g",{onPointerDown:p=>{p.button===0&&(p.stopPropagation(),a(`Dragging from "${e.name}" would make a link — editing parity is not the program.`))},children:[l,u&&i.jsx("circle",{cx:e.x,cy:-e.y,r:o*.35,fill:t,transform:"scale(1 -1)"}),!n.collapsed&&!e.panelCollapsed&&i.jsx(Yn,{socket:e,node:n,onRefuse:a})]})}function Yn({socket:e,node:n,onRefuse:a}){const r=O,t=n.x+r,o=n.x+n.width-r,d=-(e.rowTop-S/2);if(!(!e.output&&!e.linked&&!e.hideValue&&e.value!==null))return i.jsx("text",{x:e.output?o:t,y:d,transform:"scale(1 -1)",textAnchor:e.output?"end":"start",fill:h.text,fontSize:R,dominantBaseline:"central",style:{pointerEvents:"none",userSelect:"none"},children:e.name});const l=Array.isArray(e.value)&&e.value.length>=3;return i.jsxs("g",{onPointerDown:p=>{p.button===0&&(p.stopPropagation(),a(`Changing "${e.name}" writes the socket's default_value — editing parity is not the program.`))},style:{cursor:"default"},children:[i.jsx("rect",{x:t,y:d-S/2+1,width:o-t,height:S-2,rx:.2*S,fill:"#545454",transform:"scale(1 -1)"}),le(e)!==null&&i.jsxs(i.Fragment,{children:[i.jsx("clipPath",{id:`sl-${e.identifier}`,children:i.jsx("rect",{x:t,y:d-S/2+1,width:o-t,height:S-2,rx:.2*S})}),i.jsx("rect",{x:t,y:d-S/2+1,width:(o-t)*(le(e)??0),height:S-2,fill:h.sliderFill,clipPath:`url(#sl-${e.identifier})`,transform:"scale(1 -1)"})]}),i.jsx("text",{x:t+6,y:d,transform:"scale(1 -1)",fill:h.text,fontSize:R,dominantBaseline:"central",style:{pointerEvents:"none",userSelect:"none"},children:e.name}),l?i.jsx("rect",{x:o-34,y:d-S/2+3,width:30,height:S-6,rx:2,fill:b(e.value),transform:"scale(1 -1)"}):i.jsx("text",{x:o-6,y:d,transform:"scale(1 -1)",textAnchor:"end",fill:h.text,fontSize:R,dominantBaseline:"central",style:{pointerEvents:"none",userSelect:"none"},children:ke(e.value)})]})}function le(e){const{softMin:n,softMax:a,value:r}=e;return n===void 0||a===void 0||typeof r!="number"||a<=n?null:Math.min(1,Math.max(0,(r-n)/(a-n)))}function ke(e){return e===null?"":typeof e=="boolean"?e?"On":"Off":typeof e=="number"?e.toFixed(3):typeof e=="string"?e:e.map(n=>n.toFixed(2)).join(", ")}function zn({link:e}){const[n,a]=Tn(e.from,e.to),r=`M ${e.from[0]} ${e.from[1]} C ${n[0]} ${n[1]}, ${a[0]} ${a[1]}, ${e.to[0]} ${e.to[1]}`,t=e.valid?h.wireInner:"#ff2020";return i.jsxs("g",{style:{pointerEvents:"none"},children:[i.jsx("path",{d:r,fill:"none",stroke:h.wire,strokeWidth:ne+2*N}),i.jsx("path",{d:r,fill:"none",stroke:t,strokeWidth:ne,strokeDasharray:e.muted?"10 10":void 0,strokeOpacity:e.muted?h.dashAlpha:1})]})}function Vn({node:e,laid:n}){const a=Math.max(n.yTop-n.yBottom,gn*2);return i.jsxs("g",{style:{pointerEvents:"none"},children:[i.jsx("rect",{x:n.x,y:-n.yTop,width:n.width,height:a,rx:D,fill:e.useCustomColor?b(e.color):h.frame,fillOpacity:h.frameAlpha,transform:"scale(1 -1)"}),e.label&&i.jsx("text",{x:n.x+n.width/2,y:-(n.yTop-25),transform:"scale(1 -1)",textAnchor:"middle",fill:h.text,fontSize:20,children:e.label})]})}function Xn({tree:e,zoom:n,onViewAll:a,onRefuse:r}){return i.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"var(--volter-space-2)",height:Bn,padding:"0 var(--volter-space-2)",background:h.background,color:h.text,font:`${R}px inherit`,borderBottom:"1px solid #161616"},children:[i.jsx("span",{"data-testid":"node-editor-tree-type",style:{opacity:.85},children:e?.typeLabel??"Shader Editor"}),i.jsx("span",{style:{opacity:.4},children:"·"}),i.jsx("span",{"data-testid":"node-editor-material",children:e?.material??"No material"}),i.jsx("span",{style:{flex:1}}),i.jsxs("span",{style:{opacity:.6},children:[Math.round(n*100),"%"]}),i.jsx("button",{type:"button",className:"volter-btn","data-variant":"ghost","data-size":"sm",onClick:a,"data-testid":"node-editor-view-all",children:"View All"}),i.jsx("button",{type:"button",className:"volter-btn","data-variant":"ghost","data-size":"sm","data-testid":"node-editor-use-nodes",onClick:()=>r("Use Nodes writes Material.use_nodes — editing parity is not the program."),children:"Use Nodes"})]})}function Kn({entries:e,error:n,refusal:a}){const r=e.filter(u=>u.fallback!==null),t=e.filter(u=>u.approximate),o=e.reduce((u,l)=>u+l.panels.length,0),d=n||a||(r.length>0?`${r.map(u=>`"${u.node.name}" draws its sockets flat: ${u.fallback}`).join("; ")}.`:t.length>0?`${t.map(u=>`"${u.node.name}"`).join(", ")} ${t.length===1?"carries a":"carry"} declaration LAYOUT row, whose drawn height RNA cannot answer; one UI unit is reserved for it.`:o>0?`${o} socket panel${o===1?"":"s"} drawn from Blender's own declarations. Read-only: this view inspects the node tree and never writes it.`:"Read-only: this view inspects the node tree and never writes it.");return i.jsx("div",{"data-testid":"node-editor-status",style:{flex:"0 0 auto",height:Ln,display:"flex",alignItems:"center",padding:"0 var(--volter-space-2)",background:h.background,color:n||a?"#ffa028":"#888888",font:`${R}px inherit`,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:d})}function Zn({node:e,onRefuse:n}){return i.jsxs("aside",{"data-testid":"node-editor-sidebar",style:{width:Dn,flex:"0 0 auto",overflow:"auto",background:h.background,color:h.text,font:`${R}px inherit`,borderLeft:"1px solid #161616",padding:"var(--volter-space-2)"},children:[i.jsx("div",{style:{opacity:.6,marginBottom:"var(--volter-space-2)"},children:"Node"}),e?i.jsxs(i.Fragment,{children:[i.jsx(L,{label:"Name",value:e.name,onRefuse:n}),i.jsx(L,{label:"Label",value:e.label??"",onRefuse:n}),i.jsx(L,{label:"Color",value:e.useCustomColor?b(e.color):"Off",onRefuse:n,swatch:e.useCustomColor?b(e.color):void 0}),i.jsx(L,{label:"Mute",value:e.muted?"On":"Off",onRefuse:n}),i.jsx("div",{style:{opacity:.6,margin:"var(--volter-space-3) 0 var(--volter-space-1)"},children:"Properties"}),e.inputs.filter(A).map(a=>i.jsx(L,{label:a.label??a.name,value:a.linked?"Linked":ke(a.value),onRefuse:n},a.identifier))]}):i.jsx("div",{style:{opacity:.5},children:"No node looked at."})]})}function L({label:e,value:n,swatch:a,onRefuse:r}){return i.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"var(--volter-space-2)",height:20},onPointerDown:()=>r(`"${e}" is read here and written nowhere — inspection parity.`),children:[i.jsx("span",{style:{flex:"0 0 45%",opacity:.75,textAlign:"right"},children:e}),a&&i.jsx("span",{style:{width:14,height:14,borderRadius:2,background:a,flex:"0 0 auto"}}),i.jsx("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis"},title:n,children:n})]})}export{Et as default,Ct as point,Tt as title};
|
package/dist/assets/{blender-properties-tab-BnIbJN4f.js → blender-properties-tab-y-_BeZDx.js}
RENAMED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{a as r}from"./jsx-runtime-DPjLkJKQ.js";import{r as Y}from"./index-
|
|
1
|
+
import{a as r}from"./jsx-runtime-DPjLkJKQ.js";import{r as Y}from"./index-V4J7xfRg.js";import{k as ce,l as H,m as Z,o as ue,p as ae,s as de,q as fe,t as pe}from"./blender-runtime-host-CUH6peXj.js";import{r as j}from"./index-nmcBqr7Y.js";const he=e=>typeof e=="object"&&e!==null&&typeof e.subscribeFrames=="function"&&typeof e.blenderObjectName=="function",xe=e=>typeof e=="object"&&e!==null&&typeof e.documentId=="string"&&typeof e.hierarchy?.object3D=="function";function q(){const e=Y().documents.context(H());return he(e)?e:null}function J(e,t){if(e===null||!xe(t))return null;const n=q();if(n===null)return null;if(e.id===t.documentId)return t.documentRootObject===n.root?{kind:"scene"}:null;const i=ce().byId.get(e.id);if(i?.type==="TSE_LAYER_COLLECTION")return{kind:"collection",path:i.path};const l=t.hierarchy.object3D(e.id);if(l===null)return null;if(l===n.root)return{kind:"scene"};const o=n.blenderObjectName(l);return o===null?null:{kind:"object",name:o}}let O={object:null,collection:null,context:null,views:new Map,error:null,loading:!1},Q=0;const D=new Set;let U=null;const N=new Set;let I=null,b=0,_=0;const T=new Set;function y(e,t=!1){O={...O,...e},Q+=1;for(const n of[...D])n();t&&Y().documents.contextChanged(H())}function ge(e){return D.add(e),()=>{D.delete(e)}}function K(){return Q}function B(){return O}function ye(){const e=I;b+=1,N.clear(),T.clear(),e!==null?ee(e,!0):y({})}de(()=>{ye()});let k=null;function ee(e,t=!1){k!==e&&(k=e,setTimeout(()=>{k===e&&(k=null,me(e,t))},0))}function be(e){return e.kind==="scene"?"":e.kind==="collection"?`collection:${e.path}`:e.name}function je(){if(U!==null)return;const e=q();e!==null&&(U=e.subscribeFrames(ue))}async function me(e,t=!1){const n=e.startsWith("collection:")?e.slice(11):null,i=n===null&&e!==""?e:null,l=t&&I===e;I!==e&&(b+=1,N.clear(),T.clear());const o=b,c=++_;I=e;const u=l?O.context:null;l||y({loading:!0,object:i,collection:n,context:null,error:null,views:new Map});try{const s=await ae(i??void 0,n??void 0);if(o!==b||c!==_)return;if(l&&JSON.stringify(s)===JSON.stringify(u)){y({loading:!1,error:null});return}y({context:s,loading:!1,error:null},!0)}catch(s){if(o!==b||c!==_)return;y({context:null,loading:!1,error:z(s)},!0)}}function te(e){if(!Z())return;je();const t=be(e);I!==t&&ee(t)}function R(e){const t=O.views.get(e);if(t!==void 0&&T.has(e)||N.has(e)||!Z())return t;N.add(e);const n=b;return fe(e).then(i=>{if(n!==b||(N.delete(e),T.add(e),i===null))return;const l=new Map(O.views);l.set(e,i),y({views:l,error:null})}).catch(i=>{n===b&&(N.delete(e),y({error:z(i)}))}),t}async function ve(e,t,n,i){try{return await pe(e,t,n,i),T.delete(e),y({error:null}),!0}catch(l){return y({error:z(l)}),!1}}function z(e){return e instanceof Error?e.message:String(e)}const $=20,V=2,Se="40%",Ee=25,X=20,v=8,Ne=4,G=8,p=11,g=.5,x="#e6e6e6",Ae="#3d3d3d",Oe="#ffffff11",Re="rgba(0,0,0,0.12)",$e="#545454",Ce="#3d3d3d",Le="#4772b3",ne="#991616",Ie=8,Te=6,Pe=e=>Math.round(e*.2),ie=e=>e.filter(t=>t.hidden!==!0&&t.undrawn!==!0);function P(){return j.useSyncExternalStore(ge,K,K)}function h({title:e,sub:t=!1,closed:n=!1,note:i,count:l,children:o}){const[c,u]=j.useState(!n);return r.jsxs("div",{style:{marginBottom:v,borderRadius:Ne,boxShadow:t?"none":`inset 0 0 0 1px ${Oe}`,background:t?Re:"transparent",overflow:"hidden"},children:[r.jsxs("button",{type:"button",onClick:()=>u(!c),style:{display:"flex",alignItems:"center",width:"100%",height:Ee,background:t?"transparent":Ae,border:"none",padding:`0 ${G}px 0 ${t?X+14-20:0}px`,color:x,font:`${p}px inherit`,textAlign:"left",cursor:"pointer",gap:Te},children:[r.jsx("span",{"aria-hidden":"true",style:{width:X-8,textAlign:"center",fontSize:Ie,opacity:.85},children:c?"▼":"▶"}),r.jsx("span",{style:{fontWeight:400},title:i,children:e}),l===void 0?null:r.jsx("span",{style:{opacity:g,marginLeft:"auto"},children:l})]}),c?r.jsx("div",{style:{padding:v},children:o}):null]})}function A({label:e,title:t,readonly:n,identifier:i,children:l}){return r.jsxs("div",{"data-rna-field":i??"","data-field-label":e,"data-field-readonly":n?"true":void 0,style:{display:"flex",alignItems:"center",minHeight:$,marginBottom:V,gap:G,opacity:n?g:1},title:t,children:[r.jsx("span",{style:{flex:`0 0 ${Se}`,textAlign:"right",color:x,fontSize:p,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e}),r.jsx("span",{style:{flex:"1 1 0",minWidth:0,display:"flex",gap:V},children:l})]})}const m={height:$,width:"100%",minWidth:0,boxSizing:"border-box",background:$e,border:`1px solid ${Ce}`,borderRadius:Pe($),color:x,fontSize:p,padding:`0 ${G}px`,textAlign:"center"};function S({children:e}){return r.jsx("span",{style:{...m,display:"flex",alignItems:"center",justifyContent:"center",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e})}const F=$-2*Math.floor(($-2)/6);function re({value:e,readonly:t,label:n,onChange:i}){return r.jsx("input",{type:"checkbox",checked:e,readOnly:t,...n===void 0?{}:{"aria-label":n},onChange:l=>!t&&i(l.target.checked),style:{width:F,height:F,margin:`${($-F)/2}px 0`,accentColor:Le,cursor:t?"default":"pointer"}})}function le({row:e,value:t,index:n,onWrite:i}){const[l,o]=j.useState(null),c=e.type==="FLOAT"?e.precision??3:0,u=l??(e.type==="FLOAT"?t.toFixed(c):String(t));return e.readonly?r.jsx(S,{children:u}):r.jsx("input",{type:"number","aria-label":C(e,n),value:u,...e.softMin===void 0?{}:{min:e.softMin},...e.softMax===void 0?{}:{max:e.softMax},...e.step===void 0?{}:{step:e.type==="FLOAT"?e.step/100:1},onChange:s=>o(s.target.value),onBlur:()=>{const s=Number(l);o(null),l!==null&&Number.isFinite(s)&&s!==t&&i(s,n)},onKeyDown:s=>{s.key==="Enter"&&s.target.blur(),s.key==="Escape"&&o(null)},style:m})}const ke=new Set(["TRANSLATION","DIRECTION","XYZ","XYZ_LENGTH","EULER","VELOCITY","ACCELERATION","COORDS"]);function oe(e,t){if(e==="QUATERNION"||e==="AXISANGLE")return"WXYZ"[t];if(!(t>=4)){if(ke.has(e))return"XYZW"[t];if(e==="COLOR"||e==="COLOR_GAMMA")return"RGBA"[t]}}function C(e,t){const n=e.name||e.identifier;return t===void 0?n:`${n} ${oe(e.subtype,t)??t}`}function Me(e){const t=n=>Math.max(0,Math.min(255,Math.round((e[n]??0)**.45454545454545453*255)));return`rgb(${t(0)}, ${t(1)}, ${t(2)})`}function Be({row:e,onOpen:t}){const n=e.value;if(n===null||n.path===null)return r.jsx(S,{children:n===null?"None":n.name??n.type});const i=n.path;return r.jsx("button",{type:"button","aria-label":C(e),onClick:()=>t(i),style:{...m,cursor:"pointer",textAlign:"left"},title:i,children:n.name??n.type})}function _e({row:e,write:t}){const n=e.items??[];if(e.isFlag){const l=e.value??[];return r.jsx(S,{children:l.length===0?"None":l.join(", ")})}const i=String(e.value??"");return e.readonly?r.jsx(S,{children:n.find(l=>l.identifier===i)?.name??i}):r.jsx("select",{"aria-label":C(e),value:i,onChange:l=>t(l.target.value),style:{...m,textAlign:"left"},children:n.map(l=>r.jsx("option",{value:l.identifier,children:l.name},l.identifier))})}function Fe({row:e,write:t}){const n=String(e.value??"");return e.readonly?r.jsx(S,{children:n}):r.jsx(we,{value:n,label:C(e),onWrite:i=>t(i)})}function De({row:e}){const t=e.value??[];return r.jsx("span",{style:{...m,background:Me(t),display:"block"},title:t.map(n=>n.toFixed(3)).join(", ")})}function We({row:e,label:t,title:n,write:i}){const l=e.value??[];return r.jsx(r.Fragment,{children:l.map((o,c)=>r.jsx(A,{label:ze(t,c,e.subtype),title:n,readonly:e.readonly,identifier:`${e.identifier}[${c}]`,children:e.type==="BOOLEAN"?r.jsx(re,{value:o===!0,readonly:e.readonly,label:C(e,c),onChange:u=>i(u,c)}):r.jsx(le,{row:e,value:Number(o),index:c,onWrite:(u,s)=>i(u,s)})},`${e.identifier}-${c}`))})}function ze(e,t,n){const i=oe(n,t);return i===void 0?t===0?e:`${e} ${t}`:`${t===0?`${e} `:""}${i}`}function Ge(e){const{row:t,write:n}=e;switch(t.type){case"POINTER":return r.jsx(Be,{...e});case"ENUM":return r.jsx(_e,{...e});case"STRING":return r.jsx(Fe,{...e});case"BOOLEAN":return r.jsx(re,{value:t.value===!0,readonly:t.readonly,label:C(t),onChange:n});default:return r.jsx(le,{row:t,value:Number(t.value??0),onWrite:i=>n(i)})}}function w({row:e,path:t,onOpen:n}){const i=(a,f)=>void ve(t,e.identifier,a,f),l=e.name||e.identifier,o=`${e.identifier} — ${e.type}${e.subtype==="NONE"?"":`/${e.subtype}`}${e.readonly?" (read-only)":""}${e.description?`
|
|
2
2
|
${e.description}`:""}`,c={row:e,path:t,write:i,onOpen:n},u=e.valueOmitted??e.valueError;if(u!==void 0)return r.jsx(A,{label:l,title:o,readonly:!0,identifier:e.identifier,children:r.jsx(S,{children:u})});if(e.type==="COLLECTION")return r.jsx(Ue,{label:l,title:o,value:e.value??{count:0},identifier:e.identifier,onOpen:()=>n(`${t}.${e.identifier}`)});const s=e.type==="INT"||e.type==="FLOAT";return e.arrayLength>0&&(s||e.type==="BOOLEAN")?s&&(e.subtype==="COLOR"||e.subtype==="COLOR_GAMMA")?r.jsx(A,{label:l,title:o,readonly:e.readonly,identifier:e.identifier,children:r.jsx(De,{...c})}):r.jsx(We,{...c,label:l,title:o}):r.jsx(A,{label:l,title:o,readonly:e.readonly,identifier:e.identifier,children:Ge(c)})}function we({value:e,label:t,onWrite:n}){const[i,l]=j.useState(null);return r.jsx("input",{type:"text",...t===void 0?{}:{"aria-label":t},value:i??e,onChange:o=>l(o.target.value),onBlur:()=>{i!==null&&i!==e&&n(i),l(null)},onKeyDown:o=>{o.key==="Enter"&&o.target.blur(),o.key==="Escape"&&l(null)},style:{...m,textAlign:"left"}})}function Ue({label:e,title:t,value:n,identifier:i,onOpen:l}){const[o,c]=j.useState(!1),u=n.names??[];return r.jsxs(r.Fragment,{children:[r.jsx(A,{label:e,title:t,readonly:!1,identifier:i,children:r.jsxs("button",{type:"button","aria-label":e,onClick:()=>u.length?c(!o):l(),style:{...m,cursor:"pointer",textAlign:"left"},children:[u.length?`${o?"▼":"▶"} `:"",n.count," ",n.count===1?"item":"items"]})}),o?u.map(s=>r.jsx(A,{label:"",readonly:!0,children:r.jsx(S,{children:s})},s)):null]})}const W=e=>typeof e=="string"?e:e.property;function Ke(e){if(e.active===void 0)return{path:null,index:null};const t=B().context?.[e.active];if(typeof t!="object"||t===null)return{path:null,index:null};const n=t;return{path:n.path??null,index:typeof n.index=="number"?n.index:null}}function Ve({panel:e,path:t,onOpen:n}){P();const i=R(t),l=Ke(e);return i===void 0?r.jsx(h,{title:e.title,closed:e.closed===!0,children:r.jsxs("div",{style:{color:x,opacity:g,fontSize:p},children:["Reading ",t,"…"]})}):i.kind!=="collection"?r.jsx(h,{title:e.title,closed:e.closed===!0,note:t,children:r.jsxs("div",{style:{color:ne,fontSize:p},children:[t," is not a collection — this panel is declared `collection: true`."]})}):r.jsxs(h,{title:e.title,closed:e.closed===!0,note:t,count:i.count,children:[i.items.length===0?r.jsx("div",{style:{color:x,opacity:g,fontSize:p},children:"None"}):null,i.items.map((o,c)=>r.jsx(h,{title:`${o.path!==null&&o.path===l.path||c===l.index?"● ":""}${o.name??o.type}`,sub:!0,children:o.path===null?r.jsxs("div",{style:{color:x,opacity:g,fontSize:p},children:[o.type," — RNA gives this member no address."]}):r.jsx(Xe,{path:o.path,properties:e.properties,andDeclared:e.andDeclared===!0,onOpen:n})},o.path??o.name??o.type))]})}function Xe({path:e,properties:t,andDeclared:n=!1,onOpen:i}){P();const l=R(e);if(l===void 0)return r.jsxs("div",{style:{color:x,opacity:g,fontSize:p},children:["Reading ",e,"…"]});const o=l.kind==="struct"?l.groups.flatMap(a=>a.rows):[],c=new Map(o.map(a=>[a.identifier,a])),u=t.map(a=>c.get(W(a))).filter(a=>a!==void 0),s=n&&l.kind==="struct"?ie(o).filter(a=>a.group===l.type&&!t.some(f=>W(f)===a.identifier)):[];return r.jsx(r.Fragment,{children:[...u,...s].map(a=>r.jsx(w,{row:a,path:e,onOpen:i},a.identifier))})}function Ye(e,t){if(e.engine!==void 0){const n=B().context?.engine;if(n===void 0)return null;if(!e.engine.includes(n))return!1}for(const n of e.when??[]){const i=n.from??e.from,l=i?t.find(s=>s.label===i):t[0];if(l===void 0)return!1;const o=R(l.path);if(o===void 0)return null;if(o.kind!=="struct")return!1;const c=o.groups.flatMap(s=>s.rows).find(s=>s.identifier===n.property);if(c===void 0)return!1;const u=c.value;if(typeof u!="string"&&typeof u!="number"&&typeof u!="boolean"||n.is!==void 0&&!n.is.includes(u)||n.isNot!==void 0&&n.isNot.includes(u))return!1}return!0}function se({panel:e,paths:t,onOpen:n}){if(P(),Ye(e,t)!==!0)return null;const i=e.from?t.find(s=>s.label===e.from):t[0];if(i!==void 0&&e.collection===!0)return r.jsx(Ve,{panel:e,path:i.path,onOpen:n});if(i===void 0)return null;const l=R(i.path),o=e.sub??[],c=[],u=[];for(const s of e.properties){const a=W(s),f=typeof s=="string"?i:t.find(L=>L.label===s.from),d=f===void 0?void 0:R(f.path),E=d?.kind==="struct"?d.groups.flatMap(L=>L.rows).find(L=>L.identifier===a):void 0;E===void 0||f===void 0?u.push(a):c.push({identifier:a,row:E,path:f.path})}return l===void 0?r.jsx(h,{title:e.title,closed:e.closed===!0,children:r.jsxs("div",{style:{color:x,opacity:g,fontSize:p},children:["Reading ",i.path,"…"]})}):c.length===0&&o.length===0?null:r.jsxs(h,{title:e.title,closed:e.closed===!0,note:u.length===0?`${i.path}`:`${i.path}
|
|
3
3
|
Not on this datablock: ${u.join(", ")}`,children:[c.map(s=>r.jsx(w,{row:s.row,path:s.path,onOpen:n},s.identifier)),o.map((s,a)=>r.jsx(se,{panel:s,paths:t,onOpen:n},`${a}:${s.title}`))]})}function M({path:e,onOpen:t}){P();const n=R(e);return n===void 0?r.jsxs("div",{style:{color:x,opacity:g,fontSize:p,padding:v},children:["Reading ",e,"…"]}):n.kind==="collection"?r.jsxs(r.Fragment,{children:[n.items.length===0?r.jsx("div",{style:{color:x,opacity:g,fontSize:p},children:n.count===0?"None":`${n.count} items`}):null,n.items.map(i=>r.jsx(h,{title:i.name??i.type,sub:!0,children:i.path===null?r.jsxs("div",{style:{color:x,opacity:g,fontSize:p},children:[i.type," — RNA gives this member no address."]}):r.jsx(M,{path:i.path,onOpen:t})},i.path??i.name??i.type))]}):r.jsx(r.Fragment,{children:n.groups.map(i=>{const l=ie(i.rows);return l.length===0?null:r.jsx(h,{title:i.label,sub:!0,children:l.map(o=>r.jsx(w,{row:o,path:n.path,onOpen:t},o.identifier))},i.id)})})}function He({tabId:e,subject:t,curated:n=[]}){P(),j.useEffect(()=>te(t),[t]);const[i,l]=j.useState([]),o=B(),c=o.context?.tabs.find(d=>d.id===e)??null,u=c?.paths??[],s=u.map(d=>d.path).join("|");if(j.useEffect(()=>l([]),[s]),o.error!==null)return r.jsx("div",{style:{color:ne,fontSize:p,padding:v},children:o.error});if(c===null)return r.jsx("div",{style:{color:x,opacity:g,fontSize:p,padding:v},children:o.loading?"Reading the engine…":"Blender shows no properties here."});const a=d=>l(E=>[...E,d]),f=i[i.length-1];return r.jsxs("div",{style:{padding:`${v}px 0`},children:[i.length>0?r.jsxs("button",{type:"button",onClick:()=>l(d=>d.slice(0,-1)),style:{...m,width:"auto",marginBottom:v,cursor:"pointer",textAlign:"left"},title:f,children:["← ",c.label]}):null,f!==void 0?r.jsx(h,{title:f.slice(f.lastIndexOf(".")+1),children:r.jsx(M,{path:f,onOpen:a})}):r.jsxs(r.Fragment,{children:[n.map((d,E)=>r.jsx(se,{panel:d,paths:u,onOpen:a},`${E}:${d.title}`)),n.length>0?r.jsx(h,{title:"All properties",closed:!0,children:u.map(d=>r.jsx(h,{title:d.label,sub:!0,children:r.jsx(M,{path:d.path,onOpen:a})},d.path))}):u.map(d=>r.jsx(h,{title:d.label,children:r.jsx(M,{path:d.path,onOpen:a})},d.path))]})]})}function et(e){return(t,n)=>{const i=J(t,n);if(i===null)return!1;if(te(i),e.standing==="any")return!0;if(e.standing==="object")return i.kind==="object";const l=B(),o=i.kind==="object"?i.name:null,c=i.kind==="collection"?i.path:null;return l.object!==o||l.collection!==c?!1:l.context?.tabs.some(u=>u.id===e.id)??!1}}function tt(e){return function({node:n,adapter:i}){const l=J(n,i);return l===null?null:r.jsx(He,{tabId:e.id,subject:l,curated:e.curated??[]})}}export{et as a,tt as b,B as c,J as r};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import{r as x,le as pt}from"./index-V4J7xfRg.js";import{a as wt}from"./preview-renderer-BrYNFV1p.js";import{v as gt}from"./output-pass-HurwNl0G.js";import{_ as mt,fx as Ne,bi as De,aC as yt,d7 as bt,ej as Mt,cP as ge,el as vt,cm as xt,cl as Pe,fo as ie,ex as kt,d5 as Et,d9 as St,cJ as Bt,e as Ue}from"./three.core-3arARmh6.js";import{f as Ct}from"./clip-planes-CnAI6DZn.js";import{a as At}from"./content-bounds-D5pXeHJN.js";class jt{#r;#s;#n=new Map;#k=0;#c=null;#a=null;#u=!1;#y=!1;#b=t=>{!this.#y&&this.#n.size===0||(t.preventDefault(),t.returnValue="")};#d=new Map;#p=new Map;#h=null;#w=0;#M=0;#v=0;#i=null;#x=null;#g=null;constructor(t){this.#s=t,this.#r=new Worker(new URL("/assets/worker-CJIsrsP6.js",import.meta.url),{type:"module",name:"blender"}),globalThis.addEventListener?.("beforeunload",this.#b),this.#r.onmessage=n=>void this.#E(n.data),this.#r.onerror=n=>{const r=n.error,a=n.filename?` at ${n.filename}:${n.lineno}:${n.colno}`:"",o=r?.stack??r?.message??n.message,s=new Error(`Blender worker failed: ${o||"the worker script did not load"}${a}`);console.error(s.message);for(const i of[...this.#n.keys()])this.#f(i);for(const i of this.#n.values())i.reject(s);this.#n.clear()}}#o=null;#l=null;get project(){return this.#o}get document(){return this.#l}start(t,n){return this.#o!==null&&this.#o!==t?Promise.reject(new Error(`The Blender session is bound to ${this.#o}, not ${t}`)):n!==void 0&&this.#l!==null&&this.#l!==n?Promise.reject(new Error(`Blender resource conflict: the session holds ${this.#l}; cannot open ${n}`)):(this.#o=t,this.#l??=n??"models/model.blend",this.#c??=this.#e({op:"start",project:t,...n===void 0?{}:{document:n}}),this.#c)}#t(){return this.#o===null?Promise.reject(new Error("The Blender session has not been started with a project (blender-start)")):this.start(this.#o)}async execute(t,n=!0,r="Blender Python"){return await this.#t(),await this.#e({op:"execute",code:t,history:n,label:r})}async historyGesture(t){await this.#t(),await this.#e({op:t})}async historyStep(t,n){return await this.#t(),(await this.#e({op:"history-step",token:t,direction:n})).moved}async sceneInfo(){return await this.#t(),await this.#e({op:"scene-info"})}async objectInfo(t){return await this.#t(),await this.#e({op:"object-info",name:t})}async rna(t,n){return await this.#t(),await this.#e({op:"rna",path:t,...n===void 0?{}:{names:n}})}async rnaContext(t,n){return await this.#t(),await this.#e({op:"rna-context",...t===void 0?{}:{object:t},...n===void 0?{}:{collection:n}})}async rnaSet(t,n,r,a,o=!0){return await this.#t(),await this.#e({op:"rna-set",history:o,path:t,property:n,value:r,...a===void 0?{}:{index:a}})}async outliner(t){return await this.#t(),await this.#e({op:"outliner",...t===void 0?{}:{selected:t}})}async nodeTree(t){return await this.#t(),await this.#e({op:"node-tree",...t?.path===void 0?{}:{path:t.path},...t?.material===void 0?{}:{material:t.material}})}async uvLayout(t){return await this.#t(),await this.#e({op:"uv-layout",...t?.object===void 0?{}:{object:t.object},...t?.uvLayer===void 0?{}:{uvLayer:t.uvLayer}})}async rig(t){return await this.#t(),await this.#e({op:"rig",...t?.object===void 0?{}:{object:t.object}})}async actionClip(t){return await this.#t(),await this.#e({op:"action-clip",...t?.object===void 0?{}:{object:t.object},...t?.bake===void 0?{}:{bake:t.bake}})}async outlinerSet(t,n,r){return await this.#t(),await this.#e({op:"outliner-set",path:t,column:n,value:r})}async present(){await this.#t(),await this.#e({op:"present"})}async screenshotView(t){return await this.#t(),await this.#e({op:"screenshot-view",maxSize:t})}async readFile(t){return await this.#t(),await this.#e({op:"read-file",path:t})}async writeFile(t,n){await this.#t(),await this.#e({op:"write-file",path:t,bytes:n})}async listFiles(t){return await this.#t(),await this.#e({op:"list-files",path:t})}get presented(){return this.#x}stop(){return this.#u?Promise.resolve():this.#a?this.#a:(this.#a=(async()=>{(this.#c?await this.#c.then(()=>!0,()=>!1):!1)&&await this.#e({op:"flush-document"},!0),this.terminate()})().catch(t=>{throw this.#a=null,t}),this.#a)}terminate(){if(this.#u)return;this.#u=!0,globalThis.removeEventListener?.("beforeunload",this.#b);const t=this.#m("terminating worker");try{this.#r.terminate()}finally{t()}const n=new Error("The Blender session was terminated");for(const r of[...this.#n.keys()])this.#f(r);for(const r of this.#n.values())r.reject(n);this.#n.clear()}metrics(t=performance.now()){let n=null,r=this.#w,a=this.#M,o=this.#v;for(const s of this.#d.values()){const i=t-s;(n===null||i>n)&&(n=i),i>r&&(r=i),i>=5e3&&(a+=1),i>=3e4&&(o+=1)}return{inFlightMs:n===null?null:Math.round(n),lastCallMs:this.#h===null?null:Math.round(this.#h),maxCallMs:this.#h===null&&n===null?null:Math.round(r),callsOver5s:a,callsOver30s:o,lastCallWindow:this.#i,wasmMemoryMB:this.#g===null?null:Math.round(this.#g/1048576)}}#f(t){this.#p.get(t)?.(),this.#p.delete(t);const n=this.#d.get(t);if(n===void 0)return;this.#d.delete(t);const r=performance.now()-n;this.#h=r,r>this.#w&&(this.#w=r),r>=5e3&&(this.#M+=1),r>=3e4&&(this.#v+=1),this.#i!==null&&this.#i.start===n&&(this.#i={start:n,end:n+r})}#e(t,n=!1){if(this.#u||this.#a&&!n)return Promise.reject(new Error("The Blender session is stopping or terminated"));const r=++this.#k;return new Promise((a,o)=>{this.#n.set(r,{resolve:a,reject:o});const s=performance.now();this.#d.set(r,s),this.#i={start:s,end:null},this.#p.set(r,this.#m(`waiting for worker ${t.op}`));try{this.#r.postMessage({...t,id:r})}catch(i){this.#n.delete(r),this.#f(r),o(i instanceof Error?i:new Error(String(i)))}})}#m(t){try{const n=this.#s.work?.(t);return()=>{try{n?.()}catch{}}}catch{return()=>{}}}async#E(t){if("op"in t){if(t.op==="document-dirty"){this.#y=t.dirty;return}if(t.op==="history"){this.#s.history?.(t.entries);return}if(t.op==="log"){this.#s.log?.(t.level,t.text);return}if(t.op==="memory"){this.#g=t.bytes;return}const r=t.frame;typeof r?.session=="string"&&typeof r.revision=="number"&&(this.#x={session:r.session,revision:r.revision});const a=this.#m("presenting worker frame");try{const o=await this.#s.present(t.frame,t.description,t.capture);this.#r.postMessage({op:"present-result",id:t.id,...o?.capture===void 0?{}:{capture:o.capture},...o!=null&&"held"in o?{held:o.held}:{}})}catch(o){this.#r.postMessage({op:"present-result",id:t.id,error:o instanceof Error?o.message:String(o)})}finally{a()}return}const n=this.#n.get(t.id);n&&(this.#n.delete(t.id),this.#f(t.id),"error"in t?n.reject(new Error(t.error)):n.resolve(t.result))}}const It="/assets/agx-base-srgb-BjWZJgrZ.lut",Tt="/assets/agx-look-medium-high-contrast-D5F_ob1L.lut",_t="/assets/agx-look-punchy-dxsnycNs.lut",Ft="/assets/filmic-srgb-Ct35FIH6.lut",T=new Float64Array(12),Ve=[0,0,0],O=new Float64Array(3),q=new Float64Array(3),_=new Int8Array([1,0,0,1,1,0,0,1,2,1,0,0,1,0,1,0,2,1,0,0,1,1,0,1,2,0,1,0,0,1,0,1,1,2,1,0,0,1,0,0,1,1,1,2,0,0,1,0,1,1,0,1,0,2]);function Lt(e,t,n){return e>t?t>n?0:e>n?1:2:n>t?3:n>e?4:5}function Xe(e,t,n,r,a){const o=t*t,s=Math.min(1,Math.max(0,n))*(t-1),i=Math.min(1,Math.max(0,r))*(t-1),c=Math.min(1,Math.max(0,a))*(t-1),h=Math.min(Math.floor(s),t-2),l=Math.min(Math.floor(i),t-2),d=Math.min(Math.floor(c),t-2),b=s-h,M=i-l,B=c-d,w=(u,p,C,A)=>{const y=(h+p+(l+C)*t+(d+A)*o)*3;T[u]=e[y]/65535,T[u+1]=e[y+1]/65535,T[u+2]=e[y+2]/65535};w(0,0,0,0),w(9,1,1,1),O[0]=b,O[1]=M,O[2]=B;const g=Lt(b,M,B)*9;w(3,_[g],_[g+1],_[g+2]),w(6,_[g+3],_[g+4],_[g+5]);const E=O[_[g+6]],f=O[_[g+7]],m=O[_[g+8]];for(let u=0;u<3;u++){const p=T[u];Ve[u]=p+E*(T[3+u]-p)+f*(T[6+u]-T[3+u])+m*(T[9+u]-T[6+u])}return Ve}function H(e){const t=e&32768?-1:1,n=e>>10&31,r=e&1023;return n===0?t*2**-24*r:n===31?r?Number.NaN:t*Number.POSITIVE_INFINITY:t*2**(n-15)*(1+r/1024)}function Ae(e,t,n,r){const a=new Uint8ClampedArray(t*4);for(let o=0;o<t;o++){const s=o*4,i=H(e[s+3]),c=i===0?n:n/i;q[0]=H(e[s])*c,q[1]=H(e[s+1])*c,q[2]=H(e[s+2])*c;const h=r(q);a[s]=Math.round(h[0]*255),a[s+1]=Math.round(h[1]*255),a[s+2]=Math.round(h[2]*255),a[s+3]=Math.round(Math.min(1,Math.max(0,i))*255)}return a}function Rt(e){return new URL(Object.assign({"./agx-base-srgb.lut":It,"./agx-look-medium-high-contrast.lut":Tt,"./agx-look-punchy.lut":_t,"./filmic-srgb.lut":Ft})[`./${e.replace(/\.lut$/,"")}.lut`],import.meta.url)}const $t=57,L=-12.47393,Ze=12.5260688117,Ot=[[.4123908,.3575843,.1804808],[.212639,.7151687,.0721923],[.0193308,.1191948,.9505322]],Nt=[[1.5250528,-.3159135,-.1226583],[-.5091526,1.3333274,.1382844],[.0957153,.0508974,.7879558]];function We(e,t,n){const r=t[0],a=t[1],o=t[2];n[0]=e[0][0]*r+e[0][1]*a+e[0][2]*o,n[1]=e[1][0]*r+e[1][1]*a+e[1][2]*o,n[2]=e[2][0]*r+e[2][1]*a+e[2][2]*o}const X=new Float64Array(3),Ge=new Float64Array(3),Z=[0,0,0];function le(e){const t=Math.min(1,Math.max(0,e));return t<=.0031308?12.92*t:1.055*t**(1/2.4)-.055}function Ke(e,t,n,r){return Xe(e,$t,t,n,r)}function Dt(e,t){We(Ot,t,Ge),We(Nt,Ge,X);const n=Ze-L,r=Ke(e,(Math.log2(Math.max(X[0],1e-10))-L)/n,(Math.log2(Math.max(X[1],1e-10))-L)/n,(Math.log2(Math.max(X[2],1e-10))-L)/n);return Z[0]=le(Math.max(0,r[0])**2.4),Z[1]=le(Math.max(0,r[1])**2.4),Z[2]=le(Math.max(0,r[2])**2.4),Z}const Pt={"AgX - Medium High Contrast":"agx-look-medium-high-contrast.lut","AgX - Punchy":"agx-look-punchy.lut"};function Ut(e,t){const n=Ze-L;return Ke(e,(Math.log2(Math.max(t[0],1e-10))-L)/n,(Math.log2(Math.max(t[1],1e-10))-L)/n,(Math.log2(Math.max(t[2],1e-10))-L)/n)}function Vt(e,t,n,r={}){const a=r.exposure??1,o=r.composedLook===!0?Ut:Dt;return Ae(t,n,a,s=>o(e,s))}const Ye=33,me=Ye**3*3,ye=4096,ce=-12.473931188,ue=25;function de(e,t){const n=Math.min(1,Math.max(0,t))*(ye-1),r=Math.min(Math.floor(n),ye-2),a=n-r;return((1-a)*e[me+r]+a*e[me+r+1])/65535}const K=[0,0,0];function Wt(e,t){const n=Xe(e,Ye,(Math.log2(Math.max(t[0],1e-10))-ce)/ue,(Math.log2(Math.max(t[1],1e-10))-ce)/ue,(Math.log2(Math.max(t[2],1e-10))-ce)/ue);return K[0]=de(e,n[0]/.66),K[1]=de(e,n[1]/.66),K[2]=de(e,n[2]/.66),K}function Gt(e,t,n,r){if(e.length!==me+ye)throw new Error("Invalid Blender Filmic display table");return Ae(t,n,r,a=>Wt(e,a))}const W=2.4,R=.055,Je=R/(W-1),zt=1/(W/(1+R)*((Je+R)/(1+R))**(W-1)),qt=((Je+R)/(1+R))**W;function he(e){return e>0?e<qt?e*zt:(1+R)*e**(1/W)-R:0}const Y=[0,0,0];function Ht(e){return Y[0]=he(e[0]),Y[1]=he(e[1]),Y[2]=he(e[2]),Y}function Xt(e,t,n){return Ae(e,t,n,Ht)}function Qe(e,t,n,r){if(!Number.isFinite(n.width)||!Number.isFinite(n.height)||n.width<1||n.height<1)throw new Error("Scene capture requires finite positive dimensions");const a=Math.min(2048,Math.round(n.width)),o=Math.min(2048,Math.round(n.height)),s=r?1:2,i=a*s,c=o*s,h=wt(),l=h.renderer,d={target:l.getRenderTarget(),toneMapping:l.toneMapping,exposure:l.toneMappingExposure,colorSpace:l.outputColorSpace,shadows:l.shadowMap.enabled,shadowType:l.shadowMap.type,clearColor:l.getClearColor(new mt),clearAlpha:l.getClearAlpha(),background:e.background};let b,M,B=!1;try{b=new Ne(i,c,{type:De}),n.effect&&(b.depthTexture=new yt(i,c)),l.shadowMap.enabled=!0,l.shadowMap.type=bt,l.outputColorSpace=Mt,l.toneMapping=n.toneMapping??ge,l.toneMappingExposure=n.exposure??1,l.setClearColor(0,n.transparent?0:1),n.transparent&&(e.background=null),l.setRenderTarget(b),l.clear(),l.render(e,t);const w=n.effect?.render(l,b,e,t)??b;if(w.texture.type!==De||w.width!==i||w.height!==c)throw new Error("Scene capture effect must return a same-size half-float target");if(r){const y=new Uint16Array(i*c*4);return l.readRenderTargetPixels(w,0,0,i,c,y),B=!0,{pixels:y,width:a,height:o}}M=new Ne(i,c),gt(n.transparent===!0).render(l,M,w,0,!1);const g=new Uint8Array(i*c*4);l.readRenderTargetPixels(M,0,0,i,c,g);const E=document.createElement("canvas");E.width=i,E.height=c;const f=E.getContext("2d");if(!f)throw new Error("Scene capture could not create an image canvas");const m=f.createImageData(i,c),u=i*4;for(let y=0;y<c;y++)m.data.set(g.subarray((c-1-y)*u,(c-y)*u),y*u);f.putImageData(m,0,0);const p=document.createElement("canvas");p.width=a,p.height=o;const C=p.getContext("2d");if(!C)throw new Error("Scene capture could not create an output canvas");C.drawImage(E,0,0,a,o);const A=p.toDataURL("image/png");return B=!0,A}finally{e.background=d.background,l.setRenderTarget(d.target),l.toneMapping=d.toneMapping,l.toneMappingExposure=d.exposure,l.outputColorSpace=d.colorSpace,l.shadowMap.enabled=d.shadows,l.shadowMap.type=d.shadowType,l.setClearColor(d.clearColor,d.clearAlpha),M?.dispose(),b?.dispose(),h.release({discard:!B})}}function Zt(e,t,n){return Qe(e,t,n,!0)}function Kt(e,t,n){return Qe(e,t,n,!1)}const Yt=e=>typeof e=="object"&&e!==null&&typeof e.subscribeFrames=="function"&&typeof e.objectForBlenderName=="function"&&typeof e.blenderObjectName=="function"&&typeof e.blenderSelection=="function"&&typeof e.setStageMode=="function";function je(){const e=x().documents.context(at());return Yt(e)?e:null}function Jt(){return je()?.blenderSelection()??{selected:[],active:null}}const Qt={tree:null,byId:new Map,parentOf:new Map,error:null,loading:!1};let be=Qt,et=0;const Me=new Set;let P=null,re=null,Ie="",U=null;function en(e){const t=new Map,n=new Map,r=(a,o)=>{t.set(a.id,a),n.set(a.id,o);for(const s of a.children)r(s,a.id)};for(const a of e?.rows??[])r(a,null);return{byId:t,parentOf:n}}function Q(e){be={...be,...e},et+=1;for(const t of[...Me])t()}function Bn(e){return Me.add(e),()=>{Me.delete(e)}}function Cn(){return et}function An(){return be}function Te(e){U!==e&&(U=e,setTimeout(()=>{U===e&&(U=null,tt(e===""?[]:e.split("\0")))},0))}let fe=0,ve=Promise.resolve();function tt(e){const t=tn(e);return ve=t,t}async function tn(e){const t=e.join("\0"),n=++fe;re=t,Ie=t,Q({loading:!0});try{const r=await fn(e);if(n!==fe)return;je()?.setStageMode(r?.mode??null),Q({tree:r,...en(r),loading:!1,error:null})}catch(r){if(n!==fe)return;Q({loading:!1,error:nt(r)})}}function nn(){re=null,Te(Ie);for(const e of[...xe])e()}const xe=new Set;function jn(e){return _e(),xe.add(e),()=>{xe.delete(e)}}let J=!1,pe=null;function _e(){const e=je();if(P!==null&&pe===e)return;P!==null&&(P(),P=null,pe=null);const t=e;if(t!==null){P=t.subscribeFrames(nn),pe=t;return}J||(J=!0,x().documents.waitForContext(at()).then(()=>{J=!1,_e()}).catch(()=>{J=!1}))}function In(e){if(!I())return;_e();const t=[...e].sort().join("\0");re!==t&&Te(t)}async function rn(e){if(!I())return;U=null;let t=tt([...e].sort());for(;;){if(await t,ve===t)return;t=ve}}async function Tn(e,t,n){try{return await it(e,t,n),re=null,Te(Ie),!0}catch(r){return Q({error:nt(r)}),!1}}function nt(e){return e instanceof Error?e.message:String(e)}const on={transform:{cx:0,cy:0,zoom:1},looked:null,refusal:null,size:{w:0,h:0},framedAt:0,drawn:[]};let ke=on,Fe=0;const ne=new Set;let rt=0;function we(){return ke}function _n(){return Fe}function Fn(e){return ne.add(e),()=>{ne.delete(e)}}function V(e){ke={...ke,...e},Fe+=1;for(const t of[...ne])t()}function an(){rt+=1,Fe+=1;for(const e of[...ne])e()}function Ln(){return rt}function N(e){V({refusal:e})}const ze=new Map;function sn(e){let t=ze.get(e);return t||(t=fetch(Rt(e)).then(async n=>{if(!n.ok)throw new Error(`Blender display table ${e}: ${n.status} ${n.statusText}`);return new Uint16Array(await n.arrayBuffer())}),ze.set(e,t)),t}function ln(e){const t=atob(e),n=new Uint8Array(t.length);for(let r=0;r<t.length;r++)n[r]=t.charCodeAt(r);return new Uint16Array(n.buffer,n.byteOffset,n.byteLength>>1)}async function ot(e,t){const n=t.look??"None",r=t.toneMapping==="filmic",a=t.toneMapping==="none";if(!a&&t.toneMapping!=="agx"&&!r)throw new Error("Blender's Khronos PBR Neutral view transform has no scene-linear implementation in the browser, so it cannot resolve a composited or scene-referred frame (implemented: Standard, AgX, Filmic)");const o=a?null:r?"filmic-srgb.lut":n==="None"?"agx-base-srgb.lut":Pt[n];if(o===void 0)throw new Error(`Blender display transform has no table for look ${n}`);const s=o?await sn(o):null,i=t.linearInput,c=i?{pixels:ln(i.base64),width:i.width,height:i.height}:e;if(!c)throw new Error("Blender display transform requires a linear capture");const{pixels:h,width:l,height:d}=c,b=a?Xt(h,l*d,t.exposure):r?Gt(s,h,l*d,t.exposure):Vt(s,h,l*d,{exposure:t.exposure,composedLook:n!=="None"}),M=document.createElement("canvas");M.width=l,M.height=d;const B=M.getContext("2d");if(!B)throw new Error("Blender display transform could not create its image canvas");const w=B.createImageData(l,d),g=l*4;for(let m=0;m<d;m++){const u=(d-1-m)*g;w.data.set(b.subarray(u,u+g),m*g)}B.putImageData(w,0,0);const E=M.toDataURL("image/png"),f={base64:E.slice(E.indexOf(",")+1),mimeType:"image/png"};if(t.linear===!0){const m=new Uint8Array(h.buffer,h.byteOffset,h.byteLength);let u="";for(let p=0;p<m.length;p+=32768)u+=String.fromCharCode(...m.subarray(p,p+32768));f.linearBase64=btoa(u),f.linearWidth=l,f.linearHeight=d}return f}async function cn(e,t,n,r,a=()=>{}){const o={none:ge,agx:Ue,neutral:Bt,filmic:ge};await n.prepare(t),a();const s={effect:n.effect,width:r.width,height:r.height,transparent:r.transparent===!0,toneMapping:o[r.toneMapping]??Ue,exposure:r.exposure},i=r.toneMapping==="agx"||r.toneMapping==="filmic"||r.linear===!0?await ot(Zt(e,t,s),r):null;if(a(),i)return i;const c=Kt(e,t,s);if(!c)throw new Error("Blender render could not capture its image");return{base64:c.slice(c.indexOf(",")+1),mimeType:"image/png"}}const un="document:blender:runtime";let j=null,qe=0;function Rn(e){const t=++qe;return j=e,D(),()=>{qe===t&&(j=null,D())}}function Ee(){const e=v?.document,t=x().documents.activeId(),n=t?.startsWith("document:model:")?t.slice(15):j?.blend;return!n||!e||n===e?null:`Blender is editing ${e}; ${n} is not open. Return to ${e} before editing.`}function F(){return j?.documentId??un}function at(){return F()}async function $n(e,t){const n=x();if(!n.session.open())throw new Error("Opening a model requires an open project session.");const r=n.projectLocalState.projectRootPath();if(r===null)throw new Error("Opening a model requires a project path.");if(j!==e||n.documents.activeId()!==e.documentId)return!1;const a=k(),o=a.start(r,e.blend);return t(),await o,j!==e?!1:(await a.present(),j===e)}function I(){return v?.project!=null&&Ee()===null}let st=0;const Se=new Set;function On(){return st}function Nn(e){return Se.add(e),()=>{Se.delete(e)}}function D(){st+=1;for(const e of[...Se])e()}async function Dn(e,t){return I()?k().rna(e,t):null}async function Pn(e,t){return I()?k().rnaContext(e,t):null}async function dn(e,t,n,r,a=!0){if(!I())return null;const o=await k().rnaSet(e,t,n,r,a);return D(),o}async function hn(e,t=!0,n="Blender Python"){const r=await k().execute(e,t,n);D();const a=/^Error executing code:/.exec(r);return{text:r,executed:a===null,result:a===null?r.replace(/^Code executed successfully: ?/,""):"",error:a===null?null:r.replace(/^Error executing code: ?/,"")}}function Un(){k().historyGesture("history-begin").catch(e=>x().console.error(`Could not begin Blender undo gesture: ${String(e)}`,"blender-history"))}async function Vn(){await k().historyGesture("history-end")}async function fn(e){return I()?k().outliner(e):null}async function Wn(e){return I()?k().nodeTree(e):null}async function Gn(e){return I()?k().uvLayout(e):null}async function zn(e){return I()?k().rig(e):null}async function qn(e){return I()?k().actionClip(e):null}async function it(e,t,n){if(!I())return null;const r=await k().outlinerSet(e,t,n);return D(),r}const pn={view:"blender-node-view",title:"Node Editor",verbs:[["state",void 0],["look",void 0],["view-all","Node Editor: Frame All"],["zoom",void 0],["pan",void 0],["move",void 0],["link",void 0],["set-value",void 0],["use-nodes",void 0],["collapse-panel",void 0]].map(([e,t])=>({id:e,...t?{title:t}:{},run:n=>lt({...n,action:e})}))};function lt(e){const t=typeof e.action=="string"?e.action:"state";switch(t){case"state":break;case"look":V({looked:typeof e.node=="string"?e.node:null,refusal:null});break;case"view-all":an(),V({refusal:null});break;case"zoom":{const n=typeof e.zoom=="number"?e.zoom:1;V({transform:{...we().transform,zoom:n},refusal:null});break}case"pan":{const n=we().transform;V({transform:{...n,cx:typeof e.cx=="number"?e.cx:n.cx,cy:typeof e.cy=="number"?e.cy:n.cy},refusal:null});break}case"move":N(`Moving "${String(e.node??"a node")}" writes Node.location — editing parity is not the program.`);break;case"link":N("Dragging between sockets would make a link — editing parity is not the program.");break;case"set-value":N(`Changing "${String(e.socket??"a socket")}" writes the socket's default_value — editing parity is not the program.`);break;case"use-nodes":N("Use Nodes writes Material.use_nodes — editing parity is not the program.");break;case"collapse-panel":N(`Collapsing "${String(e.panel??"a panel")}" writes the panel's is_collapsed — editing parity is not the program.`);break;default:N(`blender-node-view: no action "${t}" — state, look, view-all, zoom, pan, and the refusals move, link, set-value, use-nodes, collapse-panel.`)}return we()}let v=null;const ee=new Set;function ct(){ee.size&&x().history.invalidate([...ee]),ee.clear()}let Be=null,He=!1;function te(e){try{const t=x().session.beginWork(`Blender: ${e}`);return()=>{try{t()}catch{}}}catch{return()=>{}}}function Ce(){const e=te("invalidating history and releasing runtime");try{ct(),Be?.abort(),Be=null,v?.terminate(),v=null,ut=null}finally{e()}}function wn(){He||(He=!0,x().session.onBeforeClose(async()=>{await v?.stop(),Ce()}),x().session.onEnded(Ce))}let ut=null;const gn=e=>typeof e=="object"&&e!==null&&typeof e.applyFrame=="function"&&typeof e.snapshot=="function"&&typeof e.captureSnapshot=="function"&&typeof e.recordPresentation=="function"&&typeof e.recordPhotograph=="function";async function mn(){const{documents:e}=x(),t=Date.now()+15e3;let n=F();for(;;){n=F();const r=await e.waitForContext(n,Math.max(0,Math.min(250,t-Date.now())));if(gn(r))return r;if(Date.now()>=t)break}throw new Error(`The Blender Model document is not open, or the open one is not a Model this engine can present to (it must answer applyFrame, captureSnapshot, recordPresentation and recordPhotograph): nothing published a presentable view as ${n} within 15 s (bound model: ${j?.documentId??"none"}). Open the Model document first (\`volter blender-mcp\` opens it before its first call).`)}function k(){const e=Ee();if(e)throw new Error(e);if(v!==null)return v;wn();const t=new AbortController;Be=t;let n=!1;v=new jt({work:te,history:a=>{const o=v;if(!o)throw new Error("Blender history arrived before its runtime");for(const s of a){if("reset"in s){ct();continue}if(!s.resource)throw new Error("A Blender edit has no document resource");ee.add(s.resource);const i=async c=>{if(v!==o)throw new Error("This Blender history belongs to a closed worker");const h=await o.historyStep(s.id,c);return D(),await rn(Jt().selected),h};x().history.record({id:s.id,label:s.label,resources:[s.resource],document:F(),undo:()=>i("undo"),redo:()=>i("redo")})}},present:async(a,o,s)=>{const i=Ee();if(i)throw new Error(i);if(j===null){if(s?.render)throw new Error("Rendering a Blender frame needs the Model document open; nothing is presenting.");return{}}const c=F(),h=te("waiting for Model presenter");let l;try{l=await mn()}finally{h()}if(t.signal.throwIfAborted(),F()!==c)throw new Error("Blender document changed before its frame could be presented");const d=te("applying frame to Model"),b=(()=>{try{return l.applyFrame(a)}finally{d()}})(),M=typeof b=="object"&&b!==null&&"held"in b,B=M?b.held:null,w=A=>({...A===void 0?{}:{capture:A},...M?{held:B}:{}});if(l.recordPresentation(o),!s||(ut=s,!s.render))return w(void 0);const g=l.snapshot(),E=()=>{if(t.signal.throwIfAborted(),F()!==c||l.snapshot()!==g)throw new Error("Blender capture document or source revision changed before completion")};if(s.render.linearInput){const A=await ot(null,s.render);return E(),w(A)}const{render:f,position:m,target:u,up:p}=s;if(!m||!u||!p)throw new Error("A Blender render capture must carry the scene camera position, target and up");if(n)throw new Error("A Blender render capture is already in progress");const C=l.captureSnapshot();n=!0,t.signal.addEventListener("abort",C.dispose,{once:!0});try{E();const A=new vt;A.add(C.root),A.updateMatrixWorld(!0);const y=C.root.matrixWorld,oe=new xt().copy(y).invert(),dt=new Pe().setFromMatrix4(y),ht=new Pe().setFromMatrix4(oe),ae=new ie(m[0],m[1],m[2]).applyMatrix4(y),Le=new ie(u[0],u[1],u[2]).applyMatrix4(y),Re=new ie(p[0],p[1],p[2]).applyMatrix3(dt),se=Math.min(2048,Math.round(f.width))/Math.min(2048,Math.round(f.height)),$e=At(C.root).getBoundingSphere(new kt),G=Ct(ae.distanceTo($e.center),$e.radius);let $;if(f.orthographic){const z=f.fov/2;$=new Et(-z*se,z*se,z,-z,G.near,G.far)}else $=new St(f.fov,se,G.near,G.far);$.up.copy(Re),$.position.copy(ae),$.lookAt(Le),$.updateMatrixWorld(!0);const Oe={position:ae.clone().applyMatrix4(oe).toArray(),target:Le.clone().applyMatrix4(oe).toArray(),up:Re.clone().applyMatrix3(ht).toArray()};l.recordPhotograph({sent:{position:m,target:u,up:p},photographed:Oe,render:{width:f.width,height:f.height,fov:f.fov,orthographic:f.orthographic}});const ft=await cn(A,$,C,f,E);return w({...ft,camera:Oe})}finally{n=!1,t.signal.removeEventListener("abort",C.dispose),C.dispose()}},log:(a,o)=>(a==="error"?console.error:console.log)(`[blender] ${o}`)});const r=v;return x().session.reportWorkerCallMeter("Blender",()=>r.metrics()),v}const yn="models/model.blend",S=(e,t)=>{const n=e[t];if(typeof n!="string")throw new Error(`${String(e.type)} requires a string "${t}"`);return n};async function bn(e){const t=x().projectLocalState.projectRootPath();if(t===null)return{};let n;try{n=await e.execute(`import bpy
|
|
2
|
+
print(bpy.data.filepath)
|
|
3
|
+
`,!1)}catch{return{}}if(/^Error executing code:/m.test(n))return{};const r=n.replace(/^Code executed successfully:/,"").split(`
|
|
4
|
+
`).map(o=>o.trim()).filter(o=>o.startsWith("/")).pop()??"";if(r==="")return{};const a=t.endsWith("/")?t:`${t}/`;return r.startsWith(a)?{document:r.slice(a.length)}:{}}async function Hn(e){const t=x();if(e.type==="blender-status")return{ok:!0,data:{started:v?.project!=null,document:t.documents.context(F())!==void 0}};if(!t.session.open())return{ok:!1,error:`${e.type} needs an open project session; this editor page has none.`};try{const n=e.type==="blender-start"?S(e,"project"):null;let r=typeof e.document=="string"?e.document:void 0;if((e.type==="blender-stop"||e.type==="blender-start"&&e.fresh===!0)&&(await v?.stop(),Ce(),e.type==="blender-stop"))return{ok:!0,data:{stopped:!0}};if(e.type==="blender-start"&&!t.documents.context(F())){const o=await t.project.documentTable(),s=o.entries.filter(l=>l.kind==="model"),i=r!==void 0?s.find(l=>l.source?.path===r):s.find(l=>l.id===(j?.entryId??o.default))??(s.length===1?s[0]:void 0);if(!i)return{ok:!1,error:r!==void 0?`No declared Model document names ${r}.`:`Choose a Model document before starting Blender. Available: ${s.map(l=>l.id).join(", ")||"(none)"}.`};const c=i.id;if(r=i.source?.path,!await t.workspace.open({kind:"document",id:c}))return{ok:!1,error:`blender-start could not open the Blender Model document ${c}: nothing in this editor opens that document (the Model document ships with @volter/editor-blender).`}}const a=k();switch(e.type){case"blender-start":{const o=r!==void 0?r:j?.blend??yn;return{ok:!0,data:{...await a.start(n,o)}}}case"blender-execute":return{ok:!0,data:{result:(await hn(S(e,"code"))).text}};case"blender-scene-info":return{ok:!0,data:{result:await a.sceneInfo()}};case"blender-object-info":return{ok:!0,data:{result:await a.objectInfo(S(e,"name"))}};case"blender-rna":{const o=typeof e.names=="number"?e.names:void 0;return{ok:!0,data:{result:await a.rna(S(e,"path"),o)}}}case"blender-rna-context":{const o=typeof e.object=="string"?e.object:void 0,s=typeof e.collection=="string"?e.collection:void 0;return{ok:!0,data:{result:await a.rnaContext(o,s)}}}case"blender-rna-set":{const o=typeof e.index=="number"?e.index:void 0;return{ok:!0,data:{result:await dn(S(e,"path"),S(e,"property"),e.value,o)}}}case"blender-outliner":{const o=Array.isArray(e.selected)?e.selected.filter(s=>typeof s=="string"):void 0;return{ok:!0,data:{result:await a.outliner(o)}}}case"blender-node-tree":return{ok:!0,data:{result:await a.nodeTree({...typeof e.path=="string"?{path:e.path}:{},...typeof e.material=="string"?{material:e.material}:{}})}};case"blender-uv-layout":return{ok:!0,data:{result:await a.uvLayout({...typeof e.object=="string"?{object:e.object}:{},...typeof e.uvLayer=="string"?{uvLayer:e.uvLayer}:{}})}};case"blender-rig":return{ok:!0,data:{result:await a.rig({...typeof e.object=="string"?{object:e.object}:{}})}};case"blender-action-clip":return{ok:!0,data:{result:await a.actionClip({...typeof e.object=="string"?{object:e.object}:{},...typeof e.bake=="boolean"?{bake:e.bake}:{}})}};case"blender-node-view":{const o=typeof e.action=="string"?e.action:"state";return{ok:!0,data:{result:pn.verbs.some(i=>i.id===o)?pt("blender-node-view",o,e):lt(e)}}}case"blender-outliner-set":return{ok:!0,data:{result:await it(S(e,"path"),S(e,"column"),e.value!==!1)}};case"blender-screenshot-view":{const o=typeof e.maxSize=="number"?e.maxSize:1e3,s={kind:"document",id:j?.entryId??"blender:runtime"};return{ok:!0,data:{...await a.screenshotView(o),document:s}}}case"blender-read-file":{const o=await a.readFile(S(e,"path")),s=S(e,"transferId"),i=await fetch(`/__editor/blender-file?id=${encodeURIComponent(s)}`,{method:"POST",headers:{"content-type":"application/octet-stream"},body:new Blob([o])});return i.ok?{ok:!0,data:{bytes:o.length}}:{ok:!1,error:`Transfer ${s} was refused: ${i.status}`}}case"blender-write-file":{const o=atob(S(e,"base64")),s=Uint8Array.from(o,i=>i.charCodeAt(0));return await a.writeFile(S(e,"path"),s),{ok:!0,data:{written:s.length}}}case"blender-list-files":{const o=await a.listFiles(S(e,"path")),s=a.presented;return{ok:!0,data:{entries:o,...s?{session:s.session,revision:s.revision}:{},...await bn(a)}}}}return{ok:!1,error:`Unknown Blender command ${e.type}`}}catch(n){return{ok:!1,error:n instanceof Error?n.message:String(n)}}}export{Un as A,Tn as B,In as C,hn as D,je as E,Rn as F,$n as G,pn as N,Fn as a,On as b,V as c,we as d,Wn as e,Ln as f,qn as g,Hn as h,zn as i,Gn as j,An as k,at as l,I as m,_n as n,D as o,Pn as p,Dn as q,N as r,Nn as s,dn as t,jn as u,Bn as v,rn as w,Jt as x,Cn as y,Vn as z};
|