@openspecui/web 3.1.2 → 3.2.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/CanvasRenderer-DaAtcSpJ.js +1 -0
- package/dist/assets/WebGLRenderer-Dw9u4T-1.js +1 -0
- package/dist/assets/WebGPURenderer-DZLDcYus.js +1 -0
- package/dist/assets/browserAll-DHDY4Lag.js +1 -0
- package/dist/assets/{dist-C5LhmGQv.js → dist--kJS10K4.js} +1 -1
- package/dist/assets/{dist-BY1C7Mdt.js → dist-B4Ej2z5p.js} +1 -1
- package/dist/assets/dist-Bg53DwSg.js +1 -0
- package/dist/assets/{dist-CFN6RaSL.js → dist-Bx_btjfU.js} +1 -1
- package/dist/assets/{dist-F-FUgDEH.js → dist-CAemHNFv.js} +1 -1
- package/dist/assets/dist-CBdQjXWm.js +1 -0
- package/dist/assets/{dist-DeUrqbt3.js → dist-Cc4rhz0Q.js} +1 -1
- package/dist/assets/dist-CcMtrYGd.js +1 -0
- package/dist/assets/{dist-CBEkwgt3.js → dist-ClrYUZj0.js} +1 -1
- package/dist/assets/{dist-CqxGwcdL.js → dist-DedlS1Fr.js} +1 -1
- package/dist/assets/{dist-DJozOuN7.js → dist-T8yPt5qM.js} +1 -1
- package/dist/assets/{dist-Diaa_k73.js → dist-WL830Xdr.js} +1 -1
- package/dist/assets/{ghostty-web-CDaaUwy5.js → ghostty-web-DVokbZ5P.js} +1 -1
- package/dist/assets/index-BIMvgiBn.css +1 -0
- package/dist/assets/{index-Dcy8EgUo.js → index-CEq1CSkJ.js} +146 -146
- package/dist/assets/{init-DrdyAVK9.js → init-DxNnipqM.js} +1 -1
- package/dist/assets/trpc-BdFwCFp0.js +1 -0
- package/dist/assets/webworkerAll-B77YQ4kV.js +1 -0
- package/dist/index.html +2 -2
- package/dist-ssg/client/.vite/ssr-manifest.json +21 -15
- package/dist-ssg/client/assets/CanvasRenderer-DQhD3mh1.js +1 -0
- package/dist-ssg/client/assets/WebGLRenderer-BiZDXqzp.js +1 -0
- package/dist-ssg/client/assets/WebGPURenderer-D1nI-2Sp.js +1 -0
- package/dist-ssg/client/assets/browserAll-BHwk3te6.js +1 -0
- package/dist-ssg/client/assets/{dist-DNujtUmO.js → dist-B3BgKjHS.js} +1 -1
- package/dist-ssg/client/assets/{dist-BhO2H7OR.js → dist-BatiVkVi.js} +1 -1
- package/dist-ssg/client/assets/dist-BbQ3gKhT.js +1 -0
- package/dist-ssg/client/assets/{dist-DO8y1bmy.js → dist-Bo53fF5A.js} +1 -1
- package/dist-ssg/client/assets/{dist-CveFw6RB.js → dist-BpX6HcAh.js} +1 -1
- package/dist-ssg/client/assets/dist-ByDVQI3O.js +1 -0
- package/dist-ssg/client/assets/{dist-CutmPbSe.js → dist-CdX5HK1b.js} +1 -1
- package/dist-ssg/client/assets/{dist-DIst5rCp.js → dist-D92F7LaW.js} +1 -1
- package/dist-ssg/client/assets/dist-De4GFj_M.js +1 -0
- package/dist-ssg/client/assets/{dist-Dr_EZjoB.js → dist-QmTcnYGP.js} +1 -1
- package/dist-ssg/client/assets/{dist-Bml-zLQW.js → dist-gh87xRoS.js} +1 -1
- package/dist-ssg/client/assets/{dist-CPNJ3aGj.js → dist-o5b4RTXe.js} +1 -1
- package/dist-ssg/client/assets/{ghostty-web-Dy5PgESC.js → ghostty-web-BfPjk5-h.js} +1 -1
- package/dist-ssg/client/assets/index-nIC438iN.css +2 -0
- package/dist-ssg/client/assets/{index.ssg-aBliwGpC.js → index.ssg-wxGG39Ri.js} +85 -85
- package/dist-ssg/client/assets/{init-DVEXKLT1.js → init-DnDCMdRA.js} +1 -1
- package/dist-ssg/client/assets/trpc-JLvkwF5N.js +1 -0
- package/dist-ssg/client/assets/webworkerAll-VgzZQ1wt.js +1 -0
- package/dist-ssg/client/index.ssg.html +2 -2
- package/dist-ssg/server/entry-server.js +290 -59
- package/package.json +1 -1
- package/dist/assets/CanvasRenderer-GMVoqlzn.js +0 -1
- package/dist/assets/WebGLRenderer-k-Z8pjlp.js +0 -1
- package/dist/assets/WebGPURenderer-C_8mniec.js +0 -1
- package/dist/assets/browserAll-BWYXp-f3.js +0 -1
- package/dist/assets/dist-B3ZlOYLU.js +0 -1
- package/dist/assets/dist-BCywbLgf.js +0 -1
- package/dist/assets/dist-BhjA24BR.js +0 -1
- package/dist/assets/index-CuBLKe7j.css +0 -1
- package/dist/assets/trpc-DxYD5MvM.js +0 -1
- package/dist/assets/webworkerAll-COGBf_rl.js +0 -1
- package/dist-ssg/client/assets/CanvasRenderer-B7-UHo7l.js +0 -1
- package/dist-ssg/client/assets/WebGLRenderer-1dzTO98s.js +0 -1
- package/dist-ssg/client/assets/WebGPURenderer-e46qYwvA.js +0 -1
- package/dist-ssg/client/assets/browserAll-9vMZEjlX.js +0 -1
- package/dist-ssg/client/assets/dist-5GS8V85g.js +0 -1
- package/dist-ssg/client/assets/dist-B-kSGqm_.js +0 -1
- package/dist-ssg/client/assets/dist-BeJow-i0.js +0 -1
- package/dist-ssg/client/assets/index-CVQW5ffN.css +0 -2
- package/dist-ssg/client/assets/trpc-DJg1omNa.js +0 -1
- package/dist-ssg/client/assets/webworkerAll-DfQd5wx2.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{it as e}from"./Geometry-CNDxiJq_.js";import{a as t,i as n}from"./index.ssg-
|
|
1
|
+
import{it as e}from"./Geometry-CNDxiJq_.js";import{a as t,i as n}from"./index.ssg-wxGG39Ri.js";e.add(n),e.add(t);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{F as e}from"./index.ssg-wxGG39Ri.js";export{e as trpcClient};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./Geometry-CNDxiJq_.js";import"./index.ssg-wxGG39Ri.js";import"./init-DnDCMdRA.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-wxGG39Ri.js"></script>
|
|
39
39
|
<link rel="modulepreload" crossorigin href="/assets/chunk-DECur_0Z.js">
|
|
40
40
|
<link rel="modulepreload" crossorigin href="/assets/dist-QUHuPJsA.js">
|
|
41
41
|
<link rel="modulepreload" crossorigin href="/assets/dist-BGaHY1kO.js">
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
<link rel="modulepreload" crossorigin href="/assets/getTextureBatchBindGroup-CqvclRGr.js">
|
|
46
46
|
<link rel="modulepreload" crossorigin href="/assets/BufferResource-DKNednNt.js">
|
|
47
47
|
<link rel="modulepreload" crossorigin href="/assets/ImageSource-DsthkIsU.js">
|
|
48
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
48
|
+
<link rel="stylesheet" crossorigin href="/assets/index-nIC438iN.css">
|
|
49
49
|
</head>
|
|
50
50
|
<body>
|
|
51
51
|
<div id="root"><!--app-html--></div>
|
|
@@ -46424,6 +46424,9 @@ async function getConfig$1() {
|
|
|
46424
46424
|
cursorBlink: true,
|
|
46425
46425
|
cursorStyle: "block",
|
|
46426
46426
|
scrollback: 1e3,
|
|
46427
|
+
useTheme: "app",
|
|
46428
|
+
lightTheme: "default-light",
|
|
46429
|
+
darkTheme: "default-dark",
|
|
46427
46430
|
rendererEngine: "xterm"
|
|
46428
46431
|
}
|
|
46429
46432
|
};
|
|
@@ -84158,7 +84161,7 @@ var tabsStyleText = (id) => {
|
|
|
84158
84161
|
transform: scaleX(0.5);
|
|
84159
84162
|
}
|
|
84160
84163
|
|
|
84161
|
-
#${id} .tabs-strip {
|
|
84164
|
+
#${id}[data-tabs-strip-decoration='on'] .tabs-strip {
|
|
84162
84165
|
background-image: linear-gradient(
|
|
84163
84166
|
to bottom,
|
|
84164
84167
|
transparent,
|
|
@@ -84189,7 +84192,7 @@ function buildStableContentTabIds(previousTabIds, currentTabIds) {
|
|
|
84189
84192
|
* Hidden tabs are pre-rendered at lower priority and preserve their state.
|
|
84190
84193
|
* Supports both controlled and uncontrolled active tab.
|
|
84191
84194
|
*/
|
|
84192
|
-
function TabsImpl({ tabs, selectedTab: controlled, onTabChange, onTabClose, onTabOrderChange, actions, onTabBarDoubleClick, className = "",
|
|
84195
|
+
function TabsImpl({ tabs, selectedTab: controlled, onTabChange, onTabClose, onTabOrderChange, actions, onTabBarDoubleClick, className = "", classNames, showHeaderShell = true, showSelectionIndicator = true, decorateStrip = true }, ref) {
|
|
84193
84196
|
const [uncontrolled, setUncontrolled] = (0, import_react.useState)(tabs[0]?.id ?? "");
|
|
84194
84197
|
const [dropIndicator, setDropIndicator] = (0, import_react.useState)(null);
|
|
84195
84198
|
const dropIndicatorRef = (0, import_react.useRef)(null);
|
|
@@ -84243,7 +84246,7 @@ function TabsImpl({ tabs, selectedTab: controlled, onTabChange, onTabClose, onTa
|
|
|
84243
84246
|
const header = headerRef.current;
|
|
84244
84247
|
const activeTrigger = activeTab ? triggerRefs.current.get(activeTab) : null;
|
|
84245
84248
|
if (!indicator) return;
|
|
84246
|
-
if (
|
|
84249
|
+
if (!showSelectionIndicator || !header || !activeTrigger) {
|
|
84247
84250
|
indicator.style.opacity = "0";
|
|
84248
84251
|
indicator.style.width = "0px";
|
|
84249
84252
|
indicator.style.height = "0px";
|
|
@@ -84256,12 +84259,12 @@ function TabsImpl({ tabs, selectedTab: controlled, onTabChange, onTabClose, onTa
|
|
|
84256
84259
|
indicator.style.width = `${triggerRect.width}px`;
|
|
84257
84260
|
indicator.style.height = `${triggerRect.height}px`;
|
|
84258
84261
|
indicator.style.transform = `translate(${triggerRect.left - headerRect.left}px, ${triggerRect.top - headerRect.top}px)`;
|
|
84259
|
-
}, [activeTab,
|
|
84262
|
+
}, [activeTab, showSelectionIndicator]);
|
|
84260
84263
|
(0, import_react.useLayoutEffect)(() => {
|
|
84261
84264
|
syncSelectionIndicator();
|
|
84262
84265
|
}, [syncSelectionIndicator, tabLayoutSignature]);
|
|
84263
84266
|
(0, import_react.useLayoutEffect)(() => {
|
|
84264
|
-
if (
|
|
84267
|
+
if (!showSelectionIndicator) return;
|
|
84265
84268
|
const tabsButton = tabsButtonRef.current;
|
|
84266
84269
|
if (!tabsButton) return;
|
|
84267
84270
|
const handleScroll = () => {
|
|
@@ -84284,9 +84287,9 @@ function TabsImpl({ tabs, selectedTab: controlled, onTabChange, onTabClose, onTa
|
|
|
84284
84287
|
};
|
|
84285
84288
|
}, [
|
|
84286
84289
|
activeTab,
|
|
84290
|
+
showSelectionIndicator,
|
|
84287
84291
|
syncSelectionIndicator,
|
|
84288
|
-
tabLayoutSignature
|
|
84289
|
-
variant
|
|
84292
|
+
tabLayoutSignature
|
|
84290
84293
|
]);
|
|
84291
84294
|
const handleChange = (id) => {
|
|
84292
84295
|
if (!controlled) setUncontrolled(id);
|
|
@@ -84367,13 +84370,19 @@ function TabsImpl({ tabs, selectedTab: controlled, onTabChange, onTabClose, onTa
|
|
|
84367
84370
|
event.dataTransfer.dropEffect = "move";
|
|
84368
84371
|
}, [reorderable]);
|
|
84369
84372
|
if (tabs.length === 0) return null;
|
|
84370
|
-
const headerClassName =
|
|
84371
|
-
const
|
|
84372
|
-
const
|
|
84373
|
-
const
|
|
84374
|
-
const
|
|
84375
|
-
const
|
|
84376
|
-
const
|
|
84373
|
+
const headerClassName = cn$1("tabs-header relative sticky top-0 z-20 flex min-w-0 items-stretch", classNames?.header);
|
|
84374
|
+
const headerShellClassName = cn$1("tabs-header-shell bg-card/95 pointer-events-none absolute inset-0 z-0 rounded-md border border-zinc-500/15 shadow-[inset_0_-1px_0_color-mix(in_srgb,var(--border)_85%,transparent)] backdrop-blur-sm", classNames?.headerShell);
|
|
84375
|
+
const headerForegroundClassName = cn$1("tabs-header-foreground relative z-20 flex min-w-0 items-stretch", classNames?.headerForeground);
|
|
84376
|
+
const stripClassName = cn$1("tabs-strip flex min-w-0 flex-1 items-stretch rounded-l-md px-4", classNames?.strip);
|
|
84377
|
+
const listClassName = cn$1("tabs-button scrollbar-none flex min-w-0 flex-1 gap-1 overflow-x-auto", classNames?.list);
|
|
84378
|
+
const buttonBaseClassName = cn$1("group relative z-10 m-0 flex h-full shrink-0 px-2 py-2 text-sm font-medium transition-colors", classNames?.buttonBase);
|
|
84379
|
+
const buttonInnerClassName = cn$1("inline-flex h-full items-center gap-2", classNames?.buttonInner);
|
|
84380
|
+
const activeButtonClassName = cn$1("tab-selected text-foreground", classNames?.activeButton);
|
|
84381
|
+
const inactiveButtonClassName = cn$1("text-muted-foreground hover:bg-background/35 hover:text-foreground", classNames?.inactiveButton);
|
|
84382
|
+
const activeButtonInnerClassName = cn$1(classNames?.activeButtonInner);
|
|
84383
|
+
const inactiveButtonInnerClassName = cn$1(classNames?.inactiveButtonInner);
|
|
84384
|
+
const actionsClassName = cn$1("tabs-actions border-zinc-500/15 flex shrink-0 items-center rounded-r-md border-l px-1 h-full", classNames?.actions);
|
|
84385
|
+
const selectionIndicatorClassName = cn$1("tabs-selection-indicator border-primary bg-background/70 duration-280 absolute left-0 top-0 border-b-4 opacity-0 transition-[transform,width,height,opacity] ease-[cubic-bezier(0.22,1,0.36,1)]", classNames?.selectionIndicator);
|
|
84377
84386
|
const handleTabBarDoubleClick = (event) => {
|
|
84378
84387
|
if (!onTabBarDoubleClick) return;
|
|
84379
84388
|
if (event.target.closest("[data-tab-item=\"true\"]")) return;
|
|
@@ -84381,7 +84390,7 @@ function TabsImpl({ tabs, selectedTab: controlled, onTabChange, onTabClose, onTa
|
|
|
84381
84390
|
};
|
|
84382
84391
|
const tabButtons = tabs.map((tab) => {
|
|
84383
84392
|
const dragIndicatorStyle = dropIndicator?.tabId === tab.id ? { boxShadow: dropIndicator.position === "before" ? "inset 2px 0 0 var(--border)" : "inset -2px 0 0 var(--border)" } : void 0;
|
|
84384
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.
|
|
84393
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", {
|
|
84385
84394
|
ref: (element) => {
|
|
84386
84395
|
triggerRefs.current.set(tab.id, element);
|
|
84387
84396
|
},
|
|
@@ -84395,56 +84404,60 @@ function TabsImpl({ tabs, selectedTab: controlled, onTabChange, onTabClose, onTa
|
|
|
84395
84404
|
onDrop: (event) => handleItemDrop(event, tab.id),
|
|
84396
84405
|
className: `${buttonBaseClassName} ${activeTab === tab.id ? activeButtonClassName : inactiveButtonClassName} ${reorderable ? "cursor-grab active:cursor-grabbing" : ""}`,
|
|
84397
84406
|
style: dragIndicatorStyle,
|
|
84398
|
-
children:
|
|
84399
|
-
|
|
84400
|
-
tab.
|
|
84401
|
-
|
|
84402
|
-
|
|
84403
|
-
|
|
84404
|
-
|
|
84405
|
-
|
|
84406
|
-
|
|
84407
|
-
|
|
84408
|
-
onKeyDown: (event) => {
|
|
84409
|
-
if (event.key === "Enter" || event.key === " ") {
|
|
84407
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
|
|
84408
|
+
"data-tabs-button-inner": "true",
|
|
84409
|
+
className: `${buttonInnerClassName} ${activeTab === tab.id ? activeButtonInnerClassName : inactiveButtonInnerClassName}`,
|
|
84410
|
+
children: [
|
|
84411
|
+
tab.icon,
|
|
84412
|
+
tab.label,
|
|
84413
|
+
tab.closable && onTabClose && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
84414
|
+
role: "button",
|
|
84415
|
+
tabIndex: 0,
|
|
84416
|
+
onClick: (event) => {
|
|
84410
84417
|
event.stopPropagation();
|
|
84411
84418
|
onTabClose(tab.id);
|
|
84412
|
-
}
|
|
84413
|
-
|
|
84414
|
-
|
|
84415
|
-
|
|
84416
|
-
|
|
84417
|
-
|
|
84418
|
-
|
|
84419
|
+
},
|
|
84420
|
+
onKeyDown: (event) => {
|
|
84421
|
+
if (event.key === "Enter" || event.key === " ") {
|
|
84422
|
+
event.stopPropagation();
|
|
84423
|
+
onTabClose(tab.id);
|
|
84424
|
+
}
|
|
84425
|
+
},
|
|
84426
|
+
draggable: false,
|
|
84427
|
+
className: `-mr-1 rounded p-0.5 transition ${tab.closeButtonVisibility === "always" ? "opacity-100" : "opacity-0 group-hover:opacity-100 [button:hover>&]:opacity-100"} ${activeTab === tab.id ? cn$1("text-current/80 hover:text-foreground", classNames?.closeButtonActive) : cn$1("text-muted-foreground hover:text-foreground", classNames?.closeButtonInactive)}`,
|
|
84428
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(X$2, { className: "h-3 w-3" })
|
|
84429
|
+
})
|
|
84430
|
+
]
|
|
84431
|
+
})
|
|
84419
84432
|
}, tab.id);
|
|
84420
84433
|
});
|
|
84421
84434
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
84422
84435
|
id,
|
|
84423
84436
|
ref: rootRef,
|
|
84424
|
-
"data-tabs-
|
|
84437
|
+
"data-tabs-strip-decoration": decorateStrip ? "on" : "off",
|
|
84425
84438
|
className: `relative isolate flex min-h-0 min-w-0 flex-1 flex-col ${className}`,
|
|
84426
84439
|
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
84427
84440
|
ref: headerRef,
|
|
84428
84441
|
className: headerClassName,
|
|
84429
|
-
children:
|
|
84430
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
84442
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
|
|
84443
|
+
showHeaderShell && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
84431
84444
|
ref: headerShellRef,
|
|
84432
84445
|
"data-tabs-header-shell": "true",
|
|
84433
|
-
className:
|
|
84446
|
+
className: headerShellClassName
|
|
84434
84447
|
}),
|
|
84435
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
84448
|
+
showSelectionIndicator && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
84436
84449
|
className: "pointer-events-none absolute inset-0 z-10",
|
|
84437
84450
|
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
84438
84451
|
ref: selectionIndicatorRef,
|
|
84439
84452
|
"data-tabs-selection-indicator": "true",
|
|
84440
84453
|
"aria-hidden": "true",
|
|
84441
|
-
className:
|
|
84454
|
+
className: selectionIndicatorClassName
|
|
84442
84455
|
})
|
|
84443
84456
|
}),
|
|
84444
84457
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
84445
84458
|
ref: headerForegroundRef,
|
|
84446
84459
|
"data-tabs-header-foreground": "true",
|
|
84447
|
-
className:
|
|
84460
|
+
className: headerForegroundClassName,
|
|
84448
84461
|
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
84449
84462
|
className: stripClassName,
|
|
84450
84463
|
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
@@ -84461,21 +84474,7 @@ function TabsImpl({ tabs, selectedTab: controlled, onTabChange, onTabClose, onTa
|
|
|
84461
84474
|
children: actions
|
|
84462
84475
|
})]
|
|
84463
84476
|
})
|
|
84464
|
-
] })
|
|
84465
|
-
className: stripClassName,
|
|
84466
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
84467
|
-
ref: tabsButtonRef,
|
|
84468
|
-
className: listClassName,
|
|
84469
|
-
onDoubleClick: handleTabBarDoubleClick,
|
|
84470
|
-
onDragOver: handleListDragOver,
|
|
84471
|
-
onDrop: handleListDrop,
|
|
84472
|
-
children: tabButtons
|
|
84473
|
-
})
|
|
84474
|
-
}), actions && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
84475
|
-
"data-tabs-actions": "true",
|
|
84476
|
-
className: actionsClassName,
|
|
84477
|
-
children: actions
|
|
84478
|
-
})] })
|
|
84477
|
+
] })
|
|
84479
84478
|
}), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
84480
84479
|
className: "relative flex min-h-0 flex-1 overflow-hidden",
|
|
84481
84480
|
children: contentTabs.map((tab) => tab.unmountOnHide ? activeTab === tab.id && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
@@ -144781,6 +144780,194 @@ var TerminalInputHistoryStore = class {
|
|
|
144781
144780
|
}
|
|
144782
144781
|
};
|
|
144783
144782
|
//#endregion
|
|
144783
|
+
//#region src/lib/terminal-theme.ts
|
|
144784
|
+
var TERMINAL_THEME_REGISTRY = {
|
|
144785
|
+
"default-light": {
|
|
144786
|
+
id: "default-light",
|
|
144787
|
+
label: "Default Light",
|
|
144788
|
+
modeHint: "light",
|
|
144789
|
+
palette: {
|
|
144790
|
+
background: "#f6f5f2",
|
|
144791
|
+
foreground: "#1b1b1b",
|
|
144792
|
+
cursor: "#ea580c",
|
|
144793
|
+
cursorAccent: "#f6f5f2",
|
|
144794
|
+
selectionBackground: "rgba(234, 88, 12, 0.22)",
|
|
144795
|
+
black: "#111111",
|
|
144796
|
+
red: "#b91c1c",
|
|
144797
|
+
green: "#15803d",
|
|
144798
|
+
yellow: "#a16207",
|
|
144799
|
+
blue: "#1d4ed8",
|
|
144800
|
+
magenta: "#a21caf",
|
|
144801
|
+
cyan: "#0f766e",
|
|
144802
|
+
white: "#f6f5f2",
|
|
144803
|
+
brightBlack: "#4b5563",
|
|
144804
|
+
brightRed: "#dc2626",
|
|
144805
|
+
brightGreen: "#16a34a",
|
|
144806
|
+
brightYellow: "#ca8a04",
|
|
144807
|
+
brightBlue: "#2563eb",
|
|
144808
|
+
brightMagenta: "#c026d3",
|
|
144809
|
+
brightCyan: "#0891b2",
|
|
144810
|
+
brightWhite: "#ffffff"
|
|
144811
|
+
}
|
|
144812
|
+
},
|
|
144813
|
+
"default-dark": {
|
|
144814
|
+
id: "default-dark",
|
|
144815
|
+
label: "Default Dark",
|
|
144816
|
+
modeHint: "dark",
|
|
144817
|
+
palette: {
|
|
144818
|
+
background: "#141414",
|
|
144819
|
+
foreground: "#e5dfd2",
|
|
144820
|
+
cursor: "#f97316",
|
|
144821
|
+
cursorAccent: "#141414",
|
|
144822
|
+
selectionBackground: "rgba(249, 115, 22, 0.28)",
|
|
144823
|
+
black: "#151515",
|
|
144824
|
+
red: "#f87171",
|
|
144825
|
+
green: "#4ade80",
|
|
144826
|
+
yellow: "#facc15",
|
|
144827
|
+
blue: "#60a5fa",
|
|
144828
|
+
magenta: "#e879f9",
|
|
144829
|
+
cyan: "#67e8f9",
|
|
144830
|
+
white: "#f4f1ea",
|
|
144831
|
+
brightBlack: "#6b7280",
|
|
144832
|
+
brightRed: "#fca5a5",
|
|
144833
|
+
brightGreen: "#86efac",
|
|
144834
|
+
brightYellow: "#fde047",
|
|
144835
|
+
brightBlue: "#93c5fd",
|
|
144836
|
+
brightMagenta: "#f0abfc",
|
|
144837
|
+
brightCyan: "#a5f3fc",
|
|
144838
|
+
brightWhite: "#fffdf8"
|
|
144839
|
+
}
|
|
144840
|
+
},
|
|
144841
|
+
monokai: {
|
|
144842
|
+
id: "monokai",
|
|
144843
|
+
label: "Monokai",
|
|
144844
|
+
modeHint: "either",
|
|
144845
|
+
palette: {
|
|
144846
|
+
background: "#272822",
|
|
144847
|
+
foreground: "#f8f8f2",
|
|
144848
|
+
cursor: "#f8f8f0",
|
|
144849
|
+
cursorAccent: "#272822",
|
|
144850
|
+
selectionBackground: "rgba(73, 72, 62, 0.9)",
|
|
144851
|
+
black: "#272822",
|
|
144852
|
+
red: "#f92672",
|
|
144853
|
+
green: "#a6e22e",
|
|
144854
|
+
yellow: "#f4bf75",
|
|
144855
|
+
blue: "#66d9ef",
|
|
144856
|
+
magenta: "#ae81ff",
|
|
144857
|
+
cyan: "#a1efe4",
|
|
144858
|
+
white: "#f8f8f2",
|
|
144859
|
+
brightBlack: "#75715e",
|
|
144860
|
+
brightRed: "#f92672",
|
|
144861
|
+
brightGreen: "#a6e22e",
|
|
144862
|
+
brightYellow: "#f4bf75",
|
|
144863
|
+
brightBlue: "#66d9ef",
|
|
144864
|
+
brightMagenta: "#ae81ff",
|
|
144865
|
+
brightCyan: "#a1efe4",
|
|
144866
|
+
brightWhite: "#f9f8f5"
|
|
144867
|
+
}
|
|
144868
|
+
},
|
|
144869
|
+
nord: {
|
|
144870
|
+
id: "nord",
|
|
144871
|
+
label: "Nord",
|
|
144872
|
+
modeHint: "either",
|
|
144873
|
+
palette: {
|
|
144874
|
+
background: "#2e3440",
|
|
144875
|
+
foreground: "#d8dee9",
|
|
144876
|
+
cursor: "#88c0d0",
|
|
144877
|
+
cursorAccent: "#2e3440",
|
|
144878
|
+
selectionBackground: "rgba(94, 129, 172, 0.38)",
|
|
144879
|
+
black: "#3b4252",
|
|
144880
|
+
red: "#bf616a",
|
|
144881
|
+
green: "#a3be8c",
|
|
144882
|
+
yellow: "#ebcb8b",
|
|
144883
|
+
blue: "#81a1c1",
|
|
144884
|
+
magenta: "#b48ead",
|
|
144885
|
+
cyan: "#88c0d0",
|
|
144886
|
+
white: "#e5e9f0",
|
|
144887
|
+
brightBlack: "#4c566a",
|
|
144888
|
+
brightRed: "#d08770",
|
|
144889
|
+
brightGreen: "#8fbcbb",
|
|
144890
|
+
brightYellow: "#eceff4",
|
|
144891
|
+
brightBlue: "#5e81ac",
|
|
144892
|
+
brightMagenta: "#b48ead",
|
|
144893
|
+
brightCyan: "#8fbcbb",
|
|
144894
|
+
brightWhite: "#eceff4"
|
|
144895
|
+
}
|
|
144896
|
+
},
|
|
144897
|
+
"solarized-light": {
|
|
144898
|
+
id: "solarized-light",
|
|
144899
|
+
label: "Solarized Light",
|
|
144900
|
+
modeHint: "light",
|
|
144901
|
+
palette: {
|
|
144902
|
+
background: "#fdf6e3",
|
|
144903
|
+
foreground: "#586e75",
|
|
144904
|
+
cursor: "#cb4b16",
|
|
144905
|
+
cursorAccent: "#fdf6e3",
|
|
144906
|
+
selectionBackground: "rgba(147, 161, 161, 0.32)",
|
|
144907
|
+
black: "#073642",
|
|
144908
|
+
red: "#dc322f",
|
|
144909
|
+
green: "#859900",
|
|
144910
|
+
yellow: "#b58900",
|
|
144911
|
+
blue: "#268bd2",
|
|
144912
|
+
magenta: "#d33682",
|
|
144913
|
+
cyan: "#2aa198",
|
|
144914
|
+
white: "#eee8d5",
|
|
144915
|
+
brightBlack: "#657b83",
|
|
144916
|
+
brightRed: "#cb4b16",
|
|
144917
|
+
brightGreen: "#93a1a1",
|
|
144918
|
+
brightYellow: "#839496",
|
|
144919
|
+
brightBlue: "#6c71c4",
|
|
144920
|
+
brightMagenta: "#d33682",
|
|
144921
|
+
brightCyan: "#2aa198",
|
|
144922
|
+
brightWhite: "#fdf6e3"
|
|
144923
|
+
}
|
|
144924
|
+
},
|
|
144925
|
+
"solarized-dark": {
|
|
144926
|
+
id: "solarized-dark",
|
|
144927
|
+
label: "Solarized Dark",
|
|
144928
|
+
modeHint: "dark",
|
|
144929
|
+
palette: {
|
|
144930
|
+
background: "#002b36",
|
|
144931
|
+
foreground: "#93a1a1",
|
|
144932
|
+
cursor: "#cb4b16",
|
|
144933
|
+
cursorAccent: "#002b36",
|
|
144934
|
+
selectionBackground: "rgba(88, 110, 117, 0.5)",
|
|
144935
|
+
black: "#073642",
|
|
144936
|
+
red: "#dc322f",
|
|
144937
|
+
green: "#859900",
|
|
144938
|
+
yellow: "#b58900",
|
|
144939
|
+
blue: "#268bd2",
|
|
144940
|
+
magenta: "#d33682",
|
|
144941
|
+
cyan: "#2aa198",
|
|
144942
|
+
white: "#eee8d5",
|
|
144943
|
+
brightBlack: "#657b83",
|
|
144944
|
+
brightRed: "#cb4b16",
|
|
144945
|
+
brightGreen: "#586e75",
|
|
144946
|
+
brightYellow: "#657b83",
|
|
144947
|
+
brightBlue: "#839496",
|
|
144948
|
+
brightMagenta: "#6c71c4",
|
|
144949
|
+
brightCyan: "#93a1a1",
|
|
144950
|
+
brightWhite: "#fdf6e3"
|
|
144951
|
+
}
|
|
144952
|
+
}
|
|
144953
|
+
};
|
|
144954
|
+
function resolveTerminalThemeMode(input) {
|
|
144955
|
+
const mode = input.useTheme ?? "app";
|
|
144956
|
+
if (mode === "light") return "light";
|
|
144957
|
+
if (mode === "dark") return "dark";
|
|
144958
|
+
if (mode === "system") return input.systemDarkMode ? "dark" : "light";
|
|
144959
|
+
return input.appDarkMode ? "dark" : "light";
|
|
144960
|
+
}
|
|
144961
|
+
function resolveTerminalTheme(input) {
|
|
144962
|
+
const mode = resolveTerminalThemeMode(input);
|
|
144963
|
+
const id = mode === "dark" ? input.darkTheme ?? "default-dark" : input.lightTheme ?? "default-light";
|
|
144964
|
+
return {
|
|
144965
|
+
id,
|
|
144966
|
+
mode,
|
|
144967
|
+
definition: TERMINAL_THEME_REGISTRY[id]
|
|
144968
|
+
};
|
|
144969
|
+
}
|
|
144970
|
+
//#endregion
|
|
144784
144971
|
//#region src/lib/terminal-controller.ts
|
|
144785
144972
|
var DEFAULT_FONT_FAMILY = "ui-monospace, SFMono-Regular, \"SF Mono\", Menlo, Consolas, monospace";
|
|
144786
144973
|
var DEFAULT_TERMINAL_CONFIG = {
|
|
@@ -144789,6 +144976,9 @@ var DEFAULT_TERMINAL_CONFIG = {
|
|
|
144789
144976
|
cursorBlink: true,
|
|
144790
144977
|
cursorStyle: "block",
|
|
144791
144978
|
scrollback: 1e3,
|
|
144979
|
+
useTheme: "app",
|
|
144980
|
+
lightTheme: "default-light",
|
|
144981
|
+
darkTheme: "default-dark",
|
|
144792
144982
|
rendererEngine: "xterm"
|
|
144793
144983
|
};
|
|
144794
144984
|
var OUTPUT_IDLE_THRESHOLD = 1500;
|
|
@@ -144876,6 +145066,15 @@ var TerminalController = class {
|
|
|
144876
145066
|
inputHistoryStore = new TerminalInputHistoryStore();
|
|
144877
145067
|
ghosttyModule = null;
|
|
144878
145068
|
ghosttyInitPromise = null;
|
|
145069
|
+
appDarkMode = false;
|
|
145070
|
+
systemDarkMode = false;
|
|
145071
|
+
resolvedTheme = resolveTerminalTheme({
|
|
145072
|
+
useTheme: DEFAULT_TERMINAL_CONFIG.useTheme,
|
|
145073
|
+
lightTheme: DEFAULT_TERMINAL_CONFIG.lightTheme,
|
|
145074
|
+
darkTheme: DEFAULT_TERMINAL_CONFIG.darkTheme,
|
|
145075
|
+
appDarkMode: false,
|
|
145076
|
+
systemDarkMode: false
|
|
145077
|
+
});
|
|
144879
145078
|
ws = null;
|
|
144880
145079
|
wsConnected = false;
|
|
144881
145080
|
reconnectTimer = null;
|
|
@@ -144963,13 +145162,20 @@ var TerminalController = class {
|
|
|
144963
145162
|
};
|
|
144964
145163
|
}
|
|
144965
145164
|
getTerminalOptions() {
|
|
145165
|
+
const resolvedTheme = resolveTerminalTheme({
|
|
145166
|
+
useTheme: this.config.useTheme,
|
|
145167
|
+
lightTheme: this.config.lightTheme,
|
|
145168
|
+
darkTheme: this.config.darkTheme,
|
|
145169
|
+
appDarkMode: this.appDarkMode,
|
|
145170
|
+
systemDarkMode: this.systemDarkMode
|
|
145171
|
+
});
|
|
144966
145172
|
return {
|
|
144967
145173
|
cursorBlink: this.config.cursorBlink,
|
|
144968
145174
|
cursorStyle: this.config.cursorStyle,
|
|
144969
145175
|
fontSize: this.config.fontSize,
|
|
144970
145176
|
fontFamily: DEFAULT_FONT_FAMILY,
|
|
144971
|
-
theme:
|
|
144972
|
-
allowTransparency:
|
|
145177
|
+
theme: resolvedTheme.definition.palette,
|
|
145178
|
+
allowTransparency: false,
|
|
144973
145179
|
convertEol: true,
|
|
144974
145180
|
macOptionIsMeta: true,
|
|
144975
145181
|
macOptionClickForcesSelection: true,
|
|
@@ -145024,8 +145230,8 @@ var TerminalController = class {
|
|
|
145024
145230
|
}
|
|
145025
145231
|
applyGhosttyBackground(instance, container) {
|
|
145026
145232
|
if (instance.rendererEngine !== "ghostty") return;
|
|
145027
|
-
const background = this.resolveNearestOpaqueBackground(container);
|
|
145028
145233
|
const currentTheme = instance.terminal.options.theme ?? {};
|
|
145234
|
+
const background = typeof currentTheme.background === "string" && currentTheme.background.trim().length > 0 ? currentTheme.background : this.resolveNearestOpaqueBackground(container);
|
|
145029
145235
|
instance.terminal.options.allowTransparency = false;
|
|
145030
145236
|
instance.terminal.options.theme = {
|
|
145031
145237
|
...currentTheme,
|
|
@@ -145285,6 +145491,15 @@ var TerminalController = class {
|
|
|
145285
145491
|
getConfig() {
|
|
145286
145492
|
return { ...this.config };
|
|
145287
145493
|
}
|
|
145494
|
+
getResolvedTheme() {
|
|
145495
|
+
return this.resolvedTheme;
|
|
145496
|
+
}
|
|
145497
|
+
setThemeContext(input) {
|
|
145498
|
+
if (!(this.appDarkMode !== input.appDarkMode || this.systemDarkMode !== input.systemDarkMode)) return;
|
|
145499
|
+
this.appDarkMode = input.appDarkMode;
|
|
145500
|
+
this.systemDarkMode = input.systemDarkMode;
|
|
145501
|
+
this.refreshResolvedTheme();
|
|
145502
|
+
}
|
|
145288
145503
|
applyConfig(config) {
|
|
145289
145504
|
const { rendererEngine, ...restConfig } = config;
|
|
145290
145505
|
Object.assign(this.config, restConfig);
|
|
@@ -145295,12 +145510,28 @@ var TerminalController = class {
|
|
|
145295
145510
|
t.options.cursorStyle = this.config.cursorStyle;
|
|
145296
145511
|
t.options.scrollback = this.config.scrollback;
|
|
145297
145512
|
}
|
|
145513
|
+
this.refreshResolvedTheme();
|
|
145298
145514
|
this._applyFonts();
|
|
145299
145515
|
if (rendererEngine && rendererEngine !== this.config.rendererEngine) this.setRendererEngine(rendererEngine).catch((error) => {
|
|
145300
145516
|
console.error("[terminal] failed to switch renderer engine:", error);
|
|
145301
145517
|
});
|
|
145302
145518
|
this.notify();
|
|
145303
145519
|
}
|
|
145520
|
+
refreshResolvedTheme() {
|
|
145521
|
+
const resolvedTheme = resolveTerminalTheme({
|
|
145522
|
+
useTheme: this.config.useTheme,
|
|
145523
|
+
lightTheme: this.config.lightTheme,
|
|
145524
|
+
darkTheme: this.config.darkTheme,
|
|
145525
|
+
appDarkMode: this.appDarkMode,
|
|
145526
|
+
systemDarkMode: this.systemDarkMode
|
|
145527
|
+
});
|
|
145528
|
+
this.resolvedTheme = resolvedTheme;
|
|
145529
|
+
for (const instance of this.instances.values()) {
|
|
145530
|
+
instance.terminal.options.theme = resolvedTheme.definition.palette;
|
|
145531
|
+
instance.terminal.options.allowTransparency = false;
|
|
145532
|
+
if (instance.mountedContainer) this.applyGhosttyBackground(instance, instance.mountedContainer);
|
|
145533
|
+
}
|
|
145534
|
+
}
|
|
145304
145535
|
async _applyFonts() {
|
|
145305
145536
|
const raw = this.config.fontFamily;
|
|
145306
145537
|
if (!raw) {
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./Geometry-CNDxiJq_.js";import{r as e}from"./index-Dcy8EgUo.js";export{e as CanvasRenderer};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./Geometry-CNDxiJq_.js";import{n as e}from"./index-Dcy8EgUo.js";export{e as WebGLRenderer};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./Geometry-CNDxiJq_.js";import{t as e}from"./index-Dcy8EgUo.js";export{e as WebGPURenderer};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{it as e,x as t}from"./Geometry-CNDxiJq_.js";import{c as n,l as r,o as i,s as a}from"./index-Dcy8EgUo.js";import"./init-DrdyAVK9.js";e.add(r),e.mixin(t,n),e.add(a),e.mixin(t,i);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./dist-QUHuPJsA.js";import{k as e}from"./index-Dcy8EgUo.js";export{e as json};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./dist-QUHuPJsA.js";import{T as e}from"./index-Dcy8EgUo.js";export{e as css};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./dist-QUHuPJsA.js";import{u as e}from"./index-Dcy8EgUo.js";export{e as yaml};
|