@cloudscape-design/components-themeable 3.0.22 → 3.0.25
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/autosuggest/internal.d.ts.map +1 -1
- package/lib/internal/template/autosuggest/internal.js +2 -7
- package/lib/internal/template/autosuggest/internal.js.map +1 -1
- 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.d.ts +1 -1
- package/lib/internal/template/date-range-picker/calendar/index.d.ts.map +1 -1
- package/lib/internal/template/date-range-picker/calendar/index.js +3 -1
- package/lib/internal/template/date-range-picker/calendar/index.js.map +1 -1
- package/lib/internal/template/date-range-picker/dropdown.d.ts +1 -2
- package/lib/internal/template/date-range-picker/dropdown.d.ts.map +1 -1
- package/lib/internal/template/date-range-picker/dropdown.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 +14 -18
- 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/index.d.ts +1 -1
- package/lib/internal/template/internal/components/dropdown/index.d.ts.map +1 -1
- package/lib/internal/template/internal/components/dropdown/index.js +9 -3
- package/lib/internal/template/internal/components/dropdown/index.js.map +1 -1
- package/lib/internal/template/internal/components/dropdown/interfaces.d.ts +4 -0
- package/lib/internal/template/internal/components/dropdown/interfaces.d.ts.map +1 -1
- package/lib/internal/template/internal/components/dropdown/interfaces.js.map +1 -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/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,7 +95,6 @@ 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_button-trigger_18eso_1si9w_97 > .awsui_arrow_18eso_1si9w_97:not(#\9) {
|
|
98
|
-
transition: transform 135ms cubic-bezier(0.165, 0.84, 0.44, 1);
|
|
99
98
|
transition: transform var(--motion-duration-rotate-180-ofa1ir, 135ms) var(--motion-easing-rotate-180-3rbbga, cubic-bezier(0.165, 0.84, 0.44, 1));
|
|
100
99
|
}
|
|
101
100
|
@media (prefers-reduced-motion: reduce) {
|
|
@@ -143,81 +142,58 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
143
142
|
widows: 2;
|
|
144
143
|
word-spacing: normal;
|
|
145
144
|
box-sizing: border-box;
|
|
146
|
-
font-size: 14px;
|
|
147
145
|
font-size: var(--font-body-m-size-sregvd, 14px);
|
|
148
|
-
line-height: 22px;
|
|
149
146
|
line-height: var(--font-body-m-line-height-i7xxvv, 22px);
|
|
150
|
-
color: #16191f;
|
|
151
147
|
color: var(--color-text-body-default-7m2b3r, #16191f);
|
|
152
148
|
font-weight: 400;
|
|
153
|
-
font-family: "Noto Sans", "Helvetica Neue", Roboto, Arial, sans-serif;
|
|
154
149
|
font-family: var(--font-family-base-mylvzb, "Noto Sans", "Helvetica Neue", Roboto, Arial, sans-serif);
|
|
155
150
|
position: relative;
|
|
156
151
|
display: flex;
|
|
157
152
|
width: 100%;
|
|
158
153
|
justify-content: space-between;
|
|
159
154
|
align-items: center;
|
|
160
|
-
padding: 4px 8px;
|
|
161
155
|
padding: var(--space-scaled-xxs-95dhkm, 4px) var(--space-field-horizontal-z3i1c8, 8px);
|
|
162
|
-
background-color: #ffffff;
|
|
163
156
|
background-color: var(--color-background-input-default-ewlytp, #ffffff);
|
|
164
|
-
border-radius: 2px;
|
|
165
157
|
border-radius: var(--border-radius-input-fterib, 2px);
|
|
166
|
-
border: 1px solid #aab7b8;
|
|
167
158
|
border: var(--border-field-width-y6x4sn, 1px) solid var(--color-border-input-default-94d18j, #aab7b8);
|
|
168
|
-
min-height: 32px;
|
|
169
159
|
min-height: var(--size-vertical-input-ikahdk, 32px);
|
|
170
160
|
}
|
|
171
161
|
.awsui_button-trigger_18eso_1si9w_97.awsui_has-caret_18eso_1si9w_135:not(#\9) {
|
|
172
|
-
padding-right: 32px;
|
|
173
162
|
padding-right: var(--space-field-icon-offset-alfd6o, 32px);
|
|
174
163
|
}
|
|
175
164
|
.awsui_button-trigger_18eso_1si9w_97 > .awsui_placeholder_18eso_1si9w_138:not(#\9) {
|
|
176
|
-
color: #687078;
|
|
177
165
|
color: var(--color-text-input-placeholder-rtvjp5, #687078);
|
|
178
166
|
font-style: italic;
|
|
179
167
|
}
|
|
180
168
|
.awsui_button-trigger_18eso_1si9w_97 > .awsui_arrow_18eso_1si9w_97:not(#\9) {
|
|
181
169
|
position: absolute;
|
|
182
|
-
right: 8px;
|
|
183
170
|
right: var(--space-field-horizontal-z3i1c8, 8px);
|
|
184
|
-
top: calc(50% - 22px / 2);
|
|
185
171
|
top: calc(50% - var(--font-body-m-line-height-i7xxvv, 22px) / 2);
|
|
186
|
-
color: #545b64;
|
|
187
172
|
color: var(--color-text-button-inline-icon-default-qhj7jl, #545b64);
|
|
188
173
|
}
|
|
189
174
|
.awsui_button-trigger_18eso_1si9w_97:not(#\9):hover > .awsui_arrow_18eso_1si9w_97 {
|
|
190
|
-
color: #16191f;
|
|
191
175
|
color: var(--color-text-button-inline-icon-hover-84mkuo, #16191f);
|
|
192
176
|
}
|
|
193
177
|
.awsui_button-trigger_18eso_1si9w_97.awsui_pressed_18eso_1si9w_151 > .awsui_arrow_18eso_1si9w_97:not(#\9) {
|
|
194
178
|
transform: rotate(-180deg);
|
|
195
179
|
}
|
|
196
180
|
.awsui_button-trigger_18eso_1si9w_97.awsui_disabled_18eso_1si9w_154:not(#\9) {
|
|
197
|
-
background-color: #eaeded;
|
|
198
181
|
background-color: var(--color-background-input-disabled-5vlksk, #eaeded);
|
|
199
|
-
border: 1px solid #eaeded;
|
|
200
182
|
border: var(--border-field-width-y6x4sn, 1px) solid var(--color-border-input-disabled-ek5o0x, #eaeded);
|
|
201
|
-
color: #879596;
|
|
202
183
|
color: var(--color-text-input-disabled-zfb02z, #879596);
|
|
203
184
|
cursor: auto;
|
|
204
185
|
}
|
|
205
186
|
.awsui_button-trigger_18eso_1si9w_97.awsui_disabled_18eso_1si9w_154 > .awsui_arrow_18eso_1si9w_97:not(#\9) {
|
|
206
|
-
color: #aab7b8;
|
|
207
187
|
color: var(--color-text-button-inline-icon-disabled-sesloi, #aab7b8);
|
|
208
188
|
}
|
|
209
189
|
.awsui_button-trigger_18eso_1si9w_97.awsui_disabled_18eso_1si9w_154.awsui_in-filtering-token_18eso_1si9w_163:not(#\9) {
|
|
210
|
-
border-color: #d5dbdb;
|
|
211
190
|
border-color: var(--color-border-control-disabled-zgidl5, #d5dbdb);
|
|
212
191
|
}
|
|
213
192
|
.awsui_button-trigger_18eso_1si9w_97.awsui_disabled_18eso_1si9w_154 > .awsui_placeholder_18eso_1si9w_138:not(#\9) {
|
|
214
|
-
color: #687078;
|
|
215
193
|
color: var(--color-text-input-placeholder-disabled-60yf1a, #687078);
|
|
216
194
|
}
|
|
217
195
|
.awsui_button-trigger_18eso_1si9w_97.awsui_read-only_18eso_1si9w_169:not(#\9) {
|
|
218
|
-
background-color: #ffffff;
|
|
219
196
|
background-color: var(--color-background-input-default-ewlytp, #ffffff);
|
|
220
|
-
border: 1px solid #eaeded;
|
|
221
197
|
border: var(--border-field-width-y6x4sn, 1px) solid var(--color-border-input-disabled-ek5o0x, #eaeded);
|
|
222
198
|
}
|
|
223
199
|
.awsui_button-trigger_18eso_1si9w_97:not(#\9):focus {
|
|
@@ -226,36 +202,25 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
226
202
|
}
|
|
227
203
|
.awsui_button-trigger_18eso_1si9w_97:not(#\9):not(.awsui_in-filtering-token_18eso_1si9w_163)[data-awsui-focus-visible=true]:focus {
|
|
228
204
|
outline: 2px dotted transparent;
|
|
229
|
-
border: 1px solid #0073bb;
|
|
230
205
|
border: var(--border-field-width-y6x4sn, 1px) solid var(--color-border-item-focused-n5kd8g, #0073bb);
|
|
231
|
-
border-radius: 2px;
|
|
232
206
|
border-radius: var(--border-radius-input-fterib, 2px);
|
|
233
|
-
box-shadow: 0 0 0 1px #0073bb;
|
|
234
207
|
box-shadow: 0 0 0 var(--border-control-focus-ring-shadow-spread-glnuoy, 1px) var(--color-border-item-focused-n5kd8g, #0073bb);
|
|
235
208
|
}
|
|
236
209
|
.awsui_button-trigger_18eso_1si9w_97:not(#\9):not(.awsui_in-filtering-token_18eso_1si9w_163):invalid {
|
|
237
210
|
box-shadow: none;
|
|
238
211
|
}
|
|
239
212
|
.awsui_button-trigger_18eso_1si9w_97:not(#\9):not(.awsui_in-filtering-token_18eso_1si9w_163).awsui_invalid_18eso_1si9w_186, .awsui_button-trigger_18eso_1si9w_97:not(#\9):not(.awsui_in-filtering-token_18eso_1si9w_163).awsui_invalid_18eso_1si9w_186:focus {
|
|
240
|
-
color: #d13212;
|
|
241
213
|
color: var(--color-text-status-error-jer77f, #d13212);
|
|
242
|
-
border-color: #d13212;
|
|
243
214
|
border-color: var(--color-text-status-error-jer77f, #d13212);
|
|
244
|
-
padding-left: calc(
|
|
245
|
-
8px - (4px - 1px)
|
|
246
|
-
);
|
|
247
215
|
padding-left: calc(
|
|
248
216
|
var(--space-field-horizontal-z3i1c8, 8px) - (var(--border-invalid-width-glmng5, 4px) - var(--border-field-width-y6x4sn, 1px))
|
|
249
217
|
);
|
|
250
|
-
border-left-width: 4px;
|
|
251
218
|
border-left-width: var(--border-invalid-width-glmng5, 4px);
|
|
252
219
|
}
|
|
253
220
|
.awsui_button-trigger_18eso_1si9w_97:not(#\9):not(.awsui_in-filtering-token_18eso_1si9w_163).awsui_invalid_18eso_1si9w_186:focus, .awsui_button-trigger_18eso_1si9w_97:not(#\9):not(.awsui_in-filtering-token_18eso_1si9w_163).awsui_invalid_18eso_1si9w_186:focus:focus {
|
|
254
|
-
box-shadow: 0 0 0 1px #0073bb;
|
|
255
221
|
box-shadow: 0 0 0 var(--border-control-invalid-focus-ring-shadow-spread-6t5p47, 1px) var(--color-border-item-focused-n5kd8g, #0073bb);
|
|
256
222
|
}
|
|
257
223
|
.awsui_button-trigger_18eso_1si9w_97.awsui_in-filtering-token_18eso_1si9w_163:not(#\9) {
|
|
258
|
-
border-color: #00a1c9;
|
|
259
224
|
border-color: var(--color-border-item-selected-pr9yuf, #00a1c9);
|
|
260
225
|
border-top-right-radius: 0;
|
|
261
226
|
border-bottom-right-radius: 0;
|
|
@@ -266,23 +231,16 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
266
231
|
}
|
|
267
232
|
.awsui_button-trigger_18eso_1si9w_97.awsui_in-filtering-token_18eso_1si9w_163[data-awsui-focus-visible=true]:not(#\9):focus {
|
|
268
233
|
outline: 2px dotted transparent;
|
|
269
|
-
outline-offset: calc(0px - 1px);
|
|
270
234
|
outline-offset: calc(var(--space-filtering-token-operation-select-focus-outline-gutter-0nruvp, 0px) - 1px);
|
|
271
235
|
}
|
|
272
236
|
.awsui_button-trigger_18eso_1si9w_97.awsui_in-filtering-token_18eso_1si9w_163[data-awsui-focus-visible=true]:not(#\9):focus::before {
|
|
273
237
|
content: " ";
|
|
274
238
|
display: block;
|
|
275
239
|
position: absolute;
|
|
276
|
-
left: calc(-1 * 0px);
|
|
277
240
|
left: calc(-1 * var(--space-filtering-token-operation-select-focus-outline-gutter-0nruvp, 0px));
|
|
278
|
-
top: calc(-1 * 0px);
|
|
279
241
|
top: calc(-1 * var(--space-filtering-token-operation-select-focus-outline-gutter-0nruvp, 0px));
|
|
280
|
-
width: calc(100% + 2 * 0px);
|
|
281
242
|
width: calc(100% + 2 * var(--space-filtering-token-operation-select-focus-outline-gutter-0nruvp, 0px));
|
|
282
|
-
height: calc(100% + 2 * 0px);
|
|
283
243
|
height: calc(100% + 2 * var(--space-filtering-token-operation-select-focus-outline-gutter-0nruvp, 0px));
|
|
284
|
-
border-radius: 2px;
|
|
285
244
|
border-radius: var(--border-radius-control-default-focus-ring-hekmgc, 2px);
|
|
286
|
-
box-shadow: 0 0 0 2px #0073bb;
|
|
287
245
|
box-shadow: 0 0 0 2px var(--color-border-item-focused-n5kd8g, #0073bb);
|
|
288
246
|
}
|
|
@@ -8,7 +8,6 @@
|
|
|
8
8
|
*/
|
|
9
9
|
.awsui_axis_f0fot_47sbx_9:not(#\9),
|
|
10
10
|
.awsui_vertical-marker_f0fot_47sbx_10:not(#\9) {
|
|
11
|
-
stroke: #d5dbdb;
|
|
12
11
|
stroke: var(--color-charts-line-axis-wprqas, #d5dbdb);
|
|
13
12
|
stroke-width: 1px;
|
|
14
13
|
}
|
|
@@ -19,7 +18,6 @@
|
|
|
19
18
|
|
|
20
19
|
.awsui_axis-label_f0fot_47sbx_19:not(#\9) {
|
|
21
20
|
font-weight: bold;
|
|
22
|
-
fill: #16191f;
|
|
23
21
|
fill: var(--color-text-body-default-7m2b3r, #16191f);
|
|
24
22
|
}
|
|
25
23
|
|
|
@@ -29,21 +27,17 @@
|
|
|
29
27
|
}
|
|
30
28
|
|
|
31
29
|
.awsui_grid_f0fot_47sbx_29:not(#\9) {
|
|
32
|
-
stroke: #d5dbdb;
|
|
33
30
|
stroke: var(--color-charts-line-grid-zjz2dj, #d5dbdb);
|
|
34
31
|
stroke-width: 1px;
|
|
35
32
|
}
|
|
36
33
|
|
|
37
34
|
.awsui_ticks__line_f0fot_47sbx_34:not(#\9) {
|
|
38
|
-
stroke: #d5dbdb;
|
|
39
35
|
stroke: var(--color-charts-line-tick-qwh0yx, #d5dbdb);
|
|
40
36
|
stroke-width: 1px;
|
|
41
37
|
}
|
|
42
38
|
|
|
43
39
|
.awsui_ticks__text_f0fot_47sbx_39:not(#\9) {
|
|
44
|
-
font-size: 14px;
|
|
45
40
|
font-size: var(--font-chart-detail-size-viz5mm, 14px);
|
|
46
|
-
fill: #545b64;
|
|
47
41
|
fill: var(--color-text-body-secondary-u912t7, #545b64);
|
|
48
42
|
}
|
|
49
43
|
|
|
@@ -96,16 +90,13 @@
|
|
|
96
90
|
}
|
|
97
91
|
|
|
98
92
|
.awsui_vertical-marker-circle_f0fot_47sbx_92:not(#\9) {
|
|
99
|
-
fill: #ffffff;
|
|
100
93
|
fill: var(--color-background-container-content-o88wxm, #ffffff);
|
|
101
94
|
pointer-events: none;
|
|
102
|
-
stroke-width: 2px;
|
|
103
95
|
stroke-width: var(--border-line-chart-width-nj0hc5, 2px);
|
|
104
96
|
}
|
|
105
97
|
|
|
106
98
|
.awsui_vertical-marker-circle-active_f0fot_47sbx_98:not(#\9) {
|
|
107
99
|
cursor: pointer;
|
|
108
|
-
stroke-width: 2px;
|
|
109
100
|
stroke-width: var(--border-line-chart-width-nj0hc5, 2px);
|
|
110
101
|
}
|
|
111
102
|
|
|
@@ -113,7 +104,6 @@
|
|
|
113
104
|
outline: none;
|
|
114
105
|
pointer-events: none;
|
|
115
106
|
fill: none;
|
|
116
|
-
stroke: #0073bb;
|
|
117
107
|
stroke: var(--color-border-item-focused-n5kd8g, #0073bb);
|
|
118
108
|
stroke-width: 2px;
|
|
119
109
|
}
|
|
@@ -120,14 +120,10 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
120
120
|
widows: 2;
|
|
121
121
|
word-spacing: normal;
|
|
122
122
|
box-sizing: border-box;
|
|
123
|
-
font-size: 14px;
|
|
124
123
|
font-size: var(--font-body-m-size-sregvd, 14px);
|
|
125
|
-
line-height: 22px;
|
|
126
124
|
line-height: var(--font-body-m-line-height-i7xxvv, 22px);
|
|
127
|
-
color: #16191f;
|
|
128
125
|
color: var(--color-text-body-default-7m2b3r, #16191f);
|
|
129
126
|
font-weight: 400;
|
|
130
|
-
font-family: "Noto Sans", "Helvetica Neue", Roboto, Arial, sans-serif;
|
|
131
127
|
font-family: var(--font-family-base-mylvzb, "Noto Sans", "Helvetica Neue", Roboto, Arial, sans-serif);
|
|
132
128
|
}
|
|
133
129
|
|
|
@@ -91,7 +91,6 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
91
91
|
SPDX-License-Identifier: Apache-2.0
|
|
92
92
|
*/
|
|
93
93
|
.awsui_marker_1kjc7_alxne_93:not(#\9) {
|
|
94
|
-
transition: opacity 90ms linear;
|
|
95
94
|
transition: opacity var(--motion-duration-transition-quick-x85tae, 90ms) var(--motion-easing-transition-quick-lukbd8, linear);
|
|
96
95
|
}
|
|
97
96
|
@media (prefers-reduced-motion: reduce) {
|
|
@@ -139,14 +138,10 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
139
138
|
widows: 2;
|
|
140
139
|
word-spacing: normal;
|
|
141
140
|
box-sizing: border-box;
|
|
142
|
-
font-size: 14px;
|
|
143
141
|
font-size: var(--font-body-m-size-sregvd, 14px);
|
|
144
|
-
line-height: 22px;
|
|
145
142
|
line-height: var(--font-body-m-line-height-i7xxvv, 22px);
|
|
146
|
-
color: #16191f;
|
|
147
143
|
color: var(--color-text-body-default-7m2b3r, #16191f);
|
|
148
144
|
font-weight: 400;
|
|
149
|
-
font-family: "Noto Sans", "Helvetica Neue", Roboto, Arial, sans-serif;
|
|
150
145
|
font-family: var(--font-family-base-mylvzb, "Noto Sans", "Helvetica Neue", Roboto, Arial, sans-serif);
|
|
151
146
|
}
|
|
152
147
|
.awsui_root_1kjc7_alxne_111:not(#\9):focus {
|
|
@@ -168,7 +163,6 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
168
163
|
.awsui_marker_1kjc7_alxne_93:not(#\9) {
|
|
169
164
|
display: inline-flex;
|
|
170
165
|
align-items: flex-start;
|
|
171
|
-
margin-right: 16px;
|
|
172
166
|
margin-right: var(--space-m-17eucw, 16px);
|
|
173
167
|
padding: 0;
|
|
174
168
|
cursor: pointer;
|
|
@@ -201,8 +195,6 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
201
195
|
top: calc(-1 * 2px);
|
|
202
196
|
width: calc(100% + 2 * 2px);
|
|
203
197
|
height: calc(100% + 2 * 2px);
|
|
204
|
-
border-radius: 2px;
|
|
205
198
|
border-radius: var(--border-radius-control-default-focus-ring-hekmgc, 2px);
|
|
206
|
-
box-shadow: 0 0 0 2px #0073bb;
|
|
207
199
|
box-shadow: 0 0 0 2px var(--color-border-item-focused-n5kd8g, #0073bb);
|
|
208
200
|
}
|
|
@@ -111,7 +111,6 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
111
111
|
outline: none;
|
|
112
112
|
pointer-events: none;
|
|
113
113
|
fill: none;
|
|
114
|
-
stroke: #0073bb;
|
|
115
114
|
stroke: var(--color-border-item-focused-n5kd8g, #0073bb);
|
|
116
115
|
stroke-width: 2px;
|
|
117
116
|
visibility: hidden;
|
|
@@ -120,14 +120,10 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
120
120
|
widows: 2;
|
|
121
121
|
word-spacing: normal;
|
|
122
122
|
box-sizing: border-box;
|
|
123
|
-
font-size: 14px;
|
|
124
123
|
font-size: var(--font-body-m-size-sregvd, 14px);
|
|
125
|
-
line-height: 22px;
|
|
126
124
|
line-height: var(--font-body-m-line-height-i7xxvv, 22px);
|
|
127
|
-
color: #16191f;
|
|
128
125
|
color: var(--color-text-body-default-7m2b3r, #16191f);
|
|
129
126
|
font-weight: 400;
|
|
130
|
-
font-family: "Noto Sans", "Helvetica Neue", Roboto, Arial, sans-serif;
|
|
131
127
|
font-family: var(--font-family-base-mylvzb, "Noto Sans", "Helvetica Neue", Roboto, Arial, sans-serif);
|
|
132
128
|
position: absolute;
|
|
133
129
|
pointer-events: none;
|
|
@@ -91,9 +91,7 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
91
91
|
SPDX-License-Identifier: Apache-2.0
|
|
92
92
|
*/
|
|
93
93
|
.awsui_dimmed_10ipo_1r761_93:not(#\9) {
|
|
94
|
-
transition: opacity 90ms linear;
|
|
95
94
|
transition: opacity var(--motion-duration-transition-quick-x85tae, 90ms) var(--motion-easing-transition-quick-lukbd8, linear);
|
|
96
|
-
transition-delay: 90ms;
|
|
97
95
|
transition-delay: var(--motion-duration-transition-quick-x85tae, 90ms);
|
|
98
96
|
/* stylelint-disable-next-line plugin/no-unsupported-browser-features */
|
|
99
97
|
border-collapse: separate;
|
|
@@ -124,14 +122,10 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
124
122
|
widows: 2;
|
|
125
123
|
word-spacing: normal;
|
|
126
124
|
box-sizing: border-box;
|
|
127
|
-
font-size: 14px;
|
|
128
125
|
font-size: var(--font-body-m-size-sregvd, 14px);
|
|
129
|
-
line-height: 22px;
|
|
130
126
|
line-height: var(--font-body-m-line-height-i7xxvv, 22px);
|
|
131
|
-
color: #16191f;
|
|
132
127
|
color: var(--color-text-body-default-7m2b3r, #16191f);
|
|
133
128
|
font-weight: 400;
|
|
134
|
-
font-family: "Noto Sans", "Helvetica Neue", Roboto, Arial, sans-serif;
|
|
135
129
|
font-family: var(--font-family-base-mylvzb, "Noto Sans", "Helvetica Neue", Roboto, Arial, sans-serif);
|
|
136
130
|
}
|
|
137
131
|
@media (prefers-reduced-motion: reduce) {
|
|
@@ -179,14 +173,10 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
179
173
|
widows: 2;
|
|
180
174
|
word-spacing: normal;
|
|
181
175
|
box-sizing: border-box;
|
|
182
|
-
font-size: 14px;
|
|
183
176
|
font-size: var(--font-body-m-size-sregvd, 14px);
|
|
184
|
-
line-height: 22px;
|
|
185
177
|
line-height: var(--font-body-m-line-height-i7xxvv, 22px);
|
|
186
|
-
color: #16191f;
|
|
187
178
|
color: var(--color-text-body-default-7m2b3r, #16191f);
|
|
188
179
|
font-weight: 400;
|
|
189
|
-
font-family: "Noto Sans", "Helvetica Neue", Roboto, Arial, sans-serif;
|
|
190
180
|
font-family: var(--font-family-base-mylvzb, "Noto Sans", "Helvetica Neue", Roboto, Arial, sans-serif);
|
|
191
181
|
}
|
|
192
182
|
|
|
@@ -205,9 +195,7 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
205
195
|
.awsui_key_10ipo_1r761_143:not(#\9) {
|
|
206
196
|
display: inline-flex;
|
|
207
197
|
align-items: flex-start;
|
|
208
|
-
color: #545b64;
|
|
209
198
|
color: var(--color-text-group-label-5rxtyp, #545b64);
|
|
210
|
-
margin-right: 32px;
|
|
211
199
|
margin-right: var(--space-xxl-2nvmf1, 32px);
|
|
212
200
|
}
|
|
213
201
|
|
|
@@ -120,18 +120,12 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
120
120
|
widows: 2;
|
|
121
121
|
word-spacing: normal;
|
|
122
122
|
box-sizing: border-box;
|
|
123
|
-
font-size: 14px;
|
|
124
123
|
font-size: var(--font-body-m-size-sregvd, 14px);
|
|
125
|
-
line-height: 22px;
|
|
126
124
|
line-height: var(--font-body-m-line-height-i7xxvv, 22px);
|
|
127
|
-
color: #16191f;
|
|
128
125
|
color: var(--color-text-body-default-7m2b3r, #16191f);
|
|
129
126
|
font-weight: 400;
|
|
130
|
-
font-family: "Noto Sans", "Helvetica Neue", Roboto, Arial, sans-serif;
|
|
131
127
|
font-family: var(--font-family-base-mylvzb, "Noto Sans", "Helvetica Neue", Roboto, Arial, sans-serif);
|
|
132
|
-
margin-right: 4px;
|
|
133
128
|
margin-right: var(--space-xxs-ynfts5, 4px);
|
|
134
|
-
margin-top: 4px;
|
|
135
129
|
margin-top: var(--space-xxs-ynfts5, 4px);
|
|
136
130
|
border-radius: 2px;
|
|
137
131
|
width: 14px;
|
|
@@ -155,7 +149,6 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
155
149
|
display: block;
|
|
156
150
|
margin: 2px;
|
|
157
151
|
height: 10px;
|
|
158
|
-
background-color: #ffffff;
|
|
159
152
|
background-color: var(--color-background-container-content-o88wxm, #ffffff);
|
|
160
153
|
opacity: 0.5;
|
|
161
154
|
}
|
|
@@ -98,25 +98,17 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
98
98
|
left: 0;
|
|
99
99
|
}
|
|
100
100
|
.awsui_root_1fn7j_1sy12_93 > .awsui_styled-box_1fn7j_1sy12_100:not(#\9) {
|
|
101
|
-
fill: #ffffff;
|
|
102
101
|
fill: var(--color-background-control-default-8xmy94, #ffffff);
|
|
103
|
-
stroke: #aab7b8;
|
|
104
102
|
stroke: var(--color-border-control-default-jt0hca, #aab7b8);
|
|
105
|
-
stroke-width: 1px;
|
|
106
103
|
stroke-width: var(--border-field-width-y6x4sn, 1px);
|
|
107
|
-
transition: fill 90ms linear, stroke 90ms linear;
|
|
108
104
|
transition: fill var(--motion-duration-transition-quick-x85tae, 90ms) var(--motion-easing-transition-quick-lukbd8, linear), stroke var(--motion-duration-transition-quick-x85tae, 90ms) var(--motion-easing-transition-quick-lukbd8, linear);
|
|
109
105
|
}
|
|
110
106
|
.awsui_root_1fn7j_1sy12_93 > .awsui_styled-box-checked_1fn7j_1sy12_106:not(#\9), .awsui_root_1fn7j_1sy12_93 > .awsui_styled-box-indeterminate_1fn7j_1sy12_106:not(#\9) {
|
|
111
|
-
fill: #0073bb;
|
|
112
107
|
fill: var(--color-background-control-checked-dyuc53, #0073bb);
|
|
113
|
-
stroke: #0073bb;
|
|
114
108
|
stroke: var(--color-border-control-checked-9uv01j, #0073bb);
|
|
115
109
|
}
|
|
116
110
|
.awsui_root_1fn7j_1sy12_93 > .awsui_styled-box-disabled_1fn7j_1sy12_110:not(#\9) {
|
|
117
|
-
fill: #d5dbdb;
|
|
118
111
|
fill: var(--color-background-control-disabled-0y91m8, #d5dbdb);
|
|
119
|
-
stroke: #d5dbdb;
|
|
120
112
|
stroke: var(--color-border-control-disabled-zgidl5, #d5dbdb);
|
|
121
113
|
}
|
|
122
114
|
@media (prefers-reduced-motion: reduce) {
|
|
@@ -130,12 +122,10 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
130
122
|
transition: none;
|
|
131
123
|
}
|
|
132
124
|
.awsui_root_1fn7j_1sy12_93 > .awsui_styled-line_1fn7j_1sy12_124:not(#\9) {
|
|
133
|
-
stroke: #ffffff;
|
|
134
125
|
stroke: var(--color-foreground-control-default-i2wjwi, #ffffff);
|
|
135
126
|
stroke-width: 2;
|
|
136
127
|
fill: none;
|
|
137
128
|
}
|
|
138
129
|
.awsui_root_1fn7j_1sy12_93 > .awsui_styled-line-disabled_1fn7j_1sy12_129:not(#\9) {
|
|
139
|
-
stroke: #ffffff;
|
|
140
130
|
stroke: var(--color-foreground-control-disabled-84rf4t, #ffffff);
|
|
141
131
|
}
|
|
@@ -104,7 +104,6 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
104
104
|
.awsui_layout_z2o52_qzti4_93.awsui_is-visual-refresh_z2o52_qzti4_93:not(#\9) {
|
|
105
105
|
display: grid;
|
|
106
106
|
grid-template-columns: 1fr;
|
|
107
|
-
grid-template-rows: auto 0px 1fr;
|
|
108
107
|
grid-template-rows: auto var(--space-dark-header-overlap-distance-ync2s3, 0px) 1fr;
|
|
109
108
|
min-height: 100%;
|
|
110
109
|
}
|
|
@@ -112,7 +111,6 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
112
111
|
grid-template-rows: auto 0 1fr;
|
|
113
112
|
}
|
|
114
113
|
.awsui_layout_z2o52_qzti4_93.awsui_is-visual-refresh_z2o52_qzti4_93 > .awsui_background_z2o52_qzti4_96:not(#\9) {
|
|
115
|
-
background-color: #f2f3f3;
|
|
116
114
|
background-color: var(--color-background-layout-main-q0tbxx, #f2f3f3);
|
|
117
115
|
grid-column: 1;
|
|
118
116
|
grid-row: 1/3;
|
|
@@ -123,18 +121,15 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
123
121
|
.awsui_layout_z2o52_qzti4_93.awsui_is-visual-refresh_z2o52_qzti4_93 > .awsui_header_z2o52_qzti4_99:not(#\9) {
|
|
124
122
|
grid-column: 1;
|
|
125
123
|
grid-row: 1;
|
|
126
|
-
padding-bottom: 24px;
|
|
127
124
|
padding-bottom: var(--space-dark-header-padding-bottom-v95akv, 24px);
|
|
128
125
|
}
|
|
129
126
|
@media (min-width: 689px) {
|
|
130
127
|
.awsui_layout_z2o52_qzti4_93.awsui_is-visual-refresh_z2o52_qzti4_93 > .awsui_header_z2o52_qzti4_99.awsui_has-breadcrumbs_z2o52_qzti4_127:not(#\9) {
|
|
131
|
-
padding-top: 4px;
|
|
132
128
|
padding-top: var(--space-xxs-ynfts5, 4px);
|
|
133
129
|
}
|
|
134
130
|
}
|
|
135
131
|
@media (max-width: 688px) {
|
|
136
132
|
.awsui_layout_z2o52_qzti4_93.awsui_is-visual-refresh_z2o52_qzti4_93 > .awsui_header_z2o52_qzti4_99:not(#\9) {
|
|
137
|
-
padding: 16px 0 24px;
|
|
138
133
|
padding: var(--space-m-17eucw, 16px) 0 var(--space-dark-header-padding-bottom-v95akv, 24px);
|
|
139
134
|
}
|
|
140
135
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { DropdownProps } from './interfaces';
|
|
2
|
-
declare const Dropdown: ({ children, trigger, open, onDropdownClose, onMouseDown, header, footer, dropdownId, stretchTriggerHeight, stretchWidth, stretchHeight, stretchToTriggerWidth, expandToViewport, preferCenter, interior, minWidth, hasContent, scrollable, }: DropdownProps) => JSX.Element;
|
|
2
|
+
declare const Dropdown: ({ children, trigger, open, onDropdownClose, onMouseDown, header, footer, dropdownId, stretchTriggerHeight, stretchWidth, stretchHeight, stretchToTriggerWidth, expandToViewport, preferCenter, interior, minWidth, hasContent, scrollable, trapFocus, }: DropdownProps) => JSX.Element;
|
|
3
3
|
export default Dropdown;
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/dropdown/index.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/dropdown/index.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAkG7C,QAAA,MAAM,QAAQ,4PAoBX,aAAa,gBAiQf,CAAC;AAMF,eAAe,QAAQ,CAAC"}
|
|
@@ -13,6 +13,8 @@ import { useVisualRefresh } from '../../hooks/use-visual-mode';
|
|
|
13
13
|
import { usePortalModeClasses } from '../../hooks/use-portal-mode-classes';
|
|
14
14
|
import { DropdownContextProvider } from './context';
|
|
15
15
|
import { useMobile } from '../../hooks/use-mobile';
|
|
16
|
+
import TabTrap from '../tab-trap/index.js';
|
|
17
|
+
import { getFirstFocusable, getLastFocusable } from '../focus-lock/utils.js';
|
|
16
18
|
var DropdownContainer = function (_a) {
|
|
17
19
|
var children = _a.children, _b = _a.renderWithPortal, renderWithPortal = _b === void 0 ? false : _b, id = _a.id, open = _a.open;
|
|
18
20
|
if (renderWithPortal) {
|
|
@@ -49,7 +51,7 @@ var TransitionContent = function (_a) {
|
|
|
49
51
|
footer))))));
|
|
50
52
|
};
|
|
51
53
|
var Dropdown = function (_a) {
|
|
52
|
-
var children = _a.children, trigger = _a.trigger, open = _a.open, onDropdownClose = _a.onDropdownClose, onMouseDown = _a.onMouseDown, header = _a.header, footer = _a.footer, dropdownId = _a.dropdownId, _b = _a.stretchTriggerHeight, stretchTriggerHeight = _b === void 0 ? false : _b, _c = _a.stretchWidth, stretchWidth = _c === void 0 ? true : _c, _d = _a.stretchHeight, stretchHeight = _d === void 0 ? false : _d, _e = _a.stretchToTriggerWidth, stretchToTriggerWidth = _e === void 0 ? true : _e, _f = _a.expandToViewport, expandToViewport = _f === void 0 ? false : _f, _g = _a.preferCenter, preferCenter = _g === void 0 ? false : _g, _h = _a.interior, interior = _h === void 0 ? false : _h, minWidth = _a.minWidth, _j = _a.hasContent, hasContent = _j === void 0 ? true : _j, _k = _a.scrollable, scrollable = _k === void 0 ? true : _k;
|
|
54
|
+
var children = _a.children, trigger = _a.trigger, open = _a.open, onDropdownClose = _a.onDropdownClose, onMouseDown = _a.onMouseDown, header = _a.header, footer = _a.footer, dropdownId = _a.dropdownId, _b = _a.stretchTriggerHeight, stretchTriggerHeight = _b === void 0 ? false : _b, _c = _a.stretchWidth, stretchWidth = _c === void 0 ? true : _c, _d = _a.stretchHeight, stretchHeight = _d === void 0 ? false : _d, _e = _a.stretchToTriggerWidth, stretchToTriggerWidth = _e === void 0 ? true : _e, _f = _a.expandToViewport, expandToViewport = _f === void 0 ? false : _f, _g = _a.preferCenter, preferCenter = _g === void 0 ? false : _g, _h = _a.interior, interior = _h === void 0 ? false : _h, minWidth = _a.minWidth, _j = _a.hasContent, hasContent = _j === void 0 ? true : _j, _k = _a.scrollable, scrollable = _k === void 0 ? true : _k, _l = _a.trapFocus, trapFocus = _l === void 0 ? false : _l;
|
|
53
55
|
var triggerRef = useRef(null);
|
|
54
56
|
var dropdownRef = useRef(null);
|
|
55
57
|
// This container is only needed to apply max-height to. We can't move max-height to it's parent
|
|
@@ -59,7 +61,7 @@ var Dropdown = function (_a) {
|
|
|
59
61
|
var fixedPosition = useRef(null);
|
|
60
62
|
var isRefresh = useVisualRefresh(triggerRef);
|
|
61
63
|
var dropdownClasses = usePortalModeClasses(triggerRef);
|
|
62
|
-
var
|
|
64
|
+
var _m = useState('bottom-right'), position = _m[0], setPosition = _m[1];
|
|
63
65
|
var isMobile = useMobile();
|
|
64
66
|
var setDropdownPosition = function (position, triggerBox, target, verticalContainer) {
|
|
65
67
|
var entireWidth = !interior && stretchWidth;
|
|
@@ -226,8 +228,12 @@ var Dropdown = function (_a) {
|
|
|
226
228
|
}, [open, expandToViewport]);
|
|
227
229
|
return (React.createElement("div", { className: clsx(styles.root, interior && styles.interior, stretchTriggerHeight && styles['stretch-trigger-height']) },
|
|
228
230
|
React.createElement("div", { className: clsx(stretchTriggerHeight && styles['stretch-trigger-height']), ref: triggerRef }, trigger),
|
|
231
|
+
React.createElement(TabTrap, { focusNextCallback: function () { var _a; return dropdownRef.current && ((_a = getFirstFocusable(dropdownRef.current)) === null || _a === void 0 ? void 0 : _a.focus()); }, disabled: !open || !trapFocus }),
|
|
229
232
|
React.createElement(DropdownContainer, { renderWithPortal: expandToViewport && !interior, id: dropdownId, open: open },
|
|
230
|
-
React.createElement(Transition, { "in": open !== null && open !== void 0 ? open : false, exit: false }, function (state, ref) { return (React.createElement(
|
|
233
|
+
React.createElement(Transition, { "in": open !== null && open !== void 0 ? open : false, exit: false }, function (state, ref) { return (React.createElement("div", { onBlur: function (event) { return trapFocus && event.stopPropagation(); } },
|
|
234
|
+
React.createElement(TabTrap, { focusNextCallback: function () { var _a; return triggerRef.current && ((_a = getLastFocusable(triggerRef.current)) === null || _a === void 0 ? void 0 : _a.focus()); }, disabled: !open || !trapFocus }),
|
|
235
|
+
React.createElement(TransitionContent, { state: state, transitionRef: ref, dropdownClasses: dropdownClasses, open: open, stretchWidth: stretchWidth, interior: interior, header: header, hasContent: hasContent, expandToViewport: expandToViewport, footer: footer, onMouseDown: onMouseDown, isRefresh: isRefresh, dropdownRef: dropdownRef, verticalContainerRef: verticalContainerRef, position: position }, children),
|
|
236
|
+
React.createElement(TabTrap, { focusNextCallback: function () { var _a; return triggerRef.current && ((_a = getFirstFocusable(triggerRef.current)) === null || _a === void 0 ? void 0 : _a.focus()); }, disabled: !open || !trapFocus }))); }))));
|
|
231
237
|
};
|
|
232
238
|
var isInteriorPosition = function (position) { return position.bottom !== undefined; };
|
|
233
239
|
export default Dropdown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/components/dropdown/index.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 styles from './styles.css.js';\nimport clsx from 'clsx';\nimport { useMergeRefs } from '../../hooks/use-merge-refs';\nimport React, { useEffect, useLayoutEffect, useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport { fireNonCancelableEvent } from '../../events';\nimport { DropdownProps } from './interfaces';\nimport { DropdownPosition, InteriorDropdownPosition, calculatePosition } from './dropdown-fit-handler';\nimport { Transition, TransitionStatus } from '../transition';\nimport { useVisualRefresh } from '../../hooks/use-visual-mode';\nimport { usePortalModeClasses } from '../../hooks/use-portal-mode-classes';\nimport { DropdownContextProvider, DropdownContextProviderProps } from './context';\nimport { useMobile } from '../../hooks/use-mobile';\n\ninterface DropdownContainerProps {\n children?: React.ReactNode;\n renderWithPortal?: boolean;\n id?: string;\n open?: boolean;\n}\n\nconst DropdownContainer = ({ children, renderWithPortal = false, id, open }: DropdownContainerProps) => {\n if (renderWithPortal) {\n if (open) {\n return createPortal(<div id={id}>{children}</div>, document.body);\n } else {\n return null;\n }\n } else {\n return <>{children}</>;\n }\n};\n\ninterface TransitionContentProps {\n state: TransitionStatus;\n transitionRef: React.MutableRefObject<any>;\n dropdownClasses: string;\n stretchWidth: boolean;\n interior: boolean;\n hasContent: boolean;\n isRefresh: boolean;\n dropdownRef: React.RefObject<HTMLDivElement>;\n verticalContainerRef: React.RefObject<HTMLDivElement>;\n expandToViewport?: boolean;\n header?: React.ReactNode;\n children?: React.ReactNode;\n footer?: React.ReactNode;\n position?: DropdownContextProviderProps['position'];\n open?: boolean;\n onMouseDown?: React.MouseEventHandler<Element>;\n}\n\nconst TransitionContent = ({\n state,\n transitionRef,\n dropdownClasses,\n stretchWidth,\n interior,\n hasContent,\n isRefresh,\n dropdownRef,\n verticalContainerRef,\n expandToViewport,\n header,\n children,\n footer,\n position,\n open,\n onMouseDown,\n}: TransitionContentProps) => {\n const contentRef = useMergeRefs(dropdownRef, transitionRef);\n return (\n <div\n className={clsx(styles.dropdown, dropdownClasses, {\n [styles.open]: open,\n [styles['with-limited-width']]: !stretchWidth,\n [styles['hide-upper-border']]: stretchWidth,\n [styles.interior]: interior,\n [styles['is-empty']]: !header && !hasContent,\n [styles.refresh]: isRefresh,\n [styles['use-portal']]: expandToViewport && !interior,\n })}\n ref={contentRef}\n data-open={open}\n data-animating={state !== 'exited'}\n onMouseDown={onMouseDown}\n >\n <div className={clsx(styles['dropdown-content-wrapper'], isRefresh && styles.refresh)}>\n <div className={styles['ie11-wrapper']}>\n <div ref={verticalContainerRef} className={styles['dropdown-content']}>\n <DropdownContextProvider position={position}>\n {header}\n {children}\n {footer}\n </DropdownContextProvider>\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nconst Dropdown = ({\n children,\n trigger,\n open,\n onDropdownClose,\n onMouseDown,\n header,\n footer,\n dropdownId,\n stretchTriggerHeight = false,\n stretchWidth = true,\n stretchHeight = false,\n stretchToTriggerWidth = true,\n expandToViewport = false,\n preferCenter = false,\n interior = false,\n minWidth,\n hasContent = true,\n scrollable = true,\n}: DropdownProps) => {\n const triggerRef = useRef<HTMLDivElement>(null);\n const dropdownRef = useRef<HTMLDivElement>(null);\n // This container is only needed to apply max-height to. We can't move max-height to it's parent\n // because of an IE11 issue with flexbox. https://github.com/philipwalton/flexbugs/issues/216\n const verticalContainerRef = useRef<HTMLDivElement>(null);\n // To keep track of the initial position (drop up/down) which is kept the same during fixed repositioning\n const fixedPosition = useRef<DropdownPosition | null>(null);\n\n const isRefresh = useVisualRefresh(triggerRef);\n\n const dropdownClasses = usePortalModeClasses(triggerRef);\n const [position, setPosition] = useState<DropdownContextProviderProps['position']>('bottom-right');\n\n const isMobile = useMobile();\n\n const setDropdownPosition = (\n position: DropdownPosition | InteriorDropdownPosition,\n triggerBox: DOMRect,\n target: HTMLDivElement,\n verticalContainer: HTMLDivElement\n ) => {\n const entireWidth = !interior && stretchWidth;\n if (!stretchWidth) {\n // 1px offset for dropdowns where the dropdown itself needs a border, rather than on the items\n verticalContainer.style.maxHeight = `${parseInt(position.height) + 1}px`;\n } else {\n verticalContainer.style.maxHeight = position.height;\n }\n\n if (entireWidth && !expandToViewport) {\n if (stretchToTriggerWidth) {\n target.classList.add(styles['occupy-entire-width']);\n }\n } else {\n target.style.width = position.width;\n }\n // Using styles for main dropdown to adjust its position as preferred alternative\n if (position.dropUp && !interior) {\n target.classList.add(styles['dropdown-drop-up']);\n if (!expandToViewport) {\n target.style.bottom = '100%';\n }\n } else {\n target.classList.remove(styles['dropdown-drop-up']);\n }\n target.classList.add(position.dropLeft ? styles['dropdown-drop-left'] : styles['dropdown-drop-right']);\n\n if (position.left && position.left !== 'auto') {\n target.style.left = position.left;\n }\n\n // Position normal overflow dropdowns with fixed positioning relative to viewport\n if (expandToViewport && !interior) {\n target.style.position = 'fixed';\n if (position.dropUp) {\n target.style.bottom = `calc(100% - ${triggerBox.top}px)`;\n } else {\n target.style.top = `${triggerBox.bottom}px`;\n }\n if (position.dropLeft) {\n target.style.left = `calc(${triggerBox.right}px - ${position.width})`;\n } else {\n target.style.left = `${triggerBox.left}px`;\n }\n // Keep track of the initial dropdown position and direction.\n // Dropdown direction doesn't need to change as the user scrolls, just needs to stay attached to the trigger.\n fixedPosition.current = position;\n return;\n }\n\n // For an interior dropdown (the fly out) we need exact values for positioning\n // and classes are not enough\n // usage of relative position is impossible due to overwrite of overflow-x\n if (interior && isInteriorPosition(position)) {\n if (position.dropUp) {\n target.style.bottom = position.bottom;\n } else {\n target.style.top = position.top;\n }\n target.style.left = position.left;\n }\n\n if (position.dropUp && position.dropLeft) {\n setPosition('top-left');\n } else if (position.dropUp) {\n setPosition('top-right');\n } else if (position.dropLeft) {\n setPosition('bottom-left');\n } else {\n setPosition('bottom-right');\n }\n };\n\n useLayoutEffect(() => {\n const onDropdownOpen = () => {\n if (open && dropdownRef.current && triggerRef.current && verticalContainerRef.current) {\n // calculate scroll width only for dropdowns that has a scrollbar and ignore it for date picker components\n if (scrollable) {\n dropdownRef.current.classList.add(styles.nowrap);\n }\n setDropdownPosition(\n ...calculatePosition(\n dropdownRef.current,\n triggerRef.current,\n verticalContainerRef.current,\n interior,\n expandToViewport,\n preferCenter,\n stretchWidth,\n stretchHeight,\n isMobile,\n minWidth\n ),\n dropdownRef.current,\n verticalContainerRef.current\n );\n if (scrollable) {\n dropdownRef.current.classList.remove(styles.nowrap);\n }\n }\n };\n onDropdownOpen();\n\n if (open) {\n // window may scroll when dropdown opens, for example when soft keyboard shows up\n window.addEventListener('scroll', onDropdownOpen);\n // only listen to window scroll within very short time after the dropdown opens\n // do not want to interfere dropdown position on scroll afterwards\n const timeoutId = setTimeout(() => {\n window.removeEventListener('scroll', onDropdownOpen);\n }, 500);\n\n return () => {\n clearTimeout(timeoutId);\n window.removeEventListener('scroll', onDropdownOpen);\n };\n }\n // See AWSUI-13040\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open, dropdownRef, triggerRef, verticalContainerRef, interior, stretchWidth, isMobile]);\n\n // subscribe to outside click\n useEffect(() => {\n if (!open) {\n return;\n }\n const clickListener = (e: MouseEvent) => {\n if (!dropdownRef.current?.contains(e.target as Node)) {\n fireNonCancelableEvent(onDropdownClose);\n }\n };\n\n /*\n * This small delay allows the event that opened the dropdown to\n * finish bubbling, so that it is not immediately captured here.\n */\n const timeout = setTimeout(() => {\n window.addEventListener('click', clickListener);\n }, 0);\n\n return () => {\n clearTimeout(timeout);\n window.removeEventListener('click', clickListener);\n };\n }, [open, onDropdownClose]);\n\n // sync dropdown position on scroll and resize\n useLayoutEffect(() => {\n if (!expandToViewport || !open) {\n return;\n }\n const updateDropdownPosition = () => {\n if (triggerRef.current && dropdownRef.current && verticalContainerRef.current) {\n const triggerRect = triggerRef.current.getBoundingClientRect();\n const target = dropdownRef.current;\n if (fixedPosition.current) {\n if (fixedPosition.current.dropUp) {\n dropdownRef.current.style.bottom = `calc(100% - ${triggerRect.top}px)`;\n } else {\n target.style.top = `${triggerRect.bottom}px`;\n }\n if (fixedPosition.current.dropLeft) {\n target.style.left = `calc(${triggerRect.right}px - ${fixedPosition.current.width})`;\n } else {\n target.style.left = `${triggerRect.left}px`;\n }\n }\n }\n };\n\n updateDropdownPosition();\n\n window.addEventListener('scroll', updateDropdownPosition, true);\n window.addEventListener('resize', updateDropdownPosition, true);\n return () => {\n window.removeEventListener('scroll', updateDropdownPosition, true);\n window.removeEventListener('resize', updateDropdownPosition, true);\n };\n }, [open, expandToViewport]);\n\n return (\n <div\n className={clsx(\n styles.root,\n interior && styles.interior,\n stretchTriggerHeight && styles['stretch-trigger-height']\n )}\n >\n <div className={clsx(stretchTriggerHeight && styles['stretch-trigger-height'])} ref={triggerRef}>\n {trigger}\n </div>\n <DropdownContainer renderWithPortal={expandToViewport && !interior} id={dropdownId} open={open}>\n <Transition in={open ?? false} exit={false}>\n {(state, ref) => (\n <TransitionContent\n state={state}\n transitionRef={ref}\n dropdownClasses={dropdownClasses}\n open={open}\n stretchWidth={stretchWidth}\n interior={interior}\n header={header}\n hasContent={hasContent}\n expandToViewport={expandToViewport}\n footer={footer}\n onMouseDown={onMouseDown}\n isRefresh={isRefresh}\n dropdownRef={dropdownRef}\n verticalContainerRef={verticalContainerRef}\n position={position}\n >\n {children}\n </TransitionContent>\n )}\n </Transition>\n </DropdownContainer>\n </div>\n );\n};\n\nconst isInteriorPosition = (\n position: DropdownPosition | InteriorDropdownPosition\n): position is InteriorDropdownPosition => (position as InteriorDropdownPosition).bottom !== undefined;\n\nexport default Dropdown;\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/components/dropdown/index.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 styles from './styles.css.js';\nimport clsx from 'clsx';\nimport { useMergeRefs } from '../../hooks/use-merge-refs';\nimport React, { useEffect, useLayoutEffect, useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport { fireNonCancelableEvent } from '../../events';\nimport { DropdownProps } from './interfaces';\nimport { DropdownPosition, InteriorDropdownPosition, calculatePosition } from './dropdown-fit-handler';\nimport { Transition, TransitionStatus } from '../transition';\nimport { useVisualRefresh } from '../../hooks/use-visual-mode';\nimport { usePortalModeClasses } from '../../hooks/use-portal-mode-classes';\nimport { DropdownContextProvider, DropdownContextProviderProps } from './context';\nimport { useMobile } from '../../hooks/use-mobile';\nimport TabTrap from '../tab-trap/index.js';\nimport { getFirstFocusable, getLastFocusable } from '../focus-lock/utils.js';\n\ninterface DropdownContainerProps {\n children?: React.ReactNode;\n renderWithPortal?: boolean;\n id?: string;\n open?: boolean;\n}\n\nconst DropdownContainer = ({ children, renderWithPortal = false, id, open }: DropdownContainerProps) => {\n if (renderWithPortal) {\n if (open) {\n return createPortal(<div id={id}>{children}</div>, document.body);\n } else {\n return null;\n }\n } else {\n return <>{children}</>;\n }\n};\n\ninterface TransitionContentProps {\n state: TransitionStatus;\n transitionRef: React.MutableRefObject<any>;\n dropdownClasses: string;\n stretchWidth: boolean;\n interior: boolean;\n hasContent: boolean;\n isRefresh: boolean;\n dropdownRef: React.RefObject<HTMLDivElement>;\n verticalContainerRef: React.RefObject<HTMLDivElement>;\n expandToViewport?: boolean;\n header?: React.ReactNode;\n children?: React.ReactNode;\n footer?: React.ReactNode;\n position?: DropdownContextProviderProps['position'];\n open?: boolean;\n onMouseDown?: React.MouseEventHandler<Element>;\n}\n\nconst TransitionContent = ({\n state,\n transitionRef,\n dropdownClasses,\n stretchWidth,\n interior,\n hasContent,\n isRefresh,\n dropdownRef,\n verticalContainerRef,\n expandToViewport,\n header,\n children,\n footer,\n position,\n open,\n onMouseDown,\n}: TransitionContentProps) => {\n const contentRef = useMergeRefs(dropdownRef, transitionRef);\n return (\n <div\n className={clsx(styles.dropdown, dropdownClasses, {\n [styles.open]: open,\n [styles['with-limited-width']]: !stretchWidth,\n [styles['hide-upper-border']]: stretchWidth,\n [styles.interior]: interior,\n [styles['is-empty']]: !header && !hasContent,\n [styles.refresh]: isRefresh,\n [styles['use-portal']]: expandToViewport && !interior,\n })}\n ref={contentRef}\n data-open={open}\n data-animating={state !== 'exited'}\n onMouseDown={onMouseDown}\n >\n <div className={clsx(styles['dropdown-content-wrapper'], isRefresh && styles.refresh)}>\n <div className={styles['ie11-wrapper']}>\n <div ref={verticalContainerRef} className={styles['dropdown-content']}>\n <DropdownContextProvider position={position}>\n {header}\n {children}\n {footer}\n </DropdownContextProvider>\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nconst Dropdown = ({\n children,\n trigger,\n open,\n onDropdownClose,\n onMouseDown,\n header,\n footer,\n dropdownId,\n stretchTriggerHeight = false,\n stretchWidth = true,\n stretchHeight = false,\n stretchToTriggerWidth = true,\n expandToViewport = false,\n preferCenter = false,\n interior = false,\n minWidth,\n hasContent = true,\n scrollable = true,\n trapFocus = false,\n}: DropdownProps) => {\n const triggerRef = useRef<HTMLDivElement>(null);\n const dropdownRef = useRef<HTMLDivElement>(null);\n // This container is only needed to apply max-height to. We can't move max-height to it's parent\n // because of an IE11 issue with flexbox. https://github.com/philipwalton/flexbugs/issues/216\n const verticalContainerRef = useRef<HTMLDivElement>(null);\n // To keep track of the initial position (drop up/down) which is kept the same during fixed repositioning\n const fixedPosition = useRef<DropdownPosition | null>(null);\n\n const isRefresh = useVisualRefresh(triggerRef);\n\n const dropdownClasses = usePortalModeClasses(triggerRef);\n const [position, setPosition] = useState<DropdownContextProviderProps['position']>('bottom-right');\n\n const isMobile = useMobile();\n\n const setDropdownPosition = (\n position: DropdownPosition | InteriorDropdownPosition,\n triggerBox: DOMRect,\n target: HTMLDivElement,\n verticalContainer: HTMLDivElement\n ) => {\n const entireWidth = !interior && stretchWidth;\n if (!stretchWidth) {\n // 1px offset for dropdowns where the dropdown itself needs a border, rather than on the items\n verticalContainer.style.maxHeight = `${parseInt(position.height) + 1}px`;\n } else {\n verticalContainer.style.maxHeight = position.height;\n }\n\n if (entireWidth && !expandToViewport) {\n if (stretchToTriggerWidth) {\n target.classList.add(styles['occupy-entire-width']);\n }\n } else {\n target.style.width = position.width;\n }\n // Using styles for main dropdown to adjust its position as preferred alternative\n if (position.dropUp && !interior) {\n target.classList.add(styles['dropdown-drop-up']);\n if (!expandToViewport) {\n target.style.bottom = '100%';\n }\n } else {\n target.classList.remove(styles['dropdown-drop-up']);\n }\n target.classList.add(position.dropLeft ? styles['dropdown-drop-left'] : styles['dropdown-drop-right']);\n\n if (position.left && position.left !== 'auto') {\n target.style.left = position.left;\n }\n\n // Position normal overflow dropdowns with fixed positioning relative to viewport\n if (expandToViewport && !interior) {\n target.style.position = 'fixed';\n if (position.dropUp) {\n target.style.bottom = `calc(100% - ${triggerBox.top}px)`;\n } else {\n target.style.top = `${triggerBox.bottom}px`;\n }\n if (position.dropLeft) {\n target.style.left = `calc(${triggerBox.right}px - ${position.width})`;\n } else {\n target.style.left = `${triggerBox.left}px`;\n }\n // Keep track of the initial dropdown position and direction.\n // Dropdown direction doesn't need to change as the user scrolls, just needs to stay attached to the trigger.\n fixedPosition.current = position;\n return;\n }\n\n // For an interior dropdown (the fly out) we need exact values for positioning\n // and classes are not enough\n // usage of relative position is impossible due to overwrite of overflow-x\n if (interior && isInteriorPosition(position)) {\n if (position.dropUp) {\n target.style.bottom = position.bottom;\n } else {\n target.style.top = position.top;\n }\n target.style.left = position.left;\n }\n\n if (position.dropUp && position.dropLeft) {\n setPosition('top-left');\n } else if (position.dropUp) {\n setPosition('top-right');\n } else if (position.dropLeft) {\n setPosition('bottom-left');\n } else {\n setPosition('bottom-right');\n }\n };\n\n useLayoutEffect(() => {\n const onDropdownOpen = () => {\n if (open && dropdownRef.current && triggerRef.current && verticalContainerRef.current) {\n // calculate scroll width only for dropdowns that has a scrollbar and ignore it for date picker components\n if (scrollable) {\n dropdownRef.current.classList.add(styles.nowrap);\n }\n setDropdownPosition(\n ...calculatePosition(\n dropdownRef.current,\n triggerRef.current,\n verticalContainerRef.current,\n interior,\n expandToViewport,\n preferCenter,\n stretchWidth,\n stretchHeight,\n isMobile,\n minWidth\n ),\n dropdownRef.current,\n verticalContainerRef.current\n );\n if (scrollable) {\n dropdownRef.current.classList.remove(styles.nowrap);\n }\n }\n };\n onDropdownOpen();\n\n if (open) {\n // window may scroll when dropdown opens, for example when soft keyboard shows up\n window.addEventListener('scroll', onDropdownOpen);\n // only listen to window scroll within very short time after the dropdown opens\n // do not want to interfere dropdown position on scroll afterwards\n const timeoutId = setTimeout(() => {\n window.removeEventListener('scroll', onDropdownOpen);\n }, 500);\n\n return () => {\n clearTimeout(timeoutId);\n window.removeEventListener('scroll', onDropdownOpen);\n };\n }\n // See AWSUI-13040\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open, dropdownRef, triggerRef, verticalContainerRef, interior, stretchWidth, isMobile]);\n\n // subscribe to outside click\n useEffect(() => {\n if (!open) {\n return;\n }\n const clickListener = (e: MouseEvent) => {\n if (!dropdownRef.current?.contains(e.target as Node)) {\n fireNonCancelableEvent(onDropdownClose);\n }\n };\n\n /*\n * This small delay allows the event that opened the dropdown to\n * finish bubbling, so that it is not immediately captured here.\n */\n const timeout = setTimeout(() => {\n window.addEventListener('click', clickListener);\n }, 0);\n\n return () => {\n clearTimeout(timeout);\n window.removeEventListener('click', clickListener);\n };\n }, [open, onDropdownClose]);\n\n // sync dropdown position on scroll and resize\n useLayoutEffect(() => {\n if (!expandToViewport || !open) {\n return;\n }\n const updateDropdownPosition = () => {\n if (triggerRef.current && dropdownRef.current && verticalContainerRef.current) {\n const triggerRect = triggerRef.current.getBoundingClientRect();\n const target = dropdownRef.current;\n if (fixedPosition.current) {\n if (fixedPosition.current.dropUp) {\n dropdownRef.current.style.bottom = `calc(100% - ${triggerRect.top}px)`;\n } else {\n target.style.top = `${triggerRect.bottom}px`;\n }\n if (fixedPosition.current.dropLeft) {\n target.style.left = `calc(${triggerRect.right}px - ${fixedPosition.current.width})`;\n } else {\n target.style.left = `${triggerRect.left}px`;\n }\n }\n }\n };\n\n updateDropdownPosition();\n\n window.addEventListener('scroll', updateDropdownPosition, true);\n window.addEventListener('resize', updateDropdownPosition, true);\n return () => {\n window.removeEventListener('scroll', updateDropdownPosition, true);\n window.removeEventListener('resize', updateDropdownPosition, true);\n };\n }, [open, expandToViewport]);\n\n return (\n <div\n className={clsx(\n styles.root,\n interior && styles.interior,\n stretchTriggerHeight && styles['stretch-trigger-height']\n )}\n >\n <div className={clsx(stretchTriggerHeight && styles['stretch-trigger-height'])} ref={triggerRef}>\n {trigger}\n </div>\n\n <TabTrap\n focusNextCallback={() => dropdownRef.current && getFirstFocusable(dropdownRef.current)?.focus()}\n disabled={!open || !trapFocus}\n />\n\n <DropdownContainer renderWithPortal={expandToViewport && !interior} id={dropdownId} open={open}>\n <Transition in={open ?? false} exit={false}>\n {(state, ref) => (\n <div onBlur={event => trapFocus && event.stopPropagation()}>\n <TabTrap\n focusNextCallback={() => triggerRef.current && getLastFocusable(triggerRef.current)?.focus()}\n disabled={!open || !trapFocus}\n />\n\n <TransitionContent\n state={state}\n transitionRef={ref}\n dropdownClasses={dropdownClasses}\n open={open}\n stretchWidth={stretchWidth}\n interior={interior}\n header={header}\n hasContent={hasContent}\n expandToViewport={expandToViewport}\n footer={footer}\n onMouseDown={onMouseDown}\n isRefresh={isRefresh}\n dropdownRef={dropdownRef}\n verticalContainerRef={verticalContainerRef}\n position={position}\n >\n {children}\n </TransitionContent>\n\n <TabTrap\n focusNextCallback={() => triggerRef.current && getFirstFocusable(triggerRef.current)?.focus()}\n disabled={!open || !trapFocus}\n />\n </div>\n )}\n </Transition>\n </DropdownContainer>\n </div>\n );\n};\n\nconst isInteriorPosition = (\n position: DropdownPosition | InteriorDropdownPosition\n): position is InteriorDropdownPosition => (position as InteriorDropdownPosition).bottom !== undefined;\n\nexport default Dropdown;\n"]}
|