@uh-design-system/component-library 0.2.4 → 0.4.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 (116) hide show
  1. package/dist/cjs/attributes-f7831329.js +78 -0
  2. package/dist/cjs/component-library.cjs.js +3 -3
  3. package/dist/cjs/{ds-accordion_2.cjs.entry.js → ds-accordion_3.cjs.entry.js} +419 -241
  4. package/dist/cjs/ds-link-with-arrow.cjs.entry.js +47 -0
  5. package/dist/cjs/ds-link.cjs.entry.js +54 -0
  6. package/dist/cjs/ds-text-input.cjs.entry.js +12 -16
  7. package/dist/cjs/ds-visually-hidden.cjs.entry.js +20 -0
  8. package/dist/cjs/{index-fd4f6cd2.js → index-bfa0f441.js} +17 -11
  9. package/dist/cjs/linkUtils-695da37c.js +16 -0
  10. package/dist/cjs/loader.cjs.js +2 -2
  11. package/dist/cjs/utils-8b73aa91.js +10 -0
  12. package/dist/collection/collection-manifest.json +3 -1
  13. package/dist/collection/components/00-foundations/icons/categories/arrows.js +6 -0
  14. package/dist/collection/components/00-foundations/icons/categories/information.js +12 -0
  15. package/dist/collection/components/00-foundations/icons/categories/media.js +4 -0
  16. package/dist/collection/components/00-foundations/icons/categories/social.js +17 -0
  17. package/dist/collection/components/00-foundations/icons/iconList.js +2 -0
  18. package/dist/collection/components/00-foundations/typography/stories/typography.stories.js +110 -0
  19. package/dist/collection/components/01-base-components/ds-accordion/ds-accordion.css +101 -82
  20. package/dist/collection/components/01-base-components/ds-accordion/ds-accordion.js +41 -9
  21. package/dist/collection/components/01-base-components/ds-accordion/stories/ds-accordion.examples.stories.js +15 -0
  22. package/dist/collection/components/01-base-components/ds-accordion/stories/ds-accordion.features.stories.js +1 -1
  23. package/dist/collection/components/01-base-components/ds-accordion/stories/ds-accordion.stories.js +10 -1
  24. package/dist/collection/components/01-base-components/ds-button/ds-button.css +168 -104
  25. package/dist/collection/components/01-base-components/ds-button/ds-button.js +23 -2
  26. package/dist/collection/components/01-base-components/ds-button/stories/ds-button.examples.stories.js +6 -0
  27. package/dist/collection/components/01-base-components/ds-button/stories/ds-button.features.stories.js +13 -7
  28. package/dist/collection/components/01-base-components/ds-icon/ds-icon.css +5 -1
  29. package/dist/collection/components/01-base-components/ds-icon/ds-icon.js +8 -5
  30. package/dist/collection/components/01-base-components/ds-icon/ds-icon.stories.js +2 -2
  31. package/dist/collection/components/01-base-components/ds-link/ds-link.css +224 -0
  32. package/dist/collection/components/01-base-components/ds-link/ds-link.js +281 -0
  33. package/dist/collection/components/01-base-components/ds-link/stories/ds-link.examples.stories.js +53 -0
  34. package/dist/collection/components/01-base-components/ds-link/stories/ds-link.features.stories.js +73 -0
  35. package/dist/collection/components/01-base-components/ds-link/stories/ds-link.stories.js +72 -0
  36. package/dist/collection/components/01-base-components/ds-link-with-arrow/ds-link-with-arrow.css +208 -0
  37. package/dist/collection/components/01-base-components/ds-link-with-arrow/ds-link-with-arrow.js +161 -0
  38. package/dist/collection/components/01-base-components/ds-link-with-arrow/stories/ds-arrow-link.examples.stories.js +33 -0
  39. package/dist/collection/components/01-base-components/ds-link-with-arrow/stories/ds-arrow-link.features.stories.js +19 -0
  40. package/dist/collection/components/01-base-components/ds-link-with-arrow/stories/ds-arrow-link.stories.js +40 -0
  41. package/dist/collection/components/01-base-components/ds-text-input/ds-text-input.css +72 -48
  42. package/dist/collection/components/01-base-components/ds-text-input/ds-text-input.js +44 -4
  43. package/dist/collection/components/01-base-components/ds-text-input/{ds-text-input.examples.stories.js → stories/ds-text-input.examples.stories.js} +13 -0
  44. package/dist/collection/components/01-base-components/ds-text-input/{ds-text-input.features.stories.js → stories/ds-text-input.features.stories.js} +18 -4
  45. package/dist/collection/components/01-base-components/ds-text-input/{ds-text-input.stories.js → stories/ds-text-input.stories.js} +2 -2
  46. package/dist/collection/components/01-base-components/ds-visually-hidden/ds-visually-hidden.js +1 -1
  47. package/dist/collection/introduction/introduction.stories.js +9 -0
  48. package/dist/collection/utils/link/linkUtils.js +11 -0
  49. package/dist/collection/utils/typography/typographyUtils.js +21 -0
  50. package/dist/collection/utils/utils.js +5 -0
  51. package/dist/component-library/attributes-9419ac39.js +1 -0
  52. package/dist/component-library/component-library.css +1 -1
  53. package/dist/component-library/component-library.esm.js +1 -1
  54. package/dist/component-library/ds-accordion_3.entry.js +1 -0
  55. package/dist/component-library/ds-link-with-arrow.entry.js +1 -0
  56. package/dist/component-library/ds-link.entry.js +1 -0
  57. package/dist/component-library/ds-text-input.entry.js +1 -1
  58. package/dist/component-library/ds-visually-hidden.entry.js +1 -0
  59. package/dist/component-library/{index-4200d514.js → index-42701395.js} +2 -2
  60. package/dist/component-library/linkUtils-3d1b28cf.js +1 -0
  61. package/dist/component-library/utils-cca2a41a.js +1 -0
  62. package/dist/components/attributes.js +154 -0
  63. package/dist/components/ds-accordion.js +31 -12
  64. package/dist/components/ds-button2.js +6 -78
  65. package/dist/components/ds-icon2.js +320 -231
  66. package/dist/components/ds-link-with-arrow.d.ts +11 -0
  67. package/dist/components/ds-link-with-arrow.js +78 -0
  68. package/dist/components/ds-link.d.ts +11 -0
  69. package/dist/components/ds-link.js +90 -0
  70. package/dist/components/ds-text-input.js +11 -13
  71. package/dist/components/ds-visually-hidden2.js +1 -1
  72. package/dist/components/index2.js +7 -10
  73. package/dist/components/linkUtils.js +13 -0
  74. package/dist/components/utils.js +8 -0
  75. package/dist/esm/attributes-9419ac39.js +75 -0
  76. package/dist/esm/component-library.js +4 -4
  77. package/dist/esm/{ds-accordion_2.entry.js → ds-accordion_3.entry.js} +419 -242
  78. package/dist/esm/ds-link-with-arrow.entry.js +43 -0
  79. package/dist/esm/ds-link.entry.js +50 -0
  80. package/dist/esm/ds-text-input.entry.js +8 -12
  81. package/dist/esm/ds-visually-hidden.entry.js +16 -0
  82. package/dist/esm/{index-4200d514.js → index-42701395.js} +17 -11
  83. package/dist/esm/linkUtils-3d1b28cf.js +13 -0
  84. package/dist/esm/loader.js +3 -3
  85. package/dist/esm/utils-cca2a41a.js +8 -0
  86. package/dist/types/components/00-foundations/icons/categories/social.d.ts +5 -0
  87. package/dist/types/components/00-foundations/typography/stories/typography.stories.d.ts +9 -0
  88. package/dist/types/components/01-base-components/ds-accordion/ds-accordion.d.ts +2 -0
  89. package/dist/types/components/01-base-components/ds-accordion/stories/ds-accordion.examples.stories.d.ts +1 -0
  90. package/dist/types/components/01-base-components/ds-button/ds-button.d.ts +1 -0
  91. package/dist/types/components/01-base-components/ds-button/stories/ds-button.examples.stories.d.ts +1 -0
  92. package/dist/types/components/01-base-components/ds-button/stories/ds-button.features.stories.d.ts +3 -0
  93. package/dist/types/components/01-base-components/ds-icon/ds-icon.d.ts +1 -1
  94. package/dist/types/components/01-base-components/ds-link/ds-link.d.ts +25 -0
  95. package/dist/types/components/01-base-components/ds-link/stories/ds-link.examples.stories.d.ts +11 -0
  96. package/dist/types/components/01-base-components/ds-link/stories/ds-link.features.stories.d.ts +11 -0
  97. package/dist/types/components/01-base-components/ds-link/stories/ds-link.stories.d.ts +7 -0
  98. package/dist/types/components/01-base-components/ds-link-with-arrow/ds-link-with-arrow.d.ts +18 -0
  99. package/dist/types/components/01-base-components/ds-link-with-arrow/stories/ds-arrow-link.examples.stories.d.ts +7 -0
  100. package/dist/types/components/01-base-components/ds-link-with-arrow/stories/ds-arrow-link.features.stories.d.ts +7 -0
  101. package/dist/types/components/01-base-components/ds-link-with-arrow/stories/ds-arrow-link.stories.d.ts +7 -0
  102. package/dist/types/components/01-base-components/ds-text-input/ds-text-input.d.ts +2 -0
  103. package/dist/types/components/01-base-components/ds-text-input/{ds-text-input.examples.stories.d.ts → stories/ds-text-input.examples.stories.d.ts} +2 -1
  104. package/dist/types/components/01-base-components/ds-text-input/{ds-text-input.features.stories.d.ts → stories/ds-text-input.features.stories.d.ts} +4 -1
  105. package/dist/types/components/01-base-components/ds-text-input/{ds-text-input.stories.d.ts → stories/ds-text-input.stories.d.ts} +1 -1
  106. package/dist/types/components.d.ts +66 -2
  107. package/dist/types/introduction/introduction.stories.d.ts +10 -0
  108. package/dist/types/utils/link/linkUtils.d.ts +2 -0
  109. package/dist/types/utils/typography/typographyUtils.d.ts +1 -0
  110. package/dist/types/utils/utils.d.ts +1 -0
  111. package/package.json +2 -4
  112. package/dist/cjs/ds-button_2.cjs.entry.js +0 -170
  113. package/dist/component-library/ds-accordion_2.entry.js +0 -1
  114. package/dist/component-library/ds-button_2.entry.js +0 -1
  115. package/dist/components/index3.js +0 -80
  116. package/dist/esm/ds-button_2.entry.js +0 -165
@@ -16,10 +16,10 @@
16
16
  }
17
17
  }
18
18
 
19
- .label-container {
19
+ .ds-input--label-container {
20
20
  margin-block-end: var(--ds-spacing-2xSmall);
21
21
  }
22
- .label-container label {
22
+ .ds-input--label-container label {
23
23
  font-family: var(--ds-fontFamily-body);
24
24
  font-size: var(--ds-fontSize-16);
25
25
  font-weight: var(--ds-fontWeight-semibold);
@@ -27,11 +27,17 @@
27
27
  line-height: var(--ds-lineHeight-large);
28
28
  color: var(--ds-textColor-default);
29
29
  }
30
- .label-container label.required::after {
30
+ .ds-input--label-container label.required::after {
31
31
  content: " *";
32
32
  color: var(--ds-textColor-secondary);
33
33
  }
34
- .label-container small {
34
+ .ds-input--label-container label.optional::after {
35
+ content: " (" attr(data-optional-text, "optional") ")";
36
+ color: var(--ds-textColor-secondary);
37
+ font-size: var(--ds-fontSize-14);
38
+ font-weight: var(--ds-fontWeight-regular);
39
+ }
40
+ .ds-input--label-container small {
35
41
  font-family: var(--ds-fontFamily-body);
36
42
  font-size: var(--ds-fontSize-14);
37
43
  font-weight: var(--ds-fontWeight-regular);
@@ -41,8 +47,7 @@
41
47
  margin-block-start: var(--ds-spacing-3xSmall);
42
48
  color: var(--ds-textColor-secondary);
43
49
  }
44
-
45
- .input-container {
50
+ .ds-input--container {
46
51
  box-sizing: border-box;
47
52
  width: 100%;
48
53
  display: inline-flex;
@@ -53,47 +58,66 @@
53
58
  border-color: var(--ds-borderColor-default);
54
59
  padding-inline: var(--ds-spacing-xSmall);
55
60
  }
56
- .input-container.invalid {
57
- background-color: var(--ds-palette-danger-light);
61
+ .ds-input--container:focus-visible, .ds-input--container:focus-within {
62
+ box-shadow: 0 0 0 var(--ds-borderWidth-thin) var(--ds-borderColor-white);
63
+ outline-color: var(--ds-borderColor-black);
64
+ outline-offset: var(--ds-borderWidth-thin);
65
+ outline-style: solid;
66
+ outline-width: var(--ds-borderWidth-thin);
67
+ }
68
+ .ds-input--container.invalid {
69
+ background-color: var(--ds-bgColor-danger);
70
+ border-color: var(--ds-borderColor-danger);
71
+ }
72
+ .ds-input--container.invalid:hover:not(.ds-input--container.invalid:focus-within) {
73
+ background-color: var(--ds-bgColor-danger-hover);
58
74
  border-color: var(--ds-borderColor-danger);
59
75
  }
60
- .input-container.valid {
61
- background-color: var(--ds-palette-success-light);
76
+ .ds-input--container.invalid.active {
77
+ background-color: var(--ds-bgColor-danger-active);
78
+ border-color: var(--ds-borderColor-danger);
79
+ }
80
+ .ds-input--container.valid {
81
+ background-color: var(--ds-bgColor-success);
82
+ border-color: var(--ds-borderColor-success);
83
+ }
84
+ .ds-input--container.valid:hover:not(.ds-input--container.valid:focus-within) {
85
+ background-color: var(--ds-bgColor-success-hover);
86
+ border-color: var(--ds-borderColor-success);
87
+ }
88
+ .ds-input--container.valid.active {
89
+ background-color: var(--ds-bgColor-success-active);
62
90
  border-color: var(--ds-borderColor-success);
63
91
  }
64
- .input-container.readonly, .input-container.disabled {
92
+ .ds-input--container.readonly, .ds-input--container.disabled {
65
93
  background-color: var(--ds-bgColor-disabled-onLight);
66
94
  border-color: var(--ds-borderColor-disabled-onLight);
67
95
  }
68
- .input-container:has(input:active) {
96
+ .ds-input--container:has(input:active) {
69
97
  outline: none;
70
98
  }
71
- .input-container:has(input:active):not:has(input:disabled, input:readonly) {
72
- border-color: var(--ds-borderColor-primary);
73
- }
74
- .input-container.active:not(.input-container.disabled, .input-container.readonly) {
75
- border-color: var(--ds-borderColor-primary);
99
+ .ds-input--container:has(input:active):not:has(input:disabled, input:readonly) {
100
+ border-color: var(--ds-borderColor-default);
76
101
  }
77
- .input-container:hover:not(.input-container.disabled, .input-container.readonly, .input-container.active) {
78
- border-color: var(--ds-borderColor-black);
102
+ .ds-input--container.active:not(.ds-input--container.disabled, .ds-input--container.readonly, .ds-input--container.invalid, .ds-input--container.valid) {
103
+ border-color: var(--ds-borderColor-default);
104
+ background-color: var(--ds-bgColor-white-active);
79
105
  }
80
- .input-container:focus-within {
81
- outline-width: var(--ds-borderWidth-thin);
82
- outline-offset: 1px;
83
- outline-style: solid;
84
- outline-color: var(--ds-palette-black);
106
+ .ds-input--container:hover:not(.ds-input--container.disabled, .ds-input--container.readonly, .ds-input--container.active, .ds-input--container.invalid, .ds-input--container.valid, .ds-input--container:focus-within) {
107
+ border-color: var(--ds-borderColor-default);
108
+ background-color: var(--ds-bgColor-white-hover);
85
109
  }
86
- .input-container:focus-within:not(.input-container:focus-within.invalid, .input-container:focus-within.valid, .input-container:focus-within.readonly) {
110
+ .ds-input--container:focus-within:not(.ds-input--container:focus-within.invalid, .ds-input--container:focus-within.valid, .ds-input--container:focus-within.readonly) {
87
111
  border-color: var(--ds-borderColor-primary);
88
112
  }
89
- .input-container:focus-within * > ds-button.suffix > button:focus-visible {
113
+ .ds-input--container:focus-within * > ds-button.suffix > button:focus-visible {
90
114
  background-clip: padding-box;
91
115
  outline-offset: -5px;
92
116
  box-shadow: none;
93
117
  height: var(--ds-spacing-xLarge);
94
118
  background-color: var(--ds-bgColor-transparent-onLight-hover);
95
119
  }
96
- .input-container > input {
120
+ .ds-input--container > input {
97
121
  font-family: var(--ds-fontFamily-body);
98
122
  font-size: var(--ds-fontSize-16);
99
123
  font-weight: var(--ds-fontWeight-regular);
@@ -106,16 +130,16 @@
106
130
  height: var(--ds-spacing-xLarge);
107
131
  line-height: var(--ds-fontSize-24);
108
132
  color: var(--ds-textColor-default);
109
- padding-block: var(--ds-spacing-4xSmall);
110
133
  border: none;
134
+ padding-block: var(--ds-spacing-4xSmall);
111
135
  }
112
- .input-container > input:disabled {
136
+ .ds-input--container > input:disabled {
113
137
  color: var(--ds-textColor-disabled-onLight);
114
138
  }
115
- .input-container > input:disabled::placeholder {
139
+ .ds-input--container > input:disabled::placeholder {
116
140
  color: var(--ds-textColor-disabled-onLight);
117
141
  }
118
- .input-container > input::placeholder {
142
+ .ds-input--container > input::placeholder {
119
143
  font-family: var(--ds-fontFamily-body);
120
144
  font-size: var(--ds-fontSize-16);
121
145
  font-weight: var(--ds-fontWeight-regular);
@@ -123,53 +147,53 @@
123
147
  line-height: var(--ds-lineHeight-large);
124
148
  color: var(--ds-textColor-secondary);
125
149
  }
126
- .input-container > input:focus {
150
+ .ds-input--container > input:focus {
127
151
  outline: none;
128
152
  border: none;
129
153
  }
130
- .input-container > input[type=number] {
154
+ .ds-input--container > input[type=number] {
131
155
  -moz-appearance: textfield;
132
156
  }
133
- .input-container > input::-webkit-search-decoration, .input-container > input::-webkit-search-cancel-button, .input-container > input::-webkit-search-results-button, .input-container > input::-webkit-search-results-decoration, .input-container > input::-webkit-inner-spin-button, .input-container > input::-webkit-outer-spin-button {
157
+ .ds-input--container > input::-webkit-search-decoration, .ds-input--container > input::-webkit-search-cancel-button, .ds-input--container > input::-webkit-search-results-button, .ds-input--container > input::-webkit-search-results-decoration, .ds-input--container > input::-webkit-inner-spin-button, .ds-input--container > input::-webkit-outer-spin-button {
134
158
  -webkit-appearance: none;
135
159
  margin: 0;
136
160
  }
137
- .input-container:has(span.prefix, ds-icon.prefix) {
161
+ .ds-input--container:has(span.prefix, ds-icon.prefix) {
138
162
  padding-inline-start: var(--ds-spacing-2xSmall);
139
163
  }
140
- .input-container:has(span.prefix, ds-icon.prefix) > input {
164
+ .ds-input--container:has(span.prefix, ds-icon.prefix) > input {
141
165
  padding-inline-start: var(--ds-spacing-2xSmall);
142
166
  }
143
- .input-container:has(ds-button.suffix) {
167
+ .ds-input--container:has(ds-button.suffix) {
144
168
  padding-inline-end: unset;
145
169
  }
146
- .input-container span.prefix, .input-container span.suffix {
170
+ .ds-input--container span.prefix, .ds-input--container span.suffix {
147
171
  color: var(--ds-palette-black-70);
148
172
  }
149
- .input-container ds-icon.prefix, .input-container ::slotted([slot=prefix]) {
173
+ .ds-input--container ds-icon.prefix, .ds-input--container ::slotted([slot=prefix]) {
150
174
  height: 1.5rem;
151
175
  color: var(--ds-textColor-default);
152
176
  }
153
- .input-container ds-button.suffix {
177
+ .ds-input--container ds-button.suffix {
154
178
  margin-top: calc(var(--ds-spacing-3xSmall) * -1);
155
179
  margin-right: calc(var(--ds-spacing-4xSmall) * -1);
156
180
  max-height: 40px;
157
181
  }
158
182
 
159
- .error-text-container,
160
- .success-text-container {
183
+ .error-text--container,
184
+ .success-text--container {
161
185
  display: flex;
162
186
  align-items: center;
163
187
  margin-top: var(--ds-spacing-2xSmall);
164
188
  gap: var(--ds-spacing-2xSmall);
165
189
  }
166
- .error-text-container ds-icon,
167
- .success-text-container ds-icon {
190
+ .error-text--container ds-icon,
191
+ .success-text--container ds-icon {
168
192
  display: block;
169
193
  height: 1.5rem;
170
194
  }
171
- .error-text-container small,
172
- .success-text-container small {
195
+ .error-text--container small,
196
+ .success-text--container small {
173
197
  font-family: var(--ds-fontFamily-body);
174
198
  font-size: var(--ds-fontSize-16);
175
199
  font-weight: var(--ds-fontWeight-regular);
@@ -177,10 +201,10 @@
177
201
  line-height: var(--ds-lineHeight-large);
178
202
  }
179
203
 
180
- .error-text-container {
204
+ .error-text--container {
181
205
  color: var(--ds-textColor-danger);
182
206
  }
183
207
 
184
- .success-text-container {
208
+ .success-text--container {
185
209
  color: var(--ds-textColor-success);
186
210
  }
@@ -24,6 +24,7 @@ export class DsTextInput {
24
24
  dsId = 'input';
25
25
  name;
26
26
  disabled;
27
+ optional;
27
28
  required;
28
29
  readonly;
29
30
  value;
@@ -32,6 +33,7 @@ export class DsTextInput {
32
33
  maxlength;
33
34
  pattern;
34
35
  autocomplete;
36
+ optionalText;
35
37
  errorText;
36
38
  successText;
37
39
  assistiveText;
@@ -72,7 +74,7 @@ export class DsTextInput {
72
74
  const text = type === 'success' ? this.successText : this.errorText;
73
75
  const icon = type === 'success' ? 'check_circle_fill' : 'warning_fill';
74
76
  const className = type + '-text';
75
- return (h("slot", { name: className }, text && (h("div", { class: `${className}-container` }, h("ds-icon", { name: icon }), h("small", { id: textId, class: className }, text)))));
77
+ return (h("slot", { name: className }, text && (h("div", { class: `${className}--container` }, h("ds-icon", { name: icon }), h("small", { id: textId, class: className }, text)))));
76
78
  }
77
79
  renderPrefixContent() {
78
80
  if (this.prefixText) {
@@ -102,14 +104,14 @@ export class DsTextInput {
102
104
  }
103
105
  render() {
104
106
  const inputType = this.type === 'password' && this.passwordInputVisible ? 'text' : this.type;
105
- return (h(Fragment, { key: 'b36b842382f0f0635c5372a856b140f05f7f5cff' }, h("div", { key: '4cedfdd4a891b8317f8b948824c5fe18b8f2c345', class: "label-container" }, h("slot", { key: '5072f7cab04c4c6dcf3bc2a72f88c83f3da5c74b', name: "label" }, h("label", { key: '513249ab30b24df9ad204ec533eb5b0714a5b36e', class: classNames({ required: this.required }), htmlFor: this.dsId }, this.label)), h("slot", { key: 'c3e05ad3e51365c7e8df7a276b4fc089af4edba7', name: "help-text" }, h("small", { key: 'fdf1904fe96fd22b4ba650e693db0d3fcecdf33a', id: this.assistiveTextId }, this.assistiveText), h("ds-visually-hidden", { key: 'd9726a8a031a786169ff47a809f8309117d00eaa', id: this.visuallyHiddenAssistiveTextId }, this.hiddenAssistiveText))), h("div", { key: 'c0fb788b2f35f478015169d2fc558885fc9c205a', onMouseDown: () => (this.inputActive = true), onMouseUp: () => (this.inputActive = false), onClick: e => this.handleInputContainerClick(e), class: classNames('input-container', {
107
+ return (h(Fragment, { key: 'fe9d038685d4912e0b760bed83e21a6ae8582535' }, h("div", { key: '4c4a662fcbcbf2c9a04986ad44b018736c8ba0d7', class: "ds-input--label-container" }, h("slot", { key: '8fea3c6a05e3f5314eae43c2f2eeedc47735278a', name: "label" }, h("label", { key: '33aa9fa1ab0eba6c36b0e882d8a71000a2a2ff40', "data-optional-text": this.optionalText, class: classNames({ required: this.required, optional: this.optional }), htmlFor: this.dsId }, this.label)), h("slot", { key: '13f7adf5a85a2f2d8d5f3e7b829ff86707f75a3d', name: "help-text" }, h("small", { key: '3595ee7deb43919aeabb938a2f0cc0ce78ca181d', id: this.assistiveTextId }, this.assistiveText), h("ds-visually-hidden", { key: '001fd7a38ef2034f7e650e86d00d5a30ee217c17', id: this.visuallyHiddenAssistiveTextId }, this.hiddenAssistiveText))), h("div", { key: 'ec9f2c0d6ff40bd6c8a4618ec238e966a0756c19', onMouseDown: () => (this.inputActive = true), onMouseUp: () => (this.inputActive = false), onClick: e => this.handleInputContainerClick(e), class: classNames('ds-input--container', {
106
108
  disabled: this.disabled,
107
109
  readonly: this.readonly,
108
110
  valid: !!this.successText,
109
111
  invalid: !!this.errorText,
110
112
  focus: this.hasFocus,
111
113
  active: !!this.inputActive,
112
- }) }, this.renderPrefixContent(), h("input", { key: 'adb2aa8a54d45aeeca8e209f0c0a28d2aa0141f8', ref: e => (this.inputElement = e), id: this.dsId, name: this.name, "aria-label": this.ariaLabel, "aria-labelledby": this.ariaLabelledBy, "aria-describedby": this.ariaDescribedby ||
114
+ }) }, this.renderPrefixContent(), h("input", { key: '1cd22b415c330cb50c4c9663f6dec3a1e99e256b', ref: e => (this.inputElement = e), id: this.dsId, name: this.name, "aria-label": this.ariaLabel, "aria-labelledby": this.ariaLabelledBy, "aria-describedby": this.ariaDescribedby ||
113
115
  classNames(this.assistiveTextId, this.visuallyHiddenAssistiveTextId, {
114
116
  [this.successTextId]: this.successText,
115
117
  [this.errorTextId]: this.errorText,
@@ -183,7 +185,7 @@ export class DsTextInput {
183
185
  },
184
186
  "getter": false,
185
187
  "setter": false,
186
- "attribute": "ds-id",
188
+ "attribute": "id",
187
189
  "reflect": false,
188
190
  "defaultValue": "'input'"
189
191
  },
@@ -225,6 +227,25 @@ export class DsTextInput {
225
227
  "attribute": "disabled",
226
228
  "reflect": false
227
229
  },
230
+ "optional": {
231
+ "type": "boolean",
232
+ "mutable": false,
233
+ "complexType": {
234
+ "original": "boolean",
235
+ "resolved": "boolean",
236
+ "references": {}
237
+ },
238
+ "required": false,
239
+ "optional": true,
240
+ "docs": {
241
+ "tags": [],
242
+ "text": ""
243
+ },
244
+ "getter": false,
245
+ "setter": false,
246
+ "attribute": "optional",
247
+ "reflect": false
248
+ },
228
249
  "required": {
229
250
  "type": "boolean",
230
251
  "mutable": false,
@@ -377,6 +398,25 @@ export class DsTextInput {
377
398
  "attribute": "autocomplete",
378
399
  "reflect": false
379
400
  },
401
+ "optionalText": {
402
+ "type": "string",
403
+ "mutable": false,
404
+ "complexType": {
405
+ "original": "string",
406
+ "resolved": "string",
407
+ "references": {}
408
+ },
409
+ "required": false,
410
+ "optional": true,
411
+ "docs": {
412
+ "tags": [],
413
+ "text": ""
414
+ },
415
+ "getter": false,
416
+ "setter": false,
417
+ "attribute": "optional-text",
418
+ "reflect": false
419
+ },
380
420
  "errorText": {
381
421
  "type": "string",
382
422
  "mutable": false,
@@ -22,3 +22,16 @@ export const UsingSlots = {
22
22
  </ds-text-input>
23
23
  `,
24
24
  };
25
+ export const FormValidation = {
26
+ render: () => html `
27
+ <form>
28
+ <ds-text-input type="number" label="Minimum value" id="min" name="min" min="5" required></ds-text-input>
29
+ <ds-text-input type="number" label="Maximum value" id="max" name="max" min="100" required></ds-text-input>
30
+ <ds-text-input type="email" label="Email" id="email" name="email" required></ds-text-input>
31
+ <ds-text-input type="tel" label="Telephone" id="tel" name="tel" required></ds-text-input>
32
+ <ds-text-input type="password" label="Password" id="password" name="password" required action-button-aria-label="password toggle"></ds-text-input>
33
+ <ds-text-input type="url" label="Url" id="url" name="url" required></ds-text-input>
34
+ <ds-button style="margin-top: 0.5rem" type="submit" value="Submit"></ds-button>
35
+ </form>
36
+ `,
37
+ };
@@ -1,5 +1,6 @@
1
- import { getDsElem } from "../../../utils/tests/testUtils";
1
+ import { getDsElem } from "../../../../utils/tests/testUtils";
2
2
  import { expect, userEvent, waitFor } from "@storybook/test";
3
+ import { html } from "lit";
3
4
  const meta = {
4
5
  title: 'Base Components/TextInput/Features',
5
6
  component: 'ds-text-input',
@@ -31,6 +32,20 @@ Required.args = {
31
32
  label: 'Label',
32
33
  required: true,
33
34
  };
35
+ export const Optional = {};
36
+ Optional.args = {
37
+ label: 'Label',
38
+ optional: true,
39
+ };
40
+ export const OptionalWithCustomText = {
41
+ render: () => html `<ds-text-input label="Optional" optional optional-text="vapaavalintainen"></ds-text-input>`
42
+ };
43
+ export const MaxLength = {};
44
+ MaxLength.args = {
45
+ label: 'Label',
46
+ maxlength: 5,
47
+ assistiveText: 'Max length of 5'
48
+ };
34
49
  export const Valid = {};
35
50
  Valid.args = {
36
51
  label: 'Label',
@@ -45,9 +60,8 @@ Invalid.args = {
45
60
  };
46
61
  export const WithIcon = {
47
62
  args: {
48
- label: 'Search',
49
- icon: 'info',
50
- helpText: 'Assistive text',
63
+ label: 'User',
64
+ icon: 'account_circle_fill',
51
65
  type: 'email',
52
66
  },
53
67
  };
@@ -1,5 +1,5 @@
1
- import { textInputTypes } from "./utils";
2
- import { icons } from "../../00-foundations/icons/iconList";
1
+ import { textInputTypes } from "../utils";
2
+ import { icons } from "../../../00-foundations/icons/iconList";
3
3
  const meta = {
4
4
  title: 'Base Components/TextInput',
5
5
  component: 'ds-text-input',
@@ -1,7 +1,7 @@
1
1
  import { h } from "@stencil/core";
2
2
  export class DsVisuallyHidden {
3
3
  render() {
4
- return (h("slot", { key: '390610148832811748f7700f0d438b257bdb354d' }));
4
+ return (h("slot", { key: '3a7edab043d1612c06a4eb6fedacec27216f3be3' }));
5
5
  }
6
6
  static get is() { return "ds-visually-hidden"; }
7
7
  static get encapsulation() { return "shadow"; }
@@ -0,0 +1,9 @@
1
+ import IntroDocs from "./Introduction.mdx";
2
+ export default {
3
+ title: 'Introduction',
4
+ parameters: {
5
+ docs: {
6
+ page: IntroDocs,
7
+ },
8
+ },
9
+ };
@@ -0,0 +1,11 @@
1
+ export const opensInNewTab = (target) => target === '_blank';
2
+ export const visuallyHiddenAssistiveText = (lang) => {
3
+ switch (lang) {
4
+ case 'fi':
5
+ return 'Avautuu uuteen välilehteen';
6
+ case 'sv':
7
+ return 'Öppnas i en ny flik';
8
+ default:
9
+ return 'Opens in a new tab';
10
+ }
11
+ };
@@ -83,3 +83,24 @@ export const createCategorySection = (category, fonts, renderedCategories) => {
83
83
  section.appendChild(gridContainer);
84
84
  return section;
85
85
  };
86
+ export const getCSSClasses = (prefix) => {
87
+ const stylesheets = Array.from(document.styleSheets);
88
+ let classNames = [];
89
+ for (let sheet of stylesheets) {
90
+ try {
91
+ const rules = Array.from(sheet.cssRules);
92
+ for (let rule of rules) {
93
+ if (rule.selectorText) {
94
+ const selector = rule.selectorText;
95
+ if (selector.startsWith(`.${prefix}`)) {
96
+ classNames.push(selector.substring(1));
97
+ }
98
+ }
99
+ }
100
+ }
101
+ catch (e) {
102
+ console.warn("Could not access stylesheet:", e);
103
+ }
104
+ }
105
+ return classNames;
106
+ };
@@ -33,3 +33,8 @@ export function generateLoremIpsum({ paragraphs = 1, wordsPerParagraph = 50, sta
33
33
  }
34
34
  return generatedText.join('\n\n');
35
35
  }
36
+ export function remToPx(remString) {
37
+ const rootFontSize = 16;
38
+ const rem = parseFloat(remString);
39
+ return `${rem * rootFontSize}px`;
40
+ }
@@ -0,0 +1 @@
1
+ const a=(a,r=[])=>{const i={};return r.forEach((r=>{a.hasAttribute(r)&&(null!==a.getAttribute(r)&&(i[r]=a.getAttribute(r)),a.removeAttribute(r))})),i},r=["role","aria-activedescendant","aria-atomic","aria-autocomplete","aria-braillelabel","aria-brailleroledescription","aria-busy","aria-checked","aria-colcount","aria-colindex","aria-colindextext","aria-colspan","aria-controls","aria-current","aria-describedby","aria-description","aria-details","aria-disabled","aria-errormessage","aria-expanded","aria-flowto","aria-haspopup","aria-hidden","aria-invalid","aria-keyshortcuts","aria-label","aria-labelledby","aria-level","aria-live","aria-multiline","aria-multiselectable","aria-orientation","aria-owns","aria-placeholder","aria-posinset","aria-pressed","aria-readonly","aria-relevant","aria-required","aria-roledescription","aria-rowcount","aria-rowindex","aria-rowindextext","aria-rowspan","aria-selected","aria-setsize","aria-sort","aria-valuemax","aria-valuemin","aria-valuenow","aria-valuetext"],i=(i,e)=>{let l=[...r];return e&&e.length>0&&(l=l.filter((a=>!e.includes(a)))),a(i,l)};export{a,i}
@@ -1 +1 @@
1
- html{box-sizing:border-box}html *,html *::before,html *::after{box-sizing:inherit}:root{--ds-borderWidth-none:0px;--ds-borderWidth-hairline:1px;--ds-borderWidth-thin:2px;--ds-borderWidth-thick:4px;--ds-borderWidth-xThick:8px;--ds-borderRadius-none:0px}:root{--ds-breakpoint-xSmall:20rem;--ds-breakpoint-small:30rem;--ds-breakpoint-medium:60rem;--ds-breakpoint-large:75rem;--ds-breakpoint-xLarge:90rem}:root{--ds-overlay-black-00:rgb(0 0 0 / 0);--ds-overlay-black-05:rgb(0 0 0 / 0.05);--ds-overlay-black-10:rgb(0 0 0 / 0.1);--ds-overlay-black-15:rgb(0 0 0 / 0.15);--ds-overlay-black-30:rgb(0 0 0 / 0.3);--ds-overlay-black-40:rgb(0 0 0 / 0.4);--ds-overlay-black-50:rgb(0 0 0 / 0.5);--ds-overlay-black-70:rgb(0 0 0 / 0.7);--ds-overlay-black-80:rgb(0 0 0 / 0.8);--ds-overlay-white-00:rgb(255 255 255 / 0);--ds-overlay-white-05:rgb(255 255 255 / 0.05);--ds-overlay-white-10:rgb(255 255 255 / 0.1);--ds-overlay-white-15:rgb(255 255 255 / 0.15);--ds-overlay-white-30:rgb(255 255 255 / 0.3);--ds-overlay-white-40:rgb(255 255 255 / 0.4);--ds-overlay-white-50:rgb(255 255 255 / 0.5);--ds-overlay-white-70:rgb(255 255 255 / 0.7);--ds-overlay-white-80:rgb(255 255 255 / 0.8);--ds-palette-black:#000000;--ds-palette-white:#ffffff;--ds-palette-black-03:#f7f7f7;--ds-palette-black-05:#f2f2f2;--ds-palette-black-10:#e6e6e6;--ds-palette-black-20:#cccccc;--ds-palette-black-30:#b3b3b3;--ds-palette-black-40:#999999;--ds-palette-black-50:#808080;--ds-palette-black-60:#666666;--ds-palette-black-70:#4d4d4d;--ds-palette-black-80:#333333;--ds-palette-black-90:#1a1a1a;--ds-palette-blue-05:#e5f8ff;--ds-palette-blue-10:#c2eeff;--ds-palette-blue-20:#8adeff;--ds-palette-blue-30:#5cd1ff;--ds-palette-blue-40:#1abeff;--ds-palette-blue-50:#009ad6;--ds-palette-blue-60:#0084b8;--ds-palette-blue-70:#005b80;--ds-palette-blue-80:#053c52;--ds-palette-blue-90:#032330;--ds-palette-green-05:#dffbe1;--ds-palette-green-10:#bef4c1;--ds-palette-green-20:#85e08a;--ds-palette-green-30:#66cc6b;--ds-palette-green-40:#43b149;--ds-palette-green-50:#279b2d;--ds-palette-green-60:#257e29;--ds-palette-green-70:#216325;--ds-palette-green-80:#183f19;--ds-palette-green-90:#0f2410;--ds-palette-mainBlue-05:#e5f5ff;--ds-palette-mainBlue-10:#cdebff;--ds-palette-mainBlue-20:#99d7ff;--ds-palette-mainBlue-30:#70c7ff;--ds-palette-mainBlue-40:#3db3ff;--ds-palette-mainBlue-50:#009bff;--ds-palette-mainBlue-60:#007fd1;--ds-palette-mainBlue-70:#005a94;--ds-palette-mainBlue-80:#003152;--ds-palette-mainBlue-90:#001929;--ds-palette-red-05:#ffeceb;--ds-palette-red-10:#ffd8d6;--ds-palette-red-20:#fdb7b4;--ds-palette-red-30:#f87c77;--ds-palette-red-40:#f0514c;--ds-palette-red-50:#d71f19;--ds-palette-red-60:#bd2828;--ds-palette-red-70:#8b2623;--ds-palette-red-80:#602220;--ds-palette-red-90:#321c1b;--ds-palette-yellow-05:#fff1db;--ds-palette-yellow-10:#ffe7c2;--ds-palette-yellow-20:#ffd799;--ds-palette-yellow-30:#fbc05f;--ds-palette-yellow-40:#eea22b;--ds-palette-yellow-50:#ce8103;--ds-palette-yellow-60:#b26d00;--ds-palette-yellow-70:#7a4b00;--ds-palette-yellow-80:#4e3104;--ds-palette-yellow-90:#282115}:root{--ds-textColor-default:var(--ds-palette-black-90);--ds-textColor-primary:var(--ds-palette-mainBlue-70);--ds-textColor-secondary:var(--ds-palette-black-70);--ds-textColor-white:var(--ds-palette-white);--ds-textColor-danger:var(--ds-palette-red-80);--ds-textColor-success:var(--ds-palette-green-80);--ds-textColor-disabled-onLight:var(--ds-palette-black-40);--ds-textColor-disabled-onDark:var(--ds-overlay-white-40);--ds-bgColor-primary:var(--ds-palette-mainBlue-70);--ds-bgColor-primary-hover:var(--ds-palette-mainBlue-80);--ds-bgColor-primary-active:var(--ds-palette-mainBlue-90);--ds-bgColor-secondary:var(--ds-palette-white);--ds-bgColor-secondary-hover:var(--ds-palette-mainBlue-05);--ds-bgColor-secondary-active:var(--ds-palette-mainBlue-10);--ds-bgColor-white:var(--ds-palette-white);--ds-bgColor-white-hover:var(--ds-palette-black-10);--ds-bgColor-white-active:var(--ds-overlay-black-20);--ds-bgColor-black:var(--ds-palette-black-90);--ds-bgColor-black-hover:var(--ds-palette-black-70);--ds-bgColor-black-active:var(--ds-palette-white-60);--ds-bgColor-danger:var(--ds-palette-red-05);--ds-bgColor-danger-hover:var(--ds-palette-red-10);--ds-bgColor-danger-active:var(--ds-palette-red-20);--ds-bgColor-success:var(--ds-palette-green-05);--ds-bgColor-success-hover:var(--ds-palette-green-10);--ds-bgColor-success-active:var(--ds-palette-green-20);--ds-bgColor-transparent-onLight:var(--ds-overlay-black-00);--ds-bgColor-transparent-onLight-hover:var(--ds-overlay-black-10);--ds-bgColor-transparent-onLight-active:var(--ds-overlay-black-15);--ds-bgColor-transparent-onDark:var(--ds-overlay-white-00);--ds-bgColor-transparent-onDark-hover:var(--ds-overlay-white-30);--ds-bgColor-transparent-onDark-active:var(--ds-overlay-white-40);--ds-bgColor-disabled-onLight:var(--ds-overlay-black-10);--ds-bgColor-disabled-onDark:var(--ds-overlay-white-10);--ds-borderColor-default:var(--ds-palette-black-50);--ds-borderColor-primary:var(--ds-palette-mainBlue-70);--ds-borderColor-black:var(--ds-palette-black);--ds-borderColor-white:var(--ds-palette-white);--ds-borderColor-danger:var(--ds-palette-red-50);--ds-borderColor-success:var(--ds-palette-green-50);--ds-borderColor-transparent:var(--ds-overlay-black-00);--ds-borderColor-disabled-onLight:var(--ds-overlay-black-15);--ds-borderColor-disabled-onDark:var(--ds-overlay-white-15);--ds-borderColor-light:var(--ds-palette-black-20)}:root{--ds-spacing-4xSmall:0.125rem;--ds-spacing-3xSmall:0.25rem;--ds-spacing-2xSmall:0.5rem;--ds-spacing-xSmall:0.75rem;--ds-spacing-small:1rem;--ds-spacing-medium:1.5rem;--ds-spacing-large:2rem;--ds-spacing-xLarge:2.5rem;--ds-spacing-2xLarge:3rem;--ds-spacing-3xLarge:3.5rem;--ds-spacing-4xLarge:4rem;--ds-spacing-5xLarge:4.5rem;--ds-spacing-layout-2xSmall:1rem;--ds-spacing-layout-xSmall:1.5rem;--ds-spacing-layout-small:2rem;--ds-spacing-layout-medium:3rem;--ds-spacing-layout-large:4rem;--ds-spacing-layout-xLarge:6rem;--ds-spacing-layout-2xLarge:8rem}html{font-size:100%}body{font-size:1rem}.heading--2xLarge,h1,.h1{font-size:2.25rem;line-height:1.166667;font-weight:700;font-variation-settings:"wdth" 90;letter-spacing:-1.2px;text-transform:uppercase}@media (min-width: 30rem){.heading--2xLarge,h1,.h1{font-size:3.5rem;line-height:1.142857;font-weight:700;font-variation-settings:"wdth" 90;letter-spacing:-1.4px;text-transform:uppercase}}.heading--xLarge,h2,.h2{font-size:1.875rem;line-height:1.2;font-weight:700;font-variation-settings:"wdth" 90;letter-spacing:-1.4px;text-transform:normal}@media (min-width: 30rem){.heading--xLarge,h2,.h2{font-size:3rem;line-height:1.083333;font-weight:700;font-variation-settings:"wdth" 90;letter-spacing:-1.4px;text-transform:normal}}.heading--large,h3,.h3{font-size:1.5rem;line-height:1.166667;font-weight:650;font-variation-settings:"wdth" 100;letter-spacing:-0.4px;text-transform:normal}@media (min-width: 30rem){.heading--large,h3,.h3{font-size:2rem;line-height:1.125;font-weight:650;font-variation-settings:"wdth" 100;letter-spacing:-1.4px;text-transform:normal}}.heading--medium,h4,.h4{font-size:1.25rem;line-height:1.333333;font-weight:650;font-variation-settings:"wdth" 100;letter-spacing:-0.4px;text-transform:normal}@media (min-width: 30rem){.heading--medium,h4,.h4{font-size:1.5rem;line-height:1.166667;font-weight:650;font-variation-settings:"wdth" 100;letter-spacing:-0.4px;text-transform:normal}}.heading--small,h5,.h5{font-size:1.125rem;line-height:1.2;font-weight:600;font-variation-settings:"wdth" 100;letter-spacing:-0.4px;text-transform:normal}@media (min-width: 30rem){.heading--small,h5,.h5{font-size:1.25rem;line-height:1.2;font-weight:600;font-variation-settings:"wdth" 100;letter-spacing:-0.4px;text-transform:normal}}.heading--xSmall,h6,.h6{font-size:1rem;line-height:1.125;font-weight:700;font-variation-settings:"wdth" 100;letter-spacing:-0.4px;text-transform:uppercase}@media (min-width: 30rem){.heading--xSmall,h6,.h6{font-size:1.125rem;line-height:1.2;font-weight:700;font-variation-settings:"wdth" 100;letter-spacing:-0.4px;text-transform:uppercase}}.bodyText{line-height:1.5}.bodyText--2xLarge{font-size:1.375rem}.bodyText--xLarge{font-size:1.25rem}.bodyText--large{font-size:1.125rem}.bodyText--medium{font-size:1rem}.bodyText--small{font-size:0.875rem}.bodyText--xSmall{font-size:0.75rem}:root{--ds-fontFamily-heading:"Open Sans", sans-serif;--ds-fontFamily-body:"Open Sans", sans-serif;--ds-fontSize-12:12px;--ds-fontSize-14:14px;--ds-fontSize-16:16px;--ds-fontSize-18:18px;--ds-fontSize-20:20px;--ds-fontSize-22:22px;--ds-fontSize-24:24px;--ds-fontSize-26:26px;--ds-fontSize-30:30px;--ds-fontSize-32:32px;--ds-fontSize-36:36px;--ds-fontSize-40:40px;--ds-fontSize-48:48px;--ds-fontSize-56:56px;--ds-fontSize-64:64px;--ds-fontWeight-regular:400;--ds-fontWeight-semibold:600;--ds-fontWeight-semiboldPlus:650;--ds-fontWeight-bold:700;--ds-letterSpacing-xTight:-2;--ds-letterSpacing-tight:-1.4;--ds-letterSpacing-normal:-0.4;--ds-letterSpacing-wide:0;--ds-letterSpacing-xWide:0.4;--ds-lineHeight-small:1;--ds-lineHeight-medium:1.2;--ds-lineHeight-large:1.5;--ds-lineHeight-xLarge:1.75;--ds-fontWidth-normal:100;--ds-fontWidth-condense:90;--ds-number-style:proportional-figures;}@supports (font-variation-settings: normal){:root{--ds-fontFamily-heading:"Open Sans Variable", sans-serif;--ds-fontFamily-body:"Open Sans Variable", sans-serif}}.button-group{display:flex;flex-wrap:wrap;gap:var(--ds-spacing-xSmall)}
1
+ html{box-sizing:border-box}html *,html *::before,html *::after{box-sizing:inherit}:root{--ds-borderWidth-none:0px;--ds-borderWidth-hairline:1px;--ds-borderWidth-thin:2px;--ds-borderWidth-thick:4px;--ds-borderWidth-xThick:8px;--ds-borderRadius-none:0px}:root{--ds-breakpoint-xSmall:20rem;--ds-breakpoint-small:30rem;--ds-breakpoint-medium:60rem;--ds-breakpoint-large:75rem;--ds-breakpoint-xLarge:90rem}:root{--ds-overlay-black-00:rgb(0 0 0 / 0);--ds-overlay-black-05:rgb(0 0 0 / 0.05);--ds-overlay-black-10:rgb(0 0 0 / 0.1);--ds-overlay-black-15:rgb(0 0 0 / 0.15);--ds-overlay-black-30:rgb(0 0 0 / 0.3);--ds-overlay-black-40:rgb(0 0 0 / 0.4);--ds-overlay-black-50:rgb(0 0 0 / 0.5);--ds-overlay-black-70:rgb(0 0 0 / 0.7);--ds-overlay-black-80:rgb(0 0 0 / 0.8);--ds-overlay-white-00:rgb(255 255 255 / 0);--ds-overlay-white-05:rgb(255 255 255 / 0.05);--ds-overlay-white-10:rgb(255 255 255 / 0.1);--ds-overlay-white-15:rgb(255 255 255 / 0.15);--ds-overlay-white-30:rgb(255 255 255 / 0.3);--ds-overlay-white-40:rgb(255 255 255 / 0.4);--ds-overlay-white-50:rgb(255 255 255 / 0.5);--ds-overlay-white-70:rgb(255 255 255 / 0.7);--ds-overlay-white-80:rgb(255 255 255 / 0.8);--ds-palette-black:#000000;--ds-palette-white:#ffffff;--ds-palette-black-03:#f7f7f7;--ds-palette-black-05:#f2f2f2;--ds-palette-black-10:#e6e6e6;--ds-palette-black-20:#cccccc;--ds-palette-black-30:#b3b3b3;--ds-palette-black-40:#999999;--ds-palette-black-50:#808080;--ds-palette-black-60:#666666;--ds-palette-black-70:#4d4d4d;--ds-palette-black-80:#333333;--ds-palette-black-90:#1a1a1a;--ds-palette-black-95:#0c0c0c;--ds-palette-blue-05:#e5f8ff;--ds-palette-blue-10:#c2eeff;--ds-palette-blue-20:#8adeff;--ds-palette-blue-30:#5cd1ff;--ds-palette-blue-40:#1abeff;--ds-palette-blue-50:#009ad6;--ds-palette-blue-60:#0084b8;--ds-palette-blue-70:#005b80;--ds-palette-blue-80:#053c52;--ds-palette-blue-90:#032330;--ds-palette-green-05:#dffbe1;--ds-palette-green-10:#bef4c1;--ds-palette-green-20:#85e08a;--ds-palette-green-30:#66cc6b;--ds-palette-green-40:#43b149;--ds-palette-green-50:#279b2d;--ds-palette-green-60:#257e29;--ds-palette-green-70:#216325;--ds-palette-green-80:#183f19;--ds-palette-green-90:#0f2410;--ds-palette-mainBlue-05:#e5f5ff;--ds-palette-mainBlue-10:#cdebff;--ds-palette-mainBlue-20:#99d7ff;--ds-palette-mainBlue-30:#70c7ff;--ds-palette-mainBlue-40:#3db3ff;--ds-palette-mainBlue-50:#009bff;--ds-palette-mainBlue-60:#007fd1;--ds-palette-mainBlue-70:#005a94;--ds-palette-mainBlue-80:#003152;--ds-palette-mainBlue-90:#001929;--ds-palette-red-05:#ffeceb;--ds-palette-red-10:#ffd8d6;--ds-palette-red-20:#fdb7b4;--ds-palette-red-30:#f87c77;--ds-palette-red-40:#f0514c;--ds-palette-red-50:#d71f19;--ds-palette-red-60:#bd2828;--ds-palette-red-70:#8b2623;--ds-palette-red-80:#602220;--ds-palette-red-90:#321c1b;--ds-palette-yellow-05:#fff1db;--ds-palette-yellow-10:#ffe7c2;--ds-palette-yellow-20:#ffd799;--ds-palette-yellow-30:#fbc05f;--ds-palette-yellow-40:#eea22b;--ds-palette-yellow-50:#ce8103;--ds-palette-yellow-60:#b26d00;--ds-palette-yellow-70:#7a4b00;--ds-palette-yellow-80:#4e3104;--ds-palette-yellow-90:#282115}:root{--ds-textColor-default:var(--ds-palette-black-95);--ds-textColor-primary:var(--ds-palette-mainBlue-70);--ds-textColor-secondary:var(--ds-palette-black-70);--ds-textColor-white:var(--ds-palette-white);--ds-textColor-danger:var(--ds-palette-red-80);--ds-textColor-success:var(--ds-palette-green-80);--ds-textColor-disabled-onLight:var(--ds-palette-black-40);--ds-textColor-disabled-onDark:var(--ds-overlay-white-40);--ds-textColor-link:var(--ds-palette-mainBlue-70);--ds-textColor-link-hover:var(--ds-palette-mainBlue-80);--ds-textColor-link-active:var(--ds-palette-mainBlue-90);--ds-textColor-link-visited:#551a8b;--ds-textColor-link--standalone:var(--ds-palette-black-70);--ds-textColor-link--standalone-hover:var(--ds-palette-black-80);--ds-textColor-link--standalone-active:var(--ds-palette-black-95);--ds-textColor-link--standalone-focus:var(--ds-palette-black-70);--ds-bgColor-primary:var(--ds-palette-mainBlue-70);--ds-bgColor-primary-hover:var(--ds-palette-mainBlue-80);--ds-bgColor-primary-active:var(--ds-palette-mainBlue-90);--ds-bgColor-secondary:var(--ds-palette-white);--ds-bgColor-secondary-hover:var(--ds-palette-mainBlue-05);--ds-bgColor-secondary-active:var(--ds-palette-mainBlue-10);--ds-bgColor-white:var(--ds-palette-white);--ds-bgColor-white-hover:var(--ds-palette-black-10);--ds-bgColor-white-active:var(--ds-overlay-black-20);--ds-bgColor-black:var(--ds-palette-black-95);--ds-bgColor-black-hover:var(--ds-palette-black-80);--ds-bgColor-black-active:var(--ds-palette-white-70);--ds-bgColor-danger:var(--ds-palette-red-05);--ds-bgColor-danger-hover:var(--ds-palette-red-10);--ds-bgColor-danger-active:var(--ds-palette-red-20);--ds-bgColor-success:var(--ds-palette-green-05);--ds-bgColor-success-hover:var(--ds-palette-green-10);--ds-bgColor-success-active:var(--ds-palette-green-20);--ds-bgColor-transparent-onLight:var(--ds-overlay-black-00);--ds-bgColor-transparent-onLight-hover:var(--ds-overlay-black-10);--ds-bgColor-transparent-onLight-active:var(--ds-overlay-black-15);--ds-bgColor-transparent-onDark:var(--ds-overlay-white-00);--ds-bgColor-transparent-onDark-hover:var(--ds-overlay-white-30);--ds-bgColor-transparent-onDark-active:var(--ds-overlay-white-40);--ds-bgColor-disabled-onLight:var(--ds-overlay-black-10);--ds-bgColor-disabled-onDark:var(--ds-overlay-white-10);--ds-borderColor-default:var(--ds-palette-black-50);--ds-borderColor-primary:var(--ds-palette-mainBlue-70);--ds-borderColor-black:var(--ds-palette-black-95);--ds-borderColor-white:var(--ds-palette-white);--ds-borderColor-danger:var(--ds-palette-red-50);--ds-borderColor-success:var(--ds-palette-green-50);--ds-borderColor-transparent:var(--ds-overlay-black-00);--ds-borderColor-disabled-onLight:var(--ds-overlay-black-15);--ds-borderColor-disabled-onDark:var(--ds-overlay-white-15);--ds-borderColor-light:var(--ds-palette-black-20)}:root{--ds-spacing-4xSmall:0.125rem;--ds-spacing-3xSmall:0.25rem;--ds-spacing-2xSmall:0.5rem;--ds-spacing-xSmall:0.75rem;--ds-spacing-small:1rem;--ds-spacing-medium:1.5rem;--ds-spacing-large:2rem;--ds-spacing-xLarge:2.5rem;--ds-spacing-2xLarge:3rem;--ds-spacing-3xLarge:3.5rem;--ds-spacing-4xLarge:4rem;--ds-spacing-5xLarge:4.5rem;--ds-spacing-layout-2xSmall:1rem;--ds-spacing-layout-xSmall:1.5rem;--ds-spacing-layout-small:2rem;--ds-spacing-layout-medium:3rem;--ds-spacing-layout-large:4rem;--ds-spacing-layout-xLarge:6rem;--ds-spacing-layout-2xLarge:8rem}html{font-size:100%}body{font-size:1rem}.ds-font--heading{font-family:var(--ds-fontFamily-heading)}.ds-font--body{font-family:var(--ds-fontFamily-body)}.ds-font--regular{font-weight:var(--ds-fontWeight-regular)}.ds-font--semibold{font-weight:var(--ds-fontWeight-semibold)}.ds-font--semibold-plus{font-weight:var(--ds-fontWeight-semiboldPlus)}.ds-font--bold{font-weight:var(--ds-fontWeight-bold)}.ds-tracking--xtight{letter-spacing:var(--ds-letterSpacing-xTight)}.ds-tracking--tight{letter-spacing:var(--ds-letterSpacing-tight)}.ds-tracking--normal{letter-spacing:var(--ds-letterSpacing-normal)}.ds-tracking--wide{letter-spacing:var(--ds-letterSpacing-wide)}.ds-tracking--xwide{letter-spacing:var(--ds-letterSpacing-xWide)}.ds-leading--small{line-height:var(--ds-lineHeight-small)}.ds-leading--medium{line-height:var(--ds-lineHeight-medium)}.ds-leading--large{line-height:var(--ds-lineHeight-large)}.ds-leading--xlarge{line-height:var(--ds-lineHeight-xLarge)}.ds-width--normal{font-stretch:var(--ds-fontWidth-normal)}.ds-width--condense{font-stretch:var(--ds-fontWidth-condense)}.ds-number--proportional{font-variant-numeric:var(--ds-number-style)}.ds-paragraph--16{margin-bottom:var(--ds-fontSize-16)}.ds-paragraph--20{margin-bottom:var(--ds-fontSize-20)}.ds-list--spacing{gap:4px}.ds-text-color--default{color:var(--ds-textColor-default)}.ds-text--2xl-regular{font-size:var(--ds-fontSize-22);font-weight:var(--ds-fontWeight-regular)}.ds-text--xl-regular{font-size:var(--ds-fontSize-20);font-weight:var(--ds-fontWeight-regular)}.ds-text--lg-regular{font-size:var(--ds-fontSize-18);font-weight:var(--ds-fontWeight-regular)}.ds-text--md-regular{font-size:var(--ds-fontSize-16);font-weight:var(--ds-fontWeight-regular)}.ds-text--sm-regular{font-size:var(--ds-fontSize-14);font-weight:var(--ds-fontWeight-regular)}.ds-text--xs-regular{font-size:var(--ds-fontSize-12);font-weight:var(--ds-fontWeight-regular)}.ds-text--2xl-semibold{font-size:var(--ds-fontSize-22);font-weight:var(--ds-fontWeight-semibold)}.ds-text--xl-semibold{font-size:var(--ds-fontSize-20);font-weight:var(--ds-fontWeight-semibold)}.ds-text--lg-semibold{font-size:var(--ds-fontSize-18);font-weight:var(--ds-fontWeight-semibold)}.ds-text--md-semibold{font-size:var(--ds-fontSize-16);font-weight:var(--ds-fontWeight-semibold)}.ds-text--sm-semibold{font-size:var(--ds-fontSize-14);font-weight:var(--ds-fontWeight-semibold)}.ds-text--xs-semibold{font-size:var(--ds-fontSize-12);font-weight:var(--ds-fontWeight-semibold)}.ds-text--2xl-bold{font-size:var(--ds-fontSize-22);font-weight:var(--ds-fontWeight-bold)}.ds-text--xl-bold{font-size:var(--ds-fontSize-20);font-weight:var(--ds-fontWeight-bold)}.ds-text--lg-bold{font-size:var(--ds-fontSize-18);font-weight:var(--ds-fontWeight-bold)}.ds-text--md-bold{font-size:var(--ds-fontSize-16);font-weight:var(--ds-fontWeight-bold)}.ds-text--sm-bold{font-size:var(--ds-fontSize-14);font-weight:var(--ds-fontWeight-bold)}.ds-text--xs-bold{font-size:var(--ds-fontSize-12);font-weight:var(--ds-fontWeight-bold)}.ds-heading--2xLarge{color:var(--ds-textColor-default);font-family:var(--ds-fontFamily-heading);font-size:var(--ds-fontSize-40);font-weight:var(--ds-fontWeight-bold);letter-spacing:-1.2px;font-stretch:var(--ds-fontWidth-normal);line-height:48px;text-transform:uppercase}@media (min-width: 30rem){.ds-heading--2xLarge{font-size:var(--ds-fontSize-56);letter-spacing:var(--ds-letterSpacing-tight);line-height:64px;font-stretch:var(--ds-fontWidth-condense)}}.ds-heading--xLarge{color:var(--ds-textColor-default);font-family:var(--ds-fontFamily-heading);font-size:var(--ds-fontSize-32);font-weight:var(--ds-fontWeight-bold);letter-spacing:var(--ds-letterSpacing-tight);line-height:36px;font-stretch:var(--ds-fontWidth-normal)}@media (min-width: 30rem){.ds-heading--xLarge{font-size:var(--ds-fontSize-48);line-height:52px;font-stretch:var(--ds-fontWidth-condense)}}.ds-heading--large{color:var(--ds-textColor-default);font-family:var(--ds-fontFamily-heading);font-size:var(--ds-fontSize-24);font-weight:var(--ds-fontWeight-bold);letter-spacing:var(--ds-letterSpacing-normal);line-height:28px}@media (min-width: 30rem){.ds-heading--large{font-size:var(--ds-fontSize-32);font-weight:var(--ds-fontWeight-semiboldPlus);letter-spacing:var(--ds-letterSpacing-tight);line-height:36px}}.ds-heading--medium{color:var(--ds-textColor-default);font-family:var(--ds-fontFamily-heading);font-size:var(--ds-fontSize-20);font-weight:var(--ds-fontWeight-semiboldPlus);letter-spacing:var(--ds-letterSpacing-normal);line-height:28px}@media (min-width: 30rem){.ds-heading--medium{font-size:var(--ds-fontSize-24);line-height:24px}}.ds-heading--small{color:var(--ds-textColor-default);font-family:var(--ds-fontFamily-heading);font-size:var(--ds-fontSize-18);font-weight:var(--ds-fontWeight-semibold);letter-spacing:var(--ds-letterSpacing-normal);line-height:20px}@media (min-width: 30rem){.ds-heading--small{font-size:var(--ds-fontSize-20);line-height:24px}}.ds-heading--xSmall{color:var(--ds-textColor-default);font-family:var(--ds-fontFamily-heading);font-size:var(--ds-fontSize-16);font-weight:var(--ds-fontWeight-bold);letter-spacing:var(--ds-letterSpacing-normal);line-height:18px;text-transform:uppercase}@media (min-width: 30rem){.ds-heading--xSmall{font-size:var(--ds-fontSize-18);line-height:20px}}.ds-bodyText--2xLarge{color:var(--ds-textColor-default);font-family:var(--ds-fontFamily-body);font-size:var(--ds-fontSize-20);font-weight:var(--ds-fontWeight-regular);letter-spacing:var(--ds-letterSpacing-wide);line-height:var(--ds-lineHeight-large)}@media (min-width: 30rem){.ds-bodyText--2xLarge{font-size:var(--ds-fontSize-22)}}.ds-bodyText--xLarge{color:var(--ds-textColor-default);font-family:var(--ds-fontFamily-body);font-size:var(--ds-fontSize-18);font-weight:var(--ds-fontWeight-regular);letter-spacing:var(--ds-letterSpacing-wide);line-height:var(--ds-lineHeight-large)}@media (min-width: 30rem){.ds-bodyText--xLarge{font-size:var(--ds-fontSize-20)}}.ds-bodyText--large{color:var(--ds-textColor-default);font-family:var(--ds-fontFamily-body);font-size:var(--ds-fontSize-16);font-weight:var(--ds-fontWeight-regular);letter-spacing:var(--ds-letterSpacing-wide);line-height:var(--ds-lineHeight-large)}@media (min-width: 30rem){.ds-bodyText--large{font-size:var(--ds-fontSize-18)}}.ds-bodyText--medium{color:var(--ds-textColor-default);font-family:var(--ds-fontFamily-body);font-size:var(--ds-fontSize-14);font-weight:var(--ds-fontWeight-regular);letter-spacing:var(--ds-letterSpacing-wide);line-height:var(--ds-lineHeight-large)}@media (min-width: 30rem){.ds-bodyText--medium{font-size:var(--ds-fontSize-16)}}.ds-bodyText--small{color:var(--ds-textColor-default);font-family:var(--ds-fontFamily-body);font-size:var(--ds-fontSize-12);font-weight:var(--ds-fontWeight-regular);letter-spacing:var(--ds-letterSpacing-wide);line-height:var(--ds-lineHeight-large)}@media (min-width: 30rem){.ds-bodyText--small{font-size:var(--ds-fontSize-14)}}:root{--ds-fontFamily-heading:"Open Sans", sans-serif;--ds-fontFamily-body:"Open Sans", sans-serif;--ds-fontSize-12:12px;--ds-fontSize-14:14px;--ds-fontSize-16:16px;--ds-fontSize-18:18px;--ds-fontSize-20:20px;--ds-fontSize-22:22px;--ds-fontSize-24:24px;--ds-fontSize-26:26px;--ds-fontSize-30:30px;--ds-fontSize-32:32px;--ds-fontSize-36:36px;--ds-fontSize-40:40px;--ds-fontSize-48:48px;--ds-fontSize-56:56px;--ds-fontSize-64:64px;--ds-fontWeight-regular:400;--ds-fontWeight-semibold:600;--ds-fontWeight-semiboldPlus:650;--ds-fontWeight-bold:700;--ds-letterSpacing-xTight:-2;--ds-letterSpacing-tight:-1.4;--ds-letterSpacing-normal:-0.4;--ds-letterSpacing-wide:0;--ds-letterSpacing-xWide:0.4;--ds-lineHeight-small:1;--ds-lineHeight-medium:1.2;--ds-lineHeight-large:1.5;--ds-lineHeight-xLarge:1.75;--ds-fontWidth-normal:100;--ds-fontWidth-condense:90;--ds-number-style:proportional-figures;}@supports (font-variation-settings: normal){:root{--ds-fontFamily-heading:"Open Sans Variable", sans-serif;--ds-fontFamily-body:"Open Sans Variable", sans-serif}}.button-group{display:flex;flex-wrap:wrap;gap:var(--ds-spacing-xSmall)}
@@ -1 +1 @@
1
- import{p as e,b as i}from"./index-4200d514.js";export{s as setNonce}from"./index-4200d514.js";import{g as t}from"./app-globals-0f993ce5.js";(()=>{const i=import.meta.url,t={};return""!==i&&(t.resourcesUrl=new URL(".",i).href),e(t)})().then((async e=>(await t(),i([["ds-accordion_2",[[1,"ds-accordion",{variant:[1],borderAligned:[4,"border-aligned"],openByDefault:[4,"open-by-default"],accordionId:[1,"accordion-id"],headingLevel:[2,"heading-level"],useCloseButton:[4,"use-close-button"],closeButtonLabel:[1,"close-button-label"],isExpanded:[32]},null,{isExpanded:["watchHandler"]}],[1,"ds-icon",{name:[1],colour:[1],size:[1],title:[1],role:[1],hidden:[4],message:[32]}]]],["ds-button_2",[[6,"ds-button",{value:[1],variant:[1],colour:[1],size:[1],fontWeight:[1,"font-weight"],icon:[1],iconPosition:[1,"icon-position"],type:[1],disabled:[4],ariaDisabled:[1,"aria-disabled"]}],[1,"ds-visually-hidden"]]],["ds-text-input",[[6,"ds-text-input",{label:[1],placeholder:[1],dsId:[1,"ds-id"],name:[1],disabled:[4],required:[4],readonly:[4],value:[1],min:[2],max:[2],maxlength:[2],pattern:[1],autocomplete:[1],errorText:[1,"error-text"],successText:[1,"success-text"],assistiveText:[1,"assistive-text"],actionButtonAriaLabel:[1,"action-button-aria-label"],hiddenAssistiveText:[1,"hidden-assistive-text"],prefixText:[1,"prefix-text"],suffixText:[1,"suffix-text"],icon:[1],type:[1],ariaLabel:[1,"aria-label"],ariaLabelledBy:[1,"aria-labelledby"],ariaDescribedby:[1,"aria-describedby"],hasFocus:[32],clearButtonVisible:[32],passwordInputVisible:[32],inputActive:[32],togglePasswordVisibility:[64],clearInput:[64]}]]]],e))));
1
+ import{p as e,b as i}from"./index-42701395.js";export{s as setNonce}from"./index-42701395.js";import{g as t}from"./app-globals-0f993ce5.js";(()=>{const i=import.meta.url,t={};return""!==i&&(t.resourcesUrl=new URL(".",i).href),e(t)})().then((async e=>(await t(),i([["ds-visually-hidden",[[1,"ds-visually-hidden"]]],["ds-accordion_3",[[1,"ds-accordion",{variant:[1],borderAligned:[4,"border-aligned"],openByDefault:[4,"open-by-default"],accordionId:[1,"accordion-id"],headingLevel:[2,"heading-level"],useCloseButton:[4,"use-close-button"],closeButtonLabel:[1,"close-button-label"],hideTopBorder:[4,"hide-top-border"],isExpanded:[32]},null,{isExpanded:["watchHandler"]}],[6,"ds-button",{value:[1],variant:[1],colour:[1],size:[1],fontWeight:[1,"font-weight"],icon:[1],iconPosition:[1,"icon-position"],type:[1],disabled:[4],fullWidth:[4,"full-width"],ariaDisabled:[1,"aria-disabled"]}],[1,"ds-icon",{name:[1],colour:[1],size:[1],dsTitle:[1,"title"],role:[1],hidden:[4],message:[32]}]]],["ds-text-input",[[6,"ds-text-input",{label:[1],placeholder:[1],dsId:[1,"id"],name:[1],disabled:[4],optional:[4],required:[4],readonly:[4],value:[1],min:[2],max:[2],maxlength:[2],pattern:[1],autocomplete:[1],optionalText:[1,"optional-text"],errorText:[1,"error-text"],successText:[1,"success-text"],assistiveText:[1,"assistive-text"],actionButtonAriaLabel:[1,"action-button-aria-label"],hiddenAssistiveText:[1,"hidden-assistive-text"],prefixText:[1,"prefix-text"],suffixText:[1,"suffix-text"],icon:[1],type:[1],ariaLabel:[1,"aria-label"],ariaLabelledBy:[1,"aria-labelledby"],ariaDescribedby:[1,"aria-describedby"],hasFocus:[32],clearButtonVisible:[32],passwordInputVisible:[32],inputActive:[32],togglePasswordVisibility:[64],clearInput:[64]}]]],["ds-link",[[1,"ds-link",{text:[1],size:[1],variant:[1],weight:[1],icon:[1025],iconPosition:[1025,"icon-position"],href:[1],target:[1],download:[4],language:[1,"lang"]}]]],["ds-link-with-arrow",[[1,"ds-link-with-arrow",{text:[1],iconPosition:[1,"icon-position"],href:[1],target:[1],language:[1,"lang"]}]]]],e))));