@volter/game-editor 0.5.121 → 0.5.123

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (299) hide show
  1. package/BUNDLED_NOTICES +22 -22
  2. package/catalog/entries/blender.json +2 -2
  3. package/catalog/entries/music.json +2 -2
  4. package/dist/.vite/manifest.json +2158 -2158
  5. package/dist/assets/{AssetBudgetPanel-CgoANs2s.js → AssetBudgetPanel-BysmQBG_.js} +3 -3
  6. package/dist/assets/{AudioViewer-C4uo4rrh.js → AudioViewer-uCMtO6Qm.js} +1 -1
  7. package/dist/assets/{CanvasBoardDocument-DqdGiGID.js → CanvasBoardDocument-CkEEUE29.js} +1 -1
  8. package/dist/assets/{CanvasSceneViewport-BBe1Sfsu.js → CanvasSceneViewport-D-WC3mNK.js} +1 -1
  9. package/dist/assets/{ColorInput-CdKXSVD8.js → ColorInput-CN0VduhS.js} +1 -1
  10. package/dist/assets/{ColorPicker-BEP19KUH.js → ColorPicker-CuKRMJx9.js} +1 -1
  11. package/dist/assets/{EntityModelDocument-Cc9B0Gb_.js → EntityModelDocument-BDA_oS8p.js} +1 -1
  12. package/dist/assets/{EnvironmentAssetDocument-CIbxZehr.js → EnvironmentAssetDocument-DjGu7n7g.js} +1 -1
  13. package/dist/assets/{GameplaySessionTimeline-ClXvscHQ.js → GameplaySessionTimeline-k3HDIyvv.js} +1 -1
  14. package/dist/assets/{ImageViewer-CEIzEBb9.js → ImageViewer-tSj0VFS7.js} +1 -1
  15. package/dist/assets/InspectorObjectPreview-CJtqQ2wH.js +1 -0
  16. package/dist/assets/{JsonAssetDocument-C6hgN2MO.js → JsonAssetDocument-CQn3Stfz.js} +1 -1
  17. package/dist/assets/{LiveModuleDocument-DSdDAaXG.js → LiveModuleDocument-BF3ci_zZ.js} +1 -1
  18. package/dist/assets/{LutAssetDocument-RVOO2D6d.js → LutAssetDocument-B7gtucKj.js} +1 -1
  19. package/dist/assets/{ModelAssetDocument-LaxI9WmK.js → ModelAssetDocument-BuH5TXMy.js} +1 -1
  20. package/dist/assets/{NonThreeAuthoringBootstrap-CF8CTebO.js → NonThreeAuthoringBootstrap-CGG_oev2.js} +1 -1
  21. package/dist/assets/{Object3DDocumentToolbar-DuIoq7fU.js → Object3DDocumentToolbar-DzOa0MS0.js} +1 -1
  22. package/dist/assets/Object3DDocumentViewport-C40xKIJD.js +2 -0
  23. package/dist/assets/{Object3DPreview-B_ANkPKE.js → Object3DPreview-CKQ1KIx8.js} +1 -1
  24. package/dist/assets/{OnlineAssetDetail-CaOrOE0S.js → OnlineAssetDetail-CbL2a4y5.js} +1 -1
  25. package/dist/assets/{PlayBar-Dzo4R0J2.js → PlayBar-D5IYibD2.js} +1 -1
  26. package/dist/assets/{QuarksAssetDocument-CVmt0kO7.js → QuarksAssetDocument-BF6EI6Uu.js} +1 -1
  27. package/dist/assets/{ReactCanvasControls-Yy7lDDGh.js → ReactCanvasControls-N8mnfQ7L.js} +1 -1
  28. package/dist/assets/{RootSelectionOverlay-Dp_5Fvtk.js → RootSelectionOverlay-MwydsqCP.js} +1 -1
  29. package/dist/assets/{ShaderAssetDocument-CiZbr5C3.js → ShaderAssetDocument-Dov33U4p.js} +1 -1
  30. package/dist/assets/{ShadowEditor-BguHMUKd.js → ShadowEditor-CAnkvnG7.js} +1 -1
  31. package/dist/assets/{SourceAssetViewer-BkFr48gO.js → SourceAssetViewer-CBWzh8PN.js} +1 -1
  32. package/dist/assets/{StageHost-DZp-rRbH.js → StageHost-BQE2Andh.js} +2 -2
  33. package/dist/assets/{StoryPreviewMount-HKw1njdj.js → StoryPreviewMount-ffSr6f2V.js} +1 -1
  34. package/dist/assets/{ThreeBoardDocument-CCeady99.js → ThreeBoardDocument-D2tVpmRM.js} +2 -2
  35. package/dist/assets/{ThreeIsolationSceneContent-sbN_YJtn.js → ThreeIsolationSceneContent-D3AkgyPd.js} +1 -1
  36. package/dist/assets/{ToolObject3DPreview-CmE-TNvg.js → ToolObject3DPreview-BBUepvqt.js} +1 -1
  37. package/dist/assets/{Toolbar-kDup5_pw.js → Toolbar-DradHOfY.js} +1 -1
  38. package/dist/assets/{TransientHint-o6sWgH4s.js → TransientHint-BYh124CI.js} +1 -1
  39. package/dist/assets/{VideoViewer-Dq40iKiu.js → VideoViewer-DFzfdlat.js} +1 -1
  40. package/dist/assets/{ViewportShadingMenu-D2jKmdYl.js → ViewportShadingMenu-Bgwv-ojb.js} +1 -1
  41. package/dist/assets/{active-ingest-Q82iAEb3.js → active-ingest-OwQi1wU2.js} +2 -2
  42. package/dist/assets/{animation-clock-D5eqc6lo.js → animation-clock-NMnEZeR6.js} +1 -1
  43. package/dist/assets/{animation-mixers.service-BZKgZZls.js → animation-mixers.service-BaNkZdZK.js} +1 -1
  44. package/dist/assets/{animation-timeline.utility-C_yRoXQK.js → animation-timeline.utility-B_yTDOtw.js} +1 -1
  45. package/dist/assets/{asset-budget-asset.menu-Bsr60xyh.js → asset-budget-asset.menu-HsA9f8Rf.js} +1 -1
  46. package/dist/assets/{asset-budget.action-BOOIEGVR.js → asset-budget.action-C9JhXwoQ.js} +1 -1
  47. package/dist/assets/{asset-budget.document-Bceo_j8t.js → asset-budget.document-BBjghhxS.js} +1 -1
  48. package/dist/assets/{asset-budget.menu-By3jKtnQ.js → asset-budget.menu-CNeKVzuN.js} +1 -1
  49. package/dist/assets/{asset-editor-persistence-DNrY7V3x.js → asset-editor-persistence-B6AwoID4.js} +1 -1
  50. package/dist/assets/{asset-loaders-DxqTlglx.js → asset-loaders-CvFbBNk5.js} +1 -1
  51. package/dist/assets/{asset-preview-iZ2bmCzx.js → asset-preview-B-UHTAVy.js} +1 -1
  52. package/dist/assets/{audio-unlock.service-ClHyUMKW.js → audio-unlock.service-CL5_a6ru.js} +1 -1
  53. package/dist/assets/{audio.utility-CqrQyMaI.js → audio.utility-DzLS3QwP.js} +1 -1
  54. package/dist/assets/autoplay.service-Cn9x6qdk.js +1 -0
  55. package/dist/assets/{babylon-authoring-adapter-B1pHkUFS.js → babylon-authoring-adapter-DBDw_8of.js} +1 -1
  56. package/dist/assets/{binding-resolver-YLZHNaJq.js → binding-resolver-DfUFoIdA.js} +2 -2
  57. package/dist/assets/{blender-emscripten-engine-BZ5Kbnzg.js → blender-emscripten-engine-DOovVqbG.js} +1 -1
  58. package/dist/assets/{blender-node-editor.document-DphVpqqw.js → blender-node-editor.document-DrhXAm5t.js} +1 -1
  59. package/dist/assets/{blender-properties-tab-DApsjUft.js → blender-properties-tab-aKKbSTiu.js} +1 -1
  60. package/dist/assets/blender-runtime-host-CAi_I7p4.js +7 -0
  61. package/dist/assets/{blender-runtime-skin-CRU3Mf-a.js → blender-runtime-skin-BL8Bt4al.js} +1 -1
  62. package/dist/assets/{blender-runtime.document-Bx_JO9z4.js → blender-runtime.document-Be-HHxIi.js} +1 -1
  63. package/dist/assets/{blender-screenshot.menu-BWfVKGDX.js → blender-screenshot.menu-_KaVhtpX.js} +1 -1
  64. package/dist/assets/{blender-timeline.document-CCgZPfx3.js → blender-timeline.document-COGHP-8s.js} +1 -1
  65. package/dist/assets/{blender-uv-editor.document-8JTVFUAe.js → blender-uv-editor.document-CfkrRRXy.js} +1 -1
  66. package/dist/assets/{blender-version.status-M8QtDJXt.js → blender-version.status-YSeY8Xgv.js} +1 -1
  67. package/dist/assets/{blender-wali-engine-BR_7xG5U.js → blender-wali-engine-m92Rao9b.js} +1 -1
  68. package/dist/assets/{blender.command-C_KbzJOc.js → blender.command-BUDOweup.js} +1 -1
  69. package/dist/assets/{board-guides-DB-_0OH3.js → board-guides-D1_vqIjE.js} +1 -1
  70. package/dist/assets/{bridge.command-D3peP6ym.js → bridge.command-Q8r-REHS.js} +3 -3
  71. package/dist/assets/{browserAll-DvWyKnxX.js → browserAll-sDfLeEo4.js} +1 -1
  72. package/dist/assets/{build-player.document-NmBz26Jm.js → build-player.document-BP1foVez.js} +1 -1
  73. package/dist/assets/{build-profiles.document-L7w6EhTA.js → build-profiles.document-BLkANcgy.js} +1 -1
  74. package/dist/assets/{build-progress.status-BYEYC1Io.js → build-progress.status-aew2nCwQ.js} +1 -1
  75. package/dist/assets/{build-session-DEBrQcow.js → build-session-QPGnfc8_.js} +1 -1
  76. package/dist/assets/{build.action-DwIHAbMa.js → build.action-DbsUhR0h.js} +1 -1
  77. package/dist/assets/{build.command-wNHLjsBX.js → build.command-T3R0G4zY.js} +1 -1
  78. package/dist/assets/{build.header-D9Ug81xb.js → build.header-BJld0xQX.js} +1 -1
  79. package/dist/assets/{build.menu-C2MD0n3m.js → build.menu-DK2-m5Sd.js} +1 -1
  80. package/dist/assets/{build.service-Bac9DBLO.js → build.service-zGgv3a6V.js} +1 -1
  81. package/dist/assets/{camera-CLsSJUi7.js → camera-CzPogR22.js} +1 -1
  82. package/dist/assets/{camera-runtime.inspector-Bo0hUl-m.js → camera-runtime.inspector-DrEocezO.js} +1 -1
  83. package/dist/assets/{canvas-design-mount-DcG1WfnR.js → canvas-design-mount-CQkL5wVK.js} +3 -3
  84. package/dist/assets/{canvas-entry-runtime-DA7kJ6hf.js → canvas-entry-runtime-B0t6FIl8.js} +2 -2
  85. package/dist/assets/{canvas-preview-frames-CLGSa4L5.js → canvas-preview-frames-DJmgjKpm.js} +1 -1
  86. package/dist/assets/{canvas-story-capture.service-DvcaYBOi.js → canvas-story-capture.service-B6HRp4Al.js} +2 -2
  87. package/dist/assets/{capability-coverage-BXlQHCWT.js → capability-coverage-BMpOdSTg.js} +1 -1
  88. package/dist/assets/{collaboration-presence-BhtPXIp-.js → collaboration-presence-DBgevks5.js} +1 -1
  89. package/dist/assets/{collider-BH4EZbId.js → collider-Ds9xpoEt.js} +1 -1
  90. package/dist/assets/{component-board.service-BvXTY4G6.js → component-board.service-B8ePqR_F.js} +2 -2
  91. package/dist/assets/{component-board.service-CX2TeHoC.js → component-board.service-BEp_pMBF.js} +2 -2
  92. package/dist/assets/{component-board.service-D0RH1uYQ.js → component-board.service-Bdl-AaPy.js} +2 -2
  93. package/dist/assets/{component-contracts.service-x34EpkP2.js → component-contracts.service-brlBfCxz.js} +1 -1
  94. package/dist/assets/{component-instance-root-UCmpJgqI.js → component-instance-root-B5BfGdnt.js} +1 -1
  95. package/dist/assets/{component-verbs.command-BFlhFyzY.js → component-verbs.command-CF5svJXI.js} +1 -1
  96. package/dist/assets/{component-verbs.service-BDV8JvoK.js → component-verbs.service-BgFc6_Sp.js} +1 -1
  97. package/dist/assets/{config-BcBCjryG.js → config-B_bow8n4.js} +2 -2
  98. package/dist/assets/{configurations-BJPY-HMO.js → configurations-CHFyGmDI.js} +1 -1
  99. package/dist/assets/{connection.status-DbfUmDVh.js → connection.status-DwxeUdvu.js} +1 -1
  100. package/dist/assets/{constraints.inspector-A8e_1zUz.js → constraints.inspector-CjM_NN35.js} +1 -1
  101. package/dist/assets/{content-bounds-C4ugwGOT.js → content-bounds-B1oiinxO.js} +1 -1
  102. package/dist/assets/{contract-system-adapters-Bkq2DMzn.js → contract-system-adapters-CI2vuspF.js} +1 -1
  103. package/dist/assets/{coverage.service-f87J5xWK.js → coverage.service-BC_p3oT6.js} +1 -1
  104. package/dist/assets/{create-runtime-D8NRoBkQ.js → create-runtime-DnWgeeXm.js} +1 -1
  105. package/dist/assets/{curve-CkcfsSkR.js → curve-CqGPvcv5.js} +1 -1
  106. package/dist/assets/{data-asset-P9lafYzF.js → data-asset-DysZpjxs.js} +1 -1
  107. package/dist/assets/{data-ref-pcsntK3B.js → data-ref-CpeNHUAS.js} +1 -1
  108. package/dist/assets/{debug-bridge-Dt1Trlpv.js → debug-bridge-C11lW4bU.js} +1 -1
  109. package/dist/assets/{debug-registry-C3V4MVoF.js → debug-registry-BUrxqM8q.js} +1 -1
  110. package/dist/assets/{deferred-ingest-play-Bop11u0l.js → deferred-ingest-play-Pu1midXi.js} +2 -2
  111. package/dist/assets/{design-time-canvas-mount-B90ADnjW.js → design-time-canvas-mount-TRHTxn72.js} +2 -2
  112. package/dist/assets/{design-time-layers-BQDaW7EI.js → design-time-layers-aG_eVn9e.js} +1 -1
  113. package/dist/assets/{design-time-mount.service-C39v0RF6.js → design-time-mount.service-DJPea29D.js} +2 -2
  114. package/dist/assets/{design-time-mount.service-CUpwGJwO.js → design-time-mount.service-vxQP3BqL.js} +2 -2
  115. package/dist/assets/{design-time-react-mount-vCP8e4tw.js → design-time-react-mount-ChxYjfQE.js} +1 -1
  116. package/dist/assets/{document-preview-three-i1E6e3Ok.js → document-preview-three-BAEH4qJJ.js} +1 -1
  117. package/dist/assets/{dom-authoring-adapter-Ce5Iz8bZ.js → dom-authoring-adapter-DiB_ur5X.js} +1 -1
  118. package/dist/assets/{draco3d-NzqAmSO0.js → draco3d-CnfBciy9.js} +1 -1
  119. package/dist/assets/{edit-mode-audio.service-BHD9Q1UQ.js → edit-mode-audio.service-BIYK9EMX.js} +1 -1
  120. package/dist/assets/{edit-mode-authoring-C0UhNLLd.js → edit-mode-authoring-BpOCBtRZ.js} +1 -1
  121. package/dist/assets/{edit-mode-networking.service-xYASuk7t.js → edit-mode-networking.service-Bs-EUCvr.js} +1 -1
  122. package/dist/assets/{editor-api-DPUFJW7s.js → editor-api-BbJjTHb-.js} +1 -1
  123. package/dist/assets/{editor-layers-Bd5inCLL.js → editor-layers-Di-Sxkb4.js} +1 -1
  124. package/dist/assets/{editor-shell-store-BdMWnAM1.js → editor-shell-store-DToX9C1w.js} +1 -1
  125. package/dist/assets/{entity-object-CI_i7nMS.js → entity-object-CvJ7cBnl.js} +1 -1
  126. package/dist/assets/{extend-DK68WKzq.js → extend-Spkd5La6.js} +1 -1
  127. package/dist/assets/{fork-menu-BUZC3uKn.js → fork-menu-CrLcBlUS.js} +1 -1
  128. package/dist/assets/{frame-debugger-store-BwdNIwA3.js → frame-debugger-store-ZXELq7Sw.js} +1 -1
  129. package/dist/assets/{game-contract-seams-Bcodat_B.js → game-contract-seams-RMTHm5pd.js} +1 -1
  130. package/dist/assets/{game-css-scope-transform-BTQmX5F2.js → game-css-scope-transform-BnXCYTQq.js} +1 -1
  131. package/dist/assets/{game-document.service-C_G1Q8r0.js → game-document.service-BWTs51yz.js} +1 -1
  132. package/dist/assets/{game-eval.command-CqZLmUnJ.js → game-eval.command-B-fkb9B7.js} +1 -1
  133. package/dist/assets/{game-module-access-BiVb1yT-.js → game-module-access-CjJpYwTG.js} +1 -1
  134. package/dist/assets/{game-network-3ao6tMqL.js → game-network-BPFXnsMB.js} +3 -3
  135. package/dist/assets/{gameplay-export-C6atDkGJ.js → gameplay-export-CKXF61ot.js} +1 -1
  136. package/dist/assets/{gameplay-replay-ab9AQm0d.js → gameplay-replay-DmxzPNcF.js} +1 -1
  137. package/dist/assets/{gameplay.command-CGeaJywm.js → gameplay.command-wUNlfL6T.js} +1 -1
  138. package/dist/assets/{generation-jobs-Cwvh-4hH.js → generation-jobs-CICFuGNY.js} +1 -1
  139. package/dist/assets/{generation.service-Chx1W4us.js → generation.service-BfYJsdqm.js} +1 -1
  140. package/dist/assets/{generations-esszvxzg.js → generations-DH_O5Lew.js} +1 -1
  141. package/dist/assets/{generations.status-HQLLxUyl.js → generations.status-BLngol5q.js} +1 -1
  142. package/dist/assets/{hierarchy-marks-C_SAqfl_.js → hierarchy-marks-CDIrCtK7.js} +1 -1
  143. package/dist/assets/{hosted-asset-materialization-sYtoEePz.js → hosted-asset-materialization-C0-58jgj.js} +1 -1
  144. package/dist/assets/{index-B5Y3GmxC.js → index-2skV9cWR.js} +1 -1
  145. package/dist/assets/{index-CrSEVMFR.js → index-BXVB2CCJ.js} +8 -8
  146. package/dist/assets/{index-CCrLKEMW.js → index-Cm23IIsy.js} +1 -1
  147. package/dist/assets/{index-tBoueKG2.js → index-DxPXoAEa.js} +1 -1
  148. package/dist/assets/{index-DsIvj_xf.js → index-KLCk86kp.js} +2 -2
  149. package/dist/assets/{index-B-gIbto2.js → index-OSyT3g5i.js} +1 -1
  150. package/dist/assets/{index-Dm-KsR2a.js → index-emt5RtDN.js} +1 -1
  151. package/dist/assets/{index-DHOTO9KY.js → index-fAvZ5TX8.js} +1 -1
  152. package/dist/assets/{index-DgGy7LIL.js → index-lVvSBt-F.js} +1 -1
  153. package/dist/assets/{inference-diagnostics-67Y6Zp9S.js → inference-diagnostics-CJEVHw4r.js} +1 -1
  154. package/dist/assets/{ingest-boot-viewport-XRWLGk_e.js → ingest-boot-viewport-y0bXLVn5.js} +1 -1
  155. package/dist/assets/{ingest-siblings-BNPuPtW7.js → ingest-siblings-DRbw9wlK.js} +1 -1
  156. package/dist/assets/{ingest-source-persistence-BVSCqkVC.js → ingest-source-persistence-CDk8QnEz.js} +1 -1
  157. package/dist/assets/{ingest.service-C9aZ0wMo.js → ingest.service-Djhwt3md.js} +1 -1
  158. package/dist/assets/{inspect-CfMfNK1D.js → inspect-D11YCyvL.js} +1 -1
  159. package/dist/assets/instances.command-BYjIsB6s.js +1 -0
  160. package/dist/assets/{json-history-resource-DLwO5ELy.js → json-history-resource-BjxiSBwH.js} +1 -1
  161. package/dist/assets/{layered-pick-Y9hhSqmY.js → layered-pick-D1bPiejF.js} +1 -1
  162. package/dist/assets/{light-Bv2vzuG0.js → light-2wT5NDWa.js} +1 -1
  163. package/dist/assets/{live-project-verbs-BKUzU6ux.js → live-project-verbs-BOojwbU5.js} +1 -1
  164. package/dist/assets/{machine.document-QL_7rnzA.js → machine.document-BeIZE4p7.js} +1 -1
  165. package/dist/assets/{machines.finder-UUJt_Zbz.js → machines.finder-D9ImanFI.js} +1 -1
  166. package/dist/assets/{material-WBxNs2RT.js → material-BbmFLNh4.js} +1 -1
  167. package/dist/assets/{material-factory-Dqh3jpuv.js → material-factory-EOVCyE5v.js} +1 -1
  168. package/dist/assets/{mesh-DW9TXIXE.js → mesh-B7mkXP1n.js} +1 -1
  169. package/dist/assets/{model-asset-sections.service-BFPVUOsk.js → model-asset-sections.service-DQuUrJqa.js} +1 -1
  170. package/dist/assets/{model-inspection-Dx4XKVIm.js → model-inspection-D-91nWIA.js} +1 -1
  171. package/dist/assets/{model-thumbnail-C5nDSTym.js → model-thumbnail-cXQYT6FJ.js} +1 -1
  172. package/dist/assets/{models.finder-CmYOkbIm.js → models.finder-DCL3T1sC.js} +1 -1
  173. package/dist/assets/{module-mode-c-k_CkKL.js → module-mode-DeRqXLY_.js} +2 -2
  174. package/dist/assets/{mount-canvas-ingest-root-CjXz4ylH.js → mount-canvas-ingest-root-C9ga6Jlt.js} +2 -2
  175. package/dist/assets/{mount-dom-ingest-root-DA_hgw0F.js → mount-dom-ingest-root-C6EokmvO.js} +2 -2
  176. package/dist/assets/{mount-ingest-root-ChRWojos.js → mount-ingest-root-CItPPhBw.js} +2 -2
  177. package/dist/assets/{mount-manifest-C4pNLspf.js → mount-manifest-DhkcL_wI.js} +1 -1
  178. package/dist/assets/{mount-three-ingest-root-BBg6wa3j.js → mount-three-ingest-root-MskuDjok.js} +1 -1
  179. package/dist/assets/{mounted-authoring-cW3r4S-Q.js → mounted-authoring-19FVLQog.js} +1 -1
  180. package/dist/assets/{mounted-story-viewport-source-B-SdCvkL.js → mounted-story-viewport-source-BNd5ADqn.js} +1 -1
  181. package/dist/assets/{native-debug-module-B7s4NTAc.js → native-debug-module-CZZTGl7D.js} +1 -1
  182. package/dist/assets/{navigation-DtXcIK-2.js → navigation-CHes-GFg.js} +1 -1
  183. package/dist/assets/{navmesh.menu-DdM5y7tE.js → navmesh.menu-DZgduW-s.js} +1 -1
  184. package/dist/assets/{navmesh.service-BKv0HbwH.js → navmesh.service-CcRyX5mz.js} +1 -1
  185. package/dist/assets/network-observer.service-Bj9AQlzw.js +1 -0
  186. package/dist/assets/{network.utility-A8yPx0mo.js → network.utility-Oqqx9LjL.js} +1 -1
  187. package/dist/assets/{object3d-document-session-registry-8J8MV7kY.js → object3d-document-session-registry-BDr1NgeR.js} +2 -2
  188. package/dist/assets/{oid-transform-DiOwb8k9.js → oid-transform-DZPcPm0C.js} +1 -1
  189. package/dist/assets/{particles-BoWiwD4Z.js → particles-CigJXTCH.js} +1 -1
  190. package/dist/assets/{pixi-authoring-adapter-DPSiZXyj.js → pixi-authoring-adapter-CF67LGDH.js} +1 -1
  191. package/dist/assets/{pixi-live-write-target-CRWuPcNV.js → pixi-live-write-target-D-w4D37i.js} +1 -1
  192. package/dist/assets/{play.command-B9iYkfxt.js → play.command-BPJQFNt3.js} +2 -2
  193. package/dist/assets/{presentation-CFfCApho.js → presentation-Djf9ZyxE.js} +1 -1
  194. package/dist/assets/{product-CojLnJ5s.js → product-KaWAfP5B.js} +1 -1
  195. package/dist/assets/{profiler.action-DFdFNXLa.js → profiler.action-D6x3d4ce.js} +1 -1
  196. package/dist/assets/{profiler.menu-CjufQRwB.js → profiler.menu-DfH-uyfU.js} +1 -1
  197. package/dist/assets/{profiler.utility-C-jasrF2.js → profiler.utility-BeRQ67Ng.js} +1 -1
  198. package/dist/assets/{project-authoring-session-ChKOndIf.js → project-authoring-session-DU1h_iyK.js} +2 -2
  199. package/dist/assets/{properties-bone-constraints.inspector-CHXlNXdX.js → properties-bone-constraints.inspector-CNdANgzl.js} +1 -1
  200. package/dist/assets/{properties-bone.inspector-Dbw5z58t.js → properties-bone.inspector-BWec1rav.js} +1 -1
  201. package/dist/assets/{properties-collection.inspector-B4ZpBCPk.js → properties-collection.inspector-2_ncyxd3.js} +1 -1
  202. package/dist/assets/{properties-constraints.inspector-Dx-KHIpp.js → properties-constraints.inspector-DEzDMVqM.js} +1 -1
  203. package/dist/assets/{properties-data.inspector-Bky4U3mA.js → properties-data.inspector-BP0qny28.js} +1 -1
  204. package/dist/assets/{properties-material.inspector-CpVlss0g.js → properties-material.inspector-BrvIkV-4.js} +1 -1
  205. package/dist/assets/{properties-modifiers.inspector-gAKPL-6i.js → properties-modifiers.inspector-Cp2SABm-.js} +1 -1
  206. package/dist/assets/{properties-object.inspector-DLjj2NMn.js → properties-object.inspector-D2PsrcBN.js} +1 -1
  207. package/dist/assets/{properties-output.inspector-BJ7_P3ow.js → properties-output.inspector-CTM1xlm0.js} +1 -1
  208. package/dist/assets/{properties-particles.inspector-DdkywdxT.js → properties-particles.inspector-DnDAHnyn.js} +1 -1
  209. package/dist/assets/{properties-physics.inspector-C-4rMTfo.js → properties-physics.inspector-CHPrmGxj.js} +1 -1
  210. package/dist/assets/{properties-render.inspector-Ci5nXQqE.js → properties-render.inspector-Cf8wz8Mb.js} +1 -1
  211. package/dist/assets/{properties-scene.inspector-BjXtLuq8.js → properties-scene.inspector-DMZkSReH.js} +1 -1
  212. package/dist/assets/{properties-texture.inspector-Dn8_fMFE.js → properties-texture.inspector-Byv4_ZAr.js} +1 -1
  213. package/dist/assets/{properties-view-layer.inspector-21mDuc-K.js → properties-view-layer.inspector-CecBjcop.js} +1 -1
  214. package/dist/assets/{properties-world.inspector-3QcZcz8x.js → properties-world.inspector-CkMw1QwO.js} +1 -1
  215. package/dist/assets/{r3f-design-session-Bp4uF_xC.js → r3f-design-session-CX2aKIPx.js} +2 -2
  216. package/dist/assets/{r3f-physics-binding-C00jziqf.js → r3f-physics-binding-DKJjSbrS.js} +1 -1
  217. package/dist/assets/{r3f-source-authoring-adapter-BHO2pIuy.js → r3f-source-authoring-adapter-zJJ0KIdd.js} +1 -1
  218. package/dist/assets/{react-canvas-navigation-DaTy6huF.js → react-canvas-navigation-DJBlLwSn.js} +1 -1
  219. package/dist/assets/{react-inspector.service-BZE520wI.js → react-inspector.service-B8R9PzCT.js} +1 -1
  220. package/dist/assets/{react-story-board-CbN5Bv08.js → react-story-board-CZiQwIjp.js} +1 -1
  221. package/dist/assets/{react-three-rapier.esm-Due_gxxT.js → react-three-rapier.esm-CaDeXd_O.js} +1 -1
  222. package/dist/assets/{react-world-authoring-adapter-C6eAu9hV.js → react-world-authoring-adapter-CJZvLLTb.js} +1 -1
  223. package/dist/assets/{realm-services-BWk8RE9O.js → realm-services-B3fBgPfS.js} +1 -1
  224. package/dist/assets/{reflection-probe-capture.inspector-DGIL6wWp.js → reflection-probe-capture.inspector-Cz1LpjWg.js} +1 -1
  225. package/dist/assets/{registry-DROjGgI4.js → registry-YMhNlE_v.js} +1 -1
  226. package/dist/assets/{relative-import-specifier-C-XtSJhB.js → relative-import-specifier-C9qPPniQ.js} +1 -1
  227. package/dist/assets/{render-env-DIbpSL73.js → render-env-DvbgSP_d.js} +1 -1
  228. package/dist/assets/{render-features-BwqBEtgv.js → render-features-I7WI6sPB.js} +1 -1
  229. package/dist/assets/{render-settings-C9PxQ38M.js → render-settings-CFDezcHc.js} +1 -1
  230. package/dist/assets/{resolve-three-CE55-5T0.js → resolve-three-1713hydJ.js} +3 -3
  231. package/dist/assets/{root-seam-contract-DDQXrsKH.js → root-seam-contract-CRzr6ELF.js} +1 -1
  232. package/dist/assets/{run-selection-BBlZohSu.js → run-selection-Bp_JGqbH.js} +1 -1
  233. package/dist/assets/{scene-capture-CqVjWJ6c.js → scene-capture-DF4ler-B.js} +1 -1
  234. package/dist/assets/{scene-document.service-De3opzOn.js → scene-document.service-CBfYD1wm.js} +2 -2
  235. package/dist/assets/{scene-framing-CcCZI6Ad.js → scene-framing-Dvl_HllI.js} +1 -1
  236. package/dist/assets/{seeded-random-CFqSTJUi.js → seeded-random-DvO5_b-V.js} +1 -1
  237. package/dist/assets/{setup-renderer-2JkxelR5.js → setup-renderer-C19l3QPP.js} +1 -1
  238. package/dist/assets/{source-object3d-authoring-adapter-IEcVVMKW.js → source-object3d-authoring-adapter-DqyeA5Gi.js} +1 -1
  239. package/dist/assets/{source-persistence-backend-BVFsxRMY.js → source-persistence-backend-DUcIwEKt.js} +1 -1
  240. package/dist/assets/{stage-keyboard-B70Z63Yv.js → stage-keyboard-BxDJo5L6.js} +1 -1
  241. package/dist/assets/{stage-overlay-set-DThD2FKD.js → stage-overlay-set-BFQNONVA.js} +1 -1
  242. package/dist/assets/{stage-presence-markers-oD0_iT1k.js → stage-presence-markers-tP7LbyL4.js} +1 -1
  243. package/dist/assets/{stage-transform-tools-hH0r9k6D.js → stage-transform-tools-BOb4Jvpf.js} +1 -1
  244. package/dist/assets/{standard-viewport-dressing-DrZm0pu0.js → standard-viewport-dressing-CPhcdhes.js} +1 -1
  245. package/dist/assets/{state-watch.action-DnNh0IQU.js → state-watch.action-COw8ciff.js} +1 -1
  246. package/dist/assets/{state-watch.menu-C9BsBNL6.js → state-watch.menu-Bp1yK6NN.js} +1 -1
  247. package/dist/assets/{state-watch.utility-CV_qW1Si.js → state-watch.utility-A8u6pD1W.js} +1 -1
  248. package/dist/assets/{story-capture-BF-PZG7Y.js → story-capture-BeOmBW8F.js} +1 -1
  249. package/dist/assets/{story-documents-yf-qVMDr.js → story-documents-CH6KQEcx.js} +1 -1
  250. package/dist/assets/{story-documents.service-Bhx7qJW8.js → story-documents.service-BSHA9ubk.js} +1 -1
  251. package/dist/assets/{story-documents.service-Cd1sR0kH.js → story-documents.service-CMfiTOnL.js} +1 -1
  252. package/dist/assets/{story-media-presence-BZileynO.js → story-media-presence-2bXhsyvN.js} +1 -1
  253. package/dist/assets/{story-pixi-preview-DEQ-3uPz.js → story-pixi-preview-B0SVQDjm.js} +1 -1
  254. package/dist/assets/{story-presentation-GoH-7iRD.js → story-presentation-D5JgJ2Ki.js} +1 -1
  255. package/dist/assets/{story-three-preview-CXE25Utk.js → story-three-preview-C41-INUA.js} +2 -2
  256. package/dist/assets/{studio-environment-Cw4jEHiK.js → studio-environment-B-4SKPDH.js} +1 -1
  257. package/dist/assets/{surface-state-CTj5BPl-.js → surface-state-ykoiBqgs.js} +1 -1
  258. package/dist/assets/{syntactic-prop-specs-CTcziFgm.js → syntactic-prop-specs-BbyHOtID.js} +1 -1
  259. package/dist/assets/{team-playtest.service-B8ueCUqR.js → team-playtest.service-BDqzMOw-.js} +1 -1
  260. package/dist/assets/{three-C-akX1yo.js → three-68SmB1Ck.js} +1 -1
  261. package/dist/assets/{three-authoring-adapter-BxLX9INV.js → three-authoring-adapter-B_QRJiNW.js} +1 -1
  262. package/dist/assets/three-authoring.service-sjZ1wXZT.js +2 -0
  263. package/dist/assets/{three-ingest-runtime-DrLCOqXh.js → three-ingest-runtime-CKfIYjBZ.js} +1 -1
  264. package/dist/assets/{three-integration-CfOYmAdN.js → three-integration-Z5vJfmPY.js} +2 -2
  265. package/dist/assets/three-integration.service-ClW_z8pd.js +1 -0
  266. package/dist/assets/{three-projection-core-DdP-ui7t.js → three-projection-core-M9NSM8mB.js} +1 -1
  267. package/dist/assets/{three-state-CXKFmyYR.js → three-state-2djt5OHj.js} +1 -1
  268. package/dist/assets/{three-story-capture.service-CQmoP3Z4.js → three-story-capture.service-CDmLJAB0.js} +2 -2
  269. package/dist/assets/{three-story-model-CHVJeycQ.js → three-story-model-D7HjuDEG.js} +1 -1
  270. package/dist/assets/{three-viewport-presentation-DxV2i_rr.js → three-viewport-presentation-DZWRJPHj.js} +1 -1
  271. package/dist/assets/{transform-mode-request-Dk67tSVL.js → transform-mode-request-CuCY7Mob.js} +1 -1
  272. package/dist/assets/{transport-strip-DQzAGMnn.js → transport-strip-D-YT7L1X.js} +1 -1
  273. package/dist/assets/transport.header-Dzpy88_i.js +1 -0
  274. package/dist/assets/{tuples-C_e5gbTo.js → tuples-_sCcrfk4.js} +1 -1
  275. package/dist/assets/{ui-board-document-tG6PkTsN.js → ui-board-document-BZQYviLs.js} +2 -2
  276. package/dist/assets/{user-data-BzIrvxx3.js → user-data-Mb2RP3n0.js} +1 -1
  277. package/dist/assets/{utility-view-state-Br5lSx_o.js → utility-view-state-6FUa52WH.js} +1 -1
  278. package/dist/assets/{viewport-door-DUmu2YGB.js → viewport-door-DeUzmAvD.js} +1 -1
  279. package/dist/assets/{viewport-root-presentation-Dk5U1gNF.js → viewport-root-presentation-DXOA1mF_.js} +1 -1
  280. package/dist/assets/{viewport-surface-status-CEA59GGR.js → viewport-surface-status-CdpqFwwg.js} +1 -1
  281. package/dist/assets/{webworkerAll-CuFvEw6a.js → webworkerAll-CgDZxHvP.js} +1 -1
  282. package/dist/assets/worker-DUIHhopS.js +2 -0
  283. package/dist/assets/{workspace-arrangement-fQQvrX1V.js → workspace-arrangement--rzUYvPc.js} +1 -1
  284. package/dist/assets/{world-documents-6G1mqnrX.js → world-documents-CLXtIOlf.js} +1 -1
  285. package/dist/assets/{world-root-stage-binding-CNbPw_ln.js → world-root-stage-binding-gRhxHhxP.js} +1 -1
  286. package/dist/assets/{xstate-animation-binding-ChHLmMaN.js → xstate-animation-binding-BIE8WxFb.js} +1 -1
  287. package/dist/assets/{xstate-animation-meta-B101vEgv.js → xstate-animation-meta-BGdNFaQy.js} +1 -1
  288. package/dist-node/cli.js +16 -16
  289. package/package.json +16 -16
  290. package/dist/assets/InspectorObjectPreview-BENEh7m_.js +0 -1
  291. package/dist/assets/Object3DDocumentViewport-ByL6KT-l.js +0 -2
  292. package/dist/assets/autoplay.service-DUDABbir.js +0 -1
  293. package/dist/assets/blender-runtime-host-IHYN6s2W.js +0 -7
  294. package/dist/assets/instances.command-DeTuDg64.js +0 -1
  295. package/dist/assets/network-observer.service-BFBPM32t.js +0 -1
  296. package/dist/assets/three-authoring.service-C_jQDJ8e.js +0 -2
  297. package/dist/assets/three-integration.service-CC8yMzaN.js +0 -1
  298. package/dist/assets/transport.header-D9RKfpRK.js +0 -1
  299. package/dist/assets/worker-COx0p1F-.js +0 -2
@@ -1 +1 @@
1
- import{a as i}from"./jsx-runtime-DPjLkJKQ.js";import{go as Ce}from"./index-CrSEVMFR.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-IHYN6s2W.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-C4ugwGOT.js";import"./hierarchy-marks-C_SAqfl_.js";import"./workspace-arrangement-fQQvrX1V.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{go as Ce}from"./index-BXVB2CCJ.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-CAi_I7p4.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-B1oiinxO.js";import"./hierarchy-marks-CDIrCtK7.js";import"./workspace-arrangement--rzUYvPc.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,3 +1,3 @@
1
- import{a as r}from"./jsx-runtime-DPjLkJKQ.js";import{r as H}from"./index-CrSEVMFR.js";import{k as ue,l as Z,m as q,o as de,p as fe,s as pe,q as he,t as xe}from"./blender-runtime-host-IHYN6s2W.js";import{r as b}from"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";import{a as ge,h as ye,t as be,p as je}from"./ColorPicker-BEP19KUH.js";const me=e=>typeof e=="object"&&e!==null&&typeof e.subscribeFrames=="function"&&typeof e.blenderObjectName=="function",ve=e=>typeof e=="object"&&e!==null&&typeof e.documentId=="string"&&typeof e.hierarchy?.object3D=="function";function J(){const e=H().documents.context(Z());return me(e)?e:null}function Q(e,t){if(e===null||!ve(t))return null;const n=J();if(n===null)return null;if(e.id===t.documentId)return t.documentRootObject===n.root?{kind:"scene"}:null;const i=ue().byId.get(e.id);if(i?.type==="TSE_LAYER_COLLECTION")return{kind:"collection",path:i.path};const o=t.hierarchy.object3D(e.id);if(o===null)return null;if(o===n.root)return{kind:"scene"};const l=n.blenderObjectName(o);return l===null?null:{kind:"object",name:l}}let N={object:null,collection:null,context:null,views:new Map,error:null,loading:!1},ee=0;const D=new Set;let U=null;const E=new Set;let I=null,j=0,_=0;const T=new Set;function y(e,t=!1){N={...N,...e},ee+=1;for(const n of[...D])n();t&&H().documents.contextChanged(Z())}function Se(e){return D.add(e),()=>{D.delete(e)}}function V(){return ee}function B(){return N}function Ae(){const e=I;j+=1,E.clear(),T.clear(),e!==null?te(e,!0):y({})}pe(()=>{Ae()});let M=null;function te(e,t=!1){M!==e&&(M=e,setTimeout(()=>{M===e&&(M=null,Ne(e,t))},0))}function Ee(e){return e.kind==="scene"?"":e.kind==="collection"?`collection:${e.path}`:e.name}function Oe(){if(U!==null)return;const e=J();e!==null&&(U=e.subscribeFrames(de))}async function Ne(e,t=!1){const n=e.startsWith("collection:")?e.slice(11):null,i=n===null&&e!==""?e:null,o=t&&I===e;I!==e&&(j+=1,E.clear(),T.clear());const l=j,c=++_;I=e;const a=o?N.context:null;o||y({loading:!0,object:i,collection:n,context:null,error:null,views:new Map});try{const s=await fe(i??void 0,n??void 0);if(l!==j||c!==_)return;if(o&&JSON.stringify(s)===JSON.stringify(a)){y({loading:!1,error:null});return}y({context:s,loading:!1,error:null},!0)}catch(s){if(l!==j||c!==_)return;y({context:null,loading:!1,error:W(s)},!0)}}function ne(e){if(!q())return;Oe();const t=Ee(e);I!==t&&te(t)}function R(e){const t=N.views.get(e);if(t!==void 0&&T.has(e)||E.has(e)||!q())return t;E.add(e);const n=j;return he(e).then(i=>{if(n!==j||(E.delete(e),T.add(e),i===null))return;const o=new Map(N.views);o.set(e,i),y({views:o,error:null})}).catch(i=>{n===j&&(E.delete(e),y({error:W(i)}))}),t}async function Re(e,t,n,i){try{return await xe(e,t,n,i),T.delete(e),y({error:null}),!0}catch(o){return y({error:W(o)}),!1}}function W(e){return e instanceof Error?e.message:String(e)}const C=20,K=2,Ce="40%",$e=25,X=20,v=8,Le=4,G=8,p=11,g=.5,x="#e6e6e6",Ie="#3d3d3d",Te="#ffffff11",ke="rgba(0,0,0,0.12)",Me="#545454",Pe="#3d3d3d",Be="#4772b3",ie="#991616",_e=8,Fe=6,De=e=>Math.round(e*.2),re=e=>e.filter(t=>t.hidden!==!0&&t.undrawn!==!0);function k(){return b.useSyncExternalStore(Se,V,V)}function h({title:e,sub:t=!1,closed:n=!1,note:i,count:o,children:l}){const[c,a]=b.useState(!n);return r.jsxs("div",{style:{marginBottom:v,borderRadius:Le,boxShadow:t?"none":`inset 0 0 0 1px ${Te}`,background:t?ke:"transparent",overflow:"hidden"},children:[r.jsxs("button",{type:"button",onClick:()=>a(!c),style:{display:"flex",alignItems:"center",width:"100%",height:$e,background:t?"transparent":Ie,border:"none",padding:`0 ${G}px 0 ${t?X+14-20:0}px`,color:x,font:`${p}px inherit`,textAlign:"left",cursor:"pointer",gap:Fe},children:[r.jsx("span",{"aria-hidden":"true",style:{width:X-8,textAlign:"center",fontSize:_e,opacity:.85},children:c?"▼":"▶"}),r.jsx("span",{style:{fontWeight:400},title:i,children:e}),o===void 0?null:r.jsx("span",{style:{opacity:g,marginLeft:"auto"},children:o})]}),c?r.jsx("div",{style:{padding:v},children:l}):null]})}function O({label:e,title:t,readonly:n,identifier:i,children:o}){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:C,marginBottom:K,gap:G,opacity:n?g:1},title:t,children:[r.jsx("span",{style:{flex:`0 0 ${Ce}`,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:K},children:o})]})}const m={height:C,width:"100%",minWidth:0,boxSizing:"border-box",background:Me,border:`1px solid ${Pe}`,borderRadius:De(C),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=C-2*Math.floor((C-2)/6);function oe({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:o=>!t&&i(o.target.checked),style:{width:F,height:F,margin:`${(C-F)/2}px 0`,accentColor:Be,cursor:t?"default":"pointer"}})}function le({row:e,value:t,index:n,onWrite:i}){const[o,l]=b.useState(null),c=e.type==="FLOAT"?e.precision??3:0,a=o??(e.type==="FLOAT"?t.toFixed(c):String(t));return e.readonly?r.jsx(S,{children:a}):r.jsx("input",{type:"number","aria-label":$(e,n),value:a,...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=>l(s.target.value),onBlur:()=>{const s=Number(o);l(null),o!==null&&Number.isFinite(s)&&s!==t&&i(s,n)},onKeyDown:s=>{s.key==="Enter"&&s.target.blur(),s.key==="Escape"&&l(null)},style:m})}const ze=new Set(["TRANSLATION","DIRECTION","XYZ","XYZ_LENGTH","EULER","VELOCITY","ACCELERATION","COORDS"]);function se(e,t){if(e==="QUATERNION"||e==="AXISANGLE")return"WXYZ"[t];if(!(t>=4)){if(ze.has(e))return"XYZW"[t];if(e==="COLOR"||e==="COLOR_GAMMA")return"RGBA"[t]}}function $(e,t){const n=e.name||e.identifier;return t===void 0?n:`${n} ${se(e.subtype,t)??t}`}function ce(e,t){const n=i=>Math.max(0,Math.min(255,Math.round(Math.max(0,e[i]??0)**(t?1:.45454545454545453)*255)));return[n(0),n(1),n(2)]}function Y(e,t=!1){const[n,i,o]=ce(e,t);return`rgb(${n}, ${i}, ${o})`}function We(e,t,n){const i=u=>n?u/255:(u/255)**2.2,[o,l,c]=ye(be(e)).map(i),a=[o,l,c],s=/^(rgba|hsla)\(/i.test(e)||/^#[0-9a-f]{8}$/i.test(e);return t.length>3&&a.push(s?je(e):t[3]??1),a}function Ge({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":$(e),onClick:()=>t(i),style:{...m,cursor:"pointer",textAlign:"left"},title:i,children:n.name??n.type})}function we({row:e,write:t}){const n=e.items??[];if(e.isFlag){const o=e.value??[];return r.jsx(S,{children:o.length===0?"None":o.join(", ")})}const i=String(e.value??"");return e.readonly?r.jsx(S,{children:n.find(o=>o.identifier===i)?.name??i}):r.jsx("select",{"aria-label":$(e),value:i,onChange:o=>t(o.target.value),style:{...m,textAlign:"left"},children:n.map(o=>r.jsx("option",{value:o.identifier,children:o.name},o.identifier))})}function Ue({row:e,write:t}){const n=String(e.value??"");return e.readonly?r.jsx(S,{children:n}):r.jsx(He,{value:n,label:$(e),onWrite:i=>t(i)})}function Ve({row:e,write:t}){const n=e.value??[],i=e.subtype==="COLOR_GAMMA",[o,l]=b.useState(!1),[c,a,s]=ce(n,i),u=n.length>3?n[3]??1:1,f=u<1?`rgba(${c}, ${a}, ${s}, ${u.toFixed(2)})`:Y(n,i);return r.jsxs("span",{style:{position:"relative",display:"block"},children:[r.jsx("button",{type:"button","aria-label":e.name,"aria-expanded":o,disabled:e.readonly,onClick:()=>l(!o),style:{...m,background:Y(n,i),display:"block",width:"100%",cursor:e.readonly?"default":"pointer"},title:n.map(d=>d.toFixed(3)).join(", ")}),o?r.jsx("div",{style:{position:"absolute",zIndex:"var(--volter-z-dropdown)",top:"100%",right:0,marginTop:4},children:r.jsx(ge,{value:f,onChange:()=>{},onChangeEnd:d=>t(We(d,n,i)),onClose:()=>l(!1)})}):null]})}function Ke({row:e,label:t,title:n,write:i}){const o=e.value??[];return r.jsx(r.Fragment,{children:o.map((l,c)=>r.jsx(O,{label:Xe(t,c,e.subtype),title:n,readonly:e.readonly,identifier:`${e.identifier}[${c}]`,children:e.type==="BOOLEAN"?r.jsx(oe,{value:l===!0,readonly:e.readonly,label:$(e,c),onChange:a=>i(a,c)}):r.jsx(le,{row:e,value:Number(l),index:c,onWrite:(a,s)=>i(a,s)})},`${e.identifier}-${c}`))})}function Xe(e,t,n){const i=se(n,t);return i===void 0?t===0?e:`${e} ${t}`:`${t===0?`${e} `:""}${i}`}function Ye(e){const{row:t,write:n}=e;switch(t.type){case"POINTER":return r.jsx(Ge,{...e});case"ENUM":return r.jsx(we,{...e});case"STRING":return r.jsx(Ue,{...e});case"BOOLEAN":return r.jsx(oe,{value:t.value===!0,readonly:t.readonly,label:$(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=(u,f)=>void Re(t,e.identifier,u,f),o=e.name||e.identifier,l=`${e.identifier} — ${e.type}${e.subtype==="NONE"?"":`/${e.subtype}`}${e.readonly?" (read-only)":""}${e.description?`
1
+ import{a as r}from"./jsx-runtime-DPjLkJKQ.js";import{r as H}from"./index-BXVB2CCJ.js";import{k as ue,l as Z,m as q,o as de,p as fe,s as pe,q as he,t as xe}from"./blender-runtime-host-CAi_I7p4.js";import{r as b}from"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";import{a as ge,h as ye,t as be,p as je}from"./ColorPicker-CuKRMJx9.js";const me=e=>typeof e=="object"&&e!==null&&typeof e.subscribeFrames=="function"&&typeof e.blenderObjectName=="function",ve=e=>typeof e=="object"&&e!==null&&typeof e.documentId=="string"&&typeof e.hierarchy?.object3D=="function";function J(){const e=H().documents.context(Z());return me(e)?e:null}function Q(e,t){if(e===null||!ve(t))return null;const n=J();if(n===null)return null;if(e.id===t.documentId)return t.documentRootObject===n.root?{kind:"scene"}:null;const i=ue().byId.get(e.id);if(i?.type==="TSE_LAYER_COLLECTION")return{kind:"collection",path:i.path};const o=t.hierarchy.object3D(e.id);if(o===null)return null;if(o===n.root)return{kind:"scene"};const l=n.blenderObjectName(o);return l===null?null:{kind:"object",name:l}}let N={object:null,collection:null,context:null,views:new Map,error:null,loading:!1},ee=0;const D=new Set;let U=null;const E=new Set;let I=null,j=0,_=0;const T=new Set;function y(e,t=!1){N={...N,...e},ee+=1;for(const n of[...D])n();t&&H().documents.contextChanged(Z())}function Se(e){return D.add(e),()=>{D.delete(e)}}function V(){return ee}function B(){return N}function Ae(){const e=I;j+=1,E.clear(),T.clear(),e!==null?te(e,!0):y({})}pe(()=>{Ae()});let M=null;function te(e,t=!1){M!==e&&(M=e,setTimeout(()=>{M===e&&(M=null,Ne(e,t))},0))}function Ee(e){return e.kind==="scene"?"":e.kind==="collection"?`collection:${e.path}`:e.name}function Oe(){if(U!==null)return;const e=J();e!==null&&(U=e.subscribeFrames(de))}async function Ne(e,t=!1){const n=e.startsWith("collection:")?e.slice(11):null,i=n===null&&e!==""?e:null,o=t&&I===e;I!==e&&(j+=1,E.clear(),T.clear());const l=j,c=++_;I=e;const a=o?N.context:null;o||y({loading:!0,object:i,collection:n,context:null,error:null,views:new Map});try{const s=await fe(i??void 0,n??void 0);if(l!==j||c!==_)return;if(o&&JSON.stringify(s)===JSON.stringify(a)){y({loading:!1,error:null});return}y({context:s,loading:!1,error:null},!0)}catch(s){if(l!==j||c!==_)return;y({context:null,loading:!1,error:W(s)},!0)}}function ne(e){if(!q())return;Oe();const t=Ee(e);I!==t&&te(t)}function R(e){const t=N.views.get(e);if(t!==void 0&&T.has(e)||E.has(e)||!q())return t;E.add(e);const n=j;return he(e).then(i=>{if(n!==j||(E.delete(e),T.add(e),i===null))return;const o=new Map(N.views);o.set(e,i),y({views:o,error:null})}).catch(i=>{n===j&&(E.delete(e),y({error:W(i)}))}),t}async function Re(e,t,n,i){try{return await xe(e,t,n,i),T.delete(e),y({error:null}),!0}catch(o){return y({error:W(o)}),!1}}function W(e){return e instanceof Error?e.message:String(e)}const C=20,K=2,Ce="40%",$e=25,X=20,v=8,Le=4,G=8,p=11,g=.5,x="#e6e6e6",Ie="#3d3d3d",Te="#ffffff11",ke="rgba(0,0,0,0.12)",Me="#545454",Pe="#3d3d3d",Be="#4772b3",ie="#991616",_e=8,Fe=6,De=e=>Math.round(e*.2),re=e=>e.filter(t=>t.hidden!==!0&&t.undrawn!==!0);function k(){return b.useSyncExternalStore(Se,V,V)}function h({title:e,sub:t=!1,closed:n=!1,note:i,count:o,children:l}){const[c,a]=b.useState(!n);return r.jsxs("div",{style:{marginBottom:v,borderRadius:Le,boxShadow:t?"none":`inset 0 0 0 1px ${Te}`,background:t?ke:"transparent",overflow:"hidden"},children:[r.jsxs("button",{type:"button",onClick:()=>a(!c),style:{display:"flex",alignItems:"center",width:"100%",height:$e,background:t?"transparent":Ie,border:"none",padding:`0 ${G}px 0 ${t?X+14-20:0}px`,color:x,font:`${p}px inherit`,textAlign:"left",cursor:"pointer",gap:Fe},children:[r.jsx("span",{"aria-hidden":"true",style:{width:X-8,textAlign:"center",fontSize:_e,opacity:.85},children:c?"▼":"▶"}),r.jsx("span",{style:{fontWeight:400},title:i,children:e}),o===void 0?null:r.jsx("span",{style:{opacity:g,marginLeft:"auto"},children:o})]}),c?r.jsx("div",{style:{padding:v},children:l}):null]})}function O({label:e,title:t,readonly:n,identifier:i,children:o}){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:C,marginBottom:K,gap:G,opacity:n?g:1},title:t,children:[r.jsx("span",{style:{flex:`0 0 ${Ce}`,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:K},children:o})]})}const m={height:C,width:"100%",minWidth:0,boxSizing:"border-box",background:Me,border:`1px solid ${Pe}`,borderRadius:De(C),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=C-2*Math.floor((C-2)/6);function oe({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:o=>!t&&i(o.target.checked),style:{width:F,height:F,margin:`${(C-F)/2}px 0`,accentColor:Be,cursor:t?"default":"pointer"}})}function le({row:e,value:t,index:n,onWrite:i}){const[o,l]=b.useState(null),c=e.type==="FLOAT"?e.precision??3:0,a=o??(e.type==="FLOAT"?t.toFixed(c):String(t));return e.readonly?r.jsx(S,{children:a}):r.jsx("input",{type:"number","aria-label":$(e,n),value:a,...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=>l(s.target.value),onBlur:()=>{const s=Number(o);l(null),o!==null&&Number.isFinite(s)&&s!==t&&i(s,n)},onKeyDown:s=>{s.key==="Enter"&&s.target.blur(),s.key==="Escape"&&l(null)},style:m})}const ze=new Set(["TRANSLATION","DIRECTION","XYZ","XYZ_LENGTH","EULER","VELOCITY","ACCELERATION","COORDS"]);function se(e,t){if(e==="QUATERNION"||e==="AXISANGLE")return"WXYZ"[t];if(!(t>=4)){if(ze.has(e))return"XYZW"[t];if(e==="COLOR"||e==="COLOR_GAMMA")return"RGBA"[t]}}function $(e,t){const n=e.name||e.identifier;return t===void 0?n:`${n} ${se(e.subtype,t)??t}`}function ce(e,t){const n=i=>Math.max(0,Math.min(255,Math.round(Math.max(0,e[i]??0)**(t?1:.45454545454545453)*255)));return[n(0),n(1),n(2)]}function Y(e,t=!1){const[n,i,o]=ce(e,t);return`rgb(${n}, ${i}, ${o})`}function We(e,t,n){const i=u=>n?u/255:(u/255)**2.2,[o,l,c]=ye(be(e)).map(i),a=[o,l,c],s=/^(rgba|hsla)\(/i.test(e)||/^#[0-9a-f]{8}$/i.test(e);return t.length>3&&a.push(s?je(e):t[3]??1),a}function Ge({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":$(e),onClick:()=>t(i),style:{...m,cursor:"pointer",textAlign:"left"},title:i,children:n.name??n.type})}function we({row:e,write:t}){const n=e.items??[];if(e.isFlag){const o=e.value??[];return r.jsx(S,{children:o.length===0?"None":o.join(", ")})}const i=String(e.value??"");return e.readonly?r.jsx(S,{children:n.find(o=>o.identifier===i)?.name??i}):r.jsx("select",{"aria-label":$(e),value:i,onChange:o=>t(o.target.value),style:{...m,textAlign:"left"},children:n.map(o=>r.jsx("option",{value:o.identifier,children:o.name},o.identifier))})}function Ue({row:e,write:t}){const n=String(e.value??"");return e.readonly?r.jsx(S,{children:n}):r.jsx(He,{value:n,label:$(e),onWrite:i=>t(i)})}function Ve({row:e,write:t}){const n=e.value??[],i=e.subtype==="COLOR_GAMMA",[o,l]=b.useState(!1),[c,a,s]=ce(n,i),u=n.length>3?n[3]??1:1,f=u<1?`rgba(${c}, ${a}, ${s}, ${u.toFixed(2)})`:Y(n,i);return r.jsxs("span",{style:{position:"relative",display:"block"},children:[r.jsx("button",{type:"button","aria-label":e.name,"aria-expanded":o,disabled:e.readonly,onClick:()=>l(!o),style:{...m,background:Y(n,i),display:"block",width:"100%",cursor:e.readonly?"default":"pointer"},title:n.map(d=>d.toFixed(3)).join(", ")}),o?r.jsx("div",{style:{position:"absolute",zIndex:"var(--volter-z-dropdown)",top:"100%",right:0,marginTop:4},children:r.jsx(ge,{value:f,onChange:()=>{},onChangeEnd:d=>t(We(d,n,i)),onClose:()=>l(!1)})}):null]})}function Ke({row:e,label:t,title:n,write:i}){const o=e.value??[];return r.jsx(r.Fragment,{children:o.map((l,c)=>r.jsx(O,{label:Xe(t,c,e.subtype),title:n,readonly:e.readonly,identifier:`${e.identifier}[${c}]`,children:e.type==="BOOLEAN"?r.jsx(oe,{value:l===!0,readonly:e.readonly,label:$(e,c),onChange:a=>i(a,c)}):r.jsx(le,{row:e,value:Number(l),index:c,onWrite:(a,s)=>i(a,s)})},`${e.identifier}-${c}`))})}function Xe(e,t,n){const i=se(n,t);return i===void 0?t===0?e:`${e} ${t}`:`${t===0?`${e} `:""}${i}`}function Ye(e){const{row:t,write:n}=e;switch(t.type){case"POINTER":return r.jsx(Ge,{...e});case"ENUM":return r.jsx(we,{...e});case"STRING":return r.jsx(Ue,{...e});case"BOOLEAN":return r.jsx(oe,{value:t.value===!0,readonly:t.readonly,label:$(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=(u,f)=>void Re(t,e.identifier,u,f),o=e.name||e.identifier,l=`${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},a=e.valueOmitted??e.valueError;if(a!==void 0)return r.jsx(O,{label:o,title:l,readonly:!0,identifier:e.identifier,children:r.jsx(S,{children:a})});if(e.type==="COLLECTION")return r.jsx(Ze,{label:o,title:l,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(O,{label:o,title:l,readonly:e.readonly,identifier:e.identifier,children:r.jsx(Ve,{...c})}):r.jsx(Ke,{...c,label:o,title:l}):r.jsx(O,{label:o,title:l,readonly:e.readonly,identifier:e.identifier,children:Ye(c)})}function He({value:e,label:t,onWrite:n}){const[i,o]=b.useState(null);return r.jsx("input",{type:"text",...t===void 0?{}:{"aria-label":t},value:i??e,onChange:l=>o(l.target.value),onBlur:()=>{i!==null&&i!==e&&n(i),o(null)},onKeyDown:l=>{l.key==="Enter"&&l.target.blur(),l.key==="Escape"&&o(null)},style:{...m,textAlign:"left"}})}function Ze({label:e,title:t,value:n,identifier:i,onOpen:o}){const[l,c]=b.useState(!1),a=n.names??[];return r.jsxs(r.Fragment,{children:[r.jsx(O,{label:e,title:t,readonly:!1,identifier:i,children:r.jsxs("button",{type:"button","aria-label":e,onClick:()=>a.length?c(!l):o(),style:{...m,cursor:"pointer",textAlign:"left"},children:[a.length?`${l?"▼":"▶"} `:"",n.count," ",n.count===1?"item":"items"]})}),l?a.map(s=>r.jsx(O,{label:"",readonly:!0,children:r.jsx(S,{children:s})},s)):null]})}const z=e=>typeof e=="string"?e:e.property;function qe(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 Je({panel:e,path:t,onOpen:n}){k();const i=R(t),o=qe(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:ie,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((l,c)=>r.jsx(h,{title:`${l.path!==null&&l.path===o.path||c===o.index?"● ":""}${l.name??l.type}`,sub:!0,children:l.path===null?r.jsxs("div",{style:{color:x,opacity:g,fontSize:p},children:[l.type," — RNA gives this member no address."]}):r.jsx(Qe,{path:l.path,properties:e.properties,andDeclared:e.andDeclared===!0,onOpen:n})},l.path??l.name??l.type))]})}function Qe({path:e,properties:t,andDeclared:n=!1,onOpen:i}){k();const o=R(e);if(o===void 0)return r.jsxs("div",{style:{color:x,opacity:g,fontSize:p},children:["Reading ",e,"…"]});const l=o.kind==="struct"?o.groups.flatMap(u=>u.rows):[],c=new Map(l.map(u=>[u.identifier,u])),a=t.map(u=>c.get(z(u))).filter(u=>u!==void 0),s=n&&o.kind==="struct"?re(l).filter(u=>u.group===o.type&&!t.some(f=>z(f)===u.identifier)):[];return r.jsx(r.Fragment,{children:[...a,...s].map(u=>r.jsx(w,{row:u,path:e,onOpen:i},u.identifier))})}function et(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,o=i?t.find(s=>s.label===i):t[0];if(o===void 0)return!1;const l=R(o.path);if(l===void 0)return null;if(l.kind!=="struct")return!1;const c=l.groups.flatMap(s=>s.rows).find(s=>s.identifier===n.property);if(c===void 0)return!1;const a=c.value;if(typeof a!="string"&&typeof a!="number"&&typeof a!="boolean"||n.is!==void 0&&!n.is.includes(a)||n.isNot!==void 0&&n.isNot.includes(a))return!1}return!0}function ae({panel:e,paths:t,onOpen:n}){if(k(),et(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(Je,{panel:e,path:i.path,onOpen:n});if(i===void 0)return null;const o=R(i.path),l=e.sub??[],c=[],a=[];for(const s of e.properties){const u=z(s),f=typeof s=="string"?i:t.find(L=>L.label===s.from),d=f===void 0?void 0:R(f.path),A=d?.kind==="struct"?d.groups.flatMap(L=>L.rows).find(L=>L.identifier===u):void 0;A===void 0||f===void 0?a.push(u):c.push({identifier:u,row:A,path:f.path})}return o===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&&l.length===0?null:r.jsxs(h,{title:e.title,closed:e.closed===!0,note:a.length===0?`${i.path}`:`${i.path}
3
3
  Not on this datablock: ${a.join(", ")}`,children:[c.map(s=>r.jsx(w,{row:s.row,path:s.path,onOpen:n},s.identifier)),l.map((s,u)=>r.jsx(ae,{panel:s,paths:t,onOpen:n},`${u}:${s.title}`))]})}function P({path:e,onOpen:t}){k();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(P,{path:i.path,onOpen:t})},i.path??i.name??i.type))]}):r.jsx(r.Fragment,{children:n.groups.map(i=>{const o=re(i.rows);return o.length===0?null:r.jsx(h,{title:i.label,sub:!0,children:o.map(l=>r.jsx(w,{row:l,path:n.path,onOpen:t},l.identifier))},i.id)})})}function tt({tabId:e,subject:t,curated:n=[]}){k(),b.useEffect(()=>ne(t),[t]);const[i,o]=b.useState([]),l=B(),c=l.context?.tabs.find(d=>d.id===e)??null,a=c?.paths??[],s=a.map(d=>d.path).join("|");if(b.useEffect(()=>o([]),[s]),l.error!==null)return r.jsx("div",{style:{color:ie,fontSize:p,padding:v},children:l.error});if(c===null)return r.jsx("div",{style:{color:x,opacity:g,fontSize:p,padding:v},children:l.loading?"Reading the engine…":"Blender shows no properties here."});const u=d=>o(A=>[...A,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:()=>o(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(P,{path:f,onOpen:u})}):r.jsxs(r.Fragment,{children:[n.map((d,A)=>r.jsx(ae,{panel:d,paths:a,onOpen:u},`${A}:${d.title}`)),n.length>0?r.jsx(h,{title:"All properties",closed:!0,children:a.map(d=>r.jsx(h,{title:d.label,sub:!0,children:r.jsx(P,{path:d.path,onOpen:u})},d.path))}):a.map(d=>r.jsx(h,{title:d.label,children:r.jsx(P,{path:d.path,onOpen:u})},d.path))]})]})}function ct(e){return(t,n)=>{const i=Q(t,n);if(i===null)return!1;if(ne(i),e.standing==="any")return!0;if(e.standing==="object")return i.kind==="object";const o=B(),l=i.kind==="object"?i.name:null,c=i.kind==="collection"?i.path:null;return o.object!==l||o.collection!==c?!1:o.context?.tabs.some(a=>a.id===e.id)??!1}}function at(e){return function({node:n,adapter:i}){const o=Q(n,i);return o===null?null:r.jsx(tt,{tabId:e.id,subject:o,curated:e.curated??[]})}}export{ct as a,at as b,B as c,Q as r};
@@ -0,0 +1,7 @@
1
+ import{r as E,ls as yt}from"./index-BXVB2CCJ.js";import{a as bt}from"./preview-renderer-BrYNFV1p.js";import{v as Mt}from"./output-pass-HurwNl0G.js";import{_ as vt,fx as De,bi as Pe,aC as xt,d7 as Et,ej as St,cP as ye,el as kt,cm as Bt,cl as Ve,fo as ce,ex as At,d5 as Ct,d9 as It,cJ as jt,e as We}from"./three.core-3arARmh6.js";import{f as Ft}from"./clip-planes-CnAI6DZn.js";import{a as Lt}from"./content-bounds-B1oiinxO.js";const Tt=1024*1024,Ge={Uint8Array,Int8Array,Uint16Array,Int16Array,Uint32Array,Int32Array,Float32Array,Float64Array},_t=async t=>Array.from(new Uint8Array(await crypto.subtle.digest("SHA-256",t)),e=>e.toString(16).padStart(2,"0")).join("");class $t{constructor(){this.buffers=null,this.offsets=[]}reset(){this.buffers=null,this.offsets=[]}async accept(e){try{if(e.kind==="begin"){if(this.buffers)throw new Error("A frame value is already arriving");if(!e.lengths.length||e.lengths.length>4096||e.lengths.reduce((s,o)=>s+o,0)>2*1024**3||e.lengths.some(s=>!Number.isSafeInteger(s)||s<0||s>1024**3))throw new Error("Invalid frame buffer lengths");this.buffers=e.lengths.map(s=>new Uint8Array(s)),this.offsets=e.lengths.map(()=>0);return}if(!this.buffers)throw new Error("Frame chunk arrived without its manifest");if(e.kind==="bytes"){const s=this.buffers[e.slot];if(!s||!Number.isSafeInteger(e.offset)||e.offset!==this.offsets[e.slot]||e.bytes.byteLength>Tt||!e.bytes.byteLength||e.offset+e.bytes.byteLength>s.byteLength)throw new Error("Frame chunk is out of order or exceeds its bound");if(await _t(e.bytes)!==e.sha256)throw new Error("Frame chunk digest mismatch");s.set(e.bytes,e.offset),this.offsets[e.slot]=e.offset+e.bytes.byteLength;return}if(e.kind!=="end")throw new Error("Unknown frame chunk");const n=this.buffers;if(n.some((s,o)=>s.length!==this.offsets[o]))throw new Error("Frame value is incomplete");const r=JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(n[0]),(s,o)=>{if(!o||typeof o!="object"||!("$frameColumn"in o))return o;const a=n[o.$frameColumn],i=Ge[o.type];if(!Number.isSafeInteger(o.$frameColumn)||o.$frameColumn<1||!a||!Object.hasOwn(Ge,o.type)||!i||a.byteLength%i.BYTES_PER_ELEMENT)throw new Error("Invalid frame column descriptor");return new i(a.buffer)});return this.reset(),{value:r}}catch(n){throw this.reset(),n}}}const ze=4096;class Nt{#r;#o;#a=[];#n=new Map;#F=0;#d=null;#i=null;#h=!1;#x=!1;#E=e=>{!this.#x&&this.#n.size===0||(e.preventDefault(),e.returnValue="")};#f=new Map;#p=new Map;#S="engine-start";#k=null;#b=new Map;#w=null;#M=0;#B=0;#A=0;#l=null;#C=null;#c=null;constructor(e){this.#o=e,this.#r=new Worker(new URL("/assets/worker-DUIHhopS.js",import.meta.url),{type:"module",name:"blender"}),globalThis.addEventListener?.("beforeunload",this.#E),this.#r.onmessage=n=>void this.#j(n.data),this.#r.onerror=n=>{const r=n.error,s=n.filename?` at ${n.filename}:${n.lineno}:${n.colno}`:"",o=r?.stack??r?.message??n.message,a=this.#a.length>0?`
2
+ Blender's last output:
3
+ ${this.#a.join(`
4
+ `)}`:"",i=this.#c===null?null:Math.round(this.#c/1048576),c=i!==null&&i>=ze-16?`Blender ran out of memory: its heap reached ${i} MB of the in-tab engine's ${ze} MB, and this scene needs more. `:"",u=new Error(`${c}Blender worker failed: ${o||"the worker script did not load"}${s}${a}`);console.error(u.message);for(const l of[...this.#n.keys()])this.#g(l);for(const l of this.#n.values())l.reject(u);this.#n.clear()}}#s=null;#u=null;get project(){return this.#s}get document(){return this.#u}get lastOutput(){return[...this.#a]}start(e,n){return this.#s!==null&&this.#s!==e?Promise.reject(new Error(`The Blender session is bound to ${this.#s}, not ${e}`)):n!==void 0&&this.#u!==null&&this.#u!==n?Promise.reject(new Error(`Blender resource conflict: the session holds ${this.#u}; cannot open ${n}`)):(this.#s=e,this.#u??=n??"models/model.blend",this.#d??=this.#L({op:"start",project:e,...n===void 0?{}:{document:n}}),this.#d)}async#L(e){let n=await this.#e(e);for(;n?.load==="continue";)this.#S=n.phase,n=await this.#e({op:"load-next",token:n.token});return n?.load==="done"?n.value:n}#t(){return this.#s===null?Promise.reject(new Error("The Blender session has not been started with a project (blender-start)")):this.start(this.#s)}async execute(e,n=!0,r="Blender Python"){return await this.#t(),await this.#e({op:"execute",code:e,history:n,label:r})}async historyGesture(e){await this.#t(),await this.#e({op:e})}async historyStep(e,n){return await this.#t(),(await this.#e({op:"history-step",token:e,direction:n})).moved}async sceneInfo(){return await this.#t(),await this.#e({op:"scene-info"})}async objectInfo(e){return await this.#t(),await this.#e({op:"object-info",name:e})}async rna(e,n){return await this.#t(),await this.#e({op:"rna",path:e,...n===void 0?{}:{names:n}})}async rnaContext(e,n){return await this.#t(),await this.#e({op:"rna-context",...e===void 0?{}:{object:e},...n===void 0?{}:{collection:n}})}async rnaSet(e,n,r,s,o=!0){return await this.#t(),await this.#e({op:"rna-set",history:o,path:e,property:n,value:r,...s===void 0?{}:{index:s}})}async viewShading(e){await this.#t(),await this.#e({op:"view-shading",shading:e})}async outliner(e){return await this.#t(),await this.#e({op:"outliner",...e===void 0?{}:{selected:e}})}async nodeTree(e){return await this.#t(),await this.#e({op:"node-tree",...e?.path===void 0?{}:{path:e.path},...e?.material===void 0?{}:{material:e.material}})}async uvLayout(e){return await this.#t(),await this.#e({op:"uv-layout",...e?.object===void 0?{}:{object:e.object},...e?.uvLayer===void 0?{}:{uvLayer:e.uvLayer}})}async rig(e){return await this.#t(),await this.#e({op:"rig",...e?.object===void 0?{}:{object:e.object}})}async actionClip(e){return await this.#t(),await this.#e({op:"action-clip",...e?.object===void 0?{}:{object:e.object},...e?.bake===void 0?{}:{bake:e.bake}})}async outlinerSet(e,n,r){return await this.#t(),await this.#e({op:"outliner-set",path:e,column:n,value:r})}async present(){await this.#t(),await this.#e({op:"present"})}async screenshotView(e){return await this.#t(),await this.#e({op:"screenshot-view",maxSize:e})}async readFile(e){return await this.#t(),await this.#e({op:"read-file",path:e})}async writeFile(e,n){await this.#t(),await this.#e({op:"write-file",path:e,bytes:n})}async listFiles(e){return await this.#t(),await this.#e({op:"list-files",path:e})}get presented(){return this.#C}stop(){return this.#h?Promise.resolve():this.#i?this.#i:(this.#i=(async()=>{(this.#d?await this.#d.then(()=>!0,()=>!1):!1)&&await this.#e({op:"flush-document"},!0),this.terminate()})().catch(e=>{throw this.#i=null,e}),this.#i)}terminate(){if(this.#y(),this.#h)return;this.#h=!0,globalThis.removeEventListener?.("beforeunload",this.#E);const e=this.#v("terminating worker");try{this.#r.terminate()}finally{e()}const n=new Error("The Blender session was terminated");for(const r of[...this.#n.keys()])this.#g(r);for(const r of this.#n.values())r.reject(n);this.#n.clear()}metrics(e=performance.now()){let n=null,r=this.#M,s=this.#k,o=this.#B,a=this.#A;for(const[i,c]of this.#f){const u=e-c;(n===null||u>n)&&(n=u),u>r&&(r=u,s=this.#p.get(i)??null),u>=5e3&&(o+=1),u>=3e4&&(a+=1)}return{inFlightMs:n===null?null:Math.round(n),lastCallMs:this.#w===null?null:Math.round(this.#w),maxCallMs:this.#w===null&&n===null?null:Math.round(r),maxCallLabel:s,callsOver5s:o,callsOver30s:a,lastCallWindow:this.#l,wasmMemoryMB:this.#c===null?null:Math.round(this.#c/1048576)}}#g(e){this.#b.get(e)?.(),this.#b.delete(e);const n=this.#f.get(e);if(n===void 0)return;this.#f.delete(e);const r=this.#p.get(e)??null;this.#p.delete(e);const s=performance.now()-n;this.#w=s,s>this.#M&&(this.#M=s,this.#k=r),s>=5e3&&(this.#B+=1),s>=3e4&&(this.#A+=1),this.#l!==null&&this.#l.start===n&&(this.#l={start:n,end:n+s})}#e(e,n=!1){if(this.#h||this.#i&&!n)return Promise.reject(new Error("The Blender session is stopping or terminated"));const r=++this.#F;return new Promise((s,o)=>{this.#n.set(r,{resolve:s,reject:o});const a=performance.now();this.#f.set(r,a),this.#p.set(r,e.op==="load-next"?`load-next after ${this.#S}`:e.op),this.#l={start:a,end:null},this.#b.set(r,this.#v(`waiting for worker ${e.op}`));try{this.#r.postMessage({...e,id:r})}catch(i){this.#n.delete(r),this.#g(r),o(i instanceof Error?i:new Error(String(i)))}})}#v(e){try{const n=this.#o.work?.(e);return()=>{try{n?.()}catch{}}}catch{return()=>{}}}#I=new $t;#m=null;#y(){this.#I.reset();const e=this.#m;if(this.#m=null,e)try{Promise.resolve(this.#o.stage?.({...e,abort:!0})).catch(()=>{})}catch{}}async#j(e){if("op"in e){if(e.op==="frame-stream"){try{const o=await this.#I.accept(e.chunk);if(o){const a=o.value;if(a.op==="present"){await this.#j({...a,id:e.id});return}if(a.op!=="stage"||!this.#o.stage)throw new Error("The presenter does not support staged Blender frames");this.#m={session:a.session,revision:a.revision},await this.#o.stage(a)}this.#r.postMessage({op:"present-result",id:e.id})}catch(o){this.#y(),this.#r.postMessage({op:"present-result",id:e.id,error:o instanceof Error?o.message:String(o)})}return}if(e.op==="document-dirty"){this.#x=e.dirty;return}if(e.op==="history"){this.#o.history?.(e.entries);return}if(e.op==="log"){this.#a.push(e.text),this.#a.length>12&&this.#a.shift(),this.#o.log?.(e.level,e.text);return}if(e.op==="memory"){this.#c=e.bytes;return}const r=e.frame;typeof r?.session=="string"&&typeof r.revision=="number"&&(this.#C={session:r.session,revision:r.revision});const s=this.#v("presenting worker frame");try{const o=await this.#o.present(e.frame,e.description,e.capture);this.#m=null,this.#r.postMessage({op:"present-result",id:e.id,...o?.capture===void 0?{}:{capture:o.capture},...o!=null&&"held"in o?{held:o.held}:{}})}catch(o){this.#y(),this.#r.postMessage({op:"present-result",id:e.id,error:o instanceof Error?o.message:String(o)})}finally{s()}return}"error"in e&&this.#y();const n=this.#n.get(e.id);n&&(this.#n.delete(e.id),this.#g(e.id),"error"in e?n.reject(new Error(e.error)):n.resolve(e.result))}}const Rt="/assets/agx-base-srgb-BjWZJgrZ.lut",Ot="/assets/agx-look-medium-high-contrast-D5F_ob1L.lut",Ut="/assets/agx-look-punchy-dxsnycNs.lut",Dt="/assets/filmic-srgb-Ct35FIH6.lut",L=new Float64Array(12),He=[0,0,0],R=new Float64Array(3),q=new Float64Array(3),T=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 Pt(t,e,n){return t>e?e>n?0:t>n?1:2:n>e?3:n>t?4:5}function Je(t,e,n,r,s){const o=e*e,a=Math.min(1,Math.max(0,n))*(e-1),i=Math.min(1,Math.max(0,r))*(e-1),c=Math.min(1,Math.max(0,s))*(e-1),u=Math.min(Math.floor(a),e-2),l=Math.min(Math.floor(i),e-2),d=Math.min(Math.floor(c),e-2),S=a-u,m=i-l,k=c-d,y=(h,g,F,I)=>{const w=(u+g+(l+F)*e+(d+I)*o)*3;L[h]=t[w]/65535,L[h+1]=t[w+1]/65535,L[h+2]=t[w+2]/65535};y(0,0,0,0),y(9,1,1,1),R[0]=S,R[1]=m,R[2]=k;const p=Pt(S,m,k)*9;y(3,T[p],T[p+1],T[p+2]),y(6,T[p+3],T[p+4],T[p+5]);const C=R[T[p+6]],v=R[T[p+7]],f=R[T[p+8]];for(let h=0;h<3;h++){const g=L[h];He[h]=g+C*(L[3+h]-g)+v*(L[6+h]-L[3+h])+f*(L[9+h]-L[6+h])}return He}function X(t){const e=t&32768?-1:1,n=t>>10&31,r=t&1023;return n===0?e*2**-24*r:n===31?r?Number.NaN:e*Number.POSITIVE_INFINITY:e*2**(n-15)*(1+r/1024)}function je(t,e,n,r){const s=new Uint8ClampedArray(e*4);for(let o=0;o<e;o++){const a=o*4,i=X(t[a+3]),c=i===0?n:n/i;q[0]=X(t[a])*c,q[1]=X(t[a+1])*c,q[2]=X(t[a+2])*c;const u=r(q);s[a]=Math.round(u[0]*255),s[a+1]=Math.round(u[1]*255),s[a+2]=Math.round(u[2]*255),s[a+3]=Math.round(Math.min(1,Math.max(0,i))*255)}return s}function Vt(t){return new URL(Object.assign({"./agx-base-srgb.lut":Rt,"./agx-look-medium-high-contrast.lut":Ot,"./agx-look-punchy.lut":Ut,"./filmic-srgb.lut":Dt})[`./${t.replace(/\.lut$/,"")}.lut`],import.meta.url)}const Wt=57,_=-12.47393,Qe=12.5260688117,Gt=[[.4123908,.3575843,.1804808],[.212639,.7151687,.0721923],[.0193308,.1191948,.9505322]],zt=[[1.5250528,-.3159135,-.1226583],[-.5091526,1.3333274,.1382844],[.0957153,.0508974,.7879558]];function qe(t,e,n){const r=e[0],s=e[1],o=e[2];n[0]=t[0][0]*r+t[0][1]*s+t[0][2]*o,n[1]=t[1][0]*r+t[1][1]*s+t[1][2]*o,n[2]=t[2][0]*r+t[2][1]*s+t[2][2]*o}const Y=new Float64Array(3),Xe=new Float64Array(3),Z=[0,0,0];function ue(t){const e=Math.min(1,Math.max(0,t));return e<=.0031308?12.92*e:1.055*e**(1/2.4)-.055}function et(t,e,n,r){return Je(t,Wt,e,n,r)}function Ht(t,e){qe(Gt,e,Xe),qe(zt,Xe,Y);const n=Qe-_,r=et(t,(Math.log2(Math.max(Y[0],1e-10))-_)/n,(Math.log2(Math.max(Y[1],1e-10))-_)/n,(Math.log2(Math.max(Y[2],1e-10))-_)/n);return Z[0]=ue(Math.max(0,r[0])**2.4),Z[1]=ue(Math.max(0,r[1])**2.4),Z[2]=ue(Math.max(0,r[2])**2.4),Z}const qt={"AgX - Medium High Contrast":"agx-look-medium-high-contrast.lut","AgX - Punchy":"agx-look-punchy.lut"};function Xt(t,e){const n=Qe-_;return et(t,(Math.log2(Math.max(e[0],1e-10))-_)/n,(Math.log2(Math.max(e[1],1e-10))-_)/n,(Math.log2(Math.max(e[2],1e-10))-_)/n)}function Yt(t,e,n,r={}){const s=r.exposure??1,o=r.composedLook===!0?Xt:Ht;return je(e,n,s,a=>o(t,a))}const tt=33,be=tt**3*3,Me=4096,de=-12.473931188,he=25;function fe(t,e){const n=Math.min(1,Math.max(0,e))*(Me-1),r=Math.min(Math.floor(n),Me-2),s=n-r;return((1-s)*t[be+r]+s*t[be+r+1])/65535}const K=[0,0,0];function Zt(t,e){const n=Je(t,tt,(Math.log2(Math.max(e[0],1e-10))-de)/he,(Math.log2(Math.max(e[1],1e-10))-de)/he,(Math.log2(Math.max(e[2],1e-10))-de)/he);return K[0]=fe(t,n[0]/.66),K[1]=fe(t,n[1]/.66),K[2]=fe(t,n[2]/.66),K}function Kt(t,e,n,r){if(t.length!==be+Me)throw new Error("Invalid Blender Filmic display table");return je(e,n,r,s=>Zt(t,s))}const W=2.4,$=.055,nt=$/(W-1),Jt=1/(W/(1+$)*((nt+$)/(1+$))**(W-1)),Qt=((nt+$)/(1+$))**W;function pe(t){return t>0?t<Qt?t*Jt:(1+$)*t**(1/W)-$:0}const J=[0,0,0];function en(t){return J[0]=pe(t[0]),J[1]=pe(t[1]),J[2]=pe(t[2]),J}function tn(t,e,n){return je(t,e,n,en)}function rt(t,e,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 s=Math.min(2048,Math.round(n.width)),o=Math.min(2048,Math.round(n.height)),a=r?1:2,i=s*a,c=o*a,u=bt(),l=u.renderer,d={target:l.getRenderTarget(),toneMapping:l.toneMapping,exposure:l.toneMappingExposure,colorSpace:l.outputColorSpace,shadows:l.shadowMap.enabled,shadowType:l.shadowMap.type,clearColor:l.getClearColor(new vt),clearAlpha:l.getClearAlpha(),background:t.background};let S,m,k=!1;try{S=new De(i,c,{type:Pe}),n.effect&&(S.depthTexture=new xt(i,c)),l.shadowMap.enabled=!0,l.shadowMap.type=Et,l.outputColorSpace=St,l.toneMapping=n.toneMapping??ye,l.toneMappingExposure=n.exposure??1,l.setClearColor(0,n.transparent?0:1),n.transparent&&(t.background=null),l.setRenderTarget(S),l.clear(),l.render(t,e);const y=n.effect?.render(l,S,t,e)??S;if(y.texture.type!==Pe||y.width!==i||y.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(y,0,0,i,c,w),k=!0,{pixels:w,width:s,height:o}}m=new De(i,c),Mt(n.transparent===!0).render(l,m,y,0,!1);const p=new Uint8Array(i*c*4);l.readRenderTargetPixels(m,0,0,i,c,p);const C=document.createElement("canvas");C.width=i,C.height=c;const v=C.getContext("2d");if(!v)throw new Error("Scene capture could not create an image canvas");const f=v.createImageData(i,c),h=i*4;for(let w=0;w<c;w++)f.data.set(p.subarray((c-1-w)*h,(c-w)*h),w*h);v.putImageData(f,0,0);const g=document.createElement("canvas");g.width=s,g.height=o;const F=g.getContext("2d");if(!F)throw new Error("Scene capture could not create an output canvas");F.drawImage(C,0,0,s,o);const I=g.toDataURL("image/png");return k=!0,I}finally{t.background=d.background,l.setRenderTarget(d.target),l.toneMapping=d.toneMapping,l.toneMappingExposure=d.exposure,l.outputColorSpace=d.colorSpace,l.shadowMap.enabled=d.shadows,l.shadowMap.type=d.shadowType,l.setClearColor(d.clearColor,d.clearAlpha),m?.dispose(),S?.dispose(),u.release({discard:!k})}}function nn(t,e,n){return rt(t,e,n,!0)}function rn(t,e,n){return rt(t,e,n,!1)}const on=t=>typeof t=="object"&&t!==null&&typeof t.subscribeFrames=="function"&&typeof t.objectForBlenderName=="function"&&typeof t.blenderObjectName=="function"&&typeof t.blenderSelection=="function"&&typeof t.setStageMode=="function";function Fe(){const t=E().documents.context(ct());return on(t)?t:null}function sn(){return Fe()?.blenderSelection()??{selected:[],active:null}}const an={tree:null,byId:new Map,parentOf:new Map,error:null,loading:!1};let ve=an,ot=0;const xe=new Set;let D=null,se=null,Le="",P=null;function ln(t){const e=new Map,n=new Map,r=(s,o)=>{e.set(s.id,s),n.set(s.id,o);for(const a of s.children)r(a,s.id)};for(const s of t?.rows??[])r(s,null);return{byId:e,parentOf:n}}function ee(t){ve={...ve,...t},ot+=1;for(const e of[...xe])e()}function Ln(t){return xe.add(t),()=>{xe.delete(t)}}function Tn(){return ot}function _n(){return ve}function Te(t){P!==t&&(P=t,setTimeout(()=>{P===t&&(P=null,st(t===""?[]:t.split("\0")))},0))}let we=0,Ee=Promise.resolve();function st(t){const e=cn(t);return Ee=e,e}async function cn(t){const e=t.join("\0"),n=++we;se=e,Le=e,ee({loading:!0});try{const r=await Mn(t);if(n!==we)return;Fe()?.setStageMode(r?.mode??null),ee({tree:r,...ln(r),loading:!1,error:null})}catch(r){if(n!==we)return;ee({loading:!1,error:at(r)})}}function un(){se=null,Te(Le);for(const t of[...Se])t()}const Se=new Set;function $n(t){return _e(),Se.add(t),()=>{Se.delete(t)}}let Q=!1,ge=null;function _e(){const t=Fe();if(D!==null&&ge===t)return;D!==null&&(D(),D=null,ge=null);const e=t;if(e!==null){D=e.subscribeFrames(un),ge=e;return}Q||(Q=!0,E().documents.waitForContext(ct()).then(()=>{Q=!1,_e()}).catch(()=>{Q=!1}))}function Nn(t){if(!A())return;_e();const e=[...t].sort().join("\0");se!==e&&Te(e)}async function dn(t){if(!A())return;P=null;let e=st([...t].sort());for(;;){if(await e,Ee===e)return;e=Ee}}async function Rn(t,e,n){try{return await dt(t,e,n),se=null,Te(Le),!0}catch(r){return ee({error:at(r)}),!1}}function at(t){return t instanceof Error?t.message:String(t)}const hn={transform:{cx:0,cy:0,zoom:1},looked:null,refusal:null,size:{w:0,h:0},framedAt:0,drawn:[]};let ke=hn,$e=0;const oe=new Set;let it=0;function me(){return ke}function On(){return $e}function Un(t){return oe.add(t),()=>{oe.delete(t)}}function V(t){ke={...ke,...t},$e+=1;for(const e of[...oe])e()}function fn(){it+=1,$e+=1;for(const t of[...oe])t()}function Dn(){return it}function O(t){V({refusal:t})}const Ye=new Map;function pn(t){let e=Ye.get(t);return e||(e=fetch(Vt(t)).then(async n=>{if(!n.ok)throw new Error(`Blender display table ${t}: ${n.status} ${n.statusText}`);return new Uint16Array(await n.arrayBuffer())}),Ye.set(t,e)),e}function wn(t){const e=atob(t),n=new Uint8Array(e.length);for(let r=0;r<e.length;r++)n[r]=e.charCodeAt(r);return new Uint16Array(n.buffer,n.byteOffset,n.byteLength>>1)}async function lt(t,e){const n=e.look??"None",r=e.toneMapping==="filmic",s=e.toneMapping==="none";if(!s&&e.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=s?null:r?"filmic-srgb.lut":n==="None"?"agx-base-srgb.lut":qt[n];if(o===void 0)throw new Error(`Blender display transform has no table for look ${n}`);const a=o?await pn(o):null,i=e.linearInput,c=i?{pixels:wn(i.base64),width:i.width,height:i.height}:t;if(!c)throw new Error("Blender display transform requires a linear capture");const{pixels:u,width:l,height:d}=c,S=s?tn(u,l*d,e.exposure):r?Kt(a,u,l*d,e.exposure):Yt(a,u,l*d,{exposure:e.exposure,composedLook:n!=="None"}),m=document.createElement("canvas");m.width=l,m.height=d;const k=m.getContext("2d");if(!k)throw new Error("Blender display transform could not create its image canvas");const y=k.createImageData(l,d),p=l*4;for(let f=0;f<d;f++){const h=(d-1-f)*p;y.data.set(S.subarray(h,h+p),f*p)}k.putImageData(y,0,0);const C=m.toDataURL("image/png"),v={base64:C.slice(C.indexOf(",")+1),mimeType:"image/png"};if(e.linear===!0){const f=new Uint8Array(u.buffer,u.byteOffset,u.byteLength);let h="";for(let g=0;g<f.length;g+=32768)h+=String.fromCharCode(...f.subarray(g,g+32768));v.linearBase64=btoa(h),v.linearWidth=l,v.linearHeight=d}return v}async function gn(t,e,n,r,s=()=>{}){const o={none:ye,agx:We,neutral:jt,filmic:ye};await n.prepare(e),s();const a={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 lt(nn(t,e,a),r):null;if(s(),i)return i;const c=rn(t,e,a);if(!c)throw new Error("Blender render could not capture its image");return{base64:c.slice(c.indexOf(",")+1),mimeType:"image/png"}}const mn="document:blender:runtime";let x=null,Ze=0;function Pn(t){const e=++Ze;return x=t,U(),()=>{Ze===e&&(x=null,U())}}function te(){const t=b?.document,e=E().documents.activeId(),n=e?.startsWith("document:model:")?e.slice(15):x?.blend;return!n||!t||n===t?null:`Blender is editing ${t}; ${n} is not open. Return to ${t} before editing.`}function j(){return x?.documentId??mn}function ct(){return j()}async function Vn(t,e){const n=E();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(x!==t||n.documents.activeId()!==t.documentId)return!1;const s=M(),o=s.start(r,t.blend);if(e(),await o,x!==t)return!1;const a=(await Ie()).snapshot();if(x!==t)return!1;const i=s.presented;return(!a||!i||a.session!==i.session||a.revision!==i.revision)&&await s.present(),x===t}function A(){return b?.project!=null&&te()===null}let ut=0;const Be=new Set;function Wn(){return ut}function Gn(t){return Be.add(t),()=>{Be.delete(t)}}function U(){ut+=1;for(const t of[...Be])t()}async function zn(t,e){return A()?M().rna(t,e):null}async function Hn(t,e){return A()?M().rnaContext(t,e):null}async function yn(t,e,n,r,s=!0){if(!A())return null;const o=await M().rnaSet(t,e,n,r,s);return U(),o}async function qn(t){A()&&await M().viewShading(t)}async function bn(t,e=!0,n="Blender Python"){const r=await M().execute(t,e,n);U();const s=/^Error executing code:/.exec(r);return{text:r,executed:s===null,result:s===null?r.replace(/^Code executed successfully: ?/,""):"",error:s===null?null:r.replace(/^Error executing code: ?/,"")}}function Xn(){M().historyGesture("history-begin").catch(t=>E().console.error(`Could not begin Blender undo gesture: ${String(t)}`,"blender-history"))}async function Yn(){await M().historyGesture("history-end")}async function Mn(t){return A()?M().outliner(t):null}async function Zn(t){return A()?M().nodeTree(t):null}async function Kn(t){return A()?M().uvLayout(t):null}async function Jn(t){return A()?M().rig(t):null}async function Qn(t){return A()?M().actionClip(t):null}async function dt(t,e,n){if(!A())return null;const r=await M().outlinerSet(t,e,n);return U(),r}const vn={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(([t,e])=>({id:t,...e?{title:e}:{},run:n=>ht({...n,action:t})}))};function ht(t){const e=typeof t.action=="string"?t.action:"state";switch(e){case"state":break;case"look":V({looked:typeof t.node=="string"?t.node:null,refusal:null});break;case"view-all":fn(),V({refusal:null});break;case"zoom":{const n=typeof t.zoom=="number"?t.zoom:1;V({transform:{...me().transform,zoom:n},refusal:null});break}case"pan":{const n=me().transform;V({transform:{...n,cx:typeof t.cx=="number"?t.cx:n.cx,cy:typeof t.cy=="number"?t.cy:n.cy},refusal:null});break}case"move":O(`Moving "${String(t.node??"a node")}" writes Node.location — editing parity is not the program.`);break;case"link":O("Dragging between sockets would make a link — editing parity is not the program.");break;case"set-value":O(`Changing "${String(t.socket??"a socket")}" writes the socket's default_value — editing parity is not the program.`);break;case"use-nodes":O("Use Nodes writes Material.use_nodes — editing parity is not the program.");break;case"collapse-panel":O(`Collapsing "${String(t.panel??"a panel")}" writes the panel's is_collapsed — editing parity is not the program.`);break;default:O(`blender-node-view: no action "${e}" — state, look, view-all, zoom, pan, and the refusals move, link, set-value, use-nodes, collapse-panel.`)}return me()}let b=null;const ne=new Set;function ft(){ne.size&&E().history.invalidate([...ne]),ne.clear()}let Ae=null,Ke=!1;function re(t){try{const e=E().session.beginWork(`Blender: ${t}`);return()=>{try{e()}catch{}}}catch{return()=>{}}}function Ce(){const t=re("invalidating history and releasing runtime");try{ft(),Ae?.abort(),Ae=null,b?.terminate(),b=null,pt=null}finally{t()}}function xn(){Ke||(Ke=!0,E().session.onBeforeClose(async()=>{await b?.stop(),Ce()}),E().session.onEnded(Ce))}let pt=null;const En=t=>typeof t=="object"&&t!==null&&typeof t.applyFrame=="function"&&typeof t.stageFrame=="function"&&typeof t.snapshot=="function"&&typeof t.captureSnapshot=="function"&&typeof t.recordPresentation=="function"&&typeof t.recordPhotograph=="function";async function Ie(){const{documents:t}=E(),e=Date.now()+15e3;let n=j();for(;;){n=j();const r=await t.waitForContext(n,Math.max(0,Math.min(250,e-Date.now())));if(En(r))return r;if(Date.now()>=e)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 stageFrame, applyFrame, captureSnapshot, recordPresentation and recordPhotograph): nothing published a presentable view as ${n} within 15 s (bound model: ${x?.documentId??"none"}). Open the Model document first (\`volter blender-mcp\` opens it before its first call).`)}function M(){const t=te();if(t)throw new Error(t);if(b!==null)return b;xn();const e=new AbortController;Ae=e;let n=!1,r=null;b=new Nt({work:re,history:o=>{const a=b;if(!a)throw new Error("Blender history arrived before its runtime");for(const i of o){if("reset"in i){ft();continue}if(!i.resource)throw new Error("A Blender edit has no document resource");ne.add(i.resource);const c=async u=>{if(b!==a)throw new Error("This Blender history belongs to a closed worker");const l=await a.historyStep(i.id,u);return U(),await dn(sn().selected),l};E().history.record({id:i.id,label:i.label,resources:[i.resource],document:j(),undo:()=>c("undo"),redo:()=>c("redo")})}},stage:async o=>{if(o.abort){r?.stageFrame(o),r=null;return}const a=te();if(a)throw new Error(a);if(x===null)return;const i=j(),c=await Ie();if(e.signal.throwIfAborted(),j()!==i)throw new Error("Blender document changed during frame transfer");r=c,c.stageFrame(o)},present:async(o,a,i)=>{const c=te();if(c)throw new Error(c);if(x===null){if(i?.render)throw new Error("Rendering a Blender frame needs the Model document open; nothing is presenting.");return{}}const u=j(),l=re("waiting for Model presenter");let d;try{d=await Ie()}finally{l()}if(e.signal.throwIfAborted(),j()!==u)throw new Error("Blender document changed before its frame could be presented");const S=re("applying frame to Model"),m=(()=>{try{return d.applyFrame(o)}finally{S()}})(),k=typeof m=="object"&&m!==null&&"held"in m,y=k?m.held:null,p=w=>({...w===void 0?{}:{capture:w},...k?{held:y}:{}});if(d.recordPresentation(a),!i||(pt=i,!i.render))return p(void 0);const C=d.snapshot(),v=()=>{if(e.signal.throwIfAborted(),j()!==u||d.snapshot()!==C)throw new Error("Blender capture document or source revision changed before completion")};if(i.render.linearInput){const w=await lt(null,i.render);return v(),p(w)}const{render:f,position:h,target:g,up:F}=i;if(!h||!g||!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 I=d.captureSnapshot();n=!0,e.signal.addEventListener("abort",I.dispose,{once:!0});try{v();const w=new kt;w.add(I.root),w.updateMatrixWorld(!0);const G=I.root.matrixWorld,ae=new Bt().copy(G).invert(),wt=new Ve().setFromMatrix4(G),gt=new Ve().setFromMatrix4(ae),ie=new ce(h[0],h[1],h[2]).applyMatrix4(G),Ne=new ce(g[0],g[1],g[2]).applyMatrix4(G),Re=new ce(F[0],F[1],F[2]).applyMatrix3(wt),le=Math.min(2048,Math.round(f.width))/Math.min(2048,Math.round(f.height)),Oe=Lt(I.root).getBoundingSphere(new At),z=Ft(ie.distanceTo(Oe.center),Oe.radius);let N;if(f.orthographic){const H=f.fov/2;N=new Ct(-H*le,H*le,H,-H,z.near,z.far)}else N=new It(f.fov,le,z.near,z.far);N.up.copy(Re),N.position.copy(ie),N.lookAt(Ne),N.updateMatrixWorld(!0);const Ue={position:ie.clone().applyMatrix4(ae).toArray(),target:Ne.clone().applyMatrix4(ae).toArray(),up:Re.clone().applyMatrix3(gt).toArray()};d.recordPhotograph({sent:{position:h,target:g,up:F},photographed:Ue,render:{width:f.width,height:f.height,fov:f.fov,orthographic:f.orthographic}});const mt=await gn(w,N,I,f,v);return p({...mt,camera:Ue})}finally{n=!1,e.signal.removeEventListener("abort",I.dispose),I.dispose()}},log:(o,a)=>console[o](`[blender] ${a}`)});const s=b;return E().session.reportWorkerCallMeter("Blender",()=>s.metrics()),b}const Sn="models/model.blend",B=(t,e)=>{const n=t[e];if(typeof n!="string")throw new Error(`${String(t.type)} requires a string "${e}"`);return n};async function kn(t){const e=E().projectLocalState.projectRootPath();if(e===null)return{};let n;try{n=await t.execute(`import bpy
5
+ print(bpy.data.filepath)
6
+ `,!1)}catch{return{}}if(/^Error executing code:/m.test(n))return{};const r=n.replace(/^Code executed successfully:/,"").split(`
7
+ `).map(o=>o.trim()).filter(o=>o.startsWith("/")).pop()??"";if(r==="")return{};const s=e.endsWith("/")?e:`${e}/`;return r.startsWith(s)?{document:r.slice(s.length)}:{}}async function er(t){const e=E();if(t.type==="blender-status")return{ok:!0,data:{started:b?.project!=null,document:e.documents.context(j())!==void 0,lastOutput:b?.lastOutput??[]}};if(!e.session.open())return{ok:!1,error:`${t.type} needs an open project session; this editor page has none.`};try{const n=t.type==="blender-start"?B(t,"project"):null;let r=typeof t.document=="string"?t.document:void 0;if((t.type==="blender-stop"||t.type==="blender-start"&&t.fresh===!0)&&(await b?.stop(),Ce(),t.type==="blender-stop"))return{ok:!0,data:{stopped:!0}};if(t.type==="blender-start"&&!e.documents.context(j())){const o=await e.project.documentTable(),a=o.entries.filter(l=>l.kind==="model"),i=r!==void 0?a.find(l=>l.source?.path===r):a.find(l=>l.id===(x?.entryId??o.default))??(a.length===1?a[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: ${a.map(l=>l.id).join(", ")||"(none)"}.`};const c=i.id;if(r=i.source?.path,!await e.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 s=M();switch(t.type){case"blender-start":{const o=r!==void 0?r:x?.blend??Sn;return{ok:!0,data:{...await s.start(n,o)}}}case"blender-execute":return{ok:!0,data:{result:(await bn(B(t,"code"))).text}};case"blender-scene-info":return{ok:!0,data:{result:await s.sceneInfo()}};case"blender-object-info":return{ok:!0,data:{result:await s.objectInfo(B(t,"name"))}};case"blender-rna":{const o=typeof t.names=="number"?t.names:void 0;return{ok:!0,data:{result:await s.rna(B(t,"path"),o)}}}case"blender-rna-context":{const o=typeof t.object=="string"?t.object:void 0,a=typeof t.collection=="string"?t.collection:void 0;return{ok:!0,data:{result:await s.rnaContext(o,a)}}}case"blender-rna-set":{const o=typeof t.index=="number"?t.index:void 0;return{ok:!0,data:{result:await yn(B(t,"path"),B(t,"property"),t.value,o)}}}case"blender-outliner":{const o=Array.isArray(t.selected)?t.selected.filter(a=>typeof a=="string"):void 0;return{ok:!0,data:{result:await s.outliner(o)}}}case"blender-node-tree":return{ok:!0,data:{result:await s.nodeTree({...typeof t.path=="string"?{path:t.path}:{},...typeof t.material=="string"?{material:t.material}:{}})}};case"blender-uv-layout":return{ok:!0,data:{result:await s.uvLayout({...typeof t.object=="string"?{object:t.object}:{},...typeof t.uvLayer=="string"?{uvLayer:t.uvLayer}:{}})}};case"blender-rig":return{ok:!0,data:{result:await s.rig({...typeof t.object=="string"?{object:t.object}:{}})}};case"blender-action-clip":return{ok:!0,data:{result:await s.actionClip({...typeof t.object=="string"?{object:t.object}:{},...typeof t.bake=="boolean"?{bake:t.bake}:{}})}};case"blender-node-view":{const o=typeof t.action=="string"?t.action:"state";return{ok:!0,data:{result:vn.verbs.some(i=>i.id===o)?yt("blender-node-view",o,t):ht(t)}}}case"blender-outliner-set":return{ok:!0,data:{result:await dt(B(t,"path"),B(t,"column"),t.value!==!1)}};case"blender-screenshot-view":{const o=typeof t.maxSize=="number"?t.maxSize:1e3,a={kind:"document",id:x?.entryId??"blender:runtime"};return{ok:!0,data:{...await s.screenshotView(o),document:a}}}case"blender-read-file":{const o=await s.readFile(B(t,"path")),a=B(t,"transferId"),i=await fetch(`/__editor/blender-file?id=${encodeURIComponent(a)}`,{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 ${a} was refused: ${i.status}`}}case"blender-write-file":{const o=atob(B(t,"base64")),a=Uint8Array.from(o,i=>i.charCodeAt(0));return await s.writeFile(B(t,"path"),a),{ok:!0,data:{written:a.length}}}case"blender-list-files":{const o=await s.listFiles(B(t,"path")),a=s.presented;return{ok:!0,data:{entries:o,...a?{session:a.session,revision:a.revision}:{},...await kn(s)}}}}return{ok:!1,error:`Unknown Blender command ${t.type}`}}catch(n){return{ok:!1,error:n instanceof Error?n.message:String(n)}}}export{Xn as A,Rn as B,Nn as C,bn as D,Fe as E,Pn as F,Vn as G,qn as H,vn as N,Un as a,Wn as b,V as c,me as d,Zn as e,Dn as f,Qn as g,er as h,Jn as i,Kn as j,_n as k,ct as l,A as m,On as n,U as o,Hn as p,zn as q,O as r,Gn as s,yn as t,$n as u,Ln as v,dn as w,sn as x,Tn as y,Yn 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 ne,b as oe,L as ee}from"./LineSegments2-DN9pUfWA.js";import{bh as lt,cl as ae,fo as x,cm as tt,N as hn,a$ as St,em as so,b4 as Ce,co as Rt,ey as ke,cp as En,_ as wt,ej as Ct,fd as qt,er as $e,M as dt,cj as gt,dp as Tt,aV as Le,cW as re,aE as le,c7 as pt,j as Ve,f6 as je,fp as fo,au as zn,dw as Dn,bi as co,aT as Be,c1 as Gt,dd as Zn,eC as Qn,e7 as An,aw as sn,da as Vt,I as Mn,as as Ue,e8 as We,b0 as ie,K as He,B as qe,b9 as Ge,Y as se,cw as mn,ed as Xe,cA as Ye,fx as Ze,db as fe,el as Qe,R as Ke,e6 as Je,c0 as ce,bX as ta,aI as wo,ao as na,eG as oa,d3 as ea,cs as aa,ex as ra,b5 as la,cO as Nn,cY as ia,eU as sa,cE as Kn,c5 as ue,at as fa,ff as ca,eW as ua,f7 as _a,F as ma,ev as da,et as ha,dq as pa,fq as va,n as ga,l as xa,cf as ba}from"./three.core-3arARmh6.js";import{u as P,v as D,w as R,c5 as Z,c4 as H,c6 as N,e2 as L,_ as ya,mB as _e,d_ as kt,x as W,kE as xt,e1 as me,mC as U,dZ as wa,mD as Oa}from"./index-CrSEVMFR.js";import{S as jt}from"./three.module-BLhyNg0e.js";import{t as Ta}from"./blender-runtime-host-IHYN6s2W.js";const Jn=new Set;function Ot(){for(const o of[...Jn])o()}function Aa(o){return Jn.add(o),()=>{Jn.delete(o)}}function to(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 on=N().finite(),Pa=P({name:R(),parent:R().nullable(),connected:Z(),hide:Z(),length:on,matrix:D(L([on,on,on,on])).length(4),select:Z(),active:Z(),lockedWeight:Z()}).strict(),Sa=P({object:R(),displayType:H(["OCTAHEDRAL","STICK","BBONE","ENVELOPE","WIRE"]),showInFront:Z(),mode:R(),bones:D(Pa)}).strict(),Pt={solid:11711154,pose:5294335,poseActive:9240575,poseActiveUnsel:794150,wire:0,vertex:0,lockedWeight:16711680,lockedWeightFactor:128/255};function Ea(o){return new wt(o.r*o.r*.1,o.g*o.g*.1,o.b*o.b*.1)}const kn=[[0,0,0],[.1,.1,.1],[.1,.1,-.1],[-.1,.1,-.1],[-.1,.1,.1],[0,1,0]],Oo=[[2,1,0],[3,2,0],[4,3,0],[1,4,0],[5,1,2],[5,2,3],[5,3,4],[5,4,1]],It=Math.SQRT1_2,Ma=[[It,-It,0],[0,-It,-It],[-It,-It,0],[0,-It,It],[.99388373,.11043154,0],[0,.11043154,-.99388373],[-.99388373,.11043154,0],[0,.11043154,.99388373]],Na=[[0,1],[1,5],[5,3],[3,0],[0,4],[4,5],[5,2],[2,0],[1,2],[2,3],[3,4],[4,1]],Ra=.05;function To(o){return o.select||o.active?2:1}const Ia=10,Fa=4,za=`
2
+ import{a as ne,b as oe,L as ee}from"./LineSegments2-DN9pUfWA.js";import{bh as lt,cl as ae,fo as x,cm as tt,N as hn,a$ as St,em as so,b4 as Ce,co as Rt,ey as ke,cp as En,_ as wt,ej as Ct,fd as qt,er as $e,M as dt,cj as gt,dp as Tt,aV as Le,cW as re,aE as le,c7 as pt,j as Ve,f6 as je,fp as fo,au as zn,dw as Dn,bi as co,aT as Be,c1 as Gt,dd as Zn,eC as Qn,e7 as An,aw as sn,da as Vt,I as Mn,as as Ue,e8 as We,b0 as ie,K as He,B as qe,b9 as Ge,Y as se,cw as mn,ed as Xe,cA as Ye,fx as Ze,db as fe,el as Qe,R as Ke,e6 as Je,c0 as ce,bX as ta,aI as wo,ao as na,eG as oa,d3 as ea,cs as aa,ex as ra,b5 as la,cO as Nn,cY as ia,eU as sa,cE as Kn,c5 as ue,at as fa,ff as ca,eW as ua,f7 as _a,F as ma,ev as da,et as ha,dq as pa,fq as va,n as ga,l as xa,cf as ba}from"./three.core-3arARmh6.js";import{u as P,v as D,w as R,c5 as Z,c4 as H,c6 as N,e2 as L,_ as ya,mB as _e,d_ as kt,x as W,kE as xt,e1 as me,mC as U,dZ as wa,mD as Oa}from"./index-BXVB2CCJ.js";import{S as jt}from"./three.module-BLhyNg0e.js";import{t as Ta}from"./blender-runtime-host-CAi_I7p4.js";const Jn=new Set;function Ot(){for(const o of[...Jn])o()}function Aa(o){return Jn.add(o),()=>{Jn.delete(o)}}function to(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 on=N().finite(),Pa=P({name:R(),parent:R().nullable(),connected:Z(),hide:Z(),length:on,matrix:D(L([on,on,on,on])).length(4),select:Z(),active:Z(),lockedWeight:Z()}).strict(),Sa=P({object:R(),displayType:H(["OCTAHEDRAL","STICK","BBONE","ENVELOPE","WIRE"]),showInFront:Z(),mode:R(),bones:D(Pa)}).strict(),Pt={solid:11711154,pose:5294335,poseActive:9240575,poseActiveUnsel:794150,wire:0,vertex:0,lockedWeight:16711680,lockedWeightFactor:128/255};function Ea(o){return new wt(o.r*o.r*.1,o.g*o.g*.1,o.b*o.b*.1)}const kn=[[0,0,0],[.1,.1,.1],[.1,.1,-.1],[-.1,.1,-.1],[-.1,.1,.1],[0,1,0]],Oo=[[2,1,0],[3,2,0],[4,3,0],[1,4,0],[5,1,2],[5,2,3],[5,3,4],[5,4,1]],It=Math.SQRT1_2,Ma=[[It,-It,0],[0,-It,-It],[-It,-It,0],[0,-It,It],[.99388373,.11043154,0],[0,.11043154,-.99388373],[-.99388373,.11043154,0],[0,.11043154,.99388373]],Na=[[0,1],[1,5],[5,3],[3,0],[0,4],[4,5],[5,2],[2,0],[1,2],[2,3],[3,4],[4,1]],Ra=.05;function To(o){return o.select||o.active?2:1}const Ia=10,Fa=4,za=`
3
3
  attribute vec3 aSolid;
4
4
  attribute vec3 aHint;
5
5
  varying vec3 vColor;
@@ -1,4 +1,4 @@
1
- import{a as d}from"./jsx-runtime-DPjLkJKQ.js";import{j3 as Ie,bt as Ce,r as $,bv as Te,fN as H,bB as N,bC as U,hR as Pe,bA as Be,j4 as De,bK as $e,bq as be,bn as Ve,j5 as Ge,j6 as pe,j7 as He,j8 as We,j9 as ze,ja as fe,bs as me,bp as Ue}from"./index-CrSEVMFR.js";import{c as Ke,a as Y}from"./blender-runtime-skin-CRU3Mf-a.js";import{r as m}from"./index-nmcBqr7Y.js";import{u as qe,v as J,k as X,w as Q,x as Ye,y as oe,t as he,z as Je,A as Xe,B as ge,C as Qe,D as te,E as Ze,F as et,G as tt,H as rt}from"./blender-runtime-host-IHYN6s2W.js";import{r as nt}from"./index-CtzuWnCS.js";import{a as ot}from"./three-contract-Dkt6PmWY.js";import{b as W,o as re}from"./viewport-door-DUmu2YGB.js";import{s as at,a as lt}from"./object3d-document-session-registry-8J8MV7kY.js";import{d9 as st}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-C4ugwGOT.js";import"./hierarchy-marks-C_SAqfl_.js";import"./workspace-arrangement-fQQvrX1V.js";function Oe(e){const a=Number.isFinite(e)&&e>0?e:50;return{degrees:2*Math.atan(72/(2*a))*180/Math.PI,axis:"larger"}}Ie("model",{camera:{fov:Oe(50),opening:[.8187,.4458,.3617]},interaction:{bootTool:"select",boxSelect:"touch"},all:{lighting:{source:"studio",studioPreset:Ce.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 it(e){return`blender-${e.toLowerCase().replace(/_/g,"-")}`}function B(e){return e?.type==="TSE_SOME_ID"&&e.struct==="Object"&&e.object!==void 0}function _e(e){if(e.struct)return e.struct}function je(e,a){return{id:e.id,label:e.name,role:"entity",kind:it(e.icon),..._e(e)?{typeLabel:_e(e)}:{},parentId:a,childIds:e.children.map(o=>o.id),defaultExpanded:e.expanded}}const ct={transform:!0,inspectorFields:!1,persist:!0},ee=new Set;let Ae=0;const ae=new Set;function ye(){queueMicrotask(()=>{Ae++;for(const e of ae)e()})}function dt(e){return ae.add(e),()=>{ae.delete(e)}}function ve(){return Ae}function ut(e){for(const a of ee)if(a.documentId===e||a.documentId===`object3d-document:${e}`)return a;return ee.values().next().value??null}const bt=()=>({position:[0,0,0],rotation:[0,0,0,1],scale:[1,1,1]});function Se(e,a){e.updateWorldMatrix(!0,!1);const o=a.matrixWorld.clone().invert().multiply(e.matrixWorld).elements;return[[o[0],o[1],o[2],o[3]],[o[4],o[5],o[6],o[7]],[o[8],o[9],o[10],o[11]],[o[12],o[13],o[14],o[15]]]}function K(e,a){return`${e} needs a file, and this editor has no door to ask for one: the host's file door (\`EditorHost.files\`, \`@volter/editor-sdk/host\`) reads and writes project-relative paths and has no file-picker member, so there is nothing to open the workbench's own dialog through. Blender's row opens a file browser; run without one, the engine answers "${a}".`}const pt=[{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:`${K("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:K("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:K("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:K("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'"}],ft="collection-instance:";function mt(){const e=new Map;for(const a of X().byId.values()){if(a.type!=="TSE_LAYER_COLLECTION")continue;const o=a.data;o===void 0||!o.startsWith("bpy.data.collections[")||e.has(a.name)||e.set(a.name,{kind:`${ft}${a.name}`,label:a.name,group:"Collection Instance",call:`object.collection_instance_add, collection=${V(a.name)}`})}return[...e.values()]}function Z(){return[...pt,...mt()]}function ht(e){const[a,...o]=e.call.split(", ");return`bpy.ops.${a}(${o.join(", ")})`}function V(e){return JSON.stringify(e)}const gt={"curve.primitive_bezier_circle_add":"Add Bézier Circle","curve.primitive_bezier_curve_add":"Add Bézier","curve.primitive_nurbs_circle_add":"Add Nurbs Circle","curve.primitive_nurbs_curve_add":"Add Nurbs Curve","curve.primitive_nurbs_path_add":"Add Path","image.import_as_mesh_planes":"Import Images as Planes","mesh.primitive_circle_add":"Add Circle","mesh.primitive_cone_add":"Add Cone","mesh.primitive_cube_add":"Add Cube","mesh.primitive_cylinder_add":"Add Cylinder","mesh.primitive_grid_add":"Add Grid","mesh.primitive_ico_sphere_add":"Add Ico Sphere","mesh.primitive_monkey_add":"Add Monkey","mesh.primitive_plane_add":"Add Plane","mesh.primitive_torus_add":"Add Torus","mesh.primitive_uv_sphere_add":"Add UV Sphere","object.armature_add":"Add Armature","object.camera_add":"Add Camera","object.collection_add":"Add to Collection","object.collection_instance_add":"Add Collection Instance","object.constraint_add":"Add Constraint","object.curves_empty_hair_add":"Add Empty Curves","object.curves_random_add":"Add Random Curves","object.data_instance_add":"Add Object Data Instance","object.delete":"Delete","object.duplicate":"Duplicate Objects","object.effector_add":"Add Effector","object.empty_add":"Add Empty","object.empty_image_add":"Add Empty Image/Drop Image to Empty","object.grease_pencil_add":"Add Grease Pencil","object.grease_pencil_dash_modifier_segment_add":"Add Segment","object.grease_pencil_time_modifier_segment_add":"Add Segment","object.lattice_add_to_selected":"Add Lattice Deformer","object.light_add":"Add Light","object.lightprobe_add":"Add Light Probe","object.location_clear":"Clear Location","object.material_slot_add":"Add Material Slot","object.metaball_add":"Add Metaball","object.modifier_add":"Add Modifier","object.origin_set":"Set Origin","object.particle_system_add":"Add Particle System Slot","object.pointcloud_random_add":"Add Point Cloud","object.quick_fur":"Quick Fur","object.rotation_clear":"Clear Rotation","object.scale_clear":"Clear Scale","object.shaderfx_add":"Add Effect","object.shape_key_add":"Add Shape Key","object.speaker_add":"Add Speaker","object.text_add":"Add Text","object.transform_apply":"Apply Object Transform","object.vertex_group_add":"Add Vertex Group","object.volume_add":"Add Volume","object.volume_import":"Import OpenVDB Volume","surface.primitive_nurbs_surface_circle_add":"Add Surface Circle","surface.primitive_nurbs_surface_curve_add":"Add Surface Curve","surface.primitive_nurbs_surface_cylinder_add":"Add Surface Cylinder","surface.primitive_nurbs_surface_sphere_add":"Add Surface Sphere","surface.primitive_nurbs_surface_surface_add":"Add Surface Patch","surface.primitive_nurbs_surface_torus_add":"Add Surface Torus"};function _t(e){const a=/bpy\.ops\.([a-z_]+\.[a-z0-9_]+)\(/.exec(e)?.[1];return a===void 0?void 0:gt[a]}async function z(e,a){const o=["before = {o.name for o in bpy.data.objects}",e,"made = [o.name for o in bpy.data.objects if o.name not in before]",'print("\\n".join(made))'].join(`
1
+ import{a as d}from"./jsx-runtime-DPjLkJKQ.js";import{j3 as Ie,bt as Ce,r as $,bv as Te,fN as H,bB as N,bC as U,hR as Pe,bA as Be,j4 as De,bK as $e,bq as be,bn as Ve,j5 as Ge,j6 as pe,j7 as He,j8 as We,j9 as ze,ja as fe,bs as me,bp as Ue}from"./index-BXVB2CCJ.js";import{c as Ke,a as Y}from"./blender-runtime-skin-BL8Bt4al.js";import{r as m}from"./index-nmcBqr7Y.js";import{u as qe,v as J,k as X,w as Q,x as Ye,y as oe,t as he,z as Je,A as Xe,B as ge,C as Qe,D as te,E as Ze,F as et,G as tt,H as rt}from"./blender-runtime-host-CAi_I7p4.js";import{r as nt}from"./index-CtzuWnCS.js";import{a as ot}from"./three-contract-Dkt6PmWY.js";import{b as W,o as re}from"./viewport-door-DeUzmAvD.js";import{s as at,a as lt}from"./object3d-document-session-registry-BDr1NgeR.js";import{d9 as st}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-B1oiinxO.js";import"./hierarchy-marks-CDIrCtK7.js";import"./workspace-arrangement--rzUYvPc.js";function Oe(e){const a=Number.isFinite(e)&&e>0?e:50;return{degrees:2*Math.atan(72/(2*a))*180/Math.PI,axis:"larger"}}Ie("model",{camera:{fov:Oe(50),opening:[.8187,.4458,.3617]},interaction:{bootTool:"select",boxSelect:"touch"},all:{lighting:{source:"studio",studioPreset:Ce.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 it(e){return`blender-${e.toLowerCase().replace(/_/g,"-")}`}function B(e){return e?.type==="TSE_SOME_ID"&&e.struct==="Object"&&e.object!==void 0}function _e(e){if(e.struct)return e.struct}function je(e,a){return{id:e.id,label:e.name,role:"entity",kind:it(e.icon),..._e(e)?{typeLabel:_e(e)}:{},parentId:a,childIds:e.children.map(o=>o.id),defaultExpanded:e.expanded}}const ct={transform:!0,inspectorFields:!1,persist:!0},ee=new Set;let Ae=0;const ae=new Set;function ye(){queueMicrotask(()=>{Ae++;for(const e of ae)e()})}function dt(e){return ae.add(e),()=>{ae.delete(e)}}function ve(){return Ae}function ut(e){for(const a of ee)if(a.documentId===e||a.documentId===`object3d-document:${e}`)return a;return ee.values().next().value??null}const bt=()=>({position:[0,0,0],rotation:[0,0,0,1],scale:[1,1,1]});function Se(e,a){e.updateWorldMatrix(!0,!1);const o=a.matrixWorld.clone().invert().multiply(e.matrixWorld).elements;return[[o[0],o[1],o[2],o[3]],[o[4],o[5],o[6],o[7]],[o[8],o[9],o[10],o[11]],[o[12],o[13],o[14],o[15]]]}function K(e,a){return`${e} needs a file, and this editor has no door to ask for one: the host's file door (\`EditorHost.files\`, \`@volter/editor-sdk/host\`) reads and writes project-relative paths and has no file-picker member, so there is nothing to open the workbench's own dialog through. Blender's row opens a file browser; run without one, the engine answers "${a}".`}const pt=[{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:`${K("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:K("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:K("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:K("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'"}],ft="collection-instance:";function mt(){const e=new Map;for(const a of X().byId.values()){if(a.type!=="TSE_LAYER_COLLECTION")continue;const o=a.data;o===void 0||!o.startsWith("bpy.data.collections[")||e.has(a.name)||e.set(a.name,{kind:`${ft}${a.name}`,label:a.name,group:"Collection Instance",call:`object.collection_instance_add, collection=${V(a.name)}`})}return[...e.values()]}function Z(){return[...pt,...mt()]}function ht(e){const[a,...o]=e.call.split(", ");return`bpy.ops.${a}(${o.join(", ")})`}function V(e){return JSON.stringify(e)}const gt={"curve.primitive_bezier_circle_add":"Add Bézier Circle","curve.primitive_bezier_curve_add":"Add Bézier","curve.primitive_nurbs_circle_add":"Add Nurbs Circle","curve.primitive_nurbs_curve_add":"Add Nurbs Curve","curve.primitive_nurbs_path_add":"Add Path","image.import_as_mesh_planes":"Import Images as Planes","mesh.primitive_circle_add":"Add Circle","mesh.primitive_cone_add":"Add Cone","mesh.primitive_cube_add":"Add Cube","mesh.primitive_cylinder_add":"Add Cylinder","mesh.primitive_grid_add":"Add Grid","mesh.primitive_ico_sphere_add":"Add Ico Sphere","mesh.primitive_monkey_add":"Add Monkey","mesh.primitive_plane_add":"Add Plane","mesh.primitive_torus_add":"Add Torus","mesh.primitive_uv_sphere_add":"Add UV Sphere","object.armature_add":"Add Armature","object.camera_add":"Add Camera","object.collection_add":"Add to Collection","object.collection_instance_add":"Add Collection Instance","object.constraint_add":"Add Constraint","object.curves_empty_hair_add":"Add Empty Curves","object.curves_random_add":"Add Random Curves","object.data_instance_add":"Add Object Data Instance","object.delete":"Delete","object.duplicate":"Duplicate Objects","object.effector_add":"Add Effector","object.empty_add":"Add Empty","object.empty_image_add":"Add Empty Image/Drop Image to Empty","object.grease_pencil_add":"Add Grease Pencil","object.grease_pencil_dash_modifier_segment_add":"Add Segment","object.grease_pencil_time_modifier_segment_add":"Add Segment","object.lattice_add_to_selected":"Add Lattice Deformer","object.light_add":"Add Light","object.lightprobe_add":"Add Light Probe","object.location_clear":"Clear Location","object.material_slot_add":"Add Material Slot","object.metaball_add":"Add Metaball","object.modifier_add":"Add Modifier","object.origin_set":"Set Origin","object.particle_system_add":"Add Particle System Slot","object.pointcloud_random_add":"Add Point Cloud","object.quick_fur":"Quick Fur","object.rotation_clear":"Clear Rotation","object.scale_clear":"Clear Scale","object.shaderfx_add":"Add Effect","object.shape_key_add":"Add Shape Key","object.speaker_add":"Add Speaker","object.text_add":"Add Text","object.transform_apply":"Apply Object Transform","object.vertex_group_add":"Add Vertex Group","object.volume_add":"Add Volume","object.volume_import":"Import OpenVDB Volume","surface.primitive_nurbs_surface_circle_add":"Add Surface Circle","surface.primitive_nurbs_surface_curve_add":"Add Surface Curve","surface.primitive_nurbs_surface_cylinder_add":"Add Surface Cylinder","surface.primitive_nurbs_surface_sphere_add":"Add Surface Sphere","surface.primitive_nurbs_surface_surface_add":"Add Surface Patch","surface.primitive_nurbs_surface_torus_add":"Add Surface Torus"};function _t(e){const a=/bpy\.ops\.([a-z_]+\.[a-z0-9_]+)\(/.exec(e)?.[1];return a===void 0?void 0:gt[a]}async function z(e,a){const o=["before = {o.name for o in bpy.data.objects}",e,"made = [o.name for o in bpy.data.objects if o.name not in before]",'print("\\n".join(made))'].join(`
2
2
  `),i=await te(o,!0,a??_t(e));return i.error!==null?{made:[],error:i.error}:{made:i.result.split(`
3
3
  `).map(b=>b.trim()).filter(b=>b.length>0),error:null}}async function jt(e,a){const o=[`_sel = {${e.map(V).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(${V(a)})`].join(`
4
4
  `),i=await te(o,!1);i.error!==null&&$().console.error(`Blender refused the selection write: ${i.error}`,"blender-outliner")}async function ne(e,a){if(e.length===0)return{destination:"Nothing is selected, so there was nothing to run it on.",persisted:!1};const o=[`targets = [bpy.data.objects[n] for n in [${e.map(V).join(", ")}]]`,"with bpy.context.temp_override(selected_objects=targets, selected_editable_objects=targets, active_object=targets[0], object=targets[0]):",` ${a}`].join(`
@@ -1 +1 @@
1
- import{r as s,t as n}from"./index-CrSEVMFR.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";const w="workspace.menu",b={menu:"window",items:[{id:"blender-save-screenshot-editor",label:"Save Screenshot (Editor)…",testId:"menu-save-screenshot-editor",execute:async()=>{const e=s(),t=await e.documents.captureActive();n(t.base64);const o=`screenshots/screenshot-${new Date().toISOString().replace(/[:.]/g,"-")}.png`;await e.files.write(o,Uint8Array.from(atob(t.base64),r=>r.charCodeAt(0))),e.console.log(`Saved the screenshot to ${o}.`,"blender-screenshot")}}]};export{b as menu,w as point};
1
+ import{r as s,t as n}from"./index-BXVB2CCJ.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";const w="workspace.menu",b={menu:"window",items:[{id:"blender-save-screenshot-editor",label:"Save Screenshot (Editor)…",testId:"menu-save-screenshot-editor",execute:async()=>{const e=s(),t=await e.documents.captureActive();n(t.base64);const o=`screenshots/screenshot-${new Date().toISOString().replace(/[:.]/g,"-")}.png`;await e.files.write(o,Uint8Array.from(atob(t.base64),r=>r.charCodeAt(0))),e.console.log(`Saved the screenshot to ${o}.`,"blender-screenshot")}}]};export{b as menu,w as point};