@boostdev/design-system-components 2.7.0 → 2.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/AGENTS.md +102 -2
  2. package/dist/client.cjs +52 -52
  3. package/dist/client.css +548 -548
  4. package/dist/client.js +52 -52
  5. package/dist/index.cjs +52 -52
  6. package/dist/index.css +548 -548
  7. package/dist/index.js +52 -52
  8. package/dist/web-components/{chunk-T6AETZRP.js → chunk-3GFWLSLS.js} +1 -1
  9. package/dist/web-components/{chunk-N6IMUOY4.js → chunk-65JXQOBA.js} +3 -3
  10. package/dist/web-components/{chunk-7FMR53BW.js → chunk-7YURXHTS.js} +35 -15
  11. package/dist/web-components/{chunk-5TFWOPLH.js → chunk-A3RLT3AS.js} +3 -3
  12. package/dist/web-components/{chunk-X3FKVHLK.js → chunk-ARMKC4BQ.js} +2 -2
  13. package/dist/web-components/{chunk-ZTC6GRP7.js → chunk-BKIHQYJR.js} +1 -0
  14. package/dist/web-components/{chunk-EBJM3VD4.js → chunk-DZOEPVFT.js} +2 -2
  15. package/dist/web-components/{chunk-57TRNCWQ.js → chunk-FSZRP43R.js} +1 -1
  16. package/dist/web-components/{chunk-UFFCKVZE.js → chunk-FXURM6D5.js} +1 -1
  17. package/dist/web-components/{chunk-HHHRF2PS.js → chunk-JYYRJS2D.js} +3 -3
  18. package/dist/web-components/{chunk-OCODKRVZ.js → chunk-KUI55GFB.js} +2 -2
  19. package/dist/web-components/{chunk-ZNKEZIYE.js → chunk-NCPQ7AF3.js} +3 -2
  20. package/dist/web-components/chunk-OF6FFGOT.js +167 -0
  21. package/dist/web-components/{chunk-GER5UJOF.js → chunk-ORC56MDY.js} +6 -8
  22. package/dist/web-components/{chunk-RTOS7LLG.js → chunk-PC3IOQAH.js} +3 -8
  23. package/dist/web-components/{chunk-JUKB3BUP.js → chunk-PXZWYO6Z.js} +1 -1
  24. package/dist/web-components/{chunk-5R6IFELV.js → chunk-QLT6MTZF.js} +1 -1
  25. package/dist/web-components/{chunk-ECW3HHWA.js → chunk-TQ7IQ4GZ.js} +7 -2
  26. package/dist/web-components/{chunk-QLZ2362S.js → chunk-UUKSDCYS.js} +2 -2
  27. package/dist/web-components/{chunk-ITHLKR7Q.js → chunk-X3NQMBAQ.js} +2 -2
  28. package/dist/web-components/{chunk-AJSXNDAP.js → chunk-X46KL5BK.js} +19 -18
  29. package/dist/web-components/{chunk-HGBNDR22.js → chunk-Y7V7LM6R.js} +1 -1
  30. package/dist/web-components/index.js +35 -31
  31. package/dist/web-components/interaction/bds-accordion-item.js +1 -1
  32. package/dist/web-components/interaction/bds-accordion.js +1 -1
  33. package/dist/web-components/interaction/bds-button.js +1 -1
  34. package/dist/web-components/interaction/bds-dialog.js +1 -1
  35. package/dist/web-components/interaction/bds-drawer.js +1 -1
  36. package/dist/web-components/interaction/bds-popover.js +1 -1
  37. package/dist/web-components/interaction/bds-tooltip.js +1 -1
  38. package/dist/web-components/interaction/form/bds-checkbox.js +1 -1
  39. package/dist/web-components/interaction/form/bds-combobox.js +1 -1
  40. package/dist/web-components/interaction/form/bds-number-input.js +1 -1
  41. package/dist/web-components/interaction/form/bds-radio.js +1 -1
  42. package/dist/web-components/interaction/form/bds-select.js +1 -1
  43. package/dist/web-components/interaction/form/bds-slider.js +1 -1
  44. package/dist/web-components/interaction/form/bds-switch.js +1 -1
  45. package/dist/web-components/interaction/form/bds-textarea.js +1 -1
  46. package/dist/web-components/ui/bds-alert.js +1 -1
  47. package/dist/web-components/ui/bds-avatar.js +1 -1
  48. package/dist/web-components/ui/bds-card.d.ts +3 -9
  49. package/dist/web-components/ui/bds-card.js +1 -1
  50. package/dist/web-components/ui/bds-icon-wrapper.js +1 -1
  51. package/dist/web-components/ui/bds-loading.js +1 -1
  52. package/dist/web-components/ui/bds-notification-banner.js +1 -1
  53. package/dist/web-components/ui/bds-progress.js +1 -1
  54. package/package.json +2 -1
  55. package/src/components/layout/IconWrapper/IconWrapper.module.css +2 -2
  56. package/src/test/token-contract.spec.ts +86 -0
  57. package/src/web-components/interaction/bds-accordion-item.ts +1 -1
  58. package/src/web-components/interaction/bds-accordion.ts +1 -0
  59. package/src/web-components/interaction/bds-button.ts +6 -8
  60. package/src/web-components/interaction/bds-dialog.ts +3 -3
  61. package/src/web-components/interaction/bds-drawer.ts +2 -2
  62. package/src/web-components/interaction/bds-popover.ts +7 -2
  63. package/src/web-components/interaction/bds-tooltip.ts +1 -1
  64. package/src/web-components/interaction/form/bds-checkbox.ts +1 -1
  65. package/src/web-components/interaction/form/bds-combobox.ts +2 -2
  66. package/src/web-components/interaction/form/bds-form-input.ts +1 -1
  67. package/src/web-components/interaction/form/bds-number-input.ts +1 -1
  68. package/src/web-components/interaction/form/bds-radio.ts +3 -3
  69. package/src/web-components/interaction/form/bds-select.ts +2 -2
  70. package/src/web-components/interaction/form/bds-slider.ts +35 -15
  71. package/src/web-components/interaction/form/bds-switch.ts +73 -39
  72. package/src/web-components/interaction/form/bds-textarea.ts +2 -2
  73. package/src/web-components/ui/BdsCard.mdx +4 -3
  74. package/src/web-components/ui/BdsCard.stories.tsx +7 -11
  75. package/src/web-components/ui/BdsSkeleton.stories.tsx +4 -4
  76. package/src/web-components/ui/bds-alert.ts +3 -2
  77. package/src/web-components/ui/bds-avatar.ts +1 -1
  78. package/src/web-components/ui/bds-card.spec.ts +3 -5
  79. package/src/web-components/ui/bds-card.ts +5 -12
  80. package/src/web-components/ui/bds-carousel.ts +7 -7
  81. package/src/web-components/ui/bds-icon-wrapper.ts +3 -3
  82. package/src/web-components/ui/bds-loading.ts +1 -1
  83. package/src/web-components/ui/bds-notification-banner.ts +19 -18
  84. package/src/web-components/ui/bds-pagination.ts +1 -1
  85. package/src/web-components/ui/bds-progress.ts +2 -2
  86. package/src/web-components/ui/bds-table.ts +4 -0
  87. package/dist/web-components/chunk-XNA6WTXG.js +0 -133
@@ -24,44 +24,64 @@ var BdsSlider = class extends i2 {
24
24
  }
25
25
 
26
26
  .input {
27
+ --slider_track-height: var(--bds-space_xxs);
28
+ --slider_thumb-size: calc(var(--bds-space_s) * 2);
29
+
30
+ color: var(--slider_color, var(--bds-color_on-bg));
27
31
  inline-size: 100%;
28
32
  appearance: none;
29
- block-size: 0.25rem;
30
- border-radius: 999px;
33
+ block-size: var(--slider_track-height);
34
+ border-radius: var(--slider_track-radius, var(--bds-border_radius--full));
31
35
  background: linear-gradient(
32
36
  to right,
33
- var(--slider_fill-color, var(--bds-color_interactive)) var(--slider_fill, 0%),
34
- var(--slider_track-color, var(--bds-color_bg--subtle)) var(--slider_fill, 0%)
37
+ var(--slider_color-active, var(--bdc-color_active)) 0%,
38
+ var(--slider_color-active, var(--bdc-color_active)) var(--slider_fill, 0%),
39
+ var(--slider_track-bg, var(--bds-color_bg--subtle)) var(--slider_fill, 0%),
40
+ var(--slider_track-bg, var(--bds-color_bg--subtle)) 100%
35
41
  );
36
42
  outline: none;
37
43
  cursor: pointer;
44
+ transition: var(--bds-animation_transition);
38
45
  }
39
46
 
40
47
  .input::-webkit-slider-thumb {
41
48
  appearance: none;
42
- inline-size: 1.25rem;
43
- block-size: 1.25rem;
44
- border-radius: 50%;
45
- background-color: var(--slider_thumb-color, var(--bds-color_interactive));
46
- box-shadow: var(--bds-shadow_m);
49
+ inline-size: var(--slider_thumb-size);
50
+ block-size: var(--slider_thumb-size);
51
+ border-radius: var(--slider_thumb-radius, var(--bds-border_radius--circle));
52
+ background-color: var(--slider_color-active, var(--bdc-color_active));
53
+ box-shadow: var(--bds-shadow_s);
47
54
  cursor: pointer;
48
55
  transition: var(--bds-animation_transition);
49
56
  }
50
57
 
51
58
  .input::-moz-range-thumb {
52
- inline-size: 1.25rem;
53
- block-size: 1.25rem;
54
- border-radius: 50%;
59
+ inline-size: var(--slider_thumb-size);
60
+ block-size: var(--slider_thumb-size);
55
61
  border: none;
56
- background-color: var(--slider_thumb-color, var(--bds-color_interactive));
57
- box-shadow: var(--bds-shadow_m);
62
+ border-radius: var(--slider_thumb-radius, var(--bds-border_radius--circle));
63
+ background-color: var(--slider_color-active, var(--bdc-color_active));
64
+ box-shadow: var(--bds-shadow_s);
58
65
  cursor: pointer;
59
66
  }
60
67
 
68
+ .input:disabled {
69
+ opacity: 0.4;
70
+ cursor: not-allowed;
71
+ }
72
+
61
73
  .input:focus-visible {
62
74
  outline: var(--bds-outline_default);
63
75
  outline-offset: var(--bds-outline_offset);
64
- border-radius: 999px;
76
+ border-radius: var(--slider_track-radius, var(--bds-border_radius--full));
77
+ }
78
+
79
+ @media (prefers-reduced-motion: reduce) {
80
+ .input,
81
+ .input::-webkit-slider-thumb,
82
+ .input::-moz-range-thumb {
83
+ transition: none;
84
+ }
65
85
  }
66
86
  `;
67
87
  static properties = {
@@ -15,14 +15,14 @@ var BdsIconWrapper = class extends i2 {
15
15
  inline-size: 2em;
16
16
  block-size: 2em;
17
17
  font-size: 3em;
18
- border-radius: 50%;
18
+ border-radius: var(--icon-wrapper-radius, var(--bds-border_radius--circle));
19
19
  display: flex;
20
20
  align-items: center;
21
21
  justify-content: center;
22
22
  margin: var(--bds-space_l) auto var(--bds-space_m);
23
23
  background: var(--icon-wrapper-color, var(--bds-color_bg));
24
- color: var(--bds-on-icon-wrapper-color, var(--bds-color_on-bg));
25
- fill: var(--bds-on-icon-wrapper-color, var(--bds-color_on-bg));
24
+ color: var(--icon-wrapper_on-color, var(--bds-on-icon-wrapper-color, var(--bds-color_on-bg)));
25
+ fill: currentcolor;
26
26
  position: relative;
27
27
  transition: var(--bds-animation_transition);
28
28
  }
@@ -29,8 +29,8 @@ var BdsSelect = class extends i2 {
29
29
  padding: var(--bds-space_s);
30
30
  padding-inline-end: var(--bds-space_xl);
31
31
  border: none;
32
- --bdc_color: currentcolor;
33
- --bdc-outline_radius: var(--bds-border_radius--xs);
32
+ --bdc_color: var(--select_border-color, currentcolor);
33
+ --bdc-outline_radius: var(--bds-border_radius--full);
34
34
 
35
35
  border-radius: var(--select_radius, var(--bdc-outline_radius));
36
36
  box-shadow: inset 0 0 0 var(--bdc-outline_width) var(--bdc_color), var(--select_shadow, var(--bdc-outline_shadow));
@@ -9,6 +9,7 @@ var BdsAccordion = class extends i2 {
9
9
  static styles = i`
10
10
  :host {
11
11
  display: block;
12
+ border: var(--accordion_border, none);
12
13
  --bdc_color: var(--bds-color_bg--subtle);
13
14
  --bdc-outline_radius: var(--bds-border_radius--s);
14
15
  border-radius: var(--accordion_radius, var(--bdc-outline_radius));
@@ -24,8 +24,8 @@ var BdsTextarea = class extends i2 {
24
24
  line-height: var(--bds-font_line-height--body);
25
25
  padding: var(--bds-space_s);
26
26
  border: none;
27
- --bdc_color: currentcolor;
28
- --bdc-outline_radius: var(--bds-border_radius--xs);
27
+ --bdc_color: var(--textarea_border-color, currentcolor);
28
+ --bdc-outline_radius: var(--bdc-outline_radius--l);
29
29
 
30
30
  border-radius: var(--textarea_radius, var(--bdc-outline_radius));
31
31
  box-shadow: inset 0 0 0 var(--bdc-outline_width) var(--bdc_color), var(--textarea_shadow, var(--bdc-outline_shadow));
@@ -14,7 +14,7 @@ var BdsAvatar = class extends i2 {
14
14
  justify-content: center;
15
15
  inline-size: var(--avatar_size, 3em);
16
16
  block-size: var(--avatar_size, 3em);
17
- border-radius: 50%;
17
+ border-radius: var(--avatar_radius, var(--bds-border_radius--circle));
18
18
  overflow: hidden;
19
19
  flex-shrink: 0;
20
20
  }
@@ -49,7 +49,7 @@ var BdsAccordionItem = class extends i2 {
49
49
 
50
50
  @media (hover: hover) and (pointer: fine) {
51
51
  .trigger:not(:disabled):hover {
52
- background-color: var(--bds-color_bg--subtle);
52
+ background-color: var(--accordion_trigger-bg--hover, var(--bds-color_bg--subtle));
53
53
  }
54
54
  }
55
55
 
@@ -30,10 +30,10 @@ var BdsRadio = class extends i2 {
30
30
  inline-size: var(--inputSize);
31
31
  block-size: var(--inputSize);
32
32
  flex-shrink: 0;
33
- --bdc_color: currentcolor;
34
- --bdc-outline_radius: 50%;
33
+ --bdc_color: var(--radio_border-color, currentcolor);
34
+ --bdc-outline_radius: var(--bds-border_radius--circle);
35
35
 
36
- border-radius: 50%;
36
+ border-radius: var(--radio_radius, var(--bds-border_radius--circle));
37
37
  box-shadow: inset 0 0 0 var(--bdc-outline_width) var(--bdc_color), var(--radio_shadow, var(--bdc-outline_shadow));
38
38
  border: none;
39
39
  appearance: none;
@@ -96,7 +96,7 @@ var BdsDrawer = class extends i2 {
96
96
  justify-content: center;
97
97
  inline-size: 2rem;
98
98
  block-size: 2rem;
99
- border-radius: 50%;
99
+ border-radius: var(--drawer_close-radius, var(--bds-border_radius--circle));
100
100
  cursor: pointer;
101
101
  transition: var(--bds-animation_transition);
102
102
  }
@@ -113,7 +113,7 @@ var BdsDrawer = class extends i2 {
113
113
 
114
114
  @media (hover: hover) and (pointer: fine) {
115
115
  .close-button:hover {
116
- background-color: var(--bds-color_bg--subtle);
116
+ background-color: var(--drawer_close-bg--hover, var(--bds-color_bg--subtle));
117
117
  }
118
118
  }
119
119
 
@@ -89,7 +89,8 @@ var BdsAlert = class extends i2 {
89
89
  cursor: pointer;
90
90
  color: currentcolor;
91
91
  transition: var(--bds-animation_transition);
92
- border-radius: 50%;
92
+ border: var(--alert_dismiss-border, none);
93
+ border-radius: var(--alert_dismiss-radius, var(--bds-border_radius--circle));
93
94
  --bdc_color: currentcolor;
94
95
  box-shadow: inset 0 0 0 var(--bdc-outline_width) var(--bdc_color);
95
96
  }
@@ -106,7 +107,7 @@ var BdsAlert = class extends i2 {
106
107
 
107
108
  @media (hover: hover) and (pointer: fine) {
108
109
  .dismiss:hover {
109
- opacity: 0.7;
110
+ opacity: var(--alert_dismiss-opacity--hover, 0.7);
110
111
  }
111
112
  }
112
113
  `;
@@ -0,0 +1,167 @@
1
+ import {
2
+ T,
3
+ i,
4
+ i2
5
+ } from "./chunk-LGEZYFUU.js";
6
+
7
+ // src/web-components/interaction/form/bds-switch.ts
8
+ var BdsSwitch = class extends i2 {
9
+ static formAssociated = true;
10
+ static styles = i`
11
+ :host {
12
+ display: inline-flex;
13
+ align-items: center;
14
+ gap: var(--bds-space_xs);
15
+ cursor: pointer;
16
+ font-size: var(--bds-font_size--body);
17
+ font-family: var(--bds-font_family--body);
18
+ color: var(--switch_color, var(--bds-color_on-bg));
19
+ }
20
+
21
+ :host([disabled]) {
22
+ opacity: 0.5;
23
+ cursor: not-allowed;
24
+ pointer-events: none;
25
+ }
26
+
27
+ label {
28
+ display: inline-flex;
29
+ align-items: center;
30
+ gap: var(--bds-space_xs);
31
+ cursor: pointer;
32
+ }
33
+
34
+ .input {
35
+ position: absolute;
36
+ inset: 0;
37
+ appearance: none;
38
+ opacity: 0;
39
+ inline-size: 100%;
40
+ block-size: 100%;
41
+ margin: 0;
42
+ cursor: pointer;
43
+ z-index: 1;
44
+ }
45
+
46
+ .input:disabled {
47
+ cursor: not-allowed;
48
+ }
49
+
50
+ .track {
51
+ --switch_thumb-size: 1.25em;
52
+ --switch_track-pad: var(--bds-space_xxxs);
53
+ --switch_track-height: calc(var(--switch_thumb-size) + var(--switch_track-pad) * 2);
54
+ --switch_track-width: calc(var(--switch_thumb-size) * 2 + var(--switch_track-pad) * 2);
55
+
56
+ position: relative;
57
+ display: inline-flex;
58
+ align-items: center;
59
+ inline-size: var(--switch_track-width);
60
+ block-size: var(--switch_track-height);
61
+ border-radius: var(--switch_track-radius, var(--bds-border_radius--full));
62
+ background-color: var(--switch_track-bg, var(--bds-color_grey--subtle));
63
+ padding-inline: var(--switch_track-pad);
64
+ --bdc_color: var(--switch_thumb-bg, var(--bds-color_interactive));
65
+ box-shadow: inset 0 0 0 var(--bdc-outline_width) var(--bdc_color), var(--switch_shadow, var(--bdc-outline_shadow));
66
+ transition: --bdc_color var(--bds-animation_transition-duration) var(--bds-animation_easing),
67
+ background-color var(--bds-animation_transition-duration) var(--bds-animation_easing);
68
+ flex-shrink: 0;
69
+ pointer-events: none;
70
+ }
71
+
72
+ .thumb {
73
+ display: block;
74
+ inline-size: var(--switch_thumb-size);
75
+ block-size: var(--switch_thumb-size);
76
+ border-radius: var(--switch_thumb-radius, var(--bds-border_radius--circle));
77
+ background-color: var(--switch_thumb-bg, var(--bds-color_interactive));
78
+ box-shadow: var(--bds-shadow_s);
79
+ transition: var(--bds-animation_transition);
80
+ transform: translateX(0);
81
+ }
82
+
83
+ .input:checked + .track {
84
+ background-color: var(--switch_track-bg--active, var(--bdc-color_active--subtle));
85
+ --bdc_color: var(--switch_thumb-bg--active, var(--bds-color_interactive));
86
+ }
87
+
88
+ .input:checked + .track .thumb {
89
+ background-color: var(--switch_thumb-bg--active, var(--bds-color_interactive));
90
+ transform: translateX(var(--switch_thumb-size));
91
+ }
92
+
93
+ .input:focus-visible + .track {
94
+ outline: var(--bds-outline_default);
95
+ outline-offset: var(--bds-outline_offset);
96
+ border-radius: var(--switch_track-radius, var(--bds-border_radius--full));
97
+ }
98
+
99
+ .input:disabled + .track {
100
+ opacity: 0.4;
101
+ }
102
+
103
+ @media (prefers-reduced-motion: reduce) {
104
+ .track,
105
+ .thumb {
106
+ transition: none;
107
+ }
108
+ }
109
+ `;
110
+ static properties = {
111
+ name: { type: String, reflect: true },
112
+ value: { type: String },
113
+ checked: { type: Boolean, reflect: true },
114
+ required: { type: Boolean, reflect: true },
115
+ disabled: { type: Boolean, reflect: true }
116
+ };
117
+ _internals;
118
+ _uid = Math.random().toString(36).slice(2, 8);
119
+ constructor() {
120
+ super();
121
+ this._internals = this.attachInternals();
122
+ this.name = "";
123
+ this.value = "on";
124
+ this.checked = false;
125
+ this.required = false;
126
+ this.disabled = false;
127
+ }
128
+ updated(changed) {
129
+ super.updated(changed);
130
+ if (changed.has("checked") || changed.has("value")) {
131
+ this._internals.setFormValue?.(this.checked ? this.value : null);
132
+ }
133
+ }
134
+ formResetCallback() {
135
+ this.checked = false;
136
+ this._internals.setFormValue?.(null);
137
+ }
138
+ _handleChange(e) {
139
+ this.checked = e.target.checked;
140
+ }
141
+ render() {
142
+ const id = `bds-switch-${this._uid}`;
143
+ return T`
144
+ <label for=${id}>
145
+ <input
146
+ id=${id}
147
+ type="checkbox"
148
+ role="switch"
149
+ class="input"
150
+ .checked=${this.checked}
151
+ ?required=${this.required}
152
+ ?disabled=${this.disabled}
153
+ @change=${this._handleChange}
154
+ />
155
+ <span class="track">
156
+ <span class="thumb"></span>
157
+ </span>
158
+ <slot></slot>
159
+ </label>
160
+ `;
161
+ }
162
+ };
163
+ customElements.define("bds-switch", BdsSwitch);
164
+
165
+ export {
166
+ BdsSwitch
167
+ };
@@ -31,14 +31,15 @@ var BdsButton = class extends i2 {
31
31
  padding-inline: var(--bds-space_l);
32
32
  display: inline-flex;
33
33
  gap: var(--bds-space_xs);
34
- border-radius: var(--button_border_radius--s, var(--bds-border_radius--s));
34
+ border-radius: var(--button_radius, var(--bds-border_radius--full));
35
35
  align-items: center;
36
36
  cursor: pointer;
37
37
  justify-content: center;
38
- height: var(--button_height, 3em);
38
+ block-size: var(--button_height, 3em);
39
39
  font-size: var(--button_font-size, inherit);
40
40
  white-space: nowrap;
41
41
  line-height: 1;
42
+ scroll-padding-block-end: var(--bds-space_l);
42
43
 
43
44
  /* Identity tokens — override --button_color + --button_on-color to re-theme */
44
45
  --button_color: var(--bds-color_interactive);
@@ -77,7 +78,6 @@ var BdsButton = class extends i2 {
77
78
  .button.small {
78
79
  --button_height: 2.25em;
79
80
  --button_font-size: var(--bds-font_size--body--s);
80
- --button_border_radius--s: var(--bds-border_radius--xs);
81
81
  padding-inline: var(--bds-space_m);
82
82
  }
83
83
 
@@ -88,7 +88,6 @@ var BdsButton = class extends i2 {
88
88
 
89
89
  .button.large {
90
90
  --button_font-size: var(--bds-font_size--heading-3);
91
- --button_border_radius--s: var(--bds-border_radius--m);
92
91
  padding-inline: var(--bds-space_xl);
93
92
  }
94
93
 
@@ -106,7 +105,7 @@ var BdsButton = class extends i2 {
106
105
  .button.is-icon-only {
107
106
  aspect-ratio: 1;
108
107
  box-sizing: border-box;
109
- padding: var(--bds-space_xs);
108
+ padding: var(--bds-space_xxs);
110
109
  }
111
110
 
112
111
  :host([is-icon-only]) ::slotted(*) {
@@ -157,9 +156,9 @@ var BdsButton = class extends i2 {
157
156
  /* Default hover */
158
157
  .button.default:hover {
159
158
  --button_bg--variant: var(--button_bg--hover, var(--bds-color_bg));
160
- --button_text--variant: var(--button_text--hover, var(--bds-color_interactive));
159
+ --button_text--variant: var(--button_text--hover, var(--bds-color_interactive_on-bg));
161
160
  --button_border--variant: var(--button_border--hover, currentcolor);
162
- --button_pulse-color: var(--button_pulse-color--hover, var(--bds-color_interactive));
161
+ --button_pulse-color: var(--button_pulse-color--hover, var(--bds-color_interactive_on-bg));
163
162
  }
164
163
 
165
164
  /* Outline hover */
@@ -175,7 +174,6 @@ var BdsButton = class extends i2 {
175
174
  .button:focus-visible {
176
175
  outline: var(--bds-outline_default);
177
176
  outline-offset: var(--bds-outline_offset);
178
- border-radius: var(--bds-border_radius--s);
179
177
  }
180
178
 
181
179
  /* Disabled */
@@ -20,9 +20,11 @@ var BdsCard = class extends i2 {
20
20
  position: relative;
21
21
  box-sizing: border-box;
22
22
  inline-size: 100%;
23
+ block-size: 100%;
23
24
  text-align: inherit;
24
25
  font: inherit;
25
26
  border: none;
27
+ padding: var(--card_padding, var(--bds-space_m));
26
28
  }
27
29
 
28
30
  /* Resting shadows — consumers can override per-variant via
@@ -31,15 +33,11 @@ var BdsCard = class extends i2 {
31
33
  .card.--elevated { box-shadow: var(--card_shadow--elevated, var(--bds-shadow_m)); }
32
34
 
33
35
  .card.--outlined {
36
+ border: var(--card_border, none);
34
37
  --bdc_color: currentcolor;
35
38
  box-shadow: var(--card_shadow--outlined, inset 0 0 0 var(--bdc-outline_width) var(--bdc_color), var(--bds-shadow_s));
36
39
  }
37
40
 
38
- .card.--padding-none { padding: 0; }
39
- .card.--padding-small { padding: var(--bds-space_s); }
40
- .card.--padding-medium { padding: var(--bds-space_m); }
41
- .card.--padding-large { padding: var(--bds-space_l); }
42
-
43
41
  .card.--text-start { text-align: start; }
44
42
  .card.--text-center { text-align: center; }
45
43
  .card.--text-end { text-align: end; }
@@ -72,7 +70,6 @@ var BdsCard = class extends i2 {
72
70
  `;
73
71
  static properties = {
74
72
  variant: { type: String, reflect: true },
75
- padding: { type: String, reflect: true },
76
73
  textAlign: { type: String, attribute: "text-align", reflect: true },
77
74
  clickable: { type: Boolean, reflect: true },
78
75
  ariaLabel: { type: String, attribute: "aria-label" }
@@ -80,7 +77,6 @@ var BdsCard = class extends i2 {
80
77
  constructor() {
81
78
  super();
82
79
  this.variant = "default";
83
- this.padding = "medium";
84
80
  this.textAlign = "start";
85
81
  this.clickable = false;
86
82
  this.ariaLabel = "";
@@ -92,7 +88,6 @@ var BdsCard = class extends i2 {
92
88
  const classes = [
93
89
  "card",
94
90
  `--${this.variant}`,
95
- `--padding-${this.padding}`,
96
91
  `--text-${this.textAlign}`,
97
92
  this.clickable ? "--clickable" : ""
98
93
  ].filter(Boolean).join(" ");
@@ -28,7 +28,7 @@ var BdsNumberInput = class extends i2 {
28
28
  font-size: var(--bds-font_size--body);
29
29
  padding: var(--bds-space_s);
30
30
  border: none;
31
- --bdc_color: currentcolor;
31
+ --bdc_color: var(--number-input_border-color, currentcolor);
32
32
  --bdc-outline_radius: var(--bds-border_radius--xs);
33
33
 
34
34
  border-radius: var(--number-input_radius, var(--bdc-outline_radius));
@@ -18,7 +18,7 @@ var BdsLoading = class extends i2 {
18
18
  block-size: 2.5em;
19
19
  border: 4px solid var(--bds-color_bg);
20
20
  border-block-start: 4px solid var(--bds-color_interactive);
21
- border-radius: 50%;
21
+ border-radius: var(--loading_radius, var(--bds-border_radius--circle));
22
22
  animation: spin 1s linear infinite;
23
23
  }
24
24
 
@@ -28,10 +28,15 @@ var BdsPopover = class extends i2 {
28
28
  overflow-y: auto;
29
29
  z-index: var(--popover_z-index, 100);
30
30
  min-width: 12rem;
31
+ max-width: var(--popover_max-width, 20rem);
32
+ max-height: var(--popover_max-height, 80dvh);
31
33
  padding: var(--bds-space_m);
32
- border-radius: var(--bds-border_radius--s);
34
+ border: var(--popover_border, none);
35
+ --bdc_color: currentcolor;
36
+ --bdc-outline_radius: var(--bds-border_radius--s);
37
+ border-radius: var(--popover_radius, var(--bdc-outline_radius));
33
38
  background-color: var(--popover_color, var(--bds-color_bg));
34
- box-shadow: var(--popover_shadow, var(--bds-shadow_m));
39
+ box-shadow: inset 0 0 0 var(--bdc-outline_width) var(--bdc_color), var(--popover_shadow, var(--bds-shadow_m));
35
40
  color: var(--popover_on-color, var(--bds-color_on-bg));
36
41
  font-size: var(--bds-font_size--body);
37
42
  }
@@ -29,8 +29,8 @@ var BdsCombobox = class extends i2 {
29
29
  padding: var(--bds-space_s);
30
30
  padding-inline-end: var(--bds-space_xl);
31
31
  border: none;
32
- --bdc_color: currentcolor;
33
- --bdc-outline_radius: var(--bds-border_radius--xs);
32
+ --bdc_color: var(--combobox_border-color, currentcolor);
33
+ --bdc-outline_radius: var(--bds-border_radius--full);
34
34
 
35
35
  border-radius: var(--combobox_radius, var(--bdc-outline_radius));
36
36
  box-shadow: inset 0 0 0 var(--bdc-outline_width) var(--bdc_color), var(--combobox_shadow, var(--bdc-outline_shadow));
@@ -35,7 +35,7 @@ var BdsProgress = class extends i2 {
35
35
  inline-size: 100%;
36
36
  block-size: var(--progress_height, var(--bds-space_xs));
37
37
  background-color: var(--bds-color_bg--subtle);
38
- border-radius: 999px;
38
+ border-radius: var(--progress_radius, var(--bds-border_radius--full));
39
39
  overflow: hidden;
40
40
  }
41
41
 
@@ -46,7 +46,7 @@ var BdsProgress = class extends i2 {
46
46
  .fill {
47
47
  block-size: 100%;
48
48
  background-color: var(--progress_color-active, var(--bdc-color_active));
49
- border-radius: 999px;
49
+ border-radius: var(--progress_radius, var(--bds-border_radius--full));
50
50
  transition: inline-size var(--bds-animation_transition-duration) var(--bds-animation_easing);
51
51
  }
52
52
 
@@ -17,9 +17,9 @@ var BdsNotificationBanner = class extends i2 {
17
17
  align-items: center;
18
18
  gap: var(--bds-space_m);
19
19
  padding: var(--bds-space_s) var(--bds-space_m);
20
- background-color: var(--banner_bg, var(--bds-color_blue--subtle));
21
- color: var(--banner_text, var(--bds-color_on-blue--subtle));
22
- border-block-end: 3px solid var(--banner_border, var(--bds-color_blue));
20
+ background-color: var(--banner_bg, var(--banner_bg--variant, var(--bds-color_blue--subtle)));
21
+ color: var(--banner_text, var(--banner_text--variant, var(--bds-color_on-blue--subtle)));
22
+ border-block-end: 3px solid var(--banner_border, var(--banner_border--variant, var(--bds-color_blue)));
23
23
  font-size: var(--bds-font_size--body);
24
24
  line-height: var(--bds-font_line-height--body);
25
25
  inline-size: 100%;
@@ -27,27 +27,27 @@ var BdsNotificationBanner = class extends i2 {
27
27
  }
28
28
 
29
29
  :host([variant='info']) .banner {
30
- --banner_bg: var(--bds-color_blue--subtle);
31
- --banner_text: var(--bds-color_on-blue--subtle);
32
- --banner_border: var(--bds-color_blue);
30
+ --banner_bg--variant: var(--banner_bg--info, var(--bds-color_blue--subtle));
31
+ --banner_text--variant: var(--banner_text--info, var(--bds-color_on-blue--subtle));
32
+ --banner_border--variant: var(--banner_border--info, var(--bds-color_blue));
33
33
  }
34
34
 
35
35
  :host([variant='success']) .banner {
36
- --banner_bg: var(--bds-color_success--subtle);
37
- --banner_text: var(--bds-color_on-success--subtle);
38
- --banner_border: var(--bds-color_success);
36
+ --banner_bg--variant: var(--banner_bg--success, var(--bds-color_success--subtle));
37
+ --banner_text--variant: var(--banner_text--success, var(--bds-color_on-success--subtle));
38
+ --banner_border--variant: var(--banner_border--success, var(--bds-color_success));
39
39
  }
40
40
 
41
41
  :host([variant='warning']) .banner {
42
- --banner_bg: var(--bds-color_orange--subtle);
43
- --banner_text: var(--bds-color_on-orange--subtle);
44
- --banner_border: var(--bds-color_warning);
42
+ --banner_bg--variant: var(--banner_bg--warning, var(--bds-color_orange--subtle));
43
+ --banner_text--variant: var(--banner_text--warning, var(--bds-color_on-orange--subtle));
44
+ --banner_border--variant: var(--banner_border--warning, var(--bds-color_warning));
45
45
  }
46
46
 
47
47
  :host([variant='error']) .banner {
48
- --banner_bg: rgb(from var(--bds-color_error) r g b / 12%);
49
- --banner_text: var(--bds-color_on-bg);
50
- --banner_border: var(--bds-color_error);
48
+ --banner_bg--variant: var(--banner_bg--error, rgb(from var(--bds-color_error) r g b / 12%));
49
+ --banner_text--variant: var(--banner_text--error, var(--bds-color_on-bg));
50
+ --banner_border--variant: var(--banner_border--error, var(--bds-color_error));
51
51
  }
52
52
 
53
53
  .content {
@@ -71,9 +71,10 @@ var BdsNotificationBanner = class extends i2 {
71
71
  flex-shrink: 0;
72
72
  cursor: pointer;
73
73
  color: currentcolor;
74
- border-radius: 50%;
74
+ border-radius: var(--banner_dismiss-radius, var(--bds-border_radius--circle));
75
+ border: var(--banner_dismiss-border, none);
75
76
  transition: var(--bds-animation_transition);
76
- --bdc_color: currentcolor;
77
+ --bdc_color: var(--notification-banner_dismiss-border-color, currentcolor);
77
78
  box-shadow: inset 0 0 0 var(--bdc-outline_width) var(--bdc_color);
78
79
  }
79
80
 
@@ -89,7 +90,7 @@ var BdsNotificationBanner = class extends i2 {
89
90
 
90
91
  @media (hover: hover) and (pointer: fine) {
91
92
  .dismiss:hover {
92
- opacity: 0.7;
93
+ opacity: var(--banner_dismiss-opacity--hover, 0.7);
93
94
  }
94
95
  }
95
96
  `;
@@ -17,7 +17,7 @@ var BdsTooltip = class extends i2 {
17
17
  position: absolute;
18
18
  z-index: var(--bds-z-index_popover, 200);
19
19
  padding: var(--bds-space_xxs) var(--bds-space_xs);
20
- border-radius: var(--bds-border_radius--xs);
20
+ border-radius: var(--tooltip_radius, var(--bds-border_radius--full));
21
21
  background-color: var(--tooltip_bg, var(--bds-color_on-bg));
22
22
  color: var(--tooltip_text, var(--bds-color_bg));
23
23
  font-size: var(--bds-font_size--body--s);