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