@cloudscape-design/components 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.
Files changed (163) hide show
  1. package/alert/styles.scoped.css +0 -34
  2. package/annotation-context/annotation/styles.scoped.css +0 -18
  3. package/app-layout/content-wrapper/styles.scoped.css +0 -4
  4. package/app-layout/mobile-toolbar/styles.scoped.css +0 -9
  5. package/app-layout/styles.scoped.css +0 -20
  6. package/app-layout/toggles/styles.scoped.css +0 -16
  7. package/app-layout/visual-refresh/styles.scoped.css +0 -71
  8. package/area-chart/styles.scoped.css +0 -13
  9. package/attribute-editor/styles.scoped.css +0 -23
  10. package/badge/styles.scoped.css +0 -15
  11. package/bar-chart/interfaces.d.ts +1 -1
  12. package/bar-chart/interfaces.d.ts.map +1 -1
  13. package/bar-chart/interfaces.js.map +1 -1
  14. package/box/styles.scoped.css +0 -171
  15. package/breadcrumb-group/item/styles.scoped.css +0 -11
  16. package/breadcrumb-group/styles.scoped.css +0 -10
  17. package/button/styles.scoped.css +0 -264
  18. package/button-dropdown/category-elements/styles.scoped.css +0 -26
  19. package/button-dropdown/item-element/styles.scoped.css +0 -22
  20. package/button-dropdown/mobile-expandable-group/styles.scoped.css +0 -5
  21. package/button-dropdown/styles.scoped.css +0 -7
  22. package/cards/styles.scoped.css +0 -45
  23. package/checkbox/styles.scoped.css +0 -11
  24. package/code-editor/styles.scoped.css +0 -87
  25. package/collection-preferences/styles.scoped.css +0 -12
  26. package/column-layout/styles.scoped.css +0 -12
  27. package/container/styles.scoped.css +0 -27
  28. package/date-picker/styles.scoped.css +0 -45
  29. package/date-range-picker/calendar/grids/day/styles.scoped.css +0 -45
  30. package/date-range-picker/index.d.ts.map +1 -1
  31. package/date-range-picker/index.js +13 -15
  32. package/date-range-picker/index.js.map +1 -1
  33. package/date-range-picker/relative-range/styles.scoped.css +0 -3
  34. package/date-range-picker/styles.css.js +41 -42
  35. package/date-range-picker/styles.scoped.css +49 -92
  36. package/date-range-picker/styles.selectors.js +41 -42
  37. package/expandable-section/styles.scoped.css +0 -33
  38. package/flashbar/styles.scoped.css +0 -36
  39. package/form/styles.scoped.css +0 -12
  40. package/form-field/styles.scoped.css +0 -26
  41. package/grid/styles.scoped.css +0 -6
  42. package/header/styles.scoped.css +0 -51
  43. package/help-panel/styles.scoped.css +0 -73
  44. package/hotspot/styles.scoped.css +0 -3
  45. package/icon/styles.scoped.css +0 -33
  46. package/input/styles.scoped.css +0 -49
  47. package/internal/base-component/styles.scoped.css +0 -1
  48. package/internal/components/abstract-switch/styles.scoped.css +0 -7
  49. package/internal/components/button-trigger/styles.scoped.css +0 -42
  50. package/internal/components/cartesian-chart/styles.scoped.css +0 -10
  51. package/internal/components/chart-filter/styles.scoped.css +0 -4
  52. package/internal/components/chart-legend/styles.scoped.css +0 -8
  53. package/internal/components/chart-plot/styles.scoped.css +0 -1
  54. package/internal/components/chart-popover/styles.scoped.css +0 -4
  55. package/internal/components/chart-series-details/styles.scoped.css +0 -12
  56. package/internal/components/chart-series-marker/styles.scoped.css +0 -7
  57. package/internal/components/chart-status-container/styles.scoped.css +0 -1
  58. package/internal/components/checkbox-icon/styles.scoped.css +0 -10
  59. package/internal/components/content-layout/styles.scoped.css +0 -5
  60. package/internal/components/dark-ribbon/styles.scoped.css +0 -1
  61. package/internal/components/dropdown/styles.scoped.css +0 -17
  62. package/internal/components/dropdown-footer/styles.scoped.css +0 -6
  63. package/internal/components/dropdown-status/styles.scoped.css +0 -6
  64. package/internal/components/filtering-token/styles.scoped.css +0 -21
  65. package/internal/components/menu-dropdown/styles.scoped.css +0 -17
  66. package/internal/components/option/styles.scoped.css +0 -16
  67. package/internal/components/options-list/styles.scoped.css +0 -5
  68. package/internal/components/selectable-item/styles.scoped.css +0 -44
  69. package/internal/environment.js +1 -1
  70. package/line-chart/interfaces.d.ts +1 -1
  71. package/line-chart/interfaces.d.ts.map +1 -1
  72. package/line-chart/interfaces.js.map +1 -1
  73. package/link/styles.scoped.css +0 -77
  74. package/mixed-line-bar-chart/bar-series.d.ts +1 -1
  75. package/mixed-line-bar-chart/bar-series.d.ts.map +1 -1
  76. package/mixed-line-bar-chart/bar-series.js.map +1 -1
  77. package/mixed-line-bar-chart/chart-container.d.ts.map +1 -1
  78. package/mixed-line-bar-chart/chart-container.js +9 -10
  79. package/mixed-line-bar-chart/chart-container.js.map +1 -1
  80. package/mixed-line-bar-chart/chart-filters.d.ts +2 -2
  81. package/mixed-line-bar-chart/chart-filters.d.ts.map +1 -1
  82. package/mixed-line-bar-chart/chart-filters.js +1 -2
  83. package/mixed-line-bar-chart/chart-filters.js.map +1 -1
  84. package/mixed-line-bar-chart/chart-legend.d.ts +2 -2
  85. package/mixed-line-bar-chart/chart-legend.d.ts.map +1 -1
  86. package/mixed-line-bar-chart/chart-legend.js +1 -2
  87. package/mixed-line-bar-chart/chart-legend.js.map +1 -1
  88. package/mixed-line-bar-chart/domain.d.ts +4 -0
  89. package/mixed-line-bar-chart/domain.d.ts.map +1 -0
  90. package/mixed-line-bar-chart/domain.js +138 -0
  91. package/mixed-line-bar-chart/domain.js.map +1 -0
  92. package/mixed-line-bar-chart/format-highlighted.d.ts +2 -4
  93. package/mixed-line-bar-chart/format-highlighted.d.ts.map +1 -1
  94. package/mixed-line-bar-chart/format-highlighted.js +26 -15
  95. package/mixed-line-bar-chart/format-highlighted.js.map +1 -1
  96. package/mixed-line-bar-chart/hooks/use-mouse-hover.d.ts.map +1 -1
  97. package/mixed-line-bar-chart/hooks/use-mouse-hover.js +3 -2
  98. package/mixed-line-bar-chart/hooks/use-mouse-hover.js.map +1 -1
  99. package/mixed-line-bar-chart/hooks/use-navigation.d.ts.map +1 -1
  100. package/mixed-line-bar-chart/hooks/use-navigation.js +23 -35
  101. package/mixed-line-bar-chart/hooks/use-navigation.js.map +1 -1
  102. package/mixed-line-bar-chart/interfaces.d.ts +12 -2
  103. package/mixed-line-bar-chart/interfaces.d.ts.map +1 -1
  104. package/mixed-line-bar-chart/interfaces.js.map +1 -1
  105. package/mixed-line-bar-chart/internal.d.ts.map +1 -1
  106. package/mixed-line-bar-chart/internal.js +14 -6
  107. package/mixed-line-bar-chart/internal.js.map +1 -1
  108. package/mixed-line-bar-chart/line-series.d.ts +2 -2
  109. package/mixed-line-bar-chart/line-series.d.ts.map +1 -1
  110. package/mixed-line-bar-chart/line-series.js +21 -9
  111. package/mixed-line-bar-chart/line-series.js.map +1 -1
  112. package/mixed-line-bar-chart/make-scaled-bar-groups.d.ts.map +1 -1
  113. package/mixed-line-bar-chart/make-scaled-bar-groups.js +11 -4
  114. package/mixed-line-bar-chart/make-scaled-bar-groups.js.map +1 -1
  115. package/mixed-line-bar-chart/make-scaled-series.d.ts +2 -4
  116. package/mixed-line-bar-chart/make-scaled-series.d.ts.map +1 -1
  117. package/mixed-line-bar-chart/make-scaled-series.js +89 -25
  118. package/mixed-line-bar-chart/make-scaled-series.js.map +1 -1
  119. package/mixed-line-bar-chart/styles.scoped.css +0 -13
  120. package/mixed-line-bar-chart/utils.d.ts +5 -6
  121. package/mixed-line-bar-chart/utils.d.ts.map +1 -1
  122. package/mixed-line-bar-chart/utils.js +11 -112
  123. package/mixed-line-bar-chart/utils.js.map +1 -1
  124. package/modal/styles.scoped.css +0 -31
  125. package/multiselect/styles.scoped.css +0 -4
  126. package/package.json +1 -1
  127. package/pagination/styles.scoped.css +0 -22
  128. package/pie-chart/styles.scoped.css +0 -25
  129. package/popover/styles.scoped.css +0 -35
  130. package/progress-bar/styles.scoped.css +0 -25
  131. package/property-filter/styles.scoped.css +0 -22
  132. package/radio-group/styles.scoped.css +0 -22
  133. package/s3-resource-selector/s3-in-context/styles.scoped.css +0 -6
  134. package/segmented-control/styles.scoped.css +0 -36
  135. package/select/parts/styles.scoped.css +0 -6
  136. package/select/styles.scoped.css +0 -4
  137. package/side-navigation/styles.scoped.css +0 -38
  138. package/space-between/styles.scoped.css +0 -40
  139. package/spinner/styles.scoped.css +0 -17
  140. package/split-panel/styles.scoped.css +0 -65
  141. package/status-indicator/styles.scoped.css +0 -20
  142. package/table/body-cell/styles.scoped.css +0 -29
  143. package/table/header-cell/styles.scoped.css +0 -32
  144. package/table/resizer/styles.scoped.css +0 -6
  145. package/table/selection-control/styles.scoped.css +0 -3
  146. package/table/styles.scoped.css +0 -39
  147. package/table/use-selection.d.ts.map +1 -1
  148. package/table/use-selection.js +5 -5
  149. package/table/use-selection.js.map +1 -1
  150. package/tabs/styles.scoped.css +0 -41
  151. package/tag-editor/styles.scoped.css +0 -12
  152. package/text-content/styles.scoped.css +0 -54
  153. package/text-filter/styles.scoped.css +0 -7
  154. package/textarea/styles.scoped.css +0 -30
  155. package/tiles/styles.scoped.css +0 -55
  156. package/toggle/styles.scoped.css +0 -14
  157. package/token-group/styles.scoped.css +0 -35
  158. package/top-navigation/1.0-beta/styles.scoped.css +0 -40
  159. package/top-navigation/styles.scoped.css +0 -75
  160. package/tutorial-panel/components/tutorial-detail-view/styles.scoped.css +0 -22
  161. package/tutorial-panel/components/tutorial-list/styles.scoped.css +0 -24
  162. package/tutorial-panel/styles.scoped.css +0 -5
  163. package/wizard/styles.scoped.css +0 -54
@@ -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_edm43_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: #000716;
103
100
  color: var(--color-text-body-default-ajf1h5, #000716);
104
101
  font-weight: 400;
105
- font-family: "Open Sans", "Helvetica Neue", Roboto, Arial, sans-serif;
106
102
  font-family: var(--font-family-base-qnistn, "Open 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_edm43_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_edm43_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_edm43_121 + .awsui_tools-preferences_wih1l_edm43_121:not(#\9) {
128
- border-left: 2px solid #e9ebed;
129
122
  border-left: var(--border-divider-section-width-4wm2it, 2px) solid var(--color-border-divider-default-7s2wjw, #e9ebed);
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_edm43_127 > .awsui_tools-filtering_wih1l_edm43_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: 12px;
158
147
  padding-top: var(--space-table-content-top-t15dd1, 12px);
159
- padding-bottom: 4px;
160
148
  padding-bottom: var(--space-table-content-bottom-pg6yvn, 4px);
161
149
  overflow-x: auto;
162
- border-top-right-radius: 16px;
163
150
  border-top-right-radius: var(--border-radius-container-gh9ysk, 16px);
164
- border-top-left-radius: 16px;
165
151
  border-top-left-radius: var(--border-radius-container-gh9ysk, 16px);
166
152
  }
167
153
  .awsui_wrapper_wih1l_edm43_143.awsui_variant-stacked_wih1l_edm43_153 > .awsui_table_wih1l_edm43_133:not(#\9), .awsui_wrapper_wih1l_edm43_143.awsui_variant-container_wih1l_edm43_153 > .awsui_table_wih1l_edm43_133:not(#\9) {
168
- padding-left: 24px;
169
154
  padding-left: var(--space-table-horizontal-58vuca, 24px);
170
- padding-right: 24px;
171
155
  padding-right: var(--space-table-horizontal-58vuca, 24px);
172
156
  }
173
157
  .awsui_wrapper_wih1l_edm43_143.awsui_variant-embedded_wih1l_edm43_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_edm43_143.awsui_has-header_wih1l_edm43_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_edm43_143[data-awsui-focus-visible=true]:not(#\9):focus {
184
167
  outline: 2px dotted transparent;
185
168
  outline-offset: 2px;
186
- border-radius: 16px;
187
169
  border-radius: var(--border-radius-container-gh9ysk, 16px);
188
- box-shadow: 0 0 0 2px #0972d3;
189
170
  box-shadow: 0 0 0 2px var(--color-border-item-focused-ap3b6s, #0972d3);
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_edm43_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_edm43_177:not(#\9) {
206
186
  position: sticky;
207
187
  left: 0;
208
- margin: 0 calc(-2 * 24px);
209
188
  margin: 0 calc(-2 * var(--space-table-horizontal-58vuca, 24px));
210
189
  }
211
190
  }
212
191
 
213
192
  .awsui_empty_wih1l_edm43_192:not(#\9) {
214
- color: #5f6b7a;
215
193
  color: var(--color-text-empty-fjv325, #5f6b7a);
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_edm43_200.awsui_selection-control-header_wih1l_edm43_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: 2px solid transparent;
233
209
  border-left: var(--border-item-width-qbbbsa, 2px) 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: #ffffff;
263
238
  background: var(--color-background-table-header-i1pa1g, #ffffff);
264
239
  }
265
240
  .awsui_header-secondary_wih1l_edm43_229.awsui_variant-stacked_wih1l_edm43_153 > .awsui_table_wih1l_edm43_133:not(#\9), .awsui_header-secondary_wih1l_edm43_229.awsui_variant-container_wih1l_edm43_153 > .awsui_table_wih1l_edm43_133:not(#\9) {
266
- padding-left: 24px;
267
241
  padding-left: var(--space-table-horizontal-58vuca, 24px);
268
- padding-right: 24px;
269
242
  padding-right: var(--space-table-horizontal-58vuca, 24px);
270
243
  }
271
244
  .awsui_header-secondary_wih1l_edm43_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_edm43_249:not(#\9) {
277
- padding-top: 12px;
278
250
  padding-top: var(--space-container-header-vertical-zsjhel, 12px);
279
- padding-bottom: 12px;
280
251
  padding-bottom: var(--space-container-header-vertical-zsjhel, 12px);
281
252
  }
282
253
  .awsui_header-controls_wih1l_edm43_249.awsui_variant-stacked_wih1l_edm43_153:not(#\9), .awsui_header-controls_wih1l_edm43_249.awsui_variant-container_wih1l_edm43_153:not(#\9) {
283
- padding-left: calc(24px + 0px);
284
254
  padding-left: calc(var(--space-table-horizontal-58vuca, 24px) + var(--space-table-header-horizontal-et2ko8, 0px));
285
- padding-right: calc(24px + 0px);
286
255
  padding-right: calc(var(--space-table-horizontal-58vuca, 24px) + var(--space-table-header-horizontal-et2ko8, 0px));
287
256
  }
288
257
  .awsui_header-controls_wih1l_edm43_249.awsui_variant-embedded_wih1l_edm43_157:not(#\9) {
289
- padding-left: 0px;
290
258
  padding-left: var(--space-table-header-horizontal-et2ko8, 0px);
291
- padding-right: 0px;
292
259
  padding-right: var(--space-table-header-horizontal-et2ko8, 0px);
293
- padding-top: 0px;
294
260
  padding-top: var(--space-table-embedded-header-top-zf07fk, 0px);
295
261
  }
296
262
  .awsui_header-controls_wih1l_edm43_249 + .awsui_header-secondary_wih1l_edm43_229:not(#\9) {
297
- border-top: 1px solid transparent;
298
263
  border-top: var(--border-divider-list-width-hacikr, 1px) solid var(--color-border-container-divider-4ade7z, transparent);
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: 2px solid #e9ebed;
306
270
  border-top: var(--border-divider-section-width-4wm2it, 2px) solid var(--color-border-divider-default-7s2wjw, #e9ebed);
307
271
  }
308
272
 
309
273
  .awsui_footer-wrapper_wih1l_edm43_273.awsui_variant-stacked_wih1l_edm43_153:not(#\9), .awsui_footer-wrapper_wih1l_edm43_273.awsui_variant-container_wih1l_edm43_153:not(#\9) {
310
- padding-left: 24px;
311
274
  padding-left: var(--space-table-horizontal-58vuca, 24px);
312
- padding-right: 24px;
313
275
  padding-right: var(--space-table-horizontal-58vuca, 24px);
314
276
  }
315
277
 
316
278
  .awsui_footer_wih1l_edm43_273:not(#\9) {
317
- padding: 12px 0px;
318
279
  padding: var(--space-scaled-s-cu1hzn, 12px) var(--space-table-footer-horizontal-8o6sk8, 0px);
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;;;;;;;;;;;kCAqGiC,CAAC;;;;;;;;+BAWJ,OAAO;EAIrC"}
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], hasSelected = _a[2];
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, false])
100
- : [true, true, false], allDisabled = _g[0], allEnabledSelected = _g[1], hasSelected = _g[2];
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_1678d_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_1678d_214:not(#\9) {
217
- border-right: 2px solid #d1d5db;
218
215
  border-right: var(--border-divider-section-width-4wm2it, 2px) solid var(--color-border-control-disabled-vx8bco, #d1d5db);
219
216
  }
220
217
  .awsui_pagination-button-left-scrollable_14rmt_1678d_217:not(#\9) {
221
218
  z-index: 1;
222
- box-shadow: 5px 0px 4px -3px rgba(0, 7, 22, 0.12), 1px 0px 0px 0px rgba(0, 7, 22, 0.12);
223
219
  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));
224
220
  }
225
221
  .awsui_pagination-button-right_14rmt_1678d_221:not(#\9) {
226
- border-left: 2px solid #d1d5db;
227
222
  border-left: var(--border-divider-section-width-4wm2it, 2px) solid var(--color-border-control-disabled-vx8bco, #d1d5db);
228
223
  }
229
224
  .awsui_pagination-button-right-scrollable_14rmt_1678d_224:not(#\9) {
230
225
  z-index: 1;
231
- box-shadow: -5px 0px 4px -3px rgba(0, 7, 22, 0.12), -1px 0px 0px 0 rgba(0, 7, 22, 0.12);
232
226
  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));
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_1678d_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_1678d_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_1678d_229:not(#\9):not(:last-child) > a > .awsui_tabs-tab-label_14rmt_1678d_240, .awsui_tabs-tab_14rmt_1678d_229:not(#\9):not(:last-child) > button > .awsui_tabs-tab-label_14rmt_1678d_240 {
260
- margin-right: calc(-1 * 2px);
261
252
  margin-right: calc(-1 * var(--border-divider-section-width-4wm2it, 2px));
262
- border-right: 2px solid #e9ebed;
263
253
  border-right: var(--border-divider-section-width-4wm2it, 2px) solid var(--color-border-tabs-divider-69fx5i, #e9ebed);
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: 2px solid transparent;
276
264
  border: var(--border-divider-section-width-4wm2it, 2px) solid transparent;
277
- font-size: 16px;
278
265
  font-size: var(--font-tabs-size-01zslx, 16px);
279
- line-height: 20px;
280
266
  line-height: var(--font-tabs-line-height-qo8cr6, 20px);
281
- font-weight: 800;
282
267
  font-weight: var(--font-wayfinding-link-active-weight-l3fid7, 800);
283
- color: #414d5c;
284
268
  color: var(--color-text-interactive-default-eg5fsa, #414d5c);
285
269
  }
286
270
  .awsui_tabs-tab-link_14rmt_1678d_256:not(#\9):hover {
287
- color: #0972d3;
288
271
  color: var(--color-text-accent-s1eqko, #0972d3);
289
272
  }
290
273
  .awsui_tabs-tab-link_14rmt_1678d_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_1678d_256[data-awsui-focus-visible=true]:not(#\9):focus {
298
281
  outline: 2px dotted transparent;
299
- outline-offset: calc(-8px - 1px);
300
282
  outline-offset: calc(var(--space-tabs-focus-outline-gutter-64zu5e, -8px) - 1px);
301
283
  }
302
284
  .awsui_tabs-tab-link_14rmt_1678d_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 * -8px);
307
288
  left: calc(-1 * var(--space-tabs-focus-outline-gutter-64zu5e, -8px));
308
- top: calc(-1 * -8px);
309
289
  top: calc(-1 * var(--space-tabs-focus-outline-gutter-64zu5e, -8px));
310
- width: calc(100% + 2 * -8px);
311
290
  width: calc(100% + 2 * var(--space-tabs-focus-outline-gutter-64zu5e, -8px));
312
- height: calc(100% + 2 * -8px);
313
291
  height: calc(100% + 2 * var(--space-tabs-focus-outline-gutter-64zu5e, -8px));
314
- border-radius: 4px;
315
292
  border-radius: var(--border-radius-control-default-focus-ring-7661kz, 4px);
316
- box-shadow: 0 0 0 2px #0972d3;
317
293
  box-shadow: 0 0 0 2px var(--color-border-item-focused-ap3b6s, #0972d3);
318
294
  }
319
295
  .awsui_tabs-tab-link_14rmt_1678d_256[data-awsui-focus-visible=true]:not(#\9):focus > a > .awsui_tabs-tab-label_14rmt_1678d_240, .awsui_tabs-tab-link_14rmt_1678d_256[data-awsui-focus-visible=true]:not(#\9):focus > button > .awsui_tabs-tab-label_14rmt_1678d_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_1678d_229:not(#\9):first-child > a > .awsui_tabs-tab-label_14rmt_1678d_240, .awsui_tabs-tab_14rmt_1678d_229:not(#\9):first-child > button > .awsui_tabs-tab-label_14rmt_1678d_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_1678d_229:not(#\9):last-child > a > .awsui_tabs-tab-label_14rmt_1678d_240, .awsui_tabs-tab_14rmt_1678d_229:not(#\9):last-child > button > .awsui_tabs-tab-label_14rmt_1678d_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_1678d_313:not(#\9), .awsui_tabs-tab-disabled_14rmt_1678d_313:not(#\9):hover {
340
314
  cursor: default;
341
- color: #9ba7b6;
342
315
  color: var(--color-text-interactive-disabled-3pbb07, #9ba7b6);
343
- font-weight: 800;
344
316
  font-weight: var(--font-tabs-disabled-weight-imwq16, 800);
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 * 2px);
353
324
  bottom: calc(-1 * var(--border-divider-section-width-4wm2it, 2px));
354
- height: 4px;
355
325
  height: var(--border-active-width-ce5ls7, 4px);
356
- border-radius: 20px;
357
326
  border-radius: var(--border-radius-tabs-focus-ring-j968on, 20px);
358
- background: #0972d3;
359
327
  background: var(--color-border-tabs-underline-9bcfzu, #0972d3);
360
328
  opacity: 0;
361
329
  }
362
330
  .awsui_tabs-tab-link_14rmt_1678d_256:not(#\9):not(.awsui_tabs-tab-disabled_14rmt_1678d_313).awsui_refresh_14rmt_1678d_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_1678d_344:not(#\9):not(.awsui_tabs-tab-disabled_14rmt_1678d_313) {
378
- color: #0972d3;
379
345
  color: var(--color-text-accent-s1eqko, #0972d3);
380
346
  }
381
347
  .awsui_tabs-tab-active_14rmt_1678d_344:not(#\9):not(.awsui_tabs-tab-disabled_14rmt_1678d_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_1678d_351:not(#\9) {
386
- border-bottom: 2px solid #e9ebed;
387
352
  border-bottom: var(--border-divider-section-width-4wm2it, 2px) solid var(--color-border-tabs-divider-69fx5i, #e9ebed);
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: #000716;
429
391
  color: var(--color-text-body-default-ajf1h5, #000716);
430
392
  font-weight: 400;
431
- font-family: "Open Sans", "Helvetica Neue", Roboto, Arial, sans-serif;
432
393
  font-family: var(--font-family-base-qnistn, "Open 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_1678d_372.awsui_with-paddings_14rmt_1678d_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_1678d_376.awsui_with-paddings_14rmt_1678d_372:not(#\9) {
443
- padding-top: 12px;
444
403
  padding-top: var(--space-tabs-content-top-mn4c9x, 12px);
445
404
  }
446
405
 
@@ -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_1v0f5_101:not(#\9) {
102
- color: #0972d3;
103
102
  color: var(--color-text-link-default-5f186r, #0972d3);
104
- font-weight: 800;
105
103
  font-weight: var(--font-link-button-weight-4f1hjr, 800);
106
- letter-spacing: 0.005em;
107
104
  letter-spacing: var(--font-link-button-letter-spacing-58wset, 0.005em);
108
105
  text-decoration: underline;
109
106
  /* stylelint-disable-next-line plugin/no-unsupported-browser-features */
110
- text-decoration-color: transparent;
111
107
  text-decoration-color: var(--color-text-link-button-underline-8mp92t, transparent);
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_1v0f5_101:not(#\9):hover {
127
122
  cursor: pointer;
128
- color: #033160;
129
123
  color: var(--color-text-link-hover-kololx, #033160);
130
124
  }
131
125
  .awsui_undo-button_brdst_1v0f5_101:not(#\9):focus {
132
126
  outline: none;
133
127
  }
134
128
  .awsui_undo-button_brdst_1v0f5_101:not(#\9):active {
135
- color: #033160;
136
129
  color: var(--color-text-link-hover-kololx, #033160);
137
130
  }
138
131
  .awsui_undo-button_brdst_1v0f5_101:not(#\9):active, .awsui_undo-button_brdst_1v0f5_101:not(#\9):focus, .awsui_undo-button_brdst_1v0f5_101:not(#\9):hover {
139
132
  text-decoration: underline;
140
133
  /* stylelint-disable-next-line plugin/no-unsupported-browser-features */
141
- text-decoration-color: transparent;
142
134
  text-decoration-color: var(--color-text-link-button-underline-hover-ei09le, transparent);
143
135
  }
144
136
  .awsui_undo-button_brdst_1v0f5_101[data-awsui-focus-visible=true]:not(#\9):focus {
145
137
  outline: thin dotted;
146
- outline: 0;
147
138
  outline: var(--border-link-focus-ring-outline-k2wccv, 0);
148
139
  outline-offset: 2px;
149
- outline-color: #0972d3;
150
140
  outline-color: var(--color-border-item-focused-ap3b6s, #0972d3);
151
- border-radius: 4px;
152
141
  border-radius: var(--border-radius-control-default-focus-ring-7661kz, 4px);
153
- box-shadow: 0 0 0 2px #0972d3;
154
142
  box-shadow: 0 0 0 var(--border-link-focus-ring-shadow-spread-nv4ahb, 2px) var(--color-border-item-focused-ap3b6s, #0972d3);
155
143
  }