@geomak/ui 6.2.3 → 6.4.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/index.d.cts CHANGED
@@ -866,6 +866,114 @@ interface TreeProps {
866
866
  */
867
867
  declare function Tree({ nodes, onNodeClick, defaultExpandAll, defaultExpandedKeys, className, style, }: TreeProps): react_jsx_runtime.JSX.Element;
868
868
 
869
+ type AccordionVariant = 'separated' | 'contained';
870
+ interface AccordionProps {
871
+ /** `AccordionItem` children. */
872
+ children: React__default.ReactNode;
873
+ /**
874
+ * `'single'` (default) allows one open panel at a time; `'multiple'` lets
875
+ * any number be open together.
876
+ */
877
+ type?: 'single' | 'multiple';
878
+ /** Uncontrolled initial open value(s). */
879
+ defaultValue?: string | string[];
880
+ /** Controlled open value(s). */
881
+ value?: string | string[];
882
+ /** Fires when the open set changes. */
883
+ onValueChange?: (value: string | string[]) => void;
884
+ /** In `single` mode, allow the open item to be collapsed. Default `true`. */
885
+ collapsible?: boolean;
886
+ /**
887
+ * Visual style:
888
+ * - `'separated'` (default) — each item is its own bordered card with gaps.
889
+ * - `'contained'` — one bordered surface with divider lines between items.
890
+ */
891
+ variant?: AccordionVariant;
892
+ /** Extra classes merged onto the root. */
893
+ className?: string;
894
+ style?: React__default.CSSProperties;
895
+ }
896
+ /**
897
+ * Vertically stacked, collapsible panels built on `@radix-ui/react-accordion`.
898
+ * Radix handles open/close state, keyboard navigation (↑/↓/Home/End), and ARIA;
899
+ * the content height animates via the shared `accordion-down` / `accordion-up`
900
+ * keyframes (reduced-motion safe — the height var simply snaps).
901
+ *
902
+ * @example
903
+ * ```tsx
904
+ * <Accordion type="single" defaultValue="a" collapsible>
905
+ * <Accordion.Item value="a" title="What is included?">
906
+ * Everything in the Pro plan, plus priority support.
907
+ * </Accordion.Item>
908
+ * <Accordion.Item value="b" title="Can I cancel anytime?">
909
+ * Yes — cancel from billing settings, no questions asked.
910
+ * </Accordion.Item>
911
+ * </Accordion>
912
+ * ```
913
+ */
914
+ declare function Accordion({ children, type, defaultValue, value, onValueChange, collapsible, variant, className, style, }: AccordionProps): react_jsx_runtime.JSX.Element;
915
+ declare namespace Accordion {
916
+ var Item: typeof AccordionItem;
917
+ }
918
+ interface AccordionItemProps {
919
+ /** Unique value identifying this panel (used for open state). */
920
+ value: string;
921
+ /** Header content — the always-visible trigger label. */
922
+ title: React__default.ReactNode;
923
+ /** Optional leading icon shown before the title. */
924
+ icon?: React__default.ReactNode;
925
+ /** Panel body, revealed when open. */
926
+ children: React__default.ReactNode;
927
+ /** Disable this item (header non-interactive, dimmed). */
928
+ disabled?: boolean;
929
+ className?: string;
930
+ }
931
+ declare function AccordionItem({ value, title, icon, children, disabled, className }: AccordionItemProps): react_jsx_runtime.JSX.Element;
932
+
933
+ interface BreadcrumbItem {
934
+ /** Visible label. */
935
+ label: React__default.ReactNode;
936
+ /** Link target. Omit on the current (last) crumb. */
937
+ href?: string;
938
+ /** Optional leading icon. */
939
+ icon?: React__default.ReactNode;
940
+ /** Click handler (router navigation). */
941
+ onClick?: React__default.MouseEventHandler;
942
+ }
943
+ interface BreadcrumbsProps {
944
+ /** Ordered trail, root → current. The last item renders as the current page. */
945
+ items: BreadcrumbItem[];
946
+ /** Separator between crumbs. Default a chevron. */
947
+ separator?: React__default.ReactNode;
948
+ /**
949
+ * Collapse the middle of long trails into an expandable ellipsis once the
950
+ * count exceeds this. The first and last crumb always stay visible. Set `0`
951
+ * to never collapse. Default `0`.
952
+ */
953
+ maxItems?: number;
954
+ /** Accessible label for the nav landmark. Default `'Breadcrumb'`. */
955
+ 'aria-label'?: string;
956
+ className?: string;
957
+ style?: React__default.CSSProperties;
958
+ }
959
+ /**
960
+ * A breadcrumb trail. Renders a `<nav><ol>` of crumbs separated by a chevron;
961
+ * the last crumb is the current page (`aria-current="page"`, not a link). Long
962
+ * trails can collapse their middle into a clickable ellipsis via `maxItems`.
963
+ *
964
+ * @example
965
+ * ```tsx
966
+ * <Breadcrumbs
967
+ * items={[
968
+ * { label: 'Home', href: '/' },
969
+ * { label: 'Fleet', href: '/fleet' },
970
+ * { label: 'Aurora' },
971
+ * ]}
972
+ * />
973
+ * ```
974
+ */
975
+ declare function Breadcrumbs({ items, separator, maxItems, 'aria-label': ariaLabel, className, style, }: BreadcrumbsProps): react_jsx_runtime.JSX.Element;
976
+
869
977
  /** ─────────────────── types ─────────────────── */
870
978
  type NotificationType = 'info' | 'success' | 'warning' | 'danger';
871
979
  type NotificationPosition = 'top-right' | 'top-left' | 'top-center' | 'bottom-right' | 'bottom-left' | 'bottom-center';
@@ -3934,4 +4042,4 @@ declare function expiryError(value: string, now?: Date): string | undefined;
3934
4042
  /** Validate the CVV against the detected brand's expected length. */
3935
4043
  declare function cvvError(value: string, cardNumber: string): string | undefined;
3936
4044
 
3937
- export { AppShell, type AppShellProps, AutoComplete, type AutoCompleteProps, Avatar, type AvatarProps, type AvatarShape, type AvatarSize, type AvatarStatus, Box, type BoxBackground, type BoxBorder, type BoxProps, type BoxRadius, type BoxShadow, Button, type ButtonProps, CARD_BRANDS, type CardBrand, Catalog, CatalogCarousel, type CatalogCarouselProps, CatalogGrid, type CatalogGridProps, type CatalogProps, Checkbox, type CheckboxProps, ColorPicker, type ColorPickerProps, ContextMenu, type ContextMenuActionItem, type ContextMenuPosition, type ContextMenuProps, CreditCardForm, type CreditCardFormProps, type CreditCardValue, type DatePickerProps, type DateRange, DateRangePicker, type DateRangePickerProps, type DateRangePreset, Drawer, type DrawerProps, Dropdown, type DropdownItem, type DropdownProps, type ErrorMap, type ExpandRowOptions, FadingBase, type FadingBaseProps, Field, type FieldArrayItem, type FieldBindings, FieldHelpIcon, type FieldKind, FieldLabel, type FieldLabelProps, type FieldProps, type FieldRule, type FieldRules, type FieldShellOptions, type FieldSize, type FieldSnapshot, FileInput, type FileInputProps, Flex, type FlexAlign, type FlexDirection, type FlexJustify, type FlexProps, type FlexWrap, Form, FormContext, FormField, type FormFieldProps, type FormProps, FormStore, type FormStoreOptions, type FormValues, Grid, GridCard, type GridCardItem, type GridCardProps, type GridProps, Icon, IconButton, type IconButtonProps, List, type ListItem, type ListProps, LoadingSpinner, type LoadingSpinnerProps, MegaMenu, type MegaMenuFeaturedProps, type MegaMenuItemProps, type MegaMenuLinkProps, type MegaMenuPanelProps, type MegaMenuProps, type MegaMenuSectionProps, Modal, type ModalProps, type NotificationPayload, NotificationProvider, NumberInput, type NumberInputProps, OpaqueGridCard, type OpaqueGridCardProps, OtpInput, type OtpInputProps, type PaginationOptions, Password, type PasswordProps, Portal, type PortalProps, RadioGroup, type RadioGroupProps, type RadioOption, Rating, type RatingProps, type RulesMap, ScalableContainer, type ScalableContainerProps, SearchInput, type SearchInputProps, SegmentedControl, type SegmentedControlProps, type SegmentedOption, Sidebar, type SidebarItem, type SidebarProps, type SidebarSection, SkeletonBox, type SkeletonBoxProps, SkeletonCard, type SkeletonCardProps, SkeletonCircle, type SkeletonCircleProps, SkeletonText, type SkeletonTextProps, Slider, type SliderMark, type SliderProps, type SliderValue, type Spacing, Switch, type SwitchInputProps, Table, type TableColumn, type TableProps, Tabs, type TabsAddProps, type TabsListProps, type TabsOrientation, type TabsPanelProps, type TabsProps, type TabsSize, type TabsTriggerProps, type TabsVariant, TagsInput, type TagsInputProps, DatePicker as Temporal, type TemporalPickerProps, TextArea, type TextAreaProps, TextInput, type TextInputProps, type ThemeColors, type ThemeConfig, type ThemeDensity, type ThemeMotion, ThemeProvider, type ThemeProviderProps, type ThemeRadius, type ThemeShadows, ThemeSwitch, type ThemeSwitchProps, type ThemeTypography, TimePicker, type TimePickerProps, Tooltip, type TooltipProps, TooltipProvider, TopBar, type TopBarProps, Tree, type TreeItemClickPayload, type TreeNode, type TreeProps, TreeSelect, type TreeSelectProps, Typography, type TypographyAlign, type TypographyColor, type TypographyProps, type TypographyVariant, type TypographyWeight, type UseFieldArrayReturn, type UseFormFieldOptions, type UseFormReturn, type ValidateTrigger, Wizard, type WizardProps, type WizardStep, cardNumberError, cvvError, detectBrand, expiryError, fieldShell, formatCardNumber, formatExpiry, isRequired, luhnValid, onlyDigits, patterns, runFieldRules, useFieldArray, useForm, useFormField, useFormStore, useNotification };
4045
+ export { Accordion, type AccordionItemProps, type AccordionProps, AppShell, type AppShellProps, AutoComplete, type AutoCompleteProps, Avatar, type AvatarProps, type AvatarShape, type AvatarSize, type AvatarStatus, Box, type BoxBackground, type BoxBorder, type BoxProps, type BoxRadius, type BoxShadow, type BreadcrumbItem, Breadcrumbs, type BreadcrumbsProps, Button, type ButtonProps, CARD_BRANDS, type CardBrand, Catalog, CatalogCarousel, type CatalogCarouselProps, CatalogGrid, type CatalogGridProps, type CatalogProps, Checkbox, type CheckboxProps, ColorPicker, type ColorPickerProps, ContextMenu, type ContextMenuActionItem, type ContextMenuPosition, type ContextMenuProps, CreditCardForm, type CreditCardFormProps, type CreditCardValue, type DatePickerProps, type DateRange, DateRangePicker, type DateRangePickerProps, type DateRangePreset, Drawer, type DrawerProps, Dropdown, type DropdownItem, type DropdownProps, type ErrorMap, type ExpandRowOptions, FadingBase, type FadingBaseProps, Field, type FieldArrayItem, type FieldBindings, FieldHelpIcon, type FieldKind, FieldLabel, type FieldLabelProps, type FieldProps, type FieldRule, type FieldRules, type FieldShellOptions, type FieldSize, type FieldSnapshot, FileInput, type FileInputProps, Flex, type FlexAlign, type FlexDirection, type FlexJustify, type FlexProps, type FlexWrap, Form, FormContext, FormField, type FormFieldProps, type FormProps, FormStore, type FormStoreOptions, type FormValues, Grid, GridCard, type GridCardItem, type GridCardProps, type GridProps, Icon, IconButton, type IconButtonProps, List, type ListItem, type ListProps, LoadingSpinner, type LoadingSpinnerProps, MegaMenu, type MegaMenuFeaturedProps, type MegaMenuItemProps, type MegaMenuLinkProps, type MegaMenuPanelProps, type MegaMenuProps, type MegaMenuSectionProps, Modal, type ModalProps, type NotificationPayload, NotificationProvider, NumberInput, type NumberInputProps, OpaqueGridCard, type OpaqueGridCardProps, OtpInput, type OtpInputProps, type PaginationOptions, Password, type PasswordProps, Portal, type PortalProps, RadioGroup, type RadioGroupProps, type RadioOption, Rating, type RatingProps, type RulesMap, ScalableContainer, type ScalableContainerProps, SearchInput, type SearchInputProps, SegmentedControl, type SegmentedControlProps, type SegmentedOption, Sidebar, type SidebarItem, type SidebarProps, type SidebarSection, SkeletonBox, type SkeletonBoxProps, SkeletonCard, type SkeletonCardProps, SkeletonCircle, type SkeletonCircleProps, SkeletonText, type SkeletonTextProps, Slider, type SliderMark, type SliderProps, type SliderValue, type Spacing, Switch, type SwitchInputProps, Table, type TableColumn, type TableProps, Tabs, type TabsAddProps, type TabsListProps, type TabsOrientation, type TabsPanelProps, type TabsProps, type TabsSize, type TabsTriggerProps, type TabsVariant, TagsInput, type TagsInputProps, DatePicker as Temporal, type TemporalPickerProps, TextArea, type TextAreaProps, TextInput, type TextInputProps, type ThemeColors, type ThemeConfig, type ThemeDensity, type ThemeMotion, ThemeProvider, type ThemeProviderProps, type ThemeRadius, type ThemeShadows, ThemeSwitch, type ThemeSwitchProps, type ThemeTypography, TimePicker, type TimePickerProps, Tooltip, type TooltipProps, TooltipProvider, TopBar, type TopBarProps, Tree, type TreeItemClickPayload, type TreeNode, type TreeProps, TreeSelect, type TreeSelectProps, Typography, type TypographyAlign, type TypographyColor, type TypographyProps, type TypographyVariant, type TypographyWeight, type UseFieldArrayReturn, type UseFormFieldOptions, type UseFormReturn, type ValidateTrigger, Wizard, type WizardProps, type WizardStep, cardNumberError, cvvError, detectBrand, expiryError, fieldShell, formatCardNumber, formatExpiry, isRequired, luhnValid, onlyDigits, patterns, runFieldRules, useFieldArray, useForm, useFormField, useFormStore, useNotification };
package/dist/index.d.ts CHANGED
@@ -866,6 +866,114 @@ interface TreeProps {
866
866
  */
867
867
  declare function Tree({ nodes, onNodeClick, defaultExpandAll, defaultExpandedKeys, className, style, }: TreeProps): react_jsx_runtime.JSX.Element;
868
868
 
869
+ type AccordionVariant = 'separated' | 'contained';
870
+ interface AccordionProps {
871
+ /** `AccordionItem` children. */
872
+ children: React__default.ReactNode;
873
+ /**
874
+ * `'single'` (default) allows one open panel at a time; `'multiple'` lets
875
+ * any number be open together.
876
+ */
877
+ type?: 'single' | 'multiple';
878
+ /** Uncontrolled initial open value(s). */
879
+ defaultValue?: string | string[];
880
+ /** Controlled open value(s). */
881
+ value?: string | string[];
882
+ /** Fires when the open set changes. */
883
+ onValueChange?: (value: string | string[]) => void;
884
+ /** In `single` mode, allow the open item to be collapsed. Default `true`. */
885
+ collapsible?: boolean;
886
+ /**
887
+ * Visual style:
888
+ * - `'separated'` (default) — each item is its own bordered card with gaps.
889
+ * - `'contained'` — one bordered surface with divider lines between items.
890
+ */
891
+ variant?: AccordionVariant;
892
+ /** Extra classes merged onto the root. */
893
+ className?: string;
894
+ style?: React__default.CSSProperties;
895
+ }
896
+ /**
897
+ * Vertically stacked, collapsible panels built on `@radix-ui/react-accordion`.
898
+ * Radix handles open/close state, keyboard navigation (↑/↓/Home/End), and ARIA;
899
+ * the content height animates via the shared `accordion-down` / `accordion-up`
900
+ * keyframes (reduced-motion safe — the height var simply snaps).
901
+ *
902
+ * @example
903
+ * ```tsx
904
+ * <Accordion type="single" defaultValue="a" collapsible>
905
+ * <Accordion.Item value="a" title="What is included?">
906
+ * Everything in the Pro plan, plus priority support.
907
+ * </Accordion.Item>
908
+ * <Accordion.Item value="b" title="Can I cancel anytime?">
909
+ * Yes — cancel from billing settings, no questions asked.
910
+ * </Accordion.Item>
911
+ * </Accordion>
912
+ * ```
913
+ */
914
+ declare function Accordion({ children, type, defaultValue, value, onValueChange, collapsible, variant, className, style, }: AccordionProps): react_jsx_runtime.JSX.Element;
915
+ declare namespace Accordion {
916
+ var Item: typeof AccordionItem;
917
+ }
918
+ interface AccordionItemProps {
919
+ /** Unique value identifying this panel (used for open state). */
920
+ value: string;
921
+ /** Header content — the always-visible trigger label. */
922
+ title: React__default.ReactNode;
923
+ /** Optional leading icon shown before the title. */
924
+ icon?: React__default.ReactNode;
925
+ /** Panel body, revealed when open. */
926
+ children: React__default.ReactNode;
927
+ /** Disable this item (header non-interactive, dimmed). */
928
+ disabled?: boolean;
929
+ className?: string;
930
+ }
931
+ declare function AccordionItem({ value, title, icon, children, disabled, className }: AccordionItemProps): react_jsx_runtime.JSX.Element;
932
+
933
+ interface BreadcrumbItem {
934
+ /** Visible label. */
935
+ label: React__default.ReactNode;
936
+ /** Link target. Omit on the current (last) crumb. */
937
+ href?: string;
938
+ /** Optional leading icon. */
939
+ icon?: React__default.ReactNode;
940
+ /** Click handler (router navigation). */
941
+ onClick?: React__default.MouseEventHandler;
942
+ }
943
+ interface BreadcrumbsProps {
944
+ /** Ordered trail, root → current. The last item renders as the current page. */
945
+ items: BreadcrumbItem[];
946
+ /** Separator between crumbs. Default a chevron. */
947
+ separator?: React__default.ReactNode;
948
+ /**
949
+ * Collapse the middle of long trails into an expandable ellipsis once the
950
+ * count exceeds this. The first and last crumb always stay visible. Set `0`
951
+ * to never collapse. Default `0`.
952
+ */
953
+ maxItems?: number;
954
+ /** Accessible label for the nav landmark. Default `'Breadcrumb'`. */
955
+ 'aria-label'?: string;
956
+ className?: string;
957
+ style?: React__default.CSSProperties;
958
+ }
959
+ /**
960
+ * A breadcrumb trail. Renders a `<nav><ol>` of crumbs separated by a chevron;
961
+ * the last crumb is the current page (`aria-current="page"`, not a link). Long
962
+ * trails can collapse their middle into a clickable ellipsis via `maxItems`.
963
+ *
964
+ * @example
965
+ * ```tsx
966
+ * <Breadcrumbs
967
+ * items={[
968
+ * { label: 'Home', href: '/' },
969
+ * { label: 'Fleet', href: '/fleet' },
970
+ * { label: 'Aurora' },
971
+ * ]}
972
+ * />
973
+ * ```
974
+ */
975
+ declare function Breadcrumbs({ items, separator, maxItems, 'aria-label': ariaLabel, className, style, }: BreadcrumbsProps): react_jsx_runtime.JSX.Element;
976
+
869
977
  /** ─────────────────── types ─────────────────── */
870
978
  type NotificationType = 'info' | 'success' | 'warning' | 'danger';
871
979
  type NotificationPosition = 'top-right' | 'top-left' | 'top-center' | 'bottom-right' | 'bottom-left' | 'bottom-center';
@@ -3934,4 +4042,4 @@ declare function expiryError(value: string, now?: Date): string | undefined;
3934
4042
  /** Validate the CVV against the detected brand's expected length. */
3935
4043
  declare function cvvError(value: string, cardNumber: string): string | undefined;
3936
4044
 
3937
- export { AppShell, type AppShellProps, AutoComplete, type AutoCompleteProps, Avatar, type AvatarProps, type AvatarShape, type AvatarSize, type AvatarStatus, Box, type BoxBackground, type BoxBorder, type BoxProps, type BoxRadius, type BoxShadow, Button, type ButtonProps, CARD_BRANDS, type CardBrand, Catalog, CatalogCarousel, type CatalogCarouselProps, CatalogGrid, type CatalogGridProps, type CatalogProps, Checkbox, type CheckboxProps, ColorPicker, type ColorPickerProps, ContextMenu, type ContextMenuActionItem, type ContextMenuPosition, type ContextMenuProps, CreditCardForm, type CreditCardFormProps, type CreditCardValue, type DatePickerProps, type DateRange, DateRangePicker, type DateRangePickerProps, type DateRangePreset, Drawer, type DrawerProps, Dropdown, type DropdownItem, type DropdownProps, type ErrorMap, type ExpandRowOptions, FadingBase, type FadingBaseProps, Field, type FieldArrayItem, type FieldBindings, FieldHelpIcon, type FieldKind, FieldLabel, type FieldLabelProps, type FieldProps, type FieldRule, type FieldRules, type FieldShellOptions, type FieldSize, type FieldSnapshot, FileInput, type FileInputProps, Flex, type FlexAlign, type FlexDirection, type FlexJustify, type FlexProps, type FlexWrap, Form, FormContext, FormField, type FormFieldProps, type FormProps, FormStore, type FormStoreOptions, type FormValues, Grid, GridCard, type GridCardItem, type GridCardProps, type GridProps, Icon, IconButton, type IconButtonProps, List, type ListItem, type ListProps, LoadingSpinner, type LoadingSpinnerProps, MegaMenu, type MegaMenuFeaturedProps, type MegaMenuItemProps, type MegaMenuLinkProps, type MegaMenuPanelProps, type MegaMenuProps, type MegaMenuSectionProps, Modal, type ModalProps, type NotificationPayload, NotificationProvider, NumberInput, type NumberInputProps, OpaqueGridCard, type OpaqueGridCardProps, OtpInput, type OtpInputProps, type PaginationOptions, Password, type PasswordProps, Portal, type PortalProps, RadioGroup, type RadioGroupProps, type RadioOption, Rating, type RatingProps, type RulesMap, ScalableContainer, type ScalableContainerProps, SearchInput, type SearchInputProps, SegmentedControl, type SegmentedControlProps, type SegmentedOption, Sidebar, type SidebarItem, type SidebarProps, type SidebarSection, SkeletonBox, type SkeletonBoxProps, SkeletonCard, type SkeletonCardProps, SkeletonCircle, type SkeletonCircleProps, SkeletonText, type SkeletonTextProps, Slider, type SliderMark, type SliderProps, type SliderValue, type Spacing, Switch, type SwitchInputProps, Table, type TableColumn, type TableProps, Tabs, type TabsAddProps, type TabsListProps, type TabsOrientation, type TabsPanelProps, type TabsProps, type TabsSize, type TabsTriggerProps, type TabsVariant, TagsInput, type TagsInputProps, DatePicker as Temporal, type TemporalPickerProps, TextArea, type TextAreaProps, TextInput, type TextInputProps, type ThemeColors, type ThemeConfig, type ThemeDensity, type ThemeMotion, ThemeProvider, type ThemeProviderProps, type ThemeRadius, type ThemeShadows, ThemeSwitch, type ThemeSwitchProps, type ThemeTypography, TimePicker, type TimePickerProps, Tooltip, type TooltipProps, TooltipProvider, TopBar, type TopBarProps, Tree, type TreeItemClickPayload, type TreeNode, type TreeProps, TreeSelect, type TreeSelectProps, Typography, type TypographyAlign, type TypographyColor, type TypographyProps, type TypographyVariant, type TypographyWeight, type UseFieldArrayReturn, type UseFormFieldOptions, type UseFormReturn, type ValidateTrigger, Wizard, type WizardProps, type WizardStep, cardNumberError, cvvError, detectBrand, expiryError, fieldShell, formatCardNumber, formatExpiry, isRequired, luhnValid, onlyDigits, patterns, runFieldRules, useFieldArray, useForm, useFormField, useFormStore, useNotification };
4045
+ export { Accordion, type AccordionItemProps, type AccordionProps, AppShell, type AppShellProps, AutoComplete, type AutoCompleteProps, Avatar, type AvatarProps, type AvatarShape, type AvatarSize, type AvatarStatus, Box, type BoxBackground, type BoxBorder, type BoxProps, type BoxRadius, type BoxShadow, type BreadcrumbItem, Breadcrumbs, type BreadcrumbsProps, Button, type ButtonProps, CARD_BRANDS, type CardBrand, Catalog, CatalogCarousel, type CatalogCarouselProps, CatalogGrid, type CatalogGridProps, type CatalogProps, Checkbox, type CheckboxProps, ColorPicker, type ColorPickerProps, ContextMenu, type ContextMenuActionItem, type ContextMenuPosition, type ContextMenuProps, CreditCardForm, type CreditCardFormProps, type CreditCardValue, type DatePickerProps, type DateRange, DateRangePicker, type DateRangePickerProps, type DateRangePreset, Drawer, type DrawerProps, Dropdown, type DropdownItem, type DropdownProps, type ErrorMap, type ExpandRowOptions, FadingBase, type FadingBaseProps, Field, type FieldArrayItem, type FieldBindings, FieldHelpIcon, type FieldKind, FieldLabel, type FieldLabelProps, type FieldProps, type FieldRule, type FieldRules, type FieldShellOptions, type FieldSize, type FieldSnapshot, FileInput, type FileInputProps, Flex, type FlexAlign, type FlexDirection, type FlexJustify, type FlexProps, type FlexWrap, Form, FormContext, FormField, type FormFieldProps, type FormProps, FormStore, type FormStoreOptions, type FormValues, Grid, GridCard, type GridCardItem, type GridCardProps, type GridProps, Icon, IconButton, type IconButtonProps, List, type ListItem, type ListProps, LoadingSpinner, type LoadingSpinnerProps, MegaMenu, type MegaMenuFeaturedProps, type MegaMenuItemProps, type MegaMenuLinkProps, type MegaMenuPanelProps, type MegaMenuProps, type MegaMenuSectionProps, Modal, type ModalProps, type NotificationPayload, NotificationProvider, NumberInput, type NumberInputProps, OpaqueGridCard, type OpaqueGridCardProps, OtpInput, type OtpInputProps, type PaginationOptions, Password, type PasswordProps, Portal, type PortalProps, RadioGroup, type RadioGroupProps, type RadioOption, Rating, type RatingProps, type RulesMap, ScalableContainer, type ScalableContainerProps, SearchInput, type SearchInputProps, SegmentedControl, type SegmentedControlProps, type SegmentedOption, Sidebar, type SidebarItem, type SidebarProps, type SidebarSection, SkeletonBox, type SkeletonBoxProps, SkeletonCard, type SkeletonCardProps, SkeletonCircle, type SkeletonCircleProps, SkeletonText, type SkeletonTextProps, Slider, type SliderMark, type SliderProps, type SliderValue, type Spacing, Switch, type SwitchInputProps, Table, type TableColumn, type TableProps, Tabs, type TabsAddProps, type TabsListProps, type TabsOrientation, type TabsPanelProps, type TabsProps, type TabsSize, type TabsTriggerProps, type TabsVariant, TagsInput, type TagsInputProps, DatePicker as Temporal, type TemporalPickerProps, TextArea, type TextAreaProps, TextInput, type TextInputProps, type ThemeColors, type ThemeConfig, type ThemeDensity, type ThemeMotion, ThemeProvider, type ThemeProviderProps, type ThemeRadius, type ThemeShadows, ThemeSwitch, type ThemeSwitchProps, type ThemeTypography, TimePicker, type TimePickerProps, Tooltip, type TooltipProps, TooltipProvider, TopBar, type TopBarProps, Tree, type TreeItemClickPayload, type TreeNode, type TreeProps, TreeSelect, type TreeSelectProps, Typography, type TypographyAlign, type TypographyColor, type TypographyProps, type TypographyVariant, type TypographyWeight, type UseFieldArrayReturn, type UseFormFieldOptions, type UseFormReturn, type ValidateTrigger, Wizard, type WizardProps, type WizardStep, cardNumberError, cvvError, detectBrand, expiryError, fieldShell, formatCardNumber, formatExpiry, isRequired, luhnValid, onlyDigits, patterns, runFieldRules, useFieldArray, useForm, useFormField, useFormStore, useNotification };
package/dist/index.js CHANGED
@@ -1,14 +1,14 @@
1
1
  import { colors_default } from './chunk-GKXP6OJJ.js';
2
2
  export { colors_default as COLORS, PALETTE as palette, semanticTokens, vars } from './chunk-GKXP6OJJ.js';
3
3
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
4
- import React12, { createContext, useState, useEffect, useMemo, useId, useCallback, useRef, useContext, useLayoutEffect, useSyncExternalStore } from 'react';
4
+ import React14, { createContext, useState, useEffect, useMemo, useId, useCallback, useRef, useContext, useLayoutEffect, useSyncExternalStore } from 'react';
5
5
  import { createPortal } from 'react-dom';
6
6
  import * as AvatarPrimitive from '@radix-ui/react-avatar';
7
7
  import * as Dialog from '@radix-ui/react-dialog';
8
8
  import { useReducedMotion, AnimatePresence, motion } from 'framer-motion';
9
9
  import * as TooltipPrimitive from '@radix-ui/react-tooltip';
10
10
  import * as TabsPrimitive from '@radix-ui/react-tabs';
11
- import * as Accordion from '@radix-ui/react-accordion';
11
+ import * as AccordionPrimitive from '@radix-ui/react-accordion';
12
12
  import * as ContextMenuPrimitive from '@radix-ui/react-context-menu';
13
13
  import * as Popover from '@radix-ui/react-popover';
14
14
  import * as SwitchPrimitive from '@radix-ui/react-switch';
@@ -1293,14 +1293,14 @@ function TreeNodeItem({
1293
1293
  }
1294
1294
  const initialOpen = defaultExpandAll || defaultExpandedKeys.includes(item.key) ? [item.key] : [];
1295
1295
  return /* @__PURE__ */ jsx(
1296
- Accordion.Root,
1296
+ AccordionPrimitive.Root,
1297
1297
  {
1298
1298
  type: "multiple",
1299
1299
  defaultValue: initialOpen,
1300
1300
  style: { paddingLeft: depth * 12 },
1301
- children: /* @__PURE__ */ jsxs(Accordion.Item, { value: item.key, className: "border-none", children: [
1301
+ children: /* @__PURE__ */ jsxs(AccordionPrimitive.Item, { value: item.key, className: "border-none", children: [
1302
1302
  /* @__PURE__ */ jsxs(
1303
- Accordion.Trigger,
1303
+ AccordionPrimitive.Trigger,
1304
1304
  {
1305
1305
  onClick: () => onNodeClick({
1306
1306
  isParent: true,
@@ -1334,7 +1334,7 @@ function TreeNodeItem({
1334
1334
  ]
1335
1335
  }
1336
1336
  ),
1337
- /* @__PURE__ */ jsx(Accordion.Content, { className: "overflow-hidden data-[state=open]:animate-accordion-down data-[state=closed]:animate-accordion-up", children: /* @__PURE__ */ jsx("div", { className: "ml-3.5 border-l border-border py-0.5", children: item.children.map((child) => /* @__PURE__ */ jsx(
1337
+ /* @__PURE__ */ jsx(AccordionPrimitive.Content, { className: "overflow-hidden data-[state=open]:animate-accordion-down data-[state=closed]:animate-accordion-up", children: /* @__PURE__ */ jsx("div", { className: "ml-3.5 border-l border-border py-0.5", children: item.children.map((child) => /* @__PURE__ */ jsx(
1338
1338
  TreeNodeItem,
1339
1339
  {
1340
1340
  item: child,
@@ -1368,6 +1368,152 @@ function Tree({
1368
1368
  item.key
1369
1369
  )) });
1370
1370
  }
1371
+ var AccordionCtx = createContext({ variant: "separated" });
1372
+ function Accordion2({
1373
+ children,
1374
+ type = "single",
1375
+ defaultValue,
1376
+ value,
1377
+ onValueChange,
1378
+ collapsible = true,
1379
+ variant = "separated",
1380
+ className = "",
1381
+ style
1382
+ }) {
1383
+ const common = {
1384
+ className: [
1385
+ variant === "contained" ? "rounded-lg border border-border bg-surface overflow-hidden divide-y divide-border" : "flex flex-col gap-2",
1386
+ className
1387
+ ].filter(Boolean).join(" "),
1388
+ style
1389
+ };
1390
+ const inner = /* @__PURE__ */ jsx(AccordionCtx.Provider, { value: { variant }, children });
1391
+ if (type === "multiple") {
1392
+ return /* @__PURE__ */ jsx(
1393
+ AccordionPrimitive.Root,
1394
+ {
1395
+ type: "multiple",
1396
+ defaultValue,
1397
+ value,
1398
+ onValueChange,
1399
+ ...common,
1400
+ children: inner
1401
+ }
1402
+ );
1403
+ }
1404
+ return /* @__PURE__ */ jsx(
1405
+ AccordionPrimitive.Root,
1406
+ {
1407
+ type: "single",
1408
+ collapsible,
1409
+ defaultValue,
1410
+ value,
1411
+ onValueChange,
1412
+ ...common,
1413
+ children: inner
1414
+ }
1415
+ );
1416
+ }
1417
+ var Chevron2 = /* @__PURE__ */ jsx(
1418
+ "svg",
1419
+ {
1420
+ viewBox: "0 0 24 24",
1421
+ fill: "none",
1422
+ stroke: "currentColor",
1423
+ strokeWidth: 2,
1424
+ "aria-hidden": "true",
1425
+ className: "h-4 w-4 flex-shrink-0 text-foreground-muted transition-transform duration-200 group-data-[state=open]/acc:rotate-180 group-data-[state=open]/acc:text-accent",
1426
+ children: /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M19 9l-7 7-7-7" })
1427
+ }
1428
+ );
1429
+ function AccordionItem({ value, title, icon, children, disabled, className = "" }) {
1430
+ const { variant } = useContext(AccordionCtx);
1431
+ return /* @__PURE__ */ jsxs(
1432
+ AccordionPrimitive.Item,
1433
+ {
1434
+ value,
1435
+ disabled,
1436
+ className: [
1437
+ variant === "separated" ? "rounded-lg border border-border bg-surface overflow-hidden" : "",
1438
+ "data-[disabled]:opacity-60",
1439
+ className
1440
+ ].filter(Boolean).join(" "),
1441
+ children: [
1442
+ /* @__PURE__ */ jsx(AccordionPrimitive.Header, { className: "m-0", children: /* @__PURE__ */ jsxs(
1443
+ AccordionPrimitive.Trigger,
1444
+ {
1445
+ className: "group/acc flex w-full items-center gap-3 px-4 py-3 text-left select-none\n text-sm font-medium text-foreground transition-colors\n hover:bg-surface-raised data-[state=open]:text-accent\n focus:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-inset\n disabled:cursor-not-allowed",
1446
+ children: [
1447
+ icon && /* @__PURE__ */ jsx("span", { className: "flex h-5 w-5 flex-shrink-0 items-center justify-center text-foreground-muted group-data-[state=open]/acc:text-accent", children: icon }),
1448
+ /* @__PURE__ */ jsx("span", { className: "flex-1 min-w-0", children: title }),
1449
+ Chevron2
1450
+ ]
1451
+ }
1452
+ ) }),
1453
+ /* @__PURE__ */ jsx(
1454
+ AccordionPrimitive.Content,
1455
+ {
1456
+ className: "overflow-hidden data-[state=open]:animate-accordion-down data-[state=closed]:animate-accordion-up",
1457
+ children: /* @__PURE__ */ jsx("div", { className: "px-4 pb-4 pt-0 text-sm text-foreground-secondary leading-relaxed", children })
1458
+ }
1459
+ )
1460
+ ]
1461
+ }
1462
+ );
1463
+ }
1464
+ Accordion2.Item = AccordionItem;
1465
+ var Accordion_default = Accordion2;
1466
+ var DefaultSeparator = /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, "aria-hidden": "true", className: "h-3.5 w-3.5 text-foreground-muted", children: /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M9 5l7 7-7 7" }) });
1467
+ var crumbBase = "inline-flex items-center gap-1.5 rounded px-1 -mx-1 text-sm transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-accent";
1468
+ function Crumb({ item, current }) {
1469
+ const inner = /* @__PURE__ */ jsxs(Fragment, { children: [
1470
+ item.icon && /* @__PURE__ */ jsx("span", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center", children: item.icon }),
1471
+ /* @__PURE__ */ jsx("span", { className: "truncate", children: item.label })
1472
+ ] });
1473
+ if (current) {
1474
+ return /* @__PURE__ */ jsx("span", { "aria-current": "page", className: `${crumbBase} font-medium text-foreground max-w-[16rem]`, children: inner });
1475
+ }
1476
+ if (item.href || item.onClick) {
1477
+ return /* @__PURE__ */ jsx("a", { href: item.href, onClick: item.onClick, className: `${crumbBase} text-foreground-secondary hover:text-foreground max-w-[12rem]`, children: inner });
1478
+ }
1479
+ return /* @__PURE__ */ jsx("span", { className: `${crumbBase} text-foreground-secondary max-w-[12rem]`, children: inner });
1480
+ }
1481
+ function Breadcrumbs({
1482
+ items,
1483
+ separator = DefaultSeparator,
1484
+ maxItems = 0,
1485
+ "aria-label": ariaLabel = "Breadcrumb",
1486
+ className = "",
1487
+ style
1488
+ }) {
1489
+ const [expanded, setExpanded] = useState(false);
1490
+ const shouldCollapse = maxItems > 0 && items.length > maxItems && !expanded;
1491
+ const visible = [];
1492
+ if (shouldCollapse) {
1493
+ const tailCount = Math.max(1, maxItems - 1);
1494
+ visible.push({ item: items[0], index: 0 });
1495
+ visible.push("ellipsis");
1496
+ for (let i = items.length - tailCount; i < items.length; i++) visible.push({ item: items[i], index: i });
1497
+ } else {
1498
+ items.forEach((item, index) => visible.push({ item, index }));
1499
+ }
1500
+ return /* @__PURE__ */ jsx("nav", { "aria-label": ariaLabel, className: ["min-w-0", className].filter(Boolean).join(" "), style, children: /* @__PURE__ */ jsx("ol", { className: "flex items-center gap-1.5 flex-nowrap min-w-0", children: visible.map((entry, i) => {
1501
+ const isLast = i === visible.length - 1;
1502
+ return /* @__PURE__ */ jsxs("li", { className: "flex items-center gap-1.5 min-w-0", children: [
1503
+ entry === "ellipsis" ? /* @__PURE__ */ jsx(
1504
+ "button",
1505
+ {
1506
+ type: "button",
1507
+ onClick: () => setExpanded(true),
1508
+ "aria-label": "Show hidden breadcrumbs",
1509
+ className: "inline-flex h-6 items-center rounded px-1.5 text-sm text-foreground-secondary hover:bg-surface-raised hover:text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-accent",
1510
+ children: "\u2026"
1511
+ }
1512
+ ) : /* @__PURE__ */ jsx(Crumb, { item: entry.item, current: entry.index === items.length - 1 }),
1513
+ !isLast && /* @__PURE__ */ jsx("span", { className: "flex-shrink-0", children: separator })
1514
+ ] }, entry === "ellipsis" ? "ellipsis" : entry.index);
1515
+ }) }) });
1516
+ }
1371
1517
  var NotificationContext = createContext({
1372
1518
  open: () => void 0,
1373
1519
  close: () => void 0
@@ -2471,7 +2617,7 @@ function Field({
2471
2617
  );
2472
2618
  }
2473
2619
  var SearchIcon = /* @__PURE__ */ jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", className: "w-4 h-4", "aria-hidden": "true", children: /* @__PURE__ */ jsx("path", { fillRule: "evenodd", d: "M10.5 3.75a6.75 6.75 0 100 13.5 6.75 6.75 0 000-13.5zM2.25 10.5a8.25 8.25 0 1114.59 5.28l4.69 4.69a.75.75 0 11-1.06 1.06l-4.69-4.69A8.25 8.25 0 012.25 10.5z", clipRule: "evenodd" }) });
2474
- var SearchInput = React12.forwardRef(function SearchInput2({ value, onChange, disabled, label, htmlFor, placeholder, name, inputStyle, style, layout = "vertical", size = "md", icon, helperText, className }, ref) {
2620
+ var SearchInput = React14.forwardRef(function SearchInput2({ value, onChange, disabled, label, htmlFor, placeholder, name, inputStyle, style, layout = "vertical", size = "md", icon, helperText, className }, ref) {
2475
2621
  return /* @__PURE__ */ jsx(Field, { className, label, htmlFor, layout, helperText, children: /* @__PURE__ */ jsxs(
2476
2622
  "div",
2477
2623
  {
@@ -2972,7 +3118,7 @@ function TableBody({
2972
3118
  return /* @__PURE__ */ jsx("tbody", { children: rows.map((row, i) => {
2973
3119
  const rowKey = getRowKey(row, i);
2974
3120
  const isExpanded = expanded.has(rowKey);
2975
- return /* @__PURE__ */ jsxs(React12.Fragment, { children: [
3121
+ return /* @__PURE__ */ jsxs(React14.Fragment, { children: [
2976
3122
  /* @__PURE__ */ jsxs(
2977
3123
  "tr",
2978
3124
  {
@@ -3516,8 +3662,8 @@ function MegaMenuLink({ href, icon, description, active, onClick, children, clas
3516
3662
  function MegaMenuFeatured({ children, className = "" }) {
3517
3663
  return /* @__PURE__ */ jsx("div", { className: ["min-w-0 rounded-lg bg-surface-raised border border-border p-4 flex flex-col", className].filter(Boolean).join(" "), children });
3518
3664
  }
3519
- var elementsOfType = (children, type) => React12.Children.toArray(children).filter(
3520
- (c) => React12.isValidElement(c) && c.type === type
3665
+ var elementsOfType = (children, type) => React14.Children.toArray(children).filter(
3666
+ (c) => React14.isValidElement(c) && c.type === type
3521
3667
  );
3522
3668
  var MOBILE_CHEVRON = /* @__PURE__ */ jsx(
3523
3669
  "svg",
@@ -3554,9 +3700,9 @@ function MobileLinkRow({ link, onNavigate }) {
3554
3700
  );
3555
3701
  }
3556
3702
  function MobilePanel({ panel, onNavigate }) {
3557
- const nodes = React12.Children.toArray(panel.props.children);
3703
+ const nodes = React14.Children.toArray(panel.props.children);
3558
3704
  return /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-4 px-2 pb-3 pt-1", children: nodes.map((node, i) => {
3559
- if (!React12.isValidElement(node)) return null;
3705
+ if (!React14.isValidElement(node)) return null;
3560
3706
  const el = node;
3561
3707
  if (el.type === MegaMenuSection) {
3562
3708
  const { title, children } = el.props;
@@ -3849,7 +3995,7 @@ function ThemeProvider({
3849
3995
  className = "",
3850
3996
  style
3851
3997
  }) {
3852
- const id = React12.useId().replace(/:/g, "");
3998
+ const id = React14.useId().replace(/:/g, "");
3853
3999
  const scopeClass = `geo-th-${id}`;
3854
4000
  const divRef = useRef(null);
3855
4001
  useEffect(() => {
@@ -5853,7 +5999,7 @@ function OtpInput({
5853
5999
  emit(valid.join(""));
5854
6000
  focusBox(valid.length);
5855
6001
  };
5856
- return /* @__PURE__ */ jsx(Field, { className, label, htmlFor, errorId, errorMessage, required, layout, helperText, children: /* @__PURE__ */ jsx("div", { className: "flex items-center gap-2", role: "group", "aria-label": typeof label === "string" ? label : "One-time code", children: chars.map((char, idx) => /* @__PURE__ */ jsxs(React12.Fragment, { children: [
6002
+ return /* @__PURE__ */ jsx(Field, { className, label, htmlFor, errorId, errorMessage, required, layout, helperText, children: /* @__PURE__ */ jsx("div", { className: "flex items-center gap-2", role: "group", "aria-label": typeof label === "string" ? label : "One-time code", children: chars.map((char, idx) => /* @__PURE__ */ jsxs(React14.Fragment, { children: [
5857
6003
  /* @__PURE__ */ jsx(
5858
6004
  "input",
5859
6005
  {
@@ -7067,6 +7213,6 @@ function CreditCardForm({
7067
7213
  );
7068
7214
  }
7069
7215
 
7070
- export { AppShell, AutoComplete, Avatar, Box, Button, CARD_BRANDS, Catalog, CatalogCarousel, CatalogGrid, Checkbox, ColorPicker, ContextMenu, CreditCardForm, DateRangePicker, Drawer, Dropdown, FadingBase, Field, FieldHelpIcon, FieldLabel, FileInput, Flex, Form, FormContext, FormField, FormStore, Grid2 as Grid, GridCard, icons_default as Icon, IconButton, List2 as List, LoadingSpinner, MegaMenu_default as MegaMenu, Modal, NotificationProvider, NumberInput, OpaqueGridCard, OtpInput, Password, Portal, RadioGroup, Rating, ScalableContainer, SearchInput_default as SearchInput, SegmentedControl, Sidebar, SkeletonBox, SkeletonCard, SkeletonCircle, SkeletonText, Slider, Switch, Table, Tabs_default as Tabs, TagsInput, DatePicker as Temporal, TextArea, TextInput, ThemeProvider, ThemeSwitch, TimePicker, Tooltip, TooltipProvider, TopBar, Tree, TreeSelect, Typography, Wizard, cardNumberError, cvvError, detectBrand, expiryError, fieldShell, formatCardNumber, formatExpiry, isRequired, luhnValid, onlyDigits, patterns, runFieldRules, useFieldArray, useForm, useFormField, useFormStore, useNotification };
7216
+ export { Accordion_default as Accordion, AppShell, AutoComplete, Avatar, Box, Breadcrumbs, Button, CARD_BRANDS, Catalog, CatalogCarousel, CatalogGrid, Checkbox, ColorPicker, ContextMenu, CreditCardForm, DateRangePicker, Drawer, Dropdown, FadingBase, Field, FieldHelpIcon, FieldLabel, FileInput, Flex, Form, FormContext, FormField, FormStore, Grid2 as Grid, GridCard, icons_default as Icon, IconButton, List2 as List, LoadingSpinner, MegaMenu_default as MegaMenu, Modal, NotificationProvider, NumberInput, OpaqueGridCard, OtpInput, Password, Portal, RadioGroup, Rating, ScalableContainer, SearchInput_default as SearchInput, SegmentedControl, Sidebar, SkeletonBox, SkeletonCard, SkeletonCircle, SkeletonText, Slider, Switch, Table, Tabs_default as Tabs, TagsInput, DatePicker as Temporal, TextArea, TextInput, ThemeProvider, ThemeSwitch, TimePicker, Tooltip, TooltipProvider, TopBar, Tree, TreeSelect, Typography, Wizard, cardNumberError, cvvError, detectBrand, expiryError, fieldShell, formatCardNumber, formatExpiry, isRequired, luhnValid, onlyDigits, patterns, runFieldRules, useFieldArray, useForm, useFormField, useFormStore, useNotification };
7071
7217
  //# sourceMappingURL=index.js.map
7072
7218
  //# sourceMappingURL=index.js.map