@vgai/editor 0.4.0 → 0.4.1
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/dist/assets/{axe-BJjvBeOZ.js → axe-N4cNyzfs.js} +1 -1
- package/dist/assets/{browserAll-Dn0pgD87.js → browserAll-BIBT0Z2H.js} +1 -1
- package/dist/assets/{create-runtime-BF9OD-U8.js → create-runtime-DxLhdk4U.js} +1 -1
- package/dist/assets/{game-u6c2Patu.js → game-4NbNRROm.js} +1 -1
- package/dist/assets/{game-umrHIqFB.js → game-B3UH5LjS.js} +1 -1
- package/dist/assets/{game-BR0GBNgF.js → game-ByxRLJi1.js} +1 -1
- package/dist/assets/{game-DeTGdgYt.js → game-CJ5BqOYG.js} +1 -1
- package/dist/assets/{game-DQxhCYsZ.js → game-CSJm1kwB.js} +1 -1
- package/dist/assets/{game-CLNm2g0y.js → game-D9Mo4L3Q.js} +1 -1
- package/dist/assets/{game-B346oj_f.js → game-DJmU9BQF.js} +1 -1
- package/dist/assets/{game-BCNN63uV.js → game-ZqGLgxRj.js} +1 -1
- package/dist/assets/{game-loop-t5W_oqxz.js → game-loop-9YP76JB1.js} +1 -1
- package/dist/assets/{game-source-DzE9taML.js → game-source-DLKG9pmj.js} +1 -1
- package/dist/assets/{index-DbQzGLxv.js → index-8A4JLNIp.js} +902 -892
- package/dist/assets/{index-CgcH1RpF.js → index-Brzr17q0.js} +1 -1
- package/dist/assets/{index-D3tcNB2T.js → index-CnKtvrru.js} +1 -1
- package/dist/assets/{index-Fc8Ezr20.js → index-D-WR11Jw.js} +1 -1
- package/dist/assets/index-DiUacMXR.css +1 -0
- package/dist/assets/{ingest-siblings-CW_xbvrF.js → ingest-siblings-Cmx39OBK.js} +1 -1
- package/dist/assets/{mount-manifest-DgUscyaD.js → mount-manifest-kzdZgkkc.js} +1 -1
- package/dist/assets/{react-18-C4tVCii_.js → react-18-DvWsdwa_.js} +1 -1
- package/dist/assets/webworkerAll-C9GR-KrR.js +1 -0
- package/dist/assets/{world-documents-BSaA5YIF.js → world-documents-DM_aIMAW.js} +1 -1
- package/dist/index.html +2 -2
- package/dist-server/packaged.mjs +27125 -1075
- package/package.json +2 -2
- package/server/asset-history-snapshots.ts +189 -0
- package/server/asset-library-routes.ts +404 -53
- package/server/catalog-import-recipe.ts +97 -0
- package/server/catalog-reimport.ts +141 -0
- package/server/cloud-asset-catalog.ts +71 -5
- package/server/dev.ts +1 -1
- package/server/editor-server.ts +106 -51
- package/server/editor-sse.ts +5 -0
- package/server/generative-execution-context.ts +45 -0
- package/server/model-import-conversion.ts +345 -0
- package/server/packaged.ts +1 -1
- package/server/project-hmr-files.ts +3 -5
- package/server/project-output-writer.ts +440 -36
- package/server/project-tools.ts +529 -0
- package/server/server-utils.ts +14 -11
- package/src/EditorContext.tsx +4 -4
- package/src/action-registry.ts +12 -0
- package/src/asset-editor-context.tsx +9 -0
- package/src/asset-events.ts +3 -15
- package/src/asset-selection.ts +3 -0
- package/src/asset-workflow/asset-capabilities.ts +40 -0
- package/src/asset-workflow/asset-import-jobs.ts +108 -0
- package/src/asset-workflow/asset-library-query.ts +8 -1
- package/src/asset-workflow/asset-workflow-quality.ts +2 -0
- package/src/asset-workflow/import-contract.ts +2 -0
- package/src/asset-workflow/model-inspection.ts +92 -1
- package/src/asset-workflow/preview-resource-lifetime.ts +44 -0
- package/src/asset-workflow/project-asset-commands.ts +1 -0
- package/src/asset-workflow/project-asset-health.ts +3 -6
- package/src/asset-workflow/project-asset-operations.ts +119 -4
- package/src/command-listener.ts +37 -9
- package/src/components/ApplicationMenus.tsx +13 -15
- package/src/components/AssetBrowser.tsx +301 -26
- package/src/components/AssetImportDetails.tsx +207 -92
- package/src/components/AssetImportJobStatus.tsx +55 -0
- package/src/components/CenterDocuments.tsx +28 -1
- package/src/components/CommandPalette.tsx +2 -2
- package/src/components/DefaultEditorLayout.tsx +4 -0
- package/src/components/InspectorToolSection.tsx +12 -10
- package/src/components/OnlineAssetBrowser.tsx +197 -11
- package/src/components/ToolHost.tsx +8 -8
- package/src/components/ViewportOverlay.tsx +13 -26
- package/src/components/ViewportPanel.tsx +19 -14
- package/src/components/ViewportShadingMenu.tsx +103 -0
- package/src/components/WorkspaceDock.tsx +103 -17
- package/src/components/asset-documents.tsx +38 -11
- package/src/components/asset-editor-persistence.ts +300 -5
- package/src/components/asset-selection-section.tsx +83 -9
- package/src/components/asset-viewers/AudioViewer.tsx +4 -7
- package/src/components/asset-viewers/ModelViewer.tsx +168 -5
- package/src/components/asset-viewers/OnlineAssetDetail.tsx +52 -12
- package/src/components/asset-viewers/SourceAssetViewer.tsx +7 -26
- package/src/components/asset-workflow.css +30 -3
- package/src/components/primitives/editor-icons.ts +1 -0
- package/src/components/project-tool-documents.tsx +298 -0
- package/src/components/status-contributions.tsx +38 -0
- package/src/components/tool-documents.tsx +20 -17
- package/src/components/tool-schema-form.tsx +258 -0
- package/src/components/workspace-dock.css +16 -0
- package/src/editor-api.ts +159 -22
- package/src/editor-store.ts +6 -5
- package/src/editor-viewport.ts +12 -7
- package/src/game-viewport-state.ts +28 -0
- package/src/model-thumbnail.ts +97 -9
- package/src/play-mode.ts +30 -3
- package/src/project-tool-discovery.ts +5 -5
- package/src/{project-operations.ts → project-tools.ts} +39 -26
- package/src/scene-sync.ts +0 -67
- package/src/storage/handle-storage.ts +5 -1
- package/src/storage/http-storage.ts +7 -2
- package/src/storage/mem-storage.ts +7 -1
- package/src/storage/types.ts +2 -0
- package/src/theme-css.ts +17 -7
- package/src/tool-loader.ts +152 -241
- package/src/viewport-shading-boundary.ts +15 -0
- package/src/widgets/index.ts +2 -1
- package/src/workspace-dock-controller.ts +8 -0
- package/src/workspace-document-registry.ts +4 -4
- package/src/workspace-state-persistence.ts +36 -10
- package/template/.claude/skills/editor/SKILL.md +13 -3
- package/template/AGENTS.md +100 -83
- package/template/package.json +16 -0
- package/template/public/scenes/default.vscn.json +1 -2
- package/template/scripts/playtest.ts +7 -37
- package/template/server/rooms/game-room.ts +2 -2
- package/template/src/data/README.md +3 -2
- package/template/src/data/tuning.data.json +1 -3
- package/template/src/data/tuning.schema.json +0 -12
- package/template/src/data/tuning.schema.ts +2 -9
- package/template/src/data/tuning.ts +1 -1
- package/template/src/scripts/registry.ts +0 -3
- package/template/src/tools/README.md +151 -16
- package/template/src/tools/autoplay.tool.ts +31 -0
- package/template/src/tools/autoplay.ts +15 -0
- package/template/src/tools/tuning.document.tsx +107 -0
- package/template/src/tools/tuning.tool.ts +24 -0
- package/template/src/tools/tuning.ts +9 -0
- package/template/src/ui/Button.stories.tsx +1 -1
- package/template/tests/acceptance/example.spec.ts +4 -59
- package/template/vgai.game.json +1 -1
- package/dist/assets/index-bAGhEnnO.css +0 -1
- package/dist/assets/webworkerAll-BA4aq7xq.js +0 -1
- package/dist/project-scripts.bundle.js +0 -3917
- package/server/project-operations.ts +0 -343
- package/src/components/project-operation-documents.tsx +0 -226
- package/template/src/operations/README.md +0 -88
- package/template/src/scripts/components/data-spinner.ts +0 -86
- package/template/src/scripts/components/spin-lap-math.ts +0 -27
- package/template/src/tools/example.tool.tsx +0 -97
- package/template/src/tools/spin.tool.tsx +0 -101
- package/template/tests/logic/example.test.ts +0 -31
|
@@ -1 +1 @@
|
|
|
1
|
-
import{bl as S,bm as v,bn as U,bo as F,bp as j,bq as q,br as T,ag as H}from"./index-DbQzGLxv.js";let B;function N(s){return B=s,s}function l(){return B}class y{constructor(e,t){this.init(e,t)}init(e,t){this.destination=e,this.source=t||e}connect(e){this.source?.connect(e)}disconnect(){this.source?.disconnect()}destroy(){this.disconnect(),this.destination=null,this.source=null}}class z extends y{constructor(e=0){let t;if(!l().useLegacy){const{audioContext:i}=l().context;t=i.createWaveShaper()}super(t),this._distortion=t,this.amount=e}set amount(e){if(this._amount=e,l().useLegacy)return;const t=e*1e3,i=44100,n=new Float32Array(i),o=Math.PI/180;let r=0,a;for(;r<i;++r)a=r*2/i-1,n[r]=(3+t)*a*20*o/(Math.PI+t*Math.abs(a));this._distortion.curve=n,this._distortion.oversample="4x"}get amount(){return this._amount}destroy(){this._distortion=null,super.destroy()}}class _{static setParamValue(e,t){if(e.setValueAtTime){const i=l().context;e.setValueAtTime(t,i.audioContext.currentTime)}else e.value=t;return t}}const u=class extends y{constructor(s=0,e=0,t=0,i=0,n=0,o=0,r=0,a=0,h=0,d=0){let c=[];const g=[{f:u.F32,type:"lowshelf",gain:s},{f:u.F64,type:"peaking",gain:e},{f:u.F125,type:"peaking",gain:t},{f:u.F250,type:"peaking",gain:i},{f:u.F500,type:"peaking",gain:n},{f:u.F1K,type:"peaking",gain:o},{f:u.F2K,type:"peaking",gain:r},{f:u.F4K,type:"peaking",gain:a},{f:u.F8K,type:"peaking",gain:h},{f:u.F16K,type:"highshelf",gain:d}];l().useLegacy||(c=g.map(f=>{const p=l().context.audioContext.createBiquadFilter();return p.type=f.type,_.setParamValue(p.Q,1),p.frequency.value=f.f,_.setParamValue(p.gain,f.gain),p})),super(c[0],c[c.length-1]),this.bands=c,this.bandsMap={};for(let f=0;f<this.bands.length;f++){const p=this.bands[f];f>0&&this.bands[f-1].connect(p),this.bandsMap[p.frequency.value]=p}}setGain(s,e=0){if(!this.bandsMap[s])throw new Error(`No band found for frequency ${s}`);_.setParamValue(this.bandsMap[s].gain,e)}getGain(s){if(!this.bandsMap[s])throw new Error(`No band found for frequency ${s}`);return this.bandsMap[s].gain.value}set f32(s){this.setGain(u.F32,s)}get f32(){return this.getGain(u.F32)}set f64(s){this.setGain(u.F64,s)}get f64(){return this.getGain(u.F64)}set f125(s){this.setGain(u.F125,s)}get f125(){return this.getGain(u.F125)}set f250(s){this.setGain(u.F250,s)}get f250(){return this.getGain(u.F250)}set f500(s){this.setGain(u.F500,s)}get f500(){return this.getGain(u.F500)}set f1k(s){this.setGain(u.F1K,s)}get f1k(){return this.getGain(u.F1K)}set f2k(s){this.setGain(u.F2K,s)}get f2k(){return this.getGain(u.F2K)}set f4k(s){this.setGain(u.F4K,s)}get f4k(){return this.getGain(u.F4K)}set f8k(s){this.setGain(u.F8K,s)}get f8k(){return this.getGain(u.F8K)}set f16k(s){this.setGain(u.F16K,s)}get f16k(){return this.getGain(u.F16K)}reset(){this.bands.forEach(s=>{_.setParamValue(s.gain,0)})}destroy(){this.bands.forEach(s=>{s.disconnect()}),this.bands=null,this.bandsMap=null}};let m=u;m.F32=32;m.F64=64;m.F125=125;m.F250=250;m.F500=500;m.F1K=1e3;m.F2K=2e3;m.F4K=4e3;m.F8K=8e3;m.F16K=16e3;class Q extends y{constructor(){let e,t;if(!l().useLegacy){const{audioContext:i}=l().context;t=i.createChannelSplitter(),e=i.createChannelMerger(),e.connect(t)}super(e,t),this._merger=e}destroy(){this._merger?.disconnect(),this._merger=null,super.destroy()}}class W extends y{constructor(e=3,t=2,i=!1){super(null),this._seconds=this._clamp(e,1,50),this._decay=this._clamp(t,0,100),this._reverse=i,this._rebuild()}_clamp(e,t,i){return Math.min(i,Math.max(t,e))}get seconds(){return this._seconds}set seconds(e){this._seconds=this._clamp(e,1,50),this._rebuild()}get decay(){return this._decay}set decay(e){this._decay=this._clamp(e,0,100),this._rebuild()}get reverse(){return this._reverse}set reverse(e){this._reverse=e,this._rebuild()}_rebuild(){if(l().useLegacy)return;const{audioContext:e}=l().context,t=e.sampleRate,i=t*this._seconds,n=e.createBuffer(2,i,t),o=n.getChannelData(0),r=n.getChannelData(1);let a;for(let d=0;d<i;d++)a=this._reverse?i-d:d,o[d]=(Math.random()*2-1)*Math.pow(1-a/i,this._decay),r[d]=(Math.random()*2-1)*Math.pow(1-a/i,this._decay);const h=e.createConvolver();h.buffer=n,this.init(h)}}class Y extends y{constructor(e=0){let t,i,n;if(!l().useLegacy){const{audioContext:o}=l().context;o.createStereoPanner?(t=o.createStereoPanner(),n=t):(i=o.createPanner(),i.panningModel="equalpower",n=i)}super(n),this._stereo=t,this._panner=i,this.pan=e}set pan(e){this._pan=e,this._stereo?_.setParamValue(this._stereo.pan,e):this._panner&&this._panner.setPosition(e,0,1-Math.abs(e))}get pan(){return this._pan}destroy(){super.destroy(),this._stereo=null,this._panner=null}}class Z extends y{constructor(){let e,t;if(!l().useLegacy){const{audioContext:i}=l().context;e=i.createMediaStreamDestination(),t=i.createMediaStreamSource(e.stream)}super(e,t),this._stream=e?.stream}get stream(){return this._stream}destroy(){this._stream=null,super.destroy()}}class J extends y{constructor(){let e,t;if(!l().useLegacy){const{audioContext:i}=l().context,n=i.createBiquadFilter(),o=i.createBiquadFilter(),r=i.createBiquadFilter(),a=i.createBiquadFilter();n.type="lowpass",_.setParamValue(n.frequency,2e3),o.type="lowpass",_.setParamValue(o.frequency,2e3),r.type="highpass",_.setParamValue(r.frequency,500),a.type="highpass",_.setParamValue(a.frequency,500),n.connect(o),o.connect(r),r.connect(a),e=n,t=a}super(e,t)}}const ue=Object.freeze(Object.defineProperty({__proto__:null,DistortionFilter:z,EqualizerFilter:m,Filter:y,MonoFilter:Q,ReverbFilter:W,StereoFilter:Y,StreamFilter:Z,TelephoneFilter:J},Symbol.toStringTag,{value:"Module"}));class I extends S{constructor(){super(...arguments),this.speed=1,this.muted=!1,this.volume=1,this.paused=!1}refresh(){this.emit("refresh")}refreshPaused(){this.emit("refreshPaused")}get filters(){return console.warn("HTML Audio does not support filters"),null}set filters(e){console.warn("HTML Audio does not support filters")}get audioContext(){return console.warn("HTML Audio does not support audioContext"),null}toggleMute(){return this.muted=!this.muted,this.refresh(),this.muted}togglePause(){return this.paused=!this.paused,this.refreshPaused(),this.paused}destroy(){this.removeAllListeners()}}let X=0;const C=class extends S{constructor(s){super(),this.id=X++,this.init(s)}set(s,e){if(this[s]===void 0)throw new Error(`Property with name ${s} does not exist.`);switch(s){case"speed":this.speed=e;break;case"volume":this.volume=e;break;case"paused":this.paused=e;break;case"loop":this.loop=e;break;case"muted":this.muted=e;break}return this}get progress(){const{currentTime:s}=this._source;return s/this._duration}get paused(){return this._paused}set paused(s){this._paused=s,this.refreshPaused()}_onPlay(){this._playing=!0}_onPause(){this._playing=!1}init(s){this._playing=!1,this._duration=s.source.duration;const e=this._source=s.source.cloneNode(!1);e.src=s.parent.url,e.onplay=this._onPlay.bind(this),e.onpause=this._onPause.bind(this),s.context.on("refresh",this.refresh,this),s.context.on("refreshPaused",this.refreshPaused,this),this._media=s}_internalStop(){this._source&&this._playing&&(this._source.onended=null,this._source.pause())}stop(){this._internalStop(),this._source&&this.emit("stop")}get speed(){return this._speed}set speed(s){this._speed=s,this.refresh()}get volume(){return this._volume}set volume(s){this._volume=s,this.refresh()}get loop(){return this._loop}set loop(s){this._loop=s,this.refresh()}get muted(){return this._muted}set muted(s){this._muted=s,this.refresh()}get filters(){return console.warn("HTML Audio does not support filters"),null}set filters(s){console.warn("HTML Audio does not support filters")}refresh(){const s=this._media.context,e=this._media.parent;this._source.loop=this._loop||e.loop;const t=s.volume*(s.muted?0:1),i=e.volume*(e.muted?0:1),n=this._volume*(this._muted?0:1);this._source.volume=n*t*i,this._source.playbackRate=this._speed*s.speed*e.speed}refreshPaused(){const s=this._media.context,e=this._media.parent,t=this._paused||e.paused||s.paused;t!==this._pausedReal&&(this._pausedReal=t,t?(this._internalStop(),this.emit("paused")):(this.emit("resumed"),this.play({start:this._source.currentTime,end:this._end,volume:this._volume,speed:this._speed,loop:this._loop})),this.emit("pause",t))}play(s){const{start:e,end:t,speed:i,loop:n,volume:o,muted:r}=s;t&&console.assert(t>e,"End time is before start time"),this._speed=i,this._volume=o,this._loop=!!n,this._muted=r,this.refresh(),this.loop&&t!==null&&(console.warn('Looping not support when specifying an "end" time'),this.loop=!1),this._start=e,this._end=t||this._duration,this._start=Math.max(0,this._start-C.PADDING),this._end=Math.min(this._end+C.PADDING,this._duration),this._source.onloadedmetadata=()=>{this._source&&(this._source.currentTime=e,this._source.onloadedmetadata=null,this.emit("progress",e/this._duration,this._duration),v.shared.add(this._onUpdate,this))},this._source.onended=this._onComplete.bind(this),this._source.play(),this.emit("start")}_onUpdate(){this.emit("progress",this.progress,this._duration),this._source.currentTime>=this._end&&!this._source.loop&&this._onComplete()}_onComplete(){v.shared.remove(this._onUpdate,this),this._internalStop(),this.emit("progress",1,this._duration),this.emit("end",this)}destroy(){v.shared.remove(this._onUpdate,this),this.removeAllListeners();const s=this._source;s&&(s.onended=null,s.onplay=null,s.onpause=null,this._internalStop()),this._source=null,this._speed=1,this._volume=1,this._loop=!1,this._end=null,this._start=0,this._duration=0,this._playing=!1,this._pausedReal=!1,this._paused=!1,this._muted=!1,this._media&&(this._media.context.off("refresh",this.refresh,this),this._media.context.off("refreshPaused",this.refreshPaused,this),this._media=null)}toString(){return`[HTMLAudioInstance id=${this.id}]`}};let E=C;E.PADDING=.1;class G extends S{init(e){this.parent=e,this._source=e.options.source||new Audio,e.url&&(this._source.src=e.url)}create(){return new E(this)}get isPlayable(){return!!this._source&&this._source.readyState===4}get duration(){return this._source.duration}get context(){return this.parent.context}get filters(){return null}set filters(e){console.warn("HTML Audio does not support filters")}destroy(){this.removeAllListeners(),this.parent=null,this._source&&(this._source.src="",this._source.load(),this._source=null)}get source(){return this._source}load(e){const t=this._source,i=this.parent;if(t.readyState===4){i.isLoaded=!0;const h=i.autoPlayStart();e&&setTimeout(()=>{e(null,i,h)},0);return}if(!i.url){e(new Error("sound.url or sound.source must be set"));return}t.src=i.url;const n=()=>{a(),i.isLoaded=!0;const h=i.autoPlayStart();e&&e(null,i,h)},o=()=>{a(),e&&e(new Error("Sound loading has been aborted"))},r=()=>{a();const h=`Failed to load audio element (code: ${t.error.code})`;e?e(new Error(h)):console.error(h)},a=()=>{t.removeEventListener("canplaythrough",n),t.removeEventListener("load",n),t.removeEventListener("abort",o),t.removeEventListener("error",r)};t.addEventListener("canplaythrough",n,!1),t.addEventListener("load",n,!1),t.addEventListener("abort",o,!1),t.addEventListener("error",r,!1),t.load()}}const he=Object.freeze(Object.defineProperty({__proto__:null,HTMLAudioContext:I,HTMLAudioInstance:E,HTMLAudioMedia:G},Symbol.toStringTag,{value:"Module"}));class ee{constructor(e,t){this.parent=e,Object.assign(this,t),this.duration=this.end-this.start,console.assert(this.duration>0,"End time must be after start time")}play(e){return this.parent.play({complete:e,speed:this.speed||this.parent.speed,end:this.end,start:this.start,loop:this.loop})}destroy(){this.parent=null}}const P=["ogg","oga","opus","m4a","mp3","mpeg","wav","aiff","wma","mid","caf"],O=["audio/mpeg","audio/ogg"],A={};function R(s){const e={m4a:"audio/mp4",oga:"audio/ogg",opus:'audio/ogg; codecs="opus"',caf:'audio/x-caf; codecs="opus"',...s||{}},t=document.createElement("audio"),i={},n=/^no$/;P.forEach(o=>{const r=t.canPlayType(`audio/${o}`).replace(n,""),a=e[o]?t.canPlayType(e[o]).replace(n,""):"";i[o]=!!r||!!a}),Object.assign(A,i)}R();let te=0;class V extends S{constructor(e){super(),this.id=te++,this._media=null,this._paused=!1,this._muted=!1,this._elapsed=0,this.init(e)}set(e,t){if(this[e]===void 0)throw new Error(`Property with name ${e} does not exist.`);switch(e){case"speed":this.speed=t;break;case"volume":this.volume=t;break;case"muted":this.muted=t;break;case"loop":this.loop=t;break;case"paused":this.paused=t;break}return this}stop(){this._source&&(this._internalStop(),this.emit("stop"))}get speed(){return this._speed}set speed(e){this._speed=e,this.refresh(),this._update(!0)}get volume(){return this._volume}set volume(e){this._volume=e,this.refresh()}get muted(){return this._muted}set muted(e){this._muted=e,this.refresh()}get loop(){return this._loop}set loop(e){this._loop=e,this.refresh()}get filters(){return this._filters}set filters(e){this._filters&&(this._filters?.filter(t=>t).forEach(t=>t.disconnect()),this._filters=null,this._source.connect(this._gain)),this._filters=e?.length?e.slice(0):null,this.refresh()}refresh(){if(!this._source)return;const e=this._media.context,t=this._media.parent;this._source.loop=this._loop||t.loop;const i=e.volume*(e.muted?0:1),n=t.volume*(t.muted?0:1),o=this._volume*(this._muted?0:1);_.setParamValue(this._gain.gain,o*n*i),_.setParamValue(this._source.playbackRate,this._speed*t.speed*e.speed),this.applyFilters()}applyFilters(){if(this._filters?.length){this._source.disconnect();let e=this._source;this._filters.forEach(t=>{e.connect(t.destination),e=t}),e.connect(this._gain)}}refreshPaused(){const e=this._media.context,t=this._media.parent,i=this._paused||t.paused||e.paused;i!==this._pausedReal&&(this._pausedReal=i,i?(this._internalStop(),this.emit("paused")):(this.emit("resumed"),this.play({start:this._elapsed%this._duration,end:this._end,speed:this._speed,loop:this._loop,volume:this._volume})),this.emit("pause",i))}play(e){const{start:t,end:i,speed:n,loop:o,volume:r,muted:a,filters:h}=e;i&&console.assert(i>t,"End time is before start time"),this._paused=!1;const{source:d,gain:c}=this._media.nodes.cloneBufferSource();this._source=d,this._gain=c,this._speed=n,this._volume=r,this._loop=!!o,this._muted=a,this._filters=h,this.refresh();const g=this._source.buffer.duration;this._duration=g,this._end=i,this._lastUpdate=this._now(),this._elapsed=t,this._source.onended=this._onComplete.bind(this),this._loop?(this._source.loopEnd=i,this._source.loopStart=t,this._source.start(0,t)):i?this._source.start(0,t,i-t):this._source.start(0,t),this.emit("start"),this._update(!0),this.enableTicker(!0)}enableTicker(e){v.shared.remove(this._updateListener,this),e&&v.shared.add(this._updateListener,this)}get progress(){return this._progress}get paused(){return this._paused}set paused(e){this._paused=e,this.refreshPaused()}destroy(){this.removeAllListeners(),this._internalStop(),this._gain&&(this._gain.disconnect(),this._gain=null),this._media&&(this._media.context.events.off("refresh",this.refresh,this),this._media.context.events.off("refreshPaused",this.refreshPaused,this),this._media=null),this._filters?.forEach(e=>e.disconnect()),this._filters=null,this._end=null,this._speed=1,this._volume=1,this._loop=!1,this._elapsed=0,this._duration=0,this._paused=!1,this._muted=!1,this._pausedReal=!1}toString(){return`[WebAudioInstance id=${this.id}]`}_now(){return this._media.context.audioContext.currentTime}_updateListener(){this._update()}_update(e=!1){if(this._source){const t=this._now(),i=t-this._lastUpdate;if(i>0||e){const n=this._source.playbackRate.value;this._elapsed+=i*n,this._lastUpdate=t;const o=this._duration;let r;if(this._source.loopStart){const a=this._source.loopEnd-this._source.loopStart;r=(this._source.loopStart+this._elapsed%a)/o}else r=this._elapsed%o/o;this._progress=r,this.emit("progress",this._progress,o)}}}init(e){this._media=e,e.context.events.on("refresh",this.refresh,this),e.context.events.on("refreshPaused",this.refreshPaused,this)}_internalStop(){if(this._source){this.enableTicker(!1),this._source.onended=null,this._source.stop(0),this._source.disconnect();try{this._source.buffer=null}catch(e){console.warn("Failed to set AudioBufferSourceNode.buffer to null:",e)}this._source=null}}_onComplete(){if(this._source){this.enableTicker(!1),this._source.onended=null,this._source.disconnect();try{this._source.buffer=null}catch(e){console.warn("Failed to set AudioBufferSourceNode.buffer to null:",e)}}this._source=null,this._progress=1,this.emit("progress",1,this._duration),this.emit("end",this)}}class K{constructor(e,t){this._output=t,this._input=e}get destination(){return this._input}get filters(){return this._filters}set filters(e){if(this._filters&&(this._filters.forEach(t=>{t&&t.disconnect()}),this._filters=null,this._input.connect(this._output)),e&&e.length){this._filters=e.slice(0),this._input.disconnect();let t=null;e.forEach(i=>{t===null?this._input.connect(i.destination):t.connect(i.destination),t=i}),t.connect(this._output)}}destroy(){this.filters=null,this._input=null,this._output=null}}const $=class extends K{constructor(s){const e=s.audioContext,t=e.createBufferSource(),i=e.createGain(),n=e.createAnalyser();t.connect(n),n.connect(i),i.connect(s.destination),super(n,i),this.context=s,this.bufferSource=t,this.gain=i,this.analyser=n}get script(){return this._script||(this._script=this.context.audioContext.createScriptProcessor($.BUFFER_SIZE),this._script.connect(this.context.destination)),this._script}destroy(){super.destroy(),this.bufferSource.disconnect(),this._script&&this._script.disconnect(),this.gain.disconnect(),this.analyser.disconnect(),this.bufferSource=null,this._script=null,this.gain=null,this.analyser=null,this.context=null}cloneBufferSource(){const s=this.bufferSource,e=this.context.audioContext.createBufferSource();e.buffer=s.buffer,_.setParamValue(e.playbackRate,s.playbackRate.value),e.loop=s.loop;const t=this.context.audioContext.createGain();return e.connect(t),t.connect(this.destination),{source:e,gain:t}}get bufferSize(){return this.script.bufferSize}};let M=$;M.BUFFER_SIZE=0;class L{init(e){this.parent=e,this._nodes=new M(this.context),this._source=this._nodes.bufferSource,this.source=e.options.source}destroy(){this.parent=null,this._nodes.destroy(),this._nodes=null;try{this._source.buffer=null}catch(e){console.warn("Failed to set AudioBufferSourceNode.buffer to null:",e)}this._source=null,this.source=null}create(){return new V(this)}get context(){return this.parent.context}get isPlayable(){return!!this._source&&!!this._source.buffer}get filters(){return this._nodes.filters}set filters(e){this._nodes.filters=e}get duration(){return console.assert(this.isPlayable,"Sound not yet playable, no duration"),this._source.buffer.duration}get buffer(){return this._source.buffer}set buffer(e){this._source.buffer=e}get nodes(){return this._nodes}load(e){this.source?this._decode(this.source,e):this.parent.url?this._loadUrl(e):e?e(new Error("sound.url or sound.source must be set")):console.error("sound.url or sound.source must be set")}async _loadUrl(e){const t=this.parent.url,i=await U.get().fetch(t);this._decode(await i.arrayBuffer(),e)}_decode(e,t){const i=(n,o)=>{if(n)t&&t(n);else{this.parent.isLoaded=!0,this.buffer=o;const r=this.parent.autoPlayStart();t&&t(null,this.parent,r)}};e instanceof AudioBuffer?i(null,e):this.parent.context.decode(e,i)}}const x=class{static from(s){let e={};typeof s=="string"?e.url=s:s instanceof ArrayBuffer||s instanceof AudioBuffer||s instanceof HTMLAudioElement?e.source=s:Array.isArray(s)?e.url=s:e=s,e={autoPlay:!1,singleInstance:!1,url:null,source:null,preload:!1,volume:1,speed:1,complete:null,loaded:null,loop:!1,...e},Object.freeze(e);const t=l().useLegacy?new G:new L;return new x(t,e)}constructor(s,e){this.media=s,this.options=e,this._instances=[],this._sprites={},this.media.init(this);const t=e.complete;this._autoPlayOptions=t?{complete:t}:null,this.isLoaded=!1,this._preloadQueue=null,this.isPlaying=!1,this.autoPlay=e.autoPlay,this.singleInstance=e.singleInstance,this.preload=e.preload||this.autoPlay,this.url=Array.isArray(e.url)?this.preferUrl(e.url):e.url,this.speed=e.speed,this.volume=e.volume,this.loop=e.loop,e.sprites&&this.addSprites(e.sprites),this.preload&&this._preload(e.loaded)}preferUrl(s){const[e]=s.map(t=>({url:t,ext:F.extname(t).slice(1)})).filter(({ext:t})=>A[t]).sort((t,i)=>P.indexOf(t.ext)-P.indexOf(i.ext));if(!e)throw new Error("No supported file type found");return e.url}get context(){return l().context}pause(){return this.isPlaying=!1,this.paused=!0,this}resume(){return this.isPlaying=this._instances.length>0,this.paused=!1,this}get paused(){return this._paused}set paused(s){this._paused=s,this.refreshPaused()}get speed(){return this._speed}set speed(s){this._speed=s,this.refresh()}get filters(){return this.media.filters}set filters(s){this.media.filters=s}addSprites(s,e){if(typeof s=="object"){const i={};for(const n in s)i[n]=this.addSprites(n,s[n]);return i}console.assert(!this._sprites[s],`Alias ${s} is already taken`);const t=new ee(this,e);return this._sprites[s]=t,t}destroy(){this._removeInstances(),this.removeSprites(),this.media.destroy(),this.media=null,this._sprites=null,this._instances=null}removeSprites(s){if(s){const e=this._sprites[s];e!==void 0&&(e.destroy(),delete this._sprites[s])}else for(const e in this._sprites)this.removeSprites(e);return this}get isPlayable(){return this.isLoaded&&this.media&&this.media.isPlayable}stop(){if(!this.isPlayable)return this.autoPlay=!1,this._autoPlayOptions=null,this;this.isPlaying=!1;for(let s=this._instances.length-1;s>=0;s--)this._instances[s].stop();return this}play(s,e){let t;if(typeof s=="string"?t={sprite:s,loop:this.loop,complete:e}:typeof s=="function"?(t={},t.complete=s):t=s,t={complete:null,loaded:null,sprite:null,end:null,start:0,volume:1,speed:1,muted:!1,loop:!1,...t||{}},t.sprite){const n=t.sprite;console.assert(!!this._sprites[n],`Alias ${n} is not available`);const o=this._sprites[n];t.start=o.start+(t.start||0),t.end=o.end,t.speed=o.speed||1,t.loop=o.loop||t.loop,delete t.sprite}if(t.offset&&(t.start=t.offset),!this.isLoaded)return this._preloadQueue?new Promise(n=>{this._preloadQueue.push(()=>{n(this.play(t))})}):(this._preloadQueue=[],this.autoPlay=!0,this._autoPlayOptions=t,new Promise((n,o)=>{this._preload((r,a,h)=>{this._preloadQueue.forEach(d=>d()),this._preloadQueue=null,r?o(r):(t.loaded&&t.loaded(r,a,h),n(h))})}));(this.singleInstance||t.singleInstance)&&this._removeInstances();const i=this._createInstance();return this._instances.push(i),this.isPlaying=!0,i.once("end",()=>{t.complete&&t.complete(this),this._onComplete(i)}),i.once("stop",()=>{this._onComplete(i)}),i.play(t),i}refresh(){const s=this._instances.length;for(let e=0;e<s;e++)this._instances[e].refresh()}refreshPaused(){const s=this._instances.length;for(let e=0;e<s;e++)this._instances[e].refreshPaused()}get volume(){return this._volume}set volume(s){this._volume=s,this.refresh()}get muted(){return this._muted}set muted(s){this._muted=s,this.refresh()}get loop(){return this._loop}set loop(s){this._loop=s,this.refresh()}_preload(s){this.media.load(s)}get instances(){return this._instances}get sprites(){return this._sprites}get duration(){return this.media.duration}autoPlayStart(){let s;return this.autoPlay&&(s=this.play(this._autoPlayOptions)),s}_removeInstances(){for(let s=this._instances.length-1;s>=0;s--)this._poolInstance(this._instances[s]);this._instances.length=0}_onComplete(s){if(this._instances){const e=this._instances.indexOf(s);e>-1&&this._instances.splice(e,1),this.isPlaying=this._instances.length>0}this._poolInstance(s)}_createInstance(){if(x._pool.length>0){const s=x._pool.pop();return s.init(this.media),s}return this.media.create()}_poolInstance(s){s.destroy(),x._pool.indexOf(s)<0&&x._pool.push(s)}};let w=x;w._pool=[];class b extends K{constructor(){const e=window,t=new b.AudioContext,i=t.createDynamicsCompressor(),n=t.createAnalyser();n.connect(i),i.connect(t.destination),super(n,i),this.autoPause=!0,this._ctx=t,this._offlineCtx=new b.OfflineAudioContext(1,2,e.OfflineAudioContext?Math.max(8e3,Math.min(96e3,t.sampleRate)):44100),this.compressor=i,this.analyser=n,this.events=new S,this.volume=1,this.speed=1,this.muted=!1,this.paused=!1,this._locked=t.state==="suspended"&&("ontouchstart"in globalThis||"onclick"in globalThis),this._locked&&(this._unlock(),this._unlock=this._unlock.bind(this),document.addEventListener("mousedown",this._unlock,!0),document.addEventListener("touchstart",this._unlock,!0),document.addEventListener("touchend",this._unlock,!0)),this.onFocus=this.onFocus.bind(this),this.onBlur=this.onBlur.bind(this),globalThis.addEventListener("focus",this.onFocus),globalThis.addEventListener("blur",this.onBlur)}onFocus(){if(!this.autoPause)return;const e=this._ctx.state;(e==="suspended"||e==="interrupted"||!this._locked)&&(this.paused=this._pausedOnBlur,this.refreshPaused())}onBlur(){this.autoPause&&(this._locked||(this._pausedOnBlur=this._paused,this.paused=!0,this.refreshPaused()))}_unlock(){this._locked&&(this.playEmptySound(),this._ctx.state==="running"&&(document.removeEventListener("mousedown",this._unlock,!0),document.removeEventListener("touchend",this._unlock,!0),document.removeEventListener("touchstart",this._unlock,!0),this._locked=!1))}playEmptySound(){const e=this._ctx.createBufferSource();e.buffer=this._ctx.createBuffer(1,1,22050),e.connect(this._ctx.destination),e.start(0,0,0),e.context.state==="suspended"&&e.context.resume()}static get AudioContext(){const e=window;return e.AudioContext||e.webkitAudioContext||null}static get OfflineAudioContext(){const e=window;return e.OfflineAudioContext||e.webkitOfflineAudioContext||null}destroy(){super.destroy();const e=this._ctx;typeof e.close<"u"&&e.close(),globalThis.removeEventListener("focus",this.onFocus),globalThis.removeEventListener("blur",this.onBlur),this.events.removeAllListeners(),this.analyser.disconnect(),this.compressor.disconnect(),this.analyser=null,this.compressor=null,this.events=null,this._offlineCtx=null,this._ctx=null}get audioContext(){return this._ctx}get offlineContext(){return this._offlineCtx}set paused(e){e&&this._ctx.state==="running"?this._ctx.suspend():!e&&this._ctx.state==="suspended"&&this._ctx.resume(),this._paused=e}get paused(){return this._paused}refresh(){this.events.emit("refresh")}refreshPaused(){this.events.emit("refreshPaused")}toggleMute(){return this.muted=!this.muted,this.refresh(),this.muted}togglePause(){return this.paused=!this.paused,this.refreshPaused(),this._paused}decode(e,t){const i=o=>{t(new Error(o?.message||"Unable to decode file"))},n=this._offlineCtx.decodeAudioData(e,o=>{t(null,o)},i);n&&n.catch(i)}}class se{constructor(){this.init()}init(){return this.supported&&(this._webAudioContext=new b),this._htmlAudioContext=new I,this._sounds={},this.useLegacy=!this.supported,this}get context(){return this._context}get filtersAll(){return this.useLegacy?[]:this._context.filters}set filtersAll(e){this.useLegacy||(this._context.filters=e)}get supported(){return b.AudioContext!==null}add(e,t){if(typeof e=="object"){const o={};for(const r in e){const a=this._getOptions(e[r],t);o[r]=this.add(r,a)}return o}if(console.assert(!this._sounds[e],`Sound with alias ${e} already exists.`),t instanceof w)return this._sounds[e]=t,t;const i=this._getOptions(t),n=w.from(i);return this._sounds[e]=n,n}_getOptions(e,t){let i;return typeof e=="string"?i={url:e}:Array.isArray(e)?i={url:e}:e instanceof ArrayBuffer||e instanceof AudioBuffer||e instanceof HTMLAudioElement?i={source:e}:i=e,i={...i,...t||{}},i}get useLegacy(){return this._useLegacy}set useLegacy(e){this._useLegacy=e,this._context=!e&&this.supported?this._webAudioContext:this._htmlAudioContext}get disableAutoPause(){return!this._webAudioContext.autoPause}set disableAutoPause(e){this._webAudioContext.autoPause=!e}remove(e){return this.exists(e,!0),this._sounds[e].destroy(),delete this._sounds[e],this}get volumeAll(){return this._context.volume}set volumeAll(e){this._context.volume=e,this._context.refresh()}get speedAll(){return this._context.speed}set speedAll(e){this._context.speed=e,this._context.refresh()}togglePauseAll(){return this._context.togglePause()}pauseAll(){return this._context.paused=!0,this._context.refreshPaused(),this}resumeAll(){return this._context.paused=!1,this._context.refreshPaused(),this}toggleMuteAll(){return this._context.toggleMute()}muteAll(){return this._context.muted=!0,this._context.refresh(),this}unmuteAll(){return this._context.muted=!1,this._context.refresh(),this}removeAll(){for(const e in this._sounds)this._sounds[e].destroy(),delete this._sounds[e];return this}stopAll(){for(const e in this._sounds)this._sounds[e].stop();return this}exists(e,t=!1){const i=!!this._sounds[e];return t&&console.assert(i,`No sound matching alias '${e}'.`),i}isPlaying(){for(const e in this._sounds)if(this._sounds[e].isPlaying)return!0;return!1}find(e){return this.exists(e,!0),this._sounds[e]}play(e,t){return this.find(e).play(t)}stop(e){return this.find(e).stop()}pause(e){return this.find(e).pause()}resume(e){return this.find(e).resume()}volume(e,t){const i=this.find(e);return t!==void 0&&(i.volume=t),i.volume}speed(e,t){const i=this.find(e);return t!==void 0&&(i.speed=t),i.speed}duration(e){return this.find(e).duration}close(){return this.removeAll(),this._sounds=null,this._webAudioContext&&(this._webAudioContext.destroy(),this._webAudioContext=null),this._htmlAudioContext&&(this._htmlAudioContext.destroy(),this._htmlAudioContext=null),this._context=null,this}}let D=0;function ie(s,e){const t=`alias${D++}`;return l().add(t,{url:s,preload:!0,autoPlay:!0,loaded:i=>{i&&(console.error(i),l().remove(t),e&&e(i))},complete:()=>{l().remove(t),e&&e(null)}}),t}function ne(s,e){const t=document.createElement("canvas");e={width:512,height:128,fill:"black",...e||{}},t.width=e.width,t.height=e.height;const i=new j({resource:t});if(!(s.media instanceof L))return i;const n=s.media;console.assert(!!n.buffer,"No buffer found, load first");const o=t.getContext("2d");o.fillStyle=e.fill;const r=n.buffer.getChannelData(0),a=Math.ceil(r.length/e.width),h=e.height/2;for(let d=0;d<e.width;d++){let c=1,g=-1;for(let f=0;f<a;f++){const p=r[d*a+f];p<c&&(c=p),p>g&&(g=p)}o.fillRect(d,(1+c)*h,1,Math.max(1,(g-c)*h))}return i}function oe(s=200,e=1){const t=w.from({singleInstance:!0});if(!(t.media instanceof L))return t;const i=t.media,n=t.context,o=1,r=48e3,a=2,h=n.audioContext.createBuffer(o,e*r,r),d=h.getChannelData(0);for(let c=0;c<d.length;c++){const g=c/h.sampleRate,f=s*g*2*Math.PI;d[c]=Math.sin(f)*a}return i.buffer=h,t.isLoaded=!0,t}const le=Object.freeze(Object.defineProperty({__proto__:null,get PLAY_ID(){return D},extensions:P,mimes:O,playOnce:ie,render:ne,sineTone:oe,supported:A,validateFormats:R},Symbol.toStringTag,{value:"Module"})),de=Object.freeze(Object.defineProperty({__proto__:null,WebAudioContext:b,WebAudioInstance:V,WebAudioMedia:L,WebAudioNodes:M,WebAudioUtils:_},Symbol.toStringTag,{value:"Module"})),k=s=>{const e=s.src;let t=s?.alias?.[0];return(!t||s.src===t)&&(t=F.basename(e,F.extname(e))),t},re={extension:T.Asset,detection:{test:async()=>!0,add:async s=>[...s,...P.filter(e=>A[e])],remove:async s=>s.filter(e=>s.includes(e))},loader:{name:"sound",extension:{type:[T.LoadParser],priority:q.High},test(s){const e=F.extname(s).slice(1);return!!A[e]||O.some(t=>s.startsWith(`data:${t}`))},async load(s,e){const t=await new Promise((i,n)=>w.from({...e.data,url:s,preload:!0,loaded(o,r){o?n(o):i(r),e.data?.loaded?.(o,r)}}));return l().add(k(e),t),t},async unload(s,e){l().remove(k(e))}}};H.add(re);const ce=N(new se);export{y as Filter,K as Filterable,w as Sound,se as SoundLibrary,ee as SoundSprite,ue as filters,he as htmlaudio,ce as sound,re as soundAsset,le as utils,de as webaudio};
|
|
1
|
+
import{bl as S,bm as v,bn as U,bo as F,bp as j,bq as q,br as T,ag as H}from"./index-8A4JLNIp.js";let B;function N(s){return B=s,s}function l(){return B}class y{constructor(e,t){this.init(e,t)}init(e,t){this.destination=e,this.source=t||e}connect(e){this.source?.connect(e)}disconnect(){this.source?.disconnect()}destroy(){this.disconnect(),this.destination=null,this.source=null}}class z extends y{constructor(e=0){let t;if(!l().useLegacy){const{audioContext:i}=l().context;t=i.createWaveShaper()}super(t),this._distortion=t,this.amount=e}set amount(e){if(this._amount=e,l().useLegacy)return;const t=e*1e3,i=44100,n=new Float32Array(i),o=Math.PI/180;let r=0,a;for(;r<i;++r)a=r*2/i-1,n[r]=(3+t)*a*20*o/(Math.PI+t*Math.abs(a));this._distortion.curve=n,this._distortion.oversample="4x"}get amount(){return this._amount}destroy(){this._distortion=null,super.destroy()}}class _{static setParamValue(e,t){if(e.setValueAtTime){const i=l().context;e.setValueAtTime(t,i.audioContext.currentTime)}else e.value=t;return t}}const u=class extends y{constructor(s=0,e=0,t=0,i=0,n=0,o=0,r=0,a=0,h=0,d=0){let c=[];const g=[{f:u.F32,type:"lowshelf",gain:s},{f:u.F64,type:"peaking",gain:e},{f:u.F125,type:"peaking",gain:t},{f:u.F250,type:"peaking",gain:i},{f:u.F500,type:"peaking",gain:n},{f:u.F1K,type:"peaking",gain:o},{f:u.F2K,type:"peaking",gain:r},{f:u.F4K,type:"peaking",gain:a},{f:u.F8K,type:"peaking",gain:h},{f:u.F16K,type:"highshelf",gain:d}];l().useLegacy||(c=g.map(f=>{const p=l().context.audioContext.createBiquadFilter();return p.type=f.type,_.setParamValue(p.Q,1),p.frequency.value=f.f,_.setParamValue(p.gain,f.gain),p})),super(c[0],c[c.length-1]),this.bands=c,this.bandsMap={};for(let f=0;f<this.bands.length;f++){const p=this.bands[f];f>0&&this.bands[f-1].connect(p),this.bandsMap[p.frequency.value]=p}}setGain(s,e=0){if(!this.bandsMap[s])throw new Error(`No band found for frequency ${s}`);_.setParamValue(this.bandsMap[s].gain,e)}getGain(s){if(!this.bandsMap[s])throw new Error(`No band found for frequency ${s}`);return this.bandsMap[s].gain.value}set f32(s){this.setGain(u.F32,s)}get f32(){return this.getGain(u.F32)}set f64(s){this.setGain(u.F64,s)}get f64(){return this.getGain(u.F64)}set f125(s){this.setGain(u.F125,s)}get f125(){return this.getGain(u.F125)}set f250(s){this.setGain(u.F250,s)}get f250(){return this.getGain(u.F250)}set f500(s){this.setGain(u.F500,s)}get f500(){return this.getGain(u.F500)}set f1k(s){this.setGain(u.F1K,s)}get f1k(){return this.getGain(u.F1K)}set f2k(s){this.setGain(u.F2K,s)}get f2k(){return this.getGain(u.F2K)}set f4k(s){this.setGain(u.F4K,s)}get f4k(){return this.getGain(u.F4K)}set f8k(s){this.setGain(u.F8K,s)}get f8k(){return this.getGain(u.F8K)}set f16k(s){this.setGain(u.F16K,s)}get f16k(){return this.getGain(u.F16K)}reset(){this.bands.forEach(s=>{_.setParamValue(s.gain,0)})}destroy(){this.bands.forEach(s=>{s.disconnect()}),this.bands=null,this.bandsMap=null}};let m=u;m.F32=32;m.F64=64;m.F125=125;m.F250=250;m.F500=500;m.F1K=1e3;m.F2K=2e3;m.F4K=4e3;m.F8K=8e3;m.F16K=16e3;class Q extends y{constructor(){let e,t;if(!l().useLegacy){const{audioContext:i}=l().context;t=i.createChannelSplitter(),e=i.createChannelMerger(),e.connect(t)}super(e,t),this._merger=e}destroy(){this._merger?.disconnect(),this._merger=null,super.destroy()}}class W extends y{constructor(e=3,t=2,i=!1){super(null),this._seconds=this._clamp(e,1,50),this._decay=this._clamp(t,0,100),this._reverse=i,this._rebuild()}_clamp(e,t,i){return Math.min(i,Math.max(t,e))}get seconds(){return this._seconds}set seconds(e){this._seconds=this._clamp(e,1,50),this._rebuild()}get decay(){return this._decay}set decay(e){this._decay=this._clamp(e,0,100),this._rebuild()}get reverse(){return this._reverse}set reverse(e){this._reverse=e,this._rebuild()}_rebuild(){if(l().useLegacy)return;const{audioContext:e}=l().context,t=e.sampleRate,i=t*this._seconds,n=e.createBuffer(2,i,t),o=n.getChannelData(0),r=n.getChannelData(1);let a;for(let d=0;d<i;d++)a=this._reverse?i-d:d,o[d]=(Math.random()*2-1)*Math.pow(1-a/i,this._decay),r[d]=(Math.random()*2-1)*Math.pow(1-a/i,this._decay);const h=e.createConvolver();h.buffer=n,this.init(h)}}class Y extends y{constructor(e=0){let t,i,n;if(!l().useLegacy){const{audioContext:o}=l().context;o.createStereoPanner?(t=o.createStereoPanner(),n=t):(i=o.createPanner(),i.panningModel="equalpower",n=i)}super(n),this._stereo=t,this._panner=i,this.pan=e}set pan(e){this._pan=e,this._stereo?_.setParamValue(this._stereo.pan,e):this._panner&&this._panner.setPosition(e,0,1-Math.abs(e))}get pan(){return this._pan}destroy(){super.destroy(),this._stereo=null,this._panner=null}}class Z extends y{constructor(){let e,t;if(!l().useLegacy){const{audioContext:i}=l().context;e=i.createMediaStreamDestination(),t=i.createMediaStreamSource(e.stream)}super(e,t),this._stream=e?.stream}get stream(){return this._stream}destroy(){this._stream=null,super.destroy()}}class J extends y{constructor(){let e,t;if(!l().useLegacy){const{audioContext:i}=l().context,n=i.createBiquadFilter(),o=i.createBiquadFilter(),r=i.createBiquadFilter(),a=i.createBiquadFilter();n.type="lowpass",_.setParamValue(n.frequency,2e3),o.type="lowpass",_.setParamValue(o.frequency,2e3),r.type="highpass",_.setParamValue(r.frequency,500),a.type="highpass",_.setParamValue(a.frequency,500),n.connect(o),o.connect(r),r.connect(a),e=n,t=a}super(e,t)}}const ue=Object.freeze(Object.defineProperty({__proto__:null,DistortionFilter:z,EqualizerFilter:m,Filter:y,MonoFilter:Q,ReverbFilter:W,StereoFilter:Y,StreamFilter:Z,TelephoneFilter:J},Symbol.toStringTag,{value:"Module"}));class I extends S{constructor(){super(...arguments),this.speed=1,this.muted=!1,this.volume=1,this.paused=!1}refresh(){this.emit("refresh")}refreshPaused(){this.emit("refreshPaused")}get filters(){return console.warn("HTML Audio does not support filters"),null}set filters(e){console.warn("HTML Audio does not support filters")}get audioContext(){return console.warn("HTML Audio does not support audioContext"),null}toggleMute(){return this.muted=!this.muted,this.refresh(),this.muted}togglePause(){return this.paused=!this.paused,this.refreshPaused(),this.paused}destroy(){this.removeAllListeners()}}let X=0;const C=class extends S{constructor(s){super(),this.id=X++,this.init(s)}set(s,e){if(this[s]===void 0)throw new Error(`Property with name ${s} does not exist.`);switch(s){case"speed":this.speed=e;break;case"volume":this.volume=e;break;case"paused":this.paused=e;break;case"loop":this.loop=e;break;case"muted":this.muted=e;break}return this}get progress(){const{currentTime:s}=this._source;return s/this._duration}get paused(){return this._paused}set paused(s){this._paused=s,this.refreshPaused()}_onPlay(){this._playing=!0}_onPause(){this._playing=!1}init(s){this._playing=!1,this._duration=s.source.duration;const e=this._source=s.source.cloneNode(!1);e.src=s.parent.url,e.onplay=this._onPlay.bind(this),e.onpause=this._onPause.bind(this),s.context.on("refresh",this.refresh,this),s.context.on("refreshPaused",this.refreshPaused,this),this._media=s}_internalStop(){this._source&&this._playing&&(this._source.onended=null,this._source.pause())}stop(){this._internalStop(),this._source&&this.emit("stop")}get speed(){return this._speed}set speed(s){this._speed=s,this.refresh()}get volume(){return this._volume}set volume(s){this._volume=s,this.refresh()}get loop(){return this._loop}set loop(s){this._loop=s,this.refresh()}get muted(){return this._muted}set muted(s){this._muted=s,this.refresh()}get filters(){return console.warn("HTML Audio does not support filters"),null}set filters(s){console.warn("HTML Audio does not support filters")}refresh(){const s=this._media.context,e=this._media.parent;this._source.loop=this._loop||e.loop;const t=s.volume*(s.muted?0:1),i=e.volume*(e.muted?0:1),n=this._volume*(this._muted?0:1);this._source.volume=n*t*i,this._source.playbackRate=this._speed*s.speed*e.speed}refreshPaused(){const s=this._media.context,e=this._media.parent,t=this._paused||e.paused||s.paused;t!==this._pausedReal&&(this._pausedReal=t,t?(this._internalStop(),this.emit("paused")):(this.emit("resumed"),this.play({start:this._source.currentTime,end:this._end,volume:this._volume,speed:this._speed,loop:this._loop})),this.emit("pause",t))}play(s){const{start:e,end:t,speed:i,loop:n,volume:o,muted:r}=s;t&&console.assert(t>e,"End time is before start time"),this._speed=i,this._volume=o,this._loop=!!n,this._muted=r,this.refresh(),this.loop&&t!==null&&(console.warn('Looping not support when specifying an "end" time'),this.loop=!1),this._start=e,this._end=t||this._duration,this._start=Math.max(0,this._start-C.PADDING),this._end=Math.min(this._end+C.PADDING,this._duration),this._source.onloadedmetadata=()=>{this._source&&(this._source.currentTime=e,this._source.onloadedmetadata=null,this.emit("progress",e/this._duration,this._duration),v.shared.add(this._onUpdate,this))},this._source.onended=this._onComplete.bind(this),this._source.play(),this.emit("start")}_onUpdate(){this.emit("progress",this.progress,this._duration),this._source.currentTime>=this._end&&!this._source.loop&&this._onComplete()}_onComplete(){v.shared.remove(this._onUpdate,this),this._internalStop(),this.emit("progress",1,this._duration),this.emit("end",this)}destroy(){v.shared.remove(this._onUpdate,this),this.removeAllListeners();const s=this._source;s&&(s.onended=null,s.onplay=null,s.onpause=null,this._internalStop()),this._source=null,this._speed=1,this._volume=1,this._loop=!1,this._end=null,this._start=0,this._duration=0,this._playing=!1,this._pausedReal=!1,this._paused=!1,this._muted=!1,this._media&&(this._media.context.off("refresh",this.refresh,this),this._media.context.off("refreshPaused",this.refreshPaused,this),this._media=null)}toString(){return`[HTMLAudioInstance id=${this.id}]`}};let E=C;E.PADDING=.1;class G extends S{init(e){this.parent=e,this._source=e.options.source||new Audio,e.url&&(this._source.src=e.url)}create(){return new E(this)}get isPlayable(){return!!this._source&&this._source.readyState===4}get duration(){return this._source.duration}get context(){return this.parent.context}get filters(){return null}set filters(e){console.warn("HTML Audio does not support filters")}destroy(){this.removeAllListeners(),this.parent=null,this._source&&(this._source.src="",this._source.load(),this._source=null)}get source(){return this._source}load(e){const t=this._source,i=this.parent;if(t.readyState===4){i.isLoaded=!0;const h=i.autoPlayStart();e&&setTimeout(()=>{e(null,i,h)},0);return}if(!i.url){e(new Error("sound.url or sound.source must be set"));return}t.src=i.url;const n=()=>{a(),i.isLoaded=!0;const h=i.autoPlayStart();e&&e(null,i,h)},o=()=>{a(),e&&e(new Error("Sound loading has been aborted"))},r=()=>{a();const h=`Failed to load audio element (code: ${t.error.code})`;e?e(new Error(h)):console.error(h)},a=()=>{t.removeEventListener("canplaythrough",n),t.removeEventListener("load",n),t.removeEventListener("abort",o),t.removeEventListener("error",r)};t.addEventListener("canplaythrough",n,!1),t.addEventListener("load",n,!1),t.addEventListener("abort",o,!1),t.addEventListener("error",r,!1),t.load()}}const he=Object.freeze(Object.defineProperty({__proto__:null,HTMLAudioContext:I,HTMLAudioInstance:E,HTMLAudioMedia:G},Symbol.toStringTag,{value:"Module"}));class ee{constructor(e,t){this.parent=e,Object.assign(this,t),this.duration=this.end-this.start,console.assert(this.duration>0,"End time must be after start time")}play(e){return this.parent.play({complete:e,speed:this.speed||this.parent.speed,end:this.end,start:this.start,loop:this.loop})}destroy(){this.parent=null}}const P=["ogg","oga","opus","m4a","mp3","mpeg","wav","aiff","wma","mid","caf"],O=["audio/mpeg","audio/ogg"],A={};function R(s){const e={m4a:"audio/mp4",oga:"audio/ogg",opus:'audio/ogg; codecs="opus"',caf:'audio/x-caf; codecs="opus"',...s||{}},t=document.createElement("audio"),i={},n=/^no$/;P.forEach(o=>{const r=t.canPlayType(`audio/${o}`).replace(n,""),a=e[o]?t.canPlayType(e[o]).replace(n,""):"";i[o]=!!r||!!a}),Object.assign(A,i)}R();let te=0;class V extends S{constructor(e){super(),this.id=te++,this._media=null,this._paused=!1,this._muted=!1,this._elapsed=0,this.init(e)}set(e,t){if(this[e]===void 0)throw new Error(`Property with name ${e} does not exist.`);switch(e){case"speed":this.speed=t;break;case"volume":this.volume=t;break;case"muted":this.muted=t;break;case"loop":this.loop=t;break;case"paused":this.paused=t;break}return this}stop(){this._source&&(this._internalStop(),this.emit("stop"))}get speed(){return this._speed}set speed(e){this._speed=e,this.refresh(),this._update(!0)}get volume(){return this._volume}set volume(e){this._volume=e,this.refresh()}get muted(){return this._muted}set muted(e){this._muted=e,this.refresh()}get loop(){return this._loop}set loop(e){this._loop=e,this.refresh()}get filters(){return this._filters}set filters(e){this._filters&&(this._filters?.filter(t=>t).forEach(t=>t.disconnect()),this._filters=null,this._source.connect(this._gain)),this._filters=e?.length?e.slice(0):null,this.refresh()}refresh(){if(!this._source)return;const e=this._media.context,t=this._media.parent;this._source.loop=this._loop||t.loop;const i=e.volume*(e.muted?0:1),n=t.volume*(t.muted?0:1),o=this._volume*(this._muted?0:1);_.setParamValue(this._gain.gain,o*n*i),_.setParamValue(this._source.playbackRate,this._speed*t.speed*e.speed),this.applyFilters()}applyFilters(){if(this._filters?.length){this._source.disconnect();let e=this._source;this._filters.forEach(t=>{e.connect(t.destination),e=t}),e.connect(this._gain)}}refreshPaused(){const e=this._media.context,t=this._media.parent,i=this._paused||t.paused||e.paused;i!==this._pausedReal&&(this._pausedReal=i,i?(this._internalStop(),this.emit("paused")):(this.emit("resumed"),this.play({start:this._elapsed%this._duration,end:this._end,speed:this._speed,loop:this._loop,volume:this._volume})),this.emit("pause",i))}play(e){const{start:t,end:i,speed:n,loop:o,volume:r,muted:a,filters:h}=e;i&&console.assert(i>t,"End time is before start time"),this._paused=!1;const{source:d,gain:c}=this._media.nodes.cloneBufferSource();this._source=d,this._gain=c,this._speed=n,this._volume=r,this._loop=!!o,this._muted=a,this._filters=h,this.refresh();const g=this._source.buffer.duration;this._duration=g,this._end=i,this._lastUpdate=this._now(),this._elapsed=t,this._source.onended=this._onComplete.bind(this),this._loop?(this._source.loopEnd=i,this._source.loopStart=t,this._source.start(0,t)):i?this._source.start(0,t,i-t):this._source.start(0,t),this.emit("start"),this._update(!0),this.enableTicker(!0)}enableTicker(e){v.shared.remove(this._updateListener,this),e&&v.shared.add(this._updateListener,this)}get progress(){return this._progress}get paused(){return this._paused}set paused(e){this._paused=e,this.refreshPaused()}destroy(){this.removeAllListeners(),this._internalStop(),this._gain&&(this._gain.disconnect(),this._gain=null),this._media&&(this._media.context.events.off("refresh",this.refresh,this),this._media.context.events.off("refreshPaused",this.refreshPaused,this),this._media=null),this._filters?.forEach(e=>e.disconnect()),this._filters=null,this._end=null,this._speed=1,this._volume=1,this._loop=!1,this._elapsed=0,this._duration=0,this._paused=!1,this._muted=!1,this._pausedReal=!1}toString(){return`[WebAudioInstance id=${this.id}]`}_now(){return this._media.context.audioContext.currentTime}_updateListener(){this._update()}_update(e=!1){if(this._source){const t=this._now(),i=t-this._lastUpdate;if(i>0||e){const n=this._source.playbackRate.value;this._elapsed+=i*n,this._lastUpdate=t;const o=this._duration;let r;if(this._source.loopStart){const a=this._source.loopEnd-this._source.loopStart;r=(this._source.loopStart+this._elapsed%a)/o}else r=this._elapsed%o/o;this._progress=r,this.emit("progress",this._progress,o)}}}init(e){this._media=e,e.context.events.on("refresh",this.refresh,this),e.context.events.on("refreshPaused",this.refreshPaused,this)}_internalStop(){if(this._source){this.enableTicker(!1),this._source.onended=null,this._source.stop(0),this._source.disconnect();try{this._source.buffer=null}catch(e){console.warn("Failed to set AudioBufferSourceNode.buffer to null:",e)}this._source=null}}_onComplete(){if(this._source){this.enableTicker(!1),this._source.onended=null,this._source.disconnect();try{this._source.buffer=null}catch(e){console.warn("Failed to set AudioBufferSourceNode.buffer to null:",e)}}this._source=null,this._progress=1,this.emit("progress",1,this._duration),this.emit("end",this)}}class K{constructor(e,t){this._output=t,this._input=e}get destination(){return this._input}get filters(){return this._filters}set filters(e){if(this._filters&&(this._filters.forEach(t=>{t&&t.disconnect()}),this._filters=null,this._input.connect(this._output)),e&&e.length){this._filters=e.slice(0),this._input.disconnect();let t=null;e.forEach(i=>{t===null?this._input.connect(i.destination):t.connect(i.destination),t=i}),t.connect(this._output)}}destroy(){this.filters=null,this._input=null,this._output=null}}const $=class extends K{constructor(s){const e=s.audioContext,t=e.createBufferSource(),i=e.createGain(),n=e.createAnalyser();t.connect(n),n.connect(i),i.connect(s.destination),super(n,i),this.context=s,this.bufferSource=t,this.gain=i,this.analyser=n}get script(){return this._script||(this._script=this.context.audioContext.createScriptProcessor($.BUFFER_SIZE),this._script.connect(this.context.destination)),this._script}destroy(){super.destroy(),this.bufferSource.disconnect(),this._script&&this._script.disconnect(),this.gain.disconnect(),this.analyser.disconnect(),this.bufferSource=null,this._script=null,this.gain=null,this.analyser=null,this.context=null}cloneBufferSource(){const s=this.bufferSource,e=this.context.audioContext.createBufferSource();e.buffer=s.buffer,_.setParamValue(e.playbackRate,s.playbackRate.value),e.loop=s.loop;const t=this.context.audioContext.createGain();return e.connect(t),t.connect(this.destination),{source:e,gain:t}}get bufferSize(){return this.script.bufferSize}};let M=$;M.BUFFER_SIZE=0;class L{init(e){this.parent=e,this._nodes=new M(this.context),this._source=this._nodes.bufferSource,this.source=e.options.source}destroy(){this.parent=null,this._nodes.destroy(),this._nodes=null;try{this._source.buffer=null}catch(e){console.warn("Failed to set AudioBufferSourceNode.buffer to null:",e)}this._source=null,this.source=null}create(){return new V(this)}get context(){return this.parent.context}get isPlayable(){return!!this._source&&!!this._source.buffer}get filters(){return this._nodes.filters}set filters(e){this._nodes.filters=e}get duration(){return console.assert(this.isPlayable,"Sound not yet playable, no duration"),this._source.buffer.duration}get buffer(){return this._source.buffer}set buffer(e){this._source.buffer=e}get nodes(){return this._nodes}load(e){this.source?this._decode(this.source,e):this.parent.url?this._loadUrl(e):e?e(new Error("sound.url or sound.source must be set")):console.error("sound.url or sound.source must be set")}async _loadUrl(e){const t=this.parent.url,i=await U.get().fetch(t);this._decode(await i.arrayBuffer(),e)}_decode(e,t){const i=(n,o)=>{if(n)t&&t(n);else{this.parent.isLoaded=!0,this.buffer=o;const r=this.parent.autoPlayStart();t&&t(null,this.parent,r)}};e instanceof AudioBuffer?i(null,e):this.parent.context.decode(e,i)}}const x=class{static from(s){let e={};typeof s=="string"?e.url=s:s instanceof ArrayBuffer||s instanceof AudioBuffer||s instanceof HTMLAudioElement?e.source=s:Array.isArray(s)?e.url=s:e=s,e={autoPlay:!1,singleInstance:!1,url:null,source:null,preload:!1,volume:1,speed:1,complete:null,loaded:null,loop:!1,...e},Object.freeze(e);const t=l().useLegacy?new G:new L;return new x(t,e)}constructor(s,e){this.media=s,this.options=e,this._instances=[],this._sprites={},this.media.init(this);const t=e.complete;this._autoPlayOptions=t?{complete:t}:null,this.isLoaded=!1,this._preloadQueue=null,this.isPlaying=!1,this.autoPlay=e.autoPlay,this.singleInstance=e.singleInstance,this.preload=e.preload||this.autoPlay,this.url=Array.isArray(e.url)?this.preferUrl(e.url):e.url,this.speed=e.speed,this.volume=e.volume,this.loop=e.loop,e.sprites&&this.addSprites(e.sprites),this.preload&&this._preload(e.loaded)}preferUrl(s){const[e]=s.map(t=>({url:t,ext:F.extname(t).slice(1)})).filter(({ext:t})=>A[t]).sort((t,i)=>P.indexOf(t.ext)-P.indexOf(i.ext));if(!e)throw new Error("No supported file type found");return e.url}get context(){return l().context}pause(){return this.isPlaying=!1,this.paused=!0,this}resume(){return this.isPlaying=this._instances.length>0,this.paused=!1,this}get paused(){return this._paused}set paused(s){this._paused=s,this.refreshPaused()}get speed(){return this._speed}set speed(s){this._speed=s,this.refresh()}get filters(){return this.media.filters}set filters(s){this.media.filters=s}addSprites(s,e){if(typeof s=="object"){const i={};for(const n in s)i[n]=this.addSprites(n,s[n]);return i}console.assert(!this._sprites[s],`Alias ${s} is already taken`);const t=new ee(this,e);return this._sprites[s]=t,t}destroy(){this._removeInstances(),this.removeSprites(),this.media.destroy(),this.media=null,this._sprites=null,this._instances=null}removeSprites(s){if(s){const e=this._sprites[s];e!==void 0&&(e.destroy(),delete this._sprites[s])}else for(const e in this._sprites)this.removeSprites(e);return this}get isPlayable(){return this.isLoaded&&this.media&&this.media.isPlayable}stop(){if(!this.isPlayable)return this.autoPlay=!1,this._autoPlayOptions=null,this;this.isPlaying=!1;for(let s=this._instances.length-1;s>=0;s--)this._instances[s].stop();return this}play(s,e){let t;if(typeof s=="string"?t={sprite:s,loop:this.loop,complete:e}:typeof s=="function"?(t={},t.complete=s):t=s,t={complete:null,loaded:null,sprite:null,end:null,start:0,volume:1,speed:1,muted:!1,loop:!1,...t||{}},t.sprite){const n=t.sprite;console.assert(!!this._sprites[n],`Alias ${n} is not available`);const o=this._sprites[n];t.start=o.start+(t.start||0),t.end=o.end,t.speed=o.speed||1,t.loop=o.loop||t.loop,delete t.sprite}if(t.offset&&(t.start=t.offset),!this.isLoaded)return this._preloadQueue?new Promise(n=>{this._preloadQueue.push(()=>{n(this.play(t))})}):(this._preloadQueue=[],this.autoPlay=!0,this._autoPlayOptions=t,new Promise((n,o)=>{this._preload((r,a,h)=>{this._preloadQueue.forEach(d=>d()),this._preloadQueue=null,r?o(r):(t.loaded&&t.loaded(r,a,h),n(h))})}));(this.singleInstance||t.singleInstance)&&this._removeInstances();const i=this._createInstance();return this._instances.push(i),this.isPlaying=!0,i.once("end",()=>{t.complete&&t.complete(this),this._onComplete(i)}),i.once("stop",()=>{this._onComplete(i)}),i.play(t),i}refresh(){const s=this._instances.length;for(let e=0;e<s;e++)this._instances[e].refresh()}refreshPaused(){const s=this._instances.length;for(let e=0;e<s;e++)this._instances[e].refreshPaused()}get volume(){return this._volume}set volume(s){this._volume=s,this.refresh()}get muted(){return this._muted}set muted(s){this._muted=s,this.refresh()}get loop(){return this._loop}set loop(s){this._loop=s,this.refresh()}_preload(s){this.media.load(s)}get instances(){return this._instances}get sprites(){return this._sprites}get duration(){return this.media.duration}autoPlayStart(){let s;return this.autoPlay&&(s=this.play(this._autoPlayOptions)),s}_removeInstances(){for(let s=this._instances.length-1;s>=0;s--)this._poolInstance(this._instances[s]);this._instances.length=0}_onComplete(s){if(this._instances){const e=this._instances.indexOf(s);e>-1&&this._instances.splice(e,1),this.isPlaying=this._instances.length>0}this._poolInstance(s)}_createInstance(){if(x._pool.length>0){const s=x._pool.pop();return s.init(this.media),s}return this.media.create()}_poolInstance(s){s.destroy(),x._pool.indexOf(s)<0&&x._pool.push(s)}};let w=x;w._pool=[];class b extends K{constructor(){const e=window,t=new b.AudioContext,i=t.createDynamicsCompressor(),n=t.createAnalyser();n.connect(i),i.connect(t.destination),super(n,i),this.autoPause=!0,this._ctx=t,this._offlineCtx=new b.OfflineAudioContext(1,2,e.OfflineAudioContext?Math.max(8e3,Math.min(96e3,t.sampleRate)):44100),this.compressor=i,this.analyser=n,this.events=new S,this.volume=1,this.speed=1,this.muted=!1,this.paused=!1,this._locked=t.state==="suspended"&&("ontouchstart"in globalThis||"onclick"in globalThis),this._locked&&(this._unlock(),this._unlock=this._unlock.bind(this),document.addEventListener("mousedown",this._unlock,!0),document.addEventListener("touchstart",this._unlock,!0),document.addEventListener("touchend",this._unlock,!0)),this.onFocus=this.onFocus.bind(this),this.onBlur=this.onBlur.bind(this),globalThis.addEventListener("focus",this.onFocus),globalThis.addEventListener("blur",this.onBlur)}onFocus(){if(!this.autoPause)return;const e=this._ctx.state;(e==="suspended"||e==="interrupted"||!this._locked)&&(this.paused=this._pausedOnBlur,this.refreshPaused())}onBlur(){this.autoPause&&(this._locked||(this._pausedOnBlur=this._paused,this.paused=!0,this.refreshPaused()))}_unlock(){this._locked&&(this.playEmptySound(),this._ctx.state==="running"&&(document.removeEventListener("mousedown",this._unlock,!0),document.removeEventListener("touchend",this._unlock,!0),document.removeEventListener("touchstart",this._unlock,!0),this._locked=!1))}playEmptySound(){const e=this._ctx.createBufferSource();e.buffer=this._ctx.createBuffer(1,1,22050),e.connect(this._ctx.destination),e.start(0,0,0),e.context.state==="suspended"&&e.context.resume()}static get AudioContext(){const e=window;return e.AudioContext||e.webkitAudioContext||null}static get OfflineAudioContext(){const e=window;return e.OfflineAudioContext||e.webkitOfflineAudioContext||null}destroy(){super.destroy();const e=this._ctx;typeof e.close<"u"&&e.close(),globalThis.removeEventListener("focus",this.onFocus),globalThis.removeEventListener("blur",this.onBlur),this.events.removeAllListeners(),this.analyser.disconnect(),this.compressor.disconnect(),this.analyser=null,this.compressor=null,this.events=null,this._offlineCtx=null,this._ctx=null}get audioContext(){return this._ctx}get offlineContext(){return this._offlineCtx}set paused(e){e&&this._ctx.state==="running"?this._ctx.suspend():!e&&this._ctx.state==="suspended"&&this._ctx.resume(),this._paused=e}get paused(){return this._paused}refresh(){this.events.emit("refresh")}refreshPaused(){this.events.emit("refreshPaused")}toggleMute(){return this.muted=!this.muted,this.refresh(),this.muted}togglePause(){return this.paused=!this.paused,this.refreshPaused(),this._paused}decode(e,t){const i=o=>{t(new Error(o?.message||"Unable to decode file"))},n=this._offlineCtx.decodeAudioData(e,o=>{t(null,o)},i);n&&n.catch(i)}}class se{constructor(){this.init()}init(){return this.supported&&(this._webAudioContext=new b),this._htmlAudioContext=new I,this._sounds={},this.useLegacy=!this.supported,this}get context(){return this._context}get filtersAll(){return this.useLegacy?[]:this._context.filters}set filtersAll(e){this.useLegacy||(this._context.filters=e)}get supported(){return b.AudioContext!==null}add(e,t){if(typeof e=="object"){const o={};for(const r in e){const a=this._getOptions(e[r],t);o[r]=this.add(r,a)}return o}if(console.assert(!this._sounds[e],`Sound with alias ${e} already exists.`),t instanceof w)return this._sounds[e]=t,t;const i=this._getOptions(t),n=w.from(i);return this._sounds[e]=n,n}_getOptions(e,t){let i;return typeof e=="string"?i={url:e}:Array.isArray(e)?i={url:e}:e instanceof ArrayBuffer||e instanceof AudioBuffer||e instanceof HTMLAudioElement?i={source:e}:i=e,i={...i,...t||{}},i}get useLegacy(){return this._useLegacy}set useLegacy(e){this._useLegacy=e,this._context=!e&&this.supported?this._webAudioContext:this._htmlAudioContext}get disableAutoPause(){return!this._webAudioContext.autoPause}set disableAutoPause(e){this._webAudioContext.autoPause=!e}remove(e){return this.exists(e,!0),this._sounds[e].destroy(),delete this._sounds[e],this}get volumeAll(){return this._context.volume}set volumeAll(e){this._context.volume=e,this._context.refresh()}get speedAll(){return this._context.speed}set speedAll(e){this._context.speed=e,this._context.refresh()}togglePauseAll(){return this._context.togglePause()}pauseAll(){return this._context.paused=!0,this._context.refreshPaused(),this}resumeAll(){return this._context.paused=!1,this._context.refreshPaused(),this}toggleMuteAll(){return this._context.toggleMute()}muteAll(){return this._context.muted=!0,this._context.refresh(),this}unmuteAll(){return this._context.muted=!1,this._context.refresh(),this}removeAll(){for(const e in this._sounds)this._sounds[e].destroy(),delete this._sounds[e];return this}stopAll(){for(const e in this._sounds)this._sounds[e].stop();return this}exists(e,t=!1){const i=!!this._sounds[e];return t&&console.assert(i,`No sound matching alias '${e}'.`),i}isPlaying(){for(const e in this._sounds)if(this._sounds[e].isPlaying)return!0;return!1}find(e){return this.exists(e,!0),this._sounds[e]}play(e,t){return this.find(e).play(t)}stop(e){return this.find(e).stop()}pause(e){return this.find(e).pause()}resume(e){return this.find(e).resume()}volume(e,t){const i=this.find(e);return t!==void 0&&(i.volume=t),i.volume}speed(e,t){const i=this.find(e);return t!==void 0&&(i.speed=t),i.speed}duration(e){return this.find(e).duration}close(){return this.removeAll(),this._sounds=null,this._webAudioContext&&(this._webAudioContext.destroy(),this._webAudioContext=null),this._htmlAudioContext&&(this._htmlAudioContext.destroy(),this._htmlAudioContext=null),this._context=null,this}}let D=0;function ie(s,e){const t=`alias${D++}`;return l().add(t,{url:s,preload:!0,autoPlay:!0,loaded:i=>{i&&(console.error(i),l().remove(t),e&&e(i))},complete:()=>{l().remove(t),e&&e(null)}}),t}function ne(s,e){const t=document.createElement("canvas");e={width:512,height:128,fill:"black",...e||{}},t.width=e.width,t.height=e.height;const i=new j({resource:t});if(!(s.media instanceof L))return i;const n=s.media;console.assert(!!n.buffer,"No buffer found, load first");const o=t.getContext("2d");o.fillStyle=e.fill;const r=n.buffer.getChannelData(0),a=Math.ceil(r.length/e.width),h=e.height/2;for(let d=0;d<e.width;d++){let c=1,g=-1;for(let f=0;f<a;f++){const p=r[d*a+f];p<c&&(c=p),p>g&&(g=p)}o.fillRect(d,(1+c)*h,1,Math.max(1,(g-c)*h))}return i}function oe(s=200,e=1){const t=w.from({singleInstance:!0});if(!(t.media instanceof L))return t;const i=t.media,n=t.context,o=1,r=48e3,a=2,h=n.audioContext.createBuffer(o,e*r,r),d=h.getChannelData(0);for(let c=0;c<d.length;c++){const g=c/h.sampleRate,f=s*g*2*Math.PI;d[c]=Math.sin(f)*a}return i.buffer=h,t.isLoaded=!0,t}const le=Object.freeze(Object.defineProperty({__proto__:null,get PLAY_ID(){return D},extensions:P,mimes:O,playOnce:ie,render:ne,sineTone:oe,supported:A,validateFormats:R},Symbol.toStringTag,{value:"Module"})),de=Object.freeze(Object.defineProperty({__proto__:null,WebAudioContext:b,WebAudioInstance:V,WebAudioMedia:L,WebAudioNodes:M,WebAudioUtils:_},Symbol.toStringTag,{value:"Module"})),k=s=>{const e=s.src;let t=s?.alias?.[0];return(!t||s.src===t)&&(t=F.basename(e,F.extname(e))),t},re={extension:T.Asset,detection:{test:async()=>!0,add:async s=>[...s,...P.filter(e=>A[e])],remove:async s=>s.filter(e=>s.includes(e))},loader:{name:"sound",extension:{type:[T.LoadParser],priority:q.High},test(s){const e=F.extname(s).slice(1);return!!A[e]||O.some(t=>s.startsWith(`data:${t}`))},async load(s,e){const t=await new Promise((i,n)=>w.from({...e.data,url:s,preload:!0,loaded(o,r){o?n(o):i(r),e.data?.loaded?.(o,r)}}));return l().add(k(e),t),t},async unload(s,e){l().remove(k(e))}}};H.add(re);const ce=N(new se);export{y as Filter,K as Filterable,w as Sound,se as SoundLibrary,ee as SoundSprite,ue as filters,he as htmlaudio,ce as sound,re as soundAsset,le as utils,de as webaudio};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{bs as y,_ as g,$ as V,a2 as b,a0 as O,Z as S,bt as ct,bu as C,bv as Mt,bm as lt,bw as at,bx as Et,by as Ft}from"./index-DbQzGLxv.js";var nt={},L={},pt;function G(){if(pt)return L;pt=1,Object.defineProperty(L,"__esModule",{value:!0}),L.Collector=void 0;let s=class{constructor(i){this.emit=(...e)=>{i.emitCollecting(this,e)}}};return L.Collector=s,L}var R={},ft;function Bt(){if(ft)return R;ft=1,Object.defineProperty(R,"__esModule",{value:!0}),R.CollectorArray=void 0;const s=G();let t=class extends s.Collector{constructor(){super(...arguments),this.result=[]}handleResult(e){return this.result.push(e),!0}getResult(){return this.result}reset(){this.result.length=0}};return R.CollectorArray=t,R}var H={},gt;function Dt(){if(gt)return H;gt=1,Object.defineProperty(H,"__esModule",{value:!0}),H.CollectorLast=void 0;const s=G();let t=class extends s.Collector{handleResult(e){return this.result=e,!0}getResult(){return this.result}reset(){delete this.result}};return H.CollectorLast=t,H}var N={},_t;function Ut(){if(_t)return N;_t=1,Object.defineProperty(N,"__esModule",{value:!0}),N.CollectorUntil0=void 0;const s=G();let t=class extends s.Collector{constructor(){super(...arguments),this.result=!1}handleResult(e){return this.result=e,this.result}getResult(){return this.result}reset(){this.result=!1}};return N.CollectorUntil0=t,N}var W={},wt;function Lt(){if(wt)return W;wt=1,Object.defineProperty(W,"__esModule",{value:!0}),W.CollectorWhile0=void 0;const s=G();let t=class extends s.Collector{constructor(){super(...arguments),this.result=!1}handleResult(e){return this.result=e,!this.result}getResult(){return this.result}reset(){this.result=!1}};return W.CollectorWhile0=t,W}var $={},z={},mt;function Rt(){if(mt)return z;mt=1,Object.defineProperty(z,"__esModule",{value:!0}),z.SignalConnectionImpl=void 0;class s{constructor(i,e){this.link=i,this.parentCleanup=e}disconnect(){return this.link!==null?(this.link.unlink(),this.link=null,this.parentCleanup(),this.parentCleanup=null,!0):!1}set enabled(i){this.link&&this.link.setEnabled(i)}get enabled(){return this.link!==null&&this.link.isEnabled()}}return z.SignalConnectionImpl=s,z}var j={},vt;function Ht(){if(vt)return j;vt=1,Object.defineProperty(j,"__esModule",{value:!0}),j.SignalLink=void 0;let s=class Vt{constructor(i=null,e=null,h=0){this.enabled=!0,this.newLink=!1,this.callback=null,this.prev=i??this,this.next=e??this,this.order=h}isEnabled(){return this.enabled&&!this.newLink}setEnabled(i){this.enabled=i}unlink(){this.callback=null,this.next.prev=this.prev,this.prev.next=this.next}insert(i,e){let h=this.prev;for(;h!==this&&!(h.order<=e);)h=h.prev;const n=new Vt(h,h.next,e);return n.callback=i,h.next=n,n.next.prev=n,n}};return j.SignalLink=s,j}var bt;function Nt(){if(bt)return $;bt=1,Object.defineProperty($,"__esModule",{value:!0}),$.Signal=void 0;const s=Rt(),t=Ht();let i=class{constructor(){this.head=new t.SignalLink,this.hasNewLinks=!1,this.emitDepth=0,this.connectionsCount=0}getConnectionsCount(){return this.connectionsCount}hasConnections(){return this.connectionsCount>0}connect(h,n=0){this.connectionsCount++;const r=this.head.insert(h,n);return this.emitDepth>0&&(this.hasNewLinks=!0,r.newLink=!0),new s.SignalConnectionImpl(r,()=>this.decrementConnectionCount())}decrementConnectionCount(){this.connectionsCount--}disconnect(h){for(let n=this.head.next;n!==this.head;n=n.next)if(n.callback===h)return this.decrementConnectionCount(),n.unlink(),!0;return!1}disconnectAll(){for(;this.head.next!==this.head;)this.head.next.unlink();this.connectionsCount=0}emit(...h){this.emitDepth++;for(let n=this.head.next;n!==this.head;n=n.next)n.isEnabled()&&n.callback&&n.callback.apply(null,h);this.emitDepth--,this.unsetNewLink()}emitCollecting(h,n){this.emitDepth++;for(let r=this.head.next;r!==this.head;r=r.next)if(r.isEnabled()&&r.callback){const o=r.callback.apply(null,n);if(!h.handleResult(o))break}this.emitDepth--,this.unsetNewLink()}unsetNewLink(){if(this.hasNewLinks&&this.emitDepth===0){for(let h=this.head.next;h!==this.head;h=h.next)h.newLink=!1;this.hasNewLinks=!1}}};return $.Signal=i,$}var X={},xt;function Wt(){if(xt)return X;xt=1,Object.defineProperty(X,"__esModule",{value:!0}),X.SignalConnections=void 0;let s=class{constructor(){this.list=[]}add(i){this.list.push(i)}disconnectAll(){for(const i of this.list)i.disconnect();this.list=[]}getCount(){return this.list.length}isEmpty(){return this.list.length===0}};return X.SignalConnections=s,X}var yt;function $t(){return yt||(yt=1,(function(s){Object.defineProperty(s,"__esModule",{value:!0}),s.SignalConnections=s.Signal=s.CollectorWhile0=s.CollectorUntil0=s.CollectorLast=s.CollectorArray=s.Collector=void 0;var t=G();Object.defineProperty(s,"Collector",{enumerable:!0,get:function(){return t.Collector}});var i=Bt();Object.defineProperty(s,"CollectorArray",{enumerable:!0,get:function(){return i.CollectorArray}});var e=Dt();Object.defineProperty(s,"CollectorLast",{enumerable:!0,get:function(){return e.CollectorLast}});var h=Ut();Object.defineProperty(s,"CollectorUntil0",{enumerable:!0,get:function(){return h.CollectorUntil0}});var n=Lt();Object.defineProperty(s,"CollectorWhile0",{enumerable:!0,get:function(){return n.CollectorWhile0}});var r=Nt();Object.defineProperty(s,"Signal",{enumerable:!0,get:function(){return r.Signal}});var o=Wt();Object.defineProperty(s,"SignalConnections",{enumerable:!0,get:function(){return o.SignalConnections}})})(nt)),nt}var f=$t(),zt=Object.defineProperty,jt=(s,t,i)=>t in s?zt(s,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):s[t]=i,P=(s,t,i)=>jt(s,typeof t!="symbol"?t+"":t,i);class Xt{constructor(){P(this,"_isMouseIn"),P(this,"_isDown"),P(this,"onDown"),P(this,"onUp"),P(this,"onUpOut"),P(this,"onOut"),P(this,"onPress"),P(this,"onHover"),this.onPress=new f.Signal,this.onDown=new f.Signal,this.onUp=new f.Signal,this.onHover=new f.Signal,this.onOut=new f.Signal,this.onUpOut=new f.Signal}connectEvents(t){y.any?(t.on("pointerdown",this.processDown,this),t.on("pointerup",this.processUp,this),t.on("pointerupoutside",this.processUpOut,this),t.on("pointerout",this.processOut,this),t.on("pointertap",this.processPress,this),t.on("pointerover",this.processOver,this)):(t.on("mousedown",this.processDown,this),t.on("mouseup",this.processUp,this),t.on("mouseupoutside",this.processUpOut,this),t.on("mouseout",this.processOut,this),t.on("click",this.processPress,this),t.on("mouseover",this.processOver,this))}disconnectEvents(t){y.any?(t.off("pointerdown",this.processDown,this),t.off("pointerup",this.processUp,this),t.off("pointerupoutside",this.processUpOut,this),t.off("pointerout",this.processOut,this),t.off("pointertap",this.processPress,this),t.off("pointerover",this.processOver,this)):(t.off("mousedown",this.processDown,this),t.off("mouseup",this.processUp,this),t.off("mouseupoutside",this.processUpOut,this),t.off("mouseout",this.processOut,this),t.off("click",this.processPress,this),t.off("mouseover",this.processOver,this))}processDown(t){this._isDown=!0,this.onDown.emit(this,t),this.down(t)}processUp(t){this._isDown&&(this.onUp.emit(this,t),this.up(t)),this._isDown=!1}processUpOut(t){this._isDown&&(this.onUp.emit(this,t),this.onUpOut.emit(this,t),this.up(t),this.upOut(t)),this._isDown=!1}processOut(t){this._isMouseIn&&(this._isMouseIn=!1,this.onOut.emit(this,t),this.out(t))}processPress(t){this._isDown=!1,this.onPress.emit(this,t),this.press(t)}processOver(t){y.any||(this._isMouseIn=!0,this.onHover.emit(this,t),this.hover(t))}down(t){}up(t){}upOut(t){}out(t){}press(t){}hover(t){}get isDown(){return this._isDown}}var Yt=Object.defineProperty,qt=(s,t,i)=>t in s?Yt(s,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):s[t]=i,T=(s,t,i)=>qt(s,typeof t!="symbol"?t+"":t,i);class Jt extends Xt{constructor(t){super(),T(this,"_view"),t&&(this.view=t,this.enabled=!0)}set view(t){!!this._view&&this.disconnectEvents(this._view),this._view=t,this.connectEvents(this._view)}get view(){return this._view}set enabled(t){if(!this.view){console.error("Button view is not set. Please set it before enabling the button.");return}this.view.eventMode=t?"static":"auto",this.view.cursor=t?"pointer":"default",!t&&this.isDown&&this.processUp()}get enabled(){return this.view.eventMode==="static"}}class Kt extends g{constructor(t){super(),T(this,"button"),T(this,"onDown"),T(this,"onUp"),T(this,"onUpOut"),T(this,"onOut"),T(this,"onPress"),T(this,"onHover"),this.button=new Jt(this),this.button.enabled=!0,t&&this.addChild(t),this.onPress=this.button.onPress,this.onDown=this.button.onDown,this.onUp=this.button.onUp,this.onHover=this.button.onHover,this.onOut=this.button.onOut,this.onUpOut=this.button.onUpOut}set enabled(t){this.button.enabled=t}get enabled(){return this.button.enabled}}function w(s){return typeof s=="string"?V.from(s):s instanceof b?new V(s):s}var Gt=Object.defineProperty,Zt=(s,t,i)=>t in s?Gt(s,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):s[t]=i,Z=(s,t,i)=>Zt(s,typeof t!="symbol"?t+"":t,i);class Qt extends g{constructor(t,i,e){super(),Z(this,"_triggerEvents",new Set(["onPress"])),Z(this,"innerView"),Z(this,"_active"),Z(this,"onChange"),this.innerView=new g,this.addChild(this.innerView),this.onChange=new f.Signal,t&&(this.views=t),i&&(this.triggerEvents=i),e&&this.views.length>0&&(this.active=e),this.setInteractionEvents()}setInteractionEvents(){this.innerView.eventMode="static",this.innerView.on("pointerdown",()=>this.handleEvents("onDown")),this.innerView.on("pointerup",()=>this.handleEvents("onUp")),this.innerView.on("pointerupoutside",()=>this.handleEvents("onUpOut")),this.innerView.on("pointerout",()=>this.handleEvents("onOut")),this.innerView.on("pointertap",()=>this.handleEvents("onPress")),this.innerView.on("pointerover",()=>this.handleEvents("onHover"))}handleEvents(t){this._triggerEvents.has(t)&&this.switch()}get activeView(){if(this.views&&this.views[this.active])return this.views[this.active]}set views(t){this.innerView.removeChildren(),t.forEach(i=>this.add(i))}get views(){return this.innerView.children}add(t){const i=w(t);this.innerView.addChild(i),i.visible=!1,this.views.length===1&&(this.active=0)}remove(t){this.views[t]&&this.innerView.removeChild(this.views[t])}set triggerEvents(t){this._triggerEvents=new Set(Array.isArray(t)?t:[t])}get triggerEvents(){return Array.from(this._triggerEvents)}switch(t){if(t!==void 0&&t===this.active)return;const i=this.active;if(this.forceSwitch(t),i!==this.active){const e=this.views.length>2?this.active:this.active===1;this.onChange.emit(e)}}forceSwitch(t){if(!(t!==void 0&&t===this.active)){if(this.activeView&&(this.activeView.visible=!1),t!==void 0&&!this.views[t])throw new Error(`View with id ${t} does not exist.`);this._active=t!==void 0?t:this.nextActive,this._active!==void 0&&(this.views[this.active].visible=!0)}}get nextActive(){if(this.views.length!==0)return this.active<this.views.length-1?this.active+1:0}set active(t){this.switch(t)}get active(){return this._active}}function ti(s){s&&(s.parent&&s.parent.removeChild(s),s.destroy(),s=null)}var ii=Object.defineProperty,ei=(s,t,i)=>t in s?ii(s,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):s[t]=i,Q=(s,t,i)=>ei(s,typeof t!="symbol"?t+"":t,i);class Zi extends Qt{constructor(t){super(),Q(this,"labelText"),Q(this,"onCheck"),Q(this,"_style"),Q(this,"_textClass"),this._textClass=t.TextClass??O,this.text=t.text,this.style=t.style,this.checked=t.checked,this.triggerEvents=["onPress"],this.innerView.cursor="pointer",this.onCheck=new f.Signal,this.onChange.connect(()=>this.onCheck.emit(this.checked))}addLabel(t,i){t&&(this.labelText=new this._textClass({text:t??"",style:i??this._style?.text}),this.addChild(this.labelText),this.labelText.cursor="pointer",this.labelText.eventMode="static",this.labelText.on("pointertap",()=>this.checked=!this.checked),this.alignText())}set text(t){if(!t){ti(this.labelText),this.labelText=void 0;return}this.labelText?this.labelText.text=t:this.addLabel(t),this.alignText()}get text(){return this.labelText?.text??""}set style(t){const i=this.checked;this._style=t;const{unchecked:e,checked:h}=t,n=w(e),r=w(h);this.views=[n,r],i?(r.visible=!0,this.active=1):n.visible=!0,this.labelText?(r.visible=!0,this.active=1,t.text&&(this.labelText.style=t.text),this.alignText()):n.visible=!0}get style(){return this._style}alignText(){if(!this.style||!this.labelText||!this.views)return;const t=this.views[0];t&&(this.labelText.x=t.width+10+(this._style?.textOffset?.x??0),this.labelText.y=(t.height-this.labelText.height)/2+(this._style?.textOffset?.y??0))}get checked(){return this.active===1}set checked(t){this.switch(t?1:0)}forceCheck(t){this.forceSwitch(t?1:0)}}var si=Object.defineProperty,hi=(s,t,i)=>t in s?si(s,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):s[t]=i,Y=(s,t,i)=>hi(s,typeof t!="symbol"?t+"":t,i);class Qi extends g{constructor(t){super(),Y(this,"_progress",0),Y(this,"options"),Y(this,"bgCircle",new S),Y(this,"fillCircle",new S),Y(this,"innerView",new g),this.options=t,this.addChild(this.innerView),this.innerView.addChild(this.bgCircle,this.fillCircle),this.addBackground(),t.value&&(this.progress=t.value)}addBackground(){const{backgroundColor:t,lineWidth:i,radius:e,backgroundAlpha:h}=this.options;let n=1;h>0&&(n=h),t===void 0&&(n=1e-6),this.bgCircle.circle(0,0,e).stroke({width:i,color:t,alpha:n})}set progress(t){t>100&&(t=100),t<0&&(t=0),this._progress=t;const{lineWidth:i,radius:e,fillColor:h,fillAlpha:n,cap:r}=this.options;if(t===0&&n===0){this.fillCircle.clear();return}const o=0,a=360/100*t;this.fillCircle.clear().arc(0,0,e,(-90+o)*ct,(-90+o+a)*ct).stroke({width:i,color:h,cap:r,alpha:n})}get progress(){return this._progress}}var ni=Object.defineProperty,ri=(s,t,i)=>t in s?ni(s,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):s[t]=i,k=(s,t,i)=>ri(s,typeof t!="symbol"?t+"":t,i);class oi extends g{constructor(t){super(),k(this,"bg"),k(this,"fill"),k(this,"fillMask"),k(this,"progressStart",0),k(this,"_progress",0),k(this,"options"),k(this,"innerView"),k(this,"_view"),this.options=t,this.innerView=new g,this.addChild(this.innerView),t?.bg&&t?.fill&&this.init(t)}init({bg:t,fill:i,fillPaddings:e,progress:h}){this.setBackground(t),this.setFill(i,e),this.progress=h}setBackground(t){this.bg&&this.bg.destroy(),this.options?.nineSliceSprite&&(typeof t=="string"?this.bg=new C({texture:b.from(t),leftWidth:this.options.nineSliceSprite.bg[0],topHeight:this.options.nineSliceSprite.bg[1],rightWidth:this.options.nineSliceSprite.bg[2],bottomHeight:this.options.nineSliceSprite.bg[3]}):t instanceof b?this.bg=new C({texture:t,leftWidth:this.options.nineSliceSprite.bg[0],topHeight:this.options.nineSliceSprite.bg[1],rightWidth:this.options.nineSliceSprite.bg[2],bottomHeight:this.options.nineSliceSprite.bg[3]}):console.warn(`NineSliceSprite can not be used with views set as Container.
|
|
1
|
+
import{bs as y,_ as g,$ as V,a2 as b,a0 as O,Z as S,bt as ct,bu as C,bv as Mt,bm as lt,bw as at,bx as Et,by as Ft}from"./index-8A4JLNIp.js";var nt={},L={},pt;function G(){if(pt)return L;pt=1,Object.defineProperty(L,"__esModule",{value:!0}),L.Collector=void 0;let s=class{constructor(i){this.emit=(...e)=>{i.emitCollecting(this,e)}}};return L.Collector=s,L}var R={},ft;function Bt(){if(ft)return R;ft=1,Object.defineProperty(R,"__esModule",{value:!0}),R.CollectorArray=void 0;const s=G();let t=class extends s.Collector{constructor(){super(...arguments),this.result=[]}handleResult(e){return this.result.push(e),!0}getResult(){return this.result}reset(){this.result.length=0}};return R.CollectorArray=t,R}var H={},gt;function Dt(){if(gt)return H;gt=1,Object.defineProperty(H,"__esModule",{value:!0}),H.CollectorLast=void 0;const s=G();let t=class extends s.Collector{handleResult(e){return this.result=e,!0}getResult(){return this.result}reset(){delete this.result}};return H.CollectorLast=t,H}var N={},_t;function Ut(){if(_t)return N;_t=1,Object.defineProperty(N,"__esModule",{value:!0}),N.CollectorUntil0=void 0;const s=G();let t=class extends s.Collector{constructor(){super(...arguments),this.result=!1}handleResult(e){return this.result=e,this.result}getResult(){return this.result}reset(){this.result=!1}};return N.CollectorUntil0=t,N}var W={},wt;function Lt(){if(wt)return W;wt=1,Object.defineProperty(W,"__esModule",{value:!0}),W.CollectorWhile0=void 0;const s=G();let t=class extends s.Collector{constructor(){super(...arguments),this.result=!1}handleResult(e){return this.result=e,!this.result}getResult(){return this.result}reset(){this.result=!1}};return W.CollectorWhile0=t,W}var $={},z={},mt;function Rt(){if(mt)return z;mt=1,Object.defineProperty(z,"__esModule",{value:!0}),z.SignalConnectionImpl=void 0;class s{constructor(i,e){this.link=i,this.parentCleanup=e}disconnect(){return this.link!==null?(this.link.unlink(),this.link=null,this.parentCleanup(),this.parentCleanup=null,!0):!1}set enabled(i){this.link&&this.link.setEnabled(i)}get enabled(){return this.link!==null&&this.link.isEnabled()}}return z.SignalConnectionImpl=s,z}var j={},vt;function Ht(){if(vt)return j;vt=1,Object.defineProperty(j,"__esModule",{value:!0}),j.SignalLink=void 0;let s=class Vt{constructor(i=null,e=null,h=0){this.enabled=!0,this.newLink=!1,this.callback=null,this.prev=i??this,this.next=e??this,this.order=h}isEnabled(){return this.enabled&&!this.newLink}setEnabled(i){this.enabled=i}unlink(){this.callback=null,this.next.prev=this.prev,this.prev.next=this.next}insert(i,e){let h=this.prev;for(;h!==this&&!(h.order<=e);)h=h.prev;const n=new Vt(h,h.next,e);return n.callback=i,h.next=n,n.next.prev=n,n}};return j.SignalLink=s,j}var bt;function Nt(){if(bt)return $;bt=1,Object.defineProperty($,"__esModule",{value:!0}),$.Signal=void 0;const s=Rt(),t=Ht();let i=class{constructor(){this.head=new t.SignalLink,this.hasNewLinks=!1,this.emitDepth=0,this.connectionsCount=0}getConnectionsCount(){return this.connectionsCount}hasConnections(){return this.connectionsCount>0}connect(h,n=0){this.connectionsCount++;const r=this.head.insert(h,n);return this.emitDepth>0&&(this.hasNewLinks=!0,r.newLink=!0),new s.SignalConnectionImpl(r,()=>this.decrementConnectionCount())}decrementConnectionCount(){this.connectionsCount--}disconnect(h){for(let n=this.head.next;n!==this.head;n=n.next)if(n.callback===h)return this.decrementConnectionCount(),n.unlink(),!0;return!1}disconnectAll(){for(;this.head.next!==this.head;)this.head.next.unlink();this.connectionsCount=0}emit(...h){this.emitDepth++;for(let n=this.head.next;n!==this.head;n=n.next)n.isEnabled()&&n.callback&&n.callback.apply(null,h);this.emitDepth--,this.unsetNewLink()}emitCollecting(h,n){this.emitDepth++;for(let r=this.head.next;r!==this.head;r=r.next)if(r.isEnabled()&&r.callback){const o=r.callback.apply(null,n);if(!h.handleResult(o))break}this.emitDepth--,this.unsetNewLink()}unsetNewLink(){if(this.hasNewLinks&&this.emitDepth===0){for(let h=this.head.next;h!==this.head;h=h.next)h.newLink=!1;this.hasNewLinks=!1}}};return $.Signal=i,$}var X={},xt;function Wt(){if(xt)return X;xt=1,Object.defineProperty(X,"__esModule",{value:!0}),X.SignalConnections=void 0;let s=class{constructor(){this.list=[]}add(i){this.list.push(i)}disconnectAll(){for(const i of this.list)i.disconnect();this.list=[]}getCount(){return this.list.length}isEmpty(){return this.list.length===0}};return X.SignalConnections=s,X}var yt;function $t(){return yt||(yt=1,(function(s){Object.defineProperty(s,"__esModule",{value:!0}),s.SignalConnections=s.Signal=s.CollectorWhile0=s.CollectorUntil0=s.CollectorLast=s.CollectorArray=s.Collector=void 0;var t=G();Object.defineProperty(s,"Collector",{enumerable:!0,get:function(){return t.Collector}});var i=Bt();Object.defineProperty(s,"CollectorArray",{enumerable:!0,get:function(){return i.CollectorArray}});var e=Dt();Object.defineProperty(s,"CollectorLast",{enumerable:!0,get:function(){return e.CollectorLast}});var h=Ut();Object.defineProperty(s,"CollectorUntil0",{enumerable:!0,get:function(){return h.CollectorUntil0}});var n=Lt();Object.defineProperty(s,"CollectorWhile0",{enumerable:!0,get:function(){return n.CollectorWhile0}});var r=Nt();Object.defineProperty(s,"Signal",{enumerable:!0,get:function(){return r.Signal}});var o=Wt();Object.defineProperty(s,"SignalConnections",{enumerable:!0,get:function(){return o.SignalConnections}})})(nt)),nt}var f=$t(),zt=Object.defineProperty,jt=(s,t,i)=>t in s?zt(s,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):s[t]=i,P=(s,t,i)=>jt(s,typeof t!="symbol"?t+"":t,i);class Xt{constructor(){P(this,"_isMouseIn"),P(this,"_isDown"),P(this,"onDown"),P(this,"onUp"),P(this,"onUpOut"),P(this,"onOut"),P(this,"onPress"),P(this,"onHover"),this.onPress=new f.Signal,this.onDown=new f.Signal,this.onUp=new f.Signal,this.onHover=new f.Signal,this.onOut=new f.Signal,this.onUpOut=new f.Signal}connectEvents(t){y.any?(t.on("pointerdown",this.processDown,this),t.on("pointerup",this.processUp,this),t.on("pointerupoutside",this.processUpOut,this),t.on("pointerout",this.processOut,this),t.on("pointertap",this.processPress,this),t.on("pointerover",this.processOver,this)):(t.on("mousedown",this.processDown,this),t.on("mouseup",this.processUp,this),t.on("mouseupoutside",this.processUpOut,this),t.on("mouseout",this.processOut,this),t.on("click",this.processPress,this),t.on("mouseover",this.processOver,this))}disconnectEvents(t){y.any?(t.off("pointerdown",this.processDown,this),t.off("pointerup",this.processUp,this),t.off("pointerupoutside",this.processUpOut,this),t.off("pointerout",this.processOut,this),t.off("pointertap",this.processPress,this),t.off("pointerover",this.processOver,this)):(t.off("mousedown",this.processDown,this),t.off("mouseup",this.processUp,this),t.off("mouseupoutside",this.processUpOut,this),t.off("mouseout",this.processOut,this),t.off("click",this.processPress,this),t.off("mouseover",this.processOver,this))}processDown(t){this._isDown=!0,this.onDown.emit(this,t),this.down(t)}processUp(t){this._isDown&&(this.onUp.emit(this,t),this.up(t)),this._isDown=!1}processUpOut(t){this._isDown&&(this.onUp.emit(this,t),this.onUpOut.emit(this,t),this.up(t),this.upOut(t)),this._isDown=!1}processOut(t){this._isMouseIn&&(this._isMouseIn=!1,this.onOut.emit(this,t),this.out(t))}processPress(t){this._isDown=!1,this.onPress.emit(this,t),this.press(t)}processOver(t){y.any||(this._isMouseIn=!0,this.onHover.emit(this,t),this.hover(t))}down(t){}up(t){}upOut(t){}out(t){}press(t){}hover(t){}get isDown(){return this._isDown}}var Yt=Object.defineProperty,qt=(s,t,i)=>t in s?Yt(s,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):s[t]=i,T=(s,t,i)=>qt(s,typeof t!="symbol"?t+"":t,i);class Jt extends Xt{constructor(t){super(),T(this,"_view"),t&&(this.view=t,this.enabled=!0)}set view(t){!!this._view&&this.disconnectEvents(this._view),this._view=t,this.connectEvents(this._view)}get view(){return this._view}set enabled(t){if(!this.view){console.error("Button view is not set. Please set it before enabling the button.");return}this.view.eventMode=t?"static":"auto",this.view.cursor=t?"pointer":"default",!t&&this.isDown&&this.processUp()}get enabled(){return this.view.eventMode==="static"}}class Kt extends g{constructor(t){super(),T(this,"button"),T(this,"onDown"),T(this,"onUp"),T(this,"onUpOut"),T(this,"onOut"),T(this,"onPress"),T(this,"onHover"),this.button=new Jt(this),this.button.enabled=!0,t&&this.addChild(t),this.onPress=this.button.onPress,this.onDown=this.button.onDown,this.onUp=this.button.onUp,this.onHover=this.button.onHover,this.onOut=this.button.onOut,this.onUpOut=this.button.onUpOut}set enabled(t){this.button.enabled=t}get enabled(){return this.button.enabled}}function w(s){return typeof s=="string"?V.from(s):s instanceof b?new V(s):s}var Gt=Object.defineProperty,Zt=(s,t,i)=>t in s?Gt(s,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):s[t]=i,Z=(s,t,i)=>Zt(s,typeof t!="symbol"?t+"":t,i);class Qt extends g{constructor(t,i,e){super(),Z(this,"_triggerEvents",new Set(["onPress"])),Z(this,"innerView"),Z(this,"_active"),Z(this,"onChange"),this.innerView=new g,this.addChild(this.innerView),this.onChange=new f.Signal,t&&(this.views=t),i&&(this.triggerEvents=i),e&&this.views.length>0&&(this.active=e),this.setInteractionEvents()}setInteractionEvents(){this.innerView.eventMode="static",this.innerView.on("pointerdown",()=>this.handleEvents("onDown")),this.innerView.on("pointerup",()=>this.handleEvents("onUp")),this.innerView.on("pointerupoutside",()=>this.handleEvents("onUpOut")),this.innerView.on("pointerout",()=>this.handleEvents("onOut")),this.innerView.on("pointertap",()=>this.handleEvents("onPress")),this.innerView.on("pointerover",()=>this.handleEvents("onHover"))}handleEvents(t){this._triggerEvents.has(t)&&this.switch()}get activeView(){if(this.views&&this.views[this.active])return this.views[this.active]}set views(t){this.innerView.removeChildren(),t.forEach(i=>this.add(i))}get views(){return this.innerView.children}add(t){const i=w(t);this.innerView.addChild(i),i.visible=!1,this.views.length===1&&(this.active=0)}remove(t){this.views[t]&&this.innerView.removeChild(this.views[t])}set triggerEvents(t){this._triggerEvents=new Set(Array.isArray(t)?t:[t])}get triggerEvents(){return Array.from(this._triggerEvents)}switch(t){if(t!==void 0&&t===this.active)return;const i=this.active;if(this.forceSwitch(t),i!==this.active){const e=this.views.length>2?this.active:this.active===1;this.onChange.emit(e)}}forceSwitch(t){if(!(t!==void 0&&t===this.active)){if(this.activeView&&(this.activeView.visible=!1),t!==void 0&&!this.views[t])throw new Error(`View with id ${t} does not exist.`);this._active=t!==void 0?t:this.nextActive,this._active!==void 0&&(this.views[this.active].visible=!0)}}get nextActive(){if(this.views.length!==0)return this.active<this.views.length-1?this.active+1:0}set active(t){this.switch(t)}get active(){return this._active}}function ti(s){s&&(s.parent&&s.parent.removeChild(s),s.destroy(),s=null)}var ii=Object.defineProperty,ei=(s,t,i)=>t in s?ii(s,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):s[t]=i,Q=(s,t,i)=>ei(s,typeof t!="symbol"?t+"":t,i);class Zi extends Qt{constructor(t){super(),Q(this,"labelText"),Q(this,"onCheck"),Q(this,"_style"),Q(this,"_textClass"),this._textClass=t.TextClass??O,this.text=t.text,this.style=t.style,this.checked=t.checked,this.triggerEvents=["onPress"],this.innerView.cursor="pointer",this.onCheck=new f.Signal,this.onChange.connect(()=>this.onCheck.emit(this.checked))}addLabel(t,i){t&&(this.labelText=new this._textClass({text:t??"",style:i??this._style?.text}),this.addChild(this.labelText),this.labelText.cursor="pointer",this.labelText.eventMode="static",this.labelText.on("pointertap",()=>this.checked=!this.checked),this.alignText())}set text(t){if(!t){ti(this.labelText),this.labelText=void 0;return}this.labelText?this.labelText.text=t:this.addLabel(t),this.alignText()}get text(){return this.labelText?.text??""}set style(t){const i=this.checked;this._style=t;const{unchecked:e,checked:h}=t,n=w(e),r=w(h);this.views=[n,r],i?(r.visible=!0,this.active=1):n.visible=!0,this.labelText?(r.visible=!0,this.active=1,t.text&&(this.labelText.style=t.text),this.alignText()):n.visible=!0}get style(){return this._style}alignText(){if(!this.style||!this.labelText||!this.views)return;const t=this.views[0];t&&(this.labelText.x=t.width+10+(this._style?.textOffset?.x??0),this.labelText.y=(t.height-this.labelText.height)/2+(this._style?.textOffset?.y??0))}get checked(){return this.active===1}set checked(t){this.switch(t?1:0)}forceCheck(t){this.forceSwitch(t?1:0)}}var si=Object.defineProperty,hi=(s,t,i)=>t in s?si(s,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):s[t]=i,Y=(s,t,i)=>hi(s,typeof t!="symbol"?t+"":t,i);class Qi extends g{constructor(t){super(),Y(this,"_progress",0),Y(this,"options"),Y(this,"bgCircle",new S),Y(this,"fillCircle",new S),Y(this,"innerView",new g),this.options=t,this.addChild(this.innerView),this.innerView.addChild(this.bgCircle,this.fillCircle),this.addBackground(),t.value&&(this.progress=t.value)}addBackground(){const{backgroundColor:t,lineWidth:i,radius:e,backgroundAlpha:h}=this.options;let n=1;h>0&&(n=h),t===void 0&&(n=1e-6),this.bgCircle.circle(0,0,e).stroke({width:i,color:t,alpha:n})}set progress(t){t>100&&(t=100),t<0&&(t=0),this._progress=t;const{lineWidth:i,radius:e,fillColor:h,fillAlpha:n,cap:r}=this.options;if(t===0&&n===0){this.fillCircle.clear();return}const o=0,a=360/100*t;this.fillCircle.clear().arc(0,0,e,(-90+o)*ct,(-90+o+a)*ct).stroke({width:i,color:h,cap:r,alpha:n})}get progress(){return this._progress}}var ni=Object.defineProperty,ri=(s,t,i)=>t in s?ni(s,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):s[t]=i,k=(s,t,i)=>ri(s,typeof t!="symbol"?t+"":t,i);class oi extends g{constructor(t){super(),k(this,"bg"),k(this,"fill"),k(this,"fillMask"),k(this,"progressStart",0),k(this,"_progress",0),k(this,"options"),k(this,"innerView"),k(this,"_view"),this.options=t,this.innerView=new g,this.addChild(this.innerView),t?.bg&&t?.fill&&this.init(t)}init({bg:t,fill:i,fillPaddings:e,progress:h}){this.setBackground(t),this.setFill(i,e),this.progress=h}setBackground(t){this.bg&&this.bg.destroy(),this.options?.nineSliceSprite&&(typeof t=="string"?this.bg=new C({texture:b.from(t),leftWidth:this.options.nineSliceSprite.bg[0],topHeight:this.options.nineSliceSprite.bg[1],rightWidth:this.options.nineSliceSprite.bg[2],bottomHeight:this.options.nineSliceSprite.bg[3]}):t instanceof b?this.bg=new C({texture:t,leftWidth:this.options.nineSliceSprite.bg[0],topHeight:this.options.nineSliceSprite.bg[1],rightWidth:this.options.nineSliceSprite.bg[2],bottomHeight:this.options.nineSliceSprite.bg[3]}):console.warn(`NineSliceSprite can not be used with views set as Container.
|
|
2
2
|
Pass the texture or texture name as instead of the Container extended instance.`)),this.bg||(this.bg=w(t)),this.innerView.addChildAt(this.bg,0)}setFill(t,i){if(this.fill&&this.fill.destroy(),this.bg instanceof V&&t===this.bg){console.warn("Can not use same Sprite instance for bg and fill.");return}this.options?.nineSliceSprite?typeof t=="string"||t instanceof b?this.fill=new C({texture:typeof t=="string"?b.from(t):t,leftWidth:this.options.nineSliceSprite.fill[0],topHeight:this.options.nineSliceSprite.fill[1],rightWidth:this.options.nineSliceSprite.fill[2],bottomHeight:this.options.nineSliceSprite.fill[3]}):(console.warn(`NineSliceSprite can not be used with views set as Container.
|
|
3
3
|
Pass the texture or texture name as instead of the Container extended instance.`),this.fill=w(t)):this.fill=w(t),this.innerView.addChildAt(this.fill,1);const e=i?.left??0,h=i?.top??0;this.fill.x=e,this.fill.y=h,this.fillMask&&(this.fill.mask=null,this.fillMask.destroy());const n=this.fill.width/2,r=this.fill.width/2,o=this.fill.height/2,a=this.fill.height/2;let l=b.WHITE;this.fill instanceof V&&this.fill.texture&&(l=this.fill.texture),this.fillMask=new C({texture:l,leftWidth:n,topHeight:o,rightWidth:r,bottomHeight:a}),this.fillMask.position.copyFrom(this.fill),this.addChild(this.fillMask),this.fill.mask=this.fillMask}validate(t){return t=Math.round(t),t<0?0:t>100?100:t}set progress(t){this._progress=this.validate(t),this.fill&&this.fillMask&&(this.fill.mask=null,this.fillMask.width=this.fill.width/100*(this._progress-this.progressStart),this.fillMask.x=this.progressStart/100*this.fill.width+this.fill.x,this.fillMask.height=this.fill.height,this.fill.mask=this.fillMask)}get progress(){return this._progress}set width(t){if(this.options?.nineSliceSprite){if(this.bg&&(this.bg.width=t),this.fill){const i=this.options.fillPaddings?.left??0,e=this.options.fillPaddings?.right??0;this.fill.width=t-i-e,this.fillMask.width=t-i-e}this.progress=this._progress}else super.width=t}get width(){return super.width}set height(t){if(this.options?.nineSliceSprite){if(this.bg&&(this.bg.height=t),this.fill){const i=this.options.fillPaddings?.top??0,e=this.options.fillPaddings?.bottom??0;this.fill.height=t-i-e,this.fillMask.height=t-i-e}this.progress=this._progress}else super.height=t}get height(){return super.height}setSize(t,i){if(this.options?.nineSliceSprite){if(this.bg&&this.bg.setSize(t,i),this.fill){typeof t=="object"?(i=t.height??t.width,t=t.width):i=i??t;const e=this.options.fillPaddings?.top??0,h=this.options.fillPaddings?.bottom??0,n=this.options.fillPaddings?.left??0,r=this.options.fillPaddings?.right??0;this.fill.setSize(t-n-r,i-e-h),this.fillMask.setSize(t-n-r,i-e-h)}this.progress=this._progress}else super.setSize(t,i)}}var ai=Object.defineProperty,li=(s,t,i)=>t in s?ai(s,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):s[t]=i,m=(s,t,i)=>li(s,typeof t!="symbol"?t+"":t,i);class Pt extends oi{constructor(t){super(t),m(this,"_slider1"),m(this,"_slider2"),m(this,"value1Text"),m(this,"value2Text"),m(this,"_value1"),m(this,"_value2"),m(this,"dragging",0),m(this,"_min",0),m(this,"_max",100),m(this,"_step",1),m(this,"startX"),m(this,"startUpdateValue1"),m(this,"startUpdateValue2"),m(this,"settings"),this.settings=t,this.slider1=t.slider1,this.slider2=t.slider2,this.min=t.min??0,this.max=t.max??100}init(t){super.init(t),this.fill&&(this.fill.eventMode="none")}set slider1(t){if(t&&(this._slider1&&(this.slider1.removeAllListeners(),this.slider1.destroy()),this._slider1=this.createSlider(t),this.settings.showValue&&!this.value1Text)){const i=this.settings.valueTextClass??O;this.value1Text=new i({text:"",style:this.settings.valueTextStyle||{fill:16777215}}),this.value1Text.anchor.set(.5),this.addChild(this.value1Text)}}get slider1(){return this._slider1}set slider2(t){if(t&&(this._slider2&&(this.slider2.removeAllListeners(),this.slider2.destroy()),this._slider2=this.createSlider(t),this.settings.showValue&&!this.value2Text)){const i=this.settings.valueTextClass??O;this.value2Text=new i({text:"",style:this.settings.valueTextStyle||{fill:16777215}}),this.value2Text.anchor.set(.5),this.addChild(this.value2Text)}}get slider2(){return this._slider2}setBackground(t){this.bg&&this.bg.removeAllListeners(),super.setBackground(t),this.activateBG()}activateBG(){this.bg.eventMode="static",this.bg.on("pointerdown",this.startUpdate,this).on("globalpointermove",this.update,this).on("pointerup",this.endUpdate,this).on("pointerupoutside",this.endUpdate,this)}createSlider(t){const i=w(t),e=n=>{this.bg&&(n.currentTarget=this.bg),this.startUpdate(n)};i.eventMode="static",i.on("pointerdown",e).on("pointerup",this.endUpdate,this).on("pointerupoutside",this.endUpdate,this),i.x=i.width/2;const h=new g;return h.addChild(i),i instanceof V&&i.anchor.set(.5),h.y=this.bg?.height?this.bg?.height/2:0,this.addChild(h),h}startUpdate(t){this.dragging=1;const i=t.currentTarget;this.startX=i.parent.worldTransform.applyInverse(t.global).x,this.startUpdateValue1=this._value1,this.startUpdateValue2=this._value2,this.update(t)}endUpdate(){this.dragging&&(this.dragging=0,(this.startX||this.startUpdateValue1!==this._value1||this.startUpdateValue2!==this._value2)&&this.change(),this.startUpdateValue1=null,this.startUpdateValue2=null)}onClick(){this.change()}update(t){const i=t.currentTarget,{x:e}=i.parent.worldTransform.applyInverse(t.global);e!==this.startX&&(this.startX=null)}change(){}set max(t){this._max=t}get max(){return this._max}set min(t){this._min=t}get min(){return this._min}set step(t){this._step=t}get step(){return this._step}}var di=Object.defineProperty,ui=(s,t,i)=>t in s?di(s,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):s[t]=i,tt=(s,t,i)=>ui(s,typeof t!="symbol"?t+"":t,i);class te extends Pt{constructor(t){super(t),tt(this,"sliderOptions"),tt(this,"activeValue"),tt(this,"onChange",new f.Signal),tt(this,"onUpdate",new f.Signal),this.sliderOptions=t,this.setInitialState()}setInitialState(){this.validateValues();const{value1:t,value2:i}=this.sliderOptions;this.updateProgress(t,i),this.value2=i,this.value1=t}updateProgress(t=this.value1,i=this.value2){this.progressStart=(t-this.min)/(this.max-this.min)*100,this.progress=(i-this.min)/(this.max-this.min)*100}validateValues(){this.sliderOptions.value1||(this.sliderOptions.value1=this.min),this.sliderOptions.value2||(this.sliderOptions.value2=this.sliderOptions.max),this.sliderOptions.value2<this.sliderOptions.value1&&(this.sliderOptions.value2=this.sliderOptions.value1),this.sliderOptions.value1<this.sliderOptions.min&&(this.sliderOptions.value1=this.sliderOptions.min),this.sliderOptions.value1>this.sliderOptions.max&&(this.sliderOptions.value1=this.sliderOptions.max),this.sliderOptions.value2>this.sliderOptions.max&&(this.sliderOptions.value2=this.sliderOptions.max)}get value1(){return this._value1}set value1(t){t!==this._value1&&(t<this.min&&(t=this.min),t>this._value2&&(t=this._value2),this._value1=t,this.updateSlider1(),this.onUpdate?.emit(this.value1,this.value2))}get value2(){return this._value2}set value2(t){t!==this._value2&&(t<this._value1&&(t=this._value1),t>this.max&&(t=this.max),this._value2=t,this.updateSlider2(),this.onUpdate?.emit(this.value1,this.value2))}update(t){if(super.update(t),!this.dragging)return;const i=t.currentTarget,{x:e}=i.parent.worldTransform.applyInverse(t.global),h=Math.abs(e-this._slider1.x-this._slider1.width),n=Math.abs(e-this._slider2.x);this.activeValue||(this.slider1&&e<this.slider1.x?this.activeValue="value1":this.slider2&&e>this.slider2.x?this.activeValue="value2":this.activeValue=h<n?"value1":"value2");const r=this.validate(e/this.bg?.width*100);this.activeValue==="value1"?(this.progressStart=r,this.value1=this.min+(this.max-this.min)/100*r,this.updateProgress(this.value1,this.value2)):(this.progress=r,this.value2=this.min+(this.max-this.min)/100*r,this.updateProgress(this.value1,this.value2))}endUpdate(){super.endUpdate(),this.activeValue=null}change(){this.onChange?.emit(this.value1,this.value2)}set slider1(t){super.slider1=t,this.updateSlider1()}get slider1(){return this._slider1}set slider2(t){super.slider2=t,this.updateSlider2()}get slider2(){return this._slider2}updateSlider1(){if(this.updateProgress(this.value1,this.value2),this._slider1.x=this.bg?.width/100*this.progressStart-this._slider1.width/2,this._slider1.y=this.bg?.height/2,this._slider2&&this._slider1.x>this._slider2.x&&(this._slider1.x=this._slider2.x),this.sliderOptions?.showValue){this.value1Text.text=`${Math.round(this.value1)}`;const t=this._slider1.x+this._slider1.width/2,i=this._slider1.y;this.value1Text.x=t+(this.sliderOptions.valueTextOffset?.x??0),this.value1Text.y=i+(this.sliderOptions.valueTextOffset?.y??0)}}updateSlider2(){if(this.updateProgress(this.value1,this.value2),this._slider2.x=this.bg?.width/100*this.progress-this._slider2.width/2,this._slider2.y=this.bg?.height/2,this._slider2.x<this._slider1.x&&(this._slider2.x=this._slider1.x),this.sliderOptions?.showValue){this.value2Text.text=`${Math.round(this.value2)}`;const t=this._slider2.x+this._slider2.width/2,i=this._slider2.y;this.value2Text.x=t+(this.sliderOptions.valueTextOffset?.x??0),this.value2Text.y=i+(this.sliderOptions.valueTextOffset?.y??0)}}set width(t){super.width=t,this.updateSlider1(),this.updateSlider2()}get width(){return super.width}set height(t){super.height=t,this.updateSlider1(),this.updateSlider2()}get height(){return super.height}setSize(t,i){super.setSize(t,i),this.updateSlider1(),this.updateSlider2()}}/*!
|
|
4
4
|
* tweedle.js - v2.1.0
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.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);background:var(--vgai-bg-1)}.vgai-asset-library-navigator__controls{display:flex;flex-direction:column;gap:5px;padding:6px;border-bottom:1px solid var(--vgai-border-1);background:var(--vgai-bg-2)}.vgai-asset-library-navigator__search-row{display:flex;gap:4px}.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:4px}.vgai-asset-library-navigator__filters .vgai-select{width:100%;min-width:0}.vgai-asset-library-navigator__status{color:var(--vgai-text-3);font-size:10px}.vgai-asset-import-jobs{display:flex;min-width:0;flex-wrap:wrap;align-items:center;gap:4px;color:var(--vgai-text-2);font-size:10px}.vgai-asset-import-jobs>span{display:inline-flex;min-width:0;align-items:center;gap:4px;padding:2px 4px;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:4px}.vgai-asset-library-navigator__result-space{position:relative}.vgai-asset-library-navigator__filter-drawer{min-height:0;max-height:58%;overflow:auto;border-bottom:1px solid var(--vgai-border-1);background:var(--vgai-bg-2)}.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-border-1);background:var(--vgai-bg-2);color:var(--vgai-text-2);font-size:10px;font-weight:650}.vgai-asset-library-navigator__source-filters{display:block;overflow:visible;padding:10px;border:0;background:var(--vgai-bg-2)}.vgai-asset-library-navigator__save-search{width:calc(100% - 12px);margin:6px 6px 0}.vgai-asset-library-row{position:absolute;right:0;left:0;width:100%;min-width:0;min-height:52px;display:flex;align-items:center;gap:8px;padding:5px;border:1px solid transparent;border-radius:var(--vgai-radius-sm, 3px);background:transparent;color:var(--vgai-text-1);text-align:left}.vgai-asset-library-row:hover,.vgai-asset-library-row[aria-selected=true]{background:var(--vgai-accent-muted)}.vgai-asset-library-row[aria-selected=true]{border-color:var(--vgai-accent)}.vgai-asset-library-row .vgai-asset-card__preview{width:44px;height:40px;flex:0 0 44px;aspect-ratio:auto}.vgai-asset-library-row__copy{min-width:0;display:flex;flex:1;flex-direction:column;gap:2px}.vgai-asset-library-row__name,.vgai-asset-library-row__meta{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vgai-asset-library-row__name{font-size:11px;font-weight:550}.vgai-asset-library-row__meta{color:var(--vgai-text-3);font-size:10px}.vgai-asset-library-navigator__loading{position:absolute;right:8px;bottom:8px;color:var(--vgai-text-2);font-size:10px}.vgai-project-assets-toolbar{flex:0 0 auto;border-bottom:1px solid var(--vgai-border-1);background:var(--vgai-bg-2)}.vgai-project-assets-toolbar__row{width:100%;min-width:0;min-height:28px;box-sizing:border-box;gap:4px;padding:2px 4px;border:0;background:transparent}.vgai-project-assets-toolbar__row+.vgai-project-assets-toolbar__row{border-top:1px solid var(--vgai-border-1)}.vgai-project-assets-toolbar__select{min-width:0;flex:1 1 64px;width:64px}.vgai-project-assets-toolbar__more{position:relative;flex:0 0 auto}.vgai-project-assets-toolbar__menu{position:absolute;z-index:1000;top:calc(100% + 3px);right:0;min-width:170px}.vgai-project-assets-results{background:var(--vgai-bg-0);box-shadow:inset 0 1px 0 var(--vgai-border-1)}.vgai-project-asset-entry{box-sizing:border-box;border:1px solid var(--vgai-border-1);background:var(--vgai-bg-1);transition:border-color 90ms ease,background-color 90ms ease}.vgai-project-asset-entry:hover{border-color:var(--vgai-border-2);background:var(--vgai-bg-2)}.vgai-project-asset-entry[data-selected=true]{border-color:var(--vgai-accent);background:var(--vgai-accent-muted);box-shadow:inset 0 0 0 1px var(--vgai-accent)}.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)}.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-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);background:var(--vgai-bg-0)}.vgai-asset-card__fallback{position:absolute;right:4px;bottom:4px;padding:2px 4px;border-radius:3px;background:color-mix(in srgb,var(--vgai-bg-0) 88%,transparent);color:var(--vgai-text-2);font-size:9px}.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:12px;line-height:17px;font-weight:550}.vgai-asset-card__meta,.vgai-asset-card__badges{display:flex;gap:5px;align-items:center;margin-top:4px;color:var(--vgai-text-3);font-size:10px}.vgai-asset-badge{padding:1px 5px;border-radius:999px;background:var(--asset-badge-background);color:var(--vgai-text-2);font-size:var(--asset-font-floor);white-space:nowrap}.vgai-asset-facet-title{margin:12px 0 5px;color:var(--vgai-text-3);font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.vgai-asset-facet-button{width:100%;min-height:var(--asset-row-height);padding:4px 7px;border:0;border-radius:4px;background:transparent;color:var(--vgai-text-2);text-align:left;cursor:pointer}.vgai-asset-facet-button:hover,.vgai-asset-facet-button[aria-pressed=true]{background:var(--asset-selection);color:var(--vgai-text-1)}.vgai-asset-facet-check{display:flex;align-items:center;gap:6px;min-height:28px;color:var(--vgai-text-2);font-size:11px}.vgai-asset-facet-check .vgai-select{min-width:0;flex:1}.vgai-asset-context-menu{position:fixed;z-index:10000;min-width:190px;padding:4px;border:1px solid var(--vgai-border-2);border-radius:5px;background:var(--vgai-bg-2);box-shadow:0 8px 28px #00000059}.vgai-asset-context-menu button{width:100%;min-height:28px;display:flex;justify-content:space-between;border:0;border-radius:3px;background:transparent;color:var(--vgai-text-1);text-align:left}.vgai-asset-context-menu button:hover:not(:disabled){background:var(--vgai-accent-muted)}.vgai-asset-context-menu kbd{color:var(--vgai-text-3);font:inherit}@media(max-width:900px){.vgai-asset-tree{display:none}}.vgai-asset-editor{width:100%;height:100%;min-width:0;min-height:0;display:flex;flex-direction:column;background:var(--vgai-bg-1)}.vgai-asset-editor__toolbar{min-height:40px;display:flex;align-items:center;gap:7px;padding:6px 10px;border-bottom:1px solid var(--vgai-border-1);background:var(--vgai-bg-2)}.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-border-2);border-radius:3px;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-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-theme-manager-content{min-height:0;flex:1;align-items:stretch}.vgai-theme-list{width:220px;flex:0 0 auto;padding:var(--vgai-space-4);overflow-y:auto;background:var(--vgai-surface-panel);border-right:var(--vgai-stroke-resting) solid var(--vgai-boundary-default);box-sizing:border-box}.vgai-theme-choice{width:100%;height:auto;min-height:var(--vgai-control-comfortable-height);flex-direction:column;align-items:flex-start;margin-bottom:var(--vgai-space-2);text-align:left}.vgai-theme-choice[aria-pressed=true]{color:var(--vgai-content-primary);background:var(--vgai-accent-muted)}.vgai-theme-list-action{width:100%;margin-top:var(--vgai-space-2)}.vgai-theme-tokens{min-width:0;flex:1;padding:var(--vgai-space-8);overflow-y:auto}.vgai-theme-name-row{margin-bottom:var(--vgai-space-8)}.vgai-theme-name-field{min-width:0;flex:1}.vgai-theme-readonly-note{margin-bottom:var(--vgai-space-8)}.vgai-theme-group{margin-bottom:var(--vgai-space-10)}.vgai-theme-field-grid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:var(--vgai-space-4) var(--vgai-space-8)}.vgai-theme-value>.vgai-input{min-width:0;flex:1}.vgai-theme-swatch-input,.vgai-theme-swatch-preview{width:24px;height:24px;flex:0 0 auto;padding:1px;border:var(--vgai-stroke-resting) solid var(--vgai-boundary-default);border-radius:var(--vgai-radius-sm);box-sizing:border-box}.vgai-theme-swatch-input{background:transparent;cursor:pointer}.vgai-theme-message{margin-right:auto}@media(max-width:760px){.vgai-theme-list{width:180px}.vgai-theme-field-grid{grid-template-columns:minmax(0,1fr)}}.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-4);color:var(--vgai-content-primary);background:var(--vgai-surface-chrome);border-bottom:var(--vgai-stroke-resting) solid var(--vgai-boundary-default);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}.vgai-project-trigger{display:flex;min-width:0;align-items:center;gap:var(--vgai-space-3);overflow:hidden;white-space:nowrap}.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}.vgai-project-header-right>.vgai-btn{padding-inline:var(--vgai-space-4)}.dv-scrollable{position:relative;overflow:hidden}.dv-scrollable .dv-scrollbar{position:absolute;border-radius:2px;background-color:transparent;will-change:background-color,transform;transform:translateZ(0);backface-visibility:hidden;transition-property:background-color;transition-timing-function:ease-in-out;transition-duration:1s;transition-delay:0s}.dv-scrollable .dv-scrollbar-horizontal{bottom:0;left:0;height:4px}.dv-scrollable .dv-scrollbar-vertical{right:0;top:0;width:4px}.dv-scrollable:hover .dv-scrollbar,.dv-scrollable.dv-scrollable-resizing .dv-scrollbar,.dv-scrollable.dv-scrollable-scrolling .dv-scrollbar{background-color:var(--dv-scrollbar-background-color, rgba(255, 255, 255, .25))}.dv-svg{display:inline-block;fill:currentcolor;line-height:1;stroke:currentcolor;stroke-width:0}.dockview-theme-dark{--dv-paneview-active-outline-color: dodgerblue;--dv-tabs-and-actions-container-font-size: 13px;--dv-tabs-and-actions-container-height: 35px;--dv-drag-over-background-color: rgba(83, 89, 93, .5);--dv-drag-over-border-color: transparent;--dv-tabs-container-scrollbar-color: #888;--dv-icon-hover-background-color: rgba(90, 93, 94, .31);--dv-floating-box-shadow: 0 8px 32px rgba(0, 0, 0, .4), 0 2px 8px rgba(0, 0, 0, .25);--dv-floating-border: 1px solid rgba(255, 255, 255, .1);--dv-overlay-z-index: 999;--dv-tab-font-size: inherit;--dv-border-radius: 0px;--dv-tab-margin: 0;--dv-sash-color: transparent;--dv-active-sash-color: transparent;--dv-active-sash-transition-duration: .1s;--dv-active-sash-transition-delay: .5s;--dv-spacing-padding: 0px;--dv-tab-border-radius: 0px;--dv-sash-border-radius: 0px;--dv-dropdown-border-radius: 0px;--dv-tab-close-icon-size: inherit;--dv-floating-group-border: none;--dv-drag-over-border: none;--dv-floating-group-dragging-opacity: .5;--dv-floating-titlebar-height: 22px;--dv-floating-titlebar-background-color: var( --dv-tabs-and-actions-container-background-color );--dv-floating-titlebar-border-bottom: var(--dv-floating-border);--dv-tab-group-color-grey: #5f6368;--dv-tab-group-color-blue: #1a73e8;--dv-tab-group-color-red: #d93025;--dv-tab-group-color-yellow: #f9ab00;--dv-tab-group-color-green: #188038;--dv-tab-group-color-pink: #d01884;--dv-tab-group-color-purple: #a142f4;--dv-tab-group-color-cyan: #007b83;--dv-tab-group-color-orange: #e8710a;--dv-tab-group-chip-padding: 4px 8px;--dv-tab-group-chip-border-radius: 6px;--dv-tab-group-chip-font-size: 11px;--dv-tab-group-line-height: 2px;--dv-tab-group-line-opacity: .6}.dockview-theme-dark .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-dark{--dv-group-view-background-color: #1e1e1e;--dv-tabs-and-actions-container-background-color: #252526;--dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;--dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;--dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;--dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;--dv-tab-divider-color: #1e1e1e;--dv-activegroup-visiblepanel-tab-color: white;--dv-activegroup-hiddenpanel-tab-color: #969696;--dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;--dv-inactivegroup-hiddenpanel-tab-color: #626262;--dv-separator-border: rgb(68, 68, 68);--dv-paneview-header-border-color: rgba(204, 204, 204, .2)}.dockview-theme-light{--dv-paneview-active-outline-color: dodgerblue;--dv-tabs-and-actions-container-font-size: 13px;--dv-tabs-and-actions-container-height: 35px;--dv-drag-over-background-color: rgba(83, 89, 93, .5);--dv-drag-over-border-color: transparent;--dv-tabs-container-scrollbar-color: #888;--dv-icon-hover-background-color: rgba(90, 93, 94, .31);--dv-floating-box-shadow: 0 8px 32px rgba(0, 0, 0, .4), 0 2px 8px rgba(0, 0, 0, .25);--dv-floating-border: 1px solid rgba(255, 255, 255, .1);--dv-overlay-z-index: 999;--dv-tab-font-size: inherit;--dv-border-radius: 0px;--dv-tab-margin: 0;--dv-sash-color: transparent;--dv-active-sash-color: transparent;--dv-active-sash-transition-duration: .1s;--dv-active-sash-transition-delay: .5s;--dv-spacing-padding: 0px;--dv-tab-border-radius: 0px;--dv-sash-border-radius: 0px;--dv-dropdown-border-radius: 0px;--dv-tab-close-icon-size: inherit;--dv-floating-group-border: none;--dv-drag-over-border: none;--dv-floating-group-dragging-opacity: .5;--dv-floating-titlebar-height: 22px;--dv-floating-titlebar-background-color: var( --dv-tabs-and-actions-container-background-color );--dv-floating-titlebar-border-bottom: var(--dv-floating-border);--dv-tab-group-color-grey: #5f6368;--dv-tab-group-color-blue: #1a73e8;--dv-tab-group-color-red: #d93025;--dv-tab-group-color-yellow: #f9ab00;--dv-tab-group-color-green: #188038;--dv-tab-group-color-pink: #d01884;--dv-tab-group-color-purple: #a142f4;--dv-tab-group-color-cyan: #007b83;--dv-tab-group-color-orange: #e8710a;--dv-tab-group-chip-padding: 4px 8px;--dv-tab-group-chip-border-radius: 6px;--dv-tab-group-chip-font-size: 11px;--dv-tab-group-line-height: 2px;--dv-tab-group-line-opacity: .6}.dockview-theme-light .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-light{--dv-group-view-background-color: white;--dv-tabs-and-actions-container-background-color: #f3f3f3;--dv-activegroup-visiblepanel-tab-background-color: white;--dv-activegroup-hiddenpanel-tab-background-color: #ececec;--dv-inactivegroup-visiblepanel-tab-background-color: white;--dv-inactivegroup-hiddenpanel-tab-background-color: #ececec;--dv-tab-divider-color: white;--dv-activegroup-visiblepanel-tab-color: rgb(51, 51, 51);--dv-activegroup-hiddenpanel-tab-color: rgba(51, 51, 51, .7);--dv-inactivegroup-visiblepanel-tab-color: rgba(51, 51, 51, .7);--dv-inactivegroup-hiddenpanel-tab-color: rgba(51, 51, 51, .35);--dv-separator-border: rgba(128, 128, 128, .35);--dv-paneview-header-border-color: rgb(51, 51, 51);--dv-scrollbar-background-color: rgba(0, 0, 0, .25);--dv-floating-box-shadow: 0 8px 32px rgba(0, 0, 0, .12), 0 2px 8px rgba(0, 0, 0, .08);--dv-floating-border: 1px solid rgba(0, 0, 0, .1)}.dockview-theme-vs{--dv-paneview-active-outline-color: dodgerblue;--dv-tabs-and-actions-container-font-size: 13px;--dv-tabs-and-actions-container-height: 35px;--dv-drag-over-background-color: rgba(83, 89, 93, .5);--dv-drag-over-border-color: transparent;--dv-tabs-container-scrollbar-color: #888;--dv-icon-hover-background-color: rgba(90, 93, 94, .31);--dv-floating-box-shadow: 0 8px 32px rgba(0, 0, 0, .4), 0 2px 8px rgba(0, 0, 0, .25);--dv-floating-border: 1px solid rgba(255, 255, 255, .1);--dv-overlay-z-index: 999;--dv-tab-font-size: inherit;--dv-border-radius: 0px;--dv-tab-margin: 0;--dv-sash-color: transparent;--dv-active-sash-color: transparent;--dv-active-sash-transition-duration: .1s;--dv-active-sash-transition-delay: .5s;--dv-spacing-padding: 0px;--dv-tab-border-radius: 0px;--dv-sash-border-radius: 0px;--dv-dropdown-border-radius: 0px;--dv-tab-close-icon-size: inherit;--dv-floating-group-border: none;--dv-drag-over-border: none;--dv-floating-group-dragging-opacity: .5;--dv-floating-titlebar-height: 22px;--dv-floating-titlebar-background-color: var( --dv-tabs-and-actions-container-background-color );--dv-floating-titlebar-border-bottom: var(--dv-floating-border);--dv-tab-group-color-grey: #5f6368;--dv-tab-group-color-blue: #1a73e8;--dv-tab-group-color-red: #d93025;--dv-tab-group-color-yellow: #f9ab00;--dv-tab-group-color-green: #188038;--dv-tab-group-color-pink: #d01884;--dv-tab-group-color-purple: #a142f4;--dv-tab-group-color-cyan: #007b83;--dv-tab-group-color-orange: #e8710a;--dv-tab-group-chip-padding: 4px 8px;--dv-tab-group-chip-border-radius: 6px;--dv-tab-group-chip-font-size: 11px;--dv-tab-group-line-height: 2px;--dv-tab-group-line-opacity: .6}.dockview-theme-vs .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-vs{--dv-group-view-background-color: #1e1e1e;--dv-tabs-and-actions-container-background-color: #252526;--dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;--dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;--dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;--dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;--dv-tab-divider-color: #1e1e1e;--dv-activegroup-hiddenpanel-tab-color: #969696;--dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;--dv-inactivegroup-hiddenpanel-tab-color: #626262;--dv-separator-border: rgb(68, 68, 68);--dv-paneview-header-border-color: rgba(204, 204, 204, .2);--dv-tabs-and-actions-container-background-color: #2d2d30;--dv-tabs-and-actions-container-height: 20px;--dv-tabs-and-actions-container-font-size: 11px;--dv-activegroup-visiblepanel-tab-background-color: #007acc;--dv-inactivegroup-visiblepanel-tab-background-color: #3f3f46;--dv-activegroup-visiblepanel-tab-color: white;--dv-activegroup-hiddenpanel-tab-color: white;--dv-inactivegroup-visiblepanel-tab-color: white;--dv-inactivegroup-hiddenpanel-tab-color: white}.dockview-theme-vs .dv-groupview.dv-active-group>.dv-tabs-and-actions-container{box-sizing:content-box;border-bottom:2px solid var(--dv-activegroup-visiblepanel-tab-background-color)}.dockview-theme-vs .dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tab.dv-active-tab{border-top:2px solid var(--dv-activegroup-visiblepanel-tab-background-color)}.dockview-theme-vs .dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tab.dv-inactive-tab{border-top:2px solid var(--dv-activegroup-hiddenpanel-tab-background-color)}.dockview-theme-vs .dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container{box-sizing:content-box;border-bottom:2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color)}.dockview-theme-vs .dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tab.dv-active-tab{border-top:2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color)}.dockview-theme-vs .dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tab.dv-inactive-tab{border-top:2px solid var(--dv-inactivegroup-hiddenpanel-tab-background-color)}.dockview-theme-abyss{--dv-paneview-active-outline-color: dodgerblue;--dv-tabs-and-actions-container-font-size: 13px;--dv-tabs-and-actions-container-height: 35px;--dv-drag-over-background-color: rgba(83, 89, 93, .5);--dv-drag-over-border-color: transparent;--dv-tabs-container-scrollbar-color: #888;--dv-icon-hover-background-color: rgba(90, 93, 94, .31);--dv-floating-box-shadow: 0 8px 32px rgba(0, 0, 0, .4), 0 2px 8px rgba(0, 0, 0, .25);--dv-floating-border: 1px solid rgba(255, 255, 255, .1);--dv-overlay-z-index: 999;--dv-tab-font-size: inherit;--dv-border-radius: 0px;--dv-tab-margin: 0;--dv-sash-color: transparent;--dv-active-sash-color: transparent;--dv-active-sash-transition-duration: .1s;--dv-active-sash-transition-delay: .5s;--dv-spacing-padding: 0px;--dv-tab-border-radius: 0px;--dv-sash-border-radius: 0px;--dv-dropdown-border-radius: 0px;--dv-tab-close-icon-size: inherit;--dv-floating-group-border: none;--dv-drag-over-border: none;--dv-floating-group-dragging-opacity: .5;--dv-floating-titlebar-height: 22px;--dv-floating-titlebar-background-color: var( --dv-tabs-and-actions-container-background-color );--dv-floating-titlebar-border-bottom: var(--dv-floating-border);--dv-tab-group-color-grey: #5f6368;--dv-tab-group-color-blue: #1a73e8;--dv-tab-group-color-red: #d93025;--dv-tab-group-color-yellow: #f9ab00;--dv-tab-group-color-green: #188038;--dv-tab-group-color-pink: #d01884;--dv-tab-group-color-purple: #a142f4;--dv-tab-group-color-cyan: #007b83;--dv-tab-group-color-orange: #e8710a;--dv-tab-group-chip-padding: 4px 8px;--dv-tab-group-chip-border-radius: 6px;--dv-tab-group-chip-font-size: 11px;--dv-tab-group-line-height: 2px;--dv-tab-group-line-opacity: .6}.dockview-theme-abyss .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-abyss{--dv-color-abyss-dark: #000c18;--dv-color-abyss: #10192c;--dv-color-abyss-light: #1c1c2a;--dv-color-abyss-lighter: #2b2b4a;--dv-color-abyss-accent: rgb(91, 30, 207);--dv-color-abyss-primary-text: white;--dv-color-abyss-secondary-text: rgb(148, 151, 169);--dv-group-view-background-color: var(--dv-color-abyss-dark);--dv-tabs-and-actions-container-background-color: var( --dv-color-abyss-light );--dv-activegroup-visiblepanel-tab-background-color: var( --dv-color-abyss-dark );--dv-activegroup-hiddenpanel-tab-background-color: var(--dv-color-abyss);--dv-inactivegroup-visiblepanel-tab-background-color: var( --dv-color-abyss-dark );--dv-inactivegroup-hiddenpanel-tab-background-color: var(--dv-color-abyss);--dv-tab-divider-color: var(--dv-color-abyss-lighter);--dv-activegroup-visiblepanel-tab-color: white;--dv-activegroup-hiddenpanel-tab-color: rgba(255, 255, 255, .5);--dv-inactivegroup-visiblepanel-tab-color: rgba(255, 255, 255, .5);--dv-inactivegroup-hiddenpanel-tab-color: rgba(255, 255, 255, .25);--dv-separator-border: var(--dv-color-abyss-lighter);--dv-paneview-header-border-color: var(--dv-color-abyss-lighter);--dv-paneview-active-outline-color: #596f99}.dockview-theme-dracula{--dv-paneview-active-outline-color: dodgerblue;--dv-tabs-and-actions-container-font-size: 13px;--dv-tabs-and-actions-container-height: 35px;--dv-drag-over-background-color: rgba(83, 89, 93, .5);--dv-drag-over-border-color: transparent;--dv-tabs-container-scrollbar-color: #888;--dv-icon-hover-background-color: rgba(90, 93, 94, .31);--dv-floating-box-shadow: 0 8px 32px rgba(0, 0, 0, .4), 0 2px 8px rgba(0, 0, 0, .25);--dv-floating-border: 1px solid rgba(255, 255, 255, .1);--dv-overlay-z-index: 999;--dv-tab-font-size: inherit;--dv-border-radius: 0px;--dv-tab-margin: 0;--dv-sash-color: transparent;--dv-active-sash-color: transparent;--dv-active-sash-transition-duration: .1s;--dv-active-sash-transition-delay: .5s;--dv-spacing-padding: 0px;--dv-tab-border-radius: 0px;--dv-sash-border-radius: 0px;--dv-dropdown-border-radius: 0px;--dv-tab-close-icon-size: inherit;--dv-floating-group-border: none;--dv-drag-over-border: none;--dv-floating-group-dragging-opacity: .5;--dv-floating-titlebar-height: 22px;--dv-floating-titlebar-background-color: var( --dv-tabs-and-actions-container-background-color );--dv-floating-titlebar-border-bottom: var(--dv-floating-border);--dv-tab-group-color-grey: #5f6368;--dv-tab-group-color-blue: #1a73e8;--dv-tab-group-color-red: #d93025;--dv-tab-group-color-yellow: #f9ab00;--dv-tab-group-color-green: #188038;--dv-tab-group-color-pink: #d01884;--dv-tab-group-color-purple: #a142f4;--dv-tab-group-color-cyan: #007b83;--dv-tab-group-color-orange: #e8710a;--dv-tab-group-chip-padding: 4px 8px;--dv-tab-group-chip-border-radius: 6px;--dv-tab-group-chip-font-size: 11px;--dv-tab-group-line-height: 2px;--dv-tab-group-line-opacity: .6}.dockview-theme-dracula .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-dracula{--dv-group-view-background-color: #282a36;--dv-tabs-and-actions-container-background-color: #191a21;--dv-activegroup-visiblepanel-tab-background-color: #282a36;--dv-activegroup-hiddenpanel-tab-background-color: #21222c;--dv-inactivegroup-visiblepanel-tab-background-color: #282a36;--dv-inactivegroup-hiddenpanel-tab-background-color: #21222c;--dv-tab-divider-color: #191a21;--dv-activegroup-visiblepanel-tab-color: rgb(248, 248, 242);--dv-activegroup-hiddenpanel-tab-color: rgb(98, 114, 164);--dv-inactivegroup-visiblepanel-tab-color: rgba(248, 248, 242, .5);--dv-inactivegroup-hiddenpanel-tab-color: rgba(98, 114, 164, .5);--dv-separator-border: #bd93f9;--dv-paneview-header-border-color: #bd93f9;--dv-paneview-active-outline-color: #6272a4}.dockview-theme-dracula .dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab{position:relative}.dockview-theme-dracula .dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab:after{position:absolute;left:0;bottom:0;content:"";width:100%;height:1px;background-color:#94527e;z-index:999}.dockview-theme-dracula .dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab{position:relative}.dockview-theme-dracula .dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab:after{position:absolute;left:0;bottom:0;content:"";width:100%;height:1px;background-color:#5e3d5a;z-index:999}.dockview-theme-nord{--dv-paneview-active-outline-color: dodgerblue;--dv-tabs-and-actions-container-font-size: 13px;--dv-tabs-and-actions-container-height: 35px;--dv-drag-over-background-color: rgba(83, 89, 93, .5);--dv-drag-over-border-color: transparent;--dv-tabs-container-scrollbar-color: #888;--dv-icon-hover-background-color: rgba(90, 93, 94, .31);--dv-floating-box-shadow: 0 8px 32px rgba(0, 0, 0, .4), 0 2px 8px rgba(0, 0, 0, .25);--dv-floating-border: 1px solid rgba(255, 255, 255, .1);--dv-overlay-z-index: 999;--dv-tab-font-size: inherit;--dv-border-radius: 0px;--dv-tab-margin: 0;--dv-sash-color: transparent;--dv-active-sash-color: transparent;--dv-active-sash-transition-duration: .1s;--dv-active-sash-transition-delay: .5s;--dv-spacing-padding: 0px;--dv-tab-border-radius: 0px;--dv-sash-border-radius: 0px;--dv-dropdown-border-radius: 0px;--dv-tab-close-icon-size: inherit;--dv-floating-group-border: none;--dv-drag-over-border: none;--dv-floating-group-dragging-opacity: .5;--dv-floating-titlebar-height: 22px;--dv-floating-titlebar-background-color: var( --dv-tabs-and-actions-container-background-color );--dv-floating-titlebar-border-bottom: var(--dv-floating-border);--dv-tab-group-color-grey: #5f6368;--dv-tab-group-color-blue: #1a73e8;--dv-tab-group-color-red: #d93025;--dv-tab-group-color-yellow: #f9ab00;--dv-tab-group-color-green: #188038;--dv-tab-group-color-pink: #d01884;--dv-tab-group-color-purple: #a142f4;--dv-tab-group-color-cyan: #007b83;--dv-tab-group-color-orange: #e8710a;--dv-tab-group-chip-padding: 4px 8px;--dv-tab-group-chip-border-radius: 6px;--dv-tab-group-chip-font-size: 11px;--dv-tab-group-line-height: 2px;--dv-tab-group-line-opacity: .6}.dockview-theme-nord .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-nord{--dv-color-nord-polar-0: #2e3440;--dv-color-nord-polar-1: #3b4252;--dv-color-nord-polar-2: #434c5e;--dv-color-nord-polar-3: #4c566a;--dv-color-nord-frost: #88c0d0;--dv-color-nord-frost-2: #81a1c1;--dv-color-nord-snow-0: #eceff4;--dv-color-nord-snow-1: #d8dee9;--dv-group-view-background-color: var(--dv-color-nord-polar-0);--dv-tabs-and-actions-container-background-color: var( --dv-color-nord-polar-1 );--dv-activegroup-visiblepanel-tab-background-color: var( --dv-color-nord-polar-0 );--dv-activegroup-hiddenpanel-tab-background-color: var( --dv-color-nord-polar-2 );--dv-inactivegroup-visiblepanel-tab-background-color: var( --dv-color-nord-polar-1 );--dv-inactivegroup-hiddenpanel-tab-background-color: var( --dv-color-nord-polar-2 );--dv-activegroup-visiblepanel-tab-color: var(--dv-color-nord-snow-0);--dv-activegroup-hiddenpanel-tab-color: var(--dv-color-nord-snow-1);--dv-inactivegroup-visiblepanel-tab-color: #8a9bbf;--dv-inactivegroup-hiddenpanel-tab-color: #5e6f8e;--dv-separator-border: var(--dv-color-nord-polar-3);--dv-paneview-active-outline-color: var(--dv-color-nord-frost);--dv-active-sash-color: var(--dv-color-nord-frost);--dv-scrollbar-background-color: rgba(76, 86, 106, .5)}.dockview-theme-nord .dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab{position:relative}.dockview-theme-nord .dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab:after{position:absolute;left:0;bottom:0;content:"";width:100%;height:2px;background-color:var(--dv-color-nord-frost);z-index:999}.dockview-theme-nord .dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab{position:relative}.dockview-theme-nord .dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab:after{position:absolute;left:0;bottom:0;content:"";width:100%;height:2px;background-color:var(--dv-color-nord-frost-2);z-index:999}.dockview-theme-nord-spaced{--dv-paneview-active-outline-color: dodgerblue;--dv-tabs-and-actions-container-font-size: 13px;--dv-tabs-and-actions-container-height: 35px;--dv-drag-over-background-color: rgba(83, 89, 93, .5);--dv-drag-over-border-color: transparent;--dv-tabs-container-scrollbar-color: #888;--dv-icon-hover-background-color: rgba(90, 93, 94, .31);--dv-floating-box-shadow: 0 8px 32px rgba(0, 0, 0, .4), 0 2px 8px rgba(0, 0, 0, .25);--dv-floating-border: 1px solid rgba(255, 255, 255, .1);--dv-overlay-z-index: 999;--dv-tab-font-size: inherit;--dv-border-radius: 0px;--dv-tab-margin: 0;--dv-sash-color: transparent;--dv-active-sash-color: transparent;--dv-active-sash-transition-duration: .1s;--dv-active-sash-transition-delay: .5s;--dv-spacing-padding: 0px;--dv-tab-border-radius: 0px;--dv-sash-border-radius: 0px;--dv-dropdown-border-radius: 0px;--dv-tab-close-icon-size: inherit;--dv-floating-group-border: none;--dv-drag-over-border: none;--dv-floating-group-dragging-opacity: .5;--dv-floating-titlebar-height: 22px;--dv-floating-titlebar-background-color: var( --dv-tabs-and-actions-container-background-color );--dv-floating-titlebar-border-bottom: var(--dv-floating-border);--dv-tab-group-color-grey: #5f6368;--dv-tab-group-color-blue: #1a73e8;--dv-tab-group-color-red: #d93025;--dv-tab-group-color-yellow: #f9ab00;--dv-tab-group-color-green: #188038;--dv-tab-group-color-pink: #d01884;--dv-tab-group-color-purple: #a142f4;--dv-tab-group-color-cyan: #007b83;--dv-tab-group-color-orange: #e8710a;--dv-tab-group-chip-padding: 4px 8px;--dv-tab-group-chip-border-radius: 6px;--dv-tab-group-chip-font-size: 11px;--dv-tab-group-line-height: 2px;--dv-tab-group-line-opacity: .6;--dv-spacing-padding: 10px;--dv-tab-font-size: 12px;--dv-border-radius: 12px;--dv-tab-margin: .5rem .25rem;--dv-tabs-and-actions-container-height: 44px;--dv-tab-border-radius: 8px;--dv-sash-border-radius: 4px;--dv-dropdown-border-radius: 8px;--dv-tab-close-icon-size: 8px;--dv-floating-group-border: 2px solid var(--dv-group-view-background-color);--dv-floating-titlebar-background-color: var( --dv-group-view-background-color );--dv-floating-titlebar-border-bottom: none;box-sizing:border-box;padding:var(--dv-spacing-padding);background-color:var(--dv-group-view-background-color)}.dv-shell .dockview-theme-nord-spaced{padding:0}.dockview-theme-nord-spaced .dv-resize-container:has(>.dv-groupview){border-radius:8px}.dockview-theme-nord-spaced .dv-sash{border-radius:var(--dv-sash-border-radius)}.dockview-theme-nord-spaced .dv-drop-target-anchor{border-radius:calc(var(--dv-border-radius) / 4)}.dockview-theme-nord-spaced .dv-drop-target-anchor.dv-drop-target-content{border-radius:var(--dv-border-radius)}.dockview-theme-nord-spaced .dv-resize-container{border-radius:var(--dv-border-radius)!important;border:none}.dockview-theme-nord-spaced .dv-resize-container .dv-groupview{border:var(--dv-floating-group-border)}.dockview-theme-nord-spaced .dv-resize-container>.dv-grid-view{box-sizing:border-box;padding:var(--dv-spacing-padding)}.dockview-theme-nord-spaced .dv-resize-container-with-titlebar>.dv-grid-view{padding-top:0}.dockview-theme-nord-spaced .dv-resize-container-with-titlebar>.dv-floating-titlebar{border-top-left-radius:var(--dv-border-radius);border-top-right-radius:var(--dv-border-radius)}.dockview-theme-nord-spaced .dv-tabs-overflow-container,.dockview-theme-nord-spaced .dv-tabs-overflow-dropdown-default{border-radius:var(--dv-dropdown-border-radius);height:unset!important}.dockview-theme-nord-spaced .dv-render-overlay{border-bottom-left-radius:var(--dv-border-radius);border-bottom-right-radius:var(--dv-border-radius)}.dockview-theme-nord-spaced .dv-tab{border-radius:var(--dv-tab-border-radius)}.dockview-theme-nord-spaced .dv-tab .dv-svg{height:var(--dv-tab-close-icon-size);width:var(--dv-tab-close-icon-size)}.dockview-theme-nord-spaced .dv-tabs-container-vertical .dv-tab{margin:.25rem .5rem}.dockview-theme-nord-spaced .dv-groupview{border-radius:var(--dv-border-radius)}.dockview-theme-nord-spaced .dv-groupview .dv-tabs-and-actions-container{padding:0px calc(var(--dv-border-radius) / 2);border-top-left-radius:var(--dv-border-radius);border-top-right-radius:var(--dv-border-radius)}.dockview-theme-nord-spaced .dv-groupview .dv-tabs-and-actions-container.dv-groupview-header-vertical{padding:calc(var(--dv-border-radius) / 2) 0}.dockview-theme-nord-spaced .dv-groupview .dv-content-container{background-color:var(--dv-tabs-and-actions-container-background-color);border-bottom-left-radius:var(--dv-border-radius);border-bottom-right-radius:var(--dv-border-radius)}.dockview-theme-nord-spaced{--dv-color-nord-polar-0: #2e3440;--dv-color-nord-polar-1: #3b4252;--dv-color-nord-polar-2: #434c5e;--dv-color-nord-polar-3: #4c566a;--dv-color-nord-frost: #88c0d0;--dv-color-nord-frost-2: #81a1c1;--dv-color-nord-snow-0: #eceff4;--dv-color-nord-snow-1: #d8dee9;--dv-group-view-background-color: var(--dv-color-nord-polar-0);--dv-tabs-and-actions-container-background-color: var( --dv-color-nord-polar-1 );--dv-activegroup-visiblepanel-tab-background-color: var( --dv-color-nord-polar-2 );--dv-activegroup-hiddenpanel-tab-background-color: var( --dv-color-nord-polar-1 );--dv-inactivegroup-visiblepanel-tab-background-color: var( --dv-color-nord-polar-2 );--dv-inactivegroup-hiddenpanel-tab-background-color: var( --dv-color-nord-polar-1 );--dv-activegroup-visiblepanel-tab-color: var(--dv-color-nord-snow-0);--dv-activegroup-hiddenpanel-tab-color: var(--dv-color-nord-snow-1);--dv-inactivegroup-visiblepanel-tab-color: #8a9bbf;--dv-inactivegroup-hiddenpanel-tab-color: #5e6f8e;--dv-separator-border: transparent;--dv-paneview-active-outline-color: var(--dv-color-nord-frost);--dv-active-sash-color: var(--dv-color-nord-frost);--dv-scrollbar-background-color: rgba(76, 86, 106, .5);--dv-floating-group-border: 2px solid var(--dv-color-nord-polar-0)}.dockview-theme-catppuccin-mocha{--dv-paneview-active-outline-color: dodgerblue;--dv-tabs-and-actions-container-font-size: 13px;--dv-tabs-and-actions-container-height: 35px;--dv-drag-over-background-color: rgba(83, 89, 93, .5);--dv-drag-over-border-color: transparent;--dv-tabs-container-scrollbar-color: #888;--dv-icon-hover-background-color: rgba(90, 93, 94, .31);--dv-floating-box-shadow: 0 8px 32px rgba(0, 0, 0, .4), 0 2px 8px rgba(0, 0, 0, .25);--dv-floating-border: 1px solid rgba(255, 255, 255, .1);--dv-overlay-z-index: 999;--dv-tab-font-size: inherit;--dv-border-radius: 0px;--dv-tab-margin: 0;--dv-sash-color: transparent;--dv-active-sash-color: transparent;--dv-active-sash-transition-duration: .1s;--dv-active-sash-transition-delay: .5s;--dv-spacing-padding: 0px;--dv-tab-border-radius: 0px;--dv-sash-border-radius: 0px;--dv-dropdown-border-radius: 0px;--dv-tab-close-icon-size: inherit;--dv-floating-group-border: none;--dv-drag-over-border: none;--dv-floating-group-dragging-opacity: .5;--dv-floating-titlebar-height: 22px;--dv-floating-titlebar-background-color: var( --dv-tabs-and-actions-container-background-color );--dv-floating-titlebar-border-bottom: var(--dv-floating-border);--dv-tab-group-color-grey: #5f6368;--dv-tab-group-color-blue: #1a73e8;--dv-tab-group-color-red: #d93025;--dv-tab-group-color-yellow: #f9ab00;--dv-tab-group-color-green: #188038;--dv-tab-group-color-pink: #d01884;--dv-tab-group-color-purple: #a142f4;--dv-tab-group-color-cyan: #007b83;--dv-tab-group-color-orange: #e8710a;--dv-tab-group-chip-padding: 4px 8px;--dv-tab-group-chip-border-radius: 6px;--dv-tab-group-chip-font-size: 11px;--dv-tab-group-line-height: 2px;--dv-tab-group-line-opacity: .6}.dockview-theme-catppuccin-mocha .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-catppuccin-mocha{--dv-color-mocha-crust: #11111b;--dv-color-mocha-mantle: #181825;--dv-color-mocha-base: #1e1e2e;--dv-color-mocha-surface0: #313244;--dv-color-mocha-surface1: #45475a;--dv-color-mocha-text: #cdd6f4;--dv-color-mocha-subtext1: #bac2de;--dv-color-mocha-subtext0: #a6adc8;--dv-color-mocha-mauve: #cba6f7;--dv-color-mocha-lavender: #b4befe;--dv-group-view-background-color: var(--dv-color-mocha-base);--dv-tabs-and-actions-container-background-color: var( --dv-color-mocha-mantle );--dv-activegroup-visiblepanel-tab-background-color: var( --dv-color-mocha-base );--dv-activegroup-hiddenpanel-tab-background-color: var( --dv-color-mocha-surface0 );--dv-inactivegroup-visiblepanel-tab-background-color: var( --dv-color-mocha-mantle );--dv-inactivegroup-hiddenpanel-tab-background-color: var( --dv-color-mocha-crust );--dv-activegroup-visiblepanel-tab-color: var(--dv-color-mocha-text);--dv-activegroup-hiddenpanel-tab-color: var(--dv-color-mocha-subtext1);--dv-inactivegroup-visiblepanel-tab-color: var(--dv-color-mocha-subtext0);--dv-inactivegroup-hiddenpanel-tab-color: rgba(166, 173, 200, .5);--dv-separator-border: var(--dv-color-mocha-surface1);--dv-paneview-active-outline-color: var(--dv-color-mocha-mauve);--dv-active-sash-color: var(--dv-color-mocha-mauve);--dv-scrollbar-background-color: rgba(49, 50, 68, .8)}.dockview-theme-catppuccin-mocha .dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab{position:relative}.dockview-theme-catppuccin-mocha .dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab:after{position:absolute;left:0;bottom:0;content:"";width:100%;height:2px;background-color:var(--dv-color-mocha-mauve);z-index:999}.dockview-theme-catppuccin-mocha .dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab{position:relative}.dockview-theme-catppuccin-mocha .dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab:after{position:absolute;left:0;bottom:0;content:"";width:100%;height:2px;background-color:#b4befe66;z-index:999}.dockview-theme-catppuccin-mocha-spaced{--dv-paneview-active-outline-color: dodgerblue;--dv-tabs-and-actions-container-font-size: 13px;--dv-tabs-and-actions-container-height: 35px;--dv-drag-over-background-color: rgba(83, 89, 93, .5);--dv-drag-over-border-color: transparent;--dv-tabs-container-scrollbar-color: #888;--dv-icon-hover-background-color: rgba(90, 93, 94, .31);--dv-floating-box-shadow: 0 8px 32px rgba(0, 0, 0, .4), 0 2px 8px rgba(0, 0, 0, .25);--dv-floating-border: 1px solid rgba(255, 255, 255, .1);--dv-overlay-z-index: 999;--dv-tab-font-size: inherit;--dv-border-radius: 0px;--dv-tab-margin: 0;--dv-sash-color: transparent;--dv-active-sash-color: transparent;--dv-active-sash-transition-duration: .1s;--dv-active-sash-transition-delay: .5s;--dv-spacing-padding: 0px;--dv-tab-border-radius: 0px;--dv-sash-border-radius: 0px;--dv-dropdown-border-radius: 0px;--dv-tab-close-icon-size: inherit;--dv-floating-group-border: none;--dv-drag-over-border: none;--dv-floating-group-dragging-opacity: .5;--dv-floating-titlebar-height: 22px;--dv-floating-titlebar-background-color: var( --dv-tabs-and-actions-container-background-color );--dv-floating-titlebar-border-bottom: var(--dv-floating-border);--dv-tab-group-color-grey: #5f6368;--dv-tab-group-color-blue: #1a73e8;--dv-tab-group-color-red: #d93025;--dv-tab-group-color-yellow: #f9ab00;--dv-tab-group-color-green: #188038;--dv-tab-group-color-pink: #d01884;--dv-tab-group-color-purple: #a142f4;--dv-tab-group-color-cyan: #007b83;--dv-tab-group-color-orange: #e8710a;--dv-tab-group-chip-padding: 4px 8px;--dv-tab-group-chip-border-radius: 6px;--dv-tab-group-chip-font-size: 11px;--dv-tab-group-line-height: 2px;--dv-tab-group-line-opacity: .6;--dv-spacing-padding: 10px;--dv-tab-font-size: 12px;--dv-border-radius: 12px;--dv-tab-margin: .5rem .25rem;--dv-tabs-and-actions-container-height: 44px;--dv-tab-border-radius: 8px;--dv-sash-border-radius: 4px;--dv-dropdown-border-radius: 8px;--dv-tab-close-icon-size: 8px;--dv-floating-group-border: 2px solid var(--dv-group-view-background-color);--dv-floating-titlebar-background-color: var( --dv-group-view-background-color );--dv-floating-titlebar-border-bottom: none;box-sizing:border-box;padding:var(--dv-spacing-padding);background-color:var(--dv-group-view-background-color)}.dv-shell .dockview-theme-catppuccin-mocha-spaced{padding:0}.dockview-theme-catppuccin-mocha-spaced .dv-resize-container:has(>.dv-groupview){border-radius:8px}.dockview-theme-catppuccin-mocha-spaced .dv-sash{border-radius:var(--dv-sash-border-radius)}.dockview-theme-catppuccin-mocha-spaced .dv-drop-target-anchor{border-radius:calc(var(--dv-border-radius) / 4)}.dockview-theme-catppuccin-mocha-spaced .dv-drop-target-anchor.dv-drop-target-content{border-radius:var(--dv-border-radius)}.dockview-theme-catppuccin-mocha-spaced .dv-resize-container{border-radius:var(--dv-border-radius)!important;border:none}.dockview-theme-catppuccin-mocha-spaced .dv-resize-container .dv-groupview{border:var(--dv-floating-group-border)}.dockview-theme-catppuccin-mocha-spaced .dv-resize-container>.dv-grid-view{box-sizing:border-box;padding:var(--dv-spacing-padding)}.dockview-theme-catppuccin-mocha-spaced .dv-resize-container-with-titlebar>.dv-grid-view{padding-top:0}.dockview-theme-catppuccin-mocha-spaced .dv-resize-container-with-titlebar>.dv-floating-titlebar{border-top-left-radius:var(--dv-border-radius);border-top-right-radius:var(--dv-border-radius)}.dockview-theme-catppuccin-mocha-spaced .dv-tabs-overflow-container,.dockview-theme-catppuccin-mocha-spaced .dv-tabs-overflow-dropdown-default{border-radius:var(--dv-dropdown-border-radius);height:unset!important}.dockview-theme-catppuccin-mocha-spaced .dv-render-overlay{border-bottom-left-radius:var(--dv-border-radius);border-bottom-right-radius:var(--dv-border-radius)}.dockview-theme-catppuccin-mocha-spaced .dv-tab{border-radius:var(--dv-tab-border-radius)}.dockview-theme-catppuccin-mocha-spaced .dv-tab .dv-svg{height:var(--dv-tab-close-icon-size);width:var(--dv-tab-close-icon-size)}.dockview-theme-catppuccin-mocha-spaced .dv-tabs-container-vertical .dv-tab{margin:.25rem .5rem}.dockview-theme-catppuccin-mocha-spaced .dv-groupview{border-radius:var(--dv-border-radius)}.dockview-theme-catppuccin-mocha-spaced .dv-groupview .dv-tabs-and-actions-container{padding:0px calc(var(--dv-border-radius) / 2);border-top-left-radius:var(--dv-border-radius);border-top-right-radius:var(--dv-border-radius)}.dockview-theme-catppuccin-mocha-spaced .dv-groupview .dv-tabs-and-actions-container.dv-groupview-header-vertical{padding:calc(var(--dv-border-radius) / 2) 0}.dockview-theme-catppuccin-mocha-spaced .dv-groupview .dv-content-container{background-color:var(--dv-tabs-and-actions-container-background-color);border-bottom-left-radius:var(--dv-border-radius);border-bottom-right-radius:var(--dv-border-radius)}.dockview-theme-catppuccin-mocha-spaced{--dv-color-mocha-crust: #11111b;--dv-color-mocha-mantle: #181825;--dv-color-mocha-base: #1e1e2e;--dv-color-mocha-surface0: #313244;--dv-color-mocha-surface1: #45475a;--dv-color-mocha-text: #cdd6f4;--dv-color-mocha-subtext1: #bac2de;--dv-color-mocha-subtext0: #a6adc8;--dv-color-mocha-mauve: #cba6f7;--dv-color-mocha-lavender: #b4befe;--dv-group-view-background-color: var(--dv-color-mocha-crust);--dv-tabs-and-actions-container-background-color: var( --dv-color-mocha-mantle );--dv-activegroup-visiblepanel-tab-background-color: var( --dv-color-mocha-surface0 );--dv-activegroup-hiddenpanel-tab-background-color: var( --dv-color-mocha-mantle );--dv-inactivegroup-visiblepanel-tab-background-color: var( --dv-color-mocha-surface0 );--dv-inactivegroup-hiddenpanel-tab-background-color: var( --dv-color-mocha-mantle );--dv-activegroup-visiblepanel-tab-color: var(--dv-color-mocha-text);--dv-activegroup-hiddenpanel-tab-color: var(--dv-color-mocha-subtext1);--dv-inactivegroup-visiblepanel-tab-color: var(--dv-color-mocha-subtext0);--dv-inactivegroup-hiddenpanel-tab-color: rgba(166, 173, 200, .5);--dv-separator-border: transparent;--dv-paneview-active-outline-color: var(--dv-color-mocha-mauve);--dv-active-sash-color: var(--dv-color-mocha-mauve);--dv-scrollbar-background-color: rgba(49, 50, 68, .8);--dv-floating-group-border: 2px solid var(--dv-color-mocha-crust)}.dockview-theme-monokai{--dv-paneview-active-outline-color: dodgerblue;--dv-tabs-and-actions-container-font-size: 13px;--dv-tabs-and-actions-container-height: 35px;--dv-drag-over-background-color: rgba(83, 89, 93, .5);--dv-drag-over-border-color: transparent;--dv-tabs-container-scrollbar-color: #888;--dv-icon-hover-background-color: rgba(90, 93, 94, .31);--dv-floating-box-shadow: 0 8px 32px rgba(0, 0, 0, .4), 0 2px 8px rgba(0, 0, 0, .25);--dv-floating-border: 1px solid rgba(255, 255, 255, .1);--dv-overlay-z-index: 999;--dv-tab-font-size: inherit;--dv-border-radius: 0px;--dv-tab-margin: 0;--dv-sash-color: transparent;--dv-active-sash-color: transparent;--dv-active-sash-transition-duration: .1s;--dv-active-sash-transition-delay: .5s;--dv-spacing-padding: 0px;--dv-tab-border-radius: 0px;--dv-sash-border-radius: 0px;--dv-dropdown-border-radius: 0px;--dv-tab-close-icon-size: inherit;--dv-floating-group-border: none;--dv-drag-over-border: none;--dv-floating-group-dragging-opacity: .5;--dv-floating-titlebar-height: 22px;--dv-floating-titlebar-background-color: var( --dv-tabs-and-actions-container-background-color );--dv-floating-titlebar-border-bottom: var(--dv-floating-border);--dv-tab-group-color-grey: #5f6368;--dv-tab-group-color-blue: #1a73e8;--dv-tab-group-color-red: #d93025;--dv-tab-group-color-yellow: #f9ab00;--dv-tab-group-color-green: #188038;--dv-tab-group-color-pink: #d01884;--dv-tab-group-color-purple: #a142f4;--dv-tab-group-color-cyan: #007b83;--dv-tab-group-color-orange: #e8710a;--dv-tab-group-chip-padding: 4px 8px;--dv-tab-group-chip-border-radius: 6px;--dv-tab-group-chip-font-size: 11px;--dv-tab-group-line-height: 2px;--dv-tab-group-line-opacity: .6}.dockview-theme-monokai .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-monokai{--dv-color-monokai-bg: #272822;--dv-color-monokai-bg-light: #3e3d32;--dv-color-monokai-comment: #75715e;--dv-color-monokai-fg: #f8f8f2;--dv-color-monokai-green: #a6e22e;--dv-group-view-background-color: var(--dv-color-monokai-bg);--dv-tabs-and-actions-container-background-color: var( --dv-color-monokai-bg-light );--dv-activegroup-visiblepanel-tab-background-color: var( --dv-color-monokai-bg );--dv-activegroup-hiddenpanel-tab-background-color: #2d2c25;--dv-inactivegroup-visiblepanel-tab-background-color: var( --dv-color-monokai-bg );--dv-inactivegroup-hiddenpanel-tab-background-color: #2d2c25;--dv-activegroup-visiblepanel-tab-color: var(--dv-color-monokai-fg);--dv-activegroup-hiddenpanel-tab-color: var(--dv-color-monokai-comment);--dv-inactivegroup-visiblepanel-tab-color: rgba(248, 248, 242, .5);--dv-inactivegroup-hiddenpanel-tab-color: rgba(117, 113, 94, .5);--dv-separator-border: var(--dv-color-monokai-bg-light);--dv-paneview-active-outline-color: var(--dv-color-monokai-green);--dv-active-sash-color: var(--dv-color-monokai-green);--dv-scrollbar-background-color: rgba(117, 113, 94, .5)}.dockview-theme-monokai .dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab{position:relative}.dockview-theme-monokai .dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab:after{position:absolute;left:0;bottom:0;content:"";width:100%;height:2px;background-color:var(--dv-color-monokai-green);z-index:999}.dockview-theme-monokai .dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab{position:relative}.dockview-theme-monokai .dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab:after{position:absolute;left:0;bottom:0;content:"";width:100%;height:2px;background-color:#a6e22e59;z-index:999}.dockview-theme-solarized-light{--dv-paneview-active-outline-color: dodgerblue;--dv-tabs-and-actions-container-font-size: 13px;--dv-tabs-and-actions-container-height: 35px;--dv-drag-over-background-color: rgba(83, 89, 93, .5);--dv-drag-over-border-color: transparent;--dv-tabs-container-scrollbar-color: #888;--dv-icon-hover-background-color: rgba(90, 93, 94, .31);--dv-floating-box-shadow: 0 8px 32px rgba(0, 0, 0, .4), 0 2px 8px rgba(0, 0, 0, .25);--dv-floating-border: 1px solid rgba(255, 255, 255, .1);--dv-overlay-z-index: 999;--dv-tab-font-size: inherit;--dv-border-radius: 0px;--dv-tab-margin: 0;--dv-sash-color: transparent;--dv-active-sash-color: transparent;--dv-active-sash-transition-duration: .1s;--dv-active-sash-transition-delay: .5s;--dv-spacing-padding: 0px;--dv-tab-border-radius: 0px;--dv-sash-border-radius: 0px;--dv-dropdown-border-radius: 0px;--dv-tab-close-icon-size: inherit;--dv-floating-group-border: none;--dv-drag-over-border: none;--dv-floating-group-dragging-opacity: .5;--dv-floating-titlebar-height: 22px;--dv-floating-titlebar-background-color: var( --dv-tabs-and-actions-container-background-color );--dv-floating-titlebar-border-bottom: var(--dv-floating-border);--dv-tab-group-color-grey: #5f6368;--dv-tab-group-color-blue: #1a73e8;--dv-tab-group-color-red: #d93025;--dv-tab-group-color-yellow: #f9ab00;--dv-tab-group-color-green: #188038;--dv-tab-group-color-pink: #d01884;--dv-tab-group-color-purple: #a142f4;--dv-tab-group-color-cyan: #007b83;--dv-tab-group-color-orange: #e8710a;--dv-tab-group-chip-padding: 4px 8px;--dv-tab-group-chip-border-radius: 6px;--dv-tab-group-chip-font-size: 11px;--dv-tab-group-line-height: 2px;--dv-tab-group-line-opacity: .6}.dockview-theme-solarized-light .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-solarized-light{--dv-color-sol-base3: #fdf6e3;--dv-color-sol-base2: #eee8d5;--dv-color-sol-base1: #93a1a1;--dv-color-sol-base00: #657b83;--dv-color-sol-base01: #586e75;--dv-color-sol-blue: #268bd2;--dv-group-view-background-color: var(--dv-color-sol-base3);--dv-tabs-and-actions-container-background-color: var(--dv-color-sol-base2);--dv-activegroup-visiblepanel-tab-background-color: var( --dv-color-sol-base3 );--dv-activegroup-hiddenpanel-tab-background-color: #e8e2d0;--dv-inactivegroup-visiblepanel-tab-background-color: var( --dv-color-sol-base3 );--dv-inactivegroup-hiddenpanel-tab-background-color: #e8e2d0;--dv-activegroup-visiblepanel-tab-color: var(--dv-color-sol-base01);--dv-activegroup-hiddenpanel-tab-color: var(--dv-color-sol-base00);--dv-inactivegroup-visiblepanel-tab-color: var(--dv-color-sol-base1);--dv-inactivegroup-hiddenpanel-tab-color: rgba(147, 161, 161, .6);--dv-separator-border: var(--dv-color-sol-base2);--dv-paneview-active-outline-color: var(--dv-color-sol-blue);--dv-active-sash-color: var(--dv-color-sol-blue);--dv-scrollbar-background-color: rgba(101, 123, 131, .25);--dv-drag-over-background-color: rgba(38, 139, 210, .15);--dv-floating-box-shadow: 0 8px 32px rgba(0, 0, 0, .12), 0 2px 8px rgba(0, 0, 0, .08);--dv-floating-border: 1px solid rgba(0, 0, 0, .1)}.dockview-theme-solarized-light-spaced{--dv-paneview-active-outline-color: dodgerblue;--dv-tabs-and-actions-container-font-size: 13px;--dv-tabs-and-actions-container-height: 35px;--dv-drag-over-background-color: rgba(83, 89, 93, .5);--dv-drag-over-border-color: transparent;--dv-tabs-container-scrollbar-color: #888;--dv-icon-hover-background-color: rgba(90, 93, 94, .31);--dv-floating-box-shadow: 0 8px 32px rgba(0, 0, 0, .4), 0 2px 8px rgba(0, 0, 0, .25);--dv-floating-border: 1px solid rgba(255, 255, 255, .1);--dv-overlay-z-index: 999;--dv-tab-font-size: inherit;--dv-border-radius: 0px;--dv-tab-margin: 0;--dv-sash-color: transparent;--dv-active-sash-color: transparent;--dv-active-sash-transition-duration: .1s;--dv-active-sash-transition-delay: .5s;--dv-spacing-padding: 0px;--dv-tab-border-radius: 0px;--dv-sash-border-radius: 0px;--dv-dropdown-border-radius: 0px;--dv-tab-close-icon-size: inherit;--dv-floating-group-border: none;--dv-drag-over-border: none;--dv-floating-group-dragging-opacity: .5;--dv-floating-titlebar-height: 22px;--dv-floating-titlebar-background-color: var( --dv-tabs-and-actions-container-background-color );--dv-floating-titlebar-border-bottom: var(--dv-floating-border);--dv-tab-group-color-grey: #5f6368;--dv-tab-group-color-blue: #1a73e8;--dv-tab-group-color-red: #d93025;--dv-tab-group-color-yellow: #f9ab00;--dv-tab-group-color-green: #188038;--dv-tab-group-color-pink: #d01884;--dv-tab-group-color-purple: #a142f4;--dv-tab-group-color-cyan: #007b83;--dv-tab-group-color-orange: #e8710a;--dv-tab-group-chip-padding: 4px 8px;--dv-tab-group-chip-border-radius: 6px;--dv-tab-group-chip-font-size: 11px;--dv-tab-group-line-height: 2px;--dv-tab-group-line-opacity: .6;--dv-spacing-padding: 10px;--dv-tab-font-size: 12px;--dv-border-radius: 12px;--dv-tab-margin: .5rem .25rem;--dv-tabs-and-actions-container-height: 44px;--dv-tab-border-radius: 8px;--dv-sash-border-radius: 4px;--dv-dropdown-border-radius: 8px;--dv-tab-close-icon-size: 8px;--dv-floating-group-border: 2px solid var(--dv-group-view-background-color);--dv-floating-titlebar-background-color: var( --dv-group-view-background-color );--dv-floating-titlebar-border-bottom: none;box-sizing:border-box;padding:var(--dv-spacing-padding);background-color:var(--dv-group-view-background-color)}.dv-shell .dockview-theme-solarized-light-spaced{padding:0}.dockview-theme-solarized-light-spaced .dv-resize-container:has(>.dv-groupview){border-radius:8px}.dockview-theme-solarized-light-spaced .dv-sash{border-radius:var(--dv-sash-border-radius)}.dockview-theme-solarized-light-spaced .dv-drop-target-anchor{border-radius:calc(var(--dv-border-radius) / 4)}.dockview-theme-solarized-light-spaced .dv-drop-target-anchor.dv-drop-target-content{border-radius:var(--dv-border-radius)}.dockview-theme-solarized-light-spaced .dv-resize-container{border-radius:var(--dv-border-radius)!important;border:none}.dockview-theme-solarized-light-spaced .dv-resize-container .dv-groupview{border:var(--dv-floating-group-border)}.dockview-theme-solarized-light-spaced .dv-resize-container>.dv-grid-view{box-sizing:border-box;padding:var(--dv-spacing-padding)}.dockview-theme-solarized-light-spaced .dv-resize-container-with-titlebar>.dv-grid-view{padding-top:0}.dockview-theme-solarized-light-spaced .dv-resize-container-with-titlebar>.dv-floating-titlebar{border-top-left-radius:var(--dv-border-radius);border-top-right-radius:var(--dv-border-radius)}.dockview-theme-solarized-light-spaced .dv-tabs-overflow-container,.dockview-theme-solarized-light-spaced .dv-tabs-overflow-dropdown-default{border-radius:var(--dv-dropdown-border-radius);height:unset!important}.dockview-theme-solarized-light-spaced .dv-render-overlay{border-bottom-left-radius:var(--dv-border-radius);border-bottom-right-radius:var(--dv-border-radius)}.dockview-theme-solarized-light-spaced .dv-tab{border-radius:var(--dv-tab-border-radius)}.dockview-theme-solarized-light-spaced .dv-tab .dv-svg{height:var(--dv-tab-close-icon-size);width:var(--dv-tab-close-icon-size)}.dockview-theme-solarized-light-spaced .dv-tabs-container-vertical .dv-tab{margin:.25rem .5rem}.dockview-theme-solarized-light-spaced .dv-groupview{border-radius:var(--dv-border-radius)}.dockview-theme-solarized-light-spaced .dv-groupview .dv-tabs-and-actions-container{padding:0px calc(var(--dv-border-radius) / 2);border-top-left-radius:var(--dv-border-radius);border-top-right-radius:var(--dv-border-radius)}.dockview-theme-solarized-light-spaced .dv-groupview .dv-tabs-and-actions-container.dv-groupview-header-vertical{padding:calc(var(--dv-border-radius) / 2) 0}.dockview-theme-solarized-light-spaced .dv-groupview .dv-content-container{background-color:var(--dv-tabs-and-actions-container-background-color);border-bottom-left-radius:var(--dv-border-radius);border-bottom-right-radius:var(--dv-border-radius)}.dockview-theme-solarized-light-spaced{--dv-color-sol-base3: #fdf6e3;--dv-color-sol-base2: #eee8d5;--dv-color-sol-base1: #93a1a1;--dv-color-sol-base00: #657b83;--dv-color-sol-base01: #586e75;--dv-color-sol-blue: #268bd2;--dv-drag-over-background-color: rgba(38, 139, 210, .1);--dv-group-view-background-color: var(--dv-color-sol-base2);--dv-tabs-and-actions-container-background-color: var(--dv-color-sol-base3);--dv-activegroup-visiblepanel-tab-background-color: #e8e2d0;--dv-activegroup-hiddenpanel-tab-background-color: var( --dv-color-sol-base3 );--dv-inactivegroup-visiblepanel-tab-background-color: #e8e2d0;--dv-inactivegroup-hiddenpanel-tab-background-color: var( --dv-color-sol-base3 );--dv-activegroup-visiblepanel-tab-color: var(--dv-color-sol-base01);--dv-activegroup-hiddenpanel-tab-color: var(--dv-color-sol-base00);--dv-inactivegroup-visiblepanel-tab-color: var(--dv-color-sol-base1);--dv-inactivegroup-hiddenpanel-tab-color: rgba(147, 161, 161, .6);--dv-separator-border: transparent;--dv-paneview-active-outline-color: var(--dv-color-sol-blue);--dv-active-sash-color: var(--dv-color-sol-blue);--dv-floating-box-shadow: 0 8px 32px rgba(0, 0, 0, .12), 0 2px 8px rgba(0, 0, 0, .08);--dv-floating-border: 1px solid rgba(0, 0, 0, .1);--dv-scrollbar-background-color: rgba(101, 123, 131, .25);--dv-floating-group-border: 2px solid rgba(238, 232, 213, .5)}.dockview-theme-github-dark{--dv-paneview-active-outline-color: dodgerblue;--dv-tabs-and-actions-container-font-size: 13px;--dv-tabs-and-actions-container-height: 35px;--dv-drag-over-background-color: rgba(83, 89, 93, .5);--dv-drag-over-border-color: transparent;--dv-tabs-container-scrollbar-color: #888;--dv-icon-hover-background-color: rgba(90, 93, 94, .31);--dv-floating-box-shadow: 0 8px 32px rgba(0, 0, 0, .4), 0 2px 8px rgba(0, 0, 0, .25);--dv-floating-border: 1px solid rgba(255, 255, 255, .1);--dv-overlay-z-index: 999;--dv-tab-font-size: inherit;--dv-border-radius: 0px;--dv-tab-margin: 0;--dv-sash-color: transparent;--dv-active-sash-color: transparent;--dv-active-sash-transition-duration: .1s;--dv-active-sash-transition-delay: .5s;--dv-spacing-padding: 0px;--dv-tab-border-radius: 0px;--dv-sash-border-radius: 0px;--dv-dropdown-border-radius: 0px;--dv-tab-close-icon-size: inherit;--dv-floating-group-border: none;--dv-drag-over-border: none;--dv-floating-group-dragging-opacity: .5;--dv-floating-titlebar-height: 22px;--dv-floating-titlebar-background-color: var( --dv-tabs-and-actions-container-background-color );--dv-floating-titlebar-border-bottom: var(--dv-floating-border);--dv-tab-group-color-grey: #5f6368;--dv-tab-group-color-blue: #1a73e8;--dv-tab-group-color-red: #d93025;--dv-tab-group-color-yellow: #f9ab00;--dv-tab-group-color-green: #188038;--dv-tab-group-color-pink: #d01884;--dv-tab-group-color-purple: #a142f4;--dv-tab-group-color-cyan: #007b83;--dv-tab-group-color-orange: #e8710a;--dv-tab-group-chip-padding: 4px 8px;--dv-tab-group-chip-border-radius: 6px;--dv-tab-group-chip-font-size: 11px;--dv-tab-group-line-height: 2px;--dv-tab-group-line-opacity: .6}.dockview-theme-github-dark .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-github-dark{--dv-color-gh-canvas-default: #0d1117;--dv-color-gh-canvas-subtle: #161b22;--dv-color-gh-canvas-inset: #010409;--dv-color-gh-border: #30363d;--dv-color-gh-border-muted: #21262d;--dv-color-gh-fg-default: #e6edf3;--dv-color-gh-fg-muted: #8b949e;--dv-color-gh-fg-subtle: #6e7681;--dv-color-gh-accent: #58a6ff;--dv-group-view-background-color: var(--dv-color-gh-canvas-default);--dv-tabs-and-actions-container-background-color: var( --dv-color-gh-canvas-subtle );--dv-activegroup-visiblepanel-tab-background-color: var( --dv-color-gh-canvas-default );--dv-activegroup-hiddenpanel-tab-background-color: var( --dv-color-gh-canvas-subtle );--dv-inactivegroup-visiblepanel-tab-background-color: var( --dv-color-gh-canvas-default );--dv-inactivegroup-hiddenpanel-tab-background-color: var( --dv-color-gh-canvas-subtle );--dv-activegroup-visiblepanel-tab-color: var(--dv-color-gh-fg-default);--dv-activegroup-hiddenpanel-tab-color: var(--dv-color-gh-fg-muted);--dv-inactivegroup-visiblepanel-tab-color: var(--dv-color-gh-fg-subtle);--dv-inactivegroup-hiddenpanel-tab-color: rgba(110, 118, 129, .5);--dv-separator-border: var(--dv-color-gh-border);--dv-paneview-active-outline-color: var(--dv-color-gh-accent);--dv-active-sash-color: var(--dv-color-gh-accent);--dv-scrollbar-background-color: rgba(48, 54, 61, .7);--dv-drag-over-background-color: rgba(88, 166, 255, .15)}.dockview-theme-github-dark-spaced{--dv-paneview-active-outline-color: dodgerblue;--dv-tabs-and-actions-container-font-size: 13px;--dv-tabs-and-actions-container-height: 35px;--dv-drag-over-background-color: rgba(83, 89, 93, .5);--dv-drag-over-border-color: transparent;--dv-tabs-container-scrollbar-color: #888;--dv-icon-hover-background-color: rgba(90, 93, 94, .31);--dv-floating-box-shadow: 0 8px 32px rgba(0, 0, 0, .4), 0 2px 8px rgba(0, 0, 0, .25);--dv-floating-border: 1px solid rgba(255, 255, 255, .1);--dv-overlay-z-index: 999;--dv-tab-font-size: inherit;--dv-border-radius: 0px;--dv-tab-margin: 0;--dv-sash-color: transparent;--dv-active-sash-color: transparent;--dv-active-sash-transition-duration: .1s;--dv-active-sash-transition-delay: .5s;--dv-spacing-padding: 0px;--dv-tab-border-radius: 0px;--dv-sash-border-radius: 0px;--dv-dropdown-border-radius: 0px;--dv-tab-close-icon-size: inherit;--dv-floating-group-border: none;--dv-drag-over-border: none;--dv-floating-group-dragging-opacity: .5;--dv-floating-titlebar-height: 22px;--dv-floating-titlebar-background-color: var( --dv-tabs-and-actions-container-background-color );--dv-floating-titlebar-border-bottom: var(--dv-floating-border);--dv-tab-group-color-grey: #5f6368;--dv-tab-group-color-blue: #1a73e8;--dv-tab-group-color-red: #d93025;--dv-tab-group-color-yellow: #f9ab00;--dv-tab-group-color-green: #188038;--dv-tab-group-color-pink: #d01884;--dv-tab-group-color-purple: #a142f4;--dv-tab-group-color-cyan: #007b83;--dv-tab-group-color-orange: #e8710a;--dv-tab-group-chip-padding: 4px 8px;--dv-tab-group-chip-border-radius: 6px;--dv-tab-group-chip-font-size: 11px;--dv-tab-group-line-height: 2px;--dv-tab-group-line-opacity: .6;--dv-spacing-padding: 10px;--dv-tab-font-size: 12px;--dv-border-radius: 12px;--dv-tab-margin: .5rem .25rem;--dv-tabs-and-actions-container-height: 44px;--dv-tab-border-radius: 8px;--dv-sash-border-radius: 4px;--dv-dropdown-border-radius: 8px;--dv-tab-close-icon-size: 8px;--dv-floating-group-border: 2px solid var(--dv-group-view-background-color);--dv-floating-titlebar-background-color: var( --dv-group-view-background-color );--dv-floating-titlebar-border-bottom: none;box-sizing:border-box;padding:var(--dv-spacing-padding);background-color:var(--dv-group-view-background-color)}.dv-shell .dockview-theme-github-dark-spaced{padding:0}.dockview-theme-github-dark-spaced .dv-resize-container:has(>.dv-groupview){border-radius:8px}.dockview-theme-github-dark-spaced .dv-sash{border-radius:var(--dv-sash-border-radius)}.dockview-theme-github-dark-spaced .dv-drop-target-anchor{border-radius:calc(var(--dv-border-radius) / 4)}.dockview-theme-github-dark-spaced .dv-drop-target-anchor.dv-drop-target-content{border-radius:var(--dv-border-radius)}.dockview-theme-github-dark-spaced .dv-resize-container{border-radius:var(--dv-border-radius)!important;border:none}.dockview-theme-github-dark-spaced .dv-resize-container .dv-groupview{border:var(--dv-floating-group-border)}.dockview-theme-github-dark-spaced .dv-resize-container>.dv-grid-view{box-sizing:border-box;padding:var(--dv-spacing-padding)}.dockview-theme-github-dark-spaced .dv-resize-container-with-titlebar>.dv-grid-view{padding-top:0}.dockview-theme-github-dark-spaced .dv-resize-container-with-titlebar>.dv-floating-titlebar{border-top-left-radius:var(--dv-border-radius);border-top-right-radius:var(--dv-border-radius)}.dockview-theme-github-dark-spaced .dv-tabs-overflow-container,.dockview-theme-github-dark-spaced .dv-tabs-overflow-dropdown-default{border-radius:var(--dv-dropdown-border-radius);height:unset!important}.dockview-theme-github-dark-spaced .dv-render-overlay{border-bottom-left-radius:var(--dv-border-radius);border-bottom-right-radius:var(--dv-border-radius)}.dockview-theme-github-dark-spaced .dv-tab{border-radius:var(--dv-tab-border-radius)}.dockview-theme-github-dark-spaced .dv-tab .dv-svg{height:var(--dv-tab-close-icon-size);width:var(--dv-tab-close-icon-size)}.dockview-theme-github-dark-spaced .dv-tabs-container-vertical .dv-tab{margin:.25rem .5rem}.dockview-theme-github-dark-spaced .dv-groupview{border-radius:var(--dv-border-radius)}.dockview-theme-github-dark-spaced .dv-groupview .dv-tabs-and-actions-container{padding:0px calc(var(--dv-border-radius) / 2);border-top-left-radius:var(--dv-border-radius);border-top-right-radius:var(--dv-border-radius)}.dockview-theme-github-dark-spaced .dv-groupview .dv-tabs-and-actions-container.dv-groupview-header-vertical{padding:calc(var(--dv-border-radius) / 2) 0}.dockview-theme-github-dark-spaced .dv-groupview .dv-content-container{background-color:var(--dv-tabs-and-actions-container-background-color);border-bottom-left-radius:var(--dv-border-radius);border-bottom-right-radius:var(--dv-border-radius)}.dockview-theme-github-dark-spaced{--dv-color-gh-canvas-default: #0d1117;--dv-color-gh-canvas-subtle: #161b22;--dv-color-gh-canvas-inset: #010409;--dv-color-gh-border: #30363d;--dv-color-gh-border-muted: #21262d;--dv-color-gh-fg-default: #e6edf3;--dv-color-gh-fg-muted: #8b949e;--dv-color-gh-fg-subtle: #6e7681;--dv-color-gh-accent: #58a6ff;--dv-drag-over-background-color: rgba(88, 166, 255, .1);--dv-group-view-background-color: var(--dv-color-gh-canvas-inset);--dv-tabs-and-actions-container-background-color: var( --dv-color-gh-canvas-subtle );--dv-activegroup-visiblepanel-tab-background-color: var( --dv-color-gh-border );--dv-activegroup-hiddenpanel-tab-background-color: var( --dv-color-gh-canvas-subtle );--dv-inactivegroup-visiblepanel-tab-background-color: var( --dv-color-gh-border );--dv-inactivegroup-hiddenpanel-tab-background-color: var( --dv-color-gh-canvas-subtle );--dv-activegroup-visiblepanel-tab-color: var(--dv-color-gh-fg-default);--dv-activegroup-hiddenpanel-tab-color: var(--dv-color-gh-fg-muted);--dv-inactivegroup-visiblepanel-tab-color: var(--dv-color-gh-fg-subtle);--dv-inactivegroup-hiddenpanel-tab-color: rgba(110, 118, 129, .5);--dv-separator-border: transparent;--dv-paneview-active-outline-color: var(--dv-color-gh-accent);--dv-active-sash-color: var(--dv-color-gh-accent);--dv-scrollbar-background-color: rgba(48, 54, 61, .7);--dv-floating-group-border: 2px solid var(--dv-color-gh-canvas-inset)}.dockview-theme-github-light{--dv-paneview-active-outline-color: dodgerblue;--dv-tabs-and-actions-container-font-size: 13px;--dv-tabs-and-actions-container-height: 35px;--dv-drag-over-background-color: rgba(83, 89, 93, .5);--dv-drag-over-border-color: transparent;--dv-tabs-container-scrollbar-color: #888;--dv-icon-hover-background-color: rgba(90, 93, 94, .31);--dv-floating-box-shadow: 0 8px 32px rgba(0, 0, 0, .4), 0 2px 8px rgba(0, 0, 0, .25);--dv-floating-border: 1px solid rgba(255, 255, 255, .1);--dv-overlay-z-index: 999;--dv-tab-font-size: inherit;--dv-border-radius: 0px;--dv-tab-margin: 0;--dv-sash-color: transparent;--dv-active-sash-color: transparent;--dv-active-sash-transition-duration: .1s;--dv-active-sash-transition-delay: .5s;--dv-spacing-padding: 0px;--dv-tab-border-radius: 0px;--dv-sash-border-radius: 0px;--dv-dropdown-border-radius: 0px;--dv-tab-close-icon-size: inherit;--dv-floating-group-border: none;--dv-drag-over-border: none;--dv-floating-group-dragging-opacity: .5;--dv-floating-titlebar-height: 22px;--dv-floating-titlebar-background-color: var( --dv-tabs-and-actions-container-background-color );--dv-floating-titlebar-border-bottom: var(--dv-floating-border);--dv-tab-group-color-grey: #5f6368;--dv-tab-group-color-blue: #1a73e8;--dv-tab-group-color-red: #d93025;--dv-tab-group-color-yellow: #f9ab00;--dv-tab-group-color-green: #188038;--dv-tab-group-color-pink: #d01884;--dv-tab-group-color-purple: #a142f4;--dv-tab-group-color-cyan: #007b83;--dv-tab-group-color-orange: #e8710a;--dv-tab-group-chip-padding: 4px 8px;--dv-tab-group-chip-border-radius: 6px;--dv-tab-group-chip-font-size: 11px;--dv-tab-group-line-height: 2px;--dv-tab-group-line-opacity: .6}.dockview-theme-github-light .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-github-light{--dv-color-gh-light-canvas-default: #ffffff;--dv-color-gh-light-canvas-subtle: #f6f8fa;--dv-color-gh-light-canvas-inset: #f0f6ff;--dv-color-gh-light-border: #d0d7de;--dv-color-gh-light-fg-default: #1f2328;--dv-color-gh-light-fg-muted: #656d76;--dv-color-gh-light-fg-subtle: #6e7781;--dv-color-gh-light-accent: #0969da;--dv-group-view-background-color: var(--dv-color-gh-light-canvas-default);--dv-tabs-and-actions-container-background-color: var( --dv-color-gh-light-canvas-subtle );--dv-activegroup-visiblepanel-tab-background-color: var( --dv-color-gh-light-canvas-default );--dv-activegroup-hiddenpanel-tab-background-color: var( --dv-color-gh-light-canvas-subtle );--dv-inactivegroup-visiblepanel-tab-background-color: var( --dv-color-gh-light-canvas-default );--dv-inactivegroup-hiddenpanel-tab-background-color: var( --dv-color-gh-light-canvas-subtle );--dv-activegroup-visiblepanel-tab-color: var( --dv-color-gh-light-fg-default );--dv-activegroup-hiddenpanel-tab-color: var(--dv-color-gh-light-fg-muted);--dv-inactivegroup-visiblepanel-tab-color: var( --dv-color-gh-light-fg-subtle );--dv-inactivegroup-hiddenpanel-tab-color: rgba(110, 118, 129, .4);--dv-separator-border: var(--dv-color-gh-light-border);--dv-paneview-active-outline-color: var(--dv-color-gh-light-accent);--dv-active-sash-color: var(--dv-color-gh-light-accent);--dv-scrollbar-background-color: rgba(208, 215, 222, .5);--dv-drag-over-background-color: rgba(9, 105, 218, .1);--dv-floating-box-shadow: 0 8px 32px rgba(0, 0, 0, .12), 0 2px 8px rgba(0, 0, 0, .08);--dv-floating-border: 1px solid rgba(0, 0, 0, .1)}.dockview-theme-github-light-spaced{--dv-paneview-active-outline-color: dodgerblue;--dv-tabs-and-actions-container-font-size: 13px;--dv-tabs-and-actions-container-height: 35px;--dv-drag-over-background-color: rgba(83, 89, 93, .5);--dv-drag-over-border-color: transparent;--dv-tabs-container-scrollbar-color: #888;--dv-icon-hover-background-color: rgba(90, 93, 94, .31);--dv-floating-box-shadow: 0 8px 32px rgba(0, 0, 0, .4), 0 2px 8px rgba(0, 0, 0, .25);--dv-floating-border: 1px solid rgba(255, 255, 255, .1);--dv-overlay-z-index: 999;--dv-tab-font-size: inherit;--dv-border-radius: 0px;--dv-tab-margin: 0;--dv-sash-color: transparent;--dv-active-sash-color: transparent;--dv-active-sash-transition-duration: .1s;--dv-active-sash-transition-delay: .5s;--dv-spacing-padding: 0px;--dv-tab-border-radius: 0px;--dv-sash-border-radius: 0px;--dv-dropdown-border-radius: 0px;--dv-tab-close-icon-size: inherit;--dv-floating-group-border: none;--dv-drag-over-border: none;--dv-floating-group-dragging-opacity: .5;--dv-floating-titlebar-height: 22px;--dv-floating-titlebar-background-color: var( --dv-tabs-and-actions-container-background-color );--dv-floating-titlebar-border-bottom: var(--dv-floating-border);--dv-tab-group-color-grey: #5f6368;--dv-tab-group-color-blue: #1a73e8;--dv-tab-group-color-red: #d93025;--dv-tab-group-color-yellow: #f9ab00;--dv-tab-group-color-green: #188038;--dv-tab-group-color-pink: #d01884;--dv-tab-group-color-purple: #a142f4;--dv-tab-group-color-cyan: #007b83;--dv-tab-group-color-orange: #e8710a;--dv-tab-group-chip-padding: 4px 8px;--dv-tab-group-chip-border-radius: 6px;--dv-tab-group-chip-font-size: 11px;--dv-tab-group-line-height: 2px;--dv-tab-group-line-opacity: .6;--dv-spacing-padding: 10px;--dv-tab-font-size: 12px;--dv-border-radius: 12px;--dv-tab-margin: .5rem .25rem;--dv-tabs-and-actions-container-height: 44px;--dv-tab-border-radius: 8px;--dv-sash-border-radius: 4px;--dv-dropdown-border-radius: 8px;--dv-tab-close-icon-size: 8px;--dv-floating-group-border: 2px solid var(--dv-group-view-background-color);--dv-floating-titlebar-background-color: var( --dv-group-view-background-color );--dv-floating-titlebar-border-bottom: none;box-sizing:border-box;padding:var(--dv-spacing-padding);background-color:var(--dv-group-view-background-color)}.dv-shell .dockview-theme-github-light-spaced{padding:0}.dockview-theme-github-light-spaced .dv-resize-container:has(>.dv-groupview){border-radius:8px}.dockview-theme-github-light-spaced .dv-sash{border-radius:var(--dv-sash-border-radius)}.dockview-theme-github-light-spaced .dv-drop-target-anchor{border-radius:calc(var(--dv-border-radius) / 4)}.dockview-theme-github-light-spaced .dv-drop-target-anchor.dv-drop-target-content{border-radius:var(--dv-border-radius)}.dockview-theme-github-light-spaced .dv-resize-container{border-radius:var(--dv-border-radius)!important;border:none}.dockview-theme-github-light-spaced .dv-resize-container .dv-groupview{border:var(--dv-floating-group-border)}.dockview-theme-github-light-spaced .dv-resize-container>.dv-grid-view{box-sizing:border-box;padding:var(--dv-spacing-padding)}.dockview-theme-github-light-spaced .dv-resize-container-with-titlebar>.dv-grid-view{padding-top:0}.dockview-theme-github-light-spaced .dv-resize-container-with-titlebar>.dv-floating-titlebar{border-top-left-radius:var(--dv-border-radius);border-top-right-radius:var(--dv-border-radius)}.dockview-theme-github-light-spaced .dv-tabs-overflow-container,.dockview-theme-github-light-spaced .dv-tabs-overflow-dropdown-default{border-radius:var(--dv-dropdown-border-radius);height:unset!important}.dockview-theme-github-light-spaced .dv-render-overlay{border-bottom-left-radius:var(--dv-border-radius);border-bottom-right-radius:var(--dv-border-radius)}.dockview-theme-github-light-spaced .dv-tab{border-radius:var(--dv-tab-border-radius)}.dockview-theme-github-light-spaced .dv-tab .dv-svg{height:var(--dv-tab-close-icon-size);width:var(--dv-tab-close-icon-size)}.dockview-theme-github-light-spaced .dv-tabs-container-vertical .dv-tab{margin:.25rem .5rem}.dockview-theme-github-light-spaced .dv-groupview{border-radius:var(--dv-border-radius)}.dockview-theme-github-light-spaced .dv-groupview .dv-tabs-and-actions-container{padding:0px calc(var(--dv-border-radius) / 2);border-top-left-radius:var(--dv-border-radius);border-top-right-radius:var(--dv-border-radius)}.dockview-theme-github-light-spaced .dv-groupview .dv-tabs-and-actions-container.dv-groupview-header-vertical{padding:calc(var(--dv-border-radius) / 2) 0}.dockview-theme-github-light-spaced .dv-groupview .dv-content-container{background-color:var(--dv-tabs-and-actions-container-background-color);border-bottom-left-radius:var(--dv-border-radius);border-bottom-right-radius:var(--dv-border-radius)}.dockview-theme-github-light-spaced{--dv-color-gh-light-canvas-default: #ffffff;--dv-color-gh-light-canvas-subtle: #f6f8fa;--dv-color-gh-light-border: #d0d7de;--dv-color-gh-light-fg-default: #1f2328;--dv-color-gh-light-fg-muted: #656d76;--dv-color-gh-light-fg-subtle: #6e7781;--dv-color-gh-light-accent: #0969da;--dv-drag-over-background-color: rgba(9, 105, 218, .08);--dv-group-view-background-color: var(--dv-color-gh-light-canvas-subtle);--dv-tabs-and-actions-container-background-color: var( --dv-color-gh-light-canvas-default );--dv-activegroup-visiblepanel-tab-background-color: var( --dv-color-gh-light-border );--dv-activegroup-hiddenpanel-tab-background-color: var( --dv-color-gh-light-canvas-default );--dv-inactivegroup-visiblepanel-tab-background-color: var( --dv-color-gh-light-border );--dv-inactivegroup-hiddenpanel-tab-background-color: var( --dv-color-gh-light-canvas-default );--dv-activegroup-visiblepanel-tab-color: var( --dv-color-gh-light-fg-default );--dv-activegroup-hiddenpanel-tab-color: var(--dv-color-gh-light-fg-muted);--dv-inactivegroup-visiblepanel-tab-color: var( --dv-color-gh-light-fg-subtle );--dv-inactivegroup-hiddenpanel-tab-color: rgba(110, 118, 129, .4);--dv-separator-border: transparent;--dv-paneview-active-outline-color: var(--dv-color-gh-light-accent);--dv-active-sash-color: var(--dv-color-gh-light-accent);--dv-floating-box-shadow: 0 8px 32px rgba(0, 0, 0, .12), 0 2px 8px rgba(0, 0, 0, .08);--dv-floating-border: 1px solid rgba(0, 0, 0, .1);--dv-scrollbar-background-color: rgba(208, 215, 222, .5);--dv-floating-group-border: 2px solid rgba(208, 215, 222, .5)}.dockview-theme-abyss-spaced{--dv-paneview-active-outline-color: dodgerblue;--dv-tabs-and-actions-container-font-size: 13px;--dv-tabs-and-actions-container-height: 35px;--dv-drag-over-background-color: rgba(83, 89, 93, .5);--dv-drag-over-border-color: transparent;--dv-tabs-container-scrollbar-color: #888;--dv-icon-hover-background-color: rgba(90, 93, 94, .31);--dv-floating-box-shadow: 0 8px 32px rgba(0, 0, 0, .4), 0 2px 8px rgba(0, 0, 0, .25);--dv-floating-border: 1px solid rgba(255, 255, 255, .1);--dv-overlay-z-index: 999;--dv-tab-font-size: inherit;--dv-border-radius: 0px;--dv-tab-margin: 0;--dv-sash-color: transparent;--dv-active-sash-color: transparent;--dv-active-sash-transition-duration: .1s;--dv-active-sash-transition-delay: .5s;--dv-spacing-padding: 0px;--dv-tab-border-radius: 0px;--dv-sash-border-radius: 0px;--dv-dropdown-border-radius: 0px;--dv-tab-close-icon-size: inherit;--dv-floating-group-border: none;--dv-drag-over-border: none;--dv-floating-group-dragging-opacity: .5;--dv-floating-titlebar-height: 22px;--dv-floating-titlebar-background-color: var( --dv-tabs-and-actions-container-background-color );--dv-floating-titlebar-border-bottom: var(--dv-floating-border);--dv-tab-group-color-grey: #5f6368;--dv-tab-group-color-blue: #1a73e8;--dv-tab-group-color-red: #d93025;--dv-tab-group-color-yellow: #f9ab00;--dv-tab-group-color-green: #188038;--dv-tab-group-color-pink: #d01884;--dv-tab-group-color-purple: #a142f4;--dv-tab-group-color-cyan: #007b83;--dv-tab-group-color-orange: #e8710a;--dv-tab-group-chip-padding: 4px 8px;--dv-tab-group-chip-border-radius: 6px;--dv-tab-group-chip-font-size: 11px;--dv-tab-group-line-height: 2px;--dv-tab-group-line-opacity: .6;--dv-spacing-padding: 10px;--dv-tab-font-size: 12px;--dv-border-radius: 12px;--dv-tab-margin: .5rem .25rem;--dv-tabs-and-actions-container-height: 44px;--dv-tab-border-radius: 8px;--dv-sash-border-radius: 4px;--dv-dropdown-border-radius: 8px;--dv-tab-close-icon-size: 8px;--dv-floating-group-border: 2px solid var(--dv-group-view-background-color);--dv-floating-titlebar-background-color: var( --dv-group-view-background-color );--dv-floating-titlebar-border-bottom: none;box-sizing:border-box;padding:var(--dv-spacing-padding);background-color:var(--dv-group-view-background-color)}.dv-shell .dockview-theme-abyss-spaced{padding:0}.dockview-theme-abyss-spaced .dv-resize-container:has(>.dv-groupview){border-radius:8px}.dockview-theme-abyss-spaced .dv-sash{border-radius:var(--dv-sash-border-radius)}.dockview-theme-abyss-spaced .dv-drop-target-anchor{border-radius:calc(var(--dv-border-radius) / 4)}.dockview-theme-abyss-spaced .dv-drop-target-anchor.dv-drop-target-content{border-radius:var(--dv-border-radius)}.dockview-theme-abyss-spaced .dv-resize-container{border-radius:var(--dv-border-radius)!important;border:none}.dockview-theme-abyss-spaced .dv-resize-container .dv-groupview{border:var(--dv-floating-group-border)}.dockview-theme-abyss-spaced .dv-resize-container>.dv-grid-view{box-sizing:border-box;padding:var(--dv-spacing-padding)}.dockview-theme-abyss-spaced .dv-resize-container-with-titlebar>.dv-grid-view{padding-top:0}.dockview-theme-abyss-spaced .dv-resize-container-with-titlebar>.dv-floating-titlebar{border-top-left-radius:var(--dv-border-radius);border-top-right-radius:var(--dv-border-radius)}.dockview-theme-abyss-spaced .dv-tabs-overflow-container,.dockview-theme-abyss-spaced .dv-tabs-overflow-dropdown-default{border-radius:var(--dv-dropdown-border-radius);height:unset!important}.dockview-theme-abyss-spaced .dv-render-overlay{border-bottom-left-radius:var(--dv-border-radius);border-bottom-right-radius:var(--dv-border-radius)}.dockview-theme-abyss-spaced .dv-tab{border-radius:var(--dv-tab-border-radius)}.dockview-theme-abyss-spaced .dv-tab .dv-svg{height:var(--dv-tab-close-icon-size);width:var(--dv-tab-close-icon-size)}.dockview-theme-abyss-spaced .dv-tabs-container-vertical .dv-tab{margin:.25rem .5rem}.dockview-theme-abyss-spaced .dv-groupview{border-radius:var(--dv-border-radius)}.dockview-theme-abyss-spaced .dv-groupview .dv-tabs-and-actions-container{padding:0px calc(var(--dv-border-radius) / 2);border-top-left-radius:var(--dv-border-radius);border-top-right-radius:var(--dv-border-radius)}.dockview-theme-abyss-spaced .dv-groupview .dv-tabs-and-actions-container.dv-groupview-header-vertical{padding:calc(var(--dv-border-radius) / 2) 0}.dockview-theme-abyss-spaced .dv-groupview .dv-content-container{background-color:var(--dv-tabs-and-actions-container-background-color);border-bottom-left-radius:var(--dv-border-radius);border-bottom-right-radius:var(--dv-border-radius)}.dockview-theme-abyss-spaced{--dv-color-abyss-dark: rgb(11, 6, 17);--dv-color-abyss: #16121f;--dv-color-abyss-light: #201d2b;--dv-color-abyss-lighter: #2a2837;--dv-color-abyss-accent: rgb(91, 30, 207);--dv-color-abyss-primary-text: white;--dv-color-abyss-secondary-text: rgb(148, 151, 169);--dv-drag-over-background-color: "";--dv-group-view-background-color: var(--dv-color-abyss-dark);--dv-tabs-and-actions-container-background-color: var(--dv-color-abyss);--dv-activegroup-visiblepanel-tab-background-color: var( --dv-color-abyss-lighter );--dv-activegroup-hiddenpanel-tab-background-color: var( --dv-color-abyss-light );--dv-inactivegroup-visiblepanel-tab-background-color: var( --dv-color-abyss-lighter );--dv-inactivegroup-hiddenpanel-tab-background-color: var( --dv-color-abyss-light );--dv-tab-divider-color: transparent;--dv-activegroup-visiblepanel-tab-color: var(--dv-color-abyss-primary-text);--dv-activegroup-hiddenpanel-tab-color: var( --dv-color-abyss-secondary-text );--dv-inactivegroup-visiblepanel-tab-color: var( --dv-color-abyss-primary-text );--dv-inactivegroup-hiddenpanel-tab-color: var( --dv-color-abyss-secondary-text );--dv-separator-border: transparent;--dv-paneview-header-border-color: rgb(51, 51, 51);--dv-active-sash-color: var(--dv-color-abyss-accent);--dv-floating-group-border: 2px solid var(--dv-color-abyss-dark)}.dockview-theme-light-spaced{--dv-paneview-active-outline-color: dodgerblue;--dv-tabs-and-actions-container-font-size: 13px;--dv-tabs-and-actions-container-height: 35px;--dv-drag-over-background-color: rgba(83, 89, 93, .5);--dv-drag-over-border-color: transparent;--dv-tabs-container-scrollbar-color: #888;--dv-icon-hover-background-color: rgba(90, 93, 94, .31);--dv-floating-box-shadow: 0 8px 32px rgba(0, 0, 0, .4), 0 2px 8px rgba(0, 0, 0, .25);--dv-floating-border: 1px solid rgba(255, 255, 255, .1);--dv-overlay-z-index: 999;--dv-tab-font-size: inherit;--dv-border-radius: 0px;--dv-tab-margin: 0;--dv-sash-color: transparent;--dv-active-sash-color: transparent;--dv-active-sash-transition-duration: .1s;--dv-active-sash-transition-delay: .5s;--dv-spacing-padding: 0px;--dv-tab-border-radius: 0px;--dv-sash-border-radius: 0px;--dv-dropdown-border-radius: 0px;--dv-tab-close-icon-size: inherit;--dv-floating-group-border: none;--dv-drag-over-border: none;--dv-floating-group-dragging-opacity: .5;--dv-floating-titlebar-height: 22px;--dv-floating-titlebar-background-color: var( --dv-tabs-and-actions-container-background-color );--dv-floating-titlebar-border-bottom: var(--dv-floating-border);--dv-tab-group-color-grey: #5f6368;--dv-tab-group-color-blue: #1a73e8;--dv-tab-group-color-red: #d93025;--dv-tab-group-color-yellow: #f9ab00;--dv-tab-group-color-green: #188038;--dv-tab-group-color-pink: #d01884;--dv-tab-group-color-purple: #a142f4;--dv-tab-group-color-cyan: #007b83;--dv-tab-group-color-orange: #e8710a;--dv-tab-group-chip-padding: 4px 8px;--dv-tab-group-chip-border-radius: 6px;--dv-tab-group-chip-font-size: 11px;--dv-tab-group-line-height: 2px;--dv-tab-group-line-opacity: .6;--dv-spacing-padding: 10px;--dv-tab-font-size: 12px;--dv-border-radius: 12px;--dv-tab-margin: .5rem .25rem;--dv-tabs-and-actions-container-height: 44px;--dv-tab-border-radius: 8px;--dv-sash-border-radius: 4px;--dv-dropdown-border-radius: 8px;--dv-tab-close-icon-size: 8px;--dv-floating-group-border: 2px solid var(--dv-group-view-background-color);--dv-floating-titlebar-background-color: var( --dv-group-view-background-color );--dv-floating-titlebar-border-bottom: none;box-sizing:border-box;padding:var(--dv-spacing-padding);background-color:var(--dv-group-view-background-color)}.dv-shell .dockview-theme-light-spaced{padding:0}.dockview-theme-light-spaced .dv-resize-container:has(>.dv-groupview){border-radius:8px}.dockview-theme-light-spaced .dv-sash{border-radius:var(--dv-sash-border-radius)}.dockview-theme-light-spaced .dv-drop-target-anchor{border-radius:calc(var(--dv-border-radius) / 4)}.dockview-theme-light-spaced .dv-drop-target-anchor.dv-drop-target-content{border-radius:var(--dv-border-radius)}.dockview-theme-light-spaced .dv-resize-container{border-radius:var(--dv-border-radius)!important;border:none}.dockview-theme-light-spaced .dv-resize-container .dv-groupview{border:var(--dv-floating-group-border)}.dockview-theme-light-spaced .dv-resize-container>.dv-grid-view{box-sizing:border-box;padding:var(--dv-spacing-padding)}.dockview-theme-light-spaced .dv-resize-container-with-titlebar>.dv-grid-view{padding-top:0}.dockview-theme-light-spaced .dv-resize-container-with-titlebar>.dv-floating-titlebar{border-top-left-radius:var(--dv-border-radius);border-top-right-radius:var(--dv-border-radius)}.dockview-theme-light-spaced .dv-tabs-overflow-container,.dockview-theme-light-spaced .dv-tabs-overflow-dropdown-default{border-radius:var(--dv-dropdown-border-radius);height:unset!important}.dockview-theme-light-spaced .dv-render-overlay{border-bottom-left-radius:var(--dv-border-radius);border-bottom-right-radius:var(--dv-border-radius)}.dockview-theme-light-spaced .dv-tab{border-radius:var(--dv-tab-border-radius)}.dockview-theme-light-spaced .dv-tab .dv-svg{height:var(--dv-tab-close-icon-size);width:var(--dv-tab-close-icon-size)}.dockview-theme-light-spaced .dv-tabs-container-vertical .dv-tab{margin:.25rem .5rem}.dockview-theme-light-spaced .dv-groupview{border-radius:var(--dv-border-radius)}.dockview-theme-light-spaced .dv-groupview .dv-tabs-and-actions-container{padding:0px calc(var(--dv-border-radius) / 2);border-top-left-radius:var(--dv-border-radius);border-top-right-radius:var(--dv-border-radius)}.dockview-theme-light-spaced .dv-groupview .dv-tabs-and-actions-container.dv-groupview-header-vertical{padding:calc(var(--dv-border-radius) / 2) 0}.dockview-theme-light-spaced .dv-groupview .dv-content-container{background-color:var(--dv-tabs-and-actions-container-background-color);border-bottom-left-radius:var(--dv-border-radius);border-bottom-right-radius:var(--dv-border-radius)}.dockview-theme-light-spaced{--dv-drag-over-background-color: "";--dv-group-view-background-color: #f6f5f9;--dv-tabs-and-actions-container-background-color: white;--dv-activegroup-visiblepanel-tab-background-color: #ededf0;--dv-activegroup-hiddenpanel-tab-background-color: #f9f9fa;--dv-inactivegroup-visiblepanel-tab-background-color: #ededf0;--dv-inactivegroup-hiddenpanel-tab-background-color: #f9f9fa;--dv-tab-divider-color: transparent;--dv-activegroup-visiblepanel-tab-color: rgb(104, 107, 130);--dv-activegroup-hiddenpanel-tab-color: rgb(148, 151, 169);--dv-inactivegroup-visiblepanel-tab-color: rgb(104, 107, 130);--dv-inactivegroup-hiddenpanel-tab-color: rgb(148, 151, 169);--dv-separator-border: transparent;--dv-paneview-header-border-color: rgb(51, 51, 51);--dv-active-sash-color: rgb(91, 30, 207);--dv-floating-box-shadow: 0 8px 32px rgba(0, 0, 0, .12), 0 2px 8px rgba(0, 0, 0, .08);--dv-floating-border: 1px solid rgba(0, 0, 0, .1);--dv-scrollbar-background-color: rgba(0, 0, 0, .25);--dv-floating-group-border: 2px solid rgba(255, 255, 255, .1)}.dockview-spaced{--dv-spacing-padding: 10px;--dv-tab-font-size: 12px;--dv-border-radius: 12px;--dv-tab-margin: .5rem .25rem;--dv-tabs-and-actions-container-height: 44px;--dv-tab-border-radius: 8px;--dv-sash-border-radius: 4px;--dv-dropdown-border-radius: 8px;--dv-tab-close-icon-size: 8px;--dv-floating-group-border: 2px solid var(--dv-group-view-background-color);--dv-floating-titlebar-background-color: var( --dv-group-view-background-color );--dv-floating-titlebar-border-bottom: none;box-sizing:border-box;padding:var(--dv-spacing-padding);background-color:var(--dv-group-view-background-color)}.dv-shell .dockview-spaced{padding:0}.dockview-spaced .dv-resize-container:has(>.dv-groupview){border-radius:8px}.dockview-spaced .dv-sash{border-radius:var(--dv-sash-border-radius)}.dockview-spaced .dv-drop-target-anchor{border-radius:calc(var(--dv-border-radius) / 4)}.dockview-spaced .dv-drop-target-anchor.dv-drop-target-content{border-radius:var(--dv-border-radius)}.dockview-spaced .dv-resize-container{border-radius:var(--dv-border-radius)!important;border:none}.dockview-spaced .dv-resize-container .dv-groupview{border:var(--dv-floating-group-border)}.dockview-spaced .dv-resize-container>.dv-grid-view{box-sizing:border-box;padding:var(--dv-spacing-padding)}.dockview-spaced .dv-resize-container-with-titlebar>.dv-grid-view{padding-top:0}.dockview-spaced .dv-resize-container-with-titlebar>.dv-floating-titlebar{border-top-left-radius:var(--dv-border-radius);border-top-right-radius:var(--dv-border-radius)}.dockview-spaced .dv-tabs-overflow-container,.dockview-spaced .dv-tabs-overflow-dropdown-default{border-radius:var(--dv-dropdown-border-radius);height:unset!important}.dockview-spaced .dv-render-overlay{border-bottom-left-radius:var(--dv-border-radius);border-bottom-right-radius:var(--dv-border-radius)}.dockview-spaced .dv-tab{border-radius:var(--dv-tab-border-radius)}.dockview-spaced .dv-tab .dv-svg{height:var(--dv-tab-close-icon-size);width:var(--dv-tab-close-icon-size)}.dockview-spaced .dv-tabs-container-vertical .dv-tab{margin:.25rem .5rem}.dockview-spaced .dv-groupview{border-radius:var(--dv-border-radius)}.dockview-spaced .dv-groupview .dv-tabs-and-actions-container{padding:0px calc(var(--dv-border-radius) / 2);border-top-left-radius:var(--dv-border-radius);border-top-right-radius:var(--dv-border-radius)}.dockview-spaced .dv-groupview .dv-tabs-and-actions-container.dv-groupview-header-vertical{padding:calc(var(--dv-border-radius) / 2) 0}.dockview-spaced .dv-groupview .dv-content-container{background-color:var(--dv-tabs-and-actions-container-background-color);border-bottom-left-radius:var(--dv-border-radius);border-bottom-right-radius:var(--dv-border-radius)}.dv-context-menu{min-width:160px;overflow:hidden;background:var(--dv-context-menu-background-color, var(--dv-activegroup-hiddenpanel-tab-background-color));color:var(--dv-context-menu-color, var(--dv-activegroup-hiddenpanel-tab-color));border:1px solid var(--dv-tab-divider-color);border-radius:var(--dv-border-radius);box-shadow:var(--dv-floating-box-shadow);padding:4px 0}.dv-context-menu-item{height:25px;padding:0 12px;display:flex;align-items:center;cursor:pointer;font-size:var(--dv-tabs-and-actions-container-font-size);white-space:nowrap;user-select:none}.dv-context-menu-item:hover{background:var(--dv-icon-hover-background-color)}.dv-context-menu-item.dv-context-menu-item--disabled{opacity:.4;cursor:default;pointer-events:none}.dv-context-menu-separator{height:1px;background:var(--dv-tab-divider-color);margin:4px 0}.dv-context-menu-rename{padding:8px 12px 4px}.dv-context-menu-rename-input{width:100%;box-sizing:border-box;padding:8px 10px;border:1px solid var(--dv-tab-divider-color);border-radius:var(--dv-border-radius);background:inherit;color:var(--dv-activegroup-visiblepanel-tab-color);font-size:var(--dv-tabs-and-actions-container-font-size);outline:none}.dv-context-menu-rename-input:focus{border-color:var(--dv-activegroup-visiblepanel-tab-color)}.dv-context-menu-rename-input::placeholder{color:var(--dv-activegroup-hiddenpanel-tab-color)}.dv-context-menu-color-picker{display:flex;flex-direction:row;gap:6px;padding:8px 12px;align-items:center}.dv-context-menu-color-swatch{width:20px;height:20px;border-radius:50%;cursor:pointer;border:2px solid transparent;flex-shrink:0;background-color:var(--dv-tab-group-color)}.dv-context-menu-color-swatch:hover{opacity:.85}.dv-context-menu-color-swatch.dv-context-menu-color-swatch--selected{outline:2px solid var(--dv-tab-divider-color);outline-offset:2px}.dv-tab-group-indicator-none .dv-groupview-header-bottom .dv-tab-group-underline{top:auto;bottom:0}.dv-groupview.dv-groupview-header-bottom.dv-active-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab:after,.dv-groupview.dv-groupview-header-bottom.dv-inactive-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab:after{top:0;bottom:auto}.dv-drop-target-container{position:absolute;z-index:9999;top:0;left:0;height:100%;width:100%;pointer-events:none;overflow:hidden;--dv-transition-duration: .3s}.dv-drop-target-container .dv-drop-target-anchor{position:relative;border:var(--dv-drag-over-border);background-color:var(--dv-drag-over-background-color);opacity:1;will-change:transform,opacity;transform:translateZ(0);backface-visibility:hidden;contain:layout paint;transition:opacity var(--dv-transition-duration) ease-in,top var(--dv-transition-duration) ease-out,left var(--dv-transition-duration) ease-out,width var(--dv-transition-duration) ease-out,height var(--dv-transition-duration) ease-out}.dv-drop-target{position:relative;--dv-transition-duration: 70ms}.dv-drop-target>.dv-drop-target-dropzone{position:absolute;left:0;top:0;height:100%;width:100%;z-index:1000;pointer-events:none}.dv-drop-target>.dv-drop-target-dropzone>.dv-drop-target-selection{position:relative;box-sizing:border-box;height:100%;width:100%;border:var(--dv-drag-over-border);background-color:var(--dv-drag-over-background-color);transition:top var(--dv-transition-duration) ease-out,left var(--dv-transition-duration) ease-out,width var(--dv-transition-duration) ease-out,height var(--dv-transition-duration) ease-out,opacity var(--dv-transition-duration) ease-out;will-change:transform;pointer-events:none}.dv-drop-target>.dv-drop-target-dropzone>.dv-drop-target-selection.dv-drop-target-top.dv-drop-target-small-vertical{border-top:1px solid var(--dv-drag-over-border-color)}.dv-drop-target>.dv-drop-target-dropzone>.dv-drop-target-selection.dv-drop-target-bottom.dv-drop-target-small-vertical{border-bottom:1px solid var(--dv-drag-over-border-color)}.dv-drop-target>.dv-drop-target-dropzone>.dv-drop-target-selection.dv-drop-target-left.dv-drop-target-small-horizontal{border-left:1px solid var(--dv-drag-over-border-color)}.dv-drop-target>.dv-drop-target-dropzone>.dv-drop-target-selection.dv-drop-target-right.dv-drop-target-small-horizontal{border-right:1px solid var(--dv-drag-over-border-color)}.dv-dockview{position:relative;background-color:var(--dv-group-view-background-color)}.dv-dockview .dv-watermark-container{position:absolute;top:0;left:0;height:100%;width:100%;z-index:1}.dv-dockview .dv-overlay-render-container{position:relative}.dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab{background-color:var(--dv-activegroup-visiblepanel-tab-background-color);color:var(--dv-activegroup-visiblepanel-tab-color)}.dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-inactive-tab{background-color:var(--dv-activegroup-hiddenpanel-tab-background-color);color:var(--dv-activegroup-hiddenpanel-tab-color)}.dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab{background-color:var(--dv-inactivegroup-visiblepanel-tab-background-color);color:var(--dv-inactivegroup-visiblepanel-tab-color)}.dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-inactive-tab{background-color:var(--dv-inactivegroup-hiddenpanel-tab-background-color);color:var(--dv-inactivegroup-hiddenpanel-tab-color)}.dv-tab.dv-tab-dragging{background-color:var(--dv-activegroup-visiblepanel-tab-background-color);color:var(--dv-activegroup-visiblepanel-tab-color)}.dv-groupview{display:flex;height:100%;background-color:var(--dv-group-view-background-color);overflow:hidden;flex-direction:column}.dv-groupview:focus{outline:none}.dv-groupview>.dv-content-container{flex-grow:1;min-height:0;outline:none}.dv-groupview.dv-groupview-header-bottom{flex-direction:column-reverse}.dv-groupview.dv-groupview-header-left{flex-direction:row}.dv-groupview.dv-groupview-header-right{flex-direction:row-reverse}.dv-groupview.dv-groupview-edge.dv-edge-collapsed>.dv-content-container{display:none}.dv-root-wrapper,.dv-grid-view,.dv-branch-node{height:100%;width:100%}.dv-debug .dv-resize-container .dv-resize-handle-top{background-color:red}.dv-debug .dv-resize-container .dv-resize-handle-bottom{background-color:green}.dv-debug .dv-resize-container .dv-resize-handle-left{background-color:#ff0}.dv-debug .dv-resize-container .dv-resize-handle-right{background-color:#00f}.dv-debug .dv-resize-container .dv-resize-handle-topleft,.dv-debug .dv-resize-container .dv-resize-handle-topright,.dv-debug .dv-resize-container .dv-resize-handle-bottomleft,.dv-debug .dv-resize-container .dv-resize-handle-bottomright{background-color:#0ff}.dv-floating-overlay-host{position:absolute;pointer-events:none}.dv-floating-overlay-host>.dv-resize-container{pointer-events:auto}.dv-resize-container>.dv-grid-view{width:100%;height:100%}.dv-resize-container-with-titlebar{display:flex;flex-direction:column}.dv-resize-container-with-titlebar>.dv-floating-titlebar{flex:0 0 auto}.dv-resize-container-with-titlebar>.dv-grid-view{height:auto;flex:1 1 0;min-height:0}.dv-floating-titlebar{box-sizing:border-box;flex-shrink:0;height:var(--dv-floating-titlebar-height, 22px);background-color:var(--dv-floating-titlebar-background-color);border-bottom:var(--dv-floating-titlebar-border-bottom, none);user-select:none;touch-action:none}.dv-floating-titlebar.dv-draggable{cursor:grab}.dv-resize-container{--dv-overlay-z-index: var(--dv-overlay-z-index, 999);position:absolute;z-index:calc(var(--dv-overlay-z-index) - 2);background-color:var(--dv-group-view-background-color);border:var(--dv-floating-border);box-shadow:var(--dv-floating-box-shadow);will-change:transform,opacity;transform:translateZ(0);backface-visibility:hidden}.dv-resize-container.dv-hidden{display:none}.dv-resize-container.dv-resize-container-dragging{opacity:var(--dv-floating-group-dragging-opacity);will-change:transform,opacity}.dv-resize-container .dv-resize-handle-top,.dv-resize-container .dv-resize-handle-bottom,.dv-resize-container .dv-resize-handle-left,.dv-resize-container .dv-resize-handle-right,.dv-resize-container .dv-resize-handle-topleft,.dv-resize-container .dv-resize-handle-topright,.dv-resize-container .dv-resize-handle-bottomleft,.dv-resize-container .dv-resize-handle-bottomright{touch-action:none}.dv-resize-container .dv-resize-handle-top{height:4px;width:calc(100% - 8px);left:4px;top:-2px;z-index:var(--dv-overlay-z-index);position:absolute;cursor:ns-resize}.dv-resize-container .dv-resize-handle-bottom{height:4px;width:calc(100% - 8px);left:4px;bottom:-2px;z-index:var(--dv-overlay-z-index);position:absolute;cursor:ns-resize}.dv-resize-container .dv-resize-handle-left{height:calc(100% - 8px);width:4px;left:-2px;top:4px;z-index:var(--dv-overlay-z-index);position:absolute;cursor:ew-resize}.dv-resize-container .dv-resize-handle-right{height:calc(100% - 8px);width:4px;right:-2px;top:4px;z-index:var(--dv-overlay-z-index);position:absolute;cursor:ew-resize}.dv-resize-container .dv-resize-handle-topleft{height:4px;width:4px;top:-2px;left:-2px;z-index:var(--dv-overlay-z-index);position:absolute;cursor:nw-resize}.dv-resize-container .dv-resize-handle-topright{height:4px;width:4px;right:-2px;top:-2px;z-index:var(--dv-overlay-z-index);position:absolute;cursor:ne-resize}.dv-resize-container .dv-resize-handle-bottomleft{height:4px;width:4px;left:-2px;bottom:-2px;z-index:var(--dv-overlay-z-index);position:absolute;cursor:sw-resize}.dv-resize-container .dv-resize-handle-bottomright{height:4px;width:4px;right:-2px;bottom:-2px;z-index:var(--dv-overlay-z-index);position:absolute;cursor:se-resize}@media(pointer:coarse){.dv-resize-container .dv-resize-handle-top,.dv-resize-container .dv-resize-handle-bottom{height:16px;width:calc(100% - 48px);left:24px}.dv-resize-container .dv-resize-handle-top{top:-10px}.dv-resize-container .dv-resize-handle-bottom{bottom:-10px}.dv-resize-container .dv-resize-handle-left,.dv-resize-container .dv-resize-handle-right{width:16px;height:calc(100% - 48px);top:24px}.dv-resize-container .dv-resize-handle-left{left:-10px}.dv-resize-container .dv-resize-handle-right{right:-10px}.dv-resize-container .dv-resize-handle-topleft,.dv-resize-container .dv-resize-handle-topright,.dv-resize-container .dv-resize-handle-bottomleft,.dv-resize-container .dv-resize-handle-bottomright{height:24px;width:24px}.dv-resize-container .dv-resize-handle-topleft{top:-12px;left:-12px}.dv-resize-container .dv-resize-handle-topright{top:-12px;right:-12px}.dv-resize-container .dv-resize-handle-bottomleft{bottom:-12px;left:-12px}.dv-resize-container .dv-resize-handle-bottomright{bottom:-12px;right:-12px}}.dv-render-overlay{--dv-overlay-z-index: var(--dv-overlay-z-index, 999);position:absolute;z-index:1;width:100%;height:100%;contain:layout paint;isolation:isolate;will-change:transform;transform:translateZ(0);backface-visibility:hidden}.dv-render-overlay.dv-render-overlay-float{z-index:calc(var(--dv-overlay-z-index) - 1)}.dv-debug .dv-render-overlay{outline:1px solid red;outline-offset:-1}.dv-pane-container{height:100%;width:100%}.dv-pane-container.dv-animated .dv-view{will-change:transform;transform:translateZ(0);backface-visibility:hidden;transition:transform .15s ease-out}.dv-pane-container .dv-view{overflow:hidden;display:flex;flex-direction:column;padding:0!important}.dv-pane-container .dv-view:not(:first-child):before{background-color:transparent!important}.dv-pane-container .dv-view:not(:first-child) .dv-pane>.dv-pane-header{border-top:1px solid var(--dv-paneview-header-border-color)}.dv-pane-container .dv-view .dv-default-header{background-color:var(--dv-group-view-background-color);color:var(--dv-activegroup-visiblepanel-tab-color);display:flex;padding:0 8px;cursor:pointer}.dv-pane-container .dv-view .dv-default-header .dv-pane-header-icon{display:flex;justify-content:center;align-items:center}.dv-pane-container .dv-view .dv-default-header>span{padding-left:8px;flex-grow:1}.dv-pane-container:first-of-type>.dv-pane>.dv-pane-header{border-top:none!important}.dv-pane-container .dv-pane{display:flex;flex-direction:column;overflow:hidden;height:100%}.dv-pane-container .dv-pane .dv-pane-header{box-sizing:border-box;user-select:none;position:relative;outline:none}.dv-pane-container .dv-pane .dv-pane-header.dv-pane-draggable{cursor:pointer}.dv-pane-container .dv-pane .dv-pane-header:focus:before,.dv-pane-container .dv-pane .dv-pane-header:focus-within:before{position:absolute;top:0;left:0;width:100%;height:100%;z-index:5;content:"";pointer-events:none;outline:1px solid;outline-width:-1px;outline-style:solid;outline-offset:-1px;outline-color:var(--dv-paneview-active-outline-color)}.dv-pane-container .dv-pane .dv-pane-body{overflow-y:auto;overflow-x:hidden;flex-grow:1;position:relative;outline:none}.dv-pane-container .dv-pane .dv-pane-body:focus:before,.dv-pane-container .dv-pane .dv-pane-body:focus-within:before{position:absolute;top:0;left:0;width:100%;height:100%;z-index:5;content:"";pointer-events:none;outline:1px solid;outline-width:-1px;outline-style:solid;outline-offset:-1px;outline-color:var(--dv-paneview-active-outline-color)}.dv-debug .dv-split-view-container .dv-sash-container .dv-sash.dv-enabled{background-color:#000}.dv-debug .dv-split-view-container .dv-sash-container .dv-sash.dv-disabled{background-color:orange}.dv-debug .dv-split-view-container .dv-sash-container .dv-sash.dv-maximum{background-color:green}.dv-debug .dv-split-view-container .dv-sash-container .dv-sash.dv-minimum{background-color:red}.dv-split-view-container{position:relative;overflow:hidden;height:100%;width:100%}.dv-split-view-container.dv-splitview-disabled>.dv-sash-container>.dv-sash{pointer-events:none}.dv-split-view-container.dv-animation .dv-view,.dv-split-view-container.dv-animation .dv-sash{will-change:transform;transform:translateZ(0);backface-visibility:hidden;transition:transform .15s ease-out}.dv-split-view-container.dv-horizontal{height:100%}.dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash{height:100%;width:4px}.dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash.dv-enabled{cursor:ew-resize}.dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash.dv-disabled{cursor:default}.dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash.dv-maximum{cursor:w-resize}.dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash.dv-minimum{cursor:e-resize}.dv-split-view-container.dv-horizontal>.dv-view-container>.dv-view:not(:first-child):before{height:100%;width:1px}.dv-split-view-container.dv-vertical{width:100%}.dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash{width:100%;height:4px}.dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash.dv-enabled{cursor:ns-resize}.dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash.dv-disabled{cursor:default}.dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash.dv-maximum{cursor:n-resize}.dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash.dv-minimum{cursor:s-resize}.dv-split-view-container.dv-vertical>.dv-view-container>.dv-view{width:100%}.dv-split-view-container.dv-vertical>.dv-view-container>.dv-view:not(:first-child):before{height:1px;width:100%}.dv-split-view-container .dv-sash-container{height:100%;width:100%;position:absolute}.dv-split-view-container .dv-sash-container .dv-sash{position:absolute;z-index:99;outline:none;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;touch-action:none;background-color:var(--dv-sash-color, transparent)}.dv-split-view-container .dv-sash-container .dv-sash:not(.disabled):active,.dv-split-view-container .dv-sash-container .dv-sash:not(.disabled):hover{background-color:var(--dv-active-sash-color, transparent);transition-property:background-color;transition-timing-function:ease-in-out;transition-duration:var(--dv-active-sash-transition-duration, .1s);transition-delay:var(--dv-active-sash-transition-delay, .5s)}@media(pointer:coarse){.dv-split-view-container .dv-sash-container>.dv-sash:not(.dv-disabled):before{content:"";position:absolute;background:transparent}.dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash:not(.dv-disabled):before{inset:0 -10px}.dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash:not(.dv-disabled):before{inset:-10px 0}}.dv-split-view-container .dv-view-container{position:relative;height:100%;width:100%}.dv-split-view-container .dv-view-container .dv-view{height:100%;box-sizing:border-box;overflow:auto;position:absolute}.dv-split-view-container.dv-separator-border .dv-view:not(:first-child):before{content:" ";position:absolute;top:0;left:0;z-index:5;pointer-events:none;background-color:var(--dv-separator-border)}.dv-dragged{transform:translateZ(0)}.dv-tab-ghost-drag{position:relative}.dv-tab-ghost-drag:after{position:absolute;content:"";height:100%;width:100%;top:0;left:0;pointer-events:none;outline:1px solid var(--dv-tab-divider-color)!important;outline-offset:-1px;z-index:5}.dv-tab{flex-shrink:0}.dv-tab:focus-within,.dv-tab:focus{position:relative}.dv-tab:focus-within:after,.dv-tab:focus:after{position:absolute;content:"";height:100%;width:100%;top:0;left:0;pointer-events:none;outline:1px solid var(--dv-tab-divider-color)!important;outline-offset:-1px;z-index:5}.dv-tab.dv-tab-dragging .dv-default-tab-action{background-color:var(--dv-activegroup-visiblepanel-tab-color)}.dv-tab.dv-active-tab .dv-default-tab .dv-default-tab-action{visibility:visible}.dv-tab.dv-inactive-tab .dv-default-tab .dv-default-tab-action{visibility:hidden}.dv-tab.dv-inactive-tab .dv-default-tab:hover .dv-default-tab-action{visibility:visible}@media(hover:none){.dv-tab.dv-inactive-tab .dv-default-tab .dv-default-tab-action{visibility:visible}}.dv-tab .dv-default-tab{position:relative;height:100%;width:100%;display:flex;align-items:center;white-space:nowrap;text-overflow:ellipsis}.dv-tab .dv-default-tab .dv-default-tab-content{flex-grow:1;margin-right:4px}.dv-tab .dv-default-tab .dv-default-tab-action{padding:4px;display:flex;align-items:center;justify-content:center;box-sizing:border-box}.dv-tab .dv-default-tab .dv-default-tab-action:hover{border-radius:2px;background-color:var(--dv-icon-hover-background-color)}@media(pointer:coarse){.dv-tab .dv-default-tab .dv-default-tab-action{padding:8px}}.dv-tabs-overflow-dropdown-default{height:100%;color:var(--dv-activegroup-hiddenpanel-tab-color);margin:var(--dv-tab-margin);display:flex;align-items:center;flex-shrink:0;padding:.25rem .5rem;cursor:pointer}.dv-tabs-overflow-dropdown-default>span{padding-left:.25rem}.dv-tabs-overflow-dropdown-default>svg{transform:rotate(90deg)}.dv-tabs-overflow-dropdown-default:hover{border-radius:2px;background-color:var(--dv-icon-hover-background-color)}.dv-tabs-container{display:flex;position:relative;height:100%;overflow:auto;scrollbar-width:thin;will-change:scroll-position;transform:translateZ(0);overscroll-behavior:contain;touch-action:pan-x}.dv-tabs-container.dv-tabs-container-vertical{width:100%;height:fit-content;max-height:100%;writing-mode:vertical-rl;touch-action:pan-y}.dv-tabs-container.dv-horizontal .dv-tab:not(:first-child):before,.dv-tabs-container.dv-vertical .dv-tab:not(:first-child):before{content:" ";position:absolute;top:0;left:0;z-index:5;pointer-events:none;background-color:var(--dv-tab-divider-color)}.dv-tabs-container.dv-horizontal .dv-tab:not(:first-child):before{width:1px;height:100%}.dv-tabs-container.dv-vertical .dv-tab:not(:first-child):before{width:100%;height:1px}.dv-tabs-container::-webkit-scrollbar{height:3px}.dv-tabs-container::-webkit-scrollbar-track{background:transparent}.dv-tabs-container::-webkit-scrollbar-thumb{background:var(--dv-tabs-container-scrollbar-color)}.dv-scrollable>.dv-tabs-container{overflow:hidden}.dv-tab{user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;outline:none;padding:.25rem .5rem;cursor:pointer;position:relative;box-sizing:border-box;font-size:var(--dv-tab-font-size);margin:var(--dv-tab-margin);touch-action:none}.dv-tab.dv-tab--shifting{will-change:transform,margin-left,margin-right,margin-top,margin-bottom;transition:transform var(--dv-transition-duration, .2s) ease-out,margin-left var(--dv-transition-duration, .2s) ease-out,margin-right var(--dv-transition-duration, .2s) ease-out,margin-top var(--dv-transition-duration, .2s) ease-out,margin-bottom var(--dv-transition-duration, .2s) ease-out}.dv-tab.dv-tab--dragging,.dv-tab.dv-tab--group-collapsed{width:0!important;min-width:0!important;padding:0!important;margin:0!important;overflow:hidden;opacity:0;pointer-events:none;transition:width var(--dv-transition-duration, .2s) ease-out,padding var(--dv-transition-duration, .2s) ease-out,margin var(--dv-transition-duration, .2s) ease-out,opacity var(--dv-transition-duration, .2s) ease-out}.dv-tab.dv-tab--group-expanding{transition:width var(--dv-transition-duration, .2s) ease-out,padding var(--dv-transition-duration, .2s) ease-out,margin var(--dv-transition-duration, .2s) ease-out,opacity var(--dv-transition-duration, .2s) ease-out}@media(prefers-reduced-motion:reduce){.dv-tab,.dv-tab-group-chip{transition:none!important}}.dv-tab-group-chip{display:inline-flex;align-items:center;align-self:center;padding:var(--dv-tab-group-chip-padding);margin:0 8px;border-radius:var(--dv-tab-group-chip-border-radius);font-size:var(--dv-tab-group-chip-font-size);cursor:pointer;user-select:none;white-space:nowrap;box-sizing:border-box;line-height:1;touch-action:none;background-color:var(--dv-tab-group-color);color:#fff}.dv-tab-group-chip.dv-tab-group-chip--accent-off{background-color:transparent;color:inherit}.dv-tab-group-chip.dv-tab-group-chip--shifting{will-change:margin-left;transition:margin-left var(--dv-transition-duration, .2s) ease-out}.dv-tab-group-chip.dv-tab-group-chip--dragging{width:0!important;min-width:0!important;padding:0!important;margin:0!important;overflow:hidden;opacity:0;pointer-events:none;transition:width var(--dv-transition-duration, .2s) ease-out,padding var(--dv-transition-duration, .2s) ease-out,margin var(--dv-transition-duration, .2s) ease-out,opacity var(--dv-transition-duration, .2s) ease-out}.dv-tab-group-chip .dv-tab-group-chip-label--empty{display:none}.dv-tab-group-chip:has(.dv-tab-group-chip-label--empty){position:relative;width:12px;height:12px;padding:0;border-radius:50%}.dv-tab-group-chip:has(.dv-tab-group-chip-label--empty):before{content:"";position:absolute;inset:-8px}.dv-tab-group-underline{position:absolute;bottom:0;opacity:var(--dv-tab-group-line-opacity);pointer-events:none;z-index:10}.dv-groupview-header-bottom .dv-tab-group-underline{bottom:auto;top:0}.dv-tabs-container-vertical .dv-tab-group-underline{bottom:auto;left:0}.dv-tabs-container-vertical .dv-tab-group-chip{margin:8px 0}.dv-tabs-container-vertical .dv-tab{padding:.5rem .25rem}.dv-tabs-container-vertical .dv-tab.dv-tab--group-collapsed{height:0!important;min-height:0!important;width:auto!important;min-width:initial!important;transition:height var(--dv-transition-duration, .2s) ease-out,padding var(--dv-transition-duration, .2s) ease-out,margin var(--dv-transition-duration, .2s) ease-out,opacity var(--dv-transition-duration, .2s) ease-out}.dv-tabs-container-vertical .dv-tab.dv-tab--group-expanding{transition:height var(--dv-transition-duration, .2s) ease-out,padding var(--dv-transition-duration, .2s) ease-out,margin var(--dv-transition-duration, .2s) ease-out,opacity var(--dv-transition-duration, .2s) ease-out}.dv-tabs-container-vertical .dv-tab.dv-tab--dragging{height:0!important;min-height:0!important;width:auto!important;min-width:initial!important;transition:height var(--dv-transition-duration, .2s) ease-out,padding var(--dv-transition-duration, .2s) ease-out,margin var(--dv-transition-duration, .2s) ease-out,opacity var(--dv-transition-duration, .2s) ease-out}.dv-tabs-overflow-container{flex-direction:column;height:unset;font-size:var(--dv-tabs-and-actions-container-font-size);max-height:min(50vh,400px);overflow-y:auto;border:1px solid var(--dv-tab-divider-color);background-color:var(--dv-group-view-background-color)}.dv-tabs-overflow-container::-webkit-scrollbar{width:6px}.dv-tabs-overflow-container::-webkit-scrollbar-track{background:transparent}.dv-tabs-overflow-container::-webkit-scrollbar-thumb{background:var(--dv-tabs-container-scrollbar-color);border-radius:3px}.dv-tabs-overflow-container{scrollbar-width:thin}.dv-tabs-overflow-container .dv-tab:not(:last-child){border-bottom:1px solid var(--dv-tab-divider-color)}.dv-tabs-overflow-container .dv-active-tab{background-color:var(--dv-activegroup-visiblepanel-tab-background-color);color:var(--dv-activegroup-visiblepanel-tab-color)}.dv-tabs-overflow-container .dv-inactive-tab{background-color:var(--dv-activegroup-hiddenpanel-tab-background-color);color:var(--dv-activegroup-hiddenpanel-tab-color)}.dv-tabs-overflow-container .dv-tabs-overflow-group-header{display:flex;align-items:center;gap:6px;padding:4px 8px;font-size:.8em;font-weight:600;color:var(--dv-activegroup-hiddenpanel-tab-color);cursor:pointer;border-bottom:1px solid var(--dv-tab-divider-color)}.dv-tabs-overflow-container .dv-tabs-overflow-group-header:hover{background-color:var(--dv-icon-hover-background-color)}.dv-tabs-overflow-container .dv-tabs-overflow-group-color{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0;background-color:var(--dv-tab-group-color)}.dv-tabs-overflow-container .dv-tabs-overflow-group-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dv-tabs-overflow-container .dv-tabs-overflow-group-collapsed-badge{font-size:.75em;font-weight:400;opacity:.7;padding:1px 4px;border-radius:3px;background-color:var(--dv-tab-divider-color)}.dv-tabs-overflow-container .dv-tab.dv-tab--grouped{padding-left:16px}.dv-tabs-and-actions-container{display:flex;background-color:var(--dv-tabs-and-actions-container-background-color);flex-shrink:0;box-sizing:border-box;height:var(--dv-tabs-and-actions-container-height);font-size:var(--dv-tabs-and-actions-container-font-size)}.dv-tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .dv-scrollable,.dv-tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .dv-tabs-container{flex-grow:1}.dv-tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .dv-tabs-container .dv-tab{flex-grow:1;padding:0}.dv-tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .dv-void-container{flex-grow:0}.dv-tabs-and-actions-container .dv-void-container{display:flex;flex-grow:1;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;touch-action:none}.dv-tabs-and-actions-container .dv-void-container.dv-draggable{cursor:grab}.dv-tabs-and-actions-container .dv-right-actions-container{display:flex}.dv-tabs-and-actions-container .dv-right-actions-container.dv-right-actions-container-vertical{flex-direction:column}.dv-tabs-and-actions-container.dv-groupview-header-vertical{flex-direction:column;height:auto;width:var(--dv-tabs-and-actions-container-height)}.dv-watermark{display:flex;height:100%}.dockview-theme-vgai{--dv-group-view-background-color: var(--vgai-bg-1);--dv-tabs-and-actions-container-background-color: var(--vgai-bg-2);--dv-activegroup-visiblepanel-tab-background-color: transparent;--dv-activegroup-hiddenpanel-tab-background-color: transparent;--dv-inactivegroup-visiblepanel-tab-background-color: transparent;--dv-inactivegroup-hiddenpanel-tab-background-color: transparent;--dv-activegroup-visiblepanel-tab-color: var(--vgai-text-1);--dv-activegroup-hiddenpanel-tab-color: var(--vgai-text-2);--dv-inactivegroup-visiblepanel-tab-color: var(--vgai-text-2);--dv-inactivegroup-hiddenpanel-tab-color: var(--vgai-text-3);--dv-tab-divider-color: var(--vgai-border-1);--dv-separator-border: transparent;--dv-paneview-header-border-color: var(--vgai-border-1);--dv-paneview-active-outline-color: var(--vgai-accent);--dv-tabs-and-actions-container-height: var(--vgai-panel-header-height);--dv-tabs-and-actions-container-font-size: var(--vgai-font-md);--dv-tab-font-size: var(--vgai-font-md);--dv-icon-hover-background-color: var(--vgai-bg-3);--dv-drag-over-background-color: var(--vgai-accent-muted);--dv-drag-over-border-color: var(--vgai-accent);--dv-sash-color: transparent;--dv-active-sash-color: transparent;--dv-active-sash-transition-delay: 0s;--dv-active-sash-transition-duration: .1s;--dv-floating-border: var(--vgai-stroke-resting) solid var(--vgai-border-2);--dv-floating-box-shadow: var(--vgai-shadow-lg);--dv-floating-titlebar-height: 20px;--dv-border-radius: 0;--dv-tab-border-radius: 0;--dv-tab-margin: 0;--dv-spacing-padding: 0;--dv-scrollbar-background-color: color-mix(in srgb, var(--vgai-content-primary) 28%, transparent);font-family:var(--vgai-font-sans)}.vgai-workspace-dock{position:relative;flex:1;min-width:0;min-height:0;pointer-events:auto;overflow:hidden;background:var(--vgai-bg-1)}.vgai-workspace-dock>.dockview-theme-vgai{width:100%;height:100%}.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;background:var(--vgai-bg-1);pointer-events:auto}.vgai-dock-document-toolbar{flex:0 0 auto;min-height:var(--vgai-local-toolbar-height);border-bottom:var(--vgai-stroke-resting) solid var(--vgai-border-1);background:var(--vgai-bg-1);pointer-events:auto}.vgai-dock-empty{padding:var(--vgai-space-6);color:var(--vgai-text-3);background:var(--vgai-bg-1)}.vgai-dock-tab{display:flex;align-items:center;height:100%;min-width:0}.vgai-dock-tab>.dv-default-tab{min-width:0}.vgai-dock-tab-close{width:22px;min-width:22px;height:22px;margin-left:2px;padding:0;border-radius:var(--vgai-radius-sm);color:var(--vgai-text-3)}.vgai-dock-tab-close:hover,.vgai-dock-tab-close:focus-visible{color:var(--vgai-text-1);background:var(--vgai-bg-3)}.dockview-theme-vgai .dv-tab:has(.vgai-dock-tab[data-document-family=world])+.dv-tab:has(.vgai-dock-tab[data-document-family=resource]) .vgai-dock-tab{position:relative;margin-left:var(--vgai-space-4)}.dockview-theme-vgai .dv-tab:has(.vgai-dock-tab[data-document-family=world])+.dv-tab:has(.vgai-dock-tab[data-document-family=resource]) .vgai-dock-tab:before{position:absolute;top:50%;left:calc(-1 * var(--vgai-space-3));width:var(--vgai-stroke-resting);height:16px;background:var(--vgai-border-2);content:"";transform:translateY(-50%);pointer-events:none}.dockview-theme-vgai .dv-tab{padding:0 10px;border-radius:0;font-weight:400;transition:background-color 80ms ease,color 80ms ease}.dockview-theme-vgai .dv-tabs-and-actions-container{border-bottom:var(--vgai-stroke-resting) solid var(--vgai-border-1)}.dockview-theme-vgai .dv-tab.dv-inactive-tab:hover{color:var(--vgai-text-1);background:var(--vgai-bg-3)}.dockview-theme-vgai .dv-tabs-and-actions-container:not(.dv-single-tab) .dv-tabs-container{gap:2px;padding:0 3px}.dockview-theme-vgai .dv-tabs-container.dv-horizontal .dv-tab:not(:first-child):before{display:none}.dockview-theme-vgai .dv-tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .dv-tabs-container .dv-tab{margin:0;padding:0 12px;border-radius:0;font-weight:600;letter-spacing:.01em}.vgai-dock-tab-dirty{width:6px;height:6px;margin-right:6px;flex:0 0 auto;border-radius:50%;background:var(--vgai-warn)}.vgai-dock-tab-unsaved{gap:4px;padding:0 5px 0 8px;color:var(--vgai-text-1);background:var(--vgai-warn-muted)}.vgai-dock-tab-unsaved-label{margin-right:2px;color:var(--vgai-warn);font-weight:600}.vgai-dock-tab-unsaved button{height:20px;padding:0 5px;border:var(--vgai-stroke-resting) solid var(--vgai-border-2);border-radius:3px;color:var(--vgai-text-1);background:var(--vgai-bg-2);font:inherit;cursor:pointer}.vgai-dock-tab-unsaved button:hover:not(:disabled),.vgai-dock-tab-unsaved button:focus-visible{border-color:var(--vgai-accent);color:var(--vgai-content-primary)}.vgai-dock-tab-unsaved button:disabled{opacity:.6;cursor:default}.vgai-dock-tab-badge{min-width:14px;height:14px;margin-right:5px;padding:0 3px;border-radius:7px;font-size:9px;line-height:14px;text-align:center;color:var(--vgai-bg-0);background:var(--vgai-text-2)}.vgai-dock-tab-badge-warn{background:var(--vgai-warn)}.vgai-dock-tab-badge-error{background:var(--vgai-danger)}.dockview-theme-vgai .dv-tabs-container .dv-tab.dv-active-tab{box-shadow:none;font-weight:500}.dockview-theme-vgai .dv-tabs-and-actions-container:not(.dv-single-tab) .dv-tabs-container .dv-tab.dv-active-tab:before{position:absolute;right:10px;bottom:0;left:10px;display:block;width:auto;height:var(--vgai-stroke-active);border-radius:2px 2px 0 0;background:var(--vgai-accent);content:""}.dockview-theme-vgai .dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash{background:linear-gradient(to right,transparent 1.5px,var(--vgai-border-1) 1.5px 2.5px,transparent 2.5px)}.dockview-theme-vgai .dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash{background:linear-gradient(to bottom,transparent 1.5px,var(--vgai-border-1) 1.5px 2.5px,transparent 2.5px)}.dockview-theme-vgai .dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash:hover,.dockview-theme-vgai .dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash.dv-active{background:linear-gradient(to right,transparent 1px,var(--vgai-accent) 1px 3px,transparent 3px)}.dockview-theme-vgai .dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash:hover,.dockview-theme-vgai .dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash.dv-active{background:linear-gradient(to bottom,transparent 1px,var(--vgai-accent) 1px 3px,transparent 3px)}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{k as f,n as b,o as S,p as A,w as D,I,q as h,r as m,t as y,u as R,v as w,W as x,x as O,y as W,z as k,A as C,B as g,C as $,D as G,E as M}from"./index-
|
|
1
|
+
import{k as f,n as b,o as S,p as A,w as D,I,q as h,r as m,t as y,u as R,v as w,W as x,x as O,y as W,z as k,A as C,B as g,C as $,D as G,E as M}from"./index-8A4JLNIp.js";class j extends g.Component{constructor(){super(...arguments),this.state={crashed:!1}}static getDerivedStateFromError(){return{crashed:!0}}componentDidCatch(t){this.props.onCaught(t)}render(){return this.state.crashed?null:this.props.children}}function v(e,t,a){e.style.position="absolute",e.style.top="0",e.style.left="0",e.style.width="100%",e.style.height="100%",e.style.zIndex=String(t.zOrder??0),e.style.pointerEvents=a}async function z(e,t,a,o){const r=await W(e,a),n=document.createElement("div");v(n,e,"none"),t.appendChild(n),f.log(`react sibling "${e.id}": no native Game beside an ingest world — useGameState unavailable`,"ingest");const s=k.createRoot(n);let d=null;if(C.flushSync(()=>{s.render(g.createElement(j,{onCaught:i=>{d=i},children:g.createElement(r)}))}),d!==null)throw s.unmount(),n.remove(),d instanceof Error?d:new Error(String(d));let u;return o&&(u=$(n).nodes.size>0?new G(n,o,{}):new M(n,o,{overlay:await y(e.id),persist:p=>m(e.id,p),destination:h(e.id)})),{worldId:e.id,...u?{authoring:u}:{},dispose(){s.unmount(),n.remove()}}}async function P(e,t,a,o,r){const n=document.createElement("div");v(n,t,"auto"),a.appendChild(n);try{const s=a.clientWidth||800,d=a.clientHeight||600,{session:u}=await A(e,t,o,n,s,d),i=u.game.roots[0],p=i.mounted.authoring;let c;if(r)if(p)c=D(p,r);else if(i.kind==="threejs")c=new I(r,i.threeRoot(),{overlay:await y(i.id),persist:l=>m(i.id,l),destination:h(i.id)});else if(i.kind==="pixijs"){const l=R(i.physics2d??w());c=new x(i.pixiRoot(),l,r,{overlay:await y(i.id),persist:E=>m(i.id,E),destination:h(i.id)})}else c=O(r,`${t.id} (no authoring surface)`);return{worldId:t.id,...c?{authoring:c}:{},setPaused(l){l?u.pause():u.resume()},dispose(){u.stop(),n.remove()}}}catch(s){throw n.remove(),s}}function T(e){throw new Error(`sibling world "${e.id}" (kind: ${e.surface}, adapter identity: "${e.adapter.identity}") has no known composite-sibling mount path — every currently-resolvable identity (default-three/default-pixi/default-react/module) is routed above; this is reached only for a genuinely unroutable shape (docs/WAVE5-MULTIWORLD-INGEST-DESIGN.md D-V7, updated by docs/WAVE6-DOCTOR-DESIGN.md D-B3).`)}async function B(e,t,a,o,r){if(t.adapter.type==="module"||t.adapter.identity==="threejs"||t.adapter.identity==="pixijs")return P(e,t,a,o,r);if(t.adapter.identity==="react")return z(t,a,o,r);T(t)}async function L(e,t,a,o,r){const n=[];for(const s of e.roots)if(s.id!==t)try{n.push(await B(e,s,a,o,r))}catch(d){f.error(`Composite sibling "${s.id}" failed to mount: ${d}`,"ingest"),b({worldId:s.id,kind:s.surface,identity:s.adapter.identity,message:S(d)})}return n}export{L as mountIngestSiblings};
|