@codapet/design-system 0.7.0 → 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 +26 -2
- package/dist/index.mjs +542 -341
- 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
|
}
|
|
@@ -4433,6 +4433,157 @@ function NavigationMenuIndicator({
|
|
|
4433
4433
|
);
|
|
4434
4434
|
}
|
|
4435
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
|
+
|
|
4436
4587
|
// src/components/ui/pagination.tsx
|
|
4437
4588
|
import "react";
|
|
4438
4589
|
import {
|
|
@@ -4440,9 +4591,9 @@ import {
|
|
|
4440
4591
|
ChevronRightIcon as ChevronRightIcon5,
|
|
4441
4592
|
MoreHorizontalIcon
|
|
4442
4593
|
} from "lucide-react";
|
|
4443
|
-
import { jsx as
|
|
4594
|
+
import { jsx as jsx39, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
4444
4595
|
function Pagination({ className, ...props }) {
|
|
4445
|
-
return /* @__PURE__ */
|
|
4596
|
+
return /* @__PURE__ */ jsx39(
|
|
4446
4597
|
"nav",
|
|
4447
4598
|
{
|
|
4448
4599
|
role: "navigation",
|
|
@@ -4457,7 +4608,7 @@ function PaginationContent({
|
|
|
4457
4608
|
className,
|
|
4458
4609
|
...props
|
|
4459
4610
|
}) {
|
|
4460
|
-
return /* @__PURE__ */
|
|
4611
|
+
return /* @__PURE__ */ jsx39(
|
|
4461
4612
|
"ul",
|
|
4462
4613
|
{
|
|
4463
4614
|
"data-slot": "pagination-content",
|
|
@@ -4467,7 +4618,7 @@ function PaginationContent({
|
|
|
4467
4618
|
);
|
|
4468
4619
|
}
|
|
4469
4620
|
function PaginationItem({ ...props }) {
|
|
4470
|
-
return /* @__PURE__ */
|
|
4621
|
+
return /* @__PURE__ */ jsx39("li", { "data-slot": "pagination-item", ...props });
|
|
4471
4622
|
}
|
|
4472
4623
|
function PaginationLink({
|
|
4473
4624
|
className,
|
|
@@ -4475,7 +4626,7 @@ function PaginationLink({
|
|
|
4475
4626
|
size = "icon",
|
|
4476
4627
|
...props
|
|
4477
4628
|
}) {
|
|
4478
|
-
return /* @__PURE__ */
|
|
4629
|
+
return /* @__PURE__ */ jsx39(
|
|
4479
4630
|
"a",
|
|
4480
4631
|
{
|
|
4481
4632
|
"aria-current": isActive ? "page" : void 0,
|
|
@@ -4496,7 +4647,7 @@ function PaginationPrevious({
|
|
|
4496
4647
|
className,
|
|
4497
4648
|
...props
|
|
4498
4649
|
}) {
|
|
4499
|
-
return /* @__PURE__ */
|
|
4650
|
+
return /* @__PURE__ */ jsxs23(
|
|
4500
4651
|
PaginationLink,
|
|
4501
4652
|
{
|
|
4502
4653
|
"aria-label": "Go to previous page",
|
|
@@ -4504,8 +4655,8 @@ function PaginationPrevious({
|
|
|
4504
4655
|
className: cn("gap-1 px-2.5 sm:pl-2.5", className),
|
|
4505
4656
|
...props,
|
|
4506
4657
|
children: [
|
|
4507
|
-
/* @__PURE__ */
|
|
4508
|
-
/* @__PURE__ */
|
|
4658
|
+
/* @__PURE__ */ jsx39(ChevronLeftIcon2, {}),
|
|
4659
|
+
/* @__PURE__ */ jsx39("span", { className: "hidden sm:block", children: "Previous" })
|
|
4509
4660
|
]
|
|
4510
4661
|
}
|
|
4511
4662
|
);
|
|
@@ -4514,7 +4665,7 @@ function PaginationNext({
|
|
|
4514
4665
|
className,
|
|
4515
4666
|
...props
|
|
4516
4667
|
}) {
|
|
4517
|
-
return /* @__PURE__ */
|
|
4668
|
+
return /* @__PURE__ */ jsxs23(
|
|
4518
4669
|
PaginationLink,
|
|
4519
4670
|
{
|
|
4520
4671
|
"aria-label": "Go to next page",
|
|
@@ -4522,8 +4673,8 @@ function PaginationNext({
|
|
|
4522
4673
|
className: cn("gap-1 px-2.5 sm:pr-2.5", className),
|
|
4523
4674
|
...props,
|
|
4524
4675
|
children: [
|
|
4525
|
-
/* @__PURE__ */
|
|
4526
|
-
/* @__PURE__ */
|
|
4676
|
+
/* @__PURE__ */ jsx39("span", { className: "hidden sm:block", children: "Next" }),
|
|
4677
|
+
/* @__PURE__ */ jsx39(ChevronRightIcon5, {})
|
|
4527
4678
|
]
|
|
4528
4679
|
}
|
|
4529
4680
|
);
|
|
@@ -4532,7 +4683,7 @@ function PaginationEllipsis({
|
|
|
4532
4683
|
className,
|
|
4533
4684
|
...props
|
|
4534
4685
|
}) {
|
|
4535
|
-
return /* @__PURE__ */
|
|
4686
|
+
return /* @__PURE__ */ jsxs23(
|
|
4536
4687
|
"span",
|
|
4537
4688
|
{
|
|
4538
4689
|
"aria-hidden": true,
|
|
@@ -4540,8 +4691,8 @@ function PaginationEllipsis({
|
|
|
4540
4691
|
className: cn("flex size-9 items-center justify-center", className),
|
|
4541
4692
|
...props,
|
|
4542
4693
|
children: [
|
|
4543
|
-
/* @__PURE__ */
|
|
4544
|
-
/* @__PURE__ */
|
|
4694
|
+
/* @__PURE__ */ jsx39(MoreHorizontalIcon, { className: "size-4" }),
|
|
4695
|
+
/* @__PURE__ */ jsx39("span", { className: "sr-only", children: "More pages" })
|
|
4545
4696
|
]
|
|
4546
4697
|
}
|
|
4547
4698
|
);
|
|
@@ -4550,13 +4701,13 @@ function PaginationEllipsis({
|
|
|
4550
4701
|
// src/components/ui/progress.tsx
|
|
4551
4702
|
import * as ProgressPrimitive from "@radix-ui/react-progress";
|
|
4552
4703
|
import "react";
|
|
4553
|
-
import { jsx as
|
|
4704
|
+
import { jsx as jsx40 } from "react/jsx-runtime";
|
|
4554
4705
|
function Progress({
|
|
4555
4706
|
className,
|
|
4556
4707
|
value,
|
|
4557
4708
|
...props
|
|
4558
4709
|
}) {
|
|
4559
|
-
return /* @__PURE__ */
|
|
4710
|
+
return /* @__PURE__ */ jsx40(
|
|
4560
4711
|
ProgressPrimitive.Root,
|
|
4561
4712
|
{
|
|
4562
4713
|
"data-slot": "progress",
|
|
@@ -4565,7 +4716,7 @@ function Progress({
|
|
|
4565
4716
|
className
|
|
4566
4717
|
),
|
|
4567
4718
|
...props,
|
|
4568
|
-
children: /* @__PURE__ */
|
|
4719
|
+
children: /* @__PURE__ */ jsx40(
|
|
4569
4720
|
ProgressPrimitive.Indicator,
|
|
4570
4721
|
{
|
|
4571
4722
|
"data-slot": "progress-indicator",
|
|
@@ -4578,10 +4729,10 @@ function Progress({
|
|
|
4578
4729
|
}
|
|
4579
4730
|
|
|
4580
4731
|
// src/components/ui/progress-bar.tsx
|
|
4581
|
-
import { cva as
|
|
4732
|
+
import { cva as cva12 } from "class-variance-authority";
|
|
4582
4733
|
import "react";
|
|
4583
|
-
import { jsx as
|
|
4584
|
-
var progressBarVariants =
|
|
4734
|
+
import { jsx as jsx41, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
4735
|
+
var progressBarVariants = cva12("relative overflow-hidden rounded-[8px]", {
|
|
4585
4736
|
variants: {
|
|
4586
4737
|
device: {
|
|
4587
4738
|
desktop: "w-[360px] h-[4px]",
|
|
@@ -4601,7 +4752,7 @@ function ProgressBar({
|
|
|
4601
4752
|
...props
|
|
4602
4753
|
}) {
|
|
4603
4754
|
const percentage = value !== void 0 ? Math.min(100, Math.max(0, value)) : Math.min(100, Math.max(0, currentStep / totalSteps * 100));
|
|
4604
|
-
return /* @__PURE__ */
|
|
4755
|
+
return /* @__PURE__ */ jsxs24(
|
|
4605
4756
|
"div",
|
|
4606
4757
|
{
|
|
4607
4758
|
"data-slot": "progress-bar",
|
|
@@ -4612,8 +4763,8 @@ function ProgressBar({
|
|
|
4612
4763
|
"aria-valuemax": 100,
|
|
4613
4764
|
...props,
|
|
4614
4765
|
children: [
|
|
4615
|
-
/* @__PURE__ */
|
|
4616
|
-
/* @__PURE__ */
|
|
4766
|
+
/* @__PURE__ */ jsx41("div", { className: "absolute inset-0 rounded-[8px] bg-primary-surface-light" }),
|
|
4767
|
+
/* @__PURE__ */ jsx41(
|
|
4617
4768
|
"div",
|
|
4618
4769
|
{
|
|
4619
4770
|
"data-slot": "progress-bar-fill",
|
|
@@ -4630,12 +4781,12 @@ function ProgressBar({
|
|
|
4630
4781
|
import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
|
|
4631
4782
|
import { CircleIcon as CircleIcon4 } from "lucide-react";
|
|
4632
4783
|
import "react";
|
|
4633
|
-
import { jsx as
|
|
4784
|
+
import { jsx as jsx42 } from "react/jsx-runtime";
|
|
4634
4785
|
function RadioGroup4({
|
|
4635
4786
|
className,
|
|
4636
4787
|
...props
|
|
4637
4788
|
}) {
|
|
4638
|
-
return /* @__PURE__ */
|
|
4789
|
+
return /* @__PURE__ */ jsx42(
|
|
4639
4790
|
RadioGroupPrimitive.Root,
|
|
4640
4791
|
{
|
|
4641
4792
|
"data-slot": "radio-group",
|
|
@@ -4648,21 +4799,21 @@ function RadioGroupItem({
|
|
|
4648
4799
|
className,
|
|
4649
4800
|
...props
|
|
4650
4801
|
}) {
|
|
4651
|
-
return /* @__PURE__ */
|
|
4802
|
+
return /* @__PURE__ */ jsx42(
|
|
4652
4803
|
RadioGroupPrimitive.Item,
|
|
4653
4804
|
{
|
|
4654
4805
|
"data-slot": "radio-group-item",
|
|
4655
4806
|
className: cn(
|
|
4656
|
-
"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",
|
|
4657
4808
|
className
|
|
4658
4809
|
),
|
|
4659
4810
|
...props,
|
|
4660
|
-
children: /* @__PURE__ */
|
|
4811
|
+
children: /* @__PURE__ */ jsx42(
|
|
4661
4812
|
RadioGroupPrimitive.Indicator,
|
|
4662
4813
|
{
|
|
4663
4814
|
"data-slot": "radio-group-indicator",
|
|
4664
4815
|
className: "relative flex items-center justify-center",
|
|
4665
|
-
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" })
|
|
4666
4817
|
}
|
|
4667
4818
|
)
|
|
4668
4819
|
}
|
|
@@ -4673,12 +4824,12 @@ function RadioGroupItem({
|
|
|
4673
4824
|
import "react";
|
|
4674
4825
|
import { GripVerticalIcon } from "lucide-react";
|
|
4675
4826
|
import * as ResizablePrimitive from "react-resizable-panels";
|
|
4676
|
-
import { jsx as
|
|
4827
|
+
import { jsx as jsx43 } from "react/jsx-runtime";
|
|
4677
4828
|
function ResizablePanelGroup({
|
|
4678
4829
|
className,
|
|
4679
4830
|
...props
|
|
4680
4831
|
}) {
|
|
4681
|
-
return /* @__PURE__ */
|
|
4832
|
+
return /* @__PURE__ */ jsx43(
|
|
4682
4833
|
ResizablePrimitive.PanelGroup,
|
|
4683
4834
|
{
|
|
4684
4835
|
"data-slot": "resizable-panel-group",
|
|
@@ -4693,14 +4844,14 @@ function ResizablePanelGroup({
|
|
|
4693
4844
|
function ResizablePanel({
|
|
4694
4845
|
...props
|
|
4695
4846
|
}) {
|
|
4696
|
-
return /* @__PURE__ */
|
|
4847
|
+
return /* @__PURE__ */ jsx43(ResizablePrimitive.Panel, { "data-slot": "resizable-panel", ...props });
|
|
4697
4848
|
}
|
|
4698
4849
|
function ResizableHandle({
|
|
4699
4850
|
withHandle,
|
|
4700
4851
|
className,
|
|
4701
4852
|
...props
|
|
4702
4853
|
}) {
|
|
4703
|
-
return /* @__PURE__ */
|
|
4854
|
+
return /* @__PURE__ */ jsx43(
|
|
4704
4855
|
ResizablePrimitive.PanelResizeHandle,
|
|
4705
4856
|
{
|
|
4706
4857
|
"data-slot": "resizable-handle",
|
|
@@ -4709,7 +4860,7 @@ function ResizableHandle({
|
|
|
4709
4860
|
className
|
|
4710
4861
|
),
|
|
4711
4862
|
...props,
|
|
4712
|
-
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" }) })
|
|
4713
4864
|
}
|
|
4714
4865
|
);
|
|
4715
4866
|
}
|
|
@@ -4717,20 +4868,20 @@ function ResizableHandle({
|
|
|
4717
4868
|
// src/components/ui/scroll-area.tsx
|
|
4718
4869
|
import "react";
|
|
4719
4870
|
import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
|
|
4720
|
-
import { jsx as
|
|
4871
|
+
import { jsx as jsx44, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
4721
4872
|
function ScrollArea({
|
|
4722
4873
|
className,
|
|
4723
4874
|
children,
|
|
4724
4875
|
...props
|
|
4725
4876
|
}) {
|
|
4726
|
-
return /* @__PURE__ */
|
|
4877
|
+
return /* @__PURE__ */ jsxs25(
|
|
4727
4878
|
ScrollAreaPrimitive.Root,
|
|
4728
4879
|
{
|
|
4729
4880
|
"data-slot": "scroll-area",
|
|
4730
4881
|
className: cn("relative", className),
|
|
4731
4882
|
...props,
|
|
4732
4883
|
children: [
|
|
4733
|
-
/* @__PURE__ */
|
|
4884
|
+
/* @__PURE__ */ jsx44(
|
|
4734
4885
|
ScrollAreaPrimitive.Viewport,
|
|
4735
4886
|
{
|
|
4736
4887
|
"data-slot": "scroll-area-viewport",
|
|
@@ -4738,8 +4889,8 @@ function ScrollArea({
|
|
|
4738
4889
|
children
|
|
4739
4890
|
}
|
|
4740
4891
|
),
|
|
4741
|
-
/* @__PURE__ */
|
|
4742
|
-
/* @__PURE__ */
|
|
4892
|
+
/* @__PURE__ */ jsx44(ScrollBar, {}),
|
|
4893
|
+
/* @__PURE__ */ jsx44(ScrollAreaPrimitive.Corner, {})
|
|
4743
4894
|
]
|
|
4744
4895
|
}
|
|
4745
4896
|
);
|
|
@@ -4749,7 +4900,7 @@ function ScrollBar({
|
|
|
4749
4900
|
orientation = "vertical",
|
|
4750
4901
|
...props
|
|
4751
4902
|
}) {
|
|
4752
|
-
return /* @__PURE__ */
|
|
4903
|
+
return /* @__PURE__ */ jsx44(
|
|
4753
4904
|
ScrollAreaPrimitive.ScrollAreaScrollbar,
|
|
4754
4905
|
{
|
|
4755
4906
|
"data-slot": "scroll-area-scrollbar",
|
|
@@ -4761,7 +4912,7 @@ function ScrollBar({
|
|
|
4761
4912
|
className
|
|
4762
4913
|
),
|
|
4763
4914
|
...props,
|
|
4764
|
-
children: /* @__PURE__ */
|
|
4915
|
+
children: /* @__PURE__ */ jsx44(
|
|
4765
4916
|
ScrollAreaPrimitive.ScrollAreaThumb,
|
|
4766
4917
|
{
|
|
4767
4918
|
"data-slot": "scroll-area-thumb",
|
|
@@ -4773,9 +4924,9 @@ function ScrollBar({
|
|
|
4773
4924
|
}
|
|
4774
4925
|
|
|
4775
4926
|
// src/components/ui/search-input.tsx
|
|
4776
|
-
import * as
|
|
4927
|
+
import * as React43 from "react";
|
|
4777
4928
|
import { Search, X as X3 } from "lucide-react";
|
|
4778
|
-
import { jsx as
|
|
4929
|
+
import { jsx as jsx45, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
4779
4930
|
function SearchInput({
|
|
4780
4931
|
variant = "icon",
|
|
4781
4932
|
value: valueProp,
|
|
@@ -4794,23 +4945,23 @@ function SearchInput({
|
|
|
4794
4945
|
onSuggestionClick,
|
|
4795
4946
|
className
|
|
4796
4947
|
}) {
|
|
4797
|
-
const [internalValue, setInternalValue] =
|
|
4798
|
-
const [isFocused, setIsFocused] =
|
|
4799
|
-
const [showSuggestions, setShowSuggestions] =
|
|
4800
|
-
const inputRef =
|
|
4801
|
-
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);
|
|
4802
4953
|
const isControlled = valueProp !== void 0;
|
|
4803
4954
|
const currentValue = isControlled ? valueProp : internalValue;
|
|
4804
4955
|
const hasValue = currentValue.trim().length > 0;
|
|
4805
4956
|
const isFilledEdit = hasValue && !isFocused && !error;
|
|
4806
|
-
const updateValue =
|
|
4957
|
+
const updateValue = React43.useCallback(
|
|
4807
4958
|
(next) => {
|
|
4808
4959
|
if (!isControlled) setInternalValue(next);
|
|
4809
4960
|
onValueChange?.(next);
|
|
4810
4961
|
},
|
|
4811
4962
|
[isControlled, onValueChange]
|
|
4812
4963
|
);
|
|
4813
|
-
const handleInputChange =
|
|
4964
|
+
const handleInputChange = React43.useCallback(
|
|
4814
4965
|
(e) => {
|
|
4815
4966
|
updateValue(e.target.value);
|
|
4816
4967
|
if (e.target.value.trim().length > 0 && suggestions.length > 0) {
|
|
@@ -4821,7 +4972,7 @@ function SearchInput({
|
|
|
4821
4972
|
},
|
|
4822
4973
|
[updateValue, suggestions.length]
|
|
4823
4974
|
);
|
|
4824
|
-
const handleKeyDown =
|
|
4975
|
+
const handleKeyDown = React43.useCallback(
|
|
4825
4976
|
(e) => {
|
|
4826
4977
|
if (e.key === "Enter") {
|
|
4827
4978
|
e.preventDefault();
|
|
@@ -4834,16 +4985,16 @@ function SearchInput({
|
|
|
4834
4985
|
},
|
|
4835
4986
|
[currentValue, onSearch]
|
|
4836
4987
|
);
|
|
4837
|
-
const handleClear =
|
|
4988
|
+
const handleClear = React43.useCallback(() => {
|
|
4838
4989
|
updateValue("");
|
|
4839
4990
|
onClear?.();
|
|
4840
4991
|
inputRef.current?.focus();
|
|
4841
4992
|
}, [updateValue, onClear]);
|
|
4842
|
-
const handleSearchClick =
|
|
4993
|
+
const handleSearchClick = React43.useCallback(() => {
|
|
4843
4994
|
onSearch?.(currentValue);
|
|
4844
4995
|
setShowSuggestions(false);
|
|
4845
4996
|
}, [currentValue, onSearch]);
|
|
4846
|
-
const handleSuggestionClick =
|
|
4997
|
+
const handleSuggestionClick = React43.useCallback(
|
|
4847
4998
|
(label2) => {
|
|
4848
4999
|
updateValue(label2);
|
|
4849
5000
|
onSuggestionClick?.(label2);
|
|
@@ -4852,14 +5003,14 @@ function SearchInput({
|
|
|
4852
5003
|
},
|
|
4853
5004
|
[updateValue, onSuggestionClick]
|
|
4854
5005
|
);
|
|
4855
|
-
const handleFocus =
|
|
5006
|
+
const handleFocus = React43.useCallback(() => {
|
|
4856
5007
|
if (disabled) return;
|
|
4857
5008
|
setIsFocused(true);
|
|
4858
5009
|
if (currentValue.trim().length > 0 && suggestions.length > 0) {
|
|
4859
5010
|
setShowSuggestions(true);
|
|
4860
5011
|
}
|
|
4861
5012
|
}, [disabled, currentValue, suggestions.length]);
|
|
4862
|
-
const handleBlur =
|
|
5013
|
+
const handleBlur = React43.useCallback(
|
|
4863
5014
|
(e) => {
|
|
4864
5015
|
if (containerRef.current?.contains(e.relatedTarget)) return;
|
|
4865
5016
|
setIsFocused(false);
|
|
@@ -4869,7 +5020,7 @@ function SearchInput({
|
|
|
4869
5020
|
);
|
|
4870
5021
|
const displayHelperText = error && errorMessage ? errorMessage : helperText;
|
|
4871
5022
|
const showClearButton = (isFilledEdit || error) && hasValue;
|
|
4872
|
-
return /* @__PURE__ */
|
|
5023
|
+
return /* @__PURE__ */ jsxs26(
|
|
4873
5024
|
"div",
|
|
4874
5025
|
{
|
|
4875
5026
|
ref: containerRef,
|
|
@@ -4877,8 +5028,8 @@ function SearchInput({
|
|
|
4877
5028
|
className: cn("flex flex-col gap-[8px] items-start w-full", className),
|
|
4878
5029
|
onBlur: handleBlur,
|
|
4879
5030
|
children: [
|
|
4880
|
-
label && /* @__PURE__ */
|
|
4881
|
-
/* @__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(
|
|
4882
5033
|
"div",
|
|
4883
5034
|
{
|
|
4884
5035
|
className: cn(
|
|
@@ -4895,7 +5046,7 @@ function SearchInput({
|
|
|
4895
5046
|
disabled && "opacity-60 cursor-not-allowed"
|
|
4896
5047
|
),
|
|
4897
5048
|
children: [
|
|
4898
|
-
icon && /* @__PURE__ */
|
|
5049
|
+
icon && /* @__PURE__ */ jsx45(
|
|
4899
5050
|
"span",
|
|
4900
5051
|
{
|
|
4901
5052
|
className: cn(
|
|
@@ -4905,7 +5056,7 @@ function SearchInput({
|
|
|
4905
5056
|
children: icon
|
|
4906
5057
|
}
|
|
4907
5058
|
),
|
|
4908
|
-
/* @__PURE__ */
|
|
5059
|
+
/* @__PURE__ */ jsx45(
|
|
4909
5060
|
"input",
|
|
4910
5061
|
{
|
|
4911
5062
|
ref: inputRef,
|
|
@@ -4922,7 +5073,7 @@ function SearchInput({
|
|
|
4922
5073
|
)
|
|
4923
5074
|
}
|
|
4924
5075
|
),
|
|
4925
|
-
showClearButton ? /* @__PURE__ */
|
|
5076
|
+
showClearButton ? /* @__PURE__ */ jsx45(
|
|
4926
5077
|
"button",
|
|
4927
5078
|
{
|
|
4928
5079
|
type: "button",
|
|
@@ -4930,9 +5081,9 @@ function SearchInput({
|
|
|
4930
5081
|
className: "flex items-center justify-center shrink-0 size-[20px] text-muted-foreground hover:text-vibrant-text-heading transition-colors cursor-pointer",
|
|
4931
5082
|
"aria-label": "Clear search",
|
|
4932
5083
|
tabIndex: -1,
|
|
4933
|
-
children: /* @__PURE__ */
|
|
5084
|
+
children: /* @__PURE__ */ jsx45(X3, { className: "size-[16px]" })
|
|
4934
5085
|
}
|
|
4935
|
-
) : variant === "button" ? /* @__PURE__ */
|
|
5086
|
+
) : variant === "button" ? /* @__PURE__ */ jsx45(
|
|
4936
5087
|
"button",
|
|
4937
5088
|
{
|
|
4938
5089
|
type: "button",
|
|
@@ -4942,7 +5093,7 @@ function SearchInput({
|
|
|
4942
5093
|
tabIndex: -1,
|
|
4943
5094
|
children: "Search"
|
|
4944
5095
|
}
|
|
4945
|
-
) : /* @__PURE__ */
|
|
5096
|
+
) : /* @__PURE__ */ jsx45(
|
|
4946
5097
|
"button",
|
|
4947
5098
|
{
|
|
4948
5099
|
type: "button",
|
|
@@ -4951,13 +5102,13 @@ function SearchInput({
|
|
|
4951
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",
|
|
4952
5103
|
"aria-label": "Search",
|
|
4953
5104
|
tabIndex: -1,
|
|
4954
|
-
children: /* @__PURE__ */
|
|
5105
|
+
children: /* @__PURE__ */ jsx45(Search, { className: "size-[20px] text-white" })
|
|
4955
5106
|
}
|
|
4956
5107
|
)
|
|
4957
5108
|
]
|
|
4958
5109
|
}
|
|
4959
5110
|
),
|
|
4960
|
-
displayHelperText && /* @__PURE__ */
|
|
5111
|
+
displayHelperText && /* @__PURE__ */ jsx45(
|
|
4961
5112
|
"p",
|
|
4962
5113
|
{
|
|
4963
5114
|
className: cn(
|
|
@@ -4967,12 +5118,12 @@ function SearchInput({
|
|
|
4967
5118
|
children: displayHelperText
|
|
4968
5119
|
}
|
|
4969
5120
|
),
|
|
4970
|
-
showSuggestions && suggestions.length > 0 && /* @__PURE__ */
|
|
5121
|
+
showSuggestions && suggestions.length > 0 && /* @__PURE__ */ jsx45(
|
|
4971
5122
|
"div",
|
|
4972
5123
|
{
|
|
4973
5124
|
"data-slot": "search-input-suggestions",
|
|
4974
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]",
|
|
4975
|
-
children: suggestions.map((suggestion, idx) => /* @__PURE__ */
|
|
5126
|
+
children: suggestions.map((suggestion, idx) => /* @__PURE__ */ jsxs26(
|
|
4976
5127
|
"button",
|
|
4977
5128
|
{
|
|
4978
5129
|
type: "button",
|
|
@@ -4980,8 +5131,8 @@ function SearchInput({
|
|
|
4980
5131
|
onMouseDown: (e) => e.preventDefault(),
|
|
4981
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",
|
|
4982
5133
|
children: [
|
|
4983
|
-
suggestion.icon && /* @__PURE__ */
|
|
4984
|
-
/* @__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 })
|
|
4985
5136
|
]
|
|
4986
5137
|
},
|
|
4987
5138
|
`${suggestion.label}-${idx}`
|
|
@@ -4994,12 +5145,12 @@ function SearchInput({
|
|
|
4994
5145
|
}
|
|
4995
5146
|
|
|
4996
5147
|
// src/components/ui/searchable-select.tsx
|
|
4997
|
-
import * as
|
|
5148
|
+
import * as React44 from "react";
|
|
4998
5149
|
import { CheckIcon as CheckIcon4, ChevronsUpDown, XIcon as XIcon2 } from "lucide-react";
|
|
4999
|
-
import { jsx as
|
|
5000
|
-
var SearchableSelectContext =
|
|
5150
|
+
import { jsx as jsx46, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
5151
|
+
var SearchableSelectContext = React44.createContext(null);
|
|
5001
5152
|
function useSearchableSelect() {
|
|
5002
|
-
const ctx =
|
|
5153
|
+
const ctx = React44.useContext(SearchableSelectContext);
|
|
5003
5154
|
if (!ctx) {
|
|
5004
5155
|
throw new Error(
|
|
5005
5156
|
"SearchableSelect compound components must be used within <SearchableSelect>"
|
|
@@ -5025,11 +5176,11 @@ function SearchableSelect({
|
|
|
5025
5176
|
onOpenChange,
|
|
5026
5177
|
children
|
|
5027
5178
|
}) {
|
|
5028
|
-
const [internalOpen, setInternalOpen] =
|
|
5029
|
-
const [internalValue, setInternalValue] =
|
|
5030
|
-
const [internalValues, setInternalValues] =
|
|
5179
|
+
const [internalOpen, setInternalOpen] = React44.useState(false);
|
|
5180
|
+
const [internalValue, setInternalValue] = React44.useState(defaultValue);
|
|
5181
|
+
const [internalValues, setInternalValues] = React44.useState(defaultValues);
|
|
5031
5182
|
const open = controlledOpen ?? internalOpen;
|
|
5032
|
-
const setOpen =
|
|
5183
|
+
const setOpen = React44.useCallback(
|
|
5033
5184
|
(next) => {
|
|
5034
5185
|
if (controlledOpen !== void 0) {
|
|
5035
5186
|
onOpenChange?.(next);
|
|
@@ -5041,7 +5192,7 @@ function SearchableSelect({
|
|
|
5041
5192
|
[controlledOpen, onOpenChange]
|
|
5042
5193
|
);
|
|
5043
5194
|
const value = controlledValue ?? internalValue;
|
|
5044
|
-
const setValue =
|
|
5195
|
+
const setValue = React44.useCallback(
|
|
5045
5196
|
(next) => {
|
|
5046
5197
|
if (controlledValue === void 0) {
|
|
5047
5198
|
setInternalValue(next);
|
|
@@ -5051,7 +5202,7 @@ function SearchableSelect({
|
|
|
5051
5202
|
[controlledValue, onValueChange]
|
|
5052
5203
|
);
|
|
5053
5204
|
const values = controlledValues ?? internalValues;
|
|
5054
|
-
const setValues =
|
|
5205
|
+
const setValues = React44.useCallback(
|
|
5055
5206
|
(next) => {
|
|
5056
5207
|
if (controlledValues === void 0) {
|
|
5057
5208
|
setInternalValues(next);
|
|
@@ -5060,14 +5211,14 @@ function SearchableSelect({
|
|
|
5060
5211
|
},
|
|
5061
5212
|
[controlledValues, onValuesChange]
|
|
5062
5213
|
);
|
|
5063
|
-
const optionMap =
|
|
5214
|
+
const optionMap = React44.useMemo(() => {
|
|
5064
5215
|
const map = /* @__PURE__ */ new Map();
|
|
5065
5216
|
for (const opt of options) {
|
|
5066
5217
|
map.set(opt.value, opt.label);
|
|
5067
5218
|
}
|
|
5068
5219
|
return map;
|
|
5069
5220
|
}, [options]);
|
|
5070
|
-
const ctx =
|
|
5221
|
+
const ctx = React44.useMemo(
|
|
5071
5222
|
() => ({
|
|
5072
5223
|
open,
|
|
5073
5224
|
setOpen,
|
|
@@ -5101,7 +5252,7 @@ function SearchableSelect({
|
|
|
5101
5252
|
optionMap
|
|
5102
5253
|
]
|
|
5103
5254
|
);
|
|
5104
|
-
return /* @__PURE__ */
|
|
5255
|
+
return /* @__PURE__ */ jsx46(SearchableSelectContext.Provider, { value: ctx, children: /* @__PURE__ */ jsx46(Popover, { open, onOpenChange: setOpen, children }) });
|
|
5105
5256
|
}
|
|
5106
5257
|
function SearchableSelectTrigger({
|
|
5107
5258
|
className,
|
|
@@ -5114,7 +5265,7 @@ function SearchableSelectTrigger({
|
|
|
5114
5265
|
if (children) return children;
|
|
5115
5266
|
if (ctx.mode === "single") {
|
|
5116
5267
|
const label = ctx.optionMap.get(ctx.value);
|
|
5117
|
-
return /* @__PURE__ */
|
|
5268
|
+
return /* @__PURE__ */ jsx46(
|
|
5118
5269
|
"span",
|
|
5119
5270
|
{
|
|
5120
5271
|
"data-slot": "searchable-select-value",
|
|
@@ -5127,7 +5278,7 @@ function SearchableSelectTrigger({
|
|
|
5127
5278
|
);
|
|
5128
5279
|
}
|
|
5129
5280
|
if (ctx.values.length === 0) {
|
|
5130
|
-
return /* @__PURE__ */
|
|
5281
|
+
return /* @__PURE__ */ jsx46(
|
|
5131
5282
|
"span",
|
|
5132
5283
|
{
|
|
5133
5284
|
"data-slot": "searchable-select-value",
|
|
@@ -5138,20 +5289,20 @@ function SearchableSelectTrigger({
|
|
|
5138
5289
|
}
|
|
5139
5290
|
const visible = ctx.values.slice(0, ctx.maxCount);
|
|
5140
5291
|
const remaining = ctx.values.length - visible.length;
|
|
5141
|
-
return /* @__PURE__ */
|
|
5292
|
+
return /* @__PURE__ */ jsxs27(
|
|
5142
5293
|
"span",
|
|
5143
5294
|
{
|
|
5144
5295
|
"data-slot": "searchable-select-value",
|
|
5145
5296
|
className: "flex flex-wrap items-center gap-1",
|
|
5146
5297
|
children: [
|
|
5147
|
-
visible.map((v) => /* @__PURE__ */
|
|
5298
|
+
visible.map((v) => /* @__PURE__ */ jsxs27(
|
|
5148
5299
|
Badge,
|
|
5149
5300
|
{
|
|
5150
5301
|
variant: "secondary",
|
|
5151
5302
|
className: "gap-1 pr-1",
|
|
5152
5303
|
children: [
|
|
5153
|
-
/* @__PURE__ */
|
|
5154
|
-
/* @__PURE__ */
|
|
5304
|
+
/* @__PURE__ */ jsx46("span", { className: "truncate max-w-[120px]", children: ctx.optionMap.get(v) || v }),
|
|
5305
|
+
/* @__PURE__ */ jsx46(
|
|
5155
5306
|
"span",
|
|
5156
5307
|
{
|
|
5157
5308
|
role: "button",
|
|
@@ -5163,14 +5314,14 @@ function SearchableSelectTrigger({
|
|
|
5163
5314
|
e.stopPropagation();
|
|
5164
5315
|
ctx.setValues(ctx.values.filter((val) => val !== v));
|
|
5165
5316
|
},
|
|
5166
|
-
children: /* @__PURE__ */
|
|
5317
|
+
children: /* @__PURE__ */ jsx46(XIcon2, { className: "size-3" })
|
|
5167
5318
|
}
|
|
5168
5319
|
)
|
|
5169
5320
|
]
|
|
5170
5321
|
},
|
|
5171
5322
|
v
|
|
5172
5323
|
)),
|
|
5173
|
-
remaining > 0 && /* @__PURE__ */
|
|
5324
|
+
remaining > 0 && /* @__PURE__ */ jsxs27(Badge, { variant: "outline", className: "text-muted-foreground", children: [
|
|
5174
5325
|
"+",
|
|
5175
5326
|
remaining,
|
|
5176
5327
|
" more"
|
|
@@ -5179,7 +5330,7 @@ function SearchableSelectTrigger({
|
|
|
5179
5330
|
}
|
|
5180
5331
|
);
|
|
5181
5332
|
};
|
|
5182
|
-
return /* @__PURE__ */
|
|
5333
|
+
return /* @__PURE__ */ jsxs27(
|
|
5183
5334
|
PopoverTrigger,
|
|
5184
5335
|
{
|
|
5185
5336
|
"data-slot": "searchable-select-trigger",
|
|
@@ -5193,7 +5344,7 @@ function SearchableSelectTrigger({
|
|
|
5193
5344
|
...props,
|
|
5194
5345
|
children: [
|
|
5195
5346
|
renderContent(),
|
|
5196
|
-
/* @__PURE__ */
|
|
5347
|
+
/* @__PURE__ */ jsx46(ChevronsUpDown, { className: "size-4 shrink-0 opacity-50" })
|
|
5197
5348
|
]
|
|
5198
5349
|
}
|
|
5199
5350
|
);
|
|
@@ -5205,7 +5356,7 @@ function SearchableSelectContent({
|
|
|
5205
5356
|
...props
|
|
5206
5357
|
}) {
|
|
5207
5358
|
const ctx = useSearchableSelect();
|
|
5208
|
-
const groupedOptions =
|
|
5359
|
+
const groupedOptions = React44.useMemo(() => {
|
|
5209
5360
|
if (ctx.options.length === 0) return null;
|
|
5210
5361
|
const groups = /* @__PURE__ */ new Map();
|
|
5211
5362
|
for (const opt of ctx.options) {
|
|
@@ -5219,7 +5370,7 @@ function SearchableSelectContent({
|
|
|
5219
5370
|
if (!groupedOptions) return null;
|
|
5220
5371
|
const entries = Array.from(groupedOptions.entries());
|
|
5221
5372
|
if (entries.length === 1 && entries[0][0] === "") {
|
|
5222
|
-
return entries[0][1].map((opt) => /* @__PURE__ */
|
|
5373
|
+
return entries[0][1].map((opt) => /* @__PURE__ */ jsx46(
|
|
5223
5374
|
SearchableSelectItem,
|
|
5224
5375
|
{
|
|
5225
5376
|
value: opt.value,
|
|
@@ -5229,7 +5380,7 @@ function SearchableSelectContent({
|
|
|
5229
5380
|
opt.value
|
|
5230
5381
|
));
|
|
5231
5382
|
}
|
|
5232
|
-
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(
|
|
5233
5384
|
SearchableSelectItem,
|
|
5234
5385
|
{
|
|
5235
5386
|
value: opt.value,
|
|
@@ -5239,17 +5390,17 @@ function SearchableSelectContent({
|
|
|
5239
5390
|
opt.value
|
|
5240
5391
|
)) }, group));
|
|
5241
5392
|
};
|
|
5242
|
-
return /* @__PURE__ */
|
|
5393
|
+
return /* @__PURE__ */ jsx46(
|
|
5243
5394
|
PopoverContent,
|
|
5244
5395
|
{
|
|
5245
5396
|
"data-slot": "searchable-select-content",
|
|
5246
5397
|
className: cn("w-[var(--radix-popover-trigger-width)] p-0", className),
|
|
5247
5398
|
align: "start",
|
|
5248
5399
|
...props,
|
|
5249
|
-
children: /* @__PURE__ */
|
|
5250
|
-
ctx.searchable && /* @__PURE__ */
|
|
5251
|
-
/* @__PURE__ */
|
|
5252
|
-
/* @__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 }),
|
|
5253
5404
|
children || renderAutoItems()
|
|
5254
5405
|
] })
|
|
5255
5406
|
] })
|
|
@@ -5276,7 +5427,7 @@ function SearchableSelectItem({
|
|
|
5276
5427
|
);
|
|
5277
5428
|
}
|
|
5278
5429
|
};
|
|
5279
|
-
return /* @__PURE__ */
|
|
5430
|
+
return /* @__PURE__ */ jsxs27(
|
|
5280
5431
|
CommandItem,
|
|
5281
5432
|
{
|
|
5282
5433
|
"data-slot": "searchable-select-item",
|
|
@@ -5289,18 +5440,18 @@ function SearchableSelectItem({
|
|
|
5289
5440
|
"data-disabled": disabled || void 0,
|
|
5290
5441
|
...props,
|
|
5291
5442
|
children: [
|
|
5292
|
-
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(
|
|
5293
5444
|
"span",
|
|
5294
5445
|
{
|
|
5295
5446
|
className: cn(
|
|
5296
5447
|
"size-4 rounded-sm border border-primary transition-colors",
|
|
5297
5448
|
isSelected ? "bg-primary text-primary-foreground" : "bg-transparent"
|
|
5298
5449
|
),
|
|
5299
|
-
children: isSelected && /* @__PURE__ */
|
|
5450
|
+
children: isSelected && /* @__PURE__ */ jsx46(CheckIcon4, { className: "size-4 p-0.5" })
|
|
5300
5451
|
}
|
|
5301
5452
|
) }),
|
|
5302
|
-
/* @__PURE__ */
|
|
5303
|
-
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" }) })
|
|
5304
5455
|
]
|
|
5305
5456
|
}
|
|
5306
5457
|
);
|
|
@@ -5309,7 +5460,7 @@ function SearchableSelectGroup({
|
|
|
5309
5460
|
className,
|
|
5310
5461
|
...props
|
|
5311
5462
|
}) {
|
|
5312
|
-
return /* @__PURE__ */
|
|
5463
|
+
return /* @__PURE__ */ jsx46(
|
|
5313
5464
|
CommandGroup,
|
|
5314
5465
|
{
|
|
5315
5466
|
"data-slot": "searchable-select-group",
|
|
@@ -5323,7 +5474,7 @@ function SearchableSelectEmpty({
|
|
|
5323
5474
|
children = "No results found.",
|
|
5324
5475
|
...props
|
|
5325
5476
|
}) {
|
|
5326
|
-
return /* @__PURE__ */
|
|
5477
|
+
return /* @__PURE__ */ jsx46(
|
|
5327
5478
|
CommandEmpty,
|
|
5328
5479
|
{
|
|
5329
5480
|
"data-slot": "searchable-select-empty",
|
|
@@ -5338,21 +5489,21 @@ function SearchableSelectEmpty({
|
|
|
5338
5489
|
import "react";
|
|
5339
5490
|
import * as SelectPrimitive from "@radix-ui/react-select";
|
|
5340
5491
|
import { CheckIcon as CheckIcon5, ChevronDownIcon as ChevronDownIcon4, ChevronUpIcon } from "lucide-react";
|
|
5341
|
-
import { jsx as
|
|
5492
|
+
import { jsx as jsx47, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
5342
5493
|
function Select({
|
|
5343
5494
|
...props
|
|
5344
5495
|
}) {
|
|
5345
|
-
return /* @__PURE__ */
|
|
5496
|
+
return /* @__PURE__ */ jsx47(SelectPrimitive.Root, { "data-slot": "select", ...props });
|
|
5346
5497
|
}
|
|
5347
5498
|
function SelectGroup({
|
|
5348
5499
|
...props
|
|
5349
5500
|
}) {
|
|
5350
|
-
return /* @__PURE__ */
|
|
5501
|
+
return /* @__PURE__ */ jsx47(SelectPrimitive.Group, { "data-slot": "select-group", ...props });
|
|
5351
5502
|
}
|
|
5352
5503
|
function SelectValue({
|
|
5353
5504
|
...props
|
|
5354
5505
|
}) {
|
|
5355
|
-
return /* @__PURE__ */
|
|
5506
|
+
return /* @__PURE__ */ jsx47(SelectPrimitive.Value, { "data-slot": "select-value", ...props });
|
|
5356
5507
|
}
|
|
5357
5508
|
function SelectTrigger({
|
|
5358
5509
|
className,
|
|
@@ -5360,7 +5511,7 @@ function SelectTrigger({
|
|
|
5360
5511
|
children,
|
|
5361
5512
|
...props
|
|
5362
5513
|
}) {
|
|
5363
|
-
return /* @__PURE__ */
|
|
5514
|
+
return /* @__PURE__ */ jsxs28(
|
|
5364
5515
|
SelectPrimitive.Trigger,
|
|
5365
5516
|
{
|
|
5366
5517
|
"data-slot": "select-trigger",
|
|
@@ -5372,7 +5523,7 @@ function SelectTrigger({
|
|
|
5372
5523
|
...props,
|
|
5373
5524
|
children: [
|
|
5374
5525
|
children,
|
|
5375
|
-
/* @__PURE__ */
|
|
5526
|
+
/* @__PURE__ */ jsx47(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx47(ChevronDownIcon4, { className: "size-4 opacity-50" }) })
|
|
5376
5527
|
]
|
|
5377
5528
|
}
|
|
5378
5529
|
);
|
|
@@ -5383,7 +5534,7 @@ function SelectContent({
|
|
|
5383
5534
|
position = "popper",
|
|
5384
5535
|
...props
|
|
5385
5536
|
}) {
|
|
5386
|
-
return /* @__PURE__ */
|
|
5537
|
+
return /* @__PURE__ */ jsx47(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs28(
|
|
5387
5538
|
SelectPrimitive.Content,
|
|
5388
5539
|
{
|
|
5389
5540
|
"data-slot": "select-content",
|
|
@@ -5395,8 +5546,8 @@ function SelectContent({
|
|
|
5395
5546
|
position,
|
|
5396
5547
|
...props,
|
|
5397
5548
|
children: [
|
|
5398
|
-
/* @__PURE__ */
|
|
5399
|
-
/* @__PURE__ */
|
|
5549
|
+
/* @__PURE__ */ jsx47(SelectScrollUpButton, {}),
|
|
5550
|
+
/* @__PURE__ */ jsx47(
|
|
5400
5551
|
SelectPrimitive.Viewport,
|
|
5401
5552
|
{
|
|
5402
5553
|
className: cn(
|
|
@@ -5406,7 +5557,7 @@ function SelectContent({
|
|
|
5406
5557
|
children
|
|
5407
5558
|
}
|
|
5408
5559
|
),
|
|
5409
|
-
/* @__PURE__ */
|
|
5560
|
+
/* @__PURE__ */ jsx47(SelectScrollDownButton, {})
|
|
5410
5561
|
]
|
|
5411
5562
|
}
|
|
5412
5563
|
) });
|
|
@@ -5415,7 +5566,7 @@ function SelectLabel({
|
|
|
5415
5566
|
className,
|
|
5416
5567
|
...props
|
|
5417
5568
|
}) {
|
|
5418
|
-
return /* @__PURE__ */
|
|
5569
|
+
return /* @__PURE__ */ jsx47(
|
|
5419
5570
|
SelectPrimitive.Label,
|
|
5420
5571
|
{
|
|
5421
5572
|
"data-slot": "select-label",
|
|
@@ -5429,7 +5580,7 @@ function SelectItem({
|
|
|
5429
5580
|
children,
|
|
5430
5581
|
...props
|
|
5431
5582
|
}) {
|
|
5432
|
-
return /* @__PURE__ */
|
|
5583
|
+
return /* @__PURE__ */ jsxs28(
|
|
5433
5584
|
SelectPrimitive.Item,
|
|
5434
5585
|
{
|
|
5435
5586
|
"data-slot": "select-item",
|
|
@@ -5439,8 +5590,8 @@ function SelectItem({
|
|
|
5439
5590
|
),
|
|
5440
5591
|
...props,
|
|
5441
5592
|
children: [
|
|
5442
|
-
/* @__PURE__ */
|
|
5443
|
-
/* @__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 })
|
|
5444
5595
|
]
|
|
5445
5596
|
}
|
|
5446
5597
|
);
|
|
@@ -5449,7 +5600,7 @@ function SelectSeparator({
|
|
|
5449
5600
|
className,
|
|
5450
5601
|
...props
|
|
5451
5602
|
}) {
|
|
5452
|
-
return /* @__PURE__ */
|
|
5603
|
+
return /* @__PURE__ */ jsx47(
|
|
5453
5604
|
SelectPrimitive.Separator,
|
|
5454
5605
|
{
|
|
5455
5606
|
"data-slot": "select-separator",
|
|
@@ -5462,7 +5613,7 @@ function SelectScrollUpButton({
|
|
|
5462
5613
|
className,
|
|
5463
5614
|
...props
|
|
5464
5615
|
}) {
|
|
5465
|
-
return /* @__PURE__ */
|
|
5616
|
+
return /* @__PURE__ */ jsx47(
|
|
5466
5617
|
SelectPrimitive.ScrollUpButton,
|
|
5467
5618
|
{
|
|
5468
5619
|
"data-slot": "select-scroll-up-button",
|
|
@@ -5471,7 +5622,7 @@ function SelectScrollUpButton({
|
|
|
5471
5622
|
className
|
|
5472
5623
|
),
|
|
5473
5624
|
...props,
|
|
5474
|
-
children: /* @__PURE__ */
|
|
5625
|
+
children: /* @__PURE__ */ jsx47(ChevronUpIcon, { className: "size-4" })
|
|
5475
5626
|
}
|
|
5476
5627
|
);
|
|
5477
5628
|
}
|
|
@@ -5479,7 +5630,7 @@ function SelectScrollDownButton({
|
|
|
5479
5630
|
className,
|
|
5480
5631
|
...props
|
|
5481
5632
|
}) {
|
|
5482
|
-
return /* @__PURE__ */
|
|
5633
|
+
return /* @__PURE__ */ jsx47(
|
|
5483
5634
|
SelectPrimitive.ScrollDownButton,
|
|
5484
5635
|
{
|
|
5485
5636
|
"data-slot": "select-scroll-down-button",
|
|
@@ -5488,7 +5639,7 @@ function SelectScrollDownButton({
|
|
|
5488
5639
|
className
|
|
5489
5640
|
),
|
|
5490
5641
|
...props,
|
|
5491
|
-
children: /* @__PURE__ */
|
|
5642
|
+
children: /* @__PURE__ */ jsx47(ChevronDownIcon4, { className: "size-4" })
|
|
5492
5643
|
}
|
|
5493
5644
|
);
|
|
5494
5645
|
}
|
|
@@ -5496,14 +5647,14 @@ function SelectScrollDownButton({
|
|
|
5496
5647
|
// src/components/ui/separator.tsx
|
|
5497
5648
|
import "react";
|
|
5498
5649
|
import * as SeparatorPrimitive from "@radix-ui/react-separator";
|
|
5499
|
-
import { jsx as
|
|
5650
|
+
import { jsx as jsx48 } from "react/jsx-runtime";
|
|
5500
5651
|
function Separator5({
|
|
5501
5652
|
className,
|
|
5502
5653
|
orientation = "horizontal",
|
|
5503
5654
|
decorative = true,
|
|
5504
5655
|
...props
|
|
5505
5656
|
}) {
|
|
5506
|
-
return /* @__PURE__ */
|
|
5657
|
+
return /* @__PURE__ */ jsx48(
|
|
5507
5658
|
SeparatorPrimitive.Root,
|
|
5508
5659
|
{
|
|
5509
5660
|
"data-slot": "separator",
|
|
@@ -5522,30 +5673,30 @@ function Separator5({
|
|
|
5522
5673
|
import * as SheetPrimitive from "@radix-ui/react-dialog";
|
|
5523
5674
|
import { XIcon as XIcon3 } from "lucide-react";
|
|
5524
5675
|
import "react";
|
|
5525
|
-
import { jsx as
|
|
5676
|
+
import { jsx as jsx49, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
5526
5677
|
function Sheet({ ...props }) {
|
|
5527
|
-
return /* @__PURE__ */
|
|
5678
|
+
return /* @__PURE__ */ jsx49(SheetPrimitive.Root, { "data-slot": "sheet", ...props });
|
|
5528
5679
|
}
|
|
5529
5680
|
function SheetTrigger({
|
|
5530
5681
|
...props
|
|
5531
5682
|
}) {
|
|
5532
|
-
return /* @__PURE__ */
|
|
5683
|
+
return /* @__PURE__ */ jsx49(SheetPrimitive.Trigger, { "data-slot": "sheet-trigger", ...props });
|
|
5533
5684
|
}
|
|
5534
5685
|
function SheetClose({
|
|
5535
5686
|
...props
|
|
5536
5687
|
}) {
|
|
5537
|
-
return /* @__PURE__ */
|
|
5688
|
+
return /* @__PURE__ */ jsx49(SheetPrimitive.Close, { "data-slot": "sheet-close", ...props });
|
|
5538
5689
|
}
|
|
5539
5690
|
function SheetPortal({
|
|
5540
5691
|
...props
|
|
5541
5692
|
}) {
|
|
5542
|
-
return /* @__PURE__ */
|
|
5693
|
+
return /* @__PURE__ */ jsx49(SheetPrimitive.Portal, { "data-slot": "sheet-portal", ...props });
|
|
5543
5694
|
}
|
|
5544
5695
|
function SheetOverlay({
|
|
5545
5696
|
className,
|
|
5546
5697
|
...props
|
|
5547
5698
|
}) {
|
|
5548
|
-
return /* @__PURE__ */
|
|
5699
|
+
return /* @__PURE__ */ jsx49(
|
|
5549
5700
|
SheetPrimitive.Overlay,
|
|
5550
5701
|
{
|
|
5551
5702
|
"data-slot": "sheet-overlay",
|
|
@@ -5564,9 +5715,9 @@ function SheetContent({
|
|
|
5564
5715
|
showCloseButton = true,
|
|
5565
5716
|
...props
|
|
5566
5717
|
}) {
|
|
5567
|
-
return /* @__PURE__ */
|
|
5568
|
-
/* @__PURE__ */
|
|
5569
|
-
/* @__PURE__ */
|
|
5718
|
+
return /* @__PURE__ */ jsxs29(SheetPortal, { children: [
|
|
5719
|
+
/* @__PURE__ */ jsx49(SheetOverlay, {}),
|
|
5720
|
+
/* @__PURE__ */ jsxs29(
|
|
5570
5721
|
SheetPrimitive.Content,
|
|
5571
5722
|
{
|
|
5572
5723
|
"data-slot": "sheet-content",
|
|
@@ -5581,9 +5732,9 @@ function SheetContent({
|
|
|
5581
5732
|
...props,
|
|
5582
5733
|
children: [
|
|
5583
5734
|
children,
|
|
5584
|
-
showCloseButton && /* @__PURE__ */
|
|
5585
|
-
/* @__PURE__ */
|
|
5586
|
-
/* @__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" })
|
|
5587
5738
|
] })
|
|
5588
5739
|
]
|
|
5589
5740
|
}
|
|
@@ -5591,7 +5742,7 @@ function SheetContent({
|
|
|
5591
5742
|
] });
|
|
5592
5743
|
}
|
|
5593
5744
|
function SheetHeader({ className, ...props }) {
|
|
5594
|
-
return /* @__PURE__ */
|
|
5745
|
+
return /* @__PURE__ */ jsx49(
|
|
5595
5746
|
"div",
|
|
5596
5747
|
{
|
|
5597
5748
|
"data-slot": "sheet-header",
|
|
@@ -5601,7 +5752,7 @@ function SheetHeader({ className, ...props }) {
|
|
|
5601
5752
|
);
|
|
5602
5753
|
}
|
|
5603
5754
|
function SheetFooter({ className, ...props }) {
|
|
5604
|
-
return /* @__PURE__ */
|
|
5755
|
+
return /* @__PURE__ */ jsx49(
|
|
5605
5756
|
"div",
|
|
5606
5757
|
{
|
|
5607
5758
|
"data-slot": "sheet-footer",
|
|
@@ -5614,7 +5765,7 @@ function SheetTitle({
|
|
|
5614
5765
|
className,
|
|
5615
5766
|
...props
|
|
5616
5767
|
}) {
|
|
5617
|
-
return /* @__PURE__ */
|
|
5768
|
+
return /* @__PURE__ */ jsx49(
|
|
5618
5769
|
SheetPrimitive.Title,
|
|
5619
5770
|
{
|
|
5620
5771
|
"data-slot": "sheet-title",
|
|
@@ -5627,7 +5778,7 @@ function SheetDescription({
|
|
|
5627
5778
|
className,
|
|
5628
5779
|
...props
|
|
5629
5780
|
}) {
|
|
5630
|
-
return /* @__PURE__ */
|
|
5781
|
+
return /* @__PURE__ */ jsx49(
|
|
5631
5782
|
SheetPrimitive.Description,
|
|
5632
5783
|
{
|
|
5633
5784
|
"data-slot": "sheet-description",
|
|
@@ -5639,14 +5790,14 @@ function SheetDescription({
|
|
|
5639
5790
|
|
|
5640
5791
|
// src/components/ui/sidebar.tsx
|
|
5641
5792
|
import { Slot as Slot6 } from "@radix-ui/react-slot";
|
|
5642
|
-
import { cva as
|
|
5793
|
+
import { cva as cva13 } from "class-variance-authority";
|
|
5643
5794
|
import { PanelLeftIcon } from "lucide-react";
|
|
5644
|
-
import * as
|
|
5795
|
+
import * as React50 from "react";
|
|
5645
5796
|
|
|
5646
5797
|
// src/components/ui/skeleton.tsx
|
|
5647
|
-
import { jsx as
|
|
5798
|
+
import { jsx as jsx50 } from "react/jsx-runtime";
|
|
5648
5799
|
function Skeleton({ className, ...props }) {
|
|
5649
|
-
return /* @__PURE__ */
|
|
5800
|
+
return /* @__PURE__ */ jsx50(
|
|
5650
5801
|
"div",
|
|
5651
5802
|
{
|
|
5652
5803
|
"data-slot": "skeleton",
|
|
@@ -5657,15 +5808,15 @@ function Skeleton({ className, ...props }) {
|
|
|
5657
5808
|
}
|
|
5658
5809
|
|
|
5659
5810
|
// src/components/ui/tooltip.tsx
|
|
5660
|
-
import "react";
|
|
5811
|
+
import * as React48 from "react";
|
|
5661
5812
|
import * as TooltipPrimitive from "@radix-ui/react-tooltip";
|
|
5662
5813
|
import { X as X4 } from "lucide-react";
|
|
5663
|
-
import { jsx as
|
|
5814
|
+
import { jsx as jsx51, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
5664
5815
|
function TooltipProvider({
|
|
5665
5816
|
delayDuration = 0,
|
|
5666
5817
|
...props
|
|
5667
5818
|
}) {
|
|
5668
|
-
return /* @__PURE__ */
|
|
5819
|
+
return /* @__PURE__ */ jsx51(
|
|
5669
5820
|
TooltipPrimitive.Provider,
|
|
5670
5821
|
{
|
|
5671
5822
|
"data-slot": "tooltip-provider",
|
|
@@ -5674,15 +5825,38 @@ function TooltipProvider({
|
|
|
5674
5825
|
}
|
|
5675
5826
|
);
|
|
5676
5827
|
}
|
|
5828
|
+
var TooltipCloseContext = React48.createContext(null);
|
|
5677
5829
|
function Tooltip2({
|
|
5830
|
+
persistent = false,
|
|
5678
5831
|
...props
|
|
5679
5832
|
}) {
|
|
5680
|
-
|
|
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
|
+
) }) });
|
|
5681
5855
|
}
|
|
5682
5856
|
function TooltipTrigger({
|
|
5683
5857
|
...props
|
|
5684
5858
|
}) {
|
|
5685
|
-
return /* @__PURE__ */
|
|
5859
|
+
return /* @__PURE__ */ jsx51(TooltipPrimitive.Trigger, { "data-slot": "tooltip-trigger", ...props });
|
|
5686
5860
|
}
|
|
5687
5861
|
function TooltipContent({
|
|
5688
5862
|
className,
|
|
@@ -5690,7 +5864,7 @@ function TooltipContent({
|
|
|
5690
5864
|
children,
|
|
5691
5865
|
...props
|
|
5692
5866
|
}) {
|
|
5693
|
-
return /* @__PURE__ */
|
|
5867
|
+
return /* @__PURE__ */ jsx51(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsxs30(
|
|
5694
5868
|
TooltipPrimitive.Content,
|
|
5695
5869
|
{
|
|
5696
5870
|
"data-slot": "tooltip-content",
|
|
@@ -5702,7 +5876,7 @@ function TooltipContent({
|
|
|
5702
5876
|
...props,
|
|
5703
5877
|
children: [
|
|
5704
5878
|
children,
|
|
5705
|
-
/* @__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]" })
|
|
5706
5880
|
]
|
|
5707
5881
|
}
|
|
5708
5882
|
) });
|
|
@@ -5717,7 +5891,12 @@ function RichTooltipContent({
|
|
|
5717
5891
|
children,
|
|
5718
5892
|
...props
|
|
5719
5893
|
}) {
|
|
5720
|
-
|
|
5894
|
+
const close = React48.useContext(TooltipCloseContext);
|
|
5895
|
+
const handleDismiss = () => {
|
|
5896
|
+
close?.();
|
|
5897
|
+
onDismiss?.();
|
|
5898
|
+
};
|
|
5899
|
+
return /* @__PURE__ */ jsx51(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsxs30(
|
|
5721
5900
|
TooltipPrimitive.Content,
|
|
5722
5901
|
{
|
|
5723
5902
|
"data-slot": "rich-tooltip-content",
|
|
@@ -5726,26 +5905,29 @@ function RichTooltipContent({
|
|
|
5726
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)",
|
|
5727
5906
|
className
|
|
5728
5907
|
),
|
|
5908
|
+
...dismissible && {
|
|
5909
|
+
onPointerDownOutside: handleDismiss
|
|
5910
|
+
},
|
|
5729
5911
|
...props,
|
|
5730
5912
|
children: [
|
|
5731
|
-
/* @__PURE__ */
|
|
5732
|
-
icon && /* @__PURE__ */
|
|
5733
|
-
/* @__PURE__ */
|
|
5734
|
-
heading && /* @__PURE__ */
|
|
5735
|
-
/* @__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 })
|
|
5736
5918
|
] }),
|
|
5737
|
-
dismissible && /* @__PURE__ */
|
|
5919
|
+
dismissible && /* @__PURE__ */ jsx51(
|
|
5738
5920
|
"button",
|
|
5739
5921
|
{
|
|
5740
5922
|
type: "button",
|
|
5741
|
-
onClick:
|
|
5923
|
+
onClick: handleDismiss,
|
|
5742
5924
|
className: "flex items-center justify-center shrink-0 size-5 text-white/70 hover:text-white transition-colors cursor-pointer",
|
|
5743
5925
|
"aria-label": "Dismiss",
|
|
5744
|
-
children: /* @__PURE__ */
|
|
5926
|
+
children: /* @__PURE__ */ jsx51(X4, { className: "size-3.5" })
|
|
5745
5927
|
}
|
|
5746
5928
|
)
|
|
5747
5929
|
] }),
|
|
5748
|
-
/* @__PURE__ */
|
|
5930
|
+
/* @__PURE__ */ jsx51(
|
|
5749
5931
|
TooltipPrimitive.Arrow,
|
|
5750
5932
|
{
|
|
5751
5933
|
width: 16,
|
|
@@ -5759,11 +5941,11 @@ function RichTooltipContent({
|
|
|
5759
5941
|
}
|
|
5760
5942
|
|
|
5761
5943
|
// src/hooks/use-mobile.ts
|
|
5762
|
-
import * as
|
|
5944
|
+
import * as React49 from "react";
|
|
5763
5945
|
var MOBILE_BREAKPOINT = 768;
|
|
5764
5946
|
function useIsMobile() {
|
|
5765
|
-
const [isMobile, setIsMobile] =
|
|
5766
|
-
|
|
5947
|
+
const [isMobile, setIsMobile] = React49.useState(void 0);
|
|
5948
|
+
React49.useEffect(() => {
|
|
5767
5949
|
const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
|
|
5768
5950
|
const onChange = () => {
|
|
5769
5951
|
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
@@ -5776,16 +5958,16 @@ function useIsMobile() {
|
|
|
5776
5958
|
}
|
|
5777
5959
|
|
|
5778
5960
|
// src/components/ui/sidebar.tsx
|
|
5779
|
-
import { jsx as
|
|
5961
|
+
import { jsx as jsx52, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
5780
5962
|
var SIDEBAR_COOKIE_NAME = "sidebar_state";
|
|
5781
5963
|
var SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
|
|
5782
5964
|
var SIDEBAR_WIDTH = "18rem";
|
|
5783
5965
|
var SIDEBAR_WIDTH_MOBILE = "18rem";
|
|
5784
5966
|
var SIDEBAR_WIDTH_ICON = "3rem";
|
|
5785
5967
|
var SIDEBAR_KEYBOARD_SHORTCUT = "b";
|
|
5786
|
-
var SidebarContext =
|
|
5968
|
+
var SidebarContext = React50.createContext(null);
|
|
5787
5969
|
function useSidebar() {
|
|
5788
|
-
const context =
|
|
5970
|
+
const context = React50.useContext(SidebarContext);
|
|
5789
5971
|
if (!context) {
|
|
5790
5972
|
throw new Error("useSidebar must be used within a SidebarProvider.");
|
|
5791
5973
|
}
|
|
@@ -5801,10 +5983,10 @@ function SidebarProvider({
|
|
|
5801
5983
|
...props
|
|
5802
5984
|
}) {
|
|
5803
5985
|
const isMobile = useIsMobile();
|
|
5804
|
-
const [openMobile, setOpenMobile] =
|
|
5805
|
-
const [_open, _setOpen] =
|
|
5986
|
+
const [openMobile, setOpenMobile] = React50.useState(false);
|
|
5987
|
+
const [_open, _setOpen] = React50.useState(defaultOpen);
|
|
5806
5988
|
const open = openProp ?? _open;
|
|
5807
|
-
const setOpen =
|
|
5989
|
+
const setOpen = React50.useCallback(
|
|
5808
5990
|
(value) => {
|
|
5809
5991
|
const openState = typeof value === "function" ? value(open) : value;
|
|
5810
5992
|
if (setOpenProp) {
|
|
@@ -5816,10 +5998,10 @@ function SidebarProvider({
|
|
|
5816
5998
|
},
|
|
5817
5999
|
[setOpenProp, open]
|
|
5818
6000
|
);
|
|
5819
|
-
const toggleSidebar =
|
|
6001
|
+
const toggleSidebar = React50.useCallback(() => {
|
|
5820
6002
|
return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
|
|
5821
6003
|
}, [isMobile, setOpen, setOpenMobile]);
|
|
5822
|
-
|
|
6004
|
+
React50.useEffect(() => {
|
|
5823
6005
|
const handleKeyDown = (event) => {
|
|
5824
6006
|
if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
|
|
5825
6007
|
event.preventDefault();
|
|
@@ -5830,7 +6012,7 @@ function SidebarProvider({
|
|
|
5830
6012
|
return () => window.removeEventListener("keydown", handleKeyDown);
|
|
5831
6013
|
}, [toggleSidebar]);
|
|
5832
6014
|
const state = open ? "expanded" : "collapsed";
|
|
5833
|
-
const contextValue =
|
|
6015
|
+
const contextValue = React50.useMemo(
|
|
5834
6016
|
() => ({
|
|
5835
6017
|
state,
|
|
5836
6018
|
open,
|
|
@@ -5842,7 +6024,7 @@ function SidebarProvider({
|
|
|
5842
6024
|
}),
|
|
5843
6025
|
[state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]
|
|
5844
6026
|
);
|
|
5845
|
-
return /* @__PURE__ */
|
|
6027
|
+
return /* @__PURE__ */ jsx52(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx52(TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ jsx52(
|
|
5846
6028
|
"div",
|
|
5847
6029
|
{
|
|
5848
6030
|
"data-slot": "sidebar-wrapper",
|
|
@@ -5870,7 +6052,7 @@ function Sidebar({
|
|
|
5870
6052
|
}) {
|
|
5871
6053
|
const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
|
|
5872
6054
|
if (collapsible === "none") {
|
|
5873
|
-
return /* @__PURE__ */
|
|
6055
|
+
return /* @__PURE__ */ jsx52(
|
|
5874
6056
|
"div",
|
|
5875
6057
|
{
|
|
5876
6058
|
"data-slot": "sidebar",
|
|
@@ -5884,7 +6066,7 @@ function Sidebar({
|
|
|
5884
6066
|
);
|
|
5885
6067
|
}
|
|
5886
6068
|
if (isMobile) {
|
|
5887
|
-
return /* @__PURE__ */
|
|
6069
|
+
return /* @__PURE__ */ jsx52(Sheet, { open: openMobile, onOpenChange: setOpenMobile, ...props, children: /* @__PURE__ */ jsxs31(
|
|
5888
6070
|
SheetContent,
|
|
5889
6071
|
{
|
|
5890
6072
|
"data-sidebar": "sidebar",
|
|
@@ -5896,16 +6078,16 @@ function Sidebar({
|
|
|
5896
6078
|
},
|
|
5897
6079
|
side,
|
|
5898
6080
|
children: [
|
|
5899
|
-
/* @__PURE__ */
|
|
5900
|
-
/* @__PURE__ */
|
|
5901
|
-
/* @__PURE__ */
|
|
6081
|
+
/* @__PURE__ */ jsxs31(SheetHeader, { className: "sr-only", children: [
|
|
6082
|
+
/* @__PURE__ */ jsx52(SheetTitle, { children: "Sidebar" }),
|
|
6083
|
+
/* @__PURE__ */ jsx52(SheetDescription, { children: "Displays the mobile sidebar." })
|
|
5902
6084
|
] }),
|
|
5903
|
-
/* @__PURE__ */
|
|
6085
|
+
/* @__PURE__ */ jsx52("div", { className: "flex h-full w-full flex-col", children })
|
|
5904
6086
|
]
|
|
5905
6087
|
}
|
|
5906
6088
|
) });
|
|
5907
6089
|
}
|
|
5908
|
-
return /* @__PURE__ */
|
|
6090
|
+
return /* @__PURE__ */ jsxs31(
|
|
5909
6091
|
"div",
|
|
5910
6092
|
{
|
|
5911
6093
|
className: "group peer text-sidebar-foreground hidden md:block",
|
|
@@ -5915,7 +6097,7 @@ function Sidebar({
|
|
|
5915
6097
|
"data-side": side,
|
|
5916
6098
|
"data-slot": "sidebar",
|
|
5917
6099
|
children: [
|
|
5918
|
-
/* @__PURE__ */
|
|
6100
|
+
/* @__PURE__ */ jsx52(
|
|
5919
6101
|
"div",
|
|
5920
6102
|
{
|
|
5921
6103
|
"data-slot": "sidebar-gap",
|
|
@@ -5927,7 +6109,7 @@ function Sidebar({
|
|
|
5927
6109
|
)
|
|
5928
6110
|
}
|
|
5929
6111
|
),
|
|
5930
|
-
/* @__PURE__ */
|
|
6112
|
+
/* @__PURE__ */ jsx52(
|
|
5931
6113
|
"div",
|
|
5932
6114
|
{
|
|
5933
6115
|
"data-slot": "sidebar-container",
|
|
@@ -5939,7 +6121,7 @@ function Sidebar({
|
|
|
5939
6121
|
className
|
|
5940
6122
|
),
|
|
5941
6123
|
...props,
|
|
5942
|
-
children: /* @__PURE__ */
|
|
6124
|
+
children: /* @__PURE__ */ jsx52(
|
|
5943
6125
|
"div",
|
|
5944
6126
|
{
|
|
5945
6127
|
"data-sidebar": "sidebar",
|
|
@@ -5960,7 +6142,7 @@ function SidebarTrigger({
|
|
|
5960
6142
|
...props
|
|
5961
6143
|
}) {
|
|
5962
6144
|
const { toggleSidebar } = useSidebar();
|
|
5963
|
-
return /* @__PURE__ */
|
|
6145
|
+
return /* @__PURE__ */ jsxs31(
|
|
5964
6146
|
Button,
|
|
5965
6147
|
{
|
|
5966
6148
|
"data-sidebar": "trigger",
|
|
@@ -5974,15 +6156,15 @@ function SidebarTrigger({
|
|
|
5974
6156
|
},
|
|
5975
6157
|
...props,
|
|
5976
6158
|
children: [
|
|
5977
|
-
/* @__PURE__ */
|
|
5978
|
-
/* @__PURE__ */
|
|
6159
|
+
/* @__PURE__ */ jsx52(PanelLeftIcon, {}),
|
|
6160
|
+
/* @__PURE__ */ jsx52("span", { className: "sr-only", children: "Toggle Sidebar" })
|
|
5979
6161
|
]
|
|
5980
6162
|
}
|
|
5981
6163
|
);
|
|
5982
6164
|
}
|
|
5983
6165
|
function SidebarRail({ className, ...props }) {
|
|
5984
6166
|
const { toggleSidebar } = useSidebar();
|
|
5985
|
-
return /* @__PURE__ */
|
|
6167
|
+
return /* @__PURE__ */ jsx52(
|
|
5986
6168
|
"button",
|
|
5987
6169
|
{
|
|
5988
6170
|
"data-sidebar": "rail",
|
|
@@ -6005,7 +6187,7 @@ function SidebarRail({ className, ...props }) {
|
|
|
6005
6187
|
);
|
|
6006
6188
|
}
|
|
6007
6189
|
function SidebarInset({ className, ...props }) {
|
|
6008
|
-
return /* @__PURE__ */
|
|
6190
|
+
return /* @__PURE__ */ jsx52(
|
|
6009
6191
|
"main",
|
|
6010
6192
|
{
|
|
6011
6193
|
"data-slot": "sidebar-inset",
|
|
@@ -6022,7 +6204,7 @@ function SidebarInput({
|
|
|
6022
6204
|
className,
|
|
6023
6205
|
...props
|
|
6024
6206
|
}) {
|
|
6025
|
-
return /* @__PURE__ */
|
|
6207
|
+
return /* @__PURE__ */ jsx52(
|
|
6026
6208
|
Input,
|
|
6027
6209
|
{
|
|
6028
6210
|
"data-slot": "sidebar-input",
|
|
@@ -6033,7 +6215,7 @@ function SidebarInput({
|
|
|
6033
6215
|
);
|
|
6034
6216
|
}
|
|
6035
6217
|
function SidebarHeader({ className, ...props }) {
|
|
6036
|
-
return /* @__PURE__ */
|
|
6218
|
+
return /* @__PURE__ */ jsx52(
|
|
6037
6219
|
"div",
|
|
6038
6220
|
{
|
|
6039
6221
|
"data-slot": "sidebar-header",
|
|
@@ -6044,7 +6226,7 @@ function SidebarHeader({ className, ...props }) {
|
|
|
6044
6226
|
);
|
|
6045
6227
|
}
|
|
6046
6228
|
function SidebarFooter({ className, ...props }) {
|
|
6047
|
-
return /* @__PURE__ */
|
|
6229
|
+
return /* @__PURE__ */ jsx52(
|
|
6048
6230
|
"div",
|
|
6049
6231
|
{
|
|
6050
6232
|
"data-slot": "sidebar-footer",
|
|
@@ -6058,7 +6240,7 @@ function SidebarSeparator({
|
|
|
6058
6240
|
className,
|
|
6059
6241
|
...props
|
|
6060
6242
|
}) {
|
|
6061
|
-
return /* @__PURE__ */
|
|
6243
|
+
return /* @__PURE__ */ jsx52(
|
|
6062
6244
|
Separator5,
|
|
6063
6245
|
{
|
|
6064
6246
|
"data-slot": "sidebar-separator",
|
|
@@ -6069,7 +6251,7 @@ function SidebarSeparator({
|
|
|
6069
6251
|
);
|
|
6070
6252
|
}
|
|
6071
6253
|
function SidebarContent({ className, ...props }) {
|
|
6072
|
-
return /* @__PURE__ */
|
|
6254
|
+
return /* @__PURE__ */ jsx52(
|
|
6073
6255
|
"div",
|
|
6074
6256
|
{
|
|
6075
6257
|
"data-slot": "sidebar-content",
|
|
@@ -6083,7 +6265,7 @@ function SidebarContent({ className, ...props }) {
|
|
|
6083
6265
|
);
|
|
6084
6266
|
}
|
|
6085
6267
|
function SidebarGroup({ className, ...props }) {
|
|
6086
|
-
return /* @__PURE__ */
|
|
6268
|
+
return /* @__PURE__ */ jsx52(
|
|
6087
6269
|
"div",
|
|
6088
6270
|
{
|
|
6089
6271
|
"data-slot": "sidebar-group",
|
|
@@ -6099,7 +6281,7 @@ function SidebarGroupLabel({
|
|
|
6099
6281
|
...props
|
|
6100
6282
|
}) {
|
|
6101
6283
|
const Comp = asChild ? Slot6 : "div";
|
|
6102
|
-
return /* @__PURE__ */
|
|
6284
|
+
return /* @__PURE__ */ jsx52(
|
|
6103
6285
|
Comp,
|
|
6104
6286
|
{
|
|
6105
6287
|
"data-slot": "sidebar-group-label",
|
|
@@ -6119,7 +6301,7 @@ function SidebarGroupAction({
|
|
|
6119
6301
|
...props
|
|
6120
6302
|
}) {
|
|
6121
6303
|
const Comp = asChild ? Slot6 : "button";
|
|
6122
|
-
return /* @__PURE__ */
|
|
6304
|
+
return /* @__PURE__ */ jsx52(
|
|
6123
6305
|
Comp,
|
|
6124
6306
|
{
|
|
6125
6307
|
"data-slot": "sidebar-group-action",
|
|
@@ -6139,7 +6321,7 @@ function SidebarGroupContent({
|
|
|
6139
6321
|
className,
|
|
6140
6322
|
...props
|
|
6141
6323
|
}) {
|
|
6142
|
-
return /* @__PURE__ */
|
|
6324
|
+
return /* @__PURE__ */ jsx52(
|
|
6143
6325
|
"div",
|
|
6144
6326
|
{
|
|
6145
6327
|
"data-slot": "sidebar-group-content",
|
|
@@ -6150,7 +6332,7 @@ function SidebarGroupContent({
|
|
|
6150
6332
|
);
|
|
6151
6333
|
}
|
|
6152
6334
|
function SidebarMenu({ className, ...props }) {
|
|
6153
|
-
return /* @__PURE__ */
|
|
6335
|
+
return /* @__PURE__ */ jsx52(
|
|
6154
6336
|
"ul",
|
|
6155
6337
|
{
|
|
6156
6338
|
"data-slot": "sidebar-menu",
|
|
@@ -6161,7 +6343,7 @@ function SidebarMenu({ className, ...props }) {
|
|
|
6161
6343
|
);
|
|
6162
6344
|
}
|
|
6163
6345
|
function SidebarMenuItem({ className, ...props }) {
|
|
6164
|
-
return /* @__PURE__ */
|
|
6346
|
+
return /* @__PURE__ */ jsx52(
|
|
6165
6347
|
"li",
|
|
6166
6348
|
{
|
|
6167
6349
|
"data-slot": "sidebar-menu-item",
|
|
@@ -6171,7 +6353,7 @@ function SidebarMenuItem({ className, ...props }) {
|
|
|
6171
6353
|
}
|
|
6172
6354
|
);
|
|
6173
6355
|
}
|
|
6174
|
-
var sidebarMenuButtonVariants =
|
|
6356
|
+
var sidebarMenuButtonVariants = cva13(
|
|
6175
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",
|
|
6176
6358
|
{
|
|
6177
6359
|
variants: {
|
|
@@ -6202,7 +6384,7 @@ function SidebarMenuButton({
|
|
|
6202
6384
|
}) {
|
|
6203
6385
|
const Comp = asChild ? Slot6 : "button";
|
|
6204
6386
|
const { isMobile, state } = useSidebar();
|
|
6205
|
-
const button = /* @__PURE__ */
|
|
6387
|
+
const button = /* @__PURE__ */ jsx52(
|
|
6206
6388
|
Comp,
|
|
6207
6389
|
{
|
|
6208
6390
|
"data-slot": "sidebar-menu-button",
|
|
@@ -6221,9 +6403,9 @@ function SidebarMenuButton({
|
|
|
6221
6403
|
children: tooltip
|
|
6222
6404
|
};
|
|
6223
6405
|
}
|
|
6224
|
-
return /* @__PURE__ */
|
|
6225
|
-
/* @__PURE__ */
|
|
6226
|
-
/* @__PURE__ */
|
|
6406
|
+
return /* @__PURE__ */ jsxs31(Tooltip2, { children: [
|
|
6407
|
+
/* @__PURE__ */ jsx52(TooltipTrigger, { asChild: true, children: button }),
|
|
6408
|
+
/* @__PURE__ */ jsx52(
|
|
6227
6409
|
TooltipContent,
|
|
6228
6410
|
{
|
|
6229
6411
|
side: "right",
|
|
@@ -6241,7 +6423,7 @@ function SidebarMenuAction({
|
|
|
6241
6423
|
...props
|
|
6242
6424
|
}) {
|
|
6243
6425
|
const Comp = asChild ? Slot6 : "button";
|
|
6244
|
-
return /* @__PURE__ */
|
|
6426
|
+
return /* @__PURE__ */ jsx52(
|
|
6245
6427
|
Comp,
|
|
6246
6428
|
{
|
|
6247
6429
|
"data-slot": "sidebar-menu-action",
|
|
@@ -6265,7 +6447,7 @@ function SidebarMenuBadge({
|
|
|
6265
6447
|
className,
|
|
6266
6448
|
...props
|
|
6267
6449
|
}) {
|
|
6268
|
-
return /* @__PURE__ */
|
|
6450
|
+
return /* @__PURE__ */ jsx52(
|
|
6269
6451
|
"div",
|
|
6270
6452
|
{
|
|
6271
6453
|
"data-slot": "sidebar-menu-badge",
|
|
@@ -6288,10 +6470,10 @@ function SidebarMenuSkeleton({
|
|
|
6288
6470
|
showIcon = false,
|
|
6289
6471
|
...props
|
|
6290
6472
|
}) {
|
|
6291
|
-
const width =
|
|
6473
|
+
const width = React50.useMemo(() => {
|
|
6292
6474
|
return `${Math.floor(Math.random() * 40) + 50}%`;
|
|
6293
6475
|
}, []);
|
|
6294
|
-
return /* @__PURE__ */
|
|
6476
|
+
return /* @__PURE__ */ jsxs31(
|
|
6295
6477
|
"div",
|
|
6296
6478
|
{
|
|
6297
6479
|
"data-slot": "sidebar-menu-skeleton",
|
|
@@ -6299,14 +6481,14 @@ function SidebarMenuSkeleton({
|
|
|
6299
6481
|
className: cn("flex h-8 items-center gap-2 rounded-md px-2", className),
|
|
6300
6482
|
...props,
|
|
6301
6483
|
children: [
|
|
6302
|
-
showIcon && /* @__PURE__ */
|
|
6484
|
+
showIcon && /* @__PURE__ */ jsx52(
|
|
6303
6485
|
Skeleton,
|
|
6304
6486
|
{
|
|
6305
6487
|
className: "size-4 rounded-md",
|
|
6306
6488
|
"data-sidebar": "menu-skeleton-icon"
|
|
6307
6489
|
}
|
|
6308
6490
|
),
|
|
6309
|
-
/* @__PURE__ */
|
|
6491
|
+
/* @__PURE__ */ jsx52(
|
|
6310
6492
|
Skeleton,
|
|
6311
6493
|
{
|
|
6312
6494
|
className: "h-4 max-w-(--skeleton-width) flex-1",
|
|
@@ -6321,7 +6503,7 @@ function SidebarMenuSkeleton({
|
|
|
6321
6503
|
);
|
|
6322
6504
|
}
|
|
6323
6505
|
function SidebarMenuSub({ className, ...props }) {
|
|
6324
|
-
return /* @__PURE__ */
|
|
6506
|
+
return /* @__PURE__ */ jsx52(
|
|
6325
6507
|
"ul",
|
|
6326
6508
|
{
|
|
6327
6509
|
"data-slot": "sidebar-menu-sub",
|
|
@@ -6339,7 +6521,7 @@ function SidebarMenuSubItem({
|
|
|
6339
6521
|
className,
|
|
6340
6522
|
...props
|
|
6341
6523
|
}) {
|
|
6342
|
-
return /* @__PURE__ */
|
|
6524
|
+
return /* @__PURE__ */ jsx52(
|
|
6343
6525
|
"li",
|
|
6344
6526
|
{
|
|
6345
6527
|
"data-slot": "sidebar-menu-sub-item",
|
|
@@ -6357,7 +6539,7 @@ function SidebarMenuSubButton({
|
|
|
6357
6539
|
...props
|
|
6358
6540
|
}) {
|
|
6359
6541
|
const Comp = asChild ? Slot6 : "a";
|
|
6360
|
-
return /* @__PURE__ */
|
|
6542
|
+
return /* @__PURE__ */ jsx52(
|
|
6361
6543
|
Comp,
|
|
6362
6544
|
{
|
|
6363
6545
|
"data-slot": "sidebar-menu-sub-button",
|
|
@@ -6378,9 +6560,9 @@ function SidebarMenuSubButton({
|
|
|
6378
6560
|
}
|
|
6379
6561
|
|
|
6380
6562
|
// src/components/ui/slider.tsx
|
|
6381
|
-
import * as
|
|
6563
|
+
import * as React51 from "react";
|
|
6382
6564
|
import * as SliderPrimitive from "@radix-ui/react-slider";
|
|
6383
|
-
import { jsx as
|
|
6565
|
+
import { jsx as jsx53, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
6384
6566
|
function Slider({
|
|
6385
6567
|
className,
|
|
6386
6568
|
defaultValue,
|
|
@@ -6389,11 +6571,11 @@ function Slider({
|
|
|
6389
6571
|
max = 100,
|
|
6390
6572
|
...props
|
|
6391
6573
|
}) {
|
|
6392
|
-
const _values =
|
|
6574
|
+
const _values = React51.useMemo(
|
|
6393
6575
|
() => Array.isArray(value) ? value : Array.isArray(defaultValue) ? defaultValue : [min, max],
|
|
6394
6576
|
[value, defaultValue, min, max]
|
|
6395
6577
|
);
|
|
6396
|
-
return /* @__PURE__ */
|
|
6578
|
+
return /* @__PURE__ */ jsxs32(
|
|
6397
6579
|
SliderPrimitive.Root,
|
|
6398
6580
|
{
|
|
6399
6581
|
"data-slot": "slider",
|
|
@@ -6407,14 +6589,14 @@ function Slider({
|
|
|
6407
6589
|
),
|
|
6408
6590
|
...props,
|
|
6409
6591
|
children: [
|
|
6410
|
-
/* @__PURE__ */
|
|
6592
|
+
/* @__PURE__ */ jsx53(
|
|
6411
6593
|
SliderPrimitive.Track,
|
|
6412
6594
|
{
|
|
6413
6595
|
"data-slot": "slider-track",
|
|
6414
6596
|
className: cn(
|
|
6415
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"
|
|
6416
6598
|
),
|
|
6417
|
-
children: /* @__PURE__ */
|
|
6599
|
+
children: /* @__PURE__ */ jsx53(
|
|
6418
6600
|
SliderPrimitive.Range,
|
|
6419
6601
|
{
|
|
6420
6602
|
"data-slot": "slider-range",
|
|
@@ -6425,7 +6607,7 @@ function Slider({
|
|
|
6425
6607
|
)
|
|
6426
6608
|
}
|
|
6427
6609
|
),
|
|
6428
|
-
Array.from({ length: _values.length }, (_, index) => /* @__PURE__ */
|
|
6610
|
+
Array.from({ length: _values.length }, (_, index) => /* @__PURE__ */ jsx53(
|
|
6429
6611
|
SliderPrimitive.Thumb,
|
|
6430
6612
|
{
|
|
6431
6613
|
"data-slot": "slider-thumb",
|
|
@@ -6442,7 +6624,7 @@ function Slider({
|
|
|
6442
6624
|
import "react";
|
|
6443
6625
|
|
|
6444
6626
|
// src/components/ui/useMediaQuery.ts
|
|
6445
|
-
import { useEffect as useEffect8, useState as
|
|
6627
|
+
import { useEffect as useEffect8, useState as useState11 } from "react";
|
|
6446
6628
|
function useMediaQuery(query) {
|
|
6447
6629
|
const getMatches = (query2) => {
|
|
6448
6630
|
if (typeof window !== "undefined") {
|
|
@@ -6450,7 +6632,7 @@ function useMediaQuery(query) {
|
|
|
6450
6632
|
}
|
|
6451
6633
|
return false;
|
|
6452
6634
|
};
|
|
6453
|
-
const [matches, setMatches] =
|
|
6635
|
+
const [matches, setMatches] = useState11(getMatches(query));
|
|
6454
6636
|
function handleChange() {
|
|
6455
6637
|
setMatches(getMatches(query));
|
|
6456
6638
|
}
|
|
@@ -6474,10 +6656,10 @@ function useMediaQuery(query) {
|
|
|
6474
6656
|
}
|
|
6475
6657
|
|
|
6476
6658
|
// src/components/ui/smart-dialog-drawer.tsx
|
|
6477
|
-
import { Fragment as Fragment3, jsx as
|
|
6659
|
+
import { Fragment as Fragment3, jsx as jsx54 } from "react/jsx-runtime";
|
|
6478
6660
|
var SmartDialog = ({ children, ...props }) => {
|
|
6479
6661
|
const isMobile = useMediaQuery("(max-width: 600px)");
|
|
6480
|
-
return isMobile ? /* @__PURE__ */
|
|
6662
|
+
return isMobile ? /* @__PURE__ */ jsx54(Drawer, { ...props, children }) : /* @__PURE__ */ jsx54(Dialog, { ...props, children });
|
|
6481
6663
|
};
|
|
6482
6664
|
var SmartDialogContent = ({
|
|
6483
6665
|
children,
|
|
@@ -6487,14 +6669,14 @@ var SmartDialogContent = ({
|
|
|
6487
6669
|
...props
|
|
6488
6670
|
}) => {
|
|
6489
6671
|
const isMobile = useMediaQuery("(max-width: 600px)");
|
|
6490
|
-
return isMobile ? /* @__PURE__ */
|
|
6672
|
+
return isMobile ? /* @__PURE__ */ jsx54(
|
|
6491
6673
|
DrawerContent,
|
|
6492
6674
|
{
|
|
6493
6675
|
...props,
|
|
6494
6676
|
withCloseButton: withCloseButton ?? showCloseButton ?? true,
|
|
6495
6677
|
children
|
|
6496
6678
|
}
|
|
6497
|
-
) : /* @__PURE__ */
|
|
6679
|
+
) : /* @__PURE__ */ jsx54(
|
|
6498
6680
|
DialogContent,
|
|
6499
6681
|
{
|
|
6500
6682
|
...props,
|
|
@@ -6509,47 +6691,63 @@ var SmartDialogDescription = ({
|
|
|
6509
6691
|
...props
|
|
6510
6692
|
}) => {
|
|
6511
6693
|
const isMobile = useMediaQuery("(max-width: 600px)");
|
|
6512
|
-
return isMobile ? /* @__PURE__ */
|
|
6694
|
+
return isMobile ? /* @__PURE__ */ jsx54(DrawerDescription, { ...props, children }) : /* @__PURE__ */ jsx54(DialogDescription, { ...props, children });
|
|
6513
6695
|
};
|
|
6514
6696
|
var SmartDialogHeader = ({ children, ...props }) => {
|
|
6515
6697
|
const isMobile = useMediaQuery("(max-width: 600px)");
|
|
6516
|
-
return isMobile ? /* @__PURE__ */
|
|
6698
|
+
return isMobile ? /* @__PURE__ */ jsx54(DrawerHeader, { ...props, children }) : /* @__PURE__ */ jsx54(DialogHeader, { ...props, children });
|
|
6517
6699
|
};
|
|
6518
6700
|
var SmartDialogTitle = ({ children, ...props }) => {
|
|
6519
6701
|
const isMobile = useMediaQuery("(max-width: 600px)");
|
|
6520
|
-
return isMobile ? /* @__PURE__ */
|
|
6702
|
+
return isMobile ? /* @__PURE__ */ jsx54(DrawerTitle, { ...props, children }) : /* @__PURE__ */ jsx54(DialogTitle, { ...props, children });
|
|
6521
6703
|
};
|
|
6522
6704
|
var SmartDialogTrigger = ({
|
|
6523
6705
|
children,
|
|
6524
6706
|
...props
|
|
6525
6707
|
}) => {
|
|
6526
6708
|
const isMobile = useMediaQuery("(max-width: 600px)");
|
|
6527
|
-
return isMobile ? /* @__PURE__ */
|
|
6709
|
+
return isMobile ? /* @__PURE__ */ jsx54(DrawerTrigger, { ...props, children }) : /* @__PURE__ */ jsx54(DialogTrigger, { ...props, children });
|
|
6528
6710
|
};
|
|
6529
6711
|
var SmartDialogFooter = ({ children, ...props }) => {
|
|
6530
6712
|
const isMobile = useMediaQuery("(max-width: 600px)");
|
|
6531
|
-
return isMobile ? /* @__PURE__ */
|
|
6713
|
+
return isMobile ? /* @__PURE__ */ jsx54(DrawerFooter, { ...props, children }) : /* @__PURE__ */ jsx54(DialogFooter, { ...props, children });
|
|
6532
6714
|
};
|
|
6533
6715
|
var SmartDialogClose = ({ children, ...props }) => {
|
|
6534
6716
|
const isMobile = useMediaQuery("(max-width: 600px)");
|
|
6535
|
-
return isMobile ? /* @__PURE__ */
|
|
6717
|
+
return isMobile ? /* @__PURE__ */ jsx54(Fragment3, { children: /* @__PURE__ */ jsx54(DrawerClose, { ...props, children }) }) : /* @__PURE__ */ jsx54(DialogClose, { ...props, children });
|
|
6536
6718
|
};
|
|
6537
6719
|
|
|
6538
6720
|
// src/components/ui/sonner.tsx
|
|
6721
|
+
import { CircleCheck, Info, TriangleAlert } from "lucide-react";
|
|
6539
6722
|
import { useTheme } from "next-themes";
|
|
6540
|
-
import { Toaster as Sonner } from "sonner";
|
|
6541
|
-
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 });
|
|
6542
6726
|
var Toaster = ({ ...props }) => {
|
|
6543
6727
|
const { theme = "system" } = useTheme();
|
|
6544
|
-
return /* @__PURE__ */
|
|
6728
|
+
return /* @__PURE__ */ jsx55(
|
|
6545
6729
|
Sonner,
|
|
6546
6730
|
{
|
|
6547
6731
|
theme,
|
|
6548
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
|
+
},
|
|
6549
6749
|
style: {
|
|
6550
|
-
"--
|
|
6551
|
-
"--normal-text": "var(--popover-foreground)",
|
|
6552
|
-
"--normal-border": "var(--border)"
|
|
6750
|
+
"--width": "436px"
|
|
6553
6751
|
},
|
|
6554
6752
|
...props
|
|
6555
6753
|
}
|
|
@@ -6559,12 +6757,12 @@ var Toaster = ({ ...props }) => {
|
|
|
6559
6757
|
// src/components/ui/switch.tsx
|
|
6560
6758
|
import * as SwitchPrimitive from "@radix-ui/react-switch";
|
|
6561
6759
|
import "react";
|
|
6562
|
-
import { jsx as
|
|
6760
|
+
import { jsx as jsx56 } from "react/jsx-runtime";
|
|
6563
6761
|
function Switch({
|
|
6564
6762
|
className,
|
|
6565
6763
|
...props
|
|
6566
6764
|
}) {
|
|
6567
|
-
return /* @__PURE__ */
|
|
6765
|
+
return /* @__PURE__ */ jsx56(
|
|
6568
6766
|
SwitchPrimitive.Root,
|
|
6569
6767
|
{
|
|
6570
6768
|
"data-slot": "switch",
|
|
@@ -6573,7 +6771,7 @@ function Switch({
|
|
|
6573
6771
|
className
|
|
6574
6772
|
),
|
|
6575
6773
|
...props,
|
|
6576
|
-
children: /* @__PURE__ */
|
|
6774
|
+
children: /* @__PURE__ */ jsx56(
|
|
6577
6775
|
SwitchPrimitive.Thumb,
|
|
6578
6776
|
{
|
|
6579
6777
|
"data-slot": "switch-thumb",
|
|
@@ -6588,14 +6786,14 @@ function Switch({
|
|
|
6588
6786
|
|
|
6589
6787
|
// src/components/ui/table.tsx
|
|
6590
6788
|
import "react";
|
|
6591
|
-
import { jsx as
|
|
6789
|
+
import { jsx as jsx57 } from "react/jsx-runtime";
|
|
6592
6790
|
function Table({ className, ...props }) {
|
|
6593
|
-
return /* @__PURE__ */
|
|
6791
|
+
return /* @__PURE__ */ jsx57(
|
|
6594
6792
|
"div",
|
|
6595
6793
|
{
|
|
6596
6794
|
"data-slot": "table-container",
|
|
6597
6795
|
className: "relative w-full overflow-x-auto",
|
|
6598
|
-
children: /* @__PURE__ */
|
|
6796
|
+
children: /* @__PURE__ */ jsx57(
|
|
6599
6797
|
"table",
|
|
6600
6798
|
{
|
|
6601
6799
|
"data-slot": "table",
|
|
@@ -6607,7 +6805,7 @@ function Table({ className, ...props }) {
|
|
|
6607
6805
|
);
|
|
6608
6806
|
}
|
|
6609
6807
|
function TableHeader({ className, ...props }) {
|
|
6610
|
-
return /* @__PURE__ */
|
|
6808
|
+
return /* @__PURE__ */ jsx57(
|
|
6611
6809
|
"thead",
|
|
6612
6810
|
{
|
|
6613
6811
|
"data-slot": "table-header",
|
|
@@ -6617,7 +6815,7 @@ function TableHeader({ className, ...props }) {
|
|
|
6617
6815
|
);
|
|
6618
6816
|
}
|
|
6619
6817
|
function TableBody({ className, ...props }) {
|
|
6620
|
-
return /* @__PURE__ */
|
|
6818
|
+
return /* @__PURE__ */ jsx57(
|
|
6621
6819
|
"tbody",
|
|
6622
6820
|
{
|
|
6623
6821
|
"data-slot": "table-body",
|
|
@@ -6627,7 +6825,7 @@ function TableBody({ className, ...props }) {
|
|
|
6627
6825
|
);
|
|
6628
6826
|
}
|
|
6629
6827
|
function TableFooter({ className, ...props }) {
|
|
6630
|
-
return /* @__PURE__ */
|
|
6828
|
+
return /* @__PURE__ */ jsx57(
|
|
6631
6829
|
"tfoot",
|
|
6632
6830
|
{
|
|
6633
6831
|
"data-slot": "table-footer",
|
|
@@ -6640,7 +6838,7 @@ function TableFooter({ className, ...props }) {
|
|
|
6640
6838
|
);
|
|
6641
6839
|
}
|
|
6642
6840
|
function TableRow({ className, ...props }) {
|
|
6643
|
-
return /* @__PURE__ */
|
|
6841
|
+
return /* @__PURE__ */ jsx57(
|
|
6644
6842
|
"tr",
|
|
6645
6843
|
{
|
|
6646
6844
|
"data-slot": "table-row",
|
|
@@ -6653,7 +6851,7 @@ function TableRow({ className, ...props }) {
|
|
|
6653
6851
|
);
|
|
6654
6852
|
}
|
|
6655
6853
|
function TableHead({ className, ...props }) {
|
|
6656
|
-
return /* @__PURE__ */
|
|
6854
|
+
return /* @__PURE__ */ jsx57(
|
|
6657
6855
|
"th",
|
|
6658
6856
|
{
|
|
6659
6857
|
"data-slot": "table-head",
|
|
@@ -6666,7 +6864,7 @@ function TableHead({ className, ...props }) {
|
|
|
6666
6864
|
);
|
|
6667
6865
|
}
|
|
6668
6866
|
function TableCell({ className, ...props }) {
|
|
6669
|
-
return /* @__PURE__ */
|
|
6867
|
+
return /* @__PURE__ */ jsx57(
|
|
6670
6868
|
"td",
|
|
6671
6869
|
{
|
|
6672
6870
|
"data-slot": "table-cell",
|
|
@@ -6682,7 +6880,7 @@ function TableCaption({
|
|
|
6682
6880
|
className,
|
|
6683
6881
|
...props
|
|
6684
6882
|
}) {
|
|
6685
|
-
return /* @__PURE__ */
|
|
6883
|
+
return /* @__PURE__ */ jsx57(
|
|
6686
6884
|
"caption",
|
|
6687
6885
|
{
|
|
6688
6886
|
"data-slot": "table-caption",
|
|
@@ -6694,19 +6892,19 @@ function TableCaption({
|
|
|
6694
6892
|
|
|
6695
6893
|
// src/components/ui/tabs.tsx
|
|
6696
6894
|
import * as TabsPrimitive from "@radix-ui/react-tabs";
|
|
6697
|
-
import { cva as
|
|
6698
|
-
import * as
|
|
6699
|
-
import { jsx as
|
|
6700
|
-
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({
|
|
6701
6899
|
orientation: "horizontal"
|
|
6702
6900
|
});
|
|
6703
6901
|
function useTabIndicator(listRef, orientation) {
|
|
6704
|
-
const [style, setStyle] =
|
|
6902
|
+
const [style, setStyle] = React55.useState({
|
|
6705
6903
|
position: "absolute",
|
|
6706
6904
|
opacity: 0
|
|
6707
6905
|
});
|
|
6708
|
-
const isFirstMeasurement =
|
|
6709
|
-
const measure =
|
|
6906
|
+
const isFirstMeasurement = React55.useRef(true);
|
|
6907
|
+
const measure = React55.useCallback(() => {
|
|
6710
6908
|
const list = listRef.current;
|
|
6711
6909
|
if (!list) return;
|
|
6712
6910
|
requestAnimationFrame(() => {
|
|
@@ -6745,7 +6943,7 @@ function useTabIndicator(listRef, orientation) {
|
|
|
6745
6943
|
}
|
|
6746
6944
|
});
|
|
6747
6945
|
}, [listRef, orientation]);
|
|
6748
|
-
|
|
6946
|
+
React55.useEffect(() => {
|
|
6749
6947
|
const list = listRef.current;
|
|
6750
6948
|
if (!list) return;
|
|
6751
6949
|
measure();
|
|
@@ -6774,11 +6972,11 @@ function Tabs({
|
|
|
6774
6972
|
orientation = "horizontal",
|
|
6775
6973
|
...props
|
|
6776
6974
|
}) {
|
|
6777
|
-
const ctx =
|
|
6975
|
+
const ctx = React55.useMemo(
|
|
6778
6976
|
() => ({ orientation: orientation ?? "horizontal" }),
|
|
6779
6977
|
[orientation]
|
|
6780
6978
|
);
|
|
6781
|
-
return /* @__PURE__ */
|
|
6979
|
+
return /* @__PURE__ */ jsx58(TabsContext.Provider, { value: ctx, children: /* @__PURE__ */ jsx58(
|
|
6782
6980
|
TabsPrimitive.Root,
|
|
6783
6981
|
{
|
|
6784
6982
|
"data-slot": "tabs",
|
|
@@ -6795,10 +6993,10 @@ function TabsList({
|
|
|
6795
6993
|
className,
|
|
6796
6994
|
...props
|
|
6797
6995
|
}) {
|
|
6798
|
-
const listRef =
|
|
6799
|
-
const { orientation } =
|
|
6996
|
+
const listRef = React55.useRef(null);
|
|
6997
|
+
const { orientation } = React55.useContext(TabsContext);
|
|
6800
6998
|
const { style: indicatorStyle } = useTabIndicator(listRef, orientation);
|
|
6801
|
-
return /* @__PURE__ */
|
|
6999
|
+
return /* @__PURE__ */ jsxs33(
|
|
6802
7000
|
TabsPrimitive.List,
|
|
6803
7001
|
{
|
|
6804
7002
|
ref: listRef,
|
|
@@ -6811,12 +7009,12 @@ function TabsList({
|
|
|
6811
7009
|
...props,
|
|
6812
7010
|
children: [
|
|
6813
7011
|
props.children,
|
|
6814
|
-
/* @__PURE__ */
|
|
7012
|
+
/* @__PURE__ */ jsx58("span", { "data-slot": "tabs-indicator", style: indicatorStyle })
|
|
6815
7013
|
]
|
|
6816
7014
|
}
|
|
6817
7015
|
);
|
|
6818
7016
|
}
|
|
6819
|
-
var tabsTriggerVariants =
|
|
7017
|
+
var tabsTriggerVariants = cva14(
|
|
6820
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",
|
|
6821
7019
|
{
|
|
6822
7020
|
variants: {
|
|
@@ -6845,14 +7043,14 @@ function TabsTrigger({
|
|
|
6845
7043
|
children,
|
|
6846
7044
|
...props
|
|
6847
7045
|
}) {
|
|
6848
|
-
const { orientation } =
|
|
6849
|
-
return /* @__PURE__ */
|
|
7046
|
+
const { orientation } = React55.useContext(TabsContext);
|
|
7047
|
+
return /* @__PURE__ */ jsx58(
|
|
6850
7048
|
TabsPrimitive.Trigger,
|
|
6851
7049
|
{
|
|
6852
7050
|
"data-slot": "tabs-trigger",
|
|
6853
7051
|
className: cn(tabsTriggerVariants({ size, orientation }), className),
|
|
6854
7052
|
...props,
|
|
6855
|
-
children: /* @__PURE__ */
|
|
7053
|
+
children: /* @__PURE__ */ jsx58(
|
|
6856
7054
|
"span",
|
|
6857
7055
|
{
|
|
6858
7056
|
className: cn(
|
|
@@ -6869,7 +7067,7 @@ function TabsContent({
|
|
|
6869
7067
|
className,
|
|
6870
7068
|
...props
|
|
6871
7069
|
}) {
|
|
6872
|
-
return /* @__PURE__ */
|
|
7070
|
+
return /* @__PURE__ */ jsx58(
|
|
6873
7071
|
TabsPrimitive.Content,
|
|
6874
7072
|
{
|
|
6875
7073
|
"data-slot": "tabs-content",
|
|
@@ -6883,9 +7081,9 @@ function TabsContent({
|
|
|
6883
7081
|
import {
|
|
6884
7082
|
ThemeProvider as NextThemesProvider
|
|
6885
7083
|
} from "next-themes";
|
|
6886
|
-
import { jsx as
|
|
7084
|
+
import { jsx as jsx59 } from "react/jsx-runtime";
|
|
6887
7085
|
function ThemeProvider({ children, ...props }) {
|
|
6888
|
-
return /* @__PURE__ */
|
|
7086
|
+
return /* @__PURE__ */ jsx59(
|
|
6889
7087
|
NextThemesProvider,
|
|
6890
7088
|
{
|
|
6891
7089
|
attribute: "class",
|
|
@@ -6902,29 +7100,29 @@ function ThemeProvider({ children, ...props }) {
|
|
|
6902
7100
|
import { Monitor, Moon, Sun } from "lucide-react";
|
|
6903
7101
|
import { useTheme as useTheme2 } from "next-themes";
|
|
6904
7102
|
import "react";
|
|
6905
|
-
import { jsx as
|
|
7103
|
+
import { jsx as jsx60, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
6906
7104
|
function ThemeToggle({
|
|
6907
7105
|
className,
|
|
6908
7106
|
...props
|
|
6909
7107
|
}) {
|
|
6910
7108
|
const { setTheme } = useTheme2();
|
|
6911
|
-
return /* @__PURE__ */
|
|
6912
|
-
/* @__PURE__ */
|
|
6913
|
-
/* @__PURE__ */
|
|
6914
|
-
/* @__PURE__ */
|
|
6915
|
-
/* @__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" })
|
|
6916
7114
|
] }) }),
|
|
6917
|
-
/* @__PURE__ */
|
|
6918
|
-
/* @__PURE__ */
|
|
6919
|
-
/* @__PURE__ */
|
|
7115
|
+
/* @__PURE__ */ jsxs34(DropdownMenuContent, { align: "end", children: [
|
|
7116
|
+
/* @__PURE__ */ jsxs34(DropdownMenuItem, { onClick: () => setTheme("light"), children: [
|
|
7117
|
+
/* @__PURE__ */ jsx60(Sun, { className: "size-4" }),
|
|
6920
7118
|
"Light"
|
|
6921
7119
|
] }),
|
|
6922
|
-
/* @__PURE__ */
|
|
6923
|
-
/* @__PURE__ */
|
|
7120
|
+
/* @__PURE__ */ jsxs34(DropdownMenuItem, { onClick: () => setTheme("dark"), children: [
|
|
7121
|
+
/* @__PURE__ */ jsx60(Moon, { className: "size-4" }),
|
|
6924
7122
|
"Dark"
|
|
6925
7123
|
] }),
|
|
6926
|
-
/* @__PURE__ */
|
|
6927
|
-
/* @__PURE__ */
|
|
7124
|
+
/* @__PURE__ */ jsxs34(DropdownMenuItem, { onClick: () => setTheme("system"), children: [
|
|
7125
|
+
/* @__PURE__ */ jsx60(Monitor, { className: "size-4" }),
|
|
6928
7126
|
"System"
|
|
6929
7127
|
] })
|
|
6930
7128
|
] })
|
|
@@ -6934,8 +7132,8 @@ function ThemeToggle({
|
|
|
6934
7132
|
// src/components/ui/time-input.tsx
|
|
6935
7133
|
import "class-variance-authority";
|
|
6936
7134
|
import { Clock } from "lucide-react";
|
|
6937
|
-
import * as
|
|
6938
|
-
import { jsx as
|
|
7135
|
+
import * as React57 from "react";
|
|
7136
|
+
import { jsx as jsx61, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
6939
7137
|
var TIME_FORMAT_PLACEHOLDER = {
|
|
6940
7138
|
"12h": "hh:mm AM/PM",
|
|
6941
7139
|
"24h": "HH:mm",
|
|
@@ -6988,16 +7186,16 @@ function TimeInput({
|
|
|
6988
7186
|
formatDisplay
|
|
6989
7187
|
}) {
|
|
6990
7188
|
const resolvedPlaceholder = placeholder ?? TIME_FORMAT_PLACEHOLDER[timeFormat];
|
|
6991
|
-
const displayValue =
|
|
7189
|
+
const displayValue = React57.useMemo(() => {
|
|
6992
7190
|
if (!time) return "";
|
|
6993
7191
|
if (formatDisplay) return formatDisplay(time);
|
|
6994
7192
|
return formatTime(time, timeFormat);
|
|
6995
7193
|
}, [time, formatDisplay, timeFormat]);
|
|
6996
|
-
const [open, setOpen] =
|
|
6997
|
-
const hoursRef =
|
|
6998
|
-
const minutesRef =
|
|
6999
|
-
const periodRef =
|
|
7000
|
-
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(() => {
|
|
7001
7199
|
requestAnimationFrame(() => {
|
|
7002
7200
|
for (const ref of [hoursRef, minutesRef, periodRef]) {
|
|
7003
7201
|
const container = ref.current;
|
|
@@ -7009,7 +7207,7 @@ function TimeInput({
|
|
|
7009
7207
|
}
|
|
7010
7208
|
});
|
|
7011
7209
|
}, []);
|
|
7012
|
-
|
|
7210
|
+
React57.useEffect(() => {
|
|
7013
7211
|
if (open) {
|
|
7014
7212
|
scrollToSelected();
|
|
7015
7213
|
}
|
|
@@ -7045,8 +7243,8 @@ function TimeInput({
|
|
|
7045
7243
|
const selectedH12 = time ? getDisplayHour(time.hours, timeFormat) : null;
|
|
7046
7244
|
const selectedMinute = time?.minutes ?? null;
|
|
7047
7245
|
const selectedPeriod = time ? getPeriod(time.hours) : null;
|
|
7048
|
-
return /* @__PURE__ */
|
|
7049
|
-
/* @__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(
|
|
7050
7248
|
Button,
|
|
7051
7249
|
{
|
|
7052
7250
|
type: "button",
|
|
@@ -7061,18 +7259,18 @@ function TimeInput({
|
|
|
7061
7259
|
disabled: inputDisabled,
|
|
7062
7260
|
children: [
|
|
7063
7261
|
displayValue || resolvedPlaceholder,
|
|
7064
|
-
icon !== void 0 ? icon : /* @__PURE__ */
|
|
7262
|
+
icon !== void 0 ? icon : /* @__PURE__ */ jsx61(Clock, { className: "h-4 w-4 text-muted-foreground shrink-0" })
|
|
7065
7263
|
]
|
|
7066
7264
|
}
|
|
7067
7265
|
) }),
|
|
7068
|
-
/* @__PURE__ */
|
|
7266
|
+
/* @__PURE__ */ jsx61(
|
|
7069
7267
|
PopoverContent,
|
|
7070
7268
|
{
|
|
7071
7269
|
className: cn("w-auto p-0", popoverContentClassName),
|
|
7072
7270
|
onOpenAutoFocus: (e) => e.preventDefault(),
|
|
7073
7271
|
...popoverContentProps,
|
|
7074
|
-
children: /* @__PURE__ */
|
|
7075
|
-
/* @__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(
|
|
7076
7274
|
Button,
|
|
7077
7275
|
{
|
|
7078
7276
|
variant: "ghost",
|
|
@@ -7087,7 +7285,7 @@ function TimeInput({
|
|
|
7087
7285
|
},
|
|
7088
7286
|
h
|
|
7089
7287
|
)) }) }),
|
|
7090
|
-
/* @__PURE__ */
|
|
7288
|
+
/* @__PURE__ */ jsx61("div", { className: "h-56 w-16 overflow-y-auto overscroll-y-contain [-webkit-overflow-scrolling:touch]", children: /* @__PURE__ */ jsx61(
|
|
7091
7289
|
"div",
|
|
7092
7290
|
{
|
|
7093
7291
|
ref: minutesRef,
|
|
@@ -7095,7 +7293,7 @@ function TimeInput({
|
|
|
7095
7293
|
"flex flex-col p-1",
|
|
7096
7294
|
minutesList.length <= 12 && "h-full justify-center"
|
|
7097
7295
|
),
|
|
7098
|
-
children: minutesList.map((m) => /* @__PURE__ */
|
|
7296
|
+
children: minutesList.map((m) => /* @__PURE__ */ jsx61(
|
|
7099
7297
|
Button,
|
|
7100
7298
|
{
|
|
7101
7299
|
variant: "ghost",
|
|
@@ -7112,7 +7310,7 @@ function TimeInput({
|
|
|
7112
7310
|
))
|
|
7113
7311
|
}
|
|
7114
7312
|
) }),
|
|
7115
|
-
!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(
|
|
7116
7314
|
Button,
|
|
7117
7315
|
{
|
|
7118
7316
|
variant: "ghost",
|
|
@@ -7136,9 +7334,9 @@ function TimeInput({
|
|
|
7136
7334
|
// src/components/ui/toggle.tsx
|
|
7137
7335
|
import "react";
|
|
7138
7336
|
import * as TogglePrimitive from "@radix-ui/react-toggle";
|
|
7139
|
-
import { cva as
|
|
7140
|
-
import { jsx as
|
|
7141
|
-
var toggleVariants =
|
|
7337
|
+
import { cva as cva15 } from "class-variance-authority";
|
|
7338
|
+
import { jsx as jsx62 } from "react/jsx-runtime";
|
|
7339
|
+
var toggleVariants = cva15(
|
|
7142
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",
|
|
7143
7341
|
{
|
|
7144
7342
|
variants: {
|
|
@@ -7164,7 +7362,7 @@ function Toggle({
|
|
|
7164
7362
|
size,
|
|
7165
7363
|
...props
|
|
7166
7364
|
}) {
|
|
7167
|
-
return /* @__PURE__ */
|
|
7365
|
+
return /* @__PURE__ */ jsx62(
|
|
7168
7366
|
TogglePrimitive.Root,
|
|
7169
7367
|
{
|
|
7170
7368
|
"data-slot": "toggle",
|
|
@@ -7175,11 +7373,11 @@ function Toggle({
|
|
|
7175
7373
|
}
|
|
7176
7374
|
|
|
7177
7375
|
// src/components/ui/toggle-group.tsx
|
|
7178
|
-
import * as
|
|
7376
|
+
import * as React59 from "react";
|
|
7179
7377
|
import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group";
|
|
7180
7378
|
import "class-variance-authority";
|
|
7181
|
-
import { jsx as
|
|
7182
|
-
var ToggleGroupContext =
|
|
7379
|
+
import { jsx as jsx63 } from "react/jsx-runtime";
|
|
7380
|
+
var ToggleGroupContext = React59.createContext({
|
|
7183
7381
|
size: "default",
|
|
7184
7382
|
variant: "default"
|
|
7185
7383
|
});
|
|
@@ -7190,7 +7388,7 @@ function ToggleGroup({
|
|
|
7190
7388
|
children,
|
|
7191
7389
|
...props
|
|
7192
7390
|
}) {
|
|
7193
|
-
return /* @__PURE__ */
|
|
7391
|
+
return /* @__PURE__ */ jsx63(
|
|
7194
7392
|
ToggleGroupPrimitive.Root,
|
|
7195
7393
|
{
|
|
7196
7394
|
"data-slot": "toggle-group",
|
|
@@ -7201,7 +7399,7 @@ function ToggleGroup({
|
|
|
7201
7399
|
className
|
|
7202
7400
|
),
|
|
7203
7401
|
...props,
|
|
7204
|
-
children: /* @__PURE__ */
|
|
7402
|
+
children: /* @__PURE__ */ jsx63(ToggleGroupContext.Provider, { value: { variant, size }, children })
|
|
7205
7403
|
}
|
|
7206
7404
|
);
|
|
7207
7405
|
}
|
|
@@ -7212,8 +7410,8 @@ function ToggleGroupItem({
|
|
|
7212
7410
|
size,
|
|
7213
7411
|
...props
|
|
7214
7412
|
}) {
|
|
7215
|
-
const context =
|
|
7216
|
-
return /* @__PURE__ */
|
|
7413
|
+
const context = React59.useContext(ToggleGroupContext);
|
|
7414
|
+
return /* @__PURE__ */ jsx63(
|
|
7217
7415
|
ToggleGroupPrimitive.Item,
|
|
7218
7416
|
{
|
|
7219
7417
|
"data-slot": "toggle-group-item",
|
|
@@ -7235,10 +7433,10 @@ function ToggleGroupItem({
|
|
|
7235
7433
|
|
|
7236
7434
|
// src/components/ui/typography.tsx
|
|
7237
7435
|
import { Slot as Slot7 } from "@radix-ui/react-slot";
|
|
7238
|
-
import { cva as
|
|
7436
|
+
import { cva as cva16 } from "class-variance-authority";
|
|
7239
7437
|
import "react";
|
|
7240
|
-
import { jsx as
|
|
7241
|
-
var displayTextVariants =
|
|
7438
|
+
import { jsx as jsx64 } from "react/jsx-runtime";
|
|
7439
|
+
var displayTextVariants = cva16(
|
|
7242
7440
|
"tracking-normal font-normal font-serif italic text-vibrant-text-display",
|
|
7243
7441
|
{
|
|
7244
7442
|
variants: {
|
|
@@ -7260,7 +7458,7 @@ function DisplayHeading({
|
|
|
7260
7458
|
...props
|
|
7261
7459
|
}) {
|
|
7262
7460
|
const Comp = asChild ? Slot7 : "h1";
|
|
7263
|
-
return /* @__PURE__ */
|
|
7461
|
+
return /* @__PURE__ */ jsx64(
|
|
7264
7462
|
Comp,
|
|
7265
7463
|
{
|
|
7266
7464
|
"data-slot": "h1",
|
|
@@ -7269,7 +7467,7 @@ function DisplayHeading({
|
|
|
7269
7467
|
}
|
|
7270
7468
|
);
|
|
7271
7469
|
}
|
|
7272
|
-
var bodyTextVariants =
|
|
7470
|
+
var bodyTextVariants = cva16("font-sans text-vibrant-text-body", {
|
|
7273
7471
|
variants: {
|
|
7274
7472
|
size: {
|
|
7275
7473
|
lg: "text-lg md:text-xl leading-[26px] md:leading-[28px]",
|
|
@@ -7289,7 +7487,7 @@ function Body({
|
|
|
7289
7487
|
...props
|
|
7290
7488
|
}) {
|
|
7291
7489
|
const Comp = asChild ? Slot7 : "p";
|
|
7292
|
-
return /* @__PURE__ */
|
|
7490
|
+
return /* @__PURE__ */ jsx64(
|
|
7293
7491
|
Comp,
|
|
7294
7492
|
{
|
|
7295
7493
|
"data-slot": "p",
|
|
@@ -7304,7 +7502,7 @@ function HeadingXL({
|
|
|
7304
7502
|
...props
|
|
7305
7503
|
}) {
|
|
7306
7504
|
const Comp = asChild ? Slot7 : "h1";
|
|
7307
|
-
return /* @__PURE__ */
|
|
7505
|
+
return /* @__PURE__ */ jsx64(
|
|
7308
7506
|
Comp,
|
|
7309
7507
|
{
|
|
7310
7508
|
"data-slot": "h1",
|
|
@@ -7322,7 +7520,7 @@ function HeadingL({
|
|
|
7322
7520
|
...props
|
|
7323
7521
|
}) {
|
|
7324
7522
|
const Comp = asChild ? Slot7 : "h2";
|
|
7325
|
-
return /* @__PURE__ */
|
|
7523
|
+
return /* @__PURE__ */ jsx64(
|
|
7326
7524
|
Comp,
|
|
7327
7525
|
{
|
|
7328
7526
|
"data-slot": "h2",
|
|
@@ -7340,7 +7538,7 @@ function HeadingM({
|
|
|
7340
7538
|
...props
|
|
7341
7539
|
}) {
|
|
7342
7540
|
const Comp = asChild ? Slot7 : "h3";
|
|
7343
|
-
return /* @__PURE__ */
|
|
7541
|
+
return /* @__PURE__ */ jsx64(
|
|
7344
7542
|
Comp,
|
|
7345
7543
|
{
|
|
7346
7544
|
"data-slot": "h3",
|
|
@@ -7358,7 +7556,7 @@ function HeadingS({
|
|
|
7358
7556
|
...props
|
|
7359
7557
|
}) {
|
|
7360
7558
|
const Comp = asChild ? Slot7 : "h4";
|
|
7361
|
-
return /* @__PURE__ */
|
|
7559
|
+
return /* @__PURE__ */ jsx64(
|
|
7362
7560
|
Comp,
|
|
7363
7561
|
{
|
|
7364
7562
|
"data-slot": "h4",
|
|
@@ -7376,7 +7574,7 @@ function HeadingXS({
|
|
|
7376
7574
|
...props
|
|
7377
7575
|
}) {
|
|
7378
7576
|
const Comp = asChild ? Slot7 : "h5";
|
|
7379
|
-
return /* @__PURE__ */
|
|
7577
|
+
return /* @__PURE__ */ jsx64(
|
|
7380
7578
|
Comp,
|
|
7381
7579
|
{
|
|
7382
7580
|
"data-slot": "h5",
|
|
@@ -7394,7 +7592,7 @@ function HeadingXXS({
|
|
|
7394
7592
|
...props
|
|
7395
7593
|
}) {
|
|
7396
7594
|
const Comp = asChild ? Slot7 : "h6";
|
|
7397
|
-
return /* @__PURE__ */
|
|
7595
|
+
return /* @__PURE__ */ jsx64(
|
|
7398
7596
|
Comp,
|
|
7399
7597
|
{
|
|
7400
7598
|
"data-slot": "h6",
|
|
@@ -7412,7 +7610,7 @@ function HeadingXLMedium({
|
|
|
7412
7610
|
...props
|
|
7413
7611
|
}) {
|
|
7414
7612
|
const Comp = asChild ? Slot7 : "h1";
|
|
7415
|
-
return /* @__PURE__ */
|
|
7613
|
+
return /* @__PURE__ */ jsx64(
|
|
7416
7614
|
Comp,
|
|
7417
7615
|
{
|
|
7418
7616
|
"data-slot": "h1",
|
|
@@ -7430,7 +7628,7 @@ function HeadingLMedium({
|
|
|
7430
7628
|
...props
|
|
7431
7629
|
}) {
|
|
7432
7630
|
const Comp = asChild ? Slot7 : "h2";
|
|
7433
|
-
return /* @__PURE__ */
|
|
7631
|
+
return /* @__PURE__ */ jsx64(
|
|
7434
7632
|
Comp,
|
|
7435
7633
|
{
|
|
7436
7634
|
"data-slot": "h2",
|
|
@@ -7448,7 +7646,7 @@ function HeadingMMedium({
|
|
|
7448
7646
|
...props
|
|
7449
7647
|
}) {
|
|
7450
7648
|
const Comp = asChild ? Slot7 : "h3";
|
|
7451
|
-
return /* @__PURE__ */
|
|
7649
|
+
return /* @__PURE__ */ jsx64(
|
|
7452
7650
|
Comp,
|
|
7453
7651
|
{
|
|
7454
7652
|
"data-slot": "h3",
|
|
@@ -7466,7 +7664,7 @@ function HeadingSMedium({
|
|
|
7466
7664
|
...props
|
|
7467
7665
|
}) {
|
|
7468
7666
|
const Comp = asChild ? Slot7 : "h4";
|
|
7469
|
-
return /* @__PURE__ */
|
|
7667
|
+
return /* @__PURE__ */ jsx64(
|
|
7470
7668
|
Comp,
|
|
7471
7669
|
{
|
|
7472
7670
|
"data-slot": "h4",
|
|
@@ -7484,7 +7682,7 @@ function HeadingXSMedium({
|
|
|
7484
7682
|
...props
|
|
7485
7683
|
}) {
|
|
7486
7684
|
const Comp = asChild ? Slot7 : "h5";
|
|
7487
|
-
return /* @__PURE__ */
|
|
7685
|
+
return /* @__PURE__ */ jsx64(
|
|
7488
7686
|
Comp,
|
|
7489
7687
|
{
|
|
7490
7688
|
"data-slot": "h5",
|
|
@@ -7502,7 +7700,7 @@ function HeadingXXSMedium({
|
|
|
7502
7700
|
...props
|
|
7503
7701
|
}) {
|
|
7504
7702
|
const Comp = asChild ? Slot7 : "h6";
|
|
7505
|
-
return /* @__PURE__ */
|
|
7703
|
+
return /* @__PURE__ */ jsx64(
|
|
7506
7704
|
Comp,
|
|
7507
7705
|
{
|
|
7508
7706
|
"data-slot": "h6",
|
|
@@ -7701,6 +7899,7 @@ export {
|
|
|
7701
7899
|
NavigationMenuList,
|
|
7702
7900
|
NavigationMenuTrigger,
|
|
7703
7901
|
NavigationMenuViewport,
|
|
7902
|
+
OptionCard,
|
|
7704
7903
|
Pagination,
|
|
7705
7904
|
PaginationContent,
|
|
7706
7905
|
PaginationEllipsis,
|
|
@@ -7818,8 +8017,10 @@ export {
|
|
|
7818
8017
|
inputVariants,
|
|
7819
8018
|
labelTextVariants,
|
|
7820
8019
|
navigationMenuTriggerStyle,
|
|
8020
|
+
optionCardVariants,
|
|
7821
8021
|
progressBarVariants,
|
|
7822
8022
|
tabsTriggerVariants,
|
|
8023
|
+
toast,
|
|
7823
8024
|
toggleVariants,
|
|
7824
8025
|
useFormField,
|
|
7825
8026
|
useIsMobile,
|