@akira-io/ui 1.3.0 → 2.0.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 (76) hide show
  1. package/README.md +2 -2
  2. package/dist/blocks.d.ts +100 -10
  3. package/dist/blocks.js +547 -270
  4. package/dist/blocks.js.map +1 -1
  5. package/dist/{chunk-IE6VWUSB.js → chunk-2V6HUWST.js} +19 -6
  6. package/dist/chunk-2V6HUWST.js.map +1 -0
  7. package/dist/{chunk-UTSTTTH5.js → chunk-3Z2VGVPI.js} +18 -8
  8. package/dist/chunk-3Z2VGVPI.js.map +1 -0
  9. package/dist/{chunk-PSJGAZIS.js → chunk-B3L6PRLX.js} +208 -100
  10. package/dist/chunk-B3L6PRLX.js.map +1 -0
  11. package/dist/chunk-DE2AJ54R.js +458 -0
  12. package/dist/chunk-DE2AJ54R.js.map +1 -0
  13. package/dist/{chunk-QNF4LJVT.js → chunk-E26KKMGS.js} +8 -6
  14. package/dist/chunk-E26KKMGS.js.map +1 -0
  15. package/dist/{chunk-O5DZTX7D.js → chunk-EYPM6IMS.js} +30 -34
  16. package/dist/chunk-EYPM6IMS.js.map +1 -0
  17. package/dist/chunk-IQMRJXEO.js +5 -4
  18. package/dist/chunk-IQMRJXEO.js.map +1 -1
  19. package/dist/{chunk-I5UZAJB4.js → chunk-KHOA4TEI.js} +85 -30
  20. package/dist/chunk-KHOA4TEI.js.map +1 -0
  21. package/dist/chunk-L2H5GIF7.js +5 -4
  22. package/dist/chunk-L2H5GIF7.js.map +1 -1
  23. package/dist/{chunk-NA33PNQO.js → chunk-SZUXATOF.js} +170 -76
  24. package/dist/chunk-SZUXATOF.js.map +1 -0
  25. package/dist/chunk-TM5MN3MI.js +29 -0
  26. package/dist/chunk-TM5MN3MI.js.map +1 -0
  27. package/dist/{chunk-7LBWPBVE.js → chunk-UCJTM3UM.js} +259 -248
  28. package/dist/chunk-UCJTM3UM.js.map +1 -0
  29. package/dist/{chunk-MCMBS2SB.js → chunk-UXVI326F.js} +15 -8
  30. package/dist/chunk-UXVI326F.js.map +1 -0
  31. package/dist/chunk-VA6A4HZ2.js +394 -0
  32. package/dist/chunk-VA6A4HZ2.js.map +1 -0
  33. package/dist/{chunk-SBLZ6T3D.js → chunk-YBXRJSR3.js} +15 -7
  34. package/dist/chunk-YBXRJSR3.js.map +1 -0
  35. package/dist/code.d.ts +2 -2
  36. package/dist/code.js +96 -52
  37. package/dist/code.js.map +1 -1
  38. package/dist/{context-OwSoVEri.d.ts → context-Soro3B1I.d.ts} +5 -4
  39. package/dist/editor.d.ts +1 -1
  40. package/dist/editor.js +135 -52
  41. package/dist/editor.js.map +1 -1
  42. package/dist/{field-DWm5NXeV.d.ts → field-C1TdmC2t.d.ts} +1 -1
  43. package/dist/index.d.ts +14 -11
  44. package/dist/index.js +1107 -635
  45. package/dist/index.js.map +1 -1
  46. package/dist/inertia.d.ts +11 -3
  47. package/dist/inertia.js +66 -12
  48. package/dist/inertia.js.map +1 -1
  49. package/dist/{input-Dxnsxi-f.d.ts → input-B4uEClxB.d.ts} +1 -1
  50. package/dist/{json-viewer-BARA2RCW.d.ts → json-viewer-Bssv9mTD.d.ts} +1 -1
  51. package/dist/locales/pt.d.ts +9 -8
  52. package/dist/locales/pt.js +40 -3
  53. package/dist/locales/pt.js.map +1 -1
  54. package/dist/shells.d.ts +46 -5
  55. package/dist/shells.js +211 -71
  56. package/dist/shells.js.map +1 -1
  57. package/dist/{sidebar-Bp6Q46j-.d.ts → sidebar-BLL2tgTt.d.ts} +2 -2
  58. package/dist/types-1LUmNJf_.d.ts +41 -0
  59. package/dist/{types-cmBL8zOc.d.ts → types-CMZRvMV5.d.ts} +1 -1
  60. package/dist/{types-B-eGPoFD.d.ts → types-CfAUvz--.d.ts} +1 -1
  61. package/package.json +4 -2
  62. package/theme.css +3 -0
  63. package/themes/nosferry.css +2 -2
  64. package/dist/chunk-7LBWPBVE.js.map +0 -1
  65. package/dist/chunk-I5UZAJB4.js.map +0 -1
  66. package/dist/chunk-IE6VWUSB.js.map +0 -1
  67. package/dist/chunk-MCMBS2SB.js.map +0 -1
  68. package/dist/chunk-NA33PNQO.js.map +0 -1
  69. package/dist/chunk-NGMG2UWX.js +0 -172
  70. package/dist/chunk-NGMG2UWX.js.map +0 -1
  71. package/dist/chunk-O5DZTX7D.js.map +0 -1
  72. package/dist/chunk-PSJGAZIS.js.map +0 -1
  73. package/dist/chunk-QNF4LJVT.js.map +0 -1
  74. package/dist/chunk-SBLZ6T3D.js.map +0 -1
  75. package/dist/chunk-UTSTTTH5.js.map +0 -1
  76. package/dist/types-u1qfmJQi.d.ts +0 -28
@@ -1,22 +1,42 @@
1
- import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, Label, DialogFooter } from './chunk-O5DZTX7D.js';
2
- import { useUiLabels } from './chunk-QNF4LJVT.js';
3
- import { Input } from './chunk-UTSTTTH5.js';
4
- import { elevatedSurface, cn, panelSurface, glassControl, controlFill, focusRing, nestedSurfaceReset, fieldSurface, fieldFocus, Button, buttonVariants, modalSurface, menuSurface } from './chunk-I5UZAJB4.js';
5
- import { Minus, AlertCircle, ChevronRight, ChevronLeftIcon, ChevronRightIcon, ChevronDownIcon, SearchIcon, SearchXIcon, CheckIcon, ChevronUpIcon, ArrowLeftIcon, XIcon } from 'lucide-react';
6
- import * as React6 from 'react';
7
- import { useId, useState, useEffect } from 'react';
8
- import { jsx, jsxs } from 'react/jsx-runtime';
9
- import { cva } from 'class-variance-authority';
10
- import { getDefaultClassNames, DayPicker } from 'react-day-picker';
11
- import { Command as Command$1 } from 'cmdk';
12
- import { Popover as Popover$1 } from 'radix-ui';
13
- import * as SelectPrimitive from '@radix-ui/react-select';
14
- import * as DialogPrimitive from '@radix-ui/react-dialog';
15
- import { createPortal } from 'react-dom';
16
- import { OTPInput, OTPInputContext } from 'input-otp';
17
- import * as SwitchPrimitives from '@radix-ui/react-switch';
18
- import * as TabsPrimitive from '@radix-ui/react-tabs';
1
+ 'use client';
19
2
 
3
+ import {
4
+ Dialog,
5
+ DialogContent,
6
+ DialogDescription,
7
+ DialogFooter,
8
+ DialogHeader,
9
+ DialogTitle
10
+ } from "./chunk-EYPM6IMS.js";
11
+ import {
12
+ useUiLabels
13
+ } from "./chunk-E26KKMGS.js";
14
+ import {
15
+ Label
16
+ } from "./chunk-TM5MN3MI.js";
17
+ import {
18
+ Input
19
+ } from "./chunk-3Z2VGVPI.js";
20
+ import {
21
+ Button,
22
+ buttonVariants,
23
+ cn,
24
+ controlFill,
25
+ elevatedSurface,
26
+ fieldFocus,
27
+ fieldSurface,
28
+ focusRing,
29
+ glassControl,
30
+ menuSurface,
31
+ modalSurface,
32
+ nestedSurfaceReset,
33
+ panelSurface
34
+ } from "./chunk-KHOA4TEI.js";
35
+
36
+ // src/components/ui/confirm-dialog.tsx
37
+ import { AlertCircle, ChevronRight } from "lucide-react";
38
+ import { useEffect, useId, useState } from "react";
39
+ import { jsx, jsxs } from "react/jsx-runtime";
20
40
  var confirmDialogDefaultLabels = {
21
41
  title: "Confirm Action",
22
42
  description: "Are you sure you want to continue? This action cannot be undone.",
@@ -131,84 +151,19 @@ function ConfirmDialog({
131
151
  ] }) })
132
152
  ] }) });
133
153
  }
134
- var alertVariants = cva(
135
- `${elevatedSurface} relative w-full px-5 py-4 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`,
136
- {
137
- variants: {
138
- variant: {
139
- default: "bg-card text-card-foreground",
140
- destructive: "border-destructive/30 bg-destructive/10 text-destructive [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/80",
141
- warning: "ring-warning/20 bg-warning/10 text-warning *:data-[slot=alert-description]:text-warning/80",
142
- info: "ring-info/20 bg-info/10 text-info *:data-[slot=alert-description]:text-info/80"
143
- }
144
- },
145
- defaultVariants: {
146
- variant: "default"
147
- }
148
- }
149
- );
150
- var alertDefaultLabels = {
151
- warningLabel: "Warning",
152
- infoLabel: "Information"
153
- };
154
- var SEVERITY_LABELS = {
155
- warning: "warningLabel",
156
- info: "infoLabel"
157
- };
158
- function Alert({
159
- className,
160
- variant,
161
- labels,
162
- slotName = "alert",
163
- ...props
164
- }) {
165
- const resolved = useUiLabels("alert", alertDefaultLabels, labels);
166
- const severity = variant ? SEVERITY_LABELS[variant] : void 0;
167
- return /* @__PURE__ */ jsx(
168
- "div",
169
- {
170
- role: "alert",
171
- "aria-label": severity ? resolved[severity] : void 0,
172
- className: cn(alertVariants({ variant }), className),
173
- ...props,
174
- "data-slot": slotName
175
- }
176
- );
177
- }
178
- function AlertTitle({
179
- className,
180
- slotName = "alert-title",
181
- ...props
182
- }) {
183
- return /* @__PURE__ */ jsx(
184
- "div",
185
- {
186
- className: cn(
187
- "min-h-4 font-medium tracking-tight col-start-2 line-clamp-1",
188
- className
189
- ),
190
- ...props,
191
- "data-slot": slotName
192
- }
193
- );
194
- }
195
- function AlertDescription({
196
- className,
197
- slotName = "alert-description",
198
- ...props
199
- }) {
200
- return /* @__PURE__ */ jsx(
201
- "div",
202
- {
203
- className: cn(
204
- "gap-1 text-sm [&_p]:leading-relaxed col-start-2 grid justify-items-start text-muted-foreground",
205
- className
206
- ),
207
- ...props,
208
- "data-slot": slotName
209
- }
210
- );
211
- }
154
+
155
+ // src/components/ui/calendar.tsx
156
+ import {
157
+ ChevronDownIcon,
158
+ ChevronLeftIcon,
159
+ ChevronRightIcon
160
+ } from "lucide-react";
161
+ import * as React from "react";
162
+ import {
163
+ DayPicker,
164
+ getDefaultClassNames
165
+ } from "react-day-picker";
166
+ import { jsx as jsx2 } from "react/jsx-runtime";
212
167
  function Calendar({
213
168
  className,
214
169
  classNames,
@@ -221,7 +176,7 @@ function Calendar({
221
176
  ...props
222
177
  }) {
223
178
  const defaultClassNames = getDefaultClassNames();
224
- return /* @__PURE__ */ jsx(
179
+ return /* @__PURE__ */ jsx2(
225
180
  DayPicker,
226
181
  {
227
182
  showOutsideDays,
@@ -335,7 +290,7 @@ function Calendar({
335
290
  },
336
291
  components: {
337
292
  Root: ({ className: className2, rootRef, ...props2 }) => {
338
- return /* @__PURE__ */ jsx(
293
+ return /* @__PURE__ */ jsx2(
339
294
  "div",
340
295
  {
341
296
  ref: rootRef,
@@ -347,7 +302,7 @@ function Calendar({
347
302
  },
348
303
  Chevron: ({ className: className2, orientation, ...props2 }) => {
349
304
  if (orientation === "left") {
350
- return /* @__PURE__ */ jsx(
305
+ return /* @__PURE__ */ jsx2(
351
306
  ChevronLeftIcon,
352
307
  {
353
308
  className: cn("size-4", className2),
@@ -356,7 +311,7 @@ function Calendar({
356
311
  );
357
312
  }
358
313
  if (orientation === "right") {
359
- return /* @__PURE__ */ jsx(
314
+ return /* @__PURE__ */ jsx2(
360
315
  ChevronRightIcon,
361
316
  {
362
317
  className: cn("size-4", className2),
@@ -364,7 +319,7 @@ function Calendar({
364
319
  }
365
320
  );
366
321
  }
367
- return /* @__PURE__ */ jsx(
322
+ return /* @__PURE__ */ jsx2(
368
323
  ChevronDownIcon,
369
324
  {
370
325
  className: cn("size-4", className2),
@@ -374,7 +329,7 @@ function Calendar({
374
329
  },
375
330
  DayButton: CalendarDayButton,
376
331
  WeekNumber: ({ children, ...props2 }) => {
377
- return /* @__PURE__ */ jsx("td", { ...props2, children: /* @__PURE__ */ jsx("div", { className: "flex size-(--cell-size) items-center justify-center text-center", children }) });
332
+ return /* @__PURE__ */ jsx2("td", { ...props2, children: /* @__PURE__ */ jsx2("div", { className: "flex size-(--cell-size) items-center justify-center text-center", children }) });
378
333
  },
379
334
  ...components
380
335
  },
@@ -389,11 +344,11 @@ function CalendarDayButton({
389
344
  ...props
390
345
  }) {
391
346
  const defaultClassNames = getDefaultClassNames();
392
- const ref = React6.useRef(null);
393
- React6.useEffect(() => {
347
+ const ref = React.useRef(null);
348
+ React.useEffect(() => {
394
349
  if (modifiers.focused) ref.current?.focus();
395
350
  }, [modifiers.focused]);
396
- return /* @__PURE__ */ jsx(
351
+ return /* @__PURE__ */ jsx2(
397
352
  Button,
398
353
  {
399
354
  ref,
@@ -413,13 +368,18 @@ function CalendarDayButton({
413
368
  }
414
369
  );
415
370
  }
371
+
372
+ // src/components/ui/command.tsx
373
+ import { Command as CommandPrimitive } from "cmdk";
374
+ import { SearchIcon, SearchXIcon } from "lucide-react";
375
+ import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
416
376
  function Command({
417
377
  className,
418
378
  slotName = "command",
419
379
  ...props
420
380
  }) {
421
- return /* @__PURE__ */ jsx(
422
- Command$1,
381
+ return /* @__PURE__ */ jsx3(
382
+ CommandPrimitive,
423
383
  {
424
384
  className: cn(
425
385
  elevatedSurface,
@@ -440,12 +400,12 @@ function CommandDialog({
440
400
  hideCloseButton = true,
441
401
  ...props
442
402
  }) {
443
- return /* @__PURE__ */ jsxs(Dialog, { ...props, children: [
444
- /* @__PURE__ */ jsxs(DialogHeader, { className: "sr-only", children: [
445
- /* @__PURE__ */ jsx(DialogTitle, { children: title }),
446
- /* @__PURE__ */ jsx(DialogDescription, { children: description })
403
+ return /* @__PURE__ */ jsxs2(Dialog, { ...props, children: [
404
+ /* @__PURE__ */ jsxs2(DialogHeader, { className: "sr-only", children: [
405
+ /* @__PURE__ */ jsx3(DialogTitle, { children: title }),
406
+ /* @__PURE__ */ jsx3(DialogDescription, { children: description })
447
407
  ] }),
448
- /* @__PURE__ */ jsx(
408
+ /* @__PURE__ */ jsx3(
449
409
  DialogContent,
450
410
  {
451
411
  className: cn(
@@ -453,7 +413,7 @@ function CommandDialog({
453
413
  className
454
414
  ),
455
415
  hideCloseButton,
456
- children: /* @__PURE__ */ jsx(Command, { className: "[&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-item]]:py-2.5 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5", children })
416
+ children: /* @__PURE__ */ jsx3(Command, { className: "[&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-item]]:py-2.5 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5", children })
457
417
  }
458
418
  )
459
419
  ] });
@@ -463,7 +423,7 @@ function CommandInput({
463
423
  slotName = "command-input",
464
424
  ...props
465
425
  }) {
466
- return /* @__PURE__ */ jsx("div", { className: "shrink-0 border-b border-border", children: /* @__PURE__ */ jsxs(
426
+ return /* @__PURE__ */ jsx3("div", { className: "shrink-0 border-b border-border", children: /* @__PURE__ */ jsxs2(
467
427
  "div",
468
428
  {
469
429
  "data-slot": "command-input-wrapper",
@@ -472,12 +432,12 @@ function CommandInput({
472
432
  "h-11 gap-3 px-4 m-3 flex items-center"
473
433
  ),
474
434
  children: [
475
- /* @__PURE__ */ jsx(SearchIcon, { className: "size-4 shrink-0 opacity-50" }),
476
- /* @__PURE__ */ jsx(
477
- Command$1.Input,
435
+ /* @__PURE__ */ jsx3(SearchIcon, { className: "size-4 shrink-0 opacity-50" }),
436
+ /* @__PURE__ */ jsx3(
437
+ CommandPrimitive.Input,
478
438
  {
479
439
  className: cn(
480
- "h-11 text-sm font-medium flex w-full bg-transparent outline-hidden placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",
440
+ "h-11 text-base sm:text-sm font-medium flex w-full bg-transparent outline-hidden placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",
481
441
  className
482
442
  ),
483
443
  ...props,
@@ -493,8 +453,8 @@ function CommandList({
493
453
  slotName = "command-list",
494
454
  ...props
495
455
  }) {
496
- return /* @__PURE__ */ jsx(
497
- Command$1.List,
456
+ return /* @__PURE__ */ jsx3(
457
+ CommandPrimitive.List,
498
458
  {
499
459
  className: cn(
500
460
  "scroll-py-1 max-h-[300px] overflow-x-hidden overflow-y-auto",
@@ -511,8 +471,8 @@ function CommandEmpty({
511
471
  slotName = "command-empty",
512
472
  ...props
513
473
  }) {
514
- return /* @__PURE__ */ jsxs(
515
- Command$1.Empty,
474
+ return /* @__PURE__ */ jsxs2(
475
+ CommandPrimitive.Empty,
516
476
  {
517
477
  className: cn(
518
478
  "gap-3 px-6 py-10 flex flex-col items-center justify-center text-center",
@@ -521,8 +481,8 @@ function CommandEmpty({
521
481
  ...props,
522
482
  "data-slot": slotName,
523
483
  children: [
524
- /* @__PURE__ */ jsx("span", { className: "size-10 flex items-center justify-center rounded-full bg-surface-recessed text-muted-foreground", children: /* @__PURE__ */ jsx(SearchXIcon, { className: "size-5" }) }),
525
- /* @__PURE__ */ jsx("span", { className: "text-sm text-muted-foreground", children })
484
+ /* @__PURE__ */ jsx3("span", { className: "size-10 flex items-center justify-center rounded-full bg-surface-recessed text-muted-foreground", children: /* @__PURE__ */ jsx3(SearchXIcon, { className: "size-5" }) }),
485
+ /* @__PURE__ */ jsx3("span", { className: "text-sm text-muted-foreground", children })
526
486
  ]
527
487
  }
528
488
  );
@@ -532,8 +492,8 @@ function CommandGroup({
532
492
  slotName = "command-group",
533
493
  ...props
534
494
  }) {
535
- return /* @__PURE__ */ jsx(
536
- Command$1.Group,
495
+ return /* @__PURE__ */ jsx3(
496
+ CommandPrimitive.Group,
537
497
  {
538
498
  className: cn(
539
499
  "p-3 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium overflow-hidden text-foreground [&_[cmdk-group-heading]]:text-muted-foreground",
@@ -549,8 +509,8 @@ function CommandSeparator({
549
509
  slotName = "command-separator",
550
510
  ...props
551
511
  }) {
552
- return /* @__PURE__ */ jsx(
553
- Command$1.Separator,
512
+ return /* @__PURE__ */ jsx3(
513
+ CommandPrimitive.Separator,
554
514
  {
555
515
  className: cn("mx-3 h-px bg-border", className),
556
516
  ...props,
@@ -563,8 +523,8 @@ function CommandItem({
563
523
  slotName = "command-item",
564
524
  ...props
565
525
  }) {
566
- return /* @__PURE__ */ jsx(
567
- Command$1.Item,
526
+ return /* @__PURE__ */ jsx3(
527
+ CommandPrimitive.Item,
568
528
  {
569
529
  className: cn(
570
530
  "gap-2 px-2 py-1.5 text-sm [&_svg:not([class*='size-'])]:size-4 rounded-xl relative flex cursor-default items-center outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='text-'])]:text-muted-foreground",
@@ -580,7 +540,7 @@ function CommandShortcut({
580
540
  slotName = "command-shortcut",
581
541
  ...props
582
542
  }) {
583
- return /* @__PURE__ */ jsx(
543
+ return /* @__PURE__ */ jsx3(
584
544
  "span",
585
545
  {
586
546
  className: cn(
@@ -592,18 +552,23 @@ function CommandShortcut({
592
552
  }
593
553
  );
594
554
  }
595
- var Popover = Popover$1.Root;
596
- var PopoverTrigger = Popover$1.Trigger;
597
- var PopoverAnchor = Popover$1.Anchor;
598
- var PopoverContent = React6.forwardRef(
555
+
556
+ // src/components/ui/popover.tsx
557
+ import { Popover as PopoverPrimitive } from "radix-ui";
558
+ import * as React2 from "react";
559
+ import { jsx as jsx4 } from "react/jsx-runtime";
560
+ var Popover = PopoverPrimitive.Root;
561
+ var PopoverTrigger = PopoverPrimitive.Trigger;
562
+ var PopoverAnchor = PopoverPrimitive.Anchor;
563
+ var PopoverContent = React2.forwardRef(
599
564
  ({
600
565
  className,
601
566
  align = "center",
602
567
  sideOffset = 4,
603
568
  slotName = "popover-content",
604
569
  ...props
605
- }, ref) => /* @__PURE__ */ jsx(Popover$1.Portal, { children: /* @__PURE__ */ jsx(
606
- Popover$1.Content,
570
+ }, ref) => /* @__PURE__ */ jsx4(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx4(
571
+ PopoverPrimitive.Content,
607
572
  {
608
573
  ref,
609
574
  align,
@@ -617,24 +582,29 @@ var PopoverContent = React6.forwardRef(
617
582
  }
618
583
  ) })
619
584
  );
620
- PopoverContent.displayName = Popover$1.Content.displayName;
585
+ PopoverContent.displayName = PopoverPrimitive.Content.displayName;
586
+
587
+ // src/components/ui/select.tsx
588
+ import * as SelectPrimitive from "@radix-ui/react-select";
589
+ import { CheckIcon, ChevronDownIcon as ChevronDownIcon2, ChevronUpIcon } from "lucide-react";
590
+ import { jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
621
591
  function Select({
622
592
  slotName = "select",
623
593
  ...props
624
594
  }) {
625
- return /* @__PURE__ */ jsx(SelectPrimitive.Root, { ...props, "data-slot": slotName });
595
+ return /* @__PURE__ */ jsx5(SelectPrimitive.Root, { ...props, "data-slot": slotName });
626
596
  }
627
597
  function SelectGroup({
628
598
  slotName = "select-group",
629
599
  ...props
630
600
  }) {
631
- return /* @__PURE__ */ jsx(SelectPrimitive.Group, { ...props, "data-slot": slotName });
601
+ return /* @__PURE__ */ jsx5(SelectPrimitive.Group, { ...props, "data-slot": slotName });
632
602
  }
633
603
  function SelectValue({
634
604
  slotName = "select-value",
635
605
  ...props
636
606
  }) {
637
- return /* @__PURE__ */ jsx(SelectPrimitive.Value, { ...props, "data-slot": slotName });
607
+ return /* @__PURE__ */ jsx5(SelectPrimitive.Value, { ...props, "data-slot": slotName });
638
608
  }
639
609
  function SelectTrigger({
640
610
  className,
@@ -642,18 +612,18 @@ function SelectTrigger({
642
612
  slotName = "select-trigger",
643
613
  ...props
644
614
  }) {
645
- return /* @__PURE__ */ jsxs(
615
+ return /* @__PURE__ */ jsxs3(
646
616
  SelectPrimitive.Trigger,
647
617
  {
648
618
  className: cn(
649
- `${fieldSurface} h-11 px-4 text-sm font-medium *:data-[slot=select-value]:gap-2 [&_svg:not([class*='size-'])]:size-4 flex w-full items-center justify-between transition-[color,box-shadow] disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[placeholder]:text-muted-foreground *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center [&_svg]:pointer-events-none [&_svg]:shrink-0 [&>span]:line-clamp-1 ${fieldFocus}`,
619
+ `${fieldSurface} h-11 px-4 font-medium *:data-[slot=select-value]:gap-2 [&_svg:not([class*='size-'])]:size-4 flex w-full items-center justify-between transition-[color,box-shadow] disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[placeholder]:text-muted-foreground *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center [&_svg]:pointer-events-none [&_svg]:shrink-0 [&>span]:line-clamp-1 ${fieldFocus}`,
650
620
  className
651
621
  ),
652
622
  ...props,
653
623
  "data-slot": slotName,
654
624
  children: [
655
625
  children,
656
- /* @__PURE__ */ jsx(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx(ChevronDownIcon, { className: "size-4 opacity-50" }) })
626
+ /* @__PURE__ */ jsx5(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx5(ChevronDownIcon2, { className: "size-4 opacity-50" }) })
657
627
  ]
658
628
  }
659
629
  );
@@ -665,7 +635,7 @@ function SelectContent({
665
635
  slotName = "select-content",
666
636
  ...props
667
637
  }) {
668
- return /* @__PURE__ */ jsx(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs(
638
+ return /* @__PURE__ */ jsx5(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs3(
669
639
  SelectPrimitive.Content,
670
640
  {
671
641
  className: cn(
@@ -677,8 +647,8 @@ function SelectContent({
677
647
  ...props,
678
648
  "data-slot": slotName,
679
649
  children: [
680
- /* @__PURE__ */ jsx(SelectScrollUpButton, {}),
681
- /* @__PURE__ */ jsx(
650
+ /* @__PURE__ */ jsx5(SelectScrollUpButton, {}),
651
+ /* @__PURE__ */ jsx5(
682
652
  SelectPrimitive.Viewport,
683
653
  {
684
654
  className: cn(
@@ -688,7 +658,7 @@ function SelectContent({
688
658
  children
689
659
  }
690
660
  ),
691
- /* @__PURE__ */ jsx(SelectScrollDownButton, {})
661
+ /* @__PURE__ */ jsx5(SelectScrollDownButton, {})
692
662
  ]
693
663
  }
694
664
  ) });
@@ -698,7 +668,7 @@ function SelectLabel({
698
668
  slotName = "select-label",
699
669
  ...props
700
670
  }) {
701
- return /* @__PURE__ */ jsx(
671
+ return /* @__PURE__ */ jsx5(
702
672
  SelectPrimitive.Label,
703
673
  {
704
674
  className: cn(
@@ -716,7 +686,7 @@ function SelectItem({
716
686
  slotName = "select-item",
717
687
  ...props
718
688
  }) {
719
- return /* @__PURE__ */ jsxs(
689
+ return /* @__PURE__ */ jsxs3(
720
690
  SelectPrimitive.Item,
721
691
  {
722
692
  className: cn(
@@ -726,8 +696,8 @@ function SelectItem({
726
696
  ...props,
727
697
  "data-slot": slotName,
728
698
  children: [
729
- /* @__PURE__ */ jsx("span", { className: "right-2 size-3.5 absolute flex items-center justify-center", children: /* @__PURE__ */ jsx(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(CheckIcon, { className: "size-4" }) }) }),
730
- /* @__PURE__ */ jsx(SelectPrimitive.ItemText, { children })
699
+ /* @__PURE__ */ jsx5("span", { className: "right-2 size-3.5 absolute flex items-center justify-center", children: /* @__PURE__ */ jsx5(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx5(CheckIcon, { className: "size-4" }) }) }),
700
+ /* @__PURE__ */ jsx5(SelectPrimitive.ItemText, { children })
731
701
  ]
732
702
  }
733
703
  );
@@ -737,7 +707,7 @@ function SelectSeparator({
737
707
  slotName = "select-separator",
738
708
  ...props
739
709
  }) {
740
- return /* @__PURE__ */ jsx(
710
+ return /* @__PURE__ */ jsx5(
741
711
  SelectPrimitive.Separator,
742
712
  {
743
713
  className: cn(
@@ -754,7 +724,7 @@ function SelectScrollUpButton({
754
724
  slotName = "select-scroll-up-button",
755
725
  ...props
756
726
  }) {
757
- return /* @__PURE__ */ jsx(
727
+ return /* @__PURE__ */ jsx5(
758
728
  SelectPrimitive.ScrollUpButton,
759
729
  {
760
730
  className: cn(
@@ -763,7 +733,7 @@ function SelectScrollUpButton({
763
733
  ),
764
734
  ...props,
765
735
  "data-slot": slotName,
766
- children: /* @__PURE__ */ jsx(ChevronUpIcon, { className: "size-4" })
736
+ children: /* @__PURE__ */ jsx5(ChevronUpIcon, { className: "size-4" })
767
737
  }
768
738
  );
769
739
  }
@@ -772,7 +742,7 @@ function SelectScrollDownButton({
772
742
  slotName = "select-scroll-down-button",
773
743
  ...props
774
744
  }) {
775
- return /* @__PURE__ */ jsx(
745
+ return /* @__PURE__ */ jsx5(
776
746
  SelectPrimitive.ScrollDownButton,
777
747
  {
778
748
  className: cn(
@@ -781,53 +751,21 @@ function SelectScrollDownButton({
781
751
  ),
782
752
  ...props,
783
753
  "data-slot": slotName,
784
- children: /* @__PURE__ */ jsx(ChevronDownIcon, { className: "size-4" })
785
- }
786
- );
787
- }
788
- var FieldContext = React6.createContext(null);
789
- function useOptionalField() {
790
- return React6.useContext(FieldContext);
791
- }
792
- function useField() {
793
- const field = useOptionalField();
794
- if (!field) {
795
- throw new Error("Field parts must be rendered inside a Field.");
796
- }
797
- return field;
798
- }
799
- function FieldError({
800
- message,
801
- className,
802
- slotName = "field-error",
803
- ...props
804
- }) {
805
- const field = useOptionalField();
806
- if (!message) {
807
- return null;
808
- }
809
- return /* @__PURE__ */ jsx(
810
- "p",
811
- {
812
- id: field?.errorId,
813
- className: cn(
814
- "ml-1 text-xs font-medium text-destructive group-data-[orientation=horizontal]/field:col-span-2 group-data-[orientation=horizontal]/field:row-start-3",
815
- className
816
- ),
817
- ...props,
818
- "data-slot": slotName,
819
- children: message
754
+ children: /* @__PURE__ */ jsx5(ChevronDownIcon2, { className: "size-4" })
820
755
  }
821
756
  );
822
757
  }
758
+
759
+ // src/components/ui/floating-sheet-context.ts
760
+ import * as React3 from "react";
823
761
  var floatingSheetDefaultLabels = {
824
762
  backLabel: "Back",
825
763
  closeLabel: "Close"
826
764
  };
827
765
  var FLOATING_SHEET_OFFSET_LIMIT = 3;
828
- var FloatingSheetStackContext = React6.createContext(null);
766
+ var FloatingSheetStackContext = React3.createContext(null);
829
767
  function useFloatingSheetStack() {
830
- const context = React6.useContext(FloatingSheetStackContext);
768
+ const context = React3.useContext(FloatingSheetStackContext);
831
769
  if (!context) {
832
770
  throw new Error(
833
771
  "FloatingSheet must be rendered inside a FloatingSheetStack."
@@ -835,6 +773,11 @@ function useFloatingSheetStack() {
835
773
  }
836
774
  return context;
837
775
  }
776
+
777
+ // src/components/ui/floating-sheet-stack.tsx
778
+ import * as DialogPrimitive from "@radix-ui/react-dialog";
779
+ import * as React4 from "react";
780
+ import { jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
838
781
  function FloatingSheetStack({
839
782
  children,
840
783
  labels,
@@ -845,22 +788,22 @@ function FloatingSheetStack({
845
788
  floatingSheetDefaultLabels,
846
789
  labels
847
790
  );
848
- const [entries, setEntries] = React6.useState([]);
849
- const [container, setContainer] = React6.useState(null);
850
- const register = React6.useCallback((entry) => {
791
+ const [entries, setEntries] = React4.useState([]);
792
+ const [container, setContainer] = React4.useState(null);
793
+ const register = React4.useCallback((entry) => {
851
794
  setEntries(
852
795
  (current) => current.some((item) => item.id === entry.id) ? current.map((item) => item.id === entry.id ? entry : item) : [...current, entry]
853
796
  );
854
797
  }, []);
855
- const unregister = React6.useCallback((id) => {
798
+ const unregister = React4.useCallback((id) => {
856
799
  setEntries((current) => current.filter((item) => item.id !== id));
857
800
  }, []);
858
- const closeAll = React6.useCallback(() => {
801
+ const closeAll = React4.useCallback(() => {
859
802
  for (const entry of [...entries].reverse()) {
860
803
  entry.close();
861
804
  }
862
805
  }, [entries]);
863
- const value = React6.useMemo(
806
+ const value = React4.useMemo(
864
807
  () => ({
865
808
  labels: { backLabel, closeLabel },
866
809
  container,
@@ -880,9 +823,9 @@ function FloatingSheetStack({
880
823
  ]
881
824
  );
882
825
  const top = entries.at(-1);
883
- return /* @__PURE__ */ jsxs(FloatingSheetStackContext.Provider, { value, children: [
826
+ return /* @__PURE__ */ jsxs4(FloatingSheetStackContext.Provider, { value, children: [
884
827
  children,
885
- /* @__PURE__ */ jsx(
828
+ /* @__PURE__ */ jsx6(
886
829
  DialogPrimitive.Root,
887
830
  {
888
831
  open: entries.length > 0,
@@ -891,15 +834,15 @@ function FloatingSheetStack({
891
834
  closeAll();
892
835
  }
893
836
  },
894
- children: /* @__PURE__ */ jsxs(DialogPrimitive.Portal, { children: [
895
- /* @__PURE__ */ jsx(
837
+ children: /* @__PURE__ */ jsxs4(DialogPrimitive.Portal, { children: [
838
+ /* @__PURE__ */ jsx6(
896
839
  DialogPrimitive.Overlay,
897
840
  {
898
841
  "data-slot": "floating-sheet-overlay",
899
842
  className: "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 inset-0 bg-black/60 backdrop-blur-sm fixed z-50"
900
843
  }
901
844
  ),
902
- /* @__PURE__ */ jsxs(
845
+ /* @__PURE__ */ jsxs4(
903
846
  DialogPrimitive.Content,
904
847
  {
905
848
  "aria-describedby": void 0,
@@ -919,8 +862,8 @@ function FloatingSheetStack({
919
862
  className: "inset-2 sm:inset-y-4 sm:right-4 sm:left-auto sm:w-[calc(100vw-2rem)] sm:max-w-lg sm:p-0 fixed z-50 p-[env(safe-area-inset-top)_env(safe-area-inset-right)_env(safe-area-inset-bottom)_env(safe-area-inset-left)] outline-none",
920
863
  "data-slot": slotName,
921
864
  children: [
922
- /* @__PURE__ */ jsx(DialogPrimitive.Title, { className: "sr-only", children: top?.title }),
923
- /* @__PURE__ */ jsx(
865
+ /* @__PURE__ */ jsx6(DialogPrimitive.Title, { className: "sr-only", children: top?.title }),
866
+ /* @__PURE__ */ jsx6(
924
867
  "div",
925
868
  {
926
869
  ref: setContainer,
@@ -936,6 +879,12 @@ function FloatingSheetStack({
936
879
  )
937
880
  ] });
938
881
  }
882
+
883
+ // src/components/ui/floating-sheet.tsx
884
+ import { ArrowLeftIcon, XIcon } from "lucide-react";
885
+ import * as React5 from "react";
886
+ import { createPortal } from "react-dom";
887
+ import { jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
939
888
  function FloatingSheet({
940
889
  open,
941
890
  onOpenChange,
@@ -948,20 +897,20 @@ function FloatingSheet({
948
897
  ...props
949
898
  }) {
950
899
  const { labels, container, entries, register, unregister, closeAll } = useFloatingSheetStack();
951
- const id = React6.useId();
900
+ const id = React5.useId();
952
901
  const titleId = `${id}-title`;
953
902
  const descriptionId = `${id}-description`;
954
- const close = React6.useCallback(() => onOpenChange(false), [onOpenChange]);
955
- const closeRef = React6.useRef(close);
956
- const titleRef = React6.useRef(title);
957
- const openerRef = React6.useRef(null);
958
- const panelRef = React6.useRef(null);
959
- const focusedRef = React6.useRef(false);
960
- React6.useEffect(() => {
903
+ const close = React5.useCallback(() => onOpenChange(false), [onOpenChange]);
904
+ const closeRef = React5.useRef(close);
905
+ const titleRef = React5.useRef(title);
906
+ const openerRef = React5.useRef(null);
907
+ const panelRef = React5.useRef(null);
908
+ const focusedRef = React5.useRef(false);
909
+ React5.useEffect(() => {
961
910
  closeRef.current = close;
962
911
  titleRef.current = title;
963
912
  });
964
- React6.useEffect(() => {
913
+ React5.useEffect(() => {
965
914
  if (!open) {
966
915
  return;
967
916
  }
@@ -972,7 +921,7 @@ function FloatingSheet({
972
921
  close: () => closeRef.current()
973
922
  });
974
923
  }, [open, id, persistent, register]);
975
- React6.useEffect(() => {
924
+ React5.useEffect(() => {
976
925
  if (!open) {
977
926
  return;
978
927
  }
@@ -981,7 +930,7 @@ function FloatingSheet({
981
930
  const index = entries.findIndex((entry) => entry.id === id);
982
931
  const depth = index === -1 ? 0 : entries.length - 1 - index;
983
932
  const isTop = index !== -1 && depth === 0;
984
- React6.useEffect(() => {
933
+ React5.useEffect(() => {
985
934
  if (open) {
986
935
  openerRef.current = document.activeElement;
987
936
  return;
@@ -992,7 +941,7 @@ function FloatingSheet({
992
941
  opener.focus();
993
942
  }
994
943
  }, [open]);
995
- React6.useEffect(() => {
944
+ React5.useEffect(() => {
996
945
  if (!open) {
997
946
  focusedRef.current = false;
998
947
  return;
@@ -1009,7 +958,7 @@ function FloatingSheet({
1009
958
  }
1010
959
  const offset = Math.min(depth, FLOATING_SHEET_OFFSET_LIMIT);
1011
960
  return createPortal(
1012
- /* @__PURE__ */ jsxs(
961
+ /* @__PURE__ */ jsxs5(
1013
962
  "section",
1014
963
  {
1015
964
  ref: panelRef,
@@ -1032,13 +981,13 @@ function FloatingSheet({
1032
981
  ...props,
1033
982
  "data-slot": slotName,
1034
983
  children: [
1035
- /* @__PURE__ */ jsxs(
984
+ /* @__PURE__ */ jsxs5(
1036
985
  "header",
1037
986
  {
1038
987
  "data-slot": "floating-sheet-header",
1039
988
  className: "gap-1 p-5 flex flex-col",
1040
989
  children: [
1041
- index > 0 ? /* @__PURE__ */ jsxs(
990
+ index > 0 ? /* @__PURE__ */ jsxs5(
1042
991
  "button",
1043
992
  {
1044
993
  type: "button",
@@ -1049,12 +998,12 @@ function FloatingSheet({
1049
998
  focusRing
1050
999
  ),
1051
1000
  children: [
1052
- /* @__PURE__ */ jsx(ArrowLeftIcon, { className: "size-4" }),
1001
+ /* @__PURE__ */ jsx7(ArrowLeftIcon, { className: "size-4" }),
1053
1002
  labels.backLabel
1054
1003
  ]
1055
1004
  }
1056
1005
  ) : null,
1057
- /* @__PURE__ */ jsx(
1006
+ /* @__PURE__ */ jsx7(
1058
1007
  "h2",
1059
1008
  {
1060
1009
  id: titleId,
@@ -1063,7 +1012,7 @@ function FloatingSheet({
1063
1012
  children: title
1064
1013
  }
1065
1014
  ),
1066
- description ? /* @__PURE__ */ jsx(
1015
+ description ? /* @__PURE__ */ jsx7(
1067
1016
  "p",
1068
1017
  {
1069
1018
  id: descriptionId,
@@ -1076,7 +1025,7 @@ function FloatingSheet({
1076
1025
  }
1077
1026
  ),
1078
1027
  children,
1079
- /* @__PURE__ */ jsx(
1028
+ /* @__PURE__ */ jsx7(
1080
1029
  "button",
1081
1030
  {
1082
1031
  type: "button",
@@ -1087,7 +1036,7 @@ function FloatingSheet({
1087
1036
  "top-4 right-4 size-9 shadow-xs absolute flex items-center justify-center rounded-full border border-border bg-muted text-muted-foreground transition-colors hover:bg-accent hover:text-foreground disabled:pointer-events-none",
1088
1037
  focusRing
1089
1038
  ),
1090
- children: /* @__PURE__ */ jsx(XIcon, { className: "size-4" })
1039
+ children: /* @__PURE__ */ jsx7(XIcon, { className: "size-4" })
1091
1040
  }
1092
1041
  )
1093
1042
  ]
@@ -1101,7 +1050,7 @@ function FloatingSheetBody({
1101
1050
  slotName = "floating-sheet-body",
1102
1051
  ...props
1103
1052
  }) {
1104
- return /* @__PURE__ */ jsx(
1053
+ return /* @__PURE__ */ jsx7(
1105
1054
  "div",
1106
1055
  {
1107
1056
  className: cn("p-5 flex-1 overflow-y-auto", className),
@@ -1115,7 +1064,7 @@ function FloatingSheetFooter({
1115
1064
  slotName = "floating-sheet-footer",
1116
1065
  ...props
1117
1066
  }) {
1118
- return /* @__PURE__ */ jsx(
1067
+ return /* @__PURE__ */ jsx7(
1119
1068
  "div",
1120
1069
  {
1121
1070
  className: cn(
@@ -1127,7 +1076,13 @@ function FloatingSheetFooter({
1127
1076
  }
1128
1077
  );
1129
1078
  }
1130
- var InputOTP = React6.forwardRef(({ className, containerClassName, ...props }, ref) => /* @__PURE__ */ jsx(
1079
+
1080
+ // src/components/ui/input-otp.tsx
1081
+ import { OTPInput, OTPInputContext } from "input-otp";
1082
+ import { Minus } from "lucide-react";
1083
+ import * as React6 from "react";
1084
+ import { jsx as jsx8, jsxs as jsxs6 } from "react/jsx-runtime";
1085
+ var InputOTP = React6.forwardRef(({ className, containerClassName, ...props }, ref) => /* @__PURE__ */ jsx8(
1131
1086
  OTPInput,
1132
1087
  {
1133
1088
  ref,
@@ -1140,19 +1095,19 @@ var InputOTP = React6.forwardRef(({ className, containerClassName, ...props }, r
1140
1095
  }
1141
1096
  ));
1142
1097
  InputOTP.displayName = "InputOTP";
1143
- var InputOTPGroup = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex items-center", className), ...props }));
1098
+ var InputOTPGroup = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx8("div", { ref, className: cn("flex items-center", className), ...props }));
1144
1099
  InputOTPGroup.displayName = "InputOTPGroup";
1145
1100
  var InputOTPSlot = React6.forwardRef(({ index, className, slotName = "input-otp-slot", ...props }, ref) => {
1146
1101
  const inputOTPContext = React6.useContext(OTPInputContext);
1147
1102
  const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index];
1148
- return /* @__PURE__ */ jsxs(
1103
+ return /* @__PURE__ */ jsxs6(
1149
1104
  "div",
1150
1105
  {
1151
1106
  ref,
1152
1107
  className: cn(
1153
1108
  glassControl,
1154
1109
  controlFill,
1155
- "size-11 text-sm font-medium first:rounded-l-2xl last:rounded-r-2xl relative flex items-center justify-center rounded-none transition-all",
1110
+ "size-11 text-base sm:text-sm font-medium first:rounded-l-2xl last:rounded-r-2xl relative flex items-center justify-center rounded-none transition-all",
1156
1111
  isActive && "z-10 ring-[3px] ring-ring/50",
1157
1112
  className
1158
1113
  ),
@@ -1160,15 +1115,20 @@ var InputOTPSlot = React6.forwardRef(({ index, className, slotName = "input-otp-
1160
1115
  "data-slot": slotName,
1161
1116
  children: [
1162
1117
  char,
1163
- hasFakeCaret && /* @__PURE__ */ jsx("div", { className: "inset-0 pointer-events-none absolute flex items-center justify-center", children: /* @__PURE__ */ jsx("div", { className: "h-4 animate-caret-blink w-px bg-foreground duration-1000" }) })
1118
+ hasFakeCaret && /* @__PURE__ */ jsx8("div", { className: "inset-0 pointer-events-none absolute flex items-center justify-center", children: /* @__PURE__ */ jsx8("div", { className: "h-4 animate-caret-blink w-px bg-foreground duration-1000" }) })
1164
1119
  ]
1165
1120
  }
1166
1121
  );
1167
1122
  });
1168
1123
  InputOTPSlot.displayName = "InputOTPSlot";
1169
- var InputOTPSeparator = React6.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, role: "separator", ...props, children: /* @__PURE__ */ jsx(Minus, {}) }));
1124
+ var InputOTPSeparator = React6.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsx8("div", { ref, role: "separator", ...props, children: /* @__PURE__ */ jsx8(Minus, {}) }));
1170
1125
  InputOTPSeparator.displayName = "InputOTPSeparator";
1171
- var Switch = React6.forwardRef(({ className, slotName = "switch", ...props }, ref) => /* @__PURE__ */ jsx(
1126
+
1127
+ // src/components/ui/switch.tsx
1128
+ import * as SwitchPrimitives from "@radix-ui/react-switch";
1129
+ import * as React7 from "react";
1130
+ import { jsx as jsx9 } from "react/jsx-runtime";
1131
+ var Switch = React7.forwardRef(({ className, slotName = "switch", ...props }, ref) => /* @__PURE__ */ jsx9(
1172
1132
  SwitchPrimitives.Root,
1173
1133
  {
1174
1134
  className: cn(
@@ -1178,7 +1138,7 @@ var Switch = React6.forwardRef(({ className, slotName = "switch", ...props }, re
1178
1138
  ...props,
1179
1139
  ref,
1180
1140
  "data-slot": slotName,
1181
- children: /* @__PURE__ */ jsx(
1141
+ children: /* @__PURE__ */ jsx9(
1182
1142
  SwitchPrimitives.Thumb,
1183
1143
  {
1184
1144
  "data-slot": "switch-thumb",
@@ -1190,9 +1150,14 @@ var Switch = React6.forwardRef(({ className, slotName = "switch", ...props }, re
1190
1150
  }
1191
1151
  ));
1192
1152
  Switch.displayName = SwitchPrimitives.Root.displayName;
1193
- var Tabs = React6.forwardRef(({ slotName = "tabs", ...props }, ref) => /* @__PURE__ */ jsx(TabsPrimitive.Root, { ref, ...props, "data-slot": slotName }));
1153
+
1154
+ // src/components/ui/tabs.tsx
1155
+ import * as TabsPrimitive from "@radix-ui/react-tabs";
1156
+ import * as React8 from "react";
1157
+ import { jsx as jsx10 } from "react/jsx-runtime";
1158
+ var Tabs = React8.forwardRef(({ slotName = "tabs", ...props }, ref) => /* @__PURE__ */ jsx10(TabsPrimitive.Root, { ref, ...props, "data-slot": slotName }));
1194
1159
  Tabs.displayName = TabsPrimitive.Root.displayName;
1195
- var TabsList = React6.forwardRef(({ className, slotName = "tabs-list", ...props }, ref) => /* @__PURE__ */ jsx(
1160
+ var TabsList = React8.forwardRef(({ className, slotName = "tabs-list", ...props }, ref) => /* @__PURE__ */ jsx10(
1196
1161
  TabsPrimitive.List,
1197
1162
  {
1198
1163
  ref,
@@ -1205,12 +1170,12 @@ var TabsList = React6.forwardRef(({ className, slotName = "tabs-list", ...props
1205
1170
  }
1206
1171
  ));
1207
1172
  TabsList.displayName = TabsPrimitive.List.displayName;
1208
- var TabsTrigger = React6.forwardRef(({ className, slotName = "tabs-trigger", ...props }, ref) => /* @__PURE__ */ jsx(
1173
+ var TabsTrigger = React8.forwardRef(({ className, slotName = "tabs-trigger", ...props }, ref) => /* @__PURE__ */ jsx10(
1209
1174
  TabsPrimitive.Trigger,
1210
1175
  {
1211
1176
  ref,
1212
1177
  className: cn(
1213
- `px-4 text-sm font-medium data-[state=active]:shadow-sm h-8 rounded-xl data-[state=active]:font-semibold inline-flex items-center justify-center whitespace-nowrap transition-all disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground ${focusRing}`,
1178
+ `px-4 text-sm font-medium data-[state=active]:shadow-sm h-8 rounded-xl data-[state=active]:font-semibold inline-flex items-center justify-center whitespace-nowrap transition-all disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-tab-active data-[state=active]:text-foreground ${focusRing}`,
1214
1179
  className
1215
1180
  ),
1216
1181
  ...props,
@@ -1218,7 +1183,7 @@ var TabsTrigger = React6.forwardRef(({ className, slotName = "tabs-trigger", ...
1218
1183
  }
1219
1184
  ));
1220
1185
  TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
1221
- var TabsContent = React6.forwardRef(({ className, slotName = "tabs-content", ...props }, ref) => /* @__PURE__ */ jsx(
1186
+ var TabsContent = React8.forwardRef(({ className, slotName = "tabs-content", ...props }, ref) => /* @__PURE__ */ jsx10(
1222
1187
  TabsPrimitive.Content,
1223
1188
  {
1224
1189
  ref,
@@ -1233,13 +1198,17 @@ var TabsContent = React6.forwardRef(({ className, slotName = "tabs-content", ...
1233
1198
  }
1234
1199
  ));
1235
1200
  TabsContent.displayName = TabsPrimitive.Content.displayName;
1236
- var Textarea = React6.forwardRef(({ className, slotName = "textarea", ...props }, ref) => {
1237
- return /* @__PURE__ */ jsx(
1201
+
1202
+ // src/components/ui/textarea.tsx
1203
+ import * as React9 from "react";
1204
+ import { jsx as jsx11 } from "react/jsx-runtime";
1205
+ var Textarea = React9.forwardRef(({ className, slotName = "textarea", ...props }, ref) => {
1206
+ return /* @__PURE__ */ jsx11(
1238
1207
  "textarea",
1239
1208
  {
1240
1209
  className: cn(
1241
1210
  fieldSurface,
1242
- "px-4 py-3 text-sm font-medium min-h-24 flex w-full resize-none transition-[color,box-shadow] selection:bg-primary selection:text-primary-foreground placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",
1211
+ "px-4 py-3 font-medium min-h-24 flex w-full resize-none transition-[color,box-shadow] selection:bg-primary selection:text-primary-foreground placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",
1243
1212
  fieldFocus,
1244
1213
  "aria-invalid:border-destructive aria-invalid:ring-destructive/20",
1245
1214
  className
@@ -1252,6 +1221,48 @@ var Textarea = React6.forwardRef(({ className, slotName = "textarea", ...props }
1252
1221
  });
1253
1222
  Textarea.displayName = "Textarea";
1254
1223
 
1255
- export { Alert, AlertDescription, AlertTitle, Calendar, CalendarDayButton, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ConfirmDialog, FieldContext, FieldError, FloatingSheet, FloatingSheetBody, FloatingSheetFooter, FloatingSheetStack, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Switch, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, alertDefaultLabels, confirmDialogDefaultLabels, floatingSheetDefaultLabels, useField };
1256
- //# sourceMappingURL=chunk-7LBWPBVE.js.map
1257
- //# sourceMappingURL=chunk-7LBWPBVE.js.map
1224
+ export {
1225
+ confirmDialogDefaultLabels,
1226
+ ConfirmDialog,
1227
+ Calendar,
1228
+ CalendarDayButton,
1229
+ Command,
1230
+ CommandDialog,
1231
+ CommandInput,
1232
+ CommandList,
1233
+ CommandEmpty,
1234
+ CommandGroup,
1235
+ CommandSeparator,
1236
+ CommandItem,
1237
+ CommandShortcut,
1238
+ Popover,
1239
+ PopoverTrigger,
1240
+ PopoverAnchor,
1241
+ PopoverContent,
1242
+ Select,
1243
+ SelectGroup,
1244
+ SelectValue,
1245
+ SelectTrigger,
1246
+ SelectContent,
1247
+ SelectLabel,
1248
+ SelectItem,
1249
+ SelectSeparator,
1250
+ SelectScrollUpButton,
1251
+ SelectScrollDownButton,
1252
+ floatingSheetDefaultLabels,
1253
+ FloatingSheetStack,
1254
+ FloatingSheet,
1255
+ FloatingSheetBody,
1256
+ FloatingSheetFooter,
1257
+ InputOTP,
1258
+ InputOTPGroup,
1259
+ InputOTPSlot,
1260
+ InputOTPSeparator,
1261
+ Switch,
1262
+ Tabs,
1263
+ TabsList,
1264
+ TabsTrigger,
1265
+ TabsContent,
1266
+ Textarea
1267
+ };
1268
+ //# sourceMappingURL=chunk-UCJTM3UM.js.map