@boostdev/design-system-components 2.15.0 → 2.16.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 +19 -14
- package/dist/client.cjs +271 -205
- package/dist/client.css +801 -642
- 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 +801 -642
- 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-LDIPCTRN.js → chunk-2MJTO2IW.js} +48 -2
- package/dist/web-components/{chunk-3WAV6MDN.js → chunk-3FSGP35V.js} +1 -0
- package/dist/web-components/{chunk-KA3VPKMY.js → chunk-4MB2ICSK.js} +1 -0
- 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-6G22I2CK.js → chunk-RZH5IVB5.js} +31 -1
- 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-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 +33 -28
- 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-notification-banner.d.ts +14 -1
- package/dist/web-components/ui/bds-notification-banner.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/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 +1 -0
- package/src/components/interaction/form/CheckboxGroup/CheckboxGroup.module.css +7 -0
- package/src/components/interaction/form/CheckboxGroup/CheckboxGroup.spec.tsx +22 -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 +1 -0
- package/src/components/interaction/form/RadioGroup/RadioGroup.module.css +7 -0
- package/src/components/interaction/form/RadioGroup/RadioGroup.spec.tsx +22 -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 +11 -0
- package/src/components/ui/Alert/Alert.module.css +30 -1
- package/src/components/ui/Alert/Alert.spec.tsx +21 -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/Collapsible/Collapsible.module.css +1 -2
- package/src/components/ui/NotificationBanner/NotificationBanner.mdx +14 -0
- package/src/components/ui/NotificationBanner/NotificationBanner.module.css +31 -1
- package/src/components/ui/NotificationBanner/NotificationBanner.spec.tsx +29 -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/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 +19 -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 +1 -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 +10 -1
- 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 +1 -1
- 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 +27 -0
- package/src/web-components/ui/bds-alert.ts +34 -1
- 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-notification-banner.spec.ts +45 -0
- package/src/web-components/ui/bds-notification-banner.ts +53 -1
- 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
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import {
|
|
2
|
+
fieldMessageStyles,
|
|
3
|
+
renderFieldMessage
|
|
4
|
+
} from "./chunk-SRKQ6GST.js";
|
|
1
5
|
import {
|
|
2
6
|
T,
|
|
3
7
|
i,
|
|
@@ -55,6 +59,7 @@ var BdsNumberInput = class extends i2 {
|
|
|
55
59
|
|
|
56
60
|
:host([error]) .row {
|
|
57
61
|
--bdc_color: var(--bdc_color--error);
|
|
62
|
+
--bdc-outline_width: var(--bdc-outline_width--error, 2px);
|
|
58
63
|
}
|
|
59
64
|
|
|
60
65
|
.row:focus-within {
|
|
@@ -63,6 +68,7 @@ var BdsNumberInput = class extends i2 {
|
|
|
63
68
|
|
|
64
69
|
:host([error]) .row:focus-within {
|
|
65
70
|
--bdc_color: var(--bdc_color--error);
|
|
71
|
+
--bdc-outline_width: var(--bdc-outline_width--error, 2px);
|
|
66
72
|
}
|
|
67
73
|
|
|
68
74
|
.row:focus-within:has(:focus-visible) {
|
|
@@ -137,20 +143,7 @@ var BdsNumberInput = class extends i2 {
|
|
|
137
143
|
color: var(--numberInput_stepper-color, var(--bds-color_interactive));
|
|
138
144
|
}
|
|
139
145
|
|
|
140
|
-
|
|
141
|
-
margin-block-start: var(--bds-space_xxs);
|
|
142
|
-
font-size: var(--bds-font_size--body--s);
|
|
143
|
-
font-family: var(--bds-font_family--body);
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
.message--error {
|
|
147
|
-
color: var(--bds-color_error);
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
.message--hint {
|
|
151
|
-
color: var(--bds-color_on-bg--subtle);
|
|
152
|
-
font-style: italic;
|
|
153
|
-
}
|
|
146
|
+
${fieldMessageStyles}
|
|
154
147
|
`;
|
|
155
148
|
static properties = {
|
|
156
149
|
name: { type: String, reflect: true },
|
|
@@ -254,7 +247,7 @@ var BdsNumberInput = class extends i2 {
|
|
|
254
247
|
</svg>
|
|
255
248
|
</button>
|
|
256
249
|
</div>
|
|
257
|
-
${this.error ?
|
|
250
|
+
${this.error ? renderFieldMessage("error", errorId, this.error) : this.hint ? renderFieldMessage("hint", hintId, this.hint) : ""}
|
|
258
251
|
`;
|
|
259
252
|
}
|
|
260
253
|
};
|
|
@@ -5,6 +5,22 @@ import {
|
|
|
5
5
|
i2
|
|
6
6
|
} from "./chunk-LGEZYFUU.js";
|
|
7
7
|
|
|
8
|
+
// src/components/ui/Avatar/avatarTone.ts
|
|
9
|
+
var AVATAR_TONES = ["primary", "accent-1", "accent-2", "accent-3", "secondary"];
|
|
10
|
+
function toneFromName(name) {
|
|
11
|
+
const normalised = (name ?? "").trim().toLowerCase();
|
|
12
|
+
if (!normalised) return "primary";
|
|
13
|
+
const hash = [...normalised].reduce(
|
|
14
|
+
(h, ch) => Math.imul(h, 31) + (ch.codePointAt(0) ?? 0) >>> 0,
|
|
15
|
+
0
|
|
16
|
+
);
|
|
17
|
+
return AVATAR_TONES[hash % AVATAR_TONES.length];
|
|
18
|
+
}
|
|
19
|
+
function resolveAvatarTone(tone, name) {
|
|
20
|
+
const isKnownTone = (value) => AVATAR_TONES.some((known) => known === value);
|
|
21
|
+
return tone && isKnownTone(tone) ? tone : toneFromName(name);
|
|
22
|
+
}
|
|
23
|
+
|
|
8
24
|
// src/web-components/ui/bds-avatar.ts
|
|
9
25
|
var BdsAvatar = class extends i2 {
|
|
10
26
|
static styles = i`
|
|
@@ -43,11 +59,38 @@ var BdsAvatar = class extends i2 {
|
|
|
43
59
|
justify-content: center;
|
|
44
60
|
inline-size: 100%;
|
|
45
61
|
block-size: 100%;
|
|
46
|
-
background-color: var(--avatar_bg, var(--
|
|
47
|
-
color: var(--avatar_text, var(--
|
|
62
|
+
background-color: var(--avatar_bg, var(--avatar_bg--variant));
|
|
63
|
+
color: var(--avatar_text, var(--avatar_text--variant));
|
|
48
64
|
font-weight: var(--bds-font_weight--semibold);
|
|
49
65
|
}
|
|
50
66
|
|
|
67
|
+
/* Tone slots (mirrors the React Avatar): outer --avatar_bg / --avatar_text
|
|
68
|
+
still win, each tone has its own public hook. */
|
|
69
|
+
.fallback.tone_primary {
|
|
70
|
+
--avatar_bg--variant: var(--avatar_bg--primary, var(--bds-color_primary--subtle, var(--bds-color_blue--subtle)));
|
|
71
|
+
--avatar_text--variant: var(--avatar_text--primary, var(--bds-color_on-primary--subtle, var(--bds-color_on-blue--subtle)));
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.fallback.tone_secondary {
|
|
75
|
+
--avatar_bg--variant: var(--avatar_bg--secondary, var(--bds-color_secondary--subtle, var(--bds-color_blue--subtle)));
|
|
76
|
+
--avatar_text--variant: var(--avatar_text--secondary, var(--bds-color_on-secondary--subtle, var(--bds-color_on-blue--subtle)));
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.fallback.tone_accent-1 {
|
|
80
|
+
--avatar_bg--variant: var(--avatar_bg--accent-1, var(--bds-color_accent-1--subtle, var(--bds-color_green--subtle)));
|
|
81
|
+
--avatar_text--variant: var(--avatar_text--accent-1, var(--bds-color_on-accent-1--subtle, var(--bds-color_on-green--subtle)));
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.fallback.tone_accent-2 {
|
|
85
|
+
--avatar_bg--variant: var(--avatar_bg--accent-2, var(--bds-color_accent-2--subtle, var(--bds-color_orange--subtle)));
|
|
86
|
+
--avatar_text--variant: var(--avatar_text--accent-2, var(--bds-color_on-accent-2--subtle, var(--bds-color_on-orange--subtle)));
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.fallback.tone_accent-3 {
|
|
90
|
+
--avatar_bg--variant: var(--avatar_bg--accent-3, var(--bds-color_accent-3--subtle, var(--bds-color_blue--subtle)));
|
|
91
|
+
--avatar_text--variant: var(--avatar_text--accent-3, var(--bds-color_on-accent-3--subtle, var(--bds-color_on-blue--subtle)));
|
|
92
|
+
}
|
|
93
|
+
|
|
51
94
|
.initials {
|
|
52
95
|
line-height: 1;
|
|
53
96
|
user-select: none;
|
|
@@ -68,7 +111,8 @@ var BdsAvatar = class extends i2 {
|
|
|
68
111
|
src: { type: String },
|
|
69
112
|
alt: { type: String },
|
|
70
113
|
name: { type: String },
|
|
71
|
-
size: { type: String, reflect: true }
|
|
114
|
+
size: { type: String, reflect: true },
|
|
115
|
+
tone: { type: String, reflect: true }
|
|
72
116
|
};
|
|
73
117
|
constructor() {
|
|
74
118
|
super();
|
|
@@ -76,6 +120,7 @@ var BdsAvatar = class extends i2 {
|
|
|
76
120
|
this.alt = "";
|
|
77
121
|
this.name = "";
|
|
78
122
|
this.size = "medium";
|
|
123
|
+
this.tone = "auto";
|
|
79
124
|
}
|
|
80
125
|
get _initials() {
|
|
81
126
|
if (!this.name) return "";
|
|
@@ -88,7 +133,7 @@ var BdsAvatar = class extends i2 {
|
|
|
88
133
|
}
|
|
89
134
|
return T`
|
|
90
135
|
<span
|
|
91
|
-
class="fallback"
|
|
136
|
+
class="fallback tone_${resolveAvatarTone(this.tone, this.name)}"
|
|
92
137
|
role="img"
|
|
93
138
|
aria-label=${this.name || "User avatar"}
|
|
94
139
|
>
|
|
@@ -28,14 +28,14 @@ var BdsTab = class extends i2 {
|
|
|
28
28
|
padding: var(--bds-space_s) var(--bds-space_m);
|
|
29
29
|
font-family: var(--bds-font_family--body);
|
|
30
30
|
font-size: var(--bds-font_size--body);
|
|
31
|
-
font-weight: var(--bds-font_weight--
|
|
31
|
+
font-weight: var(--tab_font-weight, var(--tab_font-weight--state, var(--tab_font-weight--inactive, var(--bds-font_weight--medium))));
|
|
32
32
|
|
|
33
33
|
/* Layered cascade: public overrides (--tab_color, --tab_border-color) win over
|
|
34
34
|
per-state defaults. Active/hover write to the inner --tab_*--state slot —
|
|
35
35
|
mirrors the React Tabs.module.css pattern so a consumer's --tab_color
|
|
36
36
|
override is never shadowed by the selected/hover rules below. */
|
|
37
|
-
color: var(--tab_color, var(--tab_color--state, var(--bds-color_on-bg)));
|
|
38
|
-
border-block-end:
|
|
37
|
+
color: var(--tab_color, var(--tab_color--state, var(--tab_color--inactive, var(--bds-color_on-bg--muted, var(--bds-color_on-bg)))));
|
|
38
|
+
border-block-end: var(--tab_indicator-width, 3px) solid var(--tab_border-color, var(--tab_border-color--state, transparent));
|
|
39
39
|
margin-block-end: -1px;
|
|
40
40
|
cursor: pointer;
|
|
41
41
|
transition: var(--bds-animation_transition);
|
|
@@ -43,10 +43,27 @@ var BdsTab = class extends i2 {
|
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
:host([selected]) .tab {
|
|
46
|
-
--tab_color--state: var(--tab_color--active, var(--bds-
|
|
46
|
+
--tab_color--state: var(--tab_color--active, var(--bds-color_on-bg));
|
|
47
|
+
--tab_font-weight--state: var(--tab_font-weight--active, var(--bds-font_weight--bold));
|
|
47
48
|
--tab_border-color--state: var(--tab_border-color--active, var(--bds-color_interactive));
|
|
48
49
|
}
|
|
49
50
|
|
|
51
|
+
/* Reserves the width of the bold label so selecting a tab does not shift the row.
|
|
52
|
+
The hidden ::after repeats the label at the active weight in the same grid cell. */
|
|
53
|
+
.label {
|
|
54
|
+
display: inline-grid;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.label::after {
|
|
58
|
+
content: attr(data-label);
|
|
59
|
+
grid-area: 1 / 1;
|
|
60
|
+
font-weight: var(--tab_font-weight, var(--tab_font-weight--active, var(--bds-font_weight--bold)));
|
|
61
|
+
visibility: hidden;
|
|
62
|
+
pointer-events: none;
|
|
63
|
+
block-size: 0;
|
|
64
|
+
overflow: hidden;
|
|
65
|
+
}
|
|
66
|
+
|
|
50
67
|
.tab:disabled {
|
|
51
68
|
opacity: 0.4;
|
|
52
69
|
cursor: not-allowed;
|
|
@@ -60,23 +77,29 @@ var BdsTab = class extends i2 {
|
|
|
60
77
|
|
|
61
78
|
@media (hover: hover) and (pointer: fine) {
|
|
62
79
|
.tab:not(:disabled, [aria-selected='true']):hover {
|
|
63
|
-
--tab_color--state: var(--tab_color--hover, var(--bds-
|
|
80
|
+
--tab_color--state: var(--tab_color--hover, var(--bds-color_on-bg));
|
|
64
81
|
}
|
|
65
82
|
}
|
|
66
83
|
`;
|
|
67
84
|
static properties = {
|
|
68
85
|
selected: { type: Boolean, reflect: true },
|
|
69
|
-
disabled: { type: Boolean, reflect: true }
|
|
86
|
+
disabled: { type: Boolean, reflect: true },
|
|
87
|
+
_label: { state: true }
|
|
70
88
|
};
|
|
71
89
|
constructor() {
|
|
72
90
|
super();
|
|
73
91
|
this.selected = false;
|
|
74
92
|
this.disabled = false;
|
|
93
|
+
this._label = "";
|
|
75
94
|
}
|
|
76
95
|
/** Called by `bds-tabs` to focus the inner button for keyboard navigation. */
|
|
77
96
|
focusButton() {
|
|
78
97
|
this.shadowRoot?.querySelector("button")?.focus();
|
|
79
98
|
}
|
|
99
|
+
_handleSlotChange(e) {
|
|
100
|
+
const slot = e.target;
|
|
101
|
+
this._label = slot.assignedNodes({ flatten: true }).map((n) => n.textContent ?? "").join("").trim();
|
|
102
|
+
}
|
|
80
103
|
_handleClick() {
|
|
81
104
|
if (this.disabled) return;
|
|
82
105
|
this.dispatchEvent(new CustomEvent("bds-tab-select", { bubbles: true, composed: true }));
|
|
@@ -92,7 +115,7 @@ var BdsTab = class extends i2 {
|
|
|
92
115
|
?disabled=${this.disabled}
|
|
93
116
|
@click=${this._handleClick}
|
|
94
117
|
>
|
|
95
|
-
<slot></slot>
|
|
118
|
+
<span class="label" data-label=${this._label}><slot @slotchange=${this._handleSlotChange}></slot></span>
|
|
96
119
|
</button>
|
|
97
120
|
`;
|
|
98
121
|
}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import {
|
|
2
|
+
fieldMessageStyles,
|
|
3
|
+
renderFieldMessage
|
|
4
|
+
} from "./chunk-SRKQ6GST.js";
|
|
1
5
|
import {
|
|
2
6
|
T,
|
|
3
7
|
i,
|
|
@@ -122,20 +126,6 @@ var BdsSlider = class extends i2 {
|
|
|
122
126
|
border-radius: var(--slider_track-radius, var(--bds-border_radius--full));
|
|
123
127
|
}
|
|
124
128
|
|
|
125
|
-
.message {
|
|
126
|
-
margin-block-start: var(--bds-space_xxs);
|
|
127
|
-
font-size: var(--bds-font_size--body--s);
|
|
128
|
-
font-family: var(--bds-font_family--body);
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
.message--error {
|
|
132
|
-
color: var(--bds-color_error);
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
.message--hint {
|
|
136
|
-
color: var(--bds-color_on-bg--subtle);
|
|
137
|
-
font-style: italic;
|
|
138
|
-
}
|
|
139
129
|
|
|
140
130
|
@media (prefers-reduced-motion: reduce) {
|
|
141
131
|
.input,
|
|
@@ -144,6 +134,8 @@ var BdsSlider = class extends i2 {
|
|
|
144
134
|
transition: none;
|
|
145
135
|
}
|
|
146
136
|
}
|
|
137
|
+
|
|
138
|
+
${fieldMessageStyles}
|
|
147
139
|
`;
|
|
148
140
|
static properties = {
|
|
149
141
|
name: { type: String, reflect: true },
|
|
@@ -237,7 +229,7 @@ var BdsSlider = class extends i2 {
|
|
|
237
229
|
@change=${this._handleChange}
|
|
238
230
|
/>
|
|
239
231
|
</div>
|
|
240
|
-
${this.error ?
|
|
232
|
+
${this.error ? renderFieldMessage("error", errorId, this.error) : this.hint ? renderFieldMessage("hint", hintId, this.hint) : ""}
|
|
241
233
|
`;
|
|
242
234
|
}
|
|
243
235
|
};
|
|
@@ -26,13 +26,15 @@ var BdsTooltip = class extends i2 {
|
|
|
26
26
|
.tooltip {
|
|
27
27
|
position: absolute;
|
|
28
28
|
z-index: var(--bds-z-index_popover);
|
|
29
|
-
padding: var(--bds-space_xxs) var(--bds-
|
|
30
|
-
border-radius: var(--tooltip_radius, var(--bds-border_radius--
|
|
29
|
+
padding: var(--tooltip_padding, var(--bds-space_xxs) var(--bds-space_s));
|
|
30
|
+
border-radius: var(--tooltip_radius, var(--bds-border_radius--xs));
|
|
31
31
|
background-color: var(--tooltip_bg, var(--bds-color_on-bg));
|
|
32
32
|
color: var(--tooltip_text, var(--bds-color_bg));
|
|
33
|
-
font-size: var(--bds-font_size--body--s);
|
|
33
|
+
font-size: var(--tooltip_font-size, var(--bds-font_size--body--s));
|
|
34
34
|
line-height: var(--bds-font_line-height--body);
|
|
35
|
-
|
|
35
|
+
inline-size: max-content;
|
|
36
|
+
max-inline-size: var(--tooltip_max-inline-size, 20rem);
|
|
37
|
+
white-space: normal;
|
|
36
38
|
pointer-events: none;
|
|
37
39
|
|
|
38
40
|
/* Hidden by default */
|
|
@@ -50,28 +52,28 @@ var BdsTooltip = class extends i2 {
|
|
|
50
52
|
|
|
51
53
|
/* Placement: top (default) */
|
|
52
54
|
.tooltip.--placement_top {
|
|
53
|
-
inset-block-end: calc(100% + var(--bds-space_xs));
|
|
55
|
+
inset-block-end: calc(100% + var(--tooltip_offset, var(--bds-space_xs)));
|
|
54
56
|
inset-inline-start: 50%;
|
|
55
57
|
transform: translateX(-50%);
|
|
56
58
|
}
|
|
57
59
|
|
|
58
60
|
/* Placement: bottom */
|
|
59
61
|
.tooltip.--placement_bottom {
|
|
60
|
-
inset-block-start: calc(100% + var(--bds-space_xs));
|
|
62
|
+
inset-block-start: calc(100% + var(--tooltip_offset, var(--bds-space_xs)));
|
|
61
63
|
inset-inline-start: 50%;
|
|
62
64
|
transform: translateX(-50%);
|
|
63
65
|
}
|
|
64
66
|
|
|
65
67
|
/* Placement: left */
|
|
66
68
|
.tooltip.--placement_left {
|
|
67
|
-
inset-inline-end: calc(100% + var(--bds-space_xs));
|
|
69
|
+
inset-inline-end: calc(100% + var(--tooltip_offset, var(--bds-space_xs)));
|
|
68
70
|
inset-block-start: 50%;
|
|
69
71
|
transform: translateY(-50%);
|
|
70
72
|
}
|
|
71
73
|
|
|
72
74
|
/* Placement: right */
|
|
73
75
|
.tooltip.--placement_right {
|
|
74
|
-
inset-inline-start: calc(100% + var(--bds-space_xs));
|
|
76
|
+
inset-inline-start: calc(100% + var(--tooltip_offset, var(--bds-space_xs)));
|
|
75
77
|
inset-block-start: 50%;
|
|
76
78
|
transform: translateY(-50%);
|
|
77
79
|
}
|
|
@@ -33,9 +33,12 @@ var BdsAlert = class extends i2 {
|
|
|
33
33
|
defaults. Variants write to the inner --alert_*--variant slot. */
|
|
34
34
|
background-color: var(--alert_bg, var(--alert_bg--variant, var(--bds-color_blue--subtle)));
|
|
35
35
|
color: var(--alert_text, var(--alert_text--variant, var(--bds-color_on-blue--subtle)));
|
|
36
|
-
border-inline-start: var(--bds-space_s) solid var(--alert_border, var(--alert_border--variant, var(--bds-color_blue)));
|
|
36
|
+
border-inline-start: var(--alert_border-width, var(--alert_border-width--variant, var(--bds-space_s))) solid var(--alert_border, var(--alert_border--variant, var(--bds-color_blue)));
|
|
37
37
|
font-size: var(--bds-font_size--body);
|
|
38
38
|
line-height: var(--bds-font_line-height--body);
|
|
39
|
+
|
|
40
|
+
/* Reset the slot so a nested default alert does not inherit a parent's gradient width. */
|
|
41
|
+
--alert_border-width--variant: initial;
|
|
39
42
|
}
|
|
40
43
|
|
|
41
44
|
/* Per-variant resting overrides — consumers can theme per-variant via
|
|
@@ -64,6 +67,31 @@ var BdsAlert = class extends i2 {
|
|
|
64
67
|
--alert_border--variant: var(--alert_border--error, var(--bds-color_error));
|
|
65
68
|
}
|
|
66
69
|
|
|
70
|
+
/* Gradient appearance: the variant background stays the base colour and a
|
|
71
|
+
gradient fades it to the surface. The accent line is thinner and uses a
|
|
72
|
+
per-variant accent slot; --alert_border still wins over it. */
|
|
73
|
+
:host([appearance='gradient']) .alert {
|
|
74
|
+
--alert_border-width--variant: 3px;
|
|
75
|
+
background-image: var(--alert_gradient, linear-gradient(100deg, transparent 35%, var(--bds-color_bg--strong, var(--bds-color_bg)) 100%));
|
|
76
|
+
box-shadow: var(--alert_shadow, var(--bds-shadow_s));
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
:host([appearance='gradient'][variant='info']) .alert {
|
|
80
|
+
--alert_border--variant: var(--alert_border--info, var(--alert_accent--info, var(--bds-color_on-blue--subtle)));
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
:host([appearance='gradient'][variant='success']) .alert {
|
|
84
|
+
--alert_border--variant: var(--alert_border--success, var(--alert_accent--success, var(--bds-color_on-success--subtle)));
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
:host([appearance='gradient'][variant='warning']) .alert {
|
|
88
|
+
--alert_border--variant: var(--alert_border--warning, var(--alert_accent--warning, var(--bds-color_warning)));
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
:host([appearance='gradient'][variant='error']) .alert {
|
|
92
|
+
--alert_border--variant: var(--alert_border--error, var(--alert_accent--error, var(--bds-color_error)));
|
|
93
|
+
}
|
|
94
|
+
|
|
67
95
|
/* Icon slot wrapper — hidden unless slot has content */
|
|
68
96
|
.icon {
|
|
69
97
|
display: none;
|
|
@@ -123,6 +151,7 @@ var BdsAlert = class extends i2 {
|
|
|
123
151
|
`;
|
|
124
152
|
static properties = {
|
|
125
153
|
variant: { type: String, reflect: true },
|
|
154
|
+
appearance: { type: String, reflect: true },
|
|
126
155
|
heading: { type: String },
|
|
127
156
|
title: { type: String },
|
|
128
157
|
dismissible: { type: Boolean, reflect: true },
|
|
@@ -131,6 +160,7 @@ var BdsAlert = class extends i2 {
|
|
|
131
160
|
constructor() {
|
|
132
161
|
super();
|
|
133
162
|
this.variant = "info";
|
|
163
|
+
this.appearance = "default";
|
|
134
164
|
this.heading = "";
|
|
135
165
|
this.title = "";
|
|
136
166
|
this.dismissible = false;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import {
|
|
2
|
+
T,
|
|
3
|
+
b,
|
|
4
|
+
i
|
|
5
|
+
} from "./chunk-LGEZYFUU.js";
|
|
6
|
+
|
|
7
|
+
// src/web-components/interaction/form/field-message.ts
|
|
8
|
+
var fieldMessageStyles = i`
|
|
9
|
+
.message {
|
|
10
|
+
margin-block-start: var(--bds-space_xxs);
|
|
11
|
+
font-size: var(--formMessage_font-size, var(--bds-font_size--body--s));
|
|
12
|
+
font-family: var(--bds-font_family--body);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.message--error {
|
|
16
|
+
display: flex;
|
|
17
|
+
align-items: flex-start;
|
|
18
|
+
gap: var(--formMessage_gap, var(--bds-space_xxs));
|
|
19
|
+
color: var(--formMessage_color--error, var(--bds-color_error_on-bg));
|
|
20
|
+
font-weight: var(--formMessage_font-weight--error, var(--bds-font_weight--semibold));
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.message__icon {
|
|
24
|
+
flex-shrink: 0;
|
|
25
|
+
inline-size: var(--formMessage_icon-size, 1.15em);
|
|
26
|
+
block-size: var(--formMessage_icon-size, 1.15em);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.message--hint {
|
|
30
|
+
color: var(--formMessage_color--hint, inherit);
|
|
31
|
+
font-style: var(--formMessage_font-style--hint, italic);
|
|
32
|
+
}
|
|
33
|
+
`;
|
|
34
|
+
var warningIcon = b`<svg class="message__icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" fill="currentColor" aria-hidden="true"><path d="M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm-8,56a8,8,0,0,1,16,0v56a8,8,0,0,1-16,0Zm8,104a12,12,0,1,1,12-12A12,12,0,0,1,128,184Z"></path></svg>`;
|
|
35
|
+
var renderFieldMessage = (kind, id, text) => kind === "error" ? T`<p id=${id} class="message message--error" role="alert">${warningIcon}${text}</p>` : T`<p id=${id} class="message message--hint">${text}</p>`;
|
|
36
|
+
|
|
37
|
+
export {
|
|
38
|
+
fieldMessageStyles,
|
|
39
|
+
renderFieldMessage
|
|
40
|
+
};
|
|
@@ -32,11 +32,18 @@ var BdsSeparator = class extends i2 {
|
|
|
32
32
|
display: block;
|
|
33
33
|
inline-size: 100%;
|
|
34
34
|
block-size: var(--separator_thickness, 1px);
|
|
35
|
+
/* The padding is the space around the line; content-box keeps the line at the
|
|
36
|
+
thickness and background-clip stops the colour from painting into the padding. */
|
|
37
|
+
box-sizing: content-box;
|
|
38
|
+
padding-block: var(--separator_spacing, 0);
|
|
39
|
+
background-clip: content-box;
|
|
35
40
|
}
|
|
36
41
|
|
|
37
42
|
:host([orientation='vertical']) .separator {
|
|
38
43
|
inline-size: var(--separator_thickness, 1px);
|
|
39
44
|
block-size: 100%;
|
|
45
|
+
padding-block: 0;
|
|
46
|
+
padding-inline: var(--separator_spacing, var(--bds-space_s));
|
|
40
47
|
}
|
|
41
48
|
`;
|
|
42
49
|
static properties = {
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import {
|
|
2
|
+
fieldMessageStyles,
|
|
3
|
+
renderFieldMessage
|
|
4
|
+
} from "./chunk-SRKQ6GST.js";
|
|
1
5
|
import {
|
|
2
6
|
A,
|
|
3
7
|
T,
|
|
@@ -71,10 +75,12 @@ var BdsCombobox = class extends i2 {
|
|
|
71
75
|
|
|
72
76
|
:host([error]) .input {
|
|
73
77
|
--bdc_color: var(--bdc_color--error);
|
|
78
|
+
--bdc-outline_width: var(--bdc-outline_width--error, 2px);
|
|
74
79
|
}
|
|
75
80
|
|
|
76
81
|
:host([error]) .input:focus {
|
|
77
82
|
--bdc_color: var(--bdc_color--error);
|
|
83
|
+
--bdc-outline_width: var(--bdc-outline_width--error, 2px);
|
|
78
84
|
}
|
|
79
85
|
|
|
80
86
|
.chevron {
|
|
@@ -148,20 +154,7 @@ var BdsCombobox = class extends i2 {
|
|
|
148
154
|
color: var(--bds-color_on-bg--subtle);
|
|
149
155
|
}
|
|
150
156
|
|
|
151
|
-
|
|
152
|
-
margin-block-start: var(--bds-space_xxs);
|
|
153
|
-
font-size: var(--bds-font_size--body--s);
|
|
154
|
-
font-family: var(--bds-font_family--body);
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
.message--error {
|
|
158
|
-
color: var(--bds-color_error);
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
.message--hint {
|
|
162
|
-
color: var(--bds-color_on-bg--subtle);
|
|
163
|
-
font-style: italic;
|
|
164
|
-
}
|
|
157
|
+
${fieldMessageStyles}
|
|
165
158
|
`;
|
|
166
159
|
static properties = {
|
|
167
160
|
name: { type: String, reflect: true },
|
|
@@ -340,7 +333,7 @@ var BdsCombobox = class extends i2 {
|
|
|
340
333
|
</ul>
|
|
341
334
|
` : ""}
|
|
342
335
|
</div>
|
|
343
|
-
${this.error ?
|
|
336
|
+
${this.error ? renderFieldMessage("error", errorId, this.error) : this.hint ? renderFieldMessage("hint", hintId, this.hint) : ""}
|
|
344
337
|
`;
|
|
345
338
|
}
|
|
346
339
|
};
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import {
|
|
2
|
+
fieldMessageStyles,
|
|
3
|
+
renderFieldMessage
|
|
4
|
+
} from "./chunk-SRKQ6GST.js";
|
|
1
5
|
import {
|
|
2
6
|
A,
|
|
3
7
|
T,
|
|
@@ -78,22 +82,9 @@ var BdsSelect = class extends i2 {
|
|
|
78
82
|
|
|
79
83
|
:host([error]) .select {
|
|
80
84
|
--bdc_color: var(--bdc_color--error);
|
|
85
|
+
--bdc-outline_width: var(--bdc-outline_width--error, 2px);
|
|
81
86
|
}
|
|
82
87
|
|
|
83
|
-
.message {
|
|
84
|
-
margin-block-start: var(--bds-space_xxs);
|
|
85
|
-
font-size: var(--bds-font_size--body--s);
|
|
86
|
-
font-family: var(--bds-font_family--body);
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
.message--error {
|
|
90
|
-
color: var(--bds-color_error);
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
.message--hint {
|
|
94
|
-
color: var(--bds-color_on-bg--subtle);
|
|
95
|
-
font-style: italic;
|
|
96
|
-
}
|
|
97
88
|
|
|
98
89
|
.chevron {
|
|
99
90
|
position: absolute;
|
|
@@ -110,6 +101,8 @@ var BdsSelect = class extends i2 {
|
|
|
110
101
|
inline-size: 100%;
|
|
111
102
|
block-size: 100%;
|
|
112
103
|
}
|
|
104
|
+
|
|
105
|
+
${fieldMessageStyles}
|
|
113
106
|
`;
|
|
114
107
|
static properties = {
|
|
115
108
|
name: { type: String, reflect: true },
|
|
@@ -205,7 +198,7 @@ var BdsSelect = class extends i2 {
|
|
|
205
198
|
</svg>
|
|
206
199
|
</span>
|
|
207
200
|
</div>
|
|
208
|
-
${this.error ?
|
|
201
|
+
${this.error ? renderFieldMessage("error", errorId, this.error) : this.hint ? renderFieldMessage("hint", hintId, this.hint) : ""}
|
|
209
202
|
`;
|
|
210
203
|
}
|
|
211
204
|
};
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import {
|
|
2
|
+
fieldMessageStyles,
|
|
3
|
+
renderFieldMessage
|
|
4
|
+
} from "./chunk-SRKQ6GST.js";
|
|
1
5
|
import {
|
|
2
6
|
A,
|
|
3
7
|
T,
|
|
@@ -47,19 +51,10 @@ var BdsRadioGroup = class extends i2 {
|
|
|
47
51
|
gap: var(--bds-space_xs);
|
|
48
52
|
}
|
|
49
53
|
|
|
54
|
+
${fieldMessageStyles}
|
|
55
|
+
|
|
50
56
|
.message {
|
|
51
57
|
margin-block-start: var(--bds-space_xs);
|
|
52
|
-
font-size: var(--bds-font_size--body--s);
|
|
53
|
-
font-family: var(--bds-font_family--body);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
.message--error {
|
|
57
|
-
color: var(--bds-color_error);
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
.message--hint {
|
|
61
|
-
color: var(--bds-color_on-bg--subtle);
|
|
62
|
-
font-style: italic;
|
|
63
58
|
}
|
|
64
59
|
`;
|
|
65
60
|
static properties = {
|
|
@@ -103,9 +98,28 @@ var BdsRadioGroup = class extends i2 {
|
|
|
103
98
|
}
|
|
104
99
|
});
|
|
105
100
|
};
|
|
101
|
+
/**
|
|
102
|
+
* Propagates the group's `error` to slotted `<bds-radio>` elements so they show
|
|
103
|
+
* the error ring. A radio individually marked `error` in markup keeps it.
|
|
104
|
+
*/
|
|
105
|
+
_propagateError = () => {
|
|
106
|
+
this.querySelectorAll("bds-radio").forEach((radio) => {
|
|
107
|
+
const el = radio;
|
|
108
|
+
if (this.error) {
|
|
109
|
+
if (!el.hasAttribute("error")) {
|
|
110
|
+
el.setAttribute("data-bds-group-error", "");
|
|
111
|
+
}
|
|
112
|
+
el.setAttribute("error", "");
|
|
113
|
+
} else if (el.hasAttribute("data-bds-group-error")) {
|
|
114
|
+
el.removeAttribute("error");
|
|
115
|
+
el.removeAttribute("data-bds-group-error");
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
};
|
|
106
119
|
_propagateToRadios = () => {
|
|
107
120
|
this._propagateName();
|
|
108
121
|
this._propagateDisabled();
|
|
122
|
+
this._propagateError();
|
|
109
123
|
};
|
|
110
124
|
connectedCallback() {
|
|
111
125
|
super.connectedCallback();
|
|
@@ -113,7 +127,7 @@ var BdsRadioGroup = class extends i2 {
|
|
|
113
127
|
}
|
|
114
128
|
updated(changed) {
|
|
115
129
|
super.updated(changed);
|
|
116
|
-
if (changed.has("name") || changed.has("disabled")) {
|
|
130
|
+
if (changed.has("name") || changed.has("disabled") || changed.has("error")) {
|
|
117
131
|
this._propagateToRadios();
|
|
118
132
|
}
|
|
119
133
|
}
|
|
@@ -134,7 +148,7 @@ var BdsRadioGroup = class extends i2 {
|
|
|
134
148
|
<div class="items">
|
|
135
149
|
<slot @slotchange=${this._propagateToRadios}></slot>
|
|
136
150
|
</div>
|
|
137
|
-
${this.error ?
|
|
151
|
+
${this.error ? renderFieldMessage("error", errorId, this.error) : this.hint ? renderFieldMessage("hint", hintId, this.hint) : ""}
|
|
138
152
|
</fieldset>
|
|
139
153
|
`;
|
|
140
154
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import "./chunk-
|
|
1
|
+
import "./chunk-7VXRMCAL.js";
|
|
@@ -54,6 +54,7 @@ import * as lit from 'lit';
|
|
|
54
54
|
import { LitElement } from 'lit';
|
|
55
55
|
export { BdsDropdownMenu } from './interaction/bds-dropdown-menu.js';
|
|
56
56
|
export { BdsDropdownMenuItem } from './interaction/bds-dropdown-menu-item.js';
|
|
57
|
+
export { BdsDropdownMenuGroup } from './interaction/bds-dropdown-menu-group.js';
|
|
57
58
|
|
|
58
59
|
/**
|
|
59
60
|
* `<bds-calendar-range>` — form-associated range date picker.
|