@boostdev/design-system-components 2.8.0 → 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 (534) 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-OF6FFGOT.js → chunk-3AY2YKCM.js} +77 -21
  15. package/dist/web-components/chunk-3WAV6MDN.js +212 -0
  16. package/dist/web-components/{chunk-UUKSDCYS.js → chunk-47AT5KZD.js} +87 -15
  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-QLT6MTZF.js → chunk-AIBOHNDU.js} +10 -0
  23. package/dist/web-components/{chunk-X3NQMBAQ.js → chunk-AP4RDUL2.js} +14 -3
  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-ARMKC4BQ.js → chunk-JH6LQKLK.js} +77 -5
  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-FSZRP43R.js → chunk-WFVKU4GX.js} +21 -10
  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-ORC56MDY.js → chunk-XIZWAWMJ.js} +45 -6
  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 +55 -8
  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 +101 -16
  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 +135 -22
  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 +95 -7
  441. package/src/web-components/interaction/form/bds-slider.spec.ts +83 -0
  442. package/src/web-components/interaction/form/bds-slider.ts +154 -26
  443. package/src/web-components/interaction/form/bds-switch.spec.ts +68 -0
  444. package/src/web-components/interaction/form/bds-switch.ts +87 -20
  445. package/src/web-components/interaction/form/bds-textarea.spec.ts +71 -0
  446. package/src/web-components/interaction/form/bds-textarea.ts +108 -7
  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 +29 -11
  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 +109 -32
  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 +15 -14
  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 +10 -0
  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 +17 -4
  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-7YURXHTS.js +0 -147
  526. package/dist/web-components/chunk-A3RLT3AS.js +0 -49
  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-DZOEPVFT.js +0 -107
  530. package/dist/web-components/chunk-JYYRJS2D.js +0 -118
  531. package/dist/web-components/chunk-Y4MAXTMA.js +0 -80
  532. package/dist/web-components/chunk-Y7V7LM6R.js +0 -98
  533. package/src/web-components/ui/BdsButtonGroup.mdx +0 -69
  534. package/src/web-components/ui/BdsButtonGroup.stories.tsx +0 -66
@@ -38,637 +38,91 @@ export { BdsIconWrapper } from './ui/bds-icon-wrapper.js';
38
38
  export { BdsDescriptionList } from './ui/bds-description-list.js';
39
39
  export { BdsBreadcrumb } from './ui/bds-breadcrumb.js';
40
40
  export { BdsLink } from './ui/bds-link.js';
41
+ export { BdsGrid } from './layout/bds-grid.js';
42
+ export { BdsGridItem } from './layout/bds-grid-item.js';
43
+ export { BdsButtonContainer } from './ui/bds-button-container.js';
44
+ export { BdsButtonGroup } from './ui/bds-button-group.js';
45
+ export { BdsTable } from './ui/bds-table.js';
46
+ export { BdsPagination } from './ui/bds-pagination.js';
47
+ export { BdsCheckboxGroup } from './interaction/form/bds-checkbox-group.js';
48
+ export { BdsRadioGroup } from './interaction/form/bds-radio-group.js';
49
+ export { BdsFieldGroup, FieldGroupVariant as BdsFieldGroupVariant } from './interaction/form/bds-field-group.js';
50
+ export { BdsFormInput } from './interaction/form/bds-form-input.js';
51
+ export { BdsCarousel } from './ui/bds-carousel.js';
52
+ export { BdsCalendar } from './ui/bds-calendar.js';
41
53
  import * as lit from 'lit';
42
54
  import { LitElement } from 'lit';
55
+ export { BdsDropdownMenu } from './interaction/bds-dropdown-menu.js';
56
+ export { BdsDropdownMenuItem } from './interaction/bds-dropdown-menu-item.js';
43
57
 
44
- type GridVariant = 'main' | 'page' | 'funnel' | 'custom';
45
58
  /**
46
- * `<bds-grid>` — framework-agnostic Grid layout custom element.
59
+ * `<bds-calendar-range>` — form-associated range date picker.
47
60
  *
48
- * Attributes:
49
- * variant — "main" (default) | "page" | "funnel" | "custom"
50
- * columns — number; column count when variant="custom"
51
- * is-centered — boolean; centers the grid and caps width via --bds-container_max-width
52
- * is-masonry — boolean; enables masonry layout per CSS Grid Level 3.
53
- * Uses native `display: grid-lanes` / `grid-template-rows: masonry`
54
- * when supported, otherwise runs a JS polyfill.
55
- * auto-span-media — boolean; child `<bds-grid-item>`s without a `column-span`
56
- * attribute resolve their span from the intrinsic aspect
57
- * ratio of their first `<img>`/`<video>` child.
58
- * masonry-preferred-column-span — named span or number; masonry only. Child
59
- * items without a `column-span` attribute try to span this
60
- * value (e.g. `"half"`, `"one-third"`). Named values adapt
61
- * across breakpoints via the foundation's responsive column
62
- * tokens. An item at row-end is demoted to the remaining
63
- * column count. Numeric values are literal and don't adapt.
61
+ * Two-click range selection with hover/focus preview. Value is an ISO range
62
+ * `"YYYY-MM-DD/YYYY-MM-DD"`. Shares all date logic with the React <CalendarRange>
63
+ * through calendar-core.
64
64
  *
65
- * Slots:
66
- * (default) grid content; typically `<bds-grid-item>` children
65
+ * Attributes: name, value, min, max, disabled, months, page-by,
66
+ * first-day-of-week (default 1), locale, previous-label, next-label.
67
+ * Properties (JS only): isDateDisallowed, formatWeekday, formatMonth, formatDay.
68
+ * Events: bds-range-select — detail: { start, end }; bds-range-start — detail: { start }.
67
69
  */
68
- declare class BdsGrid extends LitElement {
69
- static styles: lit.CSSResult;
70
- static properties: {
71
- variant: {
72
- type: StringConstructor;
73
- reflect: boolean;
74
- };
75
- columns: {
76
- type: NumberConstructor;
77
- reflect: boolean;
78
- };
79
- isCentered: {
80
- type: BooleanConstructor;
81
- attribute: string;
82
- reflect: boolean;
83
- };
84
- isMasonry: {
85
- type: BooleanConstructor;
86
- attribute: string;
87
- reflect: boolean;
88
- };
89
- autoSpanMedia: {
90
- type: BooleanConstructor;
91
- attribute: string;
92
- reflect: boolean;
93
- };
94
- masonryPreferredColumnSpan: {
95
- type: StringConstructor;
96
- attribute: string;
97
- reflect: boolean;
98
- };
99
- };
100
- variant: GridVariant;
101
- columns: number | undefined;
102
- isCentered: boolean;
103
- isMasonry: boolean;
104
- autoSpanMedia: boolean;
105
- masonryPreferredColumnSpan: string | undefined;
106
- private _ro?;
107
- private _mo?;
108
- private _frame;
109
- constructor();
110
- disconnectedCallback(): void;
111
- updated(): void;
112
- private _gridEl;
113
- private _items;
114
- private _setupMasonry;
115
- private _scheduleMasonry;
116
- private _resolvePreferredColumnSpan;
117
- private _teardownMasonry;
118
- render(): lit.TemplateResult<1>;
119
- }
120
- declare global {
121
- interface HTMLElementTagNameMap {
122
- 'bds-grid': BdsGrid;
123
- }
124
- }
125
-
126
- type GridItemSpanValue = 'full' | 'three-quarters' | 'two-thirds' | 'half' | 'one-third' | 'one-quarter' | 'auto' | number;
127
- /**
128
- * `<bds-grid-item>` — grid cell for `<bds-grid>`.
129
- *
130
- * Attributes:
131
- * column-span — 'full' | 'three-quarters' | 'two-thirds' | 'half' | 'one-third' | 'one-quarter' | 'auto' | number
132
- * `'auto'` derives the span from the intrinsic aspect ratio of the first
133
- * `<img>` or `<video>` child (see Grid.mdx for thresholds).
134
- * If the parent `<bds-grid>` sets `auto-span-media` and this element has
135
- * no `column-span`, the item behaves as if `column-span="auto"`.
136
- * row-span — number
137
- * start-column — number (escape hatch; overrides column-span)
138
- * end-column — number (escape hatch; overrides column-span)
139
- *
140
- * @example
141
- * <bds-grid-item column-span="three-quarters">Content</bds-grid-item>
142
- */
143
- declare class BdsGridItem extends LitElement {
144
- static styles: lit.CSSResult;
145
- static properties: {
146
- columnSpan: {
147
- attribute: string;
148
- };
149
- rowSpan: {
150
- attribute: string;
151
- type: NumberConstructor;
152
- };
153
- startColumn: {
154
- attribute: string;
155
- type: NumberConstructor;
156
- };
157
- endColumn: {
158
- attribute: string;
159
- type: NumberConstructor;
160
- };
161
- };
162
- columnSpan: GridItemSpanValue | undefined;
163
- rowSpan: number | undefined;
164
- startColumn: number | undefined;
165
- endColumn: number | undefined;
166
- private _autoSpan;
167
- private _mediaCleanup?;
168
- private _slotObserver?;
169
- constructor();
170
- connectedCallback(): void;
171
- disconnectedCallback(): void;
172
- private _effectiveColumnSpan;
173
- private _teardownMedia;
174
- private _resolveAutoSpan;
175
- private _setAutoSpan;
176
- updated(): void;
177
- render(): lit.TemplateResult<1>;
178
- }
179
- declare global {
180
- interface HTMLElementTagNameMap {
181
- 'bds-grid-item': BdsGridItem;
182
- }
183
- }
184
-
185
- type ButtonGroupOrientation = 'horizontal' | 'vertical';
186
- /**
187
- * `<bds-button-group>` — groups related buttons into a flex container.
188
- *
189
- * Attributes:
190
- * orientation — `"horizontal"` (default) | `"vertical"`
191
- * aria-label — accessible label for the group
192
- *
193
- * Slots:
194
- * (default) — `<bds-button>` elements
195
- *
196
- * @example
197
- * <bds-button-group aria-label="View options">
198
- * <bds-button>Day</bds-button>
199
- * <bds-button>Week</bds-button>
200
- * <bds-button>Month</bds-button>
201
- * </bds-button-group>
202
- */
203
- declare class BdsButtonGroup extends LitElement {
204
- static styles: lit.CSSResult;
205
- static properties: {
206
- orientation: {
207
- type: StringConstructor;
208
- reflect: boolean;
209
- };
210
- 'aria-label': {
211
- type: StringConstructor;
212
- };
213
- };
214
- orientation: ButtonGroupOrientation;
215
- ['aria-label']: string | undefined;
216
- constructor();
217
- render(): lit.TemplateResult<1>;
218
- }
219
- declare global {
220
- interface HTMLElementTagNameMap {
221
- 'bds-button-group': BdsButtonGroup;
222
- }
223
- }
224
-
225
- /**
226
- * `<bds-table>` — scrollable table wrapper with design-system styles.
227
- *
228
- * Slotted content should be a standard `<table>` with `<thead>` / `<tbody>`.
229
- * Design-token styles are applied to the table and its cells via `::slotted`.
230
- *
231
- * Attributes:
232
- * sticky-header — freezes `<thead>` at the top when the table overflows vertically
233
- *
234
- * Slots:
235
- * (default) — a `<table>` element
236
- *
237
- * @example
238
- * <bds-table sticky-header>
239
- * <table>
240
- * <thead><tr><th>Name</th><th>Value</th></tr></thead>
241
- * <tbody><tr><td>Alpha</td><td>1</td></tr></tbody>
242
- * </table>
243
- * </bds-table>
244
- */
245
- declare class BdsTable extends LitElement {
246
- static styles: lit.CSSResult;
247
- static properties: {
248
- stickyHeader: {
249
- type: BooleanConstructor;
250
- attribute: string;
251
- reflect: boolean;
252
- };
253
- };
254
- stickyHeader: boolean;
255
- constructor();
256
- render(): lit.TemplateResult<1>;
257
- }
258
- declare global {
259
- interface HTMLElementTagNameMap {
260
- 'bds-table': BdsTable;
261
- }
262
- }
263
-
264
- /**
265
- * `<bds-pagination>` — pagination navigation control.
266
- *
267
- * Attributes:
268
- * current-page — active page number (1-based, default: 1)
269
- * total-pages — total number of pages (default: 1)
270
- *
271
- * Events:
272
- * bds-page-change — fired when the user navigates; `detail: { page: number }`
273
- *
274
- * @example
275
- * <bds-pagination current-page="3" total-pages="10"></bds-pagination>
276
- * <script>
277
- * document.querySelector('bds-pagination')
278
- * .addEventListener('bds-page-change', e => console.log(e.detail.page));
279
- * </script>
280
- */
281
- declare class BdsPagination extends LitElement {
282
- static styles: lit.CSSResult;
283
- static properties: {
284
- currentPage: {
285
- type: NumberConstructor;
286
- attribute: string;
287
- reflect: boolean;
288
- };
289
- totalPages: {
290
- type: NumberConstructor;
291
- attribute: string;
292
- reflect: boolean;
293
- };
294
- };
295
- currentPage: number;
296
- totalPages: number;
297
- constructor();
298
- private _navigate;
299
- render(): lit.TemplateResult<1>;
300
- }
301
- declare global {
302
- interface HTMLElementTagNameMap {
303
- 'bds-pagination': BdsPagination;
304
- }
305
- }
306
-
307
- /**
308
- * `<bds-checkbox-group>` — groups related checkboxes with a shared label.
309
- *
310
- * Renders a `<fieldset>` with a `<legend>` for accessible grouping.
311
- *
312
- * Attributes:
313
- * label — visible group label (rendered as `<legend>`)
314
- * error — error message shown below items
315
- * hint — hint text shown below items
316
- * disabled — disables the entire fieldset
317
- * required — marks the group as required
318
- *
319
- * Slots:
320
- * (default) — `<bds-checkbox>` elements
321
- *
322
- * @example
323
- * <bds-checkbox-group label="Interests" required>
324
- * <bds-checkbox name="sports" value="sports">Sports</bds-checkbox>
325
- * <bds-checkbox name="music" value="music">Music</bds-checkbox>
326
- * </bds-checkbox-group>
327
- */
328
- declare class BdsCheckboxGroup extends LitElement {
329
- static styles: lit.CSSResult;
330
- static properties: {
331
- label: {
332
- type: StringConstructor;
333
- };
334
- error: {
335
- type: StringConstructor;
336
- };
337
- hint: {
338
- type: StringConstructor;
339
- };
340
- disabled: {
341
- type: BooleanConstructor;
342
- reflect: boolean;
343
- };
344
- required: {
345
- type: BooleanConstructor;
346
- reflect: boolean;
347
- };
348
- };
349
- label: string;
350
- error: string | undefined;
351
- hint: string | undefined;
352
- disabled: boolean;
353
- required: boolean;
354
- constructor();
355
- render(): lit.TemplateResult<1>;
356
- }
357
- declare global {
358
- interface HTMLElementTagNameMap {
359
- 'bds-checkbox-group': BdsCheckboxGroup;
360
- }
361
- }
362
-
363
- /**
364
- * `<bds-radio-group>` — groups related radio buttons with a shared label and name.
365
- *
366
- * Renders a `<fieldset>` with a `<legend>`. Propagates the `name` attribute to
367
- * all slotted `<bds-radio>` elements so radios form a mutually-exclusive set.
368
- *
369
- * Attributes:
370
- * label — visible group label (rendered as `<legend>`)
371
- * name — shared name forwarded to all slotted `<bds-radio>` elements
372
- * error — error message shown below items
373
- * hint — hint text shown below items
374
- * disabled — disables the entire fieldset
375
- * required — marks the group as required
376
- *
377
- * Slots:
378
- * (default) — `<bds-radio>` elements
379
- *
380
- * @example
381
- * <bds-radio-group label="Preferred contact" name="contact">
382
- * <bds-radio value="email">Email</bds-radio>
383
- * <bds-radio value="phone">Phone</bds-radio>
384
- * </bds-radio-group>
385
- */
386
- declare class BdsRadioGroup extends LitElement {
70
+ declare class BdsCalendarRange extends LitElement {
71
+ static formAssociated: boolean;
387
72
  static styles: lit.CSSResult;
388
73
  static properties: {
389
- label: {
390
- type: StringConstructor;
391
- };
392
74
  name: {
393
75
  type: StringConstructor;
394
76
  reflect: boolean;
395
77
  };
396
- error: {
397
- type: StringConstructor;
398
- };
399
- hint: {
78
+ value: {
400
79
  type: StringConstructor;
401
- };
402
- disabled: {
403
- type: BooleanConstructor;
404
- reflect: boolean;
405
- };
406
- required: {
407
- type: BooleanConstructor;
408
80
  reflect: boolean;
409
81
  };
410
- };
411
- label: string;
412
- name: string;
413
- error: string | undefined;
414
- hint: string | undefined;
415
- disabled: boolean;
416
- required: boolean;
417
- constructor();
418
- private _propagateName;
419
- connectedCallback(): void;
420
- updated(changed: Map<string, unknown>): void;
421
- render(): lit.TemplateResult<1>;
422
- }
423
- declare global {
424
- interface HTMLElementTagNameMap {
425
- 'bds-radio-group': BdsRadioGroup;
426
- }
427
- }
428
-
429
- type FieldGroupVariant = 'horizontal' | 'vertical';
430
- /**
431
- * `<bds-field-group>` — framework-agnostic FieldGroup custom element.
432
- *
433
- * Semantically groups related form fields under a single `<fieldset>` and
434
- * lays them out either horizontally (with a CSS container query that
435
- * collapses to a vertical stack when the FieldGroup itself is too narrow)
436
- * or vertically. Mirrors the React `FieldGroup` component.
437
- *
438
- * Attributes:
439
- * variant — "horizontal" (default) | "vertical"
440
- * legend — optional legend text rendered above the fields
441
- * disabled — boolean; forwarded to the inner <fieldset>
442
- *
443
- * Slots:
444
- * (default) — form fields (any element). The slotted-element count is
445
- * measured on each `slotchange` and surfaced via the
446
- * `--fieldGroup_field-count` custom property, which the auto-derived
447
- * collapse threshold reads.
448
- *
449
- * @example
450
- * <bds-field-group variant="horizontal" legend="Contact details">
451
- * <bds-form-input label="First name" name="first"></bds-form-input>
452
- * <bds-form-input label="Last name" name="last"></bds-form-input>
453
- * <bds-form-input label="Email" name="email"></bds-form-input>
454
- * </bds-field-group>
455
- */
456
- declare class BdsFieldGroup extends LitElement {
457
- static styles: lit.CSSResult;
458
- static properties: {
459
- variant: {
82
+ min: {
460
83
  type: StringConstructor;
461
- reflect: boolean;
462
84
  };
463
- legend: {
85
+ max: {
464
86
  type: StringConstructor;
465
87
  };
466
88
  disabled: {
467
89
  type: BooleanConstructor;
468
90
  reflect: boolean;
469
91
  };
470
- };
471
- variant: FieldGroupVariant;
472
- legend: string;
473
- disabled: boolean;
474
- constructor();
475
- private _onSlotChange;
476
- render(): lit.TemplateResult<1>;
477
- }
478
- declare global {
479
- interface HTMLElementTagNameMap {
480
- 'bds-field-group': BdsFieldGroup;
481
- }
482
- }
483
-
484
- /**
485
- * `<bds-form-input>` — form-associated text input with label, hint, and error support.
486
- *
487
- * Participates in HTML forms via the Form-Associated Custom Elements API.
488
- *
489
- * Attributes:
490
- * name — form field name
491
- * type — input type: text | email | password | search | url | tel (default: "text")
492
- * value — current value
493
- * placeholder — placeholder text
494
- * label — visible label text
495
- * hint — helper text shown below the input
496
- * error — error message; when set the input enters error state
497
- * disabled — disables the input
498
- * required — marks the field as required
499
- *
500
- * Slots:
501
- * prefix — icon or text rendered before the input
502
- * suffix — icon or text rendered after the input
503
- *
504
- * Events:
505
- * bds-change — fired on value change; `detail: { value: string }`
506
- * bds-input — fired on every keystroke; `detail: { value: string }`
507
- *
508
- * @example
509
- * <bds-form-input name="email" type="email" label="Email address" required></bds-form-input>
510
- */
511
- declare class BdsFormInput extends LitElement {
512
- static formAssociated: boolean;
513
- static styles: lit.CSSResult;
514
- static properties: {
515
- name: {
516
- type: StringConstructor;
517
- reflect: boolean;
518
- };
519
- type: {
520
- type: StringConstructor;
92
+ months: {
93
+ type: NumberConstructor;
521
94
  reflect: boolean;
522
95
  };
523
- value: {
524
- type: StringConstructor;
525
- };
526
- placeholder: {
96
+ pageBy: {
527
97
  type: StringConstructor;
98
+ attribute: string;
528
99
  };
529
- label: {
530
- type: StringConstructor;
100
+ firstDayOfWeek: {
101
+ type: NumberConstructor;
102
+ attribute: string;
531
103
  };
532
- hint: {
104
+ locale: {
533
105
  type: StringConstructor;
534
106
  };
535
- error: {
107
+ previousLabel: {
536
108
  type: StringConstructor;
537
- reflect: boolean;
538
- };
539
- disabled: {
540
- type: BooleanConstructor;
541
- reflect: boolean;
542
- };
543
- required: {
544
- type: BooleanConstructor;
545
- reflect: boolean;
546
- };
547
- };
548
- name: string;
549
- type: string;
550
- value: string;
551
- placeholder: string;
552
- label: string;
553
- hint: string | undefined;
554
- error: string | undefined;
555
- disabled: boolean;
556
- required: boolean;
557
- private _internals;
558
- private readonly _uid;
559
- constructor();
560
- updated(changed: Map<string, unknown>): void;
561
- formResetCallback(): void;
562
- private _handleInput;
563
- private _handleChange;
564
- render(): lit.TemplateResult<1>;
565
- }
566
- declare global {
567
- interface HTMLElementTagNameMap {
568
- 'bds-form-input': BdsFormInput;
569
- }
570
- }
571
-
572
- /**
573
- * `<bds-carousel>` — scroll-snap based carousel/slider.
574
- *
575
- * Attributes:
576
- * current-index — active slide index (0-based, default: 0)
577
- * indicators — show dot indicators
578
- * loop — wrap from last slide back to first and vice versa
579
- *
580
- * Slots:
581
- * (default) — slide content elements (each direct child = one slide)
582
- * prev — custom previous button (renders a default button if omitted)
583
- * next — custom next button (renders a default button if omitted)
584
- *
585
- * Events:
586
- * bds-slide-change — fired when active slide changes; `detail: { index: number }`
587
- *
588
- * @example
589
- * <bds-carousel indicators loop>
590
- * <div>Slide 1</div>
591
- * <div>Slide 2</div>
592
- * <div>Slide 3</div>
593
- * </bds-carousel>
594
- */
595
- declare class BdsCarousel extends LitElement {
596
- static styles: lit.CSSResult;
597
- static properties: {
598
- currentIndex: {
599
- type: NumberConstructor;
600
109
  attribute: string;
601
- reflect: boolean;
602
- };
603
- indicators: {
604
- type: BooleanConstructor;
605
- reflect: boolean;
606
- };
607
- loop: {
608
- type: BooleanConstructor;
609
- reflect: boolean;
610
110
  };
611
- };
612
- currentIndex: number;
613
- indicators: boolean;
614
- loop: boolean;
615
- private _slideCount;
616
- private _io;
617
- constructor();
618
- private get _track();
619
- connectedCallback(): void;
620
- disconnectedCallback(): void;
621
- private _updateSlideCount;
622
- private _goTo;
623
- private _onSlotChange;
624
- render(): lit.TemplateResult<1>;
625
- }
626
- declare global {
627
- interface HTMLElementTagNameMap {
628
- 'bds-carousel': BdsCarousel;
629
- }
630
- }
631
-
632
- /**
633
- * `<bds-calendar>` — form-associated date picker calendar.
634
- *
635
- * Renders a month grid for selecting a date. Keyboard-navigable. Participates
636
- * in HTML forms via the Form-Associated Custom Elements API.
637
- *
638
- * Attributes:
639
- * name — form field name
640
- * value — selected date in ISO 8601 format (`YYYY-MM-DD`)
641
- * min — minimum selectable date (ISO 8601)
642
- * max — maximum selectable date (ISO 8601)
643
- * disabled — disables all interaction
644
- *
645
- * Events:
646
- * bds-date-select — fired when user selects a date; `detail: { date: string }` (ISO 8601)
647
- *
648
- * @example
649
- * <bds-calendar name="birthday" value="2024-03-15"></bds-calendar>
650
- */
651
- declare class BdsCalendar extends LitElement {
652
- static formAssociated: boolean;
653
- static styles: lit.CSSResult;
654
- static properties: {
655
- name: {
111
+ nextLabel: {
656
112
  type: StringConstructor;
657
- reflect: boolean;
113
+ attribute: string;
658
114
  };
659
- value: {
660
- type: StringConstructor;
661
- reflect: boolean;
115
+ isDateDisallowed: {
116
+ attribute: boolean;
662
117
  };
663
- min: {
664
- type: StringConstructor;
118
+ formatWeekday: {
119
+ attribute: boolean;
665
120
  };
666
- max: {
667
- type: StringConstructor;
121
+ formatMonth: {
122
+ attribute: boolean;
668
123
  };
669
- disabled: {
670
- type: BooleanConstructor;
671
- reflect: boolean;
124
+ formatDay: {
125
+ attribute: boolean;
672
126
  };
673
127
  };
674
128
  name: string;
@@ -676,132 +130,48 @@ declare class BdsCalendar extends LitElement {
676
130
  min: string;
677
131
  max: string;
678
132
  disabled: boolean;
133
+ months: number;
134
+ pageBy: 'months' | 'single';
135
+ firstDayOfWeek: number;
136
+ locale: string;
137
+ previousLabel: string;
138
+ nextLabel: string;
139
+ isDateDisallowed?: (date: Date) => boolean;
140
+ formatWeekday?: (date: Date) => string;
141
+ formatMonth?: (date: Date) => string;
142
+ formatDay?: (date: Date) => string;
679
143
  private _internals;
680
144
  private _viewYear;
681
145
  private _viewMonth;
146
+ private _focusedIso;
147
+ private _anchorIso;
148
+ private _hoverIso;
682
149
  constructor();
683
- updated(changed: Map<string, unknown>): void;
150
+ willUpdate(changed: Map<string, unknown>): void;
684
151
  formResetCallback(): void;
685
- private _prevMonth;
686
- private _nextMonth;
687
- private _selectDate;
152
+ formDisabledCallback(disabled: boolean): void;
153
+ private get _localeOrUndefined();
154
+ private get _count();
155
+ private _committed;
156
+ private _paint;
157
+ private _monthVisible;
158
+ private _setView;
159
+ private _page;
688
160
  private _isDisabledDate;
161
+ private _selectDate;
689
162
  private _handleKeydown;
690
- private _buildGrid;
691
- render(): lit.TemplateResult<1>;
692
- }
693
- declare global {
694
- interface HTMLElementTagNameMap {
695
- 'bds-calendar': BdsCalendar;
696
- }
697
- }
698
-
699
- type DropdownMenuPlacement = 'bottom-start' | 'bottom-end' | 'top-start' | 'top-end';
700
- /**
701
- * `<bds-dropdown-menu>` — anchored dropdown menu with keyboard navigation.
702
- *
703
- * Uses the native Popover API for the floating panel (light-dismiss, top-layer).
704
- * The trigger slot element controls open/close. The component handles keyboard
705
- * navigation (Arrow keys, Escape, Tab) and focus management.
706
- *
707
- * Attributes:
708
- * open — controls open/closed state (reflected)
709
- * placement — menu position relative to trigger (default: `"bottom-start"`)
710
- *
711
- * Slots:
712
- * trigger — the activating element (button or similar)
713
- * (default) — `<bds-dropdown-menu-item>` elements
714
- *
715
- * Events:
716
- * bds-open — fired when the menu opens
717
- * bds-close — fired when the menu closes
718
- *
719
- * @example
720
- * <bds-dropdown-menu>
721
- * <button slot="trigger">Options</button>
722
- * <bds-dropdown-menu-item value="edit">Edit</bds-dropdown-menu-item>
723
- * <bds-dropdown-menu-item value="delete" destructive>Delete</bds-dropdown-menu-item>
724
- * </bds-dropdown-menu>
725
- */
726
- declare class BdsDropdownMenu extends LitElement {
727
- static styles: lit.CSSResult;
728
- static properties: {
729
- open: {
730
- type: BooleanConstructor;
731
- reflect: boolean;
732
- };
733
- placement: {
734
- type: StringConstructor;
735
- reflect: boolean;
736
- };
737
- };
738
- open: boolean;
739
- placement: DropdownMenuPlacement;
740
- constructor();
741
- connectedCallback(): void;
742
- disconnectedCallback(): void;
743
- private get _items();
744
- private get _trigger();
745
- _open(): void;
746
- _close(): void;
747
- private _handleTriggerClick;
748
- private _handleOutsideClick;
749
- private _handleKeydown;
750
- private _handleItemSelect;
751
- private _onTriggerSlotChange;
752
- render(): lit.TemplateResult<1>;
753
- }
754
- declare global {
755
- interface HTMLElementTagNameMap {
756
- 'bds-dropdown-menu': BdsDropdownMenu;
757
- }
758
- }
759
-
760
- /**
761
- * `<bds-dropdown-menu-item>` — a single item inside a `<bds-dropdown-menu>`.
762
- *
763
- * Attributes:
764
- * value — value associated with this item
765
- * disabled — disables this item
766
- * destructive — renders the item in a destructive (red) style
767
- *
768
- * Slots:
769
- * (default) — item label text
770
- *
771
- * Events:
772
- * bds-select — fired when the item is clicked or activated; `detail: { value: string }`
773
- *
774
- * @example
775
- * <bds-dropdown-menu-item value="delete" destructive>Delete</bds-dropdown-menu-item>
776
- */
777
- declare class BdsDropdownMenuItem extends LitElement {
778
- static styles: lit.CSSResult;
779
- static properties: {
780
- value: {
781
- type: StringConstructor;
782
- reflect: boolean;
783
- };
784
- disabled: {
785
- type: BooleanConstructor;
786
- reflect: boolean;
787
- };
788
- destructive: {
789
- type: BooleanConstructor;
790
- reflect: boolean;
791
- };
792
- };
793
- value: string;
794
- disabled: boolean;
795
- destructive: boolean;
796
- constructor();
797
- private _handleClick;
798
- private _handleKeydown;
163
+ private _onDayEnter;
164
+ private _weekdayNames;
165
+ private _monthLabel;
166
+ private _dayLabel;
167
+ private _tabbableIso;
168
+ private _renderMonth;
799
169
  render(): lit.TemplateResult<1>;
800
170
  }
801
171
  declare global {
802
172
  interface HTMLElementTagNameMap {
803
- 'bds-dropdown-menu-item': BdsDropdownMenuItem;
173
+ 'bds-calendar-range': BdsCalendarRange;
804
174
  }
805
175
  }
806
176
 
807
- export { BdsButtonGroup, BdsCalendar, BdsCarousel, BdsCheckboxGroup, BdsDropdownMenu, BdsDropdownMenuItem, BdsFieldGroup, type FieldGroupVariant as BdsFieldGroupVariant, BdsFormInput, BdsGrid, BdsGridItem, BdsPagination, BdsRadioGroup, BdsTable };
177
+ export { BdsCalendarRange };