@geomak/ui 6.4.0 → 6.6.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
@@ -974,6 +974,75 @@ interface BreadcrumbsProps {
974
974
  */
975
975
  declare function Breadcrumbs({ items, separator, maxItems, 'aria-label': ariaLabel, className, style, }: BreadcrumbsProps): react_jsx_runtime.JSX.Element;
976
976
 
977
+ type BadgeTone = 'neutral' | 'accent' | 'success' | 'warning' | 'error' | 'info';
978
+ type BadgeVariant = 'solid' | 'soft' | 'outline';
979
+ type BadgeSize = 'sm' | 'md';
980
+ interface BadgeProps {
981
+ /** Pill label (label mode) when no `count` / `dot` is given. */
982
+ children?: React__default.ReactNode;
983
+ /** Semantic colour. Default `'neutral'`. */
984
+ tone?: BadgeTone;
985
+ /** Fill style. Default `'soft'`. */
986
+ variant?: BadgeVariant;
987
+ /** Size preset. Default `'md'`. */
988
+ size?: BadgeSize;
989
+ /** Optional leading icon (label mode). */
990
+ icon?: React__default.ReactNode;
991
+ /**
992
+ * Indicator mode — a numeric counter. With `children` it overlays the
993
+ * top-right corner of the wrapped element; without, it renders inline.
994
+ */
995
+ count?: number;
996
+ /** Cap the displayed count (e.g. `99+`). Default `99`. */
997
+ max?: number;
998
+ /** Render a bare dot indicator (no number). Overrides `count` display. */
999
+ dot?: boolean;
1000
+ /** Show the indicator even when `count` is 0. Default `false`. */
1001
+ showZero?: boolean;
1002
+ className?: string;
1003
+ style?: React__default.CSSProperties;
1004
+ }
1005
+ /**
1006
+ * A small status / count indicator. Three uses:
1007
+ *
1008
+ * 1. **Label pill** — `<Badge tone="success">Active</Badge>`.
1009
+ * 2. **Inline count** — `<Badge count={5} tone="error" />`.
1010
+ * 3. **Overlay** — wrap an element to anchor a count/dot to its top-right:
1011
+ * `<Badge count={3} tone="error"><IconButton … /></Badge>`.
1012
+ *
1013
+ * @example
1014
+ * <Badge tone="accent" variant="soft">Beta</Badge>
1015
+ * <Badge dot tone="success"><Avatar … /></Badge>
1016
+ */
1017
+ declare function Badge({ children, tone, variant, size, icon, count, max, dot, showZero, className, style, }: BadgeProps): react_jsx_runtime.JSX.Element;
1018
+
1019
+ type KbdSize = 'sm' | 'md';
1020
+ interface KbdProps {
1021
+ /** A single key's label when `keys` is not used. */
1022
+ children?: React__default.ReactNode;
1023
+ /**
1024
+ * A key combination — each entry renders as its own key cap, joined by
1025
+ * `separator`. e.g. `['Ctrl', 'K']` → `Ctrl + K`.
1026
+ */
1027
+ keys?: string[];
1028
+ /** Joiner between caps in a combo. Default `'+'`. */
1029
+ separator?: React__default.ReactNode;
1030
+ /** Size preset. Default `'md'`. */
1031
+ size?: KbdSize;
1032
+ className?: string;
1033
+ style?: React__default.CSSProperties;
1034
+ }
1035
+ /**
1036
+ * Renders keyboard keys as styled caps — a single key via `children`, or a
1037
+ * combination via `keys` (each rendered as its own cap, joined by `separator`).
1038
+ *
1039
+ * @example
1040
+ * <Kbd>Esc</Kbd>
1041
+ * <Kbd keys={['Ctrl', 'K']} />
1042
+ * <Kbd keys={['⌘', '⇧', 'P']} size="sm" />
1043
+ */
1044
+ declare function Kbd({ children, keys, separator, size, className, style, }: KbdProps): react_jsx_runtime.JSX.Element;
1045
+
977
1046
  /** ─────────────────── types ─────────────────── */
978
1047
  type NotificationType = 'info' | 'success' | 'warning' | 'danger';
979
1048
  type NotificationPosition = 'top-right' | 'top-left' | 'top-center' | 'bottom-right' | 'bottom-left' | 'bottom-center';
@@ -4042,4 +4111,4 @@ declare function expiryError(value: string, now?: Date): string | undefined;
4042
4111
  /** Validate the CVV against the detected brand's expected length. */
4043
4112
  declare function cvvError(value: string, cardNumber: string): string | undefined;
4044
4113
 
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 };
4114
+ export { Accordion, type AccordionItemProps, type AccordionProps, AppShell, type AppShellProps, AutoComplete, type AutoCompleteProps, Avatar, type AvatarProps, type AvatarShape, type AvatarSize, type AvatarStatus, Badge, type BadgeProps, type BadgeSize, type BadgeTone, type BadgeVariant, 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, Kbd, type KbdProps, type KbdSize, 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
@@ -974,6 +974,75 @@ interface BreadcrumbsProps {
974
974
  */
975
975
  declare function Breadcrumbs({ items, separator, maxItems, 'aria-label': ariaLabel, className, style, }: BreadcrumbsProps): react_jsx_runtime.JSX.Element;
976
976
 
977
+ type BadgeTone = 'neutral' | 'accent' | 'success' | 'warning' | 'error' | 'info';
978
+ type BadgeVariant = 'solid' | 'soft' | 'outline';
979
+ type BadgeSize = 'sm' | 'md';
980
+ interface BadgeProps {
981
+ /** Pill label (label mode) when no `count` / `dot` is given. */
982
+ children?: React__default.ReactNode;
983
+ /** Semantic colour. Default `'neutral'`. */
984
+ tone?: BadgeTone;
985
+ /** Fill style. Default `'soft'`. */
986
+ variant?: BadgeVariant;
987
+ /** Size preset. Default `'md'`. */
988
+ size?: BadgeSize;
989
+ /** Optional leading icon (label mode). */
990
+ icon?: React__default.ReactNode;
991
+ /**
992
+ * Indicator mode — a numeric counter. With `children` it overlays the
993
+ * top-right corner of the wrapped element; without, it renders inline.
994
+ */
995
+ count?: number;
996
+ /** Cap the displayed count (e.g. `99+`). Default `99`. */
997
+ max?: number;
998
+ /** Render a bare dot indicator (no number). Overrides `count` display. */
999
+ dot?: boolean;
1000
+ /** Show the indicator even when `count` is 0. Default `false`. */
1001
+ showZero?: boolean;
1002
+ className?: string;
1003
+ style?: React__default.CSSProperties;
1004
+ }
1005
+ /**
1006
+ * A small status / count indicator. Three uses:
1007
+ *
1008
+ * 1. **Label pill** — `<Badge tone="success">Active</Badge>`.
1009
+ * 2. **Inline count** — `<Badge count={5} tone="error" />`.
1010
+ * 3. **Overlay** — wrap an element to anchor a count/dot to its top-right:
1011
+ * `<Badge count={3} tone="error"><IconButton … /></Badge>`.
1012
+ *
1013
+ * @example
1014
+ * <Badge tone="accent" variant="soft">Beta</Badge>
1015
+ * <Badge dot tone="success"><Avatar … /></Badge>
1016
+ */
1017
+ declare function Badge({ children, tone, variant, size, icon, count, max, dot, showZero, className, style, }: BadgeProps): react_jsx_runtime.JSX.Element;
1018
+
1019
+ type KbdSize = 'sm' | 'md';
1020
+ interface KbdProps {
1021
+ /** A single key's label when `keys` is not used. */
1022
+ children?: React__default.ReactNode;
1023
+ /**
1024
+ * A key combination — each entry renders as its own key cap, joined by
1025
+ * `separator`. e.g. `['Ctrl', 'K']` → `Ctrl + K`.
1026
+ */
1027
+ keys?: string[];
1028
+ /** Joiner between caps in a combo. Default `'+'`. */
1029
+ separator?: React__default.ReactNode;
1030
+ /** Size preset. Default `'md'`. */
1031
+ size?: KbdSize;
1032
+ className?: string;
1033
+ style?: React__default.CSSProperties;
1034
+ }
1035
+ /**
1036
+ * Renders keyboard keys as styled caps — a single key via `children`, or a
1037
+ * combination via `keys` (each rendered as its own cap, joined by `separator`).
1038
+ *
1039
+ * @example
1040
+ * <Kbd>Esc</Kbd>
1041
+ * <Kbd keys={['Ctrl', 'K']} />
1042
+ * <Kbd keys={['⌘', '⇧', 'P']} size="sm" />
1043
+ */
1044
+ declare function Kbd({ children, keys, separator, size, className, style, }: KbdProps): react_jsx_runtime.JSX.Element;
1045
+
977
1046
  /** ─────────────────── types ─────────────────── */
978
1047
  type NotificationType = 'info' | 'success' | 'warning' | 'danger';
979
1048
  type NotificationPosition = 'top-right' | 'top-left' | 'top-center' | 'bottom-right' | 'bottom-left' | 'bottom-center';
@@ -4042,4 +4111,4 @@ declare function expiryError(value: string, now?: Date): string | undefined;
4042
4111
  /** Validate the CVV against the detected brand's expected length. */
4043
4112
  declare function cvvError(value: string, cardNumber: string): string | undefined;
4044
4113
 
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 };
4114
+ export { Accordion, type AccordionItemProps, type AccordionProps, AppShell, type AppShellProps, AutoComplete, type AutoCompleteProps, Avatar, type AvatarProps, type AvatarShape, type AvatarSize, type AvatarStatus, Badge, type BadgeProps, type BadgeSize, type BadgeTone, type BadgeVariant, 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, Kbd, type KbdProps, type KbdSize, 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,7 +1,7 @@
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 React14, { createContext, useState, useEffect, useMemo, useId, useCallback, useRef, useContext, useLayoutEffect, useSyncExternalStore } from 'react';
4
+ import React15, { 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';
@@ -1514,6 +1514,129 @@ function Breadcrumbs({
1514
1514
  ] }, entry === "ellipsis" ? "ellipsis" : entry.index);
1515
1515
  }) }) });
1516
1516
  }
1517
+ var TONE = {
1518
+ neutral: {
1519
+ solid: "bg-foreground-secondary text-background",
1520
+ soft: "bg-surface-raised text-foreground-secondary",
1521
+ outline: "border border-border text-foreground-secondary",
1522
+ dot: "bg-foreground-secondary"
1523
+ },
1524
+ accent: {
1525
+ solid: "bg-accent text-accent-fg",
1526
+ soft: "bg-accent/10 text-accent",
1527
+ outline: "border border-accent text-accent",
1528
+ dot: "bg-accent"
1529
+ },
1530
+ success: {
1531
+ solid: "bg-status-success text-white",
1532
+ soft: "bg-status-success/12 text-status-success",
1533
+ outline: "border border-status-success text-status-success",
1534
+ dot: "bg-status-success"
1535
+ },
1536
+ warning: {
1537
+ solid: "bg-status-warning text-white",
1538
+ soft: "bg-status-warning/15 text-status-warning",
1539
+ outline: "border border-status-warning text-status-warning",
1540
+ dot: "bg-status-warning"
1541
+ },
1542
+ error: {
1543
+ solid: "bg-status-error text-white",
1544
+ soft: "bg-status-error/12 text-status-error",
1545
+ outline: "border border-status-error text-status-error",
1546
+ dot: "bg-status-error"
1547
+ },
1548
+ info: {
1549
+ solid: "bg-status-info text-white",
1550
+ soft: "bg-status-info/12 text-status-info",
1551
+ outline: "border border-status-info text-status-info",
1552
+ dot: "bg-status-info"
1553
+ }
1554
+ };
1555
+ var SIZE2 = {
1556
+ sm: "h-[18px] px-1.5 text-[11px] gap-1 rounded-full",
1557
+ md: "h-5 px-2 text-xs gap-1 rounded-full"
1558
+ };
1559
+ function Badge({
1560
+ children,
1561
+ tone = "neutral",
1562
+ variant = "soft",
1563
+ size = "md",
1564
+ icon,
1565
+ count,
1566
+ max = 99,
1567
+ dot = false,
1568
+ showZero = false,
1569
+ className = "",
1570
+ style
1571
+ }) {
1572
+ const isIndicator = dot || count != null;
1573
+ const hidden = !dot && count != null && count === 0 && !showZero;
1574
+ const display2 = count != null && count > max ? `${max}+` : count;
1575
+ if (!isIndicator) {
1576
+ return /* @__PURE__ */ jsxs(
1577
+ "span",
1578
+ {
1579
+ className: [
1580
+ "inline-flex items-center font-medium select-none whitespace-nowrap leading-none",
1581
+ SIZE2[size],
1582
+ TONE[tone][variant],
1583
+ className
1584
+ ].filter(Boolean).join(" "),
1585
+ style,
1586
+ children: [
1587
+ icon && /* @__PURE__ */ jsx("span", { className: "flex h-3.5 w-3.5 items-center justify-center", children: icon }),
1588
+ children
1589
+ ]
1590
+ }
1591
+ );
1592
+ }
1593
+ const indicator = dot ? /* @__PURE__ */ jsx(
1594
+ "span",
1595
+ {
1596
+ className: ["inline-block rounded-full", size === "sm" ? "h-2 w-2" : "h-2.5 w-2.5", TONE[tone].dot, className].filter(Boolean).join(" "),
1597
+ style: children ? void 0 : style,
1598
+ "aria-hidden": children ? true : void 0
1599
+ }
1600
+ ) : /* @__PURE__ */ jsx(
1601
+ "span",
1602
+ {
1603
+ className: [
1604
+ "inline-flex items-center justify-center rounded-full font-semibold leading-none tabular-nums",
1605
+ size === "sm" ? "h-4 min-w-4 px-1 text-[10px]" : "h-[18px] min-w-[18px] px-1.5 text-[11px]",
1606
+ TONE[tone].solid,
1607
+ className
1608
+ ].filter(Boolean).join(" "),
1609
+ style: children ? void 0 : style,
1610
+ children: display2
1611
+ }
1612
+ );
1613
+ if (!children) return hidden ? null : indicator;
1614
+ return /* @__PURE__ */ jsxs("span", { className: "relative inline-flex", style, children: [
1615
+ children,
1616
+ !hidden && /* @__PURE__ */ jsx("span", { className: "absolute -top-1 -right-1 flex", children: indicator })
1617
+ ] });
1618
+ }
1619
+ var SIZE3 = {
1620
+ sm: "h-5 min-w-[20px] px-1.5 text-[11px]",
1621
+ md: "h-6 min-w-[24px] px-2 text-xs"
1622
+ };
1623
+ var cap = "inline-flex items-center justify-center rounded-md border border-border border-b-2 bg-surface-raised font-medium text-foreground-secondary leading-none select-none font-sans shadow-sm";
1624
+ function Kbd({
1625
+ children,
1626
+ keys,
1627
+ separator = "+",
1628
+ size = "md",
1629
+ className = "",
1630
+ style
1631
+ }) {
1632
+ if (keys && keys.length > 0) {
1633
+ return /* @__PURE__ */ jsx("span", { className: ["inline-flex items-center gap-1", className].filter(Boolean).join(" "), style, children: keys.map((k, i) => /* @__PURE__ */ jsxs(React15.Fragment, { children: [
1634
+ i > 0 && /* @__PURE__ */ jsx("span", { className: "text-foreground-muted text-xs select-none", children: separator }),
1635
+ /* @__PURE__ */ jsx("kbd", { className: [cap, SIZE3[size]].join(" "), children: k })
1636
+ ] }, `${k}-${i}`)) });
1637
+ }
1638
+ return /* @__PURE__ */ jsx("kbd", { className: [cap, SIZE3[size], className].filter(Boolean).join(" "), style, children });
1639
+ }
1517
1640
  var NotificationContext = createContext({
1518
1641
  open: () => void 0,
1519
1642
  close: () => void 0
@@ -2617,7 +2740,7 @@ function Field({
2617
2740
  );
2618
2741
  }
2619
2742
  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" }) });
2620
- var SearchInput = React14.forwardRef(function SearchInput2({ value, onChange, disabled, label, htmlFor, placeholder, name, inputStyle, style, layout = "vertical", size = "md", icon, helperText, className }, ref) {
2743
+ var SearchInput = React15.forwardRef(function SearchInput2({ value, onChange, disabled, label, htmlFor, placeholder, name, inputStyle, style, layout = "vertical", size = "md", icon, helperText, className }, ref) {
2621
2744
  return /* @__PURE__ */ jsx(Field, { className, label, htmlFor, layout, helperText, children: /* @__PURE__ */ jsxs(
2622
2745
  "div",
2623
2746
  {
@@ -3118,7 +3241,7 @@ function TableBody({
3118
3241
  return /* @__PURE__ */ jsx("tbody", { children: rows.map((row, i) => {
3119
3242
  const rowKey = getRowKey(row, i);
3120
3243
  const isExpanded = expanded.has(rowKey);
3121
- return /* @__PURE__ */ jsxs(React14.Fragment, { children: [
3244
+ return /* @__PURE__ */ jsxs(React15.Fragment, { children: [
3122
3245
  /* @__PURE__ */ jsxs(
3123
3246
  "tr",
3124
3247
  {
@@ -3662,8 +3785,8 @@ function MegaMenuLink({ href, icon, description, active, onClick, children, clas
3662
3785
  function MegaMenuFeatured({ children, className = "" }) {
3663
3786
  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 });
3664
3787
  }
3665
- var elementsOfType = (children, type) => React14.Children.toArray(children).filter(
3666
- (c) => React14.isValidElement(c) && c.type === type
3788
+ var elementsOfType = (children, type) => React15.Children.toArray(children).filter(
3789
+ (c) => React15.isValidElement(c) && c.type === type
3667
3790
  );
3668
3791
  var MOBILE_CHEVRON = /* @__PURE__ */ jsx(
3669
3792
  "svg",
@@ -3700,9 +3823,9 @@ function MobileLinkRow({ link, onNavigate }) {
3700
3823
  );
3701
3824
  }
3702
3825
  function MobilePanel({ panel, onNavigate }) {
3703
- const nodes = React14.Children.toArray(panel.props.children);
3826
+ const nodes = React15.Children.toArray(panel.props.children);
3704
3827
  return /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-4 px-2 pb-3 pt-1", children: nodes.map((node, i) => {
3705
- if (!React14.isValidElement(node)) return null;
3828
+ if (!React15.isValidElement(node)) return null;
3706
3829
  const el = node;
3707
3830
  if (el.type === MegaMenuSection) {
3708
3831
  const { title, children } = el.props;
@@ -3995,7 +4118,7 @@ function ThemeProvider({
3995
4118
  className = "",
3996
4119
  style
3997
4120
  }) {
3998
- const id = React14.useId().replace(/:/g, "");
4121
+ const id = React15.useId().replace(/:/g, "");
3999
4122
  const scopeClass = `geo-th-${id}`;
4000
4123
  const divRef = useRef(null);
4001
4124
  useEffect(() => {
@@ -5590,7 +5713,7 @@ function TextArea({
5590
5713
  }
5591
5714
  );
5592
5715
  }
5593
- var SIZE2 = {
5716
+ var SIZE4 = {
5594
5717
  sm: { h: "h-control-sm", text: "text-xs", pad: "px-2.5" },
5595
5718
  md: { h: "h-control-md", text: "text-sm", pad: "px-3.5" },
5596
5719
  lg: { h: "h-control-lg", text: "text-sm", pad: "px-4" }
@@ -5612,7 +5735,7 @@ function SegmentedControl({
5612
5735
  errorMessage,
5613
5736
  "aria-label": ariaLabel
5614
5737
  }) {
5615
- const sz = SIZE2[size];
5738
+ const sz = SIZE4[size];
5616
5739
  const groupId = useId();
5617
5740
  const errorId = useId();
5618
5741
  const hasError = errorMessage != null;
@@ -5999,7 +6122,7 @@ function OtpInput({
5999
6122
  emit(valid.join(""));
6000
6123
  focusBox(valid.length);
6001
6124
  };
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: [
6125
+ 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(React15.Fragment, { children: [
6003
6126
  /* @__PURE__ */ jsx(
6004
6127
  "input",
6005
6128
  {
@@ -7213,6 +7336,6 @@ function CreditCardForm({
7213
7336
  );
7214
7337
  }
7215
7338
 
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 };
7339
+ export { Accordion_default as Accordion, AppShell, AutoComplete, Avatar, Badge, 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, Kbd, 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 };
7217
7340
  //# sourceMappingURL=index.js.map
7218
7341
  //# sourceMappingURL=index.js.map