@hashicorp/design-system-components 5.1.1-rc-20251210200104 → 5.2.0-rc-20251216180742

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 (67) hide show
  1. package/declarations/components/hds/breadcrumb/item.d.ts +4 -7
  2. package/declarations/components/hds/dropdown/index.d.ts +2 -0
  3. package/declarations/components/hds/interactive/index.d.ts +4 -8
  4. package/declarations/components/hds/popover-primitive/index.d.ts +2 -0
  5. package/declarations/components/hds/rich-tooltip/bubble.d.ts +2 -0
  6. package/declarations/components/hds/theme-context/index.d.ts +24 -0
  7. package/declarations/components/hds/theme-context/types.d.ts +19 -0
  8. package/declarations/components/hds/theme-switcher/index.d.ts +43 -0
  9. package/declarations/components.d.ts +2 -0
  10. package/declarations/modifiers/hds-anchored-position.d.ts +3 -1
  11. package/declarations/services/hds-theming.d.ts +57 -0
  12. package/declarations/services.d.ts +1 -0
  13. package/declarations/template-registry.d.ts +6 -0
  14. package/declarations/utils/hds-resolve-link-to-external.d.ts +12 -0
  15. package/dist/_app_/components/hds/theme-context.js +1 -0
  16. package/dist/_app_/components/hds/theme-switcher.js +1 -0
  17. package/dist/_app_/services/hds-theming.js +1 -0
  18. package/dist/components/hds/breadcrumb/item.js +17 -14
  19. package/dist/components/hds/breadcrumb/item.js.map +1 -1
  20. package/dist/components/hds/dropdown/index.js +3 -2
  21. package/dist/components/hds/dropdown/index.js.map +1 -1
  22. package/dist/components/hds/interactive/index.js +17 -18
  23. package/dist/components/hds/interactive/index.js.map +1 -1
  24. package/dist/components/hds/popover-primitive/index.js +1 -1
  25. package/dist/components/hds/popover-primitive/index.js.map +1 -1
  26. package/dist/components/hds/rich-tooltip/bubble.js +2 -1
  27. package/dist/components/hds/rich-tooltip/bubble.js.map +1 -1
  28. package/dist/components/hds/theme-context/index.js +45 -0
  29. package/dist/components/hds/theme-context/index.js.map +1 -0
  30. package/dist/components/hds/theme-context/types.js +27 -0
  31. package/dist/components/hds/theme-context/types.js.map +1 -0
  32. package/dist/components/hds/theme-switcher/index.js +100 -0
  33. package/dist/components/hds/theme-switcher/index.js.map +1 -0
  34. package/dist/components.js +2 -0
  35. package/dist/components.js.map +1 -1
  36. package/dist/modifiers/hds-anchored-position.js +42 -4
  37. package/dist/modifiers/hds-anchored-position.js.map +1 -1
  38. package/dist/services/hds-theming.js +214 -0
  39. package/dist/services/hds-theming.js.map +1 -0
  40. package/dist/services.js +1 -1
  41. package/dist/styles/@hashicorp/design-system-components-common.css +9584 -0
  42. package/dist/styles/@hashicorp/design-system-components-common.css.map +1 -0
  43. package/dist/styles/@hashicorp/design-system-components-common.scss +24 -0
  44. package/dist/styles/@hashicorp/design-system-components.css +544 -337
  45. package/dist/styles/@hashicorp/design-system-components.css.map +1 -0
  46. package/dist/styles/@hashicorp/design-system-components.scss +4 -62
  47. package/dist/styles/@hashicorp/design-system-power-select-overrides.css +229 -0
  48. package/dist/styles/@hashicorp/design-system-power-select-overrides.css.map +1 -0
  49. package/dist/styles/components/badge-count.scss +26 -76
  50. package/dist/styles/components/badge.scss +26 -131
  51. package/dist/styles/components/button.scss +5 -0
  52. package/dist/styles/components/dropdown.scss +3 -5
  53. package/dist/styles/components/form/file-input.scss +2 -2
  54. package/dist/styles/components/form/key-value-inputs.scss +2 -4
  55. package/dist/styles/components/form/super-select.scss +12 -4
  56. package/dist/styles/components/index.scss +52 -0
  57. package/dist/styles/components/theme-context.scss +12 -0
  58. package/dist/styles/mixins/_button.scss +82 -129
  59. package/dist/styles/mixins/_carbonization.scss +31 -0
  60. package/dist/styles/mixins/_interactive-dark-theme.scss +1 -1
  61. package/dist/utils/hds-resolve-link-to-external.js +33 -0
  62. package/dist/utils/hds-resolve-link-to-external.js.map +1 -0
  63. package/package.json +12 -4
  64. package/declarations/utils/hds-link-to-external.d.ts +0 -3
  65. package/dist/styles/@hashicorp/design-system-components.scss.map +0 -1
  66. package/dist/utils/hds-link-to-external.js +0 -10
  67. package/dist/utils/hds-link-to-external.js.map +0 -1
@@ -6,60 +6,11 @@
6
6
  @use "sass:map";
7
7
 
8
8
  $hds-button-sizes: ("small", "medium", "large");
9
- $hds-button-border-radius: var(--token-border-radius-small);
10
- $hds-button-border-width: 1px;
11
- $hds-button-focus-border-width: 3px;
12
-
13
- // these values later may come from the design tokens
14
- $hds-button-size-props: (
15
- "small": (
16
- // 13px = 0.8125rem
17
- "font-size": 0.8125rem,
18
- // 14px = 0.875rem; we need to make it even (so we set it slighly larger than the font-size; notice: in Figma is 12px but this would cut some ascendants/descendants)
19
- "line-height": 0.875rem,
20
- // 28px = 1.75rem
21
- "min-height": 1.75rem,
22
- // 6px = 0.375rem; here we're taking into account the 1px border
23
- "padding-vertical": 0.375rem,
24
- // 11px = 0.6875rem; here we're taking into account the 1px border
25
- "padding-horizontal": 0.6875rem,
26
- // 12px = 0.75rem
27
- "icon-size": 0.75rem,
28
- ),
29
- "medium": (
30
- // 14px = 0.875rem
31
- "font-size": 0.875rem,
32
- // 16px = 1rem
33
- "line-height": 1rem,
34
- // 36px = 2.25rem
35
- "min-height": 2.25rem,
36
- // 9px = 0.5625rem; here we're taking into account the 1px border
37
- "padding-vertical": 0.5625rem,
38
- // 15px = 0.9375rem; here we're taking into account the 1px border
39
- "padding-horizontal": 0.9375rem,
40
- // 16px
41
- "icon-size": 1rem,
42
- ),
43
- "large": (
44
- // 16px = 1rem
45
- "font-size": 1rem,
46
- // 24px = 1.5rem
47
- "line-height": 1.5rem,
48
- // 48px = 3rem
49
- "min-height": 3rem,
50
- // 11px = 0.6875rem; here we're taking into account the 1px border
51
- "padding-vertical": 0.6875rem,
52
- // 19px = 1.1875rem; here we're taking into account the 1px border
53
- "padding-horizontal": 1.1875rem,
54
- // 24px = 1.5rem
55
- "icon-size": 1.5rem,
56
- ),
57
- );
58
9
 
59
10
  @mixin hds-button() {
60
11
  position: relative;
61
12
  display: flex;
62
- gap: 0.375rem;
13
+ gap: var(--token-button-gap);
63
14
  align-items: center;
64
15
  justify-content: center;
65
16
  width: auto;
@@ -71,17 +22,17 @@ $hds-button-size-props: (
71
22
  font-weight: var(--token-typography-font-weight-regular);
72
23
  font-family: var(--token-typography-font-stack-text);
73
24
  text-decoration: none;
74
- border: $hds-button-border-width solid transparent; // We need this to be transparent for a11y
75
- border-radius: $hds-button-border-radius;
25
+ border: var(--token-button-border-width) solid transparent; // We need this to be transparent for a11y
26
+ border-radius: var(--token-button-border-radius);
76
27
  outline-style: solid; // used to avoid double outline+focus-ring in Safari (see https://github.com/hashicorp/design-system-components/issues/161#issuecomment-1031548656)
77
28
  outline-color: transparent; // We need this to be transparent for a11y
78
29
  isolation: isolate;
79
30
  }
80
31
 
81
32
  @mixin hds-button-state-disabled() {
82
- color: var(--token-color-foreground-disabled);
83
- background-color: var(--token-color-surface-faint);
84
- border-color: var(--token-color-border-primary);
33
+ color: var(--token-button-foreground-color-disabled);
34
+ background-color: var(--token-button-surface-color-disabled);
35
+ border-color: var(--token-button-border-color-disabled);
85
36
  box-shadow: none;
86
37
  cursor: not-allowed;
87
38
  }
@@ -92,58 +43,60 @@ $hds-button-size-props: (
92
43
  &::before {
93
44
  // the position absolute of an element is computed from the inside of the border of the container
94
45
  // so we have to take in account the border width of the pseudo-element container itself
95
- $shift: $hds-button-border-width + $hds-button-focus-border-width;
46
+ $shift: calc(-1 * (var(--token-button-border-width) + var(--token-button-focus-border-width)));
47
+ $radius: calc(var(--token-button-border-radius) + var(--token-button-focus-border-width));
96
48
  position: absolute;
97
- top: -$shift;
98
- right: -$shift;
99
- bottom: -$shift;
100
- left: -$shift;
49
+ top: $shift;
50
+ right: $shift;
51
+ bottom: $shift;
52
+ left: $shift;
101
53
  z-index: -1;
102
- border: $hds-button-focus-border-width solid transparent;
103
- border-radius: calc(#{$hds-button-border-radius} + #{$hds-button-focus-border-width});
54
+ border: var(--token-button-focus-border-width) solid transparent;
55
+ border-radius: $radius;
104
56
  content: "";
105
57
  }
106
58
  }
107
59
 
108
60
  @mixin hds-button-color-primary() {
109
- color: var(--token-color-foreground-high-contrast);
110
- background-color: var(--token-color-palette-blue-200);
111
- border-color: var(--token-color-palette-blue-300);
61
+ color: var(--token-button-foreground-color-primary-default);
62
+ background-color: var(--token-button-surface-color-primary-default);
63
+ border-color: var(--token-button-border-color-primary-default);
112
64
  box-shadow: var(--token-elevation-low-box-shadow);
113
65
 
114
66
  &:hover,
115
67
  &.mock-hover {
116
- color: var(--token-color-foreground-high-contrast);
117
- background-color: var(--token-color-palette-blue-300);
118
- border-color: var(--token-color-palette-blue-400);
68
+ color: var(--token-button-foreground-color-primary-hover);
69
+ background-color: var(--token-button-surface-color-primary-hover);
70
+ border-color: var(--token-button-border-color-primary-hover);
119
71
  cursor: pointer;
120
72
  }
121
73
 
122
74
  &:focus,
123
75
  &.mock-focus {
124
- color: var(--token-color-foreground-high-contrast);
125
- background-color: var(--token-color-palette-blue-200);
126
- border-color: var(--token-color-focus-action-internal);
76
+ color: var(--token-button-foreground-color-primary-focus);
77
+ background-color: var(--token-button-surface-color-primary-focus);
78
+ border-color: var(--token-button-border-color-primary-focus-internal);
127
79
 
128
80
  &::before {
129
81
  // the position absolute of an element is computed from the inside of the border of the container
130
82
  // so we have to take in account the border width of the pseudo-element container itself
131
83
  // plus for the primary button we want to have a 2px gap between the button and the focus
132
- $shift: $hds-button-border-width + $hds-button-focus-border-width + 2px;
133
- top: -$shift;
134
- right: -$shift;
135
- bottom: -$shift;
136
- left: -$shift;
137
- border-color: var(--token-color-focus-action-external);
138
- border-radius: calc(#{$hds-button-border-radius} + #{$hds-button-focus-border-width} + 2px);
84
+ $shift: calc(-1 * (var(--token-button-border-width) + var(--token-button-focus-border-width) + 2px));
85
+ $radius: calc(var(--token-button-border-radius) + var(--token-button-focus-border-width) + 2px);
86
+ top: $shift;
87
+ right: $shift;
88
+ bottom: $shift;
89
+ left: $shift;
90
+ border-color: var(--token-button-border-color-primary-focus-external);
91
+ border-radius: $radius;
139
92
  }
140
93
  }
141
94
 
142
95
  &:active,
143
96
  &.mock-active {
144
- color: var(--token-color-foreground-high-contrast);
145
- background-color: var(--token-color-palette-blue-400);
146
- border-color: var(--token-color-palette-blue-400);
97
+ color: var(--token-button-foreground-color-primary-active);
98
+ background-color: var(--token-button-surface-color-primary-active);
99
+ border-color: var(--token-button-border-color-primary-active);
147
100
  box-shadow: none;
148
101
 
149
102
  &::before {
@@ -153,35 +106,35 @@ $hds-button-size-props: (
153
106
  }
154
107
 
155
108
  @mixin hds-button-color-secondary() {
156
- color: var(--token-color-foreground-primary);
157
- background-color: var(--token-color-surface-faint);
158
- border-color: var(--token-color-border-strong);
109
+ color: var(--token-button-foreground-color-secondary-default);
110
+ background-color: var(--token-button-surface-color-secondary-default);
111
+ border-color: var(--token-button-border-color-secondary-default);
159
112
  box-shadow: var(--token-elevation-low-box-shadow);
160
113
 
161
114
  &:hover,
162
115
  &.mock-hover {
163
- color: var(--token-color-foreground-primary);
164
- background-color: var(--token-color-surface-primary);
165
- border-color: var(--token-color-border-strong);
116
+ color: var(--token-button-foreground-color-secondary-hover);
117
+ background-color: var(--token-button-surface-color-secondary-hover);
118
+ border-color: var(--token-button-border-color-secondary-hover);
166
119
  cursor: pointer;
167
120
  }
168
121
 
169
122
  &:focus,
170
123
  &.mock-focus {
171
- color: var(--token-color-foreground-primary);
172
- background-color: var(--token-color-surface-faint);
173
- border-color: var(--token-color-focus-action-internal);
124
+ color: var(--token-button-foreground-color-secondary-focus);
125
+ background-color: var(--token-button-surface-color-secondary-focus);
126
+ border-color: var(--token-button-border-color-secondary-focus-internal);
174
127
 
175
128
  &::before {
176
- border-color: var(--token-color-focus-action-external);
129
+ border-color: var(--token-button-border-color-secondary-focus-external);
177
130
  }
178
131
  }
179
132
 
180
133
  &:active,
181
134
  &.mock-active {
182
- color: var(--token-color-foreground-primary);
183
- background-color: var(--token-color-surface-interactive-active);
184
- border-color: var(--token-color-border-strong);
135
+ color: var(--token-button-foreground-color-secondary-active);
136
+ background-color: var(--token-button-surface-color-secondary-active);
137
+ border-color: var(--token-button-border-color-secondary-active);
185
138
  box-shadow: none;
186
139
 
187
140
  &::before {
@@ -191,33 +144,34 @@ $hds-button-size-props: (
191
144
  }
192
145
 
193
146
  @mixin hds-button-color-tertiary() {
194
- color: var(--token-color-foreground-action);
195
- background-color: transparent;
196
- border-color: transparent;
147
+ color: var(--token-button-foreground-color-tertiary-default);
148
+ background-color: var(--token-button-surface-color-tertiary-default);
149
+ border-color: var(--token-button-border-color-tertiary-default);
197
150
 
198
151
  &:hover,
199
152
  &.mock-hover {
200
- color: var(--token-color-foreground-action-hover);
201
- background-color: var(--token-color-surface-primary);
202
- border-color: var(--token-color-border-strong);
153
+ color: var(--token-button-foreground-color-tertiary-hover);
154
+ background-color: var(--token-button-surface-color-tertiary-hover);
155
+ border-color: var(--token-button-border-color-tertiary-hover);
203
156
  cursor: pointer;
204
157
  }
205
158
 
206
159
  &:focus,
207
160
  &.mock-focus {
208
- color: var(--token-color-foreground-action);
209
- border-color: var(--token-color-focus-action-internal);
161
+ color: var(--token-button-foreground-color-tertiary-focus);
162
+ background-color: var(--token-button-surface-color-tertiary-focus);
163
+ border-color: var(--token-button-border-color-tertiary-focus-internal);
210
164
 
211
165
  &::before {
212
- border-color: var(--token-color-focus-action-external);
166
+ border-color: var(--token-button-border-color-tertiary-focus-external);
213
167
  }
214
168
  }
215
169
 
216
170
  &:active,
217
171
  &.mock-active {
218
- color: var(--token-color-foreground-action-active);
219
- background-color: var(--token-color-surface-interactive-active);
220
- border-color: var(--token-color-border-strong);
172
+ color: var(--token-button-foreground-color-tertiary-active);
173
+ background-color: var(--token-button-surface-color-tertiary-active);
174
+ border-color: var(--token-button-border-color-tertiary-active);
221
175
  box-shadow: none;
222
176
 
223
177
  &::before {
@@ -249,35 +203,35 @@ $hds-button-size-props: (
249
203
  }
250
204
 
251
205
  @mixin hds-button-color-critical() {
252
- color: var(--token-color-foreground-critical-on-surface);
253
- background-color: var(--token-color-surface-critical);
254
- border-color: var(--token-color-foreground-critical-on-surface);
206
+ color: var(--token-button-foreground-color-critical-default);
207
+ background-color: var(--token-button-surface-color-critical-default);
208
+ border-color: var(--token-button-border-color-critical-default);
255
209
  box-shadow: var(--token-elevation-low-box-shadow);
256
210
 
257
211
  &:hover,
258
212
  &.mock-hover {
259
- color: var(--token-color-foreground-high-contrast);
260
- background-color: var(--token-color-palette-red-300);
261
- border-color: var(--token-color-palette-red-400);
213
+ color: var(--token-button-foreground-color-critical-hover);
214
+ background-color: var(--token-button-surface-color-critical-hover);
215
+ border-color: var(--token-button-border-color-critical-hover);
262
216
  cursor: pointer;
263
217
  }
264
218
 
265
219
  &:focus,
266
220
  &.mock-focus {
267
- color: var(--token-color-foreground-critical-on-surface);
268
- background-color: var(--token-color-surface-critical);
269
- border-color: var(--token-color-focus-critical-internal);
221
+ color: var(--token-button-foreground-color-critical-focus);
222
+ background-color: var(--token-button-surface-color-critical-focus);
223
+ border-color: var(--token-button-border-color-critical-focus-internal);
270
224
 
271
225
  &::before {
272
- border-color: var(--token-color-focus-critical-external);
226
+ border-color: var(--token-button-border-color-critical-focus-external);
273
227
  }
274
228
  }
275
229
 
276
230
  &:active,
277
231
  &.mock-active {
278
- color: var(--token-color-foreground-high-contrast);
279
- background-color: var(--token-color-palette-red-400);
280
- border-color: var(--token-color-palette-red-400);
232
+ color: var(--token-button-foreground-color-critical-active);
233
+ background-color: var(--token-button-surface-color-critical-active);
234
+ border-color: var(--token-button-border-color-critical-active);
281
235
  box-shadow: none;
282
236
 
283
237
  &::before {
@@ -289,25 +243,24 @@ $hds-button-size-props: (
289
243
  @mixin hds-button-size-classes($blockName) {
290
244
  @each $size in $hds-button-sizes {
291
245
  .#{$blockName}--size-#{$size} {
292
- min-height: map.get($hds-button-size-props, $size, "min-height");
293
- padding: map.get($hds-button-size-props, $size, "padding-vertical")
294
- map.get($hds-button-size-props, $size, "padding-horizontal");
246
+ min-height: var(--token-button-height-#{$size});
247
+ padding: var(--token-button-padding-vertical-#{$size}) var(--token-button-padding-horizontal-#{$size});
295
248
 
296
249
  .#{$blockName}__icon {
297
- width: map.get($hds-button-size-props, $size, "icon-size");
298
- height: map.get($hds-button-size-props, $size, "icon-size");
250
+ width: var(--token-button-icon-size-#{$size});
251
+ height: var(--token-button-icon-size-#{$size});
299
252
  }
300
253
 
301
254
  .#{$blockName}__text {
302
- font-size: map.get($hds-button-size-props, $size, "font-size");
303
- line-height: map.get($hds-button-size-props, $size, "line-height");
255
+ font-size: var(--token-button-typography-font-size-#{$size});
256
+ line-height: var(--token-button-typography-line-height-#{$size});
304
257
  }
305
258
 
306
259
  &.#{$blockName}--is-icon-only {
307
260
  // overrides to have the icon-only button squared
308
- min-width: map.get($hds-button-size-props, $size, "min-height");
309
- padding-right: map.get($hds-button-size-props, $size, "padding-vertical");
310
- padding-left: map.get($hds-button-size-props, $size, "padding-vertical");
261
+ min-width: var(--token-button-height-#{$size});
262
+ padding-right: var(--token-button-padding-vertical-#{$size});
263
+ padding-left: var(--token-button-padding-vertical-#{$size});
311
264
  }
312
265
  }
313
266
  }
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Copyright (c) HashiCorp, Inc.
3
+ * SPDX-License-Identifier: MPL-2.0
4
+ */
5
+
6
+ @mixin hds-apply-only-if-carbon($mode: false) {
7
+ @if $mode == "cds-g0" {
8
+ @at-root .hds-mode-cds-g0 #{&} {
9
+ @content;
10
+ }
11
+ } @else if $mode == "cds-g10" {
12
+ @at-root .hds-mode-cds-g10 #{&} {
13
+ @content;
14
+ }
15
+ } @else if $mode == "cds-g90" {
16
+ @at-root .hds-mode-cds-g90 #{&} {
17
+ @content;
18
+ }
19
+ } @else if $mode == "cds-g100" {
20
+ @at-root .hds-mode-cds-g100 #{&} {
21
+ @content;
22
+ }
23
+ } @else {
24
+ @at-root .hds-mode-cds-g0 #{&},
25
+ .hds-mode-cds-g10 #{&},
26
+ .hds-mode-cds-g90 #{&},
27
+ .hds-mode-cds-g100 #{&} {
28
+ @content;
29
+ }
30
+ }
31
+ }
@@ -35,7 +35,7 @@ $hds-interactive-dark-theme-focus-ring-action-box-shadow:
35
35
  // general dark theme tokens
36
36
  color: var(--token-color-foreground-high-contrast);
37
37
  background-color: var(--token-color-palette-neutral-700);
38
- border-radius: $hds-button-border-radius; // We don't have a button border-radius token so we use the button mixin sass variable
38
+ border-radius: var(--token-button-border-radius);
39
39
  }
40
40
 
41
41
  // Hover:
@@ -0,0 +1,33 @@
1
+ import { LinkTo } from '@ember/routing';
2
+ import { assert } from '@ember/debug';
3
+
4
+ /**
5
+ * Copyright IBM Corp. 2021, 2025
6
+ * SPDX-License-Identifier: MPL-2.0
7
+ */
8
+
9
+
10
+ /**
11
+ * Resolves the correct component to use for the `LinkTo`.
12
+ *
13
+ * @param isRouteExternal - If true, will return the `LinkToExternal` component. If `ember-engines` is not installed, an assertion will be thrown.
14
+ * @returns A promise resolving to the correct component to use for the `LinkTo`.
15
+ */
16
+ async function hdsResolveLinkToExternal(isRouteExternal) {
17
+ if (isRouteExternal) {
18
+ try {
19
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
20
+ const mod = await import(
21
+ // @ts-expect-error: we list this as optional peer dependency
22
+ 'ember-engines/components/link-to-external-component');
23
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
24
+ return mod.default;
25
+ } catch {
26
+ assert(`@isRouteExternal is only available when using the "ember-engines" addon. Please install it to use this feature.`, false);
27
+ }
28
+ }
29
+ return LinkTo;
30
+ }
31
+
32
+ export { hdsResolveLinkToExternal };
33
+ //# sourceMappingURL=hds-resolve-link-to-external.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hds-resolve-link-to-external.js","sources":["../../src/utils/hds-resolve-link-to-external.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2025\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport { LinkTo } from '@ember/routing';\nimport { assert } from '@ember/debug';\n\n/**\n * Resolves the correct component to use for the `LinkTo`.\n *\n * @param isRouteExternal - If true, will return the `LinkToExternal` component. If `ember-engines` is not installed, an assertion will be thrown.\n * @returns A promise resolving to the correct component to use for the `LinkTo`.\n */\nexport async function hdsResolveLinkToExternal(\n isRouteExternal?: boolean\n): Promise<typeof LinkTo> {\n if (isRouteExternal) {\n try {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const mod = await import(\n // @ts-expect-error: we list this as optional peer dependency\n 'ember-engines/components/link-to-external-component'\n );\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return mod.default as typeof LinkTo;\n } catch {\n assert(\n `@isRouteExternal is only available when using the \"ember-engines\" addon. Please install it to use this feature.`,\n false\n );\n }\n }\n\n return LinkTo;\n}\n"],"names":["hdsResolveLinkToExternal","isRouteExternal","mod","default","assert","LinkTo"],"mappings":";;;AAAA;AACA;AACA;AACA;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACO,eAAeA,wBAAwBA,CAC5CC,eAAyB,EACD;AACxB,EAAA,IAAIA,eAAe,EAAE;IACnB,IAAI;AACF;MACA,MAAMC,GAAG,GAAG,MAAM;AAChB;AACA,MAAA,qDACF,CAAC;AACD;MACA,OAAOA,GAAG,CAACC,OAAO;AACpB,IAAA,CAAC,CAAC,MAAM;AACNC,MAAAA,MAAM,CACJ,CAAA,+GAAA,CAAiH,EACjH,KACF,CAAC;AACH,IAAA;AACF,EAAA;AAEA,EAAA,OAAOC,MAAM;AACf;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hashicorp/design-system-components",
3
- "version": "5.1.1-rc-20251210200104",
3
+ "version": "5.2.0-rc-20251216180742",
4
4
  "description": "Helios Design System Components",
5
5
  "keywords": [
6
6
  "hashicorp",
@@ -35,8 +35,8 @@
35
35
  "@embroider/macros": "^1.18.1",
36
36
  "@embroider/util": "^1.13.4",
37
37
  "@floating-ui/dom": "^1.6.12",
38
- "@hashicorp/design-system-tokens": "^3.0.0",
39
- "@hashicorp/flight-icons": "4.1.1-rc-20251210200104",
38
+ "@hashicorp/design-system-tokens": "4.0.0-rc-20251216180742",
39
+ "@hashicorp/flight-icons": "4.1.1-rc-20251216180742",
40
40
  "@lezer/highlight": "^1.2.1",
41
41
  "@nullvoxpopuli/ember-composable-helpers": "^5.2.11",
42
42
  "clipboard-polyfill": "^4.1.1",
@@ -105,6 +105,7 @@
105
105
  "peerDependencies": {
106
106
  "@ember/string": "^3.1.1 || ^4.0.0",
107
107
  "ember-basic-dropdown": "^7.3.0 || ^8.6.1",
108
+ "ember-engines": ">= 0.11.0",
108
109
  "ember-intl": "^7.3.0"
109
110
  },
110
111
  "peerDependenciesMeta": {
@@ -340,6 +341,8 @@
340
341
  "./components/hds/text/code.js": "./dist/_app_/components/hds/text/code.js",
341
342
  "./components/hds/text/display.js": "./dist/_app_/components/hds/text/display.js",
342
343
  "./components/hds/text.js": "./dist/_app_/components/hds/text.js",
344
+ "./components/hds/theme-context.js": "./dist/_app_/components/hds/theme-context.js",
345
+ "./components/hds/theme-switcher.js": "./dist/_app_/components/hds/theme-switcher.js",
343
346
  "./components/hds/time.js": "./dist/_app_/components/hds/time.js",
344
347
  "./components/hds/time/range.js": "./dist/_app_/components/hds/time/range.js",
345
348
  "./components/hds/time/single.js": "./dist/_app_/components/hds/time/single.js",
@@ -368,6 +371,7 @@
368
371
  "./modifiers/hds-register-event.js": "./dist/_app_/modifiers/hds-register-event.js",
369
372
  "./modifiers/hds-tooltip.js": "./dist/_app_/modifiers/hds-tooltip.js",
370
373
  "./services/hds-intl.js": "./dist/_app_/services/hds-intl.js",
374
+ "./services/hds-theming.js": "./dist/_app_/services/hds-theming.js",
371
375
  "./services/hds-time.js": "./dist/_app_/services/hds-time.js"
372
376
  }
373
377
  },
@@ -404,6 +408,7 @@
404
408
  },
405
409
  "scripts": {
406
410
  "build": "rollup --config",
411
+ "postbuild": "cp -R dist/styles/@hashicorp/design-system-components.css ../../showcase/public/assets/styles/@hashicorp/ && cp -R dist/styles/@hashicorp/design-system-components-common.css ../../showcase/public/assets/styles/@hashicorp/ && cp -R dist/styles/@hashicorp/design-system-power-select-overrides.css ../../showcase/public/assets/styles/@hashicorp/",
407
412
  "format": "prettier . --cache --write",
408
413
  "lint": "concurrently \"pnpm:lint:*(!fix)\" --names \"lint:\" --prefixColors auto",
409
414
  "lint:fix": "concurrently \"pnpm:lint:*:fix\" --names \"fix:\" --prefixColors auto && pnpm run format",
@@ -415,6 +420,9 @@
415
420
  "lint:js": "eslint . --cache",
416
421
  "lint:js:fix": "eslint . --fix",
417
422
  "lint:types": "glint",
418
- "start": "rollup --config --watch --environment development"
423
+ "start": "rollup --config --watch --environment development",
424
+ "test-f:design-system-components": "test -f 'dist/styles/@hashicorp/design-system-components.css' || (echo \"\n\\033[31m⚠️ Error: the pre-compiled CSS file \\`dist/styles/@hashicorp/design-system-components.css\\` was not found\\033[0m\\n\" && exit 1)",
425
+ "test-f:design-system-components-common": "test -f 'dist/styles/@hashicorp/design-system-components-common.css' || (echo \"\n\\033[31m⚠️ Error: the pre-compiled CSS file \\`dist/styles/@hashicorp/design-system-components-common.css\\` was not found\\033[0m\\n\" && exit 1)",
426
+ "test-f:design-system-power-select-overrides": "test -f 'dist/styles/@hashicorp/design-system-power-select-overrides.css' || (echo \"\n\\033[31m⚠️ Error: the pre-compiled CSS file \\`dist/styles/@hashicorp/design-system-power-select-overrides.css\\` was not found\\033[0m\\n\" && exit 1)"
419
427
  }
420
428
  }
@@ -1,3 +0,0 @@
1
- import type { LinkTo } from '@ember/routing';
2
- export declare function getLinkToExternal(): LinkTo | null;
3
- export declare function setLinkToExternal(component: LinkTo | null): void;
@@ -1 +0,0 @@
1
- {"version":3,"file":"design-system-components.scss","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,10 +0,0 @@
1
- let LINK_TO_EXTERNAL_COMPONENT = null;
2
- function getLinkToExternal() {
3
- return LINK_TO_EXTERNAL_COMPONENT;
4
- }
5
- function setLinkToExternal(component) {
6
- LINK_TO_EXTERNAL_COMPONENT = component;
7
- }
8
-
9
- export { getLinkToExternal, setLinkToExternal };
10
- //# sourceMappingURL=hds-link-to-external.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hds-link-to-external.js","sources":["../../src/utils/hds-link-to-external.ts"],"sourcesContent":["import type { LinkTo } from '@ember/routing';\n\nlet LINK_TO_EXTERNAL_COMPONENT: LinkTo | null = null;\n\nexport function getLinkToExternal(): LinkTo | null {\n return LINK_TO_EXTERNAL_COMPONENT;\n}\n\nexport function setLinkToExternal(component: LinkTo | null): void {\n LINK_TO_EXTERNAL_COMPONENT = component;\n}\n"],"names":["LINK_TO_EXTERNAL_COMPONENT","getLinkToExternal","setLinkToExternal","component"],"mappings":"AAEA,IAAIA,0BAAyC,GAAG,IAAI;AAE7C,SAASC,iBAAiBA,GAAkB;AACjD,EAAA,OAAOD,0BAA0B;AACnC;AAEO,SAASE,iBAAiBA,CAACC,SAAwB,EAAQ;AAChEH,EAAAA,0BAA0B,GAAGG,SAAS;AACxC;;;;"}