@tangle-network/sandbox-ui 0.121.1 → 0.122.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/{dashboard-CESeH2xQ.js → dashboard-BpEeXRo1.js} +158 -205
- package/dist/dashboard.d.ts +2 -2
- package/dist/dashboard.js +3 -3
- package/dist/globals.css +60 -42
- package/dist/{index-lIwUZibs.d.ts → index-CZ2ErGhV.d.ts} +17 -2
- package/dist/{index-DF2rZgf7.d.ts → index-D1YmTvf3.d.ts} +1 -1
- package/dist/{index-SJKueyy4.d.ts → index-wLVwzOsB.d.ts} +2 -2
- package/dist/index.d.ts +4 -4
- package/dist/index.js +5 -5
- package/dist/{info-panel-C9cqDzOL.js → page-layout-Cf90DTWr.js} +16 -23
- package/dist/pages.d.ts +2 -9
- package/dist/pages.js +97 -181
- package/dist/{primitives-BQGtwZX3.js → primitives-C4qn9fZ8.js} +2 -2
- package/dist/primitives.d.ts +1 -1
- package/dist/primitives.js +1 -1
- package/dist/styles.css +60 -42
- package/dist/{workbench-BYTo--31.js → workbench-CggAsIMv.js} +1 -1
- package/dist/workbench.d.ts +1 -1
- package/dist/workbench.js +1 -1
- package/package.json +1 -1
package/dist/pages.d.ts
CHANGED
|
@@ -314,16 +314,9 @@ interface SecretsPageProps {
|
|
|
314
314
|
* edge-to-edge list that scrolls inside the available height.
|
|
315
315
|
*/
|
|
316
316
|
variant?: "page" | "pane";
|
|
317
|
-
/**
|
|
318
|
-
* Optional hint pointing users at team-level secrets. When provided,
|
|
319
|
-
* renders a persistent informational banner below the header clarifying
|
|
320
|
-
* that personal secrets are NOT shared with teams and linking the
|
|
321
|
-
* user to their team-management page to configure shared secrets
|
|
322
|
-
* there. Omit entirely to hide the banner (e.g. in deployments
|
|
323
|
-
* without teams).
|
|
324
|
-
*/
|
|
317
|
+
/** Optional navigation to team-scoped credentials, shown beside the page actions. */
|
|
325
318
|
teamSecretsHint?: {
|
|
326
|
-
/**
|
|
319
|
+
/** Navigate to team-scoped credentials. */
|
|
327
320
|
onNavigate: () => void;
|
|
328
321
|
/** CTA label. Defaults to "Manage team secrets". */
|
|
329
322
|
label?: string;
|
package/dist/pages.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { $ as Select$1, C as DialogTitle$1, G as Input$1, Nt as Textarea$1,
|
|
1
|
+
import { $ as Select$1, C as DialogTitle$1, G as Input$1, Nt as Textarea$1, _ as DialogContent$1, a as Badge$1, b as DialogHeader$1, ct as SelectValue$1, et as SelectContent$1, h as Dialog$1, ht as Switch, nt as SelectItem$1, o as Button$1, st as SelectTrigger$1, v as DialogDescription$1, y as DialogFooter$1 } from "./primitives-C4qn9fZ8.js";
|
|
2
2
|
import { t as cn$1 } from "./utils-DzWbktWG.js";
|
|
3
|
-
import {
|
|
3
|
+
import { a as PricingPage, i as UsageChart, r as TemplateCard, s as BillingDashboard, t as DashboardPageHeader } from "./page-layout-Cf90DTWr.js";
|
|
4
4
|
import { Badge, Button, Card, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, EmptyState, Input, Skeleton, SkeletonCard, Tabs, TabsContent, TabsList, TabsTrigger } from "@tangle-network/ui/primitives";
|
|
5
5
|
import { Logo, TangleKnot } from "@tangle-network/brand";
|
|
6
6
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
7
7
|
import * as React$1 from "react";
|
|
8
8
|
import { useState } from "react";
|
|
9
|
-
import { AlertCircle, ArrowLeft,
|
|
9
|
+
import { AlertCircle, ArrowLeft, Check, CheckCircle, ChevronDown, ChevronRight, ChevronUp, Clock, Copy, Cpu, Edit2, Eye, EyeOff, GripVertical, Info, Key, Layers, Loader2, Lock, MemoryStick, Pencil, Plus, Power, PowerOff, Search, Settings, Settings2, Terminal, Trash2, Upload } from "lucide-react";
|
|
10
10
|
import { focusField, focusRing } from "@tangle-network/ui/utils";
|
|
11
11
|
//#region src/pages/auth-page.tsx
|
|
12
12
|
const C = {
|
|
@@ -339,7 +339,7 @@ async function fetchBillingDataFromApi(apiBasePath) {
|
|
|
339
339
|
}
|
|
340
340
|
function BillingPageSkeleton({ variant: _variant = "sandbox" }) {
|
|
341
341
|
return /* @__PURE__ */ jsxs("div", {
|
|
342
|
-
className: "space-y-
|
|
342
|
+
className: "w-full min-w-0 space-y-5",
|
|
343
343
|
children: [/* @__PURE__ */ jsxs("div", {
|
|
344
344
|
className: "grid gap-6 lg:grid-cols-3",
|
|
345
345
|
children: [
|
|
@@ -500,13 +500,13 @@ function BillingPage({ variant = "sandbox", initialData, apiBasePath = "", onMan
|
|
|
500
500
|
});
|
|
501
501
|
const data = state.data || defaultBillingData;
|
|
502
502
|
return /* @__PURE__ */ jsx("div", {
|
|
503
|
-
className: "space-y-
|
|
503
|
+
className: "w-full min-w-0 space-y-5",
|
|
504
504
|
children: /* @__PURE__ */ jsxs(Tabs, {
|
|
505
505
|
defaultValue: "overview",
|
|
506
506
|
className: "w-full",
|
|
507
507
|
children: [
|
|
508
508
|
/* @__PURE__ */ jsxs(TabsList, {
|
|
509
|
-
className: "mb-
|
|
509
|
+
className: "mb-5 h-auto gap-1 rounded-xl border border-border bg-surface-container p-1.5 [&_[role=tab]]:min-h-11 [&_[role=tab]]:px-4 [&_[role=tab]]:text-sm [&_[role=tab][data-state=active]]:bg-[var(--accent-surface-strong)] [&_[role=tab][data-state=active]]:text-[var(--accent-text)] [&_[role=tab][data-state=active]]:shadow-sm",
|
|
510
510
|
children: [
|
|
511
511
|
/* @__PURE__ */ jsx(TabsTrigger, {
|
|
512
512
|
value: "overview",
|
|
@@ -553,32 +553,25 @@ function BillingPage({ variant = "sandbox", initialData, apiBasePath = "", onMan
|
|
|
553
553
|
title: "Credit Usage History",
|
|
554
554
|
unit: "credits"
|
|
555
555
|
}) : /* @__PURE__ */ jsxs("div", {
|
|
556
|
-
className: "flex flex-col items-center justify-center rounded-xl border border-
|
|
557
|
-
children: [
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
children:
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
children: "No usage data yet"
|
|
576
|
-
}),
|
|
577
|
-
/* @__PURE__ */ jsx("p", {
|
|
578
|
-
className: "text-muted-foreground text-sm",
|
|
579
|
-
children: "Start using credits to see your usage history here."
|
|
580
|
-
})
|
|
581
|
-
]
|
|
556
|
+
className: "flex flex-col items-center justify-center rounded-xl border border-border bg-surface-container p-8 text-center",
|
|
557
|
+
children: [/* @__PURE__ */ jsxs("svg", {
|
|
558
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
559
|
+
viewBox: "0 0 24 24",
|
|
560
|
+
fill: "none",
|
|
561
|
+
stroke: "currentColor",
|
|
562
|
+
strokeWidth: "2",
|
|
563
|
+
strokeLinecap: "round",
|
|
564
|
+
strokeLinejoin: "round",
|
|
565
|
+
className: "mb-4 h-12 w-12 text-muted-foreground",
|
|
566
|
+
children: [
|
|
567
|
+
/* @__PURE__ */ jsx("title", { children: "No usage data icon" }),
|
|
568
|
+
/* @__PURE__ */ jsx("path", { d: "M3 3v18h18" }),
|
|
569
|
+
/* @__PURE__ */ jsx("path", { d: "m19 9-5 5-4-4-3 3" })
|
|
570
|
+
]
|
|
571
|
+
}), /* @__PURE__ */ jsx("h3", {
|
|
572
|
+
className: "font-semibold text-lg",
|
|
573
|
+
children: "No usage data yet"
|
|
574
|
+
})]
|
|
582
575
|
})
|
|
583
576
|
})
|
|
584
577
|
]
|
|
@@ -2698,7 +2691,7 @@ function parseEnvText(text) {
|
|
|
2698
2691
|
//#region src/pages/secrets-page.tsx
|
|
2699
2692
|
/** Cap pasted/uploaded import sources so a pathological file cannot blow up the parser/UI. */
|
|
2700
2693
|
const MAX_IMPORT_FILE_BYTES = 262144;
|
|
2701
|
-
const DEFAULT_DESCRIPTION = "
|
|
2694
|
+
const DEFAULT_DESCRIPTION = "Manage environment variables for your sandboxes.";
|
|
2702
2695
|
const DEFAULT_CREATE_DESCRIPTION = "Secrets are automatically exposed as environment variables across all your new sandboxes.";
|
|
2703
2696
|
const DEFAULT_EMPTY_DESCRIPTION = "Create a secret to inject into your sandboxes.";
|
|
2704
2697
|
const DEFAULT_DELETE_CONSEQUENCE = "Sandboxes using this secret will lose access to it.";
|
|
@@ -2916,25 +2909,34 @@ function SecretsPage({ apiClient, className, teamSecretsHint, title = "Environme
|
|
|
2916
2909
|
return dateStr;
|
|
2917
2910
|
}
|
|
2918
2911
|
};
|
|
2919
|
-
const actions = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
2920
|
-
|
|
2921
|
-
|
|
2922
|
-
|
|
2923
|
-
|
|
2924
|
-
|
|
2925
|
-
|
|
2926
|
-
|
|
2927
|
-
|
|
2928
|
-
|
|
2929
|
-
|
|
2930
|
-
|
|
2931
|
-
|
|
2932
|
-
|
|
2933
|
-
"
|
|
2934
|
-
}),
|
|
2935
|
-
|
|
2912
|
+
const actions = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
2913
|
+
teamSecretsHint && /* @__PURE__ */ jsx("button", {
|
|
2914
|
+
type: "button",
|
|
2915
|
+
onClick: teamSecretsHint.onNavigate,
|
|
2916
|
+
className: "inline-flex min-h-11 items-center justify-center rounded-lg border border-border bg-surface-container-high px-3 text-sm font-medium text-foreground shadow-sm hover:bg-surface-container-highest",
|
|
2917
|
+
children: teamSecretsHint.label ?? "Team secrets"
|
|
2918
|
+
}),
|
|
2919
|
+
/* @__PURE__ */ jsxs("button", {
|
|
2920
|
+
type: "button",
|
|
2921
|
+
onClick: () => setIsImportOpen(true),
|
|
2922
|
+
className: "inline-flex items-center gap-1.5 whitespace-nowrap rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container-high px-3 py-2 text-sm font-semibold text-foreground transition-colors hover:bg-surface-container-high active:scale-[0.97] sm:gap-2",
|
|
2923
|
+
children: [/* @__PURE__ */ jsx(Upload, {
|
|
2924
|
+
className: "h-4 w-4",
|
|
2925
|
+
"aria-hidden": "true"
|
|
2926
|
+
}), "Import .env"]
|
|
2927
|
+
}),
|
|
2928
|
+
/* @__PURE__ */ jsxs("button", {
|
|
2929
|
+
type: "button",
|
|
2930
|
+
onClick: openCreate,
|
|
2931
|
+
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 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-4",
|
|
2932
|
+
children: [/* @__PURE__ */ jsx(Plus, {
|
|
2933
|
+
className: "h-4 w-4",
|
|
2934
|
+
"aria-hidden": "true"
|
|
2935
|
+
}), "New Secret"]
|
|
2936
|
+
})
|
|
2937
|
+
] });
|
|
2936
2938
|
return /* @__PURE__ */ jsxs("div", {
|
|
2937
|
-
className: cn$1(pane ? "flex h-full min-h-0 w-full flex-col" : "
|
|
2939
|
+
className: cn$1(pane ? "flex h-full min-h-0 w-full flex-col" : "w-full min-w-0 space-y-5", className),
|
|
2938
2940
|
children: [
|
|
2939
2941
|
pane ? /* @__PURE__ */ jsxs("header", {
|
|
2940
2942
|
className: "flex shrink-0 flex-wrap items-center justify-between gap-x-6 gap-y-3 border-b border-border px-4 py-4 sm:px-6",
|
|
@@ -2951,41 +2953,10 @@ function SecretsPage({ apiClient, className, teamSecretsHint, title = "Environme
|
|
|
2951
2953
|
className: "flex shrink-0 items-center gap-2",
|
|
2952
2954
|
children: actions
|
|
2953
2955
|
})]
|
|
2954
|
-
}) : /* @__PURE__ */ jsx(
|
|
2956
|
+
}) : /* @__PURE__ */ jsx(DashboardPageHeader, {
|
|
2955
2957
|
title,
|
|
2956
2958
|
description,
|
|
2957
|
-
|
|
2958
|
-
}),
|
|
2959
|
-
teamSecretsHint && /* @__PURE__ */ jsxs("div", {
|
|
2960
|
-
className: cn$1("flex flex-wrap items-center gap-3 border-[var(--md3-outline-variant)] bg-[var(--accent-surface-soft)]/40 px-4 py-3", pane ? "shrink-0 border-b sm:px-6" : "rounded-lg border"),
|
|
2961
|
-
children: [/* @__PURE__ */ jsxs("div", {
|
|
2962
|
-
className: "flex min-w-[min(100%,18rem)] flex-1 items-start gap-3",
|
|
2963
|
-
children: [/* @__PURE__ */ jsx(Users, {
|
|
2964
|
-
className: "mt-0.5 h-5 w-5 shrink-0 text-[var(--accent-text)]",
|
|
2965
|
-
"aria-hidden": "true"
|
|
2966
|
-
}), /* @__PURE__ */ jsxs("div", {
|
|
2967
|
-
className: "min-w-0 text-sm",
|
|
2968
|
-
children: [/* @__PURE__ */ jsx("p", {
|
|
2969
|
-
className: "font-semibold text-foreground",
|
|
2970
|
-
children: "Setting up secrets for a team?"
|
|
2971
|
-
}), /* @__PURE__ */ jsxs("p", {
|
|
2972
|
-
className: "mt-0.5 text-xs text-muted-foreground",
|
|
2973
|
-
children: [
|
|
2974
|
-
"Secrets here are ",
|
|
2975
|
-
/* @__PURE__ */ jsx("strong", { children: "personal" }),
|
|
2976
|
-
" and only available in sandboxes you create. Add shared credentials on the team page."
|
|
2977
|
-
]
|
|
2978
|
-
})]
|
|
2979
|
-
})]
|
|
2980
|
-
}), /* @__PURE__ */ jsxs("button", {
|
|
2981
|
-
type: "button",
|
|
2982
|
-
onClick: teamSecretsHint.onNavigate,
|
|
2983
|
-
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",
|
|
2984
|
-
children: [teamSecretsHint.label ?? "Manage team secrets", /* @__PURE__ */ jsx(ArrowRight, {
|
|
2985
|
-
className: "h-3 w-3",
|
|
2986
|
-
"aria-hidden": "true"
|
|
2987
|
-
})]
|
|
2988
|
-
})]
|
|
2959
|
+
actions
|
|
2989
2960
|
}),
|
|
2990
2961
|
error && (secrets.length > 0 || loading) && /* @__PURE__ */ jsxs("div", {
|
|
2991
2962
|
role: "alert",
|
|
@@ -3722,6 +3693,8 @@ function StartupScriptsPage({ apiClient, className }) {
|
|
|
3722
3693
|
const [secrets, setSecrets] = React$1.useState([]);
|
|
3723
3694
|
const [environments, setEnvironments] = React$1.useState([]);
|
|
3724
3695
|
const [loading, setLoading] = React$1.useState(true);
|
|
3696
|
+
const [hasLoaded, setHasLoaded] = React$1.useState(false);
|
|
3697
|
+
const [loadError, setLoadError] = React$1.useState(null);
|
|
3725
3698
|
const [error, setError] = React$1.useState(null);
|
|
3726
3699
|
const [isDialogOpen, setIsDialogOpen] = React$1.useState(false);
|
|
3727
3700
|
const [dialogStep, setDialogStep] = React$1.useState("picker");
|
|
@@ -3737,23 +3710,28 @@ function StartupScriptsPage({ apiClient, className }) {
|
|
|
3737
3710
|
const apiRef = React$1.useRef(apiClient);
|
|
3738
3711
|
apiRef.current = apiClient;
|
|
3739
3712
|
const loadGenRef = React$1.useRef(0);
|
|
3740
|
-
const loadData = React$1.useCallback(async (
|
|
3713
|
+
const loadData = React$1.useCallback(async () => {
|
|
3741
3714
|
const gen = ++loadGenRef.current;
|
|
3715
|
+
setLoading(true);
|
|
3716
|
+
setLoadError(null);
|
|
3717
|
+
setError(null);
|
|
3742
3718
|
try {
|
|
3743
|
-
|
|
3744
|
-
setError(null);
|
|
3745
|
-
const [scriptData, secretData, envData] = await Promise.all([
|
|
3719
|
+
const [scriptResult, secretResult, envResult] = await Promise.allSettled([
|
|
3746
3720
|
apiRef.current.listScripts(),
|
|
3747
3721
|
apiRef.current.listSecrets?.() ?? Promise.resolve([]),
|
|
3748
3722
|
apiRef.current.listEnvironments?.() ?? Promise.resolve([])
|
|
3749
3723
|
]);
|
|
3750
3724
|
if (gen !== loadGenRef.current) return;
|
|
3751
|
-
|
|
3752
|
-
|
|
3753
|
-
|
|
3754
|
-
|
|
3755
|
-
if (
|
|
3756
|
-
|
|
3725
|
+
if (scriptResult.status === "fulfilled") {
|
|
3726
|
+
setScripts(scriptResult.value);
|
|
3727
|
+
setHasLoaded(true);
|
|
3728
|
+
}
|
|
3729
|
+
if (secretResult.status === "fulfilled") setSecrets(secretResult.value);
|
|
3730
|
+
if (envResult.status === "fulfilled") setEnvironments(envResult.value);
|
|
3731
|
+
if (scriptResult.status === "rejected") setLoadError("Couldn't load startup scripts.");
|
|
3732
|
+
else if (secretResult.status === "rejected" || envResult.status === "rejected") setLoadError("Some script options couldn't load.");
|
|
3733
|
+
} catch {
|
|
3734
|
+
if (gen === loadGenRef.current) setLoadError("Couldn't load startup scripts.");
|
|
3757
3735
|
} finally {
|
|
3758
3736
|
if (gen === loadGenRef.current) setLoading(false);
|
|
3759
3737
|
}
|
|
@@ -3823,7 +3801,7 @@ function StartupScriptsPage({ apiClient, className }) {
|
|
|
3823
3801
|
if (editingScript) await apiRef.current.updateScript(editingScript.id, formData);
|
|
3824
3802
|
else await apiRef.current.createScript(formData);
|
|
3825
3803
|
setIsDialogOpen(false);
|
|
3826
|
-
await loadData(
|
|
3804
|
+
await loadData();
|
|
3827
3805
|
} catch (err) {
|
|
3828
3806
|
setFormError(err instanceof Error ? err.message : "Failed to save script");
|
|
3829
3807
|
} finally {
|
|
@@ -3833,7 +3811,7 @@ function StartupScriptsPage({ apiClient, className }) {
|
|
|
3833
3811
|
const handleToggle = async (script) => {
|
|
3834
3812
|
try {
|
|
3835
3813
|
await apiRef.current.toggleScript(script.id);
|
|
3836
|
-
await loadData(
|
|
3814
|
+
await loadData();
|
|
3837
3815
|
} catch (err) {
|
|
3838
3816
|
setError(err instanceof Error ? err.message : "Failed to toggle script");
|
|
3839
3817
|
}
|
|
@@ -3844,7 +3822,7 @@ function StartupScriptsPage({ apiClient, className }) {
|
|
|
3844
3822
|
try {
|
|
3845
3823
|
await apiRef.current.deleteScript(deleteTarget.id);
|
|
3846
3824
|
setDeleteTarget(null);
|
|
3847
|
-
await loadData(
|
|
3825
|
+
await loadData();
|
|
3848
3826
|
} catch (err) {
|
|
3849
3827
|
setError(err instanceof Error ? err.message : "Failed to delete script");
|
|
3850
3828
|
} finally {
|
|
@@ -3863,67 +3841,37 @@ function StartupScriptsPage({ apiClient, className }) {
|
|
|
3863
3841
|
environments: prev.environments.includes(env) ? prev.environments.filter((e) => e !== env) : [...prev.environments, env]
|
|
3864
3842
|
}));
|
|
3865
3843
|
};
|
|
3866
|
-
const activeCount = scripts.filter((s) => s.enabled).length;
|
|
3867
3844
|
return /* @__PURE__ */ jsxs("div", {
|
|
3868
|
-
className: cn$1("
|
|
3845
|
+
className: cn$1("w-full min-w-0 space-y-5", className),
|
|
3869
3846
|
children: [
|
|
3870
|
-
/* @__PURE__ */ jsx(
|
|
3847
|
+
/* @__PURE__ */ jsx(DashboardPageHeader, {
|
|
3871
3848
|
title: "Startup Scripts",
|
|
3872
|
-
description: "
|
|
3873
|
-
|
|
3849
|
+
description: "Run scripts when your sandboxes start.",
|
|
3850
|
+
actions: /* @__PURE__ */ jsxs("button", {
|
|
3874
3851
|
type: "button",
|
|
3875
3852
|
onClick: openCreate,
|
|
3876
3853
|
className: "inline-flex items-center gap-2 rounded-lg bg-[var(--btn-primary-bg)] px-4 py-2.5 text-sm font-bold text-[var(--btn-primary-text)] shadow-sm transition-colors hover:bg-[var(--btn-primary-hover)]",
|
|
3877
3854
|
children: [/* @__PURE__ */ jsx(Plus, { className: "h-4 w-4" }), "New Script"]
|
|
3878
3855
|
})
|
|
3879
3856
|
}),
|
|
3880
|
-
/* @__PURE__ */ jsxs("div", {
|
|
3881
|
-
|
|
3857
|
+
(loadError || error) && /* @__PURE__ */ jsxs("div", {
|
|
3858
|
+
role: "alert",
|
|
3859
|
+
className: "flex flex-wrap items-center gap-3 rounded-lg border border-destructive/30 bg-destructive/10 p-4",
|
|
3882
3860
|
children: [
|
|
3883
|
-
/* @__PURE__ */
|
|
3884
|
-
|
|
3885
|
-
|
|
3886
|
-
|
|
3887
|
-
children: "Total Scripts"
|
|
3888
|
-
}), /* @__PURE__ */ jsx("div", {
|
|
3889
|
-
className: "mt-2 flex items-baseline gap-2",
|
|
3890
|
-
children: /* @__PURE__ */ jsx("span", {
|
|
3891
|
-
className: "font-display text-2xl font-extrabold text-foreground",
|
|
3892
|
-
children: scripts.length
|
|
3893
|
-
})
|
|
3894
|
-
})]
|
|
3895
|
-
}),
|
|
3896
|
-
/* @__PURE__ */ jsxs("div", {
|
|
3897
|
-
className: "rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container p-5 shadow-[var(--shadow-card)]",
|
|
3898
|
-
children: [/* @__PURE__ */ jsx("p", {
|
|
3899
|
-
className: "text-[10px] font-bold uppercase tracking-widest text-muted-foreground",
|
|
3900
|
-
children: "Active"
|
|
3901
|
-
}), /* @__PURE__ */ jsxs("div", {
|
|
3902
|
-
className: "mt-2 flex items-baseline gap-2",
|
|
3903
|
-
children: [/* @__PURE__ */ jsx("span", {
|
|
3904
|
-
className: "font-display text-2xl font-extrabold text-foreground",
|
|
3905
|
-
children: activeCount
|
|
3906
|
-
}), /* @__PURE__ */ jsxs("span", {
|
|
3907
|
-
className: "text-xs text-muted-foreground",
|
|
3908
|
-
children: ["of ", scripts.length]
|
|
3909
|
-
})]
|
|
3910
|
-
})]
|
|
3861
|
+
/* @__PURE__ */ jsx(AlertCircle, { className: "h-5 w-5 shrink-0 text-destructive" }),
|
|
3862
|
+
/* @__PURE__ */ jsx("p", {
|
|
3863
|
+
className: "flex-1 text-sm font-medium text-destructive",
|
|
3864
|
+
children: loadError ?? error
|
|
3911
3865
|
}),
|
|
3912
|
-
/* @__PURE__ */ jsx(
|
|
3913
|
-
|
|
3914
|
-
|
|
3915
|
-
|
|
3916
|
-
|
|
3866
|
+
loadError && /* @__PURE__ */ jsx("button", {
|
|
3867
|
+
type: "button",
|
|
3868
|
+
onClick: () => void loadData(),
|
|
3869
|
+
disabled: loading,
|
|
3870
|
+
className: "inline-flex min-h-11 items-center justify-center rounded-lg border border-border bg-surface-container-high px-4 text-sm font-semibold text-foreground shadow-sm hover:bg-surface-container-highest disabled:opacity-50",
|
|
3871
|
+
children: "Retry"
|
|
3917
3872
|
})
|
|
3918
3873
|
]
|
|
3919
3874
|
}),
|
|
3920
|
-
error && /* @__PURE__ */ jsxs("div", {
|
|
3921
|
-
className: "flex items-center gap-3 rounded-lg border border-destructive/30 bg-destructive/10 p-4",
|
|
3922
|
-
children: [/* @__PURE__ */ jsx(AlertCircle, { className: "h-5 w-5 shrink-0 text-destructive" }), /* @__PURE__ */ jsx("p", {
|
|
3923
|
-
className: "text-sm font-medium text-destructive",
|
|
3924
|
-
children: error
|
|
3925
|
-
})]
|
|
3926
|
-
}),
|
|
3927
3875
|
/* @__PURE__ */ jsx(Dialog, {
|
|
3928
3876
|
open: isDialogOpen,
|
|
3929
3877
|
onOpenChange: setIsDialogOpen,
|
|
@@ -4287,7 +4235,7 @@ function StartupScriptsPage({ apiClient, className }) {
|
|
|
4287
4235
|
})] })]
|
|
4288
4236
|
})
|
|
4289
4237
|
}),
|
|
4290
|
-
/* @__PURE__ */ jsxs("div", {
|
|
4238
|
+
(loading || hasLoaded) && /* @__PURE__ */ jsxs("div", {
|
|
4291
4239
|
className: "overflow-hidden rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container shadow-[var(--shadow-card)]",
|
|
4292
4240
|
children: [/* @__PURE__ */ jsxs("div", {
|
|
4293
4241
|
className: "border-b border-[var(--md3-outline-variant)] px-6 py-4 flex items-center justify-between",
|
|
@@ -4297,7 +4245,7 @@ function StartupScriptsPage({ apiClient, className }) {
|
|
|
4297
4245
|
className: "text-xs font-bold uppercase tracking-widest text-foreground",
|
|
4298
4246
|
children: "All Scripts"
|
|
4299
4247
|
})
|
|
4300
|
-
}), /* @__PURE__ */ jsxs("span", {
|
|
4248
|
+
}), hasLoaded && /* @__PURE__ */ jsxs("span", {
|
|
4301
4249
|
className: "text-xs text-muted-foreground font-mono",
|
|
4302
4250
|
children: [
|
|
4303
4251
|
scripts.length,
|
|
@@ -4305,7 +4253,9 @@ function StartupScriptsPage({ apiClient, className }) {
|
|
|
4305
4253
|
scripts.length !== 1 ? "s" : ""
|
|
4306
4254
|
]
|
|
4307
4255
|
})]
|
|
4308
|
-
}), loading ? /* @__PURE__ */ jsx("div", {
|
|
4256
|
+
}), loading && !hasLoaded ? /* @__PURE__ */ jsx("div", {
|
|
4257
|
+
role: "status",
|
|
4258
|
+
"aria-label": "Loading startup scripts",
|
|
4309
4259
|
className: "flex items-center justify-center py-16",
|
|
4310
4260
|
children: /* @__PURE__ */ jsx("div", {
|
|
4311
4261
|
className: "h-6 w-6 animate-spin rounded-full border-2 border-primary border-t-transparent",
|
|
@@ -4417,40 +4367,6 @@ function StartupScriptsPage({ apiClient, className }) {
|
|
|
4417
4367
|
]
|
|
4418
4368
|
}, script.id))
|
|
4419
4369
|
})]
|
|
4420
|
-
}),
|
|
4421
|
-
/* @__PURE__ */ jsxs("div", {
|
|
4422
|
-
className: "grid grid-cols-1 gap-6 md:grid-cols-2",
|
|
4423
|
-
children: [/* @__PURE__ */ jsxs("div", {
|
|
4424
|
-
className: "rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container p-6 shadow-[var(--shadow-card)]",
|
|
4425
|
-
children: [/* @__PURE__ */ jsxs("div", {
|
|
4426
|
-
className: "flex items-center gap-3 mb-3",
|
|
4427
|
-
children: [/* @__PURE__ */ jsx("div", {
|
|
4428
|
-
className: "flex h-9 w-9 items-center justify-center rounded-md bg-[var(--brand-primary,hsl(var(--primary)))] text-[var(--btn-primary-text)]",
|
|
4429
|
-
children: /* @__PURE__ */ jsx(Play, { className: "h-5 w-5" })
|
|
4430
|
-
}), /* @__PURE__ */ jsx("h3", {
|
|
4431
|
-
className: "text-sm font-bold text-foreground",
|
|
4432
|
-
children: "How Scripts Run"
|
|
4433
|
-
})]
|
|
4434
|
-
}), /* @__PURE__ */ jsx("p", {
|
|
4435
|
-
className: "text-sm text-muted-foreground",
|
|
4436
|
-
children: "Scripts execute in order after the container starts but before the AI agent. They run as bash scripts with full access to mounted tools (Nix profile) and workspace. Failed scripts abort sandbox creation unless \"continue on failure\" is enabled."
|
|
4437
|
-
})]
|
|
4438
|
-
}), /* @__PURE__ */ jsxs("div", {
|
|
4439
|
-
className: "rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container p-6 shadow-[var(--shadow-card)]",
|
|
4440
|
-
children: [/* @__PURE__ */ jsxs("div", {
|
|
4441
|
-
className: "flex items-center gap-3 mb-3",
|
|
4442
|
-
children: [/* @__PURE__ */ jsx("div", {
|
|
4443
|
-
className: "flex h-9 w-9 items-center justify-center rounded-md bg-[var(--brand-primary,hsl(var(--primary)))] text-[var(--btn-primary-text)]",
|
|
4444
|
-
children: /* @__PURE__ */ jsx(Shield, { className: "h-5 w-5" })
|
|
4445
|
-
}), /* @__PURE__ */ jsx("h3", {
|
|
4446
|
-
className: "text-sm font-bold text-foreground",
|
|
4447
|
-
children: "Security & Secrets"
|
|
4448
|
-
})]
|
|
4449
|
-
}), /* @__PURE__ */ jsx("p", {
|
|
4450
|
-
className: "text-sm text-muted-foreground",
|
|
4451
|
-
children: "Selected secrets are injected as environment variables at execution time. Secret values are never stored in the script itself — they are decrypted and injected only when the sandbox starts. Scripts can use conditions to restrict execution to specific environments or resource tiers."
|
|
4452
|
-
})]
|
|
4453
|
-
})]
|
|
4454
4370
|
})
|
|
4455
4371
|
]
|
|
4456
4372
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ArtifactPane as ArtifactPane$1, Avatar as Avatar$1, AvatarFallback as AvatarFallback$1, AvatarImage as AvatarImage$1, Badge as Badge$1, Button as Button$1, Card as Card$1, CardContent as CardContent$1, CardDescription as CardDescription$1, CardFooter, CardHeader as CardHeader$1, CardTitle as CardTitle$1, CodeBlock, CopyButton, Dialog as Dialog$1, DialogClose, DialogContent as DialogContent$1, DialogDescription as DialogDescription$1, DialogFooter as DialogFooter$1, DialogHeader as DialogHeader$1, DialogOverlay, DialogPortal, DialogTitle as DialogTitle$1, DialogTrigger, DropZone, DropdownMenu as DropdownMenu$1, DropdownMenuCheckboxItem, DropdownMenuContent as DropdownMenuContent$1, DropdownMenuGroup, DropdownMenuItem as DropdownMenuItem$1, DropdownMenuLabel as DropdownMenuLabel$1, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator as DropdownMenuSeparator$1, DropdownMenuShortcut, DropdownMenuSub as DropdownMenuSub$1, DropdownMenuSubContent as DropdownMenuSubContent$1, DropdownMenuSubTrigger as DropdownMenuSubTrigger$1, DropdownMenuTrigger as DropdownMenuTrigger$1, EmptyState as EmptyState$1, FilterField, Heading, InlineCode, Input as Input$1, Label as Label$1, Metric, MetricStrip, PageHeader, PageHeader as PageHeader$1, PageShell, Progress as Progress$1, SegmentedControl, Select as Select$1, SelectContent as SelectContent$1, SelectGroup, SelectItem as SelectItem$1, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger as SelectTrigger$1, SelectValue as SelectValue$1, SidebarDropZone, Skeleton as Skeleton$1, SkeletonCard as SkeletonCard$1, SkeletonTable, StatCard as StatCard$1, StatusPill, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs as Tabs$1, TabsContent as TabsContent$1, TabsList as TabsList$1, TabsTrigger as TabsTrigger$1, TerminalCursor, TerminalDisplay, TerminalInput, TerminalLine, TextShimmer, Textarea as Textarea$1, ThemeToggle, ToastContainer, ToastProvider, Toolbar, UploadProgress, badgeVariants, buttonVariants, useTheme as useTheme$1, useToast } from "@tangle-network/ui/primitives";
|
|
1
|
+
import { ArtifactPane as ArtifactPane$1, Avatar as Avatar$1, AvatarFallback as AvatarFallback$1, AvatarImage as AvatarImage$1, Badge as Badge$1, Button as Button$1, Card as Card$1, CardContent as CardContent$1, CardDescription as CardDescription$1, CardFooter, CardHeader as CardHeader$1, CardTitle as CardTitle$1, CodeBlock, CopyButton, Dialog as Dialog$1, DialogClose, DialogContent as DialogContent$1, DialogDescription as DialogDescription$1, DialogFooter as DialogFooter$1, DialogHeader as DialogHeader$1, DialogOverlay, DialogPortal, DialogTitle as DialogTitle$1, DialogTrigger, DropZone, DropdownMenu as DropdownMenu$1, DropdownMenuCheckboxItem, DropdownMenuContent as DropdownMenuContent$1, DropdownMenuGroup, DropdownMenuItem as DropdownMenuItem$1, DropdownMenuLabel as DropdownMenuLabel$1, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator as DropdownMenuSeparator$1, DropdownMenuShortcut, DropdownMenuSub as DropdownMenuSub$1, DropdownMenuSubContent as DropdownMenuSubContent$1, DropdownMenuSubTrigger as DropdownMenuSubTrigger$1, DropdownMenuTrigger as DropdownMenuTrigger$1, EmptyState as EmptyState$1, FilterField, Heading, InlineCode, Input as Input$1, Label as Label$1, Metric, MetricStrip, PageHeader, PageHeader as PageHeader$1, PageShell as PageShell$1, Progress as Progress$1, SegmentedControl, Select as Select$1, SelectContent as SelectContent$1, SelectGroup, SelectItem as SelectItem$1, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger as SelectTrigger$1, SelectValue as SelectValue$1, SidebarDropZone, Skeleton as Skeleton$1, SkeletonCard as SkeletonCard$1, SkeletonTable, StatCard as StatCard$1, StatusPill, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs as Tabs$1, TabsContent as TabsContent$1, TabsList as TabsList$1, TabsTrigger as TabsTrigger$1, TerminalCursor, TerminalDisplay, TerminalInput, TerminalLine, TextShimmer, Textarea as Textarea$1, ThemeToggle, ToastContainer, ToastProvider, Toolbar, UploadProgress, badgeVariants, buttonVariants, useTheme as useTheme$1, useToast } from "@tangle-network/ui/primitives";
|
|
2
2
|
import { Logo, TangleKnot as TangleKnot$1 } from "@tangle-network/brand";
|
|
3
3
|
import { jsx } from "react/jsx-runtime";
|
|
4
4
|
//#region src/primitives/logo.tsx
|
|
@@ -22,4 +22,4 @@ function SectionTitle(props) {
|
|
|
22
22
|
});
|
|
23
23
|
}
|
|
24
24
|
//#endregion
|
|
25
|
-
export { Select$1 as $, DropdownMenuItem$1 as A, TerminalInput as At, DropdownMenuTrigger$1 as B, buttonVariants as Bt, DialogTitle$1 as C, TableRow as Ct, DropdownMenuCheckboxItem as D, TabsTrigger$1 as Dt, DropdownMenu$1 as E, TabsList$1 as Et, DropdownMenuSeparator$1 as F, ToastContainer as Ft, Input$1 as G, TangleKnot$1 as Gt, FilterField as H, useToast as Ht, DropdownMenuShortcut as I, ToastProvider as It, MetricStrip as J, Label$1 as K, DropdownMenuSub$1 as L, Toolbar as Lt, DropdownMenuPortal as M, TextShimmer as Mt, DropdownMenuRadioGroup as N, Textarea$1 as Nt, DropdownMenuContent$1 as O, TerminalCursor as Ot, DropdownMenuRadioItem as P, ThemeToggle as Pt, SegmentedControl as Q, DropdownMenuSubContent$1 as R, UploadProgress as Rt, DialogPortal as S, TableHeader as St, DropZone as T, TabsContent$1 as Tt, Heading as U, SectionTitle as Ut, EmptyState$1 as V, useTheme$1 as Vt, InlineCode as W, Logo$1 as Wt, PageShell as X, PageHeader$1 as Y, Progress$1 as Z, DialogContent$1 as _, TableBody as _t, Badge$1 as a, SelectScrollUpButton as at, DialogHeader$1 as b, TableFooter as bt, CardContent$1 as c, SelectValue$1 as ct, CardHeader$1 as d, SkeletonCard$1 as dt, SelectContent$1 as et, CardTitle$1 as f, SkeletonTable as ft, DialogClose as g, Table as gt, Dialog$1 as h, Switch as ht, AvatarImage$1 as i, SelectScrollDownButton as it, DropdownMenuLabel$1 as j, TerminalLine as jt, DropdownMenuGroup as k, TerminalDisplay as kt, CardDescription$1 as l, SidebarDropZone as lt, CopyButton as m, StatusPill as mt, Avatar$1 as n, SelectItem$1 as nt, Button$1 as o, SelectSeparator as ot, CodeBlock as p, StatCard$1 as pt, Metric as q, AvatarFallback$1 as r, SelectLabel as rt, Card$1 as s, SelectTrigger$1 as st, ArtifactPane$1 as t, SelectGroup as tt, CardFooter as u, Skeleton$1 as ut, DialogDescription$1 as v, TableCaption as vt, DialogTrigger as w, Tabs$1 as wt, DialogOverlay as x, TableHead as xt, DialogFooter$1 as y, TableCell as yt, DropdownMenuSubTrigger$1 as z, badgeVariants as zt };
|
|
25
|
+
export { Select$1 as $, DropdownMenuItem$1 as A, TerminalInput as At, DropdownMenuTrigger$1 as B, buttonVariants as Bt, DialogTitle$1 as C, TableRow as Ct, DropdownMenuCheckboxItem as D, TabsTrigger$1 as Dt, DropdownMenu$1 as E, TabsList$1 as Et, DropdownMenuSeparator$1 as F, ToastContainer as Ft, Input$1 as G, TangleKnot$1 as Gt, FilterField as H, useToast as Ht, DropdownMenuShortcut as I, ToastProvider as It, MetricStrip as J, Label$1 as K, DropdownMenuSub$1 as L, Toolbar as Lt, DropdownMenuPortal as M, TextShimmer as Mt, DropdownMenuRadioGroup as N, Textarea$1 as Nt, DropdownMenuContent$1 as O, TerminalCursor as Ot, DropdownMenuRadioItem as P, ThemeToggle as Pt, SegmentedControl as Q, DropdownMenuSubContent$1 as R, UploadProgress as Rt, DialogPortal as S, TableHeader as St, DropZone as T, TabsContent$1 as Tt, Heading as U, SectionTitle as Ut, EmptyState$1 as V, useTheme$1 as Vt, InlineCode as W, Logo$1 as Wt, PageShell$1 as X, PageHeader$1 as Y, Progress$1 as Z, DialogContent$1 as _, TableBody as _t, Badge$1 as a, SelectScrollUpButton as at, DialogHeader$1 as b, TableFooter as bt, CardContent$1 as c, SelectValue$1 as ct, CardHeader$1 as d, SkeletonCard$1 as dt, SelectContent$1 as et, CardTitle$1 as f, SkeletonTable as ft, DialogClose as g, Table as gt, Dialog$1 as h, Switch as ht, AvatarImage$1 as i, SelectScrollDownButton as it, DropdownMenuLabel$1 as j, TerminalLine as jt, DropdownMenuGroup as k, TerminalDisplay as kt, CardDescription$1 as l, SidebarDropZone as lt, CopyButton as m, StatusPill as mt, Avatar$1 as n, SelectItem$1 as nt, Button$1 as o, SelectSeparator as ot, CodeBlock as p, StatCard$1 as pt, Metric as q, AvatarFallback$1 as r, SelectLabel as rt, Card$1 as s, SelectTrigger$1 as st, ArtifactPane$1 as t, SelectGroup as tt, CardFooter as u, Skeleton$1 as ut, DialogDescription$1 as v, TableCaption as vt, DialogTrigger as w, Tabs$1 as wt, DialogOverlay as x, TableHead as xt, DialogFooter$1 as y, TableCell as yt, DropdownMenuSubTrigger$1 as z, badgeVariants as zt };
|
package/dist/primitives.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { $ as InlineCode, $t as TerminalLine, A as DropZone, At as SkeletonTable, B as DropdownMenuRadioItem, Bt as TableCell, C as DialogDescription, Ct as SelectSeparator, D as DialogPortal, Dt as SidebarDropZoneProps, E as DialogOverlay, Et as SidebarDropZone, F as DropdownMenuGroup, Ft as StatusTone, G as DropdownMenuSubTrigger, Gt as TableRow, H as DropdownMenuShortcut, Ht as TableHead, I as DropdownMenuItem, It as Switch, J as EmptyStateProps, Jt as TabsList, K as DropdownMenuTrigger, Kt as Tabs, L as DropdownMenuLabel, Lt as Table, M as DropdownMenu, Mt as StatCardProps, N as DropdownMenuCheckboxItem, Nt as StatusPill, O as DialogTitle, Ot as Skeleton, P as DropdownMenuContent, Pt as StatusPillProps, Q as HeadingVariant, Qt as TerminalInput, R as DropdownMenuPortal, Rt as TableBody, S as DialogContent, Sn as TangleKnot, St as SelectScrollUpButton, T as DialogHeader, Tt as SelectValue, U as DropdownMenuSub, Ut as TableHeader, V as DropdownMenuSeparator, Vt as TableFooter, W as DropdownMenuSubContent, Wt as TableProps, X as FilterFieldProps, Xt as TerminalCursor, Y as FilterField, Yt as TabsTrigger, Z as Heading, Zt as TerminalDisplay, _ as CodeBlock, _n as HeadingProps, _t as SelectContent, a as AvatarImage, an as Toast, at as MetricProps, b as Dialog, bn as Logo, bt as SelectLabel, c as Button, cn as Toolbar, ct as PageHeader, d as CardContent, dn as UploadProgress, dt as PageShellProps, en as TextShimmer, et as InlineCodeProps, f as CardDescription, fn as UploadProgressProps, ft as Progress, g as CardTitleProps, gn as useToast, gt as Select, h as CardTitle, hn as useTheme, ht as SegmentedControlProps, i as AvatarFallback, in as ThemeToggle, it as Metric, j as DropZoneProps, jt as StatCard, k as DialogTrigger, kt as SkeletonCard, l as ButtonProps, ln as ToolbarProps, lt as PageHeaderProps, m as CardHeader, mn as buttonVariants, mt as SegmentedControlOption, n as ArtifactPaneProps, nn as Textarea, nt as InputProps, o as Badge, on as ToastContainer, ot as MetricStrip, p as CardFooter, pn as badgeVariants, pt as SegmentedControl, q as EmptyState, qt as TabsContent, r as Avatar, rn as TextareaProps, rt as Label, s as BadgeProps, sn as ToastProvider, st as MetricStripProps, t as ArtifactPane, tn as TextShimmerProps, tt as Input, u as Card, un as UploadFile, ut as PageShell, v as CodeBlockProps, vn as SectionTitle, vt as SelectGroup, w as DialogFooter, wt as SelectTrigger, x as DialogClose, xn as LogoProps, xt as SelectScrollDownButton, y as CopyButton, yn as SectionTitleProps, yt as SelectItem, z as DropdownMenuRadioGroup, zt as TableCaption } from "./index-
|
|
1
|
+
import { $ as InlineCode, $t as TerminalLine, A as DropZone, At as SkeletonTable, B as DropdownMenuRadioItem, Bt as TableCell, C as DialogDescription, Ct as SelectSeparator, D as DialogPortal, Dt as SidebarDropZoneProps, E as DialogOverlay, Et as SidebarDropZone, F as DropdownMenuGroup, Ft as StatusTone, G as DropdownMenuSubTrigger, Gt as TableRow, H as DropdownMenuShortcut, Ht as TableHead, I as DropdownMenuItem, It as Switch, J as EmptyStateProps, Jt as TabsList, K as DropdownMenuTrigger, Kt as Tabs, L as DropdownMenuLabel, Lt as Table, M as DropdownMenu, Mt as StatCardProps, N as DropdownMenuCheckboxItem, Nt as StatusPill, O as DialogTitle, Ot as Skeleton, P as DropdownMenuContent, Pt as StatusPillProps, Q as HeadingVariant, Qt as TerminalInput, R as DropdownMenuPortal, Rt as TableBody, S as DialogContent, Sn as TangleKnot, St as SelectScrollUpButton, T as DialogHeader, Tt as SelectValue, U as DropdownMenuSub, Ut as TableHeader, V as DropdownMenuSeparator, Vt as TableFooter, W as DropdownMenuSubContent, Wt as TableProps, X as FilterFieldProps, Xt as TerminalCursor, Y as FilterField, Yt as TabsTrigger, Z as Heading, Zt as TerminalDisplay, _ as CodeBlock, _n as HeadingProps, _t as SelectContent, a as AvatarImage, an as Toast, at as MetricProps, b as Dialog, bn as Logo, bt as SelectLabel, c as Button, cn as Toolbar, ct as PageHeader, d as CardContent, dn as UploadProgress, dt as PageShellProps, en as TextShimmer, et as InlineCodeProps, f as CardDescription, fn as UploadProgressProps, ft as Progress, g as CardTitleProps, gn as useToast, gt as Select, h as CardTitle, hn as useTheme, ht as SegmentedControlProps, i as AvatarFallback, in as ThemeToggle, it as Metric, j as DropZoneProps, jt as StatCard, k as DialogTrigger, kt as SkeletonCard, l as ButtonProps, ln as ToolbarProps, lt as PageHeaderProps, m as CardHeader, mn as buttonVariants, mt as SegmentedControlOption, n as ArtifactPaneProps, nn as Textarea, nt as InputProps, o as Badge, on as ToastContainer, ot as MetricStrip, p as CardFooter, pn as badgeVariants, pt as SegmentedControl, q as EmptyState, qt as TabsContent, r as Avatar, rn as TextareaProps, rt as Label, s as BadgeProps, sn as ToastProvider, st as MetricStripProps, t as ArtifactPane, tn as TextShimmerProps, tt as Input, u as Card, un as UploadFile, ut as PageShell, v as CodeBlockProps, vn as SectionTitle, vt as SelectGroup, w as DialogFooter, wt as SelectTrigger, x as DialogClose, xn as LogoProps, xt as SelectScrollDownButton, y as CopyButton, yn as SectionTitleProps, yt as SelectItem, z as DropdownMenuRadioGroup, zt as TableCaption } from "./index-wLVwzOsB.js";
|
|
2
2
|
export { ArtifactPane, type ArtifactPaneProps, Avatar, AvatarFallback, AvatarImage, Badge, type BadgeProps, Button, type ButtonProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, type CardTitleProps, CodeBlock, type CodeBlockProps, CopyButton, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropZone, type DropZoneProps, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, type EmptyStateProps, FilterField, type FilterFieldProps, Heading, type HeadingProps, type HeadingVariant, InlineCode, type InlineCodeProps, Input, type InputProps, Label, Logo, type LogoProps, Metric, type MetricProps, MetricStrip, type MetricStripProps, PageHeader, type PageHeaderProps, PageShell, type PageShellProps, Progress, SectionTitle, type SectionTitleProps, SegmentedControl, type SegmentedControlOption, type SegmentedControlProps, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, SidebarDropZone, type SidebarDropZoneProps, Skeleton, SkeletonCard, SkeletonTable, StatCard, type StatCardProps, StatusPill, type StatusPillProps, type StatusTone, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, type TableProps, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TangleKnot, TerminalCursor, TerminalDisplay, TerminalInput, TerminalLine, TextShimmer, type TextShimmerProps, Textarea, type TextareaProps, ThemeToggle, type Toast, ToastContainer, ToastProvider, Toolbar, type ToolbarProps, type UploadFile, UploadProgress, type UploadProgressProps, badgeVariants, buttonVariants, useTheme, useToast };
|
package/dist/primitives.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { $ as Select, A as DropdownMenuItem, At as TerminalInput, B as DropdownMenuTrigger, Bt as buttonVariants, C as DialogTitle, Ct as TableRow, D as DropdownMenuCheckboxItem, Dt as TabsTrigger, E as DropdownMenu, Et as TabsList, F as DropdownMenuSeparator, Ft as ToastContainer, G as Input, Gt as TangleKnot, H as FilterField, Ht as useToast, I as DropdownMenuShortcut, It as ToastProvider, J as MetricStrip, K as Label, L as DropdownMenuSub, Lt as Toolbar, M as DropdownMenuPortal, Mt as TextShimmer, N as DropdownMenuRadioGroup, Nt as Textarea, O as DropdownMenuContent, Ot as TerminalCursor, P as DropdownMenuRadioItem, Pt as ThemeToggle, Q as SegmentedControl, R as DropdownMenuSubContent, Rt as UploadProgress, S as DialogPortal, St as TableHeader, T as DropZone, Tt as TabsContent, U as Heading, Ut as SectionTitle, V as EmptyState, Vt as useTheme, W as InlineCode, Wt as Logo, X as PageShell, Y as PageHeader, Z as Progress, _ as DialogContent, _t as TableBody, a as Badge, at as SelectScrollUpButton, b as DialogHeader, bt as TableFooter, c as CardContent, ct as SelectValue, d as CardHeader, dt as SkeletonCard, et as SelectContent, f as CardTitle, ft as SkeletonTable, g as DialogClose, gt as Table, h as Dialog, ht as Switch, i as AvatarImage, it as SelectScrollDownButton, j as DropdownMenuLabel, jt as TerminalLine, k as DropdownMenuGroup, kt as TerminalDisplay, l as CardDescription, lt as SidebarDropZone, m as CopyButton, mt as StatusPill, n as Avatar, nt as SelectItem, o as Button, ot as SelectSeparator, p as CodeBlock, pt as StatCard, q as Metric, r as AvatarFallback, rt as SelectLabel, s as Card, st as SelectTrigger, t as ArtifactPane, tt as SelectGroup, u as CardFooter, ut as Skeleton, v as DialogDescription, vt as TableCaption, w as DialogTrigger, wt as Tabs, x as DialogOverlay, xt as TableHead, y as DialogFooter, yt as TableCell, z as DropdownMenuSubTrigger, zt as badgeVariants } from "./primitives-
|
|
1
|
+
import { $ as Select, A as DropdownMenuItem, At as TerminalInput, B as DropdownMenuTrigger, Bt as buttonVariants, C as DialogTitle, Ct as TableRow, D as DropdownMenuCheckboxItem, Dt as TabsTrigger, E as DropdownMenu, Et as TabsList, F as DropdownMenuSeparator, Ft as ToastContainer, G as Input, Gt as TangleKnot, H as FilterField, Ht as useToast, I as DropdownMenuShortcut, It as ToastProvider, J as MetricStrip, K as Label, L as DropdownMenuSub, Lt as Toolbar, M as DropdownMenuPortal, Mt as TextShimmer, N as DropdownMenuRadioGroup, Nt as Textarea, O as DropdownMenuContent, Ot as TerminalCursor, P as DropdownMenuRadioItem, Pt as ThemeToggle, Q as SegmentedControl, R as DropdownMenuSubContent, Rt as UploadProgress, S as DialogPortal, St as TableHeader, T as DropZone, Tt as TabsContent, U as Heading, Ut as SectionTitle, V as EmptyState, Vt as useTheme, W as InlineCode, Wt as Logo, X as PageShell, Y as PageHeader, Z as Progress, _ as DialogContent, _t as TableBody, a as Badge, at as SelectScrollUpButton, b as DialogHeader, bt as TableFooter, c as CardContent, ct as SelectValue, d as CardHeader, dt as SkeletonCard, et as SelectContent, f as CardTitle, ft as SkeletonTable, g as DialogClose, gt as Table, h as Dialog, ht as Switch, i as AvatarImage, it as SelectScrollDownButton, j as DropdownMenuLabel, jt as TerminalLine, k as DropdownMenuGroup, kt as TerminalDisplay, l as CardDescription, lt as SidebarDropZone, m as CopyButton, mt as StatusPill, n as Avatar, nt as SelectItem, o as Button, ot as SelectSeparator, p as CodeBlock, pt as StatCard, q as Metric, r as AvatarFallback, rt as SelectLabel, s as Card, st as SelectTrigger, t as ArtifactPane, tt as SelectGroup, u as CardFooter, ut as Skeleton, v as DialogDescription, vt as TableCaption, w as DialogTrigger, wt as Tabs, x as DialogOverlay, xt as TableHead, y as DialogFooter, yt as TableCell, z as DropdownMenuSubTrigger, zt as badgeVariants } from "./primitives-C4qn9fZ8.js";
|
|
2
2
|
export { ArtifactPane, Avatar, AvatarFallback, AvatarImage, Badge, Button, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, CodeBlock, CopyButton, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropZone, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, FilterField, Heading, InlineCode, Input, Label, Logo, Metric, MetricStrip, PageHeader, PageShell, Progress, SectionTitle, SegmentedControl, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, SidebarDropZone, Skeleton, SkeletonCard, SkeletonTable, StatCard, StatusPill, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TangleKnot, TerminalCursor, TerminalDisplay, TerminalInput, TerminalLine, TextShimmer, Textarea, ThemeToggle, ToastContainer, ToastProvider, Toolbar, UploadProgress, badgeVariants, buttonVariants, useTheme, useToast };
|