@bizapps/design-system-testing 1.8.1 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -3
- package/dist/main.cjs +131 -385
- package/dist/main.cjs.map +1 -1
- package/dist/main.css +1 -1
- package/dist/main.d.cts +95 -122
- package/dist/main.d.ts +95 -122
- package/dist/main.js +133 -385
- package/dist/main.js.map +1 -1
- package/package.json +175 -225
- package/dist/editor.cjs +0 -1479
- package/dist/editor.cjs.map +0 -1
- package/dist/editor.d.cts +0 -428
- package/dist/editor.d.ts +0 -428
- package/dist/editor.js +0 -1462
- package/dist/editor.js.map +0 -1
- package/dist/policy-DPpMNLiO.d.cts +0 -75
- package/dist/policy-DPpMNLiO.d.ts +0 -75
- package/dist/policy.cjs +0 -33
- package/dist/policy.cjs.map +0 -1
- package/dist/policy.d.cts +0 -1
- package/dist/policy.d.ts +0 -1
- package/dist/policy.js +0 -29
- package/dist/policy.js.map +0 -1
package/dist/main.js
CHANGED
|
@@ -4,7 +4,7 @@ import { cva } from 'class-variance-authority';
|
|
|
4
4
|
import { clsx } from 'clsx';
|
|
5
5
|
import { twMerge } from 'tailwind-merge';
|
|
6
6
|
import { jsx, jsxs, Fragment as Fragment$1 } from 'react/jsx-runtime';
|
|
7
|
-
import { createContext, memo, useRef, useState, useMemo, useCallback, useEffect, forwardRef, Fragment, useId, useContext, useLayoutEffect
|
|
7
|
+
import { createContext, memo, useRef, useState, useMemo, useCallback, useEffect, forwardRef, Fragment, useId, useContext, useLayoutEffect } from 'react';
|
|
8
8
|
import { Avatar as Avatar$1, Checkbox as Checkbox$1, Slot, Select as Select$1, Label as Label$1, Popover as Popover$1, Toggle as Toggle$1, ToggleGroup, Separator as Separator$1, Progress as Progress$1, Slider as Slider$1, Switch as Switch$1, Tabs as Tabs$1, Tooltip as Tooltip$1, Dialog as Dialog$1, AlertDialog as AlertDialog$1, Accordion as Accordion$1, DropdownMenu as DropdownMenu$1, RadioGroup as RadioGroup$1, NavigationMenu as NavigationMenu$1 } from 'radix-ui';
|
|
9
9
|
import { isSameDay, isToday, format, addDays } from 'date-fns';
|
|
10
10
|
import useEmblaCarousel from 'embla-carousel-react';
|
|
@@ -1676,37 +1676,31 @@ function SelectContent({
|
|
|
1676
1676
|
className,
|
|
1677
1677
|
children,
|
|
1678
1678
|
position = "popper",
|
|
1679
|
-
maxHeight,
|
|
1680
|
-
style,
|
|
1681
1679
|
...props
|
|
1682
1680
|
}) {
|
|
1683
|
-
const resolvedMaxHeight = typeof maxHeight === "number" ? `${maxHeight}px` : maxHeight;
|
|
1684
1681
|
return /* @__PURE__ */ jsx(Select$1.Portal, { children: /* @__PURE__ */ jsxs(
|
|
1685
1682
|
Select$1.Content,
|
|
1686
1683
|
{
|
|
1687
1684
|
"data-slot": "select-content",
|
|
1688
1685
|
className: cn(
|
|
1689
|
-
"border-border bg-popover text-popover-foreground relative z-50 max-h-
|
|
1686
|
+
"border-border bg-popover text-popover-foreground relative z-50 max-h-[--radix-select-content-available-height] min-w-[8rem] overflow-x-hidden overflow-y-auto rounded-md border shadow-md",
|
|
1690
1687
|
"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
|
|
1691
1688
|
"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",
|
|
1692
1689
|
"data-[side=bottom]:translate-y-1 data-[side=top]:-translate-y-1",
|
|
1693
|
-
position === "popper" && "w-
|
|
1690
|
+
position === "popper" && "w-[--radix-select-trigger-width]",
|
|
1694
1691
|
className
|
|
1695
1692
|
),
|
|
1696
1693
|
position,
|
|
1697
|
-
style: {
|
|
1698
|
-
...resolvedMaxHeight ? {
|
|
1699
|
-
maxHeight: `min(${resolvedMaxHeight}, var(--radix-select-content-available-height))`
|
|
1700
|
-
} : null,
|
|
1701
|
-
...style
|
|
1702
|
-
},
|
|
1703
1694
|
...props,
|
|
1704
1695
|
children: [
|
|
1705
1696
|
/* @__PURE__ */ jsx(SelectScrollUpButton, {}),
|
|
1706
1697
|
/* @__PURE__ */ jsx(
|
|
1707
1698
|
Select$1.Viewport,
|
|
1708
1699
|
{
|
|
1709
|
-
className: cn(
|
|
1700
|
+
className: cn(
|
|
1701
|
+
"p-1",
|
|
1702
|
+
position === "popper" && "h-[--radix-select-trigger-height]"
|
|
1703
|
+
),
|
|
1710
1704
|
children
|
|
1711
1705
|
}
|
|
1712
1706
|
),
|
|
@@ -4368,7 +4362,6 @@ ColorPickerPresets.displayName = "ColorPickerPresets";
|
|
|
4368
4362
|
function Calendar({
|
|
4369
4363
|
className,
|
|
4370
4364
|
classNames,
|
|
4371
|
-
modifiersClassNames,
|
|
4372
4365
|
showOutsideDays = true,
|
|
4373
4366
|
captionLayout = "dropdown",
|
|
4374
4367
|
buttonVariant = "ghost",
|
|
@@ -4380,36 +4373,6 @@ function Calendar({
|
|
|
4380
4373
|
...props
|
|
4381
4374
|
}) {
|
|
4382
4375
|
const defaultClassNames = getDefaultClassNames();
|
|
4383
|
-
const resolvedComponents = useMemo(
|
|
4384
|
-
() => ({
|
|
4385
|
-
Root: ({ className: className2, rootRef, ...rootProps }) => {
|
|
4386
|
-
return /* @__PURE__ */ jsx(
|
|
4387
|
-
"div",
|
|
4388
|
-
{
|
|
4389
|
-
"data-slot": "calendar",
|
|
4390
|
-
ref: rootRef,
|
|
4391
|
-
className: cn(className2),
|
|
4392
|
-
...rootProps
|
|
4393
|
-
}
|
|
4394
|
-
);
|
|
4395
|
-
},
|
|
4396
|
-
Chevron: ({ className: className2, orientation, ...chevronProps }) => {
|
|
4397
|
-
if (orientation === "left") {
|
|
4398
|
-
return /* @__PURE__ */ jsx(ChevronLeftIcon, { className: cn("size-4", className2), ...chevronProps });
|
|
4399
|
-
}
|
|
4400
|
-
if (orientation === "right") {
|
|
4401
|
-
return /* @__PURE__ */ jsx(ChevronRightIcon, { className: cn("size-4", className2), ...chevronProps });
|
|
4402
|
-
}
|
|
4403
|
-
return /* @__PURE__ */ jsx(ChevronDownIcon, { className: cn("size-4", className2), ...chevronProps });
|
|
4404
|
-
},
|
|
4405
|
-
DayButton: (dayButtonProps) => /* @__PURE__ */ jsx(CalendarDayButton, { locale, ...dayButtonProps }),
|
|
4406
|
-
WeekNumber: ({ children, ...weekNumberProps }) => {
|
|
4407
|
-
return /* @__PURE__ */ jsx("td", { ...weekNumberProps, children: /* @__PURE__ */ jsx("div", { className: "flex size-(--cell-size) items-center justify-center text-center", children }) });
|
|
4408
|
-
},
|
|
4409
|
-
...components
|
|
4410
|
-
}),
|
|
4411
|
-
[locale, components]
|
|
4412
|
-
);
|
|
4413
4376
|
return /* @__PURE__ */ jsx(
|
|
4414
4377
|
DayPicker,
|
|
4415
4378
|
{
|
|
@@ -4501,13 +4464,33 @@ function Calendar({
|
|
|
4501
4464
|
hidden: cn("invisible", defaultClassNames.hidden),
|
|
4502
4465
|
...classNames
|
|
4503
4466
|
},
|
|
4504
|
-
|
|
4505
|
-
|
|
4506
|
-
|
|
4507
|
-
|
|
4508
|
-
|
|
4467
|
+
components: {
|
|
4468
|
+
Root: ({ className: className2, rootRef, ...props2 }) => {
|
|
4469
|
+
return /* @__PURE__ */ jsx(
|
|
4470
|
+
"div",
|
|
4471
|
+
{
|
|
4472
|
+
"data-slot": "calendar",
|
|
4473
|
+
ref: rootRef,
|
|
4474
|
+
className: cn(className2),
|
|
4475
|
+
...props2
|
|
4476
|
+
}
|
|
4477
|
+
);
|
|
4478
|
+
},
|
|
4479
|
+
Chevron: ({ className: className2, orientation, ...props2 }) => {
|
|
4480
|
+
if (orientation === "left") {
|
|
4481
|
+
return /* @__PURE__ */ jsx(ChevronLeftIcon, { className: cn("size-4", className2), ...props2 });
|
|
4482
|
+
}
|
|
4483
|
+
if (orientation === "right") {
|
|
4484
|
+
return /* @__PURE__ */ jsx(ChevronRightIcon, { className: cn("size-4", className2), ...props2 });
|
|
4485
|
+
}
|
|
4486
|
+
return /* @__PURE__ */ jsx(ChevronDownIcon, { className: cn("size-4", className2), ...props2 });
|
|
4487
|
+
},
|
|
4488
|
+
DayButton: ({ ...props2 }) => /* @__PURE__ */ jsx(CalendarDayButton, { locale, ...props2 }),
|
|
4489
|
+
WeekNumber: ({ children, ...props2 }) => {
|
|
4490
|
+
return /* @__PURE__ */ jsx("td", { ...props2, children: /* @__PURE__ */ jsx("div", { className: "flex size-(--cell-size) items-center justify-center text-center", children }) });
|
|
4491
|
+
},
|
|
4492
|
+
...components
|
|
4509
4493
|
},
|
|
4510
|
-
components: resolvedComponents,
|
|
4511
4494
|
...props
|
|
4512
4495
|
}
|
|
4513
4496
|
);
|
|
@@ -4524,9 +4507,6 @@ function CalendarDayButton({
|
|
|
4524
4507
|
useEffect(() => {
|
|
4525
4508
|
if (modifiers.focused) ref.current?.focus();
|
|
4526
4509
|
}, [modifiers.focused]);
|
|
4527
|
-
const isPreviewEdge = Boolean(
|
|
4528
|
-
(modifiers.preview_start || modifiers.preview_end) && !modifiers.selected
|
|
4529
|
-
);
|
|
4530
4510
|
return /* @__PURE__ */ jsx(
|
|
4531
4511
|
Button,
|
|
4532
4512
|
{
|
|
@@ -4538,10 +4518,8 @@ function CalendarDayButton({
|
|
|
4538
4518
|
"data-range-start": modifiers.range_start,
|
|
4539
4519
|
"data-range-end": modifiers.range_end,
|
|
4540
4520
|
"data-range-middle": modifiers.range_middle,
|
|
4541
|
-
"data-preview-middle": Boolean(modifiers.preview_middle),
|
|
4542
|
-
"data-preview-edge": isPreviewEdge,
|
|
4543
4521
|
className: cn(
|
|
4544
|
-
"group-data-[focused=true]/day:ring-primary/40 data-[
|
|
4522
|
+
"group-data-[focused=true]/day:ring-primary/40 data-[range-end=true]:!bg-primary data-[range-end=true]:text-primary-foreground data-[range-middle=true]:!bg-primary/8 data-[range-middle=true]:text-foreground data-[range-start=true]:!bg-primary data-[range-start=true]:text-primary-foreground data-[selected-single=true]:!bg-primary data-[selected-single=true]:text-primary-foreground relative isolate z-10 flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 !rounded-md border-0 !bg-transparent leading-none font-normal transition-colors duration-150 group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:rounded-md group-data-[focused=true]/day:ring-[2px] hover:!bg-transparent data-[range-end=true]:rounded-md data-[range-end=true]:rounded-r-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md data-[range-start=true]:rounded-l-md data-[selected-single=true]:rounded-md [&>span]:text-xs [&>span]:font-medium [&>span]:opacity-75",
|
|
4545
4523
|
defaultClassNames.day,
|
|
4546
4524
|
className
|
|
4547
4525
|
),
|
|
@@ -4549,79 +4527,30 @@ function CalendarDayButton({
|
|
|
4549
4527
|
}
|
|
4550
4528
|
);
|
|
4551
4529
|
}
|
|
4552
|
-
function DatePicker(
|
|
4553
|
-
|
|
4554
|
-
|
|
4555
|
-
|
|
4556
|
-
|
|
4557
|
-
|
|
4558
|
-
|
|
4559
|
-
|
|
4560
|
-
|
|
4530
|
+
function DatePicker({
|
|
4531
|
+
mode = "single",
|
|
4532
|
+
selected,
|
|
4533
|
+
onSelect,
|
|
4534
|
+
placeholder = "Pick a date",
|
|
4535
|
+
disabled = false,
|
|
4536
|
+
className,
|
|
4537
|
+
fromDate,
|
|
4538
|
+
toDate
|
|
4539
|
+
}) {
|
|
4561
4540
|
const [open, setOpen] = useState(false);
|
|
4562
|
-
const [awaitingRangeEnd, setAwaitingRangeEnd] = useState(false);
|
|
4563
|
-
const [previewDate, setPreviewDate] = useState(void 0);
|
|
4564
4541
|
const label = useMemo(() => {
|
|
4565
|
-
if (
|
|
4566
|
-
const range =
|
|
4567
|
-
if (
|
|
4568
|
-
|
|
4569
|
-
return `${format(range.from, "MMM d, yyyy")} \u2013
|
|
4570
|
-
|
|
4571
|
-
|
|
4572
|
-
|
|
4573
|
-
|
|
4574
|
-
|
|
4575
|
-
|
|
4576
|
-
|
|
4577
|
-
setPreviewDate(void 0);
|
|
4578
|
-
}
|
|
4579
|
-
};
|
|
4580
|
-
const handleRangeSelect = (range, triggerDate) => {
|
|
4581
|
-
if (props.mode !== "range") return;
|
|
4582
|
-
const emit = props.onSelect;
|
|
4583
|
-
if (!awaitingRangeEnd) {
|
|
4584
|
-
setAwaitingRangeEnd(true);
|
|
4585
|
-
emit?.({ from: triggerDate, to: void 0 });
|
|
4586
|
-
return;
|
|
4587
|
-
}
|
|
4588
|
-
emit?.(range);
|
|
4589
|
-
if (!range?.from || !range.to) {
|
|
4590
|
-
setAwaitingRangeEnd(!!range?.from);
|
|
4591
|
-
return;
|
|
4592
|
-
}
|
|
4593
|
-
setAwaitingRangeEnd(false);
|
|
4594
|
-
setPreviewDate(void 0);
|
|
4595
|
-
setOpen(false);
|
|
4596
|
-
};
|
|
4597
|
-
const rangeFrom = props.mode === "range" ? props.selected?.from : void 0;
|
|
4598
|
-
const previewModifiers = useMemo(() => {
|
|
4599
|
-
if (!awaitingRangeEnd || !rangeFrom || !previewDate) return void 0;
|
|
4600
|
-
if (isSameDay(rangeFrom, previewDate)) return void 0;
|
|
4601
|
-
const [start, end] = previewDate < rangeFrom ? [previewDate, rangeFrom] : [rangeFrom, previewDate];
|
|
4602
|
-
return {
|
|
4603
|
-
preview_start: start,
|
|
4604
|
-
preview_middle: { after: start, before: end },
|
|
4605
|
-
preview_end: end
|
|
4606
|
-
};
|
|
4607
|
-
}, [awaitingRangeEnd, rangeFrom, previewDate]);
|
|
4608
|
-
const handleDayPreview = (day, dayModifiers) => {
|
|
4609
|
-
if (!awaitingRangeEnd) return;
|
|
4610
|
-
if (dayModifiers.disabled || dayModifiers.hidden) return;
|
|
4611
|
-
setPreviewDate((current) => current && isSameDay(current, day) ? current : day);
|
|
4612
|
-
};
|
|
4613
|
-
const dateConstraints = useMemo(() => {
|
|
4614
|
-
const disabledMatchers = [];
|
|
4615
|
-
if (fromDate) disabledMatchers.push({ before: fromDate });
|
|
4616
|
-
if (toDate) disabledMatchers.push({ after: toDate });
|
|
4617
|
-
return {
|
|
4618
|
-
...disabledMatchers.length > 0 && { disabled: disabledMatchers },
|
|
4619
|
-
...fromDate && { startMonth: fromDate },
|
|
4620
|
-
...toDate && { endMonth: toDate }
|
|
4621
|
-
};
|
|
4622
|
-
}, [fromDate, toDate]);
|
|
4623
|
-
const hasValue = props.mode === "range" ? !!props.selected?.from : !!props.selected;
|
|
4624
|
-
return /* @__PURE__ */ jsxs(Popover, { open, onOpenChange: handleOpenChange, children: [
|
|
4542
|
+
if (mode === "range") {
|
|
4543
|
+
const range = selected;
|
|
4544
|
+
if (range?.from && range?.to)
|
|
4545
|
+
return `${format(range.from, "MMM d, yyyy")} \u2013 ${format(range.to, "MMM d, yyyy")}`;
|
|
4546
|
+
if (range?.from) return `${format(range.from, "MMM d, yyyy")} \u2013 \u2026`;
|
|
4547
|
+
return placeholder;
|
|
4548
|
+
}
|
|
4549
|
+
const date = selected;
|
|
4550
|
+
return date ? format(date, "MMM d, yyyy") : placeholder;
|
|
4551
|
+
}, [mode, selected, placeholder]);
|
|
4552
|
+
const hasValue = mode === "range" ? !!selected?.from : !!selected;
|
|
4553
|
+
return /* @__PURE__ */ jsxs(Popover, { open, onOpenChange: setOpen, children: [
|
|
4625
4554
|
/* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(
|
|
4626
4555
|
Button,
|
|
4627
4556
|
{
|
|
@@ -4639,36 +4568,36 @@ function DatePicker(props) {
|
|
|
4639
4568
|
]
|
|
4640
4569
|
}
|
|
4641
4570
|
) }),
|
|
4642
|
-
/* @__PURE__ */ jsx(PopoverContent, { "data-slot": "date-picker-content", className: "w-auto p-0", align: "start", children:
|
|
4643
|
-
|
|
4644
|
-
|
|
4645
|
-
|
|
4646
|
-
/* @__PURE__ */ jsx("div", { onMouseLeave: () => setPreviewDate(void 0), children: /* @__PURE__ */ jsx(
|
|
4647
|
-
Calendar,
|
|
4648
|
-
{
|
|
4571
|
+
/* @__PURE__ */ jsx(PopoverContent, { "data-slot": "date-picker-content", className: "w-auto p-0", align: "start", children: mode === "range" ? /* @__PURE__ */ jsx(
|
|
4572
|
+
Calendar,
|
|
4573
|
+
{
|
|
4574
|
+
...{
|
|
4649
4575
|
mode: "range",
|
|
4650
|
-
selected
|
|
4651
|
-
onSelect:
|
|
4652
|
-
|
|
4653
|
-
|
|
4654
|
-
|
|
4655
|
-
|
|
4656
|
-
|
|
4657
|
-
|
|
4576
|
+
selected,
|
|
4577
|
+
onSelect: (range) => {
|
|
4578
|
+
onSelect?.(range);
|
|
4579
|
+
if (range?.to) setOpen(false);
|
|
4580
|
+
},
|
|
4581
|
+
fromDate,
|
|
4582
|
+
toDate,
|
|
4583
|
+
numberOfMonths: 2,
|
|
4584
|
+
initialFocus: true
|
|
4658
4585
|
}
|
|
4659
|
-
|
|
4586
|
+
}
|
|
4660
4587
|
) : /* @__PURE__ */ jsx(
|
|
4661
4588
|
Calendar,
|
|
4662
4589
|
{
|
|
4663
|
-
|
|
4664
|
-
|
|
4665
|
-
|
|
4666
|
-
|
|
4667
|
-
|
|
4668
|
-
|
|
4669
|
-
|
|
4670
|
-
|
|
4671
|
-
|
|
4590
|
+
...{
|
|
4591
|
+
mode: "single",
|
|
4592
|
+
selected,
|
|
4593
|
+
onSelect: (date) => {
|
|
4594
|
+
onSelect?.(date);
|
|
4595
|
+
setOpen(false);
|
|
4596
|
+
},
|
|
4597
|
+
fromDate,
|
|
4598
|
+
toDate,
|
|
4599
|
+
initialFocus: true
|
|
4600
|
+
}
|
|
4672
4601
|
}
|
|
4673
4602
|
) })
|
|
4674
4603
|
] });
|
|
@@ -5110,8 +5039,6 @@ function NavigationMenuIndicator({
|
|
|
5110
5039
|
}
|
|
5111
5040
|
);
|
|
5112
5041
|
}
|
|
5113
|
-
|
|
5114
|
-
// src/components/authorization/policy.ts
|
|
5115
5042
|
function matchPermission(pattern, permission) {
|
|
5116
5043
|
if (pattern === "*") return true;
|
|
5117
5044
|
if (pattern === permission) return true;
|
|
@@ -5127,46 +5054,41 @@ function matchesAny(permissionSet, permission) {
|
|
|
5127
5054
|
}
|
|
5128
5055
|
return false;
|
|
5129
5056
|
}
|
|
5130
|
-
function can(permissionSet, perms, mode = "any") {
|
|
5131
|
-
const list = Array.isArray(perms) ? perms : [perms];
|
|
5132
|
-
if (list.length === 0) return false;
|
|
5133
|
-
if (permissionSet.has("*")) return true;
|
|
5134
|
-
if (mode === "all") {
|
|
5135
|
-
return list.every((p) => matchesAny(permissionSet, p));
|
|
5136
|
-
}
|
|
5137
|
-
return list.some((p) => matchesAny(permissionSet, p));
|
|
5138
|
-
}
|
|
5139
5057
|
var AbilityContext = createContext(void 0);
|
|
5140
5058
|
AbilityContext.displayName = "AbilityContext";
|
|
5141
5059
|
function AbilityProvider({ children, permissions }) {
|
|
5142
5060
|
const [permissionSet, setPermissionSet] = useState(
|
|
5143
5061
|
() => new Set(permissions ?? [])
|
|
5144
5062
|
);
|
|
5145
|
-
const
|
|
5146
|
-
|
|
5147
|
-
|
|
5148
|
-
|
|
5063
|
+
const can = useCallback(
|
|
5064
|
+
(perms, mode = "any") => {
|
|
5065
|
+
const list = Array.isArray(perms) ? perms : [perms];
|
|
5066
|
+
if (list.length === 0) return false;
|
|
5067
|
+
if (permissionSet.has("*")) return true;
|
|
5068
|
+
if (mode === "all") {
|
|
5069
|
+
return list.every((p) => matchesAny(permissionSet, p));
|
|
5070
|
+
}
|
|
5071
|
+
return list.some((p) => matchesAny(permissionSet, p));
|
|
5072
|
+
},
|
|
5149
5073
|
[permissionSet]
|
|
5150
5074
|
);
|
|
5151
5075
|
const setAbilities = useCallback((perms) => {
|
|
5152
5076
|
setPermissionSet(new Set(perms));
|
|
5153
|
-
setImperativelyResolved(true);
|
|
5154
5077
|
}, []);
|
|
5155
5078
|
const clearAbilities = useCallback(() => {
|
|
5156
5079
|
setPermissionSet(/* @__PURE__ */ new Set());
|
|
5157
|
-
setImperativelyResolved(true);
|
|
5158
5080
|
}, []);
|
|
5159
|
-
const
|
|
5160
|
-
const syncedKey = useRef(permissionKey);
|
|
5081
|
+
const syncedKey = useRef(permissions ? permissions.join("|") : null);
|
|
5161
5082
|
useEffect(() => {
|
|
5162
|
-
if (
|
|
5163
|
-
|
|
5164
|
-
syncedKey.current
|
|
5083
|
+
if (permissions === void 0) return;
|
|
5084
|
+
const key = permissions.join("|");
|
|
5085
|
+
if (key === syncedKey.current) return;
|
|
5086
|
+
syncedKey.current = key;
|
|
5165
5087
|
setPermissionSet(new Set(permissions));
|
|
5166
|
-
}, [
|
|
5088
|
+
}, [permissions]);
|
|
5167
5089
|
const value = useMemo(
|
|
5168
|
-
() => ({ can
|
|
5169
|
-
[
|
|
5090
|
+
() => ({ can, setAbilities, clearAbilities }),
|
|
5091
|
+
[can, setAbilities, clearAbilities]
|
|
5170
5092
|
);
|
|
5171
5093
|
return /* @__PURE__ */ jsx(AbilityContext.Provider, { value, children });
|
|
5172
5094
|
}
|
|
@@ -5178,176 +5100,21 @@ function useAbility() {
|
|
|
5178
5100
|
return context;
|
|
5179
5101
|
}
|
|
5180
5102
|
function useCan(permissions, mode = "any") {
|
|
5181
|
-
const { can
|
|
5182
|
-
return
|
|
5103
|
+
const { can } = useAbility();
|
|
5104
|
+
return can(permissions, mode);
|
|
5183
5105
|
}
|
|
5184
|
-
function
|
|
5185
|
-
|
|
5186
|
-
|
|
5187
|
-
|
|
5188
|
-
// src/components/authorization/permissions.generated.ts
|
|
5189
|
-
var KNOWN_PERMISSIONS = [];
|
|
5190
|
-
|
|
5191
|
-
// src/components/authorization/permission-catalog.ts
|
|
5192
|
-
var CATALOG = new Set(KNOWN_PERMISSIONS);
|
|
5193
|
-
var warned = /* @__PURE__ */ new Set();
|
|
5194
|
-
function warnUnknownPermission(permission) {
|
|
5195
|
-
if (process.env.NODE_ENV === "production") return;
|
|
5196
|
-
if (CATALOG.size === 0) return;
|
|
5197
|
-
const requested = Array.isArray(permission) ? permission : [permission];
|
|
5198
|
-
for (const entry of requested) {
|
|
5199
|
-
if (entry.includes("*")) continue;
|
|
5200
|
-
if (CATALOG.has(entry) || warned.has(entry)) continue;
|
|
5201
|
-
warned.add(entry);
|
|
5202
|
-
console.warn(
|
|
5203
|
-
`[Can] Unknown permission "${entry}". It is not in the generated permission catalog. Check for a typo, or regenerate the catalog with \`pnpm generate-permissions\`.`
|
|
5204
|
-
);
|
|
5205
|
-
}
|
|
5206
|
-
}
|
|
5207
|
-
var FOCUS_TRAVERSAL_KEYS = /* @__PURE__ */ new Set(["Tab", "Escape"]);
|
|
5208
|
-
function blockInteraction(event) {
|
|
5209
|
-
event.preventDefault();
|
|
5210
|
-
event.stopPropagation();
|
|
5211
|
-
}
|
|
5212
|
-
function blockNonTraversalKey(event) {
|
|
5213
|
-
if (!FOCUS_TRAVERSAL_KEYS.has(event.key)) blockInteraction(event);
|
|
5214
|
-
}
|
|
5215
|
-
var warnedRenderPropMisuse = /* @__PURE__ */ new Set();
|
|
5216
|
-
function warnRenderPropVoidsProps(voided) {
|
|
5217
|
-
if (process.env.NODE_ENV === "production") return;
|
|
5218
|
-
if (voided.length === 0) return;
|
|
5219
|
-
const key = voided.join(",");
|
|
5220
|
-
if (warnedRenderPropMisuse.has(key)) return;
|
|
5221
|
-
warnedRenderPropMisuse.add(key);
|
|
5222
|
-
console.warn(
|
|
5223
|
-
`[Can] \`children\` is a function, so ${voided.map((prop) => `\`${prop}\``).join(", ")} ${voided.length === 1 ? "is" : "are"} ignored. A render prop owns every state: read \`allowed\` and \`status\` and render the disabled, loading and denied cases yourself, or pass an element instead of a function.`
|
|
5224
|
-
);
|
|
5225
|
-
}
|
|
5226
|
-
function disableElement(child) {
|
|
5227
|
-
return cloneElement(child, {
|
|
5228
|
-
"aria-disabled": "true",
|
|
5229
|
-
className: cn(child.props.className, "cursor-not-allowed opacity-50"),
|
|
5230
|
-
onClickCapture: blockInteraction,
|
|
5231
|
-
onKeyDownCapture: blockNonTraversalKey,
|
|
5232
|
-
onKeyUpCapture: blockNonTraversalKey,
|
|
5233
|
-
onPointerDownCapture: blockInteraction,
|
|
5234
|
-
onMouseDownCapture: blockInteraction
|
|
5235
|
-
});
|
|
5236
|
-
}
|
|
5237
|
-
function InteractionFirewall({ children }) {
|
|
5238
|
-
return /* @__PURE__ */ jsx(
|
|
5239
|
-
"span",
|
|
5240
|
-
{
|
|
5241
|
-
"data-slot": "can-blocked",
|
|
5242
|
-
className: "contents",
|
|
5243
|
-
onClickCapture: blockInteraction,
|
|
5244
|
-
onPointerDownCapture: blockInteraction,
|
|
5245
|
-
onMouseDownCapture: blockInteraction,
|
|
5246
|
-
onKeyDownCapture: blockNonTraversalKey,
|
|
5247
|
-
onKeyUpCapture: blockNonTraversalKey,
|
|
5248
|
-
children
|
|
5249
|
-
}
|
|
5250
|
-
);
|
|
5251
|
-
}
|
|
5252
|
-
function DisabledSubtree({
|
|
5253
|
-
children,
|
|
5254
|
-
className,
|
|
5255
|
-
...props
|
|
5256
|
-
}) {
|
|
5257
|
-
const { "data-slot": _incomingDataSlot, ...restProps } = props;
|
|
5258
|
-
return /* @__PURE__ */ jsx(
|
|
5259
|
-
"span",
|
|
5260
|
-
{
|
|
5261
|
-
"data-slot": "can-disabled",
|
|
5262
|
-
"aria-disabled": "true",
|
|
5263
|
-
className: cn(
|
|
5264
|
-
"inline-flex cursor-not-allowed opacity-50",
|
|
5265
|
-
"*:pointer-events-none",
|
|
5266
|
-
className
|
|
5267
|
-
),
|
|
5268
|
-
onClickCapture: blockInteraction,
|
|
5269
|
-
onPointerDownCapture: blockInteraction,
|
|
5270
|
-
onMouseDownCapture: blockInteraction,
|
|
5271
|
-
onKeyDownCapture: blockNonTraversalKey,
|
|
5272
|
-
onKeyUpCapture: blockNonTraversalKey,
|
|
5273
|
-
...restProps,
|
|
5274
|
-
children
|
|
5275
|
-
}
|
|
5276
|
-
);
|
|
5277
|
-
}
|
|
5278
|
-
function Can({
|
|
5279
|
-
permission,
|
|
5280
|
-
mode = "any",
|
|
5281
|
-
negate = false,
|
|
5282
|
-
behavior = "hide",
|
|
5283
|
-
reason = null,
|
|
5284
|
-
fallback = null,
|
|
5285
|
-
loading,
|
|
5286
|
-
children
|
|
5287
|
-
}) {
|
|
5288
|
-
warnUnknownPermission(permission);
|
|
5289
|
-
const { can: can2, status } = useAbility();
|
|
5290
|
-
const hasPermission = status === "ready" && can2(permission, mode);
|
|
5106
|
+
function Can({ permission, mode = "any", negate = false, fallback = null, children }) {
|
|
5107
|
+
const { can } = useAbility();
|
|
5108
|
+
const hasPermission = can(permission, mode);
|
|
5291
5109
|
const show = negate ? !hasPermission : hasPermission;
|
|
5292
5110
|
if (typeof children === "function") {
|
|
5293
|
-
|
|
5294
|
-
...behavior === "disable" ? ["behavior='disable'"] : [],
|
|
5295
|
-
...reason !== null ? ["reason"] : [],
|
|
5296
|
-
...fallback !== null ? ["fallback"] : [],
|
|
5297
|
-
...loading !== void 0 ? ["loading"] : []
|
|
5298
|
-
]);
|
|
5299
|
-
return /* @__PURE__ */ jsx(Fragment$1, { children: children({ allowed: show, status }) });
|
|
5300
|
-
}
|
|
5301
|
-
if (status === "loading" && loading !== void 0) {
|
|
5302
|
-
return /* @__PURE__ */ jsx(Fragment$1, { children: loading });
|
|
5303
|
-
}
|
|
5304
|
-
if (show) {
|
|
5305
|
-
return /* @__PURE__ */ jsx(Fragment$1, { children });
|
|
5111
|
+
return /* @__PURE__ */ jsx(Fragment$1, { children: children(show) });
|
|
5306
5112
|
}
|
|
5307
|
-
|
|
5308
|
-
if (isValidElement(children) && children.type !== Fragment) {
|
|
5309
|
-
const disabledChild = disableElement(children);
|
|
5310
|
-
if (reason === null) {
|
|
5311
|
-
return /* @__PURE__ */ jsx(InteractionFirewall, { children: disabledChild });
|
|
5312
|
-
}
|
|
5313
|
-
return /* @__PURE__ */ jsxs(Tooltip, { children: [
|
|
5314
|
-
/* @__PURE__ */ jsx(InteractionFirewall, { children: /* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: disabledChild }) }),
|
|
5315
|
-
/* @__PURE__ */ jsx(TooltipContent, { children: reason })
|
|
5316
|
-
] });
|
|
5317
|
-
}
|
|
5318
|
-
if (reason === null) {
|
|
5319
|
-
return /* @__PURE__ */ jsx(DisabledSubtree, { children });
|
|
5320
|
-
}
|
|
5321
|
-
return /* @__PURE__ */ jsxs(Tooltip, { children: [
|
|
5322
|
-
/* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx(DisabledSubtree, { children }) }),
|
|
5323
|
-
/* @__PURE__ */ jsx(TooltipContent, { children: reason })
|
|
5324
|
-
] });
|
|
5325
|
-
}
|
|
5326
|
-
return /* @__PURE__ */ jsx(Fragment$1, { children: fallback });
|
|
5113
|
+
return show ? /* @__PURE__ */ jsx(Fragment$1, { children }) : /* @__PURE__ */ jsx(Fragment$1, { children: fallback });
|
|
5327
5114
|
}
|
|
5328
5115
|
Can.displayName = "Can";
|
|
5329
|
-
function CanNot({
|
|
5330
|
-
permission,
|
|
5331
|
-
mode = "any",
|
|
5332
|
-
behavior = "hide",
|
|
5333
|
-
reason = null,
|
|
5334
|
-
fallback = null,
|
|
5335
|
-
loading,
|
|
5336
|
-
children
|
|
5337
|
-
}) {
|
|
5338
|
-
return /* @__PURE__ */ jsx(
|
|
5339
|
-
Can,
|
|
5340
|
-
{
|
|
5341
|
-
permission,
|
|
5342
|
-
mode,
|
|
5343
|
-
negate: true,
|
|
5344
|
-
behavior,
|
|
5345
|
-
reason,
|
|
5346
|
-
fallback,
|
|
5347
|
-
loading,
|
|
5348
|
-
children
|
|
5349
|
-
}
|
|
5350
|
-
);
|
|
5116
|
+
function CanNot({ permission, mode = "any", fallback = null, children }) {
|
|
5117
|
+
return /* @__PURE__ */ jsx(Can, { permission, mode, negate: true, fallback, children });
|
|
5351
5118
|
}
|
|
5352
5119
|
CanNot.displayName = "CanNot";
|
|
5353
5120
|
function useMediaQuery(query) {
|
|
@@ -7079,6 +6846,7 @@ function useAppForm(schema, options) {
|
|
|
7079
6846
|
// src/lib/cdn.ts
|
|
7080
6847
|
var CDN_BASE = "https://dibt9vplwriap.cloudfront.net";
|
|
7081
6848
|
var logos = {
|
|
6849
|
+
// Total Civil
|
|
7082
6850
|
color: `${CDN_BASE}/logos/Logo_Total_Color.webp`,
|
|
7083
6851
|
colorAna: `${CDN_BASE}/logos/Logo_Total_Color-ANA.webp`,
|
|
7084
6852
|
colorAnaa: `${CDN_BASE}/logos/Logo_Total_Color-ANAA.webp`,
|
|
@@ -7086,7 +6854,11 @@ var logos = {
|
|
|
7086
6854
|
positive: `${CDN_BASE}/logos/Logo_Total_Positive.webp`,
|
|
7087
6855
|
grayScale: `${CDN_BASE}/logos/Logo_Total_gray_scale.webp`,
|
|
7088
6856
|
monochBlack: `${CDN_BASE}/logos/Logo_Total_monochB.webp`,
|
|
7089
|
-
monochOrange: `${CDN_BASE}/logos/Logo_Total_monochO.webp
|
|
6857
|
+
monochOrange: `${CDN_BASE}/logos/Logo_Total_monochO.webp`,
|
|
6858
|
+
isotype: `${CDN_BASE}/logos/Isotipo_Total_Color.webp`,
|
|
6859
|
+
// Total Millwork
|
|
6860
|
+
millworkColor: `${CDN_BASE}/logos/Logo_Millwork_Color.webp`,
|
|
6861
|
+
millworkNegative: `${CDN_BASE}/logos/Logo_Millwork_Negative.webp`
|
|
7090
6862
|
};
|
|
7091
6863
|
function Table({
|
|
7092
6864
|
className,
|
|
@@ -7144,7 +6916,7 @@ function TableHead({ className, ...props }) {
|
|
|
7144
6916
|
{
|
|
7145
6917
|
"data-slot": "table-head",
|
|
7146
6918
|
className: cn(
|
|
7147
|
-
"text-foreground has
|
|
6919
|
+
"text-foreground has([role=checkbox])]:pr-0 h-12 px-3 text-left align-middle font-medium whitespace-nowrap",
|
|
7148
6920
|
className
|
|
7149
6921
|
),
|
|
7150
6922
|
...props
|
|
@@ -7157,7 +6929,7 @@ function TableCell({ className, ...props }) {
|
|
|
7157
6929
|
{
|
|
7158
6930
|
"data-slot": "table-cell",
|
|
7159
6931
|
className: cn(
|
|
7160
|
-
"has
|
|
6932
|
+
"has([role=checkbox])]:pr-0 p-3 align-middle whitespace-nowrap",
|
|
7161
6933
|
className
|
|
7162
6934
|
),
|
|
7163
6935
|
...props
|
|
@@ -7418,13 +7190,6 @@ function useTableContext() {
|
|
|
7418
7190
|
function useTableContextSafe() {
|
|
7419
7191
|
return useContext(TableContext);
|
|
7420
7192
|
}
|
|
7421
|
-
|
|
7422
|
-
// src/components/compounds/Table/cell-size-class.ts
|
|
7423
|
-
var cellSizeClass = {
|
|
7424
|
-
sm: "px-3 py-1.5 text-xs",
|
|
7425
|
-
md: "px-5 py-2.5 text-sm",
|
|
7426
|
-
lg: "px-6 py-3 text-sm"
|
|
7427
|
-
};
|
|
7428
7193
|
var cardPadding = {
|
|
7429
7194
|
sm: "p-3",
|
|
7430
7195
|
md: "p-4",
|
|
@@ -7762,9 +7527,6 @@ function DataTableHeaderCell({ header }) {
|
|
|
7762
7527
|
},
|
|
7763
7528
|
className: cn(
|
|
7764
7529
|
"bg-primary text-primary-foreground",
|
|
7765
|
-
// Same density padding as the body cells: without it the header
|
|
7766
|
-
// label and the cell value below it sit at different offsets.
|
|
7767
|
-
cellSizeClass[meta.size ?? tableSize],
|
|
7768
7530
|
canResize && "relative",
|
|
7769
7531
|
meta.align === "center" && "text-center",
|
|
7770
7532
|
meta.align === "right" && "text-right",
|
|
@@ -8154,6 +7916,11 @@ function useTablePersistence({
|
|
|
8154
7916
|
persistDensity
|
|
8155
7917
|
};
|
|
8156
7918
|
}
|
|
7919
|
+
var cellSizeClass = {
|
|
7920
|
+
sm: "px-1 py-0 text-xs",
|
|
7921
|
+
md: "px-5 py-2.5 text-sm",
|
|
7922
|
+
lg: "px-6 py-3 text-sm"
|
|
7923
|
+
};
|
|
8157
7924
|
function resolveClassName(value, row) {
|
|
8158
7925
|
return typeof value === "function" ? value(row) : value;
|
|
8159
7926
|
}
|
|
@@ -8194,13 +7961,6 @@ function DataTableCell({
|
|
|
8194
7961
|
}
|
|
8195
7962
|
);
|
|
8196
7963
|
}
|
|
8197
|
-
var INTERACTIVE_CELL_CONTENT = 'button, a, input, select, textarea, [role="button"], [role="checkbox"], [role="menuitem"], [role="link"]';
|
|
8198
|
-
function isInteractiveCellEvent(event) {
|
|
8199
|
-
const target = event.target;
|
|
8200
|
-
if (!(target instanceof Element)) return false;
|
|
8201
|
-
const match = target.closest(INTERACTIVE_CELL_CONTENT);
|
|
8202
|
-
return match !== null && match !== event.currentTarget;
|
|
8203
|
-
}
|
|
8204
7964
|
function DataTableRow({ row, classNames }) {
|
|
8205
7965
|
const { onRowClick, variant } = useTableContext();
|
|
8206
7966
|
const clickable = Boolean(onRowClick);
|
|
@@ -8213,15 +7973,12 @@ function DataTableRow({ row, classNames }) {
|
|
|
8213
7973
|
"data-clickable": clickable || void 0,
|
|
8214
7974
|
role: clickable ? "button" : void 0,
|
|
8215
7975
|
tabIndex: clickable ? 0 : void 0,
|
|
8216
|
-
onClick: clickable ? (
|
|
8217
|
-
if (isInteractiveCellEvent(e)) return;
|
|
8218
|
-
onRowClick?.(row.original);
|
|
8219
|
-
} : void 0,
|
|
7976
|
+
onClick: clickable ? () => onRowClick?.(row.original) : void 0,
|
|
8220
7977
|
onKeyDown: clickable ? (e) => {
|
|
8221
|
-
if (e.key
|
|
8222
|
-
|
|
8223
|
-
|
|
8224
|
-
|
|
7978
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
7979
|
+
e.preventDefault();
|
|
7980
|
+
onRowClick?.(row.original);
|
|
7981
|
+
}
|
|
8225
7982
|
} : void 0,
|
|
8226
7983
|
className: cn("hover:bg-muted", clickable && "cursor-pointer", rowClassName),
|
|
8227
7984
|
children: row.getVisibleCells().map((cell) => /* @__PURE__ */ jsx(DataTableCell, { cell, cellClassName }, cell.id))
|
|
@@ -8822,7 +8579,7 @@ function DataTableFooter({ pagination, selectedCount, className }) {
|
|
|
8822
8579
|
className: cn("flex items-center justify-between border-t px-4 py-2", className),
|
|
8823
8580
|
children: [
|
|
8824
8581
|
selectedCount != null && selectedCount > 0 && /* @__PURE__ */ jsx("span", { "aria-live": "polite", className: "text-muted-foreground text-xs", children: `${selectedCount} row${selectedCount > 1 ? "s" : ""} selected` }),
|
|
8825
|
-
/* @__PURE__ */ jsx(
|
|
8582
|
+
/* @__PURE__ */ jsx(TablePagination, { ...pagination })
|
|
8826
8583
|
]
|
|
8827
8584
|
}
|
|
8828
8585
|
);
|
|
@@ -8931,21 +8688,18 @@ function DataTableSearch({
|
|
|
8931
8688
|
debounce = 300
|
|
8932
8689
|
}) {
|
|
8933
8690
|
const ctx = useTableContextSafe();
|
|
8691
|
+
const [inputValue, setInputValue] = useState("");
|
|
8934
8692
|
const globalFilter = ctx?.globalFilter;
|
|
8935
8693
|
const setGlobalFilter = ctx?.setGlobalFilter;
|
|
8936
|
-
const committedValue = globalFilter ?? "";
|
|
8937
|
-
const [inputValue, setInputValue] = useState(committedValue);
|
|
8938
8694
|
useEffect(() => {
|
|
8939
|
-
if (globalFilter ===
|
|
8940
|
-
setInputValue(globalFilter);
|
|
8695
|
+
if (globalFilter === "") setInputValue("");
|
|
8941
8696
|
}, [globalFilter]);
|
|
8942
8697
|
useEffect(() => {
|
|
8943
|
-
if (inputValue === committedValue) return;
|
|
8944
8698
|
const timer = setTimeout(() => {
|
|
8945
8699
|
setGlobalFilter?.(inputValue);
|
|
8946
8700
|
}, debounce);
|
|
8947
8701
|
return () => clearTimeout(timer);
|
|
8948
|
-
}, [inputValue,
|
|
8702
|
+
}, [inputValue, debounce, setGlobalFilter]);
|
|
8949
8703
|
const handleClear = () => {
|
|
8950
8704
|
setInputValue("");
|
|
8951
8705
|
setGlobalFilter?.("");
|
|
@@ -8966,13 +8720,7 @@ function DataTableSearch({
|
|
|
8966
8720
|
onChange: (e) => setInputValue(e.target.value),
|
|
8967
8721
|
placeholder,
|
|
8968
8722
|
"aria-label": placeholder,
|
|
8969
|
-
className:
|
|
8970
|
-
"h-8 w-48 pr-9 pl-9 text-sm",
|
|
8971
|
-
"[&::-webkit-search-cancel-button]:appearance-none",
|
|
8972
|
-
"[&::-webkit-search-decoration]:appearance-none",
|
|
8973
|
-
"[&::-webkit-search-results-button]:appearance-none",
|
|
8974
|
-
"[&::-webkit-search-results-decoration]:appearance-none"
|
|
8975
|
-
)
|
|
8723
|
+
className: "h-8 w-48 pr-8 pl-8 text-sm"
|
|
8976
8724
|
}
|
|
8977
8725
|
),
|
|
8978
8726
|
inputValue && /* @__PURE__ */ jsx(
|
|
@@ -8982,7 +8730,7 @@ function DataTableSearch({
|
|
|
8982
8730
|
size: "icon-sm",
|
|
8983
8731
|
onClick: handleClear,
|
|
8984
8732
|
"aria-label": "Clear search",
|
|
8985
|
-
className: "text-muted-foreground hover:text-foreground absolute
|
|
8733
|
+
className: "text-muted-foreground hover:text-foreground absolute right-0.5 size-6",
|
|
8986
8734
|
children: /* @__PURE__ */ jsx(X, { className: "size-3.5", "aria-hidden": "true" })
|
|
8987
8735
|
}
|
|
8988
8736
|
)
|
|
@@ -9367,6 +9115,6 @@ function TCCEProvider({
|
|
|
9367
9115
|
return /* @__PURE__ */ jsx(TooltipProvider, { delayDuration: tooltipDelayDuration, children: /* @__PURE__ */ jsx(AbilityProvider, { permissions, children: /* @__PURE__ */ jsx(Toaster, { position: toasterPosition, children }) }) });
|
|
9368
9116
|
}
|
|
9369
9117
|
|
|
9370
|
-
export { AbilityProvider, Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AppShell, Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage, Badge2 as Badge, BottomNav, BottomNavTabs, BottomNavTabsContent, BottomNavTabsList, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, Can, CanNot, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, Checkbox, ColorPicker, ColorPickerAlpha, ColorPickerEyeDropper, ColorPickerFormat, ColorPickerHue, ColorPickerOutput, ColorPickerPresets, ColorPickerSelection, Combobox, DataTable, DataTableCardView, DataTableColumnFilter, DataTableFooter, DataTableHeaderCell, DataTableRowActions, DataTableSearch, DataTableSkeleton, DataTableToolbar, DatePicker, Dialog, DialogBody, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Drawer, DrawerBody, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Dropzone, DropzoneContent, DropzoneEmptyState, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, EventCalendar, Field, FieldDescription, FieldError, FieldGroup, FieldLabel, FilterOption, Input, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle,
|
|
9118
|
+
export { AbilityProvider, Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AppShell, Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage, Badge2 as Badge, BottomNav, BottomNavTabs, BottomNavTabsContent, BottomNavTabsList, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, Can, CanNot, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, Checkbox, ColorPicker, ColorPickerAlpha, ColorPickerEyeDropper, ColorPickerFormat, ColorPickerHue, ColorPickerOutput, ColorPickerPresets, ColorPickerSelection, Combobox, DataTable, DataTableCardView, DataTableColumnFilter, DataTableFooter, DataTableHeaderCell, DataTableRowActions, DataTableSearch, DataTableSkeleton, DataTableToolbar, DatePicker, Dialog, DialogBody, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Drawer, DrawerBody, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Dropzone, DropzoneContent, DropzoneEmptyState, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, EventCalendar, Field, FieldDescription, FieldError, FieldGroup, FieldLabel, FilterOption, Input, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Label, Link, Logo, MiniCalendar, MiniCalendarDay, MiniCalendarDays, MiniCalendarNavigation, Navbar, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PhoneField, PinInput, Popover, PopoverAnchor, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, Progress, RadioGroup, RadioGroupItem, SegmentedControl, SegmentedControlItem, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, Spinner, SpinnerDots, SpinnerLoader, Status, StatusIndicator, StatusLabel, Switch, TCCEProvider, TEXT_SIZES, TEXT_WEIGHTS, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TablePagination, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Text, Textarea, Toaster, Toggle, ToggleGroup2 as ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, alertVariants, animation, avatarVariants, badgeVariants2 as badgeVariants, buttonVariants, columnFiltersToArrayQueryParams, columnFiltersToJsonString, columnFiltersToQueryParams, columnFiltersToRecord, createBackendParams, createBackendParamsWithFilters, duration, ease, fadeIn, getActiveFilterCount, getActiveFilterValues, getColumnValueCounts, getUniqueColumnValues, hasActiveFilters, linkVariants, logos, matchPermission, mergeFilters, multiSelectFilter, navigationMenuTriggerStyle, parseJsonToFilters, parseQueryParamsToFilters, progressIndicatorVariants, progressVariants, scaleIn, searchInArray, skeletonVariants, slideRight, slideUp, sortRecordToSortingState, sortingStateToJsonString, sortingStateToRecord, spinnerDotsVariants, spinnerLoaderVariants, spinnerVariants, spring, stagger, toggleVariants, tooltipContentVariants, transition, useAbility, useAppForm, useCan, useCarousel, useColorPicker, useColumnFilter, useSidebar, useTableContext, useTableData, useTableFiltering, useTableGlobalFilter, useTableSizing, useTableSorting, useTableVisibility, useToast, validatePhone };
|
|
9371
9119
|
//# sourceMappingURL=main.js.map
|
|
9372
9120
|
//# sourceMappingURL=main.js.map
|