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