@caffeinebounce/ui 0.62.2 → 0.63.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 (122) hide show
  1. package/README.md +1 -1
  2. package/dist/blog.js +8 -6
  3. package/dist/blog.mjs +3 -1
  4. package/dist/charts.d.cts +1 -1
  5. package/dist/charts.d.ts +1 -1
  6. package/dist/{chunk-6DVWMJ3H.mjs → chunk-2EFVMX6V.mjs} +4 -3
  7. package/dist/chunk-33JR5SYE.js +1 -0
  8. package/dist/{chunk-OZZWDIOY.js → chunk-375DECW4.js} +32 -31
  9. package/dist/chunk-3NDB4YPC.js +1 -0
  10. package/dist/{chunk-PZRI43EZ.js → chunk-46JYKBRX.js} +0 -43
  11. package/dist/chunk-5D55OVD5.js +75 -0
  12. package/dist/chunk-5RW4PYZ6.js +1 -0
  13. package/dist/chunk-5THF4YP6.mjs +1 -0
  14. package/dist/{chunk-JORVSG52.js → chunk-663CFAHS.js} +212 -269
  15. package/dist/chunk-6BUBNZPG.mjs +1 -0
  16. package/dist/chunk-6HKJDV43.mjs +48 -0
  17. package/dist/chunk-6NCRGHV3.mjs +64 -0
  18. package/dist/{chunk-OLAAXLXY.mjs → chunk-6QAKQG57.mjs} +5 -4
  19. package/dist/chunk-72JGQ7IJ.mjs +1 -0
  20. package/dist/{chunk-N6AFNFZR.mjs → chunk-7ERVZXIN.mjs} +215 -270
  21. package/dist/chunk-7IKHZKAC.js +1 -0
  22. package/dist/chunk-APFEP5B7.mjs +100 -0
  23. package/dist/chunk-C3OADNSG.js +348 -0
  24. package/dist/{chunk-RVEFPVZF.mjs → chunk-C57MX3BG.mjs} +1 -0
  25. package/dist/{chunk-CC4KUIKC.js → chunk-DH5Z3ETN.js} +67 -45
  26. package/dist/chunk-DYWZ23QT.mjs +90 -0
  27. package/dist/{chunk-KRRIRS6A.mjs → chunk-E67IR6HU.mjs} +31 -9
  28. package/dist/{chunk-D3QXPL47.mjs → chunk-EXQSWHLD.mjs} +7 -6
  29. package/dist/{chunk-ZOA7B32D.js → chunk-F35KL6TX.js} +10 -9
  30. package/dist/{chunk-YSLD2HLP.mjs → chunk-FFJC66KO.mjs} +2 -1
  31. package/dist/chunk-FRRS2YZH.mjs +1 -0
  32. package/dist/chunk-G5TQWWQA.mjs +1 -0
  33. package/dist/{chunk-MPZFPU4X.js → chunk-GMBLPQ3I.js} +4 -3
  34. package/dist/chunk-IJFPPLQW.js +50 -0
  35. package/dist/chunk-J6OLBSZR.js +1 -0
  36. package/dist/chunk-KGGQ5NZV.js +1 -0
  37. package/dist/chunk-KHCC5UKW.mjs +1 -0
  38. package/dist/{chunk-BMFQG6RA.mjs → chunk-KJIX6V32.mjs} +108 -1885
  39. package/dist/chunk-LABHD4PU.js +109 -0
  40. package/dist/chunk-LQCVRWVF.js +1 -0
  41. package/dist/{chunk-GAIQJCAZ.js → chunk-LT5VD4KR.js} +150 -1953
  42. package/dist/{chunk-7DHKQODW.mjs → chunk-LTLCIRZY.mjs} +257 -474
  43. package/dist/chunk-N5BHXWR3.mjs +34 -0
  44. package/dist/chunk-OCO3Z5YA.js +37 -0
  45. package/dist/chunk-OFQLWSUR.mjs +1 -0
  46. package/dist/chunk-OIJ7XMDV.mjs +71 -0
  47. package/dist/chunk-ORBH4IBC.mjs +316 -0
  48. package/dist/{chunk-C4UT5V3P.js → chunk-OWHI5VGJ.js} +1 -0
  49. package/dist/chunk-OWWOAYIY.js +2652 -0
  50. package/dist/chunk-PFHOXDSW.mjs +10 -0
  51. package/dist/chunk-Q52ZEL62.mjs +1 -0
  52. package/dist/chunk-QRS7DJGS.js +103 -0
  53. package/dist/chunk-R26Y7LGJ.js +1 -0
  54. package/dist/{chunk-BFWX5GJZ.mjs → chunk-R3X4B4JJ.mjs} +56 -8
  55. package/dist/chunk-RBUYW6QQ.js +1 -0
  56. package/dist/chunk-RM7ACPTM.mjs +2601 -0
  57. package/dist/chunk-RODSGPBB.mjs +75 -0
  58. package/dist/chunk-SORWLKOK.js +1 -0
  59. package/dist/{chunk-T6ZBA6VJ.js → chunk-UHAV34YX.js} +9 -8
  60. package/dist/{chunk-GUSTCU2W.mjs → chunk-ULANYJ7Y.mjs} +1 -59
  61. package/dist/chunk-ULDE7QSN.js +70 -0
  62. package/dist/chunk-UT36VNVZ.mjs +47 -0
  63. package/dist/chunk-UY3H4PKB.js +71 -0
  64. package/dist/{chunk-KB7UXIQZ.mjs → chunk-VIVWFQG5.mjs} +3 -1
  65. package/dist/{chunk-ESZ7CBA2.js → chunk-VKBJ3SGT.js} +7 -5
  66. package/dist/{chunk-UM7WMXIU.js → chunk-W3YOQ5ZD.js} +265 -505
  67. package/dist/chunk-WOITB4JL.js +1 -0
  68. package/dist/{chunk-E42B4GSB.js → chunk-XGJL6DLV.js} +58 -7
  69. package/dist/chunk-YKZEKJMZ.mjs +1 -0
  70. package/dist/chunk-YRIBFIQ5.js +116 -0
  71. package/dist/chunk-ZFLZA7UP.mjs +1 -0
  72. package/dist/chunk-ZKUIUE7W.mjs +1 -0
  73. package/dist/chunk-ZWWJ3RRA.js +15 -0
  74. package/dist/data-grid.d.cts +241 -0
  75. package/dist/data-grid.d.ts +241 -0
  76. package/dist/data-grid.js +6486 -0
  77. package/dist/data-grid.mjs +6459 -0
  78. package/dist/data-table-CDQBo-Ve.d.ts +818 -0
  79. package/dist/data-table-jLzt6plY.d.cts +818 -0
  80. package/dist/data-table.d.cts +8 -42
  81. package/dist/data-table.d.ts +8 -42
  82. package/dist/data-table.js +61 -187
  83. package/dist/data-table.mjs +11 -5
  84. package/dist/finance.d.cts +534 -0
  85. package/dist/finance.d.ts +534 -0
  86. package/dist/finance.js +188 -0
  87. package/dist/finance.mjs +15 -0
  88. package/dist/forms.js +9 -6
  89. package/dist/forms.mjs +7 -4
  90. package/dist/{hooks-B2jU1GVT.d.ts → hooks-A55E0fgf.d.ts} +3 -2
  91. package/dist/{hooks-8ORd7T1A.d.cts → hooks-Bys_AZPI.d.cts} +3 -2
  92. package/dist/hooks.d.cts +1 -1
  93. package/dist/hooks.d.ts +1 -1
  94. package/dist/hooks.js +26 -23
  95. package/dist/hooks.mjs +6 -3
  96. package/dist/index.d.cts +536 -665
  97. package/dist/index.d.ts +536 -665
  98. package/dist/index.js +3830 -3408
  99. package/dist/index.mjs +2068 -1767
  100. package/dist/layouts.js +26 -25
  101. package/dist/layouts.mjs +5 -4
  102. package/dist/marketing-3d.js +1 -0
  103. package/dist/marketing-3d.mjs +1 -0
  104. package/dist/marketing.js +75 -74
  105. package/dist/marketing.mjs +5 -4
  106. package/dist/media.js +1 -0
  107. package/dist/media.mjs +1 -0
  108. package/dist/navigation.js +29 -28
  109. package/dist/navigation.mjs +7 -6
  110. package/dist/primitives.d.cts +72 -109
  111. package/dist/primitives.d.ts +72 -109
  112. package/dist/primitives.js +78 -72
  113. package/dist/primitives.mjs +8 -6
  114. package/dist/settings.js +9 -9
  115. package/dist/settings.mjs +4 -4
  116. package/package.json +21 -4
  117. package/dist/UnifiedTableControls-CG299y9h.d.ts +0 -1233
  118. package/dist/UnifiedTableControls-CIjRpNhy.d.cts +0 -1233
  119. package/dist/chunk-GMBGWOCR.mjs +0 -48
  120. package/dist/chunk-HBLKVQIQ.mjs +0 -23
  121. package/dist/chunk-HMAMMC72.js +0 -26
  122. package/dist/chunk-MVYRNJA6.js +0 -74
@@ -1,26 +1,14 @@
1
+ "use client";
1
2
  import { Label } from './chunk-KHCC5UKW.mjs';
2
3
  import { Separator } from './chunk-ZKUIUE7W.mjs';
3
4
  import { cn } from './chunk-IMKLN273.mjs';
4
- import { jsxs, jsx } from 'react/jsx-runtime';
5
5
  import { OTPInput, OTPInputContext } from 'input-otp';
6
- import { EyeOffIcon, EyeIcon, MinusIcon, CheckIcon, CheckCircle2Icon, InfoIcon } from 'lucide-react';
6
+ import { EyeOffIcon, EyeIcon, MinusIcon, CheckCircle2Icon, InfoIcon } from 'lucide-react';
7
7
  import * as React2 from 'react';
8
- import { useMemo, useState, useRef, useEffect } from 'react';
8
+ import { useState, useRef, useEffect, useMemo } from 'react';
9
+ import { jsxs, jsx } from 'react/jsx-runtime';
9
10
  import { cva } from 'class-variance-authority';
10
11
 
11
- function Textarea({ className, ...props }) {
12
- return /* @__PURE__ */ jsx(
13
- "textarea",
14
- {
15
- "data-slot": "textarea",
16
- className: cn(
17
- "border-input placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex min-h-16 w-full min-w-0 max-w-full rounded-box border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm break-words [overflow-wrap:anywhere]",
18
- className
19
- ),
20
- ...props
21
- }
22
- );
23
- }
24
12
  function InputOTP({
25
13
  className,
26
14
  containerClassName,
@@ -78,259 +66,6 @@ function InputOTPSlot({
78
66
  function InputOTPSeparator({ ...props }) {
79
67
  return /* @__PURE__ */ jsx("div", { "data-slot": "input-otp-separator", "aria-hidden": "true", ...props, children: /* @__PURE__ */ jsx(MinusIcon, { className: "h-4 w-4 text-muted-foreground" }) });
80
68
  }
81
- function Checkbox({
82
- className,
83
- checked,
84
- onCheckedChange,
85
- disabled,
86
- ...props
87
- }) {
88
- return /* @__PURE__ */ jsx(
89
- "label",
90
- {
91
- className: cn(
92
- "inline-flex items-center",
93
- disabled && "opacity-50 cursor-not-allowed"
94
- ),
95
- children: /* @__PURE__ */ jsxs("span", { className: "relative", children: [
96
- /* @__PURE__ */ jsx(
97
- "input",
98
- {
99
- type: "checkbox",
100
- checked,
101
- disabled,
102
- onChange: (e) => onCheckedChange?.(e.target.checked),
103
- className: "peer sr-only",
104
- ...props
105
- }
106
- ),
107
- /* @__PURE__ */ jsx(
108
- "span",
109
- {
110
- "data-slot": "checkbox",
111
- className: cn(
112
- "border-input bg-background peer-focus-visible:ring-ring/50 peer-focus-visible:ring-[3px] flex size-4 shrink-0 items-center justify-center rounded-sm border shadow-xs transition-colors",
113
- "peer-checked:bg-primary peer-checked:border-primary peer-checked:text-primary-foreground",
114
- "peer-disabled:cursor-not-allowed peer-disabled:opacity-50",
115
- className
116
- ),
117
- children: checked && /* @__PURE__ */ jsx(CheckIcon, { className: "size-3.5 stroke-3" })
118
- }
119
- )
120
- ] })
121
- }
122
- );
123
- }
124
- function FieldSet({ className, ...props }) {
125
- return /* @__PURE__ */ jsx(
126
- "fieldset",
127
- {
128
- "data-slot": "field-set",
129
- className: cn(
130
- "flex flex-col gap-6",
131
- "has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3",
132
- className
133
- ),
134
- ...props
135
- }
136
- );
137
- }
138
- function FieldLegend({
139
- className,
140
- variant = "legend",
141
- ...props
142
- }) {
143
- return /* @__PURE__ */ jsx(
144
- "legend",
145
- {
146
- "data-slot": "field-legend",
147
- "data-variant": variant,
148
- className: cn(
149
- "mb-3 font-medium",
150
- "data-[variant=legend]:text-base",
151
- "data-[variant=label]:text-sm",
152
- className
153
- ),
154
- ...props
155
- }
156
- );
157
- }
158
- function FieldGroup({ className, ...props }) {
159
- return /* @__PURE__ */ jsx(
160
- "div",
161
- {
162
- "data-slot": "field-group",
163
- className: cn(
164
- "group/field-group @container/field-group flex w-full flex-col gap-7 data-[slot=checkbox-group]:gap-3 *:data-[slot=field-group]:gap-4",
165
- className
166
- ),
167
- ...props
168
- }
169
- );
170
- }
171
- var fieldVariants = cva(
172
- "group/field flex w-full gap-3 data-[invalid=true]:text-destructive",
173
- {
174
- variants: {
175
- orientation: {
176
- vertical: ["flex-col [&>*]:w-full [&>.sr-only]:w-auto"],
177
- horizontal: [
178
- "flex-row items-center",
179
- "[&>[data-slot=field-label]]:flex-auto",
180
- "has-[>[data-slot=field-content]]:items-start has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px"
181
- ],
182
- responsive: [
183
- "flex-col [&>*]:w-full [&>.sr-only]:w-auto @md/field-group:flex-row @md/field-group:items-center @md/field-group:[&>*]:w-auto",
184
- "@md/field-group:[&>[data-slot=field-label]]:flex-auto",
185
- "@md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px"
186
- ]
187
- }
188
- },
189
- defaultVariants: {
190
- orientation: "vertical"
191
- }
192
- }
193
- );
194
- function Field({
195
- className,
196
- orientation = "vertical",
197
- ...props
198
- }) {
199
- return /* @__PURE__ */ jsx(
200
- "fieldset",
201
- {
202
- "data-slot": "field",
203
- "data-orientation": orientation,
204
- className: cn(fieldVariants({ orientation }), className),
205
- ...props
206
- }
207
- );
208
- }
209
- function FieldContent({ className, ...props }) {
210
- return /* @__PURE__ */ jsx(
211
- "div",
212
- {
213
- "data-slot": "field-content",
214
- className: cn(
215
- "group/field-content flex flex-1 flex-col gap-1.5 leading-snug",
216
- className
217
- ),
218
- ...props
219
- }
220
- );
221
- }
222
- function FieldLabel({
223
- className,
224
- ...props
225
- }) {
226
- return /* @__PURE__ */ jsx(
227
- Label,
228
- {
229
- "data-slot": "field-label",
230
- className: cn(
231
- "group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50",
232
- "has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col has-[>[data-slot=field]]:rounded-box has-[>[data-slot=field]]:border *:data-[slot=field]:p-4",
233
- "has-data-[state=checked]:bg-primary/5 has-data-[state=checked]:border-primary dark:has-data-[state=checked]:bg-primary/10",
234
- className
235
- ),
236
- ...props
237
- }
238
- );
239
- }
240
- function FieldTitle({ className, ...props }) {
241
- return /* @__PURE__ */ jsx(
242
- "div",
243
- {
244
- "data-slot": "field-label",
245
- className: cn(
246
- "flex w-fit items-center gap-2 text-sm leading-snug font-medium group-data-[disabled=true]/field:opacity-50",
247
- className
248
- ),
249
- ...props
250
- }
251
- );
252
- }
253
- function FieldDescription({ className, ...props }) {
254
- return /* @__PURE__ */ jsx(
255
- "p",
256
- {
257
- "data-slot": "field-description",
258
- className: cn(
259
- "text-muted-foreground text-sm leading-normal font-normal group-has-data-[orientation=horizontal]/field:text-balance",
260
- "last:mt-0 nth-last-2:-mt-1 [[data-variant=legend]+&]:-mt-1.5",
261
- "[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4",
262
- className
263
- ),
264
- ...props
265
- }
266
- );
267
- }
268
- function FieldSeparator({
269
- children,
270
- className,
271
- ...props
272
- }) {
273
- return /* @__PURE__ */ jsxs(
274
- "div",
275
- {
276
- "data-slot": "field-separator",
277
- "data-content": !!children,
278
- className: cn(
279
- "relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2",
280
- className
281
- ),
282
- ...props,
283
- children: [
284
- /* @__PURE__ */ jsx(Separator, { className: "absolute inset-0 top-1/2" }),
285
- children && /* @__PURE__ */ jsx(
286
- "span",
287
- {
288
- className: "bg-background text-muted-foreground relative mx-auto block w-fit px-2",
289
- "data-slot": "field-separator-content",
290
- children
291
- }
292
- )
293
- ]
294
- }
295
- );
296
- }
297
- function FieldError({
298
- className,
299
- children,
300
- errors,
301
- ...props
302
- }) {
303
- const content = useMemo(() => {
304
- if (children) {
305
- return children;
306
- }
307
- if (!errors?.length) {
308
- return null;
309
- }
310
- const uniqueErrors = [
311
- ...new Map(errors.map((error) => [error?.message, error])).values()
312
- ];
313
- if (uniqueErrors?.length === 1) {
314
- return uniqueErrors[0]?.message;
315
- }
316
- return /* @__PURE__ */ jsx("ul", { className: "ml-4 flex list-disc flex-col gap-1", children: uniqueErrors.map(
317
- (error) => error?.message && /* @__PURE__ */ jsx("li", { children: error.message }, error.message)
318
- ) });
319
- }, [children, errors]);
320
- if (!content) {
321
- return null;
322
- }
323
- return /* @__PURE__ */ jsx(
324
- "div",
325
- {
326
- role: "alert",
327
- "data-slot": "field-error",
328
- className: cn("text-destructive text-xs font-normal -mt-2.5", className),
329
- ...props,
330
- children: content
331
- }
332
- );
333
- }
334
69
  var PasswordInput = React2.forwardRef(({ className, ...props }, ref) => {
335
70
  const [showPassword, setShowPassword] = React2.useState(false);
336
71
  return /* @__PURE__ */ jsxs("div", { className: "relative", children: [
@@ -561,5 +296,215 @@ function VerificationCodeInput({
561
296
  )) })
562
297
  ] });
563
298
  }
299
+ function FieldSet({ className, ...props }) {
300
+ return /* @__PURE__ */ jsx(
301
+ "fieldset",
302
+ {
303
+ "data-slot": "field-set",
304
+ className: cn(
305
+ "flex flex-col gap-6",
306
+ "has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3",
307
+ className
308
+ ),
309
+ ...props
310
+ }
311
+ );
312
+ }
313
+ function FieldLegend({
314
+ className,
315
+ variant = "legend",
316
+ ...props
317
+ }) {
318
+ return /* @__PURE__ */ jsx(
319
+ "legend",
320
+ {
321
+ "data-slot": "field-legend",
322
+ "data-variant": variant,
323
+ className: cn(
324
+ "mb-3 font-medium",
325
+ "data-[variant=legend]:text-base",
326
+ "data-[variant=label]:text-sm",
327
+ className
328
+ ),
329
+ ...props
330
+ }
331
+ );
332
+ }
333
+ function FieldGroup({ className, ...props }) {
334
+ return /* @__PURE__ */ jsx(
335
+ "div",
336
+ {
337
+ "data-slot": "field-group",
338
+ className: cn(
339
+ "group/field-group @container/field-group flex w-full flex-col gap-7 data-[slot=checkbox-group]:gap-3 *:data-[slot=field-group]:gap-4",
340
+ className
341
+ ),
342
+ ...props
343
+ }
344
+ );
345
+ }
346
+ var fieldVariants = cva(
347
+ "group/field flex w-full gap-3 data-[invalid=true]:text-destructive",
348
+ {
349
+ variants: {
350
+ orientation: {
351
+ vertical: ["flex-col [&>*]:w-full [&>.sr-only]:w-auto"],
352
+ horizontal: [
353
+ "flex-row items-center",
354
+ "[&>[data-slot=field-label]]:flex-auto",
355
+ "has-[>[data-slot=field-content]]:items-start has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px"
356
+ ],
357
+ responsive: [
358
+ "flex-col [&>*]:w-full [&>.sr-only]:w-auto @md/field-group:flex-row @md/field-group:items-center @md/field-group:[&>*]:w-auto",
359
+ "@md/field-group:[&>[data-slot=field-label]]:flex-auto",
360
+ "@md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px"
361
+ ]
362
+ }
363
+ },
364
+ defaultVariants: {
365
+ orientation: "vertical"
366
+ }
367
+ }
368
+ );
369
+ function Field({
370
+ className,
371
+ orientation = "vertical",
372
+ ...props
373
+ }) {
374
+ return /* @__PURE__ */ jsx(
375
+ "fieldset",
376
+ {
377
+ "data-slot": "field",
378
+ "data-orientation": orientation,
379
+ className: cn(fieldVariants({ orientation }), className),
380
+ ...props
381
+ }
382
+ );
383
+ }
384
+ function FieldContent({ className, ...props }) {
385
+ return /* @__PURE__ */ jsx(
386
+ "div",
387
+ {
388
+ "data-slot": "field-content",
389
+ className: cn(
390
+ "group/field-content flex flex-1 flex-col gap-1.5 leading-snug",
391
+ className
392
+ ),
393
+ ...props
394
+ }
395
+ );
396
+ }
397
+ function FieldLabel({
398
+ className,
399
+ ...props
400
+ }) {
401
+ return /* @__PURE__ */ jsx(
402
+ Label,
403
+ {
404
+ "data-slot": "field-label",
405
+ className: cn(
406
+ "group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50",
407
+ "has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col has-[>[data-slot=field]]:rounded-box has-[>[data-slot=field]]:border *:data-[slot=field]:p-4",
408
+ "has-data-[state=checked]:bg-primary/5 has-data-[state=checked]:border-primary dark:has-data-[state=checked]:bg-primary/10",
409
+ className
410
+ ),
411
+ ...props
412
+ }
413
+ );
414
+ }
415
+ function FieldTitle({ className, ...props }) {
416
+ return /* @__PURE__ */ jsx(
417
+ "div",
418
+ {
419
+ "data-slot": "field-label",
420
+ className: cn(
421
+ "flex w-fit items-center gap-2 text-sm leading-snug font-medium group-data-[disabled=true]/field:opacity-50",
422
+ className
423
+ ),
424
+ ...props
425
+ }
426
+ );
427
+ }
428
+ function FieldDescription({ className, ...props }) {
429
+ return /* @__PURE__ */ jsx(
430
+ "p",
431
+ {
432
+ "data-slot": "field-description",
433
+ className: cn(
434
+ "text-muted-foreground text-sm leading-normal font-normal group-has-data-[orientation=horizontal]/field:text-balance",
435
+ "last:mt-0 nth-last-2:-mt-1 [[data-variant=legend]+&]:-mt-1.5",
436
+ "[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4",
437
+ className
438
+ ),
439
+ ...props
440
+ }
441
+ );
442
+ }
443
+ function FieldSeparator({
444
+ children,
445
+ className,
446
+ ...props
447
+ }) {
448
+ return /* @__PURE__ */ jsxs(
449
+ "div",
450
+ {
451
+ "data-slot": "field-separator",
452
+ "data-content": !!children,
453
+ className: cn(
454
+ "relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2",
455
+ className
456
+ ),
457
+ ...props,
458
+ children: [
459
+ /* @__PURE__ */ jsx(Separator, { className: "absolute inset-0 top-1/2" }),
460
+ children && /* @__PURE__ */ jsx(
461
+ "span",
462
+ {
463
+ className: "bg-background text-muted-foreground relative mx-auto block w-fit px-2",
464
+ "data-slot": "field-separator-content",
465
+ children
466
+ }
467
+ )
468
+ ]
469
+ }
470
+ );
471
+ }
472
+ function FieldError({
473
+ className,
474
+ children,
475
+ errors,
476
+ ...props
477
+ }) {
478
+ const content = useMemo(() => {
479
+ if (children) {
480
+ return children;
481
+ }
482
+ if (!errors?.length) {
483
+ return null;
484
+ }
485
+ const uniqueErrors = [
486
+ ...new Map(errors.map((error) => [error?.message, error])).values()
487
+ ];
488
+ if (uniqueErrors?.length === 1) {
489
+ return uniqueErrors[0]?.message;
490
+ }
491
+ return /* @__PURE__ */ jsx("ul", { className: "ml-4 flex list-disc flex-col gap-1", children: uniqueErrors.map(
492
+ (error) => error?.message && /* @__PURE__ */ jsx("li", { children: error.message }, error.message)
493
+ ) });
494
+ }, [children, errors]);
495
+ if (!content) {
496
+ return null;
497
+ }
498
+ return /* @__PURE__ */ jsx(
499
+ "div",
500
+ {
501
+ role: "alert",
502
+ "data-slot": "field-error",
503
+ className: cn("text-destructive text-xs font-normal -mt-2.5", className),
504
+ ...props,
505
+ children: content
506
+ }
507
+ );
508
+ }
564
509
 
565
- export { Checkbox, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, PasswordInput, PasswordRequirements, Textarea, VerificationCodeInput, defaultPasswordRules, extendedPasswordRules };
510
+ export { Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, PasswordInput, PasswordRequirements, VerificationCodeInput, defaultPasswordRules, extendedPasswordRules };
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  'use strict';
2
3
 
3
4
  var chunkADIDI7AJ_js = require('./chunk-ADIDI7AJ.js');
@@ -0,0 +1,100 @@
1
+ import { cn } from './chunk-IMKLN273.mjs';
2
+ import { jsx } from 'react/jsx-runtime';
3
+
4
+ function Table({ className, ...props }) {
5
+ return /* @__PURE__ */ jsx("div", { className: "relative w-full overflow-auto", children: /* @__PURE__ */ jsx(
6
+ "table",
7
+ {
8
+ "data-slot": "table",
9
+ className: cn("w-full caption-bottom text-sm", className),
10
+ ...props
11
+ }
12
+ ) });
13
+ }
14
+ function TableHeader({ className, ...props }) {
15
+ return /* @__PURE__ */ jsx(
16
+ "thead",
17
+ {
18
+ "data-slot": "table-header",
19
+ className: cn("[&_tr]:border-b", className),
20
+ ...props
21
+ }
22
+ );
23
+ }
24
+ function TableBody({ className, ...props }) {
25
+ return /* @__PURE__ */ jsx(
26
+ "tbody",
27
+ {
28
+ "data-slot": "table-body",
29
+ className: cn("[&_tr:last-child]:border-0", className),
30
+ ...props
31
+ }
32
+ );
33
+ }
34
+ function TableFooter({ className, ...props }) {
35
+ return /* @__PURE__ */ jsx(
36
+ "tfoot",
37
+ {
38
+ "data-slot": "table-footer",
39
+ className: cn(
40
+ "bg-muted/50 border-t font-medium [&>tr]:last:border-b-0",
41
+ className
42
+ ),
43
+ ...props
44
+ }
45
+ );
46
+ }
47
+ function TableRow({ className, ...props }) {
48
+ return /* @__PURE__ */ jsx(
49
+ "tr",
50
+ {
51
+ "data-slot": "table-row",
52
+ className: cn(
53
+ "hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors",
54
+ className
55
+ ),
56
+ ...props
57
+ }
58
+ );
59
+ }
60
+ function TableHead({ className, ...props }) {
61
+ return /* @__PURE__ */ jsx(
62
+ "th",
63
+ {
64
+ "data-slot": "table-head",
65
+ className: cn(
66
+ "text-muted-foreground h-10 px-2 text-left align-middle font-medium [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
67
+ className
68
+ ),
69
+ ...props
70
+ }
71
+ );
72
+ }
73
+ function TableCell({ className, ...props }) {
74
+ return /* @__PURE__ */ jsx(
75
+ "td",
76
+ {
77
+ "data-slot": "table-cell",
78
+ className: cn(
79
+ "p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
80
+ className
81
+ ),
82
+ ...props
83
+ }
84
+ );
85
+ }
86
+ function TableCaption({
87
+ className,
88
+ ...props
89
+ }) {
90
+ return /* @__PURE__ */ jsx(
91
+ "caption",
92
+ {
93
+ "data-slot": "table-caption",
94
+ className: cn("text-muted-foreground mt-4 text-sm", className),
95
+ ...props
96
+ }
97
+ );
98
+ }
99
+
100
+ export { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow };