@volter/model-editor 0.5.66
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 +6748 -0
- package/LICENSE +686 -0
- package/LICENSE-BLENDER +1409 -0
- package/LICENSE-MCP +21 -0
- package/NOTICE +20 -0
- package/dist/.vite/manifest.json +1954 -0
- package/dist/assets/AudioViewer-CRWsJVYN.js +1 -0
- package/dist/assets/BVHLoader-xUHWsz84.js +1 -0
- package/dist/assets/ColladaLoader-Ccy_gHsu.js +3 -0
- package/dist/assets/EntityModelDocument-Dal8YnLK.js +1 -0
- package/dist/assets/EnvironmentAssetDocument-DFOFYX5v.js +1 -0
- package/dist/assets/FBXLoader-Dh0pOBW2.js +1 -0
- package/dist/assets/GameplaySessionTimeline-HJLZUV4Q.js +142 -0
- package/dist/assets/ImageViewer-BzqBpqL-.js +1 -0
- package/dist/assets/InspectorCanvasPreview-CLDhscy0.js +1 -0
- package/dist/assets/InspectorObjectPreview-BUZEp4xS.js +1 -0
- package/dist/assets/JsonAssetDocument-DCkqRS0N.js +2 -0
- package/dist/assets/LineSegments2-C8H20K8w.js +370 -0
- package/dist/assets/LiveModuleDocument-CuOBVz3A.js +2 -0
- package/dist/assets/LutAssetDocument-IyEir1rq.js +1 -0
- package/dist/assets/MTLLoader-C-rA0fNF.js +2 -0
- package/dist/assets/ModelAssetDocument-DNStNyCc.js +1 -0
- package/dist/assets/NonThreeAuthoringBootstrap-BE15Wpmw.js +2 -0
- package/dist/assets/OBJLoader-CopWRneC.js +5 -0
- package/dist/assets/Object3DDocumentToolbar-5Dv_8caG.js +1 -0
- package/dist/assets/Object3DPreview-C09u9uQZ.js +2 -0
- package/dist/assets/OnlineAssetDetail-DOPUI1iu.js +1 -0
- package/dist/assets/OrbitControls-DrFzvAAB.js +1 -0
- package/dist/assets/PLYLoader-D_esTZ2f.js +2 -0
- package/dist/assets/QuarksAssetDocument-BbSJ970L.js +2 -0
- package/dist/assets/RectAreaLightUniformsLib-u1ciScuw.js +1 -0
- package/dist/assets/STLLoader-Cl5I0sAi.js +1 -0
- package/dist/assets/ShaderAssetDocument-qlLeb2S3.js +12 -0
- package/dist/assets/SourceAssetViewer-DwhuqbA4.js +1 -0
- package/dist/assets/StageHost-D-o8MsFS.js +1122 -0
- package/dist/assets/TDSLoader-KKBg8ef1.js +1 -0
- package/dist/assets/ToolObject3DPreview-ILbch3kN.js +1 -0
- package/dist/assets/Toolbar-DYJjJKTt.js +1 -0
- package/dist/assets/TransientHint-D94hsJSR.js +1 -0
- package/dist/assets/VideoViewer-Bx3FPbgE.js +1 -0
- package/dist/assets/ViewportShadingMenu-B3N6hSdN.js +1 -0
- package/dist/assets/_commonjsHelpers-D6-XlEtG.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-mixers.service-N9HxGOMf.js +1 -0
- package/dist/assets/asset-editor-persistence-DGD05u26.js +1 -0
- package/dist/assets/blender-emscripten-engine-CEsWgnR7.js +2 -0
- package/dist/assets/blender-node-editor.document-BT2M622g.js +1 -0
- package/dist/assets/blender-properties-tab-C5tUuCSv.js +3 -0
- package/dist/assets/blender-runtime-host-4ufXy47O.js +4 -0
- package/dist/assets/blender-runtime-skin-DMq0XAvO.js +7138 -0
- package/dist/assets/blender-runtime.document-DeFQQsF6.js +8 -0
- package/dist/assets/blender-timeline.document-BnlSdxy0.js +1 -0
- package/dist/assets/blender-uv-editor.document-UC-XeNn0.js +1 -0
- package/dist/assets/blender-version.status-BZP39oH7.js +1 -0
- package/dist/assets/blender-wali-engine-D3iKpzn9.js +2 -0
- package/dist/assets/blender.command-IGP5wuda.js +1 -0
- package/dist/assets/blender.environment-CG-pC7sk.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-CxfbTFcE.js +1 -0
- package/dist/assets/browserAll-2r3AVaAO.js +14 -0
- package/dist/assets/canvas-preview-frames-CO60PDM7.js +5 -0
- package/dist/assets/city-EkhAOo5s.exr +0 -0
- package/dist/assets/client-DNXj_opT.js +25 -0
- package/dist/assets/clip-planes-CnAI6DZn.js +1 -0
- package/dist/assets/courtyard-DqlebbpC.exr +0 -0
- package/dist/assets/editor-presentation-activity-C7SNSmTd.js +1 -0
- package/dist/assets/filmic-srgb-Ct35FIH6.lut +0 -0
- package/dist/assets/forest-P_CQY3b_.exr +0 -0
- package/dist/assets/hosted-asset-materialization-BXM49Qkc.js +2 -0
- package/dist/assets/index-B4bmKkgY.css +1 -0
- package/dist/assets/index-BP6wv2A0.js +5 -0
- package/dist/assets/index-Bge9JUr6.js +1 -0
- package/dist/assets/index-BncK9THk.js +1 -0
- package/dist/assets/index-BtfYaG4D.js +952 -0
- package/dist/assets/index-CJbYy-CF.js +3 -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-D2LwEE0L.js +562 -0
- package/dist/assets/index-DUqP1RMl.js +1 -0
- package/dist/assets/index-D_NuPfjr.js +9 -0
- package/dist/assets/index-DaQZGF7d.js +1 -0
- package/dist/assets/index-DgapqSPi.js +7 -0
- package/dist/assets/index-IEjydI9d.js +1 -0
- package/dist/assets/index-cpXNKgvz.js +1498 -0
- package/dist/assets/index-gHZae-lw.js +13 -0
- package/dist/assets/interior-Bo_lba15.exr +0 -0
- package/dist/assets/jsx-runtime-DPjLkJKQ.js +9 -0
- package/dist/assets/live-mixers-BRkRHd6g.js +1 -0
- package/dist/assets/material-preview.view-DqNcpd_b.js +1 -0
- package/dist/assets/model-inspection-JC6gbV8Q.js +1 -0
- package/dist/assets/model.layout-BpZE1W9V.js +1 -0
- package/dist/assets/models.finder-BplPGS4I.js +1 -0
- package/dist/assets/night-CvV4Gybt.exr +0 -0
- package/dist/assets/product-CfZaqLpw.js +1 -0
- package/dist/assets/properties-bone-constraints.inspector-Di8kNtAi.js +1 -0
- package/dist/assets/properties-bone.inspector-CqAIKNsE.js +1 -0
- package/dist/assets/properties-collection.inspector-DpHC_fXW.js +1 -0
- package/dist/assets/properties-constraints.inspector-C7G7NOZU.js +1 -0
- package/dist/assets/properties-data.inspector-D1sUUst6.js +1 -0
- package/dist/assets/properties-material.inspector-BUSjc8tl.js +1 -0
- package/dist/assets/properties-modifiers.inspector-Sq9bcfFz.js +1 -0
- package/dist/assets/properties-object.inspector-BzqiU_29.js +1 -0
- package/dist/assets/properties-output.inspector-BWpFqvfT.js +1 -0
- package/dist/assets/properties-particles.inspector-DO1KoaTz.js +1 -0
- package/dist/assets/properties-physics.inspector-BgkrTNSA.js +1 -0
- package/dist/assets/properties-render.inspector-BU5NOVoQ.js +1 -0
- package/dist/assets/properties-scene.inspector-DbMErJ48.js +1 -0
- package/dist/assets/properties-texture.inspector-toPpEwqp.js +1 -0
- package/dist/assets/properties-view-layer.inspector-COpx9iEK.js +1 -0
- package/dist/assets/properties-world.inspector-CxU0DrYX.js +1 -0
- package/dist/assets/react-18-DyywM-Z2.js +1 -0
- package/dist/assets/react-story-board-B9V-j_Y5.js +1 -0
- package/dist/assets/react-three-rapier.esm-CN6t4A7c.js +1 -0
- package/dist/assets/regions-DWeEBnE2.js +1 -0
- package/dist/assets/sculpt.layout-D-K5cLw6.js +1 -0
- package/dist/assets/session-CsR0lApe.js +4886 -0
- package/dist/assets/shading.layout-CZZHKBer.js +1 -0
- package/dist/assets/sky-precompute-worker-ChN7J87v.js +1 -0
- package/dist/assets/spark.module-gG1EsWx8.js +12120 -0
- package/dist/assets/stage-keyboard-CzlqI0nh.js +1 -0
- package/dist/assets/stage-overlay-set-DQeskS16.js +1 -0
- package/dist/assets/stage-presence-markers-S1lMOwIa.js +1 -0
- package/dist/assets/stage-transform-tools-Cqtv-ZQ1.js +1 -0
- package/dist/assets/story-capture-DmIUyEQn.js +1 -0
- package/dist/assets/story-mount-turn-2IYGgHob.js +1 -0
- package/dist/assets/story-pixi-preview-aw8xQhvF.js +1 -0
- package/dist/assets/story-three-preview-DDmMjlI8.js +37 -0
- package/dist/assets/studio-CysTBGIb.exr +0 -0
- package/dist/assets/sunrise-Dj0psFrf.exr +0 -0
- package/dist/assets/sunset-Bw3x2Bot.exr +0 -0
- package/dist/assets/texture.layout-DASpHVht.js +1 -0
- package/dist/assets/three.module-ZILb6uB7.js +3840 -0
- package/dist/assets/transform-mode-request-DSPwviXs.js +1 -0
- package/dist/assets/uv-editing.layout-A8RA-cbM.js +1 -0
- package/dist/assets/vgai-shared-fontawesome-CFSkqz69.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-CdM3D1mG.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-DzfWDqlp.js +1 -0
- package/dist/assets/viewport-pick-context-DkawXbEi.js +1 -0
- package/dist/assets/viewport-surface-status-DuININWe.js +20 -0
- package/dist/assets/webworkerAll-CqQUotBj.js +101 -0
- package/dist/assets/worker-B7zhIsFh.js +2 -0
- package/dist/assets/world-documents-DkBqH8VU.js +3 -0
- package/dist/vgai-shared-react.json +10 -0
- package/dist/vgai-shared-three.json +3 -0
- package/dist-node/cli.js +19722 -0
- package/dist-node/create.js +14102 -0
- package/package.json +61 -0
- package/presets.mjs +2 -0
- package/src/contributions.d.ts +4 -0
- package/src/index.ts +10 -0
- package/starter/cube.blend +0 -0
- package/starter/cube.py +81 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.vgai-console{display:flex;height:100%;flex-direction:column}.vgai-console .vgai-toolbar{flex:0 0 auto}.vgai-console-filter{width:140px;margin-left:auto}.vgai-console-list{min-height:0;flex:1;overflow-y:auto;font-family:var(--vgai-font-mono);font-size:var(--vgai-font-base);line-height:18px}.vgai-console-empty{padding:var(--vgai-space-6) var(--vgai-space-4);color:var(--vgai-content-dim);font-style:italic}.vgai-console-row{display:flex;align-items:flex-start;padding:1px var(--vgai-space-4);border-bottom:var(--vgai-stroke-resting) solid var(--vgai-boundary-default)}.vgai-console-row[data-level=error]{background:var(--vgai-danger-faint)}.vgai-console-row:hover{background:var(--vgai-neutral-hover)}.vgai-console-count{flex:0 0 auto;margin-left:var(--vgai-space-3);padding:0 var(--vgai-space-2);color:var(--vgai-content-muted);background:var(--vgai-surface-raised);border-radius:var(--vgai-radius-lg);font-size:var(--vgai-font-sm)}.vgai-console [data-console-level=info][aria-pressed=true]{color:var(--vgai-content-primary)}.vgai-console [data-console-level=warn][aria-pressed=true]{color:var(--vgai-warn)}.vgai-console [data-console-level=error][aria-pressed=true]{color:var(--vgai-danger)}.vgai-model-document-header{display:flex;align-items:center;gap:var(--vgai-space-2);flex:1 1 auto;min-width:0}.vgai-model-viewport-toolbar{position:static;min-height:auto;padding:0;border:0;background:transparent;box-shadow:none}.vgai-model-viewport-toolbar--preview{margin-left:auto}.vgai-model-viewport-toolbar>*{flex:0 0 auto}.vgai-model-toolbar-labelled-control{display:inline-flex;align-items:center;gap:var(--vgai-space-1);white-space:nowrap}.vgai-model-preview-menu{width:250px;padding:var(--vgai-space-3);gap:var(--vgai-space-3)}.vgai-model-preview-menu>label{display:grid;grid-template-columns:68px minmax(0,1fr) auto;align-items:center;gap:var(--vgai-space-2);color:var(--vgai-text-2);font-size:var(--vgai-font-xs)}.vgai-model-preview-menu select{grid-column:2 / -1}.vgai-model-preview-menu input[type=range]{width:120px}.vgai-model-capture-preview{position:absolute;z-index:var(--vgai-z-sticky);top:calc(var(--vgai-space-3) + var(--vgai-control-default-height) + var(--vgai-space-2));right:var(--vgai-space-3);width:min(420px,calc(100% - 2 * var(--vgai-space-3)));padding:var(--vgai-space-3)}.vgai-model-capture-preview>div{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--vgai-space-3)}.vgai-model-capture-preview img{display:block;width:100%}.vgai-model-toolbar-error{position:absolute;z-index:var(--vgai-z-sticky);right:var(--vgai-space-3);bottom:var(--vgai-space-3);max-width:420px}@media(width<=720px){.vgai-model-toolbar-labelled-control>span{display:none}}.vgai-viewport-shading-segments{display:inline-flex}.vgai-viewport-shading-segments>*{display:inline-flex}.vgai-viewport-shading-segments>:not(:first-child) .vgai-btn,.vgai-viewport-shading-segments>.vgai-btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0;border-left-width:0}.vgai-viewport-shading-segments>:not(:last-child) .vgai-btn,.vgai-viewport-shading-segments>.vgai-btn:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.vgai-viewport-shading-segments .vgai-btn[aria-pressed=true]{position:relative;z-index:1}.vgai-viewport-shading-glyph{width:var(--vgai-icon-md);height:var(--vgai-icon-md);overflow:visible}.vgai-viewport-shading-options{display:grid;gap:var(--vgai-space-2);padding:var(--vgai-space-2) var(--vgai-space-3)}.vgai-viewport-shading-options>label{display:grid;grid-template-columns:68px minmax(0,1fr) auto;align-items:center;gap:var(--vgai-space-2);color:var(--vgai-text-2);font-size:var(--vgai-font-xs)}.vgai-viewport-shading-options select{grid-column:2 / -1}.vgai-viewport-shading-options input[type=range]{width:120px}.vgai-viewport-overlays-glyph{width:var(--vgai-icon-md);height:var(--vgai-icon-md);overflow:visible}.vgai-project-header{position:relative;display:flex;height:var(--vgai-command-bar-height);flex:0 0 auto;align-items:center;padding:0 var(--vgai-space-3);color:var(--vgai-content-primary);background:var(--vgai-surface-shell);border-bottom:var(--vgai-stroke-resting) solid var(--vgai-boundary-area);font-size:var(--vgai-font-base);pointer-events:auto;user-select:none;box-sizing:border-box}.vgai-project-header-left{position:relative;display:flex;min-width:0;flex:1;align-self:stretch;align-items:center}.vgai-menu-trigger.vgai-project-trigger{position:relative;display:flex;width:14px;min-width:0;align-items:center;justify-content:flex-start;padding:0;overflow:visible;white-space:nowrap}.vgai-project-menu-name{display:block;max-width:320px;padding:var(--vgai-space-3) var(--vgai-space-4) var(--vgai-space-1)}.vgai-project-header-right .vgai-btn[data-variant=ghost]{color:var(--vgai-content-primary)}.vgai-project-header-left .vgai-text[data-variant=label]{font-weight:400}.vgai-project-app-menus,.vgai-project-transport{flex:0 0 auto}.vgai-project-menu{position:absolute;top:100%;left:0;min-width:190px;margin-top:var(--vgai-space-1)}.vgai-project-path{display:block;max-width:320px;padding:var(--vgai-space-2) var(--vgai-space-4)}.vgai-project-versions{display:grid;grid-template-columns:1fr auto;gap:var(--vgai-space-2) var(--vgai-space-6);padding:var(--vgai-space-3) var(--vgai-space-4) var(--vgai-space-4);color:var(--vgai-content-dim);font-size:var(--vgai-font-sm)}.vgai-project-header-right{min-width:0;flex:1;gap:var(--vgai-space-2)}@media(max-width:680px){.vgai-project-header{height:auto;min-height:var(--vgai-command-bar-height);flex-wrap:wrap;gap:var(--vgai-space-2) var(--vgai-space-4);padding-block:4px}.vgai-project-header-left{flex:1 1 100%}.vgai-project-header-right{flex:1 1 auto;flex-wrap:wrap}}.vgai-header-telemetry{min-width:0;flex:0 0 auto;overflow:visible}.vgai-header-telemetry-button.vgai-btn{min-width:0;height:var(--vgai-control-compact-height);gap:var(--vgai-space-2);padding-inline:var(--vgai-space-2);font-variant-numeric:tabular-nums}.vgai-header-audio{position:relative}.vgai-audio-vu{display:flex;width:34px;height:12px;align-items:stretch;gap:var(--vgai-space-1)}.vgai-audio-vu>i{width:2px;flex:1 1 0;border-radius:1px;background:var(--vgai-boundary-strong)}.vgai-header-audio[data-available=true] .vgai-audio-vu>i[data-filled=true]{background:var(--vgai-accent)}.vgai-header-audio[data-muted=true] .vgai-audio-vu>i[data-filled=true]{background:var(--vgai-content-muted)}.vgai-header-performance{border-left:var(--vgai-stroke-resting) solid var(--vgai-boundary-default)}.vgai-header-performance svg{display:block;overflow:visible}.vgai-performance-graph{border-radius:var(--vgai-radius-sm);background:color-mix(in srgb,var(--vgai-surface-panel) 72%,transparent)}.vgai-performance-budget{stroke:var(--vgai-boundary-strong);stroke-dasharray:2 2;stroke-width:1}.vgai-performance-sparkline{fill:none;stroke:var(--vgai-accent);stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5;vector-effect:non-scaling-stroke}.vgai-header-performance[data-performance-tone=warning] .vgai-performance-sparkline,.vgai-header-performance[data-performance-tone=warning] .vgai-header-fps{color:var(--vgai-warn);stroke:var(--vgai-warn)}.vgai-header-performance[data-performance-tone=danger] .vgai-performance-sparkline,.vgai-header-performance[data-performance-tone=danger] .vgai-header-fps{color:var(--vgai-danger);stroke:var(--vgai-danger)}.vgai-performance-readout{display:grid;min-width:48px;line-height:1.05;text-align:right}.vgai-header-fps{color:var(--vgai-content-primary);font-family:var(--vgai-font-mono);font-size:var(--vgai-font-sm);font-weight:600}.vgai-header-frame-ms{color:var(--vgai-content-dim);font-family:var(--vgai-font-mono);font-size:var(--vgai-font-xs)}@media(max-width:1120px){.vgai-header-performance svg,.vgai-audio-vu{display:none}}.vgai-project-header-cluster{display:flex;min-width:0}.vgai-project-header-left .vgai-project-header-cluster{flex:0 0 auto}.vgai-project-header-right .vgai-project-header-cluster{align-items:center;gap:var(--vgai-space-2)}[data-vgai-chrome=islands] .vgai-project-header{z-index:var(--vgai-z-sticky);align-items:flex-start;padding-top:var(--vgai-space-4);background:transparent;border-bottom-color:transparent;pointer-events:none}[data-vgai-chrome=islands] .vgai-editor-shell:has(.vgai-workspace-dock[data-vgai-backdrop]) .vgai-project-header{position:absolute;top:0;left:0;right:0}[data-vgai-chrome=islands] .vgai-project-header .vgai-chrome-island{height:38px;align-items:center;padding:0 var(--vgai-space-3)}[data-vgai-chrome=islands] .vgai-project-menu{pointer-events:auto}.vgai-project-header{transition:margin-top var(--vgai-duration-slow) var(--vgai-ease-standard)}[data-vgai-play-chrome=hidden] .vgai-project-header{margin-top:calc(-1 * var(--vgai-command-bar-height));background:transparent;border-bottom-color:transparent;pointer-events:none;transition:margin-top var(--vgai-duration-base) var(--vgai-ease-standard)}[data-vgai-play-chrome=hidden] .vgai-project-header-left,[data-vgai-play-chrome=hidden] .vgai-project-transport,[data-vgai-play-chrome=hidden] .vgai-project-header-right>:not(.vgai-header-telemetry){transform:translateY(calc(-100% - 12px));opacity:0;visibility:hidden;pointer-events:none;transition:transform var(--vgai-duration-base) var(--vgai-ease-standard),opacity var(--vgai-duration-base) var(--vgai-ease-standard) .1s,visibility 0s linear .28s}[data-vgai-play-chrome=hidden] .vgai-header-telemetry{position:fixed;top:12px;right:12px;z-index:var(--vgai-z-sticky);height:32px;padding:0 var(--vgai-space-2);border:var(--vgai-stroke-resting) solid var(--vgai-boundary-default);border-radius:var(--vgai-radius-lg);background:var(--vgai-surface-chrome);box-shadow:var(--vgai-shadow-sm);pointer-events:auto}[data-vgai-play-chrome=hidden][data-vgai-play-revealed] .vgai-project-header{margin-top:0;background:var(--vgai-surface-shell);border-bottom-color:var(--vgai-boundary-default);pointer-events:auto;transition:margin-top var(--vgai-duration-base) var(--vgai-ease-standard)}[data-vgai-play-chrome=hidden][data-vgai-play-revealed] .vgai-project-header-left,[data-vgai-play-chrome=hidden][data-vgai-play-revealed] .vgai-project-transport,[data-vgai-play-chrome=hidden][data-vgai-play-revealed] .vgai-project-header-right>:not(.vgai-header-telemetry){transform:none;opacity:1;visibility:visible;pointer-events:auto;transition:transform var(--vgai-duration-base) var(--vgai-ease-standard),opacity var(--vgai-duration-fast) var(--vgai-ease-standard),visibility 0s}[data-vgai-play-chrome=hidden][data-vgai-play-revealed] .vgai-header-telemetry{position:static;height:auto;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}@media(prefers-reduced-motion:reduce){.vgai-project-header,[data-vgai-play-chrome=hidden] .vgai-project-header,[data-vgai-play-chrome=hidden] .vgai-project-header-left,[data-vgai-play-chrome=hidden] .vgai-project-transport,[data-vgai-play-chrome=hidden] .vgai-project-header-right>*{transition:none}}.vgai-divider.vgai-project-menu-rule{align-self:center;margin-inline:var(--vgai-space-4);background:var(--vgai-boundary-divider)}.vgai-workspace-tabs{display:flex;background:var(--vgai-surface-chrome);height:22px;align-items:center;align-self:flex-start;margin-top:var(--vgai-space-1);flex:1 1 0;min-width:0;overflow-x:auto;overflow-y:hidden;box-shadow:var(--vgai-widget-emboss-shadow)}.vgai-project-header .vgai-project-header-left .vgai-workspace-tabs{scrollbar-width:none}.vgai-project-header .vgai-project-header-left .vgai-workspace-tabs::-webkit-scrollbar{display:none}.vgai-workspace-tab{appearance:none;border:0;margin:0;flex:0 0 auto;height:var(--vgai-control-compact-height);padding:0 var(--vgai-space-5);background:transparent;color:var(--vgai-content-dim);font:inherit;font-size:var(--vgai-font-base);white-space:nowrap;border-radius:var(--vgai-radius-sm) var(--vgai-radius-sm) 0 0;cursor:default}.vgai-workspace-tab:hover{color:var(--vgai-content-primary)}.vgai-workspace-tab[aria-selected=true]{background:var(--vgai-surface-panel);color:var(--vgai-content-primary)}.vgai-worktree-switcher{display:flex;min-width:0;flex:0 0 auto;margin-left:var(--vgai-space-2);align-items:center}.vgai-menu-trigger.vgai-worktree-trigger{position:relative;display:inline-flex;width:14px;min-width:0;align-items:center;justify-content:center;padding:0;gap:var(--vgai-space-2)}.vgai-worktree-dirty-dot{width:6px;height:6px;flex:0 0 auto;border-radius:var(--vgai-radius-full);background:var(--vgai-warn)}.vgai-worktree-trigger .vgai-worktree-dirty-dot{position:absolute;top:2px;right:1px;width:5px;height:5px}.vgai-worktree-menu{width:min(520px,calc(100vw - 24px));padding:var(--vgai-space-2)}.vgai-worktree-version-control{max-height:min(460px,48vh);overflow:auto;padding:0 var(--vgai-space-3) var(--vgai-space-2)}.vgai-worktree-version-control details>summary{padding-block:var(--vgai-space-2)}.vgai-worktree-search{display:flex;align-items:center;gap:var(--vgai-space-2);padding:var(--vgai-space-1) var(--vgai-space-1) var(--vgai-space-2)}.vgai-worktree-search .vgai-input{min-width:0;flex:1}.vgai-worktree-results{max-height:min(420px,60vh);overflow:auto}.vgai-worktree-section-label{padding:var(--vgai-space-2) var(--vgai-space-4) var(--vgai-space-1);font-weight:600;letter-spacing:.02em;text-transform:uppercase}.vgai-worktree-menu-item[data-current]:disabled{color:var(--vgai-content-primary)}.vgai-worktree-menu-item[data-current]:disabled:hover{background:var(--vgai-selection-bg)}.vgai-worktree-menu-item,.vgai-worktree-create-command{min-width:0;min-height:46px;align-items:center;gap:var(--vgai-space-2);padding-block:var(--vgai-space-2);padding-inline:var(--vgai-space-3);white-space:normal}.vgai-worktree-row-shell{display:flex;min-width:0;align-items:center}.vgai-worktree-row-shell>.vgai-worktree-menu-item{min-width:0;flex:1}.vgai-worktree-row-icon{display:inline-flex;width:18px;flex:0 0 18px;align-items:center;justify-content:center;color:var(--vgai-content-muted)}.vgai-worktree-row-copy{display:grid;min-width:0;flex:1;gap:1px}.vgai-worktree-row-title,.vgai-worktree-row-detail{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vgai-worktree-presence{display:inline-flex;flex:0 0 auto;align-items:center;padding-left:5px}.vgai-worktree-avatar{--vgai-participant-color: var(--vgai-content-muted);display:inline-flex;width:22px;height:22px;margin-left:-5px;align-items:center;justify-content:center;border:2px solid var(--vgai-surface-overlay);border-radius:var(--vgai-radius-full);background:var(--vgai-participant-color);color:#fff;font-size:8px;font-weight:700;letter-spacing:-.01em}.vgai-worktree-avatar[data-kind=agent]{border-radius:7px}.vgai-worktree-avatar[data-status=needs-input]{box-shadow:0 0 0 2px var(--vgai-warn)}.vgai-worktree-avatar[data-status=idle],.vgai-worktree-avatar[data-status=done]{opacity:.62}.vgai-worktree-avatar-more{--vgai-participant-color: var(--vgai-surface-raised);color:var(--vgai-content-muted)}.vgai-worktree-row-title{display:flex;align-items:center;gap:var(--vgai-space-2);font-size:var(--vgai-font-base)}.vgai-worktree-row-detail{color:var(--vgai-content-dim);font-size:var(--vgai-font-xs)}.vgai-worktree-empty,.vgai-worktree-error,.vgai-worktree-more{padding:var(--vgai-space-3) var(--vgai-space-4)}.vgai-worktree-delegate{display:grid;gap:var(--vgai-space-2);padding:var(--vgai-space-3)}.vgai-worktree-delegate textarea{min-height:72px;resize:vertical}.vgai-worktree-delegate label{display:grid;grid-template-columns:70px minmax(0,1fr);align-items:center;gap:var(--vgai-space-2);color:var(--vgai-content-dim);font-size:var(--vgai-font-xs)}.vgai-worktree-delegate select{min-width:0}.vgai-worktree-delegate-open{width:100%;justify-content:center}.vgai-collaboration-header{display:flex;min-width:0;align-items:center}.vgai-collaboration-header-trigger{display:inline-flex;flex:0 0 auto;align-items:center;gap:var(--vgai-space-2)}.vgai-collaboration-header-count{min-width:1ch;color:var(--vgai-content-dim);font-variant-numeric:tabular-nums;text-align:center}.vgai-collaboration-header-menu{width:min(360px,calc(100vw - 24px));padding:var(--vgai-space-2)}.vgai-session-access-control{padding:var(--vgai-space-2)}.vgai-collaboration-header-label{padding:var(--vgai-space-2) var(--vgai-space-3);font-weight:600;text-transform:uppercase}.vgai-collaboration-header-person{display:flex;min-width:0;align-items:center;gap:var(--vgai-space-2);padding-block:var(--vgai-space-2)}.vgai-collaboration-header-elsewhere{padding-inline:var(--vgai-space-3)}.vgai-collaboration-header-dot{width:9px;height:9px;flex:0 0 auto;border-radius:var(--vgai-radius-full)}.vgai-collaboration-header-copy{display:grid;min-width:0;flex:1}.vgai-collaboration-header-copy>span{overflow:hidden;color:var(--vgai-content-dim);font-size:var(--vgai-font-xs);text-overflow:ellipsis;white-space:nowrap}.vgai-collaboration-header-actions{display:flex;flex-wrap:wrap;gap:var(--vgai-space-2);padding:var(--vgai-space-2)}.vgai-shell,.vgai-splash,.vgai-account{--vgai-shell-radius: 12px;--vgai-shell-radius-sm: 8px;--vgai-shell-font-xs: 11px;--vgai-shell-font-sm: 12px;--vgai-shell-font-base: 13px;--vgai-shell-font-md: 14px;--vgai-shell-font-lg: 16px;--vgai-shell-font-xl: 20px;--vgai-shell-font-display: 36px;--vgai-shell-line: 1.55;--vgai-shell-card-highlight: inset 0 1px 0 rgb(255 255 255 / 5%);--vgai-shell-ease: cubic-bezier(.2, .85, .25, 1)}.vgai-shell{position:absolute;inset:0;overflow:auto;color:var(--vgai-content-primary);background:color-mix(in srgb,var(--vgai-surface-shell) 42%,black);font-size:var(--vgai-shell-font-base);line-height:var(--vgai-shell-line);pointer-events:auto;-webkit-font-smoothing:antialiased}.vgai-shell:before{content:"";position:fixed;inset:0;background:radial-gradient(1150px 640px at 50% -16%,color-mix(in srgb,var(--vgai-accent) 22%,transparent),transparent 62%),radial-gradient(720px 420px at 50% -4%,rgb(255 255 255 / 5%),transparent 58%),radial-gradient(900px 560px at -12% 112%,color-mix(in srgb,var(--vgai-accent) 5%,transparent),transparent 55%),radial-gradient(135% 105% at 50% 40%,transparent 50%,rgb(0 0 0 / 50%) 100%);pointer-events:none}.vgai-shell:after{content:"";position:fixed;inset:0;background-image:radial-gradient(rgb(255 255 255 / 5%) 1px,transparent 1px);background-size:26px 26px;mask-image:linear-gradient(180deg,rgb(0 0 0 / 65%),transparent 52%);pointer-events:none}.vgai-shell-container{position:relative;z-index:var(--vgai-z-base);width:100%;max-width:1120px;margin:0 auto;padding:0 40px 96px;box-sizing:border-box}.vgai-shell-header{display:flex;align-items:center;justify-content:space-between;gap:var(--vgai-space-8);min-height:72px;margin-bottom:40px}.vgai-shell .vgai-btn.vgai-shell-brand{display:inline-flex;height:auto;align-items:center;gap:var(--vgai-space-5);padding:var(--vgai-space-2) var(--vgai-space-3);margin-left:-6px}.vgai-shell-brand-mark{display:grid;place-items:center;width:30px;height:30px}.vgai-shell-wordmark{color:var(--vgai-content-primary);font-size:15px;font-weight:var(--vgai-font-weight-bold);letter-spacing:.22em}.vgai-shell-header-actions{display:flex;align-items:center;gap:var(--vgai-space-4)}.vgai-shell .vgai-btn.vgai-shell-account-pill{height:32px;padding:0 14px;border-radius:var(--vgai-radius-full);font-size:var(--vgai-shell-font-sm)}.vgai-shell-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--vgai-space-10);margin-bottom:32px;flex-wrap:wrap}.vgai-shell-hero-heading{margin:0;font-size:var(--vgai-shell-font-display);font-weight:650;letter-spacing:-.03em;line-height:var(--vgai-leading-snug);color:#fff;text-shadow:0 2px 24px color-mix(in srgb,var(--vgai-accent) 24%,transparent)}.vgai-shell-hero-actions{display:flex;align-items:center;gap:var(--vgai-space-5)}.vgai-shell .vgai-chip,.vgai-account .vgai-chip{display:inline-flex;width:fit-content;align-items:center;gap:var(--vgai-space-3);height:22px;padding:0 var(--vgai-space-5);color:var(--vgai-content-muted);background:var(--vgai-surface-inset);border:1px solid var(--vgai-boundary-default);border-radius:var(--vgai-radius-full);font-family:var(--vgai-font-mono);font-size:var(--vgai-shell-font-xs);letter-spacing:.02em;white-space:nowrap;box-sizing:border-box}.vgai-shell .vgai-chip[data-variant=tag],.vgai-account .vgai-chip[data-variant=tag]{padding:0 7px;border-radius:var(--vgai-radius-sm)}.vgai-shell .vgai-chip[data-tone=accent],.vgai-account .vgai-chip[data-tone=accent]{color:var(--vgai-accent);background:var(--vgai-accent-muted);border-color:transparent}.vgai-shell .vgai-chip[data-tone=success],.vgai-account .vgai-chip[data-tone=success]{color:var(--vgai-success);background:var(--vgai-success-muted);border-color:transparent}.vgai-shell .vgai-chip[data-tone=warn],.vgai-account .vgai-chip[data-tone=warn]{color:var(--vgai-warn);background:var(--vgai-warn-muted);border-color:transparent}.vgai-shell .vgai-btn.vgai-shell-cta{height:32px;padding:0 14px;border-radius:var(--vgai-shell-radius-sm);font-size:var(--vgai-shell-font-base);font-weight:var(--vgai-font-weight-semibold)}.vgai-shell .vgai-btn[data-variant=primary],.vgai-account .vgai-btn[data-variant=primary]{color:#fff;background:linear-gradient(180deg,#ffffff24,#fff0 52%),color-mix(in srgb,var(--vgai-accent) 76%,#1d4ed8);border:1px solid color-mix(in srgb,var(--vgai-accent) 74%,white 8%);box-shadow:inset 0 1px #ffffff38,0 1px 2px #0006,0 6px 16px #00000052}.vgai-shell .vgai-btn[data-variant=primary]:hover:not(:disabled),.vgai-account .vgai-btn[data-variant=primary]:hover:not(:disabled){filter:brightness(1.09);box-shadow:inset 0 1px #ffffff52,0 2px 4px #0000006b,0 8px 22px #0000006b}.vgai-shell .vgai-btn.vgai-shell-cta-hero{height:38px;padding:0 18px;gap:var(--vgai-space-4);border-radius:9px;font-size:var(--vgai-font-lg)}.vgai-shell .vgai-btn.vgai-shell-cta-hero[data-variant=primary]{color:#fff;background:linear-gradient(180deg,#ffffff24,#fff0 52%),color-mix(in srgb,var(--vgai-accent) 76%,#1d4ed8);border:1px solid color-mix(in srgb,var(--vgai-accent) 74%,white 8%);box-shadow:inset 0 1px #ffffff38,0 1px 2px #00000073,0 8px 20px #0006}.vgai-shell .vgai-btn.vgai-shell-cta-hero[data-variant=primary]:hover:not(:disabled){filter:brightness(1.09);box-shadow:inset 0 1px #ffffff52,0 2px 4px #00000073,0 12px 28px #0000007f}.vgai-shell .vgai-btn:focus-visible,.vgai-shell .vgai-input:focus-visible,.vgai-shell .vgai-select:focus-visible,.vgai-account .vgai-btn:focus-visible,.vgai-account .vgai-input:focus-visible,.vgai-account .vgai-select:focus-visible{outline:var(--vgai-focus-ring);outline-offset:2px}.vgai-shell .vgai-btn.vgai-shell-cta[data-variant=ghost]{color:var(--vgai-content-muted)}.vgai-shell .vgai-btn.vgai-shell-cta[data-variant=ghost]:hover:not(:disabled){color:var(--vgai-content-primary)}.vgai-shell-card{position:relative;padding:28px;background:linear-gradient(180deg,#ffffff0d,#fff0 44%),color-mix(in srgb,white 3%,var(--vgai-surface-panel));border:1px solid rgb(255 255 255 / 9%);border-radius:var(--vgai-shell-radius);box-shadow:inset 0 1px #ffffff14,0 1px 2px #00000073,0 20px 48px #00000075;box-sizing:border-box}.vgai-shell-section{margin-bottom:36px}.vgai-shell-section-label{display:flex;align-items:center;gap:var(--vgai-space-4);margin-bottom:14px;color:var(--vgai-content-dim);font-size:var(--vgai-shell-font-xs);font-weight:var(--vgai-font-weight-semibold);letter-spacing:.09em;text-transform:uppercase}.vgai-shell-section-label:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--vgai-boundary-default),transparent)}.vgai-shell-count{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;color:var(--vgai-content-muted);background:var(--vgai-surface-raised);border-radius:var(--vgai-radius-full);font-size:var(--vgai-font-sm);font-weight:var(--vgai-font-weight-semibold);letter-spacing:0;box-sizing:border-box}.vgai-shell-empty{display:flex;flex-direction:column;align-items:center;gap:var(--vgai-space-4);padding:72px 32px 64px;text-align:center}.vgai-shell-empty-mark{position:relative;display:grid;place-items:center;padding:18px}.vgai-shell-empty-mark:before{content:"";position:absolute;inset:-46px;background:radial-gradient(closest-side,color-mix(in srgb,var(--vgai-accent) 22%,transparent),transparent 74%);border-radius:var(--vgai-radius-full);pointer-events:none}.vgai-shell-empty-mark:after{content:"";position:absolute;bottom:-10px;width:96px;height:18px;background:radial-gradient(closest-side,rgb(0 0 0 / 55%),transparent 75%);border-radius:var(--vgai-radius-full);pointer-events:none}.vgai-shell-empty-title{margin:14px 0 0;color:var(--vgai-content-primary);font-size:22px;font-weight:650;letter-spacing:-.02em}.vgai-shell-empty-actions{display:flex;gap:var(--vgai-space-5);margin-top:18px}.vgai-shell-footer{display:flex;justify-content:flex-end;margin-top:72px}.vgai-shell-footer .vgai-chip{height:20px;padding:0 7px;color:color-mix(in srgb,var(--vgai-content-dim) 72%,transparent);background:#ffffff08;border-color:#ffffff12;font-size:var(--vgai-font-sm)}.vgai-shell-notice{display:flex;align-items:center;flex-wrap:wrap;gap:var(--vgai-space-6);padding:var(--vgai-space-6) var(--vgai-space-8);margin-bottom:var(--vgai-space-12);color:var(--vgai-content-muted);background:var(--vgai-accent-muted);border:1px solid color-mix(in srgb,var(--vgai-accent) 18%,transparent);border-radius:var(--vgai-shell-radius-sm);font-size:var(--vgai-shell-font-sm)}.vgai-shell-notice-icon{color:var(--vgai-accent)}.vgai-shell .vgai-error-card{display:flex;gap:var(--vgai-space-8);align-items:flex-start;padding:22px 24px;margin-bottom:28px;background:linear-gradient(180deg,color-mix(in srgb,var(--vgai-danger) 7%,rgb(255 255 255 / 3%)),#fff0 46%),color-mix(in srgb,white 3%,var(--vgai-surface-panel));border:1px solid color-mix(in srgb,var(--vgai-danger) 28%,rgb(255 255 255 / 8%));border-radius:var(--vgai-shell-radius);box-shadow:inset 0 1px color-mix(in srgb,var(--vgai-danger) 20%,rgb(255 255 255 / 8%)),0 1px 2px #00000073,0 20px 48px #00000075}.vgai-shell[data-testid=project-detection-error] .vgai-error-card{max-width:880px;margin-inline:auto}.vgai-shell .vgai-shell-brand-static{display:inline-flex;align-items:center;gap:var(--vgai-space-5)}.vgai-shell[data-testid=project-detection-error] .vgai-shell-notice,.vgai-shell[data-testid=project-detection-error] .vgai-startup-error-actions{max-width:880px;margin-inline:auto}.vgai-shell[data-testid=project-detection-error]:before{background:radial-gradient(1150px 640px at 50% -16%,color-mix(in srgb,var(--vgai-danger) 15%,transparent),transparent 62%),radial-gradient(720px 420px at 50% -4%,rgb(255 255 255 / 4%),transparent 58%),radial-gradient(900px 560px at -12% 112%,color-mix(in srgb,var(--vgai-danger) 4%,transparent),transparent 55%),radial-gradient(135% 105% at 50% 40%,transparent 50%,rgb(0 0 0 / 52%) 100%)}.vgai-shell .vgai-error-card-icon{display:grid;place-items:center;flex:none;width:34px;height:34px;margin-top:var(--vgai-space-1);color:var(--vgai-danger);background:linear-gradient(180deg,rgb(255 255 255 / 8%),transparent 55%),var(--vgai-danger-muted);border:1px solid color-mix(in srgb,var(--vgai-danger) 34%,transparent);border-radius:var(--vgai-shell-radius-sm);box-shadow:0 0 18px color-mix(in srgb,var(--vgai-danger) 22%,transparent);font-size:var(--vgai-shell-font-base);box-sizing:border-box}.vgai-shell .vgai-error-card-body{flex:1;min-width:0}.vgai-shell .vgai-error-card-title{margin:0 0 var(--vgai-space-2);color:var(--vgai-content-primary);font-size:15px;font-weight:var(--vgai-font-weight-semibold);letter-spacing:-.01em;line-height:var(--vgai-leading-normal)}.vgai-shell .vgai-error-card-guidance{margin:0 0 var(--vgai-space-4);color:var(--vgai-content-muted);font-size:var(--vgai-shell-font-base)}.vgai-shell .vgai-error-card-message{max-height:176px;padding:var(--vgai-space-5) var(--vgai-space-6);overflow:auto;color:var(--vgai-danger);background:color-mix(in srgb,black 30%,var(--vgai-surface-inset));border:1px solid var(--vgai-boundary-default);border-radius:var(--vgai-shell-radius-sm);font-family:var(--vgai-font-mono);font-size:var(--vgai-shell-font-sm);line-height:1.6;overflow-wrap:anywhere;white-space:pre-wrap}.vgai-shell .vgai-error-card-recovery-label{margin:14px 0 6px;color:var(--vgai-content-dim);font-size:var(--vgai-shell-font-xs);font-weight:var(--vgai-font-weight-semibold);letter-spacing:.09em;text-transform:uppercase}.vgai-shell .vgai-error-card-command{display:flex;align-items:center;gap:var(--vgai-space-4);padding:8px 8px 8px 14px;background:var(--vgai-surface-inset);border:1px solid var(--vgai-boundary-default);border-radius:var(--vgai-shell-radius-sm)}.vgai-shell .vgai-error-card-command>code{flex:1;color:var(--vgai-content-primary);font-family:var(--vgai-font-mono);font-size:var(--vgai-shell-font-sm);overflow-wrap:anywhere}.vgai-shell .vgai-error-card-actions{display:flex;gap:var(--vgai-space-5);margin-top:14px}.vgai-splash{position:absolute;inset:0;display:grid;place-items:center;background:color-mix(in srgb,var(--vgai-surface-shell) 42%,black);color:var(--vgai-content-primary);pointer-events:auto;overflow:hidden}.vgai-splash:before{content:"";position:absolute;inset:0;background:radial-gradient(1000px 640px at 50% 34%,color-mix(in srgb,var(--vgai-accent) 18%,transparent),transparent 62%),radial-gradient(520px 340px at 50% 40%,rgb(255 255 255 / 5%),transparent 60%),radial-gradient(135% 105% at 50% 45%,transparent 48%,rgb(0 0 0 / 55%) 100%);pointer-events:none}.vgai-splash:after{content:"";position:absolute;inset:0;background-image:radial-gradient(rgb(255 255 255 / 4%) 1px,transparent 1px);background-size:26px 26px;mask-image:radial-gradient(640px 420px at 50% 40%,rgb(0 0 0 / 80%),transparent 78%);pointer-events:none}.vgai-splash-stack{position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--vgai-space-8);min-width:260px;animation:vgai-shell-rise .6s var(--vgai-shell-var(--vgai-ease-standard)) both}.vgai-splash-logo{position:relative;display:grid;place-items:center;width:72px;height:72px;margin-bottom:var(--vgai-space-3)}.vgai-splash-logo:before{content:"";position:absolute;inset:-42px;background:radial-gradient(closest-side,color-mix(in srgb,var(--vgai-accent) 24%,transparent),transparent 74%);border-radius:var(--vgai-radius-full)}.vgai-splash-logo:after{content:"";position:absolute;bottom:-12px;width:84px;height:16px;background:radial-gradient(closest-side,rgb(0 0 0 / 55%),transparent 75%);border-radius:var(--vgai-radius-full)}.vgai-splash-title{color:#ffffffe0;font-size:var(--vgai-font-xl);font-weight:var(--vgai-font-weight-semibold);letter-spacing:.3em;text-indent:.3em;text-transform:uppercase;text-shadow:0 1px 18px color-mix(in srgb,var(--vgai-accent) 30%,transparent)}.vgai-splash-progress{position:relative;width:232px;height:3px;margin-top:var(--vgai-space-3);overflow:hidden;background:color-mix(in srgb,var(--vgai-accent) 14%,rgb(255 255 255 / 5%));border-radius:var(--vgai-radius-full);box-shadow:0 0 18px color-mix(in srgb,var(--vgai-accent) 38%,transparent)}.vgai-splash-progress:after{content:"";position:absolute;inset:0;width:52%;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--vgai-accent) 80%,white),transparent);border-radius:inherit;animation:vgai-splash-sweep 1.4s ease-in-out infinite}.vgai-splash-status{color:var(--vgai-content-dim);font-size:var(--vgai-shell-font-sm);letter-spacing:.01em}.vgai-splash-note{max-width:42ch;color:var(--vgai-content-dim);font-size:var(--vgai-shell-font-xs, var(--vgai-shell-font-sm));line-height:var(--vgai-leading-relaxed);text-align:center;opacity:.8}@keyframes vgai-splash-sweep{0%{transform:translate(-110%)}to{transform:translate(360%)}}.vgai-shell-rise{animation:vgai-shell-rise .48s var(--vgai-shell-var(--vgai-ease-standard)) both}.vgai-shell-rise[data-rise="2"]{animation-delay:60ms}.vgai-shell-rise[data-rise="3"]{animation-delay:.12s}.vgai-shell-rise[data-rise="4"]{animation-delay:.18s}@keyframes vgai-shell-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.vgai-account{font-size:var(--vgai-shell-font-base);line-height:var(--vgai-shell-line)}.vgai-account{height:100%;padding:32px 40px 64px;overflow:auto;box-sizing:border-box;color:var(--vgai-content-primary);background:radial-gradient(1000px 560px at 50% -10%,color-mix(in srgb,var(--vgai-accent) 20%,transparent),transparent 62%),radial-gradient(640px 380px at 50% -2%,rgb(255 255 255 / 5%),transparent 58%),radial-gradient(135% 105% at 50% 40%,transparent 50%,rgb(0 0 0 / 45%) 100%),color-mix(in srgb,var(--vgai-surface-shell) 42%,black)}.vgai-shell .vgai-account{height:auto;padding:0;overflow:visible;background:none}[data-vgai-chrome=islands] .vgai-dock-document-content .vgai-account{--vgai-content-primary: var(--vgai-content-primary-on-bright);--vgai-content-muted: var(--vgai-content-muted-on-bright);--vgai-content-dim: var(--vgai-content-dim-on-bright);--vgai-content-text-shadow: var(--vgai-content-text-shadow-on-bright);--vgai-content-frost-bg: var(--vgai-content-frost-bg-on-bright);--vgai-text-1: var(--vgai-content-primary);--vgai-text-2: var(--vgai-content-muted);--vgai-text-3: var(--vgai-content-dim);text-shadow:var(--vgai-content-text-shadow, none);background:var(--vgai-glass-regular-bg, var(--vgai-surface-panel));backdrop-filter:var(--vgai-glass-regular-backdrop-filter, none);-webkit-backdrop-filter:var(--vgai-glass-regular-backdrop-filter, none)}[data-vgai-chrome=islands] .vgai-workspace-task-overlay .vgai-dock-document-content .vgai-account{background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}[data-vgai-chrome=islands] .vgai-dock-document-content .vgai-account .vgai-account-card{background:color-mix(in srgb,currentColor 5%,transparent);border-color:color-mix(in srgb,currentColor 18%,transparent);box-shadow:none}.vgai-account-stack{max-width:720px;margin:0 auto;display:flex;flex-direction:column;gap:var(--vgai-space-10)}.vgai-account-identity{display:flex;align-items:center;gap:var(--vgai-space-8);padding:var(--vgai-space-3) var(--vgai-space-1) var(--vgai-space-5);margin-bottom:var(--vgai-space-3)}.vgai-account-avatar{display:grid;place-items:center;flex:none;width:56px;height:56px;color:var(--vgai-content-on-accent);background:linear-gradient(180deg,rgb(255 255 255 / 24%),transparent 55%),linear-gradient(135deg,color-mix(in srgb,var(--vgai-accent) 88%,white),color-mix(in srgb,var(--vgai-accent) 68%,black));border-radius:var(--vgai-radius-full);font-size:22px;font-weight:var(--vgai-font-weight-semibold);letter-spacing:.02em;text-transform:uppercase;box-shadow:inset 0 1px #ffffff4d,0 0 0 1px #ffffff1a,0 6px 18px #00000073,0 0 32px color-mix(in srgb,var(--vgai-accent) 26%,transparent)}.vgai-account-identity-main{flex:1;min-width:0}.vgai-account-identity-row{display:flex;align-items:center;flex-wrap:wrap;gap:var(--vgai-space-2) var(--vgai-space-5)}.vgai-account-identity-email{margin:0;color:#fff;font-size:20px;font-weight:650;letter-spacing:-.02em;line-height:var(--vgai-leading-snug);overflow-wrap:anywhere;text-shadow:0 2px 18px color-mix(in srgb,var(--vgai-accent) 22%,transparent)}.vgai-account-plan-chips{display:inline-flex;align-items:center;flex-wrap:wrap;gap:var(--vgai-space-4)}.vgai-account-identity-note{margin:3px 0 0;color:var(--vgai-content-dim);font-size:var(--vgai-shell-font-xs);font-weight:var(--vgai-font-weight-semibold);letter-spacing:.08em;text-transform:uppercase}.vgai-account .vgai-btn.vgai-account-signout{flex:none;color:var(--vgai-content-muted)}.vgai-account .vgai-btn.vgai-account-signout:hover:not(:disabled){color:var(--vgai-content-primary)}.vgai-account .vgai-chip{height:24px;padding:0 var(--vgai-space-5);font-weight:var(--vgai-font-weight-semibold);letter-spacing:0}.vgai-account-signin-stack{display:flex;flex-direction:column;align-items:center;gap:var(--vgai-space-10);max-width:720px;margin:0 auto;padding-top:var(--vgai-space-8)}.vgai-account-signin-stack>.vgai-provider-connections{width:100%;box-sizing:border-box}.vgai-account-signin-hero{display:flex;flex-direction:column;align-items:center;gap:var(--vgai-space-2);padding-top:var(--vgai-space-10);text-align:center}.vgai-account-signin-mark{position:relative;display:grid;place-items:center;padding:var(--vgai-space-8)}.vgai-account-signin-mark:before{content:"";position:absolute;inset:-54px;background:radial-gradient(closest-side,color-mix(in srgb,var(--vgai-accent) 28%,transparent),transparent 76%);border-radius:var(--vgai-radius-full);pointer-events:none}.vgai-account-signin-mark:after{content:"";position:absolute;bottom:-8px;width:84px;height:16px;background:radial-gradient(closest-side,rgb(0 0 0 / 55%),transparent 75%);border-radius:var(--vgai-radius-full);pointer-events:none}.vgai-account-signin-card{display:flex;flex-direction:column;gap:var(--vgai-space-8);width:min(400px,100%);padding:28px;box-sizing:border-box}.vgai-account-signin-title{margin:var(--vgai-space-5) 0 0;color:#fff;font-size:var(--vgai-font-heading);font-weight:650;letter-spacing:-.02em;line-height:var(--vgai-leading-snug);text-shadow:0 2px 24px color-mix(in srgb,var(--vgai-accent) 24%,transparent)}.vgai-account .vgai-btn[data-variant=primary]{color:#fff;background:linear-gradient(180deg,#ffffff24,#fff0 52%),color-mix(in srgb,var(--vgai-accent) 76%,#1d4ed8);border:1px solid color-mix(in srgb,var(--vgai-accent) 74%,white 8%);box-shadow:inset 0 1px #ffffff38,0 1px 2px #0006,0 6px 16px #00000052}.vgai-account .vgai-btn[data-variant=primary]:hover:not(:disabled){filter:brightness(1.09);box-shadow:inset 0 1px #ffffff52,0 2px 4px #0000006b,0 8px 22px #0000006b}.vgai-account-signin-card .vgai-btn[data-variant=primary]{width:100%;height:38px;border-radius:9px;font-size:var(--vgai-shell-font-base);font-weight:var(--vgai-font-weight-semibold)}.vgai-account-signin-points{display:flex;flex-direction:column;gap:var(--vgai-space-4);width:min(400px,100%);margin:0;padding:0 var(--vgai-space-2);list-style:none;color:var(--vgai-content-dim);font-size:var(--vgai-shell-font-base);box-sizing:border-box}.vgai-account-signin-points li{display:flex;align-items:baseline;gap:var(--vgai-space-5)}.vgai-account-signin-points li:before{content:"✓";flex:none;color:var(--vgai-success);font-size:var(--vgai-shell-font-sm);font-weight:var(--vgai-font-weight-semibold)}.vgai-account .vgai-field{display:flex;flex-direction:column;gap:7px}.vgai-account .vgai-field-label{color:var(--vgai-content-muted);font-size:var(--vgai-shell-font-sm);font-weight:var(--vgai-font-weight-semibold)}.vgai-account .vgai-input,.vgai-account .vgai-select{height:34px;padding:0 var(--vgai-space-6);border-radius:var(--vgai-shell-radius-sm);font-size:var(--vgai-shell-font-base)}.vgai-account .vgai-select{padding-right:30px}.vgai-account-help{margin:0;color:var(--vgai-content-dim);font-size:var(--vgai-shell-font-sm);line-height:var(--vgai-leading-relaxed)}.vgai-account-infostrip{display:flex;align-items:flex-start;gap:var(--vgai-space-4);padding:0 var(--vgai-space-1);color:var(--vgai-content-dim);font-size:var(--vgai-shell-font-xs);line-height:var(--vgai-leading-relaxed);text-align:left}.vgai-account-infostrip-icon{flex:none;margin-top:var(--vgai-space-1);color:color-mix(in srgb,var(--vgai-accent) 70%,var(--vgai-content-dim))}.vgai-account-card{padding:var(--vgai-space-12);background:linear-gradient(180deg,#ffffff0d,#fff0 44%),color-mix(in srgb,white 3%,var(--vgai-surface-panel));border:1px solid rgb(255 255 255 / 9%);border-radius:var(--vgai-shell-radius);box-shadow:inset 0 1px #ffffff14,0 1px 2px #00000073,0 20px 48px #00000075;box-sizing:border-box}.vgai-account-card-title{margin:0 0 var(--vgai-space-2);color:var(--vgai-content-primary);font-size:var(--vgai-shell-font-md);font-weight:var(--vgai-font-weight-semibold);letter-spacing:-.005em}.vgai-account-card-sub{margin:0 0 var(--vgai-space-8);color:var(--vgai-content-dim);font-size:var(--vgai-shell-font-sm);max-width:560px}.vgai-account-card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--vgai-space-6)}.vgai-account-card-head .vgai-account-card-title{margin:0}.vgai-account-credit-figure{display:flex;align-items:baseline;gap:var(--vgai-space-4);margin:var(--vgai-space-5) 0 var(--vgai-space-6)}.vgai-account-credit-number{color:#fff;font-size:28px;font-weight:650;letter-spacing:-.02em;line-height:var(--vgai-leading-tight);font-variant-numeric:tabular-nums}.vgai-account-credit-unit{color:var(--vgai-content-dim);font-size:var(--vgai-shell-font-sm)}.vgai-account .vgai-meter{position:relative;height:8px;margin:var(--vgai-space-1) 0 var(--vgai-space-5);overflow:hidden;background:#00000061;border-radius:var(--vgai-radius-full);box-shadow:inset 0 1px 2px #0000007f,inset 0 0 0 1px #ffffff0d;box-sizing:border-box}.vgai-account .vgai-meter-fill{position:absolute;inset:0 auto 0 0;background:linear-gradient(180deg,color-mix(in srgb,var(--vgai-accent) 78%,white),var(--vgai-accent));border-radius:inherit;box-shadow:0 0 12px color-mix(in srgb,var(--vgai-accent) 55%,transparent);transition:width var(--vgai-duration-slow) var(--vgai-shell-var(--vgai-ease-standard))}.vgai-account .vgai-meter-fill[data-part=reserved]{background:color-mix(in srgb,var(--vgai-accent) 38%,transparent);box-shadow:none}.vgai-account .vgai-meter[data-state=over] .vgai-meter-fill{background:linear-gradient(180deg,color-mix(in srgb,var(--vgai-danger) 80%,white),var(--vgai-danger));box-shadow:0 0 12px color-mix(in srgb,var(--vgai-danger) 55%,transparent)}.vgai-account-cycle-line{margin:0 0 var(--vgai-space-6);color:var(--vgai-content-dim);font-size:var(--vgai-shell-font-sm);font-variant-numeric:tabular-nums}.vgai-account-cycle-over{color:var(--vgai-danger);font-weight:var(--vgai-font-weight-semibold)}.vgai-account-legend{display:flex;align-items:center;flex-wrap:wrap;gap:var(--vgai-space-3) var(--vgai-space-8)}.vgai-account-legend-item{display:inline-flex;align-items:center;gap:7px;color:var(--vgai-content-muted);font-size:var(--vgai-shell-font-sm);font-variant-numeric:tabular-nums}.vgai-account-legend-dot{flex:none;width:8px;height:8px;border-radius:var(--vgai-radius-full);box-sizing:border-box}.vgai-account-legend-item[data-part=used] .vgai-account-legend-dot{background:var(--vgai-accent)}.vgai-account-legend[data-state=over] .vgai-account-legend-item[data-part=used] .vgai-account-legend-dot{background:var(--vgai-danger)}.vgai-account-legend-item[data-part=reserved] .vgai-account-legend-dot{background:color-mix(in srgb,var(--vgai-accent) 38%,transparent)}.vgai-account-legend-item[data-part=purchased] .vgai-account-legend-dot{background:transparent;border:1px solid var(--vgai-boundary-strong)}.vgai-account-expiry{margin-top:var(--vgai-space-5)}.vgai-account-card-footer{display:flex;align-items:center;flex-wrap:wrap;gap:var(--vgai-space-4);margin-top:18px;padding-top:14px;border-top:1px solid rgb(255 255 255 / 7%)}.vgai-account .vgai-btn.vgai-account-quiet-danger{color:var(--vgai-content-dim)}.vgai-account .vgai-btn.vgai-account-quiet-danger:hover:not(:disabled){color:var(--vgai-danger);background:var(--vgai-danger-muted)}.vgai-account-providers-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--vgai-space-8)}.vgai-account-providers-header .vgai-status-dot{flex-shrink:0;white-space:nowrap}.vgai-account-provider-list{display:flex;flex-direction:column;margin-top:var(--vgai-space-2);border-top:1px solid rgb(255 255 255 / 7%)}.vgai-account-provider{display:flex;align-items:center;gap:var(--vgai-space-8);padding:14px 2px;border-top:1px solid rgb(255 255 255 / 7%)}.vgai-account-provider:first-child{border-top:0}.vgai-account-provider-monogram{display:grid;place-items:center;flex:none;width:38px;height:38px;color:var(--vgai-content-primary);background:linear-gradient(180deg,rgb(255 255 255 / 6%),transparent 60%),var(--vgai-surface-raised);border:1px solid var(--vgai-boundary-default);border-radius:10px;font-size:var(--vgai-shell-font-md);font-weight:var(--vgai-font-weight-semibold)}.vgai-account-provider[data-configured=true] .vgai-account-provider-monogram{color:var(--vgai-accent);border-color:#579eff59;background:linear-gradient(180deg,rgb(87 158 255 / 12%),transparent 70%),var(--vgai-surface-raised)}.vgai-account-provider-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--vgai-space-1)}.vgai-account-provider-name{display:flex;align-items:center;gap:var(--vgai-space-4);color:var(--vgai-content-primary);font-size:var(--vgai-shell-font-base);font-weight:var(--vgai-font-weight-semibold)}.vgai-account-provider-dot{flex:none;width:6px;height:6px;background:var(--vgai-success);border-radius:var(--vgai-radius-full)}.vgai-account-provider-key{color:var(--vgai-content-dim);font-family:var(--vgai-font-mono);font-size:var(--vgai-shell-font-xs)}.vgai-account-provider-source{color:var(--vgai-content-dim);font-size:var(--vgai-shell-font-xs)}.vgai-account-provider-warning{color:var(--vgai-warn);font-size:var(--vgai-shell-font-xs)}.vgai-account-provider-actions{display:flex;align-items:center;gap:var(--vgai-space-4)}.vgai-account-provider-form{display:flex;flex-direction:column;gap:var(--vgai-space-6);width:min(360px,48%)}.vgai-account-provider-form .vgai-tool-actions,.vgai-account-provider-form-actions{display:flex;gap:var(--vgai-space-4)}.vgai-account .vgai-status-dot{display:inline-flex;align-items:center;gap:var(--vgai-space-3);color:var(--vgai-content-dim);font-size:var(--vgai-shell-font-xs);font-weight:var(--vgai-font-weight-regular)}.vgai-account .vgai-status-dot:before{content:"";width:6px;height:6px;background:var(--vgai-content-dim);border-radius:var(--vgai-radius-full)}.vgai-account .vgai-status-dot[data-state=on]{color:var(--vgai-success)}.vgai-account .vgai-status-dot[data-state=on]:before{background:var(--vgai-success);box-shadow:0 0 6px var(--vgai-success)}.vgai-account-switch-row{display:flex;align-items:flex-start;gap:14px;padding:14px 0;border-top:1px solid rgb(255 255 255 / 7%);cursor:pointer}.vgai-account-switch-row:first-of-type{border-top:0}.vgai-account-switch-copy{display:flex;flex-direction:column;gap:var(--vgai-space-1)}.vgai-account-switch-copy>strong{color:var(--vgai-content-primary);font-size:var(--vgai-shell-font-base);font-weight:var(--vgai-font-weight-semibold)}.vgai-account-switch-copy>small{color:var(--vgai-content-dim);font-size:var(--vgai-shell-font-sm)}.vgai-account-switch-row .vgai-checkbox{appearance:none;flex:none;width:34px;height:20px;margin:1px 0 0;background:#0000004d;border:1px solid rgb(255 255 255 / 14%);border-radius:var(--vgai-radius-full);cursor:pointer;position:relative;box-shadow:inset 0 1px 2px #00000059;transition:background .16s var(--vgai-ease-standard),border-color .16s var(--vgai-ease-standard)}.vgai-account-switch-row .vgai-checkbox:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;background:var(--vgai-content-muted);border-radius:var(--vgai-radius-full);transition:transform .16s var(--vgai-shell-var(--vgai-ease-standard)),background .16s var(--vgai-ease-standard)}.vgai-account-switch-row .vgai-checkbox:checked{background:linear-gradient(180deg,#fff3,#fff0 55%),var(--vgai-accent);border-color:color-mix(in srgb,var(--vgai-accent) 80%,white 10%);box-shadow:0 0 10px color-mix(in srgb,var(--vgai-accent) 35%,transparent)}.vgai-account-switch-row .vgai-checkbox:checked:after{transform:translate(14px);background:var(--vgai-content-on-accent)}.vgai-account-switch-row .vgai-checkbox:focus-visible{outline:var(--vgai-focus-ring);outline-offset:2px}.vgai-account-policy-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-left:48px;padding:var(--vgai-space-2) 0 var(--vgai-space-6)}.vgai-account-limit-field{max-width:320px;margin-left:48px;padding:4px 0 14px}.vgai-account-usage{display:flex;flex-direction:column;margin-top:var(--vgai-space-2)}.vgai-account-usage-row{display:flex;align-items:center;justify-content:space-between;gap:var(--vgai-space-8);padding:11px 2px;border-top:1px solid rgb(255 255 255 / 7%);font-size:var(--vgai-shell-font-base)}.vgai-account-usage-row:first-child{border-top:0}.vgai-account-usage-row>span{color:var(--vgai-content-muted)}.vgai-account-usage-row>strong{color:var(--vgai-content-primary);font-variant-numeric:tabular-nums;font-weight:var(--vgai-font-weight-semibold)}.vgai-account-input-suffix{display:flex;align-items:center;gap:var(--vgai-space-4)}.vgai-account-input-suffix .vgai-input{flex:1;min-width:0}.vgai-account-suffix{flex:none;color:var(--vgai-content-dim);font-size:var(--vgai-shell-font-sm)}.vgai-account-status{display:flex;align-items:center;gap:var(--vgai-space-5);padding:var(--vgai-space-6) var(--vgai-space-8);color:var(--vgai-content-primary);background:var(--vgai-surface-chrome);backdrop-filter:var(--vgai-content-frost-filter, none);-webkit-backdrop-filter:var(--vgai-content-frost-filter, none);border:1px solid var(--vgai-boundary-default);border-radius:var(--vgai-shell-radius-sm);font-size:var(--vgai-shell-font-sm);animation:vgai-shell-rise var(--vgai-duration-slow) var(--vgai-shell-var(--vgai-ease-standard)) both}.vgai-account-status:before{content:"";flex:none;width:6px;height:6px;background:var(--vgai-accent);border-radius:var(--vgai-radius-full)}.vgai-account-device-code{display:flex;flex-direction:column;gap:var(--vgai-space-3);padding:14px 16px;background:var(--vgai-surface-inset);backdrop-filter:var(--vgai-content-frost-filter, none);-webkit-backdrop-filter:var(--vgai-content-frost-filter, none);border:1px solid var(--vgai-boundary-default);border-radius:var(--vgai-shell-radius-sm);text-align:center}.vgai-account-device-code>strong{color:var(--vgai-content-primary);font-family:var(--vgai-font-mono);font-size:22px;letter-spacing:.28em}.vgai-account-device-code>span{color:var(--vgai-content-dim);font-size:var(--vgai-shell-font-sm)}@media(max-width:860px){.vgai-shell-container{padding:0 20px 64px}.vgai-account-identity{flex-wrap:wrap}.vgai-account-policy-fields{grid-template-columns:minmax(0,1fr);margin-left:0}.vgai-account-limit-field{margin-left:0}.vgai-shell-hero{align-items:flex-start;flex-direction:column}}@media(prefers-reduced-motion:reduce){.vgai-shell-rise,.vgai-splash-stack,.vgai-account-status{animation:none}.vgai-splash-progress:after{animation:none;width:100%;background:var(--vgai-accent-muted)}.vgai-account .vgai-meter-fill,.vgai-account-switch-row .vgai-checkbox,.vgai-account-switch-row .vgai-checkbox:after{transition:none}}.vgai-logo-a{--logo-x: 5px;--logo-y: -2px;--logo-angle: 18deg;--logo-seat-x: -.24px;--logo-seat-y: .1px;--logo-seat-angle: -1deg;--logo-delay: 0ms}.vgai-logo-b{--logo-x: -5px;--logo-y: 2px;--logo-angle: -24deg;--logo-seat-x: .24px;--logo-seat-y: -.1px;--logo-seat-angle: 1.2deg;--logo-delay: .11s}.vgai-logo-c{--logo-x: -1px;--logo-y: -5px;--logo-angle: -16deg;--logo-seat-x: .05px;--logo-seat-y: .24px;--logo-seat-angle: .8deg;--logo-delay: .22s}.vgai-logo--assemble path,.vgai-logo--loading path{transform-box:fill-box;transform-origin:center}.vgai-logo--assemble path{animation:vgai-logo-assemble .74s var(--logo-delay) both}@keyframes vgai-logo-assemble{0%,12%{transform:translate(var(--logo-x),var(--logo-y)) rotate(var(--logo-angle));animation-timing-function:cubic-bezier(.7,0,.25,1)}72%{transform:translate(var(--logo-seat-x),var(--logo-seat-y)) rotate(var(--logo-seat-angle));animation-timing-function:cubic-bezier(.2,.8,.2,1)}to{transform:translate(0) rotate(0)}}.vgai-logo--loading path{animation:vgai-logo-cycle 3s var(--logo-delay) infinite both}@keyframes vgai-logo-cycle{0%,8%{transform:translate(var(--logo-x),var(--logo-y)) rotate(var(--logo-angle));animation-timing-function:cubic-bezier(.7,0,.25,1)}26%{transform:translate(var(--logo-seat-x),var(--logo-seat-y)) rotate(var(--logo-seat-angle));animation-timing-function:cubic-bezier(.2,.8,.2,1)}33%,62%{transform:translate(0) rotate(0);animation-timing-function:cubic-bezier(.6,0,.85,.35)}70%{transform:translate(var(--logo-seat-x),var(--logo-seat-y)) rotate(var(--logo-seat-angle));animation-timing-function:cubic-bezier(.65,0,.3,1)}92%,to{transform:translate(var(--logo-x),var(--logo-y)) rotate(var(--logo-angle))}}@media(prefers-reduced-motion:reduce){.vgai-logo--assemble path,.vgai-logo--loading path{animation:none}}.vgai-asset-library-panel{width:100%;height:100%;min-width:0;min-height:0;overflow:hidden}.vgai-asset-library-navigator{display:flex;flex-direction:column;width:100%;height:100%;min-width:0;min-height:0;color:var(--vgai-text-1)}.vgai-asset-library-navigator__controls{display:flex;flex-direction:column;gap:5px;padding:var(--vgai-space-3);border-bottom:1px solid var(--vgai-structural-divider)}.vgai-asset-library-navigator__search-row{display:flex;gap:var(--vgai-space-2)}.vgai-asset-library-navigator__search-row>.vgai-input{width:100%;min-width:0;box-sizing:border-box}.vgai-asset-library-navigator__filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--vgai-space-2)}.vgai-asset-library-navigator__filters .vgai-select{width:100%;min-width:0}.vgai-asset-library-navigator__status{color:var(--vgai-text-3);font-size:var(--vgai-font-sm)}.vgai-asset-import-jobs{display:flex;min-width:0;flex-wrap:wrap;align-items:center;gap:var(--vgai-space-2);color:var(--vgai-text-2);font-size:var(--vgai-font-sm)}.vgai-asset-import-jobs>span{display:inline-flex;min-width:0;align-items:center;gap:var(--vgai-space-2);padding:var(--vgai-space-1) var(--vgai-space-2);border:1px solid var(--vgai-border-1);border-radius:var(--vgai-radius-sm, 3px);background:var(--vgai-bg-1)}.vgai-asset-import-jobs [data-status=failed],.vgai-asset-import-error{color:var(--vgai-danger, var(--vgai-text-1))}.vgai-asset-library-navigator__results{flex:1;min-height:0;overflow:auto;padding:var(--vgai-space-4);display:grid;grid-template-columns:repeat(auto-fill,minmax(66px,1fr));grid-auto-rows:min-content;align-content:start;gap:var(--vgai-space-3);background:var(--vgai-content-frost-bg, transparent);backdrop-filter:var(--vgai-content-frost-filter, none);-webkit-backdrop-filter:var(--vgai-content-frost-filter, none)}.vgai-asset-library-navigator__filter-drawer{min-height:0;max-height:58%;overflow:auto;border-bottom:1px solid var(--vgai-structural-divider)}.vgai-asset-library-navigator__filter-heading{position:sticky;z-index:1;top:0;display:flex;align-items:center;justify-content:space-between;padding:5px 7px;border-bottom:1px solid var(--vgai-structural-divider);background:var(--vgai-surface-sticky);backdrop-filter:var(--vgai-surface-sticky-backdrop-filter, none);-webkit-backdrop-filter:var(--vgai-surface-sticky-backdrop-filter, none);color:var(--vgai-text-2);font-size:var(--vgai-font-sm);font-weight:650}.vgai-asset-library-navigator__source-filters{display:block;overflow:visible;padding:var(--vgai-space-5);border:0}.vgai-asset-library-navigator__save-search{width:calc(100% - 12px);margin:var(--vgai-space-3) var(--vgai-space-3) 0}.vgai-asset-library-card{width:100%;min-width:0;padding:0;display:flex;flex-direction:column;align-items:center;gap:3px;border:0;border-radius:var(--vgai-radius-sm, 3px);background:transparent;color:var(--vgai-text-1);text-align:center;cursor:pointer;user-select:none}.vgai-asset-library-card .vgai-project-asset-entry__preview{width:100%;aspect-ratio:1 / 1;margin:0 auto;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:var(--vgai-radius-sm, 3px);pointer-events:none;position:relative}.vgai-asset-library-card .vgai-project-asset-entry__preview>img{width:100%;height:100%;object-fit:contain}.vgai-asset-library-card__name,.vgai-asset-library-card__meta{width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis}.vgai-asset-library-card__name{min-height:26px;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-size:var(--vgai-font-sm);line-height:13px;font-weight:550}.vgai-asset-library-card__meta{color:var(--vgai-text-3);font-size:var(--vgai-font-xs);white-space:nowrap}.vgai-asset-library-navigator__load-more{grid-column:1 / -1;justify-self:center}.vgai-project-assets-toolbar{flex:0 0 auto;border-bottom:1px solid var(--vgai-structural-divider)}.vgai-project-assets-toolbar__row{width:100%;min-width:0;min-height:28px;box-sizing:border-box;gap:var(--vgai-space-2);padding:var(--vgai-space-1) var(--vgai-space-2);border:0;background:transparent}.vgai-project-assets-toolbar__row+.vgai-project-assets-toolbar__row{border-top:1px solid var(--vgai-structural-divider)}.vgai-project-assets-toolbar__select{min-width:0;flex:1 1 64px;width:64px}.vgai-content-filter-chip{flex:0 0 auto;border:1px solid var(--vgai-boundary-default);border-radius:var(--vgai-radius-full);padding-inline:8px;color:var(--vgai-text-2)}.vgai-content-filter-inline{flex:1 1 auto;min-width:0;overflow-x:auto;scrollbar-width:none}.vgai-component-thumbnail{width:100%;height:100%;object-fit:cover}.vgai-component-thumbnail-fallback{display:contents}.vgai-project-assets-toolbar__more{position:relative;flex:0 0 auto}.vgai-project-assets-toolbar__menu{position:absolute;z-index:var(--vgai-z-dropdown);top:calc(100% + 3px);right:0;min-width:170px}.vgai-project-assets-results{box-shadow:inset 0 1px 0 var(--vgai-border-1);background:var(--vgai-content-frost-bg, transparent);backdrop-filter:var(--vgai-content-frost-filter, none);-webkit-backdrop-filter:var(--vgai-content-frost-filter, none)}.vgai-content-result-section{display:contents}.vgai-content-section-heading{grid-column:1 / -1;display:flex;align-items:center;min-width:0;min-height:18px;gap:7px;margin-top:var(--vgai-space-1);color:var(--vgai-text-3);font-size:var(--vgai-font-xs);font-weight:650;letter-spacing:.08em;line-height:var(--vgai-leading-tight);text-transform:uppercase}.vgai-content-section-heading:after{content:"";min-width:8px;flex:1 1 auto;border-top:1px solid var(--vgai-structural-divider)}.vgai-content-section-heading[data-level=section]{min-height:22px;margin-top:var(--vgai-space-3);color:var(--vgai-text-2);font-size:var(--vgai-font-sm)}.vgai-content-section-heading[data-level=category]{padding-inline-start:2px}.vgai-project-asset-entry{box-sizing:border-box;border:0;background:transparent}.vgai-project-asset-entry:hover{background:transparent}.vgai-project-asset-entry[data-selected=true]{background:var(--vgai-selection-bg);box-shadow:none}.vgai-project-asset-entry__preview{box-sizing:border-box;border:1px solid var(--vgai-border-1);background:linear-gradient(45deg,rgb(255 255 255 / 2%) 25%,transparent 25%) 0 0 / 12px 12px,linear-gradient(-45deg,rgb(255 255 255 / 2%) 25%,transparent 25%) 0 6px / 12px 12px,var(--vgai-bg-inset);transition:border-color 90ms var(--vgai-ease-standard),box-shadow 90ms var(--vgai-ease-standard)}.vgai-project-asset-entry:hover .vgai-project-asset-entry__preview{border-color:var(--vgai-boundary-strong)}.vgai-project-asset-entry[data-selected=true] .vgai-project-asset-entry__preview{border-color:var(--vgai-border-1)}.vgai-project-asset-entry__kind{position:absolute;right:4px;bottom:4px;width:18px;height:18px;display:grid;place-items:center;border:1px solid var(--vgai-boundary-default);border-radius:var(--vgai-radius-sm);background:var(--vgai-surface-overlay);box-shadow:var(--vgai-shadow-sm)}.vgai-project-asset-entry[data-view=list]{border-color:transparent;background:transparent}.vgai-project-asset-entry[data-view=list] .vgai-project-asset-entry__preview{border:0;background:transparent}.vgai-folder-preview{position:relative;width:100%;height:100%}.vgai-folder-preview__grid{position:absolute;inset:0;display:grid;gap:var(--vgai-space-1);animation:vgai-folder-preview-fade .12s var(--vgai-ease-out)}.vgai-folder-preview__grid[data-count="1"]{grid-template:1fr / 1fr}.vgai-folder-preview__grid[data-count="2"]{grid-template:1fr / 1fr 1fr}.vgai-folder-preview__grid[data-count="3"],.vgai-folder-preview__grid[data-count="4"]{grid-template:1fr 1fr / 1fr 1fr}.vgai-folder-preview__grid[data-count="3"]>:first-child{grid-row:span 2}.vgai-folder-preview__cell{position:relative;display:flex;min-width:0;min-height:0;align-items:center;justify-content:center;overflow:hidden;background:var(--vgai-bg-inset)}.vgai-folder-preview__cell img{width:100%;height:100%;object-fit:cover}.vgai-folder-preview__cell img[data-fit=contain]{object-fit:contain}.vgai-folder-preview__chip,.vgai-folder-preview__count{position:absolute;bottom:3px;display:inline-flex;align-items:center;padding:2px 5px;border-radius:var(--vgai-radius-full);background:color-mix(in srgb,var(--vgai-bg-0) 82%,transparent);color:var(--vgai-text-2);font-size:var(--vgai-font-xs);line-height:var(--vgai-leading-tight);pointer-events:none;animation:vgai-folder-preview-fade .12s var(--vgai-ease-out)}.vgai-folder-preview__chip{left:3px;padding:var(--vgai-space-1) var(--vgai-space-2);font-size:var(--vgai-font-sm)}.vgai-folder-preview__count{right:3px;font-variant-numeric:tabular-nums}.vgai-folder-preview__fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;animation:vgai-folder-preview-fade .12s var(--vgai-ease-out)}.vgai-folder-preview__empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--vgai-text-3);animation:vgai-folder-preview-fade .12s var(--vgai-ease-out)}.vgai-folder-preview__empty-glyph{font-size:17px;opacity:.7}.vgai-folder-preview__empty-caption{font-size:var(--vgai-font-xs);letter-spacing:.05em;text-transform:uppercase}@keyframes vgai-folder-preview-fade{0%{opacity:0}}.vgai-asset-editor button:focus-visible,.vgai-asset-browser button:focus-visible,.vgai-asset-editor input:focus-visible{outline:0;box-shadow:0 0 0 2px var(--vgai-accent)}.vgai-asset-card__preview{position:relative;width:100%;aspect-ratio:4 / 3;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:var(--vgai-radius-sm, 3px);box-shadow:inset 0 0 0 1px var(--vgai-border-1)}.vgai-asset-card__fallback{position:absolute;right:4px;bottom:4px;padding:var(--vgai-space-1) var(--vgai-space-2);border-radius:var(--vgai-radius-sm);background:color-mix(in srgb,var(--vgai-bg-0) 88%,transparent);color:var(--vgai-text-2);font-size:var(--vgai-font-xs)}.vgai-asset-card__preview img{width:100%;height:100%;object-fit:contain}.vgai-asset-card__name{margin-top:7px;min-height:34px;display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-size:var(--vgai-font-md);line-height:17px;font-weight:550;min-width:0;overflow-wrap:anywhere;word-break:break-word}.vgai-asset-card__meta,.vgai-asset-card__badges{display:flex;gap:5px;align-items:center;margin-top:var(--vgai-space-2);color:var(--vgai-text-3);font-size:var(--vgai-font-sm)}.vgai-asset-badge{padding:1px 5px;border-radius:var(--vgai-radius-full);background:var(--vgai-bg-3);color:var(--vgai-text-2);font-size:var(--vgai-font-sm);white-space:nowrap}.vgai-asset-facet-title{margin:12px 0 5px;color:var(--vgai-text-3);font-size:var(--vgai-font-sm);font-weight:700;letter-spacing:.06em;text-transform:uppercase}.vgai-asset-facet-check{display:flex;align-items:center;gap:var(--vgai-space-3);min-height:28px;color:var(--vgai-text-2);font-size:var(--vgai-font-base)}.vgai-asset-facet-check .vgai-select{min-width:0;flex:1}.vgai-asset-context-menu{position:fixed;min-width:190px}.vgai-asset-context-menu .vgai-menu-item{min-height:var(--vgai-control-comfortable-height);justify-content:space-between;gap:var(--vgai-space-6)}.vgai-asset-context-menu kbd{color:var(--vgai-text-3);font:inherit}.vgai-asset-editor{width:100%;height:100%;min-width:0;min-height:0;display:flex;flex-direction:column;position:relative}.vgai-asset-editor__toolbar{min-height:40px;display:flex;align-items:center;gap:7px;padding:var(--vgai-space-3) var(--vgai-space-5);border-bottom:1px solid var(--vgai-structural-divider)}.vgai-asset-editor__commands{flex:1;display:flex;flex-wrap:wrap;align-items:center;gap:5px}.vgai-asset-editor__toolbar button,.vgai-asset-editor__toolbar select{min-height:26px;border:1px solid var(--vgai-boundary-default);border-radius:var(--vgai-radius-sm);background:var(--vgai-bg-3);color:var(--vgai-text-1)}.vgai-asset-editor__viewport{flex:1;min-width:0;min-height:0;overflow:auto;position:relative}.vgai-asset-editor__viewport--fill{overflow:hidden}.vgai-asset-transparency-well{background-color:var(--vgai-bg-inset);background-image:linear-gradient(45deg,#2a2a2a 25%,transparent 25%,transparent 75%,#2a2a2a 75%),linear-gradient(45deg,#2a2a2a 25%,transparent 25%,transparent 75%,#2a2a2a 75%);background-position:0 0,8px 8px;background-size:16px 16px}.vgai-object3d-studio-stage{background-color:var(--vgai-object3d-stage-base, #1d232b);background-image:radial-gradient(90% 72% at 50% 36%,color-mix(in srgb,var(--vgai-accent) 16%,rgb(122 148 177 / 22%)),transparent 62%),radial-gradient(70% 42% at 50% 92%,rgb(124 151 181 / 10%),transparent 72%),radial-gradient(140% 112% at 50% 44%,transparent 42%,rgb(0 0 0 / 58%) 100%),linear-gradient(180deg,var(--vgai-object3d-stage-top, color-mix(in srgb, var(--vgai-surface-raised) 82%, #394451)) 0%,var(--vgai-object3d-stage-bottom, color-mix(in srgb, var(--vgai-surface-shell) 76%, #11151b)) 100%)}.vgai-object3d-studio-stage[data-vgai-chromeless=true]{--vgai-object3d-stage-base: rgb(29 35 43 / 34%);--vgai-object3d-stage-top: rgb(57 68 81 / 40%);--vgai-object3d-stage-bottom: rgb(17 21 27 / 52%)}.vgai-object3d-asset-workspace{position:absolute;inset:0;display:flex;min-width:0;min-height:0;flex-direction:column}.vgai-behavior-document{position:absolute;inset:0;min-width:0;min-height:0}.vgai-behavior-document__empty{display:grid;width:100%;height:100%;place-items:center;color:var(--vgai-text-2)}.vgai-inspector-icon-strip{display:flex;flex-wrap:wrap;align-items:center;gap:var(--vgai-space-1);padding:var(--vgai-space-1) var(--vgai-space-2);border-bottom:1px solid var(--vgai-structural-divider)}.vgai-inspector-icon-strip .vgai-btn[data-variant=ghost]{color:var(--vgai-content-dim)}.vgai-inspector-icon-strip .vgai-btn[data-variant=ghost]:hover:not(:disabled){color:var(--vgai-content-primary)}.vgai-inspector-properties{display:flex;align-items:stretch;min-height:100%}[data-vgai-inspector-presentation=properties]{flex:1 1 auto;min-height:0}[data-vgai-inspector-presentation=properties]>.vgai-inspector-properties-fill{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.vgai-inspector-properties-rail{display:flex;flex-direction:column;gap:var(--vgai-stroke-resting);padding-top:var(--vgai-space-4);padding-left:var(--vgai-stroke-resting);--vgai-properties-tab-plate-radius: 2px;width:28px;box-sizing:border-box;background:var(--vgai-surface-shell);position:sticky;top:0;align-self:stretch;flex:0 0 auto}.vgai-inspector-properties-rail-separator{flex:0 0 auto;height:6.5px}.vgai-inspector-properties-rail .vgai-btn[data-icon][data-size]{width:27px;height:27px;min-width:0;min-height:0;padding:0;border-radius:0}.vgai-inspector-properties-rail .vgai-btn[data-variant=ghost]{color:var(--vgai-content-dim);background:var(--vgai-surface-chrome)}.vgai-inspector-properties-rail .vgai-btn[data-variant=ghost]:hover:not(:disabled){color:var(--vgai-content-primary)}.vgai-inspector-properties-rail .vgai-btn[aria-selected=true],.vgai-inspector-properties-rail .vgai-btn[data-variant=ghost][aria-selected=true]{color:var(--vgai-content-primary);background:var(--vgai-surface-panel)}.vgai-inspector-properties-rail .vgai-btn[data-icon][data-size][aria-selected=true]{--vgai-plate-corner: calc(var(--vgai-properties-tab-plate-radius) + var(--vgai-stroke-resting));background-clip:padding-box;border-radius:var(--vgai-plate-corner) 0 0 var(--vgai-plate-corner)}.vgai-inspector-properties-rail .vgai-btn [data-vgai-tone]{opacity:.8}.vgai-inspector-properties-rail .vgai-btn[aria-selected=true] [data-vgai-tone]{opacity:1}.vgai-inspector-identity[data-vgai-identity-layout=properties]{display:flex;flex-direction:column;gap:var(--vgai-space-8);padding:var(--vgai-space-1) 0 var(--vgai-space-5)}.vgai-inspector-breadcrumb{display:flex;align-items:center;gap:var(--vgai-space-4);min-height:var(--vgai-control-default-height)}.vgai-inspector-breadcrumb-chain{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--vgai-font-base);color:var(--vgai-content-primary)}.vgai-inspector-datablock{display:flex;align-items:stretch;min-width:0}.vgai-inspector-datablock-kind{display:flex;flex:0 0 auto;align-items:center;justify-content:center;min-width:calc(var(--vgai-control-default-height) + var(--vgai-space-5));height:var(--vgai-control-default-height);background:var(--vgai-widget-menu);color:var(--vgai-content-primary);border:var(--vgai-stroke-resting) solid var(--vgai-border-1);border-radius:var(--vgai-radius-sm) 0 0 var(--vgai-radius-sm);border-right:0;box-shadow:var(--vgai-widget-emboss-shadow)}.vgai-inspector-datablock .vgai-input,.vgai-inspector-datablock [data-testid=ingest-name]{border-radius:0 var(--vgai-radius-sm) var(--vgai-radius-sm) 0}.vgai-inspector-datablock [data-testid=ingest-name][data-readonly=true]{display:flex;align-items:center;height:var(--vgai-control-default-height);padding:0 var(--vgai-space-3);background:var(--vgai-input-surface, var(--vgai-bg-inset));border:var(--vgai-stroke-resting) solid var(--vgai-input-border, var(--vgai-border-1));box-sizing:border-box;box-shadow:var(--vgai-input-shadow, none)}.vgai-inspector-properties-body{flex:1 1 auto;min-width:0;padding:var(--vgai-space-4)}.vgai-inspector-properties-body .vgai-section{background:var(--vgai-surface-section);border:var(--vgai-stroke-resting) solid var(--vgai-surface-section-edge);border-radius:var(--vgai-radius-sm);margin-bottom:var(--vgai-space-1);overflow:hidden}.vgai-inspector-properties-body .vgai-section-header{background:transparent}.vgai-inspector-properties-body .vgai-section:last-child{margin-bottom:0}.vgai-inspector-properties-body .vgai-inspector-tool-section{padding:0;margin-top:0;border-top:0}.vgai-inspector-properties-body .vgai-section-glyph{display:none}.vgai-inspector-properties-body .vgai-section-trigger{gap:var(--vgai-space-3);padding-inline:var(--vgai-space-2) var(--vgai-space-4);font-weight:400;--vgai-section-disclosure-size: var(--vgai-icon-lg)}.vgai-mini-inspector{position:relative;display:flex;flex-direction:column;width:100%;min-height:0;border-radius:inherit;overflow-y:auto;pointer-events:auto}.vgai-mini-inspector-minimize{position:absolute;top:var(--vgai-space-1);right:var(--vgai-space-1);z-index:1;color:var(--vgai-content-dim)}.vgai-mini-inspector-preview{position:relative;width:100%;aspect-ratio:1 / 1;max-height:180px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--vgai-bg-inset);color:var(--vgai-content-dim);cursor:pointer}.vgai-mini-inspector-preview[aria-label]{cursor:pointer}.vgai-mini-inspector-preview:focus-visible{outline:var(--vgai-focus-ring);outline-offset:-2px}.vgai-mini-inspector-preview .vgai-editor-icon{font-size:var(--vgai-font-xl, 24px)}.vgai-mini-inspector-identity{display:flex;align-items:center;gap:var(--vgai-space-2);padding:var(--vgai-space-2)}.vgai-mini-inspector-actions{display:flex;justify-content:flex-end;padding:0 var(--vgai-space-2) var(--vgai-space-2)}.vgai-inspector-pill{display:flex;align-items:center;gap:var(--vgai-space-1);width:100%;height:100%;padding:var(--vgai-space-1)}.vgai-inspector-pill-open{display:flex;align-items:center;gap:var(--vgai-space-2);min-width:0;flex:1;height:100%;border:0;background:transparent;color:var(--vgai-content-primary);cursor:pointer;text-align:left}.vgai-inspector-pill-open:focus-visible{outline:var(--vgai-focus-ring);outline-offset:2px;border-radius:var(--vgai-radius-full)}.vgai-inspector-pill-thumb{position:relative;width:42px;height:42px;flex:0 0 42px;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:var(--vgai-radius-full);background:var(--vgai-bg-inset);border:1px solid var(--vgai-boundary-default);color:var(--vgai-content-dim);pointer-events:none}.vgai-inspector-pill-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--vgai-font-md);font-weight:600}.vgai-workspace-task-overlay{position:absolute;top:72px;bottom:64px;left:50%;z-index:var(--vgai-z-modal);width:min(760px,calc(100% - 96px));min-height:320px;overflow:hidden;transform:translate(-50%);display:flex;flex-direction:column;border:var(--vgai-stroke-resting) solid var(--vgai-boundary-default);border-radius:var(--vgai-radius-lg);box-shadow:var(--vgai-shadow-lg)}.vgai-workspace-task-overlay-header{min-height:var(--vgai-panel-header-height);box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;gap:var(--vgai-space-3);padding:var(--vgai-space-1) var(--vgai-space-3);color:var(--vgai-content-primary);font-size:var(--vgai-font-md);font-weight:650}.vgai-workspace-task-overlay-body,.vgai-workspace-task-overlay-body>.vgai-dock-document{min-height:0;flex:1}@media(max-width:720px){.vgai-workspace-task-overlay{top:56px;bottom:52px;width:calc(100% - 32px)}}.vgai-dock-panel,.vgai-dock-document,.vgai-dock-document-content{min-width:0;min-height:0;width:100%;height:100%}.vgai-dock-panel,.vgai-dock-document,.vgai-dock-document-content{display:flex;flex-direction:column;overflow:hidden;pointer-events:auto}.vgai-dock-document-content{position:relative}.vgai-dock-document-toolbar{flex:0 0 auto;display:flex;align-items:center;gap:var(--vgai-space-2);min-height:var(--vgai-local-toolbar-height);background:var(--vgai-surface-header);border-bottom:var(--vgai-stroke-resting) solid var(--vgai-structural-divider);pointer-events:auto}.vgai-dock-document-shelf{position:absolute;left:var(--vgai-space-4);top:var(--vgai-viewport-overlay-top, var(--vgai-space-4));z-index:calc(var(--vgai-z-dropdown, 1000) - 1);isolation:isolate;display:flex;flex-direction:column;align-items:flex-start;gap:var(--vgai-space-2);pointer-events:auto}.vgai-dock-document-shelf .vgai-floating-toolbar,.vgai-dock-document-shelf .vgai-floating-toolbar>*{display:flex;flex-direction:column;align-items:stretch}.vgai-dock-document-shelf:not(:empty){--vgai-control-compact-height: var(--vgai-tool-size, 36px);--vgai-control-default-height: var(--vgai-tool-size, 36px);--vgai-control-comfortable-height: var(--vgai-tool-size, 36px);--vgai-tool-glyph-size: var(--vgai-icon-2xl);--vgai-icon-sm: var(--vgai-tool-glyph-size);--vgai-icon-md: var(--vgai-tool-glyph-size);width:var(--vgai-tool-width, 40px);align-items:stretch}.vgai-dock-document-shelf .vgai-btn[data-icon=true][data-size],.vgai-dock-document-shelf .vgai-floating-toolbar .vgai-btn[data-icon=true][data-shape]{width:var(--vgai-tool-width, 40px);height:var(--vgai-tool-size, 36px)}.vgai-dock-document-shelf .vgai-toolbar.vgai-floating-toolbar{padding-inline:0}.vgai-dock-document-shelf .vgai-split-button{width:var(--vgai-tool-width, 40px)}.vgai-dock-document-shelf .vgai-split-button>*{min-width:0;flex:1 1 auto}.vgai-dock-document-shelf .vgai-split-button>*+*{flex:0 0 13px}.vgai-dock-document-shelf .vgai-split-button .vgai-btn[data-icon=true][data-size]{width:auto;min-width:0}.vgai-dock-document-shelf .vgai-btn[data-variant=ghost]:not([aria-pressed=true]):not(:disabled){background:var(--vgai-widget-menu);border-color:var(--vgai-boundary-default);color:var(--vgai-content-primary)}.vgai-dock-document-shelf .vgai-btn[data-variant=ghost]:not([aria-pressed=true]):not(:disabled):hover{background:var(--vgai-widget-menu-hover)}.vgai-dock-document-shelf .vgai-floating-toolbar{gap:0}.vgai-dock-document-shelf :is(.vgai-floating-toolbar,.vgai-document-shelf-tools)>*+*{margin-block-start:calc(-1 * var(--vgai-stroke-resting))}.vgai-dock-document-shelf .vgai-toolbar-divider{width:100%;height:var(--vgai-tool-gap, var(--vgai-space-1));background:none;border:0;margin-block-start:0}.vgai-dock-document-shelf{gap:var(--vgai-tool-gap, var(--vgai-space-2))}.vgai-dock-document-shelf .vgai-floating-toolbar{padding:0;border:0;border-radius:0;background:none;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}.vgai-dock-document-shelf[role=toolbar]>*{box-shadow:var(--vgai-widget-emboss-shadow)}.vgai-dock-document-shelf .vgai-viewport-toolbar{position:static}.vgai-dock-document-toolbar-own{flex:1 1 auto;min-width:0}.vgai-toolbar.vgai-transform-header-controls{flex:0 0 auto;gap:var(--vgai-space-3);border:0}.vgai-toolbar.vgai-transform-header-controls>*{flex:0 0 auto}.vgai-transform-orientation-trigger{display:inline-flex;align-items:center;gap:var(--vgai-space-1);white-space:nowrap}[data-vgai-chrome=islands] .vgai-regular-panel-portal{color:var(--vgai-content-primary);text-shadow:var(--vgai-content-text-shadow, none);background:var( --vgai-glass-regular-panel-adaptive-bg, var(--vgai-glass-regular-panel-bg, var(--vgai-surface-panel)) );backdrop-filter:var(--vgai-glass-regular-panel-backdrop-filter, none);-webkit-backdrop-filter:var(--vgai-glass-regular-panel-backdrop-filter, none);border-color:color-mix(in srgb,var(--vgai-content-primary) 22%,transparent)}[data-vgai-chrome=islands] .vgai-regular-panel-portal .vgai-content-frost{background:var( --vgai-glass-regular-content-adaptive-bg, var(--vgai-content-frost-bg, transparent) );backdrop-filter:none;-webkit-backdrop-filter:none}.vgai-regular-panel-portal>.vgai-surface{background:transparent}.vgai-dock-document,.vgai-dock-document-content,.vgai-dock-document-toolbar{background:transparent}@keyframes vgai-play-dissolve{0%{opacity:1;transform:none;filter:blur(0) brightness(1)}42%{opacity:1;transform:translate(var(--vgai-play-dx, 0px),var(--vgai-play-dy, 0px)) scale(.985);filter:blur(2px) brightness(1.06)}to{opacity:0;transform:translate(var(--vgai-play-dx, 0px),var(--vgai-play-dy, 0px)) scale(.985);filter:blur(8px) brightness(1)}}@keyframes vgai-play-materialize{0%{opacity:0;transform:translate(var(--vgai-play-dx, 0px),var(--vgai-play-dy, 0px)) scale(.985);filter:blur(6px) brightness(1.02)}to{opacity:1;transform:none;filter:blur(0) brightness(1)}}.vgai-play-chrome-exit,.vgai-play-chrome-enter{--vgai-play-dx: 0px;--vgai-play-dy: 0px;--vgai-play-stagger: 0ms}.vgai-play-chrome-exit{animation:vgai-play-dissolve var(--vgai-play-dissolve-duration) var(--vgai-ease-standard) both;animation-delay:var(--vgai-play-stagger, 0ms);pointer-events:none}.vgai-play-chrome-enter{animation:vgai-play-materialize var(--vgai-play-materialize-duration) var(--vgai-ease-standard) both}.vgai-dock-document-toolbar,.vgai-editor-bottom-bar{transition:transform var(--vgai-duration-slow) var(--vgai-ease-standard),opacity var(--vgai-duration-slow) var(--vgai-ease-standard)}[data-vgai-play-chrome=hidden] .vgai-dock-document-toolbar:not([data-runtime-toolbar]){opacity:0;visibility:hidden;transform:translateY(-10px);pointer-events:none;transition:transform var(--vgai-duration-base) var(--vgai-ease-standard),opacity var(--vgai-duration-base) var(--vgai-ease-standard) .1s,visibility 0s linear .28s}[data-vgai-play-chrome=hidden] .vgai-editor-bottom-bar{opacity:0;visibility:hidden;transform:translateY(calc(100% + 8px));pointer-events:none;transition:transform var(--vgai-duration-base) var(--vgai-ease-standard),opacity var(--vgai-duration-base) var(--vgai-ease-standard) .1s,visibility 0s linear .28s}[data-vgai-play-chrome=hidden][data-vgai-play-revealed] .vgai-dock-document-toolbar,[data-vgai-play-chrome=hidden][data-vgai-play-revealed] .vgai-editor-bottom-bar{opacity:1;visibility:visible;transform:none;pointer-events:auto;transition:transform var(--vgai-duration-base) var(--vgai-ease-standard),opacity var(--vgai-duration-fast) var(--vgai-ease-standard),visibility 0s}.vgai-glass-island.vgai-play-restart-pill{position:fixed;top:14px;left:50%;z-index:40;display:none;align-items:center;gap:var(--vgai-space-2);padding:6px 14px;border-radius:var(--vgai-radius-full);font:inherit;font-size:var(--vgai-font-md);line-height:var(--vgai-leading-tight);color:var(--vgai-content-muted);cursor:pointer}.vgai-editor-theme[data-vgai-play-chrome=hidden]:not([data-vgai-play-revealed]) .vgai-glass-island.vgai-play-restart-pill{display:flex;animation:vgai-restart-pill-in var(--vgai-duration-slow) var(--vgai-ease-standard) both}.vgai-glass-island.vgai-play-restart-pill:hover{color:var(--vgai-content-primary)}@keyframes vgai-restart-pill-in{0%{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%)}}@media(prefers-reduced-motion:reduce){.vgai-play-chrome-exit,.vgai-play-chrome-enter,.vgai-editor-theme[data-vgai-play-chrome=hidden]:not([data-vgai-play-revealed]) .vgai-glass-island.vgai-play-restart-pill{animation:none}.vgai-play-chrome-exit{opacity:0}.vgai-dock-document-toolbar,.vgai-editor-bottom-bar,[data-vgai-play-chrome=hidden] .vgai-dock-document-toolbar,[data-vgai-play-chrome=hidden] .vgai-editor-bottom-bar{transition:none}}.vgai-editor-theme{--vgai-bg-0: var(--vgai-surface-shell);--vgai-bg-1: var(--vgai-surface-panel);--vgai-bg-2: var(--vgai-surface-chrome);--vgai-bg-3: var(--vgai-surface-raised);--vgai-bg-inset: var(--vgai-surface-inset);--vgai-border-1: var(--vgai-boundary-default);--vgai-border-2: var(--vgai-boundary-strong);--vgai-text-1: var(--vgai-content-primary);--vgai-text-2: var(--vgai-content-muted);--vgai-text-3: var(--vgai-content-dim);--vgai-asset-icon-folder: #e8a740;--vgai-asset-icon-model: #6bc5f7;--vgai-asset-icon-prefab: #3b82f6;--vgai-asset-icon-component: #9ca3af;--vgai-asset-icon-audio: #34d399;--vgai-asset-icon-image: #f472b6;--vgai-asset-icon-video: #c084fc;--vgai-asset-icon-json: #fbbf24;--vgai-asset-icon-unknown: #6b7280;--vgai-asset-icon-source: #fb923c;text-shadow:var(--vgai-content-text-shadow, none);font-family:var(--vgai-font-sans);font-size:var(--vgai-font-base);line-height:var(--vgai-leading-normal);color:var(--vgai-content-primary)}.vgai-content-frost{background:var(--vgai-content-frost-bg, transparent);backdrop-filter:var(--vgai-content-frost-filter, none);-webkit-backdrop-filter:var(--vgai-content-frost-filter, none);border-radius:var(--vgai-radius-md)}.vgai-editor-theme [data-vgai-adaptive-ink=bright]{--vgai-backdrop-dim: none;--vgai-content-primary: var(--vgai-content-primary-on-bright);--vgai-content-muted: var(--vgai-content-muted-on-bright);--vgai-content-dim: var(--vgai-content-dim-on-bright);--vgai-content-text-shadow: var(--vgai-content-text-shadow-on-bright);--vgai-content-frost-bg: var(--vgai-content-frost-bg-on-bright);--vgai-island-border-color: color-mix( in srgb, var(--vgai-content-primary-on-bright) 30%, transparent );--vgai-text-1: var(--vgai-content-primary);--vgai-text-2: var(--vgai-content-muted);--vgai-text-3: var(--vgai-content-dim);--dv-activegroup-visiblepanel-tab-color: var(--vgai-content-primary);--dv-activegroup-hiddenpanel-tab-color: var(--vgai-content-muted);--dv-inactivegroup-visiblepanel-tab-color: var(--vgai-content-muted);--dv-inactivegroup-hiddenpanel-tab-color: var(--vgai-content-dim);text-shadow:var(--vgai-content-text-shadow, none)}.vgai-editor-theme [data-vgai-panel-backdrop-policy=dark-frost]{--vgai-content-primary: #f4f8ff;--vgai-content-muted: #c3cedd;--vgai-content-dim: #94a2b5;--vgai-content-text-shadow: 0 1px 3px rgb(0 0 0 / 72%);--vgai-text-1: var(--vgai-content-primary);--vgai-text-2: var(--vgai-content-muted);--vgai-text-3: var(--vgai-content-dim);--dv-activegroup-visiblepanel-tab-color: var(--vgai-content-primary);--dv-activegroup-hiddenpanel-tab-color: var(--vgai-content-muted);--dv-inactivegroup-visiblepanel-tab-color: var(--vgai-content-muted);--dv-inactivegroup-hiddenpanel-tab-color: var(--vgai-content-dim)}.vgai-editor-shell button,.vgai-editor-shell input,.vgai-editor-shell select,.vgai-editor-shell textarea{font-family:inherit}.vgai-editor-shell button{font-size:inherit}.vgai-sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.vgai-tooltip-anchor{position:relative;display:inline-flex}.vgai-tooltip{position:fixed;z-index:var(--vgai-z-dropdown);display:flex;align-items:center;gap:var(--vgai-space-4);padding:var(--vgai-space-2) var(--vgai-space-4);color:var(--vgai-content-primary);background:var(--vgai-surface-inset);border:var(--vgai-stroke-resting) solid var(--vgai-boundary-default);border-radius:var(--vgai-radius-md);box-shadow:var(--vgai-shadow-sm);font-size:var(--vgai-font-base);white-space:nowrap;pointer-events:none}.vgai-tooltip kbd{padding:1px var(--vgai-space-3);color:var(--vgai-content-primary);background:var(--vgai-surface-raised);border:var(--vgai-stroke-resting) solid var(--vgai-boundary-default);border-radius:var(--vgai-radius-sm);font-family:var(--vgai-font-mono);font-size:var(--vgai-font-sm)}[data-vgai-chrome=islands] .vgai-tooltip{--vgai-content-primary: var(--vgai-content-primary-on-bright);--vgai-content-muted: var(--vgai-content-muted-on-bright);--vgai-content-dim: var(--vgai-content-dim-on-bright);--vgai-content-text-shadow: var(--vgai-content-text-shadow-on-bright);--vgai-text-1: var(--vgai-content-primary);--vgai-text-2: var(--vgai-content-muted);--vgai-text-3: var(--vgai-content-dim);text-shadow:var(--vgai-content-text-shadow, none);background:var(--vgai-glass-regular-bg, var(--vgai-surface-chrome));border-color:var(--vgai-border-1);backdrop-filter:var(--vgai-glass-regular-backdrop-filter, none);-webkit-backdrop-filter:var(--vgai-glass-regular-backdrop-filter, none)}[data-vgai-chrome=islands] .vgai-tooltip kbd{color:inherit;background:color-mix(in srgb,currentColor 10%,transparent);border-color:color-mix(in srgb,currentColor 28%,transparent)}.vgai-btn{display:inline-flex;width:max-content;max-width:100%;align-items:center;justify-content:center;gap:var(--vgai-space-2);font-family:var(--vgai-font-sans);font-size:var(--vgai-font-md);line-height:var(--vgai-leading-tight);border-radius:var(--vgai-radius-sm);cursor:pointer;border:1px solid transparent;box-sizing:border-box;transition:background-color .12s var(--vgai-ease-standard),border-color .12s var(--vgai-ease-standard),color .12s var(--vgai-ease-standard),filter .12s var(--vgai-ease-standard)}.vgai-btn[data-size=compact]{height:var(--vgai-control-compact-height);padding-top:0;padding-bottom:0;font-size:var(--vgai-font-base)}.vgai-btn:not([data-size]),.vgai-btn[data-size=default]{height:var(--vgai-control-default-height);padding-top:0;padding-bottom:0;font-size:var(--vgai-font-base)}.vgai-btn[data-size=comfortable]{height:var(--vgai-control-comfortable-height);padding-top:0;padding-bottom:0;font-size:var(--vgai-font-md)}.vgai-btn[data-variant=primary]{background:var(--vgai-accent);color:var(--vgai-content-on-accent);border-color:var(--vgai-accent);padding:var(--vgai-space-3) var(--vgai-space-6);font-weight:600}.vgai-btn[data-variant=primary]:hover:not(:disabled){filter:brightness(1.08)}.vgai-btn[data-variant=primary]:active:not(:disabled){filter:brightness(.92)}.vgai-btn:not([data-variant]),.vgai-btn[data-variant=secondary]{background:var(--vgai-widget-regular);color:var(--vgai-content-primary);border-color:var(--vgai-boundary-default);padding-inline:var(--vgai-space-4);box-shadow:var(--vgai-widget-emboss-shadow)}.vgai-btn:not([data-variant]):hover:not(:disabled),.vgai-btn[data-variant=secondary]:hover:not(:disabled){background:var(--vgai-widget-regular-hover);border-color:var(--vgai-boundary-strong)}.vgai-btn:is(:not([data-variant]),[data-variant=secondary]):is([aria-haspopup=menu],[aria-haspopup=listbox],[aria-haspopup=dialog]){background:var(--vgai-widget-menu)}.vgai-btn:is(:not([data-variant]),[data-variant=secondary]):is([aria-haspopup=menu],[aria-haspopup=listbox],[aria-haspopup=dialog]):hover:not(:disabled){background:var(--vgai-widget-menu-hover)}.vgai-btn:not([data-variant]):active:not(:disabled),.vgai-btn[data-variant=secondary]:active:not(:disabled){background:var(--vgai-surface-inset)}.vgai-btn[data-variant=outline]{background:transparent;color:var(--vgai-content-primary);border-color:var(--vgai-boundary-default);padding-inline:var(--vgai-space-4)}.vgai-btn[data-variant=outline]:hover:not(:disabled){background:var(--vgai-neutral-hover);border-color:var(--vgai-boundary-strong)}.vgai-btn[data-variant=outline]:active:not(:disabled){background:var(--vgai-neutral-active)}.vgai-btn[data-variant=ghost]{background:transparent;color:var(--vgai-content-muted);border-color:transparent;padding-inline:var(--vgai-space-3)}.vgai-btn[data-variant=ghost]:hover:not(:disabled){color:var(--vgai-content-primary);background:var(--vgai-neutral-hover)}.vgai-btn[data-variant=ghost]:active:not(:disabled){background:var(--vgai-neutral-active)}.vgai-btn[data-variant=danger]{color:var(--vgai-content-primary);background:var(--vgai-danger-muted);border-color:var(--vgai-danger);padding-inline:var(--vgai-space-4);font-weight:600}.vgai-btn[data-variant=danger]:hover:not(:disabled){filter:brightness(1.12)}.vgai-btn[data-variant=danger]:active:not(:disabled){filter:brightness(.9)}.vgai-btn[data-variant=success]{color:var(--vgai-content-on-accent);background:var(--vgai-success);border-color:var(--vgai-success);padding-inline:var(--vgai-space-4);font-weight:600}.vgai-btn[data-variant=success]:hover:not(:disabled){filter:brightness(1.1)}.vgai-btn[data-variant=success]:active:not(:disabled){filter:brightness(.92)}.vgai-btn[aria-pressed=true]{color:var(--vgai-content-on-selection, var(--vgai-content-primary));background:var(--vgai-selection-bg);border-color:var(--vgai-selection-border)}.vgai-btn[aria-busy=true]{cursor:progress}.vgai-btn.vgai-sprite-frame-option{width:100%;min-width:0;height:72px;flex-direction:column;gap:var(--vgai-space-1);padding:var(--vgai-space-1);background:var(--vgai-surface-inset);border-color:var(--vgai-boundary-default)}.vgai-btn.vgai-sprite-frame-option[aria-pressed=true]{background:var(--vgai-selection-bg);border-color:var(--vgai-selection-border)}.vgai-btn[data-icon=true]{width:var(--vgai-control-default-height);padding:0}.vgai-btn[data-icon=true][data-size=compact]{width:var(--vgai-control-compact-height)}.vgai-btn[data-icon=true][data-size=comfortable]{width:var(--vgai-control-comfortable-height)}.vgai-btn[data-icon=true][data-label-placement=below]{width:68px;min-width:68px;height:42px;flex-direction:column;gap:3px;padding:4px 8px 3px}.vgai-icon-button-label{max-width:100%;min-width:0;overflow:hidden;font-size:var(--vgai-font-xs);line-height:var(--vgai-leading-tight);text-overflow:ellipsis;white-space:nowrap}.vgai-btn:disabled,.vgai-btn[aria-disabled=true]{opacity:.4;cursor:not-allowed;filter:none}.vgai-btn:focus-visible{outline:var(--vgai-focus-ring);outline-offset:1px}.vgai-machine-list-entry{display:block;width:100%;height:auto;justify-content:flex-start;border-left:var(--vgai-stroke-active) solid transparent;padding:var(--vgai-space-3) var(--vgai-space-4);text-align:left}.vgai-machine-list-entry[data-selected=true]{border-left-color:var(--vgai-selection-indicator);background:var(--vgai-selection-bg)}.vgai-performance-overlay{pointer-events:auto;display:grid;grid-template-columns:repeat(5,auto);width:auto;height:auto;gap:var(--vgai-space-5);border-color:var(--vgai-boundary-default);background:var(--vgai-surface-overlay);color:var(--vgai-content-primary);padding:var(--vgai-space-3) var(--vgai-space-4);font-family:var(--vgai-font-mono);font-size:var(--vgai-font-sm)}.vgai-performance-overlay[data-enabled=true]{border-color:var(--vgai-accent)}.vgai-hud-overlay{background:var(--vgai-surface-overlay);border-radius:var(--vgai-radius-md)}.vgai-hud-overlay[data-hud-border=strong]{border:var(--vgai-stroke-resting) solid var(--vgai-boundary-strong)}.vgai-hud-overlay[data-hud-border=default]{border:var(--vgai-stroke-resting) solid var(--vgai-boundary-default)}.vgai-hud-overlay[data-hud-shadow=true]{box-shadow:var(--vgai-shadow-sm)}.vgai-field-trigger{width:100%;justify-content:space-between;overflow:hidden;font-family:var(--vgai-font-mono);text-align:left}.vgai-inspector-group-trigger{width:100%;height:auto;justify-content:flex-start;padding:var(--vgai-space-4);font-weight:600;text-align:left;text-transform:uppercase;letter-spacing:.4px}.vgai-hierarchy-more{width:100%;height:var(--vgai-tree-row-height);justify-content:flex-start;font-style:italic;text-align:left}.vgai-btn.vgai-tree-caret{width:var(--vgai-tree-indent);height:18px;flex:0 0 var(--vgai-tree-indent);padding-inline:0;font-size:var(--vgai-icon-xs)}.vgai-chat-icon{width:var(--vgai-control-default-height);padding-inline:0}.vgai-chat-session-row{width:100%;height:auto;justify-content:flex-start;padding:var(--vgai-space-4);text-align:left}.vgai-chat-session-row[data-selected=true]{background:var(--vgai-surface-raised)}.vgai-chat-harness-trigger{max-width:190px;overflow:hidden;white-space:nowrap}.vgai-chat-header-trigger{min-width:0;flex:1;justify-content:flex-start;overflow:hidden;text-align:left}.vgai-input{background:var(--vgai-input-surface, var(--vgai-bg-inset));color:var(--vgai-text-1);border:1px solid var(--vgai-input-border, var(--vgai-border-1));border-radius:var(--vgai-radius-sm);box-shadow:var(--vgai-input-shadow, none);padding:var(--vgai-space-1) var(--vgai-space-3);font-size:var(--vgai-font-base);font-family:var(--vgai-font-sans);outline:none;min-width:0;min-height:var(--vgai-control-default-height);box-sizing:border-box}.vgai-input::placeholder{color:var(--vgai-content-placeholder);opacity:1}input.vgai-input,select.vgai-input{height:var(--vgai-control-default-height);padding-block:0}.vgai-input:hover:not(:disabled){border-color:var(--vgai-border-2)}.vgai-input:focus-visible{border-color:var(--vgai-accent);outline:var(--vgai-focus-ring);outline-offset:-1px}.vgai-input[aria-invalid=true]{border-color:var(--vgai-danger)}.vgai-input[data-tone=danger]{color:var(--vgai-danger)}.vgai-input[data-state=editing]{border-color:var(--vgai-accent)}.vgai-input[data-emphasis=strong]{font-size:var(--vgai-font-md);font-weight:600}.vgai-input[data-emphasis=semibold]{font-weight:600}.vgai-input[data-monospace=true]{font-family:var(--vgai-font-mono)}.vgai-input[data-density=compact],.vgai-select[data-density=compact]{min-height:var(--vgai-control-compact-height);font-size:var(--vgai-font-sm)}.vgai-input[data-density=comfortable],.vgai-select[data-density=comfortable]{min-height:var(--vgai-control-comfortable-height);font-size:var(--vgai-font-md)}.vgai-input[data-density=compact-tall],.vgai-select[data-density=compact-tall]{min-height:var(--vgai-control-comfortable-height);font-size:var(--vgai-font-sm)}.vgai-input[data-leading-icon=true]{padding-left:calc(var(--vgai-space-12) + 1px)}.vgai-input[data-variant=entity-name]{min-height:var(--vgai-control-comfortable-height);padding:var(--vgai-space-2) var(--vgai-space-3);font-size:var(--vgai-font-lg);font-weight:600}.vgai-input[data-variant=tree-edit]{min-height:var(--vgai-control-compact-height);padding:0 var(--vgai-space-2);border-color:var(--vgai-accent);font-size:var(--vgai-font-lg);outline:none}.vgai-input[data-variant=prominent]{min-height:var(--vgai-command-bar-height);padding:var(--vgai-space-5) calc(var(--vgai-space-6) + var(--vgai-space-1));border:0;border-bottom:var(--vgai-stroke-resting) solid var(--vgai-boundary-strong);border-radius:0;font-size:var(--vgai-font-xl)}.vgai-input[data-variant=prominent]:focus-visible{outline-offset:-2px}.vgai-input[data-variant=seamless]{padding:var(--vgai-space-4);color:var(--vgai-content-primary);background:transparent;border:0;border-radius:0}.vgai-input[data-dynamic=true],.vgai-select[data-dynamic=true]{color:var(--vgai-dynamic);background-color:var(--vgai-dynamic-muted);border-color:var(--vgai-dynamic)}.vgai-input[data-mixed=true],.vgai-select[data-mixed=true]{color:var(--vgai-content-dim);font-style:italic}.vgai-input:disabled{opacity:.5;cursor:not-allowed}.vgai-select{appearance:none;-webkit-appearance:none;background-color:var(--vgai-input-surface, var(--vgai-bg-inset));background-image:var(--vgai-select-chevron);background-repeat:no-repeat;background-position:right 6px center;background-size:8px 5px;color:var(--vgai-text-1);border:1px solid var(--vgai-input-border, var(--vgai-border-1));border-radius:var(--vgai-radius-sm);box-shadow:var(--vgai-input-shadow, none);padding:var(--vgai-space-1) var(--vgai-space-6) var(--vgai-space-1) var(--vgai-space-3);font-size:var(--vgai-font-base);font-family:var(--vgai-font-sans);outline:none;min-height:var(--vgai-control-default-height);box-sizing:border-box;cursor:pointer}.vgai-select:hover:not(:disabled){border-color:var(--vgai-border-2)}.vgai-select:focus-visible{border-color:var(--vgai-accent);outline:var(--vgai-focus-ring);outline-offset:-1px}.vgai-select:disabled{opacity:.5;cursor:not-allowed}.vgai-select option{background:var(--vgai-bg-2);color:var(--vgai-text-1)}.vgai-textarea{display:block;width:100%;min-height:calc(var(--vgai-control-default-height) * 2);resize:vertical;line-height:var(--vgai-leading-normal)}.vgai-textarea[data-variant=code]{padding:var(--vgai-space-5);font-family:var(--vgai-font-mono);font-size:var(--vgai-font-base);line-height:var(--vgai-leading-relaxed)}.vgai-textarea[data-variant=inline-editor]{padding:var(--vgai-space-1);color:var(--vgai-content-primary);background:var(--vgai-input-surface, var(--vgai-surface-inset));border:var(--vgai-stroke-active) solid var(--vgai-accent);font:inherit;font-size:var(--vgai-font-lg);line-height:1.3;outline:none}.vgai-tool-page{width:100%;max-width:960px;min-height:100%;margin:0 auto;padding:var(--vgai-space-6);color:var(--vgai-content-primary);box-sizing:border-box}.vgai-tool-header{max-width:720px;margin-bottom:var(--vgai-space-5)}.vgai-tool-eyebrow{margin-bottom:var(--vgai-space-2);color:var(--vgai-content-dim);font-size:var(--vgai-font-sm);font-weight:600;letter-spacing:.06em;text-transform:uppercase}.vgai-tool-title{margin:0 0 var(--vgai-space-2);font-size:var(--vgai-font-xl)}.vgai-tool-description{margin:0;color:var(--vgai-content-muted);line-height:var(--vgai-leading-relaxed)}.vgai-tool-card{padding:var(--vgai-space-5);border:var(--vgai-stroke-resting) solid var(--vgai-boundary-default);border-radius:var(--vgai-radius-md);background:var(--vgai-surface-panel)}.vgai-tool-form{display:grid;max-width:720px;gap:var(--vgai-space-4)}.vgai-tool-field{display:grid;min-width:0;gap:var(--vgai-space-2)}.vgai-tool-field>.vgai-input,.vgai-tool-field>.vgai-select{width:100%}.vgai-tool-field-label{color:var(--vgai-content-primary);font-weight:500}.vgai-tool-help{color:var(--vgai-content-dim);font-size:var(--vgai-font-sm);line-height:var(--vgai-leading-normal)}.vgai-tool-advanced{padding:var(--vgai-space-3);border:var(--vgai-stroke-resting) solid var(--vgai-boundary-default);border-radius:var(--vgai-radius-sm);background:var(--vgai-surface-inset)}.vgai-tool-advanced>summary{color:var(--vgai-content-muted);cursor:pointer;font-weight:500}.vgai-tool-advanced[open]>summary{margin-bottom:var(--vgai-space-3);color:var(--vgai-content-primary)}.vgai-tool-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--vgai-space-3);padding-top:var(--vgai-space-1)}.vgai-cost-disclosure{display:grid;gap:var(--vgai-space-1);padding:var(--vgai-space-3) var(--vgai-space-4);border:var(--vgai-stroke-resting) solid var(--vgai-boundary-default);border-left:var(--vgai-stroke-active) solid var(--vgai-accent);border-radius:var(--vgai-radius-sm);background:var(--vgai-surface-inset)}.vgai-cost-disclosure[data-route=mock]{border-left-color:var(--vgai-success)}.vgai-cost-disclosure[data-route=managed]{border-left-color:var(--vgai-accent)}.vgai-cost-disclosure[data-route=direct]{border-left-color:var(--vgai-warn)}.vgai-cost-disclosure-title{font-weight:600}.vgai-cost-disclosure-detail{color:var(--vgai-content-muted);font-size:var(--vgai-font-sm)}.vgai-tool-confirmation{display:grid;gap:var(--vgai-space-3);padding:var(--vgai-space-4);border:var(--vgai-stroke-resting) solid var(--vgai-warn);border-radius:var(--vgai-radius-sm);background:var(--vgai-warn-muted)}.vgai-tool-status{max-width:720px;margin-top:var(--vgai-space-4);padding:var(--vgai-space-3) var(--vgai-space-4);border-radius:var(--vgai-radius-sm);color:var(--vgai-content-primary);background:var(--vgai-surface-raised)}.vgai-tool-status[data-tone=error]{color:var(--vgai-danger);background:var(--vgai-danger-faint)}.vgai-tool-status[data-tone=success]{color:var(--vgai-success);background:var(--vgai-success-muted)}.vgai-generation-job-meta{color:var(--vgai-content-muted);font-size:var(--vgai-font-sm)}.vgai-generation-document{display:grid;width:100%;max-width:1120px;min-height:100%;margin:0 auto;padding:var(--vgai-space-6);gap:var(--vgai-space-4);color:var(--vgai-content-primary);box-sizing:border-box}.vgai-generation-document-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--vgai-space-4)}.vgai-generation-result{min-height:280px;padding:var(--vgai-space-4);overflow:auto;border:var(--vgai-stroke-resting) solid var(--vgai-boundary-default);border-radius:var(--vgai-radius-md);background:var(--vgai-surface-inset)}.vgai-generation-document-empty,.vgai-generation-result-empty{padding:var(--vgai-space-5);color:var(--vgai-content-muted)}.vgai-generation-native-result{margin:0;overflow:auto;color:var(--vgai-content-muted);font-size:var(--vgai-font-sm);white-space:pre-wrap;overflow-wrap:anywhere}.vgai-generation-image-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--vgai-space-3)}.vgai-generation-image-grid img,.vgai-generation-panorama,.vgai-generation-world-result img{display:block;width:100%;max-height:620px;border-radius:var(--vgai-radius-sm);object-fit:contain}.vgai-generation-media{display:block;width:min(100%,860px);margin:auto}.vgai-generation-result-links,.vgai-generation-world-result,.vgai-generation-output-paths{display:grid;align-content:start;justify-items:start;gap:var(--vgai-space-3)}.vgai-generation-output-paths code{color:var(--vgai-content-muted);overflow-wrap:anywhere}.vgai-generation-document-footer{display:flex;justify-content:flex-end}.vgai-generation-create-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--vgai-space-2)}.vgai-generation-create-card{display:grid;gap:var(--vgai-space-1);padding:var(--vgai-space-3);border:var(--vgai-stroke-resting) solid var(--vgai-boundary-default);border-radius:var(--vgai-radius-sm);color:var(--vgai-content-primary);text-align:left;background:var(--vgai-surface-raised);cursor:pointer}.vgai-generation-create-card:hover{border-color:var(--vgai-boundary-strong);background:var(--vgai-neutral-hover)}.vgai-generation-create-card:focus-visible{outline:var(--vgai-focus-ring);outline-offset:1px}.vgai-generation-create-card span{color:var(--vgai-content-muted);font-size:var(--vgai-font-sm)}.vgai-provider-connections{display:grid;gap:var(--vgai-space-4)}@media(max-width:720px){.vgai-tool-page,.vgai-generation-document{padding:var(--vgai-space-4)}.vgai-generation-document-header{display:grid}}.vgai-checkbox{accent-color:var(--vgai-accent);width:13px;height:13px;cursor:pointer;margin:0}.vgai-checkbox:focus-visible{outline:var(--vgai-focus-ring);outline-offset:2px}.vgai-checkbox:indeterminate{accent-color:var(--vgai-warn)}.vgai-checkbox:disabled{opacity:.5;cursor:not-allowed}.vgai-color-swatch{width:var(--vgai-control-compact-height);height:var(--vgai-control-compact-height);flex:0 0 auto;padding:0;overflow:hidden;background:transparent;border:var(--vgai-stroke-resting) solid var(--vgai-boundary-default);border-radius:var(--vgai-radius-sm);cursor:pointer}.vgai-color-swatch:hover:not(:disabled){border-color:var(--vgai-boundary-strong)}.vgai-color-swatch:focus-visible,.vgai-file-input:focus-visible,.vgai-range:focus-visible{outline:var(--vgai-focus-ring);outline-offset:2px}.vgai-color-swatch:disabled,.vgai-file-input:disabled,.vgai-range:disabled{opacity:.5;cursor:not-allowed}.vgai-file-input{color:var(--vgai-content-muted);font:inherit}.vgai-range{min-width:0;accent-color:var(--vgai-accent)}.vgai-number-input,.vgai-color-input{display:flex;min-width:0;align-items:center;gap:var(--vgai-space-2)}.vgai-number-input-label{width:12px;flex:0 0 auto;color:var(--vgai-content-muted);font-size:var(--vgai-font-sm);font-weight:600;text-align:center;user-select:none}.vgai-number-input-editor,.vgai-number-input-scrub,.vgai-color-input>.vgai-input{width:100%;min-width:0}.vgai-number-input-scrub{box-sizing:border-box;overflow:hidden;padding:var(--vgai-space-1) var(--vgai-space-3);color:var(--vgai-content-primary);background:var(--vgai-input-surface, var(--vgai-surface-inset));border:var(--vgai-stroke-resting) solid var(--vgai-input-border, var(--vgai-boundary-default));border-radius:var(--vgai-radius-sm);box-shadow:var(--vgai-input-shadow, none);font-size:var(--vgai-font-base);text-overflow:ellipsis;white-space:nowrap;cursor:ew-resize;user-select:none}.vgai-number-input-scrub:hover{border-color:var(--vgai-boundary-strong)}.vgai-scrub-label{transition:color .12s var(--vgai-ease-standard),filter .12s var(--vgai-ease-standard)}.vgai-scrub-label{color:var(--vgai-content-muted)}.vgai-scrub-label:hover:not([data-disabled=true]){color:var(--vgai-content-primary)}.vgai-number-input-scrub[data-disabled]{opacity:.5;cursor:not-allowed}.vgai-number-input-scrub[data-mixed=true],.vgai-color-input>.vgai-input[data-mixed=true]{color:var(--vgai-content-dim);font-style:italic}.vgai-color-input-mixed{width:var(--vgai-control-compact-height);height:var(--vgai-control-compact-height);flex:0 0 auto;border:var(--vgai-stroke-resting) solid var(--vgai-boundary-default);border-radius:var(--vgai-radius-sm);background-color:var(--vgai-surface-inset);background-image:linear-gradient(45deg,var(--vgai-content-dim) 25%,transparent 25%,transparent 75%,var(--vgai-content-dim) 75%),linear-gradient(45deg,var(--vgai-content-dim) 25%,transparent 25%,transparent 75%,var(--vgai-content-dim) 75%);background-position:0 0,4px 4px;background-size:8px 8px}.vgai-section{border-bottom:var(--vgai-stroke-resting) solid var(--vgai-structural-divider)}.vgai-section-header{display:flex;width:100%;min-height:var(--vgai-control-default-height);align-items:center;gap:var(--vgai-space-1);color:var(--vgai-content-primary);background:var(--vgai-surface-section)}.vgai-section-trigger{display:flex;min-width:0;min-height:var(--vgai-control-default-height);flex:1;align-items:center;gap:var(--vgai-space-2);padding:var(--vgai-space-2) var(--vgai-space-4);color:inherit;background:transparent;border:0;font:inherit;font-size:var(--vgai-font-base);font-weight:600;text-align:left;cursor:pointer}.vgai-section-trigger:hover{background:var(--vgai-neutral-hover)}.vgai-section-trigger[data-vgai-static],.vgai-section-trigger[data-vgai-static]:hover{cursor:default;background:transparent}.vgai-section-trigger:focus-visible{outline:var(--vgai-focus-ring);outline-offset:-2px}.vgai-section-title{display:grid;min-width:0;flex:1}.vgai-section-title>span,.vgai-section-title>small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vgai-section-title>small{color:var(--vgai-content-dim);font-size:var(--vgai-font-sm);font-weight:400}.vgai-section-actions{display:flex;flex:0 0 auto;align-items:center;gap:var(--vgai-space-1);padding-right:var(--vgai-space-2)}.vgai-section-body{padding:0 var(--vgai-space-4) var(--vgai-space-4)}.vgai-inspector-tool-section{padding:var(--vgai-space-4);margin-top:var(--vgai-space-2);border-top:var(--vgai-stroke-resting) solid var(--vgai-structural-divider)}.vgai-xstate-node{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:var(--vgai-space-1);padding:var(--vgai-space-3) var(--vgai-space-5);color:var(--vgai-content-primary);background:var(--vgai-surface-panel);border:var(--vgai-stroke-resting) solid var(--vgai-boundary-default);font-size:var(--vgai-font-base);text-align:left;transition:background .1s var(--vgai-ease-standard),border-color .1s var(--vgai-ease-standard),box-shadow .1s var(--vgai-ease-standard)}.vgai-xstate-node:hover{background:var(--vgai-surface-chrome)}.vgai-xstate-node[data-active=true]{border-color:var(--vgai-success)}.vgai-xstate-node[data-selected=true]{border-color:var(--vgai-selection-border);box-shadow:0 0 0 var(--vgai-stroke-resting) var(--vgai-selection-border)}.vgai-xstate-node-type{color:var(--vgai-content-dim);transition:color .1s var(--vgai-ease-standard)}.vgai-xstate-node:hover .vgai-xstate-node-type,.vgai-xstate-node[data-selected=true] .vgai-xstate-node-type{color:var(--vgai-content-primary)}.vgai-stack{display:flex;min-width:0;flex-direction:column}.vgai-inline{display:flex;min-width:0}.vgai-spacer{min-width:0;flex:1 1 auto}.vgai-actions{flex:0 0 auto}.vgai-divider{flex:0 0 auto;background:var(--vgai-boundary-default)}.vgai-divider[data-orientation=horizontal]{width:100%;height:var(--vgai-stroke-resting)}.vgai-divider[data-orientation=vertical]{width:var(--vgai-stroke-resting);height:var(--vgai-control-compact-height)}.vgai-text{min-width:0;margin:0;color:var(--vgai-content-primary);font-size:var(--vgai-font-base);font-weight:400;line-height:1.35}.vgai-text[data-variant=caption]{font-size:var(--vgai-font-sm)}.vgai-text[data-variant=body]{font-size:var(--vgai-font-base)}.vgai-text[data-variant=label]{font-size:var(--vgai-font-base);font-weight:600}.vgai-text[data-variant=title]{font-size:var(--vgai-font-md);font-weight:600}.vgai-text[data-variant=heading]{font-size:var(--vgai-font-xl);font-weight:600}.vgai-text[data-variant=display]{font-size:var(--vgai-font-heading);font-weight:600}.vgai-text[data-variant=code]{font-family:var(--vgai-font-mono);font-size:var(--vgai-font-base)}.vgai-text[data-tone=muted]{color:var(--vgai-content-muted)}.vgai-text[data-tone=dim]{color:var(--vgai-content-dim)}.vgai-text[data-tone=accent]{color:var(--vgai-accent)}.vgai-text[data-tone=danger]{color:var(--vgai-danger)}.vgai-text[data-tone=warning]{color:var(--vgai-warn)}.vgai-text[data-tone=success]{color:var(--vgai-success)}.vgai-text[data-truncate=true]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vgai-text[data-selectable=true]{user-select:text}.vgai-surface{min-width:0;color:var(--vgai-content-primary);background:var(--vgai-surface-panel);box-sizing:border-box}.vgai-surface[data-variant=shell]{background:var(--vgai-surface-shell)}.vgai-surface[data-variant=panel]{background:var(--vgai-surface-panel)}.vgai-surface[data-variant=chrome]{background:var(--vgai-surface-chrome)}.vgai-surface[data-variant=raised]{background:var(--vgai-surface-raised)}.vgai-surface[data-variant=inset]{background:var(--vgai-surface-inset)}.vgai-surface[data-variant=overlay]{background:var(--vgai-surface-overlay)}.vgai-surface[data-border=true]{border:var(--vgai-stroke-resting) solid var(--vgai-boundary-default)}.vgai-surface[data-scroll=true]{min-height:0;overflow:auto}.vgai-dialog-scrim{position:fixed;inset:0;z-index:var(--vgai-z-modal);display:flex;align-items:center;justify-content:center;padding:var(--vgai-space-10);background:var(--vgai-scrim);backdrop-filter:var(--vgai-scrim-backdrop-filter, none);-webkit-backdrop-filter:var(--vgai-scrim-backdrop-filter, none);pointer-events:auto;box-sizing:border-box}.vgai-dialog-scrim[data-variant=command]{align-items:flex-start;padding-top:calc(var(--vgai-space-12) + var(--vgai-space-10) + var(--vgai-space-8))}.vgai-dialog{display:flex;width:min(520px,calc(100vw - 48px));max-height:calc(100vh - 48px);min-width:360px;flex-direction:column;overflow:hidden;color:var(--vgai-content-primary);background:var(--vgai-glass-regular-bg, var(--vgai-surface-chrome));border:var(--vgai-stroke-resting) solid var(--vgai-boundary-default);border-radius:var(--vgai-radius-lg);box-shadow:var(--vgai-shadow-lg);box-sizing:border-box}.vgai-dialog[data-size=compact]{width:min(420px,calc(100vw - 48px))}.vgai-dialog[data-size=wide]{width:min(920px,calc(100vw - 48px));height:min(720px,calc(100vh - 48px))}.vgai-dialog[data-variant=command]{width:min(500px,calc(100vw - 48px));max-height:min(480px,calc(100vh - 48px))}.vgai-command-results{min-height:0;max-height:400px;flex:1;overflow-y:auto}.vgai-command-category{padding:var(--vgai-space-3) calc(var(--vgai-space-6) + var(--vgai-space-1)) var(--vgai-space-1);color:var(--vgai-content-muted);font-size:var(--vgai-font-base);font-weight:600;letter-spacing:.5px;text-transform:uppercase}.vgai-command-row{display:flex;align-items:center;gap:var(--vgai-space-4);padding:5px calc(var(--vgai-space-6) + var(--vgai-space-1));cursor:pointer}.vgai-command-row[data-highlighted=true]{background:var(--vgai-selection-bg)}.vgai-command-icon{width:14px;flex-shrink:0;color:var(--vgai-content-dim);font-size:var(--vgai-font-sm);text-align:center}.vgai-command-label{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vgai-command-shortcut{flex-shrink:0;color:var(--vgai-content-dim);font-size:var(--vgai-font-base)}.vgai-command-empty{padding:var(--vgai-space-8) calc(var(--vgai-space-6) + var(--vgai-space-1));color:var(--vgai-content-dim);text-align:center}.vgai-dialog-header{padding:var(--vgai-space-8) var(--vgai-space-10);border-bottom:var(--vgai-stroke-resting) solid var(--vgai-structural-divider)}.vgai-dialog-body{min-height:0;padding:var(--vgai-space-8) var(--vgai-space-10);overflow:auto}.vgai-dialog-footer{justify-content:flex-end;padding:var(--vgai-space-6) var(--vgai-space-10);border-top:var(--vgai-stroke-resting) solid var(--vgai-boundary-default)}.vgai-dialog-field{display:grid;min-width:0;gap:var(--vgai-space-2)}.vgai-dialog-field>.vgai-input{width:100%}.vgai-joined-field{align-items:stretch;gap:0}.vgai-joined-field>.vgai-input{width:100%;border-top-right-radius:0;border-bottom-right-radius:0}.vgai-joined-field-suffix{display:inline-flex;flex:0 0 auto;align-items:center;padding:0 var(--vgai-space-4);color:var(--vgai-content-dim);background:var(--vgai-surface-raised);border:var(--vgai-stroke-resting) solid var(--vgai-boundary-default);border-left:0;border-radius:0 var(--vgai-radius-sm) var(--vgai-radius-sm) 0;white-space:nowrap}.vgai-menu,.vgai-popover,.vgai-dialog{--vgai-content-primary: var(--vgai-content-primary-on-bright);--vgai-content-muted: var(--vgai-content-muted-on-bright);--vgai-content-dim: var(--vgai-content-dim-on-bright);--vgai-content-text-shadow: var(--vgai-content-text-shadow-on-bright);--vgai-content-frost-bg: var(--vgai-content-frost-bg-on-bright);--vgai-text-1: var(--vgai-content-primary);--vgai-text-2: var(--vgai-content-muted);--vgai-text-3: var(--vgai-content-dim);text-shadow:var(--vgai-content-text-shadow, none);backdrop-filter:var(--vgai-glass-regular-backdrop-filter, none);-webkit-backdrop-filter:var(--vgai-glass-regular-backdrop-filter, none)}.vgai-menu{background:var(--vgai-glass-regular-bg, var(--vgai-surface-shell));border:1px solid var(--vgai-border-1);border-radius:var(--vgai-radius-md);box-shadow:var(--vgai-shadow-md);padding:var(--vgai-space-2);z-index:var(--vgai-z-dropdown)}.vgai-menu-item{display:flex;align-items:center;width:100%;min-height:var(--vgai-control-default-height);box-sizing:border-box;border:0;background:transparent;padding:var(--vgai-space-2) var(--vgai-space-4);border-radius:var(--vgai-radius-sm);font-size:var(--vgai-font-base);color:var(--vgai-text-1);cursor:pointer;user-select:none;font-family:inherit;text-align:left;white-space:nowrap}.vgai-menu-item:hover{background:var(--vgai-selection-bg)}.vgai-menu-item:focus-visible{outline:var(--vgai-focus-ring);outline-offset:-1px}.vgai-menu-item:disabled{color:var(--vgai-text-3);cursor:default}.vgai-menu-item:disabled:hover{background:transparent}.vgai-menu-separator{height:var(--vgai-stroke-resting);margin:var(--vgai-space-1) var(--vgai-space-2);border:0;background:var(--vgai-boundary-default)}.vgai-menu-trigger{height:100%;min-height:var(--vgai-control-compact-height);border:0;border-radius:var(--vgai-radius-sm);background:transparent;color:var(--vgai-content-menu);padding:0 var(--vgai-space-4);cursor:pointer;font:inherit}.vgai-menu-trigger:hover,.vgai-menu-trigger[aria-expanded=true]{color:var(--vgai-text-1);background:var(--vgai-bg-3)}.vgai-menu-trigger:focus-visible{outline:var(--vgai-focus-ring);outline-offset:-1px}[data-vgai-chrome=islands] .vgai-glass-regular-panel{color:var(--vgai-content-primary);text-shadow:var(--vgai-content-text-shadow, none);background:var( --vgai-glass-regular-panel-adaptive-bg, var(--vgai-glass-regular-panel-bg, var(--vgai-surface-panel)) );backdrop-filter:var(--vgai-glass-regular-panel-backdrop-filter, none);-webkit-backdrop-filter:var(--vgai-glass-regular-panel-backdrop-filter, none);border:var(--vgai-stroke-resting) solid color-mix(in srgb,var(--vgai-content-primary) 22%,transparent);border-radius:var(--vgai-radius-lg);box-shadow:var(--vgai-card-specular-shadow, var(--vgai-shadow-lg))}[data-vgai-chrome=islands] .vgai-glass-regular-panel .vgai-content-frost{background:var( --vgai-glass-regular-content-adaptive-bg, var(--vgai-content-frost-bg, transparent) );backdrop-filter:none;-webkit-backdrop-filter:none}.vgai-toolbar{display:flex;min-width:0;min-height:var(--vgai-local-toolbar-height);align-items:center;gap:var(--vgai-space-2);padding:0 var(--vgai-space-3);color:var(--vgai-content-primary);background:transparent;border-bottom:var(--vgai-stroke-resting) solid var(--vgai-structural-divider);box-sizing:border-box}.vgai-toolbar[data-compact=true]{min-height:var(--vgai-control-default-height);padding-inline:var(--vgai-space-2)}.vgai-toolbar-group{display:inline-flex;min-width:0;align-items:center;gap:var(--vgai-space-2)}.vgai-toolbar-divider{width:1px;height:16px;flex:0 0 auto;margin:0 var(--vgai-space-1);background:var(--vgai-boundary-default)}.vgai-floating-toolbar{position:relative;min-height:auto;padding:var(--vgai-space-2) var(--vgai-space-3);border:var(--vgai-stroke-resting) solid var(--vgai-island-border-color, var(--vgai-boundary-default));border-radius:var(--vgai-island-radius, var(--vgai-radius-md));background:var(--vgai-ambient-lift, none),var(--vgai-backdrop-dim, none),var(--vgai-island-surface, color-mix(in srgb, var(--vgai-surface-panel) 90%, transparent));box-shadow:var(--vgai-island-shadow, var(--vgai-shadow-sm));backdrop-filter:var(--vgai-island-backdrop-filter, blur(8px));-webkit-backdrop-filter:var(--vgai-island-backdrop-filter, blur(8px));text-shadow:var(--vgai-content-text-shadow, none);pointer-events:auto}.vgai-floating-toolbar .vgai-btn[aria-pressed=true]{color:var(--vgai-content-primary);background:var(--vgai-selection-bg);border-color:transparent}.vgai-floating-toolbar[data-selection-mode=single] .vgai-btn[aria-pressed=true]{color:var(--vgai-accent);background:var(--vgai-neutral-active)}.vgai-floating-toolbar .vgai-btn[data-shape=segment]{width:calc(var(--vgai-control-comfortable-height) + 12px)}.vgai-floating-toolbar:before{content:"";position:absolute;inset:0;z-index:var(--vgai-z-base);padding:1px;border-radius:inherit;background:var(--vgai-island-specular-ring, none);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);pointer-events:none}.vgai-floating-toolbar>*{position:relative;z-index:1}.vgai-viewport-navigation{--vgai-control-compact-height: 28px;--vgai-control-default-height: 28px;--vgai-control-comfortable-height: 28px}.vgai-viewport-navigation .vgai-btn[data-variant=ghost]{color:color-mix(in srgb,var(--vgai-content-primary) 85.56%,transparent)}[data-vgai-chrome=islands] .vgai-chrome-island:not(:empty){position:relative;border:var(--vgai-stroke-resting) solid var(--vgai-island-border-color, var(--vgai-boundary-default));border-radius:var(--vgai-island-radius, var(--vgai-radius-md));background:var(--vgai-ambient-lift, none),var(--vgai-backdrop-dim, none),var(--vgai-island-surface, color-mix(in srgb, var(--vgai-surface-panel) 90%, transparent));box-shadow:var(--vgai-island-shadow, var(--vgai-shadow-sm));backdrop-filter:var(--vgai-island-backdrop-filter, blur(8px));-webkit-backdrop-filter:var(--vgai-island-backdrop-filter, blur(8px));text-shadow:var(--vgai-content-text-shadow, none);box-sizing:border-box;pointer-events:auto}[data-vgai-chrome=islands] .vgai-chrome-island:not(:empty):before{content:"";position:absolute;inset:0;z-index:0;padding:1px;border-radius:inherit;background:var(--vgai-island-specular-ring, none);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);pointer-events:none}[data-vgai-chrome=islands] .vgai-chrome-island:not(:empty)>*{position:relative;z-index:1}[data-vgai-chrome=islands] .vgai-chrome-island[data-island-scale=compact]:not(:empty){border-radius:12px;box-shadow:var(--vgai-shadow-sm)}[data-vgai-chrome=islands] .vgai-chrome-island[data-island-scale=compact]:not(:empty):before{opacity:.55}[data-vgai-chrome=islands] .vgai-camera-info.vgai-chrome-island:not(:empty){pointer-events:none}[data-vgai-chrome=islands] .vgai-performance-overlay.vgai-chrome-island[data-enabled=true]:not(:empty){border-color:var(--vgai-accent)}[data-vgai-chrome=islands] .vgai-chrome-island .vgai-btn,.vgai-floating-toolbar .vgai-btn{border-radius:var(--vgai-island-control-radius, var(--vgai-radius-sm))}[data-vgai-chrome=islands] .vgai-btn.vgai-chrome-island:not(:empty){border-radius:var(--vgai-island-control-radius, var(--vgai-radius-sm))}[data-vgai-chrome=islands] .vgai-btn.vgai-chrome-island[data-variant=primary]:not(:empty){background:var(--vgai-island-primary-bg, var(--vgai-accent))}.vgai-split-button{display:inline-flex;min-width:0;align-items:stretch}.vgai-split-button>.vgai-btn:first-child,.vgai-split-button>:first-child>.vgai-btn{border-top-right-radius:0;border-bottom-right-radius:0}.vgai-split-button>.vgai-btn+.vgai-btn,.vgai-split-button>*+.vgai-btn,.vgai-split-button>*+*>.vgai-btn{min-width:20px;padding-inline:var(--vgai-space-1);border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.vgai-keycap{padding:1px var(--vgai-space-2);color:var(--vgai-content-primary);background:var(--vgai-surface-raised);border:var(--vgai-stroke-resting) solid var(--vgai-boundary-default);border-radius:var(--vgai-radius-sm);font-family:var(--vgai-font-mono);font-size:var(--vgai-font-sm)}.vgai-viewport-toolbar{position:absolute;top:var(--vgai-viewport-overlay-top, var(--vgai-space-4));z-index:calc(var(--vgai-z-dropdown, 1000) - 1);isolation:isolate}.vgai-viewport-toolbar-left{left:var(--vgai-space-4)}.vgai-viewport-toolbar-right{right:var(--vgai-space-4)}[data-vgai-chrome=islands]{--vgai-viewport-overlay-hud-top: 54px}[data-vgai-chrome=islands] .vgai-editor-shell:has(.vgai-workspace-dock[data-vgai-backdrop]){--vgai-viewport-overlay-top: 56px;--vgai-viewport-overlay-hud-top: 102px}.vgai-viewport-popover-anchor{position:relative;display:inline-flex;align-items:center}.vgai-snap-popover{position:absolute;top:calc(100% + var(--vgai-space-2));left:0;z-index:var(--vgai-z-dropdown);width:170px;padding:var(--vgai-space-4)}.vgai-helpers-menu{position:absolute;top:calc(100% + var(--vgai-space-2));right:0;z-index:var(--vgai-z-dropdown);min-width:140px}.vgai-menu-check{display:inline-flex;width:14px;flex:0 0 auto;justify-content:center;margin-right:var(--vgai-space-2)}.vgai-selectable{transition:background-color .12s var(--vgai-ease-standard),border-color .12s var(--vgai-ease-standard),color .12s var(--vgai-ease-standard)}.vgai-selectable:hover{background:var(--vgai-neutral-hover)}.vgai-selectable[data-selected=true]{background:var(--vgai-selection-bg)}.vgai-list-button{display:block;width:100%;min-width:0;border:0;border-left:var(--vgai-stroke-active) solid transparent;background:transparent;color:var(--vgai-content-muted);padding:var(--vgai-space-3) var(--vgai-space-4);text-align:left;font:inherit;cursor:pointer;box-sizing:border-box}.vgai-list-button:hover{color:var(--vgai-content-primary);background:var(--vgai-neutral-hover)}.vgai-list-button[data-selected=true]{color:var(--vgai-content-primary);background:var(--vgai-selection-bg)}.vgai-list-button[data-selected=true][data-accent=bar]{border-left-color:var(--vgai-selection-indicator)}.vgai-list-button:disabled{opacity:.5;cursor:default}.vgai-list-button:focus-visible{outline:var(--vgai-focus-ring);outline-offset:-2px}.vgai-playbar{pointer-events:auto}.vgai-play-edit-regime{display:inline-flex;width:var(--vgai-control-compact-height);height:var(--vgai-control-compact-height);align-items:center;justify-content:center;color:var(--vgai-warn)}.vgai-play-edit-regime[data-regime=overlay]{color:var(--vgai-success)}.vgai-playbar-popover-anchor{position:relative}.vgai-resolution-menu{z-index:var(--vgai-z-dropdown);min-width:220px}.vgai-resolution-menu [aria-checked=true]{color:var(--vgai-content-primary);background:var(--vgai-selection-bg)}.vgai-camera-info{position:absolute;left:var(--vgai-space-4);bottom:var(--vgai-space-4);padding:var(--vgai-space-2) var(--vgai-space-3);border-radius:var(--vgai-radius-md);backdrop-filter:blur(8px);pointer-events:none}.vgai-camera-preview{position:absolute;z-index:calc(var(--vgai-z-dropdown, 1000) - 2);left:var(--vgai-space-4);bottom:52px;width:clamp(220px,26vw,360px);max-width:calc(100% - var(--vgai-space-8));overflow:visible;border-radius:var(--vgai-radius-md);background:transparent;box-shadow:var(--vgai-shadow-md)}.vgai-camera-preview-header{min-height:28px;flex-wrap:nowrap;padding:0 var(--vgai-space-2);border:var(--vgai-stroke-resting) solid var(--vgai-boundary-default);border-bottom:0;border-radius:var(--vgai-radius-md) var(--vgai-radius-md) 0 0;background:var(--vgai-surface-overlay);backdrop-filter:blur(12px)}.vgai-camera-preview-title{min-width:0;flex:1}.vgai-camera-preview-image{width:100%;min-height:120px;overflow:hidden;border:var(--vgai-stroke-resting) solid var(--vgai-boundary-default);border-top:0;border-radius:0 0 var(--vgai-radius-md) var(--vgai-radius-md);cursor:zoom-in}.vgai-camera-preview-menu-anchor{position:relative;display:flex}.vgai-camera-preview-menu{position:absolute;z-index:var(--vgai-z-dropdown);top:calc(100% + var(--vgai-space-1));right:0;display:grid;width:max-content;min-width:210px;padding:var(--vgai-space-1)}.vgai-camera-preview-menu .vgai-btn{justify-content:flex-start}.vgai-camera-view-banner{position:absolute;z-index:calc(var(--vgai-z-dropdown, 1000) - 1);top:var(--vgai-viewport-overlay-top, var(--vgai-space-4));left:50%;max-width:calc(100% - 520px);padding:var(--vgai-space-1) var(--vgai-space-2);border-radius:var(--vgai-radius-full);transform:translate(-50%);backdrop-filter:blur(12px)}.vgai-camera-guides{position:absolute;z-index:calc(var(--vgai-z-sticky, 100) - 1);inset:0;overflow:hidden;pointer-events:none}.vgai-camera-guide{position:absolute;background:color-mix(in srgb,var(--vgai-content-primary) 40%,transparent);box-shadow:0 0 1px color-mix(in srgb,var(--vgai-surface-shell) 70%,transparent)}.vgai-camera-guide-v1,.vgai-camera-guide-v2{top:0;bottom:0;width:1px}.vgai-camera-guide-v1{left:33.333%}.vgai-camera-guide-v2{left:66.666%}.vgai-camera-guide-h1,.vgai-camera-guide-h2{right:0;left:0;height:1px}.vgai-camera-guide-h1{top:33.333%}.vgai-camera-guide-h2{top:66.666%}.vgai-camera-safe-frame{position:absolute;inset:6%;border:1px solid color-mix(in srgb,var(--vgai-content-primary) 48%,transparent)}.vgai-camera-center-mark{position:absolute;top:50%;left:50%;width:18px;height:18px;transform:translate(-50%,-50%)}.vgai-camera-center-mark:before,.vgai-camera-center-mark:after{position:absolute;background:color-mix(in srgb,var(--vgai-content-primary) 60%,transparent);content:""}.vgai-camera-center-mark:before{top:8px;left:0;width:18px;height:1px}.vgai-camera-center-mark:after{top:0;left:8px;width:1px;height:18px}@media(max-width:900px){.vgai-camera-view-banner{top:calc(var(--vgai-viewport-overlay-top, var(--vgai-space-4)) + 44px);max-width:calc(100% - var(--vgai-space-8))}}.vgai-react-canvas-controls{position:absolute;right:var(--vgai-space-6);bottom:var(--vgai-space-6);z-index:var(--vgai-z-sticky);overflow:visible}.vgai-canvas-scene-navigation{position:absolute;top:calc(var(--vgai-viewport-overlay-top, var(--vgai-space-4)) + 44px);left:var(--vgai-space-4);z-index:calc(var(--vgai-z-dropdown, 1000) - 1);overflow:visible}.vgai-react-viewport-select{border-color:transparent;background-color:transparent}.vgai-tabs{display:flex;height:var(--vgai-panel-header-height);min-width:0;align-items:stretch;gap:var(--vgai-space-1);padding-inline:var(--vgai-space-2);overflow:hidden;background:var(--vgai-surface-sticky);border-bottom:var(--vgai-stroke-resting) solid var(--vgai-structural-divider)}.vgai-tab{position:relative;display:inline-flex;min-width:0;max-width:220px;align-items:center;gap:var(--vgai-space-2);padding:0 var(--vgai-space-4);color:var(--vgai-content-muted);background:transparent;border:0;font:inherit;cursor:pointer}.vgai-tab:hover{color:var(--vgai-content-primary);background:var(--vgai-surface-raised)}.vgai-tab[data-selected=true]{color:var(--vgai-content-primary);background:var(--vgai-surface-panel)}.vgai-tab[data-selected=true]:after{position:absolute;right:var(--vgai-space-4);bottom:0;left:var(--vgai-space-4);height:var(--vgai-stroke-active);border-radius:2px 2px 0 0;background:var(--vgai-selection-indicator);content:""}.vgai-tab:focus-visible{outline:var(--vgai-focus-ring);outline-offset:-2px}.vgai-tab-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vgai-tab-dirty{width:6px;height:6px;flex:0 0 auto;border-radius:var(--vgai-radius-full);background:var(--vgai-warn)}.vgai-tab-badge{display:inline-flex;width:max-content;max-width:100%;min-width:15px;height:15px;align-items:center;justify-content:center;padding:0 var(--vgai-space-2);border-radius:var(--vgai-radius-full);color:var(--vgai-surface-shell);background:var(--vgai-content-muted);font-size:var(--vgai-font-xs);line-height:var(--vgai-leading-tight);box-sizing:border-box}.vgai-badge{display:inline-flex;flex:0 0 auto;align-self:center;width:fit-content;max-width:100%;min-width:0;min-height:18px;align-items:center;justify-content:center;padding:1px var(--vgai-space-2);overflow:hidden;border-radius:var(--vgai-radius-sm);color:var(--vgai-surface-shell);background:var(--vgai-content-muted);font-size:var(--vgai-font-xs);line-height:var(--vgai-leading-tight);white-space:nowrap;text-overflow:ellipsis;vertical-align:middle;box-sizing:border-box}.vgai-badge[data-shape=count]{min-width:15px;min-height:15px;height:15px;padding:0 var(--vgai-space-2);border-radius:var(--vgai-radius-full)}.vgai-tree{min-width:0;color:var(--vgai-content-primary)}.vgai-tree-row{display:flex;height:var(--vgai-tree-row-height);min-width:0;align-items:center;gap:var(--vgai-space-2);padding-right:var(--vgai-space-2);color:var(--vgai-content-muted);border-left:var(--vgai-stroke-active) solid transparent;box-sizing:border-box;cursor:default;user-select:none}.vgai-tree-row[data-row-alt]{background:var(--vgai-surface-row-alt)}.vgai-tree-body[data-vgai-region=outliner]{background-image:repeating-linear-gradient(to bottom,transparent 0,transparent var(--vgai-tree-row-height),var(--vgai-surface-row-alt) var(--vgai-tree-row-height),var(--vgai-surface-row-alt) calc(var(--vgai-tree-row-height) * 2));background-attachment:local}.vgai-tree-row:hover{color:var(--vgai-content-primary);background:var(--vgai-neutral-hover)}.vgai-tree-row[data-selected=true]{color:var(--vgai-content-primary);background-image:linear-gradient(var(--vgai-tree-row-selected-bg),var(--vgai-tree-row-selected-bg));background-repeat:no-repeat;background-position:0 1px;background-size:100% calc(100% - 2px)}.vgai-tree-row[data-selection-active=true]{background-image:linear-gradient(var(--vgai-tree-row-active-bg),var(--vgai-tree-row-active-bg)),linear-gradient(var(--vgai-tree-row-active-border),var(--vgai-tree-row-active-border));background-position:1px 2px,0 1px;background-size:calc(100% - 2px) calc(100% - 4px),100% calc(100% - 2px)}.vgai-tree-row[data-muted=true]{color:var(--vgai-content-dim)}.vgai-tree-row[data-dragging=true]{color:var(--vgai-content-muted);background:var(--vgai-neutral-hover);outline:1px dashed var(--vgai-boundary-strong);outline-offset:-1px}.vgai-tree-indent-guide{position:absolute;width:.5px;background:var(--vgai-tree-indent-guide);pointer-events:none}.vgai-tree-remote-selection{display:inline-flex;flex:0 0 auto;align-items:center}.vgai-tree-remote-selection>span{width:7px;height:7px;margin-left:-2px;border:1px solid var(--vgai-surface-panel);border-radius:var(--vgai-radius-full)}.vgai-tree-row:focus-visible{outline:var(--vgai-focus-ring);outline-offset:-2px}.vgai-tree-row{--vgai-tree-glyph-plate-width: var(--vgai-tree-indent);--vgai-tree-glyph-plate-height: calc(var(--vgai-tree-row-height) - var(--vgai-space-1));--vgai-tree-glyph-plate-radius: 5px}.vgai-tree-type-glyph{position:relative;z-index:0}.vgai-tree-type-glyph>*{opacity:.8}.vgai-tree-row[data-selection-active=true] .vgai-tree-type-glyph:before{content:"";position:absolute;z-index:-1;top:50%;left:50%;box-sizing:border-box;width:var(--vgai-tree-glyph-plate-width);height:var(--vgai-tree-glyph-plate-height);transform:translate(-50%,-50%);border:var(--vgai-stroke-resting) solid color-mix(in srgb,var(--vgai-content-muted) 20.3%,transparent);border-radius:var(--vgai-tree-glyph-plate-radius);background:color-mix(in srgb,var(--vgai-content-muted) 26%,transparent);pointer-events:none}.vgai-tree-datablock{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;flex-shrink:0;vertical-align:middle;width:var(--vgai-tree-glyph-plate-width);height:var(--vgai-tree-glyph-plate-height);margin-left:var(--vgai-tree-indent);font-size:var(--vgai-icon-sm);border:var(--vgai-stroke-resting) solid transparent;border-radius:var(--vgai-tree-glyph-plate-radius)}.vgai-tree-datablock>*{opacity:.8}.vgai-tree-datablock[data-active=true]{background:var(--vgai-tree-datablock-fill);border-color:var(--vgai-tree-datablock-border)}.vgai-tree-row-leading{display:inline-flex;width:14px;flex:0 0 auto;justify-content:center}.vgai-tree-row-label{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vgai-tree-row-actions{display:inline-flex;flex:0 0 auto;align-items:center;gap:var(--vgai-space-1)}.vgai-tree-row .vgai-btn[data-variant=ghost]:not(.vgai-tree-caret){color:var(--vgai-content-primary)}.vgai-tree-row .vgai-btn.vgai-tree-caret{color:var(--vgai-content-muted)}.vgai-field-group{display:grid;gap:var(--vgai-space-3);padding:var(--vgai-space-4)}.vgai-field-row{display:grid;grid-template-columns:minmax(64px,84px) minmax(0,1fr);min-width:0;align-items:center;gap:var(--vgai-space-3)}.vgai-field-row[data-compact=true]{grid-template-columns:minmax(52px,72px) minmax(0,1fr)}.vgai-field-label{min-width:0;color:var(--vgai-content-muted);font-size:var(--vgai-font-base)}.vgai-field-control{display:flex;min-width:0;align-items:center;gap:var(--vgai-space-2)}.vgai-field-hint{grid-column:2;color:var(--vgai-content-dim);font-size:var(--vgai-font-sm);line-height:1.35}.vgai-state-surface{display:flex;min-width:0;min-height:120px;flex-direction:column;align-items:center;justify-content:center;gap:var(--vgai-space-3);padding:var(--vgai-space-8);color:var(--vgai-content-muted);text-align:center;box-sizing:border-box}.vgai-state-surface[data-compact=true]{min-height:64px;padding:var(--vgai-space-4)}.vgai-state-surface[data-tone=error]{color:var(--vgai-danger)}.vgai-state-surface[data-tone=success]{color:var(--vgai-success)}.vgai-state-surface[data-tone=loading] .vgai-state-surface-icon{animation:vgai-editor-spin .8s linear infinite}.vgai-state-surface-icon{color:currentColor;font-size:var(--vgai-font-2xl)}.vgai-state-surface-title{color:var(--vgai-content-primary);font-size:var(--vgai-font-md)}.vgai-state-surface-description{max-width:42ch;color:var(--vgai-content-dim);line-height:var(--vgai-leading-normal)}.vgai-state-surface-action{margin-top:var(--vgai-space-2)}.vgai-banner{--vgai-banner-tone-tint: var(--vgai-accent-muted);display:flex;min-width:0;align-items:center;gap:var(--vgai-space-3);padding:var(--vgai-space-3) var(--vgai-space-5);border-bottom:var(--vgai-stroke-resting) solid var(--vgai-accent);color:var(--vgai-accent);background:var(--vgai-banner-tone-tint);box-sizing:border-box}.vgai-banner[data-tone=warning]{--vgai-banner-tone-tint: var(--vgai-warn-muted);color:var(--vgai-warn);border-color:var(--vgai-warn)}.vgai-banner[data-tone=error]{--vgai-banner-tone-tint: var(--vgai-danger-faint);color:var(--vgai-danger);border-color:var(--vgai-danger)}.vgai-banner[data-tone=success]{--vgai-banner-tone-tint: var(--vgai-success-muted);color:var(--vgai-success);border-color:var(--vgai-success)}[data-vgai-chrome=islands] .vgai-banner{background:linear-gradient(var(--vgai-banner-tone-tint),var(--vgai-banner-tone-tint)),var(--vgai-island-surface, transparent);backdrop-filter:var(--vgai-island-backdrop-filter, none);-webkit-backdrop-filter:var(--vgai-island-backdrop-filter, none);text-shadow:var(--vgai-content-text-shadow, none)}.vgai-banner-icon{display:inline-flex;flex:0 0 auto}.vgai-banner-content{min-width:0;flex:1;color:var(--vgai-content-primary)}.vgai-banner-actions{display:flex;flex:0 0 auto;align-items:center;gap:var(--vgai-space-2)}.vgai-popover{color:var(--vgai-content-primary);background:var(--vgai-glass-regular-bg, var(--vgai-surface-chrome));border:var(--vgai-stroke-resting) solid var(--vgai-boundary-default);border-radius:var(--vgai-radius-md);box-shadow:var(--vgai-shadow-md)}.vgai-drop-indicator{position:absolute;z-index:var(--vgai-z-overlay-low);pointer-events:none;border:var(--vgai-stroke-active) solid var(--vgai-selection-border);background:var(--vgai-selection-bg);box-sizing:border-box}.vgai-drop-indicator[data-position=before]{inset:0 0 auto;height:var(--vgai-stroke-active)}.vgai-drop-indicator[data-position=after]{inset:auto 0 0;height:var(--vgai-stroke-active)}.vgai-drop-indicator[data-position=inside]{inset:1px;border-radius:var(--vgai-radius-sm)}.vgai-model-tree-item{text-align:left}.vgai-btn.vgai-project-tool-card{display:grid;width:100%;height:auto;align-items:start;justify-content:normal;gap:var(--vgai-space-2);padding-block:var(--vgai-space-3);text-align:left}.vgai-resize-handle{position:relative;z-index:var(--vgai-z-overlay-low);flex:0 0 5px;background:transparent;touch-action:none}.vgai-resize-handle[data-orientation=vertical]{cursor:col-resize}.vgai-resize-handle[data-orientation=horizontal]{cursor:row-resize}.vgai-resize-handle:before{position:absolute;background:var(--vgai-boundary-default);content:"";transition:background-color 80ms var(--vgai-ease-standard),transform 80ms var(--vgai-ease-standard)}.vgai-resize-handle[data-orientation=vertical]:before{inset:0 auto 0 2px;width:1px}.vgai-resize-handle[data-orientation=horizontal]:before{inset:2px 0 auto;height:1px}.vgai-resize-handle:hover:before,.vgai-resize-handle:focus-visible:before{background:var(--vgai-selection-indicator)}.vgai-resize-handle[data-orientation=vertical]:hover:before,.vgai-resize-handle[data-orientation=vertical]:focus-visible:before{transform:scaleX(2)}.vgai-resize-handle[data-orientation=horizontal]:hover:before,.vgai-resize-handle[data-orientation=horizontal]:focus-visible:before{transform:scaleY(2)}.vgai-editor-theme,.vgai-editor-theme :where(*):not([data-vgai-world-surface],[data-vgai-world-surface] *){scrollbar-width:thin;scrollbar-color:var(--vgai-bg-3) transparent}.vgai-editor-theme::-webkit-scrollbar,.vgai-editor-theme :where(*):not([data-vgai-world-surface],[data-vgai-world-surface] *)::-webkit-scrollbar{width:9px;height:9px}.vgai-editor-theme::-webkit-scrollbar-track,.vgai-editor-theme :where(*):not([data-vgai-world-surface],[data-vgai-world-surface] *)::-webkit-scrollbar-track{background:transparent}.vgai-editor-theme::-webkit-scrollbar-thumb,.vgai-editor-theme :where(*):not([data-vgai-world-surface],[data-vgai-world-surface] *)::-webkit-scrollbar-thumb{background-color:var(--vgai-bg-3);border-radius:var(--vgai-radius-full);border:2px solid var(--vgai-bg-1);background-clip:padding-box}.vgai-editor-theme::-webkit-scrollbar-thumb:hover,.vgai-editor-theme :where(*):not([data-vgai-world-surface],[data-vgai-world-surface] *)::-webkit-scrollbar-thumb:hover{background-color:var(--vgai-border-2)}.vgai-editor-theme::-webkit-scrollbar-corner,.vgai-editor-theme :where(*):not([data-vgai-world-surface],[data-vgai-world-surface] *)::-webkit-scrollbar-corner{background:transparent}@keyframes vgai-editor-spin{to{transform:rotate(360deg)}}@keyframes vgai-editor-blink{0%,to{opacity:1}50%{opacity:0}}.vgai-anim-spin{animation:vgai-editor-spin .8s linear infinite}.vgai-anim-blink{animation:vgai-editor-blink 1s step-end infinite}.vgai-btn,.vgai-list-button,.vgai-split-button,.vgai-menu,.vgai-menu-trigger,.vgai-field-trigger,.vgai-inspector-group-trigger,.vgai-status-action,.vgai-toolbar,.vgai-dock-document-toolbar,.vgai-viewport-toolbar,.vgai-floating-toolbar,.vgai-playbar,.vgai-project-assets-toolbar,.vgai-section-header,.vgai-tabs,.vgai-tree-row,.vgai-asset-tree-row,.vgai-project-asset-entry,.vgai-model-tree-item,.vgai-number-input-label,.vgai-number-input-scrub,.vgai-scrub-label,.vgai-resize-handle,[data-vgai-noselect] button,[data-vgai-noselect] [role=button]{user-select:none}[data-vgai-noselect] input,[data-vgai-noselect] textarea,[data-vgai-noselect] [contenteditable=true],.vgai-toolbar input,.vgai-dock-document-toolbar input,.vgai-project-assets-toolbar input,.vgai-tree-row input,.vgai-selectable-text{user-select:text}.vgai-light-explorer{display:flex;flex-direction:column;min-width:0;height:100%;color:var(--vgai-content-primary);background:var(--vgai-surface-panel)}.vgai-light-explorer-toolbar{display:flex;align-items:center;gap:var(--vgai-space-2);min-height:38px;padding:var(--vgai-space-2) var(--vgai-space-3);border-bottom:var(--vgai-stroke-resting) solid var(--vgai-structural-divider)}.vgai-light-explorer-toolbar>.vgai-input{width:min(280px,38vw)}.vgai-light-explorer-summary{margin-left:auto;color:var(--vgai-content-muted);font-size:var(--vgai-font-small);white-space:nowrap}.vgai-light-explorer-scroll{min-height:0;flex:1;overflow:auto}.vgai-light-explorer-table{width:100%;min-width:760px;border-collapse:separate;border-spacing:0;font-size:var(--vgai-font-base)}.vgai-light-explorer-table th{position:sticky;top:0;z-index:1;height:30px;padding:0 var(--vgai-space-2);text-align:left;font-weight:var(--vgai-font-weight-medium);color:var(--vgai-content-muted);background:var(--vgai-surface-raised);border-bottom:var(--vgai-stroke-resting) solid var(--vgai-structural-divider)}.vgai-light-explorer-table td{height:34px;padding:var(--vgai-space-1) var(--vgai-space-2);border-bottom:var(--vgai-stroke-resting) solid var(--vgai-structural-divider);vertical-align:middle}.vgai-light-explorer-table tbody tr[data-selected=true] td{background:var(--vgai-selection-bg)}.vgai-light-explorer-table tbody tr:hover td{background:var(--vgai-neutral-hover)}.vgai-light-explorer-table tbody tr[data-selected=true]:hover td{background:var(--vgai-selection-bg)}.vgai-light-explorer-check-column,.vgai-light-explorer-table td:first-child,.vgai-light-explorer-table td:last-child{width:54px;text-align:center}.vgai-light-explorer-sort.vgai-btn,.vgai-light-explorer-name.vgai-btn{justify-content:flex-start;min-width:0;padding-inline:0}.vgai-light-explorer-name.vgai-btn{width:100%;color:var(--vgai-content-primary)}.vgai-light-explorer-type,.vgai-light-explorer-color span{color:var(--vgai-content-muted);font-family:var(--vgai-font-mono);font-size:var(--vgai-font-small)}.vgai-light-explorer-color{display:flex;align-items:center;gap:var(--vgai-space-2);white-space:nowrap}.vgai-light-explorer-table .vgai-number-input{width:86px}.vgai-light-explorer-unavailable{color:var(--vgai-content-dim)}.vgai-light-explorer-empty{padding:var(--vgai-space-4);color:var(--vgai-content-muted);font-style:italic}@media(prefers-reduced-motion:reduce){.vgai-anim-spin,.vgai-state-surface[data-tone=loading] .vgai-state-surface-icon{animation-duration:1.6s;animation-timing-function:steps(8,end)}.vgai-anim-blink{animation:none;opacity:1}.vgai-resize-handle:before{transition-property:background-color}}.vgai-project-work-conflict{color:var(--vgai-warn);font-size:var(--vgai-font-sm);text-align:left}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
let re=[],Ee=[];(()=>{let l="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,1n,9,16,o,,x,1i,3,,i,,7,a,2,t,3,1k,,,7,2,2,2,3,9,,a,2,q,,2,3,1k,,,5,4,2,2,3,3,,u,2,3,,b,3,1k,,,8,,3,,3,k,2,m,6,,3,1k,,,7,2,2,2,3,7,3,a,2,u,,1n,5,3,3,,4,9,,14,5,1j,,,7,,3,,4,7,2,b,2,t,3,1k,,,7,,3,,4,7,2,b,2,f,,c,4,1j,2,,7,,3,,4,9,,a,2,t,3,1y,,4,6,,,,8,i,2,1p,,,8,c,8,2q,,,a,b,7,21,2,r,,,,,,4,2,1d,k,,2,5,b,,10,9,,2u,b,,6,n,4,4,3,g,4,d,,,3,6,,f,,jj,3,qa,4,s,3,t,2,u,2,1s,w,9,,19,3,,,39,2,y,,3a,c,4,c,63,5,1l,a,,,,,2,o,2,,1c,1a,2,c,k,5,1b,h,12,9,c,3,u,d,1k,e,1c,k,48,3,,l,4,,6,,2,3,5i,1s,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,n,5,4,,2b,2,1e,i,q,i,d,,12,8,p,d,18,4,1b,e,10,,1v,e,c,,8,2,1a,,1f,,,3,2,2,5,2,,,15,5,5,2,6k,8,,2,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,1t,5,8t,2,25,6,1y,b,1d,4,3e,3,1h,f,15,,2,2,a,4,19,b,7,,1p,3,10,e,g,2,18,,c,3,1c,e,8,4,,2,2k,c,6,,2,,4d,c,l,4,1j,2,,7,2,2,2,3,9,,a,2,2,7,3,5,1v,9,,,2,,,4,,5,,,e,2,2a,i,n,,29,k,6j,7,2,9,r,2,2a,h,2y,d,2t,3,2,a,74,f,6t,6,,2,2,4,,,,2,3x,7,2,7,3,,s,a,14,7,,4,8,,9,b,1a,g,5i,8,5j,8,,8,2a,m,,e,3e,6,3,,,2,,7,,,1u,5,,2,,5,9n,4,9,2,,,1c,7,3,5,n,,44l,,6,f,8ug,i,1xc,5,1n,7,t4,,,1j,7,4,29,,b,2,f57,2,3mp,1a,2,n,f2,5,3,6,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,2s,,4g,7,af,,1p,4,e4,4,72,2,6r,,2,,7,2,5,,d6,7,31,7,240,5".split(",").map(e=>e?parseInt(e,36):1);for(let e=0,t=0;e<l.length;e++)(e%2?Ee:re).push(t=t+l[e])})();function Ue(l){if(l<768)return!1;for(let e=0,t=re.length;;){let n=e+t>>1;if(l<re[n])t=n;else if(l>=Ee[n])e=n+1;else return!0;if(e==t)return!1}}function ke(l){return l>=127462&&l<=127487}const ye=8205;function Ge(l,e,t=!0,n=!0){return(t?Oe:Ze)(l,e,n)}function Oe(l,e,t){if(e==l.length)return e;e&&Me(l.charCodeAt(e))&&Re(l.charCodeAt(e-1))&&e--;let n=ie(l,e);for(e+=Se(n);e<l.length;){let i=ie(l,e);if(n==ye||i==ye||t&&Ue(i))e+=Se(i),n=i;else if(ke(i)){let s=0,r=e-2;for(;r>=0&&ke(ie(l,r));)s++,r-=2;if(s%2==0)break;e+=2}else break}return e}function Ze(l,e,t){for(;e>1;){let n=Oe(l,e-2,t);if(n<e)return n;e--}return 0}function ie(l,e){let t=l.charCodeAt(e);if(!Re(t)||e+1==l.length)return t;let n=l.charCodeAt(e+1);return Me(n)?(t-55296<<10)+(n-56320)+65536:t}function Me(l){return l>=56320&&l<57344}function Re(l){return l>=55296&&l<56320}function Se(l){return l<65536?1:2}class x{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,n){[e,t]=J(this,e,t);let i=[];return this.decompose(0,e,i,2),n.length&&n.decompose(0,n.length,i,3),this.decompose(t,this.length,i,1),C.from(i,this.length-(t-e)+n.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){[e,t]=J(this,e,t);let n=[];return this.decompose(e,t,n,0),C.from(n,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),n=this.length-this.scanIdentical(e,-1),i=new N(this),s=new N(e);for(let r=t,h=t;;){if(i.next(r),s.next(r),r=0,i.lineBreak!=s.lineBreak||i.done!=s.done||i.value!=s.value)return!1;if(h+=i.value.length,i.done||h>=n)return!0}}iter(e=1){return new N(this,e)}iterRange(e,t=this.length){return new Te(this,e,t)}iterLines(e,t){let n;if(e==null)n=this.iter();else{t==null&&(t=this.lines+1);let i=this.line(e).from;n=this.iterRange(i,Math.max(i,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new Be(n)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?x.empty:e.length<=32?new m(e):C.from(m.split(e,[]))}}class m extends x{constructor(e,t=Ke(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,n,i){for(let s=0;;s++){let r=this.text[s],h=i+r.length;if((t?n:h)>=e)return new Qe(i,h,n,r);i=h+1,n++}}decompose(e,t,n,i){let s=e<=0&&t>=this.length?this:new m(Ie(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(i&1){let r=n.pop(),h=Z(s.text,r.text.slice(),0,s.length);if(h.length<=32)n.push(new m(h,r.length+s.length));else{let o=h.length>>1;n.push(new m(h.slice(0,o)),new m(h.slice(o)))}}else n.push(s)}replace(e,t,n){if(!(n instanceof m))return super.replace(e,t,n);[e,t]=J(this,e,t);let i=Z(this.text,Z(n.text,Ie(this.text,0,e)),t),s=this.length+n.length-(t-e);return i.length<=32?new m(i,s):C.from(m.split(i,[]),s)}sliceString(e,t=this.length,n=`
|
|
2
|
+
`){[e,t]=J(this,e,t);let i="";for(let s=0,r=0;s<=t&&r<this.text.length;r++){let h=this.text[r],o=s+h.length;s>e&&r&&(i+=n),e<o&&t>s&&(i+=h.slice(Math.max(0,e-s),t-s)),s=o+1}return i}flatten(e){for(let t of this.text)e.push(t)}scanIdentical(){return 0}static split(e,t){let n=[],i=-1;for(let s of e)n.push(s),i+=s.length+1,n.length==32&&(t.push(new m(n,i)),n=[],i=-1);return i>-1&&t.push(new m(n,i)),t}}class C extends x{constructor(e,t){super(),this.children=e,this.length=t,this.lines=0;for(let n of e)this.lines+=n.lines}lineInner(e,t,n,i){for(let s=0;;s++){let r=this.children[s],h=i+r.length,o=n+r.lines-1;if((t?o:h)>=e)return r.lineInner(e,t,n,i);i=h+1,n=o+1}}decompose(e,t,n,i){for(let s=0,r=0;r<=t&&s<this.children.length;s++){let h=this.children[s],o=r+h.length;if(e<=o&&t>=r){let a=i&((r<=e?1:0)|(o>=t?2:0));r>=e&&o<=t&&!a?n.push(h):h.decompose(e-r,t-r,n,a)}r=o+1}}replace(e,t,n){if([e,t]=J(this,e,t),n.lines<this.lines)for(let i=0,s=0;i<this.children.length;i++){let r=this.children[i],h=s+r.length;if(e>=s&&t<=h){let o=r.replace(e-s,t-s,n),a=this.lines-r.lines+o.lines;if(o.lines<a>>4&&o.lines>a>>6){let u=this.children.slice();return u[i]=o,new C(u,this.length-(t-e)+n.length)}return super.replace(s,h,o)}s=h+1}return super.replace(e,t,n)}sliceString(e,t=this.length,n=`
|
|
3
|
+
`){[e,t]=J(this,e,t);let i="";for(let s=0,r=0;s<this.children.length&&r<=t;s++){let h=this.children[s],o=r+h.length;r>e&&s&&(i+=n),e<o&&t>r&&(i+=h.sliceString(e-r,t-r,n)),r=o+1}return i}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof C))return 0;let n=0,[i,s,r,h]=t>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;i+=t,s+=t){if(i==r||s==h)return n;let o=this.children[i],a=e.children[s];if(o!=a)return n+o.scanIdentical(a,t);n+=o.length+1}}static from(e,t=e.reduce((n,i)=>n+i.length+1,-1)){let n=0;for(let c of e)n+=c.lines;if(n<32){let c=[];for(let g of e)g.flatten(c);return new m(c,t)}let i=Math.max(32,n>>5),s=i<<1,r=i>>1,h=[],o=0,a=-1,u=[];function f(c){let g;if(c.lines>s&&c instanceof C)for(let b of c.children)f(b);else c.lines>r&&(o>r||!o)?(d(),h.push(c)):c instanceof m&&o&&(g=u[u.length-1])instanceof m&&c.lines+g.lines<=32?(o+=c.lines,a+=c.length+1,u[u.length-1]=new m(g.text.concat(c.text),g.length+1+c.length)):(o+c.lines>i&&d(),o+=c.lines,a+=c.length+1,u.push(c))}function d(){o!=0&&(h.push(u.length==1?u[0]:C.from(u,a)),a=-1,o=u.length=0)}for(let c of e)f(c);return d(),h.length==1?h[0]:new C(h,t)}}x.empty=new m([""],0);function Ke(l){let e=-1;for(let t of l)e+=t.length+1;return e}function Z(l,e,t=0,n=1e9){for(let i=0,s=0,r=!0;s<l.length&&i<=n;s++){let h=l[s],o=i+h.length;o>=t&&(o>n&&(h=h.slice(0,n-i)),i<t&&(h=h.slice(t-i)),r?(e[e.length-1]+=h,r=!1):e.push(h)),i=o+1}return e}function Ie(l,e,t){return Z(l,[""],e,t)}class N{constructor(e,t=1){this.dir=t,this.done=!1,this.lineBreak=!1,this.value="",this.nodes=[e],this.offsets=[t>0?1:(e instanceof m?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let n=this.nodes.length-1,i=this.nodes[n],s=this.offsets[n],r=s>>1,h=i instanceof m?i.text.length:i.children.length;if(r==(t>0?h:0)){if(n==0)return this.done=!0,this.value="",this;t>0&&this.offsets[n-1]++,this.nodes.pop(),this.offsets.pop()}else if((s&1)==(t>0?0:1)){if(this.offsets[n]+=t,e==0)return this.lineBreak=!0,this.value=`
|
|
4
|
+
`,this;e--}else if(i instanceof m){let o=i.text[r+(t<0?-1:0)];if(this.offsets[n]+=t,o.length>Math.max(0,e))return this.value=e==0?o:t>0?o.slice(e):o.slice(0,o.length-e),this;e-=o.length}else{let o=i.children[r+(t<0?-1:0)];e>o.length?(e-=o.length,this.offsets[n]+=t):(t<0&&this.offsets[n]--,this.nodes.push(o),this.offsets.push(t>0?1:(o instanceof m?o.text.length:o.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}}class Te{constructor(e,t,n){this.value="",this.done=!1,this.cursor=new N(e,t>n?-1:1),this.pos=t>n?e.length:0,this.from=Math.min(t,n),this.to=Math.max(t,n)}nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,t<0?this.pos-this.to:this.from-this.pos);let n=t<0?this.pos-this.from:this.to-this.pos;e>n&&(e=n),n-=e;let{value:i}=this.cursor.next(e);return this.pos+=(i.length+e)*t,this.value=i.length<=n?i:t<0?i.slice(i.length-n):i.slice(0,n),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}}class Be{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:n,value:i}=this.inner.next(e);return t&&this.afterBreak?(this.value="",this.afterBreak=!1):t?(this.done=!0,this.value=""):n?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=i,this.afterBreak=!1),this}get lineBreak(){return!1}}typeof Symbol<"u"&&(x.prototype[Symbol.iterator]=function(){return this.iter()},N.prototype[Symbol.iterator]=Te.prototype[Symbol.iterator]=Be.prototype[Symbol.iterator]=function(){return this});class Qe{constructor(e,t,n,i){this.from=e,this.to=t,this.number=n,this.text=i}get length(){return this.to-this.from}}function J(l,e,t){return e=Math.max(0,Math.min(l.length,e)),[e,Math.max(e,Math.min(l.length,t))]}function Q(l,e,t=!0,n=!0){return Ge(l,e,t,n)}function Xe(l){return l>=56320&&l<57344}function Ye(l){return l>=55296&&l<56320}function ft(l,e){let t=l.charCodeAt(e);if(!Ye(t)||e+1==l.length)return t;let n=l.charCodeAt(e+1);return Xe(n)?(t-55296<<10)+(n-56320)+65536:t}function ct(l){return l<=65535?String.fromCharCode(l):(l-=65536,String.fromCharCode((l>>10)+55296,(l&1023)+56320))}function dt(l){return l<65536?1:2}const le=/\r\n?|\n/;var O=(function(l){return l[l.Simple=0]="Simple",l[l.TrackDel=1]="TrackDel",l[l.TrackBefore=2]="TrackBefore",l[l.TrackAfter=3]="TrackAfter",l})(O||(O={}));class E{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;t<this.sections.length;t+=2)e+=this.sections[t];return e}get newLength(){let e=0;for(let t=0;t<this.sections.length;t+=2){let n=this.sections[t+1];e+=n<0?this.sections[t]:n}return e}get empty(){return this.sections.length==0||this.sections.length==2&&this.sections[1]<0}iterGaps(e){for(let t=0,n=0,i=0;t<this.sections.length;){let s=this.sections[t++],r=this.sections[t++];r<0?(e(n,i,s),i+=s):i+=r,n+=s}}iterChangedRanges(e,t=!1){he(this,e,t)}get invertedDesc(){let e=[];for(let t=0;t<this.sections.length;){let n=this.sections[t++],i=this.sections[t++];i<0?e.push(n,i):e.push(i,n)}return new E(e)}composeDesc(e){return this.empty?e:e.empty?this:Fe(this,e)}mapDesc(e,t=!1){return e.empty?this:oe(this,e,t)}mapPos(e,t=-1,n=O.Simple){let i=0,s=0;for(let r=0;r<this.sections.length;){let h=this.sections[r++],o=this.sections[r++],a=i+h;if(o<0){if(a>e)return s+(e-i);s+=h}else{if(n!=O.Simple&&a>=e&&(n==O.TrackDel&&i<e&&a>e||n==O.TrackBefore&&i<e||n==O.TrackAfter&&a>e))return null;if(a>e||a==e&&t<0&&!h)return e==i||t<0?s:s+o;s+=o}i=a}if(e>i)throw new RangeError(`Position ${e} is out of range for changeset of length ${i}`);return s}touchesRange(e,t=e){for(let n=0,i=0;n<this.sections.length&&i<=t;){let s=this.sections[n++],r=this.sections[n++],h=i+s;if(r>=0&&i<=t&&h>=e)return i<e&&h>t?"cover":!0;i=h}return!1}toString(){let e="";for(let t=0;t<this.sections.length;){let n=this.sections[t++],i=this.sections[t++];e+=(e?" ":"")+n+(i>=0?":"+i:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(t=>typeof t!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new E(e)}static create(e){return new E(e)}}class k extends E{constructor(e,t){super(e),this.inserted=t}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return he(this,(t,n,i,s,r)=>e=e.replace(i,i+(n-t),r),!1),e}mapDesc(e,t=!1){return oe(this,e,t,!0)}invert(e){let t=this.sections.slice(),n=[];for(let i=0,s=0;i<t.length;i+=2){let r=t[i],h=t[i+1];if(h>=0){t[i]=h,t[i+1]=r;let o=i>>1;for(;n.length<o;)n.push(x.empty);n.push(r?e.slice(s,s+r):x.empty)}s+=r}return new k(t,n)}compose(e){return this.empty?e:e.empty?this:Fe(this,e,!0)}map(e,t=!1){return e.empty?this:oe(this,e,t,!0)}iterChanges(e,t=!1){he(this,e,t)}get desc(){return E.create(this.sections)}filter(e){let t=[],n=[],i=[],s=new q(this);e:for(let r=0,h=0;;){let o=r==e.length?1e9:e[r++];for(;h<o||h==o&&s.len==0;){if(s.done)break e;let u=Math.min(s.len,o-h);y(i,u,-1);let f=s.ins==-1?-1:s.off==0?s.ins:0;y(t,u,f),f>0&&R(n,t,s.text),s.forward(u),h+=u}let a=e[r++];for(;h<a;){if(s.done)break e;let u=Math.min(s.len,a-h);y(t,u,-1),y(i,u,s.ins==-1?-1:s.off==0?s.ins:0),s.forward(u),h+=u}}return{changes:new k(t,n),filtered:E.create(i)}}toJSON(){let e=[];for(let t=0;t<this.sections.length;t+=2){let n=this.sections[t],i=this.sections[t+1];i<0?e.push(n):i==0?e.push([n]):e.push([n].concat(this.inserted[t>>1].toJSON()))}return e}static of(e,t,n){let i=[],s=[],r=0,h=null;function o(u=!1){if(!u&&!i.length)return;r<t&&y(i,t-r,-1);let f=new k(i,s);h=h?h.compose(f.map(h)):f,i=[],s=[],r=0}function a(u){if(Array.isArray(u))for(let f of u)a(f);else if(u instanceof k){if(u.length!=t)throw new RangeError(`Mismatched change set length (got ${u.length}, expected ${t})`);o(),h=h?h.compose(u.map(h)):u}else{let{from:f,to:d=f,insert:c}=u;if(f>d||f<0||d>t)throw new RangeError(`Invalid change range ${f} to ${d} (in doc of length ${t})`);let g=c?typeof c=="string"?x.of(c.split(n||le)):c:x.empty,b=g.length;if(f==d&&b==0)return;f<r&&o(),f>r&&y(i,f-r,-1),y(i,d-f,b),R(s,i,g),r=d}}return a(e),o(!h),h}static empty(e){return new k(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let t=[],n=[];for(let i=0;i<e.length;i++){let s=e[i];if(typeof s=="number")t.push(s,-1);else{if(!Array.isArray(s)||typeof s[0]!="number"||s.some((r,h)=>h&&typeof r!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(s.length==1)t.push(s[0],0);else{for(;n.length<i;)n.push(x.empty);n[i]=x.of(s.slice(1)),t.push(s[0],n[i].length)}}}return new k(t,n)}static createSet(e,t){return new k(e,t)}}function y(l,e,t,n=!1){if(e==0&&t<=0)return;let i=l.length-2;i>=0&&t<=0&&t==l[i+1]?l[i]+=e:i>=0&&e==0&&l[i]==0?l[i+1]+=t:n?(l[i]+=e,l[i+1]+=t):l.push(e,t)}function R(l,e,t){if(t.length==0)return;let n=e.length-2>>1;if(n<l.length)l[l.length-1]=l[l.length-1].append(t);else{for(;l.length<n;)l.push(x.empty);l.push(t)}}function he(l,e,t){let n=l.inserted;for(let i=0,s=0,r=0;r<l.sections.length;){let h=l.sections[r++],o=l.sections[r++];if(o<0)i+=h,s+=h;else{let a=i,u=s,f=x.empty;for(;a+=h,u+=o,o&&n&&(f=f.append(n[r-2>>1])),!(t||r==l.sections.length||l.sections[r+1]<0);)h=l.sections[r++],o=l.sections[r++];e(i,a,s,u,f),i=a,s=u}}}function oe(l,e,t,n=!1){let i=[],s=n?[]:null,r=new q(l),h=new q(e);for(let o=-1;;){if(r.done&&h.len||h.done&&r.len)throw new Error("Mismatched change set lengths");if(r.ins==-1&&h.ins==-1){let a=Math.min(r.len,h.len);y(i,a,-1),r.forward(a),h.forward(a)}else if(h.ins>=0&&(r.ins<0||o==r.i||r.off==0&&(h.len<r.len||h.len==r.len&&!t))){let a=h.len;for(y(i,h.ins,-1);a;){let u=Math.min(r.len,a);r.ins>=0&&o<r.i&&r.len<=u&&(y(i,0,r.ins),s&&R(s,i,r.text),o=r.i),r.forward(u),a-=u}h.next()}else if(r.ins>=0){let a=0,u=r.len;for(;u;)if(h.ins==-1){let f=Math.min(u,h.len);a+=f,u-=f,h.forward(f)}else if(h.ins==0&&h.len<u)u-=h.len,h.next();else break;y(i,a,o<r.i?r.ins:0),s&&o<r.i&&R(s,i,r.text),o=r.i,r.forward(r.len-u)}else{if(r.done&&h.done)return s?k.createSet(i,s):E.create(i);throw new Error("Mismatched change set lengths")}}}function Fe(l,e,t=!1){let n=[],i=t?[]:null,s=new q(l),r=new q(e);for(let h=!1;;){if(s.done&&r.done)return i?k.createSet(n,i):E.create(n);if(s.ins==0)y(n,s.len,0,h),s.next();else if(r.len==0&&!r.done)y(n,0,r.ins,h),i&&R(i,n,r.text),r.next();else{if(s.done||r.done)throw new Error("Mismatched change set lengths");{let o=Math.min(s.len2,r.len),a=n.length;if(s.ins==-1){let u=r.ins==-1?-1:r.off?0:r.ins;y(n,o,u,h),i&&u&&R(i,n,r.text)}else r.ins==-1?(y(n,s.off?0:s.len,o,h),i&&R(i,n,s.textBit(o))):(y(n,s.off?0:s.len,r.off?0:r.ins,h),i&&!r.off&&R(i,n,r.text));h=(s.ins>o||r.ins>=0&&r.len>o)&&(h||n.length>a),s.forward2(o),r.forward(o)}}}}class q{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i<e.length?(this.len=e[this.i++],this.ins=e[this.i++]):(this.len=0,this.ins=-2),this.off=0}get done(){return this.ins==-2}get len2(){return this.ins<0?this.len:this.ins}get text(){let{inserted:e}=this.set,t=this.i-2>>1;return t>=e.length?x.empty:e[t]}textBit(e){let{inserted:t}=this.set,n=this.i-2>>1;return n>=t.length&&!e?x.empty:t[n].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}}class M{constructor(e,t,n,i){this.from=e,this.to=t,this.flags=n,this.goalColumn=i}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get undirectional(){return(this.flags&64)>0}get bidiLevel(){let e=this.flags&7;return e==7?null:e}map(e,t=-1){let n,i;return this.empty?n=i=e.mapPos(this.from,t):(n=e.mapPos(this.from,1),i=e.mapPos(this.to,-1)),n==this.from&&i==this.to?this:new M(n,i,this.flags,this.goalColumn)}extend(e,t=e,n=0){if(e<=this.anchor&&t>=this.anchor)return p.range(e,t,void 0,void 0,n);let i=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return p.range(this.anchor,i,void 0,void 0,n)}eq(e,t=!1){return this.anchor==e.anchor&&this.head==e.head&&this.goalColumn==e.goalColumn&&(!t||!this.empty||this.assoc==e.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return p.range(e.anchor,e.head)}static create(e,t,n,i){return new M(e,t,n,i)}}class p{constructor(e,t){this.ranges=e,this.mainIndex=t}map(e,t=-1){return e.empty?this:p.create(this.ranges.map(n=>n.map(e,t)),this.mainIndex)}eq(e,t=!1){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let n=0;n<this.ranges.length;n++)if(!this.ranges[n].eq(e.ranges[n],t))return!1;return!0}get main(){return this.ranges[this.mainIndex]}asSingle(){return this.ranges.length==1?this:new p([this.main],0)}addRange(e,t=!0){return p.create([e].concat(this.ranges),t?0:this.mainIndex+1)}replaceRange(e,t=this.mainIndex){let n=this.ranges.slice();return n[t]=e,p.create(n,this.mainIndex)}toJSON(){return{ranges:this.ranges.map(e=>e.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new p(e.ranges.map(t=>M.fromJSON(t)),e.main)}static single(e,t=e){return new p([p.range(e,t)],0)}static create(e,t=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let n=0,i=0;i<e.length;i++){let s=e[i];if(s.empty?s.from<=n:s.from<n)return p.normalized(e.slice(),t);n=s.to}return new p(e,t)}static cursor(e,t=0,n,i){return M.create(e,e,(t==0?0:t<0?8:16)|(n==null?7:Math.min(6,n)),i)}static range(e,t,n,i,s){let r=i==null?7:Math.min(6,i);return!s&&e!=t&&(s=t<e?1:-1),s&&(r|=s<0?8:16),t<e?M.create(t,e,r|32,n):M.create(e,t,r,n)}static undirectionalRange(e,t){return M.create(e,t,64,void 0)}static normalized(e,t=0){let n=e[t];e.sort((i,s)=>i.from-s.from),t=e.indexOf(n);for(let i=1;i<e.length;i++){let s=e[i],r=e[i-1];if(s.empty?s.from<=r.to:s.from<r.to){let h=r.from,o=Math.max(s.to,r.to);i<=t&&t--,e.splice(--i,2,s.anchor>s.head?p.range(o,h):p.range(h,o))}}return new p(e,t)}}function Je(l,e){for(let t of l.ranges)if(t.to>e)throw new RangeError("Selection points outside of document")}let me=0;class A{constructor(e,t,n,i,s){this.combine=e,this.compareInput=t,this.compare=n,this.isStatic=i,this.id=me++,this.default=e([]),this.extensions=typeof s=="function"?s(this):s}get reader(){return this}static define(e={}){return new A(e.combine||(t=>t),e.compareInput||((t,n)=>t===n),e.compare||(e.combine?(t,n)=>t===n:we),!!e.static,e.enables)}of(e){return new K([],this,0,e)}compute(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new K(e,this,1,t)}computeN(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new K(e,this,2,t)}from(e,t){return t||(t=n=>n),this.compute([e],n=>t(n.field(e)))}}function we(l,e){return l==e||l.length==e.length&&l.every((t,n)=>t===e[n])}class K{constructor(e,t,n,i){this.dependencies=e,this.facet=t,this.type=n,this.value=i,this.id=me++}dynamicSlot(e){var t;let n=this.value,i=this.facet.compareInput,s=this.id,r=e[s]>>1,h=this.type==2,o=!1,a=!1,u=[];for(let f of this.dependencies)f=="doc"?o=!0:f=="selection"?a=!0:(((t=e[f.id])!==null&&t!==void 0?t:1)&1)==0&&u.push(e[f.id]);return{create(f){return f.values[r]=n(f),1},update(f,d){if(o&&d.docChanged||a&&(d.docChanged||d.selection)||ae(f,u)){let c=n(f);if(h?!Pe(c,f.values[r],i):!i(c,f.values[r]))return f.values[r]=c,1}return 0},reconfigure:(f,d)=>{let c,g=d.config.address[s];if(g!=null){let b=Y(d,g);if(this.dependencies.every(v=>v instanceof A?d.facet(v)===f.facet(v):v instanceof L?d.field(v,!1)==f.field(v,!1):!0)||(h?Pe(c=n(f),b,i):i(c=n(f),b)))return f.values[r]=b,0}else c=n(f);return f.values[r]=c,1}}}}function Pe(l,e,t){if(l.length!=e.length)return!1;for(let n=0;n<l.length;n++)if(!t(l[n],e[n]))return!1;return!0}function ae(l,e){let t=!1;for(let n of e)$(l,n)&1&&(t=!0);return t}function _e(l,e,t){let n=t.map(o=>l[o.id]),i=t.map(o=>o.type),s=n.filter(o=>!(o&1)),r=l[e.id]>>1;function h(o){let a=[];for(let u=0;u<n.length;u++){let f=Y(o,n[u]);if(i[u]==2)for(let d of f)a.push(d);else a.push(f)}return e.combine(a)}return{create(o){for(let a of n)$(o,a);return o.values[r]=h(o),1},update(o,a){if(!ae(o,s))return 0;let u=h(o);return e.compare(u,o.values[r])?0:(o.values[r]=u,1)},reconfigure(o,a){let u=ae(o,n),f=a.config.facets[e.id],d=a.facet(e);if(f&&!u&&we(t,f))return o.values[r]=d,0;let c=h(o);return e.compare(c,d)?(o.values[r]=d,0):(o.values[r]=c,1)}}}const H=A.define({static:!0});class L{constructor(e,t,n,i,s){this.id=e,this.createF=t,this.updateF=n,this.compareF=i,this.spec=s,this.provides=void 0}static define(e){let t=new L(me++,e.create,e.update,e.compare||((n,i)=>n===i),e);return e.provide&&(t.provides=e.provide(t)),t}create(e){let t=e.facet(H).find(n=>n.field==this);return(t?.create||this.createF)(e)}slot(e){let t=e[this.id]>>1;return{create:n=>(n.values[t]=this.create(n),1),update:(n,i)=>{let s=n.values[t],r=this.updateF(s,i);return this.compareF(s,r)?0:(n.values[t]=r,1)},reconfigure:(n,i)=>{let s=n.facet(H),r=i.facet(H),h;return(h=s.find(o=>o.field==this))&&h!=r.find(o=>o.field==this)?(n.values[t]=h.create(n),1):i.config.address[this.id]!=null?(n.values[t]=i.field(this),0):(n.values[t]=this.create(n),1)}}}init(e){return[this,H.of({field:this,create:e})]}get extension(){return this}}const B={lowest:4,low:3,default:2,high:1,highest:0};function D(l){return e=>new Le(e,l)}const gt={highest:D(B.highest),high:D(B.high),default:D(B.default),low:D(B.low),lowest:D(B.lowest)};class Le{constructor(e,t){this.inner=e,this.prec=t}}class te{of(e){return new ue(this,e)}reconfigure(e){return te.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}}class ue{constructor(e,t){this.compartment=e,this.inner=t}}class X{constructor(e,t,n,i,s,r){for(this.base=e,this.compartments=t,this.dynamicSlots=n,this.address=i,this.staticValues=s,this.facets=r,this.statusTemplate=[];this.statusTemplate.length<n.length;)this.statusTemplate.push(0)}staticFacet(e){let t=this.address[e.id];return t==null?e.default:this.staticValues[t>>1]}static resolve(e,t,n){let i=[],s=Object.create(null),r=new Map;for(let d of et(e,t,r))d instanceof L?i.push(d):(s[d.facet.id]||(s[d.facet.id]=[])).push(d);let h=Object.create(null),o=[],a=[];for(let d of i)h[d.id]=a.length<<1,a.push(c=>d.slot(c));let u=n?.config.facets;for(let d in s){let c=s[d],g=c[0].facet,b=u&&u[d]||[];if(c.every(v=>v.type==0))if(h[g.id]=o.length<<1|1,we(b,c))o.push(n.facet(g));else{let v=g.combine(c.map(ne=>ne.value));o.push(n&&g.compare(v,n.facet(g))?n.facet(g):v)}else{for(let v of c)v.type==0?(h[v.id]=o.length<<1|1,o.push(v.value)):(h[v.id]=a.length<<1,a.push(ne=>v.dynamicSlot(ne)));h[g.id]=a.length<<1,a.push(v=>_e(v,g,c))}}let f=a.map(d=>d(h));return new X(e,r,f,h,o,s)}}function et(l,e,t){let n=[[],[],[],[],[]],i=new Map;function s(r,h){let o=i.get(r);if(o!=null){if(o<=h)return;let a=n[o].indexOf(r);a>-1&&n[o].splice(a,1),r instanceof ue&&t.delete(r.compartment)}if(i.set(r,h),Array.isArray(r))for(let a of r)s(a,h);else if(r instanceof ue){if(t.has(r.compartment))throw new RangeError("Duplicate use of compartment in extensions");let a=e.get(r.compartment)||r.inner;t.set(r.compartment,a),s(a,h)}else if(r instanceof Le)s(r.inner,r.prec);else if(r instanceof L)n[h].push(r),r.provides&&s(r.provides,h);else if(r instanceof K)n[h].push(r),r.facet.extensions&&s(r.facet.extensions,B.default);else{let a=r.extension;if(!a)throw new Error(`Unrecognized extension value in extension set (${r}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);s(a,h)}}return s(l,B.default),n.reduce((r,h)=>r.concat(h))}function $(l,e){if(e&1)return 2;let t=e>>1,n=l.status[t];if(n==4)throw new Error("Cyclic dependency between fields and/or facets");if(n&2)return n;l.status[t]=4;let i=l.computeSlot(l,l.config.dynamicSlots[t]);return l.status[t]=2|i}function Y(l,e){return e&1?l.config.staticValues[e>>1]:l.values[e>>1]}const De=A.define(),fe=A.define({combine:l=>l.some(e=>e),static:!0}),Ve=A.define({combine:l=>l.length?l[0]:void 0,static:!0}),Ne=A.define(),$e=A.define(),qe=A.define(),ze=A.define({combine:l=>l.length?l[0]:!1});class j{constructor(e,t){this.type=e,this.value=t}static define(){return new tt}}class tt{of(e){return new j(this,e)}}class nt{constructor(e){this.map=e}of(e){return new I(this,e)}}class I{constructor(e,t){this.type=e,this.value=t}map(e){let t=this.type.map(this.value,e);return t===void 0?void 0:t==this.value?this:new I(this.type,t)}is(e){return this.type==e}static define(e={}){return new nt(e.map||(t=>t))}static mapEffects(e,t){if(!e.length)return e;let n=[];for(let i of e){let s=i.map(t);s&&n.push(s)}return n}}I.reconfigure=I.define();I.appendConfig=I.define();class P{constructor(e,t,n,i,s,r){this.startState=e,this.changes=t,this.selection=n,this.effects=i,this.annotations=s,this.scrollIntoView=r,this._doc=null,this._state=null,n&&Je(n,t.newLength),s.some(h=>h.type==P.time)||(this.annotations=s.concat(P.time.of(Date.now())))}static create(e,t,n,i,s,r){return new P(e,t,n,i,s,r)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let t of this.annotations)if(t.type==e)return t.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let t=this.annotation(P.userEvent);return!!(t&&(t==e||t.length>e.length&&t.slice(0,e.length)==e&&t[e.length]=="."))}}P.time=j.define();P.userEvent=j.define();P.addToHistory=j.define();P.remote=j.define();function it(l,e){let t=[];for(let n=0,i=0;;){let s,r;if(n<l.length&&(i==e.length||e[i]>=l[n]))s=l[n++],r=l[n++];else if(i<e.length)s=e[i++],r=e[i++];else return t;!t.length||t[t.length-1]<s?t.push(s,r):t[t.length-1]<r&&(t[t.length-1]=r)}}function We(l,e,t){var n;let i,s,r;return t?(i=e.changes,s=k.empty(e.changes.length),r=l.changes.compose(e.changes)):(i=e.changes.map(l.changes),s=l.changes.mapDesc(e.changes,!0),r=l.changes.compose(i)),{changes:r,selection:e.selection?e.selection.map(s):(n=l.selection)===null||n===void 0?void 0:n.map(i),effects:I.mapEffects(l.effects,i).concat(I.mapEffects(e.effects,s)),annotations:l.annotations.length?l.annotations.concat(e.annotations):e.annotations,scrollIntoView:l.scrollIntoView||e.scrollIntoView}}function ce(l,e,t){let n=e.selection,i=F(e.annotations);return e.userEvent&&(i=i.concat(P.userEvent.of(e.userEvent))),{changes:e.changes instanceof k?e.changes:k.of(e.changes||[],t,l.facet(Ve)),selection:n&&(n instanceof p?n:p.single(n.anchor,n.head)),effects:F(e.effects),annotations:i,scrollIntoView:!!e.scrollIntoView}}function je(l,e,t){let n=ce(l,e.length?e[0]:{},l.doc.length);e.length&&e[0].filter===!1&&(t=!1);for(let s=1;s<e.length;s++){e[s].filter===!1&&(t=!1);let r=!!e[s].sequential;n=We(n,ce(l,e[s],r?n.changes.newLength:l.doc.length),r)}let i=P.create(l,n.changes,n.selection,n.effects,n.annotations,n.scrollIntoView);return rt(t?st(i):i)}function st(l){let e=l.startState,t=!0;for(let i of e.facet(Ne)){let s=i(l);if(s===!1){t=!1;break}Array.isArray(s)&&(t=t===!0?s:it(t,s))}if(t!==!0){let i,s;if(t===!1)s=l.changes.invertedDesc,i=k.empty(e.doc.length);else{let r=l.changes.filter(t);i=r.changes,s=r.filtered.mapDesc(r.changes).invertedDesc}l=P.create(e,i,l.selection&&l.selection.map(s),I.mapEffects(l.effects,s),l.annotations,l.scrollIntoView)}let n=e.facet($e);for(let i=n.length-1;i>=0;i--){let s=n[i](l);s instanceof P?l=s:Array.isArray(s)&&s.length==1&&s[0]instanceof P?l=s[0]:l=je(e,F(s),!1)}return l}function rt(l){let e=l.startState,t=e.facet(qe),n=l;for(let i=t.length-1;i>=0;i--){let s=t[i](l);s&&Object.keys(s).length&&(n=We(n,ce(e,s,l.changes.newLength),!0))}return n==l?l:P.create(e,l.changes,l.selection,n.effects,n.annotations,n.scrollIntoView)}const lt=[];function F(l){return l==null?lt:Array.isArray(l)?l:[l]}var T=(function(l){return l[l.Word=0]="Word",l[l.Space=1]="Space",l[l.Other=2]="Other",l})(T||(T={}));const ht=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let de;try{de=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function ot(l){if(de)return de.test(l);for(let e=0;e<l.length;e++){let t=l[e];if(/\w/.test(t)||t>""&&(t.toUpperCase()!=t.toLowerCase()||ht.test(t)))return!0}return!1}function at(l){return e=>{if(!/\S/.test(e))return T.Space;if(ot(e))return T.Word;for(let t=0;t<l.length;t++)if(e.indexOf(l[t])>-1)return T.Word;return T.Other}}class w{constructor(e,t,n,i,s,r){this.config=e,this.doc=t,this.selection=n,this.values=i,this.status=e.statusTemplate.slice(),this.computeSlot=s,r&&(r._state=this);for(let h=0;h<this.config.dynamicSlots.length;h++)$(this,h<<1);this.computeSlot=null}field(e,t=!0){let n=this.config.address[e.id];if(n==null){if(t)throw new RangeError("Field is not present in this state");return}return $(this,n),Y(this,n)}update(...e){return je(this,e,!0)}applyTransaction(e){let t=this.config,{base:n,compartments:i}=t;for(let h of e.effects)h.is(te.reconfigure)?(t&&(i=new Map,t.compartments.forEach((o,a)=>i.set(a,o)),t=null),i.set(h.value.compartment,h.value.extension)):h.is(I.reconfigure)?(t=null,n=h.value):h.is(I.appendConfig)&&(t=null,n=F(n).concat(h.value));let s;t?s=e.startState.values.slice():(t=X.resolve(n,i,this),s=new w(t,this.doc,this.selection,t.dynamicSlots.map(()=>null),(o,a)=>a.reconfigure(o,this),null).values);let r=e.startState.facet(fe)?e.newSelection:e.newSelection.asSingle();new w(t,e.newDoc,r,s,(h,o)=>o.update(h,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(t=>({changes:{from:t.from,to:t.to,insert:e},range:p.cursor(t.from+e.length)}))}changeByRange(e){let t=this.selection,n=e(t.ranges[0]),i=this.changes(n.changes),s=[n.range],r=F(n.effects);for(let h=1;h<t.ranges.length;h++){let o=e(t.ranges[h]),a=this.changes(o.changes),u=a.map(i);for(let d=0;d<h;d++)s[d]=s[d].map(u);let f=i.mapDesc(a,!0);s.push(o.range.map(f)),i=i.compose(u),r=I.mapEffects(r,u).concat(I.mapEffects(F(o.effects),f))}return{changes:i,selection:p.create(s,t.mainIndex),effects:r}}changes(e=[]){return e instanceof k?e:k.of(e,this.doc.length,this.facet(w.lineSeparator))}toText(e){return x.of(e.split(this.facet(w.lineSeparator)||le))}sliceDoc(e=0,t=this.doc.length){return this.doc.sliceString(e,t,this.lineBreak)}facet(e){let t=this.config.address[e.id];return t==null?e.default:($(this,t),Y(this,t))}toJSON(e){let t={doc:this.sliceDoc(),selection:this.selection.toJSON()};if(e)for(let n in e){let i=e[n];i instanceof L&&this.config.address[i.id]!=null&&(t[n]=i.spec.toJSON(this.field(e[n]),this))}return t}static fromJSON(e,t={},n){if(!e||typeof e.doc!="string")throw new RangeError("Invalid JSON representation for EditorState");let i=[];if(n){for(let s in n)if(Object.prototype.hasOwnProperty.call(e,s)){let r=n[s],h=e[s];i.push(r.init(o=>r.spec.fromJSON(h,o)))}}return w.create({doc:e.doc,selection:p.fromJSON(e.selection),extensions:t.extensions?i.concat([t.extensions]):i})}static create(e={}){let t=X.resolve(e.extensions||[],new Map),n=e.doc instanceof x?e.doc:x.of((e.doc||"").split(t.staticFacet(w.lineSeparator)||le)),i=e.selection?e.selection instanceof p?e.selection:p.single(e.selection.anchor,e.selection.head):p.single(0);return Je(i,n.length),t.staticFacet(fe)||(i=i.asSingle()),new w(t,n,i,t.dynamicSlots.map(()=>null),(s,r)=>r.create(s),null)}get tabSize(){return this.facet(w.tabSize)}get lineBreak(){return this.facet(w.lineSeparator)||`
|
|
5
|
+
`}get readOnly(){return this.facet(ze)}phrase(e,...t){for(let n of this.facet(w.phrases))if(Object.prototype.hasOwnProperty.call(n,e)){e=n[e];break}return t.length&&(e=e.replace(/\$(\$|\d*)/g,(n,i)=>{if(i=="$")return"$";let s=+(i||1);return!s||s>t.length?n:t[s-1]})),e}languageDataAt(e,t,n=-1){let i=[];for(let s of this.facet(De))for(let r of s(this,t,n))Object.prototype.hasOwnProperty.call(r,e)&&i.push(r[e]);return i}charCategorizer(e){let t=this.languageDataAt("wordChars",e);return at(t.length?t[0]:"")}wordAt(e){let{text:t,from:n,length:i}=this.doc.lineAt(e),s=this.charCategorizer(e),r=e-n,h=e-n;for(;r>0;){let o=Q(t,r,!1);if(s(t.slice(o,r))!=T.Word)break;r=o}for(;h<i;){let o=Q(t,h);if(s(t.slice(h,o))!=T.Word)break;h=o}return r==h?null:p.range(r+n,h+n)}}w.allowMultipleSelections=fe;w.tabSize=A.define({combine:l=>l.length?l[0]:4});w.lineSeparator=Ve;w.readOnly=ze;w.phrases=A.define({compare(l,e){let t=Object.keys(l),n=Object.keys(e);return t.length==n.length&&t.every(i=>l[i]==e[i])}});w.languageData=De;w.changeFilter=Ne;w.transactionFilter=$e;w.transactionExtender=qe;te.reconfigure=I.define();function pt(l,e,t={}){let n={};for(let i of l)for(let s of Object.keys(i)){let r=i[s],h=n[s];if(h===void 0)n[s]=r;else if(!(h===r||r===void 0))if(Object.hasOwnProperty.call(t,s))n[s]=t[s](h,r);else throw new Error("Config merge conflict for field "+s)}for(let i in e)n[i]===void 0&&(n[i]=e[i]);return n}class _{eq(e){return this==e}range(e,t=e){return z.create(e,t,this)}}_.prototype.startSide=_.prototype.endSide=0;_.prototype.point=!1;_.prototype.mapMode=O.TrackDel;function ve(l,e){return l==e||l.constructor==e.constructor&&l.eq(e)}class z{constructor(e,t,n){this.from=e,this.to=t,this.value=n}static create(e,t,n){return new z(e,t,n)}}function ge(l,e){return l.from-e.from||l.value.startSide-e.value.startSide}class xe{constructor(e,t,n,i){this.from=e,this.to=t,this.value=n,this.maxPoint=i}get length(){return this.to[this.to.length-1]}findIndex(e,t,n,i=0){let s=n?this.to:this.from;for(let r=i,h=s.length;;){if(r==h)return r;let o=r+h>>1,a=s[o]-e||(n?this.value[o].endSide:this.value[o].startSide)-t;if(o==r)return a>=0?r:h;a>=0?h=o:r=o+1}}between(e,t,n,i){for(let s=this.findIndex(t,-1e9,!0),r=this.findIndex(n,1e9,!1,s);s<r;s++)if(i(this.from[s]+e,this.to[s]+e,this.value[s])===!1)return!1}map(e,t){let n=[],i=[],s=[],r=-1,h=-1;for(let o=0;o<this.value.length;o++){let a=this.value[o],u=this.from[o]+e,f=this.to[o]+e,d,c;if(u==f){let g=t.mapPos(u,a.startSide,a.mapMode);if(g==null||(d=c=g,a.startSide!=a.endSide&&(c=t.mapPos(u,a.endSide),c<d)))continue}else if(d=t.mapPos(u,a.startSide),c=t.mapPos(f,a.endSide),d>c||d==c&&a.startSide>0&&a.endSide<=0)continue;(c-d||a.endSide-a.startSide)<0||(r<0&&(r=d),a.point&&(h=Math.max(h,c-d)),n.push(a),i.push(d-r),s.push(c-r))}return{mapped:n.length?new xe(i,s,n,h):null,pos:r}}}class S{constructor(e,t,n,i){this.chunkPos=e,this.chunk=t,this.nextLayer=n,this.maxPoint=i}static create(e,t,n,i){return new S(e,t,n,i)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let t of this.chunk)e+=t.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:t=[],sort:n=!1,filterFrom:i=0,filterTo:s=this.length}=e,r=e.filter;if(t.length==0&&!r)return this;if(n&&(t=t.slice().sort(ge)),this.isEmpty)return t.length?S.of(t):this;let h=new He(this,null,-1).goto(0),o=0,a=[],u=new ee;for(;h.value||o<t.length;)if(o<t.length&&(h.from-t[o].from||h.startSide-t[o].value.startSide)>=0){let f=t[o++];u.addInner(f.from,f.to,f.value)||a.push(f)}else h.rangeIndex==1&&h.chunkIndex<this.chunk.length&&(o==t.length||this.chunkEnd(h.chunkIndex)<t[o].from)&&(!r||i>this.chunkEnd(h.chunkIndex)||s<this.chunkPos[h.chunkIndex])&&u.addChunk(this.chunkPos[h.chunkIndex],this.chunk[h.chunkIndex])?h.nextChunk():((!r||i>h.to||s<h.from||r(h.from,h.to,h.value))&&(u.addInner(h.from,h.to,h.value)||a.push(z.create(h.from,h.to,h.value))),h.next());return u.finishInner(this.nextLayer.isEmpty&&!a.length?S.empty:this.nextLayer.update({add:a,filter:r,filterFrom:i,filterTo:s}))}map(e){if(e.empty||this.isEmpty)return this;let t=[],n=[],i=-1;for(let r=0;r<this.chunk.length;r++){let h=this.chunkPos[r],o=this.chunk[r],a=e.touchesRange(h,h+o.length);if(a===!1)i=Math.max(i,o.maxPoint),t.push(o),n.push(e.mapPos(h));else if(a===!0){let{mapped:u,pos:f}=o.map(h,e);u&&(i=Math.max(i,u.maxPoint),t.push(u),n.push(f))}}let s=this.nextLayer.map(e);return t.length==0?s:new S(n,t,s||S.empty,i)}between(e,t,n){if(!this.isEmpty){for(let i=0;i<this.chunk.length;i++){let s=this.chunkPos[i],r=this.chunk[i];if(t>=s&&e<=s+r.length&&r.between(s,e-s,t-s,n)===!1)return}this.nextLayer.between(e,t,n)}}iter(e=0){return W.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,t=0){return W.from(e).goto(t)}static compare(e,t,n,i,s=-1){let r=e.filter(f=>f.maxPoint>0||!f.isEmpty&&f.maxPoint>=s),h=t.filter(f=>f.maxPoint>0||!f.isEmpty&&f.maxPoint>=s),o=Ae(r,h,n),a=new V(r,o,s),u=new V(h,o,s);n.iterGaps((f,d,c)=>be(a,f,u,d,c,i)),n.empty&&n.length==0&&be(a,0,u,0,0,i)}static eq(e,t,n=0,i){i==null&&(i=999999999);let s=e.filter(u=>!u.isEmpty&&t.indexOf(u)<0),r=t.filter(u=>!u.isEmpty&&e.indexOf(u)<0);if(s.length!=r.length)return!1;if(!s.length)return!0;let h=Ae(s,r),o=new V(s,h,0).goto(n),a=new V(r,h,0).goto(n);for(;;){if(o.to!=a.to||!pe(o.active,a.active)||o.point&&(!a.point||!ve(o.point,a.point)))return!1;if(o.to>i)return!0;o.next(),a.next()}}static spans(e,t,n,i,s=-1){let r=new V(e,null,s).goto(t),h=t,o=r.openStart;for(;;){let a=Math.min(r.to,n);if(r.point){let u=r.activeForPoint(r.to),f=r.pointFrom<t?u.length+1:r.point.startSide<0?u.length:Math.min(u.length,o);i.point(h,a,r.point,u,f,r.pointRank),o=Math.min(r.openEnd(a),u.length)}else a>h&&(i.span(h,a,r.active,o),o=r.openEnd(a));if(r.to>n)return o+(r.point&&r.to>n?1:0);h=r.to,r.next()}}static of(e,t=!1){let n=new ee;for(let i of e instanceof z?[e]:t?ut(e):e)n.add(i.from,i.to,i.value);return n.finish()}static join(e){if(!e.length)return S.empty;let t=e[e.length-1];for(let n=e.length-2;n>=0;n--)for(let i=e[n];i!=S.empty;i=i.nextLayer)t=new S(i.chunkPos,i.chunk,t,Math.max(i.maxPoint,t.maxPoint));return t}}S.empty=new S([],[],null,-1);function ut(l){if(l.length>1)for(let e=l[0],t=1;t<l.length;t++){let n=l[t];if(ge(e,n)>0)return l.slice().sort(ge);e=n}return l}S.empty.nextLayer=S.empty;class ee{finishChunk(e){this.chunks.push(new xe(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(e,t,n){this.addInner(e,t,n)||(this.nextLayer||(this.nextLayer=new ee)).add(e,t,n)}addInner(e,t,n){let i=e-this.lastTo||n.startSide-this.last.endSide;if(i<=0&&(e-this.lastFrom||n.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return i<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(t-this.chunkStart),this.last=n,this.lastFrom=e,this.lastTo=t,this.value.push(n),n.point&&(this.maxPoint=Math.max(this.maxPoint,t-e)),!0)}addChunk(e,t){if((e-this.lastTo||t.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,t.maxPoint),this.chunks.push(t),this.chunkPos.push(e);let n=t.value.length-1;return this.last=t.value[n],this.lastFrom=t.from[n]+e,this.lastTo=t.to[n]+e,!0}finish(){return this.finishInner(S.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let t=S.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,t}}function Ae(l,e,t){let n=new Map;for(let s of l)for(let r=0;r<s.chunk.length;r++)s.chunk[r].maxPoint<=0&&n.set(s.chunk[r],s.chunkPos[r]);let i=new Set;for(let s of e)for(let r=0;r<s.chunk.length;r++){let h=n.get(s.chunk[r]);h!=null&&(t?t.mapPos(h):h)==s.chunkPos[r]&&!t?.touchesRange(h,h+s.chunk[r].length)&&i.add(s.chunk[r])}return i}class He{constructor(e,t,n,i=0){this.layer=e,this.skip=t,this.minPoint=n,this.rank=i}get startSide(){return this.value?this.value.startSide:0}get endSide(){return this.value?this.value.endSide:0}goto(e,t=-1e9){return this.chunkIndex=this.rangeIndex=0,this.gotoInner(e,t,!1),this}gotoInner(e,t,n){for(;this.chunkIndex<this.layer.chunk.length;){let i=this.layer.chunk[this.chunkIndex];if(!(this.skip&&this.skip.has(i)||this.layer.chunkEnd(this.chunkIndex)<e||i.maxPoint<this.minPoint))break;this.chunkIndex++,n=!1}if(this.chunkIndex<this.layer.chunk.length){let i=this.layer.chunk[this.chunkIndex].findIndex(e-this.layer.chunkPos[this.chunkIndex],t,!0);(!n||this.rangeIndex<i)&&this.setRangeIndex(i)}this.next()}forward(e,t){(this.to-e||this.endSide-t)<0&&this.gotoInner(e,t,!0)}next(){for(;;)if(this.chunkIndex==this.layer.chunk.length){this.from=this.to=1e9,this.value=null;break}else{let e=this.layer.chunkPos[this.chunkIndex],t=this.layer.chunk[this.chunkIndex],n=e+t.from[this.rangeIndex];if(this.from=n,this.to=e+t.to[this.rangeIndex],this.value=t.value[this.rangeIndex],this.setRangeIndex(this.rangeIndex+1),this.minPoint<0||this.value.point&&this.to-this.from>=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex<this.layer.chunk.length&&this.skip.has(this.layer.chunk[this.chunkIndex]);)this.chunkIndex++;this.rangeIndex=0}else this.rangeIndex=e}nextChunk(){this.chunkIndex++,this.rangeIndex=0,this.next()}compare(e){return this.from-e.from||this.startSide-e.startSide||this.rank-e.rank||this.to-e.to||this.endSide-e.endSide}}class W{constructor(e){this.heap=e}static from(e,t=null,n=-1){let i=[];for(let s=0;s<e.length;s++)for(let r=e[s];!r.isEmpty;r=r.nextLayer)r.maxPoint>=n&&i.push(new He(r,t,n,s));return i.length==1?i[0]:new W(i)}get startSide(){return this.value?this.value.startSide:0}goto(e,t=-1e9){for(let n of this.heap)n.goto(e,t);for(let n=this.heap.length>>1;n>=0;n--)se(this.heap,n);return this.next(),this}forward(e,t){for(let n of this.heap)n.forward(e,t);for(let n=this.heap.length>>1;n>=0;n--)se(this.heap,n);(this.to-e||this.value.endSide-t)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),se(this.heap,0)}}}function se(l,e){for(let t=l[e];;){let n=(e<<1)+1;if(n>=l.length)break;let i=l[n];if(n+1<l.length&&i.compare(l[n+1])>=0&&(i=l[n+1],n++),t.compare(i)<0)break;l[n]=t,l[e]=i,e=n}}class V{constructor(e,t,n){this.minPoint=n,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=W.from(e,t,n)}goto(e,t=-1e9){return this.cursor.goto(e,t),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=t,this.openStart=-1,this.next(),this}forward(e,t){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-t)<0;)this.removeActive(this.minActive);this.cursor.forward(e,t)}removeActive(e){U(this.active,e),U(this.activeTo,e),U(this.activeRank,e),this.minActive=Ce(this.active,this.activeTo)}addActive(e){let t=0,{value:n,to:i,rank:s}=this.cursor;for(;t<this.activeRank.length&&(s-this.activeRank[t]||i-this.activeTo[t])>0;)t++;G(this.active,t,n),G(this.activeTo,t,i),G(this.activeRank,t,s),e&&G(e,t,this.cursor.from),this.minActive=Ce(this.active,this.activeTo)}next(){let e=this.to,t=this.point;this.point=null;let n=this.openStart<0?[]:null;for(;;){let i=this.minActive;if(i>-1&&(this.activeTo[i]-this.cursor.from||this.active[i].endSide-this.cursor.startSide)<0){if(this.activeTo[i]>e){this.to=this.activeTo[i],this.endSide=this.active[i].endSide;break}this.removeActive(i),n&&U(n,i)}else if(this.cursor.value)if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let s=this.cursor.value;if(!s.point)this.addActive(n),this.cursor.next();else if(t&&this.cursor.to==this.to&&this.cursor.from<this.cursor.to)this.cursor.next();else{this.point=s,this.pointFrom=this.cursor.from,this.pointRank=this.cursor.rank,this.to=this.cursor.to,this.endSide=s.endSide,this.cursor.next(),this.forward(this.to,this.endSide);break}}else{this.to=this.endSide=1e9;break}}if(n){this.openStart=0;for(let i=n.length-1;i>=0&&n[i]<e;i--)this.openStart++}}activeForPoint(e){if(!this.active.length)return this.active;let t=[];for(let n=this.active.length-1;n>=0&&!(this.activeRank[n]<this.pointRank);n--)(this.activeTo[n]>e||this.activeTo[n]==e&&this.active[n].endSide>=this.point.endSide)&&t.push(this.active[n]);return t.reverse()}openEnd(e){let t=0;for(let n=this.activeTo.length-1;n>=0&&this.activeTo[n]>e;n--)t++;return t}}function be(l,e,t,n,i,s){l.goto(e),t.goto(n);let r=n+i,h=n,o=n-e,a=!!s.boundChange;for(let u=!1;;){let f=l.to+o-t.to,d=f||l.endSide-t.endSide,c=d<0?l.to+o:t.to,g=Math.min(c,r);if(l.point||t.point?(l.point&&t.point&&ve(l.point,t.point)&&pe(l.activeForPoint(l.to),t.activeForPoint(t.to))||s.comparePoint(h,g,l.point,t.point),u=!1):(u&&s.boundChange(h),g>h&&!pe(l.active,t.active)&&s.compareRange(h,g,l.active,t.active),a&&g<r&&(f||l.openEnd(c)!=t.openEnd(c))&&(u=!0)),c>r)break;h=c,d<=0&&l.next(),d>=0&&t.next()}}function pe(l,e){if(l.length!=e.length)return!1;for(let t=0;t<l.length;t++)if(l[t]!=e[t]&&!ve(l[t],e[t]))return!1;return!0}function U(l,e){for(let t=e,n=l.length-1;t<n;t++)l[t]=l[t+1];l.pop()}function G(l,e,t){for(let n=l.length-1;n>=e;n--)l[n+1]=l[n];l[e]=t}function Ce(l,e){let t=-1,n=1e9;for(let i=0;i<e.length;i++)(e[i]-n||l[i].endSide-l[t].endSide)<0&&(t=i,n=e[i]);return t}function mt(l,e,t=l.length){let n=0;for(let i=0;i<t&&i<l.length;)l.charCodeAt(i)==9?(n+=e-n%e,i++):(n++,i=Q(l,i));return n}function wt(l,e,t,n){for(let i=0,s=0;;){if(s>=e)return i;if(i==l.length)break;s+=l.charCodeAt(i)==9?t-s%t:1,i=Q(l,i)}return n===!0?-1:l.length}export{j as Annotation,tt as AnnotationType,E as ChangeDesc,k as ChangeSet,T as CharCategory,te as Compartment,p as EditorSelection,w as EditorState,A as Facet,Qe as Line,O as MapMode,gt as Prec,z as Range,S as RangeSet,ee as RangeSetBuilder,_ as RangeValue,M as SelectionRange,I as StateEffect,nt as StateEffectType,L as StateField,x as Text,P as Transaction,ft as codePointAt,dt as codePointSize,pt as combineConfig,mt as countColumn,Q as findClusterBreak,wt as findColumn,ct as fromCodePoint};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{EditorSelection as h,Text as ke,findClusterBreak as T,StateField as tt,Transaction as K,Facet as Ae,Annotation as Be,combineConfig as nt,StateEffect as Se,ChangeSet as rt,ChangeDesc as ot,countColumn as ee,CharCategory as D}from"./index-BP6wv2A0.js";import{E as O,b as lt}from"./index-DgapqSPi.js";import{I as Ce,g as De,i as G,s as te,N as Q,m as E,a as X,b as st}from"./index-CJbYy-CF.js";const ct=e=>{let{state:t}=e,n=t.doc.lineAt(t.selection.main.from),r=ne(e.state,n.from);return r.line?it(e):r.block?ft(e):!1};function L(e,t){return({state:n,dispatch:r})=>{if(n.readOnly)return!1;let l=e(t,n);return l?(r(n.update(l)),!0):!1}}const it=L(re,0),kn=L(re,1),An=L(re,2),ut=L(V,0),Bn=L(V,1),Sn=L(V,2),ft=L((e,t)=>V(e,t,ht(t)),0);function ne(e,t){let n=e.languageDataAt("commentTokens",t,1);return n.length?n[0]:{}}const v=50;function at(e,{open:t,close:n},r,l){let o=e.sliceDoc(r-v,r),s=e.sliceDoc(l,l+v),c=/\s*$/.exec(o)[0].length,i=/^\s*/.exec(s)[0].length,f=o.length-c;if(o.slice(f-t.length,f)==t&&s.slice(i,i+n.length)==n)return{open:{pos:r-c,margin:c&&1},close:{pos:l+i,margin:i&&1}};let u,a;l-r<=2*v?u=a=e.sliceDoc(r,l):(u=e.sliceDoc(r,r+v),a=e.sliceDoc(l-v,l));let d=/^\s*/.exec(u)[0].length,B=/\s*$/.exec(a)[0].length,k=a.length-B-n.length;return u.slice(d,d+t.length)==t&&a.slice(k,k+n.length)==n?{open:{pos:r+d+t.length,margin:/\s/.test(u.charAt(d+t.length))?1:0},close:{pos:l-B-n.length,margin:/\s/.test(a.charAt(k-1))?1:0}}:null}function ht(e){let t=[];for(let n of e.selection.ranges){let r=e.doc.lineAt(n.from),l=n.to<=r.to?r:e.doc.lineAt(n.to);l.from>r.from&&l.from==n.to&&(l=n.to==r.to+1?r:e.doc.lineAt(n.to-1));let o=t.length-1;o>=0&&t[o].to>r.from?t[o].to=l.to:t.push({from:r.from+/^\s*/.exec(r.text)[0].length,to:l.to})}return t}function V(e,t,n=t.selection.ranges){let r=n.map(o=>ne(t,o.from).block);if(!r.every(o=>o))return null;let l=n.map((o,s)=>at(t,r[s],o.from,o.to));if(e!=2&&!l.every(o=>o))return{changes:t.changes(n.map((o,s)=>l[s]?[]:[{from:o.from,insert:r[s].open+" "},{from:o.to,insert:" "+r[s].close}]))};if(e!=1&&l.some(o=>o)){let o=[];for(let s=0,c;s<l.length;s++)if(c=l[s]){let i=r[s],{open:f,close:u}=c;o.push({from:f.pos-i.open.length,to:f.pos+f.margin},{from:u.pos-u.margin,to:u.pos+i.close.length})}return{changes:o}}return null}function re(e,t,n=t.selection.ranges){let r=[],l=-1;e:for(let{from:o,to:s}of n){let c=r.length,i=1e9,f;for(let u=o;u<=s;){let a=t.doc.lineAt(u);if(f==null&&(f=ne(t,a.from).line,!f))continue e;if(a.from>l&&(o==s||s>a.from)){l=a.from;let d=/^\s*/.exec(a.text)[0].length,B=d==a.length,k=a.text.slice(d,d+f.length)==f?d:-1;d<a.text.length&&d<i&&(i=d),r.push({line:a,comment:k,token:f,indent:d,empty:B,single:!1})}u=a.to+1}if(i<1e9)for(let u=c;u<r.length;u++)r[u].indent<r[u].line.text.length&&(r[u].indent=i);r.length==c+1&&(r[c].single=!0)}if(e!=2&&r.some(o=>o.comment<0&&(!o.empty||o.single))){let o=[];for(let{line:c,token:i,indent:f,empty:u,single:a}of r)(a||!u)&&o.push({from:c.from+f,insert:i+" "});let s=t.changes(o);return{changes:s,selection:t.selection.map(s,1)}}else if(e!=1&&r.some(o=>o.comment>=0)){let o=[];for(let{line:s,comment:c,token:i}of r)if(c>=0){let f=s.from+c,u=f+i.length;s.text[u-s.from]==" "&&u++,o.push({from:f,to:u})}return{changes:o}}return null}const Y=Be.define(),dt=Be.define(),mt=Ae.define(),xe=Ae.define({combine(e){return nt(e,{minDepth:100,newGroupDelay:500,joinToEvent:(t,n)=>n},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(t,n)=>(r,l)=>t(r,l)||n(r,l)})}}),N=tt.define({create(){return C.empty},update(e,t){let n=t.state.facet(xe),r=t.annotation(Y);if(r){let i=g.fromTransaction(t,r.selection),f=r.side,u=f==0?e.undone:e.done;return i?u=U(u,u.length,n.minDepth,i):u=Ee(u,t.startState.selection),new C(f==0?r.rest:u,f==0?u:r.rest)}let l=t.annotation(dt);if((l=="full"||l=="before")&&(e=e.isolate()),t.annotation(K.addToHistory)===!1)return t.changes.empty?e:e.addMapping(t.changes.desc);let o=g.fromTransaction(t),s=t.annotation(K.time),c=t.annotation(K.userEvent);return o?e=e.addChanges(o,s,c,n,t):t.selection&&(e=e.addSelection(t.startState.selection,s,c,n.newGroupDelay)),(l=="full"||l=="after")&&(e=e.isolate()),e},toJSON(e){return{done:e.done.map(t=>t.toJSON()),undone:e.undone.map(t=>t.toJSON())}},fromJSON(e){return new C(e.done.map(g.fromJSON),e.undone.map(g.fromJSON))}});function Cn(e={}){return[N,xe.of(e),O.domEventHandlers({beforeinput(t,n){let r=t.inputType=="historyUndo"?Le:t.inputType=="historyRedo"?Z:null;return r?(t.preventDefault(),r(n)):!1}})]}const Dn=N;function P(e,t){return function({state:n,dispatch:r}){if(!t&&n.readOnly)return!1;let l=n.field(N,!1);if(!l)return!1;let o=l.pop(e,n,t);return o?(r(o),!0):!1}}const Le=P(0,!1),Z=P(1,!1),pt=P(0,!0),gt=P(1,!0);function Me(e){return function(t){let n=t.field(N,!1);if(!n)return 0;let r=e==0?n.done:n.undone;return r.length-(r.length&&!r[0].changes?1:0)}}const xn=Me(0),Ln=Me(1);class g{constructor(t,n,r,l,o){this.changes=t,this.effects=n,this.mapped=r,this.startSelection=l,this.selectionsAfter=o}setSelAfter(t){return new g(this.changes,this.effects,this.mapped,this.startSelection,t)}toJSON(){var t,n,r;return{changes:(t=this.changes)===null||t===void 0?void 0:t.toJSON(),mapped:(n=this.mapped)===null||n===void 0?void 0:n.toJSON(),startSelection:(r=this.startSelection)===null||r===void 0?void 0:r.toJSON(),selectionsAfter:this.selectionsAfter.map(l=>l.toJSON())}}static fromJSON(t){return new g(t.changes&&rt.fromJSON(t.changes),[],t.mapped&&ot.fromJSON(t.mapped),t.startSelection&&h.fromJSON(t.startSelection),t.selectionsAfter.map(h.fromJSON))}static fromTransaction(t,n){let r=A;for(let l of t.startState.facet(mt)){let o=l(t);o.length&&(r=r.concat(o))}return!r.length&&t.changes.empty?null:new g(t.changes.invert(t.startState.doc),r,void 0,n||t.startState.selection,A)}static selection(t){return new g(void 0,A,void 0,void 0,t)}}function U(e,t,n,r){let l=t+1>n+20?t-n-1:0,o=e.slice(l,t);return o.push(r),o}function yt(e,t){let n=[],r=!1;return e.iterChangedRanges((l,o)=>n.push(l,o)),t.iterChangedRanges((l,o,s,c)=>{for(let i=0;i<n.length;){let f=n[i++],u=n[i++];c>=f&&s<=u&&(r=!0)}}),r}function kt(e,t){return e.ranges.length==t.ranges.length&&e.ranges.filter((n,r)=>n.empty!=t.ranges[r].empty).length===0}function be(e,t){return e.length?t.length?e.concat(t):e:t}const A=[],At=200;function Ee(e,t){if(e.length){let n=e[e.length-1],r=n.selectionsAfter.slice(Math.max(0,n.selectionsAfter.length-At));return r.length&&r[r.length-1].eq(t)?e:(r.push(t),U(e,e.length-1,1e9,n.setSelAfter(r)))}else return[g.selection([t])]}function Bt(e){let t=e[e.length-1],n=e.slice();return n[e.length-1]=t.setSelAfter(t.selectionsAfter.slice(0,t.selectionsAfter.length-1)),n}function $(e,t){if(!e.length)return e;let n=e.length,r=A;for(;n;){let l=St(e[n-1],t,r);if(l.changes&&!l.changes.empty||l.effects.length){let o=e.slice(0,n);return o[n-1]=l,o}else t=l.mapped,n--,r=l.selectionsAfter}return r.length?[g.selection(r)]:A}function St(e,t,n){let r=be(e.selectionsAfter.length?e.selectionsAfter.map(c=>c.map(t)):A,n);if(!e.changes)return g.selection(r);let l=e.changes.map(t),o=t.mapDesc(e.changes,!0),s=e.mapped?e.mapped.composeDesc(o):o;return new g(l,Se.mapEffects(e.effects,t),s,e.startSelection.map(o),r)}const Ct=/^(input\.type|delete)($|\.)/;class C{constructor(t,n,r=0,l=void 0){this.done=t,this.undone=n,this.prevTime=r,this.prevUserEvent=l}isolate(){return this.prevTime?new C(this.done,this.undone):this}addChanges(t,n,r,l,o){let s=this.done,c=s[s.length-1];return c&&c.changes&&!c.changes.empty&&t.changes&&(!r||Ct.test(r))&&(!c.selectionsAfter.length&&n-this.prevTime<l.newGroupDelay&&l.joinToEvent(o,yt(c.changes,t.changes))||r=="input.type.compose")?s=U(s,s.length-1,l.minDepth,new g(t.changes.compose(c.changes),be(Se.mapEffects(t.effects,c.changes),c.effects),c.mapped,c.startSelection,A)):s=U(s,s.length,l.minDepth,t),new C(s,A,n,r)}addSelection(t,n,r,l){let o=this.done.length?this.done[this.done.length-1].selectionsAfter:A;return o.length>0&&n-this.prevTime<l&&r==this.prevUserEvent&&r&&/^select($|\.)/.test(r)&&kt(o[o.length-1],t)?this:new C(Ee(this.done,t),this.undone,n,r)}addMapping(t){return new C($(this.done,t),$(this.undone,t),this.prevTime,this.prevUserEvent)}pop(t,n,r){let l=t==0?this.done:this.undone;if(l.length==0)return null;let o=l[l.length-1],s=o.selectionsAfter[0]||(o.startSelection?o.startSelection.map(o.changes.invertedDesc,1):n.selection);if(r&&o.selectionsAfter.length)return n.update({selection:o.selectionsAfter[o.selectionsAfter.length-1],annotations:Y.of({side:t,rest:Bt(l),selection:s}),userEvent:t==0?"select.undo":"select.redo",scrollIntoView:!0});if(o.changes){let c=l.length==1?A:l.slice(0,l.length-1);return o.mapped&&(c=$(c,o.mapped)),n.update({changes:o.changes,selection:o.startSelection,effects:o.effects,annotations:Y.of({side:t,rest:c,selection:s}),filter:!1,userEvent:t==0?"undo":"redo",scrollIntoView:!0})}else return null}}C.empty=new C(A,A);const Mn=[{key:"Mod-z",run:Le,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:Z,preventDefault:!0},{linux:"Ctrl-Shift-z",run:Z,preventDefault:!0},{key:"Mod-u",run:pt,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:gt,preventDefault:!0}];function I(e,t){return h.create(e.ranges.map(t),e.mainIndex)}function S(e,t){return e.update({selection:t,scrollIntoView:!0,userEvent:"select"})}function y({state:e,dispatch:t},n){let r=I(e.selection,n);return r.eq(e.selection,!0)?!1:(t(S(e,r)),!0)}function M(e,t){return h.cursor(t?e.to:e.from)}function J(e,t){return y(e,n=>n.empty?e.moveByChar(n,t):M(n,t))}function m(e){return e.textDirectionAt(e.state.selection.main.head)==lt.LTR}const Te=e=>J(e,!m(e)),Oe=e=>J(e,m(e)),bn=e=>J(e,!0),En=e=>J(e,!1);function oe(e,t,n){let r=t.head,l=e.doc.lineAt(r);return r==(n?l.to:l.from)?r=n?Math.min(e.doc.length,l.to+1):Math.max(0,l.from-1):r=l.from+T(l.text,r-l.from,n),h.cursor(r,n?-1:1)}function Ie(e,t){return y(e,n=>n.empty?oe(e.state,n,t):M(n,t))}const Tn=e=>Ie(e,!0),On=e=>Ie(e,!1);function w(e,t){return y(e,n=>n.empty?e.moveByGroup(n,t):M(n,t))}const Dt=e=>w(e,!m(e)),xt=e=>w(e,m(e)),In=e=>w(e,!0),vn=e=>w(e,!1);function le(e,t,n){let r=e.state.charCategorizer(t),l=r(n),o=l!=D.Space;return s=>{let c=r(s);return c!=D.Space?o&&c==l:(o=!1,!0)}}const Rn=e=>y(e,t=>t.empty?e.moveByChar(t,!0,n=>le(e,t.head,n)):M(t,!0)),ue=typeof Intl<"u"&&Intl.Segmenter?new Intl.Segmenter(void 0,{granularity:"word"}):null;function ve(e,t,n){let r=e.state.charCategorizer(t.from),l=D.Space,o=t.from,s=0,c=!1,i=!1,f=!1,u=d=>{if(c)return!1;o+=n?d.length:-d.length;let B=r(d),k;if(B==D.Word&&d.charCodeAt(0)<128&&/[\W_]/.test(d)&&(B=-1),l==D.Space&&(l=B),l!=B)return!1;if(l==D.Word)if(d.toLowerCase()==d){if(!n&&i)return!1;f=!0}else if(f){if(n)return!1;c=!0}else{if(i&&n&&r(k=e.state.sliceDoc(o,o+1))==D.Word&&k.toLowerCase()==k)return!1;i=!0}return s++,!0},a=e.moveByChar(t,n,d=>(u(d),u));if(ue&&l==D.Word&&a.from==t.from+s*(n?1:-1)){let d=Math.min(t.head,a.head),B=Math.max(t.head,a.head),k=e.state.sliceDoc(d,B);if(k.length>1&&/[\u4E00-\uffff]/.test(k)){let R=Array.from(ue.segment(k));if(R.length>1)return n?h.cursor(t.head+R[1].index,-1):h.cursor(a.head+R[R.length-1].index,1)}}return a}function Re(e,t){return y(e,n=>n.empty?ve(e,n,t):M(n,t))}const Fn=e=>Re(e,!0),Gn=e=>Re(e,!1);function Lt(e,t,n){if(t.type.prop(n))return!0;let r=t.to-t.from;return r&&(r>2||/[^\s,.;:]/.test(e.sliceDoc(t.from,t.to)))||t.firstChild}function z(e,t,n){let r=te(e).resolveInner(t.head),l=n?Q.closedBy:Q.openedBy;for(let i=t.head;;){let f=n?r.childAfter(i):r.childBefore(i);if(!f)break;Lt(e,f,l)?r=f:i=n?f.to:f.from}let o=r.type.prop(l),s,c;return o&&(s=n?E(e,r.from,1):E(e,r.to,-1))&&s.matched?c=n?s.end.to:s.end.from:c=n?r.to:r.from,h.cursor(c,n?-1:1)}const Mt=e=>y(e,t=>z(e.state,t,!m(e))),bt=e=>y(e,t=>z(e.state,t,m(e)));function Fe(e,t){return y(e,n=>{if(!n.empty)return M(n,t);let r=e.moveVertically(n,t);return r.head!=n.head?r:e.moveToLineBoundary(n,t)})}const Ge=e=>Fe(e,!1),Ue=e=>Fe(e,!0);function Ve(e){let t=e.scrollDOM.clientHeight<e.scrollDOM.scrollHeight-2,n=0,r=0,l;if(t){for(let o of e.state.facet(O.scrollMargins)){let s=o(e);s?.top&&(n=Math.max(s?.top,n)),s?.bottom&&(r=Math.max(s?.bottom,r))}l=e.scrollDOM.clientHeight-n-r}else l=(e.dom.ownerDocument.defaultView||window).innerHeight;return{marginTop:n,marginBottom:r,selfScroll:t,height:Math.max(e.defaultLineHeight,l-5)}}function Ne(e,t){let n=Ve(e),{state:r}=e,l=I(r.selection,s=>s.empty?e.moveVertically(s,t,n.height):M(s,t));if(l.eq(r.selection))return!1;let o;if(n.selfScroll){let s=e.coordsAtPos(r.selection.main.head),c=e.scrollDOM.getBoundingClientRect(),i=c.top+n.marginTop,f=c.bottom-n.marginBottom;s&&s.top>i&&s.bottom<f&&(o=O.scrollIntoView(l.main.head,{y:"start",yMargin:s.top-i}))}return e.dispatch(S(r,l),{effects:o}),!0}const fe=e=>Ne(e,!1),_=e=>Ne(e,!0);function x(e,t,n){let r=e.lineBlockAt(t.head),l=e.moveToLineBoundary(t,n);if(l.head==t.head&&l.head!=(n?r.to:r.from)&&(l=e.moveToLineBoundary(t,n,!1)),!n&&l.head==r.from&&r.length){let o=/^\s*/.exec(e.state.sliceDoc(r.from,Math.min(r.from+100,r.to)))[0].length;o&&t.head!=r.from+o&&(l=h.cursor(r.from+o))}return l}const Et=e=>y(e,t=>x(e,t,!0)),Tt=e=>y(e,t=>x(e,t,!1)),Ot=e=>y(e,t=>x(e,t,!m(e))),It=e=>y(e,t=>x(e,t,m(e))),vt=e=>y(e,t=>h.cursor(e.lineBlockAt(t.head).from,1)),Rt=e=>y(e,t=>h.cursor(e.lineBlockAt(t.head).to,-1));function Pe(e,t,n){let r=!1,l=I(e.selection,o=>{let s=E(e,o.head,-1)||E(e,o.head,1)||o.head>0&&E(e,o.head-1,1)||o.head<e.doc.length&&E(e,o.head+1,-1);if(!s||!s.end)return o;r=!0;let c=s.start.from==o.head?s.end.to:s.end.from;return n?h.range(o.anchor,c):h.cursor(c)});return r?(t(S(e,l)),!0):!1}const Ft=({state:e,dispatch:t})=>Pe(e,t,!1),Un=({state:e,dispatch:t})=>Pe(e,t,!0);function p(e,t,n){let r=I(e.state.selection,l=>{l.undirectional&&l.head>=l.anchor!=t&&(l=h.range(l.head,l.anchor));let o=n(l);return h.range(l.anchor,o.head,o.goalColumn,o.bidiLevel||void 0,o.assoc)});return r.eq(e.state.selection)?!1:(e.dispatch(S(e.state,r)),!0)}function W(e,t){return p(e,t,n=>e.moveByChar(n,t))}const Je=e=>W(e,!m(e)),we=e=>W(e,m(e)),Vn=e=>W(e,!0),Nn=e=>W(e,!1),Pn=e=>p(e,!0,t=>oe(e.state,t,!0)),Jn=e=>p(e,!1,t=>oe(e.state,t,!1));function H(e,t){return p(e,t,n=>e.moveByGroup(n,t))}const Gt=e=>H(e,!m(e)),Ut=e=>H(e,m(e)),wn=e=>H(e,!0),zn=e=>H(e,!1),Wn=e=>p(e,!0,t=>e.moveByChar(t,!0,n=>le(e,t.head,n)));function ze(e,t){return p(e,t,n=>ve(e,n,t))}const Hn=e=>ze(e,!0),qn=e=>ze(e,!1),Vt=e=>{let t=!m(e);return p(e,t,n=>z(e.state,n,t))},Nt=e=>{let t=m(e);return p(e,t,n=>z(e.state,n,t))};function We(e,t){return p(e,t,n=>e.moveVertically(n,t))}const He=e=>We(e,!1),qe=e=>We(e,!0);function Ke(e,t){return p(e,t,n=>e.moveVertically(n,t,Ve(e).height))}const ae=e=>Ke(e,!1),he=e=>Ke(e,!0),Pt=e=>p(e,!0,t=>x(e,t,!0)),Jt=e=>p(e,!1,t=>x(e,t,!1)),wt=e=>{let t=!m(e);return p(e,t,n=>x(e,n,t))},zt=e=>{let t=m(e);return p(e,t,n=>x(e,n,t))},Wt=e=>p(e,!1,t=>h.cursor(e.lineBlockAt(t.head).from)),Ht=e=>p(e,!0,t=>h.cursor(e.lineBlockAt(t.head).to)),de=({state:e,dispatch:t})=>(t(S(e,{anchor:0})),!0),me=({state:e,dispatch:t})=>(t(S(e,{anchor:e.doc.length})),!0),pe=({state:e,dispatch:t})=>(t(S(e,{anchor:e.selection.main.anchor,head:0})),!0),ge=({state:e,dispatch:t})=>(t(S(e,{anchor:e.selection.main.anchor,head:e.doc.length})),!0),qt=({state:e,dispatch:t})=>(t(e.update({selection:{anchor:0,head:e.doc.length},userEvent:"select"})),!0),Kt=({state:e,dispatch:t})=>{let n=q(e).map(({from:r,to:l})=>h.range(r,Math.min(l+1,e.doc.length)));return t(e.update({selection:h.create(n),userEvent:"select"})),!0},$t=({state:e,dispatch:t})=>{let n=I(e.selection,r=>{let l=te(e),o=l.resolveStack(r.from,1);if(r.empty){let s=l.resolveStack(r.from,-1);s.node.from>=o.node.from&&s.node.to<=o.node.to&&(o=s)}for(let s=o;s;s=s.next){let{node:c}=s;if((c.from<r.from&&c.to>=r.to||c.to>r.to&&c.from<=r.from)&&s.next)return h.range(c.to,c.from)}return r});return n.eq(e.selection)?!1:(t(S(e,n)),!0)};function $e(e,t){let{state:n}=e,r=n.selection,l=n.selection.ranges.slice();for(let o of n.selection.ranges){let s=n.doc.lineAt(o.head);if(t?s.to<e.state.doc.length:s.from>0)for(let c=o;;){let i=e.moveVertically(c,t);if(i.head<s.from||i.head>s.to){l.some(f=>f.head==i.head)||l.push(i);break}else{if(i.head==c.head)break;c=i}}}return l.length==r.ranges.length?!1:(e.dispatch(S(n,h.create(l,l.length-1))),!0)}const Qt=e=>$e(e,!1),Xt=e=>$e(e,!0),Yt=({state:e,dispatch:t})=>{let n=e.selection,r=null;return n.ranges.length>1?r=h.create([n.main]):n.main.empty||(r=h.create([h.cursor(n.main.head)])),r?(t(S(e,r)),!0):!1};function b(e,t){if(e.state.readOnly)return!1;let n="delete.selection",{state:r}=e,l=r.changeByRange(o=>{let{from:s,to:c}=o;if(s==c){let i=t(o);i<s?(n="delete.backward",i=F(e,i,!1)):i>s&&(n="delete.forward",i=F(e,i,!0)),s=Math.min(s,i),c=Math.max(c,i)}else s=F(e,s,!1),c=F(e,c,!0);return s==c?{range:o}:{changes:{from:s,to:c},range:h.cursor(s,s<o.head?-1:1)}});return l.changes.empty?!1:(e.dispatch(r.update(l,{scrollIntoView:!0,userEvent:n,effects:n=="delete.selection"?O.announce.of(r.phrase("Selection deleted")):void 0})),!0)}function F(e,t,n){if(e instanceof O)for(let r of e.state.facet(O.atomicRanges).map(l=>l(e)))r.between(t,t,(l,o)=>{l<t&&o>t&&(t=n?o:l)});return t}const se=(e,t,n)=>b(e,r=>{let l=r.from,{state:o}=e,s=o.doc.lineAt(l),c,i;if(n&&!t&&l>s.from&&l<s.from+200&&!/[^ \t]/.test(c=s.text.slice(0,l-s.from))){if(c[c.length-1]==" ")return l-1;let f=ee(c,o.tabSize),u=f%X(o)||X(o);for(let a=0;a<u&&c[c.length-1-a]==" ";a++)l--;i=l}else i=T(s.text,l-s.from,t,t)+s.from,i==l&&s.number!=(t?o.doc.lines:1)?i+=t?1:-1:!t&&/[\ufe00-\ufe0f]/.test(s.text.slice(i-s.from,l-s.from))&&(i=T(s.text,i-s.from,!1,!1)+s.from);return i}),j=e=>se(e,!1,!0),Kn=e=>se(e,!1,!1),Qe=e=>se(e,!0,!1),Xe=(e,t)=>b(e,n=>{let r=n.head,{state:l}=e,o=l.doc.lineAt(r),s=l.charCategorizer(r);for(let c=null;;){if(r==(t?o.to:o.from)){r==n.head&&o.number!=(t?l.doc.lines:1)&&(r+=t?1:-1);break}let i=T(o.text,r-o.from,t)+o.from,f=o.text.slice(Math.min(r,i)-o.from,Math.max(r,i)-o.from),u=s(f);if(c!=null&&u!=c)break;(f!=" "||r!=n.head)&&(c=u),r=i}return r}),Ye=e=>Xe(e,!1),Zt=e=>Xe(e,!0),$n=e=>b(e,t=>e.moveByChar(t,!0,n=>le(e,t.head,n)).head),_t=e=>b(e,t=>{let n=e.lineBlockAt(t.head).to;return t.head<n?n:Math.min(e.state.doc.length,t.head+1)}),Qn=e=>b(e,t=>{let n=e.lineBlockAt(t.head).from;return t.head>n?n:Math.max(0,t.head-1)}),jt=e=>b(e,t=>{let n=e.moveToLineBoundary(t,!1).head;return t.head>n?n:Math.max(0,t.head-1)}),en=e=>b(e,t=>{let n=e.moveToLineBoundary(t,!0).head;return t.head<n?n:Math.min(e.state.doc.length,t.head+1)}),Xn=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=[];for(let r=0,l="",o=e.doc.iter();;){if(o.next(),o.lineBreak||o.done){let s=l.search(/\s+$/);if(s>-1&&n.push({from:r-(l.length-s),to:r}),o.done)break;l=""}else l=o.value;r+=o.value.length}return n.length?(t(e.update({changes:n,userEvent:"delete"})),!0):!1},tn=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=e.changeByRange(r=>({changes:{from:r.from,to:r.to,insert:ke.of(["",""])},range:h.cursor(r.from)}));return t(e.update(n,{scrollIntoView:!0,userEvent:"input"})),!0},nn=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=e.changeByRange(r=>{if(!r.empty||r.from==0||r.from==e.doc.length)return{range:r};let l=r.from,o=e.doc.lineAt(l),s=l==o.from?l-1:T(o.text,l-o.from,!1)+o.from,c=l==o.to?l+1:T(o.text,l-o.from,!0)+o.from;return{changes:{from:s,to:c,insert:e.doc.slice(l,c).append(e.doc.slice(s,l))},range:h.cursor(c)}});return n.changes.empty?!1:(t(e.update(n,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function q(e){let t=[],n=-1;for(let r of e.selection.ranges){let l=e.doc.lineAt(r.from),o=e.doc.lineAt(r.to);if(!r.empty&&r.to==o.from&&(o=e.doc.lineAt(r.to-1)),n>=l.number){let s=t[t.length-1];s.to=o.to,s.ranges.push(r)}else t.push({from:l.from,to:o.to,ranges:[r]});n=o.number+1}return t}function Ze(e,t,n){if(e.readOnly)return!1;let r=[],l=[];for(let o of q(e)){if(n?o.to==e.doc.length:o.from==0)continue;let s=e.doc.lineAt(n?o.to+1:o.from-1),c=s.length+1;if(n){r.push({from:o.to,to:s.to},{from:o.from,insert:s.text+e.lineBreak});for(let i of o.ranges)l.push(h.range(Math.min(e.doc.length,i.anchor+c),Math.min(e.doc.length,i.head+c)))}else{r.push({from:s.from,to:o.from},{from:o.to,insert:e.lineBreak+s.text});for(let i of o.ranges)l.push(h.range(i.anchor-c,i.head-c))}}return r.length?(t(e.update({changes:r,scrollIntoView:!0,selection:h.create(l,e.selection.mainIndex),userEvent:"move.line"})),!0):!1}const rn=({state:e,dispatch:t})=>Ze(e,t,!1),on=({state:e,dispatch:t})=>Ze(e,t,!0);function _e(e,t,n){if(e.readOnly)return!1;let r=[];for(let o of q(e))n?r.push({from:o.from,insert:e.doc.slice(o.from,o.to)+e.lineBreak}):r.push({from:o.to,insert:e.lineBreak+e.doc.slice(o.from,o.to)});let l=e.changes(r);return t(e.update({changes:l,selection:e.selection.map(l,n?1:-1),scrollIntoView:!0,userEvent:"input.copyline"})),!0}const ln=({state:e,dispatch:t})=>_e(e,t,!1),sn=({state:e,dispatch:t})=>_e(e,t,!0),cn=e=>{if(e.state.readOnly)return!1;let{state:t}=e,n=t.changes(q(t).map(({from:l,to:o})=>(l>0?l--:o<t.doc.length&&o++,{from:l,to:o}))),r=I(t.selection,l=>{let o;if(e.lineWrapping){let s=e.lineBlockAt(l.head),c=e.coordsAtPos(l.head,l.assoc||1);c&&(o=s.bottom+e.documentTop-c.bottom+e.defaultLineHeight/2)}return e.moveVertically(l,!0,o)}).map(n);return e.dispatch({changes:n,selection:r,scrollIntoView:!0,userEvent:"delete.line"}),!0},Yn=({state:e,dispatch:t})=>(t(e.update(e.replaceSelection(e.lineBreak),{scrollIntoView:!0,userEvent:"input"})),!0),Zn=({state:e,dispatch:t})=>(t(e.update(e.changeByRange(n=>{let r=/^\s*/.exec(e.doc.lineAt(n.from).text)[0];return{changes:{from:n.from,to:n.to,insert:e.lineBreak+r},range:h.cursor(n.from+r.length+1)}}),{scrollIntoView:!0,userEvent:"input"})),!0);function un(e,t){if(/\(\)|\[\]|\{\}/.test(e.sliceDoc(t-1,t+1)))return{from:t,to:t};let n=te(e).resolveInner(t),r=n.childBefore(t),l=n.childAfter(t),o;return r&&l&&r.to<=t&&l.from>=t&&(o=r.type.prop(Q.closedBy))&&o.indexOf(l.name)>-1&&e.doc.lineAt(r.to).from==e.doc.lineAt(l.from).from&&!/\S/.test(e.sliceDoc(r.to,l.from))?{from:r.to,to:l.from}:null}const ye=je(!1),fn=je(!0);function je(e){return({state:t,dispatch:n})=>{if(t.readOnly)return!1;let r=t.changeByRange(l=>{let{from:o,to:s}=l,c=t.doc.lineAt(o),i=!e&&o==s&&un(t,o);e&&(o=s=(s<=c.to?c:t.doc.lineAt(s)).to);let f=new Ce(t,{simulateBreak:o,simulateDoubleBreak:!!i}),u=De(f,o);for(u==null&&(u=ee(/^\s*/.exec(t.doc.lineAt(o).text)[0],t.tabSize));s<c.to&&/\s/.test(c.text[s-c.from]);)s++;i?{from:o,to:s}=i:o>c.from&&o<c.from+100&&!/\S/.test(c.text.slice(0,o))&&(o=c.from);let a=["",G(t,u)];return i&&a.push(G(t,f.lineIndent(c.from,-1))),{changes:{from:o,to:s,insert:ke.of(a)},range:h.cursor(o+1+a[1].length)}});return n(t.update(r,{scrollIntoView:!0,userEvent:"input"})),!0}}function ce(e,t){let n=-1;return e.changeByRange(r=>{let l=[];for(let s=r.from;s<=r.to;){let c=e.doc.lineAt(s);c.number>n&&(r.empty||r.to>c.from)&&(t(c,l,r),n=c.number),s=c.to+1}let o=e.changes(l);return{changes:l,range:h.range(o.mapPos(r.anchor,1),o.mapPos(r.head,1))}})}const an=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=Object.create(null),r=new Ce(e,{overrideIndentation:o=>{let s=n[o];return s??-1}}),l=ce(e,(o,s,c)=>{let i=De(r,o.from);if(i==null)return;/\S/.test(o.text)||(i=0);let f=/^\s*/.exec(o.text)[0],u=G(e,i);(f!=u||c.from<o.from+f.length)&&(n[o.from]=i,s.push({from:o.from,to:o.from+f.length,insert:u}))});return l.changes.empty||t(e.update(l,{userEvent:"indent"})),!0},ie=({state:e,dispatch:t})=>e.readOnly?!1:(t(e.update(ce(e,(n,r)=>{r.push({from:n.from,insert:e.facet(st)})}),{userEvent:"input.indent"})),!0),et=({state:e,dispatch:t})=>e.readOnly?!1:(t(e.update(ce(e,(n,r)=>{let l=/^\s*/.exec(n.text)[0];if(!l)return;let o=ee(l,e.tabSize),s=0,c=G(e,Math.max(0,o-X(e)));for(;s<l.length&&s<c.length&&l.charCodeAt(s)==c.charCodeAt(s);)s++;r.push({from:n.from+s,to:n.from+l.length,insert:c.slice(s)})}),{userEvent:"delete.dedent"})),!0),hn=e=>(e.setTabFocusMode(),!0),_n=e=>(e.setTabFocusMode(2e3),!0),jn=({state:e,dispatch:t})=>e.selection.ranges.some(n=>!n.empty)?ie({state:e,dispatch:t}):(t(e.update(e.replaceSelection(" "),{scrollIntoView:!0,userEvent:"input"})),!0),dn=[{key:"Ctrl-b",run:Te,shift:Je,preventDefault:!0},{key:"Ctrl-f",run:Oe,shift:we},{key:"Ctrl-p",run:Ge,shift:He},{key:"Ctrl-n",run:Ue,shift:qe},{key:"Ctrl-a",run:vt,shift:Wt},{key:"Ctrl-e",run:Rt,shift:Ht},{key:"Ctrl-d",run:Qe},{key:"Ctrl-h",run:j},{key:"Ctrl-k",run:_t},{key:"Ctrl-Alt-h",run:Ye},{key:"Ctrl-o",run:tn},{key:"Ctrl-t",run:nn},{key:"Ctrl-v",run:_}],mn=[{key:"ArrowLeft",run:Te,shift:Je,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:Dt,shift:Gt,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:Ot,shift:wt,preventDefault:!0},{key:"ArrowRight",run:Oe,shift:we,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:xt,shift:Ut,preventDefault:!0},{mac:"Cmd-ArrowRight",run:It,shift:zt,preventDefault:!0},{key:"ArrowUp",run:Ge,shift:He,preventDefault:!0},{mac:"Cmd-ArrowUp",run:de,shift:pe},{mac:"Ctrl-ArrowUp",run:fe,shift:ae},{key:"ArrowDown",run:Ue,shift:qe,preventDefault:!0},{mac:"Cmd-ArrowDown",run:me,shift:ge},{mac:"Ctrl-ArrowDown",run:_,shift:he},{key:"PageUp",run:fe,shift:ae},{key:"PageDown",run:_,shift:he},{key:"Home",run:Tt,shift:Jt,preventDefault:!0},{key:"Mod-Home",run:de,shift:pe},{key:"End",run:Et,shift:Pt,preventDefault:!0},{key:"Mod-End",run:me,shift:ge},{key:"Enter",run:ye,shift:ye},{key:"Mod-a",run:qt},{key:"Backspace",run:j,shift:j,preventDefault:!0},{key:"Delete",run:Qe,preventDefault:!0},{key:"Mod-Backspace",mac:"Alt-Backspace",run:Ye,preventDefault:!0},{key:"Mod-Delete",mac:"Alt-Delete",run:Zt,preventDefault:!0},{mac:"Mod-Backspace",run:jt,preventDefault:!0},{mac:"Mod-Delete",run:en,preventDefault:!0}].concat(dn.map(e=>({mac:e.key,run:e.run,shift:e.shift}))),er=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:Mt,shift:Vt},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:bt,shift:Nt},{key:"Alt-ArrowUp",run:rn},{key:"Shift-Alt-ArrowUp",run:ln},{key:"Alt-ArrowDown",run:on},{key:"Shift-Alt-ArrowDown",run:sn},{key:"Mod-Alt-ArrowUp",run:Qt},{key:"Mod-Alt-ArrowDown",run:Xt},{key:"Escape",run:Yt},{key:"Mod-Enter",run:fn},{key:"Alt-l",mac:"Ctrl-l",run:Kt},{key:"Mod-i",run:$t,preventDefault:!0},{key:"Mod-[",run:et},{key:"Mod-]",run:ie},{key:"Mod-Alt-\\",run:an},{key:"Shift-Mod-k",run:cn},{key:"Shift-Mod-\\",run:Ft},{key:"Mod-/",run:ct},{key:"Alt-A",run:ut},{key:"Ctrl-m",mac:"Shift-Alt-m",run:hn}].concat(mn),tr={key:"Tab",run:ie,shift:et};export{Qt as addCursorAbove,Xt as addCursorBelow,Bn as blockComment,Sn as blockUncomment,sn as copyLineDown,ln as copyLineUp,En as cursorCharBackward,On as cursorCharBackwardLogical,bn as cursorCharForward,Tn as cursorCharForwardLogical,Te as cursorCharLeft,Oe as cursorCharRight,me as cursorDocEnd,de as cursorDocStart,vn as cursorGroupBackward,In as cursorGroupForward,Rn as cursorGroupForwardWin,Dt as cursorGroupLeft,xt as cursorGroupRight,Tt as cursorLineBoundaryBackward,Et as cursorLineBoundaryForward,Ot as cursorLineBoundaryLeft,It as cursorLineBoundaryRight,Ue as cursorLineDown,Rt as cursorLineEnd,vt as cursorLineStart,Ge as cursorLineUp,Ft as cursorMatchingBracket,_ as cursorPageDown,fe as cursorPageUp,Gn as cursorSubwordBackward,Fn as cursorSubwordForward,Mt as cursorSyntaxLeft,bt as cursorSyntaxRight,er as defaultKeymap,j as deleteCharBackward,Kn as deleteCharBackwardStrict,Qe as deleteCharForward,Ye as deleteGroupBackward,Zt as deleteGroupForward,$n as deleteGroupForwardWin,cn as deleteLine,jt as deleteLineBoundaryBackward,en as deleteLineBoundaryForward,_t as deleteToLineEnd,Qn as deleteToLineStart,Xn as deleteTrailingWhitespace,dn as emacsStyleKeymap,Cn as history,Dn as historyField,Mn as historyKeymap,et as indentLess,ie as indentMore,an as indentSelection,tr as indentWithTab,fn as insertBlankLine,Yn as insertNewline,ye as insertNewlineAndIndent,Zn as insertNewlineKeepIndent,jn as insertTab,mt as invertedEffects,dt as isolateHistory,kn as lineComment,An as lineUncomment,on as moveLineDown,rn as moveLineUp,Z as redo,Ln as redoDepth,gt as redoSelection,qt as selectAll,Nn as selectCharBackward,Jn as selectCharBackwardLogical,Vn as selectCharForward,Pn as selectCharForwardLogical,Je as selectCharLeft,we as selectCharRight,ge as selectDocEnd,pe as selectDocStart,zn as selectGroupBackward,wn as selectGroupForward,Wn as selectGroupForwardWin,Gt as selectGroupLeft,Ut as selectGroupRight,Kt as selectLine,Jt as selectLineBoundaryBackward,Pt as selectLineBoundaryForward,wt as selectLineBoundaryLeft,zt as selectLineBoundaryRight,qe as selectLineDown,Ht as selectLineEnd,Wt as selectLineStart,He as selectLineUp,Un as selectMatchingBracket,he as selectPageDown,ae as selectPageUp,$t as selectParentSyntax,qn as selectSubwordBackward,Hn as selectSubwordForward,Vt as selectSyntaxLeft,Nt as selectSyntaxRight,Yt as simplifySelection,tn as splitLine,mn as standardKeymap,_n as temporarilySetTabFocusMode,ut as toggleBlockComment,ft as toggleBlockCommentByLine,ct as toggleComment,it as toggleLineComment,hn as toggleTabFocusMode,nn as transposeChars,Le as undo,xn as undoDepth,pt as undoSelection};
|