@ucdjs-internal/shared-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.
Files changed (73) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +27 -0
  3. package/dist/components/shiki-code.d.mts +50 -0
  4. package/dist/components/shiki-code.mjs +76 -0
  5. package/dist/components/theme-toggle.d.mts +6 -0
  6. package/dist/components/theme-toggle.mjs +75 -0
  7. package/dist/hooks/index.d.mts +3 -0
  8. package/dist/hooks/index.mjs +4 -0
  9. package/dist/hooks/use-mobile.d.mts +4 -0
  10. package/dist/hooks/use-mobile.mjs +41 -0
  11. package/dist/hooks/use-theme.d.mts +11 -0
  12. package/dist/hooks/use-theme.mjs +105 -0
  13. package/dist/index.d.mts +3 -0
  14. package/dist/index.mjs +4 -0
  15. package/dist/lib/theme-script.d.mts +5 -0
  16. package/dist/lib/theme-script.mjs +26 -0
  17. package/dist/lib/utils.d.mts +6 -0
  18. package/dist/lib/utils.mjs +10 -0
  19. package/dist/styles/globals.css +219 -0
  20. package/dist/styles/shadcn-vendored.css +95 -0
  21. package/dist/ui/alert-dialog.d.mts +58 -0
  22. package/dist/ui/alert-dialog.mjs +387 -0
  23. package/dist/ui/avatar.d.mts +34 -0
  24. package/dist/ui/avatar.mjs +208 -0
  25. package/dist/ui/badge.d.mts +17 -0
  26. package/dist/ui/badge.mjs +76 -0
  27. package/dist/ui/breadcrumb.d.mts +37 -0
  28. package/dist/ui/breadcrumb.mjs +281 -0
  29. package/dist/ui/button.d.mts +18 -0
  30. package/dist/ui/button.mjs +82 -0
  31. package/dist/ui/card.d.mts +37 -0
  32. package/dist/ui/card.mjs +239 -0
  33. package/dist/ui/checkbox.d.mts +10 -0
  34. package/dist/ui/checkbox.mjs +52 -0
  35. package/dist/ui/collapsible.d.mts +15 -0
  36. package/dist/ui/collapsible.mjs +65 -0
  37. package/dist/ui/combobox.d.mts +81 -0
  38. package/dist/ui/combobox.mjs +641 -0
  39. package/dist/ui/command.d.mts +55 -0
  40. package/dist/ui/command.mjs +378 -0
  41. package/dist/ui/context-menu.d.mts +86 -0
  42. package/dist/ui/context-menu.mjs +520 -0
  43. package/dist/ui/dialog.d.mts +51 -0
  44. package/dist/ui/dialog.mjs +331 -0
  45. package/dist/ui/dropdown-menu.d.mts +84 -0
  46. package/dist/ui/dropdown-menu.mjs +534 -0
  47. package/dist/ui/field.d.mts +64 -0
  48. package/dist/ui/field.mjs +425 -0
  49. package/dist/ui/input-group.d.mts +45 -0
  50. package/dist/ui/input-group.mjs +254 -0
  51. package/dist/ui/input.d.mts +11 -0
  52. package/dist/ui/input.mjs +47 -0
  53. package/dist/ui/label.d.mts +10 -0
  54. package/dist/ui/label.mjs +41 -0
  55. package/dist/ui/scroll-area.d.mts +16 -0
  56. package/dist/ui/scroll-area.mjs +120 -0
  57. package/dist/ui/select.d.mts +55 -0
  58. package/dist/ui/select.mjs +414 -0
  59. package/dist/ui/separator.d.mts +11 -0
  60. package/dist/ui/separator.mjs +47 -0
  61. package/dist/ui/sheet.d.mts +42 -0
  62. package/dist/ui/sheet.mjs +318 -0
  63. package/dist/ui/sidebar.d.mts +160 -0
  64. package/dist/ui/sidebar.mjs +1258 -0
  65. package/dist/ui/skeleton.d.mts +9 -0
  66. package/dist/ui/skeleton.mjs +40 -0
  67. package/dist/ui/table.d.mts +38 -0
  68. package/dist/ui/table.mjs +269 -0
  69. package/dist/ui/textarea.d.mts +10 -0
  70. package/dist/ui/textarea.mjs +41 -0
  71. package/dist/ui/tooltip.d.mts +25 -0
  72. package/dist/ui/tooltip.mjs +149 -0
  73. package/package.json +111 -0
@@ -0,0 +1,387 @@
1
+ import { cn } from "../lib/utils.mjs";
2
+ import { Button } from "./button.mjs";
3
+ import "react";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ import { c } from "react/compiler-runtime";
6
+ import { AlertDialog as AlertDialog$1 } from "@base-ui/react/alert-dialog";
7
+
8
+ //#region src/ui/alert-dialog.tsx
9
+ function AlertDialog(t0) {
10
+ const $ = c(4);
11
+ let props;
12
+ if ($[0] !== t0) {
13
+ ({...props} = t0);
14
+ $[0] = t0;
15
+ $[1] = props;
16
+ } else props = $[1];
17
+ let t1;
18
+ if ($[2] !== props) {
19
+ t1 = /* @__PURE__ */ jsx(AlertDialog$1.Root, {
20
+ "data-slot": "alert-dialog",
21
+ ...props
22
+ });
23
+ $[2] = props;
24
+ $[3] = t1;
25
+ } else t1 = $[3];
26
+ return t1;
27
+ }
28
+ function AlertDialogTrigger(t0) {
29
+ const $ = c(4);
30
+ let props;
31
+ if ($[0] !== t0) {
32
+ ({...props} = t0);
33
+ $[0] = t0;
34
+ $[1] = props;
35
+ } else props = $[1];
36
+ let t1;
37
+ if ($[2] !== props) {
38
+ t1 = /* @__PURE__ */ jsx(AlertDialog$1.Trigger, {
39
+ "data-slot": "alert-dialog-trigger",
40
+ ...props
41
+ });
42
+ $[2] = props;
43
+ $[3] = t1;
44
+ } else t1 = $[3];
45
+ return t1;
46
+ }
47
+ function AlertDialogPortal(t0) {
48
+ const $ = c(4);
49
+ let props;
50
+ if ($[0] !== t0) {
51
+ ({...props} = t0);
52
+ $[0] = t0;
53
+ $[1] = props;
54
+ } else props = $[1];
55
+ let t1;
56
+ if ($[2] !== props) {
57
+ t1 = /* @__PURE__ */ jsx(AlertDialog$1.Portal, {
58
+ "data-slot": "alert-dialog-portal",
59
+ ...props
60
+ });
61
+ $[2] = props;
62
+ $[3] = t1;
63
+ } else t1 = $[3];
64
+ return t1;
65
+ }
66
+ function AlertDialogOverlay(t0) {
67
+ const $ = c(8);
68
+ let className;
69
+ let props;
70
+ if ($[0] !== t0) {
71
+ ({className, ...props} = t0);
72
+ $[0] = t0;
73
+ $[1] = className;
74
+ $[2] = props;
75
+ } else {
76
+ className = $[1];
77
+ props = $[2];
78
+ }
79
+ let t1;
80
+ if ($[3] !== className) {
81
+ t1 = cn("data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs fixed inset-0 isolate z-50", className);
82
+ $[3] = className;
83
+ $[4] = t1;
84
+ } else t1 = $[4];
85
+ let t2;
86
+ if ($[5] !== props || $[6] !== t1) {
87
+ t2 = /* @__PURE__ */ jsx(AlertDialog$1.Backdrop, {
88
+ "data-slot": "alert-dialog-overlay",
89
+ className: t1,
90
+ ...props
91
+ });
92
+ $[5] = props;
93
+ $[6] = t1;
94
+ $[7] = t2;
95
+ } else t2 = $[7];
96
+ return t2;
97
+ }
98
+ function AlertDialogContent(t0) {
99
+ const $ = c(11);
100
+ let className;
101
+ let props;
102
+ let t1;
103
+ if ($[0] !== t0) {
104
+ ({className, size: t1, ...props} = t0);
105
+ $[0] = t0;
106
+ $[1] = className;
107
+ $[2] = props;
108
+ $[3] = t1;
109
+ } else {
110
+ className = $[1];
111
+ props = $[2];
112
+ t1 = $[3];
113
+ }
114
+ const size = t1 === void 0 ? "default" : t1;
115
+ let t2;
116
+ if ($[4] === Symbol.for("react.memo_cache_sentinel")) {
117
+ t2 = /* @__PURE__ */ jsx(AlertDialogOverlay, {});
118
+ $[4] = t2;
119
+ } else t2 = $[4];
120
+ let t3;
121
+ if ($[5] !== className) {
122
+ t3 = cn("data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 bg-background ring-foreground/10 gap-4 rounded-xl p-4 ring-1 duration-100 data-[size=default]:max-w-xs data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-sm group/alert-dialog-content fixed top-1/2 left-1/2 z-50 grid w-full -translate-x-1/2 -translate-y-1/2 outline-none", className);
123
+ $[5] = className;
124
+ $[6] = t3;
125
+ } else t3 = $[6];
126
+ let t4;
127
+ if ($[7] !== props || $[8] !== size || $[9] !== t3) {
128
+ t4 = /* @__PURE__ */ jsxs(AlertDialogPortal, { children: [t2, /* @__PURE__ */ jsx(AlertDialog$1.Popup, {
129
+ "data-slot": "alert-dialog-content",
130
+ "data-size": size,
131
+ className: t3,
132
+ ...props
133
+ })] });
134
+ $[7] = props;
135
+ $[8] = size;
136
+ $[9] = t3;
137
+ $[10] = t4;
138
+ } else t4 = $[10];
139
+ return t4;
140
+ }
141
+ function AlertDialogHeader(t0) {
142
+ const $ = c(8);
143
+ let className;
144
+ let props;
145
+ if ($[0] !== t0) {
146
+ ({className, ...props} = t0);
147
+ $[0] = t0;
148
+ $[1] = className;
149
+ $[2] = props;
150
+ } else {
151
+ className = $[1];
152
+ props = $[2];
153
+ }
154
+ let t1;
155
+ if ($[3] !== className) {
156
+ t1 = cn("grid grid-rows-[auto_1fr] place-items-center gap-1.5 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-4 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]", className);
157
+ $[3] = className;
158
+ $[4] = t1;
159
+ } else t1 = $[4];
160
+ let t2;
161
+ if ($[5] !== props || $[6] !== t1) {
162
+ t2 = /* @__PURE__ */ jsx("div", {
163
+ "data-slot": "alert-dialog-header",
164
+ className: t1,
165
+ ...props
166
+ });
167
+ $[5] = props;
168
+ $[6] = t1;
169
+ $[7] = t2;
170
+ } else t2 = $[7];
171
+ return t2;
172
+ }
173
+ function AlertDialogFooter(t0) {
174
+ const $ = c(8);
175
+ let className;
176
+ let props;
177
+ if ($[0] !== t0) {
178
+ ({className, ...props} = t0);
179
+ $[0] = t0;
180
+ $[1] = className;
181
+ $[2] = props;
182
+ } else {
183
+ className = $[1];
184
+ props = $[2];
185
+ }
186
+ let t1;
187
+ if ($[3] !== className) {
188
+ t1 = cn("bg-muted/50 -mx-4 -mb-4 rounded-b-xl border-t p-4 flex flex-col-reverse gap-2 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end", className);
189
+ $[3] = className;
190
+ $[4] = t1;
191
+ } else t1 = $[4];
192
+ let t2;
193
+ if ($[5] !== props || $[6] !== t1) {
194
+ t2 = /* @__PURE__ */ jsx("div", {
195
+ "data-slot": "alert-dialog-footer",
196
+ className: t1,
197
+ ...props
198
+ });
199
+ $[5] = props;
200
+ $[6] = t1;
201
+ $[7] = t2;
202
+ } else t2 = $[7];
203
+ return t2;
204
+ }
205
+ function AlertDialogMedia(t0) {
206
+ const $ = c(8);
207
+ let className;
208
+ let props;
209
+ if ($[0] !== t0) {
210
+ ({className, ...props} = t0);
211
+ $[0] = t0;
212
+ $[1] = className;
213
+ $[2] = props;
214
+ } else {
215
+ className = $[1];
216
+ props = $[2];
217
+ }
218
+ let t1;
219
+ if ($[3] !== className) {
220
+ t1 = cn("bg-muted mb-2 inline-flex size-10 items-center justify-center rounded-md sm:group-data-[size=default]/alert-dialog-content:row-span-2 *:[svg:not([class*='size-'])]:size-6", className);
221
+ $[3] = className;
222
+ $[4] = t1;
223
+ } else t1 = $[4];
224
+ let t2;
225
+ if ($[5] !== props || $[6] !== t1) {
226
+ t2 = /* @__PURE__ */ jsx("div", {
227
+ "data-slot": "alert-dialog-media",
228
+ className: t1,
229
+ ...props
230
+ });
231
+ $[5] = props;
232
+ $[6] = t1;
233
+ $[7] = t2;
234
+ } else t2 = $[7];
235
+ return t2;
236
+ }
237
+ function AlertDialogTitle(t0) {
238
+ const $ = c(8);
239
+ let className;
240
+ let props;
241
+ if ($[0] !== t0) {
242
+ ({className, ...props} = t0);
243
+ $[0] = t0;
244
+ $[1] = className;
245
+ $[2] = props;
246
+ } else {
247
+ className = $[1];
248
+ props = $[2];
249
+ }
250
+ let t1;
251
+ if ($[3] !== className) {
252
+ t1 = cn("text-sm font-medium sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2", className);
253
+ $[3] = className;
254
+ $[4] = t1;
255
+ } else t1 = $[4];
256
+ let t2;
257
+ if ($[5] !== props || $[6] !== t1) {
258
+ t2 = /* @__PURE__ */ jsx(AlertDialog$1.Title, {
259
+ "data-slot": "alert-dialog-title",
260
+ className: t1,
261
+ ...props
262
+ });
263
+ $[5] = props;
264
+ $[6] = t1;
265
+ $[7] = t2;
266
+ } else t2 = $[7];
267
+ return t2;
268
+ }
269
+ function AlertDialogDescription(t0) {
270
+ const $ = c(8);
271
+ let className;
272
+ let props;
273
+ if ($[0] !== t0) {
274
+ ({className, ...props} = t0);
275
+ $[0] = t0;
276
+ $[1] = className;
277
+ $[2] = props;
278
+ } else {
279
+ className = $[1];
280
+ props = $[2];
281
+ }
282
+ let t1;
283
+ if ($[3] !== className) {
284
+ t1 = cn("text-muted-foreground *:[a]:hover:text-foreground text-sm text-balance md:text-pretty *:[a]:underline *:[a]:underline-offset-3", className);
285
+ $[3] = className;
286
+ $[4] = t1;
287
+ } else t1 = $[4];
288
+ let t2;
289
+ if ($[5] !== props || $[6] !== t1) {
290
+ t2 = /* @__PURE__ */ jsx(AlertDialog$1.Description, {
291
+ "data-slot": "alert-dialog-description",
292
+ className: t1,
293
+ ...props
294
+ });
295
+ $[5] = props;
296
+ $[6] = t1;
297
+ $[7] = t2;
298
+ } else t2 = $[7];
299
+ return t2;
300
+ }
301
+ function AlertDialogAction(t0) {
302
+ const $ = c(8);
303
+ let className;
304
+ let props;
305
+ if ($[0] !== t0) {
306
+ ({className, ...props} = t0);
307
+ $[0] = t0;
308
+ $[1] = className;
309
+ $[2] = props;
310
+ } else {
311
+ className = $[1];
312
+ props = $[2];
313
+ }
314
+ let t1;
315
+ if ($[3] !== className) {
316
+ t1 = cn(className);
317
+ $[3] = className;
318
+ $[4] = t1;
319
+ } else t1 = $[4];
320
+ let t2;
321
+ if ($[5] !== props || $[6] !== t1) {
322
+ t2 = /* @__PURE__ */ jsx(Button, {
323
+ "data-slot": "alert-dialog-action",
324
+ className: t1,
325
+ ...props
326
+ });
327
+ $[5] = props;
328
+ $[6] = t1;
329
+ $[7] = t2;
330
+ } else t2 = $[7];
331
+ return t2;
332
+ }
333
+ function AlertDialogCancel(t0) {
334
+ const $ = c(14);
335
+ let className;
336
+ let props;
337
+ let t1;
338
+ let t2;
339
+ if ($[0] !== t0) {
340
+ ({className, variant: t1, size: t2, ...props} = t0);
341
+ $[0] = t0;
342
+ $[1] = className;
343
+ $[2] = props;
344
+ $[3] = t1;
345
+ $[4] = t2;
346
+ } else {
347
+ className = $[1];
348
+ props = $[2];
349
+ t1 = $[3];
350
+ t2 = $[4];
351
+ }
352
+ const variant = t1 === void 0 ? "outline" : t1;
353
+ const size = t2 === void 0 ? "default" : t2;
354
+ let t3;
355
+ if ($[5] !== className) {
356
+ t3 = cn(className);
357
+ $[5] = className;
358
+ $[6] = t3;
359
+ } else t3 = $[6];
360
+ let t4;
361
+ if ($[7] !== size || $[8] !== variant) {
362
+ t4 = /* @__PURE__ */ jsx(Button, {
363
+ variant,
364
+ size
365
+ });
366
+ $[7] = size;
367
+ $[8] = variant;
368
+ $[9] = t4;
369
+ } else t4 = $[9];
370
+ let t5;
371
+ if ($[10] !== props || $[11] !== t3 || $[12] !== t4) {
372
+ t5 = /* @__PURE__ */ jsx(AlertDialog$1.Close, {
373
+ "data-slot": "alert-dialog-cancel",
374
+ className: t3,
375
+ render: t4,
376
+ ...props
377
+ });
378
+ $[10] = props;
379
+ $[11] = t3;
380
+ $[12] = t4;
381
+ $[13] = t5;
382
+ } else t5 = $[13];
383
+ return t5;
384
+ }
385
+
386
+ //#endregion
387
+ export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger };
@@ -0,0 +1,34 @@
1
+ import * as React from "react";
2
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
3
+ import { Avatar as Avatar$1 } from "@base-ui/react/avatar";
4
+
5
+ //#region src/ui/avatar.d.ts
6
+ declare function Avatar({
7
+ className,
8
+ size,
9
+ ...props
10
+ }: Avatar$1.Root.Props & {
11
+ size?: "default" | "sm" | "lg";
12
+ }): react_jsx_runtime0.JSX.Element;
13
+ declare function AvatarImage({
14
+ className,
15
+ ...props
16
+ }: Avatar$1.Image.Props): react_jsx_runtime0.JSX.Element;
17
+ declare function AvatarFallback({
18
+ className,
19
+ ...props
20
+ }: Avatar$1.Fallback.Props): react_jsx_runtime0.JSX.Element;
21
+ declare function AvatarBadge({
22
+ className,
23
+ ...props
24
+ }: React.ComponentProps<"span">): react_jsx_runtime0.JSX.Element;
25
+ declare function AvatarGroup({
26
+ className,
27
+ ...props
28
+ }: React.ComponentProps<"div">): react_jsx_runtime0.JSX.Element;
29
+ declare function AvatarGroupCount({
30
+ className,
31
+ ...props
32
+ }: React.ComponentProps<"div">): react_jsx_runtime0.JSX.Element;
33
+ //#endregion
34
+ export { Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage };
@@ -0,0 +1,208 @@
1
+ import { cn } from "../lib/utils.mjs";
2
+ import "react";
3
+ import { jsx } from "react/jsx-runtime";
4
+ import { c } from "react/compiler-runtime";
5
+ import { Avatar as Avatar$1 } from "@base-ui/react/avatar";
6
+
7
+ //#region src/ui/avatar.tsx
8
+ function Avatar(t0) {
9
+ const $ = c(10);
10
+ let className;
11
+ let props;
12
+ let t1;
13
+ if ($[0] !== t0) {
14
+ ({className, size: t1, ...props} = t0);
15
+ $[0] = t0;
16
+ $[1] = className;
17
+ $[2] = props;
18
+ $[3] = t1;
19
+ } else {
20
+ className = $[1];
21
+ props = $[2];
22
+ t1 = $[3];
23
+ }
24
+ const size = t1 === void 0 ? "default" : t1;
25
+ let t2;
26
+ if ($[4] !== className) {
27
+ t2 = cn("size-8 rounded-full after:rounded-full data-[size=lg]:size-10 data-[size=sm]:size-6 after:border-border group/avatar relative flex shrink-0 select-none after:absolute after:inset-0 after:border after:mix-blend-darken dark:after:mix-blend-lighten", className);
28
+ $[4] = className;
29
+ $[5] = t2;
30
+ } else t2 = $[5];
31
+ let t3;
32
+ if ($[6] !== props || $[7] !== size || $[8] !== t2) {
33
+ t3 = /* @__PURE__ */ jsx(Avatar$1.Root, {
34
+ "data-slot": "avatar",
35
+ "data-size": size,
36
+ className: t2,
37
+ ...props
38
+ });
39
+ $[6] = props;
40
+ $[7] = size;
41
+ $[8] = t2;
42
+ $[9] = t3;
43
+ } else t3 = $[9];
44
+ return t3;
45
+ }
46
+ function AvatarImage(t0) {
47
+ const $ = c(8);
48
+ let className;
49
+ let props;
50
+ if ($[0] !== t0) {
51
+ ({className, ...props} = t0);
52
+ $[0] = t0;
53
+ $[1] = className;
54
+ $[2] = props;
55
+ } else {
56
+ className = $[1];
57
+ props = $[2];
58
+ }
59
+ let t1;
60
+ if ($[3] !== className) {
61
+ t1 = cn("rounded-full aspect-square size-full object-cover", className);
62
+ $[3] = className;
63
+ $[4] = t1;
64
+ } else t1 = $[4];
65
+ let t2;
66
+ if ($[5] !== props || $[6] !== t1) {
67
+ t2 = /* @__PURE__ */ jsx(Avatar$1.Image, {
68
+ "data-slot": "avatar-image",
69
+ className: t1,
70
+ ...props
71
+ });
72
+ $[5] = props;
73
+ $[6] = t1;
74
+ $[7] = t2;
75
+ } else t2 = $[7];
76
+ return t2;
77
+ }
78
+ function AvatarFallback(t0) {
79
+ const $ = c(8);
80
+ let className;
81
+ let props;
82
+ if ($[0] !== t0) {
83
+ ({className, ...props} = t0);
84
+ $[0] = t0;
85
+ $[1] = className;
86
+ $[2] = props;
87
+ } else {
88
+ className = $[1];
89
+ props = $[2];
90
+ }
91
+ let t1;
92
+ if ($[3] !== className) {
93
+ t1 = cn("bg-muted text-muted-foreground rounded-full flex size-full items-center justify-center text-sm group-data-[size=sm]/avatar:text-xs", className);
94
+ $[3] = className;
95
+ $[4] = t1;
96
+ } else t1 = $[4];
97
+ let t2;
98
+ if ($[5] !== props || $[6] !== t1) {
99
+ t2 = /* @__PURE__ */ jsx(Avatar$1.Fallback, {
100
+ "data-slot": "avatar-fallback",
101
+ className: t1,
102
+ ...props
103
+ });
104
+ $[5] = props;
105
+ $[6] = t1;
106
+ $[7] = t2;
107
+ } else t2 = $[7];
108
+ return t2;
109
+ }
110
+ function AvatarBadge(t0) {
111
+ const $ = c(8);
112
+ let className;
113
+ let props;
114
+ if ($[0] !== t0) {
115
+ ({className, ...props} = t0);
116
+ $[0] = t0;
117
+ $[1] = className;
118
+ $[2] = props;
119
+ } else {
120
+ className = $[1];
121
+ props = $[2];
122
+ }
123
+ let t1;
124
+ if ($[3] !== className) {
125
+ t1 = cn("bg-primary text-primary-foreground ring-background absolute right-0 bottom-0 z-10 inline-flex items-center justify-center rounded-full bg-blend-color ring-2 select-none", "group-data-[size=sm]/avatar:size-2 group-data-[size=sm]/avatar:[&>svg]:hidden", "group-data-[size=default]/avatar:size-2.5 group-data-[size=default]/avatar:[&>svg]:size-2", "group-data-[size=lg]/avatar:size-3 group-data-[size=lg]/avatar:[&>svg]:size-2", className);
126
+ $[3] = className;
127
+ $[4] = t1;
128
+ } else t1 = $[4];
129
+ let t2;
130
+ if ($[5] !== props || $[6] !== t1) {
131
+ t2 = /* @__PURE__ */ jsx("span", {
132
+ "data-slot": "avatar-badge",
133
+ className: t1,
134
+ ...props
135
+ });
136
+ $[5] = props;
137
+ $[6] = t1;
138
+ $[7] = t2;
139
+ } else t2 = $[7];
140
+ return t2;
141
+ }
142
+ function AvatarGroup(t0) {
143
+ const $ = c(8);
144
+ let className;
145
+ let props;
146
+ if ($[0] !== t0) {
147
+ ({className, ...props} = t0);
148
+ $[0] = t0;
149
+ $[1] = className;
150
+ $[2] = props;
151
+ } else {
152
+ className = $[1];
153
+ props = $[2];
154
+ }
155
+ let t1;
156
+ if ($[3] !== className) {
157
+ t1 = cn("*:data-[slot=avatar]:ring-background group/avatar-group flex -space-x-2 *:data-[slot=avatar]:ring-2", className);
158
+ $[3] = className;
159
+ $[4] = t1;
160
+ } else t1 = $[4];
161
+ let t2;
162
+ if ($[5] !== props || $[6] !== t1) {
163
+ t2 = /* @__PURE__ */ jsx("div", {
164
+ "data-slot": "avatar-group",
165
+ className: t1,
166
+ ...props
167
+ });
168
+ $[5] = props;
169
+ $[6] = t1;
170
+ $[7] = t2;
171
+ } else t2 = $[7];
172
+ return t2;
173
+ }
174
+ function AvatarGroupCount(t0) {
175
+ const $ = c(8);
176
+ let className;
177
+ let props;
178
+ if ($[0] !== t0) {
179
+ ({className, ...props} = t0);
180
+ $[0] = t0;
181
+ $[1] = className;
182
+ $[2] = props;
183
+ } else {
184
+ className = $[1];
185
+ props = $[2];
186
+ }
187
+ let t1;
188
+ if ($[3] !== className) {
189
+ t1 = cn("bg-muted text-muted-foreground size-8 rounded-full text-sm group-has-data-[size=lg]/avatar-group:size-10 group-has-data-[size=sm]/avatar-group:size-6 [&>svg]:size-4 group-has-data-[size=lg]/avatar-group:[&>svg]:size-5 group-has-data-[size=sm]/avatar-group:[&>svg]:size-3 ring-background relative flex shrink-0 items-center justify-center ring-2", className);
190
+ $[3] = className;
191
+ $[4] = t1;
192
+ } else t1 = $[4];
193
+ let t2;
194
+ if ($[5] !== props || $[6] !== t1) {
195
+ t2 = /* @__PURE__ */ jsx("div", {
196
+ "data-slot": "avatar-group-count",
197
+ className: t1,
198
+ ...props
199
+ });
200
+ $[5] = props;
201
+ $[6] = t1;
202
+ $[7] = t2;
203
+ } else t2 = $[7];
204
+ return t2;
205
+ }
206
+
207
+ //#endregion
208
+ export { Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage };
@@ -0,0 +1,17 @@
1
+ import * as react from "react";
2
+ import { VariantProps } from "class-variance-authority";
3
+ import { useRender } from "@base-ui/react/use-render";
4
+ import * as class_variance_authority_types0 from "class-variance-authority/types";
5
+
6
+ //#region src/ui/badge.d.ts
7
+ declare const badgeVariants: (props?: ({
8
+ variant?: "link" | "default" | "outline" | "secondary" | "ghost" | "destructive" | null | undefined;
9
+ } & class_variance_authority_types0.ClassProp) | undefined) => string;
10
+ declare function Badge({
11
+ className,
12
+ variant,
13
+ render,
14
+ ...props
15
+ }: useRender.ComponentProps<"span"> & VariantProps<typeof badgeVariants>): react.ReactElement<unknown, string | react.JSXElementConstructor<any>>;
16
+ //#endregion
17
+ export { Badge, badgeVariants };
@@ -0,0 +1,76 @@
1
+ import { cn } from "../lib/utils.mjs";
2
+ import { c } from "react/compiler-runtime";
3
+ import { cva } from "class-variance-authority";
4
+ import { mergeProps } from "@base-ui/react/merge-props";
5
+ import { useRender } from "@base-ui/react/use-render";
6
+
7
+ //#region src/ui/badge.tsx
8
+ const badgeVariants = cva("h-5 gap-1 rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium transition-all has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&>svg]:size-3! inline-flex items-center justify-center w-fit whitespace-nowrap shrink-0 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-colors overflow-hidden group/badge", {
9
+ variants: { variant: {
10
+ default: "bg-primary text-primary-foreground [a]:hover:bg-primary/80",
11
+ secondary: "bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80",
12
+ destructive: "bg-destructive/10 [a]:hover:bg-destructive/20 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 text-destructive dark:bg-destructive/20",
13
+ outline: "border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground",
14
+ ghost: "hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50",
15
+ link: "text-primary underline-offset-4 hover:underline"
16
+ } },
17
+ defaultVariants: { variant: "default" }
18
+ });
19
+ function Badge(t0) {
20
+ const $ = c(13);
21
+ let render;
22
+ let t1;
23
+ let t2;
24
+ let t3;
25
+ let variant;
26
+ if ($[0] !== t0) {
27
+ const { className, variant: t4, render: t5, ...props } = t0;
28
+ render = t5;
29
+ variant = t4 === void 0 ? "default" : t4;
30
+ t3 = useRender;
31
+ t1 = "span";
32
+ t2 = mergeProps({ className: cn(badgeVariants({
33
+ className,
34
+ variant
35
+ })) }, props);
36
+ $[0] = t0;
37
+ $[1] = render;
38
+ $[2] = t1;
39
+ $[3] = t2;
40
+ $[4] = t3;
41
+ $[5] = variant;
42
+ } else {
43
+ render = $[1];
44
+ t1 = $[2];
45
+ t2 = $[3];
46
+ t3 = $[4];
47
+ variant = $[5];
48
+ }
49
+ let t4;
50
+ if ($[6] !== variant) {
51
+ t4 = {
52
+ slot: "badge",
53
+ variant
54
+ };
55
+ $[6] = variant;
56
+ $[7] = t4;
57
+ } else t4 = $[7];
58
+ let t5;
59
+ if ($[8] !== render || $[9] !== t1 || $[10] !== t2 || $[11] !== t4) {
60
+ t5 = {
61
+ defaultTagName: t1,
62
+ props: t2,
63
+ render,
64
+ state: t4
65
+ };
66
+ $[8] = render;
67
+ $[9] = t1;
68
+ $[10] = t2;
69
+ $[11] = t4;
70
+ $[12] = t5;
71
+ } else t5 = $[12];
72
+ return t3(t5);
73
+ }
74
+
75
+ //#endregion
76
+ export { Badge, badgeVariants };