@tangle-network/sandbox-ui 0.2.2 → 0.3.4
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 +201 -10
- package/dist/auth.js +2 -2
- package/dist/chat-container-C8eHLw8z.d.ts +67 -0
- package/dist/chat.d.ts +70 -78
- package/dist/chat.js +8 -8
- package/dist/chunk-4F2GJRGU.js +756 -0
- package/dist/{chunk-HYEAX3DC.js → chunk-5LV6DZZF.js} +445 -114
- package/dist/{chunk-QSQBDR3N.js → chunk-BX6AQMUS.js} +5 -2
- package/dist/chunk-CCKNIAS7.js +124 -0
- package/dist/chunk-CJ2RYVZH.js +128 -0
- package/dist/{chunk-KMXV7DDX.js → chunk-CNWVHQFY.js} +1 -1
- package/dist/{chunk-OU4TRNQZ.js → chunk-COCSO7FG.js} +3 -3
- package/dist/chunk-FJSVPBKY.js +85 -0
- package/dist/chunk-FRGMMANX.js +102 -0
- package/dist/{chunk-E6FS7R4X.js → chunk-HWLX5NME.js} +1 -1
- package/dist/chunk-HY5IBRCE.js +1171 -0
- package/dist/chunk-JF6E2DS5.js +610 -0
- package/dist/chunk-MUOL44AE.js +121 -0
- package/dist/chunk-MXCSSOGH.js +105 -0
- package/dist/{chunk-NI2EI43H.js → chunk-PDV7W4NY.js} +9 -124
- package/dist/chunk-QGI5E7JD.js +1106 -0
- package/dist/chunk-TQN3VR4F.js +92 -0
- package/dist/{chunk-SOT2V7TX.js → chunk-TXI4MZAZ.js} +62 -144
- package/dist/chunk-WUR652Y3.js +1140 -0
- package/dist/chunk-YDBXQQLC.js +336 -0
- package/dist/{chunk-4EIWPJMJ.js → chunk-ZP6GSX4D.js} +36 -27
- package/dist/dashboard.d.ts +4 -111
- package/dist/dashboard.js +17 -4
- package/dist/{expanded-tool-detail-OkXGqTHe.d.ts → expanded-tool-detail-BDi_h_dZ.d.ts} +11 -4
- package/dist/file-tabs-CmaoDVBI.d.ts +72 -0
- package/dist/files.d.ts +25 -44
- package/dist/files.js +8 -3
- package/{src/styles → dist}/globals.css +16 -67
- package/dist/hooks.d.ts +5 -4
- package/dist/hooks.js +14 -9
- package/dist/index-BOjBJwzD.d.ts +219 -0
- package/dist/index.d.ts +39 -10
- package/dist/index.js +190 -121
- package/dist/markdown.d.ts +1 -24
- package/dist/markdown.js +1 -7
- package/dist/openui.d.ts +115 -0
- package/dist/openui.js +11 -0
- package/dist/pages.d.ts +3 -2
- package/dist/pages.js +19 -16
- package/dist/primitives.js +25 -19
- package/dist/run.d.ts +2 -2
- package/dist/run.js +8 -7
- package/dist/{use-sidecar-auth-Bb0-w3lX.d.ts → sdk-hooks.d.ts} +61 -72
- package/dist/sdk-hooks.js +29 -0
- package/dist/styles.css +179 -0
- package/dist/tokens.css +275 -0
- package/dist/{tool-display-BvsVW_Ur.d.ts → tool-display-Ct9nFAzJ.d.ts} +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/{usage-chart-DINgSVL5.d.ts → usage-chart-CY9xo3KX.d.ts} +8 -3
- package/dist/use-pty-session-DeZSxOCN.d.ts +69 -0
- package/dist/utils.d.ts +1 -1
- package/dist/utils.js +1 -1
- package/dist/workspace.d.ts +171 -33
- package/dist/workspace.js +25 -1
- package/package.json +10 -3
- package/tailwind.config.cjs +39 -0
- package/dist/chunk-2UHPE5T7.js +0 -201
- package/dist/chunk-6MQIDUPA.js +0 -502
- package/dist/chunk-J4OADEUK.js +0 -814
- package/dist/chunk-KYY2X6LY.js +0 -318
- package/dist/chunk-L6ZDH5F4.js +0 -334
- package/dist/chunk-M34OA6PQ.js +0 -233
- package/dist/chunk-M6VLC32S.js +0 -219
- package/dist/chunk-U62G5TS7.js +0 -472
- package/src/styles/tokens.css +0 -73
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import {
|
|
2
|
+
cn
|
|
3
|
+
} from "./chunk-RQHJBTEU.js";
|
|
4
|
+
|
|
5
|
+
// src/primitives/input.tsx
|
|
6
|
+
import * as React from "react";
|
|
7
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
+
var Input = React.forwardRef(
|
|
9
|
+
({ className, type, variant = "default", label, error, hint, id, ...props }, ref) => {
|
|
10
|
+
const inputId = id ?? label?.toLowerCase().replace(/\s+/g, "-");
|
|
11
|
+
const variants = {
|
|
12
|
+
default: "border-input focus:ring-ring",
|
|
13
|
+
sandbox: "border-[var(--border-accent)] focus:border-[var(--border-accent-hover)] focus:ring-[var(--border-accent)]"
|
|
14
|
+
};
|
|
15
|
+
const input = /* @__PURE__ */ jsx(
|
|
16
|
+
"input",
|
|
17
|
+
{
|
|
18
|
+
type,
|
|
19
|
+
id: inputId,
|
|
20
|
+
className: cn(
|
|
21
|
+
"flex h-11 w-full rounded-lg border bg-card/50 px-4 py-2 text-sm transition-all duration-200",
|
|
22
|
+
"placeholder:text-muted-foreground",
|
|
23
|
+
"focus:outline-none focus:ring-2 focus:ring-offset-0",
|
|
24
|
+
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
25
|
+
"file:border-0 file:bg-transparent file:font-medium file:text-sm",
|
|
26
|
+
error ? "border-red-500/50 focus:ring-red-500/20" : variants[variant],
|
|
27
|
+
className
|
|
28
|
+
),
|
|
29
|
+
ref,
|
|
30
|
+
...props
|
|
31
|
+
}
|
|
32
|
+
);
|
|
33
|
+
if (!label && !error && !hint) return input;
|
|
34
|
+
return /* @__PURE__ */ jsxs("div", { className: "w-full space-y-1.5", children: [
|
|
35
|
+
label && /* @__PURE__ */ jsx(
|
|
36
|
+
"label",
|
|
37
|
+
{
|
|
38
|
+
htmlFor: inputId,
|
|
39
|
+
className: "block font-medium text-muted-foreground text-sm",
|
|
40
|
+
children: label
|
|
41
|
+
}
|
|
42
|
+
),
|
|
43
|
+
input,
|
|
44
|
+
error && /* @__PURE__ */ jsx("p", { className: "text-red-400 text-sm", children: error }),
|
|
45
|
+
hint && !error && /* @__PURE__ */ jsx("p", { className: "text-muted-foreground/70 text-sm", children: hint })
|
|
46
|
+
] });
|
|
47
|
+
}
|
|
48
|
+
);
|
|
49
|
+
Input.displayName = "Input";
|
|
50
|
+
var Textarea = React.forwardRef(
|
|
51
|
+
({ className, variant = "default", label, error, hint, id, ...props }, ref) => {
|
|
52
|
+
const textareaId = id ?? label?.toLowerCase().replace(/\s+/g, "-");
|
|
53
|
+
const variants = {
|
|
54
|
+
default: "border-input focus:ring-ring",
|
|
55
|
+
sandbox: "border-[var(--border-accent)] focus:border-[var(--border-accent-hover)] focus:ring-[var(--border-accent)]"
|
|
56
|
+
};
|
|
57
|
+
const textarea = /* @__PURE__ */ jsx(
|
|
58
|
+
"textarea",
|
|
59
|
+
{
|
|
60
|
+
id: textareaId,
|
|
61
|
+
className: cn(
|
|
62
|
+
"flex min-h-[120px] w-full resize-y rounded-lg border bg-card/50 px-4 py-3 text-sm transition-all duration-200",
|
|
63
|
+
"placeholder:text-muted-foreground",
|
|
64
|
+
"focus:outline-none focus:ring-2 focus:ring-offset-0",
|
|
65
|
+
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
66
|
+
error ? "border-red-500/50 focus:ring-red-500/20" : variants[variant],
|
|
67
|
+
className
|
|
68
|
+
),
|
|
69
|
+
ref,
|
|
70
|
+
...props
|
|
71
|
+
}
|
|
72
|
+
);
|
|
73
|
+
if (!label && !error && !hint) return textarea;
|
|
74
|
+
return /* @__PURE__ */ jsxs("div", { className: "w-full space-y-1.5", children: [
|
|
75
|
+
label && /* @__PURE__ */ jsx(
|
|
76
|
+
"label",
|
|
77
|
+
{
|
|
78
|
+
htmlFor: textareaId,
|
|
79
|
+
className: "block font-medium text-muted-foreground text-sm",
|
|
80
|
+
children: label
|
|
81
|
+
}
|
|
82
|
+
),
|
|
83
|
+
textarea,
|
|
84
|
+
error && /* @__PURE__ */ jsx("p", { className: "text-red-400 text-sm", children: error }),
|
|
85
|
+
hint && !error && /* @__PURE__ */ jsx("p", { className: "text-muted-foreground/70 text-sm", children: hint })
|
|
86
|
+
] });
|
|
87
|
+
}
|
|
88
|
+
);
|
|
89
|
+
Textarea.displayName = "Textarea";
|
|
90
|
+
|
|
91
|
+
// src/primitives/empty-state.tsx
|
|
92
|
+
import * as React2 from "react";
|
|
93
|
+
import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
94
|
+
var EmptyState = React2.forwardRef(
|
|
95
|
+
({ className, icon, title, description, action, ...props }, ref) => {
|
|
96
|
+
return /* @__PURE__ */ jsxs2(
|
|
97
|
+
"div",
|
|
98
|
+
{
|
|
99
|
+
ref,
|
|
100
|
+
className: cn(
|
|
101
|
+
"flex flex-col items-center justify-center px-4 py-16 text-center",
|
|
102
|
+
className
|
|
103
|
+
),
|
|
104
|
+
...props,
|
|
105
|
+
children: [
|
|
106
|
+
icon && /* @__PURE__ */ jsx2("div", { className: "mb-4 rounded-full bg-muted p-4 text-muted-foreground", children: icon }),
|
|
107
|
+
/* @__PURE__ */ jsx2("h3", { className: "font-semibold text-lg", children: title }),
|
|
108
|
+
description && /* @__PURE__ */ jsx2("p", { className: "mt-2 max-w-sm text-muted-foreground text-sm", children: description }),
|
|
109
|
+
action && /* @__PURE__ */ jsx2("div", { className: "mt-6", children: action })
|
|
110
|
+
]
|
|
111
|
+
}
|
|
112
|
+
);
|
|
113
|
+
}
|
|
114
|
+
);
|
|
115
|
+
EmptyState.displayName = "EmptyState";
|
|
116
|
+
|
|
117
|
+
export {
|
|
118
|
+
Input,
|
|
119
|
+
Textarea,
|
|
120
|
+
EmptyState
|
|
121
|
+
};
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import {
|
|
2
|
+
cn
|
|
3
|
+
} from "./chunk-RQHJBTEU.js";
|
|
4
|
+
|
|
5
|
+
// src/primitives/card.tsx
|
|
6
|
+
import * as React from "react";
|
|
7
|
+
import { jsx } from "react/jsx-runtime";
|
|
8
|
+
var Card = React.forwardRef(({ className, variant = "default", hover = false, ...props }, ref) => {
|
|
9
|
+
const variants = {
|
|
10
|
+
default: "bg-card border-border",
|
|
11
|
+
glass: "bg-card/60 backdrop-blur-xl border-border/50",
|
|
12
|
+
sandbox: "bg-card/80 backdrop-blur-xl border-[var(--border-accent)] shadow-[var(--shadow-accent)]"
|
|
13
|
+
};
|
|
14
|
+
return /* @__PURE__ */ jsx(
|
|
15
|
+
"div",
|
|
16
|
+
{
|
|
17
|
+
ref,
|
|
18
|
+
className: cn(
|
|
19
|
+
"rounded-xl border text-card-foreground transition-all duration-300",
|
|
20
|
+
variants[variant],
|
|
21
|
+
hover && "cursor-pointer hover:border-muted-foreground/50 hover:shadow-xl",
|
|
22
|
+
className
|
|
23
|
+
),
|
|
24
|
+
...props
|
|
25
|
+
}
|
|
26
|
+
);
|
|
27
|
+
});
|
|
28
|
+
Card.displayName = "Card";
|
|
29
|
+
var CardHeader = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
30
|
+
"div",
|
|
31
|
+
{
|
|
32
|
+
ref,
|
|
33
|
+
className: cn("flex flex-col space-y-1.5 p-6", className),
|
|
34
|
+
...props
|
|
35
|
+
}
|
|
36
|
+
));
|
|
37
|
+
CardHeader.displayName = "CardHeader";
|
|
38
|
+
var CardTitle = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
39
|
+
"h3",
|
|
40
|
+
{
|
|
41
|
+
ref,
|
|
42
|
+
className: cn("font-semibold leading-none tracking-tight", className),
|
|
43
|
+
...props
|
|
44
|
+
}
|
|
45
|
+
));
|
|
46
|
+
CardTitle.displayName = "CardTitle";
|
|
47
|
+
var CardDescription = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
48
|
+
"p",
|
|
49
|
+
{
|
|
50
|
+
ref,
|
|
51
|
+
className: cn("text-muted-foreground text-sm", className),
|
|
52
|
+
...props
|
|
53
|
+
}
|
|
54
|
+
));
|
|
55
|
+
CardDescription.displayName = "CardDescription";
|
|
56
|
+
var CardContent = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("p-6 pt-0", className), ...props }));
|
|
57
|
+
CardContent.displayName = "CardContent";
|
|
58
|
+
var CardFooter = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
59
|
+
"div",
|
|
60
|
+
{
|
|
61
|
+
ref,
|
|
62
|
+
className: cn("flex items-center p-6 pt-0", className),
|
|
63
|
+
...props
|
|
64
|
+
}
|
|
65
|
+
));
|
|
66
|
+
CardFooter.displayName = "CardFooter";
|
|
67
|
+
|
|
68
|
+
// src/primitives/badge.tsx
|
|
69
|
+
import { cva } from "class-variance-authority";
|
|
70
|
+
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
71
|
+
var badgeVariants = cva(
|
|
72
|
+
"inline-flex items-center rounded-full border px-2.5 py-0.5 font-semibold text-xs transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
|
|
73
|
+
{
|
|
74
|
+
variants: {
|
|
75
|
+
variant: {
|
|
76
|
+
default: "border-transparent bg-primary text-primary-foreground",
|
|
77
|
+
secondary: "border-transparent bg-secondary text-secondary-foreground",
|
|
78
|
+
destructive: "border-transparent bg-destructive text-destructive-foreground",
|
|
79
|
+
outline: "text-foreground",
|
|
80
|
+
success: "border-green-500/20 border-transparent bg-green-500/10 text-green-400",
|
|
81
|
+
warning: "border-transparent border-yellow-500/20 bg-yellow-500/10 text-yellow-400",
|
|
82
|
+
error: "border-red-500/20 border-transparent bg-red-500/10 text-red-400",
|
|
83
|
+
info: "border-blue-500/20 border-transparent bg-blue-500/10 text-blue-400",
|
|
84
|
+
sandbox: "border-[var(--border-accent)] bg-[var(--accent-surface-soft)] text-[var(--accent-text)]"
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
defaultVariants: {
|
|
88
|
+
variant: "default"
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
);
|
|
92
|
+
function Badge({ className, variant, ...props }) {
|
|
93
|
+
return /* @__PURE__ */ jsx2("div", { className: cn(badgeVariants({ variant }), className), ...props });
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
export {
|
|
97
|
+
Card,
|
|
98
|
+
CardHeader,
|
|
99
|
+
CardTitle,
|
|
100
|
+
CardDescription,
|
|
101
|
+
CardContent,
|
|
102
|
+
CardFooter,
|
|
103
|
+
badgeVariants,
|
|
104
|
+
Badge
|
|
105
|
+
};
|
|
@@ -28,7 +28,7 @@ DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
|
|
|
28
28
|
var DialogContent = React.forwardRef(({ className, children, variant = "default", ...props }, ref) => {
|
|
29
29
|
const variants = {
|
|
30
30
|
default: "border-border",
|
|
31
|
-
sandbox: "border-
|
|
31
|
+
sandbox: "border-[var(--border-accent)] shadow-[var(--shadow-accent)]"
|
|
32
32
|
};
|
|
33
33
|
return /* @__PURE__ */ jsxs(DialogPortal, { children: [
|
|
34
34
|
/* @__PURE__ */ jsx(DialogOverlay, {}),
|
|
@@ -110,104 +110,18 @@ var DialogDescription = React.forwardRef(({ className, ...props }, ref) => /* @_
|
|
|
110
110
|
));
|
|
111
111
|
DialogDescription.displayName = DialogPrimitive.Description.displayName;
|
|
112
112
|
|
|
113
|
-
// src/primitives/input.tsx
|
|
114
|
-
import * as React2 from "react";
|
|
115
|
-
import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
116
|
-
var Input = React2.forwardRef(
|
|
117
|
-
({ className, type, variant = "default", label, error, hint, id, ...props }, ref) => {
|
|
118
|
-
const inputId = id ?? label?.toLowerCase().replace(/\s+/g, "-");
|
|
119
|
-
const variants = {
|
|
120
|
-
default: "border-input focus:ring-ring",
|
|
121
|
-
sandbox: "border-purple-500/20 focus:border-purple-500/50 focus:ring-purple-500/20"
|
|
122
|
-
};
|
|
123
|
-
const input = /* @__PURE__ */ jsx2(
|
|
124
|
-
"input",
|
|
125
|
-
{
|
|
126
|
-
type,
|
|
127
|
-
id: inputId,
|
|
128
|
-
className: cn(
|
|
129
|
-
"flex h-11 w-full rounded-lg border bg-card/50 px-4 py-2 text-sm transition-all duration-200",
|
|
130
|
-
"placeholder:text-muted-foreground",
|
|
131
|
-
"focus:outline-none focus:ring-2 focus:ring-offset-0",
|
|
132
|
-
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
133
|
-
"file:border-0 file:bg-transparent file:font-medium file:text-sm",
|
|
134
|
-
error ? "border-red-500/50 focus:ring-red-500/20" : variants[variant],
|
|
135
|
-
className
|
|
136
|
-
),
|
|
137
|
-
ref,
|
|
138
|
-
...props
|
|
139
|
-
}
|
|
140
|
-
);
|
|
141
|
-
if (!label && !error && !hint) return input;
|
|
142
|
-
return /* @__PURE__ */ jsxs2("div", { className: "w-full space-y-1.5", children: [
|
|
143
|
-
label && /* @__PURE__ */ jsx2(
|
|
144
|
-
"label",
|
|
145
|
-
{
|
|
146
|
-
htmlFor: inputId,
|
|
147
|
-
className: "block font-medium text-muted-foreground text-sm",
|
|
148
|
-
children: label
|
|
149
|
-
}
|
|
150
|
-
),
|
|
151
|
-
input,
|
|
152
|
-
error && /* @__PURE__ */ jsx2("p", { className: "text-red-400 text-sm", children: error }),
|
|
153
|
-
hint && !error && /* @__PURE__ */ jsx2("p", { className: "text-muted-foreground/70 text-sm", children: hint })
|
|
154
|
-
] });
|
|
155
|
-
}
|
|
156
|
-
);
|
|
157
|
-
Input.displayName = "Input";
|
|
158
|
-
var Textarea = React2.forwardRef(
|
|
159
|
-
({ className, variant = "default", label, error, hint, id, ...props }, ref) => {
|
|
160
|
-
const textareaId = id ?? label?.toLowerCase().replace(/\s+/g, "-");
|
|
161
|
-
const variants = {
|
|
162
|
-
default: "border-input focus:ring-ring",
|
|
163
|
-
sandbox: "border-purple-500/20 focus:border-purple-500/50 focus:ring-purple-500/20"
|
|
164
|
-
};
|
|
165
|
-
const textarea = /* @__PURE__ */ jsx2(
|
|
166
|
-
"textarea",
|
|
167
|
-
{
|
|
168
|
-
id: textareaId,
|
|
169
|
-
className: cn(
|
|
170
|
-
"flex min-h-[120px] w-full resize-y rounded-lg border bg-card/50 px-4 py-3 text-sm transition-all duration-200",
|
|
171
|
-
"placeholder:text-muted-foreground",
|
|
172
|
-
"focus:outline-none focus:ring-2 focus:ring-offset-0",
|
|
173
|
-
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
174
|
-
error ? "border-red-500/50 focus:ring-red-500/20" : variants[variant],
|
|
175
|
-
className
|
|
176
|
-
),
|
|
177
|
-
ref,
|
|
178
|
-
...props
|
|
179
|
-
}
|
|
180
|
-
);
|
|
181
|
-
if (!label && !error && !hint) return textarea;
|
|
182
|
-
return /* @__PURE__ */ jsxs2("div", { className: "w-full space-y-1.5", children: [
|
|
183
|
-
label && /* @__PURE__ */ jsx2(
|
|
184
|
-
"label",
|
|
185
|
-
{
|
|
186
|
-
htmlFor: textareaId,
|
|
187
|
-
className: "block font-medium text-muted-foreground text-sm",
|
|
188
|
-
children: label
|
|
189
|
-
}
|
|
190
|
-
),
|
|
191
|
-
textarea,
|
|
192
|
-
error && /* @__PURE__ */ jsx2("p", { className: "text-red-400 text-sm", children: error }),
|
|
193
|
-
hint && !error && /* @__PURE__ */ jsx2("p", { className: "text-muted-foreground/70 text-sm", children: hint })
|
|
194
|
-
] });
|
|
195
|
-
}
|
|
196
|
-
);
|
|
197
|
-
Textarea.displayName = "Textarea";
|
|
198
|
-
|
|
199
113
|
// src/primitives/tabs.tsx
|
|
200
114
|
import * as TabsPrimitive from "@radix-ui/react-tabs";
|
|
201
|
-
import * as
|
|
202
|
-
import { jsx as
|
|
115
|
+
import * as React2 from "react";
|
|
116
|
+
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
203
117
|
var Tabs = TabsPrimitive.Root;
|
|
204
|
-
var TabsList =
|
|
118
|
+
var TabsList = React2.forwardRef(({ className, variant = "default", ...props }, ref) => {
|
|
205
119
|
const variants = {
|
|
206
120
|
default: "inline-flex h-10 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground",
|
|
207
121
|
pills: "inline-flex items-center gap-2",
|
|
208
122
|
underline: "inline-flex items-center gap-4 border-b border-border"
|
|
209
123
|
};
|
|
210
|
-
return /* @__PURE__ */
|
|
124
|
+
return /* @__PURE__ */ jsx2(
|
|
211
125
|
TabsPrimitive.List,
|
|
212
126
|
{
|
|
213
127
|
ref,
|
|
@@ -217,13 +131,13 @@ var TabsList = React3.forwardRef(({ className, variant = "default", ...props },
|
|
|
217
131
|
);
|
|
218
132
|
});
|
|
219
133
|
TabsList.displayName = TabsPrimitive.List.displayName;
|
|
220
|
-
var TabsTrigger =
|
|
134
|
+
var TabsTrigger = React2.forwardRef(({ className, variant = "default", ...props }, ref) => {
|
|
221
135
|
const variants = {
|
|
222
136
|
default: "inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm",
|
|
223
137
|
pills: "inline-flex items-center justify-center whitespace-nowrap rounded-full px-4 py-2 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-primary data-[state=active]:text-primary-foreground data-[state=inactive]:text-muted-foreground data-[state=inactive]:hover:bg-muted",
|
|
224
138
|
underline: "inline-flex items-center justify-center whitespace-nowrap pb-3 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border-b-2 border-transparent data-[state=active]:border-primary data-[state=active]:text-foreground data-[state=inactive]:text-muted-foreground"
|
|
225
139
|
};
|
|
226
|
-
return /* @__PURE__ */
|
|
140
|
+
return /* @__PURE__ */ jsx2(
|
|
227
141
|
TabsPrimitive.Trigger,
|
|
228
142
|
{
|
|
229
143
|
ref,
|
|
@@ -233,7 +147,7 @@ var TabsTrigger = React3.forwardRef(({ className, variant = "default", ...props
|
|
|
233
147
|
);
|
|
234
148
|
});
|
|
235
149
|
TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
|
|
236
|
-
var TabsContent =
|
|
150
|
+
var TabsContent = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx2(
|
|
237
151
|
TabsPrimitive.Content,
|
|
238
152
|
{
|
|
239
153
|
ref,
|
|
@@ -247,32 +161,6 @@ var TabsContent = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
247
161
|
));
|
|
248
162
|
TabsContent.displayName = TabsPrimitive.Content.displayName;
|
|
249
163
|
|
|
250
|
-
// src/primitives/empty-state.tsx
|
|
251
|
-
import * as React4 from "react";
|
|
252
|
-
import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
253
|
-
var EmptyState = React4.forwardRef(
|
|
254
|
-
({ className, icon, title, description, action, ...props }, ref) => {
|
|
255
|
-
return /* @__PURE__ */ jsxs3(
|
|
256
|
-
"div",
|
|
257
|
-
{
|
|
258
|
-
ref,
|
|
259
|
-
className: cn(
|
|
260
|
-
"flex flex-col items-center justify-center px-4 py-16 text-center",
|
|
261
|
-
className
|
|
262
|
-
),
|
|
263
|
-
...props,
|
|
264
|
-
children: [
|
|
265
|
-
icon && /* @__PURE__ */ jsx4("div", { className: "mb-4 rounded-full bg-muted p-4 text-muted-foreground", children: icon }),
|
|
266
|
-
/* @__PURE__ */ jsx4("h3", { className: "font-semibold text-lg", children: title }),
|
|
267
|
-
description && /* @__PURE__ */ jsx4("p", { className: "mt-2 max-w-sm text-muted-foreground text-sm", children: description }),
|
|
268
|
-
action && /* @__PURE__ */ jsx4("div", { className: "mt-6", children: action })
|
|
269
|
-
]
|
|
270
|
-
}
|
|
271
|
-
);
|
|
272
|
-
}
|
|
273
|
-
);
|
|
274
|
-
EmptyState.displayName = "EmptyState";
|
|
275
|
-
|
|
276
164
|
export {
|
|
277
165
|
Dialog,
|
|
278
166
|
DialogTrigger,
|
|
@@ -284,11 +172,8 @@ export {
|
|
|
284
172
|
DialogFooter,
|
|
285
173
|
DialogTitle,
|
|
286
174
|
DialogDescription,
|
|
287
|
-
Input,
|
|
288
|
-
Textarea,
|
|
289
175
|
Tabs,
|
|
290
176
|
TabsList,
|
|
291
177
|
TabsTrigger,
|
|
292
|
-
TabsContent
|
|
293
|
-
EmptyState
|
|
178
|
+
TabsContent
|
|
294
179
|
};
|