singularity-components 0.1.64 → 0.1.66
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/main.cjs +263 -118
- package/dist/main.cjs.map +1 -1
- package/dist/main.css +642 -10
- package/dist/main.css.map +1 -1
- package/dist/main.d.cts +38 -28
- package/dist/main.d.ts +38 -28
- package/dist/main.js +253 -119
- package/dist/main.js.map +1 -1
- package/package.json +15 -15
package/dist/main.cjs
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var AccordionPrimitive = require('@radix-ui/react-accordion');
|
|
4
|
+
var lucideReact = require('lucide-react');
|
|
4
5
|
var clsx = require('clsx');
|
|
5
6
|
var tailwindMerge = require('tailwind-merge');
|
|
6
7
|
var jsxRuntime = require('react/jsx-runtime');
|
|
7
|
-
var React = require('react');
|
|
8
|
-
var AccordionPrimitive = require('@radix-ui/react-accordion');
|
|
9
|
-
require('lucide-react');
|
|
10
8
|
var reactSlot = require('@radix-ui/react-slot');
|
|
9
|
+
var classVarianceAuthority = require('class-variance-authority');
|
|
10
|
+
var React = require('react');
|
|
11
11
|
|
|
12
12
|
function _interopNamespace(e) {
|
|
13
13
|
if (e && e.__esModule) return e;
|
|
@@ -27,16 +27,144 @@ function _interopNamespace(e) {
|
|
|
27
27
|
return Object.freeze(n);
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
31
30
|
var AccordionPrimitive__namespace = /*#__PURE__*/_interopNamespace(AccordionPrimitive);
|
|
31
|
+
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
32
32
|
|
|
33
|
-
// src/components/ui/
|
|
33
|
+
// src/components/ui/accordion.tsx
|
|
34
34
|
function cn(...inputs) {
|
|
35
35
|
const twMergeWithPrefix = tailwindMerge.extendTailwindMerge({
|
|
36
36
|
prefix: "sg:"
|
|
37
37
|
});
|
|
38
38
|
return twMergeWithPrefix(tailwindMerge.twMerge(clsx.clsx(inputs)));
|
|
39
39
|
}
|
|
40
|
+
function Accordion({
|
|
41
|
+
...props
|
|
42
|
+
}) {
|
|
43
|
+
return /* @__PURE__ */ jsxRuntime.jsx(AccordionPrimitive__namespace.Root, { "data-slot": "accordion", ...props });
|
|
44
|
+
}
|
|
45
|
+
function AccordionItem({
|
|
46
|
+
className,
|
|
47
|
+
...props
|
|
48
|
+
}) {
|
|
49
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
50
|
+
AccordionPrimitive__namespace.Item,
|
|
51
|
+
{
|
|
52
|
+
"data-slot": "accordion-item",
|
|
53
|
+
className: cn("sg:border-b last:sg:border-b-0", className),
|
|
54
|
+
...props
|
|
55
|
+
}
|
|
56
|
+
);
|
|
57
|
+
}
|
|
58
|
+
function AccordionTrigger({
|
|
59
|
+
className,
|
|
60
|
+
children,
|
|
61
|
+
...props
|
|
62
|
+
}) {
|
|
63
|
+
return /* @__PURE__ */ jsxRuntime.jsx(AccordionPrimitive__namespace.Header, { className: "sg:flex", children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
64
|
+
AccordionPrimitive__namespace.Trigger,
|
|
65
|
+
{
|
|
66
|
+
"data-slot": "accordion-trigger",
|
|
67
|
+
className: cn(
|
|
68
|
+
"focus-visible:sg:border-ring focus-visible:sg:ring-ring/50 sg:flex sg:flex-1 sg:items-start sg:justify-between sg:gap-4 sg:rounded-md sg:py-4 sg:text-left sg:text-sm sg:font-medium sg:transition-all sg:outline-none hover:sg:underline focus-visible:sg:ring-[3px] disabled:sg:pointer-events-none disabled:sg:opacity-50 [&[data-state=open]>svg]:sg:rotate-180",
|
|
69
|
+
className
|
|
70
|
+
),
|
|
71
|
+
...props,
|
|
72
|
+
children: [
|
|
73
|
+
children,
|
|
74
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDownIcon, { className: "sg:text-muted-foreground sg:pointer-events-none sg:size-4 sg:shrink-0 sg:translate-y-0.5 sg:transition-transform sg:duration-200" })
|
|
75
|
+
]
|
|
76
|
+
}
|
|
77
|
+
) });
|
|
78
|
+
}
|
|
79
|
+
function AccordionContent({
|
|
80
|
+
className,
|
|
81
|
+
children,
|
|
82
|
+
...props
|
|
83
|
+
}) {
|
|
84
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
85
|
+
AccordionPrimitive__namespace.Content,
|
|
86
|
+
{
|
|
87
|
+
"data-slot": "accordion-content",
|
|
88
|
+
className: "data-[state=closed]:sg:animate-accordion-up data-[state=open]:sg:animate-accordion-down sg:overflow-hidden sg:text-sm",
|
|
89
|
+
...props,
|
|
90
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("sg:pt-0 sg:pb-4", className), children })
|
|
91
|
+
}
|
|
92
|
+
);
|
|
93
|
+
}
|
|
94
|
+
var badgeVariants = classVarianceAuthority.cva(
|
|
95
|
+
"sg:inline-flex sg:items-center sg:justify-center sg:rounded-md sg:border sg:px-2 sg:py-0.5 sg:text-xs sg:font-medium sg:w-fit sg:whitespace-nowrap sg:shrink-0 [&>svg]:sg:size-3 sg:gap-1 [&>svg]:sg:pointer-events-none focus-visible:sg:border-ring focus-visible:sg:ring-ring/50 focus-visible:sg:ring-[3px] aria-invalid:sg:ring-destructive/20 dark:aria-invalid:sg:ring-destructive/40 aria-invalid:sg:border-destructive sg:transition-[color,box-shadow] sg:overflow-hidden",
|
|
96
|
+
{
|
|
97
|
+
variants: {
|
|
98
|
+
variant: {
|
|
99
|
+
default: "sg:border-transparent sg:bg-primary sg:text-primary-foreground [a&]:hover:sg:bg-primary/90",
|
|
100
|
+
secondary: "sg:border-transparent sg:bg-secondary sg:text-secondary-foreground [a&]:hover:sg:bg-secondary/90",
|
|
101
|
+
destructive: "sg:border-transparent sg:bg-destructive sg:text-white [a&]:hover:sg:bg-destructive/90 focus-visible:sg:ring-destructive/20 dark:focus-visible:sg:ring-destructive/40 dark:sg:bg-destructive/60",
|
|
102
|
+
outline: "sg:text-foreground [a&]:hover:sg:bg-accent [a&]:hover:sg:text-accent-foreground"
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
defaultVariants: {
|
|
106
|
+
variant: "default"
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
);
|
|
110
|
+
function Badge({
|
|
111
|
+
className,
|
|
112
|
+
variant,
|
|
113
|
+
asChild = false,
|
|
114
|
+
...props
|
|
115
|
+
}) {
|
|
116
|
+
const Comp = asChild ? reactSlot.Slot : "span";
|
|
117
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
118
|
+
Comp,
|
|
119
|
+
{
|
|
120
|
+
"data-slot": "badge",
|
|
121
|
+
className: cn(badgeVariants({ variant }), className),
|
|
122
|
+
...props
|
|
123
|
+
}
|
|
124
|
+
);
|
|
125
|
+
}
|
|
126
|
+
var buttonVariants = classVarianceAuthority.cva(
|
|
127
|
+
"sg:inline-flex sg:items-center sg:justify-center sg:gap-2 sg:whitespace-nowrap sg:rounded-md sg:text-sm sg:font-medium sg:transition-all disabled:sg:pointer-events-none disabled:sg:opacity-50 [&_svg]:sg:pointer-events-none [&_svg:not([class*=size-])]:sg:size-4 sg:shrink-0 [&_svg]:sg:shrink-0 sg:outline-none focus-visible:sg:border-ring focus-visible:sg:ring-ring/50 focus-visible:sg:ring-[3px] aria-invalid:sg:ring-destructive/20 dark:aria-invalid:sg:ring-destructive/40 aria-invalid:sg:border-destructive",
|
|
128
|
+
{
|
|
129
|
+
variants: {
|
|
130
|
+
variant: {
|
|
131
|
+
default: "sg:bg-primary sg:text-primary-foreground sg:shadow-xs hover:sg:bg-primary/90",
|
|
132
|
+
destructive: "sg:bg-destructive sg:text-white sg:shadow-xs hover:sg:bg-destructive/90 focus-visible:sg:ring-destructive/20 dark:focus-visible:sg:ring-destructive/40 dark:sg:bg-destructive/60",
|
|
133
|
+
outline: "sg:border sg:bg-background sg:shadow-xs hover:sg:bg-accent hover:sg:text-accent-foreground dark:sg:bg-input/30 dark:sg:border-input dark:hover:sg:bg-input/50",
|
|
134
|
+
secondary: "sg:bg-secondary sg:text-secondary-foreground sg:shadow-xs hover:sg:bg-secondary/80",
|
|
135
|
+
ghost: "hover:sg:bg-accent hover:sg:text-accent-foreground dark:hover:sg:bg-accent/50",
|
|
136
|
+
link: "sg:text-primary sg:underline-offset-4 hover:sg:underline"
|
|
137
|
+
},
|
|
138
|
+
size: {
|
|
139
|
+
default: "sg:h-9 sg:px-4 sg:py-2 has-[>svg]:sg:px-3",
|
|
140
|
+
sm: "sg:h-8 sg:rounded-md sg:gap-1.5 sg:px-3 has-[>svg]:sg:px-2.5",
|
|
141
|
+
lg: "sg:h-10 sg:rounded-md sg:px-6 has-[>svg]:sg:px-4",
|
|
142
|
+
icon: "sg:size-9"
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
defaultVariants: {
|
|
146
|
+
variant: "default",
|
|
147
|
+
size: "default"
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
);
|
|
151
|
+
function Button({
|
|
152
|
+
className,
|
|
153
|
+
variant,
|
|
154
|
+
size,
|
|
155
|
+
asChild = false,
|
|
156
|
+
...props
|
|
157
|
+
}) {
|
|
158
|
+
const Comp = asChild ? reactSlot.Slot : "button";
|
|
159
|
+
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
160
|
+
Comp,
|
|
161
|
+
{
|
|
162
|
+
"data-slot": "button",
|
|
163
|
+
className: cn(buttonVariants({ variant, size, className })),
|
|
164
|
+
...props
|
|
165
|
+
}
|
|
166
|
+
) });
|
|
167
|
+
}
|
|
40
168
|
var headingVariants = classVarianceAuthority.cva("", {
|
|
41
169
|
variants: {
|
|
42
170
|
variant: {
|
|
@@ -79,6 +207,22 @@ var Heading = ({
|
|
|
79
207
|
}
|
|
80
208
|
);
|
|
81
209
|
};
|
|
210
|
+
function Input({ className, type, ...props }) {
|
|
211
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
212
|
+
"input",
|
|
213
|
+
{
|
|
214
|
+
type,
|
|
215
|
+
"data-slot": "input",
|
|
216
|
+
className: cn(
|
|
217
|
+
"file:sg:text-foreground placeholder:sg:text-muted-foreground selection:sg:bg-primary selection:sg:text-primary-foreground dark:sg:bg-input/30 sg:border-input sg:flex sg:h-9 sg:w-full sg:min-w-0 sg:rounded-md sg:border sg:bg-transparent sg:px-3 sg:py-1 sg:text-base sg:shadow-xs sg:transition-[color,box-shadow] sg:outline-none file:sg:inline-flex file:sg:h-7 file:sg:border-0 file:sg:bg-transparent file:sg:text-sm file:sg:font-medium disabled:sg:pointer-events-none disabled:sg:cursor-not-allowed disabled:sg:opacity-50 md:sg:text-sm",
|
|
218
|
+
"focus-visible:sg:border-ring focus-visible:sg:ring-ring/50 focus-visible:sg:ring-[3px]",
|
|
219
|
+
"aria-invalid:sg:ring-destructive/20 dark:aria-invalid:sg:ring-destructive/40 aria-invalid:sg:border-destructive",
|
|
220
|
+
className
|
|
221
|
+
),
|
|
222
|
+
...props
|
|
223
|
+
}
|
|
224
|
+
);
|
|
225
|
+
}
|
|
82
226
|
var bgColor = {
|
|
83
227
|
transparent: "sg:bg-transparent",
|
|
84
228
|
white: "sg:bg-white",
|
|
@@ -165,6 +309,108 @@ Layout.Col1 = Col1;
|
|
|
165
309
|
Layout.Col2 = Col2;
|
|
166
310
|
Layout.Col3 = Col3;
|
|
167
311
|
Layout.Col4 = Col4;
|
|
312
|
+
function Table({ className, ...props }) {
|
|
313
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
314
|
+
"div",
|
|
315
|
+
{
|
|
316
|
+
"data-slot": "table-container",
|
|
317
|
+
className: "sg:relative sg:w-full sg:overflow-x-auto",
|
|
318
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
319
|
+
"table",
|
|
320
|
+
{
|
|
321
|
+
"data-slot": "table",
|
|
322
|
+
className: cn("sg:w-full sg:caption-bottom sg:text-sm", className),
|
|
323
|
+
...props
|
|
324
|
+
}
|
|
325
|
+
)
|
|
326
|
+
}
|
|
327
|
+
);
|
|
328
|
+
}
|
|
329
|
+
function TableHeader({ className, ...props }) {
|
|
330
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
331
|
+
"thead",
|
|
332
|
+
{
|
|
333
|
+
"data-slot": "table-header",
|
|
334
|
+
className: cn("[&_tr]:sg:border-b", className),
|
|
335
|
+
...props
|
|
336
|
+
}
|
|
337
|
+
);
|
|
338
|
+
}
|
|
339
|
+
function TableBody({ className, ...props }) {
|
|
340
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
341
|
+
"tbody",
|
|
342
|
+
{
|
|
343
|
+
"data-slot": "table-body",
|
|
344
|
+
className: cn("[&_tr:last-child]:sg:border-0", className),
|
|
345
|
+
...props
|
|
346
|
+
}
|
|
347
|
+
);
|
|
348
|
+
}
|
|
349
|
+
function TableFooter({ className, ...props }) {
|
|
350
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
351
|
+
"tfoot",
|
|
352
|
+
{
|
|
353
|
+
"data-slot": "table-footer",
|
|
354
|
+
className: cn(
|
|
355
|
+
"sg:bg-muted/50 sg:border-t sg:font-medium [&>tr]:last:sg:border-b-0",
|
|
356
|
+
className
|
|
357
|
+
),
|
|
358
|
+
...props
|
|
359
|
+
}
|
|
360
|
+
);
|
|
361
|
+
}
|
|
362
|
+
function TableRow({ className, ...props }) {
|
|
363
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
364
|
+
"tr",
|
|
365
|
+
{
|
|
366
|
+
"data-slot": "table-row",
|
|
367
|
+
className: cn(
|
|
368
|
+
"hover:sg:bg-muted/50 data-[state=selected]:sg:bg-muted sg:border-b sg:transition-colors",
|
|
369
|
+
className
|
|
370
|
+
),
|
|
371
|
+
...props
|
|
372
|
+
}
|
|
373
|
+
);
|
|
374
|
+
}
|
|
375
|
+
function TableHead({ className, ...props }) {
|
|
376
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
377
|
+
"th",
|
|
378
|
+
{
|
|
379
|
+
"data-slot": "table-head",
|
|
380
|
+
className: cn(
|
|
381
|
+
"sg:text-foreground sg:h-10 sg:px-2 sg:text-left sg:align-middle sg:font-medium sg:whitespace-nowrap [&:has([role=checkbox])]:sg:pr-0 [&>[role=checkbox]]:sg:translate-y-[2px]",
|
|
382
|
+
className
|
|
383
|
+
),
|
|
384
|
+
...props
|
|
385
|
+
}
|
|
386
|
+
);
|
|
387
|
+
}
|
|
388
|
+
function TableCell({ className, ...props }) {
|
|
389
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
390
|
+
"td",
|
|
391
|
+
{
|
|
392
|
+
"data-slot": "table-cell",
|
|
393
|
+
className: cn(
|
|
394
|
+
"sg:p-2 sg:align-middle sg:whitespace-nowrap [&:has([role=checkbox])]:sg:pr-0 [&>[role=checkbox]]:sg:translate-y-[2px]",
|
|
395
|
+
className
|
|
396
|
+
),
|
|
397
|
+
...props
|
|
398
|
+
}
|
|
399
|
+
);
|
|
400
|
+
}
|
|
401
|
+
function TableCaption({
|
|
402
|
+
className,
|
|
403
|
+
...props
|
|
404
|
+
}) {
|
|
405
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
406
|
+
"caption",
|
|
407
|
+
{
|
|
408
|
+
"data-slot": "table-caption",
|
|
409
|
+
className: cn("sg:text-muted-foreground sg:mt-4 sg:text-sm", className),
|
|
410
|
+
...props
|
|
411
|
+
}
|
|
412
|
+
);
|
|
413
|
+
}
|
|
168
414
|
var textVariants = classVarianceAuthority.cva("", {
|
|
169
415
|
variants: {
|
|
170
416
|
size: {
|
|
@@ -219,128 +465,27 @@ var Text = ({
|
|
|
219
465
|
}
|
|
220
466
|
);
|
|
221
467
|
};
|
|
222
|
-
function Accordion({
|
|
223
|
-
...props
|
|
224
|
-
}) {
|
|
225
|
-
return /* @__PURE__ */ jsxRuntime.jsx(AccordionPrimitive__namespace.Root, { "data-slot": "accordion", ...props });
|
|
226
|
-
}
|
|
227
|
-
var badgeVariants = classVarianceAuthority.cva(
|
|
228
|
-
"sg:inline-flex sg:items-center sg:justify-center sg:rounded-md sg:border sg:px-2 sg:py-0.5 sg:text-xs sg:font-medium sg:w-fit sg:whitespace-nowrap sg:shrink-0 [&>svg]:sg:size-3 sg:gap-1 [&>svg]:sg:pointer-events-none focus-visible:sg:border-ring focus-visible:sg:ring-ring/50 focus-visible:sg:ring-[3px] aria-invalid:sg:ring-destructive/20 dark:aria-invalid:sg:ring-destructive/40 aria-invalid:sg:border-destructive sg:transition-[color,box-shadow] sg:overflow-hidden",
|
|
229
|
-
{
|
|
230
|
-
variants: {
|
|
231
|
-
variant: {
|
|
232
|
-
default: "sg:border-transparent sg:bg-primary sg:text-primary-foreground [a&]:hover:sg:bg-primary/90",
|
|
233
|
-
secondary: "sg:border-transparent sg:bg-secondary sg:text-secondary-foreground [a&]:hover:sg:bg-secondary/90",
|
|
234
|
-
destructive: "sg:border-transparent sg:bg-destructive sg:text-white [a&]:hover:sg:bg-destructive/90 focus-visible:sg:ring-destructive/20 dark:focus-visible:sg:ring-destructive/40 dark:sg:bg-destructive/60",
|
|
235
|
-
outline: "sg:text-foreground [a&]:hover:sg:bg-accent [a&]:hover:sg:text-accent-foreground"
|
|
236
|
-
}
|
|
237
|
-
},
|
|
238
|
-
defaultVariants: {
|
|
239
|
-
variant: "default"
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
);
|
|
243
|
-
function Badge({
|
|
244
|
-
className,
|
|
245
|
-
variant,
|
|
246
|
-
asChild = false,
|
|
247
|
-
...props
|
|
248
|
-
}) {
|
|
249
|
-
const Comp = asChild ? reactSlot.Slot : "span";
|
|
250
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
251
|
-
Comp,
|
|
252
|
-
{
|
|
253
|
-
"data-slot": "badge",
|
|
254
|
-
className: cn(badgeVariants({ variant }), className),
|
|
255
|
-
...props
|
|
256
|
-
}
|
|
257
|
-
);
|
|
258
|
-
}
|
|
259
|
-
var buttonVariants = classVarianceAuthority.cva(
|
|
260
|
-
"sg:inline-flex sg:items-center sg:justify-center sg:gap-2 sg:whitespace-nowrap sg:rounded-md sg:text-sm sg:font-medium sg:transition-all disabled:sg:pointer-events-none disabled:sg:opacity-50 [&_svg]:sg:pointer-events-none [&_svg:not([class*=size-])]:sg:size-4 sg:shrink-0 [&_svg]:sg:shrink-0 sg:outline-none focus-visible:sg:border-ring focus-visible:sg:ring-ring/50 focus-visible:sg:ring-[3px] aria-invalid:sg:ring-destructive/20 dark:aria-invalid:sg:ring-destructive/40 aria-invalid:sg:border-destructive",
|
|
261
|
-
{
|
|
262
|
-
variants: {
|
|
263
|
-
variant: {
|
|
264
|
-
default: "sg:bg-primary sg:text-primary-foreground sg:shadow-xs hover:sg:bg-primary/90",
|
|
265
|
-
destructive: "sg:bg-destructive sg:text-white sg:shadow-xs hover:sg:bg-destructive/90 focus-visible:sg:ring-destructive/20 dark:focus-visible:sg:ring-destructive/40 dark:sg:bg-destructive/60",
|
|
266
|
-
outline: "sg:border sg:bg-background sg:shadow-xs hover:sg:bg-accent hover:sg:text-accent-foreground dark:sg:bg-input/30 dark:sg:border-input dark:hover:sg:bg-input/50",
|
|
267
|
-
secondary: "sg:bg-secondary sg:text-secondary-foreground sg:shadow-xs hover:sg:bg-secondary/80",
|
|
268
|
-
ghost: "hover:sg:bg-accent hover:sg:text-accent-foreground dark:hover:sg:bg-accent/50",
|
|
269
|
-
link: "sg:text-primary sg:underline-offset-4 hover:sg:underline"
|
|
270
|
-
},
|
|
271
|
-
size: {
|
|
272
|
-
default: "sg:h-9 sg:px-4 sg:py-2 has-[>svg]:sg:px-3",
|
|
273
|
-
sm: "sg:h-8 sg:rounded-md sg:gap-1.5 sg:px-3 has-[>svg]:sg:px-2.5",
|
|
274
|
-
lg: "sg:h-10 sg:rounded-md sg:px-6 has-[>svg]:sg:px-4",
|
|
275
|
-
icon: "sg:size-9"
|
|
276
|
-
}
|
|
277
|
-
},
|
|
278
|
-
defaultVariants: {
|
|
279
|
-
variant: "default",
|
|
280
|
-
size: "default"
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
);
|
|
284
|
-
function Button({
|
|
285
|
-
className,
|
|
286
|
-
variant,
|
|
287
|
-
size,
|
|
288
|
-
asChild = false,
|
|
289
|
-
...props
|
|
290
|
-
}) {
|
|
291
|
-
const Comp = asChild ? reactSlot.Slot : "button";
|
|
292
|
-
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
293
|
-
Comp,
|
|
294
|
-
{
|
|
295
|
-
"data-slot": "button",
|
|
296
|
-
className: cn(buttonVariants({ variant, size, className })),
|
|
297
|
-
...props
|
|
298
|
-
}
|
|
299
|
-
) });
|
|
300
|
-
}
|
|
301
|
-
function Input({ className, type, ...props }) {
|
|
302
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
303
|
-
"input",
|
|
304
|
-
{
|
|
305
|
-
type,
|
|
306
|
-
"data-slot": "input",
|
|
307
|
-
className: cn(
|
|
308
|
-
"file:sg:text-foreground placeholder:sg:text-muted-foreground selection:sg:bg-primary selection:sg:text-primary-foreground dark:sg:bg-input/30 sg:border-input sg:flex sg:h-9 sg:w-full sg:min-w-0 sg:rounded-md sg:border sg:bg-transparent sg:px-3 sg:py-1 sg:text-base sg:shadow-xs sg:transition-[color,box-shadow] sg:outline-none file:sg:inline-flex file:sg:h-7 file:sg:border-0 file:sg:bg-transparent file:sg:text-sm file:sg:font-medium disabled:sg:pointer-events-none disabled:sg:cursor-not-allowed disabled:sg:opacity-50 md:sg:text-sm",
|
|
309
|
-
"focus-visible:sg:border-ring focus-visible:sg:ring-ring/50 focus-visible:sg:ring-[3px]",
|
|
310
|
-
"aria-invalid:sg:ring-destructive/20 dark:aria-invalid:sg:ring-destructive/40 aria-invalid:sg:border-destructive",
|
|
311
|
-
className
|
|
312
|
-
),
|
|
313
|
-
...props
|
|
314
|
-
}
|
|
315
|
-
);
|
|
316
|
-
}
|
|
317
|
-
function Table({ className, ...props }) {
|
|
318
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
319
|
-
"div",
|
|
320
|
-
{
|
|
321
|
-
"data-slot": "table-container",
|
|
322
|
-
className: "sg:relative sg:w-full sg:overflow-x-auto",
|
|
323
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
324
|
-
"table",
|
|
325
|
-
{
|
|
326
|
-
"data-slot": "table",
|
|
327
|
-
className: cn("sg:w-full sg:caption-bottom sg:text-sm", className),
|
|
328
|
-
...props
|
|
329
|
-
}
|
|
330
|
-
)
|
|
331
|
-
}
|
|
332
|
-
);
|
|
333
|
-
}
|
|
334
468
|
|
|
335
469
|
exports.Accordion = Accordion;
|
|
470
|
+
exports.AccordionContent = AccordionContent;
|
|
471
|
+
exports.AccordionItem = AccordionItem;
|
|
472
|
+
exports.AccordionTrigger = AccordionTrigger;
|
|
336
473
|
exports.Badge = Badge;
|
|
337
474
|
exports.Button = Button;
|
|
338
475
|
exports.Heading = Heading;
|
|
339
476
|
exports.Input = Input;
|
|
340
477
|
exports.Layout = Layout;
|
|
341
478
|
exports.Table = Table;
|
|
479
|
+
exports.TableBody = TableBody;
|
|
480
|
+
exports.TableCaption = TableCaption;
|
|
481
|
+
exports.TableCell = TableCell;
|
|
482
|
+
exports.TableFooter = TableFooter;
|
|
483
|
+
exports.TableHead = TableHead;
|
|
484
|
+
exports.TableHeader = TableHeader;
|
|
485
|
+
exports.TableRow = TableRow;
|
|
342
486
|
exports.Text = Text;
|
|
343
487
|
exports.badgeVariants = badgeVariants;
|
|
488
|
+
exports.buttonVariants = buttonVariants;
|
|
344
489
|
exports.layoutVariants = layoutVariants;
|
|
345
490
|
//# sourceMappingURL=main.cjs.map
|
|
346
491
|
//# sourceMappingURL=main.cjs.map
|
package/dist/main.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils.ts","../src/components/ui/heading/heading.tsx","../src/components/ui/layout/layout.tsx","../src/components/ui/text/text.tsx","../src/components/ui/accordion.tsx","../src/components/ui/badge.tsx","../src/components/ui/button.tsx","../src/components/ui/input.tsx","../src/components/ui/table.tsx"],"names":["extendTailwindMerge","twMerge","clsx","cva","jsx","React","Fragment","AccordionPrimitive","Slot"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGO,SAAS,MAAM,MAAsB,EAAA;AAC1C,EAAA,MAAM,oBAAoBA,iCAAoB,CAAA;AAAA,IAC5C,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAA,OAAO,iBAAkB,CAAAC,qBAAA,CAAQC,SAAK,CAAA,MAAM,CAAC,CAAC,CAAA;AAChD;ACJA,IAAM,eAAA,GAAkBC,2BAAI,EAAI,EAAA;AAAA,EAC9B,QAAU,EAAA;AAAA,IACR,OAAS,EAAA;AAAA,MACP,EAAI,EAAA,gEAAA;AAAA,MACJ,EAAI,EAAA,mFAAA;AAAA,MACJ,EAAI,EAAA,gDAAA;AAAA,MACJ,EAAI,EAAA;AAAA,KACN;AAAA,IACA,UAAY,EAAA;AAAA,MACV,OAAS,EAAA,oBAAA;AAAA,MACT,KAAO,EAAA,0BAAA;AAAA,MACP,OAAS,EAAA;AAAA;AACX,GACF;AAAA,EACA,eAAiB,EAAA;AAAA,IACf,OAAS,EAAA,IAAA;AAAA,IACT,UAAY,EAAA;AAAA;AAEhB,CAAC,CAAA;AAYM,IAAM,UAAkC,CAAC;AAAA,EAC9C,QAAA;AAAA,EACA,EAAA;AAAA,EACA,OAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACL,CAAM,KAAA;AACJ,EAAI,IAAA,CAAC,MAAM,OAAS,EAAA;AAClB,IAAK,EAAA,GAAA,OAAA;AAAA,GACP,MAAA,IAAW,CAAC,EAAI,EAAA;AACd,IAAK,EAAA,GAAA,IAAA;AAAA;AAEP,EAAA,MAAM,SAAY,GAAA,EAAA;AAElB,EACE,uBAAAC,cAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,GAAG,eAAgB,CAAA,EAAE,SAAS,UAAY,EAAA,SAAA,EAAW,CAAC,CAAA;AAAA,MAChE,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ;ACrDA,IAAM,OAAU,GAAA;AAAA,EACd,WAAa,EAAA,mBAAA;AAAA,EACb,KAAO,EAAA,aAAA;AAAA,EACP,KAAO,EAAA,aAAA;AAAA,EACP,MAAQ,EAAA,cAAA;AAAA,EACR,MAAQ,EAAA;AACV,CAAA;AAEM,IAAA,cAAA,GAAiBD,2BAAI,iCAAmC,EAAA;AAAA,EAC5D,QAAU,EAAA;AAAA,IACR,IAAM,EAAA;AAAA,MACJ,IAAM,EAAA,mBAAA;AAAA,MACN,GAAK,EAAA;AAAA,KACP;AAAA,IACA,IAAM,EAAA;AAAA,MACJ,KAAO,EAAA,EAAA;AAAA,MACP,OAAS,EAAA,mBAAA;AAAA,MACT,OAAS,EAAA,mBAAA;AAAA,MACT,UAAY,EAAA,mBAAA;AAAA,MACZ,aAAe,EAAA;AAAA,KACjB;AAAA,IACA,OAAS,EAAA;AAAA,GACX;AAAA,EACA,eAAiB,EAAA;AAAA,IACf,IAAM,EAAA,KAAA;AAAA,IACN,IAAM,EAAA;AAAA;AAEV,CAAC;AAMD,SAAS,MAAO,CAAA;AAAA,EACd,QAAA;AAAA,EACA,SAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,OAAA;AAAA,EACA,GAAG;AACL,CAAmC,EAAA;AACjC,EAAM,MAAA,eAAA,GAAkB,CACtB,OACY,KAAA;AACZ,IAAI,IAAA,OAAA,CAAQ,IAAS,KAAA,MAAA,CAAO,IAAM,EAAA;AAChC,MAAO,OAAA,IAAA;AAAA,KAEP,MAAA,IAAA,OAAA,CAAQ,IAAS,KAAA,MAAA,CAAO,IACvB,KAAA,IAAA,KAAS,OACR,IAAA,IAAA,KAAS,OACT,IAAA,IAAA,KAAS,UACT,IAAA,IAAA,KAAS,aACX,CAAA,EAAA;AACA,MAAO,OAAA,IAAA;AAAA,KACT,MAAA,IACE,QAAQ,IAAS,KAAA,MAAA,CAAO,SACvB,IAAS,KAAA,UAAA,IAAc,SAAS,aACjC,CAAA,EAAA;AACA,MAAO,OAAA,IAAA;AAAA,eACE,OAAQ,CAAA,IAAA,KAAS,MAAO,CAAA,IAAA,IAAQ,SAAS,aAAe,EAAA;AACjE,MAAO,OAAA,IAAA;AAAA;AAGT,IAAQ,OAAA,CAAA,KAAA;AAAA,MACN,2CAAA;AAAA,MACA,IAAA;AAAA,MACA,OAAQ,CAAA;AAAA,KACV;AACA,IAAO,OAAA,KAAA;AAAA,GACT;AAEA,EAAM,MAAA,YAAA,GAAe,CACnB,OACG,KAAA;AACH,IAAI,IAAA,CAAC,eAAgB,CAAA,OAAO,CAAG,EAAA;AAC7B,MAAA;AAAA;AAEF,IAAO,uBAAAC,cAAC,CAAA,KAAA,EAAA,EAAK,QAAQ,EAAA,OAAA,EAAA,CAAA;AAAA,GACvB;AAEA,EAAA,uBACEA,cAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACE,GAAG,KAAA;AAAA,MACJ,WAAW,EAAG,CAAA,OAAA,CAAQ,OAAW,IAAA,aAAa,GAAG,SAAS,CAAA;AAAA,MAE1D,QAAAA,kBAAAA,cAAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAW,EAAG,CAAA,cAAA,CAAe,EAAE,IAAA,EAAM,IAAK,EAAC,CAAC,CAAA,EAC9C,UAAMC,gBAAS,CAAA,QAAA,CAAA,GAAA;AAAA,QAAI,QAAA;AAAA,QAAU,CAAC,KACvB,KAAAA,gBAAA,CAAA,cAAA,CAAe,KAAK,CAAA,GAAI,aAAa,KAAK,CAAA,mBAAID,cAAAA,CAAAE,mBAAE,EAAA,EAAA;AAAA,OAE1D,EAAA;AAAA;AAAA,GACF;AAEJ;AAMA,SAAS,IAAA,CAAK,EAAE,QAAA,EAAqB,EAAA;AACnC,EAAO,OAAA,QAAA;AACT;AACA,SAAS,IAAA,CAAK,EAAE,QAAA,EAAqB,EAAA;AACnC,EAAO,OAAA,QAAA;AACT;AACA,SAAS,IAAA,CAAK,EAAE,QAAA,EAAqB,EAAA;AACnC,EAAO,OAAA,QAAA;AACT;AACA,SAAS,IAAA,CAAK,EAAE,QAAA,EAAqB,EAAA;AACnC,EAAO,OAAA,QAAA;AACT;AAEA,MAAA,CAAO,IAAO,GAAA,IAAA;AACd,MAAA,CAAO,IAAO,GAAA,IAAA;AACd,MAAA,CAAO,IAAO,GAAA,IAAA;AACd,MAAA,CAAO,IAAO,GAAA,IAAA;AClHd,IAAM,YAAA,GAAeH,2BAAI,EAAI,EAAA;AAAA,EAC3B,QAAU,EAAA;AAAA,IACR,IAAM,EAAA;AAAA,MACJ,EAAI,EAAA,YAAA;AAAA,MACJ,EAAI,EAAA,YAAA;AAAA,MACJ,IAAM,EAAA,cAAA;AAAA,MACN,EAAI,EAAA,YAAA;AAAA,MACJ,EAAI,EAAA;AAAA,KACN;AAAA,IACA,UAAY,EAAA;AAAA,MACV,OAAS,EAAA,oBAAA;AAAA,MACT,KAAO,EAAA,0BAAA;AAAA,MACP,OAAS,EAAA,iBAAA;AAAA,MACT,SAAW,EAAA,8BAAA;AAAA,MACX,WAAa,EAAA,qBAAA;AAAA,MACb,MAAQ,EAAA;AAAA,KACV;AAAA,IACA,MAAQ,EAAA;AAAA,MACN,MAAQ,EAAA,gBAAA;AAAA,MACR,MAAQ,EAAA,gBAAA;AAAA,MACR,QAAU,EAAA,kBAAA;AAAA,MACV,IAAM,EAAA;AAAA;AACR,GACF;AAAA,EACA,eAAiB,EAAA;AAAA,IACf,IAAM,EAAA,MAAA;AAAA,IACN,UAAY,EAAA,SAAA;AAAA,IACZ,MAAQ,EAAA;AAAA;AAEZ,CAAC,CAAA;AAQM,IAAM,OAA4B,CAAC;AAAA,EACxC,QAAA;AAAA,EACA,IAAA;AAAA,EACA,UAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACL,CAAM,KAAA;AACJ,EAAA,uBACEC,cAAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,SAAW,EAAA,EAAA;AAAA,QACT,YAAa,CAAA;AAAA,UACX,IAAA;AAAA,UACA,UAAA;AAAA,UACA,MAAA;AAAA,UACA;AAAA,SACD;AAAA,OACH;AAAA,MACC,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ;AC1DA,SAAS,SAAU,CAAA;AAAA,EACjB,GAAG;AACL,CAAyD,EAAA;AACvD,EAAA,uBAAOA,cAAoB,CAAAG,6BAAA,CAAA,IAAA,EAAnB,EAAwB,WAAU,EAAA,WAAA,EAAa,GAAG,KAAO,EAAA,CAAA;AACnE;ACNA,IAAM,aAAgBJ,GAAAA,0BAAAA;AAAA,EACpB,qdAAA;AAAA,EACA;AAAA,IACE,QAAU,EAAA;AAAA,MACR,OAAS,EAAA;AAAA,QACP,OACE,EAAA,4FAAA;AAAA,QACF,SACE,EAAA,kGAAA;AAAA,QACF,WACE,EAAA,gMAAA;AAAA,QACF,OACE,EAAA;AAAA;AACJ,KACF;AAAA,IACA,eAAiB,EAAA;AAAA,MACf,OAAS,EAAA;AAAA;AACX;AAEJ;AAEA,SAAS,KAAM,CAAA;AAAA,EACb,SAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAU,GAAA,KAAA;AAAA,EACV,GAAG;AACL,CAC8D,EAAA;AAC5D,EAAM,MAAA,IAAA,GAAO,UAAUK,cAAO,GAAA,MAAA;AAE9B,EAAA,uBACEJ,cAAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,WAAU,EAAA,OAAA;AAAA,MACV,WAAW,EAAG,CAAA,aAAA,CAAc,EAAE,OAAQ,EAAC,GAAG,SAAS,CAAA;AAAA,MAClD,GAAG;AAAA;AAAA,GACN;AAEJ;ACrCA,IAAM,cAAiBD,GAAAA,0BAAAA;AAAA,EACrB,6fAAA;AAAA,EACA;AAAA,IACE,QAAU,EAAA;AAAA,MACR,OAAS,EAAA;AAAA,QACP,OACE,EAAA,8EAAA;AAAA,QACF,WACE,EAAA,kLAAA;AAAA,QACF,OACE,EAAA,+JAAA;AAAA,QACF,SACE,EAAA,oFAAA;AAAA,QACF,KACE,EAAA,+EAAA;AAAA,QACF,IAAM,EAAA;AAAA,OACR;AAAA,MACA,IAAM,EAAA;AAAA,QACJ,OAAS,EAAA,2CAAA;AAAA,QACT,EAAI,EAAA,8DAAA;AAAA,QACJ,EAAI,EAAA,kDAAA;AAAA,QACJ,IAAM,EAAA;AAAA;AACR,KACF;AAAA,IACA,eAAiB,EAAA;AAAA,MACf,OAAS,EAAA,SAAA;AAAA,MACT,IAAM,EAAA;AAAA;AACR;AAEJ,CAAA;AAEA,SAAS,MAAO,CAAA;AAAA,EACd,SAAA;AAAA,EACA,OAAA;AAAA,EACA,IAAA;AAAA,EACA,OAAU,GAAA,KAAA;AAAA,EACV,GAAG;AACL,CAGK,EAAA;AACH,EAAM,MAAA,IAAA,GAAO,UAAUK,cAAO,GAAA,QAAA;AAE9B,EAAA,uBACEJ,cAAAA,CAAAE,mBAAA,EAAA,EACE,QAAAF,kBAAAA,cAAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,WAAU,EAAA,QAAA;AAAA,MACV,SAAA,EAAW,GAAG,cAAe,CAAA,EAAE,SAAS,IAAM,EAAA,SAAA,EAAW,CAAC,CAAA;AAAA,MACzD,GAAG;AAAA;AAAA,GAER,EAAA,CAAA;AAEJ;ACtDA,SAAS,MAAM,EAAE,SAAA,EAAW,IAAM,EAAA,GAAG,OAAwC,EAAA;AAC3E,EAAA,uBACEA,cAAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,IAAA;AAAA,MACA,WAAU,EAAA,OAAA;AAAA,MACV,SAAW,EAAA,EAAA;AAAA,QACT,whBAAA;AAAA,QACA,wFAAA;AAAA,QACA,iHAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;ACZA,SAAS,KAAM,CAAA,EAAE,SAAW,EAAA,GAAG,OAAwC,EAAA;AACrE,EAAA,uBACEA,cAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAU,EAAA,iBAAA;AAAA,MACV,SAAU,EAAA,0CAAA;AAAA,MAEV,QAAAA,kBAAAA,cAAAA;AAAA,QAAC,OAAA;AAAA,QAAA;AAAA,UACC,WAAU,EAAA,OAAA;AAAA,UACV,SAAA,EAAW,EAAG,CAAA,wCAAA,EAA0C,SAAS,CAAA;AAAA,UAChE,GAAG;AAAA;AAAA;AACN;AAAA,GACF;AAEJ","file":"main.cjs","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\r\nimport { extendTailwindMerge, twMerge } from \"tailwind-merge\";\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n const twMergeWithPrefix = extendTailwindMerge({\r\n prefix: \"sg:\",\r\n });\r\n\r\n return twMergeWithPrefix(twMerge(clsx(inputs)));\r\n}\r\n","import React from \"react\";\r\nimport { cva, type VariantProps } from \"class-variance-authority\";\r\nimport { cn } from \"../../../utils\";\r\nimport { OmitClassProperty, TailwindMarginClass } from \"../../../lib/types\";\r\n\r\nconst headingVariants = cva(\"\", {\r\n variants: {\r\n variant: {\r\n h1: \"sg:text-4xl sg:font-extrabold sg:tracking-tight sg:lg:text-5xl\",\r\n h2: \"sg:text-3xl sg:font-semibold sg:tracking-tight sg:transition-colors sg:first:mt-0\",\r\n h3: \"sg:text-2xl sg:font-semibold sg:tracking-tight\",\r\n h4: \"sg:text-xl sg:font-semibold sg:tracking-tight\",\r\n },\r\n foreground: {\r\n default: \"sg:text-foreground\",\r\n muted: \"sg:text-muted-foreground\",\r\n primary: \"sg:text-primary\",\r\n },\r\n },\r\n defaultVariants: {\r\n variant: \"h2\",\r\n foreground: \"default\",\r\n },\r\n});\r\n\r\nexport interface HeadingProps\r\n extends OmitClassProperty<\r\n React.HTMLAttributes<HTMLHeadingElement>,\r\n \"className\"\r\n >,\r\n VariantProps<typeof headingVariants> {\r\n as?: \"h1\" | \"h2\" | \"h3\" | \"h4\";\r\n className?: TailwindMarginClass;\r\n}\r\n\r\nexport const Heading: React.FC<HeadingProps> = ({\r\n children,\r\n as,\r\n variant,\r\n foreground,\r\n className,\r\n ...props\r\n}) => {\r\n if (!as && variant) {\r\n as = variant;\r\n } else if (!as) {\r\n as = \"h2\";\r\n }\r\n const Component = as;\r\n\r\n return (\r\n <Component\r\n className={cn(headingVariants({ variant, foreground, className }))}\r\n {...props}\r\n >\r\n {children}\r\n </Component>\r\n );\r\n};\r\n","import * as React from \"react\";\r\nimport { cva, type VariantProps } from \"class-variance-authority\";\r\nimport { cn } from \"../../../utils\";\r\nimport { PropsWithChildren } from \"react\";\r\n\r\nconst bgColor = {\r\n transparent: \"sg:bg-transparent\",\r\n white: \"sg:bg-white\",\r\n black: \"sg:bg-black\",\r\n orange: \"sg:bg-orange\",\r\n purple: \"sg:bg-purple\",\r\n};\r\n\r\nconst layoutVariants = cva(\"sg:grid sg:grid-cols-1 sg:gap-4\", {\r\n variants: {\r\n type: {\r\n full: \"sg:w-full sg:px-4\",\r\n col: \"sg:mx-auto sg:max-w-[768px] sg:px-4 sg:md:px-0\",\r\n },\r\n cols: {\r\n \"100\": \"\",\r\n \"66-33\": \"sg:md:grid-cols-2\",\r\n \"50-50\": \"sg:md:grid-cols-2\",\r\n \"33-33-33\": \"sg:md:grid-cols-3\",\r\n \"25-25-25-25\": \"sg:md:grid-cols-4\",\r\n },\r\n bgcolor: bgColor,\r\n },\r\n defaultVariants: {\r\n type: \"col\",\r\n cols: \"100\",\r\n },\r\n});\r\n\r\nexport interface LayoutProps\r\n extends React.HTMLAttributes<HTMLDivElement>,\r\n VariantProps<typeof layoutVariants> {}\r\n\r\nfunction Layout({\r\n children,\r\n className,\r\n type,\r\n cols,\r\n bgcolor,\r\n ...props\r\n}: PropsWithChildren<LayoutProps>) {\r\n const allowedInLayout = (\r\n content: React.ReactElement<any, string | React.JSXElementConstructor<any>>\r\n ): boolean => {\r\n if (content.type === Layout.Col1) {\r\n return true;\r\n } else if (\r\n content.type === Layout.Col2 &&\r\n (cols === \"66-33\" ||\r\n cols === \"50-50\" ||\r\n cols === \"33-33-33\" ||\r\n cols === \"25-25-25-25\")\r\n ) {\r\n return true;\r\n } else if (\r\n content.type === Layout.Col3 &&\r\n (cols === \"33-33-33\" || cols === \"25-25-25-25\")\r\n ) {\r\n return true;\r\n } else if (content.type === Layout.Col4 && cols === \"25-25-25-25\") {\r\n return true;\r\n }\r\n\r\n console.error(\r\n \"Content not allowed in column for variant\",\r\n cols,\r\n content.type\r\n );\r\n return false;\r\n };\r\n\r\n const renderColumn = (\r\n content: React.ReactElement<any, string | React.JSXElementConstructor<any>>\r\n ) => {\r\n if (!allowedInLayout(content)) {\r\n return;\r\n }\r\n return <div>{content}</div>;\r\n };\r\n\r\n return (\r\n <div\r\n {...props}\r\n className={cn(bgColor[bgcolor ?? \"transparent\"], className)}\r\n >\r\n <div className={cn(layoutVariants({ type, cols }))}>\r\n {React.Children.map(children, (child) =>\r\n React.isValidElement(child) ? renderColumn(child) : <></>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\ntype colProp = {\r\n children?: React.ReactNode;\r\n};\r\n\r\nfunction Col1({ children }: colProp) {\r\n return children;\r\n}\r\nfunction Col2({ children }: colProp) {\r\n return children;\r\n}\r\nfunction Col3({ children }: colProp) {\r\n return children;\r\n}\r\nfunction Col4({ children }: colProp) {\r\n return children;\r\n}\r\n\r\nLayout.Col1 = Col1;\r\nLayout.Col2 = Col2;\r\nLayout.Col3 = Col3;\r\nLayout.Col4 = Col4;\r\n\r\nexport { Layout, layoutVariants };\r\n","import React from \"react\";\r\nimport { cva, type VariantProps } from \"class-variance-authority\";\r\nimport { cn } from \"../../../utils\";\r\nimport { OmitClassProperty, TailwindMarginClass } from \"../../../lib/types\";\r\n\r\nconst textVariants = cva(\"\", {\r\n variants: {\r\n size: {\r\n xs: \"sg:text-xs\",\r\n sm: \"sg:text-sm\",\r\n base: \"sg:text-base\",\r\n lg: \"sg:text-lg\",\r\n xl: \"sg:text-xl\",\r\n },\r\n foreground: {\r\n default: \"sg:text-foreground\",\r\n muted: \"sg:text-muted-foreground\",\r\n primary: \"sg:text-primary\",\r\n secondary: \"sg:text-secondary-foreground\",\r\n destructive: \"sg:text-destructive\",\r\n accent: \"sg:text-accent-foreground\",\r\n },\r\n weight: {\r\n normal: \"sg:font-normal\",\r\n medium: \"sg:font-medium\",\r\n semibold: \"sg:font-semibold\",\r\n bold: \"sg:font-bold\",\r\n },\r\n },\r\n defaultVariants: {\r\n size: \"base\",\r\n foreground: \"default\",\r\n weight: \"normal\",\r\n },\r\n});\r\n\r\nexport interface TextProps\r\n extends OmitClassProperty<React.HTMLAttributes<HTMLDivElement>, \"className\">,\r\n VariantProps<typeof textVariants> {\r\n className?: TailwindMarginClass;\r\n}\r\n\r\nexport const Text: React.FC<TextProps> = ({\r\n children,\r\n size,\r\n foreground,\r\n weight,\r\n className,\r\n ...props\r\n}) => {\r\n return (\r\n <p\r\n className={cn(\r\n textVariants({\r\n size,\r\n foreground,\r\n weight,\r\n className,\r\n })\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n </p>\r\n );\r\n};\r\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as AccordionPrimitive from \"@radix-ui/react-accordion\";\nimport { ChevronDownIcon } from \"lucide-react\";\nimport { cn } from \"../../utils\";\n\nfunction Accordion({\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Root>) {\n return <AccordionPrimitive.Root data-slot=\"accordion\" {...props} />;\n}\n\nfunction AccordionItem({\n className,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Item>) {\n return (\n <AccordionPrimitive.Item\n data-slot=\"accordion-item\"\n className={cn(\"sg:border-b last:sg:border-b-0\", className)}\n {...props}\n />\n );\n}\n\nfunction AccordionTrigger({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Trigger>) {\n return (\n <AccordionPrimitive.Header className=\"sg:flex\">\n <AccordionPrimitive.Trigger\n data-slot=\"accordion-trigger\"\n className={cn(\n \"focus-visible:sg:border-ring focus-visible:sg:ring-ring/50 sg:flex sg:flex-1 sg:items-start sg:justify-between sg:gap-4 sg:rounded-md sg:py-4 sg:text-left sg:text-sm sg:font-medium sg:transition-all sg:outline-none hover:sg:underline focus-visible:sg:ring-[3px] disabled:sg:pointer-events-none disabled:sg:opacity-50 [&[data-state=open]>svg]:sg:rotate-180\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronDownIcon className=\"sg:text-muted-foreground sg:pointer-events-none sg:size-4 sg:shrink-0 sg:translate-y-0.5 sg:transition-transform sg:duration-200\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n );\n}\n\nfunction AccordionContent({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Content>) {\n return (\n <AccordionPrimitive.Content\n data-slot=\"accordion-content\"\n className=\"data-[state=closed]:sg:animate-accordion-up data-[state=open]:sg:animate-accordion-down sg:overflow-hidden sg:text-sm\"\n {...props}\n >\n <div className={cn(\"sg:pt-0 sg:pb-4\", className)}>{children}</div>\n </AccordionPrimitive.Content>\n );\n}\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent };\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils\";\n\nconst badgeVariants = cva(\n \"sg:inline-flex sg:items-center sg:justify-center sg:rounded-md sg:border sg:px-2 sg:py-0.5 sg:text-xs sg:font-medium sg:w-fit sg:whitespace-nowrap sg:shrink-0 [&>svg]:sg:size-3 sg:gap-1 [&>svg]:sg:pointer-events-none focus-visible:sg:border-ring focus-visible:sg:ring-ring/50 focus-visible:sg:ring-[3px] aria-invalid:sg:ring-destructive/20 dark:aria-invalid:sg:ring-destructive/40 aria-invalid:sg:border-destructive sg:transition-[color,box-shadow] sg:overflow-hidden\",\n {\n variants: {\n variant: {\n default:\n \"sg:border-transparent sg:bg-primary sg:text-primary-foreground [a&]:hover:sg:bg-primary/90\",\n secondary:\n \"sg:border-transparent sg:bg-secondary sg:text-secondary-foreground [a&]:hover:sg:bg-secondary/90\",\n destructive:\n \"sg:border-transparent sg:bg-destructive sg:text-white [a&]:hover:sg:bg-destructive/90 focus-visible:sg:ring-destructive/20 dark:focus-visible:sg:ring-destructive/40 dark:sg:bg-destructive/60\",\n outline:\n \"sg:text-foreground [a&]:hover:sg:bg-accent [a&]:hover:sg:text-accent-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nfunction Badge({\n className,\n variant,\n asChild = false,\n ...props\n}: React.ComponentProps<\"span\"> &\n VariantProps<typeof badgeVariants> & { asChild?: boolean }) {\n const Comp = asChild ? Slot : \"span\";\n\n return (\n <Comp\n data-slot=\"badge\"\n className={cn(badgeVariants({ variant }), className)}\n {...props}\n />\n );\n}\n\nexport { Badge, badgeVariants };\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils\";\n\nconst buttonVariants = cva(\n \"sg:inline-flex sg:items-center sg:justify-center sg:gap-2 sg:whitespace-nowrap sg:rounded-md sg:text-sm sg:font-medium sg:transition-all disabled:sg:pointer-events-none disabled:sg:opacity-50 [&_svg]:sg:pointer-events-none [&_svg:not([class*=size-])]:sg:size-4 sg:shrink-0 [&_svg]:sg:shrink-0 sg:outline-none focus-visible:sg:border-ring focus-visible:sg:ring-ring/50 focus-visible:sg:ring-[3px] aria-invalid:sg:ring-destructive/20 dark:aria-invalid:sg:ring-destructive/40 aria-invalid:sg:border-destructive\",\n {\n variants: {\n variant: {\n default:\n \"sg:bg-primary sg:text-primary-foreground sg:shadow-xs hover:sg:bg-primary/90\",\n destructive:\n \"sg:bg-destructive sg:text-white sg:shadow-xs hover:sg:bg-destructive/90 focus-visible:sg:ring-destructive/20 dark:focus-visible:sg:ring-destructive/40 dark:sg:bg-destructive/60\",\n outline:\n \"sg:border sg:bg-background sg:shadow-xs hover:sg:bg-accent hover:sg:text-accent-foreground dark:sg:bg-input/30 dark:sg:border-input dark:hover:sg:bg-input/50\",\n secondary:\n \"sg:bg-secondary sg:text-secondary-foreground sg:shadow-xs hover:sg:bg-secondary/80\",\n ghost:\n \"hover:sg:bg-accent hover:sg:text-accent-foreground dark:hover:sg:bg-accent/50\",\n link: \"sg:text-primary sg:underline-offset-4 hover:sg:underline\",\n },\n size: {\n default: \"sg:h-9 sg:px-4 sg:py-2 has-[>svg]:sg:px-3\",\n sm: \"sg:h-8 sg:rounded-md sg:gap-1.5 sg:px-3 has-[>svg]:sg:px-2.5\",\n lg: \"sg:h-10 sg:rounded-md sg:px-6 has-[>svg]:sg:px-4\",\n icon: \"sg:size-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n);\n\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean;\n }) {\n const Comp = asChild ? Slot : \"button\";\n\n return (\n <>\n <Comp\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n </>\n );\n}\n\nexport { Button, buttonVariants };\n","import * as React from \"react\";\nimport { cn } from \"../../utils\";\n\nfunction Input({ className, type, ...props }: React.ComponentProps<\"input\">) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n className={cn(\n \"file:sg:text-foreground placeholder:sg:text-muted-foreground selection:sg:bg-primary selection:sg:text-primary-foreground dark:sg:bg-input/30 sg:border-input sg:flex sg:h-9 sg:w-full sg:min-w-0 sg:rounded-md sg:border sg:bg-transparent sg:px-3 sg:py-1 sg:text-base sg:shadow-xs sg:transition-[color,box-shadow] sg:outline-none file:sg:inline-flex file:sg:h-7 file:sg:border-0 file:sg:bg-transparent file:sg:text-sm file:sg:font-medium disabled:sg:pointer-events-none disabled:sg:cursor-not-allowed disabled:sg:opacity-50 md:sg:text-sm\",\n \"focus-visible:sg:border-ring focus-visible:sg:ring-ring/50 focus-visible:sg:ring-[3px]\",\n \"aria-invalid:sg:ring-destructive/20 dark:aria-invalid:sg:ring-destructive/40 aria-invalid:sg:border-destructive\",\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../../utils\";\n\nfunction Table({ className, ...props }: React.ComponentProps<\"table\">) {\n return (\n <div\n data-slot=\"table-container\"\n className=\"sg:relative sg:w-full sg:overflow-x-auto\"\n >\n <table\n data-slot=\"table\"\n className={cn(\"sg:w-full sg:caption-bottom sg:text-sm\", className)}\n {...props}\n />\n </div>\n );\n}\n\nfunction TableHeader({ className, ...props }: React.ComponentProps<\"thead\">) {\n return (\n <thead\n data-slot=\"table-header\"\n className={cn(\"[&_tr]:sg:border-b\", className)}\n {...props}\n />\n );\n}\n\nfunction TableBody({ className, ...props }: React.ComponentProps<\"tbody\">) {\n return (\n <tbody\n data-slot=\"table-body\"\n className={cn(\"[&_tr:last-child]:sg:border-0\", className)}\n {...props}\n />\n );\n}\n\nfunction TableFooter({ className, ...props }: React.ComponentProps<\"tfoot\">) {\n return (\n <tfoot\n data-slot=\"table-footer\"\n className={cn(\n \"sg:bg-muted/50 sg:border-t sg:font-medium [&>tr]:last:sg:border-b-0\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction TableRow({ className, ...props }: React.ComponentProps<\"tr\">) {\n return (\n <tr\n data-slot=\"table-row\"\n className={cn(\n \"hover:sg:bg-muted/50 data-[state=selected]:sg:bg-muted sg:border-b sg:transition-colors\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction TableHead({ className, ...props }: React.ComponentProps<\"th\">) {\n return (\n <th\n data-slot=\"table-head\"\n className={cn(\n \"sg:text-foreground sg:h-10 sg:px-2 sg:text-left sg:align-middle sg:font-medium sg:whitespace-nowrap [&:has([role=checkbox])]:sg:pr-0 [&>[role=checkbox]]:sg:translate-y-[2px]\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction TableCell({ className, ...props }: React.ComponentProps<\"td\">) {\n return (\n <td\n data-slot=\"table-cell\"\n className={cn(\n \"sg:p-2 sg:align-middle sg:whitespace-nowrap [&:has([role=checkbox])]:sg:pr-0 [&>[role=checkbox]]:sg:translate-y-[2px]\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction TableCaption({\n className,\n ...props\n}: React.ComponentProps<\"caption\">) {\n return (\n <caption\n data-slot=\"table-caption\"\n className={cn(\"sg:text-muted-foreground sg:mt-4 sg:text-sm\", className)}\n {...props}\n />\n );\n}\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/utils.ts","../src/components/ui/accordion.tsx","../src/components/ui/badge.tsx","../src/components/ui/button.tsx","../src/components/ui/heading.tsx","../src/components/ui/input.tsx","../src/components/ui/layout.tsx","../src/components/ui/table.tsx","../src/components/ui/text.tsx"],"names":["extendTailwindMerge","twMerge","clsx","AccordionPrimitive","jsx","jsxs","ChevronDownIcon","cva","Slot","Fragment","React"],"mappings":"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","file":"main.cjs","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\r\nimport { extendTailwindMerge, twMerge } from \"tailwind-merge\";\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n const twMergeWithPrefix = extendTailwindMerge({\r\n prefix: \"sg:\",\r\n });\r\n\r\n return twMergeWithPrefix(twMerge(clsx(inputs)));\r\n}\r\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as AccordionPrimitive from \"@radix-ui/react-accordion\";\nimport { ChevronDownIcon } from \"lucide-react\";\nimport { cn } from \"../../utils\";\n\nfunction Accordion({\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Root>) {\n return <AccordionPrimitive.Root data-slot=\"accordion\" {...props} />;\n}\n\nfunction AccordionItem({\n className,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Item>) {\n return (\n <AccordionPrimitive.Item\n data-slot=\"accordion-item\"\n className={cn(\"sg:border-b last:sg:border-b-0\", className)}\n {...props}\n />\n );\n}\n\nfunction AccordionTrigger({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Trigger>) {\n return (\n <AccordionPrimitive.Header className=\"sg:flex\">\n <AccordionPrimitive.Trigger\n data-slot=\"accordion-trigger\"\n className={cn(\n \"focus-visible:sg:border-ring focus-visible:sg:ring-ring/50 sg:flex sg:flex-1 sg:items-start sg:justify-between sg:gap-4 sg:rounded-md sg:py-4 sg:text-left sg:text-sm sg:font-medium sg:transition-all sg:outline-none hover:sg:underline focus-visible:sg:ring-[3px] disabled:sg:pointer-events-none disabled:sg:opacity-50 [&[data-state=open]>svg]:sg:rotate-180\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronDownIcon className=\"sg:text-muted-foreground sg:pointer-events-none sg:size-4 sg:shrink-0 sg:translate-y-0.5 sg:transition-transform sg:duration-200\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n );\n}\n\nfunction AccordionContent({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Content>) {\n return (\n <AccordionPrimitive.Content\n data-slot=\"accordion-content\"\n className=\"data-[state=closed]:sg:animate-accordion-up data-[state=open]:sg:animate-accordion-down sg:overflow-hidden sg:text-sm\"\n {...props}\n >\n <div className={cn(\"sg:pt-0 sg:pb-4\", className)}>{children}</div>\n </AccordionPrimitive.Content>\n );\n}\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent };\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils\";\n\nconst badgeVariants = cva(\n \"sg:inline-flex sg:items-center sg:justify-center sg:rounded-md sg:border sg:px-2 sg:py-0.5 sg:text-xs sg:font-medium sg:w-fit sg:whitespace-nowrap sg:shrink-0 [&>svg]:sg:size-3 sg:gap-1 [&>svg]:sg:pointer-events-none focus-visible:sg:border-ring focus-visible:sg:ring-ring/50 focus-visible:sg:ring-[3px] aria-invalid:sg:ring-destructive/20 dark:aria-invalid:sg:ring-destructive/40 aria-invalid:sg:border-destructive sg:transition-[color,box-shadow] sg:overflow-hidden\",\n {\n variants: {\n variant: {\n default:\n \"sg:border-transparent sg:bg-primary sg:text-primary-foreground [a&]:hover:sg:bg-primary/90\",\n secondary:\n \"sg:border-transparent sg:bg-secondary sg:text-secondary-foreground [a&]:hover:sg:bg-secondary/90\",\n destructive:\n \"sg:border-transparent sg:bg-destructive sg:text-white [a&]:hover:sg:bg-destructive/90 focus-visible:sg:ring-destructive/20 dark:focus-visible:sg:ring-destructive/40 dark:sg:bg-destructive/60\",\n outline:\n \"sg:text-foreground [a&]:hover:sg:bg-accent [a&]:hover:sg:text-accent-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nfunction Badge({\n className,\n variant,\n asChild = false,\n ...props\n}: React.ComponentProps<\"span\"> &\n VariantProps<typeof badgeVariants> & { asChild?: boolean }) {\n const Comp = asChild ? Slot : \"span\";\n\n return (\n <Comp\n data-slot=\"badge\"\n className={cn(badgeVariants({ variant }), className)}\n {...props}\n />\n );\n}\n\nexport { Badge, badgeVariants };\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils\";\n\nconst buttonVariants = cva(\n \"sg:inline-flex sg:items-center sg:justify-center sg:gap-2 sg:whitespace-nowrap sg:rounded-md sg:text-sm sg:font-medium sg:transition-all disabled:sg:pointer-events-none disabled:sg:opacity-50 [&_svg]:sg:pointer-events-none [&_svg:not([class*=size-])]:sg:size-4 sg:shrink-0 [&_svg]:sg:shrink-0 sg:outline-none focus-visible:sg:border-ring focus-visible:sg:ring-ring/50 focus-visible:sg:ring-[3px] aria-invalid:sg:ring-destructive/20 dark:aria-invalid:sg:ring-destructive/40 aria-invalid:sg:border-destructive\",\n {\n variants: {\n variant: {\n default:\n \"sg:bg-primary sg:text-primary-foreground sg:shadow-xs hover:sg:bg-primary/90\",\n destructive:\n \"sg:bg-destructive sg:text-white sg:shadow-xs hover:sg:bg-destructive/90 focus-visible:sg:ring-destructive/20 dark:focus-visible:sg:ring-destructive/40 dark:sg:bg-destructive/60\",\n outline:\n \"sg:border sg:bg-background sg:shadow-xs hover:sg:bg-accent hover:sg:text-accent-foreground dark:sg:bg-input/30 dark:sg:border-input dark:hover:sg:bg-input/50\",\n secondary:\n \"sg:bg-secondary sg:text-secondary-foreground sg:shadow-xs hover:sg:bg-secondary/80\",\n ghost:\n \"hover:sg:bg-accent hover:sg:text-accent-foreground dark:hover:sg:bg-accent/50\",\n link: \"sg:text-primary sg:underline-offset-4 hover:sg:underline\",\n },\n size: {\n default: \"sg:h-9 sg:px-4 sg:py-2 has-[>svg]:sg:px-3\",\n sm: \"sg:h-8 sg:rounded-md sg:gap-1.5 sg:px-3 has-[>svg]:sg:px-2.5\",\n lg: \"sg:h-10 sg:rounded-md sg:px-6 has-[>svg]:sg:px-4\",\n icon: \"sg:size-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n);\n\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean;\n }) {\n const Comp = asChild ? Slot : \"button\";\n\n return (\n <>\n <Comp\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n </>\n );\n}\n\nexport { Button, buttonVariants };\n","import React from \"react\";\r\nimport { cva, type VariantProps } from \"class-variance-authority\";\r\nimport { cn } from \"../../utils\";\r\nimport { OmitClassProperty, TailwindMarginClass } from \"../../lib/types\";\r\n\r\nconst headingVariants = cva(\"\", {\r\n variants: {\r\n variant: {\r\n h1: \"sg:text-4xl sg:font-extrabold sg:tracking-tight sg:lg:text-5xl\",\r\n h2: \"sg:text-3xl sg:font-semibold sg:tracking-tight sg:transition-colors sg:first:mt-0\",\r\n h3: \"sg:text-2xl sg:font-semibold sg:tracking-tight\",\r\n h4: \"sg:text-xl sg:font-semibold sg:tracking-tight\",\r\n },\r\n foreground: {\r\n default: \"sg:text-foreground\",\r\n muted: \"sg:text-muted-foreground\",\r\n primary: \"sg:text-primary\",\r\n },\r\n },\r\n defaultVariants: {\r\n variant: \"h2\",\r\n foreground: \"default\",\r\n },\r\n});\r\n\r\nexport interface HeadingProps\r\n extends OmitClassProperty<\r\n React.HTMLAttributes<HTMLHeadingElement>,\r\n \"className\"\r\n >,\r\n VariantProps<typeof headingVariants> {\r\n as?: \"h1\" | \"h2\" | \"h3\" | \"h4\";\r\n className?: TailwindMarginClass;\r\n}\r\n\r\nexport const Heading: React.FC<HeadingProps> = ({\r\n children,\r\n as,\r\n variant,\r\n foreground,\r\n className,\r\n ...props\r\n}) => {\r\n if (!as && variant) {\r\n as = variant;\r\n } else if (!as) {\r\n as = \"h2\";\r\n }\r\n const Component = as;\r\n\r\n return (\r\n <Component\r\n className={cn(headingVariants({ variant, foreground, className }))}\r\n {...props}\r\n >\r\n {children}\r\n </Component>\r\n );\r\n};\r\n","import * as React from \"react\";\nimport { cn } from \"../../utils\";\n\nfunction Input({ className, type, ...props }: React.ComponentProps<\"input\">) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n className={cn(\n \"file:sg:text-foreground placeholder:sg:text-muted-foreground selection:sg:bg-primary selection:sg:text-primary-foreground dark:sg:bg-input/30 sg:border-input sg:flex sg:h-9 sg:w-full sg:min-w-0 sg:rounded-md sg:border sg:bg-transparent sg:px-3 sg:py-1 sg:text-base sg:shadow-xs sg:transition-[color,box-shadow] sg:outline-none file:sg:inline-flex file:sg:h-7 file:sg:border-0 file:sg:bg-transparent file:sg:text-sm file:sg:font-medium disabled:sg:pointer-events-none disabled:sg:cursor-not-allowed disabled:sg:opacity-50 md:sg:text-sm\",\n \"focus-visible:sg:border-ring focus-visible:sg:ring-ring/50 focus-visible:sg:ring-[3px]\",\n \"aria-invalid:sg:ring-destructive/20 dark:aria-invalid:sg:ring-destructive/40 aria-invalid:sg:border-destructive\",\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n","import * as React from \"react\";\r\nimport { cva, type VariantProps } from \"class-variance-authority\";\r\nimport { cn } from \"../../utils\";\r\nimport { PropsWithChildren } from \"react\";\r\n\r\nconst bgColor = {\r\n transparent: \"sg:bg-transparent\",\r\n white: \"sg:bg-white\",\r\n black: \"sg:bg-black\",\r\n orange: \"sg:bg-orange\",\r\n purple: \"sg:bg-purple\",\r\n};\r\n\r\nconst layoutVariants = cva(\"sg:grid sg:grid-cols-1 sg:gap-4\", {\r\n variants: {\r\n type: {\r\n full: \"sg:w-full sg:px-4\",\r\n col: \"sg:mx-auto sg:max-w-[768px] sg:px-4 sg:md:px-0\",\r\n },\r\n cols: {\r\n \"100\": \"\",\r\n \"66-33\": \"sg:md:grid-cols-2\",\r\n \"50-50\": \"sg:md:grid-cols-2\",\r\n \"33-33-33\": \"sg:md:grid-cols-3\",\r\n \"25-25-25-25\": \"sg:md:grid-cols-4\",\r\n },\r\n bgcolor: bgColor,\r\n },\r\n defaultVariants: {\r\n type: \"col\",\r\n cols: \"100\",\r\n },\r\n});\r\n\r\nexport interface LayoutProps\r\n extends React.HTMLAttributes<HTMLDivElement>,\r\n VariantProps<typeof layoutVariants> {}\r\n\r\nfunction Layout({\r\n children,\r\n className,\r\n type,\r\n cols,\r\n bgcolor,\r\n ...props\r\n}: PropsWithChildren<LayoutProps>) {\r\n const allowedInLayout = (\r\n content: React.ReactElement<any, string | React.JSXElementConstructor<any>>\r\n ): boolean => {\r\n if (content.type === Layout.Col1) {\r\n return true;\r\n } else if (\r\n content.type === Layout.Col2 &&\r\n (cols === \"66-33\" ||\r\n cols === \"50-50\" ||\r\n cols === \"33-33-33\" ||\r\n cols === \"25-25-25-25\")\r\n ) {\r\n return true;\r\n } else if (\r\n content.type === Layout.Col3 &&\r\n (cols === \"33-33-33\" || cols === \"25-25-25-25\")\r\n ) {\r\n return true;\r\n } else if (content.type === Layout.Col4 && cols === \"25-25-25-25\") {\r\n return true;\r\n }\r\n\r\n console.error(\r\n \"Content not allowed in column for variant\",\r\n cols,\r\n content.type\r\n );\r\n return false;\r\n };\r\n\r\n const renderColumn = (\r\n content: React.ReactElement<any, string | React.JSXElementConstructor<any>>\r\n ) => {\r\n if (!allowedInLayout(content)) {\r\n return;\r\n }\r\n return <div>{content}</div>;\r\n };\r\n\r\n return (\r\n <div\r\n {...props}\r\n className={cn(bgColor[bgcolor ?? \"transparent\"], className)}\r\n >\r\n <div className={cn(layoutVariants({ type, cols }))}>\r\n {React.Children.map(children, (child) =>\r\n React.isValidElement(child) ? renderColumn(child) : <></>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\ntype colProp = {\r\n children?: React.ReactNode;\r\n};\r\n\r\nfunction Col1({ children }: colProp) {\r\n return children;\r\n}\r\nfunction Col2({ children }: colProp) {\r\n return children;\r\n}\r\nfunction Col3({ children }: colProp) {\r\n return children;\r\n}\r\nfunction Col4({ children }: colProp) {\r\n return children;\r\n}\r\n\r\nLayout.Col1 = Col1;\r\nLayout.Col2 = Col2;\r\nLayout.Col3 = Col3;\r\nLayout.Col4 = Col4;\r\n\r\nexport { Layout, layoutVariants };\r\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../../utils\";\n\nfunction Table({ className, ...props }: React.ComponentProps<\"table\">) {\n return (\n <div\n data-slot=\"table-container\"\n className=\"sg:relative sg:w-full sg:overflow-x-auto\"\n >\n <table\n data-slot=\"table\"\n className={cn(\"sg:w-full sg:caption-bottom sg:text-sm\", className)}\n {...props}\n />\n </div>\n );\n}\n\nfunction TableHeader({ className, ...props }: React.ComponentProps<\"thead\">) {\n return (\n <thead\n data-slot=\"table-header\"\n className={cn(\"[&_tr]:sg:border-b\", className)}\n {...props}\n />\n );\n}\n\nfunction TableBody({ className, ...props }: React.ComponentProps<\"tbody\">) {\n return (\n <tbody\n data-slot=\"table-body\"\n className={cn(\"[&_tr:last-child]:sg:border-0\", className)}\n {...props}\n />\n );\n}\n\nfunction TableFooter({ className, ...props }: React.ComponentProps<\"tfoot\">) {\n return (\n <tfoot\n data-slot=\"table-footer\"\n className={cn(\n \"sg:bg-muted/50 sg:border-t sg:font-medium [&>tr]:last:sg:border-b-0\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction TableRow({ className, ...props }: React.ComponentProps<\"tr\">) {\n return (\n <tr\n data-slot=\"table-row\"\n className={cn(\n \"hover:sg:bg-muted/50 data-[state=selected]:sg:bg-muted sg:border-b sg:transition-colors\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction TableHead({ className, ...props }: React.ComponentProps<\"th\">) {\n return (\n <th\n data-slot=\"table-head\"\n className={cn(\n \"sg:text-foreground sg:h-10 sg:px-2 sg:text-left sg:align-middle sg:font-medium sg:whitespace-nowrap [&:has([role=checkbox])]:sg:pr-0 [&>[role=checkbox]]:sg:translate-y-[2px]\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction TableCell({ className, ...props }: React.ComponentProps<\"td\">) {\n return (\n <td\n data-slot=\"table-cell\"\n className={cn(\n \"sg:p-2 sg:align-middle sg:whitespace-nowrap [&:has([role=checkbox])]:sg:pr-0 [&>[role=checkbox]]:sg:translate-y-[2px]\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction TableCaption({\n className,\n ...props\n}: React.ComponentProps<\"caption\">) {\n return (\n <caption\n data-slot=\"table-caption\"\n className={cn(\"sg:text-muted-foreground sg:mt-4 sg:text-sm\", className)}\n {...props}\n />\n );\n}\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n};\n","import React from \"react\";\r\nimport { cva, type VariantProps } from \"class-variance-authority\";\r\nimport { cn } from \"../../utils\";\r\nimport { OmitClassProperty, TailwindMarginClass } from \"../../lib/types\";\r\n\r\nconst textVariants = cva(\"\", {\r\n variants: {\r\n size: {\r\n xs: \"sg:text-xs\",\r\n sm: \"sg:text-sm\",\r\n base: \"sg:text-base\",\r\n lg: \"sg:text-lg\",\r\n xl: \"sg:text-xl\",\r\n },\r\n foreground: {\r\n default: \"sg:text-foreground\",\r\n muted: \"sg:text-muted-foreground\",\r\n primary: \"sg:text-primary\",\r\n secondary: \"sg:text-secondary-foreground\",\r\n destructive: \"sg:text-destructive\",\r\n accent: \"sg:text-accent-foreground\",\r\n },\r\n weight: {\r\n normal: \"sg:font-normal\",\r\n medium: \"sg:font-medium\",\r\n semibold: \"sg:font-semibold\",\r\n bold: \"sg:font-bold\",\r\n },\r\n },\r\n defaultVariants: {\r\n size: \"base\",\r\n foreground: \"default\",\r\n weight: \"normal\",\r\n },\r\n});\r\n\r\nexport interface TextProps\r\n extends OmitClassProperty<React.HTMLAttributes<HTMLDivElement>, \"className\">,\r\n VariantProps<typeof textVariants> {\r\n className?: TailwindMarginClass;\r\n}\r\n\r\nexport const Text: React.FC<TextProps> = ({\r\n children,\r\n size,\r\n foreground,\r\n weight,\r\n className,\r\n ...props\r\n}) => {\r\n return (\r\n <p\r\n className={cn(\r\n textVariants({\r\n size,\r\n foreground,\r\n weight,\r\n className,\r\n })\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n </p>\r\n );\r\n};\r\n"]}
|