@pactor-app/ui 0.1.0
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/LICENSE +21 -0
- package/README.md +113 -0
- package/dist/chunk-57NRUZ5G.js +95 -0
- package/dist/chunk-DMK6RSTK.js +746 -0
- package/dist/chunk-OH3U6PCM.js +536 -0
- package/dist/chunk-OUTSIJMO.js +442 -0
- package/dist/chunk-QDTVOJ5P.js +147 -0
- package/dist/chunk-QWZ23QLS.js +68 -0
- package/dist/chunk-RQHJBTEU.js +10 -0
- package/dist/chunk-SNFDI77B.js +136 -0
- package/dist/chunk-XGOTHOI6.js +619 -0
- package/dist/components/index.cjs +1111 -0
- package/dist/components/index.d.cts +307 -0
- package/dist/components/index.d.ts +307 -0
- package/dist/components/index.js +40 -0
- package/dist/index.cjs +2626 -0
- package/dist/index.d.cts +41 -0
- package/dist/index.d.ts +41 -0
- package/dist/index.js +87 -0
- package/dist/interaction/index.cjs +752 -0
- package/dist/interaction/index.d.cts +178 -0
- package/dist/interaction/index.d.ts +178 -0
- package/dist/interaction/index.js +19 -0
- package/dist/layout/index.cjs +938 -0
- package/dist/layout/index.d.cts +158 -0
- package/dist/layout/index.d.ts +158 -0
- package/dist/layout/index.js +25 -0
- package/dist/ui/index.cjs +1076 -0
- package/dist/ui/index.d.cts +166 -0
- package/dist/ui/index.d.ts +166 -0
- package/dist/ui/index.js +233 -0
- package/package.json +127 -0
- package/styles.css +1672 -0
|
@@ -0,0 +1,1076 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
|
|
30
|
+
// src/ui/index.ts
|
|
31
|
+
var ui_exports = {};
|
|
32
|
+
__export(ui_exports, {
|
|
33
|
+
Accordion: () => Accordion,
|
|
34
|
+
AccordionContent: () => AccordionContent,
|
|
35
|
+
AccordionItem: () => AccordionItem,
|
|
36
|
+
AccordionTrigger: () => AccordionTrigger,
|
|
37
|
+
Alert: () => Alert,
|
|
38
|
+
AlertDescription: () => AlertDescription,
|
|
39
|
+
AlertTitle: () => AlertTitle,
|
|
40
|
+
Badge: () => Badge,
|
|
41
|
+
Button: () => Button,
|
|
42
|
+
Card: () => Card,
|
|
43
|
+
CardAction: () => CardAction,
|
|
44
|
+
CardContent: () => CardContent,
|
|
45
|
+
CardDescription: () => CardDescription,
|
|
46
|
+
CardFooter: () => CardFooter,
|
|
47
|
+
CardHeader: () => CardHeader,
|
|
48
|
+
CardTitle: () => CardTitle,
|
|
49
|
+
Dialog: () => Dialog,
|
|
50
|
+
DialogClose: () => DialogClose,
|
|
51
|
+
DialogContent: () => DialogContent,
|
|
52
|
+
DialogDescription: () => DialogDescription,
|
|
53
|
+
DialogFooter: () => DialogFooter,
|
|
54
|
+
DialogHeader: () => DialogHeader,
|
|
55
|
+
DialogOverlay: () => DialogOverlay,
|
|
56
|
+
DialogPortal: () => DialogPortal,
|
|
57
|
+
DialogTitle: () => DialogTitle,
|
|
58
|
+
DialogTrigger: () => DialogTrigger,
|
|
59
|
+
Input: () => Input,
|
|
60
|
+
Label: () => Label,
|
|
61
|
+
Popover: () => Popover,
|
|
62
|
+
PopoverContent: () => PopoverContent,
|
|
63
|
+
PopoverTrigger: () => PopoverTrigger,
|
|
64
|
+
Select: () => Select,
|
|
65
|
+
SelectContent: () => SelectContent,
|
|
66
|
+
SelectGroup: () => SelectGroup,
|
|
67
|
+
SelectItem: () => SelectItem,
|
|
68
|
+
SelectLabel: () => SelectLabel,
|
|
69
|
+
SelectScrollDownButton: () => SelectScrollDownButton,
|
|
70
|
+
SelectScrollUpButton: () => SelectScrollUpButton,
|
|
71
|
+
SelectSeparator: () => SelectSeparator,
|
|
72
|
+
SelectTrigger: () => SelectTrigger,
|
|
73
|
+
SelectValue: () => SelectValue,
|
|
74
|
+
Separator: () => Separator,
|
|
75
|
+
Skeleton: () => Skeleton,
|
|
76
|
+
Table: () => Table,
|
|
77
|
+
TableBody: () => TableBody,
|
|
78
|
+
TableCaption: () => TableCaption,
|
|
79
|
+
TableCell: () => TableCell,
|
|
80
|
+
TableFooter: () => TableFooter,
|
|
81
|
+
TableHead: () => TableHead,
|
|
82
|
+
TableHeader: () => TableHeader,
|
|
83
|
+
TableRow: () => TableRow,
|
|
84
|
+
Tabs: () => Tabs,
|
|
85
|
+
TabsContent: () => TabsContent,
|
|
86
|
+
TabsList: () => TabsList,
|
|
87
|
+
TabsTrigger: () => TabsTrigger,
|
|
88
|
+
Textarea: () => Textarea,
|
|
89
|
+
badgeVariants: () => badgeVariants,
|
|
90
|
+
buttonVariants: () => buttonVariants
|
|
91
|
+
});
|
|
92
|
+
module.exports = __toCommonJS(ui_exports);
|
|
93
|
+
|
|
94
|
+
// src/ui/accordion.tsx
|
|
95
|
+
var import_accordion = require("@base-ui/react/accordion");
|
|
96
|
+
var import_lucide_react = require("lucide-react");
|
|
97
|
+
|
|
98
|
+
// src/lib/utils.ts
|
|
99
|
+
var import_clsx = require("clsx");
|
|
100
|
+
var import_tailwind_merge = require("tailwind-merge");
|
|
101
|
+
function cn(...inputs) {
|
|
102
|
+
return (0, import_tailwind_merge.twMerge)((0, import_clsx.clsx)(inputs));
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
// src/ui/accordion.tsx
|
|
106
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
107
|
+
function toArray(value) {
|
|
108
|
+
if (value === void 0) {
|
|
109
|
+
return void 0;
|
|
110
|
+
}
|
|
111
|
+
return Array.isArray(value) ? value : [value];
|
|
112
|
+
}
|
|
113
|
+
function Accordion({
|
|
114
|
+
type = "single",
|
|
115
|
+
value,
|
|
116
|
+
defaultValue,
|
|
117
|
+
onValueChange,
|
|
118
|
+
...props
|
|
119
|
+
}) {
|
|
120
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
121
|
+
import_accordion.Accordion.Root,
|
|
122
|
+
{
|
|
123
|
+
"data-slot": "accordion",
|
|
124
|
+
multiple: type === "multiple",
|
|
125
|
+
value: toArray(value),
|
|
126
|
+
defaultValue: toArray(defaultValue),
|
|
127
|
+
onValueChange: onValueChange === void 0 ? void 0 : (next) => onValueChange(type === "multiple" ? next : next[0] ?? ""),
|
|
128
|
+
...props
|
|
129
|
+
}
|
|
130
|
+
);
|
|
131
|
+
}
|
|
132
|
+
function AccordionItem({
|
|
133
|
+
className,
|
|
134
|
+
...props
|
|
135
|
+
}) {
|
|
136
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
137
|
+
import_accordion.Accordion.Item,
|
|
138
|
+
{
|
|
139
|
+
"data-slot": "accordion-item",
|
|
140
|
+
className: cn("border-b border-border last:border-b-0", className),
|
|
141
|
+
...props
|
|
142
|
+
}
|
|
143
|
+
);
|
|
144
|
+
}
|
|
145
|
+
function AccordionTrigger({
|
|
146
|
+
className,
|
|
147
|
+
children,
|
|
148
|
+
...props
|
|
149
|
+
}) {
|
|
150
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_accordion.Accordion.Header, { className: "flex", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
151
|
+
import_accordion.Accordion.Trigger,
|
|
152
|
+
{
|
|
153
|
+
"data-slot": "accordion-trigger",
|
|
154
|
+
className: cn(
|
|
155
|
+
"flex flex-1 cursor-pointer items-center justify-between gap-4 rounded-md py-4 text-left text-sm font-medium transition-colors outline-none hover:bg-accent hover:text-accent-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 [&[aria-expanded=true]>svg]:rotate-180",
|
|
156
|
+
className
|
|
157
|
+
),
|
|
158
|
+
...props,
|
|
159
|
+
children: [
|
|
160
|
+
children,
|
|
161
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.ChevronDownIcon, { className: "pointer-events-none size-4 shrink-0 translate-y-0.5 text-muted-foreground transition-transform duration-200" })
|
|
162
|
+
]
|
|
163
|
+
}
|
|
164
|
+
) });
|
|
165
|
+
}
|
|
166
|
+
function AccordionContent({
|
|
167
|
+
className,
|
|
168
|
+
children,
|
|
169
|
+
...props
|
|
170
|
+
}) {
|
|
171
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
172
|
+
import_accordion.Accordion.Panel,
|
|
173
|
+
{
|
|
174
|
+
"data-slot": "accordion-content",
|
|
175
|
+
className: "overflow-hidden text-sm data-open:animate-accordion-down data-closed:animate-accordion-up",
|
|
176
|
+
...props,
|
|
177
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: cn("pt-0 pb-4", className), children })
|
|
178
|
+
}
|
|
179
|
+
);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
// src/ui/alert.tsx
|
|
183
|
+
var import_class_variance_authority = require("class-variance-authority");
|
|
184
|
+
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
185
|
+
var alertVariants = (0, import_class_variance_authority.cva)(
|
|
186
|
+
"relative grid w-full grid-cols-[0_1fr] items-start gap-y-0.5 rounded-lg border border-border px-4 py-3 text-sm has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] has-[>svg]:gap-x-3 [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current",
|
|
187
|
+
{
|
|
188
|
+
variants: {
|
|
189
|
+
variant: {
|
|
190
|
+
default: "bg-card text-card-foreground",
|
|
191
|
+
destructive: "border-destructive/50 text-destructive bg-card [&>svg]:text-current",
|
|
192
|
+
success: "border-success/50 text-success bg-card [&>svg]:text-current",
|
|
193
|
+
warning: "border-warning/50 text-warning bg-card [&>svg]:text-current",
|
|
194
|
+
info: "border-info/50 text-info bg-card [&>svg]:text-current"
|
|
195
|
+
}
|
|
196
|
+
},
|
|
197
|
+
defaultVariants: {
|
|
198
|
+
variant: "default"
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
);
|
|
202
|
+
function Alert({
|
|
203
|
+
className,
|
|
204
|
+
variant,
|
|
205
|
+
...props
|
|
206
|
+
}) {
|
|
207
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
208
|
+
"div",
|
|
209
|
+
{
|
|
210
|
+
"data-slot": "alert",
|
|
211
|
+
role: "alert",
|
|
212
|
+
className: cn(alertVariants({ variant }), className),
|
|
213
|
+
...props
|
|
214
|
+
}
|
|
215
|
+
);
|
|
216
|
+
}
|
|
217
|
+
function AlertTitle({ className, ...props }) {
|
|
218
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
219
|
+
"div",
|
|
220
|
+
{
|
|
221
|
+
"data-slot": "alert-title",
|
|
222
|
+
className: cn(
|
|
223
|
+
"col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight",
|
|
224
|
+
className
|
|
225
|
+
),
|
|
226
|
+
...props
|
|
227
|
+
}
|
|
228
|
+
);
|
|
229
|
+
}
|
|
230
|
+
function AlertDescription({
|
|
231
|
+
className,
|
|
232
|
+
...props
|
|
233
|
+
}) {
|
|
234
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
235
|
+
"div",
|
|
236
|
+
{
|
|
237
|
+
"data-slot": "alert-description",
|
|
238
|
+
className: cn(
|
|
239
|
+
"col-start-2 grid justify-items-start gap-1 text-sm text-muted-foreground [&_p]:leading-relaxed",
|
|
240
|
+
className
|
|
241
|
+
),
|
|
242
|
+
...props
|
|
243
|
+
}
|
|
244
|
+
);
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
// src/ui/badge.tsx
|
|
248
|
+
var import_class_variance_authority2 = require("class-variance-authority");
|
|
249
|
+
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
250
|
+
var badgeVariants = (0, import_class_variance_authority2.cva)(
|
|
251
|
+
"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-md border px-2 py-0.5 text-xs font-medium whitespace-nowrap [&>svg]:pointer-events-none [&>svg]:size-3",
|
|
252
|
+
{
|
|
253
|
+
variants: {
|
|
254
|
+
variant: {
|
|
255
|
+
default: "border-transparent bg-primary text-primary-foreground",
|
|
256
|
+
secondary: "border-transparent bg-secondary text-secondary-foreground",
|
|
257
|
+
destructive: "border-transparent bg-destructive text-destructive-foreground",
|
|
258
|
+
outline: "border-border text-foreground"
|
|
259
|
+
}
|
|
260
|
+
},
|
|
261
|
+
defaultVariants: {
|
|
262
|
+
variant: "default"
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
);
|
|
266
|
+
function Badge({
|
|
267
|
+
className,
|
|
268
|
+
variant,
|
|
269
|
+
...props
|
|
270
|
+
}) {
|
|
271
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
272
|
+
"span",
|
|
273
|
+
{
|
|
274
|
+
"data-slot": "badge",
|
|
275
|
+
className: cn(badgeVariants({ variant }), className),
|
|
276
|
+
...props
|
|
277
|
+
}
|
|
278
|
+
);
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
// src/ui/button.tsx
|
|
282
|
+
var import_button = require("@base-ui/react/button");
|
|
283
|
+
var import_class_variance_authority3 = require("class-variance-authority");
|
|
284
|
+
var React = __toESM(require("react"), 1);
|
|
285
|
+
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
286
|
+
var buttonVariants = (0, import_class_variance_authority3.cva)(
|
|
287
|
+
"inline-flex shrink-0 cursor-pointer items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium outline-none transition-colors focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
288
|
+
{
|
|
289
|
+
variants: {
|
|
290
|
+
variant: {
|
|
291
|
+
default: "bg-primary text-primary-foreground hover:bg-primary/90",
|
|
292
|
+
destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90 focus-visible:ring-destructive/20",
|
|
293
|
+
outline: "border border-border bg-background hover:bg-accent hover:text-accent-foreground",
|
|
294
|
+
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
|
|
295
|
+
ghost: "hover:bg-accent hover:text-accent-foreground",
|
|
296
|
+
link: "text-primary underline-offset-4 hover:underline"
|
|
297
|
+
},
|
|
298
|
+
size: {
|
|
299
|
+
default: "h-9 px-4 py-2",
|
|
300
|
+
sm: "h-8 gap-1.5 rounded-md px-3 text-xs",
|
|
301
|
+
lg: "h-10 rounded-md px-6",
|
|
302
|
+
icon: "size-9"
|
|
303
|
+
}
|
|
304
|
+
},
|
|
305
|
+
defaultVariants: {
|
|
306
|
+
variant: "default",
|
|
307
|
+
size: "default"
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
);
|
|
311
|
+
function Button({
|
|
312
|
+
className,
|
|
313
|
+
variant,
|
|
314
|
+
size,
|
|
315
|
+
asChild = false,
|
|
316
|
+
children,
|
|
317
|
+
...props
|
|
318
|
+
}) {
|
|
319
|
+
if (asChild && React.isValidElement(children)) {
|
|
320
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
321
|
+
import_button.Button,
|
|
322
|
+
{
|
|
323
|
+
"data-slot": "button",
|
|
324
|
+
className: cn(buttonVariants({ variant, size, className })),
|
|
325
|
+
render: children,
|
|
326
|
+
...props
|
|
327
|
+
}
|
|
328
|
+
);
|
|
329
|
+
}
|
|
330
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
331
|
+
import_button.Button,
|
|
332
|
+
{
|
|
333
|
+
"data-slot": "button",
|
|
334
|
+
className: cn(buttonVariants({ variant, size, className })),
|
|
335
|
+
...props,
|
|
336
|
+
children
|
|
337
|
+
}
|
|
338
|
+
);
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
// src/ui/card.tsx
|
|
342
|
+
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
343
|
+
function Card({ className, ...props }) {
|
|
344
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
345
|
+
"div",
|
|
346
|
+
{
|
|
347
|
+
"data-slot": "card",
|
|
348
|
+
className: cn(
|
|
349
|
+
"flex flex-col gap-6 rounded-xl border border-border bg-card py-6 text-card-foreground shadow-sm",
|
|
350
|
+
className
|
|
351
|
+
),
|
|
352
|
+
...props
|
|
353
|
+
}
|
|
354
|
+
);
|
|
355
|
+
}
|
|
356
|
+
function CardHeader({ className, ...props }) {
|
|
357
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
358
|
+
"div",
|
|
359
|
+
{
|
|
360
|
+
"data-slot": "card-header",
|
|
361
|
+
className: cn(
|
|
362
|
+
"grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",
|
|
363
|
+
className
|
|
364
|
+
),
|
|
365
|
+
...props
|
|
366
|
+
}
|
|
367
|
+
);
|
|
368
|
+
}
|
|
369
|
+
function CardTitle({ className, ...props }) {
|
|
370
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
371
|
+
"div",
|
|
372
|
+
{
|
|
373
|
+
"data-slot": "card-title",
|
|
374
|
+
className: cn("leading-none font-semibold", className),
|
|
375
|
+
...props
|
|
376
|
+
}
|
|
377
|
+
);
|
|
378
|
+
}
|
|
379
|
+
function CardDescription({ className, ...props }) {
|
|
380
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
381
|
+
"div",
|
|
382
|
+
{
|
|
383
|
+
"data-slot": "card-description",
|
|
384
|
+
className: cn("text-sm text-muted-foreground", className),
|
|
385
|
+
...props
|
|
386
|
+
}
|
|
387
|
+
);
|
|
388
|
+
}
|
|
389
|
+
function CardAction({ className, ...props }) {
|
|
390
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
391
|
+
"div",
|
|
392
|
+
{
|
|
393
|
+
"data-slot": "card-action",
|
|
394
|
+
className: cn(
|
|
395
|
+
"col-start-2 row-span-2 row-start-1 self-start justify-self-end",
|
|
396
|
+
className
|
|
397
|
+
),
|
|
398
|
+
...props
|
|
399
|
+
}
|
|
400
|
+
);
|
|
401
|
+
}
|
|
402
|
+
function CardContent({ className, ...props }) {
|
|
403
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
404
|
+
"div",
|
|
405
|
+
{
|
|
406
|
+
"data-slot": "card-content",
|
|
407
|
+
className: cn("px-6", className),
|
|
408
|
+
...props
|
|
409
|
+
}
|
|
410
|
+
);
|
|
411
|
+
}
|
|
412
|
+
function CardFooter({ className, ...props }) {
|
|
413
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
414
|
+
"div",
|
|
415
|
+
{
|
|
416
|
+
"data-slot": "card-footer",
|
|
417
|
+
className: cn("flex items-center px-6 [.border-t]:pt-6", className),
|
|
418
|
+
...props
|
|
419
|
+
}
|
|
420
|
+
);
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
// src/ui/dialog.tsx
|
|
424
|
+
var import_dialog = require("@base-ui/react/dialog");
|
|
425
|
+
var import_lucide_react2 = require("lucide-react");
|
|
426
|
+
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
427
|
+
function Dialog({
|
|
428
|
+
...props
|
|
429
|
+
}) {
|
|
430
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_dialog.Dialog.Root, { "data-slot": "dialog", ...props });
|
|
431
|
+
}
|
|
432
|
+
function DialogTrigger({
|
|
433
|
+
...props
|
|
434
|
+
}) {
|
|
435
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_dialog.Dialog.Trigger, { "data-slot": "dialog-trigger", ...props });
|
|
436
|
+
}
|
|
437
|
+
function DialogPortal({
|
|
438
|
+
...props
|
|
439
|
+
}) {
|
|
440
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_dialog.Dialog.Portal, { "data-slot": "dialog-portal", ...props });
|
|
441
|
+
}
|
|
442
|
+
function DialogClose({
|
|
443
|
+
...props
|
|
444
|
+
}) {
|
|
445
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_dialog.Dialog.Close, { "data-slot": "dialog-close", ...props });
|
|
446
|
+
}
|
|
447
|
+
function DialogOverlay({
|
|
448
|
+
className,
|
|
449
|
+
...props
|
|
450
|
+
}) {
|
|
451
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
452
|
+
import_dialog.Dialog.Backdrop,
|
|
453
|
+
{
|
|
454
|
+
"data-slot": "dialog-overlay",
|
|
455
|
+
className: cn(
|
|
456
|
+
"fixed inset-0 z-50 bg-black/50 data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",
|
|
457
|
+
className
|
|
458
|
+
),
|
|
459
|
+
...props
|
|
460
|
+
}
|
|
461
|
+
);
|
|
462
|
+
}
|
|
463
|
+
function DialogContent({
|
|
464
|
+
className,
|
|
465
|
+
children,
|
|
466
|
+
showCloseButton = true,
|
|
467
|
+
...props
|
|
468
|
+
}) {
|
|
469
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(DialogPortal, { "data-slot": "dialog-portal", children: [
|
|
470
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(DialogOverlay, {}),
|
|
471
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
|
|
472
|
+
import_dialog.Dialog.Popup,
|
|
473
|
+
{
|
|
474
|
+
"data-slot": "dialog-content",
|
|
475
|
+
className: cn(
|
|
476
|
+
"fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border border-border bg-background p-6 shadow-lg duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 sm:max-w-lg",
|
|
477
|
+
className
|
|
478
|
+
),
|
|
479
|
+
...props,
|
|
480
|
+
children: [
|
|
481
|
+
children,
|
|
482
|
+
showCloseButton && /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
|
|
483
|
+
import_dialog.Dialog.Close,
|
|
484
|
+
{
|
|
485
|
+
"data-slot": "dialog-close",
|
|
486
|
+
render: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
487
|
+
"button",
|
|
488
|
+
{
|
|
489
|
+
type: "button",
|
|
490
|
+
className: "absolute top-4 right-4 cursor-pointer rounded-xs opacity-70 transition-opacity hover:opacity-100 focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4"
|
|
491
|
+
}
|
|
492
|
+
),
|
|
493
|
+
children: [
|
|
494
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react2.XIcon, {}),
|
|
495
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "sr-only", children: "Close" })
|
|
496
|
+
]
|
|
497
|
+
}
|
|
498
|
+
)
|
|
499
|
+
]
|
|
500
|
+
}
|
|
501
|
+
)
|
|
502
|
+
] });
|
|
503
|
+
}
|
|
504
|
+
function DialogHeader({ className, ...props }) {
|
|
505
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
506
|
+
"div",
|
|
507
|
+
{
|
|
508
|
+
"data-slot": "dialog-header",
|
|
509
|
+
className: cn("flex flex-col gap-2 text-center sm:text-left", className),
|
|
510
|
+
...props
|
|
511
|
+
}
|
|
512
|
+
);
|
|
513
|
+
}
|
|
514
|
+
function DialogFooter({ className, ...props }) {
|
|
515
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
516
|
+
"div",
|
|
517
|
+
{
|
|
518
|
+
"data-slot": "dialog-footer",
|
|
519
|
+
className: cn(
|
|
520
|
+
"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",
|
|
521
|
+
className
|
|
522
|
+
),
|
|
523
|
+
...props
|
|
524
|
+
}
|
|
525
|
+
);
|
|
526
|
+
}
|
|
527
|
+
function DialogTitle({
|
|
528
|
+
className,
|
|
529
|
+
...props
|
|
530
|
+
}) {
|
|
531
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
532
|
+
import_dialog.Dialog.Title,
|
|
533
|
+
{
|
|
534
|
+
"data-slot": "dialog-title",
|
|
535
|
+
className: cn("text-lg leading-none font-semibold", className),
|
|
536
|
+
...props
|
|
537
|
+
}
|
|
538
|
+
);
|
|
539
|
+
}
|
|
540
|
+
function DialogDescription({
|
|
541
|
+
className,
|
|
542
|
+
...props
|
|
543
|
+
}) {
|
|
544
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
545
|
+
import_dialog.Dialog.Description,
|
|
546
|
+
{
|
|
547
|
+
"data-slot": "dialog-description",
|
|
548
|
+
className: cn("text-sm text-muted-foreground", className),
|
|
549
|
+
...props
|
|
550
|
+
}
|
|
551
|
+
);
|
|
552
|
+
}
|
|
553
|
+
|
|
554
|
+
// src/ui/input.tsx
|
|
555
|
+
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
556
|
+
function Input({ className, type, ...props }) {
|
|
557
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
558
|
+
"input",
|
|
559
|
+
{
|
|
560
|
+
type,
|
|
561
|
+
"data-slot": "input",
|
|
562
|
+
className: cn(
|
|
563
|
+
"flex h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-xs transition-colors outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50",
|
|
564
|
+
className
|
|
565
|
+
),
|
|
566
|
+
...props
|
|
567
|
+
}
|
|
568
|
+
);
|
|
569
|
+
}
|
|
570
|
+
|
|
571
|
+
// src/ui/label.tsx
|
|
572
|
+
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
573
|
+
function Label({
|
|
574
|
+
className,
|
|
575
|
+
...props
|
|
576
|
+
}) {
|
|
577
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
578
|
+
"label",
|
|
579
|
+
{
|
|
580
|
+
"data-slot": "label",
|
|
581
|
+
className: cn(
|
|
582
|
+
"flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",
|
|
583
|
+
className
|
|
584
|
+
),
|
|
585
|
+
...props
|
|
586
|
+
}
|
|
587
|
+
);
|
|
588
|
+
}
|
|
589
|
+
|
|
590
|
+
// src/ui/popover.tsx
|
|
591
|
+
var import_popover = require("@base-ui/react/popover");
|
|
592
|
+
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
593
|
+
function Popover({
|
|
594
|
+
...props
|
|
595
|
+
}) {
|
|
596
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_popover.Popover.Root, { "data-slot": "popover", ...props });
|
|
597
|
+
}
|
|
598
|
+
function PopoverTrigger({
|
|
599
|
+
...props
|
|
600
|
+
}) {
|
|
601
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_popover.Popover.Trigger, { "data-slot": "popover-trigger", ...props });
|
|
602
|
+
}
|
|
603
|
+
function PopoverContent({
|
|
604
|
+
className,
|
|
605
|
+
align = "center",
|
|
606
|
+
side = "bottom",
|
|
607
|
+
sideOffset = 4,
|
|
608
|
+
anchor,
|
|
609
|
+
...props
|
|
610
|
+
}) {
|
|
611
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_popover.Popover.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
612
|
+
import_popover.Popover.Positioner,
|
|
613
|
+
{
|
|
614
|
+
align,
|
|
615
|
+
side,
|
|
616
|
+
sideOffset,
|
|
617
|
+
anchor,
|
|
618
|
+
className: "isolate z-50",
|
|
619
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
620
|
+
import_popover.Popover.Popup,
|
|
621
|
+
{
|
|
622
|
+
"data-slot": "popover-content",
|
|
623
|
+
className: cn(
|
|
624
|
+
"z-50 w-72 rounded-md border border-border bg-popover p-4 text-popover-foreground shadow-md outline-none duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
|
|
625
|
+
className
|
|
626
|
+
),
|
|
627
|
+
...props
|
|
628
|
+
}
|
|
629
|
+
)
|
|
630
|
+
}
|
|
631
|
+
) });
|
|
632
|
+
}
|
|
633
|
+
|
|
634
|
+
// src/ui/select.tsx
|
|
635
|
+
var import_select = require("@base-ui/react/select");
|
|
636
|
+
var import_lucide_react3 = require("lucide-react");
|
|
637
|
+
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
638
|
+
var Select = import_select.Select.Root;
|
|
639
|
+
function SelectGroup({
|
|
640
|
+
...props
|
|
641
|
+
}) {
|
|
642
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_select.Select.Group, { "data-slot": "select-group", ...props });
|
|
643
|
+
}
|
|
644
|
+
function SelectValue({
|
|
645
|
+
...props
|
|
646
|
+
}) {
|
|
647
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_select.Select.Value, { "data-slot": "select-value", ...props });
|
|
648
|
+
}
|
|
649
|
+
function SelectTrigger({
|
|
650
|
+
className,
|
|
651
|
+
size = "default",
|
|
652
|
+
children,
|
|
653
|
+
...props
|
|
654
|
+
}) {
|
|
655
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
|
|
656
|
+
import_select.Select.Trigger,
|
|
657
|
+
{
|
|
658
|
+
"data-slot": "select-trigger",
|
|
659
|
+
"data-size": size,
|
|
660
|
+
className: cn(
|
|
661
|
+
"flex w-fit cursor-pointer items-center justify-between gap-2 rounded-md border border-input bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-colors outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 data-[placeholder]:text-muted-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
662
|
+
className
|
|
663
|
+
),
|
|
664
|
+
...props,
|
|
665
|
+
children: [
|
|
666
|
+
children,
|
|
667
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
668
|
+
import_select.Select.Icon,
|
|
669
|
+
{
|
|
670
|
+
render: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_lucide_react3.ChevronDownIcon, { className: "size-4 opacity-50" })
|
|
671
|
+
}
|
|
672
|
+
)
|
|
673
|
+
]
|
|
674
|
+
}
|
|
675
|
+
);
|
|
676
|
+
}
|
|
677
|
+
function SelectContent({
|
|
678
|
+
className,
|
|
679
|
+
children,
|
|
680
|
+
side = "bottom",
|
|
681
|
+
sideOffset = 4,
|
|
682
|
+
align = "center",
|
|
683
|
+
alignItemWithTrigger = false,
|
|
684
|
+
...props
|
|
685
|
+
}) {
|
|
686
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_select.Select.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
687
|
+
import_select.Select.Positioner,
|
|
688
|
+
{
|
|
689
|
+
side,
|
|
690
|
+
sideOffset,
|
|
691
|
+
align,
|
|
692
|
+
alignItemWithTrigger,
|
|
693
|
+
className: "isolate z-50",
|
|
694
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
|
|
695
|
+
import_select.Select.Popup,
|
|
696
|
+
{
|
|
697
|
+
"data-slot": "select-content",
|
|
698
|
+
className: cn(
|
|
699
|
+
"relative z-50 max-h-96 min-w-[8rem] overflow-x-hidden overflow-y-auto rounded-md border border-border bg-popover text-popover-foreground shadow-md duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
|
|
700
|
+
className
|
|
701
|
+
),
|
|
702
|
+
...props,
|
|
703
|
+
children: [
|
|
704
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(SelectScrollUpButton, {}),
|
|
705
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_select.Select.List, { className: "p-1", children }),
|
|
706
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(SelectScrollDownButton, {})
|
|
707
|
+
]
|
|
708
|
+
}
|
|
709
|
+
)
|
|
710
|
+
}
|
|
711
|
+
) });
|
|
712
|
+
}
|
|
713
|
+
function SelectLabel({
|
|
714
|
+
className,
|
|
715
|
+
...props
|
|
716
|
+
}) {
|
|
717
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
718
|
+
import_select.Select.GroupLabel,
|
|
719
|
+
{
|
|
720
|
+
"data-slot": "select-label",
|
|
721
|
+
className: cn("px-2 py-1.5 text-xs text-muted-foreground", className),
|
|
722
|
+
...props
|
|
723
|
+
}
|
|
724
|
+
);
|
|
725
|
+
}
|
|
726
|
+
function SelectItem({
|
|
727
|
+
className,
|
|
728
|
+
children,
|
|
729
|
+
...props
|
|
730
|
+
}) {
|
|
731
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
|
|
732
|
+
import_select.Select.Item,
|
|
733
|
+
{
|
|
734
|
+
"data-slot": "select-item",
|
|
735
|
+
className: cn(
|
|
736
|
+
"relative flex w-full cursor-pointer items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-none select-none focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
737
|
+
className
|
|
738
|
+
),
|
|
739
|
+
...props,
|
|
740
|
+
children: [
|
|
741
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: "absolute right-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_select.Select.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_lucide_react3.CheckIcon, { className: "size-4" }) }) }),
|
|
742
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_select.Select.ItemText, { children })
|
|
743
|
+
]
|
|
744
|
+
}
|
|
745
|
+
);
|
|
746
|
+
}
|
|
747
|
+
function SelectSeparator({
|
|
748
|
+
className,
|
|
749
|
+
...props
|
|
750
|
+
}) {
|
|
751
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
752
|
+
import_select.Select.Separator,
|
|
753
|
+
{
|
|
754
|
+
"data-slot": "select-separator",
|
|
755
|
+
className: cn("pointer-events-none -mx-1 my-1 h-px bg-border", className),
|
|
756
|
+
...props
|
|
757
|
+
}
|
|
758
|
+
);
|
|
759
|
+
}
|
|
760
|
+
function SelectScrollUpButton({
|
|
761
|
+
className,
|
|
762
|
+
...props
|
|
763
|
+
}) {
|
|
764
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
765
|
+
import_select.Select.ScrollUpArrow,
|
|
766
|
+
{
|
|
767
|
+
"data-slot": "select-scroll-up-button",
|
|
768
|
+
className: cn(
|
|
769
|
+
"flex cursor-default items-center justify-center py-1",
|
|
770
|
+
className
|
|
771
|
+
),
|
|
772
|
+
...props,
|
|
773
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_lucide_react3.ChevronUpIcon, { className: "size-4" })
|
|
774
|
+
}
|
|
775
|
+
);
|
|
776
|
+
}
|
|
777
|
+
function SelectScrollDownButton({
|
|
778
|
+
className,
|
|
779
|
+
...props
|
|
780
|
+
}) {
|
|
781
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
782
|
+
import_select.Select.ScrollDownArrow,
|
|
783
|
+
{
|
|
784
|
+
"data-slot": "select-scroll-down-button",
|
|
785
|
+
className: cn(
|
|
786
|
+
"flex cursor-default items-center justify-center py-1",
|
|
787
|
+
className
|
|
788
|
+
),
|
|
789
|
+
...props,
|
|
790
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_lucide_react3.ChevronDownIcon, { className: "size-4" })
|
|
791
|
+
}
|
|
792
|
+
);
|
|
793
|
+
}
|
|
794
|
+
|
|
795
|
+
// src/ui/separator.tsx
|
|
796
|
+
var import_separator = require("@base-ui/react/separator");
|
|
797
|
+
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
798
|
+
function Separator({
|
|
799
|
+
className,
|
|
800
|
+
orientation = "horizontal",
|
|
801
|
+
decorative: _decorative,
|
|
802
|
+
...props
|
|
803
|
+
}) {
|
|
804
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
805
|
+
import_separator.Separator,
|
|
806
|
+
{
|
|
807
|
+
"data-slot": "separator",
|
|
808
|
+
orientation,
|
|
809
|
+
className: cn(
|
|
810
|
+
"shrink-0 bg-border data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",
|
|
811
|
+
className
|
|
812
|
+
),
|
|
813
|
+
...props
|
|
814
|
+
}
|
|
815
|
+
);
|
|
816
|
+
}
|
|
817
|
+
|
|
818
|
+
// src/ui/skeleton.tsx
|
|
819
|
+
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
820
|
+
function Skeleton({ className, ...props }) {
|
|
821
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
822
|
+
"div",
|
|
823
|
+
{
|
|
824
|
+
"data-slot": "skeleton",
|
|
825
|
+
className: cn("animate-pulse rounded-md bg-muted", className),
|
|
826
|
+
...props
|
|
827
|
+
}
|
|
828
|
+
);
|
|
829
|
+
}
|
|
830
|
+
|
|
831
|
+
// src/ui/table.tsx
|
|
832
|
+
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
833
|
+
function Table({ className, ...props }) {
|
|
834
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
835
|
+
"div",
|
|
836
|
+
{
|
|
837
|
+
"data-slot": "table-container",
|
|
838
|
+
className: "relative w-full overflow-x-auto",
|
|
839
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
840
|
+
"table",
|
|
841
|
+
{
|
|
842
|
+
"data-slot": "table",
|
|
843
|
+
className: cn("w-full caption-bottom text-sm", className),
|
|
844
|
+
...props
|
|
845
|
+
}
|
|
846
|
+
)
|
|
847
|
+
}
|
|
848
|
+
);
|
|
849
|
+
}
|
|
850
|
+
function TableHeader({ className, ...props }) {
|
|
851
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
852
|
+
"thead",
|
|
853
|
+
{
|
|
854
|
+
"data-slot": "table-header",
|
|
855
|
+
className: cn("[&_tr]:border-b [&_tr]:border-border", className),
|
|
856
|
+
...props
|
|
857
|
+
}
|
|
858
|
+
);
|
|
859
|
+
}
|
|
860
|
+
function TableBody({ className, ...props }) {
|
|
861
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
862
|
+
"tbody",
|
|
863
|
+
{
|
|
864
|
+
"data-slot": "table-body",
|
|
865
|
+
className: cn("[&_tr:last-child]:border-0", className),
|
|
866
|
+
...props
|
|
867
|
+
}
|
|
868
|
+
);
|
|
869
|
+
}
|
|
870
|
+
function TableFooter({ className, ...props }) {
|
|
871
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
872
|
+
"tfoot",
|
|
873
|
+
{
|
|
874
|
+
"data-slot": "table-footer",
|
|
875
|
+
className: cn(
|
|
876
|
+
"border-t border-border bg-muted/50 font-medium [&>tr]:last:border-b-0",
|
|
877
|
+
className
|
|
878
|
+
),
|
|
879
|
+
...props
|
|
880
|
+
}
|
|
881
|
+
);
|
|
882
|
+
}
|
|
883
|
+
function TableRow({ className, ...props }) {
|
|
884
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
885
|
+
"tr",
|
|
886
|
+
{
|
|
887
|
+
"data-slot": "table-row",
|
|
888
|
+
className: cn(
|
|
889
|
+
"border-b border-border transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",
|
|
890
|
+
className
|
|
891
|
+
),
|
|
892
|
+
...props
|
|
893
|
+
}
|
|
894
|
+
);
|
|
895
|
+
}
|
|
896
|
+
function TableHead({ className, ...props }) {
|
|
897
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
898
|
+
"th",
|
|
899
|
+
{
|
|
900
|
+
"data-slot": "table-head",
|
|
901
|
+
className: cn(
|
|
902
|
+
"h-10 px-2 text-left align-middle font-medium whitespace-nowrap text-foreground [&:has([role=checkbox])]:pr-0",
|
|
903
|
+
className
|
|
904
|
+
),
|
|
905
|
+
...props
|
|
906
|
+
}
|
|
907
|
+
);
|
|
908
|
+
}
|
|
909
|
+
function TableCell({ className, ...props }) {
|
|
910
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
911
|
+
"td",
|
|
912
|
+
{
|
|
913
|
+
"data-slot": "table-cell",
|
|
914
|
+
className: cn(
|
|
915
|
+
"p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0",
|
|
916
|
+
className
|
|
917
|
+
),
|
|
918
|
+
...props
|
|
919
|
+
}
|
|
920
|
+
);
|
|
921
|
+
}
|
|
922
|
+
function TableCaption({
|
|
923
|
+
className,
|
|
924
|
+
...props
|
|
925
|
+
}) {
|
|
926
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
927
|
+
"caption",
|
|
928
|
+
{
|
|
929
|
+
"data-slot": "table-caption",
|
|
930
|
+
className: cn("mt-4 text-sm text-muted-foreground", className),
|
|
931
|
+
...props
|
|
932
|
+
}
|
|
933
|
+
);
|
|
934
|
+
}
|
|
935
|
+
|
|
936
|
+
// src/ui/tabs.tsx
|
|
937
|
+
var import_tabs = require("@base-ui/react/tabs");
|
|
938
|
+
var import_jsx_runtime14 = require("react/jsx-runtime");
|
|
939
|
+
function Tabs({
|
|
940
|
+
className,
|
|
941
|
+
...props
|
|
942
|
+
}) {
|
|
943
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
944
|
+
import_tabs.Tabs.Root,
|
|
945
|
+
{
|
|
946
|
+
"data-slot": "tabs",
|
|
947
|
+
className: cn("flex flex-col gap-2", className),
|
|
948
|
+
...props
|
|
949
|
+
}
|
|
950
|
+
);
|
|
951
|
+
}
|
|
952
|
+
function TabsList({
|
|
953
|
+
className,
|
|
954
|
+
...props
|
|
955
|
+
}) {
|
|
956
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
957
|
+
import_tabs.Tabs.List,
|
|
958
|
+
{
|
|
959
|
+
"data-slot": "tabs-list",
|
|
960
|
+
className: cn(
|
|
961
|
+
"inline-flex h-9 w-fit items-center justify-center rounded-lg bg-muted p-[3px] text-muted-foreground",
|
|
962
|
+
className
|
|
963
|
+
),
|
|
964
|
+
...props
|
|
965
|
+
}
|
|
966
|
+
);
|
|
967
|
+
}
|
|
968
|
+
function TabsTrigger({
|
|
969
|
+
className,
|
|
970
|
+
...props
|
|
971
|
+
}) {
|
|
972
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
973
|
+
import_tabs.Tabs.Tab,
|
|
974
|
+
{
|
|
975
|
+
"data-slot": "tabs-trigger",
|
|
976
|
+
className: cn(
|
|
977
|
+
"inline-flex h-[calc(100%-1px)] flex-1 cursor-pointer items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap text-foreground transition-colors focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-active:border-border data-active:bg-background data-active:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
978
|
+
className
|
|
979
|
+
),
|
|
980
|
+
...props
|
|
981
|
+
}
|
|
982
|
+
);
|
|
983
|
+
}
|
|
984
|
+
function TabsContent({
|
|
985
|
+
className,
|
|
986
|
+
...props
|
|
987
|
+
}) {
|
|
988
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
989
|
+
import_tabs.Tabs.Panel,
|
|
990
|
+
{
|
|
991
|
+
"data-slot": "tabs-content",
|
|
992
|
+
className: cn("flex-1 outline-none", className),
|
|
993
|
+
...props
|
|
994
|
+
}
|
|
995
|
+
);
|
|
996
|
+
}
|
|
997
|
+
|
|
998
|
+
// src/ui/textarea.tsx
|
|
999
|
+
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
1000
|
+
function Textarea({
|
|
1001
|
+
className,
|
|
1002
|
+
...props
|
|
1003
|
+
}) {
|
|
1004
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
1005
|
+
"textarea",
|
|
1006
|
+
{
|
|
1007
|
+
"data-slot": "textarea",
|
|
1008
|
+
className: cn(
|
|
1009
|
+
"flex field-sizing-content min-h-16 w-full rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-xs transition-colors outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50",
|
|
1010
|
+
className
|
|
1011
|
+
),
|
|
1012
|
+
...props
|
|
1013
|
+
}
|
|
1014
|
+
);
|
|
1015
|
+
}
|
|
1016
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
1017
|
+
0 && (module.exports = {
|
|
1018
|
+
Accordion,
|
|
1019
|
+
AccordionContent,
|
|
1020
|
+
AccordionItem,
|
|
1021
|
+
AccordionTrigger,
|
|
1022
|
+
Alert,
|
|
1023
|
+
AlertDescription,
|
|
1024
|
+
AlertTitle,
|
|
1025
|
+
Badge,
|
|
1026
|
+
Button,
|
|
1027
|
+
Card,
|
|
1028
|
+
CardAction,
|
|
1029
|
+
CardContent,
|
|
1030
|
+
CardDescription,
|
|
1031
|
+
CardFooter,
|
|
1032
|
+
CardHeader,
|
|
1033
|
+
CardTitle,
|
|
1034
|
+
Dialog,
|
|
1035
|
+
DialogClose,
|
|
1036
|
+
DialogContent,
|
|
1037
|
+
DialogDescription,
|
|
1038
|
+
DialogFooter,
|
|
1039
|
+
DialogHeader,
|
|
1040
|
+
DialogOverlay,
|
|
1041
|
+
DialogPortal,
|
|
1042
|
+
DialogTitle,
|
|
1043
|
+
DialogTrigger,
|
|
1044
|
+
Input,
|
|
1045
|
+
Label,
|
|
1046
|
+
Popover,
|
|
1047
|
+
PopoverContent,
|
|
1048
|
+
PopoverTrigger,
|
|
1049
|
+
Select,
|
|
1050
|
+
SelectContent,
|
|
1051
|
+
SelectGroup,
|
|
1052
|
+
SelectItem,
|
|
1053
|
+
SelectLabel,
|
|
1054
|
+
SelectScrollDownButton,
|
|
1055
|
+
SelectScrollUpButton,
|
|
1056
|
+
SelectSeparator,
|
|
1057
|
+
SelectTrigger,
|
|
1058
|
+
SelectValue,
|
|
1059
|
+
Separator,
|
|
1060
|
+
Skeleton,
|
|
1061
|
+
Table,
|
|
1062
|
+
TableBody,
|
|
1063
|
+
TableCaption,
|
|
1064
|
+
TableCell,
|
|
1065
|
+
TableFooter,
|
|
1066
|
+
TableHead,
|
|
1067
|
+
TableHeader,
|
|
1068
|
+
TableRow,
|
|
1069
|
+
Tabs,
|
|
1070
|
+
TabsContent,
|
|
1071
|
+
TabsList,
|
|
1072
|
+
TabsTrigger,
|
|
1073
|
+
Textarea,
|
|
1074
|
+
badgeVariants,
|
|
1075
|
+
buttonVariants
|
|
1076
|
+
});
|