@fayz-ai/ui 0.19.0 → 0.22.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.
Files changed (63) hide show
  1. package/dist/{chunk-5NEADAIP.js → chunk-7G3O54CC.js} +140 -16
  2. package/dist/chunk-7G3O54CC.js.map +1 -0
  3. package/dist/{chunk-SB6DWHXI.js → chunk-DHNUZF2X.js} +10 -3
  4. package/dist/chunk-DHNUZF2X.js.map +1 -0
  5. package/dist/{chunk-6YFPPK7X.js → chunk-PQUS22JE.js} +146 -38
  6. package/dist/chunk-PQUS22JE.js.map +1 -0
  7. package/dist/{chunk-ERSX3C7T.js → chunk-SUSW4LSW.js} +37 -6
  8. package/dist/chunk-SUSW4LSW.js.map +1 -0
  9. package/dist/{chunk-5WSKZU7M.js → chunk-ZSOT7KTE.js} +85 -118
  10. package/dist/chunk-ZSOT7KTE.js.map +1 -0
  11. package/dist/dashboard/OnboardingWidget.d.ts +4 -1
  12. package/dist/dashboard/OnboardingWidget.d.ts.map +1 -1
  13. package/dist/dashboard/SidebarOnboarding.d.ts +11 -1
  14. package/dist/dashboard/SidebarOnboarding.d.ts.map +1 -1
  15. package/dist/dashboard/index.js +2 -2
  16. package/dist/icons.js +1 -1
  17. package/dist/index.d.ts +2 -2
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +445 -87
  20. package/dist/index.js.map +1 -1
  21. package/dist/layout/AppShell.d.ts +3 -1
  22. package/dist/layout/AppShell.d.ts.map +1 -1
  23. package/dist/layout/ModulePage.d.ts +13 -0
  24. package/dist/layout/ModulePage.d.ts.map +1 -1
  25. package/dist/layout/SaveBar.d.ts.map +1 -1
  26. package/dist/layout/Sidebar.d.ts +7 -1
  27. package/dist/layout/Sidebar.d.ts.map +1 -1
  28. package/dist/layout/Takeover.d.ts +31 -0
  29. package/dist/layout/Takeover.d.ts.map +1 -0
  30. package/dist/layout/index.d.ts +1 -0
  31. package/dist/layout/index.d.ts.map +1 -1
  32. package/dist/layout/index.js +3 -3
  33. package/dist/primitives/header-tabs.d.ts +23 -1
  34. package/dist/primitives/header-tabs.d.ts.map +1 -1
  35. package/dist/primitives/index.js +3 -3
  36. package/dist/primitives/list-view.d.ts.map +1 -1
  37. package/dist/primitives/page-actions.d.ts.map +1 -1
  38. package/dist/primitives/refresh-button.d.ts.map +1 -1
  39. package/dist/primitives/row-actions.d.ts.map +1 -1
  40. package/dist/primitives/search-select.d.ts +3 -1
  41. package/dist/primitives/search-select.d.ts.map +1 -1
  42. package/dist/primitives/stock-entry-form.d.ts +4 -1
  43. package/dist/primitives/stock-entry-form.d.ts.map +1 -1
  44. package/dist/styles.css +99 -0
  45. package/dist/tour/PracticeOverlay.d.ts +12 -0
  46. package/dist/tour/PracticeOverlay.d.ts.map +1 -0
  47. package/dist/tour/TourSpotlight.d.ts.map +1 -1
  48. package/dist/tour/confetti.d.ts +17 -0
  49. package/dist/tour/confetti.d.ts.map +1 -0
  50. package/dist/tour/index.d.ts +3 -0
  51. package/dist/tour/index.d.ts.map +1 -1
  52. package/dist/tour/practice.store.d.ts +28 -0
  53. package/dist/tour/practice.store.d.ts.map +1 -0
  54. package/dist/tour/tour.store.d.ts +4 -0
  55. package/dist/tour/tour.store.d.ts.map +1 -1
  56. package/dist/tour/types.d.ts +17 -0
  57. package/dist/tour/types.d.ts.map +1 -1
  58. package/package.json +2 -2
  59. package/dist/chunk-5NEADAIP.js.map +0 -1
  60. package/dist/chunk-5WSKZU7M.js.map +0 -1
  61. package/dist/chunk-6YFPPK7X.js.map +0 -1
  62. package/dist/chunk-ERSX3C7T.js.map +0 -1
  63. package/dist/chunk-SB6DWHXI.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { useSaveBarVisible, useCrossModuleBack, useBackHandler, PageHeaderActions } from './chunk-6YFPPK7X.js';
1
+ import { useSaveBarVisible, useCrossModuleBack, useBackHandler, PageHeaderActions, SegmentedControl } from './chunk-PQUS22JE.js';
2
2
  import { useIsWide, Dropdown, DropdownTrigger, DropdownContent, DropdownSeparator, DropdownItem, Card, DataTable, Checkbox } from './chunk-E44WOPCR.js';
3
3
  import { cn, Button } from './chunk-OKZ6WQB3.js';
4
4
  import * as React18 from 'react';
@@ -483,6 +483,13 @@ var TooltipContent = React18.forwardRef(({ className, sideOffset = 4, ...props }
483
483
  }
484
484
  ));
485
485
  TooltipContent.displayName = TooltipPrimitive.Content.displayName;
486
+ var Hint = React18.forwardRef(function Hint2({ label, children, side = "top", delayDuration = 0, ...rest }, ref) {
487
+ if (!label) return React18.cloneElement(children, { ...rest, ref });
488
+ return /* @__PURE__ */ jsx(TooltipPrimitive.Provider, { delayDuration, children: /* @__PURE__ */ jsxs(Tooltip, { children: [
489
+ /* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, ...rest, ref, children }),
490
+ /* @__PURE__ */ jsx(TooltipContent, { side, className: "px-2 py-1 text-xs font-medium", children: label })
491
+ ] }) });
492
+ });
486
493
  function iconOf(action, className) {
487
494
  const Icon2 = action.icon;
488
495
  return Icon2 ? /* @__PURE__ */ jsx(Icon2, { className }) : null;
@@ -520,20 +527,24 @@ function PageActionBar({ actions, className }) {
520
527
  const head = primary[0];
521
528
  const menu = [...secondary, ...danger];
522
529
  return /* @__PURE__ */ jsxs("div", { className: cn("flex shrink-0 items-center gap-2", className), children: [
523
- utility.map((a) => /* @__PURE__ */ jsx(
524
- Button,
525
- {
526
- variant: "outline",
527
- size: "icon",
528
- onClick: () => void a.onSelect(),
529
- disabled: a.disabled,
530
- "aria-label": a.label,
531
- title: a.label,
532
- "data-testid": a.testId,
533
- "data-tour": `action.${a.id}`,
534
- children: iconOf(a, "h-4 w-4")
535
- },
536
- a.id
530
+ utility.map((a) => (
531
+ // Um botão só de ícone não diz o que faz. `title=` parecia resolver e
532
+ // não resolve: espera ~1s que ninguém controla, sai na pintura do
533
+ // sistema operacional, nunca aparece no toque e vários leitores de tela
534
+ // pulam. Hint é o tooltip do design system, e o texto é ANUNCIADO.
535
+ /* @__PURE__ */ jsx(Hint, { label: a.label, children: /* @__PURE__ */ jsx(
536
+ Button,
537
+ {
538
+ variant: "outline",
539
+ size: "icon",
540
+ onClick: () => void a.onSelect(),
541
+ disabled: a.disabled,
542
+ "aria-label": a.label,
543
+ "data-testid": a.testId,
544
+ "data-tour": `action.${a.id}`,
545
+ children: iconOf(a, "h-4 w-4")
546
+ }
547
+ ) }, a.id)
537
548
  )),
538
549
  head && menu.length === 0 && /* @__PURE__ */ jsxs(Button, { onClick: () => void head.onSelect(), disabled: head.disabled, "data-testid": head.testId, "data-tour": `action.${head.id}`, children: [
539
550
  iconOf(head, "mr-1.5 h-4 w-4"),
@@ -545,7 +556,7 @@ function PageActionBar({ actions, className }) {
545
556
  head.label
546
557
  ] }),
547
558
  /* @__PURE__ */ jsxs(Dropdown, { children: [
548
- /* @__PURE__ */ jsx(DropdownTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
559
+ /* @__PURE__ */ jsx(DropdownTrigger, { asChild: true, children: /* @__PURE__ */ jsx(Hint, { label: `${head.label}\u2026`, children: /* @__PURE__ */ jsx(
549
560
  Button,
550
561
  {
551
562
  className: "-ml-px rounded-l-none px-2",
@@ -553,12 +564,12 @@ function PageActionBar({ actions, className }) {
553
564
  "data-tour": menu.map((a) => `action.${a.id}`).join(" "),
554
565
  children: /* @__PURE__ */ jsx(ChevronDown, { className: "h-4 w-4" })
555
566
  }
556
- ) }),
567
+ ) }) }),
557
568
  /* @__PURE__ */ jsx(DropdownContent, { align: "end", className: "w-56", children: /* @__PURE__ */ jsx(ActionItems, { actions: menu }) })
558
569
  ] })
559
570
  ] }),
560
571
  !head && menu.length > 0 && /* @__PURE__ */ jsxs(Dropdown, { children: [
561
- /* @__PURE__ */ jsx(DropdownTrigger, { asChild: true, children: /* @__PURE__ */ jsx(Button, { variant: "outline", size: "icon", "aria-label": "A\xE7\xF5es", children: /* @__PURE__ */ jsx(MoreHorizontal, { className: "h-4 w-4" }) }) }),
572
+ /* @__PURE__ */ jsx(DropdownTrigger, { asChild: true, children: /* @__PURE__ */ jsx(Hint, { label: "A\xE7\xF5es", children: /* @__PURE__ */ jsx(Button, { variant: "outline", size: "icon", "aria-label": "A\xE7\xF5es", children: /* @__PURE__ */ jsx(MoreHorizontal, { className: "h-4 w-4" }) }) }) }),
562
573
  /* @__PURE__ */ jsx(DropdownContent, { align: "end", className: "w-56", children: /* @__PURE__ */ jsx(ActionItems, { actions: menu }) })
563
574
  ] })
564
575
  ] });
@@ -701,24 +712,25 @@ function RowActions({
701
712
  return /* @__PURE__ */ jsxs("div", { className: cn("flex shrink-0 items-center justify-end gap-0.5", className), onClick: stop, children: [
702
713
  inline.map((a) => {
703
714
  const Icon2 = a.icon;
704
- return /* @__PURE__ */ jsx(
705
- Button,
706
- {
707
- variant: "ghost",
708
- size: "icon",
709
- className: "fz-tap text-muted-foreground",
710
- onClick: () => void a.onSelect(),
711
- disabled: a.disabled,
712
- "aria-label": a.label,
713
- title: a.label,
714
- "data-testid": a.testId,
715
- children: Icon2 ? /* @__PURE__ */ jsx(Icon2, { className: "h-4 w-4" }) : null
716
- },
717
- a.id
715
+ return (
716
+ // Uma linha de tabela com três ícones cinza é três adivinhações.
717
+ /* @__PURE__ */ jsx(Hint, { label: a.label, children: /* @__PURE__ */ jsx(
718
+ Button,
719
+ {
720
+ variant: "ghost",
721
+ size: "icon",
722
+ className: "fz-tap text-muted-foreground",
723
+ onClick: () => void a.onSelect(),
724
+ disabled: a.disabled,
725
+ "aria-label": a.label,
726
+ "data-testid": a.testId,
727
+ children: Icon2 ? /* @__PURE__ */ jsx(Icon2, { className: "h-4 w-4" }) : null
728
+ }
729
+ ) }, a.id)
718
730
  );
719
731
  }),
720
732
  overflow.length > 0 && /* @__PURE__ */ jsxs(Dropdown, { children: [
721
- /* @__PURE__ */ jsx(DropdownTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
733
+ /* @__PURE__ */ jsx(DropdownTrigger, { asChild: true, children: /* @__PURE__ */ jsx(Hint, { label: rowActionsLabel, children: /* @__PURE__ */ jsx(
722
734
  Button,
723
735
  {
724
736
  variant: "ghost",
@@ -727,7 +739,7 @@ function RowActions({
727
739
  "aria-label": rowActionsLabel,
728
740
  children: /* @__PURE__ */ jsx(MoreHorizontal, { className: "h-4 w-4" })
729
741
  }
730
- ) }),
742
+ ) }) }),
731
743
  /* @__PURE__ */ jsx(DropdownContent, { align: "end", className: "w-52", children: overflow.map((a, i) => {
732
744
  const Icon2 = a.icon;
733
745
  const isDanger = a.intent === "danger";
@@ -998,28 +1010,31 @@ function RefreshButton({ onRefresh, fromCache, label, labelCached, className, ..
998
1010
  if (alive.current) setPhase((p) => p === "done" ? "idle" : p);
999
1011
  }, 1400);
1000
1012
  }
1001
- return /* @__PURE__ */ jsx(
1002
- Button,
1003
- {
1004
- type: "button",
1005
- variant: "ghost",
1006
- size: "icon",
1007
- title,
1008
- "aria-label": title,
1009
- onClick: () => {
1010
- void run();
1011
- },
1012
- className: cn(
1013
- // The state colours are the point of this control, so they stay; what
1014
- // it was missing is the shared button underneath them.
1015
- "transition",
1016
- fromCache && phase !== "done" && "text-amber-600 hover:text-amber-700 dark:text-amber-500 dark:hover:text-amber-400",
1017
- phase === "done" && "text-emerald-600 dark:text-emerald-500",
1018
- className
1019
- ),
1020
- ...rest,
1021
- children: phase === "done" ? /* @__PURE__ */ jsx(Check, { className: "h-4 w-4" }) : /* @__PURE__ */ jsx(RefreshCw, { className: cn("h-4 w-4", phase === "busy" && "animate-spin") })
1022
- }
1013
+ return (
1014
+ // Só o ícone: sem o tooltip do design system, o que este botão faz depende
1015
+ // de o usuário arriscar um clique. `title=` não conta — ver Hint.
1016
+ /* @__PURE__ */ jsx(Hint, { label: title, children: /* @__PURE__ */ jsx(
1017
+ Button,
1018
+ {
1019
+ type: "button",
1020
+ variant: "ghost",
1021
+ size: "icon",
1022
+ "aria-label": title,
1023
+ onClick: () => {
1024
+ void run();
1025
+ },
1026
+ className: cn(
1027
+ // The state colours are the point of this control, so they stay; what
1028
+ // it was missing is the shared button underneath them.
1029
+ "transition",
1030
+ fromCache && phase !== "done" && "text-amber-600 hover:text-amber-700 dark:text-amber-500 dark:hover:text-amber-400",
1031
+ phase === "done" && "text-emerald-600 dark:text-emerald-500",
1032
+ className
1033
+ ),
1034
+ ...rest,
1035
+ children: phase === "done" ? /* @__PURE__ */ jsx(Check, { className: "h-4 w-4" }) : /* @__PURE__ */ jsx(RefreshCw, { className: cn("h-4 w-4", phase === "busy" && "animate-spin") })
1036
+ }
1037
+ ) })
1023
1038
  );
1024
1039
  }
1025
1040
  RefreshButton.displayName = "RefreshButton";
@@ -1075,13 +1090,6 @@ function StatTiles({ tiles, loading, className }) {
1075
1090
  ] }, tile.id);
1076
1091
  }) });
1077
1092
  }
1078
- var Hint = React18.forwardRef(function Hint2({ label, children, side = "top", delayDuration = 0, ...rest }, ref) {
1079
- if (!label) return React18.cloneElement(children, { ...rest, ref });
1080
- return /* @__PURE__ */ jsx(TooltipPrimitive.Provider, { delayDuration, children: /* @__PURE__ */ jsxs(Tooltip, { children: [
1081
- /* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, ...rest, ref, children }),
1082
- /* @__PURE__ */ jsx(TooltipContent, { side, className: "px-2 py-1 text-xs font-medium", children: label })
1083
- ] }) });
1084
- });
1085
1093
  function formatTime12(h, m) {
1086
1094
  const period = h >= 12 ? "pm" : "am";
1087
1095
  const h12 = h % 12 || 12;
@@ -1399,8 +1407,8 @@ function ListView({
1399
1407
  (tagFilter || filters || onRefresh || onExport) && /* @__PURE__ */ jsxs("div", { className: "ml-auto flex flex-wrap items-center justify-end gap-2", children: [
1400
1408
  tagFilter,
1401
1409
  filters,
1402
- onRefresh && /* @__PURE__ */ jsx(Button, { type: "button", variant: "ghost", size: "icon", "aria-label": refreshLabel, title: refreshLabel, onClick: onRefresh, className: ICON_BTN, children: /* @__PURE__ */ jsx(RefreshCw, { className: "h-4 w-4" }) }),
1403
- onExport && /* @__PURE__ */ jsx(Button, { type: "button", variant: "ghost", size: "icon", "aria-label": exportLabel, title: exportLabel, onClick: onExport, className: ICON_BTN, children: /* @__PURE__ */ jsx(Download, { className: "h-4 w-4" }) })
1410
+ onRefresh && /* @__PURE__ */ jsx(Hint, { label: refreshLabel, children: /* @__PURE__ */ jsx(Button, { type: "button", variant: "ghost", size: "icon", "aria-label": refreshLabel, onClick: onRefresh, className: ICON_BTN, children: /* @__PURE__ */ jsx(RefreshCw, { className: "h-4 w-4" }) }) }),
1411
+ onExport && /* @__PURE__ */ jsx(Hint, { label: exportLabel, children: /* @__PURE__ */ jsx(Button, { type: "button", variant: "ghost", size: "icon", "aria-label": exportLabel, onClick: onExport, className: ICON_BTN, children: /* @__PURE__ */ jsx(Download, { className: "h-4 w-4" }) }) })
1404
1412
  ] })
1405
1413
  ] }) }),
1406
1414
  /* @__PURE__ */ jsx(
@@ -1831,7 +1839,8 @@ function SearchSelect({
1831
1839
  renderOption,
1832
1840
  loadOnOpen = true,
1833
1841
  className,
1834
- disabled
1842
+ disabled,
1843
+ "data-tour": dataTour
1835
1844
  }) {
1836
1845
  const canCreate = !!onCreate && allowCreate !== false;
1837
1846
  const [open, setOpen] = React18.useState(false);
@@ -1948,7 +1957,7 @@ function SearchSelect({
1948
1957
  window.removeEventListener("resize", measure);
1949
1958
  };
1950
1959
  }, [showDropdown]);
1951
- return /* @__PURE__ */ jsxs("div", { ref: containerRef, className: cn("relative", className), children: [
1960
+ return /* @__PURE__ */ jsxs("div", { ref: containerRef, "data-tour": dataTour, className: cn("relative", className), children: [
1952
1961
  label && /* @__PURE__ */ jsxs("label", { className: "text-xs font-medium text-muted-foreground", children: [
1953
1962
  label,
1954
1963
  required && " *"
@@ -2163,51 +2172,6 @@ var PopoverContent = React18.forwardRef(({ className, align = "start", sideOffse
2163
2172
  }
2164
2173
  ) }));
2165
2174
  PopoverContent.displayName = PopoverPrimitive.Content.displayName;
2166
- var SIZE = {
2167
- sm: { container: "h-[26px]", segment: "px-2.5 text-xs" },
2168
- md: { container: "h-[30px]", segment: "px-3 text-sm" }
2169
- };
2170
- function SegmentedControl({
2171
- options,
2172
- value,
2173
- onChange,
2174
- size = "sm",
2175
- className,
2176
- ...rest
2177
- }) {
2178
- const items = options.map((o) => typeof o === "string" ? { value: o, label: o } : o);
2179
- return /* @__PURE__ */ jsx(
2180
- "div",
2181
- {
2182
- role: "tablist",
2183
- "aria-label": rest["aria-label"],
2184
- className: cn(
2185
- "inline-flex items-center rounded-button border border-border bg-card p-0.5 shadow-button",
2186
- SIZE[size].container,
2187
- className
2188
- ),
2189
- children: items.map((item) => {
2190
- const active = item.value === value;
2191
- return /* @__PURE__ */ jsx(
2192
- "button",
2193
- {
2194
- type: "button",
2195
- role: "tab",
2196
- "aria-selected": active,
2197
- onClick: () => onChange(item.value),
2198
- className: cn(
2199
- "flex h-full items-center rounded-button font-semibold transition-colors",
2200
- SIZE[size].segment,
2201
- active ? "bg-foreground text-background" : "text-muted-foreground hover:bg-muted/60"
2202
- ),
2203
- children: item.label
2204
- },
2205
- item.value
2206
- );
2207
- })
2208
- }
2209
- );
2210
- }
2211
2175
  function MultiSelect({
2212
2176
  options,
2213
2177
  value,
@@ -2709,6 +2673,8 @@ function StockEntryForm({
2709
2673
  reasons = [],
2710
2674
  available,
2711
2675
  saving = false,
2676
+ readOnly = false,
2677
+ notice,
2712
2678
  onSubmit,
2713
2679
  labels: overrides
2714
2680
  }) {
@@ -2738,13 +2704,14 @@ function StockEntryForm({
2738
2704
  void onSubmit({ verb, quantity: amount, reasonCode, occurredOn, note });
2739
2705
  };
2740
2706
  return /* @__PURE__ */ jsx(Modal, { open: verb !== null, onOpenChange: (open) => {
2741
- if (!open) onClose();
2707
+ if (!open && !saving && !readOnly) onClose();
2742
2708
  }, children: /* @__PURE__ */ jsxs(ModalContent, { className: "sm:max-w-lg", children: [
2743
2709
  /* @__PURE__ */ jsxs(ModalHeader, { children: [
2744
2710
  /* @__PURE__ */ jsx(ModalTitle, { children: labels.title }),
2745
2711
  /* @__PURE__ */ jsx(ModalDescription, { children: labels.description })
2746
2712
  ] }),
2747
- /* @__PURE__ */ jsxs("div", { className: "p-1", children: [
2713
+ notice && /* @__PURE__ */ jsx("p", { role: "status", className: "text-sm text-warning", children: notice }),
2714
+ /* @__PURE__ */ jsxs("fieldset", { disabled: saving || readOnly, className: "p-1", children: [
2748
2715
  /* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-1", children: verbs.map((v) => /* @__PURE__ */ jsx(
2749
2716
  "button",
2750
2717
  {
@@ -2838,12 +2805,12 @@ function StockEntryForm({
2838
2805
  /* @__PURE__ */ jsxs(ModalFooter, { children: [
2839
2806
  amount === 0 && // Why the button is dim, next to the button.
2840
2807
  /* @__PURE__ */ jsx("span", { className: "mr-auto text-xs text-muted-foreground", children: labels.sayHowMany }),
2841
- /* @__PURE__ */ jsx(Button, { variant: "ghost", onClick: onClose, disabled: saving, children: labels.cancel }),
2808
+ /* @__PURE__ */ jsx(Button, { variant: "ghost", onClick: onClose, disabled: saving || readOnly, children: labels.cancel }),
2842
2809
  /* @__PURE__ */ jsx(Button, { onClick: submit, disabled: saving || amount === 0, children: saving ? labels.submitting : labels.submit })
2843
2810
  ] })
2844
2811
  ] }) });
2845
2812
  }
2846
2813
 
2847
- export { Badge, Breadcrumb, BulkActionBar, ChevronPager, CurrencyInput, DatePicker, DotBadge, DraftCommitBar, FilterCheckBox, FilterCheckList, FilterCheckRow, FilterChip, FilterSection, Hint, Input, ListView, Markdown, MarkdownEditor, MiniCalendar, Modal, ModalBody, ModalClose, ModalContent, ModalDescription, ModalFooter, ModalHeader, ModalOverlay, ModalPortal, ModalTitle, ModalTrigger, MultiSelect, PageActionBar, PhoneField, PhoneLink, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, RefreshButton, RowActions, SearchCombobox, SearchField, SearchSelect, SegmentedControl, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator2 as Separator, StatTiles, StockEntryForm, Tabs, TabsContent, TabsList, TabsTrigger, Thumbnail, TimePicker, ToastProvider, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, WHATSAPP_BRAND_COLOR, WhatsAppIcon, badgeVariants, formatPhone2 as formatPhone, normalizePhone, renderMarkdown, setActionsMenuLabel, setRowActionsLabel, toLocalISODate, useRowSelection };
2848
- //# sourceMappingURL=chunk-5WSKZU7M.js.map
2849
- //# sourceMappingURL=chunk-5WSKZU7M.js.map
2814
+ export { Badge, Breadcrumb, BulkActionBar, ChevronPager, CurrencyInput, DatePicker, DotBadge, DraftCommitBar, FilterCheckBox, FilterCheckList, FilterCheckRow, FilterChip, FilterSection, Hint, Input, ListView, Markdown, MarkdownEditor, MiniCalendar, Modal, ModalBody, ModalClose, ModalContent, ModalDescription, ModalFooter, ModalHeader, ModalOverlay, ModalPortal, ModalTitle, ModalTrigger, MultiSelect, PageActionBar, PhoneField, PhoneLink, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, RefreshButton, RowActions, SearchCombobox, SearchField, SearchSelect, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator2 as Separator, StatTiles, StockEntryForm, Tabs, TabsContent, TabsList, TabsTrigger, Thumbnail, TimePicker, ToastProvider, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, WHATSAPP_BRAND_COLOR, WhatsAppIcon, badgeVariants, formatPhone2 as formatPhone, normalizePhone, renderMarkdown, setActionsMenuLabel, setRowActionsLabel, toLocalISODate, useRowSelection };
2815
+ //# sourceMappingURL=chunk-ZSOT7KTE.js.map
2816
+ //# sourceMappingURL=chunk-ZSOT7KTE.js.map