@boostdev/design-system-components 2.15.0 → 2.17.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 +22 -15
- package/dist/client.cjs +271 -205
- package/dist/client.css +813 -650
- package/dist/client.d.cts +19 -4
- package/dist/client.d.ts +19 -4
- package/dist/client.js +206 -139
- package/dist/index.cjs +271 -205
- package/dist/index.css +813 -650
- package/dist/index.d.cts +19 -4
- package/dist/index.d.ts +19 -4
- package/dist/index.js +206 -139
- package/dist/web-components/chunk-2DHW2WJZ.js +154 -0
- package/dist/web-components/{chunk-3WAV6MDN.js → chunk-3FSGP35V.js} +1 -0
- package/dist/web-components/{chunk-SYNLFKD3.js → chunk-3LQKFSMR.js} +6 -0
- package/dist/web-components/{chunk-KA3VPKMY.js → chunk-4MB2ICSK.js} +1 -0
- package/dist/web-components/{chunk-6G22I2CK.js → chunk-5ATTKUCP.js} +33 -3
- package/dist/web-components/{chunk-IDSM74LM.js → chunk-6XL5P76D.js} +3 -3
- package/dist/web-components/{chunk-P24JYC5V.js → chunk-7VXRMCAL.js} +10 -4
- package/dist/web-components/{chunk-CUKQ2L5B.js → chunk-AGI6YQRC.js} +9 -16
- package/dist/web-components/chunk-BDRV452N.js +51 -0
- package/dist/web-components/{chunk-3AY2YKCM.js → chunk-CKCPV347.js} +1 -0
- package/dist/web-components/{chunk-HBLJ4SLY.js → chunk-DD3OUXNG.js} +5 -5
- package/dist/web-components/{chunk-RVF7W653.js → chunk-DGOCPKHI.js} +30 -10
- package/dist/web-components/{chunk-2OLVQUBU.js → chunk-EYCW7TKB.js} +8 -15
- package/dist/web-components/{chunk-VANAKB6D.js → chunk-GPJWLAKU.js} +33 -16
- package/dist/web-components/{chunk-VED2DFJ6.js → chunk-GQNQBEYR.js} +8 -15
- package/dist/web-components/{chunk-WFVKU4GX.js → chunk-IKAJLROF.js} +49 -4
- package/dist/web-components/{chunk-RSZ3BWBK.js → chunk-KSK4RZZQ.js} +30 -7
- package/dist/web-components/{chunk-FEDABOR5.js → chunk-LHFUXZ52.js} +7 -15
- package/dist/web-components/{chunk-M3ECULRH.js → chunk-RBF7WPLI.js} +10 -8
- package/dist/web-components/{chunk-BPYKZVDK.js → chunk-SJLMW2VR.js} +2 -2
- package/dist/web-components/chunk-SRKQ6GST.js +40 -0
- package/dist/web-components/{chunk-5HUAFCU6.js → chunk-TJV7UIXC.js} +7 -0
- package/dist/web-components/{chunk-LDIPCTRN.js → chunk-WWWJCSXN.js} +50 -4
- package/dist/web-components/{chunk-J3HVUIUH.js → chunk-XI2U6U26.js} +8 -15
- package/dist/web-components/{chunk-JH6LQKLK.js → chunk-XJU7KITO.js} +8 -15
- package/dist/web-components/{chunk-JV5QT2OU.js → chunk-YLDQOESI.js} +27 -13
- package/dist/web-components/globals.js +1 -1
- package/dist/web-components/index.d.ts +1 -0
- package/dist/web-components/index.js +35 -30
- package/dist/web-components/interaction/bds-dropdown-menu-group.d.ts +41 -0
- package/dist/web-components/interaction/bds-dropdown-menu-group.js +7 -0
- package/dist/web-components/interaction/bds-dropdown-menu-item.d.ts +14 -1
- package/dist/web-components/interaction/bds-dropdown-menu-item.js +1 -1
- package/dist/web-components/interaction/bds-dropdown-menu.d.ts +2 -1
- package/dist/web-components/interaction/bds-dropdown-menu.js +1 -1
- package/dist/web-components/interaction/bds-tab.d.ts +5 -0
- package/dist/web-components/interaction/bds-tab.js +1 -1
- package/dist/web-components/interaction/bds-tooltip.js +1 -1
- package/dist/web-components/interaction/form/bds-checkbox-group.d.ts +6 -0
- package/dist/web-components/interaction/form/bds-checkbox-group.js +2 -1
- package/dist/web-components/interaction/form/bds-checkbox.js +1 -1
- package/dist/web-components/interaction/form/bds-combobox.js +2 -1
- package/dist/web-components/interaction/form/bds-form-input.js +2 -1
- package/dist/web-components/interaction/form/bds-number-input.js +2 -1
- package/dist/web-components/interaction/form/bds-radio-group.d.ts +5 -0
- package/dist/web-components/interaction/form/bds-radio-group.js +2 -1
- package/dist/web-components/interaction/form/bds-radio.js +1 -1
- package/dist/web-components/interaction/form/bds-select.js +2 -1
- package/dist/web-components/interaction/form/bds-slider.js +2 -1
- package/dist/web-components/interaction/form/bds-switch.js +1 -1
- package/dist/web-components/interaction/form/bds-textarea.js +2 -1
- package/dist/web-components/ui/bds-alert.d.ts +8 -1
- package/dist/web-components/ui/bds-alert.js +1 -1
- package/dist/web-components/ui/bds-avatar.d.ts +11 -0
- 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-notification-banner.d.ts +14 -1
- package/dist/web-components/ui/bds-notification-banner.js +1 -1
- package/dist/web-components/ui/bds-rating.js +1 -1
- package/dist/web-components/ui/bds-section-header.d.ts +6 -0
- 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-table.js +1 -1
- package/package.json +6 -2
- package/src/components/interaction/DropdownMenu/DropdownMenu.mdx +35 -4
- package/src/components/interaction/DropdownMenu/DropdownMenu.module.css +58 -10
- package/src/components/interaction/DropdownMenu/DropdownMenu.spec.tsx +114 -1
- package/src/components/interaction/DropdownMenu/DropdownMenu.stories.tsx +25 -0
- package/src/components/interaction/DropdownMenu/DropdownMenu.tsx +69 -17
- package/src/components/interaction/Rating/Rating.mdx +4 -1
- package/src/components/interaction/Rating/Rating.module.css +9 -0
- package/src/components/interaction/Rating/Rating.spec.tsx +9 -0
- package/src/components/interaction/form/Checkbox/Checkbox.module.css +1 -0
- package/src/components/interaction/form/Checkbox/Checkbox.spec.tsx +7 -0
- package/src/components/interaction/form/CheckboxGroup/CheckboxGroup.mdx +2 -1
- package/src/components/interaction/form/CheckboxGroup/CheckboxGroup.module.css +8 -1
- package/src/components/interaction/form/CheckboxGroup/CheckboxGroup.spec.tsx +27 -0
- package/src/components/interaction/form/CheckboxGroup/CheckboxGroup.tsx +1 -1
- package/src/components/interaction/form/Combobox/Combobox.module.css +1 -0
- package/src/components/interaction/form/Combobox/Combobox.spec.tsx +7 -0
- package/src/components/interaction/form/FormInput/FormInput.mdx +9 -0
- package/src/components/interaction/form/FormInput/FormInput.module.css +1 -0
- package/src/components/interaction/form/FormInput/FormInput.spec.tsx +7 -0
- package/src/components/interaction/form/NumberInput/NumberInput.module.css +1 -0
- package/src/components/interaction/form/NumberInput/NumberInput.spec.tsx +7 -0
- package/src/components/interaction/form/Radio/Radio.module.css +1 -0
- package/src/components/interaction/form/Radio/Radio.spec.tsx +7 -0
- package/src/components/interaction/form/RadioGroup/RadioGroup.mdx +2 -1
- package/src/components/interaction/form/RadioGroup/RadioGroup.module.css +8 -1
- package/src/components/interaction/form/RadioGroup/RadioGroup.spec.tsx +27 -0
- package/src/components/interaction/form/RadioGroup/RadioGroup.tsx +1 -1
- package/src/components/interaction/form/Select/Select.module.css +1 -0
- package/src/components/interaction/form/Select/Select.spec.tsx +7 -0
- package/src/components/interaction/form/Switch/Switch.module.css +1 -0
- package/src/components/interaction/form/Switch/Switch.spec.tsx +7 -0
- package/src/components/interaction/form/Textarea/Textarea.module.css +1 -0
- package/src/components/interaction/form/Textarea/Textarea.spec.tsx +7 -0
- package/src/components/interaction/form/atoms/Message.module.css +14 -3
- package/src/components/interaction/form/atoms/Message.spec.tsx +22 -0
- package/src/components/interaction/form/atoms/Message.tsx +5 -0
- package/src/components/layout/SectionHeader/SectionHeader.mdx +18 -5
- package/src/components/layout/SectionHeader/SectionHeader.module.css +35 -14
- package/src/components/layout/SectionHeader/SectionHeader.spec.tsx +44 -0
- package/src/components/layout/SectionHeader/SectionHeader.stories.tsx +5 -0
- package/src/components/layout/SectionHeader/SectionHeader.tsx +3 -1
- package/src/components/ui/Alert/Alert.mdx +12 -1
- package/src/components/ui/Alert/Alert.module.css +32 -3
- package/src/components/ui/Alert/Alert.spec.tsx +27 -0
- package/src/components/ui/Alert/Alert.stories.tsx +20 -0
- package/src/components/ui/Alert/Alert.tsx +8 -1
- package/src/components/ui/Avatar/Avatar.mdx +22 -2
- package/src/components/ui/Avatar/Avatar.module.css +29 -2
- package/src/components/ui/Avatar/Avatar.spec.tsx +26 -0
- package/src/components/ui/Avatar/Avatar.stories.tsx +23 -0
- package/src/components/ui/Avatar/Avatar.tsx +4 -2
- package/src/components/ui/Avatar/avatarTone.spec.ts +41 -0
- package/src/components/ui/Avatar/avatarTone.ts +22 -0
- package/src/components/ui/Badge/Badge.mdx +1 -1
- package/src/components/ui/Badge/Badge.module.css +2 -2
- package/src/components/ui/Badge/Badge.spec.tsx +8 -0
- package/src/components/ui/Collapsible/Collapsible.module.css +1 -2
- package/src/components/ui/NotificationBanner/NotificationBanner.mdx +27 -1
- package/src/components/ui/NotificationBanner/NotificationBanner.module.css +33 -3
- package/src/components/ui/NotificationBanner/NotificationBanner.spec.tsx +35 -0
- package/src/components/ui/NotificationBanner/NotificationBanner.stories.tsx +25 -0
- package/src/components/ui/NotificationBanner/NotificationBanner.tsx +15 -1
- package/src/components/ui/Separator/Separator.mdx +1 -0
- package/src/components/ui/Separator/Separator.module.css +6 -0
- package/src/components/ui/Separator/Separator.spec.tsx +19 -0
- package/src/components/ui/Separator/Separator.stories.tsx +15 -0
- package/src/components/ui/Table/Table.mdx +4 -1
- package/src/components/ui/Table/Table.module.css +7 -7
- package/src/components/ui/Table/Table.spec.tsx +11 -0
- package/src/components/ui/Tabs/Tabs.mdx +11 -5
- package/src/components/ui/Tabs/Tabs.module.css +23 -5
- package/src/components/ui/Tabs/Tabs.spec.tsx +39 -0
- package/src/components/ui/Tabs/Tabs.tsx +2 -1
- package/src/components/ui/Tabs/getNodeText.spec.tsx +23 -0
- package/src/components/ui/Tabs/getNodeText.ts +13 -0
- package/src/components/ui/Tooltip/Tooltip.mdx +6 -3
- package/src/components/ui/Tooltip/Tooltip.module.css +6 -2
- package/src/components/ui/Tooltip/Tooltip.spec.tsx +10 -0
- package/src/components/ui/Tooltip/Tooltip.stories.tsx +13 -0
- package/src/css/bdc.css +5 -2
- package/src/css/bdc.spec.ts +65 -0
- package/src/stories/DesignSystem/Borders.mdx +17 -9
- package/src/test/token-contract.spec.ts +1 -0
- package/src/web-components/globals.ts +10 -4
- package/src/web-components/index.ts +1 -0
- package/src/web-components/interaction/BdsAccordion.mdx +1 -1
- package/src/web-components/interaction/BdsAccordion.stories.tsx +1 -1
- package/src/web-components/interaction/BdsButton.mdx +1 -1
- package/src/web-components/interaction/BdsButton.stories.tsx +1 -1
- package/src/web-components/interaction/BdsCollapsible.mdx +1 -1
- package/src/web-components/interaction/BdsCollapsible.stories.tsx +1 -1
- package/src/web-components/interaction/BdsDialog.mdx +1 -1
- package/src/web-components/interaction/BdsDialog.stories.tsx +1 -1
- package/src/web-components/interaction/BdsDrawer.mdx +1 -1
- package/src/web-components/interaction/BdsDrawer.stories.tsx +1 -1
- package/src/web-components/interaction/BdsDropdownMenu.mdx +62 -6
- package/src/web-components/interaction/BdsDropdownMenu.stories.tsx +32 -7
- package/src/web-components/interaction/BdsPopover.mdx +1 -1
- package/src/web-components/interaction/BdsPopover.stories.tsx +1 -1
- package/src/web-components/interaction/BdsSkipLink.mdx +1 -1
- package/src/web-components/interaction/BdsSkipLink.stories.tsx +1 -1
- package/src/web-components/interaction/BdsTabs.mdx +10 -1
- package/src/web-components/interaction/BdsTabs.stories.tsx +1 -1
- package/src/web-components/interaction/BdsToastProvider.mdx +1 -1
- package/src/web-components/interaction/BdsToastProvider.stories.tsx +1 -1
- package/src/web-components/interaction/BdsTooltip.mdx +13 -5
- package/src/web-components/interaction/BdsTooltip.stories.tsx +12 -12
- package/src/web-components/interaction/bds-dropdown-menu-group.ts +72 -0
- package/src/web-components/interaction/bds-dropdown-menu-item.ts +65 -17
- package/src/web-components/interaction/bds-dropdown-menu.spec.ts +135 -0
- package/src/web-components/interaction/bds-dropdown-menu.ts +5 -4
- package/src/web-components/interaction/bds-tab.spec.ts +34 -2
- package/src/web-components/interaction/bds-tab.ts +31 -6
- package/src/web-components/interaction/bds-tooltip.spec.ts +16 -0
- package/src/web-components/interaction/bds-tooltip.ts +10 -8
- package/src/web-components/interaction/form/BdsCheckbox.mdx +5 -1
- package/src/web-components/interaction/form/BdsCheckbox.stories.tsx +1 -1
- package/src/web-components/interaction/form/BdsCheckboxGroup.mdx +5 -1
- package/src/web-components/interaction/form/BdsCheckboxGroup.stories.tsx +1 -1
- package/src/web-components/interaction/form/BdsCombobox.mdx +5 -1
- package/src/web-components/interaction/form/BdsCombobox.stories.tsx +1 -1
- package/src/web-components/interaction/form/BdsFieldGroup.stories.tsx +1 -1
- package/src/web-components/interaction/form/BdsFileInput.mdx +1 -1
- package/src/web-components/interaction/form/BdsFileInput.stories.tsx +1 -1
- package/src/web-components/interaction/form/BdsFormInput.mdx +8 -1
- package/src/web-components/interaction/form/BdsFormInput.stories.tsx +1 -1
- package/src/web-components/interaction/form/BdsNumberInput.mdx +5 -1
- package/src/web-components/interaction/form/BdsNumberInput.stories.tsx +1 -1
- package/src/web-components/interaction/form/BdsRadio.mdx +5 -1
- package/src/web-components/interaction/form/BdsRadio.stories.tsx +1 -1
- package/src/web-components/interaction/form/BdsRadioGroup.mdx +5 -1
- package/src/web-components/interaction/form/BdsRadioGroup.stories.tsx +1 -1
- package/src/web-components/interaction/form/BdsSegmentedControl.mdx +1 -1
- package/src/web-components/interaction/form/BdsSegmentedControl.stories.tsx +1 -1
- package/src/web-components/interaction/form/BdsSelect.mdx +5 -1
- package/src/web-components/interaction/form/BdsSelect.stories.tsx +1 -1
- package/src/web-components/interaction/form/BdsSlider.mdx +5 -1
- package/src/web-components/interaction/form/BdsSlider.stories.tsx +1 -1
- package/src/web-components/interaction/form/BdsSwitch.mdx +5 -1
- package/src/web-components/interaction/form/BdsSwitch.stories.tsx +1 -1
- package/src/web-components/interaction/form/BdsTextarea.mdx +5 -1
- package/src/web-components/interaction/form/BdsTextarea.stories.tsx +1 -1
- package/src/web-components/interaction/form/bds-checkbox-group.spec.ts +32 -3
- package/src/web-components/interaction/form/bds-checkbox-group.ts +33 -17
- package/src/web-components/interaction/form/bds-checkbox.ts +1 -0
- package/src/web-components/interaction/form/bds-combobox.ts +6 -16
- package/src/web-components/interaction/form/bds-form-input.ts +6 -16
- package/src/web-components/interaction/form/bds-number-input.ts +6 -16
- package/src/web-components/interaction/form/bds-radio-group.spec.ts +32 -3
- package/src/web-components/interaction/form/bds-radio-group.ts +26 -14
- package/src/web-components/interaction/form/bds-radio.ts +1 -0
- package/src/web-components/interaction/form/bds-select.ts +6 -16
- package/src/web-components/interaction/form/bds-slider.ts +5 -16
- package/src/web-components/interaction/form/bds-switch.ts +1 -0
- package/src/web-components/interaction/form/bds-textarea.ts +6 -16
- package/src/web-components/interaction/form/field-message.spec.ts +62 -0
- package/src/web-components/interaction/form/field-message.ts +55 -0
- package/src/web-components/layout/BdsGrid.mdx +1 -1
- package/src/web-components/layout/BdsGrid.stories.tsx +1 -1
- package/src/web-components/layout/BdsGridItem.mdx +1 -1
- package/src/web-components/layout/BdsGridItem.stories.tsx +1 -1
- package/src/web-components/ui/BdsAlert.mdx +20 -1
- package/src/web-components/ui/BdsAlert.stories.tsx +29 -3
- package/src/web-components/ui/BdsAvatar.mdx +20 -3
- package/src/web-components/ui/BdsAvatar.stories.tsx +25 -2
- package/src/web-components/ui/BdsBadge.mdx +2 -1
- package/src/web-components/ui/BdsBadge.stories.tsx +1 -1
- package/src/web-components/ui/BdsBreadcrumb.mdx +1 -1
- package/src/web-components/ui/BdsBreadcrumb.stories.tsx +1 -1
- package/src/web-components/ui/BdsButtonContainer.mdx +1 -1
- package/src/web-components/ui/BdsButtonContainer.stories.tsx +1 -1
- package/src/web-components/ui/BdsCalendar.mdx +1 -1
- package/src/web-components/ui/BdsCalendar.stories.tsx +1 -1
- package/src/web-components/ui/BdsCalendarRange.mdx +1 -1
- package/src/web-components/ui/BdsCalendarRange.stories.tsx +1 -1
- package/src/web-components/ui/BdsCard.mdx +1 -1
- package/src/web-components/ui/BdsCard.stories.tsx +1 -1
- package/src/web-components/ui/BdsCarousel.mdx +1 -1
- package/src/web-components/ui/BdsCarousel.stories.tsx +1 -1
- package/src/web-components/ui/BdsDescriptionList.mdx +1 -1
- package/src/web-components/ui/BdsDescriptionList.stories.tsx +1 -1
- package/src/web-components/ui/BdsIconWrapper.mdx +1 -1
- package/src/web-components/ui/BdsIconWrapper.stories.tsx +1 -1
- package/src/web-components/ui/BdsLink.mdx +1 -1
- package/src/web-components/ui/BdsLink.stories.tsx +1 -1
- package/src/web-components/ui/BdsLoading.mdx +1 -1
- package/src/web-components/ui/BdsLoading.stories.tsx +1 -1
- package/src/web-components/ui/BdsNotificationBanner.mdx +11 -2
- package/src/web-components/ui/BdsNotificationBanner.stories.tsx +29 -2
- package/src/web-components/ui/BdsPagination.mdx +1 -1
- package/src/web-components/ui/BdsPagination.stories.tsx +1 -1
- package/src/web-components/ui/BdsProgress.mdx +1 -1
- package/src/web-components/ui/BdsProgress.stories.tsx +1 -1
- package/src/web-components/ui/BdsProgressCircle.mdx +1 -1
- package/src/web-components/ui/BdsProgressCircle.stories.tsx +1 -1
- package/src/web-components/ui/BdsRating.mdx +5 -2
- package/src/web-components/ui/BdsRating.stories.tsx +1 -1
- package/src/web-components/ui/BdsSectionHeader.mdx +18 -6
- package/src/web-components/ui/BdsSectionHeader.stories.tsx +10 -2
- package/src/web-components/ui/BdsSeparator.mdx +2 -1
- package/src/web-components/ui/BdsSeparator.stories.tsx +13 -1
- package/src/web-components/ui/BdsSkeleton.mdx +1 -1
- package/src/web-components/ui/BdsSkeleton.stories.tsx +1 -1
- package/src/web-components/ui/BdsTable.mdx +5 -1
- package/src/web-components/ui/BdsTable.stories.tsx +1 -1
- package/src/web-components/ui/BdsTypography.mdx +1 -1
- package/src/web-components/ui/BdsTypography.stories.tsx +1 -1
- package/src/web-components/ui/bds-alert.spec.ts +34 -0
- package/src/web-components/ui/bds-alert.ts +36 -3
- package/src/web-components/ui/bds-avatar.spec.ts +47 -0
- package/src/web-components/ui/bds-avatar.ts +36 -3
- package/src/web-components/ui/bds-badge.spec.ts +6 -0
- package/src/web-components/ui/bds-badge.ts +2 -2
- package/src/web-components/ui/bds-notification-banner.spec.ts +52 -0
- package/src/web-components/ui/bds-notification-banner.ts +55 -3
- package/src/web-components/ui/bds-rating.spec.ts +7 -0
- package/src/web-components/ui/bds-rating.ts +6 -0
- package/src/web-components/ui/bds-section-header.spec.ts +36 -3
- package/src/web-components/ui/bds-section-header.ts +32 -10
- package/src/web-components/ui/bds-separator.spec.ts +8 -0
- package/src/web-components/ui/bds-separator.ts +7 -0
- package/src/web-components/ui/bds-table.spec.ts +11 -0
- package/src/web-components/ui/bds-table.ts +5 -5
- package/dist/web-components/chunk-QZAIRJ75.js +0 -111
package/AGENTS.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
A component library with two targets:
|
|
6
6
|
- **React (web)** — CSS Modules, design tokens from `@boostdev/design-system-foundation`, full component suite
|
|
7
|
-
- **Web Components** (
|
|
7
|
+
- **Web Components** (alpha) — Lit-based custom elements, framework-agnostic, entry point `@boostdev/design-system-components/web-components`
|
|
8
8
|
|
|
9
9
|
React Native components live in a separate package: [`@boostdev/design-system-react-native`](https://gitlab.com/b00stdev/boostdev-design-system-react-native).
|
|
10
10
|
|
|
@@ -29,17 +29,17 @@ import '@boostdev/design-system-components/web-components';
|
|
|
29
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
|
-
### Web Components (
|
|
32
|
+
### Web Components (alpha) — `src/web-components/`
|
|
33
33
|
Custom elements built with Lit. Entry: `src/web-components/index.ts`. Lit is bundled into the runtime JS (no peer dep required) and listed as a regular `dependency` so its type declarations resolve for consumers — the emitted `.d.ts` files `import` from `lit`.
|
|
34
34
|
|
|
35
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
|
-
- **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>`
|
|
37
|
+
- **interaction/**: `<bds-accordion>`, `<bds-accordion-item>`, `<bds-button>`, `<bds-collapsible>`, `<bds-dialog>`, `<bds-drawer>`, `<bds-dropdown-menu>`, `<bds-dropdown-menu-group>`, `<bds-dropdown-menu-item>`, `<bds-popover>`, `<bds-skip-link>`, `<bds-tab>`, `<bds-tab-panel>`, `<bds-tabs>`, `<bds-toast-provider>`, `<bds-tooltip>`
|
|
38
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
|
|
|
42
|
-
Storybook stories live at `src/web-components/{ui,interaction,interaction/form}/Bds*.stories.tsx` (title path `'Web Components/{UI|Interaction|Form}/{Name}'`, tags `['!stable', '
|
|
42
|
+
Storybook stories live at `src/web-components/{ui,interaction,interaction/form}/Bds*.stories.tsx` (title path `'Web Components/{UI|Interaction|Form}/{Name}'`, tags `['!stable', 'alpha']`). Stories use a thin React wrapper to enable Storybook controls.
|
|
43
43
|
|
|
44
44
|
MDX docs live at `src/web-components/{ui,interaction,interaction/form}/Bds*.mdx` — one per component.
|
|
45
45
|
|
|
@@ -137,6 +137,10 @@ Components use `box-shadow: inset` (not `outline` or `border`) for all visual fr
|
|
|
137
137
|
- The neutral shadow default is `0 0 0 0 transparent` — `none` is invalid in a comma-separated `box-shadow` list.
|
|
138
138
|
- `:focus-visible` always uses `outline` + `var(--bds-outline_default)` (never the inset shadow).
|
|
139
139
|
- Focus rings use `--bds-outline_default` (2 px solid interactive colour, 2 px offset) — defined in `src/css/bdc.css`.
|
|
140
|
+
- The `:root` defaults in `src/css/bdc.css` and `src/web-components/globals.ts` live in `@layer boostdev.tokens.semantic`, so consumers override them in `@layer boostdev.tokens.override`: `--bdc_color--focus`, `--bdc_color--error`, the `--bdc-color_active` / `--bdc-color_on-active` family, `--bdc-outline_width`, `--bdc-outline_width--error`, `--bds-outline_default`, `--bds-outline_offset`. Keep both files in sync (`src/css/bdc.spec.ts` checks it). Never put a token default in `boostdev.component`: that layer outranks `tokens.override`.
|
|
141
|
+
- `--bdc-outline_width` is registered `inherits: true` so a `:root` value reaches every component. A component must not set it on an element that has children with their own frame (they would inherit it); read a component hook in the `box-shadow` instead, like Collapsible's `var(--collapsible_border-width, var(--bdc-outline_width))`. Error states set `--bdc-outline_width: var(--bdc-outline_width--error, 2px)` on the field itself.
|
|
142
|
+
- `--bdc_color`, `--bdc-outline_radius`, `--bdc-outline_offset` and `--bdc-outline_shadow` stay `inherits: false` (one instance per element). A component's rest frame colour is themed through its own hook (for example `--dropdown_border-color`), never through `--bdc_color` on `:root`.
|
|
143
|
+
- Internal slots that a modifier class writes and a base rule reads end in `--variant`, `--state` or `--size` (`mcp/extract.ts` hides only those). Reset a slot on the base element (`--x--variant: initial;`) when a modifier sets it and the component can be nested, so a nested default instance does not inherit it.
|
|
140
144
|
|
|
141
145
|
### Two-level fallback for active/selected state
|
|
142
146
|
|
|
@@ -178,6 +182,8 @@ Prefer semantic tokens over palette tokens. Key tokens for component states:
|
|
|
178
182
|
| `--bdc-color_active--strong` | Strong active foreground | Switch thumb when on |
|
|
179
183
|
| `--bds-color_success--subtle` | Subtle background for success variant | Alert, NotificationBanner |
|
|
180
184
|
| `--bds-color_on-success--subtle` | Text on success subtle background | Alert, NotificationBanner |
|
|
185
|
+
| `--bds-color_error--subtle` | Subtle background for error variant | Alert, NotificationBanner, DropdownMenu destructive hover |
|
|
186
|
+
| `--bds-color_on-error--subtle` | Text on error subtle background | Alert, NotificationBanner, DropdownMenu destructive hover |
|
|
181
187
|
| `--bds-color_interactive` | Focus ring colour | All focusable inputs |
|
|
182
188
|
| `--bds-color_error` | Error state | All form components |
|
|
183
189
|
|
|
@@ -364,8 +370,8 @@ The following table lists every component-local token extracted from `src/compon
|
|
|
364
370
|
| Component | Tokens |
|
|
365
371
|
|---|---|
|
|
366
372
|
| Accordion | `--accordion_border`, `--accordion_radius`, `--accordion_trigger-bg--hover`, `--accordion_shadow` |
|
|
367
|
-
| 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-
|
|
368
|
-
| Avatar | `--avatar_size`, `--avatar_radius`, `--avatar_bg`, `--avatar_text` |
|
|
373
|
+
| Alert | `--alert_radius`, `--alert_bg`, `--alert_text`, `--alert_border-width`, `--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_gradient`, `--alert_shadow`, `--alert_accent--info`, `--alert_accent--success`, `--alert_accent--warning`, `--alert_accent--error`, `--alert_dismiss-border`, `--alert_dismiss-radius`, `--alert_dismiss-size`, `--alert_dismiss-shadow`, `--alert_dismiss-opacity--hover` |
|
|
374
|
+
| Avatar | `--avatar_size`, `--avatar_radius`, `--avatar_bg`, `--avatar_text`, `--avatar_bg--primary`, `--avatar_text--primary`, `--avatar_bg--secondary`, `--avatar_text--secondary`, `--avatar_bg--accent-1`, `--avatar_text--accent-1`, `--avatar_bg--accent-2`, `--avatar_text--accent-2`, `--avatar_bg--accent-3`, `--avatar_text--accent-3` |
|
|
369
375
|
| 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` |
|
|
370
376
|
| Button | `--button_color`, `--button_on-color`, `--button_color--on-bg`, `--button_radius`, `--button_height`, `--button_font-size`, `--button_icon-offset`, `--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` |
|
|
371
377
|
| ButtonContainer | `--buttonGroup_gap` |
|
|
@@ -374,12 +380,12 @@ The following table lists every component-local token extracted from `src/compon
|
|
|
374
380
|
| Carousel | `--carousel_indicator-radius`, `--carousel_navBtn-bg--hover`, `--carousel_navBtn-radius`, `--carousel_navBtn-shadow` |
|
|
375
381
|
| 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` |
|
|
376
382
|
| 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` |
|
|
377
|
-
| Collapsible | `--collapsible_border
|
|
383
|
+
| Collapsible | `--collapsible_border`, `--collapsible_border-color`, `--collapsible_border-radius`, `--collapsible_border-width`, `--collapsible_color`, `--collapsible_bg`, `--collapsible_bg--hover`, `--collapsible_on-color` |
|
|
378
384
|
| 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` |
|
|
379
385
|
| Command | `--command_color`, `--command_on-color`, `--command_border`, `--command_shadow`, `--command_item-bg--active`, `--command_kbd-radius`, `--command_radius` |
|
|
380
386
|
| Dialog | `--dialog_border`, `--dialog_radius`, `--dialog_shadow`, `--dialog_color`, `--dialog_on-color`, `--dialog_close-radius`, `--dialog_close-border` |
|
|
381
387
|
| Drawer | `--drawer_color`, `--drawer_on-color`, `--drawer_close-radius`, `--drawer_close-bg--hover`, `--drawer_shadow` |
|
|
382
|
-
| DropdownMenu | `--dropdown_border`, `--dropdown_radius`, `--dropdown_color`, `--dropdown_on-color`, `--dropdown_shadow`, `--dropdown_item-bg--hover`, `--dropdown_item-color--hover` |
|
|
388
|
+
| DropdownMenu | `--dropdown_padding`, `--dropdown_border`, `--dropdown_border-color`, `--dropdown_radius`, `--dropdown_color`, `--dropdown_on-color`, `--dropdown_shadow`, `--dropdown_separator-color`, `--dropdown_group-label-padding`, `--dropdown_group-label-font-size`, `--dropdown_group-label-font-weight`, `--dropdown_group-label-color`, `--dropdown_item-padding`, `--dropdown_item-radius`, `--dropdown_item-font-size`, `--dropdown_item-opacity--disabled`, `--dropdown_item-bg--hover`, `--dropdown_item-color--hover`, `--dropdown_item-color--destructive`, `--dropdown_item-bg--destructive-hover`, `--dropdown_item-color--destructive-hover`, `--dropdown_shortcut-color`, `--dropdown_shortcut-font-size` |
|
|
383
389
|
| 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` |
|
|
384
390
|
| 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` |
|
|
385
391
|
| 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` |
|
|
@@ -387,7 +393,8 @@ The following table lists every component-local token extracted from `src/compon
|
|
|
387
393
|
| 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` |
|
|
388
394
|
| 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` |
|
|
389
395
|
| Loading | `--loading_radius`, `--loading_color` |
|
|
390
|
-
|
|
|
396
|
+
| Message (form atom) | `--formMessage_font-size`, `--formMessage_gap`, `--formMessage_color--error`, `--formMessage_font-weight--error`, `--formMessage_color--hint`, `--formMessage_font-style--hint`, `--formMessage_icon-size` |
|
|
397
|
+
| NotificationBanner | `--banner_bg`, `--banner_text`, `--banner_border-width`, `--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_gradient`, `--banner_shadow`, `--banner_accent--info`, `--banner_accent--success`, `--banner_accent--warning`, `--banner_accent--error`, `--banner_dismiss-size`, `--banner_dismiss-radius`, `--banner_dismiss-border`, `--banner_dismiss-opacity--hover` |
|
|
391
398
|
| 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` |
|
|
392
399
|
| 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` |
|
|
393
400
|
| Popover | `--popover_z-index`, `--popover_max-width`, `--popover_max-height`, `--popover_border`, `--popover_radius`, `--popover_color`, `--popover_on-color`, `--popover_shadow` |
|
|
@@ -395,20 +402,20 @@ The following table lists every component-local token extracted from `src/compon
|
|
|
395
402
|
| ProgressCircle | `--progressCircle_color-active`, `--progressCircle_color-track`, `--progressCircle_font-size--small` |
|
|
396
403
|
| Radio | `--radio_color`, `--radio_border`, `--radio_radius`, `--radio_shadow`, `--radio_color_bg`, `--radio_color-active`, `--radio_description-color`, `--radio_offset`, `--radio_size` |
|
|
397
404
|
| 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` |
|
|
398
|
-
| Rating | `--rating_color`, `--rating_color--filled` |
|
|
399
|
-
| SectionHeader | `--sectionHeader-title-color`, `--sectionHeader_subtitle-color`, `--sectionHeader_title-size`, `--sectionHeader_title-line-height`, `--sectionHeader_title-weight`, `--sectionHeader_subtitle-size`, `--
|
|
405
|
+
| Rating | `--rating_color`, `--rating_color--filled`, `--rating_stroke-color`, `--rating_stroke-color--filled`, `--rating_stroke-width` |
|
|
406
|
+
| SectionHeader | `--sectionHeader_gap`, `--sectionHeader_title-color`, `--sectionHeader-title-color`, `--sectionHeader_title-font-family`, `--sectionHeader_subtitle-color`, `--sectionHeader_title-size`, `--sectionHeader_title-line-height`, `--sectionHeader_title-weight`, `--sectionHeader_subtitle-size`, `--sectionHeader_subtitle-line-height`, `--sectionHeader_title-gradient` |
|
|
400
407
|
| 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` |
|
|
401
408
|
| Select | `--select_border`, `--select_radius`, `--select_shadow`, `--select_color_bg`, `--select_color`, `--select_chevron-color`, `--select_chevron-size`, `--select_padding`, `--select_padding-end` |
|
|
402
|
-
| Separator | `--separator_color`, `--separator_thickness`, `--separator_length` |
|
|
409
|
+
| Separator | `--separator_color`, `--separator_thickness`, `--separator_spacing`, `--separator_length` |
|
|
403
410
|
| Skeleton | `--skeleton_color-base`, `--skeleton_color-highlight`, `--skeleton_min-block-size`, `--skeleton_radius` |
|
|
404
411
|
| SkipLink | `--skip-link_border`, `--skip-link_font-size`, `--skip-link_inset`, `--skip-link_padding`, `--skip-link_radius`, `--skip-link_shadow`, `--skip-link_z-index` |
|
|
405
412
|
| Slider | `--slider_color`, `--slider_track-height`, `--slider_thumb-size`, `--slider_track-radius`, `--slider_color-active`, `--slider_track-bg`, `--slider_thumb-radius`, `--slider_color--error` |
|
|
406
413
|
| 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` |
|
|
407
|
-
| Table | `--table_border`, `--table_radius`, `--
|
|
408
|
-
| Tabs | `--
|
|
414
|
+
| Table | `--table_border`, `--table_radius`, `--table_shadow`, `--table_font-size`, `--table_cell-padding`, `--table_header-bg`, `--table_header-font-weight`, `--table_header-font-size`, `--table_header-color`, `--table_divider-color`, `--table_sortBtn-color--hover`, `--table_row-bg--hover` |
|
|
415
|
+
| Tabs | `--tabs_divider-color`, `--tabs_gap`, `--tab_padding`, `--tab_font-weight`, `--tab_font-weight--inactive`, `--tab_color`, `--tab_color--inactive`, `--tab_indicator-width`, `--tab_border-color`, `--tab_font-weight--active`, `--tab_color--active`, `--tab_border-color--active`, `--tab_color--hover`, `--tabs_panel-padding` |
|
|
409
416
|
| 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` |
|
|
410
417
|
| 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` |
|
|
411
|
-
| Tooltip | `--tooltip_radius`, `--tooltip_bg`, `--tooltip_text`, `--tooltip_font-size`, `--tooltip_max-inline-size`, `--tooltip_offset
|
|
418
|
+
| Tooltip | `--tooltip_padding`, `--tooltip_radius`, `--tooltip_bg`, `--tooltip_text`, `--tooltip_font-size`, `--tooltip_max-inline-size`, `--tooltip_offset` |
|
|
412
419
|
| Typography | `--typography_color`, `--typography_font-size--body`, `--typography_font-size--body_s`, `--typography_font-size--h1`, `--typography_font-size--h2`, `--typography_font-size--h3` |
|
|
413
420
|
|
|
414
421
|
Components not listed have no component-local override tokens: Breadcrumb, DescriptionList, GridItem, InputContainer, Label, Message.
|