@bizapps/design-system-testing 1.8.0 → 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/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, isValidElement, cloneElement } from 'react';
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-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-hidden rounded-md border shadow-md",
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-(--radix-select-trigger-width)",
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("scroll-my-1 p-1", position === "popper" && "w-full"),
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
- modifiersClassNames: {
4505
- preview_start: "relative isolate z-0 rounded-l-md bg-primary/8 after:absolute after:inset-y-0 after:right-0 after:w-3 after:bg-primary/8",
4506
- preview_middle: "rounded-none bg-primary/8",
4507
- preview_end: "relative isolate z-0 rounded-r-md bg-primary/8 after:absolute after:inset-y-0 after:left-0 after:w-3 after:bg-primary/8",
4508
- ...modifiersClassNames
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-[preview-edge=true]:ring-primary/50 data-[preview-edge=true]:text-primary data-[preview-middle=true]:text-primary 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-[preview-edge=true]:rounded-md data-[preview-edge=true]:font-medium data-[preview-edge=true]:ring-[2px] data-[preview-middle=true]:font-medium 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",
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(props) {
4553
- const {
4554
- placeholder = "Pick a date",
4555
- disabled = false,
4556
- className,
4557
- fromDate,
4558
- toDate,
4559
- numberOfMonths = 1
4560
- } = props;
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 (props.mode === "range") {
4566
- const range = props.selected;
4567
- if (!range?.from) return placeholder;
4568
- if (!range.to) return `${format(range.from, "MMM d, yyyy")} \u2013 \u2026`;
4569
- return `${format(range.from, "MMM d, yyyy")} \u2013 ${format(range.to, "MMM d, yyyy")}`;
4570
- }
4571
- return props.selected ? format(props.selected, "MMM d, yyyy") : placeholder;
4572
- }, [props.mode, props.selected, placeholder]);
4573
- const handleOpenChange = (nextOpen) => {
4574
- setOpen(nextOpen);
4575
- if (!nextOpen) {
4576
- setAwaitingRangeEnd(false);
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: props.mode === "range" ? (
4643
- // Clearing the preview on the wrapper instead of per day
4644
- // avoids the blank frame `onDayMouseLeave` would cause when
4645
- // the pointer travels from one day to the next.
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: props.selected,
4651
- onSelect: handleRangeSelect,
4652
- modifiers: previewModifiers,
4653
- onDayMouseEnter: handleDayPreview,
4654
- onDayFocus: handleDayPreview,
4655
- numberOfMonths,
4656
- autoFocus: true,
4657
- ...dateConstraints
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
- mode: "single",
4664
- selected: props.selected,
4665
- onSelect: (date) => {
4666
- props.onSelect?.(date);
4667
- setOpen(false);
4668
- },
4669
- numberOfMonths,
4670
- autoFocus: true,
4671
- ...dateConstraints
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 [imperativelyResolved, setImperativelyResolved] = useState(false);
5146
- const status = permissions !== void 0 || imperativelyResolved ? "ready" : "loading";
5147
- const can2 = useCallback(
5148
- (perms, mode = "any") => can(permissionSet, perms, mode),
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 permissionKey = permissions === void 0 ? null : [...permissions].sort().join("|");
5160
- const syncedKey = useRef(permissionKey);
5081
+ const syncedKey = useRef(permissions ? permissions.join("|") : null);
5161
5082
  useEffect(() => {
5162
- if (permissionKey === null) return;
5163
- if (permissionKey === syncedKey.current) return;
5164
- syncedKey.current = permissionKey;
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
- }, [permissionKey, permissions]);
5088
+ }, [permissions]);
5167
5089
  const value = useMemo(
5168
- () => ({ can: can2, setAbilities, clearAbilities, status }),
5169
- [can2, setAbilities, clearAbilities, status]
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: can2 } = useAbility();
5182
- return can2(permissions, mode);
5103
+ const { can } = useAbility();
5104
+ return can(permissions, mode);
5183
5105
  }
5184
- function useAbilityStatus() {
5185
- return useAbility().status;
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
- warnRenderPropVoidsProps([
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
- if (behavior === "disable") {
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-[[role=checkbox]]:pr-0 h-12 px-3 text-left align-middle font-medium whitespace-nowrap",
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-[[role=checkbox]]:pr-0 p-3 align-middle whitespace-nowrap",
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 ? (e) => {
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 !== "Enter" && e.key !== " ") return;
8222
- if (isInteractiveCellEvent(e)) return;
8223
- e.preventDefault();
8224
- onRowClick?.(row.original);
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("div", { className: "ml-auto", children: /* @__PURE__ */ jsx(TablePagination, { ...pagination }) })
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 === void 0) return;
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, committedValue, debounce, setGlobalFilter]);
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: cn(
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 top-1/2 right-1.5 size-6 -translate-y-1/2",
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, KNOWN_PERMISSIONS, 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, useAbilityStatus, useAppForm, useCan, useCarousel, useColorPicker, useColumnFilter, useSidebar, useTableContext, useTableData, useTableFiltering, useTableGlobalFilter, useTableSizing, useTableSorting, useTableVisibility, useToast, validatePhone };
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