@volter/game-editor 0.5.65
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 +11228 -0
- package/LICENSE +686 -0
- package/LICENSE-BLENDER +1409 -0
- package/LICENSE-MCP +21 -0
- package/NOTICE +21 -0
- package/catalog/entries/audio.json +14 -0
- package/catalog/entries/bake.json +36 -0
- package/catalog/entries/blender.json +17 -0
- package/catalog/entries/react-root.json +24 -0
- package/catalog/entries/reflections.json +29 -0
- package/catalog/entries/static-batch.json +25 -0
- package/catalog/project-source/LICENSE +37 -0
- package/catalog/project-source/src/contributions/bake.kind.ts +40 -0
- package/catalog/project-source/src/contributions/builder-document.tsx +65 -0
- package/catalog/project-source/src/contributions/builder-state.ts +27 -0
- package/catalog/project-source/src/contributions/builder-ui.tsx +61 -0
- package/catalog/project-source/src/contributions/module-source.ts +502 -0
- package/catalog/project-source/src/contributions/pages.finder.ts +61 -0
- package/catalog/project-source/src/lib/audio/sfx.ts +255 -0
- package/catalog/project-source/src/lib/bake/asset-seed.ts +128 -0
- package/catalog/project-source/src/lib/bake/bake-schema.ts +65 -0
- package/catalog/project-source/src/lib/bake/clip-layering.ts +203 -0
- package/catalog/project-source/src/lib/bake/gltf-bake.ts +657 -0
- package/catalog/project-source/src/lib/bake/mesh-slice.ts +157 -0
- package/catalog/project-source/src/lib/bake/node-image.ts +463 -0
- package/catalog/project-source/src/lib/bake/object3d-bake.ts +121 -0
- package/catalog/project-source/src/lib/bake/object3d-lifecycle.ts +15 -0
- package/catalog/project-source/src/lib/bake/object3d-source.ts +8 -0
- package/catalog/project-source/src/lib/bake/params.ts +75 -0
- package/catalog/project-source/src/lib/bake/rest-relative-animation.ts +217 -0
- package/catalog/project-source/src/lib/bake/use-model.ts +95 -0
- package/catalog/project-source/src/lib/react-root/index.ts +20 -0
- package/catalog/project-source/src/lib/react-root/react-root-adapter.tsx +57 -0
- package/catalog/project-source/src/lib/reflections/ReflectionProbe.tsx +201 -0
- package/catalog/project-source/src/lib/reflections/index.ts +19 -0
- package/catalog/project-source/src/lib/reflections/probe-controller.ts +75 -0
- package/catalog/project-source/src/lib/reflections/reflection-probe-registry.ts +402 -0
- package/catalog/project-source/src/lib/reflections/volume-reflection-material.ts +416 -0
- package/catalog/project-source/src/lib/static-batch/Frozen.tsx +91 -0
- package/catalog/project-source/src/lib/static-batch/freeze.ts +579 -0
- package/catalog/project-source/src/lib/static-batch/index.ts +44 -0
- package/catalog/project-source/src/lib/static-batch/mutation-watch.ts +149 -0
- package/catalog/project-source/src/lib/static-batch/shadow-cache.ts +171 -0
- package/catalog/project-source/src/tools/bake-module.tool.ts +139 -0
- package/catalog/project-source/src/tools/bake-preview.tool.ts +475 -0
- package/dist/.vite/manifest.json +8304 -0
- package/dist/assets/AssetBudgetPanel-J9--TZPU.js +23 -0
- package/dist/assets/AudioViewer-CR7333fe.js +1 -0
- package/dist/assets/BVHLoader-6bQIXhMX.js +1 -0
- package/dist/assets/BufferGeometryUtils-Nz37EVXf.js +1 -0
- package/dist/assets/CCDIKSolver-CD7vLpsK.js +1 -0
- package/dist/assets/CSS3DRenderer-CL7ABLVK.js +1 -0
- package/dist/assets/CanvasSceneViewport-Bpi6gVTC.js +1 -0
- package/dist/assets/ColladaLoader-aVOPIsCh.js +3 -0
- package/dist/assets/ColorInput-DQBNrW-K.js +1 -0
- package/dist/assets/ConvexGeometry-CAzXlPVG.js +1 -0
- package/dist/assets/ConvexHull-BINCESFp.js +1 -0
- package/dist/assets/CopyShader-BzTUYzf6.js +24 -0
- package/dist/assets/DecalGeometry-160KRdfg.js +1 -0
- package/dist/assets/EXRLoader-Cdans_oJ.js +1 -0
- package/dist/assets/EffectComposer-DQxfsXBZ.js +1 -0
- package/dist/assets/EntityModelDocument-Ccvw66N9.js +1 -0
- package/dist/assets/EnvironmentAssetDocument-Dg-Qq6O6.js +1 -0
- package/dist/assets/FBXLoader-B4MoUtAn.js +1 -0
- package/dist/assets/Fbo-Dz-Soul3.js +1 -0
- package/dist/assets/FontLoader-CvGoVI5a.js +2 -0
- package/dist/assets/GLTFExporter-HgrCle4L.js +1 -0
- package/dist/assets/GameplaySessionTimeline-B52W3FVZ.js +1 -0
- package/dist/assets/Gltf-UHVWKz65.js +2 -0
- package/dist/assets/HDRLoader-THU88oVD.js +5 -0
- package/dist/assets/ImageViewer-Tn7s_MnW.js +1 -0
- package/dist/assets/InspectorCanvasPreview-CEr_Kxna.js +1 -0
- package/dist/assets/InspectorObjectPreview-CVejvLRg.js +1 -0
- package/dist/assets/JsonAssetDocument-C7VGcLhu.js +3 -0
- package/dist/assets/LineSegments2-CsOpKSiM.js +370 -0
- package/dist/assets/MTLLoader-_Xzd4_0p.js +2 -0
- package/dist/assets/MarchingCubes-Bsp4wrzd.js +1 -0
- package/dist/assets/MeshBVH-BiDHDcu-.js +1 -0
- package/dist/assets/ModelAssetDocument-F5GACirk.js +1 -0
- package/dist/assets/NonThreeAuthoringBootstrap-C3woOMxX.js +1 -0
- package/dist/assets/OBJLoader-BhIC6Hwo.js +5 -0
- package/dist/assets/Object3DDocumentViewport-DB7T0NTl.js +2 -0
- package/dist/assets/Object3DPreview-DL8oi7Xs.js +2 -0
- package/dist/assets/OnlineAssetDetail-C6z9RvYK.js +2 -0
- package/dist/assets/OrbitControls-CM3bPray.js +1 -0
- package/dist/assets/OrbitControls-DLpayAaK.js +1 -0
- package/dist/assets/OrthographicCamera-bQozawrh.js +1 -0
- package/dist/assets/PLYLoader-DYQqs5Ik.js +2 -0
- package/dist/assets/PerspectiveCamera-CQ2lh01o.js +1 -0
- package/dist/assets/PlayBar-BR-Vg3Jb.js +2 -0
- package/dist/assets/RGBELoader-BgBcQv8j.js +1 -0
- package/dist/assets/RectAreaLightUniformsLib-CMMoWfll.js +1 -0
- package/dist/assets/RenderPass-DPrn-Uky.js +1 -0
- package/dist/assets/ResolutionPicker-C67vs1F3.js +1 -0
- package/dist/assets/RootSelectionOverlay-BZPlxmXU.js +1 -0
- package/dist/assets/RoundedBox-BDGBg6QZ.js +1 -0
- package/dist/assets/RoundedBoxGeometry-CyUuYPfW.js +1 -0
- package/dist/assets/STLLoader-Dyv3lsxY.js +1 -0
- package/dist/assets/SelectionBox-D_75KrNW.js +1 -0
- package/dist/assets/ShaderPass-QYRpPuFJ.js +1 -0
- package/dist/assets/ShadowEditor-DkImwu1Y.js +1 -0
- package/dist/assets/SimplifyModifier-C8ayvRzd.js +1 -0
- package/dist/assets/SkeletonUtils-Cps8GOC6.js +1 -0
- package/dist/assets/Sky-CQKCgYDs.js +154 -0
- package/dist/assets/SourceAssetViewer-2SWQoUut.js +12 -0
- package/dist/assets/StageHost-BN-IoTef.js +2 -0
- package/dist/assets/StoryPreviewMount-DjyxRCXu.js +1 -0
- package/dist/assets/TDSLoader-D_T8XJ81.js +1 -0
- package/dist/assets/TextGeometry-DOWAEUV0.js +1 -0
- package/dist/assets/ThreeBoardDocument-CVncZyIq.js +2 -0
- package/dist/assets/ThreeIsolationSceneContent-C8C8whSF.js +1 -0
- package/dist/assets/ToolObject3DPreview-BRoDWe4Q.js +1 -0
- package/dist/assets/TrackballControls-DfznuQTh.js +1 -0
- package/dist/assets/TransientHint-BB1fwrvK.js +1 -0
- package/dist/assets/UnrealBloomPass-CR-cS_K5.js +83 -0
- package/dist/assets/VideoViewer-C6kocgIU.js +1 -0
- package/dist/assets/_commonjsHelpers-D6-XlEtG.js +1 -0
- package/dist/assets/active-ingest-CT6jSGhr.js +3 -0
- package/dist/assets/adapter-surface-Y37Nzcyw.js +1 -0
- package/dist/assets/after-paint-CB4bz1-e.js +1 -0
- package/dist/assets/agx-base-srgb-BjWZJgrZ.lut +0 -0
- package/dist/assets/agx-look-medium-high-contrast-D5F_ob1L.lut +0 -0
- package/dist/assets/agx-look-punchy-dxsnycNs.lut +0 -0
- package/dist/assets/animation-clock-CnjZqfJp.js +1 -0
- package/dist/assets/asset-budget-asset.menu-Di3KiQCd.js +1 -0
- package/dist/assets/asset-budget.action-DCzzcuTh.js +1 -0
- package/dist/assets/asset-budget.document-BWU8wnVW.js +1 -0
- package/dist/assets/asset-budget.menu-BGZpT_31.js +1 -0
- package/dist/assets/asset-editor-persistence-BBaONOJt.js +1 -0
- package/dist/assets/asset-loaders-BOy5Ss8k.js +2 -0
- package/dist/assets/asset-parse-error-BHMwBRU3.js +3 -0
- package/dist/assets/assets-BuSoGjBX.js +1 -0
- package/dist/assets/audio-meter-CyiToeUW.js +1 -0
- package/dist/assets/audio-unlock.service-CfUgUQVy.js +1 -0
- package/dist/assets/audio.utility-C6K6jem8.js +1 -0
- package/dist/assets/authoring-CgcOFhGS.js +1 -0
- package/dist/assets/autoplay.service-BZBGNSvt.js +1 -0
- package/dist/assets/axe-LkjAB6Lv.js +30 -0
- package/dist/assets/babylon-authoring-adapter-CL02gWDn.js +1 -0
- package/dist/assets/binding-Bmxqznjk.js +1 -0
- package/dist/assets/binding-identity-DcTpbvyg.js +1 -0
- package/dist/assets/binding-resolver-Dsh-6Vor.js +2 -0
- package/dist/assets/blender-emscripten-engine-9ZIRYNhe.js +2 -0
- package/dist/assets/blender-node-editor.document-iIDkB9sI.js +1 -0
- package/dist/assets/blender-properties-tab-C5CyPydi.js +3 -0
- package/dist/assets/blender-runtime-host-BpBwGv7r.js +4 -0
- package/dist/assets/blender-runtime-skin-DyQ9B6CR.js +7140 -0
- package/dist/assets/blender-runtime.document-lIYhhPtv.js +8 -0
- package/dist/assets/blender-timeline.document-77fx96N7.js +1 -0
- package/dist/assets/blender-uv-editor.document-fsT7B4gV.js +1 -0
- package/dist/assets/blender-version.status-o6dBm3n6.js +1 -0
- package/dist/assets/blender-wali-engine-wTOcrOMC.js +2 -0
- package/dist/assets/blender.command-BtJeWk-A.js +1 -0
- package/dist/assets/blender.keymap-GAQgeklK.js +1 -0
- package/dist/assets/blender.status-ujwGU6dU.js +1 -0
- package/dist/assets/blender.style-Dcem5f_T.js +1 -0
- package/dist/assets/board-guides-DziKSTss.js +1 -0
- package/dist/assets/body-marks-h_xDxiDE.js +1 -0
- package/dist/assets/bridge.command-o5gDNEwa.js +3 -0
- package/dist/assets/browserAll-DeWblVez.js +1 -0
- package/dist/assets/build-profiles.document-kW8iw8Xj.js +2 -0
- package/dist/assets/build-progress.status-BNRLytg2.js +1 -0
- package/dist/assets/build-session-C_sg3CEn.js +9 -0
- package/dist/assets/build.action-lYjTLb7K.js +1 -0
- package/dist/assets/build.command-DIGgUPU_.js +1 -0
- package/dist/assets/build.header-CKajx5U3.js +1 -0
- package/dist/assets/build.menu-BdU0QXny.js +1 -0
- package/dist/assets/build.service-CbBAyeu3.js +1 -0
- package/dist/assets/bus-mixer-CGfWDP3C.js +1 -0
- package/dist/assets/camera-KEsKvOL7.js +1 -0
- package/dist/assets/camera-runtime.inspector-B7unX4g1.js +1 -0
- package/dist/assets/canvas-entry-runtime-SfBxaR9M.js +2 -0
- package/dist/assets/capability-coverage-Czas4C18.js +7 -0
- package/dist/assets/chrome-trace-YZHMz60-.js +1 -0
- package/dist/assets/client-DNXj_opT.js +25 -0
- package/dist/assets/clip-planes-CnAI6DZn.js +1 -0
- package/dist/assets/collaboration-presence-DLoZ7EA3.js +1 -0
- package/dist/assets/collider-Bw0mXlsW.js +1 -0
- package/dist/assets/collider-dimensions-9xoFADXN.js +1 -0
- package/dist/assets/collision-system-DpNUJRJ3.js +1 -0
- package/dist/assets/command-results-CUQD49AB.js +1 -0
- package/dist/assets/component-board-registry-DrIa2csL.js +1 -0
- package/dist/assets/component-board.service-DCwcUssB.js +2 -0
- package/dist/assets/component-board.service-DidCyM4O.js +2 -0
- package/dist/assets/component-verbs.command-7xzfjGMZ.js +1 -0
- package/dist/assets/component-verbs.service-Bv9jId3q.js +1 -0
- package/dist/assets/config-CEZk921y.js +6 -0
- package/dist/assets/configurations-DTBMdaTL.js +1 -0
- package/dist/assets/connection.status-BifnQdOs.js +1 -0
- package/dist/assets/console-bridge-CHcb-xk5.js +1 -0
- package/dist/assets/constraint-De8f1Uiq.js +1 -0
- package/dist/assets/constraints.inspector-B9U9Yj-u.js +1 -0
- package/dist/assets/countdown-timer-CUm74dom.js +1 -0
- package/dist/assets/coverage.service-VTX5Mcsx.js +3 -0
- package/dist/assets/crash-null-boundary-v3a0uEgw.js +1 -0
- package/dist/assets/create-runtime-CVCc1BDx.js +1 -0
- package/dist/assets/curve-7Q79VgU4.js +1 -0
- package/dist/assets/data-asset-4hjS642k.js +5 -0
- package/dist/assets/data-check-core-CQEjuFyt.js +1 -0
- package/dist/assets/data-ref-CQI28C0D.js +1 -0
- package/dist/assets/debug-bridge-CCohG-d-.js +1 -0
- package/dist/assets/debug-registry-Dgvitx8M.js +1 -0
- package/dist/assets/defaults-DKiBJCPN.js +1 -0
- package/dist/assets/deferred-commands-CEMmvL47.js +1 -0
- package/dist/assets/deferred-ingest-play-DCJi_Pgu.js +2 -0
- package/dist/assets/design-time-layers-wYgOTgni.js +1 -0
- package/dist/assets/design-time-mount-registry-DUpXCg1U.js +1 -0
- package/dist/assets/design-time-mount.service-BzY21e1F.js +2 -0
- package/dist/assets/design-time-react-mount-DM9WLrF2.js +1 -0
- package/dist/assets/dev-build-gDYrq68M.js +1 -0
- package/dist/assets/directional-shadow-fit-BVkOKAv2.js +1 -0
- package/dist/assets/document-preview-three-Kbg2GCLm.js +1 -0
- package/dist/assets/dom-authoring-adapter-CY8C7f4T.js +1 -0
- package/dist/assets/draco3d-BBUTcNkz.js +1 -0
- package/dist/assets/draco_decoder-DsQ12WqX.wasm +0 -0
- package/dist/assets/draco_encoder-2Tcju8Ns.wasm +0 -0
- package/dist/assets/edit-mode-audio.service-Bzetwd5B.js +1 -0
- package/dist/assets/edit-mode-authoring-B47TfLqu.js +1 -0
- package/dist/assets/edit-mode-networking.service-YCX6RRb_.js +1 -0
- package/dist/assets/editor-api-BoJIcyZG.js +1 -0
- package/dist/assets/editor-port-C_FeBdeV.js +1 -0
- package/dist/assets/editor-presentation-activity-C7SNSmTd.js +1 -0
- package/dist/assets/entry-adjudication-Cq8Yeb74.js +1 -0
- package/dist/assets/environment-capture-7himRh2L.js +1 -0
- package/dist/assets/esbuild-BHljloGq.wasm +0 -0
- package/dist/assets/events-156d8d12.esm-ErOhDXXB.js +36 -0
- package/dist/assets/extend-B-eOccUm.js +36 -0
- package/dist/assets/extends-CF3RwP-h.js +1 -0
- package/dist/assets/eyedropper-session-bjPXnfeX.js +1 -0
- package/dist/assets/fflate.module-DPuTF8aG.js +6 -0
- package/dist/assets/filmic-srgb-Ct35FIH6.lut +0 -0
- package/dist/assets/first-party-audio-system-DxnGJOER.js +1 -0
- package/dist/assets/first-party-navigation-system-CL5Bquub.js +1 -0
- package/dist/assets/fork-menu-BoVyw2Wu.js +1 -0
- package/dist/assets/frame-debugger-store-D1Mf_5up.js +1 -0
- package/dist/assets/frame-delta-D2nsw_Ht.js +1 -0
- package/dist/assets/frame-pacing-D5acoOzO.js +1 -0
- package/dist/assets/frame-selector-cache-cCeUbcjG.js +1 -0
- package/dist/assets/game-DHOZVb-7.js +1 -0
- package/dist/assets/game-contract-seams-a5YXejOu.js +1 -0
- package/dist/assets/game-css-scope-transform-Eng4wS8E.js +33 -0
- package/dist/assets/game-document.service-DbRfx2V0.js +1 -0
- package/dist/assets/game-eval.command-D-7Dxbj_.js +2 -0
- package/dist/assets/game-input-seams-CIQdetRw.js +1 -0
- package/dist/assets/game-loop-CZvXlY00.js +1 -0
- package/dist/assets/game-module-access-B2mFxv-i.js +1 -0
- package/dist/assets/game.layout-CBASrvQu.js +1 -0
- package/dist/assets/gameplay-export-BoKXm51x.js +1 -0
- package/dist/assets/gameplay-replay-e5umMlXv.js +1 -0
- package/dist/assets/gameplay-rng-trap-CTNhm-UW.js +3 -0
- package/dist/assets/gameplay.command-DxcVYX6F.js +1 -0
- package/dist/assets/generation-DhwCUHPf.css +1 -0
- package/dist/assets/generation-jobs-BQrXbGp_.js +1 -0
- package/dist/assets/generation.service-CDIgObuw.js +1 -0
- package/dist/assets/generations-DzUogZsM.js +1 -0
- package/dist/assets/generations.status-CgOUBCum.js +1 -0
- package/dist/assets/hierarchy-marks-BLPfSIym.js +1 -0
- package/dist/assets/host-pointer-DbGSCjE9.js +1 -0
- package/dist/assets/hosted-asset-materialization-CiIvWkGU.js +2 -0
- package/dist/assets/ibl-override-material-BlmCxFKq.js +6 -0
- package/dist/assets/index-96FBF1Oj.js +1 -0
- package/dist/assets/index-BAWkB0dv.js +1 -0
- package/dist/assets/index-BDnS2b6S.js +1 -0
- package/dist/assets/index-BHp07vN0.js +2 -0
- package/dist/assets/index-BMxv2MNV.js +1 -0
- package/dist/assets/index-BP6wv2A0.js +5 -0
- package/dist/assets/index-BcCBqgM_.js +952 -0
- package/dist/assets/index-Bge9JUr6.js +1 -0
- package/dist/assets/index-BjTCPEQ7.js +134 -0
- package/dist/assets/index-BncK9THk.js +1 -0
- package/dist/assets/index-CJbYy-CF.js +3 -0
- package/dist/assets/index-CVCb_ImQ.js +1 -0
- package/dist/assets/index-CZd9o7Lu.js +1 -0
- package/dist/assets/index-CanA16PU.js +2 -0
- package/dist/assets/index-CinJrH5C.js +9 -0
- package/dist/assets/index-CtzuWnCS.js +1 -0
- package/dist/assets/index-D2fNXpHa.css +1 -0
- package/dist/assets/index-DUpHH6JR.js +3120 -0
- package/dist/assets/index-DUqP1RMl.js +1 -0
- package/dist/assets/index-D_NuPfjr.js +9 -0
- package/dist/assets/index-Da9JhEvW.js +25 -0
- package/dist/assets/index-DgapqSPi.js +7 -0
- package/dist/assets/index-FUuS4qwW.js +562 -0
- package/dist/assets/index-GIL7oGEO.js +4894 -0
- package/dist/assets/index-IEjydI9d.js +1 -0
- package/dist/assets/index-OrYXPk3Z.js +487 -0
- package/dist/assets/index-V1R-e5Bd.js +1 -0
- package/dist/assets/index-bQE2NA0D.js +1 -0
- package/dist/assets/index-gHZae-lw.js +13 -0
- package/dist/assets/index-mjWQmGhM.js +1 -0
- package/dist/assets/index-nmcBqr7Y.js +1 -0
- package/dist/assets/inference-diagnostics-Dhmtfbq_.js +1 -0
- package/dist/assets/ingest-BbYMC2vQ.js +1 -0
- package/dist/assets/ingest-boot-viewport-D5rI_Kk_.js +1 -0
- package/dist/assets/ingest-siblings-Bop2kqVl.js +1 -0
- package/dist/assets/ingest-source-persistence-C_6Hiyra.js +1 -0
- package/dist/assets/ingest.service-BTDnQfM1.js +1 -0
- package/dist/assets/input-manager-DH_hGW6d.js +1 -0
- package/dist/assets/input-router-BNQvtIqw.js +1 -0
- package/dist/assets/inspect-BZfi3mmo.js +1 -0
- package/dist/assets/inspection-CObLhnrs.js +1 -0
- package/dist/assets/instance-fork-actions-D3sRzS3K.js +1 -0
- package/dist/assets/instances.command-D6UkZNO8.js +1 -0
- package/dist/assets/instruments-CKR02Y8I.js +1 -0
- package/dist/assets/json-history-resource-BbxllWfV.js +1 -0
- package/dist/assets/jsx-runtime-DPjLkJKQ.js +9 -0
- package/dist/assets/light-D-_wsKTq.js +1 -0
- package/dist/assets/light-camera-factory-CWbbe9gI.js +1 -0
- package/dist/assets/lil-gui.module.min-BF55BEwA.js +10 -0
- package/dist/assets/live-behaviors-Bxq49Maz.js +1 -0
- package/dist/assets/live-gesture-lock-DJbrjOqf.js +1 -0
- package/dist/assets/loader-CaF_I7Yt.js +1 -0
- package/dist/assets/logger-Dqis-7W1.js +1 -0
- package/dist/assets/loop-gate-report-N52EWFGD.js +1 -0
- package/dist/assets/matcap-texture-CVfalpWT.js +1 -0
- package/dist/assets/material-CpAdjDxn.js +1 -0
- package/dist/assets/material-factory-Bz6h__6g.js +1 -0
- package/dist/assets/mesh-B3WPtNKO.js +1 -0
- package/dist/assets/mesh-shadow-CZnXrw_l.js +1 -0
- package/dist/assets/mikktspace.module-DO88SLib.js +1 -0
- package/dist/assets/model-asset-sections-CFvvihfx.css +1 -0
- package/dist/assets/model-asset-sections.service-CHhFS3ZX.js +1 -0
- package/dist/assets/model.layout-BJUEQYUI.js +1 -0
- package/dist/assets/models.finder-G2jQgIRu.js +1 -0
- package/dist/assets/module-mode-DVBLT9d-.js +2 -0
- package/dist/assets/mount-canvas-ingest-root-DDuAWf_C.js +2 -0
- package/dist/assets/mount-dom-ingest-root-D_EiBgpn.js +2 -0
- package/dist/assets/mount-game-6t9cKNo4.js +1 -0
- package/dist/assets/mount-ingest-root-glv2SSWf.js +2 -0
- package/dist/assets/mount-manifest-CGVxhmAw.js +1 -0
- package/dist/assets/mount-readiness-Ds0HvvLH.js +4 -0
- package/dist/assets/mount-three-ingest-root-hrUt9VVU.js +1 -0
- package/dist/assets/mounted-authoring-Dmg5xmhP.js +1 -0
- package/dist/assets/mounted-story-viewport-source-DjP6RA9U.js +1 -0
- package/dist/assets/native-debug-module-CWicoSGD.js +1 -0
- package/dist/assets/native-entry-surface-BE8LJNdu.js +1 -0
- package/dist/assets/navigation-CIiCx-SM.js +1 -0
- package/dist/assets/navmesh-workflow-store-Cmnm57TB.js +1 -0
- package/dist/assets/navmesh.menu-CAKiH8PW.js +1 -0
- package/dist/assets/navmesh.service-jgDWlgj1.js +1 -0
- package/dist/assets/network.utility-CEu5nHf7.js +1 -0
- package/dist/assets/object-marks-DwvIEBOK.js +1 -0
- package/dist/assets/object3d-authoring-subject-CH5sI2oP.js +1 -0
- package/dist/assets/output-DK8waum9.js +195 -0
- package/dist/assets/particles-Y626p22p.js +1 -0
- package/dist/assets/particles-factory-DnLOHXT8.js +1 -0
- package/dist/assets/pasteboard-materialize-BqSS4QzV.js +20 -0
- package/dist/assets/pasteboard.action-DU3UHtJG.js +2 -0
- package/dist/assets/performance-profiler-D_Jey87L.js +1 -0
- package/dist/assets/physics-registry-B2Jkp8e6.js +1 -0
- package/dist/assets/physics-registry-CUB9cT9p.js +1 -0
- package/dist/assets/pixi-authoring-adapter-CjibysC3.js +1 -0
- package/dist/assets/pixi-live-write-target-DuWydlWb.js +1 -0
- package/dist/assets/pixi-primitive-DlWbUPN9.js +1 -0
- package/dist/assets/pixi-react-root-factory-DYsznYRQ.js +1 -0
- package/dist/assets/pixi-story-model-DNkfnWUV.js +1 -0
- package/dist/assets/pixi-transform-channels-VjdohT11.js +1 -0
- package/dist/assets/play-mode-BFU2PCkG.js +22 -0
- package/dist/assets/play.command-BpqqLqkq.js +2 -0
- package/dist/assets/playtest-BXIL1JEF.js +1 -0
- package/dist/assets/pose-guard-6Osb2cFu.js +1 -0
- package/dist/assets/presentation-BPP5pXeQ.js +1 -0
- package/dist/assets/product-DFhyARJj.js +1 -0
- package/dist/assets/profiler.action-CaXJDp3t.js +1 -0
- package/dist/assets/profiler.menu-BIMF6Bi4.js +1 -0
- package/dist/assets/profiler.utility-BExw9wBO.js +1 -0
- package/dist/assets/project-authoring-session-Bnt6icLr.js +2 -0
- package/dist/assets/project-provenance-BoP3nrle.js +1 -0
- package/dist/assets/prompt-labels-DSMdM2_B.js +1 -0
- package/dist/assets/properties-bone-constraints.inspector-ByT6p7S-.js +1 -0
- package/dist/assets/properties-bone.inspector-z4qJwKO5.js +1 -0
- package/dist/assets/properties-collection.inspector-D0_3ijWU.js +1 -0
- package/dist/assets/properties-constraints.inspector-CESzjuls.js +1 -0
- package/dist/assets/properties-data.inspector-hG8Wgyzb.js +1 -0
- package/dist/assets/properties-material.inspector-CzY0JCQ6.js +1 -0
- package/dist/assets/properties-modifiers.inspector-3dDhwf7g.js +1 -0
- package/dist/assets/properties-object.inspector-CiarfxkT.js +1 -0
- package/dist/assets/properties-output.inspector-DKJxmKSD.js +1 -0
- package/dist/assets/properties-particles.inspector-CCEdYWGm.js +1 -0
- package/dist/assets/properties-physics.inspector-B2c0KUyA.js +1 -0
- package/dist/assets/properties-render.inspector-Bcm0HLRW.js +1 -0
- package/dist/assets/properties-scene.inspector-PIM_eTb_.js +1 -0
- package/dist/assets/properties-texture.inspector-CgFlnyr8.js +1 -0
- package/dist/assets/properties-view-layer.inspector-DGjF_Aqo.js +1 -0
- package/dist/assets/properties-world.inspector-CrMvaRvB.js +1 -0
- package/dist/assets/r3f-design-session-D-4yyDO9.js +2 -0
- package/dist/assets/r3f-physics-binding-BBo8oma9.js +1 -0
- package/dist/assets/r3f-root-factory-z9llD1OU.js +1 -0
- package/dist/assets/r3f-source-authoring-adapter-w6Bc60K-.js +13 -0
- package/dist/assets/rapier-physics-adapter-CaZqWLu0.js +1 -0
- package/dist/assets/rapier-physics-bridge-CMoeVo3Y.js +1 -0
- package/dist/assets/react-18-By2b4xR9.js +1 -0
- package/dist/assets/react-inspector.service-B_neRnSK.js +1 -0
- package/dist/assets/react-root-CEz5NTck.js +1 -0
- package/dist/assets/react-story-board-BDDwiE2H.js +1 -0
- package/dist/assets/react-three-fiber.esm-CycrbDlA.js +1 -0
- package/dist/assets/react-three-rapier.esm-CEfKpvxT.js +1 -0
- package/dist/assets/react-world-authoring-adapter-DmrwM3py.js +1 -0
- package/dist/assets/realm-services-CobQsq_X.js +1 -0
- package/dist/assets/rebind-controller-Dtq19Vb3.js +1 -0
- package/dist/assets/recast-navigation.wasm-compat-Dsoa_MD-.js +1 -0
- package/dist/assets/reflection-probe-Don-M3Fj.js +1 -0
- package/dist/assets/reflection-probe-capture.inspector-CmFUoJCx.js +1 -0
- package/dist/assets/register-render-vitals-BiZk29b2.js +1 -0
- package/dist/assets/registry-02YZjMNp.js +1 -0
- package/dist/assets/relative-path-guard-GiM7Lsz8.js +1 -0
- package/dist/assets/render-audio-control-vMRlePWb.js +1 -0
- package/dist/assets/render-batch-system-0vq7p0VC.js +1 -0
- package/dist/assets/render-census-BrQX_CXv.js +1 -0
- package/dist/assets/render-control-Df3yTiyr.js +1 -0
- package/dist/assets/render-env-D2IV2x5k.js +1 -0
- package/dist/assets/render-features-CPQ_e568.js +1 -0
- package/dist/assets/render-seed-DF4JHy7P.js +1 -0
- package/dist/assets/render-settings-Bw4W9SYF.js +1 -0
- package/dist/assets/render-vitals-BZ5HtvMi.js +1 -0
- package/dist/assets/renderer-config-BqG4O8i9.js +1 -0
- package/dist/assets/resolve-three-SZE_WWUM.js +702 -0
- package/dist/assets/root-seam-contract-Z0VWX3Bk.js +1 -0
- package/dist/assets/rrweb-Cd2ifIRP.js +142 -0
- package/dist/assets/run-ticks-settled-C4ksViyA.js +1 -0
- package/dist/assets/runtime-inspection-l2iFQSsg.js +1 -0
- package/dist/assets/scene-capture-BQKzU0NT.js +1 -0
- package/dist/assets/scene-capture-CGYF-Viw.js +1 -0
- package/dist/assets/scene-document.service-qkDjUrlP.js +2 -0
- package/dist/assets/scene-framing-Cat0GtyJ.js +1 -0
- package/dist/assets/scene-index-B6BZOHMk.js +1 -0
- package/dist/assets/scene-query-C7_N-TpI.js +1 -0
- package/dist/assets/schema-kl9-2B_J.js +1 -0
- package/dist/assets/sculpt.layout-zJF55yCR.js +1 -0
- package/dist/assets/seeded-random-i3mtgBKZ.js +1 -0
- package/dist/assets/session-CZ5JPg-z.js +4877 -0
- package/dist/assets/setup-audio-S8GQF91f.js +1 -0
- package/dist/assets/setup-particles-GCXlnkj_.js +1 -0
- package/dist/assets/setup-physics-BeZ7-LKD.js +1 -0
- package/dist/assets/setup-renderer-DVXaSGin.js +1587 -0
- package/dist/assets/shading.layout-DULYZV6M.js +1 -0
- package/dist/assets/sim-clock-CLflx7kg.js +1 -0
- package/dist/assets/sky-precompute-worker-ChN7J87v.js +1 -0
- package/dist/assets/soft-particle-depth-DGvfQDi1.js +1 -0
- package/dist/assets/source-object3d-authoring-adapter-B-L6Ha6f.js +1 -0
- package/dist/assets/source-persistence-backend-C-aR-B_Y.js +1 -0
- package/dist/assets/spark-renderer-lifecycle-ynWESJcv.js +1 -0
- package/dist/assets/spark.module-4pXQoz5d.js +12120 -0
- package/dist/assets/stage-invalidation-DBg3C3Ta.js +1 -0
- package/dist/assets/stage-keyboard-n-5kKH-m.js +1 -0
- package/dist/assets/stage-overlay-set-B9zp2sLB.js +1 -0
- package/dist/assets/stage-presence-markers-DiGI6A45.js +1 -0
- package/dist/assets/standard-viewport-dressing-CzjAe_0A.js +7 -0
- package/dist/assets/state-bridge-DLP1jLRW.js +1 -0
- package/dist/assets/state-watch.action-BOvQR2qt.js +1 -0
- package/dist/assets/state-watch.menu-CNLvDeeY.js +1 -0
- package/dist/assets/state-watch.utility-Bg1tTTQU.js +1 -0
- package/dist/assets/static-batch-advisor-B13QEH7d.js +1 -0
- package/dist/assets/stats.module-BL02l9NC.js +1 -0
- package/dist/assets/story-arg-descriptors-Ek86ExX7.js +1 -0
- package/dist/assets/story-capture-_gC8dXV-.js +1 -0
- package/dist/assets/story-documents--TDLaPeL.js +3 -0
- package/dist/assets/story-documents.service-BiS_YbNQ.js +1 -0
- package/dist/assets/story-documents.service-CxOPYJ2j.js +1 -0
- package/dist/assets/story-media-presence-BHzk2IV5.js +1 -0
- package/dist/assets/story-mount-turn-DFRTj5hi.js +1 -0
- package/dist/assets/story-pixi-preview-BUrOJZXS.js +1 -0
- package/dist/assets/story-presentation-j2AVN-mK.js +1 -0
- package/dist/assets/story-three-preview-BHEDZzcl.js +2 -0
- package/dist/assets/structural-ids-Dc-7rEwi.js +1 -0
- package/dist/assets/structural-signature-0w-i_ats.js +1 -0
- package/dist/assets/surface-content-Dg9Kkazf.js +1 -0
- package/dist/assets/surface-state-DaxyruCj.js +3 -0
- package/dist/assets/system-adapters-rIC8FSGP.js +1 -0
- package/dist/assets/system-runner-DkOjxEBt.js +1 -0
- package/dist/assets/system-slot-E2mEdiih.js +1 -0
- package/dist/assets/team-playtest.service-DqOinFVA.js +1 -0
- package/dist/assets/texture.layout-DASpHVht.js +1 -0
- package/dist/assets/three-CDSueJyJ.js +1 -0
- package/dist/assets/three-authoring-adapter-CmSQ3Vui.js +1 -0
- package/dist/assets/three-authoring.service-iuHLwtf1.js +2 -0
- package/dist/assets/three-ingest-runtime-QzDYk6tU.js +1 -0
- package/dist/assets/three-projection-core-BmKMZ-nf.js +1 -0
- package/dist/assets/three-viewport-presentation-QBQpSdMh.js +1 -0
- package/dist/assets/three.module-D396a9Mn.js +3840 -0
- package/dist/assets/three.quarks.esm-B1C61jGo.js +1039 -0
- package/dist/assets/tools-B_NJsk05.js +1 -0
- package/dist/assets/transform-writer-BhBBTx33.js +1 -0
- package/dist/assets/transport.header-B-6HQlU2.js +1 -0
- package/dist/assets/trigger-volume-BNK2XzPL.js +1 -0
- package/dist/assets/tuples-CIQ4Bn1U.js +1 -0
- package/dist/assets/tween.module-DciWpAG6.js +1 -0
- package/dist/assets/ui-board-document-Bwtt--xp.js +2 -0
- package/dist/assets/unexported-game-trap-Dm1JYKHy.js +2 -0
- package/dist/assets/unmanaged-root-detector-B8CpbkSN.js +2 -0
- package/dist/assets/upstream-pin-BdgRH6ID.js +1 -0
- package/dist/assets/use-data-Dzq-MytE.js +1 -0
- package/dist/assets/use-live-actor-state-DErbWQWF.js +1 -0
- package/dist/assets/use-selection-DbR73-xd.js +1 -0
- package/dist/assets/user-data-BB2Of6Ht.js +1 -0
- package/dist/assets/utility-view-state-BHypxA33.js +1 -0
- package/dist/assets/uv-editing.layout-BEKHxmHw.js +1 -0
- package/dist/assets/vgai-shared-fontawesome-CU65D4Ij.js +1 -0
- package/dist/assets/vgai-shared-jsx-dev-runtime-DFDKL7fx.js +1 -0
- package/dist/assets/vgai-shared-jsx-runtime-DIqBpTut.js +1 -0
- package/dist/assets/vgai-shared-react-BT7rMc2H.js +1 -0
- package/dist/assets/vgai-shared-react-dom-DFajMqMT.js +1 -0
- package/dist/assets/vgai-shared-react-dom-client-S0ozfl6_.js +1 -0
- package/dist/assets/vgai-shared-three-Bc5PvpLM.js +1 -0
- package/dist/assets/viewport-pick-context-DkawXbEi.js +1 -0
- package/dist/assets/viewport-root-presentation-CWsE56K6.js +1 -0
- package/dist/assets/viewport-shading-BuA88e_A.js +1 -0
- package/dist/assets/viewport-shading-boundary-B_-_gABg.js +82 -0
- package/dist/assets/viewport-surface-status-B3om4Kcf.js +1 -0
- package/dist/assets/vision_bundle-DX0dWqEa.js +15 -0
- package/dist/assets/voxel-surface-DtcsSWRL.js +1 -0
- package/dist/assets/wav-encode-D31zWF6O.js +1 -0
- package/dist/assets/webgl-frame-capture-FlF9zQmW.js +1 -0
- package/dist/assets/webgl-gpu-timer-D3YX7RaD.js +1 -0
- package/dist/assets/webworkerAll-CM2o_dnz.js +1 -0
- package/dist/assets/worker-UrMcrc5_.js +2 -0
- package/dist/assets/world-documents-147tiFZe.js +1 -0
- package/dist/assets/world-root-stage-binding-vwTrtBz6.js +1 -0
- package/dist/assets/world-state-BWG-IcOd.js +1 -0
- package/dist/assets/writer-B-KovzkA.js +5 -0
- package/dist/assets/xstate-animation-binding-Brd0NST6.js +1 -0
- package/dist/assets/xstate-animation-meta-Q3u9zh_m.js +1 -0
- package/dist/assets/xstate-behavior.action-B8UluFBK.js +1 -0
- package/dist/assets/xstate-behavior.document-CKAsE45I.js +1 -0
- package/dist/assets/xstate-behavior.inspector-vJJyuifc.js +1 -0
- package/dist/assets/xstate-behavior.menu-BXbPICIh.js +1 -0
- package/dist/assets/xstate-inspection-BsZv8LS9.js +1 -0
- package/dist/vgai-shared-react.json +10 -0
- package/dist/vgai-shared-three.json +3 -0
- package/dist-node/cli.js +9320 -0
- package/dist-node/create.js +3239 -0
- package/package.json +91 -0
- package/presets.mjs +2 -0
- package/src/contributions.d.ts +4 -0
- package/src/index.ts +38 -0
- package/starter/cube.blend +0 -0
- package/starter/cube.py +81 -0
- package/template/.agents/references/project-manual.md +341 -0
- package/template/.agents/skills/editor/SKILL.md +53 -0
- package/template/.agents/skills/editor/agents/openai.yaml +4 -0
- package/template/.agents/skills/editor/references/editor-control.md +363 -0
- package/template/.agents/skills/vgai-3d-models/SKILL.md +64 -0
- package/template/.agents/skills/vgai-ingest-existing-game/SKILL.md +112 -0
- package/template/.agents/skills/vgai-threejs-authoring/SKILL.md +347 -0
- package/template/.agents/skills/vgai-threejs-authoring/agents/openai.yaml +4 -0
- package/template/.agents/skills/vgai-threejs-authoring/references/helper-catalog.md +65 -0
- package/template/.claude/skills/editor/SKILL.md +53 -0
- package/template/.claude/skills/editor/agents/openai.yaml +4 -0
- package/template/.claude/skills/editor/references/editor-control.md +363 -0
- package/template/.claude/skills/vgai-3d-models/SKILL.md +64 -0
- package/template/.claude/skills/vgai-ingest-existing-game/SKILL.md +112 -0
- package/template/.claude/skills/vgai-threejs-authoring/SKILL.md +347 -0
- package/template/.claude/skills/vgai-threejs-authoring/agents/openai.yaml +4 -0
- package/template/.claude/skills/vgai-threejs-authoring/references/helper-catalog.md +65 -0
- package/template/.github/copilot-instructions.md +6 -0
- package/template/.github/skills/editor/SKILL.md +53 -0
- package/template/.github/skills/editor/agents/openai.yaml +4 -0
- package/template/.github/skills/editor/references/editor-control.md +363 -0
- package/template/.github/skills/vgai-3d-models/SKILL.md +64 -0
- package/template/.github/skills/vgai-ingest-existing-game/SKILL.md +112 -0
- package/template/.github/skills/vgai-threejs-authoring/SKILL.md +347 -0
- package/template/.github/skills/vgai-threejs-authoring/agents/openai.yaml +4 -0
- package/template/.github/skills/vgai-threejs-authoring/references/helper-catalog.md +65 -0
- package/template/.mcp.json +12 -0
- package/template/.vgai/assets.json +1 -0
- package/template/.vgai/provenance.json +4 -0
- package/template/.volter/tracker/validation/.preset.base.mts +178 -0
- package/template/.volter/tracker/validation/preset.mts +186 -0
- package/template/.volter/tracker/visualizer/.extension.base.tsx +14 -0
- package/template/.volter/tracker/visualizer/extension.tsx +14 -0
- package/template/.volter/tracker-config.json +17 -0
- package/template/AGENTS.md +176 -0
- package/template/CLAUDE.md +1 -0
- package/template/DEVLOG.md +20 -0
- package/template/IDIOMS.md +118 -0
- package/template/LICENSE +30 -0
- package/template/README.md +83 -0
- package/template/ROADMAP.md +20 -0
- package/template/asset-manifest.json +3 -0
- package/template/check-idioms.ts +1533 -0
- package/template/index.html +18 -0
- package/template/manifest-entry-modules-plugin.ts +53 -0
- package/template/package.json +62 -0
- package/template/public/jsm/libs/basis/basis_transcoder.js +19 -0
- package/template/public/jsm/libs/basis/basis_transcoder.wasm +0 -0
- package/template/public/jsm/libs/draco/gltf/draco_decoder.js +33 -0
- package/template/public/jsm/libs/draco/gltf/draco_decoder.wasm +0 -0
- package/template/public/jsm/libs/draco/gltf/draco_encoder.js +33 -0
- package/template/public/jsm/libs/draco/gltf/draco_wasm_wrapper.js +116 -0
- package/template/public/shaders/daylight-sky.frag.glsl +15 -0
- package/template/public/shaders/daylight-sky.vert.glsl +7 -0
- package/template/scripts/patch-drei-stats-gl.mjs +35 -0
- package/template/server/colyseus-setup.ts +111 -0
- package/template/server/loopback.ts +76 -0
- package/template/server/main.ts +78 -0
- package/template/server/rooms/arena-room.ts +488 -0
- package/template/server/rooms/game-room.ts +274 -0
- package/template/server/rooms.ts +15 -0
- package/template/server/tsconfig.json +19 -0
- package/template/src/bot/QaTester.tsx +35 -0
- package/template/src/bot/behaviors.ts +203 -0
- package/template/src/bot/bot-station.ts +192 -0
- package/template/src/bot/tester-run.ts +238 -0
- package/template/src/bot/tester-station.ts +193 -0
- package/template/src/components/environment/DaylightSky.tsx +54 -0
- package/template/src/components/environment/Ground.tsx +129 -0
- package/template/src/components/environment/SceneAtmosphere.tsx +14 -0
- package/template/src/components/environment/SoftGroundShadow.tsx +62 -0
- package/template/src/components/environment/SunShadowFit.tsx +141 -0
- package/template/src/contributions/README.md +98 -0
- package/template/src/contributions/analytics.analytics.tsx +26 -0
- package/template/src/contributions/data.document.tsx +35 -0
- package/template/src/contributions/pages.finder.ts +61 -0
- package/template/src/contributions/tester.inspector.tsx +64 -0
- package/template/src/contributions/use-game-modules.ts +80 -0
- package/template/src/data/README.md +17 -0
- package/template/src/input.ts +97 -0
- package/template/src/lib/audio/capability.json +4 -0
- package/template/src/lib/audio/sfx.ts +255 -0
- package/template/src/lib/react-root/capability.json +4 -0
- package/template/src/lib/react-root/index.ts +20 -0
- package/template/src/lib/react-root/react-root-adapter.tsx +57 -0
- package/template/src/lib/reflections/ReflectionProbe.tsx +201 -0
- package/template/src/lib/reflections/capability.json +4 -0
- package/template/src/lib/reflections/index.ts +19 -0
- package/template/src/lib/reflections/probe-controller.ts +75 -0
- package/template/src/lib/reflections/reflection-probe-registry.ts +402 -0
- package/template/src/lib/reflections/volume-reflection-material.ts +416 -0
- package/template/src/lib/static-batch/Frozen.tsx +91 -0
- package/template/src/lib/static-batch/capability.json +4 -0
- package/template/src/lib/static-batch/freeze.ts +579 -0
- package/template/src/lib/static-batch/index.ts +44 -0
- package/template/src/lib/static-batch/mutation-watch.ts +149 -0
- package/template/src/lib/static-batch/shadow-cache.ts +171 -0
- package/template/src/main.ts +63 -0
- package/template/src/manifest-entry-modules.d.ts +3 -0
- package/template/src/prefabs/HeroBox.stories.tsx +23 -0
- package/template/src/prefabs/HeroBox.tsx +35 -0
- package/template/src/scenes/MainScene.tsx +77 -0
- package/template/src/world.tsx +87 -0
- package/template/tsconfig.json +35 -0
- package/template/tsconfig.node.json +32 -0
- package/template/tsconfig.tools.json +22 -0
- package/template/validate-asset-content.ts +27 -0
- package/template/validate-assets.ts +60 -0
- package/template/validate-manifest.ts +55 -0
- package/template/vgai.adapter.ts +76 -0
- package/template/vgai.project.json +24 -0
- package/template/vite.config.ts +247 -0
- package/template-dotfiles/gitignore +63 -0
- package/workbench/src/media/game-cover.css +83 -0
- package/workbench/src/product.contribution.ts +188 -0
- package/workbench/src/vgaiGameSkew.ts +276 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import{g as Rt}from"./_commonjsHelpers-D6-XlEtG.js";import{jS as N}from"./index-GIL7oGEO.js";import"./index-nmcBqr7Y.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"./three.module-D396a9Mn.js";var j={exports:{}},qe;function Ot(){if(qe)return j.exports;qe=1;var d=String,x=function(){return{isColorSupported:!1,reset:d,bold:d,dim:d,italic:d,underline:d,inverse:d,hidden:d,strikethrough:d,black:d,red:d,green:d,yellow:d,blue:d,magenta:d,cyan:d,white:d,gray:d,bgBlack:d,bgRed:d,bgGreen:d,bgYellow:d,bgBlue:d,bgMagenta:d,bgCyan:d,bgWhite:d,blackBright:d,redBright:d,greenBright:d,yellowBright:d,blueBright:d,magentaBright:d,cyanBright:d,whiteBright:d,bgBlackBright:d,bgRedBright:d,bgGreenBright:d,bgYellowBright:d,bgBlueBright:d,bgMagentaBright:d,bgCyanBright:d,bgWhiteBright:d}};return j.exports=x(),j.exports.createColors=x,j.exports}var te,ze;function Ee(){if(ze)return te;ze=1;let d=Ot(),x=N;class v extends Error{constructor(y,b,g,w,S,o){super(y),this.name="CssSyntaxError",this.reason=y,S&&(this.file=S),w&&(this.source=w),o&&(this.plugin=o),typeof b<"u"&&typeof g<"u"&&(typeof b=="number"?(this.line=b,this.column=g):(this.line=b.line,this.column=b.column,this.endLine=g.line,this.endColumn=g.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,v)}setMessage(){this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"<css input>",typeof this.line<"u"&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason}showSourceCode(y){if(!this.source)return"";let b=this.source;y==null&&(y=d.isColorSupported);let g=e=>e,w=e=>e,S=e=>e;if(y){let{bold:e,gray:t,red:i}=d.createColors(!0);w=n=>e(i(n)),g=n=>t(n),x&&(S=n=>x(n))}let o=b.split(/\r?\n/),f=Math.max(this.line-3,0),s=Math.min(this.line+2,o.length),r=String(s).length;return o.slice(f,s).map((e,t)=>{let i=f+1+t,n=" "+(" "+i).slice(-r)+" | ";if(i===this.line){if(e.length>160){let c=20,u=Math.max(0,this.column-c),l=Math.max(this.column+c,this.endColumn+c),a=e.slice(u,l),h=g(n.replace(/\d/g," "))+e.slice(0,Math.min(this.column-1,c-1)).replace(/[^\t]/g," ");return w(">")+g(n)+S(a)+`
|
|
2
|
+
`+h+w("^")}let p=g(n.replace(/\d/g," "))+e.slice(0,this.column-1).replace(/[^\t]/g," ");return w(">")+g(n)+S(e)+`
|
|
3
|
+
`+p+w("^")}return" "+g(n)+S(e)}).join(`
|
|
4
|
+
`)}toString(){let y=this.showSourceCode();return y&&(y=`
|
|
5
|
+
|
|
6
|
+
`+y+`
|
|
7
|
+
`),this.name+": "+this.message+y}}return te=v,v.default=v,te}var re,De;function dt(){if(De)return re;De=1;const d=/(<)(\/?style\b)/gi,x=/(<)(!--)/g,v=/[\t\n\f\r "#'()/;[\\\]{}]/;function m(s){return typeof s!="string"||!s.includes("<")?s:s.replace(d,"\\3c $2").replace(x,"\\3c $2")}const y={after:`
|
|
8
|
+
`,beforeClose:`
|
|
9
|
+
`,beforeComment:`
|
|
10
|
+
`,beforeDecl:`
|
|
11
|
+
`,beforeOpen:" ",beforeRule:`
|
|
12
|
+
`,colon:": ",commentLeft:" ",commentRight:" ",emptyBody:"",indent:" ",semicolon:!1};function b(s){return s[0].toUpperCase()+s.slice(1)}function g(s,r){let e="@"+r.name,t=r.params?s.rawValue(r,"params"):"",i=r.raws.afterName;return typeof i>"u"?i=t?" ":"":i===""&&t&&!v.test(t[0])&&(i=" "),e+i+t}function w(s){if(!s.prop.startsWith("--"))return!1;let r=s.raws.before;return typeof r>"u"||!/\S$/.test(r)}function S(s,r,e){let t=e.nodes,i=t.length-1;for(;i>0&&t[i].type==="comment";)i-=1;let n=s.raw(e,"semicolon"),p=e.type==="document";for(let c=t.length-1;c>=0;c--){let u=t[c],l=i!==c||n;!l&&c<t.length-1&&(u.type==="atrule"&&!u.nodes||u.type==="decl"&&w(u))&&(l=!0),r.push({document:p,node:u,semicolon:l})}}function o(s,r,e,t){let i=s.raw(e,"between","beforeOpen");s.builder(m(t+i)+"{",e,"start");let n=e.nodes&&e.nodes.length,p=()=>{let c=n?s.raw(e,"after"):s.raw(e,"after","emptyBody");c&&s.builder(m(c)),s.builder("}",e,"end"),e.type==="rule"&&e.raws.ownSemicolon&&s.builder(m(e.raws.ownSemicolon),e,"end")};n?(r.push(p),S(s,r,e)):p()}class f{constructor(r){this.builder=r}atrule(r,e){let t=g(this,r);if(r.nodes)this.block(r,t);else{let i=(r.raws.between||"")+(e?";":"");this.builder(m(t+i),r)}}beforeAfter(r,e){let t;r.type==="decl"?t=this.raw(r,null,"beforeDecl"):r.type==="comment"?t=this.raw(r,null,"beforeComment"):e==="before"?t=this.raw(r,null,"beforeRule"):t=this.raw(r,null,"beforeClose");let i=r.parent,n=0;for(;i&&i.type!=="root";)n+=1,i=i.parent;if(t.includes(`
|
|
13
|
+
`)){let p=this.raw(r,null,"indent");if(p.length)for(let c=0;c<n;c++)t+=p}return t}block(r,e){let t=this.raw(r,"between","beforeOpen");this.builder(m(e+t)+"{",r,"start");let i;r.nodes&&r.nodes.length?(this.body(r),i=this.raw(r,"after")):i=this.raw(r,"after","emptyBody"),i&&this.builder(m(i)),this.builder("}",r,"end")}body(r){let e=f.prototype,t=["atrule","block","body","rule","stringify"].every(n=>this[n]===e[n]),i=[];for(S(this,i,r);i.length>0;){let n=i.pop();if(typeof n=="function"){n();continue}let p=n.node,c=this.raw(p,"before");c&&this.builder(n.document?c:m(c)),t&&p.type==="rule"?o(this,i,p,this.rawValue(p,"selector")):t&&p.type==="atrule"&&p.nodes?o(this,i,p,g(this,p)):this.stringify(p,n.semicolon)}}comment(r){let e=this.raw(r,"left","commentLeft"),t=this.raw(r,"right","commentRight");this.builder(m("/*"+e+r.text+t+"*/"),r)}decl(r,e){let t=r.raws,i=this.raw(r,"between","colon"),n=r.prop+i+this.rawValue(r,"value");r.important&&(n+=t.important||" !important"),e&&(n+=";"),this.builder(m(n),r)}document(r){this.body(r)}raw(r,e,t){let i;if(t||(t=e),e&&(i=r.raws[e],typeof i<"u"))return i;let n=r.parent;if(t==="before"&&(!n||n.type==="root"&&n.first===r||n&&n.type==="document"))return"";if(!n)return y[t];let p=r.root(),c=p.rawCache||(p.rawCache={});if(typeof c[t]<"u")return c[t];if(t==="before"||t==="after")return this.beforeAfter(r,t);{let u="raw"+b(t);this[u]?i=this[u](p,r):p.walk(l=>{if(i=l.raws[e],typeof i<"u")return!1})}return typeof i>"u"&&(i=y[t]),c[t]=i,i}rawBeforeClose(r){let e;return r.walk(t=>{if(t.nodes&&t.nodes.length>0&&typeof t.raws.after<"u")return e=t.raws.after,e.includes(`
|
|
14
|
+
`)&&(e=e.replace(/[^\n]+$/,"")),!1}),e&&(e=e.replace(/\S/g,"")),e}rawBeforeComment(r,e){let t;return r.walkComments(i=>{if(typeof i.raws.before<"u")return t=i.raws.before,t.includes(`
|
|
15
|
+
`)&&(t=t.replace(/[^\n]+$/,"")),!1}),typeof t>"u"?t=this.raw(e,null,"beforeDecl"):t&&(t=t.replace(/\S/g,"")),t}rawBeforeDecl(r,e){let t;return r.walkDecls(i=>{if(typeof i.raws.before<"u")return t=i.raws.before,t.includes(`
|
|
16
|
+
`)&&(t=t.replace(/[^\n]+$/,"")),!1}),typeof t>"u"?t=this.raw(e,null,"beforeRule"):t&&(t=t.replace(/\S/g,"")),t}rawBeforeOpen(r){let e;return r.walk(t=>{if(t.type!=="decl"&&(e=t.raws.between,typeof e<"u"))return!1}),e}rawBeforeRule(r){let e;return r.walk(t=>{if(t.nodes&&(t.parent!==r||r.first!==t)&&typeof t.raws.before<"u")return e=t.raws.before,e.includes(`
|
|
17
|
+
`)&&(e=e.replace(/[^\n]+$/,"")),!1}),e&&(e=e.replace(/\S/g,"")),e}rawColon(r){let e;return r.walkDecls(t=>{if(typeof t.raws.between<"u")return e=t.raws.between.replace(/[^\s:]/g,""),!1}),e}rawEmptyBody(r){let e;return r.walk(t=>{if(t.nodes&&t.nodes.length===0&&(e=t.raws.after,typeof e<"u"))return!1}),e}rawIndent(r){if(r.raws.indent)return r.raws.indent;let e;return r.walk(t=>{let i=t.parent;if(i&&i!==r&&i.parent&&i.parent===r&&typeof t.raws.before<"u"){let n=t.raws.before.split(`
|
|
18
|
+
`);return e=n[n.length-1],e=e.replace(/\S/g,""),!1}}),e}rawSemicolon(r){let e;return r.walk(t=>{if(t.nodes&&t.nodes.length&&t.last.type==="decl"&&(e=t.raws.semicolon,typeof e<"u"))return!1}),e}rawValue(r,e){let t=r[e],i=r.raws[e];return i&&i.value===t?i.raw:t}root(r){if(r.source&&r.source.input.hasBOM&&this.builder("\uFEFF",r,"start"),this.body(r),r.raws.after){let e=r.raws.after,t=r.parent&&r.parent.type==="document";this.builder(t?e:m(e))}}rule(r){this.block(r,this.rawValue(r,"selector")),r.raws.ownSemicolon&&this.builder(m(r.raws.ownSemicolon),r,"end")}stringify(r,e){if(!this[r.type])throw new Error("Unknown AST node type "+r.type+". Maybe you need to change PostCSS stringifier.");this[r.type](r,e)}}return re=f,f.default=f,re}var ie,Te;function $(){if(Te)return ie;Te=1;let d=dt();function x(v,m){new d(m).stringify(v)}return ie=x,x.default=x,ie}var W={},Fe;function J(){return Fe||(Fe=1,W.isClean=Symbol("isClean"),W.my=Symbol("my")),W}var se,je;function G(){if(je)return se;je=1;let d=Ee(),x=dt(),v=$(),{isClean:m,my:y}=J();function b(S,o){let f=new S.constructor,s=[[S,f,o]];for(;s.length>0;){let[r,e,t]=s.pop();for(let i in r){if(!Object.prototype.hasOwnProperty.call(r,i)||i==="proxyCache")continue;let n=r[i],p=typeof n;if(i==="parent"&&p==="object")t&&(e[i]=t);else if(i==="source")e[i]=n;else if(Array.isArray(n)){let c=[];e[i]=c;for(let u of n){let l=new u.constructor;c.push(l),s.push([u,l,e])}}else{if(p==="object"&&n!==null){let c=new n.constructor;s.push([n,c,void 0]),n=c}e[i]=n}}}return f}function g(S,o){if(o&&typeof o.offset<"u")return o.offset;let f=1,s=1,r=0;for(let e=0;e<S.length;e++){if(s===o.line&&f===o.column){r=e;break}S[e]===`
|
|
19
|
+
`?(f=1,s+=1):f+=1}return r}class w{get proxyOf(){return this}constructor(o={}){this.raws={},this[m]=!1,this[y]=!0;for(let f of Object.keys(o))if(f!=="__proto__")if(f==="nodes"){this.nodes=[];for(let s of o[f])typeof s.clone=="function"&&s.parent?this.append(s.clone()):this.append(s)}else this[f]=o[f]}addToError(o){if(o.postcssNode=this,o.stack&&this.source&&/\n\s{4}at /.test(o.stack)){let f=this.source;o.stack=o.stack.replace(/\n\s{4}at /,`$&${f.input.from}:${f.start.line}:${f.start.column}$&`)}return o}after(o){return this.parent.insertAfter(this,o),this}assign(o={}){for(let f in o)this[f]=o[f];return this}before(o){return this.parent.insertBefore(this,o),this}cleanRaws(o){delete this.raws.before,delete this.raws.after,o||delete this.raws.between}clone(o={}){let f=b(this);for(let s in o)f[s]=o[s];return f}cloneAfter(o={}){let f=this.clone(o);return this.parent.insertAfter(this,f),f}cloneBefore(o={}){let f=this.clone(o);return this.parent.insertBefore(this,f),f}error(o,f={}){if(this.source){let{end:s,start:r}=this.rangeBy(f);return this.source.input.error(o,{column:r.column,line:r.line},{column:s.column,line:s.line},f)}return new d(o)}getProxyProcessor(){return{get(o,f){return f==="proxyOf"?o:f==="root"?()=>o.root().toProxy():o[f]},set(o,f,s){return o[f]===s||(o[f]=s,(f==="prop"||f==="value"||f==="name"||f==="params"||f==="important"||f==="text")&&o.markDirty()),!0}}}markClean(){this[m]=!0}markDirty(){if(this[m]){this[m]=!1;let o=this;for(;o=o.parent;)o[m]=!1}}next(){if(!this.parent)return;let o=this.parent.index(this);return this.parent.nodes[o+1]}positionBy(o={}){let f="document"in this.source.input?this.source.input.document:this.source.input.css,s={column:this.source.start.column,line:this.source.start.line,offset:g(f,this.source.start)};if(o.index)s=this.positionInside(o.index);else if(o.word){let e=f.slice(g(f,this.source.start),g(f,this.source.end)).indexOf(o.word);e!==-1&&(s=this.positionInside(e))}return s}positionInside(o){let f=this.source.start.column,s=this.source.start.line,r="document"in this.source.input?this.source.input.document:this.source.input.css,e=g(r,this.source.start),t=e+o;for(let i=e;i<t;i++)r[i]===`
|
|
20
|
+
`?(f=1,s+=1):f+=1;return{column:f,line:s,offset:t}}prev(){if(!this.parent)return;let o=this.parent.index(this);return this.parent.nodes[o-1]}rangeBy(o={}){let f="document"in this.source.input?this.source.input.document:this.source.input.css,s={column:this.source.start.column,line:this.source.start.line,offset:g(f,this.source.start)},r=this.source.end?{column:this.source.end.column+1,line:this.source.end.line,offset:typeof this.source.end.offset=="number"?this.source.end.offset:g(f,this.source.end)+1}:{column:s.column+1,line:s.line,offset:s.offset+1};if(o.word){let t=f.slice(g(f,this.source.start),g(f,this.source.end)).indexOf(o.word);t!==-1&&(s=this.positionInside(t),r=this.positionInside(t+o.word.length))}else o.start?s={column:o.start.column,line:o.start.line,offset:g(f,o.start)}:typeof o.index=="number"&&(s=this.positionInside(o.index)),o.end?r={column:o.end.column,line:o.end.line,offset:g(f,o.end)}:typeof o.endIndex=="number"?r=this.positionInside(o.endIndex):typeof o.index=="number"&&(r=this.positionInside(o.index+1));return(r.line<s.line||r.line===s.line&&r.column<=s.column)&&(r={column:s.column+1,line:s.line,offset:s.offset+1}),{end:r,start:s}}raw(o,f){return new x().raw(this,o,f)}remove(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}replaceWith(...o){if(this.parent){let f=this,s=!1;for(let r of o)r===this?s=!0:s?(this.parent.insertAfter(f,r),f=r):this.parent.insertBefore(f,r);s||this.remove()}return this}root(){let o=this;for(;o.parent&&o.parent.type!=="document";)o=o.parent;return o}toJSON(o,f){let s=f==null;f=f||new Map;let r=[],e=[[this,r,0]];for(let i=0;i<e.length;i++){let[n,p,c]=e[i],u={};p[c]=u;for(let l in n){if(!Object.prototype.hasOwnProperty.call(n,l)||l==="parent"||l==="proxyCache")continue;let a=n[l];if(Array.isArray(a)){let h=[];u[l]=h;for(let C=0;C<a.length;C++){let R=a[C];typeof R=="object"&&R.toJSON?R.toJSON===w.prototype.toJSON?e.push([R,h,C]):h[C]=R.toJSON(null,f):h[C]=R}}else if(typeof a=="object"&&a.toJSON)a.toJSON===w.prototype.toJSON?e.push([a,u,l]):u[l]=a.toJSON(null,f);else if(l==="source"){if(a==null)continue;let h=f.get(a.input);h==null&&(h=f.size,f.set(a.input,h)),u[l]={end:a.end,inputId:h,start:a.start}}else u[l]=a}}let t=r[0];return s&&(t.inputs=[...f.keys()].map(i=>i.toJSON())),t}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}toString(o=v){o.stringify&&(o=o.stringify);let f="";return o(this,s=>{f+=s}),f}warn(o,f,s={}){let r={node:this};for(let e in s)r[e]=s[e];return o.warn(f,r)}}return se=w,w.default=w,se}var ne,We;function H(){if(We)return ne;We=1;let d=G();class x extends d{constructor(m){super(m),this.type="comment"}}return ne=x,x.default=x,ne}var oe,$e;function V(){if($e)return oe;$e=1;let d=G();class x extends d{get variable(){return this.prop.startsWith("--")||this.prop[0]==="$"}constructor(m){m&&typeof m.value<"u"&&typeof m.value!="string"&&(m={...m,value:String(m.value)}),super(m),this.type="decl"}}return oe=x,x.default=x,oe}var le,Je;function _(){if(Je)return le;Je=1;let d=H(),x=V(),v=G(),{isClean:m,my:y}=J(),b,g,w,S;function o(r){let e=r.slice();for(;e.length>0;){let t=e.pop();if(delete t.source,t.nodes){t.nodes=t.nodes.slice();for(let i of t.nodes)e.push(i)}}return r.slice()}function f(r){let e=[r];for(;e.length>0;){let t=e.pop();if(t[m]=!1,t.proxyOf.nodes)for(let i of t.proxyOf.nodes)e.push(i)}}class s extends v{get first(){if(this.proxyOf.nodes)return this.proxyOf.nodes[0]}get last(){if(this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}append(...e){for(let t of e){let i=this.normalize(t,this.last);for(let n of i)this.proxyOf.nodes.push(n)}return this.markDirty(),this}cleanRaws(e){let t=[this];for(;t.length>0;){let i=t.pop();if(i!==this&&i.cleanRaws!==s.prototype.cleanRaws){i.cleanRaws(e);continue}if(v.prototype.cleanRaws.call(i,e),i.nodes)for(let n of i.nodes)t.push(n)}}each(e){if(!this.proxyOf.nodes)return;let t=this.getIterator(),i,n;for(;this.indexes[t]<this.proxyOf.nodes.length&&(i=this.indexes[t],n=e(this.proxyOf.nodes[i],i),n!==!1);)this.indexes[t]+=1;return delete this.indexes[t],n}every(e){return this.nodes.every(e)}getIterator(){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach+=1;let e=this.lastEach;return this.indexes[e]=0,e}getProxyProcessor(){return{get(e,t){return t==="proxyOf"?e:e[t]?t==="each"||typeof t=="string"&&t.startsWith("walk")?(...i)=>e[t](...i.map(n=>typeof n=="function"?(p,c)=>n(p.toProxy(),c):n)):t==="every"||t==="some"?i=>e[t]((n,...p)=>i(n.toProxy(),...p)):t==="root"?()=>e.root().toProxy():t==="nodes"?e.nodes.map(i=>i.toProxy()):t==="first"||t==="last"?e[t].toProxy():e[t]:e[t]},set(e,t,i){return e[t]===i||(e[t]=i,(t==="name"||t==="params"||t==="selector")&&e.markDirty()),!0}}}index(e){return typeof e=="number"?e:(e.proxyOf&&(e=e.proxyOf),this.proxyOf.nodes.indexOf(e))}insertAfter(e,t){let i=this.index(e),n=this.normalize(t,this.proxyOf.nodes[i]).reverse();i=this.index(e);for(let c of n)this.proxyOf.nodes.splice(i+1,0,c);let p;for(let c in this.indexes)p=this.indexes[c],i<p&&(this.indexes[c]=p+n.length);return this.markDirty(),this}insertBefore(e,t){let i=this.index(e),n=i===0?"prepend":!1,p=this.normalize(t,this.proxyOf.nodes[i],n).reverse();i=this.index(e);for(let u of p)this.proxyOf.nodes.splice(i,0,u);let c;for(let u in this.indexes)c=this.indexes[u],i<=c&&(this.indexes[u]=c+p.length);return this.markDirty(),this}normalize(e,t){if(typeof e=="string")e=o(g(e).nodes);else if(typeof e>"u")e=[];else if(Array.isArray(e)){e=e.slice(0);for(let n of e)n.parent&&n.parent.removeChild(n,"ignore")}else if(e.type==="root"&&this.type!=="document"){e=e.nodes.slice(0);for(let n of e)n.parent&&n.parent.removeChild(n,"ignore")}else if(e.type)e=[e];else if(e.prop){if(typeof e.value>"u")throw new Error("Value field is missed in node creation");typeof e.value!="string"&&(e.value=String(e.value)),e=[new x(e)]}else if(e.selector||e.selectors)e=[new S(e)];else if(e.name)e=[new b(e)];else if(e.text)e=[new d(e)];else throw new Error("Unknown node type in node creation");return e.map(n=>(n[y]||s.rebuild(n),n=n.proxyOf,n.parent&&n.parent.removeChild(n),n[m]&&f(n),n.raws||(n.raws={}),typeof n.raws.before>"u"&&t&&typeof t.raws.before<"u"&&(n.raws.before=t.raws.before.replace(/\S/g,"")),n.parent=this.proxyOf,n))}prepend(...e){e=e.reverse();for(let t of e){let i=this.normalize(t,this.first,"prepend").reverse();for(let n of i)this.proxyOf.nodes.unshift(n);for(let n in this.indexes)this.indexes[n]=this.indexes[n]+i.length}return this.markDirty(),this}push(e){return e.parent=this,this.proxyOf.nodes.push(e),this}removeAll(){for(let e of this.proxyOf.nodes)e.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}removeChild(e){e=this.index(e),this.proxyOf.nodes[e].parent=void 0,this.proxyOf.nodes.splice(e,1);let t;for(let i in this.indexes)t=this.indexes[i],t>=e&&(this.indexes[i]=t-1);return this.markDirty(),this}replaceValues(e,t,i){return i||(i=t,t={}),this.walkDecls(n=>{t.props&&!t.props.includes(n.prop)||t.fast&&!n.value.includes(t.fast)||(n.value=n.value.replace(e,i))}),this.markDirty(),this}some(e){return this.nodes.some(e)}walk(e){if(!this.proxyOf.nodes)return;let t=[{iterator:this.getIterator(),node:this.proxyOf}];for(;t.length>0;){let{iterator:i,node:n}=t[t.length-1],p=n.indexes[i];if(p>=n.proxyOf.nodes.length){delete n.indexes[i],t.pop();let l=t[t.length-1];l&&(l.node.indexes[l.iterator]+=1);continue}let c=n.proxyOf.nodes[p],u;try{u=e(c,p)}catch(l){throw c.addToError(l)}if(u===!1){for(let l of t)delete l.node.indexes[l.iterator];return!1}c.walk&&c.proxyOf.nodes?t.push({iterator:c.getIterator(),node:c}):n.indexes[i]+=1}}walkAtRules(e,t){return t?e instanceof RegExp?this.walk((i,n)=>{if(i.type==="atrule"&&e.test(i.name))return t(i,n)}):this.walk((i,n)=>{if(i.type==="atrule"&&i.name===e)return t(i,n)}):(t=e,this.walk((i,n)=>{if(i.type==="atrule")return t(i,n)}))}walkComments(e){return this.walk((t,i)=>{if(t.type==="comment")return e(t,i)})}walkDecls(e,t){return t?e instanceof RegExp?this.walk((i,n)=>{if(i.type==="decl"&&e.test(i.prop))return t(i,n)}):this.walk((i,n)=>{if(i.type==="decl"&&i.prop===e)return t(i,n)}):(t=e,this.walk((i,n)=>{if(i.type==="decl")return t(i,n)}))}walkRules(e,t){return t?e instanceof RegExp?this.walk((i,n)=>{if(i.type==="rule"&&e.test(i.selector))return t(i,n)}):this.walk((i,n)=>{if(i.type==="rule"&&i.selector===e)return t(i,n)}):(t=e,this.walk((i,n)=>{if(i.type==="rule")return t(i,n)}))}}return s.registerParse=r=>{g=r},s.registerRule=r=>{S=r},s.registerAtRule=r=>{b=r},s.registerRoot=r=>{w=r},le=s,s.default=s,s.rebuild=r=>{let e=[r];for(;e.length>0;){let t=e.pop();if(t.type==="atrule"?Object.setPrototypeOf(t,b.prototype):t.type==="rule"?Object.setPrototypeOf(t,S.prototype):t.type==="decl"?Object.setPrototypeOf(t,x.prototype):t.type==="comment"?Object.setPrototypeOf(t,d.prototype):t.type==="root"&&Object.setPrototypeOf(t,w.prototype),t[y]=!0,t.nodes)for(let i of t.nodes)e.push(i)}},le}var ae,Ge;function Pe(){if(Ge)return ae;Ge=1;let d=_();class x extends d{constructor(m){super(m),this.type="atrule"}append(...m){return this.proxyOf.nodes||(this.nodes=[]),super.append(...m)}prepend(...m){return this.proxyOf.nodes||(this.nodes=[]),super.prepend(...m)}}return ae=x,x.default=x,d.registerAtRule(x),ae}var ue,He;function ke(){if(He)return ue;He=1;let d=_(),x,v;class m extends d{constructor(b){super({type:"document",...b}),this.nodes||(this.nodes=[])}toResult(b={}){return new x(new v,this,b).stringify()}}return m.registerLazyResult=y=>{x=y},m.registerProcessor=y=>{v=y},ue=m,m.default=m,ue}var fe,Ve;function At(){if(Ve)return fe;Ve=1;let d="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";return fe={nanoid:(m=21)=>{let y="",b=m|0;for(;b-- >0;)y+=d[Math.random()*64|0];return y},customAlphabet:(m,y=21)=>(b=y)=>{let g="",w=b|0;for(;w-- >0;)g+=m[Math.random()*m.length|0];return g}},fe}var he,Qe;function mt(){if(Qe)return he;Qe=1;let{existsSync:d,readFileSync:x,realpathSync:v}=N,{dirname:m,isAbsolute:y,join:b,relative:g,sep:w}=N,{SourceMapConsumer:S,SourceMapGenerator:o}=N;function f(e){try{return v(e)}catch{return e}}function s(e){return Buffer?Buffer.from(e,"base64").toString():window.atob(e)}class r{constructor(t,i){if(i.map===!1)return;i.unsafeMap&&(this.unsafeMap=!0),this.loadAnnotation(t),this.inline=this.startWith(this.annotation,"data:");let n=i.map?i.map.prev:void 0,p=this.loadMap(i.from,n);!this.mapFile&&i.from&&(this.mapFile=i.from),this.mapFile&&(this.root=m(this.mapFile)),p&&(this.text=p)}consumer(){return this.consumerCache||(this.consumerCache=new S(this.json||this.text)),this.consumerCache}decodeInline(t){let i=/^data:application\/json;charset=utf-?8;base64,/,n=/^data:application\/json;base64,/,p=/^data:application\/json;charset=utf-?8,/,c=/^data:application\/json,/,u=t.match(p)||t.match(c);if(u)return decodeURIComponent(t.substr(u[0].length));let l=t.match(i)||t.match(n);if(l)return s(t.substr(l[0].length));let a=t.slice(22);throw a=a.slice(0,a.indexOf(",")),new Error("Unsupported source map encoding "+a)}getAnnotationURL(t){return t.replace(/^\/\*\s*# sourceMappingURL=/,"").trim()}isMap(t){return typeof t!="object"?!1:typeof t.mappings=="string"||typeof t._mappings=="string"||Array.isArray(t.sections)}loadAnnotation(t){let i=t.match(/\/\*\s*# sourceMappingURL=/g);if(!i)return;let n=t.lastIndexOf(i.pop()),p=t.indexOf("*/",n);n>-1&&p>-1&&(this.annotation=this.getAnnotationURL(t.substring(n,p)))}loadFile(t,i,n){if(!n&&!this.unsafeMap){if(!/\.map$/i.test(t)||!i)return;let p=g(f(m(i)),f(t));if(p===".."||p.startsWith(".."+w)||y(p))return}if(this.root=m(t),d(t))return this.mapFile=t,x(t,"utf-8").toString().trim()}loadMap(t,i){if(i===!1)return!1;if(i){if(typeof i=="string")return i;if(typeof i=="function"){let n=i(t);if(n){let p=this.loadFile(n,t,!0);if(!p)throw new Error("Unable to load previous source map: "+n.toString());return p}}else{if(i instanceof S)return o.fromSourceMap(i).toString();if(i instanceof o)return i.toString();if(this.isMap(i))return JSON.stringify(i);throw new Error("Unsupported previous source map format: "+i.toString())}}else{if(this.inline)return this.decodeInline(this.annotation);if(this.annotation){let n=this.annotation;t&&(n=b(m(t),n));let p=this.loadFile(n,t,!1);if(p)try{this.json=JSON.parse(p.replace(/^\)]}'[^\n]*\n/,""))}catch{return}return p}}}startWith(t,i){return t?t.substr(0,i.length)===i:!1}withContent(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)}}return he=r,r.default=r,he}var ce,Ye;function Q(){if(Ye)return ce;Ye=1;let{nanoid:d}=At(),{isAbsolute:x,resolve:v}=N,{SourceMapConsumer:m,SourceMapGenerator:y}=N,{fileURLToPath:b,pathToFileURL:g}=N,w=Ee(),S=mt(),o=N,f=Symbol("lineToIndexCache"),s=!!(m&&y),r=!!(v&&x);function e(i){if(i[f])return i[f];let n=i.css.split(`
|
|
21
|
+
`),p=new Array(n.length),c=0;for(let u=0,l=n.length;u<l;u++)p[u]=c,c+=n[u].length+1;return i[f]=p,p}class t{get from(){return this.file||this.id}constructor(n,p={}){if(n===null||typeof n>"u"||typeof n=="object"&&!n.toString)throw new Error(`PostCSS received ${n} instead of CSS string`);if(this.css=n.toString(),this.css[0]==="\uFEFF"||this.css[0]===""?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,this.document=this.css,p.document&&(this.document=p.document.toString()),p.from&&(!r||/^\w+:\/\//.test(p.from)||x(p.from)?this.file=p.from:this.file=v(p.from)),r&&s){let c=new S(this.css,p);if(c.text){this.map=c;let u=c.consumer().file;!this.file&&u&&(this.file=this.mapResolve(u))}}this.file||(this.id="<input css "+d(6)+">"),this.map&&(this.map.file=this.from)}error(n,p,c,u={}){let l,a,h,C,R;if(p&&typeof p=="object"){let A=p,M=c;if(typeof A.offset=="number"){C=A.offset;let I=this.fromOffset(C);p=I.line,c=I.col}else p=A.line,c=A.column,C=this.fromLineAndColumn(p,c);if(typeof M.offset=="number"){h=M.offset;let I=this.fromOffset(h);a=I.line,l=I.col}else a=M.line,l=M.column,h=this.fromLineAndColumn(M.line,M.column)}else if(c)C=this.fromLineAndColumn(p,c);else{C=p;let A=this.fromOffset(C);p=A.line,c=A.col}let E=this.origin(p,c,a,l);return E?R=new w(n,E.endLine===void 0?E.line:{column:E.column,line:E.line},E.endLine===void 0?E.column:{column:E.endColumn,line:E.endLine},E.source,E.file,u.plugin):R=new w(n,a===void 0?p:{column:c,line:p},a===void 0?c:{column:l,line:a},this.css,this.file,u.plugin),R.input={column:c,endColumn:l,endLine:a,endOffset:h,line:p,offset:C,source:this.css},this.file&&(g&&(R.input.url=g(this.file).toString()),R.input.file=this.file),R}fromLineAndColumn(n,p){return e(this)[n-1]+p-1}fromOffset(n){let p=e(this),c=p[p.length-1],u=0;if(n>=c)u=p.length-1;else{let l=p.length-2,a;for(;u<l;)if(a=u+(l-u>>1),n<p[a])l=a-1;else if(n>=p[a+1])u=a+1;else{u=a;break}}return{col:n-p[u]+1,line:u+1}}mapResolve(n){return/^\w+:\/\//.test(n)?n:v(this.map.consumer().sourceRoot||this.map.root||".",n)}origin(n,p,c,u){if(!this.map)return!1;let l=this.map.consumer(),a=l.originalPositionFor({column:p-1,line:n});if(!a.source)return!1;let h;if(typeof c=="number"){let A=l.originalPositionFor({column:u-1,line:c});A.source&&(h=A)}let C;x(a.source)?C=g(a.source):C=new URL(a.source,this.map.consumer().sourceRoot||g(this.map.mapFile));let R={column:a.column+1,endColumn:h&&h.column+1,endLine:h&&h.line,line:a.line,url:C.toString()};if(C.protocol==="file:")if(b)R.file=b(C);else throw new Error("file: protocol is not available in this PostCSS build");let E=l.sourceContentFor(a.source);return E&&(R.source=E),R}toJSON(){let n={};for(let p of["hasBOM","css","file","id"])this[p]!=null&&(n[p]=this[p]);return this.map&&(n.map={...this.map},n.map.consumerCache&&(n.map.consumerCache=void 0)),n}}return ce=t,t.default=t,o&&o.registerInput&&o.registerInput(t),ce}var pe,Ke;function D(){if(Ke)return pe;Ke=1;let d=_(),x,v;class m extends d{constructor(b){super(b),this.type="root",this.nodes||(this.nodes=[])}normalize(b,g,w){let S=new Set;for(let f of Array.isArray(b)?b:[b])f&&typeof f=="object"&&!f.parent&&f.raws&&typeof f.raws.before<"u"&&S.add(f.raws);let o=super.normalize(b);if(g){if(w==="prepend")this.nodes.length>1?g.raws.before=this.nodes[1].raws.before:delete g.raws.before;else if(this.first!==g)for(let f of o)S.has(f.raws)||(f.raws.before=g.raws.before)}return o}removeChild(b,g){let w=this.index(b);return!g&&w===0&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[w].raws.before),super.removeChild(b)}toResult(b={}){return new x(new v,this,b).stringify()}}return m.registerLazyResult=y=>{x=y},m.registerProcessor=y=>{v=y},pe=m,m.default=m,d.registerRoot(m),pe}var de,Xe;function gt(){if(Xe)return de;Xe=1;let d={comma(x){return d.split(x,[","],!0)},space(x){let v=[" ",`
|
|
22
|
+
`," "];return d.split(x,v)},split(x,v,m){if(typeof x!="string")return[];let y=[],b="",g=!1,w=0,S=!1,o="",f=!1;for(let r of x)if(f?f=!1:r==="\\"?f=!0:S?r===o&&(S=!1):r==='"'||r==="'"?(S=!0,o=r):r==="("?w+=1:r===")"?w>0&&(w-=1):w===0&&v.includes(r)&&(g=!0),g){let e=b.trim();(m||e!=="")&&y.push(e),b="",g=!1}else b+=r;let s=b.trim();return(m||s!=="")&&y.push(s),y}};return de=d,d.default=d,de}var me,Ze;function Ie(){if(Ze)return me;Ze=1;let d=_(),x=gt();class v extends d{get selectors(){return x.comma(this.selector)}set selectors(y){let b=this.selector?this.selector.match(/,\s*/):null,g=b?b[0]:","+this.raw("between","beforeOpen");this.selector=y.join(g)}constructor(y){super(y),this.type="rule",this.nodes||(this.nodes=[])}}return me=v,v.default=v,d.registerRule(v),me}var ge,et;function Et(){if(et)return ge;et=1;let d=Pe(),x=H(),v=V(),m=Q(),y=mt(),b=D(),g=Ie();function w(f,s){return f.inputs?f.inputs.map(r=>{let e={...r,__proto__:m.prototype};return e.map&&(e.map={...e.map,__proto__:y.prototype}),e}):s}function S(f,s,r){let e={...f};if(delete e.inputs,delete e.nodes,e.source){let{inputId:i,...n}=e.source;e.source=n,i!=null&&(e.source.input=s[i])}let t;if(e.type==="root")t=new b(e);else if(e.type==="decl")t=new v(e);else if(e.type==="rule")t=new g(e);else if(e.type==="comment")t=new x(e);else if(e.type==="atrule")t=new d(e);else throw new Error("Unknown node type: "+f.type);if(r){t.nodes=r;for(let i of r)i.parent=t}return t}function o(f,s){if(Array.isArray(f))return f.map(t=>o(t));let r,e=[{childIndex:0,children:[],inputs:w(f,s),json:f}];for(;e.length>0;){let t=e[e.length-1],i=t.json.nodes;if(i&&t.childIndex<i.length){let p=i[t.childIndex];t.childIndex+=1,e.push({childIndex:0,children:[],inputs:w(p,t.inputs),json:p});continue}e.pop();let n=S(t.json,t.inputs,i?t.children:void 0);e.length>0?e[e.length-1].children.push(n):r=n}return r}return ge=o,o.default=o,ge}var ye,tt;function yt(){if(tt)return ye;tt=1;let{dirname:d,relative:x,resolve:v,sep:m}=N,{SourceMapConsumer:y,SourceMapGenerator:b}=N,{pathToFileURL:g}=N,w=Q(),S=!!(y&&b),o=!!(d&&v&&x&&m);class f{constructor(r,e,t,i){this.stringify=r,this.mapOpts=t.map||{},this.root=e,this.opts=t,this.css=i,this.originalCSS=i,this.usesFileUrls=!this.mapOpts.from&&this.mapOpts.absolute,this.memoizedFileURLs=new Map,this.memoizedPaths=new Map,this.memoizedURLs=new Map}addAnnotation(){let r;this.isInline()?r="data:application/json;base64,"+this.toBase64(this.map.toString()):typeof this.mapOpts.annotation=="string"?r=this.mapOpts.annotation:typeof this.mapOpts.annotation=="function"?r=this.mapOpts.annotation(this.opts.to,this.root):r=this.outputFile()+".map";let e=`
|
|
23
|
+
`;this.css.includes(`\r
|
|
24
|
+
`)&&(e=`\r
|
|
25
|
+
`),this.css+=e+"/*# sourceMappingURL="+r+" */"}applyPrevMaps(){for(let r of this.previous()){let e=this.toUrl(this.path(r.file)),t=r.root||d(r.file),i;this.mapOpts.sourcesContent===!1?(i=new y(r.text),i.sourcesContent&&(i.sourcesContent=null)):i=r.consumer(),this.map.applySourceMap(i,e,this.toUrl(this.path(t)))}}clearAnnotation(){if(this.mapOpts.annotation!==!1){if(this.root){let r;for(let e=this.root.nodes.length-1;e>=0;e--)r=this.root.nodes[e],r.type==="comment"&&r.text.startsWith("# sourceMappingURL=")&&this.root.removeChild(e)}else if(this.css){let r="/*# sourceMappingURL=",e;for(;(e=this.css.lastIndexOf(r))!==-1;){let t=this.css.indexOf("*/",e+r.length);if(t===-1)break;for(;e>0&&this.css[e-1]===`
|
|
26
|
+
`;)e--;this.css=this.css.slice(0,e)+this.css.slice(t+2)}}}}generate(){if(this.clearAnnotation(),o&&S&&this.isMap())return this.generateMap();{let r="";return this.stringify(this.root,e=>{r+=e}),[r]}}generateMap(){if(this.root)this.generateString();else if(this.previous().length===1){let r=this.previous()[0].consumer();r.file=this.outputFile(),this.map=b.fromSourceMap(r,{ignoreInvalidMapping:!0})}else this.map=new b({file:this.outputFile(),ignoreInvalidMapping:!0}),this.map.addMapping({generated:{column:0,line:1},original:{column:0,line:1},source:this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>"});return this.isSourcesContent()&&this.setSourcesContent(),this.root&&this.previous().length>0&&this.applyPrevMaps(),this.isAnnotation()&&this.addAnnotation(),this.isInline()?[this.css]:[this.css,this.map]}generateString(){this.css="",this.map=new b({file:this.outputFile(),ignoreInvalidMapping:!0});let r=1,e=1,t="<no source>",i={generated:{column:0,line:0},original:{column:0,line:0},source:""},n,p;this.stringify(this.root,(c,u,l)=>{if(this.css+=c,u&&l!=="end"&&(i.generated.line=r,i.generated.column=e-1,u.source&&u.source.start?(i.source=this.sourcePath(u),i.original.line=u.source.start.line,i.original.column=u.source.start.column-1,this.map.addMapping(i)):(i.source=t,i.original.line=1,i.original.column=0,this.map.addMapping(i))),p=c.match(/\n/g),p?(r+=p.length,n=c.lastIndexOf(`
|
|
27
|
+
`),e=c.length-n):e+=c.length,u&&l!=="start"){let a=u.parent||{raws:{}};(!(u.type==="decl"||u.type==="atrule"&&!u.nodes)||u!==a.last||a.raws.semicolon)&&(u.source&&u.source.end?(i.source=this.sourcePath(u),i.original.line=u.source.end.line,i.original.column=u.source.end.column-1,i.generated.line=r,i.generated.column=e-2,this.map.addMapping(i)):(i.source=t,i.original.line=1,i.original.column=0,i.generated.line=r,i.generated.column=e-1,this.map.addMapping(i)))}})}isAnnotation(){return this.isInline()?!0:typeof this.mapOpts.annotation<"u"?this.mapOpts.annotation:this.previous().length?this.previous().some(r=>r.annotation):!0}isInline(){if(typeof this.mapOpts.inline<"u")return this.mapOpts.inline;let r=this.mapOpts.annotation;return typeof r<"u"&&r!==!0?!1:this.previous().length?this.previous().some(e=>e.inline):!0}isMap(){return typeof this.opts.map<"u"?!!this.opts.map:this.previous().length>0}isSourcesContent(){return typeof this.mapOpts.sourcesContent<"u"?this.mapOpts.sourcesContent:this.previous().length?this.previous().some(r=>r.withContent()):!0}outputFile(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"}path(r){if(this.mapOpts.absolute||r.charCodeAt(0)===60||/^\w+:\/\//.test(r))return r;let e=this.memoizedPaths.get(r);if(e)return e;let t=this.opts.to?d(this.opts.to):".";typeof this.mapOpts.annotation=="string"&&(t=d(v(t,this.mapOpts.annotation)));let i=x(t,r);return this.memoizedPaths.set(r,i),i}previous(){if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk(r=>{if(r.source&&r.source.input.map){let e=r.source.input.map;this.previousMaps.includes(e)||this.previousMaps.push(e)}});else{let r=new w(this.originalCSS,this.opts);r.map&&this.previousMaps.push(r.map)}return this.previousMaps}setSourcesContent(){let r={};if(this.root)this.root.walk(e=>{if(e.source){let t=e.source.input.from;if(t&&!r[t]){r[t]=!0;let i=this.usesFileUrls?this.toFileUrl(t):this.toUrl(this.path(t));this.map.setSourceContent(i,e.source.input.css)}}});else if(this.css){let e=this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>";this.map.setSourceContent(e,this.css)}}sourcePath(r){return this.mapOpts.from?this.toUrl(this.mapOpts.from):this.usesFileUrls?this.toFileUrl(r.source.input.from):this.toUrl(this.path(r.source.input.from))}toBase64(r){return Buffer?Buffer.from(r).toString("base64"):window.btoa(unescape(encodeURIComponent(r)))}toFileUrl(r){let e=this.memoizedFileURLs.get(r);if(e)return e;if(g){let t=g(r).toString();return this.memoizedFileURLs.set(r,t),t}else throw new Error("`map.absolute` option is not available in this PostCSS build")}toUrl(r){let e=this.memoizedURLs.get(r);if(e)return e;m==="\\"&&(r=r.replace(/\\/g,"/"));let t=encodeURI(r).replace(/[#?]/g,encodeURIComponent);return this.memoizedURLs.set(r,t),t}}return ye=f,ye}var we,rt;function Pt(){if(rt)return we;rt=1;const d=39,x=34,v=92,m=47,y=10,b=32,g=12,w=9,S=13,o=91,f=93,s=40,r=41,e=123,t=125,i=59,n=42,p=58,c=64,u=/[\t\n\f\r "#'()/;[\\\]{}]/g,l=/[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g,a=/.[\r\n"'(/\\]/,h=/[\da-f]/i;return we=function(R,E={}){let A=R.css.valueOf(),M=E.ignoreErrors,I,Y,T,O,Ne,L,U,q,B,Ue,K=A.length,P=0,X=[],F=[],Be=-1;function bt(){return P}function Z(z){throw R.error("Unclosed "+z,P)}function vt(){return F.length===0&&P>=K}function St(z){if(F.length)return F.pop();if(P>=K)return;let ee=z?z.ignoreUnclosed:!1;switch(I=A.charCodeAt(P),I){case y:case b:case w:case S:case g:{O=P;do O+=1,I=A.charCodeAt(O);while(I===b||I===y||I===w||I===S||I===g);L=["space",A.slice(P,O)],P=O-1;break}case o:case f:case e:case t:case p:case i:case r:{let _e=String.fromCharCode(I);L=[_e,_e,P];break}case s:{if(Ue=X.length?X.pop()[1]:"",B=A.charCodeAt(P+1),Ue==="url"&&B!==d&&B!==x&&B!==b&&B!==y&&B!==w&&B!==g&&B!==S){O=P;do{if(U=!1,O=A.indexOf(")",O+1),O===-1)if(M||ee){O=P;break}else Z("bracket");for(q=O;A.charCodeAt(q-1)===v;)q-=1,U=!U}while(U);L=["brackets",A.slice(P,O+1),P,O],P=O}else P<=Be?L=["(","(",P]:(O=A.indexOf(")",P+1),Y=A.slice(P,O+1),O===-1||a.test(Y)?(Be=O===-1?K:O,L=["(","(",P]):(L=["brackets",Y,P,O],P=O));break}case d:case x:{Ne=I===d?"'":'"',O=P;do{if(U=!1,O=A.indexOf(Ne,O+1),O===-1)if(M||ee){O=P+1;break}else Z("string");for(q=O;A.charCodeAt(q-1)===v;)q-=1,U=!U}while(U);L=["string",A.slice(P,O+1),P,O],P=O;break}case c:{u.lastIndex=P+1,u.test(A),u.lastIndex===0?O=A.length-1:O=u.lastIndex-2,L=["at-word",A.slice(P,O+1),P,O],P=O;break}case v:{for(O=P,T=!0;A.charCodeAt(O+1)===v;)O+=1,T=!T;if(I=A.charCodeAt(O+1),T&&I!==m&&I!==b&&I!==y&&I!==w&&I!==S&&I!==g&&(O+=1,h.test(A.charAt(O)))){for(;h.test(A.charAt(O+1));)O+=1;A.charCodeAt(O+1)===b&&(O+=1)}L=["word",A.slice(P,O+1),P,O],P=O;break}default:{I===m&&A.charCodeAt(P+1)===n?(O=A.indexOf("*/",P+2)+1,O===0&&(M||ee?O=A.length:Z("comment")),L=["comment",A.slice(P,O+1),P,O],P=O):(l.lastIndex=P+1,l.test(A),l.lastIndex===0?O=A.length-1:O=l.lastIndex-2,L=["word",A.slice(P,O+1),P,O],X.push(L),P=O);break}}return P++,L}function Ct(z){F.push(z)}return{back:Ct,endOfFile:vt,nextToken:St,position:bt}},we}var xe,it;function kt(){if(it)return xe;it=1;let d=Pe(),x=H(),v=V(),m=D(),y=Ie(),b=Pt();const g={empty:!0,space:!0};function w(f){for(let s=f.length-1;s>=0;s--){let r=f[s],e=r[3]||r[2];if(e)return e}}function S(f,s,r){let e="";for(let t=s;t<r;t++)e+=f[t][1];return e}class o{constructor(s){this.input=s,this.root=new m,this.current=this.root,this.spaces="",this.semicolon=!1,this.createTokenizer(),this.root.source={input:s,start:{column:1,line:1,offset:0}}}atrule(s){let r=new d;r.name=s[1].slice(1),r.name===""&&this.unnamedAtrule(r,s),this.init(r,s[2]);let e,t,i,n=!1,p=!1,c=[],u=[];for(;!this.tokenizer.endOfFile();){if(s=this.tokenizer.nextToken(),e=s[0],e==="("||e==="["?u.push(e==="("?")":"]"):e==="{"&&u.length>0?u.push("}"):e===u[u.length-1]&&u.pop(),u.length===0)if(e===";"){r.source.end=this.getPosition(s[2]),r.source.end.offset++,this.semicolon=!0;break}else if(e==="{"){p=!0;break}else if(e==="}"){if(c.length>0){for(i=c.length-1,t=c[i];t&&t[0]==="space";)t=c[--i];t&&(r.source.end=this.getPosition(t[3]||t[2]),r.source.end.offset++)}this.end(s);break}else c.push(s);else c.push(s);if(this.tokenizer.endOfFile()){n=!0;break}}r.raws.between=this.spacesAndCommentsFromEnd(c),c.length?(r.raws.afterName=this.spacesAndCommentsFromStart(c),this.raw(r,"params",c),n&&(s=c[c.length-1],r.source.end=this.getPosition(s[3]||s[2]),r.source.end.offset++,this.spaces=r.raws.between,r.raws.between="")):(r.raws.afterName="",r.params=""),p&&(r.nodes=[],this.current=r)}checkMissedSemicolon(s){let r=this.colon(s);if(r===!1)return;let e=0,t;for(let i=r-1;i>=0&&(t=s[i],!(t[0]!=="space"&&(e+=1,e===2)));i--);throw this.input.error("Missed semicolon",t[0]==="word"?t[3]+1:t[2])}colon(s){let r=0,e,t,i;for(let[n,p]of s.entries()){if(t=p,i=t[0],i==="("&&(r+=1),i===")"&&(r-=1),r===0&&i===":")if(!e)this.doubleColon(t);else{if(e[0]==="word"&&e[1]==="progid")continue;return n}e=t}return!1}comment(s){let r=new x;this.init(r,s[2]),r.source.end=this.getPosition(s[3]||s[2]),r.source.end.offset++;let e=s[1].slice(2,-2);if(!e.trim())r.text="",r.raws.left=e,r.raws.right="";else{let t=e.match(/^(\s*)([^]*\S)(\s*)$/);r.text=t[2],r.raws.left=t[1],r.raws.right=t[3]}}createTokenizer(){this.tokenizer=b(this.input)}decl(s,r){let e=new v;this.init(e,s[0][2]);let t=s[s.length-1];t[0]===";"&&(this.semicolon=!0,s.pop()),e.source.end=this.getPosition(t[3]||t[2]||w(s)),e.source.end.offset++;let i=0;for(;s[i][0]!=="word";)i===s.length-1&&this.unknownWord([s[i]]),i++;e.raws.before+=S(s,0,i),e.source.start=this.getPosition(s[i][2]);let n=i;for(;i<s.length;){let h=s[i][0];if(h===":"||h==="space"||h==="comment")break;i++}e.prop=S(s,n,i);let p=i,c;for(;i<s.length&&(c=s[i],i++,c[0]!==":");)c[0]==="word"&&/\w/.test(c[1])&&this.unknownWord([c]);e.raws.between=S(s,p,i),(e.prop[0]==="_"||e.prop[0]==="*")&&(e.raws.before+=e.prop[0],e.prop=e.prop.slice(1));let u=i;for(;i<s.length;){let h=s[i][0];if(h!=="space"&&h!=="comment")break;i++}let l=s.slice(u,i);s=s.slice(i),this.precheckMissedSemicolon(s);for(let h=s.length-1;h>=0;h--){if(c=s[h],c[1].toLowerCase()==="!important"){e.important=!0;let C=this.stringFrom(s,h);C=this.spacesFromEnd(s)+C,C!==" !important"&&(e.raws.important=C);break}else if(c[1].toLowerCase()==="important"){let C=s.slice(0),R="";for(let E=h;E>0;E--){let A=C[E][0];if(R.trim().startsWith("!")&&A!=="space")break;R=C.pop()[1]+R}R.trim().startsWith("!")&&(e.important=!0,e.raws.important=R,s=C)}if(c[0]!=="space"&&c[0]!=="comment")break}s.some(h=>h[0]!=="space"&&h[0]!=="comment")&&(e.raws.between+=l.map(h=>h[1]).join(""),l=[]),this.raw(e,"value",l.concat(s),r),e.value.includes(":")&&!r&&this.checkMissedSemicolon(s)}doubleColon(s){throw this.input.error("Double colon",{offset:s[2]},{offset:s[2]+s[1].length})}emptyRule(s){let r=new y;this.init(r,s[2]),r.selector="",r.raws.between="",this.current=r}end(s){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(s[2]),this.current.source.end.offset++,this.current=this.current.parent):this.unexpectedClose(s)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.root.source.end=this.getPosition(this.tokenizer.position())}freeSemicolon(s){if(this.spaces+=s[1],this.current.nodes){let r=this.current.nodes[this.current.nodes.length-1];r&&r.type==="rule"&&!r.raws.ownSemicolon&&(r.raws.ownSemicolon=this.spaces,this.spaces="",r.source.end=this.getPosition(s[2]),r.source.end.offset++)}}getPosition(s){let r=this.input.fromOffset(s);return{column:r.col,line:r.line,offset:s}}init(s,r){this.current.push(s),s.source={input:this.input,start:this.getPosition(r)},s.raws.before=this.spaces,this.spaces="",s.type!=="comment"&&(this.semicolon=!1)}other(s){let r=!1,e=null,t=!1,i=null,n=[],p=s[1].startsWith("--"),c=[],u=s;for(;u;){if(e=u[0],c.push(u),e==="("||e==="[")i||(i=u),n.push(e==="("?")":"]");else if(p&&t&&e==="{")i||(i=u),n.push("}");else if(n.length===0)if(e===";")if(t){this.decl(c,p);return}else break;else if(e==="{"){this.rule(c);return}else if(e==="}"){this.tokenizer.back(c.pop()),r=!0;break}else e===":"&&(t=!0);else e===n[n.length-1]&&(n.pop(),n.length===0&&(i=null));u=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(r=!0),n.length>0&&this.unclosedBracket(i),r&&t){if(!p)for(;c.length&&(u=c[c.length-1][0],!(u!=="space"&&u!=="comment"));)this.tokenizer.back(c.pop());this.decl(c,p)}else this.unknownWord(c)}parse(){let s;for(;!this.tokenizer.endOfFile();)switch(s=this.tokenizer.nextToken(),s[0]){case"space":this.spaces+=s[1];break;case";":this.freeSemicolon(s);break;case"}":this.end(s);break;case"comment":this.comment(s);break;case"at-word":this.atrule(s);break;case"{":this.emptyRule(s);break;default:this.other(s);break}this.endFile()}precheckMissedSemicolon(){}raw(s,r,e,t){let i,n,p=e.length,c="",u=!0,l,a;for(let h=0;h<p;h+=1)i=e[h],n=i[0],n==="space"&&h===p-1&&!t?u=!1:n==="comment"?(a=e[h-1]?e[h-1][0]:"empty",l=e[h+1]?e[h+1][0]:"empty",!g[a]&&!g[l]?c.slice(-1)===","?u=!1:c+=i[1]:u=!1):c+=i[1];if(!u){let h=e.reduce((C,R)=>C+R[1],"");s.raws[r]={raw:h,value:c}}s[r]=c}rule(s){s.pop();let r=new y;this.init(r,s[0][2]),r.raws.between=this.spacesAndCommentsFromEnd(s),this.raw(r,"selector",s),this.current=r}spacesAndCommentsFromEnd(s){let r,e="";for(;s.length&&(r=s[s.length-1][0],!(r!=="space"&&r!=="comment"));)e=s.pop()[1]+e;return e}spacesAndCommentsFromStart(s){let r,e="";for(;s.length&&(r=s[0][0],!(r!=="space"&&r!=="comment"));)e+=s.shift()[1];return e}spacesFromEnd(s){let r,e="";for(;s.length&&(r=s[s.length-1][0],r==="space");)e=s.pop()[1]+e;return e}stringFrom(s,r){let e="";for(let t=r;t<s.length;t++)e+=s[t][1];return s.splice(r,s.length-r),e}unclosedBlock(){let s=this.current.source.start;throw this.input.error("Unclosed block",s.line,s.column)}unclosedBracket(s){throw this.input.error("Unclosed bracket",{offset:s[2]},{offset:s[2]+1})}unexpectedClose(s){throw this.input.error("Unexpected }",{offset:s[2]},{offset:s[2]+1})}unknownWord(s){throw this.input.error("Unknown word "+s[0][1],{offset:s[0][2]},{offset:s[0][2]+s[0][1].length})}unnamedAtrule(s,r){throw this.input.error("At-rule without name",{offset:r[2]},{offset:r[2]+r[1].length})}}return xe=o,xe}var be,st;function Me(){if(st)return be;st=1;let d=_(),x=Q(),v=kt();function m(y,b){let g=new x(y,b),w=new v(g);try{w.parse()}catch(S){throw S}return w.root}return be=m,m.default=m,d.registerParse(m),be}var ve,nt;function wt(){if(nt)return ve;nt=1;let d=_(),{my:x}=J();class v{constructor(y,b={}){if(this.type="warning",this.text=y,b.node&&b.node.source){b.node[x]||d.rebuild(b.node);let g=b.node.rangeBy(b);this.line=g.start.line,this.column=g.start.column,this.endLine=g.end.line,this.endColumn=g.end.column}for(let g in b)this[g]=b[g]}toString(){return this.node?this.node.error(this.text,{index:this.index,plugin:this.plugin,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text}}return ve=v,v.default=v,ve}var Se,ot;function Le(){if(ot)return Se;ot=1;let d=wt();class x{get content(){return this.css}constructor(m,y,b){this.processor=m,this.messages=[],this.root=y,this.opts=b,this.css="",this.map=void 0}toString(){return this.css}warn(m,y={}){y.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(y.plugin=this.lastPlugin.postcssPlugin);let b=new d(m,y);return this.messages.push(b),b}warnings(){return this.messages.filter(m=>m.type==="warning")}}return Se=x,x.default=x,Se}var Ce,lt;function xt(){if(lt)return Ce;lt=1;let d=_(),x=ke(),v=yt(),m=Me(),y=Le(),b=D(),g=$(),{isClean:w,my:S}=J();const o={atrule:"AtRule",comment:"Comment",decl:"Declaration",document:"Document",root:"Root",rule:"Rule"},f={AtRule:!0,AtRuleExit:!0,Comment:!0,CommentExit:!0,Declaration:!0,DeclarationExit:!0,Document:!0,DocumentExit:!0,Once:!0,OnceExit:!0,postcssPlugin:!0,prepare:!0,Root:!0,RootExit:!0,Rule:!0,RuleExit:!0},s={Once:!0,postcssPlugin:!0,prepare:!0},r=0;function e(u){return typeof u=="object"&&typeof u.then=="function"}function t(u){let l=!1,a=o[u.type];return u.type==="decl"?l=u.prop.toLowerCase():u.type==="atrule"&&(l=u.name.toLowerCase()),l&&u.append?[a,a+"-"+l,r,a+"Exit",a+"Exit-"+l]:l?[a,a+"-"+l,a+"Exit",a+"Exit-"+l]:u.append?[a,r,a+"Exit"]:[a,a+"Exit"]}function i(u){let l;return u.type==="document"?l=["Document",r,"DocumentExit"]:u.type==="root"?l=["Root",r,"RootExit"]:l=t(u),{eventIndex:0,events:l,iterator:0,node:u,visitorIndex:0,visitors:[]}}function n(u){let l=[u];for(;l.length>0;){let a=l.pop();if(a[w]=!1,a.nodes)for(let h of a.nodes)l.push(h)}return u}let p={};class c{get content(){return this.stringify().content}get css(){return this.stringify().css}get map(){return this.stringify().map}get messages(){return this.sync().messages}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){return this.sync().root}get[Symbol.toStringTag](){return"LazyResult"}constructor(l,a,h){this.stringified=!1,this.processed=!1;let C;if(typeof a=="object"&&a!==null&&(a.type==="root"||a.type==="document"))C=n(a);else if(a instanceof c||a instanceof y)C=n(a.root),a.map&&(typeof h.map>"u"&&(h.map={}),h.map.inline||(h.map.inline=!1),h.map.prev=a.map);else{let R=m;h.syntax&&(R=h.syntax.parse),h.parser&&(R=h.parser),R.parse&&(R=R.parse);try{C=R(a,h)}catch(E){this.processed=!0,this.error=E}C&&!C[S]&&d.rebuild(C)}this.result=new y(l,C,h),this.helpers={...p,postcss:p,result:this.result},this.plugins=this.processor.plugins.map(R=>typeof R=="object"&&R.prepare?{...R,...R.prepare(this.result)}:R)}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing||(this.processing=this.runAsync()),this.processing)}catch(l){return this.async().catch(l)}finally(l){return this.async().then(l,l)}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(l,a){let h=this.result.lastPlugin;try{a&&a.addToError(l),this.error=l,l.name==="CssSyntaxError"&&!l.plugin?(l.plugin=h.postcssPlugin,l.setMessage()):h.postcssVersion}catch(C){console&&console.error&&console.error(C)}return l}prepareVisitors(){this.listeners={};let l=(a,h,C)=>{this.listeners[h]||(this.listeners[h]=[]),this.listeners[h].push([a,C])};for(let a of this.plugins)if(typeof a=="object")for(let h in a){if(!f[h]&&/^[A-Z]/.test(h))throw new Error(`Unknown event ${h} in ${a.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!s[h])if(typeof a[h]=="object")for(let C in a[h])C==="*"?l(a,h,a[h][C]):l(a,h+"-"+C.toLowerCase(),a[h][C]);else typeof a[h]=="function"&&l(a,h,a[h])}this.hasListener=Object.keys(this.listeners).length>0}async runAsync(){this.plugin=0;for(let l=0;l<this.plugins.length;l++){let a=this.plugins[l],h=this.runOnRoot(a);if(e(h))try{await h}catch(C){throw this.handleError(C)}}if(this.prepareVisitors(),this.hasListener){let l=this.result.root;for(;!l[w];){l[w]=!0;let a=[i(l)];for(;a.length>0;){let h=this.visitTick(a);if(e(h))try{await h}catch(C){let R=a[a.length-1].node;throw this.handleError(C,R)}}}if(this.listeners.OnceExit)for(let[a,h]of this.listeners.OnceExit){this.result.lastPlugin=a;try{if(l.type==="document"){let C=l.nodes.map(R=>h(R,this.helpers));await Promise.all(C)}else await h(l,this.helpers)}catch(C){throw this.handleError(C)}}}return this.processed=!0,this.stringify()}runOnRoot(l){this.result.lastPlugin=l;try{if(typeof l=="object"&&l.Once){if(this.result.root.type==="document"){let a=this.result.root.nodes.map(h=>l.Once(h,this.helpers));return e(a[0])?Promise.all(a):a}return l.Once(this.result.root,this.helpers)}else if(typeof l=="function")return l(this.result.root,this.result)}catch(a){throw this.handleError(a)}}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let l=this.result.opts,a=g;l.syntax&&(a=l.syntax.stringify),l.stringifier&&(a=l.stringifier),a.stringify&&(a=a.stringify);let h=this.result.root.source;if(l.map===void 0&&!(h&&h.input&&h.input.map)){let E="";return a(this.result.root,A=>{E+=A}),this.result.css=E,this.result}let R=new v(a,this.result.root,this.result.opts).generate();return this.result.css=R[0],this.result.map=R[1],this.result}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let l of this.plugins){let a=this.runOnRoot(l);if(e(a))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let l=this.result.root;for(;!l[w];)l[w]=!0,this.walkSync(l);if(this.listeners.OnceExit)if(l.type==="document")for(let a of l.nodes)this.visitSync(this.listeners.OnceExit,a);else this.visitSync(this.listeners.OnceExit,l)}return this.result}then(l,a){return this.async().then(l,a)}toString(){return this.css}visitSync(l,a){for(let[h,C]of l){this.result.lastPlugin=h;let R;try{R=C(a,this.helpers)}catch(E){throw this.handleError(E,a.proxyOf)}if(a.type!=="root"&&a.type!=="document"&&!a.parent)return!0;if(e(R))throw this.getAsyncError()}}visitTick(l){let a=l[l.length-1],{node:h,visitors:C}=a;if(h.type!=="root"&&h.type!=="document"&&!h.parent){l.pop();return}if(C.length>0&&a.visitorIndex<C.length){let[E,A]=C[a.visitorIndex];a.visitorIndex+=1,a.visitorIndex===C.length&&(a.visitors=[],a.visitorIndex=0),this.result.lastPlugin=E;try{return A(h.toProxy(),this.helpers)}catch(M){throw this.handleError(M,h)}}if(a.iterator!==0){let E=a.iterator;a.descending&&(a.descending=!1,h.indexes[E]+=1);let A;for(;A=h.nodes[h.indexes[E]];){if(!A[w]){A[w]=!0,a.descending=!0,l.push(i(A));return}h.indexes[E]+=1}a.iterator=0,delete h.indexes[E]}let R=a.events;for(;a.eventIndex<R.length;){let E=R[a.eventIndex];if(a.eventIndex+=1,E===r){h.nodes&&h.nodes.length&&(h[w]=!0,a.iterator=h.getIterator());return}else if(this.listeners[E]){a.visitors=this.listeners[E];return}}l.pop()}walkSync(l){l[w]=!0;let a=[{eventIndex:0,events:t(l),iterator:0,node:l}];for(;a.length>0;){let h=a[a.length-1],C=h.node;if(h.iterator!==0){let R=h.iterator;h.descending&&(h.descending=!1,C.indexes[R]+=1);let E,A=!1;for(;E=C.nodes[C.indexes[R]];){if(!E[w]){E[w]=!0,h.descending=!0,a.push({eventIndex:0,events:t(E),iterator:0,node:E}),A=!0;break}C.indexes[R]+=1}if(A)continue;h.iterator=0,delete C.indexes[R]}if(h.eventIndex<h.events.length){let R=h.events[h.eventIndex];if(h.eventIndex+=1,R===r)C.nodes&&C.nodes.length&&(h.iterator=C.getIterator());else{let E=this.listeners[R];E&&this.visitSync(E,C.toProxy())&&a.pop()}continue}a.pop()}}warnings(){return this.sync().warnings()}}return c.registerPostcss=u=>{p=u},Ce=c,c.default=c,b.registerLazyResult(c),x.registerLazyResult(c),Ce}var Re,at;function It(){if(at)return Re;at=1;let d=yt(),x=Me(),v=Le(),m=$();class y{get content(){return this.result.css}get css(){return this.result.css}get map(){return this.result.map}get messages(){return[]}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){if(this._root)return this._root;let g,w=x;try{g=w(this._css,this._opts)}catch(S){this.error=S}if(this.error)throw this.error;return this._root=g,g}get[Symbol.toStringTag](){return"NoWorkResult"}constructor(g,w,S){w=w.toString(),this.stringified=!1,this._processor=g,this._css=w,this._opts=S,this._map=void 0;let o=m;this.result=new v(this._processor,void 0,this._opts),this.result.css=w;let f=this;Object.defineProperty(this.result,"root",{get(){return f.root}});let s=new d(o,void 0,this._opts,w);if(s.isMap()){let[r,e]=s.generate();r&&(this.result.css=r),e&&(this.result.map=e)}else s.clearAnnotation(),this.result.css=s.css}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}catch(g){return this.async().catch(g)}finally(g){return this.async().then(g,g)}sync(){if(this.error)throw this.error;return this.result}then(g,w){return this.async().then(g,w)}toString(){return this._css}warnings(){return[]}}return Re=y,y.default=y,Re}var Oe,ut;function Mt(){if(ut)return Oe;ut=1;let d=ke(),x=xt(),v=It(),m=D();class y{constructor(g=[]){this.version="8.5.28",this.plugins=this.normalize(g)}normalize(g){let w=[];for(let S of g)if(S.postcss===!0?S=S():S.postcss&&(S=S.postcss),typeof S=="object"&&Array.isArray(S.plugins))w=w.concat(S.plugins);else if(typeof S=="object"&&S.postcssPlugin)w.push(S);else if(typeof S=="function")w.push(S);else if(!(typeof S=="object"&&(S.parse||S.stringify)))throw new Error(S+" is not a PostCSS plugin");return w}process(g,w={}){return!this.plugins.length&&!w.parser&&!w.stringifier&&!w.syntax?new v(this,g,w):new x(this,g,w)}use(g){return this.plugins=this.plugins.concat(this.normalize([g])),this}}return Oe=y,y.default=y,m.registerProcessor(y),d.registerProcessor(y),Oe}var Ae,ft;function Lt(){if(ft)return Ae;ft=1;var d={};let x=Pe(),v=H(),m=_(),y=Ee(),b=V(),g=ke(),w=Et(),S=Q(),o=xt(),f=gt(),s=G(),r=Me(),e=Mt(),t=Le(),i=D(),n=Ie(),p=$(),c=wt();function u(...l){return l.length===1&&Array.isArray(l[0])&&(l=l[0]),new e(l)}return u.plugin=function(a,h){let C=!1;function R(...A){console&&console.warn&&!C&&(C=!0,console.warn(a+`: postcss.plugin was deprecated. Migration guide:
|
|
28
|
+
https://evilmartians.com/chronicles/postcss-8-plugin-migration`),d.LANG&&d.LANG.startsWith("zh")&&console.warn(a+`: 里面 postcss.plugin 被弃用. 迁移指南:
|
|
29
|
+
https://www.w3ctech.com/topic/2226`));let M=h(...A);return M.postcssPlugin=a,M.postcssVersion=new e().version,M}let E;return Object.defineProperty(R,"postcss",{get(){return E||(E=R()),E}}),R.process=function(A,M,I){return u([R(I)]).process(A,M)},R},u.stringify=p,u.parse=r,u.fromJSON=w,u.list=f,u.comment=l=>new v(l),u.atRule=l=>new x(l),u.decl=l=>new b(l),u.rule=l=>new n(l),u.root=l=>new i(l),u.document=l=>new g(l),u.CssSyntaxError=y,u.Declaration=b,u.Container=m,u.Processor=e,u.Document=g,u.Comment=v,u.Warning=c,u.AtRule=x,u.Result=t,u.Input=S,u.Rule=n,u.Root=i,u.Node=s,o.registerPostcss(u),Ae=u,u.default=u,Ae}var Nt=Lt();const k=Rt(Nt);k.stringify;k.fromJSON;k.plugin;k.parse;k.list;k.document;k.comment;k.atRule;k.rule;k.decl;k.root;k.CssSyntaxError;k.Declaration;k.Container;k.Processor;k.Document;k.Comment;k.Warning;k.AtRule;k.Result;k.Input;k.Rule;k.Root;k.Node;const Ut=new Set(["media","supports","container","layer","scope"]),ht=new Set(["charset","import","namespace"]),ct=/^(html|body|:root)(?![\w-])/i,pt=/[\s>+~]/,Bt="http://vgai.invalid";function Xt({css:d,scopeSelector:x,styleSheetPath:v}){const m=k.parse(d,{from:void 0});v!==void 0&&m.walkDecls(o=>{const f=Tt(o.value,v);f!==o.value&&(o.value=f)});const y=[];m.each(o=>{o.type==="atrule"&&(Ut.has(o.name.replace(/^-\w+-/,"").toLowerCase())||y.push(o))});for(const o of y)o.remove();m.walkRules(o=>{const f=Dt(o.selectors.map(_t));f.length>0&&(o.selectors=f)}),m.walkAtRules("media",o=>{const f=Ft(o.params);f!==null&&(o.name="container",o.params=f)});const b=k.atRule({name:"scope",params:`(${x})`,nodes:[],raws:{before:`
|
|
30
|
+
`,afterName:" ",between:" ",after:`
|
|
31
|
+
`}});b.append(m.nodes.map(o=>o.clone())),b.append(k.rule({selector:":scope",nodes:[k.decl({prop:"container-type",value:"inline-size"})],raws:{before:`
|
|
32
|
+
`,between:" ",after:" "}})),m.removeAll(),b.first&&(b.first.raws.before=`
|
|
33
|
+
`);const g=y.filter(o=>ht.has(o.name.toLowerCase())),w=y.filter(o=>!ht.has(o.name.toLowerCase())),S=k.root();for(const o of[...g,...w])S.append(o);return S.append(b),S.toString()}function _t(d){const x=qt(d);let v=!1;const m=x.map(y=>y.combinator||!ct.test(y.text)?y:(v=!0,{...y,text:y.text.replace(ct,":scope")}));return v?zt(m).map(y=>y.text).join(""):d}function qt(d){const x=[];let v=0,m=null,y="";const b=g=>{y.length>0&&x.push({text:y,combinator:g}),y=""};for(let g=0;g<d.length;g+=1){const w=d[g];if(m){y+=w,w===m&&d[g-1]!=="\\"&&(m=null);continue}if(w==='"'||w==="'"){m=w,y+=w;continue}if(w==="("||w==="["?v+=1:(w===")"||w==="]")&&(v-=1),v===0&&pt.test(w)){let S="",o=g;for(;o<d.length&&pt.test(d[o]);)S+=d[o],o+=1;b(!1),x.push({text:S,combinator:!0}),g=o-1;continue}y+=w}return b(!1),x}function zt(d){const x=[];for(const v of d){const m=x.at(-1),y=x.at(-2);if(v.text===":scope"&&m?.combinator===!0&&m.text.trim()===""&&y?.text===":scope"){x.pop();continue}x.push(v)}return x}function Dt(d){const x=new Set,v=[];for(const m of d){const y=m.trim();y.length===0||x.has(y)||(x.add(y),v.push(y))}return v}function Tt(d,x){return d.replace(/\burl\(\s*(?:"([^"]*)"|'([^']*)'|([^)'"\s]*))\s*\)/gi,(v,m,y,b)=>{const g=m??y??b??"";if(g.length===0||/^(?:[a-z][a-z0-9+.-]*:|\/\/|\/|#)/i.test(g))return v;try{const w=new URL(g,`${Bt}${x}`);return`url("${w.pathname}${w.search}${w.hash}")`}catch{return v}})}function Ft(d){let x=d.trim();if(x=x.replace(/^only\s+/i,""),x=x.replace(/^(screen|all)\s+and\s+/i,""),/^(screen|all)$/i.test(x)||/,|\bnot\b|\bor\b/i.test(x))return null;const v=x.split(/\s+and\s+/i),m=/^\(\s*((min-|max-)?(width|height)\s*:|(width|height)\s*[<>=])[^()]*\)$/i;return v.every(y=>m.test(y.trim()))?x:null}export{Xt as scopeGameCss};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{lb as ht,lc as be,ld as gt,fP as vt,aY as X,le as yt,lf as we,lg as xt,lh as Se,a4 as H,a5 as ue,li as bt,lj as wt,aa as J,ab as O,ad as de,lk as St,a9 as $e,ll as jt,lm as Et,dZ as Te,aF as ze,gq as Mt,gr as It,gs as Rt,gt as Dt,q as ie,ao as h,V as Pt,fW as Ct,fX as je,fZ as At,ln as Ft,e6 as Ne,kX as _t,fr as kt,lo as $t,p as Ge}from"./index-GIL7oGEO.js";import{a as s}from"./jsx-runtime-DPjLkJKQ.js";import{r}from"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";import{u as Tt,d as zt,c as Nt}from"./frame-debugger-store-D1Mf_5up.js";import{meterPercent as Gt}from"./audio-meter-CyiToeUW.js";import{p as Oe}from"./utility-view-state-BHypxA33.js";import{P as Ot}from"./PlayBar-BR-Vg3Jb.js";import{a as Ee,R as Vt}from"./ResolutionPicker-C67vs1F3.js";import{setUserData as Ve}from"./user-data-BB2Of6Ht.js";import{D as pe,E as Ht,F as ne,G as Bt,H as He,I as Be,J as Le,K as We,u as Lt,v as Wt,L as me,t as Y,M as Ut,N as qt,O as Xt,P as se,Q as Ue,R as Me,S as qe,T as Kt,U as Xe,i as Yt,V as Zt,W as Ie,X as Jt,a as Ke,Y as Qt}from"./play-mode-BFU2PCkG.js";import{bJ as en,z as Ye,ap as tn,aZ as nn,H as sn,aX as fe,M as Re,cq as on,V as W,bh as rn,aB as Ze,aC as De,a_ as an,b1 as ln}from"./three.module-D396a9Mn.js";import{e as cn,S as un}from"./surface-state-DaxyruCj.js";import{d as dn}from"./surface-content-Dg9Kkazf.js";import{resolvePresentedSize as pn,fitPresentation as mn}from"./presentation-BPP5pXeQ.js";import{a as fn,X as Je}from"./active-ingest-CT6jSGhr.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./index-CinJrH5C.js";import"./configurations-DTBMdaTL.js";import"./ingest-source-persistence-C_6Hiyra.js";import"./capability-coverage-Czas4C18.js";import"./game-contract-seams-a5YXejOu.js";import"./object-marks-DwvIEBOK.js";import"./native-debug-module-CWicoSGD.js";import"./native-entry-surface-BE8LJNdu.js";import"./debug-registry-Dgvitx8M.js";import"./playtest-BXIL1JEF.js";import"./instruments-CKR02Y8I.js";import"./frame-pacing-D5acoOzO.js";import"./edit-mode-authoring-B47TfLqu.js";import"./json-history-resource-BbxllWfV.js";import"./binding-resolver-Dsh-6Vor.js";import"./adapter-surface-Y37Nzcyw.js";import"./entry-adjudication-Cq8Yeb74.js";import"./r3f-root-factory-z9llD1OU.js";import"./register-render-vitals-BiZk29b2.js";import"./render-census-BrQX_CXv.js";import"./structural-signature-0w-i_ats.js";import"./render-vitals-BZ5HtvMi.js";import"./static-batch-advisor-B13QEH7d.js";import"./webgl-frame-capture-FlF9zQmW.js";import"./world-state-BWG-IcOd.js";import"./frame-selector-cache-cCeUbcjG.js";import"./dev-build-gDYrq68M.js";import"./game-input-seams-CIQdetRw.js";import"./seeded-random-i3mtgBKZ.js";import"./render-seed-DF4JHy7P.js";import"./frame-delta-D2nsw_Ht.js";import"./events-156d8d12.esm-ErOhDXXB.js";import"./index-bQE2NA0D.js";import"./realm-services-CobQsq_X.js";import"./canvas-entry-runtime-SfBxaR9M.js";import"./three-ingest-runtime-QzDYk6tU.js";import"./EffectComposer-DQxfsXBZ.js";import"./CopyShader-BzTUYzf6.js";import"./ShaderPass-QYRpPuFJ.js";import"./CSS3DRenderer-CL7ABLVK.js";import"./relative-path-guard-GiM7Lsz8.js";import"./react-root-CEz5NTck.js";import"./editor-presentation-activity-C7SNSmTd.js";import"./pixi-story-model-DNkfnWUV.js";import"./viewport-root-presentation-CWsE56K6.js";import"./mounted-authoring-Dmg5xmhP.js";import"./three-CDSueJyJ.js";import"./viewport-pick-context-DkawXbEi.js";import"./logger-Dqis-7W1.js";import"./run-ticks-settled-C4ksViyA.js";import"./three-authoring-adapter-CmSQ3Vui.js";import"./source-persistence-backend-C-aR-B_Y.js";import"./three-projection-core-BmKMZ-nf.js";import"./body-marks-h_xDxiDE.js";import"./structural-ids-Dc-7rEwi.js";import"./object3d-authoring-subject-CH5sI2oP.js";import"./rapier-physics-adapter-CaZqWLu0.js";import"./r3f-physics-binding-BBo8oma9.js";import"./deferred-ingest-play-DCJi_Pgu.js";import"./rrweb-Cd2ifIRP.js";import"./react-world-authoring-adapter-DmrwM3py.js";import"./board-guides-DziKSTss.js";import"./writer-B-KovzkA.js";import"./story-arg-descriptors-Ek86ExX7.js";import"./inspect-BZfi3mmo.js";import"./inference-diagnostics-Dhmtfbq_.js";const Qe=8,oe=1e3/60;function hn(e,t=Qe){return!(e>0)||t<=0?0:Math.min(t,Math.max(1,Math.round(Gt(e)/100*t)))}function Pe(e,t){const n=e.filter(a=>a.id>t),o=n.at(-1)?.id??t,i=n.map(a=>a.intervalMs).filter(a=>Number.isFinite(a)&&a>0).sort((a,m)=>a-m);if(i.length===0)return{frameId:o,intervalMs:null};const l=Math.floor((i.length-1)*.95);return{frameId:o,intervalMs:i[l]??null}}function gn(e){const t=e.slice(-3);return t.slice(-2).length===2&&t.slice(-2).every(n=>n>=50)?"danger":t.length===3&&t.every(n=>n>oe*1.05)?"warning":"normal"}function vn(e,t,n,o=50){if(e.length===0||t<=0||n<=0)return"";const i=Math.max(1,e.length-1);return e.map((l,a)=>{const m=a/i*t,d=Math.min(1,Math.max(0,l/o)),g=n-d*n;return`${m.toFixed(1)},${g.toFixed(1)}`}).join(" ")}const et="editor:muted",Ce={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:0}};function Ae(){try{return localStorage.getItem(et)==="1"}catch{return!1}}function yn(e){try{localStorage.setItem(et,e?"1":"0")}catch{}}function xn(e,t){const n=t.find(i=>i.id==="master")?.level;if(!e.isMuted()&&n!==void 0)return n;const o=t.filter(i=>i.id!=="master").map(i=>i.level);return o.length>0?Math.max(...o):n??0}function bn(){const e=X();r.useSyncExternalStore(e.subscribe,e.getShellSnapshot??e.getSnapshot);const t=e.playState==="playing",[n,o]=r.useState(!1),[i,l]=r.useState(0),[a,m]=r.useState(!1),[d,g]=r.useState(!1),[u,T]=r.useState(Ae),R=r.useRef(Ae()),E=r.useRef(new WeakMap),x=r.useRef(null),D=r.useSyncExternalStore(yt,we,we),v=xt();r.useEffect(()=>{const p=R.current||!t;for(const f of Se())E.current.get(f)!==p&&(f.setMuted(p),E.current.set(f,p))},[D,t]),r.useEffect(()=>{if(!v){l(0),m(!1),g(!1);return}const p=v.acquireMeters?.()??null;g(p!==null);const f=()=>{m(v.isMuted()),l(p?xn(v,p.read()):0)};f();const A=setInterval(f,100);return()=>{clearInterval(A),p?.dispose()}},[v]);const M=()=>{const p=!R.current,f=p||!t;for(const A of Se())A.resume?.(),A.setMuted(f),E.current.set(A,f);R.current=p,T(p),yn(p),m(f)},P=hn(i),z=v&&a&&!u&&!t?" (not playing)":"",C=v?a?"Audio muted":i>0?"Audio playing":"Audio quiet":"Audio unavailable";return s.jsxs("div",{className:"vgai-header-audio","data-muted":a||void 0,"data-available":!!v,children:[s.jsxs(H,{ref:x,type:"button",variant:"ghost",size:"compact",className:"vgai-header-telemetry-button","data-testid":"header-audio-telemetry","aria-label":`${C}; open audio controls`,"aria-haspopup":"menu","aria-expanded":n,title:`${C}${z}${d?"":" · level metering unavailable"}`,onClick:()=>o(p=>!p),children:[s.jsx(ue,{icon:a?bt:wt,size:"sm"}),s.jsx("span",{className:"vgai-audio-vu","aria-hidden":"true",children:Array.from({length:Qe},(p,f)=>s.jsx("i",{"data-filled":f<P||void 0},f))})]}),n&&s.jsx(J,{anchorRef:x,onDismiss:()=>o(!1),gap:3,children:s.jsx(O,{onClick:()=>{M(),o(!1)},children:u?"Unmute audio":"Mute audio"})})]})}function wn(){const e=Tt(),t=e?.profiler??null,[n,o]=r.useState(Ce),[i,l]=r.useState([]);r.useEffect(()=>{if(!t){o(Ce),l([]);return}const R=t.telemetryEnabled;t.telemetryEnabled=!0;const E=t.getSnapshot(),x=Pe(E.frames,0);let D=x.frameId;o(E),l(x.intervalMs===null?[]:[x.intervalMs]);let v=null;const M=()=>{v=null;const z=t.getSnapshot(),C=Pe(z.frames,D);D=C.frameId,o(z);const p=C.intervalMs;p!==null&&l(f=>[...f,p].slice(-24))},P=t.subscribe(()=>{v===null&&(v=setTimeout(M,500))});return()=>{P(),v!==null&&clearTimeout(v),R||(t.telemetryEnabled=!1)}},[t]);const a=i.at(-1)??null,m=vn(i,72,18),d=a?Math.round(1e3/a):n.fps>0?Math.round(n.fps):null,g=a??(n.fps>0?1e3/n.fps:null),u=gn(i),T=e?`${e.label}: ${d??"—"} FPS · ${g?.toFixed(1)??"—"} ms frame time · open Profiler`:"The active document has no live render loop to profile";return s.jsxs(H,{type:"button",variant:"ghost",size:"compact",className:"vgai-header-telemetry-button vgai-header-performance","data-testid":"header-performance-telemetry","data-performance-tone":u,disabled:!e,"aria-label":T,title:T,onClick:()=>Oe.open("profiler"),children:[s.jsxs("svg",{className:"vgai-performance-graph","aria-hidden":"true",viewBox:"0 0 72 18",width:"72",height:"18",children:[s.jsx("line",{className:"vgai-performance-budget",x1:"0",x2:"72",y1:18-oe/50*18,y2:18-oe/50*18}),m&&s.jsx("polyline",{className:"vgai-performance-sparkline",points:m})]}),s.jsxs("span",{className:"vgai-performance-readout",children:[s.jsxs("strong",{className:"vgai-header-fps",children:[d??"—"," FPS"]}),s.jsxs("span",{className:"vgai-header-frame-ms",children:[g?.toFixed(1)??"—"," ms"]})]})]})}function Sn(){return r.useSyncExternalStore(ht,be,be),gt().telemetry==="hidden"?null:s.jsxs(vt,{className:"vgai-header-telemetry vgai-chrome-island vgai-glass-island","data-island-scale":"compact",align:"center",gap:1,children:[s.jsx(bn,{}),s.jsx(wn,{})]})}let Z=!1,re=0,w=null,N=null;const jn=new en(1,1,1,16,1,!0),En=new Ye({color:2280686,transparent:!0,opacity:.45,side:tn,depthWrite:!1}),Mn=new nn({color:16755200,transparent:!0,opacity:.9}),In=new sn(.12,12,8),Rn=new Ye({color:16755200,depthWrite:!1}),Dn=16724804,Pn=2280686;let $=[];function Fe(){return Z}function Cn(e){e!==Z&&(Z=e,e?re=requestAnimationFrame(tt):(cancelAnimationFrame(re),_n()))}function tt(){if(!Z)return;re=requestAnimationFrame(tt);const e=pe(),t=e?de().navigation?.crowdAgents?.()??[]:[];if(e!==N&&(N&&w&&N.remove(w),N=e,e&&(w||(w=new fe,w.name="crowd-debug-draw",Ve(w,"editorHelper",!0)),e.add(w))),!(!w||!e)){An(w,t.length);for(let n=0;n<t.length;n++)Fn($[n],t[n])}}function An(e,t){for(;$.length<t;){const n=new fe,o=En.clone(),i=new Re(jn,o),l=new on(new W(1,0,0),new W,1,16755200),a=new rn(new Ze,Mn),m=new Re(In,Rn);n.add(i),n.add(l),e.add(n),e.add(a),e.add(m),$.push({root:n,cylinder:i,cylinderMaterial:o,arrow:l,path:a,target:m})}for(;$.length>t;){const n=$.pop();e.remove(n.root),e.remove(n.path),e.remove(n.target),n.arrow.dispose(),n.path.geometry.dispose(),n.cylinderMaterial.dispose()}}function Fn(e,t){e.root.position.set(t.position.x,t.position.y,t.position.z),e.cylinder.scale.set(t.radius,t.height,t.radius),e.cylinder.position.y=t.height/2,e.cylinderMaterial.color.setHex(t.state==="invalid"?Dn:Pn);const n=t.corners??[];n.length>0?(e.path.visible=!0,e.path.geometry.setFromPoints([new W(t.position.x,t.position.y+.05,t.position.z),...n.map(i=>new W(i.x,i.y+.05,i.z))])):e.path.visible=!1,t.target&&n.length>0?(e.target.visible=!0,e.target.position.set(t.target.x,t.target.y+.05,t.target.z)):e.target.visible=!1;const o=Math.hypot(t.velocity.x,t.velocity.y,t.velocity.z);o>.01?(e.arrow.visible=!0,e.arrow.position.y=t.height/2,e.arrow.setDirection(new W(t.velocity.x/o,t.velocity.y/o,t.velocity.z/o)),e.arrow.setLength(Math.max(o*.5,.2))):e.arrow.visible=!1}function _n(){if(w){N?.remove(w);for(const e of $)e.arrow.dispose();w.clear()}$=[],w=null,N=null}function kn({onPresetChange:e}){const[t,n]=r.useState(!1),o=r.useRef(null),i=He(),l=i.kind==="fit";return s.jsxs("div",{className:"vgai-playbar-popover-anchor",children:[s.jsxs(H,{ref:o,variant:"ghost",size:"comfortable","aria-haspopup":"menu","aria-expanded":t,"aria-controls":t?"vgai-device-preset-menu":void 0,"data-testid":"device-preset-picker",onClick:()=>n(a=>!a),title:"Device preview — constrain the game to a device resolution + DPR. Phone/tablet presets show the safe area, set --vgai-safe-area-inset-top/right/bottom/left CSS vars on the game mount, and send mouse input as touch.",children:[s.jsx(ue,{icon:St,size:"md"}),s.jsx($e,{variant:"code",children:l?"Device":`${i.width}×${i.height}`})]}),t&&s.jsxs(J,{id:"vgai-device-preset-menu",anchorRef:o,className:"vgai-resolution-menu",gap:4,onDismiss:()=>n(!1),children:[Ht.map(a=>s.jsx(O,{role:"menuitemradio","aria-checked":a.id===i.id,"data-testid":`device-preset-${a.id}`,onSelect:()=>{e(a),n(!1)},children:a.label},a.id)),s.jsxs(O,{role:"menuitemcheckbox","aria-checked":ne(),"data-testid":"device-touch-toggle",onSelect:()=>Bt(!ne()),children:[ne()?"✓ ":" ","Pointer as touch"]})]})]})}function $n(){const e=jt(()=>Et()??null),n=zt(e)?.capture===!0;return s.jsx(H,{type:"button",size:"compact",variant:"ghost","data-testid":"game-capture-frame",className:"vgai-frame-capture-game-button",disabled:!n,title:n?"Capture one rendered frame and open the Frame debugger":"No render-debug adapter registered for this world — frame capture is unavailable",onClick:()=>{Nt(e),Oe.open("frame")},children:"Capture frame"})}let nt={label:"Fill",width:null,height:null},ae=1,st=0;const le=new Set;function V(){st++;for(const e of le)e()}function it(e){return le.add(e),()=>{le.delete(e)}}const ot=()=>st;function rt(){return nt}function at(e){nt=e,V()}function lt(e,t){return e.width!==null||!t?e:{label:`Project — ${t.width}×${t.height}`,width:t.width,height:t.height}}function Tn(e){return e?[lt({label:"Fill",width:null,height:null},e),...Ee.filter(t=>t.width!==null)]:Ee}function ct(e){Be(e.id),at(e.width===null||e.height===null?{label:"Fill",width:null,height:null}:{label:e.label,width:e.width,height:e.height})}function zn(e){e!==ae&&(ae=e,V())}function Nn(){return ae}function ut(e){return Array.from(e.children).filter(t=>t.dataset?.vgaiRootSurface==="true")}function Gn(e,t,n){for(const o of t)o.contains(e)||e.appendChild(o);if(n)for(const o of ut(n))e.appendChild(o)}function On({name:e}){return s.jsx("div",{"data-testid":"game-instance-name",style:{flex:"0 0 auto",padding:"3px 10px",background:h.surface.chrome,color:h.content.primary,borderBottom:`1px solid ${h.boundary.default}`,fontSize:11,fontWeight:600,userSelect:"none"},children:e})}function dt({name:e,testId:t,borderLeft:n,focused:o,onFocus:i,children:l}){return s.jsxs("div",{"data-testid":t,"data-focused":o||void 0,onPointerDownCapture:i,style:{flex:1,minWidth:0,height:"100%",display:"flex",flexDirection:"column",overflow:"hidden",position:"relative",cursor:i&&!o?"pointer":void 0,...n?{borderLeft:`1px solid ${h.boundary.default}`}:{}},children:[s.jsx(On,{name:e}),s.jsx("div",{style:{flex:1,minHeight:0,position:"relative",display:"flex",alignItems:"center",justifyContent:"center"},children:l}),o&&s.jsx("div",{"aria-hidden":!0,style:{position:"absolute",inset:0,pointerEvents:"none",zIndex:40,border:`2px solid ${h.accent.default}`,boxShadow:`inset 0 0 0 1px ${h.accent.default}`}})]})}function Vn({index:e}){const t=r.useRef(null),n=qe(e+1),o=r.useSyncExternalStore(Xe,Yt),[i,l]=r.useState(null),a=r.useSyncExternalStore(me,Y);return r.useEffect(()=>{const m=t.current;if(!m||!o)return;let d=null,g=!1;return Zt(m,n).then(u=>{g?Ie(u):(d=u,l(u))},u=>{Pt.error(`Failed to mount ${n}: ${u}`,"play-mode")}),()=>{g=!0,l(null),d&&Ie(d)}},[e,o]),s.jsx(dt,{name:n,testId:`game-instance-slot-${e+1}`,borderLeft:!0,focused:i!=null&&a===i,onFocus:i?()=>Ue(i):void 0,children:s.jsx("div",{ref:t,"data-vgai-instance-viewport":"",style:{position:"absolute",inset:0}})})}function Hn({style:e}){const t=r.useSyncExternalStore(Te,ze),o=X().playState!=="stopped",i=r.useRef(null);r.useSyncExternalStore(it,ot),r.useSyncExternalStore(Le,We);const l=r.useSyncExternalStore(Lt,Wt),a=l>0,m=r.useSyncExternalStore(me,Y),d=He(),g=rt(),[u,T]=r.useState({width:0,height:0}),[R,E]=r.useState(0),x=r.useRef(null),D=r.useSyncExternalStore(Mt,It),v=r.useSyncExternalStore(Rt,Dt),M=Kt(),P=fn(),z=M.length>0?M.map(c=>c.rootId):P?[P.worldId]:D.filter(c=>c.mechanism==="host-mount").map(c=>c.rootId),C=!!(x.current&&dn(x.current)),p=M.length>0?M.some(c=>c.hasRenderableContent):C,f=M.length>0||P!==null,A=o?cn({surface:"Game",rootIds:z,phase:f?"ready":"loading",content:f?p?"present":"empty":"unknown",readiness:D,failures:v}):null;r.useEffect(()=>{if(!o||!f||p)return;const c=window.setTimeout(()=>E(y=>y+1),250);return()=>window.clearTimeout(c)},[R,p,o,f]),r.useEffect(()=>{const c=i.current;if(!c||typeof MutationObserver>"u")return;const y=new MutationObserver(()=>E(I=>I+1));return y.observe(c,{childList:!0,subtree:!0,characterData:!0}),()=>y.disconnect()},[]),r.useEffect(()=>{const c=Ut();c.width!==null&&(ct(c),V())},[]);const Q=r.useRef([]),he=r.useCallback(c=>{if(c===x.current)return;!c&&x.current&&(Q.current=ut(x.current)),c&&(Gn(c,Q.current,x.current),Q.current=[]);const y=x.current;x.current=c,c?ie().workspace.liveDocument.setContainer(c):y&&ie().workspace.liveDocument.releaseContainer(y),c?qt(c):y&&Xt(y)},[]);r.useEffect(()=>{const c=i.current;if(!c)return;const y=new ResizeObserver(([I])=>{if(!I)return;const{width:K,height:xe}=I.contentRect;T(te=>te.width===K&&te.height===xe?te:{width:K,height:xe})});return y.observe(c),()=>y.disconnect()},[]);const mt=t?.config.resolution,F=pn(g,mt),ge=F.kind==="fill",ft=ge||a,B=F.kind==="logical"?F.width:null,L=F.kind==="logical"?F.height:null,ve=d.dpr;r.useEffect(()=>{const c=ve??Jt();a?u.width>0&&u.height>0&&se(u.width/(l+1),u.height,c):B===null||L===null?u.width>0&&u.height>0&&se(u.width,u.height,c):se(B,L,c)},[B,L,u.width,u.height,ve,o,a,l]);const ee=mn(u,{width:B??0,height:L??0},{allowUpscale:F.kind==="logical"&&F.allowUpscale}),_=ge?1:ee.scale;r.useEffect(()=>{zn(_)},[_]);const b=d.safeArea,ye={"--vgai-safe-area-inset-top":`${b?.top??0}px`,"--vgai-safe-area-inset-right":`${b?.right??0}px`,"--vgai-safe-area-inset-bottom":`${b?.bottom??0}px`,"--vgai-safe-area-inset-left":`${b?.left??0}px`};return s.jsx("div",{style:{overflow:"hidden",position:"relative",flexDirection:"column",...e},children:s.jsxs("div",{ref:i,style:{flex:1,overflow:"hidden",display:"flex",alignItems:"center",justifyContent:"center",position:"relative"},children:[(()=>{const c=ft?s.jsx("div",{ref:he,"data-testid":"game-runtime-container","aria-hidden":"true",style:{position:"absolute",inset:0,...o?{}:{visibility:"hidden"},...ye}},"game-mount-fill"):s.jsxs("div",{style:{position:"relative",width:ee.width,height:ee.height,overflow:"hidden",...o?{}:{visibility:"hidden"}},children:[s.jsx("div",{ref:he,"data-testid":"game-runtime-container","aria-hidden":"true",style:{width:B??0,height:L??0,transformOrigin:"top left",transform:`scale(${_})`,...ye}}),b&&s.jsx("div",{"data-testid":"device-safe-area-overlay",style:{position:"absolute",inset:0,pointerEvents:"none",zIndex:2},children:[["top",b.top,{top:0,left:0,right:0,height:b.top*_}],["bottom",b.bottom,{bottom:0,left:0,right:0,height:b.bottom*_}],["left",b.left,{top:0,bottom:0,left:0,width:b.left*_}],["right",b.right,{top:0,bottom:0,right:0,width:b.right*_}]].map(([y,I,K])=>I>0?s.jsx("div",{"data-testid":`device-safe-area-${y}`,style:{position:"absolute",...K,background:h.semantic.dangerFaint,boxShadow:`inset 0 0 0 1px ${h.semantic.dangerMuted}`}},y):null)})]},"game-mount-device");return a?s.jsxs(s.Fragment,{children:[s.jsx(dt,{name:qe(0),testId:"game-instance-slot-0",focused:m===Me(),onFocus:()=>Ue(Me()),children:c}),Array.from({length:l},(y,I)=>s.jsx(Vn,{index:I},I))]}):c})(),!o&&s.jsxs("div",{"data-testid":"game-stopped-placeholder",style:{position:"absolute",inset:0,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:6,background:h.surface.shell,color:h.content.dim,fontSize:11,pointerEvents:"none"},children:[s.jsx("span",{style:{color:h.content.primary,fontSize:13},children:"Game is stopped"}),s.jsx("span",{children:"Press Play to start the composed runtime."})]}),o&&s.jsx(un,{explanation:A,testId:"game-surface-status",style:{zIndex:30,background:h.surface.shell}})]})})}function _e(){return Ke().map(({id:e,name:t})=>`${e}\0${t}`).join("")}function Bn({instanceId:e}){const t=X();r.useSyncExternalStore(t.subscribe,t.getSnapshot,t.getSnapshot);const n=r.useSyncExternalStore(me,Y,Y),[,o]=r.useState(0);r.useEffect(()=>{const g=window.setInterval(()=>o(u=>u+1),250);return()=>window.clearInterval(g)},[]);const i=Je(e),l=$t(),a=i?(i.loop.activeTimeouts??0)+(i.loop.activeIntervals??0)+(i.loop.activeAnimationFrames??0)+i.loop.pending:0,m=i?i.listeners.window+i.listeners.document:0,d=[["Mount",e],["Simulation",t.playState==="paused"?"Paused":"Running"],["Input",n===e?"Keyboard focus":"Inactive"],["Input events",i?`${i.loop.input??0} observed · ${i.loop.inputBlocked??0} blocked`:"Not measured"],["Network",l?l.getConnectionState?.()??"Not reported by this adapter":"Not registered"],["Owned callbacks",String(a)],["Owned listeners",String(m)],["Realm globals",String(i?.globals??0)],["Browser storage",i?`Shared origin · ${i.storage.local.reads+i.storage.session.reads} reads · ${i.storage.local.writes+i.storage.session.writes} writes`:"Shared origin"]];return s.jsx("div",{role:"none",style:{display:"grid",gridTemplateColumns:"112px minmax(120px, 1fr)",gap:"4px 12px",padding:"8px 10px",fontSize:10,lineHeight:"15px"},children:d.map(([g,u])=>s.jsxs("div",{style:{display:"contents"},children:[s.jsx("span",{style:{color:h.content.dim},children:g}),s.jsx("span",{style:{color:h.content.primary,fontFamily:g==="Mount"?h.typography.mono:void 0,overflow:"hidden",textOverflow:"ellipsis"},children:u})]},g))})}function Ln(){r.useSyncExternalStore(Xe,_e,_e),r.useSyncExternalStore(Ct,je,je);const e=Ke(),t=At(),n=e.find(d=>d.id===t)??e[0],[o,i]=r.useState(!1),l=r.useRef(null);if(e.length<2||!n)return null;const m=(Je(n.id)?.loop.firedWhileHeld??0)>0;return s.jsxs("div",{className:"vgai-playbar-popover-anchor",children:[s.jsxs(H,{ref:l,variant:"ghost",size:"compact","aria-haspopup":"menu","aria-expanded":o,onClick:()=>i(d=>!d),title:`Runtime instruments inspect ${n.name}; agent-addressed commands are unchanged`,children:[s.jsx(ue,{icon:Ft,size:"sm",style:{color:m?h.semantic.warning:void 0}}),s.jsxs($e,{variant:"code",children:["Inspect ",n.name]}),s.jsx(Ne,{direction:"down"})]}),o&&s.jsxs(J,{anchorRef:l,gap:3,onDismiss:()=>i(!1),style:{minWidth:270},children:[e.map(d=>s.jsxs(O,{role:"menuitemradio","aria-checked":d.id===n.id,onSelect:()=>_t(d.id),children:[d.id===n.id?"✓ ":" ",d.name]},d.id)),s.jsx(kt,{}),s.jsx(Bn,{instanceId:n.id})]})]})}let q=!1,ce=0,S=null,G=null,U=null,j=null,k=0;function ke(){return q}function Wn(e){e!==q&&(q=e,e?ce=requestAnimationFrame(pt):(cancelAnimationFrame(ce),U?.setDebugDrawEnabled?.(!1),Kn()))}function pt(){if(!q)return;ce=requestAnimationFrame(pt);const e=pe(),t=e?Ge(de().physics):null;if(t!==U&&(U?.setDebugDrawEnabled?.(!1),U=t,t?.setDebugDrawEnabled?.(!0)),Un(e),!S||!e)return;const n=t?.contactPoints?.()??null;qn(S,n)}function Un(e){e!==G&&(G&&S&&G.remove(S),G=e,e&&(S||(S=new fe,S.name="physics-debug-draw",Ve(S,"editorHelper",!0)),e.add(S)))}function qn(e,t){const n=t?t.length/3:0;if(!j){k=64;const l=new Ze;l.setAttribute("position",new De(new Float32Array(k*3),3));const a=new an({color:16724821,size:10,sizeAttenuation:!1,depthTest:!1,transparent:!0,opacity:.95});j=new ln(l,a),j.renderOrder=999,j.frustumCulled=!1,e.add(j)}const o=j.geometry;if(n>k){for(;k<n;)k*=2;o.setAttribute("position",new De(new Float32Array(k*3),3))}const i=o.getAttribute("position");t&&n>0&&i.array.set(t),i.needsUpdate=!0,o.setDrawRange(0,n),j.visible=n>0}function Xn(){const e=pe(),n=(e?Ge(de().physics):null)?.debugDraw?.()??null;let o=!1;n&&e&&e.traverse(a=>{a===n&&(o=!0)});const i=n?.geometry.getAttribute("position"),l=j?.geometry.drawRange.count??0;return{enabled:q,wireframeInScene:o,wireframeVisible:n?.visible??!1,wireframeVertexCount:i?.count??0,contactMarkerCount:j?.visible&&Number.isFinite(l)?l:0}}typeof window<"u"&&(window.__vgaiPhysicsDebug=Xn);function Kn(){S&&(G?.remove(S),j&&(j.geometry.dispose(),j.material.dispose()),S.clear()),j=null,k=0,S=null,G=null,U=null}function Yn(){const[e,t]=r.useState(!1),n=r.useRef(null);return s.jsxs("div",{style:{position:"relative"},children:[s.jsxs(H,{ref:n,type:"button",variant:"outline",size:"compact","data-testid":"game-debug-menu","aria-haspopup":"menu","aria-expanded":e,"aria-controls":e?"vgai-game-debug-menu":void 0,onClick:()=>t(o=>!o),children:[s.jsx("span",{children:"Debug"}),s.jsx(Ne,{direction:"down"})]}),e&&s.jsxs(J,{id:"vgai-game-debug-menu",anchorRef:n,gap:3,onDismiss:()=>t(!1),style:{minWidth:190},children:[s.jsxs(O,{onClick:()=>{Cn(!Fe()),V()},children:[Fe()?"✓ ":" ","Crowd debug draw"]}),s.jsxs(O,{onClick:()=>{Wn(!ke()),V()},children:[ke()?"✓ ":" ","Physics debug draw"]})]})]})}function Zn(e){const t=r.useSyncExternalStore(Te,ze),n=X();return r.useSyncExternalStore(n.subscribe,n.getShellSnapshot??n.getSnapshot),r.useSyncExternalStore(it,ot),r.useSyncExternalStore(Le,We),s.jsxs("div",{"data-testid":"game-doc-toolbar",style:{display:"grid",alignItems:"center",gridTemplateColumns:"minmax(0, 1fr) auto minmax(0, 1fr)",width:"100%",gap:6,padding:"2px 8px"},children:[s.jsxs("div",{style:{display:"flex",alignItems:"center",minWidth:0,overflow:"auto"},children:[s.jsx(Ln,{}),s.jsx(kn,{onPresetChange:o=>{ct(o),V()}}),s.jsx(Vt,{resolution:lt(rt(),t?.config.resolution),options:Tn(t?.config.resolution),onResolutionChange:o=>{Be(Qt),at(o)},scale:Nn(),title:"Change game resolution"}),s.jsx(Yn,{}),n.playState!=="stopped"&&s.jsx($n,{})]}),s.jsx(Ot,{placement:"runtime"}),s.jsx("div",{style:{display:"flex",justifyContent:"flex-end",minWidth:0},children:s.jsx(Sn,{})})]})}function Jn(e){const t=X();r.useSyncExternalStore(t.subscribe,t.getShellSnapshot??t.getSnapshot);const n=t.playState!=="stopped";return s.jsxs("div",{style:{flex:1,position:"relative",display:"flex",flexDirection:"column"},children:[s.jsx(Hn,{style:{flex:1,position:"relative",display:"flex",flexDirection:"column",pointerEvents:"auto",...t.playState==="playing"?{outline:`2px solid ${h.semantic.success}`,outlineOffset:-2}:n?{outline:`2px solid ${h.semantic.warning}`,outlineOffset:-2}:{}}}),t.playState==="paused"&&s.jsx("div",{"data-testid":"game-paused-notice",style:{position:"absolute",left:"50%",top:12,transform:"translateX(-50%)",padding:"6px 12px",borderRadius:6,background:"rgba(0,0,0,.72)",color:h.content.primary,fontSize:12,letterSpacing:".04em",pointerEvents:"none",zIndex:2},children:"Paused by the editor — press ▶ Play to resume (Escape pauses)"})]})}const Ai="workspace.service";function Fi(){return ie().workspace.liveDocument.register({Content:Jn,Toolbar:Zn})}export{Ai as point,Fi as start};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{createGameModuleResolver as k,setFocusedInstanceProvider as M}from"./game-module-access-B2mFxv-i.js";import{n as d}from"./command-results-CUQD49AB.js";import{i as g}from"./active-ingest-CT6jSGhr.js";import{i as y,q as h,t as w}from"./play-mode-BFU2PCkG.js";import"./index-GIL7oGEO.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"./three.module-D396a9Mn.js";import"./game-contract-seams-a5YXejOu.js";import"./capability-coverage-Czas4C18.js";import"./ingest-source-persistence-C_6Hiyra.js";import"./playtest-BXIL1JEF.js";import"./native-debug-module-CWicoSGD.js";import"./native-entry-surface-BE8LJNdu.js";import"./debug-registry-Dgvitx8M.js";import"./instruments-CKR02Y8I.js";import"./frame-pacing-D5acoOzO.js";import"./edit-mode-authoring-B47TfLqu.js";import"./json-history-resource-BbxllWfV.js";import"./binding-resolver-Dsh-6Vor.js";import"./adapter-surface-Y37Nzcyw.js";import"./entry-adjudication-Cq8Yeb74.js";import"./r3f-root-factory-z9llD1OU.js";import"./register-render-vitals-BiZk29b2.js";import"./render-census-BrQX_CXv.js";import"./structural-signature-0w-i_ats.js";import"./render-vitals-BZ5HtvMi.js";import"./static-batch-advisor-B13QEH7d.js";import"./webgl-frame-capture-FlF9zQmW.js";import"./world-state-BWG-IcOd.js";import"./frame-selector-cache-cCeUbcjG.js";import"./dev-build-gDYrq68M.js";import"./game-input-seams-CIQdetRw.js";import"./seeded-random-i3mtgBKZ.js";import"./render-seed-DF4JHy7P.js";import"./frame-delta-D2nsw_Ht.js";import"./events-156d8d12.esm-ErOhDXXB.js";import"./index-bQE2NA0D.js";import"./realm-services-CobQsq_X.js";import"./canvas-entry-runtime-SfBxaR9M.js";import"./three-ingest-runtime-QzDYk6tU.js";import"./EffectComposer-DQxfsXBZ.js";import"./CopyShader-BzTUYzf6.js";import"./ShaderPass-QYRpPuFJ.js";import"./CSS3DRenderer-CL7ABLVK.js";import"./relative-path-guard-GiM7Lsz8.js";import"./react-root-CEz5NTck.js";import"./editor-presentation-activity-C7SNSmTd.js";import"./pixi-story-model-DNkfnWUV.js";import"./surface-content-Dg9Kkazf.js";import"./viewport-root-presentation-CWsE56K6.js";import"./mounted-authoring-Dmg5xmhP.js";import"./three-CDSueJyJ.js";import"./viewport-pick-context-DkawXbEi.js";import"./logger-Dqis-7W1.js";import"./run-ticks-settled-C4ksViyA.js";import"./three-authoring-adapter-CmSQ3Vui.js";import"./source-persistence-backend-C-aR-B_Y.js";import"./three-projection-core-BmKMZ-nf.js";import"./body-marks-h_xDxiDE.js";import"./user-data-BB2Of6Ht.js";import"./object-marks-DwvIEBOK.js";import"./structural-ids-Dc-7rEwi.js";import"./object3d-authoring-subject-CH5sI2oP.js";import"./rapier-physics-adapter-CaZqWLu0.js";import"./r3f-physics-binding-BBo8oma9.js";import"./deferred-ingest-play-DCJi_Pgu.js";import"./rrweb-Cd2ifIRP.js";import"./react-world-authoring-adapter-DmrwM3py.js";import"./board-guides-DziKSTss.js";import"./writer-B-KovzkA.js";import"./story-arg-descriptors-Ek86ExX7.js";import"./inspect-BZfi3mmo.js";import"./inference-diagnostics-Dhmtfbq_.js";class E extends Error{member;supported;constructor(e,r,o){super(`playwright-shim: ${e}.${r} is not supported by the in-page shim. Supported ${e} members: ${o.join(", ")}. This shim is DOM-only — canvas gameplay input must use game.input.*, while React-only DOM games may use Page keyboard/locator input. See packages/editor/src/playwright-shim.ts for the full supported subset and the wire's closure-capture limitation.`),this.name="PageShimUnsupportedError",this.member=r,this.supported=o}}function b(t,e){const r=Object.keys(t);return new Proxy(t,{get(o,i,n){if(typeof i=="symbol"||i in o)return Reflect.get(o,i,n);throw new E(e,i,r)}})}function m(t){return t.replace(/\s+/g," ").trim()}function O(t){const e=t.tagName.toLowerCase();if(e==="button")return"button";if(e==="a"&&t.hasAttribute("href"))return"link";if(/^h[1-6]$/.test(e))return"heading";if(e==="textarea")return"textbox";if(e==="select")return"combobox";if(e==="img")return"img";if(e==="input"){const r=(t.getAttribute("type")??"text").toLowerCase();return r==="button"||r==="submit"||r==="reset"?"button":r==="checkbox"?"checkbox":r==="radio"?"radio":"textbox"}return null}function v(t){return t.getAttribute("role")??O(t)}function S(t){const e=t.getAttribute("aria-label");return e&&e.trim()?m(e):m(t.textContent??"")}function T(t,e){if(e===void 0)return!0;const r=S(t);return e instanceof RegExp?e.test(r):r===e}function x(t,e,r){return Array.from(t.querySelectorAll("*")).filter(i=>v(i)===e&&T(i,r?.name))}function I(t,e){const r=Array.from(t.querySelectorAll("*")).filter(n=>n.tagName!=="SCRIPT"&&n.tagName!=="STYLE"),o=n=>{const s=m(n.textContent??"");return s.length===0?!1:e instanceof RegExp?e.test(s):s.includes(e)},i=r.filter(o);return i.filter(n=>!i.some(s=>s!==n&&n.contains(s)))}function C(t,e){return Array.from(t.querySelectorAll("[data-testid]")).filter(r=>{const o=r.getAttribute("data-testid")??"";return e instanceof RegExp?e.test(o):o===e})}function L(t){if(!(t instanceof HTMLElement))return!0;if(t.hidden)return!1;const e=getComputedStyle(t);return e.display!=="none"&&e.visibility!=="hidden"&&e.opacity!=="0"}function _(t){const e=t.getBoundingClientRect?.()??{left:0,top:0,width:0,height:0},r=e.left+e.width/2,o=e.top+e.height/2,i={bubbles:!0,cancelable:!0,clientX:r,clientY:o,button:0};typeof PointerEvent<"u"&&t.dispatchEvent(new PointerEvent("pointerdown",{...i,pointerId:1,isPrimary:!0})),t.dispatchEvent(new MouseEvent("mousedown",i)),typeof PointerEvent<"u"&&t.dispatchEvent(new PointerEvent("pointerup",{...i,pointerId:1,isPrimary:!0})),t.dispatchEvent(new MouseEvent("mouseup",i)),t.dispatchEvent(new MouseEvent("click",i))}function N(t){const e=t instanceof HTMLTextAreaElement?HTMLTextAreaElement.prototype:HTMLInputElement.prototype,r=Object.getOwnPropertyDescriptor(e,"value");return o=>{r?.set?r.set.call(t,o):t.value=o}}function G(t,e){if(!(t instanceof HTMLInputElement)&&!(t instanceof HTMLTextAreaElement))throw new Error(`playwright-shim: fill() target is not an <input>/<textarea> (got <${t.tagName.toLowerCase()}>)`);t.focus(),N(t)(e),t.dispatchEvent(new Event("input",{bubbles:!0})),t.dispatchEvent(new Event("change",{bubbles:!0}))}const l=new Set(["Alt","Control","Meta","Shift"]);function p(t){return t!=="ControlOrMeta"?t:/Mac|iPhone|iPad/.test(navigator.platform)?"Meta":"Control"}function B(t){return/^[a-z]$/i.test(t)?`Key${t.toUpperCase()}`:/^[0-9]$/.test(t)?`Digit${t}`:t===" "?"Space":t}function K(t){const e=document.activeElement;return e instanceof HTMLElement&&t.contains(e)?e:t}function f(t,e,r,o){K(t).dispatchEvent(new KeyboardEvent(e,{key:r,code:B(r),bubbles:!0,cancelable:!0,altKey:o.has("Alt"),ctrlKey:o.has("Control"),metaKey:o.has("Meta"),shiftKey:o.has("Shift")}))}function F(t){const e=new Set,r=async i=>{const n=p(i);e.add(n),f(t,"keydown",n,e)},o=async i=>{const n=p(i);f(t,"keyup",n,e),e.delete(n)};return{down:r,up:o,async press(i){const n=i.split("+").map(p),s=n.filter(c=>l.has(c)),a=n.find(c=>!l.has(c));for(const c of s)await r(c);a&&(await r(a),await o(a));for(const c of s.reverse())await o(c)}}}function R(t){const e=[];function r(o,i){const n=v(o);if(n){const a=S(o);e.push(`${" ".repeat(i)}- ${n}${a?` "${a}"`:""}`)}const s=n?i+1:i;for(const a of Array.from(o.children))r(a,s)}for(const o of Array.from(t.children))r(o,0);return e.join(`
|
|
2
|
+
`)}function u(t,e){const r=i=>{const n=t()[0];if(!n)throw new Error(`playwright-shim: ${i}() found no element for ${e}`);return n};return b({async click(){_(r("click"))},async fill(i){G(r("fill"),i)},async textContent(){const i=t()[0];return i?i.textContent??null:null},async evaluate(i,n){return i(r("evaluate"),n)},async count(){return t().length},async waitFor(i){const n=i?.timeout??5e3,s=i?.state??"visible",a=Date.now()+n;for(;;){const c=t()[0];if(c&&(s==="attached"||L(c)))return;if(Date.now()>=a)throw new Error(`playwright-shim: waitFor() timed out after ${n}ms waiting for ${e} to be ${s}`);await new Promise(P=>setTimeout(P,50))}},first(){return u(()=>t().slice(0,1),`${e}.first()`)},nth(i){return u(()=>{const n=t()[i];return n?[n]:[]},`${e}.nth(${i})`)},async ariaSnapshot(){return R(r("ariaSnapshot"))}},"Locator")}async function D(t,e){if(typeof t=="function")return t(e);if(typeof t=="string")return new Function("arg",`return (${t})(arg)`)(e);throw new Error("playwright-shim: evaluate() requires a function or a function-source string")}function A(t){const e={keyboard:F(t),evaluate:async(r,o)=>D(r,o),locator:r=>u(()=>Array.from(t.querySelectorAll(r)),`locator(${JSON.stringify(r)})`),getByRole:(r,o)=>u(()=>x(t,r,o),`getByRole(${JSON.stringify(r)}${o?.name!==void 0?`, {name: ${JSON.stringify(String(o.name))}}`:""})`),getByText:r=>u(()=>I(t,r),`getByText(${JSON.stringify(String(r))})`),getByTestId:r=>u(()=>C(t,r),`getByTestId(${JSON.stringify(String(r))})`),click:async r=>{await e.locator(r).click()},fill:async(r,o)=>{await e.locator(r).fill(o)},ariaSnapshot:async()=>R(t)};return b(e,"Page")}const ge="workspace.command";typeof window<"u"&&(M(w),window.__vgaiGameEval=async(t,e)=>{const r=await $({src:t,...e===void 0?{}:{instance:e}});if(!r.ok)throw new Error(r.error??"game-eval failed");return r.data?.result??null});async function $(t){if(!y()&&!g())return d();const e=t.src;if(typeof e!="string")return{ok:!1,error:`game-eval requires a string "src" (the step's toString())`};const r=h();if(!r)return{ok:!1,error:"game-eval: no play-mode game container is mounted yet",data:{code:"GAME_EVAL_ERROR"}};const o=t.instance,i=typeof o=="string"?o:void 0;let n;try{n=new Function("scope",`return (${e})(scope)`)}catch(a){return{ok:!1,error:`game-eval: failed to reconstruct the step function from source — ${a instanceof Error?a.message:String(a)}`,data:{code:"GAME_EVAL_ERROR"}}}const s={page:A(r),modules:k(i),instanceId:i??w()};try{const a=await n(s),c=a===void 0?null:a;try{JSON.stringify(c)}catch{return{ok:!1,error:`game-eval: the step returned an unserializable value (${Object.prototype.toString.call(c)}) — return plain data (numbers, strings, arrays, plain objects), not live module objects.`,data:{code:"GAME_EVAL_UNSERIALIZABLE"}}}return{ok:!0,data:{result:c}}}catch(a){return{ok:!1,error:`game-eval step failed: ${a instanceof Error?a.stack??a.message:String(a)}`,data:{code:"GAME_EVAL_ERROR"}}}}async function H(t){if(!y()&&!g())return d();const e=t.src;if(typeof e!="string")return{ok:!1,error:`page-script requires a string "src" (the step's toString())`};const r=h();if(!r)return{ok:!1,error:"page-script: no play-mode game container is mounted yet",data:{code:"PAGE_SCRIPT_ERROR"}};let o;try{o=new Function("page",`return (${e})(page)`)}catch(n){return{ok:!1,error:`page-script: failed to reconstruct the step function from source — ${n instanceof Error?n.message:String(n)}`,data:{code:"PAGE_SCRIPT_ERROR"}}}const i=A(r);try{const n=await o(i);return{ok:!0,data:{result:n===void 0?null:n}}}catch(n){return n instanceof E?{ok:!1,error:n.message,data:{code:"PAGE_SHIM_UNSUPPORTED",member:n.member,supported:[...n.supported]}}:{ok:!1,error:`page-script: step threw — ${n instanceof Error?n.message:String(n)}`,data:{code:"PAGE_SCRIPT_ERROR"}}}}const ye={"game-eval":{timeoutMs:6e4,derivedRefresh:"always",handle:$},"page-script":{timeoutMs:6e4,derivedRefresh:"always",handle:H}};export{ye as commands,ge as point};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{getSeededRandom as d}from"./seeded-random-i3mtgBKZ.js";import"./render-seed-DF4JHy7P.js";import"./debug-registry-Dgvitx8M.js";import"./index-GIL7oGEO.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"./three.module-D396a9Mn.js";const c="/inputmaps/default.inputmap.json";function w(r,p,u){const{id:o,inputMapPath:a=c,optionalInputMap:s=!1}=u;if(!r.game)return Promise.resolve();const n=r.game,i=n.input;return p.setInputActionsSource(o,()=>i.actionNames().map(t=>({name:t,valueType:i.getActionValueType(t)}))),p.setInputTraceSource(o,()=>{const t=i.getInputTrace();return{version:t.version,seed:d(n)?.seed??null,fixedDt:n.loop.fixedDt,ticks:t.ticks}}),p.setVirtualInputTarget(o,{setVirtualAction:(t,e)=>i.setVirtualAction(t,e),tapVirtualAction:t=>i.tapVirtualAction(t),clearVirtualActions:()=>i.clearVirtualActions(),scheduleActionAtTick:(t,e,l)=>i.scheduleActionAtTick(t,e,l),startInputRecording:()=>i.startInputRecording(),stopInputRecording:()=>i.stopInputRecording(),isInputRecording:()=>i.isInputRecording(),injectAxis:(t,e)=>i.injectAxis(t,e),injectVector2:(t,e)=>i.injectVector2(t,e),injectPointerDelta:(t,e)=>i.injectPointerDelta(t,e),injectPointerPosition:(t,e)=>i.injectPointerPosition(t,e)}),r.headless||a===null?Promise.resolve():(s?n.loadInputMap(a,{optional:!0}):n.loadInputMap(a)).catch(t=>{console.error(`world "${o}": failed to load input map "${a}" — declared input actions and \`game.input.*\` (bot/virtual input) will not work until a valid map loads. Ship one at the conventional path (${c}). Cause: ${t instanceof Error?t.message:String(t)}`)})}export{c as DEFAULT_INPUT_MAP_PATH,w as wireGameInputSeams};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{TIME_SCALE_RANGE as v,clampTimeScale as x,paceFrame as b}from"./frame-pacing-D5acoOzO.js";const g=1e3;function D(i){const f=i.fixedTimestep??.016666666666666666,A=i.maxSubSteps??8,m=i.externalDrive??!1;let l=0,r=0,e=!1,a=0,c=1,t=!1,o=!1;function d(){m||!o||typeof document>"u"||(document.hidden?e&&(e=!1,cancelAnimationFrame(a),t=!0):t&&(t=!1,e=!0,r=performance.now(),l=0,a=requestAnimationFrame(p)))}function S(){d()}function p(n){if(!e)return;a=requestAnimationFrame(p);const s=(n-r)/1e3;r=n;const u=b(l,s,c,{fixedDt:f,maxSubSteps:A});l=u.accumulator;for(let y=0;y<u.steps;y++)i.update(f);i.render?.(u.alpha,u.displayDt)}return{start(){if(!e&&(e=!0,t=!1,r=performance.now(),l=0,!m)){if(!o&&typeof document<"u"&&(document.addEventListener("visibilitychange",S),o=!0),typeof document<"u"&&document.hidden){e=!1,t=!0;return}a=requestAnimationFrame(p)}},stop(){e=!1,t=!1,cancelAnimationFrame(a),o&&typeof document<"u"&&(document.removeEventListener("visibilitychange",S),o=!1)},get isRunning(){return d(),e},get liveness(){return d(),t||e&&!m&&performance.now()-r>g?"loop-starved":e?"running":"stopped"},set timeScale(n){const s=x(n);s!==n&&console.warn(`[game-loop] timeScale ${n} is out of range [${v.min}, ${v.max}]; clamped to ${s}.`),c=s},get timeScale(){return c},get fixedDt(){return f}}}export{D as createGameLoop};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{B as d}from"./index-GIL7oGEO.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"./three.module-D396a9Mn.js";const l="vgai-mount";let i=null;function u(t){return globalThis.__vgaiGameModuleUrls?.(t)??[]}function b(t){i=t}function h(t){const o=t.replace(/^\/+/,"");if(!o.startsWith("src/")||/[?#]/.test(o))throw new Error(`modules("${t}"): pass the project-relative served path, starting "src/" with its real extension and no query — e.g. modules("src/sim/host.ts").`);return o}function m(t){const o=u(t).flatMap(r=>{const{pathname:e,searchParams:a}=new URL(r);if(a.get(l)!==t)return[];const s=e.lastIndexOf("/src/");return s===-1?[]:[e.slice(s+1)]});return[...new Set(o)].sort()}function O(t){const o=r=>p(r,w(r,t));return Object.defineProperty(o,"loaded",{enumerable:!0,get:()=>{const r=t??i?.();return r?m(r):[]}}),o}const f=new Set(["then","catch","finally","constructor","toJSON"]);function p(t,o){return new Proxy(o,{get(r,e){if(e==="then"||e==="catch"||e==="finally")return Reflect.get(r,e).bind(r);if(typeof e=="symbol"||f.has(e))return Reflect.get(r,e);throw new Error(`modules("${t}") returns a PROMISE — it dynamic-imports the running mount's own copy of that module — so \`.${String(e)}\` reads a promise, not your export. Await it: \`const m = await modules("${t}"); m.${String(e)}\` (and make the \`game.run\` callback \`async\`).`)}})}async function w(t,o){const r=h(t),e=o??i?.();if(!e)throw new Error(`modules(): no play instance is mounted — enter Play first (${d("play")}).`);const a=`/${r}`,s=u(e).find(n=>{const c=new URL(n);return c.pathname.endsWith(a)&&c.searchParams.get(l)===e});if(!s){const n=m(e);throw new Error(`modules("${t}"): the running mount has not loaded that module (nothing to reach — a module the game never imported has no live instance). Loaded project modules (also readable as modules.loaded): ${n.join(", ")||"(none yet — play first)"}`)}try{return await import(s)}catch(n){throw new Error(`modules("${t}") could not load ${s} — the path must be the exact served file (check the extension: .ts vs .tsx). ${n instanceof Error?n.message:String(n)}`)}}export{O as createGameModuleResolver,w as importGameModule,m as loadedGameModulePaths,h as normalizeGameModulePath,b as setFocusedInstanceProvider};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e="workspace.layout",n={id:"game",title:"Game",description:"Building and playing the game: the editor's standing arrangement, unchanged. The default.",regions:{header:"hidden"}};export{n as layout,e as point};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{pcmStats as A}from"./wav-encode-D31zWF6O.js";import{a1 as x,a0 as y}from"./index-GIL7oGEO.js";import{c as C,B as I,O,W as S,C as F,Q as g,d as V,e as k}from"./output-DK8waum9.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"./three.module-D396a9Mn.js";const u="opus",R=128e3;function z(e){const r=e.fps??30;if(!Number.isInteger(r)||r<1||r>60||60%r!==0)throw new Error("Video export FPS must be a positive divisor of 60.");if(!Number.isSafeInteger(e.frames)||e.frames<1)throw new Error("Video export frames must be a positive safe integer.");if(e.frames/r>300)throw new Error("Video export is limited to five minutes per file.");return r}async function U(e){if(!await C("vp9",{width:e.clientWidth,height:e.clientHeight}))throw new Error("This browser cannot encode VP9 video at the game resolution.")}async function G(e,r,t){const{buffer:a}=await e.render(e.startSeconds,e.startSeconds+r),d=a.length/a.sampleRate;if(Math.abs(d-r)>1/t)throw new Error(`Offline audio render returned ${d.toFixed(4)}s for a ${r.toFixed(4)}s export window (tolerance one frame, ${(1/t).toFixed(4)}s).`);if(!await k(u,{numberOfChannels:a.numberOfChannels,sampleRate:a.sampleRate}))throw new Error(`This browser cannot encode ${u} at ${a.sampleRate} Hz, ${a.numberOfChannels} channel(s).`);const i=[];for(let s=0;s<a.numberOfChannels;s++)i.push(a.getChannelData(s));const o=A(i);return{buffer:a,track:{codec:u,sampleRate:a.sampleRate,channels:a.numberOfChannels,durationSeconds:d,rms:o.rms,peak:o.peak}}}async function _(e,r,t){const a=z(r),d=performance.now(),i=e.ownerDocument.createElement("canvas");if(i.width=e.clientWidth,i.height=e.clientHeight,i.width<1||i.height<1)throw new Error("Game surface has no exportable size.");const o=i.width,s=i.height,v=r.frames/a,m=t.audio?await G(t.audio,v,a):null;t.signal?.throwIfAborted(),t.assertActive();let c=null;const w=new I,n=new O({target:w,format:new S}),l=new F(i,{codec:"vp9",quality:new g({bitrate:3e6})});n.addVideoTrack(l,{frameRate:a}),m&&(c=new V({codec:u,quality:new g({bitrate:R})}),n.addAudioTrack(c));const E=y();let h=null;const p=()=>{h??=n.cancel()};t.signal?.addEventListener("abort",p,{once:!0});try{t.signal?.throwIfAborted(),await n.start(),c&&m&&(await c.add(m.buffer),c.close(),t.signal?.throwIfAborted());for(let f=0;f<r.frames;f++){if(t.signal?.throwIfAborted(),t.assertActive(),!e.isConnected)throw new Error("Game surface was removed during video export.");if(e.clientWidth!==o||e.clientHeight!==s)throw new Error("Game surface resized during video export.");if(f>0)for(let b=0;b<60/a;b++)t.step();if(await x(e,i,{size:{width:o,height:s},snapshots:E,canvasFrame:t.canvasFrame}),t.signal?.throwIfAborted(),t.assertActive(),e.clientWidth!==o||e.clientHeight!==s)throw new Error("Game surface resized during video export.");await l.add(f/a,1/a,{keyFrame:f%(a*2)===0})}if(t.assertActive(),t.signal?.throwIfAborted(),await n.finalize(),t.signal?.throwIfAborted(),t.assertActive(),!w.buffer)throw new Error("Video encoder produced no output.");return{blob:new Blob([w.buffer],{type:"video/webm"}),frames:r.frames,fps:a,durationMs:r.frames*1e3/a,wallMs:performance.now()-d,width:o,height:s,audio:m?.track??!1}}catch(f){throw h?await h:n.state!=="finalized"&&await n.cancel(),f}finally{t.signal?.removeEventListener("abort",p)}}export{U as assertGameplayVideoSupport,_ as exportGameplayVideo,z as validateGameplayExport};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{R as N,E as P}from"./rrweb-Cd2ifIRP.js";import{Z as C,$ as L,a0 as F,a1 as O}from"./index-GIL7oGEO.js";import{B as U,O as $,W as B,C as D,Q as A,I,a as W,U as H,A as V,b as q}from"./output-DK8waum9.js";function x(e,r){const o=new URLSearchParams({replay:e,file:r});return`${C}/recording/replay-file?${o}`}async function T(e,r){const o=await fetch(x(e,r));if(!o.ok)throw new Error(`could not load replay ${r}: HTTP ${o.status}`);return o.text()}function z(e){return new Promise((r,o)=>{const s=new FileReader;s.onload=()=>r(String(s.result)),s.onerror=()=>o(s.error??new Error("could not read replay asset")),s.readAsDataURL(e)})}async function j(e){let r=await T(e,"events.json");const o=new Set(r.match(/https:\/\/replay-assets\.invalid\/\d{6}\.(?:png|jpg|webp|gif|svg)/g)??[]),s=await Promise.all([...o].map(async a=>{const i=a.split("/").at(-1),n=await fetch(x(e,`assets/${i}`));if(!n.ok)throw new Error(`could not load replay asset ${i}`);return[a,await z(await n.blob())]}));for(const[a,i]of s)r=r.replaceAll(a,i);const t=JSON.parse(r);if(!Array.isArray(t)||t.length===0)throw new Error("replay contains no DOM events");return t}function G(e,r,o){return Math.max(0,e.videoStartEpochMs+o-r[0].timestamp)}function _(e,r,o){const s=e.videoStartEpochMs+o;let t={rect:e.canvas,drawingWidth:e.canvas.drawingWidth,drawingHeight:e.canvas.drawingHeight};for(const a of r){if(a.timestamp>s)break;a.type===P.Custom&&a.data.tag==="vgai-canvas-layout"&&a.data.payload&&typeof a.data.payload=="object"&&"rect"in a.data.payload&&"drawingWidth"in a.data.payload&&"drawingHeight"in a.data.payload&&(t=a.data.payload)}return t}async function J(e,r){await new Promise((o,s)=>{const t=()=>{clearTimeout(n),e.removeEventListener("loadeddata",a),e.removeEventListener("error",i)},a=()=>{t(),o()},i=()=>{t(),s(new Error("replay video failed to load"))},n=setTimeout(()=>{t(),s(new Error("replay video load timed out"))},15e3);e.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA?a():(e.addEventListener("loadeddata",a,{once:!0}),e.addEventListener("error",i,{once:!0}))}),!(Math.abs(e.currentTime-r)<.001)&&await new Promise((o,s)=>{const t=()=>{clearTimeout(n),e.removeEventListener("seeked",a),e.removeEventListener("error",i)},a=()=>{t(),o()},i=()=>{t(),s(new Error("replay video seek failed"))},n=setTimeout(()=>{t(),s(new Error("replay video seek timed out"))},15e3);e.addEventListener("seeked",a,{once:!0}),e.addEventListener("error",i,{once:!0}),e.currentTime=r})}async function Q(e){e.fonts.size>0&&e.fonts.status!=="loaded"&&await Promise.race([e.fonts.ready.then(()=>{}),new Promise(r=>setTimeout(r,3e3))]),await Promise.all(Array.from(e.images,r=>r.decode().catch(()=>{})))}async function S(e,r){const[o,s]=await Promise.all([T(e,"manifest.json"),j(e)]),t=JSON.parse(o);if(t.status!=="complete"||t.format!=="canvas-dom"||t.version!==1||!t.capture||typeof t.capture.durationMs!="number")throw new Error("replay manifest is incomplete or unsupported");const a=document.createElement("div");a.setAttribute("data-vgai-replay-block",""),Object.assign(a.style,{position:"fixed",left:"-100000px",top:"0",width:`${t.viewport.width}px`,height:`${t.viewport.height}px`,overflow:"hidden",pointerEvents:"none"});const i=document.createElement("div");a.append(i),document.body.append(a);const n=document.createElement("video");n.muted=!0,n.preload="auto",n.playsInline=!0,n.src=x(e,"video"),a.append(n);let w;try{w=new N(s,{root:i,showWarning:!1,showDebug:!1,mouseTail:!1,UNSAFE_replayCanvas:!0,insertStyleRules:["[data-vgai-replay-video] { visibility: hidden !important; }"]});const f=w;return await r({manifest:t,async render(u){const h=Math.max(0,Math.min(u,t.capture.durationMs));await J(n,h/1e3),f.pause(G(t,s,h)),await Q(f.iframe.contentDocument);const y=f.getMirror().getNode(t.canvas.nodeId),p=f.getMirror().getNode(t.surfaceNodeId);if(!y||y.tagName!=="CANVAS")throw new Error("replay canvas placeholder is unavailable");if(!p||typeof p.getBoundingClientRect!="function")throw new Error("replay game surface is unavailable");const c=y,g=p;c.setAttribute("data-vgai-root-surface","true");const E=_(t,s,h);c.width=E.drawingWidth,c.height=E.drawingHeight;const d=c.getContext("2d");if(!d)throw new Error("replay canvas has no 2D context");return d.drawImage(n,0,0,c.width,c.height),c.style.setProperty("visibility","visible","important"),g}})}finally{n.pause(),w?.destroy(),n.removeAttribute("src"),n.load(),a.remove()}}async function Y(e,r){return S(e,async({manifest:o,render:s})=>{const t=Math.max(0,Math.min(r,o.capture.durationMs)),a=await s(t),i=await L(a),n=a.getBoundingClientRect();return{...i,replayPath:e,positionMs:t,width:Math.max(1,Math.round(n.width)),height:Math.max(1,Math.round(n.height))}})}async function ee(e){const r=e.fps??30;if(!Number.isInteger(r)||r<1||r>60)throw new Error("replay export fps must be an integer from 1 to 60");return S(e.replayPath,async({manifest:o,render:s})=>{const t=e.startMs??0,a=e.endMs??o.capture.durationMs;if(!Number.isFinite(t)||!Number.isFinite(a)||t<0||a<=t||a>o.capture.durationMs||a-t>3e5)throw new Error("replay export requires a valid recorded interval of at most five minutes");const i=t/1e3,n=a/1e3,w=Math.ceil((n-i)*r),f=await s(t),u=document.createElement("canvas"),h=f.getBoundingClientRect();u.width=Math.max(1,Math.round(h.width)),u.height=Math.max(1,Math.round(h.height));const y={width:u.width,height:u.height},p=new U,c=new $({target:p,format:new B}),g=new D(u,{codec:"vp9",quality:new A({bitrate:3e6})});c.addVideoTrack(g,{frameRate:r});const E=new I({source:new H(x(e.replayPath,"video")),formats:[W]});try{const d=await E.getPrimaryAudioTrack();if(o.capture.audio&&!d)throw new Error("recorded audio track is missing");const M=d?new V({codec:"opus",quality:new A({bitrate:128e3})}):null;M&&c.addAudioTrack(M),await c.start();const R=async()=>{if(!(!M||!d)){for await(const l of new q(d).samples(i,n))try{const m=Math.max(0,Math.ceil((i-l.timestamp)*l.sampleRate)),v=Math.min(l.numberOfFrames,Math.ceil((n-l.timestamp)*l.sampleRate));if(v<=m)continue;const b=l.trim(m,v);try{b.setTimestamp(Math.max(0,b.timestamp-i)),await M.add(b)}finally{b.close()}}finally{l.close()}M.close()}},k=async()=>{const l=F();for(let m=0;m<w;m++){const v=m/r;await O(await s(t+v*1e3),u,{size:y,snapshots:l}),await g.add(v,Math.min(1/r,n-i-v),{keyFrame:m%(r*2)===0})}g.close()};if(await Promise.all([R(),k()]),await c.finalize(),!p.buffer)throw new Error("replay encoder produced no output");return{blob:new Blob([p.buffer],{type:"video/webm"}),frames:w,fps:r,durationMs:a-t,...y,audio:d!==null}}catch(d){throw c.state!=="finalized"&&await c.cancel(),d}finally{E.dispose()}})}export{Y as c,ee as e};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{c as i}from"./debug-registry-Dgvitx8M.js";import"./index-GIL7oGEO.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"./three.module-D396a9Mn.js";function m(r){if(!r)return"<unknown call site — no stack captured>";const t=r.split(`
|
|
2
|
+
`);return(t[2]??t[1]??t[0]??"<unknown call site>").trim()}function S(r=t=>{console.warn(t)}){const t=new Set;let e;function a(){const n=m(new Error().stack);return t.has(n)||(t.add(n),r(`[determinism] the global Math.random generator was drawn from during a gameplay frame while this project declares determinism.seededRandom — use ctx.random() / ctx.random.stream(name) instead. Call site:
|
|
3
|
+
${n}`)),e()}return{enable(){e=Math.random,Math.random=a},disable(){Math.random===a&&e&&(Math.random=e,e=void 0)}}}const o=i("gameplay-rng-trap");function M(r,t){o.set(r,t)}function k(r){return o.get(r)??null}export{S as createGameplayRngTrap,k as getGameplayRngTrapControl,M as registerGameplayRngTrapControl};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{ad as a}from"./index-GIL7oGEO.js";import{s as n,n as s}from"./command-results-CUQD49AB.js";import{g as m,i as p}from"./play-mode-BFU2PCkG.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"./three.module-D396a9Mn.js";import"./native-debug-module-CWicoSGD.js";import"./native-entry-surface-BE8LJNdu.js";import"./debug-registry-Dgvitx8M.js";import"./playtest-BXIL1JEF.js";import"./game-contract-seams-a5YXejOu.js";import"./instruments-CKR02Y8I.js";import"./frame-pacing-D5acoOzO.js";import"./edit-mode-authoring-B47TfLqu.js";import"./json-history-resource-BbxllWfV.js";import"./binding-resolver-Dsh-6Vor.js";import"./adapter-surface-Y37Nzcyw.js";import"./entry-adjudication-Cq8Yeb74.js";import"./r3f-root-factory-z9llD1OU.js";import"./register-render-vitals-BiZk29b2.js";import"./render-census-BrQX_CXv.js";import"./structural-signature-0w-i_ats.js";import"./render-vitals-BZ5HtvMi.js";import"./static-batch-advisor-B13QEH7d.js";import"./webgl-frame-capture-FlF9zQmW.js";import"./world-state-BWG-IcOd.js";import"./frame-selector-cache-cCeUbcjG.js";import"./dev-build-gDYrq68M.js";import"./game-input-seams-CIQdetRw.js";import"./seeded-random-i3mtgBKZ.js";import"./render-seed-DF4JHy7P.js";import"./frame-delta-D2nsw_Ht.js";import"./events-156d8d12.esm-ErOhDXXB.js";import"./index-bQE2NA0D.js";import"./realm-services-CobQsq_X.js";import"./canvas-entry-runtime-SfBxaR9M.js";import"./three-ingest-runtime-QzDYk6tU.js";import"./EffectComposer-DQxfsXBZ.js";import"./CopyShader-BzTUYzf6.js";import"./ShaderPass-QYRpPuFJ.js";import"./CSS3DRenderer-CL7ABLVK.js";import"./relative-path-guard-GiM7Lsz8.js";import"./capability-coverage-Czas4C18.js";import"./react-root-CEz5NTck.js";import"./editor-presentation-activity-C7SNSmTd.js";import"./active-ingest-CT6jSGhr.js";import"./ingest-source-persistence-C_6Hiyra.js";import"./pixi-story-model-DNkfnWUV.js";import"./surface-content-Dg9Kkazf.js";import"./viewport-root-presentation-CWsE56K6.js";import"./mounted-authoring-Dmg5xmhP.js";import"./three-CDSueJyJ.js";import"./viewport-pick-context-DkawXbEi.js";import"./logger-Dqis-7W1.js";import"./run-ticks-settled-C4ksViyA.js";import"./three-authoring-adapter-CmSQ3Vui.js";import"./source-persistence-backend-C-aR-B_Y.js";import"./three-projection-core-BmKMZ-nf.js";import"./body-marks-h_xDxiDE.js";import"./user-data-BB2Of6Ht.js";import"./object-marks-DwvIEBOK.js";import"./structural-ids-Dc-7rEwi.js";import"./object3d-authoring-subject-CH5sI2oP.js";import"./rapier-physics-adapter-CaZqWLu0.js";import"./r3f-physics-binding-BBo8oma9.js";import"./deferred-ingest-play-DCJi_Pgu.js";import"./rrweb-Cd2ifIRP.js";import"./react-world-authoring-adapter-DmrwM3py.js";import"./board-guides-DziKSTss.js";import"./writer-B-KovzkA.js";import"./story-arg-descriptors-Ek86ExX7.js";import"./inspect-BZfi3mmo.js";import"./inference-diagnostics-Dhmtfbq_.js";const Ce="workspace.command",Ge={"list-gameplay-state":{derivedRefresh:"if-content-changed",handle:()=>{const e=a().debug;return e?{ok:!0,data:{providers:e.providers()}}:p()?{ok:!0,data:{providers:[]}}:s()}},"inspect-gameplay-state":{derivedRefresh:"if-content-changed",handle:e=>{const t=a().debug;if(!t)return p()?{ok:!0,data:{state:null}}:s();const r=e.keys;try{const o={};if(r&&r.length>0)for(const i of r)o[i]=t.state(i);else Object.assign(o,t.stateAll());return{ok:!0,data:{state:o}}}catch(o){return n(o)}}},"list-debug-commands":{derivedRefresh:"if-content-changed",handle:()=>{const e=a().debug;return e?{ok:!0,data:{commands:e.commands()}}:p()?{ok:!0,data:{commands:[]}}:s()}},"invoke-debug-command":{derivedRefresh:"always",handle:async e=>{const t=a().debug;if(!t)return p()?{ok:!1,error:`debug: no command registered under "${e.name}" — this game exposes no debug adapter`,data:{code:"DEBUG_COMMAND_NOT_REGISTERED",registered:[]}}:s();try{return{ok:!0,data:{result:await t.invoke(e.name,e.args??[])}}}catch(r){return n(r)}}},"inject-input":{derivedRefresh:"none",handle:e=>{const t=m();if(!t)return{ok:!1,error:"not in play mode — start play before injecting input"};let r;try{r=t.getInputTarget(e.worldId)}catch(o){return n(o)}if(!r)return{ok:!1,error:"this play session has no first-party InputManager to inject into"};try{if(e.kind==="action"){const i=e.atTick;return typeof i=="number"?(r.scheduleActionAtTick(i,e.action,e.value),{ok:!0,data:{scheduled:!0,tick:i}}):{ok:!0,data:r.setVirtualAction(e.action,e.value)}}const o=e.sourceId;switch(e.kind){case"axis":r.injectAxis(o,e.value);break;case"vector2":r.injectVector2(o,e.value);break;case"pointerDelta":r.injectPointerDelta(o,e.value);break;case"pointerPosition":r.injectPointerPosition(o,e.value);break;default:return{ok:!1,error:`unknown injection kind "${e.kind}"`}}return{ok:!0,data:{delivered:!0}}}catch(o){return n(o)}}},"set-time-scale":{derivedRefresh:"none",handle:e=>{const t=m();return t?(t.loop.timeScale=e.timeScale,{ok:!0,data:{timeScale:t.loop.timeScale}}):{ok:!1,error:"not in play mode — start play before setting time-scale"}}},"set-seed":{derivedRefresh:"none",handle:e=>{const t=m();return t?t.determinismDeclared?t.random?(t.random.reseed(e.seed),{ok:!0,data:{seed:t.random.seed}}):{ok:!1,error:"this play session has no first-party ctx.random to reseed"}:{ok:!1,error:"this project's manifest does not declare determinism.seededRandom — play.seed.set has no documented contract to reseed against (D15)",data:{code:"DETERMINISM_NOT_DECLARED"}}:{ok:!1,error:"not in play mode — start play before setting the seed"}}},"run-ticks":{derivedRefresh:"none",handle:async e=>{const t=m();if(!t)return{ok:!1,error:"not in play mode — start play before running ticks"};if(!t.runTicks)return{ok:!1,error:"this play session has no first-party Game to run ticks on",data:{code:"RUN_TICKS_UNAVAILABLE"}};try{const r=e.n,o=e.render;return t.runTicksSettled?await t.runTicksSettled(r,o?{render:o}:void 0):t.runTicks(r,o?{render:o}:void 0),{ok:!0}}catch(r){return n(r)}}}};export{Ge as commands,Ce as point};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.vgai-generation-gallery{display:flex;height:100%;flex-direction:column;color:var(--vgai-content-primary);container-type:size}.vgai-generation-gallery .vgai-toolbar{flex:0 0 auto}.vgai-generation-gallery-bar{gap:var(--vgai-space-2)}.vgai-generation-gallery-alert{margin:var(--vgai-space-3)}.vgai-generation-gallery-empty{margin:auto;max-width:420px;text-align:center}.vgai-generation-grid{display:grid;min-height:0;flex:1;align-content:start;gap:var(--vgai-space-3);padding:var(--vgai-space-3);overflow-y:auto;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));grid-auto-rows:max-content}@container (max-width: 380px){.vgai-generation-grid{grid-template-columns:1fr}}.vgai-generation-card{display:flex;flex-direction:column;overflow:hidden;border:var(--vgai-stroke-resting) solid var(--vgai-boundary-default);border-radius:var(--vgai-radius-md);background:var(--vgai-surface-panel)}.vgai-generation-card[data-state=failed],.vgai-generation-card[data-state=save-failed]{border-color:var(--vgai-danger-muted)}.vgai-generation-card[data-state=ready]{border-color:var(--vgai-boundary-strong)}.vgai-generation-card-media{display:grid;flex-shrink:0;height:160px;max-height:160px;gap:var(--vgai-stroke-active);background:var(--vgai-bg-inset);grid-template-columns:1fr}.vgai-generation-card-media[data-outputs="2"],.vgai-generation-card-media[data-outputs="3"],.vgai-generation-card-media[data-outputs="4"]{grid-template-columns:1fr 1fr}.vgai-generation-output{display:flex;min-width:0;min-height:0;align-items:center;justify-content:center;overflow:hidden;padding:var(--vgai-space-1)}.vgai-generation-output-media{display:block;width:100%;height:100%;max-width:100%;max-height:100%;border-radius:var(--vgai-radius-sm);object-fit:contain}.vgai-generation-output .vgai-generation-output-open.vgai-btn{display:flex;width:100%;height:100%;max-height:100%;min-height:0;align-items:center;justify-content:center;padding:0;border:0;background:transparent;cursor:zoom-in}video.vgai-generation-output-media{width:100%}.vgai-generation-output-audio{display:flex;width:100%;height:100%;flex-direction:column;align-items:center;justify-content:center;gap:var(--vgai-space-2);padding:var(--vgai-space-2)}.vgai-generation-output-audio audio{width:100%}.vgai-generation-output-file{display:flex;flex-direction:column;align-items:center;gap:var(--vgai-space-2);padding:var(--vgai-space-3);color:var(--vgai-content-muted);text-align:center;overflow-wrap:anywhere}.vgai-generation-state-media{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--vgai-space-2);padding:var(--vgai-space-3);text-align:center}.vgai-generation-progress{width:70%;height:4px;accent-color:var(--vgai-accent)}.vgai-generation-card-body{display:flex;min-width:0;flex-direction:column;gap:var(--vgai-space-1);padding:var(--vgai-space-3)}.vgai-generation-card-heading{display:flex;min-width:0;align-items:center;gap:var(--vgai-space-2)}.vgai-generation-card-heading>.vgai-text{min-width:0;flex:1}.vgai-generation-chip{flex:0 0 auto}.vgai-generation-chip[data-state=ready]{color:var(--vgai-success);border-color:var(--vgai-success-muted)}.vgai-generation-chip[data-state=failed],.vgai-generation-chip[data-state=save-failed]{color:var(--vgai-danger);border-color:var(--vgai-danger-muted)}.vgai-generation-chip[data-state=queued],.vgai-generation-chip[data-state=running],.vgai-generation-chip[data-state=saving],.vgai-generation-chip[data-state=new]{color:var(--vgai-accent);border-color:var(--vgai-accent-muted)}.vgai-generation-card-prompt{display:-webkit-box;margin:var(--vgai-space-1) 0 0;overflow:hidden;color:var(--vgai-content-dim);font-size:var(--vgai-font-sm);line-height:var(--vgai-leading-normal);-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2}.vgai-generation-card-alert{margin-top:var(--vgai-space-2);font-size:var(--vgai-font-sm)}.vgai-generation-card-actions{display:flex;flex-wrap:wrap;gap:var(--vgai-space-2);margin-top:var(--vgai-space-2)}@container (max-height: 300px){.vgai-generation-card-media{height:96px}.vgai-generation-card-prompt{display:none}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a2 as l,a3 as a,ae as c}from"./index-GIL7oGEO.js";const g={version:1,jobs:[]};let u=g,i=null,s=0,o=!1;const r=new Set;function w(e,n=null){u=e,i=n,s++;for(const d of r)d()}function J(){return u}function v(){return i}function E(){return s}function y(e){return r.add(e),()=>r.delete(e)}function p(e){return e.status==="queued"||e.status==="running"}function h(e){return!p(e)&&(!e.readAt||Date.parse(e.readAt)<Date.parse(e.updatedAt))}function b(e){return e.filter(h).length}async function t(){try{const e=await fetch("/__editor/generations");w(await l(e,"Generation activity request failed"))}catch(e){i=e instanceof Error?e.message:String(e),s++;for(const n of r)n()}}async function G(){if(!o){o=!0;try{const e=await fetch("/__editor/generations/reconcile",{method:"POST"});a(e,"Generation reconciliation failed"),await t()}finally{o=!1}}}async function _(e){const n=await c(e.poll.tool,e.poll.input);if(!n.ok)throw new Error(n.error.message);if(n.generationWarning)throw new Error(n.generationWarning);return await t(),await f(e.id),n.data}async function S(e){if(!e.accept)throw new Error("This completed generation has no project asset to add.");const n=await c(e.accept.tool,e.accept.input,{confirm:!0});if(!n.ok)throw new Error(n.error.message);if(n.generationWarning)throw new Error(n.generationWarning);await t(),await f(e.id)}async function f(e){const n=await fetch(`/__editor/generations/${encodeURIComponent(e)}/read`,{method:"POST"});a(n,"Mark generation read failed"),await t()}async function T(e){const n=await fetch(`/__editor/generations/${encodeURIComponent(e)}`,{method:"DELETE"});a(n,"Forget generation job failed"),await t()}function A(){t();const e=window.setInterval(()=>void t(),2e3);return()=>{window.clearInterval(e)}}export{b as a,p as b,S as c,v as d,h as e,T as f,J as g,A as h,_ as i,E as j,f as m,G as p,t as r,y as s};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j7 as V,j8 as Y,eC as O,bs as D,ge as E,j9 as Q,ja as $,bo as X,a4 as v,gg as H,eR as Z,jb as ee,jc as te,jd as w,je as ne,jf as ae,jg as re,jh as ie,ji as se,jj as oe,fp as le,a9 as h,h_ as ce,d_ as P,aY as de,hK as R,eE as B,V as ue,a5 as _,jk as ge,jl as me,bi as pe,jm as ve,jn as fe,g9 as he,jo as xe,jp as je,jq as ye,ew as Ce,af as Ne,ey as Ee}from"./index-GIL7oGEO.js";import{a as t}from"./jsx-runtime-DPjLkJKQ.js";import{r as g}from"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";import{s as T,g as x,c as M,f as z,i as Se,b as J,p as ke,r as U,d as Te,e as be,m as Ae,h as $e,j as we,a as Re}from"./generation-jobs-BQrXbGp_.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./index-CinJrH5C.js";import"./three.module-D396a9Mn.js";function j(e){switch(e.status){case"queued":return"queued";case"running":return"running";case"failed":return"failed";case"cancelled":return"cancelled";default:return e.acceptedAt?"ready":e.accept?e.pollError?"save-failed":"saving":"no-asset"}}function q(e){const n=j(e);return n!=="queued"&&n!=="running"&&n!=="saving"}function F(e,n){return e.status==="succeeded"&&!!e.accept&&!e.acceptedAt&&!!(e.pollError??n)}const b={queued:"Queued",running:"Running",saving:"Saving","save-failed":"Couldn't save",ready:"In project","no-asset":"No file",failed:"Failed",cancelled:"Cancelled"},Ge=new Map([...["png","jpg","jpeg","webp","gif","avif","svg","bmp"].map(e=>[e,"image"]),...["mp4","webm","ogv","mov","m4v"].map(e=>[e,"video"]),...["mp3","wav","ogg","oga","m4a","flac","aac"].map(e=>[e,"audio"]),...["glb","gltf","fbx","obj","stl","ply","dae","3ds","usdz","spz"].map(e=>[e,"model"])]);function Ie(e){const n=e.slice(e.lastIndexOf("/")+1).toLowerCase(),a=n.lastIndexOf(".");return a>0?n.slice(a+1):""}function L(e){return(e.outputPaths??[]).map(n=>{const a=V.find(r=>n.startsWith(`${r}/`)),i=a?Y(a,n.slice(a.length+1)):null;return{path:n,name:n.slice(n.lastIndexOf("/")+1),kind:Ge.get(Ie(n))??"file",url:i}})}function G(e,n){const a=e.trim();return a.length<=n?a:`${a.slice(0,n-1).trimEnd()}…`}function N(e){const n=Pe(e);if(n)return n;const a=L(e);if(a.length===0)return G(e.label,64);const i=a[0],r=De(i.path);return a.length>1?r?`${r} · ${a.length} files`:`${a.length} files`:Oe.test(i.name)?r?`${r}/${i.name}`:G(e.label,64):i.name}const Oe=/^(image|video|audio|model|panorama|output)(-\d+)?\./;function De(e){const n=e.split("/").slice(-2,-1)[0];return n?/^[0-9a-f]{8,}$/i.test(n)||/^[0-9a-f-]{16,}$/i.test(n)?null:n:null}function Pe(e){const n=e.accept?.input;if(!n||typeof n!="object")return null;const a=n.outputName;return typeof a=="string"&&a.trim().length>0?a.trim():null}function Be(e){for(const n of[e.accept?.input,e.poll.input]){const a=W(n,0);if(a)return a}return null}function W(e,n){if(n>3||typeof e!="object"||e===null)return null;const a=e,i=a.prompt;if(typeof i=="string"&&i.trim().length>0)return i.trim();for(const r of Object.values(a)){const o=W(r,n+1);if(o)return o}return null}function I(e){return e.operation}function _e(e){return e.mode==="managed"?"VGAI subscription":e.mode==="direct"?"Your provider key":"Mock"}function Me(e){return e.route==="mock"?"Free · mock":e.route==="managed"?e.settledCredits!==void 0?`${e.settledCredits} credits`:e.estimatedCredits!==void 0?`Up to ${e.estimatedCredits} credits`:"Credit estimate unavailable":e.settledAmount!==void 0?`$${e.settledAmount.toFixed(3)}`:e.estimatedAmount!==void 0?`Up to $${e.estimatedAmount.toFixed(3)}`:"USD estimate unavailable"}function ze(e){return e.route==="mock"?!0:e.route==="managed"?e.settledCredits!==void 0:e.settledAmount!==void 0}function Je(e){const n=Math.floor((Date.now()-Date.parse(e))/6e4);if(!Number.isFinite(n)||n<1)return"just now";if(n<60)return`${n}m ago`;const a=Math.floor(n/60);if(a<24)return`${a}h ago`;const i=Math.floor(a/24);return i<7?`${i}d ago`:`${Math.floor(i/7)}w ago`}const S="generation:",Ue="generation:create";function qe(e){return e.route==="mock"?"Free mock":e.route==="managed"?e.settledCredits!==void 0?`${e.settledCredits} credits settled`:e.estimatedCredits!==void 0?`Up to ${e.estimatedCredits} credits`:"VGAI subscription · estimate unavailable":e.settledAmount!==void 0?`$${e.settledAmount.toFixed(3)} settled`:e.estimatedAmount!==void 0?`Up to $${e.estimatedAmount.toFixed(3)}`:"BYOK · estimate unavailable"}function K(e){return O({id:`${S}${e.id}`,title:e.label,kind:"generation",workspaceRole:"authored-subject",provenance:{origin:`${e.provider}:${e.externalId}`},Content:We,closeable:!0,presentation:()=>({kind:"generation",id:e.id})})}function k(){return O({id:Ue,title:"Create Asset",kind:"generation",workspaceRole:"workspace-task",provenance:{origin:"registered generation tools"},Content:Fe,closeable:!0,presentation:()=>({kind:"generation",id:"create"})})}function Fe(){g.useSyncExternalStore(D,E),g.useSyncExternalStore(Q,$,$);const e=ee(),[n,a]=g.useState(""),i=n.trim().toLowerCase(),r=E().filter(s=>s.point==="workspace.document"&&s.tool?.generation?.role==="submit").filter(s=>i?[s.title,s.tool?.generation?.provider,s.tool?.summary,s.tool?.description].filter(Boolean).some(c=>String(c).toLowerCase().includes(i)):!0),o=new Map;for(const s of r){const c=s.tool?.generation?.provider??"other";o.set(c,[...o.get(c)??[],s])}return t.jsxs("div",{className:"vgai-tool-page","data-testid":"generation-create-catalog",children:[t.jsxs("header",{className:"vgai-tool-header",children:[t.jsx("div",{className:"vgai-tool-eyebrow",children:"Installed provider extensions"}),t.jsx("h2",{className:"vgai-tool-title",children:"Create an asset"}),t.jsxs("p",{className:"vgai-tool-description",children:["Choose a native provider operation. Mock, managed, and BYOK execution remain explicit in the operation you open. Current default: ",e.preferredRoute,"."]})]}),t.jsx(X,{type:"search","aria-label":"Search generation tools",placeholder:"Search operations or providers…",value:n,onChange:s=>a(s.target.value)}),[...o.entries()].map(([s,c])=>t.jsxs("section",{className:"vgai-tool-card",children:[t.jsx("h3",{className:"vgai-tool-section-title",children:s}),t.jsx("div",{className:"vgai-generation-create-grid",children:c.map(m=>t.jsxs(v,{variant:"ghost",className:"vgai-generation-create-card",onClick:()=>H(null,m.id),children:[t.jsx("strong",{children:m.title}),t.jsx("span",{children:m.tool?.summary})]},m.id))})]},s)),r.length===0&&t.jsx("div",{className:"vgai-generation-document-empty",children:"No installed generation operation matches this search."})]})}function Le({job:e,result:n,documentId:a,active:i}){g.useSyncExternalStore(D,E),g.useSyncExternalStore(te,w,w);const r=ne(e.poll.tool,e,n);if(!r)return t.jsx("pre",{className:"vgai-generation-native-result",children:JSON.stringify(n,null,2)});const o=r.Component;return t.jsx(ae,{file:r.file,children:t.jsx(o,{tool:r.tool,contributionId:r.id,client:oe(),surfaces:re,account:se(),play:ie(),documentId:a,active:i,job:e,result:n})})}function We({documentId:e,active:n}){const{jobs:a}=g.useSyncExternalStore(T,x,x),i=e.startsWith(S)?e.slice(S.length):e,r=a.find(u=>u.id===i),[o,s]=g.useState(),[c,m]=g.useState(!1),[d,l]=g.useState(null),[p,f]=g.useState(!1),y=async u=>{m(!0),l(null);try{s(await Se(u))}catch(C){l(C instanceof Error?C.message:String(C))}finally{m(!1)}};if(g.useEffect(()=>{r&&y(r)},[r?.id,r?.status]),!r)return t.jsx("div",{className:"vgai-generation-document-empty",children:"This generation is no longer in project activity."});const A=d??(j(r)==="save-failed"?`Could not save into the project: ${r.pollError}`:null);return t.jsxs("div",{className:"vgai-generation-document","data-status":r.status,children:[t.jsxs("header",{className:"vgai-generation-document-header",children:[t.jsxs("div",{children:[t.jsxs("div",{className:"vgai-tool-eyebrow",children:[r.provider," · ",r.operation]}),t.jsx("h2",{className:"vgai-tool-title",children:r.label}),t.jsxs("div",{className:"vgai-generation-job-meta",children:[b[j(r)]," · ",qe(r.billing)]})]}),t.jsxs("div",{className:"vgai-tool-actions",children:[t.jsx(v,{size:"compact",variant:"ghost",disabled:c,onClick:()=>void y(r),children:c?"Refreshing…":"Refresh"}),F(r,d)&&t.jsx(v,{size:"compact",variant:"primary",disabled:p,onClick:()=>{f(!0),l(null),M(r).catch(u=>l(u instanceof Error?u.message:String(u))).finally(()=>f(!1))},children:p?"Saving…":"Retry save"})]})]}),r.message&&t.jsx("div",{className:"vgai-tool-status",children:r.message}),A&&t.jsx("div",{className:"vgai-tool-status","data-tone":"error",role:"alert",children:A}),t.jsx("section",{className:"vgai-generation-result","aria-label":"Generation result",children:o===void 0?t.jsx("div",{className:"vgai-generation-document-empty",children:c?"Loading provider result…":"No provider result is available yet."}):t.jsx(Le,{job:r,result:o,documentId:e,active:n})}),r.outputPaths&&r.outputPaths.length>0&&t.jsxs("section",{className:"vgai-generation-output-paths",children:[t.jsx("strong",{children:"Project assets"}),r.outputPaths.map(u=>t.jsx("code",{children:u},u))]}),q(r)&&t.jsx("div",{className:"vgai-generation-document-footer",children:t.jsx(v,{size:"compact",variant:"ghost",disabled:p,onClick:()=>{f(!0),z(r.id).then(()=>Z(e)).catch(u=>l(u instanceof Error?u.message:String(u))).finally(()=>f(!1))},children:"Remove from activity"})})]})}function Ke({output:e,onOpen:n}){const a=e.url;if(a&&e.kind==="image"){const i=t.jsx("img",{className:"vgai-generation-output-media",src:a,alt:e.name,loading:"lazy"});return n?t.jsx(v,{variant:"ghost",className:"vgai-generation-output-open",onClick:n,"aria-label":`Open ${e.name}`,children:i}):i}return a&&e.kind==="video"?t.jsx("video",{className:"vgai-generation-output-media",src:a,controls:!0,preload:"metadata",playsInline:!0,title:e.name}):a&&e.kind==="audio"?t.jsxs("div",{className:"vgai-generation-output-audio",children:[t.jsx(me,{url:a,name:e.name}),t.jsx("audio",{src:a,controls:!0,preload:"metadata",title:e.name})]}):e.url&&e.kind==="model"&&pe(e.url)?t.jsx(ve,{url:e.url}):t.jsxs("div",{className:"vgai-generation-output-file",children:[t.jsx(_,{icon:e.kind==="model"?fe:he}),t.jsx(h,{variant:"caption",tone:"muted",children:e.name}),n&&t.jsx(v,{size:"compact",variant:"ghost",onClick:n,children:"Open file"})]})}const Ve={queued:"loading",running:"loading",saving:"loading","save-failed":"error",ready:"success","no-asset":"neutral",failed:"error",cancelled:"neutral"},Ye={queued:e=>e.queuePosition===void 0?"Waiting for the provider to start.":`Position ${e.queuePosition} in the provider queue.`,running:e=>e.message??"The provider is working on it.",saving:()=>"Downloading the finished output into this project.","save-failed":e=>e.pollError??"The finished output could not be saved.",ready:()=>"Saved into this project.","no-asset":()=>"The operation finished without a file this project can hold.",failed:e=>e.message??"The provider reported a failure.",cancelled:()=>"This generation was cancelled."};function Qe({job:e,state:n}){const a=n==="queued"||n==="running"||n==="saving",i=n==="failed"||n==="save-failed";return t.jsxs("div",{className:"vgai-generation-state-media","data-state":n,children:[t.jsx(P,{compact:!0,tone:Ve[n],...i?{icon:t.jsx(_,{icon:ge})}:{},title:b[n],description:Ye[n](e)}),a&&t.jsx("progress",{className:"vgai-generation-progress","aria-label":`${e.label} progress`,...n==="running"&&e.progress!==void 0?{value:e.progress,max:1}:{}})]})}function Xe({job:e,busy:n,error:a,run:i}){return t.jsxs("div",{className:"vgai-generation-card-actions",children:[F(e,a)&&t.jsx(v,{size:"compact",variant:"primary",disabled:n,onClick:()=>i(()=>M(e)),children:n?"Saving…":"Retry save"}),t.jsx(v,{size:"compact",variant:"ghost",onClick:()=>K(e),children:"Details"}),q(e)&&t.jsx(v,{size:"compact",variant:"ghost",disabled:n,onClick:()=>i(()=>z(e.id)),children:"Remove"})]})}function He({job:e,busy:n,error:a,run:i}){const r=de(),o=j(e),s=L(e),c=Be(e),m=be(e),d=l=>{if(!l.url)return;const p=xe(je(l.name));if(p)return()=>ye(r,l.url,p)};return t.jsxs("article",{className:"vgai-generation-card","data-state":o,"aria-busy":J(e),"aria-label":N(e),onClickCapture:()=>{m&&Ae(e.id).catch(l=>{ue.warn(`Could not mark generation as seen: ${l instanceof Error?l.message:String(l)}`,"generations")})},children:[t.jsx("div",{className:"vgai-generation-card-media","data-outputs":Math.min(s.length,4),children:s.length===0?t.jsx(Qe,{job:e,state:o}):s.map(l=>t.jsx("div",{className:"vgai-generation-output",title:l.path,children:t.jsx(Ke,{output:l,onOpen:d(l)})},l.path))}),t.jsxs("div",{className:"vgai-generation-card-body",children:[t.jsxs("div",{className:"vgai-generation-card-heading",children:[t.jsx(h,{variant:"label",truncate:!0,title:N(e),children:N(e)}),t.jsxs(R,{className:"vgai-generation-chip","data-state":o,children:[b[o],o==="running"&&e.progress!==void 0?` · ${Math.round(e.progress*100)}%`:""]}),m&&t.jsx(R,{className:"vgai-generation-chip","data-state":"new",children:"New"})]}),t.jsxs(h,{variant:"caption",tone:"muted",truncate:!0,title:I(e),children:[e.provider," · ",I(e)]}),t.jsxs(h,{variant:"caption",tone:"dim",children:[Me(e.billing),ze(e.billing)?"":" (est.)"," · ",_e(e)," ·"," ",Je(e.updatedAt)]}),c&&t.jsx("p",{className:"vgai-generation-card-prompt",title:c,children:c}),(a??e.pollError)&&t.jsx(B,{tone:a||o==="save-failed"?"error":"warning",className:"vgai-generation-card-alert",children:a??(o==="save-failed"?`Could not save into the project: ${e.pollError}`:`Polling will retry: ${e.pollError}`)}),t.jsx(Xe,{job:e,busy:n,error:a,run:i})]})]})}function Ze(){const{jobs:e}=g.useSyncExternalStore(T,x,x),[n,a]=g.useState(null),[i,r]=g.useState({}),o=e.filter(J).length,s=e.filter(d=>j(d)==="saving").length,c=async(d,l)=>{a(d),r(p=>{const f={...p};return delete f[d],f});try{await l()}catch(p){const f=p instanceof Error?p.message:String(p);r(y=>({...y,[d]:f}))}finally{a(null)}},m=Te();return t.jsxs("div",{className:"vgai-generation-gallery",children:[t.jsxs(le,{label:"Generations",compact:!0,className:"vgai-generation-gallery-bar",children:[t.jsx(h,{variant:"label",children:"Generations"}),t.jsxs(h,{variant:"caption",tone:"muted",children:[e.length," ",e.length===1?"generation":"generations",o>0?` · ${o} running`:"",s>0?` · ${s} saving`:""]}),t.jsx(ce,{}),t.jsx(v,{size:"compact",variant:"ghost",onClick:()=>void ke().then(U),children:"Refresh"}),t.jsx(v,{size:"compact",variant:"primary",onClick:()=>k(),children:"New asset"})]}),m&&t.jsx(B,{tone:"error",className:"vgai-generation-gallery-alert",children:m}),e.length===0?t.jsx(P,{className:"vgai-generation-gallery-empty",title:"No generated assets yet",description:"Preview generated images, video, audio and models here. Create an asset to get started.",action:t.jsx(v,{size:"compact",variant:"primary",onClick:()=>k(),children:"New asset"})}):t.jsx("section",{className:"vgai-generation-grid","aria-label":"Generated assets",children:e.map(d=>t.jsx(He,{job:d,busy:n===d.id,error:i[d.id]??null,run:l=>void c(d.id,l)},d.id))})]})}const mt="workspace.service",et="generation";function tt(){const e=Re(x().jobs);return e>0?{count:e,severity:"info"}:null}function pt(){const e=[$e(),Ce({...Ne.generations,order:15,Content:Ze,badge:tt,subscribeBadge:T,badgeSnapshot:we,visibleByDefault:!1,closeable:!0}),Ee({id:et,owner:"@volter/editor-game/generation",open:(n,a)=>{if(a.id==="create")return k();const i=x().jobs.find(r=>r.id===a.id);return i?K(i):null},settle:U})];return()=>{for(const n of e)n()}}export{mt as point,pt as start};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c7 as p,r as o,v as n,L as e,t as l,u as t,c4 as m,ds as c}from"./index-GIL7oGEO.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"./three.module-D396a9Mn.js";const u=m(["queued","running","succeeded","failed","cancelled"]),g=p("route",[o({route:n("mock")}).strict(),o({route:n("managed"),estimatedCredits:e().nonnegative().optional(),settledCredits:e().nonnegative().optional()}).strict(),o({route:n("byok"),currency:n("USD"),estimatedAmount:e().nonnegative().optional(),settledAmount:e().nonnegative().optional()}).strict()]),r=o({tool:t().min(1),input:c()}).strict(),v=o({id:t().min(1),provider:t().min(1),externalId:t().min(1),label:t().min(1),operation:t().min(1),mode:m(["mock","direct","managed"]),status:u,createdAt:t().datetime(),updatedAt:t().datetime(),progress:e().min(0).max(1).optional(),providerStatus:t().optional(),queuePosition:e().int().nonnegative().optional(),message:t().optional(),lastPolledAt:t().datetime().optional(),lastProviderChangeAt:t().datetime().optional(),pollError:t().optional(),pollErrorAt:t().datetime().optional(),pollFailureCount:e().int().nonnegative().optional(),nextPollAt:t().datetime().optional(),billing:g,poll:r,cancel:r.optional(),accept:r.optional(),acceptedAt:t().datetime().optional(),readAt:t().datetime().optional(),provenanceOperationId:t().optional(),outputPaths:l(t()).optional()}).strict(),y=o({version:n(1),jobs:l(v)}).strict();function J(d,s){if(d!=="managed")return{};const{estimatedCredits:i,settledCredits:a}=s;return i===void 0&&a===void 0?{}:{billing:{route:"managed",...i===void 0?{}:{estimatedCredits:i},...a===void 0?{}:{settledCredits:a}}}}export{g as GenerationBillingSchema,v as GenerationJobSchema,u as GenerationJobStatusSchema,y as GenerationJobsDocumentSchema,J as managedBilling};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as e}from"./jsx-runtime-DPjLkJKQ.js";import{a4 as r,q as a,af as i}from"./index-GIL7oGEO.js";import{r as p}from"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";import{s as u,g as s,a as c,b as m}from"./generation-jobs-BQrXbGp_.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./index-D_NuPfjr.js";import"./index-CinJrH5C.js";import"./three.module-D396a9Mn.js";const $="workspace.status",C="Generations",T="left",U=24;function j(){const{jobs:o}=p.useSyncExternalStore(u,s,s),n=c(o),t=o.filter(m).length;return e.jsxs(r,{type:"button",variant:"ghost",size:"compact",className:"vgai-status-action","data-testid":"status-generations","aria-label":`Generations, ${n} unseen, ${t} running`,title:`${n} unseen generation results, ${t} running — open Generations`,onClick:()=>a().workspace.showUtility(i.generations.id),children:["Generations · ",n,t>0?` · ${t} running`:""]})}export{T as align,j as default,U as order,$ as point,C as title};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{getObjectMark as o,setObjectMark as e}from"./object-marks-DwvIEBOK.js";function a(t,n){e(t,"vgaiComponentRoot",n)}function r(t){const n=o(t,"vgaiComponentRoot");return typeof n=="string"&&n?n:void 0}function u(t){return r(t)!==void 0}function m(t){e(t,"vgaiBuiltInternal",!0)}function c(t){return o(t,"vgaiBuiltInternal")===!0}export{r as componentRootName,c as isBuiltInternal,u as isComponentRoot,m as markBuiltInternal,a as markComponentRoot};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function O(M){const{input:P,surface:m,designSize:n}=M;let a=n?{x:n.x/2,y:n.y/2}:{x:0,y:0},h="default";const c=[],p=new Map,l=new Map,S=()=>{const t=new Set(p.values());let e=0;for(;t.has(e);)e+=1;return e},d=t=>{c.push(t),c.length>256&&c.shift()},E=(t,e,i)=>{const o=l.get(t.pointerId),s=o===void 0?{x:0,y:0}:{x:e.x-o.position.x,y:e.y-o.position.y},f=o===void 0?{x:0,y:0}:{x:i.x-o.screenPosition.x,y:i.y-o.screenPosition.y},r=o===void 0?0:Math.max(0,t.timeStamp-o.timestamp)/1e3,U=r>0?{x:s.x/r,y:s.y/r}:{x:0,y:0},X=r>0?{x:f.x/r,y:f.y/r}:{x:0,y:0},y={position:e,screenPosition:i,relative:s,screenRelative:f,velocity:U,screenVelocity:X,pressure:Number.isFinite(t.pressure)?Math.max(0,Math.min(1,t.pressure)):0,tilt:{x:Number.isFinite(t.tiltX)?t.tiltX:0,y:Number.isFinite(t.tiltY)?t.tiltY:0},penInverted:!1};if(t.type==="pointerdown"){const I=S();p.set(t.pointerId,I),l.set(t.pointerId,{position:e,screenPosition:i,timestamp:t.timeStamp}),d({phase:"start",canceled:!1,index:I,...y});return}const x=p.get(t.pointerId);if(x!==void 0){if(t.type==="pointerup"||t.type==="pointercancel"){p.delete(t.pointerId),l.delete(t.pointerId),d({phase:"end",canceled:t.type==="pointercancel",index:x,...y});return}l.set(t.pointerId,{position:e,screenPosition:i,timestamp:t.timeStamp}),d({phase:"move",canceled:!1,index:x,...y})}},T=(t,e)=>{const i=t.clientX-e.left,o=t.clientY-e.top;return n?{x:i*n.x/e.width,y:o*n.y/e.height}:{x:i,y:o}},g=t=>{if(!P.isInputActive())return;const e=m?.()??(t.target instanceof HTMLElement?t.target:null);if(e===null)return;const i=e.getBoundingClientRect();if(i.width<=0||i.height<=0)return;const o={x:t.clientX-i.left,y:t.clientY-i.top},s=T(t,i);t.type==="pointermove"&&(a=s,e.style.cursor=h),t.pointerType==="touch"&&E(t,s,o)},w=["pointerdown","pointermove","pointerup","pointercancel"],u=typeof window>"u"?null:m?.()??window;if(u!==null)for(const t of w)u.addEventListener(t,g);return{getPosition(){return a},setPosition(t){a={x:t.x,y:t.y}},takeTouches(){return c.splice(0,c.length)},setCursor(t){h=t},dispose(){if(u!==null)for(const t of w)u.removeEventListener(t,g)}}}export{O as createHostPointer};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{c6 as E,u as l,r as y,k0 as P,t as b,bb as T}from"./index-GIL7oGEO.js";import{i as x}from"./relative-path-guard-GiM7Lsz8.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"./three.module-D396a9Mn.js";const d=".vgai/assets.json",k=y({key:l().min(1),license:l().min(1).optional(),sourceHash:l().regex(/^sha256-[a-f0-9]{64}$/,'sourceHash must be "sha256-<64 hex>"').optional(),materializedAt:l().datetime()}).strict(),O=E(l().min(1),k);function z(e){if(!/^[a-f0-9]{64}$/.test(e))throw new Error(`Not a sha256 digest, refusing to record it as a sourceHash: ${e}`);return`sha256-${e}`}function m(e){const t=e.replaceAll("\\","/").replace(/^\.\//,"").replace(/^\/+/,"");if(!t)throw new Error("An asset ledger path cannot be empty.");if(!x(t))throw new Error(`An asset ledger path cannot escape the project: ${e}`);return t}function _(e){return O.parse(e)}function D(e){if(e==null||e.trim()==="")return{};let t;try{t=JSON.parse(e)}catch(s){throw new Error(`${d} is not valid JSON: ${String(s)}`)}return _(t)}function I(e,t,s){const r=m(t),n=k.parse(s),a={...e,[r]:n},i={};for(const u of Object.keys(a).sort())i[u]=a[u];return i}function M(e){const t={};for(const s of Object.keys(e).sort())t[s]=e[s];return`${JSON.stringify(t,null,2)}
|
|
2
|
+
`}function U(e,t,s){const r=globalThis.navigator?.locks;return r?r.request(`vgai:${e}:${P(t)}`,s):s()}const H=1e4,N=15;function j(){return globalThis.crypto?.randomUUID?.()??`${Date.now()}-${Math.random()}`}async function R(e,t,s={}){const r=s.staleAfterMs??H,n=s.retryDelayMs??N,a=s.now??Date.now,i=s.sleep??(o=>new Promise(c=>setTimeout(c,o))),u=s.token??j;for(;;){const o=JSON.stringify({at:a(),owner:s.owner??"unknown",token:u()});if(await e.createIfAbsent(o))try{return await t()}finally{await e.removeIfHeldBy(o)}const c=await e.read();if(c!==null){if(a()-B(c)>r){await e.removeIfHeldBy(c);continue}await i(n)}}}function B(e){try{const t=JSON.parse(e);return typeof t.at=="number"?t.at:0}catch{return 0}}function J(){const e=new Map;return(t,s)=>{const n=(e.get(t)??Promise.resolve()).then(s,s),a=n.then(()=>{},()=>{});return e.set(t,a),a.then(()=>{e.get(t)===a&&e.delete(t)}),n}}async function S(e){return await e.exists(d)?D(await e.read(d)):{}}async function F(e,t){await e.write(d,M(t))}const f=`${d}.lock`,C=J(),A=new WeakMap;let $=0;function K(e){const t=A.get(e);if(t!==void 0)return t;$+=1;const s=`${e.id}#${$}`;return A.set(e,s),s}async function W(e,t){const s={key:t.key,...t.license?{license:t.license}:{},...t.sourceSha256?{sourceHash:z(t.sourceSha256)}:{},materializedAt:t.materializedAt??new Date().toISOString()};await C(K(e),()=>R({createIfAbsent:r=>e.writeIfAbsent(f,r),read:async()=>await e.exists(f)?e.read(f):null,removeIfHeldBy:r=>U(e.id,f,async()=>{await e.exists(f)&&await e.read(f)===r&&await e.remove(f)})},async()=>{const r=await S(e);await F(e,I(r,m(t.destPath),s))},{owner:e.id}))}const G=y({key:l().regex(/^[^:]+:.+$/,'An asset key must be "source:id"'),dest:l().min(1),sha256:l().regex(/^[a-f0-9]{64}$/,"A pack entry must pin the sha256 of its bytes as 64 lowercase hex digits")}).strict(),Y=y({packs:E(l().min(1),b(G))}).strict();function q(e){return Y.parse(e)}function V(e){const t=[],s=new Map;for(const[r,n]of Object.entries(e.packs))for(const a of n){const i=s.get(a.dest);if(i!==void 0)throw new Error(`Two packs declare the same destination "${a.dest}": "${i}" and "${r}".`);s.set(a.dest,r),t.push({...a,pack:r})}return t}const w="asset-manifest.json",v="https://vgai-asset-library.aaron-0ed.workers.dev";function L(e){return(e.baseUrl??v).replace(/\/+$/,"")}function Q(e){return e.signal?{signal:e.signal}:{}}async function X(e,t={}){const s=L(t),r=await fetch(`${s}/v1/assets/${encodeURIComponent(e)}`,Q(t));if(!r.ok)return null;const n=await r.json();return!n||typeof n!="object"||!Array.isArray(n.files)?null:n}function Z(e,t,s,r){return`${L(e?{baseUrl:e}:{})}/v1/assets/${encodeURIComponent(t)}/files/${s}`}async function we(e,t={}){const s=await ee(e),r={declared:s.length,materialized:[],alreadyPresent:[],failed:[]};if(s.length===0)return r;const n=await S(e);for(const a of s){if(t.signal?.aborted)break;if(n[m(a.dest)]&&await e.exists(a.dest)){r.alreadyPresent.push(a),t.onProgress?.(a,"already-present");continue}try{await te(e,a,t),r.materialized.push(a),t.onProgress?.(a,"materialized")}catch(i){r.failed.push({entry:a,reason:i instanceof Error?i.message:String(i)}),t.onProgress?.(a,"failed")}}return r}async function ee(e){if(!await e.exists(w))return[];const t=await e.read(w);let s;try{s=JSON.parse(t)}catch(r){throw new Error(`${w} is not valid JSON: ${r instanceof Error?r.message:String(r)}`)}return V(q(s))}async function te(e,t,s){const r=await se(t,s);await e.write(t.dest,r.bytes),await W(e,{destPath:t.dest,key:t.key,license:r.license,sourceSha256:t.sha256})}async function se(e,t={}){const s=e.key.indexOf(":");if(s<0)throw new Error(`Malformed asset key "${e.key}" (expected "source:id").`);const r=e.key.slice(0,s),n=e.key.slice(s+1);if(r!=="local")throw new Error(`Asset key "${e.key}": only the "local" (cloud-hosted) source can be materialized from the cloud worker.`);const a=t.baseUrl??v,i=t.signal?{baseUrl:a,signal:t.signal}:{baseUrl:a},u=await X(n,i);if(!u)throw new Error(`"${e.key}" is not hosted by the cloud asset library.`);const o=u.files[0];if(!o)throw new Error(`"${e.key}" has no files in the cloud library.`);if(o.dependencies.length>0)throw new Error(`"${e.key}" has ${o.dependencies.length} dependency file(s) — a pack entry names exactly one destination file.`);if(o.main.sha256!==e.sha256)throw new Error(`"${e.key}" → ${e.dest}: the cloud library reports sha256:${o.main.sha256} but ${w} pins sha256:${e.sha256}. Nothing was fetched or written; the pin is only re-cut by a reviewed change to the declaration.`);const c=Z(a,n,0),h=await fetch(c,t.signal?{signal:t.signal}:{});if(!h.ok)throw new Error(`${c} returned ${h.status} ${h.statusText}.`);const g=new Uint8Array(await h.arrayBuffer()),p=await T(g);if(p!==e.sha256)throw new Error(`"${e.key}" → ${e.dest}: ${c} delivered sha256:${p} but the declaration pins sha256:${e.sha256}. Nothing was written.`);return{bytes:g,license:u.license}}export{w as ASSET_MANIFEST_PATH,se as fetchVerifiedPackEntry,we as materializeDeclaredAssetPacks};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import{aT as s,i as d,R as u,a7 as p,bD as f}from"./three.module-D396a9Mn.js";const o="vgaiIblWorldPosition";function m(){return s.envmap_physical_pars_fragment.replaceAll("getIBLIrradiance","getBaseIBLIrradiance").replaceAll("getIBLRadiance","getBaseIBLRadiance")}function v(e){return(Array.isArray(e.material)?e.material:[e.material]).filter(a=>!!a.isMeshStandardMaterial)}function y(){const e=new d(new Uint8Array(1024),16,16,u,p);return e.mapping=f,e.needsUpdate=!0,e}function _(e,n){const a=e.onBeforeCompile,i=e.customProgramCacheKey;let t=null;return e.onBeforeCompile=(r,c)=>{a.call(e,r,c),l(r.vertexShader,"#include <worldpos_vertex>"),l(r.fragmentShader,"#include <envmap_physical_pars_fragment>"),r.vertexShader=`varying vec3 ${o};
|
|
2
|
+
${r.vertexShader.replace("#include <worldpos_vertex>",`#include <worldpos_vertex>
|
|
3
|
+
#if defined(USE_ENVMAP)
|
|
4
|
+
${o} = worldPosition.xyz;
|
|
5
|
+
#endif`)}`,r.fragmentShader=`varying vec3 ${o};
|
|
6
|
+
${r.fragmentShader.replace("#include <envmap_physical_pars_fragment>",n.fragment())}`,t=r,n.onCompile?.(r)},e.customProgramCacheKey=()=>`${i.call(e)}|${n.cacheKey()}`,e.needsUpdate=!0,{material:e,get shader(){return t},restore(){e.onBeforeCompile=a,e.customProgramCacheKey=i,e.needsUpdate=!0,t=null}}}function l(e,n){if(!e.includes(n))throw new Error(`overrideMaterialIbl needs three's ${n} shader chunk, and this material's program no longer contains it.`)}export{o as IBL_WORLD_POSITION,m as baseIblFunctions,y as createIblSentinelTexture,_ as overrideMaterialIbl,v as standardMaterialsOf};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as q}from"./renderer-config-BqG4O8i9.js";import{r3fRootFactory as w,resolveR3FEntryAdapter as z}from"./r3f-root-factory-z9llD1OU.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./register-render-vitals-BiZk29b2.js";import"./render-census-BrQX_CXv.js";import"./structural-signature-0w-i_ats.js";import"./render-vitals-BZ5HtvMi.js";import"./static-batch-advisor-B13QEH7d.js";import"./index-GIL7oGEO.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./three.module-D396a9Mn.js";import"./webgl-frame-capture-FlF9zQmW.js";import"./world-state-BWG-IcOd.js";import"./debug-registry-Dgvitx8M.js";import"./frame-selector-cache-cCeUbcjG.js";import"./dev-build-gDYrq68M.js";import"./game-input-seams-CIQdetRw.js";import"./seeded-random-i3mtgBKZ.js";import"./render-seed-DF4JHy7P.js";import"./frame-delta-D2nsw_Ht.js";import"./events-156d8d12.esm-ErOhDXXB.js";import"./index-bQE2NA0D.js";export{q as applyWorldRendererConfig,w as r3fRootFactory,z as resolveR3FEntryAdapter};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{aa as nt,bo as st,ao as ot,ei as E,b5 as U,a4 as at,ht as it,hu as rt}from"./index-GIL7oGEO.js";import{hv as Rt,hw as Ft,hx as Nt,aV as Ct,bp as _t,hy as jt,hz as kt,hA as Ot,hB as Lt,hC as Bt,hD as Pt,hE as Gt,e6 as $t,hF as Ht,eo as Vt,hG as Wt,hH as zt,hI as Kt,hJ as Jt,dg as Ut,hK as qt,eE as Qt,a5 as Xt,dO as Yt,hL as Zt,fe as te,hM as ee,hN as ne,fp as se,hO as oe,hP as ae,hQ as ie,el as re,eF as ce,hR as ue,eG as le,hS as de,f6 as pe,hT as fe,f8 as he,fP as me,hU as xe,hV as Ee,hW as ge,hX as Se,er as Te,hh as be,ab as De,fr as Me,fq as ye,fs as Ie,hY as ve,aW as Ae,hZ as we,aX as Re,em as Fe,h_ as Ne,h$ as Ce,i0 as _e,d_ as je,i1 as ke,g4 as Oe,a9 as Le,ep as Be,hg as Pe,i2 as Ge,fQ as $e,i3 as He,f7 as Ve,i4 as We,i5 as ze,dQ as Ke,i6 as Je,i7 as Ue,i8 as qe,i9 as Qe,ia as Xe,dM as Ye,dN as Ze,ib as tn,ic as en,id as nn,ie as sn,dU as on,ig as an,ih as rn,ii as cn,ij as un,ik as ln,a6 as dn,il as pn,im as fn,io as hn,ip as mn,iq as xn,ir as En,dV as gn,is as Sn,it as Tn,dR as bn,iu as Dn,iv as Mn,iw as yn,dh as In,ix as vn,iy as An,iz as wn,iA as Rn,iB as Fn,iC as Nn,iD as Cn,ej as _n,iE as jn,iF as kn,iG as On,iH as Ln,iI as Bn,iJ as Pn,dW as Gn,iK as $n,iL as Hn,iM as Vn,eq as Wn,iN as zn,iO as Kn,iP as Jn,iQ as Un,bE as qn,dP as Qn,iR as Xn,iS as Yn,iT as Zn,dT as ts,iU as es,bg as ns,bn as ss,iV as os,iW as as,iX as is,bD as rs}from"./index-GIL7oGEO.js";import{C as us}from"./ColorInput-DQBNrW-K.js";import{a as p}from"./jsx-runtime-DPjLkJKQ.js";import{r as b}from"./index-nmcBqr7Y.js";import{A as ds,k as ps,B as fs,a as hs,l as ms,C as xs,D as Es,m as gs,F as Ss,h as Ts,G as bs,n as Ds,Q as Ms,S as ys,f as Is,o as vs,T as As,d as ws,c as Rs,g as Fs,i as Ns,j as Cs,b as _s,p as js,e as ks,u as Os,q as Ls}from"./ShadowEditor-DkImwu1Y.js";import"./index-CtzuWnCS.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./index-CinJrH5C.js";import"./three.module-D396a9Mn.js";function Mt({preview:t,children:e,...i}){const[o,a]=b.useState(!1),l=b.useRef(null),c=b.useId(),s=()=>a(!1),d=r=>{l.current=r,a(!0)};let m=e;if(b.isValidElement(e)){const r=[e.props["aria-describedby"],o?c:null].filter(Boolean).join(" ");m=b.cloneElement(e,r?{"aria-describedby":r}:{})}return p.jsxs("span",{className:"vgai-tooltip-anchor",onMouseEnter:r=>d(r.currentTarget),onMouseLeave:s,onFocusCapture:r=>d(r.currentTarget),onBlurCapture:r=>{r.currentTarget.contains(r.relatedTarget)||s()},onKeyDown:r=>{r.key!=="Escape"||!o||(r.preventDefault(),r.stopPropagation(),s())},children:[m,o&&l.current&&p.jsx(nt,{...i,anchorRef:l,id:c,role:"tooltip",autoFocusFirst:!1,onDismiss:s,children:t})]})}function yt({value:t,onCommit:e,style:i,disabled:o=!1}){const a=t===void 0?"":JSON.stringify(t),[l,c]=b.useState(a),[s,d]=b.useState(!1),m=b.useRef(!1);b.useEffect(()=>{c(a),d(!1)},[a]);const r=()=>{if(m.current){m.current=!1;return}if(l===a){d(!1);return}let h;try{h=JSON.parse(l)}catch{d(!0);return}d(!1),e(h)};return p.jsxs("div",{children:[p.jsx(st,{"data-testid":"json-input","aria-invalid":s||void 0,"data-tone":s?"danger":void 0,disabled:o,value:l,onChange:h=>{c(h.target.value),s&&d(!1)},onBlur:r,onKeyDown:h=>{h.key==="Enter"?r():h.key==="Escape"&&(m.current=!0,c(a),d(!1),h.target.blur())},style:i,title:s?"Not valid JSON — nothing written. Fix the JSON or press Escape to revert.":void 0}),s&&p.jsx("div",{"data-testid":"json-input-error",style:{fontSize:"var(--vgai-font-sm)",color:ot.semantic.danger,marginTop:2},children:"Not valid JSON — nothing written. Fix the JSON or press Escape to revert."})]})}function A(t,e){return e+1<t.length?t[e+1].start:1}function ct(t){const e=t.map(o=>({time:o.start,value:o.function.p0})),i=t[t.length-1];return i&&e.push({time:1,value:i.function.p3}),e}function P(t){return t.map(e=>({start:e.start,function:{...e.function}}))}const B=.01;function C(t,e,i,o){const a=P(t),l=a.length;if(e<0||e>l)return a;if(e<l){const c=a[e],s=o-c.function.p0;if(c.function.p0=o,c.function.p1+=s,e>0){const d=a[e-1],m=o-d.function.p3;d.function.p3=o,d.function.p2+=m;const r=d.start+B,h=A(a,e)-B;c.start=Math.min(h,Math.max(r,i))}}else{const c=a[l-1],s=o-c.function.p3;c.function.p3=o,c.function.p2+=s}return a}function q(t,e,i,o){const a=P(t);return i==="out"&&e<a.length?a[e].function.p1=o:i==="in"&&e>0&&e<=a.length&&(a[e-1].function.p2=o),a}function M(t,e,i){return t+(e-t)*i}function It(t,e){for(let i=0;i<t.length;i++){const o=t[i].start,a=A(t,i);if(e>=o&&e<=a){const l=a>o?(e-o)/(a-o):0,{p0:c,p1:s,p2:d,p3:m}=t[i].function,r=M(c,s,l),h=M(s,d,l),g=M(d,m,l),I=M(r,h,l),v=M(h,g,l);return M(I,v,l)}}return 0}function ut(t,e){for(let i=0;i<t.length;i++){const o=t[i].start,a=A(t,i);if(e<=o+B||e>=a-B||e<o||e>a)continue;const l=(e-o)/(a-o),{p0:c,p1:s,p2:d,p3:m}=t[i].function,r=M(c,s,l),h=M(s,d,l),g=M(d,m,l),I=M(r,h,l),v=M(h,g,l),D=M(I,v,l),S=P(t);return S.splice(i,1,{start:o,function:{p0:c,p1:r,p2:I,p3:D}},{start:e,function:{p0:D,p1:v,p2:g,p3:m}}),S}return t}function Q(t,e){if(e<=0||e>=t.length)return t;const i=t[e-1],o=t[e],a=o.start-i.start,l=A(t,e)-o.start,c=a+l;if(c<=0)return t;const s=i.function,d=o.function,m={start:i.start,function:{p0:s.p0,p1:s.p0+(s.p1-s.p0)*(a>0?c/a:1),p2:d.p3+(d.p2-d.p3)*(l>0?c/l:1),p3:d.p3}},r=P(t);return r.splice(e-1,2,m),r}function lt(t){let e=Number.POSITIVE_INFINITY,i=Number.NEGATIVE_INFINITY;for(const o of t)for(const a of[o.function.p0,o.function.p1,o.function.p2,o.function.p3])a<e&&(e=a),a>i&&(i=a);return!Number.isFinite(e)||!Number.isFinite(i)?{min:0,max:1}:{min:e,max:i}}const _=34,X=6,z=6,dt=14,L=260;function pt(t){return Math.abs(t)>=100?t.toFixed(0):Math.abs(t)>=1?String(Math.round(t*100)/100):String(Math.round(t*1e3)/1e3)}function vt({value:t,onChange:e,onChangeEnd:i,disabled:o,height:a=90,color:l,testId:c="curve-editor"}){const[s,d]=b.useState(0),m=b.useRef(null),r=b.useRef(null),h=b.useMemo(()=>ct(t),[t]),g=b.useMemo(()=>{const{min:n,max:u}=lt(t);if(u-n<1e-6)return{min:n-1,max:u+1};const f=(u-n)*.1;return{min:n-f,max:u+f}},[t]),I=L-_-X,v=a-z-dt,D=n=>_+n*I,S=n=>z+(1-(n-g.min)/(g.max-g.min))*v,Y=n=>Math.max(0,Math.min(1,(n-_)/I)),Z=n=>g.min+(1-(n-z)/v)*(g.max-g.min),G=n=>{const u=m.current?.getBoundingClientRect();if(!u)return{t:0,v:0};const f=(n.clientX-u.left)/u.width*L,T=(n.clientY-u.top)/u.height*a;return{t:Y(f),v:Z(T)}},tt=b.useMemo(()=>{if(t.length===0)return"";let n=`M ${D(t[0].start)} ${S(t[0].function.p0)}`;for(let u=0;u<t.length;u++){const f=t[u],T=A(t,u),y=T-f.start;n+=` C ${D(f.start+y/3)} ${S(f.function.p1)}, ${D(f.start+2*y/3)} ${S(f.function.p2)}, ${D(T)} ${S(f.function.p3)}`}return n},[t,g,a]),w=n=>it({onChange:e,onChangeEnd:i},n),$=n=>rt({onChange:e},n),H=(n,u)=>{if(o)return;n.preventDefault(),n.stopPropagation(),r.current=t;const f=y=>{const{t:N,v:W}=G(y),O=u(r.current??t,N,W);r.current=O,$(O)},T=y=>{const{t:N,v:W}=G(y),O=u(r.current??t,N,W);r.current=null,w(O),window.removeEventListener("pointermove",f),window.removeEventListener("pointerup",T)};window.addEventListener("pointermove",f),window.addEventListener("pointerup",T)},K=l??E.accent,J=t.length,x=h[s],V=s>0&&s<J,j=s<J?t[s]:void 0,k=s>0?t[s-1]:void 0,R=j?{x:D(j.start+(A(t,s)-j.start)/3),y:S(j.function.p1)}:null,F=k?{x:D(k.start+(A(t,s-1)-k.start)*2/3),y:S(k.function.p2)}:null,et=[g.min,(g.min+g.max)/2,g.max];return p.jsxs("div",{"data-testid":c,children:[p.jsxs("svg",{ref:m,"data-testid":`${c}-plot`,viewBox:`0 0 ${L} ${a}`,style:{width:"100%",height:a,display:"block",background:E.inputBg,border:`1px solid ${E.border}`,borderRadius:E.radiusSmall,touchAction:"none",outline:"none"},tabIndex:0,role:"application","aria-label":"Curve editor",onKeyDown:n=>{(n.key==="Delete"||n.key==="Backspace")&&V&&!o&&(n.preventDefault(),w(Q(t,s)),d(Math.max(0,s-1)))},onDoubleClick:n=>{if(o)return;const{t:u}=G(n),f=ut(t,u);f!==t&&(w(f),d(f.findIndex(T=>Math.abs(T.start-u)<1e-6)))},children:[et.map(n=>p.jsxs("g",{children:[p.jsx("line",{x1:_,x2:L-X,y1:S(n),y2:S(n),stroke:E.border,strokeWidth:.5}),p.jsx("text",{x:_-3,y:S(n)+2.5,fontSize:7,fill:E.textMuted,textAnchor:"end",children:pt(n)})]},n)),[0,.5,1].map(n=>p.jsx("text",{x:D(n),y:a-3,fontSize:7,fill:E.textMuted,textAnchor:"middle",children:n},n)),p.jsx("path",{d:tt,fill:"none",stroke:K,strokeWidth:1.5}),x&&R&&p.jsxs("g",{children:[p.jsx("line",{x1:D(x.time),y1:S(x.value),x2:R.x,y2:R.y,stroke:E.textMuted,strokeDasharray:"2 2",strokeWidth:.75}),p.jsx("circle",{"data-testid":`${c}-tangent-out`,cx:R.x,cy:R.y,r:3,fill:E.surface,stroke:E.textMuted,style:{cursor:o?"not-allowed":"ns-resize"},onPointerDown:n=>H(n,(u,f,T)=>q(u,s,"out",T))})]}),x&&F&&p.jsxs("g",{children:[p.jsx("line",{x1:D(x.time),y1:S(x.value),x2:F.x,y2:F.y,stroke:E.textMuted,strokeDasharray:"2 2",strokeWidth:.75}),p.jsx("circle",{"data-testid":`${c}-tangent-in`,cx:F.x,cy:F.y,r:3,fill:E.surface,stroke:E.textMuted,style:{cursor:o?"not-allowed":"ns-resize"},onPointerDown:n=>H(n,(u,f,T)=>q(u,s,"in",T))})]}),h.map((n,u)=>p.jsx("circle",{"data-testid":`${c}-key-${u}`,cx:D(n.time),cy:S(n.value),r:4,fill:u===s?E.accent:E.surface,stroke:u===s?E.onAccent:K,strokeWidth:1.25,style:{cursor:o?"not-allowed":"move"},onPointerDown:f=>{d(u),H(f,(T,y,N)=>C(T,u,y,N))}},u))]}),p.jsxs("div",{style:{display:"flex",gap:4,alignItems:"center",marginTop:3},children:[p.jsxs("span",{style:{fontSize:9,color:E.textMuted,flex:"0 0 auto"},children:["Key ",s+1,"/",h.length]}),p.jsx(U,{label:"t",value:x?Math.round(x.time*1e3)/1e3:null,step:.05,testId:`${c}-key-time`,onChange:n=>{x&&$(C(t,s,n,x.value))},onChangeEnd:n=>{x&&w(C(t,s,n,x.value))}}),p.jsx(U,{label:"v",value:x?Math.round(x.value*1e3)/1e3:null,step:.05,testId:`${c}-key-value`,onChange:n=>{x&&$(C(t,s,x.time,n))},onChangeEnd:n=>{x&&w(C(t,s,x.time,n))}}),p.jsx(at,{type:"button",variant:"ghost",size:"compact","data-testid":`${c}-delete-key`,disabled:!V||o===!0,"aria-label":"Delete curve key",title:V?"Delete key":"Endpoint keys cannot be deleted",onClick:()=>{w(Q(t,s)),d(Math.max(0,s-1))},children:"×"})]})]})}export{Rt as Actions,ds as AlignmentGrid,ps as AnchorPresets,nt as AnchoredMenu,Ft as AssetSlotPicker,fs as BorderEditor,hs as BorderRadiusEditor,at as Button,Nt as CLASSIC_MATERIAL,Ct as Checkbox,us as ColorInput,ms as ColorPicker,xs as ColorSwatch,_t as ColorSwatchInput,vt as CurveEditor,jt as DEFAULT_ICON_SET_ID,Es as DEFAULT_SHADOW,gs as DEFAULT_TEXT_SHADOW,kt as Dialog,Ot as DialogBody,Lt as DialogField,Bt as DialogFieldLabel,Pt as DialogFooter,Gt as DialogHeader,$t as DisclosureIcon,Ht as Divider,Vt as DraftTextInput,Wt as DropIndicator,zt as EDITOR_MATERIALS,Kt as EDITOR_MATERIAL_IDS,Jt as EDITOR_REGION_NAMES,Ut as EDITOR_THEME_CLASS,qt as EditorBadge,Qt as EditorBanner,Xt as EditorIcon,Yt as EditorListButton,Zt as EditorPopover,te as EditorSurface,ee as EditorTab,ne as EditorTabList,se as EditorToolbar,oe as EditorTree,ae as EditorTreeRow,ie as FONT,re as FONT_MONO,ce as FieldGroup,ue as FieldLabel,le as FieldRow,de as FileInput,Ss as FilterEditor,pe as FloatingToolbar,Ts as FontPicker,fe as GLASS_MATERIAL,bs as GradientEditor,Ds as GradientStopsTrack,Mt as HoverPreview,he as IconButton,me as Inline,xe as InteractiveEditScopeContext,Ee as JoinedField,ge as JoinedFieldSuffix,yt as JsonInput,Se as Keycap,Te as LABEL_COL_WIDTH,be as Menu,De as MenuItem,Me as MenuSeparator,ye as MenuSubmenu,Ie as MenuTrigger,U as NumberInput,ve as Panel,Ms as QuarksGradientEditor,Ae as RangeInput,we as ResizeHandle,ys as ScrubbableInput,Re as SectionHeader,Fe as Select,Is as ShadowEditor,vs as ShadowListEditor,Ne as Spacer,Ce as SplitButtonGroup,_e as Stack,je as StateSurface,E as THEME,ke as TONE_ERROR,Oe as TONE_WARNING,Le as Text,Be as TextArea,st as TextInput,As as TextShadowEditor,Pe as ThemeRootPortal,Ge as ToggleButton,$e as ToolbarDivider,He as ToolbarGroup,Ve as Tooltip,We as TreeDisclosureIcon,ze as Vec3Input,Ke as accent,Je as accentMuted,Ue as activeIconGlyph,qe as activeIconSetSnapshot,Qe as applyEditorTheme,Xe as areaEmbossValue,Ye as bg,Ze as border,tn as chromeSize,en as clampRectToViewport,nn as composeEditorAppearance,ws as composeFilter,Rs as composeGradient,Fs as composeShadows,sn as controlSize,ct as curveKeys,lt as curveValueRange,on as danger,an as dangerFaint,rn as dangerMuted,Q as deleteKey,cn as dynamic,un as dynamicBg,ln as editorIconSets,dn as editorIcons,pn as editorMaterials,fn as editorThemeVariables,hn as editorThemes,mn as fieldLabelStyle,rt as fireChange,it as fireEnd,xn as focusFirstMenuItem,En as focusRing,gn as fontMono,Sn as fontSans,Tn as fontSize,bn as fontSizeVar,Dn as fontWeight,Mn as glassDarkEditorTheme,yn as glassDarkLiteEditorTheme,In as graphiteDarkEditorTheme,vn as graphiteNeutralEditorTheme,An as groupLabelStyle,wn as iconSize,Rn as isEditorIconSetId,Fn as isEditorMaterialId,Nn as isEditorThemeId,Ns as isUniformBorder,Cs as isUniformRadius,Cn as lineHeight,_n as lineHeightVar,jn as liquidGlassEditorTheme,kn as liquidGlassLiteEditorTheme,On as midnightHighContrastEditorTheme,Ln as motion,Bn as motionVar,C as moveKey,q as moveTangent,_s as parseFilterFunctions,js as parseGradient,Pn as parseNumericValue,ks as parseShadows,Gn as radius,$n as regionRowAltValue,Hn as registerContributedIconSet,Vn as registerContributedMaterial,Wn as rowStyle,It as sampleCurve,zn as scrim,A as segmentEnd,Kn as selection,Jn as setActiveIconSet,Un as shadow,qn as space,Qn as spaceVar,ut as splitAt,Xn as strokeWidth,Yn as subscribeEditorMaterials,Zn as subscribeIconSets,ts as success,es as successMuted,ns as text,ot as themeVars,Os as uniformBorder,Ls as uniformRadius,ss as useInteractiveEditScope,os as usesGlassMaterial,as as warn,is as warnMuted,rs as zIndex};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{CameraDescriptorSchema as n}from"./camera-KEsKvOL7.js";import{ColliderDescriptorSchema as D}from"./collider-Bw0mXlsW.js";import{LightDescriptorSchema as g}from"./light-D-_wsKTq.js";import{MaterialDescriptorSchema as P}from"./material-CpAdjDxn.js";import{MeshDescriptorSchema as C}from"./mesh-B3WPtNKO.js";import{ParticlesDescriptorSchema as u}from"./particles-Y626p22p.js";import{PostProcessingDescriptorSchema as E,RenderEnvironmentSchema as L,ToneMappingDescriptorSchema as Q}from"./render-env-D2IV2x5k.js";import{QuatSchema as V,TransformSchema as b,Vec3Schema as j}from"./tuples-CIQ4Bn1U.js";import"./index-GIL7oGEO.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"./three.module-D396a9Mn.js";import"./render-features-CPQ_e568.js";export{n as CameraDescriptorSchema,D as ColliderDescriptorSchema,g as LightDescriptorSchema,P as MaterialDescriptorSchema,C as MeshDescriptorSchema,u as ParticlesDescriptorSchema,E as PostProcessingDescriptorSchema,V as QuatSchema,L as RenderEnvironmentSchema,Q as ToneMappingDescriptorSchema,b as TransformSchema,j as Vec3Schema};
|