@boostdev/design-system-components 1.0.3 → 1.1.1

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 (262) hide show
  1. package/AGENTS.md +51 -10
  2. package/dist/client.cjs +350 -174
  3. package/dist/client.css +751 -647
  4. package/dist/client.d.cts +62 -97
  5. package/dist/client.d.ts +62 -97
  6. package/dist/client.js +377 -211
  7. package/dist/index.cjs +350 -174
  8. package/dist/index.css +751 -647
  9. package/dist/index.d.cts +62 -97
  10. package/dist/index.d.ts +62 -97
  11. package/dist/index.js +377 -211
  12. package/dist/native/index.cjs +991 -0
  13. package/dist/native/index.d.cts +208 -0
  14. package/dist/native/index.d.ts +208 -0
  15. package/dist/native/index.js +968 -0
  16. package/dist/web-components.d.ts +304 -0
  17. package/dist/web-components.js +1978 -0
  18. package/package.json +27 -5
  19. package/src/components/interaction/Button/Button.module.css +11 -8
  20. package/src/components/interaction/Button/Button.native.mdx +72 -0
  21. package/src/components/interaction/Button/Button.native.spec.tsx +35 -0
  22. package/src/components/interaction/Button/Button.native.stories.tsx +42 -0
  23. package/src/components/interaction/Button/Button.native.tsx +95 -0
  24. package/src/components/interaction/Button/Button.stories.tsx +1 -1
  25. package/src/components/interaction/Button/Button.tsx +2 -2
  26. package/src/components/interaction/Command/Command.mdx +16 -0
  27. package/src/components/interaction/Command/Command.module.css +7 -7
  28. package/src/components/interaction/Command/Command.spec.tsx +37 -0
  29. package/src/components/interaction/Command/Command.stories.tsx +1 -1
  30. package/src/components/interaction/Command/Command.tsx +39 -4
  31. package/src/components/interaction/Dialog/Dialog.module.css +10 -13
  32. package/src/components/interaction/Dialog/Dialog.spec.tsx +53 -1
  33. package/src/components/interaction/Dialog/Dialog.stories.tsx +18 -1
  34. package/src/components/interaction/Dialog/Dialog.tsx +52 -18
  35. package/src/components/interaction/Drawer/Drawer.mdx +14 -0
  36. package/src/components/interaction/Drawer/Drawer.module.css +11 -11
  37. package/src/components/interaction/Drawer/Drawer.spec.tsx +48 -1
  38. package/src/components/interaction/Drawer/Drawer.stories.tsx +1 -1
  39. package/src/components/interaction/Drawer/Drawer.tsx +40 -6
  40. package/src/components/interaction/DropdownMenu/DropdownMenu.module.css +6 -6
  41. package/src/components/interaction/DropdownMenu/DropdownMenu.stories.tsx +1 -1
  42. package/src/components/interaction/DropdownMenu/DropdownMenu.tsx +2 -2
  43. package/src/components/interaction/Popover/Popover.mdx +17 -0
  44. package/src/components/interaction/Popover/Popover.module.css +132 -16
  45. package/src/components/interaction/Popover/Popover.spec.tsx +119 -20
  46. package/src/components/interaction/Popover/Popover.stories.tsx +1 -1
  47. package/src/components/interaction/Popover/Popover.tsx +69 -29
  48. package/src/components/interaction/Rating/Rating.stories.tsx +1 -1
  49. package/src/components/interaction/Rating/Rating.tsx +2 -2
  50. package/src/components/interaction/Toast/Toast.module.css +13 -8
  51. package/src/components/interaction/Toast/Toast.spec.tsx +21 -0
  52. package/src/components/interaction/Toast/Toast.stories.tsx +1 -1
  53. package/src/components/interaction/Toast/Toast.tsx +22 -2
  54. package/src/components/interaction/form/Checkbox/Checkbox.mdx +2 -2
  55. package/src/components/interaction/form/Checkbox/Checkbox.module.css +9 -9
  56. package/src/components/interaction/form/Checkbox/Checkbox.native.mdx +74 -0
  57. package/src/components/interaction/form/Checkbox/Checkbox.native.spec.tsx +42 -0
  58. package/src/components/interaction/form/Checkbox/Checkbox.native.stories.tsx +36 -0
  59. package/src/components/interaction/form/Checkbox/Checkbox.native.tsx +80 -0
  60. package/src/components/interaction/form/Checkbox/Checkbox.stories.tsx +1 -1
  61. package/src/components/interaction/form/Checkbox/Checkbox.tsx +2 -2
  62. package/src/components/interaction/form/CheckboxGroup/CheckboxGroup.mdx +44 -0
  63. package/src/components/interaction/form/CheckboxGroup/CheckboxGroup.stories.tsx +1 -1
  64. package/src/components/interaction/form/CheckboxGroup/CheckboxGroup.tsx +2 -2
  65. package/src/components/interaction/form/Combobox/Combobox.mdx +21 -0
  66. package/src/components/interaction/form/Combobox/Combobox.module.css +8 -9
  67. package/src/components/interaction/form/Combobox/Combobox.stories.tsx +1 -1
  68. package/src/components/interaction/form/Combobox/Combobox.tsx +2 -2
  69. package/src/components/interaction/form/FileInput/FileInput.mdx +14 -0
  70. package/src/components/interaction/form/FileInput/FileInput.module.css +5 -5
  71. package/src/components/interaction/form/FileInput/FileInput.stories.tsx +1 -1
  72. package/src/components/interaction/form/FileInput/FileInput.tsx +2 -2
  73. package/src/components/interaction/form/FormInput/FormInput.stories.tsx +1 -1
  74. package/src/components/interaction/form/FormInput/FormInput.tsx +2 -2
  75. package/src/components/interaction/form/NumberInput/NumberInput.mdx +16 -0
  76. package/src/components/interaction/form/NumberInput/NumberInput.module.css +1 -1
  77. package/src/components/interaction/form/NumberInput/NumberInput.stories.tsx +1 -1
  78. package/src/components/interaction/form/NumberInput/NumberInput.tsx +2 -2
  79. package/src/components/interaction/form/Radio/Radio.mdx +3 -3
  80. package/src/components/interaction/form/Radio/Radio.module.css +9 -9
  81. package/src/components/interaction/form/Radio/Radio.native.stories.tsx +46 -0
  82. package/src/components/interaction/form/Radio/Radio.native.tsx +79 -0
  83. package/src/components/interaction/form/Radio/Radio.stories.tsx +1 -1
  84. package/src/components/interaction/form/Radio/Radio.tsx +2 -2
  85. package/src/components/interaction/form/RadioGroup/RadioGroup.mdx +45 -0
  86. package/src/components/interaction/form/RadioGroup/RadioGroup.stories.tsx +1 -1
  87. package/src/components/interaction/form/RadioGroup/RadioGroup.tsx +2 -2
  88. package/src/components/interaction/form/SegmentedControl/SegmentedControl.module.css +5 -6
  89. package/src/components/interaction/form/SegmentedControl/SegmentedControl.stories.tsx +1 -1
  90. package/src/components/interaction/form/SegmentedControl/SegmentedControl.tsx +2 -2
  91. package/src/components/interaction/form/Select/Select.module.css +3 -3
  92. package/src/components/interaction/form/Select/Select.stories.tsx +1 -1
  93. package/src/components/interaction/form/Select/Select.tsx +2 -2
  94. package/src/components/interaction/form/Slider/Slider.mdx +1 -1
  95. package/src/components/interaction/form/Slider/Slider.module.css +10 -10
  96. package/src/components/interaction/form/Slider/Slider.stories.tsx +1 -1
  97. package/src/components/interaction/form/Slider/Slider.tsx +2 -2
  98. package/src/components/interaction/form/Switch/Switch.mdx +4 -4
  99. package/src/components/interaction/form/Switch/Switch.module.css +11 -11
  100. package/src/components/interaction/form/Switch/Switch.native.spec.tsx +60 -0
  101. package/src/components/interaction/form/Switch/Switch.native.stories.tsx +35 -0
  102. package/src/components/interaction/form/Switch/Switch.native.tsx +59 -0
  103. package/src/components/interaction/form/Switch/Switch.stories.tsx +1 -1
  104. package/src/components/interaction/form/Switch/Switch.tsx +2 -2
  105. package/src/components/interaction/form/Textarea/Textarea.mdx +17 -0
  106. package/src/components/interaction/form/Textarea/Textarea.module.css +1 -1
  107. package/src/components/interaction/form/Textarea/Textarea.stories.tsx +1 -1
  108. package/src/components/interaction/form/Textarea/Textarea.tsx +2 -2
  109. package/src/components/interaction/form/atoms/InputContainer.tsx +2 -1
  110. package/src/components/interaction/form/atoms/Label.native.stories.tsx +18 -0
  111. package/src/components/interaction/form/atoms/Label.native.tsx +29 -0
  112. package/src/components/interaction/form/atoms/Label.tsx +5 -3
  113. package/src/components/interaction/form/atoms/Message.native.spec.tsx +30 -0
  114. package/src/components/interaction/form/atoms/Message.native.stories.tsx +22 -0
  115. package/src/components/interaction/form/atoms/Message.native.tsx +34 -0
  116. package/src/components/interaction/form/atoms/Message.tsx +5 -3
  117. package/src/components/layout/ButtonGroup/ButtonGroup.native.stories.tsx +50 -0
  118. package/src/components/layout/ButtonGroup/ButtonGroup.native.tsx +34 -0
  119. package/src/components/layout/ButtonGroup/ButtonGroup.stories.tsx +1 -1
  120. package/src/components/layout/ButtonGroup/ButtonGroup.tsx +2 -2
  121. package/src/components/layout/Card/Card.native.stories.tsx +53 -0
  122. package/src/components/layout/Card/Card.native.tsx +89 -0
  123. package/src/components/layout/Card/Card.stories.tsx +1 -1
  124. package/src/components/layout/Card/Card.tsx +2 -2
  125. package/src/components/layout/IconWrapper/IconWrapper.mdx +2 -2
  126. package/src/components/layout/IconWrapper/IconWrapper.module.css +2 -2
  127. package/src/components/layout/IconWrapper/IconWrapper.native.spec.tsx +39 -0
  128. package/src/components/layout/IconWrapper/IconWrapper.native.stories.tsx +41 -0
  129. package/src/components/layout/IconWrapper/IconWrapper.native.tsx +20 -0
  130. package/src/components/layout/IconWrapper/IconWrapper.stories.tsx +1 -1
  131. package/src/components/layout/IconWrapper/IconWrapper.tsx +2 -2
  132. package/src/components/layout/SectionHeader/SectionHeader.mdx +13 -0
  133. package/src/components/layout/SectionHeader/SectionHeader.native.stories.tsx +38 -0
  134. package/src/components/layout/SectionHeader/SectionHeader.native.tsx +79 -0
  135. package/src/components/layout/SectionHeader/SectionHeader.stories.tsx +1 -1
  136. package/src/components/layout/SectionHeader/SectionHeader.tsx +2 -2
  137. package/src/components/ui/Accordion/Accordion.mdx +14 -0
  138. package/src/components/ui/Accordion/Accordion.module.css +5 -5
  139. package/src/components/ui/Accordion/Accordion.stories.tsx +1 -1
  140. package/src/components/ui/Accordion/Accordion.tsx +2 -2
  141. package/src/components/ui/Alert/Alert.native.mdx +62 -0
  142. package/src/components/ui/Alert/Alert.native.stories.tsx +43 -0
  143. package/src/components/ui/Alert/Alert.native.tsx +94 -0
  144. package/src/components/ui/Alert/Alert.stories.tsx +1 -1
  145. package/src/components/ui/Alert/Alert.tsx +2 -2
  146. package/src/components/ui/Avatar/Avatar.native.mdx +50 -0
  147. package/src/components/ui/Avatar/Avatar.native.spec.tsx +47 -0
  148. package/src/components/ui/Avatar/Avatar.native.stories.tsx +34 -0
  149. package/src/components/ui/Avatar/Avatar.native.tsx +85 -0
  150. package/src/components/ui/Avatar/Avatar.stories.tsx +1 -1
  151. package/src/components/ui/Avatar/Avatar.tsx +2 -2
  152. package/src/components/ui/Badge/Badge.mdx +2 -2
  153. package/src/components/ui/Badge/Badge.native.mdx +54 -0
  154. package/src/components/ui/Badge/Badge.native.stories.tsx +36 -0
  155. package/src/components/ui/Badge/Badge.native.tsx +50 -0
  156. package/src/components/ui/Badge/Badge.stories.tsx +1 -1
  157. package/src/components/ui/Badge/Badge.tsx +2 -2
  158. package/src/components/ui/Breadcrumb/Breadcrumb.stories.tsx +1 -1
  159. package/src/components/ui/Breadcrumb/Breadcrumb.tsx +2 -2
  160. package/src/components/ui/Calendar/Calendar.mdx +16 -0
  161. package/src/components/ui/Calendar/Calendar.module.css +7 -7
  162. package/src/components/ui/Calendar/Calendar.stories.tsx +1 -1
  163. package/src/components/ui/Calendar/Calendar.tsx +2 -2
  164. package/src/components/ui/Carousel/Carousel.module.css +5 -5
  165. package/src/components/ui/Carousel/Carousel.stories.tsx +1 -1
  166. package/src/components/ui/Carousel/Carousel.tsx +2 -2
  167. package/src/components/ui/Collapsible/Collapsible.module.css +4 -4
  168. package/src/components/ui/Collapsible/Collapsible.stories.tsx +1 -1
  169. package/src/components/ui/Collapsible/Collapsible.tsx +2 -2
  170. package/src/components/ui/DescriptionList/DescriptionList.stories.tsx +1 -1
  171. package/src/components/ui/DescriptionList/DescriptionList.tsx +2 -2
  172. package/src/components/ui/Link/Link.mdx +14 -0
  173. package/src/components/ui/Link/Link.module.css +2 -2
  174. package/src/components/ui/Link/Link.stories.tsx +1 -1
  175. package/src/components/ui/Link/Link.tsx +2 -2
  176. package/src/components/ui/Loading/Loading.module.css +7 -7
  177. package/src/components/ui/Loading/Loading.native.spec.tsx +24 -0
  178. package/src/components/ui/Loading/Loading.native.stories.tsx +33 -0
  179. package/src/components/ui/Loading/Loading.native.tsx +29 -0
  180. package/src/components/ui/Loading/Loading.stories.tsx +1 -1
  181. package/src/components/ui/Loading/Loading.tsx +2 -2
  182. package/src/components/ui/NotificationBanner/NotificationBanner.module.css +3 -3
  183. package/src/components/ui/NotificationBanner/NotificationBanner.native.stories.tsx +39 -0
  184. package/src/components/ui/NotificationBanner/NotificationBanner.native.tsx +76 -0
  185. package/src/components/ui/NotificationBanner/NotificationBanner.stories.tsx +1 -1
  186. package/src/components/ui/NotificationBanner/NotificationBanner.tsx +2 -2
  187. package/src/components/ui/Pagination/Pagination.module.css +7 -7
  188. package/src/components/ui/Pagination/Pagination.stories.tsx +1 -1
  189. package/src/components/ui/Pagination/Pagination.tsx +2 -2
  190. package/src/components/ui/Progress/Progress.mdx +1 -1
  191. package/src/components/ui/Progress/Progress.module.css +6 -6
  192. package/src/components/ui/Progress/Progress.native.stories.tsx +34 -0
  193. package/src/components/ui/Progress/Progress.native.tsx +84 -0
  194. package/src/components/ui/Progress/Progress.stories.tsx +1 -1
  195. package/src/components/ui/Progress/Progress.tsx +2 -2
  196. package/src/components/ui/ProgressCircle/ProgressCircle.module.css +1 -1
  197. package/src/components/ui/ProgressCircle/ProgressCircle.stories.tsx +1 -1
  198. package/src/components/ui/ProgressCircle/ProgressCircle.tsx +2 -2
  199. package/src/components/ui/Separator/Separator.mdx +14 -0
  200. package/src/components/ui/Separator/Separator.module.css +3 -3
  201. package/src/components/ui/Separator/Separator.native.stories.tsx +42 -0
  202. package/src/components/ui/Separator/Separator.native.tsx +32 -0
  203. package/src/components/ui/Separator/Separator.stories.tsx +1 -1
  204. package/src/components/ui/Separator/Separator.tsx +2 -2
  205. package/src/components/ui/Skeleton/Skeleton.module.css +1 -1
  206. package/src/components/ui/Skeleton/Skeleton.native.stories.tsx +33 -0
  207. package/src/components/ui/Skeleton/Skeleton.native.tsx +41 -0
  208. package/src/components/ui/Skeleton/Skeleton.stories.tsx +1 -1
  209. package/src/components/ui/Skeleton/Skeleton.tsx +2 -3
  210. package/src/components/ui/SkipLink/SkipLink.stories.tsx +1 -1
  211. package/src/components/ui/SkipLink/SkipLink.tsx +5 -3
  212. package/src/components/ui/Table/Table.mdx +14 -0
  213. package/src/components/ui/Table/Table.module.css +9 -9
  214. package/src/components/ui/Table/Table.stories.tsx +1 -1
  215. package/src/components/ui/Table/Table.tsx +2 -2
  216. package/src/components/ui/Tabs/Tabs.module.css +3 -3
  217. package/src/components/ui/Tabs/Tabs.stories.tsx +1 -1
  218. package/src/components/ui/Tabs/Tabs.tsx +2 -2
  219. package/src/components/ui/Tooltip/Tooltip.mdx +14 -0
  220. package/src/components/ui/Tooltip/Tooltip.module.css +8 -8
  221. package/src/components/ui/Tooltip/Tooltip.stories.tsx +1 -1
  222. package/src/components/ui/Tooltip/Tooltip.tsx +2 -2
  223. package/src/components/ui/Typography/Typography.mdx +13 -0
  224. package/src/components/ui/Typography/Typography.native.mdx +56 -0
  225. package/src/components/ui/Typography/Typography.native.stories.tsx +38 -0
  226. package/src/components/ui/Typography/Typography.native.tsx +65 -0
  227. package/src/components/ui/Typography/Typography.stories.tsx +1 -1
  228. package/src/components/ui/Typography/Typography.tsx +2 -2
  229. package/src/css/bdc.css +8 -0
  230. package/src/index.ts +1 -0
  231. package/src/native/ThemeContext.tsx +28 -0
  232. package/src/native/tokens.ts +13 -0
  233. package/src/native.ts +39 -0
  234. package/src/polyfill-invoker-commands.ts +68 -0
  235. package/src/react-augment.d.ts +32 -0
  236. package/src/stories/DesignSystem/DarkMode.mdx +130 -0
  237. package/src/stories/ReactNative.mdx +121 -0
  238. package/src/types.ts +2 -0
  239. package/src/typings.d.ts +3 -0
  240. package/src/web-components/globals.ts +61 -0
  241. package/src/web-components/index.ts +12 -0
  242. package/src/web-components/interaction/BdsButton.mdx +106 -0
  243. package/src/web-components/interaction/BdsButton.stories.tsx +60 -0
  244. package/src/web-components/interaction/BdsPopover.mdx +120 -0
  245. package/src/web-components/interaction/BdsPopover.stories.tsx +70 -0
  246. package/src/web-components/interaction/BdsToastProvider.mdx +94 -0
  247. package/src/web-components/interaction/BdsToastProvider.stories.tsx +73 -0
  248. package/src/web-components/interaction/bds-button.spec.ts +95 -0
  249. package/src/web-components/interaction/bds-button.ts +293 -0
  250. package/src/web-components/interaction/bds-popover.spec.ts +174 -0
  251. package/src/web-components/interaction/bds-popover.ts +229 -0
  252. package/src/web-components/interaction/bds-toast-provider.spec.ts +122 -0
  253. package/src/web-components/interaction/bds-toast-provider.ts +211 -0
  254. package/src/web-components/test/helpers.ts +22 -0
  255. package/src/web-components/ui/BdsAlert.mdx +90 -0
  256. package/src/web-components/ui/BdsAlert.stories.tsx +60 -0
  257. package/src/web-components/ui/BdsBadge.mdx +74 -0
  258. package/src/web-components/ui/BdsBadge.stories.tsx +37 -0
  259. package/src/web-components/ui/bds-alert.spec.ts +109 -0
  260. package/src/web-components/ui/bds-alert.ts +209 -0
  261. package/src/web-components/ui/bds-badge.spec.ts +51 -0
  262. package/src/web-components/ui/bds-badge.ts +88 -0
package/dist/client.d.cts CHANGED
@@ -2,43 +2,44 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import { ReactNode, HTMLAttributes, ElementType, ComponentPropsWithoutRef, ReactElement, ButtonHTMLAttributes, MouseEventHandler, InputHTMLAttributes, HTMLInputTypeAttribute, SelectHTMLAttributes, TextareaHTMLAttributes, CSSProperties, JSX } from 'react';
3
3
  export { cn } from '@boostdev/design-system-foundation';
4
4
 
5
+ /** Allows consumers to pass a CSS class to the component's root element. */
6
+ type WithClassName = {
7
+ className?: string | undefined;
8
+ };
9
+
5
10
  interface AccordionItem {
6
11
  id: string;
7
12
  title: ReactNode;
8
13
  content: ReactNode;
9
14
  disabled?: boolean;
10
15
  }
11
- interface AccordionProps {
16
+ interface AccordionProps extends WithClassName {
12
17
  items: AccordionItem[];
13
18
  allowMultiple?: boolean;
14
19
  defaultOpen?: string[];
15
- className?: string;
16
20
  }
17
21
  declare function Accordion({ items, allowMultiple, defaultOpen, className, }: Readonly<AccordionProps>): react_jsx_runtime.JSX.Element;
18
22
 
19
- interface AlertProps {
23
+ interface AlertProps extends WithClassName {
20
24
  variant?: 'info' | 'success' | 'warning' | 'error';
21
25
  icon?: ReactNode;
22
26
  title?: string;
23
27
  children: ReactNode;
24
28
  onDismiss?: () => void;
25
- className?: string;
26
29
  }
27
30
  declare function Alert({ variant, icon, title, children, onDismiss, className, }: Readonly<AlertProps>): react_jsx_runtime.JSX.Element;
28
31
 
29
- interface AvatarProps {
32
+ interface AvatarProps extends WithClassName {
30
33
  src?: string;
31
34
  alt?: string;
32
35
  name?: string;
33
36
  size?: 'small' | 'medium' | 'large';
34
- className?: string;
35
37
  }
36
38
  declare function Avatar({ src, alt, name, size, className }: Readonly<AvatarProps>): react_jsx_runtime.JSX.Element;
37
39
 
38
- interface BadgeProps {
40
+ interface BadgeProps extends WithClassName {
39
41
  children: ReactNode;
40
42
  variant?: 'primary' | 'secondary' | 'success' | 'error' | 'warning';
41
- className?: string;
42
43
  }
43
44
  declare function Badge({ children, variant, className }: BadgeProps): react_jsx_runtime.JSX.Element;
44
45
 
@@ -46,13 +47,12 @@ interface BreadcrumbItem {
46
47
  label: string;
47
48
  href?: string;
48
49
  }
49
- interface BreadcrumbProps {
50
+ interface BreadcrumbProps extends WithClassName {
50
51
  items: BreadcrumbItem[];
51
- className?: string;
52
52
  }
53
53
  declare function Breadcrumb({ items, className }: Readonly<BreadcrumbProps>): react_jsx_runtime.JSX.Element;
54
54
 
55
- interface CollapsibleProps extends Omit<HTMLAttributes<HTMLDetailsElement>, 'onToggle'> {
55
+ interface CollapsibleProps extends WithClassName, Omit<HTMLAttributes<HTMLDetailsElement>, 'onToggle'> {
56
56
  /** The trigger label — always visible */
57
57
  summary: ReactNode;
58
58
  /** The content revealed when expanded */
@@ -68,24 +68,21 @@ interface CollapsibleProps extends Omit<HTMLAttributes<HTMLDetailsElement>, 'onT
68
68
  * (native <details name="…"> behaviour).
69
69
  */
70
70
  name?: string;
71
- className?: string;
72
71
  }
73
72
  declare function Collapsible({ summary, children, open, defaultOpen, onToggle, name, className, ...rest }: Readonly<CollapsibleProps>): react_jsx_runtime.JSX.Element;
74
73
 
75
- interface CalendarProps {
74
+ interface CalendarProps extends WithClassName {
76
75
  value?: Date;
77
76
  defaultValue?: Date;
78
77
  min?: Date;
79
78
  max?: Date;
80
79
  onChange?: (date: Date) => void;
81
- className?: string;
82
80
  }
83
81
  declare function Calendar({ value, defaultValue, min, max, onChange, className }: Readonly<CalendarProps>): react_jsx_runtime.JSX.Element;
84
82
 
85
- interface CarouselProps {
83
+ interface CarouselProps extends WithClassName {
86
84
  items: ReactNode[];
87
85
  label: string;
88
- className?: string;
89
86
  }
90
87
  declare function Carousel({ items, label, className }: Readonly<CarouselProps>): react_jsx_runtime.JSX.Element;
91
88
 
@@ -93,83 +90,73 @@ interface DescriptionItem {
93
90
  term: ReactNode;
94
91
  details: ReactNode | ReactNode[];
95
92
  }
96
- interface DescriptionListProps {
93
+ interface DescriptionListProps extends WithClassName {
97
94
  items: DescriptionItem[];
98
95
  layout?: 'stacked' | 'inline';
99
- className?: string;
100
96
  }
101
97
  declare function DescriptionList({ items, layout, className }: Readonly<DescriptionListProps>): react_jsx_runtime.JSX.Element;
102
98
 
103
- type LinkOwnProps<T extends ElementType> = {
99
+ type LinkOwnProps<T extends ElementType> = WithClassName & {
104
100
  as?: T;
105
101
  children: ReactNode;
106
102
  variant?: 'default' | 'subtle' | 'standalone';
107
103
  external?: boolean;
108
104
  externalLabel?: string;
109
- className?: string;
110
105
  };
111
106
  type LinkProps<T extends ElementType = 'a'> = LinkOwnProps<T> & Omit<ComponentPropsWithoutRef<T>, keyof LinkOwnProps<T>>;
112
107
  declare function Link<T extends ElementType = 'a'>({ as, children, variant, external, externalLabel, className, ...props }: LinkProps<T>): react_jsx_runtime.JSX.Element;
113
108
 
114
- interface LoadingProps {
109
+ interface LoadingProps extends WithClassName {
115
110
  size?: 'small' | 'medium' | 'large';
116
- className?: string;
117
111
  }
118
112
  declare function Loading({ size, className }: LoadingProps): react_jsx_runtime.JSX.Element;
119
113
 
120
- interface NotificationBannerProps {
114
+ interface NotificationBannerProps extends WithClassName {
121
115
  variant?: 'info' | 'success' | 'warning' | 'error';
122
116
  children: ReactNode;
123
117
  action?: ReactNode;
124
118
  onDismiss?: () => void;
125
- className?: string;
126
119
  }
127
120
  declare function NotificationBanner({ variant, children, action, onDismiss, className, }: Readonly<NotificationBannerProps>): react_jsx_runtime.JSX.Element;
128
121
 
129
- interface PaginationProps {
122
+ interface PaginationProps extends WithClassName {
130
123
  currentPage: number;
131
124
  totalPages: number;
132
125
  onPageChange: (page: number) => void;
133
- className?: string;
134
126
  }
135
127
  declare function Pagination({ currentPage, totalPages, onPageChange, className, }: Readonly<PaginationProps>): react_jsx_runtime.JSX.Element;
136
128
 
137
- interface ProgressProps {
129
+ interface ProgressProps extends WithClassName {
138
130
  value: number;
139
131
  max?: number;
140
132
  label: string;
141
133
  showLabel?: boolean;
142
134
  size?: 'small' | 'medium' | 'large';
143
- className?: string;
144
135
  }
145
136
  declare function Progress({ value, max, label, showLabel, size, className, }: Readonly<ProgressProps>): react_jsx_runtime.JSX.Element;
146
137
 
147
- interface ProgressCircleProps {
138
+ interface ProgressCircleProps extends WithClassName {
148
139
  value: number;
149
140
  max?: number;
150
141
  label: string;
151
142
  showValue?: boolean;
152
143
  size?: 'small' | 'medium' | 'large';
153
- className?: string;
154
144
  }
155
145
  declare function ProgressCircle({ value, max, label, showValue, size, className, }: Readonly<ProgressCircleProps>): react_jsx_runtime.JSX.Element;
156
146
 
157
- interface SeparatorProps {
147
+ interface SeparatorProps extends WithClassName {
158
148
  orientation?: 'horizontal' | 'vertical';
159
- className?: string;
160
149
  }
161
150
  declare function Separator({ orientation, className }: Readonly<SeparatorProps>): react_jsx_runtime.JSX.Element;
162
151
 
163
- interface SkeletonProps {
164
- className?: string;
165
- }
152
+ type SkeletonProps = WithClassName;
166
153
  declare function Skeleton({ className }: SkeletonProps): react_jsx_runtime.JSX.Element;
167
154
 
168
- interface SkipLinkProps {
155
+ interface SkipLinkProps extends WithClassName {
169
156
  href?: string;
170
157
  children?: string;
171
158
  }
172
- declare function SkipLink({ href, children }: SkipLinkProps): react_jsx_runtime.JSX.Element;
159
+ declare function SkipLink({ href, children, className }: SkipLinkProps): react_jsx_runtime.JSX.Element;
173
160
 
174
161
  interface TableColumn<Row> {
175
162
  key: string;
@@ -177,14 +164,13 @@ interface TableColumn<Row> {
177
164
  sortable?: boolean;
178
165
  render?: (row: Row) => ReactNode;
179
166
  }
180
- interface TableProps<Row extends Record<string, unknown>> {
167
+ interface TableProps<Row extends Record<string, unknown>> extends WithClassName {
181
168
  columns: TableColumn<Row>[];
182
169
  rows: Row[];
183
170
  caption?: string;
184
171
  sortKey?: string;
185
172
  sortDirection?: 'asc' | 'desc';
186
173
  onSort?: (key: string, direction: 'asc' | 'desc') => void;
187
- className?: string;
188
174
  }
189
175
  declare function Table<Row extends Record<string, unknown>>({ columns, rows, caption, sortKey, sortDirection, onSort, className, }: Readonly<TableProps<Row>>): react_jsx_runtime.JSX.Element;
190
176
 
@@ -194,31 +180,28 @@ interface TabItem {
194
180
  content: ReactNode;
195
181
  disabled?: boolean;
196
182
  }
197
- interface TabsProps {
183
+ interface TabsProps extends WithClassName {
198
184
  tabs: TabItem[];
199
185
  defaultTab?: string;
200
- className?: string;
201
186
  }
202
187
  declare function Tabs({ tabs, defaultTab, className }: Readonly<TabsProps>): react_jsx_runtime.JSX.Element;
203
188
 
204
- interface TooltipProps {
189
+ interface TooltipProps extends WithClassName {
205
190
  content: ReactNode;
206
191
  placement?: 'top' | 'bottom' | 'left' | 'right';
207
192
  children: ReactElement;
208
- className?: string;
209
193
  }
210
194
  declare function Tooltip({ content, placement, children, className, }: Readonly<TooltipProps>): react_jsx_runtime.JSX.Element;
211
195
 
212
196
  type TypographyVariant = 'h1' | 'h2' | 'h3' | 'body' | 'body_s';
213
- interface TypographyProps {
197
+ interface TypographyProps extends WithClassName {
214
198
  variant?: TypographyVariant;
215
199
  component?: ElementType;
216
200
  children: ReactNode;
217
- className?: string;
218
201
  }
219
202
  declare function Typography({ variant, component, children, className }: TypographyProps): react_jsx_runtime.JSX.Element;
220
203
 
221
- interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement | HTMLAnchorElement> {
204
+ interface ButtonProps extends WithClassName, ButtonHTMLAttributes<HTMLButtonElement | HTMLAnchorElement> {
222
205
  href?: string;
223
206
  variant?: 'default' | 'ghost';
224
207
  type?: 'button' | 'submit' | 'reset';
@@ -226,7 +209,6 @@ interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement | HTMLAncho
226
209
  iconStart?: ReactNode;
227
210
  iconEnd?: ReactNode;
228
211
  children?: ReactNode;
229
- className?: string;
230
212
  disabled?: boolean;
231
213
  hasPulse?: boolean;
232
214
  onClick?: MouseEventHandler<HTMLElement>;
@@ -245,33 +227,36 @@ interface CommandItem {
245
227
  shortcut?: string;
246
228
  onSelect: () => void;
247
229
  }
248
- interface CommandProps {
230
+ interface CommandProps extends WithClassName {
231
+ id?: string;
249
232
  isOpen: boolean;
233
+ onOpen?: () => void;
250
234
  onClose: () => void;
251
235
  items: CommandItem[];
252
236
  placeholder?: string;
253
- className?: string;
254
237
  }
255
- declare function Command({ isOpen, onClose, items, placeholder, className, }: Readonly<CommandProps>): react_jsx_runtime.JSX.Element;
238
+ declare function Command({ id: idProp, isOpen, onOpen, onClose, items, placeholder, className, }: Readonly<CommandProps>): react_jsx_runtime.JSX.Element;
256
239
 
257
- interface DialogProps {
240
+ interface DialogProps extends WithClassName {
258
241
  children: ReactNode;
259
- className?: string;
242
+ id?: string;
260
243
  isOpen?: boolean;
244
+ onOpen?: () => void;
261
245
  onClose?: () => void;
262
246
  }
263
- declare function Dialog({ children, isOpen, className, onClose }: DialogProps): react_jsx_runtime.JSX.Element;
247
+ declare function Dialog({ children, id: idProp, isOpen, className, onOpen, onClose }: DialogProps): react_jsx_runtime.JSX.Element;
264
248
 
265
- interface DrawerProps {
249
+ interface DrawerProps extends WithClassName {
250
+ id?: string;
266
251
  isOpen: boolean;
252
+ onOpen?: () => void;
267
253
  onClose: () => void;
268
254
  title: ReactNode;
269
255
  children: ReactNode;
270
256
  side?: 'left' | 'right';
271
- className?: string;
272
257
  ariaLabel?: string;
273
258
  }
274
- declare function Drawer({ isOpen, onClose, title, children, side, ariaLabel, className, }: Readonly<DrawerProps>): react_jsx_runtime.JSX.Element;
259
+ declare function Drawer({ id: idProp, isOpen, onOpen, onClose, title, children, side, ariaLabel, className, }: Readonly<DrawerProps>): react_jsx_runtime.JSX.Element;
275
260
 
276
261
  interface DropdownMenuItem {
277
262
  id: string;
@@ -281,27 +266,24 @@ interface DropdownMenuItem {
281
266
  icon?: ReactElement;
282
267
  separator?: boolean;
283
268
  }
284
- interface DropdownMenuProps {
269
+ interface DropdownMenuProps extends WithClassName {
285
270
  trigger: ReactElement;
286
271
  items: DropdownMenuItem[];
287
272
  placement?: 'bottom-start' | 'bottom-end';
288
- className?: string;
289
273
  }
290
274
  declare function DropdownMenu({ trigger, items, placement, className, }: Readonly<DropdownMenuProps>): react_jsx_runtime.JSX.Element;
291
275
 
292
- interface PopoverProps {
276
+ interface PopoverProps extends WithClassName {
293
277
  children: ReactElement;
294
278
  content: ReactNode;
295
279
  placement?: 'top' | 'bottom' | 'left' | 'right';
296
- className?: string;
297
280
  'aria-label'?: string;
298
281
  }
299
282
  declare function Popover({ children, content, placement, className, 'aria-label': ariaLabel, }: Readonly<PopoverProps>): react_jsx_runtime.JSX.Element;
300
283
 
301
- interface RatingProps {
284
+ interface RatingProps extends WithClassName {
302
285
  value: number;
303
286
  max?: number;
304
- className?: string;
305
287
  }
306
288
  declare function Rating({ value, max, className }: RatingProps): react_jsx_runtime.JSX.Element;
307
289
 
@@ -314,23 +296,21 @@ declare function ToastProvider({ children }: {
314
296
  }): react_jsx_runtime.JSX.Element;
315
297
  declare function useToast(): ToastContextType;
316
298
 
317
- interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> {
299
+ interface CheckboxProps extends WithClassName, Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> {
318
300
  label: ReactNode;
319
301
  name: string;
320
302
  error?: string;
321
303
  hint?: string;
322
- className?: string;
323
304
  }
324
305
  declare function Checkbox({ label, name, error, hint, className, ...props }: CheckboxProps): react_jsx_runtime.JSX.Element;
325
306
 
326
- interface CheckboxGroupProps {
307
+ interface CheckboxGroupProps extends WithClassName {
327
308
  legend: string;
328
309
  children: ReactNode;
329
310
  error?: string;
330
311
  hint?: string;
331
312
  required?: boolean;
332
313
  disabled?: boolean;
333
- className?: string;
334
314
  }
335
315
  declare function CheckboxGroup({ legend, children, error, hint, required, disabled, className, }: Readonly<CheckboxGroupProps>): react_jsx_runtime.JSX.Element;
336
316
 
@@ -339,7 +319,7 @@ interface ComboboxOption {
339
319
  label: string;
340
320
  disabled?: boolean;
341
321
  }
342
- interface ComboboxProps {
322
+ interface ComboboxProps extends WithClassName {
343
323
  label: ReactNode;
344
324
  name: string;
345
325
  options: ComboboxOption[];
@@ -349,11 +329,10 @@ interface ComboboxProps {
349
329
  disabled?: boolean;
350
330
  error?: string;
351
331
  hint?: string;
352
- className?: string;
353
332
  }
354
333
  declare function Combobox({ label, name, options, placeholder, value, onChange, disabled, error, hint, className, }: Readonly<ComboboxProps>): react_jsx_runtime.JSX.Element;
355
334
 
356
- interface FileInputProps {
335
+ interface FileInputProps extends WithClassName {
357
336
  label: string;
358
337
  name: string;
359
338
  accept?: string;
@@ -363,22 +342,20 @@ interface FileInputProps {
363
342
  error?: string;
364
343
  hint?: string;
365
344
  onChange?: (files: FileList | null) => void;
366
- className?: string;
367
345
  }
368
346
  declare function FileInput({ label, name, accept, multiple, disabled, required, error, hint, onChange, className, }: Readonly<FileInputProps>): react_jsx_runtime.JSX.Element;
369
347
 
370
- interface FormInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> {
348
+ interface FormInputProps extends WithClassName, Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> {
371
349
  label: ReactNode;
372
350
  name: string;
373
351
  type?: Exclude<HTMLInputTypeAttribute, 'checkbox' | 'radio' | 'file'>;
374
352
  ariaLabel?: string;
375
353
  error?: string;
376
354
  hint?: string;
377
- className?: string;
378
355
  }
379
356
  declare function FormInput({ label, name, ariaLabel, error, hint, className, required, ...props }: FormInputProps): react_jsx_runtime.JSX.Element;
380
357
 
381
- interface NumberInputProps {
358
+ interface NumberInputProps extends WithClassName {
382
359
  label: string;
383
360
  name: string;
384
361
  value?: number;
@@ -390,28 +367,25 @@ interface NumberInputProps {
390
367
  error?: string;
391
368
  hint?: string;
392
369
  onChange?: (value: number) => void;
393
- className?: string;
394
370
  }
395
371
  declare function NumberInput({ label, name, value, defaultValue, min, max, step, disabled, error, hint, onChange, className, }: Readonly<NumberInputProps>): react_jsx_runtime.JSX.Element;
396
372
 
397
- interface RadioProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> {
373
+ interface RadioProps extends WithClassName, Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> {
398
374
  label: ReactNode;
399
375
  name: string;
400
376
  description?: string;
401
377
  error?: string;
402
378
  hint?: string;
403
- className?: string;
404
379
  }
405
380
  declare function Radio({ label, name, description, error, hint, className, ...props }: RadioProps): react_jsx_runtime.JSX.Element;
406
381
 
407
- interface RadioGroupProps {
382
+ interface RadioGroupProps extends WithClassName {
408
383
  legend: string;
409
384
  children: ReactNode;
410
385
  error?: string;
411
386
  hint?: string;
412
387
  required?: boolean;
413
388
  disabled?: boolean;
414
- className?: string;
415
389
  }
416
390
  declare function RadioGroup({ legend, children, error, hint, required, disabled, className, }: Readonly<RadioGroupProps>): react_jsx_runtime.JSX.Element;
417
391
 
@@ -420,7 +394,7 @@ interface SegmentedControlOption {
420
394
  label: ReactNode;
421
395
  disabled?: boolean;
422
396
  }
423
- interface SegmentedControlProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'value' | 'size'> {
397
+ interface SegmentedControlProps extends WithClassName, Omit<InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'value' | 'size'> {
424
398
  name: string;
425
399
  options: SegmentedControlOption[];
426
400
  /** Controlled selected value */
@@ -430,7 +404,6 @@ interface SegmentedControlProps extends Omit<InputHTMLAttributes<HTMLInputElemen
430
404
  onChange?: (value: string) => void;
431
405
  disabled?: boolean;
432
406
  size?: 'small' | 'medium' | 'large';
433
- className?: string;
434
407
  'aria-label'?: string;
435
408
  }
436
409
  declare function SegmentedControl({ name, options, value, defaultValue, onChange, disabled, size, className, 'aria-label': ariaLabel, ...rest }: Readonly<SegmentedControlProps>): react_jsx_runtime.JSX.Element;
@@ -440,18 +413,17 @@ interface SelectOption {
440
413
  label: string;
441
414
  disabled?: boolean;
442
415
  }
443
- interface SelectProps extends Omit<SelectHTMLAttributes<HTMLSelectElement>, 'children'> {
416
+ interface SelectProps extends WithClassName, Omit<SelectHTMLAttributes<HTMLSelectElement>, 'children'> {
444
417
  label: ReactNode;
445
418
  name: string;
446
419
  options: SelectOption[];
447
420
  placeholder?: string;
448
421
  error?: string;
449
422
  hint?: string;
450
- className?: string;
451
423
  }
452
424
  declare function Select({ label, name, options, placeholder, error, hint, className, required, ...props }: Readonly<SelectProps>): react_jsx_runtime.JSX.Element;
453
425
 
454
- interface SliderProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> {
426
+ interface SliderProps extends WithClassName, Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> {
455
427
  label: string;
456
428
  name: string;
457
429
  min?: number;
@@ -459,41 +431,36 @@ interface SliderProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type'
459
431
  showValue?: boolean;
460
432
  error?: string;
461
433
  hint?: string;
462
- className?: string;
463
434
  }
464
435
  declare function Slider({ label, name, min, max, showValue, error, hint, className, onChange, ...props }: Readonly<SliderProps>): react_jsx_runtime.JSX.Element;
465
436
 
466
- interface SwitchProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'size' | 'prefix'> {
437
+ interface SwitchProps extends WithClassName, Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'size' | 'prefix'> {
467
438
  label: string;
468
439
  name: string;
469
440
  size?: 'small' | 'medium' | 'large';
470
441
  error?: string;
471
442
  hint?: string;
472
- className?: string;
473
443
  prefix?: ReactNode;
474
444
  }
475
445
  declare function Switch({ label, name, size, error, hint, className, prefix, ...props }: Readonly<SwitchProps>): react_jsx_runtime.JSX.Element;
476
446
 
477
- interface TextareaProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {
447
+ interface TextareaProps extends WithClassName, TextareaHTMLAttributes<HTMLTextAreaElement> {
478
448
  label: ReactNode;
479
449
  name: string;
480
450
  error?: string;
481
451
  hint?: string;
482
- className?: string;
483
452
  }
484
453
  declare function Textarea({ label, name, error, hint, className, required, ...props }: Readonly<TextareaProps>): react_jsx_runtime.JSX.Element;
485
454
 
486
- interface ButtonGroupProps {
455
+ interface ButtonGroupProps extends WithClassName {
487
456
  children: ReactNode;
488
- className?: string;
489
457
  variant?: 'flow' | 'card' | 'modal' | 'content';
490
458
  'aria-label'?: string;
491
459
  }
492
460
  declare function ButtonGroup({ children, className, variant, 'aria-label': ariaLabel }: ButtonGroupProps): react_jsx_runtime.JSX.Element;
493
461
 
494
- interface CardProps {
462
+ interface CardProps extends WithClassName {
495
463
  children: ReactNode;
496
- className?: string | undefined;
497
464
  variant?: 'default' | 'elevated' | 'outlined';
498
465
  padding?: 'none' | 'small' | 'medium' | 'large';
499
466
  textAlign?: 'start' | 'center' | 'end';
@@ -504,21 +471,19 @@ interface CardProps {
504
471
  declare function Card({ children, className, variant, padding, textAlign, style, onClick, 'aria-label': ariaLabel, }: CardProps): react_jsx_runtime.JSX.Element;
505
472
 
506
473
  type IntrinsicElement = keyof JSX.IntrinsicElements;
507
- type SectionHeaderProps = {
474
+ type SectionHeaderProps = WithClassName & {
508
475
  title: string;
509
476
  subtitle?: string;
510
- className?: string;
511
477
  alignment?: 'start' | 'center' | 'end';
512
478
  size?: 'small' | 'medium' | 'large';
513
479
  titleAs?: IntrinsicElement;
514
480
  };
515
481
  declare function SectionHeader({ title, subtitle, className, alignment, size, titleAs }: Readonly<SectionHeaderProps>): react_jsx_runtime.JSX.Element;
516
482
 
517
- interface IconWrapperProps {
483
+ interface IconWrapperProps extends WithClassName {
518
484
  children: ReactNode;
519
- className?: string;
520
485
  'aria-hidden'?: boolean | 'true' | 'false';
521
486
  }
522
487
  declare function IconWrapper({ children, className, 'aria-hidden': ariaHidden }: IconWrapperProps): react_jsx_runtime.JSX.Element;
523
488
 
524
- export { Accordion, type AccordionItem, Alert, Avatar, Badge, Breadcrumb, type BreadcrumbItem, Button, ButtonGroup, type ButtonGroupProps, type ButtonProps, Calendar, Card, Carousel, Checkbox, CheckboxGroup, type CheckboxGroupProps, Collapsible, type CollapsibleProps, Combobox, type ComboboxOption, Command, type CommandItem, type DescriptionItem, DescriptionList, Dialog, Drawer, DropdownMenu, type DropdownMenuItem, FileInput, FormInput, IconWrapper, type IconWrapperProps, Link, Loading, NotificationBanner, NumberInput, Pagination, Popover, Progress, ProgressCircle, Radio, RadioGroup, type RadioGroupProps, Rating, SectionHeader, SegmentedControl, type SegmentedControlOption, type SegmentedControlProps, Select, type SelectOption, Separator, Skeleton, SkipLink, Slider, Switch, type TabItem, Table, type TableColumn, Tabs, Textarea, ToastProvider, Tooltip, Typography, useToast };
489
+ export { Accordion, type AccordionItem, Alert, Avatar, Badge, Breadcrumb, type BreadcrumbItem, Button, ButtonGroup, type ButtonGroupProps, type ButtonProps, Calendar, Card, Carousel, Checkbox, CheckboxGroup, type CheckboxGroupProps, Collapsible, type CollapsibleProps, Combobox, type ComboboxOption, Command, type CommandItem, type DescriptionItem, DescriptionList, Dialog, Drawer, DropdownMenu, type DropdownMenuItem, FileInput, FormInput, IconWrapper, type IconWrapperProps, Link, Loading, NotificationBanner, NumberInput, Pagination, Popover, Progress, ProgressCircle, Radio, RadioGroup, type RadioGroupProps, Rating, SectionHeader, SegmentedControl, type SegmentedControlOption, type SegmentedControlProps, Select, type SelectOption, Separator, Skeleton, SkipLink, Slider, Switch, type TabItem, Table, type TableColumn, Tabs, Textarea, ToastProvider, Tooltip, Typography, type WithClassName, useToast };