@nexub/react 2.0.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/dist/{chunk-4MEV2WHD.js → chunk-2BAXCPQF.js} +1 -1
  2. package/dist/{chunk-7BAIEYUW.js → chunk-3FX3FBHE.js} +1 -1
  3. package/dist/chunk-4GVGS5N4.js +468 -0
  4. package/dist/{chunk-ZTI4MK3L.js → chunk-5JOKHG4L.js} +1 -1
  5. package/dist/{chunk-HSM7RXUF.js → chunk-5QZVFW4H.js} +1 -1
  6. package/dist/{chunk-UVWQPDOV.js → chunk-6ALDF3XF.js} +2 -2
  7. package/dist/{chunk-V6CMWCJH.js → chunk-6FRG6NMM.js} +2 -2
  8. package/dist/{chunk-ENB7X3W4.js → chunk-7JXJOYM6.js} +1 -1
  9. package/dist/{chunk-JVOSMXD5.js → chunk-AKV4GMIY.js} +1 -1
  10. package/dist/{chunk-FT2S7N64.js → chunk-BSS7QNC5.js} +1 -1
  11. package/dist/{chunk-OS4NOWEI.js → chunk-D6HHYT2S.js} +1 -1
  12. package/dist/{chunk-ESMIBOF5.js → chunk-D7HMUIA5.js} +1 -1
  13. package/dist/{chunk-ETWFHIAE.js → chunk-EA4JBLWK.js} +1 -1
  14. package/dist/{chunk-UAQRQNOB.js → chunk-EILMNNTT.js} +1 -1
  15. package/dist/{chunk-IDIS7Z6H.js → chunk-F3DRJSZL.js} +1 -1
  16. package/dist/{chunk-GSA7NBEG.js → chunk-I6ELDWZE.js} +1 -1
  17. package/dist/{chunk-OTZBGMYH.js → chunk-IPCB5HU7.js} +1 -1
  18. package/dist/{chunk-6U5WQERX.js → chunk-KFU2ENV6.js} +2 -2
  19. package/dist/{chunk-ZRBLASQE.js → chunk-MX6NYEOW.js} +1 -1
  20. package/dist/{chunk-GG5HDX7J.js → chunk-NITVUZ4L.js} +1 -1
  21. package/dist/{chunk-XHLSYHAV.js → chunk-NN7SNECM.js} +1 -1
  22. package/dist/{chunk-BIAYWCDE.js → chunk-O2DSTHXA.js} +1 -1
  23. package/dist/{chunk-L4BSKMLK.js → chunk-P37ABUFD.js} +1 -1
  24. package/dist/{chunk-5GN2GFW3.js → chunk-Q4CEJZY6.js} +1 -1
  25. package/dist/chunk-R3SUPKKI.js +12 -0
  26. package/dist/{chunk-UV5O2BMW.js → chunk-TSBBWYDO.js} +1 -1
  27. package/dist/{chunk-RVWQROFK.js → chunk-TXIJMUD5.js} +1 -1
  28. package/dist/{chunk-O6J6HXVT.js → chunk-VMMZHSZL.js} +1 -1
  29. package/dist/chunk-VMSWIC3O.js +40 -0
  30. package/dist/{chunk-WECNLNIA.js → chunk-WASCNEIQ.js} +1 -1
  31. package/dist/{chunk-RSBJBQPG.js → chunk-WXE6QRHB.js} +1 -1
  32. package/dist/{chunk-KRHD7VI6.js → chunk-ZVQYAIOA.js} +1 -1
  33. package/dist/{chunk-PC7YGDNL.js → chunk-ZYR3R36N.js} +3 -3
  34. package/dist/components/Alert/index.js +2 -2
  35. package/dist/components/Amount/index.js +4 -4
  36. package/dist/components/Autocomplete/index.js +2 -2
  37. package/dist/components/AvatarGroup/index.js +2 -2
  38. package/dist/components/Banner/index.js +2 -2
  39. package/dist/components/Breadcrumb/index.js +2 -2
  40. package/dist/components/Chip/index.js +2 -2
  41. package/dist/components/Citation/index.js +2 -2
  42. package/dist/components/CommandPalette/index.js +2 -2
  43. package/dist/components/DataTable/index.js +2 -2
  44. package/dist/components/DatePicker/index.js +2 -2
  45. package/dist/components/DateRangePicker/index.js +3 -3
  46. package/dist/components/Drawer/index.js +1 -1
  47. package/dist/components/FileUpload/index.js +2 -2
  48. package/dist/components/FilterChip/index.js +2 -2
  49. package/dist/components/FormField/index.js +3 -3
  50. package/dist/components/MessageBubble/index.js +2 -2
  51. package/dist/components/MoneyInput/index.js +3 -3
  52. package/dist/components/Motion/index.js +9 -3
  53. package/dist/components/NavigationRail/index.js +2 -2
  54. package/dist/components/NexubProvider/index.js +1 -1
  55. package/dist/components/NumberInput/index.js +2 -2
  56. package/dist/components/NumberTicker/index.js +2 -2
  57. package/dist/components/Pagination/index.js +2 -2
  58. package/dist/components/PasswordInput/index.js +2 -2
  59. package/dist/components/PromptInput/index.js +2 -2
  60. package/dist/components/Rating/index.js +2 -2
  61. package/dist/components/SearchInput/index.js +2 -2
  62. package/dist/components/Sidebar/index.js +2 -2
  63. package/dist/components/Spinner/index.js +2 -2
  64. package/dist/components/ThinkingIndicator/index.js +2 -2
  65. package/dist/components/Toast/index.js +2 -2
  66. package/dist/components/TopNav/index.js +2 -2
  67. package/dist/index.d.ts +65 -106
  68. package/dist/index.js +67 -75
  69. package/package.json +6 -5
  70. package/dist/chunk-3MSIO7KM.js +0 -129
  71. package/dist/chunk-CIQHFMF6.js +0 -44
  72. package/dist/chunk-FS4XKWFA.js +0 -308
  73. package/dist/{chunk-GLQOEW57.js → chunk-G4RLUGE3.js} +4 -4
package/dist/index.d.ts CHANGED
@@ -2,6 +2,8 @@ import { ClassValue } from 'clsx';
2
2
  import * as React from 'react';
3
3
  import { useLayoutEffect, Ref } from 'react';
4
4
  import { Locale } from 'date-fns';
5
+ import { Direction, NexubMessages, ToneValue, GlassMode } from '@nexub/core';
6
+ export { GlassMode, NexubMessages, Direction as TextDirection, ToneValue, defaultMessages } from '@nexub/core';
5
7
  import * as class_variance_authority_types from 'class-variance-authority/types';
6
8
  import { VariantProps } from 'class-variance-authority';
7
9
  import * as RadixRadioGroup from '@radix-ui/react-radio-group';
@@ -223,99 +225,6 @@ interface SourceListProps extends Omit<React.HTMLAttributes<HTMLElement>, 'child
223
225
  */
224
226
  declare const SourceList: React.ForwardRefExoticComponent<SourceListProps & React.RefAttributes<HTMLElement>>;
225
227
 
226
- /** Every user-facing default string in @nexub/react. Explicit component props still win. */
227
- interface NexubMessages {
228
- close: string;
229
- dismissAlert: string;
230
- dismissBanner: string;
231
- remove: string;
232
- removeFilter: string;
233
- removeFile: (fileName: string) => string;
234
- uploadFiles: string;
235
- clickToUpload: string;
236
- orDragAndDrop: string;
237
- clearSearch: string;
238
- showPassword: string;
239
- hidePassword: string;
240
- increment: string;
241
- decrement: string;
242
- loading: string;
243
- pagination: string;
244
- previousPage: string;
245
- nextPage: string;
246
- goToPage: (page: number) => string;
247
- breadcrumb: string;
248
- breadcrumbMore: string;
249
- moreCount: (count: number) => string;
250
- rating: string;
251
- ratingStars: (stars: number) => string;
252
- mainNavigation: string;
253
- sidebar: string;
254
- searchPlaceholder: string;
255
- noResults: string;
256
- pickDate: string;
257
- pickDateRange: string;
258
- /** Calendar nav and day labels (DatePicker, DateRangePicker). */
259
- previousMonth: string;
260
- nextMonth: string;
261
- calendarNavigation: string;
262
- /** Wraps a day's formatted date when it is today. */
263
- todayDate: (date: string) => string;
264
- /** Wraps a day's (possibly today-wrapped) label when it is selected. */
265
- selectedDate: (label: string) => string;
266
- commandPalette: string;
267
- /** Toaster region label; Radix replaces `{hotkey}`. */
268
- notifications: string;
269
- undo: string;
270
- promptLabel: string;
271
- sendMessage: string;
272
- stopGenerating: string;
273
- promptHint: string;
274
- thinking: string;
275
- youSaid: string;
276
- assistantSaid: string;
277
- failedToSend: string;
278
- retry: string;
279
- copy: string;
280
- copied: string;
281
- goodResponse: string;
282
- badResponse: string;
283
- regenerate: string;
284
- sources: string;
285
- source: (index: number) => string;
286
- jumpToLatest: string;
287
- conversation: string;
288
- pageOf: (page: number, total: number) => string;
289
- previous: string;
290
- next: string;
291
- search: string;
292
- searchProduct: (productName: string) => string;
293
- keyboardShortcut: (shortcut: string) => string;
294
- commandKey: string;
295
- controlKey: string;
296
- searching: string;
297
- searchFailed: string;
298
- noResultsFor: (query: string) => string;
299
- typeToSearch: string;
300
- switchOrganization: (name: string) => string;
301
- organizations: string;
302
- switchToLightTheme: string;
303
- switchToDarkTheme: string;
304
- glass: string;
305
- glassClear: string;
306
- glassBalanced: string;
307
- glassTinted: string;
308
- glassSolid: string;
309
- accountMenu: (name: string) => string;
310
- manageAccount: string;
311
- privacyPolicy: string;
312
- termsOfService: string;
313
- signOut: string;
314
- signingOut: string;
315
- accountAndApps: string;
316
- }
317
- declare const defaultMessages: NexubMessages;
318
- type Direction = 'ltr' | 'rtl';
319
228
  interface NexubProviderProps {
320
229
  /** BCP 47 locale for Intl formatting. @default 'en' */
321
230
  locale?: string;
@@ -345,7 +254,6 @@ declare function useLocale(): {
345
254
  dateLocale?: Locale;
346
255
  };
347
256
 
348
- type ToneValue = 'neutral' | 'info' | 'success' | 'warning' | 'danger' | 'leap' | 'bookub' | 'payub' | 'founderub';
349
257
  declare const buttonVariants: (props?: ({
350
258
  variant?: "accent" | "text" | "link" | "glass" | "ghost" | "outline" | "subtle" | "filled" | "tonal" | "outlined" | "primary" | "secondary" | "destructive" | null | undefined;
351
259
  size?: "xs" | "sm" | "md" | "lg" | "xl" | null | undefined;
@@ -1758,9 +1666,7 @@ interface DateRangePickerProps {
1758
1666
  declare const DateRangePicker: React.ForwardRefExoticComponent<DateRangePickerProps & React.RefAttributes<HTMLButtonElement>>;
1759
1667
 
1760
1668
  type ThemeMode = 'light' | 'dark' | 'system';
1761
- /** Glass intensity dial (user preference, like iOS 27's clear → tinted slider).
1762
- * 'off' makes every glass surface solid. Set as `data-glass` on <html>. */
1763
- type GlassMode = 'clear' | 'balanced' | 'tinted' | 'off';
1669
+
1764
1670
  interface ThemeContextValue {
1765
1671
  /** The resolved theme actually applied (never 'system'). */
1766
1672
  resolvedTheme: 'light' | 'dark';
@@ -1827,13 +1733,14 @@ interface MotionBaseProps {
1827
1733
  /** Whether the component is visible / mounted. */
1828
1734
  in: boolean;
1829
1735
  /**
1830
- * Token-based duration. Maps to `--duration-{value}`.
1736
+ * Speed on the spring tokens: `fast` → fast, `normal` → default,
1737
+ * `slow`/`slower` → slow springs. `instant` turns motion off.
1831
1738
  * @default 'normal'
1832
1739
  */
1833
1740
  duration?: MotionDuration;
1834
1741
  /**
1835
- * Token-based easing. Maps to `--ease-{value}`.
1836
- * @default 'out'
1742
+ * Legacy: set it to use the old `--duration-*` + `--ease-{value}` tokens
1743
+ * instead of springs. Omit it to ride the spring tokens.
1837
1744
  */
1838
1745
  easing?: MotionEasing;
1839
1746
  /**
@@ -1870,7 +1777,8 @@ interface SlideProps extends MotionBaseProps, React.HTMLAttributes<HTMLDivElemen
1870
1777
  as?: React.ElementType;
1871
1778
  }
1872
1779
  /**
1873
- * Slide — animates opacity + translate from a given direction.
1780
+ * Slide — animates opacity + translate from a given direction on the spring
1781
+ * tokens. Reduced motion keeps the fade and drops the travel.
1874
1782
  *
1875
1783
  * ```tsx
1876
1784
  * <Slide in={isOpen} direction="up">
@@ -1890,7 +1798,8 @@ interface ScaleProps extends MotionBaseProps, React.HTMLAttributes<HTMLDivElemen
1890
1798
  as?: React.ElementType;
1891
1799
  }
1892
1800
  /**
1893
- * Scale — animates opacity + scale(x) from `initialScale` to 1.
1801
+ * Scale — animates opacity + scale(x) from `initialScale` to 1 on the spring
1802
+ * tokens. Reduced motion keeps the fade and drops the scale.
1894
1803
  *
1895
1804
  * ```tsx
1896
1805
  * <Scale in={isOpen} initialScale={0.9}>
@@ -1902,8 +1811,8 @@ declare const Scale: React.ForwardRefExoticComponent<ScaleProps & React.RefAttri
1902
1811
 
1903
1812
  interface CollapseProps extends Omit<MotionBaseProps, 'easing'>, React.HTMLAttributes<HTMLDivElement> {
1904
1813
  /**
1905
- * Easing for the height transition.
1906
- * @default 'out'
1814
+ * Legacy: set it to use `--duration-*` + `--ease-{value}` instead of the
1815
+ * spatial spring for the height transition.
1907
1816
  */
1908
1817
  easing?: MotionBaseProps['easing'];
1909
1818
  /**
@@ -1915,7 +1824,8 @@ interface CollapseProps extends Omit<MotionBaseProps, 'easing'>, React.HTMLAttri
1915
1824
  as?: React.ElementType;
1916
1825
  }
1917
1826
  /**
1918
- * Collapse — animates `max-height` to reveal / hide content.
1827
+ * Collapse — animates `max-height` to reveal / hide content on the spatial
1828
+ * spring. Reduced motion snaps the height instead of animating it.
1919
1829
  * Height is measured from the content ref so you don't need to
1920
1830
  * provide an explicit height.
1921
1831
  *
@@ -1927,4 +1837,53 @@ interface CollapseProps extends Omit<MotionBaseProps, 'easing'>, React.HTMLAttri
1927
1837
  */
1928
1838
  declare const Collapse: React.ForwardRefExoticComponent<CollapseProps & React.RefAttributes<HTMLDivElement>>;
1929
1839
 
1930
- export { Accordion, Alert, AlertDialog, type AlertProps, Amount, type AmountProps, AppShell, AspectRatio, type AspectRatioProps, Autocomplete, type AutocompleteOption, type AutocompleteProps, Avatar, AvatarGroup, type AvatarGroupProps, type AvatarProps, Badge, type BadgeProps, Banner, type BannerProps, Box, type BoxProps, Breadcrumb, Button, ButtonGroup, type ButtonGroupProps, type ButtonProps, type ButtonStatus, Callout, type CalloutProps, Card, CardLink, type CardLinkProps, type CardProps, CheckList, CheckListItem, type CheckListItemProps, type CheckListProps, Checkbox, CheckboxCard, type CheckboxCardProps, type CheckboxProps, Chip, type ChipProps, Citation, type CitationMessages, type CitationProps, type CitationSource, Code, type CodeProps, Collapse, type CollapseProps, Collapsible, Combobox, CommandPalette, type CommandPaletteRootProps, Container, type ContainerProps, ContextMenu, CountryBadge, type CountryBadgeProps, DataTable, type DataTableColumn, type DataTableProps, DatePicker, type DatePickerProps, DateRangePicker, type DateRangePickerProps, Dialog, Drawer, type DrawerRootProps, DropdownMenu, EmptyState, ErrorState, type ErrorStateProps, EyebrowChip, type EyebrowChipProps, Fade, type FadeProps, type Feedback, FileUpload, type FileUploadRootProps, FilterChip, type FilterChipProps, Flag, type FlagProps, Flex, type FlexProps, FormError, type FormErrorProps, FormField, type FormFieldContextValue, type FormFieldRootProps, type GlassMode, GradientDivider, type GradientDividerProps, Grid, type GridProps, Heading, type HeadingProps, HelperText, type HelperTextProps, HoverCard, IconButton, type IconButtonProps, Input, type InputProps, Kbd, type KbdProps, KeyboardShortcut, type KeyboardShortcutProps, Label, type LabelProps, Link, type LinkProps, Logo, type LogoProps, MediaCard, type MediaCardProps, type MediaCardRatio, Menubar, MessageActions, type MessageActionsProps, MessageBubble, type MessageBubbleProps, type MessageFrom, type MessageStrings, MoneyInput, type MoneyInputProps, type MotionBaseProps, type MotionDuration, type MotionEasing, NavigationMenu, NavigationRail, type NavigationRailItemProps, type NavigationRailRootProps, type NexubMessages, NexubProvider, type NexubProviderProps, NumberInput, type NumberInputProps, NumberTicker, type NumberTickerPart, type NumberTickerProps, PageHeader, type PageHeaderProps, Pagination, type PaginationProps, PasswordInput, type PasswordInputProps, Popover, Progress, type ProgressProps, PromptInput, type PromptInputMessages, type PromptInputProps, type PromptInputStatus, RadioCard, RadioCardGroup, type RadioCardGroupProps, type RadioCardProps, RadioGroup, Rating, type RatingProps, Scale, type ScaleProps, ScrollArea, type ScrollAreaProps, SearchInput, type SearchInputProps, Section, type SectionProps, SegmentedControl, type SegmentedControlItemProps, type SegmentedControlProps, Select, Separator, type SeparatorProps, Sheet, Sidebar, type SidebarGroupProps, type SidebarHeaderProps, type SidebarItemProps, type SidebarRootProps, Skeleton, type SkeletonProps, Slide, type SlideDirection, type SlideProps, Slider, type SliderProps, SourceChip, type SourceChipProps, SourceList, type SourceListProps, Spinner, type SpinnerProps, SplitButton, type SplitButtonProps, Stack, type StackProps, StatusPill, type StatusPillProps, StreamingText, type StreamingTextProps, Switch, type SwitchProps, Table, type TableRootProps, Tabs, Tag, type TagProps, Text, type Direction as TextDirection, TextGradient, type TextGradientProps, type TextProps, Textarea, type TextareaProps, type ThemeContextValue, type ThemeMode, ThemeProvider, type ThemeProviderProps, ThemeScript, type ThemeScriptProps, ThinkingIndicator, type ThinkingIndicatorMessages, type ThinkingIndicatorProps, Toast, type ToastItem, Toaster, type ToasterProps, Toggle, ToggleGroup, type ToggleProps, type ToneValue, Toolbar, type ToolbarRootProps, Tooltip, Provider$1 as TooltipProvider, TopNav, type TopNavItemProps, type TopNavRootProps, type UndoableToastOptions, addonVariants, alertVariants, avatarGroupVariants, avatarVariants, badgeVariants, bannerVariants, buttonVariants, calloutVariants, cardVariants, chipVariants, cn, containerVariants, defaultMessageStrings, defaultMessages, headingVariants, iconButtonVariants, inputVariants, inputWrapperVariants, labelVariants, linkVariants, logoVariants, progressFillVariants, progressTrackVariants, ratingVariants, safeUrl, sectionVariants, separatorVariants, skeletonVariants, spinnerVariants, startViewTransition, statusPillVariants, tagVariants, textVariants, textareaVariants, toast, toggleVariants, useControllableState, useDisclosure, useIsomorphicLayoutEffect, useLocale, useMediaQuery, useMergedRefs, useNexubMessages, usePointerSheen, useTheme, useToastStore };
1840
+ interface ListTransitionProps extends React.HTMLAttributes<HTMLElement> {
1841
+ /** List element. @default 'div' */
1842
+ as?: React.ElementType;
1843
+ /** Element wrapping each item, e.g. `'li'` inside a `'ul'`. @default 'div' */
1844
+ itemAs?: React.ElementType;
1845
+ /** Animate the items present on first render too. @default false */
1846
+ appear?: boolean;
1847
+ /** Keyed children. Items without a key are rendered but never animated. */
1848
+ children?: React.ReactNode;
1849
+ }
1850
+ /**
1851
+ * ListTransition — animates keyed items in and out of a list.
1852
+ * New items grow in from zero height and fade in; removed items stay in place
1853
+ * while they collapse and fade out, then unmount. Uses CSS keyframes on the
1854
+ * spring tokens (`nx-list-item` in `@nexub/themes/base`); reduced motion keeps
1855
+ * only the fade.
1856
+ *
1857
+ * Space items with padding inside each item, not `gap`, so a collapsing item
1858
+ * takes its spacing with it.
1859
+ *
1860
+ * ```tsx
1861
+ * <ListTransition as="ul" itemAs="li">
1862
+ * {items.map((item) => <Row key={item.id} item={item} />)}
1863
+ * </ListTransition>
1864
+ * ```
1865
+ */
1866
+ declare const ListTransition: React.ForwardRefExoticComponent<ListTransitionProps & React.RefAttributes<HTMLElement>>;
1867
+ interface SkeletonSwapProps extends React.HTMLAttributes<HTMLDivElement> {
1868
+ /** While true the skeleton shows; flipping to false crossfades to the content. */
1869
+ loading: boolean;
1870
+ /** Placeholder shown while loading, usually `Skeleton`s shaped like the content. */
1871
+ skeleton: React.ReactNode;
1872
+ children?: React.ReactNode;
1873
+ }
1874
+ /**
1875
+ * SkeletonSwap — crossfades from a skeleton to the loaded content in place,
1876
+ * instead of popping. Sets `aria-busy` while loading.
1877
+ *
1878
+ * ```tsx
1879
+ * <SkeletonSwap loading={isLoading} skeleton={<Skeleton shape="rect" height={120} />}>
1880
+ * <Card>…</Card>
1881
+ * </SkeletonSwap>
1882
+ * ```
1883
+ */
1884
+ declare const SkeletonSwap: React.ForwardRefExoticComponent<SkeletonSwapProps & React.RefAttributes<HTMLDivElement>>;
1885
+
1886
+ /** True when the user asked the OS for reduced motion. False during SSR. */
1887
+ declare function usePrefersReducedMotion(): boolean;
1888
+
1889
+ export { Accordion, Alert, AlertDialog, type AlertProps, Amount, type AmountProps, AppShell, AspectRatio, type AspectRatioProps, Autocomplete, type AutocompleteOption, type AutocompleteProps, Avatar, AvatarGroup, type AvatarGroupProps, type AvatarProps, Badge, type BadgeProps, Banner, type BannerProps, Box, type BoxProps, Breadcrumb, Button, ButtonGroup, type ButtonGroupProps, type ButtonProps, type ButtonStatus, Callout, type CalloutProps, Card, CardLink, type CardLinkProps, type CardProps, CheckList, CheckListItem, type CheckListItemProps, type CheckListProps, Checkbox, CheckboxCard, type CheckboxCardProps, type CheckboxProps, Chip, type ChipProps, Citation, type CitationMessages, type CitationProps, type CitationSource, Code, type CodeProps, Collapse, type CollapseProps, Collapsible, Combobox, CommandPalette, type CommandPaletteRootProps, Container, type ContainerProps, ContextMenu, CountryBadge, type CountryBadgeProps, DataTable, type DataTableColumn, type DataTableProps, DatePicker, type DatePickerProps, DateRangePicker, type DateRangePickerProps, Dialog, Drawer, type DrawerRootProps, DropdownMenu, EmptyState, ErrorState, type ErrorStateProps, EyebrowChip, type EyebrowChipProps, Fade, type FadeProps, type Feedback, FileUpload, type FileUploadRootProps, FilterChip, type FilterChipProps, Flag, type FlagProps, Flex, type FlexProps, FormError, type FormErrorProps, FormField, type FormFieldContextValue, type FormFieldRootProps, GradientDivider, type GradientDividerProps, Grid, type GridProps, Heading, type HeadingProps, HelperText, type HelperTextProps, HoverCard, IconButton, type IconButtonProps, Input, type InputProps, Kbd, type KbdProps, KeyboardShortcut, type KeyboardShortcutProps, Label, type LabelProps, Link, type LinkProps, ListTransition, type ListTransitionProps, Logo, type LogoProps, MediaCard, type MediaCardProps, type MediaCardRatio, Menubar, MessageActions, type MessageActionsProps, MessageBubble, type MessageBubbleProps, type MessageFrom, type MessageStrings, MoneyInput, type MoneyInputProps, type MotionBaseProps, type MotionDuration, type MotionEasing, NavigationMenu, NavigationRail, type NavigationRailItemProps, type NavigationRailRootProps, NexubProvider, type NexubProviderProps, NumberInput, type NumberInputProps, NumberTicker, type NumberTickerPart, type NumberTickerProps, PageHeader, type PageHeaderProps, Pagination, type PaginationProps, PasswordInput, type PasswordInputProps, Popover, Progress, type ProgressProps, PromptInput, type PromptInputMessages, type PromptInputProps, type PromptInputStatus, RadioCard, RadioCardGroup, type RadioCardGroupProps, type RadioCardProps, RadioGroup, Rating, type RatingProps, Scale, type ScaleProps, ScrollArea, type ScrollAreaProps, SearchInput, type SearchInputProps, Section, type SectionProps, SegmentedControl, type SegmentedControlItemProps, type SegmentedControlProps, Select, Separator, type SeparatorProps, Sheet, Sidebar, type SidebarGroupProps, type SidebarHeaderProps, type SidebarItemProps, type SidebarRootProps, Skeleton, type SkeletonProps, SkeletonSwap, type SkeletonSwapProps, Slide, type SlideDirection, type SlideProps, Slider, type SliderProps, SourceChip, type SourceChipProps, SourceList, type SourceListProps, Spinner, type SpinnerProps, SplitButton, type SplitButtonProps, Stack, type StackProps, StatusPill, type StatusPillProps, StreamingText, type StreamingTextProps, Switch, type SwitchProps, Table, type TableRootProps, Tabs, Tag, type TagProps, Text, TextGradient, type TextGradientProps, type TextProps, Textarea, type TextareaProps, type ThemeContextValue, type ThemeMode, ThemeProvider, type ThemeProviderProps, ThemeScript, type ThemeScriptProps, ThinkingIndicator, type ThinkingIndicatorMessages, type ThinkingIndicatorProps, Toast, type ToastItem, Toaster, type ToasterProps, Toggle, ToggleGroup, type ToggleProps, Toolbar, type ToolbarRootProps, Tooltip, Provider$1 as TooltipProvider, TopNav, type TopNavItemProps, type TopNavRootProps, type UndoableToastOptions, addonVariants, alertVariants, avatarGroupVariants, avatarVariants, badgeVariants, bannerVariants, buttonVariants, calloutVariants, cardVariants, chipVariants, cn, containerVariants, defaultMessageStrings, headingVariants, iconButtonVariants, inputVariants, inputWrapperVariants, labelVariants, linkVariants, logoVariants, progressFillVariants, progressTrackVariants, ratingVariants, safeUrl, sectionVariants, separatorVariants, skeletonVariants, spinnerVariants, startViewTransition, statusPillVariants, tagVariants, textVariants, textareaVariants, toast, toggleVariants, useControllableState, useDisclosure, useIsomorphicLayoutEffect, useLocale, useMediaQuery, useMergedRefs, useNexubMessages, usePointerSheen, usePrefersReducedMotion, useTheme, useToastStore };
package/dist/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  'use client';
2
+ import "./chunk-XYXMPHND.js";
2
3
  import {
3
4
  Root
4
5
  } from "./chunk-ZXLACKEB.js";
5
- import "./chunk-XYXMPHND.js";
6
6
  import {
7
7
  Textarea,
8
8
  textareaVariants
@@ -12,16 +12,19 @@ import {
12
12
  ThemeScript,
13
13
  useTheme
14
14
  } from "./chunk-3XX45SUC.js";
15
- import {
16
- ThinkingIndicator
17
- } from "./chunk-ESMIBOF5.js";
18
15
  import {
19
16
  Toast,
20
17
  Toaster,
21
18
  toast,
22
19
  useToastStore
23
- } from "./chunk-GSA7NBEG.js";
20
+ } from "./chunk-I6ELDWZE.js";
24
21
  import "./chunk-YJU4ZRQZ.js";
22
+ import {
23
+ ThinkingIndicator
24
+ } from "./chunk-D7HMUIA5.js";
25
+ import {
26
+ Toolbar
27
+ } from "./chunk-2ZBJOUJ7.js";
25
28
  import {
26
29
  ToggleGroup
27
30
  } from "./chunk-DYWJ7BIK.js";
@@ -29,12 +32,9 @@ import {
29
32
  Toggle,
30
33
  toggleVariants
31
34
  } from "./chunk-3TMIZQPR.js";
32
- import {
33
- Toolbar
34
- } from "./chunk-2ZBJOUJ7.js";
35
35
  import {
36
36
  TopNav
37
- } from "./chunk-KRHD7VI6.js";
37
+ } from "./chunk-ZVQYAIOA.js";
38
38
  import {
39
39
  StatusPill,
40
40
  statusPillVariants
@@ -69,7 +69,7 @@ import {
69
69
  } from "./chunk-CUOASXI7.js";
70
70
  import {
71
71
  Sidebar
72
- } from "./chunk-ZRBLASQE.js";
72
+ } from "./chunk-MX6NYEOW.js";
73
73
  import {
74
74
  Skeleton,
75
75
  skeletonVariants
@@ -80,7 +80,7 @@ import {
80
80
  import {
81
81
  Spinner,
82
82
  spinnerVariants
83
- } from "./chunk-L4BSKMLK.js";
83
+ } from "./chunk-P37ABUFD.js";
84
84
  import {
85
85
  SplitButton
86
86
  } from "./chunk-DFCHCYNT.js";
@@ -93,20 +93,20 @@ import {
93
93
  } from "./chunk-XTATJMY6.js";
94
94
  import {
95
95
  PromptInput
96
- } from "./chunk-O6J6HXVT.js";
96
+ } from "./chunk-VMMZHSZL.js";
97
97
  import {
98
98
  RadioGroup
99
99
  } from "./chunk-Z3HF6XJ3.js";
100
100
  import {
101
101
  Rating,
102
102
  ratingVariants
103
- } from "./chunk-BIAYWCDE.js";
103
+ } from "./chunk-O2DSTHXA.js";
104
104
  import {
105
105
  ScrollArea
106
106
  } from "./chunk-3LTB6TGN.js";
107
107
  import {
108
108
  SearchInput
109
- } from "./chunk-OTZBGMYH.js";
109
+ } from "./chunk-IPCB5HU7.js";
110
110
  import {
111
111
  Section,
112
112
  sectionVariants
@@ -118,20 +118,20 @@ import "./chunk-6UKNUI46.js";
118
118
  import {
119
119
  useMergedRefs
120
120
  } from "./chunk-MNEXMMLM.js";
121
- import "./chunk-A3O23F2B.js";
122
121
  import {
123
122
  NumberInput
124
- } from "./chunk-ENB7X3W4.js";
123
+ } from "./chunk-7JXJOYM6.js";
124
+ import "./chunk-A3O23F2B.js";
125
125
  import "./chunk-WLRRMT6W.js";
126
126
  import {
127
127
  PageHeader
128
128
  } from "./chunk-UCNA2ICU.js";
129
129
  import {
130
130
  Pagination
131
- } from "./chunk-JVOSMXD5.js";
131
+ } from "./chunk-AKV4GMIY.js";
132
132
  import {
133
133
  PasswordInput
134
- } from "./chunk-UV5O2BMW.js";
134
+ } from "./chunk-TSBBWYDO.js";
135
135
  import {
136
136
  Popover
137
137
  } from "./chunk-NORCPKRD.js";
@@ -154,14 +154,14 @@ import {
154
154
  MessageActions,
155
155
  MessageBubble,
156
156
  defaultMessageStrings
157
- } from "./chunk-WECNLNIA.js";
157
+ } from "./chunk-WASCNEIQ.js";
158
158
  import {
159
159
  Provider,
160
160
  Tooltip
161
161
  } from "./chunk-XQDD76EF.js";
162
162
  import {
163
163
  MoneyInput
164
- } from "./chunk-V6CMWCJH.js";
164
+ } from "./chunk-6FRG6NMM.js";
165
165
  import {
166
166
  useControllableState
167
167
  } from "./chunk-JLUCMNVS.js";
@@ -171,22 +171,26 @@ import {
171
171
  import {
172
172
  Collapse,
173
173
  Fade,
174
+ ListTransition,
174
175
  Scale,
175
- Slide
176
- } from "./chunk-FS4XKWFA.js";
176
+ SkeletonSwap,
177
+ Slide,
178
+ useMediaQuery,
179
+ usePrefersReducedMotion
180
+ } from "./chunk-4GVGS5N4.js";
177
181
  import {
178
182
  NavigationMenu
179
183
  } from "./chunk-BEOHZKPQ.js";
180
184
  import {
181
185
  NavigationRail
182
- } from "./chunk-5GN2GFW3.js";
186
+ } from "./chunk-Q4CEJZY6.js";
187
+ import "./chunk-PICMOOAZ.js";
183
188
  import "./chunk-ZT3NWE5U.js";
184
189
  import "./chunk-CAOLGXA5.js";
185
190
  import {
186
191
  IconButton,
187
192
  iconButtonVariants
188
193
  } from "./chunk-NYORXEPS.js";
189
- import "./chunk-ADO2DB6Q.js";
190
194
  import "./chunk-NZ7UK3G6.js";
191
195
  import {
192
196
  Input,
@@ -208,24 +212,28 @@ import {
208
212
  } from "./chunk-6BGUZQAX.js";
209
213
  import {
210
214
  FilterChip
211
- } from "./chunk-XHLSYHAV.js";
215
+ } from "./chunk-NN7SNECM.js";
216
+ import "./chunk-BV3U3ATL.js";
212
217
  import {
213
218
  Flex
214
219
  } from "./chunk-7MSIOYJZ.js";
215
- import "./chunk-BV3U3ATL.js";
220
+ import "./chunk-ADO2DB6Q.js";
221
+ import {
222
+ GradientDivider
223
+ } from "./chunk-ZC4MZAEX.js";
216
224
  import {
217
225
  FormField
218
- } from "./chunk-GLQOEW57.js";
226
+ } from "./chunk-G4RLUGE3.js";
219
227
  import {
220
- FormError
221
- } from "./chunk-QVTVDL6Y.js";
228
+ HelperText
229
+ } from "./chunk-ZLW7IBXK.js";
222
230
  import {
223
231
  Label,
224
232
  labelVariants
225
233
  } from "./chunk-PGD246WD.js";
226
234
  import {
227
- GradientDivider
228
- } from "./chunk-ZC4MZAEX.js";
235
+ FormError
236
+ } from "./chunk-QVTVDL6Y.js";
229
237
  import {
230
238
  Grid
231
239
  } from "./chunk-6JBQAJJD.js";
@@ -234,20 +242,16 @@ import {
234
242
  Heading,
235
243
  headingVariants
236
244
  } from "./chunk-SKIJVVBU.js";
237
- import "./chunk-PICMOOAZ.js";
238
- import {
239
- HelperText
240
- } from "./chunk-ZLW7IBXK.js";
241
245
  import {
242
246
  DateRangePicker
243
- } from "./chunk-6U5WQERX.js";
247
+ } from "./chunk-KFU2ENV6.js";
244
248
  import {
245
249
  Dialog
246
250
  } from "./chunk-ZGZQZG6S.js";
247
251
  import {
248
252
  Drawer,
249
253
  Sheet
250
- } from "./chunk-UVWQPDOV.js";
254
+ } from "./chunk-6ALDF3XF.js";
251
255
  import "./chunk-HI7GBSW2.js";
252
256
  import {
253
257
  DropdownMenu
@@ -258,27 +262,27 @@ import {
258
262
  import {
259
263
  ErrorState
260
264
  } from "./chunk-SZNSQR2B.js";
265
+ import {
266
+ FileUpload
267
+ } from "./chunk-D6HHYT2S.js";
261
268
  import {
262
269
  EyebrowChip
263
270
  } from "./chunk-322WR6EU.js";
264
- import {
265
- FileUpload
266
- } from "./chunk-OS4NOWEI.js";
267
271
  import {
268
272
  Collapsible
269
273
  } from "./chunk-3LP2CR7F.js";
270
274
  import "./chunk-HY3JWSG4.js";
271
275
  import {
272
276
  CommandPalette
273
- } from "./chunk-IDIS7Z6H.js";
277
+ } from "./chunk-F3DRJSZL.js";
274
278
  import "./chunk-47UGX37F.js";
275
- import {
276
- ContextMenu
277
- } from "./chunk-ZUGZRXME.js";
278
279
  import {
279
280
  Container,
280
281
  containerVariants
281
282
  } from "./chunk-E4JM3HUM.js";
283
+ import {
284
+ ContextMenu
285
+ } from "./chunk-ZUGZRXME.js";
282
286
  import {
283
287
  CountryBadge
284
288
  } from "./chunk-ZCEUVK2R.js";
@@ -287,14 +291,14 @@ import {
287
291
  } from "./chunk-EQNETGTV.js";
288
292
  import {
289
293
  DataTable
290
- } from "./chunk-7BAIEYUW.js";
294
+ } from "./chunk-3FX3FBHE.js";
291
295
  import {
292
296
  Table
293
297
  } from "./chunk-BU5QD2FS.js";
294
298
  import "./chunk-52ZVJPF7.js";
295
299
  import {
296
300
  DatePicker
297
- } from "./chunk-HSM7RXUF.js";
301
+ } from "./chunk-5QZVFW4H.js";
298
302
  import {
299
303
  Callout,
300
304
  calloutVariants
@@ -319,13 +323,13 @@ import "./chunk-K5FKEAAK.js";
319
323
  import {
320
324
  Chip,
321
325
  chipVariants
322
- } from "./chunk-RSBJBQPG.js";
326
+ } from "./chunk-WXE6QRHB.js";
323
327
  import {
324
328
  Citation,
325
329
  SourceChip,
326
330
  SourceList,
327
331
  safeUrl
328
- } from "./chunk-UAQRQNOB.js";
332
+ } from "./chunk-EILMNNTT.js";
329
333
  import {
330
334
  HoverCard
331
335
  } from "./chunk-X3B2MTX6.js";
@@ -336,7 +340,7 @@ import "./chunk-IZ6ZPEZ2.js";
336
340
  import {
337
341
  AvatarGroup,
338
342
  avatarGroupVariants
339
- } from "./chunk-FT2S7N64.js";
343
+ } from "./chunk-BSS7QNC5.js";
340
344
  import {
341
345
  Avatar,
342
346
  avatarVariants
@@ -348,13 +352,13 @@ import {
348
352
  import {
349
353
  Banner,
350
354
  bannerVariants
351
- } from "./chunk-ETWFHIAE.js";
355
+ } from "./chunk-EA4JBLWK.js";
352
356
  import {
353
357
  Box
354
358
  } from "./chunk-M7YB3MSW.js";
355
359
  import {
356
360
  Breadcrumb
357
- } from "./chunk-ZTI4MK3L.js";
361
+ } from "./chunk-5JOKHG4L.js";
358
362
  import "./chunk-P26VJEIW.js";
359
363
  import "./chunk-LVPU7455.js";
360
364
  import {
@@ -366,7 +370,7 @@ import {
366
370
  import {
367
371
  Alert,
368
372
  alertVariants
369
- } from "./chunk-RVWQROFK.js";
373
+ } from "./chunk-TXIJMUD5.js";
370
374
  import {
371
375
  AlertDialog
372
376
  } from "./chunk-TSN6HYVY.js";
@@ -379,20 +383,20 @@ import "./chunk-5W3AOOYS.js";
379
383
  import "./chunk-DEIBF3P7.js";
380
384
  import {
381
385
  Amount
382
- } from "./chunk-PC7YGDNL.js";
386
+ } from "./chunk-ZYR3R36N.js";
383
387
  import {
384
388
  NumberTicker
385
- } from "./chunk-4MEV2WHD.js";
386
- import "./chunk-CIQHFMF6.js";
387
- import {
388
- AspectRatio
389
- } from "./chunk-S2CTBFLN.js";
389
+ } from "./chunk-2BAXCPQF.js";
390
+ import "./chunk-R3SUPKKI.js";
390
391
  import {
391
392
  AppShell
392
393
  } from "./chunk-56FERRWW.js";
394
+ import {
395
+ AspectRatio
396
+ } from "./chunk-S2CTBFLN.js";
393
397
  import {
394
398
  Autocomplete
395
- } from "./chunk-GG5HDX7J.js";
399
+ } from "./chunk-NITVUZ4L.js";
396
400
  import {
397
401
  Combobox
398
402
  } from "./chunk-FJUVYRNT.js";
@@ -401,7 +405,7 @@ import {
401
405
  defaultMessages,
402
406
  useLocale,
403
407
  useNexubMessages
404
- } from "./chunk-3MSIO7KM.js";
408
+ } from "./chunk-VMSWIC3O.js";
405
409
  import {
406
410
  cn
407
411
  } from "./chunk-Q7G5WGYV.js";
@@ -422,21 +426,6 @@ function useDisclosure(initialOpen = false) {
422
426
  const toggle = useCallback(() => setIsOpen((prev) => !prev), []);
423
427
  return { isOpen, open, close, toggle };
424
428
  }
425
-
426
- // src/hooks/useMediaQuery.ts
427
- import { useState as useState2, useEffect } from "react";
428
- function useMediaQuery(query) {
429
- const [matches, setMatches] = useState2(false);
430
- useEffect(() => {
431
- if (typeof window === "undefined") return;
432
- const mql = window.matchMedia(query);
433
- const handler = (e) => setMatches(e.matches);
434
- mql.addEventListener("change", handler);
435
- setMatches(mql.matches);
436
- return () => mql.removeEventListener("change", handler);
437
- }, [query]);
438
- return matches;
439
- }
440
429
  export {
441
430
  Accordion,
442
431
  Alert,
@@ -497,6 +486,7 @@ export {
497
486
  KeyboardShortcut,
498
487
  Label,
499
488
  Link,
489
+ ListTransition,
500
490
  Logo,
501
491
  MediaCard,
502
492
  Menubar,
@@ -528,6 +518,7 @@ export {
528
518
  Sheet,
529
519
  Sidebar,
530
520
  Skeleton,
521
+ SkeletonSwap,
531
522
  Slide,
532
523
  Slider,
533
524
  SourceChip,
@@ -600,6 +591,7 @@ export {
600
591
  useMergedRefs,
601
592
  useNexubMessages,
602
593
  usePointerSheen,
594
+ usePrefersReducedMotion,
603
595
  useTheme,
604
596
  useToastStore
605
597
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nexub/react",
3
- "version": "2.0.0",
3
+ "version": "2.2.0",
4
4
  "description": "React component library for Nexub Design System — 90+ accessible, themeable UI components built on Radix UI primitives.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -68,12 +68,13 @@
68
68
  "date-fns": "^4.4.0",
69
69
  "react-day-picker": "^9.14.0",
70
70
  "tailwind-merge": "^2.6.1",
71
- "@nexub/icons": "2.0.0"
71
+ "@nexub/core": "2.2.0",
72
+ "@nexub/icons": "2.2.0"
72
73
  },
73
74
  "peerDependencies": {
74
75
  "react": ">=18 <20",
75
76
  "react-dom": ">=18 <20",
76
- "@nexub/tokens": "^2.0.0"
77
+ "@nexub/tokens": "^2.2.0"
77
78
  },
78
79
  "devDependencies": {
79
80
  "@playwright/test": "1.64.0",
@@ -98,8 +99,8 @@
98
99
  "vaul": "1.1.2",
99
100
  "vite": "^7.3.7",
100
101
  "vitest": "^5.0.5",
101
- "@nexub/themes": "2.0.0",
102
- "@nexub/tokens": "2.0.0"
102
+ "@nexub/themes": "2.2.0",
103
+ "@nexub/tokens": "2.2.0"
103
104
  },
104
105
  "scripts": {
105
106
  "build": "tsup && node scripts/check-dts.mjs",