sql-preview 0.6.8 → 0.6.11
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/Changelog.md +18 -0
- package/dist/mcp-app.html +228 -109
- package/out/server/standalone.js +1232 -554
- package/package.json +1 -1
- package/server.json +2 -2
package/Changelog.md
CHANGED
|
@@ -2,6 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [0.6.11] - 2026-07-14
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- Consolidated the CI release pipeline into one gated workflow and added release note generation.
|
|
10
|
+
|
|
11
|
+
### Changed
|
|
12
|
+
|
|
13
|
+
- DuckDB is now a managed, auto-provisioned runtime inside the daemon; the legacy "Install @duckdb/node-api" flow has been removed and Local Files is a built-in connection. (RFC-075)
|
|
14
|
+
- Enhanced RFC tooling to recognize `deferred/` lifecycle and enforce independent close-out verification.
|
|
15
|
+
|
|
16
|
+
## [0.6.10] - 2026-07-12
|
|
17
|
+
|
|
18
|
+
### Fixed
|
|
19
|
+
|
|
20
|
+
- Fixed Trino integration tests failing on `listSchemas` and improved initial polling.
|
|
21
|
+
- Fixed Postgres `testConnection` memory leak and config cache fix.
|
|
22
|
+
|
|
5
23
|
## [0.6.8] - 2026-07-12
|
|
6
24
|
|
|
7
25
|
### Added
|
package/dist/mcp-app.html
CHANGED
|
@@ -74589,12 +74589,6 @@ function TestElapsed({ since }) {
|
|
|
74589
74589
|
] });
|
|
74590
74590
|
}
|
|
74591
74591
|
const OPTIONAL_DEPENDENCY_ADVICE = [
|
|
74592
|
-
{
|
|
74593
|
-
dependency: "@duckdb/node-api",
|
|
74594
|
-
installCommand: "npm install @duckdb/node-api",
|
|
74595
|
-
title: "DUCKDB support is required",
|
|
74596
|
-
guidance: "Local file queries require optional DuckDB support, but the DuckDB native module is not available in this extension runtime."
|
|
74597
|
-
},
|
|
74598
74592
|
{
|
|
74599
74593
|
dependency: "snowflake-sdk",
|
|
74600
74594
|
installCommand: "npm install snowflake-sdk",
|
|
@@ -74612,9 +74606,6 @@ function getOptionalDependencyAdvice(message) {
|
|
|
74612
74606
|
if (message.includes(advice.dependency)) {
|
|
74613
74607
|
return true;
|
|
74614
74608
|
}
|
|
74615
|
-
if (advice.dependency === "@duckdb/node-api") {
|
|
74616
|
-
return lowerMessage.includes("duckdb native module");
|
|
74617
|
-
}
|
|
74618
74609
|
if (advice.dependency === "snowflake-sdk") {
|
|
74619
74610
|
return lowerMessage.includes("snowflake sdk") || lowerMessage.includes("sdk is not available");
|
|
74620
74611
|
}
|
|
@@ -74786,7 +74777,7 @@ const ConnectionsManager = () => {
|
|
|
74786
74777
|
(_b2 = toastRef.current) == null ? void 0 : _b2.focus({ preventScroll: true });
|
|
74787
74778
|
});
|
|
74788
74779
|
}, [toast]);
|
|
74789
|
-
const handleTestConnection = async (connectionId) => {
|
|
74780
|
+
const handleTestConnection = async (connectionId, provisionRuntime = false) => {
|
|
74790
74781
|
var _a3;
|
|
74791
74782
|
if (!isReady) {
|
|
74792
74783
|
return false;
|
|
@@ -74799,7 +74790,10 @@ const ConnectionsManager = () => {
|
|
|
74799
74790
|
setTestStartedAt((prev) => ({ ...prev, [connectionId]: Date.now() }));
|
|
74800
74791
|
try {
|
|
74801
74792
|
const result = await withTestTimeout(
|
|
74802
|
-
callServerTool("test_connection", {
|
|
74793
|
+
callServerTool("test_connection", {
|
|
74794
|
+
connectionId,
|
|
74795
|
+
...provisionRuntime ? { provisionRuntime: true } : {}
|
|
74796
|
+
}),
|
|
74803
74797
|
CONNECTION_TEST_TIMEOUT_MS
|
|
74804
74798
|
);
|
|
74805
74799
|
if (isStale()) {
|
|
@@ -75105,41 +75099,56 @@ const ConnectionsManager = () => {
|
|
|
75105
75099
|
)
|
|
75106
75100
|
] });
|
|
75107
75101
|
}
|
|
75108
|
-
if (
|
|
75109
|
-
|
|
75102
|
+
if (statusMsg) {
|
|
75103
|
+
const advice = getOptionalDependencyAdvice(statusMsg);
|
|
75104
|
+
if (advice) {
|
|
75105
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "sp-conn-status-message sp-conn-status-message-warning", role: "alert", children: [
|
|
75106
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "sp-conn-warning-content", children: [
|
|
75107
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "sp-conn-warning-title", children: advice.title }),
|
|
75108
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "sp-conn-warning-guidance", children: advice.guidance }),
|
|
75109
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("details", { className: "sp-conn-warning-details", children: [
|
|
75110
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("summary", { children: "Technical details" }),
|
|
75111
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("code", { children: getOptionalDependencyDetails(statusMsg) })
|
|
75112
|
+
] })
|
|
75113
|
+
] }),
|
|
75114
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
75115
|
+
"button",
|
|
75116
|
+
{
|
|
75117
|
+
className: "sp-btn sp-btn-primary sp-conn-status-action",
|
|
75118
|
+
onClick: () => handleInstallOptionalDependency(advice),
|
|
75119
|
+
children: [
|
|
75120
|
+
"Install ",
|
|
75121
|
+
advice.dependency
|
|
75122
|
+
]
|
|
75123
|
+
}
|
|
75124
|
+
)
|
|
75125
|
+
] });
|
|
75126
|
+
}
|
|
75127
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
75128
|
+
"div",
|
|
75129
|
+
{
|
|
75130
|
+
className: `sp-conn-status-message sp-conn-status-message-${status}`,
|
|
75131
|
+
role: status === "error" ? "alert" : "status",
|
|
75132
|
+
children: statusMsg
|
|
75133
|
+
}
|
|
75134
|
+
);
|
|
75110
75135
|
}
|
|
75111
|
-
|
|
75112
|
-
|
|
75113
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "sp-conn-status-message
|
|
75114
|
-
|
|
75115
|
-
|
|
75116
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "sp-conn-warning-guidance", children: advice.guidance }),
|
|
75117
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("details", { className: "sp-conn-warning-details", children: [
|
|
75118
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("summary", { children: "Technical details" }),
|
|
75119
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("code", { children: getOptionalDependencyDetails(statusMsg) })
|
|
75120
|
-
] })
|
|
75121
|
-
] }),
|
|
75122
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
75136
|
+
if (connection.id === "built-in-duckdb" && connection.engineState) {
|
|
75137
|
+
const message = connection.engineState === "ready" ? "Ready" : connection.engineState === "provisioning" ? "Preparing engine… (downloading, one-time)" : connection.engineErrorReason === "disabled" ? "Managed engine is disabled by the rollout setting" : connection.engineErrorMessage || "Unavailable — retrying automatically";
|
|
75138
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "sp-conn-status-message", role: "status", children: [
|
|
75139
|
+
message,
|
|
75140
|
+
connection.engineErrorReason === "disabled" && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
75123
75141
|
"button",
|
|
75124
75142
|
{
|
|
75125
|
-
|
|
75126
|
-
|
|
75127
|
-
|
|
75128
|
-
|
|
75129
|
-
advice.dependency
|
|
75130
|
-
]
|
|
75143
|
+
type: "button",
|
|
75144
|
+
className: "sp-btn sp-conn-status-action",
|
|
75145
|
+
onClick: () => void handleTestConnection(connection.id, true),
|
|
75146
|
+
children: "Download engine"
|
|
75131
75147
|
}
|
|
75132
75148
|
)
|
|
75133
75149
|
] });
|
|
75134
75150
|
}
|
|
75135
|
-
return
|
|
75136
|
-
"div",
|
|
75137
|
-
{
|
|
75138
|
-
className: `sp-conn-status-message sp-conn-status-message-${status}`,
|
|
75139
|
-
role: status === "error" ? "alert" : "status",
|
|
75140
|
-
children: statusMsg
|
|
75141
|
-
}
|
|
75142
|
-
);
|
|
75151
|
+
return null;
|
|
75143
75152
|
};
|
|
75144
75153
|
const renderConnectionForm = () => /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "sp-detail", children: [
|
|
75145
75154
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "sp-conn-detail-header", children: [
|
|
@@ -75244,37 +75253,60 @@ const ConnectionsManager = () => {
|
|
|
75244
75253
|
] });
|
|
75245
75254
|
};
|
|
75246
75255
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "sp-detail", children: [
|
|
75247
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
75248
|
-
|
|
75249
|
-
|
|
75250
|
-
|
|
75251
|
-
|
|
75252
|
-
|
|
75253
|
-
|
|
75254
|
-
|
|
75255
|
-
|
|
75256
|
-
|
|
75257
|
-
|
|
75258
|
-
"
|
|
75259
|
-
|
|
75260
|
-
|
|
75261
|
-
|
|
75262
|
-
|
|
75263
|
-
"
|
|
75264
|
-
|
|
75265
|
-
|
|
75266
|
-
|
|
75267
|
-
|
|
75268
|
-
|
|
75269
|
-
|
|
75270
|
-
|
|
75271
|
-
|
|
75272
|
-
|
|
75273
|
-
|
|
75274
|
-
|
|
75275
|
-
|
|
75276
|
-
|
|
75277
|
-
|
|
75256
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
75257
|
+
"div",
|
|
75258
|
+
{
|
|
75259
|
+
className: "sp-conn-detail-header",
|
|
75260
|
+
style: {
|
|
75261
|
+
display: "flex",
|
|
75262
|
+
justifyContent: "space-between",
|
|
75263
|
+
alignItems: "center",
|
|
75264
|
+
flexWrap: "wrap",
|
|
75265
|
+
gap: "16px",
|
|
75266
|
+
paddingBottom: "16px",
|
|
75267
|
+
borderBottom: "1px solid var(--sp-border)",
|
|
75268
|
+
marginBottom: "16px"
|
|
75269
|
+
},
|
|
75270
|
+
children: [
|
|
75271
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: { display: "flex", alignItems: "center", gap: "12px", flexWrap: "wrap" }, children: [
|
|
75272
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { style: { fontWeight: 600, fontSize: "14px", color: "var(--sp-fg)" }, children: selectedConnection ? "Edit Connection" : "New Connection" }),
|
|
75273
|
+
selectedConnection && /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
75274
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "sp-conn-type-badge", children: selectedConnection.type }),
|
|
75275
|
+
isActive && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "sp-conn-active-badge", children: "Active" }),
|
|
75276
|
+
selectedConnection.builtIn && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "sp-conn-built-in-label", children: "Built-in" })
|
|
75277
|
+
] })
|
|
75278
|
+
] }),
|
|
75279
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
75280
|
+
"div",
|
|
75281
|
+
{
|
|
75282
|
+
className: "sp-conn-detail-actions",
|
|
75283
|
+
style: { display: "flex", gap: "8px", flexWrap: "wrap" },
|
|
75284
|
+
children: [
|
|
75285
|
+
supportsActiveConnection && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
75286
|
+
"button",
|
|
75287
|
+
{
|
|
75288
|
+
className: `sp-btn${isActive ? " sp-btn-primary" : ""}`,
|
|
75289
|
+
onClick: () => handleSetActiveConnection(selectedConnection),
|
|
75290
|
+
disabled: isActive || status === "testing",
|
|
75291
|
+
"aria-label": `Set ${selectedConnection.name} as the active connection for queries`,
|
|
75292
|
+
children: isActive ? "Active" : "Set active"
|
|
75293
|
+
}
|
|
75294
|
+
),
|
|
75295
|
+
!selectedConnection.builtIn && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
75296
|
+
"button",
|
|
75297
|
+
{
|
|
75298
|
+
className: "sp-btn sp-btn-ghost-danger",
|
|
75299
|
+
onClick: () => handleDeleteConnection(selectedConnection.id, selectedConnection.name),
|
|
75300
|
+
"aria-label": `Delete connection ${selectedConnection.name}`,
|
|
75301
|
+
children: "Delete"
|
|
75302
|
+
}
|
|
75303
|
+
)
|
|
75304
|
+
]
|
|
75305
|
+
}
|
|
75306
|
+
)
|
|
75307
|
+
]
|
|
75308
|
+
}
|
|
75309
|
+
),
|
|
75278
75310
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "sp-conn-detail-body", children: [
|
|
75279
75311
|
renderToast(),
|
|
75280
75312
|
modeAwareEditSchema ? /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
@@ -75305,7 +75337,24 @@ const ConnectionsManager = () => {
|
|
|
75305
75337
|
disabled: isLoading,
|
|
75306
75338
|
"aria-label": "Refresh connections",
|
|
75307
75339
|
title: "Refresh",
|
|
75308
|
-
children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
75340
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
75341
|
+
"svg",
|
|
75342
|
+
{
|
|
75343
|
+
width: "14",
|
|
75344
|
+
height: "14",
|
|
75345
|
+
viewBox: "0 0 16 16",
|
|
75346
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
75347
|
+
fill: "currentColor",
|
|
75348
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
75349
|
+
"path",
|
|
75350
|
+
{
|
|
75351
|
+
fillRule: "evenodd",
|
|
75352
|
+
clipRule: "evenodd",
|
|
75353
|
+
d: "M4.681 3H2V2h3.5l.5.5V6H5V4a5 5 0 1 0 4.53-.761l.302-.953A6 6 0 1 1 4.681 3z"
|
|
75354
|
+
}
|
|
75355
|
+
)
|
|
75356
|
+
}
|
|
75357
|
+
)
|
|
75309
75358
|
}
|
|
75310
75359
|
),
|
|
75311
75360
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
@@ -75319,48 +75368,118 @@ const ConnectionsManager = () => {
|
|
|
75319
75368
|
)
|
|
75320
75369
|
] })
|
|
75321
75370
|
] }),
|
|
75322
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
75323
|
-
|
|
75324
|
-
|
|
75325
|
-
|
|
75326
|
-
|
|
75327
|
-
|
|
75328
|
-
|
|
75329
|
-
|
|
75330
|
-
border: "1px solid var(--sp-border)",
|
|
75331
|
-
borderRadius: "6px",
|
|
75332
|
-
padding: "12px",
|
|
75333
|
-
background: "var(--sp-header-bg)",
|
|
75334
|
-
cursor: "pointer",
|
|
75335
|
-
display: "flex",
|
|
75336
|
-
flexDirection: "column",
|
|
75337
|
-
gap: "8px"
|
|
75338
|
-
},
|
|
75339
|
-
onClick: () => {
|
|
75340
|
-
setSelectedConnectionId(c.id);
|
|
75341
|
-
setIsFormOpen(false);
|
|
75342
|
-
},
|
|
75343
|
-
children: [
|
|
75344
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center" }, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: { display: "flex", alignItems: "center", gap: "8px", fontWeight: 600 }, children: [
|
|
75345
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { style: { display: "flex", width: 16, height: 16, alignItems: "center", justifyContent: "center", color: "var(--sp-btn-bg)" }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ConnectorGlyph, { type: c.type }) }),
|
|
75346
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: c.name })
|
|
75347
|
-
] }) }),
|
|
75348
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: { fontSize: "12px", color: "var(--sp-muted-fg)" }, children: c.type.toUpperCase() }),
|
|
75349
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: { display: "flex", alignItems: "center", gap: "6px", fontSize: "11px", marginTop: "4px" }, children: [
|
|
75350
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `sp-dot sp-dot-${status}` }),
|
|
75351
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { style: { color: "var(--sp-muted-fg)" }, children: status === "ok" ? "Connected" : status === "error" ? "Error" : status === "testing" ? "Testing..." : "Disconnected" }),
|
|
75352
|
-
isActive && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "sp-pill", style: { marginLeft: "auto" }, children: "Active" })
|
|
75353
|
-
] })
|
|
75354
|
-
]
|
|
75371
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
75372
|
+
"div",
|
|
75373
|
+
{
|
|
75374
|
+
className: "sp-conn-grid",
|
|
75375
|
+
style: {
|
|
75376
|
+
display: "grid",
|
|
75377
|
+
gridTemplateColumns: "repeat(auto-fill, minmax(260px, 1fr))",
|
|
75378
|
+
gap: "12px"
|
|
75355
75379
|
},
|
|
75356
|
-
c
|
|
75357
|
-
|
|
75358
|
-
|
|
75380
|
+
children: connections.length === 0 ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "sp-conn-empty", style: { gridColumn: "1 / -1" }, children: "No connections configured." }) : connections.map((c) => {
|
|
75381
|
+
const testedStatus = statuses[c.id];
|
|
75382
|
+
const runtimeStatus = c.id === "built-in-duckdb" && c.engineState ? c.engineState === "ready" ? "ok" : c.engineState === "provisioning" ? "testing" : "error" : void 0;
|
|
75383
|
+
const status = testedStatus || runtimeStatus || "unknown";
|
|
75384
|
+
const statusLabel = !testedStatus && c.id === "built-in-duckdb" && c.engineState ? c.engineState === "ready" ? "Ready" : c.engineState === "provisioning" ? "Preparing engine..." : "Unavailable" : status === "ok" ? "Connected" : status === "error" ? "Error" : status === "testing" ? "Testing..." : "Disconnected";
|
|
75385
|
+
const isActive = supportsActiveConnection && activeConnectionId === c.id;
|
|
75386
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
75387
|
+
"div",
|
|
75388
|
+
{
|
|
75389
|
+
className: "sp-conn-card",
|
|
75390
|
+
style: {
|
|
75391
|
+
border: "1px solid var(--sp-border)",
|
|
75392
|
+
borderRadius: "6px",
|
|
75393
|
+
padding: "12px",
|
|
75394
|
+
background: "var(--sp-header-bg)",
|
|
75395
|
+
cursor: "pointer",
|
|
75396
|
+
display: "flex",
|
|
75397
|
+
flexDirection: "column",
|
|
75398
|
+
gap: "8px"
|
|
75399
|
+
},
|
|
75400
|
+
onClick: () => {
|
|
75401
|
+
setSelectedConnectionId(c.id);
|
|
75402
|
+
setIsFormOpen(false);
|
|
75403
|
+
},
|
|
75404
|
+
children: [
|
|
75405
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
75406
|
+
"div",
|
|
75407
|
+
{
|
|
75408
|
+
style: { display: "flex", justifyContent: "space-between", alignItems: "center" },
|
|
75409
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
75410
|
+
"div",
|
|
75411
|
+
{
|
|
75412
|
+
style: { display: "flex", alignItems: "center", gap: "8px", fontWeight: 600 },
|
|
75413
|
+
children: [
|
|
75414
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
75415
|
+
"span",
|
|
75416
|
+
{
|
|
75417
|
+
style: {
|
|
75418
|
+
display: "flex",
|
|
75419
|
+
width: 16,
|
|
75420
|
+
height: 16,
|
|
75421
|
+
alignItems: "center",
|
|
75422
|
+
justifyContent: "center",
|
|
75423
|
+
color: "var(--sp-btn-bg)"
|
|
75424
|
+
},
|
|
75425
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(ConnectorGlyph, { type: c.type })
|
|
75426
|
+
}
|
|
75427
|
+
),
|
|
75428
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: c.name })
|
|
75429
|
+
]
|
|
75430
|
+
}
|
|
75431
|
+
)
|
|
75432
|
+
}
|
|
75433
|
+
),
|
|
75434
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: { fontSize: "12px", color: "var(--sp-muted-fg)" }, children: c.type.toUpperCase() }),
|
|
75435
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
75436
|
+
"div",
|
|
75437
|
+
{
|
|
75438
|
+
style: {
|
|
75439
|
+
display: "flex",
|
|
75440
|
+
alignItems: "center",
|
|
75441
|
+
gap: "6px",
|
|
75442
|
+
fontSize: "11px",
|
|
75443
|
+
marginTop: "4px"
|
|
75444
|
+
},
|
|
75445
|
+
children: [
|
|
75446
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `sp-dot sp-dot-${status}` }),
|
|
75447
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { style: { color: "var(--sp-muted-fg)" }, children: statusLabel }),
|
|
75448
|
+
isActive && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "sp-pill", style: { marginLeft: "auto" }, children: "Active" })
|
|
75449
|
+
]
|
|
75450
|
+
}
|
|
75451
|
+
)
|
|
75452
|
+
]
|
|
75453
|
+
},
|
|
75454
|
+
c.id
|
|
75455
|
+
);
|
|
75456
|
+
})
|
|
75457
|
+
}
|
|
75458
|
+
)
|
|
75359
75459
|
] });
|
|
75360
75460
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "sp-conn-page", children: [
|
|
75361
75461
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "sp-conn", children: !isFormOpen && !selectedConnectionId ? renderGrid() : /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
75362
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
75363
|
-
|
|
75462
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
75463
|
+
"button",
|
|
75464
|
+
{
|
|
75465
|
+
className: "sp-btn",
|
|
75466
|
+
onClick: closeForm,
|
|
75467
|
+
style: { marginBottom: 12, alignSelf: "flex-start" },
|
|
75468
|
+
children: "← Back to connections"
|
|
75469
|
+
}
|
|
75470
|
+
),
|
|
75471
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
75472
|
+
"section",
|
|
75473
|
+
{
|
|
75474
|
+
"aria-label": "Connection details",
|
|
75475
|
+
style: {
|
|
75476
|
+
background: "var(--sp-bg)",
|
|
75477
|
+
border: "1px solid var(--sp-border)",
|
|
75478
|
+
borderRadius: 6
|
|
75479
|
+
},
|
|
75480
|
+
children: isFormOpen ? renderConnectionForm() : renderConnectionDetails()
|
|
75481
|
+
}
|
|
75482
|
+
)
|
|
75364
75483
|
] }) }),
|
|
75365
75484
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
75366
75485
|
ConfirmDialog,
|