@tangle-network/sandbox-ui 0.113.4 → 0.113.5
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/README.md +3 -1
- package/dist/chat.js +1 -1
- package/dist/{chunk-JZCRK2BJ.js → chunk-3KBNPQQF.js} +117 -44
- package/dist/chunk-ANSC5AFC.js +314 -0
- package/dist/{chunk-XFEJ66AG.js → chunk-NNARED4T.js} +165 -68
- package/dist/{chunk-LDAKIKTV.js → chunk-SX344CDB.js} +100 -54
- package/dist/{chunk-EKYA6AFY.js → chunk-TADGS4Q7.js} +15 -7
- package/dist/{chunk-PZVUIUUW.js → chunk-ULPLRBMF.js} +8 -2
- package/dist/{chunk-TK46XFLM.js → chunk-X3YXP7FG.js} +10 -0
- package/dist/connectors.js +2 -1
- package/dist/dashboard.d.ts +8 -8
- package/dist/dashboard.js +2 -2
- package/dist/files.d.ts +1 -1
- package/dist/files.js +9 -3
- package/dist/globals.css +369 -129
- package/dist/index.d.ts +5 -4
- package/dist/index.js +26 -8
- package/dist/integrations.js +10 -7
- package/dist/logo-DiAjq759.d.ts +15 -0
- package/dist/pages.js +69 -46
- package/dist/primitives.d.ts +3 -2
- package/dist/primitives.js +3 -1
- package/dist/styles.css +369 -129
- package/dist/tokens.css +37 -0
- package/dist/utils.d.ts +1 -1
- package/dist/utils.js +11 -1
- package/dist/workbench.d.ts +6 -3
- package/dist/workbench.js +4 -4
- package/dist/workspace.js +1 -1
- package/package.json +5 -5
- package/dist/chunk-2XPJ2XF7.js +0 -345
- package/dist/logo-CaIvk3J1.d.ts +0 -18
package/dist/pages.js
CHANGED
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
SelectValue,
|
|
24
24
|
Switch,
|
|
25
25
|
Textarea
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-ANSC5AFC.js";
|
|
27
27
|
import "./chunk-RQZRXKMR.js";
|
|
28
28
|
import {
|
|
29
29
|
cn
|
|
@@ -493,6 +493,7 @@ import {
|
|
|
493
493
|
// src/pages/add-ssh-key-dialog.tsx
|
|
494
494
|
import * as React2 from "react";
|
|
495
495
|
import { Loader2 } from "lucide-react";
|
|
496
|
+
import { focusField } from "@tangle-network/ui/utils";
|
|
496
497
|
import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
497
498
|
var NAME_INPUT_ID = "add-ssh-key-name";
|
|
498
499
|
var KEY_INPUT_ID = "add-ssh-key-public-key";
|
|
@@ -585,7 +586,7 @@ function AddSshKeyDialog({
|
|
|
585
586
|
placeholder: "My laptop",
|
|
586
587
|
autoComplete: "off",
|
|
587
588
|
"aria-invalid": errors.name ? true : void 0,
|
|
588
|
-
className:
|
|
589
|
+
className: `w-full rounded-md border bg-surface-container-low px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground ${focusField}`
|
|
589
590
|
}
|
|
590
591
|
),
|
|
591
592
|
errors.name && /* @__PURE__ */ jsx3("p", { className: "text-xs text-destructive", children: errors.name })
|
|
@@ -610,7 +611,7 @@ function AddSshKeyDialog({
|
|
|
610
611
|
autoComplete: "off",
|
|
611
612
|
spellCheck: false,
|
|
612
613
|
"aria-invalid": errors.publicKey ? true : void 0,
|
|
613
|
-
className:
|
|
614
|
+
className: `min-h-24 w-full resize-y rounded-md border bg-surface-container-low px-3 py-2 font-mono text-xs text-foreground placeholder:text-muted-foreground ${focusField}`
|
|
614
615
|
}
|
|
615
616
|
),
|
|
616
617
|
errors.publicKey && /* @__PURE__ */ jsx3("p", { className: "text-xs text-destructive", children: errors.publicKey })
|
|
@@ -647,6 +648,7 @@ function AddSshKeyDialog({
|
|
|
647
648
|
}
|
|
648
649
|
|
|
649
650
|
// src/pages/provisioning-wizard.tsx
|
|
651
|
+
import { focusRing } from "@tangle-network/ui/utils";
|
|
650
652
|
import { jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
651
653
|
var VALID_DRIVERS = /* @__PURE__ */ new Set([
|
|
652
654
|
"docker",
|
|
@@ -913,6 +915,7 @@ function EnvVarValueInput({
|
|
|
913
915
|
Input,
|
|
914
916
|
{
|
|
915
917
|
type: revealed ? "text" : "password",
|
|
918
|
+
"aria-label": "Environment variable value",
|
|
916
919
|
value,
|
|
917
920
|
onChange: (e) => onChange(e.target.value),
|
|
918
921
|
autoComplete: "off",
|
|
@@ -927,7 +930,7 @@ function EnvVarValueInput({
|
|
|
927
930
|
onClick: () => setRevealed((s) => !s),
|
|
928
931
|
"aria-label": revealed ? "Hide value" : "Show value",
|
|
929
932
|
"aria-pressed": revealed,
|
|
930
|
-
className:
|
|
933
|
+
className: `absolute right-2 top-1/2 -translate-y-1/2 rounded p-1 text-muted-foreground hover:text-foreground ${focusRing}`,
|
|
931
934
|
children: revealed ? /* @__PURE__ */ jsx4(EyeOff, { className: "h-4 w-4" }) : /* @__PURE__ */ jsx4(Eye, { className: "h-4 w-4" })
|
|
932
935
|
}
|
|
933
936
|
)
|
|
@@ -947,6 +950,7 @@ function ProvisioningWizard({
|
|
|
947
950
|
pricingRates,
|
|
948
951
|
planTiers
|
|
949
952
|
}) {
|
|
953
|
+
const fieldIdPrefix = React3.useId();
|
|
950
954
|
const cpuMax = Math.max(CPU_MIN, resourceLimits?.cpuMax ?? CPU_MAX);
|
|
951
955
|
const ramMax = Math.max(RAM_MIN, resourceLimits?.ramMaxGB ?? RAM_MAX);
|
|
952
956
|
const storageMax = Math.max(
|
|
@@ -1284,6 +1288,7 @@ function ProvisioningWizard({
|
|
|
1284
1288
|
] }),
|
|
1285
1289
|
/* @__PURE__ */ jsx4("div", { className: "space-y-4", children: [
|
|
1286
1290
|
{
|
|
1291
|
+
id: "cpu",
|
|
1287
1292
|
label: "Compute Cores (CPU)",
|
|
1288
1293
|
value: cpuCores,
|
|
1289
1294
|
setter: setCpuCores,
|
|
@@ -1293,6 +1298,7 @@ function ProvisioningWizard({
|
|
|
1293
1298
|
unit: "vCPU"
|
|
1294
1299
|
},
|
|
1295
1300
|
{
|
|
1301
|
+
id: "ram",
|
|
1296
1302
|
label: "Memory (RAM)",
|
|
1297
1303
|
value: ramGB,
|
|
1298
1304
|
setter: setRamGB,
|
|
@@ -1302,6 +1308,7 @@ function ProvisioningWizard({
|
|
|
1302
1308
|
unit: "GB"
|
|
1303
1309
|
},
|
|
1304
1310
|
{
|
|
1311
|
+
id: "storage",
|
|
1305
1312
|
label: "Ephemeral Storage",
|
|
1306
1313
|
value: storageGB,
|
|
1307
1314
|
setter: setStorageGB,
|
|
@@ -1311,16 +1318,17 @@ function ProvisioningWizard({
|
|
|
1311
1318
|
unit: "GB"
|
|
1312
1319
|
}
|
|
1313
1320
|
].map(
|
|
1314
|
-
({ label, value, setter, min, max, step: s, unit }) => {
|
|
1321
|
+
({ id, label, value, setter, min, max, step: s, unit }) => {
|
|
1315
1322
|
const displayUnit = unit === "vCPU" ? `${value} vCPU${value === 1 ? "" : "s"}` : `${value}${unit}`;
|
|
1316
1323
|
return /* @__PURE__ */ jsxs4("div", { children: [
|
|
1317
1324
|
/* @__PURE__ */ jsxs4("div", { className: "flex justify-between items-end pb-1 mb-1.5", children: [
|
|
1318
|
-
/* @__PURE__ */ jsx4("label", { className: FIELD_LABEL_CLASS, children: label }),
|
|
1325
|
+
/* @__PURE__ */ jsx4("label", { htmlFor: `${fieldIdPrefix}-${id}`, className: FIELD_LABEL_CLASS, children: label }),
|
|
1319
1326
|
/* @__PURE__ */ jsx4("span", { className: "text-sm font-semibold text-foreground tabular-nums", children: displayUnit })
|
|
1320
1327
|
] }),
|
|
1321
1328
|
/* @__PURE__ */ jsx4(
|
|
1322
1329
|
"input",
|
|
1323
1330
|
{
|
|
1331
|
+
id: `${fieldIdPrefix}-${id}`,
|
|
1324
1332
|
type: "range",
|
|
1325
1333
|
min,
|
|
1326
1334
|
max,
|
|
@@ -1353,20 +1361,23 @@ function ProvisioningWizard({
|
|
|
1353
1361
|
{
|
|
1354
1362
|
type: "button",
|
|
1355
1363
|
onClick: () => setShowAdvanced(!showAdvanced),
|
|
1356
|
-
|
|
1364
|
+
"aria-expanded": showAdvanced,
|
|
1365
|
+
"aria-controls": `${fieldIdPrefix}-advanced`,
|
|
1366
|
+
className: `flex items-center gap-2 text-muted-foreground hover:text-foreground transition-colors text-sm font-medium ${focusRing}`,
|
|
1357
1367
|
children: [
|
|
1358
1368
|
/* @__PURE__ */ jsx4(Settings, { className: "w-4 h-4" }),
|
|
1359
1369
|
showAdvanced ? "Hide Advanced Options" : "Show Advanced Options"
|
|
1360
1370
|
]
|
|
1361
1371
|
}
|
|
1362
1372
|
),
|
|
1363
|
-
|
|
1373
|
+
/* @__PURE__ */ jsxs4("div", { id: `${fieldIdPrefix}-advanced`, hidden: !showAdvanced, className: "mt-4 space-y-4", children: [
|
|
1364
1374
|
/* @__PURE__ */ jsxs4("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [
|
|
1365
1375
|
/* @__PURE__ */ jsxs4("div", { children: [
|
|
1366
|
-
/* @__PURE__ */ jsx4("label", { className: cn(FIELD_LABEL_CLASS, "mb-1.5"), children: "Workspace Name" }),
|
|
1376
|
+
/* @__PURE__ */ jsx4("label", { htmlFor: `${fieldIdPrefix}-name`, className: cn(FIELD_LABEL_CLASS, "mb-1.5"), children: "Workspace Name" }),
|
|
1367
1377
|
/* @__PURE__ */ jsx4(
|
|
1368
1378
|
Input,
|
|
1369
1379
|
{
|
|
1380
|
+
id: `${fieldIdPrefix}-name`,
|
|
1370
1381
|
type: "text",
|
|
1371
1382
|
value: name,
|
|
1372
1383
|
onChange: (e) => setName(e.target.value),
|
|
@@ -1377,7 +1388,7 @@ function ProvisioningWizard({
|
|
|
1377
1388
|
)
|
|
1378
1389
|
] }),
|
|
1379
1390
|
/* @__PURE__ */ jsxs4("div", { children: [
|
|
1380
|
-
/* @__PURE__ */ jsx4("label", { className: cn(FIELD_LABEL_CLASS, "mb-1.5"), children: "Virtualization Driver" }),
|
|
1391
|
+
/* @__PURE__ */ jsx4("label", { htmlFor: `${fieldIdPrefix}-driver`, className: cn(FIELD_LABEL_CLASS, "mb-1.5"), children: "Virtualization Driver" }),
|
|
1381
1392
|
/* @__PURE__ */ jsxs4(
|
|
1382
1393
|
Select,
|
|
1383
1394
|
{
|
|
@@ -1389,7 +1400,7 @@ function ProvisioningWizard({
|
|
|
1389
1400
|
);
|
|
1390
1401
|
},
|
|
1391
1402
|
children: [
|
|
1392
|
-
/* @__PURE__ */ jsx4(SelectTrigger, { className: "h-9", children: /* @__PURE__ */ jsx4(SelectValue, {}) }),
|
|
1403
|
+
/* @__PURE__ */ jsx4(SelectTrigger, { id: `${fieldIdPrefix}-driver`, className: "h-9", children: /* @__PURE__ */ jsx4(SelectValue, {}) }),
|
|
1393
1404
|
/* @__PURE__ */ jsxs4(SelectContent, { children: [
|
|
1394
1405
|
/* @__PURE__ */ jsx4(SelectItem, { value: "docker", children: "Docker container (Default)" }),
|
|
1395
1406
|
/* @__PURE__ */ jsx4(SelectItem, { value: "firecracker", children: "Firecracker microVM (Secure)" }),
|
|
@@ -1401,10 +1412,11 @@ function ProvisioningWizard({
|
|
|
1401
1412
|
] })
|
|
1402
1413
|
] }),
|
|
1403
1414
|
/* @__PURE__ */ jsxs4("div", { children: [
|
|
1404
|
-
/* @__PURE__ */ jsx4("label", { className: cn(FIELD_LABEL_CLASS, "mb-1.5"), children: "Git Repository URL" }),
|
|
1415
|
+
/* @__PURE__ */ jsx4("label", { htmlFor: `${fieldIdPrefix}-git-url`, className: cn(FIELD_LABEL_CLASS, "mb-1.5"), children: "Git Repository URL" }),
|
|
1405
1416
|
/* @__PURE__ */ jsx4(
|
|
1406
1417
|
Input,
|
|
1407
1418
|
{
|
|
1419
|
+
id: `${fieldIdPrefix}-git-url`,
|
|
1408
1420
|
type: "text",
|
|
1409
1421
|
value: gitUrl,
|
|
1410
1422
|
onChange: (e) => setGitUrl(e.target.value),
|
|
@@ -1435,6 +1447,7 @@ function ProvisioningWizard({
|
|
|
1435
1447
|
Input,
|
|
1436
1448
|
{
|
|
1437
1449
|
type: "text",
|
|
1450
|
+
"aria-label": "Environment variable name",
|
|
1438
1451
|
value: env.key,
|
|
1439
1452
|
onChange: (e) => setEnvVars(
|
|
1440
1453
|
envVars.map(
|
|
@@ -1496,7 +1509,7 @@ function ProvisioningWizard({
|
|
|
1496
1509
|
(id) => id !== script.id
|
|
1497
1510
|
) : [...prev, script.id]
|
|
1498
1511
|
),
|
|
1499
|
-
className:
|
|
1512
|
+
className: `mt-0.5 h-4 w-4 rounded border-[var(--md3-outline-variant)] text-primary ${focusRing}`
|
|
1500
1513
|
}
|
|
1501
1514
|
),
|
|
1502
1515
|
/* @__PURE__ */ jsxs4("div", { className: "flex-1 min-w-0", children: [
|
|
@@ -2549,6 +2562,7 @@ function parseEnvText(text) {
|
|
|
2549
2562
|
}
|
|
2550
2563
|
|
|
2551
2564
|
// src/pages/secrets-page.tsx
|
|
2565
|
+
import { focusField as focusField2 } from "@tangle-network/ui/utils";
|
|
2552
2566
|
import { Fragment as Fragment2, jsx as jsx7, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
2553
2567
|
var MAX_IMPORT_FILE_BYTES = 256 * 1024;
|
|
2554
2568
|
function SecretsPage({ apiClient, className, teamSecretsHint }) {
|
|
@@ -2738,7 +2752,7 @@ function SecretsPage({ apiClient, className, teamSecretsHint }) {
|
|
|
2738
2752
|
{
|
|
2739
2753
|
type: "button",
|
|
2740
2754
|
onClick: () => setIsImportOpen(true),
|
|
2741
|
-
className: "inline-flex items-center gap-
|
|
2755
|
+
className: "inline-flex items-center gap-1.5 whitespace-nowrap rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container px-3 py-2.5 text-sm font-semibold text-foreground transition-colors hover:bg-surface-container-high active:scale-[0.97] sm:gap-2 sm:px-4",
|
|
2742
2756
|
children: [
|
|
2743
2757
|
/* @__PURE__ */ jsx7(Upload, { className: "h-4 w-4" }),
|
|
2744
2758
|
"Import .env"
|
|
@@ -2750,7 +2764,7 @@ function SecretsPage({ apiClient, className, teamSecretsHint }) {
|
|
|
2750
2764
|
{
|
|
2751
2765
|
type: "button",
|
|
2752
2766
|
onClick: () => setIsCreateOpen(true),
|
|
2753
|
-
className: "inline-flex items-center gap-
|
|
2767
|
+
className: "inline-flex items-center gap-1.5 whitespace-nowrap rounded-lg border border-[var(--border-accent,transparent)] bg-[var(--btn-primary-bg)] px-3 py-2.5 text-sm font-semibold text-[var(--btn-primary-text)] transition-colors hover:bg-[var(--btn-primary-hover)] active:scale-[0.97] sm:gap-2 sm:px-5",
|
|
2754
2768
|
children: [
|
|
2755
2769
|
/* @__PURE__ */ jsx7(Plus3, { className: "h-4 w-4" }),
|
|
2756
2770
|
"New Secret"
|
|
@@ -2760,14 +2774,16 @@ function SecretsPage({ apiClient, className, teamSecretsHint }) {
|
|
|
2760
2774
|
] })
|
|
2761
2775
|
}
|
|
2762
2776
|
),
|
|
2763
|
-
teamSecretsHint && /* @__PURE__ */ jsxs7("div", { className: "flex items-center gap-3 rounded-lg border border-[var(--md3-outline-variant)] bg-[var(--accent-surface-soft)]/40 px-4 py-3", children: [
|
|
2764
|
-
/* @__PURE__ */
|
|
2765
|
-
|
|
2766
|
-
/* @__PURE__ */
|
|
2767
|
-
|
|
2768
|
-
"
|
|
2769
|
-
|
|
2770
|
-
|
|
2777
|
+
teamSecretsHint && /* @__PURE__ */ jsxs7("div", { className: "flex flex-wrap items-center gap-3 rounded-lg border border-[var(--md3-outline-variant)] bg-[var(--accent-surface-soft)]/40 px-4 py-3", children: [
|
|
2778
|
+
/* @__PURE__ */ jsxs7("div", { className: "flex min-w-[min(100%,18rem)] flex-1 items-start gap-3", children: [
|
|
2779
|
+
/* @__PURE__ */ jsx7(Users, { className: "mt-0.5 h-5 w-5 shrink-0 text-[var(--accent-text)]", "aria-hidden": "true" }),
|
|
2780
|
+
/* @__PURE__ */ jsxs7("div", { className: "min-w-0 text-sm", children: [
|
|
2781
|
+
/* @__PURE__ */ jsx7("p", { className: "font-semibold text-foreground", children: "Setting up secrets for a team?" }),
|
|
2782
|
+
/* @__PURE__ */ jsxs7("p", { className: "mt-0.5 text-xs text-muted-foreground", children: [
|
|
2783
|
+
"Secrets here are ",
|
|
2784
|
+
/* @__PURE__ */ jsx7("strong", { children: "personal" }),
|
|
2785
|
+
" and only available in sandboxes you create. Add shared credentials on the team page."
|
|
2786
|
+
] })
|
|
2771
2787
|
] })
|
|
2772
2788
|
] }),
|
|
2773
2789
|
/* @__PURE__ */ jsxs7(
|
|
@@ -2775,7 +2791,7 @@ function SecretsPage({ apiClient, className, teamSecretsHint }) {
|
|
|
2775
2791
|
{
|
|
2776
2792
|
type: "button",
|
|
2777
2793
|
onClick: teamSecretsHint.onNavigate,
|
|
2778
|
-
className: "inline-flex shrink-0 items-center gap-1 rounded-md border border-[var(--md3-outline-variant)] bg-surface-container px-3 py-1.5 text-xs font-semibold text-foreground hover:bg-surface-container-high
|
|
2794
|
+
className: "inline-flex w-full shrink-0 items-center justify-center gap-1 rounded-md border border-[var(--md3-outline-variant)] bg-surface-container px-3 py-1.5 text-xs font-semibold text-foreground transition-colors hover:bg-surface-container-high sm:w-auto",
|
|
2779
2795
|
children: [
|
|
2780
2796
|
teamSecretsHint.label ?? "Manage team secrets",
|
|
2781
2797
|
/* @__PURE__ */ jsx7(ArrowRight, { className: "h-3 w-3", "aria-hidden": "true" })
|
|
@@ -2843,7 +2859,7 @@ function SecretsPage({ apiClient, className, teamSecretsHint }) {
|
|
|
2843
2859
|
onChange: (e) => setNewName(e.target.value.toUpperCase().replace(/[^A-Z0-9_]/g, "_")),
|
|
2844
2860
|
placeholder: "MY_SECRET_KEY",
|
|
2845
2861
|
autoComplete: "off",
|
|
2846
|
-
className:
|
|
2862
|
+
className: `w-full rounded-md border bg-surface-container-low px-3 py-2.5 text-sm font-mono text-foreground placeholder:text-muted-foreground ${focusField2}`
|
|
2847
2863
|
}
|
|
2848
2864
|
)
|
|
2849
2865
|
] }),
|
|
@@ -2860,7 +2876,7 @@ function SecretsPage({ apiClient, className, teamSecretsHint }) {
|
|
|
2860
2876
|
onChange: (e) => setNewValue(e.target.value),
|
|
2861
2877
|
placeholder: "Enter secret value...",
|
|
2862
2878
|
autoComplete: "new-password",
|
|
2863
|
-
className:
|
|
2879
|
+
className: `w-full rounded-md border bg-surface-container-low px-3 py-2.5 pr-10 text-sm font-mono text-foreground placeholder:text-muted-foreground ${focusField2}`
|
|
2864
2880
|
}
|
|
2865
2881
|
),
|
|
2866
2882
|
/* @__PURE__ */ jsx7(
|
|
@@ -2968,7 +2984,7 @@ function SecretsPage({ apiClient, className, teamSecretsHint }) {
|
|
|
2968
2984
|
onChange: (e) => setImportText(e.target.value),
|
|
2969
2985
|
rows: 6,
|
|
2970
2986
|
spellCheck: false,
|
|
2971
|
-
className:
|
|
2987
|
+
className: `w-full rounded-md border bg-surface-container-low px-3 py-2 font-mono text-xs text-foreground placeholder:text-muted-foreground ${focusField2}`
|
|
2972
2988
|
}
|
|
2973
2989
|
),
|
|
2974
2990
|
/* @__PURE__ */ jsxs7("p", { className: "text-[11px] text-muted-foreground", children: [
|
|
@@ -3027,7 +3043,7 @@ function SecretsPage({ apiClient, className, teamSecretsHint }) {
|
|
|
3027
3043
|
value: row.key,
|
|
3028
3044
|
onChange: (e) => updateRowKey(index, e.target.value),
|
|
3029
3045
|
disabled: isImportSaving,
|
|
3030
|
-
className:
|
|
3046
|
+
className: `w-2/5 rounded border bg-surface-container-low px-2 py-1.5 font-mono text-xs text-foreground disabled:opacity-60 ${focusField2}`
|
|
3031
3047
|
}
|
|
3032
3048
|
),
|
|
3033
3049
|
/* @__PURE__ */ jsx7(
|
|
@@ -3038,7 +3054,7 @@ function SecretsPage({ apiClient, className, teamSecretsHint }) {
|
|
|
3038
3054
|
value: row.value,
|
|
3039
3055
|
onChange: (e) => updateRowValue(index, e.target.value),
|
|
3040
3056
|
disabled: isImportSaving,
|
|
3041
|
-
className:
|
|
3057
|
+
className: `w-2/5 rounded border bg-surface-container-low px-2 py-1.5 font-mono text-xs text-foreground disabled:opacity-60 ${focusField2}`
|
|
3042
3058
|
}
|
|
3043
3059
|
),
|
|
3044
3060
|
/* @__PURE__ */ jsxs7("div", { className: "flex w-1/5 flex-col items-end gap-1", children: [
|
|
@@ -3154,19 +3170,25 @@ function SecretsPage({ apiClient, className, teamSecretsHint }) {
|
|
|
3154
3170
|
)
|
|
3155
3171
|
] }) : /* @__PURE__ */ jsxs7("table", { className: "w-full text-left border-collapse", children: [
|
|
3156
3172
|
/* @__PURE__ */ jsx7("thead", { children: /* @__PURE__ */ jsxs7("tr", { className: "bg-surface-container-high border-b border-[var(--md3-outline-variant)]", children: [
|
|
3157
|
-
/* @__PURE__ */ jsx7("th", { className: "px-
|
|
3158
|
-
/* @__PURE__ */ jsx7("th", { className: "px-6 py-4 text-[10px] font-bold uppercase tracking-widest text-muted-foreground", children: "Encrypted Value" }),
|
|
3159
|
-
/* @__PURE__ */ jsx7("th", { className: "px-6 py-4 text-[10px] font-bold uppercase tracking-widest text-muted-foreground
|
|
3160
|
-
/* @__PURE__ */ jsx7("th", { className: "px-6 py-4
|
|
3173
|
+
/* @__PURE__ */ jsx7("th", { scope: "col", className: "px-4 py-3 text-[10px] font-bold uppercase tracking-widest text-muted-foreground sm:px-6 sm:py-4", children: "Secret Name" }),
|
|
3174
|
+
/* @__PURE__ */ jsx7("th", { scope: "col", className: "hidden px-6 py-4 text-[10px] font-bold uppercase tracking-widest text-muted-foreground sm:table-cell", children: "Encrypted Value" }),
|
|
3175
|
+
/* @__PURE__ */ jsx7("th", { scope: "col", className: "hidden px-6 py-4 text-right text-[10px] font-bold uppercase tracking-widest text-muted-foreground sm:table-cell", children: "Created" }),
|
|
3176
|
+
/* @__PURE__ */ jsx7("th", { scope: "col", "aria-label": "Actions", className: "w-12 px-3 py-3 sm:px-6 sm:py-4" })
|
|
3161
3177
|
] }) }),
|
|
3162
3178
|
/* @__PURE__ */ jsx7("tbody", { className: "divide-y divide-border", children: secrets.map((secret) => /* @__PURE__ */ jsxs7("tr", { className: "hover:bg-surface-container-high transition-colors", children: [
|
|
3163
|
-
/* @__PURE__ */ jsx7("td", { className: "px-6 py-4", children: /* @__PURE__ */ jsxs7("div", { className: "flex items-center gap-3", children: [
|
|
3164
|
-
/* @__PURE__ */ jsx7(Key, { className: "h-4 w-4 text-muted-foreground" }),
|
|
3165
|
-
/* @__PURE__ */
|
|
3179
|
+
/* @__PURE__ */ jsx7("td", { className: "px-4 py-3 sm:px-6 sm:py-4", children: /* @__PURE__ */ jsxs7("div", { className: "flex items-center gap-3", children: [
|
|
3180
|
+
/* @__PURE__ */ jsx7(Key, { className: "h-4 w-4 shrink-0 text-muted-foreground" }),
|
|
3181
|
+
/* @__PURE__ */ jsxs7("div", { className: "min-w-0", children: [
|
|
3182
|
+
/* @__PURE__ */ jsx7("span", { className: "break-all font-mono text-sm font-bold text-foreground sm:break-normal", children: secret.name }),
|
|
3183
|
+
/* @__PURE__ */ jsxs7("span", { className: "mt-1 block text-xs text-muted-foreground sm:hidden", children: [
|
|
3184
|
+
"Created ",
|
|
3185
|
+
formatDate(secret.createdAt)
|
|
3186
|
+
] })
|
|
3187
|
+
] })
|
|
3166
3188
|
] }) }),
|
|
3167
|
-
/* @__PURE__ */ jsx7("td", { className: "px-6 py-4", children: /* @__PURE__ */ jsx7("code", { className: "text-xs font-mono text-muted-foreground bg-surface-container-high px-2 py-1 rounded", children: "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022" }) }),
|
|
3168
|
-
/* @__PURE__ */ jsx7("td", { className: "px-6 py-4 text-right", children: /* @__PURE__ */ jsx7("span", { className: "text-xs text-muted-foreground", children: formatDate(secret.createdAt) }) }),
|
|
3169
|
-
/* @__PURE__ */ jsx7("td", { className: "px-6 py-4", children: /* @__PURE__ */ jsx7(
|
|
3189
|
+
/* @__PURE__ */ jsx7("td", { className: "hidden px-6 py-4 sm:table-cell", children: /* @__PURE__ */ jsx7("code", { className: "text-xs font-mono text-muted-foreground bg-surface-container-high px-2 py-1 rounded", children: "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022" }) }),
|
|
3190
|
+
/* @__PURE__ */ jsx7("td", { className: "hidden px-6 py-4 text-right sm:table-cell", children: /* @__PURE__ */ jsx7("span", { className: "text-xs text-muted-foreground", children: formatDate(secret.createdAt) }) }),
|
|
3191
|
+
/* @__PURE__ */ jsx7("td", { className: "px-3 py-3 sm:px-6 sm:py-4", children: /* @__PURE__ */ jsx7(
|
|
3170
3192
|
"button",
|
|
3171
3193
|
{
|
|
3172
3194
|
type: "button",
|
|
@@ -3252,6 +3274,7 @@ import {
|
|
|
3252
3274
|
DialogHeader as DialogHeader4,
|
|
3253
3275
|
DialogTitle as DialogTitle4
|
|
3254
3276
|
} from "@tangle-network/ui/primitives";
|
|
3277
|
+
import { focusField as focusField3 } from "@tangle-network/ui/utils";
|
|
3255
3278
|
import { jsx as jsx9, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
3256
3279
|
var SCRIPT_TYPE_META = {
|
|
3257
3280
|
bash: {
|
|
@@ -3703,7 +3726,7 @@ function StartupScriptsPage({ apiClient, className }) {
|
|
|
3703
3726
|
onChange: (e) => setFormData((p) => ({ ...p, name: e.target.value })),
|
|
3704
3727
|
placeholder: "Install Claude Code",
|
|
3705
3728
|
maxLength: 64,
|
|
3706
|
-
className:
|
|
3729
|
+
className: `mt-1.5 w-full rounded-lg border bg-surface-container-low px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground ${focusField3}`
|
|
3707
3730
|
}
|
|
3708
3731
|
)
|
|
3709
3732
|
] }),
|
|
@@ -3717,7 +3740,7 @@ function StartupScriptsPage({ apiClient, className }) {
|
|
|
3717
3740
|
onChange: (e) => setFormData((p) => ({ ...p, description: e.target.value })),
|
|
3718
3741
|
placeholder: "Sets up Claude Code with authentication",
|
|
3719
3742
|
maxLength: 256,
|
|
3720
|
-
className:
|
|
3743
|
+
className: `mt-1.5 w-full rounded-lg border bg-surface-container-low px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground ${focusField3}`
|
|
3721
3744
|
}
|
|
3722
3745
|
)
|
|
3723
3746
|
] }),
|
|
@@ -3754,7 +3777,7 @@ function StartupScriptsPage({ apiClient, className }) {
|
|
|
3754
3777
|
onChange: (e) => setFormData((p) => ({ ...p, content: e.target.value })),
|
|
3755
3778
|
rows: 12,
|
|
3756
3779
|
spellCheck: false,
|
|
3757
|
-
className:
|
|
3780
|
+
className: `mt-1.5 w-full rounded-lg border bg-surface-container-low px-4 py-3 font-mono text-sm text-foreground placeholder:text-muted-foreground resize-y ${focusField3}`
|
|
3758
3781
|
}
|
|
3759
3782
|
),
|
|
3760
3783
|
/* @__PURE__ */ jsxs9("p", { className: "mt-1 text-xs text-muted-foreground", children: [
|
|
@@ -3842,7 +3865,7 @@ function StartupScriptsPage({ apiClient, className }) {
|
|
|
3842
3865
|
placeholder: "Any",
|
|
3843
3866
|
min: 0.5,
|
|
3844
3867
|
step: 0.5,
|
|
3845
|
-
className:
|
|
3868
|
+
className: `mt-1.5 w-full rounded-lg border bg-surface-container-low px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground ${focusField3}`
|
|
3846
3869
|
}
|
|
3847
3870
|
)
|
|
3848
3871
|
] }),
|
|
@@ -3863,7 +3886,7 @@ function StartupScriptsPage({ apiClient, className }) {
|
|
|
3863
3886
|
placeholder: "Any",
|
|
3864
3887
|
min: 1,
|
|
3865
3888
|
step: 1,
|
|
3866
|
-
className:
|
|
3889
|
+
className: `mt-1.5 w-full rounded-lg border bg-surface-container-low px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground ${focusField3}`
|
|
3867
3890
|
}
|
|
3868
3891
|
)
|
|
3869
3892
|
] })
|
|
@@ -3882,7 +3905,7 @@ function StartupScriptsPage({ apiClient, className }) {
|
|
|
3882
3905
|
onChange: (e) => setFormData((p) => ({ ...p, runOrder: e.target.value ? Math.max(0, Number(e.target.value)) : 0 })),
|
|
3883
3906
|
min: 0,
|
|
3884
3907
|
max: 9999,
|
|
3885
|
-
className:
|
|
3908
|
+
className: `mt-1.5 w-full rounded-lg border bg-surface-container-low px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground ${focusField3}`
|
|
3886
3909
|
}
|
|
3887
3910
|
),
|
|
3888
3911
|
/* @__PURE__ */ jsx9("p", { className: "mt-1 text-xs text-muted-foreground", children: "Lower runs first" })
|
|
@@ -3900,7 +3923,7 @@ function StartupScriptsPage({ apiClient, className }) {
|
|
|
3900
3923
|
onChange: (e) => setFormData((p) => ({ ...p, timeoutSeconds: e.target.value ? Math.max(5, Number(e.target.value)) : 300 })),
|
|
3901
3924
|
min: 5,
|
|
3902
3925
|
max: 3600,
|
|
3903
|
-
className:
|
|
3926
|
+
className: `mt-1.5 w-full rounded-lg border bg-surface-container-low px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground ${focusField3}`
|
|
3904
3927
|
}
|
|
3905
3928
|
)
|
|
3906
3929
|
] })
|
package/dist/primitives.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
export { ArtifactPane, ArtifactPaneProps, Avatar, AvatarFallback, AvatarImage, Badge, BadgeProps, Button, ButtonProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, CodeBlock, CodeBlockProps, CopyButton, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropZone, DropZoneProps, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, EmptyStateProps, FilterField, FilterFieldProps, InlineCode, InlineCodeProps, Input, InputProps, Label, Metric, MetricProps, MetricStrip, MetricStripProps, Progress, SegmentedControl, SegmentedControlOption, SegmentedControlProps, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, SidebarDropZone, SidebarDropZoneProps, Skeleton, SkeletonCard, SkeletonTable, StatCard, StatCardProps, StatusPill, StatusPillProps, StatusTone, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TerminalCursor, TerminalDisplay, TerminalInput, TerminalLine, Textarea, TextareaProps, ThemeToggle, Toast, ToastContainer, ToastProvider, Toolbar, ToolbarProps, UploadFile, UploadProgress, UploadProgressProps, badgeVariants, buttonVariants, useTheme, useToast } from '@tangle-network/ui/primitives';
|
|
2
|
-
export { L as Logo, a as LogoProps
|
|
1
|
+
export { ArtifactPane, ArtifactPaneProps, Avatar, AvatarFallback, AvatarImage, Badge, BadgeProps, Button, ButtonProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, CodeBlock, CodeBlockProps, CopyButton, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropZone, DropZoneProps, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, EmptyStateProps, FilterField, FilterFieldProps, InlineCode, InlineCodeProps, Input, InputProps, Label, Metric, MetricProps, MetricStrip, MetricStripProps, Progress, SegmentedControl, SegmentedControlOption, SegmentedControlProps, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, SidebarDropZone, SidebarDropZoneProps, Skeleton, SkeletonCard, SkeletonTable, StatCard, StatCardProps, StatusPill, StatusPillProps, StatusTone, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TerminalCursor, TerminalDisplay, TerminalInput, TerminalLine, TextShimmer, TextShimmerProps, Textarea, TextareaProps, ThemeToggle, Toast, ToastContainer, ToastProvider, Toolbar, ToolbarProps, UploadFile, UploadProgress, UploadProgressProps, badgeVariants, buttonVariants, useTheme, useToast } from '@tangle-network/ui/primitives';
|
|
2
|
+
export { L as Logo, a as LogoProps } from './logo-DiAjq759.js';
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import { HTMLAttributes, ElementType, ReactNode } from 'react';
|
|
5
|
+
export { TangleKnot } from '@tangle-network/brand';
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* Canonical type roles for the Tangle design system. Every title in every
|
package/dist/primitives.js
CHANGED
|
@@ -87,6 +87,7 @@ import {
|
|
|
87
87
|
TerminalDisplay,
|
|
88
88
|
TerminalInput,
|
|
89
89
|
TerminalLine,
|
|
90
|
+
TextShimmer,
|
|
90
91
|
Textarea,
|
|
91
92
|
ThemeToggle,
|
|
92
93
|
ToastContainer,
|
|
@@ -97,7 +98,7 @@ import {
|
|
|
97
98
|
buttonVariants,
|
|
98
99
|
useTheme,
|
|
99
100
|
useToast
|
|
100
|
-
} from "./chunk-
|
|
101
|
+
} from "./chunk-ANSC5AFC.js";
|
|
101
102
|
import "./chunk-EI44GEQ5.js";
|
|
102
103
|
import "./chunk-CZ7CSFO4.js";
|
|
103
104
|
export {
|
|
@@ -189,6 +190,7 @@ export {
|
|
|
189
190
|
TerminalDisplay,
|
|
190
191
|
TerminalInput,
|
|
191
192
|
TerminalLine,
|
|
193
|
+
TextShimmer,
|
|
192
194
|
Textarea,
|
|
193
195
|
ThemeToggle,
|
|
194
196
|
ToastContainer,
|