@volter/game-editor 0.5.79 → 0.5.80
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 +2123 -2123
- package/dist/assets/{AssetBudgetPanel-oKdjrwih.js → AssetBudgetPanel-C-RNso12.js} +3 -3
- package/dist/assets/{AudioViewer-B1k9_wIO.js → AudioViewer-BQ4yQJmw.js} +1 -1
- package/dist/assets/{CanvasBoardDocument-CidIZfJc.js → CanvasBoardDocument-D1_2Ahx7.js} +1 -1
- package/dist/assets/{CanvasSceneViewport-D-a2OjoE.js → CanvasSceneViewport-BdHcsAyR.js} +1 -1
- package/dist/assets/{ColorInput-CsU6nBCb.js → ColorInput-B-GRGKwB.js} +1 -1
- package/dist/assets/{EntityModelDocument-BGtt8kn8.js → EntityModelDocument-BkRbfE7C.js} +1 -1
- package/dist/assets/{EnvironmentAssetDocument-Cv_9BvF0.js → EnvironmentAssetDocument-BbWPrmTc.js} +1 -1
- package/dist/assets/{GameplaySessionTimeline-c77A4RAA.js → GameplaySessionTimeline-Bi_Z_lDm.js} +1 -1
- package/dist/assets/{ImageViewer-BpjPWpIS.js → ImageViewer-CVYDgTSj.js} +1 -1
- package/dist/assets/InspectorObjectPreview-BooanIbq.js +1 -0
- package/dist/assets/{JsonAssetDocument-BPN3E7Ai.js → JsonAssetDocument-O-o1eVJB.js} +1 -1
- package/dist/assets/{LiveModuleDocument-CqN29siR.js → LiveModuleDocument-CCpe63vw.js} +1 -1
- package/dist/assets/{LutAssetDocument-BV6N2-qQ.js → LutAssetDocument-C_QGvjj7.js} +1 -1
- package/dist/assets/{ModelAssetDocument-Bf5JZ8TF.js → ModelAssetDocument-DKyxph4r.js} +1 -1
- package/dist/assets/{NonThreeAuthoringBootstrap-CZvbouNB.js → NonThreeAuthoringBootstrap-DkfIBzMs.js} +1 -1
- package/dist/assets/{Object3DDocumentToolbar-Cm4ma8tv.js → Object3DDocumentToolbar-BGkgzg_Y.js} +1 -1
- package/dist/assets/Object3DDocumentViewport-C81c8PFJ.js +2 -0
- package/dist/assets/{Object3DPreview-BlzCte35.js → Object3DPreview-DI7aoPKe.js} +1 -1
- package/dist/assets/{OnlineAssetDetail-DaIvao3s.js → OnlineAssetDetail-BIRXvQsJ.js} +1 -1
- package/dist/assets/{PlayBar-DJ1LfrgS.js → PlayBar-BYVJHvd5.js} +1 -1
- package/dist/assets/{QuarksAssetDocument-DcjHKYru.js → QuarksAssetDocument-DEcSmewA.js} +1 -1
- package/dist/assets/{ReactCanvasControls-DSwW_3qn.js → ReactCanvasControls-DplBODky.js} +1 -1
- package/dist/assets/{RootSelectionOverlay-QJRz70Z_.js → RootSelectionOverlay-BzEZwAaO.js} +1 -1
- package/dist/assets/{ShaderAssetDocument-BCAyVHUs.js → ShaderAssetDocument-ysUJR4Np.js} +1 -1
- package/dist/assets/{ShadowEditor-ChBlM7up.js → ShadowEditor-BKz_sq1R.js} +1 -1
- package/dist/assets/{SourceAssetViewer-t8M_wt4P.js → SourceAssetViewer-DhoQonvP.js} +1 -1
- package/dist/assets/{StageHost-BToQY05P.js → StageHost-CSw286Im.js} +2 -2
- package/dist/assets/{StoryPreviewMount-DQQUiOyt.js → StoryPreviewMount-BF6vqmhx.js} +1 -1
- package/dist/assets/{ThreeBoardDocument-B0E8STg7.js → ThreeBoardDocument-vedTeiN9.js} +2 -2
- package/dist/assets/{ThreeIsolationSceneContent-C5fELwmY.js → ThreeIsolationSceneContent-TT4T-ehp.js} +1 -1
- package/dist/assets/{ToolObject3DPreview-COEdg5Yk.js → ToolObject3DPreview-C52QCJAO.js} +1 -1
- package/dist/assets/{Toolbar-Dc2590c_.js → Toolbar-Bo-l61Lo.js} +1 -1
- package/dist/assets/{TransientHint-Ck6-tCTl.js → TransientHint-DFAcEEFI.js} +1 -1
- package/dist/assets/{VideoViewer-Ceo0o85u.js → VideoViewer-BM_9gSgl.js} +1 -1
- package/dist/assets/{ViewportShadingMenu-pE6Hv73N.js → ViewportShadingMenu-CWutLX1G.js} +1 -1
- package/dist/assets/{active-ingest-DIgBJBWV.js → active-ingest-BuNeO4Mb.js} +2 -2
- package/dist/assets/{animation-clock-BsTiJqzv.js → animation-clock-B-fl-HTL.js} +1 -1
- package/dist/assets/{animation-mixers.service-DZMXEUKZ.js → animation-mixers.service-DgxB7R_k.js} +1 -1
- package/dist/assets/{animation-timeline.utility-C1kYhS_b.js → animation-timeline.utility-RWwRwQvM.js} +1 -1
- package/dist/assets/{asset-budget-asset.menu-CgLl0jxU.js → asset-budget-asset.menu-D2Tdwqxf.js} +1 -1
- package/dist/assets/{asset-budget.action-BM9nPYFm.js → asset-budget.action-WMiFAlTi.js} +1 -1
- package/dist/assets/{asset-budget.document-CIBwqW8O.js → asset-budget.document-CckPEzno.js} +1 -1
- package/dist/assets/{asset-budget.menu-CIYQlzVL.js → asset-budget.menu-DPMPOTSo.js} +1 -1
- package/dist/assets/{asset-editor-persistence-FoI6VqbB.js → asset-editor-persistence-DttxUta0.js} +1 -1
- package/dist/assets/{asset-loaders-DIhOedSj.js → asset-loaders-9M6lxMew.js} +1 -1
- package/dist/assets/{asset-preview-J56EM7ai.js → asset-preview-C36PaXvM.js} +1 -1
- package/dist/assets/{audio-unlock.service-CQhkc6fU.js → audio-unlock.service-BeHFOKOB.js} +1 -1
- package/dist/assets/{audio.utility-ZTVc6wlz.js → audio.utility-HRjVG-Co.js} +1 -1
- package/dist/assets/autoplay.service-EjNkSGFD.js +1 -0
- package/dist/assets/{babylon-authoring-adapter-qU-GP8QL.js → babylon-authoring-adapter-BHQY7yIy.js} +1 -1
- package/dist/assets/{binding-resolver-iMKdp_Dm.js → binding-resolver-TD7-fKuX.js} +2 -2
- package/dist/assets/{blender-node-editor.document-BktVlaBT.js → blender-node-editor.document-Bw2QbNTV.js} +1 -1
- package/dist/assets/{blender-properties-tab-Bi7EkqZ4.js → blender-properties-tab-BnIbJN4f.js} +1 -1
- package/dist/assets/blender-runtime-host-W_QVh8pY.js +4 -0
- package/dist/assets/{blender-runtime-skin-DGPSGVTB.js → blender-runtime-skin-CwXXiusi.js} +1 -1
- package/dist/assets/blender-runtime.document-CxTCG8RI.js +12 -0
- package/dist/assets/{blender-timeline.document-BdKv86rL.js → blender-timeline.document-CESN0FrA.js} +1 -1
- package/dist/assets/{blender-uv-editor.document-B8KDPYF0.js → blender-uv-editor.document-BdIUMC5X.js} +1 -1
- package/dist/assets/{blender-version.status-Tujyesw9.js → blender-version.status-CBKgGtQ0.js} +1 -1
- package/dist/assets/{blender.command-0Er75bJF.js → blender.command-ChUV_DJE.js} +1 -1
- package/dist/assets/{board-guides-BvzDdD2y.js → board-guides-ClHJXXuu.js} +1 -1
- package/dist/assets/{bridge.command-CRyms6ax.js → bridge.command-DK8zE8yt.js} +3 -3
- package/dist/assets/{browserAll-DUlxC8yY.js → browserAll-Be-P25YM.js} +1 -1
- package/dist/assets/{build-player.document-BuFNx_-Q.js → build-player.document-Clkf52m6.js} +1 -1
- package/dist/assets/{build-profiles.document-xu8oCc9h.js → build-profiles.document-CNZvcPor.js} +1 -1
- package/dist/assets/{build-progress.status-BPDoYt8o.js → build-progress.status-BMfffkUW.js} +1 -1
- package/dist/assets/{build-session-BrAG7tBV.js → build-session-BHUOWzok.js} +1 -1
- package/dist/assets/{build.action-CCppyLBx.js → build.action-BGriOSGD.js} +1 -1
- package/dist/assets/{build.command-Inptj7R-.js → build.command-BU7Wcsn5.js} +1 -1
- package/dist/assets/{build.header-DXGyFt56.js → build.header-B6KRt0O_.js} +1 -1
- package/dist/assets/{build.menu-8VNdh6Kh.js → build.menu-CpxN2aww.js} +1 -1
- package/dist/assets/{build.service-B98j6yu1.js → build.service-LRCZ0vL7.js} +1 -1
- package/dist/assets/{camera-PuR5cfKw.js → camera-D8fxcMUB.js} +1 -1
- package/dist/assets/{camera-runtime.inspector-DuLoTNGH.js → camera-runtime.inspector-5RS6wvw2.js} +1 -1
- package/dist/assets/{canvas-design-mount-DFvmQJTh.js → canvas-design-mount-CoKGVZii.js} +3 -3
- package/dist/assets/{canvas-entry-runtime-BVnhMBaW.js → canvas-entry-runtime-Do5zL9dN.js} +2 -2
- package/dist/assets/{canvas-preview-frames-C-dFTVWu.js → canvas-preview-frames-Jsd4Gi5S.js} +1 -1
- package/dist/assets/{canvas-story-capture.service-Bg4fphDj.js → canvas-story-capture.service-0SYz8LrL.js} +2 -2
- package/dist/assets/{capability-coverage-B0oT2N3Z.js → capability-coverage-BqCZSu0R.js} +1 -1
- package/dist/assets/{collaboration-presence-CP5gEnxY.js → collaboration-presence-WWC9ZQsq.js} +1 -1
- package/dist/assets/{collider-DrfGXvUO.js → collider-DsdfCyWG.js} +1 -1
- package/dist/assets/{component-board.service-mzEFwa--.js → component-board.service-6JDsY08Z.js} +2 -2
- package/dist/assets/{component-board.service-MhNc_Ru3.js → component-board.service-DZWOfhbB.js} +2 -2
- package/dist/assets/{component-board.service-CvEW_Te9.js → component-board.service-Dj_INzxs.js} +2 -2
- package/dist/assets/{component-contracts.service-zrpqDXgQ.js → component-contracts.service-DXfwve-4.js} +1 -1
- package/dist/assets/{component-instance-root-BpMFxtbQ.js → component-instance-root-pq7uyyej.js} +1 -1
- package/dist/assets/{component-verbs.command-8Kl0HNWX.js → component-verbs.command-Cd_-gQ-Z.js} +1 -1
- package/dist/assets/{component-verbs.service-CxZFYomt.js → component-verbs.service-Do8eBA--.js} +1 -1
- package/dist/assets/{config-BKyBW2FV.js → config-CnqnR-iz.js} +2 -2
- package/dist/assets/{configurations-B391DE84.js → configurations-DFYaoXBK.js} +1 -1
- package/dist/assets/{connection.status-CDK2Dxmh.js → connection.status-BkhMFG12.js} +1 -1
- package/dist/assets/{constraints.inspector-BvDktIDy.js → constraints.inspector-CPWFDlY8.js} +1 -1
- package/dist/assets/{content-bounds-BM2BJV41.js → content-bounds-Ax7CFkXJ.js} +1 -1
- package/dist/assets/{contract-system-adapters-Dv5mUMr_.js → contract-system-adapters-0Odxcy6d.js} +1 -1
- package/dist/assets/{coverage.service-BLbBH9i2.js → coverage.service-CcKdk7iJ.js} +1 -1
- package/dist/assets/{create-runtime-BvzMRqkg.js → create-runtime-BhdSylT1.js} +1 -1
- package/dist/assets/{curve-BbX4M8ka.js → curve-DiuqWf0-.js} +1 -1
- package/dist/assets/{data-asset-DEfrCU5L.js → data-asset-BiqUYQnI.js} +1 -1
- package/dist/assets/{data-ref-CwypqVYb.js → data-ref-mo1ecq_T.js} +1 -1
- package/dist/assets/{debug-bridge-B3ag_ARb.js → debug-bridge-BN4INYe7.js} +1 -1
- package/dist/assets/{debug-registry-DlrL6r1z.js → debug-registry-BW5cue8V.js} +1 -1
- package/dist/assets/{deferred-ingest-play-tx7qVcg3.js → deferred-ingest-play-C6qytzjB.js} +2 -2
- package/dist/assets/{design-time-canvas-mount-L1S8lY0u.js → design-time-canvas-mount-mhxQlHHP.js} +2 -2
- package/dist/assets/{design-time-layers-DxZgHWM2.js → design-time-layers-CCEX-9ul.js} +1 -1
- package/dist/assets/{design-time-mount.service-Bo9K8hZb.js → design-time-mount.service-Cs_mT_-d.js} +2 -2
- package/dist/assets/{design-time-mount.service-DVYJJr4l.js → design-time-mount.service-DPEpO4ny.js} +2 -2
- package/dist/assets/{design-time-react-mount-Cw_YU4iA.js → design-time-react-mount-RdZmD9Dp.js} +1 -1
- package/dist/assets/{document-preview-three-BS7op9Kh.js → document-preview-three-D4M5qFH3.js} +1 -1
- package/dist/assets/{dom-authoring-adapter-DeVD6HLk.js → dom-authoring-adapter-B97hwEwz.js} +1 -1
- package/dist/assets/{draco3d-_8eRv2Qk.js → draco3d-B_PtVdzj.js} +1 -1
- package/dist/assets/{edit-mode-audio.service-BO6CbCXN.js → edit-mode-audio.service-BZxbnyf-.js} +1 -1
- package/dist/assets/{edit-mode-authoring-RAf4S6PI.js → edit-mode-authoring-CVKwIPOy.js} +1 -1
- package/dist/assets/{edit-mode-networking.service-QiUNWbxh.js → edit-mode-networking.service-2aXyBwkO.js} +1 -1
- package/dist/assets/{editor-api-B_UrHHhL.js → editor-api-B0aNu3G5.js} +1 -1
- package/dist/assets/{editor-layers-C47WUNtv.js → editor-layers-DI1Wkr8F.js} +1 -1
- package/dist/assets/{editor-shell-store-B-64vpgA.js → editor-shell-store-DlGykD-E.js} +1 -1
- package/dist/assets/{entity-object-DBXB7ABG.js → entity-object-C374JqRs.js} +1 -1
- package/dist/assets/{extend-hLINO4Zy.js → extend-BOaYynPp.js} +1 -1
- package/dist/assets/{fork-menu-BWis777M.js → fork-menu-DGjsgL8L.js} +1 -1
- package/dist/assets/{frame-debugger-store-CiuSELDU.js → frame-debugger-store-Czy2FTqO.js} +1 -1
- package/dist/assets/{game-contract-seams-D4x_QFfy.js → game-contract-seams-GoIZaA0s.js} +1 -1
- package/dist/assets/{game-css-scope-transform-BFCy45PO.js → game-css-scope-transform-9t97Smqk.js} +1 -1
- package/dist/assets/{game-document.service-LgRTA5er.js → game-document.service-DBSsz8Ne.js} +1 -1
- package/dist/assets/{game-eval.command-i4tbTEzA.js → game-eval.command-BYEEWjUv.js} +1 -1
- package/dist/assets/{game-module-access-CmfN4vfG.js → game-module-access-BqevF7uR.js} +1 -1
- package/dist/assets/{game-network-Bs_aLrfo.js → game-network-DtzKFtge.js} +3 -3
- package/dist/assets/{gameplay-export-DMycxmRI.js → gameplay-export-BNVUERuW.js} +1 -1
- package/dist/assets/{gameplay-replay-CQwJHBcQ.js → gameplay-replay-DEKg9ROx.js} +1 -1
- package/dist/assets/{gameplay.command-DwbIk4qS.js → gameplay.command-BrleMyQK.js} +1 -1
- package/dist/assets/{generation-jobs-DHR06-Ow.js → generation-jobs-Bmm6k_GH.js} +1 -1
- package/dist/assets/{generation.service-C3sjmS56.js → generation.service-nVpgwKEB.js} +1 -1
- package/dist/assets/{generations-QDWWr3sT.js → generations-AU4LkWAl.js} +1 -1
- package/dist/assets/{generations.status-8UpzzSN6.js → generations.status-CSeb5inI.js} +1 -1
- package/dist/assets/{hierarchy-marks-DDRF3quV.js → hierarchy-marks-EEQa08In.js} +1 -1
- package/dist/assets/{hosted-asset-materialization-DFetjs7r.js → hosted-asset-materialization-DZlaRGkJ.js} +1 -1
- package/dist/assets/{index-DL3yQMTk.js → index-BHccVo52.js} +2 -2
- package/dist/assets/{index-CUyoEnie.js → index-BpXj_ZfC.js} +1 -1
- package/dist/assets/{index-DZg4GXi0.js → index-CUBra63E.js} +1 -1
- package/dist/assets/{index-DxV6Akny.js → index-DlFjiZgV.js} +1 -1
- package/dist/assets/{index-DGgVCKlK.js → index-N4BP9b5x.js} +1 -1
- package/dist/assets/{index-CkpBXMDJ.js → index-OlF4eBxk.js} +1 -1
- package/dist/assets/{index-BlOoiZ_I.js → index-PKSmixoy.js} +1 -1
- package/dist/assets/{index-JjEYIC4G.js → index-flxMlfV4.js} +7 -7
- package/dist/assets/{index-Cdjg29qG.js → index-ynpEqujB.js} +1 -1
- package/dist/assets/{inference-diagnostics-kHRsQw1P.js → inference-diagnostics-MWqnRUsN.js} +1 -1
- package/dist/assets/{ingest-boot-viewport-BO7yl504.js → ingest-boot-viewport-CT1eaWqO.js} +1 -1
- package/dist/assets/{ingest-siblings-C-RhYsUb.js → ingest-siblings-BJ66Uen_.js} +1 -1
- package/dist/assets/{ingest-source-persistence-B52PvpPx.js → ingest-source-persistence-CJGE5-AU.js} +1 -1
- package/dist/assets/{ingest.service-CXx-aW-5.js → ingest.service-2TRoiqQ8.js} +1 -1
- package/dist/assets/{inspect-KwcXV5-u.js → inspect-Dl5bH02T.js} +1 -1
- package/dist/assets/instances.command-2QbcHvH-.js +1 -0
- package/dist/assets/{json-history-resource-B0kkSep8.js → json-history-resource-DTUpacfx.js} +1 -1
- package/dist/assets/{layered-pick-ClYksj6v.js → layered-pick-DKNj5L29.js} +1 -1
- package/dist/assets/{light-C33qOzVd.js → light-CX-83nBK.js} +1 -1
- package/dist/assets/{live-project-verbs-CIlCfET4.js → live-project-verbs-nmQ1saHI.js} +1 -1
- package/dist/assets/{machine.document-KKGimt_o.js → machine.document-DE8aRbOi.js} +1 -1
- package/dist/assets/{machines.finder-DA-qVsE-.js → machines.finder-CZ3P0odZ.js} +1 -1
- package/dist/assets/{material-BPlHfj-y.js → material-f1KOKE_r.js} +1 -1
- package/dist/assets/{material-factory-DIU9do_v.js → material-factory-DkCPSCLt.js} +1 -1
- package/dist/assets/{mesh-D3gE3KD_.js → mesh-DM3TH9xS.js} +1 -1
- package/dist/assets/{model-asset-sections.service-HoRKwaP6.js → model-asset-sections.service-CL4Rlwvc.js} +1 -1
- package/dist/assets/{model-inspection-BMy0MuzJ.js → model-inspection-BS3uYvYU.js} +1 -1
- package/dist/assets/{model-thumbnail-ICdHSiW1.js → model-thumbnail-WJb6B3qQ.js} +1 -1
- package/dist/assets/{models.finder-DvULfruZ.js → models.finder-BXJhCiw9.js} +1 -1
- package/dist/assets/{module-mode-BTXto0oj.js → module-mode-CtoVZDhp.js} +2 -2
- package/dist/assets/{mount-canvas-ingest-root-BFQfgTuE.js → mount-canvas-ingest-root-DI8iSEV4.js} +2 -2
- package/dist/assets/{mount-dom-ingest-root-C4Deoodh.js → mount-dom-ingest-root-n4tbYw-j.js} +2 -2
- package/dist/assets/{mount-ingest-root-BnX5FYpQ.js → mount-ingest-root-pyV6jEkB.js} +2 -2
- package/dist/assets/{mount-manifest-CK1RiS8E.js → mount-manifest-DsGMOkm4.js} +1 -1
- package/dist/assets/{mount-three-ingest-root-C6pYTH-h.js → mount-three-ingest-root-CeH_uOP0.js} +1 -1
- package/dist/assets/{mounted-authoring-BRmJcses.js → mounted-authoring-BHpx-z2Y.js} +1 -1
- package/dist/assets/{mounted-story-viewport-source-DghPnLY9.js → mounted-story-viewport-source-D8kOfa96.js} +1 -1
- package/dist/assets/{native-debug-module-ojTkP52T.js → native-debug-module-lR1oG4Vd.js} +1 -1
- package/dist/assets/{navigation-CTZYysxE.js → navigation-DvTw5hJ4.js} +1 -1
- package/dist/assets/{navmesh.menu-COJ77FTK.js → navmesh.menu-BaBNScgJ.js} +1 -1
- package/dist/assets/{navmesh.service-tVf8xf8f.js → navmesh.service-BK6BlOz3.js} +1 -1
- package/dist/assets/network-observer.service-CskzAy97.js +1 -0
- package/dist/assets/{network.utility-DNmrBkHK.js → network.utility-BJ3bZOCQ.js} +1 -1
- package/dist/assets/{object3d-document-session-registry-CIdYrDwO.js → object3d-document-session-registry-DI9WfJDy.js} +2 -2
- package/dist/assets/{oid-transform-BMGB2u8Z.js → oid-transform-RlofQ4tU.js} +1 -1
- package/dist/assets/{particles-CmcHZZqz.js → particles-CjR9Po6N.js} +1 -1
- package/dist/assets/{pixi-authoring-adapter-BLptyAwL.js → pixi-authoring-adapter-B_mXxWkJ.js} +1 -1
- package/dist/assets/{pixi-live-write-target-DMGlsQdL.js → pixi-live-write-target-tm5yHKss.js} +1 -1
- package/dist/assets/{play.command-D0aUzhnI.js → play.command-BmsyGtu0.js} +2 -2
- package/dist/assets/{presentation-BOKcaCle.js → presentation-gTgwItzD.js} +1 -1
- package/dist/assets/{product-DBhE7XzM.js → product-Cmel9X9k.js} +1 -1
- package/dist/assets/{profiler.action-DFPR0GaW.js → profiler.action-DSM2uSYR.js} +1 -1
- package/dist/assets/{profiler.menu-Cjq4IMjK.js → profiler.menu-CcYyqUfU.js} +1 -1
- package/dist/assets/{profiler.utility-O_BbyzQ6.js → profiler.utility-CQtqdQgC.js} +1 -1
- package/dist/assets/{project-authoring-session-Fg6BVKiU.js → project-authoring-session-BqZuntp2.js} +2 -2
- package/dist/assets/{properties-bone-constraints.inspector-Df8r9rGo.js → properties-bone-constraints.inspector-D3XrqptB.js} +1 -1
- package/dist/assets/{properties-bone.inspector-BHOmG-w_.js → properties-bone.inspector-CmVamAC6.js} +1 -1
- package/dist/assets/{properties-collection.inspector-COUpmMSs.js → properties-collection.inspector-BGi5eXmI.js} +1 -1
- package/dist/assets/{properties-constraints.inspector-DSDh4Uba.js → properties-constraints.inspector-C62EOuWg.js} +1 -1
- package/dist/assets/{properties-data.inspector-DjjFOVxW.js → properties-data.inspector-qDFtLdw8.js} +1 -1
- package/dist/assets/{properties-material.inspector-DPKY8b2v.js → properties-material.inspector-B--PD0se.js} +1 -1
- package/dist/assets/{properties-modifiers.inspector-BtNVTrKN.js → properties-modifiers.inspector-1tdk1EKp.js} +1 -1
- package/dist/assets/{properties-object.inspector-DYNpha7x.js → properties-object.inspector-CYH5w2un.js} +1 -1
- package/dist/assets/{properties-output.inspector-CBzwfSQQ.js → properties-output.inspector-C78QuVlY.js} +1 -1
- package/dist/assets/{properties-particles.inspector-5DlYLg0u.js → properties-particles.inspector-DyDiMjmC.js} +1 -1
- package/dist/assets/{properties-physics.inspector-D__Z169g.js → properties-physics.inspector-DG5GOyLE.js} +1 -1
- package/dist/assets/{properties-render.inspector-Dvnehd8j.js → properties-render.inspector-D8ldGTdq.js} +1 -1
- package/dist/assets/{properties-scene.inspector-DxGBiL_G.js → properties-scene.inspector-Cf_KBWbv.js} +1 -1
- package/dist/assets/{properties-texture.inspector-5qsUhAvc.js → properties-texture.inspector-BznU5kNc.js} +1 -1
- package/dist/assets/{properties-view-layer.inspector-BHv0B73V.js → properties-view-layer.inspector-pnRv91FS.js} +1 -1
- package/dist/assets/{properties-world.inspector-D53Cc2Fs.js → properties-world.inspector-CzUtvYuC.js} +1 -1
- package/dist/assets/{r3f-design-session-BhddL1e6.js → r3f-design-session-Dwqxg13i.js} +2 -2
- package/dist/assets/{r3f-physics-binding-D41qQnHD.js → r3f-physics-binding-D6DKTgwF.js} +1 -1
- package/dist/assets/{r3f-source-authoring-adapter-ZnrWHj5Z.js → r3f-source-authoring-adapter-nqn_PR3m.js} +1 -1
- package/dist/assets/{react-canvas-navigation-DFspvY8K.js → react-canvas-navigation-WxI8Mxyc.js} +1 -1
- package/dist/assets/{react-inspector.service-Co5AHjHR.js → react-inspector.service-C1Prvq6u.js} +1 -1
- package/dist/assets/{react-story-board--jvx8x-C.js → react-story-board-BRUE9hN1.js} +1 -1
- package/dist/assets/{react-three-rapier.esm-BS-6eWKp.js → react-three-rapier.esm-CA7vFsM3.js} +1 -1
- package/dist/assets/{react-world-authoring-adapter-CKQ-MAMv.js → react-world-authoring-adapter-DVNps-az.js} +1 -1
- package/dist/assets/{realm-services-DUEIrJNn.js → realm-services-CL4ih5gp.js} +1 -1
- package/dist/assets/{reflection-probe-capture.inspector-gO0DwTZj.js → reflection-probe-capture.inspector-C9mzBLI7.js} +1 -1
- package/dist/assets/{registry-ofLrf5fa.js → registry-N8Uqh2X-.js} +1 -1
- package/dist/assets/{relative-import-specifier-B_Awfdrr.js → relative-import-specifier-cRtWQWmH.js} +1 -1
- package/dist/assets/{render-env-a1pPDP-U.js → render-env-xu-q_sLG.js} +1 -1
- package/dist/assets/{render-features-CY3KFNVc.js → render-features-BMOBYkLQ.js} +1 -1
- package/dist/assets/{render-settings-DgCYPHgH.js → render-settings-Cnd69vhe.js} +1 -1
- package/dist/assets/{resolve-three-fhgJb0Jd.js → resolve-three-C9OlnFHx.js} +3 -3
- package/dist/assets/{root-seam-contract-D3r4vEIL.js → root-seam-contract-BoD0NaOZ.js} +1 -1
- package/dist/assets/{run-selection-DVvs9B9T.js → run-selection-DL0vJV6z.js} +1 -1
- package/dist/assets/{scene-capture-CCy--ncb.js → scene-capture-CoTN4qOO.js} +1 -1
- package/dist/assets/{scene-document.service-BCliVABQ.js → scene-document.service-kgtsh1r2.js} +2 -2
- package/dist/assets/{scene-framing-B1butaCp.js → scene-framing-CljHc6tN.js} +1 -1
- package/dist/assets/{seeded-random-J_tZuhc3.js → seeded-random-BlGWBUER.js} +1 -1
- package/dist/assets/{setup-renderer-DroW21zu.js → setup-renderer-jOQdnmo7.js} +1 -1
- package/dist/assets/{source-object3d-authoring-adapter-Bansi23s.js → source-object3d-authoring-adapter-qg_NN2PX.js} +1 -1
- package/dist/assets/{source-persistence-backend-B7_XGPrd.js → source-persistence-backend-DoNJeJa8.js} +1 -1
- package/dist/assets/{stage-keyboard-Cj5wm_J_.js → stage-keyboard-jfRYkBwZ.js} +1 -1
- package/dist/assets/{stage-overlay-set-CddoR5WV.js → stage-overlay-set-Bo-JC6N0.js} +1 -1
- package/dist/assets/{stage-presence-markers-B7ikfK7I.js → stage-presence-markers-Bu9mH0m_.js} +1 -1
- package/dist/assets/{stage-transform-tools-C9-7W51Q.js → stage-transform-tools-CSnDpsY3.js} +1 -1
- package/dist/assets/{standard-viewport-dressing-BYqJ1RDj.js → standard-viewport-dressing-B8VpmbHt.js} +1 -1
- package/dist/assets/{state-watch.action-Ckl-KiOu.js → state-watch.action-Dhb9xQb9.js} +1 -1
- package/dist/assets/{state-watch.menu-Bua5sNDD.js → state-watch.menu-xf7oO-4l.js} +1 -1
- package/dist/assets/{state-watch.utility-LIkpnIYo.js → state-watch.utility-DnGO08TW.js} +1 -1
- package/dist/assets/{story-capture-DRezN8hO.js → story-capture-CyeAHem-.js} +1 -1
- package/dist/assets/{story-documents-QsOjjFN1.js → story-documents-DUm0LUTp.js} +1 -1
- package/dist/assets/{story-documents.service-BBcpnJqG.js → story-documents.service-BWBSUjBO.js} +1 -1
- package/dist/assets/{story-documents.service-s45WvtSH.js → story-documents.service-DOvAnwES.js} +1 -1
- package/dist/assets/{story-media-presence-D3jBkjoV.js → story-media-presence-7Tbl7-hO.js} +1 -1
- package/dist/assets/{story-pixi-preview-DR9Z3mjx.js → story-pixi-preview-DHtzdru2.js} +1 -1
- package/dist/assets/{story-presentation-BanrEcxs.js → story-presentation-BpfNrI6t.js} +1 -1
- package/dist/assets/{story-three-preview-Cc12jMw-.js → story-three-preview-pzhR44fH.js} +2 -2
- package/dist/assets/{studio-environment-D3HaysRE.js → studio-environment-Dw2FBct5.js} +1 -1
- package/dist/assets/{surface-state-DgY1sYF4.js → surface-state-NwiDDkWI.js} +1 -1
- package/dist/assets/{syntactic-prop-specs-CBGAFjrQ.js → syntactic-prop-specs-_Yk2QtpW.js} +1 -1
- package/dist/assets/{team-playtest.service-z2r_7CUE.js → team-playtest.service-DdUlOcrk.js} +1 -1
- package/dist/assets/{three-CqcAlmZt.js → three-2yjp9YMj.js} +1 -1
- package/dist/assets/{three-authoring-adapter-D-dP-DRa.js → three-authoring-adapter-B5h6dxvp.js} +1 -1
- package/dist/assets/three-authoring.service-CIVEDuMV.js +2 -0
- package/dist/assets/{three-ingest-runtime-BOYUnvJa.js → three-ingest-runtime-B9surImB.js} +1 -1
- package/dist/assets/{three-integration-BKGFte0g.js → three-integration-K2zwKa-Z.js} +2 -2
- package/dist/assets/three-integration.service-kjZ0g0er.js +1 -0
- package/dist/assets/{three-projection-core-CMYaSPZP.js → three-projection-core-xgnaC08N.js} +1 -1
- package/dist/assets/{three-state-Bs6NttX2.js → three-state-DVnNjIbQ.js} +1 -1
- package/dist/assets/{three-story-capture.service-CV7CaGFK.js → three-story-capture.service-DgVUrOW6.js} +2 -2
- package/dist/assets/{three-story-model-DMsHWVLi.js → three-story-model-B0qnMa7M.js} +1 -1
- package/dist/assets/{three-viewport-presentation-D8F-c141.js → three-viewport-presentation-C5wGhMgD.js} +1 -1
- package/dist/assets/{transform-mode-request-nAOkjL7J.js → transform-mode-request-COfeHSRX.js} +1 -1
- package/dist/assets/{transport-strip-Do5Y5zz_.js → transport-strip-Dvkyjqwq.js} +1 -1
- package/dist/assets/transport.header-CFTM9Q_n.js +1 -0
- package/dist/assets/{tuples-T3njUS_v.js → tuples-tlEYpiUU.js} +1 -1
- package/dist/assets/{ui-board-document-Dix9rYE-.js → ui-board-document-BlKR5Cyh.js} +2 -2
- package/dist/assets/{user-data-DcUoY-0j.js → user-data-C8dmlLGA.js} +1 -1
- package/dist/assets/{utility-view-state-BUR2tvAo.js → utility-view-state-8ikycS0_.js} +1 -1
- package/dist/assets/{viewport-door-Ct3Jwvkd.js → viewport-door-Brt6-rPp.js} +1 -1
- package/dist/assets/{viewport-root-presentation-CM-p4xLg.js → viewport-root-presentation-DEm3C1-i.js} +1 -1
- package/dist/assets/{viewport-surface-status-BlPwrnIq.js → viewport-surface-status-Dbc5Yxun.js} +1 -1
- package/dist/assets/{webworkerAll-BbcMGhdJ.js → webworkerAll-qWuefF-u.js} +1 -1
- package/dist/assets/{workspace-arrangement-D7VBwv9F.js → workspace-arrangement-BnGzBm57.js} +1 -1
- package/dist/assets/{world-documents-g6lvzHMh.js → world-documents-DH7drgx-.js} +1 -1
- package/dist/assets/{world-root-stage-binding-DugyiNfT.js → world-root-stage-binding-DIigD-mK.js} +1 -1
- package/dist/assets/{xstate-animation-binding-Qdxeavj_.js → xstate-animation-binding-BpYb4mXT.js} +1 -1
- package/dist/assets/{xstate-animation-meta-CtUROKFq.js → xstate-animation-meta-0RXvMgDk.js} +1 -1
- package/dist-node/cli.js +16 -16
- package/package.json +16 -16
- package/dist/assets/InspectorObjectPreview-DA4bXZQD.js +0 -1
- package/dist/assets/Object3DDocumentViewport-BydKspxr.js +0 -2
- package/dist/assets/autoplay.service-CFbSU6Np.js +0 -1
- package/dist/assets/blender-runtime-host-Bw37aE1K.js +0 -4
- package/dist/assets/blender-runtime.document-DwlgMMor.js +0 -12
- package/dist/assets/instances.command--PqjYvLl.js +0 -1
- package/dist/assets/network-observer.service-DZtz0Y5F.js +0 -1
- package/dist/assets/three-authoring.service-BPzGC8dd.js +0 -2
- package/dist/assets/three-integration.service-InYYMues.js +0 -1
- package/dist/assets/transport.header-BhBKpJ9P.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as i}from"./jsx-runtime-DPjLkJKQ.js";import{gl as Ce}from"./index-JjEYIC4G.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-Bw37aE1K.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-BM2BJV41.js";import"./hierarchy-marks-DDRF3quV.js";import"./workspace-arrangement-D7VBwv9F.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-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};
|
package/dist/assets/{blender-properties-tab-Bi7EkqZ4.js → blender-properties-tab-BnIbJN4f.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-flxMlfV4.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-W_QVh8pY.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 B,la as xt}from"./index-flxMlfV4.js";import{a as kt}from"./preview-renderer-BrYNFV1p.js";import{v as Et}from"./output-pass-HurwNl0G.js";import{_ as St,fx as Pe,bi as Ve,aC as Bt,d7 as Ct,ej as At,cP as ve,el as Ye,cm as jt,cl as Ue,fo as ie,ex as Je,d5 as Qe,d9 as et,cJ as Tt,e as We,cj as It}from"./three.core-3arARmh6.js";import{f as tt}from"./clip-planes-CnAI6DZn.js";import{a as nt}from"./content-bounds-Ax7CFkXJ.js";class _t{#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;#f=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-Gtu-EAm9.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.#p(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.#p(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)}}#p(t){this.#f.get(t)?.(),this.#f.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.#f.set(r,this.#m(`waiting for worker ${t.op}`));try{this.#r.postMessage({...t,id:r})}catch(i){this.#n.delete(r),this.#p(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.#p(t.id),"error"in t?n.reject(new Error(t.error)):n.resolve(t.result))}}const Ft="/assets/agx-base-srgb-BjWZJgrZ.lut",Rt="/assets/agx-look-medium-high-contrast-D5F_ob1L.lut",$t="/assets/agx-look-punchy-dxsnycNs.lut",Lt="/assets/filmic-srgb-Ct35FIH6.lut",R=new Float64Array(12),Ge=[0,0,0],W=new Float64Array(3),ee=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 Nt(e,t,n){return e>t?t>n?0:e>n?1:2:n>t?3:n>e?4:5}function rt(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),u=Math.min(Math.floor(c),t-2),M=s-h,v=i-l,E=c-u,g=(d,f,b,x)=>{const w=(h+f+(l+b)*t+(u+x)*o)*3;R[d]=e[w]/65535,R[d+1]=e[w+1]/65535,R[d+2]=e[w+2]/65535};g(0,0,0,0),g(9,1,1,1),W[0]=M,W[1]=v,W[2]=E;const m=Nt(M,v,E)*9;g(3,$[m],$[m+1],$[m+2]),g(6,$[m+3],$[m+4],$[m+5]);const k=W[$[m+6]],p=W[$[m+7]],y=W[$[m+8]];for(let d=0;d<3;d++){const f=R[d];Ge[d]=f+k*(R[3+d]-f)+p*(R[6+d]-R[3+d])+y*(R[9+d]-R[6+d])}return Ge}function te(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 Fe(e,t,n,r){const a=new Uint8ClampedArray(t*4);for(let o=0;o<t;o++){const s=o*4,i=te(e[s+3]),c=i===0?n:n/i;ee[0]=te(e[s])*c,ee[1]=te(e[s+1])*c,ee[2]=te(e[s+2])*c;const h=r(ee);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 Ot(e){return new URL(Object.assign({"./agx-base-srgb.lut":Ft,"./agx-look-medium-high-contrast.lut":Rt,"./agx-look-punchy.lut":$t,"./filmic-srgb.lut":Lt})[`./${e.replace(/\.lut$/,"")}.lut`],import.meta.url)}const Dt=57,N=-12.47393,ot=12.5260688117,Pt=[[.4123908,.3575843,.1804808],[.212639,.7151687,.0721923],[.0193308,.1191948,.9505322]],Vt=[[1.5250528,-.3159135,-.1226583],[-.5091526,1.3333274,.1382844],[.0957153,.0508974,.7879558]];function qe(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 ne=new Float64Array(3),ze=new Float64Array(3),re=[0,0,0];function pe(e){const t=Math.min(1,Math.max(0,e));return t<=.0031308?12.92*t:1.055*t**(1/2.4)-.055}function at(e,t,n,r){return rt(e,Dt,t,n,r)}function Ut(e,t){qe(Pt,t,ze),qe(Vt,ze,ne);const n=ot-N,r=at(e,(Math.log2(Math.max(ne[0],1e-10))-N)/n,(Math.log2(Math.max(ne[1],1e-10))-N)/n,(Math.log2(Math.max(ne[2],1e-10))-N)/n);return re[0]=pe(Math.max(0,r[0])**2.4),re[1]=pe(Math.max(0,r[1])**2.4),re[2]=pe(Math.max(0,r[2])**2.4),re}const Wt={"AgX - Medium High Contrast":"agx-look-medium-high-contrast.lut","AgX - Punchy":"agx-look-punchy.lut"};function Gt(e,t){const n=ot-N;return at(e,(Math.log2(Math.max(t[0],1e-10))-N)/n,(Math.log2(Math.max(t[1],1e-10))-N)/n,(Math.log2(Math.max(t[2],1e-10))-N)/n)}function qt(e,t,n,r={}){const a=r.exposure??1,o=r.composedLook===!0?Gt:Ut;return Fe(t,n,a,s=>o(e,s))}const st=33,xe=st**3*3,ke=4096,fe=-12.473931188,we=25;function ge(e,t){const n=Math.min(1,Math.max(0,t))*(ke-1),r=Math.min(Math.floor(n),ke-2),a=n-r;return((1-a)*e[xe+r]+a*e[xe+r+1])/65535}const oe=[0,0,0];function zt(e,t){const n=rt(e,st,(Math.log2(Math.max(t[0],1e-10))-fe)/we,(Math.log2(Math.max(t[1],1e-10))-fe)/we,(Math.log2(Math.max(t[2],1e-10))-fe)/we);return oe[0]=ge(e,n[0]/.66),oe[1]=ge(e,n[1]/.66),oe[2]=ge(e,n[2]/.66),oe}function Xt(e,t,n,r){if(e.length!==xe+ke)throw new Error("Invalid Blender Filmic display table");return Fe(t,n,r,a=>zt(e,a))}const J=2.4,O=.055,it=O/(J-1),Ht=1/(J/(1+O)*((it+O)/(1+O))**(J-1)),Zt=((it+O)/(1+O))**J;function me(e){return e>0?e<Zt?e*Ht:(1+O)*e**(1/J)-O:0}const ae=[0,0,0];function Kt(e){return ae[0]=me(e[0]),ae[1]=me(e[1]),ae[2]=me(e[2]),ae}function Yt(e,t,n){return Fe(e,t,n,Kt)}function lt(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=kt(),l=h.renderer,u={target:l.getRenderTarget(),toneMapping:l.toneMapping,exposure:l.toneMappingExposure,colorSpace:l.outputColorSpace,shadows:l.shadowMap.enabled,shadowType:l.shadowMap.type,clearColor:l.getClearColor(new St),clearAlpha:l.getClearAlpha(),background:e.background};let M,v,E=!1;try{M=new Pe(i,c,{type:Ve}),n.effect&&(M.depthTexture=new Bt(i,c)),l.shadowMap.enabled=!0,l.shadowMap.type=Ct,l.outputColorSpace=At,l.toneMapping=n.toneMapping??ve,l.toneMappingExposure=n.exposure??1,l.setClearColor(0,n.transparent?0:1),n.transparent&&(e.background=null),l.setRenderTarget(M),l.clear(),l.render(e,t);const g=n.effect?.render(l,M,e,t)??M;if(g.texture.type!==Ve||g.width!==i||g.height!==c)throw new Error("Scene capture effect must return a same-size half-float target");if(r){const w=new Uint16Array(i*c*4);return l.readRenderTargetPixels(g,0,0,i,c,w),E=!0,{pixels:w,width:a,height:o}}v=new Pe(i,c),Et(n.transparent===!0).render(l,v,g,0,!1);const m=new Uint8Array(i*c*4);l.readRenderTargetPixels(v,0,0,i,c,m);const k=document.createElement("canvas");k.width=i,k.height=c;const p=k.getContext("2d");if(!p)throw new Error("Scene capture could not create an image canvas");const y=p.createImageData(i,c),d=i*4;for(let w=0;w<c;w++)y.data.set(m.subarray((c-1-w)*d,(c-w)*d),w*d);p.putImageData(y,0,0);const f=document.createElement("canvas");f.width=a,f.height=o;const b=f.getContext("2d");if(!b)throw new Error("Scene capture could not create an output canvas");b.drawImage(k,0,0,a,o);const x=f.toDataURL("image/png");return E=!0,x}finally{e.background=u.background,l.setRenderTarget(u.target),l.toneMapping=u.toneMapping,l.toneMappingExposure=u.exposure,l.outputColorSpace=u.colorSpace,l.shadowMap.enabled=u.shadows,l.shadowMap.type=u.shadowType,l.setClearColor(u.clearColor,u.clearAlpha),v?.dispose(),M?.dispose(),h.release({discard:!E})}}function Jt(e,t,n){return lt(e,t,n,!0)}function Qt(e,t,n){return lt(e,t,n,!1)}const en=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 Re(){const e=B().documents.context(wt());return en(e)?e:null}function tn(){return Re()?.blenderSelection()??{selected:[],active:null}}const nn={tree:null,byId:new Map,parentOf:new Map,error:null,loading:!1};let Ee=nn,ct=0;const Se=new Set;let Z=null,he=null,$e="",K=null;function rn(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 le(e){Ee={...Ee,...e},ct+=1;for(const t of[...Se])t()}function In(e){return Se.add(e),()=>{Se.delete(e)}}function _n(){return ct}function Fn(){return Ee}function Le(e){K!==e&&(K=e,setTimeout(()=>{K===e&&(K=null,ut(e===""?[]:e.split("\0")))},0))}let ye=0,Be=Promise.resolve();function ut(e){const t=on(e);return Be=t,t}async function on(e){const t=e.join("\0"),n=++ye;he=t,$e=t,le({loading:!0});try{const r=await yn(e);if(n!==ye)return;Re()?.setStageMode(r?.mode??null),le({tree:r,...rn(r),loading:!1,error:null})}catch(r){if(n!==ye)return;le({loading:!1,error:dt(r)})}}function an(){he=null,Le($e);for(const e of[...Ce])e()}const Ce=new Set;function Rn(e){return Ne(),Ce.add(e),()=>{Ce.delete(e)}}let se=!1,be=null;function Ne(){const e=Re();if(Z!==null&&be===e)return;Z!==null&&(Z(),Z=null,be=null);const t=e;if(t!==null){Z=t.subscribeFrames(an),be=t;return}se||(se=!0,B().documents.waitForContext(wt()).then(()=>{se=!1,Ne()}).catch(()=>{se=!1}))}function $n(e){if(!I())return;Ne();const t=[...e].sort().join("\0");he!==t&&Le(t)}async function sn(e){if(!I())return;K=null;let t=ut([...e].sort());for(;;){if(await t,Be===t)return;t=Be}}async function Ln(e,t,n){try{return await mt(e,t,n),he=null,Le($e),!0}catch(r){return le({error:dt(r)}),!1}}function dt(e){return e instanceof Error?e.message:String(e)}const ln={transform:{cx:0,cy:0,zoom:1},looked:null,refusal:null,size:{w:0,h:0},framedAt:0,drawn:[]};let Ae=ln,Oe=0;const de=new Set;let ht=0;function Me(){return Ae}function Nn(){return Oe}function On(e){return de.add(e),()=>{de.delete(e)}}function Y(e){Ae={...Ae,...e},Oe+=1;for(const t of[...de])t()}function cn(){ht+=1,Oe+=1;for(const e of[...de])e()}function Dn(){return ht}function G(e){Y({refusal:e})}const Xe=new Map;function un(e){let t=Xe.get(e);return t||(t=fetch(Ot(e)).then(async n=>{if(!n.ok)throw new Error(`Blender display table ${e}: ${n.status} ${n.statusText}`);return new Uint16Array(await n.arrayBuffer())}),Xe.set(e,t)),t}function dn(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 pt(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":Wt[n];if(o===void 0)throw new Error(`Blender display transform has no table for look ${n}`);const s=o?await un(o):null,i=t.linearInput,c=i?{pixels:dn(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:u}=c,M=a?Yt(h,l*u,t.exposure):r?Xt(s,h,l*u,t.exposure):qt(s,h,l*u,{exposure:t.exposure,composedLook:n!=="None"}),v=document.createElement("canvas");v.width=l,v.height=u;const E=v.getContext("2d");if(!E)throw new Error("Blender display transform could not create its image canvas");const g=E.createImageData(l,u),m=l*4;for(let y=0;y<u;y++){const d=(u-1-y)*m;g.data.set(M.subarray(d,d+m),y*m)}E.putImageData(g,0,0);const k=v.toDataURL("image/png"),p={base64:k.slice(k.indexOf(",")+1),mimeType:"image/png"};if(t.linear===!0){const y=new Uint8Array(h.buffer,h.byteOffset,h.byteLength);let d="";for(let f=0;f<y.length;f+=32768)d+=String.fromCharCode(...y.subarray(f,f+32768));p.linearBase64=btoa(d),p.linearWidth=l,p.linearHeight=u}return p}async function ft(e,t,n,r,a=()=>{}){const o={none:ve,agx:We,neutral:Tt,filmic:ve};await n.prepare(t),a();const s={effect:n.effect,width:r.width,height:r.height,transparent:r.transparent===!0,toneMapping:o[r.toneMapping]??We,exposure:r.exposure},i=r.toneMapping==="agx"||r.toneMapping==="filmic"||r.linear===!0?await pt(Jt(e,t,s),r):null;if(a(),i)return i;const c=Qt(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 hn={Standard:"none",AgX:"agx",Filmic:"filmic","Khronos PBR Neutral":"neutral"},pn=1600;async function Pn(e,t){const n=b=>({kind:"refused",reason:b}),r=e.cameraViewCamera(),a="The scene has no camera, so there is nothing to render";if(r===null)return n(a);const o=e.cameraView(r,{width:1e3,height:1e3},1,[0,0]);if(o===null)return n(a);const s=o.frame.width/o.frame.height,i=Math.min(1,pn/Math.max(t.width,t.height)),c=Math.min(t.width,t.height*s)*i,h=Math.max(1,Math.round(c)),l=Math.max(1,Math.round(c/s)),u=e.cameraView(r,{width:h,height:l},1,[0,0]);if(u===null)return n(a);const M=await wn();if(M===null)return n("Blender is starting");const[v,E]=await Promise.all([Ze(`${M.scene}.view_settings`),Ze(`${M.scene}.render`)]),g=(b,x)=>b?.kind==="struct"?b.groups.flatMap(w=>w.rows).find(w=>w.identifier===x)?.value:void 0,m=String(g(v,"view_transform")),k=hn[m];if(k===void 0)return n(`Blender view transform ${m} has no curve in the renderer`);const p=String(g(v,"look")??"None"),y=Number(g(v,"exposure")??0),d={width:h,height:l,fov:0,toneMapping:k,exposure:2**(Number.isFinite(y)?y:0),orthographic:u.projection==="orthographic",transparent:g(E,"film_transparent")===!0,...p==="None"||p==="AgX - Base Contrast"?{}:{look:p}},f=e.captureSnapshot();try{const b=new Ye;b.add(f.root),b.updateMatrixWorld(!0);const x=new ie(...u.position),w=nt(f.root).getBoundingSphere(new Je),{near:T,far:z}=tt(x.distanceTo(w.center),w.radius),{left:X,right:D,top:P,bottom:V}=u.window;let _;if(u.projection==="orthographic")_=new Qe(X,D,P,V,T,z);else{const F=new et(It.radToDeg(2*Math.atan((P-V)/2)),(D-X)/(P-V),T,z);F.projectionMatrix.makePerspective(X*T,D*T,P*T,V*T,T,z),F.projectionMatrixInverse.copy(F.projectionMatrix).invert(),_=F}_.position.copy(x),_.quaternion.set(...u.quaternion),_.updateMatrixWorld(!0);const H=await ft(b,_,f,d);return{kind:"image",url:`data:${H.mimeType};base64,${H.base64}`,width:h,height:l,projection:u.projection}}finally{f.dispose()}}const fn="document:blender:runtime";let j=null,He=0;function Vn(e){const t=++He;return j=e,q(),()=>{He===t&&(j=null,q())}}function je(){const e=S?.document,t=B().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 L(){return j?.documentId??fn}function wt(){return L()}async function Un(e,t){const n=B();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=C(),o=a.start(r,e.blend);return t(),await o,j!==e?!1:(await a.present(),j===e)}function I(){return S?.project!=null&&je()===null}let gt=0;const Te=new Set;function Wn(){return gt}function Gn(e){return Te.add(e),()=>{Te.delete(e)}}function q(){gt+=1;for(const e of[...Te])e()}async function Ze(e,t){return I()?C().rna(e,t):null}async function wn(e,t){return I()?C().rnaContext(e,t):null}async function gn(e,t,n,r,a=!0){if(!I())return null;const o=await C().rnaSet(e,t,n,r,a);return q(),o}async function mn(e,t=!0,n="Blender Python"){const r=await C().execute(e,t,n);q();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 qn(){C().historyGesture("history-begin").catch(e=>B().console.error(`Could not begin Blender undo gesture: ${String(e)}`,"blender-history"))}async function zn(){await C().historyGesture("history-end")}async function yn(e){return I()?C().outliner(e):null}async function Xn(e){return I()?C().nodeTree(e):null}async function Hn(e){return I()?C().uvLayout(e):null}async function Zn(e){return I()?C().rig(e):null}async function Kn(e){return I()?C().actionClip(e):null}async function mt(e,t,n){if(!I())return null;const r=await C().outlinerSet(e,t,n);return q(),r}const bn={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=>yt({...n,action:e})}))};function yt(e){const t=typeof e.action=="string"?e.action:"state";switch(t){case"state":break;case"look":Y({looked:typeof e.node=="string"?e.node:null,refusal:null});break;case"view-all":cn(),Y({refusal:null});break;case"zoom":{const n=typeof e.zoom=="number"?e.zoom:1;Y({transform:{...Me().transform,zoom:n},refusal:null});break}case"pan":{const n=Me().transform;Y({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":G(`Moving "${String(e.node??"a node")}" writes Node.location — editing parity is not the program.`);break;case"link":G("Dragging between sockets would make a link — editing parity is not the program.");break;case"set-value":G(`Changing "${String(e.socket??"a socket")}" writes the socket's default_value — editing parity is not the program.`);break;case"use-nodes":G("Use Nodes writes Material.use_nodes — editing parity is not the program.");break;case"collapse-panel":G(`Collapsing "${String(e.panel??"a panel")}" writes the panel's is_collapsed — editing parity is not the program.`);break;default:G(`blender-node-view: no action "${t}" — state, look, view-all, zoom, pan, and the refusals move, link, set-value, use-nodes, collapse-panel.`)}return Me()}let S=null;const ce=new Set;function bt(){ce.size&&B().history.invalidate([...ce]),ce.clear()}let Ie=null,Ke=!1;function ue(e){try{const t=B().session.beginWork(`Blender: ${e}`);return()=>{try{t()}catch{}}}catch{return()=>{}}}function _e(){const e=ue("invalidating history and releasing runtime");try{bt(),Ie?.abort(),Ie=null,S?.terminate(),S=null,Mt=null}finally{e()}}function Mn(){Ke||(Ke=!0,B().session.onBeforeClose(async()=>{await S?.stop(),_e()}),B().session.onEnded(_e))}let Mt=null;const vn=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 xn(){const{documents:e}=B(),t=Date.now()+15e3;let n=L();for(;;){n=L();const r=await e.waitForContext(n,Math.max(0,Math.min(250,t-Date.now())));if(vn(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 C(){const e=je();if(e)throw new Error(e);if(S!==null)return S;Mn();const t=new AbortController;Ie=t;let n=!1;S=new _t({work:ue,history:a=>{const o=S;if(!o)throw new Error("Blender history arrived before its runtime");for(const s of a){if("reset"in s){bt();continue}if(!s.resource)throw new Error("A Blender edit has no document resource");ce.add(s.resource);const i=async c=>{if(S!==o)throw new Error("This Blender history belongs to a closed worker");const h=await o.historyStep(s.id,c);return q(),await sn(tn().selected),h};B().history.record({id:s.id,label:s.label,resources:[s.resource],document:L(),undo:()=>i("undo"),redo:()=>i("redo")})}},present:async(a,o,s)=>{const i=je();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=L(),h=ue("waiting for Model presenter");let l;try{l=await xn()}finally{h()}if(t.signal.throwIfAborted(),L()!==c)throw new Error("Blender document changed before its frame could be presented");const u=ue("applying frame to Model"),M=(()=>{try{return l.applyFrame(a)}finally{u()}})(),v=typeof M=="object"&&M!==null&&"held"in M,E=v?M.held:null,g=x=>({...x===void 0?{}:{capture:x},...v?{held:E}:{}});if(l.recordPresentation(o),!s||(Mt=s,!s.render))return g(void 0);const m=l.snapshot(),k=()=>{if(t.signal.throwIfAborted(),L()!==c||l.snapshot()!==m)throw new Error("Blender capture document or source revision changed before completion")};if(s.render.linearInput){const x=await pt(null,s.render);return k(),g(x)}const{render:p,position:y,target:d,up:f}=s;if(!y||!d||!f)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 b=l.captureSnapshot();n=!0,t.signal.addEventListener("abort",b.dispose,{once:!0});try{k();const x=new Ye;x.add(b.root),x.updateMatrixWorld(!0);const w=b.root.matrixWorld,T=new jt().copy(w).invert(),z=new Ue().setFromMatrix4(w),X=new Ue().setFromMatrix4(T),D=new ie(y[0],y[1],y[2]).applyMatrix4(w),P=new ie(d[0],d[1],d[2]).applyMatrix4(w),V=new ie(f[0],f[1],f[2]).applyMatrix3(z),_=Math.min(2048,Math.round(p.width))/Math.min(2048,Math.round(p.height)),H=nt(b.root).getBoundingSphere(new Je),F=tt(D.distanceTo(H.center),H.radius);let U;if(p.orthographic){const Q=p.fov/2;U=new Qe(-Q*_,Q*_,Q,-Q,F.near,F.far)}else U=new et(p.fov,_,F.near,F.far);U.up.copy(V),U.position.copy(D),U.lookAt(P),U.updateMatrixWorld(!0);const De={position:D.clone().applyMatrix4(T).toArray(),target:P.clone().applyMatrix4(T).toArray(),up:V.clone().applyMatrix3(X).toArray()};l.recordPhotograph({sent:{position:y,target:d,up:f},photographed:De,render:{width:p.width,height:p.height,fov:p.fov,orthographic:p.orthographic}});const vt=await ft(x,U,b,p,k);return g({...vt,camera:De})}finally{n=!1,t.signal.removeEventListener("abort",b.dispose),b.dispose()}},log:(a,o)=>(a==="error"?console.error:console.log)(`[blender] ${o}`)});const r=S;return B().session.reportWorkerCallMeter("Blender",()=>r.metrics()),S}const kn="models/model.blend",A=(e,t)=>{const n=e[t];if(typeof n!="string")throw new Error(`${String(e.type)} requires a string "${t}"`);return n};async function En(e){const t=B().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 Yn(e){const t=B();if(e.type==="blender-status")return{ok:!0,data:{started:S?.project!=null,document:t.documents.context(L())!==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"?A(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 S?.stop(),_e(),e.type==="blender-stop"))return{ok:!0,data:{stopped:!0}};if(e.type==="blender-start"&&!t.documents.context(L())){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=C();switch(e.type){case"blender-start":{const o=r!==void 0?r:j?.blend??kn;return{ok:!0,data:{...await a.start(n,o)}}}case"blender-execute":return{ok:!0,data:{result:(await mn(A(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(A(e,"name"))}};case"blender-rna":{const o=typeof e.names=="number"?e.names:void 0;return{ok:!0,data:{result:await a.rna(A(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 gn(A(e,"path"),A(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:bn.verbs.some(i=>i.id===o)?xt("blender-node-view",o,e):yt(e)}}}case"blender-outliner-set":return{ok:!0,data:{result:await mt(A(e,"path"),A(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(A(e,"path")),s=A(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(A(e,"base64")),s=Uint8Array.from(o,i=>i.charCodeAt(0));return await a.writeFile(A(e,"path"),s),{ok:!0,data:{written:s.length}}}case"blender-list-files":{const o=await a.listFiles(A(e,"path")),s=a.presented;return{ok:!0,data:{entries:o,...s?{session:s.session,revision:s.revision}:{},...await En(a)}}}}return{ok:!1,error:`Unknown Blender command ${e.type}`}}catch(n){return{ok:!1,error:n instanceof Error?n.message:String(n)}}}export{zn as A,qn as B,Ln as C,$n as D,mn as E,Pn as F,Vn as G,Un as H,bn as N,On as a,Wn as b,Y as c,Me as d,Xn as e,Dn as f,Kn as g,Yn as h,Zn as i,Hn as j,Fn as k,wt as l,I as m,Nn as n,q as o,wn as p,Ze as q,G as r,Gn as s,gn as t,Rn as u,In as v,sn as w,tn as x,_n as y,Re as z};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/RectAreaLightUniformsLib-DpPyArRG.js","assets/three.module-BLhyNg0e.js","assets/three.core-3arARmh6.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{a as Uo,b as Wo,L as Ho}from"./LineSegments2-DN9pUfWA.js";import{bh as ot,cl as qo,fo as x,cm as X,N as fn,a$ as bt,em as Kn,b4 as Te,co as Tt,ey as Pe,cp as bn,_ as ht,ej as Mt,fd as $t,er as Ae,M as it,cj as ut,dp as gt,aV as Se,cW as Go,aE as Xo,c7 as ft,j as Ee,f6 as Me,fp as Jn,au as Tn,dw as Pn,bi as to,aT as Ne,c1 as Lt,dd as Ln,eC as Vn,e7 as gn,aw as nn,da as It,I as yn,as as Re,e8 as Ie,b0 as Yo,K as ze,B as Fe,b9 as De,Y as Zo,cw as ln,ed as Ce,cA as ke,fx as $e,db as Qo,el as Le,R as Ve,e6 as je,c0 as Ko,bX as Be,aI as uo,ao as Ue,eG as We,d3 as He,cs as qe,ex as Ge,b5 as Xe,cY as Ye,eU as Ze,cE as jn,c5 as Jo,cO as no,at as Qe,ff as Ke,eW as Je,f7 as ta,F as na,ev as oa,et as ea,dq as aa,fq as ra,n as la,l as ia,cf as sa}from"./three.core-3arARmh6.js";import{t as P,u as z,v as E,bz as q,by as W,bA as S,e1 as $,_ as fa,mu as te,dZ as jt,w as j,kv as _t,e0 as ne,mv as B,dY as ca,mw as ua}from"./index-
|
|
2
|
+
import{a as Uo,b as Wo,L as Ho}from"./LineSegments2-DN9pUfWA.js";import{bh as ot,cl as qo,fo as x,cm as X,N as fn,a$ as bt,em as Kn,b4 as Te,co as Tt,ey as Pe,cp as bn,_ as ht,ej as Mt,fd as $t,er as Ae,M as it,cj as ut,dp as gt,aV as Se,cW as Go,aE as Xo,c7 as ft,j as Ee,f6 as Me,fp as Jn,au as Tn,dw as Pn,bi as to,aT as Ne,c1 as Lt,dd as Ln,eC as Vn,e7 as gn,aw as nn,da as It,I as yn,as as Re,e8 as Ie,b0 as Yo,K as ze,B as Fe,b9 as De,Y as Zo,cw as ln,ed as Ce,cA as ke,fx as $e,db as Qo,el as Le,R as Ve,e6 as je,c0 as Ko,bX as Be,aI as uo,ao as Ue,eG as We,d3 as He,cs as qe,ex as Ge,b5 as Xe,cY as Ye,eU as Ze,cE as jn,c5 as Jo,cO as no,at as Qe,ff as Ke,eW as Je,f7 as ta,F as na,ev as oa,et as ea,dq as aa,fq as ra,n as la,l as ia,cf as sa}from"./three.core-3arARmh6.js";import{t as P,u as z,v as E,bz as q,by as W,bA as S,e1 as $,_ as fa,mu as te,dZ as jt,w as j,kv as _t,e0 as ne,mv as B,dY as ca,mw as ua}from"./index-flxMlfV4.js";import{S as zt}from"./three.module-BLhyNg0e.js";import{t as _a}from"./blender-runtime-host-W_QVh8pY.js";const Bn=new Set;function vt(){for(const o of[...Bn])o()}function ma(o){return Bn.add(o),()=>{Bn.delete(o)}}function Un(o){const t=atob(o),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n}const Zt=S().finite(),da=P({name:E(),parent:E().nullable(),connected:q(),hide:q(),length:Zt,matrix:z($([Zt,Zt,Zt,Zt])).length(4),select:q(),active:q(),lockedWeight:q()}).strict(),ha=P({object:E(),displayType:W(["OCTAHEDRAL","STICK","BBONE","ENVELOPE","WIRE"]),showInFront:q(),mode:E(),bones:z(da)}).strict(),xt={solid:11711154,pose:5294335,poseActive:9240575,poseActiveUnsel:794150,wire:0,vertex:0,lockedWeight:16711680,lockedWeightFactor:128/255};function pa(o){return new ht(o.r*o.r*.1,o.g*o.g*.1,o.b*o.b*.1)}const An=[[0,0,0],[.1,.1,.1],[.1,.1,-.1],[-.1,.1,-.1],[-.1,.1,.1],[0,1,0]],_o=[[2,1,0],[3,2,0],[4,3,0],[1,4,0],[5,1,2],[5,2,3],[5,3,4],[5,4,1]],Pt=Math.SQRT1_2,va=[[Pt,-Pt,0],[0,-Pt,-Pt],[-Pt,-Pt,0],[0,-Pt,Pt],[.99388373,.11043154,0],[0,.11043154,-.99388373],[-.99388373,.11043154,0],[0,.11043154,.99388373]],ga=[[0,1],[1,5],[5,3],[3,0],[0,4],[4,5],[5,2],[2,0],[1,2],[2,3],[3,4],[4,1]],xa=.05;function mo(o){return o.select||o.active?2:1}const ba=10,ya=4,wa=`
|
|
3
3
|
attribute vec3 aSolid;
|
|
4
4
|
attribute vec3 aHint;
|
|
5
5
|
varying vec3 vColor;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import{a as u}from"./jsx-runtime-DPjLkJKQ.js";import{jC as ke,dJ as he,r as $,cO as Se,fH as V,cS as M,dj as H,hQ as xe,cR as Ee,dG as Oe,dI as Ce}from"./index-flxMlfV4.js";import{c as ye,a as X}from"./blender-runtime-skin-CwXXiusi.js";import{r as y}from"./index-nmcBqr7Y.js";import{u as Re,v as Y,w as J,x as Fe,y as ne,z as ee,t as de,A as Ne,B as Le,C as ue,D as Te,k as q,E as Z,F as Me,G as Ae,H as Ie}from"./blender-runtime-host-W_QVh8pY.js";import"./index-CtzuWnCS.js";import{a as Be}from"./three-contract-Dkt6PmWY.js";import{o as te,b as U}from"./viewport-door-Brt6-rPp.js";import{d9 as Pe}from"./three.core-3arARmh6.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./index-D_NuPfjr.js";import"./index-CinJrH5C.js";import"./LineSegments2-DN9pUfWA.js";import"./three.module-BLhyNg0e.js";import"./preview-renderer-BrYNFV1p.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";function je(t){const a=Number.isFinite(t)&&t>0?t:50;return{degrees:2*Math.atan(72/(2*a))*180/Math.PI,axis:"larger"}}ke("model",{camera:{fov:je(50),opening:[.8187,.4458,.3617]},interaction:{bootTool:"select",boxSelect:"touch"},all:{lighting:{source:"studio",studioPreset:he.id,auto:null,tone:{mapper:"none",exposure:1}},xray:{enabled:!1,alpha:.5}},modes:{wireframe:{xray:{enabled:!0,alpha:0}},preview:{lighting:{source:"preview",auto:null,preview:{sceneLights:!1,sun:{enabled:!1},environment:{enabled:!0,image:"blender:forest",energy:1,rotation:0}},tone:{mapper:"agx",exposure:1}},backdrop:{source:"fill"}},rendered:{lighting:{source:"scene",auto:null,tone:{mapper:"agx",exposure:1}},backdrop:{source:"scene"}}},overlays:{selection:{origins:!0}},world:{upAxis:"z"}});function $e(t){return`blender-${t.toLowerCase().replace(/_/g,"-")}`}function B(t){return t?.type==="TSE_SOME_ID"&&t.struct==="Object"&&t.object!==void 0}function pe(t){if(t.struct)return t.struct}function be(t,a){return{id:t.id,label:t.name,role:"entity",kind:$e(t.icon),...pe(t)?{typeLabel:pe(t)}:{},parentId:a,childIds:t.children.map(l=>l.id),defaultExpanded:t.expanded}}const De={transform:!0,inspectorFields:!1,persist:!0},W=new Set;function Ve(t){for(const a of W)if(a.documentId===t)return a;return W.size===1?[...W][0]:null}const Ge=()=>({position:[0,0,0],rotation:[0,0,0,1],scale:[1,1,1]});function We(t,a){t.updateWorldMatrix(!0,!1);const l=a.matrixWorld.clone().invert().multiply(t.matrixWorld).elements;return[[l[0],l[1],l[2],l[3]],[l[4],l[5],l[6],l[7]],[l[8],l[9],l[10],l[11]],[l[12],l[13],l[14],l[15]]]}function z(t,a){return`${t} needs a file, and this editor has no door to ask for one: the host's file door (\`EditorHost.files\`, \`@volter/editor-sdk/host\`) reads and writes project-relative paths and has no file-picker member, so there is nothing to open the workbench's own dialog through. Blender's row opens a file browser; run without one, the engine answers "${a}".`}const He=[{kind:"mesh.plane",label:"Plane",group:"Mesh",call:"mesh.primitive_plane_add"},{kind:"mesh.cube",label:"Cube",group:"Mesh",call:"mesh.primitive_cube_add"},{kind:"mesh.circle",label:"Circle",group:"Mesh",call:"mesh.primitive_circle_add"},{kind:"mesh.uv-sphere",label:"UV Sphere",group:"Mesh",call:"mesh.primitive_uv_sphere_add"},{kind:"mesh.ico-sphere",label:"Ico Sphere",group:"Mesh",call:"mesh.primitive_ico_sphere_add"},{kind:"mesh.cylinder",label:"Cylinder",group:"Mesh",call:"mesh.primitive_cylinder_add"},{kind:"mesh.cone",label:"Cone",group:"Mesh",call:"mesh.primitive_cone_add"},{kind:"mesh.torus",label:"Torus",group:"Mesh",call:"mesh.primitive_torus_add"},{kind:"mesh.grid",label:"Grid",group:"Mesh",call:"mesh.primitive_grid_add",separatorBefore:!0},{kind:"mesh.monkey",label:"Monkey",group:"Mesh",call:"mesh.primitive_monkey_add"},{kind:"curve.bezier",label:"Bézier",group:"Curve",call:"curve.primitive_bezier_curve_add"},{kind:"curve.bezier-circle",label:"Circle",group:"Curve",call:"curve.primitive_bezier_circle_add"},{kind:"curve.nurbs-curve",label:"Nurbs Curve",group:"Curve",call:"curve.primitive_nurbs_curve_add",separatorBefore:!0},{kind:"curve.nurbs-circle",label:"Nurbs Circle",group:"Curve",call:"curve.primitive_nurbs_circle_add"},{kind:"curve.path",label:"Path",group:"Curve",call:"curve.primitive_nurbs_path_add"},{kind:"curve.empty-hair",label:"Empty Hair",group:"Curve",call:"object.curves_empty_hair_add",separatorBefore:!0},{kind:"curve.fur",label:"Fur",group:"Curve",call:"object.quick_fur"},{kind:"surface.nurbs-curve",label:"Nurbs Curve",group:"Surface",call:"surface.primitive_nurbs_surface_curve_add"},{kind:"surface.nurbs-circle",label:"Nurbs Circle",group:"Surface",call:"surface.primitive_nurbs_surface_circle_add"},{kind:"surface.nurbs-surface",label:"Nurbs Surface",group:"Surface",call:"surface.primitive_nurbs_surface_surface_add"},{kind:"surface.nurbs-cylinder",label:"Nurbs Cylinder",group:"Surface",call:"surface.primitive_nurbs_surface_cylinder_add"},{kind:"surface.nurbs-sphere",label:"Nurbs Sphere",group:"Surface",call:"surface.primitive_nurbs_surface_sphere_add"},{kind:"surface.nurbs-torus",label:"Nurbs Torus",group:"Surface",call:"surface.primitive_nurbs_surface_torus_add"},{kind:"metaball.ball",label:"Ball",group:"Metaball",call:"object.metaball_add, type='BALL'"},{kind:"metaball.capsule",label:"Capsule",group:"Metaball",call:"object.metaball_add, type='CAPSULE'"},{kind:"metaball.plane",label:"Plane",group:"Metaball",call:"object.metaball_add, type='PLANE'"},{kind:"metaball.ellipsoid",label:"Ellipsoid",group:"Metaball",call:"object.metaball_add, type='ELLIPSOID'"},{kind:"metaball.cube",label:"Cube",group:"Metaball",call:"object.metaball_add, type='CUBE'"},{kind:"text",label:"Text",group:null,call:"object.text_add"},{kind:"point-cloud",label:"Point Cloud",group:null,call:"object.pointcloud_random_add"},{kind:"volume.import",label:"Import OpenVDB...",group:"Volume",call:"object.volume_import",refusal:`${z("Importing an OpenVDB volume","CANCELLED, with nothing created")} This build also has no OpenVDB at all (\`bpy.app.build_options.openvdb\` is False), so a file would not be read even with a picker.`},{kind:"volume.empty",label:"Empty",group:"Volume",call:"object.volume_add"},{kind:"grease-pencil.blank",label:"Blank",group:"Grease Pencil",call:"object.grease_pencil_add, type='EMPTY'"},{kind:"grease-pencil.stroke",label:"Stroke",group:"Grease Pencil",call:"object.grease_pencil_add, type='STROKE'"},{kind:"grease-pencil.monkey",label:"Monkey",group:"Grease Pencil",call:"object.grease_pencil_add, type='MONKEY'"},{kind:"grease-pencil.lineart-scene",label:"Scene Line Art",group:"Grease Pencil",call:"object.grease_pencil_add, type='LINEART_SCENE'",separatorBefore:!0},{kind:"grease-pencil.lineart-collection",label:"Collection Line Art",group:"Grease Pencil",call:"object.grease_pencil_add, type='LINEART_COLLECTION'"},{kind:"grease-pencil.lineart-object",label:"Object Line Art",group:"Grease Pencil",call:"object.grease_pencil_add, type='LINEART_OBJECT'"},{kind:"armature",label:"Armature",group:null,call:"object.armature_add"},{kind:"lattice.lattice",label:"Lattice",group:"Lattice",call:"object.add, type='LATTICE'"},{kind:"lattice.deform-selected",label:"Lattice Deform Selected",group:"Lattice",call:"object.lattice_add_to_selected"},{kind:"empty.plain-axes",label:"Plain Axes",group:"Empty",call:"object.empty_add, type='PLAIN_AXES'"},{kind:"empty.arrows",label:"Arrows",group:"Empty",call:"object.empty_add, type='ARROWS'"},{kind:"empty.single-arrow",label:"Single Arrow",group:"Empty",call:"object.empty_add, type='SINGLE_ARROW'"},{kind:"empty.circle",label:"Circle",group:"Empty",call:"object.empty_add, type='CIRCLE'"},{kind:"empty.cube",label:"Cube",group:"Empty",call:"object.empty_add, type='CUBE'"},{kind:"empty.sphere",label:"Sphere",group:"Empty",call:"object.empty_add, type='SPHERE'"},{kind:"empty.cone",label:"Cone",group:"Empty",call:"object.empty_add, type='CONE'"},{kind:"image.reference",label:"Reference...",group:"Image",call:"object.empty_image_add, background=False",refusal:z("A reference image","poll() failed, context is incorrect / Please select at least one image")},{kind:"image.background",label:"Background...",group:"Image",call:"object.empty_image_add, background=True",refusal:z("A background image","poll() failed, context is incorrect / Please select at least one image")},{kind:"image.mesh-plane",label:"Mesh Plane...",group:"Image",call:"image.import_as_mesh_planes",refusal:z("An image as a mesh plane","CANCELLED, with nothing created")},{kind:"image.empty-image",label:"Empty Image",group:"Image",call:"object.empty_add, type='IMAGE'"},{kind:"light.point",label:"Point",group:"Light",call:"object.light_add, type='POINT'"},{kind:"light.sun",label:"Sun",group:"Light",call:"object.light_add, type='SUN'"},{kind:"light.spot",label:"Spot",group:"Light",call:"object.light_add, type='SPOT'"},{kind:"light.area",label:"Area",group:"Light",call:"object.light_add, type='AREA'"},{kind:"light-probe.sphere",label:"Sphere",group:"Light Probe",call:"object.lightprobe_add, type='SPHERE'"},{kind:"light-probe.plane",label:"Plane",group:"Light Probe",call:"object.lightprobe_add, type='PLANE'"},{kind:"light-probe.volume",label:"Volume",group:"Light Probe",call:"object.lightprobe_add, type='VOLUME'"},{kind:"camera",label:"Camera",group:null,call:"object.camera_add"},{kind:"speaker",label:"Speaker",group:null,call:"object.speaker_add"},{kind:"force-field.force",label:"Force",group:"Force Field",call:"object.effector_add, type='FORCE'"},{kind:"force-field.wind",label:"Wind",group:"Force Field",call:"object.effector_add, type='WIND'"},{kind:"force-field.vortex",label:"Vortex",group:"Force Field",call:"object.effector_add, type='VORTEX'"},{kind:"force-field.magnetic",label:"Magnetic",group:"Force Field",call:"object.effector_add, type='MAGNET'"},{kind:"force-field.harmonic",label:"Harmonic",group:"Force Field",call:"object.effector_add, type='HARMONIC'"},{kind:"force-field.charge",label:"Charge",group:"Force Field",call:"object.effector_add, type='CHARGE'"},{kind:"force-field.lennard-jones",label:"Lennard-Jones",group:"Force Field",call:"object.effector_add, type='LENNARDJ'"},{kind:"force-field.texture",label:"Texture",group:"Force Field",call:"object.effector_add, type='TEXTURE'"},{kind:"force-field.curve-guide",label:"Curve Guide",group:"Force Field",call:"object.effector_add, type='GUIDE'"},{kind:"force-field.boid",label:"Boid",group:"Force Field",call:"object.effector_add, type='BOID'"},{kind:"force-field.turbulence",label:"Turbulence",group:"Force Field",call:"object.effector_add, type='TURBULENCE'"},{kind:"force-field.drag",label:"Drag",group:"Force Field",call:"object.effector_add, type='DRAG'"},{kind:"force-field.fluid-flow",label:"Fluid Flow",group:"Force Field",call:"object.effector_add, type='FLUID'"}],Ue="collection-instance:";function ze(){const t=new Map;for(const a of q().byId.values()){if(a.type!=="TSE_LAYER_COLLECTION")continue;const l=a.data;l===void 0||!l.startsWith("bpy.data.collections[")||t.has(a.name)||t.set(a.name,{kind:`${Ue}${a.name}`,label:a.name,group:"Collection Instance",call:`object.collection_instance_add, collection=${D(a.name)}`})}return[...t.values()]}function Q(){return[...He,...ze()]}function Ke(t){const[a,...l]=t.call.split(", ");return`bpy.ops.${a}(${l.join(", ")})`}function D(t){return JSON.stringify(t)}async function G(t,a="Blender Python"){const l=["before = {o.name for o in bpy.data.objects}",t,"made = [o.name for o in bpy.data.objects if o.name not in before]",'print("\\n".join(made))'].join(`
|
|
2
|
+
`),d=await Z(l,!0,a);return d.error!==null?{made:[],error:d.error}:{made:d.result.split(`
|
|
3
|
+
`).map(_=>_.trim()).filter(_=>_.length>0),error:null}}async function Xe(t,a){const l=[`_sel = {${t.map(D).join(", ")}}`,"_vl = bpy.context.view_layer","for _o in _vl.objects:"," _o.select_set(_o.name in _sel)",a===null?"_vl.objects.active = None":`_vl.objects.active = bpy.data.objects.get(${D(a)})`].join(`
|
|
4
|
+
`),d=await Z(l,!1);d.error!==null&&$().console.error(`Blender refused the selection write: ${d.error}`,"blender-outliner")}async function re(t,a){if(t.length===0)return{destination:"Nothing is selected, so there was nothing to run it on.",persisted:!1};const l=[`targets = [bpy.data.objects[n] for n in [${t.map(D).join(", ")}]]`,"with bpy.context.temp_override(selected_objects=targets, selected_editable_objects=targets, active_object=targets[0], object=targets[0]):",` ${a}`].join(`
|
|
5
|
+
`),{error:d}=await G(l);return d!==null?{destination:d,persisted:!1}:(await J(t),{destination:`Blender — ${a}; the session saves the .blend`,persisted:!0})}const Ye={source:"document",label:"blender",detail:"These rows are Blender's own View Layer tree, read from the engine through RNA. Editing the model is a bpy call; the eye and render columns write the engine directly."},Je="This collection is excluded from the view layer (LayerCollection.exclude), so its viewport visibility is not what is hiding it. Clear the Exclude checkbox on this row first.",qe=({defaultAdapter:t})=>{const a=new Set;let l=[],d=null;const S=new Map,_=new Map,w=()=>{for(const r of[...a])r()},p=()=>q().byId,O=r=>{const e=p().get(r),n=ee();return e===void 0||n===null?null:e.type==="TSE_VIEW_COLLECTION_BASE"?n.root:e.object===void 0?null:n.objectForBlenderName(e.object)},x=r=>{const e=ee();if(e===null)return null;for(const n of p().values())if(B(n)&&e.objectForBlenderName(n.object)===r)return n.id;return null},k=r=>{for(const e of p().values())if(B(e)&&e.object===r)return e.id;return null},g=r=>{if(p().has(r))return r;const e=Be(t.hierarchy,r);return e===null?null:x(e)},h=r=>{const e=g(r);return e===null?null:O(e)},F=r=>{const e=h(r);return e===null?null:t.hierarchy.idForObject3D?.(e)??null},R={roots:()=>(Te(N()),(q().tree?.rows??[]).map(e=>be(e,null))),node:r=>{const e=q(),n=e.byId.has(r)?r:g(r),s=n===null?void 0:e.byId.get(n);return s===void 0?null:be(s,e.parentOf.get(s.id)??null)},object3D:r=>h(r),idForObject3D:r=>x(r)};function N(){const r=p(),e=new Set;for(const n of l){const s=r.get(n)?.object;s!==void 0&&e.add(s)}return[...e]}const i=()=>{const r=[];for(const e of l){const n=h(e),s=n===null?null:t.hierarchy.idForObject3D?.(n);s&&r.push(s)}t.selection?.set(r,{intent:"exact"}),w()},b=()=>{const r=Fe(),e=`${ne()}\0${r.active??""}\0${[...r.selected].sort().join("")}`;if(e===d)return;d=e;const n=r.selected.filter(f=>f!==r.active);r.active!==null&&n.push(r.active);const s=n.map(k).filter(f=>f!==null);s.length===l.length&&s.every((f,E)=>f===l[E])||(l=s,i())},m={get:()=>[...l],set:r=>{l=r.map(g).filter(f=>f!==null),i();const e=p(),n=[],s=[];for(const f of l){const E=e.get(f),T=E?.object;T===void 0?s.push(E?.name??f):n.includes(T)||n.push(T)}s.length>0&&$().console.warn(`${s.join(", ")} ${s.length===1?"is":"are"} not an object, so Blender's object selection does not carry ${s.length===1?"it":"them"}. Selecting a collection sets the ACTIVE COLLECTION in Blender, which is its own gesture and not in this editor yet.`,"blender-outliner"),Xe(n,n.length===0?null:n[n.length-1])}},o=r=>p().get(r)?.restrict,c={properties:r=>{const e=o(r);if(e===void 0)return[];const n=p().get(r),s=[{path:"name",label:"Name",type:"string",readonly:!B(n)}];return e.hide!==void 0&&s.push({path:"visible",label:"Show in Viewport",type:"boolean"}),e.render!==void 0&&s.push({path:"renderVisible",label:"Show in Renders",type:"boolean"}),e.exclude!==void 0&&s.push({path:"exclude",label:"Exclude from View Layer",type:"boolean"}),s},get:(r,e)=>{const n=p().get(r);if(n!==void 0){if(e==="name")return n.name;if(e==="visible")return n.restrict?.hide===void 0?void 0:!n.restrict.hide;if(e==="renderVisible")return n.restrict?.render===void 0?void 0:!n.restrict.render;if(e==="exclude")return n.restrict?.exclude}},editability:(r,e)=>{const n=p().get(r);return n===void 0?{writable:!1}:e==="name"?B(n)?{writable:!0}:{writable:!1,reason:`Renaming a ${n.struct??n.type} is not in this Outliner yet — only an object row renames here. Rename it with bpy.`}:n.notInCollection?{writable:!1,reason:"This row is a child drawn under its parent although it is not in that collection, and Blender's Outliner draws it no restriction columns."}:e==="visible"&&n.restrict?.exclude===!0?{writable:!1,reason:Je}:{writable:!0}},set:async(r,e,n)=>{const s=p().get(r);if(s===void 0)return;if(e==="name"){if(!B(s))return;const E=String(n);if(E===s.name||E.length===0)return;await de(`bpy.data.objects[${D(s.object)}]`,"name",E),await J([E]);const T=k(E);T!==null&&m.set([T]);return}if(e==="exclude"){await ue(s.path,"exclude",n===!0);return}const f=e==="visible"?"hide":e==="renderVisible"?"render":null;f!==null&&await ue(s.path,f,n===!1)}},j={get:r=>{const e=F(r);return(e===null?void 0:t.transforms?.get(e))??Ge()},editability:r=>{const e=g(r),n=e===null?void 0:p().get(e);return B(n)&&O(n.id)!==null?{writable:!0}:{writable:!1,reason:`Only an object has a transform; this row is a ${n?.struct??n?.type??"row"}.`}},beginEdit:r=>{const e=h(r);e!==null&&!S.has(e)&&(S.set(e,e.matrixWorld.clone()),_.set(r,e),Le())},apply:(r,e)=>{const n=h(r);n!==null&&(n.position.fromArray(e.position),n.quaternion.fromArray(e.rotation),n.scale.fromArray(e.scale),n.updateMatrix(),n.updateMatrixWorld(!0))},endEdit:async r=>{const e=_.get(r)??h(r);_.delete(r);const n=ee();if(e===null)return;const s=S.get(e);S.delete(e);try{if(n===null||(e.updateWorldMatrix(!0,!1),s?.equals(e.matrixWorld)===!0))return;const f=n.blenderObjectName(e);if(f===null)return;const E=`bpy.data.objects[${JSON.stringify(f)}]`;try{return await de(E,"matrix_world",We(e,n.root)),{destination:`Blender — ${E}.matrix_world; the session saves the .blend`,persisted:!0}}catch(T){return{destination:T instanceof Error?T.message:String(T),persisted:!1}}}finally{s&&await Ne()}}},A=r=>{const e=g(r),n=e===null?void 0:p().get(e);return B(n)?n.object:null},C=r=>({destination:r,persisted:!1}),L=async r=>{await J(r);const e=r.map(k).filter(n=>n!==null);return e.length>0&&m.set(e),e[0]??""},I={creatableKinds:()=>Q().map(({kind:r,label:e})=>({kind:r,label:e})),create:r=>{const e=Q().find(s=>s.kind===r);if(e===void 0)return{id:"",ack:C(`${r} is not a row of Blender's Add menu that this editor adds. Its rows are: ${Q().map(s=>s.label).join(", ")}.`)};if(e.refusal!==void 0)return{id:"",ack:C(e.refusal)};const n=Ke(e);return{id:"",ack:(async()=>{const{made:s,error:f}=await G(n);return f!==null?C(f):s.length===0?C(`Blender ran ${n} and created nothing. The operator reported no error, so it cancelled — most often because it wanted a file browser or a context this headless engine has no window for.`):(await L(s),{destination:`Blender — ${n}; the session saves the .blend`,persisted:!0})})()}},remove:r=>I.removeMany?.([r])??void 0,removeMany:async r=>{const e=[];for(const E of r){const T=A(E);if(T===null){const ce=g(E)===null?void 0:p().get(g(E));return C(`Only an object can be deleted here; this row is a ${ce?.struct??ce?.type??"row"}. Deleting a collection, a modifier or a vertex group is that datablock’s own bpy call.`)}e.push(T)}if(e.length===0)return C("Nothing selected to delete.");const s=[`targets = ${`[bpy.data.objects[n] for n in [${e.map(D).join(", ")}]]`}`,"with bpy.context.temp_override(selected_objects=targets, active_object=targets[0]):"," result = bpy.ops.object.delete(use_global=False)",'if "FINISHED" not in result: raise RuntimeError("Blender cancelled deleting the selected objects")'].join(`
|
|
6
|
+
`),{error:f}=await G(s,"Delete Objects");return f!==null?C(f):(m.set([]),await J([]),{destination:"Blender — bpy.ops.object.delete(use_global=False); the session saves the .blend",persisted:!0})},duplicate:r=>{const e=A(r);if(e===null)return{id:r,ack:C("Only an object can be duplicated here. Duplicating a collection is `bpy.ops.object.collection_instance_add`, its own gesture.")};const n=[`source = bpy.data.objects[${D(e)}]`,"with bpy.context.temp_override(selected_objects=[source], active_object=source):"," result = bpy.ops.object.duplicate(linked=False)",'if "FINISHED" not in result: raise RuntimeError("Blender cancelled duplicating the selected object")'].join(`
|
|
7
|
+
`);return{id:r,ack:(async()=>{const{made:s,error:f}=await G(n,"Duplicate Object");return f!==null?C(f):(await L(s),{destination:`Blender — bpy.ops.object.duplicate(linked=False) on ${e}; the session saves the .blend`,persisted:!0})})()}},duplicateMany:async r=>{const e=[...new Set(r.map(A))];if(e.length===0||e.some(E=>E===null))return C("Select objects to duplicate; collections and data rows cannot be duplicated here.");const n=[`sources = [bpy.data.objects[name] for name in ${JSON.stringify(e)}]`,"with bpy.context.temp_override(selected_objects=sources, active_object=sources[0]):"," result = bpy.ops.object.duplicate(linked=False)",'if "FINISHED" not in result: raise RuntimeError("Blender cancelled duplicating the selected objects")'].join(`
|
|
8
|
+
`),{made:s,error:f}=await G(n,"Duplicate Objects");return f!==null?C(f):(await L(s),{destination:"Blender — duplicate selected objects as one native operation; the session saves the .blend",persisted:!0})},reparent:()=>C("Reparenting is Blender's `bpy.ops.object.parent_set`, which needs a parent TYPE (Object, Object Keep Transform, Armature Deform, …) that a drag does not say. Set the parent on the object’s Relations panel, or with bpy.")},P={get documentId(){return t.documentId},get documentRootObject(){return t.documentRootObject},capabilities:De,provenance:Ye,hierarchy:R,selection:m,inspector:c,transforms:j,structure:I,subscribe:r=>{a.add(r);const e=Y(r),n=t.subscribe?.(r)??(()=>{});return()=>{a.delete(r),e(),n()}}},se={get documentId(){return P.documentId},selectedObjectNames:()=>N(),allObjectNames:()=>{const r=[];for(const e of p().values())B(e)&&r.push(e.object);return r},selectObjects:r=>{const e=r.map(k).filter(n=>n!==null);m.set(e)},rowIdForObject:r=>k(r),structure:I,subscribe:r=>{a.add(r);const e=Y(r);return()=>{a.delete(r),e()}}};W.add(se);const _e=Re(b),we=Y(b);return b(),{adapter:P,dispose:()=>{_e(),we(),W.delete(se),a.clear()}}},le="volter.blender.render-view-split:",oe=new Set,ae=new Map;function Qe(t){try{return globalThis.localStorage?.getItem(le+t)==="1"}catch{return!1}}function ie(t){let a=ae.get(t);return a===void 0&&(a=Qe(t),ae.set(t,a)),a}function fe(t,a){if(ie(t)!==a){ae.set(t,a);try{a?globalThis.localStorage?.setItem(le+t,"1"):globalThis.localStorage?.removeItem(le+t)}catch{}for(const l of[...oe])l()}}function ve(t){return oe.add(t),()=>{oe.delete(t)}}const Ze=[{label:"Location",call:"location=True, rotation=False, scale=False"},{label:"Rotation",call:"location=False, rotation=True, scale=False"},{label:"Scale",call:"location=False, rotation=False, scale=True"},{label:"All Transforms",call:"location=True, rotation=True, scale=True"}],et=[{label:"Location",call:"bpy.ops.object.location_clear(clear_delta=False)"},{label:"Rotation",call:"bpy.ops.object.rotation_clear(clear_delta=False)"},{label:"Scale",call:"bpy.ops.object.scale_clear(clear_delta=False)"}],tt=[{label:"Geometry to Origin",type:"GEOMETRY_ORIGIN"},{label:"Origin to Geometry",type:"ORIGIN_GEOMETRY"},{label:"Origin to 3D Cursor",type:"ORIGIN_CURSOR"}],rt=[{submenu:"Mesh",at:"2699"},{submenu:"Curve",at:"2702"},{submenu:"Surface",at:"2704"},{submenu:"Metaball",at:"2705"},{kind:"text",at:"2706"},{kind:"point-cloud",at:"2707"},{submenu:"Volume",at:"2708"},{submenu:"Grease Pencil",at:"2709"},{separatorAt:"2711"},{kind:"armature",at:"2716"},{submenu:"Lattice",at:"2718"},{separatorAt:"2720"},{submenu:"Empty",at:"2722"},{submenu:"Image",at:"2723"},{separatorAt:"2725"},{submenu:"Light",at:"2727"},{submenu:"Light Probe",at:"2728"},{separatorAt:"2730"},{kind:"camera",at:"2735"},{separatorAt:"2737"},{kind:"speaker",at:"2739"},{separatorAt:"2741"},{submenu:"Force Field",at:"2743"},{separatorAt:"2745"},{submenu:"Collection Instance",at:"2759"}],nt="No Collections to Instance";function K({id:t,open:a,setOpen:l,anchorRef:d,children:S}){return u.jsxs("div",{ref:d,style:{position:"relative"},children:[u.jsx(xe,{"data-testid":`blender-menu-${t}`,"aria-expanded":a===t,onClick:()=>l(a===t?null:t),onPointerEnter:()=>{a&&l(t)},style:{textTransform:"capitalize"},children:t}),a===t&&u.jsx(Ee,{anchorRef:d,dismissBoundaryRef:d,align:"start",gap:0,clamp:!0,"aria-label":t,onDismiss:()=>l(null),children:S})]})}function lt(t,a,l){(async()=>{const d=await l;d===void 0||typeof d.destination!="string"||d.persisted!==!0&&t?.({tone:"error",title:`${a} was refused`,detail:d.destination})})()}function ot({documentId:t,notify:a}){y.useSyncExternalStore(Y,ne,ne);const[l,d]=y.useState(null),S=y.useRef(null),_=y.useRef(null),w=y.useRef(null),p=y.useRef(null),O=y.useRef(null),x=y.useSyncExternalStore(ve,()=>t===void 0?!1:ie(t),()=>!1),k=Ve(t);if(k===null)return null;const g=(o,c)=>()=>{d(null),lt(a,o,c(k))},h=k.selectedObjectNames(),F=k.allObjectNames(),R=h.length===0?"Nothing is selected.":void 0,N=Q(),i=o=>u.jsx(M,{"data-testid":`blender-add-${o.kind}`,disabled:o.refusal!==void 0,title:o.refusal,onSelect:g(`Add ${o.label}`,c=>c.structure.create(o.kind).ack),children:o.label},o.kind),b=o=>N.filter(c=>c.group===o).flatMap(c=>c.separatorBefore===!0?[u.jsx(H,{},`${c.kind}-separator`),i(c)]:[i(c)]),m=o=>{if("separatorAt"in o)return u.jsx(H,{},`separator-${o.separatorAt}`);if("kind"in o){const j=N.find(A=>A.kind===o.kind);return j===void 0?null:i(j)}const c=b(o.submenu);return c.length===0?u.jsx(M,{"data-testid":"blender-add-collection-instance",disabled:!0,children:nt},o.submenu):u.jsx(V,{label:o.submenu,"data-testid":`blender-add-${o.submenu.toLowerCase().replaceAll(" ","-")}`,children:c},o.submenu)};return u.jsxs(Se,{compact:!0,label:"Blender Object Mode menus","data-testid":"blender-object-mode-menus",ref:S,children:[u.jsx(K,{id:"view",open:l,setOpen:d,anchorRef:_,children:u.jsxs(V,{label:"Area","data-testid":"blender-view-area",children:[u.jsx(M,{"data-testid":"blender-area-vertical-split",disabled:x||t===void 0,title:x?"The Render view is already beside this area.":void 0,onSelect:()=>{d(null),t!==void 0&&fe(t,!0)},children:"Vertical Split"}),u.jsx(H,{}),u.jsx(M,{"data-testid":"blender-area-close",disabled:!x,title:x?void 0:"There is no second area to close.",onSelect:()=>{d(null),t!==void 0&&fe(t,!1)},children:"Close Area"})]})}),u.jsxs(K,{id:"select",open:l,setOpen:d,anchorRef:w,children:[u.jsx(M,{"data-testid":"blender-select-all",onSelect:g("Select All",o=>o.selectObjects(F)),children:"All"}),u.jsx(M,{"data-testid":"blender-select-none",onSelect:g("Select None",o=>o.selectObjects([])),children:"None"}),u.jsx(M,{"data-testid":"blender-select-invert",onSelect:g("Select Invert",o=>o.selectObjects(F.filter(c=>!h.includes(c)))),children:"Invert"})]}),u.jsx(K,{id:"add",open:l,setOpen:d,anchorRef:p,children:rt.map(o=>m(o))}),u.jsxs(K,{id:"object",open:l,setOpen:d,anchorRef:O,children:[u.jsx(V,{label:"Set Origin","data-testid":"blender-object-origin",children:tt.map(o=>u.jsx(M,{"data-testid":`blender-origin-${o.type}`,disabled:o.refusal!==void 0||h.length===0,title:o.refusal??R,onSelect:g(`Set Origin ▸ ${o.label}`,c=>re(c.selectedObjectNames(),`bpy.ops.object.origin_set(type='${o.type}')`)),children:o.label},o.type))}),u.jsx(V,{label:"Clear","data-testid":"blender-object-clear",children:et.map(o=>u.jsx(M,{"data-testid":`blender-clear-${o.label.toLowerCase()}`,disabled:h.length===0,title:R,onSelect:g(`Clear ▸ ${o.label}`,c=>re(c.selectedObjectNames(),o.call)),children:o.label},o.label))}),u.jsx(V,{label:"Apply","data-testid":"blender-object-apply",children:Ze.map(o=>u.jsx(M,{"data-testid":`blender-apply-${o.label.toLowerCase().replace(/ /g,"-")}`,disabled:h.length===0,title:R,onSelect:g(`Apply ▸ ${o.label}`,c=>re(c.selectedObjectNames(),`bpy.ops.object.transform_apply(${o.call})`)),children:o.label},o.label))}),u.jsx(H,{}),u.jsx(M,{"data-testid":"blender-object-duplicate",disabled:h.length===0,title:R,onSelect:g("Duplicate Objects",async o=>{const c=o.selectedObjectNames().map(j=>o.rowIdForObject(j)).filter(j=>j!==null);return o.structure.duplicateMany?.(c)}),children:"Duplicate Objects"}),u.jsx(M,{"data-testid":"blender-object-delete",disabled:h.length===0,title:R,onSelect:g("Delete",o=>{const c=o.selectedObjectNames().map(j=>o.rowIdForObject(j)).filter(j=>j!==null);return o.structure.removeMany?.(c)}),children:"Delete"})]})]})}const me=ye,at="#3d3d3d",ge="#ffffff";function it(){const t=y.useRef(null),[a,l]=y.useState(null),[d,S]=y.useState(!1);return y.useEffect(()=>{const _=t.current;if(!_)return;let w=!1,p=!1,O=!1;const x=async()=>{if(!O){O=!0,S(!0);try{for(;p&&!w;){p=!1;const F=globalThis.devicePixelRatio||1,R={width:Math.max(1,Math.round(_.clientWidth*F)),height:Math.max(1,Math.round(_.clientHeight*F))};let N;try{N=await Me(me,R)}catch(i){N={kind:"refused",reason:i instanceof Error?i.message:String(i)}}w||l(N)}}finally{O=!1,w||S(!1)}}},k=()=>{p=!0,x()},g=me.subscribeFrames(k),h=new ResizeObserver(k);return h.observe(_),k(),()=>{w=!0,g(),h.disconnect()}},[]),u.jsxs("div",{ref:t,"data-testid":"blender-render-view","aria-label":"Render view",style:{position:"relative",flex:"1 1 0",minWidth:0,marginTop:12,background:at,overflow:"hidden"},children:[a?.kind==="image"&&u.jsx("img",{src:a.url,alt:"The scene camera's render","data-testid":"blender-render-view-image",style:{position:"absolute",inset:0,width:"100%",height:"100%",objectFit:"contain"}}),a?.kind==="refused"&&u.jsx("div",{role:"status","data-testid":"blender-render-view-refusal",style:{position:"absolute",inset:0,display:"flex",alignItems:"center",justifyContent:"center",padding:16,textAlign:"center",color:ge,opacity:.8,fontSize:12},children:a.reason}),u.jsxs("div",{style:{position:"absolute",top:6,left:8,color:ge,fontSize:11,lineHeight:"14px",textShadow:"0 0 2px #000, 0 0 2px #000",pointerEvents:"none"},children:[a?.kind==="image"&&u.jsx("div",{children:a.projection==="orthographic"?"Camera Orthographic":"Camera Perspective"}),d&&u.jsx("div",{"data-testid":"blender-render-view-rendering",children:"Rendering…"})]})]})}const Vt="workspace.document",Gt="Blender Model",Wt=({documentId:t,notify:a})=>u.jsx(ot,{documentId:t,notify:a}),st="model",Ht="owned",Ut=[],v=ye,ct=()=>{const t=X.playhead();return v.subjectLine(t===null?null:Math.floor(t))},dt=t=>v.gridUnitName(t),ut={camera:()=>v.cameraViewCamera(),zoom:v.cameraViewZoom,pan:v.cameraViewPan,showing:t=>v.setCameraViewShowing(t),setPose:(t,a,l,d)=>{const{location:S,rotation:_}=v.blenderPose(a,l);return Z(`from mathutils import Matrix, Quaternion, Vector
|
|
9
|
+
import bpy
|
|
10
|
+
object = bpy.data.objects[${JSON.stringify(t)}]
|
|
11
|
+
object.matrix_world = Matrix.LocRotScale(Vector((${S.join(", ")})), Quaternion((${_.join(", ")})), object.matrix_world.to_scale())`,d,"Lock Camera to View").then(w=>{w.error!==null&&$().console.error(`Blender refused the camera's pose: ${w.error}`,"blender-camera")},w=>$().console.error(`The camera's pose was not written to Blender: ${String(w)}`,"blender-camera"))},view:(t,a,l,d)=>v.cameraView(t,a,l,d)};function zt(t){const{active:a,document:l,documentId:d,notify:S,publishContext:_}=t,w=l?.source?.path,p=l?.id,O=JSON.stringify([d,p,w]),[x,k]=y.useState(null),g=y.useRef({notify:S,publishContext:_});return g.current={notify:S,publishContext:_},y.useEffect(()=>{if(a===!1||!d)return;let h=!1,F;const R=w===void 0?null:{documentId:d,entryId:p,blend:w},N=Ae(R),i=()=>{F=g.current.publishContext?.(v)};return k(null),(async()=>{try{if(R){if(!await Ie(R,i))return}else i();h||k({key:O,error:null})}catch(b){if(h)return;F?.(),F=void 0;const m=b instanceof Error?b.message:String(b);k({key:O,error:m}),g.current.notify?.({tone:"error",title:`Blender could not open ${w??"the model"}`,detail:m})}})(),()=>{h=!0,F?.(),N()}},[a,w,d,p,O]),a===!1||!d?null:x?.key!==O?u.jsx("div",{role:"status",children:"Opening model…"}):x.error?u.jsx("div",{role:"alert",children:x.error}):u.jsx(pt,{...t})}function pt({active:t,document:a,documentId:l,surfaces:d}){const S=y.useCallback(()=>({root:v.root,onChange(i){const b=v.onChange(i),m=X.subscribe(i);return()=>{b(),m()}},dispose(){}}),[]),_=a?.source?.path,w=y.useCallback(i=>{const b=v.onChange(i),m=X.subscribe(i);let o=null;const c=()=>{o?.(),o=U().find(A=>A.documentId===l)?.onFrame(i)??null};c();const j=te(c);return()=>{b(),m(),j(),o?.()}},[l]),p=y.useSyncExternalStore(w,ct),O=y.useSyncExternalStore(ve,()=>l?ie(l):!1,()=>!1);y.useEffect(()=>{if(!l)return;const i=v.overlayGroups(),b=()=>{const o=U().find(c=>c.documentId===l);if(o)for(const{kind:c,object:j}of i)o.setHelper(c,j)};b();const m=te(b);return()=>{m();const o=U().find(c=>c.documentId===l);for(const{kind:c}of i)o?.setHelper(c,null)}},[l]),y.useEffect(()=>{if(!l)return;const{transport:i}=$();let b=null;const m=()=>{if(b)return;const c=i.for(l);c&&(b=X.attachTo(c))};m();const o=i.subscribe(m);return()=>{o(),b?.()}},[l]),y.useEffect(()=>{if(!l)return;const i=()=>U().find(L=>L.documentId===l);let b,m=null;const o=new Pe,c=()=>i()?.rig().drawCamera()??o,j=()=>{const L=i();L!==b&&(m?.(),m=L?L.onFrame(()=>v.refreshRendered()):null,b=L);const{lighting:I}=Ce(l);v.holdRendered(I.source==="scene"&&L?c:null),v.setWorkbench(I.source==="studio"&&I.studioPreset===he.id)};j();const A=Oe(j),C=te(j);return()=>{A(),C(),m?.(),v.holdRendered(null),v.setWorkbench(!1)}},[l]);const x=y.useRef(null),k=i=>i.button===2&&i.shiftKey&&i.target instanceof HTMLCanvasElement,g=i=>{if(!k(i)){x.current=null;return}i.preventDefault(),i.stopPropagation(),x.current={id:i.pointerId,x:i.clientX,y:i.clientY},i.isTrusted&&i.target.setPointerCapture(i.pointerId)},h=()=>{x.current=null},F=i=>{const b=x.current;if(b===null||i.pointerId!==b.id||i.button!==2||(x.current=null,i.preventDefault(),i.stopPropagation(),Math.hypot(i.clientX-b.x,i.clientY-b.y)>3))return;const m=v.placeCursor(i.clientX,i.clientY,i.target);if(m===null)return;const[o,c,j]=m.location,[A,C,L,I]=m.rotation;Z(`from mathutils import Matrix, Quaternion, Vector
|
|
12
|
+
bpy.context.scene.cursor.matrix = Matrix.LocRotScale(Vector((${o}, ${c}, ${j})), Quaternion((${A}, ${C}, ${L}, ${I})), None)`,!1,"Set 3D Cursor").then(P=>{P.error!==null&&$().console.error(`Blender refused the 3D cursor: ${P.error}`,"blender-cursor")},P=>$().console.error(`The 3D cursor was not written to Blender: ${String(P)}`,"blender-cursor"))},R=i=>{k(i)&&i.preventDefault()};if(!l)return null;const N=d.Object3DAuthoring;return u.jsxs("div",{style:O?{position:"absolute",inset:-12,display:"flex",gap:2}:{display:"contents"},children:[u.jsx("div",{style:O?{position:"relative",flex:"1 1 0",minWidth:0,margin:12}:{display:"contents"},onPointerDownCapture:g,onPointerUpCapture:F,onPointerCancelCapture:h,onLostPointerCaptureCapture:h,onContextMenuCapture:R,children:u.jsx(N,{active:t??!0,documentId:l,sourcePath:_??"blender:runtime",displayName:a?.label??"Model",...p===null?{}:{subject:p},gridScale:dt,cameraView:ut,build:S,audit:!1,authoring:qe,cameraDirection:[.8187,.4458,.3617],openingFit:3,openingView:v.savedView(),presentation:(()=>{const i=v.savedView();return i?{camera:{fov:je(i.lens)}}:null})(),stageKind:st,dressing:{environment:!1,keyLight:!1,viewLocked:v.studioLights()}})}),O&&u.jsx(it,{})]})}export{Wt as Toolbar,zt as default,st as documentKind,Ut as inspectorBuiltins,Ht as inspectorRail,Vt as point,Gt as title};
|