@codapet/design-system 0.4.1 → 0.4.2
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.mts +47 -5
- package/dist/index.mjs +823 -283
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -2349,35 +2349,354 @@ function DateInput({
|
|
|
2349
2349
|
] }) });
|
|
2350
2350
|
}
|
|
2351
2351
|
|
|
2352
|
+
// src/components/ui/date-range-input.tsx
|
|
2353
|
+
import "class-variance-authority";
|
|
2354
|
+
import { format as dateFnsFormat2, parse as dateFnsParse2, isValid as isValid2 } from "date-fns";
|
|
2355
|
+
import { CalendarDays as CalendarDays2 } from "lucide-react";
|
|
2356
|
+
import * as React21 from "react";
|
|
2357
|
+
import { jsx as jsx23, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
2358
|
+
var DATE_FORMAT_TOKENS2 = {
|
|
2359
|
+
"MM/DD/YYYY": "MM/dd/yyyy",
|
|
2360
|
+
"DD/MM/YYYY": "dd/MM/yyyy",
|
|
2361
|
+
"YYYY-MM-DD": "yyyy-MM-dd",
|
|
2362
|
+
"DD-MM-YYYY": "dd-MM-yyyy",
|
|
2363
|
+
"MM-DD-YYYY": "MM-dd-yyyy",
|
|
2364
|
+
"DD.MM.YYYY": "dd.MM.yyyy",
|
|
2365
|
+
"MMMM D, YYYY": "MMMM d, yyyy",
|
|
2366
|
+
"D MMMM YYYY": "d MMMM yyyy"
|
|
2367
|
+
};
|
|
2368
|
+
var DATE_FORMAT_PLACEHOLDER2 = {
|
|
2369
|
+
"MM/DD/YYYY": "mm/dd/yyyy",
|
|
2370
|
+
"DD/MM/YYYY": "dd/mm/yyyy",
|
|
2371
|
+
"YYYY-MM-DD": "yyyy-mm-dd",
|
|
2372
|
+
"DD-MM-YYYY": "dd-mm-yyyy",
|
|
2373
|
+
"MM-DD-YYYY": "mm-dd-yyyy",
|
|
2374
|
+
"DD.MM.YYYY": "dd.mm.yyyy",
|
|
2375
|
+
"MMMM D, YYYY": "Month d, yyyy",
|
|
2376
|
+
"D MMMM YYYY": "d Month yyyy"
|
|
2377
|
+
};
|
|
2378
|
+
var INPUT_PROP_KEYS2 = /* @__PURE__ */ new Set([
|
|
2379
|
+
"accept",
|
|
2380
|
+
"alt",
|
|
2381
|
+
"autoComplete",
|
|
2382
|
+
"autoFocus",
|
|
2383
|
+
"capture",
|
|
2384
|
+
"checked",
|
|
2385
|
+
"dirName",
|
|
2386
|
+
"form",
|
|
2387
|
+
"formAction",
|
|
2388
|
+
"formEncType",
|
|
2389
|
+
"formMethod",
|
|
2390
|
+
"formNoValidate",
|
|
2391
|
+
"formTarget",
|
|
2392
|
+
"height",
|
|
2393
|
+
"list",
|
|
2394
|
+
"maxLength",
|
|
2395
|
+
"minLength",
|
|
2396
|
+
"multiple",
|
|
2397
|
+
"name",
|
|
2398
|
+
"pattern",
|
|
2399
|
+
"readOnly",
|
|
2400
|
+
"required",
|
|
2401
|
+
"size",
|
|
2402
|
+
"src",
|
|
2403
|
+
"step",
|
|
2404
|
+
"type",
|
|
2405
|
+
"width",
|
|
2406
|
+
"id",
|
|
2407
|
+
"inputMode",
|
|
2408
|
+
"lang",
|
|
2409
|
+
"tabIndex",
|
|
2410
|
+
"title",
|
|
2411
|
+
"role",
|
|
2412
|
+
"style",
|
|
2413
|
+
"onFocus",
|
|
2414
|
+
"onFocusCapture",
|
|
2415
|
+
"onBlurCapture",
|
|
2416
|
+
"onInput",
|
|
2417
|
+
"onInvalid",
|
|
2418
|
+
"onKeyDownCapture",
|
|
2419
|
+
"onKeyPress",
|
|
2420
|
+
"onKeyPressCapture",
|
|
2421
|
+
"onKeyUp",
|
|
2422
|
+
"onKeyUpCapture",
|
|
2423
|
+
"onPaste",
|
|
2424
|
+
"onPasteCapture",
|
|
2425
|
+
"onPointerDown",
|
|
2426
|
+
"onPointerDownCapture",
|
|
2427
|
+
"onPointerUp",
|
|
2428
|
+
"onPointerUpCapture",
|
|
2429
|
+
"onMouseDown",
|
|
2430
|
+
"onMouseDownCapture",
|
|
2431
|
+
"onMouseUp",
|
|
2432
|
+
"onMouseUpCapture",
|
|
2433
|
+
"onCompositionEnd",
|
|
2434
|
+
"onCompositionStart",
|
|
2435
|
+
"onCompositionUpdate"
|
|
2436
|
+
]);
|
|
2437
|
+
function formatDate2(date, dateFormat = "MM/DD/YYYY") {
|
|
2438
|
+
if (!date || !isValid2(date)) {
|
|
2439
|
+
return "";
|
|
2440
|
+
}
|
|
2441
|
+
return dateFnsFormat2(date, DATE_FORMAT_TOKENS2[dateFormat]);
|
|
2442
|
+
}
|
|
2443
|
+
function formatRange(range, dateFormat = "MM/DD/YYYY") {
|
|
2444
|
+
if (!range) return "";
|
|
2445
|
+
const from = formatDate2(range.from, dateFormat);
|
|
2446
|
+
const to = formatDate2(range.to, dateFormat);
|
|
2447
|
+
if (from && to) return `${from} \u2013 ${to}`;
|
|
2448
|
+
if (from) return `${from} \u2013`;
|
|
2449
|
+
return "";
|
|
2450
|
+
}
|
|
2451
|
+
function parseRange(value, dateFormat = "MM/DD/YYYY") {
|
|
2452
|
+
if (!value) return null;
|
|
2453
|
+
const parts = value.split(/\s*[\u2013\-]\s*/);
|
|
2454
|
+
const fromStr = parts[0]?.trim();
|
|
2455
|
+
if (!fromStr) return null;
|
|
2456
|
+
const fromParsed = dateFnsParse2(fromStr, DATE_FORMAT_TOKENS2[dateFormat], /* @__PURE__ */ new Date());
|
|
2457
|
+
if (!isValid2(fromParsed)) return null;
|
|
2458
|
+
const toStr = parts[1]?.trim();
|
|
2459
|
+
if (!toStr) return { from: fromParsed, to: void 0 };
|
|
2460
|
+
const toParsed = dateFnsParse2(toStr, DATE_FORMAT_TOKENS2[dateFormat], /* @__PURE__ */ new Date());
|
|
2461
|
+
if (!isValid2(toParsed)) return { from: fromParsed, to: void 0 };
|
|
2462
|
+
return { from: fromParsed, to: toParsed };
|
|
2463
|
+
}
|
|
2464
|
+
function rangePlaceholder(dateFormat) {
|
|
2465
|
+
const p = DATE_FORMAT_PLACEHOLDER2[dateFormat];
|
|
2466
|
+
return `${p} \u2013 ${p}`;
|
|
2467
|
+
}
|
|
2468
|
+
function DateRangeInput({
|
|
2469
|
+
dateRange,
|
|
2470
|
+
setDateRange,
|
|
2471
|
+
maxDate,
|
|
2472
|
+
minDate,
|
|
2473
|
+
disableFuture = true,
|
|
2474
|
+
className,
|
|
2475
|
+
inputClassName,
|
|
2476
|
+
calendarClassName,
|
|
2477
|
+
inputDisabled,
|
|
2478
|
+
dateFormat = "MM/DD/YYYY",
|
|
2479
|
+
selected,
|
|
2480
|
+
onSelect,
|
|
2481
|
+
month,
|
|
2482
|
+
onMonthChange,
|
|
2483
|
+
disabled: calendarDisabled,
|
|
2484
|
+
captionLayout = "dropdown",
|
|
2485
|
+
showOutsideDays = false,
|
|
2486
|
+
classNames,
|
|
2487
|
+
placeholder,
|
|
2488
|
+
onBlur,
|
|
2489
|
+
...restProps
|
|
2490
|
+
}) {
|
|
2491
|
+
const resolvedPlaceholder = placeholder ?? rangePlaceholder(dateFormat);
|
|
2492
|
+
const [open, setOpen] = React21.useState(false);
|
|
2493
|
+
const [monthState, setMonthState] = React21.useState(
|
|
2494
|
+
dateRange?.from ?? null
|
|
2495
|
+
);
|
|
2496
|
+
const [value, setValue] = React21.useState(formatRange(dateRange, dateFormat));
|
|
2497
|
+
const [inputProps, calendarProps] = React21.useMemo(() => {
|
|
2498
|
+
const nextInputProps = {};
|
|
2499
|
+
const nextCalendarProps = {};
|
|
2500
|
+
for (const [key, val] of Object.entries(restProps)) {
|
|
2501
|
+
const isInputProp = INPUT_PROP_KEYS2.has(key) || key.startsWith("aria-") || key.startsWith("data-");
|
|
2502
|
+
if (isInputProp) {
|
|
2503
|
+
nextInputProps[key] = val;
|
|
2504
|
+
} else {
|
|
2505
|
+
nextCalendarProps[key] = val;
|
|
2506
|
+
}
|
|
2507
|
+
}
|
|
2508
|
+
return [
|
|
2509
|
+
nextInputProps,
|
|
2510
|
+
nextCalendarProps
|
|
2511
|
+
];
|
|
2512
|
+
}, [restProps]);
|
|
2513
|
+
const today = React21.useMemo(() => {
|
|
2514
|
+
const d = /* @__PURE__ */ new Date();
|
|
2515
|
+
d.setHours(0, 0, 0, 0);
|
|
2516
|
+
return d;
|
|
2517
|
+
}, []);
|
|
2518
|
+
const effectiveMaxDate = React21.useMemo(() => {
|
|
2519
|
+
if (disableFuture) {
|
|
2520
|
+
if (maxDate) {
|
|
2521
|
+
const max = new Date(maxDate);
|
|
2522
|
+
max.setHours(0, 0, 0, 0);
|
|
2523
|
+
return max < today ? max : today;
|
|
2524
|
+
}
|
|
2525
|
+
return today;
|
|
2526
|
+
}
|
|
2527
|
+
if (maxDate) {
|
|
2528
|
+
const max = new Date(maxDate);
|
|
2529
|
+
max.setHours(0, 0, 0, 0);
|
|
2530
|
+
return max;
|
|
2531
|
+
}
|
|
2532
|
+
return void 0;
|
|
2533
|
+
}, [maxDate, disableFuture, today]);
|
|
2534
|
+
const effectiveMinDate = React21.useMemo(() => {
|
|
2535
|
+
if (minDate) {
|
|
2536
|
+
const min = new Date(minDate);
|
|
2537
|
+
min.setHours(0, 0, 0, 0);
|
|
2538
|
+
return min;
|
|
2539
|
+
}
|
|
2540
|
+
return null;
|
|
2541
|
+
}, [minDate]);
|
|
2542
|
+
React21.useEffect(() => {
|
|
2543
|
+
setValue(formatRange(dateRange, dateFormat));
|
|
2544
|
+
if (dateRange?.from) {
|
|
2545
|
+
setMonthState(dateRange.from);
|
|
2546
|
+
}
|
|
2547
|
+
}, [dateRange, dateFormat]);
|
|
2548
|
+
const effectiveMonth = month ?? monthState ?? void 0;
|
|
2549
|
+
const effectiveSelected = selected ?? dateRange;
|
|
2550
|
+
const isInputDisabled = inputDisabled ?? (typeof calendarDisabled === "boolean" ? calendarDisabled : false);
|
|
2551
|
+
const isWithinBounds = (d) => {
|
|
2552
|
+
const isAfterMin = !effectiveMinDate || d >= effectiveMinDate;
|
|
2553
|
+
const isBeforeMax = !effectiveMaxDate || d <= effectiveMaxDate;
|
|
2554
|
+
return isAfterMin && isBeforeMax;
|
|
2555
|
+
};
|
|
2556
|
+
const defaultCalendarDisabled = (date) => {
|
|
2557
|
+
const checkDate = new Date(date);
|
|
2558
|
+
checkDate.setHours(0, 0, 0, 0);
|
|
2559
|
+
return !isWithinBounds(checkDate);
|
|
2560
|
+
};
|
|
2561
|
+
const handleCalendarSelect = (range) => {
|
|
2562
|
+
if (onSelect) {
|
|
2563
|
+
onSelect(range);
|
|
2564
|
+
return;
|
|
2565
|
+
}
|
|
2566
|
+
setDateRange(range);
|
|
2567
|
+
};
|
|
2568
|
+
const resolvedCalendarProps = {
|
|
2569
|
+
...calendarProps,
|
|
2570
|
+
mode: "range",
|
|
2571
|
+
selected: effectiveSelected,
|
|
2572
|
+
captionLayout,
|
|
2573
|
+
month: effectiveMonth,
|
|
2574
|
+
onMonthChange: onMonthChange ?? setMonthState,
|
|
2575
|
+
showOutsideDays,
|
|
2576
|
+
className: cn(
|
|
2577
|
+
"md:w-auto w-[calc(100vw-50px)] mx-auto h-[350px] overflow-y-auto md:h-auto m-2",
|
|
2578
|
+
calendarClassName
|
|
2579
|
+
),
|
|
2580
|
+
classNames,
|
|
2581
|
+
onSelect: handleCalendarSelect,
|
|
2582
|
+
disabled: calendarDisabled ?? defaultCalendarDisabled
|
|
2583
|
+
};
|
|
2584
|
+
const handleInputChange = (e) => {
|
|
2585
|
+
const inputValue = e.target.value;
|
|
2586
|
+
setValue(inputValue);
|
|
2587
|
+
if (inputValue === "") {
|
|
2588
|
+
setDateRange(void 0);
|
|
2589
|
+
return;
|
|
2590
|
+
}
|
|
2591
|
+
const parsed = parseRange(inputValue, dateFormat);
|
|
2592
|
+
if (!parsed || !parsed.from) return;
|
|
2593
|
+
const from = new Date(parsed.from);
|
|
2594
|
+
from.setHours(0, 0, 0, 0);
|
|
2595
|
+
if (!isWithinBounds(from)) return;
|
|
2596
|
+
if (parsed.to) {
|
|
2597
|
+
const to = new Date(parsed.to);
|
|
2598
|
+
to.setHours(0, 0, 0, 0);
|
|
2599
|
+
if (isWithinBounds(to) && from <= to) {
|
|
2600
|
+
setDateRange(parsed);
|
|
2601
|
+
setMonthState(from);
|
|
2602
|
+
}
|
|
2603
|
+
} else {
|
|
2604
|
+
setDateRange({ from: parsed.from, to: void 0 });
|
|
2605
|
+
setMonthState(from);
|
|
2606
|
+
}
|
|
2607
|
+
};
|
|
2608
|
+
const handleBlur = (e) => {
|
|
2609
|
+
onBlur?.(e);
|
|
2610
|
+
if (value === "") {
|
|
2611
|
+
if (dateRange !== void 0) {
|
|
2612
|
+
setDateRange(void 0);
|
|
2613
|
+
}
|
|
2614
|
+
return;
|
|
2615
|
+
}
|
|
2616
|
+
const parsed = parseRange(value, dateFormat);
|
|
2617
|
+
if (!parsed || !parsed.from) {
|
|
2618
|
+
setValue(formatRange(dateRange, dateFormat));
|
|
2619
|
+
return;
|
|
2620
|
+
}
|
|
2621
|
+
const from = new Date(parsed.from);
|
|
2622
|
+
from.setHours(0, 0, 0, 0);
|
|
2623
|
+
if (!isWithinBounds(from)) {
|
|
2624
|
+
setValue(formatRange(dateRange, dateFormat));
|
|
2625
|
+
return;
|
|
2626
|
+
}
|
|
2627
|
+
if (parsed.to) {
|
|
2628
|
+
const to = new Date(parsed.to);
|
|
2629
|
+
to.setHours(0, 0, 0, 0);
|
|
2630
|
+
if (!isWithinBounds(to) || from > to) {
|
|
2631
|
+
setValue(formatRange(dateRange, dateFormat));
|
|
2632
|
+
}
|
|
2633
|
+
}
|
|
2634
|
+
};
|
|
2635
|
+
return /* @__PURE__ */ jsx23("div", { className: cn("relative flex gap-2", className), children: /* @__PURE__ */ jsxs11(Popover, { open, onOpenChange: setOpen, children: [
|
|
2636
|
+
/* @__PURE__ */ jsx23(PopoverTrigger, { asChild: true, disabled: isInputDisabled, children: /* @__PURE__ */ jsx23("div", { className: "w-full relative", children: /* @__PURE__ */ jsx23(
|
|
2637
|
+
Input,
|
|
2638
|
+
{
|
|
2639
|
+
value,
|
|
2640
|
+
placeholder: resolvedPlaceholder,
|
|
2641
|
+
className: cn("bg-background cursor-pointer", inputClassName),
|
|
2642
|
+
onChange: handleInputChange,
|
|
2643
|
+
onBlur: handleBlur,
|
|
2644
|
+
disabled: isInputDisabled,
|
|
2645
|
+
onKeyDown: (e) => {
|
|
2646
|
+
if (e.key === "ArrowDown" && !isInputDisabled) {
|
|
2647
|
+
e.preventDefault();
|
|
2648
|
+
setOpen(true);
|
|
2649
|
+
}
|
|
2650
|
+
},
|
|
2651
|
+
rightIcon: /* @__PURE__ */ jsx23(CalendarDays2, { className: "h-4 w-4 text-muted-foreground" }),
|
|
2652
|
+
rightIconOnClick: isInputDisabled ? void 0 : () => setOpen(!open),
|
|
2653
|
+
rightIconButtonProps: { disabled: isInputDisabled },
|
|
2654
|
+
...inputProps
|
|
2655
|
+
}
|
|
2656
|
+
) }) }),
|
|
2657
|
+
/* @__PURE__ */ jsx23(
|
|
2658
|
+
PopoverContent,
|
|
2659
|
+
{
|
|
2660
|
+
className: "w-auto overflow-hidden p-0",
|
|
2661
|
+
align: "end",
|
|
2662
|
+
alignOffset: -8,
|
|
2663
|
+
sideOffset: 10,
|
|
2664
|
+
side: "top",
|
|
2665
|
+
children: /* @__PURE__ */ jsx23(Calendar, { ...resolvedCalendarProps })
|
|
2666
|
+
}
|
|
2667
|
+
)
|
|
2668
|
+
] }) });
|
|
2669
|
+
}
|
|
2670
|
+
|
|
2352
2671
|
// src/components/ui/drawer.tsx
|
|
2353
2672
|
import "react";
|
|
2354
2673
|
import { Drawer as DrawerPrimitive } from "vaul";
|
|
2355
|
-
import { jsx as
|
|
2674
|
+
import { jsx as jsx24, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
2356
2675
|
function Drawer({
|
|
2357
2676
|
...props
|
|
2358
2677
|
}) {
|
|
2359
|
-
return /* @__PURE__ */
|
|
2678
|
+
return /* @__PURE__ */ jsx24(DrawerPrimitive.Root, { "data-slot": "drawer", ...props, repositionInputs: false });
|
|
2360
2679
|
}
|
|
2361
2680
|
function DrawerTrigger({
|
|
2362
2681
|
...props
|
|
2363
2682
|
}) {
|
|
2364
|
-
return /* @__PURE__ */
|
|
2683
|
+
return /* @__PURE__ */ jsx24(DrawerPrimitive.Trigger, { "data-slot": "drawer-trigger", ...props });
|
|
2365
2684
|
}
|
|
2366
2685
|
function DrawerPortal({
|
|
2367
2686
|
...props
|
|
2368
2687
|
}) {
|
|
2369
|
-
return /* @__PURE__ */
|
|
2688
|
+
return /* @__PURE__ */ jsx24(DrawerPrimitive.Portal, { "data-slot": "drawer-portal", ...props });
|
|
2370
2689
|
}
|
|
2371
2690
|
function DrawerClose({
|
|
2372
2691
|
...props
|
|
2373
2692
|
}) {
|
|
2374
|
-
return /* @__PURE__ */
|
|
2693
|
+
return /* @__PURE__ */ jsx24(DrawerPrimitive.Close, { "data-slot": "drawer-close", ...props });
|
|
2375
2694
|
}
|
|
2376
2695
|
function DrawerOverlay({
|
|
2377
2696
|
className,
|
|
2378
2697
|
...props
|
|
2379
2698
|
}) {
|
|
2380
|
-
return /* @__PURE__ */
|
|
2699
|
+
return /* @__PURE__ */ jsx24(
|
|
2381
2700
|
DrawerPrimitive.Overlay,
|
|
2382
2701
|
{
|
|
2383
2702
|
"data-slot": "drawer-overlay",
|
|
@@ -2395,9 +2714,9 @@ function DrawerContent({
|
|
|
2395
2714
|
withCloseButton = true,
|
|
2396
2715
|
...props
|
|
2397
2716
|
}) {
|
|
2398
|
-
return /* @__PURE__ */
|
|
2399
|
-
/* @__PURE__ */
|
|
2400
|
-
/* @__PURE__ */
|
|
2717
|
+
return /* @__PURE__ */ jsxs12(DrawerPortal, { "data-slot": "drawer-portal", children: [
|
|
2718
|
+
/* @__PURE__ */ jsx24(DrawerOverlay, {}),
|
|
2719
|
+
/* @__PURE__ */ jsxs12(
|
|
2401
2720
|
DrawerPrimitive.Content,
|
|
2402
2721
|
{
|
|
2403
2722
|
"data-slot": "drawer-content",
|
|
@@ -2411,7 +2730,7 @@ function DrawerContent({
|
|
|
2411
2730
|
),
|
|
2412
2731
|
...props,
|
|
2413
2732
|
children: [
|
|
2414
|
-
withCloseButton && /* @__PURE__ */
|
|
2733
|
+
withCloseButton && /* @__PURE__ */ jsx24("div", { className: "bg-muted mx-auto mt-4 hidden h-2 w-[100px] shrink-0 rounded-full group-data-[vaul-drawer-direction=bottom]/drawer-content:block" }),
|
|
2415
2734
|
children
|
|
2416
2735
|
]
|
|
2417
2736
|
}
|
|
@@ -2419,7 +2738,7 @@ function DrawerContent({
|
|
|
2419
2738
|
] });
|
|
2420
2739
|
}
|
|
2421
2740
|
function DrawerHeader({ className, ...props }) {
|
|
2422
|
-
return /* @__PURE__ */
|
|
2741
|
+
return /* @__PURE__ */ jsx24(
|
|
2423
2742
|
"div",
|
|
2424
2743
|
{
|
|
2425
2744
|
"data-slot": "drawer-header",
|
|
@@ -2432,7 +2751,7 @@ function DrawerHeader({ className, ...props }) {
|
|
|
2432
2751
|
);
|
|
2433
2752
|
}
|
|
2434
2753
|
function DrawerFooter({ className, ...props }) {
|
|
2435
|
-
return /* @__PURE__ */
|
|
2754
|
+
return /* @__PURE__ */ jsx24(
|
|
2436
2755
|
"div",
|
|
2437
2756
|
{
|
|
2438
2757
|
"data-slot": "drawer-footer",
|
|
@@ -2445,7 +2764,7 @@ function DrawerTitle({
|
|
|
2445
2764
|
className,
|
|
2446
2765
|
...props
|
|
2447
2766
|
}) {
|
|
2448
|
-
return /* @__PURE__ */
|
|
2767
|
+
return /* @__PURE__ */ jsx24(
|
|
2449
2768
|
DrawerPrimitive.Title,
|
|
2450
2769
|
{
|
|
2451
2770
|
"data-slot": "drawer-title",
|
|
@@ -2458,7 +2777,7 @@ function DrawerDescription({
|
|
|
2458
2777
|
className,
|
|
2459
2778
|
...props
|
|
2460
2779
|
}) {
|
|
2461
|
-
return /* @__PURE__ */
|
|
2780
|
+
return /* @__PURE__ */ jsx24(
|
|
2462
2781
|
DrawerPrimitive.Description,
|
|
2463
2782
|
{
|
|
2464
2783
|
"data-slot": "drawer-description",
|
|
@@ -2472,21 +2791,21 @@ function DrawerDescription({
|
|
|
2472
2791
|
import "react";
|
|
2473
2792
|
import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
|
|
2474
2793
|
import { CheckIcon as CheckIcon2, ChevronRightIcon as ChevronRightIcon3, CircleIcon as CircleIcon2 } from "lucide-react";
|
|
2475
|
-
import { jsx as
|
|
2794
|
+
import { jsx as jsx25, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
2476
2795
|
function DropdownMenu({
|
|
2477
2796
|
...props
|
|
2478
2797
|
}) {
|
|
2479
|
-
return /* @__PURE__ */
|
|
2798
|
+
return /* @__PURE__ */ jsx25(DropdownMenuPrimitive.Root, { "data-slot": "dropdown-menu", ...props });
|
|
2480
2799
|
}
|
|
2481
2800
|
function DropdownMenuPortal({
|
|
2482
2801
|
...props
|
|
2483
2802
|
}) {
|
|
2484
|
-
return /* @__PURE__ */
|
|
2803
|
+
return /* @__PURE__ */ jsx25(DropdownMenuPrimitive.Portal, { "data-slot": "dropdown-menu-portal", ...props });
|
|
2485
2804
|
}
|
|
2486
2805
|
function DropdownMenuTrigger({
|
|
2487
2806
|
...props
|
|
2488
2807
|
}) {
|
|
2489
|
-
return /* @__PURE__ */
|
|
2808
|
+
return /* @__PURE__ */ jsx25(
|
|
2490
2809
|
DropdownMenuPrimitive.Trigger,
|
|
2491
2810
|
{
|
|
2492
2811
|
"data-slot": "dropdown-menu-trigger",
|
|
@@ -2499,7 +2818,7 @@ function DropdownMenuContent({
|
|
|
2499
2818
|
sideOffset = 4,
|
|
2500
2819
|
...props
|
|
2501
2820
|
}) {
|
|
2502
|
-
return /* @__PURE__ */
|
|
2821
|
+
return /* @__PURE__ */ jsx25(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx25(
|
|
2503
2822
|
DropdownMenuPrimitive.Content,
|
|
2504
2823
|
{
|
|
2505
2824
|
"data-slot": "dropdown-menu-content",
|
|
@@ -2515,7 +2834,7 @@ function DropdownMenuContent({
|
|
|
2515
2834
|
function DropdownMenuGroup({
|
|
2516
2835
|
...props
|
|
2517
2836
|
}) {
|
|
2518
|
-
return /* @__PURE__ */
|
|
2837
|
+
return /* @__PURE__ */ jsx25(DropdownMenuPrimitive.Group, { "data-slot": "dropdown-menu-group", ...props });
|
|
2519
2838
|
}
|
|
2520
2839
|
function DropdownMenuItem({
|
|
2521
2840
|
className,
|
|
@@ -2523,7 +2842,7 @@ function DropdownMenuItem({
|
|
|
2523
2842
|
variant = "default",
|
|
2524
2843
|
...props
|
|
2525
2844
|
}) {
|
|
2526
|
-
return /* @__PURE__ */
|
|
2845
|
+
return /* @__PURE__ */ jsx25(
|
|
2527
2846
|
DropdownMenuPrimitive.Item,
|
|
2528
2847
|
{
|
|
2529
2848
|
"data-slot": "dropdown-menu-item",
|
|
@@ -2543,7 +2862,7 @@ function DropdownMenuCheckboxItem({
|
|
|
2543
2862
|
checked,
|
|
2544
2863
|
...props
|
|
2545
2864
|
}) {
|
|
2546
|
-
return /* @__PURE__ */
|
|
2865
|
+
return /* @__PURE__ */ jsxs13(
|
|
2547
2866
|
DropdownMenuPrimitive.CheckboxItem,
|
|
2548
2867
|
{
|
|
2549
2868
|
"data-slot": "dropdown-menu-checkbox-item",
|
|
@@ -2554,7 +2873,7 @@ function DropdownMenuCheckboxItem({
|
|
|
2554
2873
|
checked,
|
|
2555
2874
|
...props,
|
|
2556
2875
|
children: [
|
|
2557
|
-
/* @__PURE__ */
|
|
2876
|
+
/* @__PURE__ */ jsx25("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx25(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx25(CheckIcon2, { className: "size-4" }) }) }),
|
|
2558
2877
|
children
|
|
2559
2878
|
]
|
|
2560
2879
|
}
|
|
@@ -2563,7 +2882,7 @@ function DropdownMenuCheckboxItem({
|
|
|
2563
2882
|
function DropdownMenuRadioGroup({
|
|
2564
2883
|
...props
|
|
2565
2884
|
}) {
|
|
2566
|
-
return /* @__PURE__ */
|
|
2885
|
+
return /* @__PURE__ */ jsx25(
|
|
2567
2886
|
DropdownMenuPrimitive.RadioGroup,
|
|
2568
2887
|
{
|
|
2569
2888
|
"data-slot": "dropdown-menu-radio-group",
|
|
@@ -2576,7 +2895,7 @@ function DropdownMenuRadioItem({
|
|
|
2576
2895
|
children,
|
|
2577
2896
|
...props
|
|
2578
2897
|
}) {
|
|
2579
|
-
return /* @__PURE__ */
|
|
2898
|
+
return /* @__PURE__ */ jsxs13(
|
|
2580
2899
|
DropdownMenuPrimitive.RadioItem,
|
|
2581
2900
|
{
|
|
2582
2901
|
"data-slot": "dropdown-menu-radio-item",
|
|
@@ -2586,7 +2905,7 @@ function DropdownMenuRadioItem({
|
|
|
2586
2905
|
),
|
|
2587
2906
|
...props,
|
|
2588
2907
|
children: [
|
|
2589
|
-
/* @__PURE__ */
|
|
2908
|
+
/* @__PURE__ */ jsx25("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx25(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx25(CircleIcon2, { className: "size-2 fill-current" }) }) }),
|
|
2590
2909
|
children
|
|
2591
2910
|
]
|
|
2592
2911
|
}
|
|
@@ -2597,7 +2916,7 @@ function DropdownMenuLabel({
|
|
|
2597
2916
|
inset,
|
|
2598
2917
|
...props
|
|
2599
2918
|
}) {
|
|
2600
|
-
return /* @__PURE__ */
|
|
2919
|
+
return /* @__PURE__ */ jsx25(
|
|
2601
2920
|
DropdownMenuPrimitive.Label,
|
|
2602
2921
|
{
|
|
2603
2922
|
"data-slot": "dropdown-menu-label",
|
|
@@ -2614,7 +2933,7 @@ function DropdownMenuSeparator({
|
|
|
2614
2933
|
className,
|
|
2615
2934
|
...props
|
|
2616
2935
|
}) {
|
|
2617
|
-
return /* @__PURE__ */
|
|
2936
|
+
return /* @__PURE__ */ jsx25(
|
|
2618
2937
|
DropdownMenuPrimitive.Separator,
|
|
2619
2938
|
{
|
|
2620
2939
|
"data-slot": "dropdown-menu-separator",
|
|
@@ -2627,7 +2946,7 @@ function DropdownMenuShortcut({
|
|
|
2627
2946
|
className,
|
|
2628
2947
|
...props
|
|
2629
2948
|
}) {
|
|
2630
|
-
return /* @__PURE__ */
|
|
2949
|
+
return /* @__PURE__ */ jsx25(
|
|
2631
2950
|
"span",
|
|
2632
2951
|
{
|
|
2633
2952
|
"data-slot": "dropdown-menu-shortcut",
|
|
@@ -2642,7 +2961,7 @@ function DropdownMenuShortcut({
|
|
|
2642
2961
|
function DropdownMenuSub({
|
|
2643
2962
|
...props
|
|
2644
2963
|
}) {
|
|
2645
|
-
return /* @__PURE__ */
|
|
2964
|
+
return /* @__PURE__ */ jsx25(DropdownMenuPrimitive.Sub, { "data-slot": "dropdown-menu-sub", ...props });
|
|
2646
2965
|
}
|
|
2647
2966
|
function DropdownMenuSubTrigger({
|
|
2648
2967
|
className,
|
|
@@ -2650,7 +2969,7 @@ function DropdownMenuSubTrigger({
|
|
|
2650
2969
|
children,
|
|
2651
2970
|
...props
|
|
2652
2971
|
}) {
|
|
2653
|
-
return /* @__PURE__ */
|
|
2972
|
+
return /* @__PURE__ */ jsxs13(
|
|
2654
2973
|
DropdownMenuPrimitive.SubTrigger,
|
|
2655
2974
|
{
|
|
2656
2975
|
"data-slot": "dropdown-menu-sub-trigger",
|
|
@@ -2662,7 +2981,7 @@ function DropdownMenuSubTrigger({
|
|
|
2662
2981
|
...props,
|
|
2663
2982
|
children: [
|
|
2664
2983
|
children,
|
|
2665
|
-
/* @__PURE__ */
|
|
2984
|
+
/* @__PURE__ */ jsx25(ChevronRightIcon3, { className: "ml-auto size-4" })
|
|
2666
2985
|
]
|
|
2667
2986
|
}
|
|
2668
2987
|
);
|
|
@@ -2671,7 +2990,7 @@ function DropdownMenuSubContent({
|
|
|
2671
2990
|
className,
|
|
2672
2991
|
...props
|
|
2673
2992
|
}) {
|
|
2674
|
-
return /* @__PURE__ */
|
|
2993
|
+
return /* @__PURE__ */ jsx25(
|
|
2675
2994
|
DropdownMenuPrimitive.SubContent,
|
|
2676
2995
|
{
|
|
2677
2996
|
"data-slot": "dropdown-menu-sub-content",
|
|
@@ -2685,7 +3004,7 @@ function DropdownMenuSubContent({
|
|
|
2685
3004
|
}
|
|
2686
3005
|
|
|
2687
3006
|
// src/components/ui/form.tsx
|
|
2688
|
-
import * as
|
|
3007
|
+
import * as React25 from "react";
|
|
2689
3008
|
import "@radix-ui/react-label";
|
|
2690
3009
|
import { Slot as Slot5 } from "@radix-ui/react-slot";
|
|
2691
3010
|
import {
|
|
@@ -2699,7 +3018,7 @@ import {
|
|
|
2699
3018
|
import { Slot as Slot4 } from "@radix-ui/react-slot";
|
|
2700
3019
|
import { cva as cva5 } from "class-variance-authority";
|
|
2701
3020
|
import "react";
|
|
2702
|
-
import { jsx as
|
|
3021
|
+
import { jsx as jsx26 } from "react/jsx-runtime";
|
|
2703
3022
|
var labelTextVariants = cva5("font-sans font-semibold ", {
|
|
2704
3023
|
variants: {
|
|
2705
3024
|
size: {
|
|
@@ -2720,7 +3039,7 @@ function Label3({
|
|
|
2720
3039
|
...props
|
|
2721
3040
|
}) {
|
|
2722
3041
|
const Comp = asChild ? Slot4 : "label";
|
|
2723
|
-
return /* @__PURE__ */
|
|
3042
|
+
return /* @__PURE__ */ jsx26(
|
|
2724
3043
|
Comp,
|
|
2725
3044
|
{
|
|
2726
3045
|
"data-slot": "label",
|
|
@@ -2731,19 +3050,19 @@ function Label3({
|
|
|
2731
3050
|
}
|
|
2732
3051
|
|
|
2733
3052
|
// src/components/ui/form.tsx
|
|
2734
|
-
import { jsx as
|
|
3053
|
+
import { jsx as jsx27 } from "react/jsx-runtime";
|
|
2735
3054
|
var Form = FormProvider;
|
|
2736
|
-
var FormFieldContext =
|
|
3055
|
+
var FormFieldContext = React25.createContext(
|
|
2737
3056
|
{}
|
|
2738
3057
|
);
|
|
2739
3058
|
var FormField = ({
|
|
2740
3059
|
...props
|
|
2741
3060
|
}) => {
|
|
2742
|
-
return /* @__PURE__ */
|
|
3061
|
+
return /* @__PURE__ */ jsx27(FormFieldContext.Provider, { value: { name: props.name }, children: /* @__PURE__ */ jsx27(Controller, { ...props }) });
|
|
2743
3062
|
};
|
|
2744
3063
|
var useFormField = () => {
|
|
2745
|
-
const fieldContext =
|
|
2746
|
-
const itemContext =
|
|
3064
|
+
const fieldContext = React25.useContext(FormFieldContext);
|
|
3065
|
+
const itemContext = React25.useContext(FormItemContext);
|
|
2747
3066
|
const { getFieldState } = useFormContext();
|
|
2748
3067
|
const formState = useFormState({ name: fieldContext.name });
|
|
2749
3068
|
const fieldState = getFieldState(fieldContext.name, formState);
|
|
@@ -2760,12 +3079,12 @@ var useFormField = () => {
|
|
|
2760
3079
|
...fieldState
|
|
2761
3080
|
};
|
|
2762
3081
|
};
|
|
2763
|
-
var FormItemContext =
|
|
3082
|
+
var FormItemContext = React25.createContext(
|
|
2764
3083
|
{}
|
|
2765
3084
|
);
|
|
2766
3085
|
function FormItem({ className, ...props }) {
|
|
2767
|
-
const id =
|
|
2768
|
-
return /* @__PURE__ */
|
|
3086
|
+
const id = React25.useId();
|
|
3087
|
+
return /* @__PURE__ */ jsx27(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ jsx27(
|
|
2769
3088
|
"div",
|
|
2770
3089
|
{
|
|
2771
3090
|
"data-slot": "form-item",
|
|
@@ -2779,7 +3098,7 @@ function FormLabel({
|
|
|
2779
3098
|
...props
|
|
2780
3099
|
}) {
|
|
2781
3100
|
const { error, formItemId } = useFormField();
|
|
2782
|
-
return /* @__PURE__ */
|
|
3101
|
+
return /* @__PURE__ */ jsx27(
|
|
2783
3102
|
Label3,
|
|
2784
3103
|
{
|
|
2785
3104
|
"data-slot": "form-label",
|
|
@@ -2792,7 +3111,7 @@ function FormLabel({
|
|
|
2792
3111
|
}
|
|
2793
3112
|
function FormControl({ ...props }) {
|
|
2794
3113
|
const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
|
|
2795
|
-
return /* @__PURE__ */
|
|
3114
|
+
return /* @__PURE__ */ jsx27(
|
|
2796
3115
|
Slot5,
|
|
2797
3116
|
{
|
|
2798
3117
|
"data-slot": "form-control",
|
|
@@ -2805,7 +3124,7 @@ function FormControl({ ...props }) {
|
|
|
2805
3124
|
}
|
|
2806
3125
|
function FormDescription({ className, ...props }) {
|
|
2807
3126
|
const { formDescriptionId } = useFormField();
|
|
2808
|
-
return /* @__PURE__ */
|
|
3127
|
+
return /* @__PURE__ */ jsx27(
|
|
2809
3128
|
"p",
|
|
2810
3129
|
{
|
|
2811
3130
|
"data-slot": "form-description",
|
|
@@ -2821,7 +3140,7 @@ function FormMessage({ className, ...props }) {
|
|
|
2821
3140
|
if (!body) {
|
|
2822
3141
|
return null;
|
|
2823
3142
|
}
|
|
2824
|
-
return /* @__PURE__ */
|
|
3143
|
+
return /* @__PURE__ */ jsx27(
|
|
2825
3144
|
"p",
|
|
2826
3145
|
{
|
|
2827
3146
|
"data-slot": "form-message",
|
|
@@ -2836,16 +3155,16 @@ function FormMessage({ className, ...props }) {
|
|
|
2836
3155
|
// src/components/ui/hover-card.tsx
|
|
2837
3156
|
import "react";
|
|
2838
3157
|
import * as HoverCardPrimitive from "@radix-ui/react-hover-card";
|
|
2839
|
-
import { jsx as
|
|
3158
|
+
import { jsx as jsx28 } from "react/jsx-runtime";
|
|
2840
3159
|
function HoverCard({
|
|
2841
3160
|
...props
|
|
2842
3161
|
}) {
|
|
2843
|
-
return /* @__PURE__ */
|
|
3162
|
+
return /* @__PURE__ */ jsx28(HoverCardPrimitive.Root, { "data-slot": "hover-card", ...props });
|
|
2844
3163
|
}
|
|
2845
3164
|
function HoverCardTrigger({
|
|
2846
3165
|
...props
|
|
2847
3166
|
}) {
|
|
2848
|
-
return /* @__PURE__ */
|
|
3167
|
+
return /* @__PURE__ */ jsx28(HoverCardPrimitive.Trigger, { "data-slot": "hover-card-trigger", ...props });
|
|
2849
3168
|
}
|
|
2850
3169
|
function HoverCardContent({
|
|
2851
3170
|
className,
|
|
@@ -2853,7 +3172,7 @@ function HoverCardContent({
|
|
|
2853
3172
|
sideOffset = 4,
|
|
2854
3173
|
...props
|
|
2855
3174
|
}) {
|
|
2856
|
-
return /* @__PURE__ */
|
|
3175
|
+
return /* @__PURE__ */ jsx28(HoverCardPrimitive.Portal, { "data-slot": "hover-card-portal", children: /* @__PURE__ */ jsx28(
|
|
2857
3176
|
HoverCardPrimitive.Content,
|
|
2858
3177
|
{
|
|
2859
3178
|
"data-slot": "hover-card-content",
|
|
@@ -2869,16 +3188,16 @@ function HoverCardContent({
|
|
|
2869
3188
|
}
|
|
2870
3189
|
|
|
2871
3190
|
// src/components/ui/input-otp.tsx
|
|
2872
|
-
import * as
|
|
3191
|
+
import * as React27 from "react";
|
|
2873
3192
|
import { OTPInput, OTPInputContext } from "input-otp";
|
|
2874
3193
|
import { MinusIcon } from "lucide-react";
|
|
2875
|
-
import { jsx as
|
|
3194
|
+
import { jsx as jsx29, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
2876
3195
|
function InputOTP({
|
|
2877
3196
|
className,
|
|
2878
3197
|
containerClassName,
|
|
2879
3198
|
...props
|
|
2880
3199
|
}) {
|
|
2881
|
-
return /* @__PURE__ */
|
|
3200
|
+
return /* @__PURE__ */ jsx29(
|
|
2882
3201
|
OTPInput,
|
|
2883
3202
|
{
|
|
2884
3203
|
"data-slot": "input-otp",
|
|
@@ -2892,7 +3211,7 @@ function InputOTP({
|
|
|
2892
3211
|
);
|
|
2893
3212
|
}
|
|
2894
3213
|
function InputOTPGroup({ className, ...props }) {
|
|
2895
|
-
return /* @__PURE__ */
|
|
3214
|
+
return /* @__PURE__ */ jsx29(
|
|
2896
3215
|
"div",
|
|
2897
3216
|
{
|
|
2898
3217
|
"data-slot": "input-otp-group",
|
|
@@ -2906,9 +3225,9 @@ function InputOTPSlot({
|
|
|
2906
3225
|
className,
|
|
2907
3226
|
...props
|
|
2908
3227
|
}) {
|
|
2909
|
-
const inputOTPContext =
|
|
3228
|
+
const inputOTPContext = React27.useContext(OTPInputContext);
|
|
2910
3229
|
const { char, hasFakeCaret, isActive } = inputOTPContext?.slots[index] ?? {};
|
|
2911
|
-
return /* @__PURE__ */
|
|
3230
|
+
return /* @__PURE__ */ jsxs14(
|
|
2912
3231
|
"div",
|
|
2913
3232
|
{
|
|
2914
3233
|
"data-slot": "input-otp-slot",
|
|
@@ -2920,25 +3239,25 @@ function InputOTPSlot({
|
|
|
2920
3239
|
...props,
|
|
2921
3240
|
children: [
|
|
2922
3241
|
char,
|
|
2923
|
-
hasFakeCaret && /* @__PURE__ */
|
|
3242
|
+
hasFakeCaret && /* @__PURE__ */ jsx29("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsx29("div", { className: "animate-caret-blink bg-foreground h-4 w-px duration-1000" }) })
|
|
2924
3243
|
]
|
|
2925
3244
|
}
|
|
2926
3245
|
);
|
|
2927
3246
|
}
|
|
2928
3247
|
function InputOTPSeparator({ ...props }) {
|
|
2929
|
-
return /* @__PURE__ */
|
|
3248
|
+
return /* @__PURE__ */ jsx29("div", { "data-slot": "input-otp-separator", role: "separator", ...props, children: /* @__PURE__ */ jsx29(MinusIcon, {}) });
|
|
2930
3249
|
}
|
|
2931
3250
|
|
|
2932
3251
|
// src/components/ui/menubar.tsx
|
|
2933
3252
|
import "react";
|
|
2934
3253
|
import * as MenubarPrimitive from "@radix-ui/react-menubar";
|
|
2935
3254
|
import { CheckIcon as CheckIcon3, ChevronRightIcon as ChevronRightIcon4, CircleIcon as CircleIcon3 } from "lucide-react";
|
|
2936
|
-
import { jsx as
|
|
3255
|
+
import { jsx as jsx30, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
2937
3256
|
function Menubar({
|
|
2938
3257
|
className,
|
|
2939
3258
|
...props
|
|
2940
3259
|
}) {
|
|
2941
|
-
return /* @__PURE__ */
|
|
3260
|
+
return /* @__PURE__ */ jsx30(
|
|
2942
3261
|
MenubarPrimitive.Root,
|
|
2943
3262
|
{
|
|
2944
3263
|
"data-slot": "menubar",
|
|
@@ -2953,28 +3272,28 @@ function Menubar({
|
|
|
2953
3272
|
function MenubarMenu({
|
|
2954
3273
|
...props
|
|
2955
3274
|
}) {
|
|
2956
|
-
return /* @__PURE__ */
|
|
3275
|
+
return /* @__PURE__ */ jsx30(MenubarPrimitive.Menu, { "data-slot": "menubar-menu", ...props });
|
|
2957
3276
|
}
|
|
2958
3277
|
function MenubarGroup({
|
|
2959
3278
|
...props
|
|
2960
3279
|
}) {
|
|
2961
|
-
return /* @__PURE__ */
|
|
3280
|
+
return /* @__PURE__ */ jsx30(MenubarPrimitive.Group, { "data-slot": "menubar-group", ...props });
|
|
2962
3281
|
}
|
|
2963
3282
|
function MenubarPortal({
|
|
2964
3283
|
...props
|
|
2965
3284
|
}) {
|
|
2966
|
-
return /* @__PURE__ */
|
|
3285
|
+
return /* @__PURE__ */ jsx30(MenubarPrimitive.Portal, { "data-slot": "menubar-portal", ...props });
|
|
2967
3286
|
}
|
|
2968
3287
|
function MenubarRadioGroup({
|
|
2969
3288
|
...props
|
|
2970
3289
|
}) {
|
|
2971
|
-
return /* @__PURE__ */
|
|
3290
|
+
return /* @__PURE__ */ jsx30(MenubarPrimitive.RadioGroup, { "data-slot": "menubar-radio-group", ...props });
|
|
2972
3291
|
}
|
|
2973
3292
|
function MenubarTrigger({
|
|
2974
3293
|
className,
|
|
2975
3294
|
...props
|
|
2976
3295
|
}) {
|
|
2977
|
-
return /* @__PURE__ */
|
|
3296
|
+
return /* @__PURE__ */ jsx30(
|
|
2978
3297
|
MenubarPrimitive.Trigger,
|
|
2979
3298
|
{
|
|
2980
3299
|
"data-slot": "menubar-trigger",
|
|
@@ -2993,7 +3312,7 @@ function MenubarContent({
|
|
|
2993
3312
|
sideOffset = 8,
|
|
2994
3313
|
...props
|
|
2995
3314
|
}) {
|
|
2996
|
-
return /* @__PURE__ */
|
|
3315
|
+
return /* @__PURE__ */ jsx30(MenubarPortal, { children: /* @__PURE__ */ jsx30(
|
|
2997
3316
|
MenubarPrimitive.Content,
|
|
2998
3317
|
{
|
|
2999
3318
|
"data-slot": "menubar-content",
|
|
@@ -3014,7 +3333,7 @@ function MenubarItem({
|
|
|
3014
3333
|
variant = "default",
|
|
3015
3334
|
...props
|
|
3016
3335
|
}) {
|
|
3017
|
-
return /* @__PURE__ */
|
|
3336
|
+
return /* @__PURE__ */ jsx30(
|
|
3018
3337
|
MenubarPrimitive.Item,
|
|
3019
3338
|
{
|
|
3020
3339
|
"data-slot": "menubar-item",
|
|
@@ -3034,7 +3353,7 @@ function MenubarCheckboxItem({
|
|
|
3034
3353
|
checked,
|
|
3035
3354
|
...props
|
|
3036
3355
|
}) {
|
|
3037
|
-
return /* @__PURE__ */
|
|
3356
|
+
return /* @__PURE__ */ jsxs15(
|
|
3038
3357
|
MenubarPrimitive.CheckboxItem,
|
|
3039
3358
|
{
|
|
3040
3359
|
"data-slot": "menubar-checkbox-item",
|
|
@@ -3045,7 +3364,7 @@ function MenubarCheckboxItem({
|
|
|
3045
3364
|
checked,
|
|
3046
3365
|
...props,
|
|
3047
3366
|
children: [
|
|
3048
|
-
/* @__PURE__ */
|
|
3367
|
+
/* @__PURE__ */ jsx30("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx30(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx30(CheckIcon3, { className: "size-4" }) }) }),
|
|
3049
3368
|
children
|
|
3050
3369
|
]
|
|
3051
3370
|
}
|
|
@@ -3056,7 +3375,7 @@ function MenubarRadioItem({
|
|
|
3056
3375
|
children,
|
|
3057
3376
|
...props
|
|
3058
3377
|
}) {
|
|
3059
|
-
return /* @__PURE__ */
|
|
3378
|
+
return /* @__PURE__ */ jsxs15(
|
|
3060
3379
|
MenubarPrimitive.RadioItem,
|
|
3061
3380
|
{
|
|
3062
3381
|
"data-slot": "menubar-radio-item",
|
|
@@ -3066,7 +3385,7 @@ function MenubarRadioItem({
|
|
|
3066
3385
|
),
|
|
3067
3386
|
...props,
|
|
3068
3387
|
children: [
|
|
3069
|
-
/* @__PURE__ */
|
|
3388
|
+
/* @__PURE__ */ jsx30("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx30(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx30(CircleIcon3, { className: "size-2 fill-current" }) }) }),
|
|
3070
3389
|
children
|
|
3071
3390
|
]
|
|
3072
3391
|
}
|
|
@@ -3077,7 +3396,7 @@ function MenubarLabel({
|
|
|
3077
3396
|
inset,
|
|
3078
3397
|
...props
|
|
3079
3398
|
}) {
|
|
3080
|
-
return /* @__PURE__ */
|
|
3399
|
+
return /* @__PURE__ */ jsx30(
|
|
3081
3400
|
MenubarPrimitive.Label,
|
|
3082
3401
|
{
|
|
3083
3402
|
"data-slot": "menubar-label",
|
|
@@ -3094,7 +3413,7 @@ function MenubarSeparator({
|
|
|
3094
3413
|
className,
|
|
3095
3414
|
...props
|
|
3096
3415
|
}) {
|
|
3097
|
-
return /* @__PURE__ */
|
|
3416
|
+
return /* @__PURE__ */ jsx30(
|
|
3098
3417
|
MenubarPrimitive.Separator,
|
|
3099
3418
|
{
|
|
3100
3419
|
"data-slot": "menubar-separator",
|
|
@@ -3107,7 +3426,7 @@ function MenubarShortcut({
|
|
|
3107
3426
|
className,
|
|
3108
3427
|
...props
|
|
3109
3428
|
}) {
|
|
3110
|
-
return /* @__PURE__ */
|
|
3429
|
+
return /* @__PURE__ */ jsx30(
|
|
3111
3430
|
"span",
|
|
3112
3431
|
{
|
|
3113
3432
|
"data-slot": "menubar-shortcut",
|
|
@@ -3122,7 +3441,7 @@ function MenubarShortcut({
|
|
|
3122
3441
|
function MenubarSub({
|
|
3123
3442
|
...props
|
|
3124
3443
|
}) {
|
|
3125
|
-
return /* @__PURE__ */
|
|
3444
|
+
return /* @__PURE__ */ jsx30(MenubarPrimitive.Sub, { "data-slot": "menubar-sub", ...props });
|
|
3126
3445
|
}
|
|
3127
3446
|
function MenubarSubTrigger({
|
|
3128
3447
|
className,
|
|
@@ -3130,7 +3449,7 @@ function MenubarSubTrigger({
|
|
|
3130
3449
|
children,
|
|
3131
3450
|
...props
|
|
3132
3451
|
}) {
|
|
3133
|
-
return /* @__PURE__ */
|
|
3452
|
+
return /* @__PURE__ */ jsxs15(
|
|
3134
3453
|
MenubarPrimitive.SubTrigger,
|
|
3135
3454
|
{
|
|
3136
3455
|
"data-slot": "menubar-sub-trigger",
|
|
@@ -3142,7 +3461,7 @@ function MenubarSubTrigger({
|
|
|
3142
3461
|
...props,
|
|
3143
3462
|
children: [
|
|
3144
3463
|
children,
|
|
3145
|
-
/* @__PURE__ */
|
|
3464
|
+
/* @__PURE__ */ jsx30(ChevronRightIcon4, { className: "ml-auto h-4 w-4" })
|
|
3146
3465
|
]
|
|
3147
3466
|
}
|
|
3148
3467
|
);
|
|
@@ -3151,7 +3470,7 @@ function MenubarSubContent({
|
|
|
3151
3470
|
className,
|
|
3152
3471
|
...props
|
|
3153
3472
|
}) {
|
|
3154
|
-
return /* @__PURE__ */
|
|
3473
|
+
return /* @__PURE__ */ jsx30(
|
|
3155
3474
|
MenubarPrimitive.SubContent,
|
|
3156
3475
|
{
|
|
3157
3476
|
"data-slot": "menubar-sub-content",
|
|
@@ -3169,14 +3488,14 @@ import "react";
|
|
|
3169
3488
|
import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu";
|
|
3170
3489
|
import { cva as cva6 } from "class-variance-authority";
|
|
3171
3490
|
import { ChevronDownIcon as ChevronDownIcon3 } from "lucide-react";
|
|
3172
|
-
import { jsx as
|
|
3491
|
+
import { jsx as jsx31, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
3173
3492
|
function NavigationMenu({
|
|
3174
3493
|
className,
|
|
3175
3494
|
children,
|
|
3176
3495
|
viewport = true,
|
|
3177
3496
|
...props
|
|
3178
3497
|
}) {
|
|
3179
|
-
return /* @__PURE__ */
|
|
3498
|
+
return /* @__PURE__ */ jsxs16(
|
|
3180
3499
|
NavigationMenuPrimitive.Root,
|
|
3181
3500
|
{
|
|
3182
3501
|
"data-slot": "navigation-menu",
|
|
@@ -3188,7 +3507,7 @@ function NavigationMenu({
|
|
|
3188
3507
|
...props,
|
|
3189
3508
|
children: [
|
|
3190
3509
|
children,
|
|
3191
|
-
viewport && /* @__PURE__ */
|
|
3510
|
+
viewport && /* @__PURE__ */ jsx31(NavigationMenuViewport, {})
|
|
3192
3511
|
]
|
|
3193
3512
|
}
|
|
3194
3513
|
);
|
|
@@ -3197,7 +3516,7 @@ function NavigationMenuList({
|
|
|
3197
3516
|
className,
|
|
3198
3517
|
...props
|
|
3199
3518
|
}) {
|
|
3200
|
-
return /* @__PURE__ */
|
|
3519
|
+
return /* @__PURE__ */ jsx31(
|
|
3201
3520
|
NavigationMenuPrimitive.List,
|
|
3202
3521
|
{
|
|
3203
3522
|
"data-slot": "navigation-menu-list",
|
|
@@ -3213,7 +3532,7 @@ function NavigationMenuItem({
|
|
|
3213
3532
|
className,
|
|
3214
3533
|
...props
|
|
3215
3534
|
}) {
|
|
3216
|
-
return /* @__PURE__ */
|
|
3535
|
+
return /* @__PURE__ */ jsx31(
|
|
3217
3536
|
NavigationMenuPrimitive.Item,
|
|
3218
3537
|
{
|
|
3219
3538
|
"data-slot": "navigation-menu-item",
|
|
@@ -3230,7 +3549,7 @@ function NavigationMenuTrigger({
|
|
|
3230
3549
|
children,
|
|
3231
3550
|
...props
|
|
3232
3551
|
}) {
|
|
3233
|
-
return /* @__PURE__ */
|
|
3552
|
+
return /* @__PURE__ */ jsxs16(
|
|
3234
3553
|
NavigationMenuPrimitive.Trigger,
|
|
3235
3554
|
{
|
|
3236
3555
|
"data-slot": "navigation-menu-trigger",
|
|
@@ -3239,7 +3558,7 @@ function NavigationMenuTrigger({
|
|
|
3239
3558
|
children: [
|
|
3240
3559
|
children,
|
|
3241
3560
|
" ",
|
|
3242
|
-
/* @__PURE__ */
|
|
3561
|
+
/* @__PURE__ */ jsx31(
|
|
3243
3562
|
ChevronDownIcon3,
|
|
3244
3563
|
{
|
|
3245
3564
|
className: "relative top-[1px] ml-1 size-3 transition duration-400 group-data-[state=open]:rotate-180",
|
|
@@ -3254,7 +3573,7 @@ function NavigationMenuContent({
|
|
|
3254
3573
|
className,
|
|
3255
3574
|
...props
|
|
3256
3575
|
}) {
|
|
3257
|
-
return /* @__PURE__ */
|
|
3576
|
+
return /* @__PURE__ */ jsx31(
|
|
3258
3577
|
NavigationMenuPrimitive.Content,
|
|
3259
3578
|
{
|
|
3260
3579
|
"data-slot": "navigation-menu-content",
|
|
@@ -3271,13 +3590,13 @@ function NavigationMenuViewport({
|
|
|
3271
3590
|
className,
|
|
3272
3591
|
...props
|
|
3273
3592
|
}) {
|
|
3274
|
-
return /* @__PURE__ */
|
|
3593
|
+
return /* @__PURE__ */ jsx31(
|
|
3275
3594
|
"div",
|
|
3276
3595
|
{
|
|
3277
3596
|
className: cn(
|
|
3278
3597
|
"absolute top-full left-0 isolate z-50 flex justify-center"
|
|
3279
3598
|
),
|
|
3280
|
-
children: /* @__PURE__ */
|
|
3599
|
+
children: /* @__PURE__ */ jsx31(
|
|
3281
3600
|
NavigationMenuPrimitive.Viewport,
|
|
3282
3601
|
{
|
|
3283
3602
|
"data-slot": "navigation-menu-viewport",
|
|
@@ -3295,7 +3614,7 @@ function NavigationMenuLink({
|
|
|
3295
3614
|
className,
|
|
3296
3615
|
...props
|
|
3297
3616
|
}) {
|
|
3298
|
-
return /* @__PURE__ */
|
|
3617
|
+
return /* @__PURE__ */ jsx31(
|
|
3299
3618
|
NavigationMenuPrimitive.Link,
|
|
3300
3619
|
{
|
|
3301
3620
|
"data-slot": "navigation-menu-link",
|
|
@@ -3311,7 +3630,7 @@ function NavigationMenuIndicator({
|
|
|
3311
3630
|
className,
|
|
3312
3631
|
...props
|
|
3313
3632
|
}) {
|
|
3314
|
-
return /* @__PURE__ */
|
|
3633
|
+
return /* @__PURE__ */ jsx31(
|
|
3315
3634
|
NavigationMenuPrimitive.Indicator,
|
|
3316
3635
|
{
|
|
3317
3636
|
"data-slot": "navigation-menu-indicator",
|
|
@@ -3320,7 +3639,7 @@ function NavigationMenuIndicator({
|
|
|
3320
3639
|
className
|
|
3321
3640
|
),
|
|
3322
3641
|
...props,
|
|
3323
|
-
children: /* @__PURE__ */
|
|
3642
|
+
children: /* @__PURE__ */ jsx31("div", { className: "bg-border relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm shadow-md" })
|
|
3324
3643
|
}
|
|
3325
3644
|
);
|
|
3326
3645
|
}
|
|
@@ -3332,9 +3651,9 @@ import {
|
|
|
3332
3651
|
ChevronRightIcon as ChevronRightIcon5,
|
|
3333
3652
|
MoreHorizontalIcon
|
|
3334
3653
|
} from "lucide-react";
|
|
3335
|
-
import { jsx as
|
|
3654
|
+
import { jsx as jsx32, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
3336
3655
|
function Pagination({ className, ...props }) {
|
|
3337
|
-
return /* @__PURE__ */
|
|
3656
|
+
return /* @__PURE__ */ jsx32(
|
|
3338
3657
|
"nav",
|
|
3339
3658
|
{
|
|
3340
3659
|
role: "navigation",
|
|
@@ -3349,7 +3668,7 @@ function PaginationContent({
|
|
|
3349
3668
|
className,
|
|
3350
3669
|
...props
|
|
3351
3670
|
}) {
|
|
3352
|
-
return /* @__PURE__ */
|
|
3671
|
+
return /* @__PURE__ */ jsx32(
|
|
3353
3672
|
"ul",
|
|
3354
3673
|
{
|
|
3355
3674
|
"data-slot": "pagination-content",
|
|
@@ -3359,7 +3678,7 @@ function PaginationContent({
|
|
|
3359
3678
|
);
|
|
3360
3679
|
}
|
|
3361
3680
|
function PaginationItem({ ...props }) {
|
|
3362
|
-
return /* @__PURE__ */
|
|
3681
|
+
return /* @__PURE__ */ jsx32("li", { "data-slot": "pagination-item", ...props });
|
|
3363
3682
|
}
|
|
3364
3683
|
function PaginationLink({
|
|
3365
3684
|
className,
|
|
@@ -3367,7 +3686,7 @@ function PaginationLink({
|
|
|
3367
3686
|
size = "icon",
|
|
3368
3687
|
...props
|
|
3369
3688
|
}) {
|
|
3370
|
-
return /* @__PURE__ */
|
|
3689
|
+
return /* @__PURE__ */ jsx32(
|
|
3371
3690
|
"a",
|
|
3372
3691
|
{
|
|
3373
3692
|
"aria-current": isActive ? "page" : void 0,
|
|
@@ -3388,7 +3707,7 @@ function PaginationPrevious({
|
|
|
3388
3707
|
className,
|
|
3389
3708
|
...props
|
|
3390
3709
|
}) {
|
|
3391
|
-
return /* @__PURE__ */
|
|
3710
|
+
return /* @__PURE__ */ jsxs17(
|
|
3392
3711
|
PaginationLink,
|
|
3393
3712
|
{
|
|
3394
3713
|
"aria-label": "Go to previous page",
|
|
@@ -3396,8 +3715,8 @@ function PaginationPrevious({
|
|
|
3396
3715
|
className: cn("gap-1 px-2.5 sm:pl-2.5", className),
|
|
3397
3716
|
...props,
|
|
3398
3717
|
children: [
|
|
3399
|
-
/* @__PURE__ */
|
|
3400
|
-
/* @__PURE__ */
|
|
3718
|
+
/* @__PURE__ */ jsx32(ChevronLeftIcon2, {}),
|
|
3719
|
+
/* @__PURE__ */ jsx32("span", { className: "hidden sm:block", children: "Previous" })
|
|
3401
3720
|
]
|
|
3402
3721
|
}
|
|
3403
3722
|
);
|
|
@@ -3406,7 +3725,7 @@ function PaginationNext({
|
|
|
3406
3725
|
className,
|
|
3407
3726
|
...props
|
|
3408
3727
|
}) {
|
|
3409
|
-
return /* @__PURE__ */
|
|
3728
|
+
return /* @__PURE__ */ jsxs17(
|
|
3410
3729
|
PaginationLink,
|
|
3411
3730
|
{
|
|
3412
3731
|
"aria-label": "Go to next page",
|
|
@@ -3414,8 +3733,8 @@ function PaginationNext({
|
|
|
3414
3733
|
className: cn("gap-1 px-2.5 sm:pr-2.5", className),
|
|
3415
3734
|
...props,
|
|
3416
3735
|
children: [
|
|
3417
|
-
/* @__PURE__ */
|
|
3418
|
-
/* @__PURE__ */
|
|
3736
|
+
/* @__PURE__ */ jsx32("span", { className: "hidden sm:block", children: "Next" }),
|
|
3737
|
+
/* @__PURE__ */ jsx32(ChevronRightIcon5, {})
|
|
3419
3738
|
]
|
|
3420
3739
|
}
|
|
3421
3740
|
);
|
|
@@ -3424,7 +3743,7 @@ function PaginationEllipsis({
|
|
|
3424
3743
|
className,
|
|
3425
3744
|
...props
|
|
3426
3745
|
}) {
|
|
3427
|
-
return /* @__PURE__ */
|
|
3746
|
+
return /* @__PURE__ */ jsxs17(
|
|
3428
3747
|
"span",
|
|
3429
3748
|
{
|
|
3430
3749
|
"aria-hidden": true,
|
|
@@ -3432,8 +3751,8 @@ function PaginationEllipsis({
|
|
|
3432
3751
|
className: cn("flex size-9 items-center justify-center", className),
|
|
3433
3752
|
...props,
|
|
3434
3753
|
children: [
|
|
3435
|
-
/* @__PURE__ */
|
|
3436
|
-
/* @__PURE__ */
|
|
3754
|
+
/* @__PURE__ */ jsx32(MoreHorizontalIcon, { className: "size-4" }),
|
|
3755
|
+
/* @__PURE__ */ jsx32("span", { className: "sr-only", children: "More pages" })
|
|
3437
3756
|
]
|
|
3438
3757
|
}
|
|
3439
3758
|
);
|
|
@@ -3442,13 +3761,13 @@ function PaginationEllipsis({
|
|
|
3442
3761
|
// src/components/ui/progress.tsx
|
|
3443
3762
|
import * as ProgressPrimitive from "@radix-ui/react-progress";
|
|
3444
3763
|
import "react";
|
|
3445
|
-
import { jsx as
|
|
3764
|
+
import { jsx as jsx33 } from "react/jsx-runtime";
|
|
3446
3765
|
function Progress({
|
|
3447
3766
|
className,
|
|
3448
3767
|
value,
|
|
3449
3768
|
...props
|
|
3450
3769
|
}) {
|
|
3451
|
-
return /* @__PURE__ */
|
|
3770
|
+
return /* @__PURE__ */ jsx33(
|
|
3452
3771
|
ProgressPrimitive.Root,
|
|
3453
3772
|
{
|
|
3454
3773
|
"data-slot": "progress",
|
|
@@ -3457,7 +3776,7 @@ function Progress({
|
|
|
3457
3776
|
className
|
|
3458
3777
|
),
|
|
3459
3778
|
...props,
|
|
3460
|
-
children: /* @__PURE__ */
|
|
3779
|
+
children: /* @__PURE__ */ jsx33(
|
|
3461
3780
|
ProgressPrimitive.Indicator,
|
|
3462
3781
|
{
|
|
3463
3782
|
"data-slot": "progress-indicator",
|
|
@@ -3473,12 +3792,12 @@ function Progress({
|
|
|
3473
3792
|
import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
|
|
3474
3793
|
import { CircleIcon as CircleIcon4 } from "lucide-react";
|
|
3475
3794
|
import "react";
|
|
3476
|
-
import { jsx as
|
|
3795
|
+
import { jsx as jsx34 } from "react/jsx-runtime";
|
|
3477
3796
|
function RadioGroup4({
|
|
3478
3797
|
className,
|
|
3479
3798
|
...props
|
|
3480
3799
|
}) {
|
|
3481
|
-
return /* @__PURE__ */
|
|
3800
|
+
return /* @__PURE__ */ jsx34(
|
|
3482
3801
|
RadioGroupPrimitive.Root,
|
|
3483
3802
|
{
|
|
3484
3803
|
"data-slot": "radio-group",
|
|
@@ -3491,7 +3810,7 @@ function RadioGroupItem({
|
|
|
3491
3810
|
className,
|
|
3492
3811
|
...props
|
|
3493
3812
|
}) {
|
|
3494
|
-
return /* @__PURE__ */
|
|
3813
|
+
return /* @__PURE__ */ jsx34(
|
|
3495
3814
|
RadioGroupPrimitive.Item,
|
|
3496
3815
|
{
|
|
3497
3816
|
"data-slot": "radio-group-item",
|
|
@@ -3500,12 +3819,12 @@ function RadioGroupItem({
|
|
|
3500
3819
|
className
|
|
3501
3820
|
),
|
|
3502
3821
|
...props,
|
|
3503
|
-
children: /* @__PURE__ */
|
|
3822
|
+
children: /* @__PURE__ */ jsx34(
|
|
3504
3823
|
RadioGroupPrimitive.Indicator,
|
|
3505
3824
|
{
|
|
3506
3825
|
"data-slot": "radio-group-indicator",
|
|
3507
3826
|
className: "relative flex items-center justify-center",
|
|
3508
|
-
children: /* @__PURE__ */
|
|
3827
|
+
children: /* @__PURE__ */ jsx34(CircleIcon4, { className: "fill-white absolute top-1/2 left-1/2 size-1.5 -translate-x-1/2 -translate-y-1/2" })
|
|
3509
3828
|
}
|
|
3510
3829
|
)
|
|
3511
3830
|
}
|
|
@@ -3516,12 +3835,12 @@ function RadioGroupItem({
|
|
|
3516
3835
|
import "react";
|
|
3517
3836
|
import { GripVerticalIcon } from "lucide-react";
|
|
3518
3837
|
import * as ResizablePrimitive from "react-resizable-panels";
|
|
3519
|
-
import { jsx as
|
|
3838
|
+
import { jsx as jsx35 } from "react/jsx-runtime";
|
|
3520
3839
|
function ResizablePanelGroup({
|
|
3521
3840
|
className,
|
|
3522
3841
|
...props
|
|
3523
3842
|
}) {
|
|
3524
|
-
return /* @__PURE__ */
|
|
3843
|
+
return /* @__PURE__ */ jsx35(
|
|
3525
3844
|
ResizablePrimitive.PanelGroup,
|
|
3526
3845
|
{
|
|
3527
3846
|
"data-slot": "resizable-panel-group",
|
|
@@ -3536,14 +3855,14 @@ function ResizablePanelGroup({
|
|
|
3536
3855
|
function ResizablePanel({
|
|
3537
3856
|
...props
|
|
3538
3857
|
}) {
|
|
3539
|
-
return /* @__PURE__ */
|
|
3858
|
+
return /* @__PURE__ */ jsx35(ResizablePrimitive.Panel, { "data-slot": "resizable-panel", ...props });
|
|
3540
3859
|
}
|
|
3541
3860
|
function ResizableHandle({
|
|
3542
3861
|
withHandle,
|
|
3543
3862
|
className,
|
|
3544
3863
|
...props
|
|
3545
3864
|
}) {
|
|
3546
|
-
return /* @__PURE__ */
|
|
3865
|
+
return /* @__PURE__ */ jsx35(
|
|
3547
3866
|
ResizablePrimitive.PanelResizeHandle,
|
|
3548
3867
|
{
|
|
3549
3868
|
"data-slot": "resizable-handle",
|
|
@@ -3552,7 +3871,7 @@ function ResizableHandle({
|
|
|
3552
3871
|
className
|
|
3553
3872
|
),
|
|
3554
3873
|
...props,
|
|
3555
|
-
children: withHandle && /* @__PURE__ */
|
|
3874
|
+
children: withHandle && /* @__PURE__ */ jsx35("div", { className: "bg-border z-10 flex h-4 w-3 items-center justify-center rounded-xs border", children: /* @__PURE__ */ jsx35(GripVerticalIcon, { className: "size-2.5" }) })
|
|
3556
3875
|
}
|
|
3557
3876
|
);
|
|
3558
3877
|
}
|
|
@@ -3560,20 +3879,20 @@ function ResizableHandle({
|
|
|
3560
3879
|
// src/components/ui/scroll-area.tsx
|
|
3561
3880
|
import "react";
|
|
3562
3881
|
import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
|
|
3563
|
-
import { jsx as
|
|
3882
|
+
import { jsx as jsx36, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
3564
3883
|
function ScrollArea({
|
|
3565
3884
|
className,
|
|
3566
3885
|
children,
|
|
3567
3886
|
...props
|
|
3568
3887
|
}) {
|
|
3569
|
-
return /* @__PURE__ */
|
|
3888
|
+
return /* @__PURE__ */ jsxs18(
|
|
3570
3889
|
ScrollAreaPrimitive.Root,
|
|
3571
3890
|
{
|
|
3572
3891
|
"data-slot": "scroll-area",
|
|
3573
3892
|
className: cn("relative", className),
|
|
3574
3893
|
...props,
|
|
3575
3894
|
children: [
|
|
3576
|
-
/* @__PURE__ */
|
|
3895
|
+
/* @__PURE__ */ jsx36(
|
|
3577
3896
|
ScrollAreaPrimitive.Viewport,
|
|
3578
3897
|
{
|
|
3579
3898
|
"data-slot": "scroll-area-viewport",
|
|
@@ -3581,8 +3900,8 @@ function ScrollArea({
|
|
|
3581
3900
|
children
|
|
3582
3901
|
}
|
|
3583
3902
|
),
|
|
3584
|
-
/* @__PURE__ */
|
|
3585
|
-
/* @__PURE__ */
|
|
3903
|
+
/* @__PURE__ */ jsx36(ScrollBar, {}),
|
|
3904
|
+
/* @__PURE__ */ jsx36(ScrollAreaPrimitive.Corner, {})
|
|
3586
3905
|
]
|
|
3587
3906
|
}
|
|
3588
3907
|
);
|
|
@@ -3592,7 +3911,7 @@ function ScrollBar({
|
|
|
3592
3911
|
orientation = "vertical",
|
|
3593
3912
|
...props
|
|
3594
3913
|
}) {
|
|
3595
|
-
return /* @__PURE__ */
|
|
3914
|
+
return /* @__PURE__ */ jsx36(
|
|
3596
3915
|
ScrollAreaPrimitive.ScrollAreaScrollbar,
|
|
3597
3916
|
{
|
|
3598
3917
|
"data-slot": "scroll-area-scrollbar",
|
|
@@ -3604,7 +3923,7 @@ function ScrollBar({
|
|
|
3604
3923
|
className
|
|
3605
3924
|
),
|
|
3606
3925
|
...props,
|
|
3607
|
-
children: /* @__PURE__ */
|
|
3926
|
+
children: /* @__PURE__ */ jsx36(
|
|
3608
3927
|
ScrollAreaPrimitive.ScrollAreaThumb,
|
|
3609
3928
|
{
|
|
3610
3929
|
"data-slot": "scroll-area-thumb",
|
|
@@ -3619,21 +3938,21 @@ function ScrollBar({
|
|
|
3619
3938
|
import "react";
|
|
3620
3939
|
import * as SelectPrimitive from "@radix-ui/react-select";
|
|
3621
3940
|
import { CheckIcon as CheckIcon4, ChevronDownIcon as ChevronDownIcon4, ChevronUpIcon } from "lucide-react";
|
|
3622
|
-
import { jsx as
|
|
3941
|
+
import { jsx as jsx37, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
3623
3942
|
function Select({
|
|
3624
3943
|
...props
|
|
3625
3944
|
}) {
|
|
3626
|
-
return /* @__PURE__ */
|
|
3945
|
+
return /* @__PURE__ */ jsx37(SelectPrimitive.Root, { "data-slot": "select", ...props });
|
|
3627
3946
|
}
|
|
3628
3947
|
function SelectGroup({
|
|
3629
3948
|
...props
|
|
3630
3949
|
}) {
|
|
3631
|
-
return /* @__PURE__ */
|
|
3950
|
+
return /* @__PURE__ */ jsx37(SelectPrimitive.Group, { "data-slot": "select-group", ...props });
|
|
3632
3951
|
}
|
|
3633
3952
|
function SelectValue({
|
|
3634
3953
|
...props
|
|
3635
3954
|
}) {
|
|
3636
|
-
return /* @__PURE__ */
|
|
3955
|
+
return /* @__PURE__ */ jsx37(SelectPrimitive.Value, { "data-slot": "select-value", ...props });
|
|
3637
3956
|
}
|
|
3638
3957
|
function SelectTrigger({
|
|
3639
3958
|
className,
|
|
@@ -3641,7 +3960,7 @@ function SelectTrigger({
|
|
|
3641
3960
|
children,
|
|
3642
3961
|
...props
|
|
3643
3962
|
}) {
|
|
3644
|
-
return /* @__PURE__ */
|
|
3963
|
+
return /* @__PURE__ */ jsxs19(
|
|
3645
3964
|
SelectPrimitive.Trigger,
|
|
3646
3965
|
{
|
|
3647
3966
|
"data-slot": "select-trigger",
|
|
@@ -3653,7 +3972,7 @@ function SelectTrigger({
|
|
|
3653
3972
|
...props,
|
|
3654
3973
|
children: [
|
|
3655
3974
|
children,
|
|
3656
|
-
/* @__PURE__ */
|
|
3975
|
+
/* @__PURE__ */ jsx37(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx37(ChevronDownIcon4, { className: "size-4 opacity-50" }) })
|
|
3657
3976
|
]
|
|
3658
3977
|
}
|
|
3659
3978
|
);
|
|
@@ -3664,7 +3983,7 @@ function SelectContent({
|
|
|
3664
3983
|
position = "popper",
|
|
3665
3984
|
...props
|
|
3666
3985
|
}) {
|
|
3667
|
-
return /* @__PURE__ */
|
|
3986
|
+
return /* @__PURE__ */ jsx37(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs19(
|
|
3668
3987
|
SelectPrimitive.Content,
|
|
3669
3988
|
{
|
|
3670
3989
|
"data-slot": "select-content",
|
|
@@ -3676,8 +3995,8 @@ function SelectContent({
|
|
|
3676
3995
|
position,
|
|
3677
3996
|
...props,
|
|
3678
3997
|
children: [
|
|
3679
|
-
/* @__PURE__ */
|
|
3680
|
-
/* @__PURE__ */
|
|
3998
|
+
/* @__PURE__ */ jsx37(SelectScrollUpButton, {}),
|
|
3999
|
+
/* @__PURE__ */ jsx37(
|
|
3681
4000
|
SelectPrimitive.Viewport,
|
|
3682
4001
|
{
|
|
3683
4002
|
className: cn(
|
|
@@ -3687,7 +4006,7 @@ function SelectContent({
|
|
|
3687
4006
|
children
|
|
3688
4007
|
}
|
|
3689
4008
|
),
|
|
3690
|
-
/* @__PURE__ */
|
|
4009
|
+
/* @__PURE__ */ jsx37(SelectScrollDownButton, {})
|
|
3691
4010
|
]
|
|
3692
4011
|
}
|
|
3693
4012
|
) });
|
|
@@ -3696,7 +4015,7 @@ function SelectLabel({
|
|
|
3696
4015
|
className,
|
|
3697
4016
|
...props
|
|
3698
4017
|
}) {
|
|
3699
|
-
return /* @__PURE__ */
|
|
4018
|
+
return /* @__PURE__ */ jsx37(
|
|
3700
4019
|
SelectPrimitive.Label,
|
|
3701
4020
|
{
|
|
3702
4021
|
"data-slot": "select-label",
|
|
@@ -3710,7 +4029,7 @@ function SelectItem({
|
|
|
3710
4029
|
children,
|
|
3711
4030
|
...props
|
|
3712
4031
|
}) {
|
|
3713
|
-
return /* @__PURE__ */
|
|
4032
|
+
return /* @__PURE__ */ jsxs19(
|
|
3714
4033
|
SelectPrimitive.Item,
|
|
3715
4034
|
{
|
|
3716
4035
|
"data-slot": "select-item",
|
|
@@ -3720,8 +4039,8 @@ function SelectItem({
|
|
|
3720
4039
|
),
|
|
3721
4040
|
...props,
|
|
3722
4041
|
children: [
|
|
3723
|
-
/* @__PURE__ */
|
|
3724
|
-
/* @__PURE__ */
|
|
4042
|
+
/* @__PURE__ */ jsx37("span", { className: "absolute right-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx37(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx37(CheckIcon4, { className: "size-4" }) }) }),
|
|
4043
|
+
/* @__PURE__ */ jsx37(SelectPrimitive.ItemText, { children })
|
|
3725
4044
|
]
|
|
3726
4045
|
}
|
|
3727
4046
|
);
|
|
@@ -3730,7 +4049,7 @@ function SelectSeparator({
|
|
|
3730
4049
|
className,
|
|
3731
4050
|
...props
|
|
3732
4051
|
}) {
|
|
3733
|
-
return /* @__PURE__ */
|
|
4052
|
+
return /* @__PURE__ */ jsx37(
|
|
3734
4053
|
SelectPrimitive.Separator,
|
|
3735
4054
|
{
|
|
3736
4055
|
"data-slot": "select-separator",
|
|
@@ -3743,7 +4062,7 @@ function SelectScrollUpButton({
|
|
|
3743
4062
|
className,
|
|
3744
4063
|
...props
|
|
3745
4064
|
}) {
|
|
3746
|
-
return /* @__PURE__ */
|
|
4065
|
+
return /* @__PURE__ */ jsx37(
|
|
3747
4066
|
SelectPrimitive.ScrollUpButton,
|
|
3748
4067
|
{
|
|
3749
4068
|
"data-slot": "select-scroll-up-button",
|
|
@@ -3752,7 +4071,7 @@ function SelectScrollUpButton({
|
|
|
3752
4071
|
className
|
|
3753
4072
|
),
|
|
3754
4073
|
...props,
|
|
3755
|
-
children: /* @__PURE__ */
|
|
4074
|
+
children: /* @__PURE__ */ jsx37(ChevronUpIcon, { className: "size-4" })
|
|
3756
4075
|
}
|
|
3757
4076
|
);
|
|
3758
4077
|
}
|
|
@@ -3760,7 +4079,7 @@ function SelectScrollDownButton({
|
|
|
3760
4079
|
className,
|
|
3761
4080
|
...props
|
|
3762
4081
|
}) {
|
|
3763
|
-
return /* @__PURE__ */
|
|
4082
|
+
return /* @__PURE__ */ jsx37(
|
|
3764
4083
|
SelectPrimitive.ScrollDownButton,
|
|
3765
4084
|
{
|
|
3766
4085
|
"data-slot": "select-scroll-down-button",
|
|
@@ -3769,7 +4088,7 @@ function SelectScrollDownButton({
|
|
|
3769
4088
|
className
|
|
3770
4089
|
),
|
|
3771
4090
|
...props,
|
|
3772
|
-
children: /* @__PURE__ */
|
|
4091
|
+
children: /* @__PURE__ */ jsx37(ChevronDownIcon4, { className: "size-4" })
|
|
3773
4092
|
}
|
|
3774
4093
|
);
|
|
3775
4094
|
}
|
|
@@ -3777,14 +4096,14 @@ function SelectScrollDownButton({
|
|
|
3777
4096
|
// src/components/ui/separator.tsx
|
|
3778
4097
|
import "react";
|
|
3779
4098
|
import * as SeparatorPrimitive from "@radix-ui/react-separator";
|
|
3780
|
-
import { jsx as
|
|
4099
|
+
import { jsx as jsx38 } from "react/jsx-runtime";
|
|
3781
4100
|
function Separator5({
|
|
3782
4101
|
className,
|
|
3783
4102
|
orientation = "horizontal",
|
|
3784
4103
|
decorative = true,
|
|
3785
4104
|
...props
|
|
3786
4105
|
}) {
|
|
3787
|
-
return /* @__PURE__ */
|
|
4106
|
+
return /* @__PURE__ */ jsx38(
|
|
3788
4107
|
SeparatorPrimitive.Root,
|
|
3789
4108
|
{
|
|
3790
4109
|
"data-slot": "separator",
|
|
@@ -3803,30 +4122,30 @@ function Separator5({
|
|
|
3803
4122
|
import * as SheetPrimitive from "@radix-ui/react-dialog";
|
|
3804
4123
|
import { XIcon as XIcon2 } from "lucide-react";
|
|
3805
4124
|
import "react";
|
|
3806
|
-
import { jsx as
|
|
4125
|
+
import { jsx as jsx39, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
3807
4126
|
function Sheet({ ...props }) {
|
|
3808
|
-
return /* @__PURE__ */
|
|
4127
|
+
return /* @__PURE__ */ jsx39(SheetPrimitive.Root, { "data-slot": "sheet", ...props });
|
|
3809
4128
|
}
|
|
3810
4129
|
function SheetTrigger({
|
|
3811
4130
|
...props
|
|
3812
4131
|
}) {
|
|
3813
|
-
return /* @__PURE__ */
|
|
4132
|
+
return /* @__PURE__ */ jsx39(SheetPrimitive.Trigger, { "data-slot": "sheet-trigger", ...props });
|
|
3814
4133
|
}
|
|
3815
4134
|
function SheetClose({
|
|
3816
4135
|
...props
|
|
3817
4136
|
}) {
|
|
3818
|
-
return /* @__PURE__ */
|
|
4137
|
+
return /* @__PURE__ */ jsx39(SheetPrimitive.Close, { "data-slot": "sheet-close", ...props });
|
|
3819
4138
|
}
|
|
3820
4139
|
function SheetPortal({
|
|
3821
4140
|
...props
|
|
3822
4141
|
}) {
|
|
3823
|
-
return /* @__PURE__ */
|
|
4142
|
+
return /* @__PURE__ */ jsx39(SheetPrimitive.Portal, { "data-slot": "sheet-portal", ...props });
|
|
3824
4143
|
}
|
|
3825
4144
|
function SheetOverlay({
|
|
3826
4145
|
className,
|
|
3827
4146
|
...props
|
|
3828
4147
|
}) {
|
|
3829
|
-
return /* @__PURE__ */
|
|
4148
|
+
return /* @__PURE__ */ jsx39(
|
|
3830
4149
|
SheetPrimitive.Overlay,
|
|
3831
4150
|
{
|
|
3832
4151
|
"data-slot": "sheet-overlay",
|
|
@@ -3845,9 +4164,9 @@ function SheetContent({
|
|
|
3845
4164
|
showCloseButton = true,
|
|
3846
4165
|
...props
|
|
3847
4166
|
}) {
|
|
3848
|
-
return /* @__PURE__ */
|
|
3849
|
-
/* @__PURE__ */
|
|
3850
|
-
/* @__PURE__ */
|
|
4167
|
+
return /* @__PURE__ */ jsxs20(SheetPortal, { children: [
|
|
4168
|
+
/* @__PURE__ */ jsx39(SheetOverlay, {}),
|
|
4169
|
+
/* @__PURE__ */ jsxs20(
|
|
3851
4170
|
SheetPrimitive.Content,
|
|
3852
4171
|
{
|
|
3853
4172
|
"data-slot": "sheet-content",
|
|
@@ -3862,9 +4181,9 @@ function SheetContent({
|
|
|
3862
4181
|
...props,
|
|
3863
4182
|
children: [
|
|
3864
4183
|
children,
|
|
3865
|
-
showCloseButton && /* @__PURE__ */
|
|
3866
|
-
/* @__PURE__ */
|
|
3867
|
-
/* @__PURE__ */
|
|
4184
|
+
showCloseButton && /* @__PURE__ */ jsxs20(SheetPrimitive.Close, { className: "ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none", children: [
|
|
4185
|
+
/* @__PURE__ */ jsx39(XIcon2, { className: "size-4" }),
|
|
4186
|
+
/* @__PURE__ */ jsx39("span", { className: "sr-only", children: "Close" })
|
|
3868
4187
|
] })
|
|
3869
4188
|
]
|
|
3870
4189
|
}
|
|
@@ -3872,7 +4191,7 @@ function SheetContent({
|
|
|
3872
4191
|
] });
|
|
3873
4192
|
}
|
|
3874
4193
|
function SheetHeader({ className, ...props }) {
|
|
3875
|
-
return /* @__PURE__ */
|
|
4194
|
+
return /* @__PURE__ */ jsx39(
|
|
3876
4195
|
"div",
|
|
3877
4196
|
{
|
|
3878
4197
|
"data-slot": "sheet-header",
|
|
@@ -3882,7 +4201,7 @@ function SheetHeader({ className, ...props }) {
|
|
|
3882
4201
|
);
|
|
3883
4202
|
}
|
|
3884
4203
|
function SheetFooter({ className, ...props }) {
|
|
3885
|
-
return /* @__PURE__ */
|
|
4204
|
+
return /* @__PURE__ */ jsx39(
|
|
3886
4205
|
"div",
|
|
3887
4206
|
{
|
|
3888
4207
|
"data-slot": "sheet-footer",
|
|
@@ -3895,7 +4214,7 @@ function SheetTitle({
|
|
|
3895
4214
|
className,
|
|
3896
4215
|
...props
|
|
3897
4216
|
}) {
|
|
3898
|
-
return /* @__PURE__ */
|
|
4217
|
+
return /* @__PURE__ */ jsx39(
|
|
3899
4218
|
SheetPrimitive.Title,
|
|
3900
4219
|
{
|
|
3901
4220
|
"data-slot": "sheet-title",
|
|
@@ -3908,7 +4227,7 @@ function SheetDescription({
|
|
|
3908
4227
|
className,
|
|
3909
4228
|
...props
|
|
3910
4229
|
}) {
|
|
3911
|
-
return /* @__PURE__ */
|
|
4230
|
+
return /* @__PURE__ */ jsx39(
|
|
3912
4231
|
SheetPrimitive.Description,
|
|
3913
4232
|
{
|
|
3914
4233
|
"data-slot": "sheet-description",
|
|
@@ -3922,12 +4241,12 @@ function SheetDescription({
|
|
|
3922
4241
|
import { Slot as Slot6 } from "@radix-ui/react-slot";
|
|
3923
4242
|
import { cva as cva7 } from "class-variance-authority";
|
|
3924
4243
|
import { PanelLeftIcon } from "lucide-react";
|
|
3925
|
-
import * as
|
|
4244
|
+
import * as React40 from "react";
|
|
3926
4245
|
|
|
3927
4246
|
// src/components/ui/skeleton.tsx
|
|
3928
|
-
import { jsx as
|
|
4247
|
+
import { jsx as jsx40 } from "react/jsx-runtime";
|
|
3929
4248
|
function Skeleton({ className, ...props }) {
|
|
3930
|
-
return /* @__PURE__ */
|
|
4249
|
+
return /* @__PURE__ */ jsx40(
|
|
3931
4250
|
"div",
|
|
3932
4251
|
{
|
|
3933
4252
|
"data-slot": "skeleton",
|
|
@@ -3940,12 +4259,12 @@ function Skeleton({ className, ...props }) {
|
|
|
3940
4259
|
// src/components/ui/tooltip.tsx
|
|
3941
4260
|
import "react";
|
|
3942
4261
|
import * as TooltipPrimitive from "@radix-ui/react-tooltip";
|
|
3943
|
-
import { jsx as
|
|
4262
|
+
import { jsx as jsx41, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
3944
4263
|
function TooltipProvider({
|
|
3945
4264
|
delayDuration = 0,
|
|
3946
4265
|
...props
|
|
3947
4266
|
}) {
|
|
3948
|
-
return /* @__PURE__ */
|
|
4267
|
+
return /* @__PURE__ */ jsx41(
|
|
3949
4268
|
TooltipPrimitive.Provider,
|
|
3950
4269
|
{
|
|
3951
4270
|
"data-slot": "tooltip-provider",
|
|
@@ -3957,12 +4276,12 @@ function TooltipProvider({
|
|
|
3957
4276
|
function Tooltip2({
|
|
3958
4277
|
...props
|
|
3959
4278
|
}) {
|
|
3960
|
-
return /* @__PURE__ */
|
|
4279
|
+
return /* @__PURE__ */ jsx41(TooltipProvider, { children: /* @__PURE__ */ jsx41(TooltipPrimitive.Root, { "data-slot": "tooltip", ...props }) });
|
|
3961
4280
|
}
|
|
3962
4281
|
function TooltipTrigger({
|
|
3963
4282
|
...props
|
|
3964
4283
|
}) {
|
|
3965
|
-
return /* @__PURE__ */
|
|
4284
|
+
return /* @__PURE__ */ jsx41(TooltipPrimitive.Trigger, { "data-slot": "tooltip-trigger", ...props });
|
|
3966
4285
|
}
|
|
3967
4286
|
function TooltipContent({
|
|
3968
4287
|
className,
|
|
@@ -3970,7 +4289,7 @@ function TooltipContent({
|
|
|
3970
4289
|
children,
|
|
3971
4290
|
...props
|
|
3972
4291
|
}) {
|
|
3973
|
-
return /* @__PURE__ */
|
|
4292
|
+
return /* @__PURE__ */ jsx41(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsxs21(
|
|
3974
4293
|
TooltipPrimitive.Content,
|
|
3975
4294
|
{
|
|
3976
4295
|
"data-slot": "tooltip-content",
|
|
@@ -3982,18 +4301,18 @@ function TooltipContent({
|
|
|
3982
4301
|
...props,
|
|
3983
4302
|
children: [
|
|
3984
4303
|
children,
|
|
3985
|
-
/* @__PURE__ */
|
|
4304
|
+
/* @__PURE__ */ jsx41(TooltipPrimitive.Arrow, { className: "bg-primary fill-primary z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]" })
|
|
3986
4305
|
]
|
|
3987
4306
|
}
|
|
3988
4307
|
) });
|
|
3989
4308
|
}
|
|
3990
4309
|
|
|
3991
4310
|
// src/hooks/use-mobile.ts
|
|
3992
|
-
import * as
|
|
4311
|
+
import * as React39 from "react";
|
|
3993
4312
|
var MOBILE_BREAKPOINT = 768;
|
|
3994
4313
|
function useIsMobile() {
|
|
3995
|
-
const [isMobile, setIsMobile] =
|
|
3996
|
-
|
|
4314
|
+
const [isMobile, setIsMobile] = React39.useState(void 0);
|
|
4315
|
+
React39.useEffect(() => {
|
|
3997
4316
|
const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
|
|
3998
4317
|
const onChange = () => {
|
|
3999
4318
|
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
@@ -4006,16 +4325,16 @@ function useIsMobile() {
|
|
|
4006
4325
|
}
|
|
4007
4326
|
|
|
4008
4327
|
// src/components/ui/sidebar.tsx
|
|
4009
|
-
import { jsx as
|
|
4328
|
+
import { jsx as jsx42, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
4010
4329
|
var SIDEBAR_COOKIE_NAME = "sidebar_state";
|
|
4011
4330
|
var SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
|
|
4012
4331
|
var SIDEBAR_WIDTH = "18rem";
|
|
4013
4332
|
var SIDEBAR_WIDTH_MOBILE = "18rem";
|
|
4014
4333
|
var SIDEBAR_WIDTH_ICON = "3rem";
|
|
4015
4334
|
var SIDEBAR_KEYBOARD_SHORTCUT = "b";
|
|
4016
|
-
var SidebarContext =
|
|
4335
|
+
var SidebarContext = React40.createContext(null);
|
|
4017
4336
|
function useSidebar() {
|
|
4018
|
-
const context =
|
|
4337
|
+
const context = React40.useContext(SidebarContext);
|
|
4019
4338
|
if (!context) {
|
|
4020
4339
|
throw new Error("useSidebar must be used within a SidebarProvider.");
|
|
4021
4340
|
}
|
|
@@ -4031,10 +4350,10 @@ function SidebarProvider({
|
|
|
4031
4350
|
...props
|
|
4032
4351
|
}) {
|
|
4033
4352
|
const isMobile = useIsMobile();
|
|
4034
|
-
const [openMobile, setOpenMobile] =
|
|
4035
|
-
const [_open, _setOpen] =
|
|
4353
|
+
const [openMobile, setOpenMobile] = React40.useState(false);
|
|
4354
|
+
const [_open, _setOpen] = React40.useState(defaultOpen);
|
|
4036
4355
|
const open = openProp ?? _open;
|
|
4037
|
-
const setOpen =
|
|
4356
|
+
const setOpen = React40.useCallback(
|
|
4038
4357
|
(value) => {
|
|
4039
4358
|
const openState = typeof value === "function" ? value(open) : value;
|
|
4040
4359
|
if (setOpenProp) {
|
|
@@ -4046,10 +4365,10 @@ function SidebarProvider({
|
|
|
4046
4365
|
},
|
|
4047
4366
|
[setOpenProp, open]
|
|
4048
4367
|
);
|
|
4049
|
-
const toggleSidebar =
|
|
4368
|
+
const toggleSidebar = React40.useCallback(() => {
|
|
4050
4369
|
return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
|
|
4051
4370
|
}, [isMobile, setOpen, setOpenMobile]);
|
|
4052
|
-
|
|
4371
|
+
React40.useEffect(() => {
|
|
4053
4372
|
const handleKeyDown = (event) => {
|
|
4054
4373
|
if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
|
|
4055
4374
|
event.preventDefault();
|
|
@@ -4060,7 +4379,7 @@ function SidebarProvider({
|
|
|
4060
4379
|
return () => window.removeEventListener("keydown", handleKeyDown);
|
|
4061
4380
|
}, [toggleSidebar]);
|
|
4062
4381
|
const state = open ? "expanded" : "collapsed";
|
|
4063
|
-
const contextValue =
|
|
4382
|
+
const contextValue = React40.useMemo(
|
|
4064
4383
|
() => ({
|
|
4065
4384
|
state,
|
|
4066
4385
|
open,
|
|
@@ -4072,7 +4391,7 @@ function SidebarProvider({
|
|
|
4072
4391
|
}),
|
|
4073
4392
|
[state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]
|
|
4074
4393
|
);
|
|
4075
|
-
return /* @__PURE__ */
|
|
4394
|
+
return /* @__PURE__ */ jsx42(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx42(TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ jsx42(
|
|
4076
4395
|
"div",
|
|
4077
4396
|
{
|
|
4078
4397
|
"data-slot": "sidebar-wrapper",
|
|
@@ -4100,7 +4419,7 @@ function Sidebar({
|
|
|
4100
4419
|
}) {
|
|
4101
4420
|
const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
|
|
4102
4421
|
if (collapsible === "none") {
|
|
4103
|
-
return /* @__PURE__ */
|
|
4422
|
+
return /* @__PURE__ */ jsx42(
|
|
4104
4423
|
"div",
|
|
4105
4424
|
{
|
|
4106
4425
|
"data-slot": "sidebar",
|
|
@@ -4114,7 +4433,7 @@ function Sidebar({
|
|
|
4114
4433
|
);
|
|
4115
4434
|
}
|
|
4116
4435
|
if (isMobile) {
|
|
4117
|
-
return /* @__PURE__ */
|
|
4436
|
+
return /* @__PURE__ */ jsx42(Sheet, { open: openMobile, onOpenChange: setOpenMobile, ...props, children: /* @__PURE__ */ jsxs22(
|
|
4118
4437
|
SheetContent,
|
|
4119
4438
|
{
|
|
4120
4439
|
"data-sidebar": "sidebar",
|
|
@@ -4126,16 +4445,16 @@ function Sidebar({
|
|
|
4126
4445
|
},
|
|
4127
4446
|
side,
|
|
4128
4447
|
children: [
|
|
4129
|
-
/* @__PURE__ */
|
|
4130
|
-
/* @__PURE__ */
|
|
4131
|
-
/* @__PURE__ */
|
|
4448
|
+
/* @__PURE__ */ jsxs22(SheetHeader, { className: "sr-only", children: [
|
|
4449
|
+
/* @__PURE__ */ jsx42(SheetTitle, { children: "Sidebar" }),
|
|
4450
|
+
/* @__PURE__ */ jsx42(SheetDescription, { children: "Displays the mobile sidebar." })
|
|
4132
4451
|
] }),
|
|
4133
|
-
/* @__PURE__ */
|
|
4452
|
+
/* @__PURE__ */ jsx42("div", { className: "flex h-full w-full flex-col", children })
|
|
4134
4453
|
]
|
|
4135
4454
|
}
|
|
4136
4455
|
) });
|
|
4137
4456
|
}
|
|
4138
|
-
return /* @__PURE__ */
|
|
4457
|
+
return /* @__PURE__ */ jsxs22(
|
|
4139
4458
|
"div",
|
|
4140
4459
|
{
|
|
4141
4460
|
className: "group peer text-sidebar-foreground hidden md:block",
|
|
@@ -4145,7 +4464,7 @@ function Sidebar({
|
|
|
4145
4464
|
"data-side": side,
|
|
4146
4465
|
"data-slot": "sidebar",
|
|
4147
4466
|
children: [
|
|
4148
|
-
/* @__PURE__ */
|
|
4467
|
+
/* @__PURE__ */ jsx42(
|
|
4149
4468
|
"div",
|
|
4150
4469
|
{
|
|
4151
4470
|
"data-slot": "sidebar-gap",
|
|
@@ -4157,7 +4476,7 @@ function Sidebar({
|
|
|
4157
4476
|
)
|
|
4158
4477
|
}
|
|
4159
4478
|
),
|
|
4160
|
-
/* @__PURE__ */
|
|
4479
|
+
/* @__PURE__ */ jsx42(
|
|
4161
4480
|
"div",
|
|
4162
4481
|
{
|
|
4163
4482
|
"data-slot": "sidebar-container",
|
|
@@ -4169,7 +4488,7 @@ function Sidebar({
|
|
|
4169
4488
|
className
|
|
4170
4489
|
),
|
|
4171
4490
|
...props,
|
|
4172
|
-
children: /* @__PURE__ */
|
|
4491
|
+
children: /* @__PURE__ */ jsx42(
|
|
4173
4492
|
"div",
|
|
4174
4493
|
{
|
|
4175
4494
|
"data-sidebar": "sidebar",
|
|
@@ -4190,7 +4509,7 @@ function SidebarTrigger({
|
|
|
4190
4509
|
...props
|
|
4191
4510
|
}) {
|
|
4192
4511
|
const { toggleSidebar } = useSidebar();
|
|
4193
|
-
return /* @__PURE__ */
|
|
4512
|
+
return /* @__PURE__ */ jsxs22(
|
|
4194
4513
|
Button,
|
|
4195
4514
|
{
|
|
4196
4515
|
"data-sidebar": "trigger",
|
|
@@ -4204,15 +4523,15 @@ function SidebarTrigger({
|
|
|
4204
4523
|
},
|
|
4205
4524
|
...props,
|
|
4206
4525
|
children: [
|
|
4207
|
-
/* @__PURE__ */
|
|
4208
|
-
/* @__PURE__ */
|
|
4526
|
+
/* @__PURE__ */ jsx42(PanelLeftIcon, {}),
|
|
4527
|
+
/* @__PURE__ */ jsx42("span", { className: "sr-only", children: "Toggle Sidebar" })
|
|
4209
4528
|
]
|
|
4210
4529
|
}
|
|
4211
4530
|
);
|
|
4212
4531
|
}
|
|
4213
4532
|
function SidebarRail({ className, ...props }) {
|
|
4214
4533
|
const { toggleSidebar } = useSidebar();
|
|
4215
|
-
return /* @__PURE__ */
|
|
4534
|
+
return /* @__PURE__ */ jsx42(
|
|
4216
4535
|
"button",
|
|
4217
4536
|
{
|
|
4218
4537
|
"data-sidebar": "rail",
|
|
@@ -4235,7 +4554,7 @@ function SidebarRail({ className, ...props }) {
|
|
|
4235
4554
|
);
|
|
4236
4555
|
}
|
|
4237
4556
|
function SidebarInset({ className, ...props }) {
|
|
4238
|
-
return /* @__PURE__ */
|
|
4557
|
+
return /* @__PURE__ */ jsx42(
|
|
4239
4558
|
"main",
|
|
4240
4559
|
{
|
|
4241
4560
|
"data-slot": "sidebar-inset",
|
|
@@ -4252,7 +4571,7 @@ function SidebarInput({
|
|
|
4252
4571
|
className,
|
|
4253
4572
|
...props
|
|
4254
4573
|
}) {
|
|
4255
|
-
return /* @__PURE__ */
|
|
4574
|
+
return /* @__PURE__ */ jsx42(
|
|
4256
4575
|
Input,
|
|
4257
4576
|
{
|
|
4258
4577
|
"data-slot": "sidebar-input",
|
|
@@ -4263,7 +4582,7 @@ function SidebarInput({
|
|
|
4263
4582
|
);
|
|
4264
4583
|
}
|
|
4265
4584
|
function SidebarHeader({ className, ...props }) {
|
|
4266
|
-
return /* @__PURE__ */
|
|
4585
|
+
return /* @__PURE__ */ jsx42(
|
|
4267
4586
|
"div",
|
|
4268
4587
|
{
|
|
4269
4588
|
"data-slot": "sidebar-header",
|
|
@@ -4274,7 +4593,7 @@ function SidebarHeader({ className, ...props }) {
|
|
|
4274
4593
|
);
|
|
4275
4594
|
}
|
|
4276
4595
|
function SidebarFooter({ className, ...props }) {
|
|
4277
|
-
return /* @__PURE__ */
|
|
4596
|
+
return /* @__PURE__ */ jsx42(
|
|
4278
4597
|
"div",
|
|
4279
4598
|
{
|
|
4280
4599
|
"data-slot": "sidebar-footer",
|
|
@@ -4288,7 +4607,7 @@ function SidebarSeparator({
|
|
|
4288
4607
|
className,
|
|
4289
4608
|
...props
|
|
4290
4609
|
}) {
|
|
4291
|
-
return /* @__PURE__ */
|
|
4610
|
+
return /* @__PURE__ */ jsx42(
|
|
4292
4611
|
Separator5,
|
|
4293
4612
|
{
|
|
4294
4613
|
"data-slot": "sidebar-separator",
|
|
@@ -4299,7 +4618,7 @@ function SidebarSeparator({
|
|
|
4299
4618
|
);
|
|
4300
4619
|
}
|
|
4301
4620
|
function SidebarContent({ className, ...props }) {
|
|
4302
|
-
return /* @__PURE__ */
|
|
4621
|
+
return /* @__PURE__ */ jsx42(
|
|
4303
4622
|
"div",
|
|
4304
4623
|
{
|
|
4305
4624
|
"data-slot": "sidebar-content",
|
|
@@ -4313,7 +4632,7 @@ function SidebarContent({ className, ...props }) {
|
|
|
4313
4632
|
);
|
|
4314
4633
|
}
|
|
4315
4634
|
function SidebarGroup({ className, ...props }) {
|
|
4316
|
-
return /* @__PURE__ */
|
|
4635
|
+
return /* @__PURE__ */ jsx42(
|
|
4317
4636
|
"div",
|
|
4318
4637
|
{
|
|
4319
4638
|
"data-slot": "sidebar-group",
|
|
@@ -4329,7 +4648,7 @@ function SidebarGroupLabel({
|
|
|
4329
4648
|
...props
|
|
4330
4649
|
}) {
|
|
4331
4650
|
const Comp = asChild ? Slot6 : "div";
|
|
4332
|
-
return /* @__PURE__ */
|
|
4651
|
+
return /* @__PURE__ */ jsx42(
|
|
4333
4652
|
Comp,
|
|
4334
4653
|
{
|
|
4335
4654
|
"data-slot": "sidebar-group-label",
|
|
@@ -4349,7 +4668,7 @@ function SidebarGroupAction({
|
|
|
4349
4668
|
...props
|
|
4350
4669
|
}) {
|
|
4351
4670
|
const Comp = asChild ? Slot6 : "button";
|
|
4352
|
-
return /* @__PURE__ */
|
|
4671
|
+
return /* @__PURE__ */ jsx42(
|
|
4353
4672
|
Comp,
|
|
4354
4673
|
{
|
|
4355
4674
|
"data-slot": "sidebar-group-action",
|
|
@@ -4369,7 +4688,7 @@ function SidebarGroupContent({
|
|
|
4369
4688
|
className,
|
|
4370
4689
|
...props
|
|
4371
4690
|
}) {
|
|
4372
|
-
return /* @__PURE__ */
|
|
4691
|
+
return /* @__PURE__ */ jsx42(
|
|
4373
4692
|
"div",
|
|
4374
4693
|
{
|
|
4375
4694
|
"data-slot": "sidebar-group-content",
|
|
@@ -4380,7 +4699,7 @@ function SidebarGroupContent({
|
|
|
4380
4699
|
);
|
|
4381
4700
|
}
|
|
4382
4701
|
function SidebarMenu({ className, ...props }) {
|
|
4383
|
-
return /* @__PURE__ */
|
|
4702
|
+
return /* @__PURE__ */ jsx42(
|
|
4384
4703
|
"ul",
|
|
4385
4704
|
{
|
|
4386
4705
|
"data-slot": "sidebar-menu",
|
|
@@ -4391,7 +4710,7 @@ function SidebarMenu({ className, ...props }) {
|
|
|
4391
4710
|
);
|
|
4392
4711
|
}
|
|
4393
4712
|
function SidebarMenuItem({ className, ...props }) {
|
|
4394
|
-
return /* @__PURE__ */
|
|
4713
|
+
return /* @__PURE__ */ jsx42(
|
|
4395
4714
|
"li",
|
|
4396
4715
|
{
|
|
4397
4716
|
"data-slot": "sidebar-menu-item",
|
|
@@ -4432,7 +4751,7 @@ function SidebarMenuButton({
|
|
|
4432
4751
|
}) {
|
|
4433
4752
|
const Comp = asChild ? Slot6 : "button";
|
|
4434
4753
|
const { isMobile, state } = useSidebar();
|
|
4435
|
-
const button = /* @__PURE__ */
|
|
4754
|
+
const button = /* @__PURE__ */ jsx42(
|
|
4436
4755
|
Comp,
|
|
4437
4756
|
{
|
|
4438
4757
|
"data-slot": "sidebar-menu-button",
|
|
@@ -4451,9 +4770,9 @@ function SidebarMenuButton({
|
|
|
4451
4770
|
children: tooltip
|
|
4452
4771
|
};
|
|
4453
4772
|
}
|
|
4454
|
-
return /* @__PURE__ */
|
|
4455
|
-
/* @__PURE__ */
|
|
4456
|
-
/* @__PURE__ */
|
|
4773
|
+
return /* @__PURE__ */ jsxs22(Tooltip2, { children: [
|
|
4774
|
+
/* @__PURE__ */ jsx42(TooltipTrigger, { asChild: true, children: button }),
|
|
4775
|
+
/* @__PURE__ */ jsx42(
|
|
4457
4776
|
TooltipContent,
|
|
4458
4777
|
{
|
|
4459
4778
|
side: "right",
|
|
@@ -4471,7 +4790,7 @@ function SidebarMenuAction({
|
|
|
4471
4790
|
...props
|
|
4472
4791
|
}) {
|
|
4473
4792
|
const Comp = asChild ? Slot6 : "button";
|
|
4474
|
-
return /* @__PURE__ */
|
|
4793
|
+
return /* @__PURE__ */ jsx42(
|
|
4475
4794
|
Comp,
|
|
4476
4795
|
{
|
|
4477
4796
|
"data-slot": "sidebar-menu-action",
|
|
@@ -4495,7 +4814,7 @@ function SidebarMenuBadge({
|
|
|
4495
4814
|
className,
|
|
4496
4815
|
...props
|
|
4497
4816
|
}) {
|
|
4498
|
-
return /* @__PURE__ */
|
|
4817
|
+
return /* @__PURE__ */ jsx42(
|
|
4499
4818
|
"div",
|
|
4500
4819
|
{
|
|
4501
4820
|
"data-slot": "sidebar-menu-badge",
|
|
@@ -4518,10 +4837,10 @@ function SidebarMenuSkeleton({
|
|
|
4518
4837
|
showIcon = false,
|
|
4519
4838
|
...props
|
|
4520
4839
|
}) {
|
|
4521
|
-
const width =
|
|
4840
|
+
const width = React40.useMemo(() => {
|
|
4522
4841
|
return `${Math.floor(Math.random() * 40) + 50}%`;
|
|
4523
4842
|
}, []);
|
|
4524
|
-
return /* @__PURE__ */
|
|
4843
|
+
return /* @__PURE__ */ jsxs22(
|
|
4525
4844
|
"div",
|
|
4526
4845
|
{
|
|
4527
4846
|
"data-slot": "sidebar-menu-skeleton",
|
|
@@ -4529,14 +4848,14 @@ function SidebarMenuSkeleton({
|
|
|
4529
4848
|
className: cn("flex h-8 items-center gap-2 rounded-md px-2", className),
|
|
4530
4849
|
...props,
|
|
4531
4850
|
children: [
|
|
4532
|
-
showIcon && /* @__PURE__ */
|
|
4851
|
+
showIcon && /* @__PURE__ */ jsx42(
|
|
4533
4852
|
Skeleton,
|
|
4534
4853
|
{
|
|
4535
4854
|
className: "size-4 rounded-md",
|
|
4536
4855
|
"data-sidebar": "menu-skeleton-icon"
|
|
4537
4856
|
}
|
|
4538
4857
|
),
|
|
4539
|
-
/* @__PURE__ */
|
|
4858
|
+
/* @__PURE__ */ jsx42(
|
|
4540
4859
|
Skeleton,
|
|
4541
4860
|
{
|
|
4542
4861
|
className: "h-4 max-w-(--skeleton-width) flex-1",
|
|
@@ -4551,7 +4870,7 @@ function SidebarMenuSkeleton({
|
|
|
4551
4870
|
);
|
|
4552
4871
|
}
|
|
4553
4872
|
function SidebarMenuSub({ className, ...props }) {
|
|
4554
|
-
return /* @__PURE__ */
|
|
4873
|
+
return /* @__PURE__ */ jsx42(
|
|
4555
4874
|
"ul",
|
|
4556
4875
|
{
|
|
4557
4876
|
"data-slot": "sidebar-menu-sub",
|
|
@@ -4569,7 +4888,7 @@ function SidebarMenuSubItem({
|
|
|
4569
4888
|
className,
|
|
4570
4889
|
...props
|
|
4571
4890
|
}) {
|
|
4572
|
-
return /* @__PURE__ */
|
|
4891
|
+
return /* @__PURE__ */ jsx42(
|
|
4573
4892
|
"li",
|
|
4574
4893
|
{
|
|
4575
4894
|
"data-slot": "sidebar-menu-sub-item",
|
|
@@ -4587,7 +4906,7 @@ function SidebarMenuSubButton({
|
|
|
4587
4906
|
...props
|
|
4588
4907
|
}) {
|
|
4589
4908
|
const Comp = asChild ? Slot6 : "a";
|
|
4590
|
-
return /* @__PURE__ */
|
|
4909
|
+
return /* @__PURE__ */ jsx42(
|
|
4591
4910
|
Comp,
|
|
4592
4911
|
{
|
|
4593
4912
|
"data-slot": "sidebar-menu-sub-button",
|
|
@@ -4608,9 +4927,9 @@ function SidebarMenuSubButton({
|
|
|
4608
4927
|
}
|
|
4609
4928
|
|
|
4610
4929
|
// src/components/ui/slider.tsx
|
|
4611
|
-
import * as
|
|
4930
|
+
import * as React41 from "react";
|
|
4612
4931
|
import * as SliderPrimitive from "@radix-ui/react-slider";
|
|
4613
|
-
import { jsx as
|
|
4932
|
+
import { jsx as jsx43, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
4614
4933
|
function Slider({
|
|
4615
4934
|
className,
|
|
4616
4935
|
defaultValue,
|
|
@@ -4619,11 +4938,11 @@ function Slider({
|
|
|
4619
4938
|
max = 100,
|
|
4620
4939
|
...props
|
|
4621
4940
|
}) {
|
|
4622
|
-
const _values =
|
|
4941
|
+
const _values = React41.useMemo(
|
|
4623
4942
|
() => Array.isArray(value) ? value : Array.isArray(defaultValue) ? defaultValue : [min, max],
|
|
4624
4943
|
[value, defaultValue, min, max]
|
|
4625
4944
|
);
|
|
4626
|
-
return /* @__PURE__ */
|
|
4945
|
+
return /* @__PURE__ */ jsxs23(
|
|
4627
4946
|
SliderPrimitive.Root,
|
|
4628
4947
|
{
|
|
4629
4948
|
"data-slot": "slider",
|
|
@@ -4637,14 +4956,14 @@ function Slider({
|
|
|
4637
4956
|
),
|
|
4638
4957
|
...props,
|
|
4639
4958
|
children: [
|
|
4640
|
-
/* @__PURE__ */
|
|
4959
|
+
/* @__PURE__ */ jsx43(
|
|
4641
4960
|
SliderPrimitive.Track,
|
|
4642
4961
|
{
|
|
4643
4962
|
"data-slot": "slider-track",
|
|
4644
4963
|
className: cn(
|
|
4645
4964
|
"bg-muted relative grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5"
|
|
4646
4965
|
),
|
|
4647
|
-
children: /* @__PURE__ */
|
|
4966
|
+
children: /* @__PURE__ */ jsx43(
|
|
4648
4967
|
SliderPrimitive.Range,
|
|
4649
4968
|
{
|
|
4650
4969
|
"data-slot": "slider-range",
|
|
@@ -4655,7 +4974,7 @@ function Slider({
|
|
|
4655
4974
|
)
|
|
4656
4975
|
}
|
|
4657
4976
|
),
|
|
4658
|
-
Array.from({ length: _values.length }, (_, index) => /* @__PURE__ */
|
|
4977
|
+
Array.from({ length: _values.length }, (_, index) => /* @__PURE__ */ jsx43(
|
|
4659
4978
|
SliderPrimitive.Thumb,
|
|
4660
4979
|
{
|
|
4661
4980
|
"data-slot": "slider-thumb",
|
|
@@ -4672,7 +4991,7 @@ function Slider({
|
|
|
4672
4991
|
import "react";
|
|
4673
4992
|
|
|
4674
4993
|
// src/components/ui/useMediaQuery.ts
|
|
4675
|
-
import { useEffect as
|
|
4994
|
+
import { useEffect as useEffect7, useState as useState6 } from "react";
|
|
4676
4995
|
function useMediaQuery(query) {
|
|
4677
4996
|
const getMatches = (query2) => {
|
|
4678
4997
|
if (typeof window !== "undefined") {
|
|
@@ -4680,11 +4999,11 @@ function useMediaQuery(query) {
|
|
|
4680
4999
|
}
|
|
4681
5000
|
return false;
|
|
4682
5001
|
};
|
|
4683
|
-
const [matches, setMatches] =
|
|
5002
|
+
const [matches, setMatches] = useState6(getMatches(query));
|
|
4684
5003
|
function handleChange() {
|
|
4685
5004
|
setMatches(getMatches(query));
|
|
4686
5005
|
}
|
|
4687
|
-
|
|
5006
|
+
useEffect7(() => {
|
|
4688
5007
|
const matchMedia = window.matchMedia(query);
|
|
4689
5008
|
handleChange();
|
|
4690
5009
|
if (matchMedia.addListener) {
|
|
@@ -4704,10 +5023,10 @@ function useMediaQuery(query) {
|
|
|
4704
5023
|
}
|
|
4705
5024
|
|
|
4706
5025
|
// src/components/ui/smart-dialog-drawer.tsx
|
|
4707
|
-
import { Fragment as Fragment3, jsx as
|
|
5026
|
+
import { Fragment as Fragment3, jsx as jsx44 } from "react/jsx-runtime";
|
|
4708
5027
|
var SmartDialog = ({ children, ...props }) => {
|
|
4709
5028
|
const isMobile = useMediaQuery("(max-width: 600px)");
|
|
4710
|
-
return isMobile ? /* @__PURE__ */
|
|
5029
|
+
return isMobile ? /* @__PURE__ */ jsx44(Drawer, { ...props, children }) : /* @__PURE__ */ jsx44(Dialog, { ...props, children });
|
|
4711
5030
|
};
|
|
4712
5031
|
var SmartDialogContent = ({
|
|
4713
5032
|
children,
|
|
@@ -4717,14 +5036,14 @@ var SmartDialogContent = ({
|
|
|
4717
5036
|
...props
|
|
4718
5037
|
}) => {
|
|
4719
5038
|
const isMobile = useMediaQuery("(max-width: 600px)");
|
|
4720
|
-
return isMobile ? /* @__PURE__ */
|
|
5039
|
+
return isMobile ? /* @__PURE__ */ jsx44(
|
|
4721
5040
|
DrawerContent,
|
|
4722
5041
|
{
|
|
4723
5042
|
...props,
|
|
4724
5043
|
withCloseButton: withCloseButton ?? showCloseButton ?? true,
|
|
4725
5044
|
children
|
|
4726
5045
|
}
|
|
4727
|
-
) : /* @__PURE__ */
|
|
5046
|
+
) : /* @__PURE__ */ jsx44(
|
|
4728
5047
|
DialogContent,
|
|
4729
5048
|
{
|
|
4730
5049
|
...props,
|
|
@@ -4739,39 +5058,39 @@ var SmartDialogDescription = ({
|
|
|
4739
5058
|
...props
|
|
4740
5059
|
}) => {
|
|
4741
5060
|
const isMobile = useMediaQuery("(max-width: 600px)");
|
|
4742
|
-
return isMobile ? /* @__PURE__ */
|
|
5061
|
+
return isMobile ? /* @__PURE__ */ jsx44(DrawerDescription, { ...props, children }) : /* @__PURE__ */ jsx44(DialogDescription, { ...props, children });
|
|
4743
5062
|
};
|
|
4744
5063
|
var SmartDialogHeader = ({ children, ...props }) => {
|
|
4745
5064
|
const isMobile = useMediaQuery("(max-width: 600px)");
|
|
4746
|
-
return isMobile ? /* @__PURE__ */
|
|
5065
|
+
return isMobile ? /* @__PURE__ */ jsx44(DrawerHeader, { ...props, children }) : /* @__PURE__ */ jsx44(DialogHeader, { ...props, children });
|
|
4747
5066
|
};
|
|
4748
5067
|
var SmartDialogTitle = ({ children, ...props }) => {
|
|
4749
5068
|
const isMobile = useMediaQuery("(max-width: 600px)");
|
|
4750
|
-
return isMobile ? /* @__PURE__ */
|
|
5069
|
+
return isMobile ? /* @__PURE__ */ jsx44(DrawerTitle, { ...props, children }) : /* @__PURE__ */ jsx44(DialogTitle, { ...props, children });
|
|
4751
5070
|
};
|
|
4752
5071
|
var SmartDialogTrigger = ({
|
|
4753
5072
|
children,
|
|
4754
5073
|
...props
|
|
4755
5074
|
}) => {
|
|
4756
5075
|
const isMobile = useMediaQuery("(max-width: 600px)");
|
|
4757
|
-
return isMobile ? /* @__PURE__ */
|
|
5076
|
+
return isMobile ? /* @__PURE__ */ jsx44(DrawerTrigger, { ...props, children }) : /* @__PURE__ */ jsx44(DialogTrigger, { ...props, children });
|
|
4758
5077
|
};
|
|
4759
5078
|
var SmartDialogFooter = ({ children, ...props }) => {
|
|
4760
5079
|
const isMobile = useMediaQuery("(max-width: 600px)");
|
|
4761
|
-
return isMobile ? /* @__PURE__ */
|
|
5080
|
+
return isMobile ? /* @__PURE__ */ jsx44(DrawerFooter, { ...props, children }) : /* @__PURE__ */ jsx44(DialogFooter, { ...props, children });
|
|
4762
5081
|
};
|
|
4763
5082
|
var SmartDialogClose = ({ children, ...props }) => {
|
|
4764
5083
|
const isMobile = useMediaQuery("(max-width: 600px)");
|
|
4765
|
-
return isMobile ? /* @__PURE__ */
|
|
5084
|
+
return isMobile ? /* @__PURE__ */ jsx44(Fragment3, { children: /* @__PURE__ */ jsx44(DrawerClose, { ...props, children }) }) : /* @__PURE__ */ jsx44(DialogClose, { ...props, children });
|
|
4766
5085
|
};
|
|
4767
5086
|
|
|
4768
5087
|
// src/components/ui/sonner.tsx
|
|
4769
5088
|
import { useTheme } from "next-themes";
|
|
4770
5089
|
import { Toaster as Sonner } from "sonner";
|
|
4771
|
-
import { jsx as
|
|
5090
|
+
import { jsx as jsx45 } from "react/jsx-runtime";
|
|
4772
5091
|
var Toaster = ({ ...props }) => {
|
|
4773
5092
|
const { theme = "system" } = useTheme();
|
|
4774
|
-
return /* @__PURE__ */
|
|
5093
|
+
return /* @__PURE__ */ jsx45(
|
|
4775
5094
|
Sonner,
|
|
4776
5095
|
{
|
|
4777
5096
|
theme,
|
|
@@ -4789,12 +5108,12 @@ var Toaster = ({ ...props }) => {
|
|
|
4789
5108
|
// src/components/ui/switch.tsx
|
|
4790
5109
|
import * as SwitchPrimitive from "@radix-ui/react-switch";
|
|
4791
5110
|
import "react";
|
|
4792
|
-
import { jsx as
|
|
5111
|
+
import { jsx as jsx46 } from "react/jsx-runtime";
|
|
4793
5112
|
function Switch({
|
|
4794
5113
|
className,
|
|
4795
5114
|
...props
|
|
4796
5115
|
}) {
|
|
4797
|
-
return /* @__PURE__ */
|
|
5116
|
+
return /* @__PURE__ */ jsx46(
|
|
4798
5117
|
SwitchPrimitive.Root,
|
|
4799
5118
|
{
|
|
4800
5119
|
"data-slot": "switch",
|
|
@@ -4803,7 +5122,7 @@ function Switch({
|
|
|
4803
5122
|
className
|
|
4804
5123
|
),
|
|
4805
5124
|
...props,
|
|
4806
|
-
children: /* @__PURE__ */
|
|
5125
|
+
children: /* @__PURE__ */ jsx46(
|
|
4807
5126
|
SwitchPrimitive.Thumb,
|
|
4808
5127
|
{
|
|
4809
5128
|
"data-slot": "switch-thumb",
|
|
@@ -4818,14 +5137,14 @@ function Switch({
|
|
|
4818
5137
|
|
|
4819
5138
|
// src/components/ui/table.tsx
|
|
4820
5139
|
import "react";
|
|
4821
|
-
import { jsx as
|
|
5140
|
+
import { jsx as jsx47 } from "react/jsx-runtime";
|
|
4822
5141
|
function Table({ className, ...props }) {
|
|
4823
|
-
return /* @__PURE__ */
|
|
5142
|
+
return /* @__PURE__ */ jsx47(
|
|
4824
5143
|
"div",
|
|
4825
5144
|
{
|
|
4826
5145
|
"data-slot": "table-container",
|
|
4827
5146
|
className: "relative w-full overflow-x-auto",
|
|
4828
|
-
children: /* @__PURE__ */
|
|
5147
|
+
children: /* @__PURE__ */ jsx47(
|
|
4829
5148
|
"table",
|
|
4830
5149
|
{
|
|
4831
5150
|
"data-slot": "table",
|
|
@@ -4837,7 +5156,7 @@ function Table({ className, ...props }) {
|
|
|
4837
5156
|
);
|
|
4838
5157
|
}
|
|
4839
5158
|
function TableHeader({ className, ...props }) {
|
|
4840
|
-
return /* @__PURE__ */
|
|
5159
|
+
return /* @__PURE__ */ jsx47(
|
|
4841
5160
|
"thead",
|
|
4842
5161
|
{
|
|
4843
5162
|
"data-slot": "table-header",
|
|
@@ -4847,7 +5166,7 @@ function TableHeader({ className, ...props }) {
|
|
|
4847
5166
|
);
|
|
4848
5167
|
}
|
|
4849
5168
|
function TableBody({ className, ...props }) {
|
|
4850
|
-
return /* @__PURE__ */
|
|
5169
|
+
return /* @__PURE__ */ jsx47(
|
|
4851
5170
|
"tbody",
|
|
4852
5171
|
{
|
|
4853
5172
|
"data-slot": "table-body",
|
|
@@ -4857,7 +5176,7 @@ function TableBody({ className, ...props }) {
|
|
|
4857
5176
|
);
|
|
4858
5177
|
}
|
|
4859
5178
|
function TableFooter({ className, ...props }) {
|
|
4860
|
-
return /* @__PURE__ */
|
|
5179
|
+
return /* @__PURE__ */ jsx47(
|
|
4861
5180
|
"tfoot",
|
|
4862
5181
|
{
|
|
4863
5182
|
"data-slot": "table-footer",
|
|
@@ -4870,7 +5189,7 @@ function TableFooter({ className, ...props }) {
|
|
|
4870
5189
|
);
|
|
4871
5190
|
}
|
|
4872
5191
|
function TableRow({ className, ...props }) {
|
|
4873
|
-
return /* @__PURE__ */
|
|
5192
|
+
return /* @__PURE__ */ jsx47(
|
|
4874
5193
|
"tr",
|
|
4875
5194
|
{
|
|
4876
5195
|
"data-slot": "table-row",
|
|
@@ -4883,7 +5202,7 @@ function TableRow({ className, ...props }) {
|
|
|
4883
5202
|
);
|
|
4884
5203
|
}
|
|
4885
5204
|
function TableHead({ className, ...props }) {
|
|
4886
|
-
return /* @__PURE__ */
|
|
5205
|
+
return /* @__PURE__ */ jsx47(
|
|
4887
5206
|
"th",
|
|
4888
5207
|
{
|
|
4889
5208
|
"data-slot": "table-head",
|
|
@@ -4896,7 +5215,7 @@ function TableHead({ className, ...props }) {
|
|
|
4896
5215
|
);
|
|
4897
5216
|
}
|
|
4898
5217
|
function TableCell({ className, ...props }) {
|
|
4899
|
-
return /* @__PURE__ */
|
|
5218
|
+
return /* @__PURE__ */ jsx47(
|
|
4900
5219
|
"td",
|
|
4901
5220
|
{
|
|
4902
5221
|
"data-slot": "table-cell",
|
|
@@ -4912,7 +5231,7 @@ function TableCaption({
|
|
|
4912
5231
|
className,
|
|
4913
5232
|
...props
|
|
4914
5233
|
}) {
|
|
4915
|
-
return /* @__PURE__ */
|
|
5234
|
+
return /* @__PURE__ */ jsx47(
|
|
4916
5235
|
"caption",
|
|
4917
5236
|
{
|
|
4918
5237
|
"data-slot": "table-caption",
|
|
@@ -4925,12 +5244,12 @@ function TableCaption({
|
|
|
4925
5244
|
// src/components/ui/tabs.tsx
|
|
4926
5245
|
import * as TabsPrimitive from "@radix-ui/react-tabs";
|
|
4927
5246
|
import "react";
|
|
4928
|
-
import { jsx as
|
|
5247
|
+
import { jsx as jsx48 } from "react/jsx-runtime";
|
|
4929
5248
|
function Tabs({
|
|
4930
5249
|
className,
|
|
4931
5250
|
...props
|
|
4932
5251
|
}) {
|
|
4933
|
-
return /* @__PURE__ */
|
|
5252
|
+
return /* @__PURE__ */ jsx48(
|
|
4934
5253
|
TabsPrimitive.Root,
|
|
4935
5254
|
{
|
|
4936
5255
|
"data-slot": "tabs",
|
|
@@ -4943,7 +5262,7 @@ function TabsList({
|
|
|
4943
5262
|
className,
|
|
4944
5263
|
...props
|
|
4945
5264
|
}) {
|
|
4946
|
-
return /* @__PURE__ */
|
|
5265
|
+
return /* @__PURE__ */ jsx48(
|
|
4947
5266
|
TabsPrimitive.List,
|
|
4948
5267
|
{
|
|
4949
5268
|
"data-slot": "tabs-list",
|
|
@@ -4959,7 +5278,7 @@ function TabsTrigger({
|
|
|
4959
5278
|
className,
|
|
4960
5279
|
...props
|
|
4961
5280
|
}) {
|
|
4962
|
-
return /* @__PURE__ */
|
|
5281
|
+
return /* @__PURE__ */ jsx48(
|
|
4963
5282
|
TabsPrimitive.Trigger,
|
|
4964
5283
|
{
|
|
4965
5284
|
"data-slot": "tabs-trigger",
|
|
@@ -4975,7 +5294,7 @@ function TabsContent({
|
|
|
4975
5294
|
className,
|
|
4976
5295
|
...props
|
|
4977
5296
|
}) {
|
|
4978
|
-
return /* @__PURE__ */
|
|
5297
|
+
return /* @__PURE__ */ jsx48(
|
|
4979
5298
|
TabsPrimitive.Content,
|
|
4980
5299
|
{
|
|
4981
5300
|
"data-slot": "tabs-content",
|
|
@@ -4985,11 +5304,230 @@ function TabsContent({
|
|
|
4985
5304
|
);
|
|
4986
5305
|
}
|
|
4987
5306
|
|
|
5307
|
+
// src/components/ui/time-input.tsx
|
|
5308
|
+
import "class-variance-authority";
|
|
5309
|
+
import { Clock } from "lucide-react";
|
|
5310
|
+
import * as React46 from "react";
|
|
5311
|
+
import { jsx as jsx49, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
5312
|
+
function formatTime(time, timeFormat = "12h") {
|
|
5313
|
+
if (!time) return "";
|
|
5314
|
+
if (timeFormat === "24h") {
|
|
5315
|
+
return `${String(time.hours).padStart(2, "0")}:${String(time.minutes).padStart(2, "0")}`;
|
|
5316
|
+
}
|
|
5317
|
+
const period = time.hours >= 12 ? "PM" : "AM";
|
|
5318
|
+
const h12 = time.hours % 12 || 12;
|
|
5319
|
+
return `${String(h12).padStart(2, "0")}:${String(time.minutes).padStart(2, "0")} ${period}`;
|
|
5320
|
+
}
|
|
5321
|
+
function parseTime(value, timeFormat = "12h") {
|
|
5322
|
+
if (!value.trim()) return null;
|
|
5323
|
+
if (timeFormat === "24h") {
|
|
5324
|
+
const match2 = value.trim().match(/^(\d{1,2}):(\d{2})$/);
|
|
5325
|
+
if (!match2) return null;
|
|
5326
|
+
const hours2 = parseInt(match2[1], 10);
|
|
5327
|
+
const minutes2 = parseInt(match2[2], 10);
|
|
5328
|
+
if (hours2 < 0 || hours2 > 23 || minutes2 < 0 || minutes2 > 59) return null;
|
|
5329
|
+
return { hours: hours2, minutes: minutes2 };
|
|
5330
|
+
}
|
|
5331
|
+
const match = value.trim().match(/^(\d{1,2}):(\d{2})\s*(AM|PM|am|pm)$/i);
|
|
5332
|
+
if (!match) return null;
|
|
5333
|
+
let hours = parseInt(match[1], 10);
|
|
5334
|
+
const minutes = parseInt(match[2], 10);
|
|
5335
|
+
const period = match[3].toUpperCase();
|
|
5336
|
+
if (hours < 1 || hours > 12 || minutes < 0 || minutes > 59) return null;
|
|
5337
|
+
if (period === "AM" && hours === 12) hours = 0;
|
|
5338
|
+
else if (period === "PM" && hours !== 12) hours += 12;
|
|
5339
|
+
return { hours, minutes };
|
|
5340
|
+
}
|
|
5341
|
+
function getDisplayHour(hours, timeFormat) {
|
|
5342
|
+
if (timeFormat === "24h") return hours;
|
|
5343
|
+
return hours % 12 || 12;
|
|
5344
|
+
}
|
|
5345
|
+
function getPeriod(hours) {
|
|
5346
|
+
return hours >= 12 ? "PM" : "AM";
|
|
5347
|
+
}
|
|
5348
|
+
function TimeInput({
|
|
5349
|
+
time,
|
|
5350
|
+
setTime,
|
|
5351
|
+
timeFormat = "12h",
|
|
5352
|
+
minuteStep = 1,
|
|
5353
|
+
inputDisabled,
|
|
5354
|
+
className,
|
|
5355
|
+
inputClassName,
|
|
5356
|
+
size,
|
|
5357
|
+
placeholder,
|
|
5358
|
+
onBlur,
|
|
5359
|
+
...restProps
|
|
5360
|
+
}) {
|
|
5361
|
+
const resolvedPlaceholder = placeholder ?? (timeFormat === "12h" ? "hh:mm AM/PM" : "HH:mm");
|
|
5362
|
+
const [open, setOpen] = React46.useState(false);
|
|
5363
|
+
const [value, setValue] = React46.useState(formatTime(time, timeFormat));
|
|
5364
|
+
const hoursRef = React46.useRef(null);
|
|
5365
|
+
const minutesRef = React46.useRef(null);
|
|
5366
|
+
const periodRef = React46.useRef(null);
|
|
5367
|
+
React46.useEffect(() => {
|
|
5368
|
+
setValue(formatTime(time, timeFormat));
|
|
5369
|
+
}, [time, timeFormat]);
|
|
5370
|
+
const scrollToSelected = React46.useCallback(() => {
|
|
5371
|
+
requestAnimationFrame(() => {
|
|
5372
|
+
for (const ref of [hoursRef, minutesRef, periodRef]) {
|
|
5373
|
+
const container = ref.current;
|
|
5374
|
+
if (!container) continue;
|
|
5375
|
+
const selected = container.querySelector('[data-selected="true"]');
|
|
5376
|
+
if (selected) {
|
|
5377
|
+
selected.scrollIntoView({ block: "center", behavior: "instant" });
|
|
5378
|
+
}
|
|
5379
|
+
}
|
|
5380
|
+
});
|
|
5381
|
+
}, []);
|
|
5382
|
+
React46.useEffect(() => {
|
|
5383
|
+
if (open) {
|
|
5384
|
+
scrollToSelected();
|
|
5385
|
+
}
|
|
5386
|
+
}, [open, scrollToSelected]);
|
|
5387
|
+
const handleInputChange = (e) => {
|
|
5388
|
+
const inputValue = e.target.value;
|
|
5389
|
+
setValue(inputValue);
|
|
5390
|
+
if (inputValue === "") {
|
|
5391
|
+
setTime(null);
|
|
5392
|
+
return;
|
|
5393
|
+
}
|
|
5394
|
+
const parsed = parseTime(inputValue, timeFormat);
|
|
5395
|
+
if (parsed) {
|
|
5396
|
+
setTime(parsed);
|
|
5397
|
+
}
|
|
5398
|
+
};
|
|
5399
|
+
const handleBlur = (e) => {
|
|
5400
|
+
onBlur?.(e);
|
|
5401
|
+
if (value === "") {
|
|
5402
|
+
if (time !== null) setTime(null);
|
|
5403
|
+
return;
|
|
5404
|
+
}
|
|
5405
|
+
const parsed = parseTime(value, timeFormat);
|
|
5406
|
+
if (!parsed) {
|
|
5407
|
+
setValue(formatTime(time, timeFormat));
|
|
5408
|
+
}
|
|
5409
|
+
};
|
|
5410
|
+
const handleHourSelect = (hour) => {
|
|
5411
|
+
let h24;
|
|
5412
|
+
if (timeFormat === "24h") {
|
|
5413
|
+
h24 = hour;
|
|
5414
|
+
} else {
|
|
5415
|
+
const currentPeriod = time ? getPeriod(time.hours) : "AM";
|
|
5416
|
+
if (currentPeriod === "AM") {
|
|
5417
|
+
h24 = hour === 12 ? 0 : hour;
|
|
5418
|
+
} else {
|
|
5419
|
+
h24 = hour === 12 ? 12 : hour + 12;
|
|
5420
|
+
}
|
|
5421
|
+
}
|
|
5422
|
+
setTime({ hours: h24, minutes: time?.minutes ?? 0 });
|
|
5423
|
+
};
|
|
5424
|
+
const handleMinuteSelect = (minute) => {
|
|
5425
|
+
setTime({ hours: time?.hours ?? 0, minutes: minute });
|
|
5426
|
+
};
|
|
5427
|
+
const handlePeriodSelect = (period) => {
|
|
5428
|
+
const currentHours = time?.hours ?? 0;
|
|
5429
|
+
const currentH12 = currentHours % 12;
|
|
5430
|
+
const newHours = period === "AM" ? currentH12 : currentH12 + 12;
|
|
5431
|
+
setTime({ hours: newHours, minutes: time?.minutes ?? 0 });
|
|
5432
|
+
};
|
|
5433
|
+
const hoursList = timeFormat === "12h" ? Array.from({ length: 12 }, (_, i) => i + 1) : Array.from({ length: 24 }, (_, i) => i);
|
|
5434
|
+
const minutesList = Array.from(
|
|
5435
|
+
{ length: Math.ceil(60 / minuteStep) },
|
|
5436
|
+
(_, i) => i * minuteStep
|
|
5437
|
+
);
|
|
5438
|
+
const selectedH12 = time ? getDisplayHour(time.hours, timeFormat) : null;
|
|
5439
|
+
const selectedMinute = time?.minutes ?? null;
|
|
5440
|
+
const selectedPeriod = time ? getPeriod(time.hours) : null;
|
|
5441
|
+
return /* @__PURE__ */ jsx49("div", { className: cn("relative flex gap-2", className), children: /* @__PURE__ */ jsxs24(Popover, { open, onOpenChange: setOpen, children: [
|
|
5442
|
+
/* @__PURE__ */ jsx49(PopoverTrigger, { asChild: true, disabled: inputDisabled, children: /* @__PURE__ */ jsx49("div", { className: "w-full relative", children: /* @__PURE__ */ jsx49(
|
|
5443
|
+
Input,
|
|
5444
|
+
{
|
|
5445
|
+
value,
|
|
5446
|
+
placeholder: resolvedPlaceholder,
|
|
5447
|
+
className: cn("bg-background cursor-pointer", inputClassName),
|
|
5448
|
+
onChange: handleInputChange,
|
|
5449
|
+
onBlur: handleBlur,
|
|
5450
|
+
disabled: inputDisabled,
|
|
5451
|
+
size,
|
|
5452
|
+
onClick: () => {
|
|
5453
|
+
if (!inputDisabled) setOpen(true);
|
|
5454
|
+
},
|
|
5455
|
+
onKeyDown: (e) => {
|
|
5456
|
+
if (e.key === "ArrowDown" && !inputDisabled) {
|
|
5457
|
+
e.preventDefault();
|
|
5458
|
+
setOpen(true);
|
|
5459
|
+
}
|
|
5460
|
+
},
|
|
5461
|
+
rightIcon: /* @__PURE__ */ jsx49(Clock, { className: "h-4 w-4 text-muted-foreground" }),
|
|
5462
|
+
...restProps
|
|
5463
|
+
}
|
|
5464
|
+
) }) }),
|
|
5465
|
+
/* @__PURE__ */ jsx49(
|
|
5466
|
+
PopoverContent,
|
|
5467
|
+
{
|
|
5468
|
+
className: "w-auto overflow-hidden p-0",
|
|
5469
|
+
align: "end",
|
|
5470
|
+
alignOffset: -8,
|
|
5471
|
+
sideOffset: 10,
|
|
5472
|
+
side: "top",
|
|
5473
|
+
onOpenAutoFocus: (e) => e.preventDefault(),
|
|
5474
|
+
children: /* @__PURE__ */ jsxs24("div", { className: "flex divide-x", children: [
|
|
5475
|
+
/* @__PURE__ */ jsx49(ScrollArea, { className: "h-56 w-16", children: /* @__PURE__ */ jsx49("div", { ref: hoursRef, className: "flex flex-col p-1", children: hoursList.map((h) => /* @__PURE__ */ jsx49(
|
|
5476
|
+
Button,
|
|
5477
|
+
{
|
|
5478
|
+
variant: "ghost",
|
|
5479
|
+
size: "sm",
|
|
5480
|
+
"data-selected": selectedH12 === h,
|
|
5481
|
+
className: cn(
|
|
5482
|
+
"w-full justify-center font-mono text-sm",
|
|
5483
|
+
selectedH12 === h && "bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground"
|
|
5484
|
+
),
|
|
5485
|
+
onClick: () => handleHourSelect(h),
|
|
5486
|
+
children: String(h).padStart(2, "0")
|
|
5487
|
+
},
|
|
5488
|
+
h
|
|
5489
|
+
)) }) }),
|
|
5490
|
+
/* @__PURE__ */ jsx49(ScrollArea, { className: "h-56 w-16", children: /* @__PURE__ */ jsx49("div", { ref: minutesRef, className: "flex flex-col p-1", children: minutesList.map((m) => /* @__PURE__ */ jsx49(
|
|
5491
|
+
Button,
|
|
5492
|
+
{
|
|
5493
|
+
variant: "ghost",
|
|
5494
|
+
size: "sm",
|
|
5495
|
+
"data-selected": selectedMinute === m,
|
|
5496
|
+
className: cn(
|
|
5497
|
+
"w-full justify-center font-mono text-sm",
|
|
5498
|
+
selectedMinute === m && "bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground"
|
|
5499
|
+
),
|
|
5500
|
+
onClick: () => handleMinuteSelect(m),
|
|
5501
|
+
children: String(m).padStart(2, "0")
|
|
5502
|
+
},
|
|
5503
|
+
m
|
|
5504
|
+
)) }) }),
|
|
5505
|
+
timeFormat === "12h" && /* @__PURE__ */ jsx49("div", { className: "flex flex-col p-1 justify-center gap-1", children: ["AM", "PM"].map((p) => /* @__PURE__ */ jsx49(
|
|
5506
|
+
Button,
|
|
5507
|
+
{
|
|
5508
|
+
variant: "ghost",
|
|
5509
|
+
size: "sm",
|
|
5510
|
+
"data-selected": selectedPeriod === p,
|
|
5511
|
+
className: cn(
|
|
5512
|
+
"w-14 justify-center text-sm",
|
|
5513
|
+
selectedPeriod === p && "bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground"
|
|
5514
|
+
),
|
|
5515
|
+
onClick: () => handlePeriodSelect(p),
|
|
5516
|
+
children: p
|
|
5517
|
+
},
|
|
5518
|
+
p
|
|
5519
|
+
)) })
|
|
5520
|
+
] })
|
|
5521
|
+
}
|
|
5522
|
+
)
|
|
5523
|
+
] }) });
|
|
5524
|
+
}
|
|
5525
|
+
|
|
4988
5526
|
// src/components/ui/toggle.tsx
|
|
4989
5527
|
import "react";
|
|
4990
5528
|
import * as TogglePrimitive from "@radix-ui/react-toggle";
|
|
4991
5529
|
import { cva as cva8 } from "class-variance-authority";
|
|
4992
|
-
import { jsx as
|
|
5530
|
+
import { jsx as jsx50 } from "react/jsx-runtime";
|
|
4993
5531
|
var toggleVariants = cva8(
|
|
4994
5532
|
"inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium hover:bg-muted hover:text-muted-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] outline-none transition-[color,box-shadow] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive whitespace-nowrap",
|
|
4995
5533
|
{
|
|
@@ -5016,7 +5554,7 @@ function Toggle({
|
|
|
5016
5554
|
size,
|
|
5017
5555
|
...props
|
|
5018
5556
|
}) {
|
|
5019
|
-
return /* @__PURE__ */
|
|
5557
|
+
return /* @__PURE__ */ jsx50(
|
|
5020
5558
|
TogglePrimitive.Root,
|
|
5021
5559
|
{
|
|
5022
5560
|
"data-slot": "toggle",
|
|
@@ -5027,11 +5565,11 @@ function Toggle({
|
|
|
5027
5565
|
}
|
|
5028
5566
|
|
|
5029
5567
|
// src/components/ui/toggle-group.tsx
|
|
5030
|
-
import * as
|
|
5568
|
+
import * as React48 from "react";
|
|
5031
5569
|
import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group";
|
|
5032
5570
|
import "class-variance-authority";
|
|
5033
|
-
import { jsx as
|
|
5034
|
-
var ToggleGroupContext =
|
|
5571
|
+
import { jsx as jsx51 } from "react/jsx-runtime";
|
|
5572
|
+
var ToggleGroupContext = React48.createContext({
|
|
5035
5573
|
size: "default",
|
|
5036
5574
|
variant: "default"
|
|
5037
5575
|
});
|
|
@@ -5042,7 +5580,7 @@ function ToggleGroup({
|
|
|
5042
5580
|
children,
|
|
5043
5581
|
...props
|
|
5044
5582
|
}) {
|
|
5045
|
-
return /* @__PURE__ */
|
|
5583
|
+
return /* @__PURE__ */ jsx51(
|
|
5046
5584
|
ToggleGroupPrimitive.Root,
|
|
5047
5585
|
{
|
|
5048
5586
|
"data-slot": "toggle-group",
|
|
@@ -5053,7 +5591,7 @@ function ToggleGroup({
|
|
|
5053
5591
|
className
|
|
5054
5592
|
),
|
|
5055
5593
|
...props,
|
|
5056
|
-
children: /* @__PURE__ */
|
|
5594
|
+
children: /* @__PURE__ */ jsx51(ToggleGroupContext.Provider, { value: { variant, size }, children })
|
|
5057
5595
|
}
|
|
5058
5596
|
);
|
|
5059
5597
|
}
|
|
@@ -5064,8 +5602,8 @@ function ToggleGroupItem({
|
|
|
5064
5602
|
size,
|
|
5065
5603
|
...props
|
|
5066
5604
|
}) {
|
|
5067
|
-
const context =
|
|
5068
|
-
return /* @__PURE__ */
|
|
5605
|
+
const context = React48.useContext(ToggleGroupContext);
|
|
5606
|
+
return /* @__PURE__ */ jsx51(
|
|
5069
5607
|
ToggleGroupPrimitive.Item,
|
|
5070
5608
|
{
|
|
5071
5609
|
"data-slot": "toggle-group-item",
|
|
@@ -5089,7 +5627,7 @@ function ToggleGroupItem({
|
|
|
5089
5627
|
import { Slot as Slot7 } from "@radix-ui/react-slot";
|
|
5090
5628
|
import { cva as cva9 } from "class-variance-authority";
|
|
5091
5629
|
import "react";
|
|
5092
|
-
import { jsx as
|
|
5630
|
+
import { jsx as jsx52 } from "react/jsx-runtime";
|
|
5093
5631
|
var displayTextVariants = cva9(
|
|
5094
5632
|
"tracking-normal font-normal leading-none text-brand-dark font-serif italic",
|
|
5095
5633
|
{
|
|
@@ -5112,7 +5650,7 @@ function DisplayHeading({
|
|
|
5112
5650
|
...props
|
|
5113
5651
|
}) {
|
|
5114
5652
|
const Comp = asChild ? Slot7 : "h1";
|
|
5115
|
-
return /* @__PURE__ */
|
|
5653
|
+
return /* @__PURE__ */ jsx52(
|
|
5116
5654
|
Comp,
|
|
5117
5655
|
{
|
|
5118
5656
|
"data-slot": "h1",
|
|
@@ -5141,7 +5679,7 @@ function Body({
|
|
|
5141
5679
|
...props
|
|
5142
5680
|
}) {
|
|
5143
5681
|
const Comp = asChild ? Slot7 : "p";
|
|
5144
|
-
return /* @__PURE__ */
|
|
5682
|
+
return /* @__PURE__ */ jsx52(
|
|
5145
5683
|
Comp,
|
|
5146
5684
|
{
|
|
5147
5685
|
"data-slot": "h1",
|
|
@@ -5156,7 +5694,7 @@ function HeadingXL({
|
|
|
5156
5694
|
...props
|
|
5157
5695
|
}) {
|
|
5158
5696
|
const Comp = asChild ? Slot7 : "h1";
|
|
5159
|
-
return /* @__PURE__ */
|
|
5697
|
+
return /* @__PURE__ */ jsx52(
|
|
5160
5698
|
Comp,
|
|
5161
5699
|
{
|
|
5162
5700
|
"data-slot": "h1",
|
|
@@ -5174,7 +5712,7 @@ function HeadingL({
|
|
|
5174
5712
|
...props
|
|
5175
5713
|
}) {
|
|
5176
5714
|
const Comp = asChild ? Slot7 : "h2";
|
|
5177
|
-
return /* @__PURE__ */
|
|
5715
|
+
return /* @__PURE__ */ jsx52(
|
|
5178
5716
|
Comp,
|
|
5179
5717
|
{
|
|
5180
5718
|
"data-slot": "h2",
|
|
@@ -5192,7 +5730,7 @@ function HeadingM({
|
|
|
5192
5730
|
...props
|
|
5193
5731
|
}) {
|
|
5194
5732
|
const Comp = asChild ? Slot7 : "h3";
|
|
5195
|
-
return /* @__PURE__ */
|
|
5733
|
+
return /* @__PURE__ */ jsx52(
|
|
5196
5734
|
Comp,
|
|
5197
5735
|
{
|
|
5198
5736
|
"data-slot": "h3",
|
|
@@ -5210,7 +5748,7 @@ function HeadingS({
|
|
|
5210
5748
|
...props
|
|
5211
5749
|
}) {
|
|
5212
5750
|
const Comp = asChild ? Slot7 : "h4";
|
|
5213
|
-
return /* @__PURE__ */
|
|
5751
|
+
return /* @__PURE__ */ jsx52(
|
|
5214
5752
|
Comp,
|
|
5215
5753
|
{
|
|
5216
5754
|
"data-slot": "h4",
|
|
@@ -5228,7 +5766,7 @@ function HeadingXS({
|
|
|
5228
5766
|
...props
|
|
5229
5767
|
}) {
|
|
5230
5768
|
const Comp = asChild ? Slot7 : "h5";
|
|
5231
|
-
return /* @__PURE__ */
|
|
5769
|
+
return /* @__PURE__ */ jsx52(
|
|
5232
5770
|
Comp,
|
|
5233
5771
|
{
|
|
5234
5772
|
"data-slot": "h5",
|
|
@@ -5246,7 +5784,7 @@ function HeadingXXS({
|
|
|
5246
5784
|
...props
|
|
5247
5785
|
}) {
|
|
5248
5786
|
const Comp = asChild ? Slot7 : "h6";
|
|
5249
|
-
return /* @__PURE__ */
|
|
5787
|
+
return /* @__PURE__ */ jsx52(
|
|
5250
5788
|
Comp,
|
|
5251
5789
|
{
|
|
5252
5790
|
"data-slot": "h5",
|
|
@@ -5341,6 +5879,7 @@ export {
|
|
|
5341
5879
|
ContextMenuSubTrigger,
|
|
5342
5880
|
ContextMenuTrigger,
|
|
5343
5881
|
DateInput,
|
|
5882
|
+
DateRangeInput,
|
|
5344
5883
|
Dialog,
|
|
5345
5884
|
DialogClose,
|
|
5346
5885
|
DialogContent,
|
|
@@ -5508,6 +6047,7 @@ export {
|
|
|
5508
6047
|
TabsList,
|
|
5509
6048
|
TabsTrigger,
|
|
5510
6049
|
Textarea,
|
|
6050
|
+
TimeInput,
|
|
5511
6051
|
Toaster,
|
|
5512
6052
|
Toggle,
|
|
5513
6053
|
ToggleGroup,
|