@codapet/design-system 0.6.9 → 0.7.1
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 +28 -3
- package/dist/index.mjs +566 -346
- package/dist/index.mjs.map +1 -1
- package/package.json +6 -6
package/dist/index.mjs
CHANGED
|
@@ -1645,7 +1645,7 @@ function Checkbox({
|
|
|
1645
1645
|
{
|
|
1646
1646
|
"data-slot": "checkbox",
|
|
1647
1647
|
className: cn(
|
|
1648
|
-
"group peer border-
|
|
1648
|
+
"group peer border-gray-stroke-default dark:bg-input/30 transition-colors duration-400 data-[state=checked]:bg-primary-stroke-default data-[state=checked]:text-white dark:data-[state=checked]:bg-primary-stroke-default data-[state=checked]:border-primary-stroke-default focus-visible:border-ring focus-visible:ring-brand-text-vibrant aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-5 shrink-0 rounded-[4px] border-2 outline-none focus-visible:ring-2 disabled:cursor-not-allowed disabled:opacity-40 focus-visible:before:absolute focus-visible:before:-inset-[3px] focus:ring-offset-1 focus:ring-offset-brand-text-vibrant",
|
|
1649
1649
|
className
|
|
1650
1650
|
),
|
|
1651
1651
|
...props,
|
|
@@ -1655,7 +1655,7 @@ function Checkbox({
|
|
|
1655
1655
|
"data-slot": "checkbox-indicator",
|
|
1656
1656
|
forceMount: true,
|
|
1657
1657
|
className: "flex items-center justify-center text-current transition-opacity duration-400 opacity-0 group-data-[state=checked]:opacity-100",
|
|
1658
|
-
children: /* @__PURE__ */ jsx19(Check, { className: "size-
|
|
1658
|
+
children: /* @__PURE__ */ jsx19(Check, { className: "size-4" })
|
|
1659
1659
|
}
|
|
1660
1660
|
)
|
|
1661
1661
|
}
|
|
@@ -3712,23 +3712,25 @@ import * as React32 from "react";
|
|
|
3712
3712
|
import { OTPInput, OTPInputContext } from "input-otp";
|
|
3713
3713
|
import { MinusIcon } from "lucide-react";
|
|
3714
3714
|
import { jsx as jsx34, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
3715
|
+
var InputOTPErrorContext = React32.createContext(false);
|
|
3715
3716
|
function InputOTP({
|
|
3716
3717
|
className,
|
|
3717
3718
|
containerClassName,
|
|
3719
|
+
error,
|
|
3718
3720
|
...props
|
|
3719
3721
|
}) {
|
|
3720
|
-
return /* @__PURE__ */ jsx34(
|
|
3722
|
+
return /* @__PURE__ */ jsx34(InputOTPErrorContext.Provider, { value: error ?? false, children: /* @__PURE__ */ jsx34(
|
|
3721
3723
|
OTPInput,
|
|
3722
3724
|
{
|
|
3723
3725
|
"data-slot": "input-otp",
|
|
3724
3726
|
containerClassName: cn(
|
|
3725
|
-
"flex items-center gap-2 has-disabled:opacity-
|
|
3727
|
+
"flex items-center gap-2 has-disabled:opacity-40",
|
|
3726
3728
|
containerClassName
|
|
3727
3729
|
),
|
|
3728
3730
|
className: cn("disabled:cursor-not-allowed", className),
|
|
3729
3731
|
...props
|
|
3730
3732
|
}
|
|
3731
|
-
);
|
|
3733
|
+
) });
|
|
3732
3734
|
}
|
|
3733
3735
|
function InputOTPGroup({ className, ...props }) {
|
|
3734
3736
|
return /* @__PURE__ */ jsx34(
|
|
@@ -3747,19 +3749,36 @@ function InputOTPSlot({
|
|
|
3747
3749
|
}) {
|
|
3748
3750
|
const inputOTPContext = React32.useContext(OTPInputContext);
|
|
3749
3751
|
const { char, hasFakeCaret, isActive } = inputOTPContext?.slots[index] ?? {};
|
|
3752
|
+
const isHovering = inputOTPContext?.isHovering ?? false;
|
|
3753
|
+
const error = React32.useContext(InputOTPErrorContext);
|
|
3750
3754
|
return /* @__PURE__ */ jsxs18(
|
|
3751
3755
|
"div",
|
|
3752
3756
|
{
|
|
3753
3757
|
"data-slot": "input-otp-slot",
|
|
3754
3758
|
"data-active": isActive,
|
|
3755
3759
|
className: cn(
|
|
3756
|
-
|
|
3760
|
+
// Base layout & typography
|
|
3761
|
+
"relative flex size-10 items-center justify-center",
|
|
3762
|
+
"border-y border-r first:border-l text-sm font-medium leading-5",
|
|
3763
|
+
"transition-all outline-none",
|
|
3764
|
+
"first:rounded-l-[4px] last:rounded-r-[4px]",
|
|
3765
|
+
"text-foreground",
|
|
3766
|
+
// Default state (no error)
|
|
3767
|
+
!error && "border-gray-stroke-default bg-background",
|
|
3768
|
+
// Hover: all slots turn blue (non-error, non-active)
|
|
3769
|
+
!error && isHovering && !isActive && "border-focus-ring",
|
|
3770
|
+
// Active slot (non-error): 2px blue border
|
|
3771
|
+
!error && isActive && "z-10 border-2 border-focus-ring",
|
|
3772
|
+
// Error (non-active)
|
|
3773
|
+
error && !isActive && "border-error-stroke-default bg-error-surface-subtle",
|
|
3774
|
+
// Error + active
|
|
3775
|
+
error && isActive && "z-10 border-2 border-error-stroke-default bg-error-surface-subtle",
|
|
3757
3776
|
className
|
|
3758
3777
|
),
|
|
3759
3778
|
...props,
|
|
3760
3779
|
children: [
|
|
3761
3780
|
char,
|
|
3762
|
-
hasFakeCaret && /* @__PURE__ */ jsx34("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsx34("div", { className: "animate-caret-blink bg-
|
|
3781
|
+
hasFakeCaret && /* @__PURE__ */ jsx34("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsx34("div", { className: "animate-caret-blink bg-focus-ring h-4 w-px duration-1000" }) })
|
|
3763
3782
|
]
|
|
3764
3783
|
}
|
|
3765
3784
|
);
|
|
@@ -4414,6 +4433,157 @@ function NavigationMenuIndicator({
|
|
|
4414
4433
|
);
|
|
4415
4434
|
}
|
|
4416
4435
|
|
|
4436
|
+
// src/components/ui/option-card.tsx
|
|
4437
|
+
import { cva as cva11 } from "class-variance-authority";
|
|
4438
|
+
import { Check as Check2, Circle } from "lucide-react";
|
|
4439
|
+
import "react";
|
|
4440
|
+
import { jsx as jsx38, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
4441
|
+
var optionCardVariants = cva11(
|
|
4442
|
+
"group flex items-center gap-2 h-12 p-2 cursor-pointer transition-all duration-200 font-medium text-base leading-6 outline-none select-none",
|
|
4443
|
+
{
|
|
4444
|
+
variants: {
|
|
4445
|
+
hasStroke: {
|
|
4446
|
+
true: "border rounded-lg",
|
|
4447
|
+
false: "rounded-lg"
|
|
4448
|
+
},
|
|
4449
|
+
selected: {
|
|
4450
|
+
true: "",
|
|
4451
|
+
false: ""
|
|
4452
|
+
},
|
|
4453
|
+
weight: {
|
|
4454
|
+
hug: "w-fit",
|
|
4455
|
+
resizable: "w-full"
|
|
4456
|
+
},
|
|
4457
|
+
disabled: {
|
|
4458
|
+
true: "opacity-40 cursor-not-allowed pointer-events-none",
|
|
4459
|
+
false: ""
|
|
4460
|
+
}
|
|
4461
|
+
},
|
|
4462
|
+
compoundVariants: [
|
|
4463
|
+
// Stroke + not selected
|
|
4464
|
+
{
|
|
4465
|
+
hasStroke: true,
|
|
4466
|
+
selected: false,
|
|
4467
|
+
disabled: false,
|
|
4468
|
+
className: "border-gray-stroke-default text-vibrant-text-heading hover:border-primary-stroke-default"
|
|
4469
|
+
},
|
|
4470
|
+
// Stroke + selected
|
|
4471
|
+
{
|
|
4472
|
+
hasStroke: true,
|
|
4473
|
+
selected: true,
|
|
4474
|
+
disabled: false,
|
|
4475
|
+
className: "border-primary-stroke-default bg-primary-surface-subtle text-primary-stroke-default"
|
|
4476
|
+
},
|
|
4477
|
+
// Stroke + disabled + not selected
|
|
4478
|
+
{
|
|
4479
|
+
hasStroke: true,
|
|
4480
|
+
selected: false,
|
|
4481
|
+
disabled: true,
|
|
4482
|
+
className: "border-gray-stroke-default text-vibrant-text-heading"
|
|
4483
|
+
},
|
|
4484
|
+
// Stroke + disabled + selected
|
|
4485
|
+
{
|
|
4486
|
+
hasStroke: true,
|
|
4487
|
+
selected: true,
|
|
4488
|
+
disabled: true,
|
|
4489
|
+
className: "border-gray-stroke-default text-vibrant-text-heading"
|
|
4490
|
+
},
|
|
4491
|
+
// No stroke + not selected
|
|
4492
|
+
{
|
|
4493
|
+
hasStroke: false,
|
|
4494
|
+
selected: false,
|
|
4495
|
+
disabled: false,
|
|
4496
|
+
className: "text-vibrant-text-heading"
|
|
4497
|
+
},
|
|
4498
|
+
// No stroke + selected
|
|
4499
|
+
{
|
|
4500
|
+
hasStroke: false,
|
|
4501
|
+
selected: true,
|
|
4502
|
+
disabled: false,
|
|
4503
|
+
className: "bg-primary-surface-subtle text-primary-stroke-default"
|
|
4504
|
+
},
|
|
4505
|
+
// No stroke + disabled
|
|
4506
|
+
{
|
|
4507
|
+
hasStroke: false,
|
|
4508
|
+
disabled: true,
|
|
4509
|
+
className: "text-vibrant-text-heading"
|
|
4510
|
+
}
|
|
4511
|
+
],
|
|
4512
|
+
defaultVariants: {
|
|
4513
|
+
hasStroke: true,
|
|
4514
|
+
selected: false,
|
|
4515
|
+
weight: "hug",
|
|
4516
|
+
disabled: false
|
|
4517
|
+
}
|
|
4518
|
+
}
|
|
4519
|
+
);
|
|
4520
|
+
function RadioIndicator({ selected }) {
|
|
4521
|
+
return /* @__PURE__ */ jsx38(
|
|
4522
|
+
"span",
|
|
4523
|
+
{
|
|
4524
|
+
className: cn(
|
|
4525
|
+
"flex items-center justify-center shrink-0 size-5 rounded-full border-2 transition-colors duration-200",
|
|
4526
|
+
selected ? "bg-primary-stroke-default border-primary-stroke-default" : "border-gray-stroke-default bg-transparent group-hover:border-primary-stroke-default"
|
|
4527
|
+
),
|
|
4528
|
+
children: selected && /* @__PURE__ */ jsx38(Circle, { className: "size-2 fill-white text-white" })
|
|
4529
|
+
}
|
|
4530
|
+
);
|
|
4531
|
+
}
|
|
4532
|
+
function CheckboxIndicator({ selected }) {
|
|
4533
|
+
return /* @__PURE__ */ jsx38(
|
|
4534
|
+
"span",
|
|
4535
|
+
{
|
|
4536
|
+
className: cn(
|
|
4537
|
+
"flex items-center justify-center shrink-0 size-5 rounded-[4px] border-2 transition-colors duration-200",
|
|
4538
|
+
selected ? "bg-primary-stroke-default border-primary-stroke-default" : "border-gray-stroke-default bg-transparent group-hover:border-primary-stroke-default"
|
|
4539
|
+
),
|
|
4540
|
+
children: selected && /* @__PURE__ */ jsx38(Check2, { className: "size-4 text-white" })
|
|
4541
|
+
}
|
|
4542
|
+
);
|
|
4543
|
+
}
|
|
4544
|
+
function OptionCard({
|
|
4545
|
+
className,
|
|
4546
|
+
children,
|
|
4547
|
+
selected = false,
|
|
4548
|
+
disabled = false,
|
|
4549
|
+
hasStroke = true,
|
|
4550
|
+
weight = "hug",
|
|
4551
|
+
selectorPosition = "right",
|
|
4552
|
+
selectionType = "single",
|
|
4553
|
+
icon,
|
|
4554
|
+
...props
|
|
4555
|
+
}) {
|
|
4556
|
+
const Indicator5 = selectionType === "single" ? RadioIndicator : CheckboxIndicator;
|
|
4557
|
+
const indicator = /* @__PURE__ */ jsx38(Indicator5, { selected });
|
|
4558
|
+
return /* @__PURE__ */ jsxs22(
|
|
4559
|
+
"button",
|
|
4560
|
+
{
|
|
4561
|
+
type: "button",
|
|
4562
|
+
"data-slot": "option-card",
|
|
4563
|
+
"data-state": selected ? "selected" : "unselected",
|
|
4564
|
+
disabled,
|
|
4565
|
+
className: cn(
|
|
4566
|
+
optionCardVariants({
|
|
4567
|
+
hasStroke,
|
|
4568
|
+
selected,
|
|
4569
|
+
weight,
|
|
4570
|
+
disabled
|
|
4571
|
+
}),
|
|
4572
|
+
className
|
|
4573
|
+
),
|
|
4574
|
+
...props,
|
|
4575
|
+
children: [
|
|
4576
|
+
selectorPosition === "left" && indicator,
|
|
4577
|
+
/* @__PURE__ */ jsxs22("span", { className: "flex items-center gap-2 flex-1 min-w-0", children: [
|
|
4578
|
+
icon && /* @__PURE__ */ jsx38("span", { className: "flex items-center justify-center shrink-0 size-5 [&_svg]:size-5", children: icon }),
|
|
4579
|
+
/* @__PURE__ */ jsx38("span", { className: "truncate", children })
|
|
4580
|
+
] }),
|
|
4581
|
+
selectorPosition === "right" && indicator
|
|
4582
|
+
]
|
|
4583
|
+
}
|
|
4584
|
+
);
|
|
4585
|
+
}
|
|
4586
|
+
|
|
4417
4587
|
// src/components/ui/pagination.tsx
|
|
4418
4588
|
import "react";
|
|
4419
4589
|
import {
|
|
@@ -4421,9 +4591,9 @@ import {
|
|
|
4421
4591
|
ChevronRightIcon as ChevronRightIcon5,
|
|
4422
4592
|
MoreHorizontalIcon
|
|
4423
4593
|
} from "lucide-react";
|
|
4424
|
-
import { jsx as
|
|
4594
|
+
import { jsx as jsx39, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
4425
4595
|
function Pagination({ className, ...props }) {
|
|
4426
|
-
return /* @__PURE__ */
|
|
4596
|
+
return /* @__PURE__ */ jsx39(
|
|
4427
4597
|
"nav",
|
|
4428
4598
|
{
|
|
4429
4599
|
role: "navigation",
|
|
@@ -4438,7 +4608,7 @@ function PaginationContent({
|
|
|
4438
4608
|
className,
|
|
4439
4609
|
...props
|
|
4440
4610
|
}) {
|
|
4441
|
-
return /* @__PURE__ */
|
|
4611
|
+
return /* @__PURE__ */ jsx39(
|
|
4442
4612
|
"ul",
|
|
4443
4613
|
{
|
|
4444
4614
|
"data-slot": "pagination-content",
|
|
@@ -4448,7 +4618,7 @@ function PaginationContent({
|
|
|
4448
4618
|
);
|
|
4449
4619
|
}
|
|
4450
4620
|
function PaginationItem({ ...props }) {
|
|
4451
|
-
return /* @__PURE__ */
|
|
4621
|
+
return /* @__PURE__ */ jsx39("li", { "data-slot": "pagination-item", ...props });
|
|
4452
4622
|
}
|
|
4453
4623
|
function PaginationLink({
|
|
4454
4624
|
className,
|
|
@@ -4456,7 +4626,7 @@ function PaginationLink({
|
|
|
4456
4626
|
size = "icon",
|
|
4457
4627
|
...props
|
|
4458
4628
|
}) {
|
|
4459
|
-
return /* @__PURE__ */
|
|
4629
|
+
return /* @__PURE__ */ jsx39(
|
|
4460
4630
|
"a",
|
|
4461
4631
|
{
|
|
4462
4632
|
"aria-current": isActive ? "page" : void 0,
|
|
@@ -4477,7 +4647,7 @@ function PaginationPrevious({
|
|
|
4477
4647
|
className,
|
|
4478
4648
|
...props
|
|
4479
4649
|
}) {
|
|
4480
|
-
return /* @__PURE__ */
|
|
4650
|
+
return /* @__PURE__ */ jsxs23(
|
|
4481
4651
|
PaginationLink,
|
|
4482
4652
|
{
|
|
4483
4653
|
"aria-label": "Go to previous page",
|
|
@@ -4485,8 +4655,8 @@ function PaginationPrevious({
|
|
|
4485
4655
|
className: cn("gap-1 px-2.5 sm:pl-2.5", className),
|
|
4486
4656
|
...props,
|
|
4487
4657
|
children: [
|
|
4488
|
-
/* @__PURE__ */
|
|
4489
|
-
/* @__PURE__ */
|
|
4658
|
+
/* @__PURE__ */ jsx39(ChevronLeftIcon2, {}),
|
|
4659
|
+
/* @__PURE__ */ jsx39("span", { className: "hidden sm:block", children: "Previous" })
|
|
4490
4660
|
]
|
|
4491
4661
|
}
|
|
4492
4662
|
);
|
|
@@ -4495,7 +4665,7 @@ function PaginationNext({
|
|
|
4495
4665
|
className,
|
|
4496
4666
|
...props
|
|
4497
4667
|
}) {
|
|
4498
|
-
return /* @__PURE__ */
|
|
4668
|
+
return /* @__PURE__ */ jsxs23(
|
|
4499
4669
|
PaginationLink,
|
|
4500
4670
|
{
|
|
4501
4671
|
"aria-label": "Go to next page",
|
|
@@ -4503,8 +4673,8 @@ function PaginationNext({
|
|
|
4503
4673
|
className: cn("gap-1 px-2.5 sm:pr-2.5", className),
|
|
4504
4674
|
...props,
|
|
4505
4675
|
children: [
|
|
4506
|
-
/* @__PURE__ */
|
|
4507
|
-
/* @__PURE__ */
|
|
4676
|
+
/* @__PURE__ */ jsx39("span", { className: "hidden sm:block", children: "Next" }),
|
|
4677
|
+
/* @__PURE__ */ jsx39(ChevronRightIcon5, {})
|
|
4508
4678
|
]
|
|
4509
4679
|
}
|
|
4510
4680
|
);
|
|
@@ -4513,7 +4683,7 @@ function PaginationEllipsis({
|
|
|
4513
4683
|
className,
|
|
4514
4684
|
...props
|
|
4515
4685
|
}) {
|
|
4516
|
-
return /* @__PURE__ */
|
|
4686
|
+
return /* @__PURE__ */ jsxs23(
|
|
4517
4687
|
"span",
|
|
4518
4688
|
{
|
|
4519
4689
|
"aria-hidden": true,
|
|
@@ -4521,8 +4691,8 @@ function PaginationEllipsis({
|
|
|
4521
4691
|
className: cn("flex size-9 items-center justify-center", className),
|
|
4522
4692
|
...props,
|
|
4523
4693
|
children: [
|
|
4524
|
-
/* @__PURE__ */
|
|
4525
|
-
/* @__PURE__ */
|
|
4694
|
+
/* @__PURE__ */ jsx39(MoreHorizontalIcon, { className: "size-4" }),
|
|
4695
|
+
/* @__PURE__ */ jsx39("span", { className: "sr-only", children: "More pages" })
|
|
4526
4696
|
]
|
|
4527
4697
|
}
|
|
4528
4698
|
);
|
|
@@ -4531,13 +4701,13 @@ function PaginationEllipsis({
|
|
|
4531
4701
|
// src/components/ui/progress.tsx
|
|
4532
4702
|
import * as ProgressPrimitive from "@radix-ui/react-progress";
|
|
4533
4703
|
import "react";
|
|
4534
|
-
import { jsx as
|
|
4704
|
+
import { jsx as jsx40 } from "react/jsx-runtime";
|
|
4535
4705
|
function Progress({
|
|
4536
4706
|
className,
|
|
4537
4707
|
value,
|
|
4538
4708
|
...props
|
|
4539
4709
|
}) {
|
|
4540
|
-
return /* @__PURE__ */
|
|
4710
|
+
return /* @__PURE__ */ jsx40(
|
|
4541
4711
|
ProgressPrimitive.Root,
|
|
4542
4712
|
{
|
|
4543
4713
|
"data-slot": "progress",
|
|
@@ -4546,7 +4716,7 @@ function Progress({
|
|
|
4546
4716
|
className
|
|
4547
4717
|
),
|
|
4548
4718
|
...props,
|
|
4549
|
-
children: /* @__PURE__ */
|
|
4719
|
+
children: /* @__PURE__ */ jsx40(
|
|
4550
4720
|
ProgressPrimitive.Indicator,
|
|
4551
4721
|
{
|
|
4552
4722
|
"data-slot": "progress-indicator",
|
|
@@ -4559,10 +4729,10 @@ function Progress({
|
|
|
4559
4729
|
}
|
|
4560
4730
|
|
|
4561
4731
|
// src/components/ui/progress-bar.tsx
|
|
4562
|
-
import { cva as
|
|
4732
|
+
import { cva as cva12 } from "class-variance-authority";
|
|
4563
4733
|
import "react";
|
|
4564
|
-
import { jsx as
|
|
4565
|
-
var progressBarVariants =
|
|
4734
|
+
import { jsx as jsx41, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
4735
|
+
var progressBarVariants = cva12("relative overflow-hidden rounded-[8px]", {
|
|
4566
4736
|
variants: {
|
|
4567
4737
|
device: {
|
|
4568
4738
|
desktop: "w-[360px] h-[4px]",
|
|
@@ -4582,7 +4752,7 @@ function ProgressBar({
|
|
|
4582
4752
|
...props
|
|
4583
4753
|
}) {
|
|
4584
4754
|
const percentage = value !== void 0 ? Math.min(100, Math.max(0, value)) : Math.min(100, Math.max(0, currentStep / totalSteps * 100));
|
|
4585
|
-
return /* @__PURE__ */
|
|
4755
|
+
return /* @__PURE__ */ jsxs24(
|
|
4586
4756
|
"div",
|
|
4587
4757
|
{
|
|
4588
4758
|
"data-slot": "progress-bar",
|
|
@@ -4593,8 +4763,8 @@ function ProgressBar({
|
|
|
4593
4763
|
"aria-valuemax": 100,
|
|
4594
4764
|
...props,
|
|
4595
4765
|
children: [
|
|
4596
|
-
/* @__PURE__ */
|
|
4597
|
-
/* @__PURE__ */
|
|
4766
|
+
/* @__PURE__ */ jsx41("div", { className: "absolute inset-0 rounded-[8px] bg-primary-surface-light" }),
|
|
4767
|
+
/* @__PURE__ */ jsx41(
|
|
4598
4768
|
"div",
|
|
4599
4769
|
{
|
|
4600
4770
|
"data-slot": "progress-bar-fill",
|
|
@@ -4611,12 +4781,12 @@ function ProgressBar({
|
|
|
4611
4781
|
import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
|
|
4612
4782
|
import { CircleIcon as CircleIcon4 } from "lucide-react";
|
|
4613
4783
|
import "react";
|
|
4614
|
-
import { jsx as
|
|
4784
|
+
import { jsx as jsx42 } from "react/jsx-runtime";
|
|
4615
4785
|
function RadioGroup4({
|
|
4616
4786
|
className,
|
|
4617
4787
|
...props
|
|
4618
4788
|
}) {
|
|
4619
|
-
return /* @__PURE__ */
|
|
4789
|
+
return /* @__PURE__ */ jsx42(
|
|
4620
4790
|
RadioGroupPrimitive.Root,
|
|
4621
4791
|
{
|
|
4622
4792
|
"data-slot": "radio-group",
|
|
@@ -4629,21 +4799,21 @@ function RadioGroupItem({
|
|
|
4629
4799
|
className,
|
|
4630
4800
|
...props
|
|
4631
4801
|
}) {
|
|
4632
|
-
return /* @__PURE__ */
|
|
4802
|
+
return /* @__PURE__ */ jsx42(
|
|
4633
4803
|
RadioGroupPrimitive.Item,
|
|
4634
4804
|
{
|
|
4635
4805
|
"data-slot": "radio-group-item",
|
|
4636
4806
|
className: cn(
|
|
4637
|
-
"border-
|
|
4807
|
+
"border-gray-stroke-default text-primary-stroke-default focus-visible:border-ring focus-visible:ring-brand-text-vibrant aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 aspect-square size-5 shrink-0 rounded-full border-2 transition-all duration-400 outline-none focus-visible:ring-2 disabled:cursor-not-allowed disabled:opacity-40 data-[state=checked]:bg-primary-stroke-default data-[state=checked]:border-primary-stroke-default",
|
|
4638
4808
|
className
|
|
4639
4809
|
),
|
|
4640
4810
|
...props,
|
|
4641
|
-
children: /* @__PURE__ */
|
|
4811
|
+
children: /* @__PURE__ */ jsx42(
|
|
4642
4812
|
RadioGroupPrimitive.Indicator,
|
|
4643
4813
|
{
|
|
4644
4814
|
"data-slot": "radio-group-indicator",
|
|
4645
4815
|
className: "relative flex items-center justify-center",
|
|
4646
|
-
children: /* @__PURE__ */
|
|
4816
|
+
children: /* @__PURE__ */ jsx42(CircleIcon4, { className: "fill-white absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2" })
|
|
4647
4817
|
}
|
|
4648
4818
|
)
|
|
4649
4819
|
}
|
|
@@ -4654,12 +4824,12 @@ function RadioGroupItem({
|
|
|
4654
4824
|
import "react";
|
|
4655
4825
|
import { GripVerticalIcon } from "lucide-react";
|
|
4656
4826
|
import * as ResizablePrimitive from "react-resizable-panels";
|
|
4657
|
-
import { jsx as
|
|
4827
|
+
import { jsx as jsx43 } from "react/jsx-runtime";
|
|
4658
4828
|
function ResizablePanelGroup({
|
|
4659
4829
|
className,
|
|
4660
4830
|
...props
|
|
4661
4831
|
}) {
|
|
4662
|
-
return /* @__PURE__ */
|
|
4832
|
+
return /* @__PURE__ */ jsx43(
|
|
4663
4833
|
ResizablePrimitive.PanelGroup,
|
|
4664
4834
|
{
|
|
4665
4835
|
"data-slot": "resizable-panel-group",
|
|
@@ -4674,14 +4844,14 @@ function ResizablePanelGroup({
|
|
|
4674
4844
|
function ResizablePanel({
|
|
4675
4845
|
...props
|
|
4676
4846
|
}) {
|
|
4677
|
-
return /* @__PURE__ */
|
|
4847
|
+
return /* @__PURE__ */ jsx43(ResizablePrimitive.Panel, { "data-slot": "resizable-panel", ...props });
|
|
4678
4848
|
}
|
|
4679
4849
|
function ResizableHandle({
|
|
4680
4850
|
withHandle,
|
|
4681
4851
|
className,
|
|
4682
4852
|
...props
|
|
4683
4853
|
}) {
|
|
4684
|
-
return /* @__PURE__ */
|
|
4854
|
+
return /* @__PURE__ */ jsx43(
|
|
4685
4855
|
ResizablePrimitive.PanelResizeHandle,
|
|
4686
4856
|
{
|
|
4687
4857
|
"data-slot": "resizable-handle",
|
|
@@ -4690,7 +4860,7 @@ function ResizableHandle({
|
|
|
4690
4860
|
className
|
|
4691
4861
|
),
|
|
4692
4862
|
...props,
|
|
4693
|
-
children: withHandle && /* @__PURE__ */
|
|
4863
|
+
children: withHandle && /* @__PURE__ */ jsx43("div", { className: "bg-border z-10 flex h-4 w-3 items-center justify-center rounded-xs border", children: /* @__PURE__ */ jsx43(GripVerticalIcon, { className: "size-2.5" }) })
|
|
4694
4864
|
}
|
|
4695
4865
|
);
|
|
4696
4866
|
}
|
|
@@ -4698,20 +4868,20 @@ function ResizableHandle({
|
|
|
4698
4868
|
// src/components/ui/scroll-area.tsx
|
|
4699
4869
|
import "react";
|
|
4700
4870
|
import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
|
|
4701
|
-
import { jsx as
|
|
4871
|
+
import { jsx as jsx44, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
4702
4872
|
function ScrollArea({
|
|
4703
4873
|
className,
|
|
4704
4874
|
children,
|
|
4705
4875
|
...props
|
|
4706
4876
|
}) {
|
|
4707
|
-
return /* @__PURE__ */
|
|
4877
|
+
return /* @__PURE__ */ jsxs25(
|
|
4708
4878
|
ScrollAreaPrimitive.Root,
|
|
4709
4879
|
{
|
|
4710
4880
|
"data-slot": "scroll-area",
|
|
4711
4881
|
className: cn("relative", className),
|
|
4712
4882
|
...props,
|
|
4713
4883
|
children: [
|
|
4714
|
-
/* @__PURE__ */
|
|
4884
|
+
/* @__PURE__ */ jsx44(
|
|
4715
4885
|
ScrollAreaPrimitive.Viewport,
|
|
4716
4886
|
{
|
|
4717
4887
|
"data-slot": "scroll-area-viewport",
|
|
@@ -4719,8 +4889,8 @@ function ScrollArea({
|
|
|
4719
4889
|
children
|
|
4720
4890
|
}
|
|
4721
4891
|
),
|
|
4722
|
-
/* @__PURE__ */
|
|
4723
|
-
/* @__PURE__ */
|
|
4892
|
+
/* @__PURE__ */ jsx44(ScrollBar, {}),
|
|
4893
|
+
/* @__PURE__ */ jsx44(ScrollAreaPrimitive.Corner, {})
|
|
4724
4894
|
]
|
|
4725
4895
|
}
|
|
4726
4896
|
);
|
|
@@ -4730,7 +4900,7 @@ function ScrollBar({
|
|
|
4730
4900
|
orientation = "vertical",
|
|
4731
4901
|
...props
|
|
4732
4902
|
}) {
|
|
4733
|
-
return /* @__PURE__ */
|
|
4903
|
+
return /* @__PURE__ */ jsx44(
|
|
4734
4904
|
ScrollAreaPrimitive.ScrollAreaScrollbar,
|
|
4735
4905
|
{
|
|
4736
4906
|
"data-slot": "scroll-area-scrollbar",
|
|
@@ -4742,7 +4912,7 @@ function ScrollBar({
|
|
|
4742
4912
|
className
|
|
4743
4913
|
),
|
|
4744
4914
|
...props,
|
|
4745
|
-
children: /* @__PURE__ */
|
|
4915
|
+
children: /* @__PURE__ */ jsx44(
|
|
4746
4916
|
ScrollAreaPrimitive.ScrollAreaThumb,
|
|
4747
4917
|
{
|
|
4748
4918
|
"data-slot": "scroll-area-thumb",
|
|
@@ -4754,9 +4924,9 @@ function ScrollBar({
|
|
|
4754
4924
|
}
|
|
4755
4925
|
|
|
4756
4926
|
// src/components/ui/search-input.tsx
|
|
4757
|
-
import * as
|
|
4927
|
+
import * as React43 from "react";
|
|
4758
4928
|
import { Search, X as X3 } from "lucide-react";
|
|
4759
|
-
import { jsx as
|
|
4929
|
+
import { jsx as jsx45, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
4760
4930
|
function SearchInput({
|
|
4761
4931
|
variant = "icon",
|
|
4762
4932
|
value: valueProp,
|
|
@@ -4775,23 +4945,23 @@ function SearchInput({
|
|
|
4775
4945
|
onSuggestionClick,
|
|
4776
4946
|
className
|
|
4777
4947
|
}) {
|
|
4778
|
-
const [internalValue, setInternalValue] =
|
|
4779
|
-
const [isFocused, setIsFocused] =
|
|
4780
|
-
const [showSuggestions, setShowSuggestions] =
|
|
4781
|
-
const inputRef =
|
|
4782
|
-
const containerRef =
|
|
4948
|
+
const [internalValue, setInternalValue] = React43.useState(defaultValue);
|
|
4949
|
+
const [isFocused, setIsFocused] = React43.useState(false);
|
|
4950
|
+
const [showSuggestions, setShowSuggestions] = React43.useState(false);
|
|
4951
|
+
const inputRef = React43.useRef(null);
|
|
4952
|
+
const containerRef = React43.useRef(null);
|
|
4783
4953
|
const isControlled = valueProp !== void 0;
|
|
4784
4954
|
const currentValue = isControlled ? valueProp : internalValue;
|
|
4785
4955
|
const hasValue = currentValue.trim().length > 0;
|
|
4786
4956
|
const isFilledEdit = hasValue && !isFocused && !error;
|
|
4787
|
-
const updateValue =
|
|
4957
|
+
const updateValue = React43.useCallback(
|
|
4788
4958
|
(next) => {
|
|
4789
4959
|
if (!isControlled) setInternalValue(next);
|
|
4790
4960
|
onValueChange?.(next);
|
|
4791
4961
|
},
|
|
4792
4962
|
[isControlled, onValueChange]
|
|
4793
4963
|
);
|
|
4794
|
-
const handleInputChange =
|
|
4964
|
+
const handleInputChange = React43.useCallback(
|
|
4795
4965
|
(e) => {
|
|
4796
4966
|
updateValue(e.target.value);
|
|
4797
4967
|
if (e.target.value.trim().length > 0 && suggestions.length > 0) {
|
|
@@ -4802,7 +4972,7 @@ function SearchInput({
|
|
|
4802
4972
|
},
|
|
4803
4973
|
[updateValue, suggestions.length]
|
|
4804
4974
|
);
|
|
4805
|
-
const handleKeyDown =
|
|
4975
|
+
const handleKeyDown = React43.useCallback(
|
|
4806
4976
|
(e) => {
|
|
4807
4977
|
if (e.key === "Enter") {
|
|
4808
4978
|
e.preventDefault();
|
|
@@ -4815,16 +4985,16 @@ function SearchInput({
|
|
|
4815
4985
|
},
|
|
4816
4986
|
[currentValue, onSearch]
|
|
4817
4987
|
);
|
|
4818
|
-
const handleClear =
|
|
4988
|
+
const handleClear = React43.useCallback(() => {
|
|
4819
4989
|
updateValue("");
|
|
4820
4990
|
onClear?.();
|
|
4821
4991
|
inputRef.current?.focus();
|
|
4822
4992
|
}, [updateValue, onClear]);
|
|
4823
|
-
const handleSearchClick =
|
|
4993
|
+
const handleSearchClick = React43.useCallback(() => {
|
|
4824
4994
|
onSearch?.(currentValue);
|
|
4825
4995
|
setShowSuggestions(false);
|
|
4826
4996
|
}, [currentValue, onSearch]);
|
|
4827
|
-
const handleSuggestionClick =
|
|
4997
|
+
const handleSuggestionClick = React43.useCallback(
|
|
4828
4998
|
(label2) => {
|
|
4829
4999
|
updateValue(label2);
|
|
4830
5000
|
onSuggestionClick?.(label2);
|
|
@@ -4833,14 +5003,14 @@ function SearchInput({
|
|
|
4833
5003
|
},
|
|
4834
5004
|
[updateValue, onSuggestionClick]
|
|
4835
5005
|
);
|
|
4836
|
-
const handleFocus =
|
|
5006
|
+
const handleFocus = React43.useCallback(() => {
|
|
4837
5007
|
if (disabled) return;
|
|
4838
5008
|
setIsFocused(true);
|
|
4839
5009
|
if (currentValue.trim().length > 0 && suggestions.length > 0) {
|
|
4840
5010
|
setShowSuggestions(true);
|
|
4841
5011
|
}
|
|
4842
5012
|
}, [disabled, currentValue, suggestions.length]);
|
|
4843
|
-
const handleBlur =
|
|
5013
|
+
const handleBlur = React43.useCallback(
|
|
4844
5014
|
(e) => {
|
|
4845
5015
|
if (containerRef.current?.contains(e.relatedTarget)) return;
|
|
4846
5016
|
setIsFocused(false);
|
|
@@ -4850,7 +5020,7 @@ function SearchInput({
|
|
|
4850
5020
|
);
|
|
4851
5021
|
const displayHelperText = error && errorMessage ? errorMessage : helperText;
|
|
4852
5022
|
const showClearButton = (isFilledEdit || error) && hasValue;
|
|
4853
|
-
return /* @__PURE__ */
|
|
5023
|
+
return /* @__PURE__ */ jsxs26(
|
|
4854
5024
|
"div",
|
|
4855
5025
|
{
|
|
4856
5026
|
ref: containerRef,
|
|
@@ -4858,8 +5028,8 @@ function SearchInput({
|
|
|
4858
5028
|
className: cn("flex flex-col gap-[8px] items-start w-full", className),
|
|
4859
5029
|
onBlur: handleBlur,
|
|
4860
5030
|
children: [
|
|
4861
|
-
label && /* @__PURE__ */
|
|
4862
|
-
/* @__PURE__ */
|
|
5031
|
+
label && /* @__PURE__ */ jsx45("div", { className: "flex items-center font-sans font-medium text-[14px] leading-[20px] text-vibrant-text-details", children: label }),
|
|
5032
|
+
/* @__PURE__ */ jsxs26(
|
|
4863
5033
|
"div",
|
|
4864
5034
|
{
|
|
4865
5035
|
className: cn(
|
|
@@ -4876,7 +5046,7 @@ function SearchInput({
|
|
|
4876
5046
|
disabled && "opacity-60 cursor-not-allowed"
|
|
4877
5047
|
),
|
|
4878
5048
|
children: [
|
|
4879
|
-
icon && /* @__PURE__ */
|
|
5049
|
+
icon && /* @__PURE__ */ jsx45(
|
|
4880
5050
|
"span",
|
|
4881
5051
|
{
|
|
4882
5052
|
className: cn(
|
|
@@ -4886,7 +5056,7 @@ function SearchInput({
|
|
|
4886
5056
|
children: icon
|
|
4887
5057
|
}
|
|
4888
5058
|
),
|
|
4889
|
-
/* @__PURE__ */
|
|
5059
|
+
/* @__PURE__ */ jsx45(
|
|
4890
5060
|
"input",
|
|
4891
5061
|
{
|
|
4892
5062
|
ref: inputRef,
|
|
@@ -4903,7 +5073,7 @@ function SearchInput({
|
|
|
4903
5073
|
)
|
|
4904
5074
|
}
|
|
4905
5075
|
),
|
|
4906
|
-
showClearButton ? /* @__PURE__ */
|
|
5076
|
+
showClearButton ? /* @__PURE__ */ jsx45(
|
|
4907
5077
|
"button",
|
|
4908
5078
|
{
|
|
4909
5079
|
type: "button",
|
|
@@ -4911,9 +5081,9 @@ function SearchInput({
|
|
|
4911
5081
|
className: "flex items-center justify-center shrink-0 size-[20px] text-muted-foreground hover:text-vibrant-text-heading transition-colors cursor-pointer",
|
|
4912
5082
|
"aria-label": "Clear search",
|
|
4913
5083
|
tabIndex: -1,
|
|
4914
|
-
children: /* @__PURE__ */
|
|
5084
|
+
children: /* @__PURE__ */ jsx45(X3, { className: "size-[16px]" })
|
|
4915
5085
|
}
|
|
4916
|
-
) : variant === "button" ? /* @__PURE__ */
|
|
5086
|
+
) : variant === "button" ? /* @__PURE__ */ jsx45(
|
|
4917
5087
|
"button",
|
|
4918
5088
|
{
|
|
4919
5089
|
type: "button",
|
|
@@ -4923,7 +5093,7 @@ function SearchInput({
|
|
|
4923
5093
|
tabIndex: -1,
|
|
4924
5094
|
children: "Search"
|
|
4925
5095
|
}
|
|
4926
|
-
) : /* @__PURE__ */
|
|
5096
|
+
) : /* @__PURE__ */ jsx45(
|
|
4927
5097
|
"button",
|
|
4928
5098
|
{
|
|
4929
5099
|
type: "button",
|
|
@@ -4932,13 +5102,13 @@ function SearchInput({
|
|
|
4932
5102
|
className: "flex items-center justify-center shrink-0 size-[36px] rounded-[6px] bg-primary-surface-default cursor-pointer disabled:cursor-not-allowed transition-colors",
|
|
4933
5103
|
"aria-label": "Search",
|
|
4934
5104
|
tabIndex: -1,
|
|
4935
|
-
children: /* @__PURE__ */
|
|
5105
|
+
children: /* @__PURE__ */ jsx45(Search, { className: "size-[20px] text-white" })
|
|
4936
5106
|
}
|
|
4937
5107
|
)
|
|
4938
5108
|
]
|
|
4939
5109
|
}
|
|
4940
5110
|
),
|
|
4941
|
-
displayHelperText && /* @__PURE__ */
|
|
5111
|
+
displayHelperText && /* @__PURE__ */ jsx45(
|
|
4942
5112
|
"p",
|
|
4943
5113
|
{
|
|
4944
5114
|
className: cn(
|
|
@@ -4948,12 +5118,12 @@ function SearchInput({
|
|
|
4948
5118
|
children: displayHelperText
|
|
4949
5119
|
}
|
|
4950
5120
|
),
|
|
4951
|
-
showSuggestions && suggestions.length > 0 && /* @__PURE__ */
|
|
5121
|
+
showSuggestions && suggestions.length > 0 && /* @__PURE__ */ jsx45(
|
|
4952
5122
|
"div",
|
|
4953
5123
|
{
|
|
4954
5124
|
"data-slot": "search-input-suggestions",
|
|
4955
5125
|
className: "w-full rounded-[8px] border border-gray-stroke-light bg-white dark:bg-card p-[12px] shadow-[0px_4px_24px_0px_rgba(0,0,0,0.05)] flex flex-col gap-[16px]",
|
|
4956
|
-
children: suggestions.map((suggestion, idx) => /* @__PURE__ */
|
|
5126
|
+
children: suggestions.map((suggestion, idx) => /* @__PURE__ */ jsxs26(
|
|
4957
5127
|
"button",
|
|
4958
5128
|
{
|
|
4959
5129
|
type: "button",
|
|
@@ -4961,8 +5131,8 @@ function SearchInput({
|
|
|
4961
5131
|
onMouseDown: (e) => e.preventDefault(),
|
|
4962
5132
|
className: "flex items-center gap-[13px] h-[40px] pr-[12px] rounded-[8px] w-full text-left hover:bg-gray-surface-light transition-colors cursor-pointer",
|
|
4963
5133
|
children: [
|
|
4964
|
-
suggestion.icon && /* @__PURE__ */
|
|
4965
|
-
/* @__PURE__ */
|
|
5134
|
+
suggestion.icon && /* @__PURE__ */ jsx45("span", { className: "flex items-center justify-center shrink-0 size-[40px] rounded-[8px] bg-gray-surface-light [&_svg]:size-[20px] text-muted-foreground", children: suggestion.icon }),
|
|
5135
|
+
/* @__PURE__ */ jsx45("span", { className: "flex-1 min-w-0 font-sans font-medium text-[16px] leading-[24px] text-vibrant-text-heading truncate", children: suggestion.label })
|
|
4966
5136
|
]
|
|
4967
5137
|
},
|
|
4968
5138
|
`${suggestion.label}-${idx}`
|
|
@@ -4975,12 +5145,12 @@ function SearchInput({
|
|
|
4975
5145
|
}
|
|
4976
5146
|
|
|
4977
5147
|
// src/components/ui/searchable-select.tsx
|
|
4978
|
-
import * as
|
|
5148
|
+
import * as React44 from "react";
|
|
4979
5149
|
import { CheckIcon as CheckIcon4, ChevronsUpDown, XIcon as XIcon2 } from "lucide-react";
|
|
4980
|
-
import { jsx as
|
|
4981
|
-
var SearchableSelectContext =
|
|
5150
|
+
import { jsx as jsx46, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
5151
|
+
var SearchableSelectContext = React44.createContext(null);
|
|
4982
5152
|
function useSearchableSelect() {
|
|
4983
|
-
const ctx =
|
|
5153
|
+
const ctx = React44.useContext(SearchableSelectContext);
|
|
4984
5154
|
if (!ctx) {
|
|
4985
5155
|
throw new Error(
|
|
4986
5156
|
"SearchableSelect compound components must be used within <SearchableSelect>"
|
|
@@ -5006,11 +5176,11 @@ function SearchableSelect({
|
|
|
5006
5176
|
onOpenChange,
|
|
5007
5177
|
children
|
|
5008
5178
|
}) {
|
|
5009
|
-
const [internalOpen, setInternalOpen] =
|
|
5010
|
-
const [internalValue, setInternalValue] =
|
|
5011
|
-
const [internalValues, setInternalValues] =
|
|
5179
|
+
const [internalOpen, setInternalOpen] = React44.useState(false);
|
|
5180
|
+
const [internalValue, setInternalValue] = React44.useState(defaultValue);
|
|
5181
|
+
const [internalValues, setInternalValues] = React44.useState(defaultValues);
|
|
5012
5182
|
const open = controlledOpen ?? internalOpen;
|
|
5013
|
-
const setOpen =
|
|
5183
|
+
const setOpen = React44.useCallback(
|
|
5014
5184
|
(next) => {
|
|
5015
5185
|
if (controlledOpen !== void 0) {
|
|
5016
5186
|
onOpenChange?.(next);
|
|
@@ -5022,7 +5192,7 @@ function SearchableSelect({
|
|
|
5022
5192
|
[controlledOpen, onOpenChange]
|
|
5023
5193
|
);
|
|
5024
5194
|
const value = controlledValue ?? internalValue;
|
|
5025
|
-
const setValue =
|
|
5195
|
+
const setValue = React44.useCallback(
|
|
5026
5196
|
(next) => {
|
|
5027
5197
|
if (controlledValue === void 0) {
|
|
5028
5198
|
setInternalValue(next);
|
|
@@ -5032,7 +5202,7 @@ function SearchableSelect({
|
|
|
5032
5202
|
[controlledValue, onValueChange]
|
|
5033
5203
|
);
|
|
5034
5204
|
const values = controlledValues ?? internalValues;
|
|
5035
|
-
const setValues =
|
|
5205
|
+
const setValues = React44.useCallback(
|
|
5036
5206
|
(next) => {
|
|
5037
5207
|
if (controlledValues === void 0) {
|
|
5038
5208
|
setInternalValues(next);
|
|
@@ -5041,14 +5211,14 @@ function SearchableSelect({
|
|
|
5041
5211
|
},
|
|
5042
5212
|
[controlledValues, onValuesChange]
|
|
5043
5213
|
);
|
|
5044
|
-
const optionMap =
|
|
5214
|
+
const optionMap = React44.useMemo(() => {
|
|
5045
5215
|
const map = /* @__PURE__ */ new Map();
|
|
5046
5216
|
for (const opt of options) {
|
|
5047
5217
|
map.set(opt.value, opt.label);
|
|
5048
5218
|
}
|
|
5049
5219
|
return map;
|
|
5050
5220
|
}, [options]);
|
|
5051
|
-
const ctx =
|
|
5221
|
+
const ctx = React44.useMemo(
|
|
5052
5222
|
() => ({
|
|
5053
5223
|
open,
|
|
5054
5224
|
setOpen,
|
|
@@ -5082,7 +5252,7 @@ function SearchableSelect({
|
|
|
5082
5252
|
optionMap
|
|
5083
5253
|
]
|
|
5084
5254
|
);
|
|
5085
|
-
return /* @__PURE__ */
|
|
5255
|
+
return /* @__PURE__ */ jsx46(SearchableSelectContext.Provider, { value: ctx, children: /* @__PURE__ */ jsx46(Popover, { open, onOpenChange: setOpen, children }) });
|
|
5086
5256
|
}
|
|
5087
5257
|
function SearchableSelectTrigger({
|
|
5088
5258
|
className,
|
|
@@ -5095,7 +5265,7 @@ function SearchableSelectTrigger({
|
|
|
5095
5265
|
if (children) return children;
|
|
5096
5266
|
if (ctx.mode === "single") {
|
|
5097
5267
|
const label = ctx.optionMap.get(ctx.value);
|
|
5098
|
-
return /* @__PURE__ */
|
|
5268
|
+
return /* @__PURE__ */ jsx46(
|
|
5099
5269
|
"span",
|
|
5100
5270
|
{
|
|
5101
5271
|
"data-slot": "searchable-select-value",
|
|
@@ -5108,7 +5278,7 @@ function SearchableSelectTrigger({
|
|
|
5108
5278
|
);
|
|
5109
5279
|
}
|
|
5110
5280
|
if (ctx.values.length === 0) {
|
|
5111
|
-
return /* @__PURE__ */
|
|
5281
|
+
return /* @__PURE__ */ jsx46(
|
|
5112
5282
|
"span",
|
|
5113
5283
|
{
|
|
5114
5284
|
"data-slot": "searchable-select-value",
|
|
@@ -5119,20 +5289,20 @@ function SearchableSelectTrigger({
|
|
|
5119
5289
|
}
|
|
5120
5290
|
const visible = ctx.values.slice(0, ctx.maxCount);
|
|
5121
5291
|
const remaining = ctx.values.length - visible.length;
|
|
5122
|
-
return /* @__PURE__ */
|
|
5292
|
+
return /* @__PURE__ */ jsxs27(
|
|
5123
5293
|
"span",
|
|
5124
5294
|
{
|
|
5125
5295
|
"data-slot": "searchable-select-value",
|
|
5126
5296
|
className: "flex flex-wrap items-center gap-1",
|
|
5127
5297
|
children: [
|
|
5128
|
-
visible.map((v) => /* @__PURE__ */
|
|
5298
|
+
visible.map((v) => /* @__PURE__ */ jsxs27(
|
|
5129
5299
|
Badge,
|
|
5130
5300
|
{
|
|
5131
5301
|
variant: "secondary",
|
|
5132
5302
|
className: "gap-1 pr-1",
|
|
5133
5303
|
children: [
|
|
5134
|
-
/* @__PURE__ */
|
|
5135
|
-
/* @__PURE__ */
|
|
5304
|
+
/* @__PURE__ */ jsx46("span", { className: "truncate max-w-[120px]", children: ctx.optionMap.get(v) || v }),
|
|
5305
|
+
/* @__PURE__ */ jsx46(
|
|
5136
5306
|
"span",
|
|
5137
5307
|
{
|
|
5138
5308
|
role: "button",
|
|
@@ -5144,14 +5314,14 @@ function SearchableSelectTrigger({
|
|
|
5144
5314
|
e.stopPropagation();
|
|
5145
5315
|
ctx.setValues(ctx.values.filter((val) => val !== v));
|
|
5146
5316
|
},
|
|
5147
|
-
children: /* @__PURE__ */
|
|
5317
|
+
children: /* @__PURE__ */ jsx46(XIcon2, { className: "size-3" })
|
|
5148
5318
|
}
|
|
5149
5319
|
)
|
|
5150
5320
|
]
|
|
5151
5321
|
},
|
|
5152
5322
|
v
|
|
5153
5323
|
)),
|
|
5154
|
-
remaining > 0 && /* @__PURE__ */
|
|
5324
|
+
remaining > 0 && /* @__PURE__ */ jsxs27(Badge, { variant: "outline", className: "text-muted-foreground", children: [
|
|
5155
5325
|
"+",
|
|
5156
5326
|
remaining,
|
|
5157
5327
|
" more"
|
|
@@ -5160,7 +5330,7 @@ function SearchableSelectTrigger({
|
|
|
5160
5330
|
}
|
|
5161
5331
|
);
|
|
5162
5332
|
};
|
|
5163
|
-
return /* @__PURE__ */
|
|
5333
|
+
return /* @__PURE__ */ jsxs27(
|
|
5164
5334
|
PopoverTrigger,
|
|
5165
5335
|
{
|
|
5166
5336
|
"data-slot": "searchable-select-trigger",
|
|
@@ -5174,7 +5344,7 @@ function SearchableSelectTrigger({
|
|
|
5174
5344
|
...props,
|
|
5175
5345
|
children: [
|
|
5176
5346
|
renderContent(),
|
|
5177
|
-
/* @__PURE__ */
|
|
5347
|
+
/* @__PURE__ */ jsx46(ChevronsUpDown, { className: "size-4 shrink-0 opacity-50" })
|
|
5178
5348
|
]
|
|
5179
5349
|
}
|
|
5180
5350
|
);
|
|
@@ -5186,7 +5356,7 @@ function SearchableSelectContent({
|
|
|
5186
5356
|
...props
|
|
5187
5357
|
}) {
|
|
5188
5358
|
const ctx = useSearchableSelect();
|
|
5189
|
-
const groupedOptions =
|
|
5359
|
+
const groupedOptions = React44.useMemo(() => {
|
|
5190
5360
|
if (ctx.options.length === 0) return null;
|
|
5191
5361
|
const groups = /* @__PURE__ */ new Map();
|
|
5192
5362
|
for (const opt of ctx.options) {
|
|
@@ -5200,7 +5370,7 @@ function SearchableSelectContent({
|
|
|
5200
5370
|
if (!groupedOptions) return null;
|
|
5201
5371
|
const entries = Array.from(groupedOptions.entries());
|
|
5202
5372
|
if (entries.length === 1 && entries[0][0] === "") {
|
|
5203
|
-
return entries[0][1].map((opt) => /* @__PURE__ */
|
|
5373
|
+
return entries[0][1].map((opt) => /* @__PURE__ */ jsx46(
|
|
5204
5374
|
SearchableSelectItem,
|
|
5205
5375
|
{
|
|
5206
5376
|
value: opt.value,
|
|
@@ -5210,7 +5380,7 @@ function SearchableSelectContent({
|
|
|
5210
5380
|
opt.value
|
|
5211
5381
|
));
|
|
5212
5382
|
}
|
|
5213
|
-
return entries.map(([group, opts]) => /* @__PURE__ */
|
|
5383
|
+
return entries.map(([group, opts]) => /* @__PURE__ */ jsx46(SearchableSelectGroup, { heading: group || void 0, children: opts.map((opt) => /* @__PURE__ */ jsx46(
|
|
5214
5384
|
SearchableSelectItem,
|
|
5215
5385
|
{
|
|
5216
5386
|
value: opt.value,
|
|
@@ -5220,17 +5390,17 @@ function SearchableSelectContent({
|
|
|
5220
5390
|
opt.value
|
|
5221
5391
|
)) }, group));
|
|
5222
5392
|
};
|
|
5223
|
-
return /* @__PURE__ */
|
|
5393
|
+
return /* @__PURE__ */ jsx46(
|
|
5224
5394
|
PopoverContent,
|
|
5225
5395
|
{
|
|
5226
5396
|
"data-slot": "searchable-select-content",
|
|
5227
5397
|
className: cn("w-[var(--radix-popover-trigger-width)] p-0", className),
|
|
5228
5398
|
align: "start",
|
|
5229
5399
|
...props,
|
|
5230
|
-
children: /* @__PURE__ */
|
|
5231
|
-
ctx.searchable && /* @__PURE__ */
|
|
5232
|
-
/* @__PURE__ */
|
|
5233
|
-
/* @__PURE__ */
|
|
5400
|
+
children: /* @__PURE__ */ jsxs27(Command, { children: [
|
|
5401
|
+
ctx.searchable && /* @__PURE__ */ jsx46(CommandInput, { placeholder: ctx.searchPlaceholder }),
|
|
5402
|
+
/* @__PURE__ */ jsxs27(CommandList, { children: [
|
|
5403
|
+
/* @__PURE__ */ jsx46(CommandEmpty, { children: emptyText }),
|
|
5234
5404
|
children || renderAutoItems()
|
|
5235
5405
|
] })
|
|
5236
5406
|
] })
|
|
@@ -5257,7 +5427,7 @@ function SearchableSelectItem({
|
|
|
5257
5427
|
);
|
|
5258
5428
|
}
|
|
5259
5429
|
};
|
|
5260
|
-
return /* @__PURE__ */
|
|
5430
|
+
return /* @__PURE__ */ jsxs27(
|
|
5261
5431
|
CommandItem,
|
|
5262
5432
|
{
|
|
5263
5433
|
"data-slot": "searchable-select-item",
|
|
@@ -5270,18 +5440,18 @@ function SearchableSelectItem({
|
|
|
5270
5440
|
"data-disabled": disabled || void 0,
|
|
5271
5441
|
...props,
|
|
5272
5442
|
children: [
|
|
5273
|
-
ctx.mode === "multiple" && /* @__PURE__ */
|
|
5443
|
+
ctx.mode === "multiple" && /* @__PURE__ */ jsx46("span", { className: "absolute left-2 flex size-4 items-center justify-center", children: /* @__PURE__ */ jsx46(
|
|
5274
5444
|
"span",
|
|
5275
5445
|
{
|
|
5276
5446
|
className: cn(
|
|
5277
5447
|
"size-4 rounded-sm border border-primary transition-colors",
|
|
5278
5448
|
isSelected ? "bg-primary text-primary-foreground" : "bg-transparent"
|
|
5279
5449
|
),
|
|
5280
|
-
children: isSelected && /* @__PURE__ */
|
|
5450
|
+
children: isSelected && /* @__PURE__ */ jsx46(CheckIcon4, { className: "size-4 p-0.5" })
|
|
5281
5451
|
}
|
|
5282
5452
|
) }),
|
|
5283
|
-
/* @__PURE__ */
|
|
5284
|
-
ctx.mode === "single" && isSelected && /* @__PURE__ */
|
|
5453
|
+
/* @__PURE__ */ jsx46("span", { className: "flex-1 truncate", children }),
|
|
5454
|
+
ctx.mode === "single" && isSelected && /* @__PURE__ */ jsx46("span", { className: "absolute right-2 flex size-4 items-center justify-center", children: /* @__PURE__ */ jsx46(CheckIcon4, { className: "size-4" }) })
|
|
5285
5455
|
]
|
|
5286
5456
|
}
|
|
5287
5457
|
);
|
|
@@ -5290,7 +5460,7 @@ function SearchableSelectGroup({
|
|
|
5290
5460
|
className,
|
|
5291
5461
|
...props
|
|
5292
5462
|
}) {
|
|
5293
|
-
return /* @__PURE__ */
|
|
5463
|
+
return /* @__PURE__ */ jsx46(
|
|
5294
5464
|
CommandGroup,
|
|
5295
5465
|
{
|
|
5296
5466
|
"data-slot": "searchable-select-group",
|
|
@@ -5304,7 +5474,7 @@ function SearchableSelectEmpty({
|
|
|
5304
5474
|
children = "No results found.",
|
|
5305
5475
|
...props
|
|
5306
5476
|
}) {
|
|
5307
|
-
return /* @__PURE__ */
|
|
5477
|
+
return /* @__PURE__ */ jsx46(
|
|
5308
5478
|
CommandEmpty,
|
|
5309
5479
|
{
|
|
5310
5480
|
"data-slot": "searchable-select-empty",
|
|
@@ -5319,21 +5489,21 @@ function SearchableSelectEmpty({
|
|
|
5319
5489
|
import "react";
|
|
5320
5490
|
import * as SelectPrimitive from "@radix-ui/react-select";
|
|
5321
5491
|
import { CheckIcon as CheckIcon5, ChevronDownIcon as ChevronDownIcon4, ChevronUpIcon } from "lucide-react";
|
|
5322
|
-
import { jsx as
|
|
5492
|
+
import { jsx as jsx47, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
5323
5493
|
function Select({
|
|
5324
5494
|
...props
|
|
5325
5495
|
}) {
|
|
5326
|
-
return /* @__PURE__ */
|
|
5496
|
+
return /* @__PURE__ */ jsx47(SelectPrimitive.Root, { "data-slot": "select", ...props });
|
|
5327
5497
|
}
|
|
5328
5498
|
function SelectGroup({
|
|
5329
5499
|
...props
|
|
5330
5500
|
}) {
|
|
5331
|
-
return /* @__PURE__ */
|
|
5501
|
+
return /* @__PURE__ */ jsx47(SelectPrimitive.Group, { "data-slot": "select-group", ...props });
|
|
5332
5502
|
}
|
|
5333
5503
|
function SelectValue({
|
|
5334
5504
|
...props
|
|
5335
5505
|
}) {
|
|
5336
|
-
return /* @__PURE__ */
|
|
5506
|
+
return /* @__PURE__ */ jsx47(SelectPrimitive.Value, { "data-slot": "select-value", ...props });
|
|
5337
5507
|
}
|
|
5338
5508
|
function SelectTrigger({
|
|
5339
5509
|
className,
|
|
@@ -5341,7 +5511,7 @@ function SelectTrigger({
|
|
|
5341
5511
|
children,
|
|
5342
5512
|
...props
|
|
5343
5513
|
}) {
|
|
5344
|
-
return /* @__PURE__ */
|
|
5514
|
+
return /* @__PURE__ */ jsxs28(
|
|
5345
5515
|
SelectPrimitive.Trigger,
|
|
5346
5516
|
{
|
|
5347
5517
|
"data-slot": "select-trigger",
|
|
@@ -5353,7 +5523,7 @@ function SelectTrigger({
|
|
|
5353
5523
|
...props,
|
|
5354
5524
|
children: [
|
|
5355
5525
|
children,
|
|
5356
|
-
/* @__PURE__ */
|
|
5526
|
+
/* @__PURE__ */ jsx47(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx47(ChevronDownIcon4, { className: "size-4 opacity-50" }) })
|
|
5357
5527
|
]
|
|
5358
5528
|
}
|
|
5359
5529
|
);
|
|
@@ -5364,7 +5534,7 @@ function SelectContent({
|
|
|
5364
5534
|
position = "popper",
|
|
5365
5535
|
...props
|
|
5366
5536
|
}) {
|
|
5367
|
-
return /* @__PURE__ */
|
|
5537
|
+
return /* @__PURE__ */ jsx47(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs28(
|
|
5368
5538
|
SelectPrimitive.Content,
|
|
5369
5539
|
{
|
|
5370
5540
|
"data-slot": "select-content",
|
|
@@ -5376,8 +5546,8 @@ function SelectContent({
|
|
|
5376
5546
|
position,
|
|
5377
5547
|
...props,
|
|
5378
5548
|
children: [
|
|
5379
|
-
/* @__PURE__ */
|
|
5380
|
-
/* @__PURE__ */
|
|
5549
|
+
/* @__PURE__ */ jsx47(SelectScrollUpButton, {}),
|
|
5550
|
+
/* @__PURE__ */ jsx47(
|
|
5381
5551
|
SelectPrimitive.Viewport,
|
|
5382
5552
|
{
|
|
5383
5553
|
className: cn(
|
|
@@ -5387,7 +5557,7 @@ function SelectContent({
|
|
|
5387
5557
|
children
|
|
5388
5558
|
}
|
|
5389
5559
|
),
|
|
5390
|
-
/* @__PURE__ */
|
|
5560
|
+
/* @__PURE__ */ jsx47(SelectScrollDownButton, {})
|
|
5391
5561
|
]
|
|
5392
5562
|
}
|
|
5393
5563
|
) });
|
|
@@ -5396,7 +5566,7 @@ function SelectLabel({
|
|
|
5396
5566
|
className,
|
|
5397
5567
|
...props
|
|
5398
5568
|
}) {
|
|
5399
|
-
return /* @__PURE__ */
|
|
5569
|
+
return /* @__PURE__ */ jsx47(
|
|
5400
5570
|
SelectPrimitive.Label,
|
|
5401
5571
|
{
|
|
5402
5572
|
"data-slot": "select-label",
|
|
@@ -5410,7 +5580,7 @@ function SelectItem({
|
|
|
5410
5580
|
children,
|
|
5411
5581
|
...props
|
|
5412
5582
|
}) {
|
|
5413
|
-
return /* @__PURE__ */
|
|
5583
|
+
return /* @__PURE__ */ jsxs28(
|
|
5414
5584
|
SelectPrimitive.Item,
|
|
5415
5585
|
{
|
|
5416
5586
|
"data-slot": "select-item",
|
|
@@ -5420,8 +5590,8 @@ function SelectItem({
|
|
|
5420
5590
|
),
|
|
5421
5591
|
...props,
|
|
5422
5592
|
children: [
|
|
5423
|
-
/* @__PURE__ */
|
|
5424
|
-
/* @__PURE__ */
|
|
5593
|
+
/* @__PURE__ */ jsx47("span", { className: "absolute right-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx47(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx47(CheckIcon5, { className: "size-4" }) }) }),
|
|
5594
|
+
/* @__PURE__ */ jsx47(SelectPrimitive.ItemText, { children })
|
|
5425
5595
|
]
|
|
5426
5596
|
}
|
|
5427
5597
|
);
|
|
@@ -5430,7 +5600,7 @@ function SelectSeparator({
|
|
|
5430
5600
|
className,
|
|
5431
5601
|
...props
|
|
5432
5602
|
}) {
|
|
5433
|
-
return /* @__PURE__ */
|
|
5603
|
+
return /* @__PURE__ */ jsx47(
|
|
5434
5604
|
SelectPrimitive.Separator,
|
|
5435
5605
|
{
|
|
5436
5606
|
"data-slot": "select-separator",
|
|
@@ -5443,7 +5613,7 @@ function SelectScrollUpButton({
|
|
|
5443
5613
|
className,
|
|
5444
5614
|
...props
|
|
5445
5615
|
}) {
|
|
5446
|
-
return /* @__PURE__ */
|
|
5616
|
+
return /* @__PURE__ */ jsx47(
|
|
5447
5617
|
SelectPrimitive.ScrollUpButton,
|
|
5448
5618
|
{
|
|
5449
5619
|
"data-slot": "select-scroll-up-button",
|
|
@@ -5452,7 +5622,7 @@ function SelectScrollUpButton({
|
|
|
5452
5622
|
className
|
|
5453
5623
|
),
|
|
5454
5624
|
...props,
|
|
5455
|
-
children: /* @__PURE__ */
|
|
5625
|
+
children: /* @__PURE__ */ jsx47(ChevronUpIcon, { className: "size-4" })
|
|
5456
5626
|
}
|
|
5457
5627
|
);
|
|
5458
5628
|
}
|
|
@@ -5460,7 +5630,7 @@ function SelectScrollDownButton({
|
|
|
5460
5630
|
className,
|
|
5461
5631
|
...props
|
|
5462
5632
|
}) {
|
|
5463
|
-
return /* @__PURE__ */
|
|
5633
|
+
return /* @__PURE__ */ jsx47(
|
|
5464
5634
|
SelectPrimitive.ScrollDownButton,
|
|
5465
5635
|
{
|
|
5466
5636
|
"data-slot": "select-scroll-down-button",
|
|
@@ -5469,7 +5639,7 @@ function SelectScrollDownButton({
|
|
|
5469
5639
|
className
|
|
5470
5640
|
),
|
|
5471
5641
|
...props,
|
|
5472
|
-
children: /* @__PURE__ */
|
|
5642
|
+
children: /* @__PURE__ */ jsx47(ChevronDownIcon4, { className: "size-4" })
|
|
5473
5643
|
}
|
|
5474
5644
|
);
|
|
5475
5645
|
}
|
|
@@ -5477,14 +5647,14 @@ function SelectScrollDownButton({
|
|
|
5477
5647
|
// src/components/ui/separator.tsx
|
|
5478
5648
|
import "react";
|
|
5479
5649
|
import * as SeparatorPrimitive from "@radix-ui/react-separator";
|
|
5480
|
-
import { jsx as
|
|
5650
|
+
import { jsx as jsx48 } from "react/jsx-runtime";
|
|
5481
5651
|
function Separator5({
|
|
5482
5652
|
className,
|
|
5483
5653
|
orientation = "horizontal",
|
|
5484
5654
|
decorative = true,
|
|
5485
5655
|
...props
|
|
5486
5656
|
}) {
|
|
5487
|
-
return /* @__PURE__ */
|
|
5657
|
+
return /* @__PURE__ */ jsx48(
|
|
5488
5658
|
SeparatorPrimitive.Root,
|
|
5489
5659
|
{
|
|
5490
5660
|
"data-slot": "separator",
|
|
@@ -5503,30 +5673,30 @@ function Separator5({
|
|
|
5503
5673
|
import * as SheetPrimitive from "@radix-ui/react-dialog";
|
|
5504
5674
|
import { XIcon as XIcon3 } from "lucide-react";
|
|
5505
5675
|
import "react";
|
|
5506
|
-
import { jsx as
|
|
5676
|
+
import { jsx as jsx49, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
5507
5677
|
function Sheet({ ...props }) {
|
|
5508
|
-
return /* @__PURE__ */
|
|
5678
|
+
return /* @__PURE__ */ jsx49(SheetPrimitive.Root, { "data-slot": "sheet", ...props });
|
|
5509
5679
|
}
|
|
5510
5680
|
function SheetTrigger({
|
|
5511
5681
|
...props
|
|
5512
5682
|
}) {
|
|
5513
|
-
return /* @__PURE__ */
|
|
5683
|
+
return /* @__PURE__ */ jsx49(SheetPrimitive.Trigger, { "data-slot": "sheet-trigger", ...props });
|
|
5514
5684
|
}
|
|
5515
5685
|
function SheetClose({
|
|
5516
5686
|
...props
|
|
5517
5687
|
}) {
|
|
5518
|
-
return /* @__PURE__ */
|
|
5688
|
+
return /* @__PURE__ */ jsx49(SheetPrimitive.Close, { "data-slot": "sheet-close", ...props });
|
|
5519
5689
|
}
|
|
5520
5690
|
function SheetPortal({
|
|
5521
5691
|
...props
|
|
5522
5692
|
}) {
|
|
5523
|
-
return /* @__PURE__ */
|
|
5693
|
+
return /* @__PURE__ */ jsx49(SheetPrimitive.Portal, { "data-slot": "sheet-portal", ...props });
|
|
5524
5694
|
}
|
|
5525
5695
|
function SheetOverlay({
|
|
5526
5696
|
className,
|
|
5527
5697
|
...props
|
|
5528
5698
|
}) {
|
|
5529
|
-
return /* @__PURE__ */
|
|
5699
|
+
return /* @__PURE__ */ jsx49(
|
|
5530
5700
|
SheetPrimitive.Overlay,
|
|
5531
5701
|
{
|
|
5532
5702
|
"data-slot": "sheet-overlay",
|
|
@@ -5545,9 +5715,9 @@ function SheetContent({
|
|
|
5545
5715
|
showCloseButton = true,
|
|
5546
5716
|
...props
|
|
5547
5717
|
}) {
|
|
5548
|
-
return /* @__PURE__ */
|
|
5549
|
-
/* @__PURE__ */
|
|
5550
|
-
/* @__PURE__ */
|
|
5718
|
+
return /* @__PURE__ */ jsxs29(SheetPortal, { children: [
|
|
5719
|
+
/* @__PURE__ */ jsx49(SheetOverlay, {}),
|
|
5720
|
+
/* @__PURE__ */ jsxs29(
|
|
5551
5721
|
SheetPrimitive.Content,
|
|
5552
5722
|
{
|
|
5553
5723
|
"data-slot": "sheet-content",
|
|
@@ -5562,9 +5732,9 @@ function SheetContent({
|
|
|
5562
5732
|
...props,
|
|
5563
5733
|
children: [
|
|
5564
5734
|
children,
|
|
5565
|
-
showCloseButton && /* @__PURE__ */
|
|
5566
|
-
/* @__PURE__ */
|
|
5567
|
-
/* @__PURE__ */
|
|
5735
|
+
showCloseButton && /* @__PURE__ */ jsxs29(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: [
|
|
5736
|
+
/* @__PURE__ */ jsx49(XIcon3, { className: "size-4" }),
|
|
5737
|
+
/* @__PURE__ */ jsx49("span", { className: "sr-only", children: "Close" })
|
|
5568
5738
|
] })
|
|
5569
5739
|
]
|
|
5570
5740
|
}
|
|
@@ -5572,7 +5742,7 @@ function SheetContent({
|
|
|
5572
5742
|
] });
|
|
5573
5743
|
}
|
|
5574
5744
|
function SheetHeader({ className, ...props }) {
|
|
5575
|
-
return /* @__PURE__ */
|
|
5745
|
+
return /* @__PURE__ */ jsx49(
|
|
5576
5746
|
"div",
|
|
5577
5747
|
{
|
|
5578
5748
|
"data-slot": "sheet-header",
|
|
@@ -5582,7 +5752,7 @@ function SheetHeader({ className, ...props }) {
|
|
|
5582
5752
|
);
|
|
5583
5753
|
}
|
|
5584
5754
|
function SheetFooter({ className, ...props }) {
|
|
5585
|
-
return /* @__PURE__ */
|
|
5755
|
+
return /* @__PURE__ */ jsx49(
|
|
5586
5756
|
"div",
|
|
5587
5757
|
{
|
|
5588
5758
|
"data-slot": "sheet-footer",
|
|
@@ -5595,7 +5765,7 @@ function SheetTitle({
|
|
|
5595
5765
|
className,
|
|
5596
5766
|
...props
|
|
5597
5767
|
}) {
|
|
5598
|
-
return /* @__PURE__ */
|
|
5768
|
+
return /* @__PURE__ */ jsx49(
|
|
5599
5769
|
SheetPrimitive.Title,
|
|
5600
5770
|
{
|
|
5601
5771
|
"data-slot": "sheet-title",
|
|
@@ -5608,7 +5778,7 @@ function SheetDescription({
|
|
|
5608
5778
|
className,
|
|
5609
5779
|
...props
|
|
5610
5780
|
}) {
|
|
5611
|
-
return /* @__PURE__ */
|
|
5781
|
+
return /* @__PURE__ */ jsx49(
|
|
5612
5782
|
SheetPrimitive.Description,
|
|
5613
5783
|
{
|
|
5614
5784
|
"data-slot": "sheet-description",
|
|
@@ -5620,14 +5790,14 @@ function SheetDescription({
|
|
|
5620
5790
|
|
|
5621
5791
|
// src/components/ui/sidebar.tsx
|
|
5622
5792
|
import { Slot as Slot6 } from "@radix-ui/react-slot";
|
|
5623
|
-
import { cva as
|
|
5793
|
+
import { cva as cva13 } from "class-variance-authority";
|
|
5624
5794
|
import { PanelLeftIcon } from "lucide-react";
|
|
5625
|
-
import * as
|
|
5795
|
+
import * as React50 from "react";
|
|
5626
5796
|
|
|
5627
5797
|
// src/components/ui/skeleton.tsx
|
|
5628
|
-
import { jsx as
|
|
5798
|
+
import { jsx as jsx50 } from "react/jsx-runtime";
|
|
5629
5799
|
function Skeleton({ className, ...props }) {
|
|
5630
|
-
return /* @__PURE__ */
|
|
5800
|
+
return /* @__PURE__ */ jsx50(
|
|
5631
5801
|
"div",
|
|
5632
5802
|
{
|
|
5633
5803
|
"data-slot": "skeleton",
|
|
@@ -5638,15 +5808,15 @@ function Skeleton({ className, ...props }) {
|
|
|
5638
5808
|
}
|
|
5639
5809
|
|
|
5640
5810
|
// src/components/ui/tooltip.tsx
|
|
5641
|
-
import "react";
|
|
5811
|
+
import * as React48 from "react";
|
|
5642
5812
|
import * as TooltipPrimitive from "@radix-ui/react-tooltip";
|
|
5643
5813
|
import { X as X4 } from "lucide-react";
|
|
5644
|
-
import { jsx as
|
|
5814
|
+
import { jsx as jsx51, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
5645
5815
|
function TooltipProvider({
|
|
5646
5816
|
delayDuration = 0,
|
|
5647
5817
|
...props
|
|
5648
5818
|
}) {
|
|
5649
|
-
return /* @__PURE__ */
|
|
5819
|
+
return /* @__PURE__ */ jsx51(
|
|
5650
5820
|
TooltipPrimitive.Provider,
|
|
5651
5821
|
{
|
|
5652
5822
|
"data-slot": "tooltip-provider",
|
|
@@ -5655,15 +5825,38 @@ function TooltipProvider({
|
|
|
5655
5825
|
}
|
|
5656
5826
|
);
|
|
5657
5827
|
}
|
|
5828
|
+
var TooltipCloseContext = React48.createContext(null);
|
|
5658
5829
|
function Tooltip2({
|
|
5830
|
+
persistent = false,
|
|
5659
5831
|
...props
|
|
5660
5832
|
}) {
|
|
5661
|
-
|
|
5833
|
+
const [open, setOpen] = React48.useState(props.defaultOpen ?? false);
|
|
5834
|
+
if (!persistent) {
|
|
5835
|
+
return /* @__PURE__ */ jsx51(TooltipProvider, { children: /* @__PURE__ */ jsx51(TooltipPrimitive.Root, { "data-slot": "tooltip", ...props }) });
|
|
5836
|
+
}
|
|
5837
|
+
const close = () => {
|
|
5838
|
+
setOpen(false);
|
|
5839
|
+
props.onOpenChange?.(false);
|
|
5840
|
+
};
|
|
5841
|
+
return /* @__PURE__ */ jsx51(TooltipProvider, { children: /* @__PURE__ */ jsx51(TooltipCloseContext.Provider, { value: close, children: /* @__PURE__ */ jsx51(
|
|
5842
|
+
TooltipPrimitive.Root,
|
|
5843
|
+
{
|
|
5844
|
+
"data-slot": "tooltip",
|
|
5845
|
+
open: props.open ?? open,
|
|
5846
|
+
onOpenChange: (isOpen) => {
|
|
5847
|
+
if (isOpen) {
|
|
5848
|
+
setOpen(true);
|
|
5849
|
+
props.onOpenChange?.(true);
|
|
5850
|
+
}
|
|
5851
|
+
},
|
|
5852
|
+
...props
|
|
5853
|
+
}
|
|
5854
|
+
) }) });
|
|
5662
5855
|
}
|
|
5663
5856
|
function TooltipTrigger({
|
|
5664
5857
|
...props
|
|
5665
5858
|
}) {
|
|
5666
|
-
return /* @__PURE__ */
|
|
5859
|
+
return /* @__PURE__ */ jsx51(TooltipPrimitive.Trigger, { "data-slot": "tooltip-trigger", ...props });
|
|
5667
5860
|
}
|
|
5668
5861
|
function TooltipContent({
|
|
5669
5862
|
className,
|
|
@@ -5671,7 +5864,7 @@ function TooltipContent({
|
|
|
5671
5864
|
children,
|
|
5672
5865
|
...props
|
|
5673
5866
|
}) {
|
|
5674
|
-
return /* @__PURE__ */
|
|
5867
|
+
return /* @__PURE__ */ jsx51(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsxs30(
|
|
5675
5868
|
TooltipPrimitive.Content,
|
|
5676
5869
|
{
|
|
5677
5870
|
"data-slot": "tooltip-content",
|
|
@@ -5683,7 +5876,7 @@ function TooltipContent({
|
|
|
5683
5876
|
...props,
|
|
5684
5877
|
children: [
|
|
5685
5878
|
children,
|
|
5686
|
-
/* @__PURE__ */
|
|
5879
|
+
/* @__PURE__ */ jsx51(TooltipPrimitive.Arrow, { className: "bg-primary fill-primary z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]" })
|
|
5687
5880
|
]
|
|
5688
5881
|
}
|
|
5689
5882
|
) });
|
|
@@ -5698,7 +5891,12 @@ function RichTooltipContent({
|
|
|
5698
5891
|
children,
|
|
5699
5892
|
...props
|
|
5700
5893
|
}) {
|
|
5701
|
-
|
|
5894
|
+
const close = React48.useContext(TooltipCloseContext);
|
|
5895
|
+
const handleDismiss = () => {
|
|
5896
|
+
close?.();
|
|
5897
|
+
onDismiss?.();
|
|
5898
|
+
};
|
|
5899
|
+
return /* @__PURE__ */ jsx51(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsxs30(
|
|
5702
5900
|
TooltipPrimitive.Content,
|
|
5703
5901
|
{
|
|
5704
5902
|
"data-slot": "rich-tooltip-content",
|
|
@@ -5707,26 +5905,29 @@ function RichTooltipContent({
|
|
|
5707
5905
|
"animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 origin-(--radix-tooltip-content-transform-origin)",
|
|
5708
5906
|
className
|
|
5709
5907
|
),
|
|
5908
|
+
...dismissible && {
|
|
5909
|
+
onPointerDownOutside: handleDismiss
|
|
5910
|
+
},
|
|
5710
5911
|
...props,
|
|
5711
5912
|
children: [
|
|
5712
|
-
/* @__PURE__ */
|
|
5713
|
-
icon && /* @__PURE__ */
|
|
5714
|
-
/* @__PURE__ */
|
|
5715
|
-
heading && /* @__PURE__ */
|
|
5716
|
-
/* @__PURE__ */
|
|
5913
|
+
/* @__PURE__ */ jsxs30("div", { className: "flex items-start gap-3 bg-gray-surface-dark rounded-[12px] px-3 py-4 text-sm leading-5 max-w-sm", children: [
|
|
5914
|
+
icon && /* @__PURE__ */ jsx51("span", { className: "flex items-center justify-center shrink-0 size-5 text-white [&_svg]:size-5", children: icon }),
|
|
5915
|
+
/* @__PURE__ */ jsxs30("div", { className: "flex flex-1 flex-col gap-2 min-w-0", children: [
|
|
5916
|
+
heading && /* @__PURE__ */ jsx51("p", { className: "font-semibold text-sm leading-5 text-white", children: heading }),
|
|
5917
|
+
/* @__PURE__ */ jsx51("div", { className: "font-normal text-sm leading-5 text-white", children })
|
|
5717
5918
|
] }),
|
|
5718
|
-
dismissible && /* @__PURE__ */
|
|
5919
|
+
dismissible && /* @__PURE__ */ jsx51(
|
|
5719
5920
|
"button",
|
|
5720
5921
|
{
|
|
5721
5922
|
type: "button",
|
|
5722
|
-
onClick:
|
|
5923
|
+
onClick: handleDismiss,
|
|
5723
5924
|
className: "flex items-center justify-center shrink-0 size-5 text-white/70 hover:text-white transition-colors cursor-pointer",
|
|
5724
5925
|
"aria-label": "Dismiss",
|
|
5725
|
-
children: /* @__PURE__ */
|
|
5926
|
+
children: /* @__PURE__ */ jsx51(X4, { className: "size-3.5" })
|
|
5726
5927
|
}
|
|
5727
5928
|
)
|
|
5728
5929
|
] }),
|
|
5729
|
-
/* @__PURE__ */
|
|
5930
|
+
/* @__PURE__ */ jsx51(
|
|
5730
5931
|
TooltipPrimitive.Arrow,
|
|
5731
5932
|
{
|
|
5732
5933
|
width: 16,
|
|
@@ -5740,11 +5941,11 @@ function RichTooltipContent({
|
|
|
5740
5941
|
}
|
|
5741
5942
|
|
|
5742
5943
|
// src/hooks/use-mobile.ts
|
|
5743
|
-
import * as
|
|
5944
|
+
import * as React49 from "react";
|
|
5744
5945
|
var MOBILE_BREAKPOINT = 768;
|
|
5745
5946
|
function useIsMobile() {
|
|
5746
|
-
const [isMobile, setIsMobile] =
|
|
5747
|
-
|
|
5947
|
+
const [isMobile, setIsMobile] = React49.useState(void 0);
|
|
5948
|
+
React49.useEffect(() => {
|
|
5748
5949
|
const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
|
|
5749
5950
|
const onChange = () => {
|
|
5750
5951
|
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
@@ -5757,16 +5958,16 @@ function useIsMobile() {
|
|
|
5757
5958
|
}
|
|
5758
5959
|
|
|
5759
5960
|
// src/components/ui/sidebar.tsx
|
|
5760
|
-
import { jsx as
|
|
5961
|
+
import { jsx as jsx52, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
5761
5962
|
var SIDEBAR_COOKIE_NAME = "sidebar_state";
|
|
5762
5963
|
var SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
|
|
5763
5964
|
var SIDEBAR_WIDTH = "18rem";
|
|
5764
5965
|
var SIDEBAR_WIDTH_MOBILE = "18rem";
|
|
5765
5966
|
var SIDEBAR_WIDTH_ICON = "3rem";
|
|
5766
5967
|
var SIDEBAR_KEYBOARD_SHORTCUT = "b";
|
|
5767
|
-
var SidebarContext =
|
|
5968
|
+
var SidebarContext = React50.createContext(null);
|
|
5768
5969
|
function useSidebar() {
|
|
5769
|
-
const context =
|
|
5970
|
+
const context = React50.useContext(SidebarContext);
|
|
5770
5971
|
if (!context) {
|
|
5771
5972
|
throw new Error("useSidebar must be used within a SidebarProvider.");
|
|
5772
5973
|
}
|
|
@@ -5782,10 +5983,10 @@ function SidebarProvider({
|
|
|
5782
5983
|
...props
|
|
5783
5984
|
}) {
|
|
5784
5985
|
const isMobile = useIsMobile();
|
|
5785
|
-
const [openMobile, setOpenMobile] =
|
|
5786
|
-
const [_open, _setOpen] =
|
|
5986
|
+
const [openMobile, setOpenMobile] = React50.useState(false);
|
|
5987
|
+
const [_open, _setOpen] = React50.useState(defaultOpen);
|
|
5787
5988
|
const open = openProp ?? _open;
|
|
5788
|
-
const setOpen =
|
|
5989
|
+
const setOpen = React50.useCallback(
|
|
5789
5990
|
(value) => {
|
|
5790
5991
|
const openState = typeof value === "function" ? value(open) : value;
|
|
5791
5992
|
if (setOpenProp) {
|
|
@@ -5797,10 +5998,10 @@ function SidebarProvider({
|
|
|
5797
5998
|
},
|
|
5798
5999
|
[setOpenProp, open]
|
|
5799
6000
|
);
|
|
5800
|
-
const toggleSidebar =
|
|
6001
|
+
const toggleSidebar = React50.useCallback(() => {
|
|
5801
6002
|
return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
|
|
5802
6003
|
}, [isMobile, setOpen, setOpenMobile]);
|
|
5803
|
-
|
|
6004
|
+
React50.useEffect(() => {
|
|
5804
6005
|
const handleKeyDown = (event) => {
|
|
5805
6006
|
if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
|
|
5806
6007
|
event.preventDefault();
|
|
@@ -5811,7 +6012,7 @@ function SidebarProvider({
|
|
|
5811
6012
|
return () => window.removeEventListener("keydown", handleKeyDown);
|
|
5812
6013
|
}, [toggleSidebar]);
|
|
5813
6014
|
const state = open ? "expanded" : "collapsed";
|
|
5814
|
-
const contextValue =
|
|
6015
|
+
const contextValue = React50.useMemo(
|
|
5815
6016
|
() => ({
|
|
5816
6017
|
state,
|
|
5817
6018
|
open,
|
|
@@ -5823,7 +6024,7 @@ function SidebarProvider({
|
|
|
5823
6024
|
}),
|
|
5824
6025
|
[state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]
|
|
5825
6026
|
);
|
|
5826
|
-
return /* @__PURE__ */
|
|
6027
|
+
return /* @__PURE__ */ jsx52(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx52(TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ jsx52(
|
|
5827
6028
|
"div",
|
|
5828
6029
|
{
|
|
5829
6030
|
"data-slot": "sidebar-wrapper",
|
|
@@ -5851,7 +6052,7 @@ function Sidebar({
|
|
|
5851
6052
|
}) {
|
|
5852
6053
|
const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
|
|
5853
6054
|
if (collapsible === "none") {
|
|
5854
|
-
return /* @__PURE__ */
|
|
6055
|
+
return /* @__PURE__ */ jsx52(
|
|
5855
6056
|
"div",
|
|
5856
6057
|
{
|
|
5857
6058
|
"data-slot": "sidebar",
|
|
@@ -5865,7 +6066,7 @@ function Sidebar({
|
|
|
5865
6066
|
);
|
|
5866
6067
|
}
|
|
5867
6068
|
if (isMobile) {
|
|
5868
|
-
return /* @__PURE__ */
|
|
6069
|
+
return /* @__PURE__ */ jsx52(Sheet, { open: openMobile, onOpenChange: setOpenMobile, ...props, children: /* @__PURE__ */ jsxs31(
|
|
5869
6070
|
SheetContent,
|
|
5870
6071
|
{
|
|
5871
6072
|
"data-sidebar": "sidebar",
|
|
@@ -5877,16 +6078,16 @@ function Sidebar({
|
|
|
5877
6078
|
},
|
|
5878
6079
|
side,
|
|
5879
6080
|
children: [
|
|
5880
|
-
/* @__PURE__ */
|
|
5881
|
-
/* @__PURE__ */
|
|
5882
|
-
/* @__PURE__ */
|
|
6081
|
+
/* @__PURE__ */ jsxs31(SheetHeader, { className: "sr-only", children: [
|
|
6082
|
+
/* @__PURE__ */ jsx52(SheetTitle, { children: "Sidebar" }),
|
|
6083
|
+
/* @__PURE__ */ jsx52(SheetDescription, { children: "Displays the mobile sidebar." })
|
|
5883
6084
|
] }),
|
|
5884
|
-
/* @__PURE__ */
|
|
6085
|
+
/* @__PURE__ */ jsx52("div", { className: "flex h-full w-full flex-col", children })
|
|
5885
6086
|
]
|
|
5886
6087
|
}
|
|
5887
6088
|
) });
|
|
5888
6089
|
}
|
|
5889
|
-
return /* @__PURE__ */
|
|
6090
|
+
return /* @__PURE__ */ jsxs31(
|
|
5890
6091
|
"div",
|
|
5891
6092
|
{
|
|
5892
6093
|
className: "group peer text-sidebar-foreground hidden md:block",
|
|
@@ -5896,7 +6097,7 @@ function Sidebar({
|
|
|
5896
6097
|
"data-side": side,
|
|
5897
6098
|
"data-slot": "sidebar",
|
|
5898
6099
|
children: [
|
|
5899
|
-
/* @__PURE__ */
|
|
6100
|
+
/* @__PURE__ */ jsx52(
|
|
5900
6101
|
"div",
|
|
5901
6102
|
{
|
|
5902
6103
|
"data-slot": "sidebar-gap",
|
|
@@ -5908,7 +6109,7 @@ function Sidebar({
|
|
|
5908
6109
|
)
|
|
5909
6110
|
}
|
|
5910
6111
|
),
|
|
5911
|
-
/* @__PURE__ */
|
|
6112
|
+
/* @__PURE__ */ jsx52(
|
|
5912
6113
|
"div",
|
|
5913
6114
|
{
|
|
5914
6115
|
"data-slot": "sidebar-container",
|
|
@@ -5920,7 +6121,7 @@ function Sidebar({
|
|
|
5920
6121
|
className
|
|
5921
6122
|
),
|
|
5922
6123
|
...props,
|
|
5923
|
-
children: /* @__PURE__ */
|
|
6124
|
+
children: /* @__PURE__ */ jsx52(
|
|
5924
6125
|
"div",
|
|
5925
6126
|
{
|
|
5926
6127
|
"data-sidebar": "sidebar",
|
|
@@ -5941,7 +6142,7 @@ function SidebarTrigger({
|
|
|
5941
6142
|
...props
|
|
5942
6143
|
}) {
|
|
5943
6144
|
const { toggleSidebar } = useSidebar();
|
|
5944
|
-
return /* @__PURE__ */
|
|
6145
|
+
return /* @__PURE__ */ jsxs31(
|
|
5945
6146
|
Button,
|
|
5946
6147
|
{
|
|
5947
6148
|
"data-sidebar": "trigger",
|
|
@@ -5955,15 +6156,15 @@ function SidebarTrigger({
|
|
|
5955
6156
|
},
|
|
5956
6157
|
...props,
|
|
5957
6158
|
children: [
|
|
5958
|
-
/* @__PURE__ */
|
|
5959
|
-
/* @__PURE__ */
|
|
6159
|
+
/* @__PURE__ */ jsx52(PanelLeftIcon, {}),
|
|
6160
|
+
/* @__PURE__ */ jsx52("span", { className: "sr-only", children: "Toggle Sidebar" })
|
|
5960
6161
|
]
|
|
5961
6162
|
}
|
|
5962
6163
|
);
|
|
5963
6164
|
}
|
|
5964
6165
|
function SidebarRail({ className, ...props }) {
|
|
5965
6166
|
const { toggleSidebar } = useSidebar();
|
|
5966
|
-
return /* @__PURE__ */
|
|
6167
|
+
return /* @__PURE__ */ jsx52(
|
|
5967
6168
|
"button",
|
|
5968
6169
|
{
|
|
5969
6170
|
"data-sidebar": "rail",
|
|
@@ -5986,7 +6187,7 @@ function SidebarRail({ className, ...props }) {
|
|
|
5986
6187
|
);
|
|
5987
6188
|
}
|
|
5988
6189
|
function SidebarInset({ className, ...props }) {
|
|
5989
|
-
return /* @__PURE__ */
|
|
6190
|
+
return /* @__PURE__ */ jsx52(
|
|
5990
6191
|
"main",
|
|
5991
6192
|
{
|
|
5992
6193
|
"data-slot": "sidebar-inset",
|
|
@@ -6003,7 +6204,7 @@ function SidebarInput({
|
|
|
6003
6204
|
className,
|
|
6004
6205
|
...props
|
|
6005
6206
|
}) {
|
|
6006
|
-
return /* @__PURE__ */
|
|
6207
|
+
return /* @__PURE__ */ jsx52(
|
|
6007
6208
|
Input,
|
|
6008
6209
|
{
|
|
6009
6210
|
"data-slot": "sidebar-input",
|
|
@@ -6014,7 +6215,7 @@ function SidebarInput({
|
|
|
6014
6215
|
);
|
|
6015
6216
|
}
|
|
6016
6217
|
function SidebarHeader({ className, ...props }) {
|
|
6017
|
-
return /* @__PURE__ */
|
|
6218
|
+
return /* @__PURE__ */ jsx52(
|
|
6018
6219
|
"div",
|
|
6019
6220
|
{
|
|
6020
6221
|
"data-slot": "sidebar-header",
|
|
@@ -6025,7 +6226,7 @@ function SidebarHeader({ className, ...props }) {
|
|
|
6025
6226
|
);
|
|
6026
6227
|
}
|
|
6027
6228
|
function SidebarFooter({ className, ...props }) {
|
|
6028
|
-
return /* @__PURE__ */
|
|
6229
|
+
return /* @__PURE__ */ jsx52(
|
|
6029
6230
|
"div",
|
|
6030
6231
|
{
|
|
6031
6232
|
"data-slot": "sidebar-footer",
|
|
@@ -6039,7 +6240,7 @@ function SidebarSeparator({
|
|
|
6039
6240
|
className,
|
|
6040
6241
|
...props
|
|
6041
6242
|
}) {
|
|
6042
|
-
return /* @__PURE__ */
|
|
6243
|
+
return /* @__PURE__ */ jsx52(
|
|
6043
6244
|
Separator5,
|
|
6044
6245
|
{
|
|
6045
6246
|
"data-slot": "sidebar-separator",
|
|
@@ -6050,7 +6251,7 @@ function SidebarSeparator({
|
|
|
6050
6251
|
);
|
|
6051
6252
|
}
|
|
6052
6253
|
function SidebarContent({ className, ...props }) {
|
|
6053
|
-
return /* @__PURE__ */
|
|
6254
|
+
return /* @__PURE__ */ jsx52(
|
|
6054
6255
|
"div",
|
|
6055
6256
|
{
|
|
6056
6257
|
"data-slot": "sidebar-content",
|
|
@@ -6064,7 +6265,7 @@ function SidebarContent({ className, ...props }) {
|
|
|
6064
6265
|
);
|
|
6065
6266
|
}
|
|
6066
6267
|
function SidebarGroup({ className, ...props }) {
|
|
6067
|
-
return /* @__PURE__ */
|
|
6268
|
+
return /* @__PURE__ */ jsx52(
|
|
6068
6269
|
"div",
|
|
6069
6270
|
{
|
|
6070
6271
|
"data-slot": "sidebar-group",
|
|
@@ -6080,7 +6281,7 @@ function SidebarGroupLabel({
|
|
|
6080
6281
|
...props
|
|
6081
6282
|
}) {
|
|
6082
6283
|
const Comp = asChild ? Slot6 : "div";
|
|
6083
|
-
return /* @__PURE__ */
|
|
6284
|
+
return /* @__PURE__ */ jsx52(
|
|
6084
6285
|
Comp,
|
|
6085
6286
|
{
|
|
6086
6287
|
"data-slot": "sidebar-group-label",
|
|
@@ -6100,7 +6301,7 @@ function SidebarGroupAction({
|
|
|
6100
6301
|
...props
|
|
6101
6302
|
}) {
|
|
6102
6303
|
const Comp = asChild ? Slot6 : "button";
|
|
6103
|
-
return /* @__PURE__ */
|
|
6304
|
+
return /* @__PURE__ */ jsx52(
|
|
6104
6305
|
Comp,
|
|
6105
6306
|
{
|
|
6106
6307
|
"data-slot": "sidebar-group-action",
|
|
@@ -6120,7 +6321,7 @@ function SidebarGroupContent({
|
|
|
6120
6321
|
className,
|
|
6121
6322
|
...props
|
|
6122
6323
|
}) {
|
|
6123
|
-
return /* @__PURE__ */
|
|
6324
|
+
return /* @__PURE__ */ jsx52(
|
|
6124
6325
|
"div",
|
|
6125
6326
|
{
|
|
6126
6327
|
"data-slot": "sidebar-group-content",
|
|
@@ -6131,7 +6332,7 @@ function SidebarGroupContent({
|
|
|
6131
6332
|
);
|
|
6132
6333
|
}
|
|
6133
6334
|
function SidebarMenu({ className, ...props }) {
|
|
6134
|
-
return /* @__PURE__ */
|
|
6335
|
+
return /* @__PURE__ */ jsx52(
|
|
6135
6336
|
"ul",
|
|
6136
6337
|
{
|
|
6137
6338
|
"data-slot": "sidebar-menu",
|
|
@@ -6142,7 +6343,7 @@ function SidebarMenu({ className, ...props }) {
|
|
|
6142
6343
|
);
|
|
6143
6344
|
}
|
|
6144
6345
|
function SidebarMenuItem({ className, ...props }) {
|
|
6145
|
-
return /* @__PURE__ */
|
|
6346
|
+
return /* @__PURE__ */ jsx52(
|
|
6146
6347
|
"li",
|
|
6147
6348
|
{
|
|
6148
6349
|
"data-slot": "sidebar-menu-item",
|
|
@@ -6152,7 +6353,7 @@ function SidebarMenuItem({ className, ...props }) {
|
|
|
6152
6353
|
}
|
|
6153
6354
|
);
|
|
6154
6355
|
}
|
|
6155
|
-
var sidebarMenuButtonVariants =
|
|
6356
|
+
var sidebarMenuButtonVariants = cva13(
|
|
6156
6357
|
"peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",
|
|
6157
6358
|
{
|
|
6158
6359
|
variants: {
|
|
@@ -6183,7 +6384,7 @@ function SidebarMenuButton({
|
|
|
6183
6384
|
}) {
|
|
6184
6385
|
const Comp = asChild ? Slot6 : "button";
|
|
6185
6386
|
const { isMobile, state } = useSidebar();
|
|
6186
|
-
const button = /* @__PURE__ */
|
|
6387
|
+
const button = /* @__PURE__ */ jsx52(
|
|
6187
6388
|
Comp,
|
|
6188
6389
|
{
|
|
6189
6390
|
"data-slot": "sidebar-menu-button",
|
|
@@ -6202,9 +6403,9 @@ function SidebarMenuButton({
|
|
|
6202
6403
|
children: tooltip
|
|
6203
6404
|
};
|
|
6204
6405
|
}
|
|
6205
|
-
return /* @__PURE__ */
|
|
6206
|
-
/* @__PURE__ */
|
|
6207
|
-
/* @__PURE__ */
|
|
6406
|
+
return /* @__PURE__ */ jsxs31(Tooltip2, { children: [
|
|
6407
|
+
/* @__PURE__ */ jsx52(TooltipTrigger, { asChild: true, children: button }),
|
|
6408
|
+
/* @__PURE__ */ jsx52(
|
|
6208
6409
|
TooltipContent,
|
|
6209
6410
|
{
|
|
6210
6411
|
side: "right",
|
|
@@ -6222,7 +6423,7 @@ function SidebarMenuAction({
|
|
|
6222
6423
|
...props
|
|
6223
6424
|
}) {
|
|
6224
6425
|
const Comp = asChild ? Slot6 : "button";
|
|
6225
|
-
return /* @__PURE__ */
|
|
6426
|
+
return /* @__PURE__ */ jsx52(
|
|
6226
6427
|
Comp,
|
|
6227
6428
|
{
|
|
6228
6429
|
"data-slot": "sidebar-menu-action",
|
|
@@ -6246,7 +6447,7 @@ function SidebarMenuBadge({
|
|
|
6246
6447
|
className,
|
|
6247
6448
|
...props
|
|
6248
6449
|
}) {
|
|
6249
|
-
return /* @__PURE__ */
|
|
6450
|
+
return /* @__PURE__ */ jsx52(
|
|
6250
6451
|
"div",
|
|
6251
6452
|
{
|
|
6252
6453
|
"data-slot": "sidebar-menu-badge",
|
|
@@ -6269,10 +6470,10 @@ function SidebarMenuSkeleton({
|
|
|
6269
6470
|
showIcon = false,
|
|
6270
6471
|
...props
|
|
6271
6472
|
}) {
|
|
6272
|
-
const width =
|
|
6473
|
+
const width = React50.useMemo(() => {
|
|
6273
6474
|
return `${Math.floor(Math.random() * 40) + 50}%`;
|
|
6274
6475
|
}, []);
|
|
6275
|
-
return /* @__PURE__ */
|
|
6476
|
+
return /* @__PURE__ */ jsxs31(
|
|
6276
6477
|
"div",
|
|
6277
6478
|
{
|
|
6278
6479
|
"data-slot": "sidebar-menu-skeleton",
|
|
@@ -6280,14 +6481,14 @@ function SidebarMenuSkeleton({
|
|
|
6280
6481
|
className: cn("flex h-8 items-center gap-2 rounded-md px-2", className),
|
|
6281
6482
|
...props,
|
|
6282
6483
|
children: [
|
|
6283
|
-
showIcon && /* @__PURE__ */
|
|
6484
|
+
showIcon && /* @__PURE__ */ jsx52(
|
|
6284
6485
|
Skeleton,
|
|
6285
6486
|
{
|
|
6286
6487
|
className: "size-4 rounded-md",
|
|
6287
6488
|
"data-sidebar": "menu-skeleton-icon"
|
|
6288
6489
|
}
|
|
6289
6490
|
),
|
|
6290
|
-
/* @__PURE__ */
|
|
6491
|
+
/* @__PURE__ */ jsx52(
|
|
6291
6492
|
Skeleton,
|
|
6292
6493
|
{
|
|
6293
6494
|
className: "h-4 max-w-(--skeleton-width) flex-1",
|
|
@@ -6302,7 +6503,7 @@ function SidebarMenuSkeleton({
|
|
|
6302
6503
|
);
|
|
6303
6504
|
}
|
|
6304
6505
|
function SidebarMenuSub({ className, ...props }) {
|
|
6305
|
-
return /* @__PURE__ */
|
|
6506
|
+
return /* @__PURE__ */ jsx52(
|
|
6306
6507
|
"ul",
|
|
6307
6508
|
{
|
|
6308
6509
|
"data-slot": "sidebar-menu-sub",
|
|
@@ -6320,7 +6521,7 @@ function SidebarMenuSubItem({
|
|
|
6320
6521
|
className,
|
|
6321
6522
|
...props
|
|
6322
6523
|
}) {
|
|
6323
|
-
return /* @__PURE__ */
|
|
6524
|
+
return /* @__PURE__ */ jsx52(
|
|
6324
6525
|
"li",
|
|
6325
6526
|
{
|
|
6326
6527
|
"data-slot": "sidebar-menu-sub-item",
|
|
@@ -6338,7 +6539,7 @@ function SidebarMenuSubButton({
|
|
|
6338
6539
|
...props
|
|
6339
6540
|
}) {
|
|
6340
6541
|
const Comp = asChild ? Slot6 : "a";
|
|
6341
|
-
return /* @__PURE__ */
|
|
6542
|
+
return /* @__PURE__ */ jsx52(
|
|
6342
6543
|
Comp,
|
|
6343
6544
|
{
|
|
6344
6545
|
"data-slot": "sidebar-menu-sub-button",
|
|
@@ -6359,9 +6560,9 @@ function SidebarMenuSubButton({
|
|
|
6359
6560
|
}
|
|
6360
6561
|
|
|
6361
6562
|
// src/components/ui/slider.tsx
|
|
6362
|
-
import * as
|
|
6563
|
+
import * as React51 from "react";
|
|
6363
6564
|
import * as SliderPrimitive from "@radix-ui/react-slider";
|
|
6364
|
-
import { jsx as
|
|
6565
|
+
import { jsx as jsx53, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
6365
6566
|
function Slider({
|
|
6366
6567
|
className,
|
|
6367
6568
|
defaultValue,
|
|
@@ -6370,11 +6571,11 @@ function Slider({
|
|
|
6370
6571
|
max = 100,
|
|
6371
6572
|
...props
|
|
6372
6573
|
}) {
|
|
6373
|
-
const _values =
|
|
6574
|
+
const _values = React51.useMemo(
|
|
6374
6575
|
() => Array.isArray(value) ? value : Array.isArray(defaultValue) ? defaultValue : [min, max],
|
|
6375
6576
|
[value, defaultValue, min, max]
|
|
6376
6577
|
);
|
|
6377
|
-
return /* @__PURE__ */
|
|
6578
|
+
return /* @__PURE__ */ jsxs32(
|
|
6378
6579
|
SliderPrimitive.Root,
|
|
6379
6580
|
{
|
|
6380
6581
|
"data-slot": "slider",
|
|
@@ -6388,14 +6589,14 @@ function Slider({
|
|
|
6388
6589
|
),
|
|
6389
6590
|
...props,
|
|
6390
6591
|
children: [
|
|
6391
|
-
/* @__PURE__ */
|
|
6592
|
+
/* @__PURE__ */ jsx53(
|
|
6392
6593
|
SliderPrimitive.Track,
|
|
6393
6594
|
{
|
|
6394
6595
|
"data-slot": "slider-track",
|
|
6395
6596
|
className: cn(
|
|
6396
6597
|
"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"
|
|
6397
6598
|
),
|
|
6398
|
-
children: /* @__PURE__ */
|
|
6599
|
+
children: /* @__PURE__ */ jsx53(
|
|
6399
6600
|
SliderPrimitive.Range,
|
|
6400
6601
|
{
|
|
6401
6602
|
"data-slot": "slider-range",
|
|
@@ -6406,7 +6607,7 @@ function Slider({
|
|
|
6406
6607
|
)
|
|
6407
6608
|
}
|
|
6408
6609
|
),
|
|
6409
|
-
Array.from({ length: _values.length }, (_, index) => /* @__PURE__ */
|
|
6610
|
+
Array.from({ length: _values.length }, (_, index) => /* @__PURE__ */ jsx53(
|
|
6410
6611
|
SliderPrimitive.Thumb,
|
|
6411
6612
|
{
|
|
6412
6613
|
"data-slot": "slider-thumb",
|
|
@@ -6423,7 +6624,7 @@ function Slider({
|
|
|
6423
6624
|
import "react";
|
|
6424
6625
|
|
|
6425
6626
|
// src/components/ui/useMediaQuery.ts
|
|
6426
|
-
import { useEffect as useEffect8, useState as
|
|
6627
|
+
import { useEffect as useEffect8, useState as useState11 } from "react";
|
|
6427
6628
|
function useMediaQuery(query) {
|
|
6428
6629
|
const getMatches = (query2) => {
|
|
6429
6630
|
if (typeof window !== "undefined") {
|
|
@@ -6431,7 +6632,7 @@ function useMediaQuery(query) {
|
|
|
6431
6632
|
}
|
|
6432
6633
|
return false;
|
|
6433
6634
|
};
|
|
6434
|
-
const [matches, setMatches] =
|
|
6635
|
+
const [matches, setMatches] = useState11(getMatches(query));
|
|
6435
6636
|
function handleChange() {
|
|
6436
6637
|
setMatches(getMatches(query));
|
|
6437
6638
|
}
|
|
@@ -6455,10 +6656,10 @@ function useMediaQuery(query) {
|
|
|
6455
6656
|
}
|
|
6456
6657
|
|
|
6457
6658
|
// src/components/ui/smart-dialog-drawer.tsx
|
|
6458
|
-
import { Fragment as Fragment3, jsx as
|
|
6659
|
+
import { Fragment as Fragment3, jsx as jsx54 } from "react/jsx-runtime";
|
|
6459
6660
|
var SmartDialog = ({ children, ...props }) => {
|
|
6460
6661
|
const isMobile = useMediaQuery("(max-width: 600px)");
|
|
6461
|
-
return isMobile ? /* @__PURE__ */
|
|
6662
|
+
return isMobile ? /* @__PURE__ */ jsx54(Drawer, { ...props, children }) : /* @__PURE__ */ jsx54(Dialog, { ...props, children });
|
|
6462
6663
|
};
|
|
6463
6664
|
var SmartDialogContent = ({
|
|
6464
6665
|
children,
|
|
@@ -6468,14 +6669,14 @@ var SmartDialogContent = ({
|
|
|
6468
6669
|
...props
|
|
6469
6670
|
}) => {
|
|
6470
6671
|
const isMobile = useMediaQuery("(max-width: 600px)");
|
|
6471
|
-
return isMobile ? /* @__PURE__ */
|
|
6672
|
+
return isMobile ? /* @__PURE__ */ jsx54(
|
|
6472
6673
|
DrawerContent,
|
|
6473
6674
|
{
|
|
6474
6675
|
...props,
|
|
6475
6676
|
withCloseButton: withCloseButton ?? showCloseButton ?? true,
|
|
6476
6677
|
children
|
|
6477
6678
|
}
|
|
6478
|
-
) : /* @__PURE__ */
|
|
6679
|
+
) : /* @__PURE__ */ jsx54(
|
|
6479
6680
|
DialogContent,
|
|
6480
6681
|
{
|
|
6481
6682
|
...props,
|
|
@@ -6490,47 +6691,63 @@ var SmartDialogDescription = ({
|
|
|
6490
6691
|
...props
|
|
6491
6692
|
}) => {
|
|
6492
6693
|
const isMobile = useMediaQuery("(max-width: 600px)");
|
|
6493
|
-
return isMobile ? /* @__PURE__ */
|
|
6694
|
+
return isMobile ? /* @__PURE__ */ jsx54(DrawerDescription, { ...props, children }) : /* @__PURE__ */ jsx54(DialogDescription, { ...props, children });
|
|
6494
6695
|
};
|
|
6495
6696
|
var SmartDialogHeader = ({ children, ...props }) => {
|
|
6496
6697
|
const isMobile = useMediaQuery("(max-width: 600px)");
|
|
6497
|
-
return isMobile ? /* @__PURE__ */
|
|
6698
|
+
return isMobile ? /* @__PURE__ */ jsx54(DrawerHeader, { ...props, children }) : /* @__PURE__ */ jsx54(DialogHeader, { ...props, children });
|
|
6498
6699
|
};
|
|
6499
6700
|
var SmartDialogTitle = ({ children, ...props }) => {
|
|
6500
6701
|
const isMobile = useMediaQuery("(max-width: 600px)");
|
|
6501
|
-
return isMobile ? /* @__PURE__ */
|
|
6702
|
+
return isMobile ? /* @__PURE__ */ jsx54(DrawerTitle, { ...props, children }) : /* @__PURE__ */ jsx54(DialogTitle, { ...props, children });
|
|
6502
6703
|
};
|
|
6503
6704
|
var SmartDialogTrigger = ({
|
|
6504
6705
|
children,
|
|
6505
6706
|
...props
|
|
6506
6707
|
}) => {
|
|
6507
6708
|
const isMobile = useMediaQuery("(max-width: 600px)");
|
|
6508
|
-
return isMobile ? /* @__PURE__ */
|
|
6709
|
+
return isMobile ? /* @__PURE__ */ jsx54(DrawerTrigger, { ...props, children }) : /* @__PURE__ */ jsx54(DialogTrigger, { ...props, children });
|
|
6509
6710
|
};
|
|
6510
6711
|
var SmartDialogFooter = ({ children, ...props }) => {
|
|
6511
6712
|
const isMobile = useMediaQuery("(max-width: 600px)");
|
|
6512
|
-
return isMobile ? /* @__PURE__ */
|
|
6713
|
+
return isMobile ? /* @__PURE__ */ jsx54(DrawerFooter, { ...props, children }) : /* @__PURE__ */ jsx54(DialogFooter, { ...props, children });
|
|
6513
6714
|
};
|
|
6514
6715
|
var SmartDialogClose = ({ children, ...props }) => {
|
|
6515
6716
|
const isMobile = useMediaQuery("(max-width: 600px)");
|
|
6516
|
-
return isMobile ? /* @__PURE__ */
|
|
6717
|
+
return isMobile ? /* @__PURE__ */ jsx54(Fragment3, { children: /* @__PURE__ */ jsx54(DrawerClose, { ...props, children }) }) : /* @__PURE__ */ jsx54(DialogClose, { ...props, children });
|
|
6517
6718
|
};
|
|
6518
6719
|
|
|
6519
6720
|
// src/components/ui/sonner.tsx
|
|
6721
|
+
import { CircleCheck, Info, TriangleAlert } from "lucide-react";
|
|
6520
6722
|
import { useTheme } from "next-themes";
|
|
6521
|
-
import { Toaster as Sonner } from "sonner";
|
|
6522
|
-
import { jsx as
|
|
6723
|
+
import { Toaster as Sonner, toast } from "sonner";
|
|
6724
|
+
import { jsx as jsx55 } from "react/jsx-runtime";
|
|
6725
|
+
var iconWrapper = (icon) => /* @__PURE__ */ jsx55("span", { className: "flex items-center justify-center shrink-0 size-5 [&_svg]:size-5", children: icon });
|
|
6523
6726
|
var Toaster = ({ ...props }) => {
|
|
6524
6727
|
const { theme = "system" } = useTheme();
|
|
6525
|
-
return /* @__PURE__ */
|
|
6728
|
+
return /* @__PURE__ */ jsx55(
|
|
6526
6729
|
Sonner,
|
|
6527
6730
|
{
|
|
6528
6731
|
theme,
|
|
6529
6732
|
className: "toaster group",
|
|
6733
|
+
icons: {
|
|
6734
|
+
info: iconWrapper(/* @__PURE__ */ jsx55(Info, {})),
|
|
6735
|
+
error: iconWrapper(/* @__PURE__ */ jsx55(TriangleAlert, {})),
|
|
6736
|
+
success: iconWrapper(/* @__PURE__ */ jsx55(CircleCheck, {}))
|
|
6737
|
+
},
|
|
6738
|
+
toastOptions: {
|
|
6739
|
+
unstyled: true,
|
|
6740
|
+
classNames: {
|
|
6741
|
+
toast: "flex items-start gap-3 w-full rounded-[12px] border px-3 py-4 text-sm leading-5",
|
|
6742
|
+
title: "font-semibold text-sm leading-5 text-vibrant-text-heading",
|
|
6743
|
+
description: "font-normal text-sm leading-5 text-vibrant-text-body",
|
|
6744
|
+
info: "bg-alert-bg-informative border-gray-stroke-light [&_svg]:text-[#52525c] dark:[&_svg]:text-[#a1a1aa]",
|
|
6745
|
+
error: "bg-alert-bg-error border-error-stroke-light [&_svg]:text-[#ff6467] dark:[&_svg]:text-[#ff8486]",
|
|
6746
|
+
success: "bg-success-surface-subtle border-success-stroke-light [&_svg]:text-[#00a63e] dark:[&_svg]:text-[#34d399]"
|
|
6747
|
+
}
|
|
6748
|
+
},
|
|
6530
6749
|
style: {
|
|
6531
|
-
"--
|
|
6532
|
-
"--normal-text": "var(--popover-foreground)",
|
|
6533
|
-
"--normal-border": "var(--border)"
|
|
6750
|
+
"--width": "436px"
|
|
6534
6751
|
},
|
|
6535
6752
|
...props
|
|
6536
6753
|
}
|
|
@@ -6540,12 +6757,12 @@ var Toaster = ({ ...props }) => {
|
|
|
6540
6757
|
// src/components/ui/switch.tsx
|
|
6541
6758
|
import * as SwitchPrimitive from "@radix-ui/react-switch";
|
|
6542
6759
|
import "react";
|
|
6543
|
-
import { jsx as
|
|
6760
|
+
import { jsx as jsx56 } from "react/jsx-runtime";
|
|
6544
6761
|
function Switch({
|
|
6545
6762
|
className,
|
|
6546
6763
|
...props
|
|
6547
6764
|
}) {
|
|
6548
|
-
return /* @__PURE__ */
|
|
6765
|
+
return /* @__PURE__ */ jsx56(
|
|
6549
6766
|
SwitchPrimitive.Root,
|
|
6550
6767
|
{
|
|
6551
6768
|
"data-slot": "switch",
|
|
@@ -6554,7 +6771,7 @@ function Switch({
|
|
|
6554
6771
|
className
|
|
6555
6772
|
),
|
|
6556
6773
|
...props,
|
|
6557
|
-
children: /* @__PURE__ */
|
|
6774
|
+
children: /* @__PURE__ */ jsx56(
|
|
6558
6775
|
SwitchPrimitive.Thumb,
|
|
6559
6776
|
{
|
|
6560
6777
|
"data-slot": "switch-thumb",
|
|
@@ -6569,14 +6786,14 @@ function Switch({
|
|
|
6569
6786
|
|
|
6570
6787
|
// src/components/ui/table.tsx
|
|
6571
6788
|
import "react";
|
|
6572
|
-
import { jsx as
|
|
6789
|
+
import { jsx as jsx57 } from "react/jsx-runtime";
|
|
6573
6790
|
function Table({ className, ...props }) {
|
|
6574
|
-
return /* @__PURE__ */
|
|
6791
|
+
return /* @__PURE__ */ jsx57(
|
|
6575
6792
|
"div",
|
|
6576
6793
|
{
|
|
6577
6794
|
"data-slot": "table-container",
|
|
6578
6795
|
className: "relative w-full overflow-x-auto",
|
|
6579
|
-
children: /* @__PURE__ */
|
|
6796
|
+
children: /* @__PURE__ */ jsx57(
|
|
6580
6797
|
"table",
|
|
6581
6798
|
{
|
|
6582
6799
|
"data-slot": "table",
|
|
@@ -6588,7 +6805,7 @@ function Table({ className, ...props }) {
|
|
|
6588
6805
|
);
|
|
6589
6806
|
}
|
|
6590
6807
|
function TableHeader({ className, ...props }) {
|
|
6591
|
-
return /* @__PURE__ */
|
|
6808
|
+
return /* @__PURE__ */ jsx57(
|
|
6592
6809
|
"thead",
|
|
6593
6810
|
{
|
|
6594
6811
|
"data-slot": "table-header",
|
|
@@ -6598,7 +6815,7 @@ function TableHeader({ className, ...props }) {
|
|
|
6598
6815
|
);
|
|
6599
6816
|
}
|
|
6600
6817
|
function TableBody({ className, ...props }) {
|
|
6601
|
-
return /* @__PURE__ */
|
|
6818
|
+
return /* @__PURE__ */ jsx57(
|
|
6602
6819
|
"tbody",
|
|
6603
6820
|
{
|
|
6604
6821
|
"data-slot": "table-body",
|
|
@@ -6608,7 +6825,7 @@ function TableBody({ className, ...props }) {
|
|
|
6608
6825
|
);
|
|
6609
6826
|
}
|
|
6610
6827
|
function TableFooter({ className, ...props }) {
|
|
6611
|
-
return /* @__PURE__ */
|
|
6828
|
+
return /* @__PURE__ */ jsx57(
|
|
6612
6829
|
"tfoot",
|
|
6613
6830
|
{
|
|
6614
6831
|
"data-slot": "table-footer",
|
|
@@ -6621,7 +6838,7 @@ function TableFooter({ className, ...props }) {
|
|
|
6621
6838
|
);
|
|
6622
6839
|
}
|
|
6623
6840
|
function TableRow({ className, ...props }) {
|
|
6624
|
-
return /* @__PURE__ */
|
|
6841
|
+
return /* @__PURE__ */ jsx57(
|
|
6625
6842
|
"tr",
|
|
6626
6843
|
{
|
|
6627
6844
|
"data-slot": "table-row",
|
|
@@ -6634,7 +6851,7 @@ function TableRow({ className, ...props }) {
|
|
|
6634
6851
|
);
|
|
6635
6852
|
}
|
|
6636
6853
|
function TableHead({ className, ...props }) {
|
|
6637
|
-
return /* @__PURE__ */
|
|
6854
|
+
return /* @__PURE__ */ jsx57(
|
|
6638
6855
|
"th",
|
|
6639
6856
|
{
|
|
6640
6857
|
"data-slot": "table-head",
|
|
@@ -6647,7 +6864,7 @@ function TableHead({ className, ...props }) {
|
|
|
6647
6864
|
);
|
|
6648
6865
|
}
|
|
6649
6866
|
function TableCell({ className, ...props }) {
|
|
6650
|
-
return /* @__PURE__ */
|
|
6867
|
+
return /* @__PURE__ */ jsx57(
|
|
6651
6868
|
"td",
|
|
6652
6869
|
{
|
|
6653
6870
|
"data-slot": "table-cell",
|
|
@@ -6663,7 +6880,7 @@ function TableCaption({
|
|
|
6663
6880
|
className,
|
|
6664
6881
|
...props
|
|
6665
6882
|
}) {
|
|
6666
|
-
return /* @__PURE__ */
|
|
6883
|
+
return /* @__PURE__ */ jsx57(
|
|
6667
6884
|
"caption",
|
|
6668
6885
|
{
|
|
6669
6886
|
"data-slot": "table-caption",
|
|
@@ -6675,19 +6892,19 @@ function TableCaption({
|
|
|
6675
6892
|
|
|
6676
6893
|
// src/components/ui/tabs.tsx
|
|
6677
6894
|
import * as TabsPrimitive from "@radix-ui/react-tabs";
|
|
6678
|
-
import { cva as
|
|
6679
|
-
import * as
|
|
6680
|
-
import { jsx as
|
|
6681
|
-
var TabsContext =
|
|
6895
|
+
import { cva as cva14 } from "class-variance-authority";
|
|
6896
|
+
import * as React55 from "react";
|
|
6897
|
+
import { jsx as jsx58, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
6898
|
+
var TabsContext = React55.createContext({
|
|
6682
6899
|
orientation: "horizontal"
|
|
6683
6900
|
});
|
|
6684
6901
|
function useTabIndicator(listRef, orientation) {
|
|
6685
|
-
const [style, setStyle] =
|
|
6902
|
+
const [style, setStyle] = React55.useState({
|
|
6686
6903
|
position: "absolute",
|
|
6687
6904
|
opacity: 0
|
|
6688
6905
|
});
|
|
6689
|
-
const isFirstMeasurement =
|
|
6690
|
-
const measure =
|
|
6906
|
+
const isFirstMeasurement = React55.useRef(true);
|
|
6907
|
+
const measure = React55.useCallback(() => {
|
|
6691
6908
|
const list = listRef.current;
|
|
6692
6909
|
if (!list) return;
|
|
6693
6910
|
requestAnimationFrame(() => {
|
|
@@ -6726,7 +6943,7 @@ function useTabIndicator(listRef, orientation) {
|
|
|
6726
6943
|
}
|
|
6727
6944
|
});
|
|
6728
6945
|
}, [listRef, orientation]);
|
|
6729
|
-
|
|
6946
|
+
React55.useEffect(() => {
|
|
6730
6947
|
const list = listRef.current;
|
|
6731
6948
|
if (!list) return;
|
|
6732
6949
|
measure();
|
|
@@ -6755,11 +6972,11 @@ function Tabs({
|
|
|
6755
6972
|
orientation = "horizontal",
|
|
6756
6973
|
...props
|
|
6757
6974
|
}) {
|
|
6758
|
-
const ctx =
|
|
6975
|
+
const ctx = React55.useMemo(
|
|
6759
6976
|
() => ({ orientation: orientation ?? "horizontal" }),
|
|
6760
6977
|
[orientation]
|
|
6761
6978
|
);
|
|
6762
|
-
return /* @__PURE__ */
|
|
6979
|
+
return /* @__PURE__ */ jsx58(TabsContext.Provider, { value: ctx, children: /* @__PURE__ */ jsx58(
|
|
6763
6980
|
TabsPrimitive.Root,
|
|
6764
6981
|
{
|
|
6765
6982
|
"data-slot": "tabs",
|
|
@@ -6776,10 +6993,10 @@ function TabsList({
|
|
|
6776
6993
|
className,
|
|
6777
6994
|
...props
|
|
6778
6995
|
}) {
|
|
6779
|
-
const listRef =
|
|
6780
|
-
const { orientation } =
|
|
6996
|
+
const listRef = React55.useRef(null);
|
|
6997
|
+
const { orientation } = React55.useContext(TabsContext);
|
|
6781
6998
|
const { style: indicatorStyle } = useTabIndicator(listRef, orientation);
|
|
6782
|
-
return /* @__PURE__ */
|
|
6999
|
+
return /* @__PURE__ */ jsxs33(
|
|
6783
7000
|
TabsPrimitive.List,
|
|
6784
7001
|
{
|
|
6785
7002
|
ref: listRef,
|
|
@@ -6792,12 +7009,12 @@ function TabsList({
|
|
|
6792
7009
|
...props,
|
|
6793
7010
|
children: [
|
|
6794
7011
|
props.children,
|
|
6795
|
-
/* @__PURE__ */
|
|
7012
|
+
/* @__PURE__ */ jsx58("span", { "data-slot": "tabs-indicator", style: indicatorStyle })
|
|
6796
7013
|
]
|
|
6797
7014
|
}
|
|
6798
7015
|
);
|
|
6799
7016
|
}
|
|
6800
|
-
var tabsTriggerVariants =
|
|
7017
|
+
var tabsTriggerVariants = cva14(
|
|
6801
7018
|
"cursor-pointer inline-flex shrink-0 items-center justify-center font-sans font-medium whitespace-nowrap transition-[color,box-shadow] text-vibrant-text-details data-[state=active]:font-semibold data-[state=active]:text-vibrant-text-heading disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=size-])]:size-4",
|
|
6802
7019
|
{
|
|
6803
7020
|
variants: {
|
|
@@ -6826,14 +7043,14 @@ function TabsTrigger({
|
|
|
6826
7043
|
children,
|
|
6827
7044
|
...props
|
|
6828
7045
|
}) {
|
|
6829
|
-
const { orientation } =
|
|
6830
|
-
return /* @__PURE__ */
|
|
7046
|
+
const { orientation } = React55.useContext(TabsContext);
|
|
7047
|
+
return /* @__PURE__ */ jsx58(
|
|
6831
7048
|
TabsPrimitive.Trigger,
|
|
6832
7049
|
{
|
|
6833
7050
|
"data-slot": "tabs-trigger",
|
|
6834
7051
|
className: cn(tabsTriggerVariants({ size, orientation }), className),
|
|
6835
7052
|
...props,
|
|
6836
|
-
children: /* @__PURE__ */
|
|
7053
|
+
children: /* @__PURE__ */ jsx58(
|
|
6837
7054
|
"span",
|
|
6838
7055
|
{
|
|
6839
7056
|
className: cn(
|
|
@@ -6850,7 +7067,7 @@ function TabsContent({
|
|
|
6850
7067
|
className,
|
|
6851
7068
|
...props
|
|
6852
7069
|
}) {
|
|
6853
|
-
return /* @__PURE__ */
|
|
7070
|
+
return /* @__PURE__ */ jsx58(
|
|
6854
7071
|
TabsPrimitive.Content,
|
|
6855
7072
|
{
|
|
6856
7073
|
"data-slot": "tabs-content",
|
|
@@ -6864,9 +7081,9 @@ function TabsContent({
|
|
|
6864
7081
|
import {
|
|
6865
7082
|
ThemeProvider as NextThemesProvider
|
|
6866
7083
|
} from "next-themes";
|
|
6867
|
-
import { jsx as
|
|
7084
|
+
import { jsx as jsx59 } from "react/jsx-runtime";
|
|
6868
7085
|
function ThemeProvider({ children, ...props }) {
|
|
6869
|
-
return /* @__PURE__ */
|
|
7086
|
+
return /* @__PURE__ */ jsx59(
|
|
6870
7087
|
NextThemesProvider,
|
|
6871
7088
|
{
|
|
6872
7089
|
attribute: "class",
|
|
@@ -6883,29 +7100,29 @@ function ThemeProvider({ children, ...props }) {
|
|
|
6883
7100
|
import { Monitor, Moon, Sun } from "lucide-react";
|
|
6884
7101
|
import { useTheme as useTheme2 } from "next-themes";
|
|
6885
7102
|
import "react";
|
|
6886
|
-
import { jsx as
|
|
7103
|
+
import { jsx as jsx60, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
6887
7104
|
function ThemeToggle({
|
|
6888
7105
|
className,
|
|
6889
7106
|
...props
|
|
6890
7107
|
}) {
|
|
6891
7108
|
const { setTheme } = useTheme2();
|
|
6892
|
-
return /* @__PURE__ */
|
|
6893
|
-
/* @__PURE__ */
|
|
6894
|
-
/* @__PURE__ */
|
|
6895
|
-
/* @__PURE__ */
|
|
6896
|
-
/* @__PURE__ */
|
|
7109
|
+
return /* @__PURE__ */ jsxs34(DropdownMenu, { children: [
|
|
7110
|
+
/* @__PURE__ */ jsx60(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxs34(Button, { variant: "outline", size: "icon", className, ...props, children: [
|
|
7111
|
+
/* @__PURE__ */ jsx60(Sun, { className: "size-4 rotate-0 scale-100 transition-all dark:-rotate-90 dark:scale-0" }),
|
|
7112
|
+
/* @__PURE__ */ jsx60(Moon, { className: "absolute size-4 rotate-90 scale-0 transition-all dark:rotate-0 dark:scale-100" }),
|
|
7113
|
+
/* @__PURE__ */ jsx60("span", { className: "sr-only", children: "Toggle theme" })
|
|
6897
7114
|
] }) }),
|
|
6898
|
-
/* @__PURE__ */
|
|
6899
|
-
/* @__PURE__ */
|
|
6900
|
-
/* @__PURE__ */
|
|
7115
|
+
/* @__PURE__ */ jsxs34(DropdownMenuContent, { align: "end", children: [
|
|
7116
|
+
/* @__PURE__ */ jsxs34(DropdownMenuItem, { onClick: () => setTheme("light"), children: [
|
|
7117
|
+
/* @__PURE__ */ jsx60(Sun, { className: "size-4" }),
|
|
6901
7118
|
"Light"
|
|
6902
7119
|
] }),
|
|
6903
|
-
/* @__PURE__ */
|
|
6904
|
-
/* @__PURE__ */
|
|
7120
|
+
/* @__PURE__ */ jsxs34(DropdownMenuItem, { onClick: () => setTheme("dark"), children: [
|
|
7121
|
+
/* @__PURE__ */ jsx60(Moon, { className: "size-4" }),
|
|
6905
7122
|
"Dark"
|
|
6906
7123
|
] }),
|
|
6907
|
-
/* @__PURE__ */
|
|
6908
|
-
/* @__PURE__ */
|
|
7124
|
+
/* @__PURE__ */ jsxs34(DropdownMenuItem, { onClick: () => setTheme("system"), children: [
|
|
7125
|
+
/* @__PURE__ */ jsx60(Monitor, { className: "size-4" }),
|
|
6909
7126
|
"System"
|
|
6910
7127
|
] })
|
|
6911
7128
|
] })
|
|
@@ -6915,8 +7132,8 @@ function ThemeToggle({
|
|
|
6915
7132
|
// src/components/ui/time-input.tsx
|
|
6916
7133
|
import "class-variance-authority";
|
|
6917
7134
|
import { Clock } from "lucide-react";
|
|
6918
|
-
import * as
|
|
6919
|
-
import { jsx as
|
|
7135
|
+
import * as React57 from "react";
|
|
7136
|
+
import { jsx as jsx61, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
6920
7137
|
var TIME_FORMAT_PLACEHOLDER = {
|
|
6921
7138
|
"12h": "hh:mm AM/PM",
|
|
6922
7139
|
"24h": "HH:mm",
|
|
@@ -6969,16 +7186,16 @@ function TimeInput({
|
|
|
6969
7186
|
formatDisplay
|
|
6970
7187
|
}) {
|
|
6971
7188
|
const resolvedPlaceholder = placeholder ?? TIME_FORMAT_PLACEHOLDER[timeFormat];
|
|
6972
|
-
const displayValue =
|
|
7189
|
+
const displayValue = React57.useMemo(() => {
|
|
6973
7190
|
if (!time) return "";
|
|
6974
7191
|
if (formatDisplay) return formatDisplay(time);
|
|
6975
7192
|
return formatTime(time, timeFormat);
|
|
6976
7193
|
}, [time, formatDisplay, timeFormat]);
|
|
6977
|
-
const [open, setOpen] =
|
|
6978
|
-
const hoursRef =
|
|
6979
|
-
const minutesRef =
|
|
6980
|
-
const periodRef =
|
|
6981
|
-
const scrollToSelected =
|
|
7194
|
+
const [open, setOpen] = React57.useState(false);
|
|
7195
|
+
const hoursRef = React57.useRef(null);
|
|
7196
|
+
const minutesRef = React57.useRef(null);
|
|
7197
|
+
const periodRef = React57.useRef(null);
|
|
7198
|
+
const scrollToSelected = React57.useCallback(() => {
|
|
6982
7199
|
requestAnimationFrame(() => {
|
|
6983
7200
|
for (const ref of [hoursRef, minutesRef, periodRef]) {
|
|
6984
7201
|
const container = ref.current;
|
|
@@ -6990,7 +7207,7 @@ function TimeInput({
|
|
|
6990
7207
|
}
|
|
6991
7208
|
});
|
|
6992
7209
|
}, []);
|
|
6993
|
-
|
|
7210
|
+
React57.useEffect(() => {
|
|
6994
7211
|
if (open) {
|
|
6995
7212
|
scrollToSelected();
|
|
6996
7213
|
}
|
|
@@ -7026,8 +7243,8 @@ function TimeInput({
|
|
|
7026
7243
|
const selectedH12 = time ? getDisplayHour(time.hours, timeFormat) : null;
|
|
7027
7244
|
const selectedMinute = time?.minutes ?? null;
|
|
7028
7245
|
const selectedPeriod = time ? getPeriod(time.hours) : null;
|
|
7029
|
-
return /* @__PURE__ */
|
|
7030
|
-
/* @__PURE__ */
|
|
7246
|
+
return /* @__PURE__ */ jsx61("div", { className: cn("relative flex gap-2", className), children: /* @__PURE__ */ jsxs35(Popover, { open, onOpenChange: setOpen, children: [
|
|
7247
|
+
/* @__PURE__ */ jsx61(PopoverTrigger, { asChild: true, disabled: inputDisabled, children: /* @__PURE__ */ jsxs35(
|
|
7031
7248
|
Button,
|
|
7032
7249
|
{
|
|
7033
7250
|
type: "button",
|
|
@@ -7042,18 +7259,18 @@ function TimeInput({
|
|
|
7042
7259
|
disabled: inputDisabled,
|
|
7043
7260
|
children: [
|
|
7044
7261
|
displayValue || resolvedPlaceholder,
|
|
7045
|
-
icon !== void 0 ? icon : /* @__PURE__ */
|
|
7262
|
+
icon !== void 0 ? icon : /* @__PURE__ */ jsx61(Clock, { className: "h-4 w-4 text-muted-foreground shrink-0" })
|
|
7046
7263
|
]
|
|
7047
7264
|
}
|
|
7048
7265
|
) }),
|
|
7049
|
-
/* @__PURE__ */
|
|
7266
|
+
/* @__PURE__ */ jsx61(
|
|
7050
7267
|
PopoverContent,
|
|
7051
7268
|
{
|
|
7052
7269
|
className: cn("w-auto p-0", popoverContentClassName),
|
|
7053
7270
|
onOpenAutoFocus: (e) => e.preventDefault(),
|
|
7054
7271
|
...popoverContentProps,
|
|
7055
|
-
children: /* @__PURE__ */
|
|
7056
|
-
/* @__PURE__ */
|
|
7272
|
+
children: /* @__PURE__ */ jsxs35("div", { className: "flex divide-x border border-focus-ring rounded-md", children: [
|
|
7273
|
+
/* @__PURE__ */ jsx61("div", { className: "h-56 w-16 overflow-y-auto overscroll-y-contain [-webkit-overflow-scrolling:touch]", children: /* @__PURE__ */ jsx61("div", { ref: hoursRef, className: "flex flex-col p-1 ", children: hoursList.map((h) => /* @__PURE__ */ jsx61(
|
|
7057
7274
|
Button,
|
|
7058
7275
|
{
|
|
7059
7276
|
variant: "ghost",
|
|
@@ -7068,7 +7285,7 @@ function TimeInput({
|
|
|
7068
7285
|
},
|
|
7069
7286
|
h
|
|
7070
7287
|
)) }) }),
|
|
7071
|
-
/* @__PURE__ */
|
|
7288
|
+
/* @__PURE__ */ jsx61("div", { className: "h-56 w-16 overflow-y-auto overscroll-y-contain [-webkit-overflow-scrolling:touch]", children: /* @__PURE__ */ jsx61(
|
|
7072
7289
|
"div",
|
|
7073
7290
|
{
|
|
7074
7291
|
ref: minutesRef,
|
|
@@ -7076,7 +7293,7 @@ function TimeInput({
|
|
|
7076
7293
|
"flex flex-col p-1",
|
|
7077
7294
|
minutesList.length <= 12 && "h-full justify-center"
|
|
7078
7295
|
),
|
|
7079
|
-
children: minutesList.map((m) => /* @__PURE__ */
|
|
7296
|
+
children: minutesList.map((m) => /* @__PURE__ */ jsx61(
|
|
7080
7297
|
Button,
|
|
7081
7298
|
{
|
|
7082
7299
|
variant: "ghost",
|
|
@@ -7093,7 +7310,7 @@ function TimeInput({
|
|
|
7093
7310
|
))
|
|
7094
7311
|
}
|
|
7095
7312
|
) }),
|
|
7096
|
-
!is24HourFormat(timeFormat) && /* @__PURE__ */
|
|
7313
|
+
!is24HourFormat(timeFormat) && /* @__PURE__ */ jsx61("div", { className: "flex flex-col p-1 justify-center gap-1", children: ["AM", "PM"].map((p) => /* @__PURE__ */ jsx61(
|
|
7097
7314
|
Button,
|
|
7098
7315
|
{
|
|
7099
7316
|
variant: "ghost",
|
|
@@ -7117,9 +7334,9 @@ function TimeInput({
|
|
|
7117
7334
|
// src/components/ui/toggle.tsx
|
|
7118
7335
|
import "react";
|
|
7119
7336
|
import * as TogglePrimitive from "@radix-ui/react-toggle";
|
|
7120
|
-
import { cva as
|
|
7121
|
-
import { jsx as
|
|
7122
|
-
var toggleVariants =
|
|
7337
|
+
import { cva as cva15 } from "class-variance-authority";
|
|
7338
|
+
import { jsx as jsx62 } from "react/jsx-runtime";
|
|
7339
|
+
var toggleVariants = cva15(
|
|
7123
7340
|
"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",
|
|
7124
7341
|
{
|
|
7125
7342
|
variants: {
|
|
@@ -7145,7 +7362,7 @@ function Toggle({
|
|
|
7145
7362
|
size,
|
|
7146
7363
|
...props
|
|
7147
7364
|
}) {
|
|
7148
|
-
return /* @__PURE__ */
|
|
7365
|
+
return /* @__PURE__ */ jsx62(
|
|
7149
7366
|
TogglePrimitive.Root,
|
|
7150
7367
|
{
|
|
7151
7368
|
"data-slot": "toggle",
|
|
@@ -7156,11 +7373,11 @@ function Toggle({
|
|
|
7156
7373
|
}
|
|
7157
7374
|
|
|
7158
7375
|
// src/components/ui/toggle-group.tsx
|
|
7159
|
-
import * as
|
|
7376
|
+
import * as React59 from "react";
|
|
7160
7377
|
import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group";
|
|
7161
7378
|
import "class-variance-authority";
|
|
7162
|
-
import { jsx as
|
|
7163
|
-
var ToggleGroupContext =
|
|
7379
|
+
import { jsx as jsx63 } from "react/jsx-runtime";
|
|
7380
|
+
var ToggleGroupContext = React59.createContext({
|
|
7164
7381
|
size: "default",
|
|
7165
7382
|
variant: "default"
|
|
7166
7383
|
});
|
|
@@ -7171,7 +7388,7 @@ function ToggleGroup({
|
|
|
7171
7388
|
children,
|
|
7172
7389
|
...props
|
|
7173
7390
|
}) {
|
|
7174
|
-
return /* @__PURE__ */
|
|
7391
|
+
return /* @__PURE__ */ jsx63(
|
|
7175
7392
|
ToggleGroupPrimitive.Root,
|
|
7176
7393
|
{
|
|
7177
7394
|
"data-slot": "toggle-group",
|
|
@@ -7182,7 +7399,7 @@ function ToggleGroup({
|
|
|
7182
7399
|
className
|
|
7183
7400
|
),
|
|
7184
7401
|
...props,
|
|
7185
|
-
children: /* @__PURE__ */
|
|
7402
|
+
children: /* @__PURE__ */ jsx63(ToggleGroupContext.Provider, { value: { variant, size }, children })
|
|
7186
7403
|
}
|
|
7187
7404
|
);
|
|
7188
7405
|
}
|
|
@@ -7193,8 +7410,8 @@ function ToggleGroupItem({
|
|
|
7193
7410
|
size,
|
|
7194
7411
|
...props
|
|
7195
7412
|
}) {
|
|
7196
|
-
const context =
|
|
7197
|
-
return /* @__PURE__ */
|
|
7413
|
+
const context = React59.useContext(ToggleGroupContext);
|
|
7414
|
+
return /* @__PURE__ */ jsx63(
|
|
7198
7415
|
ToggleGroupPrimitive.Item,
|
|
7199
7416
|
{
|
|
7200
7417
|
"data-slot": "toggle-group-item",
|
|
@@ -7216,10 +7433,10 @@ function ToggleGroupItem({
|
|
|
7216
7433
|
|
|
7217
7434
|
// src/components/ui/typography.tsx
|
|
7218
7435
|
import { Slot as Slot7 } from "@radix-ui/react-slot";
|
|
7219
|
-
import { cva as
|
|
7436
|
+
import { cva as cva16 } from "class-variance-authority";
|
|
7220
7437
|
import "react";
|
|
7221
|
-
import { jsx as
|
|
7222
|
-
var displayTextVariants =
|
|
7438
|
+
import { jsx as jsx64 } from "react/jsx-runtime";
|
|
7439
|
+
var displayTextVariants = cva16(
|
|
7223
7440
|
"tracking-normal font-normal font-serif italic text-vibrant-text-display",
|
|
7224
7441
|
{
|
|
7225
7442
|
variants: {
|
|
@@ -7241,7 +7458,7 @@ function DisplayHeading({
|
|
|
7241
7458
|
...props
|
|
7242
7459
|
}) {
|
|
7243
7460
|
const Comp = asChild ? Slot7 : "h1";
|
|
7244
|
-
return /* @__PURE__ */
|
|
7461
|
+
return /* @__PURE__ */ jsx64(
|
|
7245
7462
|
Comp,
|
|
7246
7463
|
{
|
|
7247
7464
|
"data-slot": "h1",
|
|
@@ -7250,7 +7467,7 @@ function DisplayHeading({
|
|
|
7250
7467
|
}
|
|
7251
7468
|
);
|
|
7252
7469
|
}
|
|
7253
|
-
var bodyTextVariants =
|
|
7470
|
+
var bodyTextVariants = cva16("font-sans text-vibrant-text-body", {
|
|
7254
7471
|
variants: {
|
|
7255
7472
|
size: {
|
|
7256
7473
|
lg: "text-lg md:text-xl leading-[26px] md:leading-[28px]",
|
|
@@ -7270,7 +7487,7 @@ function Body({
|
|
|
7270
7487
|
...props
|
|
7271
7488
|
}) {
|
|
7272
7489
|
const Comp = asChild ? Slot7 : "p";
|
|
7273
|
-
return /* @__PURE__ */
|
|
7490
|
+
return /* @__PURE__ */ jsx64(
|
|
7274
7491
|
Comp,
|
|
7275
7492
|
{
|
|
7276
7493
|
"data-slot": "p",
|
|
@@ -7285,7 +7502,7 @@ function HeadingXL({
|
|
|
7285
7502
|
...props
|
|
7286
7503
|
}) {
|
|
7287
7504
|
const Comp = asChild ? Slot7 : "h1";
|
|
7288
|
-
return /* @__PURE__ */
|
|
7505
|
+
return /* @__PURE__ */ jsx64(
|
|
7289
7506
|
Comp,
|
|
7290
7507
|
{
|
|
7291
7508
|
"data-slot": "h1",
|
|
@@ -7303,7 +7520,7 @@ function HeadingL({
|
|
|
7303
7520
|
...props
|
|
7304
7521
|
}) {
|
|
7305
7522
|
const Comp = asChild ? Slot7 : "h2";
|
|
7306
|
-
return /* @__PURE__ */
|
|
7523
|
+
return /* @__PURE__ */ jsx64(
|
|
7307
7524
|
Comp,
|
|
7308
7525
|
{
|
|
7309
7526
|
"data-slot": "h2",
|
|
@@ -7321,7 +7538,7 @@ function HeadingM({
|
|
|
7321
7538
|
...props
|
|
7322
7539
|
}) {
|
|
7323
7540
|
const Comp = asChild ? Slot7 : "h3";
|
|
7324
|
-
return /* @__PURE__ */
|
|
7541
|
+
return /* @__PURE__ */ jsx64(
|
|
7325
7542
|
Comp,
|
|
7326
7543
|
{
|
|
7327
7544
|
"data-slot": "h3",
|
|
@@ -7339,7 +7556,7 @@ function HeadingS({
|
|
|
7339
7556
|
...props
|
|
7340
7557
|
}) {
|
|
7341
7558
|
const Comp = asChild ? Slot7 : "h4";
|
|
7342
|
-
return /* @__PURE__ */
|
|
7559
|
+
return /* @__PURE__ */ jsx64(
|
|
7343
7560
|
Comp,
|
|
7344
7561
|
{
|
|
7345
7562
|
"data-slot": "h4",
|
|
@@ -7357,7 +7574,7 @@ function HeadingXS({
|
|
|
7357
7574
|
...props
|
|
7358
7575
|
}) {
|
|
7359
7576
|
const Comp = asChild ? Slot7 : "h5";
|
|
7360
|
-
return /* @__PURE__ */
|
|
7577
|
+
return /* @__PURE__ */ jsx64(
|
|
7361
7578
|
Comp,
|
|
7362
7579
|
{
|
|
7363
7580
|
"data-slot": "h5",
|
|
@@ -7375,7 +7592,7 @@ function HeadingXXS({
|
|
|
7375
7592
|
...props
|
|
7376
7593
|
}) {
|
|
7377
7594
|
const Comp = asChild ? Slot7 : "h6";
|
|
7378
|
-
return /* @__PURE__ */
|
|
7595
|
+
return /* @__PURE__ */ jsx64(
|
|
7379
7596
|
Comp,
|
|
7380
7597
|
{
|
|
7381
7598
|
"data-slot": "h6",
|
|
@@ -7393,7 +7610,7 @@ function HeadingXLMedium({
|
|
|
7393
7610
|
...props
|
|
7394
7611
|
}) {
|
|
7395
7612
|
const Comp = asChild ? Slot7 : "h1";
|
|
7396
|
-
return /* @__PURE__ */
|
|
7613
|
+
return /* @__PURE__ */ jsx64(
|
|
7397
7614
|
Comp,
|
|
7398
7615
|
{
|
|
7399
7616
|
"data-slot": "h1",
|
|
@@ -7411,7 +7628,7 @@ function HeadingLMedium({
|
|
|
7411
7628
|
...props
|
|
7412
7629
|
}) {
|
|
7413
7630
|
const Comp = asChild ? Slot7 : "h2";
|
|
7414
|
-
return /* @__PURE__ */
|
|
7631
|
+
return /* @__PURE__ */ jsx64(
|
|
7415
7632
|
Comp,
|
|
7416
7633
|
{
|
|
7417
7634
|
"data-slot": "h2",
|
|
@@ -7429,7 +7646,7 @@ function HeadingMMedium({
|
|
|
7429
7646
|
...props
|
|
7430
7647
|
}) {
|
|
7431
7648
|
const Comp = asChild ? Slot7 : "h3";
|
|
7432
|
-
return /* @__PURE__ */
|
|
7649
|
+
return /* @__PURE__ */ jsx64(
|
|
7433
7650
|
Comp,
|
|
7434
7651
|
{
|
|
7435
7652
|
"data-slot": "h3",
|
|
@@ -7447,7 +7664,7 @@ function HeadingSMedium({
|
|
|
7447
7664
|
...props
|
|
7448
7665
|
}) {
|
|
7449
7666
|
const Comp = asChild ? Slot7 : "h4";
|
|
7450
|
-
return /* @__PURE__ */
|
|
7667
|
+
return /* @__PURE__ */ jsx64(
|
|
7451
7668
|
Comp,
|
|
7452
7669
|
{
|
|
7453
7670
|
"data-slot": "h4",
|
|
@@ -7465,7 +7682,7 @@ function HeadingXSMedium({
|
|
|
7465
7682
|
...props
|
|
7466
7683
|
}) {
|
|
7467
7684
|
const Comp = asChild ? Slot7 : "h5";
|
|
7468
|
-
return /* @__PURE__ */
|
|
7685
|
+
return /* @__PURE__ */ jsx64(
|
|
7469
7686
|
Comp,
|
|
7470
7687
|
{
|
|
7471
7688
|
"data-slot": "h5",
|
|
@@ -7483,7 +7700,7 @@ function HeadingXXSMedium({
|
|
|
7483
7700
|
...props
|
|
7484
7701
|
}) {
|
|
7485
7702
|
const Comp = asChild ? Slot7 : "h6";
|
|
7486
|
-
return /* @__PURE__ */
|
|
7703
|
+
return /* @__PURE__ */ jsx64(
|
|
7487
7704
|
Comp,
|
|
7488
7705
|
{
|
|
7489
7706
|
"data-slot": "h6",
|
|
@@ -7682,6 +7899,7 @@ export {
|
|
|
7682
7899
|
NavigationMenuList,
|
|
7683
7900
|
NavigationMenuTrigger,
|
|
7684
7901
|
NavigationMenuViewport,
|
|
7902
|
+
OptionCard,
|
|
7685
7903
|
Pagination,
|
|
7686
7904
|
PaginationContent,
|
|
7687
7905
|
PaginationEllipsis,
|
|
@@ -7799,8 +8017,10 @@ export {
|
|
|
7799
8017
|
inputVariants,
|
|
7800
8018
|
labelTextVariants,
|
|
7801
8019
|
navigationMenuTriggerStyle,
|
|
8020
|
+
optionCardVariants,
|
|
7802
8021
|
progressBarVariants,
|
|
7803
8022
|
tabsTriggerVariants,
|
|
8023
|
+
toast,
|
|
7804
8024
|
toggleVariants,
|
|
7805
8025
|
useFormField,
|
|
7806
8026
|
useIsMobile,
|