@rebasepro/ui 0.13.1-canary.gf57a27e → 0.14.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 CHANGED
@@ -112,7 +112,9 @@ Tailwind class-string constants for consistent styling:
112
112
 
113
113
  ### Icons
114
114
 
115
- Re-exports ~100 individual lucide-react icon components (e.g. `ArrowRightIcon`, `SearchIcon`, `PlusIcon`), the full `lucideIcons` map, the `Icon` component, `GitHubIcon`, `HandleIcon`, `iconKeys`, and `coolIconKeys`.
115
+ Re-exports ~100 individual lucide-react icon components (e.g. `ArrowRightIcon`, `SearchIcon`, `PlusIcon`), the `Icon` component, `GitHubIcon`, `HandleIcon`, `iconKeys`, and `coolIconKeys`.
116
+
117
+ To render an icon whose name is only known at runtime, use `<LucideIconByName name="ShoppingCart" />` (or `loadLucideIcons()` / `useLucideIcons()` for the map itself). The full `icons` map is still re-exported as `lucideIcons`, but reach for it last: it holds a reference to every icon in the library, so importing it pulls the whole 822 kB set into whatever chunk you import it from, and no tree-shaking helps. Nothing in this package imports it, so it costs nothing unless you ask for it.
116
118
 
117
119
  ## Quick Start
118
120
 
@@ -20,5 +20,10 @@ export type DateTimeFieldProps = {
20
20
  * If not provided, uses the user's local timezone.
21
21
  */
22
22
  timezone?: string;
23
+ /**
24
+ * Names the control when there is no `label` — e.g. when the surrounding
25
+ * form draws the label itself and passes `label={undefined}`.
26
+ */
27
+ "aria-label"?: string;
23
28
  };
24
29
  export declare const DateTimeField: React.FC<DateTimeFieldProps>;
@@ -0,0 +1,62 @@
1
+ import React from "react";
2
+ import type { LucideIcon } from "lucide-react";
3
+ /**
4
+ * Rendering a Lucide icon chosen at runtime, without shipping all 1,600 of them
5
+ * on the login screen.
6
+ *
7
+ * `@rebasepro/ui` used to re-export lucide's whole `icons` map:
8
+ *
9
+ * export { icons as lucideIcons } from "lucide-react";
10
+ *
11
+ * That map is an object literal holding a reference to every icon component in
12
+ * the library, so a tree-shaker cannot drop a single one — reaching the map
13
+ * reaches all of them. Two callers reached it, both by name lookup: `getIcon`
14
+ * in `@rebasepro/app` (a collection's `icon: "ShoppingCart"`) and the admin's
15
+ * icon picker. That put 822 kB of SVG components into the entry chunk's static
16
+ * graph, `modulepreload`ed before authentication.
17
+ *
18
+ * The ~130 icons the product's own chrome uses are still plain named imports
19
+ * from `lucide-react`, which tree-shake to just those. Only the by-name lookup
20
+ * goes through here, and it pays for the map once, asynchronously, the first
21
+ * time a runtime-chosen icon is rendered.
22
+ */
23
+ type IconsMap = Record<string, LucideIcon | undefined>;
24
+ /**
25
+ * The full lucide icon map, fetched on first use and cached for the session.
26
+ *
27
+ * Prefer {@link LucideIconByName}. This is here for callers that need to know
28
+ * whether a name resolves, such as the icon picker's grid.
29
+ */
30
+ export declare function loadLucideIcons(): Promise<IconsMap>;
31
+ /** The map if it has already been fetched, otherwise `undefined`. Never fetches. */
32
+ export declare function getLoadedLucideIcons(): IconsMap | undefined;
33
+ /**
34
+ * Subscribe to the icon map.
35
+ *
36
+ * Returns it synchronously once loaded — including on the very first render of
37
+ * every icon after the first one anywhere, which is what stops a page full of
38
+ * icons from each flashing its placeholder.
39
+ */
40
+ export declare function useLucideIcons(): IconsMap | undefined;
41
+ /**
42
+ * The same resolution order the two call sites used against the eager map:
43
+ * exact name, then PascalCase, then `CircleAlert` as the visible "unknown icon".
44
+ */
45
+ export declare function resolveLucideIcon(icons: IconsMap, name: string): LucideIcon | undefined;
46
+ export type LucideIconByNameProps = {
47
+ /**
48
+ * A PascalCase lucide icon name, e.g. `"ShoppingCart"`. Whether a name
49
+ * exists can be answered ahead of the fetch with `iconKeys`, which is a
50
+ * plain string array and costs nothing.
51
+ */
52
+ name: string;
53
+ size?: number;
54
+ className?: string;
55
+ /** Rendered while the icon set is in flight. Defaults to a blank box of `size`. */
56
+ fallback?: React.ReactNode;
57
+ };
58
+ /**
59
+ * An icon named at runtime. Renders `fallback` until the icon set arrives.
60
+ */
61
+ export declare const LucideIconByName: React.MemoExoticComponent<({ name, size, className, fallback }: LucideIconByNameProps) => React.JSX.Element>;
62
+ export {};
@@ -4,5 +4,32 @@ export * from "./Icon";
4
4
  export * from "./GitHubIcon";
5
5
  export * from "./HandleIcon";
6
6
  export type { LucideProps, LucideIcon } from "lucide-react";
7
+ export * from "./LucideIconByName";
8
+ /**
9
+ * lucide's full `icons` map, keyed by PascalCase name.
10
+ *
11
+ * Read the cost before reaching for it. The map holds a reference to every
12
+ * icon in the library, so importing it pulls all ~1,750 into whatever chunk
13
+ * you import it from — measured at **822 kB uncompressed**. There is no
14
+ * tree-shaking that helps: the object literal names them all.
15
+ *
16
+ * It used to be reached by this package's own navigation chrome, which put
17
+ * that 822 kB in the entry chunk, modulepreloaded on the login screen, for
18
+ * every visitor of every Rebase admin panel. Those call sites now use
19
+ * {@link LucideIconByName}, so the weight is no longer anybody's by default —
20
+ * it is yours only if you import this binding.
21
+ *
22
+ * Prefer, in order:
23
+ *
24
+ * - {@link LucideIconByName} — renders by name, fetches the set on first use;
25
+ * - {@link iconKeys} — a plain string array, if you only need to know whether
26
+ * a name exists (costs nothing);
27
+ * - {@link loadLucideIcons} — the same map, `await`ed, so it lands in an async
28
+ * chunk instead of your entry;
29
+ * - this, when you genuinely need the whole map synchronously at module scope.
30
+ *
31
+ * @see LucideIconByName
32
+ * @see loadLucideIcons
33
+ */
7
34
  export { icons as lucideIcons } from "lucide-react";
8
35
  export { AlertCircleIcon, AlertTriangleIcon, AlignLeftIcon, AppWindow, ArrowDownIcon, ArrowDownToLineIcon, ArrowLeftIcon, ArrowRightFromLineIcon, ArrowRightIcon, ArrowRightLeftIcon, ArrowRightToLineIcon, ArrowUpDownIcon, ArrowUpIcon, ArrowUpToLineIcon, BoldIcon, BookOpenIcon, CalendarIcon, CheckCircle2Icon, CheckCircleIcon, CheckIcon, CheckSquareIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ChevronsLeftIcon, ChevronsRightIcon, ChevronsUpDownIcon, CircleDotIcon, CircleIcon, CircleUserIcon, CodeIcon, ColumnsIcon, CopyIcon, DatabaseIcon, DollarSignIcon, DownloadIcon, ExternalLinkIcon, EyeIcon, EyeOffIcon, FileIcon, FileSearchIcon, FileTextIcon, FilterIcon, FilterXIcon, FlagIcon, FolderIcon, FolderKanbanIcon, FolderPlusIcon, FolderUpIcon, FunctionSquareIcon, GitBranchIcon, GlobeIcon, HashIcon, Heading1Icon, Heading2Icon, Heading3Icon, HelpCircleIcon, HistoryIcon, HomeIcon, ImageIcon, ImageOffIcon, InfoIcon, ItalicIcon, KanbanIcon, KeyIcon, KeyRoundIcon, LanguagesIcon, LayoutGridIcon, LinkIcon, Link2Icon, Unlink2Icon, ListIcon, LockIcon, ListOrderedIcon, ListPlusIcon, ListTodoIcon, LoaderIcon, LogOutIcon, MailIcon, Maximize2Icon, MenuIcon, MessageCircleIcon, MinusCircleIcon, MinusIcon, MoonIcon, MoreVerticalIcon, Music2Icon, PanelLeftCloseIcon, PanelLeftIcon, PanelLeftOpenIcon, PauseIcon, PenLineIcon, PencilIcon, PhoneIcon, PinIcon, PlayIcon, PlusIcon, QuoteIcon, RefreshCcwIcon, RefreshCwIcon, RepeatIcon, Rows3Icon, SaveIcon, SearchIcon, SendIcon, SettingsIcon, ShieldIcon, ShoppingCartIcon, SlidersHorizontalIcon, SquareIcon, StarIcon, StickyNoteIcon, StrikethroughIcon, SunIcon, SunMoonIcon, TableIcon, TagIcon, TerminalIcon, TextIcon, Trash2Icon, TrendingUpIcon, TypeIcon, UnderlineIcon, UndoIcon, UploadCloudIcon, UploadIcon, UserCheckIcon, UserIcon, UserPlus, UsersIcon, VideoIcon, VoteIcon, Wand2Icon, WrenchIcon, XCircleIcon, XIcon } from "lucide-react";
package/dist/index.es.js CHANGED
@@ -2617,6 +2617,81 @@ function HandleIcon({ size = 24, color, className, onClick, style }) {
2617
2617
  });
2618
2618
  }
2619
2619
  //#endregion
2620
+ //#region src/icons/LucideIconByName.tsx
2621
+ var loaded;
2622
+ var pending;
2623
+ /**
2624
+ * The full lucide icon map, fetched on first use and cached for the session.
2625
+ *
2626
+ * Prefer {@link LucideIconByName}. This is here for callers that need to know
2627
+ * whether a name resolves, such as the icon picker's grid.
2628
+ */
2629
+ function loadLucideIcons() {
2630
+ if (loaded) return Promise.resolve(loaded);
2631
+ pending ??= import("lucide-react").then(({ icons }) => {
2632
+ loaded = icons;
2633
+ return loaded;
2634
+ });
2635
+ return pending;
2636
+ }
2637
+ /** The map if it has already been fetched, otherwise `undefined`. Never fetches. */
2638
+ function getLoadedLucideIcons() {
2639
+ return loaded;
2640
+ }
2641
+ /**
2642
+ * Subscribe to the icon map.
2643
+ *
2644
+ * Returns it synchronously once loaded — including on the very first render of
2645
+ * every icon after the first one anywhere, which is what stops a page full of
2646
+ * icons from each flashing its placeholder.
2647
+ */
2648
+ function useLucideIcons() {
2649
+ const [map, setMap] = React.useState(loaded);
2650
+ React.useEffect(() => {
2651
+ if (map) return;
2652
+ let cancelled = false;
2653
+ loadLucideIcons().then((resolved) => {
2654
+ if (!cancelled) setMap(resolved);
2655
+ }).catch((error) => console.error("[rebase] could not load the icon set", error));
2656
+ return () => {
2657
+ cancelled = true;
2658
+ };
2659
+ }, [map]);
2660
+ return map;
2661
+ }
2662
+ function toPascalCase(str) {
2663
+ return str.split(/[-_]/).map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join("");
2664
+ }
2665
+ /**
2666
+ * The same resolution order the two call sites used against the eager map:
2667
+ * exact name, then PascalCase, then `CircleAlert` as the visible "unknown icon".
2668
+ */
2669
+ function resolveLucideIcon(icons, name) {
2670
+ return icons[name] ?? icons[toPascalCase(name)] ?? icons.CircleAlert;
2671
+ }
2672
+ /**
2673
+ * An icon named at runtime. Renders `fallback` until the icon set arrives.
2674
+ */
2675
+ var LucideIconByName = React.memo(function LucideIconByName({ name, size, className, fallback }) {
2676
+ const icons = useLucideIcons();
2677
+ const Icon = icons ? resolveLucideIcon(icons, name) : void 0;
2678
+ if (!Icon) {
2679
+ if (fallback !== void 0) return /* @__PURE__ */ jsx(Fragment, { children: fallback });
2680
+ return /* @__PURE__ */ jsx("span", {
2681
+ "aria-hidden": true,
2682
+ className: "inline-block shrink-0",
2683
+ style: {
2684
+ width: size,
2685
+ height: size
2686
+ }
2687
+ });
2688
+ }
2689
+ return /* @__PURE__ */ jsx(Icon, {
2690
+ size,
2691
+ className
2692
+ });
2693
+ });
2694
+ //#endregion
2620
2695
  //#region src/components/Alert.tsx
2621
2696
  var getSizeClasses = (size) => {
2622
2697
  switch (size) {
@@ -3537,9 +3612,11 @@ var InputLabel = React$1.forwardRef(function InputLabel(inProps, ref) {
3537
3612
  });
3538
3613
  //#endregion
3539
3614
  //#region src/components/DateTimeField.tsx
3540
- var DateTimeField = ({ value, label, onChange, disabled, clearable, mode = "date", error, size = "large", className, style, inputClassName, invisible, timezone }) => {
3615
+ var DateTimeField = ({ value, label, onChange, disabled, clearable, mode = "date", error, size = "large", className, style, inputClassName, invisible, timezone, "aria-label": ariaLabel }) => {
3541
3616
  const inputRef = useRef(null);
3542
3617
  const [focused, setFocused] = useState(false);
3618
+ const inputId = useId();
3619
+ const labelId = `${inputId}-label`;
3543
3620
  const [internalValue, setInternalValue] = useState("");
3544
3621
  const [isTyping, setIsTyping] = useState(false);
3545
3622
  const invalidValue = value !== void 0 && value !== null && (!(value instanceof Date) || isNaN(value.getTime()));
@@ -3649,12 +3726,17 @@ var DateTimeField = ({ value, label, onChange, disabled, clearable, mode = "date
3649
3726
  },
3650
3727
  children: [
3651
3728
  label && /* @__PURE__ */ jsx(InputLabel, {
3729
+ id: labelId,
3730
+ htmlFor: inputId,
3652
3731
  className: cls("absolute top-1 pointer-events-none", !error ? focused ? "text-primary" : "text-text-secondary dark:text-text-secondary-dark" : "text-red-600 dark:text-red-500", disabled ? "opacity-50" : ""),
3653
3732
  shrink: true,
3654
3733
  children: label
3655
3734
  }),
3656
3735
  /* @__PURE__ */ jsx("input", {
3657
3736
  ref: inputRef,
3737
+ id: inputId,
3738
+ "aria-labelledby": label ? labelId : void 0,
3739
+ "aria-label": label ? void 0 : ariaLabel,
3658
3740
  type: mode === "date_time" ? "datetime-local" : "date",
3659
3741
  value: isTyping ? internalValue : valueAsInputValue(value ?? null, mode),
3660
3742
  onChange: handleInputChange,
@@ -3962,7 +4044,7 @@ var FilterChip = React.forwardRef(function FilterChip({ children, active = false
3962
4044
  type: "button",
3963
4045
  onClick,
3964
4046
  disabled,
3965
- className: cls("inline-flex items-center gap-1 rounded-full", "font-medium whitespace-nowrap select-none shrink-0", "transition-colors duration-150", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/50", sizeClasses[size], active ? "bg-primary/12 text-primary dark:bg-primary/20 dark:text-primary shadow-[inset_0_0_0_1.5px_var(--color-primary)]" : cls("bg-surface-accent-100 text-text-secondary dark:bg-surface-accent-800 dark:text-text-secondary-dark", !disabled && "cursor-pointer hover:bg-primary/5 dark:hover:bg-primary/5"), disabled && "opacity-50 cursor-not-allowed", className),
4047
+ className: cls("inline-flex items-center gap-1 rounded-full", "font-medium whitespace-nowrap select-none shrink-0", "transition-colors duration-150", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/50", sizeClasses[size], !disabled && "cursor-pointer", active ? cls("bg-primary/12 text-primary dark:bg-primary/20 dark:text-primary shadow-[inset_0_0_0_1.5px_var(--color-primary)]", !disabled && "hover:bg-primary/20 dark:hover:bg-primary/30") : cls("bg-surface-accent-100 text-text-secondary dark:bg-surface-accent-800 dark:text-text-secondary-dark", !disabled && "hover:bg-surface-accent-200 dark:hover:bg-surface-accent-700"), disabled && "opacity-50 cursor-not-allowed", className),
3966
4048
  ...rest,
3967
4049
  children: [icon, children]
3968
4050
  });
@@ -5100,7 +5182,7 @@ var TextField = forwardRef(({ value, onChange, label, type = "text", multiline =
5100
5182
  ...inputProps,
5101
5183
  ref: inputRef,
5102
5184
  id: inputId,
5103
- "aria-labelledby": label ? labelId : void 0,
5185
+ "aria-labelledby": label ? labelId : inputProps["aria-labelledby"],
5104
5186
  "aria-invalid": error || void 0,
5105
5187
  "aria-disabled": disabled || void 0,
5106
5188
  placeholder: focused || hasValue || !label ? placeholder : void 0,
@@ -5116,7 +5198,7 @@ var TextField = forwardRef(({ value, onChange, label, type = "text", multiline =
5116
5198
  ...inputProps,
5117
5199
  ref: inputRef,
5118
5200
  id: inputId,
5119
- "aria-labelledby": label ? labelId : void 0,
5201
+ "aria-labelledby": label ? labelId : inputProps["aria-labelledby"],
5120
5202
  "aria-invalid": error || void 0,
5121
5203
  "aria-disabled": disabled || void 0,
5122
5204
  disabled,
@@ -8660,6 +8742,6 @@ function CollectionView({ dataController, properties, propertiesOrder, displayed
8660
8742
  });
8661
8743
  }
8662
8744
  //#endregion
8663
- export { Alert, AlertCircleIcon, AlertTriangleIcon, AlignLeftIcon, AppWindow, ArrowDownIcon, ArrowDownToLineIcon, ArrowLeftIcon, ArrowRightFromLineIcon, ArrowRightIcon, ArrowRightLeftIcon, ArrowRightToLineIcon, ArrowUpDownIcon, ArrowUpIcon, ArrowUpToLineIcon, Autocomplete, AutocompleteItem, Avatar, Badge, BoldIcon, BookOpenIcon, BooleanSwitch, BooleanSwitchWithLabel, Button, CHIP_COLORS, CHIP_HUES, CHIP_SEED_KEYS, CONTROL_HEIGHT, CalendarIcon, Card, CardView, CenteredView, CheckCircle2Icon, CheckCircleIcon, CheckIcon, CheckSquareIcon, Checkbox, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ChevronsLeftIcon, ChevronsRightIcon, ChevronsUpDownIcon, Chip, CircleDotIcon, CircleIcon, CircleUserIcon, CircularProgress, CircularProgressCenter, CodeIcon, Collapse, CollectionView, ColorPicker, ColumnsIcon, Container, CopyIcon, DatabaseIcon, DateTimeField, DebouncedTextField, Dialog, DialogActions, DialogContent, DialogTitle, DollarSignIcon, DownloadIcon, ErrorBoundary, ExpandablePanel, ExternalLinkIcon, EyeIcon, EyeOffIcon, FileIcon, FileSearchIcon, FileTextIcon, FileUpload, FilterChip, FilterIcon, FilterXIcon, FlagIcon, FolderIcon, FolderKanbanIcon, FolderPlusIcon, FolderUpIcon, FunctionSquareIcon, GitBranchIcon, GitHubIcon, GlobeIcon, HandleIcon, HashIcon, Heading1Icon, Heading2Icon, Heading3Icon, HelpCircleIcon, HistoryIcon, HomeIcon, IconButton, ImageIcon, ImageOffIcon, InfoIcon, InfoLabel, InputLabel, ItalicIcon, KanbanIcon, KanbanView, KeyIcon, KeyRoundIcon, Label, LanguagesIcon, LayoutGridIcon, Link2Icon, LinkIcon, ListIcon, ListOrderedIcon, ListPlusIcon, ListTodoIcon, ListView, LoaderIcon, LoadingButton, LockIcon, LogOutIcon, MailIcon, Markdown, Maximize2Icon, Menu, MenuIcon, MenuItem, Menubar, MenubarCheckboxItem, MenubarContent, MenubarItem, MenubarItemIndicator, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarSubTriggerIndicator, MenubarTrigger, MessageCircleIcon, MinusCircleIcon, MinusIcon, MoonIcon, MoreVerticalIcon, MultiSelect, MultiSelectContext, MultiSelectItem, Music2Icon, PanelLeftCloseIcon, PanelLeftIcon, PanelLeftOpenIcon, Paper, PauseIcon, PenLineIcon, PencilIcon, PhoneIcon, PinIcon, PlayIcon, PlusIcon, Popover, PopoverPrimitive, Portal, PortalContainerProvider, QuoteIcon, RadioGroup, RadioGroupItem, RefreshCcwIcon, RefreshCwIcon, RepeatIcon, ResizablePanels, Rows3Icon, SaveIcon, SearchBar, SearchIcon, Select, SelectGroup, SelectItem, SendIcon, Separator, SettingsIcon, Sheet, ShieldIcon, ShoppingCartIcon, Skeleton, Slider, SlidersHorizontalIcon, Slot, SquareIcon, StarIcon, StickyNoteIcon, StrikethroughIcon, SunIcon, SunMoonIcon, Tab, Table, TableBody, TableCell, TableHeader, TableIcon, TableRow, Tabs, TagIcon, TerminalIcon, TextField, TextIcon, TextareaAutosize, ToggleButtonGroup, Tooltip, Trash2Icon, TrendingUpIcon, TypeIcon, Typography, UnderlineIcon, UndoIcon, Unlink2Icon, UploadCloudIcon, UploadIcon, UserCheckIcon, UserIcon, UserPlus, UsersIcon, VideoIcon, VirtualTable, VirtualTableDateField, VirtualTableInput, VirtualTableNumberInput, VirtualTableSelect, VirtualTableSelectionProvider, VirtualTableSwitch, VoteIcon, Wand2Icon, WrenchIcon, XCircleIcon, XIcon, cardClickableMixin, cardMixin, cardSelectedMixin, cls, colorClassesMapping, controlHeightMixin, controlPaddingMixin, coolIconKeys, createVirtualTableSelectionStore, debounce, defaultBorderMixin, fieldBackgroundDisabledMixin, fieldBackgroundHoverMixin, fieldBackgroundInvisibleMixin, fieldBackgroundMixin, focusedClasses, focusedDisabled, focusedInvisibleMixin, getColorSchemeForKey, getColorSchemeForSeed, iconKeys, iconSize, lucideIcons, paperMixin, useAutoComplete, useDebounceCallback, useDebounceValue, useDebouncedCallback, useInjectStyles, useOutsideAlerter, usePortalContainer, useVirtualTableCellSelected, useVirtualTableSelection };
8745
+ export { Alert, AlertCircleIcon, AlertTriangleIcon, AlignLeftIcon, AppWindow, ArrowDownIcon, ArrowDownToLineIcon, ArrowLeftIcon, ArrowRightFromLineIcon, ArrowRightIcon, ArrowRightLeftIcon, ArrowRightToLineIcon, ArrowUpDownIcon, ArrowUpIcon, ArrowUpToLineIcon, Autocomplete, AutocompleteItem, Avatar, Badge, BoldIcon, BookOpenIcon, BooleanSwitch, BooleanSwitchWithLabel, Button, CHIP_COLORS, CHIP_HUES, CHIP_SEED_KEYS, CONTROL_HEIGHT, CalendarIcon, Card, CardView, CenteredView, CheckCircle2Icon, CheckCircleIcon, CheckIcon, CheckSquareIcon, Checkbox, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ChevronsLeftIcon, ChevronsRightIcon, ChevronsUpDownIcon, Chip, CircleDotIcon, CircleIcon, CircleUserIcon, CircularProgress, CircularProgressCenter, CodeIcon, Collapse, CollectionView, ColorPicker, ColumnsIcon, Container, CopyIcon, DatabaseIcon, DateTimeField, DebouncedTextField, Dialog, DialogActions, DialogContent, DialogTitle, DollarSignIcon, DownloadIcon, ErrorBoundary, ExpandablePanel, ExternalLinkIcon, EyeIcon, EyeOffIcon, FileIcon, FileSearchIcon, FileTextIcon, FileUpload, FilterChip, FilterIcon, FilterXIcon, FlagIcon, FolderIcon, FolderKanbanIcon, FolderPlusIcon, FolderUpIcon, FunctionSquareIcon, GitBranchIcon, GitHubIcon, GlobeIcon, HandleIcon, HashIcon, Heading1Icon, Heading2Icon, Heading3Icon, HelpCircleIcon, HistoryIcon, HomeIcon, IconButton, ImageIcon, ImageOffIcon, InfoIcon, InfoLabel, InputLabel, ItalicIcon, KanbanIcon, KanbanView, KeyIcon, KeyRoundIcon, Label, LanguagesIcon, LayoutGridIcon, Link2Icon, LinkIcon, ListIcon, ListOrderedIcon, ListPlusIcon, ListTodoIcon, ListView, LoaderIcon, LoadingButton, LockIcon, LogOutIcon, LucideIconByName, MailIcon, Markdown, Maximize2Icon, Menu, MenuIcon, MenuItem, Menubar, MenubarCheckboxItem, MenubarContent, MenubarItem, MenubarItemIndicator, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarSubTriggerIndicator, MenubarTrigger, MessageCircleIcon, MinusCircleIcon, MinusIcon, MoonIcon, MoreVerticalIcon, MultiSelect, MultiSelectContext, MultiSelectItem, Music2Icon, PanelLeftCloseIcon, PanelLeftIcon, PanelLeftOpenIcon, Paper, PauseIcon, PenLineIcon, PencilIcon, PhoneIcon, PinIcon, PlayIcon, PlusIcon, Popover, PopoverPrimitive, Portal, PortalContainerProvider, QuoteIcon, RadioGroup, RadioGroupItem, RefreshCcwIcon, RefreshCwIcon, RepeatIcon, ResizablePanels, Rows3Icon, SaveIcon, SearchBar, SearchIcon, Select, SelectGroup, SelectItem, SendIcon, Separator, SettingsIcon, Sheet, ShieldIcon, ShoppingCartIcon, Skeleton, Slider, SlidersHorizontalIcon, Slot, SquareIcon, StarIcon, StickyNoteIcon, StrikethroughIcon, SunIcon, SunMoonIcon, Tab, Table, TableBody, TableCell, TableHeader, TableIcon, TableRow, Tabs, TagIcon, TerminalIcon, TextField, TextIcon, TextareaAutosize, ToggleButtonGroup, Tooltip, Trash2Icon, TrendingUpIcon, TypeIcon, Typography, UnderlineIcon, UndoIcon, Unlink2Icon, UploadCloudIcon, UploadIcon, UserCheckIcon, UserIcon, UserPlus, UsersIcon, VideoIcon, VirtualTable, VirtualTableDateField, VirtualTableInput, VirtualTableNumberInput, VirtualTableSelect, VirtualTableSelectionProvider, VirtualTableSwitch, VoteIcon, Wand2Icon, WrenchIcon, XCircleIcon, XIcon, cardClickableMixin, cardMixin, cardSelectedMixin, cls, colorClassesMapping, controlHeightMixin, controlPaddingMixin, coolIconKeys, createVirtualTableSelectionStore, debounce, defaultBorderMixin, fieldBackgroundDisabledMixin, fieldBackgroundHoverMixin, fieldBackgroundInvisibleMixin, fieldBackgroundMixin, focusedClasses, focusedDisabled, focusedInvisibleMixin, getColorSchemeForKey, getColorSchemeForSeed, getLoadedLucideIcons, iconKeys, iconSize, loadLucideIcons, lucideIcons, paperMixin, resolveLucideIcon, useAutoComplete, useDebounceCallback, useDebounceValue, useDebouncedCallback, useInjectStyles, useLucideIcons, useOutsideAlerter, usePortalContainer, useVirtualTableCellSelected, useVirtualTableSelection };
8664
8746
 
8665
8747
  //# sourceMappingURL=index.es.js.map