@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.d.ts +124 -1
- package/dist/index.js +452 -79
- package/dist/index.js.map +1 -1
- package/package.json +2 -1
- package/src/components/ui/chat-divider.tsx +67 -0
- package/src/components/ui/color-picker.tsx +378 -0
- package/src/components/ui/context-meter.tsx +134 -0
- package/src/index.ts +3 -0
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,
|
|
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
|
|
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
|
-
|
|
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 =
|
|
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 =
|
|
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 =
|
|
2586
|
+
var CarouselContext = React20.createContext(null);
|
|
2585
2587
|
function useCarousel() {
|
|
2586
|
-
const context =
|
|
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] =
|
|
2610
|
-
const [canScrollNext, setCanScrollNext] =
|
|
2611
|
-
const onSelect =
|
|
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 =
|
|
2618
|
+
const scrollPrev = React20.useCallback(() => {
|
|
2617
2619
|
api?.scrollPrev();
|
|
2618
2620
|
}, [api]);
|
|
2619
|
-
const scrollNext =
|
|
2621
|
+
const scrollNext = React20.useCallback(() => {
|
|
2620
2622
|
api?.scrollNext();
|
|
2621
2623
|
}, [api]);
|
|
2622
|
-
const handleKeyDown =
|
|
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
|
-
|
|
2636
|
+
React20.useEffect(() => {
|
|
2635
2637
|
if (!api || !setApi) return;
|
|
2636
2638
|
setApi(api);
|
|
2637
2639
|
}, [api, setApi]);
|
|
2638
|
-
|
|
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 =
|
|
2782
|
+
var ChartContext = React20.createContext(null);
|
|
2781
2783
|
function useChart() {
|
|
2782
|
-
const context =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
3070
|
-
const pinnedRef =
|
|
3071
|
-
const handleScroll =
|
|
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
|
-
|
|
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 =
|
|
3326
|
-
const submit =
|
|
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
|
-
|
|
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
|
|
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 =
|
|
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 } =
|
|
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 } =
|
|
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 } =
|
|
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 (
|
|
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] =
|
|
4532
|
-
const [query, setQuery] =
|
|
4533
|
-
const filteredRows =
|
|
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 =
|
|
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] =
|
|
6987
|
+
const [uncontrolledValue, setUncontrolledValue] = React20.useState(
|
|
6615
6988
|
defaultValue ?? []
|
|
6616
6989
|
);
|
|
6617
|
-
const [search, setSearch] =
|
|
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 =
|
|
6762
|
-
|
|
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 =
|
|
7254
|
-
|
|
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 =
|
|
7783
|
-
var StepperItemContext =
|
|
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 } =
|
|
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 } =
|
|
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 =
|
|
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 =
|
|
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" ?
|
|
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 =
|
|
8679
|
+
var SidebarContext = React20.createContext(null);
|
|
8307
8680
|
function useSidebar() {
|
|
8308
|
-
const context =
|
|
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] =
|
|
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] =
|
|
8333
|
-
const [_open, _setOpen] =
|
|
8705
|
+
const [openMobile, setOpenMobile] = React20.useState(false);
|
|
8706
|
+
const [_open, _setOpen] = React20.useState(defaultOpen);
|
|
8334
8707
|
const open = openProp ?? _open;
|
|
8335
|
-
const setOpen =
|
|
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 =
|
|
8736
|
+
const toggleSidebar = React20.useCallback(() => {
|
|
8364
8737
|
return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
|
|
8365
8738
|
}, [isMobile, setOpen]);
|
|
8366
|
-
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
10335
|
-
const videoRef =
|
|
10336
|
-
const hideTimerRef =
|
|
10337
|
-
const [playing, setPlaying] =
|
|
10338
|
-
const [currentTime, setCurrentTime] =
|
|
10339
|
-
const [duration, setDuration] =
|
|
10340
|
-
const [muted, setMuted] =
|
|
10341
|
-
const [fullscreen, setFullscreen] =
|
|
10342
|
-
const [controlsVisible, setControlsVisible] =
|
|
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 =
|
|
10719
|
+
const scheduleHide = React20.useCallback(() => {
|
|
10347
10720
|
clearHideTimer();
|
|
10348
10721
|
hideTimerRef.current = setTimeout(() => setControlsVisible(false), 2500);
|
|
10349
10722
|
}, []);
|
|
10350
|
-
|
|
10351
|
-
|
|
10723
|
+
React20.useEffect(() => () => clearHideTimer(), []);
|
|
10724
|
+
React20.useEffect(() => {
|
|
10352
10725
|
if (!playing) {
|
|
10353
10726
|
clearHideTimer();
|
|
10354
10727
|
setControlsVisible(true);
|
|
10355
10728
|
}
|
|
10356
10729
|
}, [playing]);
|
|
10357
|
-
|
|
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
|