@cloudscape-design/components 3.0.227 → 3.0.229

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 (63) hide show
  1. package/app-layout/{drawer.d.ts → drawer/index.d.ts} +12 -12
  2. package/app-layout/drawer/index.d.ts.map +1 -0
  3. package/app-layout/{drawer.js → drawer/index.js} +6 -7
  4. package/app-layout/drawer/index.js.map +1 -0
  5. package/app-layout/drawer/styles.css.js +10 -0
  6. package/app-layout/drawer/styles.scoped.css +139 -0
  7. package/app-layout/drawer/styles.selectors.js +11 -0
  8. package/app-layout/index.d.ts.map +1 -1
  9. package/app-layout/index.js +6 -23
  10. package/app-layout/index.js.map +1 -1
  11. package/app-layout/split-panel-drawer/index.d.ts +11 -0
  12. package/app-layout/split-panel-drawer/index.d.ts.map +1 -0
  13. package/app-layout/split-panel-drawer/index.js +10 -0
  14. package/app-layout/split-panel-drawer/index.js.map +1 -0
  15. package/app-layout/split-panel-drawer/styles.css.js +7 -0
  16. package/app-layout/split-panel-drawer/styles.scoped.css +103 -0
  17. package/app-layout/split-panel-drawer/styles.selectors.js +8 -0
  18. package/app-layout/styles.css.js +13 -26
  19. package/app-layout/styles.scoped.css +13 -100
  20. package/app-layout/styles.selectors.js +13 -26
  21. package/app-layout/toggles/index.d.ts +0 -2
  22. package/app-layout/toggles/index.d.ts.map +1 -1
  23. package/app-layout/toggles/index.js +2 -2
  24. package/app-layout/toggles/index.js.map +1 -1
  25. package/app-layout/utils/use-content-height.d.ts +0 -3
  26. package/app-layout/utils/use-content-height.d.ts.map +1 -1
  27. package/app-layout/utils/use-content-height.js +0 -3
  28. package/app-layout/utils/use-content-height.js.map +1 -1
  29. package/internal/environment.js +1 -1
  30. package/internal/events/index.d.ts +2 -1
  31. package/internal/events/index.d.ts.map +1 -1
  32. package/internal/events/index.js +4 -6
  33. package/internal/events/index.js.map +1 -1
  34. package/internal/manifest.json +1 -1
  35. package/package.json +1 -1
  36. package/property-filter/index.js +1 -1
  37. package/property-filter/index.js.map +1 -1
  38. package/side-navigation/index.js +2 -2
  39. package/side-navigation/index.js.map +1 -1
  40. package/side-navigation/internal.d.ts +2 -2
  41. package/side-navigation/internal.d.ts.map +1 -1
  42. package/side-navigation/internal.js +81 -15
  43. package/side-navigation/internal.js.map +1 -1
  44. package/side-navigation/styles.css.js +27 -26
  45. package/side-navigation/styles.scoped.css +39 -37
  46. package/side-navigation/styles.selectors.js +27 -26
  47. package/tabs/tab-header-bar.js +2 -2
  48. package/tabs/tab-header-bar.js.map +1 -1
  49. package/test-utils/dom/side-navigation/index.js +2 -2
  50. package/test-utils/dom/side-navigation/index.js.map +1 -1
  51. package/test-utils/selectors/side-navigation/index.js +2 -2
  52. package/test-utils/selectors/side-navigation/index.js.map +1 -1
  53. package/test-utils/tsconfig.tsbuildinfo +1 -1
  54. package/app-layout/drawer.d.ts.map +0 -1
  55. package/app-layout/drawer.js.map +0 -1
  56. package/app-layout/navigation-panel.d.ts +0 -21
  57. package/app-layout/navigation-panel.d.ts.map +0 -1
  58. package/app-layout/navigation-panel.js +0 -16
  59. package/app-layout/navigation-panel.js.map +0 -1
  60. package/app-layout/tools-and-split-panel.d.ts +0 -23
  61. package/app-layout/tools-and-split-panel.d.ts.map +0 -1
  62. package/app-layout/tools-and-split-panel.js +0 -20
  63. package/app-layout/tools-and-split-panel.js.map +0 -1
@@ -90,7 +90,7 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
90
90
  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
91
91
  SPDX-License-Identifier: Apache-2.0
92
92
  */
93
- .awsui_root_l0dv0_1vgoe_93:not(#\9) {
93
+ .awsui_root_l0dv0_1babf_93:not(#\9) {
94
94
  /* stylelint-disable-next-line plugin/no-unsupported-browser-features */
95
95
  border-collapse: separate;
96
96
  border-spacing: 0;
@@ -132,7 +132,7 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
132
132
  word-break: break-word;
133
133
  }
134
134
 
135
- .awsui_header_l0dv0_1vgoe_109:not(#\9) {
135
+ .awsui_header_l0dv0_1babf_109:not(#\9) {
136
136
  font-size: var(--font-panel-header-size-0vdgjc, 20px);
137
137
  line-height: var(--font-panel-header-line-height-x2226j, 24px);
138
138
  font-weight: var(--font-heading-l-weight-xm7ks9, 800);
@@ -143,7 +143,7 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
143
143
  padding-right: calc(var(--space-scaled-xxl-pfgv96, 32px) + var(--space-xl-a39hup, 24px));
144
144
  }
145
145
 
146
- .awsui_header-link_l0dv0_1vgoe_120:not(#\9) {
146
+ .awsui_header-link_l0dv0_1babf_120:not(#\9) {
147
147
  font-size: var(--font-panel-header-size-0vdgjc, 20px);
148
148
  line-height: var(--font-panel-header-line-height-x2226j, 24px);
149
149
  font-weight: var(--font-heading-l-weight-xm7ks9, 800);
@@ -153,71 +153,73 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
153
153
  min-height: var(--font-panel-header-line-height-x2226j, 24px);
154
154
  display: flex;
155
155
  }
156
- .awsui_header-link--has-logo_l0dv0_1vgoe_130 > .awsui_header-link-text_l0dv0_1vgoe_130:not(#\9) {
156
+ .awsui_header-link--has-logo_l0dv0_1babf_130 > .awsui_header-link-text_l0dv0_1babf_130:not(#\9) {
157
157
  font-weight: 400;
158
158
  }
159
159
 
160
- .awsui_header-logo_l0dv0_1vgoe_134:not(#\9) {
160
+ .awsui_header-logo_l0dv0_1babf_134:not(#\9) {
161
161
  margin-right: var(--space-s-hv8c1d, 12px);
162
162
  margin-top: var(--space-xxxs-k2w98v, 2px);
163
163
  max-width: calc(1.25 * var(--size-icon-big-cu55wt, 32px));
164
164
  align-self: flex-start;
165
165
  }
166
- .awsui_header-logo--stretched_l0dv0_1vgoe_140:not(#\9) {
166
+ .awsui_header-logo--stretched_l0dv0_1babf_140:not(#\9) {
167
167
  max-width: 100%;
168
168
  margin-right: 0;
169
169
  }
170
170
 
171
- .awsui_list-container_l0dv0_1vgoe_145:not(#\9) {
171
+ .awsui_list-container_l0dv0_1babf_145:not(#\9) {
172
172
  margin-top: var(--space-scaled-l-t03y3z, 20px);
173
173
  }
174
174
 
175
- .awsui_list_l0dv0_1vgoe_145:not(#\9) {
175
+ .awsui_list_l0dv0_1babf_145:not(#\9) {
176
176
  margin: 0;
177
177
  padding: 0;
178
178
  padding-left: var(--space-l-4vl6xu, 20px);
179
179
  }
180
180
 
181
- .awsui_list-variant-root_l0dv0_1vgoe_155:not(#\9) {
181
+ .awsui_list-variant-root_l0dv0_1babf_155:not(#\9) {
182
182
  margin: 0;
183
- margin-bottom: var(--space-scaled-xxxl-ffokcj, 40px);
184
183
  padding: 0 var(--space-panel-side-right-kev4k9, 24px) 0 var(--space-panel-nav-left-o5fvw3, 28px);
185
184
  }
185
+ .awsui_list-variant-root--last_l0dv0_1babf_159:not(#\9) {
186
+ margin-bottom: var(--space-scaled-xxxl-ffokcj, 40px);
187
+ }
186
188
 
187
- .awsui_list-variant-expandable-link-group_l0dv0_1vgoe_161:not(#\9) {
189
+ .awsui_list-variant-expandable-link-group_l0dv0_1babf_163:not(#\9) {
188
190
  padding-left: var(--space-xxxl-bo9z7f, 40px);
189
191
  }
190
192
 
191
- .awsui_list-item_l0dv0_1vgoe_165:not(#\9) {
193
+ .awsui_list-item_l0dv0_1babf_167:not(#\9) {
192
194
  margin: var(--space-scaled-xs-6859qs, 8px) 0;
193
195
  padding: 0;
194
196
  list-style: none;
195
197
  }
196
198
 
197
- .awsui_section_l0dv0_1vgoe_171:not(#\9),
198
- .awsui_expandable-link-group_l0dv0_1vgoe_172:not(#\9) {
199
+ .awsui_section_l0dv0_1babf_173:not(#\9),
200
+ .awsui_expandable-link-group_l0dv0_1babf_174:not(#\9) {
199
201
  margin-left: calc(-1 * var(--space-l-4vl6xu, 20px));
200
202
  }
201
- .awsui_section--no-ident_l0dv0_1vgoe_175:not(#\9),
202
- .awsui_expandable-link-group--no-ident_l0dv0_1vgoe_176:not(#\9) {
203
+ .awsui_section--no-ident_l0dv0_1babf_177:not(#\9),
204
+ .awsui_expandable-link-group--no-ident_l0dv0_1babf_178:not(#\9) {
203
205
  margin-left: 0;
204
206
  }
205
207
 
206
- .awsui_section_l0dv0_1vgoe_171:not(#\9) {
208
+ .awsui_section_l0dv0_1babf_173:not(#\9) {
207
209
  margin-top: calc(var(--space-scaled-2x-l-yejodm, 20px) - var(--border-divider-section-width-4wm2it, 2px));
208
210
  margin-bottom: calc(var(--space-scaled-2x-l-yejodm, 20px) - var(--border-divider-section-width-4wm2it, 2px));
209
211
  /* stylelint-disable-next-line selector-max-type */
210
212
  }
211
- .awsui_section_l0dv0_1vgoe_171 > div:not(#\9) {
213
+ .awsui_section_l0dv0_1babf_173 > div:not(#\9) {
212
214
  padding: 0;
213
215
  }
214
216
 
215
- .awsui_list-variant-section-group_l0dv0_1vgoe_189:not(#\9) {
217
+ .awsui_list-variant-section-group_l0dv0_1babf_191:not(#\9) {
216
218
  margin: 0;
217
219
  padding: 0;
218
220
  }
219
221
 
220
- .awsui_section-group_l0dv0_1vgoe_194:not(#\9) {
222
+ .awsui_section-group_l0dv0_1babf_196:not(#\9) {
221
223
  font-size: var(--font-heading-m-size-6e3jmg, 20px);
222
224
  line-height: var(--font-heading-m-line-height-u3t54f, 24px);
223
225
  letter-spacing: var(--font-heading-m-letter-spacing-r00pg3, -0.01em);
@@ -227,11 +229,11 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
227
229
  margin: 0;
228
230
  }
229
231
 
230
- .awsui_section-group-title_l0dv0_1vgoe_204:not(#\9) {
232
+ .awsui_section-group-title_l0dv0_1babf_206:not(#\9) {
231
233
  /* used in test-utils */
232
234
  }
233
235
 
234
- .awsui_link_l0dv0_1vgoe_208:not(#\9) {
236
+ .awsui_link_l0dv0_1babf_210:not(#\9) {
235
237
  font-size: var(--font-body-m-size-sregvd, 14px);
236
238
  line-height: var(--font-body-m-line-height-i7xxvv, 22px);
237
239
  color: var(--color-text-body-secondary-fdstdf, #414d5c);
@@ -240,30 +242,30 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
240
242
  -moz-osx-font-smoothing: auto;
241
243
  }
242
244
 
243
- .awsui_link-active_l0dv0_1vgoe_217:not(#\9) {
245
+ .awsui_link-active_l0dv0_1babf_219:not(#\9) {
244
246
  font-weight: var(--font-wayfinding-link-active-weight-l3fid7, 800);
245
247
  -webkit-font-smoothing: var(--font-smoothing-webkit-vu3hx4, antialiased);
246
248
  -moz-osx-font-smoothing: var(--font-smoothing-moz-osx-nkh1jb, grayscale);
247
249
  color: var(--color-text-accent-s1eqko, #0972d3);
248
250
  }
249
251
 
250
- .awsui_header-link_l0dv0_1vgoe_120:not(#\9),
251
- .awsui_link_l0dv0_1vgoe_208:not(#\9) {
252
+ .awsui_header-link_l0dv0_1babf_120:not(#\9),
253
+ .awsui_link_l0dv0_1babf_210:not(#\9) {
252
254
  text-decoration: none;
253
255
  }
254
- .awsui_header-link_l0dv0_1vgoe_120:not(#\9):hover,
255
- .awsui_link_l0dv0_1vgoe_208:not(#\9):hover {
256
+ .awsui_header-link_l0dv0_1babf_120:not(#\9):hover,
257
+ .awsui_link_l0dv0_1babf_210:not(#\9):hover {
256
258
  color: var(--color-text-accent-s1eqko, #0972d3);
257
259
  }
258
- .awsui_header-link_l0dv0_1vgoe_120:not(#\9):focus,
259
- .awsui_link_l0dv0_1vgoe_208:not(#\9):focus {
260
+ .awsui_header-link_l0dv0_1babf_120:not(#\9):focus,
261
+ .awsui_link_l0dv0_1babf_210:not(#\9):focus {
260
262
  outline: none;
261
263
  }
262
- .awsui_header-link_l0dv0_1vgoe_120:not(#\9):hover, .awsui_header-link_l0dv0_1vgoe_120:not(#\9):focus, .awsui_link_l0dv0_1vgoe_208:not(#\9):hover, .awsui_link_l0dv0_1vgoe_208:not(#\9):focus {
264
+ .awsui_header-link_l0dv0_1babf_120:not(#\9):hover, .awsui_header-link_l0dv0_1babf_120:not(#\9):focus, .awsui_link_l0dv0_1babf_210:not(#\9):hover, .awsui_link_l0dv0_1babf_210:not(#\9):focus {
263
265
  text-decoration: none;
264
266
  }
265
- .awsui_header-link_l0dv0_1vgoe_120[data-awsui-focus-visible=true]:not(#\9):focus,
266
- .awsui_link_l0dv0_1vgoe_208[data-awsui-focus-visible=true]:not(#\9):focus {
267
+ .awsui_header-link_l0dv0_1babf_120[data-awsui-focus-visible=true]:not(#\9):focus,
268
+ .awsui_link_l0dv0_1babf_210[data-awsui-focus-visible=true]:not(#\9):focus {
267
269
  outline: thin dotted;
268
270
  outline: var(--border-link-focus-ring-outline-k2wccv, 0);
269
271
  outline-offset: 2px;
@@ -272,23 +274,23 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
272
274
  box-shadow: 0 0 0 var(--border-link-focus-ring-shadow-spread-nv4ahb, 2px) var(--color-border-item-focused-ap3b6s, #0972d3);
273
275
  }
274
276
 
275
- .awsui_info_l0dv0_1vgoe_251:not(#\9) {
277
+ .awsui_info_l0dv0_1babf_253:not(#\9) {
276
278
  margin-left: var(--space-xs-rsr2qu, 8px);
277
279
  }
278
280
 
279
- .awsui_external-icon_l0dv0_1vgoe_255:not(#\9) {
281
+ .awsui_external-icon_l0dv0_1babf_257:not(#\9) {
280
282
  margin-left: var(--space-xxs-ynfts5, 4px);
281
283
  }
282
284
 
283
- .awsui_divider_l0dv0_1vgoe_259:not(#\9) {
285
+ .awsui_divider_l0dv0_1babf_261:not(#\9) {
284
286
  border: none;
285
287
  border-top: var(--border-divider-section-width-4wm2it, 2px) solid var(--color-border-divider-default-7s2wjw, #e9ebed);
286
288
  }
287
289
 
288
- .awsui_divider-default_l0dv0_1vgoe_264:not(#\9) {
290
+ .awsui_divider-default_l0dv0_1babf_266:not(#\9) {
289
291
  margin: var(--space-scaled-2x-xl-x30c9w, 24px) calc(-1 * var(--space-s-hv8c1d, 12px));
290
292
  }
291
293
 
292
- .awsui_divider-header_l0dv0_1vgoe_268:not(#\9) {
294
+ .awsui_divider-header_l0dv0_1babf_270:not(#\9) {
293
295
  margin-top: 0;
294
296
  }
@@ -2,31 +2,32 @@
2
2
  // es-module interop with Babel and Typescript
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  module.exports.default = {
5
- "root": "awsui_root_l0dv0_1vgoe_93",
6
- "header": "awsui_header_l0dv0_1vgoe_109",
7
- "header-link": "awsui_header-link_l0dv0_1vgoe_120",
8
- "header-link--has-logo": "awsui_header-link--has-logo_l0dv0_1vgoe_130",
9
- "header-link-text": "awsui_header-link-text_l0dv0_1vgoe_130",
10
- "header-logo": "awsui_header-logo_l0dv0_1vgoe_134",
11
- "header-logo--stretched": "awsui_header-logo--stretched_l0dv0_1vgoe_140",
12
- "list-container": "awsui_list-container_l0dv0_1vgoe_145",
13
- "list": "awsui_list_l0dv0_1vgoe_145",
14
- "list-variant-root": "awsui_list-variant-root_l0dv0_1vgoe_155",
15
- "list-variant-expandable-link-group": "awsui_list-variant-expandable-link-group_l0dv0_1vgoe_161",
16
- "list-item": "awsui_list-item_l0dv0_1vgoe_165",
17
- "section": "awsui_section_l0dv0_1vgoe_171",
18
- "expandable-link-group": "awsui_expandable-link-group_l0dv0_1vgoe_172",
19
- "section--no-ident": "awsui_section--no-ident_l0dv0_1vgoe_175",
20
- "expandable-link-group--no-ident": "awsui_expandable-link-group--no-ident_l0dv0_1vgoe_176",
21
- "list-variant-section-group": "awsui_list-variant-section-group_l0dv0_1vgoe_189",
22
- "section-group": "awsui_section-group_l0dv0_1vgoe_194",
23
- "section-group-title": "awsui_section-group-title_l0dv0_1vgoe_204",
24
- "link": "awsui_link_l0dv0_1vgoe_208",
25
- "link-active": "awsui_link-active_l0dv0_1vgoe_217",
26
- "info": "awsui_info_l0dv0_1vgoe_251",
27
- "external-icon": "awsui_external-icon_l0dv0_1vgoe_255",
28
- "divider": "awsui_divider_l0dv0_1vgoe_259",
29
- "divider-default": "awsui_divider-default_l0dv0_1vgoe_264",
30
- "divider-header": "awsui_divider-header_l0dv0_1vgoe_268"
5
+ "root": "awsui_root_l0dv0_1babf_93",
6
+ "header": "awsui_header_l0dv0_1babf_109",
7
+ "header-link": "awsui_header-link_l0dv0_1babf_120",
8
+ "header-link--has-logo": "awsui_header-link--has-logo_l0dv0_1babf_130",
9
+ "header-link-text": "awsui_header-link-text_l0dv0_1babf_130",
10
+ "header-logo": "awsui_header-logo_l0dv0_1babf_134",
11
+ "header-logo--stretched": "awsui_header-logo--stretched_l0dv0_1babf_140",
12
+ "list-container": "awsui_list-container_l0dv0_1babf_145",
13
+ "list": "awsui_list_l0dv0_1babf_145",
14
+ "list-variant-root": "awsui_list-variant-root_l0dv0_1babf_155",
15
+ "list-variant-root--last": "awsui_list-variant-root--last_l0dv0_1babf_159",
16
+ "list-variant-expandable-link-group": "awsui_list-variant-expandable-link-group_l0dv0_1babf_163",
17
+ "list-item": "awsui_list-item_l0dv0_1babf_167",
18
+ "section": "awsui_section_l0dv0_1babf_173",
19
+ "expandable-link-group": "awsui_expandable-link-group_l0dv0_1babf_174",
20
+ "section--no-ident": "awsui_section--no-ident_l0dv0_1babf_177",
21
+ "expandable-link-group--no-ident": "awsui_expandable-link-group--no-ident_l0dv0_1babf_178",
22
+ "list-variant-section-group": "awsui_list-variant-section-group_l0dv0_1babf_191",
23
+ "section-group": "awsui_section-group_l0dv0_1babf_196",
24
+ "section-group-title": "awsui_section-group-title_l0dv0_1babf_206",
25
+ "link": "awsui_link_l0dv0_1babf_210",
26
+ "link-active": "awsui_link-active_l0dv0_1babf_219",
27
+ "info": "awsui_info_l0dv0_1babf_253",
28
+ "external-icon": "awsui_external-icon_l0dv0_1babf_257",
29
+ "divider": "awsui_divider_l0dv0_1babf_261",
30
+ "divider-default": "awsui_divider-default_l0dv0_1babf_266",
31
+ "divider-header": "awsui_divider-header_l0dv0_1babf_270"
31
32
  };
32
33
 
@@ -8,7 +8,7 @@ import useFocusVisible from '../internal/hooks/focus-visible';
8
8
  import { useContainerQuery } from '../internal/hooks/container-queries';
9
9
  import { KeyCode } from '../internal/keycode';
10
10
  import { onPaginationClick, hasHorizontalOverflow, hasLeftOverflow, hasRightOverflow, scrollIntoView, } from './scroll-utils';
11
- import { isPlainLeftClick } from '../internal/events';
11
+ import { hasModifierKeys, isPlainLeftClick } from '../internal/events';
12
12
  import { useVisualRefresh } from '../internal/hooks/use-visual-mode';
13
13
  export function TabHeaderBar({ onChange, activeTabId, tabs, variant, idNamespace, ariaLabel, ariaLabelledby, i18nStrings, }) {
14
14
  const focusVisible = useFocusVisible();
@@ -104,7 +104,7 @@ export function TabHeaderBar({ onChange, activeTabId, tabs, variant, idNamespace
104
104
  const handleKeyDown = function (event) {
105
105
  const { keyCode } = event;
106
106
  const specialKeys = [KeyCode.right, KeyCode.left, KeyCode.end, KeyCode.home, KeyCode.pageUp, KeyCode.pageDown];
107
- if (specialKeys.indexOf(keyCode) === -1) {
107
+ if (hasModifierKeys(event) || specialKeys.indexOf(keyCode) === -1) {
108
108
  return;
109
109
  }
110
110
  event.preventDefault();
@@ -1 +1 @@
1
- {"version":3,"file":"tab-header-bar.js","sourceRoot":"","sources":["../../../src/tabs/tab-header-bar.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useRef, useState, useEffect } from 'react';\nimport { TabsProps } from './interfaces';\nimport clsx from 'clsx';\nimport styles from './styles.css.js';\nimport { InternalButton } from '../button/internal';\nimport useFocusVisible from '../internal/hooks/focus-visible';\nimport { useContainerQuery } from '../internal/hooks/container-queries';\nimport { KeyCode } from '../internal/keycode';\nimport {\n onPaginationClick,\n hasHorizontalOverflow,\n hasLeftOverflow,\n hasRightOverflow,\n scrollIntoView,\n} from './scroll-utils';\nimport { isPlainLeftClick } from '../internal/events';\nimport { useVisualRefresh } from '../internal/hooks/use-visual-mode';\n\nexport interface TabHeaderBarProps {\n onChange: (changeDetail: TabsProps.ChangeDetail) => void;\n activeTabId: TabsProps['activeTabId'];\n tabs: TabsProps['tabs'];\n variant: TabsProps['variant'];\n idNamespace: string;\n ariaLabel?: string;\n ariaLabelledby?: string;\n i18nStrings?: TabsProps.I18nStrings;\n}\n\nexport function TabHeaderBar({\n onChange,\n activeTabId,\n tabs,\n variant,\n idNamespace,\n ariaLabel,\n ariaLabelledby,\n i18nStrings,\n}: TabHeaderBarProps) {\n const focusVisible = useFocusVisible();\n\n const headerBarRef = useRef<HTMLUListElement>(null);\n const activeTabHeaderRef = useRef<HTMLAnchorElement>(null);\n const leftOverflowButton = useRef<HTMLElement>(null);\n\n const isVisualRefresh = useVisualRefresh();\n\n const [widthChange, containerRef] = useContainerQuery<number>(rect => rect.width);\n const tabRefs = useRef<Map<string, HTMLElement>>(new Map());\n const [horizontalOverflow, setHorizontalOverflow] = useState(false);\n const [leftOverflow, setLeftOverflow] = useState(false);\n const [rightOverflow, setRightOverflow] = useState(false);\n\n useEffect(() => {\n if (headerBarRef.current) {\n setHorizontalOverflow(hasHorizontalOverflow(headerBarRef.current, leftOverflowButton));\n setLeftOverflow(hasLeftOverflow(headerBarRef.current));\n setRightOverflow(hasRightOverflow(headerBarRef.current));\n }\n }, [widthChange, tabs]);\n\n const scrollIntoViewIfPossible = (smooth: boolean) => {\n if (!activeTabId) {\n return;\n }\n const activeTabRef = tabRefs.current.get(activeTabId);\n if (activeTabRef && headerBarRef.current) {\n scrollIntoView(activeTabRef, headerBarRef.current, smooth);\n }\n };\n\n useEffect(() => {\n // Delay scrollIntoView as the position is depending on parent elements\n // (effects are called inside-out in the component tree).\n // Wait one frame to allow parents to complete it's calculation.\n requestAnimationFrame(() => {\n scrollIntoViewIfPossible(false);\n });\n // Non-smooth scrolling should not be called upon activeId change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [horizontalOverflow, widthChange, tabs.length]);\n\n useEffect(() => {\n scrollIntoViewIfPossible(true);\n // Smooth scrolling should only be called upon activeId change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [activeTabId]);\n\n useEffect(() => {\n /*\n When the selected tab changes and we are currently already focused on a tab,\n move the focus to the newly selected tab.\n */\n if (headerBarRef.current?.contains(document.activeElement)) {\n if (document.activeElement !== activeTabHeaderRef.current) {\n activeTabHeaderRef.current?.focus({ preventScroll: true });\n }\n }\n }, [activeTabId]);\n\n const onScroll = () => {\n if (headerBarRef.current) {\n setLeftOverflow(hasLeftOverflow(headerBarRef.current));\n setRightOverflow(hasRightOverflow(headerBarRef.current));\n }\n };\n\n const classes = clsx({\n [styles['tabs-header']]: true,\n [styles['tabs-header-with-divider']]: variant === 'default' || isVisualRefresh,\n });\n\n const leftButtonClasses = clsx({\n [styles['pagination-button']]: true,\n [styles['pagination-button-left']]: true,\n [styles['pagination-button-left-scrollable']]: leftOverflow,\n });\n\n const rightButtonClasses = clsx({\n [styles['pagination-button']]: true,\n [styles['pagination-button-right']]: true,\n [styles['pagination-button-right-scrollable']]: rightOverflow,\n });\n\n return (\n //converted span to div as list should not be a child of span for HTML validation\n <div className={classes} ref={containerRef}>\n {horizontalOverflow && (\n <span ref={leftOverflowButton} className={leftButtonClasses}>\n <InternalButton\n formAction=\"none\"\n variant=\"icon\"\n iconName=\"angle-left\"\n disabled={!leftOverflow}\n onClick={() => onPaginationClick(headerBarRef, -1)}\n ariaLabel={i18nStrings?.scrollLeftAriaLabel}\n />\n </span>\n )}\n <ul\n role=\"tablist\"\n className={styles['tabs-header-list']}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n ref={headerBarRef}\n onScroll={onScroll}\n >\n {tabs.map(renderTabHeader)}\n </ul>\n {horizontalOverflow && (\n <span className={rightButtonClasses}>\n <InternalButton\n formAction=\"none\"\n variant=\"icon\"\n iconName=\"angle-right\"\n disabled={!rightOverflow}\n onClick={() => onPaginationClick(headerBarRef, 1)}\n ariaLabel={i18nStrings?.scrollRightAriaLabel}\n />\n </span>\n )}\n </div>\n );\n\n function renderTabHeader(tab: TabsProps.Tab) {\n const enabledTabsWithCurrentTab = tabs.filter(tab => !tab.disabled || tab.id === activeTabId);\n\n const highlightTab = function (enabledTabIndex: number) {\n const tab = enabledTabsWithCurrentTab[enabledTabIndex];\n if (tab.id === activeTabId) {\n return;\n }\n\n onChange({ activeTabId: tab.id, activeTabHref: tab.href });\n };\n\n const handleKeyDown = function (\n event: React.KeyboardEvent<HTMLAnchorElement> | React.KeyboardEvent<HTMLButtonElement>\n ) {\n const { keyCode } = event;\n const specialKeys = [KeyCode.right, KeyCode.left, KeyCode.end, KeyCode.home, KeyCode.pageUp, KeyCode.pageDown];\n if (specialKeys.indexOf(keyCode) === -1) {\n return;\n }\n event.preventDefault();\n const activeIndex = enabledTabsWithCurrentTab.indexOf(tab);\n switch (keyCode) {\n case KeyCode.right:\n if (activeIndex + 1 === enabledTabsWithCurrentTab.length) {\n highlightTab(0);\n } else {\n highlightTab(activeIndex + 1);\n }\n return;\n case KeyCode.left:\n if (activeIndex === 0) {\n highlightTab(enabledTabsWithCurrentTab.length - 1);\n } else {\n highlightTab(activeIndex - 1);\n }\n return;\n case KeyCode.end:\n highlightTab(enabledTabsWithCurrentTab.length - 1);\n return;\n case KeyCode.home:\n highlightTab(0);\n return;\n case KeyCode.pageDown:\n if (rightOverflow) {\n onPaginationClick(headerBarRef, 1);\n }\n return;\n case KeyCode.pageUp:\n if (leftOverflow) {\n onPaginationClick(headerBarRef, -1);\n }\n return;\n }\n };\n\n const clickTab = (event: React.MouseEvent) => {\n if (tab.disabled) {\n event.preventDefault();\n return;\n }\n\n // if the primary mouse button is clicked with a modifier key, the browser will handle opening a new tab\n const specialKey = !isPlainLeftClick(event);\n if (specialKey && tab.href) {\n return;\n }\n\n event.preventDefault();\n // for browsers that do not focus buttons on button click\n if (!tab.href) {\n const clickedTabRef = tabRefs.current.get(tab.id);\n if (clickedTabRef) {\n const childElement = clickedTabRef.firstChild as HTMLButtonElement;\n if (childElement && childElement !== document.activeElement) {\n childElement.focus({ preventScroll: true });\n }\n }\n }\n\n if (tab.id === activeTabId) {\n return;\n }\n\n onChange({ activeTabId: tab.id, activeTabHref: tab.href });\n };\n\n const classes = clsx({\n [styles['tabs-tab-link']]: true,\n [styles.refresh]: isVisualRefresh,\n [styles['tabs-tab-active']]: activeTabId === tab.id && !tab.disabled,\n [styles['tabs-tab-disabled']]: tab.disabled,\n });\n\n const commonProps: (JSX.IntrinsicElements['a'] | JSX.IntrinsicElements['button']) & { 'data-testid': string } = {\n className: classes,\n ...focusVisible,\n role: 'tab',\n 'aria-selected': tab.id === activeTabId,\n 'aria-controls': `${idNamespace}-${tab.id}-panel`,\n 'data-testid': tab.id,\n id: getTabElementId({ namespace: idNamespace, tabId: tab.id }),\n children: <span className={styles['tabs-tab-label']}>{tab.label}</span>,\n };\n\n if (tab.disabled) {\n commonProps['aria-disabled'] = 'true';\n } else {\n commonProps.onClick = clickTab;\n }\n\n if (tab.id === activeTabId) {\n commonProps.ref = activeTabHeaderRef;\n commonProps.tabIndex = 0;\n commonProps.onKeyDown = (\n event: React.KeyboardEvent<HTMLAnchorElement> | React.KeyboardEvent<HTMLButtonElement>\n ) => handleKeyDown(event);\n } else {\n commonProps.tabIndex = -1;\n }\n\n let trigger = null;\n if (tab.href) {\n const anchorProps = commonProps as JSX.IntrinsicElements['a'];\n anchorProps.href = tab.href;\n trigger = <a {...anchorProps} />;\n } else {\n const buttonProps = commonProps as JSX.IntrinsicElements['button'];\n buttonProps.type = 'button';\n if (tab.disabled) {\n buttonProps.disabled = true;\n }\n trigger = <button {...buttonProps} />;\n }\n\n return (\n <li\n ref={element => tabRefs.current.set(tab.id, element as HTMLElement)}\n className={styles['tabs-tab']}\n role=\"presentation\"\n key={tab.id}\n >\n {trigger}\n </li>\n );\n }\n}\n\nexport function getTabElementId({ namespace, tabId }: { namespace: string; tabId: string }) {\n return namespace + '-' + tabId;\n}\n"]}
1
+ {"version":3,"file":"tab-header-bar.js","sourceRoot":"","sources":["../../../src/tabs/tab-header-bar.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useRef, useState, useEffect } from 'react';\nimport { TabsProps } from './interfaces';\nimport clsx from 'clsx';\nimport styles from './styles.css.js';\nimport { InternalButton } from '../button/internal';\nimport useFocusVisible from '../internal/hooks/focus-visible';\nimport { useContainerQuery } from '../internal/hooks/container-queries';\nimport { KeyCode } from '../internal/keycode';\nimport {\n onPaginationClick,\n hasHorizontalOverflow,\n hasLeftOverflow,\n hasRightOverflow,\n scrollIntoView,\n} from './scroll-utils';\nimport { hasModifierKeys, isPlainLeftClick } from '../internal/events';\nimport { useVisualRefresh } from '../internal/hooks/use-visual-mode';\n\nexport interface TabHeaderBarProps {\n onChange: (changeDetail: TabsProps.ChangeDetail) => void;\n activeTabId: TabsProps['activeTabId'];\n tabs: TabsProps['tabs'];\n variant: TabsProps['variant'];\n idNamespace: string;\n ariaLabel?: string;\n ariaLabelledby?: string;\n i18nStrings?: TabsProps.I18nStrings;\n}\n\nexport function TabHeaderBar({\n onChange,\n activeTabId,\n tabs,\n variant,\n idNamespace,\n ariaLabel,\n ariaLabelledby,\n i18nStrings,\n}: TabHeaderBarProps) {\n const focusVisible = useFocusVisible();\n\n const headerBarRef = useRef<HTMLUListElement>(null);\n const activeTabHeaderRef = useRef<HTMLAnchorElement>(null);\n const leftOverflowButton = useRef<HTMLElement>(null);\n\n const isVisualRefresh = useVisualRefresh();\n\n const [widthChange, containerRef] = useContainerQuery<number>(rect => rect.width);\n const tabRefs = useRef<Map<string, HTMLElement>>(new Map());\n const [horizontalOverflow, setHorizontalOverflow] = useState(false);\n const [leftOverflow, setLeftOverflow] = useState(false);\n const [rightOverflow, setRightOverflow] = useState(false);\n\n useEffect(() => {\n if (headerBarRef.current) {\n setHorizontalOverflow(hasHorizontalOverflow(headerBarRef.current, leftOverflowButton));\n setLeftOverflow(hasLeftOverflow(headerBarRef.current));\n setRightOverflow(hasRightOverflow(headerBarRef.current));\n }\n }, [widthChange, tabs]);\n\n const scrollIntoViewIfPossible = (smooth: boolean) => {\n if (!activeTabId) {\n return;\n }\n const activeTabRef = tabRefs.current.get(activeTabId);\n if (activeTabRef && headerBarRef.current) {\n scrollIntoView(activeTabRef, headerBarRef.current, smooth);\n }\n };\n\n useEffect(() => {\n // Delay scrollIntoView as the position is depending on parent elements\n // (effects are called inside-out in the component tree).\n // Wait one frame to allow parents to complete it's calculation.\n requestAnimationFrame(() => {\n scrollIntoViewIfPossible(false);\n });\n // Non-smooth scrolling should not be called upon activeId change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [horizontalOverflow, widthChange, tabs.length]);\n\n useEffect(() => {\n scrollIntoViewIfPossible(true);\n // Smooth scrolling should only be called upon activeId change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [activeTabId]);\n\n useEffect(() => {\n /*\n When the selected tab changes and we are currently already focused on a tab,\n move the focus to the newly selected tab.\n */\n if (headerBarRef.current?.contains(document.activeElement)) {\n if (document.activeElement !== activeTabHeaderRef.current) {\n activeTabHeaderRef.current?.focus({ preventScroll: true });\n }\n }\n }, [activeTabId]);\n\n const onScroll = () => {\n if (headerBarRef.current) {\n setLeftOverflow(hasLeftOverflow(headerBarRef.current));\n setRightOverflow(hasRightOverflow(headerBarRef.current));\n }\n };\n\n const classes = clsx({\n [styles['tabs-header']]: true,\n [styles['tabs-header-with-divider']]: variant === 'default' || isVisualRefresh,\n });\n\n const leftButtonClasses = clsx({\n [styles['pagination-button']]: true,\n [styles['pagination-button-left']]: true,\n [styles['pagination-button-left-scrollable']]: leftOverflow,\n });\n\n const rightButtonClasses = clsx({\n [styles['pagination-button']]: true,\n [styles['pagination-button-right']]: true,\n [styles['pagination-button-right-scrollable']]: rightOverflow,\n });\n\n return (\n //converted span to div as list should not be a child of span for HTML validation\n <div className={classes} ref={containerRef}>\n {horizontalOverflow && (\n <span ref={leftOverflowButton} className={leftButtonClasses}>\n <InternalButton\n formAction=\"none\"\n variant=\"icon\"\n iconName=\"angle-left\"\n disabled={!leftOverflow}\n onClick={() => onPaginationClick(headerBarRef, -1)}\n ariaLabel={i18nStrings?.scrollLeftAriaLabel}\n />\n </span>\n )}\n <ul\n role=\"tablist\"\n className={styles['tabs-header-list']}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n ref={headerBarRef}\n onScroll={onScroll}\n >\n {tabs.map(renderTabHeader)}\n </ul>\n {horizontalOverflow && (\n <span className={rightButtonClasses}>\n <InternalButton\n formAction=\"none\"\n variant=\"icon\"\n iconName=\"angle-right\"\n disabled={!rightOverflow}\n onClick={() => onPaginationClick(headerBarRef, 1)}\n ariaLabel={i18nStrings?.scrollRightAriaLabel}\n />\n </span>\n )}\n </div>\n );\n\n function renderTabHeader(tab: TabsProps.Tab) {\n const enabledTabsWithCurrentTab = tabs.filter(tab => !tab.disabled || tab.id === activeTabId);\n\n const highlightTab = function (enabledTabIndex: number) {\n const tab = enabledTabsWithCurrentTab[enabledTabIndex];\n if (tab.id === activeTabId) {\n return;\n }\n\n onChange({ activeTabId: tab.id, activeTabHref: tab.href });\n };\n\n const handleKeyDown = function (\n event: React.KeyboardEvent<HTMLAnchorElement> | React.KeyboardEvent<HTMLButtonElement>\n ) {\n const { keyCode } = event;\n const specialKeys = [KeyCode.right, KeyCode.left, KeyCode.end, KeyCode.home, KeyCode.pageUp, KeyCode.pageDown];\n if (hasModifierKeys(event) || specialKeys.indexOf(keyCode) === -1) {\n return;\n }\n event.preventDefault();\n const activeIndex = enabledTabsWithCurrentTab.indexOf(tab);\n switch (keyCode) {\n case KeyCode.right:\n if (activeIndex + 1 === enabledTabsWithCurrentTab.length) {\n highlightTab(0);\n } else {\n highlightTab(activeIndex + 1);\n }\n return;\n case KeyCode.left:\n if (activeIndex === 0) {\n highlightTab(enabledTabsWithCurrentTab.length - 1);\n } else {\n highlightTab(activeIndex - 1);\n }\n return;\n case KeyCode.end:\n highlightTab(enabledTabsWithCurrentTab.length - 1);\n return;\n case KeyCode.home:\n highlightTab(0);\n return;\n case KeyCode.pageDown:\n if (rightOverflow) {\n onPaginationClick(headerBarRef, 1);\n }\n return;\n case KeyCode.pageUp:\n if (leftOverflow) {\n onPaginationClick(headerBarRef, -1);\n }\n return;\n }\n };\n\n const clickTab = (event: React.MouseEvent) => {\n if (tab.disabled) {\n event.preventDefault();\n return;\n }\n\n // if the primary mouse button is clicked with a modifier key, the browser will handle opening a new tab\n const specialKey = !isPlainLeftClick(event);\n if (specialKey && tab.href) {\n return;\n }\n\n event.preventDefault();\n // for browsers that do not focus buttons on button click\n if (!tab.href) {\n const clickedTabRef = tabRefs.current.get(tab.id);\n if (clickedTabRef) {\n const childElement = clickedTabRef.firstChild as HTMLButtonElement;\n if (childElement && childElement !== document.activeElement) {\n childElement.focus({ preventScroll: true });\n }\n }\n }\n\n if (tab.id === activeTabId) {\n return;\n }\n\n onChange({ activeTabId: tab.id, activeTabHref: tab.href });\n };\n\n const classes = clsx({\n [styles['tabs-tab-link']]: true,\n [styles.refresh]: isVisualRefresh,\n [styles['tabs-tab-active']]: activeTabId === tab.id && !tab.disabled,\n [styles['tabs-tab-disabled']]: tab.disabled,\n });\n\n const commonProps: (JSX.IntrinsicElements['a'] | JSX.IntrinsicElements['button']) & { 'data-testid': string } = {\n className: classes,\n ...focusVisible,\n role: 'tab',\n 'aria-selected': tab.id === activeTabId,\n 'aria-controls': `${idNamespace}-${tab.id}-panel`,\n 'data-testid': tab.id,\n id: getTabElementId({ namespace: idNamespace, tabId: tab.id }),\n children: <span className={styles['tabs-tab-label']}>{tab.label}</span>,\n };\n\n if (tab.disabled) {\n commonProps['aria-disabled'] = 'true';\n } else {\n commonProps.onClick = clickTab;\n }\n\n if (tab.id === activeTabId) {\n commonProps.ref = activeTabHeaderRef;\n commonProps.tabIndex = 0;\n commonProps.onKeyDown = (\n event: React.KeyboardEvent<HTMLAnchorElement> | React.KeyboardEvent<HTMLButtonElement>\n ) => handleKeyDown(event);\n } else {\n commonProps.tabIndex = -1;\n }\n\n let trigger = null;\n if (tab.href) {\n const anchorProps = commonProps as JSX.IntrinsicElements['a'];\n anchorProps.href = tab.href;\n trigger = <a {...anchorProps} />;\n } else {\n const buttonProps = commonProps as JSX.IntrinsicElements['button'];\n buttonProps.type = 'button';\n if (tab.disabled) {\n buttonProps.disabled = true;\n }\n trigger = <button {...buttonProps} />;\n }\n\n return (\n <li\n ref={element => tabRefs.current.set(tab.id, element as HTMLElement)}\n className={styles['tabs-tab']}\n role=\"presentation\"\n key={tab.id}\n >\n {trigger}\n </li>\n );\n }\n}\n\nexport function getTabElementId({ namespace, tabId }: { namespace: string; tabId: string }) {\n return namespace + '-' + tabId;\n}\n"]}
@@ -20,7 +20,7 @@ class SideNavigationWrapper extends dom_1.ComponentWrapper {
20
20
  return this.findByClassName(styles_selectors_js_1.default['link-active']);
21
21
  }
22
22
  findItemByIndex(index) {
23
- return this.findComponent(`.${styles_selectors_js_1.default['list-variant-root']} > li:nth-child(${index})`, SideNavigationItemWrapper);
23
+ return this.findComponent(`.${styles_selectors_js_1.default['list-variant-root']} > [data-itemid="item-${index}"]`, SideNavigationItemWrapper);
24
24
  }
25
25
  }
26
26
  exports.default = SideNavigationWrapper;
@@ -49,7 +49,7 @@ class SideNavigationItemWrapper extends dom_1.ElementWrapper {
49
49
  return (_b = (_a = this.findSection()) === null || _a === void 0 ? void 0 : _a.findHeader()) !== null && _b !== void 0 ? _b : null;
50
50
  }
51
51
  findItemByIndex(index) {
52
- return this.findComponent(`li:nth-child(${index})`, SideNavigationItemWrapper);
52
+ return this.findComponent(`[data-itemid="item-${index}"]`, SideNavigationItemWrapper);
53
53
  }
54
54
  findItems() {
55
55
  return this.findAll('li').map(wrapper => new SideNavigationItemWrapper(wrapper.getElement()));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/test-utils/dom/side-navigation/index.ts"],"names":[],"mappings":";;;AAAA,qEAAqE;AACrE,sCAAsC;AACtC,gEAA0F;AAC1F,8DAA6D;AAC7D,sFAAkE;AAElE,MAAqB,qBAAsB,SAAQ,sBAAgB;IAGjE,UAAU;QACR,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,aAAa,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,cAAc,CAAC,IAAY;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,6BAAM,CAAC,IAAI,UAAU,IAAI,IAAI,CAAC,CAAC;IACtD,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,aAAa,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,eAAe,CAAC,KAAa;QAC3B,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,6BAAM,CAAC,mBAAmB,CAAC,mBAAmB,KAAK,GAAG,EAAE,yBAAyB,CAAC,CAAC;IACnH,CAAC;;AArBH,wCAsBC;AArBQ,kCAAY,GAAW,6BAAM,CAAC,IAAI,CAAC;AAuB5C,MAAa,yBAA0B,SAAQ,oBAAc;IAC3D,WAAW;QACT,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,6BAAM,CAAC,OAAO,EAAE,EAAE,4BAAwB,CAAC,CAAC;IAC5E,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,eAAe,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,qBAAqB;QACnB,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,uBAAuB;QACrB,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,6BAAM,CAAC,uBAAuB,CAAC,EAAE,EAAE,4BAAwB,CAAC,CAAC;IAC7F,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,gBAAgB;;QACd,OAAO,MAAA,MAAA,IAAI,CAAC,WAAW,EAAE,0CAAE,UAAU,EAAE,mCAAI,IAAI,CAAC;IAClD,CAAC;IAED,eAAe,CAAC,KAAa;QAC3B,OAAO,IAAI,CAAC,aAAa,CAAC,gBAAgB,KAAK,GAAG,EAAE,yBAAyB,CAAC,CAAC;IACjF,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,yBAAyB,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAChG,CAAC;CACF;AApCD,8DAoCC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/test-utils/dom/side-navigation/index.ts"],"names":[],"mappings":";;;AAAA,qEAAqE;AACrE,sCAAsC;AACtC,gEAA0F;AAC1F,8DAA6D;AAC7D,sFAAkE;AAElE,MAAqB,qBAAsB,SAAQ,sBAAgB;IAGjE,UAAU;QACR,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,aAAa,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,cAAc,CAAC,IAAY;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,6BAAM,CAAC,IAAI,UAAU,IAAI,IAAI,CAAC,CAAC;IACtD,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,aAAa,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,eAAe,CAAC,KAAa;QAC3B,OAAO,IAAI,CAAC,aAAa,CACvB,IAAI,6BAAM,CAAC,mBAAmB,CAAC,yBAAyB,KAAK,IAAI,EACjE,yBAAyB,CAC1B,CAAC;IACJ,CAAC;;AAxBH,wCAyBC;AAxBQ,kCAAY,GAAW,6BAAM,CAAC,IAAI,CAAC;AA0B5C,MAAa,yBAA0B,SAAQ,oBAAc;IAC3D,WAAW;QACT,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,6BAAM,CAAC,OAAO,EAAE,EAAE,4BAAwB,CAAC,CAAC;IAC5E,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,eAAe,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,qBAAqB;QACnB,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,uBAAuB;QACrB,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,6BAAM,CAAC,uBAAuB,CAAC,EAAE,EAAE,4BAAwB,CAAC,CAAC;IAC7F,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,gBAAgB;;QACd,OAAO,MAAA,MAAA,IAAI,CAAC,WAAW,EAAE,0CAAE,UAAU,EAAE,mCAAI,IAAI,CAAC;IAClD,CAAC;IAED,eAAe,CAAC,KAAa;QAC3B,OAAO,IAAI,CAAC,aAAa,CAAC,sBAAsB,KAAK,IAAI,EAAE,yBAAyB,CAAC,CAAC;IACxF,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,yBAAyB,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAChG,CAAC;CACF;AApCD,8DAoCC"}
@@ -20,7 +20,7 @@ class SideNavigationWrapper extends selectors_1.ComponentWrapper {
20
20
  return this.findByClassName(styles_selectors_js_1.default['link-active']);
21
21
  }
22
22
  findItemByIndex(index) {
23
- return this.findComponent(`.${styles_selectors_js_1.default['list-variant-root']} > li:nth-child(${index})`, SideNavigationItemWrapper);
23
+ return this.findComponent(`.${styles_selectors_js_1.default['list-variant-root']} > [data-itemid="item-${index}"]`, SideNavigationItemWrapper);
24
24
  }
25
25
  }
26
26
  exports.default = SideNavigationWrapper;
@@ -49,7 +49,7 @@ class SideNavigationItemWrapper extends selectors_1.ElementWrapper {
49
49
  return (_b = (_a = this.findSection()) === null || _a === void 0 ? void 0 : _a.findHeader()) !== null && _b !== void 0 ? _b : null;
50
50
  }
51
51
  findItemByIndex(index) {
52
- return this.findComponent(`li:nth-child(${index})`, SideNavigationItemWrapper);
52
+ return this.findComponent(`[data-itemid="item-${index}"]`, SideNavigationItemWrapper);
53
53
  }
54
54
  findItems() {
55
55
  return this.findAll('li').map(wrapper => new SideNavigationItemWrapper(wrapper.getElement()));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/test-utils/selectors/side-navigation/index.ts"],"names":[],"mappings":";;;AAAA,qEAAqE;AACrE,sCAAsC;AACtC,4EAAgG;AAChG,8DAA6D;AAC7D,sFAAkE;AAClE,MAAqB,qBAAsB,SAAQ,4BAAgB;IAEjE,UAAU;QACR,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IACD,cAAc;QACZ,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,aAAa,CAAC,CAAC,CAAC;IACrD,CAAC;IACD,cAAc,CAAC,IAAY;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,6BAAM,CAAC,IAAI,UAAU,IAAI,IAAI,CAAC,CAAC;IACtD,CAAC;IACD,cAAc;QACZ,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,aAAa,CAAC,CAAC,CAAC;IACrD,CAAC;IACD,eAAe,CAAC,KAAa;QAC3B,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,6BAAM,CAAC,mBAAmB,CAAC,mBAAmB,KAAK,GAAG,EAAE,yBAAyB,CAAC,CAAC;IACnH,CAAC;;AAhBH,wCAiBC;AAhBQ,kCAAY,GAAW,6BAAM,CAAC,IAAI,CAAC;AAiB5C,MAAa,yBAA0B,SAAQ,0BAAc;IAC3D,WAAW;QACT,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,6BAAM,CAAC,OAAO,EAAE,EAAE,4BAAwB,CAAC,CAAC;IAC5E,CAAC;IACD,gBAAgB;QACd,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,eAAe,CAAC,CAAC,CAAC;IACvD,CAAC;IACD,qBAAqB;QACnB,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAC7D,CAAC;IACD,uBAAuB;QACrB,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,6BAAM,CAAC,uBAAuB,CAAC,EAAE,EAAE,4BAAwB,CAAC,CAAC;IAC7F,CAAC;IACD,WAAW;QACT,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IACD,QAAQ;QACN,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IACD,gBAAgB;;QACd,OAAO,MAAA,MAAA,IAAI,CAAC,WAAW,EAAE,0CAAE,UAAU,EAAE,mCAAI,IAAI,CAAC;IAClD,CAAC;IACD,eAAe,CAAC,KAAa;QAC3B,OAAO,IAAI,CAAC,aAAa,CAAC,gBAAgB,KAAK,GAAG,EAAE,yBAAyB,CAAC,CAAC;IACjF,CAAC;IACD,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,yBAAyB,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAChG,CAAC;CACF;AA5BD,8DA4BC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/test-utils/selectors/side-navigation/index.ts"],"names":[],"mappings":";;;AAAA,qEAAqE;AACrE,sCAAsC;AACtC,4EAAgG;AAChG,8DAA6D;AAC7D,sFAAkE;AAClE,MAAqB,qBAAsB,SAAQ,4BAAgB;IAEjE,UAAU;QACR,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IACD,cAAc;QACZ,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,aAAa,CAAC,CAAC,CAAC;IACrD,CAAC;IACD,cAAc,CAAC,IAAY;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,6BAAM,CAAC,IAAI,UAAU,IAAI,IAAI,CAAC,CAAC;IACtD,CAAC;IACD,cAAc;QACZ,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,aAAa,CAAC,CAAC,CAAC;IACrD,CAAC;IACD,eAAe,CAAC,KAAa;QAC3B,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,6BAAM,CAAC,mBAAmB,CAAC,yBAAyB,KAAK,IAAI,EAAE,yBAAyB,CAAC,CAAC;IAC1H,CAAC;;AAhBH,wCAiBC;AAhBQ,kCAAY,GAAW,6BAAM,CAAC,IAAI,CAAC;AAiB5C,MAAa,yBAA0B,SAAQ,0BAAc;IAC3D,WAAW;QACT,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,6BAAM,CAAC,OAAO,EAAE,EAAE,4BAAwB,CAAC,CAAC;IAC5E,CAAC;IACD,gBAAgB;QACd,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,eAAe,CAAC,CAAC,CAAC;IACvD,CAAC;IACD,qBAAqB;QACnB,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAC7D,CAAC;IACD,uBAAuB;QACrB,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,6BAAM,CAAC,uBAAuB,CAAC,EAAE,EAAE,4BAAwB,CAAC,CAAC;IAC7F,CAAC;IACD,WAAW;QACT,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IACD,QAAQ;QACN,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IACD,gBAAgB;;QACd,OAAO,MAAA,MAAA,IAAI,CAAC,WAAW,EAAE,0CAAE,UAAU,EAAE,mCAAI,IAAI,CAAC;IAClD,CAAC;IACD,eAAe,CAAC,KAAa;QAC3B,OAAO,IAAI,CAAC,aAAa,CAAC,sBAAsB,KAAK,IAAI,EAAE,yBAAyB,CAAC,CAAC;IACxF,CAAC;IACD,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,yBAAyB,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAChG,CAAC;CACF;AA5BD,8DA4BC"}