@volter/game-editor 0.5.155 → 0.5.156

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 +2138 -2138
  5. package/dist/assets/{AssetBudgetPanel-B2Wb7-b1.js → AssetBudgetPanel-BQdPOlqp.js} +3 -3
  6. package/dist/assets/{AudioViewer-gge--M-h.js → AudioViewer-C5y-GQP-.js} +1 -1
  7. package/dist/assets/{CanvasBoardDocument-CyGiXrEJ.js → CanvasBoardDocument-DbChIzOl.js} +1 -1
  8. package/dist/assets/{CanvasSceneViewport-ChG9oRS8.js → CanvasSceneViewport-BAUsxjQl.js} +1 -1
  9. package/dist/assets/{ColorInput-Dzpqy-J3.js → ColorInput-DGN6sIXS.js} +1 -1
  10. package/dist/assets/{ColorPicker-CqJPBHlh.js → ColorPicker-C83d-sVK.js} +1 -1
  11. package/dist/assets/{EntityModelDocument-D7XDf6uB.js → EntityModelDocument-D4IbBjti.js} +1 -1
  12. package/dist/assets/{EnvironmentAssetDocument-BgO7Hl3g.js → EnvironmentAssetDocument-BqTeI8cz.js} +1 -1
  13. package/dist/assets/{GameplaySessionTimeline-BBmwHCKA.js → GameplaySessionTimeline-FqH6Sz1y.js} +1 -1
  14. package/dist/assets/{ImageViewer-BjxoscVa.js → ImageViewer-C_4yhkuB.js} +1 -1
  15. package/dist/assets/InspectorObjectPreview-DCEUdndv.js +1 -0
  16. package/dist/assets/{JsonAssetDocument-D81JuRAm.js → JsonAssetDocument-C-drMm6I.js} +1 -1
  17. package/dist/assets/{LiveModuleDocument-bgStMiU1.js → LiveModuleDocument-C73e8H-p.js} +1 -1
  18. package/dist/assets/{LutAssetDocument-cl9Jq0Zw.js → LutAssetDocument-DfBf46zV.js} +1 -1
  19. package/dist/assets/{ModelAssetDocument-CYCLKpxJ.js → ModelAssetDocument-BgP4YOdh.js} +1 -1
  20. package/dist/assets/{NonThreeAuthoringBootstrap-DhHjvD5d.js → NonThreeAuthoringBootstrap-qnG1AmuP.js} +1 -1
  21. package/dist/assets/{Object3DDocumentToolbar-CQbARBIW.js → Object3DDocumentToolbar-34bmavxS.js} +1 -1
  22. package/dist/assets/Object3DDocumentViewport-Blr8aQeS.js +2 -0
  23. package/dist/assets/{Object3DPreview-BOZYzjz_.js → Object3DPreview-wWjXCo6v.js} +1 -1
  24. package/dist/assets/{OnlineAssetDetail-DdKHHjxg.js → OnlineAssetDetail-C4iaJDOr.js} +1 -1
  25. package/dist/assets/{PlayBar-CAarfEOh.js → PlayBar-CBvuzv1Q.js} +1 -1
  26. package/dist/assets/{QuarksAssetDocument-GTbawoy7.js → QuarksAssetDocument-BlYjfRGp.js} +1 -1
  27. package/dist/assets/{ReactCanvasControls-DIFkxeKv.js → ReactCanvasControls-C06AmSIB.js} +1 -1
  28. package/dist/assets/{RootSelectionOverlay-Dv_w1D9s.js → RootSelectionOverlay-CPw5aFQf.js} +1 -1
  29. package/dist/assets/{ShaderAssetDocument-OA-nshNN.js → ShaderAssetDocument-BVeK6Owt.js} +1 -1
  30. package/dist/assets/{ShadowEditor-Cp1QVCo9.js → ShadowEditor-BKEyyzOq.js} +1 -1
  31. package/dist/assets/{SourceAssetViewer-CGGHBzgL.js → SourceAssetViewer-DB6Fg4Re.js} +1 -1
  32. package/dist/assets/{StageHost-BMgCrIPG.js → StageHost-dHitOcUe.js} +2 -2
  33. package/dist/assets/{StoryPreviewMount-CyF7FwI7.js → StoryPreviewMount-BONsNxze.js} +1 -1
  34. package/dist/assets/{ThreeBoardDocument-DCJkLWU8.js → ThreeBoardDocument-D4CSNWux.js} +2 -2
  35. package/dist/assets/{ThreeIsolationSceneContent-CxsM-QHW.js → ThreeIsolationSceneContent-DkXfPv14.js} +1 -1
  36. package/dist/assets/{ToolObject3DPreview-lsAoRxtr.js → ToolObject3DPreview-DvGqYC9c.js} +1 -1
  37. package/dist/assets/{Toolbar-yvFlRv8R.js → Toolbar-BqUPRrhs.js} +1 -1
  38. package/dist/assets/{TransientHint-Bslncm_l.js → TransientHint-w6qEumzV.js} +1 -1
  39. package/dist/assets/{VideoViewer-Ba-e91kP.js → VideoViewer-B99XdTSg.js} +1 -1
  40. package/dist/assets/{ViewportShadingMenu-CgbuQ0e-.js → ViewportShadingMenu-9AaJLhq_.js} +1 -1
  41. package/dist/assets/{active-ingest-CJ2U5L1O.js → active-ingest-DwF45MBm.js} +2 -2
  42. package/dist/assets/{animation-clock-CVpGQSVj.js → animation-clock-DW8tJ4l7.js} +1 -1
  43. package/dist/assets/{animation-mixers.service-CI0K1tfi.js → animation-mixers.service-kllpdYjk.js} +1 -1
  44. package/dist/assets/{animation-timeline.utility-Wg6WxkxK.js → animation-timeline.utility-C9UVqsSv.js} +1 -1
  45. package/dist/assets/{asset-budget-asset.menu-BbCBxjLY.js → asset-budget-asset.menu-Cl8tmAtz.js} +1 -1
  46. package/dist/assets/{asset-budget.action-CK8h0v1A.js → asset-budget.action-dw6ctYdi.js} +1 -1
  47. package/dist/assets/{asset-budget.document-CYVcDLvH.js → asset-budget.document-BfDL1bS4.js} +1 -1
  48. package/dist/assets/{asset-budget.menu-BcTijQ2R.js → asset-budget.menu-DiOMl0Yh.js} +1 -1
  49. package/dist/assets/{asset-editor-persistence-DWp0E8cc.js → asset-editor-persistence-D2o6zb5I.js} +1 -1
  50. package/dist/assets/{asset-loaders-Bo91oPiL.js → asset-loaders-bMb8Nvq8.js} +1 -1
  51. package/dist/assets/{asset-preview-BUpxsHNd.js → asset-preview-uRqIcg3G.js} +1 -1
  52. package/dist/assets/{audio-unlock.service-CyiXe5qk.js → audio-unlock.service-CBeaLfYT.js} +1 -1
  53. package/dist/assets/{audio.utility-BN4mANCx.js → audio.utility-iWLchCUR.js} +1 -1
  54. package/dist/assets/autoplay.service---Nu6koq.js +1 -0
  55. package/dist/assets/{babylon-authoring-adapter-C-EAsfMr.js → babylon-authoring-adapter-Bt8B089v.js} +1 -1
  56. package/dist/assets/{binding-resolver-DoOAFM2m.js → binding-resolver-qdReeiXP.js} +2 -2
  57. package/dist/assets/{blender-node-editor.document-BzkGPs0i.js → blender-node-editor.document-DHj3Luuz.js} +1 -1
  58. package/dist/assets/{blender-properties-tab-B1ggqOYB.js → blender-properties-tab-mrwIpZz_.js} +1 -1
  59. package/dist/assets/{blender-runtime-host-MJZEPwHA.js → blender-runtime-host-rAbOjzv5.js} +1 -1
  60. package/dist/assets/{blender-runtime-skin-hw-op7Nt.js → blender-runtime-skin-CVACAkwd.js} +2 -2
  61. package/dist/assets/{blender-runtime.document-CvTyAou8.js → blender-runtime.document-VP-2qjfk.js} +10 -10
  62. package/dist/assets/{blender-screenshot.menu-C4VXpXVa.js → blender-screenshot.menu-B_zThqdR.js} +1 -1
  63. package/dist/assets/{blender-timeline.document-BRFDd7JZ.js → blender-timeline.document-BMNJBWXP.js} +1 -1
  64. package/dist/assets/{blender-uv-editor.document-CM09ITWu.js → blender-uv-editor.document-B2xmye2O.js} +1 -1
  65. package/dist/assets/{blender-version.status-CPyc_-kA.js → blender-version.status-BzVGyJhB.js} +1 -1
  66. package/dist/assets/{blender.command-ktKz-2Zi.js → blender.command-CNlvvxaj.js} +1 -1
  67. package/dist/assets/{board-guides-CCiyx8cT.js → board-guides-BPvQZ1ob.js} +1 -1
  68. package/dist/assets/{bridge.command-tP5j6w72.js → bridge.command-dqFe1Lyp.js} +3 -3
  69. package/dist/assets/{browserAll-BSQVVrNG.js → browserAll-DLXEw1rV.js} +1 -1
  70. package/dist/assets/{build-player.document-BwbBXtF5.js → build-player.document-Bra3vDcF.js} +1 -1
  71. package/dist/assets/{build-profiles.document-UiF_BsjE.js → build-profiles.document-DuSvWEO8.js} +1 -1
  72. package/dist/assets/{build-progress.status-Bf5KpnxC.js → build-progress.status-hkKRXBcc.js} +1 -1
  73. package/dist/assets/{build-session-C4jVDt-u.js → build-session-B5GOV8fm.js} +1 -1
  74. package/dist/assets/{build.action-DP2d1Uhj.js → build.action-DUrS97Yw.js} +1 -1
  75. package/dist/assets/{build.command-D5pyNcoj.js → build.command-fNnr9pdz.js} +1 -1
  76. package/dist/assets/{build.header-DupBIAOw.js → build.header-C-WQMQD8.js} +1 -1
  77. package/dist/assets/{build.menu-DWrKtdoV.js → build.menu-CsVJRmY6.js} +1 -1
  78. package/dist/assets/{build.service-qnz73gSX.js → build.service-CJfK8K6X.js} +1 -1
  79. package/dist/assets/{camera-C74U5X7o.js → camera-CpvCFt-Y.js} +1 -1
  80. package/dist/assets/{camera-runtime.inspector-B2l34Xhl.js → camera-runtime.inspector-BwSdtfTT.js} +1 -1
  81. package/dist/assets/{canvas-design-mount-D4M3E1AX.js → canvas-design-mount-CE-67ZS9.js} +3 -3
  82. package/dist/assets/{canvas-entry-runtime-CLOuJcgT.js → canvas-entry-runtime-CBpGQGRw.js} +2 -2
  83. package/dist/assets/{canvas-preview-frames-CSCcu2sG.js → canvas-preview-frames-DoDVjE4O.js} +1 -1
  84. package/dist/assets/{canvas-story-capture.service-onD_xSpQ.js → canvas-story-capture.service-hibqSqwB.js} +2 -2
  85. package/dist/assets/{capability-coverage-EnZ99FoT.js → capability-coverage-DWVel6Wq.js} +1 -1
  86. package/dist/assets/{collaboration-presence-1_UMOAkw.js → collaboration-presence-B9eqNDDB.js} +1 -1
  87. package/dist/assets/{collider-C6R1tHfa.js → collider-DD5wreOq.js} +1 -1
  88. package/dist/assets/{component-board.service-BX_2bwX3.js → component-board.service-B1RineLo.js} +2 -2
  89. package/dist/assets/{component-board.service-Cuf_SXeA.js → component-board.service-eXvcrWzD.js} +2 -2
  90. package/dist/assets/{component-board.service-Ckl-5tA4.js → component-board.service-r8KlRes9.js} +2 -2
  91. package/dist/assets/{component-contracts.service-rI-rbvDG.js → component-contracts.service-YWaJqTzM.js} +1 -1
  92. package/dist/assets/{component-instance-root-wO1p-rLr.js → component-instance-root-BrRLxTKu.js} +1 -1
  93. package/dist/assets/{component-verbs.command-O2bwqmK3.js → component-verbs.command-D5LCfxHY.js} +1 -1
  94. package/dist/assets/{component-verbs.service-BiiQMtJt.js → component-verbs.service-BUTHHNRT.js} +1 -1
  95. package/dist/assets/{config-dVnV1cxW.js → config-DQqPM4dV.js} +2 -2
  96. package/dist/assets/{configurations-8qaUqMH7.js → configurations-Dn9LLbWO.js} +1 -1
  97. package/dist/assets/{connection.status-vH9WCDDg.js → connection.status-CMZKs7ch.js} +1 -1
  98. package/dist/assets/{constraints.inspector-C7UjUxPR.js → constraints.inspector-CRay8pK8.js} +1 -1
  99. package/dist/assets/{content-bounds-Dl5Y3LLv.js → content-bounds-UvcUv1DD.js} +1 -1
  100. package/dist/assets/{contract-system-adapters-BDUpDoKd.js → contract-system-adapters-Bbw5uUUi.js} +1 -1
  101. package/dist/assets/{coverage.service-IS7Oklo8.js → coverage.service-DeTXoRCC.js} +1 -1
  102. package/dist/assets/{create-runtime-Bucz0XVU.js → create-runtime-Z7LcpKwn.js} +1 -1
  103. package/dist/assets/{curve-D0Q6TczG.js → curve-DGhnvtG4.js} +1 -1
  104. package/dist/assets/{data-asset-B0a1y8M-.js → data-asset-CrnqULWS.js} +1 -1
  105. package/dist/assets/{data-ref-dRt2Wi5L.js → data-ref-ym18xkxV.js} +1 -1
  106. package/dist/assets/{debug-bridge-EhDkhrLX.js → debug-bridge-BknWW_8M.js} +1 -1
  107. package/dist/assets/{debug-registry-B2THKz1v.js → debug-registry-C7poEnyY.js} +1 -1
  108. package/dist/assets/{deferred-ingest-play-To3ZratW.js → deferred-ingest-play-3qS-wvgF.js} +2 -2
  109. package/dist/assets/{design-time-canvas-mount-BnSaRAbS.js → design-time-canvas-mount-JkGmMINz.js} +2 -2
  110. package/dist/assets/{design-time-layers-OMAIxOrv.js → design-time-layers-nxUfMfKI.js} +1 -1
  111. package/dist/assets/{design-time-mount.service-Bgr_nCDs.js → design-time-mount.service-DQganiM8.js} +2 -2
  112. package/dist/assets/{design-time-mount.service-RFkiqPIn.js → design-time-mount.service-EBZKN6cL.js} +2 -2
  113. package/dist/assets/{design-time-react-mount-BsSBoX7J.js → design-time-react-mount-COvuTCBY.js} +1 -1
  114. package/dist/assets/{document-preview-three-Qni0oVBw.js → document-preview-three-BaWpv458.js} +1 -1
  115. package/dist/assets/{dom-authoring-adapter-DsUgOtQy.js → dom-authoring-adapter-wlPbZwHo.js} +1 -1
  116. package/dist/assets/{draco3d-DyZllcka.js → draco3d-DdFfLaRu.js} +1 -1
  117. package/dist/assets/{edit-mode-audio.service-CjXNAZEs.js → edit-mode-audio.service-B74d6zkz.js} +1 -1
  118. package/dist/assets/{edit-mode-authoring-BDgZD47j.js → edit-mode-authoring-Cf83TffW.js} +1 -1
  119. package/dist/assets/{edit-mode-networking.service-3dUr2g_0.js → edit-mode-networking.service-C7FSPHzl.js} +1 -1
  120. package/dist/assets/{editor-api-DTrNJMXL.js → editor-api-DLfSJ2g2.js} +1 -1
  121. package/dist/assets/{editor-layers-DwaX5UFy.js → editor-layers-BVicagU1.js} +1 -1
  122. package/dist/assets/{editor-shell-store-aKHbAoCV.js → editor-shell-store-CV73gQk5.js} +1 -1
  123. package/dist/assets/{entity-object-BLJ-I8XT.js → entity-object-DTQ4I2K5.js} +1 -1
  124. package/dist/assets/{extend-6LrR7eSL.js → extend-B7YOIXSU.js} +1 -1
  125. package/dist/assets/{fork-menu-V-FM6YuY.js → fork-menu-BToX8Jv4.js} +1 -1
  126. package/dist/assets/{frame-debugger-store-DwDC0wAm.js → frame-debugger-store-CuCtiEQ1.js} +1 -1
  127. package/dist/assets/{game-contract-seams-C22a4B79.js → game-contract-seams-DRUf45xM.js} +1 -1
  128. package/dist/assets/{game-css-scope-transform-Wv0ZdTsR.js → game-css-scope-transform-rbFoxfMV.js} +1 -1
  129. package/dist/assets/{game-document.service-BzvFIWCc.js → game-document.service-D409VVnQ.js} +1 -1
  130. package/dist/assets/{game-eval.command-DpQn_nY8.js → game-eval.command-BJ51kPy3.js} +1 -1
  131. package/dist/assets/{game-module-access-BI6oBa8Y.js → game-module-access-ib9tWhJc.js} +1 -1
  132. package/dist/assets/{game-network-Deo8lcPw.js → game-network-BZM-o9Ey.js} +3 -3
  133. package/dist/assets/{gameplay-export-BOLhxmII.js → gameplay-export-Bsvbs7wO.js} +1 -1
  134. package/dist/assets/{gameplay-replay-Dkvmv6hf.js → gameplay-replay-k_14DJ5F.js} +1 -1
  135. package/dist/assets/{gameplay.command-DCKqLv7C.js → gameplay.command-DGVwoOz_.js} +1 -1
  136. package/dist/assets/{generation-jobs-6D562vMB.js → generation-jobs-BxpAnwDo.js} +1 -1
  137. package/dist/assets/{generation.service-BFRoLb7y.js → generation.service-D1win2Pl.js} +1 -1
  138. package/dist/assets/{generations-HwV1btKK.js → generations-Dlu2fhGN.js} +1 -1
  139. package/dist/assets/{generations.status-BLiDcKsg.js → generations.status-BPYUSGr_.js} +1 -1
  140. package/dist/assets/{hierarchy-marks-DeG4E4Ke.js → hierarchy-marks-Dn7SO2iG.js} +1 -1
  141. package/dist/assets/{hosted-asset-materialization-Bod7CEMF.js → hosted-asset-materialization-DPmn23AM.js} +1 -1
  142. package/dist/assets/{index-CLUA6PYq.js → index-B41IX0yA.js} +1 -1
  143. package/dist/assets/{index-CyLPQ8pY.js → index-B4NI0L5I.js} +1 -1
  144. package/dist/assets/{index-DkYeh000.js → index-BjUxirz3.js} +1 -1
  145. package/dist/assets/{index-KIR4Has5.js → index-C_XSSPHO.js} +1 -1
  146. package/dist/assets/{index-4hL3-0yz.js → index-Cp9b5Qfa.js} +1 -1
  147. package/dist/assets/{index-jS3rfNkZ.js → index-D1nMmQxJ.js} +1 -1
  148. package/dist/assets/{index-ClgrFOcX.js → index-D9shXtZ9.js} +7 -7
  149. package/dist/assets/{index-CHOT9sYh.js → index-FWtJb07f.js} +2 -2
  150. package/dist/assets/{index-CdLhNxor.js → index-_-7lUYI-.js} +1 -1
  151. package/dist/assets/{inference-diagnostics-BmZ5ggEK.js → inference-diagnostics-V4igFQX2.js} +1 -1
  152. package/dist/assets/{ingest-boot-viewport-CipkFljr.js → ingest-boot-viewport-DBpKatwo.js} +1 -1
  153. package/dist/assets/{ingest-siblings-CEwYp-xg.js → ingest-siblings-C8OmNNTc.js} +1 -1
  154. package/dist/assets/{ingest-source-persistence-CVU1rTj0.js → ingest-source-persistence-DH7q9G1S.js} +1 -1
  155. package/dist/assets/{ingest.service-bNqvcqoK.js → ingest.service-D3Ru3YUS.js} +1 -1
  156. package/dist/assets/{inspect-BunjdqX7.js → inspect-Bhr2b3pa.js} +1 -1
  157. package/dist/assets/instances.command-CDIwEW8H.js +1 -0
  158. package/dist/assets/{json-history-resource-CDEoQe1R.js → json-history-resource-B8_YpeAT.js} +1 -1
  159. package/dist/assets/{layered-pick-guh6WlA7.js → layered-pick-MdBIQeUt.js} +1 -1
  160. package/dist/assets/{light-BPZivpCK.js → light-BvCKNW4e.js} +1 -1
  161. package/dist/assets/{live-project-verbs-Bqmxbr2o.js → live-project-verbs-DggWGgn-.js} +1 -1
  162. package/dist/assets/{machine.document-CAFPFq5K.js → machine.document-CTyXmK5a.js} +1 -1
  163. package/dist/assets/{machines.finder-CbUWReMp.js → machines.finder-C6WR7N-k.js} +1 -1
  164. package/dist/assets/{material-huG6lNEK.js → material-BoHGaIcq.js} +1 -1
  165. package/dist/assets/{material-factory-BkyOzJ7B.js → material-factory-D-cyMEti.js} +1 -1
  166. package/dist/assets/{mesh-CjCfRcFK.js → mesh-B-ksBKUU.js} +1 -1
  167. package/dist/assets/{model-asset-sections.service-Dt4V2K2v.js → model-asset-sections.service-DHsGD1SZ.js} +1 -1
  168. package/dist/assets/{model-inspection-BDA5jikL.js → model-inspection-Bsfj6b48.js} +1 -1
  169. package/dist/assets/{model-thumbnail-CF3qGQWb.js → model-thumbnail-Bp-1yQ-X.js} +1 -1
  170. package/dist/assets/{models.finder-yh4YeGrA.js → models.finder-DksRlbR8.js} +1 -1
  171. package/dist/assets/{module-mode-D8en13PD.js → module-mode-qROy_5Tk.js} +2 -2
  172. package/dist/assets/{mount-canvas-ingest-root-JOkm2Ypj.js → mount-canvas-ingest-root-CLbJS_Ob.js} +2 -2
  173. package/dist/assets/{mount-dom-ingest-root-CVXFnJZb.js → mount-dom-ingest-root-CI7VtdaS.js} +2 -2
  174. package/dist/assets/{mount-ingest-root-C3o0o28C.js → mount-ingest-root-BX_usF8y.js} +2 -2
  175. package/dist/assets/{mount-manifest-d7WQ9MYp.js → mount-manifest-lQBlK2Y1.js} +1 -1
  176. package/dist/assets/{mount-three-ingest-root-Dqd4XWP1.js → mount-three-ingest-root-g6yhs1S-.js} +1 -1
  177. package/dist/assets/{mounted-authoring-B697dYuN.js → mounted-authoring-D5cvzNXX.js} +1 -1
  178. package/dist/assets/{mounted-story-viewport-source-BvNZ3QQn.js → mounted-story-viewport-source-C-RZo_xH.js} +1 -1
  179. package/dist/assets/{native-debug-module-iX2-V5kg.js → native-debug-module-Bh_HQdg_.js} +1 -1
  180. package/dist/assets/{navigation-CIl9OY1F.js → navigation-DVO5eQO6.js} +1 -1
  181. package/dist/assets/{navmesh.menu-DrMoj7Ag.js → navmesh.menu-Cu9R-p4V.js} +1 -1
  182. package/dist/assets/{navmesh.service-CTr1NVfz.js → navmesh.service-D6EeQxE0.js} +1 -1
  183. package/dist/assets/network-observer.service-CLE3M7gH.js +1 -0
  184. package/dist/assets/{network.utility-Btexm5ao.js → network.utility-D4Uo1xUC.js} +1 -1
  185. package/dist/assets/{object3d-document-session-registry-CADiW-LP.js → object3d-document-session-registry-bor-eSgr.js} +2 -2
  186. package/dist/assets/{oid-transform-Ca1oU_Ei.js → oid-transform-rEmA5PfE.js} +1 -1
  187. package/dist/assets/{particles-D1oPwNJh.js → particles-BxlIkQUX.js} +1 -1
  188. package/dist/assets/{pixi-authoring-adapter-B1BBfTju.js → pixi-authoring-adapter-CTSRtvNw.js} +1 -1
  189. package/dist/assets/{pixi-live-write-target-BcUhtqmJ.js → pixi-live-write-target-DaUAvNu7.js} +1 -1
  190. package/dist/assets/{play.command-ScnwcvJr.js → play.command-BtV56gUr.js} +2 -2
  191. package/dist/assets/{presentation-DPfnCjNA.js → presentation-DxTT40_3.js} +1 -1
  192. package/dist/assets/{product-D_9saRiZ.js → product-BAGhTFHw.js} +1 -1
  193. package/dist/assets/{profiler.action-PXTw93E5.js → profiler.action-DaSS1RoY.js} +1 -1
  194. package/dist/assets/{profiler.menu-DPFV6QQD.js → profiler.menu-5OyI3lyY.js} +1 -1
  195. package/dist/assets/{profiler.utility-eDooJGnI.js → profiler.utility-DLzaMOPh.js} +1 -1
  196. package/dist/assets/{project-authoring-session-BmeutotA.js → project-authoring-session-DZOgiTch.js} +2 -2
  197. package/dist/assets/{properties-bone-constraints.inspector-BW0V1WXQ.js → properties-bone-constraints.inspector-JMlHKfN2.js} +1 -1
  198. package/dist/assets/{properties-bone.inspector-DIvTZhY8.js → properties-bone.inspector-C-c7iGEx.js} +1 -1
  199. package/dist/assets/{properties-collection.inspector-Dbt5XMhs.js → properties-collection.inspector-PXHDUs1b.js} +1 -1
  200. package/dist/assets/{properties-constraints.inspector-5SvB0GDC.js → properties-constraints.inspector-CQnnGi1O.js} +1 -1
  201. package/dist/assets/{properties-data.inspector-C-SngIsI.js → properties-data.inspector-DuEPeVBm.js} +1 -1
  202. package/dist/assets/{properties-material.inspector-CYAWsvsX.js → properties-material.inspector-BhKP0Zc_.js} +1 -1
  203. package/dist/assets/{properties-modifiers.inspector-XN6BL-Ll.js → properties-modifiers.inspector-lOMb72vk.js} +1 -1
  204. package/dist/assets/{properties-object.inspector-CfryU0kN.js → properties-object.inspector-BU2hn26Q.js} +1 -1
  205. package/dist/assets/{properties-output.inspector-COfgmFUW.js → properties-output.inspector-yNaC3IgX.js} +1 -1
  206. package/dist/assets/{properties-particles.inspector-BCh0vFr6.js → properties-particles.inspector-CaHfdQZB.js} +1 -1
  207. package/dist/assets/{properties-physics.inspector-B6to1u6U.js → properties-physics.inspector-Bt9Xjyu-.js} +1 -1
  208. package/dist/assets/{properties-render.inspector-C4hVfo7j.js → properties-render.inspector-Cl8UBLPY.js} +1 -1
  209. package/dist/assets/{properties-scene.inspector-dKta4xn5.js → properties-scene.inspector-D9cgONMx.js} +1 -1
  210. package/dist/assets/{properties-texture.inspector-ZlNhW25m.js → properties-texture.inspector-804GEF8F.js} +1 -1
  211. package/dist/assets/{properties-view-layer.inspector-CIxHmkDR.js → properties-view-layer.inspector-CLo0Z-B1.js} +1 -1
  212. package/dist/assets/{properties-world.inspector-Ce0q2dmK.js → properties-world.inspector-CjywenDE.js} +1 -1
  213. package/dist/assets/{r3f-design-session-1riISktt.js → r3f-design-session-B2k02ypD.js} +2 -2
  214. package/dist/assets/{r3f-physics-binding-DuG97FR9.js → r3f-physics-binding-D1rgVgsz.js} +1 -1
  215. package/dist/assets/{r3f-source-authoring-adapter-B8qqrdwk.js → r3f-source-authoring-adapter-Dj0r13-b.js} +1 -1
  216. package/dist/assets/{react-canvas-navigation-CxBm8iw8.js → react-canvas-navigation-t00NiEKB.js} +1 -1
  217. package/dist/assets/{react-inspector.service-BcdePwno.js → react-inspector.service-Xp4f-M0O.js} +1 -1
  218. package/dist/assets/{react-story-board-CMvkLAkF.js → react-story-board-DAQaZNga.js} +1 -1
  219. package/dist/assets/{react-three-rapier.esm-D5svf-ME.js → react-three-rapier.esm-D13B7Exz.js} +1 -1
  220. package/dist/assets/{react-world-authoring-adapter-Dq8NqvWu.js → react-world-authoring-adapter-zzyaxcpN.js} +1 -1
  221. package/dist/assets/{realm-services-CqjVBanw.js → realm-services-CyeBcuLZ.js} +1 -1
  222. package/dist/assets/{reflection-probe-capture.inspector-uEvyppEj.js → reflection-probe-capture.inspector-BpdGQ2gf.js} +1 -1
  223. package/dist/assets/{registry-D7lFIA8c.js → registry-DM1tIelZ.js} +1 -1
  224. package/dist/assets/{relative-import-specifier-CA9mSNXO.js → relative-import-specifier-txHdCBKR.js} +1 -1
  225. package/dist/assets/{render-env-BHasp-z3.js → render-env-DiO35wd3.js} +1 -1
  226. package/dist/assets/{render-features-sSb1-c5x.js → render-features-Bv3_74_x.js} +1 -1
  227. package/dist/assets/{render-settings-CUbo4Sw5.js → render-settings-8kb_yvkr.js} +1 -1
  228. package/dist/assets/{resolve-three-TQ367RQD.js → resolve-three-D9rgCC5Z.js} +3 -3
  229. package/dist/assets/{root-seam-contract-CneTgNww.js → root-seam-contract-BgkkJVuJ.js} +1 -1
  230. package/dist/assets/{run-selection-CNsOQTEG.js → run-selection-WrcYgYP3.js} +1 -1
  231. package/dist/assets/{scene-capture-KbdRgsD3.js → scene-capture-C08wT5TW.js} +1 -1
  232. package/dist/assets/{scene-document.service-CmPSUocW.js → scene-document.service-D7sb6hvQ.js} +2 -2
  233. package/dist/assets/{scene-framing-B5JC4NeG.js → scene-framing-BSvegpi4.js} +1 -1
  234. package/dist/assets/{seeded-random-B6zqGkWP.js → seeded-random-Bc5190so.js} +1 -1
  235. package/dist/assets/{setup-renderer-efjIBSGF.js → setup-renderer-JwrNwzqH.js} +1 -1
  236. package/dist/assets/{source-object3d-authoring-adapter-DeeboYub.js → source-object3d-authoring-adapter-BJwLQVsv.js} +1 -1
  237. package/dist/assets/{source-persistence-backend-Cwy93SmQ.js → source-persistence-backend-DsG30XMj.js} +1 -1
  238. package/dist/assets/{stage-keyboard-GNCaTXLA.js → stage-keyboard-BnzybgXw.js} +1 -1
  239. package/dist/assets/{stage-overlay-set-DV3SCzJb.js → stage-overlay-set-BWxO_Pk6.js} +1 -1
  240. package/dist/assets/{stage-presence-markers-CBEU1Kzo.js → stage-presence-markers-BD5JPVX6.js} +1 -1
  241. package/dist/assets/{stage-transform-tools-C9nNDW6n.js → stage-transform-tools-CHvXlnKB.js} +1 -1
  242. package/dist/assets/{standard-viewport-dressing-BJkGwiNT.js → standard-viewport-dressing-4xAZCGJ3.js} +1 -1
  243. package/dist/assets/{state-watch.action-Doz_jrzS.js → state-watch.action-0KAywung.js} +1 -1
  244. package/dist/assets/{state-watch.menu-Dj4DUUxN.js → state-watch.menu-4xjTZIEx.js} +1 -1
  245. package/dist/assets/{state-watch.utility-COPa8xpV.js → state-watch.utility-DZgzPGEZ.js} +1 -1
  246. package/dist/assets/{story-capture-stRSY4PQ.js → story-capture-d695eMLJ.js} +1 -1
  247. package/dist/assets/{story-documents-CYzWYY1o.js → story-documents-C1hZeYU3.js} +1 -1
  248. package/dist/assets/{story-documents.service-DJBu4rve.js → story-documents.service-CSXB6uqT.js} +1 -1
  249. package/dist/assets/{story-documents.service-C5r8KFEG.js → story-documents.service-bB0UDbvA.js} +1 -1
  250. package/dist/assets/{story-media-presence-D4AIsAtK.js → story-media-presence-CxD6G_Mu.js} +1 -1
  251. package/dist/assets/{story-pixi-preview-mPo3OFOd.js → story-pixi-preview-CJKGDBKs.js} +1 -1
  252. package/dist/assets/{story-presentation-Dw4Vw65P.js → story-presentation-BBS9x4BP.js} +1 -1
  253. package/dist/assets/{story-three-preview-CWM0Rj7x.js → story-three-preview-v22RRpqB.js} +2 -2
  254. package/dist/assets/{studio-environment-Bw9zMFE8.js → studio-environment-CvCEc6PK.js} +1 -1
  255. package/dist/assets/{surface-state-b_H4iOCJ.js → surface-state-EsG-yMSi.js} +1 -1
  256. package/dist/assets/{syntactic-prop-specs-BCdwWi-T.js → syntactic-prop-specs-DvSr6VoQ.js} +1 -1
  257. package/dist/assets/{team-playtest.service-CnxdTghn.js → team-playtest.service-Bp6j6MAv.js} +1 -1
  258. package/dist/assets/{three-DWy0sZom.js → three-Do16bEo9.js} +1 -1
  259. package/dist/assets/{three-authoring-adapter-9LcUBPaU.js → three-authoring-adapter-C2QFVlpK.js} +1 -1
  260. package/dist/assets/three-authoring.service-DxL4grJx.js +2 -0
  261. package/dist/assets/{three-ingest-runtime-x9nLmUl-.js → three-ingest-runtime-DW-lHDmp.js} +1 -1
  262. package/dist/assets/{three-integration-DB-xQHD5.js → three-integration-C1onOQwq.js} +2 -2
  263. package/dist/assets/three-integration.service-26hsEOk3.js +1 -0
  264. package/dist/assets/{three-projection-core-IUovHgg_.js → three-projection-core-1FETWj5n.js} +1 -1
  265. package/dist/assets/{three-state-_ImCbP87.js → three-state-d-szeOea.js} +1 -1
  266. package/dist/assets/{three-story-capture.service-wKwfSnqA.js → three-story-capture.service-gnrRzcjj.js} +2 -2
  267. package/dist/assets/{three-story-model-BxWKcl9d.js → three-story-model-CbEMWEte.js} +1 -1
  268. package/dist/assets/{three-viewport-presentation-Bg86EsDJ.js → three-viewport-presentation-D1ysWIW4.js} +1 -1
  269. package/dist/assets/{transform-mode-request-BnV8FSnx.js → transform-mode-request-B3AxgwGW.js} +1 -1
  270. package/dist/assets/{transport-strip-BZQnaxFN.js → transport-strip-D4N14xHx.js} +1 -1
  271. package/dist/assets/transport.header-D3j_V-tN.js +1 -0
  272. package/dist/assets/{tuples-DR33sMq6.js → tuples-B3URXxaa.js} +1 -1
  273. package/dist/assets/{ui-board-document-VJMvm6Ks.js → ui-board-document-BSrfzH8L.js} +2 -2
  274. package/dist/assets/{user-data-DL6HsBPf.js → user-data-DHB4MWum.js} +1 -1
  275. package/dist/assets/{utility-view-state-ghWXsYXq.js → utility-view-state-CfZ51NRS.js} +1 -1
  276. package/dist/assets/{viewport-door-BV_lf5uK.js → viewport-door-DkDcO9tp.js} +1 -1
  277. package/dist/assets/{viewport-root-presentation-CKqhX3mt.js → viewport-root-presentation-DtuBFJ-J.js} +1 -1
  278. package/dist/assets/{viewport-surface-status-D7M2L2lI.js → viewport-surface-status-HKbJtC2G.js} +1 -1
  279. package/dist/assets/{webworkerAll-DDbFvxgB.js → webworkerAll-JD3yAUg1.js} +1 -1
  280. package/dist/assets/{workspace-arrangement-86_8Kk5K.js → workspace-arrangement-BOk46mGq.js} +1 -1
  281. package/dist/assets/{world-documents-DeNJUefV.js → world-documents-AnhAH_9y.js} +1 -1
  282. package/dist/assets/{world-root-stage-binding-VOrldLB4.js → world-root-stage-binding-H0SUNbfK.js} +1 -1
  283. package/dist/assets/{xstate-animation-binding-747CfEeB.js → xstate-animation-binding-BjWKb5ne.js} +1 -1
  284. package/dist/assets/{xstate-animation-meta-DNMlMnr-.js → xstate-animation-meta-CTBp-Vc5.js} +1 -1
  285. package/dist-node/cli.js +16 -16
  286. package/package.json +16 -16
  287. package/dist/assets/InspectorObjectPreview-C87CasN_.js +0 -1
  288. package/dist/assets/Object3DDocumentViewport-BpiyRQ5p.js +0 -2
  289. package/dist/assets/autoplay.service-CKBqjozr.js +0 -1
  290. package/dist/assets/instances.command-DzcXdKuG.js +0 -1
  291. package/dist/assets/network-observer.service-DyzpGKA7.js +0 -1
  292. package/dist/assets/three-authoring.service-DdTMF4A2.js +0 -2
  293. package/dist/assets/three-integration.service-DwToRGIc.js +0 -1
  294. package/dist/assets/transport.header-1SF4ZbEd.js +0 -1
@@ -1 +1 @@
1
- import{gF as d,dv as u,bU as f,bV as a,ay as p,eb as l,Z as c,gG as g}from"./index-ClgrFOcX.js";import{r as s,I as h,i as w}from"./ingest-source-persistence-CVU1rTj0.js";function y(n){const t={sourceLocation:e=>{const r=n(e);if(!(!r.anchored||r.kind!=="source"))return{file:r.file,line:r.line}}};return{links:e=>{const r=n(e);return!r.anchored||r.kind!=="source"?[]:[{id:`creation-site:${r.file}:${r.line}:${r.col}`,title:`Constructed at ${r.display}`,open:()=>{d(t,e,"callsite").then(u)}}]}}}function v(n){return`this gesture changed ${n.length} properties at once (${n.join(", ")}), and creation-site write-back plans one property per gesture`}function $(n){const{backend:t,label:e}=n;return f({resolve:()=>{const r=n.subject(),i=t.gate(r);if(!i.ok)return a(i.reason);const o=r.anchorKind;return o==="live-only"?a(t.describe(r)):{reaches:"writer",anchorKind:o,destination:t.destination(),write:()=>t.write({...r,baseline:n.baseline,next:n.next,label:e})}},record:r=>{r||n.journal()},report:r=>{t.armed()&&t.report(e,r)}})}function S(n){let t=null;return{attach(e){t=n.writer??(g("An ingest root’s source persistence")?new h({history:n.history,live:e}):null)},describe({anchor:e,instances:r,property:i,writeScope:o}){return t?t.describe(e,r,i,o):e.anchored?e.kind==="data"?`Live-only edit — this object is ${e.display}.`:`Live-only edit — this object is created at ${e.display}.`:`Live-only edit — ${e.reason}.`},gate({anchor:e,instances:r,property:i,writeScope:o}){return t?t.gate(e,r,i,o):{ok:!1,reason:"this editor tier cannot write project source"}},armed:()=>t!==null&&l(),readSiteLiterals:e=>t?t.inspect(e):Promise.resolve({}),report:(e,r)=>s(e,r),async write(e){if(!t)return!1;try{const r=await t.persist(e);return r.persisted?(c.log(`[ingest] ${e.label} written to the game's own source — ${r.detail}`),!0):(s(e.label,r.reason),!1)}catch(r){return s(e.label,`the write failed: ${r instanceof Error?r.message:String(r)}`),!1}},removal:{available(e){return t?t.gate(e.anchor,e.instances,e.property,e.writeScope).ok:!1},async perform(e){if(!t)return!1;try{const r=await t.remove({property:e.property,surface:e.surface,anchor:e.anchor,instances:e.instances,writeScope:e.writeScope,label:e.label});return r.persisted?(c.log(`[ingest] ${e.label} — dropped from the game's own source (${r.detail})`),!0):(s(e.label,r.reason),!1)}catch(r){return s(e.label,`the removal failed: ${r instanceof Error?r.message:String(r)}`),!1}}},destination(){const e=w();return l()&&e?.writable&&t?"the game's own source (creation-site write-back)":p},dispose(){t?.dispose(),t=null}}}export{S as a,y as c,v as m,$ as p};
1
+ import{gF as d,dv as u,bU as f,bV as a,ay as p,eb as l,Z as c,gG as g}from"./index-D9shXtZ9.js";import{r as s,I as h,i as w}from"./ingest-source-persistence-DH7q9G1S.js";function y(n){const t={sourceLocation:e=>{const r=n(e);if(!(!r.anchored||r.kind!=="source"))return{file:r.file,line:r.line}}};return{links:e=>{const r=n(e);return!r.anchored||r.kind!=="source"?[]:[{id:`creation-site:${r.file}:${r.line}:${r.col}`,title:`Constructed at ${r.display}`,open:()=>{d(t,e,"callsite").then(u)}}]}}}function v(n){return`this gesture changed ${n.length} properties at once (${n.join(", ")}), and creation-site write-back plans one property per gesture`}function $(n){const{backend:t,label:e}=n;return f({resolve:()=>{const r=n.subject(),i=t.gate(r);if(!i.ok)return a(i.reason);const o=r.anchorKind;return o==="live-only"?a(t.describe(r)):{reaches:"writer",anchorKind:o,destination:t.destination(),write:()=>t.write({...r,baseline:n.baseline,next:n.next,label:e})}},record:r=>{r||n.journal()},report:r=>{t.armed()&&t.report(e,r)}})}function S(n){let t=null;return{attach(e){t=n.writer??(g("An ingest root’s source persistence")?new h({history:n.history,live:e}):null)},describe({anchor:e,instances:r,property:i,writeScope:o}){return t?t.describe(e,r,i,o):e.anchored?e.kind==="data"?`Live-only edit — this object is ${e.display}.`:`Live-only edit — this object is created at ${e.display}.`:`Live-only edit — ${e.reason}.`},gate({anchor:e,instances:r,property:i,writeScope:o}){return t?t.gate(e,r,i,o):{ok:!1,reason:"this editor tier cannot write project source"}},armed:()=>t!==null&&l(),readSiteLiterals:e=>t?t.inspect(e):Promise.resolve({}),report:(e,r)=>s(e,r),async write(e){if(!t)return!1;try{const r=await t.persist(e);return r.persisted?(c.log(`[ingest] ${e.label} written to the game's own source — ${r.detail}`),!0):(s(e.label,r.reason),!1)}catch(r){return s(e.label,`the write failed: ${r instanceof Error?r.message:String(r)}`),!1}},removal:{available(e){return t?t.gate(e.anchor,e.instances,e.property,e.writeScope).ok:!1},async perform(e){if(!t)return!1;try{const r=await t.remove({property:e.property,surface:e.surface,anchor:e.anchor,instances:e.instances,writeScope:e.writeScope,label:e.label});return r.persisted?(c.log(`[ingest] ${e.label} — dropped from the game's own source (${r.detail})`),!0):(s(e.label,r.reason),!1)}catch(r){return s(e.label,`the removal failed: ${r instanceof Error?r.message:String(r)}`),!1}}},destination(){const e=w();return l()&&e?.writable&&t?"the game's own source (creation-site write-back)":p},dispose(){t?.dispose(),t=null}}}export{S as a,y as c,v as m,$ as p};
@@ -1 +1 @@
1
- import{r as h}from"./index-nmcBqr7Y.js";import{s as b,c as f,l as V,a as x,t as S,v as P,p as T,b as y}from"./camera-authoring-DYjhU5Zp.js";import{ha as L,E as A,bL as C,G as k,y as g,r as O,dv as E,hb as M,ga as R,hc as z}from"./index-ClgrFOcX.js";import{a as D}from"./object3d-document-session-registry-CADiW-LP.js";import{r as s}from"./transform-mode-request-BnV8FSnx.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";function j(){const e=f();if(e.view)return[{id:"camera.exitView",label:"Exit Camera View",execute:V}];const i=x();return i?[{id:"camera.viewThrough",label:`View Through ${i.name}`,execute:()=>P(i)},...i.canAuthorPose?[{id:"camera.pilot",label:`Pilot ${i.name}`,execute:()=>T(i)},{id:"camera.alignToView",label:`Align ${i.name} to Current View`,execute:()=>y(i)}]:[],{id:"camera.pinPreview",label:e.previewPinned?"Unpin Camera Preview":"Pin Camera Preview",execute:S}]:[]}function H(){const e=g();return e?D(e):null}function a(e,i){const o=H();o?o.setMode(i):e.setShadingMode(i)}function $(e){const i=[{id:"mode.select",label:"Select Tool (no gizmo)",shortcut:"transform.select",execute:()=>s(e.shell,"select")},{id:"mode.combined",label:"Transform Mode (all handles)",shortcut:"transform.combined",execute:()=>s(e.shell,"combined")},{id:"mode.translate",label:"Translate Mode",shortcut:"transform.translate",execute:()=>s(e.shell,"translate")},{id:"mode.rotate",label:"Rotate Mode",shortcut:"transform.rotate",execute:()=>s(e.shell,"rotate")},{id:"mode.scale",label:"Scale Mode",shortcut:"transform.scale",execute:()=>s(e.shell,"scale")},{id:"mode.world",label:"World Space",execute:()=>e.shell.setTransformSpace("world")},{id:"mode.local",label:"Local Space",execute:()=>e.shell.setTransformSpace("local")},{id:"toggle.grid",label:"Toggle Grid",execute:()=>{const l=g();l&&A(l)&&C(l,!k(l))}},{id:"toggle.helpers",label:"Toggle Helpers",execute:()=>e.shell.toggleHelpers()},{id:"toggle.stats",label:"Toggle Stats Overlay",execute:()=>e.toggleStats()},{id:"toggle.snap",label:"Toggle Snap",shortcut:"viewport.toggleSnap",execute:()=>e.shell.toggleSnap()},{id:"toggle.surface-snap",label:"Toggle Surface Snap",execute:()=>e.shell.toggleSnapToSurface()},{id:"shading.solid",label:"Material Shading",execute:()=>a(e,"solid")},{id:"shading.clay",label:"Solid Shading",execute:()=>a(e,"clay")},{id:"shading.wireframe",label:"Wireframe Shading",execute:()=>a(e,"wireframe")},{id:"shading.unlit",label:"Unlit Shading",execute:()=>a(e,"unlit")},{id:"shading.normals",label:"Normal Shading",execute:()=>a(e,"normals")},{id:"shading.overdraw",label:"Overdraw Shading",execute:()=>a(e,"overdraw")},{id:"view.top",label:"Top View",shortcut:"view.top",execute:()=>e.shell.setViewPreset("top")},{id:"view.front",label:"Front View",shortcut:"view.front",execute:()=>e.shell.setViewPreset("front")},{id:"view.right",label:"Right View",shortcut:"view.right",execute:()=>e.shell.setViewPreset("right")},{id:"view.bottom",label:"Bottom View",shortcut:"view.bottom",execute:()=>e.shell.setViewPreset("bottom")},{id:"view.back",label:"Back View",shortcut:"view.back",execute:()=>e.shell.setViewPreset("back")},{id:"view.left",label:"Left View",shortcut:"view.left",execute:()=>e.shell.setViewPreset("left")},{id:"view.orbitLeft",label:"Orbit Left",shortcut:"view.orbitLeft",execute:()=>e.shell.stepView("orbit-left")},{id:"view.orbitRight",label:"Orbit Right",shortcut:"view.orbitRight",execute:()=>e.shell.stepView("orbit-right")},{id:"view.orbitUp",label:"Orbit Up",shortcut:"view.orbitUp",execute:()=>e.shell.stepView("orbit-up")},{id:"view.orbitDown",label:"Orbit Down",shortcut:"view.orbitDown",execute:()=>e.shell.stepView("orbit-down")},{id:"view.opposite",label:"Opposite View",shortcut:"view.opposite",execute:()=>e.shell.stepView("opposite")},{id:"view.rollLeft",label:"Roll Left",shortcut:"view.rollLeft",execute:()=>e.shell.stepView("roll-left")},{id:"view.rollRight",label:"Roll Right",shortcut:"view.rollRight",execute:()=>e.shell.stepView("roll-right")},{id:"view.all",label:"Frame All",shortcut:"view.all",execute:()=>e.shell.frameAll()},{id:"view.zoomIn",label:"Zoom In",shortcut:"view.zoomIn",execute:()=>e.shell.zoomView(1)},{id:"view.zoomOut",label:"Zoom Out",shortcut:"view.zoomOut",execute:()=>e.shell.zoomView(-1)},{id:"view.perspective",label:"Perspective View",shortcut:"view.perspective",execute:()=>e.shell.setViewPreset("perspective")},{id:"view.projection",label:"Perspective/Orthographic",shortcut:"view.projection",execute:()=>e.shell.toggleProjection()},{id:"view.camera",label:"Camera View",shortcut:"view.camera",execute:()=>e.shell.toggleCameraView()},{id:"focus.selected",label:"Focus Selected",shortcut:"viewport.frameSelection",execute:()=>e.shell.focusOnSelection()}];return L({actions:()=>[...i,...j()],subscribe:b})}function F(e,i,o){const{keyboard:l}=O(),r=t=>()=>{i.isFlying||s(e.shell,t)},v=l.bindActions([{id:"transform.select",scope:"stage",run:r("select")},{id:"transform.combined",scope:"stage",run:r("combined")},{id:"transform.translate",scope:"stage",run:r("translate")},{id:"transform.rotate",scope:"stage",run:r("rotate")},{id:"transform.scale",scope:"stage",run:r("scale")},{id:"viewport.toggleSnap",scope:"stage",run:()=>{e.shell.toggleSnap();const{translate:t,rotate:n,scale:m}=e.shell.snapValues,p=`${l.shortcutFor("viewport.toggleSnap")??""} toggles; hold Ctrl while dragging to snap once`;E(e.shell.snapEnabled?`Snap on — ${t} units, ${n}°, ×${m} (${p})`:`Snap off (${p})`)}},{id:"viewport.frameSelection",scope:"stage",run:()=>e.shell.focusOnSelection()},{id:"viewport.cyclePivot",scope:"stage",run:()=>{const t=["active-element","median-point","individual-origins"],n=t.indexOf(e.shell.pivotMode);e.shell.setPivotMode(t[(n+1)%t.length])}},{id:"view.top",scope:"stage",run:()=>e.shell.setViewPreset("top")},{id:"view.front",scope:"stage",run:()=>e.shell.setViewPreset("front")},{id:"view.right",scope:"stage",run:()=>e.shell.setViewPreset("right")},{id:"view.bottom",scope:"stage",run:()=>e.shell.setViewPreset("bottom")},{id:"view.back",scope:"stage",run:()=>e.shell.setViewPreset("back")},{id:"view.left",scope:"stage",run:()=>e.shell.setViewPreset("left")},{id:"view.orbitLeft",scope:"stage",run:()=>e.shell.stepView("orbit-left")},{id:"view.orbitRight",scope:"stage",run:()=>e.shell.stepView("orbit-right")},{id:"view.orbitUp",scope:"stage",run:()=>e.shell.stepView("orbit-up")},{id:"view.orbitDown",scope:"stage",run:()=>e.shell.stepView("orbit-down")},{id:"view.opposite",scope:"stage",run:()=>e.shell.stepView("opposite")},{id:"view.rollLeft",scope:"stage",run:()=>e.shell.stepView("roll-left")},{id:"view.rollRight",scope:"stage",run:()=>e.shell.stepView("roll-right")},{id:"view.all",scope:"stage",run:()=>e.shell.frameAll()},{id:"view.zoomIn",scope:"stage",run:()=>e.shell.zoomView(1)},{id:"view.zoomOut",scope:"stage",run:()=>e.shell.zoomView(-1)},{id:"view.perspective",scope:"stage",run:()=>e.shell.setViewPreset("perspective")},{id:"view.projection",scope:"stage",run:()=>e.shell.toggleProjection()},{id:"view.camera",scope:"stage",run:()=>e.shell.toggleCameraView()},{id:"viewport.snapToFloor",scope:"stage",run:()=>i.snapSelectionToFloor()}]),c=()=>R("viewport");o.addEventListener("pointerdown",c),M();const d=t=>l.chordsFor("viewport.vertexSnapHold").some(n=>n.key===t.key.toLowerCase()),u=t=>{if(d(t)&&!t.metaKey&&!t.ctrlKey&&!t.repeat){if(z()!=="viewport"||t.target instanceof HTMLInputElement||t.target instanceof HTMLTextAreaElement)return;e.setVertexSnapActive(!0),i.activateVertexSnap()}},w=t=>{d(t)&&!t.metaKey&&!t.ctrlKey&&(e.setVertexSnapActive(!1),i.deactivateVertexSnap())};return window.addEventListener("keydown",u),window.addEventListener("keyup",w),()=>{v(),o.removeEventListener("pointerdown",c),window.removeEventListener("keydown",u),window.removeEventListener("keyup",w)}}function Y({stage:e}){return h.useEffect(()=>F(e.store,e.viewport,e.canvas),[e.store,e.viewport,e.canvas]),h.useEffect(()=>$(e.store),[e.store]),null}export{Y as StageKeyboardBinding};
1
+ import{r as h}from"./index-nmcBqr7Y.js";import{s as b,c as f,l as V,a as x,t as S,v as P,p as T,b as y}from"./camera-authoring-DYjhU5Zp.js";import{ha as L,E as A,bL as C,G as k,y as g,r as O,dv as E,hb as M,ga as R,hc as z}from"./index-D9shXtZ9.js";import{a as D}from"./object3d-document-session-registry-bor-eSgr.js";import{r as s}from"./transform-mode-request-B3AxgwGW.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";function j(){const e=f();if(e.view)return[{id:"camera.exitView",label:"Exit Camera View",execute:V}];const i=x();return i?[{id:"camera.viewThrough",label:`View Through ${i.name}`,execute:()=>P(i)},...i.canAuthorPose?[{id:"camera.pilot",label:`Pilot ${i.name}`,execute:()=>T(i)},{id:"camera.alignToView",label:`Align ${i.name} to Current View`,execute:()=>y(i)}]:[],{id:"camera.pinPreview",label:e.previewPinned?"Unpin Camera Preview":"Pin Camera Preview",execute:S}]:[]}function H(){const e=g();return e?D(e):null}function a(e,i){const o=H();o?o.setMode(i):e.setShadingMode(i)}function $(e){const i=[{id:"mode.select",label:"Select Tool (no gizmo)",shortcut:"transform.select",execute:()=>s(e.shell,"select")},{id:"mode.combined",label:"Transform Mode (all handles)",shortcut:"transform.combined",execute:()=>s(e.shell,"combined")},{id:"mode.translate",label:"Translate Mode",shortcut:"transform.translate",execute:()=>s(e.shell,"translate")},{id:"mode.rotate",label:"Rotate Mode",shortcut:"transform.rotate",execute:()=>s(e.shell,"rotate")},{id:"mode.scale",label:"Scale Mode",shortcut:"transform.scale",execute:()=>s(e.shell,"scale")},{id:"mode.world",label:"World Space",execute:()=>e.shell.setTransformSpace("world")},{id:"mode.local",label:"Local Space",execute:()=>e.shell.setTransformSpace("local")},{id:"toggle.grid",label:"Toggle Grid",execute:()=>{const l=g();l&&A(l)&&C(l,!k(l))}},{id:"toggle.helpers",label:"Toggle Helpers",execute:()=>e.shell.toggleHelpers()},{id:"toggle.stats",label:"Toggle Stats Overlay",execute:()=>e.toggleStats()},{id:"toggle.snap",label:"Toggle Snap",shortcut:"viewport.toggleSnap",execute:()=>e.shell.toggleSnap()},{id:"toggle.surface-snap",label:"Toggle Surface Snap",execute:()=>e.shell.toggleSnapToSurface()},{id:"shading.solid",label:"Material Shading",execute:()=>a(e,"solid")},{id:"shading.clay",label:"Solid Shading",execute:()=>a(e,"clay")},{id:"shading.wireframe",label:"Wireframe Shading",execute:()=>a(e,"wireframe")},{id:"shading.unlit",label:"Unlit Shading",execute:()=>a(e,"unlit")},{id:"shading.normals",label:"Normal Shading",execute:()=>a(e,"normals")},{id:"shading.overdraw",label:"Overdraw Shading",execute:()=>a(e,"overdraw")},{id:"view.top",label:"Top View",shortcut:"view.top",execute:()=>e.shell.setViewPreset("top")},{id:"view.front",label:"Front View",shortcut:"view.front",execute:()=>e.shell.setViewPreset("front")},{id:"view.right",label:"Right View",shortcut:"view.right",execute:()=>e.shell.setViewPreset("right")},{id:"view.bottom",label:"Bottom View",shortcut:"view.bottom",execute:()=>e.shell.setViewPreset("bottom")},{id:"view.back",label:"Back View",shortcut:"view.back",execute:()=>e.shell.setViewPreset("back")},{id:"view.left",label:"Left View",shortcut:"view.left",execute:()=>e.shell.setViewPreset("left")},{id:"view.orbitLeft",label:"Orbit Left",shortcut:"view.orbitLeft",execute:()=>e.shell.stepView("orbit-left")},{id:"view.orbitRight",label:"Orbit Right",shortcut:"view.orbitRight",execute:()=>e.shell.stepView("orbit-right")},{id:"view.orbitUp",label:"Orbit Up",shortcut:"view.orbitUp",execute:()=>e.shell.stepView("orbit-up")},{id:"view.orbitDown",label:"Orbit Down",shortcut:"view.orbitDown",execute:()=>e.shell.stepView("orbit-down")},{id:"view.opposite",label:"Opposite View",shortcut:"view.opposite",execute:()=>e.shell.stepView("opposite")},{id:"view.rollLeft",label:"Roll Left",shortcut:"view.rollLeft",execute:()=>e.shell.stepView("roll-left")},{id:"view.rollRight",label:"Roll Right",shortcut:"view.rollRight",execute:()=>e.shell.stepView("roll-right")},{id:"view.all",label:"Frame All",shortcut:"view.all",execute:()=>e.shell.frameAll()},{id:"view.zoomIn",label:"Zoom In",shortcut:"view.zoomIn",execute:()=>e.shell.zoomView(1)},{id:"view.zoomOut",label:"Zoom Out",shortcut:"view.zoomOut",execute:()=>e.shell.zoomView(-1)},{id:"view.perspective",label:"Perspective View",shortcut:"view.perspective",execute:()=>e.shell.setViewPreset("perspective")},{id:"view.projection",label:"Perspective/Orthographic",shortcut:"view.projection",execute:()=>e.shell.toggleProjection()},{id:"view.camera",label:"Camera View",shortcut:"view.camera",execute:()=>e.shell.toggleCameraView()},{id:"focus.selected",label:"Focus Selected",shortcut:"viewport.frameSelection",execute:()=>e.shell.focusOnSelection()}];return L({actions:()=>[...i,...j()],subscribe:b})}function F(e,i,o){const{keyboard:l}=O(),r=t=>()=>{i.isFlying||s(e.shell,t)},v=l.bindActions([{id:"transform.select",scope:"stage",run:r("select")},{id:"transform.combined",scope:"stage",run:r("combined")},{id:"transform.translate",scope:"stage",run:r("translate")},{id:"transform.rotate",scope:"stage",run:r("rotate")},{id:"transform.scale",scope:"stage",run:r("scale")},{id:"viewport.toggleSnap",scope:"stage",run:()=>{e.shell.toggleSnap();const{translate:t,rotate:n,scale:m}=e.shell.snapValues,p=`${l.shortcutFor("viewport.toggleSnap")??""} toggles; hold Ctrl while dragging to snap once`;E(e.shell.snapEnabled?`Snap on — ${t} units, ${n}°, ×${m} (${p})`:`Snap off (${p})`)}},{id:"viewport.frameSelection",scope:"stage",run:()=>e.shell.focusOnSelection()},{id:"viewport.cyclePivot",scope:"stage",run:()=>{const t=["active-element","median-point","individual-origins"],n=t.indexOf(e.shell.pivotMode);e.shell.setPivotMode(t[(n+1)%t.length])}},{id:"view.top",scope:"stage",run:()=>e.shell.setViewPreset("top")},{id:"view.front",scope:"stage",run:()=>e.shell.setViewPreset("front")},{id:"view.right",scope:"stage",run:()=>e.shell.setViewPreset("right")},{id:"view.bottom",scope:"stage",run:()=>e.shell.setViewPreset("bottom")},{id:"view.back",scope:"stage",run:()=>e.shell.setViewPreset("back")},{id:"view.left",scope:"stage",run:()=>e.shell.setViewPreset("left")},{id:"view.orbitLeft",scope:"stage",run:()=>e.shell.stepView("orbit-left")},{id:"view.orbitRight",scope:"stage",run:()=>e.shell.stepView("orbit-right")},{id:"view.orbitUp",scope:"stage",run:()=>e.shell.stepView("orbit-up")},{id:"view.orbitDown",scope:"stage",run:()=>e.shell.stepView("orbit-down")},{id:"view.opposite",scope:"stage",run:()=>e.shell.stepView("opposite")},{id:"view.rollLeft",scope:"stage",run:()=>e.shell.stepView("roll-left")},{id:"view.rollRight",scope:"stage",run:()=>e.shell.stepView("roll-right")},{id:"view.all",scope:"stage",run:()=>e.shell.frameAll()},{id:"view.zoomIn",scope:"stage",run:()=>e.shell.zoomView(1)},{id:"view.zoomOut",scope:"stage",run:()=>e.shell.zoomView(-1)},{id:"view.perspective",scope:"stage",run:()=>e.shell.setViewPreset("perspective")},{id:"view.projection",scope:"stage",run:()=>e.shell.toggleProjection()},{id:"view.camera",scope:"stage",run:()=>e.shell.toggleCameraView()},{id:"viewport.snapToFloor",scope:"stage",run:()=>i.snapSelectionToFloor()}]),c=()=>R("viewport");o.addEventListener("pointerdown",c),M();const d=t=>l.chordsFor("viewport.vertexSnapHold").some(n=>n.key===t.key.toLowerCase()),u=t=>{if(d(t)&&!t.metaKey&&!t.ctrlKey&&!t.repeat){if(z()!=="viewport"||t.target instanceof HTMLInputElement||t.target instanceof HTMLTextAreaElement)return;e.setVertexSnapActive(!0),i.activateVertexSnap()}},w=t=>{d(t)&&!t.metaKey&&!t.ctrlKey&&(e.setVertexSnapActive(!1),i.deactivateVertexSnap())};return window.addEventListener("keydown",u),window.addEventListener("keyup",w),()=>{v(),o.removeEventListener("pointerdown",c),window.removeEventListener("keydown",u),window.removeEventListener("keyup",w)}}function Y({stage:e}){return h.useEffect(()=>F(e.store,e.viewport,e.canvas),[e.store,e.viewport,e.canvas]),h.useEffect(()=>$(e.store),[e.store]),null}export{Y as StageKeyboardBinding};
@@ -1 +1 @@
1
- import{a as e}from"./jsx-runtime-DPjLkJKQ.js";import{r as s}from"./index-nmcBqr7Y.js";import{iT as w,h1 as P,df as R,aL as f,al as v,iU as A,gM as E,gN as k,iV as V,iW as T,dt as D,bq as M,br as b,G as N,iX as H,iY as U,d9 as $,bw as C,aM as z,a7 as F,iZ as I,bL as W,i_ as G,i$ as _,aa as q,j0 as Z,j1 as J,j2 as K,bs as X}from"./index-ClgrFOcX.js";import{s as B,o as O,a as Y}from"./object3d-document-session-registry-CADiW-LP.js";import{r as Q}from"./index-CtzuWnCS.js";import{T as ee}from"./TransientHint-Bslncm_l.js";import{d as te,b as se}from"./ViewportShadingMenu-CgbuQ0e-.js";import{V as j,s as oe}from"./StageHost-BMgCrIPG.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./index-CinJrH5C.js";import"./three-state-_ImCbP87.js";import"./editor-shell-store-aKHbAoCV.js";import"./output-pass-HurwNl0G.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./Pass-D1MRT672.js";import"./editor-layers-DwaX5UFy.js";import"./workspace-arrangement-86_8Kk5K.js";import"./user-data-DL6HsBPf.js";import"./entity-object-BLJ-I8XT.js";import"./three-contract-Dkt6PmWY.js";import"./standard-viewport-dressing-BJkGwiNT.js";import"./content-bounds-Dl5Y3LLv.js";import"./hierarchy-marks-DeG4E4Ke.js";import"./environment-Dg-YaLsA.js";import"./RoomEnvironment-BkknvS_I.js";import"./EXRLoader-CITMBvGd.js";import"./HDRLoader-BTGuGhVo.js";import"./preview-renderer-BrYNFV1p.js";import"./renderer-ownership-BovSEcLv.js";import"./live-mixers-B-bwLZ7c.js";import"./live-gesture-lock-DJbrjOqf.js";import"./three-integration-DB-xQHD5.js";import"./host-hierarchy-objects-BV3WqU2w.js";import"./layered-pick-guh6WlA7.js";import"./root-stacking-BEd9ZvxC.js";import"./model-thumbnail-CF3qGQWb.js";import"./studio-environment-Bw9zMFE8.js";import"./KTX2Loader-CaqVE6nY.js";import"./GLTFLoader-KeoruJgS.js";import"./BufferGeometryUtils-B22h7jo4.js";import"./component-instance-root-wO1p-rLr.js";import"./viewport-door-BV_lf5uK.js";import"./asset-preview-BUpxsHNd.js";import"./bitmap-label-Ct4k6ehY.js";import"./model-inspection-BDA5jikL.js";import"./three-viewport-presentation-Bg86EsDJ.js";import"./clip-planes-CnAI6DZn.js";import"./three-DWy0sZom.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./OrbitControls-B13MKuwC.js";import"./LineSegments2-DN9pUfWA.js";import"./three.quarks.esm-C_HmSKXo.js";import"./scene-framing-B5JC4NeG.js";import"./source-object3d-authoring-adapter-DeeboYub.js";import"./three-projection-core-IUovHgg_.js";import"./editor-presentation-activity-CqJH4G9t.js";import"./transport-strip-BZQnaxFN.js";import"./viewport-surface-status-D7M2L2lI.js";function h(t){return t.toFixed(2)}function re(){const t=w(),[o,r]=s.useState({x:0,y:0,z:0}),[i,n]=s.useState({x:0,y:0,z:0}),a=s.useRef(0);return s.useEffect(()=>{function u(){const m=t.cameraPosition,p=t.cameraTarget;r(l=>l.x!==m.x||l.y!==m.y||l.z!==m.z?{x:m.x,y:m.y,z:m.z}:l),n(l=>l.x!==p.x||l.y!==p.y||l.z!==p.z?{x:p.x,y:p.y,z:p.z}:l),a.current=requestAnimationFrame(u)}return a.current=requestAnimationFrame(u),()=>cancelAnimationFrame(a.current)},[t]),e.jsx(P,{variant:"overlay",border:!0,className:"volter-camera-info volter-chrome-island volter-glass-island","data-island-scale":"compact",children:e.jsxs(R,{gap:8,align:"center",style:{whiteSpace:"nowrap"},children:[e.jsxs(f,{variant:"code",children:["Pos ",h(o.x)," ",h(o.y)," ",h(o.z)]}),e.jsxs(f,{variant:"code",children:["Target ",h(i.x)," ",h(i.y)," ",h(i.z)]})]})})}function ie(){const t=w(),[,o]=s.useState(0),r=A();return s.useEffect(()=>{const i=setInterval(()=>o(n=>n+1),200);return()=>clearInterval(i)},[]),e.jsxs("div",{className:"volter-hud-overlay volter-chrome-island volter-glass-island","data-island-scale":"compact","data-hud-border":"strong",style:{position:"absolute",top:"var(--volter-viewport-overlay-hud-top, 48px)",right:8,padding:"6px 10px",pointerEvents:"auto",fontSize:"var(--volter-font-base)",color:v.content.primary,fontFamily:v.typography.mono,lineHeight:"16px"},children:[e.jsxs("div",{children:["FPS: ",t.fps.toFixed(0)]}),e.jsxs("div",{children:["Draw: ",t.drawCalls]}),e.jsxs("div",{children:["Tris: ",t.triangles.toLocaleString()]}),e.jsxs("div",{children:["Frame: ",t.frameTime.toFixed(1),"ms"]}),r!==null&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{children:["Heap: ",r.heapUsedMB===null?"n/a":`${r.heapUsedMB.toFixed(0)}MB`,r.heapLimitMB===null?"":` / ${r.heapLimitMB.toFixed(0)}MB`]}),e.jsxs("div",{children:["Mount epochs: ",r.mountEpochs]}),e.jsxs("div",{children:["Canvas: ",r.canvasMB.toFixed(1),"MB ×",r.canvases]}),r.textures!==void 0&&e.jsxs("div",{children:["GPU: ",r.textures," tex, ",r.geometries??0," geo",r.programs===void 0?"":`, ${r.programs} prog`]})]})]})}function ae({store:t,documentId:o}){s.useSyncExternalStore(t.shell.subscribe,t.shell.getSnapshot),s.useSyncExternalStore(E,k),s.useSyncExternalStore(V,T),s.useSyncExternalStore(B,O);const{adapter:r}=D(t.shell),i=Y(o);s.useSyncExternalStore(i?.subscribe??le,i?.getSnapshot??ce),s.useSyncExternalStore(M,b);const n=N(o),a=H(),u=U(),m=a.viewName==="bar"||a.viewName==="menu",[p,l]=s.useState(null),y=()=>p?.closest(".volter-dock-document-content")?.querySelector(':scope > .volter-stage-bar [data-stage-bar-slot="display"]')??null,x=s.useId(),g=y(),d=g&&(g.dataset.owner===void 0||g.dataset.owner===x)?g:null,[,L]=s.useReducer(c=>c+1,0);s.useEffect(()=>{const c=y();c&&c.dataset.owner===void 0&&(c.dataset.owner=x),(c&&c.dataset.owner===x?c:null)!==d&&L()}),s.useEffect(()=>()=>{d?.dataset.owner===x&&delete d.dataset.owner},[d,x]);const S=e.jsxs($,{label:"Viewport display",className:"volter-viewport-toolbar volter-viewport-toolbar-right volter-stage-display",children:[a.viewName==="bar"&&i?e.jsx(j,{shell:t.shell,documentId:o,label:oe(i.viewport,i.projection(),"long")}):null,e.jsx(C,{text:`Grid: ${n?"On":"Off"}`,children:e.jsx(z,{"aria-label":"Toggle grid","aria-pressed":n,size:"comfortable",onClick:()=>W(o,!n),children:e.jsx(F,{icon:I,size:"md"})})}),e.jsx(pe,{store:t,word:u.helpers}),e.jsx(te,{mode:ne(i)??t.shadingMode,onChange:c=>i?i.setMode(c):t.setShadingMode(c),words:u.shading}),m?null:e.jsx(j,{shell:t.shell,documentId:o}),e.jsx(me,{adapter:r,store:t})]});return e.jsxs(e.Fragment,{children:[e.jsx("span",{ref:l,hidden:!0}),d?Q.createPortal(S,d):S]})}function ne(t){return t?.presentation().mode??null}const le=()=>()=>{},ce=()=>0,me=s.memo(function({adapter:o,store:r}){const[,i]=s.useReducer(a=>a+1,0);s.useEffect(()=>o.subscribe?.(i),[o]);const n=s.useMemo(()=>G(o),[o,r.shell.contentVersion]);return n===0?null:e.jsx(C,{text:`Open Light Explorer · ${n} ${n===1?"light":"lights"}`,children:e.jsx(z,{"aria-label":"Open Light Explorer",size:"comfortable",onClick:()=>q(Z.lightExplorer.id),children:e.jsx(F,{icon:_,size:"md"})})})});function pe({store:t,word:o}){const r=[{key:"bounds",label:"Bounds"},{key:"lights",label:"Lights"},{key:"cameras",label:"Cameras"},{key:"colliders",label:"Colliders"},{key:"joints",label:"Joints"},{key:"particles",label:"Particle Emitters"},{key:"lod",label:"LOD"},{key:"audio",label:"Audio"},{key:"splines",label:"Splines"},{key:"navmesh",label:"NavMesh"},{key:"constraints",label:"Constraints"},{key:"reflectionProbes",label:"Reflection Probes"},{key:"triggerVolumes",label:"Trigger Volumes"},{key:"skeletons",label:"Skeletons"},{key:"weights",label:"Weights"},{key:"cursor",label:"3D Cursor"},{key:"empties",label:"Empties"}];return e.jsx(se,{label:"Helpers",...o!==void 0?{word:o}:{},master:{enabled:t.shell.showHelpers,onToggle:()=>t.shell.toggleHelpers()},choices:r.map(i=>({id:i.key,label:i.label,enabled:t.shell.helperVisibility[i.key],onToggle:()=>t.shell.toggleHelperType(i.key)}))})}function vt({store:t,documentId:o,stage:r,active:i,chrome:n}){const a=r?.store??t;s.useSyncExternalStore(t.shell.subscribe,t.shell.getShellSnapshot??t.shell.getSnapshot),s.useSyncExternalStore(a.shell.subscribe,a.shell.getShellSnapshot??a.shell.getSnapshot),s.useSyncExternalStore(V,T),s.useSyncExternalStore(B,O),s.useSyncExternalStore(E,k);const u=J(t.shell,o,n),m=K(u);s.useSyncExternalStore(M,b,b);const p=X(o).overlays.cameraReadout;return e.jsxs(e.Fragment,{children:[m?e.jsxs(e.Fragment,{children:[e.jsx(ae,{store:a,documentId:o}),p?e.jsx(re,{}):null]}):null,u.surface==="three"&&a.showStats&&e.jsx(ie,{}),i?e.jsx(ee,{}):null]})}export{vt as StageOverlaySet};
1
+ import{a as e}from"./jsx-runtime-DPjLkJKQ.js";import{r as s}from"./index-nmcBqr7Y.js";import{iT as w,h1 as P,df as R,aL as f,al as v,iU as A,gM as E,gN as k,iV as V,iW as T,dt as D,bq as M,br as b,G as N,iX as H,iY as U,d9 as $,bw as C,aM as z,a7 as F,iZ as I,bL as W,i_ as G,i$ as _,aa as q,j0 as Z,j1 as J,j2 as K,bs as X}from"./index-D9shXtZ9.js";import{s as B,o as O,a as Y}from"./object3d-document-session-registry-bor-eSgr.js";import{r as Q}from"./index-CtzuWnCS.js";import{T as ee}from"./TransientHint-w6qEumzV.js";import{d as te,b as se}from"./ViewportShadingMenu-9AaJLhq_.js";import{V as j,s as oe}from"./StageHost-dHitOcUe.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./index-CinJrH5C.js";import"./three-state-d-szeOea.js";import"./editor-shell-store-CV73gQk5.js";import"./output-pass-HurwNl0G.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./Pass-D1MRT672.js";import"./editor-layers-BVicagU1.js";import"./workspace-arrangement-BOk46mGq.js";import"./user-data-DHB4MWum.js";import"./entity-object-DTQ4I2K5.js";import"./three-contract-Dkt6PmWY.js";import"./standard-viewport-dressing-4xAZCGJ3.js";import"./content-bounds-UvcUv1DD.js";import"./hierarchy-marks-Dn7SO2iG.js";import"./environment-Dg-YaLsA.js";import"./RoomEnvironment-BkknvS_I.js";import"./EXRLoader-CITMBvGd.js";import"./HDRLoader-BTGuGhVo.js";import"./preview-renderer-BrYNFV1p.js";import"./renderer-ownership-BovSEcLv.js";import"./live-mixers-B-bwLZ7c.js";import"./live-gesture-lock-DJbrjOqf.js";import"./three-integration-C1onOQwq.js";import"./host-hierarchy-objects-BV3WqU2w.js";import"./layered-pick-MdBIQeUt.js";import"./root-stacking-BEd9ZvxC.js";import"./model-thumbnail-Bp-1yQ-X.js";import"./studio-environment-CvCEc6PK.js";import"./KTX2Loader-CaqVE6nY.js";import"./GLTFLoader-KeoruJgS.js";import"./BufferGeometryUtils-B22h7jo4.js";import"./component-instance-root-BrRLxTKu.js";import"./viewport-door-DkDcO9tp.js";import"./asset-preview-uRqIcg3G.js";import"./bitmap-label-Ct4k6ehY.js";import"./model-inspection-Bsfj6b48.js";import"./three-viewport-presentation-D1ysWIW4.js";import"./clip-planes-CnAI6DZn.js";import"./three-Do16bEo9.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./OrbitControls-B13MKuwC.js";import"./LineSegments2-DN9pUfWA.js";import"./three.quarks.esm-C_HmSKXo.js";import"./scene-framing-BSvegpi4.js";import"./source-object3d-authoring-adapter-BJwLQVsv.js";import"./three-projection-core-1FETWj5n.js";import"./editor-presentation-activity-CqJH4G9t.js";import"./transport-strip-D4N14xHx.js";import"./viewport-surface-status-HKbJtC2G.js";function h(t){return t.toFixed(2)}function re(){const t=w(),[o,r]=s.useState({x:0,y:0,z:0}),[i,n]=s.useState({x:0,y:0,z:0}),a=s.useRef(0);return s.useEffect(()=>{function u(){const m=t.cameraPosition,p=t.cameraTarget;r(l=>l.x!==m.x||l.y!==m.y||l.z!==m.z?{x:m.x,y:m.y,z:m.z}:l),n(l=>l.x!==p.x||l.y!==p.y||l.z!==p.z?{x:p.x,y:p.y,z:p.z}:l),a.current=requestAnimationFrame(u)}return a.current=requestAnimationFrame(u),()=>cancelAnimationFrame(a.current)},[t]),e.jsx(P,{variant:"overlay",border:!0,className:"volter-camera-info volter-chrome-island volter-glass-island","data-island-scale":"compact",children:e.jsxs(R,{gap:8,align:"center",style:{whiteSpace:"nowrap"},children:[e.jsxs(f,{variant:"code",children:["Pos ",h(o.x)," ",h(o.y)," ",h(o.z)]}),e.jsxs(f,{variant:"code",children:["Target ",h(i.x)," ",h(i.y)," ",h(i.z)]})]})})}function ie(){const t=w(),[,o]=s.useState(0),r=A();return s.useEffect(()=>{const i=setInterval(()=>o(n=>n+1),200);return()=>clearInterval(i)},[]),e.jsxs("div",{className:"volter-hud-overlay volter-chrome-island volter-glass-island","data-island-scale":"compact","data-hud-border":"strong",style:{position:"absolute",top:"var(--volter-viewport-overlay-hud-top, 48px)",right:8,padding:"6px 10px",pointerEvents:"auto",fontSize:"var(--volter-font-base)",color:v.content.primary,fontFamily:v.typography.mono,lineHeight:"16px"},children:[e.jsxs("div",{children:["FPS: ",t.fps.toFixed(0)]}),e.jsxs("div",{children:["Draw: ",t.drawCalls]}),e.jsxs("div",{children:["Tris: ",t.triangles.toLocaleString()]}),e.jsxs("div",{children:["Frame: ",t.frameTime.toFixed(1),"ms"]}),r!==null&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{children:["Heap: ",r.heapUsedMB===null?"n/a":`${r.heapUsedMB.toFixed(0)}MB`,r.heapLimitMB===null?"":` / ${r.heapLimitMB.toFixed(0)}MB`]}),e.jsxs("div",{children:["Mount epochs: ",r.mountEpochs]}),e.jsxs("div",{children:["Canvas: ",r.canvasMB.toFixed(1),"MB ×",r.canvases]}),r.textures!==void 0&&e.jsxs("div",{children:["GPU: ",r.textures," tex, ",r.geometries??0," geo",r.programs===void 0?"":`, ${r.programs} prog`]})]})]})}function ae({store:t,documentId:o}){s.useSyncExternalStore(t.shell.subscribe,t.shell.getSnapshot),s.useSyncExternalStore(E,k),s.useSyncExternalStore(V,T),s.useSyncExternalStore(B,O);const{adapter:r}=D(t.shell),i=Y(o);s.useSyncExternalStore(i?.subscribe??le,i?.getSnapshot??ce),s.useSyncExternalStore(M,b);const n=N(o),a=H(),u=U(),m=a.viewName==="bar"||a.viewName==="menu",[p,l]=s.useState(null),y=()=>p?.closest(".volter-dock-document-content")?.querySelector(':scope > .volter-stage-bar [data-stage-bar-slot="display"]')??null,x=s.useId(),g=y(),d=g&&(g.dataset.owner===void 0||g.dataset.owner===x)?g:null,[,L]=s.useReducer(c=>c+1,0);s.useEffect(()=>{const c=y();c&&c.dataset.owner===void 0&&(c.dataset.owner=x),(c&&c.dataset.owner===x?c:null)!==d&&L()}),s.useEffect(()=>()=>{d?.dataset.owner===x&&delete d.dataset.owner},[d,x]);const S=e.jsxs($,{label:"Viewport display",className:"volter-viewport-toolbar volter-viewport-toolbar-right volter-stage-display",children:[a.viewName==="bar"&&i?e.jsx(j,{shell:t.shell,documentId:o,label:oe(i.viewport,i.projection(),"long")}):null,e.jsx(C,{text:`Grid: ${n?"On":"Off"}`,children:e.jsx(z,{"aria-label":"Toggle grid","aria-pressed":n,size:"comfortable",onClick:()=>W(o,!n),children:e.jsx(F,{icon:I,size:"md"})})}),e.jsx(pe,{store:t,word:u.helpers}),e.jsx(te,{mode:ne(i)??t.shadingMode,onChange:c=>i?i.setMode(c):t.setShadingMode(c),words:u.shading}),m?null:e.jsx(j,{shell:t.shell,documentId:o}),e.jsx(me,{adapter:r,store:t})]});return e.jsxs(e.Fragment,{children:[e.jsx("span",{ref:l,hidden:!0}),d?Q.createPortal(S,d):S]})}function ne(t){return t?.presentation().mode??null}const le=()=>()=>{},ce=()=>0,me=s.memo(function({adapter:o,store:r}){const[,i]=s.useReducer(a=>a+1,0);s.useEffect(()=>o.subscribe?.(i),[o]);const n=s.useMemo(()=>G(o),[o,r.shell.contentVersion]);return n===0?null:e.jsx(C,{text:`Open Light Explorer · ${n} ${n===1?"light":"lights"}`,children:e.jsx(z,{"aria-label":"Open Light Explorer",size:"comfortable",onClick:()=>q(Z.lightExplorer.id),children:e.jsx(F,{icon:_,size:"md"})})})});function pe({store:t,word:o}){const r=[{key:"bounds",label:"Bounds"},{key:"lights",label:"Lights"},{key:"cameras",label:"Cameras"},{key:"colliders",label:"Colliders"},{key:"joints",label:"Joints"},{key:"particles",label:"Particle Emitters"},{key:"lod",label:"LOD"},{key:"audio",label:"Audio"},{key:"splines",label:"Splines"},{key:"navmesh",label:"NavMesh"},{key:"constraints",label:"Constraints"},{key:"reflectionProbes",label:"Reflection Probes"},{key:"triggerVolumes",label:"Trigger Volumes"},{key:"skeletons",label:"Skeletons"},{key:"weights",label:"Weights"},{key:"cursor",label:"3D Cursor"},{key:"empties",label:"Empties"}];return e.jsx(se,{label:"Helpers",...o!==void 0?{word:o}:{},master:{enabled:t.shell.showHelpers,onToggle:()=>t.shell.toggleHelpers()},choices:r.map(i=>({id:i.key,label:i.label,enabled:t.shell.helperVisibility[i.key],onToggle:()=>t.shell.toggleHelperType(i.key)}))})}function vt({store:t,documentId:o,stage:r,active:i,chrome:n}){const a=r?.store??t;s.useSyncExternalStore(t.shell.subscribe,t.shell.getShellSnapshot??t.shell.getSnapshot),s.useSyncExternalStore(a.shell.subscribe,a.shell.getShellSnapshot??a.shell.getSnapshot),s.useSyncExternalStore(V,T),s.useSyncExternalStore(B,O),s.useSyncExternalStore(E,k);const u=J(t.shell,o,n),m=K(u);s.useSyncExternalStore(M,b,b);const p=X(o).overlays.cameraReadout;return e.jsxs(e.Fragment,{children:[m?e.jsxs(e.Fragment,{children:[e.jsx(ae,{store:a,documentId:o}),p?e.jsx(re,{}):null]}):null,u.surface==="three"&&a.showStats&&e.jsx(ie,{}),i?e.jsx(ee,{}):null]})}export{vt as StageOverlaySet};
@@ -1 +1 @@
1
- import"./jsx-runtime-DPjLkJKQ.js";import"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";import{dy as A,ap as j,y as Q,dz as V,dA as _}from"./index-ClgrFOcX.js";import{a as O}from"./content-bounds-Dl5Y3LLv.js";import{r as w}from"./collaboration-presence-1_UMOAkw.js";import{e6 as G,fd as W,d9 as H,S as U,_ as M,T as k,ej as J,eE as K,eF as ee,dp as te,fo as x,cW as oe,J as ne,a$ as re,N as ie,bX as ae,bV as se}from"./three.core-3arARmh6.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./hierarchy-marks-DeG4E4Ke.js";import"./workspace-arrangement-86_8Kk5K.js";function ce(){const e=document.querySelector(`.${V}`);return(e?getComputedStyle(e).getPropertyValue("--volter-content-on-accent").trim():"")||_.color.content.onAccent}function Z(e,r){const o=e.image,n=o.getContext("2d");if(!n)return;n.clearRect(0,0,o.width,o.height),n.fillStyle=r.color,n.beginPath(),n.roundRect(2,2,o.width-4,o.height-4,16),n.fill(),n.fillStyle=ce(),n.font="600 22px system-ui, sans-serif",n.textAlign="center",n.textBaseline="middle";const c=r.kind==="agent"?" · AI":"";n.fillText(`${r.displayName}${c}`,o.width/2,o.height/2,238),e.needsUpdate=!0}function le(e){const r=new H(50,1,.2,1.4),o=new U(r),n=new M(e.color);o.setColors(n,n,n,n,n),o.name=`Collaboration camera: ${e.displayName}`,o.userData.editorOnly=!0;const c=document.createElement("canvas");c.width=256,c.height=64;const p=new k(c);p.colorSpace=J;const d=new K(new ee({map:p,depthTest:!1,transparent:!0}));return d.name=`Collaboration label: ${e.displayName}`,d.userData.editorOnly=!0,d.scale.set(1.8,.45,1),d.renderOrder=1e4,Z(p,e),{camera:r,helper:o,label:d,texture:p,signature:"",targetPosition:new x,targetQuaternion:new te,targetFov:50,initialized:!1}}function de(e,r){const o=r.presence.camera;if(!o)return;e.targetPosition.set(o.x,o.y,o.z);const n=new oe;n.position.copy(e.targetPosition),n.lookAt(o.targetX,o.targetY,o.targetZ),e.targetQuaternion.copy(n.quaternion),e.targetFov=o.fov,e.initialized||(e.initialized=!0,e.camera.position.copy(e.targetPosition),e.camera.quaternion.copy(e.targetQuaternion),e.camera.fov=e.targetFov);const c=`${r.displayName}|${r.kind}|${r.color}|${r.status}`;c!==e.signature&&(e.signature=c,Z(e.texture,r))}function pe(e,r){const o=1-Math.exp(-12*Math.max(0,r));e.camera.position.lerp(e.targetPosition,o),e.camera.quaternion.slerp(e.targetQuaternion,o),e.camera.fov+=(e.targetFov-e.camera.fov)*o,e.camera.updateProjectionMatrix(),e.camera.updateMatrixWorld(!0),e.helper.update(),e.label.position.copy(e.camera.position),e.label.position.y+=.55}function Y(e){e.helper.removeFromParent(),e.label.removeFromParent(),e.helper.dispose(),e.texture.dispose(),e.label.material.dispose()}function ue(e,r){const o=O(e),n=new ne(o,new M(r));return n.name=`Collaboration selection: ${e.name||e.uuid}`,n.userData.editorOnly=!0,n.renderOrder=9999,n.material.depthTest=!1,{object:e,box:o,helper:n}}function b(e){e.helper.removeFromParent(),e.helper.geometry.dispose(),e.helper.material.dispose()}function me(e){if(!e||e.type!=="pointer-ray"||!["originX","originY","originZ","directionX","directionY","directionZ","length"].every(p=>typeof e[p]=="number"&&Number.isFinite(e[p])))return null;const o=new x(e.originX,e.originY,e.originZ),n=new x(e.directionX,e.directionY,e.directionZ),c=Math.min(1e3,Math.max(.1,e.length));return n.lengthSq()<1e-6?null:{origin:o,end:o.clone().add(n.normalize().multiplyScalar(c))}}function Le(e){const{scene:r,store:o,documentId:n,container:c,canvas:p,viewport:d,readVisibleCameraPose:R}=e,y=()=>Q()===n,v=()=>{if(!y())return;const i=R();w({camera:{x:i.position.x,y:i.position.y,z:i.position.z,targetX:i.target.x,targetY:i.target.y,targetZ:i.target.z,fov:i.fov}})};d.orbitControls.addEventListener("change",v);let C=!1;const I=i=>{const s=i.value===!0;C=s,y()&&w({gesture:s?{type:"transform",selection:[...o.shell.selectedEntityIds]}:null})};d.transformControls.addEventListener("dragging-changed",I);const S=new G,P=new W,z=i=>{if(C||i.buttons!==0||!y())return;const s=p.getBoundingClientRect();if(s.width<=0||s.height<=0)return;P.set((i.clientX-s.left)/s.width*2-1,-((i.clientY-s.top)/s.height)*2+1),S.setFromCamera(P,d.renderCamera);const l=S.ray,g=R();w({gesture:{type:"pointer-ray",originX:l.origin.x,originY:l.origin.y,originZ:l.origin.z,directionX:l.direction.x,directionY:l.direction.y,directionZ:l.direction.z,length:Math.max(2,g.position.distanceTo(g.target))}})},E=()=>{!C&&y()&&w({gesture:null})};c.addEventListener("pointermove",z),c.addEventListener("pointerleave",E),v();const m=new Map,u=new Map,f=new Map;let L=-1;const q=()=>{const i=A();if(!i||i.sequence===L)return;L=i.sequence;const s=i.participants.filter(t=>t.participantId!==j&&t.presence.document===n),l=s.filter(t=>t.presence.camera),g=new Set(l.map(t=>t.participantId));for(const[t,a]of m)g.has(t)||(Y(a),m.delete(t));for(const t of l){let a=m.get(t.participantId);a||(a=le(t),m.set(t.participantId,a),r.add(a.helper,a.label)),de(a,t)}const F=s.flatMap(t=>t.presence.selection.slice(0,20).map(a=>({key:`${t.participantId}:${a}`,objectId:a,color:t.color}))),B=new Set(F.map(t=>t.key));for(const[t,a]of u)B.has(t)||(b(a),u.delete(t));for(const t of F){const a=o.objectMap.get(t.objectId),h=u.get(t.key);if(!a){h&&(b(h),u.delete(t.key));continue}if(h?.object===a)continue;h&&b(h);const $=ue(a,t.color);u.set(t.key,$),r.add($.helper)}const X=s.flatMap(t=>{const a=me(t.presence.gesture);return a?[{participantId:t.participantId,color:t.color,ray:a}]:[]}),N=new Set(X.map(t=>t.participantId));for(const[t,a]of f)N.has(t)||(D(a),f.delete(t));for(const t of X){let a=f.get(t.participantId);a||(a=fe(t.color),f.set(t.participantId,a),r.add(a.line)),ge(a,t.ray)}},T=i=>{if(!y())return;const s=i.detail?.participantId;if(typeof s!="string")return;const l=A()?.participants.find(g=>g.participantId===s)?.presence.camera;l&&o.shell.setCameraPose({x:l.x,y:l.y,z:l.z},{x:l.targetX,y:l.targetY,z:l.targetZ},l.fov)};return window.addEventListener("editor:collaboration-join",T),{reportCamera:v,syncMarkers:i=>{q();for(const s of m.values())pe(s,i);for(const s of u.values())O(s.object,s.box)},live:()=>m.size+u.size+f.size>0,dispose:()=>{d.orbitControls.removeEventListener("change",v),d.transformControls.removeEventListener("dragging-changed",I),c.removeEventListener("pointermove",z),c.removeEventListener("pointerleave",E),window.removeEventListener("editor:collaboration-join",T);for(const i of m.values())Y(i);m.clear();for(const i of u.values())b(i);u.clear();for(const i of f.values())D(i);f.clear()}}}function fe(e){const r=new re(new Float32Array(6),3),o=new ie;o.setAttribute("position",r);const n=new ae({color:new M(e),depthTest:!1,transparent:!0,opacity:.9}),c=new se(o,n);return c.name="Collaboration pointer ray",c.userData.editorOnly=!0,c.renderOrder=10001,{line:c,positions:r}}function ge(e,r){e.positions.setXYZ(0,r.origin.x,r.origin.y,r.origin.z),e.positions.setXYZ(1,r.end.x,r.end.y,r.end.z),e.positions.needsUpdate=!0,e.line.geometry.computeBoundingSphere()}function D(e){e.line.removeFromParent(),e.line.geometry.dispose(),e.line.material.dispose()}export{Le as bindStagePresenceMarkers};
1
+ import"./jsx-runtime-DPjLkJKQ.js";import"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";import{dy as A,ap as j,y as Q,dz as V,dA as _}from"./index-D9shXtZ9.js";import{a as O}from"./content-bounds-UvcUv1DD.js";import{r as w}from"./collaboration-presence-B9eqNDDB.js";import{e6 as G,fd as W,d9 as H,S as U,_ as M,T as k,ej as J,eE as K,eF as ee,dp as te,fo as x,cW as oe,J as ne,a$ as re,N as ie,bX as ae,bV as se}from"./three.core-3arARmh6.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./hierarchy-marks-Dn7SO2iG.js";import"./workspace-arrangement-BOk46mGq.js";function ce(){const e=document.querySelector(`.${V}`);return(e?getComputedStyle(e).getPropertyValue("--volter-content-on-accent").trim():"")||_.color.content.onAccent}function Z(e,r){const o=e.image,n=o.getContext("2d");if(!n)return;n.clearRect(0,0,o.width,o.height),n.fillStyle=r.color,n.beginPath(),n.roundRect(2,2,o.width-4,o.height-4,16),n.fill(),n.fillStyle=ce(),n.font="600 22px system-ui, sans-serif",n.textAlign="center",n.textBaseline="middle";const c=r.kind==="agent"?" · AI":"";n.fillText(`${r.displayName}${c}`,o.width/2,o.height/2,238),e.needsUpdate=!0}function le(e){const r=new H(50,1,.2,1.4),o=new U(r),n=new M(e.color);o.setColors(n,n,n,n,n),o.name=`Collaboration camera: ${e.displayName}`,o.userData.editorOnly=!0;const c=document.createElement("canvas");c.width=256,c.height=64;const p=new k(c);p.colorSpace=J;const d=new K(new ee({map:p,depthTest:!1,transparent:!0}));return d.name=`Collaboration label: ${e.displayName}`,d.userData.editorOnly=!0,d.scale.set(1.8,.45,1),d.renderOrder=1e4,Z(p,e),{camera:r,helper:o,label:d,texture:p,signature:"",targetPosition:new x,targetQuaternion:new te,targetFov:50,initialized:!1}}function de(e,r){const o=r.presence.camera;if(!o)return;e.targetPosition.set(o.x,o.y,o.z);const n=new oe;n.position.copy(e.targetPosition),n.lookAt(o.targetX,o.targetY,o.targetZ),e.targetQuaternion.copy(n.quaternion),e.targetFov=o.fov,e.initialized||(e.initialized=!0,e.camera.position.copy(e.targetPosition),e.camera.quaternion.copy(e.targetQuaternion),e.camera.fov=e.targetFov);const c=`${r.displayName}|${r.kind}|${r.color}|${r.status}`;c!==e.signature&&(e.signature=c,Z(e.texture,r))}function pe(e,r){const o=1-Math.exp(-12*Math.max(0,r));e.camera.position.lerp(e.targetPosition,o),e.camera.quaternion.slerp(e.targetQuaternion,o),e.camera.fov+=(e.targetFov-e.camera.fov)*o,e.camera.updateProjectionMatrix(),e.camera.updateMatrixWorld(!0),e.helper.update(),e.label.position.copy(e.camera.position),e.label.position.y+=.55}function Y(e){e.helper.removeFromParent(),e.label.removeFromParent(),e.helper.dispose(),e.texture.dispose(),e.label.material.dispose()}function ue(e,r){const o=O(e),n=new ne(o,new M(r));return n.name=`Collaboration selection: ${e.name||e.uuid}`,n.userData.editorOnly=!0,n.renderOrder=9999,n.material.depthTest=!1,{object:e,box:o,helper:n}}function b(e){e.helper.removeFromParent(),e.helper.geometry.dispose(),e.helper.material.dispose()}function me(e){if(!e||e.type!=="pointer-ray"||!["originX","originY","originZ","directionX","directionY","directionZ","length"].every(p=>typeof e[p]=="number"&&Number.isFinite(e[p])))return null;const o=new x(e.originX,e.originY,e.originZ),n=new x(e.directionX,e.directionY,e.directionZ),c=Math.min(1e3,Math.max(.1,e.length));return n.lengthSq()<1e-6?null:{origin:o,end:o.clone().add(n.normalize().multiplyScalar(c))}}function Le(e){const{scene:r,store:o,documentId:n,container:c,canvas:p,viewport:d,readVisibleCameraPose:R}=e,y=()=>Q()===n,v=()=>{if(!y())return;const i=R();w({camera:{x:i.position.x,y:i.position.y,z:i.position.z,targetX:i.target.x,targetY:i.target.y,targetZ:i.target.z,fov:i.fov}})};d.orbitControls.addEventListener("change",v);let C=!1;const I=i=>{const s=i.value===!0;C=s,y()&&w({gesture:s?{type:"transform",selection:[...o.shell.selectedEntityIds]}:null})};d.transformControls.addEventListener("dragging-changed",I);const S=new G,P=new W,z=i=>{if(C||i.buttons!==0||!y())return;const s=p.getBoundingClientRect();if(s.width<=0||s.height<=0)return;P.set((i.clientX-s.left)/s.width*2-1,-((i.clientY-s.top)/s.height)*2+1),S.setFromCamera(P,d.renderCamera);const l=S.ray,g=R();w({gesture:{type:"pointer-ray",originX:l.origin.x,originY:l.origin.y,originZ:l.origin.z,directionX:l.direction.x,directionY:l.direction.y,directionZ:l.direction.z,length:Math.max(2,g.position.distanceTo(g.target))}})},E=()=>{!C&&y()&&w({gesture:null})};c.addEventListener("pointermove",z),c.addEventListener("pointerleave",E),v();const m=new Map,u=new Map,f=new Map;let L=-1;const q=()=>{const i=A();if(!i||i.sequence===L)return;L=i.sequence;const s=i.participants.filter(t=>t.participantId!==j&&t.presence.document===n),l=s.filter(t=>t.presence.camera),g=new Set(l.map(t=>t.participantId));for(const[t,a]of m)g.has(t)||(Y(a),m.delete(t));for(const t of l){let a=m.get(t.participantId);a||(a=le(t),m.set(t.participantId,a),r.add(a.helper,a.label)),de(a,t)}const F=s.flatMap(t=>t.presence.selection.slice(0,20).map(a=>({key:`${t.participantId}:${a}`,objectId:a,color:t.color}))),B=new Set(F.map(t=>t.key));for(const[t,a]of u)B.has(t)||(b(a),u.delete(t));for(const t of F){const a=o.objectMap.get(t.objectId),h=u.get(t.key);if(!a){h&&(b(h),u.delete(t.key));continue}if(h?.object===a)continue;h&&b(h);const $=ue(a,t.color);u.set(t.key,$),r.add($.helper)}const X=s.flatMap(t=>{const a=me(t.presence.gesture);return a?[{participantId:t.participantId,color:t.color,ray:a}]:[]}),N=new Set(X.map(t=>t.participantId));for(const[t,a]of f)N.has(t)||(D(a),f.delete(t));for(const t of X){let a=f.get(t.participantId);a||(a=fe(t.color),f.set(t.participantId,a),r.add(a.line)),ge(a,t.ray)}},T=i=>{if(!y())return;const s=i.detail?.participantId;if(typeof s!="string")return;const l=A()?.participants.find(g=>g.participantId===s)?.presence.camera;l&&o.shell.setCameraPose({x:l.x,y:l.y,z:l.z},{x:l.targetX,y:l.targetY,z:l.targetZ},l.fov)};return window.addEventListener("editor:collaboration-join",T),{reportCamera:v,syncMarkers:i=>{q();for(const s of m.values())pe(s,i);for(const s of u.values())O(s.object,s.box)},live:()=>m.size+u.size+f.size>0,dispose:()=>{d.orbitControls.removeEventListener("change",v),d.transformControls.removeEventListener("dragging-changed",I),c.removeEventListener("pointermove",z),c.removeEventListener("pointerleave",E),window.removeEventListener("editor:collaboration-join",T);for(const i of m.values())Y(i);m.clear();for(const i of u.values())b(i);u.clear();for(const i of f.values())D(i);f.clear()}}}function fe(e){const r=new re(new Float32Array(6),3),o=new ie;o.setAttribute("position",r);const n=new ae({color:new M(e),depthTest:!1,transparent:!0,opacity:.9}),c=new se(o,n);return c.name="Collaboration pointer ray",c.userData.editorOnly=!0,c.renderOrder=10001,{line:c,positions:r}}function ge(e,r){e.positions.setXYZ(0,r.origin.x,r.origin.y,r.origin.z),e.positions.setXYZ(1,r.end.x,r.end.y,r.end.z),e.positions.needsUpdate=!0,e.line.geometry.computeBoundingSphere()}function D(e){e.line.removeFromParent(),e.line.geometry.dispose(),e.line.material.dispose()}export{Le as bindStagePresenceMarkers};
@@ -1 +1 @@
1
- import{a}from"./jsx-runtime-DPjLkJKQ.js";import{bn as n,bo as m,U as l,bp as f,e3 as c,bs as S}from"./index-ClgrFOcX.js";import{r as e}from"./index-nmcBqr7Y.js";import{t as T}from"./StageHost-BMgCrIPG.js";import{t as u}from"./editor-shell-store-aKHbAoCV.js";import{T as h,a as g}from"./Toolbar-yvFlRv8R.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"./three-state-_ImCbP87.js";import"./standard-viewport-dressing-BJkGwiNT.js";import"./content-bounds-Dl5Y3LLv.js";import"./hierarchy-marks-DeG4E4Ke.js";import"./workspace-arrangement-86_8Kk5K.js";import"./three.core-3arARmh6.js";import"./editor-layers-DwaX5UFy.js";import"./environment-Dg-YaLsA.js";import"./three.module-BLhyNg0e.js";import"./RoomEnvironment-BkknvS_I.js";import"./EXRLoader-CITMBvGd.js";import"./HDRLoader-BTGuGhVo.js";import"./user-data-DL6HsBPf.js";import"./preview-renderer-BrYNFV1p.js";import"./renderer-ownership-BovSEcLv.js";import"./live-mixers-B-bwLZ7c.js";import"./live-gesture-lock-DJbrjOqf.js";import"./output-pass-HurwNl0G.js";import"./Pass-D1MRT672.js";import"./three-integration-DB-xQHD5.js";import"./host-hierarchy-objects-BV3WqU2w.js";import"./layered-pick-guh6WlA7.js";import"./root-stacking-BEd9ZvxC.js";import"./model-thumbnail-CF3qGQWb.js";import"./studio-environment-Bw9zMFE8.js";import"./KTX2Loader-CaqVE6nY.js";import"./GLTFLoader-KeoruJgS.js";import"./BufferGeometryUtils-B22h7jo4.js";import"./object3d-document-session-registry-CADiW-LP.js";import"./entity-object-BLJ-I8XT.js";import"./three-contract-Dkt6PmWY.js";import"./component-instance-root-wO1p-rLr.js";import"./viewport-door-BV_lf5uK.js";import"./asset-preview-BUpxsHNd.js";import"./bitmap-label-Ct4k6ehY.js";import"./model-inspection-BDA5jikL.js";import"./three-viewport-presentation-Bg86EsDJ.js";import"./clip-planes-CnAI6DZn.js";import"./three-DWy0sZom.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./OrbitControls-B13MKuwC.js";import"./LineSegments2-DN9pUfWA.js";import"./three.quarks.esm-C_HmSKXo.js";import"./scene-framing-B5JC4NeG.js";import"./source-object3d-authoring-adapter-DeeboYub.js";import"./three-projection-core-IUovHgg_.js";import"./editor-presentation-activity-CqJH4G9t.js";import"./transport-strip-BZQnaxFN.js";import"./viewport-surface-status-D7M2L2lI.js";import"./transform-mode-request-BnV8FSnx.js";const s=new WeakMap;function b(r,t){if(r===null)return;const o=s.get(r)??new Set;if(s.set(r,o),o.has(t))return;o.add(t);const i={select:"select",transform:"combined",move:"translate",rotate:"rotate",scale:"scale"};r.shell.setTransformMode(i[S(t).interaction.bootTool])}function Mr({documentId:r}){e.useSyncExternalStore(n,m,m);const t=l(),o=T(r),i=f(r);if(e.useEffect(()=>{o==="gizmo"&&b(i&&u(i),r)},[o,i,r]),o==="none")return null;const p=o==="modal"?c(r):null;return a.jsx(g,{store:i??t,...p?{door:p}:{}})}function Or({documentId:r}){e.useSyncExternalStore(n,m,m);const t=l();return a.jsx(h,{store:f(r)??t})}export{Or as ThreeStageTransformControls,Mr as ThreeStageTransformTools};
1
+ import{a}from"./jsx-runtime-DPjLkJKQ.js";import{bn as n,bo as m,U as l,bp as f,e3 as c,bs as S}from"./index-D9shXtZ9.js";import{r as e}from"./index-nmcBqr7Y.js";import{t as T}from"./StageHost-dHitOcUe.js";import{t as u}from"./editor-shell-store-CV73gQk5.js";import{T as h,a as g}from"./Toolbar-BqUPRrhs.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"./three-state-d-szeOea.js";import"./standard-viewport-dressing-4xAZCGJ3.js";import"./content-bounds-UvcUv1DD.js";import"./hierarchy-marks-Dn7SO2iG.js";import"./workspace-arrangement-BOk46mGq.js";import"./three.core-3arARmh6.js";import"./editor-layers-BVicagU1.js";import"./environment-Dg-YaLsA.js";import"./three.module-BLhyNg0e.js";import"./RoomEnvironment-BkknvS_I.js";import"./EXRLoader-CITMBvGd.js";import"./HDRLoader-BTGuGhVo.js";import"./user-data-DHB4MWum.js";import"./preview-renderer-BrYNFV1p.js";import"./renderer-ownership-BovSEcLv.js";import"./live-mixers-B-bwLZ7c.js";import"./live-gesture-lock-DJbrjOqf.js";import"./output-pass-HurwNl0G.js";import"./Pass-D1MRT672.js";import"./three-integration-C1onOQwq.js";import"./host-hierarchy-objects-BV3WqU2w.js";import"./layered-pick-MdBIQeUt.js";import"./root-stacking-BEd9ZvxC.js";import"./model-thumbnail-Bp-1yQ-X.js";import"./studio-environment-CvCEc6PK.js";import"./KTX2Loader-CaqVE6nY.js";import"./GLTFLoader-KeoruJgS.js";import"./BufferGeometryUtils-B22h7jo4.js";import"./object3d-document-session-registry-bor-eSgr.js";import"./entity-object-DTQ4I2K5.js";import"./three-contract-Dkt6PmWY.js";import"./component-instance-root-BrRLxTKu.js";import"./viewport-door-DkDcO9tp.js";import"./asset-preview-uRqIcg3G.js";import"./bitmap-label-Ct4k6ehY.js";import"./model-inspection-Bsfj6b48.js";import"./three-viewport-presentation-D1ysWIW4.js";import"./clip-planes-CnAI6DZn.js";import"./three-Do16bEo9.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./OrbitControls-B13MKuwC.js";import"./LineSegments2-DN9pUfWA.js";import"./three.quarks.esm-C_HmSKXo.js";import"./scene-framing-BSvegpi4.js";import"./source-object3d-authoring-adapter-BJwLQVsv.js";import"./three-projection-core-1FETWj5n.js";import"./editor-presentation-activity-CqJH4G9t.js";import"./transport-strip-D4N14xHx.js";import"./viewport-surface-status-HKbJtC2G.js";import"./transform-mode-request-B3AxgwGW.js";const s=new WeakMap;function b(r,t){if(r===null)return;const o=s.get(r)??new Set;if(s.set(r,o),o.has(t))return;o.add(t);const i={select:"select",transform:"combined",move:"translate",rotate:"rotate",scale:"scale"};r.shell.setTransformMode(i[S(t).interaction.bootTool])}function Mr({documentId:r}){e.useSyncExternalStore(n,m,m);const t=l(),o=T(r),i=f(r);if(e.useEffect(()=>{o==="gizmo"&&b(i&&u(i),r)},[o,i,r]),o==="none")return null;const p=o==="modal"?c(r):null;return a.jsx(g,{store:i??t,...p?{door:p}:{}})}function Or({documentId:r}){e.useSyncExternalStore(n,m,m);const t=l();return a.jsx(h,{store:f(r)??t})}export{Or as ThreeStageTransformControls,Mr as ThreeStageTransformTools};
@@ -1,4 +1,4 @@
1
- import{a as nt}from"./content-bounds-Dl5Y3LLv.js";import{EDITOR_LAYER as bt}from"./editor-layers-DwaX5UFy.js";import{loadEnvironmentImage as St}from"./environment-Dg-YaLsA.js";import{s as Y}from"./user-data-DL6HsBPf.js";import{P as Z,S as J}from"./three.module-BLhyNg0e.js";import{fp as xt,fq as kt,Z as It}from"./index-ClgrFOcX.js";import{aE as q,bh as tt,j as Ft,I as Pt,co as Ct,db as Gt,fo as et,ap as Tt,e as Et,A as Rt,cP as _t,cj as d,_ as f,au as it,dw as rt,bi as Dt,aT as $t,c7 as Ot,c1 as z,ej as st,bg as At,aw as Bt,cx as Lt}from"./three.core-3arARmh6.js";let at=0;function zt(){at++}function se(){return at}const Ht=[.8,.5,-1],N=new f(1975600),U=new f(5004144);function lt(){const i=typeof document>"u"?null:document.querySelector("[data-volter-palette]");if(!i)return{bottom:N.clone(),top:U.clone()};const t=getComputedStyle(i),o=document.createElement("canvas");o.width=o.height=1;const e=o.getContext("2d"),r=(s,u)=>{const p=t.getPropertyValue(s).trim();if(!e||!p||!CSS.supports("color",p))return u.clone();e.fillStyle=u.getStyle(),e.fillRect(0,0,1,1),e.fillStyle=t.getPropertyValue("--volter-surface-shell").trim(),e.fillRect(0,0,1,1),e.fillStyle=p,e.fillRect(0,0,1,1);const[y,l,M]=e.getImageData(0,0,1,1).data;return new f().setRGB(y/255,l/255,M/255,st)},n=r("--volter-surface-panel",N),a=r("--volter-surface-raised",U),h=n.lerp(N,.25).lerp(new f(16777215),.03),c=a.lerp(U,.25).lerp(new f(16777215),.04);return{bottom:h,top:c}}function Nt(i){if(typeof document>"u"||typeof MutationObserver>"u")return()=>{};const t=document.querySelector("[data-volter-palette]");if(!t)return()=>{};const o=new MutationObserver(()=>{i(),zt()});return o.observe(t,{attributes:!0,attributeFilter:["data-volter-palette","data-volter-material"]}),()=>o.disconnect()}function ct(i=lt()){const o=new Uint8Array(512),e=new f;for(let n=0;n<128;n++)e.copy(i.bottom).lerp(i.top,n/127).convertLinearToSRGB(),o[n*4]=Math.round(e.r*255),o[n*4+1]=Math.round(e.g*255),o[n*4+2]=Math.round(e.b*255),o[n*4+3]=255;const r=new it(o,1,128,rt);return r.colorSpace=st,r.magFilter=z,r.minFilter=z,r.needsUpdate=!0,r}function Ut(i){const t=nt(i);if(t.isEmpty())return{size:50,centre:[0,0]};const o=Math.max(t.max.x-t.min.x,t.max.z-t.min.z);return{size:Math.min(Math.max(Math.ceil(o/10)*10+20,50),1e3),centre:[(t.min.x+t.max.x)/2,(t.min.z+t.max.z)/2]}}function Wt(i){for(const t of[1,2,5,10])if(i/t<=60)return Math.round(i/t);return Math.round(i/10)}function ut(i,t){const o=t/2,e=o*.55,r=o;i.onBeforeCompile=n=>{n.uniforms.uGridFadeStart={value:e},n.uniforms.uGridFadeEnd={value:r},n.vertexShader=n.vertexShader.replace("#include <common>",`#include <common>
1
+ import{a as nt}from"./content-bounds-UvcUv1DD.js";import{EDITOR_LAYER as bt}from"./editor-layers-BVicagU1.js";import{loadEnvironmentImage as St}from"./environment-Dg-YaLsA.js";import{s as Y}from"./user-data-DHB4MWum.js";import{P as Z,S as J}from"./three.module-BLhyNg0e.js";import{fp as xt,fq as kt,Z as It}from"./index-D9shXtZ9.js";import{aE as q,bh as tt,j as Ft,I as Pt,co as Ct,db as Gt,fo as et,ap as Tt,e as Et,A as Rt,cP as _t,cj as d,_ as f,au as it,dw as rt,bi as Dt,aT as $t,c7 as Ot,c1 as z,ej as st,bg as At,aw as Bt,cx as Lt}from"./three.core-3arARmh6.js";let at=0;function zt(){at++}function se(){return at}const Ht=[.8,.5,-1],N=new f(1975600),U=new f(5004144);function lt(){const i=typeof document>"u"?null:document.querySelector("[data-volter-palette]");if(!i)return{bottom:N.clone(),top:U.clone()};const t=getComputedStyle(i),o=document.createElement("canvas");o.width=o.height=1;const e=o.getContext("2d"),r=(s,u)=>{const p=t.getPropertyValue(s).trim();if(!e||!p||!CSS.supports("color",p))return u.clone();e.fillStyle=u.getStyle(),e.fillRect(0,0,1,1),e.fillStyle=t.getPropertyValue("--volter-surface-shell").trim(),e.fillRect(0,0,1,1),e.fillStyle=p,e.fillRect(0,0,1,1);const[y,l,M]=e.getImageData(0,0,1,1).data;return new f().setRGB(y/255,l/255,M/255,st)},n=r("--volter-surface-panel",N),a=r("--volter-surface-raised",U),h=n.lerp(N,.25).lerp(new f(16777215),.03),c=a.lerp(U,.25).lerp(new f(16777215),.04);return{bottom:h,top:c}}function Nt(i){if(typeof document>"u"||typeof MutationObserver>"u")return()=>{};const t=document.querySelector("[data-volter-palette]");if(!t)return()=>{};const o=new MutationObserver(()=>{i(),zt()});return o.observe(t,{attributes:!0,attributeFilter:["data-volter-palette","data-volter-material"]}),()=>o.disconnect()}function ct(i=lt()){const o=new Uint8Array(512),e=new f;for(let n=0;n<128;n++)e.copy(i.bottom).lerp(i.top,n/127).convertLinearToSRGB(),o[n*4]=Math.round(e.r*255),o[n*4+1]=Math.round(e.g*255),o[n*4+2]=Math.round(e.b*255),o[n*4+3]=255;const r=new it(o,1,128,rt);return r.colorSpace=st,r.magFilter=z,r.minFilter=z,r.needsUpdate=!0,r}function Ut(i){const t=nt(i);if(t.isEmpty())return{size:50,centre:[0,0]};const o=Math.max(t.max.x-t.min.x,t.max.z-t.min.z);return{size:Math.min(Math.max(Math.ceil(o/10)*10+20,50),1e3),centre:[(t.min.x+t.max.x)/2,(t.min.z+t.max.z)/2]}}function Wt(i){for(const t of[1,2,5,10])if(i/t<=60)return Math.round(i/t);return Math.round(i/10)}function ut(i,t){const o=t/2,e=o*.55,r=o;i.onBeforeCompile=n=>{n.uniforms.uGridFadeStart={value:e},n.uniforms.uGridFadeEnd={value:r},n.vertexShader=n.vertexShader.replace("#include <common>",`#include <common>
2
2
  varying vec2 vGridPlanePosition;`).replace("#include <begin_vertex>",`#include <begin_vertex>
3
3
  vGridPlanePosition = position.xz;`),n.fragmentShader=n.fragmentShader.replace("#include <common>",`#include <common>
4
4
  varying vec2 vGridPlanePosition;
@@ -1 +1 @@
1
- import{r as t}from"./index-ClgrFOcX.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";const n="workspace.action",l=[{id:"state-watch",label:"Open State Watch",execute:()=>t().workspace.showUtility("tool:state-watch.utility")}];export{l as actions,n as point};
1
+ import{r as t}from"./index-D9shXtZ9.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";const n="workspace.action",l=[{id:"state-watch",label:"Open State Watch",execute:()=>t().workspace.showUtility("tool:state-watch.utility")}];export{l as actions,n as point};
@@ -1 +1 @@
1
- import{r as t,am as e}from"./index-ClgrFOcX.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";const l="workspace.menu",n={menu:"debug",items:[{id:"state-watch",label:"State Watch",testId:"menu-state-watch",disabled:()=>e()==null,execute:()=>t().workspace.showUtility("tool:state-watch.utility")}]};export{n as menu,l as point};
1
+ import{r as t,am as e}from"./index-D9shXtZ9.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";const l="workspace.menu",n={menu:"debug",items:[{id:"state-watch",label:"State Watch",testId:"menu-state-watch",disabled:()=>e()==null,execute:()=>t().workspace.showUtility("tool:state-watch.utility")}]};export{n as menu,l as point};
@@ -1 +1 @@
1
- import{a as n}from"./jsx-runtime-DPjLkJKQ.js";import{am as S,al as o,aN as B,a6 as L,r as A,eJ as H}from"./index-ClgrFOcX.js";import{r as d}from"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./index-D_NuPfjr.js";import"./index-CinJrH5C.js";const F=250,M=200,P=500,z="stateWatchPins";function x(e){return JSON.stringify([e.provider,...e.path])}function y(e){return[e.provider,...e.path].join(".")}function N(){return A().projectLocalState.projectRootPath()??"__unscoped__"}function k(e){const t=A().projectLocalState.read(z);return Array.isArray(t)?t.filter(r=>typeof r?.provider=="string"&&Array.isArray(r.path)&&r.path.every(s=>typeof s=="string")):[]}function D(e,t){A().projectLocalState.write(z,t.map(r=>({provider:r.provider,path:[...r.path]})))}function j(e){return e!==null&&typeof e=="object"}function O(e){if(typeof e=="string")return`“${e}”`;if(typeof e=="number")return Number.isInteger(e)?String(e):e.toFixed(3);if(e===void 0)return"undefined";if(e===null)return"null";if(typeof e=="bigint")return`${e}n`;if(typeof e=="function")return"[Function]";if(j(e))try{return Array.isArray(e)?`Array(${e.length})`:`Object(${Object.keys(e).length})`}catch{return"[Unreadable object]"}return String(e)}function _(e){try{return Object.entries(e)}catch{return[]}}function V(e,t){try{if(!Object.hasOwn(e,t.provider))return{available:!1,value:void 0};let r=e[t.provider];for(const s of t.path){if(!j(r)||!Object.hasOwn(r,s))return{available:!1,value:void 0};r=r[s]}return{available:!0,value:r}}catch{return{available:!1,value:void 0}}}function R(e,t,r,s,l,c){if(l.length>=P)return;const g=j(t)&&c.includes(t);if(!j(t)||g){const a={provider:e,path:r,value:g?"[Circular]":t};(y(a).toLowerCase().includes(s)||O(a.value).toLowerCase().includes(s))&&l.push(a);return}const p=[...c,t],m=_(t);if(m.length===0){const a={provider:e,path:r,value:t};y(a).toLowerCase().includes(s)&&l.push(a);return}for(const[a,v]of m)if(R(e,v,[...r,a],s,l,p),l.length>=P)return}const C={fontFamily:o.typography.mono,fontSize:11};function T({leaf:e,pinned:t,onTogglePin:r,depth:s=0}){const l=e.path.at(-1)??e.provider;return n.jsxs("div",{style:{...C,minHeight:22,display:"grid",gridTemplateColumns:"minmax(100px, 0.65fr) minmax(120px, 1fr) auto",alignItems:"center",gap:8,paddingLeft:8+s*14,paddingRight:8,borderBottom:`1px solid ${o.boundary.default}`},title:y(e),children:[n.jsx("span",{style:{color:o.content.primary,overflow:"hidden",textOverflow:"ellipsis"},children:l}),n.jsx("span",{style:{color:o.content.muted,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:O(e.value)}),n.jsx(L,{type:"button",size:"compact",variant:t?"primary":"secondary","aria-pressed":t,title:t?`Remove ${y(e)} from watches`:`Watch ${y(e)}`,onClick:()=>r(e),children:t?"Pinned":"Pin"})]})}function W({provider:e,name:t,value:r,path:s,depth:l,ancestors:c,pinnedKeys:g,onTogglePin:p}){const m=j(r)&&c.includes(r),[a,v]=d.useState(l===0);if(!j(r)||m){const f={provider:e,path:s,value:m?"[Circular]":r};return n.jsx(T,{leaf:f,depth:l,pinned:g.has(x(f)),onTogglePin:p})}const h=_(r),b=h.slice(0,M);return n.jsxs("div",{children:[n.jsxs("button",{type:"button",onClick:()=>v(f=>!f),style:{...C,width:"100%",minHeight:22,display:"flex",alignItems:"center",gap:4,padding:`0 8px 0 ${8+l*14}px`,color:o.content.primary,background:"transparent",border:0,borderBottom:`1px solid ${o.boundary.default}`,textAlign:"left",cursor:"pointer"},children:[n.jsx("span",{style:{width:12,color:o.content.muted},children:n.jsx(H,{direction:a?"down":"right"})}),n.jsx("span",{children:t}),n.jsx("span",{style:{color:o.content.dim},children:Array.isArray(r)?`[${h.length}]`:`{${h.length}}`})]}),a&&b.map(([f,i])=>n.jsx(W,{provider:e,name:f,value:i,path:[...s,f],depth:l+1,ancestors:[...c,r],pinnedKeys:g,onTogglePin:p},f)),a&&h.length>b.length&&n.jsxs("div",{style:{...C,padding:`3px 8px 3px ${8+(l+1)*14}px`,color:o.content.dim},children:[h.length-b.length," more values — narrow with search"]})]})}function E(e){if(!e)return{providers:[],state:{},error:null};let t;try{t=e.providers()}catch(r){return{providers:[],state:{},error:r instanceof Error?r.message:String(r)}}try{return{providers:t,state:e.stateAll(),error:null}}catch(r){return{providers:t,state:{},error:r instanceof Error?r.message:String(r)}}}function J(){const e=N(),[t,r]=d.useState(()=>E(S())),[s,l]=d.useState(!1),[c,g]=d.useState(""),[p,m]=d.useState(()=>k());d.useEffect(()=>m(k()),[e]);const a=d.useCallback(()=>r(E(S())),[]);d.useEffect(()=>{if(a(),s)return;const i=window.setInterval(a,F);return()=>window.clearInterval(i)},[s,a]);const v=d.useMemo(()=>new Set(p.map(x)),[p]),h=d.useCallback(i=>{m(u=>{const w=x(i),I=u.some($=>x($)===w)?u.filter($=>x($)!==w):[...u,{provider:i.provider,path:[...i.path]}];return D(e,I),I})},[e]),b=d.useMemo(()=>{const i=c.trim().toLowerCase();if(!i)return[];const u=[];for(const w of t.providers)R(w.name,t.state[w.name],[],i,u,[]);return u},[c,t]);return S()?n.jsxs("div",{style:{height:"100%",minHeight:0,display:"flex",flexDirection:"column"},children:[n.jsxs("div",{style:{minHeight:34,display:"flex",alignItems:"center",gap:8,padding:"4px 8px",borderBottom:`1px solid ${o.boundary.default}`},children:[n.jsx(B,{value:c,onChange:i=>g(i.target.value),placeholder:"Filter state paths or values…","aria-label":"Filter state watches",style:{width:240}}),n.jsx(L,{type:"button",size:"compact",onClick:()=>l(i=>!i),children:s?"Resume":"Pause"}),n.jsx(L,{type:"button",size:"compact",disabled:!s,onClick:a,children:"Refresh"}),n.jsxs("span",{style:{color:o.content.dim,fontSize:10},children:[t.providers.length," provider",t.providers.length===1?"":"s"," ·"," ",p.length," pinned",s?" · paused":""]}),t.error&&n.jsx("span",{style:{color:o.semantic.danger,fontSize:10},children:t.error})]}),n.jsxs("div",{style:{flex:1,minHeight:0,display:"grid",gridTemplateColumns:"minmax(280px, 1fr) minmax(240px, 0.65fr)"},children:[n.jsxs("section",{"aria-label":"Live state",style:{minWidth:0,overflow:"auto"},children:[c.trim()?b.length>0?b.map(i=>n.jsx(T,{leaf:i,pinned:v.has(x(i)),onTogglePin:h},x(i))):n.jsxs("div",{style:{padding:10,color:o.content.dim,fontSize:11},children:["No state values match “",c.trim(),"”."]}):t.providers.map(i=>n.jsx(W,{provider:i.name,name:`${i.name} · ${i.tier}`,value:t.state[i.name],path:[],depth:0,ancestors:[],pinnedKeys:v,onTogglePin:h},i.name)),t.providers.length===0&&n.jsx("div",{style:{padding:10,color:o.content.dim,fontSize:11},children:"The running game has not registered any state providers."})]}),n.jsxs("aside",{"aria-label":"Pinned watches",style:{minWidth:0,overflow:"auto",borderLeft:`1px solid ${o.boundary.default}`},children:[n.jsx("div",{style:{position:"sticky",top:0,zIndex:1,padding:"6px 8px",color:o.content.muted,background:o.surface.panel,borderBottom:`1px solid ${o.boundary.default}`,fontSize:10,fontWeight:600,textTransform:"uppercase",letterSpacing:"0.04em"},children:"Watches"}),p.map(i=>{const u=V(t.state,i);return n.jsxs("div",{style:{...C,display:"grid",gridTemplateColumns:"minmax(130px, 1fr) minmax(100px, 0.7fr) auto",alignItems:"center",gap:8,minHeight:24,padding:"2px 8px",borderBottom:`1px solid ${o.boundary.default}`},children:[n.jsx("span",{title:y(i),style:{color:o.content.primary,overflow:"hidden",textOverflow:"ellipsis"},children:y(i)}),n.jsx("span",{style:{color:u.available?o.content.muted:o.content.dim,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:u.available?O(u.value):"unavailable"}),n.jsx(L,{type:"button",size:"compact",onClick:()=>h(i),children:"Remove"})]},x(i))}),p.length===0&&n.jsx("div",{style:{padding:10,color:o.content.dim,fontSize:11},children:"Pin values from the live tree to keep them visible while you inspect the game."})]})]})]}):n.jsx("div",{style:{padding:12,color:o.content.muted,fontSize:11},children:"State Watch is available while a game with debug providers is running."})}const te="workspace.utility",re="State Watch",ne=19,ie=()=>S()!=null;function oe(){return n.jsx(J,{})}export{ie as available,oe as default,ne as order,te as point,re as title};
1
+ import{a as n}from"./jsx-runtime-DPjLkJKQ.js";import{am as S,al as o,aN as B,a6 as L,r as A,eJ as H}from"./index-D9shXtZ9.js";import{r as d}from"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./index-D_NuPfjr.js";import"./index-CinJrH5C.js";const F=250,M=200,P=500,z="stateWatchPins";function x(e){return JSON.stringify([e.provider,...e.path])}function y(e){return[e.provider,...e.path].join(".")}function N(){return A().projectLocalState.projectRootPath()??"__unscoped__"}function k(e){const t=A().projectLocalState.read(z);return Array.isArray(t)?t.filter(r=>typeof r?.provider=="string"&&Array.isArray(r.path)&&r.path.every(s=>typeof s=="string")):[]}function D(e,t){A().projectLocalState.write(z,t.map(r=>({provider:r.provider,path:[...r.path]})))}function j(e){return e!==null&&typeof e=="object"}function O(e){if(typeof e=="string")return`“${e}”`;if(typeof e=="number")return Number.isInteger(e)?String(e):e.toFixed(3);if(e===void 0)return"undefined";if(e===null)return"null";if(typeof e=="bigint")return`${e}n`;if(typeof e=="function")return"[Function]";if(j(e))try{return Array.isArray(e)?`Array(${e.length})`:`Object(${Object.keys(e).length})`}catch{return"[Unreadable object]"}return String(e)}function _(e){try{return Object.entries(e)}catch{return[]}}function V(e,t){try{if(!Object.hasOwn(e,t.provider))return{available:!1,value:void 0};let r=e[t.provider];for(const s of t.path){if(!j(r)||!Object.hasOwn(r,s))return{available:!1,value:void 0};r=r[s]}return{available:!0,value:r}}catch{return{available:!1,value:void 0}}}function R(e,t,r,s,l,c){if(l.length>=P)return;const g=j(t)&&c.includes(t);if(!j(t)||g){const a={provider:e,path:r,value:g?"[Circular]":t};(y(a).toLowerCase().includes(s)||O(a.value).toLowerCase().includes(s))&&l.push(a);return}const p=[...c,t],m=_(t);if(m.length===0){const a={provider:e,path:r,value:t};y(a).toLowerCase().includes(s)&&l.push(a);return}for(const[a,v]of m)if(R(e,v,[...r,a],s,l,p),l.length>=P)return}const C={fontFamily:o.typography.mono,fontSize:11};function T({leaf:e,pinned:t,onTogglePin:r,depth:s=0}){const l=e.path.at(-1)??e.provider;return n.jsxs("div",{style:{...C,minHeight:22,display:"grid",gridTemplateColumns:"minmax(100px, 0.65fr) minmax(120px, 1fr) auto",alignItems:"center",gap:8,paddingLeft:8+s*14,paddingRight:8,borderBottom:`1px solid ${o.boundary.default}`},title:y(e),children:[n.jsx("span",{style:{color:o.content.primary,overflow:"hidden",textOverflow:"ellipsis"},children:l}),n.jsx("span",{style:{color:o.content.muted,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:O(e.value)}),n.jsx(L,{type:"button",size:"compact",variant:t?"primary":"secondary","aria-pressed":t,title:t?`Remove ${y(e)} from watches`:`Watch ${y(e)}`,onClick:()=>r(e),children:t?"Pinned":"Pin"})]})}function W({provider:e,name:t,value:r,path:s,depth:l,ancestors:c,pinnedKeys:g,onTogglePin:p}){const m=j(r)&&c.includes(r),[a,v]=d.useState(l===0);if(!j(r)||m){const f={provider:e,path:s,value:m?"[Circular]":r};return n.jsx(T,{leaf:f,depth:l,pinned:g.has(x(f)),onTogglePin:p})}const h=_(r),b=h.slice(0,M);return n.jsxs("div",{children:[n.jsxs("button",{type:"button",onClick:()=>v(f=>!f),style:{...C,width:"100%",minHeight:22,display:"flex",alignItems:"center",gap:4,padding:`0 8px 0 ${8+l*14}px`,color:o.content.primary,background:"transparent",border:0,borderBottom:`1px solid ${o.boundary.default}`,textAlign:"left",cursor:"pointer"},children:[n.jsx("span",{style:{width:12,color:o.content.muted},children:n.jsx(H,{direction:a?"down":"right"})}),n.jsx("span",{children:t}),n.jsx("span",{style:{color:o.content.dim},children:Array.isArray(r)?`[${h.length}]`:`{${h.length}}`})]}),a&&b.map(([f,i])=>n.jsx(W,{provider:e,name:f,value:i,path:[...s,f],depth:l+1,ancestors:[...c,r],pinnedKeys:g,onTogglePin:p},f)),a&&h.length>b.length&&n.jsxs("div",{style:{...C,padding:`3px 8px 3px ${8+(l+1)*14}px`,color:o.content.dim},children:[h.length-b.length," more values — narrow with search"]})]})}function E(e){if(!e)return{providers:[],state:{},error:null};let t;try{t=e.providers()}catch(r){return{providers:[],state:{},error:r instanceof Error?r.message:String(r)}}try{return{providers:t,state:e.stateAll(),error:null}}catch(r){return{providers:t,state:{},error:r instanceof Error?r.message:String(r)}}}function J(){const e=N(),[t,r]=d.useState(()=>E(S())),[s,l]=d.useState(!1),[c,g]=d.useState(""),[p,m]=d.useState(()=>k());d.useEffect(()=>m(k()),[e]);const a=d.useCallback(()=>r(E(S())),[]);d.useEffect(()=>{if(a(),s)return;const i=window.setInterval(a,F);return()=>window.clearInterval(i)},[s,a]);const v=d.useMemo(()=>new Set(p.map(x)),[p]),h=d.useCallback(i=>{m(u=>{const w=x(i),I=u.some($=>x($)===w)?u.filter($=>x($)!==w):[...u,{provider:i.provider,path:[...i.path]}];return D(e,I),I})},[e]),b=d.useMemo(()=>{const i=c.trim().toLowerCase();if(!i)return[];const u=[];for(const w of t.providers)R(w.name,t.state[w.name],[],i,u,[]);return u},[c,t]);return S()?n.jsxs("div",{style:{height:"100%",minHeight:0,display:"flex",flexDirection:"column"},children:[n.jsxs("div",{style:{minHeight:34,display:"flex",alignItems:"center",gap:8,padding:"4px 8px",borderBottom:`1px solid ${o.boundary.default}`},children:[n.jsx(B,{value:c,onChange:i=>g(i.target.value),placeholder:"Filter state paths or values…","aria-label":"Filter state watches",style:{width:240}}),n.jsx(L,{type:"button",size:"compact",onClick:()=>l(i=>!i),children:s?"Resume":"Pause"}),n.jsx(L,{type:"button",size:"compact",disabled:!s,onClick:a,children:"Refresh"}),n.jsxs("span",{style:{color:o.content.dim,fontSize:10},children:[t.providers.length," provider",t.providers.length===1?"":"s"," ·"," ",p.length," pinned",s?" · paused":""]}),t.error&&n.jsx("span",{style:{color:o.semantic.danger,fontSize:10},children:t.error})]}),n.jsxs("div",{style:{flex:1,minHeight:0,display:"grid",gridTemplateColumns:"minmax(280px, 1fr) minmax(240px, 0.65fr)"},children:[n.jsxs("section",{"aria-label":"Live state",style:{minWidth:0,overflow:"auto"},children:[c.trim()?b.length>0?b.map(i=>n.jsx(T,{leaf:i,pinned:v.has(x(i)),onTogglePin:h},x(i))):n.jsxs("div",{style:{padding:10,color:o.content.dim,fontSize:11},children:["No state values match “",c.trim(),"”."]}):t.providers.map(i=>n.jsx(W,{provider:i.name,name:`${i.name} · ${i.tier}`,value:t.state[i.name],path:[],depth:0,ancestors:[],pinnedKeys:v,onTogglePin:h},i.name)),t.providers.length===0&&n.jsx("div",{style:{padding:10,color:o.content.dim,fontSize:11},children:"The running game has not registered any state providers."})]}),n.jsxs("aside",{"aria-label":"Pinned watches",style:{minWidth:0,overflow:"auto",borderLeft:`1px solid ${o.boundary.default}`},children:[n.jsx("div",{style:{position:"sticky",top:0,zIndex:1,padding:"6px 8px",color:o.content.muted,background:o.surface.panel,borderBottom:`1px solid ${o.boundary.default}`,fontSize:10,fontWeight:600,textTransform:"uppercase",letterSpacing:"0.04em"},children:"Watches"}),p.map(i=>{const u=V(t.state,i);return n.jsxs("div",{style:{...C,display:"grid",gridTemplateColumns:"minmax(130px, 1fr) minmax(100px, 0.7fr) auto",alignItems:"center",gap:8,minHeight:24,padding:"2px 8px",borderBottom:`1px solid ${o.boundary.default}`},children:[n.jsx("span",{title:y(i),style:{color:o.content.primary,overflow:"hidden",textOverflow:"ellipsis"},children:y(i)}),n.jsx("span",{style:{color:u.available?o.content.muted:o.content.dim,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:u.available?O(u.value):"unavailable"}),n.jsx(L,{type:"button",size:"compact",onClick:()=>h(i),children:"Remove"})]},x(i))}),p.length===0&&n.jsx("div",{style:{padding:10,color:o.content.dim,fontSize:11},children:"Pin values from the live tree to keep them visible while you inspect the game."})]})]})]}):n.jsx("div",{style:{padding:12,color:o.content.muted,fontSize:11},children:"State Watch is available while a game with debug providers is running."})}const te="workspace.utility",re="State Watch",ne=19,ie=()=>S()!=null;function oe(){return n.jsx(J,{})}export{ie as available,oe as default,ne as order,te as point,re as title};
@@ -1 +1 @@
1
- import{r as T}from"./react-story-board-CMvkLAkF.js";import{d as P}from"./bitmap-label-Ct4k6ehY.js";import{b9 as S,ba as M,au as C,bb as $,bc as E,bd as j,be as I,a0 as v,bf as D,bg as R,bh as O,aC as L,av as U}from"./index-ClgrFOcX.js";import{m as k}from"./StoryPreviewMount-CyF7FwI7.js";import{s as B}from"./story-presentation-Dw4Vw65P.js";import"./jsx-runtime-DPjLkJKQ.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-nmcBqr7Y.js";import"./index-D_NuPfjr.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";async function ae(s,o){await S();const r=U(),c=M().filter(e=>C({modulePath:e.modulePath,regions:r}).medium==="dom"),t=document.createElement("canvas");t.width=s,t.height=o;const l=t.getContext("2d");if(!l)throw new Error("UI Canvas preview could not create a 2D output context.");if(c.length===0)return t.toDataURL("image/png");const m=B(c),d=L()?.config.resolution,u={width:d?.width??640,height:d?.height??400},h=new Map,f=new Map;for(const e of c){const n=m.resolve(e,u),[y]=await x(e.modulePath,[e],{width:n.width,height:n.height,capture:v,cropToContent:n.layout!=="fullscreen",layout:n.layout,transparent:!0});if(!y)throw new Error(`No preview rendered for ${e.id}.`);const g=new Image;g.src=`data:${y.mimeType};base64,${y.base64}`,await g.decode(),h.set(e.id,g),f.set(e.id,{width:g.naturalWidth,height:g.naturalHeight})}const i=T(c,m.index,e=>f.get(e.id)),a=Math.min(s/i.width,o/i.height),p=(s-i.width*a)/2,w=(o-i.height*a)/2;for(const[e,n]of i.layouts)l.drawImage(h.get(e),p+n.x*a,w+n.y*a,n.width*a,n.height*a);return t.toDataURL("image/png")}const A="#ffffff",H="#14171c";async function oe(s,o){const{modulePath:r,width:c,height:t}=o;if(!s)throw new Error(`No project is open, so '${r}' cannot be loaded. Open the project first.`);const l=await $(s),m=l.find(e=>e.modulePath===r);if(!m)throw new Error(`'${r}' is not a story file of this project. `+(l.length===0?"This project has no *.stories.tsx / *.stories.ts under src/.":`This project's story files are: ${l.map(e=>e.modulePath).join(", ")}.`));await E(await j(s));let d;try{d=await m.load()}catch(e){throw new Error(`'${r}' failed to import — ${e instanceof Error?e.message:String(e)}`)}const u=await I(r,d);if(!u.ok)throw new Error(u.error);const h=N(r,u.stories,o.story),f=o.capture??v,i=D("three"),a=o.captureThree??(i?(e,n)=>i(e,{...n,...o.camera===void 0?{}:{camera:o.camera},...o.pose===void 0?{}:{pose:o.pose}}):void 0);if((o.camera||o.pose)&&!a)throw new Error(`'${r}': camera/clip parameters need the three capture leg, which this environment cannot provide (no WebGL).`);const p=await x(r,h,{width:c,height:t,capture:f,...a?{captureThree:a}:{},requireThree:!!(o.camera||o.pose)}),w=await _(p,c,t);return{modulePath:r,width:c,height:t,variants:p,contactSheet:w}}function N(s,o,r){if(r===void 0)return o;const c=o.find(t=>t.name===r);if(!c)throw new Error(`'${s}' exports no story named '${r}'. It exports: ${o.map(t=>t.name).join(", ")}.`);return[c]}async function x(s,o,r){const{width:c,height:t,capture:l,captureThree:m,requireThree:d,cropToContent:u=!0}=r,h=document.createElement("div");h.setAttribute("style",`position:fixed;left:-20000px;top:0;width:${c}px;height:${t}px;overflow:hidden;contain:strict;pointer-events:none;background:${r.transparent?"transparent":A};`),document.body.appendChild(h);const f=[];try{for(const i of o){if(m){const e=await m(i.Component,{width:c,height:t}).catch(n=>(R(n)||console.warn(`[story-capture] three mount for '${i.name}' failed — falling back to the DOM leg:`,n instanceof Error?n.stack??n.message:String(n)),null));if(e===null&&d)throw new Error(`story '${i.name}' did not render on the three leg — --azimuth/--elevation/--distance/--clip/--time apply to three (R3F) stories only, and falling back to the DOM leg would silently ignore them. Narrow to a three story with --story <export>, or drop the camera/clip flags.`);if(e!==null){const n=e.indexOf(",");f.push({name:i.name,label:i.label,base64:n>=0?e.slice(n+1):e,mimeType:"image/png"});continue}}const a=document.createElement("div");a.setAttribute("style",`position:relative;width:${c}px;height:${t}px;overflow:hidden;`),r.layout==="padded"&&(a.style.padding="16px"),r.layout==="centered"&&(a.style.display="flex",a.style.alignItems="center",a.style.justifyContent="center"),a.style.boxSizing="border-box",h.replaceChildren(a);const p=await O(async()=>{const e=await k(a,s,i.name,i.Component);return await W(a),e});await p.settled();const w=p.result;try{const e=await l(h,{canvasFrame:p.frame,cropToContent:u,...r.transparent?{allowTransparent:!0}:{}});f.push({name:i.name,label:i.label,base64:e.base64,mimeType:"image/png"})}finally{w?.unmount(),await new Promise(e=>setTimeout(e,0)),a.remove()}}}finally{h.remove()}return f}async function W(s,o=10){for(let t=0;t<o&&!(s.childNodes.length>0);t++)await new Promise(l=>setTimeout(l,0));if(s.childNodes.length===0)return;const r=200,c=5e3;await new Promise(t=>{let l=null,m=!1;const d=new MutationObserver(()=>{l!==null&&clearTimeout(l),l=setTimeout(h,r)}),u=setTimeout(h,c);function h(){m||(m=!0,d.disconnect(),l!==null&&clearTimeout(l),clearTimeout(u),t())}d.observe(s,{subtree:!0,childList:!0,attributes:!0,characterData:!0}),l=setTimeout(h,r)})}async function _(s,o,r,c={}){const t=Math.min(Math.max(1,s.length),Math.max(1,Math.floor(c.columns??2))),l=Math.max(1,Math.ceil(s.length/t)),m=[];for(const e of s){const n=new Image;n.src=`data:${e.mimeType};base64,${e.base64}`,await n.decode(),m.push(n)}const d=Math.max(1,...m.map(e=>e.naturalWidth),m.length?0:o),u=Math.max(1,...m.map(e=>e.naturalHeight),m.length?0:r),h=d*t,f=u*l,i=document.createElement("canvas");i.width=h,i.height=f;const a=i.getContext("2d");if(!a)throw new Error("Unable to create the story variant sheet.");a.fillStyle=H,a.fillRect(0,0,h,f);for(const[e,n]of s.entries()){const y=e%t*d,g=Math.floor(e/t)*u,b=m[e];a.drawImage(b,y+Math.floor((d-b.naturalWidth)/2),g+Math.floor((u-b.naturalHeight)/2)),c.labels!==!1&&P(a,n.name.toUpperCase(),y,g,d,u)}const p=i.toDataURL("image/png"),w=p.indexOf(",");return{width:h,height:f,base64:w>=0?p.slice(w+1):p,mimeType:"image/png"}}export{ae as captureDomStoryBoardPreview,oe as captureProjectStoryVariants,_ as composeVariantSheet,x as renderStoryVariants};
1
+ import{r as T}from"./react-story-board-DAQaZNga.js";import{d as P}from"./bitmap-label-Ct4k6ehY.js";import{b9 as S,ba as M,au as C,bb as $,bc as E,bd as j,be as I,a0 as v,bf as D,bg as R,bh as O,aC as L,av as U}from"./index-D9shXtZ9.js";import{m as k}from"./StoryPreviewMount-BONsNxze.js";import{s as B}from"./story-presentation-BBS9x4BP.js";import"./jsx-runtime-DPjLkJKQ.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-nmcBqr7Y.js";import"./index-D_NuPfjr.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";async function ae(s,o){await S();const r=U(),c=M().filter(e=>C({modulePath:e.modulePath,regions:r}).medium==="dom"),t=document.createElement("canvas");t.width=s,t.height=o;const l=t.getContext("2d");if(!l)throw new Error("UI Canvas preview could not create a 2D output context.");if(c.length===0)return t.toDataURL("image/png");const m=B(c),d=L()?.config.resolution,u={width:d?.width??640,height:d?.height??400},h=new Map,f=new Map;for(const e of c){const n=m.resolve(e,u),[y]=await x(e.modulePath,[e],{width:n.width,height:n.height,capture:v,cropToContent:n.layout!=="fullscreen",layout:n.layout,transparent:!0});if(!y)throw new Error(`No preview rendered for ${e.id}.`);const g=new Image;g.src=`data:${y.mimeType};base64,${y.base64}`,await g.decode(),h.set(e.id,g),f.set(e.id,{width:g.naturalWidth,height:g.naturalHeight})}const i=T(c,m.index,e=>f.get(e.id)),a=Math.min(s/i.width,o/i.height),p=(s-i.width*a)/2,w=(o-i.height*a)/2;for(const[e,n]of i.layouts)l.drawImage(h.get(e),p+n.x*a,w+n.y*a,n.width*a,n.height*a);return t.toDataURL("image/png")}const A="#ffffff",H="#14171c";async function oe(s,o){const{modulePath:r,width:c,height:t}=o;if(!s)throw new Error(`No project is open, so '${r}' cannot be loaded. Open the project first.`);const l=await $(s),m=l.find(e=>e.modulePath===r);if(!m)throw new Error(`'${r}' is not a story file of this project. `+(l.length===0?"This project has no *.stories.tsx / *.stories.ts under src/.":`This project's story files are: ${l.map(e=>e.modulePath).join(", ")}.`));await E(await j(s));let d;try{d=await m.load()}catch(e){throw new Error(`'${r}' failed to import — ${e instanceof Error?e.message:String(e)}`)}const u=await I(r,d);if(!u.ok)throw new Error(u.error);const h=N(r,u.stories,o.story),f=o.capture??v,i=D("three"),a=o.captureThree??(i?(e,n)=>i(e,{...n,...o.camera===void 0?{}:{camera:o.camera},...o.pose===void 0?{}:{pose:o.pose}}):void 0);if((o.camera||o.pose)&&!a)throw new Error(`'${r}': camera/clip parameters need the three capture leg, which this environment cannot provide (no WebGL).`);const p=await x(r,h,{width:c,height:t,capture:f,...a?{captureThree:a}:{},requireThree:!!(o.camera||o.pose)}),w=await _(p,c,t);return{modulePath:r,width:c,height:t,variants:p,contactSheet:w}}function N(s,o,r){if(r===void 0)return o;const c=o.find(t=>t.name===r);if(!c)throw new Error(`'${s}' exports no story named '${r}'. It exports: ${o.map(t=>t.name).join(", ")}.`);return[c]}async function x(s,o,r){const{width:c,height:t,capture:l,captureThree:m,requireThree:d,cropToContent:u=!0}=r,h=document.createElement("div");h.setAttribute("style",`position:fixed;left:-20000px;top:0;width:${c}px;height:${t}px;overflow:hidden;contain:strict;pointer-events:none;background:${r.transparent?"transparent":A};`),document.body.appendChild(h);const f=[];try{for(const i of o){if(m){const e=await m(i.Component,{width:c,height:t}).catch(n=>(R(n)||console.warn(`[story-capture] three mount for '${i.name}' failed — falling back to the DOM leg:`,n instanceof Error?n.stack??n.message:String(n)),null));if(e===null&&d)throw new Error(`story '${i.name}' did not render on the three leg — --azimuth/--elevation/--distance/--clip/--time apply to three (R3F) stories only, and falling back to the DOM leg would silently ignore them. Narrow to a three story with --story <export>, or drop the camera/clip flags.`);if(e!==null){const n=e.indexOf(",");f.push({name:i.name,label:i.label,base64:n>=0?e.slice(n+1):e,mimeType:"image/png"});continue}}const a=document.createElement("div");a.setAttribute("style",`position:relative;width:${c}px;height:${t}px;overflow:hidden;`),r.layout==="padded"&&(a.style.padding="16px"),r.layout==="centered"&&(a.style.display="flex",a.style.alignItems="center",a.style.justifyContent="center"),a.style.boxSizing="border-box",h.replaceChildren(a);const p=await O(async()=>{const e=await k(a,s,i.name,i.Component);return await W(a),e});await p.settled();const w=p.result;try{const e=await l(h,{canvasFrame:p.frame,cropToContent:u,...r.transparent?{allowTransparent:!0}:{}});f.push({name:i.name,label:i.label,base64:e.base64,mimeType:"image/png"})}finally{w?.unmount(),await new Promise(e=>setTimeout(e,0)),a.remove()}}}finally{h.remove()}return f}async function W(s,o=10){for(let t=0;t<o&&!(s.childNodes.length>0);t++)await new Promise(l=>setTimeout(l,0));if(s.childNodes.length===0)return;const r=200,c=5e3;await new Promise(t=>{let l=null,m=!1;const d=new MutationObserver(()=>{l!==null&&clearTimeout(l),l=setTimeout(h,r)}),u=setTimeout(h,c);function h(){m||(m=!0,d.disconnect(),l!==null&&clearTimeout(l),clearTimeout(u),t())}d.observe(s,{subtree:!0,childList:!0,attributes:!0,characterData:!0}),l=setTimeout(h,r)})}async function _(s,o,r,c={}){const t=Math.min(Math.max(1,s.length),Math.max(1,Math.floor(c.columns??2))),l=Math.max(1,Math.ceil(s.length/t)),m=[];for(const e of s){const n=new Image;n.src=`data:${e.mimeType};base64,${e.base64}`,await n.decode(),m.push(n)}const d=Math.max(1,...m.map(e=>e.naturalWidth),m.length?0:o),u=Math.max(1,...m.map(e=>e.naturalHeight),m.length?0:r),h=d*t,f=u*l,i=document.createElement("canvas");i.width=h,i.height=f;const a=i.getContext("2d");if(!a)throw new Error("Unable to create the story variant sheet.");a.fillStyle=H,a.fillRect(0,0,h,f);for(const[e,n]of s.entries()){const y=e%t*d,g=Math.floor(e/t)*u,b=m[e];a.drawImage(b,y+Math.floor((d-b.naturalWidth)/2),g+Math.floor((u-b.naturalHeight)/2)),c.labels!==!1&&P(a,n.name.toUpperCase(),y,g,d,u)}const p=i.toDataURL("image/png"),w=p.indexOf(",");return{width:h,height:f,base64:w>=0?p.slice(w+1):p,mimeType:"image/png"}}export{ae as captureDomStoryBoardPreview,oe as captureProjectStoryVariants,_ as composeVariantSheet,x as renderStoryVariants};
@@ -1,3 +1,3 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/axe-LkjAB6Lv.js","assets/_commonjsHelpers-D6-XlEtG.js"])))=>i.map(i=>d[i]);
2
- import{f2 as se,eM as ie,dT as ae,f3 as ce,f4 as le,f5 as K,f6 as H,ad as U,eO as de,as as L,at as D,al as s,er as u,et as d,a6 as A,ew as ue,aS as ye,aN as V,_ as pe,f7 as fe,au as me,av as he,f8 as Q,f9 as ve,fa as ge,fb as xe,b9 as J,fc as X,aC as Se}from"./index-ClgrFOcX.js";import{a as r}from"./jsx-runtime-DPjLkJKQ.js";import{r as l}from"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";import{R as we,f as be}from"./presentation-DPfnCjNA.js";import{e as Z,S as q}from"./surface-state-b_H4iOCJ.js";import{m as ee,r as je}from"./StoryPreviewMount-CyF7FwI7.js";import{d as te}from"./surface-content-Dg9Kkazf.js";const Re=se,y=new Map;let oe=0;const M=new Set;function m(){oe++;for(const t of M)t()}function E(t){return M.add(t),()=>{M.delete(t)}}function O(){return oe}function Ee(t,e){return`story:${t}#${e}`}function Oe(t,e){return`story-docs:${t}#${e}`}function $(){const t=K();if(!t||t.descriptor.kind!=="story")return null;const e=y.get(t.descriptor.id);return e?.mode==="preview"?{...e,id:t.descriptor.id}:null}function F(t,e,o){const n=y.get(t);if(n){if(o===void 0){const i={...n.argOverrides};delete i[e],n.argOverrides=i}else n.argOverrides={...n.argOverrides,[e]:o};m()}}function Ce(t,e,o){const n=y.get(t);n&&(n.actionLog=[...n.actionLog,{name:e,args:o,time:Date.now()}].slice(-200),m())}function Ne(t){const e=y.get(t);!e||e.actionLog.length===0||(e.actionLog=[],m())}function re(t,e,o,n={}){Ue();const i=Ee(e,o);y.has(i)||(y.set(i,{modulePath:e,storyName:o,mode:"preview",store:t,argOverrides:{},actionLog:[],playResult:null,accessibility:{status:"idle",violations:[]},container:null,previewReady:!1,previewRevision:0,resolution:{label:"Fill",width:null,height:null},scale:1}),m());const a=n.activate===void 0?{}:{activate:n.activate};return X({id:i,title:n.title??o,kind:"story",workspaceRole:"authored-subject",provenance:{sourcePath:e},Content:De,Toolbar:$e,closeable:!0,presentation:()=>({kind:"story",modulePath:e,storyName:o,mode:"preview"}),persist:()=>({modulePath:e,storyName:o}),onDispose:p=>{y.delete(p)&&m()}},a)}function Y(t,e,o){const n=Oe(e,o);return y.has(n)||(y.set(n,{modulePath:e,storyName:o,mode:"docs",store:t,argOverrides:{},actionLog:[],playResult:null,accessibility:{status:"idle",violations:[]},container:null,previewReady:!1,previewRevision:0,resolution:{label:"Fill",width:null,height:null},scale:1}),m()),X({id:n,title:`${o} — Docs`,kind:"story",workspaceRole:"workspace-reference",provenance:{sourcePath:e},Content:_e,closeable:!0,presentation:()=>({kind:"story",modulePath:e,storyName:o,mode:"docs"}),persist:()=>({modulePath:e,storyName:o,view:"docs"}),onDispose:i=>{y.delete(i)&&m()}})}function ke(){const t=Se();return t?xe(t).then(J,J):Promise.resolve()}fe({kind:"story",owner:"story-documents",prepare:ke,restore:({state:t,store:e})=>{const o=t,n=typeof o?.modulePath=="string"?o.modulePath:null,i=typeof o?.storyName=="string"?o.storyName:null;if(!n||!i)return!1;const a=D().find(c=>c.modulePath===n);if(!a?.ok||!a.stories.some(c=>c.name===i))return!1;if(o?.view==="docs")return Y(e,n,i),!0;const{medium:p}=me({modulePath:n,regions:he()});return p!=="dom"&&p!=="canvas"?!1:(re(e,n,i),!0)}});Q({id:ve,owner:"story-documents",open:(t,e)=>re(t,e.modulePath,e.storyName,{...e.title===void 0?{}:{title:e.title},...e.activate===void 0?{}:{activate:e.activate}})});Q({id:ge,owner:"story-documents",open:(t,e)=>Y(t,e.modulePath,e.storyName)});function W(t,e){const o=D().find(n=>n.modulePath===t);return o?o.ok?{story:o.stories.find(n=>n.name===e),moduleError:void 0}:{story:void 0,moduleError:o.error}:{story:void 0,moduleError:void 0}}function ne(t){const e=t.Component.args;return e&&typeof e=="object"?e:{}}function Te(t,e){const o=y.get(t),n={};for(const[i,a]of Object.entries(ne(e)))typeof a=="function"&&(n[i]=(...p)=>(Ce(t,i,p),a(...p)));return{...n,...o?.argOverrides??{}}}function De({documentId:t}){l.useSyncExternalStore(E,O),l.useSyncExternalStore(L,()=>D());const e=y.get(t),o=l.useRef(null),n=l.useRef(null),[i,a]=l.useState(!1),[p,c]=l.useState("unknown"),[g,w]=l.useState(null),[z,P]=l.useState({width:0,height:0}),{story:b,moduleError:x}=e?W(e.modulePath,e.storyName):{story:void 0,moduleError:void 0},h=e?JSON.stringify(e.argOverrides):"";l.useEffect(()=>{const f=o.current;if(!f)return;if(typeof ResizeObserver>"u"){P({width:f.clientWidth,height:f.clientHeight});return}const j=new ResizeObserver(([R])=>{if(!R)return;const{width:_,height:k}=R.contentRect;P(T=>T.width===_&&T.height===k?T:{width:_,height:k})});return j.observe(f),()=>j.disconnect()},[]),l.useEffect(()=>{const f=n.current;if(!f||!e)return;e.container!==f&&(e.container=f,m());const j=e.previewRevision+1;if(e.previewRevision=j,e.previewReady=!1,e.playResult=null,e.accessibility={status:"idle",violations:[]},m(),c("unknown"),w(null),!b){a(!1),c("empty");return}let R=!1,_,k;const T=()=>{R||c(te(f)?"present":"empty")},G=new MutationObserver(T);return G.observe(f,{childList:!0,subtree:!0,characterData:!0}),a(!0),ee(f,e.modulePath,e.storyName,b.Component,Te(t,b)).then(S=>{if(R){S?.unmount();return}if(!S){y.get(t)?.previewRevision===j&&(a(!1),c("empty"));return}const B=y.get(t);if(!B||B.previewRevision!==j){S.unmount();return}_=S.unmount,B.previewReady=!0,a(!1),k=setTimeout(T,0),m()},S=>{R||y.get(t)?.previewRevision!==j||(a(!1),w(S instanceof Error?S.message:String(S)),c("empty"))}),()=>{R=!0,G.disconnect(),k!==void 0&&clearTimeout(k),_?.()}},[t,e,b,h]);const C=e?.resolution.width===null,v=!e||C?1:be(z,{width:e.resolution.width,height:e.resolution.height}).scale;if(l.useEffect(()=>{!e||!Number.isFinite(v)||v<=0||e.scale===v||(e.scale=v,m())},[v,e]),!e)return r.jsx("div",{style:{padding:u[6],fontSize:d.md,color:s.content.muted,pointerEvents:"auto"},children:"This story document is no longer available."});const N=`${e.modulePath}#${e.storyName}`,I=b?g?{tone:"error",title:`Story ${N} failed`,description:g}:Z({surface:"Story",rootIds:[N],phase:i?"loading":"ready",content:p}):{tone:"error",title:`Story ${N} is unavailable`,description:x??`No story export named “${e.storyName}” exists in ${e.modulePath}; it may have been renamed or removed.`};return r.jsx("div",{style:{flex:1,minHeight:0,display:"flex",flexDirection:"column",pointerEvents:"auto"},children:r.jsx("div",{ref:o,style:{position:"relative",flex:1,minHeight:0,overflow:"auto",display:"flex",alignItems:"center",justifyContent:"center"},children:r.jsxs("div",{style:C?{position:"absolute",inset:0}:{position:"relative",width:e.resolution.width*v,height:e.resolution.height*v,flex:"0 0 auto"},children:[r.jsx("div",{"data-testid":"story-preview-root",ref:n,style:{position:"absolute",inset:0,isolation:"isolate",contain:"layout paint",overflow:"auto",background:s.surface.inset,...C?{}:{width:e.resolution.width,height:e.resolution.height,transform:`scale(${v})`,transformOrigin:"top left"}}}),r.jsx(q,{explanation:I,testId:"story-surface-status"})]})})})}function Pe(t){const e=t.parameters.docs;if(!e||typeof e!="object")return{};const o=e.description;if(typeof o=="string")return{story:o};if(!o||typeof o!="object")return{};const n=o;return{...typeof n.component=="string"?{component:n.component}:{},...typeof n.story=="string"?{story:n.story}:{}}}function _e({documentId:t}){l.useSyncExternalStore(E,O),l.useSyncExternalStore(L,()=>D());const e=y.get(t),o=l.useRef(null),[n,i]=l.useState("unknown"),[a,p]=l.useState(null),{story:c,moduleError:g}=e?W(e.modulePath,e.storyName):{story:void 0,moduleError:void 0};if(l.useEffect(()=>{const x=o.current;if(!x||!e||!c)return;let h=!1,C=null,v;i("unknown"),p(null);const N=()=>{h||i(te(x)?"present":"empty")},I=new MutationObserver(N);return I.observe(x,{childList:!0,subtree:!0,characterData:!0}),ee(x,e.modulePath,e.storyName,c.Component).then(f=>{if(!f){h||i("empty");return}h?f.unmount():(C=f.unmount,v=setTimeout(N,0))},f=>{h||(p(f instanceof Error?f.message:String(f)),i("empty"))}),()=>{h=!0,I.disconnect(),v!==void 0&&clearTimeout(v),C?.()}},[e,c]),!e||!c)return r.jsx("div",{style:{padding:u[8],color:s.semantic.danger,fontSize:d.md},children:g??"This Storybook Docs document is no longer available."});const w=Pe(c),z=c.args,P=`${e.modulePath}#${e.storyName}`,b=a?{tone:"error",title:`Story ${P} failed`,description:a}:Z({surface:"Story",rootIds:[P],phase:n==="unknown"?"loading":"ready",content:n});return r.jsx("article",{"data-testid":"story-docs-document",className:"volter-content-frost",style:{flex:1,minHeight:0,overflow:"auto",pointerEvents:"auto",padding:"24px clamp(18px, 5vw, 64px)"},children:r.jsxs("div",{style:{maxWidth:920,margin:"0 auto",display:"flex",flexDirection:"column",gap:22},children:[r.jsxs("header",{children:[r.jsx("div",{style:{color:s.content.dim,fontSize:d.base,marginBottom:5},children:c.title??e.modulePath}),r.jsx("h1",{style:{color:s.content.primary,fontSize:d.heading,margin:0},children:c.label}),(w.story??w.component)&&r.jsx("p",{style:{color:s.content.primary,lineHeight:1.6,maxWidth:760,whiteSpace:"pre-wrap"},children:w.story??w.component})]}),r.jsxs("section",{children:[r.jsx("h2",{style:{color:s.content.primary,fontSize:d.xl},children:"Canvas"}),r.jsxs("div",{style:{position:"relative",minHeight:180},children:[r.jsx("div",{ref:o,"data-testid":"story-docs-canvas",style:{position:"relative",isolation:"isolate",contain:"layout paint",minHeight:180,padding:18,overflow:"auto",background:s.surface.inset,border:`1px solid ${s.boundary.default}`,borderRadius:s.shape.medium}}),r.jsx(q,{explanation:b,testId:"story-docs-surface-status"})]})]}),r.jsxs("section",{children:[r.jsx("h2",{style:{color:s.content.primary,fontSize:d.xl},children:"Args"}),r.jsxs("div",{style:{border:`1px solid ${s.boundary.default}`,borderRadius:s.shape.medium,overflow:"hidden"},children:[Object.entries(z).map(([x,h])=>r.jsxs("div",{style:{display:"grid",gridTemplateColumns:"minmax(120px, .4fr) minmax(140px, .6fr) 1fr",gap:u[6],padding:`${u[4]} ${u[5]}`,borderBottom:`1px solid ${s.boundary.default}`,fontSize:d.base},children:[r.jsx("code",{style:{color:s.accent.default},children:x}),r.jsx("span",{style:{color:s.content.muted},children:Array.isArray(h)?"array":typeof h}),r.jsx("code",{style:{color:s.content.primary,overflow:"hidden",textOverflow:"ellipsis"},children:typeof h=="function"?"function":JSON.stringify(h)})]},x)),Object.keys(z).length===0&&r.jsx("div",{style:{padding:u[5],color:s.content.dim,fontSize:d.base},children:"This story declares no args."})]})]}),r.jsxs("footer",{style:{color:s.content.dim,fontSize:d.sm},children:[e.modulePath," · ",e.storyName]})]})})}function $e({documentId:t}){l.useSyncExternalStore(E,O),l.useSyncExternalStore(L,()=>D());const e=y.get(t);if(!e)return null;const{story:o}=W(e.modulePath,e.storyName),n=typeof o?.Component.play=="function",i=e.playResult;return r.jsxs("div",{"data-testid":"story-document-toolbar",style:{display:"flex",alignItems:"center",gap:u[4],padding:"3px 10px",fontSize:d.sm,color:s.content.muted,borderBottom:`1px solid ${s.boundary.default}`},children:[r.jsxs("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis"},children:[e.modulePath," —"," ",r.jsx("code",{style:{color:s.accent.default},children:e.storyName})]}),r.jsx(we,{resolution:e.resolution,scale:e.scale,onResolutionChange:a=>{e.resolution=a,m()}}),r.jsx(A,{size:"compact","data-testid":"story-open-docs",onClick:()=>Y(e.store,e.modulePath,e.storyName),style:{flexShrink:0},children:"Docs"}),n&&o&&r.jsx(A,{variant:"outline",size:"compact","data-testid":"story-run-play",onClick:async()=>{if(!e.container||!e.previewReady)return;const a=e.previewRevision,p=await je(e.modulePath,e.storyName,o.Component,e.container),c=y.get(t);c?.previewReady&&c.previewRevision===a&&(c.playResult=p,m())},disabled:!e.previewReady,style:{flexShrink:0},children:"Run play()"}),i?.ran&&!i.error&&r.jsx("span",{"data-testid":"story-play-result",style:{color:s.semantic.success,fontWeight:600},children:"play() ran"}),i?.error&&r.jsx("span",{"data-testid":"story-play-result",style:{color:s.semantic.danger},children:i.error})]})}function ze({id:t,name:e,value:o}){return r.jsxs("div",{style:{display:"flex",alignItems:"center",gap:u[3],padding:"3px 0"},children:[r.jsx("span",{style:{width:90,flexShrink:0,fontSize:d.base,color:s.content.muted,overflow:"hidden",textOverflow:"ellipsis"},title:e,children:e}),typeof o=="boolean"?r.jsx(ye,{className:"volter-checkbox","data-testid":`story-arg-${e}`,checked:o,onChange:n=>F(t,e,n.target.checked)}):typeof o=="number"?r.jsx(V,{type:"number",className:"volter-input","data-testid":`story-arg-${e}`,value:o,onChange:n=>{const i=n.target.value,a=Number.parseFloat(i);F(t,e,i===""||Number.isNaN(a)?void 0:a)},style:{width:80}}):typeof o=="string"?r.jsx(V,{type:"text",className:"volter-input","data-testid":`story-arg-${e}`,value:o,onChange:n=>F(t,e,n.target.value),style:{flex:1,minWidth:0}}):r.jsx("span",{style:{fontSize:d.base,color:s.content.dim},"data-testid":`story-arg-${e}`,children:typeof o=="function"?"fn (logged to Actions)":JSON.stringify(o)})]})}function Ie(){l.useSyncExternalStore(E,O),l.useSyncExternalStore(L,()=>D());const t=$();if(!t)return null;const{story:e}=W(t.modulePath,t.storyName),o=e?{...ne(e),...t.argOverrides}:{},n=Object.keys(o);return r.jsxs("div",{"data-testid":"inspector-story-args",style:{pointerEvents:"auto",padding:u[4],borderBottom:`1px solid ${s.boundary.default}`},children:[r.jsx("div",{style:{fontSize:d.base,color:s.content.dim,textTransform:"uppercase",marginBottom:u[2]},children:"Story Args"}),r.jsx("div",{style:{fontSize:d.base,color:s.content.primary,fontWeight:600,marginBottom:u[2]},children:t.storyName}),n.length===0&&r.jsx("div",{style:{fontSize:d.base,color:s.content.dim},children:e?"This story declares no args.":"Story source unavailable."}),n.map(i=>r.jsx(ze,{id:t.id,name:i,value:o[i]},i))]})}function Ae(){l.useSyncExternalStore(E,O);const t=$();return t?r.jsxs("div",{"data-testid":"story-actions-utility",style:{flex:1,minHeight:0,overflowY:"auto",padding:u[4],fontSize:d.base},children:[r.jsx(A,{size:"compact",style:{marginBottom:u[3]},onClick:()=>Ne(t.id),children:"Clear"}),t.actionLog.length===0?r.jsx("div",{style:{color:s.content.dim},children:"No actions logged — function-valued args are wrapped with logging spies; interact with the story preview to see calls here."}):t.actionLog.map((e,o)=>r.jsxs("div",{style:{padding:`${u[1]} 0`,borderBottom:`1px solid ${s.boundary.default}`},children:[r.jsx("code",{style:{color:s.accent.default},children:e.name})," ",r.jsxs("span",{style:{color:s.content.muted},children:["(",e.args.map(n=>{try{return typeof n=="object"?JSON.stringify(n)?.slice(0,80):String(n)}catch{return String(n)}}).join(", "),")"]})]},o))]}):r.jsx("div",{style:{padding:u[6],fontSize:d.md,color:s.content.dim},children:"No active story."})}function Le(){l.useSyncExternalStore(E,O);const t=$();if(!t)return r.jsx("div",{style:{padding:u[6],fontSize:d.md,color:s.content.dim},children:"No active story."});const e=t.playResult;return r.jsxs("div",{"data-testid":"story-interactions-utility",style:{flex:1,minHeight:0,overflowY:"auto",padding:u[6],fontSize:d.md},children:[!e&&r.jsx("div",{style:{color:s.content.dim},children:"No interaction run yet — use the story document's “Run play()”."}),e&&!e.ran&&r.jsx("div",{style:{color:s.content.dim},children:"This story declares no play() function."}),e?.ran&&!e.error&&r.jsx("div",{style:{color:s.semantic.success,fontWeight:600},children:"play() ran without errors."}),e?.error&&r.jsx("div",{style:{color:s.semantic.danger,whiteSpace:"pre-wrap"},children:e.error})]})}async function We(t){const e=y.get(t);if(!e?.container||!e.previewReady)return;const o=e.container,n=e.previewRevision;e.accessibility={status:"running",violations:[]},m();try{const a=await(await pe(async()=>{const{default:c}=await import("./axe-LkjAB6Lv.js").then(g=>g.a);return{default:c}},__vite__mapDeps([0,1]))).default.run(o),p=y.get(t);if(!p?.previewReady||p.previewRevision!==n||p.container!==o)return;p.accessibility={status:"complete",violations:a.violations.map(c=>({id:c.id,impact:c.impact??null,help:c.help,helpUrl:c.helpUrl,nodes:c.nodes.map(g=>({html:g.html,target:g.target.map(String)}))}))},m()}catch(i){const a=y.get(t);if(!a?.previewReady||a.previewRevision!==n||a.container!==o)return;a.accessibility={status:"error",violations:[],error:i instanceof Error?i.message:String(i)},m()}}function Be(){l.useSyncExternalStore(E,O);const t=$();if(!t)return r.jsx("div",{style:{padding:u[6],fontSize:d.md,color:s.content.dim},children:"No active story."});const e=t.accessibility;return r.jsxs("div",{"data-testid":"story-accessibility-utility",style:{flex:1,minHeight:0,overflowY:"auto",padding:u[5],fontSize:d.base},children:[r.jsx(A,{variant:"outline",size:"compact",disabled:!t.container||!t.previewReady||e.status==="running",onClick:()=>void We(t.id),style:{marginBottom:u[4]},children:e.status==="running"?"Checking…":"Run accessibility check"}),e.status==="idle"&&r.jsx("div",{style:{color:s.content.dim},children:"Run axe against the mounted story preview."}),e.status==="error"&&r.jsx("div",{style:{color:s.semantic.danger},children:e.error}),e.status==="complete"&&e.violations.length===0&&r.jsx("div",{style:{color:s.semantic.success,fontWeight:600},children:"No accessibility violations found."}),e.violations.map(o=>r.jsxs("details",{style:{borderBottom:`1px solid ${s.boundary.default}`,padding:`${u[3]} 0`},children:[r.jsxs("summary",{style:{color:o.impact==="critical"||o.impact==="serious"?s.semantic.danger:s.content.primary,cursor:"pointer"},children:[o.help," · ",o.nodes.length," node",o.nodes.length===1?"":"s"]}),r.jsx("a",{href:o.helpUrl,target:"_blank",rel:"noreferrer",style:{color:s.accent.default,display:"inline-block",margin:"5px 0"},children:"How to fix"}),o.nodes.map((n,i)=>r.jsxs("pre",{style:{color:s.content.muted,fontFamily:ue,fontSize:d.sm,whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:[n.target.join(" "),`
2
+ import{f2 as se,eM as ie,dT as ae,f3 as ce,f4 as le,f5 as K,f6 as H,ad as U,eO as de,as as L,at as D,al as s,er as u,et as d,a6 as A,ew as ue,aS as ye,aN as V,_ as pe,f7 as fe,au as me,av as he,f8 as Q,f9 as ve,fa as ge,fb as xe,b9 as J,fc as X,aC as Se}from"./index-D9shXtZ9.js";import{a as r}from"./jsx-runtime-DPjLkJKQ.js";import{r as l}from"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";import{R as we,f as be}from"./presentation-DxTT40_3.js";import{e as Z,S as q}from"./surface-state-EsG-yMSi.js";import{m as ee,r as je}from"./StoryPreviewMount-BONsNxze.js";import{d as te}from"./surface-content-Dg9Kkazf.js";const Re=se,y=new Map;let oe=0;const M=new Set;function m(){oe++;for(const t of M)t()}function E(t){return M.add(t),()=>{M.delete(t)}}function O(){return oe}function Ee(t,e){return`story:${t}#${e}`}function Oe(t,e){return`story-docs:${t}#${e}`}function $(){const t=K();if(!t||t.descriptor.kind!=="story")return null;const e=y.get(t.descriptor.id);return e?.mode==="preview"?{...e,id:t.descriptor.id}:null}function F(t,e,o){const n=y.get(t);if(n){if(o===void 0){const i={...n.argOverrides};delete i[e],n.argOverrides=i}else n.argOverrides={...n.argOverrides,[e]:o};m()}}function Ce(t,e,o){const n=y.get(t);n&&(n.actionLog=[...n.actionLog,{name:e,args:o,time:Date.now()}].slice(-200),m())}function Ne(t){const e=y.get(t);!e||e.actionLog.length===0||(e.actionLog=[],m())}function re(t,e,o,n={}){Ue();const i=Ee(e,o);y.has(i)||(y.set(i,{modulePath:e,storyName:o,mode:"preview",store:t,argOverrides:{},actionLog:[],playResult:null,accessibility:{status:"idle",violations:[]},container:null,previewReady:!1,previewRevision:0,resolution:{label:"Fill",width:null,height:null},scale:1}),m());const a=n.activate===void 0?{}:{activate:n.activate};return X({id:i,title:n.title??o,kind:"story",workspaceRole:"authored-subject",provenance:{sourcePath:e},Content:De,Toolbar:$e,closeable:!0,presentation:()=>({kind:"story",modulePath:e,storyName:o,mode:"preview"}),persist:()=>({modulePath:e,storyName:o}),onDispose:p=>{y.delete(p)&&m()}},a)}function Y(t,e,o){const n=Oe(e,o);return y.has(n)||(y.set(n,{modulePath:e,storyName:o,mode:"docs",store:t,argOverrides:{},actionLog:[],playResult:null,accessibility:{status:"idle",violations:[]},container:null,previewReady:!1,previewRevision:0,resolution:{label:"Fill",width:null,height:null},scale:1}),m()),X({id:n,title:`${o} — Docs`,kind:"story",workspaceRole:"workspace-reference",provenance:{sourcePath:e},Content:_e,closeable:!0,presentation:()=>({kind:"story",modulePath:e,storyName:o,mode:"docs"}),persist:()=>({modulePath:e,storyName:o,view:"docs"}),onDispose:i=>{y.delete(i)&&m()}})}function ke(){const t=Se();return t?xe(t).then(J,J):Promise.resolve()}fe({kind:"story",owner:"story-documents",prepare:ke,restore:({state:t,store:e})=>{const o=t,n=typeof o?.modulePath=="string"?o.modulePath:null,i=typeof o?.storyName=="string"?o.storyName:null;if(!n||!i)return!1;const a=D().find(c=>c.modulePath===n);if(!a?.ok||!a.stories.some(c=>c.name===i))return!1;if(o?.view==="docs")return Y(e,n,i),!0;const{medium:p}=me({modulePath:n,regions:he()});return p!=="dom"&&p!=="canvas"?!1:(re(e,n,i),!0)}});Q({id:ve,owner:"story-documents",open:(t,e)=>re(t,e.modulePath,e.storyName,{...e.title===void 0?{}:{title:e.title},...e.activate===void 0?{}:{activate:e.activate}})});Q({id:ge,owner:"story-documents",open:(t,e)=>Y(t,e.modulePath,e.storyName)});function W(t,e){const o=D().find(n=>n.modulePath===t);return o?o.ok?{story:o.stories.find(n=>n.name===e),moduleError:void 0}:{story:void 0,moduleError:o.error}:{story:void 0,moduleError:void 0}}function ne(t){const e=t.Component.args;return e&&typeof e=="object"?e:{}}function Te(t,e){const o=y.get(t),n={};for(const[i,a]of Object.entries(ne(e)))typeof a=="function"&&(n[i]=(...p)=>(Ce(t,i,p),a(...p)));return{...n,...o?.argOverrides??{}}}function De({documentId:t}){l.useSyncExternalStore(E,O),l.useSyncExternalStore(L,()=>D());const e=y.get(t),o=l.useRef(null),n=l.useRef(null),[i,a]=l.useState(!1),[p,c]=l.useState("unknown"),[g,w]=l.useState(null),[z,P]=l.useState({width:0,height:0}),{story:b,moduleError:x}=e?W(e.modulePath,e.storyName):{story:void 0,moduleError:void 0},h=e?JSON.stringify(e.argOverrides):"";l.useEffect(()=>{const f=o.current;if(!f)return;if(typeof ResizeObserver>"u"){P({width:f.clientWidth,height:f.clientHeight});return}const j=new ResizeObserver(([R])=>{if(!R)return;const{width:_,height:k}=R.contentRect;P(T=>T.width===_&&T.height===k?T:{width:_,height:k})});return j.observe(f),()=>j.disconnect()},[]),l.useEffect(()=>{const f=n.current;if(!f||!e)return;e.container!==f&&(e.container=f,m());const j=e.previewRevision+1;if(e.previewRevision=j,e.previewReady=!1,e.playResult=null,e.accessibility={status:"idle",violations:[]},m(),c("unknown"),w(null),!b){a(!1),c("empty");return}let R=!1,_,k;const T=()=>{R||c(te(f)?"present":"empty")},G=new MutationObserver(T);return G.observe(f,{childList:!0,subtree:!0,characterData:!0}),a(!0),ee(f,e.modulePath,e.storyName,b.Component,Te(t,b)).then(S=>{if(R){S?.unmount();return}if(!S){y.get(t)?.previewRevision===j&&(a(!1),c("empty"));return}const B=y.get(t);if(!B||B.previewRevision!==j){S.unmount();return}_=S.unmount,B.previewReady=!0,a(!1),k=setTimeout(T,0),m()},S=>{R||y.get(t)?.previewRevision!==j||(a(!1),w(S instanceof Error?S.message:String(S)),c("empty"))}),()=>{R=!0,G.disconnect(),k!==void 0&&clearTimeout(k),_?.()}},[t,e,b,h]);const C=e?.resolution.width===null,v=!e||C?1:be(z,{width:e.resolution.width,height:e.resolution.height}).scale;if(l.useEffect(()=>{!e||!Number.isFinite(v)||v<=0||e.scale===v||(e.scale=v,m())},[v,e]),!e)return r.jsx("div",{style:{padding:u[6],fontSize:d.md,color:s.content.muted,pointerEvents:"auto"},children:"This story document is no longer available."});const N=`${e.modulePath}#${e.storyName}`,I=b?g?{tone:"error",title:`Story ${N} failed`,description:g}:Z({surface:"Story",rootIds:[N],phase:i?"loading":"ready",content:p}):{tone:"error",title:`Story ${N} is unavailable`,description:x??`No story export named “${e.storyName}” exists in ${e.modulePath}; it may have been renamed or removed.`};return r.jsx("div",{style:{flex:1,minHeight:0,display:"flex",flexDirection:"column",pointerEvents:"auto"},children:r.jsx("div",{ref:o,style:{position:"relative",flex:1,minHeight:0,overflow:"auto",display:"flex",alignItems:"center",justifyContent:"center"},children:r.jsxs("div",{style:C?{position:"absolute",inset:0}:{position:"relative",width:e.resolution.width*v,height:e.resolution.height*v,flex:"0 0 auto"},children:[r.jsx("div",{"data-testid":"story-preview-root",ref:n,style:{position:"absolute",inset:0,isolation:"isolate",contain:"layout paint",overflow:"auto",background:s.surface.inset,...C?{}:{width:e.resolution.width,height:e.resolution.height,transform:`scale(${v})`,transformOrigin:"top left"}}}),r.jsx(q,{explanation:I,testId:"story-surface-status"})]})})})}function Pe(t){const e=t.parameters.docs;if(!e||typeof e!="object")return{};const o=e.description;if(typeof o=="string")return{story:o};if(!o||typeof o!="object")return{};const n=o;return{...typeof n.component=="string"?{component:n.component}:{},...typeof n.story=="string"?{story:n.story}:{}}}function _e({documentId:t}){l.useSyncExternalStore(E,O),l.useSyncExternalStore(L,()=>D());const e=y.get(t),o=l.useRef(null),[n,i]=l.useState("unknown"),[a,p]=l.useState(null),{story:c,moduleError:g}=e?W(e.modulePath,e.storyName):{story:void 0,moduleError:void 0};if(l.useEffect(()=>{const x=o.current;if(!x||!e||!c)return;let h=!1,C=null,v;i("unknown"),p(null);const N=()=>{h||i(te(x)?"present":"empty")},I=new MutationObserver(N);return I.observe(x,{childList:!0,subtree:!0,characterData:!0}),ee(x,e.modulePath,e.storyName,c.Component).then(f=>{if(!f){h||i("empty");return}h?f.unmount():(C=f.unmount,v=setTimeout(N,0))},f=>{h||(p(f instanceof Error?f.message:String(f)),i("empty"))}),()=>{h=!0,I.disconnect(),v!==void 0&&clearTimeout(v),C?.()}},[e,c]),!e||!c)return r.jsx("div",{style:{padding:u[8],color:s.semantic.danger,fontSize:d.md},children:g??"This Storybook Docs document is no longer available."});const w=Pe(c),z=c.args,P=`${e.modulePath}#${e.storyName}`,b=a?{tone:"error",title:`Story ${P} failed`,description:a}:Z({surface:"Story",rootIds:[P],phase:n==="unknown"?"loading":"ready",content:n});return r.jsx("article",{"data-testid":"story-docs-document",className:"volter-content-frost",style:{flex:1,minHeight:0,overflow:"auto",pointerEvents:"auto",padding:"24px clamp(18px, 5vw, 64px)"},children:r.jsxs("div",{style:{maxWidth:920,margin:"0 auto",display:"flex",flexDirection:"column",gap:22},children:[r.jsxs("header",{children:[r.jsx("div",{style:{color:s.content.dim,fontSize:d.base,marginBottom:5},children:c.title??e.modulePath}),r.jsx("h1",{style:{color:s.content.primary,fontSize:d.heading,margin:0},children:c.label}),(w.story??w.component)&&r.jsx("p",{style:{color:s.content.primary,lineHeight:1.6,maxWidth:760,whiteSpace:"pre-wrap"},children:w.story??w.component})]}),r.jsxs("section",{children:[r.jsx("h2",{style:{color:s.content.primary,fontSize:d.xl},children:"Canvas"}),r.jsxs("div",{style:{position:"relative",minHeight:180},children:[r.jsx("div",{ref:o,"data-testid":"story-docs-canvas",style:{position:"relative",isolation:"isolate",contain:"layout paint",minHeight:180,padding:18,overflow:"auto",background:s.surface.inset,border:`1px solid ${s.boundary.default}`,borderRadius:s.shape.medium}}),r.jsx(q,{explanation:b,testId:"story-docs-surface-status"})]})]}),r.jsxs("section",{children:[r.jsx("h2",{style:{color:s.content.primary,fontSize:d.xl},children:"Args"}),r.jsxs("div",{style:{border:`1px solid ${s.boundary.default}`,borderRadius:s.shape.medium,overflow:"hidden"},children:[Object.entries(z).map(([x,h])=>r.jsxs("div",{style:{display:"grid",gridTemplateColumns:"minmax(120px, .4fr) minmax(140px, .6fr) 1fr",gap:u[6],padding:`${u[4]} ${u[5]}`,borderBottom:`1px solid ${s.boundary.default}`,fontSize:d.base},children:[r.jsx("code",{style:{color:s.accent.default},children:x}),r.jsx("span",{style:{color:s.content.muted},children:Array.isArray(h)?"array":typeof h}),r.jsx("code",{style:{color:s.content.primary,overflow:"hidden",textOverflow:"ellipsis"},children:typeof h=="function"?"function":JSON.stringify(h)})]},x)),Object.keys(z).length===0&&r.jsx("div",{style:{padding:u[5],color:s.content.dim,fontSize:d.base},children:"This story declares no args."})]})]}),r.jsxs("footer",{style:{color:s.content.dim,fontSize:d.sm},children:[e.modulePath," · ",e.storyName]})]})})}function $e({documentId:t}){l.useSyncExternalStore(E,O),l.useSyncExternalStore(L,()=>D());const e=y.get(t);if(!e)return null;const{story:o}=W(e.modulePath,e.storyName),n=typeof o?.Component.play=="function",i=e.playResult;return r.jsxs("div",{"data-testid":"story-document-toolbar",style:{display:"flex",alignItems:"center",gap:u[4],padding:"3px 10px",fontSize:d.sm,color:s.content.muted,borderBottom:`1px solid ${s.boundary.default}`},children:[r.jsxs("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis"},children:[e.modulePath," —"," ",r.jsx("code",{style:{color:s.accent.default},children:e.storyName})]}),r.jsx(we,{resolution:e.resolution,scale:e.scale,onResolutionChange:a=>{e.resolution=a,m()}}),r.jsx(A,{size:"compact","data-testid":"story-open-docs",onClick:()=>Y(e.store,e.modulePath,e.storyName),style:{flexShrink:0},children:"Docs"}),n&&o&&r.jsx(A,{variant:"outline",size:"compact","data-testid":"story-run-play",onClick:async()=>{if(!e.container||!e.previewReady)return;const a=e.previewRevision,p=await je(e.modulePath,e.storyName,o.Component,e.container),c=y.get(t);c?.previewReady&&c.previewRevision===a&&(c.playResult=p,m())},disabled:!e.previewReady,style:{flexShrink:0},children:"Run play()"}),i?.ran&&!i.error&&r.jsx("span",{"data-testid":"story-play-result",style:{color:s.semantic.success,fontWeight:600},children:"play() ran"}),i?.error&&r.jsx("span",{"data-testid":"story-play-result",style:{color:s.semantic.danger},children:i.error})]})}function ze({id:t,name:e,value:o}){return r.jsxs("div",{style:{display:"flex",alignItems:"center",gap:u[3],padding:"3px 0"},children:[r.jsx("span",{style:{width:90,flexShrink:0,fontSize:d.base,color:s.content.muted,overflow:"hidden",textOverflow:"ellipsis"},title:e,children:e}),typeof o=="boolean"?r.jsx(ye,{className:"volter-checkbox","data-testid":`story-arg-${e}`,checked:o,onChange:n=>F(t,e,n.target.checked)}):typeof o=="number"?r.jsx(V,{type:"number",className:"volter-input","data-testid":`story-arg-${e}`,value:o,onChange:n=>{const i=n.target.value,a=Number.parseFloat(i);F(t,e,i===""||Number.isNaN(a)?void 0:a)},style:{width:80}}):typeof o=="string"?r.jsx(V,{type:"text",className:"volter-input","data-testid":`story-arg-${e}`,value:o,onChange:n=>F(t,e,n.target.value),style:{flex:1,minWidth:0}}):r.jsx("span",{style:{fontSize:d.base,color:s.content.dim},"data-testid":`story-arg-${e}`,children:typeof o=="function"?"fn (logged to Actions)":JSON.stringify(o)})]})}function Ie(){l.useSyncExternalStore(E,O),l.useSyncExternalStore(L,()=>D());const t=$();if(!t)return null;const{story:e}=W(t.modulePath,t.storyName),o=e?{...ne(e),...t.argOverrides}:{},n=Object.keys(o);return r.jsxs("div",{"data-testid":"inspector-story-args",style:{pointerEvents:"auto",padding:u[4],borderBottom:`1px solid ${s.boundary.default}`},children:[r.jsx("div",{style:{fontSize:d.base,color:s.content.dim,textTransform:"uppercase",marginBottom:u[2]},children:"Story Args"}),r.jsx("div",{style:{fontSize:d.base,color:s.content.primary,fontWeight:600,marginBottom:u[2]},children:t.storyName}),n.length===0&&r.jsx("div",{style:{fontSize:d.base,color:s.content.dim},children:e?"This story declares no args.":"Story source unavailable."}),n.map(i=>r.jsx(ze,{id:t.id,name:i,value:o[i]},i))]})}function Ae(){l.useSyncExternalStore(E,O);const t=$();return t?r.jsxs("div",{"data-testid":"story-actions-utility",style:{flex:1,minHeight:0,overflowY:"auto",padding:u[4],fontSize:d.base},children:[r.jsx(A,{size:"compact",style:{marginBottom:u[3]},onClick:()=>Ne(t.id),children:"Clear"}),t.actionLog.length===0?r.jsx("div",{style:{color:s.content.dim},children:"No actions logged — function-valued args are wrapped with logging spies; interact with the story preview to see calls here."}):t.actionLog.map((e,o)=>r.jsxs("div",{style:{padding:`${u[1]} 0`,borderBottom:`1px solid ${s.boundary.default}`},children:[r.jsx("code",{style:{color:s.accent.default},children:e.name})," ",r.jsxs("span",{style:{color:s.content.muted},children:["(",e.args.map(n=>{try{return typeof n=="object"?JSON.stringify(n)?.slice(0,80):String(n)}catch{return String(n)}}).join(", "),")"]})]},o))]}):r.jsx("div",{style:{padding:u[6],fontSize:d.md,color:s.content.dim},children:"No active story."})}function Le(){l.useSyncExternalStore(E,O);const t=$();if(!t)return r.jsx("div",{style:{padding:u[6],fontSize:d.md,color:s.content.dim},children:"No active story."});const e=t.playResult;return r.jsxs("div",{"data-testid":"story-interactions-utility",style:{flex:1,minHeight:0,overflowY:"auto",padding:u[6],fontSize:d.md},children:[!e&&r.jsx("div",{style:{color:s.content.dim},children:"No interaction run yet — use the story document's “Run play()”."}),e&&!e.ran&&r.jsx("div",{style:{color:s.content.dim},children:"This story declares no play() function."}),e?.ran&&!e.error&&r.jsx("div",{style:{color:s.semantic.success,fontWeight:600},children:"play() ran without errors."}),e?.error&&r.jsx("div",{style:{color:s.semantic.danger,whiteSpace:"pre-wrap"},children:e.error})]})}async function We(t){const e=y.get(t);if(!e?.container||!e.previewReady)return;const o=e.container,n=e.previewRevision;e.accessibility={status:"running",violations:[]},m();try{const a=await(await pe(async()=>{const{default:c}=await import("./axe-LkjAB6Lv.js").then(g=>g.a);return{default:c}},__vite__mapDeps([0,1]))).default.run(o),p=y.get(t);if(!p?.previewReady||p.previewRevision!==n||p.container!==o)return;p.accessibility={status:"complete",violations:a.violations.map(c=>({id:c.id,impact:c.impact??null,help:c.help,helpUrl:c.helpUrl,nodes:c.nodes.map(g=>({html:g.html,target:g.target.map(String)}))}))},m()}catch(i){const a=y.get(t);if(!a?.previewReady||a.previewRevision!==n||a.container!==o)return;a.accessibility={status:"error",violations:[],error:i instanceof Error?i.message:String(i)},m()}}function Be(){l.useSyncExternalStore(E,O);const t=$();if(!t)return r.jsx("div",{style:{padding:u[6],fontSize:d.md,color:s.content.dim},children:"No active story."});const e=t.accessibility;return r.jsxs("div",{"data-testid":"story-accessibility-utility",style:{flex:1,minHeight:0,overflowY:"auto",padding:u[5],fontSize:d.base},children:[r.jsx(A,{variant:"outline",size:"compact",disabled:!t.container||!t.previewReady||e.status==="running",onClick:()=>void We(t.id),style:{marginBottom:u[4]},children:e.status==="running"?"Checking…":"Run accessibility check"}),e.status==="idle"&&r.jsx("div",{style:{color:s.content.dim},children:"Run axe against the mounted story preview."}),e.status==="error"&&r.jsx("div",{style:{color:s.semantic.danger},children:e.error}),e.status==="complete"&&e.violations.length===0&&r.jsx("div",{style:{color:s.semantic.success,fontWeight:600},children:"No accessibility violations found."}),e.violations.map(o=>r.jsxs("details",{style:{borderBottom:`1px solid ${s.boundary.default}`,padding:`${u[3]} 0`},children:[r.jsxs("summary",{style:{color:o.impact==="critical"||o.impact==="serious"?s.semantic.danger:s.content.primary,cursor:"pointer"},children:[o.help," · ",o.nodes.length," node",o.nodes.length===1?"":"s"]}),r.jsx("a",{href:o.helpUrl,target:"_blank",rel:"noreferrer",style:{color:s.accent.default,display:"inline-block",margin:"5px 0"},children:"How to fix"}),o.nodes.map((n,i)=>r.jsxs("pre",{style:{color:s.content.muted,fontFamily:ue,fontSize:d.sm,whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:[n.target.join(" "),`
3
3
  `,n.html]},`${o.id}:${i}`))]},o.id))]})}const He=de();function Ue(){He.ensure(t=>{t(ie({match:()=>K()?.descriptor.kind==="story",id:le,title:ce,icon:Re,order:ae,Section:Ie}));const e=()=>$()!==null;t(H({...U.storyActions,Content:Ae,available:e})),t(H({...U.storyInteractions,Content:Le,available:e})),t(H({...U.storyAccessibility,Content:Be,available:e}))})}export{Re as S,Ue as e,ke as p,Ee as s};
@@ -1 +1 @@
1
- import{a as i}from"./jsx-runtime-DPjLkJKQ.js";import{O as H}from"./Object3DDocumentViewport-BpiyRQ5p.js";import{S,e as W}from"./surface-state-b_H4iOCJ.js";import{S as G}from"./standard-viewport-dressing-BJkGwiNT.js";import{eM as z,dT as B,f3 as V,f4 as Y,eO as F,as as _,at as x,al as p,aS as J,aN as R,f5 as U,f8 as K,fn as L,f7 as X,fo as Q,fc as Z,au as q,av as ee,dx as te}from"./index-ClgrFOcX.js";import{m as re}from"./mounted-story-viewport-source-BvNZ3QQn.js";import{s as oe}from"./story-arg-descriptors-Ek86ExX7.js";import{mountStoryObject3D as se,disposeStoryObject3D as w}from"./story-three-preview-CWM0Rj7x.js";import{m as ie}from"./three-story-model-BxWKcl9d.js";import{S as ne,p as ae,s as le}from"./story-documents-CYzWYY1o.js";import{r as l}from"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";import{R3fSourceAuthoringAdapter as ce}from"./r3f-source-authoring-adapter-B8qqrdwk.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./viewport-surface-status-D7M2L2lI.js";import"./content-bounds-Dl5Y3LLv.js";import"./hierarchy-marks-DeG4E4Ke.js";import"./workspace-arrangement-86_8Kk5K.js";import"./three.core-3arARmh6.js";import"./editor-layers-DwaX5UFy.js";import"./index-D_NuPfjr.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./environment-Dg-YaLsA.js";import"./three.module-BLhyNg0e.js";import"./RoomEnvironment-BkknvS_I.js";import"./EXRLoader-CITMBvGd.js";import"./HDRLoader-BTGuGhVo.js";import"./user-data-DL6HsBPf.js";import"./asset-preview-BUpxsHNd.js";import"./renderer-ownership-BovSEcLv.js";import"./studio-environment-Bw9zMFE8.js";import"./KTX2Loader-CaqVE6nY.js";import"./GLTFLoader-KeoruJgS.js";import"./BufferGeometryUtils-B22h7jo4.js";import"./bitmap-label-Ct4k6ehY.js";import"./crash-null-boundary-v3a0uEgw.js";import"./events-156d8d12.esm-DmeaOP4r.js";import"./index-DzuOGwVB.js";import"./story-mount-turn-DFRTj5hi.js";import"./presentation-DPfnCjNA.js";import"./StoryPreviewMount-CyF7FwI7.js";import"./surface-content-Dg9Kkazf.js";import"./component-instance-root-wO1p-rLr.js";import"./live-gesture-lock-DJbrjOqf.js";import"./relative-import-specifier-CA9mSNXO.js";import"./three-projection-core-IUovHgg_.js";import"./three-DWy0sZom.js";import"./entity-object-BLJ-I8XT.js";import"./three-contract-Dkt6PmWY.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./inference-diagnostics-BmZ5ggEK.js";import"./instance-fork-actions-D3sRzS3K.js";import"./oid-transform-Ca1oU_Ei.js";import"./writer-tw6EcuVO.js";import"./r3f-physics-binding-DuG97FR9.js";import"./object3d-authoring-subject-XccsO0xG.js";import"./user-data-CODoGZqA.js";import"./object-marks-BnvSuCTt.js";const de="threeStory.arg.",f=new Map;let j=0;const v=new Set;function b(){j++;for(const e of v)e()}function C(e){return v.add(e),()=>{v.delete(e)}}function I(){return j}function ue(e,t){return`three-story:${e}#${t}`}function k(){const e=U();if(!e)return null;const t=f.get(e.descriptor.id);return t?{...t,id:e.descriptor.id}:null}function g(e,t,r){const s=f.get(e);if(s){if(r===void 0){const o={...s.argOverrides};delete o[t],s.argOverrides=o}else s.argOverrides={...s.argOverrides,[t]:r};b()}}function A(e,t,r=t,s={}){P(),Q(le(e,t));const o=ue(e,t);return f.has(o)||(f.set(o,{modulePath:e,storyName:t,argOverrides:{}}),b()),Z({id:o,title:r,kind:"world",workspaceRole:"authored-subject",provenance:{sourcePath:e},Content:pe,closeable:!0,presentation:()=>({kind:"story",modulePath:e,storyName:t,mode:"preview"}),persist:({title:n})=>({modulePath:e,storyName:t,title:n}),onDispose:n=>{f.delete(n)&&b()}},{activate:s.activate!==!1})}function me(e,t,r){const{story:s}=T(e,t);return!s||q({modulePath:e,regions:ee()}).medium!=="three"?!1:(A(e,t,r??s.label),!0)}K({id:L,owner:"three-story-documents",open:(e,t)=>A(t.modulePath,t.storyName,t.title??t.storyName,t.activate===void 0?{}:{activate:t.activate})});X({kind:"world",owner:"three-story-documents",prepare:ae,restore:({state:e})=>{const t=e,r=typeof t?.modulePath=="string"?t.modulePath:null,s=typeof t?.storyName=="string"?t.storyName:null;if(!r||!s)return!1;const o=typeof t?.title=="string"?t.title:void 0;return me(r,s,o)}});function T(e,t){const r=x().find(s=>s.modulePath===e);return r?r.ok?{story:r.stories.find(s=>s.name===t),moduleError:void 0}:{story:void 0,moduleError:r.error}:{story:void 0,moduleError:void 0}}function pe({documentId:e,active:t}){l.useSyncExternalStore(C,I),l.useSyncExternalStore(_,x);const r=f.get(e),[s,o]=l.useState(null),[n,u]=l.useState(null),d=l.useRef(new Set);l.useEffect(()=>{if(s)for(const a of d.current){if(a===s)break;a.dispose(),d.current.delete(a)}},[s]),l.useEffect(()=>()=>{for(const a of d.current)a.dispose();d.current.clear()},[]);const[E,$]=l.useState(t),h=r?.modulePath,O=l.useMemo(()=>h?({store:a,scene:c,hierarchyRoots:y})=>{const N=new ce(a,c,{worldId:e,entryPath:h,writeBackend:te("The Asset Editor"),hierarchyMode:"definition",...y?{hierarchyRoots:y}:{}});return{adapter:N,dispose:()=>N.dispose()}}:void 0,[e,h]);l.useEffect(()=>{t&&$(!0)},[t]);const{story:m,moduleError:D}=r?T(r.modulePath,r.storyName):{story:void 0,moduleError:void 0},M=r?JSON.stringify(r.argOverrides):"";if(l.useEffect(()=>{if(!E||!m||!r)return;let a=!1;return u(null),se(m.Component,{...r.argOverrides}).then(c=>{if(a){w(c);return}if(!ie(c.root)){w(c),u("The story mounted with no three content — its first R3F commit rendered an empty subtree. A <Suspense> boundary around three content is the usual cause: the boundary commits its fallback first, so the real children arrive on a later commit this document never sees.");return}const y=re(c);d.current.add(y),o(y)}).catch(c=>{a||u(c instanceof Error?c.message:String(c))}),()=>{a=!0}},[E,m,r,M]),!r)return i.jsx("div",{style:{padding:12,fontSize:12,color:p.content.muted},children:"This story document is no longer available."});if((!m||n)&&!s){const a=`${r.modulePath}#${r.storyName}`;return i.jsx("div",{"data-testid":"three-story-document-error",style:{position:"relative",flex:1,minHeight:0},children:i.jsx(S,{testId:"three-story-surface-status",explanation:{tone:"error",title:`Story ${a} failed`,description:n??D??"It may have been renamed or removed; close this document."}})})}return s?i.jsxs("div",{style:{position:"relative",display:"flex",flex:1,minHeight:0},children:[i.jsx(H,{documentId:e,sourcePath:r.modulePath,build:s.build,displayName:m?.label??r.storyName,active:t,assetType:"component",...O?{sourceAuthoring:O}:{},cameraDirection:G}),(!m||n)&&i.jsx(S,{testId:"three-story-surface-status",explanation:{tone:"error",title:"Source update failed",description:n??D??"This story is unavailable. The last working view is retained."}})]}):i.jsx("div",{"data-testid":"three-story-document-loading",style:{position:"relative",flex:1,minHeight:0},children:i.jsx(S,{testId:"three-story-surface-status",explanation:W({surface:"Story",rootIds:[`${r.modulePath}#${r.storyName}`],phase:"loading",content:"unknown"})})})}function fe(){l.useSyncExternalStore(C,I),l.useSyncExternalStore(_,x);const e=k();if(!e)return null;const{story:t}=T(e.modulePath,e.storyName),r=t?{...t.args,...e.argOverrides}:{},s=oe(r,de);return i.jsxs("div",{"data-testid":"inspector-story-args-three",style:{pointerEvents:"auto",padding:8,borderBottom:`1px solid ${p.boundary.default}`},children:[i.jsx("div",{style:{fontSize:11,color:p.content.primary,fontWeight:600,marginBottom:4},children:e.storyName}),s.length===0&&i.jsx("div",{style:{fontSize:11,color:p.content.dim},children:t?"This story declares no editable args.":"Story source unavailable."}),s.map(o=>i.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"3px 0"},children:[i.jsx("span",{title:o.label,style:{width:90,flexShrink:0,fontSize:11,color:p.content.muted,overflow:"hidden",textOverflow:"ellipsis"},children:o.label}),o.type==="boolean"?i.jsx(J,{className:"volter-checkbox","data-testid":`three-story-arg-${o.label}`,checked:r[o.label]===!0,onChange:n=>g(e.id,o.label,n.target.checked)}):o.type==="number"?i.jsx(R,{type:"number",className:"volter-input","data-testid":`three-story-arg-${o.label}`,value:r[o.label],onChange:n=>{const u=n.target.value,d=Number.parseFloat(u);g(e.id,o.label,u===""||Number.isNaN(d)?void 0:d)},style:{width:80}}):o.type==="string"?i.jsx(R,{type:"text",className:"volter-input","data-testid":`three-story-arg-${o.label}`,value:r[o.label],onChange:n=>g(e.id,o.label,n.target.value),style:{flex:1,minWidth:0}}):i.jsx("span",{"data-testid":`three-story-arg-${o.label}`,style:{fontSize:11,color:p.content.dim},children:JSON.stringify(r[o.label])})]},o.path))]})}const ye=F();function P(){ye.ensure(e=>{e(z({match:()=>k()!==null,id:Y,title:V,icon:ne,order:B,Section:fe}))})}const Tt="workspace.service";function Et(){return P(),()=>{}}export{Tt as point,Et as start};
1
+ import{a as i}from"./jsx-runtime-DPjLkJKQ.js";import{O as H}from"./Object3DDocumentViewport-Blr8aQeS.js";import{S,e as W}from"./surface-state-EsG-yMSi.js";import{S as G}from"./standard-viewport-dressing-4xAZCGJ3.js";import{eM as z,dT as B,f3 as V,f4 as Y,eO as F,as as _,at as x,al as p,aS as J,aN as R,f5 as U,f8 as K,fn as L,f7 as X,fo as Q,fc as Z,au as q,av as ee,dx as te}from"./index-D9shXtZ9.js";import{m as re}from"./mounted-story-viewport-source-C-RZo_xH.js";import{s as oe}from"./story-arg-descriptors-Ek86ExX7.js";import{mountStoryObject3D as se,disposeStoryObject3D as w}from"./story-three-preview-v22RRpqB.js";import{m as ie}from"./three-story-model-CbEMWEte.js";import{S as ne,p as ae,s as le}from"./story-documents-C1hZeYU3.js";import{r as l}from"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";import{R3fSourceAuthoringAdapter as ce}from"./r3f-source-authoring-adapter-Dj0r13-b.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./viewport-surface-status-HKbJtC2G.js";import"./content-bounds-UvcUv1DD.js";import"./hierarchy-marks-Dn7SO2iG.js";import"./workspace-arrangement-BOk46mGq.js";import"./three.core-3arARmh6.js";import"./editor-layers-BVicagU1.js";import"./index-D_NuPfjr.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./environment-Dg-YaLsA.js";import"./three.module-BLhyNg0e.js";import"./RoomEnvironment-BkknvS_I.js";import"./EXRLoader-CITMBvGd.js";import"./HDRLoader-BTGuGhVo.js";import"./user-data-DHB4MWum.js";import"./asset-preview-uRqIcg3G.js";import"./renderer-ownership-BovSEcLv.js";import"./studio-environment-CvCEc6PK.js";import"./KTX2Loader-CaqVE6nY.js";import"./GLTFLoader-KeoruJgS.js";import"./BufferGeometryUtils-B22h7jo4.js";import"./bitmap-label-Ct4k6ehY.js";import"./crash-null-boundary-v3a0uEgw.js";import"./events-156d8d12.esm-DmeaOP4r.js";import"./index-DzuOGwVB.js";import"./story-mount-turn-DFRTj5hi.js";import"./presentation-DxTT40_3.js";import"./StoryPreviewMount-BONsNxze.js";import"./surface-content-Dg9Kkazf.js";import"./component-instance-root-BrRLxTKu.js";import"./live-gesture-lock-DJbrjOqf.js";import"./relative-import-specifier-txHdCBKR.js";import"./three-projection-core-1FETWj5n.js";import"./three-Do16bEo9.js";import"./entity-object-DTQ4I2K5.js";import"./three-contract-Dkt6PmWY.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./inference-diagnostics-V4igFQX2.js";import"./instance-fork-actions-D3sRzS3K.js";import"./oid-transform-rEmA5PfE.js";import"./writer-tw6EcuVO.js";import"./r3f-physics-binding-D1rgVgsz.js";import"./object3d-authoring-subject-XccsO0xG.js";import"./user-data-CODoGZqA.js";import"./object-marks-BnvSuCTt.js";const de="threeStory.arg.",f=new Map;let j=0;const v=new Set;function b(){j++;for(const e of v)e()}function C(e){return v.add(e),()=>{v.delete(e)}}function I(){return j}function ue(e,t){return`three-story:${e}#${t}`}function k(){const e=U();if(!e)return null;const t=f.get(e.descriptor.id);return t?{...t,id:e.descriptor.id}:null}function g(e,t,r){const s=f.get(e);if(s){if(r===void 0){const o={...s.argOverrides};delete o[t],s.argOverrides=o}else s.argOverrides={...s.argOverrides,[t]:r};b()}}function A(e,t,r=t,s={}){P(),Q(le(e,t));const o=ue(e,t);return f.has(o)||(f.set(o,{modulePath:e,storyName:t,argOverrides:{}}),b()),Z({id:o,title:r,kind:"world",workspaceRole:"authored-subject",provenance:{sourcePath:e},Content:pe,closeable:!0,presentation:()=>({kind:"story",modulePath:e,storyName:t,mode:"preview"}),persist:({title:n})=>({modulePath:e,storyName:t,title:n}),onDispose:n=>{f.delete(n)&&b()}},{activate:s.activate!==!1})}function me(e,t,r){const{story:s}=T(e,t);return!s||q({modulePath:e,regions:ee()}).medium!=="three"?!1:(A(e,t,r??s.label),!0)}K({id:L,owner:"three-story-documents",open:(e,t)=>A(t.modulePath,t.storyName,t.title??t.storyName,t.activate===void 0?{}:{activate:t.activate})});X({kind:"world",owner:"three-story-documents",prepare:ae,restore:({state:e})=>{const t=e,r=typeof t?.modulePath=="string"?t.modulePath:null,s=typeof t?.storyName=="string"?t.storyName:null;if(!r||!s)return!1;const o=typeof t?.title=="string"?t.title:void 0;return me(r,s,o)}});function T(e,t){const r=x().find(s=>s.modulePath===e);return r?r.ok?{story:r.stories.find(s=>s.name===t),moduleError:void 0}:{story:void 0,moduleError:r.error}:{story:void 0,moduleError:void 0}}function pe({documentId:e,active:t}){l.useSyncExternalStore(C,I),l.useSyncExternalStore(_,x);const r=f.get(e),[s,o]=l.useState(null),[n,u]=l.useState(null),d=l.useRef(new Set);l.useEffect(()=>{if(s)for(const a of d.current){if(a===s)break;a.dispose(),d.current.delete(a)}},[s]),l.useEffect(()=>()=>{for(const a of d.current)a.dispose();d.current.clear()},[]);const[E,$]=l.useState(t),h=r?.modulePath,O=l.useMemo(()=>h?({store:a,scene:c,hierarchyRoots:y})=>{const N=new ce(a,c,{worldId:e,entryPath:h,writeBackend:te("The Asset Editor"),hierarchyMode:"definition",...y?{hierarchyRoots:y}:{}});return{adapter:N,dispose:()=>N.dispose()}}:void 0,[e,h]);l.useEffect(()=>{t&&$(!0)},[t]);const{story:m,moduleError:D}=r?T(r.modulePath,r.storyName):{story:void 0,moduleError:void 0},M=r?JSON.stringify(r.argOverrides):"";if(l.useEffect(()=>{if(!E||!m||!r)return;let a=!1;return u(null),se(m.Component,{...r.argOverrides}).then(c=>{if(a){w(c);return}if(!ie(c.root)){w(c),u("The story mounted with no three content — its first R3F commit rendered an empty subtree. A <Suspense> boundary around three content is the usual cause: the boundary commits its fallback first, so the real children arrive on a later commit this document never sees.");return}const y=re(c);d.current.add(y),o(y)}).catch(c=>{a||u(c instanceof Error?c.message:String(c))}),()=>{a=!0}},[E,m,r,M]),!r)return i.jsx("div",{style:{padding:12,fontSize:12,color:p.content.muted},children:"This story document is no longer available."});if((!m||n)&&!s){const a=`${r.modulePath}#${r.storyName}`;return i.jsx("div",{"data-testid":"three-story-document-error",style:{position:"relative",flex:1,minHeight:0},children:i.jsx(S,{testId:"three-story-surface-status",explanation:{tone:"error",title:`Story ${a} failed`,description:n??D??"It may have been renamed or removed; close this document."}})})}return s?i.jsxs("div",{style:{position:"relative",display:"flex",flex:1,minHeight:0},children:[i.jsx(H,{documentId:e,sourcePath:r.modulePath,build:s.build,displayName:m?.label??r.storyName,active:t,assetType:"component",...O?{sourceAuthoring:O}:{},cameraDirection:G}),(!m||n)&&i.jsx(S,{testId:"three-story-surface-status",explanation:{tone:"error",title:"Source update failed",description:n??D??"This story is unavailable. The last working view is retained."}})]}):i.jsx("div",{"data-testid":"three-story-document-loading",style:{position:"relative",flex:1,minHeight:0},children:i.jsx(S,{testId:"three-story-surface-status",explanation:W({surface:"Story",rootIds:[`${r.modulePath}#${r.storyName}`],phase:"loading",content:"unknown"})})})}function fe(){l.useSyncExternalStore(C,I),l.useSyncExternalStore(_,x);const e=k();if(!e)return null;const{story:t}=T(e.modulePath,e.storyName),r=t?{...t.args,...e.argOverrides}:{},s=oe(r,de);return i.jsxs("div",{"data-testid":"inspector-story-args-three",style:{pointerEvents:"auto",padding:8,borderBottom:`1px solid ${p.boundary.default}`},children:[i.jsx("div",{style:{fontSize:11,color:p.content.primary,fontWeight:600,marginBottom:4},children:e.storyName}),s.length===0&&i.jsx("div",{style:{fontSize:11,color:p.content.dim},children:t?"This story declares no editable args.":"Story source unavailable."}),s.map(o=>i.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"3px 0"},children:[i.jsx("span",{title:o.label,style:{width:90,flexShrink:0,fontSize:11,color:p.content.muted,overflow:"hidden",textOverflow:"ellipsis"},children:o.label}),o.type==="boolean"?i.jsx(J,{className:"volter-checkbox","data-testid":`three-story-arg-${o.label}`,checked:r[o.label]===!0,onChange:n=>g(e.id,o.label,n.target.checked)}):o.type==="number"?i.jsx(R,{type:"number",className:"volter-input","data-testid":`three-story-arg-${o.label}`,value:r[o.label],onChange:n=>{const u=n.target.value,d=Number.parseFloat(u);g(e.id,o.label,u===""||Number.isNaN(d)?void 0:d)},style:{width:80}}):o.type==="string"?i.jsx(R,{type:"text",className:"volter-input","data-testid":`three-story-arg-${o.label}`,value:r[o.label],onChange:n=>g(e.id,o.label,n.target.value),style:{flex:1,minWidth:0}}):i.jsx("span",{"data-testid":`three-story-arg-${o.label}`,style:{fontSize:11,color:p.content.dim},children:JSON.stringify(r[o.label])})]},o.path))]})}const ye=F();function P(){ye.ensure(e=>{e(z({match:()=>k()!==null,id:Y,title:V,icon:ne,order:B,Section:fe}))})}const Tt="workspace.service";function Et(){return P(),()=>{}}export{Tt as point,Et as start};
@@ -1 +1 @@
1
- import{e as r}from"./story-documents-CYzWYY1o.js";import"./index-ClgrFOcX.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./presentation-DPfnCjNA.js";import"./surface-state-b_H4iOCJ.js";import"./StoryPreviewMount-CyF7FwI7.js";import"./surface-content-Dg9Kkazf.js";const g="workspace.service";function k(){return r(),()=>{}}export{g as point,k as start};
1
+ import{e as r}from"./story-documents-C1hZeYU3.js";import"./index-D9shXtZ9.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./presentation-DxTT40_3.js";import"./surface-state-EsG-yMSi.js";import"./StoryPreviewMount-BONsNxze.js";import"./surface-content-Dg9Kkazf.js";const g="workspace.service";function k(){return r(),()=>{}}export{g as point,k as start};
@@ -1 +1 @@
1
- import{as as p,at as S,au as b,av as v,aw as y}from"./index-ClgrFOcX.js";const f={three:!1,canvas:!1,dom:!1};let t=f,a=0;const n=new Set;let u=!1;function j(){return l(),t}function w(e){return l(),n.add(e),()=>{n.delete(e)}}function l(){u||(u=!0,p(()=>{d()}),d())}function i(e){if(!(e.three===t.three&&e.canvas===t.canvas&&e.dom===t.dom)){t=e;for(const r of n)r()}}function M(e){const r=b({modulePath:e.modulePath,regions:v()});if(r.medium)return r.medium;e.modulePath&&y(e.modulePath,r.reason)}async function d(){const e=++a,r=S().flatMap(s=>s.ok?s.stories.map(o=>({...o,modulePath:s.modulePath})):[]);if(r.length===0)return i(f),t;const c={three:!1,canvas:!1,dom:!1};for(const s of r){const o=M(s);if(o&&(c[o]=!0),e!==a)return t}const{three:m,canvas:h,dom:P}=c;return e!==a||i({three:m,canvas:h,dom:P}),t}export{j as g,w as s};
1
+ import{as as p,at as S,au as b,av as v,aw as y}from"./index-D9shXtZ9.js";const f={three:!1,canvas:!1,dom:!1};let t=f,a=0;const n=new Set;let u=!1;function j(){return l(),t}function w(e){return l(),n.add(e),()=>{n.delete(e)}}function l(){u||(u=!0,p(()=>{d()}),d())}function i(e){if(!(e.three===t.three&&e.canvas===t.canvas&&e.dom===t.dom)){t=e;for(const r of n)r()}}function M(e){const r=b({modulePath:e.modulePath,regions:v()});if(r.medium)return r.medium;e.modulePath&&y(e.modulePath,r.reason)}async function d(){const e=++a,r=S().flatMap(s=>s.ok?s.stories.map(o=>({...o,modulePath:s.modulePath})):[]);if(r.length===0)return i(f),t;const c={three:!1,canvas:!1,dom:!1};for(const s of r){const o=M(s);if(o&&(c[o]=!0),e!==a)return t}const{three:m,canvas:h,dom:P}=c;return e!==a||i({three:m,canvas:h,dom:P}),t}export{j as g,w as s};
@@ -1 +1 @@
1
- import{r as v}from"./index-nmcBqr7Y.js";import{withApplicationCollector as E}from"./canvas-preview-frames-CSCcu2sG.js";import{C as M}from"./crash-null-boundary-v3a0uEgw.js";import{m as b}from"./pixi-story-model-DNkfnWUV.js";import{aA as P}from"./index-ClgrFOcX.js";import{r as S}from"./story-mount-turn-DFRTj5hi.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./index-CHOT9sYh.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";const w=1e4,k=12,I="position:fixed;left:-20000px;top:0;width:512px;height:512px;overflow:hidden;contain:strict;pointer-events:none;visibility:hidden;";function C(t){return S(()=>t(A))}function R(t,c={}){return C(n=>n(t,c))}function _(t){return S(async()=>t.dispose())}async function G(t,c={}){const n=await R(t,c.props??{});try{const o=c.width??128,r=c.height??96;n.app.renderer.render({container:n.stage});const a=n.stage.getBounds(),s=c.layout==="fullscreen",d=8,e=n.app.screen.clone();s||(e.x=a.x-d,e.y=a.y-d,e.width=Math.max(1,a.width+d*2),e.height=Math.max(1,a.height+d*2));const i=o/r;if(!s&&e.width/e.height<i){const l=e.height*i;e.x-=(l-e.width)/2,e.width=l}else if(!s&&e.width/e.height>i){const l=e.width/i;e.y-=(l-e.height)/2,e.height=l}const u=n.app.renderer.background,h=await n.app.renderer.extract.canvas({target:n.stage,frame:e,...s&&u.alpha>0?{clearColor:u.colorRgba}:{}}),m=document.createElement("canvas");m.width=o,m.height=r;const f=m.getContext("2d");if(!f)throw new Error("Canvas story preview could not create a 2D readback context.");const g=Math.min(o/h.width,r/h.height),y=h.width*g,x=h.height*g;return f.drawImage(h,(o-y)/2,(r-x)/2,y,x),m.toDataURL("image/png")}finally{await _(n)}}const p=()=>new Promise(t=>setTimeout(t,0));async function A(t,c={}){typeof t.load=="function"&&await t.load();const n=await P(),o=document.createElement("div");o.setAttribute("style",I),document.body.appendChild(o);let r=null;const a=()=>{r?.unmount(),r=null,o.remove()};try{return await E(async s=>{let d=null;r=n.createRoot(o),r.render(v.createElement(M,{onCaught:h=>{d??=h}},v.createElement(t,c)));for(let h=0;h<k&&!(d||o.querySelector("canvas"));h++)await p();if(d)throw T(d);if(!o.querySelector("canvas"))throw new Error("The story rendered no canvas — it does not mount Pixi content.");const e=Date.now()+w;let i;for(;Date.now()<e;){if(d)throw T(d);if(i??=s[0],i&&b(i.stage))break;await p()}if(!i)throw new Error(`The story rendered a canvas but never initialized a Pixi Application within ${w/1e3}s — it is not a canvas story, or its renderer could not be created here.`);i.stop(),i.ticker.lastTime=0;let u=!1;return{host:o,stage:i.stage,ticker:i.ticker,app:i,dispose(){u||(u=!0,a())}}})}catch(s){throw a(),s}}const D=w;async function J(t,c=Date.now){if(t.length===0)return;const n=new Set,o=t.map(r=>{const a={postrender:()=>{n.add(r)}};return r.renderer?.runners.postrender.add(a),{app:r,observer:a}});try{const r=c()+D;for(;c()<r;){if(t.every(s=>s.stage!==void 0&&b(s.stage)&&n.has(s)))return;await p()}}finally{for(const{app:r,observer:a}of o)r.renderer?.runners.postrender.remove(a)}}function T(t){return new Error(`mountStoryPixi: the story threw while rendering — it does not mount Pixi content, or its component crashed. Original error: ${t instanceof Error?t.message:String(t)}`,{cause:t})}export{J as awaitPixiStoryFrame,G as capturePixiStoryThumbnail,_ as disposeStoryPixi,R as mountStoryPixi,C as withPixiStoryMountTurn};
1
+ import{r as v}from"./index-nmcBqr7Y.js";import{withApplicationCollector as E}from"./canvas-preview-frames-DoDVjE4O.js";import{C as M}from"./crash-null-boundary-v3a0uEgw.js";import{m as b}from"./pixi-story-model-DNkfnWUV.js";import{aA as P}from"./index-D9shXtZ9.js";import{r as S}from"./story-mount-turn-DFRTj5hi.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./index-FWtJb07f.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";const w=1e4,k=12,I="position:fixed;left:-20000px;top:0;width:512px;height:512px;overflow:hidden;contain:strict;pointer-events:none;visibility:hidden;";function C(t){return S(()=>t(A))}function R(t,c={}){return C(n=>n(t,c))}function _(t){return S(async()=>t.dispose())}async function G(t,c={}){const n=await R(t,c.props??{});try{const o=c.width??128,r=c.height??96;n.app.renderer.render({container:n.stage});const a=n.stage.getBounds(),s=c.layout==="fullscreen",d=8,e=n.app.screen.clone();s||(e.x=a.x-d,e.y=a.y-d,e.width=Math.max(1,a.width+d*2),e.height=Math.max(1,a.height+d*2));const i=o/r;if(!s&&e.width/e.height<i){const l=e.height*i;e.x-=(l-e.width)/2,e.width=l}else if(!s&&e.width/e.height>i){const l=e.width/i;e.y-=(l-e.height)/2,e.height=l}const u=n.app.renderer.background,h=await n.app.renderer.extract.canvas({target:n.stage,frame:e,...s&&u.alpha>0?{clearColor:u.colorRgba}:{}}),m=document.createElement("canvas");m.width=o,m.height=r;const f=m.getContext("2d");if(!f)throw new Error("Canvas story preview could not create a 2D readback context.");const g=Math.min(o/h.width,r/h.height),y=h.width*g,x=h.height*g;return f.drawImage(h,(o-y)/2,(r-x)/2,y,x),m.toDataURL("image/png")}finally{await _(n)}}const p=()=>new Promise(t=>setTimeout(t,0));async function A(t,c={}){typeof t.load=="function"&&await t.load();const n=await P(),o=document.createElement("div");o.setAttribute("style",I),document.body.appendChild(o);let r=null;const a=()=>{r?.unmount(),r=null,o.remove()};try{return await E(async s=>{let d=null;r=n.createRoot(o),r.render(v.createElement(M,{onCaught:h=>{d??=h}},v.createElement(t,c)));for(let h=0;h<k&&!(d||o.querySelector("canvas"));h++)await p();if(d)throw T(d);if(!o.querySelector("canvas"))throw new Error("The story rendered no canvas — it does not mount Pixi content.");const e=Date.now()+w;let i;for(;Date.now()<e;){if(d)throw T(d);if(i??=s[0],i&&b(i.stage))break;await p()}if(!i)throw new Error(`The story rendered a canvas but never initialized a Pixi Application within ${w/1e3}s — it is not a canvas story, or its renderer could not be created here.`);i.stop(),i.ticker.lastTime=0;let u=!1;return{host:o,stage:i.stage,ticker:i.ticker,app:i,dispose(){u||(u=!0,a())}}})}catch(s){throw a(),s}}const D=w;async function J(t,c=Date.now){if(t.length===0)return;const n=new Set,o=t.map(r=>{const a={postrender:()=>{n.add(r)}};return r.renderer?.runners.postrender.add(a),{app:r,observer:a}});try{const r=c()+D;for(;c()<r;){if(t.every(s=>s.stage!==void 0&&b(s.stage)&&n.has(s)))return;await p()}}finally{for(const{app:r,observer:a}of o)r.renderer?.runners.postrender.remove(a)}}function T(t){return new Error(`mountStoryPixi: the story threw while rendering — it does not mount Pixi content, or its component crashed. Original error: ${t instanceof Error?t.message:String(t)}`,{cause:t})}export{J as awaitPixiStoryFrame,G as capturePixiStoryThumbnail,_ as disposeStoryPixi,R as mountStoryPixi,C as withPixiStoryMountTurn};
@@ -1 +1 @@
1
- import{bi as P,bj as L,bk as j}from"./index-ClgrFOcX.js";const M=640,R=400;function F(e,t){return`portable-${e}:${t.map(n=>encodeURIComponent(n)).join("/")}`}function N(e){const t=new Map,n=[],u=new Map,r=new Map;for(const o of e){const s=P({modulePath:o.modulePath,...o.title?{title:o.title}:{}}),h=[...s.segments,s.leaf];let a=null;for(let d=0;d<h.length;d++){const p=h.slice(0,d+1),c=d===h.length-1,i=F(c?"component":"folder",p);t.has(i)||(t.set(i,{id:i,label:p.at(-1),role:c?"component":"folder",kind:c?"component":"group",typeLabel:c?"Component":d===0?"Category":"Folder",parentId:a,childIds:[],...c?{secondaryLabel:o.modulePath}:{}}),a?t.get(a)?.childIds.push(i):n.push(i)),a=i}const l=a;t.get(l)?.childIds.push(o.id),u.set(o.id,l);const f=r.get(l);f?f.storyIds.push(o.id):r.set(l,{id:l,label:L(s),storyIds:[o.id]})}return{sections:[...r.values()],nodes:[...t.values()],rootIds:n,storyParentIds:u}}function y(e){return e&&typeof e=="object"?e:null}function v(e){if(typeof e!="string")return null;const t=Number.parseFloat(e);return Number.isFinite(t)&&t>0?t:null}function S(e){const t=y(y(e.viewport)?.options),n={...j};if(!t)return n;for(const[u,r]of Object.entries(t)){const o=y(r),s=y(o?.styles);!o||!s||typeof o.name!="string"||typeof s.width!="string"||typeof s.height!="string"||(n[u]={name:o.name,styles:{width:s.width,height:s.height},...typeof o.type=="string"?{type:o.type}:{}})}return n}function T(e){const t=e.viewport;if(typeof t=="string")return{value:t||null,isRotated:!1};const n=y(t);return{value:typeof n?.value=="string"&&n.value?n.value:null,isRotated:n?.isRotated===!0}}function x(e,t,n,u){const r=e.parameters??{},o=e.globals??{},s=r.layout,h=s==="centered"||s==="fullscreen"||s==="padded"?s:"padded",a=S(r),l=Object.entries(a).flatMap(([m,b])=>{const w=v(b.styles.width),I=v(b.styles.height);return w&&I?[{id:m,label:b.name,width:w,height:I}]:[]}),f=T(o),d=n===void 0?f.value:n,p=l.find(m=>m.id===d),c=p?.width??t?.width??M,i=p?.height??t?.height??R,g=u??f.isRotated;return{layout:h,choices:l,selectedViewportId:p?.id??null,locked:e.viewportLocked===!0,rotated:g,width:g?i:c,height:g?c:i}}function G(e,t=N(e)){return{index:t,resolve:x}}export{N as c,G as s};
1
+ import{bi as P,bj as L,bk as j}from"./index-D9shXtZ9.js";const M=640,R=400;function F(e,t){return`portable-${e}:${t.map(n=>encodeURIComponent(n)).join("/")}`}function N(e){const t=new Map,n=[],u=new Map,r=new Map;for(const o of e){const s=P({modulePath:o.modulePath,...o.title?{title:o.title}:{}}),h=[...s.segments,s.leaf];let a=null;for(let d=0;d<h.length;d++){const p=h.slice(0,d+1),c=d===h.length-1,i=F(c?"component":"folder",p);t.has(i)||(t.set(i,{id:i,label:p.at(-1),role:c?"component":"folder",kind:c?"component":"group",typeLabel:c?"Component":d===0?"Category":"Folder",parentId:a,childIds:[],...c?{secondaryLabel:o.modulePath}:{}}),a?t.get(a)?.childIds.push(i):n.push(i)),a=i}const l=a;t.get(l)?.childIds.push(o.id),u.set(o.id,l);const f=r.get(l);f?f.storyIds.push(o.id):r.set(l,{id:l,label:L(s),storyIds:[o.id]})}return{sections:[...r.values()],nodes:[...t.values()],rootIds:n,storyParentIds:u}}function y(e){return e&&typeof e=="object"?e:null}function v(e){if(typeof e!="string")return null;const t=Number.parseFloat(e);return Number.isFinite(t)&&t>0?t:null}function S(e){const t=y(y(e.viewport)?.options),n={...j};if(!t)return n;for(const[u,r]of Object.entries(t)){const o=y(r),s=y(o?.styles);!o||!s||typeof o.name!="string"||typeof s.width!="string"||typeof s.height!="string"||(n[u]={name:o.name,styles:{width:s.width,height:s.height},...typeof o.type=="string"?{type:o.type}:{}})}return n}function T(e){const t=e.viewport;if(typeof t=="string")return{value:t||null,isRotated:!1};const n=y(t);return{value:typeof n?.value=="string"&&n.value?n.value:null,isRotated:n?.isRotated===!0}}function x(e,t,n,u){const r=e.parameters??{},o=e.globals??{},s=r.layout,h=s==="centered"||s==="fullscreen"||s==="padded"?s:"padded",a=S(r),l=Object.entries(a).flatMap(([m,b])=>{const w=v(b.styles.width),I=v(b.styles.height);return w&&I?[{id:m,label:b.name,width:w,height:I}]:[]}),f=T(o),d=n===void 0?f.value:n,p=l.find(m=>m.id===d),c=p?.width??t?.width??M,i=p?.height??t?.height??R,g=u??f.isRotated;return{layout:h,choices:l,selectedViewportId:p?.id??null,locked:e.viewportLocked===!0,rotated:g,width:g?i:c,height:g?c:i}}function G(e,t=N(e)){return{index:t,resolve:x}}export{N as c,G as s};
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/react-three-rapier.esm-D5svf-ME.js","assets/index-ClgrFOcX.js","assets/index-nmcBqr7Y.js","assets/_commonjsHelpers-D6-XlEtG.js","assets/index-D_NuPfjr.js","assets/jsx-runtime-DPjLkJKQ.js","assets/index-CtzuWnCS.js","assets/index-CinJrH5C.js","assets/index-FUuS4qwW.js","assets/client-DNXj_opT.js","assets/index-CPiRKiDC.css","assets/three.module-BLhyNg0e.js","assets/three.core-3arARmh6.js","assets/events-156d8d12.esm-DmeaOP4r.js","assets/index-DzuOGwVB.js","assets/BufferGeometryUtils-FJZNEiJN.js"])))=>i.map(i=>d[i]);
2
- import{X as U,h6 as W,h7 as z,_ as H}from"./index-ClgrFOcX.js";import{r as F}from"./index-nmcBqr7Y.js";import{a as G}from"./asset-preview-BUpxsHNd.js";import{C as $}from"./crash-null-boundary-v3a0uEgw.js";import{T as q}from"./three.module-BLhyNg0e.js";import{e as Q,f as V}from"./events-156d8d12.esm-DmeaOP4r.js";import{r as X}from"./story-mount-turn-DFRTj5hi.js";import{A as J,ej as K,d7 as Y}from"./three.core-3arARmh6.js";import"./jsx-runtime-DPjLkJKQ.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"./editor-layers-DwaX5UFy.js";import"./workspace-arrangement-86_8Kk5K.js";import"./renderer-ownership-BovSEcLv.js";import"./hierarchy-marks-DeG4E4Ke.js";import"./studio-environment-Bw9zMFE8.js";import"./user-data-DL6HsBPf.js";import"./KTX2Loader-CaqVE6nY.js";import"./GLTFLoader-KeoruJgS.js";import"./BufferGeometryUtils-B22h7jo4.js";import"./environment-Dg-YaLsA.js";import"./RoomEnvironment-BkknvS_I.js";import"./EXRLoader-CITMBvGd.js";import"./HDRLoader-BTGuGhVo.js";import"./bitmap-label-Ct4k6ehY.js";import"./index-DzuOGwVB.js";const Z=1/60,ee=6,te=15,N=1e-4,ne=2,re=10,oe=250,ie=4e3;function g(e){e.updateMatrixWorld(!0);const t=[];return e.traverse(n=>{const r=n.matrixWorld.elements;t.push(r[12],r[13],r[14])}),t}function D(e){let t=0;return e.traverse(()=>{t++}),t}function x(e,t){if(e.length!==t.length)return Number.NaN;let n=0;for(let r=0;r<t.length;r+=3){const o=t[r]-e[r],a=t[r+1]-e[r+1],i=t[r+2]-e[r+2],s=Math.sqrt(o*o+a*a+i*i);if(!Number.isFinite(s))return Number.NaN;s>n&&(n=s)}return n}const se=()=>new Promise(e=>setTimeout(e,0));async function ae(e,t,n){const r=n();let o=D(e),a=r,i=!1;for(;n()-r<ie;){if(n()-a>=oe){i=!0;break}await t();const s=D(e);s!==o&&(o=s,a=n())}return{buildWaitMs:n()-r,buildSettled:i}}function C(e){return{outcome:e,steps:0,lastMotion:0,buildWaitMs:0,buildSettled:!0}}function ce(e){return e.hasPhysicsSubscriber!==!1}async function ue(e,t={}){const n=t.yieldTurn??se,r=t.now??(()=>Date.now()),o=e.update?.bind(e);if(!o)return C("unsupported");if(!ce(e))return C("still");const{buildWaitMs:a,buildSettled:i}=await ae(e.scene,n,r);let s=g(e.scene),l=0,u=0,h=!1,E=0,y="still";for(let d=0;d<te;d++){for(let w=0;w<ee;w++)o(Z),l++;await n();const m=g(e.scene),p=x(s,m);if(s=m,!Number.isFinite(p)){u=0;continue}if(E=p,p>N){h=!0,u=0,y="budget";continue}if(u++,h&&u>=ne){y="rest";break}}for(let d=0;d<re;d++){await n();const m=g(e.scene),p=x(s,m);if(s=m,Number.isFinite(p)&&p<=N)break}return{outcome:y,steps:l,lastMotion:E,buildWaitMs:a,buildSettled:i}}const le={packaged:!1,createElement:F.createElement,createR3FRoot:V,extendThree:Q,three:q};let R=null;async function de(){const e=await import(W);for(const t of["createElement","createR3FRoot","extendThree"])if(typeof e[t]!="function")throw new Error(`The packaged R3F preview runtime did not export ${t} as a function — see vite-plugin-module-doorways.ts.`);if(typeof e.projectThree!="object"||e.projectThree===null)throw new Error("The packaged R3F preview runtime did not export projectThree — see vite-plugin-module-doorways.ts.");return{packaged:!0,createElement:e.createElement,createR3FRoot:e.createR3FRoot,extendThree:e.extendThree,three:e.projectThree}}async function me(){return await U()?(R||(R=de()),R):le}let T=null;function nt(){return T}const v="volter:story-preview-root",pe=1e4;function P(e){if(typeof e=="function"){const t=e;return t.displayName||t.name||""}if(e&&typeof e=="object"){const t=e;return typeof t.displayName=="string"&&t.displayName.length>0?t.displayName:typeof t.name=="string"&&t.name.length>0?t.name:P(t.type??t.render)}return""}function fe(e){const t=e,n=t._reactInternals??t._reactInternalFiber;return n&&typeof n=="object"?n:void 0}function he(e){const t=[P(e.type),P(e.elementType)];if(!(t.includes("RigidBody")||t.includes("InstancedRigidBodies")))return{provider:t.includes("Physics"),body:!1,movingBody:!1};const r=e.memoizedProps&&typeof e.memoizedProps=="object"?e.memoizedProps:{};return{provider:t.includes("Physics"),body:!0,movingBody:r.type!=="fixed"}}function ye(e){const t=e?[e]:[],n=new Set;let r=!1,o=!1,a=!1;for(;t.length>0;){const i=t.pop();if(n.has(i))continue;n.add(i);const s=he(i);r||=s.provider,o||=s.body,a||=s.movingBody,i.child&&t.push(i.child),i.sibling&&t.push(i.sibling)}return r?!o||a:!1}class we extends F.Component{componentDidMount(){this.props.onReport(ye(fe(this)))}render(){return this.props.children??null}}function Ee(e){return e instanceof Error&&e.message.includes("is not part of the THREE namespace")}function L(e){return Ee(e)?!0:e instanceof Error?e.message.includes("Hooks can only be used within the Canvas component")||e.message.includes("useGame: no Game in context"):!1}function rt(e){return L(e)}function I(e){return e instanceof Error&&e.message.includes("useRapier must be used within <Physics")}async function Te(e){try{return(e.packaged?await import("/@id/@react-three/rapier"):await H(()=>import("./react-three-rapier.esm-D5svf-ME.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]))).Physics}catch{return null}}function Se(e,t,n){const r=globalThis,o=r.reportError,a=typeof o=="function"?o.bind(globalThis):i=>{console.error(i)};r.reportError=i=>{L(i)||t&&I(i)||a(i)};try{return n(e)}finally{r.reportError=o}}function be(e){return{domElement:e,xr:{enabled:!1,addEventListener(){},removeEventListener(){},setAnimationLoop(){},getSession(){return null}},shadowMap:{enabled:!1,type:Y},outputColorSpace:K,toneMapping:J,setPixelRatio(){},setSize(){},setClearColor(){},setClearAlpha(){},setViewport(){},setScissor(){},setScissorTest(){},setAnimationLoop(){},clear(){},render(){},compile(){},dispose(){},getPixelRatio(){return 1},getContext(){return null}}}let O=null;function k(e){return X(()=>e(Pe))}function ge(e){O!==e.extendThree&&(O=e.extendThree,e.extendThree(e.three))}async function Re(e,t={}){return k(n=>n(e,t))}function ve(e){return k(async()=>e.dispose())}async function Pe(e,t={}){const n=z();T=null;const r=n?Date.now():0,o=await me(),a=n?Date.now()-r:0,i=n?Date.now():0;typeof e.load=="function"&&await e.load();const s=n?Date.now()-i:0;try{return await j(o,e,t,void 0,{timed:n,runtimeMs:a,loadMs:s})}catch(l){if(!I(l))throw l;const u=await Te(o);if(!u)throw l;return await j(o,e,t,h=>o.createElement(u,{paused:!1},h),{timed:n,runtimeMs:a,loadMs:s})}}async function j(e,t,n,r,o){ge(e);const a=document.createElement("canvas"),i=Se(a,r===void 0,e.createR3FRoot);let s;const l=new Promise(c=>{s=c});await i.configure({gl:(()=>be(a)),frameloop:"never",size:{width:128,height:96,top:0,left:0},onCreated:c=>s(c)});let u=null,h;const E=new Promise((c,b)=>{h=b}),y=c=>{u??=new Error("mountStoryObject3D: the story threw while reconciling into an R3F root — it does not render `three` content (a DOM/React story), or its component crashed. Original error: "+String(c instanceof Error?c.message:c),{cause:c}),h(u)},d=e.createElement(t,n);let m=!1;const p=c=>{m=c};i.render(e.createElement("group",{name:v},e.createElement($,{onCaught:y},e.createElement(we,{onReport:p},r?r(d):d))));const w=o?.timed?Date.now():0;let M;const f=await Promise.race([l,E,new Promise((c,b)=>{M=setTimeout(()=>b(new Error("mountStoryObject3D: onCreated did not fire within 10s — the story never reached its first R3F commit and never threw. Either it is still SUSPENDED on a slow load (a suspending loader with no <Suspense> boundary holds the first commit until its content is ready), or its render is hung.")),pe)})]).catch(c=>{throw o?.timed&&(T={runtimeMs:o.runtimeMs,loadMs:o.loadMs,fiberMs:Date.now()-w,settleMs:0}),i.unmount(),c}).finally(()=>clearTimeout(M));if(u)throw i.unmount(),u;f.clock.autoStart=!1,f.clock.stop();const S=f.scene.getObjectByName(v);if(!S)throw i.unmount(),new Error(`mountStoryObject3D: the story's wrapper group ("${v}") is not in the scene after its first commit — the story rendered nothing mountable.`);const A=o?.timed?Date.now()-w:0,B=o?.timed?Date.now():0;await ue({scene:S,update:c=>{f.advance(f.clock.elapsedTime+Math.min(c,.1),!1)},hasPhysicsSubscriber:m}),o?.timed&&(T={runtimeMs:o.runtimeMs,loadMs:o.loadMs,fiberMs:A,settleMs:Date.now()-B});let _=f.clock.elapsedTime;return{root:S,scene:f.scene,advance(c){!(c>0)||!Number.isFinite(c)||(_+=Math.min(c,.1),f.advance(_,!1))},dispose(){i.unmount()}}}async function ot(e,t={}){const n=await Re(e,t.props??{});try{const r=G(n.root,{width:t.width??128,height:t.height??96,...t.camera===void 0?{}:{camera:t.camera},...t.pose===void 0?{}:{pose:t.pose}}),o=r.views.find(a=>a.view==="perspective")??r.views[0];if(!o)throw new Error("Story preview capture returned no views.");return`data:${o.mimeType};base64,${o.base64}`}finally{await ve(n)}}function it(){return typeof WebGLRenderingContext<"u"&&typeof navigator<"u"&&!navigator.userAgent.toLowerCase().includes("jsdom")}export{v as PREVIEW_ROOT_NAME,ot as captureStoryComponentThumbnail,ve as disposeStoryObject3D,rt as isStoryThreeClassificationRefusal,nt as lastStoryMountPhaseTiming,Re as mountStoryObject3D,it as supportsThreeStoryCapture,k as withStoryMountTurn};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/react-three-rapier.esm-D13B7Exz.js","assets/index-D9shXtZ9.js","assets/index-nmcBqr7Y.js","assets/_commonjsHelpers-D6-XlEtG.js","assets/index-D_NuPfjr.js","assets/jsx-runtime-DPjLkJKQ.js","assets/index-CtzuWnCS.js","assets/index-CinJrH5C.js","assets/index-FUuS4qwW.js","assets/client-DNXj_opT.js","assets/index-CPiRKiDC.css","assets/three.module-BLhyNg0e.js","assets/three.core-3arARmh6.js","assets/events-156d8d12.esm-DmeaOP4r.js","assets/index-DzuOGwVB.js","assets/BufferGeometryUtils-FJZNEiJN.js"])))=>i.map(i=>d[i]);
2
+ import{X as U,h6 as W,h7 as z,_ as H}from"./index-D9shXtZ9.js";import{r as F}from"./index-nmcBqr7Y.js";import{a as G}from"./asset-preview-uRqIcg3G.js";import{C as $}from"./crash-null-boundary-v3a0uEgw.js";import{T as q}from"./three.module-BLhyNg0e.js";import{e as Q,f as V}from"./events-156d8d12.esm-DmeaOP4r.js";import{r as X}from"./story-mount-turn-DFRTj5hi.js";import{A as J,ej as K,d7 as Y}from"./three.core-3arARmh6.js";import"./jsx-runtime-DPjLkJKQ.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"./editor-layers-BVicagU1.js";import"./workspace-arrangement-BOk46mGq.js";import"./renderer-ownership-BovSEcLv.js";import"./hierarchy-marks-Dn7SO2iG.js";import"./studio-environment-CvCEc6PK.js";import"./user-data-DHB4MWum.js";import"./KTX2Loader-CaqVE6nY.js";import"./GLTFLoader-KeoruJgS.js";import"./BufferGeometryUtils-B22h7jo4.js";import"./environment-Dg-YaLsA.js";import"./RoomEnvironment-BkknvS_I.js";import"./EXRLoader-CITMBvGd.js";import"./HDRLoader-BTGuGhVo.js";import"./bitmap-label-Ct4k6ehY.js";import"./index-DzuOGwVB.js";const Z=1/60,ee=6,te=15,N=1e-4,ne=2,re=10,oe=250,ie=4e3;function g(e){e.updateMatrixWorld(!0);const t=[];return e.traverse(n=>{const r=n.matrixWorld.elements;t.push(r[12],r[13],r[14])}),t}function D(e){let t=0;return e.traverse(()=>{t++}),t}function x(e,t){if(e.length!==t.length)return Number.NaN;let n=0;for(let r=0;r<t.length;r+=3){const o=t[r]-e[r],a=t[r+1]-e[r+1],i=t[r+2]-e[r+2],s=Math.sqrt(o*o+a*a+i*i);if(!Number.isFinite(s))return Number.NaN;s>n&&(n=s)}return n}const se=()=>new Promise(e=>setTimeout(e,0));async function ae(e,t,n){const r=n();let o=D(e),a=r,i=!1;for(;n()-r<ie;){if(n()-a>=oe){i=!0;break}await t();const s=D(e);s!==o&&(o=s,a=n())}return{buildWaitMs:n()-r,buildSettled:i}}function C(e){return{outcome:e,steps:0,lastMotion:0,buildWaitMs:0,buildSettled:!0}}function ce(e){return e.hasPhysicsSubscriber!==!1}async function ue(e,t={}){const n=t.yieldTurn??se,r=t.now??(()=>Date.now()),o=e.update?.bind(e);if(!o)return C("unsupported");if(!ce(e))return C("still");const{buildWaitMs:a,buildSettled:i}=await ae(e.scene,n,r);let s=g(e.scene),l=0,u=0,h=!1,E=0,y="still";for(let d=0;d<te;d++){for(let w=0;w<ee;w++)o(Z),l++;await n();const m=g(e.scene),p=x(s,m);if(s=m,!Number.isFinite(p)){u=0;continue}if(E=p,p>N){h=!0,u=0,y="budget";continue}if(u++,h&&u>=ne){y="rest";break}}for(let d=0;d<re;d++){await n();const m=g(e.scene),p=x(s,m);if(s=m,Number.isFinite(p)&&p<=N)break}return{outcome:y,steps:l,lastMotion:E,buildWaitMs:a,buildSettled:i}}const le={packaged:!1,createElement:F.createElement,createR3FRoot:V,extendThree:Q,three:q};let R=null;async function de(){const e=await import(W);for(const t of["createElement","createR3FRoot","extendThree"])if(typeof e[t]!="function")throw new Error(`The packaged R3F preview runtime did not export ${t} as a function — see vite-plugin-module-doorways.ts.`);if(typeof e.projectThree!="object"||e.projectThree===null)throw new Error("The packaged R3F preview runtime did not export projectThree — see vite-plugin-module-doorways.ts.");return{packaged:!0,createElement:e.createElement,createR3FRoot:e.createR3FRoot,extendThree:e.extendThree,three:e.projectThree}}async function me(){return await U()?(R||(R=de()),R):le}let T=null;function nt(){return T}const v="volter:story-preview-root",pe=1e4;function P(e){if(typeof e=="function"){const t=e;return t.displayName||t.name||""}if(e&&typeof e=="object"){const t=e;return typeof t.displayName=="string"&&t.displayName.length>0?t.displayName:typeof t.name=="string"&&t.name.length>0?t.name:P(t.type??t.render)}return""}function fe(e){const t=e,n=t._reactInternals??t._reactInternalFiber;return n&&typeof n=="object"?n:void 0}function he(e){const t=[P(e.type),P(e.elementType)];if(!(t.includes("RigidBody")||t.includes("InstancedRigidBodies")))return{provider:t.includes("Physics"),body:!1,movingBody:!1};const r=e.memoizedProps&&typeof e.memoizedProps=="object"?e.memoizedProps:{};return{provider:t.includes("Physics"),body:!0,movingBody:r.type!=="fixed"}}function ye(e){const t=e?[e]:[],n=new Set;let r=!1,o=!1,a=!1;for(;t.length>0;){const i=t.pop();if(n.has(i))continue;n.add(i);const s=he(i);r||=s.provider,o||=s.body,a||=s.movingBody,i.child&&t.push(i.child),i.sibling&&t.push(i.sibling)}return r?!o||a:!1}class we extends F.Component{componentDidMount(){this.props.onReport(ye(fe(this)))}render(){return this.props.children??null}}function Ee(e){return e instanceof Error&&e.message.includes("is not part of the THREE namespace")}function L(e){return Ee(e)?!0:e instanceof Error?e.message.includes("Hooks can only be used within the Canvas component")||e.message.includes("useGame: no Game in context"):!1}function rt(e){return L(e)}function I(e){return e instanceof Error&&e.message.includes("useRapier must be used within <Physics")}async function Te(e){try{return(e.packaged?await import("/@id/@react-three/rapier"):await H(()=>import("./react-three-rapier.esm-D13B7Exz.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]))).Physics}catch{return null}}function Se(e,t,n){const r=globalThis,o=r.reportError,a=typeof o=="function"?o.bind(globalThis):i=>{console.error(i)};r.reportError=i=>{L(i)||t&&I(i)||a(i)};try{return n(e)}finally{r.reportError=o}}function be(e){return{domElement:e,xr:{enabled:!1,addEventListener(){},removeEventListener(){},setAnimationLoop(){},getSession(){return null}},shadowMap:{enabled:!1,type:Y},outputColorSpace:K,toneMapping:J,setPixelRatio(){},setSize(){},setClearColor(){},setClearAlpha(){},setViewport(){},setScissor(){},setScissorTest(){},setAnimationLoop(){},clear(){},render(){},compile(){},dispose(){},getPixelRatio(){return 1},getContext(){return null}}}let O=null;function k(e){return X(()=>e(Pe))}function ge(e){O!==e.extendThree&&(O=e.extendThree,e.extendThree(e.three))}async function Re(e,t={}){return k(n=>n(e,t))}function ve(e){return k(async()=>e.dispose())}async function Pe(e,t={}){const n=z();T=null;const r=n?Date.now():0,o=await me(),a=n?Date.now()-r:0,i=n?Date.now():0;typeof e.load=="function"&&await e.load();const s=n?Date.now()-i:0;try{return await j(o,e,t,void 0,{timed:n,runtimeMs:a,loadMs:s})}catch(l){if(!I(l))throw l;const u=await Te(o);if(!u)throw l;return await j(o,e,t,h=>o.createElement(u,{paused:!1},h),{timed:n,runtimeMs:a,loadMs:s})}}async function j(e,t,n,r,o){ge(e);const a=document.createElement("canvas"),i=Se(a,r===void 0,e.createR3FRoot);let s;const l=new Promise(c=>{s=c});await i.configure({gl:(()=>be(a)),frameloop:"never",size:{width:128,height:96,top:0,left:0},onCreated:c=>s(c)});let u=null,h;const E=new Promise((c,b)=>{h=b}),y=c=>{u??=new Error("mountStoryObject3D: the story threw while reconciling into an R3F root — it does not render `three` content (a DOM/React story), or its component crashed. Original error: "+String(c instanceof Error?c.message:c),{cause:c}),h(u)},d=e.createElement(t,n);let m=!1;const p=c=>{m=c};i.render(e.createElement("group",{name:v},e.createElement($,{onCaught:y},e.createElement(we,{onReport:p},r?r(d):d))));const w=o?.timed?Date.now():0;let M;const f=await Promise.race([l,E,new Promise((c,b)=>{M=setTimeout(()=>b(new Error("mountStoryObject3D: onCreated did not fire within 10s — the story never reached its first R3F commit and never threw. Either it is still SUSPENDED on a slow load (a suspending loader with no <Suspense> boundary holds the first commit until its content is ready), or its render is hung.")),pe)})]).catch(c=>{throw o?.timed&&(T={runtimeMs:o.runtimeMs,loadMs:o.loadMs,fiberMs:Date.now()-w,settleMs:0}),i.unmount(),c}).finally(()=>clearTimeout(M));if(u)throw i.unmount(),u;f.clock.autoStart=!1,f.clock.stop();const S=f.scene.getObjectByName(v);if(!S)throw i.unmount(),new Error(`mountStoryObject3D: the story's wrapper group ("${v}") is not in the scene after its first commit — the story rendered nothing mountable.`);const A=o?.timed?Date.now()-w:0,B=o?.timed?Date.now():0;await ue({scene:S,update:c=>{f.advance(f.clock.elapsedTime+Math.min(c,.1),!1)},hasPhysicsSubscriber:m}),o?.timed&&(T={runtimeMs:o.runtimeMs,loadMs:o.loadMs,fiberMs:A,settleMs:Date.now()-B});let _=f.clock.elapsedTime;return{root:S,scene:f.scene,advance(c){!(c>0)||!Number.isFinite(c)||(_+=Math.min(c,.1),f.advance(_,!1))},dispose(){i.unmount()}}}async function ot(e,t={}){const n=await Re(e,t.props??{});try{const r=G(n.root,{width:t.width??128,height:t.height??96,...t.camera===void 0?{}:{camera:t.camera},...t.pose===void 0?{}:{pose:t.pose}}),o=r.views.find(a=>a.view==="perspective")??r.views[0];if(!o)throw new Error("Story preview capture returned no views.");return`data:${o.mimeType};base64,${o.base64}`}finally{await ve(n)}}function it(){return typeof WebGLRenderingContext<"u"&&typeof navigator<"u"&&!navigator.userAgent.toLowerCase().includes("jsdom")}export{v as PREVIEW_ROOT_NAME,ot as captureStoryComponentThumbnail,ve as disposeStoryObject3D,rt as isStoryThreeClassificationRefusal,nt as lastStoryMountPhaseTiming,Re as mountStoryObject3D,it as supportsThreeStoryCapture,k as withStoryMountTurn};
@@ -1,2 +1,2 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/spark.module-Byplgb8G.js","assets/three.module-BLhyNg0e.js","assets/three.core-3arARmh6.js","assets/Pass-D1MRT672.js"])))=>i.map(i=>d[i]);
2
- import{_ as g}from"./index-ClgrFOcX.js";import{s as f}from"./user-data-DL6HsBPf.js";import{D as T,K as S,M as E}from"./KTX2Loader-CaqVE6nY.js";import{GLTFLoader as L}from"./GLTFLoader-KeoruJgS.js";import{cc as M,eX as v,fo as p,co as I,K as b}from"./three.core-3arARmh6.js";import{createStandardEnvironment as x}from"./environment-Dg-YaLsA.js";let D="/";function w(t){return t.startsWith("/")||t.startsWith("http")||t.startsWith("data:")||t.startsWith("blob:")?t:D+t}const r=new M;r.setURLModifier(w);new v(r);const h=new T(r);h.setDecoderPath("/jsm/libs/draco/gltf/");const _=new S(r);_.setTranscoderPath("/jsm/libs/basis/");const l=new L(r);l.setDRACOLoader(h);l.setKTX2Loader(_);l.setMeshoptDecoder(E);function N(t){return w(t)}const i=new Map;async function z(t,a){let e=i.get(t);!e&&a&&(e=Promise.resolve(a),i.set(t,e)),e||(e=fetch(N(t)).then(async s=>{if(!s.ok)throw new Error(`Failed to load Gaussian splat: ${t} (${s.status} ${s.statusText})`);return new Uint8Array(await s.arrayBuffer())}),i.set(t,e));try{const[{SplatMesh:s},u]=await Promise.all([g(()=>import("./spark.module-Byplgb8G.js"),__vite__mapDeps([0,1,2,3])),e]),o=new s({fileBytes:u,fileName:t,raycastable:!0});await o.initialized,f(o,"gaussianSplat",{src:t,numSplats:o.numSplats});const d=o.getBoundingBox();if(!d.isEmpty()){const m=d.getSize(new p).multiplyScalar(1.5),y=d.getCenter(new p),n=new I(new b(m.x,m.y,m.z));n.name="__volter_splat_bounds",n.position.copy(y),n.visible=!1,n.raycast=()=>{},f(n,"engineInternal",!0),o.add(n)}return o}catch(s){throw i.delete(t),s}}const O=.45,C=.25,c=new WeakMap;function K(t,a){let e=c.get(a);e||(e=x(a),c.set(a,e)),t.environment=e.texture,t.environmentIntensity=O}function V(t){const a=c.get(t);a&&(c.delete(t),a.dispose())}export{C as S,K as a,V as d,l as g,z as l,N as r};
2
+ import{_ as g}from"./index-D9shXtZ9.js";import{s as f}from"./user-data-DHB4MWum.js";import{D as T,K as S,M as E}from"./KTX2Loader-CaqVE6nY.js";import{GLTFLoader as L}from"./GLTFLoader-KeoruJgS.js";import{cc as M,eX as v,fo as p,co as I,K as b}from"./three.core-3arARmh6.js";import{createStandardEnvironment as x}from"./environment-Dg-YaLsA.js";let D="/";function w(t){return t.startsWith("/")||t.startsWith("http")||t.startsWith("data:")||t.startsWith("blob:")?t:D+t}const r=new M;r.setURLModifier(w);new v(r);const h=new T(r);h.setDecoderPath("/jsm/libs/draco/gltf/");const _=new S(r);_.setTranscoderPath("/jsm/libs/basis/");const l=new L(r);l.setDRACOLoader(h);l.setKTX2Loader(_);l.setMeshoptDecoder(E);function N(t){return w(t)}const i=new Map;async function z(t,a){let e=i.get(t);!e&&a&&(e=Promise.resolve(a),i.set(t,e)),e||(e=fetch(N(t)).then(async s=>{if(!s.ok)throw new Error(`Failed to load Gaussian splat: ${t} (${s.status} ${s.statusText})`);return new Uint8Array(await s.arrayBuffer())}),i.set(t,e));try{const[{SplatMesh:s},u]=await Promise.all([g(()=>import("./spark.module-Byplgb8G.js"),__vite__mapDeps([0,1,2,3])),e]),o=new s({fileBytes:u,fileName:t,raycastable:!0});await o.initialized,f(o,"gaussianSplat",{src:t,numSplats:o.numSplats});const d=o.getBoundingBox();if(!d.isEmpty()){const m=d.getSize(new p).multiplyScalar(1.5),y=d.getCenter(new p),n=new I(new b(m.x,m.y,m.z));n.name="__volter_splat_bounds",n.position.copy(y),n.visible=!1,n.raycast=()=>{},f(n,"engineInternal",!0),o.add(n)}return o}catch(s){throw i.delete(t),s}}const O=.45,C=.25,c=new WeakMap;function K(t,a){let e=c.get(a);e||(e=x(a),c.set(a,e)),t.environment=e.texture,t.environmentIntensity=O}function V(t){const a=c.get(t);a&&(c.delete(t),a.dispose())}export{C as S,K as a,V as d,l as g,z as l,N as r};