@boostdev/design-system-components 2.7.1 → 2.11.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 (535) hide show
  1. package/AGENTS.md +54 -46
  2. package/README.md +34 -20
  3. package/dist/client.cjs +1317 -779
  4. package/dist/client.css +1029 -812
  5. package/dist/client.d.cts +88 -26
  6. package/dist/client.d.ts +88 -26
  7. package/dist/client.js +1278 -732
  8. package/dist/index.cjs +1317 -779
  9. package/dist/index.css +1029 -812
  10. package/dist/index.d.cts +88 -26
  11. package/dist/index.d.ts +88 -26
  12. package/dist/index.js +1278 -732
  13. package/dist/web-components/chunk-2OLVQUBU.js +193 -0
  14. package/dist/web-components/chunk-3AY2YKCM.js +223 -0
  15. package/dist/web-components/chunk-3WAV6MDN.js +212 -0
  16. package/dist/web-components/{chunk-CZBIVR4V.js → chunk-47AT5KZD.js} +88 -16
  17. package/dist/web-components/chunk-4A2YYTYN.js +93 -0
  18. package/dist/web-components/{chunk-Q4T5BJT6.js → chunk-62NK3ZSC.js} +18 -3
  19. package/dist/web-components/chunk-66M6ETWD.js +77 -0
  20. package/dist/web-components/{chunk-NCPQ7AF3.js → chunk-6G22I2CK.js} +18 -3
  21. package/dist/web-components/{chunk-QDST57JC.js → chunk-7ZOJ7N4E.js} +14 -4
  22. package/dist/web-components/{chunk-5R6IFELV.js → chunk-AIBOHNDU.js} +11 -1
  23. package/dist/web-components/{chunk-ITHLKR7Q.js → chunk-AP4RDUL2.js} +16 -5
  24. package/dist/web-components/{chunk-QWPACK5L.js → chunk-BPYKZVDK.js} +11 -1
  25. package/dist/web-components/{chunk-YLVTEY23.js → chunk-BTCMJQKB.js} +53 -21
  26. package/dist/web-components/chunk-CUKQ2L5B.js +245 -0
  27. package/dist/web-components/chunk-DIZDCL7Z.js +14 -0
  28. package/dist/web-components/{chunk-PC3IOQAH.js → chunk-DV5T43ZC.js} +27 -7
  29. package/dist/web-components/{chunk-2QA62WCQ.js → chunk-EF7IVYTY.js} +10 -0
  30. package/dist/web-components/{chunk-L3XHOMN6.js → chunk-F3ZDNHZZ.js} +26 -1
  31. package/dist/web-components/chunk-FEDABOR5.js +248 -0
  32. package/dist/web-components/{chunk-6I2DBFQ7.js → chunk-HGFCJXOQ.js} +36 -5
  33. package/dist/web-components/{chunk-SOQQ7RVJ.js → chunk-IPGHUCJT.js} +23 -8
  34. package/dist/web-components/chunk-ITD2MV5K.js +392 -0
  35. package/dist/web-components/{chunk-CM3KYZ6Z.js → chunk-JH6LQKLK.js} +78 -6
  36. package/dist/web-components/chunk-JMCXAAFK.js +120 -0
  37. package/dist/web-components/{chunk-KUI55GFB.js → chunk-JUPCZVVW.js} +50 -18
  38. package/dist/web-components/chunk-JV5QT2OU.js +146 -0
  39. package/dist/web-components/{chunk-3GFWLSLS.js → chunk-KA3VPKMY.js} +29 -6
  40. package/dist/web-components/{chunk-CR5PGUHV.js → chunk-KJGRFDFI.js} +26 -11
  41. package/dist/web-components/{chunk-PY62FTRW.js → chunk-KZPRFY5P.js} +68 -33
  42. package/dist/web-components/{chunk-X46KL5BK.js → chunk-LDIPCTRN.js} +18 -1
  43. package/dist/web-components/chunk-M3ECULRH.js +174 -0
  44. package/dist/web-components/chunk-NBN2ENWJ.js +90 -0
  45. package/dist/web-components/chunk-NIN3JO6Q.js +189 -0
  46. package/dist/web-components/{chunk-2FGATTGT.js → chunk-NTQ4TCUT.js} +76 -55
  47. package/dist/web-components/chunk-OY74D4X6.js +302 -0
  48. package/dist/web-components/{chunk-3S42DZ7W.js → chunk-P24JYC5V.js} +7 -0
  49. package/dist/web-components/{chunk-BKIHQYJR.js → chunk-PXPPKCLT.js} +17 -2
  50. package/dist/web-components/{chunk-TQ7IQ4GZ.js → chunk-QEF2IRID.js} +71 -29
  51. package/dist/web-components/chunk-QZAIRJ75.js +111 -0
  52. package/dist/web-components/{chunk-6I3CFC26.js → chunk-RSZ3BWBK.js} +20 -5
  53. package/dist/web-components/chunk-RVF7W653.js +101 -0
  54. package/dist/web-components/chunk-SEO2F5KJ.js +234 -0
  55. package/dist/web-components/{chunk-VMMVWLXL.js → chunk-SFZ6Q4BP.js} +10 -0
  56. package/dist/web-components/{chunk-LY62SAVN.js → chunk-SYNLFKD3.js} +12 -2
  57. package/dist/web-components/chunk-TMWXRHGF.js +192 -0
  58. package/dist/web-components/{chunk-65JXQOBA.js → chunk-U3YZE6R6.js} +51 -7
  59. package/dist/web-components/chunk-UO7ROSHD.js +424 -0
  60. package/dist/web-components/chunk-VANAKB6D.js +152 -0
  61. package/dist/web-components/{chunk-PXZWYO6Z.js → chunk-VED2DFJ6.js} +108 -29
  62. package/dist/web-components/chunk-W6H5ID2U.js +161 -0
  63. package/dist/web-components/{chunk-57TRNCWQ.js → chunk-WFVKU4GX.js} +22 -11
  64. package/dist/web-components/{chunk-OQTRTMAB.js → chunk-WIBAN7KP.js} +10 -0
  65. package/dist/web-components/chunk-XI7KRAH7.js +54 -0
  66. package/dist/web-components/{chunk-F5E3IT7G.js → chunk-XIZWAWMJ.js} +50 -11
  67. package/dist/web-components/{chunk-FXURM6D5.js → chunk-YFAXGRPR.js} +10 -0
  68. package/dist/web-components/globals.js +1 -1
  69. package/dist/web-components/index.d.ts +77 -707
  70. package/dist/web-components/index.js +339 -2066
  71. package/dist/web-components/interaction/bds-accordion-item.js +1 -1
  72. package/dist/web-components/interaction/bds-accordion.js +1 -1
  73. package/dist/web-components/interaction/bds-button.d.ts +10 -2
  74. package/dist/web-components/interaction/bds-button.js +1 -1
  75. package/dist/web-components/interaction/bds-collapsible.d.ts +7 -2
  76. package/dist/web-components/interaction/bds-collapsible.js +1 -1
  77. package/dist/web-components/interaction/bds-dialog.d.ts +11 -3
  78. package/dist/web-components/interaction/bds-dialog.js +1 -1
  79. package/dist/web-components/interaction/bds-drawer.d.ts +7 -1
  80. package/dist/web-components/interaction/bds-drawer.js +1 -1
  81. package/dist/web-components/interaction/bds-dropdown-menu-item.d.ts +51 -0
  82. package/dist/web-components/interaction/bds-dropdown-menu-item.js +7 -0
  83. package/dist/web-components/interaction/bds-dropdown-menu.d.ts +70 -0
  84. package/dist/web-components/interaction/bds-dropdown-menu.js +7 -0
  85. package/dist/web-components/interaction/bds-popover.d.ts +14 -3
  86. package/dist/web-components/interaction/bds-popover.js +1 -1
  87. package/dist/web-components/interaction/bds-skip-link.js +1 -1
  88. package/dist/web-components/interaction/bds-tab-panel.js +1 -1
  89. package/dist/web-components/interaction/bds-tab.js +1 -1
  90. package/dist/web-components/interaction/bds-tabs.d.ts +1 -0
  91. package/dist/web-components/interaction/bds-tabs.js +1 -1
  92. package/dist/web-components/interaction/bds-toast-provider.js +1 -1
  93. package/dist/web-components/interaction/bds-tooltip.d.ts +19 -3
  94. package/dist/web-components/interaction/bds-tooltip.js +1 -1
  95. package/dist/web-components/interaction/form/bds-checkbox-group.d.ts +83 -0
  96. package/dist/web-components/interaction/form/bds-checkbox-group.js +7 -0
  97. package/dist/web-components/interaction/form/bds-checkbox.d.ts +6 -0
  98. package/dist/web-components/interaction/form/bds-checkbox.js +1 -1
  99. package/dist/web-components/interaction/form/bds-combobox.d.ts +18 -0
  100. package/dist/web-components/interaction/form/bds-combobox.js +1 -1
  101. package/dist/web-components/interaction/form/bds-field-group.d.ts +89 -0
  102. package/dist/web-components/interaction/form/bds-field-group.js +7 -0
  103. package/dist/web-components/interaction/form/bds-file-input.d.ts +1 -1
  104. package/dist/web-components/interaction/form/bds-file-input.js +1 -1
  105. package/dist/web-components/interaction/form/bds-form-input.d.ts +92 -0
  106. package/dist/web-components/interaction/form/bds-form-input.js +7 -0
  107. package/dist/web-components/interaction/form/bds-number-input.d.ts +18 -1
  108. package/dist/web-components/interaction/form/bds-number-input.js +1 -1
  109. package/dist/web-components/interaction/form/bds-radio-group.d.ts +81 -0
  110. package/dist/web-components/interaction/form/bds-radio-group.js +7 -0
  111. package/dist/web-components/interaction/form/bds-radio.d.ts +34 -6
  112. package/dist/web-components/interaction/form/bds-radio.js +1 -1
  113. package/dist/web-components/interaction/form/bds-segmented-control.d.ts +4 -4
  114. package/dist/web-components/interaction/form/bds-segmented-control.js +1 -1
  115. package/dist/web-components/interaction/form/bds-select.d.ts +22 -1
  116. package/dist/web-components/interaction/form/bds-select.js +1 -1
  117. package/dist/web-components/interaction/form/bds-slider.d.ts +42 -10
  118. package/dist/web-components/interaction/form/bds-slider.js +1 -1
  119. package/dist/web-components/interaction/form/bds-switch.d.ts +20 -0
  120. package/dist/web-components/interaction/form/bds-switch.js +1 -1
  121. package/dist/web-components/interaction/form/bds-textarea.d.ts +23 -3
  122. package/dist/web-components/interaction/form/bds-textarea.js +1 -1
  123. package/dist/web-components/layout/bds-grid-item.d.ts +63 -0
  124. package/dist/web-components/layout/bds-grid-item.js +7 -0
  125. package/dist/web-components/layout/bds-grid.d.ts +108 -0
  126. package/dist/web-components/layout/bds-grid.js +7 -0
  127. package/dist/web-components/ui/bds-alert.d.ts +16 -2
  128. package/dist/web-components/ui/bds-alert.js +1 -1
  129. package/dist/web-components/ui/bds-avatar.d.ts +2 -1
  130. package/dist/web-components/ui/bds-avatar.js +1 -1
  131. package/dist/web-components/ui/bds-badge.js +1 -1
  132. package/dist/web-components/ui/bds-breadcrumb.d.ts +3 -1
  133. package/dist/web-components/ui/bds-breadcrumb.js +1 -1
  134. package/dist/web-components/ui/bds-button-container.d.ts +52 -0
  135. package/dist/web-components/ui/bds-button-container.js +7 -0
  136. package/dist/web-components/ui/bds-button-group.d.ts +21 -0
  137. package/dist/web-components/ui/bds-button-group.js +8 -0
  138. package/dist/web-components/ui/bds-calendar.d.ts +121 -0
  139. package/dist/web-components/ui/bds-calendar.js +7 -0
  140. package/dist/web-components/ui/bds-card.d.ts +12 -3
  141. package/dist/web-components/ui/bds-card.js +1 -1
  142. package/dist/web-components/ui/bds-carousel.d.ts +98 -0
  143. package/dist/web-components/ui/bds-carousel.js +7 -0
  144. package/dist/web-components/ui/bds-description-list.js +1 -1
  145. package/dist/web-components/ui/bds-icon-wrapper.d.ts +0 -9
  146. package/dist/web-components/ui/bds-icon-wrapper.js +1 -1
  147. package/dist/web-components/ui/bds-link.js +1 -1
  148. package/dist/web-components/ui/bds-loading.js +1 -1
  149. package/dist/web-components/ui/bds-notification-banner.js +1 -1
  150. package/dist/web-components/ui/bds-pagination.d.ts +47 -0
  151. package/dist/web-components/ui/bds-pagination.js +7 -0
  152. package/dist/web-components/ui/bds-progress-circle.d.ts +3 -1
  153. package/dist/web-components/ui/bds-progress-circle.js +1 -1
  154. package/dist/web-components/ui/bds-progress.d.ts +3 -1
  155. package/dist/web-components/ui/bds-progress.js +1 -1
  156. package/dist/web-components/ui/bds-rating.js +1 -1
  157. package/dist/web-components/ui/bds-section-header.d.ts +18 -4
  158. package/dist/web-components/ui/bds-section-header.js +1 -1
  159. package/dist/web-components/ui/bds-separator.js +1 -1
  160. package/dist/web-components/ui/bds-skeleton.js +1 -1
  161. package/dist/web-components/ui/bds-table.d.ts +52 -0
  162. package/dist/web-components/ui/bds-table.js +7 -0
  163. package/dist/web-components/ui/bds-typography.d.ts +1 -0
  164. package/dist/web-components/ui/bds-typography.js +1 -1
  165. package/package.json +60 -3
  166. package/src/components/interaction/Button/Button.module.css +23 -14
  167. package/src/components/interaction/Button/Button.spec.tsx +20 -0
  168. package/src/components/interaction/Button/Button.tsx +2 -2
  169. package/src/components/interaction/Command/Command.mdx +5 -2
  170. package/src/components/interaction/Command/Command.module.css +23 -7
  171. package/src/components/interaction/Command/Command.spec.tsx +35 -0
  172. package/src/components/interaction/Command/Command.tsx +15 -4
  173. package/src/components/interaction/Command/index.ts +1 -1
  174. package/src/components/interaction/Dialog/Dialog.mdx +4 -4
  175. package/src/components/interaction/Dialog/Dialog.module.css +20 -0
  176. package/src/components/interaction/Dialog/Dialog.spec.tsx +20 -0
  177. package/src/components/interaction/Dialog/Dialog.tsx +8 -3
  178. package/src/components/interaction/Dialog/index.ts +1 -0
  179. package/src/components/interaction/Drawer/Drawer.mdx +5 -2
  180. package/src/components/interaction/Drawer/Drawer.module.css +34 -3
  181. package/src/components/interaction/Drawer/Drawer.spec.tsx +67 -1
  182. package/src/components/interaction/Drawer/Drawer.tsx +30 -12
  183. package/src/components/interaction/Drawer/index.ts +1 -0
  184. package/src/components/interaction/DropdownMenu/DropdownMenu.mdx +2 -0
  185. package/src/components/interaction/DropdownMenu/DropdownMenu.spec.tsx +34 -0
  186. package/src/components/interaction/DropdownMenu/DropdownMenu.tsx +15 -5
  187. package/src/components/interaction/DropdownMenu/index.ts +1 -0
  188. package/src/components/interaction/Popover/Popover.mdx +6 -2
  189. package/src/components/interaction/Popover/Popover.module.css +26 -18
  190. package/src/components/interaction/Popover/Popover.spec.tsx +38 -0
  191. package/src/components/interaction/Popover/Popover.tsx +19 -5
  192. package/src/components/interaction/Popover/index.ts +1 -0
  193. package/src/components/interaction/Rating/Rating.mdx +1 -1
  194. package/src/components/interaction/Rating/Rating.module.css +2 -2
  195. package/src/components/interaction/Rating/Rating.tsx +1 -1
  196. package/src/components/interaction/Rating/index.ts +1 -0
  197. package/src/components/interaction/Toast/Toast.mdx +3 -0
  198. package/src/components/interaction/Toast/Toast.module.css +35 -5
  199. package/src/components/interaction/Toast/Toast.spec.tsx +69 -1
  200. package/src/components/interaction/Toast/Toast.tsx +15 -9
  201. package/src/components/interaction/form/Checkbox/Checkbox.mdx +3 -0
  202. package/src/components/interaction/form/Checkbox/Checkbox.module.css +13 -6
  203. package/src/components/interaction/form/Checkbox/Checkbox.spec.tsx +6 -0
  204. package/src/components/interaction/form/Checkbox/Checkbox.tsx +1 -1
  205. package/src/components/interaction/form/CheckboxGroup/CheckboxGroup.mdx +16 -1
  206. package/src/components/interaction/form/CheckboxGroup/CheckboxGroup.module.css +24 -8
  207. package/src/components/interaction/form/CheckboxGroup/CheckboxGroup.spec.tsx +32 -2
  208. package/src/components/interaction/form/CheckboxGroup/CheckboxGroup.tsx +14 -2
  209. package/src/components/interaction/form/Combobox/Combobox.mdx +11 -4
  210. package/src/components/interaction/form/Combobox/Combobox.module.css +6 -6
  211. package/src/components/interaction/form/Combobox/Combobox.spec.tsx +47 -0
  212. package/src/components/interaction/form/Combobox/Combobox.tsx +10 -5
  213. package/src/components/interaction/form/FieldGroup/FieldGroup.mdx +9 -10
  214. package/src/components/interaction/form/FieldGroup/FieldGroup.module.css +57 -23
  215. package/src/components/interaction/form/FieldGroup/FieldGroup.spec.tsx +129 -7
  216. package/src/components/interaction/form/FieldGroup/FieldGroup.tsx +72 -12
  217. package/src/components/interaction/form/FileInput/FileInput.mdx +9 -1
  218. package/src/components/interaction/form/FileInput/FileInput.module.css +8 -8
  219. package/src/components/interaction/form/FileInput/FileInput.spec.tsx +89 -1
  220. package/src/components/interaction/form/FileInput/FileInput.tsx +6 -2
  221. package/src/components/interaction/form/FormInput/FormInput.mdx +9 -5
  222. package/src/components/interaction/form/FormInput/FormInput.module.css +17 -8
  223. package/src/components/interaction/form/FormInput/FormInput.spec.tsx +20 -0
  224. package/src/components/interaction/form/FormInput/FormInput.tsx +7 -2
  225. package/src/components/interaction/form/NumberInput/NumberInput.mdx +5 -1
  226. package/src/components/interaction/form/NumberInput/NumberInput.module.css +6 -6
  227. package/src/components/interaction/form/NumberInput/NumberInput.spec.tsx +51 -0
  228. package/src/components/interaction/form/NumberInput/NumberInput.tsx +36 -8
  229. package/src/components/interaction/form/Radio/Radio.mdx +8 -1
  230. package/src/components/interaction/form/Radio/Radio.module.css +20 -7
  231. package/src/components/interaction/form/Radio/Radio.spec.tsx +15 -0
  232. package/src/components/interaction/form/Radio/Radio.tsx +10 -4
  233. package/src/components/interaction/form/RadioGroup/RadioGroup.mdx +16 -1
  234. package/src/components/interaction/form/RadioGroup/RadioGroup.module.css +24 -8
  235. package/src/components/interaction/form/RadioGroup/RadioGroup.spec.tsx +32 -2
  236. package/src/components/interaction/form/RadioGroup/RadioGroup.tsx +14 -2
  237. package/src/components/interaction/form/SegmentedControl/SegmentedControl.mdx +9 -3
  238. package/src/components/interaction/form/SegmentedControl/SegmentedControl.module.css +25 -12
  239. package/src/components/interaction/form/SegmentedControl/SegmentedControl.spec.tsx +86 -5
  240. package/src/components/interaction/form/SegmentedControl/SegmentedControl.tsx +44 -4
  241. package/src/components/interaction/form/Select/Select.mdx +10 -4
  242. package/src/components/interaction/form/Select/Select.module.css +4 -4
  243. package/src/components/interaction/form/Select/Select.spec.tsx +34 -0
  244. package/src/components/interaction/form/Select/Select.tsx +21 -9
  245. package/src/components/interaction/form/Slider/Slider.mdx +4 -1
  246. package/src/components/interaction/form/Slider/Slider.module.css +32 -8
  247. package/src/components/interaction/form/Slider/Slider.spec.tsx +29 -0
  248. package/src/components/interaction/form/Slider/Slider.tsx +9 -7
  249. package/src/components/interaction/form/Switch/Switch.mdx +2 -2
  250. package/src/components/interaction/form/Switch/Switch.module.css +12 -13
  251. package/src/components/interaction/form/Switch/Switch.spec.tsx +20 -0
  252. package/src/components/interaction/form/Switch/Switch.tsx +2 -1
  253. package/src/components/interaction/form/Textarea/Textarea.mdx +5 -0
  254. package/src/components/interaction/form/Textarea/Textarea.module.css +5 -5
  255. package/src/components/interaction/form/Textarea/Textarea.spec.tsx +13 -0
  256. package/src/components/interaction/form/Textarea/Textarea.tsx +3 -1
  257. package/src/components/interaction/form/atoms/Message.module.css +1 -1
  258. package/src/components/interaction/form/atoms/Message.spec.tsx +29 -0
  259. package/src/components/interaction/form/atoms/Message.tsx +1 -1
  260. package/src/components/layout/ButtonGroup/ButtonGroup.mdx +11 -0
  261. package/src/components/layout/ButtonGroup/ButtonGroup.module.css +1 -5
  262. package/src/components/layout/ButtonGroup/ButtonGroup.stories.tsx +14 -0
  263. package/src/components/layout/Card/Card.mdx +6 -1
  264. package/src/components/layout/Card/Card.module.css +26 -5
  265. package/src/components/layout/Card/Card.spec.tsx +7 -0
  266. package/src/components/layout/Card/Card.tsx +4 -3
  267. package/src/components/layout/Grid/Grid.spec.tsx +44 -0
  268. package/src/components/layout/Grid/Grid.tsx +5 -5
  269. package/src/components/layout/Grid/GridItem.tsx +6 -6
  270. package/src/components/layout/Grid/masonry.ts +31 -5
  271. package/src/components/layout/Grid/useIsomorphicLayoutEffect.ts +11 -0
  272. package/src/components/layout/IconWrapper/IconWrapper.mdx +8 -2
  273. package/src/components/layout/IconWrapper/IconWrapper.module.css +9 -6
  274. package/src/components/layout/SectionHeader/SectionHeader.mdx +4 -1
  275. package/src/components/layout/SectionHeader/SectionHeader.module.css +10 -9
  276. package/src/components/ui/Accordion/Accordion.mdx +4 -1
  277. package/src/components/ui/Accordion/Accordion.module.css +2 -1
  278. package/src/components/ui/Alert/Alert.mdx +21 -4
  279. package/src/components/ui/Alert/Alert.module.css +9 -4
  280. package/src/components/ui/Alert/Alert.spec.tsx +20 -0
  281. package/src/components/ui/Avatar/Avatar.mdx +8 -3
  282. package/src/components/ui/Avatar/Avatar.module.css +13 -8
  283. package/src/components/ui/Badge/Badge.mdx +3 -1
  284. package/src/components/ui/Breadcrumb/Breadcrumb.mdx +3 -0
  285. package/src/components/ui/Breadcrumb/Breadcrumb.module.css +4 -0
  286. package/src/components/ui/Breadcrumb/Breadcrumb.spec.tsx +12 -0
  287. package/src/components/ui/Breadcrumb/Breadcrumb.tsx +11 -3
  288. package/src/components/ui/Calendar/Calendar.mdx +6 -0
  289. package/src/components/ui/Calendar/Calendar.module.css +68 -19
  290. package/src/components/ui/Calendar/Calendar.spec.tsx +139 -24
  291. package/src/components/ui/Calendar/Calendar.stories.tsx +14 -0
  292. package/src/components/ui/Calendar/Calendar.tsx +143 -154
  293. package/src/components/ui/Calendar/CalendarRange.mdx +39 -0
  294. package/src/components/ui/Calendar/CalendarRange.spec.tsx +119 -0
  295. package/src/components/ui/Calendar/CalendarRange.stories.tsx +51 -0
  296. package/src/components/ui/Calendar/CalendarRange.tsx +213 -0
  297. package/src/components/ui/Calendar/MonthGrid.tsx +141 -0
  298. package/src/components/ui/Calendar/calendar-core.spec.ts +176 -0
  299. package/src/components/ui/Calendar/calendar-core.ts +164 -0
  300. package/src/components/ui/Calendar/index.ts +1 -0
  301. package/src/components/ui/Carousel/Carousel.mdx +8 -3
  302. package/src/components/ui/Carousel/Carousel.module.css +7 -5
  303. package/src/components/ui/Carousel/Carousel.spec.tsx +67 -0
  304. package/src/components/ui/Carousel/Carousel.tsx +19 -7
  305. package/src/components/ui/Collapsible/Collapsible.mdx +17 -6
  306. package/src/components/ui/Collapsible/Collapsible.module.css +7 -2
  307. package/src/components/ui/Collapsible/Collapsible.spec.tsx +40 -0
  308. package/src/components/ui/Collapsible/Collapsible.tsx +19 -2
  309. package/src/components/ui/DescriptionList/DescriptionList.mdx +2 -0
  310. package/src/components/ui/Link/Link.mdx +4 -2
  311. package/src/components/ui/Loading/Loading.mdx +6 -3
  312. package/src/components/ui/Loading/Loading.module.css +7 -7
  313. package/src/components/ui/Loading/Loading.spec.tsx +12 -0
  314. package/src/components/ui/Loading/Loading.tsx +8 -3
  315. package/src/components/ui/NotificationBanner/NotificationBanner.mdx +4 -0
  316. package/src/components/ui/NotificationBanner/NotificationBanner.module.css +5 -0
  317. package/src/components/ui/NotificationBanner/NotificationBanner.spec.tsx +20 -0
  318. package/src/components/ui/Pagination/Pagination.mdx +29 -7
  319. package/src/components/ui/Pagination/Pagination.module.css +15 -14
  320. package/src/components/ui/Progress/Progress.mdx +6 -2
  321. package/src/components/ui/Progress/Progress.module.css +1 -1
  322. package/src/components/ui/Progress/Progress.spec.tsx +17 -0
  323. package/src/components/ui/Progress/Progress.tsx +2 -2
  324. package/src/components/ui/ProgressCircle/ProgressCircle.mdx +8 -4
  325. package/src/components/ui/ProgressCircle/ProgressCircle.module.css +2 -2
  326. package/src/components/ui/ProgressCircle/ProgressCircle.spec.tsx +11 -1
  327. package/src/components/ui/ProgressCircle/ProgressCircle.tsx +1 -1
  328. package/src/components/ui/Separator/Separator.mdx +7 -0
  329. package/src/components/ui/Separator/Separator.module.css +1 -0
  330. package/src/components/ui/Skeleton/Skeleton.mdx +17 -0
  331. package/src/components/ui/Skeleton/Skeleton.module.css +12 -5
  332. package/src/components/ui/SkipLink/SkipLink.mdx +19 -0
  333. package/src/components/ui/SkipLink/SkipLink.module.css +8 -7
  334. package/src/components/ui/SkipLink/SkipLink.spec.tsx +28 -0
  335. package/src/components/ui/Table/Table.mdx +14 -0
  336. package/src/components/ui/Table/Table.module.css +13 -8
  337. package/src/components/ui/Table/Table.spec.tsx +56 -0
  338. package/src/components/ui/Table/Table.tsx +44 -6
  339. package/src/components/ui/Tabs/Tabs.mdx +16 -0
  340. package/src/components/ui/Tabs/Tabs.module.css +3 -3
  341. package/src/components/ui/Tabs/Tabs.spec.tsx +20 -0
  342. package/src/components/ui/Tabs/Tabs.tsx +5 -1
  343. package/src/components/ui/Tooltip/Tooltip.mdx +9 -0
  344. package/src/components/ui/Tooltip/Tooltip.module.css +32 -12
  345. package/src/components/ui/Tooltip/Tooltip.spec.tsx +56 -0
  346. package/src/components/ui/Tooltip/Tooltip.tsx +26 -7
  347. package/src/components/ui/Typography/Typography.mdx +7 -0
  348. package/src/components/ui/Typography/Typography.module.css +5 -5
  349. package/src/index.ts +7 -3
  350. package/src/stories/DesignSystem/Borders.mdx +14 -9
  351. package/src/stories/DesignSystem/Colors.mdx +43 -41
  352. package/src/stories/DesignSystem/Overview.mdx +4 -3
  353. package/src/stories/Introduction.mdx +5 -5
  354. package/src/web-components/globals.ts +7 -0
  355. package/src/web-components/index.ts +2 -0
  356. package/src/web-components/interaction/BdsAccordion.mdx +10 -1
  357. package/src/web-components/interaction/BdsButton.mdx +15 -4
  358. package/src/web-components/interaction/BdsButton.stories.tsx +1 -1
  359. package/src/web-components/interaction/BdsCollapsible.mdx +3 -3
  360. package/src/web-components/interaction/BdsDialog.mdx +12 -7
  361. package/src/web-components/interaction/BdsDialog.stories.tsx +2 -2
  362. package/src/web-components/interaction/BdsDrawer.mdx +9 -6
  363. package/src/web-components/interaction/BdsDropdownMenu.mdx +20 -1
  364. package/src/web-components/interaction/BdsPopover.mdx +7 -3
  365. package/src/web-components/interaction/BdsSkipLink.mdx +14 -1
  366. package/src/web-components/interaction/BdsTabs.mdx +18 -1
  367. package/src/web-components/interaction/BdsToastProvider.mdx +21 -3
  368. package/src/web-components/interaction/BdsTooltip.mdx +4 -4
  369. package/src/web-components/interaction/bds-accordion-item.ts +10 -0
  370. package/src/web-components/interaction/bds-accordion.spec.ts +41 -0
  371. package/src/web-components/interaction/bds-accordion.ts +28 -2
  372. package/src/web-components/interaction/bds-button.spec.ts +81 -0
  373. package/src/web-components/interaction/bds-button.ts +60 -13
  374. package/src/web-components/interaction/bds-collapsible.spec.ts +93 -2
  375. package/src/web-components/interaction/bds-collapsible.ts +49 -7
  376. package/src/web-components/interaction/bds-dialog.spec.ts +49 -0
  377. package/src/web-components/interaction/bds-dialog.ts +68 -11
  378. package/src/web-components/interaction/bds-drawer.spec.ts +93 -4
  379. package/src/web-components/interaction/bds-drawer.ts +54 -21
  380. package/src/web-components/interaction/bds-dropdown-menu-item.ts +12 -1
  381. package/src/web-components/interaction/bds-dropdown-menu.spec.ts +63 -0
  382. package/src/web-components/interaction/bds-dropdown-menu.ts +45 -7
  383. package/src/web-components/interaction/bds-popover.spec.ts +80 -6
  384. package/src/web-components/interaction/bds-popover.ts +83 -32
  385. package/src/web-components/interaction/bds-skip-link.spec.ts +18 -0
  386. package/src/web-components/interaction/bds-skip-link.ts +29 -8
  387. package/src/web-components/interaction/bds-tab-panel.ts +10 -0
  388. package/src/web-components/interaction/bds-tab.spec.ts +25 -0
  389. package/src/web-components/interaction/bds-tab.ts +20 -5
  390. package/src/web-components/interaction/bds-tabs.spec.ts +92 -5
  391. package/src/web-components/interaction/bds-tabs.ts +42 -1
  392. package/src/web-components/interaction/bds-toast-provider.spec.ts +43 -0
  393. package/src/web-components/interaction/bds-toast-provider.ts +50 -21
  394. package/src/web-components/interaction/bds-tooltip.spec.ts +71 -0
  395. package/src/web-components/interaction/bds-tooltip.ts +100 -5
  396. package/src/web-components/interaction/form/BdsCheckbox.mdx +20 -1
  397. package/src/web-components/interaction/form/BdsCheckbox.stories.tsx +8 -0
  398. package/src/web-components/interaction/form/BdsCheckboxGroup.mdx +4 -3
  399. package/src/web-components/interaction/form/BdsCombobox.mdx +39 -2
  400. package/src/web-components/interaction/form/BdsCombobox.stories.tsx +31 -0
  401. package/src/web-components/interaction/form/BdsFieldGroup.mdx +8 -3
  402. package/src/web-components/interaction/form/BdsFieldGroup.stories.tsx +1 -1
  403. package/src/web-components/interaction/form/BdsFileInput.mdx +26 -5
  404. package/src/web-components/interaction/form/BdsFormInput.mdx +16 -1
  405. package/src/web-components/interaction/form/BdsNumberInput.mdx +34 -2
  406. package/src/web-components/interaction/form/BdsNumberInput.stories.tsx +27 -3
  407. package/src/web-components/interaction/form/BdsRadio.mdx +39 -12
  408. package/src/web-components/interaction/form/BdsRadio.stories.tsx +26 -0
  409. package/src/web-components/interaction/form/BdsRadioGroup.mdx +9 -4
  410. package/src/web-components/interaction/form/BdsSegmentedControl.mdx +37 -11
  411. package/src/web-components/interaction/form/BdsSelect.mdx +22 -4
  412. package/src/web-components/interaction/form/BdsSelect.stories.tsx +33 -0
  413. package/src/web-components/interaction/form/BdsSlider.mdx +36 -19
  414. package/src/web-components/interaction/form/BdsSlider.stories.tsx +24 -0
  415. package/src/web-components/interaction/form/BdsSwitch.mdx +38 -11
  416. package/src/web-components/interaction/form/BdsSwitch.stories.tsx +16 -0
  417. package/src/web-components/interaction/form/BdsTextarea.mdx +42 -16
  418. package/src/web-components/interaction/form/BdsTextarea.stories.tsx +21 -0
  419. package/src/web-components/interaction/form/bds-checkbox-group.spec.ts +99 -0
  420. package/src/web-components/interaction/form/bds-checkbox-group.ts +95 -9
  421. package/src/web-components/interaction/form/bds-checkbox.spec.ts +55 -0
  422. package/src/web-components/interaction/form/bds-checkbox.ts +30 -5
  423. package/src/web-components/interaction/form/bds-combobox.spec.ts +79 -0
  424. package/src/web-components/interaction/form/bds-combobox.ts +102 -17
  425. package/src/web-components/interaction/form/bds-field-group.spec.ts +158 -0
  426. package/src/web-components/interaction/form/bds-field-group.ts +167 -23
  427. package/src/web-components/interaction/form/bds-file-input.spec.ts +73 -5
  428. package/src/web-components/interaction/form/bds-file-input.ts +71 -34
  429. package/src/web-components/interaction/form/bds-form-input.spec.ts +22 -0
  430. package/src/web-components/interaction/form/bds-form-input.ts +27 -16
  431. package/src/web-components/interaction/form/bds-number-input.spec.ts +49 -0
  432. package/src/web-components/interaction/form/bds-number-input.ts +118 -29
  433. package/src/web-components/interaction/form/bds-radio-group.spec.ts +57 -0
  434. package/src/web-components/interaction/form/bds-radio-group.ts +60 -12
  435. package/src/web-components/interaction/form/bds-radio.spec.ts +123 -0
  436. package/src/web-components/interaction/form/bds-radio.ts +136 -23
  437. package/src/web-components/interaction/form/bds-segmented-control.spec.ts +55 -0
  438. package/src/web-components/interaction/form/bds-segmented-control.ts +81 -59
  439. package/src/web-components/interaction/form/bds-select.spec.ts +57 -0
  440. package/src/web-components/interaction/form/bds-select.ts +96 -8
  441. package/src/web-components/interaction/form/bds-slider.spec.ts +83 -0
  442. package/src/web-components/interaction/form/bds-slider.ts +181 -33
  443. package/src/web-components/interaction/form/bds-switch.spec.ts +68 -0
  444. package/src/web-components/interaction/form/bds-switch.ts +142 -41
  445. package/src/web-components/interaction/form/bds-textarea.spec.ts +71 -0
  446. package/src/web-components/interaction/form/bds-textarea.ts +109 -8
  447. package/src/web-components/layout/BdsGrid.mdx +6 -2
  448. package/src/web-components/layout/BdsGrid.stories.tsx +4 -0
  449. package/src/web-components/layout/bds-grid-item.spec.ts +21 -0
  450. package/src/web-components/layout/bds-grid-item.ts +17 -3
  451. package/src/web-components/layout/bds-grid.spec.ts +98 -0
  452. package/src/web-components/layout/bds-grid.ts +139 -19
  453. package/src/web-components/ui/BdsAlert.mdx +6 -5
  454. package/src/web-components/ui/BdsAlert.stories.tsx +6 -6
  455. package/src/web-components/ui/BdsAvatar.mdx +4 -2
  456. package/src/web-components/ui/BdsBreadcrumb.mdx +3 -2
  457. package/src/web-components/ui/BdsButtonContainer.mdx +64 -0
  458. package/src/web-components/ui/BdsButtonContainer.stories.tsx +84 -0
  459. package/src/web-components/ui/BdsCalendar.mdx +29 -4
  460. package/src/web-components/ui/BdsCalendar.stories.tsx +16 -18
  461. package/src/web-components/ui/BdsCalendarRange.mdx +71 -0
  462. package/src/web-components/ui/BdsCalendarRange.stories.tsx +31 -0
  463. package/src/web-components/ui/BdsCard.mdx +7 -3
  464. package/src/web-components/ui/BdsCard.stories.tsx +17 -1
  465. package/src/web-components/ui/BdsCarousel.mdx +40 -12
  466. package/src/web-components/ui/BdsDescriptionList.mdx +6 -1
  467. package/src/web-components/ui/BdsIconWrapper.mdx +3 -2
  468. package/src/web-components/ui/BdsLink.mdx +14 -2
  469. package/src/web-components/ui/BdsNotificationBanner.mdx +18 -0
  470. package/src/web-components/ui/BdsPagination.mdx +40 -1
  471. package/src/web-components/ui/BdsProgress.mdx +8 -2
  472. package/src/web-components/ui/BdsProgressCircle.mdx +5 -2
  473. package/src/web-components/ui/BdsRating.mdx +7 -0
  474. package/src/web-components/ui/BdsSectionHeader.mdx +22 -3
  475. package/src/web-components/ui/BdsSectionHeader.stories.tsx +15 -13
  476. package/src/web-components/ui/BdsTable.mdx +23 -2
  477. package/src/web-components/ui/BdsTable.stories.tsx +8 -2
  478. package/src/web-components/ui/BdsTypography.mdx +17 -1
  479. package/src/web-components/ui/bds-alert.spec.ts +17 -2
  480. package/src/web-components/ui/bds-alert.ts +31 -5
  481. package/src/web-components/ui/bds-avatar.spec.ts +29 -0
  482. package/src/web-components/ui/bds-avatar.ts +30 -12
  483. package/src/web-components/ui/bds-badge.spec.ts +5 -0
  484. package/src/web-components/ui/bds-badge.ts +11 -1
  485. package/src/web-components/ui/bds-breadcrumb.spec.ts +30 -0
  486. package/src/web-components/ui/bds-breadcrumb.ts +26 -4
  487. package/src/web-components/ui/bds-button-container.spec.ts +39 -0
  488. package/src/web-components/ui/bds-button-container.ts +123 -0
  489. package/src/web-components/ui/bds-button-group.spec.ts +14 -20
  490. package/src/web-components/ui/bds-button-group.ts +13 -64
  491. package/src/web-components/ui/bds-calendar-range.spec.ts +123 -0
  492. package/src/web-components/ui/bds-calendar-range.ts +307 -0
  493. package/src/web-components/ui/bds-calendar.spec.ts +176 -0
  494. package/src/web-components/ui/bds-calendar.ts +186 -344
  495. package/src/web-components/ui/bds-card.spec.ts +32 -0
  496. package/src/web-components/ui/bds-card.ts +34 -9
  497. package/src/web-components/ui/bds-carousel.spec.ts +147 -0
  498. package/src/web-components/ui/bds-carousel.ts +113 -36
  499. package/src/web-components/ui/bds-description-list.spec.ts +15 -0
  500. package/src/web-components/ui/bds-description-list.ts +37 -3
  501. package/src/web-components/ui/bds-icon-wrapper.spec.ts +12 -0
  502. package/src/web-components/ui/bds-icon-wrapper.ts +16 -15
  503. package/src/web-components/ui/bds-link.spec.ts +17 -0
  504. package/src/web-components/ui/bds-link.ts +26 -11
  505. package/src/web-components/ui/bds-loading.ts +11 -1
  506. package/src/web-components/ui/bds-notification-banner.spec.ts +13 -0
  507. package/src/web-components/ui/bds-notification-banner.ts +18 -1
  508. package/src/web-components/ui/bds-pagination.spec.ts +44 -0
  509. package/src/web-components/ui/bds-pagination.ts +39 -19
  510. package/src/web-components/ui/bds-progress-circle.spec.ts +21 -0
  511. package/src/web-components/ui/bds-progress-circle.ts +17 -5
  512. package/src/web-components/ui/bds-progress.spec.ts +21 -0
  513. package/src/web-components/ui/bds-progress.ts +19 -6
  514. package/src/web-components/ui/bds-rating.spec.ts +6 -0
  515. package/src/web-components/ui/bds-rating.ts +12 -2
  516. package/src/web-components/ui/bds-section-header.spec.ts +39 -8
  517. package/src/web-components/ui/bds-section-header.ts +47 -13
  518. package/src/web-components/ui/bds-separator.ts +10 -0
  519. package/src/web-components/ui/bds-skeleton.ts +10 -0
  520. package/src/web-components/ui/bds-table.spec.ts +63 -0
  521. package/src/web-components/ui/bds-table.ts +88 -28
  522. package/src/web-components/ui/bds-typography.spec.ts +47 -0
  523. package/src/web-components/ui/bds-typography.ts +28 -10
  524. package/src/web-components/ui/calendar-styles.ts +94 -0
  525. package/dist/web-components/chunk-5TFWOPLH.js +0 -49
  526. package/dist/web-components/chunk-7FMR53BW.js +0 -127
  527. package/dist/web-components/chunk-AGKJTMJI.js +0 -56
  528. package/dist/web-components/chunk-BQLZ7I4G.js +0 -56
  529. package/dist/web-components/chunk-IYGF6CD5.js +0 -118
  530. package/dist/web-components/chunk-QBB6ZX4R.js +0 -107
  531. package/dist/web-components/chunk-Y3POAKGS.js +0 -133
  532. package/dist/web-components/chunk-Y4MAXTMA.js +0 -80
  533. package/dist/web-components/chunk-Y7V7LM6R.js +0 -98
  534. package/src/web-components/ui/BdsButtonGroup.mdx +0 -69
  535. package/src/web-components/ui/BdsButtonGroup.stories.tsx +0 -66
package/dist/index.d.cts CHANGED
@@ -43,6 +43,10 @@ declare function Badge({ children, variant, className, ...rest }: BadgeProps): r
43
43
 
44
44
  interface BreadcrumbItem {
45
45
  label: string;
46
+ /**
47
+ * Destination URL. Optional even for non-last items: an item without
48
+ * `href` renders as non-interactive text instead of an unusable link.
49
+ */
46
50
  href?: string;
47
51
  }
48
52
  interface BreadcrumbProps extends WithClassName, HTMLAttributes<HTMLElement> {
@@ -59,7 +63,11 @@ interface CollapsibleProps extends WithClassName, Omit<HTMLAttributes<HTMLDetail
59
63
  open?: boolean;
60
64
  /** Uncontrolled initial open state */
61
65
  defaultOpen?: boolean;
62
- /** Called after each toggle with the new open state */
66
+ /**
67
+ * Called on toggle with the new open state. When `open` is controlled,
68
+ * this reports the requested next state instead of applying it — update
69
+ * `open` in response to actually expand or collapse the panel.
70
+ */
63
71
  onToggle?: (open: boolean) => void;
64
72
  /**
65
73
  * Groups multiple Collapsible elements so only one is open at a time
@@ -69,14 +77,50 @@ interface CollapsibleProps extends WithClassName, Omit<HTMLAttributes<HTMLDetail
69
77
  }
70
78
  declare function Collapsible({ summary, children, open, defaultOpen, onToggle, name, className, ...rest }: Readonly<CollapsibleProps>): react_jsx_runtime.JSX.Element;
71
79
 
80
+ type PageBy$1 = 'months' | 'single';
72
81
  interface CalendarProps extends WithClassName, Omit<HTMLAttributes<HTMLDivElement>, 'defaultValue' | 'onChange'> {
73
82
  value?: Date;
74
83
  defaultValue?: Date;
75
84
  min?: Date;
76
85
  max?: Date;
86
+ months?: number;
87
+ pageBy?: PageBy$1;
88
+ firstDayOfWeek?: number;
89
+ locale?: string;
90
+ isDateDisallowed?: (date: Date) => boolean;
91
+ formatWeekday?: (date: Date) => string;
92
+ formatMonth?: (date: Date) => string;
93
+ formatDay?: (date: Date) => string;
94
+ labels?: {
95
+ previousMonth?: string;
96
+ nextMonth?: string;
97
+ };
77
98
  onChange?: (date: Date) => void;
78
99
  }
79
- declare function Calendar({ value, defaultValue, min, max, onChange, className, ...rest }: Readonly<CalendarProps>): react_jsx_runtime.JSX.Element;
100
+ declare function Calendar({ value, defaultValue, min, max, months, pageBy, firstDayOfWeek, locale, isDateDisallowed, formatWeekday, formatMonth, formatDay, labels, onChange, className, ...rest }: Readonly<CalendarProps>): react_jsx_runtime.JSX.Element;
101
+
102
+ type PageBy = 'months' | 'single';
103
+ interface CalendarRangeProps extends WithClassName, Omit<HTMLAttributes<HTMLDivElement>, 'defaultValue' | 'onChange'> {
104
+ value?: [Date, Date];
105
+ defaultValue?: [Date, Date];
106
+ min?: Date;
107
+ max?: Date;
108
+ months?: number;
109
+ pageBy?: PageBy;
110
+ firstDayOfWeek?: number;
111
+ locale?: string;
112
+ isDateDisallowed?: (date: Date) => boolean;
113
+ formatWeekday?: (date: Date) => string;
114
+ formatMonth?: (date: Date) => string;
115
+ formatDay?: (date: Date) => string;
116
+ labels?: {
117
+ previousMonth?: string;
118
+ nextMonth?: string;
119
+ };
120
+ onChange?: (range: [Date, Date]) => void;
121
+ onRangeStart?: (date: Date) => void;
122
+ }
123
+ declare function CalendarRange({ value, defaultValue, min, max, months, pageBy, firstDayOfWeek, locale, isDateDisallowed, formatWeekday, formatMonth, formatDay, labels, onChange, onRangeStart, className, ...rest }: Readonly<CalendarRangeProps>): react_jsx_runtime.JSX.Element;
80
124
 
81
125
  interface CarouselProps extends WithClassName, HTMLAttributes<HTMLElement> {
82
126
  items: ReactNode[];
@@ -107,7 +151,7 @@ declare function Link<T extends ElementType = 'a'>({ as, children, variant, exte
107
151
  interface LoadingProps extends WithClassName, HTMLAttributes<HTMLDivElement> {
108
152
  size?: 'small' | 'medium' | 'large';
109
153
  }
110
- declare function Loading({ size, className, ...rest }: LoadingProps): react_jsx_runtime.JSX.Element;
154
+ declare function Loading({ size, className, 'aria-label': ariaLabel, ...rest }: LoadingProps): react_jsx_runtime.JSX.Element;
111
155
 
112
156
  interface NotificationBannerProps extends WithClassName, HTMLAttributes<HTMLDivElement> {
113
157
  variant?: 'info' | 'success' | 'warning' | 'error';
@@ -158,17 +202,28 @@ interface TableColumn<Row> {
158
202
  key: string;
159
203
  header: ReactNode;
160
204
  sortable?: boolean;
205
+ /**
206
+ * Accessible label for the sort button, used instead of stringifying `header`.
207
+ * Required for a reliable accessible name when `header` is not plain text
208
+ * (e.g. an icon or custom ReactNode) — otherwise the button falls back to
209
+ * its visible text content.
210
+ */
211
+ sortLabel?: string;
161
212
  render?: (row: Row) => ReactNode;
162
213
  }
163
- interface TableProps<Row extends Record<string, unknown>> extends WithClassName {
214
+ interface TableProps<Row extends Record<string, unknown>> extends WithClassName, HTMLAttributes<HTMLDivElement> {
164
215
  columns: TableColumn<Row>[];
165
216
  rows: Row[];
166
217
  caption?: string;
167
218
  sortKey?: string;
168
219
  sortDirection?: 'asc' | 'desc';
169
220
  onSort?: (key: string, direction: 'asc' | 'desc') => void;
221
+ /**
222
+ * Derives a stable React key per row. Defaults to the row index when omitted.
223
+ */
224
+ rowKey?: (row: Row, index: number) => string;
170
225
  }
171
- declare function Table<Row extends Record<string, unknown>>({ columns, rows, caption, sortKey, sortDirection, onSort, className, }: Readonly<TableProps<Row>>): react_jsx_runtime.JSX.Element;
226
+ declare function Table<Row extends Record<string, unknown>>({ columns, rows, caption, sortKey, sortDirection, onSort, rowKey, className, ...rest }: Readonly<TableProps<Row>>): react_jsx_runtime.JSX.Element;
172
227
 
173
228
  interface TabItem {
174
229
  id: string;
@@ -305,7 +360,7 @@ interface RatingProps extends WithClassName, HTMLAttributes<HTMLDivElement> {
305
360
  }
306
361
  declare function Rating({ value, max, className, ...rest }: RatingProps): react_jsx_runtime.JSX.Element;
307
362
 
308
- type ToastVariant = 'success' | 'error' | 'info';
363
+ type ToastVariant = 'success' | 'error' | 'info' | 'warning';
309
364
  interface ToastContextType {
310
365
  showToast: (message: string, variant: ToastVariant) => void;
311
366
  }
@@ -352,9 +407,8 @@ declare function Combobox({ label, name, options, placeholder, value, onChange,
352
407
  * Layout variants for FieldGroup.
353
408
  *
354
409
  * - `horizontal` (default) — fields flow into a row, each claiming at least
355
- * `--fieldGroup_min-field-width`. When the container's inline-size is too
356
- * narrow to fit the row, a CSS container query collapses the layout to a
357
- * single column.
410
+ * `--fieldGroup_min-field-width`. When the FieldGroup's own inline-size is
411
+ * too narrow to fit the row, the layout collapses to a single column.
358
412
  * - `vertical` — fields always stack one per row.
359
413
  */
360
414
  type FieldGroupVariant = 'horizontal' | 'vertical';
@@ -369,8 +423,8 @@ interface FieldGroupProps extends WithClassName, FieldsetHTMLAttributes<HTMLFiel
369
423
  }
370
424
  /**
371
425
  * `FieldGroup` semantically groups related form fields under a single
372
- * `<fieldset>` and lays them out either horizontally (with container-query
373
- * fallback to vertical) or vertically.
426
+ * `<fieldset>` and lays them out either horizontally (collapsing to a
427
+ * single column when the FieldGroup itself is too narrow) or vertically.
374
428
  */
375
429
  declare function FieldGroup({ variant, legend, children, className, style, ...rest }: Readonly<FieldGroupProps>): react_jsx_runtime.JSX.Element;
376
430
 
@@ -391,11 +445,15 @@ interface FormInputProps extends WithClassName, Omit<InputHTMLAttributes<HTMLInp
391
445
  label: ReactNode;
392
446
  name: string;
393
447
  type?: Exclude<HTMLInputTypeAttribute, 'checkbox' | 'radio' | 'file'>;
448
+ /**
449
+ * @deprecated Use the native `aria-label` attribute instead. Kept working for backwards
450
+ * compatibility; will be removed in a later major.
451
+ */
394
452
  ariaLabel?: string;
395
453
  error?: string;
396
454
  hint?: string;
397
455
  }
398
- declare function FormInput({ label, name, ariaLabel, error, hint, className, required, ...props }: FormInputProps): react_jsx_runtime.JSX.Element;
456
+ declare function FormInput({ label, name, ariaLabel, error, hint, className, required, 'aria-label': nativeAriaLabel, ...props }: FormInputProps): react_jsx_runtime.JSX.Element;
399
457
 
400
458
  interface NumberInputProps extends WithClassName, Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
401
459
  label: string;
@@ -409,8 +467,12 @@ interface NumberInputProps extends WithClassName, Omit<HTMLAttributes<HTMLDivEle
409
467
  error?: string;
410
468
  hint?: string;
411
469
  onChange?: (value: number) => void;
470
+ /** Accessible label for the decrement (−) stepper button. Defaults to `'Decrease'`. */
471
+ decreaseLabel?: string;
472
+ /** Accessible label for the increment (+) stepper button. Defaults to `'Increase'`. */
473
+ increaseLabel?: string;
412
474
  }
413
- declare function NumberInput({ label, name, value, defaultValue, min, max, step, disabled, error, hint, onChange, className, ...rest }: Readonly<NumberInputProps>): react_jsx_runtime.JSX.Element;
475
+ declare function NumberInput({ label, name, value, defaultValue, min, max, step, disabled, error, hint, onChange, className, decreaseLabel, increaseLabel, ...rest }: Readonly<NumberInputProps>): react_jsx_runtime.JSX.Element;
414
476
 
415
477
  interface RadioProps extends WithClassName, Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> {
416
478
  label: ReactNode;
@@ -419,7 +481,7 @@ interface RadioProps extends WithClassName, Omit<InputHTMLAttributes<HTMLInputEl
419
481
  error?: string;
420
482
  hint?: string;
421
483
  }
422
- declare function Radio({ label, name, description, error, hint, className, ...props }: RadioProps): react_jsx_runtime.JSX.Element;
484
+ declare function Radio({ label, name, description, error, hint, className, id: consumerId, ...props }: RadioProps): react_jsx_runtime.JSX.Element;
423
485
 
424
486
  interface RadioGroupProps extends WithClassName, FieldsetHTMLAttributes<HTMLFieldSetElement> {
425
487
  legend: string;
@@ -456,7 +518,7 @@ interface SelectProps extends WithClassName, Omit<SelectHTMLAttributes<HTMLSelec
456
518
  error?: string;
457
519
  hint?: string;
458
520
  }
459
- declare function Select({ label, name, options, placeholder, error, hint, className, required, ...props }: Readonly<SelectProps>): react_jsx_runtime.JSX.Element;
521
+ declare function Select({ label, name, options, placeholder, error, hint, className, required, id, value, defaultValue, ...rest }: Readonly<SelectProps>): react_jsx_runtime.JSX.Element;
460
522
 
461
523
  interface SliderProps extends WithClassName, Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> {
462
524
  label: string;
@@ -485,7 +547,7 @@ interface TextareaProps extends WithClassName, TextareaHTMLAttributes<HTMLTextAr
485
547
  error?: string;
486
548
  hint?: string;
487
549
  }
488
- declare function Textarea({ label, name, error, hint, className, required, ...props }: Readonly<TextareaProps>): react_jsx_runtime.JSX.Element;
550
+ declare function Textarea({ label, name, error, hint, className, required, id: idProp, ...props }: Readonly<TextareaProps>): react_jsx_runtime.JSX.Element;
489
551
 
490
552
  interface ButtonContainerProps extends WithClassName, HTMLAttributes<HTMLDivElement> {
491
553
  variant?: 'flow' | 'card' | 'modal' | 'content';
@@ -500,13 +562,13 @@ declare const ButtonGroup: typeof ButtonContainer;
500
562
  */
501
563
  type ButtonGroupProps = ButtonContainerProps;
502
564
 
503
- type CardOwnProps = WithClassName & {
565
+ type CardOwnProps<C extends ElementType> = WithClassName & {
504
566
  variant?: 'default' | 'elevated' | 'outlined';
505
567
  padding?: 'none' | 'small' | 'medium' | 'large' | 'extra-large';
506
568
  textAlign?: 'start' | 'center' | 'end';
507
- as?: ElementType;
569
+ as?: C;
508
570
  };
509
- type CardProps<C extends ElementType = 'div'> = CardOwnProps & Omit<ComponentPropsWithoutRef<C>, keyof CardOwnProps>;
571
+ type CardProps<C extends ElementType = 'div'> = CardOwnProps<C> & Omit<ComponentPropsWithoutRef<C>, keyof CardOwnProps<C>>;
510
572
  declare function Card<C extends ElementType = 'div'>({ children, className, variant, padding, textAlign, as, onClick, ...rest }: CardProps<C>): react_jsx_runtime.JSX.Element;
511
573
 
512
574
  type GridItemSpanValue = 'full' | 'three-quarters' | 'two-thirds' | 'half' | 'one-third' | 'one-quarter' | 'auto' | number;
@@ -519,18 +581,18 @@ declare const GridItemSpan: {
519
581
  readonly oneQuarter: "one-quarter";
520
582
  readonly auto: "auto";
521
583
  };
522
- type GridItemOwnProps = WithClassName & {
584
+ type GridItemOwnProps<C extends ElementType> = WithClassName & {
523
585
  columnSpan?: GridItemSpanValue;
524
586
  rowSpan?: number;
525
587
  startColumn?: number;
526
588
  endColumn?: number;
527
- as?: ElementType;
589
+ as?: C;
528
590
  };
529
- type GridItemProps<C extends ElementType = 'div'> = GridItemOwnProps & Omit<ComponentPropsWithoutRef<C>, keyof GridItemOwnProps>;
591
+ type GridItemProps<C extends ElementType = 'div'> = GridItemOwnProps<C> & Omit<ComponentPropsWithoutRef<C>, keyof GridItemOwnProps<C>>;
530
592
  declare function GridItem<C extends ElementType = 'div'>({ children, className, columnSpan, rowSpan, startColumn, endColumn, as, style, ...rest }: GridItemProps<C>): react_jsx_runtime.JSX.Element;
531
593
 
532
594
  type GridVariant = 'main' | 'page' | 'funnel' | 'custom';
533
- type GridOwnProps = WithClassName & {
595
+ type GridOwnProps<C extends ElementType> = WithClassName & {
534
596
  variant?: GridVariant;
535
597
  columns?: number;
536
598
  isCentered?: boolean;
@@ -564,9 +626,9 @@ type GridOwnProps = WithClassName & {
564
626
  * you've confirmed the auto-tuner is wrong for your case.
565
627
  */
566
628
  masonryRowUnitPx?: number;
567
- as?: ElementType;
629
+ as?: C;
568
630
  };
569
- type GridProps<C extends ElementType = 'div'> = GridOwnProps & Omit<ComponentPropsWithoutRef<C>, keyof GridOwnProps>;
631
+ type GridProps<C extends ElementType = 'div'> = GridOwnProps<C> & Omit<ComponentPropsWithoutRef<C>, keyof GridOwnProps<C>>;
570
632
  declare function Grid<C extends ElementType = 'div'>({ children, className, variant, columns, isCentered, isMasonry, autoSpanMedia, masonryPreferredColumnSpan, masonryRowUnitPx, as, style, ...rest }: GridProps<C>): react_jsx_runtime.JSX.Element;
571
633
 
572
634
  type IntrinsicElement = keyof JSX.IntrinsicElements;
@@ -584,4 +646,4 @@ interface IconWrapperProps extends WithClassName, HTMLAttributes<HTMLDivElement>
584
646
  }
585
647
  declare function IconWrapper({ children, className, ...rest }: IconWrapperProps): react_jsx_runtime.JSX.Element;
586
648
 
587
- export { Accordion, type AccordionItem, Alert, Avatar, Badge, Breadcrumb, type BreadcrumbItem, Button, ButtonContainer, type ButtonContainerProps, 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, FieldGroup, type FieldGroupProps, type FieldGroupVariant, FileInput, FormInput, Grid, GridItem, GridItemSpan, type GridItemSpanValue, type GridVariant, IconWrapper, type IconWrapperProps, Link, Loading, NotificationBanner, NumberInput, Pagination, Popover, Progress, ProgressCircle, Radio, RadioGroup, type RadioGroupProps, Rating, SectionHeader, SegmentedControl, type SegmentedControlProps, Select, type SelectOption, Separator, Skeleton, SkipLink, Slider, Switch, type TabItem, Table, type TableColumn, Tabs, Textarea, ToastProvider, Tooltip, Typography, type WithClassName, useToast };
649
+ export { Accordion, type AccordionItem, Alert, Avatar, Badge, Breadcrumb, type BreadcrumbItem, Button, ButtonContainer, type ButtonContainerProps, ButtonGroup, type ButtonGroupProps, type ButtonProps, Calendar, CalendarRange, Card, Carousel, Checkbox, CheckboxGroup, type CheckboxGroupProps, Collapsible, type CollapsibleProps, Combobox, type ComboboxOption, Command, type CommandItem, type CommandProps, type DescriptionItem, DescriptionList, Dialog, type DialogProps, Drawer, type DrawerProps, DropdownMenu, type DropdownMenuItem, type DropdownMenuProps, FieldGroup, type FieldGroupProps, type FieldGroupVariant, FileInput, FormInput, Grid, GridItem, GridItemSpan, type GridItemSpanValue, type GridVariant, IconWrapper, type IconWrapperProps, Link, Loading, NotificationBanner, NumberInput, Pagination, Popover, type PopoverProps, Progress, ProgressCircle, Radio, RadioGroup, type RadioGroupProps, Rating, type RatingProps, SectionHeader, SegmentedControl, type SegmentedControlProps, Select, type SelectOption, Separator, Skeleton, SkipLink, Slider, Switch, type TabItem, Table, type TableColumn, Tabs, Textarea, ToastProvider, Tooltip, Typography, type WithClassName, useToast };
package/dist/index.d.ts CHANGED
@@ -43,6 +43,10 @@ declare function Badge({ children, variant, className, ...rest }: BadgeProps): r
43
43
 
44
44
  interface BreadcrumbItem {
45
45
  label: string;
46
+ /**
47
+ * Destination URL. Optional even for non-last items: an item without
48
+ * `href` renders as non-interactive text instead of an unusable link.
49
+ */
46
50
  href?: string;
47
51
  }
48
52
  interface BreadcrumbProps extends WithClassName, HTMLAttributes<HTMLElement> {
@@ -59,7 +63,11 @@ interface CollapsibleProps extends WithClassName, Omit<HTMLAttributes<HTMLDetail
59
63
  open?: boolean;
60
64
  /** Uncontrolled initial open state */
61
65
  defaultOpen?: boolean;
62
- /** Called after each toggle with the new open state */
66
+ /**
67
+ * Called on toggle with the new open state. When `open` is controlled,
68
+ * this reports the requested next state instead of applying it — update
69
+ * `open` in response to actually expand or collapse the panel.
70
+ */
63
71
  onToggle?: (open: boolean) => void;
64
72
  /**
65
73
  * Groups multiple Collapsible elements so only one is open at a time
@@ -69,14 +77,50 @@ interface CollapsibleProps extends WithClassName, Omit<HTMLAttributes<HTMLDetail
69
77
  }
70
78
  declare function Collapsible({ summary, children, open, defaultOpen, onToggle, name, className, ...rest }: Readonly<CollapsibleProps>): react_jsx_runtime.JSX.Element;
71
79
 
80
+ type PageBy$1 = 'months' | 'single';
72
81
  interface CalendarProps extends WithClassName, Omit<HTMLAttributes<HTMLDivElement>, 'defaultValue' | 'onChange'> {
73
82
  value?: Date;
74
83
  defaultValue?: Date;
75
84
  min?: Date;
76
85
  max?: Date;
86
+ months?: number;
87
+ pageBy?: PageBy$1;
88
+ firstDayOfWeek?: number;
89
+ locale?: string;
90
+ isDateDisallowed?: (date: Date) => boolean;
91
+ formatWeekday?: (date: Date) => string;
92
+ formatMonth?: (date: Date) => string;
93
+ formatDay?: (date: Date) => string;
94
+ labels?: {
95
+ previousMonth?: string;
96
+ nextMonth?: string;
97
+ };
77
98
  onChange?: (date: Date) => void;
78
99
  }
79
- declare function Calendar({ value, defaultValue, min, max, onChange, className, ...rest }: Readonly<CalendarProps>): react_jsx_runtime.JSX.Element;
100
+ declare function Calendar({ value, defaultValue, min, max, months, pageBy, firstDayOfWeek, locale, isDateDisallowed, formatWeekday, formatMonth, formatDay, labels, onChange, className, ...rest }: Readonly<CalendarProps>): react_jsx_runtime.JSX.Element;
101
+
102
+ type PageBy = 'months' | 'single';
103
+ interface CalendarRangeProps extends WithClassName, Omit<HTMLAttributes<HTMLDivElement>, 'defaultValue' | 'onChange'> {
104
+ value?: [Date, Date];
105
+ defaultValue?: [Date, Date];
106
+ min?: Date;
107
+ max?: Date;
108
+ months?: number;
109
+ pageBy?: PageBy;
110
+ firstDayOfWeek?: number;
111
+ locale?: string;
112
+ isDateDisallowed?: (date: Date) => boolean;
113
+ formatWeekday?: (date: Date) => string;
114
+ formatMonth?: (date: Date) => string;
115
+ formatDay?: (date: Date) => string;
116
+ labels?: {
117
+ previousMonth?: string;
118
+ nextMonth?: string;
119
+ };
120
+ onChange?: (range: [Date, Date]) => void;
121
+ onRangeStart?: (date: Date) => void;
122
+ }
123
+ declare function CalendarRange({ value, defaultValue, min, max, months, pageBy, firstDayOfWeek, locale, isDateDisallowed, formatWeekday, formatMonth, formatDay, labels, onChange, onRangeStart, className, ...rest }: Readonly<CalendarRangeProps>): react_jsx_runtime.JSX.Element;
80
124
 
81
125
  interface CarouselProps extends WithClassName, HTMLAttributes<HTMLElement> {
82
126
  items: ReactNode[];
@@ -107,7 +151,7 @@ declare function Link<T extends ElementType = 'a'>({ as, children, variant, exte
107
151
  interface LoadingProps extends WithClassName, HTMLAttributes<HTMLDivElement> {
108
152
  size?: 'small' | 'medium' | 'large';
109
153
  }
110
- declare function Loading({ size, className, ...rest }: LoadingProps): react_jsx_runtime.JSX.Element;
154
+ declare function Loading({ size, className, 'aria-label': ariaLabel, ...rest }: LoadingProps): react_jsx_runtime.JSX.Element;
111
155
 
112
156
  interface NotificationBannerProps extends WithClassName, HTMLAttributes<HTMLDivElement> {
113
157
  variant?: 'info' | 'success' | 'warning' | 'error';
@@ -158,17 +202,28 @@ interface TableColumn<Row> {
158
202
  key: string;
159
203
  header: ReactNode;
160
204
  sortable?: boolean;
205
+ /**
206
+ * Accessible label for the sort button, used instead of stringifying `header`.
207
+ * Required for a reliable accessible name when `header` is not plain text
208
+ * (e.g. an icon or custom ReactNode) — otherwise the button falls back to
209
+ * its visible text content.
210
+ */
211
+ sortLabel?: string;
161
212
  render?: (row: Row) => ReactNode;
162
213
  }
163
- interface TableProps<Row extends Record<string, unknown>> extends WithClassName {
214
+ interface TableProps<Row extends Record<string, unknown>> extends WithClassName, HTMLAttributes<HTMLDivElement> {
164
215
  columns: TableColumn<Row>[];
165
216
  rows: Row[];
166
217
  caption?: string;
167
218
  sortKey?: string;
168
219
  sortDirection?: 'asc' | 'desc';
169
220
  onSort?: (key: string, direction: 'asc' | 'desc') => void;
221
+ /**
222
+ * Derives a stable React key per row. Defaults to the row index when omitted.
223
+ */
224
+ rowKey?: (row: Row, index: number) => string;
170
225
  }
171
- declare function Table<Row extends Record<string, unknown>>({ columns, rows, caption, sortKey, sortDirection, onSort, className, }: Readonly<TableProps<Row>>): react_jsx_runtime.JSX.Element;
226
+ declare function Table<Row extends Record<string, unknown>>({ columns, rows, caption, sortKey, sortDirection, onSort, rowKey, className, ...rest }: Readonly<TableProps<Row>>): react_jsx_runtime.JSX.Element;
172
227
 
173
228
  interface TabItem {
174
229
  id: string;
@@ -305,7 +360,7 @@ interface RatingProps extends WithClassName, HTMLAttributes<HTMLDivElement> {
305
360
  }
306
361
  declare function Rating({ value, max, className, ...rest }: RatingProps): react_jsx_runtime.JSX.Element;
307
362
 
308
- type ToastVariant = 'success' | 'error' | 'info';
363
+ type ToastVariant = 'success' | 'error' | 'info' | 'warning';
309
364
  interface ToastContextType {
310
365
  showToast: (message: string, variant: ToastVariant) => void;
311
366
  }
@@ -352,9 +407,8 @@ declare function Combobox({ label, name, options, placeholder, value, onChange,
352
407
  * Layout variants for FieldGroup.
353
408
  *
354
409
  * - `horizontal` (default) — fields flow into a row, each claiming at least
355
- * `--fieldGroup_min-field-width`. When the container's inline-size is too
356
- * narrow to fit the row, a CSS container query collapses the layout to a
357
- * single column.
410
+ * `--fieldGroup_min-field-width`. When the FieldGroup's own inline-size is
411
+ * too narrow to fit the row, the layout collapses to a single column.
358
412
  * - `vertical` — fields always stack one per row.
359
413
  */
360
414
  type FieldGroupVariant = 'horizontal' | 'vertical';
@@ -369,8 +423,8 @@ interface FieldGroupProps extends WithClassName, FieldsetHTMLAttributes<HTMLFiel
369
423
  }
370
424
  /**
371
425
  * `FieldGroup` semantically groups related form fields under a single
372
- * `<fieldset>` and lays them out either horizontally (with container-query
373
- * fallback to vertical) or vertically.
426
+ * `<fieldset>` and lays them out either horizontally (collapsing to a
427
+ * single column when the FieldGroup itself is too narrow) or vertically.
374
428
  */
375
429
  declare function FieldGroup({ variant, legend, children, className, style, ...rest }: Readonly<FieldGroupProps>): react_jsx_runtime.JSX.Element;
376
430
 
@@ -391,11 +445,15 @@ interface FormInputProps extends WithClassName, Omit<InputHTMLAttributes<HTMLInp
391
445
  label: ReactNode;
392
446
  name: string;
393
447
  type?: Exclude<HTMLInputTypeAttribute, 'checkbox' | 'radio' | 'file'>;
448
+ /**
449
+ * @deprecated Use the native `aria-label` attribute instead. Kept working for backwards
450
+ * compatibility; will be removed in a later major.
451
+ */
394
452
  ariaLabel?: string;
395
453
  error?: string;
396
454
  hint?: string;
397
455
  }
398
- declare function FormInput({ label, name, ariaLabel, error, hint, className, required, ...props }: FormInputProps): react_jsx_runtime.JSX.Element;
456
+ declare function FormInput({ label, name, ariaLabel, error, hint, className, required, 'aria-label': nativeAriaLabel, ...props }: FormInputProps): react_jsx_runtime.JSX.Element;
399
457
 
400
458
  interface NumberInputProps extends WithClassName, Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
401
459
  label: string;
@@ -409,8 +467,12 @@ interface NumberInputProps extends WithClassName, Omit<HTMLAttributes<HTMLDivEle
409
467
  error?: string;
410
468
  hint?: string;
411
469
  onChange?: (value: number) => void;
470
+ /** Accessible label for the decrement (−) stepper button. Defaults to `'Decrease'`. */
471
+ decreaseLabel?: string;
472
+ /** Accessible label for the increment (+) stepper button. Defaults to `'Increase'`. */
473
+ increaseLabel?: string;
412
474
  }
413
- declare function NumberInput({ label, name, value, defaultValue, min, max, step, disabled, error, hint, onChange, className, ...rest }: Readonly<NumberInputProps>): react_jsx_runtime.JSX.Element;
475
+ declare function NumberInput({ label, name, value, defaultValue, min, max, step, disabled, error, hint, onChange, className, decreaseLabel, increaseLabel, ...rest }: Readonly<NumberInputProps>): react_jsx_runtime.JSX.Element;
414
476
 
415
477
  interface RadioProps extends WithClassName, Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> {
416
478
  label: ReactNode;
@@ -419,7 +481,7 @@ interface RadioProps extends WithClassName, Omit<InputHTMLAttributes<HTMLInputEl
419
481
  error?: string;
420
482
  hint?: string;
421
483
  }
422
- declare function Radio({ label, name, description, error, hint, className, ...props }: RadioProps): react_jsx_runtime.JSX.Element;
484
+ declare function Radio({ label, name, description, error, hint, className, id: consumerId, ...props }: RadioProps): react_jsx_runtime.JSX.Element;
423
485
 
424
486
  interface RadioGroupProps extends WithClassName, FieldsetHTMLAttributes<HTMLFieldSetElement> {
425
487
  legend: string;
@@ -456,7 +518,7 @@ interface SelectProps extends WithClassName, Omit<SelectHTMLAttributes<HTMLSelec
456
518
  error?: string;
457
519
  hint?: string;
458
520
  }
459
- declare function Select({ label, name, options, placeholder, error, hint, className, required, ...props }: Readonly<SelectProps>): react_jsx_runtime.JSX.Element;
521
+ declare function Select({ label, name, options, placeholder, error, hint, className, required, id, value, defaultValue, ...rest }: Readonly<SelectProps>): react_jsx_runtime.JSX.Element;
460
522
 
461
523
  interface SliderProps extends WithClassName, Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> {
462
524
  label: string;
@@ -485,7 +547,7 @@ interface TextareaProps extends WithClassName, TextareaHTMLAttributes<HTMLTextAr
485
547
  error?: string;
486
548
  hint?: string;
487
549
  }
488
- declare function Textarea({ label, name, error, hint, className, required, ...props }: Readonly<TextareaProps>): react_jsx_runtime.JSX.Element;
550
+ declare function Textarea({ label, name, error, hint, className, required, id: idProp, ...props }: Readonly<TextareaProps>): react_jsx_runtime.JSX.Element;
489
551
 
490
552
  interface ButtonContainerProps extends WithClassName, HTMLAttributes<HTMLDivElement> {
491
553
  variant?: 'flow' | 'card' | 'modal' | 'content';
@@ -500,13 +562,13 @@ declare const ButtonGroup: typeof ButtonContainer;
500
562
  */
501
563
  type ButtonGroupProps = ButtonContainerProps;
502
564
 
503
- type CardOwnProps = WithClassName & {
565
+ type CardOwnProps<C extends ElementType> = WithClassName & {
504
566
  variant?: 'default' | 'elevated' | 'outlined';
505
567
  padding?: 'none' | 'small' | 'medium' | 'large' | 'extra-large';
506
568
  textAlign?: 'start' | 'center' | 'end';
507
- as?: ElementType;
569
+ as?: C;
508
570
  };
509
- type CardProps<C extends ElementType = 'div'> = CardOwnProps & Omit<ComponentPropsWithoutRef<C>, keyof CardOwnProps>;
571
+ type CardProps<C extends ElementType = 'div'> = CardOwnProps<C> & Omit<ComponentPropsWithoutRef<C>, keyof CardOwnProps<C>>;
510
572
  declare function Card<C extends ElementType = 'div'>({ children, className, variant, padding, textAlign, as, onClick, ...rest }: CardProps<C>): react_jsx_runtime.JSX.Element;
511
573
 
512
574
  type GridItemSpanValue = 'full' | 'three-quarters' | 'two-thirds' | 'half' | 'one-third' | 'one-quarter' | 'auto' | number;
@@ -519,18 +581,18 @@ declare const GridItemSpan: {
519
581
  readonly oneQuarter: "one-quarter";
520
582
  readonly auto: "auto";
521
583
  };
522
- type GridItemOwnProps = WithClassName & {
584
+ type GridItemOwnProps<C extends ElementType> = WithClassName & {
523
585
  columnSpan?: GridItemSpanValue;
524
586
  rowSpan?: number;
525
587
  startColumn?: number;
526
588
  endColumn?: number;
527
- as?: ElementType;
589
+ as?: C;
528
590
  };
529
- type GridItemProps<C extends ElementType = 'div'> = GridItemOwnProps & Omit<ComponentPropsWithoutRef<C>, keyof GridItemOwnProps>;
591
+ type GridItemProps<C extends ElementType = 'div'> = GridItemOwnProps<C> & Omit<ComponentPropsWithoutRef<C>, keyof GridItemOwnProps<C>>;
530
592
  declare function GridItem<C extends ElementType = 'div'>({ children, className, columnSpan, rowSpan, startColumn, endColumn, as, style, ...rest }: GridItemProps<C>): react_jsx_runtime.JSX.Element;
531
593
 
532
594
  type GridVariant = 'main' | 'page' | 'funnel' | 'custom';
533
- type GridOwnProps = WithClassName & {
595
+ type GridOwnProps<C extends ElementType> = WithClassName & {
534
596
  variant?: GridVariant;
535
597
  columns?: number;
536
598
  isCentered?: boolean;
@@ -564,9 +626,9 @@ type GridOwnProps = WithClassName & {
564
626
  * you've confirmed the auto-tuner is wrong for your case.
565
627
  */
566
628
  masonryRowUnitPx?: number;
567
- as?: ElementType;
629
+ as?: C;
568
630
  };
569
- type GridProps<C extends ElementType = 'div'> = GridOwnProps & Omit<ComponentPropsWithoutRef<C>, keyof GridOwnProps>;
631
+ type GridProps<C extends ElementType = 'div'> = GridOwnProps<C> & Omit<ComponentPropsWithoutRef<C>, keyof GridOwnProps<C>>;
570
632
  declare function Grid<C extends ElementType = 'div'>({ children, className, variant, columns, isCentered, isMasonry, autoSpanMedia, masonryPreferredColumnSpan, masonryRowUnitPx, as, style, ...rest }: GridProps<C>): react_jsx_runtime.JSX.Element;
571
633
 
572
634
  type IntrinsicElement = keyof JSX.IntrinsicElements;
@@ -584,4 +646,4 @@ interface IconWrapperProps extends WithClassName, HTMLAttributes<HTMLDivElement>
584
646
  }
585
647
  declare function IconWrapper({ children, className, ...rest }: IconWrapperProps): react_jsx_runtime.JSX.Element;
586
648
 
587
- export { Accordion, type AccordionItem, Alert, Avatar, Badge, Breadcrumb, type BreadcrumbItem, Button, ButtonContainer, type ButtonContainerProps, 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, FieldGroup, type FieldGroupProps, type FieldGroupVariant, FileInput, FormInput, Grid, GridItem, GridItemSpan, type GridItemSpanValue, type GridVariant, IconWrapper, type IconWrapperProps, Link, Loading, NotificationBanner, NumberInput, Pagination, Popover, Progress, ProgressCircle, Radio, RadioGroup, type RadioGroupProps, Rating, SectionHeader, SegmentedControl, type SegmentedControlProps, Select, type SelectOption, Separator, Skeleton, SkipLink, Slider, Switch, type TabItem, Table, type TableColumn, Tabs, Textarea, ToastProvider, Tooltip, Typography, type WithClassName, useToast };
649
+ export { Accordion, type AccordionItem, Alert, Avatar, Badge, Breadcrumb, type BreadcrumbItem, Button, ButtonContainer, type ButtonContainerProps, ButtonGroup, type ButtonGroupProps, type ButtonProps, Calendar, CalendarRange, Card, Carousel, Checkbox, CheckboxGroup, type CheckboxGroupProps, Collapsible, type CollapsibleProps, Combobox, type ComboboxOption, Command, type CommandItem, type CommandProps, type DescriptionItem, DescriptionList, Dialog, type DialogProps, Drawer, type DrawerProps, DropdownMenu, type DropdownMenuItem, type DropdownMenuProps, FieldGroup, type FieldGroupProps, type FieldGroupVariant, FileInput, FormInput, Grid, GridItem, GridItemSpan, type GridItemSpanValue, type GridVariant, IconWrapper, type IconWrapperProps, Link, Loading, NotificationBanner, NumberInput, Pagination, Popover, type PopoverProps, Progress, ProgressCircle, Radio, RadioGroup, type RadioGroupProps, Rating, type RatingProps, SectionHeader, SegmentedControl, type SegmentedControlProps, Select, type SelectOption, Separator, Skeleton, SkipLink, Slider, Switch, type TabItem, Table, type TableColumn, Tabs, Textarea, ToastProvider, Tooltip, Typography, type WithClassName, useToast };