@cntyclub/ui-react 0.14.0 → 0.16.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.
package/dist/index.js CHANGED
@@ -1,11 +1,11 @@
1
- import { cn, buttonVariants, Input, Popover, PopoverTrigger, Button, PopoverPopup, Calendar, SpinnerOnDemand } from './chunk-2HQPCV2L.js';
1
+ import { cn, buttonVariants, Input as Input$1, Popover, PopoverTrigger, Button, PopoverPopup, Calendar, SpinnerOnDemand } from './chunk-2HQPCV2L.js';
2
2
  export { Button, Calendar, Checkbox, CheckboxGroup, Field, FieldControl, FieldDescription, FieldError, FieldGroup, FieldItem, FieldLabel, FieldValidity, Input, InputGroup, InputGroupAddon, InputGroupInput, InputGroupText, InputGroupTextarea, Label, NumberField, NumberFieldDecrement, NumberFieldGroup, NumberFieldIncrement, NumberFieldInput, NumberFieldScrubArea, Popover, PopoverClose, PopoverPopup as PopoverContent, PopoverCreateHandle, PopoverDescription, PopoverPopup, PopoverTitle, PopoverTrigger, Select, SelectPopup as SelectContent, SelectGroup, SelectGroupLabel, SelectItem, SelectPopup, SelectSeparator, SelectTrigger, SelectValue, SpinnerOnDemand, Textarea, buttonVariants, cn } from './chunk-2HQPCV2L.js';
3
3
  import { Accordion as Accordion$1 } from '@base-ui/react/accordion';
4
- import { ChevronDownIcon, SunIcon, MoonIcon, ChevronsUpDownIcon, XIcon, CheckIcon, UserRoundIcon, PlusIcon, ChevronRight, MoreHorizontal, CalendarIcon, ArrowLeftIcon, ArrowRightIcon, SparklesIcon, ArrowUpIcon, SearchIcon, NfcIcon, ChevronLeftIcon, ChevronRightIcon, MoreHorizontalIcon, FileQuestionIcon, ShieldAlertIcon, ShieldXIcon, TriangleAlertIcon, CircleHelp, MinusIcon, GripVerticalIcon, PanelLeftIcon, Loader2Icon, TrendingDownIcon, TrendingUpIcon, CircleCheckIcon, LoaderCircleIcon, InfoIcon, CircleAlertIcon, PlayIcon, PauseIcon, VolumeXIcon, Volume2Icon, Minimize2Icon, Maximize2Icon, Search, LifeBuoy, Settings, LogOut, UserIcon, CloudUploadIcon, TrashIcon, Undo2, Redo2, Bold, Italic, Strikethrough, List, ListOrdered, AlignLeft, AlignCenter, AlignRight, AlignJustify } from 'lucide-react';
4
+ import { PipetteIcon, PlusIcon, ChevronDownIcon, SunIcon, MoonIcon, ChevronsUpDownIcon, XIcon, CheckIcon, UserRoundIcon, ChevronRight, MoreHorizontal, CalendarIcon, ArrowLeftIcon, ArrowRightIcon, SparklesIcon, ArrowUpIcon, SearchIcon, NfcIcon, ChevronLeftIcon, ChevronRightIcon, MoreHorizontalIcon, FileQuestionIcon, ShieldAlertIcon, ShieldXIcon, TriangleAlertIcon, CircleHelp, MinusIcon, GripVerticalIcon, PanelLeftIcon, Loader2Icon, TrendingDownIcon, TrendingUpIcon, CircleCheckIcon, LoaderCircleIcon, InfoIcon, CircleAlertIcon, PlayIcon, PauseIcon, VolumeXIcon, Volume2Icon, Minimize2Icon, Maximize2Icon, Search, LifeBuoy, Settings, LogOut, UserIcon, CloudUploadIcon, TrashIcon, Undo2, Redo2, Bold, Italic, Strikethrough, List, ListOrdered, AlignLeft, AlignCenter, AlignRight, AlignJustify } from 'lucide-react';
5
5
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
6
6
  import { cva } from 'class-variance-authority';
7
7
  import { AlertDialog as AlertDialog$1 } from '@base-ui/react/alert-dialog';
8
- import * as React17 from 'react';
8
+ import * as React20 from 'react';
9
9
  import { createContext, memo, forwardRef, useRef, useCallback, useMemo, useImperativeHandle, useEffect, useState, useContext, Fragment as Fragment$1, useSyncExternalStore, isValidElement, useLayoutEffect } from 'react';
10
10
  import { flushSync } from 'react-dom';
11
11
  import { mergeProps } from '@base-ui/react/merge-props';
@@ -20,6 +20,8 @@ import { format, intervalToDuration } from 'date-fns';
20
20
  import useEmblaCarousel from 'embla-carousel-react';
21
21
  import * as RechartsPrimitive from 'recharts';
22
22
  import { Collapsible as Collapsible$1 } from '@base-ui/react/collapsible';
23
+ import { parseColor, ColorSwatchPicker, ColorSwatchPickerItem, ColorSwatch as ColorSwatch$1, ColorField, Input, ColorThumb as ColorThumb$1, ColorArea as ColorArea$1, ColorPicker as ColorPicker$1, ColorPickerStateContext, ColorSlider, SliderTrack } from 'react-aria-components';
24
+ export { getColorChannels, parseColor } from 'react-aria-components';
23
25
  import { Combobox as Combobox$1 } from '@base-ui/react/combobox';
24
26
  import { Dialog as Dialog$1 } from '@base-ui/react/dialog';
25
27
  import confetti from 'canvas-confetti';
@@ -1057,7 +1059,7 @@ function useSmoothWheel(ref, {
1057
1059
  multiplier = 0.8,
1058
1060
  ease = 0.12
1059
1061
  } = {}) {
1060
- React17.useEffect(() => {
1062
+ React20.useEffect(() => {
1061
1063
  if (!enabled) return;
1062
1064
  const el = ref.current;
1063
1065
  if (!el) return;
@@ -1151,7 +1153,7 @@ function SmoothScroll({
1151
1153
  ease,
1152
1154
  ...props
1153
1155
  }) {
1154
- const ref = React17.useRef(null);
1156
+ const ref = React20.useRef(null);
1155
1157
  useSmoothWheel(ref, { ease, horizontal, multiplier });
1156
1158
  return /* @__PURE__ */ jsx(
1157
1159
  "div",
@@ -1177,7 +1179,7 @@ function ScrollArea({
1177
1179
  viewportClassName,
1178
1180
  ...props
1179
1181
  }) {
1180
- const viewportRef = React17.useRef(null);
1182
+ const viewportRef = React20.useRef(null);
1181
1183
  useSmoothWheel(viewportRef, { enabled: wheelToHorizontal, horizontal: true });
1182
1184
  useSmoothWheel(viewportRef, {
1183
1185
  enabled: smooth && !wheelToHorizontal,
@@ -1264,7 +1266,7 @@ function AutocompleteInput({
1264
1266
  className
1265
1267
  ),
1266
1268
  "data-slot": "autocomplete-input",
1267
- render: /* @__PURE__ */ jsx(Input, { nativeInput: true, size: sizeValue }),
1269
+ render: /* @__PURE__ */ jsx(Input$1, { nativeInput: true, size: sizeValue }),
1268
1270
  ...props
1269
1271
  }
1270
1272
  ),
@@ -2581,9 +2583,9 @@ function CardFooter({
2581
2583
  render
2582
2584
  });
2583
2585
  }
2584
- var CarouselContext = React17.createContext(null);
2586
+ var CarouselContext = React20.createContext(null);
2585
2587
  function useCarousel() {
2586
- const context = React17.useContext(CarouselContext);
2588
+ const context = React20.useContext(CarouselContext);
2587
2589
  if (!context) {
2588
2590
  throw new Error("useCarousel must be used within a <Carousel />");
2589
2591
  }
@@ -2606,20 +2608,20 @@ function Carousel({
2606
2608
  },
2607
2609
  plugins
2608
2610
  );
2609
- const [canScrollPrev, setCanScrollPrev] = React17.useState(false);
2610
- const [canScrollNext, setCanScrollNext] = React17.useState(false);
2611
- const onSelect = React17.useCallback((api2) => {
2611
+ const [canScrollPrev, setCanScrollPrev] = React20.useState(false);
2612
+ const [canScrollNext, setCanScrollNext] = React20.useState(false);
2613
+ const onSelect = React20.useCallback((api2) => {
2612
2614
  if (!api2) return;
2613
2615
  setCanScrollPrev(api2.canScrollPrev());
2614
2616
  setCanScrollNext(api2.canScrollNext());
2615
2617
  }, []);
2616
- const scrollPrev = React17.useCallback(() => {
2618
+ const scrollPrev = React20.useCallback(() => {
2617
2619
  api?.scrollPrev();
2618
2620
  }, [api]);
2619
- const scrollNext = React17.useCallback(() => {
2621
+ const scrollNext = React20.useCallback(() => {
2620
2622
  api?.scrollNext();
2621
2623
  }, [api]);
2622
- const handleKeyDown = React17.useCallback(
2624
+ const handleKeyDown = React20.useCallback(
2623
2625
  (event) => {
2624
2626
  if (event.key === "ArrowLeft") {
2625
2627
  event.preventDefault();
@@ -2631,11 +2633,11 @@ function Carousel({
2631
2633
  },
2632
2634
  [scrollPrev, scrollNext]
2633
2635
  );
2634
- React17.useEffect(() => {
2636
+ React20.useEffect(() => {
2635
2637
  if (!api || !setApi) return;
2636
2638
  setApi(api);
2637
2639
  }, [api, setApi]);
2638
- React17.useEffect(() => {
2640
+ React20.useEffect(() => {
2639
2641
  if (!api) return;
2640
2642
  onSelect(api);
2641
2643
  api.on("reInit", onSelect);
@@ -2777,9 +2779,9 @@ function CarouselNext({
2777
2779
  );
2778
2780
  }
2779
2781
  var THEMES = { light: "", dark: '[data-theme="dark"]' };
2780
- var ChartContext = React17.createContext(null);
2782
+ var ChartContext = React20.createContext(null);
2781
2783
  function useChart() {
2782
- const context = React17.useContext(ChartContext);
2784
+ const context = React20.useContext(ChartContext);
2783
2785
  if (!context) {
2784
2786
  throw new Error("useChart must be used within a <ChartContainer />");
2785
2787
  }
@@ -2792,7 +2794,7 @@ function ChartContainer({
2792
2794
  config,
2793
2795
  ...props
2794
2796
  }) {
2795
- const uniqueId = React17.useId();
2797
+ const uniqueId = React20.useId();
2796
2798
  const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
2797
2799
  return /* @__PURE__ */ jsx(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxs(
2798
2800
  "div",
@@ -2853,7 +2855,7 @@ function ChartTooltipContent({
2853
2855
  labelKey
2854
2856
  }) {
2855
2857
  const { config } = useChart();
2856
- const tooltipLabel = React17.useMemo(() => {
2858
+ const tooltipLabel = React20.useMemo(() => {
2857
2859
  if (hideLabel || !payload?.length) {
2858
2860
  return null;
2859
2861
  }
@@ -3066,15 +3068,15 @@ function ChatMessages({
3066
3068
  children,
3067
3069
  ...props
3068
3070
  }) {
3069
- const viewportRef = React17.useRef(null);
3070
- const pinnedRef = React17.useRef(true);
3071
- const handleScroll = React17.useCallback(() => {
3071
+ const viewportRef = React20.useRef(null);
3072
+ const pinnedRef = React20.useRef(true);
3073
+ const handleScroll = React20.useCallback(() => {
3072
3074
  const viewport = viewportRef.current;
3073
3075
  if (!viewport) return;
3074
3076
  const distanceFromBottom = viewport.scrollHeight - viewport.scrollTop - viewport.clientHeight;
3075
3077
  pinnedRef.current = distanceFromBottom < 48;
3076
3078
  }, []);
3077
- React17.useEffect(() => {
3079
+ React20.useEffect(() => {
3078
3080
  const viewport = viewportRef.current;
3079
3081
  if (!viewport || !autoScroll || !pinnedRef.current) return;
3080
3082
  viewport.scrollTop = viewport.scrollHeight;
@@ -3322,13 +3324,13 @@ function ChatInput({
3322
3324
  value,
3323
3325
  ...props
3324
3326
  }) {
3325
- const textareaRef = React17.useRef(null);
3326
- const submit = React17.useCallback(() => {
3327
+ const textareaRef = React20.useRef(null);
3328
+ const submit = React20.useCallback(() => {
3327
3329
  const trimmed = value.trim();
3328
3330
  if (!trimmed || disabled) return;
3329
3331
  onSubmit(trimmed);
3330
3332
  }, [disabled, onSubmit, value]);
3331
- React17.useEffect(() => {
3333
+ React20.useEffect(() => {
3332
3334
  const textarea = textareaRef.current;
3333
3335
  if (!textarea) return;
3334
3336
  textarea.style.height = "auto";
@@ -3387,6 +3389,45 @@ function ChatInput({
3387
3389
  }
3388
3390
  );
3389
3391
  }
3392
+ var LABEL_TONE = {
3393
+ default: "text-muted-foreground",
3394
+ summary: "text-muted-foreground",
3395
+ unread: "text-primary"
3396
+ };
3397
+ var LINE_TONE = {
3398
+ default: "bg-border",
3399
+ summary: "bg-border",
3400
+ unread: "bg-primary/40"
3401
+ };
3402
+ function ChatDivider({ label, icon, variant = "default", className, ...props }) {
3403
+ return /* @__PURE__ */ jsxs(
3404
+ "div",
3405
+ {
3406
+ className: cn("flex w-full items-center gap-3 py-1 select-none", className),
3407
+ "data-slot": "chat-divider",
3408
+ "data-variant": variant,
3409
+ role: "separator",
3410
+ ...props,
3411
+ children: [
3412
+ /* @__PURE__ */ jsx("span", { className: cn("h-px flex-1", LINE_TONE[variant]) }),
3413
+ label != null ? /* @__PURE__ */ jsxs(
3414
+ "span",
3415
+ {
3416
+ className: cn(
3417
+ "inline-flex items-center gap-1.5 font-medium text-xs whitespace-nowrap",
3418
+ LABEL_TONE[variant]
3419
+ ),
3420
+ children: [
3421
+ icon ? /* @__PURE__ */ jsx("span", { className: "inline-flex shrink-0 items-center", children: icon }) : null,
3422
+ label
3423
+ ]
3424
+ }
3425
+ ) : null,
3426
+ /* @__PURE__ */ jsx("span", { className: cn("h-px flex-1", LINE_TONE[variant]) })
3427
+ ]
3428
+ }
3429
+ );
3430
+ }
3390
3431
  function Collapsible({ ...props }) {
3391
3432
  return /* @__PURE__ */ jsx(Collapsible$1.Root, { "data-slot": "collapsible", ...props });
3392
3433
  }
@@ -3419,12 +3460,253 @@ function CollapsiblePanel({
3419
3460
  }
3420
3461
  );
3421
3462
  }
3422
- var ComboboxContext = React17.createContext({
3463
+ var CHECKERBOARD = "repeating-conic-gradient(rgba(0,0,0,.12) 0% 25%, transparent 0% 50%) 50% / 12px 12px";
3464
+ function useColorPicker() {
3465
+ const state = React20.useContext(ColorPickerStateContext);
3466
+ if (!state) {
3467
+ throw new Error("useColorPicker must be used inside <ColorPicker.Provider>.");
3468
+ }
3469
+ return state;
3470
+ }
3471
+ function ColorPickerProvider(props) {
3472
+ return /* @__PURE__ */ jsx(ColorPicker$1, { ...props });
3473
+ }
3474
+ function ColorArea({ className, ...props }) {
3475
+ return /* @__PURE__ */ jsx(
3476
+ ColorArea$1,
3477
+ {
3478
+ className: cn(
3479
+ "h-40 w-full shrink-0 rounded-lg border border-input outline-none",
3480
+ "data-[disabled]:opacity-64",
3481
+ className
3482
+ ),
3483
+ "data-slot": "color-picker-area",
3484
+ ...props,
3485
+ children: /* @__PURE__ */ jsx(ColorThumb, {})
3486
+ }
3487
+ );
3488
+ }
3489
+ function ColorThumb({ className, ...props }) {
3490
+ return /* @__PURE__ */ jsx(
3491
+ ColorThumb$1,
3492
+ {
3493
+ className: cn(
3494
+ // `box-shadow` rather than a border, so the ring sits *outside* the swatch and
3495
+ // the pixel under the thumb is the colour actually selected.
3496
+ "size-4 rounded-full border-2 border-white shadow-[0_0_0_1px_rgba(0,0,0,.35)] outline-none",
3497
+ "transition-[scale,box-shadow] duration-150 ease-out",
3498
+ "data-[focus-visible]:ring-[3px] data-[focus-visible]:ring-ring/32 data-[dragging]:scale-115",
3499
+ className
3500
+ ),
3501
+ "data-slot": "color-picker-thumb",
3502
+ ...props
3503
+ }
3504
+ );
3505
+ }
3506
+ function ColorSliderBase({
3507
+ className,
3508
+ channel,
3509
+ chequered,
3510
+ ...props
3511
+ }) {
3512
+ return /* @__PURE__ */ jsx(
3513
+ ColorSlider,
3514
+ {
3515
+ channel,
3516
+ className: cn("w-full data-[disabled]:opacity-64", className),
3517
+ "data-slot": `color-picker-${channel}-slider`,
3518
+ orientation: "horizontal",
3519
+ ...props,
3520
+ children: /* @__PURE__ */ jsx(
3521
+ SliderTrack,
3522
+ {
3523
+ className: "relative h-3 w-full rounded-full border border-input",
3524
+ style: ({ defaultStyle }) => ({
3525
+ background: chequered ? `${defaultStyle.background}, ${CHECKERBOARD}` : defaultStyle.background
3526
+ }),
3527
+ children: /* @__PURE__ */ jsx(ColorThumb, { className: "top-1/2" })
3528
+ }
3529
+ )
3530
+ }
3531
+ );
3532
+ }
3533
+ function ColorHueSlider(props) {
3534
+ return /* @__PURE__ */ jsx(ColorSliderBase, { channel: "hue", ...props });
3535
+ }
3536
+ function ColorAlphaSlider(props) {
3537
+ return /* @__PURE__ */ jsx(ColorSliderBase, { channel: "alpha", chequered: true, ...props });
3538
+ }
3539
+ function ColorSwatch({ className, ...props }) {
3540
+ return /* @__PURE__ */ jsx(
3541
+ ColorSwatch$1,
3542
+ {
3543
+ className: cn("size-8 shrink-0 rounded-md border border-input", className),
3544
+ "data-slot": "color-picker-swatch",
3545
+ style: { background: CHECKERBOARD },
3546
+ ...props
3547
+ }
3548
+ );
3549
+ }
3550
+ function ColorValueInput({
3551
+ className,
3552
+ ...props
3553
+ }) {
3554
+ return /* @__PURE__ */ jsx(
3555
+ ColorField,
3556
+ {
3557
+ className: cn("min-w-0 flex-1", className),
3558
+ "data-slot": "color-picker-value",
3559
+ ...props,
3560
+ children: /* @__PURE__ */ jsx(
3561
+ Input,
3562
+ {
3563
+ className: cn(
3564
+ "h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-2.5 font-mono text-sm tabular-nums outline-none",
3565
+ "placeholder:text-muted-foreground focus-visible:ring-[3px] focus-visible:ring-ring/24"
3566
+ )
3567
+ }
3568
+ )
3569
+ }
3570
+ );
3571
+ }
3572
+ function ColorSavedColors({
3573
+ className,
3574
+ colors,
3575
+ onSelect,
3576
+ onAdd,
3577
+ size = "md",
3578
+ ...props
3579
+ }) {
3580
+ const tile = size === "sm" ? "size-6" : "size-8";
3581
+ return /* @__PURE__ */ jsxs("div", { className: cn("flex flex-wrap items-center gap-1.5", className), "data-slot": "color-picker-saved", children: [
3582
+ /* @__PURE__ */ jsx(
3583
+ ColorSwatchPicker,
3584
+ {
3585
+ className: "flex flex-wrap items-center gap-1.5",
3586
+ onChange: (color) => onSelect?.(color.toString("hex")),
3587
+ ...props,
3588
+ children: colors.map((color) => /* @__PURE__ */ jsx(
3589
+ ColorSwatchPickerItem,
3590
+ {
3591
+ className: cn(
3592
+ tile,
3593
+ "rounded-md border border-input outline-none",
3594
+ "data-[focus-visible]:ring-[3px] data-[focus-visible]:ring-ring/24",
3595
+ "data-[selected]:ring-2 data-[selected]:ring-ring data-[selected]:ring-offset-2 data-[selected]:ring-offset-background"
3596
+ ),
3597
+ color,
3598
+ children: /* @__PURE__ */ jsx(ColorSwatch$1, { className: "size-full rounded-[5px]" })
3599
+ },
3600
+ color
3601
+ ))
3602
+ }
3603
+ ),
3604
+ onAdd ? /* @__PURE__ */ jsx(
3605
+ "button",
3606
+ {
3607
+ "aria-label": "Save this colour",
3608
+ className: cn(
3609
+ tile,
3610
+ "flex items-center justify-center rounded-md border border-input border-dashed text-muted-foreground outline-none",
3611
+ "transition-colors hover:bg-accent hover:text-foreground focus-visible:ring-[3px] focus-visible:ring-ring/24"
3612
+ ),
3613
+ onClick: onAdd,
3614
+ type: "button",
3615
+ children: /* @__PURE__ */ jsx(PlusIcon, { className: size === "sm" ? "size-3" : "size-3.5", strokeWidth: 2 })
3616
+ }
3617
+ ) : null
3618
+ ] });
3619
+ }
3620
+ function ColorEyeDropper({ className, ...props }) {
3621
+ const state = useColorPicker();
3622
+ const [supported, setSupported] = React20.useState(false);
3623
+ React20.useEffect(() => {
3624
+ setSupported(typeof window !== "undefined" && "EyeDropper" in window);
3625
+ }, []);
3626
+ if (!supported) return null;
3627
+ return /* @__PURE__ */ jsx(
3628
+ "button",
3629
+ {
3630
+ "aria-label": "Pick a colour from the screen",
3631
+ className: cn(
3632
+ "flex size-9 shrink-0 items-center justify-center rounded-md border border-input text-muted-foreground outline-none",
3633
+ "transition-colors hover:bg-accent hover:text-foreground focus-visible:ring-[3px] focus-visible:ring-ring/24",
3634
+ className
3635
+ ),
3636
+ "data-slot": "color-picker-eyedropper",
3637
+ onClick: async () => {
3638
+ try {
3639
+ const result = await new window.EyeDropper().open();
3640
+ state.setColor(parseColor(result.sRGBHex));
3641
+ } catch {
3642
+ }
3643
+ },
3644
+ type: "button",
3645
+ ...props,
3646
+ children: /* @__PURE__ */ jsx(PipetteIcon, { className: "size-4", strokeWidth: 1.8 })
3647
+ }
3648
+ );
3649
+ }
3650
+ function ColorPreview({ className }) {
3651
+ const state = useColorPicker();
3652
+ return /* @__PURE__ */ jsx(
3653
+ ColorSwatch$1,
3654
+ {
3655
+ className: cn("size-9 shrink-0 rounded-md border border-input", className),
3656
+ color: state.color,
3657
+ "data-slot": "color-picker-preview",
3658
+ style: { background: CHECKERBOARD }
3659
+ }
3660
+ );
3661
+ }
3662
+ function ColorPickerPanel({
3663
+ className,
3664
+ withAlpha = false,
3665
+ savedColors,
3666
+ onSaveColor,
3667
+ ...props
3668
+ }) {
3669
+ return /* @__PURE__ */ jsx(ColorPickerProvider, { ...props, children: /* @__PURE__ */ jsxs(
3670
+ "div",
3671
+ {
3672
+ className: cn("flex w-64 flex-col gap-3 rounded-xl border border-input bg-popover p-3", className),
3673
+ "data-slot": "color-picker",
3674
+ children: [
3675
+ /* @__PURE__ */ jsx(ColorArea, { colorSpace: "hsb", xChannel: "saturation", yChannel: "brightness" }),
3676
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
3677
+ /* @__PURE__ */ jsx(ColorPreview, {}),
3678
+ /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-2", children: [
3679
+ /* @__PURE__ */ jsx(ColorHueSlider, {}),
3680
+ withAlpha ? /* @__PURE__ */ jsx(ColorAlphaSlider, {}) : null
3681
+ ] })
3682
+ ] }),
3683
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
3684
+ /* @__PURE__ */ jsx(ColorEyeDropper, {}),
3685
+ /* @__PURE__ */ jsx(ColorValueInput, {})
3686
+ ] }),
3687
+ savedColors?.length || onSaveColor ? /* @__PURE__ */ jsx(ColorSavedColors, { colors: savedColors ?? [], onAdd: onSaveColor, size: "sm" }) : null
3688
+ ]
3689
+ }
3690
+ ) });
3691
+ }
3692
+ var ColorPicker = Object.assign(ColorPickerPanel, {
3693
+ Provider: ColorPickerProvider,
3694
+ Area: ColorArea,
3695
+ Thumb: ColorThumb,
3696
+ HueSlider: ColorHueSlider,
3697
+ AlphaSlider: ColorAlphaSlider,
3698
+ Swatch: ColorSwatch,
3699
+ Preview: ColorPreview,
3700
+ ValueInput: ColorValueInput,
3701
+ SavedColors: ColorSavedColors,
3702
+ EyeDropper: ColorEyeDropper
3703
+ });
3704
+ var ComboboxContext = React20.createContext({
3423
3705
  chipsRef: null,
3424
3706
  multiple: false
3425
3707
  });
3426
3708
  function Combobox(props) {
3427
- const chipsRef = React17.useRef(null);
3709
+ const chipsRef = React20.useRef(null);
3428
3710
  return /* @__PURE__ */ jsx(ComboboxContext.Provider, { value: { chipsRef, multiple: !!props.multiple }, children: /* @__PURE__ */ jsx(
3429
3711
  Combobox$1.Root,
3430
3712
  {
@@ -3440,7 +3722,7 @@ function ComboboxInput({
3440
3722
  size,
3441
3723
  ...props
3442
3724
  }) {
3443
- const { multiple } = React17.useContext(ComboboxContext);
3725
+ const { multiple } = React20.useContext(ComboboxContext);
3444
3726
  const sizeValue = size ?? "default";
3445
3727
  if (multiple) {
3446
3728
  return /* @__PURE__ */ jsx(
@@ -3478,7 +3760,7 @@ function ComboboxInput({
3478
3760
  ),
3479
3761
  "data-slot": "combobox-input",
3480
3762
  render: /* @__PURE__ */ jsx(
3481
- Input,
3763
+ Input$1,
3482
3764
  {
3483
3765
  className: "has-disabled:opacity-100",
3484
3766
  nativeInput: true,
@@ -3529,7 +3811,7 @@ function ComboboxPopup({
3529
3811
  sideOffset = 4,
3530
3812
  ...props
3531
3813
  }) {
3532
- const { chipsRef } = React17.useContext(ComboboxContext);
3814
+ const { chipsRef } = React20.useContext(ComboboxContext);
3533
3815
  return /* @__PURE__ */ jsx(Combobox$1.Portal, { children: /* @__PURE__ */ jsx(
3534
3816
  Combobox$1.Positioner,
3535
3817
  {
@@ -3700,7 +3982,7 @@ function ComboboxChips({
3700
3982
  startAddon,
3701
3983
  ...props
3702
3984
  }) {
3703
- const { chipsRef } = React17.useContext(ComboboxContext);
3985
+ const { chipsRef } = React20.useContext(ComboboxContext);
3704
3986
  return /* @__PURE__ */ jsxs(
3705
3987
  Combobox$1.Chips,
3706
3988
  {
@@ -4072,6 +4354,97 @@ function ConfettiButtonComponent({ options, children, onClick, ...props }) {
4072
4354
  }
4073
4355
  ConfettiButtonComponent.displayName = "ConfettiButton";
4074
4356
  var ConfettiButton = ConfettiButtonComponent;
4357
+ var STATE_COLOR = {
4358
+ ok: "text-muted-foreground",
4359
+ warn: "text-amber-500",
4360
+ summarizing: "text-sky-500",
4361
+ full: "text-destructive"
4362
+ };
4363
+ function deriveState(pct, warnAt, summarizeAt, lockAt) {
4364
+ if (pct >= lockAt) return "full";
4365
+ if (pct >= summarizeAt) return "summarizing";
4366
+ if (pct >= warnAt) return "warn";
4367
+ return "ok";
4368
+ }
4369
+ function ContextMeter({
4370
+ used,
4371
+ budget,
4372
+ pct,
4373
+ state,
4374
+ warnAt = 0.75,
4375
+ summarizeAt = 0.85,
4376
+ lockAt = 0.98,
4377
+ size = 24,
4378
+ strokeWidth = 2.5,
4379
+ showLabel = false,
4380
+ className,
4381
+ ...props
4382
+ }) {
4383
+ const fraction = Math.max(
4384
+ 0,
4385
+ Math.min(1, pct ?? (budget ? (used ?? 0) / budget : 0))
4386
+ );
4387
+ const resolvedState = state ?? deriveState(fraction, warnAt, summarizeAt, lockAt);
4388
+ const percent = Math.round(fraction * 100);
4389
+ const radius = (size - strokeWidth) / 2;
4390
+ const circumference = 2 * Math.PI * radius;
4391
+ const dash = circumference * fraction;
4392
+ const center = size / 2;
4393
+ return /* @__PURE__ */ jsxs(
4394
+ "span",
4395
+ {
4396
+ className: cn("relative inline-flex items-center justify-center", STATE_COLOR[resolvedState]),
4397
+ "data-slot": "context-meter",
4398
+ "data-state": resolvedState,
4399
+ style: { width: size, height: size },
4400
+ children: [
4401
+ /* @__PURE__ */ jsxs(
4402
+ "svg",
4403
+ {
4404
+ width: size,
4405
+ height: size,
4406
+ viewBox: `0 0 ${size} ${size}`,
4407
+ role: "meter",
4408
+ "aria-valuemin": 0,
4409
+ "aria-valuemax": 100,
4410
+ "aria-valuenow": percent,
4411
+ "aria-label": `Context ${percent}% used`,
4412
+ className: cn("-rotate-90", className),
4413
+ ...props,
4414
+ children: [
4415
+ /* @__PURE__ */ jsx(
4416
+ "circle",
4417
+ {
4418
+ cx: center,
4419
+ cy: center,
4420
+ r: radius,
4421
+ fill: "none",
4422
+ strokeWidth,
4423
+ className: "stroke-muted"
4424
+ }
4425
+ ),
4426
+ /* @__PURE__ */ jsx(
4427
+ "circle",
4428
+ {
4429
+ cx: center,
4430
+ cy: center,
4431
+ r: radius,
4432
+ fill: "none",
4433
+ strokeWidth,
4434
+ strokeLinecap: "round",
4435
+ stroke: "currentColor",
4436
+ strokeDasharray: `${dash} ${circumference}`,
4437
+ className: "transition-[stroke-dasharray] duration-500 ease-out"
4438
+ }
4439
+ )
4440
+ ]
4441
+ }
4442
+ ),
4443
+ showLabel ? /* @__PURE__ */ jsx("span", { className: "absolute font-medium text-[0.5rem] text-foreground tabular-nums", children: percent }) : null
4444
+ ]
4445
+ }
4446
+ );
4447
+ }
4075
4448
  var BASE_WIDTH = 316;
4076
4449
  var BASE_HEIGHT = 190;
4077
4450
  var GLASS_FACE = "border border-white/30 bg-white/10 text-white backdrop-blur-md";
@@ -4514,7 +4887,7 @@ function TableCaption({
4514
4887
  function formatCell(value) {
4515
4888
  if (value === null || value === void 0 || value === "") return "\u2014";
4516
4889
  if (typeof value === "boolean") return value ? "Yes" : "No";
4517
- if (React17.isValidElement(value)) return value;
4890
+ if (React20.isValidElement(value)) return value;
4518
4891
  if (typeof value === "object") return JSON.stringify(value);
4519
4892
  return String(value);
4520
4893
  }
@@ -4528,9 +4901,9 @@ function DataTablePaged({
4528
4901
  searchPlaceholder = "Filter results\u2026",
4529
4902
  totalCount
4530
4903
  }) {
4531
- const [page, setPage] = React17.useState(1);
4532
- const [query, setQuery] = React17.useState("");
4533
- const filteredRows = React17.useMemo(() => {
4904
+ const [page, setPage] = React20.useState(1);
4905
+ const [query, setQuery] = React20.useState("");
4906
+ const filteredRows = React20.useMemo(() => {
4534
4907
  const trimmed = query.trim().toLowerCase();
4535
4908
  if (!trimmed) return rows;
4536
4909
  return rows.filter(
@@ -4546,7 +4919,7 @@ function DataTablePaged({
4546
4919
  searchable && rows.length > pageSize && /* @__PURE__ */ jsxs("div", { className: "relative", children: [
4547
4920
  /* @__PURE__ */ jsx(SearchIcon, { className: "-translate-y-1/2 absolute top-1/2 left-2.5 size-4 text-muted-foreground" }),
4548
4921
  /* @__PURE__ */ jsx(
4549
- Input,
4922
+ Input$1,
4550
4923
  {
4551
4924
  className: "h-8 pl-8 text-sm",
4552
4925
  onChange: (event) => {
@@ -5907,7 +6280,7 @@ function InputOTPSlot({
5907
6280
  size,
5908
6281
  ...props
5909
6282
  }) {
5910
- const inputOTPContext = React17.useContext(OTPInputContext);
6283
+ const inputOTPContext = React20.useContext(OTPInputContext);
5911
6284
  const { char, hasFakeCaret, isActive } = inputOTPContext?.slots[index] ?? {};
5912
6285
  return /* @__PURE__ */ jsxs(
5913
6286
  "div",
@@ -6611,10 +6984,10 @@ function MultiSelect({
6611
6984
  popupClassName,
6612
6985
  sideOffset = 4
6613
6986
  }) {
6614
- const [uncontrolledValue, setUncontrolledValue] = React17.useState(
6987
+ const [uncontrolledValue, setUncontrolledValue] = React20.useState(
6615
6988
  defaultValue ?? []
6616
6989
  );
6617
- const [search, setSearch] = React17.useState("");
6990
+ const [search, setSearch] = React20.useState("");
6618
6991
  const isControlled = valueProp !== void 0;
6619
6992
  const value = isControlled ? valueProp : uncontrolledValue;
6620
6993
  const setValue = (next) => {
@@ -6758,8 +7131,8 @@ function MultiSelectSearch({
6758
7131
  onChange,
6759
7132
  placeholder
6760
7133
  }) {
6761
- const inputRef = React17.useRef(null);
6762
- React17.useEffect(() => {
7134
+ const inputRef = React20.useRef(null);
7135
+ React20.useEffect(() => {
6763
7136
  const frame = requestAnimationFrame(() => inputRef.current?.focus());
6764
7137
  return () => cancelAnimationFrame(frame);
6765
7138
  }, []);
@@ -7250,8 +7623,8 @@ var qrCodeVariants = cva(
7250
7623
  }
7251
7624
  );
7252
7625
  function QRCode({ className, size, value, options, ...props }) {
7253
- const containerRef = React17.useRef(null);
7254
- React17.useEffect(() => {
7626
+ const containerRef = React20.useRef(null);
7627
+ React20.useEffect(() => {
7255
7628
  const container = containerRef.current;
7256
7629
  if (!container) return;
7257
7630
  let disposed = false;
@@ -7779,8 +8152,8 @@ function SocialButton({
7779
8152
  render
7780
8153
  });
7781
8154
  }
7782
- var StepperContext = React17.createContext({ orientation: "horizontal", value: 1 });
7783
- var StepperItemContext = React17.createContext({ state: "inactive", step: 1 });
8155
+ var StepperContext = React20.createContext({ orientation: "horizontal", value: 1 });
8156
+ var StepperItemContext = React20.createContext({ state: "inactive", step: 1 });
7784
8157
  function Stepper({
7785
8158
  value = 1,
7786
8159
  orientation = "horizontal",
@@ -7807,7 +8180,7 @@ function StepperItem({
7807
8180
  className,
7808
8181
  ...props
7809
8182
  }) {
7810
- const { value } = React17.useContext(StepperContext);
8183
+ const { value } = React20.useContext(StepperContext);
7811
8184
  const state = completed || value > step ? "completed" : value === step ? "active" : "inactive";
7812
8185
  return /* @__PURE__ */ jsx(StepperItemContext.Provider, { value: { state, step }, children: /* @__PURE__ */ jsx(
7813
8186
  "div",
@@ -7846,7 +8219,7 @@ function StepperIndicator({
7846
8219
  children,
7847
8220
  ...props
7848
8221
  }) {
7849
- const { step } = React17.useContext(StepperItemContext);
8222
+ const { step } = React20.useContext(StepperItemContext);
7850
8223
  return /* @__PURE__ */ jsxs(
7851
8224
  "span",
7852
8225
  {
@@ -7998,7 +8371,7 @@ function Toggle({
7998
8371
  }
7999
8372
  );
8000
8373
  }
8001
- var ToggleGroupContext = React17.createContext({
8374
+ var ToggleGroupContext = React20.createContext({
8002
8375
  size: "default",
8003
8376
  variant: "default"
8004
8377
  });
@@ -8035,7 +8408,7 @@ function Toggle2({
8035
8408
  size,
8036
8409
  ...props
8037
8410
  }) {
8038
- const context = React17.useContext(ToggleGroupContext);
8411
+ const context = React20.useContext(ToggleGroupContext);
8039
8412
  const resolvedVariant = context.variant || variant;
8040
8413
  const resolvedSize = context.size || size;
8041
8414
  return /* @__PURE__ */ jsx(
@@ -8295,7 +8668,7 @@ function Skeleton({ className, ...props }) {
8295
8668
  }
8296
8669
  );
8297
8670
  }
8298
- var useIsomorphicLayoutEffect = typeof window !== "undefined" ? React17.useLayoutEffect : React17.useEffect;
8671
+ var useIsomorphicLayoutEffect = typeof window !== "undefined" ? React20.useLayoutEffect : React20.useEffect;
8299
8672
  var SIDEBAR_COOKIE_NAME = "sidebar_state";
8300
8673
  var SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
8301
8674
  var SIDEBAR_WIDTH_LG = "18.5rem";
@@ -8303,9 +8676,9 @@ var SIDEBAR_WIDTH_MD = "14.5rem";
8303
8676
  var SIDEBAR_WIDTH_MOBILE = "18rem";
8304
8677
  var SIDEBAR_WIDTH_ICON = "3rem";
8305
8678
  var SIDEBAR_KEYBOARD_SHORTCUT = "b";
8306
- var SidebarContext = React17.createContext(null);
8679
+ var SidebarContext = React20.createContext(null);
8307
8680
  function useSidebar() {
8308
- const context = React17.useContext(SidebarContext);
8681
+ const context = React20.useContext(SidebarContext);
8309
8682
  if (!context) {
8310
8683
  throw new Error("useSidebar must be used within a SidebarProvider.");
8311
8684
  }
@@ -8321,7 +8694,7 @@ function SidebarProvider({
8321
8694
  children,
8322
8695
  ...props
8323
8696
  }) {
8324
- const [isMobile, setIsMobile] = React17.useState(false);
8697
+ const [isMobile, setIsMobile] = React20.useState(false);
8325
8698
  useIsomorphicLayoutEffect(() => {
8326
8699
  const mql = window.matchMedia("(max-width: 47.999rem)");
8327
8700
  const onChange = () => setIsMobile(mql.matches);
@@ -8329,10 +8702,10 @@ function SidebarProvider({
8329
8702
  mql.addEventListener("change", onChange);
8330
8703
  return () => mql.removeEventListener("change", onChange);
8331
8704
  }, []);
8332
- const [openMobile, setOpenMobile] = React17.useState(false);
8333
- const [_open, _setOpen] = React17.useState(defaultOpen);
8705
+ const [openMobile, setOpenMobile] = React20.useState(false);
8706
+ const [_open, _setOpen] = React20.useState(defaultOpen);
8334
8707
  const open = openProp ?? _open;
8335
- const setOpen = React17.useCallback(
8708
+ const setOpen = React20.useCallback(
8336
8709
  (value) => {
8337
8710
  const openState = typeof value === "function" ? value(open) : value;
8338
8711
  if (setOpenProp) {
@@ -8360,10 +8733,10 @@ function SidebarProvider({
8360
8733
  } catch {
8361
8734
  }
8362
8735
  }, [persistKey, openProp]);
8363
- const toggleSidebar = React17.useCallback(() => {
8736
+ const toggleSidebar = React20.useCallback(() => {
8364
8737
  return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
8365
8738
  }, [isMobile, setOpen]);
8366
- React17.useEffect(() => {
8739
+ React20.useEffect(() => {
8367
8740
  const handleKeyDown = (event) => {
8368
8741
  if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
8369
8742
  event.preventDefault();
@@ -8374,7 +8747,7 @@ function SidebarProvider({
8374
8747
  return () => window.removeEventListener("keydown", handleKeyDown);
8375
8748
  }, [toggleSidebar]);
8376
8749
  const state = open ? "expanded" : "collapsed";
8377
- const contextValue = React17.useMemo(
8750
+ const contextValue = React20.useMemo(
8378
8751
  () => ({
8379
8752
  isMobile,
8380
8753
  open,
@@ -8570,7 +8943,7 @@ function SidebarInput({
8570
8943
  ...props
8571
8944
  }) {
8572
8945
  return /* @__PURE__ */ jsx(
8573
- Input,
8946
+ Input$1,
8574
8947
  {
8575
8948
  className: cn("h-8 w-full bg-background shadow-none", className),
8576
8949
  "data-sidebar": "input",
@@ -8840,7 +9213,7 @@ function SidebarMenuSkeleton({
8840
9213
  showIcon = false,
8841
9214
  ...props
8842
9215
  }) {
8843
- const width = React17.useMemo(() => {
9216
+ const width = React20.useMemo(() => {
8844
9217
  return `${Math.floor(Math.random() * 40) + 50}%`;
8845
9218
  }, []);
8846
9219
  return /* @__PURE__ */ jsxs(
@@ -8939,7 +9312,7 @@ function Slider({
8939
9312
  formatLabel = (labelValue) => String(labelValue),
8940
9313
  ...props
8941
9314
  }) {
8942
- const _values = React17.useMemo(() => {
9315
+ const _values = React20.useMemo(() => {
8943
9316
  if (value !== void 0) {
8944
9317
  return Array.isArray(value) ? value : [value];
8945
9318
  }
@@ -10331,30 +10704,30 @@ function VideoPlayer({
10331
10704
  loop = false,
10332
10705
  ...props
10333
10706
  }) {
10334
- const containerRef = React17.useRef(null);
10335
- const videoRef = React17.useRef(null);
10336
- const hideTimerRef = React17.useRef(null);
10337
- const [playing, setPlaying] = React17.useState(false);
10338
- const [currentTime, setCurrentTime] = React17.useState(0);
10339
- const [duration, setDuration] = React17.useState(0);
10340
- const [muted, setMuted] = React17.useState(false);
10341
- const [fullscreen, setFullscreen] = React17.useState(false);
10342
- const [controlsVisible, setControlsVisible] = React17.useState(true);
10707
+ const containerRef = React20.useRef(null);
10708
+ const videoRef = React20.useRef(null);
10709
+ const hideTimerRef = React20.useRef(null);
10710
+ const [playing, setPlaying] = React20.useState(false);
10711
+ const [currentTime, setCurrentTime] = React20.useState(0);
10712
+ const [duration, setDuration] = React20.useState(0);
10713
+ const [muted, setMuted] = React20.useState(false);
10714
+ const [fullscreen, setFullscreen] = React20.useState(false);
10715
+ const [controlsVisible, setControlsVisible] = React20.useState(true);
10343
10716
  const clearHideTimer = () => {
10344
10717
  if (hideTimerRef.current) clearTimeout(hideTimerRef.current);
10345
10718
  };
10346
- const scheduleHide = React17.useCallback(() => {
10719
+ const scheduleHide = React20.useCallback(() => {
10347
10720
  clearHideTimer();
10348
10721
  hideTimerRef.current = setTimeout(() => setControlsVisible(false), 2500);
10349
10722
  }, []);
10350
- React17.useEffect(() => () => clearHideTimer(), []);
10351
- React17.useEffect(() => {
10723
+ React20.useEffect(() => () => clearHideTimer(), []);
10724
+ React20.useEffect(() => {
10352
10725
  if (!playing) {
10353
10726
  clearHideTimer();
10354
10727
  setControlsVisible(true);
10355
10728
  }
10356
10729
  }, [playing]);
10357
- React17.useEffect(() => {
10730
+ React20.useEffect(() => {
10358
10731
  const handler = () => setFullscreen(!!document.fullscreenElement);
10359
10732
  document.addEventListener("fullscreenchange", handler);
10360
10733
  return () => document.removeEventListener("fullscreenchange", handler);
@@ -11068,6 +11441,6 @@ function useIs2xl({
11068
11441
  return is2xl;
11069
11442
  }
11070
11443
 
11071
- export { Accordion, AccordionPanel as AccordionContent, AccordionItem, AccordionPanel, AccordionTrigger, Alert, AlertAction, AlertDescription, AlertDialog, AlertDialogBackdrop, AlertDialogClose, AlertDialogPopup as AlertDialogContent, AlertDialogCreateHandle, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogBackdrop as AlertDialogOverlay, AlertDialogPopup, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertDialogViewport, AlertTitle, AnchoredToastProvider, AnimatedCounter, AnimatedThemeToggler, AppGalleryLogoIcon, AppStoreButton, AppleLogoIcon, AspectRatio, AuroraOrb, AuroraText, Autocomplete, AutocompleteClear, AutocompleteCollection, AutocompleteEmpty, AutocompleteGroup, AutocompleteGroupLabel, AutocompleteInput, AutocompleteItem, AutocompleteList, AutocompletePopup, AutocompleteRow, AutocompleteSeparator, AutocompleteStatus, AutocompleteTrigger, AutocompleteValue, Avatar, AvatarAddButton, AvatarCompanyIcon, AvatarFallback, AvatarGroup, AvatarImage, AvatarLabelGroup, AvatarProfilePhoto, AvatarUploadBase, Badge, BadgeAvatar, BadgeCloseButton, BadgeDot, BadgeFlag, BadgeGroup, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Group as ButtonGroup, GroupSeparator as ButtonGroupSeparator, GroupText as ButtonGroupText, CONFETTI_COLORS, Card, CardAction, CardPanel as CardContent, CardDescription, CardFooter, CardFrame, CardFrameDescription, CardFrameFooter, CardFrameHeader, CardFrameTitle, CardHeader, CardPanel, CardTitle, Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Chat, ChatEmptyState, ChatEmptyStateDescription, ChatEmptyStateIcon, ChatEmptyStateTitle, ChatHeader, ChatHeaderActions, ChatHeaderAvatar, ChatHeaderTitle, ChatInput, ChatMessage, ChatMessageBubble, ChatMessages, ChatSuggestion, ChatSuggestions, ChatToolCard, ChatToolCardActions, ChatToolCardHeader, ChatToolChip, ChatTypingIndicator, Collapsible, CollapsiblePanel as CollapsibleContent, CollapsiblePanel, CollapsibleTrigger, Combobox, ComboboxChip, ComboboxChips, ComboboxClear, ComboboxCollection, ComboboxEmpty, ComboboxGroup, ComboboxGroupLabel, ComboboxInput, ComboboxItem, ComboboxList, ComboboxPopup, ComboboxRow, ComboboxSeparator, ComboboxStatus, ComboboxTrigger, ComboboxValue, Command, CommandCollection, CommandCreateHandle, CommandDialog, CommandDialogPopup, CommandDialogTrigger, CommandEmpty, CommandFooter, CommandGroup, CommandGroupLabel, CommandInput, CommandItem, CommandList, CommandPanel, CommandSeparator, CommandShortcut, Confetti, ConfettiButton, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, CreditCard, DashboardHeader, DashboardPanel, DashboardTopbar, DataTablePaged, DatePicker, DateRangePicker, Dialog, DialogBackdrop, DialogClose, DialogPopup as DialogContent, DialogCreateHandle, DialogDescription, DialogFooter, DialogHeader, DialogBackdrop as DialogOverlay, DialogPanel, DialogPopup, DialogPortal, DialogTitle, DialogTrigger, DialogViewport, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DribbbleLogoIcon, Menu as DropdownMenu, MenuCheckboxItem as DropdownMenuCheckboxItem, MenuPopup as DropdownMenuContent, MenuCreateHandle as DropdownMenuCreateHandle, MenuGroup as DropdownMenuGroup, MenuItem as DropdownMenuItem, MenuGroupLabel as DropdownMenuLabel, MenuPortal as DropdownMenuPortal, MenuRadioGroup as DropdownMenuRadioGroup, MenuRadioItem as DropdownMenuRadioItem, MenuSeparator as DropdownMenuSeparator, MenuShortcut as DropdownMenuShortcut, MenuSub as DropdownMenuSub, MenuSubPopup as DropdownMenuSubContent, MenuSubTrigger as DropdownMenuSubTrigger, MenuTrigger as DropdownMenuTrigger, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, ErrorOrEmptyState, Fab, FacebookLogoIcon, FeaturedIcon, Fieldset, FieldsetLegend, FigmaLogoIcon, ForbiddenErrorState, Form, Frame, FrameDescription, FrameFooter, FrameHeader, FramePanel, FrameTitle, GalaxyStoreLogoIcon, GeneralErrorState, GoogleLogoIcon, GooglePlayLogoIcon, Group, GroupSeparator, GroupText, HelpTip, HorizontalScrollFader, HorizontalScrollFaderContent, HorizontalScrollFaderLeftScroller, HorizontalScrollFaderRightScroller, PreviewCard as HoverCard, PreviewCardPopup as HoverCardContent, PreviewCardTrigger as HoverCardTrigger, ImageUploadBase, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, InternalServerErrorState, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Kbd, KbdGroup, LeftScroller, Markdown, Menu, MenuCheckboxItem, MenuCreateHandle, MenuGroup, MenuGroupLabel, MenuItem, MenuPopup, MenuPortal, MenuRadioGroup, MenuRadioItem, MenuSeparator, MenuShortcut, MenuSub, MenuSubPopup, MenuSubTrigger, MenuTrigger, Menubar, MenuCheckboxItem as MenubarCheckboxItem, MenubarContent, MenuGroup as MenubarGroup, MenuItem as MenubarItem, MenuGroupLabel as MenubarLabel, MenubarMenu, MenuPortal as MenubarPortal, MenuRadioGroup as MenubarRadioGroup, MenuRadioItem as MenubarRadioItem, MenuSeparator as MenubarSeparator, MenuShortcut as MenubarShortcut, MenuSub as MenubarSub, MenuSubPopup as MenubarSubContent, MenuSubTrigger as MenubarSubTrigger, MenubarTrigger, Meter, MeterIndicator, MeterLabel, MeterTrack, MeterValue, MultiSelect, NavigationMenu, NavigationMenuContent, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NotFoundErrorState, OfflineErrorState, Pagination, PaginationContent, PaginationControls, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Pipeline, PipelineConversion, PreviewCard, PreviewCardPopup, PreviewCardTrigger, Progress, ProgressCircle, ProgressFloatingValue, ProgressHalfCircle, ProgressIndicator, ProgressLabel, ProgressTrack, ProgressValue, QRCode, QRCodeGradientScan, Radio, RadioGroup, Radio as RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, RightScroller, ScrollArea, ScrollBar, SectionHeader, SegmentedControl, Separator, Sheet, SheetBackdrop, SheetClose, SheetPopup as SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetBackdrop as SheetOverlay, SheetPanel, SheetPopup, SheetPortal, SheetTitle, SheetTrigger, SheetViewport, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, SliderValue, SmoothScroll, SocialButton, Spinner, Stat, StatDescription, StatGroup, StatLabel, StatTrend, StatValue, Stepper, StepperDescription, StepperIndicator, StepperItem, StepperSeparator, StepperTitle, StepperTrigger, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsPanel as TabsContent, TabsList, TabsPanel, TabsTab, TabsTab as TabsTrigger, Tag, TagGroup, target_countdown_default as TargetCountdown, TextEditor, ThemeContextOverride, ThemeProvider, Timeline, TimelineContent, TimelineDescription, TimelineDot, TimelineItem, TimelineTime, TimelineTitle, ToastProvider, Toggle, ToggleGroup, Toggle2 as ToggleGroupItem, ToggleGroupSeparator, Toolbar, ToolbarButton, ToolbarGroup, ToolbarInput, ToolbarLink, ToolbarSeparator, Tooltip, TooltipPopup as TooltipContent, TooltipCreateHandle, TooltipDescription, TooltipPopup, TooltipProvider, TooltipTitle, TooltipTrigger, UnauthorizedErrorState, VerticalScrollFader, VerticalScrollFaderBottomScroller, VerticalScrollFaderContent, VerticalScrollFaderTopScroller, VideoPlayer, XLogoIcon, anchoredToastManager, appStoreButtonVariants, avatarGroupVariants, avatarVariants, badgeGroupVariants, badgeVariants, chatMessageBubbleVariants, chatMessageVariants, fabVariants, featuredIconVariants, groupVariants, itemVariants, navigationMenuTriggerStyle, qrCodeVariants, script, sectionHeaderDescriptionVariants, sectionHeaderTitleVariants, sheetPopupVariants, sheetViewportVariants, sideCannons, socialButtonVariants, statTrendVariants, statVariants, toastManager, toggleVariants, useAutocompleteFilter, use_callback_ref_default as useCallbackRef, useCarousel, useComboboxFilter, useConfetti, useFirstRender, useHover, useIs2xl, useIsLg, useIsMd, useIsSm, use_is_tab_active_default as useIsTabActive, useIsXl, useMediaQuery, useSidebar, useSmoothWheel, useSubscribeBreakpoints, useTheme, videoPlayerVariants };
11444
+ export { Accordion, AccordionPanel as AccordionContent, AccordionItem, AccordionPanel, AccordionTrigger, Alert, AlertAction, AlertDescription, AlertDialog, AlertDialogBackdrop, AlertDialogClose, AlertDialogPopup as AlertDialogContent, AlertDialogCreateHandle, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogBackdrop as AlertDialogOverlay, AlertDialogPopup, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertDialogViewport, AlertTitle, AnchoredToastProvider, AnimatedCounter, AnimatedThemeToggler, AppGalleryLogoIcon, AppStoreButton, AppleLogoIcon, AspectRatio, AuroraOrb, AuroraText, Autocomplete, AutocompleteClear, AutocompleteCollection, AutocompleteEmpty, AutocompleteGroup, AutocompleteGroupLabel, AutocompleteInput, AutocompleteItem, AutocompleteList, AutocompletePopup, AutocompleteRow, AutocompleteSeparator, AutocompleteStatus, AutocompleteTrigger, AutocompleteValue, Avatar, AvatarAddButton, AvatarCompanyIcon, AvatarFallback, AvatarGroup, AvatarImage, AvatarLabelGroup, AvatarProfilePhoto, AvatarUploadBase, Badge, BadgeAvatar, BadgeCloseButton, BadgeDot, BadgeFlag, BadgeGroup, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Group as ButtonGroup, GroupSeparator as ButtonGroupSeparator, GroupText as ButtonGroupText, CONFETTI_COLORS, Card, CardAction, CardPanel as CardContent, CardDescription, CardFooter, CardFrame, CardFrameDescription, CardFrameFooter, CardFrameHeader, CardFrameTitle, CardHeader, CardPanel, CardTitle, Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Chat, ChatDivider, ChatEmptyState, ChatEmptyStateDescription, ChatEmptyStateIcon, ChatEmptyStateTitle, ChatHeader, ChatHeaderActions, ChatHeaderAvatar, ChatHeaderTitle, ChatInput, ChatMessage, ChatMessageBubble, ChatMessages, ChatSuggestion, ChatSuggestions, ChatToolCard, ChatToolCardActions, ChatToolCardHeader, ChatToolChip, ChatTypingIndicator, Collapsible, CollapsiblePanel as CollapsibleContent, CollapsiblePanel, CollapsibleTrigger, ColorAlphaSlider, ColorArea, ColorEyeDropper, ColorHueSlider, ColorPicker, ColorPickerPanel, ColorPickerProvider, ColorPreview, ColorSavedColors, ColorSwatch, ColorThumb, ColorValueInput, Combobox, ComboboxChip, ComboboxChips, ComboboxClear, ComboboxCollection, ComboboxEmpty, ComboboxGroup, ComboboxGroupLabel, ComboboxInput, ComboboxItem, ComboboxList, ComboboxPopup, ComboboxRow, ComboboxSeparator, ComboboxStatus, ComboboxTrigger, ComboboxValue, Command, CommandCollection, CommandCreateHandle, CommandDialog, CommandDialogPopup, CommandDialogTrigger, CommandEmpty, CommandFooter, CommandGroup, CommandGroupLabel, CommandInput, CommandItem, CommandList, CommandPanel, CommandSeparator, CommandShortcut, Confetti, ConfettiButton, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, ContextMeter, CreditCard, DashboardHeader, DashboardPanel, DashboardTopbar, DataTablePaged, DatePicker, DateRangePicker, Dialog, DialogBackdrop, DialogClose, DialogPopup as DialogContent, DialogCreateHandle, DialogDescription, DialogFooter, DialogHeader, DialogBackdrop as DialogOverlay, DialogPanel, DialogPopup, DialogPortal, DialogTitle, DialogTrigger, DialogViewport, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DribbbleLogoIcon, Menu as DropdownMenu, MenuCheckboxItem as DropdownMenuCheckboxItem, MenuPopup as DropdownMenuContent, MenuCreateHandle as DropdownMenuCreateHandle, MenuGroup as DropdownMenuGroup, MenuItem as DropdownMenuItem, MenuGroupLabel as DropdownMenuLabel, MenuPortal as DropdownMenuPortal, MenuRadioGroup as DropdownMenuRadioGroup, MenuRadioItem as DropdownMenuRadioItem, MenuSeparator as DropdownMenuSeparator, MenuShortcut as DropdownMenuShortcut, MenuSub as DropdownMenuSub, MenuSubPopup as DropdownMenuSubContent, MenuSubTrigger as DropdownMenuSubTrigger, MenuTrigger as DropdownMenuTrigger, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, ErrorOrEmptyState, Fab, FacebookLogoIcon, FeaturedIcon, Fieldset, FieldsetLegend, FigmaLogoIcon, ForbiddenErrorState, Form, Frame, FrameDescription, FrameFooter, FrameHeader, FramePanel, FrameTitle, GalaxyStoreLogoIcon, GeneralErrorState, GoogleLogoIcon, GooglePlayLogoIcon, Group, GroupSeparator, GroupText, HelpTip, HorizontalScrollFader, HorizontalScrollFaderContent, HorizontalScrollFaderLeftScroller, HorizontalScrollFaderRightScroller, PreviewCard as HoverCard, PreviewCardPopup as HoverCardContent, PreviewCardTrigger as HoverCardTrigger, ImageUploadBase, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, InternalServerErrorState, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Kbd, KbdGroup, LeftScroller, Markdown, Menu, MenuCheckboxItem, MenuCreateHandle, MenuGroup, MenuGroupLabel, MenuItem, MenuPopup, MenuPortal, MenuRadioGroup, MenuRadioItem, MenuSeparator, MenuShortcut, MenuSub, MenuSubPopup, MenuSubTrigger, MenuTrigger, Menubar, MenuCheckboxItem as MenubarCheckboxItem, MenubarContent, MenuGroup as MenubarGroup, MenuItem as MenubarItem, MenuGroupLabel as MenubarLabel, MenubarMenu, MenuPortal as MenubarPortal, MenuRadioGroup as MenubarRadioGroup, MenuRadioItem as MenubarRadioItem, MenuSeparator as MenubarSeparator, MenuShortcut as MenubarShortcut, MenuSub as MenubarSub, MenuSubPopup as MenubarSubContent, MenuSubTrigger as MenubarSubTrigger, MenubarTrigger, Meter, MeterIndicator, MeterLabel, MeterTrack, MeterValue, MultiSelect, NavigationMenu, NavigationMenuContent, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NotFoundErrorState, OfflineErrorState, Pagination, PaginationContent, PaginationControls, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Pipeline, PipelineConversion, PreviewCard, PreviewCardPopup, PreviewCardTrigger, Progress, ProgressCircle, ProgressFloatingValue, ProgressHalfCircle, ProgressIndicator, ProgressLabel, ProgressTrack, ProgressValue, QRCode, QRCodeGradientScan, Radio, RadioGroup, Radio as RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, RightScroller, ScrollArea, ScrollBar, SectionHeader, SegmentedControl, Separator, Sheet, SheetBackdrop, SheetClose, SheetPopup as SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetBackdrop as SheetOverlay, SheetPanel, SheetPopup, SheetPortal, SheetTitle, SheetTrigger, SheetViewport, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, SliderValue, SmoothScroll, SocialButton, Spinner, Stat, StatDescription, StatGroup, StatLabel, StatTrend, StatValue, Stepper, StepperDescription, StepperIndicator, StepperItem, StepperSeparator, StepperTitle, StepperTrigger, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsPanel as TabsContent, TabsList, TabsPanel, TabsTab, TabsTab as TabsTrigger, Tag, TagGroup, target_countdown_default as TargetCountdown, TextEditor, ThemeContextOverride, ThemeProvider, Timeline, TimelineContent, TimelineDescription, TimelineDot, TimelineItem, TimelineTime, TimelineTitle, ToastProvider, Toggle, ToggleGroup, Toggle2 as ToggleGroupItem, ToggleGroupSeparator, Toolbar, ToolbarButton, ToolbarGroup, ToolbarInput, ToolbarLink, ToolbarSeparator, Tooltip, TooltipPopup as TooltipContent, TooltipCreateHandle, TooltipDescription, TooltipPopup, TooltipProvider, TooltipTitle, TooltipTrigger, UnauthorizedErrorState, VerticalScrollFader, VerticalScrollFaderBottomScroller, VerticalScrollFaderContent, VerticalScrollFaderTopScroller, VideoPlayer, XLogoIcon, anchoredToastManager, appStoreButtonVariants, avatarGroupVariants, avatarVariants, badgeGroupVariants, badgeVariants, chatMessageBubbleVariants, chatMessageVariants, fabVariants, featuredIconVariants, groupVariants, itemVariants, navigationMenuTriggerStyle, qrCodeVariants, script, sectionHeaderDescriptionVariants, sectionHeaderTitleVariants, sheetPopupVariants, sheetViewportVariants, sideCannons, socialButtonVariants, statTrendVariants, statVariants, toastManager, toggleVariants, useAutocompleteFilter, use_callback_ref_default as useCallbackRef, useCarousel, useColorPicker, useComboboxFilter, useConfetti, useFirstRender, useHover, useIs2xl, useIsLg, useIsMd, useIsSm, use_is_tab_active_default as useIsTabActive, useIsXl, useMediaQuery, useSidebar, useSmoothWheel, useSubscribeBreakpoints, useTheme, videoPlayerVariants };
11072
11445
  //# sourceMappingURL=index.js.map
11073
11446
  //# sourceMappingURL=index.js.map