@cloudscape-design/components-themeable 3.0.1360 → 3.0.1362
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/manifest.json +1 -1
- package/lib/internal/scss/alert/styles.scss +13 -12
- package/lib/internal/scss/badge/styles.scss +38 -49
- package/lib/internal/scss/button/styles.scss +51 -51
- package/lib/internal/scss/cards/styles.scss +4 -0
- package/lib/internal/scss/container/styles.scss +2 -0
- package/lib/internal/scss/icon/hover-motion.scss +24 -12
- package/lib/internal/scss/input/styles.scss +4 -0
- package/lib/internal/scss/internal/generated/custom-css-properties/index.scss +175 -174
- package/lib/internal/scss/internal/styles/forms/mixins.scss +11 -2
- package/lib/internal/scss/internal/styles/style-api.scss +60 -10
- package/lib/internal/scss/pagination/styles.scss +3 -1
- package/lib/internal/scss/table/styles.scss +5 -0
- package/lib/internal/template/action-card/internal.d.ts.map +1 -1
- package/lib/internal/template/action-card/internal.js +5 -2
- package/lib/internal/template/action-card/internal.js.map +1 -1
- package/lib/internal/template/alert/styles.css.js +27 -27
- package/lib/internal/template/alert/styles.scoped.css +50 -50
- package/lib/internal/template/alert/styles.selectors.js +27 -27
- package/lib/internal/template/annotation-context/annotation/styles.css.js +13 -13
- package/lib/internal/template/annotation-context/annotation/styles.scoped.css +21 -21
- package/lib/internal/template/annotation-context/annotation/styles.selectors.js +13 -13
- package/lib/internal/template/app-layout/notifications/styles.css.js +3 -3
- package/lib/internal/template/app-layout/notifications/styles.scoped.css +7 -7
- package/lib/internal/template/app-layout/notifications/styles.selectors.js +3 -3
- package/lib/internal/template/app-layout/toggles/index.d.ts.map +1 -1
- package/lib/internal/template/app-layout/toggles/index.js +1 -1
- package/lib/internal/template/app-layout/toggles/index.js.map +1 -1
- package/lib/internal/template/app-layout/visual-refresh/styles.css.js +86 -86
- package/lib/internal/template/app-layout/visual-refresh/styles.scoped.css +258 -258
- package/lib/internal/template/app-layout/visual-refresh/styles.selectors.js +86 -86
- package/lib/internal/template/app-layout/visual-refresh/trigger-button.d.ts.map +1 -1
- package/lib/internal/template/app-layout/visual-refresh/trigger-button.js +1 -1
- package/lib/internal/template/app-layout/visual-refresh/trigger-button.js.map +1 -1
- package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/styles.css.js +32 -32
- package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/styles.scoped.css +89 -89
- package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/styles.selectors.js +32 -32
- package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/styles.css.js +6 -6
- package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/styles.scoped.css +13 -13
- package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/styles.selectors.js +6 -6
- package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/styles.css.js +30 -30
- package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/styles.scoped.css +68 -68
- package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/styles.selectors.js +30 -30
- package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/trigger-button/index.d.ts.map +1 -1
- package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/trigger-button/index.js +1 -1
- package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/trigger-button/index.js.map +1 -1
- package/lib/internal/template/attribute-editor/styles.css.js +15 -15
- package/lib/internal/template/attribute-editor/styles.scoped.css +28 -28
- package/lib/internal/template/attribute-editor/styles.selectors.js +15 -15
- package/lib/internal/template/breadcrumb-group/all-items-dropdown.js +2 -2
- package/lib/internal/template/breadcrumb-group/all-items-dropdown.js.map +1 -1
- package/lib/internal/template/breadcrumb-group/item/styles.css.js +7 -7
- package/lib/internal/template/breadcrumb-group/item/styles.scoped.css +28 -28
- package/lib/internal/template/breadcrumb-group/item/styles.selectors.js +7 -7
- package/lib/internal/template/button/internal.d.ts.map +1 -1
- package/lib/internal/template/button/internal.js +2 -0
- package/lib/internal/template/button/internal.js.map +1 -1
- package/lib/internal/template/button/styles.css.js +23 -23
- package/lib/internal/template/button/styles.scoped.css +261 -261
- package/lib/internal/template/button/styles.selectors.js +23 -23
- package/lib/internal/template/button-dropdown/category-elements/expandable-category-element.d.ts.map +1 -1
- package/lib/internal/template/button-dropdown/category-elements/expandable-category-element.js +2 -2
- package/lib/internal/template/button-dropdown/category-elements/expandable-category-element.js.map +1 -1
- package/lib/internal/template/button-dropdown/filter.d.ts +1 -1
- package/lib/internal/template/button-dropdown/filter.d.ts.map +1 -1
- package/lib/internal/template/button-dropdown/internal.d.ts.map +1 -1
- package/lib/internal/template/button-dropdown/internal.js +9 -3
- package/lib/internal/template/button-dropdown/internal.js.map +1 -1
- package/lib/internal/template/button-dropdown/item-element/index.d.ts.map +1 -1
- package/lib/internal/template/button-dropdown/item-element/index.js +2 -2
- package/lib/internal/template/button-dropdown/item-element/index.js.map +1 -1
- package/lib/internal/template/button-dropdown/item-element/styles.css.js +21 -21
- package/lib/internal/template/button-dropdown/item-element/styles.scoped.css +37 -37
- package/lib/internal/template/button-dropdown/item-element/styles.selectors.js +21 -21
- package/lib/internal/template/button-dropdown/utils/use-button-dropdown.d.ts +5 -3
- package/lib/internal/template/button-dropdown/utils/use-button-dropdown.d.ts.map +1 -1
- package/lib/internal/template/button-dropdown/utils/use-button-dropdown.js +14 -2
- package/lib/internal/template/button-dropdown/utils/use-button-dropdown.js.map +1 -1
- package/lib/internal/template/cards/styles.css.js +39 -38
- package/lib/internal/template/cards/styles.scoped.css +42 -39
- package/lib/internal/template/cards/styles.selectors.js +39 -38
- package/lib/internal/template/checkbox/styles.css.js +3 -3
- package/lib/internal/template/checkbox/styles.scoped.css +11 -11
- package/lib/internal/template/checkbox/styles.selectors.js +3 -3
- package/lib/internal/template/code-editor/tab-button.d.ts.map +1 -1
- package/lib/internal/template/code-editor/tab-button.js +1 -1
- package/lib/internal/template/code-editor/tab-button.js.map +1 -1
- package/lib/internal/template/container/styles.css.js +33 -33
- package/lib/internal/template/container/styles.scoped.css +57 -56
- package/lib/internal/template/container/styles.selectors.js +33 -33
- package/lib/internal/template/content-layout/styles.css.js +14 -14
- package/lib/internal/template/content-layout/styles.scoped.css +27 -27
- package/lib/internal/template/content-layout/styles.selectors.js +14 -14
- package/lib/internal/template/dropdown/styles.css.js +20 -20
- package/lib/internal/template/dropdown/styles.scoped.css +49 -49
- package/lib/internal/template/dropdown/styles.selectors.js +20 -20
- package/lib/internal/template/expandable-section/expandable-section-header.d.ts.map +1 -1
- package/lib/internal/template/expandable-section/expandable-section-header.js +13 -7
- package/lib/internal/template/expandable-section/expandable-section-header.js.map +1 -1
- package/lib/internal/template/file-token-group/styles.css.js +23 -23
- package/lib/internal/template/file-token-group/styles.scoped.css +36 -36
- package/lib/internal/template/file-token-group/styles.selectors.js +23 -23
- package/lib/internal/template/flashbar/collapsible-flashbar.d.ts.map +1 -1
- package/lib/internal/template/flashbar/collapsible-flashbar.js +3 -3
- package/lib/internal/template/flashbar/collapsible-flashbar.js.map +1 -1
- package/lib/internal/template/flashbar/styles.css.js +50 -50
- package/lib/internal/template/flashbar/styles.scoped.css +192 -192
- package/lib/internal/template/flashbar/styles.selectors.js +50 -50
- package/lib/internal/template/help-panel/styles.css.js +6 -6
- package/lib/internal/template/help-panel/styles.scoped.css +72 -72
- package/lib/internal/template/help-panel/styles.selectors.js +6 -6
- package/lib/internal/template/input/index.d.ts.map +1 -1
- package/lib/internal/template/input/index.js +3 -2
- package/lib/internal/template/input/index.js.map +1 -1
- package/lib/internal/template/input/interfaces.d.ts +6 -0
- package/lib/internal/template/input/interfaces.d.ts.map +1 -1
- package/lib/internal/template/input/interfaces.js.map +1 -1
- package/lib/internal/template/input/internal.d.ts +0 -1
- package/lib/internal/template/input/internal.d.ts.map +1 -1
- package/lib/internal/template/input/internal.js +26 -12
- package/lib/internal/template/input/internal.js.map +1 -1
- package/lib/internal/template/input/styles.css.js +29 -28
- package/lib/internal/template/input/styles.scoped.css +134 -131
- package/lib/internal/template/input/styles.selectors.js +29 -28
- package/lib/internal/template/internal/base-component/styles.scoped.css +1 -1
- package/lib/internal/template/internal/components/button-trigger/index.d.ts.map +1 -1
- package/lib/internal/template/internal/components/button-trigger/index.js +2 -2
- package/lib/internal/template/internal/components/button-trigger/index.js.map +1 -1
- package/lib/internal/template/internal/components/drag-handle/button.d.ts.map +1 -1
- package/lib/internal/template/internal/components/drag-handle/button.js +3 -1
- package/lib/internal/template/internal/components/drag-handle/button.js.map +1 -1
- package/lib/internal/template/internal/components/drag-handle-wrapper/index.d.ts.map +1 -1
- package/lib/internal/template/internal/components/drag-handle-wrapper/index.js +2 -1
- package/lib/internal/template/internal/components/drag-handle-wrapper/index.js.map +1 -1
- package/lib/internal/template/internal/components/drag-handle-wrapper/styles.css.js +30 -30
- package/lib/internal/template/internal/components/drag-handle-wrapper/styles.scoped.css +58 -58
- package/lib/internal/template/internal/components/drag-handle-wrapper/styles.selectors.js +30 -30
- package/lib/internal/template/internal/components/expand-toggle-button/index.d.ts.map +1 -1
- package/lib/internal/template/internal/components/expand-toggle-button/index.js +1 -1
- package/lib/internal/template/internal/components/expand-toggle-button/index.js.map +1 -1
- package/lib/internal/template/internal/components/menu-dropdown/index.d.ts.map +1 -1
- package/lib/internal/template/internal/components/menu-dropdown/index.js +1 -1
- package/lib/internal/template/internal/components/menu-dropdown/index.js.map +1 -1
- package/lib/internal/template/internal/components/option/styles.css.js +17 -17
- package/lib/internal/template/internal/components/option/styles.scoped.css +31 -31
- package/lib/internal/template/internal/components/option/styles.selectors.js +17 -17
- package/lib/internal/template/internal/components/radio-button/styles.css.js +7 -7
- package/lib/internal/template/internal/components/radio-button/styles.scoped.css +18 -18
- package/lib/internal/template/internal/components/radio-button/styles.selectors.js +7 -7
- package/lib/internal/template/internal/components/selectable-item/styles.css.js +22 -22
- package/lib/internal/template/internal/components/selectable-item/styles.scoped.css +57 -57
- package/lib/internal/template/internal/components/selectable-item/styles.selectors.js +22 -22
- package/lib/internal/template/internal/components/token-list/styles.css.js +10 -10
- package/lib/internal/template/internal/components/token-list/styles.scoped.css +25 -25
- package/lib/internal/template/internal/components/token-list/styles.selectors.js +10 -10
- package/lib/internal/template/internal/components/token-list/token-limit-toggle.d.ts.map +1 -1
- package/lib/internal/template/internal/components/token-list/token-limit-toggle.js +2 -2
- package/lib/internal/template/internal/components/token-list/token-limit-toggle.js.map +1 -1
- package/lib/internal/template/internal/environment.js +2 -2
- package/lib/internal/template/internal/environment.json +2 -2
- package/lib/internal/template/internal/generated/custom-css-properties/index.d.ts +1 -0
- package/lib/internal/template/internal/generated/custom-css-properties/index.d.ts.map +1 -1
- package/lib/internal/template/internal/generated/custom-css-properties/index.js +174 -173
- package/lib/internal/template/internal/generated/custom-css-properties/index.js.map +1 -1
- package/lib/internal/template/internal/generated/styles/tokens.js +200 -200
- package/lib/internal/template/internal/generated/theming/index.cjs +200 -200
- package/lib/internal/template/internal/generated/theming/index.js +200 -200
- package/lib/internal/template/internal/utils/focus-visible.d.ts +15 -0
- package/lib/internal/template/internal/utils/focus-visible.d.ts.map +1 -0
- package/lib/internal/template/internal/utils/focus-visible.js +21 -0
- package/lib/internal/template/internal/utils/focus-visible.js.map +1 -0
- package/lib/internal/template/item-card/styles.css.js +14 -14
- package/lib/internal/template/item-card/styles.scoped.css +63 -63
- package/lib/internal/template/item-card/styles.selectors.js +14 -14
- package/lib/internal/template/link/internal.d.ts.map +1 -1
- package/lib/internal/template/link/internal.js +2 -0
- package/lib/internal/template/link/internal.js.map +1 -1
- package/lib/internal/template/link/styles.css.js +21 -21
- package/lib/internal/template/link/styles.scoped.css +104 -104
- package/lib/internal/template/link/styles.selectors.js +21 -21
- package/lib/internal/template/modal/styles.css.js +31 -31
- package/lib/internal/template/modal/styles.scoped.css +48 -48
- package/lib/internal/template/modal/styles.selectors.js +31 -31
- package/lib/internal/template/pagination/internal.d.ts.map +1 -1
- package/lib/internal/template/pagination/internal.js +4 -4
- package/lib/internal/template/pagination/internal.js.map +1 -1
- package/lib/internal/template/pagination/styles.css.js +12 -12
- package/lib/internal/template/pagination/styles.scoped.css +31 -31
- package/lib/internal/template/pagination/styles.selectors.js +12 -12
- package/lib/internal/template/progress-bar/styles.css.js +19 -19
- package/lib/internal/template/progress-bar/styles.scoped.css +58 -58
- package/lib/internal/template/progress-bar/styles.selectors.js +19 -19
- package/lib/internal/template/prompt-input/styles.css.js +26 -26
- package/lib/internal/template/prompt-input/styles.scoped.css +105 -105
- package/lib/internal/template/prompt-input/styles.selectors.js +26 -26
- package/lib/internal/template/property-filter/filtering-token/index.js +4 -4
- package/lib/internal/template/property-filter/filtering-token/index.js.map +1 -1
- package/lib/internal/template/segmented-control/segment.d.ts.map +1 -1
- package/lib/internal/template/segmented-control/segment.js +1 -1
- package/lib/internal/template/segmented-control/segment.js.map +1 -1
- package/lib/internal/template/segmented-control/styles.css.js +16 -16
- package/lib/internal/template/segmented-control/styles.scoped.css +46 -46
- package/lib/internal/template/segmented-control/styles.selectors.js +16 -16
- package/lib/internal/template/select/parts/filter.d.ts +1 -1
- package/lib/internal/template/select/parts/filter.d.ts.map +1 -1
- package/lib/internal/template/select/parts/styles.css.js +21 -21
- package/lib/internal/template/select/parts/styles.scoped.css +24 -24
- package/lib/internal/template/select/parts/styles.selectors.js +21 -21
- package/lib/internal/template/side-navigation/parts.js +3 -3
- package/lib/internal/template/side-navigation/parts.js.map +1 -1
- package/lib/internal/template/side-navigation/styles.css.js +64 -64
- package/lib/internal/template/side-navigation/styles.scoped.css +111 -111
- package/lib/internal/template/side-navigation/styles.selectors.js +64 -64
- package/lib/internal/template/slider/styles.css.js +26 -26
- package/lib/internal/template/slider/styles.scoped.css +165 -165
- package/lib/internal/template/slider/styles.selectors.js +26 -26
- package/lib/internal/template/spinner/styles.css.js +14 -14
- package/lib/internal/template/spinner/styles.scoped.css +40 -40
- package/lib/internal/template/spinner/styles.selectors.js +14 -14
- package/lib/internal/template/table/header-cell/index.d.ts.map +1 -1
- package/lib/internal/template/table/header-cell/index.js +2 -1
- package/lib/internal/template/table/header-cell/index.js.map +1 -1
- package/lib/internal/template/table/styles.css.js +37 -37
- package/lib/internal/template/table/styles.scoped.css +47 -44
- package/lib/internal/template/table/styles.selectors.js +37 -37
- package/lib/internal/template/tabs/styles.css.js +30 -30
- package/lib/internal/template/tabs/styles.scoped.css +76 -76
- package/lib/internal/template/tabs/styles.selectors.js +30 -30
- package/lib/internal/template/tabs/tab-header-bar.d.ts.map +1 -1
- package/lib/internal/template/tabs/tab-header-bar.js +1 -1
- package/lib/internal/template/tabs/tab-header-bar.js.map +1 -1
- package/lib/internal/template/tag-editor/styles.css.js +3 -3
- package/lib/internal/template/tag-editor/styles.scoped.css +13 -13
- package/lib/internal/template/tag-editor/styles.selectors.js +3 -3
- package/lib/internal/template/test-utils/dom/input/index.d.ts +1 -0
- package/lib/internal/template/test-utils/dom/input/index.js +3 -0
- package/lib/internal/template/test-utils/dom/input/index.js.map +1 -1
- package/lib/internal/template/test-utils/selectors/input/index.d.ts +1 -0
- package/lib/internal/template/test-utils/selectors/input/index.js +3 -0
- package/lib/internal/template/test-utils/selectors/input/index.js.map +1 -1
- package/lib/internal/template/text-content/styles.css.js +1 -1
- package/lib/internal/template/text-content/styles.scoped.css +66 -66
- package/lib/internal/template/text-content/styles.selectors.js +1 -1
- package/lib/internal/template/textarea/styles.css.js +9 -9
- package/lib/internal/template/textarea/styles.scoped.css +51 -51
- package/lib/internal/template/textarea/styles.selectors.js +9 -9
- package/lib/internal/template/toggle/styles.css.js +10 -10
- package/lib/internal/template/toggle/styles.scoped.css +23 -23
- package/lib/internal/template/toggle/styles.selectors.js +10 -10
- package/lib/internal/template/token/dismiss-button.js +2 -2
- package/lib/internal/template/token/dismiss-button.js.map +1 -1
- package/lib/internal/template/token/styles.css.js +14 -14
- package/lib/internal/template/token/styles.scoped.css +46 -46
- package/lib/internal/template/token/styles.selectors.js +14 -14
- package/lib/internal/template/top-navigation/parts/overflow-menu/menu-item.d.ts.map +1 -1
- package/lib/internal/template/top-navigation/parts/overflow-menu/menu-item.js +5 -5
- package/lib/internal/template/top-navigation/parts/overflow-menu/menu-item.js.map +1 -1
- package/package.json +1 -1
|
@@ -10,10 +10,10 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
10
10
|
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
11
11
|
SPDX-License-Identifier: Apache-2.0
|
|
12
12
|
*/
|
|
13
|
-
.awsui_dropdown-content-
|
|
14
|
-
animation: awsui_awsui-motion-fade-in-
|
|
13
|
+
.awsui_dropdown-content-wrapper_9duf6_n6iaf_13:not(#\9) {
|
|
14
|
+
animation: awsui_awsui-motion-fade-in-dropdown_9duf6_n6iaf_1 var(--motion-duration-show-quick-24aj9c, 135ms) var(--motion-easing-show-quick-gb8584, ease-out);
|
|
15
15
|
}
|
|
16
|
-
@keyframes awsui_awsui-motion-fade-in-
|
|
16
|
+
@keyframes awsui_awsui-motion-fade-in-dropdown_9duf6_n6iaf_1 {
|
|
17
17
|
from {
|
|
18
18
|
opacity: 0.4;
|
|
19
19
|
}
|
|
@@ -22,22 +22,22 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
@media (prefers-reduced-motion: reduce) {
|
|
25
|
-
.awsui_dropdown-content-
|
|
25
|
+
.awsui_dropdown-content-wrapper_9duf6_n6iaf_13:not(#\9) {
|
|
26
26
|
animation: none;
|
|
27
27
|
transition: none;
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
|
-
.awsui-motion-disabled .awsui_dropdown-content-
|
|
30
|
+
.awsui-motion-disabled .awsui_dropdown-content-wrapper_9duf6_n6iaf_13:not(#\9), .awsui-mode-entering .awsui_dropdown-content-wrapper_9duf6_n6iaf_13:not(#\9) {
|
|
31
31
|
animation: none;
|
|
32
32
|
transition: none;
|
|
33
33
|
}
|
|
34
|
-
.awsui_dropdown-content-
|
|
34
|
+
.awsui_dropdown-content-wrapper_9duf6_n6iaf_13.awsui_refresh_9duf6_n6iaf_34:not(#\9) {
|
|
35
35
|
transform-origin: top;
|
|
36
|
-
animation-name: awsui_awsui-motion-fade-in-
|
|
36
|
+
animation-name: awsui_awsui-motion-fade-in-0_9duf6_n6iaf_1;
|
|
37
37
|
animation-duration: var(--motion-duration-show-quick-24aj9c, 135ms);
|
|
38
38
|
animation-timing-function: var(--motion-easing-show-quick-gb8584, ease-out);
|
|
39
39
|
}
|
|
40
|
-
@keyframes awsui_awsui-motion-fade-in-
|
|
40
|
+
@keyframes awsui_awsui-motion-fade-in-0_9duf6_n6iaf_1 {
|
|
41
41
|
from {
|
|
42
42
|
opacity: 0;
|
|
43
43
|
}
|
|
@@ -46,17 +46,17 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
@media (prefers-reduced-motion: reduce) {
|
|
49
|
-
.awsui_dropdown-content-
|
|
49
|
+
.awsui_dropdown-content-wrapper_9duf6_n6iaf_13.awsui_refresh_9duf6_n6iaf_34:not(#\9) {
|
|
50
50
|
animation: none;
|
|
51
51
|
transition: none;
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
|
-
.awsui-motion-disabled .awsui_dropdown-content-
|
|
54
|
+
.awsui-motion-disabled .awsui_dropdown-content-wrapper_9duf6_n6iaf_13.awsui_refresh_9duf6_n6iaf_34:not(#\9), .awsui-mode-entering .awsui_dropdown-content-wrapper_9duf6_n6iaf_13.awsui_refresh_9duf6_n6iaf_34:not(#\9) {
|
|
55
55
|
animation: none;
|
|
56
56
|
transition: none;
|
|
57
57
|
}
|
|
58
58
|
|
|
59
|
-
.
|
|
59
|
+
.awsui_root_9duf6_n6iaf_59:not(#\9) {
|
|
60
60
|
border-collapse: separate;
|
|
61
61
|
border-spacing: 0;
|
|
62
62
|
box-sizing: border-box;
|
|
@@ -89,34 +89,34 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
89
89
|
position: relative;
|
|
90
90
|
white-space: inherit;
|
|
91
91
|
}
|
|
92
|
-
.
|
|
92
|
+
.awsui_root_9duf6_n6iaf_59.awsui_interior_9duf6_n6iaf_92:not(#\9) {
|
|
93
93
|
position: static;
|
|
94
94
|
}
|
|
95
95
|
|
|
96
|
-
.
|
|
96
|
+
.awsui_dropdown_9duf6_n6iaf_13:not(#\9) {
|
|
97
97
|
position: absolute;
|
|
98
98
|
display: none;
|
|
99
99
|
z-index: 2000;
|
|
100
100
|
transform-origin: top;
|
|
101
101
|
}
|
|
102
|
-
.
|
|
102
|
+
.awsui_dropdown_9duf6_n6iaf_13.awsui_use-portal_9duf6_n6iaf_102:not(#\9) {
|
|
103
103
|
z-index: 7000;
|
|
104
104
|
}
|
|
105
|
-
.
|
|
105
|
+
.awsui_dropdown_9duf6_n6iaf_13:not(#\9):not(.awsui_interior_9duf6_n6iaf_92) {
|
|
106
106
|
transform: translateY(0px);
|
|
107
107
|
transition: transform var(--motion-duration-show-quick-24aj9c, 135ms);
|
|
108
108
|
}
|
|
109
109
|
@media (prefers-reduced-motion: reduce) {
|
|
110
|
-
.
|
|
110
|
+
.awsui_dropdown_9duf6_n6iaf_13:not(#\9):not(.awsui_interior_9duf6_n6iaf_92) {
|
|
111
111
|
animation: none;
|
|
112
112
|
transition: none;
|
|
113
113
|
}
|
|
114
114
|
}
|
|
115
|
-
.awsui-motion-disabled .
|
|
115
|
+
.awsui-motion-disabled .awsui_dropdown_9duf6_n6iaf_13:not(#\9):not(.awsui_interior_9duf6_n6iaf_92), .awsui-mode-entering .awsui_dropdown_9duf6_n6iaf_13:not(#\9):not(.awsui_interior_9duf6_n6iaf_92) {
|
|
116
116
|
animation: none;
|
|
117
117
|
transition: none;
|
|
118
118
|
}
|
|
119
|
-
.awsui_dropdown-content-
|
|
119
|
+
.awsui_dropdown-content-wrapper_9duf6_n6iaf_13:not(#\9) {
|
|
120
120
|
border-collapse: separate;
|
|
121
121
|
border-spacing: 0;
|
|
122
122
|
box-sizing: border-box;
|
|
@@ -151,14 +151,14 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
151
151
|
background-color: var(--color-background-dropdown-item-default-x5ga9w, #ffffff);
|
|
152
152
|
outline: none;
|
|
153
153
|
box-shadow: var(--shadow-dropdown-ogwesf, 0 1px 1px 0 rgba(0, 28, 36, 0.3), 1px 1px 1px 0 rgba(0, 28, 36, 0.15), -1px 1px 1px 0 rgba(0, 28, 36, 0.15));
|
|
154
|
-
border-start-start-radius: var(--awsui-dropdown-content-border-radius-
|
|
155
|
-
border-start-end-radius: var(--awsui-dropdown-content-border-radius-
|
|
156
|
-
border-end-start-radius: var(--awsui-dropdown-content-border-radius-
|
|
157
|
-
border-end-end-radius: var(--awsui-dropdown-content-border-radius-
|
|
154
|
+
border-start-start-radius: var(--awsui-dropdown-content-border-radius-66120l, var(--border-radius-dropdown-azs8zp, 0px));
|
|
155
|
+
border-start-end-radius: var(--awsui-dropdown-content-border-radius-66120l, var(--border-radius-dropdown-azs8zp, 0px));
|
|
156
|
+
border-end-start-radius: var(--awsui-dropdown-content-border-radius-66120l, var(--border-radius-dropdown-azs8zp, 0px));
|
|
157
|
+
border-end-end-radius: var(--awsui-dropdown-content-border-radius-66120l, var(--border-radius-dropdown-azs8zp, 0px));
|
|
158
158
|
border-block: var(--border-divider-list-width-2qbfmz, 1px) solid var(--color-border-container-top-9e7tpv, #eaeded);
|
|
159
159
|
box-sizing: border-box;
|
|
160
160
|
}
|
|
161
|
-
.awsui_dropdown-content-
|
|
161
|
+
.awsui_dropdown-content-wrapper_9duf6_n6iaf_13:not(#\9)::after {
|
|
162
162
|
content: "";
|
|
163
163
|
position: absolute;
|
|
164
164
|
z-index: 1;
|
|
@@ -167,74 +167,74 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
167
167
|
inset-inline-start: 0px;
|
|
168
168
|
inset-inline-end: 0px;
|
|
169
169
|
background-color: transparent;
|
|
170
|
-
border-block: var(--awsui-dropdown-content-border-width-
|
|
171
|
-
border-inline: var(--awsui-dropdown-content-border-width-
|
|
172
|
-
border-start-start-radius: var(--awsui-dropdown-content-border-radius-
|
|
173
|
-
border-start-end-radius: var(--awsui-dropdown-content-border-radius-
|
|
174
|
-
border-end-start-radius: var(--awsui-dropdown-content-border-radius-
|
|
175
|
-
border-end-end-radius: var(--awsui-dropdown-content-border-radius-
|
|
170
|
+
border-block: var(--awsui-dropdown-content-border-width-66120l, var(--border-width-popover-snsxri, 1px)) solid var(--awsui-dropdown-content-border-color-66120l, var(--color-border-dropdown-container-zmsfa8, transparent));
|
|
171
|
+
border-inline: var(--awsui-dropdown-content-border-width-66120l, var(--border-width-popover-snsxri, 1px)) solid var(--awsui-dropdown-content-border-color-66120l, var(--color-border-dropdown-container-zmsfa8, transparent));
|
|
172
|
+
border-start-start-radius: var(--awsui-dropdown-content-border-radius-66120l, var(--border-radius-dropdown-azs8zp, 0px));
|
|
173
|
+
border-start-end-radius: var(--awsui-dropdown-content-border-radius-66120l, var(--border-radius-dropdown-azs8zp, 0px));
|
|
174
|
+
border-end-start-radius: var(--awsui-dropdown-content-border-radius-66120l, var(--border-radius-dropdown-azs8zp, 0px));
|
|
175
|
+
border-end-end-radius: var(--awsui-dropdown-content-border-radius-66120l, var(--border-radius-dropdown-azs8zp, 0px));
|
|
176
176
|
pointer-events: none;
|
|
177
177
|
}
|
|
178
|
-
.awsui_dropdown-content-
|
|
178
|
+
.awsui_dropdown-content-wrapper_9duf6_n6iaf_13.awsui_is-empty_9duf6_n6iaf_178:not(#\9)::after {
|
|
179
179
|
display: none;
|
|
180
180
|
}
|
|
181
|
-
.
|
|
181
|
+
.awsui_dropdown_9duf6_n6iaf_13 > .awsui_dropdown-content-wrapper_9duf6_n6iaf_13:not(#\9) {
|
|
182
182
|
border-block-start: var(--border-divider-list-width-2qbfmz, 1px) solid var(--color-border-container-top-9e7tpv, #eaeded);
|
|
183
183
|
border-block-end: var(--border-divider-list-width-2qbfmz, 1px) solid var(--color-border-dropdown-group-y5droz, #eaeded);
|
|
184
184
|
}
|
|
185
|
-
.awsui_dropdown-drop-
|
|
185
|
+
.awsui_dropdown-drop-up_9duf6_n6iaf_185 > .awsui_dropdown-content-wrapper_9duf6_n6iaf_13:not(#\9) {
|
|
186
186
|
transform-origin: bottom;
|
|
187
187
|
box-shadow: var(--shadow-dropup-40ssty, 0 -1px 1px 0 rgba(0, 28, 36, 0.3), 1px -1px 1px 0 rgba(0, 28, 36, 0.15), -1px -1px 1px 0 rgba(0, 28, 36, 0.15));
|
|
188
188
|
}
|
|
189
|
-
.awsui_dropdown-drop-
|
|
189
|
+
.awsui_dropdown-drop-up_9duf6_n6iaf_185.awsui_with-limited-width_9duf6_n6iaf_189 > .awsui_dropdown-content-wrapper_9duf6_n6iaf_13:not(#\9) {
|
|
190
190
|
border-block-start: none;
|
|
191
191
|
}
|
|
192
|
-
.awsui_dropdown-drop-
|
|
192
|
+
.awsui_dropdown-drop-left_9duf6_n6iaf_192:not(#\9) {
|
|
193
193
|
inset-inline-end: 0;
|
|
194
194
|
}
|
|
195
|
-
.awsui_dropdown-drop-
|
|
195
|
+
.awsui_dropdown-drop-right_9duf6_n6iaf_195:not(#\9) {
|
|
196
196
|
inset-inline-start: 0;
|
|
197
197
|
}
|
|
198
|
-
.
|
|
198
|
+
.awsui_dropdown_9duf6_n6iaf_13.awsui_occupy-entire-width_9duf6_n6iaf_198:not(#\9) {
|
|
199
199
|
min-inline-size: 100%;
|
|
200
200
|
}
|
|
201
|
-
.
|
|
201
|
+
.awsui_dropdown_9duf6_n6iaf_13.awsui_use-flexible-width_9duf6_n6iaf_201:not(#\9) {
|
|
202
202
|
inline-size: max-content;
|
|
203
|
-
max-inline-size: var(--awsui-dropdown-default-max-width-
|
|
204
|
-
min-inline-size: var(--awsui-dropdown-default-min-width-
|
|
203
|
+
max-inline-size: var(--awsui-dropdown-default-max-width-66120l, none);
|
|
204
|
+
min-inline-size: var(--awsui-dropdown-default-min-width-66120l, auto);
|
|
205
205
|
}
|
|
206
|
-
.
|
|
206
|
+
.awsui_dropdown_9duf6_n6iaf_13.awsui_interior_9duf6_n6iaf_92 > .awsui_dropdown-content-wrapper_9duf6_n6iaf_13:not(#\9) {
|
|
207
207
|
margin-block-start: -1px;
|
|
208
208
|
}
|
|
209
|
-
.
|
|
209
|
+
.awsui_dropdown_9duf6_n6iaf_13.awsui_hide-block-border_9duf6_n6iaf_209 > .awsui_dropdown-content-wrapper_9duf6_n6iaf_13:not(#\9) {
|
|
210
210
|
border-block-start: none;
|
|
211
211
|
}
|
|
212
|
-
.
|
|
212
|
+
.awsui_dropdown_9duf6_n6iaf_13.awsui_hide-block-border_9duf6_n6iaf_209:not(#\9):not(.awsui_dropdown-drop-up_9duf6_n6iaf_185) > .awsui_dropdown-content-wrapper_9duf6_n6iaf_13 {
|
|
213
213
|
border-block-end: none;
|
|
214
214
|
}
|
|
215
|
-
.
|
|
215
|
+
.awsui_dropdown_9duf6_n6iaf_13.awsui_hide-block-border_9duf6_n6iaf_209.awsui_refresh_9duf6_n6iaf_34 > .awsui_dropdown-content-wrapper_9duf6_n6iaf_13:not(#\9) {
|
|
216
216
|
border-block-end: none;
|
|
217
217
|
}
|
|
218
|
-
.
|
|
218
|
+
.awsui_dropdown_9duf6_n6iaf_13.awsui_open_9duf6_n6iaf_218:not(#\9) {
|
|
219
219
|
display: block;
|
|
220
220
|
}
|
|
221
|
-
.
|
|
221
|
+
.awsui_dropdown_9duf6_n6iaf_13.awsui_open_9duf6_n6iaf_218:not(#\9):not(.awsui_interior_9duf6_n6iaf_92).awsui_refresh_9duf6_n6iaf_34[data-animating=true] {
|
|
222
222
|
transform: translateY(4px);
|
|
223
223
|
}
|
|
224
|
-
.
|
|
224
|
+
.awsui_dropdown_9duf6_n6iaf_13.awsui_open_9duf6_n6iaf_218:not(#\9):not(.awsui_interior_9duf6_n6iaf_92).awsui_refresh_9duf6_n6iaf_34[data-animating=true].awsui_dropdown-drop-up_9duf6_n6iaf_185 {
|
|
225
225
|
transform: translateY(-4px);
|
|
226
226
|
}
|
|
227
|
-
.
|
|
227
|
+
.awsui_dropdown_9duf6_n6iaf_13.awsui_open_9duf6_n6iaf_218.awsui_nowrap_9duf6_n6iaf_227:not(#\9) {
|
|
228
228
|
white-space: nowrap;
|
|
229
229
|
overflow: scroll;
|
|
230
230
|
}
|
|
231
231
|
|
|
232
|
-
.awsui_dropdown-
|
|
232
|
+
.awsui_dropdown-content_9duf6_n6iaf_13:not(#\9) {
|
|
233
233
|
display: flex;
|
|
234
234
|
flex-direction: column;
|
|
235
235
|
inline-size: 100%;
|
|
236
236
|
}
|
|
237
237
|
|
|
238
|
-
.awsui_stretch-trigger-
|
|
238
|
+
.awsui_stretch-trigger-height_9duf6_n6iaf_238:not(#\9) {
|
|
239
239
|
block-size: 100%;
|
|
240
240
|
}
|
|
@@ -2,25 +2,25 @@
|
|
|
2
2
|
// es-module interop with Babel and Typescript
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
module.exports.default = {
|
|
5
|
-
"dropdown-content-wrapper": "awsui_dropdown-content-
|
|
6
|
-
"awsui-motion-fade-in-dropdown": "awsui_awsui-motion-fade-in-
|
|
7
|
-
"refresh": "
|
|
8
|
-
"awsui-motion-fade-in-0": "awsui_awsui-motion-fade-in-
|
|
9
|
-
"root": "
|
|
10
|
-
"interior": "
|
|
11
|
-
"dropdown": "
|
|
12
|
-
"use-portal": "awsui_use-
|
|
13
|
-
"is-empty": "awsui_is-
|
|
14
|
-
"dropdown-drop-up": "awsui_dropdown-drop-
|
|
15
|
-
"with-limited-width": "awsui_with-limited-
|
|
16
|
-
"dropdown-drop-left": "awsui_dropdown-drop-
|
|
17
|
-
"dropdown-drop-right": "awsui_dropdown-drop-
|
|
18
|
-
"occupy-entire-width": "awsui_occupy-entire-
|
|
19
|
-
"use-flexible-width": "awsui_use-flexible-
|
|
20
|
-
"hide-block-border": "awsui_hide-block-
|
|
21
|
-
"open": "
|
|
22
|
-
"nowrap": "
|
|
23
|
-
"dropdown-content": "awsui_dropdown-
|
|
24
|
-
"stretch-trigger-height": "awsui_stretch-trigger-
|
|
5
|
+
"dropdown-content-wrapper": "awsui_dropdown-content-wrapper_9duf6_n6iaf_13",
|
|
6
|
+
"awsui-motion-fade-in-dropdown": "awsui_awsui-motion-fade-in-dropdown_9duf6_n6iaf_1",
|
|
7
|
+
"refresh": "awsui_refresh_9duf6_n6iaf_34",
|
|
8
|
+
"awsui-motion-fade-in-0": "awsui_awsui-motion-fade-in-0_9duf6_n6iaf_1",
|
|
9
|
+
"root": "awsui_root_9duf6_n6iaf_59",
|
|
10
|
+
"interior": "awsui_interior_9duf6_n6iaf_92",
|
|
11
|
+
"dropdown": "awsui_dropdown_9duf6_n6iaf_13",
|
|
12
|
+
"use-portal": "awsui_use-portal_9duf6_n6iaf_102",
|
|
13
|
+
"is-empty": "awsui_is-empty_9duf6_n6iaf_178",
|
|
14
|
+
"dropdown-drop-up": "awsui_dropdown-drop-up_9duf6_n6iaf_185",
|
|
15
|
+
"with-limited-width": "awsui_with-limited-width_9duf6_n6iaf_189",
|
|
16
|
+
"dropdown-drop-left": "awsui_dropdown-drop-left_9duf6_n6iaf_192",
|
|
17
|
+
"dropdown-drop-right": "awsui_dropdown-drop-right_9duf6_n6iaf_195",
|
|
18
|
+
"occupy-entire-width": "awsui_occupy-entire-width_9duf6_n6iaf_198",
|
|
19
|
+
"use-flexible-width": "awsui_use-flexible-width_9duf6_n6iaf_201",
|
|
20
|
+
"hide-block-border": "awsui_hide-block-border_9duf6_n6iaf_209",
|
|
21
|
+
"open": "awsui_open_9duf6_n6iaf_218",
|
|
22
|
+
"nowrap": "awsui_nowrap_9duf6_n6iaf_227",
|
|
23
|
+
"dropdown-content": "awsui_dropdown-content_9duf6_n6iaf_13",
|
|
24
|
+
"stretch-trigger-height": "awsui_stretch-trigger-height_9duf6_n6iaf_238"
|
|
25
25
|
};
|
|
26
26
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expandable-section-header.d.ts","sourceRoot":"","sources":["../../../src/expandable-section/expandable-section-header.tsx"],"names":[],"mappings":"AAEA,OAAc,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAalF,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"expandable-section-header.d.ts","sourceRoot":"","sources":["../../../src/expandable-section/expandable-section-header.tsx"],"names":[],"mappings":"AAEA,OAAc,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAalF,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAyExD,UAAU,4BAA4B;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,oBAAoB,CAAC;IAC9B,SAAS,EAAE,oBAAoB,CAAC;IAChC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC;IAClB,OAAO,EAAE,eAAe,CAAC;IACzB,kBAAkB,EAAE,OAAO,GAAG,KAAK,CAAC;CACrC;AAeD,UAAU,4BAA6B,SAAQ,IAAI,CAAC,4BAA4B,EAAE,UAAU,GAAG,MAAM,CAAC;IACpG,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,iBAAiB,CAAC,EAAE,SAAS,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,kBAAkB,CAAC,EAAE,sBAAsB,CAAC,UAAU,CAAC;IACvD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AA+QD,eAAO,MAAM,uBAAuB,GAAI,qQAqBrC,4BAA4B,gBA+F9B,CAAC"}
|
|
@@ -25,7 +25,7 @@ const ExpandIconButton = ({ icon, ariaLabel, ariaLabelledBy, ariaControls, expan
|
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
: undefined;
|
|
28
|
-
return (React.createElement("button", { className: clsx(styles['icon-container'], styles['expand-button'], className), type: "button", "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, "aria-controls": ariaControls, "aria-expanded": expanded, onClick: stopPropagation
|
|
28
|
+
return (React.createElement("button", { className: clsx(styles['icon-container'], styles['expand-button'], className), type: "button", "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, "aria-controls": ariaControls, "aria-expanded": expanded, "data-awsui-motion-trigger": "hover", onClick: stopPropagation
|
|
29
29
|
? event => {
|
|
30
30
|
event.stopPropagation();
|
|
31
31
|
onClick(event);
|
|
@@ -42,13 +42,13 @@ const getExpandActionAnalyticsMetadataAttribute = (expanded) => {
|
|
|
42
42
|
return getAnalyticsMetadataAttribute(metadata);
|
|
43
43
|
};
|
|
44
44
|
const ExpandableDeprecatedHeader = ({ id, className, onClick, ariaLabel, ariaControls, expanded, children, icon, onKeyUp, onKeyDown, variant, }) => {
|
|
45
|
-
return (React.createElement("div", { id: id, role: "button", className: clsx(className, styles['expand-button'], styles['click-target'], styles['header-deprecated'], analyticsSelectors['header-label']), tabIndex: 0, onKeyUp: onKeyUp, onKeyDown: onKeyDown, onClick: onClick, "aria-label": ariaLabel, "aria-controls": ariaControls, "aria-expanded": expanded, ...getExpandActionAnalyticsMetadataAttribute(expanded) },
|
|
45
|
+
return (React.createElement("div", { id: id, role: "button", className: clsx(className, styles['expand-button'], styles['click-target'], styles['header-deprecated'], analyticsSelectors['header-label']), tabIndex: 0, onKeyUp: onKeyUp, onKeyDown: onKeyDown, onClick: onClick, "aria-label": ariaLabel, "aria-controls": ariaControls, "aria-expanded": expanded, "data-awsui-motion-trigger": "hover", ...getExpandActionAnalyticsMetadataAttribute(expanded) },
|
|
46
46
|
React.createElement("div", { className: clsx(styles['icon-container'], styles[`icon-container-${variant}`]) }, icon),
|
|
47
47
|
children));
|
|
48
48
|
};
|
|
49
49
|
const ExpandableNavigationHeader = ({ id, className, onClick, ariaLabelledBy, ariaLabel, ariaControls, expanded, children, icon, expandIconPosition, hideExpandIcon, }) => {
|
|
50
50
|
const expandButton = hideExpandIcon ? null : (React.createElement(ExpandIconButton, { icon: icon, ariaLabelledBy: ariaLabelledBy, ariaLabel: ariaLabel, ariaControls: ariaControls, expanded: expanded, onClick: onClick, className: expandIconPosition === 'end' ? styles['icon-container-end'] : undefined }));
|
|
51
|
-
return (React.createElement("div", { id: id, className: clsx(className, styles['click-target'], analyticsSelectors['header-label'], expandIconPosition === 'end' && styles['header-icon-end']) }, expandIconPosition === 'end' ? (React.createElement(React.Fragment, null,
|
|
51
|
+
return (React.createElement("div", { id: id, className: clsx(className, styles['click-target'], analyticsSelectors['header-label'], expandIconPosition === 'end' && styles['header-icon-end']), "data-awsui-motion-trigger": "hover" }, expandIconPosition === 'end' ? (React.createElement(React.Fragment, null,
|
|
52
52
|
children,
|
|
53
53
|
expandButton)) : (React.createElement(React.Fragment, null,
|
|
54
54
|
expandButton,
|
|
@@ -76,6 +76,12 @@ const ExpandableHeaderTextWrapper = ({ id, descriptionId, className, onClick, ar
|
|
|
76
76
|
const headingTagListeners = !headerButtonListeners && !isContainer && description ? listeners : undefined;
|
|
77
77
|
// For all other cases, make the entire header clickable for backwards compatibility.
|
|
78
78
|
const wrapperListeners = !headerButtonListeners && !headingTagListeners ? listeners : undefined;
|
|
79
|
+
// The hover-motion trigger follows whichever element actually owns the click handler above —
|
|
80
|
+
// that element is the real interactive surface, so it's also the sane hover boundary for the caret.
|
|
81
|
+
const motionTriggerAttribute = { 'data-awsui-motion-trigger': 'hover' };
|
|
82
|
+
const headerButtonMotionTrigger = headerButtonListeners ? motionTriggerAttribute : undefined;
|
|
83
|
+
const headingTagMotionTrigger = headingTagListeners ? motionTriggerAttribute : undefined;
|
|
84
|
+
const wrapperMotionTrigger = wrapperListeners ? motionTriggerAttribute : undefined;
|
|
79
85
|
// Standalone caret button — used when the icon is rendered OUTSIDE the headerButton
|
|
80
86
|
// (end-position with container or actions). Must be its own <button> for accessibility.
|
|
81
87
|
const expandButton = (React.createElement(ExpandIconButton, { icon: icon, ariaLabel: ariaLabel, ariaLabelledBy: !ariaLabel ? id : undefined, ariaControls: ariaControls, expanded: expanded, onClick: onClick, stopPropagation: true, className: clsx(styles[`icon-container-${variant}`], styles['icon-container-end']) }));
|
|
@@ -84,23 +90,23 @@ const ExpandableHeaderTextWrapper = ({ id, descriptionId, className, onClick, ar
|
|
|
84
90
|
const expandIcon = (React.createElement("span", { className: clsx(styles['icon-container'], styles[`icon-container-${variant}`], iconAtEnd && styles['icon-container-end']) }, icon));
|
|
85
91
|
const outsideIcon = renderIconOutsideHeader ? expandButton : null;
|
|
86
92
|
const textElement = (React.createElement("span", { id: id, className: clsx(styles['header-text'], analyticsSelectors['header-label']) }, children));
|
|
87
|
-
const headerButton = (React.createElement("span", { className: clsx(styles['expand-button'], isContainer ? styles['header-container-button'] : styles['header-button'], iconAtEnd && styles['header-button-icon-end'], headerButtonListeners && styles['click-target']), role: "button", tabIndex: 0, "aria-label": ariaLabel, "aria-labelledby": !ariaLabel && description ? id : undefined, "aria-describedby": description ? descriptionId : undefined, "aria-controls": ariaControls, "aria-expanded": expanded, ...headerButtonListeners, ...(headerButtonListeners ? getExpandActionAnalyticsMetadataAttribute(expanded) : {}) }, renderIconOutsideHeader ? (textElement) : iconAtEnd ? (React.createElement(React.Fragment, null,
|
|
93
|
+
const headerButton = (React.createElement("span", { className: clsx(styles['expand-button'], isContainer ? styles['header-container-button'] : styles['header-button'], iconAtEnd && styles['header-button-icon-end'], headerButtonListeners && styles['click-target']), role: "button", tabIndex: 0, "aria-label": ariaLabel, "aria-labelledby": !ariaLabel && description ? id : undefined, "aria-describedby": description ? descriptionId : undefined, "aria-controls": ariaControls, "aria-expanded": expanded, ...headerButtonListeners, ...headerButtonMotionTrigger, ...(headerButtonListeners ? getExpandActionAnalyticsMetadataAttribute(expanded) : {}) }, renderIconOutsideHeader ? (textElement) : iconAtEnd ? (React.createElement(React.Fragment, null,
|
|
88
94
|
textElement,
|
|
89
95
|
expandIcon)) : (React.createElement(React.Fragment, null,
|
|
90
96
|
expandIcon,
|
|
91
97
|
textElement))));
|
|
92
|
-
return (React.createElement("div", { className: clsx(className, wrapperListeners && styles['click-target'], iconAtEnd && styles['header-icon-end']), ...wrapperListeners, ...(wrapperListeners ? getExpandActionAnalyticsMetadataAttribute(expanded) : {}) }, isContainer ? (React.createElement(React.Fragment, null,
|
|
98
|
+
return (React.createElement("div", { className: clsx(className, wrapperListeners && styles['click-target'], iconAtEnd && styles['header-icon-end']), ...wrapperListeners, ...wrapperMotionTrigger, ...(wrapperListeners ? getExpandActionAnalyticsMetadataAttribute(expanded) : {}) }, isContainer ? (React.createElement(React.Fragment, null,
|
|
93
99
|
React.createElement(InternalHeader, { variant: "h2", description: description, counter: headerCounter, info: headerInfo, actions: actions, headingTagOverride: headingTagOverride, __inExpandableSection: true }, headerButton),
|
|
94
100
|
outsideIcon)) : (React.createElement(React.Fragment, null,
|
|
95
101
|
React.createElement("div", { className: clsx(styles['header-content'], actions && styles['header-actions-wrapper']) },
|
|
96
|
-
React.createElement(HeadingTag, { className: clsx(styles['header-wrapper'], headingTagListeners && styles['click-target']), ...headingTagListeners, ...(headingTagListeners ? getExpandActionAnalyticsMetadataAttribute(expanded) : {}) }, headerButton),
|
|
102
|
+
React.createElement(HeadingTag, { className: clsx(styles['header-wrapper'], headingTagListeners && styles['click-target']), ...headingTagListeners, ...headingTagMotionTrigger, ...(headingTagListeners ? getExpandActionAnalyticsMetadataAttribute(expanded) : {}) }, headerButton),
|
|
97
103
|
actions),
|
|
98
104
|
description && React.createElement(HeaderDescription, { variantOverride: "h3" }, description),
|
|
99
105
|
outsideIcon))));
|
|
100
106
|
};
|
|
101
107
|
export const ExpandableSectionHeader = ({ id, descriptionId, className, variant, header, headerText, headerDescription, headerCounter, headerInfo, headerActions, headingTagOverride, expanded, ariaControls, ariaLabel, ariaLabelledBy, onKeyUp, onKeyDown, onClick, expandIconPosition, hideExpandIcon, }) => {
|
|
102
108
|
const alwaysShowDivider = variantRequiresActionsDivider(variant) && headerActions;
|
|
103
|
-
const icon = (React.createElement(InternalIcon, { size: isThemeActive(Theme.OneTheme) ? 'x-small' : variant === 'container' ? 'medium' : 'normal', className: clsx(styles.icon, expanded && styles.expanded), name: isThemeActive(Theme.OneTheme) ? 'angle-down' : 'caret-down-filled' }));
|
|
109
|
+
const icon = (React.createElement(InternalIcon, { size: isThemeActive(Theme.OneTheme) ? 'x-small' : variant === 'container' ? 'medium' : 'normal', className: clsx(styles.icon, expanded && styles.expanded), name: isThemeActive(Theme.OneTheme) ? 'angle-down' : 'caret-down-filled', nativeAttributes: { 'data-awsui-motion-target': '' } }));
|
|
104
110
|
const defaultHeaderProps = {
|
|
105
111
|
id: id,
|
|
106
112
|
icon: icon,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expandable-section-header.js","sourceRoot":"","sources":["../../../src/expandable-section/expandable-section-header.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAA6D,MAAM,OAAO,CAAC;AAClF,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,+CAA+C,CAAC;AAC/F,OAAO,EAAE,6BAA6B,EAAE,MAAM,kEAAkE,CAAC;AAEjH,OAAO,cAAc,EAAE,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACtF,OAAO,YAAY,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAO3D,OAAO,EACL,6BAA6B,EAC7B,sBAAsB,EACtB,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,SAAS,CAAC;AAEjB,OAAO,kBAAkB,MAAM,oCAAoC,CAAC;AACpE,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAErC,MAAM,aAAa,GAAG,mBAAmB,CAAC;AAa1C;;;;;GAKG;AACH,MAAM,gBAAgB,GAAG,CAAC,EACxB,IAAI,EACJ,SAAS,EACT,cAAc,EACd,YAAY,EACZ,QAAQ,EACR,OAAO,EACP,eAAe,EACf,SAAS,GACa,EAAE,EAAE;IAC1B,MAAM,kBAAkB,GAAG,eAAe;QACxC,CAAC,CAAC,CAAC,KAA0B,EAAE,EAAE;YAC7B,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;gBAC/C,KAAK,CAAC,eAAe,EAAE,CAAC;YAC1B,CAAC;QACH,CAAC;QACH,CAAC,CAAC,SAAS,CAAC;IACd,OAAO,CACL,gCACE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC,EAAE,SAAS,CAAC,EAC7E,IAAI,EAAC,QAAQ,gBACD,SAAS,qBACJ,cAAc,mBAChB,YAAY,mBACZ,QAAQ,EACvB,OAAO,EACL,eAAe;YACb,CAAC,CAAC,KAAK,CAAC,EAAE;gBACN,KAAK,CAAC,eAAe,EAAE,CAAC;gBACxB,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC;YACH,CAAC,CAAC,OAAO,EAEb,OAAO,EAAE,kBAAkB,EAC3B,SAAS,EAAE,kBAAkB,KACzB,yCAAyC,CAAC,QAAQ,CAAC,IAEtD,IAAI,CACE,CACV,CAAC;AACJ,CAAC,CAAC;AA2CF,MAAM,yCAAyC,GAAG,CAAC,QAAiB,EAAE,EAAE;IACtE,MAAM,QAAQ,GAE4C;QACxD,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU;QACzC,MAAM,EAAE;YACN,KAAK,EAAE,EAAE,YAAY,EAAE,IAAI,kBAAkB,CAAC,IAAI,EAAE,EAAE;SACvD;KACF,CAAC;IACF,OAAO,6BAA6B,CAAC,QAAQ,CAAC,CAAC;AACjD,CAAC,CAAC;AACF,MAAM,0BAA0B,GAAG,CAAC,EAClC,EAAE,EACF,SAAS,EACT,OAAO,EACP,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,SAAS,EACT,OAAO,GACsB,EAAE,EAAE;IACjC,OAAO,CACL,6BACE,EAAE,EAAE,EAAE,EACN,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,IAAI,CACb,SAAS,EACT,MAAM,CAAC,eAAe,CAAC,EACvB,MAAM,CAAC,cAAc,CAAC,EACtB,MAAM,CAAC,mBAAmB,CAAC,EAC3B,kBAAkB,CAAC,cAAc,CAAC,CACnC,EACD,QAAQ,EAAE,CAAC,EACX,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,gBACJ,SAAS,mBACN,YAAY,mBACZ,QAAQ,KACnB,yCAAyC,CAAC,QAAQ,CAAC;QAEvD,6BAAK,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC,kBAAkB,OAAO,EAAE,CAAC,CAAC,IAAG,IAAI,CAAO;QAChG,QAAQ,CACL,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,0BAA0B,GAAG,CAAC,EAClC,EAAE,EACF,SAAS,EACT,OAAO,EACP,cAAc,EACd,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,kBAAkB,EAClB,cAAc,GACkB,EAAE,EAAE;IACpC,MAAM,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC3C,oBAAC,gBAAgB,IACf,IAAI,EAAE,IAAI,EACV,cAAc,EAAE,cAAc,EAC9B,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,kBAAkB,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,SAAS,GAClF,CACH,CAAC;IACF,OAAO,CACL,6BACE,EAAE,EAAE,EAAE,EACN,SAAS,EAAE,IAAI,CACb,SAAS,EACT,MAAM,CAAC,cAAc,CAAC,EACtB,kBAAkB,CAAC,cAAc,CAAC,EAClC,kBAAkB,KAAK,KAAK,IAAI,MAAM,CAAC,iBAAiB,CAAC,CAC1D,IAEA,kBAAkB,KAAK,KAAK,CAAC,CAAC,CAAC,CAC9B;QACG,QAAQ;QACR,YAAY,CACZ,CACJ,CAAC,CAAC,CAAC,CACF;QACG,YAAY;QACZ,QAAQ,CACR,CACJ,CACG,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,2BAA2B,GAAG,CAAC,EACnC,EAAE,EACF,aAAa,EACb,SAAS,EACT,OAAO,EACP,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,aAAa,EACb,OAAO,EACP,kBAAkB,EAClB,OAAO,EACP,SAAS,EACT,kBAAkB,GACe,EAAE,EAAE;IACrC,MAAM,WAAW,GAAG,OAAO,KAAK,WAAW,CAAC;IAC5C,MAAM,UAAU,GAAG,kBAAkB,IAAI,KAAK,CAAC;IAC/C,MAAM,2BAA2B,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;IACpE,MAAM,qBAAqB,GAAG,2BAA2B,IAAI,CAAC,UAAU,IAAI,aAAa,CAAC,CAAC;IAC3F,MAAM,OAAO,GAAG,2BAA2B,IAAI,aAAa,CAAC;IAC7D,MAAM,WAAW,GAAG,0BAA0B,CAAC,OAAO,CAAC,IAAI,iBAAiB,IAAI,CAC9E,8BAAM,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,CAAC,eAAe,OAAO,EAAE,CAAC,IACjE,iBAAiB,CACb,CACR,CAAC;IACF,MAAM,SAAS,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;IAClD,MAAM,SAAS,GAAG,kBAAkB,KAAK,KAAK,CAAC;IAC/C,sGAAsG;IACtG,0FAA0F;IAC1F,wEAAwE;IACxE,MAAM,uBAAuB,GAAG,SAAS,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;IAExE,yGAAyG;IACzG,2CAA2C;IAC3C,MAAM,qBAAqB,GAAG,qBAAqB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5E,wDAAwD;IACxD,sGAAsG;IACtG,+BAA+B;IAC/B,MAAM,mBAAmB,GAAG,CAAC,qBAAqB,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1G,qFAAqF;IACrF,MAAM,gBAAgB,GAAG,CAAC,qBAAqB,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IAEhG,oFAAoF;IACpF,wFAAwF;IACxF,MAAM,YAAY,GAAG,CACnB,oBAAC,gBAAgB,IACf,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAC3C,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,EAChB,eAAe,EAAE,IAAI,EACrB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,kBAAkB,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC,oBAAoB,CAAC,CAAC,GAClF,CACH,CAAC;IAEF,0EAA0E;IAC1E,iFAAiF;IACjF,MAAM,UAAU,GAAG,CACjB,8BACE,SAAS,EAAE,IAAI,CACb,MAAM,CAAC,gBAAgB,CAAC,EACxB,MAAM,CAAC,kBAAkB,OAAO,EAAE,CAAC,EACnC,SAAS,IAAI,MAAM,CAAC,oBAAoB,CAAC,CAC1C,IAEA,IAAI,CACA,CACR,CAAC;IAEF,MAAM,WAAW,GAAG,uBAAuB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;IAElE,MAAM,WAAW,GAAG,CAClB,8BAAM,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,kBAAkB,CAAC,cAAc,CAAC,CAAC,IACrF,QAAQ,CACJ,CACR,CAAC;IACF,MAAM,YAAY,GAAG,CACnB,8BACE,SAAS,EAAE,IAAI,CACb,MAAM,CAAC,eAAe,CAAC,EACvB,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,EACzE,SAAS,IAAI,MAAM,CAAC,wBAAwB,CAAC,EAC7C,qBAAqB,IAAI,MAAM,CAAC,cAAc,CAAC,CAChD,EACD,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,CAAC,gBACC,SAAS,qBACJ,CAAC,SAAS,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,sBACzC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,mBAC1C,YAAY,mBACZ,QAAQ,KACnB,qBAAqB,KACrB,CAAC,qBAAqB,CAAC,CAAC,CAAC,yCAAyC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAErF,uBAAuB,CAAC,CAAC,CAAC,CACzB,WAAW,CACZ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CACd;QACG,WAAW;QACX,UAAU,CACV,CACJ,CAAC,CAAC,CAAC,CACF;QACG,UAAU;QACV,WAAW,CACX,CACJ,CACI,CACR,CAAC;IAEF,OAAO,CACL,6BACE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,gBAAgB,IAAI,MAAM,CAAC,cAAc,CAAC,EAAE,SAAS,IAAI,MAAM,CAAC,iBAAiB,CAAC,CAAC,KAC1G,gBAAgB,KAChB,CAAC,gBAAgB,CAAC,CAAC,CAAC,yCAAyC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAEhF,WAAW,CAAC,CAAC,CAAC,CACb;QACE,oBAAC,cAAc,IACb,OAAO,EAAC,IAAI,EACZ,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,OAAO,EAChB,kBAAkB,EAAE,kBAAkB,EACtC,qBAAqB,EAAE,IAAI,IAE1B,YAAY,CACE;QAChB,WAAW,CACX,CACJ,CAAC,CAAC,CAAC,CACF;QACE,6BAAK,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,OAAO,IAAI,MAAM,CAAC,wBAAwB,CAAC,CAAC;YACzF,oBAAC,UAAU,IACT,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,mBAAmB,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC,KACpF,mBAAmB,KACnB,CAAC,mBAAmB,CAAC,CAAC,CAAC,yCAAyC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAEnF,YAAY,CACF;YACZ,OAAO,CACJ;QACL,WAAW,IAAI,oBAAC,iBAAiB,IAAC,eAAe,EAAC,IAAI,IAAE,WAAW,CAAqB;QACxF,WAAW,CACX,CACJ,CACG,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,EACtC,EAAE,EACF,aAAa,EACb,SAAS,EACT,OAAO,EACP,MAAM,EACN,UAAU,EACV,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,aAAa,EACb,kBAAkB,EAClB,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,cAAc,EACd,OAAO,EACP,SAAS,EACT,OAAO,EACP,kBAAkB,EAClB,cAAc,GACe,EAAE,EAAE;IACjC,MAAM,iBAAiB,GAAG,6BAA6B,CAAC,OAAO,CAAC,IAAI,aAAa,CAAC;IAClF,MAAM,IAAI,GAAG,CACX,oBAAC,YAAY,IACX,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAC/F,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,EACzD,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,mBAAmB,GACxE,CACH,CAAC;IACF,MAAM,kBAAkB,GAAG;QACzB,EAAE,EAAE,EAAE;QACN,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,QAAQ;QAClB,YAAY,EAAE,YAAY;QAC1B,SAAS,EAAE,SAAS;QACpB,OAAO,EAAE,OAAO;QAChB,OAAO;QACP,kBAAkB;KACnB,CAAC;IAEF,IAAI,CAAC,aAAa,IAAI,UAAU,CAAC,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,IAAI,aAAa,EAAE,CAAC;QACxF,QAAQ,CACN,aAAa,EACb,4FAA4F,CAC7F,CAAC;IACJ,CAAC;IAED,IAAI,aAAa,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,IAAI,aAAa,EAAE,CAAC;QACvE,QAAQ,CAAC,aAAa,EAAE,0FAA0F,CAAC,CAAC;IACtH,CAAC;IAED,IAAI,iBAAiB,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,IAAI,aAAa,EAAE,CAAC;QAC/E,QAAQ,CAAC,aAAa,EAAE,2DAA2D,OAAO,WAAW,CAAC,CAAC;IACzG,CAAC;IAED,MAAM,gBAAgB,GAAG,IAAI,CAC3B,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,WAAW,OAAO,EAAE,CAAC,EAC5B,CAAC,QAAQ,IAAI,iBAAiB,CAAC,IAAI,MAAM,CAAC,kBAAkB,CAAC,CAC9D,CAAC;IACF,IAAI,OAAO,KAAK,YAAY,EAAE,CAAC;QAC7B,OAAO,CACL,oBAAC,0BAA0B,IACzB,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,EAC5C,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,cAAc,KAC1B,kBAAkB;YAEtB,8BAAM,SAAS,EAAE,MAAM,CAAC,2BAA2B,CAAC,IAAG,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,MAAM,CAAQ,CACxD,CAC9B,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACvC,IAAI,CAAC,UAAU,IAAI,MAAM,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;YAClD,QAAQ,CAAC,aAAa,EAAE,0EAA0E,CAAC,CAAC;QACtG,CAAC;QACD,OAAO,CACL,oBAAC,2BAA2B,IAC1B,SAAS,EAAE,IAAI,CACb,SAAS,EACT,gBAAgB,EAChB,QAAQ,IAAI,MAAM,CAAC,QAAQ,EAC3B,CAAC,QAAQ,IAAI,CAAC,CAAC,aAAa,IAAI,iBAAiB,CAAC,IAAI,MAAM,CAAC,sCAAsC,CAAC,CACrG,EACD,aAAa,EAAE,aAAa,EAC5B,iBAAiB,EAAE,iBAAiB,EACpC,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,aAAa,EAC5B,kBAAkB,EAAE,kBAAkB,EACtC,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,KAChB,kBAAkB,IAErB,UAAU,CACiB,CAC/B,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,KAAK,WAAW,IAAI,MAAM,IAAI,aAAa,EAAE,CAAC;QACvD,QAAQ,CAAC,aAAa,EAAE,yFAAyF,CAAC,CAAC;IACrH,CAAC;IAED,OAAO,CACL,oBAAC,0BAA0B,IACzB,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,gBAAgB,EAAE,MAAM,CAAC,SAAS,EAAE,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,EAC3F,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,KAChB,kBAAkB,IAErB,MAAM,CACoB,CAC9B,CAAC;AACJ,CAAC,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { KeyboardEventHandler, MouseEventHandler, ReactNode } from 'react';\nimport clsx from 'clsx';\n\nimport { isThemeActive, Theme, warnOnce } from '@cloudscape-design/component-toolkit/internal';\nimport { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport InternalHeader, { Description as HeaderDescription } from '../header/internal';\nimport InternalIcon from '../icon/internal';\nimport { isDevelopment } from '../internal/is-development';\nimport {\n GeneratedAnalyticsMetadataExpandableSectionCollapse,\n GeneratedAnalyticsMetadataExpandableSectionExpand,\n} from './analytics-metadata/interfaces';\nimport { ExpandableSectionProps } from './interfaces';\nimport { InternalVariant } from './internal-interfaces';\nimport {\n variantRequiresActionsDivider,\n variantSupportsActions,\n variantSupportsDescription,\n variantSupportsInfoLink,\n} from './utils';\n\nimport analyticsSelectors from './analytics-metadata/styles.css.js';\nimport styles from './styles.css.js';\n\nconst componentName = 'ExpandableSection';\n\ninterface ExpandIconButtonProps {\n icon: JSX.Element;\n ariaLabel?: string;\n ariaLabelledBy?: string;\n ariaControls: string;\n expanded: boolean;\n onClick: MouseEventHandler;\n stopPropagation?: boolean;\n className?: string;\n}\n\n/**\n * Standalone expand/collapse caret button used when the icon renders OUTSIDE\n * the main clickable header area (navigation variant) or outside the headerButton\n * (end-position with actions/container). This is always an independent interactive\n * element with its own ARIA attributes.\n */\nconst ExpandIconButton = ({\n icon,\n ariaLabel,\n ariaLabelledBy,\n ariaControls,\n expanded,\n onClick,\n stopPropagation,\n className,\n}: ExpandIconButtonProps) => {\n const stopKeyPropagation = stopPropagation\n ? (event: React.KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.stopPropagation();\n }\n }\n : undefined;\n return (\n <button\n className={clsx(styles['icon-container'], styles['expand-button'], className)}\n type=\"button\"\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-controls={ariaControls}\n aria-expanded={expanded}\n onClick={\n stopPropagation\n ? event => {\n event.stopPropagation();\n onClick(event);\n }\n : onClick\n }\n onKeyUp={stopKeyPropagation}\n onKeyDown={stopKeyPropagation}\n {...getExpandActionAnalyticsMetadataAttribute(expanded)}\n >\n {icon}\n </button>\n );\n};\n\ninterface ExpandableDefaultHeaderProps {\n id: string;\n descriptionId?: string;\n className?: string;\n children?: ReactNode;\n expanded: boolean;\n ariaControls: string;\n ariaLabel?: string;\n onKeyUp: KeyboardEventHandler;\n onKeyDown: KeyboardEventHandler;\n onClick: MouseEventHandler;\n icon: JSX.Element;\n variant: InternalVariant;\n expandIconPosition: 'start' | 'end';\n}\n\ninterface ExpandableNavigationHeaderProps extends Omit<ExpandableDefaultHeaderProps, 'onKeyUp' | 'onKeyDown'> {\n ariaLabelledBy?: string;\n hideExpandIcon?: boolean;\n}\n\ninterface ExpandableHeaderTextWrapperProps extends ExpandableDefaultHeaderProps {\n headerDescription?: ReactNode;\n headerCounter?: string;\n headerInfo?: ReactNode;\n headerActions?: ReactNode;\n headingTagOverride?: ExpandableSectionProps.HeadingTag;\n}\n\ninterface ExpandableSectionHeaderProps extends Omit<ExpandableDefaultHeaderProps, 'children' | 'icon'> {\n header?: ReactNode;\n headerText?: ReactNode;\n headerDescription?: ReactNode;\n headerCounter?: string;\n headerInfo?: ReactNode;\n headerActions?: ReactNode;\n headingTagOverride?: ExpandableSectionProps.HeadingTag;\n ariaLabelledBy?: string;\n hideExpandIcon?: boolean;\n}\n\nconst getExpandActionAnalyticsMetadataAttribute = (expanded: boolean) => {\n const metadata:\n | GeneratedAnalyticsMetadataExpandableSectionExpand\n | GeneratedAnalyticsMetadataExpandableSectionCollapse = {\n action: !expanded ? 'expand' : 'collapse',\n detail: {\n label: { rootSelector: `.${analyticsSelectors.root}` },\n },\n };\n return getAnalyticsMetadataAttribute(metadata);\n};\nconst ExpandableDeprecatedHeader = ({\n id,\n className,\n onClick,\n ariaLabel,\n ariaControls,\n expanded,\n children,\n icon,\n onKeyUp,\n onKeyDown,\n variant,\n}: ExpandableDefaultHeaderProps) => {\n return (\n <div\n id={id}\n role=\"button\"\n className={clsx(\n className,\n styles['expand-button'],\n styles['click-target'],\n styles['header-deprecated'],\n analyticsSelectors['header-label']\n )}\n tabIndex={0}\n onKeyUp={onKeyUp}\n onKeyDown={onKeyDown}\n onClick={onClick}\n aria-label={ariaLabel}\n aria-controls={ariaControls}\n aria-expanded={expanded}\n {...getExpandActionAnalyticsMetadataAttribute(expanded)}\n >\n <div className={clsx(styles['icon-container'], styles[`icon-container-${variant}`])}>{icon}</div>\n {children}\n </div>\n );\n};\n\nconst ExpandableNavigationHeader = ({\n id,\n className,\n onClick,\n ariaLabelledBy,\n ariaLabel,\n ariaControls,\n expanded,\n children,\n icon,\n expandIconPosition,\n hideExpandIcon,\n}: ExpandableNavigationHeaderProps) => {\n const expandButton = hideExpandIcon ? null : (\n <ExpandIconButton\n icon={icon}\n ariaLabelledBy={ariaLabelledBy}\n ariaLabel={ariaLabel}\n ariaControls={ariaControls}\n expanded={expanded}\n onClick={onClick}\n className={expandIconPosition === 'end' ? styles['icon-container-end'] : undefined}\n />\n );\n return (\n <div\n id={id}\n className={clsx(\n className,\n styles['click-target'],\n analyticsSelectors['header-label'],\n expandIconPosition === 'end' && styles['header-icon-end']\n )}\n >\n {expandIconPosition === 'end' ? (\n <>\n {children}\n {expandButton}\n </>\n ) : (\n <>\n {expandButton}\n {children}\n </>\n )}\n </div>\n );\n};\n\nconst ExpandableHeaderTextWrapper = ({\n id,\n descriptionId,\n className,\n onClick,\n ariaLabel,\n ariaControls,\n expanded,\n children,\n icon,\n headerDescription,\n headerCounter,\n headerInfo,\n headerActions,\n variant,\n headingTagOverride,\n onKeyUp,\n onKeyDown,\n expandIconPosition,\n}: ExpandableHeaderTextWrapperProps) => {\n const isContainer = variant === 'container';\n const HeadingTag = headingTagOverride || 'div';\n const supportsInteractiveElements = variantSupportsActions(variant);\n const restrictClickableArea = supportsInteractiveElements && (headerInfo || headerActions);\n const actions = supportsInteractiveElements && headerActions;\n const description = variantSupportsDescription(variant) && headerDescription && (\n <span id={descriptionId} className={styles[`description-${variant}`]}>\n {headerDescription}\n </span>\n );\n const listeners = { onClick, onKeyDown, onKeyUp };\n const iconAtEnd = expandIconPosition === 'end';\n // For the variants that allow actions, when end placement is active, the icon is rendered outside the\n // InternalHeader so it appears at the inline-end of the wrapper, past any header actions.\n // Other variants render the icon at the end of the headerButton itself.\n const renderIconOutsideHeader = iconAtEnd && (isContainer || !!actions);\n\n // If interactive elements are present, constrain the clickable area to only the icon and the header text\n // to prevent nesting interactive elements.\n const headerButtonListeners = restrictClickableArea ? listeners : undefined;\n // For the default and footer variants with description,\n // include also the immediate wrapper around it to include the entire row for backwards compatibility,\n // but exclude the description.\n const headingTagListeners = !headerButtonListeners && !isContainer && description ? listeners : undefined;\n // For all other cases, make the entire header clickable for backwards compatibility.\n const wrapperListeners = !headerButtonListeners && !headingTagListeners ? listeners : undefined;\n\n // Standalone caret button — used when the icon is rendered OUTSIDE the headerButton\n // (end-position with container or actions). Must be its own <button> for accessibility.\n const expandButton = (\n <ExpandIconButton\n icon={icon}\n ariaLabel={ariaLabel}\n ariaLabelledBy={!ariaLabel ? id : undefined}\n ariaControls={ariaControls}\n expanded={expanded}\n onClick={onClick}\n stopPropagation={true}\n className={clsx(styles[`icon-container-${variant}`], styles['icon-container-end'])}\n />\n );\n\n // Decorative inline icon — used when the caret is INSIDE the headerButton\n // (which itself is the interactive element). A nested <button> would be illegal.\n const expandIcon = (\n <span\n className={clsx(\n styles['icon-container'],\n styles[`icon-container-${variant}`],\n iconAtEnd && styles['icon-container-end']\n )}\n >\n {icon}\n </span>\n );\n\n const outsideIcon = renderIconOutsideHeader ? expandButton : null;\n\n const textElement = (\n <span id={id} className={clsx(styles['header-text'], analyticsSelectors['header-label'])}>\n {children}\n </span>\n );\n const headerButton = (\n <span\n className={clsx(\n styles['expand-button'],\n isContainer ? styles['header-container-button'] : styles['header-button'],\n iconAtEnd && styles['header-button-icon-end'],\n headerButtonListeners && styles['click-target']\n )}\n role=\"button\"\n tabIndex={0}\n aria-label={ariaLabel}\n aria-labelledby={!ariaLabel && description ? id : undefined}\n aria-describedby={description ? descriptionId : undefined}\n aria-controls={ariaControls}\n aria-expanded={expanded}\n {...headerButtonListeners}\n {...(headerButtonListeners ? getExpandActionAnalyticsMetadataAttribute(expanded) : {})}\n >\n {renderIconOutsideHeader ? (\n textElement\n ) : iconAtEnd ? (\n <>\n {textElement}\n {expandIcon}\n </>\n ) : (\n <>\n {expandIcon}\n {textElement}\n </>\n )}\n </span>\n );\n\n return (\n <div\n className={clsx(className, wrapperListeners && styles['click-target'], iconAtEnd && styles['header-icon-end'])}\n {...wrapperListeners}\n {...(wrapperListeners ? getExpandActionAnalyticsMetadataAttribute(expanded) : {})}\n >\n {isContainer ? (\n <>\n <InternalHeader\n variant=\"h2\"\n description={description}\n counter={headerCounter}\n info={headerInfo}\n actions={actions}\n headingTagOverride={headingTagOverride}\n __inExpandableSection={true}\n >\n {headerButton}\n </InternalHeader>\n {outsideIcon}\n </>\n ) : (\n <>\n <div className={clsx(styles['header-content'], actions && styles['header-actions-wrapper'])}>\n <HeadingTag\n className={clsx(styles['header-wrapper'], headingTagListeners && styles['click-target'])}\n {...headingTagListeners}\n {...(headingTagListeners ? getExpandActionAnalyticsMetadataAttribute(expanded) : {})}\n >\n {headerButton}\n </HeadingTag>\n {actions}\n </div>\n {description && <HeaderDescription variantOverride=\"h3\">{description}</HeaderDescription>}\n {outsideIcon}\n </>\n )}\n </div>\n );\n};\n\nexport const ExpandableSectionHeader = ({\n id,\n descriptionId,\n className,\n variant,\n header,\n headerText,\n headerDescription,\n headerCounter,\n headerInfo,\n headerActions,\n headingTagOverride,\n expanded,\n ariaControls,\n ariaLabel,\n ariaLabelledBy,\n onKeyUp,\n onKeyDown,\n onClick,\n expandIconPosition,\n hideExpandIcon,\n}: ExpandableSectionHeaderProps) => {\n const alwaysShowDivider = variantRequiresActionsDivider(variant) && headerActions;\n const icon = (\n <InternalIcon\n size={isThemeActive(Theme.OneTheme) ? 'x-small' : variant === 'container' ? 'medium' : 'normal'}\n className={clsx(styles.icon, expanded && styles.expanded)}\n name={isThemeActive(Theme.OneTheme) ? 'angle-down' : 'caret-down-filled'}\n />\n );\n const defaultHeaderProps = {\n id: id,\n icon: icon,\n expanded: expanded,\n ariaControls: ariaControls,\n ariaLabel: ariaLabel,\n onClick: onClick,\n variant,\n expandIconPosition,\n };\n\n if ((headerCounter || headerInfo) && !variantSupportsInfoLink(variant) && isDevelopment) {\n warnOnce(\n componentName,\n 'The `headerCounter` and `headerInfo` props are only supported for the \"container\" variant.'\n );\n }\n\n if (headerActions && !variantSupportsActions(variant) && isDevelopment) {\n warnOnce(componentName, `The \\`headerActions\\` prop is only supported for the \"container\" and \"default\" variants.`);\n }\n\n if (headerDescription && !variantSupportsDescription(variant) && isDevelopment) {\n warnOnce(componentName, `The \\`headerDescription\\` prop is not supported for the ${variant} variant.`);\n }\n\n const wrapperClassName = clsx(\n styles.wrapper,\n styles[`wrapper-${variant}`],\n (expanded || alwaysShowDivider) && styles['wrapper-expanded']\n );\n if (variant === 'navigation') {\n return (\n <ExpandableNavigationHeader\n className={clsx(className, wrapperClassName)}\n ariaLabelledBy={ariaLabelledBy}\n hideExpandIcon={hideExpandIcon}\n {...defaultHeaderProps}\n >\n <span className={styles['header-navigation-content']}>{headerText ?? header}</span>\n </ExpandableNavigationHeader>\n );\n }\n\n if (headerText || variant === 'inline') {\n if (!headerText && header && variant === 'inline') {\n warnOnce(componentName, 'Only `headerText` instead of `header` is supported for `inline` variant.');\n }\n return (\n <ExpandableHeaderTextWrapper\n className={clsx(\n className,\n wrapperClassName,\n expanded && styles.expanded,\n !expanded && (!headerActions || headerDescription) && styles['wrapper-not-expanded-without-actions']\n )}\n descriptionId={descriptionId}\n headerDescription={headerDescription}\n headerCounter={headerCounter}\n headerInfo={headerInfo}\n headerActions={headerActions}\n headingTagOverride={headingTagOverride}\n onKeyUp={onKeyUp}\n onKeyDown={onKeyDown}\n {...defaultHeaderProps}\n >\n {headerText}\n </ExpandableHeaderTextWrapper>\n );\n }\n\n if (variant === 'container' && header && isDevelopment) {\n warnOnce(componentName, 'Use `headerText` instead of `header` to provide the button within the heading for a11y.');\n }\n\n return (\n <ExpandableDeprecatedHeader\n className={clsx(className, wrapperClassName, styles.focusable, expanded && styles.expanded)}\n onKeyUp={onKeyUp}\n onKeyDown={onKeyDown}\n {...defaultHeaderProps}\n >\n {header}\n </ExpandableDeprecatedHeader>\n );\n};\n"]}
|
|
1
|
+
{"version":3,"file":"expandable-section-header.js","sourceRoot":"","sources":["../../../src/expandable-section/expandable-section-header.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { KeyboardEventHandler, MouseEventHandler, ReactNode } from 'react';\nimport clsx from 'clsx';\n\nimport { isThemeActive, Theme, warnOnce } from '@cloudscape-design/component-toolkit/internal';\nimport { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport InternalHeader, { Description as HeaderDescription } from '../header/internal';\nimport InternalIcon from '../icon/internal';\nimport { isDevelopment } from '../internal/is-development';\nimport {\n GeneratedAnalyticsMetadataExpandableSectionCollapse,\n GeneratedAnalyticsMetadataExpandableSectionExpand,\n} from './analytics-metadata/interfaces';\nimport { ExpandableSectionProps } from './interfaces';\nimport { InternalVariant } from './internal-interfaces';\nimport {\n variantRequiresActionsDivider,\n variantSupportsActions,\n variantSupportsDescription,\n variantSupportsInfoLink,\n} from './utils';\n\nimport analyticsSelectors from './analytics-metadata/styles.css.js';\nimport styles from './styles.css.js';\n\nconst componentName = 'ExpandableSection';\n\ninterface ExpandIconButtonProps {\n icon: JSX.Element;\n ariaLabel?: string;\n ariaLabelledBy?: string;\n ariaControls: string;\n expanded: boolean;\n onClick: MouseEventHandler;\n stopPropagation?: boolean;\n className?: string;\n}\n\n/**\n * Standalone expand/collapse caret button used when the icon renders OUTSIDE\n * the main clickable header area (navigation variant) or outside the headerButton\n * (end-position with actions/container). This is always an independent interactive\n * element with its own ARIA attributes.\n */\nconst ExpandIconButton = ({\n icon,\n ariaLabel,\n ariaLabelledBy,\n ariaControls,\n expanded,\n onClick,\n stopPropagation,\n className,\n}: ExpandIconButtonProps) => {\n const stopKeyPropagation = stopPropagation\n ? (event: React.KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.stopPropagation();\n }\n }\n : undefined;\n return (\n <button\n className={clsx(styles['icon-container'], styles['expand-button'], className)}\n type=\"button\"\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-controls={ariaControls}\n aria-expanded={expanded}\n data-awsui-motion-trigger=\"hover\"\n onClick={\n stopPropagation\n ? event => {\n event.stopPropagation();\n onClick(event);\n }\n : onClick\n }\n onKeyUp={stopKeyPropagation}\n onKeyDown={stopKeyPropagation}\n {...getExpandActionAnalyticsMetadataAttribute(expanded)}\n >\n {icon}\n </button>\n );\n};\n\ninterface ExpandableDefaultHeaderProps {\n id: string;\n descriptionId?: string;\n className?: string;\n children?: ReactNode;\n expanded: boolean;\n ariaControls: string;\n ariaLabel?: string;\n onKeyUp: KeyboardEventHandler;\n onKeyDown: KeyboardEventHandler;\n onClick: MouseEventHandler;\n icon: JSX.Element;\n variant: InternalVariant;\n expandIconPosition: 'start' | 'end';\n}\n\ninterface ExpandableNavigationHeaderProps extends Omit<ExpandableDefaultHeaderProps, 'onKeyUp' | 'onKeyDown'> {\n ariaLabelledBy?: string;\n hideExpandIcon?: boolean;\n}\n\ninterface ExpandableHeaderTextWrapperProps extends ExpandableDefaultHeaderProps {\n headerDescription?: ReactNode;\n headerCounter?: string;\n headerInfo?: ReactNode;\n headerActions?: ReactNode;\n headingTagOverride?: ExpandableSectionProps.HeadingTag;\n}\n\ninterface ExpandableSectionHeaderProps extends Omit<ExpandableDefaultHeaderProps, 'children' | 'icon'> {\n header?: ReactNode;\n headerText?: ReactNode;\n headerDescription?: ReactNode;\n headerCounter?: string;\n headerInfo?: ReactNode;\n headerActions?: ReactNode;\n headingTagOverride?: ExpandableSectionProps.HeadingTag;\n ariaLabelledBy?: string;\n hideExpandIcon?: boolean;\n}\n\nconst getExpandActionAnalyticsMetadataAttribute = (expanded: boolean) => {\n const metadata:\n | GeneratedAnalyticsMetadataExpandableSectionExpand\n | GeneratedAnalyticsMetadataExpandableSectionCollapse = {\n action: !expanded ? 'expand' : 'collapse',\n detail: {\n label: { rootSelector: `.${analyticsSelectors.root}` },\n },\n };\n return getAnalyticsMetadataAttribute(metadata);\n};\nconst ExpandableDeprecatedHeader = ({\n id,\n className,\n onClick,\n ariaLabel,\n ariaControls,\n expanded,\n children,\n icon,\n onKeyUp,\n onKeyDown,\n variant,\n}: ExpandableDefaultHeaderProps) => {\n return (\n <div\n id={id}\n role=\"button\"\n className={clsx(\n className,\n styles['expand-button'],\n styles['click-target'],\n styles['header-deprecated'],\n analyticsSelectors['header-label']\n )}\n tabIndex={0}\n onKeyUp={onKeyUp}\n onKeyDown={onKeyDown}\n onClick={onClick}\n aria-label={ariaLabel}\n aria-controls={ariaControls}\n aria-expanded={expanded}\n data-awsui-motion-trigger=\"hover\"\n {...getExpandActionAnalyticsMetadataAttribute(expanded)}\n >\n <div className={clsx(styles['icon-container'], styles[`icon-container-${variant}`])}>{icon}</div>\n {children}\n </div>\n );\n};\n\nconst ExpandableNavigationHeader = ({\n id,\n className,\n onClick,\n ariaLabelledBy,\n ariaLabel,\n ariaControls,\n expanded,\n children,\n icon,\n expandIconPosition,\n hideExpandIcon,\n}: ExpandableNavigationHeaderProps) => {\n const expandButton = hideExpandIcon ? null : (\n <ExpandIconButton\n icon={icon}\n ariaLabelledBy={ariaLabelledBy}\n ariaLabel={ariaLabel}\n ariaControls={ariaControls}\n expanded={expanded}\n onClick={onClick}\n className={expandIconPosition === 'end' ? styles['icon-container-end'] : undefined}\n />\n );\n return (\n <div\n id={id}\n className={clsx(\n className,\n styles['click-target'],\n analyticsSelectors['header-label'],\n expandIconPosition === 'end' && styles['header-icon-end']\n )}\n data-awsui-motion-trigger=\"hover\"\n >\n {expandIconPosition === 'end' ? (\n <>\n {children}\n {expandButton}\n </>\n ) : (\n <>\n {expandButton}\n {children}\n </>\n )}\n </div>\n );\n};\n\nconst ExpandableHeaderTextWrapper = ({\n id,\n descriptionId,\n className,\n onClick,\n ariaLabel,\n ariaControls,\n expanded,\n children,\n icon,\n headerDescription,\n headerCounter,\n headerInfo,\n headerActions,\n variant,\n headingTagOverride,\n onKeyUp,\n onKeyDown,\n expandIconPosition,\n}: ExpandableHeaderTextWrapperProps) => {\n const isContainer = variant === 'container';\n const HeadingTag = headingTagOverride || 'div';\n const supportsInteractiveElements = variantSupportsActions(variant);\n const restrictClickableArea = supportsInteractiveElements && (headerInfo || headerActions);\n const actions = supportsInteractiveElements && headerActions;\n const description = variantSupportsDescription(variant) && headerDescription && (\n <span id={descriptionId} className={styles[`description-${variant}`]}>\n {headerDescription}\n </span>\n );\n const listeners = { onClick, onKeyDown, onKeyUp };\n const iconAtEnd = expandIconPosition === 'end';\n // For the variants that allow actions, when end placement is active, the icon is rendered outside the\n // InternalHeader so it appears at the inline-end of the wrapper, past any header actions.\n // Other variants render the icon at the end of the headerButton itself.\n const renderIconOutsideHeader = iconAtEnd && (isContainer || !!actions);\n\n // If interactive elements are present, constrain the clickable area to only the icon and the header text\n // to prevent nesting interactive elements.\n const headerButtonListeners = restrictClickableArea ? listeners : undefined;\n // For the default and footer variants with description,\n // include also the immediate wrapper around it to include the entire row for backwards compatibility,\n // but exclude the description.\n const headingTagListeners = !headerButtonListeners && !isContainer && description ? listeners : undefined;\n // For all other cases, make the entire header clickable for backwards compatibility.\n const wrapperListeners = !headerButtonListeners && !headingTagListeners ? listeners : undefined;\n\n // The hover-motion trigger follows whichever element actually owns the click handler above —\n // that element is the real interactive surface, so it's also the sane hover boundary for the caret.\n const motionTriggerAttribute = { 'data-awsui-motion-trigger': 'hover' } as const;\n const headerButtonMotionTrigger = headerButtonListeners ? motionTriggerAttribute : undefined;\n const headingTagMotionTrigger = headingTagListeners ? motionTriggerAttribute : undefined;\n const wrapperMotionTrigger = wrapperListeners ? motionTriggerAttribute : undefined;\n\n // Standalone caret button — used when the icon is rendered OUTSIDE the headerButton\n // (end-position with container or actions). Must be its own <button> for accessibility.\n const expandButton = (\n <ExpandIconButton\n icon={icon}\n ariaLabel={ariaLabel}\n ariaLabelledBy={!ariaLabel ? id : undefined}\n ariaControls={ariaControls}\n expanded={expanded}\n onClick={onClick}\n stopPropagation={true}\n className={clsx(styles[`icon-container-${variant}`], styles['icon-container-end'])}\n />\n );\n\n // Decorative inline icon — used when the caret is INSIDE the headerButton\n // (which itself is the interactive element). A nested <button> would be illegal.\n const expandIcon = (\n <span\n className={clsx(\n styles['icon-container'],\n styles[`icon-container-${variant}`],\n iconAtEnd && styles['icon-container-end']\n )}\n >\n {icon}\n </span>\n );\n\n const outsideIcon = renderIconOutsideHeader ? expandButton : null;\n\n const textElement = (\n <span id={id} className={clsx(styles['header-text'], analyticsSelectors['header-label'])}>\n {children}\n </span>\n );\n const headerButton = (\n <span\n className={clsx(\n styles['expand-button'],\n isContainer ? styles['header-container-button'] : styles['header-button'],\n iconAtEnd && styles['header-button-icon-end'],\n headerButtonListeners && styles['click-target']\n )}\n role=\"button\"\n tabIndex={0}\n aria-label={ariaLabel}\n aria-labelledby={!ariaLabel && description ? id : undefined}\n aria-describedby={description ? descriptionId : undefined}\n aria-controls={ariaControls}\n aria-expanded={expanded}\n {...headerButtonListeners}\n {...headerButtonMotionTrigger}\n {...(headerButtonListeners ? getExpandActionAnalyticsMetadataAttribute(expanded) : {})}\n >\n {renderIconOutsideHeader ? (\n textElement\n ) : iconAtEnd ? (\n <>\n {textElement}\n {expandIcon}\n </>\n ) : (\n <>\n {expandIcon}\n {textElement}\n </>\n )}\n </span>\n );\n\n return (\n <div\n className={clsx(className, wrapperListeners && styles['click-target'], iconAtEnd && styles['header-icon-end'])}\n {...wrapperListeners}\n {...wrapperMotionTrigger}\n {...(wrapperListeners ? getExpandActionAnalyticsMetadataAttribute(expanded) : {})}\n >\n {isContainer ? (\n <>\n <InternalHeader\n variant=\"h2\"\n description={description}\n counter={headerCounter}\n info={headerInfo}\n actions={actions}\n headingTagOverride={headingTagOverride}\n __inExpandableSection={true}\n >\n {headerButton}\n </InternalHeader>\n {outsideIcon}\n </>\n ) : (\n <>\n <div className={clsx(styles['header-content'], actions && styles['header-actions-wrapper'])}>\n <HeadingTag\n className={clsx(styles['header-wrapper'], headingTagListeners && styles['click-target'])}\n {...headingTagListeners}\n {...headingTagMotionTrigger}\n {...(headingTagListeners ? getExpandActionAnalyticsMetadataAttribute(expanded) : {})}\n >\n {headerButton}\n </HeadingTag>\n {actions}\n </div>\n {description && <HeaderDescription variantOverride=\"h3\">{description}</HeaderDescription>}\n {outsideIcon}\n </>\n )}\n </div>\n );\n};\n\nexport const ExpandableSectionHeader = ({\n id,\n descriptionId,\n className,\n variant,\n header,\n headerText,\n headerDescription,\n headerCounter,\n headerInfo,\n headerActions,\n headingTagOverride,\n expanded,\n ariaControls,\n ariaLabel,\n ariaLabelledBy,\n onKeyUp,\n onKeyDown,\n onClick,\n expandIconPosition,\n hideExpandIcon,\n}: ExpandableSectionHeaderProps) => {\n const alwaysShowDivider = variantRequiresActionsDivider(variant) && headerActions;\n const icon = (\n <InternalIcon\n size={isThemeActive(Theme.OneTheme) ? 'x-small' : variant === 'container' ? 'medium' : 'normal'}\n className={clsx(styles.icon, expanded && styles.expanded)}\n name={isThemeActive(Theme.OneTheme) ? 'angle-down' : 'caret-down-filled'}\n nativeAttributes={{ 'data-awsui-motion-target': '' }}\n />\n );\n const defaultHeaderProps = {\n id: id,\n icon: icon,\n expanded: expanded,\n ariaControls: ariaControls,\n ariaLabel: ariaLabel,\n onClick: onClick,\n variant,\n expandIconPosition,\n };\n\n if ((headerCounter || headerInfo) && !variantSupportsInfoLink(variant) && isDevelopment) {\n warnOnce(\n componentName,\n 'The `headerCounter` and `headerInfo` props are only supported for the \"container\" variant.'\n );\n }\n\n if (headerActions && !variantSupportsActions(variant) && isDevelopment) {\n warnOnce(componentName, `The \\`headerActions\\` prop is only supported for the \"container\" and \"default\" variants.`);\n }\n\n if (headerDescription && !variantSupportsDescription(variant) && isDevelopment) {\n warnOnce(componentName, `The \\`headerDescription\\` prop is not supported for the ${variant} variant.`);\n }\n\n const wrapperClassName = clsx(\n styles.wrapper,\n styles[`wrapper-${variant}`],\n (expanded || alwaysShowDivider) && styles['wrapper-expanded']\n );\n if (variant === 'navigation') {\n return (\n <ExpandableNavigationHeader\n className={clsx(className, wrapperClassName)}\n ariaLabelledBy={ariaLabelledBy}\n hideExpandIcon={hideExpandIcon}\n {...defaultHeaderProps}\n >\n <span className={styles['header-navigation-content']}>{headerText ?? header}</span>\n </ExpandableNavigationHeader>\n );\n }\n\n if (headerText || variant === 'inline') {\n if (!headerText && header && variant === 'inline') {\n warnOnce(componentName, 'Only `headerText` instead of `header` is supported for `inline` variant.');\n }\n return (\n <ExpandableHeaderTextWrapper\n className={clsx(\n className,\n wrapperClassName,\n expanded && styles.expanded,\n !expanded && (!headerActions || headerDescription) && styles['wrapper-not-expanded-without-actions']\n )}\n descriptionId={descriptionId}\n headerDescription={headerDescription}\n headerCounter={headerCounter}\n headerInfo={headerInfo}\n headerActions={headerActions}\n headingTagOverride={headingTagOverride}\n onKeyUp={onKeyUp}\n onKeyDown={onKeyDown}\n {...defaultHeaderProps}\n >\n {headerText}\n </ExpandableHeaderTextWrapper>\n );\n }\n\n if (variant === 'container' && header && isDevelopment) {\n warnOnce(componentName, 'Use `headerText` instead of `header` to provide the button within the heading for a11y.');\n }\n\n return (\n <ExpandableDeprecatedHeader\n className={clsx(className, wrapperClassName, styles.focusable, expanded && styles.expanded)}\n onKeyUp={onKeyUp}\n onKeyDown={onKeyDown}\n {...defaultHeaderProps}\n >\n {header}\n </ExpandableDeprecatedHeader>\n );\n};\n"]}
|
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
|
|
2
2
|
import './styles.scoped.css';
|
|
3
3
|
export default {
|
|
4
|
-
"root": "
|
|
5
|
-
"file-loading-overlay": "awsui_file-loading-
|
|
6
|
-
"file-loading-overlay-single-row": "awsui_file-loading-overlay-single-
|
|
7
|
-
"file-name-container": "awsui_file-name-
|
|
8
|
-
"file-option-name": "awsui_file-option-
|
|
9
|
-
"file-option-size": "awsui_file-option-
|
|
10
|
-
"file-option-last-modified": "awsui_file-option-last-
|
|
11
|
-
"file-option": "awsui_file-
|
|
12
|
-
"file-option-thumbnail": "awsui_file-option-
|
|
13
|
-
"file-option-thumbnail-image": "awsui_file-option-thumbnail-
|
|
14
|
-
"file-option-metadata": "awsui_file-option-
|
|
15
|
-
"with-image": "awsui_with-
|
|
16
|
-
"single-row-loading": "awsui_single-row-
|
|
17
|
-
"token": "
|
|
18
|
-
"token-grid": "awsui_token-
|
|
19
|
-
"token-contains-image": "awsui_token-contains-
|
|
20
|
-
"token-box": "awsui_token-
|
|
21
|
-
"horizontal": "
|
|
22
|
-
"error": "
|
|
23
|
-
"dismiss-button": "awsui_dismiss-
|
|
24
|
-
"warning": "
|
|
25
|
-
"read-only": "awsui_read-
|
|
26
|
-
"loading": "
|
|
4
|
+
"root": "awsui_root_39ths_gikhu_17",
|
|
5
|
+
"file-loading-overlay": "awsui_file-loading-overlay_39ths_gikhu_49",
|
|
6
|
+
"file-loading-overlay-single-row": "awsui_file-loading-overlay-single-row_39ths_gikhu_54",
|
|
7
|
+
"file-name-container": "awsui_file-name-container_39ths_gikhu_58",
|
|
8
|
+
"file-option-name": "awsui_file-option-name_39ths_gikhu_88",
|
|
9
|
+
"file-option-size": "awsui_file-option-size_39ths_gikhu_89",
|
|
10
|
+
"file-option-last-modified": "awsui_file-option-last-modified_39ths_gikhu_90",
|
|
11
|
+
"file-option": "awsui_file-option_39ths_gikhu_88",
|
|
12
|
+
"file-option-thumbnail": "awsui_file-option-thumbnail_39ths_gikhu_103",
|
|
13
|
+
"file-option-thumbnail-image": "awsui_file-option-thumbnail-image_39ths_gikhu_107",
|
|
14
|
+
"file-option-metadata": "awsui_file-option-metadata_39ths_gikhu_120",
|
|
15
|
+
"with-image": "awsui_with-image_39ths_gikhu_123",
|
|
16
|
+
"single-row-loading": "awsui_single-row-loading_39ths_gikhu_126",
|
|
17
|
+
"token": "awsui_token_39ths_gikhu_130",
|
|
18
|
+
"token-grid": "awsui_token-grid_39ths_gikhu_137",
|
|
19
|
+
"token-contains-image": "awsui_token-contains-image_39ths_gikhu_146",
|
|
20
|
+
"token-box": "awsui_token-box_39ths_gikhu_150",
|
|
21
|
+
"horizontal": "awsui_horizontal_39ths_gikhu_169",
|
|
22
|
+
"error": "awsui_error_39ths_gikhu_177",
|
|
23
|
+
"dismiss-button": "awsui_dismiss-button_39ths_gikhu_181",
|
|
24
|
+
"warning": "awsui_warning_39ths_gikhu_187",
|
|
25
|
+
"read-only": "awsui_read-only_39ths_gikhu_197",
|
|
26
|
+
"loading": "awsui_loading_39ths_gikhu_210"
|
|
27
27
|
};
|
|
28
28
|
|