@cloudscape-design/components-themeable 3.0.23 → 3.0.26
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/lib/internal/scss/date-range-picker/styles.scss +0 -4
- package/lib/internal/template/alert/styles.scoped.css +0 -34
- package/lib/internal/template/annotation-context/annotation/annotation-popover.d.ts.map +1 -1
- package/lib/internal/template/annotation-context/annotation/annotation-popover.js +12 -16
- package/lib/internal/template/annotation-context/annotation/annotation-popover.js.map +1 -1
- package/lib/internal/template/annotation-context/annotation/styles.scoped.css +0 -18
- package/lib/internal/template/app-layout/content-wrapper/styles.scoped.css +0 -4
- package/lib/internal/template/app-layout/index.d.ts.map +1 -1
- package/lib/internal/template/app-layout/index.js +6 -4
- package/lib/internal/template/app-layout/index.js.map +1 -1
- package/lib/internal/template/app-layout/mobile-toolbar/styles.scoped.css +0 -9
- package/lib/internal/template/app-layout/styles.scoped.css +0 -20
- package/lib/internal/template/app-layout/toggles/styles.scoped.css +0 -16
- package/lib/internal/template/app-layout/visual-refresh/styles.scoped.css +0 -71
- package/lib/internal/template/area-chart/styles.scoped.css +0 -13
- package/lib/internal/template/attribute-editor/styles.scoped.css +0 -23
- package/lib/internal/template/badge/styles.scoped.css +0 -15
- package/lib/internal/template/bar-chart/interfaces.d.ts +1 -1
- package/lib/internal/template/bar-chart/interfaces.d.ts.map +1 -1
- package/lib/internal/template/bar-chart/interfaces.js.map +1 -1
- package/lib/internal/template/box/styles.scoped.css +0 -171
- package/lib/internal/template/breadcrumb-group/item/styles.scoped.css +0 -11
- package/lib/internal/template/breadcrumb-group/styles.scoped.css +0 -10
- package/lib/internal/template/button/styles.scoped.css +0 -264
- package/lib/internal/template/button-dropdown/category-elements/styles.scoped.css +0 -26
- package/lib/internal/template/button-dropdown/item-element/styles.scoped.css +0 -22
- package/lib/internal/template/button-dropdown/mobile-expandable-group/styles.scoped.css +0 -5
- package/lib/internal/template/button-dropdown/styles.scoped.css +0 -7
- package/lib/internal/template/cards/styles.scoped.css +0 -45
- package/lib/internal/template/checkbox/styles.scoped.css +0 -11
- package/lib/internal/template/code-editor/styles.scoped.css +0 -87
- package/lib/internal/template/collection-preferences/styles.scoped.css +0 -12
- package/lib/internal/template/column-layout/styles.scoped.css +0 -12
- package/lib/internal/template/container/styles.scoped.css +0 -27
- package/lib/internal/template/date-picker/calendar/index.d.ts.map +1 -1
- package/lib/internal/template/date-picker/calendar/index.js +2 -2
- package/lib/internal/template/date-picker/calendar/index.js.map +1 -1
- package/lib/internal/template/date-picker/calendar/utils/locales.d.ts +2 -0
- package/lib/internal/template/date-picker/calendar/utils/locales.d.ts.map +1 -1
- package/lib/internal/template/date-picker/calendar/utils/locales.js +4 -0
- package/lib/internal/template/date-picker/calendar/utils/locales.js.map +1 -1
- package/lib/internal/template/date-picker/styles.scoped.css +0 -45
- package/lib/internal/template/date-range-picker/calendar/grids/day/styles.scoped.css +0 -45
- package/lib/internal/template/date-range-picker/calendar/index.js +2 -2
- package/lib/internal/template/date-range-picker/calendar/index.js.map +1 -1
- package/lib/internal/template/date-range-picker/index.d.ts.map +1 -1
- package/lib/internal/template/date-range-picker/index.js +13 -15
- package/lib/internal/template/date-range-picker/index.js.map +1 -1
- package/lib/internal/template/date-range-picker/relative-range/styles.scoped.css +0 -3
- package/lib/internal/template/date-range-picker/styles.css.js +41 -42
- package/lib/internal/template/date-range-picker/styles.scoped.css +49 -92
- package/lib/internal/template/date-range-picker/styles.selectors.js +41 -42
- package/lib/internal/template/expandable-section/styles.scoped.css +0 -33
- package/lib/internal/template/flashbar/styles.scoped.css +0 -36
- package/lib/internal/template/form/styles.scoped.css +0 -12
- package/lib/internal/template/form-field/styles.scoped.css +0 -26
- package/lib/internal/template/grid/styles.scoped.css +0 -6
- package/lib/internal/template/header/styles.scoped.css +0 -51
- package/lib/internal/template/help-panel/styles.scoped.css +0 -73
- package/lib/internal/template/hotspot/styles.scoped.css +0 -3
- package/lib/internal/template/icon/styles.scoped.css +0 -33
- package/lib/internal/template/input/styles.scoped.css +0 -49
- package/lib/internal/template/internal/base-component/styles.scoped.css +0 -1
- package/lib/internal/template/internal/components/abstract-switch/styles.scoped.css +0 -7
- package/lib/internal/template/internal/components/button-trigger/styles.scoped.css +0 -42
- package/lib/internal/template/internal/components/cartesian-chart/styles.scoped.css +0 -10
- package/lib/internal/template/internal/components/chart-filter/styles.scoped.css +0 -4
- package/lib/internal/template/internal/components/chart-legend/styles.scoped.css +0 -8
- package/lib/internal/template/internal/components/chart-plot/styles.scoped.css +0 -1
- package/lib/internal/template/internal/components/chart-popover/styles.scoped.css +0 -4
- package/lib/internal/template/internal/components/chart-series-details/styles.scoped.css +0 -12
- package/lib/internal/template/internal/components/chart-series-marker/styles.scoped.css +0 -7
- package/lib/internal/template/internal/components/chart-status-container/styles.scoped.css +0 -1
- package/lib/internal/template/internal/components/checkbox-icon/styles.scoped.css +0 -10
- package/lib/internal/template/internal/components/content-layout/styles.scoped.css +0 -5
- package/lib/internal/template/internal/components/dark-ribbon/styles.scoped.css +0 -1
- package/lib/internal/template/internal/components/dropdown/styles.scoped.css +0 -17
- package/lib/internal/template/internal/components/dropdown-footer/styles.scoped.css +0 -6
- package/lib/internal/template/internal/components/dropdown-status/styles.scoped.css +0 -6
- package/lib/internal/template/internal/components/filtering-token/styles.scoped.css +0 -21
- package/lib/internal/template/internal/components/menu-dropdown/styles.scoped.css +0 -17
- package/lib/internal/template/internal/components/option/index.js +3 -3
- package/lib/internal/template/internal/components/option/index.js.map +1 -1
- package/lib/internal/template/internal/components/option/option-parts.js +3 -3
- package/lib/internal/template/internal/components/option/option-parts.js.map +1 -1
- package/lib/internal/template/internal/components/option/styles.scoped.css +0 -16
- package/lib/internal/template/internal/components/options-list/styles.scoped.css +0 -5
- package/lib/internal/template/internal/components/selectable-item/styles.scoped.css +0 -44
- package/lib/internal/template/internal/environment.js +1 -1
- package/lib/internal/template/line-chart/interfaces.d.ts +1 -1
- package/lib/internal/template/line-chart/interfaces.d.ts.map +1 -1
- package/lib/internal/template/line-chart/interfaces.js.map +1 -1
- package/lib/internal/template/link/styles.scoped.css +0 -77
- package/lib/internal/template/mixed-line-bar-chart/bar-series.d.ts +1 -1
- package/lib/internal/template/mixed-line-bar-chart/bar-series.d.ts.map +1 -1
- package/lib/internal/template/mixed-line-bar-chart/bar-series.js.map +1 -1
- package/lib/internal/template/mixed-line-bar-chart/chart-container.d.ts.map +1 -1
- package/lib/internal/template/mixed-line-bar-chart/chart-container.js +9 -10
- package/lib/internal/template/mixed-line-bar-chart/chart-container.js.map +1 -1
- package/lib/internal/template/mixed-line-bar-chart/chart-filters.d.ts +2 -2
- package/lib/internal/template/mixed-line-bar-chart/chart-filters.d.ts.map +1 -1
- package/lib/internal/template/mixed-line-bar-chart/chart-filters.js +1 -2
- package/lib/internal/template/mixed-line-bar-chart/chart-filters.js.map +1 -1
- package/lib/internal/template/mixed-line-bar-chart/chart-legend.d.ts +2 -2
- package/lib/internal/template/mixed-line-bar-chart/chart-legend.d.ts.map +1 -1
- package/lib/internal/template/mixed-line-bar-chart/chart-legend.js +1 -2
- package/lib/internal/template/mixed-line-bar-chart/chart-legend.js.map +1 -1
- package/lib/internal/template/mixed-line-bar-chart/domain.d.ts +4 -0
- package/lib/internal/template/mixed-line-bar-chart/domain.d.ts.map +1 -0
- package/lib/internal/template/mixed-line-bar-chart/domain.js +138 -0
- package/lib/internal/template/mixed-line-bar-chart/domain.js.map +1 -0
- package/lib/internal/template/mixed-line-bar-chart/format-highlighted.d.ts +2 -4
- package/lib/internal/template/mixed-line-bar-chart/format-highlighted.d.ts.map +1 -1
- package/lib/internal/template/mixed-line-bar-chart/format-highlighted.js +26 -15
- package/lib/internal/template/mixed-line-bar-chart/format-highlighted.js.map +1 -1
- package/lib/internal/template/mixed-line-bar-chart/hooks/use-mouse-hover.d.ts.map +1 -1
- package/lib/internal/template/mixed-line-bar-chart/hooks/use-mouse-hover.js +3 -2
- package/lib/internal/template/mixed-line-bar-chart/hooks/use-mouse-hover.js.map +1 -1
- package/lib/internal/template/mixed-line-bar-chart/hooks/use-navigation.d.ts.map +1 -1
- package/lib/internal/template/mixed-line-bar-chart/hooks/use-navigation.js +23 -35
- package/lib/internal/template/mixed-line-bar-chart/hooks/use-navigation.js.map +1 -1
- package/lib/internal/template/mixed-line-bar-chart/interfaces.d.ts +12 -2
- package/lib/internal/template/mixed-line-bar-chart/interfaces.d.ts.map +1 -1
- package/lib/internal/template/mixed-line-bar-chart/interfaces.js.map +1 -1
- package/lib/internal/template/mixed-line-bar-chart/internal.d.ts.map +1 -1
- package/lib/internal/template/mixed-line-bar-chart/internal.js +14 -6
- package/lib/internal/template/mixed-line-bar-chart/internal.js.map +1 -1
- package/lib/internal/template/mixed-line-bar-chart/line-series.d.ts +2 -2
- package/lib/internal/template/mixed-line-bar-chart/line-series.d.ts.map +1 -1
- package/lib/internal/template/mixed-line-bar-chart/line-series.js +21 -9
- package/lib/internal/template/mixed-line-bar-chart/line-series.js.map +1 -1
- package/lib/internal/template/mixed-line-bar-chart/make-scaled-bar-groups.d.ts.map +1 -1
- package/lib/internal/template/mixed-line-bar-chart/make-scaled-bar-groups.js +11 -4
- package/lib/internal/template/mixed-line-bar-chart/make-scaled-bar-groups.js.map +1 -1
- package/lib/internal/template/mixed-line-bar-chart/make-scaled-series.d.ts +2 -4
- package/lib/internal/template/mixed-line-bar-chart/make-scaled-series.d.ts.map +1 -1
- package/lib/internal/template/mixed-line-bar-chart/make-scaled-series.js +89 -25
- package/lib/internal/template/mixed-line-bar-chart/make-scaled-series.js.map +1 -1
- package/lib/internal/template/mixed-line-bar-chart/styles.scoped.css +0 -13
- package/lib/internal/template/mixed-line-bar-chart/utils.d.ts +5 -6
- package/lib/internal/template/mixed-line-bar-chart/utils.d.ts.map +1 -1
- package/lib/internal/template/mixed-line-bar-chart/utils.js +11 -112
- package/lib/internal/template/mixed-line-bar-chart/utils.js.map +1 -1
- package/lib/internal/template/modal/styles.scoped.css +0 -31
- package/lib/internal/template/multiselect/styles.scoped.css +0 -4
- package/lib/internal/template/pagination/styles.scoped.css +0 -22
- package/lib/internal/template/pie-chart/styles.scoped.css +0 -25
- package/lib/internal/template/popover/styles.scoped.css +0 -35
- package/lib/internal/template/progress-bar/internal.d.ts.map +1 -1
- package/lib/internal/template/progress-bar/internal.js +1 -1
- package/lib/internal/template/progress-bar/internal.js.map +1 -1
- package/lib/internal/template/progress-bar/styles.scoped.css +0 -25
- package/lib/internal/template/property-filter/controller.d.ts +3 -3
- package/lib/internal/template/property-filter/controller.d.ts.map +1 -1
- package/lib/internal/template/property-filter/interfaces.d.ts +7 -20
- package/lib/internal/template/property-filter/interfaces.d.ts.map +1 -1
- package/lib/internal/template/property-filter/interfaces.js.map +1 -1
- package/lib/internal/template/property-filter/styles.scoped.css +0 -22
- package/lib/internal/template/property-filter/use-load-items.d.ts +1 -1
- package/lib/internal/template/radio-group/styles.scoped.css +0 -22
- package/lib/internal/template/s3-resource-selector/s3-in-context/styles.scoped.css +0 -6
- package/lib/internal/template/segmented-control/styles.scoped.css +0 -36
- package/lib/internal/template/select/parts/styles.scoped.css +0 -6
- package/lib/internal/template/select/styles.scoped.css +0 -4
- package/lib/internal/template/side-navigation/styles.scoped.css +0 -38
- package/lib/internal/template/space-between/styles.scoped.css +0 -40
- package/lib/internal/template/spinner/styles.scoped.css +0 -17
- package/lib/internal/template/split-panel/styles.scoped.css +0 -65
- package/lib/internal/template/status-indicator/styles.scoped.css +0 -20
- package/lib/internal/template/table/body-cell/styles.scoped.css +0 -29
- package/lib/internal/template/table/header-cell/styles.scoped.css +0 -32
- package/lib/internal/template/table/resizer/styles.scoped.css +0 -6
- package/lib/internal/template/table/selection-control/styles.scoped.css +0 -3
- package/lib/internal/template/table/styles.scoped.css +0 -39
- package/lib/internal/template/table/use-selection.d.ts.map +1 -1
- package/lib/internal/template/table/use-selection.js +5 -5
- package/lib/internal/template/table/use-selection.js.map +1 -1
- package/lib/internal/template/tabs/styles.scoped.css +0 -41
- package/lib/internal/template/tabs/tab-header-bar.d.ts.map +1 -1
- package/lib/internal/template/tabs/tab-header-bar.js +3 -1
- package/lib/internal/template/tabs/tab-header-bar.js.map +1 -1
- package/lib/internal/template/tag-editor/styles.scoped.css +0 -12
- package/lib/internal/template/test-utils/dom/split-panel/index.d.ts +1 -0
- package/lib/internal/template/test-utils/dom/split-panel/index.js +3 -0
- package/lib/internal/template/test-utils/dom/split-panel/index.js.map +1 -1
- package/lib/internal/template/test-utils/selectors/split-panel/index.d.ts +1 -0
- package/lib/internal/template/test-utils/selectors/split-panel/index.js +3 -0
- package/lib/internal/template/test-utils/selectors/split-panel/index.js.map +1 -1
- package/lib/internal/template/test-utils/tsconfig.tsbuildinfo +1 -1
- package/lib/internal/template/text-content/styles.scoped.css +0 -54
- package/lib/internal/template/text-filter/styles.scoped.css +0 -7
- package/lib/internal/template/textarea/styles.scoped.css +0 -30
- package/lib/internal/template/tiles/styles.scoped.css +0 -55
- package/lib/internal/template/toggle/styles.scoped.css +0 -14
- package/lib/internal/template/token-group/styles.scoped.css +0 -35
- package/lib/internal/template/top-navigation/1.0-beta/styles.scoped.css +0 -40
- package/lib/internal/template/top-navigation/styles.scoped.css +0 -75
- package/lib/internal/template/tutorial-panel/components/tutorial-detail-view/styles.scoped.css +0 -22
- package/lib/internal/template/tutorial-panel/components/tutorial-list/styles.scoped.css +0 -24
- package/lib/internal/template/tutorial-panel/styles.scoped.css +0 -5
- package/lib/internal/template/wizard/styles.scoped.css +0 -54
- package/package.json +1 -1
|
@@ -95,14 +95,10 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
95
95
|
SPDX-License-Identifier: Apache-2.0
|
|
96
96
|
*/
|
|
97
97
|
.awsui_root_wih1l_2te74_97:not(#\9) {
|
|
98
|
-
font-size: 14px;
|
|
99
98
|
font-size: var(--font-body-m-size-sregvd, 14px);
|
|
100
|
-
line-height: 22px;
|
|
101
99
|
line-height: var(--font-body-m-line-height-i7xxvv, 22px);
|
|
102
|
-
color: #16191f;
|
|
103
100
|
color: var(--color-text-body-default-7m2b3r, #16191f);
|
|
104
101
|
font-weight: 400;
|
|
105
|
-
font-family: "Noto Sans", "Helvetica Neue", Roboto, Arial, sans-serif;
|
|
106
102
|
font-family: var(--font-family-base-mylvzb, "Noto Sans", "Helvetica Neue", Roboto, Arial, sans-serif);
|
|
107
103
|
width: 100%;
|
|
108
104
|
}
|
|
@@ -111,13 +107,11 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
111
107
|
display: flex;
|
|
112
108
|
align-items: flex-start;
|
|
113
109
|
flex-wrap: wrap;
|
|
114
|
-
padding: 8px 0 4px;
|
|
115
110
|
padding: var(--space-scaled-xs-6859qs, 8px) 0 var(--space-scaled-xxs-95dhkm, 4px);
|
|
116
111
|
}
|
|
117
112
|
.awsui_tools-filtering_wih1l_2te74_112:not(#\9) {
|
|
118
113
|
flex: 1 1 0%;
|
|
119
114
|
max-width: 100%;
|
|
120
|
-
margin-right: 20px;
|
|
121
115
|
margin-right: var(--space-l-4vl6xu, 20px);
|
|
122
116
|
}
|
|
123
117
|
.awsui_tools-align-right_wih1l_2te74_117:not(#\9) {
|
|
@@ -125,17 +119,13 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
125
119
|
margin-left: auto;
|
|
126
120
|
}
|
|
127
121
|
.awsui_tools-pagination_wih1l_2te74_121 + .awsui_tools-preferences_wih1l_2te74_121:not(#\9) {
|
|
128
|
-
border-left: 1px solid #eaeded;
|
|
129
122
|
border-left: var(--border-divider-section-width-5a4cv1, 1px) solid var(--color-border-divider-default-k96bks, #eaeded);
|
|
130
123
|
box-sizing: border-box;
|
|
131
|
-
margin-left: 8px;
|
|
132
124
|
margin-left: var(--space-xs-rsr2qu, 8px);
|
|
133
|
-
padding-left: 8px;
|
|
134
125
|
padding-left: var(--space-xs-rsr2qu, 8px);
|
|
135
126
|
}
|
|
136
127
|
.awsui_tools-small_wih1l_2te74_127 > .awsui_tools-filtering_wih1l_2te74_112:not(#\9) {
|
|
137
128
|
margin-right: 0;
|
|
138
|
-
margin-bottom: 8px;
|
|
139
129
|
margin-bottom: var(--space-scaled-xs-6859qs, 8px);
|
|
140
130
|
flex-basis: 100%;
|
|
141
131
|
}
|
|
@@ -154,24 +144,17 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
154
144
|
position: relative;
|
|
155
145
|
box-sizing: border-box;
|
|
156
146
|
width: 100%;
|
|
157
|
-
padding-top: 0px;
|
|
158
147
|
padding-top: var(--space-table-content-top-su9ka6, 0px);
|
|
159
|
-
padding-bottom: 0px;
|
|
160
148
|
padding-bottom: var(--space-table-content-bottom-2l75ve, 0px);
|
|
161
149
|
overflow-x: auto;
|
|
162
|
-
border-top-right-radius: 0px;
|
|
163
150
|
border-top-right-radius: var(--border-radius-container-1aveko, 0px);
|
|
164
|
-
border-top-left-radius: 0px;
|
|
165
151
|
border-top-left-radius: var(--border-radius-container-1aveko, 0px);
|
|
166
152
|
}
|
|
167
153
|
.awsui_wrapper_wih1l_2te74_143.awsui_variant-stacked_wih1l_2te74_153 > .awsui_table_wih1l_2te74_133:not(#\9), .awsui_wrapper_wih1l_2te74_143.awsui_variant-container_wih1l_2te74_153 > .awsui_table_wih1l_2te74_133:not(#\9) {
|
|
168
|
-
padding-left: 0px;
|
|
169
154
|
padding-left: var(--space-table-horizontal-njdbej, 0px);
|
|
170
|
-
padding-right: 0px;
|
|
171
155
|
padding-right: var(--space-table-horizontal-njdbej, 0px);
|
|
172
156
|
}
|
|
173
157
|
.awsui_wrapper_wih1l_2te74_143.awsui_variant-embedded_wih1l_2te74_157:not(#\9) {
|
|
174
|
-
padding-bottom: 0px;
|
|
175
158
|
padding-bottom: var(--space-table-embedded-content-bottom-7vc5vt, 0px);
|
|
176
159
|
}
|
|
177
160
|
.awsui_wrapper_wih1l_2te74_143.awsui_has-header_wih1l_2te74_160:not(#\9) {
|
|
@@ -183,9 +166,7 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
183
166
|
.awsui_wrapper_wih1l_2te74_143[data-awsui-focus-visible=true]:not(#\9):focus {
|
|
184
167
|
outline: 2px dotted transparent;
|
|
185
168
|
outline-offset: 2px;
|
|
186
|
-
border-radius: 0px;
|
|
187
169
|
border-radius: var(--border-radius-container-1aveko, 0px);
|
|
188
|
-
box-shadow: 0 0 0 2px #0073bb;
|
|
189
170
|
box-shadow: 0 0 0 2px var(--color-border-item-focused-n5kd8g, #0073bb);
|
|
190
171
|
}
|
|
191
172
|
|
|
@@ -196,7 +177,6 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
196
177
|
.awsui_cell-merged-content_wih1l_2te74_177:not(#\9) {
|
|
197
178
|
box-sizing: border-box;
|
|
198
179
|
width: 100%;
|
|
199
|
-
padding: 16px 20px 20px;
|
|
200
180
|
padding: var(--space-scaled-m-pv0fmt, 16px) var(--space-l-4vl6xu, 20px) var(--space-scaled-l-t03y3z, 20px);
|
|
201
181
|
/* stylelint-disable plugin/no-unsupported-browser-features */
|
|
202
182
|
/* stylelint-enable plugin/no-unsupported-browser-features */
|
|
@@ -205,13 +185,11 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
205
185
|
.awsui_cell-merged-content_wih1l_2te74_177:not(#\9) {
|
|
206
186
|
position: sticky;
|
|
207
187
|
left: 0;
|
|
208
|
-
margin: 0 calc(-2 * 0px);
|
|
209
188
|
margin: 0 calc(-2 * var(--space-table-horizontal-njdbej, 0px));
|
|
210
189
|
}
|
|
211
190
|
}
|
|
212
191
|
|
|
213
192
|
.awsui_empty_wih1l_2te74_192:not(#\9) {
|
|
214
|
-
color: #687078;
|
|
215
193
|
color: var(--color-text-empty-izapdt, #687078);
|
|
216
194
|
}
|
|
217
195
|
|
|
@@ -227,9 +205,7 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
227
205
|
min-width: 54px;
|
|
228
206
|
}
|
|
229
207
|
.awsui_selection-control_wih1l_2te74_200.awsui_selection-control-header_wih1l_2te74_207:not(#\9) {
|
|
230
|
-
padding: 8px 20px;
|
|
231
208
|
padding: var(--space-scaled-xs-6859qs, 8px) var(--space-scaled-l-t03y3z, 20px);
|
|
232
|
-
border-left: 1px solid transparent;
|
|
233
209
|
border-left: var(--border-item-width-yvnixs, 1px) solid transparent;
|
|
234
210
|
}
|
|
235
211
|
|
|
@@ -259,13 +235,10 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
259
235
|
box-sizing: border-box;
|
|
260
236
|
width: 100%;
|
|
261
237
|
border-radius: 0;
|
|
262
|
-
background: #fafafa;
|
|
263
238
|
background: var(--color-background-table-header-mryayf, #fafafa);
|
|
264
239
|
}
|
|
265
240
|
.awsui_header-secondary_wih1l_2te74_229.awsui_variant-stacked_wih1l_2te74_153 > .awsui_table_wih1l_2te74_133:not(#\9), .awsui_header-secondary_wih1l_2te74_229.awsui_variant-container_wih1l_2te74_153 > .awsui_table_wih1l_2te74_133:not(#\9) {
|
|
266
|
-
padding-left: 0px;
|
|
267
241
|
padding-left: var(--space-table-horizontal-njdbej, 0px);
|
|
268
|
-
padding-right: 0px;
|
|
269
242
|
padding-right: var(--space-table-horizontal-njdbej, 0px);
|
|
270
243
|
}
|
|
271
244
|
.awsui_header-secondary_wih1l_2te74_229:not(#\9)::-webkit-scrollbar {
|
|
@@ -274,27 +247,19 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
274
247
|
}
|
|
275
248
|
|
|
276
249
|
.awsui_header-controls_wih1l_2te74_249:not(#\9) {
|
|
277
|
-
padding-top: 12px;
|
|
278
250
|
padding-top: var(--space-container-header-vertical-0bd19u, 12px);
|
|
279
|
-
padding-bottom: 12px;
|
|
280
251
|
padding-bottom: var(--space-container-header-vertical-0bd19u, 12px);
|
|
281
252
|
}
|
|
282
253
|
.awsui_header-controls_wih1l_2te74_249.awsui_variant-stacked_wih1l_2te74_153:not(#\9), .awsui_header-controls_wih1l_2te74_249.awsui_variant-container_wih1l_2te74_153:not(#\9) {
|
|
283
|
-
padding-left: calc(0px + 20px);
|
|
284
254
|
padding-left: calc(var(--space-table-horizontal-njdbej, 0px) + var(--space-table-header-horizontal-4u689g, 20px));
|
|
285
|
-
padding-right: calc(0px + 20px);
|
|
286
255
|
padding-right: calc(var(--space-table-horizontal-njdbej, 0px) + var(--space-table-header-horizontal-4u689g, 20px));
|
|
287
256
|
}
|
|
288
257
|
.awsui_header-controls_wih1l_2te74_249.awsui_variant-embedded_wih1l_2te74_157:not(#\9) {
|
|
289
|
-
padding-left: 20px;
|
|
290
258
|
padding-left: var(--space-table-header-horizontal-4u689g, 20px);
|
|
291
|
-
padding-right: 20px;
|
|
292
259
|
padding-right: var(--space-table-header-horizontal-4u689g, 20px);
|
|
293
|
-
padding-top: 12px;
|
|
294
260
|
padding-top: var(--space-table-embedded-header-top-1yxc8d, 12px);
|
|
295
261
|
}
|
|
296
262
|
.awsui_header-controls_wih1l_2te74_249 + .awsui_header-secondary_wih1l_2te74_229:not(#\9) {
|
|
297
|
-
border-top: 1px solid #eaeded;
|
|
298
263
|
border-top: var(--border-divider-list-width-hacikr, 1px) solid var(--color-border-container-divider-z203b8, #eaeded);
|
|
299
264
|
}
|
|
300
265
|
|
|
@@ -302,19 +267,15 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
302
267
|
border: none;
|
|
303
268
|
margin: 0;
|
|
304
269
|
height: 0;
|
|
305
|
-
border-top: 1px solid #eaeded;
|
|
306
270
|
border-top: var(--border-divider-section-width-5a4cv1, 1px) solid var(--color-border-divider-default-k96bks, #eaeded);
|
|
307
271
|
}
|
|
308
272
|
|
|
309
273
|
.awsui_footer-wrapper_wih1l_2te74_273.awsui_variant-stacked_wih1l_2te74_153:not(#\9), .awsui_footer-wrapper_wih1l_2te74_273.awsui_variant-container_wih1l_2te74_153:not(#\9) {
|
|
310
|
-
padding-left: 0px;
|
|
311
274
|
padding-left: var(--space-table-horizontal-njdbej, 0px);
|
|
312
|
-
padding-right: 0px;
|
|
313
275
|
padding-right: var(--space-table-horizontal-njdbej, 0px);
|
|
314
276
|
}
|
|
315
277
|
|
|
316
278
|
.awsui_footer_wih1l_2te74_273:not(#\9) {
|
|
317
|
-
padding: 12px 20px;
|
|
318
279
|
padding: var(--space-scaled-s-cu1hzn, 12px) var(--space-table-footer-horizontal-m6qo87, 20px);
|
|
319
280
|
}
|
|
320
281
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-selection.d.ts","sourceRoot":"","sources":["../../../src/table/use-selection.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAY,MAAM,OAAO,CAAC;AAIhD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAwB1C,wBAAgB,YAAY,CAAC,aAAa,EAAE,UAAU,CAAC,eAAe,CAAC,EAAE,UAAU,EAAE,MAAM;;;;;2BAkBxE,aAAa;yBAAb,aAAa;+BAdI,WAAW,aAAa,MAAM,aAAa,CAAC,CAAC,GAAG,CAAC;EA0BpF;AAeD,eAAO,MAAM,YAAY;;;;;;;;;;CAIxB,CAAC;AAEF,wBAAgB,YAAY,CAAC,CAAC,EAAE,EAC9B,KAAK,EACL,aAAkB,EAClB,aAAa,EACb,cAA4B,EAC5B,OAAO,EACP,iBAAiB,EACjB,UAAU,GACX,EAAE,IAAI,CACL,UAAU,CAAC,CAAC,CAAC,EACb,YAAY,GAAG,OAAO,GAAG,eAAe,GAAG,eAAe,GAAG,gBAAgB,GAAG,SAAS,GAAG,mBAAmB,CAChH;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"use-selection.d.ts","sourceRoot":"","sources":["../../../src/table/use-selection.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAY,MAAM,OAAO,CAAC;AAIhD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAwB1C,wBAAgB,YAAY,CAAC,aAAa,EAAE,UAAU,CAAC,eAAe,CAAC,EAAE,UAAU,EAAE,MAAM;;;;;2BAkBxE,aAAa;yBAAb,aAAa;+BAdI,WAAW,aAAa,MAAM,aAAa,CAAC,CAAC,GAAG,CAAC;EA0BpF;AAeD,eAAO,MAAM,YAAY;;;;;;;;;;CAIxB,CAAC;AAEF,wBAAgB,YAAY,CAAC,CAAC,EAAE,EAC9B,KAAK,EACL,aAAkB,EAClB,aAAa,EACb,cAA4B,EAC5B,OAAO,EACP,iBAAiB,EACjB,UAAU,GACX,EAAE,IAAI,CACL,UAAU,CAAC,CAAC,CAAC,EACb,YAAY,GAAG,OAAO,GAAG,eAAe,GAAG,eAAe,GAAG,gBAAgB,GAAG,SAAS,GAAG,mBAAmB,CAChH;;;;;;;;;;;kCAsGiC,CAAC;;;;;;;;+BAWJ,OAAO;EAIrC"}
|
|
@@ -86,18 +86,18 @@ export function useSelection(_a) {
|
|
|
86
86
|
}); };
|
|
87
87
|
var _g = selectionType
|
|
88
88
|
? items.reduce(function (_a, item) {
|
|
89
|
-
var allDisabled = _a[0], allEnabledSelected = _a[1]
|
|
89
|
+
var allDisabled = _a[0], allEnabledSelected = _a[1];
|
|
90
90
|
var _b = getItemState(item), disabled = _b.disabled, selected = _b.selected;
|
|
91
91
|
return [
|
|
92
92
|
// all items are disabled (or none are present)
|
|
93
93
|
allDisabled && disabled,
|
|
94
94
|
// all enabled items are selected (or none are present)
|
|
95
95
|
allEnabledSelected && (selected || disabled),
|
|
96
|
-
// the page has at least one selected item
|
|
97
|
-
hasSelected || selected,
|
|
98
96
|
];
|
|
99
|
-
}, [true, true
|
|
100
|
-
: [true, true
|
|
97
|
+
}, [true, true])
|
|
98
|
+
: [true, true], allDisabled = _g[0], allEnabledSelected = _g[1];
|
|
99
|
+
// the page has at least one selected item
|
|
100
|
+
var hasSelected = finalSelectedItems.length > 0;
|
|
101
101
|
var handleToggleAll = function () {
|
|
102
102
|
var requestedItems = new ItemSet(trackBy, items);
|
|
103
103
|
var newSelectedItems = allEnabledSelected ? deselectItems(requestedItems) : selectItems(requestedItems);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-selection.js","sourceRoot":"","sources":["../../../src/table/use-selection.ts"],"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 { KeyboardEvent, useState } from 'react';\nimport { fireNonCancelableEvent } from '../internal/events';\nimport { useUniqueId } from '../internal/hooks/use-unique-id';\nimport { findUpUntil } from '../internal/utils/dom';\nimport { TableProps } from './interfaces';\nimport { getTrackableValue } from './utils';\nimport selectionStyles from './selection-control/styles.css.js';\nimport { joinStrings } from '../internal/utils/strings';\n\nconst SELECTION_ITEM = 'selection-item';\nconst SELECTION_ROOT = 'selection-root';\n\nfunction findSelectionControlByIndex(rootContainer: HTMLElement, index: number) {\n if (index === -1) {\n // find \"select all\" checkbox\n return rootContainer.querySelector<HTMLInputElement>(\n `[data-${SELECTION_ITEM}=\"all\"] .${selectionStyles.root} input`\n );\n }\n return rootContainer.querySelectorAll<HTMLInputElement>(\n `[data-${SELECTION_ITEM}=\"item\"] .${selectionStyles.root} input`\n )[index];\n}\n\nfunction findRootContainer(element: HTMLElement) {\n return findUpUntil(element, node => node.dataset.selectionRoot === 'true')!;\n}\n\nexport function useFocusMove(selectionType: TableProps['selectionType'], totalItems: number) {\n if (selectionType !== 'multi') {\n return {};\n }\n function moveFocus(sourceElement: HTMLElement, fromIndex: number, direction: -1 | 1) {\n let index = fromIndex;\n const rootContainer = findRootContainer(sourceElement);\n\n while (index >= -1 && index < totalItems) {\n index += direction;\n const control = findSelectionControlByIndex(rootContainer, index);\n if (control && !control.disabled) {\n control.focus();\n break;\n }\n }\n }\n const [moveFocusDown, moveFocusUp] = ([1, -1] as const).map(direction => {\n return (event: KeyboardEvent) => {\n const target = event.currentTarget as HTMLElement;\n const itemNode = findUpUntil(target, node => node.dataset.selectionItem === 'item')!;\n const fromIndex = Array.prototype.indexOf.call(itemNode.parentElement!.children, itemNode);\n moveFocus(target, fromIndex, direction);\n };\n });\n return {\n moveFocusDown,\n moveFocusUp,\n moveFocus,\n };\n}\n\n// A set, that compares items by their \"trackables\" (the results of applying `trackBy` to them)\nclass ItemSet<T> {\n constructor(trackBy: TableProps.TrackBy<T> | undefined, items: ReadonlyArray<T>) {\n this.trackBy = trackBy;\n items.forEach(this.put);\n }\n private trackBy: TableProps.TrackBy<T> | undefined;\n private map: Map<unknown, T> = new Map();\n put = (item: T) => this.map.set.call(this.map, getTrackableValue(this.trackBy, item), item);\n has = (item: T) => this.map.has.call(this.map, getTrackableValue(this.trackBy, item));\n forEach = this.map.forEach.bind(this.map);\n}\n\nexport const focusMarkers = {\n item: { ['data-' + SELECTION_ITEM]: 'item' },\n all: { ['data-' + SELECTION_ITEM]: 'all' },\n root: { ['data-' + SELECTION_ROOT]: 'true' },\n};\n\nexport function useSelection<T>({\n items,\n selectedItems = [],\n selectionType,\n isItemDisabled = () => false,\n trackBy,\n onSelectionChange,\n ariaLabels,\n}: Pick<\n TableProps<T>,\n 'ariaLabels' | 'items' | 'selectedItems' | 'selectionType' | 'isItemDisabled' | 'trackBy' | 'onSelectionChange'\n>) {\n const [shiftPressed, setShiftPressed] = useState(false);\n const [lastClickedItem, setLastClickedItem] = useState<T | null>(null);\n const selectionName = useUniqueId();\n const finalSelectedItems = selectionType === 'single' ? selectedItems.slice(0, 1) : selectedItems;\n const selectedSet = new ItemSet(trackBy, finalSelectedItems);\n const itemIndexesMap = new Map();\n items.forEach((item, i) => itemIndexesMap.set(getTrackableValue(trackBy, item), i));\n const isItemSelected = selectedSet.has.bind(selectedSet);\n const getItemState = (item: T) => ({\n disabled: isItemDisabled(item),\n selected: isItemSelected(item),\n });\n const [allDisabled, allEnabledSelected, hasSelected] = selectionType\n ? items.reduce(\n ([allDisabled, allEnabledSelected, hasSelected], item) => {\n const { disabled, selected } = getItemState(item);\n return [\n // all items are disabled (or none are present)\n allDisabled && disabled,\n // all enabled items are selected (or none are present)\n allEnabledSelected && (selected || disabled),\n // the page has at least one selected item\n hasSelected || selected,\n ];\n },\n [true, true, false]\n )\n : [true, true, false];\n\n const handleToggleAll = () => {\n const requestedItems = new ItemSet(trackBy, items);\n const newSelectedItems = allEnabledSelected ? deselectItems(requestedItems) : selectItems(requestedItems);\n fireNonCancelableEvent(onSelectionChange, { selectedItems: newSelectedItems });\n };\n\n const getRequestedItems = (item: T) => {\n const requestedItems = new ItemSet(trackBy, [item]);\n let lastClickedItemIndex = lastClickedItem ? itemIndexesMap.get(getTrackableValue(trackBy, lastClickedItem)) : -1;\n if (lastClickedItemIndex === undefined) {\n lastClickedItemIndex = -1;\n }\n // we use lastClickedItemIndex to determine if filtering/sorting/pagination\n // made previously selected item invisible, therefore we reset state for shift-select\n if (shiftPressed && lastClickedItemIndex !== -1) {\n // item is always in items\n const currentItemIndex = itemIndexesMap.get(getTrackableValue(trackBy, item)) as number;\n const start = Math.min(currentItemIndex, lastClickedItemIndex);\n const end = Math.max(currentItemIndex, lastClickedItemIndex);\n items.slice(start, end + 1).forEach(item => requestedItems.put(item));\n }\n return requestedItems;\n };\n\n const deselectItems = (requestedItems: ItemSet<T>) => {\n const newSelectedItems: Array<T> = [];\n selectedItems.forEach(selectedItem => {\n const toUnselect = requestedItems.has(selectedItem);\n if (!toUnselect || isItemDisabled(selectedItem)) {\n newSelectedItems.push(selectedItem);\n }\n });\n return newSelectedItems;\n };\n\n const selectItems = (requestedItems: ItemSet<T>) => {\n const newSelectedItems = [...selectedItems];\n requestedItems.forEach(newItem => {\n const { selected, disabled } = getItemState(newItem);\n if (!selected && !disabled) {\n newSelectedItems.push(newItem);\n }\n });\n return newSelectedItems;\n };\n\n const handleToggleItem = (item: T) => () => {\n const { disabled, selected } = getItemState(item);\n if (disabled || (selectionType === 'single' && selected)) {\n return;\n }\n if (selectionType === 'single') {\n fireNonCancelableEvent(onSelectionChange, { selectedItems: [item] });\n } else {\n const requestedItems = getRequestedItems(item);\n const selectedItems = selected ? deselectItems(requestedItems) : selectItems(requestedItems);\n fireNonCancelableEvent(onSelectionChange, { selectedItems });\n setLastClickedItem(item);\n }\n };\n return {\n isItemSelected,\n selectAllProps: {\n name: selectionName,\n disabled: allDisabled,\n selectionType: selectionType,\n indeterminate: hasSelected && !allEnabledSelected,\n checked: hasSelected && allEnabledSelected,\n onChange: handleToggleAll,\n ariaLabel: joinStrings(ariaLabels?.selectionGroupLabel, ariaLabels?.allItemsSelectionLabel?.({ selectedItems })),\n },\n getItemSelectionProps: (item: T) => ({\n name: selectionName,\n selectionType: selectionType,\n ariaLabel: joinStrings(\n ariaLabels?.selectionGroupLabel,\n ariaLabels?.itemSelectionLabel?.({ selectedItems }, item)\n ),\n onChange: handleToggleItem(item),\n checked: isItemSelected(item),\n disabled: isItemDisabled(item),\n }),\n updateShiftToggle: (value: boolean) => {\n setShiftPressed(value);\n },\n };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"use-selection.js","sourceRoot":"","sources":["../../../src/table/use-selection.ts"],"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 { KeyboardEvent, useState } from 'react';\nimport { fireNonCancelableEvent } from '../internal/events';\nimport { useUniqueId } from '../internal/hooks/use-unique-id';\nimport { findUpUntil } from '../internal/utils/dom';\nimport { TableProps } from './interfaces';\nimport { getTrackableValue } from './utils';\nimport selectionStyles from './selection-control/styles.css.js';\nimport { joinStrings } from '../internal/utils/strings';\n\nconst SELECTION_ITEM = 'selection-item';\nconst SELECTION_ROOT = 'selection-root';\n\nfunction findSelectionControlByIndex(rootContainer: HTMLElement, index: number) {\n if (index === -1) {\n // find \"select all\" checkbox\n return rootContainer.querySelector<HTMLInputElement>(\n `[data-${SELECTION_ITEM}=\"all\"] .${selectionStyles.root} input`\n );\n }\n return rootContainer.querySelectorAll<HTMLInputElement>(\n `[data-${SELECTION_ITEM}=\"item\"] .${selectionStyles.root} input`\n )[index];\n}\n\nfunction findRootContainer(element: HTMLElement) {\n return findUpUntil(element, node => node.dataset.selectionRoot === 'true')!;\n}\n\nexport function useFocusMove(selectionType: TableProps['selectionType'], totalItems: number) {\n if (selectionType !== 'multi') {\n return {};\n }\n function moveFocus(sourceElement: HTMLElement, fromIndex: number, direction: -1 | 1) {\n let index = fromIndex;\n const rootContainer = findRootContainer(sourceElement);\n\n while (index >= -1 && index < totalItems) {\n index += direction;\n const control = findSelectionControlByIndex(rootContainer, index);\n if (control && !control.disabled) {\n control.focus();\n break;\n }\n }\n }\n const [moveFocusDown, moveFocusUp] = ([1, -1] as const).map(direction => {\n return (event: KeyboardEvent) => {\n const target = event.currentTarget as HTMLElement;\n const itemNode = findUpUntil(target, node => node.dataset.selectionItem === 'item')!;\n const fromIndex = Array.prototype.indexOf.call(itemNode.parentElement!.children, itemNode);\n moveFocus(target, fromIndex, direction);\n };\n });\n return {\n moveFocusDown,\n moveFocusUp,\n moveFocus,\n };\n}\n\n// A set, that compares items by their \"trackables\" (the results of applying `trackBy` to them)\nclass ItemSet<T> {\n constructor(trackBy: TableProps.TrackBy<T> | undefined, items: ReadonlyArray<T>) {\n this.trackBy = trackBy;\n items.forEach(this.put);\n }\n private trackBy: TableProps.TrackBy<T> | undefined;\n private map: Map<unknown, T> = new Map();\n put = (item: T) => this.map.set.call(this.map, getTrackableValue(this.trackBy, item), item);\n has = (item: T) => this.map.has.call(this.map, getTrackableValue(this.trackBy, item));\n forEach = this.map.forEach.bind(this.map);\n}\n\nexport const focusMarkers = {\n item: { ['data-' + SELECTION_ITEM]: 'item' },\n all: { ['data-' + SELECTION_ITEM]: 'all' },\n root: { ['data-' + SELECTION_ROOT]: 'true' },\n};\n\nexport function useSelection<T>({\n items,\n selectedItems = [],\n selectionType,\n isItemDisabled = () => false,\n trackBy,\n onSelectionChange,\n ariaLabels,\n}: Pick<\n TableProps<T>,\n 'ariaLabels' | 'items' | 'selectedItems' | 'selectionType' | 'isItemDisabled' | 'trackBy' | 'onSelectionChange'\n>) {\n const [shiftPressed, setShiftPressed] = useState(false);\n const [lastClickedItem, setLastClickedItem] = useState<T | null>(null);\n const selectionName = useUniqueId();\n const finalSelectedItems = selectionType === 'single' ? selectedItems.slice(0, 1) : selectedItems;\n const selectedSet = new ItemSet(trackBy, finalSelectedItems);\n const itemIndexesMap = new Map();\n items.forEach((item, i) => itemIndexesMap.set(getTrackableValue(trackBy, item), i));\n const isItemSelected = selectedSet.has.bind(selectedSet);\n const getItemState = (item: T) => ({\n disabled: isItemDisabled(item),\n selected: isItemSelected(item),\n });\n const [allDisabled, allEnabledSelected] = selectionType\n ? items.reduce(\n ([allDisabled, allEnabledSelected], item) => {\n const { disabled, selected } = getItemState(item);\n return [\n // all items are disabled (or none are present)\n allDisabled && disabled,\n // all enabled items are selected (or none are present)\n allEnabledSelected && (selected || disabled),\n ];\n },\n [true, true]\n )\n : [true, true];\n\n // the page has at least one selected item\n const hasSelected = finalSelectedItems.length > 0;\n\n const handleToggleAll = () => {\n const requestedItems = new ItemSet(trackBy, items);\n const newSelectedItems = allEnabledSelected ? deselectItems(requestedItems) : selectItems(requestedItems);\n fireNonCancelableEvent(onSelectionChange, { selectedItems: newSelectedItems });\n };\n\n const getRequestedItems = (item: T) => {\n const requestedItems = new ItemSet(trackBy, [item]);\n let lastClickedItemIndex = lastClickedItem ? itemIndexesMap.get(getTrackableValue(trackBy, lastClickedItem)) : -1;\n if (lastClickedItemIndex === undefined) {\n lastClickedItemIndex = -1;\n }\n // we use lastClickedItemIndex to determine if filtering/sorting/pagination\n // made previously selected item invisible, therefore we reset state for shift-select\n if (shiftPressed && lastClickedItemIndex !== -1) {\n // item is always in items\n const currentItemIndex = itemIndexesMap.get(getTrackableValue(trackBy, item)) as number;\n const start = Math.min(currentItemIndex, lastClickedItemIndex);\n const end = Math.max(currentItemIndex, lastClickedItemIndex);\n items.slice(start, end + 1).forEach(item => requestedItems.put(item));\n }\n return requestedItems;\n };\n\n const deselectItems = (requestedItems: ItemSet<T>) => {\n const newSelectedItems: Array<T> = [];\n selectedItems.forEach(selectedItem => {\n const toUnselect = requestedItems.has(selectedItem);\n if (!toUnselect || isItemDisabled(selectedItem)) {\n newSelectedItems.push(selectedItem);\n }\n });\n return newSelectedItems;\n };\n\n const selectItems = (requestedItems: ItemSet<T>) => {\n const newSelectedItems = [...selectedItems];\n requestedItems.forEach(newItem => {\n const { selected, disabled } = getItemState(newItem);\n if (!selected && !disabled) {\n newSelectedItems.push(newItem);\n }\n });\n return newSelectedItems;\n };\n\n const handleToggleItem = (item: T) => () => {\n const { disabled, selected } = getItemState(item);\n if (disabled || (selectionType === 'single' && selected)) {\n return;\n }\n if (selectionType === 'single') {\n fireNonCancelableEvent(onSelectionChange, { selectedItems: [item] });\n } else {\n const requestedItems = getRequestedItems(item);\n const selectedItems = selected ? deselectItems(requestedItems) : selectItems(requestedItems);\n fireNonCancelableEvent(onSelectionChange, { selectedItems });\n setLastClickedItem(item);\n }\n };\n return {\n isItemSelected,\n selectAllProps: {\n name: selectionName,\n disabled: allDisabled,\n selectionType: selectionType,\n indeterminate: hasSelected && !allEnabledSelected,\n checked: hasSelected && allEnabledSelected,\n onChange: handleToggleAll,\n ariaLabel: joinStrings(ariaLabels?.selectionGroupLabel, ariaLabels?.allItemsSelectionLabel?.({ selectedItems })),\n },\n getItemSelectionProps: (item: T) => ({\n name: selectionName,\n selectionType: selectionType,\n ariaLabel: joinStrings(\n ariaLabels?.selectionGroupLabel,\n ariaLabels?.itemSelectionLabel?.({ selectedItems }, item)\n ),\n onChange: handleToggleItem(item),\n checked: isItemSelected(item),\n disabled: isItemDisabled(item),\n }),\n updateShiftToggle: (value: boolean) => {\n setShiftPressed(value);\n },\n };\n}\n"]}
|
|
@@ -207,28 +207,22 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
207
207
|
}
|
|
208
208
|
|
|
209
209
|
.awsui_pagination-button_14rmt_15inb_209:not(#\9) {
|
|
210
|
-
margin: 12px 0;
|
|
211
210
|
margin: var(--space-scaled-s-cu1hzn, 12px) 0;
|
|
212
|
-
padding: 0 4px;
|
|
213
211
|
padding: 0 var(--space-xxs-ynfts5, 4px);
|
|
214
212
|
display: flex;
|
|
215
213
|
}
|
|
216
214
|
.awsui_pagination-button-left_14rmt_15inb_214:not(#\9) {
|
|
217
|
-
border-right: 1px solid #d5dbdb;
|
|
218
215
|
border-right: var(--border-divider-section-width-5a4cv1, 1px) solid var(--color-border-control-disabled-zgidl5, #d5dbdb);
|
|
219
216
|
}
|
|
220
217
|
.awsui_pagination-button-left-scrollable_14rmt_15inb_217:not(#\9) {
|
|
221
218
|
z-index: 1;
|
|
222
|
-
box-shadow: 5px 0px 4px -3px #eaeded, 1px 0px 0px 0px #eaeded;
|
|
223
219
|
box-shadow: 5px 0px 4px -3px var(--color-border-tabs-shadow-22eyu5, #eaeded), 1px 0px 0px 0px var(--color-border-tabs-shadow-22eyu5, #eaeded);
|
|
224
220
|
}
|
|
225
221
|
.awsui_pagination-button-right_14rmt_15inb_221:not(#\9) {
|
|
226
|
-
border-left: 1px solid #d5dbdb;
|
|
227
222
|
border-left: var(--border-divider-section-width-5a4cv1, 1px) solid var(--color-border-control-disabled-zgidl5, #d5dbdb);
|
|
228
223
|
}
|
|
229
224
|
.awsui_pagination-button-right-scrollable_14rmt_15inb_224:not(#\9) {
|
|
230
225
|
z-index: 1;
|
|
231
|
-
box-shadow: -5px 0px 4px -3px #eaeded, -1px 0px 0px 0 #eaeded;
|
|
232
226
|
box-shadow: -5px 0px 4px -3px var(--color-border-tabs-shadow-22eyu5, #eaeded), -1px 0px 0px 0 var(--color-border-tabs-shadow-22eyu5, #eaeded);
|
|
233
227
|
}
|
|
234
228
|
|
|
@@ -237,7 +231,6 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
237
231
|
padding: 0;
|
|
238
232
|
flex-shrink: 0;
|
|
239
233
|
display: flex;
|
|
240
|
-
max-width: calc(90% - 20px);
|
|
241
234
|
max-width: calc(90% - var(--space-l-4vl6xu, 20px));
|
|
242
235
|
}
|
|
243
236
|
.awsui_tabs-tab_14rmt_15inb_229 > button:not(#\9) {
|
|
@@ -247,7 +240,6 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
247
240
|
.awsui_tabs-tab-label_14rmt_15inb_240:not(#\9) {
|
|
248
241
|
display: flex;
|
|
249
242
|
align-items: center;
|
|
250
|
-
padding: 4px 20px;
|
|
251
243
|
padding: var(--space-scaled-2x-xxs-t5qzmf, 4px) var(--space-l-4vl6xu, 20px);
|
|
252
244
|
text-align: left;
|
|
253
245
|
position: relative;
|
|
@@ -257,9 +249,7 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
257
249
|
}
|
|
258
250
|
|
|
259
251
|
.awsui_tabs-tab_14rmt_15inb_229:not(#\9):not(:last-child) > a > .awsui_tabs-tab-label_14rmt_15inb_240, .awsui_tabs-tab_14rmt_15inb_229:not(#\9):not(:last-child) > button > .awsui_tabs-tab-label_14rmt_15inb_240 {
|
|
260
|
-
margin-right: calc(-1 * 1px);
|
|
261
252
|
margin-right: calc(-1 * var(--border-divider-section-width-5a4cv1, 1px));
|
|
262
|
-
border-right: 1px solid #aab7b8;
|
|
263
253
|
border-right: var(--border-divider-section-width-5a4cv1, 1px) solid var(--color-border-tabs-divider-lf9ugx, #aab7b8);
|
|
264
254
|
}
|
|
265
255
|
|
|
@@ -269,22 +259,15 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
269
259
|
align-items: stretch;
|
|
270
260
|
text-decoration: none;
|
|
271
261
|
cursor: pointer;
|
|
272
|
-
padding: calc(12px - 1px) 0 12px 0;
|
|
273
262
|
padding: calc(var(--space-scaled-s-cu1hzn, 12px) - 1px) 0 var(--space-scaled-s-cu1hzn, 12px) 0;
|
|
274
263
|
margin-top: 1px;
|
|
275
|
-
border: 1px solid transparent;
|
|
276
264
|
border: var(--border-divider-section-width-5a4cv1, 1px) solid transparent;
|
|
277
|
-
font-size: 14px;
|
|
278
265
|
font-size: var(--font-tabs-size-nwweud, 14px);
|
|
279
|
-
line-height: 22px;
|
|
280
266
|
line-height: var(--font-tabs-line-height-7pfmod, 22px);
|
|
281
|
-
font-weight: 700;
|
|
282
267
|
font-weight: var(--font-wayfinding-link-active-weight-r40wpo, 700);
|
|
283
|
-
color: #545b64;
|
|
284
268
|
color: var(--color-text-interactive-default-9me1cm, #545b64);
|
|
285
269
|
}
|
|
286
270
|
.awsui_tabs-tab-link_14rmt_15inb_256:not(#\9):hover {
|
|
287
|
-
color: #0073bb;
|
|
288
271
|
color: var(--color-text-accent-s0earc, #0073bb);
|
|
289
272
|
}
|
|
290
273
|
.awsui_tabs-tab-link_14rmt_15inb_256:not(#\9):focus {
|
|
@@ -296,24 +279,17 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
296
279
|
}
|
|
297
280
|
.awsui_tabs-tab-link_14rmt_15inb_256[data-awsui-focus-visible=true]:not(#\9):focus {
|
|
298
281
|
outline: 2px dotted transparent;
|
|
299
|
-
outline-offset: calc(0px - 1px);
|
|
300
282
|
outline-offset: calc(var(--space-tabs-focus-outline-gutter-th1z8v, 0px) - 1px);
|
|
301
283
|
}
|
|
302
284
|
.awsui_tabs-tab-link_14rmt_15inb_256[data-awsui-focus-visible=true]:not(#\9):focus::before {
|
|
303
285
|
content: " ";
|
|
304
286
|
display: block;
|
|
305
287
|
position: absolute;
|
|
306
|
-
left: calc(-1 * 0px);
|
|
307
288
|
left: calc(-1 * var(--space-tabs-focus-outline-gutter-th1z8v, 0px));
|
|
308
|
-
top: calc(-1 * 0px);
|
|
309
289
|
top: calc(-1 * var(--space-tabs-focus-outline-gutter-th1z8v, 0px));
|
|
310
|
-
width: calc(100% + 2 * 0px);
|
|
311
290
|
width: calc(100% + 2 * var(--space-tabs-focus-outline-gutter-th1z8v, 0px));
|
|
312
|
-
height: calc(100% + 2 * 0px);
|
|
313
291
|
height: calc(100% + 2 * var(--space-tabs-focus-outline-gutter-th1z8v, 0px));
|
|
314
|
-
border-radius: 2px;
|
|
315
292
|
border-radius: var(--border-radius-control-default-focus-ring-hekmgc, 2px);
|
|
316
|
-
box-shadow: 0 0 0 2px #0073bb;
|
|
317
293
|
box-shadow: 0 0 0 2px var(--color-border-item-focused-n5kd8g, #0073bb);
|
|
318
294
|
}
|
|
319
295
|
.awsui_tabs-tab-link_14rmt_15inb_256[data-awsui-focus-visible=true]:not(#\9):focus > a > .awsui_tabs-tab-label_14rmt_15inb_240, .awsui_tabs-tab-link_14rmt_15inb_256[data-awsui-focus-visible=true]:not(#\9):focus > button > .awsui_tabs-tab-label_14rmt_15inb_240 {
|
|
@@ -324,7 +300,6 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
324
300
|
margin-left: 1px;
|
|
325
301
|
}
|
|
326
302
|
.awsui_tabs-tab_14rmt_15inb_229:not(#\9):first-child > a > .awsui_tabs-tab-label_14rmt_15inb_240, .awsui_tabs-tab_14rmt_15inb_229:not(#\9):first-child > button > .awsui_tabs-tab-label_14rmt_15inb_240 {
|
|
327
|
-
padding-left: calc(20px - 1px);
|
|
328
303
|
padding-left: calc(var(--space-l-4vl6xu, 20px) - 1px);
|
|
329
304
|
}
|
|
330
305
|
|
|
@@ -332,15 +307,12 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
332
307
|
margin-right: 1px;
|
|
333
308
|
}
|
|
334
309
|
.awsui_tabs-tab_14rmt_15inb_229:not(#\9):last-child > a > .awsui_tabs-tab-label_14rmt_15inb_240, .awsui_tabs-tab_14rmt_15inb_229:not(#\9):last-child > button > .awsui_tabs-tab-label_14rmt_15inb_240 {
|
|
335
|
-
padding-right: calc(20px - 1px);
|
|
336
310
|
padding-right: calc(var(--space-l-4vl6xu, 20px) - 1px);
|
|
337
311
|
}
|
|
338
312
|
|
|
339
313
|
.awsui_tabs-tab-disabled_14rmt_15inb_313:not(#\9), .awsui_tabs-tab-disabled_14rmt_15inb_313:not(#\9):hover {
|
|
340
314
|
cursor: default;
|
|
341
|
-
color: #aab7b8;
|
|
342
315
|
color: var(--color-text-interactive-disabled-jcikk2, #aab7b8);
|
|
343
|
-
font-weight: 400;
|
|
344
316
|
font-weight: var(--font-tabs-disabled-weight-0s5m6k, 400);
|
|
345
317
|
}
|
|
346
318
|
|
|
@@ -349,18 +321,13 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
349
321
|
position: absolute;
|
|
350
322
|
left: 0;
|
|
351
323
|
width: 100%;
|
|
352
|
-
bottom: calc(-1 * 1px);
|
|
353
324
|
bottom: calc(-1 * var(--border-divider-section-width-5a4cv1, 1px));
|
|
354
|
-
height: 2px;
|
|
355
325
|
height: var(--border-active-width-bo43mb, 2px);
|
|
356
|
-
border-radius: 0px;
|
|
357
326
|
border-radius: var(--border-radius-tabs-focus-ring-774qv9, 0px);
|
|
358
|
-
background: #16191f;
|
|
359
327
|
background: var(--color-border-tabs-underline-ba6hzi, #16191f);
|
|
360
328
|
opacity: 0;
|
|
361
329
|
}
|
|
362
330
|
.awsui_tabs-tab-link_14rmt_15inb_256:not(#\9):not(.awsui_tabs-tab-disabled_14rmt_15inb_313).awsui_refresh_14rmt_15inb_330:after {
|
|
363
|
-
transition: opacity 165ms cubic-bezier(0.84, 0, 0.16, 1);
|
|
364
331
|
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));
|
|
365
332
|
}
|
|
366
333
|
@media (prefers-reduced-motion: reduce) {
|
|
@@ -375,7 +342,6 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
375
342
|
}
|
|
376
343
|
|
|
377
344
|
.awsui_tabs-tab-active_14rmt_15inb_344:not(#\9):not(.awsui_tabs-tab-disabled_14rmt_15inb_313) {
|
|
378
|
-
color: #0073bb;
|
|
379
345
|
color: var(--color-text-accent-s0earc, #0073bb);
|
|
380
346
|
}
|
|
381
347
|
.awsui_tabs-tab-active_14rmt_15inb_344:not(#\9):not(.awsui_tabs-tab-disabled_14rmt_15inb_313):after {
|
|
@@ -383,7 +349,6 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
383
349
|
}
|
|
384
350
|
|
|
385
351
|
.awsui_tabs-header-with-divider_14rmt_15inb_351:not(#\9) {
|
|
386
|
-
border-bottom: 1px solid #aab7b8;
|
|
387
352
|
border-bottom: var(--border-divider-section-width-5a4cv1, 1px) solid var(--color-border-tabs-divider-lf9ugx, #aab7b8);
|
|
388
353
|
}
|
|
389
354
|
|
|
@@ -421,26 +386,20 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
421
386
|
widows: 2;
|
|
422
387
|
word-spacing: normal;
|
|
423
388
|
box-sizing: border-box;
|
|
424
|
-
font-size: 14px;
|
|
425
389
|
font-size: var(--font-body-m-size-sregvd, 14px);
|
|
426
|
-
line-height: 22px;
|
|
427
390
|
line-height: var(--font-body-m-line-height-i7xxvv, 22px);
|
|
428
|
-
color: #16191f;
|
|
429
391
|
color: var(--color-text-body-default-7m2b3r, #16191f);
|
|
430
392
|
font-weight: 400;
|
|
431
|
-
font-family: "Noto Sans", "Helvetica Neue", Roboto, Arial, sans-serif;
|
|
432
393
|
font-family: var(--font-family-base-mylvzb, "Noto Sans", "Helvetica Neue", Roboto, Arial, sans-serif);
|
|
433
394
|
display: block;
|
|
434
395
|
width: 100%;
|
|
435
396
|
}
|
|
436
397
|
|
|
437
398
|
.awsui_tabs-content-wrapper_14rmt_15inb_372.awsui_with-paddings_14rmt_15inb_372:not(#\9) {
|
|
438
|
-
padding: 16px 0;
|
|
439
399
|
padding: var(--space-scaled-m-pv0fmt, 16px) 0;
|
|
440
400
|
}
|
|
441
401
|
|
|
442
402
|
.awsui_tabs-container-content-wrapper_14rmt_15inb_376.awsui_with-paddings_14rmt_15inb_372:not(#\9) {
|
|
443
|
-
padding-top: 0px;
|
|
444
403
|
padding-top: var(--space-tabs-content-top-5xrhx5, 0px);
|
|
445
404
|
}
|
|
446
405
|
|
|
@@ -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,eAkRnB"}
|
|
@@ -91,7 +91,9 @@ export function TabHeaderBar(_a) {
|
|
|
91
91
|
'aria-hidden': true,
|
|
92
92
|
tabIndex: -1
|
|
93
93
|
};
|
|
94
|
-
return (
|
|
94
|
+
return (
|
|
95
|
+
//converted span to div as list should not be a child of span for HTML validation
|
|
96
|
+
React.createElement("div", { className: classes, ref: containerRef },
|
|
95
97
|
horizontalOverflow && (React.createElement("span", { ref: leftOverflowButton, className: leftButtonClasses },
|
|
96
98
|
React.createElement(InternalButton, { variant: "icon", iconName: "angle-left", __nativeAttributes: paginationButtonAttributes, disabled: !leftOverflow, onClick: function () { return onPaginationClick(headerBarRef, -1); } }))),
|
|
97
99
|
React.createElement("ul", { role: "tablist", className: styles['tabs-header-list'], "aria-label": ariaLabel, "aria-labelledby": ariaLabelledby, ref: headerBarRef, onScroll: onScroll }, tabs.map(renderTabHeader)),
|
|
@@ -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}\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(headerBarRef);\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 <span className={classes} ref={containerRef}>\n {horizontalOverflow && (\n <span ref={leftOverflowButton} className={leftButtonClasses}>\n <InternalButton\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 variant=\"icon\"\n iconName=\"angle-right\"\n __nativeAttributes={paginationButtonAttributes}\n disabled={!rightOverflow}\n onClick={() => onPaginationClick(headerBarRef, 1)}\n />\n </span>\n )}\n </span>\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(headerBarRef);\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 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 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"]}
|
|
@@ -99,18 +99,13 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
99
99
|
}
|
|
100
100
|
|
|
101
101
|
.awsui_undo-button_brdst_1297e_101:not(#\9) {
|
|
102
|
-
color: #0073bb;
|
|
103
102
|
color: var(--color-text-link-default-753y4e, #0073bb);
|
|
104
|
-
font-weight: 400;
|
|
105
103
|
font-weight: var(--font-link-button-weight-g5p0bg, 400);
|
|
106
|
-
letter-spacing: normal;
|
|
107
104
|
letter-spacing: var(--font-link-button-letter-spacing-7hbib6, normal);
|
|
108
105
|
text-decoration: underline;
|
|
109
106
|
/* stylelint-disable-next-line plugin/no-unsupported-browser-features */
|
|
110
|
-
text-decoration-color: currentColor;
|
|
111
107
|
text-decoration-color: var(--color-text-link-button-underline-0wuqvw, currentColor);
|
|
112
108
|
transition-property: color, text-decoration;
|
|
113
|
-
transition-duration: 165ms;
|
|
114
109
|
transition-duration: var(--motion-duration-refresh-only-medium-5flen2, 165ms);
|
|
115
110
|
}
|
|
116
111
|
@media (prefers-reduced-motion: reduce) {
|
|
@@ -125,31 +120,24 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
125
120
|
}
|
|
126
121
|
.awsui_undo-button_brdst_1297e_101:not(#\9):hover {
|
|
127
122
|
cursor: pointer;
|
|
128
|
-
color: #0073bb;
|
|
129
123
|
color: var(--color-text-link-hover-ok01xk, #0073bb);
|
|
130
124
|
}
|
|
131
125
|
.awsui_undo-button_brdst_1297e_101:not(#\9):focus {
|
|
132
126
|
outline: none;
|
|
133
127
|
}
|
|
134
128
|
.awsui_undo-button_brdst_1297e_101:not(#\9):active {
|
|
135
|
-
color: #0073bb;
|
|
136
129
|
color: var(--color-text-link-hover-ok01xk, #0073bb);
|
|
137
130
|
}
|
|
138
131
|
.awsui_undo-button_brdst_1297e_101:not(#\9):active, .awsui_undo-button_brdst_1297e_101:not(#\9):focus, .awsui_undo-button_brdst_1297e_101:not(#\9):hover {
|
|
139
132
|
text-decoration: underline;
|
|
140
133
|
/* stylelint-disable-next-line plugin/no-unsupported-browser-features */
|
|
141
|
-
text-decoration-color: currentColor;
|
|
142
134
|
text-decoration-color: var(--color-text-link-button-underline-hover-shj5w3, currentColor);
|
|
143
135
|
}
|
|
144
136
|
.awsui_undo-button_brdst_1297e_101[data-awsui-focus-visible=true]:not(#\9):focus {
|
|
145
137
|
outline: thin dotted;
|
|
146
|
-
outline: 5px auto Highlight;
|
|
147
138
|
outline: var(--border-link-focus-ring-outline-67z0xv, 5px auto Highlight);
|
|
148
139
|
outline-offset: 2px;
|
|
149
|
-
outline-color: #0073bb;
|
|
150
140
|
outline-color: var(--color-border-item-focused-n5kd8g, #0073bb);
|
|
151
|
-
border-radius: 2px;
|
|
152
141
|
border-radius: var(--border-radius-control-default-focus-ring-hekmgc, 2px);
|
|
153
|
-
box-shadow: 0 0 0 0px #0073bb;
|
|
154
142
|
box-shadow: 0 0 0 var(--border-link-focus-ring-shadow-spread-e3dct9, 0px) var(--color-border-item-focused-n5kd8g, #0073bb);
|
|
155
143
|
}
|
|
@@ -2,6 +2,7 @@ import { ComponentWrapper, ElementWrapper } from '@cloudscape-design/test-utils-
|
|
|
2
2
|
import ButtonWrapper from '../button';
|
|
3
3
|
export default class SplitPanelWrapper extends ComponentWrapper {
|
|
4
4
|
static rootSelector: string;
|
|
5
|
+
findHeader(): ElementWrapper;
|
|
5
6
|
findPreferencesButton(): ButtonWrapper | null;
|
|
6
7
|
findCloseButton(): ButtonWrapper | null;
|
|
7
8
|
findOpenButton(): ButtonWrapper | null;
|