@openspecui/web 3.5.0 → 3.5.2
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/CanvasRenderer-D7DGGDQU.js +1 -0
- package/dist/assets/WebGLRenderer-CjDeBZzX.js +1 -0
- package/dist/assets/WebGPURenderer-BEzco9Ka.js +1 -0
- package/dist/assets/browserAll-DkGrhjFB.js +1 -0
- package/dist/assets/{dist-8NRfes3A.js → dist-4Q-3H32Y.js} +1 -1
- package/dist/assets/{dist-C93bxB4D.js → dist-Bw7c0_jc.js} +1 -1
- package/dist/assets/dist-C1SIv52I.js +1 -0
- package/dist/assets/{dist-Bt9L_Nqg.js → dist-C2CZRWaX.js} +1 -1
- package/dist/assets/{dist-BJoJLpoD.js → dist-C87gRqf_.js} +1 -1
- package/dist/assets/{dist-CFN2ObFF.js → dist-CFABLsEW.js} +1 -1
- package/dist/assets/{dist-BHok5tKv.js → dist-CV0FPhgu.js} +1 -1
- package/dist/assets/dist-CrPybnRq.js +1 -0
- package/dist/assets/{dist-BsbQTBj9.js → dist-DAT_ScNa.js} +1 -1
- package/dist/assets/{dist-BmXzljTn.js → dist-DDkSOHP1.js} +1 -1
- package/dist/assets/{dist-CkfQmrP4.js → dist-LUCFMJ0H.js} +1 -1
- package/dist/assets/dist-PzWhymM8.js +1 -0
- package/dist/assets/{ghostty-web-tgKhUe7Z.js → ghostty-web-CCC3Geb4.js} +1 -1
- package/dist/assets/index-DHDRgs_i.css +1 -0
- package/dist/assets/index-DQNMhAvr.js +1619 -0
- package/dist/assets/{init-nrsssPRF.js → init-YHF-o1HV.js} +1 -1
- package/dist/assets/trpc-q0DFddsK.js +1 -0
- package/dist/assets/webworkerAll-CKlnpVkj.js +1 -0
- package/dist/index.html +2 -2
- package/dist-ssg/client/.vite/ssr-manifest.json +18 -15
- package/dist-ssg/client/assets/CanvasRenderer-ByUXbKXl.js +1 -0
- package/dist-ssg/client/assets/WebGLRenderer-ChYLzDCd.js +1 -0
- package/dist-ssg/client/assets/WebGPURenderer-BobKBO0x.js +1 -0
- package/dist-ssg/client/assets/browserAll-UN3GPOPc.js +1 -0
- package/dist-ssg/client/assets/{dist-DNEbnFKc.js → dist-10DRfH0N.js} +1 -1
- package/dist-ssg/client/assets/{dist-C0YgE3lp.js → dist-605X54ro.js} +1 -1
- package/dist-ssg/client/assets/{dist-uuReRNC-.js → dist-BqMeFwto.js} +1 -1
- package/dist-ssg/client/assets/dist-BuDT5pXI.js +1 -0
- package/dist-ssg/client/assets/dist-BxaDOJmU.js +1 -0
- package/dist-ssg/client/assets/{dist-v4ayJ_bz.js → dist-BzIh3dSQ.js} +1 -1
- package/dist-ssg/client/assets/{dist-CW2olo-9.js → dist-CF5IRlgL.js} +1 -1
- package/dist-ssg/client/assets/{dist-C8kk-UJI.js → dist-Cq0edT--.js} +1 -1
- package/dist-ssg/client/assets/{dist-DtxQ5voT.js → dist-D2UdxWFE.js} +1 -1
- package/dist-ssg/client/assets/{dist-BfzZD9UO.js → dist-Df67DVWO.js} +1 -1
- package/dist-ssg/client/assets/{dist-BZJfR7eh.js → dist-IUx13mN_.js} +1 -1
- package/dist-ssg/client/assets/dist-ScSFKyoF.js +1 -0
- package/dist-ssg/client/assets/{ghostty-web-BbLQ67li.js → ghostty-web-DzvBtNVX.js} +1 -1
- package/dist-ssg/client/assets/index-14LuyayW.css +1 -0
- package/dist-ssg/client/assets/{index.ssg-DXy3R2iH.js → index.ssg-BEtxTyFQ.js} +152 -92
- package/dist-ssg/client/assets/{init-_JOkHWu-.js → init-BJbVbp-i.js} +1 -1
- package/dist-ssg/client/assets/trpc-bHbo3cKe.js +1 -0
- package/dist-ssg/client/assets/webworkerAll-BeYUBsxP.js +1 -0
- package/dist-ssg/client/index.ssg.html +2 -2
- package/dist-ssg/server/entry-server.js +198 -38
- package/package.json +1 -1
- package/dist/assets/CanvasRenderer-CmnvR8Gr.js +0 -1
- package/dist/assets/WebGLRenderer-5eXMpF1z.js +0 -1
- package/dist/assets/WebGPURenderer-Vea1ovaN.js +0 -1
- package/dist/assets/browserAll-CvzI3xL_.js +0 -1
- package/dist/assets/dist-Bijj14CE.js +0 -1
- package/dist/assets/dist-CR9rQI_B.js +0 -1
- package/dist/assets/dist-CTEkXR9h.js +0 -1
- package/dist/assets/index-BbZP3-SK.js +0 -1559
- package/dist/assets/index-CiTq1NTV.css +0 -1
- package/dist/assets/trpc-B7EKcsQU.js +0 -1
- package/dist/assets/webworkerAll-g1RF5EzF.js +0 -1
- package/dist-ssg/client/assets/CanvasRenderer-fkryBDsc.js +0 -1
- package/dist-ssg/client/assets/WebGLRenderer-9a3extRo.js +0 -1
- package/dist-ssg/client/assets/WebGPURenderer-BvVd3SI-.js +0 -1
- package/dist-ssg/client/assets/browserAll-C9rt7SfY.js +0 -1
- package/dist-ssg/client/assets/dist-CE0-ZIMY.js +0 -1
- package/dist-ssg/client/assets/dist-CPrch2pS.js +0 -1
- package/dist-ssg/client/assets/dist-iqZn-PJ-.js +0 -1
- package/dist-ssg/client/assets/index-e7T9ImLQ.css +0 -1
- package/dist-ssg/client/assets/trpc-DfCk117g.js +0 -1
- package/dist-ssg/client/assets/webworkerAll-xF0Rbwq0.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{it as e}from"./Geometry-DYOOLchf.js";import{E as t,T as n}from"./index.ssg-
|
|
1
|
+
import{it as e}from"./Geometry-DYOOLchf.js";import{E as t,T as n}from"./index.ssg-BEtxTyFQ.js";e.add(n),e.add(t);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{F as e}from"./index.ssg-BEtxTyFQ.js";export{e as trpcClient};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./Geometry-DYOOLchf.js";import"./index.ssg-BEtxTyFQ.js";import"./init-BJbVbp-i.js";
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
document.head.append(preconnectApi, preconnectStatic, stylesheet)
|
|
36
36
|
})()
|
|
37
37
|
</script>
|
|
38
|
-
<script type="module" crossorigin src="/assets/index.ssg-
|
|
38
|
+
<script type="module" crossorigin src="/assets/index.ssg-BEtxTyFQ.js"></script>
|
|
39
39
|
<link rel="modulepreload" crossorigin href="/assets/chunk-DECur_0Z.js">
|
|
40
40
|
<link rel="modulepreload" crossorigin href="/assets/dist-UN0VvTJo.js">
|
|
41
41
|
<link rel="modulepreload" crossorigin href="/assets/dist-DK_X22KS.js">
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
<link rel="modulepreload" crossorigin href="/assets/getTextureBatchBindGroup-BZ3pD2UV.js">
|
|
46
46
|
<link rel="modulepreload" crossorigin href="/assets/BufferResource-4Jl_6qej.js">
|
|
47
47
|
<link rel="modulepreload" crossorigin href="/assets/ImageSource-_DLFcjTj.js">
|
|
48
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
48
|
+
<link rel="stylesheet" crossorigin href="/assets/index-14LuyayW.css">
|
|
49
49
|
</head>
|
|
50
50
|
<body>
|
|
51
51
|
<div id="root"><!--app-html--></div>
|
|
@@ -67053,6 +67053,7 @@ var MIN_WIDTH_PX = 300;
|
|
|
67053
67053
|
var MIN_HEIGHT_PX = 150;
|
|
67054
67054
|
var MAX_WIDTH_PCT = 95;
|
|
67055
67055
|
var MAX_HEIGHT_PCT = 85;
|
|
67056
|
+
var MOVE_BAR_PROTRUSION_PX = 10;
|
|
67056
67057
|
var SETTINGS_KEY$1 = "xtermInputPanelSettings";
|
|
67057
67058
|
function mergeSettings(updates) {
|
|
67058
67059
|
try {
|
|
@@ -67129,6 +67130,8 @@ var InputPanel = class extends i {
|
|
|
67129
67130
|
--muted-foreground: var(--_ip-muted-fg);
|
|
67130
67131
|
--terminal: var(--_ip-bg);
|
|
67131
67132
|
--terminal-foreground: var(--_ip-fg);
|
|
67133
|
+
--move-bar-height: 10px;
|
|
67134
|
+
--move-bar-protrusion: 10px;
|
|
67132
67135
|
font-family: ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace;
|
|
67133
67136
|
font-size: 13px;
|
|
67134
67137
|
color: var(--foreground, #fff);
|
|
@@ -67251,7 +67254,7 @@ var InputPanel = class extends i {
|
|
|
67251
67254
|
border-radius: 8px;
|
|
67252
67255
|
background: var(--background, #1a1a1a);
|
|
67253
67256
|
color: var(--foreground, #fff);
|
|
67254
|
-
overflow:
|
|
67257
|
+
overflow: visible;
|
|
67255
67258
|
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5);
|
|
67256
67259
|
display: flex;
|
|
67257
67260
|
flex-direction: column;
|
|
@@ -67263,6 +67266,54 @@ var InputPanel = class extends i {
|
|
|
67263
67266
|
z-index: 9999;
|
|
67264
67267
|
}
|
|
67265
67268
|
|
|
67269
|
+
.panel-body {
|
|
67270
|
+
width: 100%;
|
|
67271
|
+
height: 100%;
|
|
67272
|
+
display: flex;
|
|
67273
|
+
flex-direction: column;
|
|
67274
|
+
overflow: hidden;
|
|
67275
|
+
border-radius: inherit;
|
|
67276
|
+
}
|
|
67277
|
+
|
|
67278
|
+
.move-bar {
|
|
67279
|
+
position: absolute;
|
|
67280
|
+
top: calc(-1 * var(--move-bar-protrusion));
|
|
67281
|
+
left: 50%;
|
|
67282
|
+
width: 68px;
|
|
67283
|
+
height: var(--move-bar-height);
|
|
67284
|
+
transform: translateX(-50%);
|
|
67285
|
+
border: 1px solid var(--primary, #e04a2f);
|
|
67286
|
+
border-bottom: 0;
|
|
67287
|
+
border-radius: 10px 10px 0 0;
|
|
67288
|
+
background: var(--background, #1a1a1a);
|
|
67289
|
+
color: var(--muted-foreground, #888);
|
|
67290
|
+
touch-action: none;
|
|
67291
|
+
cursor: grab;
|
|
67292
|
+
z-index: 12;
|
|
67293
|
+
display: flex;
|
|
67294
|
+
align-items: center;
|
|
67295
|
+
justify-content: center;
|
|
67296
|
+
box-shadow: 0 -6px 12px rgba(0, 0, 0, 0.12);
|
|
67297
|
+
}
|
|
67298
|
+
|
|
67299
|
+
.move-bar::before {
|
|
67300
|
+
content: '';
|
|
67301
|
+
width: 34px;
|
|
67302
|
+
height: 4px;
|
|
67303
|
+
border-radius: 999px;
|
|
67304
|
+
background: currentColor;
|
|
67305
|
+
opacity: 0.72;
|
|
67306
|
+
}
|
|
67307
|
+
|
|
67308
|
+
.move-bar:hover,
|
|
67309
|
+
:host([data-interacting]) .move-bar {
|
|
67310
|
+
color: var(--primary, #e04a2f);
|
|
67311
|
+
}
|
|
67312
|
+
|
|
67313
|
+
:host([data-interacting]) .move-bar {
|
|
67314
|
+
cursor: grabbing;
|
|
67315
|
+
}
|
|
67316
|
+
|
|
67266
67317
|
/* --- Resize handles --- */
|
|
67267
67318
|
.resize-handle {
|
|
67268
67319
|
position: absolute;
|
|
@@ -67360,6 +67411,7 @@ var InputPanel = class extends i {
|
|
|
67360
67411
|
}
|
|
67361
67412
|
disconnectedCallback() {
|
|
67362
67413
|
super.disconnectedCallback();
|
|
67414
|
+
this._closeFloatingDialog();
|
|
67363
67415
|
this.dispatchEvent(new CustomEvent("input-panel:disconnected", {
|
|
67364
67416
|
bubbles: true,
|
|
67365
67417
|
composed: true
|
|
@@ -67416,7 +67468,7 @@ var InputPanel = class extends i {
|
|
|
67416
67468
|
const maxOverX = wPx / 3, maxOverY = hPx / 3;
|
|
67417
67469
|
return {
|
|
67418
67470
|
left: Math.max(-maxOverX, Math.min(vw - wPx + maxOverX, leftPx)),
|
|
67419
|
-
top: Math.max(
|
|
67471
|
+
top: Math.max(MOVE_BAR_PROTRUSION_PX, Math.min(vh - hPx + maxOverY, topPx))
|
|
67420
67472
|
};
|
|
67421
67473
|
}
|
|
67422
67474
|
_applyGeometry(dialog) {
|
|
@@ -67444,6 +67496,43 @@ var InputPanel = class extends i {
|
|
|
67444
67496
|
const dialog = this.shadowRoot?.querySelector(".panel-dialog");
|
|
67445
67497
|
if (dialog) this._applyGeometry(dialog);
|
|
67446
67498
|
}
|
|
67499
|
+
_isPopoverOpen(dialog) {
|
|
67500
|
+
try {
|
|
67501
|
+
return dialog.matches(":popover-open");
|
|
67502
|
+
} catch {
|
|
67503
|
+
return false;
|
|
67504
|
+
}
|
|
67505
|
+
}
|
|
67506
|
+
_isFloatingDialogOpen(dialog) {
|
|
67507
|
+
return dialog.open || this._isPopoverOpen(dialog);
|
|
67508
|
+
}
|
|
67509
|
+
_showFloatingDialog(dialog) {
|
|
67510
|
+
if (this._isFloatingDialogOpen(dialog)) return;
|
|
67511
|
+
if (!dialog.isConnected) {
|
|
67512
|
+
requestAnimationFrame(() => {
|
|
67513
|
+
if (this.layout === "floating" && dialog.isConnected && !this._isFloatingDialogOpen(dialog)) {
|
|
67514
|
+
this._showFloatingDialog(dialog);
|
|
67515
|
+
this._applyGeometry(dialog);
|
|
67516
|
+
}
|
|
67517
|
+
});
|
|
67518
|
+
return;
|
|
67519
|
+
}
|
|
67520
|
+
const popoverDialog = dialog;
|
|
67521
|
+
if (typeof popoverDialog.showPopover === "function") {
|
|
67522
|
+
popoverDialog.showPopover();
|
|
67523
|
+
return;
|
|
67524
|
+
}
|
|
67525
|
+
dialog.show();
|
|
67526
|
+
}
|
|
67527
|
+
_closeFloatingDialog() {
|
|
67528
|
+
const dialog = this.shadowRoot?.querySelector(".panel-dialog");
|
|
67529
|
+
if (!dialog) return;
|
|
67530
|
+
if (this._isPopoverOpen(dialog) && typeof dialog.hidePopover === "function") {
|
|
67531
|
+
dialog.hidePopover();
|
|
67532
|
+
return;
|
|
67533
|
+
}
|
|
67534
|
+
if (dialog.open) dialog.close();
|
|
67535
|
+
}
|
|
67447
67536
|
_switchTab(tab) {
|
|
67448
67537
|
this.activeTab = tab;
|
|
67449
67538
|
this.dispatchEvent(new CustomEvent("input-panel:tab-change", {
|
|
@@ -67455,6 +67544,7 @@ var InputPanel = class extends i {
|
|
|
67455
67544
|
}
|
|
67456
67545
|
_toggleLayout() {
|
|
67457
67546
|
this.layout = this.layout === "fixed" ? "floating" : "fixed";
|
|
67547
|
+
if (this.layout === "fixed") this._closeFloatingDialog();
|
|
67458
67548
|
this.dispatchEvent(new CustomEvent("input-panel:layout-change", {
|
|
67459
67549
|
detail: { layout: this.layout },
|
|
67460
67550
|
bubbles: true,
|
|
@@ -67463,8 +67553,7 @@ var InputPanel = class extends i {
|
|
|
67463
67553
|
this.requestUpdate();
|
|
67464
67554
|
}
|
|
67465
67555
|
_close() {
|
|
67466
|
-
|
|
67467
|
-
if (dialog?.open) dialog.close();
|
|
67556
|
+
this._closeFloatingDialog();
|
|
67468
67557
|
this.dispatchEvent(new CustomEvent("input-panel:close", {
|
|
67469
67558
|
bubbles: true,
|
|
67470
67559
|
composed: true
|
|
@@ -67474,8 +67563,8 @@ var InputPanel = class extends i {
|
|
|
67474
67563
|
super.firstUpdated(changed);
|
|
67475
67564
|
if (this.layout === "floating") {
|
|
67476
67565
|
const dialog = this.shadowRoot?.querySelector(".panel-dialog");
|
|
67477
|
-
if (dialog && !dialog
|
|
67478
|
-
|
|
67566
|
+
if (dialog && !this._isFloatingDialogOpen(dialog)) {
|
|
67567
|
+
this._showFloatingDialog(dialog);
|
|
67479
67568
|
this._applyGeometry(dialog);
|
|
67480
67569
|
}
|
|
67481
67570
|
}
|
|
@@ -67486,14 +67575,17 @@ var InputPanel = class extends i {
|
|
|
67486
67575
|
if (this.layout === "floating") {
|
|
67487
67576
|
const dialog = this.shadowRoot?.querySelector(".panel-dialog");
|
|
67488
67577
|
if (dialog) {
|
|
67489
|
-
if (changed.has("layout") && !dialog
|
|
67490
|
-
if (dialog
|
|
67578
|
+
if (changed.has("layout") && !this._isFloatingDialogOpen(dialog)) this._showFloatingDialog(dialog);
|
|
67579
|
+
if (this._isFloatingDialogOpen(dialog)) this._applyGeometry(dialog);
|
|
67491
67580
|
}
|
|
67492
67581
|
}
|
|
67493
67582
|
}
|
|
67494
67583
|
_onToolbarPointerDown(e) {
|
|
67495
|
-
if (this.layout !== "floating") return;
|
|
67496
67584
|
if (e.target.closest("button")) return;
|
|
67585
|
+
this._onDragPointerDown(e);
|
|
67586
|
+
}
|
|
67587
|
+
_onDragPointerDown(e) {
|
|
67588
|
+
if (this.layout !== "floating") return;
|
|
67497
67589
|
const dialog = this.shadowRoot?.querySelector(".panel-dialog");
|
|
67498
67590
|
if (!dialog) return;
|
|
67499
67591
|
e.stopPropagation();
|
|
@@ -67506,9 +67598,12 @@ var InputPanel = class extends i {
|
|
|
67506
67598
|
origTop: rect.top
|
|
67507
67599
|
};
|
|
67508
67600
|
this.setAttribute("data-interacting", "");
|
|
67509
|
-
e.
|
|
67601
|
+
const handle = e.currentTarget;
|
|
67602
|
+
try {
|
|
67603
|
+
handle.setPointerCapture(e.pointerId);
|
|
67604
|
+
} catch {}
|
|
67510
67605
|
}
|
|
67511
|
-
|
|
67606
|
+
_onDragPointerMove(e) {
|
|
67512
67607
|
if (!this._dragState) return;
|
|
67513
67608
|
e.stopPropagation();
|
|
67514
67609
|
e.preventDefault();
|
|
@@ -67524,8 +67619,10 @@ var InputPanel = class extends i {
|
|
|
67524
67619
|
dialog.style.top = `${top}px`;
|
|
67525
67620
|
dialog.style.bottom = "auto";
|
|
67526
67621
|
}
|
|
67527
|
-
|
|
67622
|
+
_onDragPointerUp(e) {
|
|
67528
67623
|
if (!this._dragState) return;
|
|
67624
|
+
e.stopPropagation();
|
|
67625
|
+
e.preventDefault();
|
|
67529
67626
|
this._dragState = null;
|
|
67530
67627
|
this.removeAttribute("data-interacting");
|
|
67531
67628
|
const dialog = this.shadowRoot?.querySelector(".panel-dialog");
|
|
@@ -67645,8 +67742,9 @@ var InputPanel = class extends i {
|
|
|
67645
67742
|
class="toolbar"
|
|
67646
67743
|
part="toolbar"
|
|
67647
67744
|
@pointerdown=${(e) => this._onToolbarPointerDown(e)}
|
|
67648
|
-
@pointermove=${(e) => this.
|
|
67649
|
-
@pointerup=${() => this.
|
|
67745
|
+
@pointermove=${(e) => this._onDragPointerMove(e)}
|
|
67746
|
+
@pointerup=${(e) => this._onDragPointerUp(e)}
|
|
67747
|
+
@pointercancel=${(e) => this._onDragPointerUp(e)}
|
|
67650
67748
|
>
|
|
67651
67749
|
<div class="tab-group">
|
|
67652
67750
|
${[
|
|
@@ -67706,7 +67804,16 @@ var InputPanel = class extends i {
|
|
|
67706
67804
|
></input-panel-settings>` : T`<slot name=${this.activeTab}></slot>`}
|
|
67707
67805
|
</div>
|
|
67708
67806
|
`;
|
|
67709
|
-
if (this.layout === "floating") return T` <dialog class="panel-dialog">
|
|
67807
|
+
if (this.layout === "floating") return T` <dialog class="panel-dialog" popover="manual">
|
|
67808
|
+
<div
|
|
67809
|
+
class="move-bar"
|
|
67810
|
+
part="move-bar"
|
|
67811
|
+
aria-label="Move input panel"
|
|
67812
|
+
@pointerdown=${(e) => this._onDragPointerDown(e)}
|
|
67813
|
+
@pointermove=${(e) => this._onDragPointerMove(e)}
|
|
67814
|
+
@pointerup=${(e) => this._onDragPointerUp(e)}
|
|
67815
|
+
@pointercancel=${(e) => this._onDragPointerUp(e)}
|
|
67816
|
+
></div>
|
|
67710
67817
|
<div
|
|
67711
67818
|
class="resize-handle resize-tl"
|
|
67712
67819
|
@pointerdown=${(e) => this._onResizeStart(e, "tl")}
|
|
@@ -67723,7 +67830,7 @@ var InputPanel = class extends i {
|
|
|
67723
67830
|
class="resize-handle resize-br"
|
|
67724
67831
|
@pointerdown=${(e) => this._onResizeStart(e, "br")}
|
|
67725
67832
|
></div>
|
|
67726
|
-
|
|
67833
|
+
<div class="panel-body">${inner}</div>
|
|
67727
67834
|
</dialog>`;
|
|
67728
67835
|
return inner;
|
|
67729
67836
|
}
|
|
@@ -92529,33 +92636,89 @@ var InputPanelAddon = class InputPanelAddon {
|
|
|
92529
92636
|
}
|
|
92530
92637
|
};
|
|
92531
92638
|
//#endregion
|
|
92532
|
-
//#region src/lib/audio-
|
|
92639
|
+
//#region src/lib/user-gesture-audio-context.ts
|
|
92640
|
+
var audioContext = null;
|
|
92641
|
+
var audioContextPromise = null;
|
|
92642
|
+
var userGesturePromise = null;
|
|
92643
|
+
var resolveUserGesturePromise = null;
|
|
92644
|
+
var userGestureResolved = false;
|
|
92645
|
+
var userGestureListenersActive = false;
|
|
92533
92646
|
function getAudioContextConstructor() {
|
|
92534
92647
|
if (typeof window === "undefined") return null;
|
|
92535
92648
|
return window.AudioContext ?? window.webkitAudioContext ?? null;
|
|
92536
92649
|
}
|
|
92650
|
+
function hasUserActivation() {
|
|
92651
|
+
if (userGestureResolved) return true;
|
|
92652
|
+
if (typeof navigator === "undefined") return false;
|
|
92653
|
+
return navigator.userActivation?.hasBeenActive === true || navigator.userActivation?.isActive === true;
|
|
92654
|
+
}
|
|
92655
|
+
function removeUserGestureListeners() {
|
|
92656
|
+
if (typeof window === "undefined" || !userGestureListenersActive) return;
|
|
92657
|
+
window.removeEventListener("pointerdown", resolveUserGesture, true);
|
|
92658
|
+
window.removeEventListener("keydown", resolveUserGesture, true);
|
|
92659
|
+
userGestureListenersActive = false;
|
|
92660
|
+
}
|
|
92661
|
+
function resolveUserGesture() {
|
|
92662
|
+
userGestureResolved = true;
|
|
92663
|
+
removeUserGestureListeners();
|
|
92664
|
+
resolveUserGesturePromise?.();
|
|
92665
|
+
resolveUserGesturePromise = null;
|
|
92666
|
+
userGesturePromise = null;
|
|
92667
|
+
}
|
|
92668
|
+
function addUserGestureListeners() {
|
|
92669
|
+
if (typeof window === "undefined" || userGestureListenersActive || hasUserActivation()) return;
|
|
92670
|
+
window.addEventListener("pointerdown", resolveUserGesture, {
|
|
92671
|
+
capture: true,
|
|
92672
|
+
once: true,
|
|
92673
|
+
passive: true
|
|
92674
|
+
});
|
|
92675
|
+
window.addEventListener("keydown", resolveUserGesture, {
|
|
92676
|
+
capture: true,
|
|
92677
|
+
once: true
|
|
92678
|
+
});
|
|
92679
|
+
userGestureListenersActive = true;
|
|
92680
|
+
}
|
|
92681
|
+
function prepareAudioContextAfterUserGesture() {
|
|
92682
|
+
addUserGestureListeners();
|
|
92683
|
+
}
|
|
92684
|
+
function waitForUserGesture() {
|
|
92685
|
+
if (typeof window === "undefined" || hasUserActivation()) return Promise.resolve();
|
|
92686
|
+
if (userGesturePromise) return userGesturePromise;
|
|
92687
|
+
userGesturePromise = new Promise((resolve) => {
|
|
92688
|
+
resolveUserGesturePromise = resolve;
|
|
92689
|
+
addUserGestureListeners();
|
|
92690
|
+
});
|
|
92691
|
+
return userGesturePromise;
|
|
92692
|
+
}
|
|
92693
|
+
async function createAudioContextAfterUserGesture() {
|
|
92694
|
+
if (audioContext) return audioContext;
|
|
92695
|
+
if (audioContextPromise) return audioContextPromise;
|
|
92696
|
+
if (!getAudioContextConstructor()) return null;
|
|
92697
|
+
audioContextPromise = waitForUserGesture().then(async () => {
|
|
92698
|
+
const AudioContextCtor = getAudioContextConstructor();
|
|
92699
|
+
if (!AudioContextCtor) return null;
|
|
92700
|
+
const context = audioContext ?? new AudioContextCtor();
|
|
92701
|
+
audioContext = context;
|
|
92702
|
+
if (context.state === "suspended") await context.resume();
|
|
92703
|
+
return context;
|
|
92704
|
+
}).finally(() => {
|
|
92705
|
+
audioContextPromise = null;
|
|
92706
|
+
});
|
|
92707
|
+
return audioContextPromise;
|
|
92708
|
+
}
|
|
92709
|
+
//#endregion
|
|
92710
|
+
//#region src/lib/audio-cue-engine.ts
|
|
92537
92711
|
var AudioCueEngine = class {
|
|
92538
92712
|
fallbackSound;
|
|
92539
92713
|
unlocked = false;
|
|
92540
92714
|
unlockPromise = null;
|
|
92541
|
-
audioContext = null;
|
|
92542
92715
|
silentAudio = null;
|
|
92543
92716
|
activeAudios = /* @__PURE__ */ new Set();
|
|
92544
92717
|
constructor(fallback) {
|
|
92545
92718
|
this.fallbackSound = fallback === "bell" ? DEFAULT_BELL_SOUND_ID : DEFAULT_NOTIFICATION_SOUND_ID;
|
|
92546
92719
|
}
|
|
92547
92720
|
init() {
|
|
92548
|
-
|
|
92549
|
-
const unlock = () => {
|
|
92550
|
-
this.unlock();
|
|
92551
|
-
window.removeEventListener("pointerdown", unlock);
|
|
92552
|
-
window.removeEventListener("keydown", unlock);
|
|
92553
|
-
};
|
|
92554
|
-
window.addEventListener("pointerdown", unlock, {
|
|
92555
|
-
once: true,
|
|
92556
|
-
passive: true
|
|
92557
|
-
});
|
|
92558
|
-
window.addEventListener("keydown", unlock, { once: true });
|
|
92721
|
+
prepareAudioContextAfterUserGesture();
|
|
92559
92722
|
}
|
|
92560
92723
|
async unlock() {
|
|
92561
92724
|
if (this.unlocked) return;
|
|
@@ -92571,17 +92734,13 @@ var AudioCueEngine = class {
|
|
|
92571
92734
|
await this.playAudio(sound, volume);
|
|
92572
92735
|
}
|
|
92573
92736
|
async unlockAudioContext() {
|
|
92574
|
-
|
|
92575
|
-
if (!AudioContextCtor) {
|
|
92737
|
+
if (!await createAudioContextAfterUserGesture()) {
|
|
92576
92738
|
this.unlocked = true;
|
|
92577
92739
|
return;
|
|
92578
92740
|
}
|
|
92579
|
-
const context = this.audioContext ?? new AudioContextCtor();
|
|
92580
|
-
this.audioContext = context;
|
|
92581
92741
|
this.silentAudio ??= new Audio("data:audio/wav;base64,UklGRiQAAABXQVZFZm10IBAAAAABAAEAESsAACJWAAACABAAZGF0YQAAAAA=");
|
|
92582
92742
|
this.silentAudio.volume = 0;
|
|
92583
92743
|
await this.silentAudio.play().catch(() => {});
|
|
92584
|
-
if (context.state === "suspended") await context.resume();
|
|
92585
92744
|
this.unlocked = true;
|
|
92586
92745
|
}
|
|
92587
92746
|
async playAudio(sound, volume) {
|
|
@@ -93584,6 +93743,7 @@ var TerminalController = class {
|
|
|
93584
93743
|
}
|
|
93585
93744
|
this.flushPendingOutput(instance);
|
|
93586
93745
|
this.applyGhosttyBackground(instance, container);
|
|
93746
|
+
instance.inputPanelAddon.attachListeners();
|
|
93587
93747
|
}
|
|
93588
93748
|
instance.mountedContainer = container;
|
|
93589
93749
|
requestAnimationFrame(() => {
|
|
@@ -94478,11 +94638,11 @@ function MobileHeader() {
|
|
|
94478
94638
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", {
|
|
94479
94639
|
type: "button",
|
|
94480
94640
|
onClick: () => vtNavController.activatePop("/search"),
|
|
94481
|
-
className: "hover:bg-muted border-primary rounded-md border
|
|
94641
|
+
className: "hover:bg-muted border-primary h-7.5 w-7.5 inline-flex items-center justify-center rounded-md border",
|
|
94482
94642
|
"aria-label": "Open search",
|
|
94483
94643
|
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Search, { className: "h-4 w-4" })
|
|
94484
94644
|
}),
|
|
94485
|
-
!isStatic && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(NotificationEntryButton, { className: "h-
|
|
94645
|
+
!isStatic && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(NotificationEntryButton, { className: "border-primary hover:bg-muted h-7.5 w-7.5" }),
|
|
94486
94646
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(StatusIndicator, { compact: true })
|
|
94487
94647
|
]
|
|
94488
94648
|
})]
|
|
@@ -126763,7 +126923,7 @@ var tabsStyleText = (id) => {
|
|
|
126763
126923
|
border: 0;
|
|
126764
126924
|
font-size: 1.2rem;
|
|
126765
126925
|
background: none;
|
|
126766
|
-
z-index:
|
|
126926
|
+
z-index: 100;
|
|
126767
126927
|
color: currentColor;
|
|
126768
126928
|
}
|
|
126769
126929
|
|
|
@@ -149453,7 +149613,7 @@ function Select({ value, options = [], groups, onValueChange, ariaLabel, id, nam
|
|
|
149453
149613
|
container: portalContainer ?? void 0,
|
|
149454
149614
|
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectPositioner, {
|
|
149455
149615
|
sideOffset,
|
|
149456
|
-
className: cn$1("z-50 select-none outline-none", positionerClassName),
|
|
149616
|
+
className: cn$1("z-50 select-none outline-none data-[anchor-hidden]:opacity-0", positionerClassName),
|
|
149457
149617
|
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectPopup, {
|
|
149458
149618
|
className: cn$1("bg-card text-foreground border-border min-w-(--anchor-width) max-w-[min(24rem,calc(100vw-2rem))] rounded-md border p-1 shadow-lg", "origin-(--transform-origin) transition-[transform,opacity] duration-150", "data-[ending-style]:translate-y-0.5 data-[ending-style]:opacity-0", "data-[starting-style]:translate-y-0.5 data-[starting-style]:opacity-0", popupClassName),
|
|
149459
149619
|
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectList, {
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./Geometry-C-MCm9EO.js";import{w as e}from"./index-BbZP3-SK.js";export{e as CanvasRenderer};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./Geometry-C-MCm9EO.js";import{C as e}from"./index-BbZP3-SK.js";export{e as WebGLRenderer};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./Geometry-C-MCm9EO.js";import{S as e}from"./index-BbZP3-SK.js";export{e as WebGPURenderer};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{it as e,x as t}from"./Geometry-C-MCm9EO.js";import{A as n,D as r,O as i,k as a}from"./index-BbZP3-SK.js";import"./init-nrsssPRF.js";e.add(n),e.mixin(t,a),e.add(i),e.mixin(t,r);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./dist-UN0VvTJo.js";import{b as e}from"./index-BbZP3-SK.js";export{e as json};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./dist-UN0VvTJo.js";import{g as e}from"./index-BbZP3-SK.js";export{e as css};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./dist-UN0VvTJo.js";import{t as e}from"./index-BbZP3-SK.js";export{e as yaml};
|