@volter/cyclotron 0.5.212 → 0.5.213
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/BUNDLED_NOTICES +375 -2995
- package/README.md +9 -5
- package/dist/.vite/manifest.json +529 -1764
- package/dist/assets/AudioViewer-B5pkIGXS.js +1 -0
- package/dist/assets/ImageViewer-BPVLEEQ2.js +1 -0
- package/dist/assets/JsonAssetDocument-DuVW9del.js +2 -0
- package/dist/assets/ProjectAuthoringBootstrap-CZJz4Svb.js +2 -0
- package/dist/assets/SourceAssetViewer-LwHBW53R.js +1 -0
- package/dist/assets/VideoViewer-Bfjjp4zH.js +1 -0
- package/dist/assets/{client-Dj2xr2fw.js → client-BLXKEWrR.js} +1 -1
- package/dist/assets/{index-Bc73pJIv.js → index-BKjLHm6K.js} +131 -131
- package/dist/assets/index-CJcVFJ-l.css +1 -0
- package/dist/assets/product-CaIfLQVS.js +1 -0
- package/dist/assets/story-capture-C3xmgE62.js +1 -0
- package/dist/assets/volter-sdk-DT0xmh2J.js +1407 -0
- package/dist/assets/volter-sdk-activation-events-B-WERmWU.js +1 -0
- package/dist/assets/volter-sdk-active-project-DvEsy8Q6.js +1 -0
- package/dist/assets/volter-sdk-adapter-editor-config-CQ5V6W-o.js +1 -0
- package/dist/assets/volter-sdk-animation-animation-clock-Cy7j_2qF.js +1 -0
- package/dist/assets/volter-sdk-animation-stage-transport-DoUDq6Gb.js +1 -0
- package/dist/assets/volter-sdk-api-base-Dr1bx5e0.js +1 -0
- package/dist/assets/volter-sdk-api-project-open-D4nPvIPU.js +1 -0
- package/dist/assets/volter-sdk-api-project-source-DoO7WBwQ.js +1 -0
- package/dist/assets/volter-sdk-api-settings-BEHgO5wf.js +1 -0
- package/dist/assets/volter-sdk-asset-capabilities-CGkNwaAe.js +1 -0
- package/dist/assets/volter-sdk-asset-document-write-policy-CzWM1HhK.js +1 -0
- package/dist/assets/volter-sdk-asset-editor-context-BkSK1vL1.js +1 -0
- package/dist/assets/volter-sdk-asset-thumbnails-zSmJgI_x.js +1 -0
- package/dist/assets/volter-sdk-asset-viewers-B-ICvlkR.js +1 -0
- package/dist/assets/volter-sdk-asset-workflow-project-content-C6Ow0R-F.js +1 -0
- package/dist/assets/volter-sdk-authoring-active-adapter-CKuWwxgH.js +1 -0
- package/dist/assets/volter-sdk-authoring-boundary-authoring-adapter-DTwFKBkS.js +1 -0
- package/dist/assets/volter-sdk-authoring-composite-authoring-adapter-iRSbSHpV.js +1 -0
- package/dist/assets/volter-sdk-authoring-consumer-actions-DK9-B-wg.js +1 -0
- package/dist/assets/volter-sdk-authoring-design-time-mount-registry-BQnWcBVe.js +1 -0
- package/dist/assets/volter-sdk-authoring-design-time-roots-BKSmkD7_.js +1 -0
- package/dist/assets/volter-sdk-authoring-layered-pick-C-YvuxEG.js +1 -0
- package/dist/assets/volter-sdk-authoring-no-authoring-adapter-Cv9DD6G0.js +1 -0
- package/dist/assets/volter-sdk-authoring-panel-authoring-BLOrFs8L.js +1 -0
- package/dist/assets/volter-sdk-authoring-react-design-canvas-style-Dr9i31o5.js +1 -0
- package/dist/assets/{volter-sdk-authoring-react-story-board-aeiEUlbU.js → volter-sdk-authoring-react-story-board-BlCQQM-8.js} +1 -1
- package/dist/assets/volter-sdk-authoring-seam-evidence-CjetY_ZG.js +1 -0
- package/dist/assets/volter-sdk-authoring-selection-scope-BxmbC71H.js +1 -0
- package/dist/assets/volter-sdk-authoring-shell-document-ops-DDb8oGx9.js +1 -0
- package/dist/assets/volter-sdk-authoring-stage-root-B50LLhnJ.js +1 -0
- package/dist/assets/volter-sdk-authoring-story-board-chrome-fit-BVV9fbcw.js +1 -0
- package/dist/assets/{volter-sdk-authoring-viewport-tool-context-DzsD6JQH.js → volter-sdk-authoring-viewport-tool-context-cQafPSkT.js} +1 -1
- package/dist/assets/volter-sdk-authoring-viewport-tool-owner-BppqL4f_.js +1 -0
- package/dist/assets/volter-sdk-authoring-world-session-state-BlpdiKod.js +1 -0
- package/dist/assets/volter-sdk-bitmap-label-BbtGPWgP.js +1 -0
- package/dist/assets/{volter-sdk-breakpoint-state-BPnDN_XU.js → volter-sdk-breakpoint-state-DCFuSvgm.js} +1 -1
- package/dist/assets/volter-sdk-bytes-codec-CrNeVT4e.js +1 -0
- package/dist/assets/volter-sdk-cancellation-reason-ByOH3mlF.js +1 -0
- package/dist/assets/volter-sdk-canvas-frames-BU8Rqr4J.js +1 -0
- package/dist/assets/volter-sdk-capture-size-D4cNT2XC.js +1 -0
- package/dist/assets/volter-sdk-chrome-registry-qHUiDauw.js +1 -0
- package/dist/assets/volter-sdk-command-result-text-2wzEhQ5t.js +1 -0
- package/dist/assets/volter-sdk-commands-C4RgHEOa.js +1 -0
- package/dist/assets/volter-sdk-component-board-registry-6gFZBkTP.js +1 -0
- package/dist/assets/volter-sdk-components-AssetEditorShell-CQVLedvW.js +1 -0
- package/dist/assets/volter-sdk-components-InspectorCanvasPreview-CN5ROhNT.js +1 -0
- package/dist/assets/volter-sdk-components-SurfaceStateOverlay-Cc9Ov1Ol.js +1 -0
- package/dist/assets/{volter-sdk-components-AssetEditorShell-BJL1am3b.js → volter-sdk-components-Toolbar-ZoV9Yq_A.js} +1 -1
- package/dist/assets/volter-sdk-components-TransientHint-BML2V3uu.js +1 -0
- package/dist/assets/volter-sdk-components-inspector-preview-section-BhDjhUyz.js +1 -0
- package/dist/assets/volter-sdk-components-use-after-paint-BVSO4qjV.js +1 -0
- package/dist/assets/volter-sdk-components-workspace-history-CThvGfsY.js +1 -0
- package/dist/assets/volter-sdk-content-entry-source-registry-CJLVq3tC.js +1 -0
- package/dist/assets/volter-sdk-contribution-surfaces-CeEDmriM.js +1 -0
- package/dist/assets/volter-sdk-contributions-x6j41XZp.js +1 -0
- package/dist/assets/volter-sdk-coverage-design-time-surfaces-D-tNGazo.js +1 -0
- package/dist/assets/volter-sdk-creation-site-registry-64gyrZPD.js +1 -0
- package/dist/assets/volter-sdk-css-numeric-style-CXeWqAoG.js +1 -0
- package/dist/assets/volter-sdk-declared-tools-BAzHxyUW.js +1 -0
- package/dist/assets/{volter-sdk-document-areas-x47hqeuC.js → volter-sdk-document-areas-4DXjy0el.js} +1 -1
- package/dist/assets/volter-sdk-document-layer-B4VYMPZ9.js +1 -0
- package/dist/assets/volter-sdk-document-open-registry-BLDMaEoN.js +1 -0
- package/dist/assets/volter-sdk-document-play-extension-Dv3fyS6K.js +1 -0
- package/dist/assets/volter-sdk-document-probe-drBhAyza.js +1 -0
- package/dist/assets/volter-sdk-document-stage-sessions-CtI9anAf.js +1 -0
- package/dist/assets/volter-sdk-document-viewports-BO0N7VyN.js +1 -0
- package/dist/assets/volter-sdk-editor-commands-BJ9Otxzu.js +1 -0
- package/dist/assets/volter-sdk-editor-console-BaGgfWmH.js +1 -0
- package/dist/assets/volter-sdk-editor-document-probe-D0ZhaXHx.js +1 -0
- package/dist/assets/volter-sdk-editor-mode-B07FDozS.js +1 -0
- package/dist/assets/volter-sdk-editor-runtime-D00Du7hG.js +1 -0
- package/dist/assets/volter-sdk-editor-server-response-C6kOPAsW.js +1 -0
- package/dist/assets/volter-sdk-editor-session-attribution-CggpIFb4.js +1 -0
- package/dist/assets/volter-sdk-editor-view-DEMsxlaT.js +1 -0
- package/dist/assets/volter-sdk-environment-images-OQtFG1kA.js +1 -0
- package/dist/assets/volter-sdk-extension-script-DanTHcyo.js +1 -0
- package/dist/assets/volter-sdk-eyedropper-session-BfVXtjzc.js +1 -0
- package/dist/assets/volter-sdk-files-file-provider-CXL6oCMd.js +1 -0
- package/dist/assets/volter-sdk-files-project-files-SBAE37py.js +1 -0
- package/dist/assets/volter-sdk-framed-document-capture-7TnE8pn1.js +1 -0
- package/dist/assets/volter-sdk-framed-document-driver-C0K3-SRt.js +1 -0
- package/dist/assets/volter-sdk-hierarchy-component-marks-BmJEMvvO.js +1 -0
- package/dist/assets/volter-sdk-hierarchy-kind-icon-CrwdpecY.js +1 -0
- package/dist/assets/{volter-sdk-hierarchy-node-rows-CNCdvWZM.js → volter-sdk-hierarchy-node-rows-FcK7_ULi.js} +1 -1
- package/dist/assets/{volter-sdk-hierarchy-projection-BXet4MmW.js → volter-sdk-hierarchy-projection-CKzUOZUa.js} +1 -1
- package/dist/assets/volter-sdk-hierarchy-row-media-Czg40Ddi.js +1 -0
- package/dist/assets/volter-sdk-hierarchy-row-model-BGzmcywF.js +1 -0
- package/dist/assets/volter-sdk-hierarchy-rows-VAI0psTR.js +1 -0
- package/dist/assets/volter-sdk-hierarchy-walk-CaVqG7v2.js +1 -0
- package/dist/assets/volter-sdk-history-history-delegate-DH_xBvdh.js +1 -0
- package/dist/assets/volter-sdk-history-history-service-D0n0Gl5Z.js +1 -0
- package/dist/assets/volter-sdk-history-persistence-coordinator-CcywAFdm.js +1 -0
- package/dist/assets/volter-sdk-history-resource-registry-DMTlnwGv.js +1 -0
- package/dist/assets/volter-sdk-history-snapshot-store-BVh1DtBp.js +1 -0
- package/dist/assets/volter-sdk-history-source-history-backend-ulJ-65tX.js +1 -0
- package/dist/assets/volter-sdk-hmr-registration-group-DvMQVKyO.js +1 -0
- package/dist/assets/volter-sdk-hmr-stable-react-context-BMVr5YVk.js +1 -0
- package/dist/assets/volter-sdk-host-D765Py2w.js +1 -0
- package/dist/assets/{volter-sdk-hotkeys-D8xO5kx0.js → volter-sdk-hotkeys-TesTKdAZ.js} +1 -1
- package/dist/assets/{volter-sdk-index-CTFkHN4C.js → volter-sdk-index-BABXozHr.js} +1 -1
- package/dist/assets/volter-sdk-inference-diagnostics-CsDbQ0M5.js +1 -0
- package/dist/assets/volter-sdk-inspection-document-subject-BMRD77Va.js +1 -0
- package/dist/assets/volter-sdk-inspection-group-icons-Wpz-YhkE.js +1 -0
- package/dist/assets/volter-sdk-inspection-model-BVOyStdc.js +1 -0
- package/dist/assets/volter-sdk-inspection-node-media-B8AL8_3F.js +1 -0
- package/dist/assets/volter-sdk-inspection-null-subject-d5bQZCbS.js +1 -0
- package/dist/assets/volter-sdk-inspector-property-grouping-BqrZkwo4.js +1 -0
- package/dist/assets/volter-sdk-inspector-section-registry-C6U15zvC.js +1 -0
- package/dist/assets/volter-sdk-js-heap-CcOnY0kf.js +1 -0
- package/dist/assets/{volter-sdk-keymap-presets-Vq8J3DoG.js → volter-sdk-keymap-presets-CSM-jVcZ.js} +1 -1
- package/dist/assets/volter-sdk-layout-arrangements-DHA3uifx.js +1 -0
- package/dist/assets/volter-sdk-layouts-4v9ECCn9.js +1 -0
- package/dist/assets/volter-sdk-light-explorer-model-CPuZjpiR.js +1 -0
- package/dist/assets/volter-sdk-live-seam-evidence-B_RyDaOp.js +1 -0
- package/dist/assets/volter-sdk-live-session-registry-C6gHroaH.js +1 -0
- package/dist/assets/{volter-sdk-manifest-project-DIThdJ0z.js → volter-sdk-manifest-project-CVVUDDuL.js} +1 -1
- package/dist/assets/volter-sdk-mount-css-scope-DaJoEo3v.js +1 -0
- package/dist/assets/volter-sdk-mount-failure-report-Cm92oiGJ.js +1 -0
- package/dist/assets/volter-sdk-native-selection-style-Bp4IBnA4.js +1 -0
- package/dist/assets/volter-sdk-photograph-notice-C6_gZGpW.js +1 -0
- package/dist/assets/volter-sdk-play-camera-flight-SwlYhOxW.js +1 -0
- package/dist/assets/volter-sdk-product-command-G8kKVJ-i.js +1 -0
- package/dist/assets/volter-sdk-progress-4GGmPvZn.js +1 -0
- package/dist/assets/volter-sdk-project-module-changes-DIrDIHeD.js +1 -0
- package/dist/assets/volter-sdk-project-module-url-BuAUWpus.js +1 -0
- package/dist/assets/volter-sdk-project-output-roots-BON7FOwQ.js +1 -0
- package/dist/assets/{volter-sdk-project-tab-census-Cos8L4lu.js → volter-sdk-project-tab-census-CO06UOh-.js} +1 -1
- package/dist/assets/volter-sdk-renderer-resource-counts-2kLiD8_S.js +1 -0
- package/dist/assets/volter-sdk-scoped-project-css-DA63CYkM.js +1 -0
- package/dist/assets/volter-sdk-selection-CSUq7EiY.js +1 -0
- package/dist/assets/volter-sdk-served-url-B_MypeId.js +1 -0
- package/dist/assets/volter-sdk-settings-settings-provider-CJuWxTB5.js +1 -0
- package/dist/assets/volter-sdk-settings-store-CEFKDj0h.js +1 -0
- package/dist/assets/volter-sdk-shell-store-Cl4sX9p4.js +1 -0
- package/dist/assets/volter-sdk-shell-store-door-DGjybg0J.js +1 -0
- package/dist/assets/volter-sdk-source-conflict-CV8Gk053.js +1 -0
- package/dist/assets/volter-sdk-stage-context-Cb0SaYhi.js +1 -0
- package/dist/assets/volter-sdk-stage-invalidation-VlBciYA0.js +1 -0
- package/dist/assets/volter-sdk-stage-store-registry-BpIy_QKq.js +1 -0
- package/dist/assets/{volter-sdk-startup-failure-CtJyTS-2.js → volter-sdk-startup-failure-C_8H4xuP.js} +1 -1
- package/dist/assets/{volter-sdk-stories-StoryPreviewMount-DjhZUmf-.js → volter-sdk-stories-StoryPreviewMount-BUX42gIR.js} +1 -1
- package/dist/assets/volter-sdk-stories-compose-project-stories-CkSd4Si5.js +1 -0
- package/dist/assets/volter-sdk-stories-scope-Dndn7MD8.js +1 -0
- package/dist/assets/volter-sdk-stories-story-declared-medium-Byi4XWeJ.js +1 -0
- package/dist/assets/volter-sdk-stories-story-dom-runtime-BS1VPvJ6.js +1 -0
- package/dist/assets/volter-sdk-stories-story-grouping-CpNh4cUf.js +1 -0
- package/dist/assets/{volter-sdk-story-document-openers-Df7Tcu2n.js → volter-sdk-story-document-openers-Ba5jQqay.js} +1 -1
- package/dist/assets/volter-sdk-surface-state-BhQ45ars.js +1 -0
- package/dist/assets/volter-sdk-tab-census-D0r0s37y.js +1 -0
- package/dist/assets/volter-sdk-tool-contribution-convention-JCXL6f2w.js +1 -0
- package/dist/assets/volter-sdk-transform-mode-request-Cwk_Kyty.js +1 -0
- package/dist/assets/volter-sdk-transient-hint-BOfFzAV8.js +1 -0
- package/dist/assets/{volter-sdk-types-BOfYN_tN.js → volter-sdk-types-CkT8l5N_.js} +1 -1
- package/dist/assets/volter-sdk-ui-source-file-region-resolver-Cfza3eEl.js +1 -0
- package/dist/assets/{volter-sdk-ui-source-inspect-gofMOHNR.js → volter-sdk-ui-source-inspect-CEjmAN75.js} +1 -1
- package/dist/assets/{volter-sdk-ui-source-source-write-backend-BgVis1yZ.js → volter-sdk-ui-source-source-write-backend-0njgRdI6.js} +1 -1
- package/dist/assets/volter-sdk-ui-source-tier-source-write-backend-CpsxorYU.js +1 -0
- package/dist/assets/volter-sdk-viewport-activation-timings-B3hRTu3A.js +1 -0
- package/dist/assets/volter-sdk-viewport-editor-controls-DDBd-VqO.js +1 -0
- package/dist/assets/volter-sdk-viewport-presentation-DRhiAH1h.js +1 -0
- package/dist/assets/volter-sdk-volter-contributions-nlGXjgJZ.js +1 -0
- package/dist/assets/volter-sdk-wait-until-CMvYQmO8.js +1 -0
- package/dist/assets/volter-sdk-widgets-design-system-BJOyO8sO.js +1 -0
- package/dist/assets/volter-sdk-widgets-editor-appearance-eVtkxsIm.js +1 -0
- package/dist/assets/volter-sdk-widgets-editor-material-BoQP_5SK.js +1 -0
- package/dist/assets/volter-sdk-widgets-icon-set-registry-CP0D74kc.js +1 -0
- package/dist/assets/volter-sdk-widgets-index-De34FpYu.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-AlignmentGrid-_GjMjIGb.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-AssetSlotPicker-B7vN7BEd.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-BorderEditor-E2J8cpyT.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ColorPicker-D6TERGKs.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-CurveEditor-CXR8n-CA.js +1 -0
- package/dist/assets/{volter-sdk-widgets-inspector-widgets-FilterEditor-DKkdim3n.js → volter-sdk-widgets-inspector-widgets-FilterEditor-CDvfWY4Q.js} +1 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-FontPicker-BgpW8FW8.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-GradientEditor-DOOBkXjY.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ScrubbableInput-1NXWR_gB.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ShadowEditor-Cd2-HwFn.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-color-utils-C4HuSjFu.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-curve-utils-DUU2CCtc.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-index-D5kwrOUQ.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-shared-CkFN2SUn.js +1 -0
- package/dist/assets/volter-sdk-widgets-interactive-edit-scope-DynpKMMZ.js +1 -0
- package/dist/assets/{volter-sdk-widgets-palette-colors-Byzw9YHf.js → volter-sdk-widgets-palette-colors-DhL1I42R.js} +1 -1
- package/dist/assets/volter-sdk-widgets-patterns-Dialog-EUtcZi0Y.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-Fields-Bl_eaBej.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-List--NE_1N5-.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-StateSurface-BHXpv7qi.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-Surfaces-BdKa5HGV.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-Tabs-sFV7f1UP.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-Toolbar-CIr5Cs49.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-Tree-C2YHfddf.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-AnchoredMenu-DCclspnW.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Button-B0YxR4ea.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-ColorInput-B1_SLTuc.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-DraftTextInput-CpHzPdt8.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-EditorIcon-Dw4knhya.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-FormControls-BAbRanmE.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-HoverPreview-Cj7jKNd4.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-JsonInput-C0DCI5bE.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Layout-gT4Z6mtt.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Menu-9EESAp9m.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-NumberInput-Dk-5zqJ8.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Panel-BQWJF-Pb.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-SectionHeader-DXvmafCK.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Text-yBrdWK2w.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-ThemeRootPortal-CRhefpUL.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Tooltip-D5Kcb-ZC.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Vec3Input-DiG6PEIe.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-clamp-to-viewport-DhnSxXVK.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-editor-icons-e65mgyAk.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-panel-header-styles-BVL0mN8g.js +1 -0
- package/dist/assets/volter-sdk-widgets-theme-C-_RU9Ov.js +1 -0
- package/dist/assets/volter-sdk-widgets-z-index-CrJJXeKL.js +1 -0
- package/dist/assets/volter-sdk-worker-call-metrics-BTfmngck.js +1 -0
- package/dist/assets/{volter-sdk-workspace-core-utilities-BaAh2Ei8.js → volter-sdk-workspace-core-utilities-DtHGK9PF.js} +1 -1
- package/dist/assets/volter-sdk-workspace-document-ids-COULA7c6.js +1 -0
- package/dist/assets/volter-sdk-workspace-document-registry-6m5csVP7.js +1 -0
- package/dist/assets/volter-sdk-workspace-document-restore-M8ifJMou.js +1 -0
- package/dist/assets/{volter-sdk-workspace-host-commands-72RdJeW4.js → volter-sdk-workspace-host-commands-8Qzej--P.js} +1 -1
- package/dist/assets/volter-sdk-workspace-static-panels-Ckk7qUuS.js +1 -0
- package/dist/assets/volter-sdk-workspace-status-registry-BdU0dZAt.js +1 -0
- package/dist/assets/volter-sdk-workspace-utility-registry-BHxymD2l.js +1 -0
- package/dist/assets/volter-sdk-world-canvas-viewport-state-CHO8s9gE.js +1 -0
- package/dist/assets/volter-sdk-world-pan-state-C-9xgzAh.js +1 -0
- package/dist/assets/volter-sdk-write-pipe-CJHg7J4i.js +1 -0
- package/dist/assets/{volter-shared-fontawesome-B-OhfZs4.js → volter-shared-fontawesome-BEv9WEZj.js} +1 -1
- package/dist/assets/{volter-shared-jsx-dev-runtime-akPt_-OI.js → volter-shared-jsx-dev-runtime-domcKDU3.js} +1 -1
- package/dist/assets/{volter-shared-jsx-runtime-CKQtDN6l.js → volter-shared-jsx-runtime-Cu7pVW-1.js} +1 -1
- package/dist/assets/{volter-shared-react-STQK0zHl.js → volter-shared-react-BLHga76C.js} +1 -1
- package/dist/assets/volter-shared-react-dom-client-vi6WsWu2.js +1 -0
- package/dist/assets/{volter-shared-react-dom-2aA0eyQg.js → volter-shared-react-dom-kzJVGsQd.js} +1 -1
- package/dist/assets/volter-shared-three-BWbOWtM5.js +4220 -0
- package/dist/volter-shared-modules.json +225 -225
- package/dist/volter-shared-react.json +6 -6
- package/dist/volter-shared-three.json +1 -1
- package/dist-node/cli.js +182 -127
- package/dist-node/create.js +18 -21
- package/package.json +16 -16
- package/src/index.ts +1 -2
- package/src/product-id.d.ts +4 -0
- package/starter/AGENTS.md +132 -157
- package/starter/game/levels/MainLevel.tsx +24 -0
- package/starter/game/prefabs/ground/Ground.tsx +24 -0
- package/starter/game/{levels → prefabs/ground}/ground.blend +0 -0
- package/starter/game/prefabs/ground/ground.glb +0 -0
- package/starter/game/prefabs/ground/ground.py +106 -0
- package/dist/assets/AudioViewer-EMpvKC-X.js +0 -1
- package/dist/assets/BVHLoader-CpdLvOHd.js +0 -1
- package/dist/assets/ColladaLoader-D1GMlAA9.js +0 -3
- package/dist/assets/EntityModelDocument-rYF-p8Fo.js +0 -1
- package/dist/assets/EnvironmentAssetDocument-DfykWLLS.js +0 -1
- package/dist/assets/FBXLoader-DKZ0UD3F.js +0 -1
- package/dist/assets/ImageViewer-B0OqXrVU.js +0 -1
- package/dist/assets/InspectorObjectPreview-CwCqdv76.js +0 -1
- package/dist/assets/JsonAssetDocument-PzzxK-v9.js +0 -2
- package/dist/assets/LiveModuleDocument-Bq9J5nMx.js +0 -1
- package/dist/assets/LutAssetDocument-CyzgDCYJ.js +0 -1
- package/dist/assets/MTLLoader-BOaPmAvY.js +0 -2
- package/dist/assets/ModelAssetDocument-8he5iZqV.js +0 -1
- package/dist/assets/OBJLoader-BLg7dmPe.js +0 -5
- package/dist/assets/Object3DDocumentToolbar-CLfEn5i-.js +0 -1
- package/dist/assets/Object3DDocumentToolbar-WK1RY6Gg.css +0 -1
- package/dist/assets/OrbitControls-DxYDYiEc.js +0 -1
- package/dist/assets/PLYLoader-bAg6lYzP.js +0 -2
- package/dist/assets/ProjectAuthoringBootstrap-FVTj-Ag9.js +0 -2
- package/dist/assets/QuarksAssetDocument-DBJQXZ9u.js +0 -2
- package/dist/assets/RectAreaLightUniformsLib-CQLblkbI.js +0 -1
- package/dist/assets/STLLoader-C8jImL_t.js +0 -1
- package/dist/assets/ShaderAssetDocument-C3QolcYl.js +0 -12
- package/dist/assets/SourceAssetViewer-xB9kAyPa.js +0 -1
- package/dist/assets/StageHost-BZBLHaPe.css +0 -1
- package/dist/assets/StageHost-xYvmzMBo.js +0 -1231
- package/dist/assets/TDSLoader-DLNvOc6c.js +0 -1
- package/dist/assets/ToolObject3DPreview-4XgGyXTu.js +0 -2
- package/dist/assets/VideoViewer-BruuQyu3.js +0 -1
- package/dist/assets/ViewportShadingMenu-amXbnRtl.js +0 -1
- package/dist/assets/animation-mixers.service-Ce1JMqA2.js +0 -1
- package/dist/assets/animation-timeline.utility-CzsUvu3v.js +0 -1
- package/dist/assets/asset-preview-CtqauM13.js +0 -4
- package/dist/assets/basis_transcoder-VXdx5NbI.wasm +0 -0
- package/dist/assets/basis_transcoder-o4Hde_L7.js +0 -19
- package/dist/assets/blender-base64-Cxqc4R5f.js +0 -1
- package/dist/assets/blender-display-shaders-BPmHILFy.lut +0 -0
- package/dist/assets/blender-emscripten-engine-Bl_j9xEY.js +0 -26
- package/dist/assets/blender-motion-worker-CtT2cV3V.js +0 -1
- package/dist/assets/blender-node-editor.document-lj1qK5Vu.js +0 -1
- package/dist/assets/blender-outliner-model-BqLWEXta.js +0 -7359
- package/dist/assets/blender-properties-model-DD-2sMKx.js +0 -1
- package/dist/assets/blender-properties-tab-BmudfsC3.js +0 -3
- package/dist/assets/blender-runtime.document-IVSATTnk.js +0 -13
- package/dist/assets/blender-screenshot.service-BRgdtDQC.js +0 -1
- package/dist/assets/blender-timeline.document-8jLaNF31.js +0 -1
- package/dist/assets/blender-uv-editor.document-BVcA7mi2.js +0 -1
- package/dist/assets/blender-version.status-B43F7DzT.js +0 -2
- package/dist/assets/blender-wali-engine-xLHhm0KZ.js +0 -2
- package/dist/assets/blender.environment-CG-pC7sk.js +0 -1
- package/dist/assets/blender.keymap-pRN8nlCs.js +0 -1
- package/dist/assets/blender.page-BYbkmFDE.js +0 -3
- package/dist/assets/blender.status-CcKJxsZ1.js +0 -1
- package/dist/assets/blender.style-DuFonR-j.js +0 -1
- package/dist/assets/chat.page-DzuAKPGP.js +0 -1
- package/dist/assets/city-EkhAOo5s.exr +0 -0
- package/dist/assets/courtyard-DqlebbpC.exr +0 -0
- package/dist/assets/draco_decoder-C32yEggz.wasm +0 -0
- package/dist/assets/draco_decoder-Z1_iN-Ht.wasm +0 -0
- package/dist/assets/draco_decoder-fzg4nYZr.js +0 -34
- package/dist/assets/draco_wasm_wrapper-DxJM36Ib.js +0 -117
- package/dist/assets/draco_wasm_wrapper-fZCQGLGb.js +0 -116
- package/dist/assets/editor-presentation-activity-CqJH4G9t.js +0 -1
- package/dist/assets/forest-P_CQY3b_.exr +0 -0
- package/dist/assets/index-C4uuH2ZE.css +0 -1
- package/dist/assets/index-DlAJXb_f.js +0 -952
- package/dist/assets/interior-Bo_lba15.exr +0 -0
- package/dist/assets/linear-resolve-B-MA5O31.js +0 -400
- package/dist/assets/live-mixers-B-bwLZ7c.js +0 -1
- package/dist/assets/maya.style-C3zx8RC5.js +0 -1
- package/dist/assets/model-inspection-_SFE7cp7.js +0 -1
- package/dist/assets/model.layout-CX-vaeBh.js +0 -1
- package/dist/assets/models.finder-DcOx-jsM.js +0 -1
- package/dist/assets/mtoon0-BNRZGBf8.blend +0 -0
- package/dist/assets/mtoon1-EgrxQlCc.blend +0 -0
- package/dist/assets/mtoon1_outline-xuubMJ8J.blend +0 -0
- package/dist/assets/mtoon_auto_setup-BF1c8USg.blend +0 -0
- package/dist/assets/night-CvV4Gybt.exr +0 -0
- package/dist/assets/object3d-document-session-registry-DvgzaByQ.js +0 -2
- package/dist/assets/output-pass-Bw2FZb8e.js +0 -85
- package/dist/assets/play-mode-BGq1Hn-c.js +0 -1
- package/dist/assets/play.page-DB2UjY0o.js +0 -1
- package/dist/assets/product-OBHh_Udv.js +0 -1
- package/dist/assets/properties-bone-constraints.inspector-NWLfoFX1.js +0 -1
- package/dist/assets/properties-bone.inspector-DybmNdBB.js +0 -1
- package/dist/assets/properties-collection.inspector-Cg7Jq6yG.js +0 -1
- package/dist/assets/properties-constraints.inspector-DY--pvLo.js +0 -1
- package/dist/assets/properties-data.inspector-CP1lurLb.js +0 -1
- package/dist/assets/properties-material.inspector-K8Qx5wr9.js +0 -1
- package/dist/assets/properties-modifiers.inspector-DOfP-8mX.js +0 -1
- package/dist/assets/properties-object.inspector-sqx6qMyu.js +0 -1
- package/dist/assets/properties-output.inspector-CUYUEC6S.js +0 -1
- package/dist/assets/properties-particles.inspector-oAWorORY.js +0 -1
- package/dist/assets/properties-physics.inspector-CQIHdcOy.js +0 -1
- package/dist/assets/properties-render.inspector-XTzdYo4u.js +0 -1
- package/dist/assets/properties-scene.inspector-BytOBuw9.js +0 -1
- package/dist/assets/properties-texture.inspector-2WNelhHG.js +0 -1
- package/dist/assets/properties-view-layer.inspector-DVSdqosc.js +0 -1
- package/dist/assets/properties-world.inspector-CHHm7g3j.js +0 -1
- package/dist/assets/regions-BlV6hTFd.js +0 -1
- package/dist/assets/sculpt.layout-BkvEflSA.js +0 -1
- package/dist/assets/session-addons-KcG0o7Xc.js +0 -76898
- package/dist/assets/shading.layout-V9LTFaVk.js +0 -1
- package/dist/assets/sky-precompute-worker-CPGW9t_C.js +0 -1
- package/dist/assets/spark.module-Cc-ZVx5e.js +0 -12120
- package/dist/assets/stage-keyboard-Rgvt63qI.js +0 -1
- package/dist/assets/stage-overlay-set-juTRuk99.js +0 -1
- package/dist/assets/stage-presence-markers-XsGUs3S-.js +0 -1
- package/dist/assets/stage-transform-tools-BE7m4omf.js +0 -1
- package/dist/assets/standard-viewport-dressing-asIXnD-w.js +0 -24
- package/dist/assets/std-scene-level-DeiReu6Z.js +0 -13
- package/dist/assets/std-scene.document-DyWMJhxA.js +0 -1
- package/dist/assets/story-capture-Y8_YS5DC.js +0 -1
- package/dist/assets/studio-CysTBGIb.exr +0 -0
- package/dist/assets/substance.style-CoQdG-kF.js +0 -1
- package/dist/assets/sunrise-Dj0psFrf.exr +0 -0
- package/dist/assets/sunset-Bw3x2Bot.exr +0 -0
- package/dist/assets/texture.layout-DASpHVht.js +0 -1
- package/dist/assets/three.module-JoAAxMWl.js +0 -4220
- package/dist/assets/three.page-Dy2q5JEV.js +0 -2
- package/dist/assets/transparent_z_write-xIRcVb2w.blend +0 -0
- package/dist/assets/transport-strip-cKO8FHd1.js +0 -1
- package/dist/assets/uv-editing.layout-CF_54oSA.js +0 -1
- package/dist/assets/volter-sdk-D8o6TU4A.js +0 -1407
- package/dist/assets/volter-sdk-activation-events-DVerKSly.js +0 -1
- package/dist/assets/volter-sdk-active-project-f6toeBI4.js +0 -1
- package/dist/assets/volter-sdk-adapter-editor-config-DpARQ4TT.js +0 -1
- package/dist/assets/volter-sdk-animation-animation-clock-BGyYYQu-.js +0 -1
- package/dist/assets/volter-sdk-animation-stage-transport-DWmyow46.js +0 -1
- package/dist/assets/volter-sdk-api-base-jDs2XVgE.js +0 -1
- package/dist/assets/volter-sdk-api-project-open-BAXokZLA.js +0 -1
- package/dist/assets/volter-sdk-api-project-source-D6FB4SmO.js +0 -1
- package/dist/assets/volter-sdk-api-settings-DqgndoPA.js +0 -1
- package/dist/assets/volter-sdk-asset-capabilities-B5mXIYBM.js +0 -1
- package/dist/assets/volter-sdk-asset-document-write-policy-B5aaFAwu.js +0 -1
- package/dist/assets/volter-sdk-asset-editor-context-BjtZQVgF.js +0 -1
- package/dist/assets/volter-sdk-asset-thumbnails-CROlpqPM.js +0 -1
- package/dist/assets/volter-sdk-asset-viewers-BejvElAX.js +0 -1
- package/dist/assets/volter-sdk-asset-workflow-project-content-D8h-TsJc.js +0 -1
- package/dist/assets/volter-sdk-authoring-active-adapter-DhKlZbyW.js +0 -1
- package/dist/assets/volter-sdk-authoring-boundary-authoring-adapter-xlppcGid.js +0 -1
- package/dist/assets/volter-sdk-authoring-composite-authoring-adapter-BfalSuB8.js +0 -1
- package/dist/assets/volter-sdk-authoring-consumer-actions-Hl6xkGAq.js +0 -1
- package/dist/assets/volter-sdk-authoring-design-time-mount-registry-2ZssbtYd.js +0 -1
- package/dist/assets/volter-sdk-authoring-design-time-roots-BNNZdEog.js +0 -1
- package/dist/assets/volter-sdk-authoring-layered-pick-AsUoH85M.js +0 -1
- package/dist/assets/volter-sdk-authoring-no-authoring-adapter-BX6sVPQX.js +0 -1
- package/dist/assets/volter-sdk-authoring-panel-authoring-BRs7fYSJ.js +0 -1
- package/dist/assets/volter-sdk-authoring-react-design-canvas-style-CdjO9_22.js +0 -1
- package/dist/assets/volter-sdk-authoring-seam-evidence-D58d2whR.js +0 -1
- package/dist/assets/volter-sdk-authoring-selection-scope-tqpilIPR.js +0 -1
- package/dist/assets/volter-sdk-authoring-shell-document-ops-ryosWWqt.js +0 -1
- package/dist/assets/volter-sdk-authoring-stage-root-yn7zP1QC.js +0 -1
- package/dist/assets/volter-sdk-authoring-story-board-chrome-fit-DgAAtVo8.js +0 -1
- package/dist/assets/volter-sdk-authoring-viewport-tool-owner-zIgbNhiQ.js +0 -1
- package/dist/assets/volter-sdk-authoring-world-session-state-DriMgIzp.js +0 -1
- package/dist/assets/volter-sdk-bitmap-label-Cwzw278F.js +0 -1
- package/dist/assets/volter-sdk-bytes-codec-CF2kvi68.js +0 -1
- package/dist/assets/volter-sdk-cancellation-reason-BQvS02ja.js +0 -1
- package/dist/assets/volter-sdk-canvas-frames-BkjDC0or.js +0 -1
- package/dist/assets/volter-sdk-capture-size-B3uOMPdw.js +0 -1
- package/dist/assets/volter-sdk-chrome-registry-Be1q89aJ.js +0 -1
- package/dist/assets/volter-sdk-command-result-text-DdPWoVLu.js +0 -1
- package/dist/assets/volter-sdk-commands-DI54EGoY.js +0 -1
- package/dist/assets/volter-sdk-component-board-registry-DtTf1V5m.js +0 -1
- package/dist/assets/volter-sdk-components-InspectorCanvasPreview-DpOxql_B.js +0 -1
- package/dist/assets/volter-sdk-components-SurfaceStateOverlay-BQ9KTVV1.js +0 -1
- package/dist/assets/volter-sdk-components-Toolbar-C6bwDRIc.js +0 -1
- package/dist/assets/volter-sdk-components-TransientHint-D3wtJ4fg.js +0 -1
- package/dist/assets/volter-sdk-components-inspector-preview-section-D1DnmKLE.js +0 -1
- package/dist/assets/volter-sdk-components-use-after-paint-ZgZgfmSR.js +0 -1
- package/dist/assets/volter-sdk-components-workspace-history-IZTWOoYh.js +0 -1
- package/dist/assets/volter-sdk-content-entry-source-registry-DV4a0g9R.js +0 -1
- package/dist/assets/volter-sdk-contribution-surfaces-BAzaKN1S.js +0 -1
- package/dist/assets/volter-sdk-contributions-D2D_badr.js +0 -1
- package/dist/assets/volter-sdk-coverage-design-time-surfaces-WtyoVY81.js +0 -1
- package/dist/assets/volter-sdk-creation-site-registry-DEJua1VB.js +0 -1
- package/dist/assets/volter-sdk-css-numeric-style-D1aEQUuP.js +0 -1
- package/dist/assets/volter-sdk-declared-tools-bEg2ZQju.js +0 -1
- package/dist/assets/volter-sdk-document-open-registry-BUdLp-BZ.js +0 -1
- package/dist/assets/volter-sdk-document-play-extension-BdtD2FcX.js +0 -1
- package/dist/assets/volter-sdk-document-probe-CvSMoXNj.js +0 -1
- package/dist/assets/volter-sdk-document-stage-sessions-BHE1T4gT.js +0 -1
- package/dist/assets/volter-sdk-document-viewports-BJqFXfe4.js +0 -1
- package/dist/assets/volter-sdk-editor-commands-CsYQVabs.js +0 -1
- package/dist/assets/volter-sdk-editor-console-lUTMRzeI.js +0 -1
- package/dist/assets/volter-sdk-editor-document-probe-BHRNXR9L.js +0 -1
- package/dist/assets/volter-sdk-editor-mode-BgYsrjin.js +0 -1
- package/dist/assets/volter-sdk-editor-runtime-CTy0Dw7-.js +0 -1
- package/dist/assets/volter-sdk-editor-server-response-oN9Horql.js +0 -1
- package/dist/assets/volter-sdk-editor-session-attribution-Ddoo0-e6.js +0 -1
- package/dist/assets/volter-sdk-editor-view-DEdcNl3N.js +0 -1
- package/dist/assets/volter-sdk-environment-images-Cbyno2vh.js +0 -1
- package/dist/assets/volter-sdk-extension-script-eemVEaFY.js +0 -1
- package/dist/assets/volter-sdk-eyedropper-session-BL5ceME-.js +0 -1
- package/dist/assets/volter-sdk-files-file-provider-D1vbGyMw.js +0 -1
- package/dist/assets/volter-sdk-files-project-files-CP9k503M.js +0 -1
- package/dist/assets/volter-sdk-framed-document-capture-DmqG4gUx.js +0 -1
- package/dist/assets/volter-sdk-framed-document-driver-B1ZAcb9l.js +0 -1
- package/dist/assets/volter-sdk-hierarchy-component-marks-DjtdLv04.js +0 -1
- package/dist/assets/volter-sdk-hierarchy-kind-icon-Dwlq9_xw.js +0 -1
- package/dist/assets/volter-sdk-hierarchy-row-media-CnFXPw4O.js +0 -1
- package/dist/assets/volter-sdk-hierarchy-row-model-TWxtUUdN.js +0 -1
- package/dist/assets/volter-sdk-hierarchy-rows-3Hl6K3Br.js +0 -1
- package/dist/assets/volter-sdk-hierarchy-walk-DvIomDWH.js +0 -1
- package/dist/assets/volter-sdk-history-history-delegate-RfZBUw9Y.js +0 -1
- package/dist/assets/volter-sdk-history-history-service-BWYajIYW.js +0 -1
- package/dist/assets/volter-sdk-history-persistence-coordinator-CmebAufQ.js +0 -1
- package/dist/assets/volter-sdk-history-resource-registry-CgjY-ErS.js +0 -1
- package/dist/assets/volter-sdk-history-snapshot-store-6Cq4Qau6.js +0 -1
- package/dist/assets/volter-sdk-history-source-history-backend-CilZiNDq.js +0 -1
- package/dist/assets/volter-sdk-hmr-registration-group-idNaexWq.js +0 -1
- package/dist/assets/volter-sdk-hmr-stable-react-context-DhY9rjD6.js +0 -1
- package/dist/assets/volter-sdk-host-BcQCyyIe.js +0 -1
- package/dist/assets/volter-sdk-inference-diagnostics-c4Aju1Jg.js +0 -1
- package/dist/assets/volter-sdk-inspection-document-subject-i64BmR5X.js +0 -1
- package/dist/assets/volter-sdk-inspection-group-icons-CWwhjZWt.js +0 -1
- package/dist/assets/volter-sdk-inspection-model-BgZVa_7l.js +0 -1
- package/dist/assets/volter-sdk-inspection-node-media-DNYb7ZDG.js +0 -1
- package/dist/assets/volter-sdk-inspection-null-subject-hK6kZbB7.js +0 -1
- package/dist/assets/volter-sdk-inspector-property-grouping-B-4_nVMm.js +0 -1
- package/dist/assets/volter-sdk-inspector-section-registry-DIYAa_rQ.js +0 -1
- package/dist/assets/volter-sdk-js-heap-DDws540T.js +0 -1
- package/dist/assets/volter-sdk-layout-arrangements-DdjnA7ET.js +0 -1
- package/dist/assets/volter-sdk-layouts-DcV6NQNu.js +0 -1
- package/dist/assets/volter-sdk-light-explorer-model-BoB1GjBo.js +0 -1
- package/dist/assets/volter-sdk-live-seam-evidence-BOvNn-o8.js +0 -1
- package/dist/assets/volter-sdk-live-session-registry--ftGWuRg.js +0 -1
- package/dist/assets/volter-sdk-mount-css-scope-BTi-3JA9.js +0 -1
- package/dist/assets/volter-sdk-mount-failure-report-BeR90-6n.js +0 -1
- package/dist/assets/volter-sdk-native-selection-style-70aZpb0m.js +0 -1
- package/dist/assets/volter-sdk-photograph-notice-BwuWgyiq.js +0 -1
- package/dist/assets/volter-sdk-play-camera-flight-CaSiTxDt.js +0 -1
- package/dist/assets/volter-sdk-product-command-Cf1utO0M.js +0 -1
- package/dist/assets/volter-sdk-project-module-changes-CIKyvjy2.js +0 -1
- package/dist/assets/volter-sdk-project-module-url-XzZmS9zs.js +0 -1
- package/dist/assets/volter-sdk-project-output-roots-B4bC82T9.js +0 -1
- package/dist/assets/volter-sdk-renderer-resource-counts-S3R39qoy.js +0 -1
- package/dist/assets/volter-sdk-scoped-project-css-Ch7LkU2q.js +0 -1
- package/dist/assets/volter-sdk-selection-C2gFhPip.js +0 -1
- package/dist/assets/volter-sdk-served-url-DxzhEpXR.js +0 -1
- package/dist/assets/volter-sdk-serving-engine-BclAA7ZZ.js +0 -1
- package/dist/assets/volter-sdk-settings-settings-provider-DGc5Xf46.js +0 -1
- package/dist/assets/volter-sdk-settings-store-Bmx-a8f0.js +0 -1
- package/dist/assets/volter-sdk-shell-store-door-CQlHDF_i.js +0 -1
- package/dist/assets/volter-sdk-shell-store-e-X3-CSz.js +0 -1
- package/dist/assets/volter-sdk-source-conflict-DEn0Z5Vq.js +0 -1
- package/dist/assets/volter-sdk-stage-context-CwBngGWz.js +0 -1
- package/dist/assets/volter-sdk-stage-invalidation-Bt1Gs-b2.js +0 -1
- package/dist/assets/volter-sdk-stage-store-registry-DtSMhopZ.js +0 -1
- package/dist/assets/volter-sdk-stories-compose-project-stories-DfgTy2Bp.js +0 -1
- package/dist/assets/volter-sdk-stories-scope-4lTT6I0H.js +0 -1
- package/dist/assets/volter-sdk-stories-story-declared-medium-BFcKINTP.js +0 -1
- package/dist/assets/volter-sdk-stories-story-dom-runtime-wAz1MhyJ.js +0 -1
- package/dist/assets/volter-sdk-stories-story-grouping-bVoaiX0-.js +0 -1
- package/dist/assets/volter-sdk-surface-keyboard-5u3olsPL.js +0 -1
- package/dist/assets/volter-sdk-surface-state-F5vfsPyq.js +0 -1
- package/dist/assets/volter-sdk-tab-census-B95O0nem.js +0 -1
- package/dist/assets/volter-sdk-tool-contribution-convention-k_AVbxWl.js +0 -1
- package/dist/assets/volter-sdk-transform-mode-request-CKhq0gIu.js +0 -1
- package/dist/assets/volter-sdk-transient-hint-DQMQ2_Y5.js +0 -1
- package/dist/assets/volter-sdk-ui-source-file-region-resolver-2Gw755Lw.js +0 -1
- package/dist/assets/volter-sdk-ui-source-tier-source-write-backend-BsEnWjJv.js +0 -1
- package/dist/assets/volter-sdk-viewport-activation-timings--7x_AkVR.js +0 -1
- package/dist/assets/volter-sdk-viewport-editor-controls-CFuNGxo6.js +0 -1
- package/dist/assets/volter-sdk-viewport-presentation-CoiYwzFE.js +0 -1
- package/dist/assets/volter-sdk-volter-contributions-DjgbZdIJ.js +0 -1
- package/dist/assets/volter-sdk-wait-until-DRdtM37d.js +0 -1
- package/dist/assets/volter-sdk-widgets-design-system-CPmOMXke.js +0 -1
- package/dist/assets/volter-sdk-widgets-editor-appearance-B4Q93899.js +0 -1
- package/dist/assets/volter-sdk-widgets-editor-material-C6dqUruc.js +0 -1
- package/dist/assets/volter-sdk-widgets-icon-set-registry-BOtjeU-M.js +0 -1
- package/dist/assets/volter-sdk-widgets-index-C2FSk2KK.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-AlignmentGrid-ClaWmFsj.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-AssetSlotPicker-DIoRDT6D.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-BorderEditor-BcsoJNaT.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ColorPicker-p_xfUT04.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-CurveEditor-RbGdt95N.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-FontPicker-DxdmydaC.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-GradientEditor-DZ0Z3l2P.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ScrubbableInput-Byy_M7hB.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ShadowEditor-C9aPdbrZ.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-color-utils-BJStispK.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-curve-utils-C_5eRE_F.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-index-BA3S0eIV.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-shared-DHHUQexs.js +0 -1
- package/dist/assets/volter-sdk-widgets-interactive-edit-scope-CjuUPrEv.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Dialog-CQggdCbk.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Fields-D38At0E9.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-List-ewRDByTO.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-StateSurface-C8YqnN-5.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Surfaces-BjFrm6Mc.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Tabs-JZq1ce4h.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Toolbar-Bf61fc1T.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Tree-CwuVbaxj.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-AnchoredMenu-Ch2ujeLH.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Button-d2WNMADR.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-ColorInput-DP0WkwNs.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-DraftTextInput-D1g1A89b.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-EditorIcon-DAjALCvl.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-FormControls-KBDCYHsT.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-HoverPreview-D2qUt6_z.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-JsonInput-DLs3kN1L.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Layout-DshSsm_4.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Menu-Ch-3iDys.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-NumberInput-pdAN4aF3.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Panel-BNFSUDwP.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-SectionHeader-5Hv-rso1.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Text-CtWC8t_L.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-ThemeRootPortal-h0iinIvj.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Tooltip-Cllx19nM.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Vec3Input-CurGarFa.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-clamp-to-viewport-0YxAdd5O.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-editor-icons-ExQE8_SP.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-panel-header-styles-DGmxyx4E.js +0 -1
- package/dist/assets/volter-sdk-widgets-theme-DOfZnIVM.js +0 -1
- package/dist/assets/volter-sdk-widgets-z-index-BpB2pf-w.js +0 -1
- package/dist/assets/volter-sdk-worker-call-metrics-Cdo-WjAp.js +0 -1
- package/dist/assets/volter-sdk-workspace-document-ids-CWVlaP7n.js +0 -1
- package/dist/assets/volter-sdk-workspace-document-registry-DoKaj8Fe.js +0 -1
- package/dist/assets/volter-sdk-workspace-document-restore-BOPAH61D.js +0 -1
- package/dist/assets/volter-sdk-workspace-static-panels-DZr1Q4n1.js +0 -1
- package/dist/assets/volter-sdk-workspace-status-registry-pIvpW3QR.js +0 -1
- package/dist/assets/volter-sdk-workspace-utility-registry-BRzyLcLs.js +0 -1
- package/dist/assets/volter-sdk-world-canvas-viewport-state-DeMws4Bu.js +0 -1
- package/dist/assets/volter-sdk-world-pan-state-Dpul1S4k.js +0 -1
- package/dist/assets/volter-sdk-write-pipe-vbjHAGKf.js +0 -1
- package/dist/assets/volter-shared-react-dom-client-B6uCXsbq.js +0 -1
- package/dist/assets/volter-shared-three-DSLGcAKx.js +0 -1
- package/dist/assets/worker-DeeaIXW_.js +0 -10
- package/src/contributions.d.ts +0 -9
- package/starter/game/client/index.tsx +0 -52
- package/starter/game/levels/GroundEnvironment.tsx +0 -15
- package/starter/game/levels/GroundLevel.tsx +0 -35
- package/starter/game/levels/ground.canvas.ts +0 -11
- package/starter/game/levels/ground.glb +0 -0
- package/starter/game/levels/ground.py +0 -142
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{ir as m,gV as r,c7 as f,c8 as V,hf as x,az as v,gU as S,ae as y,ed as P,fg as L,kD as T,r as p}from"./volter-sdk-D8o6TU4A.js";import{o as k}from"./object3d-document-session-registry-DvgzaByQ.js";function O(){const e=v();return e?k(e):null}function n(e,i){const o=O();o?o.setMode(i):e.setShadingMode(i)}function M(e){const i=[{id:"mode.select",label:"Select Tool (no gizmo)",shortcut:"transform.select",execute:()=>r(e.shell,"select")},{id:"mode.combined",label:"Transform Mode (all handles)",shortcut:"transform.combined",execute:()=>r(e.shell,"combined")},{id:"mode.translate",label:"Translate Mode",shortcut:"transform.translate",execute:()=>r(e.shell,"translate")},{id:"mode.rotate",label:"Rotate Mode",shortcut:"transform.rotate",execute:()=>r(e.shell,"rotate")},{id:"mode.scale",label:"Scale Mode",shortcut:"transform.scale",execute:()=>r(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=v();l&&f(l)&&V(l,!x(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:()=>n(e,"solid")},{id:"shading.clay",label:"Solid Shading",execute:()=>n(e,"clay")},{id:"shading.wireframe",label:"Wireframe Shading",execute:()=>n(e,"wireframe")},{id:"shading.unlit",label:"Unlit Shading",execute:()=>n(e,"unlit")},{id:"shading.normals",label:"Normal Shading",execute:()=>n(e,"normals")},{id:"shading.overdraw",label:"Overdraw Shading",execute:()=>n(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 m({actions:()=>i})}function z(e,i,o){const{keyboard:l}=S(),s=t=>()=>{i.isFlying||r(e.shell,t)},g=l.bindActions([{id:"transform.select",run:s("select")},{id:"transform.combined",run:s("combined")},{id:"transform.translate",run:s("translate")},{id:"transform.rotate",run:s("rotate")},{id:"transform.scale",run:s("scale")},{id:"viewport.toggleSnap",run:()=>{e.shell.toggleSnap();const{translate:t,rotate:a,scale:b}=e.shell.snapValues,h=`${l.shortcutFor("viewport.toggleSnap")??""} toggles; hold Ctrl while dragging to snap once`;y(e.shell.snapEnabled?`Snap on — ${t} units, ${a}°, ×${b} (${h})`:`Snap off (${h})`)}},{id:"viewport.frameSelection",run:()=>e.shell.focusOnSelection()},{id:"viewport.cyclePivot",run:()=>{const t=["active-element","median-point","individual-origins"],a=t.indexOf(e.shell.pivotMode);e.shell.setPivotMode(t[(a+1)%t.length])}},{id:"view.top",run:()=>e.shell.setViewPreset("top")},{id:"view.front",run:()=>e.shell.setViewPreset("front")},{id:"view.right",run:()=>e.shell.setViewPreset("right")},{id:"view.bottom",run:()=>e.shell.setViewPreset("bottom")},{id:"view.back",run:()=>e.shell.setViewPreset("back")},{id:"view.left",run:()=>e.shell.setViewPreset("left")},{id:"view.orbitLeft",run:()=>e.shell.stepView("orbit-left")},{id:"view.orbitRight",run:()=>e.shell.stepView("orbit-right")},{id:"view.orbitUp",run:()=>e.shell.stepView("orbit-up")},{id:"view.orbitDown",run:()=>e.shell.stepView("orbit-down")},{id:"view.opposite",run:()=>e.shell.stepView("opposite")},{id:"view.rollLeft",run:()=>e.shell.stepView("roll-left")},{id:"view.rollRight",run:()=>e.shell.stepView("roll-right")},{id:"view.all",run:()=>e.shell.frameAll()},{id:"view.zoomIn",run:()=>e.shell.zoomView(1)},{id:"view.zoomOut",run:()=>e.shell.zoomView(-1)},{id:"view.perspective",run:()=>e.shell.setViewPreset("perspective")},{id:"view.projection",run:()=>e.shell.toggleProjection()},{id:"view.camera",run:()=>e.shell.toggleCameraView()},{id:"viewport.snapToFloor",run:()=>i.snapSelectionToFloor()}]),c=()=>L("viewport");o.addEventListener("pointerdown",c),P();const d=t=>l.chordsFor("viewport.vertexSnapHold").some(a=>a.key===t.key.toLowerCase()),w=t=>{if(d(t)&&!t.metaKey&&!t.ctrlKey&&!t.repeat){if(T()!=="viewport"||t.target instanceof HTMLInputElement||t.target instanceof HTMLTextAreaElement)return;e.setVertexSnapActive(!0),i.activateVertexSnap()}},u=t=>{d(t)&&!t.metaKey&&!t.ctrlKey&&(e.setVertexSnapActive(!1),i.deactivateVertexSnap())};return window.addEventListener("keydown",w),window.addEventListener("keyup",u),()=>{g(),o.removeEventListener("pointerdown",c),window.removeEventListener("keydown",w),window.removeEventListener("keyup",u)}}function R({stage:e}){return p.useEffect(()=>z(e.store,e.viewport,e.canvas),[e.store,e.viewport,e.canvas]),p.useEffect(()=>M(e.store),[e.store]),null}export{R as StageKeyboardBinding};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{kG as j,r as t,j as e,en as L,gp as R,am as v,t as f,kH as A,bS as k,eu as E,ev as V,ew as T,cx as D,h3 as M,h4 as b,hf as N,eJ as H,kI as I,gX as U,hj as C,cF as F,cf as z,kJ as $,c8 as G,eK as W,kK as _,kL as q,c6 as J,eB as K,k4 as X,kM as Z,dM as Q,hh as Y}from"./volter-sdk-D8o6TU4A.js";import{s as B,e as O,o as ee}from"./object3d-document-session-registry-DvgzaByQ.js";import{d as se,b as te}from"./ViewportShadingMenu-amXbnRtl.js";import{a as w,s as oe}from"./StageHost-xYvmzMBo.js";import"./three.page-Dy2q5JEV.js";import"./output-pass-Bw2FZb8e.js";import"./three.module-JoAAxMWl.js";import"./volter-shared-three-core-DEsIwtOu.js";import"./asset-preview-CtqauM13.js";import"./live-mixers-B-bwLZ7c.js";import"./linear-resolve-B-MA5O31.js";import"./model-inspection-_SFE7cp7.js";import"./standard-viewport-dressing-asIXnD-w.js";import"./OrbitControls-DxYDYiEc.js";import"./editor-presentation-activity-CqJH4G9t.js";import"./transport-strip-cKO8FHd1.js";function m(s){return s.toFixed(2)}function ae(){const s=j(),[o,a]=t.useState({x:0,y:0,z:0}),[r,l]=t.useState({x:0,y:0,z:0}),n=t.useRef(0);return t.useEffect(()=>{function h(){const u=s.cameraPosition,d=s.cameraTarget;a(i=>i.x!==u.x||i.y!==u.y||i.z!==u.z?{x:u.x,y:u.y,z:u.z}:i),l(i=>i.x!==d.x||i.y!==d.y||i.z!==d.z?{x:d.x,y:d.y,z:d.z}:i),n.current=requestAnimationFrame(h)}return n.current=requestAnimationFrame(h),()=>cancelAnimationFrame(n.current)},[s]),e.jsx(L,{variant:"overlay",border:!0,className:"volter-camera-info volter-chrome-island","data-island-scale":"compact",children:e.jsxs(R,{gap:8,align:"center",style:{whiteSpace:"nowrap"},children:[e.jsxs(v,{variant:"code",children:["Pos ",m(o.x)," ",m(o.y)," ",m(o.z)]}),e.jsxs(v,{variant:"code",children:["Target ",m(r.x)," ",m(r.y)," ",m(r.z)]})]})})}function re(){const s=j(),[,o]=t.useState(0),a=A();return t.useEffect(()=>{const r=setInterval(()=>o(l=>l+1),200);return()=>clearInterval(r)},[]),e.jsxs("div",{className:"volter-hud-overlay volter-chrome-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:f.content.primary,fontFamily:f.typography.mono,lineHeight:"16px"},children:[e.jsxs("div",{children:["FPS: ",s.fps.toFixed(0)]}),e.jsxs("div",{children:["Draw: ",s.drawCalls]}),e.jsxs("div",{children:["Tris: ",s.triangles.toLocaleString()]}),e.jsxs("div",{children:["Frame: ",s.frameTime.toFixed(1),"ms"]}),a!==null&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{children:["Heap: ",a.heapUsedMB===null?"n/a":`${a.heapUsedMB.toFixed(0)}MB`,a.heapLimitMB===null?"":` / ${a.heapLimitMB.toFixed(0)}MB`]}),e.jsxs("div",{children:["Mount epochs: ",a.mountEpochs]}),e.jsxs("div",{children:["Canvas: ",a.canvasMB.toFixed(1),"MB ×",a.canvases]}),a.textures!==void 0&&e.jsxs("div",{children:["GPU: ",a.textures," tex, ",a.geometries??0," geo",a.programs===void 0?"":`, ${a.programs} prog`]})]})]})}function ne({store:s,documentId:o}){t.useSyncExternalStore(s.shell.subscribe,s.shell.getSnapshot),t.useSyncExternalStore(k,E),t.useSyncExternalStore(V,T),t.useSyncExternalStore(B,O);const{adapter:a}=D(s.shell),r=ee(o);t.useSyncExternalStore(r?.subscribe??ie,r?.getSnapshot??ce),t.useSyncExternalStore(M,b);const l=N(o),n=H(),h=I(),u=n.viewName==="bar"||n.viewName==="menu",[d,i]=t.useState(null),y=()=>d?.closest(".volter-dock-document-content")?.querySelector(':scope > .volter-stage-bar [data-stage-bar-slot="display"]')??null,x=t.useId(),g=y(),p=g&&(g.dataset.owner===void 0||g.dataset.owner===x)?g:null,[,P]=t.useReducer(c=>c+1,0);t.useEffect(()=>{const c=y();c&&c.dataset.owner===void 0&&(c.dataset.owner=x),(c&&c.dataset.owner===x?c:null)!==p&&P()}),t.useEffect(()=>()=>{p?.dataset.owner===x&&delete p.dataset.owner},[p,x]);const S=e.jsxs(U,{label:"Viewport display",className:"volter-viewport-toolbar volter-viewport-toolbar-right volter-stage-display",children:[n.viewName==="bar"&&r?e.jsx(w,{shell:s.shell,documentId:o,label:oe(r.viewport,r.projection(),"long")}):null,e.jsx(C,{text:`Grid: ${l?"On":"Off"}`,children:e.jsx(F,{"aria-label":"Toggle grid","aria-pressed":l,size:"comfortable",onClick:()=>G(o,!l),children:e.jsx(z,{icon:$,size:"md"})})}),e.jsx(de,{store:s,word:h.helpers}),e.jsx(se,{mode:le(r)??s.shadingMode,onChange:c=>r?r.setMode(c):s.setShadingMode(c),words:h.shading}),u?null:e.jsx(w,{shell:s.shell,documentId:o}),e.jsx(ue,{adapter:a,store:s})]});return e.jsxs(e.Fragment,{children:[e.jsx("span",{ref:i,hidden:!0}),p?W.createPortal(S,p):S]})}function le(s){return s?.presentation().mode??null}const ie=()=>()=>{},ce=()=>0,ue=t.memo(function({adapter:o,store:a}){const[,r]=t.useReducer(n=>n+1,0);t.useEffect(()=>o.subscribe?.(r),[o]);const l=t.useMemo(()=>_(o),[o,a.shell.contentVersion]);return l===0?null:e.jsx(C,{text:`Open Light Explorer · ${l} ${l===1?"light":"lights"}`,children:e.jsx(F,{"aria-label":"Open Light Explorer",size:"comfortable",onClick:()=>J(K.lightExplorer.id),children:e.jsx(z,{icon:q,size:"md"})})})});function de({store:s,word:o}){const a=[{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(te,{label:"Helpers",...o!==void 0?{word:o}:{},master:{enabled:s.shell.showHelpers,onToggle:()=>s.shell.toggleHelpers()},choices:a.map(r=>({id:r.key,label:r.label,enabled:s.shell.helperVisibility[r.key],onToggle:()=>s.shell.toggleHelperType(r.key)}))})}function Ce({store:s,documentId:o,stage:a,active:r,chrome:l}){const n=a?.store??s;t.useSyncExternalStore(s.shell.subscribe,s.shell.getShellSnapshot??s.shell.getSnapshot),t.useSyncExternalStore(n.shell.subscribe,n.shell.getShellSnapshot??n.shell.getSnapshot),t.useSyncExternalStore(V,T),t.useSyncExternalStore(B,O),t.useSyncExternalStore(k,E);const h=X(s.shell,o,l),u=Z(h);t.useSyncExternalStore(M,b,b);const d=Q(o).overlays.cameraReadout;return e.jsxs(e.Fragment,{children:[u?e.jsxs(e.Fragment,{children:[e.jsx(ne,{store:n,documentId:o}),d?e.jsx(ae,{}):null]}):null,h.surface==="stage"&&n.showStats&&e.jsx(re,{}),r?e.jsx(Y,{}):null]})}export{Ce as StageOverlaySet};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{gU as S,aM as G,az as U,kE as W,H as k}from"./volter-sdk-D8o6TU4A.js";import{a as q}from"./three.page-Dy2q5JEV.js";import{Vector2 as J,Raycaster as K,PerspectiveCamera as ee,CameraHelper as te,Color as E,CanvasTexture as oe,SRGBColorSpace as ne,Sprite as re,SpriteMaterial as ie,Quaternion as ae,Vector3 as P,Object3D as se,Box3Helper as ce,Float32BufferAttribute as le,BufferGeometry as de,LineBasicMaterial as pe,Line as ue}from"./volter-shared-three-core-DEsIwtOu.js";import"./object3d-document-session-registry-DvgzaByQ.js";import"./output-pass-Bw2FZb8e.js";import"./three.module-JoAAxMWl.js";import"./asset-preview-CtqauM13.js";let v={document:null,file:null,oid:null,selection:[],camera:null,gesture:null},b="",R=!1,I=!1;const fe=100;function j(){R||I||(R=!0,globalThis.setTimeout(()=>{R=!1;const e=JSON.stringify(v);e!==b&&(b=e,I=!0,S().collaboration.updatePresence(v).catch(()=>{b=""}).finally(()=>{I=!1,JSON.stringify(v)!==b&&j()}))},fe))}function C(e){v={...v,...e},j()}function ge(){const e=document.querySelector(`.${W}`);return(e?getComputedStyle(e).getPropertyValue("--volter-content-on-accent").trim():"")||k.color.content.onAccent}function _(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=ge(),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 me(e){const r=new ee(50,1,.2,1.4),o=new te(r),n=new E(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 oe(c);p.colorSpace=ne;const d=new re(new ie({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,_(p,e),{camera:r,helper:o,label:d,texture:p,signature:"",targetPosition:new P,targetQuaternion:new ae,targetFov:50,initialized:!1}}function ye(e,r){const o=r.presence.camera;if(!o)return;e.targetPosition.set(o.x,o.y,o.z);const n=new se;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,_(e.texture,r))}function he(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 B(e){e.helper.removeFromParent(),e.label.removeFromParent(),e.helper.dispose(),e.texture.dispose(),e.label.material.dispose()}function ve(e,r){const o=q(e),n=new ce(o,new E(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 M(e){e.helper.removeFromParent(),e.helper.geometry.dispose(),e.helper.material.dispose()}function we(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 P(e.originX,e.originY,e.originZ),n=new P(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 ze(e){const{scene:r,store:o,documentId:n,container:c,canvas:p,viewport:d,readVisibleCameraPose:z}=e,y=()=>U()===n,w=()=>{if(!y())return;const i=z();C({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",w);let x=!1;const L=i=>{const s=i.value===!0;x=s,y()&&C({gesture:s?{type:"transform",selection:[...o.shell.selectedEntityIds]}:null})};d.transformControls.addEventListener("dragging-changed",L);const T=new K,O=new J,A=i=>{if(x||i.buttons!==0||!y())return;const s=p.getBoundingClientRect();if(s.width<=0||s.height<=0)return;O.set((i.clientX-s.left)/s.width*2-1,-((i.clientY-s.top)/s.height)*2+1),T.setFromCamera(O,d.renderCamera);const l=T.ray,m=z();C({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,m.position.distanceTo(m.target))}})},F=()=>{!x&&y()&&C({gesture:null})};c.addEventListener("pointermove",A),c.addEventListener("pointerleave",F),w();const f=new Map,u=new Map,g=new Map;let N=-1;const H=()=>{const i=S().collaboration.snapshot();if(!i||i.sequence===N)return;N=i.sequence;const s=i.participants.filter(t=>t.participantId!==G&&t.presence.document===n),l=s.filter(t=>t.presence.camera),m=new Set(l.map(t=>t.participantId));for(const[t,a]of f)m.has(t)||(B(a),f.delete(t));for(const t of l){let a=f.get(t.participantId);a||(a=me(t),f.set(t.participantId,a),r.add(a.helper,a.label)),ye(a,t)}const Y=s.flatMap(t=>t.presence.selection.slice(0,20).map(a=>({key:`${t.participantId}:${a}`,objectId:a,color:t.color}))),Q=new Set(Y.map(t=>t.key));for(const[t,a]of u)Q.has(t)||(M(a),u.delete(t));for(const t of Y){const a=o.objectMap.get(t.objectId),h=u.get(t.key);if(!a){h&&(M(h),u.delete(t.key));continue}if(h?.object===a)continue;h&&M(h);const Z=ve(a,t.color);u.set(t.key,Z),r.add(Z.helper)}const $=s.flatMap(t=>{const a=we(t.presence.gesture);return a?[{participantId:t.participantId,color:t.color,ray:a}]:[]}),V=new Set($.map(t=>t.participantId));for(const[t,a]of g)V.has(t)||(D(a),g.delete(t));for(const t of $){let a=g.get(t.participantId);a||(a=be(t.color),g.set(t.participantId,a),r.add(a.line)),Ce(a,t.ray)}},X=i=>{if(!y())return;const s=i.detail?.participantId;if(typeof s!="string")return;const l=S().collaboration.snapshot()?.participants.find(m=>m.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",X),{reportCamera:w,syncMarkers:i=>{H();for(const s of f.values())he(s,i);for(const s of u.values())q(s.object,s.box)},live:()=>f.size+u.size+g.size>0,dispose:()=>{d.orbitControls.removeEventListener("change",w),d.transformControls.removeEventListener("dragging-changed",L),c.removeEventListener("pointermove",A),c.removeEventListener("pointerleave",F),window.removeEventListener("editor:collaboration-join",X);for(const i of f.values())B(i);f.clear();for(const i of u.values())M(i);u.clear();for(const i of g.values())D(i);g.clear()}}}function be(e){const r=new le(new Float32Array(6),3),o=new de;o.setAttribute("position",r);const n=new pe({color:new E(e),depthTest:!1,transparent:!0,opacity:.9}),c=new ue(o,n);return c.name="Collaboration pointer ray",c.userData.editorOnly=!0,c.renderOrder=10001,{line:c,positions:r}}function Ce(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{ze as bindStagePresenceMarkers};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as n,iY as i,jJ as s,el as l,j as m,kF as f,j0 as p,hi as c,dM as S}from"./volter-sdk-D8o6TU4A.js";import{t as h}from"./StageHost-xYvmzMBo.js";import{w as u}from"./three.page-Dy2q5JEV.js";import"./asset-preview-CtqauM13.js";import"./output-pass-Bw2FZb8e.js";import"./three.module-JoAAxMWl.js";import"./volter-shared-three-core-DEsIwtOu.js";import"./live-mixers-B-bwLZ7c.js";import"./linear-resolve-B-MA5O31.js";import"./object3d-document-session-registry-DvgzaByQ.js";import"./model-inspection-_SFE7cp7.js";import"./standard-viewport-dressing-asIXnD-w.js";import"./OrbitControls-DxYDYiEc.js";import"./editor-presentation-activity-CqJH4G9t.js";import"./transport-strip-cKO8FHd1.js";const a=new WeakMap;function T(r,t){if(r===null)return;const e=a.get(r)??new Set;if(a.set(r,e),e.has(t))return;e.add(t);const o={select:"select",transform:"combined",move:"translate",rotate:"rotate",scale:"scale"};r.shell.setTransformMode(o[S(t).interaction.bootTool])}function D({documentId:r}){n.useSyncExternalStore(i,s,s);const t=l(),e=h(r),o=p(r);return n.useEffect(()=>{e==="gizmo"&&T(o&&u(o),r)},[e,o,r]),e==="none"?null:m.jsx(c,{store:o??t})}function F({documentId:r}){n.useSyncExternalStore(i,s,s);const t=l();return m.jsx(f,{store:p(r)??t})}export{F as ThreeStageTransformControls,D as ThreeStageTransformTools};
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import{kv as ft,kw as vt,aD as yt,dX as Mt}from"./volter-sdk-D8o6TU4A.js";import{a as ot}from"./three.page-Dy2q5JEV.js";import{I as wt,s as bt}from"./asset-preview-CtqauM13.js";import{b as St}from"./output-pass-Bw2FZb8e.js";import{P as Q,S as Y}from"./three.module-JoAAxMWl.js";import{Group as J,AmbientLight as xt,DirectionalLight as Z,Box3 as kt,Mesh as It,PlaneGeometry as Ft,Vector3 as tt,CustomToneMapping as Pt,AgXToneMapping as Ct,ACESFilmicToneMapping as Gt,NoToneMapping as Et,MathUtils as d,Color as g,DataTexture as nt,RGBAFormat as it,HalfFloatType as Rt,EquirectangularReflectionMapping as Tt,LinearSRGBColorSpace as Dt,LinearFilter as z,SRGBColorSpace as rt,GridHelper as _t,DataUtils as $t,MeshStandardMaterial as At}from"./volter-shared-three-core-DEsIwtOu.js";const te=[.8,.5,-1],N=new g(1975600),U=new g(5004144);function Ot(){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,l)=>{const u=t.getPropertyValue(s).trim();if(!e||!u||!CSS.supports("color",u))return l.clone();e.fillStyle=l.getStyle(),e.fillRect(0,0,1,1),e.fillStyle=t.getPropertyValue("--volter-surface-shell").trim(),e.fillRect(0,0,1,1),e.fillStyle=u,e.fillRect(0,0,1,1);const[v,f,p]=e.getImageData(0,0,1,1).data;return new g().setRGB(v/255,f/255,p/255,rt)},n=r("--volter-surface-panel",N),a=r("--volter-surface-raised",U),h=n.lerp(N,.25).lerp(new g(16777215),.03),c=a.lerp(U,.25).lerp(new g(16777215),.04);return{bottom:h,top:c}}function ee(i){if(typeof document>"u"||typeof MutationObserver>"u")return()=>{};const t=document.querySelector("[data-volter-palette]");if(!t)return()=>{};const o=new MutationObserver(()=>{i(),Mt()});return o.observe(t,{attributes:!0,attributeFilter:["data-volter-palette","data-volter-material"]}),()=>o.disconnect()}function Bt(){const i=Ot(),t=128,o=new Uint8Array(t*4),e=new g;for(let n=0;n<t;n++)e.copy(i.bottom).lerp(i.top,n/(t-1)).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 nt(o,1,t,it);return r.colorSpace=rt,r.magFilter=z,r.minFilter=z,r.needsUpdate=!0,r}function Lt(i){const t=ot(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 zt(i){for(const t of[1,2,5,10])if(i/t<=60)return Math.round(i/t);return Math.round(i/10)}function Ht(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
|
-
varying vec2 vGridPlanePosition;`).replace("#include <begin_vertex>",`#include <begin_vertex>
|
|
3
|
-
vGridPlanePosition = position.xz;`),n.fragmentShader=n.fragmentShader.replace("#include <common>",`#include <common>
|
|
4
|
-
varying vec2 vGridPlanePosition;
|
|
5
|
-
uniform float uGridFadeStart;
|
|
6
|
-
uniform float uGridFadeEnd;`).replace("#include <color_fragment>",`#include <color_fragment>
|
|
7
|
-
diffuseColor.a *= 1.0 - smoothstep(uGridFadeStart, uGridFadeEnd, length(vGridPlanePosition));`)},i.customProgramCacheKey=()=>`volter-grid-fade:${e}:${r}`}function oe(i,t){const{environment:o,background:e,grid:r}=t;let n=null;o&&(i.environment=o.texture),e&&(n=Bt(),i.background=n);let a=null,h="";const c=l=>{if(!r)return;const{size:u,centre:v}=Lt(l),f=`${u}:${v.join(":")}`;if(f===h)return;h=f,a&&(a.removeFromParent(),a.dispose());const p=new _t(u,zt(u),10066329,10066329);a=p;const M=p.material;M.transparent=!0,M.opacity=.35,M.depthWrite=!1,Ht(M,u),p.name="volter:standard-dressing-grid",p.position.set(v[0],-.02,v[1]),p.layers.set(wt),bt(p,"editorHelper",!0),i.add(p)};c(t.content);let s=!1;return{backgroundTexture:n,frameContent:c,dispose(){s||(s=!0,a?.removeFromParent(),a?.dispose(),o&&(i.environment===o.texture&&(i.environment=null),o.dispose()),n&&(i.background===n&&(i.background=null),n.dispose()))}}}const W=12,Nt=`
|
|
8
|
-
vec3 volterHable( vec3 x ) {
|
|
9
|
-
const float A = 0.22 * 4.0;
|
|
10
|
-
const float B = 0.30 * 2.0;
|
|
11
|
-
const float C = 0.10;
|
|
12
|
-
const float D = 0.20;
|
|
13
|
-
const float E = 0.01;
|
|
14
|
-
const float F = 0.30;
|
|
15
|
-
return ( ( x * ( A * x + C * B ) + D * E ) / ( x * ( A * x + B ) + D * F ) ) - E / F;
|
|
16
|
-
}
|
|
17
|
-
vec3 CustomToneMapping( vec3 color ) {
|
|
18
|
-
color *= toneMappingExposure;
|
|
19
|
-
return clamp( volterHable( max( vec3( 0.0 ), color ) ) / volterHable( vec3( 1.0 ) ), 0.0, 1.0 );
|
|
20
|
-
}`;{const i=Y.tonemapping_pars_fragment,t="vec3 CustomToneMapping( vec3 color ) { return color; }";i.includes(t)&&(Y.tonemapping_pars_fragment=i.replace(t,Nt))}const Ut={none:Et,aces:Gt,agx:Ct,filmic:Pt};function et(i){return`image|${i.id}|${i.url}`}function q(i){return i*i*(3-2*i)}function b(i,t,o){let e=Math.imul(i,374761393)^Math.imul(t,668265263)^Math.imul(o,1440662683);return e=Math.imul(e^e>>>13,1274126177),((e^e>>>16)>>>0)/4294967296}function Wt(i,t,o){const e=Math.floor(i),r=Math.floor(t),n=Math.floor(o),a=q(i-e),h=q(t-r),c=q(o-n),s=d.lerp,l=s(b(e,r,n),b(e+1,r,n),a),u=s(b(e,r+1,n),b(e+1,r+1,n),a),v=s(b(e,r,n+1),b(e+1,r,n+1),a),f=s(b(e,r+1,n+1),b(e+1,r+1,n+1),a);return s(s(l,u,h),s(v,f,h),c)}function st(i,t,o){let e=0,r=.5,n=1,a=0;for(let h=0;h<5;h++)e+=r*Wt(i*n,t*n,o*n),a+=r,r*=.5,n*=2;return e/a}let D=null;function qt(i){if(!D){const o=new Float32Array(4096);for(let e=0;e<o.length;e++){const r=1-2*(e+.5)/o.length,n=Math.sqrt(1-r*r),a=e*2.399963229728653;o[e]=st(Math.cos(a)*n*4,r*4,Math.sin(a)*n*4)}D=o.sort()}const t=d.clamp(Math.round((1-i)*(D.length-1)),0,D.length-1);return D[t]}function Vt(i){if(!i)return null;const t=(e,r)=>typeof e=="number"&&Number.isFinite(e)?e:r,o={cover:d.clamp(t(i.cover,.5),0,1),opacity:d.clamp(t(i.opacity,1),0,1),scale:Math.max(t(i.scale,4),.1)};return o.cover>0&&o.opacity>0?o:null}const G=4,V=400;function Kt(){const i=new At({roughness:.9,metalness:0,transparent:!0,depthWrite:!1,polygonOffset:!0,polygonOffsetFactor:1,polygonOffsetUnits:1}),t=V/2;return i.onBeforeCompile=o=>{o.vertexShader=o.vertexShader.replace("void main() {",`varying vec2 vFloorPlane;
|
|
21
|
-
void main() {`).replace("#include <begin_vertex>",`#include <begin_vertex>
|
|
22
|
-
vFloorPlane = position.xz;`),o.fragmentShader=o.fragmentShader.replace("void main() {",`varying vec2 vFloorPlane;
|
|
23
|
-
void main() {`).replace("#include <dithering_fragment>",`#include <dithering_fragment>
|
|
24
|
-
gl_FragColor.a *= 1.0 - smoothstep(${(t*.3).toFixed(1)}, ${(t*.95).toFixed(1)}, length(vFloorPlane));`)},i.customProgramCacheKey=()=>"volter-fading-floor",i}class ne{constructor(t,o){this.onReady=o,this.group.name="volter:stage-presentation-rig",this.group.userData.editorHelper=!0,this.group.add(this.ambient),t.add(this.group),this.previewGroup.name="volter:stage-preview-rig",this.previewGroup.userData.editorHelper=!0,this.sun.name="volter:preview-sun",this.sun.userData.editorHelper=!0,this.previewGroup.add(this.sun,this.sun.target),this.previewGroup.visible=!1,t.add(this.previewGroup),this.floor.name="volter:preview-floor",this.floor.userData.editorHelper=!0,this.floor.receiveShadow=!0,this.floor.renderOrder=-1,this.floor.visible=!1,t.add(this.floor)}takeover={};group=new J;ambient=new xt(16777215,0);lights=[];preset=null;presentation=null;source="studio";previewGroup=new J;sun=new Z(16777215,1);floorBounds=new kt;floorContent=null;floor=new It(new Ft(V,V).rotateX(-Math.PI/2),Kt());sky=null;pmrem=null;direction=new tt;loadingImage=null;pendingImage=null;failedImages=new Set;latestSky=null;rotation=0;disposed=!1;apply(t,o,e,r={}){this.presentation=t;const{lighting:n}=t,a=r.floor!==!1&&t.overlays.floor.visible,h=a&&!this.floor.visible;this.floor.visible=a,h&&this.floorContent&&this.placeFloor(this.floorContent),this.floor.material.color.set(t.overlays.floor.color);const c=ft(n.studioPreset);c!==this.preset&&this.build(c),this.resolveSource(this.takeover),r.tone!==!1&&(o.toneMapping=e??Ut[n.tone.mapper],o.toneMappingExposure=n.tone.exposure);const{sun:s,environment:l}=n.preview,u=d.degToRad(s.altitude),v=d.degToRad(s.azimuth);this.sun.color.set(s.color),this.sun.intensity=s.enabled?s.energy:0,this.sun.position.set(Math.sin(v)*Math.cos(u),Math.sin(u),-Math.cos(v)*Math.cos(u)).multiplyScalar(W),this.sun.castShadow=s.enabled&&s.shadowDistance>0;const f=Math.min(Math.max(s.shadowDistance,1),50)/2;if(Object.assign(this.sun.shadow.camera,{left:-f,right:f,top:f,bottom:-f}),this.sun.shadow.camera.updateProjectionMatrix(),this.sun.updateMatrixWorld(),this.sun.target.updateMatrixWorld(),this.rotation=d.degToRad(l.rotation),!(r.sky!==!1&&l.enabled&&(n.source==="preview"||t.backdrop.source==="environment"))){this.loadingImage=null,this.pendingImage=null;return}const M=l.image===null?null:vt(l.image),S=()=>this.buildSky(l.sky,o,s.enabled?{direction:this.sun.position.clone().normalize(),color:s.color,energy:s.energy}:null);if(this.latestSky=S,M&&!this.failedImages.has(et(M))){this.sky||S(),this.buildImage(M,o);return}this.loadingImage=null,this.pendingImage=l.image===null?null:{id:l.image,state:M?"failed":"unregistered"},S()}buildImage(t,o){const e=et(t);if(this.sky?.key===e){this.pendingImage=null;return}this.loadingImage!==e&&(this.loadingImage=e,this.pendingImage={id:t.id,state:"loading"},St(t.url,t.format).then(r=>{if(this.disposed||this.loadingImage!==e){r.dispose();return}let n;try{this.pmrem??=new Q(o),n=this.pmrem.fromEquirectangular(r)}catch(a){throw r.dispose(),a}this.loadingImage=null,this.pendingImage=null,this.disposeSky(),this.sky={key:e,image:t.id,background:r,environment:n},this.onReady?.()}).catch(r=>{this.disposed||this.loadingImage!==e||(this.loadingImage=null,this.failedImages.add(e),this.pendingImage={id:t.id,state:"failed"},yt.error(`Environment image "${t.id}" (${t.url}) did not load: ${String(r)}`,"viewport"),this.latestSky(),this.onReady?.())}))}placeFloor(t){if(this.floorContent=t,!this.floor.visible)return;const o=ot(t,this.floorBounds);this.floor.position.y=o.isEmpty()?0:o.min.y,this.floor.updateMatrixWorld()}forgetFailedImages(){this.failedImages.clear()}sceneLightsShown(){return this.source!=="preview"||this.presentation?.lighting.preview.sceneLights!==!1}imageReport(){return{shown:this.sky?.image??null,pending:this.pendingImage}}turn(){return this.sky?.image?this.rotation:0}buildSky(t,o,e){const r=e?`${e.direction.toArray().map(m=>m.toFixed(4)).join(",")}|${e.color}|${e.energy}`:"none",n=Vt(t.clouds),a=n?`${n.cover}|${n.opacity}|${n.scale}`:"clear",h=`${t.top}|${t.horizon}|${t.ground}|${t.topCurve}|${t.groundCurve}|${a}|${r}`;if(this.sky?.key===h)return;this.disposeSky();const c=1024,s=512,l=d.degToRad(.5),u=d.degToRad(30),v=.15,f=new g(t.top),p=new g(t.horizon),M=new g(t.ground),S=e?new g(e.color).multiplyScalar(e.energy):null,E=new Uint16Array(c*s*4),_=m=>$t.toHalfFloat(Math.min(m,65504)),at=Math.max(t.topCurve,.001),lt=Math.max(t.groundCurve,.001),$=new g,x=new g,ct=new g(.92,.93,.95).lerp(p,.2),R=c/G,H=s/2/G+1,K=n?qt(n.cover):1;let A=null;if(n){A=new Float32Array(R*H);for(let m=0;m<H;m++){const I=((Math.min(s/2+m*G,s-1)+.5)/s-.5)*Math.PI;for(let F=0;F<R;F++){const y=((F*G+.5)/c-.5)*Math.PI*2;A[m*R+F]=st(Math.cos(y)*Math.cos(I)*n.scale,Math.sin(I)*n.scale,Math.sin(y)*Math.cos(I)*n.scale)}}}const j=new tt;for(let m=0;m<s;m++){const w=((m+.5)/s-.5)*Math.PI,I=Math.PI/2-w;if(I<=Math.PI/2){const y=1-I/(Math.PI/2);$.copy(p).lerp(f,d.clamp(1-Math.pow(1-y,1/at),0,1))}else{const y=(I-Math.PI/2)/(Math.PI/2);$.copy(p).lerp(M,d.clamp(1-Math.pow(1-y,1/lt),0,1))}const F=n&&w>0?d.smoothstep(Math.sin(w),0,.25):0;for(let y=0;y<c;y++){if(x.copy($),n&&A&&F>0){const T=y/G,P=(m-s/2)/G,C=Math.floor(T),B=Math.max(0,Math.floor(P)),X=T-C,dt=P-Math.floor(P),L=(mt,gt)=>A[Math.min(gt,H-1)*R+mt%R],ht=d.lerp(d.lerp(L(C,B),L(C+1,B),X),d.lerp(L(C,B+1),L(C+1,B+1),X),dt),pt=d.smoothstep(ht,K-.1,K+.1);x.lerp(ct,pt*n.opacity*F)}if(S&&e&&w>-Math.PI/2){const T=((y+.5)/c-.5)*Math.PI*2;j.set(Math.cos(T)*Math.cos(w),Math.sin(w),Math.sin(T)*Math.cos(w));const P=j.angleTo(e.direction);if(P<l)x.copy(S);else if(P<u){const C=(P-l)/(u-l);x.copy(S).lerp($,d.clamp(1-Math.pow(1-C,1/v),0,1))}}const O=(m*c+y)*4;E[O]=_(x.r),E[O+1]=_(x.g),E[O+2]=_(x.b),E[O+3]=_(1)}}const k=new nt(E,c,s,it,Rt);k.mapping=Tt,k.colorSpace=Dt,k.magFilter=z,k.minFilter=z,k.needsUpdate=!0,this.pmrem??=new Q(o);const ut=this.pmrem.fromEquirectangular(k);this.sky={key:h,image:null,background:k,environment:ut}}disposeSky(){this.sky?.background.dispose(),this.sky?.environment.dispose(),this.sky=null}environment(){const t=this.presentation?.lighting;return t?this.source==="studio"?{texture:null,intensity:this.preset?.environmentIntensity??0,rotation:0}:this.source==="preview"?t.preview.environment.enabled?{texture:this.sky?.environment.texture??null,intensity:t.preview.environment.energy,rotation:this.turn()}:{texture:null,intensity:0,rotation:0}:null:null}backdrop(){const t=this.presentation?.backdrop;return!t||t.source==="fill"||t.source==="scene"?"keep":t.source==="transparent"?{value:null,blur:0,intensity:1,rotation:0}:t.source==="color"?{value:new g(t.color),blur:0,intensity:1,rotation:0}:this.sky?{value:this.sky.background,blur:t.blur,intensity:t.opacity,rotation:this.turn()}:"keep"}resolveSource(t){this.takeover=t;const o=this.presentation?.lighting;let e=o?.source??"studio";return o?.auto&&e!=="scene"&&o.auto.takeover.some(r=>t[r]===!0)&&(e="scene"),this.source=e,this.group.visible=e==="studio",this.previewGroup.visible=e==="preview",e}roots(){return[this.group,this.previewGroup,this.floor]}lightsVisible(){return this.group.visible&&this.lights.length>0}presetId(){return this.preset?.id??null}update(t){if(this.group.visible)for(const{light:o,spec:e}of this.lights)this.direction.set(...e.direction).normalize(),e.space==="camera"&&this.direction.applyQuaternion(t.quaternion),o.position.copy(this.direction).multiplyScalar(-W),o.target.position.set(0,0,0),o.updateMatrixWorld(),o.target.updateMatrixWorld()}dispose(){this.disposed=!0,this.clearLights(),this.group.removeFromParent(),this.previewGroup.removeFromParent(),this.floor.removeFromParent(),this.floor.geometry.dispose(),this.floor.material.dispose(),this.sun.dispose(),this.disposeSky(),this.pmrem?.dispose()}build(t){this.clearLights(),this.preset=t,this.ambient.color.set(t.ambient.color),this.ambient.intensity=t.ambient.intensity;for(const o of t.lights){const e=new Z(o.color,o.intensity);e.name=`volter:studio-light:${t.id}`,e.castShadow=o.castShadow===!0,e.userData.editorHelper=!0,this.group.add(e),this.group.add(e.target),this.lights.push({light:e,spec:o})}this.direction.set(0,0,0);for(const{light:o,spec:e}of this.lights)e.space==="world"&&(this.direction.set(...e.direction).normalize(),o.position.copy(this.direction).multiplyScalar(-W),o.updateMatrixWorld(),o.target.updateMatrixWorld())}clearLights(){for(const{light:t}of this.lights)t.removeFromParent(),t.target.removeFromParent(),t.dispose();this.lights=[]}}export{ne as S,oe as a,te as b,Bt as c,ee as w};
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import{gU as S,o as le,j as v,r as z,m as ke,jB as He}from"./volter-sdk-D8o6TU4A.js";import{a as ye}from"./client-Dj2xr2fw.js";let W=null;function Vt(e){W=e}function Ft(){if(!W)throw new Error("@volter/play is not active, so editor-threejs's API is not at hand.");return W}const $=5e3,J=2048,Ye=Symbol.for("volter.model-play-log"),ze=globalThis,T=ze[Ye]??=new Map,We=Symbol.for("volter.model-play-log.listeners"),Xe=globalThis,X=Xe[We]??=new Set;function Qe(){for(const e of[...X])try{e()}catch{}}function Jt(e){return X.add(e),()=>{X.delete(e)}}const Ze=["label","message","why","text","source","file","line","column","slot"],qe=4;function et(e){const t=Ze.filter(n=>n in e);return Object.fromEntries([...t,...Object.keys(e).filter(n=>!t.includes(n))].map(n=>[n,e[n]]))}function tt(e){const t=s=>s.replace(/\bhttps?:\/\/[^/\s)]+/g,"").replace(/\?[^\s):]*/g,""),n={};for(const[s,o]of Object.entries(e))s!=="session"&&(n[s]=typeof o!="string"?o:s==="stack"?t(o.split(`
|
|
2
|
-
`).slice(0,qe+1).join(`
|
|
3
|
-
`)):s==="label"||s==="message"?o:t(o));return n}function nt(e){if(e==null)return;let t;const n=typeof e=="object"&&!Array.isArray(e)?et(e):e;try{t=JSON.stringify(n)}catch(o){return{unserializable:o instanceof Error?o.message:String(o)}}if(t===void 0)return;if(t.length>J&&n!==e&&(t=JSON.stringify(tt(n))),t.length>J)return{truncated:t.slice(0,J)};const s=JSON.parse(t);return typeof s=="object"&&s!==null&&!Array.isArray(s)?s:{value:s}}function B(e,t,n,s,o){try{const r=nt(s),a=Date.now(),l=o?.simT??(a-e.startedAt)/1e3;o!==void 0&&(e.tick=Math.max(e.tick,o.tick)),e.simT=Math.max(e.simT,(a-e.startedAt)/1e3);const c={seq:e.total,t:a,simT:l,tick:o?.tick??e.tick,kind:String(n),source:t,...r?{facts:r}:{}};e.ring[e.total%$]=c,e.total+=1,e.kinds.add(c.kind)}catch{}Qe()}function st(e,t){const n={documentId:e,script:t,startedAt:Date.now(),playing:!0,simT:0,tick:0,ring:[],total:0,kinds:new Set};return T.delete(e),T.set(e,n),B(n,"play","play-start",{documentId:e,script:t}),{append(s,o,r,a){n.playing&&B(n,s,o,r,a)},end(s){n.playing&&(B(n,"play","play-stop",s),n.playing=!1)}}}function ot(){const e=[...T.values()].reverse();return e.find(t=>t.playing)??e[0]}function Bt(e={}){const t=e.documentId===void 0?ot():T.get(e.documentId),n=[...T.keys()];if(!t)return{playing:!1,documentId:e.documentId??null,script:null,startedAt:null,documents:n,simT:0,tick:0,capacity:$,total:0,dropped:0,entries:[]};const s=Math.max(0,t.total-$),o=[];for(let r=s;r<t.total;r++){const a=t.ring[r%$];e.since!==void 0&&a.simT<e.since||e.kind!==void 0&&a.kind!==e.kind||o.push(a)}return{playing:t.playing,documentId:t.documentId,script:t.script,startedAt:t.startedAt,documents:n,simT:t.playing?Math.max(t.simT,(Date.now()-t.startedAt)/1e3):t.simT,tick:t.tick,capacity:$,total:t.total,dropped:s,entries:o}}function Kt(e,t,n){const s=T.get(e);if(!s)return{total:0,kinds:[],entries:[]};const o=Math.max(0,s.total-$),r=[];for(let a=s.total-1;a>=o&&r.length<t;a--){const l=s.ring[a%$];(n===void 0||l.kind===n)&&r.push(l)}return{total:s.total,kinds:[...s.kinds],entries:r.reverse()}}const Q=new Set,Z=new Set,k=new Set,he=[.25,.5,1,2,4],at={time:0,tick:0,paused:!1,speed:1,failure:null,running:!1},Pe=new Map,Te=new Map,P=new Map;function xe(){for(const e of[...Q])e()}function F(){for(const e of[...Z])e()}function x(e,t){Pe.set(e,{...R(e),...t}),F()}function Ht(e){return k.has(e)}function rt(e,t){if(k.has(e)===t){!t&&P.delete(e)&&F();return}t?(k.add(e),x(e,{time:0,tick:0,paused:!1,failure:null,running:!1})):(k.delete(e),P.delete(e),x(e,{paused:!1,failure:null,running:!1})),xe()}function K(e,t){const n=R(e),s=t===null;!k.has(e)||n.failure===t&&n.running===s||x(e,{failure:t,running:s})}function it(e,t){const n=R(e);n.paused===t.paused&&n.speed===t.speed&&n.time===t.time&&n.tick===t.frame||x(e,{paused:t.paused,speed:t.speed,time:t.time,tick:t.frame})}function lt(e,t){if(!he.includes(t))throw new Error(`Play speed ${t} is not one the transport offers: ${he.join(", ")}.`);R(e).speed!==t&&x(e,{speed:t})}function Yt(e){return Q.add(e),()=>{Q.delete(e)}}function R(e){return Pe.get(e)??at}function zt(e){return Z.add(e),()=>{Z.delete(e)}}function dt(e){return Te.get(e)??0}function Wt(e){if(!k.has(e)){rt(e,!0);return}Te.set(e,dt(e)+1),x(e,{time:0,tick:0,paused:!1,failure:null,running:!1}),xe()}function Xt(e){return P.get(e)??null}function Qt(e,t,n=null){if(t&&k.has(e))throw new Error(`${e} is already playing; switch autoplay on instead of arming it.`);if(t)P.set(e,{goal:n});else if(!P.delete(e))return;F()}function ct(e){const t=P.get(e)??null;return t!==null&&(P.delete(e),F()),t}const D="/__editor/play/std";async function m(e,t){const n=await fetch(`${D}${e}`,t),s=await n.json();if(!n.ok)throw new Error(s.error??`${D}${e} answered ${n.status}`);return s}function _(e,t){return m(`/devices/${encodeURIComponent(e)}/control`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(t)})}function je(e,t){return _(e,{control:"clock",...t})}function me(e){return _(e,{control:"inspect"})}function H(e,t,n=!1){return _(e,{control:"act",actions:t,...n?{observe:!0}:{}})}function ut(e,t){return _(e,t===null?{control:"manual"}:{control:"autoplay",slot:t.slot,goal:t.goal})}async function pt(e){const t=e.split(/[\\/]/).at(-1)??e,n=await fetch(`${D}/capture?file=${encodeURIComponent(t)}`);if(!n.ok)throw new Error((await n.json()).error??`${D}/capture answered ${n.status}`);return n.blob()}async function Oe(e){const{files:t}=await _(e,{control:"capture",id:crypto.randomUUID()}),n=t[0];if(n===void 0)throw new Error(`std's receiver wrote no capture for ${e}.`);return n}const ft=["web","roblox","unreal"],Zt=e=>typeof e=="string"&&ft.includes(e),we={web:"Web",roblox:"Roblox",unreal:"Unreal"};let b=null,N=0;const I=new Set;le(()=>{b=null,N+=1;for(const e of I)e()});function Y(e){b=e;for(const t of I)t()}let Me=!1;const gt=()=>Me;function qt(e){Me=e}const en=()=>b;function tn(e){return I.add(e),()=>I.delete(e)}async function nn(){return(await m("")).targets??[]}function sn(e,t=!1){if(b?.running===!0)throw new Error(`An export to ${we[b.target]} is running: wait for it to end.`);N+=1;const n=N;Y({target:e,running:!0,line:null,ok:null,added:!1,out:null});const s=()=>N===n&&b!==null,o=a=>{S().console.log(a,"export"),s()&&b!==null&&Y({...b,line:a})},r=(a,l,c)=>{const u=we[e];a?S().console.log(`Exported to ${u}: ${c??""}${l?` (${u} added as a target)`:""}`,"export"):S().console.error(`The export to ${u} failed: ${s()?b?.line??"std said nothing":"its project was closed"}`,"export"),s()&&b!==null&&Y({...b,running:!1,ok:a,added:l,out:c})};return(async()=>{const a=await fetch("/__editor/play/std/export",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({target:e,add:t})});if(!a.ok||a.body===null){o((await a.json().catch(()=>({}))).error??`The export answered ${a.status}.`),r(!1,!1,null);return}const l=a.body.pipeThrough(new TextDecoderStream).getReader();let c="";for(;;){const{value:u,done:d}=await l.read();if(d)break;c+=u;for(let f=c.indexOf(`
|
|
4
|
-
`);f>=0;f=c.indexOf(`
|
|
5
|
-
`)){const w=JSON.parse(c.slice(0,f));if(c=c.slice(f+1),w.end!==void 0){r(w.end.ok===!0,w.end.added===!0,w.end.out??null);return}typeof w.line=="string"&&o(w.line)}}o("The export ended before it said how."),r(!1,!1,null)})().catch(a=>{o(a instanceof Error?a.message:String(a)),r(!1,!1,null)}),b??{target:e,running:!0,line:null,ok:null,added:!1,out:null}}let q=null,Ae=null;const ee=new Set;function on(e,t){q=e,Ae=t;for(const n of ee)n()}function Le(){if(!q)throw new Error("@volter/play is not active, so editor-blender's API is not at hand.");return q}function an(){return Ae}function rn(e){return ee.add(e),()=>{ee.delete(e)}}function Re(){return z.useSyncExternalStore(bt,Ee,Ee),Et()}function te(e,t,n){return t.device===null?"joining":t.autopilot?"autopilot":e.view===n?"you":"idle"}function yt(){const e=Re();if(!e)return null;const{PlayAreaButton:t,timelineGeometry:{TIMELINE_CHROME:n,TIMELINE_THEME:s}}=Le(),{players:o,view:r}=e;return v.jsxs("div",{role:"toolbar","aria-label":"Views","data-testid":"std-view-bar",tabIndex:-1,onPointerDown:a=>a.currentTarget.focus(),style:{outline:"none",margin:"4px auto",width:"max-content",display:"flex",alignItems:"center",gap:n.headerGap,padding:"2px 6px",pointerEvents:"auto",background:s.header,color:n.text,border:`1px solid ${n.rule}`,borderRadius:n.widgetRadius,font:"11px Inter, system-ui, sans-serif"},children:[v.jsxs("div",{style:{display:"flex"},role:"group","aria-label":"View",children:[v.jsx(t,{testId:"std-view-edit",label:"Edit the level while the game runs (Escape)",pressed:r==="edit",wide:!0,onClick:()=>M("edit"),children:"Edit"}),o.map((a,l)=>v.jsx(t,{testId:`std-view-player-${a.number}`,wide:!0,pressed:r===l,label:`Player ${a.number}, ${te(e,a,l)}${l<4?` (${l+1})`:""}`,onClick:()=>M(l),children:`Player ${a.number} · ${te(e,a,l)}`},a.slot)),v.jsx(t,{testId:"std-view-grid",label:"Grid: every view tiled (Tab cycles the views)",pressed:r==="grid",wide:!0,onClick:()=>M("grid"),children:"Grid"})]}),v.jsxs("div",{style:{display:"flex",alignItems:"center"},role:"group","aria-label":"Players",children:[v.jsx("span",{style:{padding:"0 4px"},children:"Players"}),v.jsx(t,{testId:"std-players-remove",label:"One player fewer: the last one's client leaves",disabled:o.length<=1,onClick:Lt,children:"−"}),v.jsx("span",{"data-testid":"std-players-count",style:{minWidth:14,textAlign:"center"},children:o.length}),v.jsx(t,{testId:"std-players-add",label:"One more player: a client joins",disabled:e.url===null,onClick:At,children:"+"})]})]})}function ht(){const e=Re();if(!e||e.view!=="grid")return null;const{timelineGeometry:{TIMELINE_CHROME:t}}=Le(),n=e.players.length+1;return[{label:"Edit",open:"edit"},...e.players.map((o,r)=>({label:`Player ${o.number} · ${te(e,o,r)}`,open:r}))].map(({label:o,open:r},a)=>{const l=ae(a,n);return v.jsx("button",{type:"button","data-testid":`std-tile-${a}`,title:`Open ${o}`,onClick:()=>M(r),style:{position:"absolute",left:`${l.left*100}%`,top:`${l.top*100}%`,width:`${l.width*100}%`,height:`${l.height*100}%`,pointerEvents:"auto",background:"transparent",cursor:"pointer",border:`1px solid ${t.rule}`,display:"flex",alignItems:"flex-end",padding:6},children:v.jsx("span",{style:{background:"rgba(0, 0, 0, 0.6)",color:t.widgetText,padding:"2px 6px",borderRadius:t.widgetRadius,font:"11px Inter, system-ui, sans-serif"},children:o})},o)})}const mt="npm run dev",ve=6e4,_e=500,be=60,de=2,ne=8;let A=[],h=null;const wt=2e3,se=new Set,Ce=()=>{for(const e of[...se])e()};function vt(e){return se.add(e),()=>{se.delete(e)}}le(()=>{h=null,A=[],Ce()});function Ne(){const e=ke()?.rootPath;return e===void 0?!1:h?.root===e&&(h.answer!==!1||Date.now()-h.at<wt)?h.answer:(De(e),h?.root===e?h.answer:void 0)}function De(e){const t=h?.root===e?h:null;return h={root:e,answer:t?.answer,goal:t?.goal??null,at:Date.now()},m("").then(n=>n,()=>({game:!1,goal:null})).then(n=>(h?.root!==e||(h={root:e,answer:n.game,goal:n.goal,at:Date.now()},(t?.answer!==n.game||t.goal!==n.goal)&&Ce()),n.game))}function ln(){const e=ke()?.rootPath;return e===void 0?Promise.resolve(!1):De(e)}let i=null;const L=new Map,oe=new Set;let Ie=0;const g=()=>{Ie+=1;for(const e of[...oe])e()};function bt(e){return oe.add(e),()=>{oe.delete(e)}}const Ee=()=>Ie;function Et(e){return i&&!i.stopped&&(e===void 0||i.documentId===e)?i:null}const G=(e,t)=>t.goal??e.goal;function Ge(e,t){const n=G(e,t);t.device===null||t.autopilot&&n===null||ut(t.device,t.autopilot&&n!==null?{slot:t.slot,goal:n}:null).catch(s=>e.log.append("play","script-error",{phase:"autoplay",slot:t.slot,message:String(s)}))}function U(e,t,n,s){const o=i;if(!o)return;const r=s!==void 0&&s!==e.goal;s!==void 0&&(e.goal=s),!(t&&G(o,e)===null||e.autopilot===t&&!(t&&r))&&(e.autopilot=t,o.log.append("play",t?"autoplay-on":"autoplay-off",{slot:e.slot,by:n,...t?{goal:G(o,e)}:{}}),Ge(o,e),g())}function ce(){i&&i.players.forEach((e,t)=>U(e,t!==i.view,"view"))}function ae(e,t){const n=Math.ceil(Math.sqrt(t)),s=Math.ceil(t/n),o=1/n,r=Math.floor(e/n),a=r===s-1?t-r*n:n;return{left:(e%n+(n-a)/2)/n,top:r/s+(1/s-o)/2,width:o,height:o}}function ue(){if(!i)return;const{players:e,view:t}=i;e.forEach((n,s)=>{const o=t==="grid"?ae(s+1,e.length+1):{left:0,top:0,width:1};Object.assign(n.frame.style,{left:`${o.left*100}%`,top:`${o.top*100}%`,width:"100%",height:"100%",transform:o.width===1?"":`scale(${o.width})`,transformOrigin:"0 0",opacity:t==="grid"||t===s?"1":"0",pointerEvents:t===s?"auto":"none",zIndex:t===s?"1":"0"})}),i.stage.edit?.(t==="edit"?"live":t==="grid"?ae(0,e.length+1):"hidden")}function M(e){!i||typeof e=="number"&&!i.players[e]||(i.view=e,i.log.append("play","view",{view:typeof e=="number"?`player ${i.players[e].number}`:e}),ue(),ce(),typeof e=="number"&&i.players[e].frame.focus(),g())}function St(){return i?["edit",...i.players.map((e,t)=>t),"grid"]:[]}function Ue(e,t=!0,n){return t&&i&&i.goals.length===0&&i.goal===null?"No autoplay: the game's autopilot/ program offers no goal for its bot.":t&&i&&n!==void 0&&i.goals.length>0&&!i.goals.includes(n)?`This game's bot has no goal "${n}"; its goals are ${i.goals.map(s=>`"${s}"`).join(", ")}.`:e?e.device===null?`Autoplay drives Player ${e.number} once its page has joined.`:null:"Autoplay drives the viewed player: open one (1 to 4); the others' autopilots drive on their own."}function dn(){const e=i&&typeof i.view=="number"?i.players[i.view]:void 0;return{on:e?.autopilot??!1,goal:i&&e?G(i,e):i?.goal??null,goals:i?.goals??A,unavailable:Ue(e),headless:i?.headless??null}}async function $t(e){const{goals:t}=await m("/goals");e.goals=A=t,(e.goal===null||t.length>0&&!t.includes(e.goal))&&(e.goal=t[0]??null),g()}async function kt(e,t,n){const s=i;if(e&&s&&await $t(s),e&&s&&(t==="cli"||document.visibilityState==="hidden")){const a=n??s.goal;if(a===null)throw new Error("No autoplay: the game's autopilot/ program offers no goal for its bot.");if(s.goals.length>0&&!s.goals.includes(a))throw new Error(`This game's bot has no goal "${a}"; its goals are ${s.goals.map(l=>`"${l}"`).join(", ")}.`);Tt(s,a,t);return}const o=i&&typeof i.view=="number"?i.players[i.view]:void 0;if(!e&&t==="cli"&&E!==null){pe(void 0,"ended by `autoplay off` before std said how it ended"),o?.autopilot===!0&&U(o,!1,t);return}const r=Ue(o,e,n);if(r!==null)throw new Error(r);U(o,e,t,e?n:void 0)}let E=null;function pe(e,t="ended by Play before std said how it ended"){if(E===null||e!==void 0&&E.run!==e)return;const{run:n,abort:s}=E;E=null,s.abort(),!n.stopped&&n.headless?.state==="playing"&&(n.headless={...n.headless,state:"failed",why:t},n.log.append("play","autoplay-end",{goal:n.headless.goal,achieved:!1,why:n.headless.why}),g())}const Pt=/^(\S+) \(([^,]+), ([^)]+)\): (done|failed: (.*?)|no outcome)(?:; (.*))?$/;function Tt(e,t,n){if(e.url===null)throw new Error("The game's dev server is still starting: autoplay once Play is running.");pe();const s=new AbortController;E={run:e,abort:s},e.headless={goal:t,state:"playing",why:null},e.log.append("play","autoplay-on",{goal:t,device:"headless",by:n}),g();const o=[];let r=null;const a=()=>!e.stopped&&E?.abort===s,l=u=>{if(!a())return;const d=Pt.exec(u);if(d){const f=d[5]??(d[4]==="no outcome"?"no outcome":null);d[4]!=="done"&&o.push(`${d[1]}: ${f??""}${d[6]?`; ${d[6]}`:""}`),e.log.append("play","outcome",{slot:d[1],goal:t,achieved:d[4]==="done",...f?{why:f}:{},device:d[2],mode:d[3],...d[6]?{noted:d[6]}:{}})}else u.startsWith("check failed: ")?(o.push(u),e.log.append("play","check",{goal:t,ok:!1,failure:u.slice(14)})):(r=u,e.log.append("play","play-line",{goal:t,line:u}))},c=u=>{if(!a())return;E=null;const d=u?null:o[0]??r??"std's play ended failed and said nothing";e.headless={goal:t,state:u?"achieved":"failed",why:d},e.log.append("play","autoplay-end",{goal:t,achieved:u,...d===null?{}:{why:d}}),g()};(async()=>{const u=await fetch("/__editor/play/std/play",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({goal:t}),signal:s.signal});if(!u.ok||u.body===null){l((await u.json().catch(()=>({}))).error??`std's play answered ${u.status}`),c(!1);return}const d=u.body.pipeThrough(new TextDecoderStream).getReader();let f="";for(;;){const{value:w,done:C}=await d.read();if(C)break;f+=w;for(let p=f.indexOf(`
|
|
6
|
-
`);p>=0;p=f.indexOf(`
|
|
7
|
-
`)){const y=JSON.parse(f.slice(0,p));if(f=f.slice(p+1),y.end!==void 0){c(y.end.ok===!0);return}typeof y.line=="string"&&l(y.line)}}l("std's play ended before it said how."),c(!1)})().catch(u=>{l(u instanceof Error?u.message:String(u)),c(!1)})}function Ve(e){const t=typeof e.view=="number"?e.players[e.view]:void 0;return t?.device?t:e.players.find(n=>n.device!==null)}async function cn(){const e=i?Ve(i):void 0;if(!e?.device)throw new Error("No player's page has joined the game yet.");const t=await Oe(e.device);return i?.log.append("play","capture",{slot:e.slot,file:t}),t}async function fe(e,t){const n=i&&!i.stopped&&i.documentId===e?i:null;if(!n)throw new Error(`Nothing is playing in ${e}; \`play\` starts it.`);const s=n.players.filter(a=>a.device!==null);if(s.length===0)throw new Error("No player's page has joined the game yet.");const o=await Promise.all(s.map(a=>je(a.device,t).then(l=>({player:a,clock:l})))),r=o.find(({player:a})=>a===Ve(n))??o[0];return n.log.append("play",t.action,{...t,...r.clock}),it(e,r.clock),r.clock}function un(e,t){return fe(e,{action:t?"pause":"resume"})}function pn(e,t){return fe(e,{action:"step",frames:t})}async function fn(e,t){lt(e,t),i&&!i.stopped&&i.documentId===e&&i.players.some(n=>n.device!==null)&&await fe(e,{action:"speed",speed:t})}function xt(e,t){const{paused:n,speed:s}=R(e.documentId),o=t.device;if(o===null)return;const r=a=>je(o,a).then(()=>{},l=>e.log.append("play","script-error",{phase:"clock",slot:t.slot,message:String(l)}));(s!==1?r({action:"speed",speed:s}):Promise.resolve()).then(()=>n?r({action:"pause"}):void 0)}const jt=3e3,Ot=8e3;function Mt(e){const t=`Player ${e.number}'s page`,n=()=>{if(e.device===null)throw new Error(`${t} has not joined the game yet.`);return e.device},s=(o,r,a=jt)=>{let l;const c=new Promise((u,d)=>{l=setTimeout(()=>d(new Error(`${t} did not answer ${o} within ${a/1e3} s.`)),a)});return Promise.race([r.catch(u=>{throw new Error(`${t} refused ${o}: ${u instanceof Error?u.message:String(u)}`)}),c]).finally(()=>clearTimeout(l))};return{title:()=>t,async key({code:o,holdMs:r}){const a=n();try{await s(`the key ${o}`,H(a,[{key:{key:o,down:!0}}])),r>0&&await new Promise(l=>setTimeout(l,r))}finally{await s(`the key ${o}'s release`,H(a,[{key:{key:o,down:!1}}]))}},async press({x:o,y:r}){const a=n();await s("a press",H(a,[{pointer:{x:o,y:r,button:0,down:!0}},{pointer:{x:o,y:r,button:0,down:!1}}]))},async nodes(o){const{screen:r,truncated:a}=await s("inspect",me(n()));return{matched:r.length+(a?.screen??0),nodes:r.slice(0,o)}},inspect:()=>s("inspect",me(n())),capture:()=>s("capture",(async()=>{const o=await Oe(n());return i?.log.append("play","capture",{slot:e.slot,file:o}),pt(o)})(),Ot)}}async function Fe(e){const[t,n]=await Promise.all([m("/devices"),m("/pages")]);for(const s of e.players){const o=Object.entries(n).filter(([,c])=>c===s.slot).map(([c])=>c),r=c=>t.find(u=>u.id===`${u.kind}-${c.slice(0,8)}`)?.id,a=o.map(r).filter(c=>c!==void 0).at(-1);if(a===void 0||a===s.device)continue;const l=s.device===null;s.device=a,s.page=o.find(c=>r(c)===a),s.traced=0,e.log.append("play",l?"player-joined":"player-page-loaded",{slot:s.slot,device:a}),Ge(e,s),xt(e,s),g()}}function Je(e,t){e.players.splice(e.players.indexOf(t),1),t.undrive(),t.frame.remove(),typeof e.view=="number"&&e.view>=e.players.length&&(e.view=Math.max(0,e.players.length-1)),ue()}function At(){!i||i.players.length>=ne||(L.set(i.documentId,Math.min(ne,(L.get(i.documentId)??de)+1)),Be(i))}function Be(e){e.adding=e.adding.then(async()=>{if(e.stopped||e.url===null||e.players.length>=ne)return;const t=Math.max(0,...e.players.map(l=>l.number))+1,n=`${e.tag}-${t}`,s=document.createElement("iframe");s.setAttribute("credentialless",""),s.title=`Player ${t}`,s.dataset.testid=`std-player-${t}`,Object.assign(s.style,{position:"absolute",border:"0",background:"#000"});const o=new URL(e.url);o.hostname=location.hostname,o.searchParams.set("slot",n),s.src=o.href;const r={number:t,slot:n,frame:s,page:null,device:null,autopilot:!1,goal:null,traced:0,undrive:()=>{}};Object.assign(r,{undrive:He(s,Mt(r))}),e.players.push(r),e.host.appendChild(s),ue(),g();const a=Date.now()+ve;try{for(;r.device===null;){if(e.stopped)return;if(Date.now()>a)throw new Error(`Player ${t}'s page did not join the game's dev server within ${ve/1e3} s.`);await new Promise(l=>setTimeout(l,_e)),await Fe(e)}}catch(l){throw e.stopped||Je(e,r),l}ce(),g()}).catch(t=>{if(e.stopped)return;const n=t instanceof Error?t.message:String(t);e.failure=n,e.log.append("play","script-error",{phase:"player",message:n}),e.stage.report("A player could not join",n),g()})}function Lt(){const e=i;e&&(L.set(e.documentId,Math.max(1,(L.get(e.documentId)??de)-1)),e.adding=e.adding.then(()=>{if(e.stopped||e.players.length<=1)return;const t=e.players.at(-1);Je(e,t),e.log.append("play","player-left",{slot:t.slot,device:t.device}),ce(),g()}))}function Rt(e,t,n){const s=typeof n.label=="string"?n.label:"an error with no message",o=typeof n.file=="string"?` (${n.file.replace(/^https?:\/\/[^/]+/,"").replace(/\?[^:]*/,"")}${n.line!==void 0?`:${String(n.line)}`:""}${n.column!==void 0?`:${String(n.column)}`:""})`:"",r=`${s}${o}`;if(e.lastError=`Player ${t.number}: ${r}`,g(),e.errorsSaid.has(r))return;e.errorsSaid.add(r);const a=typeof n.stack=="string"?`
|
|
8
|
-
${n.stack.split(`
|
|
9
|
-
`).slice(1,5).join(`
|
|
10
|
-
`)}`:"";S().console.error(`The game threw in Player ${t.number}'s page (${t.slot}): ${r}${a}`,"play")}function _t(e,t){const n=[];for(const s of t)s.trim()!==""&&(/^\s/.test(s)&&n.length>0?n.at(-1).push(s):n.push([s]));for(const s of n){const o=s.join(`
|
|
11
|
-
`);if(/^\s/.test(s[0])||!/Error\b/.test(s[0])&&!s.some(a=>/^\s+at\s/.test(a))){e.log.append("play","server-output",{message:o});continue}e.log.append("play","script-error",{phase:"server",message:o}),e.lastError=`The game's dev server: ${s[0]}`,g();const r=`server: ${s[0].replace(/^\d{1,2}:\d{2}:\d{2}(?:\s?[AP]M)?\s+/i,"")}`;e.errorsSaid.has(r)||(e.errorsSaid.add(r),S().console.error(`The game's dev server threw:
|
|
12
|
-
${s.slice(0,6).join(`
|
|
13
|
-
`)}`,"play"))}}async function Ct(e){const t=e.serverErrors,n=await m(t===null?"/errors":`/errors?${new URLSearchParams({server:String(t.server??""),from:String(t.next)})}`);e.serverErrors={server:n.server,next:n.next},t!==null&&_t(e,n.lines)}async function Nt(e){if(await Fe(e),await Ct(e).catch(t=>{const n=`server-output: ${String(t)}`;e.errorsSaid.has(n)||(e.errorsSaid.add(n),e.log.append("play","server-output",{message:`Play could not read the dev server's error output: ${String(t)}`}))}),e.headless!==null){for(const[t,n]of Object.entries(await m("/pages")))/^(server|p2p)-\d+$/.test(n)&&!e.headlessTraced.has(t)&&e.headlessTraced.set(t,{slot:n,traced:0});for(const[t,n]of e.headlessTraced){const{lines:s,next:o}=await m(`/trace?page=${t}&from=${n.traced}`);n.traced=o;for(const r of s){const{k:a,s:l,...c}=JSON.parse(r);e.log.append("script",typeof a=="string"?a:"trace",{slot:n.slot,...c},typeof l=="number"&&Number.isFinite(l)?{simT:l/be,tick:l}:void 0)}}}for(const t of e.players){if(t.page===null)continue;const{lines:n,next:s}=await m(`/trace?page=${t.page}&from=${t.traced}`);t.traced=s;for(const o of n){const{k:r,s:a,...l}=JSON.parse(o);e.log.append("script",typeof r=="string"?r:"trace",{slot:t.slot,...l},typeof a=="number"&&Number.isFinite(a)?{simT:a/be,tick:a}:void 0),r==="error"&&Rt(e,t,l)}}}function Se(e){if(!i||e.defaultPrevented||e.ctrlKey||e.metaKey||e.altKey||e.code==="Escape"&>())return;const t=e.target;if(t&&(t.isContentEditable||/^(INPUT|TEXTAREA|SELECT)$/.test(t.tagName)))return;const n=St(),s=/^Digit[1-4]$/.test(e.code)?Number(e.code.slice(5))-1:e.code==="Tab"?n[(n.indexOf(i.view)+(e.shiftKey?n.length-1:1))%n.length]:e.code==="Escape"&&i.view!=="edit"?"edit":void 0;s===void 0||typeof s=="number"&&!i.players[s]||(e.preventDefault(),e.stopPropagation(),M(s))}function gn(e,t,n){const{documentId:s}=e,o=document.createElement("div");o.dataset.testid="std-players",Object.assign(o.style,{position:"absolute",inset:"0"});const r=document.createElement("div"),a=document.createElement("div");Object.assign(a.style,{position:"absolute",inset:"0",pointerEvents:"none"}),Object.assign(r.style,{position:"relative",zIndex:"1",pointerEvents:"none"}),e.container.appendChild(o),(e.overlay??e.container).append(a,r);const l=[ye.createRoot(r),ye.createRoot(a)];l[0].render(z.createElement(yt)),l[1].render(z.createElement(ht));const c=st(s,mt),u=Array.from(crypto.getRandomValues(new Uint8Array(3)),p=>p.toString(16).padStart(2,"0")).join(""),d=i={documentId:s,players:[],view:0,goal:h?.goal??null,goals:A,url:null,tag:u,host:o,stage:e,log:c,adding:Promise.resolve(),failure:null,stopped:!1,lastError:null,errorsSaid:new Set,headless:null,headlessTraced:new Map,serverErrors:null},f=()=>{const p=typeof d.view=="number"?d.players[d.view]:void 0;p&&document.activeElement===p.frame&&U(p,!1,"takeover")};window.addEventListener("blur",f),window.addEventListener("keydown",Se,!0);let w=null;const C=()=>{w=setTimeout(()=>{Nt(d).catch(p=>c.append("play","script-error",{phase:"trace",message:String(p)})).finally(()=>{d.stopped||C()})},_e)};return n.then(async()=>{const p=await m("/errors").catch(()=>null);p!==null&&(d.serverErrors={server:p.server,next:p.next})}).then(()=>Promise.all([m("/start",{method:"POST",headers:{"content-type":"application/json"},body:"{}"}),m("/goals").then(({goals:p})=>p,p=>(c.append("play","script-error",{phase:"goals",message:p instanceof Error?p.message:String(p)}),[]))])).then(([{url:p},y])=>{if(!d.stopped){d.url=p,d.goals=A=y,(d.goal===null||y.length>0&&!y.includes(d.goal))&&(d.goal=y[0]??null),c.append("play","running",{url:p,goals:y}),C();for(let j=L.get(s)??de;j>0;j--)Be(d);d.adding.then(()=>{if(d.stopped)return;const j=d.failure??(d.players.some(O=>O.device!==null)?null:"No player's page joined the game.");if(j!==null){K(s,j);return}K(s,null),e.ready();const ge=ct(s);ge!==null&&kt(!0,"panel",ge.goal??void 0).catch(O=>c.append("play","autoplay-refused",{message:O instanceof Error?O.message:String(O)}))}),g()}},p=>{if(d.stopped)return;const y=p instanceof Error?p.message:String(p);K(s,y),t("The game's dev server could not be started",y)}),g(),()=>{pe(d),d.stopped=!0,w!==null&&clearTimeout(w),window.removeEventListener("blur",f),window.removeEventListener("keydown",Se,!0);for(const p of l)p.unmount();for(const p of d.players)p.undrive();o.remove(),r.remove(),a.remove(),c.end(),i===d&&(i=null),g()}}const $e="std-scene.document",Dt=/^levels\/.+\.blend$/,It=/^document:model:(levels\/.+\.blend)$/;let V=null,Ke=0;const re=new Set,ie=e=>{if(e!==V){V=e,Ke+=1;for(const t of[...re])t()}},yn=()=>V,hn=()=>Ke;function mn(e){return re.add(e),()=>{re.delete(e)}}function wn(){const e=()=>{const o=It.exec(S().documents.activeId()??"")?.[1];o!==void 0&&Ne()===!0&&ie(o)},t=S().documents.subscribe(e),n=vt(e),s=le(()=>ie(null));return e(),()=>{t(),n(),s()}}async function vn(e){if(Ne()!==!0)return{ok:!1,error:"The open project is not a std game (no std.json), so it has no Scene view."};const t=e.level;if(t!==void 0&&(typeof t!="string"||!Dt.test(t)))return{ok:!1,error:`std-scene opens a level's Blender file, levels/<name>.blend; it was given ${JSON.stringify(t)}.`};const n=t??V;return n===null?{ok:!1,error:"No std level is open: open a level's .blend (levels/<name>.blend), or name one as { level }."}:(ie(n),await S().workspace.open({kind:"tool",id:$e})?{ok:!0,data:{level:n}}:{ok:!1,error:`${$e} is not registered.`})}export{fn as A,R as B,Ht as C,wn as D,ft as E,vn as F,Qt as G,Xt as H,Wt as I,pn as J,un as K,zt as L,he as M,ln as N,gn as O,Yt as P,rt as Q,dn as R,$e as S,st as T,K as U,kt as V,M as W,Vt as X,hn as a,yn as b,vt as c,Le as d,Ft as e,rn as f,bt as g,Ee as h,Ne as i,cn as j,Zt as k,nn as l,we as m,sn as n,en as o,tn as p,Jt as q,an as r,mn as s,Kt as t,Et as u,qt as v,Bt as w,on as x,mt as y,dt as z};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as d,jA as L,j as m,bs as W,bt as J,e as K}from"./volter-sdk-D8o6TU4A.js";import{s as U,a as N,e as C,S as X,b as q}from"./std-scene-level-DeiReu6Z.js";import{Group as _,ACESFilmicToneMapping as B,NoToneMapping as z,AgXToneMapping as Q,Box3 as Y,LineSegments as G,Sprite as H,EdgesGeometry as Z,OctahedronGeometry as ee,LineBasicMaterial as te,CanvasTexture as ne,SRGBColorSpace as se,SpriteMaterial as re}from"./volter-shared-three-core-DEsIwtOu.js";import"./client-Dj2xr2fw.js";const we="workspace.document",xe="Scene",oe=new Map([[z,"none"],[B,"aces"],[Q,"agx"]]),ae=n=>n instanceof Error?n.message:String(n);function ie(n){const e=n.gl?.toneMapping??B,t=oe.get(e);return t===void 0?`The level's canvas tone-maps with three's mapper ${e}, which the viewport does not draw (it draws none, ACES and AgX).`:{drawMode:"rendered",all:{lighting:{source:"scene",auto:null,tone:{mapper:t,exposure:n.gl?.toneMappingExposure??1}},backdrop:{source:"scene"}}}}const le={spawn:4906624,seat:6333946,prompt:16436245};function ce(n,e){const t=le[e[0]??""]??16020150,i=new _,r=new G(new Z(new ee(.3)),new te({color:t,depthTest:!1,transparent:!0}));r.renderOrder=999;const l=`${n.name||"(unnamed)"} · ${e.join(", ")}`,a=document.createElement("canvas"),o=a.getContext("2d");o.font="28px Inter, system-ui, sans-serif",a.width=Math.ceil(o.measureText(l).width)+24,a.height=44,o.font="28px Inter, system-ui, sans-serif",o.fillStyle="rgba(0, 0, 0, 0.6)",o.fillRect(0,0,a.width,a.height),o.fillStyle=`#${t.toString(16).padStart(6,"0")}`,o.fillText(l,12,31);const u=new ne(a);u.colorSpace=se;const s=new H(new re({map:u,depthTest:!1,transparent:!0}));return s.scale.set(.4*a.width/a.height,.4,1),s.position.y=.6,s.renderOrder=999,i.add(r,s),i}function R(n){n.traverse(e=>{e instanceof G&&(e.geometry.dispose(),e.material.dispose()),e instanceof H&&(e.material.map?.dispose(),e.material.dispose())})}function de(n){const e=[];return n.traverse(t=>{const i=t.userData.behaviours;i!==null&&typeof i=="object"&&Object.keys(i).length>0&&e.push({object:t,behaviours:Object.keys(i)})}),e}function ue(n,e,t){let i="",r=null,l=[];const a=n.onFrame(()=>{if(!t()){r&&(n.setHelper("std-markers",null),R(r),r=null,i="");return}const o=de(e),u=o.map(({object:s,behaviours:p})=>`${s.uuid}:${p.join(",")}`).join("|");if(u!==i){i=u,r&&R(r),r=new _,r.name="std markers";for(const{object:s,behaviours:p}of o)r.add(ce(s,p));l=o.map(({object:s})=>s),n.setHelper("std-markers",r)}l.forEach((s,p)=>r.children[p].position.setFromMatrixPosition(s.matrixWorld))});return()=>{a(),n.setHelper("std-markers",null),r&&R(r)}}const F=new WeakMap;function pe(n,e){const t=(F.get(n)??Promise.resolve()).then(e);F.set(n,t.catch(()=>{}))}function fe(n,e){const{documentId:t,module:i,transform:r,root:l}=e,a=C(),o=a.documentWorld(l);if(o===null)return e.fail(new Error("The Scene view's root stands in no document scene of its stage.")),()=>{};const u=n.rig();let s=!0,p=!1,x;const y=new Promise(c=>{x=c}),S=[];return pe(u.renderer.domElement,async()=>{if(!s)return;let c;try{c=await i.mountScene({renderer:u.renderer,world:o,camera:u.camera,root:l,onError:e.fail})}catch(E){e.fail(E);return}s&&(c.draw(e.overlays()),e.mounted(c,!0),S.push(n.onFrame(()=>{c.advance(performance.now()/1e3),r!==null&&!p&&(p=a.setDisplayTransform(t,r)),e.framed()})),S.push(ue(n,l,e.overlays))),await y,e.mounted(c,!1),c.unmount()}),()=>{s=!1;for(const c of S.splice(0).reverse())c();p&&a.setDisplayTransform(t,null),x()}}function ye({documentId:n}){const e=n??`tool:${X}`;d.useSyncExternalStore(U,N,N);const t=q(),{Object3DDocumentViewport:i,frameAll:r}=C(),l=d.useMemo(()=>{const h=new _;return h.name="Level",h},[]),a=d.useCallback(()=>({root:l,dispose(){}}),[l]),[o,u]=d.useState(()=>L()),[s,p]=d.useState(!0),x=d.useRef(s);x.current=s;const[y,S]=d.useState(null),[c,E]=d.useState({error:null,gradingExtra:!1}),b=d.useRef(null),$=d.useRef(null);if(d.useEffect(()=>{if(t!==null)return W((h,v)=>{v?.some(k=>J(k,t))&&u(L())})},[t]),d.useEffect(()=>{if(t===null)return;const h=C();let v=!1,k=null,D=null,P=null,M=null;const j=g=>{v||E(w=>({...w,error:`${t}: ${ae(g)}`}))};return(async()=>{const g=await K(()=>import(`/@volter-std-scene/${t}?import&v=${o}`),[]);if(v)return;const w=ie(g.canvas);if(typeof w=="string"){j(new Error(w));return}S(f=>f?.component===g.component&&JSON.stringify(f.presentation)===JSON.stringify(w)?f:{presentation:w,component:g.component}),E({error:null,gradingExtra:g.gradingExtra});const O=await g.viewTransform();if(v){O?.dispose();return}k=O;const V={documentId:e,module:g,transform:O,root:l,fail:j,overlays:()=>x.current,mounted:(f,T)=>{T?b.current=f:b.current===f&&(b.current=null)},framed:()=>{$.current!==t&&!new Y().setFromObject(l).isEmpty()&&r(e)&&($.current=t)}},A=()=>{const f=h.stage(e),T=f?.rig().renderer??null;T!==P&&(M?.(),M=null,P=T,f&&(M=fe(f,V)))};D=h.onStages(A),A()})().catch(j),()=>{v=!0,D?.(),M?.(),k?.dispose()}},[e,r,t,o,l]),d.useEffect(()=>{b.current?.draw(s)},[s]),t===null)return m.jsx("div",{"data-testid":"std-scene-empty",style:{padding:16,font:"12px Inter, system-ui, sans-serif"},children:"No std level to draw: open a level's Blender file (levels/<name>.blend), and its Scene view draws it."});const I=c.error??(c.gradingExtra?"The level's grading holds effects beyond its view transform, which this view does not draw: the game shows them.":null);return m.jsxs("div",{"data-testid":"std-scene",style:{position:"absolute",inset:0,display:"flex",flexDirection:"column",overflow:"hidden"},children:[m.jsxs("div",{role:"toolbar","aria-label":"Scene",style:{display:"flex",alignItems:"center",gap:8,padding:"2px 8px",font:"11px Inter, system-ui, sans-serif"},children:[m.jsx("span",{"data-testid":"std-scene-level",children:t}),m.jsxs("label",{style:{display:"flex",alignItems:"center",gap:4},children:[m.jsx("input",{type:"checkbox","data-testid":"std-scene-overlays",checked:s,onChange:h=>p(h.currentTarget.checked)}),"Overlays (colliders, sensors, markers)"]})]}),I!==null&&m.jsx("div",{role:c.error?"alert":"status","data-testid":"std-scene-banner",style:{padding:"4px 8px",font:"11px Inter, system-ui, sans-serif",background:c.error?"rgba(220, 38, 38, 0.25)":"rgba(250, 204, 21, 0.2)"},children:I}),m.jsx("div",{style:{position:"relative",flex:1,minHeight:0},children:y!==null&&m.jsx(i,{documentId:e,sourcePath:y.component,displayName:`Scene: ${t}`,build:a,stageKind:"std-scene",presentation:y.presentation})})]})}export{ye as default,we as point,xe as title};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{aA as b,aE as v,jC as x,jD as T,jy as S}from"./volter-sdk-D8o6TU4A.js";import{d as E,l as P,c as $}from"./index-Bc73pJIv.js";import"./client-Dj2xr2fw.js";const j="#ffffff",C="#14171c";async function U(n,m){const{modulePath:e,width:a,height:o}=m;if(!n)throw new Error(`No project is open, so '${e}' cannot be loaded. Open the project first.`);const t=await E(n),i=t.find(h=>h.modulePath===e);if(!i)throw new Error(`'${e}' is not a story file of this project. `+(t.length===0?"This project has no *.stories.tsx / *.stories.ts under src/.":`This project's story files are: ${t.map(h=>h.modulePath).join(", ")}.`));await b(await P(n));let s;try{s=await i.load()}catch(h){throw new Error(`'${e}' failed to import — ${h instanceof Error?h.message:String(h)}`)}const r=await v(e,s);if(!r.ok)throw new Error(r.error);const c=M(e,r.stories,m.story),u=await A(e,c,{width:a,height:o}),l=await O(u,a,o);return{modulePath:e,width:a,height:o,variants:u,contactSheet:l}}function M(n,m,e){if(e===void 0)return m;const a=m.find(o=>o.name===e);if(!a)throw new Error(`'${n}' exports no story named '${e}'. It exports: ${m.map(o=>o.name).join(", ")}.`);return[a]}async function A(n,m,e){const{width:a,height:o}=e,t=document.createElement("div");t.setAttribute("style",`position:fixed;left:-20000px;top:0;width:${a}px;height:${o}px;overflow:hidden;contain:strict;pointer-events:none;background:${j};`),document.body.appendChild(t);const i=[];try{for(const s of m){const r=document.createElement("div");r.setAttribute("style",`position:relative;width:${a}px;height:${o}px;overflow:hidden;`),r.style.boxSizing="border-box",t.replaceChildren(r);const c=await x(async()=>{const l=await T(r,n,s.name,s.Component);return await I(r),l});await c.settled();const u=c.result;try{const l=await $(t,{canvasFrame:c.frame,cropToContent:!0});i.push({name:s.name,label:s.label,base64:l.base64,mimeType:"image/png"})}finally{u?.unmount(),await new Promise(l=>setTimeout(l,0)),r.remove()}}}finally{t.remove()}return i}async function I(n){for(let o=0;o<10&&!(n.childNodes.length>0);o++)await new Promise(t=>setTimeout(t,0));if(n.childNodes.length===0)return;const e=200,a=5e3;await new Promise(o=>{let t=null,i=!1;const s=new MutationObserver(()=>{t!==null&&clearTimeout(t),t=setTimeout(c,e)}),r=setTimeout(c,a);function c(){i||(i=!0,s.disconnect(),t!==null&&clearTimeout(t),clearTimeout(r),o())}s.observe(n,{subtree:!0,childList:!0,attributes:!0,characterData:!0}),t=setTimeout(c,e)})}async function O(n,m,e){const a=Math.min(Math.max(1,n.length),2),o=Math.max(1,Math.ceil(n.length/a)),t=[];for(const d of n){const f=new Image;f.src=`data:${d.mimeType};base64,${d.base64}`,await f.decode(),t.push(f)}const i=Math.max(1,...t.map(d=>d.naturalWidth),t.length?0:m),s=Math.max(1,...t.map(d=>d.naturalHeight),t.length?0:e),r=i*a,c=s*o,u=document.createElement("canvas");u.width=r,u.height=c;const l=u.getContext("2d");if(!l)throw new Error("Unable to create the story variant sheet.");l.fillStyle=C,l.fillRect(0,0,r,c);for(const[d,f]of n.entries()){const g=d%a*i,y=Math.floor(d/a)*s,p=t[d];l.drawImage(p,g+Math.floor((i-p.naturalWidth)/2),y+Math.floor((s-p.naturalHeight)/2)),S(l,f.name.toUpperCase(),g,y,i,s)}const h=u.toDataURL("image/png"),w=h.indexOf(",");return{width:r,height:c,base64:w>=0?h.slice(w+1):h,mimeType:"image/png"}}export{U as captureProjectStoryVariants};
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const s="workspace.style",e={id:"substance",title:"Substance",colorTheme:"substance",materialId:"classic",typography:{sans:"'Source Sans 3', 'Segoe UI', system-ui, sans-serif",mono:"'Source Code Pro', Menlo, monospace"}};export{s as point,e as style};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const e="workspace.layout",t={id:"texture",title:"Texture",description:"Substance-Painter-shaped texturing. Uses Model's arrangement until the texture program ships its layer stack.",requires:{documentKind:"model"}};export{t as layout,e as point};
|