@hashicorp/design-system-components 2.14.2 → 3.0.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 (78) hide show
  1. package/CHANGELOG-FIGMA-COMPONENTS.md +177 -0
  2. package/CHANGELOG-FIGMA-FOUNDATIONS.md +2 -0
  3. package/CHANGELOG.md +368 -55
  4. package/README.md +1 -1
  5. package/addon/components/hds/accordion/item/index.hbs +16 -5
  6. package/addon/components/hds/application-state/body.hbs +2 -2
  7. package/addon/components/hds/application-state/header.hbs +4 -4
  8. package/addon/components/hds/button/{index.js → index.ts} +34 -4
  9. package/addon/components/hds/copy/button/index.hbs +1 -1
  10. package/addon/components/hds/copy/button/index.js +14 -2
  11. package/addon/components/hds/copy/snippet/index.hbs +3 -3
  12. package/addon/components/hds/copy/snippet/index.js +19 -2
  13. package/addon/components/hds/dropdown/index.js +0 -3
  14. package/addon/components/hds/dropdown/list-item/checkmark.hbs +9 -3
  15. package/addon/components/hds/dropdown/list-item/copy-item.hbs +8 -4
  16. package/addon/components/hds/dropdown/list-item/copy-item.js +13 -0
  17. package/addon/components/hds/dropdown/list-item/description.hbs +9 -2
  18. package/addon/components/hds/dropdown/list-item/description.js +0 -18
  19. package/addon/components/hds/dropdown/list-item/interactive.hbs +4 -4
  20. package/addon/components/hds/dropdown/list-item/radio.hbs +6 -1
  21. package/addon/components/hds/dropdown/list-item/title.hbs +9 -2
  22. package/addon/components/hds/dropdown/list-item/title.js +0 -18
  23. package/addon/components/hds/flyout/description.hbs +2 -2
  24. package/addon/components/hds/flyout/header.hbs +4 -4
  25. package/addon/components/hds/form/error/index.hbs +2 -2
  26. package/addon/components/hds/form/error/index.js +0 -3
  27. package/addon/components/hds/form/error/message.hbs +2 -2
  28. package/addon/components/hds/form/helper-text/index.hbs +10 -2
  29. package/addon/components/hds/form/helper-text/index.js +0 -3
  30. package/addon/components/hds/form/indicator/index.hbs +1 -1
  31. package/addon/components/hds/form/indicator/index.js +0 -3
  32. package/addon/components/hds/form/masked-input/base.hbs +8 -10
  33. package/addon/components/hds/form/masked-input/base.js +14 -14
  34. package/addon/components/hds/form/masked-input/field.hbs +3 -1
  35. package/addon/components/hds/form/radio-card/description.hbs +6 -1
  36. package/addon/components/hds/form/radio-card/group.hbs +1 -2
  37. package/addon/components/hds/form/radio-card/index.js +5 -33
  38. package/addon/components/hds/form/radio-card/label.hbs +7 -1
  39. package/addon/components/hds/form/text-input/base.js +5 -0
  40. package/addon/components/hds/form/text-input/field.hbs +23 -11
  41. package/addon/components/hds/form/text-input/field.js +59 -0
  42. package/addon/components/hds/form/visibility-toggle/index.hbs +8 -0
  43. package/addon/components/hds/interactive/{index.js → index.ts} +28 -3
  44. package/addon/components/hds/modal/header.hbs +4 -4
  45. package/addon/components/hds/page-header/description.hbs +7 -1
  46. package/addon/components/hds/page-header/subtitle.hbs +7 -1
  47. package/addon/components/hds/page-header/title.hbs +7 -1
  48. package/addon/components/hds/pagination/compact/index.js +0 -16
  49. package/addon/components/hds/pagination/info/index.hbs +2 -2
  50. package/addon/components/hds/pagination/nav/arrow.hbs +16 -4
  51. package/addon/components/hds/pagination/nav/arrow.js +0 -2
  52. package/addon/components/hds/pagination/nav/number.hbs +2 -1
  53. package/addon/components/hds/pagination/nav/number.js +1 -6
  54. package/addon/components/hds/side-nav/list/index.hbs +2 -2
  55. package/addon/components/hds/stepper/step/indicator.hbs +6 -1
  56. package/addon/components/hds/tag/index.hbs +2 -2
  57. package/addon/modifiers/hds-clipboard.js +163 -0
  58. package/addon/template-registry.ts +12 -0
  59. package/app/components/hds/form/visibility-toggle/index.js +6 -0
  60. package/app/modifiers/hds-clipboard.js +6 -0
  61. package/app/styles/components/button.scss +2 -0
  62. package/app/styles/components/copy/snippet.scss +22 -14
  63. package/app/styles/components/dropdown.scss +5 -8
  64. package/app/styles/components/flyout.scss +0 -2
  65. package/app/styles/components/form/group.scss +5 -0
  66. package/app/styles/components/form/index.scss +1 -0
  67. package/app/styles/components/form/masked-input.scss +0 -9
  68. package/app/styles/components/form/radio-card.scss +2 -4
  69. package/app/styles/components/form/text-input.scss +17 -0
  70. package/app/styles/components/form/visibility-toggle.scss +23 -0
  71. package/app/styles/components/stepper/step-indicator.scss +0 -3
  72. package/app/styles/components/tag.scss +1 -5
  73. package/app/styles/mixins/_button.scss +14 -4
  74. package/index.js +3 -0
  75. package/package.json +33 -4
  76. package/tsconfig.json +46 -0
  77. package/types/dummy/index.d.ts +6 -0
  78. package/types/global.d.ts +12 -0
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Copyright (c) HashiCorp, Inc.
3
+ * SPDX-License-Identifier: MPL-2.0
4
+ */
5
+
6
+ export { default } from '@hashicorp/design-system-components/modifiers/hds-clipboard';
@@ -64,6 +64,8 @@
64
64
 
65
65
  .hds-button__text {
66
66
  flex: 1 0 0;
67
+ // <button> and <a> elements have different intrinsic text alignments, so we need to normalize it
68
+ text-align: center;
67
69
  }
68
70
 
69
71
 
@@ -15,11 +15,8 @@
15
15
  gap: 8px;
16
16
  align-items: center;
17
17
  justify-content: space-between;
18
- width: 100%;
19
18
  padding: 6px 4px;
20
- white-space: normal;
21
19
  text-align: left;
22
- overflow-wrap: anywhere;
23
20
  border: 1px solid transparent;
24
21
  border-radius: 5px;
25
22
  cursor: pointer;
@@ -27,11 +24,12 @@
27
24
 
28
25
  .hds-copy-snippet--color-primary {
29
26
  color: var(--token-color-foreground-action);
30
- background-color: var(--token-color-surface-interactive);
27
+ background-color: transparent;
31
28
 
32
29
  &:hover,
33
30
  &.mock-hover {
34
31
  color: var(--token-color-foreground-action-hover);
32
+ background-color: var(--token-color-surface-interactive);
35
33
  border-color: var(--token-color-border-strong);
36
34
  }
37
35
 
@@ -41,14 +39,19 @@
41
39
  background-color: var(--token-color-surface-interactive-active);
42
40
  border-color: var(--token-color-border-strong);
43
41
  }
42
+
43
+ &:focus {
44
+ background-color: transparent;
45
+ }
44
46
  }
45
47
 
46
48
  .hds-copy-snippet--color-secondary {
47
49
  color: var(--token-color-foreground-primary);
48
- background-color: var(--token-color-surface-interactive);
50
+ background-color: transparent;
49
51
 
50
52
  &:hover,
51
53
  &.mock-hover {
54
+ background-color: var(--token-color-surface-interactive);
52
55
  border-color: var(--token-color-border-strong);
53
56
  }
54
57
 
@@ -76,12 +79,16 @@
76
79
  }
77
80
 
78
81
  .hds-copy-snippet--status-success {
82
+ background-color: var(--token-color-surface-interactive);
83
+
79
84
  .hds-copy-snippet__icon {
80
85
  color: var(--token-color-foreground-success);
81
86
  }
82
87
  }
83
88
 
84
89
  .hds-copy-snippet--status-error {
90
+ background-color: var(--token-color-surface-interactive);
91
+
85
92
  .hds-copy-snippet__icon {
86
93
  color: var(--token-color-foreground-critical);
87
94
  }
@@ -89,7 +96,6 @@
89
96
 
90
97
  .hds-copy-snippet__text {
91
98
  flex: 1 0 0;
92
- max-width: calc(100% - 24px);
93
99
  }
94
100
 
95
101
  .hds-copy-snippet__icon {
@@ -97,15 +103,17 @@
97
103
  }
98
104
 
99
105
  .hds-copy-snippet--width-full {
100
- justify-content: center;
106
+ width: 100%;
107
+ max-width: 100%;
108
+ }
109
+
110
+ .hds-copy-snippet--is-truncated {
111
+ width: 100%;
112
+ max-width: 100%;
101
113
 
102
114
  .hds-copy-snippet__text {
103
- flex: 0 0 auto;
115
+ overflow: hidden;
116
+ white-space: nowrap;
117
+ text-overflow: ellipsis;
104
118
  }
105
119
  }
106
-
107
- .hds-copy-snippet__text--truncated {
108
- overflow: hidden;
109
- white-space: nowrap;
110
- text-overflow: ellipsis;
111
- }
@@ -75,14 +75,14 @@ $hds-dropdown-toggle-border-radius: $hds-button-border-radius;
75
75
 
76
76
  .hds-dropdown-toggle-icon--size-small {
77
77
  .hds-dropdown-toggle-icon__wrapper {
78
- width: 20px;
79
- height: 20px;
78
+ width: 24px; // same as the `button[small]` minus 2*2px becaus there are a 1px padding and 1px border to take into account
79
+ height: 24px;
80
80
  }
81
81
  }
82
82
 
83
83
  .hds-dropdown-toggle-icon--size-medium {
84
84
  .hds-dropdown-toggle-icon__wrapper {
85
- width: 32px;
85
+ width: 32px; // same as the `button[medium]` minus 2*2px becaus there are a 1px padding and 1px border to take into account
86
86
  height: 32px;
87
87
  }
88
88
  }
@@ -190,16 +190,14 @@ $hds-dropdown-toggle-border-radius: $hds-button-border-radius;
190
190
  max-width: initial;
191
191
  }
192
192
 
193
- .hds-dropdown__content--position-bottom-right,
194
- .hds-dropdown__content--position-right {
193
+ .hds-dropdown__content--position-bottom-right {
195
194
  position: absolute;
196
195
  top: calc(100% + 4px);
197
196
  right: 0;
198
197
  z-index: 2;
199
198
  }
200
199
 
201
- .hds-dropdown__content--position-bottom-left,
202
- .hds-dropdown__content--position-left {
200
+ .hds-dropdown__content--position-bottom-left {
203
201
  position: absolute;
204
202
  top: calc(100% + 4px);
205
203
  left: 0;
@@ -547,7 +545,6 @@ $hds-dropdown-toggle-border-radius: $hds-button-border-radius;
547
545
  .hds-dropdown-list-item__icon {
548
546
  margin-top: 2px;
549
547
  margin-right: 4px;
550
- color: var(--token-color-foreground-primary);
551
548
  }
552
549
  }
553
550
 
@@ -70,7 +70,6 @@
70
70
 
71
71
  .hds-flyout__tagline {
72
72
  margin-bottom: 4px;
73
- color: var(--token-color-foreground-faint);
74
73
  }
75
74
 
76
75
  .hds-flyout__dismiss {
@@ -79,7 +78,6 @@
79
78
 
80
79
  .hds-flyout__description {
81
80
  padding: 0 24px 16px;
82
- color: var(--token-color-foreground-primary);
83
81
  }
84
82
 
85
83
  .hds-flyout__body {
@@ -29,6 +29,11 @@
29
29
  }
30
30
 
31
31
  .hds-form-group--layout-vertical {
32
+ .hds-form-group__control-fields-wrapper {
33
+ display: flex;
34
+ flex-direction: column;
35
+ }
36
+
32
37
  .hds-form-group__control-field + .hds-form-group__control-field {
33
38
  margin-top: 12px;
34
39
  }
@@ -23,3 +23,4 @@
23
23
  @use "./text-input";
24
24
  @use "./textarea";
25
25
  @use "./toggle";
26
+ @use "./visibility-toggle";
@@ -34,20 +34,11 @@ $hds-form-masked-input-button-size: 24px;
34
34
  }
35
35
  }
36
36
 
37
- // notice: by design, for this button we don't apply a custom style for the focused state
38
- // but we rely on the standard outlined styling provided by the browser
39
37
  .hds-form-masked-input__toggle-button {
40
38
  position: absolute;
41
39
  top: calc(var(--token-form-control-padding) - var(--token-form-control-border-width));
42
40
  right: calc(var(--token-form-control-padding) - var(--token-form-control-border-width));
43
41
  grid-area: input;
44
- width: $hds-form-masked-input-button-size;
45
- height: $hds-form-masked-input-button-size;
46
- padding: 2px;
47
- color: var(--token-color-foreground-primary);
48
- background-color: transparent;
49
- border-color: transparent;
50
- cursor: pointer;
51
42
  }
52
43
 
53
44
  .hds-form-masked-input__copy-button {
@@ -23,13 +23,11 @@
23
23
  margin: calc(var(--token-form-radiocard-group-gap) / 2);
24
24
  }
25
25
 
26
- // LAYOUT
27
-
28
- .hds-form-radio-card--layout-fluid {
26
+ .hds-form-radio-card--has-fluid-width {
29
27
  flex: 1 0 0;
30
28
  }
31
29
 
32
- .hds-form-radio-card--layout-fixed {
30
+ .hds-form-radio-card--has-fixed-width {
33
31
  flex: 1 0 100%;
34
32
  }
35
33
  }
@@ -83,6 +83,23 @@
83
83
 
84
84
  // "TYPE" CUSTOMIZATION
85
85
 
86
+ .hds-form-text-input__wrapper {
87
+ position: relative;
88
+ width: 100%;
89
+ }
90
+
91
+ // PASSWORD
92
+
93
+ .hds-form-text-input--has-visibility-toggle {
94
+ padding-right: calc(var(--token-form-control-padding) + 24px);
95
+ }
96
+
97
+ .hds-form-text-input__visibility-toggle {
98
+ position: absolute;
99
+ top: calc(var(--token-form-control-padding) - var(--token-form-control-border-width));
100
+ right: calc(var(--token-form-control-padding) - var(--token-form-control-border-width));
101
+ }
102
+
86
103
  .hds-form-text-input {
87
104
 
88
105
  // DATE/TIME
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Copyright (c) HashiCorp, Inc.
3
+ * SPDX-License-Identifier: MPL-2.0
4
+ */
5
+
6
+ //
7
+ // VISIBILITY-TOGGLE
8
+ //
9
+
10
+ // notice: by design, for this button we don't apply a custom style for the focused state
11
+ // but we rely on the standard outlined styling provided by the browser
12
+
13
+ $hds-form-visibility-toggle-button-size: 24px;
14
+
15
+ .hds-form-visibility-toggle {
16
+ width: $hds-form-visibility-toggle-button-size;
17
+ height: $hds-form-visibility-toggle-button-size;
18
+ padding: 2px;
19
+ color: var(--token-color-foreground-primary);
20
+ background-color: transparent;
21
+ border-color: transparent;
22
+ cursor: pointer;
23
+ }
@@ -42,9 +42,6 @@ $hds-stepper-indicator-step-size: 24px;
42
42
  .hds-stepper-indicator-step__text {
43
43
  width: 20px;
44
44
  overflow: hidden;
45
- font-weight: var(--token-typography-font-weight-medium);
46
- font-size: 0.8125rem;
47
- font-family: var(--token-typography-font-stack-text);
48
45
  white-space: nowrap;
49
46
  text-align: center;
50
47
  user-select: none;
@@ -15,11 +15,7 @@ $hds-tag-border-radius: 50px;
15
15
  .hds-tag {
16
16
  display: inline-flex;
17
17
  align-items: stretch;
18
- color: var(--token-color-foreground-primary);
19
- font-weight: var(--token-typography-font-weight-medium);
20
- font-size: 0.8125rem; // 13px
21
- font-family: var(--token-typography-font-stack-text);
22
- line-height: 1rem; // 16px
18
+ line-height: 1rem; // 16px - override `body-100`
23
19
  vertical-align: middle;
24
20
  background-color: var(--token-color-surface-interactive);
25
21
  border: 1px solid var(--token-color-border-strong);
@@ -14,21 +14,24 @@ $size-props: (
14
14
  "font-size": 0.8125rem, // 13px;
15
15
  "line-height": 0.875rem, // 14px - 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)
16
16
  "min-height": 1.75rem, // 28px
17
- "padding": 0.375rem 0.6875rem, // 6px 11px - here we're taking into account the 1px border
17
+ "padding-vertical": 0.375rem, // 6px - here we're taking into account the 1px border
18
+ "padding-horizontal": 0.6875rem, // 11px - here we're taking into account the 1px border
18
19
  "icon-size": 0.75rem, // 12px
19
20
  ),
20
21
  "medium": (
21
22
  "font-size": 0.875rem, // 14px
22
23
  "line-height": 1rem,// 16px
23
24
  "min-height": 2.25rem, // 36px
24
- "padding": 0.5625rem 0.9375rem, // 9px 15px - here we're taking into account the 1px border
25
+ "padding-vertical": 0.5625rem, // 9px - here we're taking into account the 1px border
26
+ "padding-horizontal": 0.9375rem, // 15px - here we're taking into account the 1px border
25
27
  "icon-size": 1rem, // 16px
26
28
  ),
27
29
  "large": (
28
30
  "font-size": 1rem, // 16px
29
31
  "line-height": 1.5rem, // 24px
30
32
  "min-height": 3rem, // 48px
31
- "padding": 0.6875rem 1.1875rem, // 11px 19px - here we're taking into account the 1px border
33
+ "padding-vertical": 0.6875rem, // 11px - here we're taking into account the 1px border
34
+ "padding-horizontal": 1.1875rem, // 19px - here we're taking into account the 1px border
32
35
  "icon-size": 1.5rem, // 24px
33
36
  )
34
37
  );
@@ -271,7 +274,7 @@ $size-props: (
271
274
  @each $size in $hds-button-sizes {
272
275
  .#{$blockName}--size-#{$size} {
273
276
  min-height: map-get($size-props, $size, "min-height");
274
- padding: map-get($size-props, $size, "padding");
277
+ padding: map-get($size-props, $size, "padding-vertical") map-get($size-props, $size, "padding-horizontal");
275
278
 
276
279
  .#{$blockName}__icon {
277
280
  width: map-get($size-props, $size, "icon-size");
@@ -282,6 +285,13 @@ $size-props: (
282
285
  font-size: map-get($size-props, $size, "font-size");
283
286
  line-height: map-get($size-props, $size, "line-height");
284
287
  }
288
+
289
+ &.#{$blockName}--is-icon-only {
290
+ // overrides to have the icon-only button squared
291
+ min-width: map-get($size-props, $size, "min-height");
292
+ padding-right: map-get($size-props, $size, "padding-vertical");
293
+ padding-left: map-get($size-props, $size, "padding-vertical");
294
+ }
285
295
  }
286
296
  }
287
297
  }
package/index.js CHANGED
@@ -25,5 +25,8 @@ module.exports = {
25
25
  'dialog-polyfill-css': 'dialog-polyfill/dist/dialog-polyfill.css',
26
26
  },
27
27
  },
28
+ 'ember-cli-babel': {
29
+ enableTypeScriptTransform: true,
30
+ },
28
31
  },
29
32
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hashicorp/design-system-components",
3
- "version": "2.14.2",
3
+ "version": "3.0.0",
4
4
  "description": "Helios Design System Components",
5
5
  "keywords": [
6
6
  "hashicorp",
@@ -30,6 +30,7 @@
30
30
  "lint:hbs:fix": "ember-template-lint . --fix",
31
31
  "lint:js": "eslint . --cache",
32
32
  "lint:js:fix": "eslint . --fix",
33
+ "lint:types": "tsc --noEmit",
33
34
  "start": "ember serve",
34
35
  "test": "npm-run-all lint test:*",
35
36
  "test:ember": "ember test",
@@ -42,13 +43,12 @@
42
43
  "@ember/render-modifiers": "^2.0.5",
43
44
  "@ember/test-waiters": "^3.0.2",
44
45
  "@hashicorp/design-system-tokens": "^1.9.0",
45
- "@hashicorp/ember-flight-icons": "^3.1.3",
46
+ "@hashicorp/ember-flight-icons": "^4.0.0",
46
47
  "dialog-polyfill": "^0.5.6",
47
48
  "ember-a11y-refocus": "^3.0.2",
48
49
  "ember-auto-import": "^2.6.3",
49
50
  "ember-cached-decorator-polyfill": "^0.1.4",
50
51
  "ember-cli-babel": "^7.26.11",
51
- "ember-cli-clipboard": "^1.0.0",
52
52
  "ember-cli-htmlbars": "^6.2.0",
53
53
  "ember-cli-sass": "^10.0.1",
54
54
  "ember-composable-helpers": "^4.5.0",
@@ -67,8 +67,35 @@
67
67
  "@embroider/test-setup": "^2.1.1",
68
68
  "@glimmer/component": "^1.1.2",
69
69
  "@glimmer/tracking": "^1.1.2",
70
+ "@glint/core": "^1.1.0",
71
+ "@glint/environment-ember-loose": "^1.1.0",
72
+ "@glint/template": "^1.1.0",
70
73
  "@percy/cli": "^1.24.2",
71
74
  "@percy/ember": "^4.2.0",
75
+ "@tsconfig/ember": "latest",
76
+ "@types/ember": "latest",
77
+ "@types/ember-qunit": "latest",
78
+ "@types/ember-resolver": "latest",
79
+ "@types/ember__application": "latest",
80
+ "@types/ember__array": "latest",
81
+ "@types/ember__component": "latest",
82
+ "@types/ember__controller": "latest",
83
+ "@types/ember__debug": "latest",
84
+ "@types/ember__destroyable": "latest",
85
+ "@types/ember__engine": "latest",
86
+ "@types/ember__error": "latest",
87
+ "@types/ember__object": "latest",
88
+ "@types/ember__polyfills": "latest",
89
+ "@types/ember__routing": "latest",
90
+ "@types/ember__runloop": "latest",
91
+ "@types/ember__service": "latest",
92
+ "@types/ember__string": "latest",
93
+ "@types/ember__template": "latest",
94
+ "@types/ember__test": "latest",
95
+ "@types/ember__test-helpers": "latest",
96
+ "@types/ember__utils": "latest",
97
+ "@types/qunit": "latest",
98
+ "@types/rsvp": "latest",
72
99
  "babel-eslint": "^10.1.0",
73
100
  "broccoli-asset-rev": "^3.0.0",
74
101
  "ember-a11y-testing": "^5.2.1",
@@ -102,13 +129,15 @@
102
129
  "prettier": "^2.8.8",
103
130
  "qunit": "^2.19.4",
104
131
  "qunit-dom": "^2.0.0",
132
+ "sinon": "^15.2.0",
105
133
  "stylelint": "^15.10.1",
106
134
  "stylelint-config-rational-order": "^0.1.2",
107
135
  "stylelint-config-standard-scss": "^5.0.0",
136
+ "typescript": "^5.1.6",
108
137
  "webpack": "^5.84.1"
109
138
  },
110
139
  "engines": {
111
- "node": "14.* || 16.* || >= 18"
140
+ "node": "16.* || >= 18"
112
141
  },
113
142
  "ember": {
114
143
  "edition": "octane"
package/tsconfig.json ADDED
@@ -0,0 +1,46 @@
1
+ {
2
+ "extends": "@tsconfig/ember/tsconfig.json",
3
+ "compilerOptions": {
4
+ "strict": true,
5
+ "noUncheckedIndexedAccess": true,
6
+ // The combination of `baseUrl` with `paths` allows Ember's classic package
7
+ // layout, which is not resolvable with the Node resolution algorithm, to
8
+ // work with TypeScript.
9
+ "baseUrl": ".",
10
+ "paths": {
11
+ "dummy/tests/*": [
12
+ "tests/*"
13
+ ],
14
+ "dummy/*": [
15
+ "tests/dummy/app/*",
16
+ "app/*"
17
+ ],
18
+ "@hashicorp/design-system-components": [
19
+ "addon"
20
+ ],
21
+ "@hashicorp/design-system-components/*": [
22
+ "addon/*"
23
+ ],
24
+ "@hashicorp/design-system-components/test-support": [
25
+ "addon-test-support"
26
+ ],
27
+ "@hashicorp/design-system-components/test-support/*": [
28
+ "addon-test-support/*"
29
+ ],
30
+ "*": [
31
+ "types/*"
32
+ ]
33
+ }
34
+ },
35
+ "include": [
36
+ "app/**/*",
37
+ "addon/**/*",
38
+ "tests/**/*",
39
+ "types/**/*",
40
+ "test-support/**/*",
41
+ "addon-test-support/**/*"
42
+ ],
43
+ "glint": {
44
+ "environment": "ember-loose"
45
+ }
46
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Copyright (c) HashiCorp, Inc.
3
+ * SPDX-License-Identifier: MPL-2.0
4
+ */
5
+
6
+ import '@glint/environment-ember-loose';
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Copyright (c) HashiCorp, Inc.
3
+ * SPDX-License-Identifier: MPL-2.0
4
+ */
5
+
6
+ // Types for compiled templates
7
+ declare module '@hashicorp/design-system-components/templates/*' {
8
+ import { TemplateFactory } from 'ember-cli-htmlbars';
9
+
10
+ const tmpl: TemplateFactory;
11
+ export default tmpl;
12
+ }