@volter/game-editor 0.5.68 → 0.5.70
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 +10941 -5080
- package/LICENSE +9 -10
- package/LICENSE-BLENDER +2 -2
- package/NOTICE +2 -2
- package/additions/canvas/package.json +8 -0
- package/additions/canvas/src/canvas-mount.ts +46 -0
- package/additions/canvas/src/scene2d.tsx +18 -0
- package/catalog/entries/bake.json +1 -1
- package/catalog/entries/blender.json +3 -3
- package/catalog/entries/music.json +5 -5
- package/catalog/project-source/LICENSE +6 -6
- package/catalog/project-source/src/contributions/bake.kind.ts +2 -2
- package/catalog/project-source/src/contributions/builder-document.tsx +1 -1
- package/catalog/project-source/src/contributions/builder-ui.tsx +3 -3
- package/catalog/project-source/src/contributions/module-source.ts +4 -4
- package/catalog/project-source/src/lib/reflections/volume-reflection-material.ts +59 -59
- package/catalog/project-source/src/lib/static-batch/Frozen.tsx +1 -1
- package/catalog/project-source/src/lib/static-batch/mutation-watch.ts +1 -1
- package/catalog/project-source/src/tools/bake-preview.tool.ts +9 -9
- package/dist/.vite/manifest.json +4026 -4026
- package/dist/assets/{AssetBudgetPanel-P2PeL_X5.js → AssetBudgetPanel-DpXsaQ6w.js} +4 -4
- package/dist/assets/AudioViewer-BdTHfNhD.js +1 -0
- package/dist/assets/{CanvasBoardDocument-BFJdTVGp.js → CanvasBoardDocument-DY-7zohc.js} +1 -1
- package/dist/assets/CanvasSceneViewport-57CEFqSM.js +1 -0
- package/dist/assets/ColorInput-Co6tCY9p.js +1 -0
- package/dist/assets/{EntityModelDocument-Du8wIbyK.js → EntityModelDocument-C-lhKrxv.js} +1 -1
- package/dist/assets/{EnvironmentAssetDocument-_SttfMY_.js → EnvironmentAssetDocument-BNe6ANTN.js} +1 -1
- package/dist/assets/{GameplaySessionTimeline-CWudWnfd.js → GameplaySessionTimeline-CryFYfYN.js} +1 -1
- package/dist/assets/ImageViewer-DiD2yIG4.js +1 -0
- package/dist/assets/{InspectorCanvasPreview-CEr_Kxna.js → InspectorCanvasPreview-BrFjhoiD.js} +1 -1
- package/dist/assets/InspectorObjectPreview-BBVO8bDT.js +1 -0
- package/dist/assets/JsonAssetDocument-xyXetSbl.js +2 -0
- package/dist/assets/{LiveModuleDocument-BWjOzO_6.js → LiveModuleDocument-BiAunjHS.js} +1 -1
- package/dist/assets/{LutAssetDocument-DIc6nsht.js → LutAssetDocument-5sW-5rb0.js} +1 -1
- package/dist/assets/{ModelAssetDocument-_CqTsX_A.js → ModelAssetDocument-Bdy7x47a.js} +1 -1
- package/dist/assets/{NonThreeAuthoringBootstrap-C-V23E1e.js → NonThreeAuthoringBootstrap-BP-1bVEr.js} +1 -1
- package/dist/assets/Object3DDocumentToolbar-CvnSLDPI.js +1 -0
- package/dist/assets/Object3DDocumentViewport-BE_OPc8T.js +2 -0
- package/dist/assets/{Object3DPreview-BPHEr3vI.js → Object3DPreview-D3w_dKrX.js} +1 -1
- package/dist/assets/OnlineAssetDetail-BnT8_p1W.js +1 -0
- package/dist/assets/PlayBar-C8Mn-EI0.js +1 -0
- package/dist/assets/{QuarksAssetDocument-4Dne3EHx.js → QuarksAssetDocument-DLMH5Csk.js} +1 -1
- package/dist/assets/ReactCanvasControls-rNz8syVB.js +1 -0
- package/dist/assets/RootSelectionOverlay-Cn2Rbr1N.js +1 -0
- package/dist/assets/{ShaderAssetDocument-W3ZjLCkt.js → ShaderAssetDocument-CsJCsNfA.js} +4 -4
- package/dist/assets/ShadowEditor-jB05hr1W.js +1 -0
- package/dist/assets/{SourceAssetViewer-BGUeDAEv.js → SourceAssetViewer-D0NgGrER.js} +1 -1
- package/dist/assets/StageHost-B3Yt4I7r.js +2 -0
- package/dist/assets/{StoryPreviewMount-Di8uMovM.js → StoryPreviewMount-CzzRn24c.js} +1 -1
- package/dist/assets/ThreeBoardDocument-BoHTN4Vl.js +2 -0
- package/dist/assets/{ThreeIsolationSceneContent-BAKurKW5.js → ThreeIsolationSceneContent-BM-0S6J5.js} +1 -1
- package/dist/assets/{ToolObject3DPreview-CffvGJ1h.js → ToolObject3DPreview-BeM_kx_u.js} +1 -1
- package/dist/assets/Toolbar-BZyog9MR.js +1 -0
- package/dist/assets/{TransientHint-CgmkrmKF.js → TransientHint-RJEkOJoy.js} +1 -1
- package/dist/assets/VideoViewer-CxajgKrf.js +1 -0
- package/dist/assets/ViewportShadingMenu-S2lADFJg.js +1 -0
- package/dist/assets/active-ingest-CjZtqL7Q.js +3 -0
- package/dist/assets/{animation-clock-fLmY_3--.js → animation-clock-CWVW-mqY.js} +1 -1
- package/dist/assets/animation-mixers.service-CpoYw8cs.js +1 -0
- package/dist/assets/animation-timeline.utility-CEerojaB.js +1 -0
- package/dist/assets/{asset-budget-asset.menu-BDRDWrvx.js → asset-budget-asset.menu-Bk6scVWQ.js} +1 -1
- package/dist/assets/{asset-budget.action-tQmNGQHC.js → asset-budget.action-DtBDSfDj.js} +1 -1
- package/dist/assets/{asset-budget.document-BthgX37Z.js → asset-budget.document-R2zyoJ8E.js} +1 -1
- package/dist/assets/{asset-budget.menu-DfyWVH6p.js → asset-budget.menu-D6jza5Bc.js} +1 -1
- package/dist/assets/asset-editor-persistence-DrgwOZIW.js +1 -0
- package/dist/assets/asset-loaders-CUeYIjeH.js +2 -0
- package/dist/assets/{asset-preview-Cv7tfD98.js → asset-preview-CQfnI2cX.js} +1 -1
- package/dist/assets/{audio-unlock.service-BvHvZjzx.js → audio-unlock.service-W3UBKsw9.js} +1 -1
- package/dist/assets/audio.utility-qrXBdGXg.js +1 -0
- package/dist/assets/autoplay.service-DQD3Swo9.js +1 -0
- package/dist/assets/{babylon-authoring-adapter-Cg5ALSpr.js → babylon-authoring-adapter-CS9LZNmz.js} +1 -1
- package/dist/assets/binding-resolver-B9VI52zt.js +2 -0
- package/dist/assets/blender-emscripten-engine-Cd6az4pU.js +2 -0
- package/dist/assets/{blender-node-editor.document-B92MO51u.js → blender-node-editor.document-BWLFvA2g.js} +1 -1
- package/dist/assets/{blender-properties-tab-CDVyDAbf.js → blender-properties-tab-BSmWG9d0.js} +1 -1
- package/dist/assets/{blender-runtime-host-CuniE0sy.js → blender-runtime-host-Cbkie7m4.js} +2 -2
- package/dist/assets/{blender-runtime-skin-B_tOz5j5.js → blender-runtime-skin-C_ATCb-z.js} +7 -7
- package/dist/assets/{blender-runtime.document-DxUwLiEW.js → blender-runtime.document-P9zdgwMt.js} +7 -7
- package/dist/assets/{blender-timeline.document-BdEEoQbK.js → blender-timeline.document-DRwySEJO.js} +1 -1
- package/dist/assets/{blender-uv-editor.document-EMSUlRh4.js → blender-uv-editor.document-CmLoL2Vo.js} +1 -1
- package/dist/assets/blender-version.status-CP4Jqkry.js +1 -0
- package/dist/assets/blender-wali-engine-CZcS3eAd.js +2 -0
- package/dist/assets/{blender.command-BkBML2SY.js → blender.command-BYGm0Q_s.js} +1 -1
- package/dist/assets/blender.status-BMETIbb2.js +1 -0
- package/dist/assets/board-guides-BG-MHK2G.js +1 -0
- package/dist/assets/body-marks-C1LxJtQb.js +1 -0
- package/dist/assets/{bridge.command-VnplZ81v.js → bridge.command-DpUNErKN.js} +3 -3
- package/dist/assets/{browserAll-BCmkqg8n.js → browserAll-DES3i79H.js} +1 -1
- package/dist/assets/{build-player.document-DV7YcJQt.js → build-player.document-B42HrdSU.js} +1 -1
- package/dist/assets/build-profiles.document-Di5CQoH9.js +2 -0
- package/dist/assets/build-progress.status-B4te7-3j.js +1 -0
- package/dist/assets/{build-session-BGe0eGrQ.js → build-session-Yw4JoE8T.js} +2 -2
- package/dist/assets/{build.action-Bdj4ZEL_.js → build.action-B-DBpUj6.js} +1 -1
- package/dist/assets/{build.command-DAWiYvPa.js → build.command-CfWoHNp0.js} +1 -1
- package/dist/assets/build.header-BaURztYD.js +1 -0
- package/dist/assets/{build.menu-BiRNC_xc.js → build.menu-BFBn-dPJ.js} +1 -1
- package/dist/assets/{build.service-Dw9K6VSF.js → build.service-D8gYWB3n.js} +1 -1
- package/dist/assets/{camera-C-qXzXFf.js → camera-C-uR_xQp.js} +1 -1
- package/dist/assets/{camera-runtime.inspector-BDrwWRlU.js → camera-runtime.inspector-BOGGEqVq.js} +1 -1
- package/dist/assets/{canvas-design-mount-DLn49Zle.js → canvas-design-mount-DamLAaWn.js} +4 -4
- package/dist/assets/canvas-entry-runtime-a6N7Rsrj.js +2 -0
- package/dist/assets/{canvas-preview-frames-B5xFRjhQ.js → canvas-preview-frames-XbrKuyJu.js} +1 -1
- package/dist/assets/{canvas-story-capture.service-DQ_leYyi.js → canvas-story-capture.service-DYRdEzkG.js} +2 -2
- package/dist/assets/capability-coverage-7wKVA3PF.js +7 -0
- package/dist/assets/{collaboration-presence-BOS1t8wI.js → collaboration-presence-DaVKEfxs.js} +1 -1
- package/dist/assets/{collider-Bf4Uk6LW.js → collider-BEwlgkG5.js} +1 -1
- package/dist/assets/component-board.service-BWSBM2Bb.js +2 -0
- package/dist/assets/{component-board.service-DFSSCaCf.js → component-board.service-C9ZouakC.js} +2 -2
- package/dist/assets/{component-board.service-CpVXGhz5.js → component-board.service-D2eGKqHf.js} +2 -2
- package/dist/assets/component-contracts.service-D0uElctD.js +1 -0
- package/dist/assets/component-instance-root-C1Xf4SwR.js +1 -0
- package/dist/assets/{component-verbs.command-DGzZAV_Z.js → component-verbs.command-N-Tj8KOS.js} +1 -1
- package/dist/assets/{component-verbs.service-D1rVRogp.js → component-verbs.service-CWh4mQ7X.js} +1 -1
- package/dist/assets/{config-D-EAAhqP.js → config-hmmj-QHZ.js} +4 -4
- package/dist/assets/{configurations-_HZOWZPy.js → configurations-B9Pi_eRN.js} +1 -1
- package/dist/assets/connection.status-C2HPxoww.js +1 -0
- package/dist/assets/{constraint-5KLYpGm7.js → constraint-Bp1l8hY-.js} +1 -1
- package/dist/assets/constraints.inspector-D-h1f3K2.js +1 -0
- package/dist/assets/{content-bounds-DKBD7nsv.js → content-bounds-7UyI42Vj.js} +1 -1
- package/dist/assets/{contract-system-adapters-h6OUBRYA.js → contract-system-adapters-Bq1LGdjs.js} +1 -1
- package/dist/assets/coverage.service-BiBikIsV.js +3 -0
- package/dist/assets/{create-runtime-Bg2uYMfh.js → create-runtime-Cx-q5z2y.js} +2 -2
- package/dist/assets/curve-Co_mro-I.js +1 -0
- package/dist/assets/{data-asset-7Nfmx-28.js → data-asset-Ckx4D_U_.js} +1 -1
- package/dist/assets/data-check-core-CHqar_E8.js +1 -0
- package/dist/assets/data-ref-70PUrMuT.js +1 -0
- package/dist/assets/debug-bridge-CarsgKpm.js +1 -0
- package/dist/assets/debug-registry-DgYNlhH_.js +1 -0
- package/dist/assets/{deferred-ingest-play-Bej67_y9.js → deferred-ingest-play-Bpdhu2i-.js} +2 -2
- package/dist/assets/{design-time-canvas-mount-CFW9ZWuk.js → design-time-canvas-mount-Ca9Q75Ui.js} +2 -2
- package/dist/assets/design-time-layers-BIb71snu.js +1 -0
- package/dist/assets/{design-time-mount.service-DJeAPUB_.js → design-time-mount.service-DL6ZK2TQ.js} +2 -2
- package/dist/assets/{design-time-mount.service-_R1UDCw3.js → design-time-mount.service-zKUVjKAu.js} +2 -2
- package/dist/assets/design-time-react-mount-NrWimSxY.js +1 -0
- package/dist/assets/{document-preview-three-5cbuuJMH.js → document-preview-three-DoDs6q1q.js} +1 -1
- package/dist/assets/{dom-authoring-adapter-CoESNvrM.js → dom-authoring-adapter-adLQog9l.js} +1 -1
- package/dist/assets/{draco3d-Sk9K4AUT.js → draco3d-aUvQF1Zx.js} +1 -1
- package/dist/assets/{edit-mode-audio.service-CH6J-8N7.js → edit-mode-audio.service-CHZ1ultu.js} +1 -1
- package/dist/assets/edit-mode-authoring-ZQuUwc6e.js +1 -0
- package/dist/assets/{edit-mode-networking.service-C4o2pGHX.js → edit-mode-networking.service-C7fk2fL1.js} +1 -1
- package/dist/assets/editor-api-C8MUOrwt.js +1 -0
- package/dist/assets/{editor-layers-B4oYfpj8.js → editor-layers-CGX7iCSP.js} +1 -1
- package/dist/assets/editor-presentation-activity-CqJH4G9t.js +1 -0
- package/dist/assets/{editor-shell-store-Bh1S7M54.js → editor-shell-store-BRqB1JZO.js} +1 -1
- package/dist/assets/{entity-object-B_5Gc0Ky.js → entity-object--ZpqIat7.js} +1 -1
- package/dist/assets/{extend-DcEyE5jI.js → extend-BZQIQ18F.js} +1 -1
- package/dist/assets/{fork-menu-CKjNh3MO.js → fork-menu-CziehkPx.js} +1 -1
- package/dist/assets/{frame-debugger-store-D5YViF_8.js → frame-debugger-store-BOQjrPsh.js} +1 -1
- package/dist/assets/game-audio-BeCyd0Ha.js +1 -0
- package/dist/assets/{game-contract-seams-C0AVYwvO.js → game-contract-seams-Dgqv6S8X.js} +1 -1
- package/dist/assets/{game-css-scope-transform-8GOvVu1s.js → game-css-scope-transform-anfk8vP_.js} +2 -2
- package/dist/assets/game-document.service-CqmgrRUA.js +1 -0
- package/dist/assets/game-eval.command-CoetFm6_.js +2 -0
- package/dist/assets/game-module-access-Cg1EB8Mx.js +1 -0
- package/dist/assets/game-network-BqI-Ehz0.js +22 -0
- package/dist/assets/{gameplay-export-K5AcStVC.js → gameplay-export-D0hZoeSg.js} +1 -1
- package/dist/assets/gameplay-replay-BHz6VAVa.js +1 -0
- package/dist/assets/{gameplay.command-DoWqBWhH.js → gameplay.command-CPc9GKuW.js} +1 -1
- package/dist/assets/generation-CdOATubd.css +1 -0
- package/dist/assets/{generation-jobs-CiabIfR0.js → generation-jobs-D-zXQNZI.js} +1 -1
- package/dist/assets/generation.service-Bwt9lQEG.js +1 -0
- package/dist/assets/{generations-DU9rCeQR.js → generations-d-U9lCVo.js} +1 -1
- package/dist/assets/generations.status-BQ8xhaLN.js +1 -0
- package/dist/assets/hierarchy-marks-CndAXtie.js +1 -0
- package/dist/assets/hierarchy-marks-CsTaTkc7.js +1 -0
- package/dist/assets/hosted-asset-materialization-r2vKfJGY.js +2 -0
- package/dist/assets/{ibl-override-material-CiKkaOTW.js → ibl-override-material-CMo_a49U.js} +1 -1
- package/dist/assets/index-BMxv2MNV.js +1 -0
- package/dist/assets/index-BPVnvJfX.js +1 -0
- package/dist/assets/{index-C4AUQbmq.js → index-BqzpzjSB.js} +1 -1
- package/dist/assets/{index-CC1puVjo.js → index-CMU7lnXk.js} +1 -1
- package/dist/assets/index-CPiRKiDC.css +1 -0
- package/dist/assets/{index-CaG87ZF-.js → index-Cr9NTnJp.js} +271 -270
- package/dist/assets/index-DSMLYme2.js +1 -0
- package/dist/assets/index-DoGlzvsX.js +1 -0
- package/dist/assets/{index-BsYc2Oyj.js → index-dlvCCB72.js} +1 -1
- package/dist/assets/{index-Kb9_s5aP.js → index-xjc_62Ha.js} +1 -1
- package/dist/assets/{index-C20Flc1s.js → index-z0_InXxO.js} +2 -2
- package/dist/assets/{inference-diagnostics-MGcIHEX6.js → inference-diagnostics-D5jfxI5p.js} +1 -1
- package/dist/assets/{ingest-boot-viewport-D2okO6JI.js → ingest-boot-viewport-Be0v44yf.js} +1 -1
- package/dist/assets/ingest-siblings-BowXSozE.js +1 -0
- package/dist/assets/ingest-source-persistence-BGIvThcv.js +1 -0
- package/dist/assets/ingest.service-wVm-ZcTI.js +1 -0
- package/dist/assets/{inspect-C8RP8G5F.js → inspect-CN92MgRT.js} +1 -1
- package/dist/assets/inspection-D8fZOHCM.js +1 -0
- package/dist/assets/instances.command-B6gJuL1Z.js +1 -0
- package/dist/assets/{json-history-resource-CTXRV4GD.js → json-history-resource-C9G_vCX9.js} +1 -1
- package/dist/assets/{layered-pick-B_-BRrRD.js → layered-pick-D9tIz_m7.js} +1 -1
- package/dist/assets/{light-CskDQ8gF.js → light-BGbl1a8K.js} +1 -1
- package/dist/assets/{live-project-verbs-BOAQN3ME.js → live-project-verbs-p1sdTwhF.js} +1 -1
- package/dist/assets/{machine.document-BxOoCOo9.js → machine.document-C1acXU7l.js} +1 -1
- package/dist/assets/{machines.finder-CqEceWzS.js → machines.finder-sOxNTYPx.js} +1 -1
- package/dist/assets/material-D7289cYI.js +1 -0
- package/dist/assets/{material-factory-qB9pzcQf.js → material-factory-D0T-DH8c.js} +1 -1
- package/dist/assets/{mesh-5--4qA-C.js → mesh-1A-HHxD6.js} +1 -1
- package/dist/assets/model-asset-sections-D1uxOu2v.css +1 -0
- package/dist/assets/model-asset-sections.service-DF-mllTL.js +1 -0
- package/dist/assets/{model-inspection-MrJY0U_-.js → model-inspection-CuVwNVvv.js} +1 -1
- package/dist/assets/{model-thumbnail-uk-2sblh.js → model-thumbnail-xm1Fabi2.js} +1 -1
- package/dist/assets/{models.finder-rk8dhgO8.js → models.finder-DrvU1qGk.js} +1 -1
- package/dist/assets/module-mode-BHOAAbgO.js +2 -0
- package/dist/assets/mount-canvas-ingest-root-aVZkVNh4.js +2 -0
- package/dist/assets/mount-dom-ingest-root-eOOGPaxi.js +2 -0
- package/dist/assets/{mount-ingest-root-BC3-1Cw1.js → mount-ingest-root-BsWbEvr_.js} +2 -2
- package/dist/assets/{mount-manifest-QJOB11Kv.js → mount-manifest-t6ipNsoF.js} +1 -1
- package/dist/assets/mount-readiness-DyAd17pe.js +4 -0
- package/dist/assets/mount-three-ingest-root-DIR0wKrN.js +1 -0
- package/dist/assets/{mounted-authoring-B7RL_V28.js → mounted-authoring-DX3DC9PJ.js} +1 -1
- package/dist/assets/{mounted-story-viewport-source-CnYhX3vW.js → mounted-story-viewport-source-D8FqGpci.js} +1 -1
- package/dist/assets/{native-debug-module-B-rWJfWE.js → native-debug-module-CB738yQu.js} +1 -1
- package/dist/assets/{navigation-BVu-aVmF.js → navigation-B9ihB0qU.js} +1 -1
- package/dist/assets/{navmesh.menu-C3M63eR4.js → navmesh.menu-CPxr9LPT.js} +1 -1
- package/dist/assets/{navmesh.service-B0H1fUfn.js → navmesh.service-BAtili_Y.js} +1 -1
- package/dist/assets/network-observer.service-CqTuZNtI.js +1 -0
- package/dist/assets/network.utility-CclYEmfV.js +1 -0
- package/dist/assets/object-marks-BnvSuCTt.js +1 -0
- package/dist/assets/{object3d-authoring-subject-BDrxd1GA.js → object3d-authoring-subject-XccsO0xG.js} +1 -1
- package/dist/assets/{object3d-document-session-registry-OjqzJ86S.js → object3d-document-session-registry-BWeuL0nf.js} +2 -2
- package/dist/assets/{oid-transform-Bzc2ZJSH.js → oid-transform-BYeAsBKI.js} +1 -1
- package/dist/assets/{particles-Be7AvO4c.js → particles-BXiQDiB-.js} +1 -1
- package/dist/assets/{performance-profiler-OwnXQX0M.js → performance-profiler-CMbwGBuk.js} +1 -1
- package/dist/assets/pixi-authoring-adapter-CPsN0Yk7.js +1 -0
- package/dist/assets/pixi-live-write-target-BUbt5ixX.js +1 -0
- package/dist/assets/{play.command-CIGRq8ow.js → play.command-Bz5Ra6Uj.js} +2 -2
- package/dist/assets/pose-guard-CLabLSzf.js +1 -0
- package/dist/assets/presentation-C7ZHYsKF.js +1 -0
- package/dist/assets/{product-BN31wSnB.js → product-MSpbAqgo.js} +1 -1
- package/dist/assets/{profiler.action-D57Kj9ym.js → profiler.action-1Jbc-7Q4.js} +1 -1
- package/dist/assets/{profiler.menu-Dh9Q5DDx.js → profiler.menu-C544DxWZ.js} +1 -1
- package/dist/assets/profiler.utility-QnzedS3X.js +1 -0
- package/dist/assets/{project-authoring-session-LCJAwGrD.js → project-authoring-session-BhNfg7TY.js} +2 -2
- package/dist/assets/project-provenance-BGnJXJwa.js +1 -0
- package/dist/assets/{properties-bone-constraints.inspector-CaIDq5nN.js → properties-bone-constraints.inspector-DRCPfugt.js} +1 -1
- package/dist/assets/{properties-bone.inspector-D2fcQGMF.js → properties-bone.inspector-CYHeZX0p.js} +1 -1
- package/dist/assets/{properties-collection.inspector-CF5AtTAd.js → properties-collection.inspector-DtGhPkiU.js} +1 -1
- package/dist/assets/{properties-constraints.inspector-Bj2itDrS.js → properties-constraints.inspector-TIyIV777.js} +1 -1
- package/dist/assets/{properties-data.inspector-BfRqk0Xo.js → properties-data.inspector-vA0MTaup.js} +1 -1
- package/dist/assets/{properties-material.inspector-Bf8H0mvu.js → properties-material.inspector-C73spBQh.js} +1 -1
- package/dist/assets/{properties-modifiers.inspector-BKShc1TH.js → properties-modifiers.inspector-9oyLBBE0.js} +1 -1
- package/dist/assets/{properties-object.inspector-YBh8ABnN.js → properties-object.inspector-7BuiUgbd.js} +1 -1
- package/dist/assets/{properties-output.inspector-CVkzfs-l.js → properties-output.inspector-CjYAggz2.js} +1 -1
- package/dist/assets/{properties-particles.inspector-ChDpAq-2.js → properties-particles.inspector-DpSfjykX.js} +1 -1
- package/dist/assets/{properties-physics.inspector-BLEM7aMj.js → properties-physics.inspector-BUTvmfU9.js} +1 -1
- package/dist/assets/{properties-render.inspector-vU4D9xLL.js → properties-render.inspector-CEdsDqbI.js} +1 -1
- package/dist/assets/{properties-scene.inspector-C-DoN-kL.js → properties-scene.inspector-4kp0sLNw.js} +1 -1
- package/dist/assets/{properties-texture.inspector-DySxy1oU.js → properties-texture.inspector-Ckpqy9eo.js} +1 -1
- package/dist/assets/{properties-view-layer.inspector-DEKxMahJ.js → properties-view-layer.inspector-CQIFbY8-.js} +1 -1
- package/dist/assets/{properties-world.inspector-m5qL_TQV.js → properties-world.inspector-xZgNV6rI.js} +1 -1
- package/dist/assets/r3f-design-session-D8VF-hty.js +2 -0
- package/dist/assets/{r3f-physics-binding-Bgzzd4ol.js → r3f-physics-binding-oippu1v_.js} +1 -1
- package/dist/assets/{r3f-source-authoring-adapter-C8oMjdTL.js → r3f-source-authoring-adapter-CZJX6VLM.js} +1 -1
- package/dist/assets/react-canvas-navigation-DuzvnFoN.js +1 -0
- package/dist/assets/react-inspector.service-CV4p6nrb.js +1 -0
- package/dist/assets/react-story-board-mhldts6w.js +1 -0
- package/dist/assets/{react-three-rapier.esm-BR2ttgLS.js → react-three-rapier.esm-Bo9LjrZe.js} +1 -1
- package/dist/assets/react-world-authoring-adapter-CuyruDfq.js +1 -0
- package/dist/assets/{realm-services-DefTrXnY.js → realm-services-BtiLE3a-.js} +1 -1
- package/dist/assets/reflection-probe-capture.inspector-mrrOHs-9.js +1 -0
- package/dist/assets/{reflection-probe-BHNGwVyz.js → reflection-probe-sIto9mh0.js} +1 -1
- package/dist/assets/registry-DpUr2YIM.js +1 -0
- package/dist/assets/{relative-import-specifier-DQzkawgj.js → relative-import-specifier-CyT6yU4l.js} +1 -1
- package/dist/assets/{render-env-BZ7LsGfk.js → render-env-C63BGT5v.js} +1 -1
- package/dist/assets/{render-features-C7QwmhCo.js → render-features-CBl6rom9.js} +1 -1
- package/dist/assets/{render-settings-BBvkacR3.js → render-settings-DjarlnjI.js} +1 -1
- package/dist/assets/resolve-three-OiswFiIS.js +702 -0
- package/dist/assets/root-seam-contract-BYLQx4CQ.js +1 -0
- package/dist/assets/{run-selection-BUeubtHj.js → run-selection-BMu0v3qC.js} +1 -1
- package/dist/assets/scene-capture-BLf3lJ44.js +1 -0
- package/dist/assets/scene-document.service-CjPDph5k.js +2 -0
- package/dist/assets/{scene-framing-PVMqGU8h.js → scene-framing-BhNk0WhI.js} +1 -1
- package/dist/assets/{scene-index--lRWLEmW.js → scene-index-DHeKmalD.js} +1 -1
- package/dist/assets/{scene-query-s1y04OVB.js → scene-query-ByZtXA2m.js} +1 -1
- package/dist/assets/seeded-random-DmdE0u-C.js +1 -0
- package/dist/assets/{session-CTXsU1lK.js → session-CeyQA0Dv.js} +35 -35
- package/dist/assets/{setup-renderer-OOw1SykJ.js → setup-renderer-Bf8g2S0f.js} +1 -1
- package/dist/assets/{source-object3d-authoring-adapter-RmutT5Dt.js → source-object3d-authoring-adapter-IDRws2Nk.js} +1 -1
- package/dist/assets/{source-persistence-backend-HviqjKZ2.js → source-persistence-backend-Dzc6MsmN.js} +1 -1
- package/dist/assets/{spark-renderer-lifecycle-DfYpvEJa.js → spark-renderer-lifecycle-B6Axb6jm.js} +1 -1
- package/dist/assets/{stage-keyboard-DDi7S27C.js → stage-keyboard-CpnIYiph.js} +1 -1
- package/dist/assets/stage-overlay-set-BrJzOTCe.js +1 -0
- package/dist/assets/stage-presence-markers-BFTl9Djp.js +1 -0
- package/dist/assets/stage-transform-tools-QaenmSrC.js +1 -0
- package/dist/assets/standard-viewport-dressing-DuKH01r4.js +24 -0
- package/dist/assets/{state-watch.action-DEdb1mNa.js → state-watch.action-BaRZ6YII.js} +1 -1
- package/dist/assets/{state-watch.menu-jWbUM3kw.js → state-watch.menu-DR2AtQ6r.js} +1 -1
- package/dist/assets/state-watch.utility-VW8H9Fgi.js +1 -0
- package/dist/assets/{story-capture-Dj1xkeKH.js → story-capture-BEVV48wm.js} +1 -1
- package/dist/assets/story-documents-DndjqJ7Y.js +3 -0
- package/dist/assets/{story-documents.service-BzQCuNBu.js → story-documents.service-CPrZ7gRM.js} +1 -1
- package/dist/assets/{story-documents.service-iNP-ORNr.js → story-documents.service-wCVmBPhh.js} +1 -1
- package/dist/assets/{story-media-presence-zTPlU9HR.js → story-media-presence-BSX78yVJ.js} +1 -1
- package/dist/assets/{story-pixi-preview-B7THvSl7.js → story-pixi-preview-D4FuH7lJ.js} +1 -1
- package/dist/assets/{story-presentation-BLXYPadR.js → story-presentation-2AxtnKGb.js} +1 -1
- package/dist/assets/story-three-preview-DjObHSAF.js +2 -0
- package/dist/assets/{structural-ids-Br2zjINh.js → structural-ids-BOo2BRoY.js} +1 -1
- package/dist/assets/studio-environment-B--4k2mN.js +2 -0
- package/dist/assets/{surface-state-D9j6qNu8.js → surface-state-CQHVfsma.js} +1 -1
- package/dist/assets/{syntactic-prop-specs-BTnsMOvH.js → syntactic-prop-specs-CewRyC4c.js} +1 -1
- package/dist/assets/team-playtest.service-B9m6CNk7.js +1 -0
- package/dist/assets/{three-oYrcK5SQ.js → three-B86IzdNg.js} +1 -1
- package/dist/assets/three-authoring-adapter-BD8_MtYK.js +1 -0
- package/dist/assets/three-authoring.service-BjJ9wetk.js +2 -0
- package/dist/assets/{three-ingest-runtime-CXKjNysA.js → three-ingest-runtime-CXySzulx.js} +1 -1
- package/dist/assets/{three-integration-CuAnYaTW.js → three-integration-nl5TC6EF.js} +2 -2
- package/dist/assets/three-integration.service-BEk5QkKM.js +1 -0
- package/dist/assets/three-projection-core-D4m8lsPU.js +1 -0
- package/dist/assets/{three-state-wXRU3rLr.js → three-state-C36FeFK4.js} +1 -1
- package/dist/assets/{three-story-capture.service-DMJRcqjr.js → three-story-capture.service-C0icETyL.js} +2 -2
- package/dist/assets/{three-story-model-DgiAP-oQ.js → three-story-model-CqWu9S2a.js} +1 -1
- package/dist/assets/three-viewport-presentation-CCMgGLI2.js +141 -0
- package/dist/assets/tools-BnE3UWVA.js +1 -0
- package/dist/assets/transform-mode-request-CIgYj1Qb.js +1 -0
- package/dist/assets/transport-strip-B1AJKpn-.js +1 -0
- package/dist/assets/transport.header-D-n6dQ5n.js +1 -0
- package/dist/assets/{trigger-volume-DP0G1VBe.js → trigger-volume-BLkHmfm9.js} +1 -1
- package/dist/assets/tuples-uyiMYXrv.js +1 -0
- package/dist/assets/ui-board-document-6e4w4a8B.js +2 -0
- package/dist/assets/{user-data-CqOoAowZ.js → user-data-BXFD1jg-.js} +1 -1
- package/dist/assets/user-data-CODoGZqA.js +1 -0
- package/dist/assets/{utility-view-state-Db97zwDz.js → utility-view-state-I_o0WThv.js} +1 -1
- package/dist/assets/viewport-door-AsLxGhLN.js +1 -0
- package/dist/assets/{viewport-root-presentation-B35t51xX.js → viewport-root-presentation-B1qtThOB.js} +1 -1
- package/dist/assets/{viewport-surface-status-D5kZtFW5.js → viewport-surface-status-CWmQeKTO.js} +1 -1
- package/dist/assets/{webworkerAll-CfKEb4Ao.js → webworkerAll-DC445ANd.js} +1 -1
- package/dist/assets/worker-jepHAPPr.js +2 -0
- package/dist/assets/workspace-arrangement-dkubzCff.js +1 -0
- package/dist/assets/world-documents-psBK5u_2.js +1 -0
- package/dist/assets/world-root-stage-binding-BrvO8VMz.js +1 -0
- package/dist/assets/{xstate-animation-binding-aQEmNSpm.js → xstate-animation-binding-ChVFHSlM.js} +1 -1
- package/dist/assets/{xstate-animation-meta-CnMX1Sc1.js → xstate-animation-meta-D7xnhyCE.js} +1 -1
- package/dist/volter-shared-react.json +10 -0
- package/dist/volter-shared-three.json +3 -0
- package/dist-node/cli.js +247 -209
- package/dist-node/create.js +90 -74
- package/package.json +20 -19
- package/src/contributions.d.ts +1 -1
- package/src/index.ts +10 -10
- package/starter/cube.py +1 -1
- package/template/.agents/references/project-manual.md +17 -18
- package/template/.agents/skills/editor/SKILL.md +6 -6
- package/template/.agents/skills/editor/agents/openai.yaml +3 -3
- package/template/.agents/skills/editor/references/editor-control.md +62 -62
- package/template/.agents/skills/{vgai-3d-models → volter-3d-models}/SKILL.md +3 -3
- package/template/.agents/skills/{vgai-ingest-existing-game → volter-ingest-existing-game}/SKILL.md +3 -3
- package/template/.agents/skills/{vgai-music → volter-music}/SKILL.md +7 -7
- package/template/{.github/skills/vgai-threejs-authoring → .agents/skills/volter-threejs-authoring}/SKILL.md +9 -9
- package/template/.agents/skills/volter-threejs-authoring/agents/openai.yaml +4 -0
- package/template/{.claude/skills/vgai-threejs-authoring → .agents/skills/volter-threejs-authoring}/references/helper-catalog.md +1 -1
- package/template/.claude/skills/editor/SKILL.md +6 -6
- package/template/.claude/skills/editor/agents/openai.yaml +3 -3
- package/template/.claude/skills/editor/references/editor-control.md +62 -62
- package/template/{.github/skills/vgai-3d-models → .claude/skills/volter-3d-models}/SKILL.md +3 -3
- package/template/{.github/skills/vgai-ingest-existing-game → .claude/skills/volter-ingest-existing-game}/SKILL.md +3 -3
- package/template/.claude/skills/{vgai-threejs-authoring → volter-threejs-authoring}/SKILL.md +9 -9
- package/template/.claude/skills/volter-threejs-authoring/agents/openai.yaml +4 -0
- package/template/{.agents/skills/vgai-threejs-authoring → .claude/skills/volter-threejs-authoring}/references/helper-catalog.md +1 -1
- package/template/.github/copilot-instructions.md +1 -1
- package/template/.github/skills/editor/SKILL.md +6 -6
- package/template/.github/skills/editor/agents/openai.yaml +3 -3
- package/template/.github/skills/editor/references/editor-control.md +62 -62
- package/template/{.claude/skills/vgai-3d-models → .github/skills/volter-3d-models}/SKILL.md +3 -3
- package/template/{.claude/skills/vgai-ingest-existing-game → .github/skills/volter-ingest-existing-game}/SKILL.md +3 -3
- package/template/{.agents/skills/vgai-threejs-authoring → .github/skills/volter-threejs-authoring}/SKILL.md +9 -9
- package/template/.github/skills/volter-threejs-authoring/agents/openai.yaml +4 -0
- package/template/.github/skills/{vgai-threejs-authoring → volter-threejs-authoring}/references/helper-catalog.md +1 -1
- package/template/.mcp.json +3 -3
- package/template/AGENTS.md +25 -25
- package/template/DEVLOG.md +1 -1
- package/template/IDIOMS.md +3 -3
- package/template/LICENSE +3 -3
- package/template/README.md +12 -13
- package/template/check-idioms.ts +71 -95
- package/template/manifest-entry-modules-plugin.ts +17 -4
- package/template/package.json +13 -15
- package/template/server/colyseus-setup.ts +1 -9
- package/template/server/main.ts +4 -9
- package/template/server/rooms/arena-room.ts +10 -10
- package/template/server/rooms/game-room.ts +10 -10
- package/template/server/rooms.ts +3 -5
- package/template/src/bot/QaTester.tsx +1 -1
- package/template/src/bot/bot-station.ts +2 -2
- package/template/src/bot/tester-station.ts +1 -1
- package/template/src/contributions/README.md +1 -1
- package/template/src/contributions/analytics.analytics.tsx +1 -1
- package/template/src/contributions/data.document.tsx +2 -2
- package/template/src/contributions/pages.finder.ts +1 -1
- package/template/src/contributions/tester.inspector.tsx +2 -2
- package/template/src/contributions/use-game-modules.ts +1 -1
- package/template/src/input.ts +1 -1
- package/template/src/lib/reflections/volume-reflection-material.ts +59 -59
- package/template/src/lib/static-batch/Frozen.tsx +1 -1
- package/template/src/lib/static-batch/mutation-watch.ts +1 -1
- package/template/src/main.ts +19 -38
- package/template/src/manifest-entry-modules.d.ts +12 -1
- package/template/src/net/NetworkedPlayers.tsx +3 -3
- package/template/src/prefabs/HeroBox.stories.tsx +1 -1
- package/template/src/world.tsx +1 -1
- package/template/tsconfig.json +1 -1
- package/template/validate-manifest.ts +3 -3
- package/template/vite.config.ts +12 -12
- package/template/{vgai.adapter.ts → volter.adapter.ts} +1 -1
- package/template/{vgai.project.json → volter.project.json} +2 -2
- package/template-dotfiles/gitignore +27 -27
- package/workbench/src/media/game-cover.css +11 -11
- package/workbench/src/product.contribution.ts +28 -28
- package/workbench/src/{vgaiGameSkew.ts → volterGameSkew.ts} +16 -16
- package/dist/assets/AudioViewer-xFb5Wv7A.js +0 -1
- package/dist/assets/CanvasSceneViewport-vqBlOz8P.js +0 -1
- package/dist/assets/ColorInput-CX1UZjYO.js +0 -1
- package/dist/assets/ImageViewer-shZzMd91.js +0 -1
- package/dist/assets/InspectorObjectPreview-BMOvJaOw.js +0 -1
- package/dist/assets/JsonAssetDocument-D_HXneWE.js +0 -2
- package/dist/assets/Object3DDocumentToolbar-BfPH9jz5.js +0 -1
- package/dist/assets/Object3DDocumentViewport-BaXWtATg.js +0 -2
- package/dist/assets/OnlineAssetDetail-BxibUH6K.js +0 -1
- package/dist/assets/PlayBar-DRANyO01.js +0 -1
- package/dist/assets/ReactCanvasControls-K98jOX9b.js +0 -1
- package/dist/assets/RootSelectionOverlay-BQC12Gdd.js +0 -1
- package/dist/assets/ShadowEditor-DP1LWynl.js +0 -1
- package/dist/assets/StageHost-V_0opXFt.js +0 -2
- package/dist/assets/ThreeBoardDocument-tgcaZDqQ.js +0 -2
- package/dist/assets/Toolbar-uLgsrB2z.js +0 -1
- package/dist/assets/VideoViewer-ClUJ6_uy.js +0 -1
- package/dist/assets/ViewportShadingMenu-Bdkc6jcd.js +0 -1
- package/dist/assets/active-ingest-CnAeQcuQ.js +0 -3
- package/dist/assets/animation-mixers.service-DiecMX_A.js +0 -1
- package/dist/assets/animation-timeline.utility-C71vPJgs.js +0 -1
- package/dist/assets/asset-editor-persistence-BQgjOCrm.js +0 -1
- package/dist/assets/asset-loaders-5PIUVvmH.js +0 -2
- package/dist/assets/audio.utility-D9Vk_WYS.js +0 -1
- package/dist/assets/autoplay.service-CFJoLPLw.js +0 -1
- package/dist/assets/binding-resolver-C_9MBSMa.js +0 -2
- package/dist/assets/blender-emscripten-engine-BeWFjMn-.js +0 -2
- package/dist/assets/blender-version.status-DtfwUahB.js +0 -1
- package/dist/assets/blender-wali-engine-da698rDf.js +0 -2
- package/dist/assets/blender.status-ujwGU6dU.js +0 -1
- package/dist/assets/board-guides-_3R1t_-2.js +0 -1
- package/dist/assets/body-marks-RKb_LTwL.js +0 -1
- package/dist/assets/build-profiles.document-CZxDuhzz.js +0 -2
- package/dist/assets/build-progress.status-Dk5u3C67.js +0 -1
- package/dist/assets/build.header--xqH6uTP.js +0 -1
- package/dist/assets/canvas-entry-runtime-DVeh71nC.js +0 -2
- package/dist/assets/capability-coverage-DQgg6UJe.js +0 -7
- package/dist/assets/component-board.service-DgujG90T.js +0 -2
- package/dist/assets/component-contracts.service-Bc_2Xxh_.js +0 -1
- package/dist/assets/component-instance-root-df4ofoOR.js +0 -1
- package/dist/assets/connection.status-CCX-mgmr.js +0 -1
- package/dist/assets/constraints.inspector-CwEEREsf.js +0 -1
- package/dist/assets/coverage.service-CV7b5Sqn.js +0 -3
- package/dist/assets/curve-BKuiAPpj.js +0 -1
- package/dist/assets/data-check-core-CQEjuFyt.js +0 -1
- package/dist/assets/data-ref-DyFQqqX6.js +0 -1
- package/dist/assets/debug-bridge-CESAxmlz.js +0 -1
- package/dist/assets/debug-registry-l7k5Hjc8.js +0 -1
- package/dist/assets/design-time-layers-CQgnmqc8.js +0 -1
- package/dist/assets/design-time-react-mount-CFvIk_rV.js +0 -1
- package/dist/assets/edit-mode-authoring-DBjaBTxM.js +0 -1
- package/dist/assets/editor-api-D2azVray.js +0 -1
- package/dist/assets/editor-presentation-activity-C7SNSmTd.js +0 -1
- package/dist/assets/game-audio-CaGKzia4.js +0 -1
- package/dist/assets/game-document.service-FdG_gFPU.js +0 -1
- package/dist/assets/game-eval.command-4wa9vqWE.js +0 -2
- package/dist/assets/game-module-access-DulnT3NH.js +0 -1
- package/dist/assets/game-network-Bo_nlDR5.js +0 -22
- package/dist/assets/gameplay-replay-CnWnlogY.js +0 -1
- package/dist/assets/generation-DhwCUHPf.css +0 -1
- package/dist/assets/generation.service-D2yeZaJu.js +0 -1
- package/dist/assets/generations.status-3CrPw_n5.js +0 -1
- package/dist/assets/hierarchy-marks-BLPfSIym.js +0 -1
- package/dist/assets/hierarchy-marks-C25dY2fR.js +0 -1
- package/dist/assets/hosted-asset-materialization-DYdcFlDf.js +0 -2
- package/dist/assets/index-B5WjeCHm.css +0 -1
- package/dist/assets/index-BcH5GC3b.js +0 -1
- package/dist/assets/index-CwCDkEl1.js +0 -1
- package/dist/assets/index-n3QdTv-T.js +0 -1
- package/dist/assets/index.module-Ycad3DJq.js +0 -1
- package/dist/assets/ingest-siblings-CkxW__go.js +0 -1
- package/dist/assets/ingest-source-persistence-6peGfPAS.js +0 -1
- package/dist/assets/ingest.service-Cc73WMIW.js +0 -1
- package/dist/assets/inspection-CObLhnrs.js +0 -1
- package/dist/assets/instances.command-CxKGnrNl.js +0 -1
- package/dist/assets/material-BwFzKPi0.js +0 -1
- package/dist/assets/model-asset-sections-CFvvihfx.css +0 -1
- package/dist/assets/model-asset-sections.service-TZ2SaBmH.js +0 -1
- package/dist/assets/module-mode-B79jV5tQ.js +0 -2
- package/dist/assets/mount-canvas-ingest-root-BhaYNuhY.js +0 -2
- package/dist/assets/mount-dom-ingest-root-BQb1u0LX.js +0 -2
- package/dist/assets/mount-readiness-Ds0HvvLH.js +0 -4
- package/dist/assets/mount-three-ingest-root-DIDBfvIH.js +0 -1
- package/dist/assets/network-observer.service-CiR4Q9Q0.js +0 -1
- package/dist/assets/network.utility-CNG3eJ0E.js +0 -1
- package/dist/assets/object-marks-DwvIEBOK.js +0 -1
- package/dist/assets/pixi-authoring-adapter-B42K4md-.js +0 -1
- package/dist/assets/pixi-live-write-target-D56tQEe_.js +0 -1
- package/dist/assets/pose-guard-DILO6gGq.js +0 -1
- package/dist/assets/presentation-DGBuGP6i.js +0 -1
- package/dist/assets/profiler.utility-DLNySW3w.js +0 -1
- package/dist/assets/project-provenance-4ldz-EOG.js +0 -1
- package/dist/assets/r3f-design-session-C0DPEChS.js +0 -2
- package/dist/assets/react-canvas-navigation-Jowa_lJq.js +0 -1
- package/dist/assets/react-inspector.service-TfTdj_Qk.js +0 -1
- package/dist/assets/react-story-board-Bx7qYytV.js +0 -1
- package/dist/assets/react-world-authoring-adapter-C1jPW_cN.js +0 -1
- package/dist/assets/reflection-probe-capture.inspector-C-6zrzZb.js +0 -1
- package/dist/assets/registry-Z28XSZHF.js +0 -1
- package/dist/assets/resolve-three-C7zDbK29.js +0 -702
- package/dist/assets/root-seam-contract-rGNbiX6q.js +0 -1
- package/dist/assets/scene-capture-BTWgUzhI.js +0 -1
- package/dist/assets/scene-document.service-DJJp-la1.js +0 -2
- package/dist/assets/seeded-random-38To73fI.js +0 -1
- package/dist/assets/stage-overlay-set-olkNSZmq.js +0 -1
- package/dist/assets/stage-presence-markers-cznMN_qq.js +0 -1
- package/dist/assets/stage-transform-tools-BDUZqRIR.js +0 -1
- package/dist/assets/standard-viewport-dressing-BZyuxyVl.js +0 -24
- package/dist/assets/state-watch.utility-DDmn3G25.js +0 -1
- package/dist/assets/story-documents-8ehMyYHo.js +0 -3
- package/dist/assets/story-three-preview-B1nNiPwP.js +0 -2
- package/dist/assets/studio-environment-yaKaHPxH.js +0 -2
- package/dist/assets/team-playtest.service-Ds9tkO4q.js +0 -1
- package/dist/assets/three-authoring-adapter-BrkGH4cd.js +0 -1
- package/dist/assets/three-authoring.service-DoamZDMx.js +0 -2
- package/dist/assets/three-integration.service-Db-VabIm.js +0 -1
- package/dist/assets/three-projection-core-jBJVt6O0.js +0 -1
- package/dist/assets/three-viewport-presentation-CgO3eWJ-.js +0 -141
- package/dist/assets/tools-B_NJsk05.js +0 -1
- package/dist/assets/transform-mode-request-BnKpgRUW.js +0 -1
- package/dist/assets/transport-strip-a9yLoPsI.js +0 -1
- package/dist/assets/transport.header-CpfoppXc.js +0 -1
- package/dist/assets/tuples-CKsHOV9T.js +0 -1
- package/dist/assets/ui-board-document-DtTR_mBr.js +0 -2
- package/dist/assets/user-data-dHvLdpwM.js +0 -1
- package/dist/assets/viewport-door-DVkMQazS.js +0 -1
- package/dist/assets/worker-CC9Ug5Ei.js +0 -2
- package/dist/assets/workspace-arrangement-DIMM7ska.js +0 -1
- package/dist/assets/world-documents-C4t3iOD-.js +0 -1
- package/dist/assets/world-root-stage-binding-ydl3JN1a.js +0 -1
- package/dist/vgai-shared-react.json +0 -10
- package/dist/vgai-shared-three.json +0 -3
- package/template/.agents/skills/vgai-threejs-authoring/agents/openai.yaml +0 -4
- package/template/.claude/skills/vgai-threejs-authoring/agents/openai.yaml +0 -4
- package/template/.github/skills/vgai-threejs-authoring/agents/openai.yaml +0 -4
- package/template/server/loopback.ts +0 -76
- /package/dist/assets/{vgai-shared-fontawesome-CU65D4Ij.js → volter-shared-fontawesome-CU65D4Ij.js} +0 -0
- /package/dist/assets/{vgai-shared-jsx-dev-runtime-DFDKL7fx.js → volter-shared-jsx-dev-runtime-DFDKL7fx.js} +0 -0
- /package/dist/assets/{vgai-shared-jsx-runtime-DIqBpTut.js → volter-shared-jsx-runtime-DIqBpTut.js} +0 -0
- /package/dist/assets/{vgai-shared-react-BT7rMc2H.js → volter-shared-react-BT7rMc2H.js} +0 -0
- /package/dist/assets/{vgai-shared-react-dom-DFajMqMT.js → volter-shared-react-dom-DFajMqMT.js} +0 -0
- /package/dist/assets/{vgai-shared-react-dom-client-S0ozfl6_.js → volter-shared-react-dom-client-S0ozfl6_.js} +0 -0
- /package/dist/assets/{vgai-shared-three-DH4yxKwt.js → volter-shared-three-DH4yxKwt.js} +0 -0
- /package/template/{.vgai → .volter}/assets.json +0 -0
- /package/template/{.vgai → .volter}/provenance.json +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{s as G}from"./index-z0_InXxO.js";import{O as x,gz as X,bm as k,bn as j,r as _}from"./index-Cr9NTnJp.js";import{c as Y}from"./source-persistence-backend-Dzc6MsmN.js";import{c as V}from"./component-instance-root-C1Xf4SwR.js";import{J as Z}from"./json-history-resource-C9G_vCX9.js";import{a as Q,b as q}from"./pixi-transform-channels-P4rvmusc.js";function b(i){const t=i.constructor?.name?.toLowerCase()??"container";return t.includes("animatedsprite")?"animatedsprite":t.includes("nineslice")?"nineslicesprite":t.includes("tiling")?"tilingsprite":t.includes("sprite")?"sprite":t.includes("text")?"text":t.includes("graphics")?"graphics":"container"}function J(i){const t=tt(i);if(t)return t;const e=it(i);if(e)return e;const r=rt(i);if(r)return r;const n=g(i);if(n)return n;const o=b(i),s=i.children?.length??0;return s>0?`${o} (${s})`:o}function tt(i){const t=i.label?.trim();if(t){if(N(t)&&t!==i.constructor?.name)return t;if(!$(t))return t}}function N(i){return i.length<=2&&i===i.toLowerCase()}const et=new Set(["container","displayobject","sprite","animatedsprite","nineslicesprite","tilingsprite","text","bitmaptext","htmltext","graphics","mesh"]);function $(i){return N(i)||i==="Object"||i==="Function"?!0:et.has(i.replace(/^_+/,"").toLowerCase())}function rt(i){const e=i.texture?.label?.trim();return!e||/^(_?texture)?(empty|white)$/i.test(e)?void 0:(e.split("/").pop()??e).replace(/\.[a-z0-9]+$/i,"")||void 0}function g(i){const t=i.constructor?.name;if(!(!t||$(t)))return t.replace(/^_+/,"")||void 0}function v(i){const t=i.replace(/^_+/,"");return t.length>0?t:void 0}function F(i){return"addChild"in i&&typeof i.addChild=="function"&&"children"in i}function it(i){const t={seen:new WeakSet,budget:nt};let e=i.parent;for(let r=0;r<8&&e&&typeof e=="object";r++){if(t.budget<=0)return;const n=O(e,i,t)??R(e,i,2,t);if(n)return n;e=e.parent}}const nt=2e3;function S(i){return i.budget<=0?!1:(i.budget-=1,!0)}function I(i){return/^_?[A-Za-z][A-Za-zA-Z0-9]*$/.test(i)?!ot.has(i.replace(/^_+/,"")):!1}const ot=new Set(["parent","children","transform","position","origin","scale","pivot","skew","anchor","worldTransform","localTransform","groupTransform","relativeGroupTransform","renderGroup","parentRenderGroup","parentRenderGroupIndex","parentRenderLayer","relativeRenderGroupDepth","renderPipeId","instructionSet","childrenToUpdate","childrenRenderablesToUpdate","effects","filters","mask","bounds","boundsArea","visualBounds","gpuData","texture","events","eventsCount","updateFlags"]);function O(i,t,e){if(e.seen.has(i))return;e.seen.add(i);const r=E(i,t,void 0,e);if(r)return r;for(const[n,o]of Object.entries(i)){if(!S(e))return;if(!I(n))continue;const s=H(i,n,o,t);if(s)return s;const a=E(o,t,n,e);if(a)return a}}function E(i,t,e,r){const n=dt(i);if(n)for(const[o,s]of n){if(!S(r))return;const a=st(i,s,at(o)??e,t,r);if(a)return a}}function st(i,t,e,r,n){if(e){const o=H(t&&typeof t=="object"?t:i,e,t,r);if(o)return o}else if(t&&typeof t=="object"&&t.view===r){const o=g(t);if(o)return o}if(t&&typeof t=="object"&&!F(t))return O(t,r,n)}function at(i){if(!(!i||/^\d+$/.test(i)))return I(i)||i.includes("-")?v(i)??i:void 0}function*ct(i){for(let t=0;t<i.length;t++)yield[String(t),i[t]]}function*lt(i){for(const[t,e]of i.entries())yield[String(t),e]}function*ut(i){let t=0;for(const e of i)yield[String(t),e],t+=1}function dt(i){if(!(!i||typeof i!="object")){if(Array.isArray(i))return ct(i);if(i instanceof Map)return lt(i);if(i instanceof Set)return ut(i);if(Object.getPrototypeOf(i)===Object.prototype)return Object.entries(i)}}function H(i,t,e,r){if(e===r){const n=v(t);return n&&n.toLowerCase()!=="view"?g(e)??n:g(e)??g(i)??n}if(e&&typeof e=="object"&&e.view===r)return g(e)??v(t)}function R(i,t,e,r){const n=O(i,t,r);if(n)return n;if(!(e<=0))for(const[o,s]of Object.entries(i)){if(!S(r))return;if(!I(o)||!s||typeof s!="object"||F(s))continue;const a=R(s,t,e-1,r);if(a)return a}}const ht={idFor:(i,t)=>`w2d:${t.join("/")}:${b(i)}:${i.label??""}`};class ft{constructor(t,e={}){this.root=t,e.overlay&&(this.overlay=e.overlay),this.identity=e.identity??ht,this.refresh()}byId=new Map;overlay={};dirty=!1;identity;names=new WeakMap;reindex(){this.byId.clear(),this.identity.beginWalk?.();let t=0,e=0;const r=(n,o)=>{const s=this.identity.idFor(n,o);n.__authId=s,this.byId.set(s,n),t++,b(n).includes("sprite")&&e++,n.children.forEach((a,l)=>{r(a,[...o,l])})};return this.root.children.forEach((n,o)=>{r(n,[o])}),{count:t,sprites:e}}refresh(){const t=this.reindex();for(const[e,r]of Object.entries(this.overlay))this.applyOverride(e,r);return t}roots(){return this.root.children.map(t=>this.toNode(t))}node(t){const e=this.byId.get(t);return e?this.toNode(e):null}displayObject(t){return this.byId.get(t)??null}nameOf(t){const e=this.names.get(t),r=t.parent??null,n=t.constructor,o=t.label??null,s=t.texture??null,a=t.children?.length??0;if(e&&e.parent===r&&e.type===n&&e.own===o&&e.texture===s&&e.childCount===a)return e;const l={label:J(t),kind:b(t),parent:r,type:n,own:o,texture:s,childCount:a};return this.names.set(t,l),l}toNode(t){const e=t,{label:r,kind:n}=this.nameOf(t);return{id:e.__authId??"",label:r,kind:n,parentId:t.parent?.__authId??null,childIds:t.children.map(o=>o.__authId??"")}}getTransform(t){const e=this.byId.get(t);return!e||!e.position||!e.scale?null:{position:[e.position.x,e.position.y],rotation:e.rotation,scale:[e.scale.x,e.scale.y]}}setTransform(t,e){const r=this.byId.get(t);if(!r)return;e.position&&r.position.set(e.position[0],e.position[1]),e.rotation!==void 0&&(r.rotation=e.rotation),e.scale&&r.scale.set(e.scale[0],e.scale[1]),this.overlay[t]??={};const n=this.overlay[t];e.position&&(n.position=e.position),e.rotation!==void 0&&(n.rotation=e.rotation),e.scale&&(n.scale=e.scale),this.dirty=!0}properties(t){const e=this.byId.get(t);if(!e)return[];const r=[{path:"label",label:"Name",type:"string",value:e.label??""},{path:"visible",label:"Visible",type:"boolean",value:e.visible},{path:"alpha",label:"Alpha",type:"number",value:e.alpha}];return"tint"in e&&r.push({path:"tint",label:"Tint",type:"color",value:e.tint}),r}set(t,e,r){const n=this.byId.get(t);n&&(n[e]=r,this.overlay[t]??={},e==="label"&&(this.overlay[t].label=r),e==="alpha"&&(this.overlay[t].alpha=r),e==="tint"&&(this.overlay[t].tint=r),e==="visible"&&(this.overlay[t].visible=r),this.dirty=!0)}applyOverride(t,e){const r=this.byId.get(t);r&&(e.label!==void 0&&(r.label=e.label),e.alpha!==void 0&&(r.alpha=e.alpha),e.position&&r.position.set(e.position[0],e.position[1]),e.rotation!==void 0&&(r.rotation=e.rotation),e.scale&&r.scale.set(e.scale[0],e.scale[1]),e.tint!==void 0&&"tint"in r&&(r.tint=e.tint),e.visible!==void 0&&(r.visible=e.visible))}applyOverlay(t){let e=0,r=0;for(const[n,o]of Object.entries(t)){if(!this.byId.has(n)){r++;continue}this.applyOverride(n,o),this.overlay[n]={...this.overlay[n],...o},e++}return{applied:e,orphaned:r}}isDirty(){return this.dirty}serializeOverlay(){return this.overlay}replaceOverlay(t){this.overlay=structuredClone(t);for(const[e,r]of Object.entries(this.overlay))this.applyOverride(e,r);this.dirty=!0}markClean(){this.dirty=!1}}const pt={count:0,sprites:0};class yt{constructor(t,e,r,n=o=>queueMicrotask(o)){this.root=t,this.index=e,this.mapping=r,this.scheduleWindowClose=n,this.refresh()}current={nodes:new Map,rootIds:[],stats:pt};projectionFresh=!1;refresh(){const t=this.index.refresh();return this.current=this.readProjection(t),this.openProjectionWindow(),t}project(){return this.projectionFresh?this.current:this.reproject()}reproject(){const t=this.index.reindex();return this.current=this.readProjection(t),this.openProjectionWindow(),this.current}invalidate(){this.projectionFresh=!1}openProjectionWindow(){this.projectionFresh||(this.projectionFresh=!0,this.scheduleWindowClose(()=>{this.projectionFresh=!1}))}projection(){return this.current}object(t){const e=this.current.nodes.get(t)?.object??null;return e===null||e.destroyed?null:e}node(t){const e=this.current.nodes.get(t);if(!e)return null;const r=this.index.node(t);return r?{...r,parentId:e.parentId,childIds:[...e.childIds]}:null}roots(){return this.current.rootIds.map(t=>this.node(t)).filter(t=>t!==null)}pick(t,e,r){return this.candidates(t,e,r)[0]??null}candidates(t,e,r){const n=this.pointFromClient(t,e);return n?(this.project(),this.hitIds(n,r)):[]}pointFromClient(t,e){const r=this.mapping?.surface()??null;if(!r)return null;const n=r.getBoundingClientRect();if(n.width<=0||n.height<=0)return null;const o=this.mapping?.pointFromClient?.(t,e,n)??null;if(this.mapping?.pointFromClient)return o;const s=Number(r.dataset?.volterStageWidth??n.width),a=Number(r.dataset?.volterStageHeight??n.height);return!(s>0)||!(a>0)?null:{x:(t-n.left)*(s/n.width),y:(e-n.top)*(a/n.height)}}hitIds(t,e){const r=[],n=[];this.collectHits(this.root,t,"visual",r),this.collectHits(this.root,t,"hitArea",n);const o=[],s=new Set;for(const a of[...r,...n]){const l=a.__authId;l&&!e(l)&&!s.has(l)&&(s.add(l),o.push(l))}return o}rect(t){const e=this.object(t);if(!e||typeof e.getBounds!="function")return null;const r=e.getBounds();return!(r.width>0)||!(r.height>0)?null:{x:r.x,y:r.y,width:r.width,height:r.height}}frame(t){const e=this.object(t);if(!e||typeof e.getLocalBounds!="function")return null;const r=e.getLocalBounds();if(!(r.width>0)||!(r.height>0))return null;const n=(o,s)=>{const a=e.toGlobal({x:o,y:s});return{x:a.x,y:a.y}};return{tl:n(r.x,r.y),tr:n(r.x+r.width,r.y),br:n(r.x+r.width,r.y+r.height),bl:n(r.x,r.y+r.height)}}contextRects(t){const e=this.node(t);if(!e)return{siblings:[]};const r=e.parentId?this.node(e.parentId)?.childIds??[]:this.current.rootIds,n=e.parentId?this.rect(e.parentId):null;return{...n?{parent:n}:{},siblings:r.filter(o=>o!==t).map(o=>this.rect(o)).filter(o=>o!==null)}}readProjection(t){const e=new Map,r=[],n=o=>{const s=this.index.displayObject(o.id);if(!s)return;const a={object:s,id:o.id,parentId:o.parentId,childIds:[...o.childIds]};e.set(o.id,a);for(const l of o.childIds){const h=this.index.node(l);h&&n(h)}};for(const o of this.index.roots())r.push(o.id),n(o);return{nodes:e,rootIds:r,stats:t}}collectHits(t,e,r,n){const o=t.children??[];for(let s=o.length-1;s>=0;s--){const a=o[s];if(!a.visible||!a.renderable)continue;a.updateLocalTransform();const l={x:0,y:0};a.localTransform.applyInverse(e,l),this.collectHits(a,l,r,n),this.contains(a,l,r)&&n.push(a)}}contains(t,e,r){if(!t.__authId)return!1;const n=t;return r==="hitArea"?n.hitArea?n.hitArea.contains(e.x,e.y):!1:typeof n.containsPoint=="function"?n.containsPoint(e):!1}}const T="pixi",gt="data-oid",mt="data-authoring-instance",bt="data-authoring-label",xt="data-authoring-component";function vt(i){if(!i||typeof i!="object")return;const t=i[gt];return typeof t=="string"&&t.length>0?t:void 0}function C(i,t){if(!i||typeof i!="object")return;const e=i[t];return typeof e=="string"&&e.length>0?e:void 0}function w(i){return C(i,mt)}function wt(i){return C(i,bt)}function St(i){return C(i,xt)}function D(i){const t=w(i);return t?w(i.parent)!==t:!1}function It(i){return D(i)?w(i):vt(i)}function Ot(i,t,e=0){return V(`${T}:${i}:${t}`,e)}function Tt(i,t){return`${T}:${i}:@${t.join(".")}`}function Qt(i,t){const e=`${T}:${i}:`;if(!t.startsWith(e))return null;const r=t.slice(e.length);if(r.startsWith("@"))return null;const n=r.indexOf("#"),o=n<0?r:r.slice(0,n);return o.length>0?o:null}function qt(i){let t=new Map;return{beginWalk:()=>{t=new Map},idFor:(e,r)=>{const n=It(e);if(n===void 0)return Tt(i,r);const o=t.get(n)??0;return t.set(n,o+1),Ot(i,n,o)}}}const P="#root";function Ct(i){if(!(!i.position||!i.scale||!i.pivot||!i.skew))return{x:i.position.x,y:i.position.y,rotation:i.rotation,scaleX:i.scale.x,scaleY:i.scale.y,pivotX:i.pivot.x,pivotY:i.pivot.y,skewX:i.skew.x,skewY:i.skew.y}}function kt(i,t){!i.position||!i.scale||!i.pivot||!i.skew||(i.position.set(t.x,t.y),i.scale.set(t.scaleX,t.scaleY),i.pivot.set(t.pivotX,t.pivotY),i.skew.set(t.skewX,t.skewY),i.rotation=t.rotation)}class jt{constructor(t,e,r,n){this.root=t,this.onRestored=n;const o=e.shell.projectHistory;this.resource=o?new Z({history:o,kind:"session-state",scope:"session",subject:{...r,id:`${r.id}/world-2d-structure`},displayName:"World 2D structure",capture:()=>this.capture(),conflictIdentity:s=>Object.fromEntries(Object.entries(s.placements).map(([a,l])=>[a,l.parent])),restore:async s=>{this.restore(s)}}):null}byUid=new Map;resource;track(t){return this.uidOf(t)}run(t,e){this.resource?.assertCanMutate();const r=this.capture(),n=e();return this.resource&&this.resource.record(t,r,this.capture()).catch(o=>{x.error(`[canvas] failed to journal "${t}" into project history — the structural edit is applied but has no history entry (it cannot be undone): ${o instanceof Error?o.message:String(o)}`,"authoring")}),n}dispose(){this.resource?.dispose(),this.byUid.clear()}uidOf(t){if(t===this.root)return P;const e=t,r=e.__volterStructUid;if(r&&this.byUid.get(r)===t)return r;const n=r??`s${crypto.randomUUID()}`;return e.__volterStructUid=n,this.byUid.set(n,t),n}capture(){const t={};for(const[e,r]of this.byUid){const n=r.parent??null,o=Ct(r);t[e]={parent:n?this.uidOf(n):null,index:n?n.children?.indexOf(r)??-1:-1,...o?{pose:o}:{}}}return{placements:t}}restore(t){const e=Object.entries(t.placements);for(const[r,n]of e){if(n.parent!==null)continue;const o=this.byUid.get(r);o?.parent?.removeChild(o)}for(const[r,n]of e.filter(([,o])=>o.parent!==null).sort((o,s)=>o[1].index-s[1].index)){const o=this.byUid.get(r);if(!o)continue;const s=n.parent===P?this.root:this.byUid.get(n.parent);if(!s||typeof s.addChildAt!="function")continue;const a=s.children.length-(o.parent===s?1:0);s.addChildAt(o,Math.max(0,Math.min(n.index,a))),n.pose&&kt(o,n.pose)}this.onRestored()}}const Et=[{kind:"container",label:"Container",description:"A general-purpose display object that holds children, and transforms and draws them together."},{kind:"sprite",label:"Sprite",extends:"container",description:"Draws one texture: an image, or a frame of a spritesheet."},{kind:"animatedSprite",label:"AnimatedSprite",extends:"sprite",description:"Plays a list of textures as frames at an animation speed."},{kind:"tilingSprite",label:"TilingSprite",extends:"container",description:"Repeats one texture across its width and height, scrollable by its tile position."},{kind:"nineSliceSprite",label:"NineSliceSprite",extends:"container",description:"Stretches a texture without stretching its corners: the nine-slice panel of a UI."},{kind:"text",label:"Text",extends:"container",description:"Draws a string with a text style (font, size, fill, wrapping)."},{kind:"bitmapText",label:"BitmapText",extends:"container",description:"Draws a string from a bitmap font: fast to change every frame."},{kind:"htmlText",label:"HTMLText",extends:"container",description:"Draws a string of HTML and CSS markup."},{kind:"graphics",label:"Graphics",extends:"container",description:"Draws vector shapes (rectangles, circles, paths) from its draw callback."},{kind:"meshPlane",label:"MeshPlane",extends:"container",description:"A textured grid of vertices that can be bent and deformed."},{kind:"perspectiveMesh",label:"PerspectiveMesh",extends:"meshPlane",description:"A texture drawn in perspective between four corner points."},{kind:"particleContainer",label:"ParticleContainer",extends:"container",description:"Draws many lightweight particles in one batch, added from code with addParticle."}],W="canvasEditLocks";function B(){return _().projectLocalState.read(W)??{}}function Pt(i,t){_().projectLocalState.write(W,{...B(),[i]:t})}const K=Et,L=/\.(png|jpe?g|webp|gif|svg)(\?.*)?$/i,Lt="a canvas structural edit would have to add, delete or move a construction statement in the world's own source, and this lane plans property writes only — an editor-created node has no construction site there at all",M="origin",Mt="#ff2d92",At="this world's write target has no origin write, so the pivot/anchor can be seen here but not dragged";function z(i){const t=i,e=t.anchor,r=t.texture;return e&&r?.orig?{anchor:e,texture:r}:null}function _t(i){const t=z(i);if(!t)return null;const e=i.bounds;return typeof e?.width=="number"&&typeof e.height=="number"?{x:e.width,y:e.height}:{x:t.texture.orig.width,y:t.texture.orig.height}}function Nt(i){return K.find(e=>e.kind===i)?.label??i}function A(i){return!!i&&typeof i.addParticle=="function"}function $t(i,t){switch(t){case"container":return new i.Container;case"sprite":{const e=new i.Sprite(i.Texture.WHITE);return e.setSize(64,64),e}case"text":return new i.Text({text:"Text",style:{fill:16777215,fontSize:24}});case"graphics":return new i.Graphics().rect(0,0,100,100).fill(16777215);case"animatedSprite":{const e=new i.AnimatedSprite([i.Texture.WHITE]);return e.setSize(64,64),e}case"tilingSprite":return new i.TilingSprite({texture:i.Texture.WHITE,width:100,height:100});case"nineSliceSprite":return new i.NineSliceSprite({texture:i.Texture.WHITE,width:100,height:100});case"bitmapText":return new i.BitmapText({text:"BitmapText",style:{fill:16777215,fontSize:24}});case"htmlText":return new i.HTMLText({text:"HTMLText",style:{fill:16777215,fontSize:24}});case"meshPlane":{const e=new i.MeshPlane({texture:i.Texture.WHITE});return e.setSize(100,100),e}case"perspectiveMesh":{const e=new i.PerspectiveMesh({texture:i.Texture.WHITE});return e.setSize(100,100),e}case"particleContainer":return new i.ParticleContainer;default:return null}}function U(i,t){const e=Ft(i,t);Ht(t,e);for(const r of t.children??[])e.addChild(U(i,r));return e}function Ft(i,t){if(t.constructor===i.Container)return new i.Container;if(t.constructor===i.Sprite){const e=t,r=new i.Sprite(e.texture);return r.anchor.set(e.anchor.x,e.anchor.y),r}if(t.constructor===i.Text){const e=t,r=new i.Text({text:e.text,style:e.style.clone()});return r.anchor.set(e.anchor.x,e.anchor.y),r}if(t.constructor===i.Graphics)return t.clone(!0);throw new Error(`"${t.label??t.constructor?.name??"this node"}" cannot be duplicated: a ${t.constructor?.name??"custom"} is constructed by the game's own code, and copying only its display half would put a lookalike with no behaviour into the world.`)}function Ht(i,t){t.label=i.label,t.position.set(i.position.x,i.position.y),t.scale.set(i.scale.x,i.scale.y),t.pivot.set(i.pivot.x,i.pivot.y),t.skew.set(i.skew.x,i.skew.y),t.rotation=i.rotation,t.alpha=i.alpha,t.visible=i.visible,"tint"in i&&"tint"in t&&(t.tint=i.tint)}function Rt(i,t){const e=i.parentLinear;if(!e)return t;const r=e.a*e.d-e.b*e.c;if(Math.abs(r)<1e-9)return t;const[,,n,o]=i.transform.rotation,s=2*Math.atan2(n,o),a=e.a*Math.cos(s)+e.c*Math.sin(s),l=e.b*Math.cos(s)+e.d*Math.sin(s),h=t*Math.PI/180,f=a*Math.cos(h)-l*Math.sin(h),d=a*Math.sin(h)+l*Math.cos(h),c=(e.d*f-e.c*d)/r,u=(-e.b*f+e.a*d)/r,p=r<0?-h:h,y=Math.atan2(u,c)-s-p,m=Math.atan2(Math.sin(y),Math.cos(y));return(p+m)*180/Math.PI}function Dt(i){const t=new Set;return(i.x!==void 0||i.y!==void 0||i.originX!==void 0||i.originY!==void 0)&&t.add("position"),(i.width!==void 0||i.height!==void 0||i.scaleXFactor!==void 0||i.scaleYFactor!==void 0)&&(t.add("scale"),(i.width!==void 0||i.height!==void 0)&&t.add("position")),i.rotate!==void 0&&t.add("rotation"),[...t]}function Wt(i,t){const e=t*Math.PI/180/2,r=Math.sin(e),n=Math.cos(e),[o,s,a,l]=i.rotation;return[o*n+s*r,s*n-o*r,a*n+l*r,l*n-a*r]}function Bt(i,t){const e={position:[...i.transform.position],rotation:[...i.transform.rotation],scale:[...i.transform.scale]},r=t.rotate;if(r!==void 0){let d=Rt(i,r);const c=t.rotationStep;if(c!==void 0&&c>0){const[,,u,p]=i.transform.rotation,y=2*Math.atan2(u,p)*180/Math.PI,m=t.rotationOffset??0;d=Math.round((y+d-m)/c)*c+m-y}e.rotation=Wt(i.transform,d)}const n=t.width;n!==void 0&&i.rect.width>0&&(e.scale[0]=i.transform.scale[0]*Math.max(1e-4,n/i.rect.width));const o=t.height;o!==void 0&&i.rect.height>0&&(e.scale[1]=i.transform.scale[1]*Math.max(1e-4,o/i.rect.height));const s=t.scaleStep,a=d=>s!==void 0&&s>0?Math.round(d/s)*s:d,l=d=>Math.abs(d)>=1e-4?d:d<0?-1e-4:1e-4,h=t.scaleXFactor;h!==void 0&&(e.scale[0]=l(a(i.transform.scale[0]*h)));const f=t.scaleYFactor;return f!==void 0&&(e.scale[1]=l(a(i.transform.scale[1]*f))),e}function Kt(i,t,e,r){return r.originX!==void 0||r.originY!==void 0?{dx:r.originX!==void 0&&i?r.originX-i.x:0,dy:r.originY!==void 0&&i?r.originY-i.y:0}:{dx:t?(r.x??e.x)-t.x:0,dy:t?(r.y??e.y)-t.y:0}}class zt{constructor(t,e,r){this.root=t,this.store=e,this.target=r.target,this.pixi=r.pixi??G,this.transforms={dimensions:()=>"2d",get:c=>{const u=this.a2d.getTransform(c);return u?q(u):{position:[0,0,0],rotation:[0,0,0,1],scale:[1,1,1]}},editability:(c,u)=>this.target.transformEditability(c,u),beginEdit:c=>this.target.beginTransformEdit(c),apply:(c,u)=>{this.target.writeTransform(c,Q(u)),this.notify()},endEdit:c=>this.target.endTransformEdit(c),...this.target.removeTransform?{remove:(c,u)=>this.target.removeTransform?.(c,u)}:{}},this.loadTexture=r.loadTexture??(c=>this.pixi.Assets.load(c)),this.capturePreview=r.capturePreview,this.structureHistory=new jt(t,e,r.journal,()=>this.afterStructuralChange()),this.a2d=new ft(t,{...r.identity?{identity:r.identity}:{}}),this.projector=new yt(t,this.a2d,{surface:r.surface??(()=>null),...r.pointFromClient?{pointFromClient:r.pointFromClient}:{}}),this.provenance=this.target.provenance,r.surface&&(this.pickable={pick:(c,u)=>{const p=this.projector.pick(c,u,y=>this.isPickLocked(y));return p&&this.groupOf(p)},candidates:(c,u,p)=>this.projector.candidates(c,u,y=>p?.includeLocked?!1:this.isPickLocked(y))},this.rects={rect:c=>this.projector.rect(c),frame:c=>this.projector.frame(c),contextRects:c=>this.projector.contextRects(c)}),r.stories&&(this.stories=r.stories),this.watchStructure(t),this.capabilities={transform:!0,inspectorFields:!0,persist:this.target.provenance.source==="source-code"&&this.target.persistence!==void 0},this.target.bind({a2d:this.a2d,store:e,journal:r.journal,notify:()=>this.notify()}),this.editLockWorld=r.journal.id;const o=B()[this.editLockWorld];this.lockedPaths=new Set(o?.locked??[]),this.groupedPaths=new Set(o?.grouped??[]);const s=this.target.structure??this.liveStructure,a=c=>!!c&&A(this.projector.object(c)),l="a ParticleContainer holds particles added with addParticle, not display objects.";this.structure={...s,create:(c,u,p)=>a(u)?{id:"",ack:this.refuseStructure(l)}:s.create(c,u,p?this.pointInParent(u??null,p):void 0),...s.reparent?{reparent:(c,u)=>a(u)?this.refuseStructure(l):s.reparent(c,u)}:{},...s.paste?{paste:c=>a(c)?this.refuseStructure(l):s.paste(c)}:{},...s.canPaste?{canPaste:c=>!a(c)&&s.canPaste(c)}:{},...s.creatableKinds?{creatableKinds:c=>a(c)?[]:s.creatableKinds(c)}:{}},this.assetDrop=this.target.assetDrop??{accepts:(c,u)=>L.test(u)&&this.containerFor(c||null)!==null,drop:(c,u,p)=>this.dropAsset(c,u,p)};const h=this.target.persistence;h&&(this.persistence=h);const f=this.target.truth?.bind(this.target);f&&(this.truth={resolve:(c,u)=>f(c,u)},this.related=Y(c=>f(c,"position").site)),!r.stories&&this.target.componentIdentity&&(this.stories=X("canvas",e.shell,c=>this.target.componentIdentity?.(c)??null));const d=this.target.instances?.();d&&(this.instances={describe:c=>d.describe(c),...d.openComponent?{openComponent:c=>d.openComponent?.(c)}:{},revert:(c,u)=>d.revert(c,u),applyToComponent:(c,u)=>d.applyToComponent(c,u)})}capabilities;provenance;pickable;rects;persistence;truth;related;structure;stories;instances;transforms;a2d;projector;target;pixi;structureHistory;loadTexture;capturePreview;listeners=new Set;boxEditSessions=new Map;lockedPaths=new Set;groupedPaths=new Set;editLockWorld;pathKeys=new Map;refresh(){return this.projector.refresh()}previewImage(t,e,r){const n=this.projector.object(t);return n&&this.capturePreview?this.capturePreview(n,{width:e,height:r}):Promise.resolve(null)}notify(){for(const t of this.listeners)t()}watchedForStructure=[];structureNotifyQueued=!1;onStructureChanged=()=>{this.projector.invalidate(),!this.structureNotifyQueued&&(this.structureNotifyQueued=!0,queueMicrotask(()=>{this.structureNotifyQueued=!1,this.projector.reproject(),this.pathKeys.clear(),this.watchStructure(this.root),this.target.onReindex(),this.notify(),this.store.shell.notifyIngestEdit()}))};watchStructure(t){for(const r of this.watchedForStructure)r.off("childAdded",this.onStructureChanged),r.off("childRemoved",this.onStructureChanged);this.watchedForStructure=[];const e=r=>{typeof r.on=="function"&&typeof r.off=="function"&&(r.on("childAdded",this.onStructureChanged),r.on("childRemoved",this.onStructureChanged),this.watchedForStructure.push(r));for(const n of r.children??[])e(n)};e(t)}hierarchy={roots:()=>(this.projector.project(),this.projector.roots().map(t=>this.toEditorNode(t.id)).filter(t=>t!==null)),node:t=>this.toEditorNode(t)};toEditorNode(t){const e=this.projector.node(t);if(!e)return null;const r=this.projector.object(t),n=r?D(r):!1,o=n?St(r):void 0;return{id:e.id,label:(n&&r?wt(r):void 0)??e.label,role:n?"component":"entity",kind:e.kind,...o?{typeLabel:o}:{},parentId:e.parentId,childIds:e.childIds}}selection={get:()=>[...this.store.shell.selectedEntityIds],set:t=>{this.store.shell.selectMultiple(t),this.notify()}};liveStructure={create:(t,e,r)=>this.createStructuralNode(t,e??null,r),remove:t=>this.removeStructuralNodes([t]),removeMany:t=>this.removeStructuralNodes(t),duplicate:t=>this.duplicateStructuralNode(t),reparent:(t,e)=>this.reparentStructuralNode(t,e),reorder:(t,e)=>this.reorderStructuralNode(t,e),creatableKinds:()=>K.map(t=>({...t}))};containerFor(t){if(!t)return this.root;const e=this.projector.object(t);return!e||typeof e.addChild!="function"||A(e)?null:e}refuseStructure(t){return k({resolve:()=>j(t),record:()=>{},report:e=>x.warn(`[canvas] structural edit refused — ${e}`,"authoring")})}reportStructureLiveOnly(t){return k({resolve:()=>j(Lt),record:()=>{},report:e=>{if(this.target.reportStructureLiveOnly){this.target.reportStructureLiveOnly(t,e);return}x.log(`[canvas] ${t} is live-only — ${e}.`,"authoring")}})}afterStructuralChange(){this.projector.reproject(),this.pathKeys.clear(),this.watchStructure(this.root),this.target.onReindex(),this.notify(),this.store.shell.notifyIngestEdit()}idOf(t){return t.__authId??""}pointInParent(t,e){const r=this.containerFor(t);if(!r||typeof r.updateLocalTransform!="function")return;const n=this.localToRootMatrix(r).clone().invert().apply({x:e.x,y:e.y});return{x:n.x,y:n.y}}createStructuralNode(t,e,r){const n=this.containerFor(e);if(!n)return{id:"",ack:this.refuseStructure(`no node with id "${e}" can hold children.`)};const o=$t(this.pixi,t);if(!o)return{id:"",ack:this.refuseStructure(`"${t}" is not a kind this canvas surface can construct.`)};o.label=Nt(t),r&&o.position.set(r.x,r.y);const s=`Create ${o.label}`;return this.structureHistory.track(n),this.structureHistory.track(o),this.structureHistory.run(s,()=>{n.addChild(o)}),this.afterStructuralChange(),{id:this.idOf(o),ack:this.reportStructureLiveOnly(s)}}removeStructuralNodes(t){const e=[];let r=null;for(const o of t){const s=this.projector.object(o);if(!s?.parent){r=this.refuseStructure(`"${o}" is not a removable node in this tree.`);continue}e.push(s)}if(e.length===0)return r??this.refuseStructure("the selection held no removable node.");const n=e.length===1?`Delete ${e[0].label??"node"}`:`Delete ${e.length} nodes`;for(const o of e)this.structureHistory.track(o),o.parent&&this.structureHistory.track(o.parent);return this.structureHistory.run(n,()=>{for(const o of e)o.parent?.removeChild(o)}),this.afterStructuralChange(),this.reportStructureLiveOnly(n)}duplicateStructuralNode(t){const e=this.projector.object(t),r=e?.parent??null;if(!e||!r)throw new Error(`"${t}" is not a duplicable node in this tree.`);const n=U(this.pixi,e);n.label=`${e.label||"node"} copy`;const o=`Duplicate ${e.label??"node"}`,s=r.children.indexOf(e);return this.structureHistory.track(r),this.structureHistory.track(n),this.structureHistory.run(o,()=>{r.addChildAt(n,s+1)}),this.afterStructuralChange(),{id:this.idOf(n),ack:this.reportStructureLiveOnly(o)}}reparentStructuralNode(t,e){const r=this.projector.object(t);if(!r)return this.refuseStructure(`"${t}" is not a node in this tree.`);const n=this.containerFor(e);if(!n)return this.refuseStructure(`no node with id "${e}" can hold children.`);if(n===r||this.isAncestorOf(r,n))return this.refuseStructure("a node cannot be reparented into itself or its own descendant.");const o=this.localToRootMatrix(r),s=this.localToRootMatrix(n),a=`Move ${r.label??"node"}`;return this.structureHistory.track(r),r.parent&&this.structureHistory.track(r.parent),this.structureHistory.track(n),this.structureHistory.run(a,()=>{n.addChild(r),r.setFromMatrix(s.clone().invert().append(o))}),this.afterStructuralChange(),this.reportStructureLiveOnly(a)}reorderStructuralNode(t,e){const r=this.projector.object(t),n=r?.parent??null;if(!r||!n)return this.refuseStructure(`"${t}" is not a reorderable node in this tree.`);const o=e?this.projector.object(e):null;if(e&&(!o||o.parent!==n))return this.refuseStructure(`"${e}" is not a sibling of "${t}".`);const s=`Reorder ${r.label??"node"}`;return this.structureHistory.track(n),this.structureHistory.track(r),this.structureHistory.run(s,()=>{const a=n.children.indexOf(r),l=o?n.children.indexOf(o):n.children.length;n.addChildAt(r,Math.max(0,a<l?l-1:l))}),this.afterStructuralChange(),this.reportStructureLiveOnly(s)}isAncestorOf(t,e){let r=e.parent;for(;r;){if(r===t)return!0;r=r.parent}return!1}localToRootMatrix(t){const e=[];let r=t;for(;r&&r!==this.root;)e.push(r),r=r.parent;const n=new this.pixi.Matrix;for(let o=e.length-1;o>=0;o--){const s=e[o];s.updateLocalTransform(),n.append(s.localTransform)}return n}assetDrop;async dropAsset(t,e,r){if(!L.test(e))return this.refuseStructure(`${e} is not an image. A canvas world mounts an image as a Sprite; a model or an audio file has no display object to become here.`);const n=this.containerFor(t||null);if(!n)return this.refuseStructure(`no node with id "${t}" can hold a dropped asset.`);let o;try{o=await this.loadTexture(e)}catch(h){return this.refuseStructure(`${e} could not be loaded as a texture: ${h instanceof Error?h.message:String(h)}`)}const s=new this.pixi.Sprite(o);s.anchor.set(.5,.5),s.label=e.split("/").pop()??"Sprite";const a=r?.position;if(a){const h=this.localToRootMatrix(n).clone().invert().apply({x:a[0],y:a[1]});s.position.set(h.x,h.y)}const l=`Add ${s.label}`;return this.structureHistory.track(n),this.structureHistory.track(s),this.structureHistory.run(l,()=>{n.addChild(s)}),this.afterStructuralChange(),this.reportStructureLiveOnly(l)}boxEdit={begin:t=>{const e=this.projector.rect(t);if(!e){this.boxEditSessions.delete(t);return}const r=this.projector.object(t)?.parent?.worldTransform;this.boxEditSessions.set(t,{id:t,rect:e,transform:this.transforms.get(t),...r?{parentLinear:{a:r.a,b:r.b,c:r.c,d:r.d}}:{}}),this.transforms.beginEdit?.(t)},apply:(t,e)=>this.applyBoxEdit(t,e),end:t=>{const e=this.boxEditSessions.get(t);this.boxEditSessions.delete(t),e&&this.transforms.endEdit?.(t)},gizmoOrigin:t=>this.gizmoOriginOf(t)};gizmoOriginOf(t){const e=this.projector.object(t);if(!e||typeof e.getGlobalPosition!="function")return null;const r=e.getGlobalPosition();return{x:r.x,y:r.y}}applyBoxEdit(t,e){const r=this.boxEditSessions.get(t);if(!r||Dt(e).some(o=>this.transforms.editability?.(t,o).writable===!1))return;const n=Bt(r,e);this.transforms.apply(t,n),!(e.x===void 0&&e.y===void 0&&e.originX===void 0&&e.originY===void 0&&e.width===void 0&&e.height===void 0)&&this.repositionBoxEditBounds(t,r,e,n)}repositionBoxEditBounds(t,e,r,n){const o=this.projector.object(t);if(!o)return;const s=this.gizmoOriginOf(t),a=this.projector.rect(t),{dx:l,dy:h}=Kt(s,a,e.rect,r),f=o.parent;if(f&&typeof f.toLocal=="function"){const d=f.toLocal({x:0,y:0}),c=f.toLocal({x:l,y:h});n.position[0]+=c.x-d.x,n.position[1]+=c.y-d.y}else n.position[0]+=l,n.position[1]+=h;this.transforms.apply(t,n)}spatialHandles={layers:t=>{const e=this.originOf(t);if(!e)return[];const r=this.target.transformEditability(t,"position"),n=!!this.target.writeOrigin&&r.writable;return[{id:`origin:${t}`,category:"origin",guides:[],handles:[{id:M,label:e.kind==="anchor"?"Sprite anchor":"Pivot",position:[e.world.x,e.world.y,0],color:Mt,writable:n,...n?{}:{reason:this.target.writeOrigin&&r.reason?r.reason:At}}]}]},preview:(t,e,r)=>{this.moveOrigin(t,e,r,"preview")},commit:(t,e,r)=>this.moveOrigin(t,e,r,"commit")};originEditId=null;originOf(t){const e=this.projector.object(t);if(!e||typeof e.updateLocalTransform!="function")return null;const r=z(e),n=r?"anchor":"pivot",o=r?{x:r.anchor.x,y:r.anchor.y}:{x:e.pivot.x,y:e.pivot.y},s=r?{x:0,y:0}:o,a=this.localToRootMatrix(e).apply({x:s.x,y:s.y});return{kind:n,value:o,world:{x:a.x,y:a.y}}}moveOrigin(t,e,r,n){if(e!==M)return;const o=this.originOf(t),s=this.projector.object(t),a=this.target.writeOrigin;if(!o||!s||!a||!this.target.transformEditability(t,"position").writable)return;this.originEditId!==t&&(this.target.beginTransformEdit(t),this.originEditId=t),s.updateLocalTransform();const l=this.localToRootMatrix(s).clone().invert().apply({x:r[0],y:r[1]}),h=o.kind==="anchor"?{x:0,y:0}:o.value,f={x:l.x-h.x,y:l.y-h.y},d=o.kind==="anchor"?_t(s):null;if(o.kind==="anchor"&&(!d||d.x===0||d.y===0))return;const c=d?[o.value.x+f.x/d.x,o.value.y+f.y/d.y]:[l.x,l.y],u=s.localTransform,p=this.a2d.getTransform(t);if(a(t,o.kind,c),p&&this.target.writeTransform(t,{...p,position:[p.position[0]+u.a*f.x+u.c*f.y,p.position[1]+u.b*f.x+u.d*f.y]}),this.notify(),n==="commit"){const y=this.target.endTransformEdit(t);return this.originEditId=null,y}}inspector={properties:t=>[...this.target.properties(t),{path:"locked",label:"Locked",type:"boolean",group:"Visibility"},{path:"grouped",label:"Grouped",type:"boolean",group:"Visibility"}],get:(t,e)=>e==="locked"?this.lockedPaths.has(this.pathKeyOf(t)):e==="grouped"?this.groupedPaths.has(this.pathKeyOf(t)):this.target.get(t,e),set:(t,e,r)=>{if(e==="locked"||e==="grouped"){const n=e==="locked"?this.lockedPaths:this.groupedPaths;r===!0?n.add(this.pathKeyOf(t)):n.delete(this.pathKeyOf(t)),Pt(this.editLockWorld,{locked:[...this.lockedPaths],grouped:[...this.groupedPaths]}),this.notify();return}return this.target.set(t,e,r)},remove:(t,e)=>this.target.remove?.(t,e)};pathKeyOf(t){const e=this.pathKeys.get(t);if(e!==void 0)return e;const r=a=>this.projector.object(a)?.label??"",n=[];let o=t;for(;o;){const a=this.projector.node(o);if(!a)break;const l=a.parentId?this.projector.node(a.parentId)?.childIds??[]:this.projector.roots().map(d=>d.id),h=r(o),f=l.filter(d=>r(d)===h).indexOf(o);n.unshift(`${h}#${Math.max(0,f)}`),o=a.parentId??null}const s=n.join("/");return this.pathKeys.set(t,s),s}groupOf(t){let e=t,r=t;for(;r;)this.groupedPaths.has(this.pathKeyOf(r))&&(e=r),r=this.projector.node(r)?.parentId??null;return e}isPickLocked(t){let e=t;for(;e;){if(this.lockedPaths.has(this.pathKeyOf(e)))return!0;e=this.projector.node(e)?.parentId??null}return!1}subscribe(t){return this.listeners.add(t),()=>this.listeners.delete(t)}dispose(){this.boxEditSessions.clear(),this.pathKeys.clear();for(const t of this.watchedForStructure)t.off("childAdded",this.onStructureChanged),t.off("childRemoved",this.onStructureChanged);this.watchedForStructure=[],this.structureHistory.dispose(),this.target.dispose(),this.listeners.clear()}}const Jt=Object.freeze(Object.defineProperty({__proto__:null,PixiAuthoringAdapter:zt},Symbol.toStringTag,{value:"Module"}));export{zt as P,Et as a,It as b,qt as c,D as i,Qt as o,Jt as p,vt as r};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{O as N,bm as Q,bn as X,q as L,as as Z,bo as ee,bk as te,bl as ne}from"./index-Cr9NTnJp.js";import{J as re,c as _}from"./json-history-resource-C9G_vCX9.js";import{m as ie,p as se}from"./source-persistence-backend-Dzc6MsmN.js";import{t as oe}from"./pixi-transform-channels-P4rvmusc.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./ingest-source-persistence-BGIvThcv.js";function $(u){if(!u||typeof u!="object")return;const c=u;return typeof c.x=="number"&&typeof c.y=="number"?[c.x,c.y]:void 0}function F(u,c,l){const o=u;!l||!$(o[c])||(o[c]={x:l[0],y:l[1]})}function ae(u){return`#${(u&16777215).toString(16).padStart(6,"0")}`}function le(u){return Number.parseInt(u.replace("#",""),16)}const ce=["position","rotation","scale"];function $e(u){const{physics:c}=u,l=u.persistence??null;let o,p=()=>{},h=null,S,T,w=!1,x=!1;const m=()=>{const t={},n=e=>{const r=o.node(e),i=o.displayObject(e);if(!r||!i)return;let s=null;try{s=o.getTransform(e)}catch{}const a=$(i.pivot),d=$(i.anchor);t[e]={label:i.label??"",alpha:i.alpha,visible:i.visible,..."tint"in i?{tint:i.tint}:{},...s?{transform:s}:{},...a?{pivot:a}:{},...d?{anchor:d}:{}};for(const f of r.childIds)n(f)};for(const e of o.roots())n(e.id);return{overlay:structuredClone(o.serializeOverlay()),nodes:t}},W=t=>{for(const[n,e]of Object.entries(t.nodes)){const r=o.displayObject(n);r&&(r.label=e.label,r.alpha=e.alpha,r.visible=e.visible,e.tint!==void 0&&"tint"in r&&(r.tint=e.tint),F(r,"pivot",e.pivot),F(r,"anchor",e.anchor),e.transform&&o.setTransform(n,e.transform))}o.replaceOverlay(t.overlay),p()},v=(t,n)=>{h&&n&&h.record(t,n,m()).catch(e=>{N.error(`[canvas] failed to journal "${t}" into project history — the edit is applied but has no history entry (it cannot be undone): ${e instanceof Error?e.message:String(e)}`,"authoring")})},A=(t,n,e)=>{const r=o.displayObject(t);r&&(n==="name"?o.set(t,"label",e):n==="tint"?o.set(t,"tint",le(e)):n==="visible"?o.set(t,"visible",e):n==="alpha"?o.set(t,"alpha",e):r[n]=e,p())},P=(t,n)=>{const e=o.displayObject(t);if(e)return n==="name"?e.label:n==="tint"?ae(e.tint??16777215):e[n]},b=(t,n)=>{const e=o.getTransform(t);return n==="position"?e?[...e.position]:void 0:n==="rotation"?e?e.rotation:void 0:n==="scale"?e?[...e.scale]:void 0:P(t,n)},I=(t,n,e)=>{if(n==="position"&&Array.isArray(e))o.setTransform(t,{position:[e[0]??0,e[1]??0]});else if(n==="rotation"&&typeof e=="number")o.setTransform(t,{rotation:e});else if(n==="scale"&&Array.isArray(e))o.setTransform(t,{scale:[e[0]??1,e[1]??1]});else{A(t,n,e);return}p()},y=(t,n)=>{const e=te(o.displayObject(t)??null);return{entityId:t,property:n,surface:"pixi",anchor:e,anchorKind:e.anchored?"construction-literal":"live-only",instances:e.anchored&&e.kind==="source"?ne(e):0}},g=t=>o.node(t)?.label??"2D Object",K=(t,n,e,r,i,s)=>{if(l){if(r===null||i===void 0||s===void 0){v(n,e);return}return se({backend:l,subject:()=>y(t,r),baseline:i,next:s,label:n,journal:()=>v(n,e)})}},R=t=>{const n=[{path:"name",label:"Name",type:"string"},{path:"visible",label:"Visible",type:"boolean"},{path:"alpha",label:"Alpha",type:"number"}],e=o.displayObject(t);return e&&"tint"in e&&n.push({path:"tint",label:"Tint",type:"color"}),n},O=new Map,E=new Map,j=t=>t.anchored&&t.kind==="source"?`${t.file}:${t.line}:${t.col}`:null,M=t=>[{path:"position",label:"Position"},{path:"rotation",label:"Rotation"},{path:"scale",label:"Scale"},...R(t).map(n=>({path:n.path,label:n.label}))],k=(t,n,e,r)=>{const i=E.get(n);if(i)return i;const s=l?.readSiteLiterals,a=M(t).map(f=>({property:f.path,live:b(t,f.path)})).filter(f=>f.live!==void 0);if(!s||a.length===0)return Promise.resolve({});const d=s({anchor:e,instances:r,writeScope:"creation-site",surface:"pixi",properties:a}).then(f=>(O.set(n,f),p(),f));return E.set(n,d),d},q=(t,n,e,r)=>{const i=O.get(n);return i||(k(t,n,e,r),null)},z=1e-6,H=(t,n)=>Array.isArray(t)&&Array.isArray(n)?t.length===n.length&&t.every((e,r)=>H(e,n[r])):typeof t=="number"&&typeof n=="number"?Math.abs(t-n)<=z:t===n,C=t=>o.displayObject(t)?.constructor?.name||(o.node(t)?.kind??"2D Object"),J=t=>`${t} ${t===1?"instance":"instances"}`,B=(t,n,e,r)=>{const i=b(t,n.path);if(!e||e.literal===null||i===void 0||H(e.literal,i))return null;const s=l?.gate({...r,property:n.path,writeScope:"creation-site"}),a=e.writable?s?.ok?void 0:s?.reason:e.reason;return{path:n.path,label:n.label,value:i,...e.text?{defaultText:e.text}:{},canApplyToComponent:a===void 0,...a===void 0?{}:{applyUnavailableReason:a},affectedInstanceCount:r.instances}},Y=(t,n,e,r)=>{if(!l||!e||e.literal===null||r===void 0)return{ok:!1,message:e?.reason??`The construction site names no ${n} for this object, so there is no default to change.`};if(!e.writable)return{ok:!1,message:e.reason??`The construction site's ${n} cannot be rewritten.`};const i=l.gate({...t,writeScope:"creation-site"});return i.ok?{ok:!0,backend:l,baseline:e.literal,next:r}:{ok:!1,message:i.reason}},D=async t=>{const n=y(t,"position"),e=j(n.anchor);return e?O.get(e)??await k(t,e,n.anchor,n.instances):null},U={describe:t=>{const n=y(t,"position"),e=j(n.anchor);if(!e||!o.displayObject(t))return null;const r=q(t,e,n.anchor,n.instances);if(!r||Object.keys(r).length===0)return null;const i=M(t).map(s=>B(t,s,r[s.path],n)).filter(s=>s!==null);return{componentName:C(t),...n.anchor.anchored?{sourcePath:n.anchor.display}:{},overrides:i}},revert:async(t,n)=>{const e=await D(t);if(!e)return;const r=m(),i=[];for(const s of n){const a=e[s]?.literal;a!=null&&(I(t,s,a),i.push(s))}if(i.length!==0)return v(i.length===1?`Revert ${g(t)} ${i[0]}`:`Revert ${i.length} ${g(t)} overrides`,r),p(),ee},applyToComponent:async(t,n)=>{const e={...y(t,n),writeScope:"creation-site"},r=j(e.anchor),i=(await D(t))?.[n],s=b(t,n),a=Y(e,n,i,s);if(!a.ok)return{changed:!1,message:a.message};const d=`Apply ${n} to ${C(t)} default (${J(e.instances)})`;return await a.backend.write({...e,baseline:a.baseline,next:a.next,label:d})?(r&&O.delete(r),p(),{changed:!0,message:`${n} now reads ${JSON.stringify(s)} for all ${J(e.instances)} at ${e.anchor.anchored?e.anchor.display:"its creation site"}.`,write:{destination:e.anchor.anchored?e.anchor.display:"creation site",persisted:!0}}):{changed:!1,message:`${d} did not land — the editor console names why.`}}};return{provenance:l?{source:"foreign",label:"creation-site",detail:"Live 2D (PixiJS) tree projected directly — an edit is written into the game’s own source at the line that constructed the object, and says why whenever it cannot be."}:{source:"foreign",label:"live-only",detail:"Live 2D (PixiJS) tree projected directly — edits apply for this session only and are never saved."},get persistence(){const t=l;return t?{..._(),get destination(){return t.destination()}}:{..._(),destination:Z}},truth:(t,n)=>{const e=y(t,n);if(e.anchorKind==="live-only")return{site:e.anchor,writeAnchorKind:"live-only"};const r=j(e.anchor);if(!r)return{site:e.anchor,writeAnchorKind:"live-only"};const i=O.get(r);if(!i)return k(t,r,e.anchor,e.instances),{site:e.anchor,writeAnchorKind:void 0};const s=i[n];return{site:e.anchor,writeAnchorKind:s?.writable?"construction-literal":"live-only"}},componentIdentity:t=>o.displayObject(t)?{name:C(t)}:null,...l?.readSiteLiterals?{instances:()=>U}:{},writeOrigin(t,n,e){h?.assertCanMutate();const r=o.displayObject(t);!r||!$(r[n])||(r[n]={x:e[0],y:e[1]},w=!0,p())},bind(t){o=t.a2d,p=t.notify;const n=t.store.shell.projectHistory;h=n?new re({history:n,kind:"session-state",scope:"session",subject:{...t.journal,id:`${t.journal.id}/world-2d-edits`},displayName:"World 2D edits",capture:m,conflictIdentity:e=>e.overlay,restore:async e=>{W(e)}}):null,l?.attach({read:b,apply:I})},onReindex(){},transformEditability(t,n){if(!l)return{writable:!0};const e=y(t,n),r=e.anchorKind!=="live-only"&&l.removal?.available(e)?{removable:!0}:{};return{writable:!0,reason:l.describe(e),...r}},beginTransformEdit(t){h?.assertCanMutate();const n=o.displayObject(t);n&&L(c,n)==="physics"&&c.freeze(n),S=m(),T=l?o.getTransform(t)??void 0:void 0,w=!1},writeTransform(t,n){h?.assertCanMutate();const e=o.displayObject(t);e&&L(c,e)==="physics"&&c.commit(e,n.position,n.rotation),o.setTransform(t,n),p()},endTransformEdit(t){const n=o.displayObject(t);n&&L(c,n)==="physics"&&c.unfreeze(n);const e=`Transform ${g(t)}`,r=S,i=T,s=w;if(S=void 0,T=void 0,w=!1,!l){v(e,r);return}const a=o.getTransform(t)??void 0,d=s?["origin"]:[];i&&a&&d.push(...ce.filter(G=>oe(G,i,a))),d.length>1&&l.report(e,ie(d));const f=d.length===1&&d[0]!=="origin"?d[0]:null;return K(t,e,r,f,f?V(i,f):void 0,f?V(a,f):void 0)},removeTransform(t,n){const e=l,r=e?.removal;if(!e||!r)return;const i=`Remove ${g(t)} ${n}`;return Q({resolve:()=>{const s=y(t,n);return s.anchorKind==="live-only"||!r.available(s)?X(e.describe(s)):{reaches:"writer",anchorKind:s.anchorKind,destination:e.destination(),write:()=>r.perform({...s,label:i})}},record:()=>{},report:s=>{e.armed()&&e.report(i,s)}})},reportStructureLiveOnly(t,n){if(l?.armed()){l.report(t,n);return}if(!x){x=!0,N.warn(`[canvas] structural edits in this world are live-only — ${n}. First one: ${t}.`,"authoring");return}N.log(`[canvas] ${t} is live-only — ${n}.`,"authoring")},properties:R,get(t,n){return P(t,n)},set(t,n,e){h?.assertCanMutate();const r=m(),i=`Set ${g(t)} ${n}`;if(!l){A(t,n,e),v(i,r);return}const s=b(t,n);A(t,n,e);const a=b(t,n),d=s!==void 0&&a!==void 0&&JSON.stringify(s)!==JSON.stringify(a);return K(t,i,r,d?n:null,s,a)},dispose(){h?.dispose(),h=null,l?.dispose()}}}function V(u,c){if(u){if(c==="position")return[...u.position];if(c==="rotation")return u.rotation;if(c==="scale")return[...u.scale]}}export{$e as createLiveCanvasWriteTarget};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-
|
|
2
|
-
import{
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-Cr9NTnJp.js","assets/index-nmcBqr7Y.js","assets/_commonjsHelpers-D6-XlEtG.js","assets/index-D_NuPfjr.js","assets/jsx-runtime-DPjLkJKQ.js","assets/index-CtzuWnCS.js","assets/index-CinJrH5C.js","assets/index-FUuS4qwW.js","assets/client-DNXj_opT.js","assets/index-CPiRKiDC.css","assets/gameplay-export-D0hZoeSg.js","assets/output-DK8waum9.js","assets/game-network-BqI-Ehz0.js","assets/index-OZVqp6xS.js","assets/index-Da9JhEvW.js","assets/native-debug-module-CB738yQu.js","assets/native-entry-surface-BE8LJNdu.js","assets/debug-registry-DgYNlhH_.js","assets/contract-system-adapters-Bq1LGdjs.js","assets/game-contract-seams-Dgqv6S8X.js","assets/seeded-random-DmdE0u-C.js","assets/game-audio-BeCyd0Ha.js","assets/rapier-physics-adapter-CaZqWLu0.js","assets/events-156d8d12.esm-CYeuVCYr.js","assets/three.module-BLhyNg0e.js","assets/three.core-3arARmh6.js","assets/index-bQE2NA0D.js","assets/live-project-verbs-p1sdTwhF.js","assets/capability-coverage-7wKVA3PF.js","assets/edit-mode-authoring-ZQuUwc6e.js","assets/json-history-resource-C9G_vCX9.js","assets/binding-resolver-B9VI52zt.js","assets/adapter-surface-Y37Nzcyw.js","assets/structural-signature-Dc7skRiy.js","assets/webgl-frame-capture-DdJkM2mi.js","assets/realm-services-BtiLE3a-.js","assets/canvas-entry-runtime-a6N7Rsrj.js","assets/three-ingest-runtime-CXySzulx.js","assets/EffectComposer-BEAt0PtQ.js","assets/CopyShader-BzTUYzf6.js","assets/ShaderPass-DTnDQXm0.js","assets/Pass-D1MRT672.js","assets/CSS3DRenderer-BsAqfavI.js","assets/relative-path-guard-GiM7Lsz8.js","assets/react-root-BHA-cdrW.js","assets/editor-presentation-activity-CqJH4G9t.js","assets/active-ingest-CjZtqL7Q.js","assets/ingest-source-persistence-BGIvThcv.js","assets/pixi-story-model-DNkfnWUV.js","assets/surface-content-Dg9Kkazf.js","assets/viewport-root-presentation-B1qtThOB.js","assets/mounted-authoring-DX3DC9PJ.js","assets/entity-object--ZpqIat7.js","assets/user-data-BXFD1jg-.js","assets/workspace-arrangement-dkubzCff.js","assets/three-contract-Dkt6PmWY.js","assets/three-B86IzdNg.js","assets/editor-layers-CGX7iCSP.js","assets/component-instance-root-C1Xf4SwR.js","assets/viewport-editor-controls-BYaAZ_Ku.js","assets/three-authoring-adapter-BD8_MtYK.js","assets/source-persistence-backend-Dzc6MsmN.js","assets/three-projection-core-D4m8lsPU.js","assets/body-marks-C1LxJtQb.js","assets/user-data-CODoGZqA.js","assets/object-marks-BnvSuCTt.js","assets/structural-ids-BOo2BRoY.js","assets/object3d-authoring-subject-XccsO0xG.js","assets/r3f-physics-binding-oippu1v_.js","assets/deferred-ingest-play-Bpdhu2i-.js","assets/rrweb-Cd2ifIRP.js","assets/react-world-authoring-adapter-CuyruDfq.js","assets/board-guides-BG-MHK2G.js","assets/relative-import-specifier-CyT6yU4l.js","assets/story-arg-descriptors-Ek86ExX7.js","assets/inspect-CN92MgRT.js","assets/inference-diagnostics-D5jfxI5p.js","assets/writer-tw6EcuVO.js","assets/three-state-C36FeFK4.js","assets/editor-shell-store-BRqB1JZO.js","assets/output-pass-HurwNl0G.js","assets/viewport-door-AsLxGhLN.js","assets/editor-api-C8MUOrwt.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{r as y,ac as g,_ as f,ad as R,a5 as w}from"./index-Cr9NTnJp.js";import{d as D,n as F,f as A,h as M,j as O,e as T,k as $,g as L,l as N,p as W}from"./game-network-BqI-Ehz0.js";import{r as q}from"./index-CtzuWnCS.js";import{n as z,s as k}from"./command-results-CUQD49AB.js";import{s as H,a as j}from"./run-selection-BMu0v3qC.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./index-CinJrH5C.js";import"./index-OZVqp6xS.js";import"./index-Da9JhEvW.js";import"./native-debug-module-CB738yQu.js";import"./native-entry-surface-BE8LJNdu.js";import"./debug-registry-DgYNlhH_.js";import"./contract-system-adapters-Bq1LGdjs.js";import"./game-contract-seams-Dgqv6S8X.js";import"./seeded-random-DmdE0u-C.js";import"./game-audio-BeCyd0Ha.js";import"./rapier-physics-adapter-CaZqWLu0.js";import"./events-156d8d12.esm-CYeuVCYr.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./index-bQE2NA0D.js";import"./live-project-verbs-p1sdTwhF.js";import"./capability-coverage-7wKVA3PF.js";import"./edit-mode-authoring-ZQuUwc6e.js";import"./json-history-resource-C9G_vCX9.js";import"./binding-resolver-B9VI52zt.js";import"./adapter-surface-Y37Nzcyw.js";import"./structural-signature-Dc7skRiy.js";import"./webgl-frame-capture-DdJkM2mi.js";import"./realm-services-BtiLE3a-.js";import"./canvas-entry-runtime-a6N7Rsrj.js";import"./three-ingest-runtime-CXySzulx.js";import"./EffectComposer-BEAt0PtQ.js";import"./CopyShader-BzTUYzf6.js";import"./ShaderPass-DTnDQXm0.js";import"./Pass-D1MRT672.js";import"./CSS3DRenderer-BsAqfavI.js";import"./relative-path-guard-GiM7Lsz8.js";import"./react-root-BHA-cdrW.js";import"./editor-presentation-activity-CqJH4G9t.js";import"./active-ingest-CjZtqL7Q.js";import"./ingest-source-persistence-BGIvThcv.js";import"./pixi-story-model-DNkfnWUV.js";import"./surface-content-Dg9Kkazf.js";import"./viewport-root-presentation-B1qtThOB.js";import"./mounted-authoring-DX3DC9PJ.js";import"./entity-object--ZpqIat7.js";import"./user-data-BXFD1jg-.js";import"./workspace-arrangement-dkubzCff.js";import"./three-contract-Dkt6PmWY.js";import"./three-B86IzdNg.js";import"./editor-layers-CGX7iCSP.js";import"./component-instance-root-C1Xf4SwR.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./three-authoring-adapter-BD8_MtYK.js";import"./source-persistence-backend-Dzc6MsmN.js";import"./three-projection-core-D4m8lsPU.js";import"./body-marks-C1LxJtQb.js";import"./user-data-CODoGZqA.js";import"./object-marks-BnvSuCTt.js";import"./structural-ids-BOo2BRoY.js";import"./object3d-authoring-subject-XccsO0xG.js";import"./r3f-physics-binding-oippu1v_.js";import"./deferred-ingest-play-Bpdhu2i-.js";import"./rrweb-Cd2ifIRP.js";import"./react-world-authoring-adapter-CuyruDfq.js";import"./board-guides-BG-MHK2G.js";import"./relative-import-specifier-CyT6yU4l.js";import"./story-arg-descriptors-Ek86ExX7.js";import"./inspect-CN92MgRT.js";import"./inference-diagnostics-D5jfxI5p.js";import"./writer-tw6EcuVO.js";import"./three-state-C36FeFK4.js";import"./editor-shell-store-BRqB1JZO.js";import"./output-pass-HurwNl0G.js";import"./viewport-door-AsLxGhLN.js";import"./configurations-B9Pi_eRN.js";const At="workspace.command";async function x(e){const{liveCanvasFrame:t}=await f(async()=>{const{liveCanvasFrame:r}=await import("./index-Cr9NTnJp.js").then(o=>o.tZ);return{liveCanvasFrame:r}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9]));return t(e)}function Z(){const e=L();e?.loop.liveness==="loop-starved"&&e.runTicks?.(1,{render:"last"})}function B(){const e=w().audio,t=e?.renderOffline;if(!e||!t)return;let r=null;try{const o=w().debug?.state("time");typeof o?.simSeconds=="number"&&Number.isFinite(o.simSeconds)&&(r=o.simSeconds)}catch{r=null}if(r!==null)return{startSeconds:r,render:t.bind(e)}}let d=null;const kt={play:{timeoutMs:12e4,derivedRefresh:"always",handle:async e=>{try{const o=e.seed,l=e.name,m=await j();if(!m.ok)return{ok:!1,error:`${m.title}: ${m.detail}`};await T(typeof o=="number"?o:void 0,void 0,typeof l=="string"?l:null)}catch(o){return{ok:!1,error:o instanceof Error?o.message:String(o)}}if(!y().live.playing())return{ok:!1,error:"Play did not start: the run was superseded before it finished booting (a stop, or a newer play, landed during startup). Nothing is running."};const t=e.record,r=await $(g()??y().workspace.liveDocument.container(),{name:typeof t=="string"?t:null,audio:w().audio?.acquireRecordingStream?.()??null,canvasFrame:x,refreshFrame:Z});return{ok:!0,...r?{data:{recording:r}}:{}}}},stop:{timeoutMs:3e4,derivedRefresh:"always",handle:async()=>{d?.abort(new Error("Video export cancelled by Stop."));const e=await M("stop");return O(),await H(),{ok:!0,...e?{data:{recording:e}}:{}}}},pause:{derivedRefresh:"always",handle:()=>(W(),{ok:!0})},resume:{derivedRefresh:"always",handle:()=>(N(),{ok:!0})},step:{derivedRefresh:"always",handle:()=>(A(),{ok:!0})},"bridge-recording-export":{timeoutMs:6e5,derivedRefresh:"none",handle:async e=>{const t=y();if(t.session.playState()!=="paused")return{ok:!1,error:"Pause the game before exporting video."};const r=g();if(!r)return z();if(d)return{ok:!1,error:"A video export is already active."};const{exportGameplayVideo:o,validateGameplayExport:l,assertGameplayVideoSupport:m}=await f(async()=>{const{exportGameplayVideo:n,validateGameplayExport:u,assertGameplayVideoSupport:s}=await import("./gameplay-export-D0hZoeSg.js");return{exportGameplayVideo:n,validateGameplayExport:u,assertGameplayVideoSupport:s}},__vite__mapDeps([10,0,1,2,3,4,5,6,7,8,9,11])),h={frames:Number(e.frames),fps:e.fps===void 0?30:Number(e.fps)};try{l(h)}catch(n){return k(n)}if(d)return{ok:!1,error:"A video export is already active."};const i=new AbortController;d=i,R(!0);const S=setTimeout(()=>i.abort(new Error("Video export exceeded its ten-minute deadline.")),59e4),v=t.live.runWindow()?.startedAt??null,_=t.session.subscribe(()=>{(t.session.playState()!=="paused"||(t.live.runWindow()?.startedAt??null)!==v)&&i.abort(new Error("Video export cancelled: the Play session changed."))}),b=B();try{await m(r),i.signal.throwIfAborted();const{gameplayRecordingActive:n}=await f(async()=>{const{gameplayRecordingActive:a}=await import("./game-network-BqI-Ehz0.js").then(p=>p.a3);return{gameplayRecordingActive:a}},__vite__mapDeps([12,13,14,2,0,1,3,4,5,6,7,8,9,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81]));n()&&await D();const{blob:u,...s}=await o(r,h,{step:()=>q.flushSync(()=>A()),assertActive:()=>{if(F(),t.session.playState()!=="paused"||g()!==r||(t.live.runWindow()?.startedAt??null)!==v)throw new Error("Video export interrupted: its game must remain paused and mounted.")},canvasFrame:x,signal:i.signal,...b?{audio:b}:{}}),{beginGameplayRecordingSink:E,appendGameplayRecordingChunk:P,finishGameplayRecordingSink:G,abortGameplayRecordingSink:V}=await f(async()=>{const{beginGameplayRecordingSink:a,appendGameplayRecordingChunk:p,finishGameplayRecordingSink:I,abortGameplayRecordingSink:C}=await import("./editor-api-C8MUOrwt.js");return{beginGameplayRecordingSink:a,appendGameplayRecordingChunk:p,finishGameplayRecordingSink:I,abortGameplayRecordingSink:C}},__vite__mapDeps([82,0,1,2,3,4,5,6,7,8,9,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81]));i.signal.throwIfAborted();const c=await E({startedAt:new Date().toISOString(),mimeType:"video/webm",purpose:"export",name:typeof e.name=="string"?e.name:`export-${Date.now()}`},i.signal);try{for(let a=0,p=0;a<u.size;a+=4*1024*1024,p++)i.signal.throwIfAborted(),await P(c,p,u.slice(a,a+4*1024*1024),i.signal);i.signal.throwIfAborted(),await G(c,s.audio?`fixed-step export with audio (${s.audio.codec}, ${s.audio.channels}ch @ ${s.audio.sampleRate} Hz)`:"fixed-step export, video only: this world has no AudioAdapter.renderOffline",i.signal),i.signal.throwIfAborted()}catch(a){throw await V(c),a}return{ok:!0,data:{...s,path:c.path}}}catch(n){return k(n)}finally{_(),clearTimeout(S),d=null,R(!1)}}}};export{kt as commands,At as point};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{x as u,dj as l,cW as c}from"./three.core-3arARmh6.js";const r=Symbol.for("volter.audio-pose-guard");function p(t){return t.elements.every(Number.isFinite)}function a(t,e){const s=t[r];if(s){e&&(s.report=e);return}const i={dropped:0,...e?{report:e}:{}};Object.defineProperty(t,r,{value:i});const n=new WeakSet,d=t.updateMatrixWorld;t.updateMatrixWorld=function(o){if(c.prototype.updateMatrixWorld.call(this,o),this.context.state!=="running"){this._clock&&(this.timeDelta=0,n.add(this));return}if(p(this.matrixWorld)){n.delete(this)&&this._clock?.getDelta(),d.call(this,o);return}i.dropped++,i.report?.(this.type)}}function x(t){a(u.prototype,t),a(l.prototype,t)}export{x as i};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as h}from"./jsx-runtime-DPjLkJKQ.js";import{a0 as p,a1 as m,ew as g,aK as d,cR as b,cS as x}from"./index-Cr9NTnJp.js";import{r as w}from"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";const v=[{label:"Fill",width:null,height:null},{label:"iPhone SE — 375×667",width:375,height:667},{label:"iPhone 14 — 390×844",width:390,height:844},{label:"iPhone 14 Pro Max — 430×932",width:430,height:932},{label:"iPad Mini — 768×1024",width:768,height:1024},{label:"iPad Pro 11″ — 834×1194",width:834,height:1194},{label:"Laptop — 1366×768",width:1366,height:768},{label:"Desktop — 1920×1080",width:1920,height:1080}];function E({resolution:e,onResolutionChange:t,scale:u,title:a="Change preview resolution",options:r=v}){const[o,n]=w.useState(!1),c=w.useRef(null),l=e.width===null,f=l?"Fill":`${e.width}×${e.height}`;return h.jsxs("div",{className:"volter-playbar-popover-anchor",children:[h.jsxs(p,{ref:c,variant:"ghost",size:"comfortable","aria-haspopup":"menu","aria-expanded":o,"aria-controls":o?"volter-resolution-picker-menu":void 0,onClick:()=>n(i=>!i),title:a,children:[h.jsx(m,{icon:g,size:"md"}),h.jsx(d,{variant:"code",children:f}),!l&&u<1&&h.jsxs(d,{variant:"caption",tone:"dim",children:[Math.round(u*100),"%"]})]}),o&&h.jsx(b,{id:"volter-resolution-picker-menu",anchorRef:c,className:"volter-resolution-menu",gap:4,onDismiss:()=>n(!1),children:r.map(i=>h.jsx(x,{role:"menuitemradio","aria-checked":i.label===e.label,onSelect:()=>{t(i),n(!1)},children:i.label},i.label))})]})}function s(e){return Number.isFinite(e)&&e>0?e:0}function M(e,t,u={}){const a=s(e.width),r=s(e.height),o=s(t.width),n=s(t.height);if(a===0||r===0||o===0||n===0)return{scale:1,width:o,height:n,offsetX:0,offsetY:0};const c=Math.min(a/o,r/n),l=u.allowUpscale===!0?c:Math.min(c,1),f=o*l,i=n*l;return{scale:l,width:f,height:i,offsetX:(a-f)/2,offsetY:(r-i)/2}}const P={kind:"fill"};function N(e,t){return e.width!==null&&e.height!==null?{kind:"logical",width:e.width,height:e.height,source:"device",allowUpscale:!1}:t!==void 0&&s(t.width)>0&&s(t.height)>0?{kind:"logical",width:t.width,height:t.height,source:"manifest",allowUpscale:!0}:P}export{E as R,v as a,M as f,N as r};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{tC as n}from"./index-Cr9NTnJp.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";export{n as mountVolter};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p as o}from"./utility-view-state-
|
|
1
|
+
import{p as o}from"./utility-view-state-I_o0WThv.js";import"./index-Cr9NTnJp.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";const f="workspace.action",s=[{id:"profiler",label:"Open Profiler",execute:()=>o.open("profiler")}];export{s as actions,f as point};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p as r}from"./utility-view-state-
|
|
1
|
+
import{p as r}from"./utility-view-state-I_o0WThv.js";import"./index-Cr9NTnJp.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";const u="workspace.menu",c={menu:"debug",items:[{id:"profiler",label:"Profiler",testId:"menu-profiler",execute:()=>r.open("profiler")}]};export{c as menu,u as point};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as e}from"./jsx-runtime-DPjLkJKQ.js";import{p as C}from"./utility-view-state-I_o0WThv.js";import{r as h}from"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";import{a3 as N,r as D,af as s,a0 as x,ep as m,en as o,hG as Y,dV as q,hI as A,hH as U,jI as K,jJ as Q}from"./index-Cr9NTnJp.js";import{s as Z,f as E,a as ee,d as H,c as te,b as ne,g as se,l as re,i as ae,e as oe,h as ie,j as le,u as de,t as ce,k as pe,m as me,n as T,o as k,p as ue}from"./frame-debugger-store-BOQjrPsh.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";const j={fontFamily:s.typography.mono,fontSize:11};function fe({draw:t,selected:n,onSelect:r}){return e.jsxs(x,{type:"button",variant:"ghost","data-testid":"frame-draw-row","data-draw-index":t.index,"data-selected":n||void 0,className:"volter-frame-draw-row",onClick:r,children:[e.jsxs("span",{style:{...j,color:s.content.dim,width:34,display:"inline-block"},children:["#",t.index]}),e.jsx("span",{style:{...j,color:s.content.primary},children:t.mode}),e.jsxs("span",{style:{...j,color:s.content.muted},children:[" ",t.count]}),t.instanceCount!==null&&e.jsxs("span",{style:{...j,color:s.content.muted},children:[" ×",t.instanceCount]}),e.jsxs("span",{style:{...j,color:t.annotation?s.content.primary:s.content.dim,fontStyle:t.annotation?"normal":"italic"},children:[" ",t.annotation?t.annotation.object.name||t.annotation.object.type:"unattributed"]})]})}function b({label:t,value:n}){return e.jsxs("div",{style:{display:"flex",gap:8,padding:"1px 0"},children:[e.jsx("span",{style:{fontSize:10,color:s.content.muted,width:92,flexShrink:0},children:t}),e.jsx("span",{style:{...j,color:s.content.primary},children:n})]})}const M=t=>t?"on":"off";function he(t){if(t.kind==="canvas")return"canvas (default framebuffer)";const n=t.width!==null&&t.height!==null?`${t.width}×${t.height}`:"(size not queryable)";return`${t.label??"framebuffer"} ${n}`}function xe(t){return`blend ${M(t.blend)} · depth test ${M(t.depthTest)} · depth write ${M(t.depthWrite)} · cull ${t.cull} · scissor ${M(t.scissor)}`}function ge(t){const n=t.instanceCount!==null?` · ${t.instanceCount} instances`:" · not instanced";return`${t.mode} · ${t.count}${n}`}function ye({draw:t}){return e.jsxs("div",{"data-testid":"frame-draw-detail",style:{padding:8},children:[e.jsx(b,{label:"entry point",value:t.entryPoint}),e.jsx(b,{label:"mode / count",value:ge(t)}),e.jsx(b,{label:"program",value:t.programLabel??"none bound"}),e.jsx(b,{label:"target",value:he(t.target)}),e.jsx(b,{label:"viewport",value:`[${t.viewport.join(", ")}]`}),e.jsx(b,{label:"state",value:xe(t.state)}),t.annotation?e.jsxs(e.Fragment,{children:[e.jsx(b,{label:"object",value:`${t.annotation.object.name||"(unnamed)"} · ${t.annotation.object.type}`}),e.jsx(b,{label:"geometry",value:`${t.annotation.geometry.name||t.annotation.geometry.type}${t.annotation.geometry.indexed?" · indexed":""}`}),e.jsx(b,{label:"attributes",value:t.annotation.geometry.attributes.join(", ")||"—"}),e.jsx(b,{label:"material",value:`${t.annotation.material.name||"(unnamed)"} · ${t.annotation.material.type}`})]}):e.jsx("div",{"data-testid":"frame-draw-unattributed",style:{marginTop:6,fontSize:11,fontStyle:"italic",color:s.content.muted},children:"Not attributable (shadow / post-processing pass — the instrument attributes only main-pass draws through each object's onBeforeRender, and reports the gap honestly rather than guessing)."})]})}function be({capture:t,drawIndex:n,setDrawIndex:r}){const a=t.drawCalls.length,i=Math.min(n,Math.max(0,a-1)),l=t.drawCalls[i]??null,d=le(t);return e.jsxs("div",{style:{flex:1,minHeight:0,display:"flex"},children:[e.jsxs("div",{style:{flex:1,minWidth:0,overflow:"auto",borderRight:`1px solid ${s.boundary.default}`},children:[e.jsxs("div",{style:{display:"flex",gap:6,alignItems:"center",padding:4,borderBottom:`1px solid ${s.boundary.default}`},children:[e.jsx(x,{type:"button",size:"compact",variant:"ghost","data-testid":"frame-draw-prev",disabled:i<=0,onClick:()=>r(Math.max(0,i-1)),children:"◀ Prev"}),e.jsx(x,{type:"button",size:"compact",variant:"ghost","data-testid":"frame-draw-next",disabled:i>=a-1,onClick:()=>r(Math.min(a-1,i+1)),children:"Next ▶"}),e.jsxs("span",{style:{fontSize:10,color:s.content.muted},children:[a===0?"0":i+1,"/",a]})]}),d.map(p=>e.jsxs("div",{"data-testid":"frame-target-group","data-target":p.target,children:[e.jsxs("div",{style:{...j,padding:"2px 8px",color:s.content.muted,borderTop:`1px solid ${s.boundary.default}`,borderBottom:`1px solid ${s.boundary.default}`},children:[p.target," · ",p.draws.length," draws"]}),p.draws.map(u=>e.jsx(fe,{draw:u,selected:u.index===i,onSelect:()=>r(u.index)},u.index))]},p.target))]}),e.jsxs("div",{style:{flex:1,minWidth:0,overflow:"auto"},children:[l?e.jsx(ye,{draw:l}):e.jsx("div",{style:{padding:12,color:s.content.muted,fontSize:12},children:"This capture recorded no draws."}),t.notes.length>0&&e.jsx("div",{style:{padding:"4px 8px",fontSize:10,color:s.content.dim},"data-testid":"frame-capture-notes",children:t.notes.join(" ")})]})]})}function je({captures:t,selectedId:n}){return e.jsx("div",{"data-testid":"frame-capture-history",style:{display:"flex",gap:6,flexWrap:"wrap",padding:"4px 8px",borderBottom:`1px solid ${s.boundary.default}`},children:t.map(r=>{const a=oe(r);return e.jsxs(x,{type:"button",size:"compact",variant:"ghost","data-testid":"frame-capture-item","data-capture-id":r.id,"data-selected":r.id===n||void 0,onClick:()=>ie(r.id),children:["#",r.id," · ",a.drawCalls," draws",a.unattributed>0?` · ${a.unattributed} unattr`:"",a.truncated>0?` · +${a.truncated} capped`:""]},r.id)})})}function ve(){h.useSyncExternalStore(Z,E,E);const[t,n]=h.useState(0),r=N(()=>D().systems.inspected().renderDebug??null);h.useEffect(()=>{ee(r)},[r]);const a=H(r),i=se(),l=i.selected;if(h.useEffect(()=>{n(0)},[l?.id]),!r||!a)return e.jsxs("div",{"data-testid":"frame-debugger-empty",style:{padding:16,color:s.content.muted,fontSize:12,lineHeight:"18px"},children:[e.jsx("div",{style:{color:s.content.primary,marginBottom:4},children:"No render-debug adapter — no game session is running."}),"Frame capture exists only while a game session runs. Press Play: first-party worlds register a ",e.jsx("code",{style:j,children:"RenderDebugAdapter"})," automatically when they hold a real WebGL2 context; a custom world exposes its own via"," ",e.jsx("code",{style:j,children:"ctx.registerSystemAdapter?.('renderDebug', adapter)"}),". A headless mount registers none — there is nothing to capture."]});const d=re(),p=ae();return e.jsxs("div",{"data-testid":"frame-debugger",className:"volter-content-frost",style:{flex:1,minHeight:0,display:"flex",flexDirection:"column",fontSize:12},children:[e.jsxs("div",{style:{display:"flex",flexWrap:"wrap",gap:10,alignItems:"center",padding:"4px 8px",borderBottom:`1px solid ${s.boundary.default}`},children:[e.jsx(x,{type:"button",size:"compact","data-testid":"frame-capture-button",disabled:p,onClick:()=>void te(r),children:p?"Capturing…":"Capture frame"}),e.jsx("span",{style:{fontSize:10,color:s.content.dim},children:"Single-frame draw-call list with per-draw state — not a GPU replayer."}),i.all.length>0&&e.jsx(x,{type:"button",size:"compact",variant:"ghost","data-testid":"frame-capture-clear",onClick:()=>ne(),children:"Clear"})]}),d&&e.jsxs("div",{"data-testid":"frame-capture-error",style:{padding:"4px 8px",fontSize:11,color:s.semantic.danger,borderBottom:`1px solid ${s.boundary.default}`},children:["Capture failed: ",d]}),i.all.length>0&&e.jsx(je,{captures:i.all,selectedId:l?.id??null}),l?e.jsx(be,{capture:l,drawIndex:t,setDrawIndex:n},l.id):e.jsxs("div",{"data-testid":"frame-debugger-no-capture",style:{padding:12,color:s.content.muted,fontSize:12},children:["No frame captured yet. Press ",e.jsx("strong",{children:"Capture frame"})," while the game renders."]})]})}const S=1,w=1,Se=1e3;function $(t){return Math.round(t*Se)}function we(t,n){const r=[];r.push({name:"process_name",cat:"__metadata",ph:"M",ts:0,dur:0,pid:S,tid:w,args:{name:n.processName}}),r.push({name:"thread_name",cat:"__metadata",ph:"M",ts:0,dur:0,pid:S,tid:w,args:{name:n.threadName}});for(const a of t){const i=a.timestamp-a.cpuMs,l=$(i);r.push({name:`frame ${a.id}`,cat:"frame",ph:"X",ts:l,dur:$(a.cpuMs),pid:S,tid:w,args:{id:a.id,drawCalls:a.render.drawCalls,triangles:a.render.triangles}});for(const d of a.phases)r.push({name:d.name,cat:"phase",ph:"X",ts:$(i+(d.startMs??0)),dur:$(d.ms),pid:S,tid:w});for(const d of a.systems)r.push({name:d.name,cat:"system",ph:"X",ts:$(i+d.startMs),dur:$(d.ms),pid:S,tid:w,args:{phase:d.phase}});r.push({name:"render",cat:"counter",ph:"C",ts:l,dur:0,pid:S,tid:w,args:{drawCalls:a.render.drawCalls,triangles:a.render.triangles}})}return{traceEvents:r,displayTimeUnit:"ms",otherData:{version:2,processName:n.processName,threadName:n.threadName,frameCount:t.length}}}function $e(t){if(t.length<4)return 0;let n=Number.POSITIVE_INFINITY;for(const a of t)n=Math.min(n,a);let r=0;for(const a of t)r+=Math.max(0,a-n);return r}const R=1200;function Ce(){const t=[];let n=null,r=0;const a=()=>{const i=performance.now();t.push({t:i,gapMs:i-r}),t.length>R&&t.splice(0,t.length-R),r=i,n=setTimeout(a,0)};return{start(){n===null&&(t.length=0,r=performance.now(),n=setTimeout(a,0))},stop(){n!==null&&(clearTimeout(n),n=null)},busySince(i){const l=[];for(const d of t)d.t>=i&&l.push(d.gapMs);return{busyMs:$e(l),sampleCount:l.length}}}}const B={enabled:!1,recording:!1,fps:0,cpuMs:0,p95Ms:0,p99Ms:0,frames:[],phases:[],systems:[],components:[],render:{gpuMs:null,drawCalls:0,triangles:0,geometries:0,textures:0,renderPasses:null}},Te=500;function Me(t){const n=URL.createObjectURL(new Blob([t.exportJSON()],{type:"application/json"})),r=document.createElement("a");r.href=n,r.download=`volter-performance-${new Date().toISOString().replaceAll(":","-")}.json`,r.click(),URL.revokeObjectURL(n)}function ze(t,n){const r=we(t.getSnapshot().frames,{processName:n,threadName:"main"}),a=URL.createObjectURL(new Blob([JSON.stringify(r)],{type:"application/json"})),i=document.createElement("a");i.href=a,i.download=`volter-trace-${new Date().toISOString().replaceAll(":","-")}.json`,i.click(),URL.revokeObjectURL(a)}const z=720,P=18,I=40,L=[s.accent.default,s.semantic.success,s.semantic.warning,s.content.muted];function Pe({snapshot:t}){const n=t.frames,[r,a]=h.useState(null),i=r!==null&&r<n.length?r:n.length-1,l=n[i],d=pe(n,z,I),p=l?me(l,z):[],u=p.reduce((c,g)=>Math.max(c,g.depth),0);return n.length===0?e.jsxs("div",{"data-testid":"flamegraph-empty",style:{padding:o[6],color:s.content.muted},children:["No frames recorded yet. Frames accumulate while the profiler is enabled; use"," ",e.jsx("strong",{children:"Record capture"})," to also collect per-component spans."]}):e.jsxs("div",{"data-testid":"flamegraph-view",style:{padding:o[4]},children:[e.jsxs("div",{style:{marginBottom:o[4],color:s.content.muted},children:["Frame ",e.jsx("span",{style:{color:s.content.primary},children:l?l.id:"—"})," ·"," ",l?`${l.cpuMs.toFixed(2)} ms CPU`:""," · GPU"," ",e.jsx("span",{style:{color:s.content.primary},children:l&&l.render.gpuMs!==null?`${l.render.gpuMs.toFixed(2)} ms`:"n/a"})]}),e.jsx("div",{"data-testid":"flame-frame-strip",style:{position:"relative",width:z,height:I,boxShadow:`inset 0 0 0 1px ${s.boundary.default}`,marginBottom:o[5]},children:d.map(c=>e.jsx("div",{role:"button",tabIndex:0,"data-testid":"flame-frame-bar","data-frame-index":c.index,"data-selected":c.index===i||void 0,title:`frame ${c.frameId} · ${c.cpuMs.toFixed(2)} ms`,onClick:()=>a(c.index),onKeyDown:g=>{(g.key==="Enter"||g.key===" ")&&a(c.index)},style:{position:"absolute",left:c.x,bottom:0,width:Math.max(1,c.w-1),height:Math.max(1,c.h),cursor:"pointer",background:c.index===i?s.semantic.warning:s.accent.default}},c.frameId))}),e.jsx("div",{"data-testid":"flamegraph-rows",style:{position:"relative",width:z,height:(u+1)*P},children:p.map((c,g)=>e.jsx("div",{"data-testid":"flame-rect","data-depth":c.depth,"data-name":c.label,title:`${c.label} · ${c.ms.toFixed(3)} ms`,style:{position:"absolute",left:c.x,top:c.depth*P,width:Math.max(1,c.w),height:P-1,overflow:"hidden",whiteSpace:"nowrap",fontSize:m.sm,lineHeight:`${P-1}px`,paddingLeft:3,color:s.content.onAccent,background:L[Math.min(c.depth,L.length-1)],borderRight:`1px solid ${s.surface.inset}`},children:c.label},`${c.depth}-${g}-${c.label}`))}),e.jsxs("div",{style:{marginTop:o[3],fontSize:m.sm,color:s.content.dim},children:["Rows: frame · phase · system",t.recording?" · component (recording)":"",". Only measured CPU spans are drawn — GPU time is a whole-frame aggregate, never a fabricated lane."]})]})}function O({title:t,entries:n,estimated:r,testId:a}){return e.jsxs("div",{"data-testid":a,style:{marginTop:o[5],border:`1px solid ${s.boundary.default}`},children:[e.jsxs("div",{style:{padding:`${o[3]} ${o[5]}`,borderBottom:`1px solid ${s.boundary.default}`,color:s.content.muted},children:[t,r&&e.jsx("span",{style:{marginLeft:o[3],fontSize:m.xs,color:s.content.dim},children:"ESTIMATED"})]}),n.length===0?e.jsx("div",{style:{padding:`${o[2]} ${o[5]}`,color:s.content.dim,fontSize:m.base},children:"none"}):n.map(i=>e.jsxs("div",{style:{display:"flex",justifyContent:"space-between",gap:o[8],padding:"3px 10px"},children:[e.jsx("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:i.name}),e.jsx("span",{style:{fontVariantNumeric:"tabular-nums"},children:T(i.bytes)})]},i.name))]})}function Fe(){const t=N(()=>D().systems.inspected().renderDebug??null),n=H(t),[r,a]=h.useState(null);h.useEffect(()=>{if(!t?.memorySnapshot){a(null);return}const l=()=>a(t.memorySnapshot?.()??null);l();const d=setInterval(l,1e3);return()=>clearInterval(d)},[t]);const i=K();return e.jsxs("div",{style:{padding:o[4]},children:[e.jsxs("div",{"data-testid":"memory-heap",style:{border:`1px solid ${s.boundary.default}`,padding:o[5],marginBottom:o[5]},children:[e.jsx("div",{style:{color:s.content.dim,textTransform:"uppercase",fontSize:m.sm},children:"JS heap (performance.memory)"}),Q(i)?e.jsxs("div",{style:{fontSize:m.xl,color:s.content.primary,marginTop:3},children:[T(i.usedBytes)," ",e.jsxs("span",{style:{fontSize:m.base,color:s.content.muted},children:["used / ",T(i.totalBytes)," total"]})]}):e.jsx("div",{"data-testid":"memory-heap-unavailable",style:{fontSize:m.base,color:s.content.muted,marginTop:3,fontStyle:"italic"},children:i.unavailable})]}),n?.memory?r===null?e.jsx("div",{style:{padding:o[4],color:s.content.muted,fontSize:m.base},children:"Waiting for the first render-memory sample…"}):e.jsxs("div",{"data-testid":"memory-section",children:[e.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(3, minmax(80px, 1fr))",gap:o[4]},children:[["Geometries",String(r.counts.geometries)],["Textures",String(r.counts.textures)],["Programs",r.counts.programs===null?"n/a until first render":String(r.counts.programs)]].map(([l,d])=>e.jsxs("div",{style:{border:`1px solid ${s.boundary.default}`,padding:o[5]},children:[e.jsx("div",{style:{color:s.content.dim,textTransform:"uppercase",fontSize:m.sm},children:l}),e.jsx("div",{style:{fontSize:m["2xl"],color:s.content.primary,marginTop:3},children:d})]},l))}),e.jsxs("div",{"data-testid":"memory-vram-totals",style:{display:"flex",gap:18,marginTop:o[5],fontSize:m.base,color:s.content.muted},children:[e.jsxs("span",{children:["geometry buffers"," ",e.jsx("span",{style:{color:s.content.primary},children:T(r.estimatedGeometryBytes)})," ",e.jsx("span",{style:{fontSize:m.xs,color:s.content.dim},children:"EXACT"})]}),e.jsxs("span",{children:["texture VRAM"," ",e.jsx("span",{style:{color:s.content.primary},children:T(r.estimatedTextureBytes)})," ",e.jsx("span",{style:{fontSize:m.xs,color:s.content.dim},children:"ESTIMATED"})]})]}),e.jsx(O,{title:"Top geometries",entries:r.topGeometries,estimated:!1,testId:"memory-top-geometries"}),e.jsx(O,{title:"Top textures",entries:r.topTextures,estimated:!0,testId:"memory-top-textures"}),r.unestimated.length>0&&e.jsxs("div",{"data-testid":"memory-unestimated",style:{marginTop:o[5],border:`1px solid ${s.boundary.default}`},children:[e.jsxs("div",{style:{padding:`${o[3]} ${o[5]}`,borderBottom:`1px solid ${s.boundary.default}`,color:s.content.muted},children:["Unmeasured textures (",r.unestimated.length,") — excluded from the total, not zeroed"]}),r.unestimated.map(l=>e.jsxs("div",{style:{display:"flex",justifyContent:"space-between",gap:o[8],padding:"3px 10px",fontSize:m.base},children:[e.jsx("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:l.name}),e.jsx("span",{style:{color:s.content.dim},children:l.reason})]},l.name))]})]}):e.jsxs("div",{"data-testid":"memory-absent",style:{padding:o[4],color:s.content.muted,fontSize:m.base,fontStyle:"italic"},children:["Render-memory introspection is not provided by this world's adapter — a headless mount has no ",e.jsx("code",{children:"renderer.info"}),", and a canvas (PixiJS) world's renderer publishes no managed geometry collection to measure at all. Enter Play with a first-party three world to inspect geometry/texture footprints."]})]})}function De(t){const n=h.useRef([]),r=typeof PerformanceObserver<"u"&&(PerformanceObserver.supportedEntryTypes??[]).includes("long-animation-frame");return h.useEffect(()=>{if(!t||!r)return;n.current=[];const a=new PerformanceObserver(i=>{const l=n.current;for(const d of i.getEntries())l.push(d);l.length>40&&l.splice(0,l.length-40)});return a.observe({type:"long-animation-frame"}),()=>a.disconnect()},[t,r]),{entries:n.current,supported:r}}function Ee(t,n,r){const a=h.useRef(null);a.current===null&&(a.current=Ce()),h.useEffect(()=>{const l=a.current;if(!(!t||!l))return l.start(),()=>l.stop()},[t]);const i=performance.now()-1e3;return ce(n.frames,i,a.current.busySince(i),r)}function ke({row:t,rootMs:n}){const r=t.ms!==null&&n>0?Math.min(1,t.ms/n):0,a=t.depth===0;return e.jsxs("div",{style:{display:"grid",gridTemplateColumns:"260px 1fr 70px",gap:o[5],padding:`${o[2]} ${o[5]}`,paddingLeft:10+t.depth*16},children:[e.jsxs("span",{style:{color:a||t.depth===1?s.content.primary:s.content.muted,fontStyle:t.parallel?"italic":void 0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:t.note?`${t.label} — ${t.note}`:t.label,children:[t.label,t.note&&e.jsx("span",{style:{marginLeft:o[3],fontSize:m.sm,color:s.content.dim},children:t.note})]}),e.jsx("div",{style:{background:s.surface.raised,height:6,marginTop:5,opacity:t.parallel?.45:1},children:e.jsx("div",{style:{width:`${r*100}%`,height:"100%",background:!a&&t.ms!==null&&t.ms>8?s.semantic.warning:s.accent.default}})}),e.jsx("span",{style:{textAlign:"right",fontVariantNumeric:"tabular-nums",color:a?s.content.primary:void 0},children:t.ms===null?"—":`${t.ms.toFixed(1)} ms`})]})}function Re({snapshot:t,timeSpent:n,entries:r,loafSupported:a}){const i=n?.budget??null,l=i?k(i.frameMs,i.loopMs):k(t.p95Ms,t.cpuMs),d=1e4,p=ue(r.filter(u=>(u.startTime??0)>=performance.now()-d));return n===null&&!l.dominated&&p.longFrameCount===0?null:e.jsxs("div",{"data-testid":"time-spent-section",style:{marginTop:o[6],border:`1px solid ${s.boundary.default}`},children:[e.jsx("div",{style:{padding:"7px 10px",borderBottom:`1px solid ${s.boundary.default}`,color:s.content.muted},children:"Where the frame goes"}),n!==null&&e.jsx("div",{"data-testid":"time-spent-tree",style:{paddingBottom:o[1]},children:n.rows.map(u=>e.jsx(ke,{row:u,rootMs:n.budget.frameMs},`${u.depth}:${u.label}`))}),l.dominated&&e.jsxs("div",{style:{padding:`${o[3]} ${o[5]}`,color:s.content.muted,borderTop:`1px solid ${s.boundary.default}`},children:["The measured loop explains less than half of the frame time — the bottleneck is"," ",p.scripts.length>0?"partly the main-thread work below, and the rest":"not on the main thread: look at the display pipeline"," ","(GPU/compositor: post-effects, glass chrome, pixel ratio) or browser throttling."]}),p.scripts.length>0&&e.jsx("div",{style:{padding:"5px 10px 2px",borderTop:`1px solid ${s.boundary.default}`,fontSize:m.sm,color:s.content.dim},children:"Named main-thread offenders — longer memory than the tree (last 10s of long frames)"}),p.scripts.map(u=>e.jsxs("div",{style:{display:"flex",justifyContent:"space-between",gap:o[8],padding:`${o[2]} ${o[5]}`},children:[e.jsx("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:u.key}),e.jsxs("span",{style:{fontVariantNumeric:"tabular-nums"},children:[u.totalMs," ms ×",u.count]})]},u.key)),p.longFrameCount>0&&e.jsxs("div",{style:{padding:`${o[2]} ${o[5]}`,fontSize:m.sm,color:s.content.dim},children:[p.longFrameCount," long main-thread frame",p.longFrameCount===1?"":"s"," (",p.totalLongMs," ms total, ",p.unattributedMs," ms unattributed style/layout/GC) — browser long-animation-frame report, last 10s."]}),!a&&e.jsx("div",{style:{padding:`${o[2]} ${o[5]}`,fontSize:m.sm,color:s.content.dim},children:"Main-thread attribution unavailable — this browser does not support long-animation-frame timing."})]})}function Be(){const t=de(),n=t?.profiler??null,[r,a]=h.useState(B),[i,l]=h.useState(!1),[d,p]=h.useState(!1),[u,c]=h.useState("overview"),g=h.useRef(!1),F=De(n),V=Ee(n,r,F.entries),_=()=>{const f=!g.current;g.current=f,l(f),!f&&n&&a(n.getSnapshot())},W=()=>{if(!n)return;const f=!n.enabled;f&&p(!1),n.enabled=f,a(n.getSnapshot())};return h.useEffect(()=>{if(!n){a(B);return}g.current=!1,l(!1),p(!1);const f=n.enabled;n.enabled=!0,a(n.getSnapshot());let y=null,v=performance.now();const G=()=>{y=null,!g.current&&(v=performance.now(),a(n.getSnapshot()))},J=n.subscribe(()=>{if(g.current||y!==null)return;const X=Math.max(0,Te-(performance.now()-v));y=setTimeout(G,X)});return()=>{J(),y!==null&&clearTimeout(y),!f&&!n.recording&&(n.enabled=!1)}},[n]),n?e.jsxs("div",{className:"volter-content-frost",style:{height:"100%",overflow:"auto",padding:o[6],color:s.content.primary,fontSize:m.md},children:[e.jsxs("div",{style:{marginBottom:o[5],color:s.content.muted},children:["Profiling ",e.jsx("span",{style:{color:s.content.primary},children:t?.label}),r.enabled&&d&&e.jsx(Y,{style:{marginLeft:o[4]},children:"Profiling active"})]}),r.enabled&&!d&&e.jsxs(q,{tone:"warning",style:{marginBottom:o[5]},actions:e.jsx(x,{size:"compact",variant:"ghost",onClick:()=>p(!0),children:"Dismiss"}),children:["Live profiling is active and adds measurement overhead. Displayed timings include that cost",r.recording?"; capture recording adds detailed timing marks":"","."]}),e.jsxs("div",{style:{display:"flex",gap:o[4],alignItems:"center",marginBottom:o[6]},children:[e.jsx(x,{size:"compact",onClick:_,children:i?"Resume view":"Freeze view"}),e.jsxs(x,{size:"compact",onClick:W,children:[r.enabled?"Disable":"Enable"," profiler"]}),e.jsx(x,{size:"compact",onClick:()=>r.recording?n.stopRecording():n.startRecording(),children:r.recording?"Stop capture":"Record capture"}),e.jsx(x,{size:"compact",onClick:()=>n.clear(),children:"Clear"}),e.jsx(x,{size:"compact",onClick:()=>Me(n),children:"Export JSON"}),e.jsx(x,{size:"compact","data-testid":"profiler-export-trace",onClick:()=>ze(n,t?.label??"volter"),children:"Export Chrome trace"})]}),e.jsx(A,{"aria-label":"Profiler views",style:{marginBottom:o[6]},children:[["overview","Overview"],["flamegraph","Flamegraph"],["memory","Memory"]].map(([f,y])=>e.jsx(U,{selected:u===f,"data-testid":`profiler-view-${f}`,onClick:()=>c(f),children:y},f))}),u==="flamegraph"&&e.jsx(Pe,{snapshot:r}),u==="memory"&&e.jsx(Fe,{}),u==="overview"&&e.jsxs(e.Fragment,{children:[e.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(80px, 1fr))",gap:o[4]},children:[["FPS",r.fps.toFixed(0)],["CPU",`${r.cpuMs.toFixed(2)} ms`],["p95 frame",`${r.p95Ms.toFixed(2)} ms`],["p99 frame",`${r.p99Ms.toFixed(2)} ms`],["GPU",r.render.gpuMs===null?"n/a":`${r.render.gpuMs.toFixed(2)} ms`],["Draw calls",String(r.render.drawCalls)],["Triangles",r.render.triangles.toLocaleString()]].map(([f,y])=>e.jsxs("div",{style:{border:`1px solid ${s.boundary.default}`,padding:o[5]},children:[e.jsx("div",{style:{color:s.content.dim,textTransform:"uppercase",fontSize:m.sm},children:f}),e.jsx("div",{style:{fontSize:18,color:s.content.primary,marginTop:3},children:y})]},f))}),e.jsx(Re,{snapshot:r,timeSpent:V,entries:F.entries,loafSupported:F.supported}),[["Components (recording)",r.components]].map(([f,y])=>e.jsxs("div",{style:{marginTop:o[6],border:`1px solid ${s.boundary.default}`},children:[e.jsx("div",{style:{padding:"7px 10px",borderBottom:`1px solid ${s.boundary.default}`,color:s.content.muted},children:f}),y.slice(0,12).map(v=>e.jsxs("div",{style:{display:"flex",justifyContent:"space-between",gap:o[8],padding:`${o[2]} ${o[5]}`},children:[e.jsx("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:v.name}),e.jsxs("span",{style:{fontVariantNumeric:"tabular-nums"},children:[v.ms.toFixed(2)," ms"]})]},v.name))]},f))]})]}):e.jsx("div",{style:{padding:o[6],fontSize:m.md,color:s.content.muted,maxWidth:480},children:e.jsx("p",{style:{margin:0},children:D().documents.active()?"The active document has no live render loop to profile.":"Open a rendered document to profile it."})})}const Ie=[{id:"profiler",label:"Profiler"},{id:"frame",label:"Frame"}];function Le(){h.useSyncExternalStore(C.subscribe,C.version,C.version);const t=C.active();return e.jsxs("div",{"data-testid":"profiler-panel",style:{flex:1,minHeight:0,display:"flex",flexDirection:"column"},children:[e.jsx(A,{"aria-label":"Profiler views",children:Ie.map(n=>e.jsx(U,{selected:t===n.id,"data-testid":`profiler-tab-${n.id}`,onClick:()=>C.select(n.id),children:n.label},n.id))}),e.jsxs("div",{role:"tabpanel",style:{flex:1,minHeight:0,display:"flex"},children:[t==="profiler"&&e.jsx(Be,{}),t==="frame"&&e.jsx(ve,{})]})]})}const Ye="workspace.utility",qe="Profiler",Ke=20;function Qe(){return e.jsx(Le,{})}export{Qe as default,Ke as order,Ye as point,qe as title};
|
package/dist/assets/{project-authoring-session-LCJAwGrD.js → project-authoring-session-BhNfg7TY.js}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/world-documents-
|
|
2
|
-
import{
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/world-documents-psBK5u_2.js","assets/jsx-runtime-DPjLkJKQ.js","assets/_commonjsHelpers-D6-XlEtG.js","assets/index-Cr9NTnJp.js","assets/index-nmcBqr7Y.js","assets/index-D_NuPfjr.js","assets/index-CtzuWnCS.js","assets/index-CinJrH5C.js","assets/index-FUuS4qwW.js","assets/client-DNXj_opT.js","assets/index-CPiRKiDC.css","assets/design-time-layers-BIb71snu.js","assets/root-stacking-BEd9ZvxC.js","assets/edit-mode-authoring-ZQuUwc6e.js","assets/design-time-mount-registry-DUpXCg1U.js","assets/react-story-board-mhldts6w.js","assets/react-canvas-navigation-DuzvnFoN.js","assets/component-board-registry-DrIa2csL.js","assets/surface-state-CQHVfsma.js","assets/board-guides-BG-MHK2G.js","assets/CanvasSceneViewport-57CEFqSM.js","assets/RootSelectionOverlay-Cn2Rbr1N.js","assets/eyedropper-session-bjPXnfeX.js","assets/layered-pick-D9tIz_m7.js","assets/viewport-editor-controls-BYaAZ_Ku.js","assets/inspect-CN92MgRT.js","assets/inference-diagnostics-D5jfxI5p.js","assets/Toolbar-BZyog9MR.js","assets/transform-mode-request-CIgYj1Qb.js","assets/TransientHint-RJEkOJoy.js","assets/ReactCanvasControls-rNz8syVB.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{aN as u,aO as p,aP as l,_ as m,aQ as f,x as b}from"./index-Cr9NTnJp.js";import{b as D,e as o,i as v}from"./edit-mode-authoring-ZQuUwc6e.js";class P{constructor(s){this.store=s,this.unbind=D(()=>this.rebuild()),this.ready=this.rebuild()}references=0;disposed=!1;composite;disposeDocuments;stages=new Set;tail=Promise.resolve();unbind;ready;retain(){return this.references++,()=>{--this.references>0||(this.disposed=!0,this.unbind(),this.disposeDocuments?.(),o(this.composite),n.delete(this.store))}}attach(s){const r=this.retain();return this.stages.add(s),{ready:this.composite?s(this.composite):this.tail,dispose:()=>{this.stages.delete(s),r()}}}rebuild(){const s=this.tail.then(async()=>{if(this.disposed)return;const r=b(),a=new Set(p().map(t=>t.descriptor.id)),d=this.composite?l().map(t=>t.descriptor.id).filter(t=>a.has(t)):[];this.disposeDocuments?.(),this.disposeDocuments=void 0,o(this.composite),this.composite=void 0;const i=await v(this.store);if(this.disposed){o(i);return}const{installRootDocuments:h}=await m(async()=>{const{installRootDocuments:t}=await import("./world-documents-psBK5u_2.js");return{installRootDocuments:t}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30]));if(this.disposed){o(i);return}this.composite=i,this.disposeDocuments=h(this.store,i);for(const t of d)f(t,t===r);await Promise.all([...this.stages].map(t=>t(i)))});return this.tail=s.catch(()=>{}),s}}const n=new Map;function c(e){let s=n.get(e);return s||(s=new P(e),n.set(e,s)),s}function y(e){const s=c(e);return{ready:s.ready.then(()=>u()),dispose:s.retain()}}function _(e,s){return c(e).attach(s)}export{_ as a,y as r};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const l=".volter/provenance.json";function y(t){const r=t.split(/[?#]/,1)[0].replace(/^\/+/,"");return r.startsWith("public/")?r:`public/${r}`}async function d(){const t=await fetch(`/__editor/volter-file?${new URLSearchParams({path:l})}`);return t.ok?JSON.parse(await t.text()):null}function c(t){return t&&typeof t=="object"&&!Array.isArray(t)?t:null}function h(t,r){const e=c(t);if(e?.path!==r||typeof e.bytes!="number"||typeof e.sha256!="string")return null;const n=e.mediaType,o=e.role;return{path:r,bytes:e.bytes,sha256:e.sha256,...typeof n=="string"?{mediaType:n}:{},...typeof o=="string"?{role:o}:{}}}function A(t,r,e){const n=c(r),o=c(n?.operation),s=n?.outputs,a=n?.createdAt,i=o?.name;if(!n||!o||typeof a!="string"||typeof i!="string"||!Array.isArray(s))return[];const p=o.source;return s.flatMap(f=>{const u=h(f,e);return u?[{operationId:t,createdAt:a,operationName:i,...typeof p=="string"?{operationSource:p}:{},...n.input!==void 0?{input:n.input}:{},output:u}]:[]})}async function m(t){const r=c(await d()),e=c(r?.operations);if(!e)return null;const n=y(t);return Object.entries(e).flatMap(([s,a])=>A(s,a,n)).sort((s,a)=>a.createdAt.localeCompare(s.createdAt))[0]??null}export{m as a,y as p};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as o,a as r}from"./blender-properties-tab-
|
|
1
|
+
import{b as o,a as r}from"./blender-properties-tab-BSmWG9d0.js";import{CONSTRAINT_HEADER as i}from"./properties-constraints.inspector-TIyIV777.js";import"./jsx-runtime-DPjLkJKQ.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-Cr9NTnJp.js";import"./index-nmcBqr7Y.js";import"./index-D_NuPfjr.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./blender-runtime-host-Cbkie7m4.js";import"./preview-renderer-BrYNFV1p.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./environment-Dg-YaLsA.js";import"./RoomEnvironment-BkknvS_I.js";import"./EXRLoader-CITMBvGd.js";import"./HDRLoader-BTGuGhVo.js";import"./renderer-ownership-BovSEcLv.js";import"./output-pass-HurwNl0G.js";import"./Pass-D1MRT672.js";import"./clip-planes-CnAI6DZn.js";import"./content-bounds-7UyI42Vj.js";import"./hierarchy-marks-CndAXtie.js";import"./workspace-arrangement-dkubzCff.js";const p=[{title:"Bone Constraints",from:"Constraints",collection:!0,properties:i,andDeclared:!0}],t={id:"bone_constraint",curated:p},H="selection.inspector",I="Bone Constraints",M="properties-bone-constraints",O=140,U="object",g=r(t),k=o(t);export{k as default,M as icon,g as match,O as order,H as point,U as railGroup,I as title};
|
package/dist/assets/{properties-bone.inspector-D2fcQGMF.js → properties-bone.inspector-CYHeZX0p.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as o,a as t}from"./blender-properties-tab-
|
|
1
|
+
import{b as o,a as t}from"./blender-properties-tab-BSmWG9d0.js";import"./jsx-runtime-DPjLkJKQ.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-Cr9NTnJp.js";import"./index-nmcBqr7Y.js";import"./index-D_NuPfjr.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./blender-runtime-host-Cbkie7m4.js";import"./preview-renderer-BrYNFV1p.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./environment-Dg-YaLsA.js";import"./RoomEnvironment-BkknvS_I.js";import"./EXRLoader-CITMBvGd.js";import"./HDRLoader-BTGuGhVo.js";import"./renderer-ownership-BovSEcLv.js";import"./output-pass-HurwNl0G.js";import"./Pass-D1MRT672.js";import"./clip-planes-CnAI6DZn.js";import"./content-bounds-7UyI42Vj.js";import"./hierarchy-marks-CndAXtie.js";import"./workspace-arrangement-dkubzCff.js";const i=[{title:"Transform (Pose)",from:"Pose Bone",properties:["location","lock_location","rotation_quaternion","rotation_axis_angle","rotation_euler","lock_rotation_w","lock_rotation","rotation_mode","scale","lock_scale"]},{title:"Transform",from:"Bone",properties:["head","tail","roll","length","lock"]},{title:"Bendy Bones",closed:!0,from:"Bone",properties:["bbone_segments","bbone_x","bbone_z","bbone_mapping_mode","use_endroll_as_inroll","use_scale_easing","bbone_handle_type_start","bbone_handle_use_scale_start","bbone_handle_use_ease_start","bbone_handle_type_end","bbone_handle_use_scale_end","bbone_handle_use_ease_end"]},{title:"Relations",from:"Bone",properties:["parent","children","use_relative_parent","use_connect","use_local_location","use_inherit_rotation","inherit_scale"]},{title:"Bone Collections",closed:!0,from:"Bone",properties:["collections"]},{title:"Inverse Kinematics",closed:!0,from:"Pose Bone",properties:["ik_stretch","lock_ik_x","lock_ik_y","lock_ik_z","ik_stiffness_x","ik_stiffness_y","ik_stiffness_z","use_ik_limit_x","ik_min_x","ik_max_x","use_ik_limit_y","ik_min_y","ik_max_y","use_ik_limit_z","ik_min_z","ik_max_z","use_ik_rotation_control"]},{title:"Deform",closed:!0,from:"Bone",properties:["use_deform","envelope_distance","envelope_weight","use_envelope_multiply","head_radius","tail_radius"]},{title:"Viewport Display",closed:!0,from:"Bone",properties:["hide","hide_select","display_type","color","show_wire"],sub:[{title:"Custom Shape",closed:!0,from:"Pose Bone",properties:["custom_shape","custom_shape_translation","custom_shape_rotation_euler","custom_shape_scale_xyz","use_custom_shape_bone_size","custom_shape_transform"]}]}],e={id:"bone",curated:i},D="selection.inspector",A="Bone",R="properties-bone",S=130,j="object",q=t(e),E=o(e);export{E as default,R as icon,q as match,S as order,D as point,j as railGroup,A as title};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as i,a as e}from"./blender-properties-tab-
|
|
1
|
+
import{b as i,a as e}from"./blender-properties-tab-BSmWG9d0.js";import"./jsx-runtime-DPjLkJKQ.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-Cr9NTnJp.js";import"./index-nmcBqr7Y.js";import"./index-D_NuPfjr.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./blender-runtime-host-Cbkie7m4.js";import"./preview-renderer-BrYNFV1p.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./environment-Dg-YaLsA.js";import"./RoomEnvironment-BkknvS_I.js";import"./EXRLoader-CITMBvGd.js";import"./HDRLoader-BTGuGhVo.js";import"./renderer-ownership-BovSEcLv.js";import"./output-pass-HurwNl0G.js";import"./Pass-D1MRT672.js";import"./clip-planes-CnAI6DZn.js";import"./content-bounds-7UyI42Vj.js";import"./hierarchy-marks-CndAXtie.js";import"./workspace-arrangement-dkubzCff.js";const o=[{title:"Visibility",properties:["hide_select","hide_render"],sub:[{title:"View Layer",from:"View Layer Collection",properties:["exclude","holdout","indirect_only"]}]},{title:"Instancing",properties:["instance_offset"]},{title:"Line Art",properties:["lineart_usage","lineart_use_intersection_mask","lineart_intersection_mask","use_lineart_intersection_priority","lineart_intersection_priority"]},{title:"Exporters",properties:["exporters"]}],t={id:"collection",curated:o},P="selection.inspector",B="Collection",D="properties-collection",G=60,I="collection",M=e(t),R=i(t);export{R as default,D as icon,M as match,G as order,P as point,I as railGroup,B as title};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as o,a as r}from"./blender-properties-tab-
|
|
1
|
+
import{b as o,a as r}from"./blender-properties-tab-BSmWG9d0.js";import"./jsx-runtime-DPjLkJKQ.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-Cr9NTnJp.js";import"./index-nmcBqr7Y.js";import"./index-D_NuPfjr.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./blender-runtime-host-Cbkie7m4.js";import"./preview-renderer-BrYNFV1p.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./environment-Dg-YaLsA.js";import"./RoomEnvironment-BkknvS_I.js";import"./EXRLoader-CITMBvGd.js";import"./HDRLoader-BTGuGhVo.js";import"./renderer-ownership-BovSEcLv.js";import"./output-pass-HurwNl0G.js";import"./Pass-D1MRT672.js";import"./clip-planes-CnAI6DZn.js";import"./content-bounds-7UyI42Vj.js";import"./hierarchy-marks-CndAXtie.js";import"./workspace-arrangement-dkubzCff.js";const i=["name","type","enabled","mute","influence","error_location","error_rotation","is_valid","is_override_data"],e=[{title:"Constraints",from:"Constraints",collection:!0,active:"activeConstraint",properties:i,andDeclared:!0}],t={id:"constraint",curated:e},x="selection.inspector",y="Object Constraints",B="properties-constraints",G=110,H="object",I=r(t),M=o(t);export{i as CONSTRAINT_HEADER,M as default,B as icon,I as match,G as order,x as point,H as railGroup,y as title};
|
package/dist/assets/{properties-data.inspector-BfRqk0Xo.js → properties-data.inspector-vA0MTaup.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as p,r as a,a as l,c}from"./blender-properties-tab-
|
|
1
|
+
import{b as p,r as a,a as l,c}from"./blender-properties-tab-BSmWG9d0.js";import"./jsx-runtime-DPjLkJKQ.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-Cr9NTnJp.js";import"./index-nmcBqr7Y.js";import"./index-D_NuPfjr.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./blender-runtime-host-Cbkie7m4.js";import"./preview-renderer-BrYNFV1p.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./environment-Dg-YaLsA.js";import"./RoomEnvironment-BkknvS_I.js";import"./EXRLoader-CITMBvGd.js";import"./HDRLoader-BTGuGhVo.js";import"./renderer-ownership-BovSEcLv.js";import"./output-pass-HurwNl0G.js";import"./Pass-D1MRT672.js";import"./clip-planes-CnAI6DZn.js";import"./content-bounds-7UyI42Vj.js";import"./hierarchy-marks-CndAXtie.js";import"./workspace-arrangement-dkubzCff.js";const n=[{title:"Vertex Groups",from:"Vertex Groups",collection:!0,active:"activeVertexGroup",properties:["name","index","lock_weight"]},{title:"Shape Keys",from:"Shape Keys",properties:["key_blocks","use_relative","eval_time","reference_key"]},{title:"UV Maps",properties:["uv_layers"]},{title:"Color Attributes",properties:["color_attributes"]},{title:"Attributes",properties:["attributes"]},{title:"Texture Space",closed:!0,properties:["texture_mesh","use_auto_texspace","texspace_location","texspace_size"]},{title:"Remesh",closed:!0,properties:["remesh_mode","remesh_voxel_size","remesh_voxel_adaptivity","use_remesh_fix_poles","use_remesh_preserve_volume","use_remesh_preserve_attributes"]},{title:"Geometry Data",closed:!0,properties:["has_custom_normals","total_vert_sel","total_edge_sel","total_face_sel"]},{title:"Animation",closed:!0,properties:["animation_data"]},{title:"Pose",properties:["pose_position"]},{title:"Bone Collections",closed:!0,properties:["collections_all","collections"]},{title:"Bones",from:"Bones",collection:!0,active:"activeBone",properties:["name","parent","use_connect","use_deform","head","tail","length"]},{title:"Viewport Display",closed:!0,properties:["display_type","show_names","show_bone_custom_shapes","show_bone_colors","show_axes","axes_position","relation_line_position"]},{title:"Inverse Kinematics",closed:!0,properties:["pose"]}],o={id:"data",curated:n},z="selection.inspector",R="Object Data",m={Mesh:"properties-data-mesh",Armature:"properties-data-armature",Curve:"properties-data-curve",SurfaceCurve:"properties-data-surface",MetaBall:"properties-data-meta",TextCurve:"properties-data-font",Lattice:"properties-data-lattice",Camera:"properties-data-camera",Light:"properties-data-light",Speaker:"properties-data-speaker",PointCloud:"properties-data-pointcloud",Volume:"properties-data-volume"},U=(i,s)=>{const e=a(i,s);if(e===null||e.kind!=="object")return"properties-data";const r=c();if(r.object!==e.name)return"properties-data";const t=r.context?.active?.dataType;return t==null?"properties-data-empty":m[t]??"properties-data"},E=120,H="object",I=l(o),O=p(o);export{O as default,U as icon,I as match,E as order,z as point,H as railGroup,R as title};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as e,a as r}from"./blender-properties-tab-
|
|
1
|
+
import{b as e,a as r}from"./blender-properties-tab-BSmWG9d0.js";import"./jsx-runtime-DPjLkJKQ.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-Cr9NTnJp.js";import"./index-nmcBqr7Y.js";import"./index-D_NuPfjr.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./blender-runtime-host-Cbkie7m4.js";import"./preview-renderer-BrYNFV1p.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./environment-Dg-YaLsA.js";import"./RoomEnvironment-BkknvS_I.js";import"./EXRLoader-CITMBvGd.js";import"./HDRLoader-BTGuGhVo.js";import"./renderer-ownership-BovSEcLv.js";import"./output-pass-HurwNl0G.js";import"./Pass-D1MRT672.js";import"./clip-planes-CnAI6DZn.js";import"./content-bounds-7UyI42Vj.js";import"./hierarchy-marks-CndAXtie.js";import"./workspace-arrangement-dkubzCff.js";const o=[{title:"Material Slots",from:"Material Slots",collection:!0,active:"activeMaterial",properties:["name","material","link","slot_index"]},{title:"Surface",from:"Material",properties:["use_nodes","node_tree","surface_render_method","use_backface_culling"]},{title:"Volume",closed:!0,from:"Material",properties:["volume_intersection_method","displacement_method","max_vertex_displacement"]},{title:"Settings",closed:!0,from:"Material",properties:["pass_index","use_backface_culling_shadow","use_backface_culling_lightprobe_volume","use_transparent_shadow","use_transparency_overlap","use_raytrace_refraction","thickness_mode","use_thickness_from_shadow"]},{title:"Line Art",closed:!0,from:"Material",properties:["lineart"]},{title:"Viewport Display",from:"Material",properties:["diffuse_color","metallic","roughness"]},{title:"Animation",closed:!0,from:"Material",properties:["animation_data"]}],t={id:"material",curated:o},P="selection.inspector",V="Material",j="properties-material",B=160,C="object",E=r(t),G=e(t);export{G as default,j as icon,E as match,B as order,P as point,C as railGroup,V as title};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as t,a as i}from"./blender-properties-tab-
|
|
1
|
+
import{b as t,a as i}from"./blender-properties-tab-BSmWG9d0.js";import"./jsx-runtime-DPjLkJKQ.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-Cr9NTnJp.js";import"./index-nmcBqr7Y.js";import"./index-D_NuPfjr.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./blender-runtime-host-Cbkie7m4.js";import"./preview-renderer-BrYNFV1p.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./environment-Dg-YaLsA.js";import"./RoomEnvironment-BkknvS_I.js";import"./EXRLoader-CITMBvGd.js";import"./HDRLoader-BTGuGhVo.js";import"./renderer-ownership-BovSEcLv.js";import"./output-pass-HurwNl0G.js";import"./Pass-D1MRT672.js";import"./clip-planes-CnAI6DZn.js";import"./content-bounds-7UyI42Vj.js";import"./hierarchy-marks-CndAXtie.js";import"./workspace-arrangement-dkubzCff.js";const r=[{title:"Modifiers",from:"Modifiers",collection:!0,active:"activeModifier",properties:["name","type","show_viewport","show_render","show_in_editmode","show_on_cage","use_pin_to_last","is_active"],andDeclared:!0}],o={id:"modifier",curated:r},B="selection.inspector",C="Modifiers",E="properties-modifiers",G=80,R="object",S=i(o),U=t(o);export{U as default,E as icon,S as match,G as order,B as point,R as railGroup,C as title};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as t,a as o}from"./blender-properties-tab-
|
|
1
|
+
import{b as t,a as o}from"./blender-properties-tab-BSmWG9d0.js";import"./jsx-runtime-DPjLkJKQ.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-Cr9NTnJp.js";import"./index-nmcBqr7Y.js";import"./index-D_NuPfjr.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./blender-runtime-host-Cbkie7m4.js";import"./preview-renderer-BrYNFV1p.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./environment-Dg-YaLsA.js";import"./RoomEnvironment-BkknvS_I.js";import"./EXRLoader-CITMBvGd.js";import"./HDRLoader-BTGuGhVo.js";import"./renderer-ownership-BovSEcLv.js";import"./output-pass-HurwNl0G.js";import"./Pass-D1MRT672.js";import"./clip-planes-CnAI6DZn.js";import"./content-bounds-7UyI42Vj.js";import"./hierarchy-marks-CndAXtie.js";import"./workspace-arrangement-dkubzCff.js";const i=[{title:"Transform",properties:["location","lock_location","rotation_quaternion","rotation_axis_angle","rotation_euler","lock_rotation_w","lock_rotation","rotation_mode","scale","lock_scale"]},{title:"Delta Transform",closed:!0,properties:["delta_location","delta_rotation_quaternion","delta_rotation_euler","delta_scale"]},{title:"Relations",closed:!0,properties:["parent","parent_type","parent_bone","parent_bone_head_tail_factor","parent_vertices","use_parent_final_indices","use_camera_lock_parent","track_axis","up_axis","pass_index"]},{title:"Collections",closed:!0,properties:["users_collection"]},{title:"Instancing",closed:!0,properties:["instance_type","use_instance_vertices_rotation","instance_collection","show_instancer_for_viewport","show_instancer_for_render"],sub:[{title:"Scale by Face Size",closed:!0,properties:["use_instance_faces_scale","instance_faces_scale"]}]},{title:"Viewport Display",closed:!0,properties:["show_name","show_axis","show_wire","show_all_edges","show_texture_space","show_in_front","display_type","color","show_bounds","display_bounds_type","display"]},{title:"Shadow Terminator",closed:!0,properties:["shadow_terminator_normal_offset","shadow_terminator_geometry_offset","shadow_terminator_shading_offset"]},{title:"Visibility",closed:!0,properties:["hide_select","hide_surface_pick","hide_viewport","hide_render","visible_camera","visible_shadow","visible_raycast","visible_diffuse","visible_glossy","visible_transmission","visible_volume_scatter","hide_probe_volume","hide_probe_sphere","hide_probe_plane","use_grease_pencil_lights","is_holdout"]},{title:"Line Art",closed:!0,properties:["lineart"]},{title:"Animation",closed:!0,properties:["animation_data"]}],e={id:"object",standing:"object",curated:i},q="selection.inspector",C="Object",O="properties-object",P=70,R="object",V=!0,z=o(e),B=t(e);export{B as default,O as icon,z as match,P as order,q as point,V as railDefault,R as railGroup,C as title};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as t,a as r}from"./blender-properties-tab-
|
|
1
|
+
import{b as t,a as r}from"./blender-properties-tab-BSmWG9d0.js";import"./jsx-runtime-DPjLkJKQ.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-Cr9NTnJp.js";import"./index-nmcBqr7Y.js";import"./index-D_NuPfjr.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./blender-runtime-host-Cbkie7m4.js";import"./preview-renderer-BrYNFV1p.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./environment-Dg-YaLsA.js";import"./RoomEnvironment-BkknvS_I.js";import"./EXRLoader-CITMBvGd.js";import"./HDRLoader-BTGuGhVo.js";import"./renderer-ownership-BovSEcLv.js";import"./output-pass-HurwNl0G.js";import"./Pass-D1MRT672.js";import"./clip-planes-CnAI6DZn.js";import"./content-bounds-7UyI42Vj.js";import"./hierarchy-marks-CndAXtie.js";import"./workspace-arrangement-dkubzCff.js";const o=[{title:"Format",properties:["resolution_x","resolution_y","resolution_percentage","pixel_aspect_x","pixel_aspect_y","use_border","use_crop_to_border","fps","fps_base"]},{title:"Frame Range",properties:[{from:"Scene",property:"frame_start"},{from:"Scene",property:"frame_end"},{from:"Scene",property:"frame_step"}],sub:[{title:"Time Stretching",closed:!0,properties:["frame_map_old","frame_map_new"]}]},{title:"Stereoscopy",closed:!0,properties:["use_multiview","views_format","views"]},{title:"Output",properties:["save_output","filepath","use_file_extension","use_render_cache","use_overwrite","use_placeholder"],sub:[{title:"Color Management",closed:!0,from:"Image",properties:["color_management"]},{title:"Pixel Density",closed:!0,properties:["ppm_factor","ppm_base"]}]},{title:"Encoding",closed:!0,from:"FFmpeg",when:[{from:"Image",property:"file_format",is:["FFMPEG","XVID","H264","THEORA"]}],properties:["format","use_autosplit"],sub:[{title:"Video",from:"FFmpeg",properties:["codec",{from:"Image",property:"color_depth"},"use_lossless_output","ffmpeg_prores_profile","constant_rate_factor","custom_constant_rate_factor","ffmpeg_preset","gopsize","use_max_b_frames","max_b_frames","video_bitrate","minrate","maxrate","buffersize","muxrate","packetsize"]},{title:"Audio",from:"FFmpeg",properties:["audio_codec","audio_channels","audio_mixrate","audio_volume","audio_bitrate"]}]},{title:"Metadata",closed:!0,properties:["metadata_input","use_stamp_date","use_stamp_time","use_stamp_render_time","use_stamp_frame","use_stamp_frame_range","use_stamp_memory","use_stamp_hostname","use_stamp_camera","use_stamp_lens","use_stamp_scene","use_stamp_marker","use_stamp_filename","use_stamp_sequencer_strip"],sub:[{title:"Note",closed:!0,properties:["use_stamp_note","stamp_note_text"]},{title:"Burn Into Image",closed:!0,properties:["use_stamp","stamp_font_size","stamp_foreground","stamp_background","use_stamp_labels"]}]},{title:"Post Processing",closed:!0,properties:["use_compositing","use_sequencer","dither_intensity"]}],e={id:"output",standing:"any",curated:o},A="selection.inspector",E="Output",M="properties-output",O=20,k="scene",D=r(e),R=t(e);export{R as default,M as icon,D as match,O as order,A as point,k as railGroup,E as title};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as r,a as i}from"./blender-properties-tab-
|
|
1
|
+
import{b as r,a as i}from"./blender-properties-tab-BSmWG9d0.js";import"./jsx-runtime-DPjLkJKQ.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-Cr9NTnJp.js";import"./index-nmcBqr7Y.js";import"./index-D_NuPfjr.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./blender-runtime-host-Cbkie7m4.js";import"./preview-renderer-BrYNFV1p.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./environment-Dg-YaLsA.js";import"./RoomEnvironment-BkknvS_I.js";import"./EXRLoader-CITMBvGd.js";import"./HDRLoader-BTGuGhVo.js";import"./renderer-ownership-BovSEcLv.js";import"./output-pass-HurwNl0G.js";import"./Pass-D1MRT672.js";import"./clip-planes-CnAI6DZn.js";import"./content-bounds-7UyI42Vj.js";import"./hierarchy-marks-CndAXtie.js";import"./workspace-arrangement-dkubzCff.js";const e=[{from:"Settings",property:"type",is:["HAIR"]}],o=[{title:"Particle Systems",from:"Particle Systems",collection:!0,active:"activeParticleSystem",properties:["name","settings"]},{title:"Emission",from:"Settings",when:[{from:"Settings",property:"is_fluid",is:[!1]}],properties:["count",{from:"Active",property:"seed"},"hair_length","hair_step","frame_start","frame_end","lifetime","lifetime_random"],sub:[{title:"Source",closed:!0,from:"Settings",properties:["emit_from","use_modifier_stack","distribution","use_emit_random","invert_grid","hexagonal_grid","use_even_distribution","userjit","jitter_factor","grid_resolution","grid_random"]}]},{title:"Hair Dynamics",closed:!0,from:"Hair Dynamics",when:e,properties:[{from:"Active",property:"use_hair_dynamics"},"quality","pin_stiffness"],sub:[{title:"Collisions",closed:!0,from:"Hair Collisions",properties:["collision_quality","distance_min","impulse_clamp","collection"]},{title:"Structure",closed:!0,from:"Hair Dynamics",properties:["mass","bending_stiffness",{from:"Settings",property:"bending_random"},"bending_damping"]},{title:"Volume",closed:!0,from:"Hair Dynamics",properties:["air_damping","internal_friction","voxel_cell_size","density_target","density_strength"]}]},{title:"Cache",closed:!0,from:"Active",when:[{from:"Settings",property:"physics_type",isNot:["NO","KEYED"]}],properties:["point_cache"]},{title:"Velocity",closed:!0,from:"Settings",when:[{from:"Settings",property:"physics_type",isNot:["BOIDS"]}],properties:["normal_factor","tangent_factor","tangent_phase","object_align_factor","particle_factor","object_factor","factor_random"]},{title:"Rotation",closed:!0,from:"Settings",when:[{from:"Settings",property:"physics_type",isNot:["BOIDS"]}],properties:["use_rotations","rotation_mode","rotation_factor_random","phase_factor","phase_factor_random","use_dynamic_rotation"],sub:[{title:"Angular Velocity",closed:!0,from:"Settings",properties:["angular_velocity_mode","angular_velocity_factor"]}]},{title:"Physics",closed:!0,from:"Settings",properties:["physics_type","mass","use_multiply_size_mass","keyed_loops",{from:"Active",property:"use_keyed_timing"},"fluid","boids"],sub:[{title:"Forces",from:"Settings",when:[{from:"Settings",property:"physics_type",is:["NEWTON","FLUID"]}],properties:["brownian_factor","drag_factor","damping"]},{title:"Deflection",closed:!0,from:"Settings",when:[{from:"Settings",property:"physics_type",is:["NEWTON","FLUID"]}],properties:["use_size_deflect","use_die_on_collision","collision_collection"]},{title:"Integration",closed:!0,from:"Settings",when:[{from:"Settings",property:"physics_type",is:["NEWTON","FLUID"]}],properties:["integrator","timestep","subframes","use_adaptive_subframes","courant_target"]}]},{title:"Render",closed:!0,from:"Settings",properties:["render_type","particle_size","size_random","material_slot",{from:"Active",property:"parent"}],sub:[{title:"Path",from:"Settings",when:[{from:"Settings",property:"render_type",is:["PATH"]}],properties:["use_hair_bspline","render_step"],sub:[{title:"Timing",closed:!0,from:"Settings",properties:["use_absolute_path_time","path_start","path_end","length_random"]}]},{title:"Object",from:"Settings",when:[{from:"Settings",property:"render_type",is:["OBJECT"]}],properties:["instance_object","use_global_instance","use_rotation_instance","use_scale_instance"]},{title:"Collection",from:"Settings",when:[{from:"Settings",property:"render_type",is:["COLLECTION"]}],properties:["instance_collection","use_whole_collection","use_collection_pick_random","use_global_instance","use_rotation_instance","use_scale_instance"],sub:[{title:"Use Count",closed:!0,from:"Settings",properties:["use_collection_count","instance_weights"]}]},{title:"Extra",closed:!0,from:"Settings",when:[{from:"Settings",property:"render_type",isNot:["NONE"]}],properties:["use_parent_particles","show_unborn","use_dead"]}]},{title:"Viewport Display",closed:!0,from:"Settings",properties:["display_method","display_color","color_maximum","display_percentage","display_step","display_size"]},{title:"Children",closed:!0,from:"Settings",properties:["child_type","child_percent","rendered_child_count","child_length","child_length_threshold",{from:"Active",property:"child_seed"},"virtual_parents","create_long_hair_children","child_size","child_size_random","child_radius","child_roundness"],sub:[{title:"Parting",closed:!0,from:"Settings",when:[{from:"Settings",property:"child_type",is:["INTERPOLATED"]}],properties:["child_parting_factor","child_parting_min","child_parting_max"]},{title:"Clumping",closed:!0,from:"Settings",when:[{from:"Settings",property:"child_type",isNot:["NONE"]}],properties:["use_clump_curve","clump_factor","clump_shape","twist","use_twist_curve"],sub:[{title:"Clump Noise",closed:!0,from:"Settings",properties:["use_clump_noise","clump_noise_size"]}]},{title:"Roughness",closed:!0,from:"Settings",when:[{from:"Settings",property:"child_type",isNot:["NONE"]}],properties:["use_roughness_curve","roughness_1","roughness_1_size","roughness_endpoint","roughness_end_shape","roughness_2","roughness_2_size","roughness_2_threshold"]},{title:"Kink",closed:!0,from:"Settings",when:[{from:"Settings",property:"child_type",isNot:["NONE"]}],properties:["kink","kink_amplitude","kink_amplitude_random","kink_amplitude_clump","kink_axis","kink_axis_random","kink_frequency","kink_shape","kink_extra_steps","kink_flat"]}]},{title:"Hair Shape",closed:!0,from:"Settings",when:e,properties:["shape","root_radius","tip_radius","radius_scale","use_close_tip"]},{title:"Field Weights",closed:!0,from:"Settings",properties:["effector_weights","apply_effector_to_children","effect_hair"]},{title:"Force Field Settings",closed:!0,from:"Settings",properties:["use_self_effect","effector_amount","force_field_1","force_field_2"]},{title:"Vertex Groups",closed:!0,from:"Active",properties:["vertex_group_density","invert_vertex_group_density","vertex_group_length","invert_vertex_group_length","vertex_group_clump","invert_vertex_group_clump","vertex_group_kink","invert_vertex_group_kink","vertex_group_roughness_1","invert_vertex_group_roughness_1","vertex_group_roughness_2","invert_vertex_group_roughness_2","vertex_group_roughness_end","invert_vertex_group_roughness_end","vertex_group_twist","invert_vertex_group_twist"]},{title:"Textures",closed:!0,from:"Settings",properties:["texture_slots","active_texture"]},{title:"Animation",closed:!0,from:"Settings",properties:["animation_data"]}],t={id:"particle",curated:o},T="selection.inspector",C="Particles",P="properties-particles",z=90,I="object",H=i(t),j=r(t);export{j as default,P as icon,H as match,z as order,T as point,I as railGroup,C as title};
|