@moontra/moonui 6.23.0 → 6.25.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 (57) hide show
  1. package/dist/cdn/moonui.css +2 -2
  2. package/dist/cdn/moonui.esm.js +12 -12
  3. package/dist/cdn/moonui.global.js +12 -12
  4. package/dist/index.d.mts +24 -6
  5. package/dist/index.d.ts +24 -6
  6. package/dist/index.js +448 -93
  7. package/dist/index.js.map +1 -1
  8. package/dist/index.mjs +449 -95
  9. package/dist/index.mjs.map +1 -1
  10. package/package.json +1 -1
  11. package/src/__tests__/issue-544-kontrast.test.tsx +609 -0
  12. package/src/__tests__/issue-645-overlay-tab-focus.test.tsx +262 -0
  13. package/src/__tests__/issue-646-dark-scope-override.test.tsx +297 -0
  14. package/src/__tests__/issue-661-a11y.test.tsx +113 -0
  15. package/src/__tests__/issue-661-token-kontrast.test.tsx +82 -0
  16. package/src/components/ui/__tests__/accent-foreground-contrast.test.ts +197 -0
  17. package/src/components/ui/__tests__/accordion.test.tsx +6 -4
  18. package/src/components/ui/__tests__/alert.test.tsx +4 -1
  19. package/src/components/ui/__tests__/badge.test.tsx +5 -1
  20. package/src/components/ui/__tests__/button.test.tsx +6 -1
  21. package/src/components/ui/__tests__/dark-token-contrast.test.ts +18 -18
  22. package/src/components/ui/__tests__/heading-level-policy.test.tsx +4 -4
  23. package/src/components/ui/__tests__/issue-643-card-token-parite.test.tsx +113 -0
  24. package/src/components/ui/__tests__/issue-649-button-aschild.test.tsx +199 -0
  25. package/src/components/ui/__tests__/issue-664-separator-dekoratif-rol.test.tsx +41 -0
  26. package/src/components/ui/__tests__/preset-color-shadowing.test.ts +10 -10
  27. package/src/components/ui/__tests__/primary-subtle-token.test.ts +7 -7
  28. package/src/components/ui/__tests__/progress-secondary-contrast.test.ts +38 -38
  29. package/src/components/ui/__tests__/progress-warning-error-contrast.test.ts +64 -64
  30. package/src/components/ui/__tests__/quality-group-de.test.tsx +2 -2
  31. package/src/components/ui/__tests__/responsive-color-invariance.test.ts +20 -20
  32. package/src/components/ui/__tests__/select.test.tsx +6 -1
  33. package/src/components/ui/__tests__/semantic-token-usage.test.ts +23 -23
  34. package/src/components/ui/__tests__/size-scale-convention.test.ts +10 -10
  35. package/src/components/ui/__tests__/slider-accent-contrast.test.ts +142 -136
  36. package/src/components/ui/__tests__/slider-secondary-contrast.test.ts +60 -60
  37. package/src/components/ui/__tests__/slider-warning-error-contrast.test.ts +100 -100
  38. package/src/components/ui/__tests__/switch-variant-contrast.test.tsx +103 -103
  39. package/src/components/ui/__tests__/tooltip.test.tsx +122 -0
  40. package/src/components/ui/accordion.tsx +16 -3
  41. package/src/components/ui/alert.tsx +1 -1
  42. package/src/components/ui/badge.tsx +31 -4
  43. package/src/components/ui/button.tsx +88 -21
  44. package/src/components/ui/card.tsx +59 -5
  45. package/src/components/ui/dropdown-menu.tsx +99 -5
  46. package/src/components/ui/file-upload.tsx +4 -0
  47. package/src/components/ui/index.ts +4 -1
  48. package/src/components/ui/popover-pro.tsx +41 -0
  49. package/src/components/ui/popover.tsx +162 -7
  50. package/src/components/ui/rating.tsx +24 -2
  51. package/src/components/ui/select.tsx +4 -4
  52. package/src/components/ui/simple-editor.tsx +3 -18
  53. package/src/components/ui/tabs.tsx +16 -1
  54. package/src/components/ui/textarea.tsx +6 -1
  55. package/src/components/ui/toast.tsx +17 -2
  56. package/src/components/ui/tooltip.tsx +154 -2
  57. package/src/styles/tokens.css +34 -2
package/dist/index.mjs CHANGED
@@ -10,7 +10,7 @@ import { twMerge } from 'tailwind-merge';
10
10
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
11
11
  import { cva } from 'class-variance-authority';
12
12
  import * as AvatarPrimitive from '@radix-ui/react-avatar';
13
- import { Slot } from '@radix-ui/react-slot';
13
+ import { Slottable, Slot } from '@radix-ui/react-slot';
14
14
  import { motion, AnimatePresence, useMotionValue, useTransform, animate } from 'framer-motion';
15
15
  import { isValid, format, isSameMonth, isToday, subMonths, addMonths, isSameDay, startOfMonth, endOfMonth, eachDayOfInterval, getDay, startOfWeek, endOfWeek } from 'date-fns';
16
16
  export { format } from 'date-fns';
@@ -57,7 +57,7 @@ var AccordionItem = React12.forwardRef(({ className, ...props }, ref) => /* @__P
57
57
  AccordionPrimitive.Item,
58
58
  {
59
59
  ref,
60
- className: cn("moonui-theme", "border-b border-gray-200 dark:border-gray-800", className),
60
+ className: cn("moonui-theme", "border-b border-border", className),
61
61
  ...props
62
62
  }
63
63
  ));
@@ -67,7 +67,9 @@ var AccordionTrigger = React12.forwardRef(({ className, children, ...props }, re
67
67
  {
68
68
  ref,
69
69
  className: cn(
70
- "flex flex-1 items-center justify-between py-4 font-medium transition-all dark:text-gray-100",
70
+ // #661-17: `dark:text-gray-100` KALDIRILDI — tetikleyici artık iki temada
71
+ // da `--foreground`u miras alır (koyu temada 213 31% 91% ≈ gray-100).
72
+ "flex flex-1 items-center justify-between py-4 font-medium transition-all",
71
73
  "hover:underline hover:text-primary",
72
74
  "[&[data-state=open]>svg]:rotate-180",
73
75
  className
@@ -85,7 +87,13 @@ var AccordionContent = React12.forwardRef(({ className, children, ...props }, re
85
87
  {
86
88
  ref,
87
89
  className: cn(
88
- "overflow-hidden text-sm text-gray-700 dark:text-gray-300 transition-all",
90
+ // #661-17: ham `text-gray-700 dark:text-gray-300` → `text-foreground/80`.
91
+ // Ölçüldü (iki tema, kart zemini): açık 10.30 → 11.48, koyu 12.19 → 9.44.
92
+ // İkisi de AA'nın (4.5) çok üstünde, yani eşik geçilmiyor — `#545 ihlal
93
+ // takası` sınıfı bir gerileme YOK. `text-muted-foreground` bilerek
94
+ // SEÇİLMEDİ: açık temada 4.76'ya inip gövde metnini görünür biçimde
95
+ // soldururdu (§9 estetik değişiklik olurdu).
96
+ "overflow-hidden text-sm text-foreground/80 transition-all",
89
97
  "data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",
90
98
  className
91
99
  ),
@@ -102,7 +110,7 @@ var alertVariants = cva(
102
110
  default: "bg-background text-foreground border-border",
103
111
  primary: "bg-primary/10 text-primary border-primary/30",
104
112
  success: "bg-success/10 text-success border-success/30",
105
- warning: "bg-warning/10 text-warning border-warning/30",
113
+ warning: "bg-warning/10 text-warning-subtle-foreground border-warning/30",
106
114
  error: "bg-destructive/10 text-destructive border-destructive/30",
107
115
  // `--info` token'ı (tokens.css) blue-500 ile birebir aynı değeri
108
116
  // taşır → görsel değişiklik yok, ancak varyant artık temaya ve
@@ -390,11 +398,22 @@ var badgeVariants = cva(
390
398
  // aynı varyant pro pakette token'lıydı → free ve pro `primary` için
391
399
  // farklı renk üretiyordu. Artık token'a bağlı (tema/karanlık moda duyarlı).
392
400
  // `primary` VARSAYILAN varyant olduğu için görünür bir renk değişimidir.
401
+ // #646: `dark:bg-primary/90` KALDIRILDI. `primary` VARSAYILAN varyant olduğu
402
+ // için varyant verilmeyen HER `<Badge>` bu sınıfı alıyordu; `tailwind-merge`
403
+ // `dark:` önekli arka planı tüketicinin ÖNEKSİZ `bg-*` sınıfıyla aynı grupta
404
+ // görmediğinden ikisi birden hayatta kalıyor ve koyu temada `dark:` özgüllükle
405
+ // kazanıyordu. Sonuç: `<Badge className="bg-green-500/20 text-green-300">`
406
+ // koyu temada near-white zemin + açık yeşil metin = 1.10:1 (ölçüldü,
407
+ // magnetic-button "Pending"; swipe-actions'ta 6 rozet 1.10–1.48 aralığında).
408
+ // ÖNEKSİZ `bg-primary` bırakıldı: tüketici sınıfıyla AYNI grupta çakışır ve
409
+ // doğru şekilde ezilir. Rozetin kendi görünümü BOZULMAZ — koyu temada
410
+ // `bg-primary` + `text-primary-foreground` 16.16 → 19.80'e çıkar
411
+ // (yarı saydamlık kalktığı için); açık temada değişiklik yok.
393
412
  primary: [
394
413
  "border-transparent bg-primary text-primary-foreground",
395
414
  "hover:bg-primary/90",
396
415
  "focus-visible:ring-primary/30 dark:focus-visible:ring-primary/40",
397
- "dark:bg-primary/90 dark:shadow-inner dark:shadow-primary/10"
416
+ "dark:shadow-inner dark:shadow-primary/10"
398
417
  ],
399
418
  secondary: [
400
419
  "border-transparent bg-secondary text-secondary-foreground",
@@ -409,11 +428,27 @@ var badgeVariants = cva(
409
428
  "focus-visible:ring-gray-400/30 dark:focus-visible:ring-gray-500/40",
410
429
  "dark:text-gray-100 dark:bg-transparent dark:backdrop-blur-sm"
411
430
  ],
431
+ // #544: `bg-error` (= --error, #ef4343) beyaz metinle 3.78 veriyordu (AA 4.5 ister),
432
+ // `dark:bg-error/90` ise gerçek koyu kart (#111827) üstünde 4.43 ile kalıyordu.
433
+ //
434
+ // TOKEN DEĞİŞTİRİLMEDİ: dark `--destructive`/`--error` METİN rolü için bilerek
435
+ // açık tutuluyor (tokens.css:518-526); değeri koyulaştırmak `text-destructive`
436
+ // yazan yüzleri kırardı ve dark-token-contrast.test.ts'in belgelediği uzlaşmayı
437
+ // bozardı. Bunun yerine #424/#442/#454'ün presedansı uygulandı: token'a değil
438
+ // VARYANTA dokunulup skalanın bir kademesine inildi.
439
+ //
440
+ // `-600` ölçümle seçildi — AA'yı geçen EN AÇIK kademe (beyazla 4.83; -500 3.76 ✗)
441
+ // ve bugünkü kırmızıya EN YAKIN aday (ΔE*ab 10.3; -700 → 16.2, `--destructive`
442
+ // light → 18.8). Hue 0° korunur, "uyarı kırmızısı" kimliği kaybolmaz.
443
+ //
444
+ // Skala kademeleri tema-BAĞIMSIZ (`.dark` onları ezmez) → tek sınıf iki temayı
445
+ // birden kapatır ve eski YARI SAYDAM `dark:bg-error/90`ın zemine bağımlılığı
446
+ // ortadan kalkar. Hover koyulaşır (-700, 6.47), açılmaz.
412
447
  destructive: [
413
- "border-transparent bg-error text-white",
414
- "hover:bg-error/90 dark:hover:bg-error/80",
448
+ "border-transparent bg-error-600 text-white",
449
+ "hover:bg-error-700 dark:hover:bg-error-700",
415
450
  "focus-visible:ring-error/30 dark:focus-visible:ring-error/25",
416
- "dark:bg-error/90 dark:text-white dark:shadow-inner dark:shadow-error/10"
451
+ "dark:text-white dark:shadow-inner dark:shadow-error/10"
417
452
  ],
418
453
  success: [
419
454
  "border-transparent bg-success text-success-foreground",
@@ -781,11 +816,20 @@ var buttonVariants = cva(
781
816
  "focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
782
817
  "transition-all duration-200"
783
818
  ],
819
+ // #544: AÇIK tema zaten geçiyordu (`--destructive` light = #e11313, foreground
820
+ // #f8fafc ile 4.66) — #442'nin kuralı gereği DOKUNULMADI, regresyon yüzeyi sıfır.
821
+ // Kırık olan yalnız KOYU temaydı: dark `--destructive` = #ef4343 metin rolü için
822
+ // bilerek açık bırakılmış bir değer (tokens.css:518-526) ve dolgu rolünde
823
+ // foreground'la 3.61 veriyor. Token'a dokunmadan dark dolgusu opak `error`
824
+ // skalasına bağlandı (-600 → 4.62; ölçümle seçilen en açık geçen kademe).
825
+ // Not: `dark:bg-destructive` KALDIRILDI, yanına eklenmedi — iki `dark:bg-*`
826
+ // utility'si aynı anda yazılırsa hangisinin kazanacağını sınıf dizgesi sırası
827
+ // DEĞİL Tailwind'in kendi iç sıralaması belirler.
784
828
  destructive: [
785
829
  "bg-destructive text-destructive-foreground",
786
- "dark:bg-destructive dark:text-destructive-foreground",
787
- "hover:bg-destructive/90 dark:hover:bg-destructive/90",
788
- "active:bg-destructive/80 dark:active:bg-destructive/80",
830
+ "dark:bg-error-600 dark:text-destructive-foreground",
831
+ "hover:bg-destructive/90 dark:hover:bg-error-700",
832
+ "active:bg-destructive/80 dark:active:bg-error-800",
789
833
  "shadow-sm hover:shadow-md",
790
834
  "focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
791
835
  "transition-all duration-200"
@@ -817,9 +861,11 @@ var buttonVariants = cva(
817
861
  ],
818
862
  glow: [
819
863
  "bg-blue-500 text-white",
820
- "shadow-[0_0_30px_rgba(59,130,246,0.5)]",
821
- "hover:shadow-[0_0_40px_rgba(59,130,246,0.7)]",
822
- "active:shadow-[0_0_20px_rgba(59,130,246,0.4)]",
864
+ // #664 S3: rgba(59,130,246,…) → --glow-blue-rgb (tokens.css). Değer AYNI
865
+ // (Tailwind blue-500), yalnız merkezi token'a taşındı — görsel değişiklik yok.
866
+ "shadow-[0_0_30px_rgba(var(--glow-blue-rgb),0.5)]",
867
+ "hover:shadow-[0_0_40px_rgba(var(--glow-blue-rgb),0.7)]",
868
+ "active:shadow-[0_0_20px_rgba(var(--glow-blue-rgb),0.4)]",
823
869
  "hover:bg-blue-600",
824
870
  "focus-visible:ring-blue-500/50",
825
871
  "transition-all duration-300"
@@ -848,8 +894,9 @@ var buttonVariants = cva(
848
894
  "bg-transparent text-green-400",
849
895
  "border-2 border-green-400",
850
896
  "hover:bg-green-400 hover:text-gray-900",
851
- "hover:shadow-[0_0_30px_rgba(74,222,128,0.6)]",
852
- "active:shadow-[0_0_15px_rgba(74,222,128,0.4)]",
897
+ // #664 S3: rgba(74,222,128,…) → --glow-green-rgb (tokens.css), piksel-özdeş.
898
+ "hover:shadow-[0_0_30px_rgba(var(--glow-green-rgb),0.6)]",
899
+ "active:shadow-[0_0_15px_rgba(var(--glow-green-rgb),0.4)]",
853
900
  "focus-visible:ring-green-400/50",
854
901
  "transition-all duration-300"
855
902
  ]
@@ -896,22 +943,40 @@ var Button = React12.forwardRef(
896
943
  rightIcon,
897
944
  children,
898
945
  disabled,
946
+ onClick,
899
947
  ...props
900
948
  }, ref) => {
901
- const Comp = asChild ? "button" : "button";
949
+ const renderAsSlot = asChild && React12.isValidElement(children);
950
+ const Comp = renderAsSlot ? Slot : "button";
951
+ const isDisabled = disabled || loading;
952
+ const disabledProps = renderAsSlot ? {
953
+ "aria-disabled": isDisabled || void 0,
954
+ "data-disabled": isDisabled ? "" : void 0
955
+ } : { disabled: isDisabled };
956
+ const handleClick = renderAsSlot && isDisabled ? (event) => {
957
+ event.preventDefault();
958
+ event.stopPropagation();
959
+ } : onClick;
902
960
  return /* @__PURE__ */ jsxs(
903
961
  Comp,
904
962
  {
905
- className: cn("moonui-theme", buttonVariants({ variant, size, rounded, fullWidth, className })),
963
+ className: cn(
964
+ "moonui-theme",
965
+ buttonVariants({ variant, size, rounded, fullWidth, className }),
966
+ // `:disabled` eşleşmediği için görsel/etkileşimsel devre dışılık Slot
967
+ // dalında açık sınıflarla verilir.
968
+ renderAsSlot && isDisabled && "opacity-50 cursor-not-allowed pointer-events-none"
969
+ ),
906
970
  ref,
907
- disabled: disabled || loading,
971
+ ...disabledProps,
908
972
  "aria-busy": loading || void 0,
909
973
  "data-loading": loading ? "" : void 0,
910
974
  ...props,
975
+ onClick: handleClick,
911
976
  children: [
912
977
  loading && /* @__PURE__ */ jsx(Loader2, { className: "w-4 h-4 animate-spin", "aria-hidden": "true" }),
913
978
  !loading && leftIcon,
914
- children,
979
+ renderAsSlot ? /* @__PURE__ */ jsx(Slottable, { children }) : children,
915
980
  !loading && rightIcon
916
981
  ]
917
982
  }
@@ -1062,16 +1127,16 @@ var skeletonAnimation = {
1062
1127
  }
1063
1128
  };
1064
1129
  var cardVariants = cva(
1065
- "rounded-lg border bg-card text-card-foreground shadow-sm dark:shadow-gray-900/20 dark:border-gray-800 dark:bg-gray-900 dark:text-gray-100 transition-all duration-200",
1130
+ "rounded-lg border border-border bg-card text-card-foreground shadow-sm dark:shadow-black/20 transition-all duration-200",
1066
1131
  {
1067
1132
  variants: {
1068
1133
  variant: {
1069
1134
  default: "",
1070
- outline: "border border-border shadow-none bg-transparent dark:border-gray-700 dark:bg-transparent dark:text-gray-200",
1071
- filled: "border-none bg-secondary dark:bg-gray-800 dark:text-gray-100 dark:shadow-inner dark:shadow-gray-950/10",
1072
- elevated: "border-none shadow-md dark:shadow-lg dark:shadow-gray-900/30 dark:bg-card dark:text-gray-100",
1135
+ outline: "border border-border shadow-none bg-transparent dark:bg-transparent",
1136
+ filled: "border-none bg-secondary dark:bg-muted dark:shadow-inner dark:shadow-black/10",
1137
+ elevated: "border-none shadow-md dark:shadow-lg dark:shadow-black/30 dark:bg-card",
1073
1138
  gradient: "border-none bg-gradient-to-br from-primary/5 to-primary/10 dark:from-primary/10 dark:to-primary/20",
1074
- glass: "border border-white/20 bg-white/10 backdrop-blur-md dark:border-gray-700/30 dark:bg-gray-800/10"
1139
+ glass: "border border-white/20 bg-white/10 backdrop-blur-md dark:border-white/10 dark:bg-black/10"
1075
1140
  },
1076
1141
  size: {
1077
1142
  md: "",
@@ -2273,7 +2338,76 @@ var popoverContentVariants = cva(
2273
2338
  }
2274
2339
  }
2275
2340
  );
2276
- var Popover = PopoverPrimitive.Root;
2341
+ var PopoverModalContext = React12.createContext(false);
2342
+ var POPOVER_TAB_STOP_SELECTOR = "a[href],button,input,select,textarea,[tabindex],audio[controls],video[controls],[contenteditable]";
2343
+ function isPopoverElementHidden(node) {
2344
+ const view = node.ownerDocument.defaultView;
2345
+ if (!view)
2346
+ return false;
2347
+ if (view.getComputedStyle(node).visibility === "hidden")
2348
+ return true;
2349
+ let current = node;
2350
+ while (current) {
2351
+ if (view.getComputedStyle(current).display === "none")
2352
+ return true;
2353
+ current = current.parentElement;
2354
+ }
2355
+ return false;
2356
+ }
2357
+ function isPopoverTabStop(node) {
2358
+ if (node.hasAttribute("data-radix-focus-guard"))
2359
+ return false;
2360
+ if (node.tabIndex < 0)
2361
+ return false;
2362
+ if (node.disabled)
2363
+ return false;
2364
+ if (node.hidden)
2365
+ return false;
2366
+ if (node.getAttribute("aria-hidden") === "true")
2367
+ return false;
2368
+ if (node.closest("[inert]"))
2369
+ return false;
2370
+ return !isPopoverElementHidden(node);
2371
+ }
2372
+ function getPopoverTabStopsWithin(container) {
2373
+ return Array.from(
2374
+ container.querySelectorAll(POPOVER_TAB_STOP_SELECTOR)
2375
+ ).filter(isPopoverTabStop);
2376
+ }
2377
+ function getPopoverTrigger(content) {
2378
+ if (!content.id)
2379
+ return null;
2380
+ const id = typeof CSS !== "undefined" && typeof CSS.escape === "function" ? CSS.escape(content.id) : content.id;
2381
+ return content.ownerDocument.querySelector(
2382
+ `[aria-controls="${id}"]`
2383
+ );
2384
+ }
2385
+ function getPopoverTabStopOutside(reference, content, direction) {
2386
+ const candidates = Array.from(
2387
+ content.ownerDocument.querySelectorAll(
2388
+ POPOVER_TAB_STOP_SELECTOR
2389
+ )
2390
+ ).filter((node) => !content.contains(node) && isPopoverTabStop(node));
2391
+ if (direction === "next") {
2392
+ return candidates.find(
2393
+ (node) => Boolean(
2394
+ reference.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_FOLLOWING
2395
+ )
2396
+ ) ?? null;
2397
+ }
2398
+ let previous = null;
2399
+ for (const node of candidates) {
2400
+ const relation = reference.compareDocumentPosition(node);
2401
+ if (node === reference || relation & Node.DOCUMENT_POSITION_PRECEDING) {
2402
+ previous = node;
2403
+ } else {
2404
+ break;
2405
+ }
2406
+ }
2407
+ return previous;
2408
+ }
2409
+ var Popover = ({ modal = false, children, ...props }) => /* @__PURE__ */ jsx(PopoverModalContext.Provider, { value: modal, children: /* @__PURE__ */ jsx(PopoverPrimitive.Root, { ...props, modal, children }) });
2410
+ Popover.displayName = "Popover";
2277
2411
  var PopoverTrigger = PopoverPrimitive.Trigger;
2278
2412
  var PopoverAnchor = PopoverPrimitive.Anchor;
2279
2413
  var PopoverContent = React12.forwardRef(({
@@ -2288,42 +2422,79 @@ var PopoverContent = React12.forwardRef(({
2288
2422
  closeOnInteractOutside = true,
2289
2423
  overlayBackdrop = false,
2290
2424
  sideOffset = 4,
2425
+ onKeyDown,
2291
2426
  ...props
2292
- }, ref) => /* @__PURE__ */ jsxs(Fragment, { children: [
2293
- overlayBackdrop && /* @__PURE__ */ jsx(
2294
- "div",
2295
- {
2296
- className: "fixed inset-0 z-40 bg-black/50"
2297
- }
2298
- ),
2299
- /* @__PURE__ */ jsx(
2300
- PopoverPrimitive.Content,
2301
- {
2302
- ref,
2303
- side,
2304
- sideOffset,
2305
- collisionPadding: 8,
2306
- onInteractOutside: (e) => {
2307
- if (!closeOnInteractOutside) {
2308
- e.preventDefault();
2309
- }
2310
- },
2311
- className: cn(
2312
- popoverContentVariants({
2313
- variant,
2314
- size,
2315
- side,
2316
- position,
2317
- radius,
2318
- shadow
2319
- }),
2320
- backdrop && "backdrop-blur-md bg-opacity-80",
2321
- className
2322
- ),
2323
- ...props
2427
+ }, ref) => {
2428
+ const isModal = React12.useContext(PopoverModalContext);
2429
+ const handleKeyDown = (event) => {
2430
+ onKeyDown?.(event);
2431
+ if (event.defaultPrevented)
2432
+ return;
2433
+ if (isModal)
2434
+ return;
2435
+ if (event.key !== "Tab")
2436
+ return;
2437
+ if (event.altKey || event.ctrlKey || event.metaKey)
2438
+ return;
2439
+ const content = event.currentTarget;
2440
+ const active = content.ownerDocument.activeElement;
2441
+ if (!active || active !== content && !content.contains(active))
2442
+ return;
2443
+ const tabStops = getPopoverTabStopsWithin(content);
2444
+ const forward = !event.shiftKey;
2445
+ const atEdge = tabStops.length === 0 ? active === content : active === (forward ? tabStops[tabStops.length - 1] : tabStops[0]);
2446
+ if (!atEdge)
2447
+ return;
2448
+ const reference = getPopoverTrigger(content) ?? content;
2449
+ const target = getPopoverTabStopOutside(
2450
+ reference,
2451
+ content,
2452
+ forward ? "next" : "previous"
2453
+ );
2454
+ event.preventDefault();
2455
+ if (target) {
2456
+ target.focus();
2457
+ } else {
2458
+ active.blur();
2324
2459
  }
2325
- )
2326
- ] }));
2460
+ };
2461
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
2462
+ overlayBackdrop && /* @__PURE__ */ jsx(
2463
+ "div",
2464
+ {
2465
+ className: "fixed inset-0 z-40 bg-black/50"
2466
+ }
2467
+ ),
2468
+ /* @__PURE__ */ jsx(
2469
+ PopoverPrimitive.Content,
2470
+ {
2471
+ ref,
2472
+ side,
2473
+ sideOffset,
2474
+ collisionPadding: 8,
2475
+ onInteractOutside: (e) => {
2476
+ if (!closeOnInteractOutside) {
2477
+ e.preventDefault();
2478
+ }
2479
+ },
2480
+ onKeyDown: handleKeyDown,
2481
+ className: cn(
2482
+ popoverContentVariants({
2483
+ variant,
2484
+ size,
2485
+ side,
2486
+ position,
2487
+ radius,
2488
+ shadow
2489
+ }),
2490
+ backdrop && "backdrop-blur-md bg-opacity-80",
2491
+ className
2492
+ ),
2493
+ ...props
2494
+ }
2495
+ )
2496
+ ] });
2497
+ });
2327
2498
  PopoverContent.displayName = PopoverPrimitive.Content.displayName;
2328
2499
  var PopoverClose = PopoverPrimitive.Close;
2329
2500
  var PopoverSeparator = ({ className, ...props }) => /* @__PURE__ */ jsx(
@@ -2415,7 +2586,22 @@ var tabsTriggerVariants = cva(
2415
2586
  variant: {
2416
2587
  default: "rounded-md data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm dark:data-[state=active]:bg-gray-900 dark:data-[state=active]:text-gray-100 dark:data-[state=active]:shadow-gray-950/10",
2417
2588
  underline: "rounded-none border-b-2 border-transparent pb-2 data-[state=active]:border-primary data-[state=active]:bg-transparent data-[state=active]:text-foreground dark:data-[state=active]:border-primary/80 dark:data-[state=active]:text-gray-100",
2418
- pills: "rounded-lg bg-gray-100 hover:bg-gray-200/80 border border-gray-300 data-[state=active]:bg-primary data-[state=active]:text-primary-foreground data-[state=active]:border-primary dark:bg-gray-800 dark:hover:bg-gray-700 dark:border-gray-700 dark:data-[state=active]:bg-primary/90 dark:data-[state=active]:text-white dark:data-[state=active]:border-primary",
2589
+ // #646: `dark:data-[state=active]:text-white` KALDIRILDI. `--primary` koyu
2590
+ // temada BİLİNÇLİ near-white'tır (tokens.css:500, #368 kararı — DEĞİŞMEZ),
2591
+ // dolayısıyla aktif pill'e açıkça beyaz metin yazmak beyaz-üstüne-beyaz
2592
+ // demekti: ölçülen 1.28:1 (gerçek tarayıcı, /docs/components/tabs, koyu tema).
2593
+ // Sınıf kalkınca öneksiz `data-[state=active]:text-primary-foreground`
2594
+ // (koyu temada near-black) devreye girer → 15.91:1. Açık temada hiçbir
2595
+ // değişiklik yok (`dark:` sınıfı orada zaten uygulanmıyordu; ölçülen 4.70:1).
2596
+ //
2597
+ // ⚠️ `dark:data-[state=active]:bg-primary/90` BİLEREK KORUNDU: onu da
2598
+ // kaldırmak #545'in "ihlal takası" tuzağına düşürüyor. Aynı varyanttaki
2599
+ // `dark:bg-gray-800` (inaktif zemin) ile `data-[state=active]:bg-primary`
2600
+ // ÖZGÜLLÜKÇE EŞİT (0,2,0); kaynak sırası nedeniyle `dark:bg-gray-800`
2601
+ // kazanıyor ve aktif pill koyu temada inaktif görünüyordu — near-black metin
2602
+ // gray-800 üstünde 1.41:1 ile YENİ bir ihlal (ölçüldü). Koyu temada aktif
2603
+ // durumun zemini bu yüzden `dark:` özgüllüğünde kalmak ZORUNDA.
2604
+ pills: "rounded-lg bg-gray-100 hover:bg-gray-200/80 border border-gray-300 data-[state=active]:bg-primary data-[state=active]:text-primary-foreground data-[state=active]:border-primary dark:bg-gray-800 dark:hover:bg-gray-700 dark:border-gray-700 dark:data-[state=active]:bg-primary/90 dark:data-[state=active]:border-primary",
2419
2605
  cards: "rounded-md bg-muted/50 hover:bg-muted data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-md dark:bg-gray-800/50 dark:hover:bg-gray-700/50 dark:data-[state=active]:bg-gray-900 dark:data-[state=active]:text-gray-100 dark:data-[state=active]:shadow-gray-950/20",
2420
2606
  minimal: "rounded-sm bg-transparent hover:bg-muted/30 data-[state=active]:bg-transparent data-[state=active]:text-foreground data-[state=active]:underline data-[state=active]:underline-offset-4 dark:hover:bg-gray-800/30 dark:data-[state=active]:text-gray-200"
2421
2607
  },
@@ -4798,7 +4984,61 @@ function DraggableList({
4798
4984
  keyExtractor(item)
4799
4985
  )) });
4800
4986
  }
4801
- var DropdownMenu = DropdownMenuPrimitive.Root;
4987
+ var DropdownMenuCloseContext = React12.createContext(null);
4988
+ var DropdownMenu = ({
4989
+ open,
4990
+ defaultOpen,
4991
+ onOpenChange,
4992
+ children,
4993
+ ...props
4994
+ }) => {
4995
+ const [uncontrolledOpen, setUncontrolledOpen] = React12.useState(
4996
+ defaultOpen ?? false
4997
+ );
4998
+ const isControlled = open !== void 0;
4999
+ const currentOpen = isControlled ? open : uncontrolledOpen;
5000
+ const handleOpenChange = React12.useCallback(
5001
+ (nextOpen) => {
5002
+ if (!isControlled)
5003
+ setUncontrolledOpen(nextOpen);
5004
+ onOpenChange?.(nextOpen);
5005
+ },
5006
+ [isControlled, onOpenChange]
5007
+ );
5008
+ const close = React12.useCallback(() => handleOpenChange(false), [
5009
+ handleOpenChange
5010
+ ]);
5011
+ return /* @__PURE__ */ jsx(DropdownMenuCloseContext.Provider, { value: close, children: /* @__PURE__ */ jsx(
5012
+ DropdownMenuPrimitive.Root,
5013
+ {
5014
+ ...props,
5015
+ open: currentOpen,
5016
+ onOpenChange: handleOpenChange,
5017
+ children
5018
+ }
5019
+ ) });
5020
+ };
5021
+ DropdownMenu.displayName = "DropdownMenu";
5022
+ function useDropdownMenuTabDismiss(onKeyDown) {
5023
+ const close = React12.useContext(DropdownMenuCloseContext);
5024
+ return (event) => {
5025
+ onKeyDown?.(event);
5026
+ if (event.defaultPrevented)
5027
+ return;
5028
+ if (event.key !== "Tab")
5029
+ return;
5030
+ if (event.altKey || event.ctrlKey || event.metaKey)
5031
+ return;
5032
+ if (!close)
5033
+ return;
5034
+ const target = event.target;
5035
+ if (target?.closest("[data-radix-menu-content]") !== event.currentTarget) {
5036
+ return;
5037
+ }
5038
+ event.preventDefault();
5039
+ close();
5040
+ };
5041
+ }
4802
5042
  var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
4803
5043
  var DropdownMenuGroup = DropdownMenuPrimitive.Group;
4804
5044
  var DropdownMenuPortal = DropdownMenuPrimitive.Portal;
@@ -4821,30 +5061,38 @@ var DropdownMenuSubTrigger = React12.forwardRef(({ className, inset, children, .
4821
5061
  }
4822
5062
  ));
4823
5063
  DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
4824
- var DropdownMenuSubContent = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
4825
- DropdownMenuPrimitive.SubContent,
4826
- {
4827
- ref,
4828
- className: cn(
4829
- "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
4830
- className
4831
- ),
4832
- ...props
4833
- }
4834
- ));
5064
+ var DropdownMenuSubContent = React12.forwardRef(({ className, onKeyDown, ...props }, ref) => {
5065
+ const handleKeyDown = useDropdownMenuTabDismiss(onKeyDown);
5066
+ return /* @__PURE__ */ jsx(
5067
+ DropdownMenuPrimitive.SubContent,
5068
+ {
5069
+ ref,
5070
+ onKeyDown: handleKeyDown,
5071
+ className: cn(
5072
+ "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
5073
+ className
5074
+ ),
5075
+ ...props
5076
+ }
5077
+ );
5078
+ });
4835
5079
  DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
4836
- var DropdownMenuContent = React12.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(
4837
- DropdownMenuPrimitive.Content,
4838
- {
4839
- ref,
4840
- sideOffset,
4841
- className: cn(
4842
- "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
4843
- className
4844
- ),
4845
- ...props
4846
- }
4847
- ) }));
5080
+ var DropdownMenuContent = React12.forwardRef(({ className, sideOffset = 4, onKeyDown, ...props }, ref) => {
5081
+ const handleKeyDown = useDropdownMenuTabDismiss(onKeyDown);
5082
+ return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(
5083
+ DropdownMenuPrimitive.Content,
5084
+ {
5085
+ ref,
5086
+ sideOffset,
5087
+ onKeyDown: handleKeyDown,
5088
+ className: cn(
5089
+ "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
5090
+ className
5091
+ ),
5092
+ ...props
5093
+ }
5094
+ ) });
5095
+ });
4848
5096
  DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
4849
5097
  var DropdownMenuItem = React12.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
4850
5098
  DropdownMenuPrimitive.Item,
@@ -5328,6 +5576,10 @@ var FileUpload = React12__default.forwardRef(
5328
5576
  {
5329
5577
  className: cn(
5330
5578
  "relative border-2 border-dashed rounded-lg p-8 text-center transition-colors",
5579
+ // #661-2: dosya girdisi `opacity-0` ile tum alani kapliyor; klavyeyle
5580
+ // Tab'landiginda HICBIR gorsel iz yoktu (WCAG 2.4.7). Odak halkasi
5581
+ // sarmalayiciya `focus-within` ile bagli — kutunun kendisi odaklanamaz.
5582
+ "focus-within:outline-none focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-2",
5331
5583
  isDragOver && "border-primary bg-primary/5",
5332
5584
  disabled && "opacity-50 cursor-not-allowed",
5333
5585
  !disabled && "hover:border-primary/50 cursor-pointer"
@@ -6243,7 +6495,7 @@ var selectTriggerVariants = cva(
6243
6495
  );
6244
6496
  var SelectTrigger = React12.forwardRef(({ className, children, variant, size, error, success, loading, leftIcon, rightIcon, ...props }, ref) => {
6245
6497
  const icerikId = React12.useId();
6246
- const adVerilmis = props["aria-label"] != null || props["aria-labelledby"] != null;
6498
+ const isNamed = props["aria-label"] != null || props["aria-labelledby"] != null;
6247
6499
  return /* @__PURE__ */ jsxs(
6248
6500
  SelectPrimitive.Trigger,
6249
6501
  {
@@ -6262,7 +6514,7 @@ var SelectTrigger = React12.forwardRef(({ className, children, variant, size, er
6262
6514
  "data-error": error ? true : void 0,
6263
6515
  "data-success": success ? true : void 0,
6264
6516
  "data-loading": loading ? true : void 0,
6265
- "aria-labelledby": adVerilmis ? props["aria-labelledby"] : icerikId,
6517
+ "aria-labelledby": isNamed ? props["aria-labelledby"] : icerikId,
6266
6518
  children: [
6267
6519
  /* @__PURE__ */ jsxs("div", { id: icerikId, className: "flex items-center flex-1 gap-2", children: [
6268
6520
  leftIcon && /* @__PURE__ */ jsx("span", { className: "flex items-center justify-center text-muted-foreground", children: leftIcon }),
@@ -6370,8 +6622,8 @@ var SelectItem = React12.forwardRef(({ className, children, variant = "default",
6370
6622
  variant === "default" && "focus:bg-accent focus:text-accent-foreground dark:focus:bg-gray-700 dark:focus:text-gray-100",
6371
6623
  variant === "subtle" && "focus:bg-gray-100 dark:focus:bg-gray-800 focus:text-foreground dark:focus:text-gray-200",
6372
6624
  variant === "destructive" && "text-error dark:text-red-400 focus:bg-error/10 dark:focus:bg-red-900/20 focus:text-error dark:focus:text-red-300",
6373
- variant === "success" && "text-success dark:text-green-400 focus:bg-success/10 dark:focus:bg-green-900/20 focus:text-success dark:focus:text-green-300",
6374
- variant === "warning" && "text-warning dark:text-yellow-400 focus:bg-warning/10 dark:focus:bg-yellow-900/20 focus:text-warning dark:focus:text-yellow-300",
6625
+ variant === "success" && "text-success focus:bg-success/10 focus:text-success",
6626
+ variant === "warning" && "text-warning-700 dark:text-warning-500 focus:bg-warning/10 focus:text-warning-700 dark:focus:text-warning-500",
6375
6627
  className
6376
6628
  ),
6377
6629
  ...props,
@@ -7144,8 +7396,100 @@ var tooltipVariants = cva(
7144
7396
  }
7145
7397
  }
7146
7398
  );
7147
- var Tooltip = TooltipPrimitive.Root;
7148
- var TooltipTrigger = TooltipPrimitive.Trigger;
7399
+ var TooltipFocusHoldContext = React12.createContext(null);
7400
+ function isKeyboardFocus(element) {
7401
+ if (!element)
7402
+ return false;
7403
+ try {
7404
+ return element.matches(":focus-visible");
7405
+ } catch {
7406
+ return true;
7407
+ }
7408
+ }
7409
+ var Tooltip = ({
7410
+ open,
7411
+ defaultOpen,
7412
+ onOpenChange,
7413
+ children,
7414
+ ...props
7415
+ }) => {
7416
+ const isControlled = open !== void 0;
7417
+ const [uncontrolledOpen, setUncontrolledOpen] = React12.useState(defaultOpen ?? false);
7418
+ const resolvedOpen = isControlled ? open : uncontrolledOpen;
7419
+ const isFocusHeldRef = React12.useRef(false);
7420
+ const hold = React12.useCallback(() => {
7421
+ isFocusHeldRef.current = true;
7422
+ }, []);
7423
+ const release = React12.useCallback(() => {
7424
+ isFocusHeldRef.current = false;
7425
+ }, []);
7426
+ const setOpen = React12.useCallback(
7427
+ (next) => {
7428
+ if (!isControlled)
7429
+ setUncontrolledOpen(next);
7430
+ onOpenChange?.(next);
7431
+ },
7432
+ [isControlled, onOpenChange]
7433
+ );
7434
+ const handleOpenChange = React12.useCallback(
7435
+ (next) => {
7436
+ if (!next && isFocusHeldRef.current)
7437
+ return;
7438
+ setOpen(next);
7439
+ },
7440
+ [setOpen]
7441
+ );
7442
+ React12.useEffect(() => {
7443
+ if (!resolvedOpen)
7444
+ return;
7445
+ const handleEscape = (event) => {
7446
+ if (event.key !== "Escape")
7447
+ return;
7448
+ isFocusHeldRef.current = false;
7449
+ setOpen(false);
7450
+ };
7451
+ document.addEventListener("keydown", handleEscape, true);
7452
+ return () => document.removeEventListener("keydown", handleEscape, true);
7453
+ }, [resolvedOpen, setOpen]);
7454
+ const focusHold = React12.useMemo(
7455
+ () => ({ hold, release }),
7456
+ [hold, release]
7457
+ );
7458
+ return /* @__PURE__ */ jsx(TooltipFocusHoldContext.Provider, { value: focusHold, children: /* @__PURE__ */ jsx(
7459
+ TooltipPrimitive.Root,
7460
+ {
7461
+ ...props,
7462
+ open: resolvedOpen,
7463
+ onOpenChange: handleOpenChange,
7464
+ children
7465
+ }
7466
+ ) });
7467
+ };
7468
+ Tooltip.displayName = "Tooltip";
7469
+ var TooltipTrigger = React12.forwardRef(({ onFocus, onBlur, onPointerDown, ...props }, ref) => {
7470
+ const focusHold = React12.useContext(TooltipFocusHoldContext);
7471
+ return /* @__PURE__ */ jsx(
7472
+ TooltipPrimitive.Trigger,
7473
+ {
7474
+ ref,
7475
+ ...props,
7476
+ onFocus: (event) => {
7477
+ if (isKeyboardFocus(event.currentTarget))
7478
+ focusHold?.hold();
7479
+ onFocus?.(event);
7480
+ },
7481
+ onBlur: (event) => {
7482
+ focusHold?.release();
7483
+ onBlur?.(event);
7484
+ },
7485
+ onPointerDown: (event) => {
7486
+ focusHold?.release();
7487
+ onPointerDown?.(event);
7488
+ }
7489
+ }
7490
+ );
7491
+ });
7492
+ TooltipTrigger.displayName = TooltipPrimitive.Trigger.displayName;
7149
7493
  var TooltipArrow = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
7150
7494
  TooltipPrimitive.Arrow,
7151
7495
  {
@@ -8524,7 +8868,7 @@ var Textarea = React12.forwardRef(
8524
8868
  children: errorMessage || successMessage
8525
8869
  }
8526
8870
  ),
8527
- showCharCount && /* @__PURE__ */ jsxs("p", { className: "text-xs text-muted-foreground dark:text-gray-500 ml-auto", children: [
8871
+ showCharCount && /* @__PURE__ */ jsxs("p", { className: "text-xs text-muted-foreground ml-auto", children: [
8528
8872
  currentLength,
8529
8873
  maxLength !== void 0 && ` / ${maxLength}`
8530
8874
  ] })
@@ -8871,6 +9215,12 @@ var Rating = React12.forwardRef(
8871
9215
  },
8872
9216
  [readOnly, max, currentValue, step, commit]
8873
9217
  );
9218
+ const reactId = React12.useId();
9219
+ const optionId = React12.useCallback(
9220
+ (optionValue) => `${reactId}-option-${String(optionValue).replace(".", "-")}`,
9221
+ [reactId]
9222
+ );
9223
+ const activeValue = currentValue >= step && currentValue <= max ? currentValue : step;
8874
9224
  const renderIcon = (filled) => {
8875
9225
  if (React12.isValidElement(icon)) {
8876
9226
  const element = icon;
@@ -8900,6 +9250,7 @@ var Rating = React12.forwardRef(
8900
9250
  "aria-label": ariaLabel,
8901
9251
  "aria-orientation": "horizontal",
8902
9252
  "aria-readonly": readOnly || void 0,
9253
+ "aria-activedescendant": readOnly ? void 0 : optionId(activeValue),
8903
9254
  tabIndex: readOnly ? void 0 : 0,
8904
9255
  onKeyDown: handleKeyDown,
8905
9256
  onMouseLeave: () => setHoverValue(null),
@@ -8922,7 +9273,7 @@ var Rating = React12.forwardRef(
8922
9273
  "span",
8923
9274
  {
8924
9275
  "aria-hidden": "true",
8925
- className: "pointer-events-none absolute left-0 top-0 h-full overflow-hidden text-amber-400",
9276
+ className: "pointer-events-none absolute left-0 top-0 h-full overflow-hidden text-[rgb(var(--rating-star-rgb))]",
8926
9277
  style: { width: `${fraction * 100}%` },
8927
9278
  children: renderIcon(true)
8928
9279
  }
@@ -8933,6 +9284,7 @@ var Rating = React12.forwardRef(
8933
9284
  {
8934
9285
  type: "button",
8935
9286
  role: "radio",
9287
+ id: optionId(halfValue),
8936
9288
  "aria-checked": currentValue === halfValue,
8937
9289
  "aria-label": `${halfValue} stars`,
8938
9290
  tabIndex: -1,
@@ -8946,6 +9298,7 @@ var Rating = React12.forwardRef(
8946
9298
  {
8947
9299
  type: "button",
8948
9300
  role: "radio",
9301
+ id: optionId(starValue),
8949
9302
  "aria-checked": currentValue === starValue,
8950
9303
  "aria-label": `${starValue} stars`,
8951
9304
  tabIndex: -1,
@@ -8960,6 +9313,7 @@ var Rating = React12.forwardRef(
8960
9313
  {
8961
9314
  type: "button",
8962
9315
  role: "radio",
9316
+ id: optionId(starValue),
8963
9317
  "aria-checked": currentValue === starValue,
8964
9318
  "aria-label": `${starValue} ${starValue === 1 ? "star" : "stars"}`,
8965
9319
  tabIndex: -1,
@@ -9157,6 +9511,6 @@ var ToggleGroupItem = React12.forwardRef(({ className, children, variant, size,
9157
9511
  });
9158
9512
  ToggleGroupItem.displayName = "ToggleGroupItem";
9159
9513
 
9160
- export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertTitle, AspectRatio, Avatar, AvatarFallback, AvatarGroup, AvatarImage, Badge, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, Card, CardCVCInput, CardContent, CardDescription, CardExpiryInput, CardFooter, CardHeader, CardNumberInput, CardTitle, CardZipInput, Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, Checkbox, CheckboxGroup, CheckboxLabel, CheckboxWithLabel, Collapsible, CollapsibleContent, CollapsibleTrigger, ColorPicker, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, DatePicker, DateRangePicker, DateTimePicker, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogForm, DialogHeader, DialogTitle, DialogTrigger, DraggableList, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, FileUpload, FreeBadge, GestureDrawer, GitHubStarButton, GitHubStars, GradientPicker, Input, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Kbd, Label, LockedComponent, MonthPicker, MoonLogo, MoonLogoAnimated, MoonLogoIcon, Accordion as MoonUIAccordion, AccordionContent as MoonUIAccordionContent, AccordionItem as MoonUIAccordionItem, AccordionTrigger as MoonUIAccordionTrigger, Alert as MoonUIAlert, AlertDescription as MoonUIAlertDescription, AlertTitle as MoonUIAlertTitle, AspectRatio as MoonUIAspectRatio, Avatar as MoonUIAvatar, AvatarFallback as MoonUIAvatarFallback, AvatarGroup as MoonUIAvatarGroup, AvatarImage as MoonUIAvatarImage, Badge as MoonUIBadge, Breadcrumb as MoonUIBreadcrumb, BreadcrumbEllipsis as MoonUIBreadcrumbEllipsis, BreadcrumbItem as MoonUIBreadcrumbItem, BreadcrumbLink as MoonUIBreadcrumbLink, BreadcrumbList as MoonUIBreadcrumbList, BreadcrumbPage as MoonUIBreadcrumbPage, BreadcrumbSeparator as MoonUIBreadcrumbSeparator, Button as MoonUIButton, ButtonGroup as MoonUIButtonGroup, Calendar as MoonUICalendar, Card as MoonUICard, CardCVCInput as MoonUICardCVCInput, CardContent as MoonUICardContent, CardDescription as MoonUICardDescription, CardExpiryInput as MoonUICardExpiryInput, CardFooter as MoonUICardFooter, CardHeader as MoonUICardHeader, CardNumberInput as MoonUICardNumberInput, CardTitle as MoonUICardTitle, CardZipInput as MoonUICardZipInput, Carousel as MoonUICarousel, CarouselContent as MoonUICarouselContent, CarouselItem as MoonUICarouselItem, CarouselNext as MoonUICarouselNext, CarouselPrevious as MoonUICarouselPrevious, Checkbox as MoonUICheckbox, CheckboxGroup as MoonUICheckboxGroup, CheckboxLabel as MoonUICheckboxLabel, CheckboxWithLabel as MoonUICheckboxWithLabel, Collapsible as MoonUICollapsible, CollapsibleContent as MoonUICollapsibleContent, CollapsibleTrigger as MoonUICollapsibleTrigger, ColorPicker as MoonUIColorPicker, Command as MoonUICommand, CommandDialog as MoonUICommandDialog, CommandEmpty as MoonUICommandEmpty, CommandGroup as MoonUICommandGroup, CommandInput as MoonUICommandInput, CommandItem as MoonUICommandItem, CommandList as MoonUICommandList, CommandSeparator as MoonUICommandSeparator, CommandShortcut as MoonUICommandShortcut, DataTableBasic as MoonUIDataTableBasic, DatePicker as MoonUIDatePicker, DateRangePicker as MoonUIDateRangePicker, DateTimePicker as MoonUIDateTimePicker, Dialog as MoonUIDialog, DialogClose as MoonUIDialogClose, DialogContent as MoonUIDialogContent, DialogDescription as MoonUIDialogDescription, DialogFooter as MoonUIDialogFooter, DialogForm as MoonUIDialogForm, DialogHeader as MoonUIDialogHeader, DialogTitle as MoonUIDialogTitle, DialogTrigger as MoonUIDialogTrigger, DraggableList as MoonUIDraggableList, DropdownMenu as MoonUIDropdownMenu, DropdownMenuCheckboxItem as MoonUIDropdownMenuCheckboxItem, DropdownMenuContent as MoonUIDropdownMenuContent, DropdownMenuGroup as MoonUIDropdownMenuGroup, DropdownMenuItem as MoonUIDropdownMenuItem, DropdownMenuLabel as MoonUIDropdownMenuLabel, DropdownMenuPortal as MoonUIDropdownMenuPortal, DropdownMenuRadioGroup as MoonUIDropdownMenuRadioGroup, DropdownMenuRadioItem as MoonUIDropdownMenuRadioItem, DropdownMenuSeparator as MoonUIDropdownMenuSeparator, DropdownMenuShortcut as MoonUIDropdownMenuShortcut, DropdownMenuSub as MoonUIDropdownMenuSub, DropdownMenuSubContent as MoonUIDropdownMenuSubContent, DropdownMenuSubTrigger as MoonUIDropdownMenuSubTrigger, DropdownMenuTrigger as MoonUIDropdownMenuTrigger, FileUpload as MoonUIFileUpload, FreeBadge as MoonUIFreeBadge, GestureDrawer as MoonUIGestureDrawer, GitHubStars as MoonUIGitHubStars, GradientPicker as MoonUIGradientPicker, Input as MoonUIInput, InputOTP as MoonUIInputOTP, InputOTPGroup as MoonUIInputOTPGroup, InputOTPSeparator as MoonUIInputOTPSeparator, InputOTPSlot as MoonUIInputOTPSlot, Kbd as MoonUIKbd, Label as MoonUILabel, LockedComponent as MoonUILockedComponent, MonthPicker as MoonUIMonthPicker, MoonLogo as MoonUIMoonLogo, Pagination as MoonUIPagination, PaginationContent as MoonUIPaginationContent, PaginationEllipsis as MoonUIPaginationEllipsis, PaginationItem as MoonUIPaginationItem, PaginationLink as MoonUIPaginationLink, PaginationNext as MoonUIPaginationNext, PaginationPrevious as MoonUIPaginationPrevious, PhoneInput as MoonUIPhoneInput, Popover as MoonUIPopover, PopoverAnchor as MoonUIPopoverAnchor, PopoverClose as MoonUIPopoverClose, PopoverContent as MoonUIPopoverContent, PopoverFooter as MoonUIPopoverFooter, PopoverHeader as MoonUIPopoverHeader, PopoverSeparator as MoonUIPopoverSeparator, PopoverTrigger as MoonUIPopoverTrigger, ProBadge as MoonUIProBadge, ProComponentWrapper as MoonUIProComponentWrapper, Progress as MoonUIProgress, RadioGroup2 as MoonUIRadioGroup, RadioGroupItem as MoonUIRadioGroupItem, RadioItemWithLabel as MoonUIRadioItemWithLabel, RadioLabel as MoonUIRadioLabel, Rating as MoonUIRating, RichTextEditor as MoonUIRichTextEditor, ScrollArea as MoonUIScrollArea, ScrollBar as MoonUIScrollBar, ScrollReveal as MoonUIScrollReveal, ScrollRevealContainer as MoonUIScrollRevealContainer, ScrollRevealItem as MoonUIScrollRevealItem, Select as MoonUISelect, SelectContent as MoonUISelectContent, SelectGroup as MoonUISelectGroup, SelectItem as MoonUISelectItem, SelectLabel as MoonUISelectLabel, SelectScrollDownButton as MoonUISelectScrollDownButton, SelectScrollUpButton as MoonUISelectScrollUpButton, SelectSeparator as MoonUISelectSeparator, SelectTrigger as MoonUISelectTrigger, SelectValue as MoonUISelectValue, Separator3 as MoonUISeparator, SimpleColorPicker as MoonUISimpleColorPicker, SimpleEditor as MoonUISimpleEditor, SimpleTooltip as MoonUISimpleTooltip, Skeleton as MoonUISkeleton, SkeletonAvatar as MoonUISkeletonAvatar, SkeletonCard as MoonUISkeletonCard, SkeletonText as MoonUISkeletonText, Slider as MoonUISlider, Spinner as MoonUISpinner, SwipeableCard as MoonUISwipeableCard, Switch as MoonUISwitch, Table as MoonUITable, TableBody as MoonUITableBody, TableCaption as MoonUITableCaption, TableCell as MoonUITableCell, TableFooter as MoonUITableFooter, TableHead as MoonUITableHead, TableHeader as MoonUITableHeader, TableRow as MoonUITableRow, Tabs as MoonUITabs, TabsContent as MoonUITabsContent, TabsList as MoonUITabsList, TabsTrigger as MoonUITabsTrigger, TagsInput as MoonUITagsInput, Textarea as MoonUITextarea, Toast as MoonUIToast, ToastAction as MoonUIToastAction, ToastClose as MoonUIToastClose, ToastDescription as MoonUIToastDescription, ToastProvider as MoonUIToastProvider, ToastTitle as MoonUIToastTitle, ToastViewport as MoonUIToastViewport, Toaster as MoonUIToaster, Toggle as MoonUIToggle, ToggleGroup as MoonUIToggleGroup, ToggleGroupItem as MoonUIToggleGroupItem, Tooltip as MoonUITooltip, TooltipArrow as MoonUITooltipArrow, TooltipContent as MoonUITooltipContent, TooltipProvider as MoonUITooltipProvider, TooltipTrigger as MoonUITooltipTrigger, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PhoneInput, Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverFooter, PopoverHeader, PopoverSeparator, PopoverTrigger, ProBadge, ProComponentWrapper, Progress, RadioGroup2 as RadioGroup, RadioGroupItem, RadioItemWithLabel, RadioLabel, Rating, RichTextEditor, ScrollArea, ScrollBar, ScrollReveal, ScrollRevealContainer, ScrollRevealItem, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator3 as Separator, SimpleColorPicker, SimpleEditor, SimpleTooltip, Skeleton, SkeletonAvatar, SkeletonCard, SkeletonText, Slider, Spinner, SwipeableCard, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TagsInput, Textarea, Toast, ToastAction, ToastClose, ToastDescription, ToastProvider, ToastTitle, ToastViewport, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipArrow, TooltipContent, TooltipProvider, TooltipTrigger, aspectRatioVariants, badgeVariants, breadcrumbVariants, buttonGroupVariants, buttonVariants, cardVariants, carouselContentVariants, carouselItemVariants, cn, collapsibleContentVariants, collapsibleTriggerVariants, inputOTPSlotVariants, kbdVariants, badgeVariants as moonUIBadgeVariants, buttonGroupVariants as moonUIButtonGroupVariants, buttonVariants as moonUIButtonVariants, carouselContentVariants as moonUICarouselContentVariants, carouselItemVariants as moonUICarouselItemVariants, createSortableHeader as moonUICreateSortableHeader, inputOTPSlotVariants as moonUIInputOTPSlotVariants, kbdVariants as moonUIKbdVariants, popoverContentVariants as moonUIPopoverContentVariants, ratingVariants as moonUIRatingVariants, skeletonVariants as moonUISkeletonVariants, spinnerVariants as moonUISpinnerVariants, toggleVariants as moonUIToggleVariants, tooltipVariants as moonUITooltipVariants, popoverContentVariants, progressVariants, ratingVariants, separatorVariants, skeletonVariants, spinnerVariants, switchVariants, tabsListVariants, tabsTriggerVariants, toast, toggleVariants, tooltipVariants, useCarousel, useToast };
9514
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertTitle, AspectRatio, Avatar, AvatarFallback, AvatarGroup, AvatarImage, Badge, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, Card, CardCVCInput, CardContent, CardDescription, CardExpiryInput, CardFooter, CardHeader, CardNumberInput, CardTitle, CardZipInput, Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, Checkbox, CheckboxGroup, CheckboxLabel, CheckboxWithLabel, Collapsible, CollapsibleContent, CollapsibleTrigger, ColorPicker, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, DatePicker, DateRangePicker, DateTimePicker, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogForm, DialogHeader, DialogTitle, DialogTrigger, DraggableList, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, FileUpload, FreeBadge, GestureDrawer, GitHubStarButton, GitHubStars, GradientPicker, Input, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Kbd, Label, LockedComponent, MonthPicker, MoonLogo, MoonLogoAnimated, MoonLogoIcon, Accordion as MoonUIAccordion, AccordionContent as MoonUIAccordionContent, AccordionItem as MoonUIAccordionItem, AccordionTrigger as MoonUIAccordionTrigger, Alert as MoonUIAlert, AlertDescription as MoonUIAlertDescription, AlertTitle as MoonUIAlertTitle, AspectRatio as MoonUIAspectRatio, Avatar as MoonUIAvatar, AvatarFallback as MoonUIAvatarFallback, AvatarGroup as MoonUIAvatarGroup, AvatarImage as MoonUIAvatarImage, Badge as MoonUIBadge, Breadcrumb as MoonUIBreadcrumb, BreadcrumbEllipsis as MoonUIBreadcrumbEllipsis, BreadcrumbItem as MoonUIBreadcrumbItem, BreadcrumbLink as MoonUIBreadcrumbLink, BreadcrumbList as MoonUIBreadcrumbList, BreadcrumbPage as MoonUIBreadcrumbPage, BreadcrumbSeparator as MoonUIBreadcrumbSeparator, Button as MoonUIButton, ButtonGroup as MoonUIButtonGroup, Calendar as MoonUICalendar, Card as MoonUICard, CardCVCInput as MoonUICardCVCInput, CardContent as MoonUICardContent, CardDescription as MoonUICardDescription, CardExpiryInput as MoonUICardExpiryInput, CardFooter as MoonUICardFooter, CardHeader as MoonUICardHeader, CardNumberInput as MoonUICardNumberInput, CardTitle as MoonUICardTitle, CardZipInput as MoonUICardZipInput, Carousel as MoonUICarousel, CarouselContent as MoonUICarouselContent, CarouselItem as MoonUICarouselItem, CarouselNext as MoonUICarouselNext, CarouselPrevious as MoonUICarouselPrevious, Checkbox as MoonUICheckbox, CheckboxGroup as MoonUICheckboxGroup, CheckboxLabel as MoonUICheckboxLabel, CheckboxWithLabel as MoonUICheckboxWithLabel, Collapsible as MoonUICollapsible, CollapsibleContent as MoonUICollapsibleContent, CollapsibleTrigger as MoonUICollapsibleTrigger, ColorPicker as MoonUIColorPicker, Command as MoonUICommand, CommandDialog as MoonUICommandDialog, CommandEmpty as MoonUICommandEmpty, CommandGroup as MoonUICommandGroup, CommandInput as MoonUICommandInput, CommandItem as MoonUICommandItem, CommandList as MoonUICommandList, CommandSeparator as MoonUICommandSeparator, CommandShortcut as MoonUICommandShortcut, DataTableBasic as MoonUIDataTableBasic, DatePicker as MoonUIDatePicker, DateRangePicker as MoonUIDateRangePicker, DateTimePicker as MoonUIDateTimePicker, Dialog as MoonUIDialog, DialogClose as MoonUIDialogClose, DialogContent as MoonUIDialogContent, DialogDescription as MoonUIDialogDescription, DialogFooter as MoonUIDialogFooter, DialogForm as MoonUIDialogForm, DialogHeader as MoonUIDialogHeader, DialogTitle as MoonUIDialogTitle, DialogTrigger as MoonUIDialogTrigger, DraggableList as MoonUIDraggableList, DropdownMenu as MoonUIDropdownMenu, DropdownMenuCheckboxItem as MoonUIDropdownMenuCheckboxItem, DropdownMenuContent as MoonUIDropdownMenuContent, DropdownMenuGroup as MoonUIDropdownMenuGroup, DropdownMenuItem as MoonUIDropdownMenuItem, DropdownMenuLabel as MoonUIDropdownMenuLabel, DropdownMenuPortal as MoonUIDropdownMenuPortal, DropdownMenuRadioGroup as MoonUIDropdownMenuRadioGroup, DropdownMenuRadioItem as MoonUIDropdownMenuRadioItem, DropdownMenuSeparator as MoonUIDropdownMenuSeparator, DropdownMenuShortcut as MoonUIDropdownMenuShortcut, DropdownMenuSub as MoonUIDropdownMenuSub, DropdownMenuSubContent as MoonUIDropdownMenuSubContent, DropdownMenuSubTrigger as MoonUIDropdownMenuSubTrigger, DropdownMenuTrigger as MoonUIDropdownMenuTrigger, FileUpload as MoonUIFileUpload, FreeBadge as MoonUIFreeBadge, GestureDrawer as MoonUIGestureDrawer, GitHubStars as MoonUIGitHubStars, GradientPicker as MoonUIGradientPicker, Input as MoonUIInput, InputOTP as MoonUIInputOTP, InputOTPGroup as MoonUIInputOTPGroup, InputOTPSeparator as MoonUIInputOTPSeparator, InputOTPSlot as MoonUIInputOTPSlot, Kbd as MoonUIKbd, Label as MoonUILabel, LockedComponent as MoonUILockedComponent, MonthPicker as MoonUIMonthPicker, MoonLogo as MoonUIMoonLogo, Pagination as MoonUIPagination, PaginationContent as MoonUIPaginationContent, PaginationEllipsis as MoonUIPaginationEllipsis, PaginationItem as MoonUIPaginationItem, PaginationLink as MoonUIPaginationLink, PaginationNext as MoonUIPaginationNext, PaginationPrevious as MoonUIPaginationPrevious, PhoneInput as MoonUIPhoneInput, Popover as MoonUIPopover, PopoverAnchor as MoonUIPopoverAnchor, PopoverClose as MoonUIPopoverClose, PopoverContent as MoonUIPopoverContent, PopoverFooter as MoonUIPopoverFooter, PopoverHeader as MoonUIPopoverHeader, PopoverSeparator as MoonUIPopoverSeparator, PopoverTrigger as MoonUIPopoverTrigger, ProBadge as MoonUIProBadge, ProComponentWrapper as MoonUIProComponentWrapper, Progress as MoonUIProgress, RadioGroup2 as MoonUIRadioGroup, RadioGroupItem as MoonUIRadioGroupItem, RadioItemWithLabel as MoonUIRadioItemWithLabel, RadioLabel as MoonUIRadioLabel, Rating as MoonUIRating, RichTextEditor as MoonUIRichTextEditor, ScrollArea as MoonUIScrollArea, ScrollBar as MoonUIScrollBar, ScrollReveal as MoonUIScrollReveal, ScrollRevealContainer as MoonUIScrollRevealContainer, ScrollRevealItem as MoonUIScrollRevealItem, Select as MoonUISelect, SelectContent as MoonUISelectContent, SelectGroup as MoonUISelectGroup, SelectItem as MoonUISelectItem, SelectLabel as MoonUISelectLabel, SelectScrollDownButton as MoonUISelectScrollDownButton, SelectScrollUpButton as MoonUISelectScrollUpButton, SelectSeparator as MoonUISelectSeparator, SelectTrigger as MoonUISelectTrigger, SelectValue as MoonUISelectValue, Separator3 as MoonUISeparator, SimpleColorPicker as MoonUISimpleColorPicker, SimpleEditor as MoonUISimpleEditor, SimpleTooltip as MoonUISimpleTooltip, Skeleton as MoonUISkeleton, SkeletonAvatar as MoonUISkeletonAvatar, SkeletonCard as MoonUISkeletonCard, SkeletonText as MoonUISkeletonText, Slider as MoonUISlider, Spinner as MoonUISpinner, SwipeableCard as MoonUISwipeableCard, Switch as MoonUISwitch, Table as MoonUITable, TableBody as MoonUITableBody, TableCaption as MoonUITableCaption, TableCell as MoonUITableCell, TableFooter as MoonUITableFooter, TableHead as MoonUITableHead, TableHeader as MoonUITableHeader, TableRow as MoonUITableRow, Tabs as MoonUITabs, TabsContent as MoonUITabsContent, TabsList as MoonUITabsList, TabsTrigger as MoonUITabsTrigger, TagsInput as MoonUITagsInput, Textarea as MoonUITextarea, Toast as MoonUIToast, ToastAction as MoonUIToastAction, ToastClose as MoonUIToastClose, ToastDescription as MoonUIToastDescription, ToastProvider as MoonUIToastProvider, ToastTitle as MoonUIToastTitle, ToastViewport as MoonUIToastViewport, Toaster as MoonUIToaster, Toggle as MoonUIToggle, ToggleGroup as MoonUIToggleGroup, ToggleGroupItem as MoonUIToggleGroupItem, Tooltip as MoonUITooltip, TooltipArrow as MoonUITooltipArrow, TooltipContent as MoonUITooltipContent, TooltipProvider as MoonUITooltipProvider, TooltipTrigger as MoonUITooltipTrigger, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PhoneInput, Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverFooter, PopoverHeader, PopoverSeparator, PopoverTrigger, ProBadge, ProComponentWrapper, Progress, RadioGroup2 as RadioGroup, RadioGroupItem, RadioItemWithLabel, RadioLabel, Rating, RichTextEditor, ScrollArea, ScrollBar, ScrollReveal, ScrollRevealContainer, ScrollRevealItem, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator3 as Separator, SimpleColorPicker, SimpleEditor, SimpleTooltip, Skeleton, SkeletonAvatar, SkeletonCard, SkeletonText, Slider, Spinner, SwipeableCard, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TagsInput, Textarea, Toast, ToastAction, ToastClose, ToastDescription, ToastProvider, ToastTitle, ToastViewport, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipArrow, TooltipContent, TooltipProvider, TooltipTrigger, aspectRatioVariants, badgeVariants, breadcrumbVariants, buttonGroupVariants, buttonVariants, cardVariants, carouselContentVariants, carouselItemVariants, cn, collapsibleContentVariants, collapsibleTriggerVariants, inputOTPSlotVariants, kbdVariants, badgeVariants as moonUIBadgeVariants, buttonGroupVariants as moonUIButtonGroupVariants, buttonVariants as moonUIButtonVariants, carouselContentVariants as moonUICarouselContentVariants, carouselItemVariants as moonUICarouselItemVariants, createSortableHeader as moonUICreateSortableHeader, inputOTPSlotVariants as moonUIInputOTPSlotVariants, kbdVariants as moonUIKbdVariants, popoverContentVariants as moonUIPopoverContentVariants, ratingVariants as moonUIRatingVariants, separatorVariants as moonUISeparatorVariants, skeletonVariants as moonUISkeletonVariants, spinnerVariants as moonUISpinnerVariants, toggleVariants as moonUIToggleVariants, tooltipVariants as moonUITooltipVariants, popoverContentVariants, progressVariants, ratingVariants, separatorVariants, skeletonVariants, spinnerVariants, switchVariants, tabsListVariants, tabsTriggerVariants, toast, toggleVariants, tooltipVariants, useCarousel, useToast };
9161
9515
  //# sourceMappingURL=out.js.map
9162
9516
  //# sourceMappingURL=index.mjs.map