@boostdev/design-system-components 2.8.0 → 2.12.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.
- package/AGENTS.md +75 -46
- package/README.md +41 -20
- package/dist/client.cjs +1317 -779
- package/dist/client.css +1037 -820
- package/dist/client.d.cts +88 -26
- package/dist/client.d.ts +88 -26
- package/dist/client.js +1278 -732
- package/dist/index.cjs +1317 -779
- package/dist/index.css +1037 -820
- package/dist/index.d.cts +88 -26
- package/dist/index.d.ts +88 -26
- package/dist/index.js +1278 -732
- package/dist/web-components/chunk-2OLVQUBU.js +193 -0
- package/dist/web-components/{chunk-OF6FFGOT.js → chunk-3AY2YKCM.js} +77 -21
- package/dist/web-components/chunk-3WAV6MDN.js +212 -0
- package/dist/web-components/chunk-4A2YYTYN.js +93 -0
- package/dist/web-components/{chunk-Q4T5BJT6.js → chunk-62NK3ZSC.js} +18 -3
- package/dist/web-components/chunk-66M6ETWD.js +77 -0
- package/dist/web-components/{chunk-NCPQ7AF3.js → chunk-6G22I2CK.js} +18 -3
- package/dist/web-components/{chunk-QDST57JC.js → chunk-7ZOJ7N4E.js} +14 -4
- package/dist/web-components/{chunk-QLT6MTZF.js → chunk-AIBOHNDU.js} +10 -0
- package/dist/web-components/{chunk-X3NQMBAQ.js → chunk-AP4RDUL2.js} +14 -3
- package/dist/web-components/{chunk-QWPACK5L.js → chunk-BPYKZVDK.js} +11 -1
- package/dist/web-components/chunk-CUKQ2L5B.js +245 -0
- package/dist/web-components/chunk-DIZDCL7Z.js +14 -0
- package/dist/web-components/{chunk-2QA62WCQ.js → chunk-EF7IVYTY.js} +10 -0
- package/dist/web-components/{chunk-L3XHOMN6.js → chunk-F3ZDNHZZ.js} +26 -1
- package/dist/web-components/chunk-FEDABOR5.js +248 -0
- package/dist/web-components/{chunk-KUI55GFB.js → chunk-FUQEFHRC.js} +51 -19
- package/dist/web-components/{chunk-6I2DBFQ7.js → chunk-HGFCJXOQ.js} +36 -5
- package/dist/web-components/{chunk-YLVTEY23.js → chunk-HRD3NOA3.js} +53 -21
- package/dist/web-components/chunk-IDSM74LM.js +189 -0
- package/dist/web-components/{chunk-SOQQ7RVJ.js → chunk-IPGHUCJT.js} +23 -8
- package/dist/web-components/chunk-ITD2MV5K.js +392 -0
- package/dist/web-components/{chunk-UUKSDCYS.js → chunk-J3HVUIUH.js} +87 -15
- package/dist/web-components/{chunk-ARMKC4BQ.js → chunk-JH6LQKLK.js} +77 -5
- package/dist/web-components/chunk-JMCXAAFK.js +120 -0
- package/dist/web-components/chunk-JV5QT2OU.js +146 -0
- package/dist/web-components/{chunk-3GFWLSLS.js → chunk-KA3VPKMY.js} +29 -6
- package/dist/web-components/{chunk-CR5PGUHV.js → chunk-KJGRFDFI.js} +26 -11
- package/dist/web-components/{chunk-PY62FTRW.js → chunk-KZPRFY5P.js} +68 -33
- package/dist/web-components/{chunk-X46KL5BK.js → chunk-LDIPCTRN.js} +18 -1
- package/dist/web-components/chunk-M3ECULRH.js +174 -0
- package/dist/web-components/chunk-NBN2ENWJ.js +90 -0
- package/dist/web-components/{chunk-2FGATTGT.js → chunk-NTQ4TCUT.js} +76 -55
- package/dist/web-components/chunk-OY74D4X6.js +302 -0
- package/dist/web-components/{chunk-3S42DZ7W.js → chunk-P24JYC5V.js} +7 -0
- package/dist/web-components/{chunk-TQ7IQ4GZ.js → chunk-PLWCDDP6.js} +72 -30
- package/dist/web-components/{chunk-BKIHQYJR.js → chunk-PXPPKCLT.js} +17 -2
- package/dist/web-components/{chunk-PC3IOQAH.js → chunk-QKWXCBTH.js} +28 -8
- package/dist/web-components/chunk-QZAIRJ75.js +111 -0
- package/dist/web-components/{chunk-6I3CFC26.js → chunk-RSZ3BWBK.js} +20 -5
- package/dist/web-components/chunk-RVF7W653.js +101 -0
- package/dist/web-components/chunk-SEO2F5KJ.js +234 -0
- package/dist/web-components/{chunk-VMMVWLXL.js → chunk-SFZ6Q4BP.js} +10 -0
- package/dist/web-components/{chunk-LY62SAVN.js → chunk-SYNLFKD3.js} +12 -2
- package/dist/web-components/chunk-TMWXRHGF.js +192 -0
- package/dist/web-components/chunk-VANAKB6D.js +152 -0
- package/dist/web-components/{chunk-PXZWYO6Z.js → chunk-VED2DFJ6.js} +108 -29
- package/dist/web-components/chunk-W6H5ID2U.js +161 -0
- package/dist/web-components/{chunk-FSZRP43R.js → chunk-WFVKU4GX.js} +21 -10
- package/dist/web-components/{chunk-OQTRTMAB.js → chunk-WIBAN7KP.js} +10 -0
- package/dist/web-components/chunk-X7PS7GSN.js +424 -0
- package/dist/web-components/chunk-XI7KRAH7.js +54 -0
- package/dist/web-components/{chunk-ORC56MDY.js → chunk-XIZWAWMJ.js} +45 -6
- package/dist/web-components/{chunk-FXURM6D5.js → chunk-YFAXGRPR.js} +10 -0
- package/dist/web-components/{chunk-65JXQOBA.js → chunk-Z7XTADXX.js} +52 -8
- package/dist/web-components/globals.js +1 -1
- package/dist/web-components/index.d.ts +77 -707
- package/dist/web-components/index.js +339 -2066
- package/dist/web-components/interaction/bds-accordion-item.js +1 -1
- package/dist/web-components/interaction/bds-accordion.js +1 -1
- package/dist/web-components/interaction/bds-button.d.ts +10 -2
- package/dist/web-components/interaction/bds-button.js +1 -1
- package/dist/web-components/interaction/bds-collapsible.d.ts +7 -2
- package/dist/web-components/interaction/bds-collapsible.js +1 -1
- package/dist/web-components/interaction/bds-dialog.d.ts +11 -3
- package/dist/web-components/interaction/bds-dialog.js +1 -1
- package/dist/web-components/interaction/bds-drawer.d.ts +7 -1
- package/dist/web-components/interaction/bds-drawer.js +1 -1
- package/dist/web-components/interaction/bds-dropdown-menu-item.d.ts +51 -0
- package/dist/web-components/interaction/bds-dropdown-menu-item.js +7 -0
- package/dist/web-components/interaction/bds-dropdown-menu.d.ts +70 -0
- package/dist/web-components/interaction/bds-dropdown-menu.js +7 -0
- package/dist/web-components/interaction/bds-popover.d.ts +14 -3
- package/dist/web-components/interaction/bds-popover.js +1 -1
- package/dist/web-components/interaction/bds-skip-link.js +1 -1
- package/dist/web-components/interaction/bds-tab-panel.js +1 -1
- package/dist/web-components/interaction/bds-tab.js +1 -1
- package/dist/web-components/interaction/bds-tabs.d.ts +1 -0
- package/dist/web-components/interaction/bds-tabs.js +1 -1
- package/dist/web-components/interaction/bds-toast-provider.js +1 -1
- package/dist/web-components/interaction/bds-tooltip.d.ts +19 -3
- package/dist/web-components/interaction/bds-tooltip.js +1 -1
- package/dist/web-components/interaction/form/bds-checkbox-group.d.ts +83 -0
- package/dist/web-components/interaction/form/bds-checkbox-group.js +7 -0
- package/dist/web-components/interaction/form/bds-checkbox.d.ts +6 -0
- package/dist/web-components/interaction/form/bds-checkbox.js +1 -1
- package/dist/web-components/interaction/form/bds-combobox.d.ts +18 -0
- package/dist/web-components/interaction/form/bds-combobox.js +1 -1
- package/dist/web-components/interaction/form/bds-field-group.d.ts +89 -0
- package/dist/web-components/interaction/form/bds-field-group.js +7 -0
- package/dist/web-components/interaction/form/bds-file-input.d.ts +1 -1
- package/dist/web-components/interaction/form/bds-file-input.js +1 -1
- package/dist/web-components/interaction/form/bds-form-input.d.ts +92 -0
- package/dist/web-components/interaction/form/bds-form-input.js +7 -0
- package/dist/web-components/interaction/form/bds-number-input.d.ts +18 -1
- package/dist/web-components/interaction/form/bds-number-input.js +1 -1
- package/dist/web-components/interaction/form/bds-radio-group.d.ts +81 -0
- package/dist/web-components/interaction/form/bds-radio-group.js +7 -0
- package/dist/web-components/interaction/form/bds-radio.d.ts +34 -6
- package/dist/web-components/interaction/form/bds-radio.js +1 -1
- package/dist/web-components/interaction/form/bds-segmented-control.d.ts +4 -4
- package/dist/web-components/interaction/form/bds-segmented-control.js +1 -1
- package/dist/web-components/interaction/form/bds-select.d.ts +22 -1
- package/dist/web-components/interaction/form/bds-select.js +1 -1
- package/dist/web-components/interaction/form/bds-slider.d.ts +42 -10
- package/dist/web-components/interaction/form/bds-slider.js +1 -1
- package/dist/web-components/interaction/form/bds-switch.d.ts +20 -0
- package/dist/web-components/interaction/form/bds-switch.js +1 -1
- package/dist/web-components/interaction/form/bds-textarea.d.ts +23 -3
- package/dist/web-components/interaction/form/bds-textarea.js +1 -1
- package/dist/web-components/layout/bds-grid-item.d.ts +63 -0
- package/dist/web-components/layout/bds-grid-item.js +7 -0
- package/dist/web-components/layout/bds-grid.d.ts +108 -0
- package/dist/web-components/layout/bds-grid.js +7 -0
- package/dist/web-components/ui/bds-alert.d.ts +16 -2
- package/dist/web-components/ui/bds-alert.js +1 -1
- package/dist/web-components/ui/bds-avatar.d.ts +2 -1
- package/dist/web-components/ui/bds-avatar.js +1 -1
- package/dist/web-components/ui/bds-badge.js +1 -1
- package/dist/web-components/ui/bds-breadcrumb.d.ts +3 -1
- package/dist/web-components/ui/bds-breadcrumb.js +1 -1
- package/dist/web-components/ui/bds-button-container.d.ts +52 -0
- package/dist/web-components/ui/bds-button-container.js +7 -0
- package/dist/web-components/ui/bds-button-group.d.ts +21 -0
- package/dist/web-components/ui/bds-button-group.js +8 -0
- package/dist/web-components/ui/bds-calendar.d.ts +121 -0
- package/dist/web-components/ui/bds-calendar.js +7 -0
- package/dist/web-components/ui/bds-card.d.ts +12 -3
- package/dist/web-components/ui/bds-card.js +1 -1
- package/dist/web-components/ui/bds-carousel.d.ts +98 -0
- package/dist/web-components/ui/bds-carousel.js +7 -0
- package/dist/web-components/ui/bds-description-list.js +1 -1
- package/dist/web-components/ui/bds-icon-wrapper.d.ts +0 -9
- package/dist/web-components/ui/bds-icon-wrapper.js +1 -1
- package/dist/web-components/ui/bds-link.js +1 -1
- package/dist/web-components/ui/bds-loading.js +1 -1
- package/dist/web-components/ui/bds-notification-banner.js +1 -1
- package/dist/web-components/ui/bds-pagination.d.ts +47 -0
- package/dist/web-components/ui/bds-pagination.js +7 -0
- package/dist/web-components/ui/bds-progress-circle.d.ts +3 -1
- package/dist/web-components/ui/bds-progress-circle.js +1 -1
- package/dist/web-components/ui/bds-progress.d.ts +3 -1
- package/dist/web-components/ui/bds-progress.js +1 -1
- package/dist/web-components/ui/bds-rating.js +1 -1
- package/dist/web-components/ui/bds-section-header.d.ts +18 -4
- package/dist/web-components/ui/bds-section-header.js +1 -1
- package/dist/web-components/ui/bds-separator.js +1 -1
- package/dist/web-components/ui/bds-skeleton.js +1 -1
- package/dist/web-components/ui/bds-table.d.ts +52 -0
- package/dist/web-components/ui/bds-table.js +7 -0
- package/dist/web-components/ui/bds-typography.d.ts +1 -0
- package/dist/web-components/ui/bds-typography.js +1 -1
- package/package.json +60 -3
- package/src/components/interaction/Button/Button.module.css +23 -14
- package/src/components/interaction/Button/Button.spec.tsx +20 -0
- package/src/components/interaction/Button/Button.tsx +2 -2
- package/src/components/interaction/Command/Command.mdx +5 -2
- package/src/components/interaction/Command/Command.module.css +24 -8
- package/src/components/interaction/Command/Command.spec.tsx +35 -0
- package/src/components/interaction/Command/Command.tsx +15 -4
- package/src/components/interaction/Command/index.ts +1 -1
- package/src/components/interaction/Dialog/Dialog.mdx +4 -4
- package/src/components/interaction/Dialog/Dialog.module.css +21 -1
- package/src/components/interaction/Dialog/Dialog.spec.tsx +20 -0
- package/src/components/interaction/Dialog/Dialog.tsx +8 -3
- package/src/components/interaction/Dialog/index.ts +1 -0
- package/src/components/interaction/Drawer/Drawer.mdx +5 -2
- package/src/components/interaction/Drawer/Drawer.module.css +35 -4
- package/src/components/interaction/Drawer/Drawer.spec.tsx +67 -1
- package/src/components/interaction/Drawer/Drawer.tsx +30 -12
- package/src/components/interaction/Drawer/index.ts +1 -0
- package/src/components/interaction/DropdownMenu/DropdownMenu.mdx +2 -0
- package/src/components/interaction/DropdownMenu/DropdownMenu.module.css +1 -1
- package/src/components/interaction/DropdownMenu/DropdownMenu.spec.tsx +34 -0
- package/src/components/interaction/DropdownMenu/DropdownMenu.tsx +15 -5
- package/src/components/interaction/DropdownMenu/index.ts +1 -0
- package/src/components/interaction/Popover/Popover.mdx +6 -2
- package/src/components/interaction/Popover/Popover.module.css +27 -19
- package/src/components/interaction/Popover/Popover.spec.tsx +38 -0
- package/src/components/interaction/Popover/Popover.tsx +19 -5
- package/src/components/interaction/Popover/index.ts +1 -0
- package/src/components/interaction/Rating/Rating.mdx +1 -1
- package/src/components/interaction/Rating/Rating.module.css +2 -2
- package/src/components/interaction/Rating/Rating.tsx +1 -1
- package/src/components/interaction/Rating/index.ts +1 -0
- package/src/components/interaction/Toast/Toast.mdx +3 -0
- package/src/components/interaction/Toast/Toast.module.css +36 -6
- package/src/components/interaction/Toast/Toast.spec.tsx +69 -1
- package/src/components/interaction/Toast/Toast.tsx +15 -9
- package/src/components/interaction/form/Checkbox/Checkbox.mdx +3 -0
- package/src/components/interaction/form/Checkbox/Checkbox.module.css +13 -6
- package/src/components/interaction/form/Checkbox/Checkbox.spec.tsx +6 -0
- package/src/components/interaction/form/Checkbox/Checkbox.tsx +1 -1
- package/src/components/interaction/form/CheckboxGroup/CheckboxGroup.mdx +16 -1
- package/src/components/interaction/form/CheckboxGroup/CheckboxGroup.module.css +24 -8
- package/src/components/interaction/form/CheckboxGroup/CheckboxGroup.spec.tsx +32 -2
- package/src/components/interaction/form/CheckboxGroup/CheckboxGroup.tsx +14 -2
- package/src/components/interaction/form/Combobox/Combobox.mdx +11 -4
- package/src/components/interaction/form/Combobox/Combobox.module.css +6 -6
- package/src/components/interaction/form/Combobox/Combobox.spec.tsx +47 -0
- package/src/components/interaction/form/Combobox/Combobox.tsx +10 -5
- package/src/components/interaction/form/FieldGroup/FieldGroup.mdx +9 -10
- package/src/components/interaction/form/FieldGroup/FieldGroup.module.css +57 -23
- package/src/components/interaction/form/FieldGroup/FieldGroup.spec.tsx +129 -7
- package/src/components/interaction/form/FieldGroup/FieldGroup.tsx +72 -12
- package/src/components/interaction/form/FileInput/FileInput.mdx +9 -1
- package/src/components/interaction/form/FileInput/FileInput.module.css +8 -8
- package/src/components/interaction/form/FileInput/FileInput.spec.tsx +89 -1
- package/src/components/interaction/form/FileInput/FileInput.tsx +6 -2
- package/src/components/interaction/form/FormInput/FormInput.mdx +9 -5
- package/src/components/interaction/form/FormInput/FormInput.module.css +17 -8
- package/src/components/interaction/form/FormInput/FormInput.spec.tsx +20 -0
- package/src/components/interaction/form/FormInput/FormInput.tsx +7 -2
- package/src/components/interaction/form/NumberInput/NumberInput.mdx +5 -1
- package/src/components/interaction/form/NumberInput/NumberInput.module.css +6 -6
- package/src/components/interaction/form/NumberInput/NumberInput.spec.tsx +51 -0
- package/src/components/interaction/form/NumberInput/NumberInput.tsx +36 -8
- package/src/components/interaction/form/Radio/Radio.mdx +8 -1
- package/src/components/interaction/form/Radio/Radio.module.css +20 -7
- package/src/components/interaction/form/Radio/Radio.spec.tsx +15 -0
- package/src/components/interaction/form/Radio/Radio.tsx +10 -4
- package/src/components/interaction/form/RadioGroup/RadioGroup.mdx +16 -1
- package/src/components/interaction/form/RadioGroup/RadioGroup.module.css +24 -8
- package/src/components/interaction/form/RadioGroup/RadioGroup.spec.tsx +32 -2
- package/src/components/interaction/form/RadioGroup/RadioGroup.tsx +14 -2
- package/src/components/interaction/form/SegmentedControl/SegmentedControl.mdx +9 -3
- package/src/components/interaction/form/SegmentedControl/SegmentedControl.module.css +25 -12
- package/src/components/interaction/form/SegmentedControl/SegmentedControl.spec.tsx +86 -5
- package/src/components/interaction/form/SegmentedControl/SegmentedControl.tsx +44 -4
- package/src/components/interaction/form/Select/Select.mdx +10 -4
- package/src/components/interaction/form/Select/Select.module.css +4 -4
- package/src/components/interaction/form/Select/Select.spec.tsx +34 -0
- package/src/components/interaction/form/Select/Select.tsx +21 -9
- package/src/components/interaction/form/Slider/Slider.mdx +4 -1
- package/src/components/interaction/form/Slider/Slider.module.css +32 -8
- package/src/components/interaction/form/Slider/Slider.spec.tsx +29 -0
- package/src/components/interaction/form/Slider/Slider.tsx +9 -7
- package/src/components/interaction/form/Switch/Switch.mdx +2 -2
- package/src/components/interaction/form/Switch/Switch.module.css +12 -13
- package/src/components/interaction/form/Switch/Switch.spec.tsx +20 -0
- package/src/components/interaction/form/Switch/Switch.tsx +2 -1
- package/src/components/interaction/form/Textarea/Textarea.mdx +5 -0
- package/src/components/interaction/form/Textarea/Textarea.module.css +5 -5
- package/src/components/interaction/form/Textarea/Textarea.spec.tsx +13 -0
- package/src/components/interaction/form/Textarea/Textarea.tsx +3 -1
- package/src/components/interaction/form/atoms/Message.module.css +1 -1
- package/src/components/interaction/form/atoms/Message.spec.tsx +29 -0
- package/src/components/interaction/form/atoms/Message.tsx +1 -1
- package/src/components/layout/ButtonGroup/ButtonGroup.mdx +11 -0
- package/src/components/layout/ButtonGroup/ButtonGroup.module.css +1 -5
- package/src/components/layout/ButtonGroup/ButtonGroup.stories.tsx +14 -0
- package/src/components/layout/Card/Card.mdx +6 -1
- package/src/components/layout/Card/Card.module.css +27 -6
- package/src/components/layout/Card/Card.spec.tsx +7 -0
- package/src/components/layout/Card/Card.tsx +4 -3
- package/src/components/layout/Grid/Grid.spec.tsx +44 -0
- package/src/components/layout/Grid/Grid.tsx +5 -5
- package/src/components/layout/Grid/GridItem.tsx +6 -6
- package/src/components/layout/Grid/masonry.ts +31 -5
- package/src/components/layout/Grid/useIsomorphicLayoutEffect.ts +11 -0
- package/src/components/layout/IconWrapper/IconWrapper.mdx +8 -2
- package/src/components/layout/IconWrapper/IconWrapper.module.css +9 -6
- package/src/components/layout/SectionHeader/SectionHeader.mdx +4 -1
- package/src/components/layout/SectionHeader/SectionHeader.module.css +10 -9
- package/src/components/ui/Accordion/Accordion.mdx +4 -1
- package/src/components/ui/Accordion/Accordion.module.css +2 -1
- package/src/components/ui/Alert/Alert.mdx +21 -4
- package/src/components/ui/Alert/Alert.module.css +9 -4
- package/src/components/ui/Alert/Alert.spec.tsx +20 -0
- package/src/components/ui/Avatar/Avatar.mdx +8 -3
- package/src/components/ui/Avatar/Avatar.module.css +13 -8
- package/src/components/ui/Badge/Badge.mdx +3 -1
- package/src/components/ui/Breadcrumb/Breadcrumb.mdx +3 -0
- package/src/components/ui/Breadcrumb/Breadcrumb.module.css +4 -0
- package/src/components/ui/Breadcrumb/Breadcrumb.spec.tsx +12 -0
- package/src/components/ui/Breadcrumb/Breadcrumb.tsx +11 -3
- package/src/components/ui/Calendar/Calendar.mdx +6 -0
- package/src/components/ui/Calendar/Calendar.module.css +69 -20
- package/src/components/ui/Calendar/Calendar.spec.tsx +139 -24
- package/src/components/ui/Calendar/Calendar.stories.tsx +14 -0
- package/src/components/ui/Calendar/Calendar.tsx +143 -154
- package/src/components/ui/Calendar/CalendarRange.mdx +39 -0
- package/src/components/ui/Calendar/CalendarRange.spec.tsx +119 -0
- package/src/components/ui/Calendar/CalendarRange.stories.tsx +51 -0
- package/src/components/ui/Calendar/CalendarRange.tsx +213 -0
- package/src/components/ui/Calendar/MonthGrid.tsx +141 -0
- package/src/components/ui/Calendar/calendar-core.spec.ts +176 -0
- package/src/components/ui/Calendar/calendar-core.ts +164 -0
- package/src/components/ui/Calendar/index.ts +1 -0
- package/src/components/ui/Carousel/Carousel.mdx +8 -3
- package/src/components/ui/Carousel/Carousel.module.css +7 -5
- package/src/components/ui/Carousel/Carousel.spec.tsx +67 -0
- package/src/components/ui/Carousel/Carousel.tsx +19 -7
- package/src/components/ui/Collapsible/Collapsible.mdx +17 -6
- package/src/components/ui/Collapsible/Collapsible.module.css +7 -2
- package/src/components/ui/Collapsible/Collapsible.spec.tsx +40 -0
- package/src/components/ui/Collapsible/Collapsible.tsx +19 -2
- package/src/components/ui/DescriptionList/DescriptionList.mdx +2 -0
- package/src/components/ui/Link/Link.mdx +4 -2
- package/src/components/ui/Loading/Loading.mdx +6 -3
- package/src/components/ui/Loading/Loading.module.css +7 -7
- package/src/components/ui/Loading/Loading.spec.tsx +12 -0
- package/src/components/ui/Loading/Loading.tsx +8 -3
- package/src/components/ui/NotificationBanner/NotificationBanner.mdx +4 -0
- package/src/components/ui/NotificationBanner/NotificationBanner.module.css +5 -0
- package/src/components/ui/NotificationBanner/NotificationBanner.spec.tsx +20 -0
- package/src/components/ui/Pagination/Pagination.mdx +29 -7
- package/src/components/ui/Pagination/Pagination.module.css +15 -14
- package/src/components/ui/Progress/Progress.mdx +6 -2
- package/src/components/ui/Progress/Progress.module.css +1 -1
- package/src/components/ui/Progress/Progress.spec.tsx +17 -0
- package/src/components/ui/Progress/Progress.tsx +2 -2
- package/src/components/ui/ProgressCircle/ProgressCircle.mdx +8 -4
- package/src/components/ui/ProgressCircle/ProgressCircle.module.css +2 -2
- package/src/components/ui/ProgressCircle/ProgressCircle.spec.tsx +11 -1
- package/src/components/ui/ProgressCircle/ProgressCircle.tsx +1 -1
- package/src/components/ui/Separator/Separator.mdx +7 -0
- package/src/components/ui/Separator/Separator.module.css +1 -0
- package/src/components/ui/Skeleton/Skeleton.mdx +17 -0
- package/src/components/ui/Skeleton/Skeleton.module.css +12 -5
- package/src/components/ui/SkipLink/SkipLink.mdx +19 -0
- package/src/components/ui/SkipLink/SkipLink.module.css +8 -7
- package/src/components/ui/SkipLink/SkipLink.spec.tsx +28 -0
- package/src/components/ui/Table/Table.mdx +14 -0
- package/src/components/ui/Table/Table.module.css +13 -8
- package/src/components/ui/Table/Table.spec.tsx +56 -0
- package/src/components/ui/Table/Table.tsx +44 -6
- package/src/components/ui/Tabs/Tabs.mdx +16 -0
- package/src/components/ui/Tabs/Tabs.module.css +3 -3
- package/src/components/ui/Tabs/Tabs.spec.tsx +20 -0
- package/src/components/ui/Tabs/Tabs.tsx +5 -1
- package/src/components/ui/Tooltip/Tooltip.mdx +9 -0
- package/src/components/ui/Tooltip/Tooltip.module.css +32 -12
- package/src/components/ui/Tooltip/Tooltip.spec.tsx +56 -0
- package/src/components/ui/Tooltip/Tooltip.tsx +26 -7
- package/src/components/ui/Typography/Typography.mdx +7 -0
- package/src/components/ui/Typography/Typography.module.css +5 -5
- package/src/index.ts +7 -3
- package/src/stories/DesignSystem/Borders.mdx +14 -9
- package/src/stories/DesignSystem/Colors.mdx +43 -41
- package/src/stories/DesignSystem/Overview.mdx +4 -3
- package/src/stories/Introduction.mdx +5 -5
- package/src/web-components/globals.ts +7 -0
- package/src/web-components/index.ts +2 -0
- package/src/web-components/interaction/BdsAccordion.mdx +10 -1
- package/src/web-components/interaction/BdsButton.mdx +15 -4
- package/src/web-components/interaction/BdsButton.stories.tsx +1 -1
- package/src/web-components/interaction/BdsCollapsible.mdx +3 -3
- package/src/web-components/interaction/BdsDialog.mdx +12 -7
- package/src/web-components/interaction/BdsDialog.stories.tsx +2 -2
- package/src/web-components/interaction/BdsDrawer.mdx +9 -6
- package/src/web-components/interaction/BdsDropdownMenu.mdx +20 -1
- package/src/web-components/interaction/BdsPopover.mdx +7 -3
- package/src/web-components/interaction/BdsSkipLink.mdx +14 -1
- package/src/web-components/interaction/BdsTabs.mdx +18 -1
- package/src/web-components/interaction/BdsToastProvider.mdx +21 -3
- package/src/web-components/interaction/BdsTooltip.mdx +4 -4
- package/src/web-components/interaction/bds-accordion-item.ts +10 -0
- package/src/web-components/interaction/bds-accordion.spec.ts +41 -0
- package/src/web-components/interaction/bds-accordion.ts +28 -2
- package/src/web-components/interaction/bds-button.spec.ts +81 -0
- package/src/web-components/interaction/bds-button.ts +55 -8
- package/src/web-components/interaction/bds-collapsible.spec.ts +93 -2
- package/src/web-components/interaction/bds-collapsible.ts +49 -7
- package/src/web-components/interaction/bds-dialog.spec.ts +49 -0
- package/src/web-components/interaction/bds-dialog.ts +69 -12
- package/src/web-components/interaction/bds-drawer.spec.ts +93 -4
- package/src/web-components/interaction/bds-drawer.ts +55 -22
- package/src/web-components/interaction/bds-dropdown-menu-item.ts +12 -1
- package/src/web-components/interaction/bds-dropdown-menu.spec.ts +63 -0
- package/src/web-components/interaction/bds-dropdown-menu.ts +45 -7
- package/src/web-components/interaction/bds-popover.spec.ts +80 -6
- package/src/web-components/interaction/bds-popover.ts +84 -33
- package/src/web-components/interaction/bds-skip-link.spec.ts +18 -0
- package/src/web-components/interaction/bds-skip-link.ts +29 -8
- package/src/web-components/interaction/bds-tab-panel.ts +10 -0
- package/src/web-components/interaction/bds-tab.spec.ts +25 -0
- package/src/web-components/interaction/bds-tab.ts +20 -5
- package/src/web-components/interaction/bds-tabs.spec.ts +92 -5
- package/src/web-components/interaction/bds-tabs.ts +42 -1
- package/src/web-components/interaction/bds-toast-provider.spec.ts +43 -0
- package/src/web-components/interaction/bds-toast-provider.ts +50 -21
- package/src/web-components/interaction/bds-tooltip.spec.ts +71 -0
- package/src/web-components/interaction/bds-tooltip.ts +100 -5
- package/src/web-components/interaction/form/BdsCheckbox.mdx +20 -1
- package/src/web-components/interaction/form/BdsCheckbox.stories.tsx +8 -0
- package/src/web-components/interaction/form/BdsCheckboxGroup.mdx +4 -3
- package/src/web-components/interaction/form/BdsCombobox.mdx +39 -2
- package/src/web-components/interaction/form/BdsCombobox.stories.tsx +31 -0
- package/src/web-components/interaction/form/BdsFieldGroup.mdx +8 -3
- package/src/web-components/interaction/form/BdsFieldGroup.stories.tsx +1 -1
- package/src/web-components/interaction/form/BdsFileInput.mdx +26 -5
- package/src/web-components/interaction/form/BdsFormInput.mdx +16 -1
- package/src/web-components/interaction/form/BdsNumberInput.mdx +34 -2
- package/src/web-components/interaction/form/BdsNumberInput.stories.tsx +27 -3
- package/src/web-components/interaction/form/BdsRadio.mdx +39 -12
- package/src/web-components/interaction/form/BdsRadio.stories.tsx +26 -0
- package/src/web-components/interaction/form/BdsRadioGroup.mdx +9 -4
- package/src/web-components/interaction/form/BdsSegmentedControl.mdx +37 -11
- package/src/web-components/interaction/form/BdsSelect.mdx +22 -4
- package/src/web-components/interaction/form/BdsSelect.stories.tsx +33 -0
- package/src/web-components/interaction/form/BdsSlider.mdx +36 -19
- package/src/web-components/interaction/form/BdsSlider.stories.tsx +24 -0
- package/src/web-components/interaction/form/BdsSwitch.mdx +38 -11
- package/src/web-components/interaction/form/BdsSwitch.stories.tsx +16 -0
- package/src/web-components/interaction/form/BdsTextarea.mdx +42 -16
- package/src/web-components/interaction/form/BdsTextarea.stories.tsx +21 -0
- package/src/web-components/interaction/form/bds-checkbox-group.spec.ts +99 -0
- package/src/web-components/interaction/form/bds-checkbox-group.ts +95 -9
- package/src/web-components/interaction/form/bds-checkbox.spec.ts +55 -0
- package/src/web-components/interaction/form/bds-checkbox.ts +30 -5
- package/src/web-components/interaction/form/bds-combobox.spec.ts +79 -0
- package/src/web-components/interaction/form/bds-combobox.ts +101 -16
- package/src/web-components/interaction/form/bds-field-group.spec.ts +158 -0
- package/src/web-components/interaction/form/bds-field-group.ts +167 -23
- package/src/web-components/interaction/form/bds-file-input.spec.ts +73 -5
- package/src/web-components/interaction/form/bds-file-input.ts +71 -34
- package/src/web-components/interaction/form/bds-form-input.spec.ts +22 -0
- package/src/web-components/interaction/form/bds-form-input.ts +27 -16
- package/src/web-components/interaction/form/bds-number-input.spec.ts +49 -0
- package/src/web-components/interaction/form/bds-number-input.ts +118 -29
- package/src/web-components/interaction/form/bds-radio-group.spec.ts +57 -0
- package/src/web-components/interaction/form/bds-radio-group.ts +60 -12
- package/src/web-components/interaction/form/bds-radio.spec.ts +123 -0
- package/src/web-components/interaction/form/bds-radio.ts +135 -22
- package/src/web-components/interaction/form/bds-segmented-control.spec.ts +55 -0
- package/src/web-components/interaction/form/bds-segmented-control.ts +81 -59
- package/src/web-components/interaction/form/bds-select.spec.ts +57 -0
- package/src/web-components/interaction/form/bds-select.ts +95 -7
- package/src/web-components/interaction/form/bds-slider.spec.ts +83 -0
- package/src/web-components/interaction/form/bds-slider.ts +154 -26
- package/src/web-components/interaction/form/bds-switch.spec.ts +68 -0
- package/src/web-components/interaction/form/bds-switch.ts +87 -20
- package/src/web-components/interaction/form/bds-textarea.spec.ts +71 -0
- package/src/web-components/interaction/form/bds-textarea.ts +108 -7
- package/src/web-components/layout/BdsGrid.mdx +6 -2
- package/src/web-components/layout/BdsGrid.stories.tsx +4 -0
- package/src/web-components/layout/bds-grid-item.spec.ts +21 -0
- package/src/web-components/layout/bds-grid-item.ts +17 -3
- package/src/web-components/layout/bds-grid.spec.ts +98 -0
- package/src/web-components/layout/bds-grid.ts +139 -19
- package/src/web-components/ui/BdsAlert.mdx +6 -5
- package/src/web-components/ui/BdsAlert.stories.tsx +6 -6
- package/src/web-components/ui/BdsAvatar.mdx +4 -2
- package/src/web-components/ui/BdsBreadcrumb.mdx +3 -2
- package/src/web-components/ui/BdsButtonContainer.mdx +64 -0
- package/src/web-components/ui/BdsButtonContainer.stories.tsx +84 -0
- package/src/web-components/ui/BdsCalendar.mdx +29 -4
- package/src/web-components/ui/BdsCalendar.stories.tsx +16 -18
- package/src/web-components/ui/BdsCalendarRange.mdx +71 -0
- package/src/web-components/ui/BdsCalendarRange.stories.tsx +31 -0
- package/src/web-components/ui/BdsCard.mdx +7 -3
- package/src/web-components/ui/BdsCard.stories.tsx +17 -1
- package/src/web-components/ui/BdsCarousel.mdx +40 -12
- package/src/web-components/ui/BdsDescriptionList.mdx +6 -1
- package/src/web-components/ui/BdsIconWrapper.mdx +3 -2
- package/src/web-components/ui/BdsLink.mdx +14 -2
- package/src/web-components/ui/BdsNotificationBanner.mdx +18 -0
- package/src/web-components/ui/BdsPagination.mdx +40 -1
- package/src/web-components/ui/BdsProgress.mdx +8 -2
- package/src/web-components/ui/BdsProgressCircle.mdx +5 -2
- package/src/web-components/ui/BdsRating.mdx +7 -0
- package/src/web-components/ui/BdsSectionHeader.mdx +22 -3
- package/src/web-components/ui/BdsSectionHeader.stories.tsx +15 -13
- package/src/web-components/ui/BdsTable.mdx +23 -2
- package/src/web-components/ui/BdsTable.stories.tsx +8 -2
- package/src/web-components/ui/BdsTypography.mdx +17 -1
- package/src/web-components/ui/bds-alert.spec.ts +17 -2
- package/src/web-components/ui/bds-alert.ts +31 -5
- package/src/web-components/ui/bds-avatar.spec.ts +29 -0
- package/src/web-components/ui/bds-avatar.ts +29 -11
- package/src/web-components/ui/bds-badge.spec.ts +5 -0
- package/src/web-components/ui/bds-badge.ts +11 -1
- package/src/web-components/ui/bds-breadcrumb.spec.ts +30 -0
- package/src/web-components/ui/bds-breadcrumb.ts +26 -4
- package/src/web-components/ui/bds-button-container.spec.ts +39 -0
- package/src/web-components/ui/bds-button-container.ts +123 -0
- package/src/web-components/ui/bds-button-group.spec.ts +14 -20
- package/src/web-components/ui/bds-button-group.ts +13 -64
- package/src/web-components/ui/bds-calendar-range.spec.ts +123 -0
- package/src/web-components/ui/bds-calendar-range.ts +307 -0
- package/src/web-components/ui/bds-calendar.spec.ts +176 -0
- package/src/web-components/ui/bds-calendar.ts +186 -344
- package/src/web-components/ui/bds-card.spec.ts +32 -0
- package/src/web-components/ui/bds-card.ts +35 -10
- package/src/web-components/ui/bds-carousel.spec.ts +147 -0
- package/src/web-components/ui/bds-carousel.ts +109 -32
- package/src/web-components/ui/bds-description-list.spec.ts +15 -0
- package/src/web-components/ui/bds-description-list.ts +37 -3
- package/src/web-components/ui/bds-icon-wrapper.spec.ts +12 -0
- package/src/web-components/ui/bds-icon-wrapper.ts +15 -14
- package/src/web-components/ui/bds-link.spec.ts +17 -0
- package/src/web-components/ui/bds-link.ts +26 -11
- package/src/web-components/ui/bds-loading.ts +10 -0
- package/src/web-components/ui/bds-notification-banner.spec.ts +13 -0
- package/src/web-components/ui/bds-notification-banner.ts +18 -1
- package/src/web-components/ui/bds-pagination.spec.ts +44 -0
- package/src/web-components/ui/bds-pagination.ts +39 -19
- package/src/web-components/ui/bds-progress-circle.spec.ts +21 -0
- package/src/web-components/ui/bds-progress-circle.ts +17 -5
- package/src/web-components/ui/bds-progress.spec.ts +21 -0
- package/src/web-components/ui/bds-progress.ts +17 -4
- package/src/web-components/ui/bds-rating.spec.ts +6 -0
- package/src/web-components/ui/bds-rating.ts +12 -2
- package/src/web-components/ui/bds-section-header.spec.ts +39 -8
- package/src/web-components/ui/bds-section-header.ts +47 -13
- package/src/web-components/ui/bds-separator.ts +10 -0
- package/src/web-components/ui/bds-skeleton.ts +10 -0
- package/src/web-components/ui/bds-table.spec.ts +63 -0
- package/src/web-components/ui/bds-table.ts +88 -28
- package/src/web-components/ui/bds-typography.spec.ts +47 -0
- package/src/web-components/ui/bds-typography.ts +28 -10
- package/src/web-components/ui/calendar-styles.ts +94 -0
- package/dist/web-components/chunk-7YURXHTS.js +0 -147
- package/dist/web-components/chunk-A3RLT3AS.js +0 -49
- package/dist/web-components/chunk-AGKJTMJI.js +0 -56
- package/dist/web-components/chunk-BQLZ7I4G.js +0 -56
- package/dist/web-components/chunk-DZOEPVFT.js +0 -107
- package/dist/web-components/chunk-JYYRJS2D.js +0 -118
- package/dist/web-components/chunk-Y4MAXTMA.js +0 -80
- package/dist/web-components/chunk-Y7V7LM6R.js +0 -98
- package/src/web-components/ui/BdsButtonGroup.mdx +0 -69
- package/src/web-components/ui/BdsButtonGroup.stories.tsx +0 -66
package/AGENTS.md
CHANGED
|
@@ -24,18 +24,18 @@ import '@boostdev/design-system-components/web-components';
|
|
|
24
24
|
## Component categories
|
|
25
25
|
|
|
26
26
|
### React (web)
|
|
27
|
-
- **ui/**: Accordion, Alert, Avatar, Badge, Breadcrumb, Calendar, Carousel, Collapsible, DescriptionList, Link, Loading, NotificationBanner, Pagination, Progress, ProgressCircle, Separator, Skeleton, SkipLink, Table, Tabs, Tooltip, Typography
|
|
27
|
+
- **ui/**: Accordion, Alert, Avatar, Badge, Breadcrumb, Calendar, CalendarRange, Carousel, Collapsible, DescriptionList, Link, Loading, NotificationBanner, Pagination, Progress, ProgressCircle, Separator, Skeleton, SkipLink, Table, Tabs, Tooltip, Typography
|
|
28
28
|
- **interaction/**: Button, Command, Dialog, Drawer, DropdownMenu, Popover, Rating, Toast (ToastProvider + useToast hook)
|
|
29
|
-
- **interaction/form/**: Checkbox, CheckboxGroup, Combobox, FileInput, FormInput, NumberInput, Radio, RadioGroup, SegmentedControl, Select, Slider, Switch, Textarea (+ atom primitives: Label, Message, InputContainer)
|
|
29
|
+
- **interaction/form/**: Checkbox, CheckboxGroup, Combobox, FieldGroup, FileInput, FormInput, NumberInput, Radio, RadioGroup, SegmentedControl, Select, Slider, Switch, Textarea (+ atom primitives: Label, Message, InputContainer)
|
|
30
30
|
- **layout/**: ButtonContainer (formerly ButtonGroup — deprecated alias still available), Card, Grid (supports `isMasonry` — CSS Grid Level 3 with row-span polyfill (auto-tunes the row-track unit to stay under browser implicit-grid caps; `masonryRowUnitPx` overrides) — and `autoSpanMedia` — per-item span derived from media aspect ratio), GridItem (supports `columnSpan="auto"`), IconWrapper, SectionHeader
|
|
31
31
|
|
|
32
32
|
### Web Components (experimental) — `src/web-components/`
|
|
33
33
|
Custom elements built with Lit. Entry: `src/web-components/index.ts`. Bundled with Lit (no peer dep required).
|
|
34
34
|
|
|
35
|
-
- **ui/**: `<bds-alert>`, `<bds-avatar>`, `<bds-badge>`, `<bds-breadcrumb>`, `<bds-button-group>`, `<bds-calendar>`, `<bds-card>`, `<bds-carousel>`, `<bds-description-list>`, `<bds-icon-wrapper>`, `<bds-link>`, `<bds-loading>`, `<bds-notification-banner>`, `<bds-pagination>`, `<bds-progress>`, `<bds-progress-circle>`, `<bds-rating>`, `<bds-section-header>`, `<bds-separator>`, `<bds-skeleton>`, `<bds-table>`, `<bds-typography>`
|
|
35
|
+
- **ui/**: `<bds-alert>`, `<bds-avatar>`, `<bds-badge>`, `<bds-breadcrumb>`, `<bds-button-group>`, `<bds-calendar>`, `<bds-calendar-range>`, `<bds-card>`, `<bds-carousel>`, `<bds-description-list>`, `<bds-icon-wrapper>`, `<bds-link>`, `<bds-loading>`, `<bds-notification-banner>`, `<bds-pagination>`, `<bds-progress>`, `<bds-progress-circle>`, `<bds-rating>`, `<bds-section-header>`, `<bds-separator>`, `<bds-skeleton>`, `<bds-table>`, `<bds-typography>`
|
|
36
36
|
- **layout/**: `<bds-grid>`, `<bds-grid-item>`
|
|
37
37
|
- **interaction/**: `<bds-accordion>`, `<bds-accordion-item>`, `<bds-button>`, `<bds-collapsible>`, `<bds-dialog>`, `<bds-drawer>`, `<bds-dropdown-menu>`, `<bds-dropdown-menu-item>`, `<bds-popover>`, `<bds-skip-link>`, `<bds-tab>`, `<bds-tab-panel>`, `<bds-tabs>`, `<bds-toast-provider>`, `<bds-tooltip>`
|
|
38
|
-
- **interaction/form/**: `<bds-checkbox>`, `<bds-checkbox-group>`, `<bds-combobox>`, `<bds-file-input>`, `<bds-form-input>`, `<bds-number-input>`, `<bds-radio>`, `<bds-radio-group>`, `<bds-segmented-control>`, `<bds-select>`, `<bds-slider>`, `<bds-switch>`, `<bds-textarea>`
|
|
38
|
+
- **interaction/form/**: `<bds-checkbox>`, `<bds-checkbox-group>`, `<bds-combobox>`, `<bds-field-group>`, `<bds-file-input>`, `<bds-form-input>`, `<bds-number-input>`, `<bds-radio>`, `<bds-radio-group>`, `<bds-segmented-control>`, `<bds-select>`, `<bds-slider>`, `<bds-switch>`, `<bds-textarea>`
|
|
39
39
|
|
|
40
40
|
**Not ported** (deferred): `Command` — depends on `cmdk` React library internals. Use `<bds-combobox>` as the web component alternative.
|
|
41
41
|
|
|
@@ -144,8 +144,8 @@ Components that express an active, checked, or filled state use a two-level chai
|
|
|
144
144
|
|
|
145
145
|
```css
|
|
146
146
|
/* component var → global semantic token */
|
|
147
|
-
background-color: var(--checkbox_color-active, var(--
|
|
148
|
-
border-color: var(--checkbox_color-active, var(--
|
|
147
|
+
background-color: var(--checkbox_color-active, var(--bdc-color_active));
|
|
148
|
+
border-color: var(--checkbox_color-active, var(--bdc-color_active));
|
|
149
149
|
border: solid var(--checkbox_color-on-active, var(--bdc-color_on-active));
|
|
150
150
|
```
|
|
151
151
|
|
|
@@ -172,7 +172,7 @@ Prefer semantic tokens over palette tokens. Key tokens for component states:
|
|
|
172
172
|
|
|
173
173
|
| Token | Meaning | Used in |
|
|
174
174
|
|-------|---------|---------|
|
|
175
|
-
| `--bdc-color_active` | Active / checked / filled state (= `--bds-
|
|
175
|
+
| `--bdc-color_active` | Active / checked / filled state (= `--bds-color_interactive` by default) | Checkbox, Radio, Slider, Progress, ProgressCircle |
|
|
176
176
|
| `--bdc-color_on-active` | Content on active background | Checkbox tick, Radio inner dot |
|
|
177
177
|
| `--bdc-color_active--subtle` | Subtle active background | Switch track when on |
|
|
178
178
|
| `--bdc-color_active--strong` | Strong active foreground | Switch thumb when on |
|
|
@@ -181,11 +181,32 @@ Prefer semantic tokens over palette tokens. Key tokens for component states:
|
|
|
181
181
|
| `--bds-color_interactive` | Focus ring colour | All focusable inputs |
|
|
182
182
|
| `--bds-color_error` | Error state | All form components |
|
|
183
183
|
|
|
184
|
-
|
|
184
|
+
A relative-colour box-shadow formula is recommended for focus rings that need a soft, tinted treatment instead of the standard outline:
|
|
185
185
|
```css
|
|
186
186
|
box-shadow: var(--component_focus-ring, 0 0 0 2px rgb(from var(--bds-color_interactive) r g b / 20%));
|
|
187
187
|
```
|
|
188
|
-
Error focus rings substitute `--bds-color_error` for `--bds-color_interactive`.
|
|
188
|
+
Error focus rings would substitute `--bds-color_error` for `--bds-color_interactive`. Note: no component currently implements this formula — all components today use `outline: var(--bds-outline_default)` + `outline-offset: var(--bds-outline_offset)` on `:focus-visible` (see "bdc border tokens" above and "Key decisions" below).
|
|
189
|
+
|
|
190
|
+
### Role tokens, state tokens and grounds (foundation ≥2.2.0)
|
|
191
|
+
|
|
192
|
+
Foundation 2.2.0 added named role tokens for accent colours, alongside state and additional ground tokens. These are the **canonical** names going forward for new work:
|
|
193
|
+
|
|
194
|
+
- **Role tokens** — `--bds-color_primary`, `--bds-color_secondary`, `--bds-color_accent-1`, `--bds-color_accent-2`, `--bds-color_accent-3`. Each has the full `--subtle` / `--strong` pair and an `on-` counterpart for content drawn on top (`--bds-color_on-primary`, `--bds-color_on-primary--subtle`, `--bds-color_on-primary--strong`, etc.) — same pairing law as the existing status colours.
|
|
195
|
+
- **Deprecated hue aliases** — `--bds-color_blue`, `--bds-color_green`, `--bds-color_orange` (and their `--subtle`/`--strong`/`on-` variants) still resolve (they now alias to `primary`/`accent-1`/`accent-2` respectively) but are deprecated and scheduled for removal in foundation 3.0. Do not migrate existing hue-name references to role names purely for its own sake — only role names are new-foundation-only, so a reference written against a hue alias keeps working on older foundations that a role-name reference would not.
|
|
196
|
+
- **State tokens** — `--bds-color_interactive--hover` and `--bds-color_interactive--active` give explicit hover/active treatments for interactive elements, instead of components deriving their own tint.
|
|
197
|
+
- **`--bds-color_on-bg--muted`** — de-emphasised text on the page background (e.g. helper text, timestamps). It is guaranteed ≥7:1 contrast against `--bds-color_bg`, so it must never be used to *look* disabled — muted text is still fully readable body content.
|
|
198
|
+
- **`--bds-color_on-bg--border`** — hairline/divider colour intended for use against the page background.
|
|
199
|
+
- **Disabled pair** — `--bds-color_disabled` (background) / `--bds-color_on-disabled` (content) are the dedicated disabled-state tokens. Never reuse `on-bg--muted` for a disabled look, and never put `on-disabled` on content that must stay readable — it is intentionally low-contrast.
|
|
200
|
+
- **`--bds-color_bg--strong`** (+ `--bds-color_on-bg--strong`) — a "prominent ground" for surfaces that need to read as raised above the page: it equals `--bds-color_bg` in light mode but steps up to a distinct grey-800 in dark mode, so cards, dialogs, drawers, toasts, popovers, dropdown/listbox panels and similar floating surfaces get visible separation from the page in dark mode without any extra styling. Regular in-flow content (page backgrounds, inline sections, form-control backgrounds) should keep using plain `--bds-color_bg`.
|
|
201
|
+
|
|
202
|
+
**Backwards-compatible fallback-chain pattern**: because this package's peer range is `>=2.0.0`, every reference to a token introduced after 2.0.0 must fall back to a token that exists on 2.0.0, so consumers on older foundations don't get a broken `var()`. For example, migrating a raised surface to `bg--strong` while preserving whatever hook/default that surface already had:
|
|
203
|
+
```css
|
|
204
|
+
/* before */
|
|
205
|
+
background-color: var(--card_color, var(--bds-color_bg));
|
|
206
|
+
/* after — falls back to plain bg on foundation <2.2.0 */
|
|
207
|
+
background-color: var(--card_color, var(--bds-color_bg--strong, var(--bds-color_bg)));
|
|
208
|
+
```
|
|
209
|
+
Never reference a 2.2.0+ token without this trailing fallback, and never raise the `@boostdev/design-system-foundation` peerDependency floor just to use a new token — the fallback chain is what lets new tokens ship without a breaking change.
|
|
189
210
|
|
|
190
211
|
### Semantic vs raw token layers
|
|
191
212
|
|
|
@@ -320,50 +341,55 @@ The following table lists every component-local token extracted from `src/compon
|
|
|
320
341
|
|
|
321
342
|
| Component | Tokens |
|
|
322
343
|
|---|---|
|
|
323
|
-
| Accordion | `--accordion_border`, `--accordion_radius`, `--accordion_trigger-bg--hover` |
|
|
324
|
-
| Alert | `--alert_bg`, `--alert_text`, `--alert_border`, `--alert_bg--info`, `--alert_text--info`, `--alert_border--info`, `--alert_bg--success`, `--alert_text--success`, `--alert_border--success`, `--alert_bg--warning`, `--alert_text--warning`, `--alert_border--warning`, `--alert_bg--error`, `--alert_text--error`, `--alert_border--error`, `--alert_dismiss-border`, `--alert_dismiss-radius`, `--alert_dismiss-opacity--hover` |
|
|
344
|
+
| Accordion | `--accordion_border`, `--accordion_radius`, `--accordion_trigger-bg--hover`, `--accordion_shadow` |
|
|
345
|
+
| Alert | `--alert_bg`, `--alert_text`, `--alert_border`, `--alert_bg--info`, `--alert_text--info`, `--alert_border--info`, `--alert_bg--success`, `--alert_text--success`, `--alert_border--success`, `--alert_bg--warning`, `--alert_text--warning`, `--alert_border--warning`, `--alert_bg--error`, `--alert_text--error`, `--alert_border--error`, `--alert_dismiss-border`, `--alert_dismiss-radius`, `--alert_dismiss-opacity--hover`, `--alert_dismiss-shadow`, `--alert_dismiss-size`, `--alert_radius` |
|
|
325
346
|
| Avatar | `--avatar_size`, `--avatar_radius`, `--avatar_bg`, `--avatar_text` |
|
|
326
347
|
| Badge | `--badge_radius`, `--badge_font-size`, `--badge_bg`, `--badge_text`, `--badge_bg--primary`, `--badge_text--primary`, `--badge_bg--secondary`, `--badge_text--secondary`, `--badge_bg--success`, `--badge_text--success`, `--badge_bg--error`, `--badge_text--error`, `--badge_bg--warning`, `--badge_text--warning` |
|
|
327
348
|
| Button | `--button_color`, `--button_on-color`, `--button_color--on-bg`, `--button_radius`, `--button_height`, `--button_font-size`, `--button_bg`, `--button_text`, `--button_border`, `--button_pulse-color`, `--button_bg--hover`, `--button_text--hover`, `--button_border--hover`, `--button_pulse-color--hover`, `--button_bg--outline`, `--button_text--outline`, `--button_border--outline`, `--button_bg--outline-hover`, `--button_text--outline-hover`, `--button_border--outline-hover` |
|
|
328
|
-
|
|
|
329
|
-
|
|
|
330
|
-
|
|
|
331
|
-
|
|
|
332
|
-
|
|
|
333
|
-
|
|
|
334
|
-
|
|
|
349
|
+
| ButtonContainer | `--buttonGroup_gap` |
|
|
350
|
+
| Calendar | `--calendar_border`, `--calendar_radius`, `--calendar_shadow`, `--calendar_button-radius`, `--calendar_navBtn-bg--hover`, `--calendar_day-bg--hover`, `--calendar_today-color`, `--calendar_today-border`, `--calendar_day-bg--selected`, `--calendar_day-color--selected`, `--calendar_day-bg--in-range`, `--calendar_size`, `--calendar_today-shadow` |
|
|
351
|
+
| Card | `--card_color`, `--card_on-color`, `--card_shadow--default`, `--card_shadow--elevated`, `--card_shadow--outlined`, `--card_border`, `--card_padding`, `--card_shadow--clickable-hover`, `--card_shadow--default-hover`, `--card_shadow--elevated-hover`, `--card_shadow--outlined-hover`, `--card_radius`, `--card_shadow--active`, `--card_transition` |
|
|
352
|
+
| Carousel | `--carousel_indicator-radius`, `--carousel_navBtn-bg--hover`, `--carousel_navBtn-radius`, `--carousel_navBtn-shadow` |
|
|
353
|
+
| Checkbox | `--checkbox_color`, `--checkbox_border`, `--checkbox_radius`, `--checkbox_shadow`, `--checkbox_color_bg`, `--checkbox_color-active`, `--checkbox_color-on-active`, `--checkbox_gap`, `--checkbox_offset`, `--checkbox_size` |
|
|
354
|
+
| CheckboxGroup | `--checkboxGroup_gap`, `--checkboxGroup_items-gap`, `--checkboxGroup_legend-color`, `--checkboxGroup_legend-font-family`, `--checkboxGroup_legend-font-size`, `--checkboxGroup_legend-font-weight`, `--checkboxGroup_legend-gap`, `--checkboxGroup_required-color` |
|
|
355
|
+
| Collapsible | `--collapsible_border-width`, `--collapsible_border-color`, `--collapsible_border-radius`, `--collapsible_color`, `--collapsible_bg`, `--collapsible_bg--hover`, `--collapsible_on-color`, `--collapsible_border` |
|
|
356
|
+
| Combobox | `--combobox_border`, `--combobox_radius`, `--combobox_shadow`, `--combobox_color_bg`, `--combobox_color`, `--combobox_on-color`, `--combobox_listbox-border`, `--combobox_listbox-radius`, `--combobox_listbox-shadow`, `--combobox_option-bg--highlighted`, `--combobox_option-color--highlighted`, `--combobox_listbox-bg`, `--combobox_listbox-max-block-size`, `--combobox_listbox-padding-block`, `--combobox_option-font-size`, `--combobox_option-padding-block`, `--combobox_option-padding-inline` |
|
|
357
|
+
| Command | `--command_color`, `--command_on-color`, `--command_border`, `--command_shadow`, `--command_item-bg--active`, `--command_kbd-radius`, `--command_radius` |
|
|
335
358
|
| Dialog | `--dialog_border`, `--dialog_radius`, `--dialog_shadow`, `--dialog_color`, `--dialog_on-color`, `--dialog_close-radius`, `--dialog_close-border` |
|
|
336
|
-
| Drawer | `--drawer_color`, `--drawer_on-color`, `--drawer_close-radius`, `--drawer_close-bg--hover` |
|
|
359
|
+
| Drawer | `--drawer_color`, `--drawer_on-color`, `--drawer_close-radius`, `--drawer_close-bg--hover`, `--drawer_shadow` |
|
|
337
360
|
| DropdownMenu | `--dropdown_border`, `--dropdown_radius`, `--dropdown_color`, `--dropdown_on-color`, `--dropdown_shadow`, `--dropdown_item-bg--hover`, `--dropdown_item-color--hover` |
|
|
338
|
-
| FieldGroup | `--fieldGroup_gap`, `--fieldGroup_min-field-width`, `--fieldGroup_legend-padding-block`, `--fieldGroup_legend-gap`, `--fieldGroup_legend-border-block-end`, `--fieldGroup_legend-color`, `--fieldGroup_legend-font-size`, `--fieldGroup_legend-font-weight`, `--fieldGroup_legend-line-height` |
|
|
339
|
-
| FileInput | `--fileInput_color`, `--fileInput_border-color`, `--fileInput_border-color--hover`, `--fileInput_bg--hover` |
|
|
340
|
-
| FormInput | `--input_border`, `--input_radius`, `--input_shadow`, `--input_color`, `--input_color_bg` |
|
|
361
|
+
| FieldGroup | `--fieldGroup_gap`, `--fieldGroup_min-field-width`, `--fieldGroup_collapse-threshold`, `--fieldGroup_legend-padding-block`, `--fieldGroup_legend-gap`, `--fieldGroup_legend-border-block-end`, `--fieldGroup_legend-color`, `--fieldGroup_legend-font-size`, `--fieldGroup_legend-font-weight`, `--fieldGroup_legend-line-height`, `--fieldGroup_legend-font-family` |
|
|
362
|
+
| FileInput | `--fileInput_color`, `--fileInput_border-color`, `--fileInput_border-color--hover`, `--fileInput_bg--hover`, `--fileInput_bg--dragging`, `--fileInput_border`, `--fileInput_font-size`, `--fileInput_font-size--hint`, `--fileInput_gap`, `--fileInput_label-margin`, `--fileInput_padding`, `--fileInput_radius` |
|
|
363
|
+
| FormInput | `--input_border`, `--input_radius`, `--input_shadow`, `--input_color`, `--input_color_bg`, `--formInput_border`, `--formInput_color`, `--formInput_color_bg`, `--formInput_font-family`, `--formInput_font-size`, `--formInput_padding`, `--formInput_radius`, `--formInput_shadow` |
|
|
341
364
|
| Grid | `--grid_gap`, `--grid_columns` |
|
|
342
|
-
| IconWrapper | `--icon-wrapper-radius`, `--icon-wrapper-color`, `--icon-wrapper_on-color` |
|
|
365
|
+
| IconWrapper | `--icon-wrapper-radius`, `--icon-wrapper-color`, `--icon-wrapper_on-color`, `--icon-wrapper_color`, `--icon-wrapper_margin-block-end`, `--icon-wrapper_margin-block-start`, `--icon-wrapper_radius`, `--icon-wrapper_size` |
|
|
343
366
|
| Link | `--link_color`, `--link_color-hover`, `--link_color--default`, `--link_color-hover--default`, `--link_color--subtle`, `--link_color-hover--subtle`, `--link_color--standalone`, `--link_color-hover--standalone` |
|
|
344
|
-
| Loading | `--loading_radius` |
|
|
345
|
-
| NotificationBanner | `--banner_bg`, `--banner_text`, `--banner_border`, `--banner_bg--info`, `--banner_text--info`, `--banner_border--info`, `--banner_bg--success`, `--banner_text--success`, `--banner_border--success`, `--banner_bg--warning`, `--banner_text--warning`, `--banner_border--warning`, `--banner_bg--error`, `--banner_text--error`, `--banner_border--error`, `--banner_dismiss-radius`, `--banner_dismiss-border`, `--banner_dismiss-opacity--hover` |
|
|
346
|
-
| NumberInput | `--numberInput_border`, `--numberInput_radius`, `--numberInput_shadow`, `--numberInput_color`, `--numberInput_stepper-bg`, `--numberInput_stepper-color`, `--numberInput_stepper-bg--hover`, `--numberInput_stepper-opacity--hover` |
|
|
347
|
-
| Pagination | `--pagination_radius`, `--btn_bg`, `--btn_color`, `--btn_border`, `--btn_bg--hover`, `--btn_color--hover`, `--btn_bg--active`, `--btn_color--active`, `--btn_border--active` |
|
|
367
|
+
| Loading | `--loading_radius`, `--loading_color` |
|
|
368
|
+
| NotificationBanner | `--banner_bg`, `--banner_text`, `--banner_border`, `--banner_bg--info`, `--banner_text--info`, `--banner_border--info`, `--banner_bg--success`, `--banner_text--success`, `--banner_border--success`, `--banner_bg--warning`, `--banner_text--warning`, `--banner_border--warning`, `--banner_bg--error`, `--banner_text--error`, `--banner_border--error`, `--banner_dismiss-radius`, `--banner_dismiss-border`, `--banner_dismiss-opacity--hover`, `--banner_dismiss-size` |
|
|
369
|
+
| NumberInput | `--numberInput_border`, `--numberInput_radius`, `--numberInput_shadow`, `--numberInput_color`, `--numberInput_stepper-bg`, `--numberInput_stepper-color`, `--numberInput_stepper-bg--hover`, `--numberInput_stepper-opacity--hover`, `--numberInput_font-size`, `--numberInput_padding`, `--numberInput_stepper-padding` |
|
|
370
|
+
| Pagination | `--pagination_radius`, `--btn_bg`, `--btn_color`, `--btn_border`, `--btn_bg--hover`, `--btn_color--hover`, `--btn_bg--active`, `--btn_color--active`, `--btn_border--active`, `--pagination_item-bg`, `--pagination_item-bg--active`, `--pagination_item-bg--hover`, `--pagination_item-border`, `--pagination_item-border--active`, `--pagination_item-color`, `--pagination_item-color--active`, `--pagination_item-color--hover` |
|
|
348
371
|
| Popover | `--popover_z-index`, `--popover_max-width`, `--popover_max-height`, `--popover_border`, `--popover_radius`, `--popover_color`, `--popover_on-color`, `--popover_shadow` |
|
|
349
|
-
| Progress | `--progress_height`, `--progress_radius`, `--progress_color-active` |
|
|
350
|
-
| ProgressCircle | `--progressCircle_color-active` |
|
|
351
|
-
| Radio | `--radio_color`, `--radio_border`, `--radio_radius`, `--radio_shadow`, `--radio_color_bg`, `--radio_color-active`, `--radio_description-color` |
|
|
372
|
+
| Progress | `--progress_height`, `--progress_radius`, `--progress_color-active`, `--progress_color-track` |
|
|
373
|
+
| ProgressCircle | `--progressCircle_color-active`, `--progressCircle_color-track`, `--progressCircle_font-size--small` |
|
|
374
|
+
| Radio | `--radio_color`, `--radio_border`, `--radio_radius`, `--radio_shadow`, `--radio_color_bg`, `--radio_color-active`, `--radio_description-color`, `--radio_offset`, `--radio_size` |
|
|
375
|
+
| RadioGroup | `--radioGroup_gap`, `--radioGroup_items-gap`, `--radioGroup_legend-color`, `--radioGroup_legend-font-family`, `--radioGroup_legend-font-size`, `--radioGroup_legend-font-weight`, `--radioGroup_legend-gap`, `--radioGroup_required-color` |
|
|
352
376
|
| Rating | `--rating_color`, `--rating_color--filled` |
|
|
353
|
-
| SectionHeader | `--sectionHeader-title-color`, `--sectionHeader_subtitle-color`, `--sectionHeader_title-size`, `--sectionHeader_title-line-height`, `--sectionHeader_title-weight`, `--sectionHeader_subtitle-size` |
|
|
354
|
-
| SegmentedControl | `--control_track-bg`, `--control_radius`, `--control_thumb-radius`, `--control_thumb-bg`, `--control_label-color`, `--control_label-color--active`, `--control_label-color--hover`, `--control_item-bg`, `--control_item-bg--active`, `--control_indicator-color` |
|
|
355
|
-
| Select | `--select_border`, `--select_radius`, `--select_shadow`, `--select_color_bg`, `--select_color`, `--select_chevron-color` |
|
|
356
|
-
| Separator | `--separator_color`, `--separator_thickness` |
|
|
357
|
-
|
|
|
358
|
-
|
|
|
359
|
-
|
|
|
360
|
-
|
|
|
361
|
-
|
|
|
362
|
-
|
|
|
363
|
-
|
|
|
364
|
-
|
|
|
365
|
-
|
|
366
|
-
|
|
377
|
+
| SectionHeader | `--sectionHeader-title-color`, `--sectionHeader_subtitle-color`, `--sectionHeader_title-size`, `--sectionHeader_title-line-height`, `--sectionHeader_title-weight`, `--sectionHeader_subtitle-size`, `--sectionHeader_gap`, `--sectionHeader_subtitle-line-height`, `--sectionHeader_title-color` |
|
|
378
|
+
| SegmentedControl | `--control_track-bg`, `--control_radius`, `--control_thumb-radius`, `--control_thumb-bg`, `--control_label-color`, `--control_label-color--active`, `--control_label-color--hover`, `--control_item-bg`, `--control_item-bg--active`, `--control_indicator-color`, `--control_item-padding`, `--control_thumb-shadow`, `--control_track-pad` |
|
|
379
|
+
| Select | `--select_border`, `--select_radius`, `--select_shadow`, `--select_color_bg`, `--select_color`, `--select_chevron-color`, `--select_chevron-size`, `--select_padding`, `--select_padding-end` |
|
|
380
|
+
| Separator | `--separator_color`, `--separator_thickness`, `--separator_length` |
|
|
381
|
+
| Skeleton | `--skeleton_color-base`, `--skeleton_color-highlight`, `--skeleton_min-block-size`, `--skeleton_radius` |
|
|
382
|
+
| SkipLink | `--skip-link_border`, `--skip-link_font-size`, `--skip-link_inset`, `--skip-link_padding`, `--skip-link_radius`, `--skip-link_shadow`, `--skip-link_z-index` |
|
|
383
|
+
| Slider | `--slider_color`, `--slider_track-height`, `--slider_thumb-size`, `--slider_track-radius`, `--slider_color-active`, `--slider_track-bg`, `--slider_thumb-radius`, `--slider_color--error` |
|
|
384
|
+
| Switch | `--switch_color`, `--switch_thumb-size`, `--switch_track-pad`, `--switch_track-radius`, `--switch_track-bg`, `--switch_shadow`, `--switch_thumb-bg`, `--switch_thumb-radius`, `--switch_border-color--error`, `--switch_track-bg--active`, `--switch_thumb-bg--active` |
|
|
385
|
+
| Table | `--table_border`, `--table_radius`, `--table_sortBtn-color--hover`, `--table_row-bg--hover`, `--table_cell-padding`, `--table_font-size`, `--table_header-font-size`, `--table_shadow` |
|
|
386
|
+
| Tabs | `--tab_color`, `--tab_border-color`, `--tab_color--active`, `--tab_border-color--active`, `--tab_color--hover`, `--tab_padding`, `--tabs_gap`, `--tabs_panel-padding` |
|
|
387
|
+
| Textarea | `--textarea_border`, `--textarea_radius`, `--textarea_shadow`, `--textarea_color_bg`, `--textarea_color`, `--textarea_font-family`, `--textarea_font-size`, `--textarea_line-height`, `--textarea_min-block-size`, `--textarea_padding` |
|
|
388
|
+
| Toast | `--toast_color`, `--toast_on-color`, `--toast_color--success`, `--toast_on-color--success`, `--toast_color--warning`, `--toast_on-color--warning`, `--toast_color--info`, `--toast_on-color--info`, `--toast_color--error`, `--toast_on-color--error`, `--toast_radius`, `--toast_shadow` |
|
|
389
|
+
| Tooltip | `--tooltip_radius`, `--tooltip_bg`, `--tooltip_text`, `--tooltip_font-size`, `--tooltip_max-inline-size`, `--tooltip_offset`, `--tooltip_padding` |
|
|
390
|
+
| Typography | `--typography_color`, `--typography_font-size--body`, `--typography_font-size--body_s`, `--typography_font-size--h1`, `--typography_font-size--h2`, `--typography_font-size--h3` |
|
|
391
|
+
|
|
392
|
+
Components not listed have no component-local override tokens: Breadcrumb, DescriptionList, GridItem, InputContainer, Label, Message.
|
|
367
393
|
|
|
368
394
|
## MCP server
|
|
369
395
|
|
|
@@ -375,8 +401,11 @@ https://ds.boostdev.nl/api/mcp
|
|
|
375
401
|
|
|
376
402
|
Connect to it to look up component props, CSS custom properties, and tokens without reading source files. Use
|
|
377
403
|
`ds_get_component` before writing any component code — it returns the props interface **and** all
|
|
378
|
-
overridable CSS custom properties with their defaults.
|
|
379
|
-
|
|
404
|
+
overridable CSS custom properties with their defaults.
|
|
405
|
+
|
|
406
|
+
`ds_get_component` covers three platforms via the `platform` argument: `"web"` (default — React components, props + CSS custom properties), `"web-component"` (framework-agnostic `<bds-*>` custom elements — attributes, CSS custom properties, `bds-*` events, and slots), and `"native"` (React Native). `ds_list_components` and `ds_search` include all three.
|
|
407
|
+
|
|
408
|
+
Override CSS variables on the component element or any parent in plain CSS (no `@layer` needed):
|
|
380
409
|
|
|
381
410
|
```css
|
|
382
411
|
.my-branded-button {
|
package/README.md
CHANGED
|
@@ -346,6 +346,22 @@ import { SegmentedControl } from '@boostdev/design-system-components';
|
|
|
346
346
|
|
|
347
347
|
Children-based API — pass `<button>`, `<a>`, or router `<Link>` elements directly. Active item is set via `selectedIndex` or auto-detected from `aria-current="page"` / `aria-pressed={true}` / `aria-selected={true}`. Variants: `outline` (default) · `filled`. Sizes: `small` · `medium` (default) · `large`.
|
|
348
348
|
|
|
349
|
+
#### FieldGroup
|
|
350
|
+
|
|
351
|
+
```tsx
|
|
352
|
+
import { FieldGroup, FormInput } from '@boostdev/design-system-components';
|
|
353
|
+
|
|
354
|
+
<FieldGroup legend="Address" variant="horizontal">
|
|
355
|
+
<FormInput label="Street" name="street" />
|
|
356
|
+
<FormInput label="City" name="city" />
|
|
357
|
+
</FieldGroup>
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
Semantically groups related fields under a single `<fieldset>`. `horizontal` (default) lays fields
|
|
361
|
+
into a row that collapses to a single column via a CSS container query when the group itself is too
|
|
362
|
+
narrow; `vertical` always stacks. Accepts any form control as a child. Omit `legend` and provide
|
|
363
|
+
`aria-label` / `aria-labelledby` when the surrounding context already names the group.
|
|
364
|
+
|
|
349
365
|
---
|
|
350
366
|
|
|
351
367
|
### Layout components
|
|
@@ -500,8 +516,8 @@ Every component exposes CSS custom properties as a styling API. Set them on a pa
|
|
|
500
516
|
```css
|
|
501
517
|
/* Override the button colour for a specific context */
|
|
502
518
|
.hero .button {
|
|
503
|
-
--button_color: var(--bds-
|
|
504
|
-
--button_on-color: var(--bds-
|
|
519
|
+
--button_color: var(--bds-color_success);
|
|
520
|
+
--button_on-color: var(--bds-color_on-success);
|
|
505
521
|
}
|
|
506
522
|
```
|
|
507
523
|
|
|
@@ -535,22 +551,24 @@ shapes from the foundation. Override the component-scoped variable to change ind
|
|
|
535
551
|
### Overriding active/checked state colour
|
|
536
552
|
|
|
537
553
|
Components with a checked or filled state (Checkbox, Radio, Slider, Progress, ProgressCircle)
|
|
538
|
-
expose a component-scoped variable that falls back to the
|
|
554
|
+
expose a component-scoped variable that falls back to the shared `--bdc-color_active` hook token
|
|
555
|
+
(defined in `src/css/bdc.css`, defaults to `--bds-color_interactive`):
|
|
539
556
|
|
|
540
557
|
```css
|
|
541
558
|
/* Override the active colour for a single checkbox */
|
|
542
559
|
.my-checkbox {
|
|
543
|
-
--checkbox_color-active: var(--bds-
|
|
544
|
-
--checkbox_color-on-active: var(--bds-
|
|
560
|
+
--checkbox_color-active: var(--bds-color_blue);
|
|
561
|
+
--checkbox_color-on-active: var(--bds-color_white);
|
|
545
562
|
}
|
|
546
563
|
|
|
547
564
|
/* Override for all sliders in a section */
|
|
548
565
|
.settings-panel {
|
|
549
|
-
--slider_color-active: var(--bds-
|
|
566
|
+
--slider_color-active: var(--bds-color_green);
|
|
550
567
|
}
|
|
551
568
|
```
|
|
552
569
|
|
|
553
|
-
The two-level chain means you can also override
|
|
570
|
+
The two-level chain means you can also override `--bdc-color_active` / `--bdc-color_on-active`
|
|
571
|
+
once to retheme every component's active state at the same time — see Theming below.
|
|
554
572
|
|
|
555
573
|
---
|
|
556
574
|
|
|
@@ -563,28 +581,31 @@ retheme all components at once:
|
|
|
563
581
|
/* tokens.config.css — import after the design system CSS */
|
|
564
582
|
@layer boostdev.tokens.override {
|
|
565
583
|
:root {
|
|
566
|
-
--bds-
|
|
567
|
-
--bds-
|
|
568
|
-
--bds-interactive: var(--bds-BASE__color--orange);
|
|
584
|
+
--bds-color_interactive: var(--bds-color_orange);
|
|
585
|
+
--bds-color_on-interactive: var(--bds-color_white);
|
|
569
586
|
}
|
|
570
587
|
}
|
|
571
588
|
```
|
|
572
589
|
|
|
590
|
+
On foundation `>=2.2.0`, prefer the named role tokens (`--bds-color_primary`, `--bds-color_secondary`,
|
|
591
|
+
`--bds-color_accent-1..3`, each with `--subtle`/`--strong` steps and `on-` pairs) over the deprecated
|
|
592
|
+
hue names (`--bds-color_blue`, `--bds-color_green`, `--bds-color_orange`) for new theming work. Raised
|
|
593
|
+
surfaces — cards, dialogs, drawers, popovers, dropdown panels, toasts — use `--bds-color_bg--strong`,
|
|
594
|
+
which matches `--bds-color_bg` in light mode but steps up to a distinct tone in dark mode for visible
|
|
595
|
+
separation from the page.
|
|
596
|
+
|
|
573
597
|
### Active state tokens
|
|
574
598
|
|
|
575
|
-
The `--
|
|
576
|
-
and progress indicators. Override it once to retheme checkboxes, radio
|
|
577
|
-
|
|
599
|
+
The `--bdc-color_active` family (defined in `src/css/bdc.css`) controls the checked/filled/selected
|
|
600
|
+
colour across form controls and progress indicators. Override it once to retheme checkboxes, radio
|
|
601
|
+
buttons, sliders, and progress bars simultaneously:
|
|
578
602
|
|
|
579
603
|
```css
|
|
580
604
|
@layer boostdev.tokens.override {
|
|
581
605
|
:root {
|
|
582
|
-
--
|
|
583
|
-
--
|
|
584
|
-
--
|
|
585
|
-
--bds-on-active--subtle: var(--bds-BASE__color--blue--900);
|
|
586
|
-
--bds-active--strong: var(--bds-BASE__color--blue--700); /* Switch thumb */
|
|
587
|
-
--bds-on-active--strong: var(--bds-BASE__color--white);
|
|
606
|
+
--bdc-color_active: var(--bds-color_blue);
|
|
607
|
+
--bdc-color_on-active: var(--bds-color_white);
|
|
608
|
+
--bdc-color_active--subtle: var(--bds-color_blue--subtle); /* Switch track */
|
|
588
609
|
}
|
|
589
610
|
}
|
|
590
611
|
```
|
|
@@ -600,7 +621,7 @@ pnpm build # compile to dist/
|
|
|
600
621
|
pnpm typecheck # TypeScript check (library code only)
|
|
601
622
|
pnpm lint # ESLint
|
|
602
623
|
pnpm lint:css # Stylelint
|
|
603
|
-
pnpm test # Vitest —
|
|
624
|
+
pnpm test # Vitest — runs the full test suite
|
|
604
625
|
pnpm mcp:start # Start the MCP server locally (http://localhost:3001/api/mcp)
|
|
605
626
|
pnpm storybook # Storybook dev server on port 6006
|
|
606
627
|
```
|