@volter/game-editor 0.5.117 → 0.5.119

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 (294) 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 +2175 -2175
  5. package/dist/assets/{AssetBudgetPanel-C3ktrntz.js → AssetBudgetPanel-DLCLAueS.js} +3 -3
  6. package/dist/assets/{AudioViewer-DZdZAy4A.js → AudioViewer-Di7nEDRs.js} +1 -1
  7. package/dist/assets/{CanvasBoardDocument-DsCSciSC.js → CanvasBoardDocument-C1d64umq.js} +1 -1
  8. package/dist/assets/{CanvasSceneViewport-DP0dTNXv.js → CanvasSceneViewport--AeFMte7.js} +1 -1
  9. package/dist/assets/{ColorInput-BN6Sksjk.js → ColorInput-DcPp2Jfs.js} +1 -1
  10. package/dist/assets/{ColorPicker-B76LmE6h.js → ColorPicker-3aaqxI6W.js} +1 -1
  11. package/dist/assets/{EntityModelDocument-hrUqEuvd.js → EntityModelDocument-CxovZk_6.js} +1 -1
  12. package/dist/assets/{EnvironmentAssetDocument-BhAbBL9x.js → EnvironmentAssetDocument-CdSqG9Vm.js} +1 -1
  13. package/dist/assets/{GameplaySessionTimeline-O0K6MuzG.js → GameplaySessionTimeline-C2k1jpYs.js} +1 -1
  14. package/dist/assets/{ImageViewer-BBx46cOu.js → ImageViewer-vkmrf7wM.js} +1 -1
  15. package/dist/assets/InspectorObjectPreview-mEPAUoAZ.js +1 -0
  16. package/dist/assets/{JsonAssetDocument-ZUCXmUBz.js → JsonAssetDocument-BlmkUDOB.js} +1 -1
  17. package/dist/assets/{LiveModuleDocument-DuY9SmFp.js → LiveModuleDocument-C0-wrS1f.js} +1 -1
  18. package/dist/assets/{LutAssetDocument-DjxOl21m.js → LutAssetDocument-Bc7eX697.js} +1 -1
  19. package/dist/assets/{ModelAssetDocument-DwbuSNGD.js → ModelAssetDocument--yhgna0g.js} +1 -1
  20. package/dist/assets/{NonThreeAuthoringBootstrap-CYHVR-Hz.js → NonThreeAuthoringBootstrap-Cn-U4PJv.js} +1 -1
  21. package/dist/assets/{Object3DDocumentToolbar-BDHutCDl.js → Object3DDocumentToolbar-CLmS1cvt.js} +1 -1
  22. package/dist/assets/Object3DDocumentViewport-DcvCbksR.js +2 -0
  23. package/dist/assets/{Object3DPreview-Dr9nj_z2.js → Object3DPreview-DgyDWbEl.js} +1 -1
  24. package/dist/assets/{OnlineAssetDetail-BG5XJ3Un.js → OnlineAssetDetail-veDlf5bA.js} +1 -1
  25. package/dist/assets/{PlayBar-DUI9-ZXC.js → PlayBar-BngVcGVk.js} +1 -1
  26. package/dist/assets/{QuarksAssetDocument-DTiRvQPL.js → QuarksAssetDocument-LE6lAFKN.js} +1 -1
  27. package/dist/assets/{ReactCanvasControls-XnnzrwCo.js → ReactCanvasControls-Gd1z8W3l.js} +1 -1
  28. package/dist/assets/{RootSelectionOverlay-FMiu-poB.js → RootSelectionOverlay-CBKKYwha.js} +1 -1
  29. package/dist/assets/{ShaderAssetDocument-4tRvE91q.js → ShaderAssetDocument-DubXFKhu.js} +1 -1
  30. package/dist/assets/{ShadowEditor-BpVAEirI.js → ShadowEditor-Bnf0lzSV.js} +1 -1
  31. package/dist/assets/{SourceAssetViewer-3P0858z5.js → SourceAssetViewer-B0A_jGKd.js} +1 -1
  32. package/dist/assets/{StageHost-7UErMg6u.js → StageHost-CY3uI_aZ.js} +2 -2
  33. package/dist/assets/{StoryPreviewMount-BBlVAlRY.js → StoryPreviewMount-CyhPGq6N.js} +1 -1
  34. package/dist/assets/{ThreeBoardDocument-DK53_YAX.js → ThreeBoardDocument-BXbQC6hf.js} +2 -2
  35. package/dist/assets/{ThreeIsolationSceneContent-qdUEzAND.js → ThreeIsolationSceneContent-V9yw24JZ.js} +1 -1
  36. package/dist/assets/{ToolObject3DPreview-DsWlZd8B.js → ToolObject3DPreview-nZwQcx4f.js} +1 -1
  37. package/dist/assets/{Toolbar-whqYcmiS.js → Toolbar-C1jZJGkF.js} +1 -1
  38. package/dist/assets/{TransientHint-BKaDeHXM.js → TransientHint-DvRAObC-.js} +1 -1
  39. package/dist/assets/{VideoViewer-CTEVUoaa.js → VideoViewer-CkwpcCCY.js} +1 -1
  40. package/dist/assets/{ViewportShadingMenu-DtRQHmb8.js → ViewportShadingMenu-1qncBlne.js} +1 -1
  41. package/dist/assets/{active-ingest-DutfA1v2.js → active-ingest-C8hWtGOu.js} +2 -2
  42. package/dist/assets/{animation-clock-DdjDOr9_.js → animation-clock-sx3eUOIs.js} +1 -1
  43. package/dist/assets/{animation-mixers.service-BowFSgLp.js → animation-mixers.service-C2ZQApSd.js} +1 -1
  44. package/dist/assets/{animation-timeline.utility-CgUv6Sm7.js → animation-timeline.utility-DEAcBLRa.js} +1 -1
  45. package/dist/assets/{asset-budget-asset.menu-BpfhGqPG.js → asset-budget-asset.menu-BrilAqmU.js} +1 -1
  46. package/dist/assets/{asset-budget.action-DhpViDZH.js → asset-budget.action-Cjwe4G7Y.js} +1 -1
  47. package/dist/assets/{asset-budget.document-d83SOYMm.js → asset-budget.document-DX2AQu1-.js} +1 -1
  48. package/dist/assets/{asset-budget.menu-XBWaxw1e.js → asset-budget.menu-D5vhleIA.js} +1 -1
  49. package/dist/assets/{asset-editor-persistence-C57Ygr55.js → asset-editor-persistence-DYsnXrDV.js} +1 -1
  50. package/dist/assets/{asset-loaders-C84nx9Q-.js → asset-loaders-Btu5GbV9.js} +1 -1
  51. package/dist/assets/{asset-preview-CfITAp9I.js → asset-preview-DUkvMSbV.js} +1 -1
  52. package/dist/assets/{audio-unlock.service-DnnTTLZ7.js → audio-unlock.service-CR5IpmwB.js} +1 -1
  53. package/dist/assets/{audio.utility-kVrU3d_Z.js → audio.utility-DT1iCksO.js} +1 -1
  54. package/dist/assets/autoplay.service-CoK3RZ8n.js +1 -0
  55. package/dist/assets/{babylon-authoring-adapter-CKIK8_RI.js → babylon-authoring-adapter-D1a4KiZ4.js} +1 -1
  56. package/dist/assets/{binding-resolver-Bw9NHH6D.js → binding-resolver-DVwy1f66.js} +2 -2
  57. package/dist/assets/{blender-node-editor.document-CpmEWYqS.js → blender-node-editor.document-DQskD7VZ.js} +1 -1
  58. package/dist/assets/{blender-properties-tab-BqzNQYYj.js → blender-properties-tab-BceodQGX.js} +1 -1
  59. package/dist/assets/{blender-runtime-host-Ce-6lPKR.js → blender-runtime-host-CYpPXvau.js} +1 -1
  60. package/dist/assets/{blender-runtime-skin-Bmj6NwqI.js → blender-runtime-skin-BCIA18OX.js} +33 -33
  61. package/dist/assets/{blender-runtime.document-fQm8jfOR.js → blender-runtime.document-BgpoM8Fv.js} +1 -1
  62. package/dist/assets/{blender-screenshot.menu-D6z6gPx2.js → blender-screenshot.menu-Dry3spPI.js} +1 -1
  63. package/dist/assets/{blender-timeline.document-COcMnV4P.js → blender-timeline.document-f1NbXl1A.js} +1 -1
  64. package/dist/assets/{blender-uv-editor.document-CCldDOrb.js → blender-uv-editor.document-B86Zjzwa.js} +1 -1
  65. package/dist/assets/{blender-version.status-CQcek3bs.js → blender-version.status-DLI3DMhy.js} +1 -1
  66. package/dist/assets/{blender.command-nx7fbZaN.js → blender.command-8BMB07nA.js} +1 -1
  67. package/dist/assets/{board-guides-CJhpaM4Y.js → board-guides-pink9jqH.js} +1 -1
  68. package/dist/assets/{bridge.command-CM2oB0DL.js → bridge.command-RNbvL1Uu.js} +3 -3
  69. package/dist/assets/{browserAll-YVE01_g6.js → browserAll-CxLDb-Wi.js} +1 -1
  70. package/dist/assets/{build-player.document-ZuyCnu8R.js → build-player.document-VB0OYBs5.js} +1 -1
  71. package/dist/assets/{build-profiles.document-DFsJ688E.js → build-profiles.document-nzcde20n.js} +1 -1
  72. package/dist/assets/{build-progress.status-B5tu0uSU.js → build-progress.status-CRcXiSQL.js} +1 -1
  73. package/dist/assets/{build-session-HBNiEqfG.js → build-session-CXhhaZcU.js} +1 -1
  74. package/dist/assets/{build.action-B1HcItm2.js → build.action-CsGQuQCv.js} +1 -1
  75. package/dist/assets/{build.command-JnzmVI1I.js → build.command-BKPVHWoq.js} +1 -1
  76. package/dist/assets/{build.header-Scr4Om6R.js → build.header-BRxFtJIm.js} +1 -1
  77. package/dist/assets/{build.menu-B27qwD29.js → build.menu-BWsofb5K.js} +1 -1
  78. package/dist/assets/{build.service-j05ziYI4.js → build.service-BXlhc8EL.js} +1 -1
  79. package/dist/assets/{camera-D7hXuRtx.js → camera-DF1vLxUp.js} +1 -1
  80. package/dist/assets/{camera-runtime.inspector-DaCMA860.js → camera-runtime.inspector-BGNL8HWr.js} +1 -1
  81. package/dist/assets/{canvas-design-mount-Bk-EnFSI.js → canvas-design-mount-Bu2g_Z6U.js} +3 -3
  82. package/dist/assets/{canvas-entry-runtime-BvUkzblV.js → canvas-entry-runtime-fW5lru8c.js} +2 -2
  83. package/dist/assets/{canvas-preview-frames-DxAJx35P.js → canvas-preview-frames-DHBuQIUp.js} +1 -1
  84. package/dist/assets/{canvas-story-capture.service-Dcv8Ibb8.js → canvas-story-capture.service-NFSYHWK1.js} +2 -2
  85. package/dist/assets/{capability-coverage-K_0BAIJU.js → capability-coverage-BgYecYfX.js} +1 -1
  86. package/dist/assets/{collaboration-presence-CneIKoPa.js → collaboration-presence-68pTiVZq.js} +1 -1
  87. package/dist/assets/{collider-BccZNdIw.js → collider-D9JbQvrM.js} +1 -1
  88. package/dist/assets/{component-board.service-Cs4o_Pmv.js → component-board.service-7uXFNxxq.js} +2 -2
  89. package/dist/assets/{component-board.service-CvzV2CKA.js → component-board.service-BUGGXVtp.js} +2 -2
  90. package/dist/assets/{component-board.service-D1jNfabq.js → component-board.service-Chqlg7al.js} +2 -2
  91. package/dist/assets/{component-contracts.service-V1W-u2S9.js → component-contracts.service-C0KqJ2Wt.js} +1 -1
  92. package/dist/assets/{component-instance-root-h1Rflrqv.js → component-instance-root-C-pbJiuH.js} +1 -1
  93. package/dist/assets/{component-verbs.command-xKxDnGqP.js → component-verbs.command-CeVbwEJf.js} +1 -1
  94. package/dist/assets/{component-verbs.service-CWbkFEcM.js → component-verbs.service-C9e75Wbt.js} +1 -1
  95. package/dist/assets/{config-DX3-CpHt.js → config-0G2Gsloi.js} +2 -2
  96. package/dist/assets/{configurations-Cs8SnMrq.js → configurations-B5wOctpd.js} +1 -1
  97. package/dist/assets/{connection.status-Dn0RTNEw.js → connection.status-dnBL9sXy.js} +1 -1
  98. package/dist/assets/{constraints.inspector-Cpy5rhJS.js → constraints.inspector-flOa9ON8.js} +1 -1
  99. package/dist/assets/{content-bounds-DVWAzm9f.js → content-bounds-B-QU78MQ.js} +1 -1
  100. package/dist/assets/{contract-system-adapters-qNph3R6b.js → contract-system-adapters-CLuitKH0.js} +1 -1
  101. package/dist/assets/{coverage.service-ByfW9X4H.js → coverage.service-Dzqr2y1w.js} +1 -1
  102. package/dist/assets/{create-runtime-CWPvbU_l.js → create-runtime-BrGlRGkJ.js} +1 -1
  103. package/dist/assets/{curve-C3wndxn2.js → curve-Bflps6L3.js} +1 -1
  104. package/dist/assets/{data-asset-C2Z6itFZ.js → data-asset-7kO0Nvo6.js} +1 -1
  105. package/dist/assets/{data-ref-Ce8LtHGi.js → data-ref-CZU_ASsS.js} +1 -1
  106. package/dist/assets/{debug-bridge-Bmj0Li8p.js → debug-bridge-BqOqFvgc.js} +1 -1
  107. package/dist/assets/{debug-registry-D-FgdH_H.js → debug-registry-G8zPk-Nr.js} +1 -1
  108. package/dist/assets/{deferred-ingest-play-B2wgrovp.js → deferred-ingest-play-kASYVQUE.js} +2 -2
  109. package/dist/assets/{design-time-canvas-mount-DOkVlNVk.js → design-time-canvas-mount-Botb5RBm.js} +2 -2
  110. package/dist/assets/{design-time-layers-M6o2CVXg.js → design-time-layers-C_a0gkvn.js} +1 -1
  111. package/dist/assets/{design-time-mount.service-CVFa4k-2.js → design-time-mount.service-G0HQVCYH.js} +2 -2
  112. package/dist/assets/{design-time-mount.service-DFHRGai1.js → design-time-mount.service-yBwAwEDr.js} +2 -2
  113. package/dist/assets/{design-time-react-mount-BuIgYRLs.js → design-time-react-mount-C5uZw4qR.js} +1 -1
  114. package/dist/assets/{document-preview-three-CSJT6-30.js → document-preview-three-6oJXAldu.js} +1 -1
  115. package/dist/assets/{dom-authoring-adapter-BijfMbzl.js → dom-authoring-adapter-BM18vASm.js} +1 -1
  116. package/dist/assets/{draco3d-B69Ry2Se.js → draco3d-CnwY_UE5.js} +1 -1
  117. package/dist/assets/{edit-mode-audio.service-DR6XWs99.js → edit-mode-audio.service-IVYwYhXx.js} +1 -1
  118. package/dist/assets/{edit-mode-authoring-1VsqGvER.js → edit-mode-authoring-BBaUhfte.js} +1 -1
  119. package/dist/assets/{edit-mode-networking.service-Cc2mfOwp.js → edit-mode-networking.service-7BwLCOSa.js} +1 -1
  120. package/dist/assets/{editor-api-CcAdYERA.js → editor-api-Bg6j14zU.js} +1 -1
  121. package/dist/assets/{editor-layers-Bwn6K1Ky.js → editor-layers-C7pYh_be.js} +1 -1
  122. package/dist/assets/{editor-shell-store-Bw3pK03h.js → editor-shell-store-C95nPlGP.js} +1 -1
  123. package/dist/assets/{entity-object-gqyR3fgx.js → entity-object-Hk6zSR-H.js} +1 -1
  124. package/dist/assets/{extend-CjPoJR18.js → extend-Dg1WzVJs.js} +1 -1
  125. package/dist/assets/{fork-menu-YR2i30zs.js → fork-menu-U1FqBTKg.js} +1 -1
  126. package/dist/assets/{frame-debugger-store-4_X7-Ujc.js → frame-debugger-store-g_-BDkou.js} +1 -1
  127. package/dist/assets/{game-contract-seams-Bx5G1BLD.js → game-contract-seams-DNZ0qcRP.js} +1 -1
  128. package/dist/assets/{game-css-scope-transform-Drjn-mgv.js → game-css-scope-transform-BVdFlT0j.js} +1 -1
  129. package/dist/assets/{game-document.service-DBdUvKzX.js → game-document.service-D_H02oOh.js} +1 -1
  130. package/dist/assets/{game-eval.command-D-na3sdH.js → game-eval.command-DHY8rN8p.js} +1 -1
  131. package/dist/assets/{game-module-access-CSPO6YZ9.js → game-module-access-BjeAQf2X.js} +1 -1
  132. package/dist/assets/{game-network-CLJ7qTbE.js → game-network-CEFeVO4q.js} +3 -3
  133. package/dist/assets/{gameplay-export-sJ3B_j4Z.js → gameplay-export-BpZOg7tS.js} +1 -1
  134. package/dist/assets/{gameplay-replay-DZdbHEST.js → gameplay-replay-CQ0pKMJt.js} +1 -1
  135. package/dist/assets/{gameplay.command-D9nckU6s.js → gameplay.command-C0elGVza.js} +1 -1
  136. package/dist/assets/{generation-jobs-DupRqWi-.js → generation-jobs-ngXJRscY.js} +1 -1
  137. package/dist/assets/{generation.service-CQNhtOYa.js → generation.service-BLZT9du5.js} +1 -1
  138. package/dist/assets/{generations-nBks8sue.js → generations-B-qIxLtY.js} +1 -1
  139. package/dist/assets/{generations.status-DUTDEbmm.js → generations.status-CwxQjJh8.js} +1 -1
  140. package/dist/assets/{hierarchy-marks-CO_ecrau.js → hierarchy-marks-DZyjShW7.js} +1 -1
  141. package/dist/assets/{hosted-asset-materialization-u30qTmDc.js → hosted-asset-materialization-Bfa_2TLA.js} +1 -1
  142. package/dist/assets/{index-6bVz1BMz.js → index-2DslQjTP.js} +1 -1
  143. package/dist/assets/{index-cdOfmiK4.js → index-Bel72yaK.js} +1 -1
  144. package/dist/assets/{index-Dt5jm3bx.js → index-Bi1gL-tZ.js} +7 -7
  145. package/dist/assets/{index-DhhhiiLJ.js → index-CQ6b8Wtq.js} +1 -1
  146. package/dist/assets/{index-B20JTxwn.js → index-D4I12t4G.js} +1 -1
  147. package/dist/assets/{index-D1uSj66l.js → index-D6omBm3b.js} +1 -1
  148. package/dist/assets/{index-ywphVnYA.js → index-DOYVxsuq.js} +1 -1
  149. package/dist/assets/{index-p2Kb3X1e.js → index-DfXjK5yA.js} +1 -1
  150. package/dist/assets/{index-Bs-JJBoj.js → index-Y5KbBHX2.js} +2 -2
  151. package/dist/assets/{inference-diagnostics-B32cN1KY.js → inference-diagnostics-Ble-6r6b.js} +1 -1
  152. package/dist/assets/{ingest-boot-viewport-Bs2ZgRaJ.js → ingest-boot-viewport-CWek3Hxi.js} +1 -1
  153. package/dist/assets/{ingest-siblings-DwzuubQ3.js → ingest-siblings-DimTKd0-.js} +1 -1
  154. package/dist/assets/{ingest-source-persistence-CMpSUZnL.js → ingest-source-persistence-lTo50Ca-.js} +1 -1
  155. package/dist/assets/{ingest.service-BjmjdEXH.js → ingest.service-DrIQPkzX.js} +1 -1
  156. package/dist/assets/{inspect-Br6bvKYF.js → inspect-CzbZFjV8.js} +1 -1
  157. package/dist/assets/instances.command-CLEsp91I.js +1 -0
  158. package/dist/assets/{json-history-resource-_clmB965.js → json-history-resource-BHeJn7fe.js} +1 -1
  159. package/dist/assets/{layered-pick-C_WeiIoE.js → layered-pick-DpLsmyN5.js} +1 -1
  160. package/dist/assets/{light-WOrPHDb-.js → light-D5XrsEC7.js} +1 -1
  161. package/dist/assets/{live-project-verbs-C2jF4YJL.js → live-project-verbs-BYR1JnTB.js} +1 -1
  162. package/dist/assets/{machine.document-DTbenFr7.js → machine.document-yfUVatUZ.js} +1 -1
  163. package/dist/assets/{machines.finder-BS0dBMs1.js → machines.finder-tSlMzZwB.js} +1 -1
  164. package/dist/assets/{material-CD2DR79m.js → material-D0GQYful.js} +1 -1
  165. package/dist/assets/{material-factory-B4aM15jS.js → material-factory-DJklQcw7.js} +1 -1
  166. package/dist/assets/{mesh-DTofF_go.js → mesh-j1D2J7qd.js} +1 -1
  167. package/dist/assets/{model-asset-sections.service-BxEhl0ko.js → model-asset-sections.service-BZS1zSpl.js} +1 -1
  168. package/dist/assets/{model-inspection-BEPkYxZm.js → model-inspection-DOy7D2tz.js} +1 -1
  169. package/dist/assets/{model-thumbnail-BT7oIq1o.js → model-thumbnail-BKKkDFbB.js} +1 -1
  170. package/dist/assets/{models.finder-DaMe1qYN.js → models.finder-BxLVqoV9.js} +1 -1
  171. package/dist/assets/{module-mode-BddTykwB.js → module-mode-YiN4W9ZK.js} +2 -2
  172. package/dist/assets/{mount-canvas-ingest-root-DXvGskTU.js → mount-canvas-ingest-root-Bdg0WIoA.js} +2 -2
  173. package/dist/assets/{mount-dom-ingest-root-CKhZMS30.js → mount-dom-ingest-root-bUKMfIeZ.js} +2 -2
  174. package/dist/assets/{mount-ingest-root-99LbxpVS.js → mount-ingest-root-CdRrgzOS.js} +2 -2
  175. package/dist/assets/{mount-manifest-BSjGZJtM.js → mount-manifest-4Q5jphsi.js} +1 -1
  176. package/dist/assets/{mount-three-ingest-root-7ndKUA_v.js → mount-three-ingest-root-BIQ42T_s.js} +1 -1
  177. package/dist/assets/{mounted-authoring-B7_F5jnJ.js → mounted-authoring-BSeER64c.js} +1 -1
  178. package/dist/assets/{mounted-story-viewport-source-DK5VrFqH.js → mounted-story-viewport-source-CNXpwsu7.js} +1 -1
  179. package/dist/assets/{native-debug-module-739ES-Zm.js → native-debug-module-B02t5tKF.js} +1 -1
  180. package/dist/assets/{navigation-C6ZlGnSt.js → navigation-CZGLeUYT.js} +1 -1
  181. package/dist/assets/{navmesh.menu-x5By6bBe.js → navmesh.menu-DUQbXNd-.js} +1 -1
  182. package/dist/assets/{navmesh.service-Btopj44G.js → navmesh.service-DfQGJz9M.js} +1 -1
  183. package/dist/assets/network-observer.service-uhIHGVVb.js +1 -0
  184. package/dist/assets/{network.utility-5MBcxgB_.js → network.utility-DyHeuhkv.js} +1 -1
  185. package/dist/assets/{object3d-document-session-registry-j6Y5JrzG.js → object3d-document-session-registry-BgIvaFaY.js} +2 -2
  186. package/dist/assets/{oid-transform-B7bZOfh0.js → oid-transform-CKAtfeIy.js} +1 -1
  187. package/dist/assets/{particles-BcTfNklT.js → particles-Dp_69HKn.js} +1 -1
  188. package/dist/assets/{pixi-authoring-adapter-CnYwoVLZ.js → pixi-authoring-adapter-DHzidBFe.js} +1 -1
  189. package/dist/assets/{pixi-live-write-target-3Q4ukIef.js → pixi-live-write-target-DI7BwEh9.js} +1 -1
  190. package/dist/assets/{play.command-CsXpcIJO.js → play.command-D5IGAHHu.js} +2 -2
  191. package/dist/assets/{presentation-Dyo74fnC.js → presentation-BmL71dK_.js} +1 -1
  192. package/dist/assets/{product-D_CEDap_.js → product-DHzfpjX5.js} +1 -1
  193. package/dist/assets/{profiler.action-4pakkT-I.js → profiler.action-DJHW-8kd.js} +1 -1
  194. package/dist/assets/{profiler.menu-C3qMbQDL.js → profiler.menu-b5EXwtKt.js} +1 -1
  195. package/dist/assets/{profiler.utility-DopaGlcK.js → profiler.utility-m_zY78O7.js} +1 -1
  196. package/dist/assets/{project-authoring-session-BErT1Vxt.js → project-authoring-session-C0dh_xhl.js} +2 -2
  197. package/dist/assets/{properties-bone-constraints.inspector-DrwOv8lP.js → properties-bone-constraints.inspector-MiAGiudr.js} +1 -1
  198. package/dist/assets/{properties-bone.inspector-Cgm5HNYg.js → properties-bone.inspector-t_Z5rAJQ.js} +1 -1
  199. package/dist/assets/{properties-collection.inspector-BpRHp08N.js → properties-collection.inspector-UMmAXCL2.js} +1 -1
  200. package/dist/assets/{properties-constraints.inspector-Bcps7O7L.js → properties-constraints.inspector-BJDPmPw-.js} +1 -1
  201. package/dist/assets/{properties-data.inspector-Cbm0WQCb.js → properties-data.inspector-DuFrI0k7.js} +1 -1
  202. package/dist/assets/{properties-material.inspector-b2HVBeRi.js → properties-material.inspector-p_-0WMYe.js} +1 -1
  203. package/dist/assets/{properties-modifiers.inspector-bJ2xlb_E.js → properties-modifiers.inspector-DifRZYnA.js} +1 -1
  204. package/dist/assets/{properties-object.inspector-E1TqDSQi.js → properties-object.inspector-CA-ey_Xp.js} +1 -1
  205. package/dist/assets/{properties-output.inspector-DvWo2xp8.js → properties-output.inspector-CutEzo-6.js} +1 -1
  206. package/dist/assets/{properties-particles.inspector-D_QiAw0d.js → properties-particles.inspector-DqxX720i.js} +1 -1
  207. package/dist/assets/{properties-physics.inspector-BIh1EfkD.js → properties-physics.inspector-DeE7nab3.js} +1 -1
  208. package/dist/assets/{properties-render.inspector-CQ_T14za.js → properties-render.inspector-C4GR_Jbv.js} +1 -1
  209. package/dist/assets/{properties-scene.inspector-d3xZpohF.js → properties-scene.inspector-G6qpaSvx.js} +1 -1
  210. package/dist/assets/{properties-texture.inspector-CiodVE2E.js → properties-texture.inspector-CuMiSkls.js} +1 -1
  211. package/dist/assets/{properties-view-layer.inspector-BTvjGbST.js → properties-view-layer.inspector-UP-Qrpi4.js} +1 -1
  212. package/dist/assets/{properties-world.inspector-HjQ_XQWr.js → properties-world.inspector-Du4-w7om.js} +1 -1
  213. package/dist/assets/{r3f-design-session-CgJHKbHk.js → r3f-design-session-CFvvadl6.js} +2 -2
  214. package/dist/assets/{r3f-physics-binding-Bs90cL2H.js → r3f-physics-binding-B1yHIZ3-.js} +1 -1
  215. package/dist/assets/{r3f-source-authoring-adapter-Dz-2gR6C.js → r3f-source-authoring-adapter-Cdr6PweA.js} +1 -1
  216. package/dist/assets/{react-canvas-navigation-BuUlk_hY.js → react-canvas-navigation-CwJ7nVjs.js} +1 -1
  217. package/dist/assets/{react-inspector.service-he9nhYSF.js → react-inspector.service-Bk8FWPiJ.js} +1 -1
  218. package/dist/assets/{react-story-board-DFX_3Eor.js → react-story-board-DJka6aFH.js} +1 -1
  219. package/dist/assets/{react-three-rapier.esm-Cqb1QJsp.js → react-three-rapier.esm-CK-ueHf1.js} +1 -1
  220. package/dist/assets/{react-world-authoring-adapter-4OOk2v75.js → react-world-authoring-adapter-C3nt4-cm.js} +1 -1
  221. package/dist/assets/{realm-services-B51BueDW.js → realm-services-OTF9qWQP.js} +1 -1
  222. package/dist/assets/{reflection-probe-capture.inspector-Cibd2Skj.js → reflection-probe-capture.inspector-Cs5C-Gbo.js} +1 -1
  223. package/dist/assets/{registry-BJ0P13Qw.js → registry-DT60P4rn.js} +1 -1
  224. package/dist/assets/{relative-import-specifier-Bg1UDyTq.js → relative-import-specifier-XFUW6YBu.js} +1 -1
  225. package/dist/assets/{render-env-DClqJsug.js → render-env-HoIZ9H43.js} +1 -1
  226. package/dist/assets/{render-features-BgLAARMw.js → render-features-DbKSwOnR.js} +1 -1
  227. package/dist/assets/{render-settings-TkRnwGvq.js → render-settings-Zk2ir5dr.js} +1 -1
  228. package/dist/assets/{resolve-three-DNMNH9g9.js → resolve-three-BzrR7JWE.js} +3 -3
  229. package/dist/assets/{root-seam-contract-BAI8C8KI.js → root-seam-contract-iCFvW5nM.js} +1 -1
  230. package/dist/assets/{run-selection-C62JWX8Y.js → run-selection-CYLW4laW.js} +1 -1
  231. package/dist/assets/{scene-capture-Csu-9Z3v.js → scene-capture-BDxuZTci.js} +1 -1
  232. package/dist/assets/{scene-document.service-CXu3hwi9.js → scene-document.service-hHG-XrSh.js} +2 -2
  233. package/dist/assets/{scene-framing-DgQMZG99.js → scene-framing-V-SgiDK8.js} +1 -1
  234. package/dist/assets/{seeded-random-xhwosly5.js → seeded-random-WpfQL6aR.js} +1 -1
  235. package/dist/assets/{setup-renderer-sNRGFHD3.js → setup-renderer-0WWuS9i8.js} +1 -1
  236. package/dist/assets/{source-object3d-authoring-adapter-DiUz2ONX.js → source-object3d-authoring-adapter-CFU_Fshn.js} +1 -1
  237. package/dist/assets/{source-persistence-backend-DKdo7qA1.js → source-persistence-backend-C2AhVqAj.js} +1 -1
  238. package/dist/assets/{stage-keyboard-CCAEPBds.js → stage-keyboard-CQVRIDTP.js} +1 -1
  239. package/dist/assets/{stage-overlay-set-BIT1H7YG.js → stage-overlay-set-KzvWXwHW.js} +1 -1
  240. package/dist/assets/{stage-presence-markers-Dde0uo4f.js → stage-presence-markers-E9oyWXiD.js} +1 -1
  241. package/dist/assets/{stage-transform-tools-C5xuzlvB.js → stage-transform-tools-BZ1SCvZJ.js} +1 -1
  242. package/dist/assets/{standard-viewport-dressing-4mM0Zr-0.js → standard-viewport-dressing-Bjv5He7G.js} +1 -1
  243. package/dist/assets/{state-watch.action-BocmVXfv.js → state-watch.action-DjBFqWBP.js} +1 -1
  244. package/dist/assets/{state-watch.menu-VacWy0Ty.js → state-watch.menu-DzOzKkGc.js} +1 -1
  245. package/dist/assets/{state-watch.utility-f6mj3xS-.js → state-watch.utility-DNYAkOo7.js} +1 -1
  246. package/dist/assets/{story-capture-D3oUwSdi.js → story-capture-DFB3BBPY.js} +1 -1
  247. package/dist/assets/{story-documents-BvxE0Jgp.js → story-documents-DXKRzySA.js} +1 -1
  248. package/dist/assets/{story-documents.service-Ci9hEaEi.js → story-documents.service-BDz0APp7.js} +1 -1
  249. package/dist/assets/{story-documents.service-BPkgxZFz.js → story-documents.service-D1DeBd3j.js} +1 -1
  250. package/dist/assets/{story-media-presence-nuojiKa3.js → story-media-presence-BPsfRpvY.js} +1 -1
  251. package/dist/assets/{story-pixi-preview-MPFqGD8z.js → story-pixi-preview-BG8PqRtP.js} +1 -1
  252. package/dist/assets/{story-presentation-Bi6tUUJT.js → story-presentation-DPkOgZC_.js} +1 -1
  253. package/dist/assets/{story-three-preview-CquJrBi1.js → story-three-preview-CA_ZO3gk.js} +2 -2
  254. package/dist/assets/{studio-environment-PbtbyxPv.js → studio-environment-CdhDVR6z.js} +1 -1
  255. package/dist/assets/{surface-state-vm1S5q1D.js → surface-state-YwN1G_p1.js} +1 -1
  256. package/dist/assets/{syntactic-prop-specs-CRrIsekh.js → syntactic-prop-specs-DTolqAEx.js} +1 -1
  257. package/dist/assets/{team-playtest.service-gQVOEk6C.js → team-playtest.service-UVSMuvGr.js} +1 -1
  258. package/dist/assets/{three-C_mp4XTZ.js → three-BWw0pySQ.js} +1 -1
  259. package/dist/assets/{three-authoring-adapter-D4_90yFr.js → three-authoring-adapter-DzMA_DwF.js} +1 -1
  260. package/dist/assets/three-authoring.service-BhAFaBZd.js +2 -0
  261. package/dist/assets/{three-ingest-runtime-BPcTsDxh.js → three-ingest-runtime-8F3EuiEb.js} +1 -1
  262. package/dist/assets/{three-integration-CD3ATFnX.js → three-integration-Ckew2mzY.js} +2 -2
  263. package/dist/assets/three-integration.service-Clpg1bwf.js +1 -0
  264. package/dist/assets/{three-projection-core-DbYmRPci.js → three-projection-core-DUeeR0MU.js} +1 -1
  265. package/dist/assets/{three-state-BPIytwjV.js → three-state-b1tGu0bA.js} +1 -1
  266. package/dist/assets/{three-story-capture.service-CFKkQGtX.js → three-story-capture.service-BVMOtsox.js} +2 -2
  267. package/dist/assets/{three-story-model-DJE_sYaC.js → three-story-model-CHPgselm.js} +1 -1
  268. package/dist/assets/{three-viewport-presentation-CNXPLHEX.js → three-viewport-presentation-Bi5Vi-V0.js} +1 -1
  269. package/dist/assets/{transform-mode-request-B-gJ5g51.js → transform-mode-request-c158UlT4.js} +1 -1
  270. package/dist/assets/{transport-strip-B36KBNDz.js → transport-strip-BT3OSCfw.js} +1 -1
  271. package/dist/assets/transport.header-Ba0KSRMN.js +1 -0
  272. package/dist/assets/{tuples-D_IQElzZ.js → tuples-ptzBiDMS.js} +1 -1
  273. package/dist/assets/{ui-board-document-BL31txjD.js → ui-board-document-ByPdXe4d.js} +2 -2
  274. package/dist/assets/{user-data-DZ8WeiSK.js → user-data-BiEVHDVL.js} +1 -1
  275. package/dist/assets/{utility-view-state-CJp6vkri.js → utility-view-state-B23KZ1A8.js} +1 -1
  276. package/dist/assets/{viewport-door-Bdlxiiu3.js → viewport-door-6PGegXgC.js} +1 -1
  277. package/dist/assets/{viewport-root-presentation-lfnmV2dZ.js → viewport-root-presentation-9ojnNAw-.js} +1 -1
  278. package/dist/assets/{viewport-surface-status-BkWCfY-g.js → viewport-surface-status-BQTkaBAp.js} +1 -1
  279. package/dist/assets/{webworkerAll-DrO32SxK.js → webworkerAll-mkVPDCCA.js} +1 -1
  280. package/dist/assets/{workspace-arrangement-9RRX0-sM.js → workspace-arrangement-DJpS2Tt-.js} +1 -1
  281. package/dist/assets/{world-documents-BjqjhIv6.js → world-documents-Cf7PyvJb.js} +1 -1
  282. package/dist/assets/{world-root-stage-binding-BGWAd6qi.js → world-root-stage-binding-Do5rC66L.js} +1 -1
  283. package/dist/assets/{xstate-animation-binding-qDvqsOQe.js → xstate-animation-binding-_GVz5yQp.js} +1 -1
  284. package/dist/assets/{xstate-animation-meta-DG39Stxz.js → xstate-animation-meta-BjXxbus2.js} +1 -1
  285. package/dist-node/cli.js +24 -25
  286. package/package.json +16 -16
  287. package/dist/assets/InspectorObjectPreview-cEL6iskI.js +0 -1
  288. package/dist/assets/Object3DDocumentViewport-Dy6oCsqf.js +0 -2
  289. package/dist/assets/autoplay.service-S6u51gjV.js +0 -1
  290. package/dist/assets/instances.command-CS1LShqz.js +0 -1
  291. package/dist/assets/network-observer.service-B_aXblWh.js +0 -1
  292. package/dist/assets/three-authoring.service-0XLcjtfj.js +0 -2
  293. package/dist/assets/three-integration.service-DjQ3BgqY.js +0 -1
  294. package/dist/assets/transport.header-CAIoNhnT.js +0 -1
@@ -1 +1 @@
1
- import{a as i}from"./jsx-runtime-DPjLkJKQ.js";import{go as Ce}from"./index-Dt5jm3bx.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-Ce-6lPKR.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-DVWAzm9f.js";import"./hierarchy-marks-CO_ecrau.js";import"./workspace-arrangement-9RRX0-sM.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-Bi1gL-tZ.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-CYpPXvau.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-B-QU78MQ.js";import"./hierarchy-marks-DZyjShW7.js";import"./workspace-arrangement-DJpS2Tt-.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-Dt5jm3bx.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-Ce-6lPKR.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-B76LmE6h.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-Bi1gL-tZ.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-CYpPXvau.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-3aaqxI6W.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};
@@ -1,4 +1,4 @@
1
- import{r as x,ls as yt}from"./index-Dt5jm3bx.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 Ue,aC as xt,d7 as Et,ej as St,cP as ye,el as kt,cm as Bt,cl as Pe,fo as ce,ex as At,d5 as Ct,d9 as It,cJ as jt,e as Ve}from"./three.core-3arARmh6.js";import{f as Ft}from"./clip-planes-CnAI6DZn.js";import{a as Tt}from"./content-bounds-DVWAzm9f.js";const _t=1024*1024,We={Uint8Array,Int8Array,Uint16Array,Int16Array,Uint32Array,Int32Array,Float32Array,Float64Array},Lt=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>_t||!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 Lt(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=We[o.type];if(!Number.isSafeInteger(o.$frameColumn)||o.$frameColumn<1||!a||!Object.hasOwn(We,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 Ge=4096;class Nt{#r;#o;#a=[];#n=new Map;#C=0;#d=null;#i=null;#h=!1;#v=!1;#x=e=>{!this.#v&&this.#n.size===0||(e.preventDefault(),e.returnValue="")};#f=new Map;#y=new Map;#p=null;#b=0;#E=0;#S=0;#l=null;#k=null;#c=null;constructor(e){this.#o=e,this.#r=new Worker(new URL("/assets/worker-D3-3vOkS.js",import.meta.url),{type:"module",name:"blender"}),globalThis.addEventListener?.("beforeunload",this.#x),this.#r.onmessage=n=>void this.#A(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?`
1
+ import{r as x,ls as yt}from"./index-Bi1gL-tZ.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 Ue,aC as xt,d7 as Et,ej as St,cP as ye,el as kt,cm as Bt,cl as Pe,fo as ce,ex as At,d5 as Ct,d9 as It,cJ as jt,e as Ve}from"./three.core-3arARmh6.js";import{f as Ft}from"./clip-planes-CnAI6DZn.js";import{a as Tt}from"./content-bounds-B-QU78MQ.js";const _t=1024*1024,We={Uint8Array,Int8Array,Uint16Array,Int16Array,Uint32Array,Int32Array,Float32Array,Float64Array},Lt=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>_t||!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 Lt(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=We[o.type];if(!Number.isSafeInteger(o.$frameColumn)||o.$frameColumn<1||!a||!Object.hasOwn(We,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 Ge=4096;class Nt{#r;#o;#a=[];#n=new Map;#C=0;#d=null;#i=null;#h=!1;#v=!1;#x=e=>{!this.#v&&this.#n.size===0||(e.preventDefault(),e.returnValue="")};#f=new Map;#y=new Map;#p=null;#b=0;#E=0;#S=0;#l=null;#k=null;#c=null;constructor(e){this.#o=e,this.#r=new Worker(new URL("/assets/worker-D3-3vOkS.js",import.meta.url),{type:"module",name:"blender"}),globalThis.addEventListener?.("beforeunload",this.#x),this.#r.onmessage=n=>void this.#A(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
2
  Blender's last output:
3
3
  ${this.#a.join(`
4
4
  `)}`:"",i=this.#c===null?null:Math.round(this.#c/1048576),c=i!==null&&i>=Ge-16?`Blender ran out of memory: its heap reached ${i} MB of the in-tab engine's ${Ge} MB, and this scene needs more. `:"",h=new Error(`${c}Blender worker failed: ${o||"the worker script did not load"}${s}${a}`);console.error(h.message);for(const l of[...this.#n.keys()])this.#w(l);for(const l of this.#n.values())l.reject(h);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.#e({op:"start",project:e,...n===void 0?{}:{document:n}}),this.#d)}#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.#k}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.#m(),this.#h)return;this.#h=!0,globalThis.removeEventListener?.("beforeunload",this.#x);const e=this.#M("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.#w(r);for(const r of this.#n.values())r.reject(n);this.#n.clear()}metrics(e=performance.now()){let n=null,r=this.#b,s=this.#E,o=this.#S;for(const a of this.#f.values()){const i=e-a;(n===null||i>n)&&(n=i),i>r&&(r=i),i>=5e3&&(s+=1),i>=3e4&&(o+=1)}return{inFlightMs:n===null?null:Math.round(n),lastCallMs:this.#p===null?null:Math.round(this.#p),maxCallMs:this.#p===null&&n===null?null:Math.round(r),callsOver5s:s,callsOver30s:o,lastCallWindow:this.#l,wasmMemoryMB:this.#c===null?null:Math.round(this.#c/1048576)}}#w(e){this.#y.get(e)?.(),this.#y.delete(e);const n=this.#f.get(e);if(n===void 0)return;this.#f.delete(e);const r=performance.now()-n;this.#p=r,r>this.#b&&(this.#b=r),r>=5e3&&(this.#E+=1),r>=3e4&&(this.#S+=1),this.#l!==null&&this.#l.start===n&&(this.#l={start:n,end:n+r})}#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.#C;return new Promise((s,o)=>{this.#n.set(r,{resolve:s,reject:o});const a=performance.now();this.#f.set(r,a),this.#l={start:a,end:null},this.#y.set(r,this.#M(`waiting for worker ${e.op}`));try{this.#r.postMessage({...e,id:r})}catch(i){this.#n.delete(r),this.#w(r),o(i instanceof Error?i:new Error(String(i)))}})}#M(e){try{const n=this.#o.work?.(e);return()=>{try{n?.()}catch{}}}catch{return()=>{}}}#B=new $t;#g=null;#m(){this.#B.reset();const e=this.#g;if(this.#g=null,e)try{Promise.resolve(this.#o.stage?.({...e,abort:!0})).catch(()=>{})}catch{}}async#A(e){if("op"in e){if(e.op==="frame-stream"){try{const o=await this.#B.accept(e.chunk);if(o){const a=o.value;if(a.op==="present"){await this.#A({...a,id:e.id});return}if(a.op!=="stage"||!this.#o.stage)throw new Error("The presenter does not support staged Blender frames");this.#g={session:a.session,revision:a.revision},await this.#o.stage(a)}this.#r.postMessage({op:"present-result",id:e.id})}catch(o){this.#m(),this.#r.postMessage({op:"present-result",id:e.id,error:o instanceof Error?o.message:String(o)})}return}if(e.op==="document-dirty"){this.#v=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.#k={session:r.session,revision:r.revision});const s=this.#M("presenting worker frame");try{const o=await this.#o.present(e.frame,e.description,e.capture);this.#g=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.#m(),this.#r.postMessage({op:"present-result",id:e.id,error:o instanceof Error?o.message:String(o)})}finally{s()}return}"error"in e&&this.#m();const n=this.#n.get(e.id);n&&(this.#n.delete(e.id),this.#w(e.id),"error"in e?n.reject(new Error(e.error)):n.resolve(e.result))}}const Ot="/assets/agx-base-srgb-BjWZJgrZ.lut",Rt="/assets/agx-look-medium-high-contrast-D5F_ob1L.lut",Dt="/assets/agx-look-punchy-dxsnycNs.lut",Ut="/assets/filmic-srgb-Ct35FIH6.lut",T=new Float64Array(12),ze=[0,0,0],O=new Float64Array(3),H=new Float64Array(3),_=new Int8Array([1,0,0,1,1,0,0,1,2,1,0,0,1,0,1,0,2,1,0,0,1,1,0,1,2,0,1,0,0,1,0,1,1,2,1,0,0,1,0,0,1,1,1,2,0,0,1,0,1,1,0,1,0,2]);function 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),h=Math.min(Math.floor(a),e-2),l=Math.min(Math.floor(i),e-2),u=Math.min(Math.floor(c),e-2),E=a-h,m=i-l,S=c-u,y=(d,g,F,I)=>{const w=(h+g+(l+F)*e+(u+I)*o)*3;T[d]=t[w]/65535,T[d+1]=t[w+1]/65535,T[d+2]=t[w+2]/65535};y(0,0,0,0),y(9,1,1,1),O[0]=E,O[1]=m,O[2]=S;const p=Pt(E,m,S)*9;y(3,_[p],_[p+1],_[p+2]),y(6,_[p+3],_[p+4],_[p+5]);const C=O[_[p+6]],v=O[_[p+7]],f=O[_[p+8]];for(let d=0;d<3;d++){const g=T[d];ze[d]=g+C*(T[3+d]-g)+v*(T[6+d]-T[3+d])+f*(T[9+d]-T[6+d])}return ze}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 Ie(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;H[0]=X(t[a])*c,H[1]=X(t[a+1])*c,H[2]=X(t[a+2])*c;const h=r(H);s[a]=Math.round(h[0]*255),s[a+1]=Math.round(h[1]*255),s[a+2]=Math.round(h[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":Ot,"./agx-look-medium-high-contrast.lut":Rt,"./agx-look-punchy.lut":Dt,"./filmic-srgb.lut":Ut})[`./${t.replace(/\.lut$/,"")}.lut`],import.meta.url)}const Wt=57,L=-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),He=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 qt(t,e){qe(Gt,e,He),qe(zt,He,Y);const n=Qe-L,r=et(t,(Math.log2(Math.max(Y[0],1e-10))-L)/n,(Math.log2(Math.max(Y[1],1e-10))-L)/n,(Math.log2(Math.max(Y[2],1e-10))-L)/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 Ht={"AgX - Medium High Contrast":"agx-look-medium-high-contrast.lut","AgX - Punchy":"agx-look-punchy.lut"};function Xt(t,e){const n=Qe-L;return et(t,(Math.log2(Math.max(e[0],1e-10))-L)/n,(Math.log2(Math.max(e[1],1e-10))-L)/n,(Math.log2(Math.max(e[2],1e-10))-L)/n)}function Yt(t,e,n,r={}){const s=r.exposure??1,o=r.composedLook===!0?Xt:qt;return Ie(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 Ie(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 Ie(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,h=bt(),l=h.renderer,u={target:l.getRenderTarget(),toneMapping:l.toneMapping,exposure:l.toneMappingExposure,colorSpace:l.outputColorSpace,shadows:l.shadowMap.enabled,shadowType:l.shadowMap.type,clearColor:l.getClearColor(new vt),clearAlpha:l.getClearAlpha(),background:t.background};let E,m,S=!1;try{E=new De(i,c,{type:Ue}),n.effect&&(E.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(E),l.clear(),l.render(t,e);const y=n.effect?.render(l,E,t,e)??E;if(y.texture.type!==Ue||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),S=!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),d=i*4;for(let w=0;w<c;w++)f.data.set(p.subarray((c-1-w)*d,(c-w)*d),w*d);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 S=!0,I}finally{t.background=u.background,l.setRenderTarget(u.target),l.toneMapping=u.toneMapping,l.toneMappingExposure=u.exposure,l.outputColorSpace=u.colorSpace,l.shadowMap.enabled=u.shadows,l.shadowMap.type=u.shadowType,l.setClearColor(u.clearColor,u.clearAlpha),m?.dispose(),E?.dispose(),h.release({discard:!S})}}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 je(){const t=x().documents.context(ct());return on(t)?t:null}function sn(){return je()?.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 U=null,se=null,Fe="",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 Tn(t){return xe.add(t),()=>{xe.delete(t)}}function _n(){return ot}function Ln(){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,Fe=e,ee({loading:!0});try{const r=await Mn(t);if(n!==we)return;je()?.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(Fe);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=je();if(U!==null&&ge===t)return;U!==null&&(U(),U=null,ge=null);const e=t;if(e!==null){U=e.subscribeFrames(un),ge=e;return}Q||(Q=!0,x().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 On(t,e,n){try{return await dt(t,e,n),se=null,Te(Fe),!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,Le=0;const oe=new Set;let it=0;function me(){return ke}function Rn(){return Le}function Dn(t){return oe.add(t),()=>{oe.delete(t)}}function V(t){ke={...ke,...t},Le+=1;for(const e of[...oe])e()}function fn(){it+=1,Le+=1;for(const t of[...oe])t()}function Un(){return it}function R(t){V({refusal:t})}const Xe=new Map;function pn(t){let e=Xe.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())}),Xe.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":Ht[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:h,width:l,height:u}=c,E=s?tn(h,l*u,e.exposure):r?Kt(a,h,l*u,e.exposure):Yt(a,h,l*u,{exposure:e.exposure,composedLook:n!=="None"}),m=document.createElement("canvas");m.width=l,m.height=u;const S=m.getContext("2d");if(!S)throw new Error("Blender display transform could not create its image canvas");const y=S.createImageData(l,u),p=l*4;for(let f=0;f<u;f++){const d=(u-1-f)*p;y.data.set(E.subarray(d,d+p),f*p)}S.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(h.buffer,h.byteOffset,h.byteLength);let d="";for(let g=0;g<f.length;g+=32768)d+=String.fromCharCode(...f.subarray(g,g+32768));v.linearBase64=btoa(d),v.linearWidth=l,v.linearHeight=u}return v}async function gn(t,e,n,r,s=()=>{}){const o={none:ye,agx:Ve,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]??Ve,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 B=null,Ye=0;function Pn(t){const e=++Ye;return B=t,D(),()=>{Ye===e&&(B=null,D())}}function te(){const t=b?.document,e=x().documents.activeId(),n=e?.startsWith("document:model:")?e.slice(15):B?.blend;return!n||!t||n===t?null:`Blender is editing ${t}; ${n} is not open. Return to ${t} before editing.`}function j(){return B?.documentId??mn}function ct(){return j()}async function Vn(t,e){const n=x();if(!n.session.open())throw new Error("Opening a model requires an open project session.");const r=n.projectLocalState.projectRootPath();if(r===null)throw new Error("Opening a model requires a project path.");if(B!==t||n.documents.activeId()!==t.documentId)return!1;const s=M(),o=s.start(r,t.blend);return e(),await o,B!==t?!1:(await s.present(),B===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 D(){ut+=1;for(const t of[...Be])t()}async function zn(t,e){return A()?M().rna(t,e):null}async function qn(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 D(),o}async function Hn(t){A()&&await M().viewShading(t)}async function bn(t,e=!0,n="Blender Python"){const r=await M().execute(t,e,n);D();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=>x().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 D(),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":R(`Moving "${String(t.node??"a node")}" writes Node.location — editing parity is not the program.`);break;case"link":R("Dragging between sockets would make a link — editing parity is not the program.");break;case"set-value":R(`Changing "${String(t.socket??"a socket")}" writes the socket's default_value — editing parity is not the program.`);break;case"use-nodes":R("Use Nodes writes Material.use_nodes — editing parity is not the program.");break;case"collapse-panel":R(`Collapsing "${String(t.panel??"a panel")}" writes the panel's is_collapsed — editing parity is not the program.`);break;default:R(`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&&x().history.invalidate([...ne]),ne.clear()}let Ae=null,Ze=!1;function re(t){try{const e=x().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(){Ze||(Ze=!0,x().session.onBeforeClose(async()=>{await b?.stop(),Ce()}),x().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 Ke(){const{documents:t}=x(),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: ${B?.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 h=>{if(b!==a)throw new Error("This Blender history belongs to a closed worker");const l=await a.historyStep(i.id,h);return D(),await dn(sn().selected),l};x().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(B===null)return;const i=j(),c=await Ke();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(B===null){if(i?.render)throw new Error("Rendering a Blender frame needs the Model document open; nothing is presenting.");return{}}const h=j(),l=re("waiting for Model presenter");let u;try{u=await Ke()}finally{l()}if(e.signal.throwIfAborted(),j()!==h)throw new Error("Blender document changed before its frame could be presented");const E=re("applying frame to Model"),m=(()=>{try{return u.applyFrame(o)}finally{E()}})(),S=typeof m=="object"&&m!==null&&"held"in m,y=S?m.held:null,p=w=>({...w===void 0?{}:{capture:w},...S?{held:y}:{}});if(u.recordPresentation(a),!i||(pt=i,!i.render))return p(void 0);const C=u.snapshot(),v=()=>{if(e.signal.throwIfAborted(),j()!==h||u.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:d,target:g,up:F}=i;if(!d||!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=u.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 Pe().setFromMatrix4(G),gt=new Pe().setFromMatrix4(ae),ie=new ce(d[0],d[1],d[2]).applyMatrix4(G),$e=new ce(g[0],g[1],g[2]).applyMatrix4(G),Ne=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=Tt(I.root).getBoundingSphere(new At),z=Ft(ie.distanceTo(Oe.center),Oe.radius);let N;if(f.orthographic){const q=f.fov/2;N=new Ct(-q*le,q*le,q,-q,z.near,z.far)}else N=new It(f.fov,le,z.near,z.far);N.up.copy(Ne),N.position.copy(ie),N.lookAt($e),N.updateMatrixWorld(!0);const Re={position:ie.clone().applyMatrix4(ae).toArray(),target:$e.clone().applyMatrix4(ae).toArray(),up:Ne.clone().applyMatrix3(gt).toArray()};u.recordPhotograph({sent:{position:d,target:g,up:F},photographed:Re,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:Re})}finally{n=!1,e.signal.removeEventListener("abort",I.dispose),I.dispose()}},log:(o,a)=>console[o](`[blender] ${a}`)});const s=b;return x().session.reportWorkerCallMeter("Blender",()=>s.metrics()),b}const Sn="models/model.blend",k=(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=x().projectLocalState.projectRootPath();if(e===null)return{};let n;try{n=await t.execute(`import bpy