@boostdev/design-system-components 2.5.0 → 2.6.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 (41) hide show
  1. package/dist/client.cjs +56 -56
  2. package/dist/client.css +625 -626
  3. package/dist/client.js +56 -56
  4. package/dist/index.cjs +56 -56
  5. package/dist/index.css +625 -626
  6. package/dist/index.js +56 -56
  7. package/dist/web-components/{chunk-N3TN6WCH.js → chunk-GER5UJOF.js} +22 -15
  8. package/dist/web-components/chunk-QWPACK5L.js +72 -0
  9. package/dist/web-components/{chunk-YRXCVKHV.js → chunk-RTOS7LLG.js} +9 -7
  10. package/dist/web-components/{chunk-BX3IPVOB.js → chunk-ZNKEZIYE.js} +20 -16
  11. package/dist/web-components/index.js +9 -9
  12. package/dist/web-components/interaction/bds-button.js +1 -1
  13. package/dist/web-components/ui/bds-alert.js +1 -1
  14. package/dist/web-components/ui/bds-badge.js +1 -1
  15. package/dist/web-components/ui/bds-card.js +1 -1
  16. package/package.json +1 -1
  17. package/src/components/interaction/Button/Button.mdx +87 -13
  18. package/src/components/interaction/Button/Button.module.css +22 -17
  19. package/src/components/interaction/Toast/Toast.mdx +22 -3
  20. package/src/components/interaction/Toast/Toast.module.css +13 -10
  21. package/src/components/layout/Card/Card.mdx +20 -8
  22. package/src/components/layout/Card/Card.module.css +5 -3
  23. package/src/components/layout/Grid/Grid.spec.tsx +19 -0
  24. package/src/components/layout/Grid/masonry.ts +12 -5
  25. package/src/components/ui/Alert/Alert.mdx +39 -5
  26. package/src/components/ui/Alert/Alert.module.css +21 -15
  27. package/src/components/ui/Badge/Badge.mdx +23 -3
  28. package/src/components/ui/Badge/Badge.module.css +15 -12
  29. package/src/components/ui/Link/Link.mdx +20 -2
  30. package/src/components/ui/Link/Link.module.css +12 -8
  31. package/src/components/ui/NotificationBanner/NotificationBanner.mdx +25 -6
  32. package/src/components/ui/NotificationBanner/NotificationBanner.module.css +18 -15
  33. package/src/components/ui/Pagination/Pagination.mdx +22 -9
  34. package/src/components/ui/Pagination/Pagination.module.css +10 -8
  35. package/src/components/ui/Tabs/Tabs.mdx +20 -5
  36. package/src/components/ui/Tabs/Tabs.module.css +8 -5
  37. package/src/web-components/interaction/bds-button.ts +22 -15
  38. package/src/web-components/ui/bds-alert.ts +20 -16
  39. package/src/web-components/ui/bds-badge.ts +16 -13
  40. package/src/web-components/ui/bds-card.ts +9 -7
  41. package/dist/web-components/chunk-OHUTLSIQ.js +0 -69
@@ -65,14 +65,20 @@ export class BdsButton extends LitElement {
65
65
  white-space: nowrap;
66
66
  line-height: 1;
67
67
 
68
+ /* Identity tokens — override --button_color + --button_on-color to re-theme */
68
69
  --button_color: var(--bds-color_interactive);
69
70
  --button_on-color: var(--bds-color_on-interactive);
71
+
72
+ /* Text-safe variant of --button_color for use on page background (outline text/border) */
70
73
  --button_color--on-bg: var(--bds-color_interactive_on-bg);
71
74
 
72
- background-color: var(--button_bg, var(--button_color));
73
- color: var(--button_text, var(--button_on-color));
74
- border: var(--button_border, none);
75
- --bdc_color: transparent;
75
+ /* Layered cascade: the consumer-facing overrides (--button_bg, --button_text,
76
+ --button_border) are read OUTERMOST so an ancestor-set value always wins
77
+ over variant + hover defaults. Variants and hover write to the inner
78
+ --button_*--variant slot, never to the public tokens. */
79
+ background-color: var(--button_bg, var(--button_bg--variant, var(--button_color)));
80
+ color: var(--button_text, var(--button_text--variant, var(--button_on-color)));
81
+ --bdc_color: var(--button_border, var(--button_border--variant, transparent));
76
82
 
77
83
  box-shadow: inset 0 0 0 var(--bdc-outline_width) var(--bdc_color);
78
84
  transition: var(--bds-animation_transition),
@@ -83,12 +89,13 @@ export class BdsButton extends LitElement {
83
89
  text-decoration: none;
84
90
  }
85
91
 
86
- /* Variants */
92
+ /* Variants — outline-resting overrides (--button_bg--outline, --button_text--outline,
93
+ --button_border--outline) are honored if the consumer sets them. */
87
94
  .button.outline,
88
95
  .button.ghost /* deprecated — use variant="outline" */ {
89
- --button_bg: transparent;
90
- --button_text: var(--button_color--on-bg);
91
- --bdc_color: var(--button_color--on-bg);
96
+ --button_bg--variant: var(--button_bg--outline, transparent);
97
+ --button_text--variant: var(--button_text--outline, var(--button_color--on-bg));
98
+ --button_border--variant: var(--button_border--outline, var(--button_color--on-bg));
92
99
  }
93
100
 
94
101
  /* Sizes */
@@ -174,18 +181,18 @@ export class BdsButton extends LitElement {
174
181
 
175
182
  /* Default hover */
176
183
  .button.default:hover {
177
- --button_bg: var(--bds-color_bg);
178
- --button_text: var(--bds-color_interactive);
179
- --button_pulse-color: var(--bds-color_interactive);
180
- --bdc_color: currentcolor;
184
+ --button_bg--variant: var(--button_bg--hover, var(--bds-color_bg));
185
+ --button_text--variant: var(--button_text--hover, var(--bds-color_interactive));
186
+ --button_border--variant: var(--button_border--hover, currentcolor);
187
+ --button_pulse-color: var(--button_pulse-color--hover, var(--bds-color_interactive));
181
188
  }
182
189
 
183
190
  /* Outline hover */
184
191
  .button.outline:hover,
185
192
  .button.ghost:hover {
186
- --button_bg: var(--button_color);
187
- --button_text: var(--button_on-color);
188
- --bdc_color: transparent;
193
+ --button_bg--variant: var(--button_bg--outline-hover, var(--button_color));
194
+ --button_text--variant: var(--button_text--outline-hover, var(--button_on-color));
195
+ --button_border--variant: var(--button_border--outline-hover, transparent);
189
196
  }
190
197
  }
191
198
 
@@ -41,36 +41,40 @@ export class BdsAlert extends LitElement {
41
41
  gap: var(--bds-space_s);
42
42
  padding: var(--bds-space_m);
43
43
  border-radius: var(--bds-border_radius--s);
44
- border-inline-start: var(--bds-space_s) solid var(--alert_border, var(--bds-color_blue));
45
- background-color: var(--alert_bg, var(--bds-color_blue--subtle));
46
- color: var(--alert_text, var(--bds-color_on-blue--subtle));
44
+ /* Layered cascade: public overrides (--alert_bg, --alert_text, --alert_border)
45
+ are read OUTERMOST so an ancestor-set value always wins over variant
46
+ defaults. Variants write to the inner --alert_*--variant slot. */
47
+ background-color: var(--alert_bg, var(--alert_bg--variant, var(--bds-color_blue--subtle)));
48
+ color: var(--alert_text, var(--alert_text--variant, var(--bds-color_on-blue--subtle)));
49
+ border-inline-start: var(--bds-space_s) solid var(--alert_border, var(--alert_border--variant, var(--bds-color_blue)));
47
50
  font-size: var(--bds-font_size--body);
48
51
  line-height: var(--bds-font_line-height--body);
49
52
  }
50
53
 
51
- /* Variant colours */
54
+ /* Per-variant resting overrides — consumers can theme per-variant via
55
+ --alert_bg--info / --alert_bg--success / ... */
52
56
  :host([variant='info']) .alert {
53
- --alert_bg: var(--bds-color_blue--subtle);
54
- --alert_text: var(--bds-color_on-blue--subtle);
55
- --alert_border: var(--bds-color_blue);
57
+ --alert_bg--variant: var(--alert_bg--info, var(--bds-color_blue--subtle));
58
+ --alert_text--variant: var(--alert_text--info, var(--bds-color_on-blue--subtle));
59
+ --alert_border--variant: var(--alert_border--info, var(--bds-color_blue));
56
60
  }
57
61
 
58
62
  :host([variant='success']) .alert {
59
- --alert_bg: var(--bds-color_success--subtle);
60
- --alert_text: var(--bds-color_on-success--subtle);
61
- --alert_border: var(--bds-color_success);
63
+ --alert_bg--variant: var(--alert_bg--success, var(--bds-color_success--subtle));
64
+ --alert_text--variant: var(--alert_text--success, var(--bds-color_on-success--subtle));
65
+ --alert_border--variant: var(--alert_border--success, var(--bds-color_success));
62
66
  }
63
67
 
64
68
  :host([variant='warning']) .alert {
65
- --alert_bg: var(--bds-color_orange--subtle);
66
- --alert_text: var(--bds-color_on-orange--subtle);
67
- --alert_border: var(--bds-color_warning);
69
+ --alert_bg--variant: var(--alert_bg--warning, var(--bds-color_orange--subtle));
70
+ --alert_text--variant: var(--alert_text--warning, var(--bds-color_on-orange--subtle));
71
+ --alert_border--variant: var(--alert_border--warning, var(--bds-color_warning));
68
72
  }
69
73
 
70
74
  :host([variant='error']) .alert {
71
- --alert_bg: rgb(from var(--bds-color_error) r g b / 12%);
72
- --alert_text: var(--bds-color_on-bg);
73
- --alert_border: var(--bds-color_error);
75
+ --alert_bg--variant: var(--alert_bg--error, rgb(from var(--bds-color_error) r g b / 12%));
76
+ --alert_text--variant: var(--alert_text--error, var(--bds-color_on-bg));
77
+ --alert_border--variant: var(--alert_border--error, var(--bds-color_error));
74
78
  }
75
79
 
76
80
  /* Icon slot wrapper — hidden unless slot has content */
@@ -30,34 +30,37 @@ export class BdsBadge extends LitElement {
30
30
  font-weight: var(--bds-font_weight--semibold);
31
31
  line-height: 1;
32
32
  white-space: nowrap;
33
- background-color: var(--badge_bg, var(--bds-color_blue));
34
- color: var(--badge_text, var(--bds-color_on-blue));
33
+ /* Layered cascade: public overrides (--badge_bg, --badge_text) win over
34
+ per-variant defaults. Variants write to the inner --badge_*--variant slot. */
35
+ background-color: var(--badge_bg, var(--badge_bg--variant, var(--bds-color_blue)));
36
+ color: var(--badge_text, var(--badge_text--variant, var(--bds-color_on-blue)));
35
37
  }
36
38
 
37
- /* Variant overrides */
39
+ /* Per-variant resting overrides — consumers can theme per-variant via
40
+ --badge_bg--primary / --badge_bg--success / ... */
38
41
  :host([variant='primary']) .badge {
39
- --badge_bg: var(--bds-color_interactive);
40
- --badge_text: var(--bds-color_on-interactive);
42
+ --badge_bg--variant: var(--badge_bg--primary, var(--bds-color_interactive));
43
+ --badge_text--variant: var(--badge_text--primary, var(--bds-color_on-interactive));
41
44
  }
42
45
 
43
46
  :host([variant='secondary']) .badge {
44
- --badge_bg: var(--bds-color_bg);
45
- --badge_text: var(--bds-color_on-bg);
47
+ --badge_bg--variant: var(--badge_bg--secondary, var(--bds-color_bg));
48
+ --badge_text--variant: var(--badge_text--secondary, var(--bds-color_on-bg));
46
49
  }
47
50
 
48
51
  :host([variant='success']) .badge {
49
- --badge_bg: var(--bds-color_success);
50
- --badge_text: var(--bds-color_on-success);
52
+ --badge_bg--variant: var(--badge_bg--success, var(--bds-color_success));
53
+ --badge_text--variant: var(--badge_text--success, var(--bds-color_on-success));
51
54
  }
52
55
 
53
56
  :host([variant='error']) .badge {
54
- --badge_bg: var(--bds-color_error);
55
- --badge_text: var(--bds-color_on-error);
57
+ --badge_bg--variant: var(--badge_bg--error, var(--bds-color_error));
58
+ --badge_text--variant: var(--badge_text--error, var(--bds-color_on-error));
56
59
  }
57
60
 
58
61
  :host([variant='warning']) .badge {
59
- --badge_bg: var(--bds-color_warning);
60
- --badge_text: var(--bds-color_on-warning);
62
+ --badge_bg--variant: var(--badge_bg--warning, var(--bds-color_warning));
63
+ --badge_text--variant: var(--badge_text--warning, var(--bds-color_on-warning));
61
64
  }
62
65
  `;
63
66
 
@@ -48,12 +48,14 @@ export class BdsCard extends LitElement {
48
48
  border: none;
49
49
  }
50
50
 
51
- .card.--default { box-shadow: var(--bds-shadow_s); }
52
- .card.--elevated { box-shadow: var(--bds-shadow_m); }
51
+ /* Resting shadows — consumers can override per-variant via
52
+ --card_shadow--default / --card_shadow--elevated / --card_shadow--outlined. */
53
+ .card.--default { box-shadow: var(--card_shadow--default, var(--bds-shadow_s)); }
54
+ .card.--elevated { box-shadow: var(--card_shadow--elevated, var(--bds-shadow_m)); }
53
55
 
54
56
  .card.--outlined {
55
57
  --bdc_color: currentcolor;
56
- box-shadow: inset 0 0 0 var(--bdc-outline_width) var(--bdc_color), var(--bds-shadow_s);
58
+ box-shadow: var(--card_shadow--outlined, inset 0 0 0 var(--bdc-outline_width) var(--bdc_color), var(--bds-shadow_s));
57
59
  }
58
60
 
59
61
  .card.--padding-none { padding: 0; }
@@ -83,12 +85,12 @@ export class BdsCard extends LitElement {
83
85
  @media (hover: hover) and (pointer: fine) {
84
86
  .card.--clickable:hover {
85
87
  transform: translateY(-2px);
86
- box-shadow: var(--bds-shadow_xl);
88
+ box-shadow: var(--card_shadow--clickable-hover, var(--bds-shadow_xl));
87
89
  }
88
90
 
89
- .card.--default:hover { box-shadow: var(--bds-shadow_m); }
90
- .card.--elevated:hover { box-shadow: var(--bds-shadow_2xl); }
91
- .card.--outlined:hover { box-shadow: var(--bds-shadow_s); }
91
+ .card.--default:hover { box-shadow: var(--card_shadow--default-hover, var(--bds-shadow_m)); }
92
+ .card.--elevated:hover { box-shadow: var(--card_shadow--elevated-hover, var(--bds-shadow_2xl)); }
93
+ .card.--outlined:hover { box-shadow: var(--card_shadow--outlined-hover, var(--bds-shadow_s)); }
92
94
  }
93
95
  `;
94
96
 
@@ -1,69 +0,0 @@
1
- import {
2
- T,
3
- i,
4
- i2
5
- } from "./chunk-LGEZYFUU.js";
6
-
7
- // src/web-components/ui/bds-badge.ts
8
- var BdsBadge = class extends i2 {
9
- static styles = i`
10
- :host {
11
- display: inline-flex;
12
- }
13
-
14
- .badge {
15
- display: inline-flex;
16
- align-items: center;
17
- justify-content: center;
18
- padding: var(--bds-space_xxs) var(--bds-space_xs);
19
- border-radius: var(--badge_radius, 2em);
20
- font-size: var(--badge_font-size, var(--bds-font_size--body--s));
21
- font-weight: var(--bds-font_weight--semibold);
22
- line-height: 1;
23
- white-space: nowrap;
24
- background-color: var(--badge_bg, var(--bds-color_blue));
25
- color: var(--badge_text, var(--bds-color_on-blue));
26
- }
27
-
28
- /* Variant overrides */
29
- :host([variant='primary']) .badge {
30
- --badge_bg: var(--bds-color_interactive);
31
- --badge_text: var(--bds-color_on-interactive);
32
- }
33
-
34
- :host([variant='secondary']) .badge {
35
- --badge_bg: var(--bds-color_bg);
36
- --badge_text: var(--bds-color_on-bg);
37
- }
38
-
39
- :host([variant='success']) .badge {
40
- --badge_bg: var(--bds-color_success);
41
- --badge_text: var(--bds-color_on-success);
42
- }
43
-
44
- :host([variant='error']) .badge {
45
- --badge_bg: var(--bds-color_error);
46
- --badge_text: var(--bds-color_on-error);
47
- }
48
-
49
- :host([variant='warning']) .badge {
50
- --badge_bg: var(--bds-color_warning);
51
- --badge_text: var(--bds-color_on-warning);
52
- }
53
- `;
54
- static properties = {
55
- variant: { type: String, reflect: true }
56
- };
57
- constructor() {
58
- super();
59
- this.variant = "primary";
60
- }
61
- render() {
62
- return T`<span class="badge"><slot></slot></span>`;
63
- }
64
- };
65
- customElements.define("bds-badge", BdsBadge);
66
-
67
- export {
68
- BdsBadge
69
- };