@cloudscape-design/components 3.0.125 → 3.0.127
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.
- package/annotation-context/annotation/annotation-popover.d.ts.map +1 -1
- package/annotation-context/annotation/annotation-popover.js +8 -2
- package/annotation-context/annotation/annotation-popover.js.map +1 -1
- package/annotation-context/annotation/annotation-trigger.d.ts +2 -0
- package/annotation-context/annotation/annotation-trigger.d.ts.map +1 -1
- package/annotation-context/annotation/annotation-trigger.js +2 -2
- package/annotation-context/annotation/annotation-trigger.js.map +1 -1
- package/annotation-context/annotation/closed-annotation.d.ts +3 -1
- package/annotation-context/annotation/closed-annotation.d.ts.map +1 -1
- package/annotation-context/annotation/closed-annotation.js +2 -2
- package/annotation-context/annotation/closed-annotation.js.map +1 -1
- package/annotation-context/annotation/open-annotation.d.ts.map +1 -1
- package/annotation-context/annotation/open-annotation.js +1 -1
- package/annotation-context/annotation/open-annotation.js.map +1 -1
- package/annotation-context/annotation/styles.css.js +24 -24
- package/annotation-context/annotation/styles.scoped.css +30 -30
- package/annotation-context/annotation/styles.selectors.js +24 -24
- package/annotation-context/index.d.ts.map +1 -1
- package/annotation-context/index.js +3 -1
- package/annotation-context/index.js.map +1 -1
- package/annotation-context/interfaces.d.ts +1 -1
- package/annotation-context/interfaces.d.ts.map +1 -1
- package/annotation-context/interfaces.js.map +1 -1
- package/app-layout/visual-refresh/main.d.ts.map +1 -1
- package/app-layout/visual-refresh/main.js +8 -3
- package/app-layout/visual-refresh/main.js.map +1 -1
- package/app-layout/visual-refresh/styles.css.js +60 -60
- package/app-layout/visual-refresh/styles.scoped.css +255 -237
- package/app-layout/visual-refresh/styles.selectors.js +60 -60
- package/area-chart/internal.d.ts.map +1 -1
- package/area-chart/internal.js +5 -0
- package/area-chart/internal.js.map +1 -1
- package/area-chart/model/index.d.ts +1 -0
- package/area-chart/model/index.d.ts.map +1 -1
- package/area-chart/model/index.js.map +1 -1
- package/area-chart/model/use-chart-model.d.ts.map +1 -1
- package/area-chart/model/use-chart-model.js +8 -1
- package/area-chart/model/use-chart-model.js.map +1 -1
- package/attribute-editor/row.d.ts.map +1 -1
- package/attribute-editor/row.js +4 -3
- package/attribute-editor/row.js.map +1 -1
- package/attribute-editor/styles.css.js +13 -12
- package/attribute-editor/styles.scoped.css +27 -23
- package/attribute-editor/styles.selectors.js +13 -12
- package/breadcrumb-group/interfaces.d.ts +1 -0
- package/breadcrumb-group/interfaces.d.ts.map +1 -1
- package/breadcrumb-group/interfaces.js.map +1 -1
- package/breadcrumb-group/internal.d.ts.map +1 -1
- package/breadcrumb-group/internal.js +1 -1
- package/breadcrumb-group/internal.js.map +1 -1
- package/breadcrumb-group/item/item.d.ts +1 -1
- package/breadcrumb-group/item/item.d.ts.map +1 -1
- package/breadcrumb-group/item/item.js +68 -8
- package/breadcrumb-group/item/item.js.map +1 -1
- package/breadcrumb-group/item/styles.css.js +9 -7
- package/breadcrumb-group/item/styles.scoped.css +26 -16
- package/breadcrumb-group/item/styles.selectors.js +9 -7
- package/code-editor/index.d.ts.map +1 -1
- package/code-editor/index.js +11 -16
- package/code-editor/index.js.map +1 -1
- package/code-editor/interfaces.d.ts +12 -1
- package/code-editor/interfaces.d.ts.map +1 -1
- package/code-editor/interfaces.js.map +1 -1
- package/code-editor/status-bar.d.ts.map +1 -1
- package/code-editor/status-bar.js +7 -1
- package/code-editor/status-bar.js.map +1 -1
- package/code-editor/util.js +1 -1
- package/code-editor/util.js.map +1 -1
- package/container/internal.d.ts.map +1 -1
- package/container/internal.js +7 -4
- package/container/internal.js.map +1 -1
- package/date-range-picker/calendar/grids/index.d.ts +0 -1
- package/date-range-picker/calendar/grids/index.d.ts.map +1 -1
- package/date-range-picker/calendar/grids/index.js +2 -14
- package/date-range-picker/calendar/grids/index.js.map +1 -1
- package/date-range-picker/calendar/index.d.ts +6 -4
- package/date-range-picker/calendar/index.d.ts.map +1 -1
- package/date-range-picker/calendar/index.js +111 -123
- package/date-range-picker/calendar/index.js.map +1 -1
- package/date-range-picker/calendar/utils.d.ts +4 -0
- package/date-range-picker/calendar/utils.d.ts.map +1 -0
- package/date-range-picker/calendar/utils.js +31 -0
- package/date-range-picker/calendar/utils.js.map +1 -0
- package/date-range-picker/dropdown.d.ts +2 -1
- package/date-range-picker/dropdown.d.ts.map +1 -1
- package/date-range-picker/dropdown.js +8 -6
- package/date-range-picker/dropdown.js.map +1 -1
- package/date-range-picker/index.d.ts.map +1 -1
- package/date-range-picker/index.js +2 -2
- package/date-range-picker/index.js.map +1 -1
- package/date-range-picker/interfaces.d.ts +14 -4
- package/date-range-picker/interfaces.d.ts.map +1 -1
- package/date-range-picker/interfaces.js.map +1 -1
- package/date-range-picker/styles.css.js +38 -38
- package/date-range-picker/styles.scoped.css +45 -50
- package/date-range-picker/styles.selectors.js +38 -38
- package/date-range-picker/utils.d.ts +2 -8
- package/date-range-picker/utils.d.ts.map +1 -1
- package/date-range-picker/utils.js +17 -12
- package/date-range-picker/utils.js.map +1 -1
- package/flashbar/styles.css.js +33 -33
- package/flashbar/styles.scoped.css +121 -121
- package/flashbar/styles.selectors.js +33 -33
- package/internal/components/dropdown/index.d.ts.map +1 -1
- package/internal/components/dropdown/index.js +2 -9
- package/internal/components/dropdown/index.js.map +1 -1
- package/internal/components/dropdown-status/index.d.ts +1 -4
- package/internal/components/dropdown-status/index.d.ts.map +1 -1
- package/internal/components/dropdown-status/index.js +3 -5
- package/internal/components/dropdown-status/index.js.map +1 -1
- package/internal/components/filtering-token/index.d.ts +2 -1
- package/internal/components/filtering-token/index.d.ts.map +1 -1
- package/internal/components/filtering-token/index.js +2 -2
- package/internal/components/filtering-token/index.js.map +1 -1
- package/internal/components/option/index.js +4 -4
- package/internal/components/option/index.js.map +1 -1
- package/internal/environment.js +1 -1
- package/internal/generated/custom-css-properties/index.d.ts.map +1 -1
- package/internal/generated/custom-css-properties/index.js +27 -26
- package/internal/generated/custom-css-properties/index.js.map +1 -1
- package/internal/hooks/use-analytics/index.d.ts +2 -0
- package/internal/hooks/use-analytics/index.d.ts.map +1 -0
- package/internal/hooks/use-analytics/index.js +16 -0
- package/internal/hooks/use-analytics/index.js.map +1 -0
- package/internal/manifest.json +1 -1
- package/internal/utils/date-time/format-date-time.d.ts +2 -0
- package/internal/utils/date-time/format-date-time.d.ts.map +1 -0
- package/internal/utils/date-time/format-date-time.js +8 -0
- package/internal/utils/date-time/format-date-time.js.map +1 -0
- package/internal/utils/date-time/index.d.ts +2 -1
- package/internal/utils/date-time/index.d.ts.map +1 -1
- package/internal/utils/date-time/index.js +2 -1
- package/internal/utils/date-time/index.js.map +1 -1
- package/internal/utils/date-time/join-date-time.d.ts +4 -0
- package/internal/utils/date-time/join-date-time.d.ts.map +1 -1
- package/internal/utils/date-time/join-date-time.js +4 -0
- package/internal/utils/date-time/join-date-time.js.map +1 -1
- package/mixed-line-bar-chart/chart-container.d.ts.map +1 -1
- package/mixed-line-bar-chart/chart-container.js +14 -5
- package/mixed-line-bar-chart/chart-container.js.map +1 -1
- package/package.json +1 -1
- package/pie-chart/pie-chart.d.ts.map +1 -1
- package/pie-chart/pie-chart.js +10 -1
- package/pie-chart/pie-chart.js.map +1 -1
- package/popover/body.d.ts +2 -1
- package/popover/body.d.ts.map +1 -1
- package/popover/body.js +2 -2
- package/popover/body.js.map +1 -1
- package/property-filter/interfaces.d.ts +1 -0
- package/property-filter/interfaces.d.ts.map +1 -1
- package/property-filter/interfaces.js.map +1 -1
- package/property-filter/token.d.ts.map +1 -1
- package/property-filter/token.js +1 -1
- package/property-filter/token.js.map +1 -1
- package/select/parts/filter.d.ts +1 -1
- package/select/utils/use-select.d.ts +1 -7
- package/select/utils/use-select.d.ts.map +1 -1
- package/select/utils/use-select.js +1 -1
- package/select/utils/use-select.js.map +1 -1
- package/split-panel/index.d.ts.map +1 -1
- package/split-panel/index.js +11 -9
- package/split-panel/index.js.map +1 -1
- package/table/styles.css.js +34 -34
- package/table/styles.scoped.css +42 -40
- package/table/styles.selectors.js +34 -34
- package/tabs/index.d.ts.map +1 -1
- package/tabs/index.js +9 -11
- package/tabs/index.js.map +1 -1
- package/tabs/styles.css.js +21 -21
- package/tabs/styles.scoped.css +48 -41
- package/tabs/styles.selectors.js +21 -21
- package/tabs/tab-header-bar.d.ts +4 -0
- package/tabs/tab-header-bar.d.ts.map +1 -1
- package/tabs/tab-header-bar.js +5 -1
- package/tabs/tab-header-bar.js.map +1 -1
- package/tag-editor/internal.d.ts.map +1 -1
- package/tag-editor/internal.js +6 -7
- package/tag-editor/internal.js.map +1 -1
- package/test-utils/tsconfig.tsbuildinfo +1 -1
- package/tutorial-panel/components/tutorial-detail-view/index.d.ts.map +1 -1
- package/tutorial-panel/components/tutorial-detail-view/index.js +3 -1
- package/tutorial-panel/components/tutorial-detail-view/index.js.map +1 -1
- package/tutorial-panel/components/tutorial-detail-view/task.d.ts.map +1 -1
- package/tutorial-panel/components/tutorial-detail-view/task.js +2 -1
- package/tutorial-panel/components/tutorial-detail-view/task.js.map +1 -1
- package/tutorial-panel/components/tutorial-list/index.d.ts.map +1 -1
- package/tutorial-panel/components/tutorial-list/index.js +2 -2
- package/tutorial-panel/components/tutorial-list/index.js.map +1 -1
- package/tutorial-panel/interfaces.d.ts +2 -0
- package/tutorial-panel/interfaces.d.ts.map +1 -1
- package/tutorial-panel/interfaces.js.map +1 -1
- package/wizard/index.d.ts.map +1 -1
- package/wizard/index.js +9 -5
- package/wizard/index.js.map +1 -1
- package/wizard/wizard-form.d.ts.map +1 -1
- package/wizard/wizard-form.js +7 -2
- package/wizard/wizard-form.js.map +1 -1
- package/date-range-picker/calendar/use-date-time.d.ts +0 -9
- package/date-range-picker/calendar/use-date-time.d.ts.map +0 -1
- package/date-range-picker/calendar/use-date-time.js +0 -16
- package/date-range-picker/calendar/use-date-time.js.map +0 -1
package/tabs/styles.scoped.css
CHANGED
|
@@ -183,13 +183,13 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
183
183
|
SPDX-License-Identifier: Apache-2.0
|
|
184
184
|
*/
|
|
185
185
|
/* stylelint-disable selector-max-type */
|
|
186
|
-
.awsui_tabs-
|
|
186
|
+
.awsui_tabs-header_14rmt_17xev_186:not(#\9) {
|
|
187
187
|
margin: 0;
|
|
188
188
|
padding: 0;
|
|
189
189
|
display: flex;
|
|
190
190
|
}
|
|
191
191
|
|
|
192
|
-
.awsui_tabs-header-
|
|
192
|
+
.awsui_tabs-header-list_14rmt_17xev_192:not(#\9) {
|
|
193
193
|
margin: 0;
|
|
194
194
|
padding: 0;
|
|
195
195
|
display: flex;
|
|
@@ -200,42 +200,42 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
200
200
|
-ms-overflow-style: none; /* Internet Explorer 10+ */
|
|
201
201
|
scrollbar-width: none; /* Firefox */
|
|
202
202
|
}
|
|
203
|
-
.awsui_tabs-header-
|
|
203
|
+
.awsui_tabs-header-list_14rmt_17xev_192:not(#\9)::-webkit-scrollbar {
|
|
204
204
|
display: none; /* Safari and Chrome */
|
|
205
205
|
}
|
|
206
206
|
|
|
207
|
-
.awsui_pagination-
|
|
207
|
+
.awsui_pagination-button_14rmt_17xev_207:not(#\9) {
|
|
208
208
|
margin: var(--space-scaled-s-cu1hzn, 12px) 0;
|
|
209
209
|
padding: 0 var(--space-xxs-ynfts5, 4px);
|
|
210
210
|
display: flex;
|
|
211
211
|
}
|
|
212
|
-
.awsui_pagination-button-
|
|
212
|
+
.awsui_pagination-button-left_14rmt_17xev_212:not(#\9) {
|
|
213
213
|
border-right: var(--border-divider-section-width-4wm2it, 2px) solid var(--color-border-control-disabled-vx8bco, #d1d5db);
|
|
214
214
|
}
|
|
215
|
-
.awsui_pagination-button-left-
|
|
215
|
+
.awsui_pagination-button-left-scrollable_14rmt_17xev_215:not(#\9) {
|
|
216
216
|
z-index: 1;
|
|
217
217
|
box-shadow: 5px 0px 4px -3px var(--color-border-tabs-shadow-4lmh2z, rgba(0, 7, 22, 0.12)), 1px 0px 0px 0px var(--color-border-tabs-shadow-4lmh2z, rgba(0, 7, 22, 0.12));
|
|
218
218
|
}
|
|
219
|
-
.awsui_pagination-button-
|
|
219
|
+
.awsui_pagination-button-right_14rmt_17xev_219:not(#\9) {
|
|
220
220
|
border-left: var(--border-divider-section-width-4wm2it, 2px) solid var(--color-border-control-disabled-vx8bco, #d1d5db);
|
|
221
221
|
}
|
|
222
|
-
.awsui_pagination-button-right-
|
|
222
|
+
.awsui_pagination-button-right-scrollable_14rmt_17xev_222:not(#\9) {
|
|
223
223
|
z-index: 1;
|
|
224
224
|
box-shadow: -5px 0px 4px -3px var(--color-border-tabs-shadow-4lmh2z, rgba(0, 7, 22, 0.12)), -1px 0px 0px 0 var(--color-border-tabs-shadow-4lmh2z, rgba(0, 7, 22, 0.12));
|
|
225
225
|
}
|
|
226
226
|
|
|
227
|
-
.awsui_tabs-
|
|
227
|
+
.awsui_tabs-tab_14rmt_17xev_227:not(#\9) {
|
|
228
228
|
list-style: none;
|
|
229
229
|
padding: 0;
|
|
230
230
|
flex-shrink: 0;
|
|
231
231
|
display: flex;
|
|
232
232
|
max-width: calc(90% - var(--space-l-4vl6xu, 20px));
|
|
233
233
|
}
|
|
234
|
-
.awsui_tabs-
|
|
234
|
+
.awsui_tabs-tab_14rmt_17xev_227 > button:not(#\9) {
|
|
235
235
|
background-color: transparent;
|
|
236
236
|
}
|
|
237
237
|
|
|
238
|
-
.awsui_tabs-tab-
|
|
238
|
+
.awsui_tabs-tab-label_14rmt_17xev_238:not(#\9) {
|
|
239
239
|
display: flex;
|
|
240
240
|
align-items: center;
|
|
241
241
|
padding: var(--space-scaled-2x-xxs-t5qzmf, 4px) var(--space-l-4vl6xu, 20px);
|
|
@@ -246,12 +246,12 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
246
246
|
word-break: break-word;
|
|
247
247
|
}
|
|
248
248
|
|
|
249
|
-
.awsui_tabs-
|
|
249
|
+
.awsui_tabs-tab_14rmt_17xev_227:not(#\9):not(:last-child) > a > .awsui_tabs-tab-label_14rmt_17xev_238, .awsui_tabs-tab_14rmt_17xev_227:not(#\9):not(:last-child) > button > .awsui_tabs-tab-label_14rmt_17xev_238 {
|
|
250
250
|
margin-right: calc(-1 * var(--border-divider-section-width-4wm2it, 2px));
|
|
251
251
|
border-right: var(--border-divider-section-width-4wm2it, 2px) solid var(--color-border-tabs-divider-69fx5i, #e9ebed);
|
|
252
252
|
}
|
|
253
253
|
|
|
254
|
-
.awsui_tabs-tab-
|
|
254
|
+
.awsui_tabs-tab-link_14rmt_17xev_254:not(#\9) {
|
|
255
255
|
position: relative;
|
|
256
256
|
display: flex;
|
|
257
257
|
align-items: stretch;
|
|
@@ -265,21 +265,21 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
265
265
|
font-weight: var(--font-wayfinding-link-active-weight-l3fid7, 800);
|
|
266
266
|
color: var(--color-text-interactive-default-eg5fsa, #414d5c);
|
|
267
267
|
}
|
|
268
|
-
.awsui_tabs-tab-
|
|
268
|
+
.awsui_tabs-tab-link_14rmt_17xev_254:not(#\9):hover {
|
|
269
269
|
color: var(--color-text-accent-s1eqko, #0972d3);
|
|
270
270
|
}
|
|
271
|
-
.awsui_tabs-tab-
|
|
271
|
+
.awsui_tabs-tab-link_14rmt_17xev_254:not(#\9):focus {
|
|
272
272
|
outline: none;
|
|
273
273
|
}
|
|
274
|
-
.awsui_tabs-tab-
|
|
274
|
+
.awsui_tabs-tab-link_14rmt_17xev_254[data-awsui-focus-visible=true]:not(#\9):focus {
|
|
275
275
|
z-index: 1;
|
|
276
276
|
position: relative;
|
|
277
277
|
}
|
|
278
|
-
.awsui_tabs-tab-
|
|
278
|
+
.awsui_tabs-tab-link_14rmt_17xev_254[data-awsui-focus-visible=true]:not(#\9):focus {
|
|
279
279
|
outline: 2px dotted transparent;
|
|
280
280
|
outline-offset: calc(var(--space-tabs-focus-outline-gutter-64zu5e, -8px) - 1px);
|
|
281
281
|
}
|
|
282
|
-
.awsui_tabs-tab-
|
|
282
|
+
.awsui_tabs-tab-link_14rmt_17xev_254[data-awsui-focus-visible=true]:not(#\9):focus::before {
|
|
283
283
|
content: " ";
|
|
284
284
|
display: block;
|
|
285
285
|
position: absolute;
|
|
@@ -290,31 +290,32 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
290
290
|
border-radius: var(--border-radius-control-default-focus-ring-7661kz, 4px);
|
|
291
291
|
box-shadow: 0 0 0 2px var(--color-border-item-focused-ap3b6s, #0972d3);
|
|
292
292
|
}
|
|
293
|
-
.awsui_tabs-tab-
|
|
293
|
+
.awsui_tabs-tab-link_14rmt_17xev_254[data-awsui-focus-visible=true]:not(#\9):focus > a > .awsui_tabs-tab-label_14rmt_17xev_238, .awsui_tabs-tab-link_14rmt_17xev_254[data-awsui-focus-visible=true]:not(#\9):focus > button > .awsui_tabs-tab-label_14rmt_17xev_238 {
|
|
294
294
|
border-right-color: transparent;
|
|
295
295
|
}
|
|
296
296
|
|
|
297
|
-
.awsui_tabs-
|
|
297
|
+
.awsui_tabs-tab_14rmt_17xev_227:not(#\9):first-child {
|
|
298
298
|
margin-left: 1px;
|
|
299
299
|
}
|
|
300
|
-
.awsui_tabs-
|
|
300
|
+
.awsui_tabs-tab_14rmt_17xev_227:not(#\9):first-child > a > .awsui_tabs-tab-label_14rmt_17xev_238, .awsui_tabs-tab_14rmt_17xev_227:not(#\9):first-child > button > .awsui_tabs-tab-label_14rmt_17xev_238 {
|
|
301
301
|
padding-left: calc(var(--space-l-4vl6xu, 20px) - 1px);
|
|
302
302
|
}
|
|
303
303
|
|
|
304
|
-
.awsui_tabs-
|
|
304
|
+
.awsui_tabs-tab_14rmt_17xev_227:not(#\9):last-child {
|
|
305
305
|
margin-right: 1px;
|
|
306
306
|
}
|
|
307
|
-
.awsui_tabs-
|
|
307
|
+
.awsui_tabs-tab_14rmt_17xev_227:not(#\9):last-child > a > .awsui_tabs-tab-label_14rmt_17xev_238, .awsui_tabs-tab_14rmt_17xev_227:not(#\9):last-child > button > .awsui_tabs-tab-label_14rmt_17xev_238 {
|
|
308
308
|
padding-right: calc(var(--space-l-4vl6xu, 20px) - 1px);
|
|
309
309
|
}
|
|
310
310
|
|
|
311
|
-
.awsui_tabs-tab-
|
|
311
|
+
.awsui_tabs-tab-disabled_14rmt_17xev_311:not(#\9), .awsui_tabs-tab-disabled_14rmt_17xev_311:not(#\9):hover {
|
|
312
|
+
pointer-events: none;
|
|
312
313
|
cursor: default;
|
|
313
314
|
color: var(--color-text-interactive-disabled-3pbb07, #9ba7b6);
|
|
314
315
|
font-weight: var(--font-tabs-disabled-weight-imwq16, 800);
|
|
315
316
|
}
|
|
316
317
|
|
|
317
|
-
.awsui_tabs-tab-
|
|
318
|
+
.awsui_tabs-tab-link_14rmt_17xev_254:not(#\9):not(.awsui_tabs-tab-disabled_14rmt_17xev_311):after {
|
|
318
319
|
content: "";
|
|
319
320
|
position: absolute;
|
|
320
321
|
left: 0;
|
|
@@ -325,36 +326,36 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
325
326
|
background: var(--color-border-tabs-underline-9bcfzu, #0972d3);
|
|
326
327
|
opacity: 0;
|
|
327
328
|
}
|
|
328
|
-
.awsui_tabs-tab-
|
|
329
|
+
.awsui_tabs-tab-link_14rmt_17xev_254:not(#\9):not(.awsui_tabs-tab-disabled_14rmt_17xev_311).awsui_refresh_14rmt_17xev_329:after {
|
|
329
330
|
transition: opacity var(--motion-duration-refresh-only-medium-5flen2, 165ms) var(--motion-easing-refresh-only-c-ic6jr0, cubic-bezier(0.84, 0, 0.16, 1));
|
|
330
331
|
}
|
|
331
332
|
@media (prefers-reduced-motion: reduce) {
|
|
332
|
-
.awsui_tabs-tab-
|
|
333
|
+
.awsui_tabs-tab-link_14rmt_17xev_254:not(#\9):not(.awsui_tabs-tab-disabled_14rmt_17xev_311).awsui_refresh_14rmt_17xev_329:after {
|
|
333
334
|
animation: none;
|
|
334
335
|
transition: none;
|
|
335
336
|
}
|
|
336
337
|
}
|
|
337
|
-
.awsui-motion-disabled .awsui_tabs-tab-
|
|
338
|
+
.awsui-motion-disabled .awsui_tabs-tab-link_14rmt_17xev_254:not(#\9):not(.awsui_tabs-tab-disabled_14rmt_17xev_311).awsui_refresh_14rmt_17xev_329:after, .awsui-mode-entering .awsui_tabs-tab-link_14rmt_17xev_254:not(#\9):not(.awsui_tabs-tab-disabled_14rmt_17xev_311).awsui_refresh_14rmt_17xev_329:after {
|
|
338
339
|
animation: none;
|
|
339
340
|
transition: none;
|
|
340
341
|
}
|
|
341
342
|
|
|
342
|
-
.awsui_tabs-tab-
|
|
343
|
+
.awsui_tabs-tab-active_14rmt_17xev_343:not(#\9):not(.awsui_tabs-tab-disabled_14rmt_17xev_311) {
|
|
343
344
|
color: var(--color-text-accent-s1eqko, #0972d3);
|
|
344
345
|
}
|
|
345
|
-
.awsui_tabs-tab-
|
|
346
|
+
.awsui_tabs-tab-active_14rmt_17xev_343:not(#\9):not(.awsui_tabs-tab-disabled_14rmt_17xev_311):after {
|
|
346
347
|
opacity: 1;
|
|
347
348
|
}
|
|
348
349
|
|
|
349
|
-
.awsui_tabs-header-with-
|
|
350
|
+
.awsui_tabs-header-with-divider_14rmt_17xev_350:not(#\9) {
|
|
350
351
|
border-bottom: var(--border-divider-section-width-4wm2it, 2px) solid var(--color-border-tabs-divider-69fx5i, #e9ebed);
|
|
351
352
|
}
|
|
352
353
|
|
|
353
|
-
.
|
|
354
|
+
.awsui_root_14rmt_17xev_354:not(#\9) {
|
|
354
355
|
/* used in test-utils or tests */
|
|
355
356
|
}
|
|
356
357
|
|
|
357
|
-
.
|
|
358
|
+
.awsui_tabs_14rmt_17xev_186:not(#\9) {
|
|
358
359
|
/* stylelint-disable-next-line plugin/no-unsupported-browser-features */
|
|
359
360
|
border-collapse: separate;
|
|
360
361
|
border-spacing: 0;
|
|
@@ -393,18 +394,24 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
393
394
|
width: 100%;
|
|
394
395
|
}
|
|
395
396
|
|
|
396
|
-
.awsui_tabs-
|
|
397
|
-
|
|
397
|
+
.awsui_tabs-content_14rmt_17xev_371:not(#\9) {
|
|
398
|
+
display: none;
|
|
398
399
|
}
|
|
399
400
|
|
|
400
|
-
.awsui_tabs-
|
|
401
|
-
|
|
401
|
+
.awsui_tabs-content-active_14rmt_17xev_375:not(#\9) {
|
|
402
|
+
display: block;
|
|
403
|
+
}
|
|
404
|
+
.awsui_tabs-content-active_14rmt_17xev_375[data-awsui-focus-visible=true]:not(#\9):focus {
|
|
405
|
+
outline: 2px dotted transparent;
|
|
406
|
+
outline-offset: 2px;
|
|
407
|
+
border-radius: var(--border-radius-container-gh9ysk, 16px);
|
|
408
|
+
box-shadow: 0 0 0 2px var(--color-border-item-focused-ap3b6s, #0972d3);
|
|
402
409
|
}
|
|
403
410
|
|
|
404
|
-
.awsui_tabs-
|
|
405
|
-
|
|
411
|
+
.awsui_tabs-content-wrapper_14rmt_17xev_385.awsui_with-paddings_14rmt_17xev_385 > .awsui_tabs-content_14rmt_17xev_371:not(#\9) {
|
|
412
|
+
padding: var(--space-scaled-m-pv0fmt, 16px) 0;
|
|
406
413
|
}
|
|
407
414
|
|
|
408
|
-
.awsui_tabs-content-
|
|
409
|
-
|
|
415
|
+
.awsui_tabs-container-content-wrapper_14rmt_17xev_389.awsui_with-paddings_14rmt_17xev_385 > .awsui_tabs-content_14rmt_17xev_371:not(#\9) {
|
|
416
|
+
padding: var(--space-tabs-content-top-mn4c9x, 12px) var(--space-container-horizontal-ddrezg, 24px) var(--space-scaled-l-t03y3z, 20px);
|
|
410
417
|
}
|
package/tabs/styles.selectors.js
CHANGED
|
@@ -2,26 +2,26 @@
|
|
|
2
2
|
// es-module interop with Babel and Typescript
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
module.exports.default = {
|
|
5
|
-
"tabs-header": "awsui_tabs-
|
|
6
|
-
"tabs-header-list": "awsui_tabs-header-
|
|
7
|
-
"pagination-button": "awsui_pagination-
|
|
8
|
-
"pagination-button-left": "awsui_pagination-button-
|
|
9
|
-
"pagination-button-left-scrollable": "awsui_pagination-button-left-
|
|
10
|
-
"pagination-button-right": "awsui_pagination-button-
|
|
11
|
-
"pagination-button-right-scrollable": "awsui_pagination-button-right-
|
|
12
|
-
"tabs-tab": "awsui_tabs-
|
|
13
|
-
"tabs-tab-label": "awsui_tabs-tab-
|
|
14
|
-
"tabs-tab-link": "awsui_tabs-tab-
|
|
15
|
-
"tabs-tab-disabled": "awsui_tabs-tab-
|
|
16
|
-
"refresh": "
|
|
17
|
-
"tabs-tab-active": "awsui_tabs-tab-
|
|
18
|
-
"tabs-header-with-divider": "awsui_tabs-header-with-
|
|
19
|
-
"root": "
|
|
20
|
-
"tabs": "
|
|
21
|
-
"tabs-content
|
|
22
|
-
"
|
|
23
|
-
"tabs-
|
|
24
|
-
"
|
|
25
|
-
"tabs-content-
|
|
5
|
+
"tabs-header": "awsui_tabs-header_14rmt_17xev_186",
|
|
6
|
+
"tabs-header-list": "awsui_tabs-header-list_14rmt_17xev_192",
|
|
7
|
+
"pagination-button": "awsui_pagination-button_14rmt_17xev_207",
|
|
8
|
+
"pagination-button-left": "awsui_pagination-button-left_14rmt_17xev_212",
|
|
9
|
+
"pagination-button-left-scrollable": "awsui_pagination-button-left-scrollable_14rmt_17xev_215",
|
|
10
|
+
"pagination-button-right": "awsui_pagination-button-right_14rmt_17xev_219",
|
|
11
|
+
"pagination-button-right-scrollable": "awsui_pagination-button-right-scrollable_14rmt_17xev_222",
|
|
12
|
+
"tabs-tab": "awsui_tabs-tab_14rmt_17xev_227",
|
|
13
|
+
"tabs-tab-label": "awsui_tabs-tab-label_14rmt_17xev_238",
|
|
14
|
+
"tabs-tab-link": "awsui_tabs-tab-link_14rmt_17xev_254",
|
|
15
|
+
"tabs-tab-disabled": "awsui_tabs-tab-disabled_14rmt_17xev_311",
|
|
16
|
+
"refresh": "awsui_refresh_14rmt_17xev_329",
|
|
17
|
+
"tabs-tab-active": "awsui_tabs-tab-active_14rmt_17xev_343",
|
|
18
|
+
"tabs-header-with-divider": "awsui_tabs-header-with-divider_14rmt_17xev_350",
|
|
19
|
+
"root": "awsui_root_14rmt_17xev_354",
|
|
20
|
+
"tabs": "awsui_tabs_14rmt_17xev_186",
|
|
21
|
+
"tabs-content": "awsui_tabs-content_14rmt_17xev_371",
|
|
22
|
+
"tabs-content-active": "awsui_tabs-content-active_14rmt_17xev_375",
|
|
23
|
+
"tabs-content-wrapper": "awsui_tabs-content-wrapper_14rmt_17xev_385",
|
|
24
|
+
"with-paddings": "awsui_with-paddings_14rmt_17xev_385",
|
|
25
|
+
"tabs-container-content-wrapper": "awsui_tabs-container-content-wrapper_14rmt_17xev_389"
|
|
26
26
|
};
|
|
27
27
|
|
package/tabs/tab-header-bar.d.ts
CHANGED
|
@@ -9,4 +9,8 @@ export interface TabHeaderBarProps {
|
|
|
9
9
|
ariaLabelledby?: string;
|
|
10
10
|
}
|
|
11
11
|
export declare function TabHeaderBar({ onChange, activeTabId, tabs, variant, idNamespace, ariaLabel, ariaLabelledby, }: TabHeaderBarProps): JSX.Element;
|
|
12
|
+
export declare function getTabElementId({ namespace, tabId }: {
|
|
13
|
+
namespace: string;
|
|
14
|
+
tabId: string;
|
|
15
|
+
}): string;
|
|
12
16
|
//# sourceMappingURL=tab-header-bar.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tab-header-bar.d.ts","sourceRoot":"","sources":["../../../src/tabs/tab-header-bar.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAiBzC,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC,YAAY,KAAK,IAAI,CAAC;IACzD,WAAW,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;IACtC,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACxB,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,WAAW,EACX,IAAI,EACJ,OAAO,EACP,WAAW,EACX,SAAS,EACT,cAAc,GACf,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"tab-header-bar.d.ts","sourceRoot":"","sources":["../../../src/tabs/tab-header-bar.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAiBzC,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC,YAAY,KAAK,IAAI,CAAC;IACzD,WAAW,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;IACtC,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACxB,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,WAAW,EACX,IAAI,EACJ,OAAO,EACP,WAAW,EACX,SAAS,EACT,cAAc,GACf,EAAE,iBAAiB,eAqRnB;AAED,wBAAgB,eAAe,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,UAEzF"}
|
package/tabs/tab-header-bar.js
CHANGED
|
@@ -184,7 +184,7 @@ export function TabHeaderBar(_a) {
|
|
|
184
184
|
_a[styles['tabs-tab-active']] = activeTabId === tab.id && !tab.disabled,
|
|
185
185
|
_a[styles['tabs-tab-disabled']] = tab.disabled,
|
|
186
186
|
_a));
|
|
187
|
-
var commonProps = __assign(__assign({ className: classes }, focusVisible), { role: 'tab', 'aria-selected': tab.id === activeTabId, 'aria-controls': "".concat(idNamespace, "-").concat(tab.id, "-panel"), 'data-testid': tab.id, children: React.createElement("span", { className: styles['tabs-tab-label'] }, tab.label) });
|
|
187
|
+
var commonProps = __assign(__assign({ className: classes }, focusVisible), { role: 'tab', 'aria-selected': tab.id === activeTabId, 'aria-controls': "".concat(idNamespace, "-").concat(tab.id, "-panel"), 'data-testid': tab.id, id: getTabElementId({ namespace: idNamespace, tabId: tab.id }), children: React.createElement("span", { className: styles['tabs-tab-label'] }, tab.label) });
|
|
188
188
|
if (tab.disabled) {
|
|
189
189
|
commonProps['aria-disabled'] = 'true';
|
|
190
190
|
}
|
|
@@ -216,4 +216,8 @@ export function TabHeaderBar(_a) {
|
|
|
216
216
|
return (React.createElement("li", { ref: function (element) { return tabRefs.current.set(tab.id, element); }, className: styles['tabs-tab'], role: "presentation", key: tab.id }, trigger));
|
|
217
217
|
}
|
|
218
218
|
}
|
|
219
|
+
export function getTabElementId(_a) {
|
|
220
|
+
var namespace = _a.namespace, tabId = _a.tabId;
|
|
221
|
+
return namespace + '-' + tabId;
|
|
222
|
+
}
|
|
219
223
|
//# sourceMappingURL=tab-header-bar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tab-header-bar.js","sourceRoot":"","sources":["../../../src/tabs/tab-header-bar.tsx"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE3D,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,eAAe,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,cAAc,GACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAYrE,MAAM,UAAU,YAAY,CAAC,EAQT;;QAPlB,QAAQ,cAAA,EACR,WAAW,iBAAA,EACX,IAAI,UAAA,EACJ,OAAO,aAAA,EACP,WAAW,iBAAA,EACX,SAAS,eAAA,EACT,cAAc,oBAAA;IAEd,IAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IAEvC,IAAM,YAAY,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAC;IACpD,IAAM,kBAAkB,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAC;IAC3D,IAAM,kBAAkB,GAAG,MAAM,CAAc,IAAI,CAAC,CAAC;IAErD,IAAM,eAAe,GAAG,gBAAgB,EAAE,CAAC;IAErC,IAAA,KAA8B,iBAAiB,CAAS,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,KAAK,EAAV,CAAU,CAAC,EAA1E,WAAW,QAAA,EAAE,YAAY,QAAiD,CAAC;IAClF,IAAM,OAAO,GAAG,MAAM,CAA2B,IAAI,GAAG,EAAE,CAAC,CAAC;IACtD,IAAA,KAA8C,QAAQ,CAAC,KAAK,CAAC,EAA5D,kBAAkB,QAAA,EAAE,qBAAqB,QAAmB,CAAC;IAC9D,IAAA,KAAkC,QAAQ,CAAC,KAAK,CAAC,EAAhD,YAAY,QAAA,EAAE,eAAe,QAAmB,CAAC;IAClD,IAAA,KAAoC,QAAQ,CAAC,KAAK,CAAC,EAAlD,aAAa,QAAA,EAAE,gBAAgB,QAAmB,CAAC;IAE1D,SAAS,CAAC;QACR,IAAI,YAAY,CAAC,OAAO,EAAE;YACxB,qBAAqB,CAAC,qBAAqB,CAAC,YAAY,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC;YACvF,eAAe,CAAC,eAAe,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;YACvD,gBAAgB,CAAC,gBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;SAC1D;IACH,CAAC,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;IAExB,IAAM,wBAAwB,GAAG,UAAC,MAAe;QAC/C,IAAI,CAAC,WAAW,EAAE;YAChB,OAAO;SACR;QACD,IAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACtD,IAAI,YAAY,IAAI,YAAY,CAAC,OAAO,EAAE;YACxC,cAAc,CAAC,YAAY,EAAE,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;SAC5D;IACH,CAAC,CAAC;IAEF,SAAS,CAAC;QACR,uEAAuE;QACvE,yDAAyD;QACzD,gEAAgE;QAChE,qBAAqB,CAAC;YACpB,wBAAwB,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QACH,iEAAiE;QACjE,uDAAuD;IACzD,CAAC,EAAE,CAAC,kBAAkB,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAEnD,SAAS,CAAC;QACR,wBAAwB,CAAC,IAAI,CAAC,CAAC;QAC/B,8DAA8D;QAC9D,uDAAuD;IACzD,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,SAAS,CAAC;;QACR;;;UAGE;QACF,IAAI,MAAA,YAAY,CAAC,OAAO,0CAAE,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;YAC1D,IAAI,QAAQ,CAAC,aAAa,KAAK,kBAAkB,CAAC,OAAO,EAAE;gBACzD,MAAA,kBAAkB,CAAC,OAAO,0CAAE,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;aAC5D;SACF;IACH,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,IAAM,QAAQ,GAAG;QACf,IAAI,YAAY,CAAC,OAAO,EAAE;YACxB,eAAe,CAAC,eAAe,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;YACvD,gBAAgB,CAAC,gBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;SAC1D;IACH,CAAC,CAAC;IAEF,IAAM,OAAO,GAAG,IAAI;QAClB,GAAC,MAAM,CAAC,aAAa,CAAC,IAAG,IAAI;QAC7B,GAAC,MAAM,CAAC,0BAA0B,CAAC,IAAG,OAAO,KAAK,SAAS,IAAI,eAAe;YAC9E,CAAC;IAEH,IAAM,iBAAiB,GAAG,IAAI;QAC5B,GAAC,MAAM,CAAC,mBAAmB,CAAC,IAAG,IAAI;QACnC,GAAC,MAAM,CAAC,wBAAwB,CAAC,IAAG,IAAI;QACxC,GAAC,MAAM,CAAC,mCAAmC,CAAC,IAAG,YAAY;YAC3D,CAAC;IAEH,IAAM,kBAAkB,GAAG,IAAI;QAC7B,GAAC,MAAM,CAAC,mBAAmB,CAAC,IAAG,IAAI;QACnC,GAAC,MAAM,CAAC,yBAAyB,CAAC,IAAG,IAAI;QACzC,GAAC,MAAM,CAAC,oCAAoC,CAAC,IAAG,aAAa;YAC7D,CAAC;IAEH,IAAM,0BAA0B,GAAG;QACjC,aAAa,EAAE,IAAI;QACnB,QAAQ,EAAE,CAAC,CAAC;KACb,CAAC;IAEF,OAAO;IACL,iFAAiF;IACjF,6BAAK,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,YAAY;QACvC,kBAAkB,IAAI,CACrB,8BAAM,GAAG,EAAE,kBAAkB,EAAE,SAAS,EAAE,iBAAiB;YACzD,oBAAC,cAAc,IACb,UAAU,EAAC,MAAM,EACjB,OAAO,EAAC,MAAM,EACd,QAAQ,EAAC,YAAY,EACrB,kBAAkB,EAAE,0BAA0B,EAC9C,QAAQ,EAAE,CAAC,YAAY,EACvB,OAAO,EAAE,cAAM,OAAA,iBAAiB,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAnC,CAAmC,GAClD,CACG,CACR;QACD,4BACE,IAAI,EAAC,SAAS,EACd,SAAS,EAAE,MAAM,CAAC,kBAAkB,CAAC,gBACzB,SAAS,qBACJ,cAAc,EAC/B,GAAG,EAAE,YAAY,EACjB,QAAQ,EAAE,QAAQ,IAEjB,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CACvB;QACJ,kBAAkB,IAAI,CACrB,8BAAM,SAAS,EAAE,kBAAkB;YACjC,oBAAC,cAAc,IACb,UAAU,EAAC,MAAM,EACjB,OAAO,EAAC,MAAM,EACd,QAAQ,EAAC,aAAa,EACtB,kBAAkB,EAAE,0BAA0B,EAC9C,QAAQ,EAAE,CAAC,aAAa,EACxB,OAAO,EAAE,cAAM,OAAA,iBAAiB,CAAC,YAAY,EAAE,CAAC,CAAC,EAAlC,CAAkC,GACjD,CACG,CACR,CACG,CACP,CAAC;IAEF,SAAS,eAAe,CAAC,GAAkB;;QACzC,IAAM,yBAAyB,GAAG,IAAI,CAAC,MAAM,CAAC,UAAA,GAAG,IAAI,OAAA,CAAC,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,EAAE,KAAK,WAAW,EAAvC,CAAuC,CAAC,CAAC;QAE9F,IAAM,YAAY,GAAG,UAAU,eAAuB;YACpD,IAAM,GAAG,GAAG,yBAAyB,CAAC,eAAe,CAAC,CAAC;YACvD,IAAI,GAAG,CAAC,EAAE,KAAK,WAAW,EAAE;gBAC1B,OAAO;aACR;YAED,QAAQ,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,EAAE,EAAE,aAAa,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7D,CAAC,CAAC;QAEF,IAAM,aAAa,GAAG,UACpB,KAAsF;YAE9E,IAAA,OAAO,GAAK,KAAK,QAAV,CAAW;YAC1B,IAAM,WAAW,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC/G,IAAI,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE;gBACvC,OAAO;aACR;YACD,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,IAAM,WAAW,GAAG,yBAAyB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC3D,QAAQ,OAAO,EAAE;gBACf,KAAK,OAAO,CAAC,KAAK;oBAChB,IAAI,WAAW,GAAG,CAAC,KAAK,yBAAyB,CAAC,MAAM,EAAE;wBACxD,YAAY,CAAC,CAAC,CAAC,CAAC;qBACjB;yBAAM;wBACL,YAAY,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;qBAC/B;oBACD,OAAO;gBACT,KAAK,OAAO,CAAC,IAAI;oBACf,IAAI,WAAW,KAAK,CAAC,EAAE;wBACrB,YAAY,CAAC,yBAAyB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;qBACpD;yBAAM;wBACL,YAAY,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;qBAC/B;oBACD,OAAO;gBACT,KAAK,OAAO,CAAC,GAAG;oBACd,YAAY,CAAC,yBAAyB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBACnD,OAAO;gBACT,KAAK,OAAO,CAAC,IAAI;oBACf,YAAY,CAAC,CAAC,CAAC,CAAC;oBAChB,OAAO;gBACT,KAAK,OAAO,CAAC,QAAQ;oBACnB,IAAI,aAAa,EAAE;wBACjB,iBAAiB,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;qBACpC;oBACD,OAAO;gBACT,KAAK,OAAO,CAAC,MAAM;oBACjB,IAAI,YAAY,EAAE;wBAChB,iBAAiB,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;qBACrC;oBACD,OAAO;aACV;QACH,CAAC,CAAC;QAEF,IAAM,QAAQ,GAAG,UAAC,KAAuB;YACvC,IAAI,GAAG,CAAC,QAAQ,EAAE;gBAChB,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,OAAO;aACR;YAED,wGAAwG;YACxG,IAAM,UAAU,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;YAC5C,IAAI,UAAU,IAAI,GAAG,CAAC,IAAI,EAAE;gBAC1B,OAAO;aACR;YAED,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,yDAAyD;YACzD,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;gBACb,IAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAClD,IAAI,aAAa,EAAE;oBACjB,IAAM,YAAY,GAAG,aAAa,CAAC,UAA+B,CAAC;oBACnE,IAAI,YAAY,IAAI,YAAY,KAAK,QAAQ,CAAC,aAAa,EAAE;wBAC3D,YAAY,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;qBAC7C;iBACF;aACF;YAED,IAAI,GAAG,CAAC,EAAE,KAAK,WAAW,EAAE;gBAC1B,OAAO;aACR;YAED,QAAQ,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,EAAE,EAAE,aAAa,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7D,CAAC,CAAC;QAEF,IAAM,OAAO,GAAG,IAAI;YAClB,GAAC,MAAM,CAAC,eAAe,CAAC,IAAG,IAAI;YAC/B,GAAC,MAAM,CAAC,OAAO,IAAG,eAAe;YACjC,GAAC,MAAM,CAAC,iBAAiB,CAAC,IAAG,WAAW,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ;YACpE,GAAC,MAAM,CAAC,mBAAmB,CAAC,IAAG,GAAG,CAAC,QAAQ;gBAC3C,CAAC;QAEH,IAAM,WAAW,uBACf,SAAS,EAAE,OAAO,IACf,YAAY,KACf,IAAI,EAAE,KAAK,EACX,eAAe,EAAE,GAAG,CAAC,EAAE,KAAK,WAAW,EACvC,eAAe,EAAE,UAAG,WAAW,cAAI,GAAG,CAAC,EAAE,WAAQ,EACjD,aAAa,EAAE,GAAG,CAAC,EAAE,EACrB,QAAQ,EAAE,8BAAM,SAAS,EAAE,MAAM,CAAC,gBAAgB,CAAC,IAAG,GAAG,CAAC,KAAK,CAAQ,GACxE,CAAC;QAEF,IAAI,GAAG,CAAC,QAAQ,EAAE;YAChB,WAAW,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC;SACvC;aAAM;YACL,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;SAChC;QAED,IAAI,GAAG,CAAC,EAAE,KAAK,WAAW,EAAE;YAC1B,WAAW,CAAC,GAAG,GAAG,kBAAkB,CAAC;YACrC,WAAW,CAAC,QAAQ,GAAG,CAAC,CAAC;YACzB,WAAW,CAAC,SAAS,GAAG,UACtB,KAAsF,IACnF,OAAA,aAAa,CAAC,KAAK,CAAC,EAApB,CAAoB,CAAC;SAC3B;aAAM;YACL,WAAW,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;SAC3B;QAED,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,IAAI,GAAG,CAAC,IAAI,EAAE;YACZ,IAAM,WAAW,GAAG,WAAyC,CAAC;YAC9D,WAAW,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;YAC5B,OAAO,GAAG,sCAAO,WAAW,EAAI,CAAC;SAClC;aAAM;YACL,IAAM,WAAW,GAAG,WAA8C,CAAC;YACnE,WAAW,CAAC,IAAI,GAAG,QAAQ,CAAC;YAC5B,IAAI,GAAG,CAAC,QAAQ,EAAE;gBAChB,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC;aAC7B;YACD,OAAO,GAAG,2CAAY,WAAW,EAAI,CAAC;SACvC;QAED,OAAO,CACL,4BACE,GAAG,EAAE,UAAA,OAAO,IAAI,OAAA,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,OAAsB,CAAC,EAAnD,CAAmD,EACnE,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,EAC7B,IAAI,EAAC,cAAc,EACnB,GAAG,EAAE,GAAG,CAAC,EAAE,IAEV,OAAO,CACL,CACN,CAAC;IACJ,CAAC;AACH,CAAC","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}\n\nexport function TabHeaderBar({\n onChange,\n activeTabId,\n tabs,\n variant,\n idNamespace,\n ariaLabel,\n ariaLabelledby,\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 const paginationButtonAttributes = {\n 'aria-hidden': true,\n tabIndex: -1,\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 __nativeAttributes={paginationButtonAttributes}\n disabled={!leftOverflow}\n onClick={() => onPaginationClick(headerBarRef, -1)}\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 __nativeAttributes={paginationButtonAttributes}\n disabled={!rightOverflow}\n onClick={() => onPaginationClick(headerBarRef, 1)}\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 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"]}
|
|
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}\n\nexport function TabHeaderBar({\n onChange,\n activeTabId,\n tabs,\n variant,\n idNamespace,\n ariaLabel,\n ariaLabelledby,\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 const paginationButtonAttributes = {\n 'aria-hidden': true,\n tabIndex: -1,\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 __nativeAttributes={paginationButtonAttributes}\n disabled={!leftOverflow}\n onClick={() => onPaginationClick(headerBarRef, -1)}\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 __nativeAttributes={paginationButtonAttributes}\n disabled={!rightOverflow}\n onClick={() => onPaginationClick(headerBarRef, 1)}\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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../src/tag-editor/internal.tsx"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../src/tag-editor/internal.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAEhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAajD,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,gBAAgB,CAAC,OAAO,CAAC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC5C,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;IAE1D,iBAAiB,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;CACtE;AAED,eAAO,MAAM,UAAU,wFA2FtB,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,eAAO,MAAM,UAAU,2FAgCtB,CAAC"}
|
package/tag-editor/internal.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { __assign } from "tslib";
|
|
2
2
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
3
|
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
-
import React, {
|
|
4
|
+
import React, { useRef, useState } from 'react';
|
|
5
5
|
import InternalAutosuggest from '../autosuggest/internal';
|
|
6
6
|
import useFocusVisible from '../internal/hooks/focus-visible';
|
|
7
7
|
import { KeyCode } from '../internal/keycode';
|
|
@@ -19,20 +19,19 @@ export var TagControl = React.forwardRef(function (_a, ref) {
|
|
|
19
19
|
var isSameQuery = function (key, value) {
|
|
20
20
|
return latestFilteringQuery.current.key === key && latestFilteringQuery.current.value === value;
|
|
21
21
|
};
|
|
22
|
-
// Cancel any active promises on unmount.
|
|
23
|
-
useEffect(function () { return function () { return requestCancelFnRef.current.cancel(); }; }, []);
|
|
24
22
|
var onLoadItems = function (filteringText) {
|
|
25
23
|
if (!onRequest || isSameQuery(filteringKey, filteringText) || requestCancelFnRef.current.isCancelled()) {
|
|
26
24
|
return;
|
|
27
25
|
}
|
|
28
26
|
requestCancelFnRef.current.cancel();
|
|
29
|
-
if (filteringText === '' && (initialOptionsRef === null || initialOptionsRef === void 0 ? void 0 : initialOptionsRef.current) && initialOptionsRef.current.length > 0) {
|
|
30
|
-
// Load in the background, if the value is empty and we already have suggestions.
|
|
31
|
-
setOptions(initialOptionsRef.current);
|
|
32
|
-
}
|
|
33
27
|
if (latestFilteringQuery.current.key !== filteringKey) {
|
|
28
|
+
// Reset suggestions for values if the key is different.
|
|
34
29
|
setOptions([]);
|
|
35
30
|
}
|
|
31
|
+
else if (filteringText === '' && (initialOptionsRef === null || initialOptionsRef === void 0 ? void 0 : initialOptionsRef.current) && initialOptionsRef.current.length > 0) {
|
|
32
|
+
// Load in the background, if the value is empty and we already have suggestions.
|
|
33
|
+
setOptions(initialOptionsRef.current);
|
|
34
|
+
}
|
|
36
35
|
setStatusType('loading');
|
|
37
36
|
latestFilteringQuery.current = { key: filteringKey, value: filteringText };
|
|
38
37
|
var _a = makeCancellable(onRequest(filteringText)), promise = _a.promise, cancel = _a.cancel, isCancelled = _a.isCancelled;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/tag-editor/internal.tsx"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/tag-editor/internal.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 } from 'react';\n\nimport { AutosuggestProps } from '../autosuggest/interfaces';\nimport InternalAutosuggest from '../autosuggest/internal';\nimport { InputProps } from '../input/interfaces';\nimport { DropdownStatusProps } from '../internal/components/dropdown-status';\n\nimport useFocusVisible from '../internal/hooks/focus-visible';\nimport { KeyCode } from '../internal/keycode';\nimport { makeCancellable, PromiseCancelledSignal } from '../internal/utils/promises';\n\nimport styles from './styles.css.js';\n\ninterface FilteringParams {\n key?: string;\n value?: string;\n}\nexport interface TagControlProps {\n row: number;\n value: string;\n readOnly: boolean;\n defaultOptions: AutosuggestProps.Options;\n placeholder: string;\n errorText: string;\n loadingText: string;\n suggestionText: string;\n tooManySuggestionText: string;\n limit: number;\n filteringKey?: string;\n enteredTextLabel: (value: string) => string;\n onChange: (value: string, row: number) => void;\n onBlur?: (row: number) => void;\n onRequest?: (value: string) => Promise<readonly string[]>;\n\n initialOptionsRef?: React.MutableRefObject<AutosuggestProps.Options>;\n}\n\nexport const TagControl = React.forwardRef(\n (\n {\n row,\n value,\n readOnly,\n defaultOptions,\n placeholder,\n errorText,\n loadingText,\n suggestionText,\n tooManySuggestionText,\n limit,\n filteringKey,\n enteredTextLabel,\n onChange,\n onBlur,\n onRequest,\n initialOptionsRef,\n }: TagControlProps,\n ref: React.Ref<InputProps.Ref>\n ) => {\n const [options, setOptions] = useState<AutosuggestProps.Options>(defaultOptions);\n const [statusType, setStatusType] = useState<DropdownStatusProps.StatusType>();\n const requestCancelFnRef = useRef<{ cancel: () => void; isCancelled: () => boolean }>({\n cancel: () => {},\n isCancelled: () => false,\n });\n\n const latestFilteringQuery = useRef<FilteringParams>({ key: undefined, value: undefined });\n const isSameQuery = (key: string | undefined, value: string) =>\n latestFilteringQuery.current.key === key && latestFilteringQuery.current.value === value;\n\n const onLoadItems = (filteringText: string) => {\n if (!onRequest || isSameQuery(filteringKey, filteringText) || requestCancelFnRef.current.isCancelled()) {\n return;\n }\n requestCancelFnRef.current.cancel();\n\n if (latestFilteringQuery.current.key !== filteringKey) {\n // Reset suggestions for values if the key is different.\n setOptions([]);\n } else if (filteringText === '' && initialOptionsRef?.current && initialOptionsRef.current.length > 0) {\n // Load in the background, if the value is empty and we already have suggestions.\n setOptions(initialOptionsRef.current);\n }\n\n setStatusType('loading');\n latestFilteringQuery.current = { key: filteringKey, value: filteringText };\n\n const { promise, cancel, isCancelled } = makeCancellable(onRequest(filteringText));\n promise\n .then(newValues => {\n const newOptions = newValues.map(value => ({ value }));\n setStatusType(undefined);\n setOptions(newOptions);\n if (initialOptionsRef) {\n initialOptionsRef.current = newOptions;\n }\n })\n .catch(err => {\n if (!(err instanceof PromiseCancelledSignal)) {\n setStatusType('error');\n }\n });\n requestCancelFnRef.current = { cancel, isCancelled };\n };\n\n return (\n <InternalAutosuggest\n ref={ref}\n value={value}\n readOnly={readOnly}\n statusType={statusType}\n options={options.length < limit ? options : []}\n empty={options.length < limit ? suggestionText : tooManySuggestionText}\n placeholder={placeholder}\n errorText={errorText}\n loadingText={loadingText}\n enteredTextLabel={enteredTextLabel}\n onChange={({ detail }) => onChange(detail.value, row)}\n onBlur={() => onBlur?.(row)}\n onFocus={() => {\n onLoadItems('');\n }}\n onLoadItems={({ detail }) => {\n onLoadItems(detail.filteringText);\n }}\n />\n );\n }\n);\n\nexport interface UndoButtonProps {\n children: React.ReactNode;\n onClick: () => void;\n}\n\nexport const UndoButton = React.forwardRef(\n ({ children, onClick }: UndoButtonProps, ref: React.Ref<HTMLAnchorElement>) => {\n const focusVisible = useFocusVisible();\n\n return (\n <a\n {...focusVisible}\n ref={ref}\n role=\"button\"\n tabIndex={0}\n className={styles['undo-button']}\n onClick={onClick}\n onKeyDown={event => {\n if (event.keyCode === KeyCode.space || event.keyCode === KeyCode.enter) {\n event.preventDefault();\n }\n // Enter activates the button on key down instead of key up.\n if (event.keyCode === KeyCode.enter) {\n onClick();\n }\n }}\n onKeyUp={event => {\n // Emulate button behavior, which also fires on space.\n if (event.keyCode === KeyCode.space) {\n onClick();\n }\n }}\n >\n {children}\n </a>\n );\n }\n);\n"]}
|