@cloudscape-design/components-themeable 3.0.358 → 3.0.360
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/code-editor/ace-editor.scss +1 -1
- package/lib/internal/scss/code-editor/styles.scss +20 -9
- package/lib/internal/scss/flashbar/styles.scss +6 -2
- package/lib/internal/scss/status-indicator/styles.scss +1 -1
- package/lib/internal/template/alert/styles.css.js +19 -19
- package/lib/internal/template/alert/styles.scoped.css +64 -64
- package/lib/internal/template/alert/styles.selectors.js +19 -19
- package/lib/internal/template/annotation-context/annotation/styles.css.js +24 -24
- package/lib/internal/template/annotation-context/annotation/styles.scoped.css +46 -46
- package/lib/internal/template/annotation-context/annotation/styles.selectors.js +24 -24
- package/lib/internal/template/app-layout/content-wrapper/styles.css.js +3 -3
- package/lib/internal/template/app-layout/content-wrapper/styles.scoped.css +10 -10
- package/lib/internal/template/app-layout/content-wrapper/styles.selectors.js +3 -3
- package/lib/internal/template/app-layout/drawer/styles.css.js +10 -10
- package/lib/internal/template/app-layout/drawer/styles.scoped.css +28 -28
- package/lib/internal/template/app-layout/drawer/styles.selectors.js +10 -10
- package/lib/internal/template/app-layout/mobile-toolbar/styles.css.js +8 -8
- package/lib/internal/template/app-layout/mobile-toolbar/styles.scoped.css +18 -18
- package/lib/internal/template/app-layout/mobile-toolbar/styles.selectors.js +8 -8
- 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/styles.css.js +17 -17
- package/lib/internal/template/app-layout/styles.scoped.css +30 -30
- package/lib/internal/template/app-layout/styles.selectors.js +17 -17
- package/lib/internal/template/app-layout/toggles/styles.css.js +2 -2
- package/lib/internal/template/app-layout/toggles/styles.scoped.css +16 -16
- package/lib/internal/template/app-layout/toggles/styles.selectors.js +2 -2
- package/lib/internal/template/app-layout/visual-refresh/styles.css.js +69 -69
- package/lib/internal/template/app-layout/visual-refresh/styles.scoped.css +267 -267
- package/lib/internal/template/app-layout/visual-refresh/styles.selectors.js +69 -69
- package/lib/internal/template/area-chart/styles.css.js +6 -6
- package/lib/internal/template/area-chart/styles.scoped.css +16 -16
- package/lib/internal/template/area-chart/styles.selectors.js +6 -6
- package/lib/internal/template/attribute-editor/styles.css.js +14 -14
- package/lib/internal/template/attribute-editor/styles.scoped.css +48 -48
- package/lib/internal/template/attribute-editor/styles.selectors.js +14 -14
- package/lib/internal/template/badge/styles.css.js +5 -5
- package/lib/internal/template/badge/styles.scoped.css +20 -20
- package/lib/internal/template/badge/styles.selectors.js +5 -5
- package/lib/internal/template/box/styles.css.js +189 -189
- package/lib/internal/template/box/styles.scoped.css +418 -418
- package/lib/internal/template/box/styles.selectors.js +189 -189
- package/lib/internal/template/breadcrumb-group/item/styles.css.js +9 -9
- package/lib/internal/template/breadcrumb-group/item/styles.scoped.css +28 -28
- package/lib/internal/template/breadcrumb-group/item/styles.selectors.js +9 -9
- package/lib/internal/template/breadcrumb-group/styles.css.js +7 -7
- package/lib/internal/template/breadcrumb-group/styles.scoped.css +22 -22
- package/lib/internal/template/breadcrumb-group/styles.selectors.js +7 -7
- package/lib/internal/template/button/styles.css.js +20 -20
- package/lib/internal/template/button/styles.scoped.css +472 -472
- package/lib/internal/template/button/styles.selectors.js +20 -20
- package/lib/internal/template/button-dropdown/category-elements/styles.css.js +13 -13
- package/lib/internal/template/button-dropdown/category-elements/styles.scoped.css +50 -50
- package/lib/internal/template/button-dropdown/category-elements/styles.selectors.js +13 -13
- package/lib/internal/template/button-dropdown/interfaces.d.ts +2 -15
- package/lib/internal/template/button-dropdown/interfaces.d.ts.map +1 -1
- package/lib/internal/template/button-dropdown/interfaces.js.map +1 -1
- package/lib/internal/template/button-dropdown/item-element/styles.css.js +14 -14
- package/lib/internal/template/button-dropdown/item-element/styles.scoped.css +42 -42
- package/lib/internal/template/button-dropdown/item-element/styles.selectors.js +14 -14
- package/lib/internal/template/button-dropdown/mobile-expandable-group/styles.css.js +5 -5
- package/lib/internal/template/button-dropdown/mobile-expandable-group/styles.scoped.css +10 -10
- package/lib/internal/template/button-dropdown/mobile-expandable-group/styles.selectors.js +5 -5
- package/lib/internal/template/button-dropdown/styles.css.js +14 -14
- package/lib/internal/template/button-dropdown/styles.scoped.css +32 -32
- package/lib/internal/template/button-dropdown/styles.selectors.js +14 -14
- package/lib/internal/template/calendar/styles.css.js +18 -18
- package/lib/internal/template/calendar/styles.scoped.css +89 -89
- package/lib/internal/template/calendar/styles.selectors.js +18 -18
- package/lib/internal/template/cards/styles.css.js +38 -38
- package/lib/internal/template/cards/styles.scoped.css +99 -99
- package/lib/internal/template/cards/styles.selectors.js +38 -38
- package/lib/internal/template/checkbox/styles.css.js +3 -3
- package/lib/internal/template/checkbox/styles.scoped.css +16 -16
- package/lib/internal/template/checkbox/styles.selectors.js +3 -3
- package/lib/internal/template/code-editor/resizable-box/styles.css.js +3 -3
- package/lib/internal/template/code-editor/resizable-box/styles.scoped.css +11 -11
- package/lib/internal/template/code-editor/resizable-box/styles.selectors.js +3 -3
- package/lib/internal/template/code-editor/styles.css.js +32 -32
- package/lib/internal/template/code-editor/styles.scoped.css +278 -269
- package/lib/internal/template/code-editor/styles.selectors.js +32 -32
- package/lib/internal/template/collection-preferences/content-display/styles.css.js +11 -11
- package/lib/internal/template/collection-preferences/content-display/styles.scoped.css +42 -42
- package/lib/internal/template/collection-preferences/content-display/styles.selectors.js +11 -11
- package/lib/internal/template/collection-preferences/styles.css.js +37 -37
- package/lib/internal/template/collection-preferences/styles.scoped.css +81 -81
- package/lib/internal/template/collection-preferences/styles.selectors.js +37 -37
- package/lib/internal/template/column-layout/flexible-column-layout/styles.css.js +5 -5
- package/lib/internal/template/column-layout/flexible-column-layout/styles.scoped.css +8 -8
- package/lib/internal/template/column-layout/flexible-column-layout/styles.selectors.js +5 -5
- package/lib/internal/template/column-layout/styles.css.js +13 -13
- package/lib/internal/template/column-layout/styles.scoped.css +55 -55
- package/lib/internal/template/column-layout/styles.selectors.js +13 -13
- package/lib/internal/template/container/styles.css.js +28 -28
- package/lib/internal/template/container/styles.scoped.css +94 -94
- package/lib/internal/template/container/styles.selectors.js +28 -28
- package/lib/internal/template/content-layout/styles.css.js +7 -7
- package/lib/internal/template/content-layout/styles.scoped.css +17 -17
- package/lib/internal/template/content-layout/styles.selectors.js +7 -7
- package/lib/internal/template/date-picker/styles.css.js +7 -7
- package/lib/internal/template/date-picker/styles.scoped.css +16 -16
- package/lib/internal/template/date-picker/styles.selectors.js +7 -7
- package/lib/internal/template/date-range-picker/calendar/grids/styles.css.js +25 -25
- package/lib/internal/template/date-range-picker/calendar/grids/styles.scoped.css +95 -95
- package/lib/internal/template/date-range-picker/calendar/grids/styles.selectors.js +25 -25
- package/lib/internal/template/date-range-picker/relative-range/styles.css.js +9 -9
- package/lib/internal/template/date-range-picker/relative-range/styles.scoped.css +16 -16
- package/lib/internal/template/date-range-picker/relative-range/styles.selectors.js +9 -9
- package/lib/internal/template/date-range-picker/styles.css.js +38 -38
- package/lib/internal/template/date-range-picker/styles.scoped.css +76 -76
- package/lib/internal/template/date-range-picker/styles.selectors.js +38 -38
- package/lib/internal/template/expandable-section/styles.css.js +29 -29
- package/lib/internal/template/expandable-section/styles.scoped.css +106 -106
- package/lib/internal/template/expandable-section/styles.selectors.js +29 -29
- package/lib/internal/template/file-upload/dropzone/styles.css.js +2 -2
- package/lib/internal/template/file-upload/dropzone/styles.scoped.css +9 -9
- package/lib/internal/template/file-upload/dropzone/styles.selectors.js +2 -2
- package/lib/internal/template/file-upload/file-input/styles.css.js +4 -4
- package/lib/internal/template/file-upload/file-input/styles.scoped.css +14 -14
- package/lib/internal/template/file-upload/file-input/styles.selectors.js +4 -4
- package/lib/internal/template/file-upload/file-option/styles.css.js +7 -7
- package/lib/internal/template/file-upload/file-option/styles.scoped.css +10 -10
- package/lib/internal/template/file-upload/file-option/styles.selectors.js +7 -7
- package/lib/internal/template/file-upload/styles.css.js +2 -2
- package/lib/internal/template/file-upload/styles.scoped.css +4 -4
- package/lib/internal/template/file-upload/styles.selectors.js +2 -2
- package/lib/internal/template/flashbar/collapsible-flashbar.d.ts.map +1 -1
- package/lib/internal/template/flashbar/collapsible-flashbar.js +8 -5
- package/lib/internal/template/flashbar/collapsible-flashbar.js.map +1 -1
- package/lib/internal/template/flashbar/flash.d.ts.map +1 -1
- package/lib/internal/template/flashbar/flash.js +2 -1
- package/lib/internal/template/flashbar/flash.js.map +1 -1
- package/lib/internal/template/flashbar/non-collapsible-flashbar.d.ts.map +1 -1
- package/lib/internal/template/flashbar/non-collapsible-flashbar.js +1 -2
- package/lib/internal/template/flashbar/non-collapsible-flashbar.js.map +1 -1
- package/lib/internal/template/flashbar/styles.css.js +46 -46
- package/lib/internal/template/flashbar/styles.scoped.css +250 -246
- package/lib/internal/template/flashbar/styles.selectors.js +46 -46
- package/lib/internal/template/flashbar/utils.js +1 -1
- package/lib/internal/template/flashbar/utils.js.map +1 -1
- package/lib/internal/template/form/styles.css.js +9 -9
- package/lib/internal/template/form/styles.scoped.css +20 -20
- package/lib/internal/template/form/styles.selectors.js +9 -9
- package/lib/internal/template/form-field/styles.css.js +19 -19
- package/lib/internal/template/form-field/styles.scoped.css +52 -52
- package/lib/internal/template/form-field/styles.selectors.js +19 -19
- package/lib/internal/template/grid/styles.css.js +53 -53
- package/lib/internal/template/grid/styles.scoped.css +60 -60
- package/lib/internal/template/grid/styles.selectors.js +53 -53
- package/lib/internal/template/header/styles.css.js +33 -33
- package/lib/internal/template/header/styles.scoped.css +114 -114
- package/lib/internal/template/header/styles.selectors.js +33 -33
- package/lib/internal/template/help-panel/styles.css.js +4 -4
- package/lib/internal/template/help-panel/styles.scoped.css +172 -172
- package/lib/internal/template/help-panel/styles.selectors.js +4 -4
- package/lib/internal/template/hotspot/styles.css.js +7 -7
- package/lib/internal/template/hotspot/styles.scoped.css +10 -10
- package/lib/internal/template/hotspot/styles.selectors.js +7 -7
- package/lib/internal/template/i18n/index.d.ts +1 -1
- package/lib/internal/template/i18n/index.d.ts.map +1 -1
- package/lib/internal/template/i18n/index.js +1 -1
- package/lib/internal/template/i18n/index.js.map +1 -1
- package/lib/internal/template/i18n/provider.d.ts.map +1 -1
- package/lib/internal/template/i18n/provider.js +4 -2
- package/lib/internal/template/i18n/provider.js.map +1 -1
- package/lib/internal/template/i18n/testing.d.ts.map +1 -1
- package/lib/internal/template/i18n/testing.js +2 -0
- package/lib/internal/template/i18n/testing.js.map +1 -1
- package/lib/internal/template/icon/styles.css.js +21 -21
- package/lib/internal/template/icon/styles.scoped.css +81 -81
- package/lib/internal/template/icon/styles.selectors.js +21 -21
- package/lib/internal/template/input/styles.css.js +12 -12
- package/lib/internal/template/input/styles.scoped.css +73 -73
- package/lib/internal/template/input/styles.selectors.js +12 -12
- package/lib/internal/template/internal/analytics/components/analytics-funnel.d.ts.map +1 -1
- package/lib/internal/template/internal/analytics/components/analytics-funnel.js +50 -1
- package/lib/internal/template/internal/analytics/components/analytics-funnel.js.map +1 -1
- package/lib/internal/template/internal/analytics/context/analytics-context.d.ts +13 -0
- package/lib/internal/template/internal/analytics/context/analytics-context.d.ts.map +1 -1
- package/lib/internal/template/internal/analytics/context/analytics-context.js +4 -0
- package/lib/internal/template/internal/analytics/context/analytics-context.js.map +1 -1
- package/lib/internal/template/internal/analytics/hooks/use-funnel.d.ts +4 -0
- package/lib/internal/template/internal/analytics/hooks/use-funnel.d.ts.map +1 -1
- package/lib/internal/template/internal/analytics/hooks/use-funnel.js +73 -20
- package/lib/internal/template/internal/analytics/hooks/use-funnel.js.map +1 -1
- package/lib/internal/template/internal/base-component/styles.scoped.css +3153 -3005
- package/lib/internal/template/internal/components/abstract-switch/styles.css.js +13 -13
- package/lib/internal/template/internal/components/abstract-switch/styles.scoped.css +26 -26
- package/lib/internal/template/internal/components/abstract-switch/styles.selectors.js +13 -13
- package/lib/internal/template/internal/components/button-trigger/styles.css.js +9 -9
- package/lib/internal/template/internal/components/button-trigger/styles.scoped.css +63 -63
- package/lib/internal/template/internal/components/button-trigger/styles.selectors.js +9 -9
- package/lib/internal/template/internal/components/cartesian-chart/styles.css.js +27 -27
- package/lib/internal/template/internal/components/cartesian-chart/styles.scoped.css +41 -41
- package/lib/internal/template/internal/components/cartesian-chart/styles.selectors.js +27 -27
- package/lib/internal/template/internal/components/chart-filter/styles.css.js +3 -3
- package/lib/internal/template/internal/components/chart-filter/styles.scoped.css +7 -7
- package/lib/internal/template/internal/components/chart-filter/styles.selectors.js +3 -3
- package/lib/internal/template/internal/components/chart-legend/styles.css.js +6 -6
- package/lib/internal/template/internal/components/chart-legend/styles.scoped.css +23 -23
- package/lib/internal/template/internal/components/chart-legend/styles.selectors.js +6 -6
- package/lib/internal/template/internal/components/chart-plot/styles.css.js +5 -5
- package/lib/internal/template/internal/components/chart-plot/styles.scoped.css +6 -6
- package/lib/internal/template/internal/components/chart-plot/styles.selectors.js +5 -5
- package/lib/internal/template/internal/components/chart-popover/index.js +1 -1
- package/lib/internal/template/internal/components/chart-popover/index.js.map +1 -1
- package/lib/internal/template/internal/components/chart-popover/styles.css.js +3 -3
- package/lib/internal/template/internal/components/chart-popover/styles.scoped.css +9 -9
- package/lib/internal/template/internal/components/chart-popover/styles.selectors.js +3 -3
- package/lib/internal/template/internal/components/chart-series-details/styles.css.js +5 -5
- package/lib/internal/template/internal/components/chart-series-details/styles.scoped.css +20 -20
- package/lib/internal/template/internal/components/chart-series-details/styles.selectors.js +5 -5
- package/lib/internal/template/internal/components/chart-series-marker/styles.css.js +5 -5
- package/lib/internal/template/internal/components/chart-series-marker/styles.scoped.css +14 -14
- package/lib/internal/template/internal/components/chart-series-marker/styles.selectors.js +5 -5
- package/lib/internal/template/internal/components/chart-status-container/styles.css.js +2 -2
- package/lib/internal/template/internal/components/chart-status-container/styles.scoped.css +3 -3
- package/lib/internal/template/internal/components/chart-status-container/styles.selectors.js +2 -2
- package/lib/internal/template/internal/components/chart-wrapper/styles.css.js +9 -9
- package/lib/internal/template/internal/components/chart-wrapper/styles.scoped.css +15 -15
- package/lib/internal/template/internal/components/chart-wrapper/styles.selectors.js +9 -9
- package/lib/internal/template/internal/components/checkbox-icon/styles.css.js +7 -7
- package/lib/internal/template/internal/components/checkbox-icon/styles.scoped.css +18 -18
- package/lib/internal/template/internal/components/checkbox-icon/styles.selectors.js +7 -7
- package/lib/internal/template/internal/components/dark-ribbon/styles.css.js +2 -2
- package/lib/internal/template/internal/components/dark-ribbon/styles.scoped.css +4 -4
- package/lib/internal/template/internal/components/dark-ribbon/styles.selectors.js +2 -2
- package/lib/internal/template/internal/components/dropdown/interfaces.d.ts +8 -5
- 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.css.js +20 -20
- package/lib/internal/template/internal/components/dropdown/styles.scoped.css +51 -51
- package/lib/internal/template/internal/components/dropdown/styles.selectors.js +20 -20
- package/lib/internal/template/internal/components/dropdown-footer/styles.css.js +3 -3
- package/lib/internal/template/internal/components/dropdown-footer/styles.scoped.css +9 -9
- package/lib/internal/template/internal/components/dropdown-footer/styles.selectors.js +3 -3
- package/lib/internal/template/internal/components/dropdown-status/styles.css.js +2 -2
- package/lib/internal/template/internal/components/dropdown-status/styles.scoped.css +8 -8
- package/lib/internal/template/internal/components/dropdown-status/styles.selectors.js +2 -2
- package/lib/internal/template/internal/components/filtering-token/styles.css.js +7 -7
- package/lib/internal/template/internal/components/filtering-token/styles.scoped.css +34 -34
- package/lib/internal/template/internal/components/filtering-token/styles.selectors.js +7 -7
- package/lib/internal/template/internal/components/handle/styles.css.js +2 -2
- package/lib/internal/template/internal/components/handle/styles.scoped.css +12 -12
- package/lib/internal/template/internal/components/handle/styles.selectors.js +2 -2
- package/lib/internal/template/internal/components/menu-dropdown/styles.css.js +7 -7
- package/lib/internal/template/internal/components/menu-dropdown/styles.scoped.css +32 -32
- package/lib/internal/template/internal/components/menu-dropdown/styles.selectors.js +7 -7
- package/lib/internal/template/internal/components/option/styles.css.js +17 -17
- package/lib/internal/template/internal/components/option/styles.scoped.css +47 -47
- package/lib/internal/template/internal/components/option/styles.selectors.js +17 -17
- package/lib/internal/template/internal/components/options-list/styles.css.js +2 -2
- package/lib/internal/template/internal/components/options-list/styles.scoped.css +7 -7
- package/lib/internal/template/internal/components/options-list/styles.selectors.js +2 -2
- package/lib/internal/template/internal/components/selectable-item/styles.css.js +16 -16
- package/lib/internal/template/internal/components/selectable-item/styles.scoped.css +70 -70
- package/lib/internal/template/internal/components/selectable-item/styles.selectors.js +16 -16
- package/lib/internal/template/internal/components/token-list/styles.css.js +9 -9
- package/lib/internal/template/internal/components/token-list/styles.scoped.css +40 -40
- package/lib/internal/template/internal/components/token-list/styles.selectors.js +9 -9
- package/lib/internal/template/internal/environment.js +1 -1
- package/lib/internal/template/internal/environment.json +1 -1
- package/lib/internal/template/internal/generated/styles/tokens.d.ts +1 -0
- package/lib/internal/template/internal/generated/styles/tokens.js +306 -305
- package/lib/internal/template/internal/generated/theming/index.cjs +1830 -821
- package/lib/internal/template/internal/generated/theming/index.cjs.d.ts +192 -0
- package/lib/internal/template/internal/generated/theming/index.d.ts +192 -0
- package/lib/internal/template/internal/generated/theming/index.js +1830 -821
- package/lib/internal/template/internal/utils/dom.d.ts +1 -1
- package/lib/internal/template/internal/utils/dom.d.ts.map +1 -1
- package/lib/internal/template/internal/utils/dom.js +1 -1
- package/lib/internal/template/internal/utils/dom.js.map +1 -1
- package/lib/internal/template/link/styles.css.js +20 -20
- package/lib/internal/template/link/styles.scoped.css +163 -163
- package/lib/internal/template/link/styles.selectors.js +20 -20
- package/lib/internal/template/mixed-line-bar-chart/styles.css.js +11 -11
- package/lib/internal/template/mixed-line-bar-chart/styles.scoped.css +24 -24
- package/lib/internal/template/mixed-line-bar-chart/styles.selectors.js +11 -11
- package/lib/internal/template/modal/styles.css.js +23 -23
- package/lib/internal/template/modal/styles.scoped.css +67 -67
- package/lib/internal/template/modal/styles.selectors.js +23 -23
- package/lib/internal/template/multiselect/styles.css.js +1 -1
- package/lib/internal/template/multiselect/styles.scoped.css +5 -5
- package/lib/internal/template/multiselect/styles.selectors.js +1 -1
- package/lib/internal/template/pagination/styles.css.js +9 -9
- package/lib/internal/template/pagination/styles.scoped.css +47 -47
- package/lib/internal/template/pagination/styles.selectors.js +9 -9
- package/lib/internal/template/pie-chart/index.d.ts.map +1 -1
- package/lib/internal/template/pie-chart/index.js +1 -2
- package/lib/internal/template/pie-chart/index.js.map +1 -1
- package/lib/internal/template/pie-chart/pie-chart.d.ts +1 -3
- package/lib/internal/template/pie-chart/pie-chart.d.ts.map +1 -1
- package/lib/internal/template/pie-chart/pie-chart.js +16 -17
- package/lib/internal/template/pie-chart/pie-chart.js.map +1 -1
- package/lib/internal/template/pie-chart/segments.d.ts +1 -2
- package/lib/internal/template/pie-chart/segments.d.ts.map +1 -1
- package/lib/internal/template/pie-chart/segments.js +2 -2
- package/lib/internal/template/pie-chart/segments.js.map +1 -1
- package/lib/internal/template/pie-chart/styles.css.js +27 -27
- package/lib/internal/template/pie-chart/styles.scoped.css +63 -63
- package/lib/internal/template/pie-chart/styles.selectors.js +27 -27
- package/lib/internal/template/popover/styles.css.js +50 -50
- package/lib/internal/template/popover/styles.scoped.css +104 -104
- package/lib/internal/template/popover/styles.selectors.js +50 -50
- package/lib/internal/template/progress-bar/styles.css.js +18 -18
- package/lib/internal/template/progress-bar/styles.scoped.css +58 -58
- package/lib/internal/template/progress-bar/styles.selectors.js +18 -18
- package/lib/internal/template/property-filter/styles.css.js +29 -29
- package/lib/internal/template/property-filter/styles.scoped.css +52 -52
- package/lib/internal/template/property-filter/styles.selectors.js +29 -29
- package/lib/internal/template/radio-group/styles.css.js +9 -9
- package/lib/internal/template/radio-group/styles.scoped.css +37 -37
- package/lib/internal/template/radio-group/styles.selectors.js +9 -9
- package/lib/internal/template/s3-resource-selector/s3-in-context/styles.css.js +7 -7
- package/lib/internal/template/s3-resource-selector/s3-in-context/styles.scoped.css +12 -12
- package/lib/internal/template/s3-resource-selector/s3-in-context/styles.selectors.js +7 -7
- package/lib/internal/template/segmented-control/styles.css.js +14 -14
- package/lib/internal/template/segmented-control/styles.scoped.css +78 -78
- package/lib/internal/template/segmented-control/styles.selectors.js +14 -14
- package/lib/internal/template/select/parts/styles.css.js +9 -9
- package/lib/internal/template/select/parts/styles.scoped.css +17 -17
- package/lib/internal/template/select/parts/styles.selectors.js +9 -9
- package/lib/internal/template/select/styles.css.js +1 -1
- package/lib/internal/template/select/styles.scoped.css +5 -5
- package/lib/internal/template/select/styles.selectors.js +1 -1
- package/lib/internal/template/side-navigation/styles.css.js +28 -28
- package/lib/internal/template/side-navigation/styles.scoped.css +92 -92
- package/lib/internal/template/side-navigation/styles.selectors.js +28 -28
- package/lib/internal/template/space-between/styles.css.js +23 -23
- package/lib/internal/template/space-between/styles.scoped.css +40 -40
- package/lib/internal/template/space-between/styles.selectors.js +23 -23
- package/lib/internal/template/spinner/styles.css.js +13 -13
- package/lib/internal/template/spinner/styles.scoped.css +35 -35
- package/lib/internal/template/spinner/styles.selectors.js +13 -13
- package/lib/internal/template/split-panel/styles.css.js +56 -56
- package/lib/internal/template/split-panel/styles.scoped.css +146 -146
- package/lib/internal/template/split-panel/styles.selectors.js +56 -56
- package/lib/internal/template/status-indicator/styles.css.js +22 -22
- package/lib/internal/template/status-indicator/styles.scoped.css +46 -46
- package/lib/internal/template/status-indicator/styles.selectors.js +22 -22
- package/lib/internal/template/table/body-cell/styles.css.js +28 -28
- package/lib/internal/template/table/body-cell/styles.scoped.css +155 -155
- package/lib/internal/template/table/body-cell/styles.selectors.js +28 -28
- package/lib/internal/template/table/body-cell/td-element.d.ts +3 -1
- package/lib/internal/template/table/body-cell/td-element.d.ts.map +1 -1
- package/lib/internal/template/table/body-cell/td-element.js +5 -7
- package/lib/internal/template/table/body-cell/td-element.js.map +1 -1
- package/lib/internal/template/table/header-cell/index.d.ts +2 -0
- package/lib/internal/template/table/header-cell/index.d.ts.map +1 -1
- package/lib/internal/template/table/header-cell/index.js +4 -3
- package/lib/internal/template/table/header-cell/index.js.map +1 -1
- package/lib/internal/template/table/header-cell/styles.css.js +24 -24
- package/lib/internal/template/table/header-cell/styles.scoped.css +93 -93
- package/lib/internal/template/table/header-cell/styles.selectors.js +24 -24
- package/lib/internal/template/table/header-cell/utils.d.ts +0 -1
- package/lib/internal/template/table/header-cell/utils.d.ts.map +1 -1
- package/lib/internal/template/table/header-cell/utils.js +0 -6
- package/lib/internal/template/table/header-cell/utils.js.map +1 -1
- package/lib/internal/template/table/internal.d.ts.map +1 -1
- package/lib/internal/template/table/internal.js +9 -8
- package/lib/internal/template/table/internal.js.map +1 -1
- package/lib/internal/template/table/resizer/styles.css.js +6 -6
- package/lib/internal/template/table/resizer/styles.scoped.css +27 -27
- package/lib/internal/template/table/resizer/styles.selectors.js +6 -6
- package/lib/internal/template/table/selection-control/styles.css.js +3 -3
- package/lib/internal/template/table/selection-control/styles.scoped.css +4 -4
- package/lib/internal/template/table/selection-control/styles.selectors.js +3 -3
- package/lib/internal/template/table/sticky-header.d.ts +2 -0
- package/lib/internal/template/table/sticky-header.d.ts.map +1 -1
- package/lib/internal/template/table/sticky-header.js +3 -2
- package/lib/internal/template/table/sticky-header.js.map +1 -1
- package/lib/internal/template/table/styles.css.js +34 -34
- package/lib/internal/template/table/styles.scoped.css +84 -84
- package/lib/internal/template/table/styles.selectors.js +34 -34
- package/lib/internal/template/table/table-role/index.d.ts +2 -0
- package/lib/internal/template/table/table-role/index.d.ts.map +1 -0
- package/lib/internal/template/table/table-role/index.js +4 -0
- package/lib/internal/template/table/table-role/index.js.map +1 -0
- package/lib/internal/template/table/table-role/table-role-helper.d.ts +22 -0
- package/lib/internal/template/table/table-role/table-role-helper.d.ts.map +1 -0
- package/lib/internal/template/table/table-role/table-role-helper.js +47 -0
- package/lib/internal/template/table/table-role/table-role-helper.js.map +1 -0
- package/lib/internal/template/table/thead.d.ts +2 -0
- package/lib/internal/template/table/thead.d.ts.map +1 -1
- package/lib/internal/template/table/thead.js +4 -3
- package/lib/internal/template/table/thead.js.map +1 -1
- package/lib/internal/template/tabs/styles.css.js +21 -21
- package/lib/internal/template/tabs/styles.scoped.css +86 -86
- package/lib/internal/template/tabs/styles.selectors.js +21 -21
- package/lib/internal/template/tag-editor/styles.css.js +3 -3
- package/lib/internal/template/tag-editor/styles.scoped.css +24 -24
- package/lib/internal/template/tag-editor/styles.selectors.js +3 -3
- package/lib/internal/template/text-content/styles.css.js +1 -1
- package/lib/internal/template/text-content/styles.scoped.css +130 -130
- package/lib/internal/template/text-content/styles.selectors.js +1 -1
- package/lib/internal/template/text-filter/styles.css.js +3 -3
- package/lib/internal/template/text-filter/styles.scoped.css +10 -10
- package/lib/internal/template/text-filter/styles.selectors.js +3 -3
- package/lib/internal/template/textarea/styles.css.js +4 -4
- package/lib/internal/template/textarea/styles.scoped.css +40 -40
- package/lib/internal/template/textarea/styles.selectors.js +4 -4
- package/lib/internal/template/tiles/styles.css.js +29 -29
- package/lib/internal/template/tiles/styles.scoped.css +128 -128
- package/lib/internal/template/tiles/styles.selectors.js +29 -29
- package/lib/internal/template/toggle/styles.css.js +8 -8
- package/lib/internal/template/toggle/styles.scoped.css +27 -27
- package/lib/internal/template/toggle/styles.selectors.js +8 -8
- package/lib/internal/template/token-group/styles.css.js +7 -7
- package/lib/internal/template/token-group/styles.scoped.css +42 -42
- package/lib/internal/template/token-group/styles.selectors.js +7 -7
- package/lib/internal/template/top-navigation/1.0-beta/styles.css.js +25 -25
- package/lib/internal/template/top-navigation/1.0-beta/styles.scoped.css +84 -84
- package/lib/internal/template/top-navigation/1.0-beta/styles.selectors.js +25 -25
- package/lib/internal/template/top-navigation/styles.css.js +47 -47
- package/lib/internal/template/top-navigation/styles.scoped.css +148 -148
- package/lib/internal/template/top-navigation/styles.selectors.js +47 -47
- package/lib/internal/template/tutorial-panel/components/tutorial-detail-view/styles.css.js +20 -20
- package/lib/internal/template/tutorial-panel/components/tutorial-detail-view/styles.scoped.css +43 -43
- package/lib/internal/template/tutorial-panel/components/tutorial-detail-view/styles.selectors.js +20 -20
- package/lib/internal/template/tutorial-panel/components/tutorial-list/styles.css.js +18 -18
- package/lib/internal/template/tutorial-panel/components/tutorial-list/styles.scoped.css +50 -50
- package/lib/internal/template/tutorial-panel/components/tutorial-list/styles.selectors.js +18 -18
- package/lib/internal/template/tutorial-panel/styles.css.js +1 -1
- package/lib/internal/template/tutorial-panel/styles.scoped.css +6 -6
- package/lib/internal/template/tutorial-panel/styles.selectors.js +1 -1
- package/lib/internal/template/wizard/styles.css.js +31 -31
- package/lib/internal/template/wizard/styles.scoped.css +124 -124
- package/lib/internal/template/wizard/styles.selectors.js +31 -31
- package/package.json +1 -1
|
@@ -90,11 +90,11 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
90
90
|
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
91
91
|
SPDX-License-Identifier: Apache-2.0
|
|
92
92
|
*/
|
|
93
|
-
.
|
|
93
|
+
.awsui_root_2rhyz_lcj6n_93:not(#\9) {
|
|
94
94
|
/* used in test-utils for component to distinguish input from other input-like components, for example autosuggest */
|
|
95
95
|
}
|
|
96
96
|
|
|
97
|
-
.
|
|
97
|
+
.awsui_input_2rhyz_lcj6n_97:not(#\9) {
|
|
98
98
|
/* stylelint-disable-next-line plugin/no-unsupported-browser-features */
|
|
99
99
|
border-collapse: separate;
|
|
100
100
|
border-spacing: 0;
|
|
@@ -124,145 +124,145 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
124
124
|
widows: 2;
|
|
125
125
|
word-spacing: normal;
|
|
126
126
|
box-sizing: border-box;
|
|
127
|
-
font-size: var(--font-body-m-size-
|
|
128
|
-
line-height: var(--font-body-m-line-height-
|
|
129
|
-
color: var(--color-text-body-default-
|
|
127
|
+
font-size: var(--font-body-m-size-q2y4dq, 14px);
|
|
128
|
+
line-height: var(--font-body-m-line-height-7pedlt, 22px);
|
|
129
|
+
color: var(--color-text-body-default-rcjsde, #16191f);
|
|
130
130
|
font-weight: 400;
|
|
131
|
-
font-family: var(--font-family-base-
|
|
131
|
+
font-family: var(--font-family-base-8fp8i6, "Noto Sans", "Helvetica Neue", Roboto, Arial, sans-serif);
|
|
132
132
|
-webkit-font-smoothing: auto;
|
|
133
133
|
-moz-osx-font-smoothing: auto;
|
|
134
|
-
padding: var(--space-scaled-xxs-
|
|
135
|
-
color: var(--color-text-body-default-
|
|
134
|
+
padding: var(--space-scaled-xxs-sh0ehj, 4px) var(--space-field-horizontal-784ol6, 8px);
|
|
135
|
+
color: var(--color-text-body-default-rcjsde, #16191f);
|
|
136
136
|
width: 100%;
|
|
137
137
|
cursor: text;
|
|
138
138
|
box-sizing: border-box;
|
|
139
|
-
background-color: var(--color-background-input-default-
|
|
140
|
-
border-radius: var(--border-radius-input-
|
|
141
|
-
border: var(--border-field-width-
|
|
142
|
-
font-size: var(--font-body-m-size-
|
|
143
|
-
line-height: var(--font-body-m-line-height-
|
|
144
|
-
height: var(--size-vertical-input-
|
|
139
|
+
background-color: var(--color-background-input-default-6oas68, #ffffff);
|
|
140
|
+
border-radius: var(--border-radius-input-g5g6vk, 2px);
|
|
141
|
+
border: var(--border-field-width-diib1p, 1px) solid var(--color-border-input-default-hny1ki, #687078);
|
|
142
|
+
font-size: var(--font-body-m-size-q2y4dq, 14px);
|
|
143
|
+
line-height: var(--font-body-m-line-height-7pedlt, 22px);
|
|
144
|
+
height: var(--size-vertical-input-55y18r, 32px);
|
|
145
145
|
}
|
|
146
|
-
.
|
|
147
|
-
background-color: var(--color-background-input-default-
|
|
148
|
-
border: var(--border-field-width-
|
|
146
|
+
.awsui_input_2rhyz_lcj6n_97.awsui_input-readonly_2rhyz_lcj6n_120:not(#\9) {
|
|
147
|
+
background-color: var(--color-background-input-default-6oas68, #ffffff);
|
|
148
|
+
border: var(--border-field-width-diib1p, 1px) solid var(--color-border-input-disabled-thglff, #eaeded);
|
|
149
149
|
}
|
|
150
|
-
.
|
|
151
|
-
color: var(--color-text-input-placeholder-
|
|
150
|
+
.awsui_input_2rhyz_lcj6n_97:not(#\9)::-webkit-input-placeholder {
|
|
151
|
+
color: var(--color-text-input-placeholder-4okh8i, #687078);
|
|
152
152
|
font-style: italic;
|
|
153
153
|
-webkit-user-select: none;
|
|
154
154
|
user-select: none;
|
|
155
155
|
}
|
|
156
|
-
.
|
|
157
|
-
color: var(--color-text-input-placeholder-
|
|
156
|
+
.awsui_input_2rhyz_lcj6n_97:not(#\9)::-ms-input-placeholder {
|
|
157
|
+
color: var(--color-text-input-placeholder-4okh8i, #687078);
|
|
158
158
|
font-style: italic;
|
|
159
159
|
}
|
|
160
|
-
.
|
|
161
|
-
color: var(--color-text-input-placeholder-
|
|
160
|
+
.awsui_input_2rhyz_lcj6n_97:not(#\9)::-moz-placeholder {
|
|
161
|
+
color: var(--color-text-input-placeholder-4okh8i, #687078);
|
|
162
162
|
font-style: italic;
|
|
163
163
|
opacity: 1;
|
|
164
164
|
}
|
|
165
|
-
.
|
|
166
|
-
color: var(--color-text-input-placeholder-
|
|
165
|
+
.awsui_input_2rhyz_lcj6n_97:not(#\9):-ms-input-placeholder {
|
|
166
|
+
color: var(--color-text-input-placeholder-4okh8i, #687078);
|
|
167
167
|
font-style: italic;
|
|
168
168
|
}
|
|
169
|
-
.
|
|
170
|
-
color: var(--color-text-input-placeholder-
|
|
169
|
+
.awsui_input_2rhyz_lcj6n_97:not(#\9):-moz-placeholder {
|
|
170
|
+
color: var(--color-text-input-placeholder-4okh8i, #687078);
|
|
171
171
|
font-style: italic;
|
|
172
172
|
opacity: 1;
|
|
173
173
|
}
|
|
174
|
-
.
|
|
174
|
+
.awsui_input_2rhyz_lcj6n_97:not(#\9):focus {
|
|
175
175
|
outline: 2px dotted transparent;
|
|
176
|
-
border: var(--border-field-width-
|
|
177
|
-
border-radius: var(--border-radius-input-
|
|
178
|
-
box-shadow: 0 0 0 var(--border-control-focus-ring-shadow-spread-
|
|
176
|
+
border: var(--border-field-width-diib1p, 1px) solid var(--color-border-item-focused-gjqsnp, #0073bb);
|
|
177
|
+
border-radius: var(--border-radius-input-g5g6vk, 2px);
|
|
178
|
+
box-shadow: 0 0 0 var(--border-control-focus-ring-shadow-spread-tkpu58, 1px) var(--color-border-item-focused-gjqsnp, #0073bb);
|
|
179
179
|
}
|
|
180
|
-
.
|
|
181
|
-
background-color: var(--color-background-input-disabled-
|
|
182
|
-
border: var(--border-field-width-
|
|
183
|
-
color: var(--color-text-input-disabled-
|
|
180
|
+
.awsui_input_2rhyz_lcj6n_97:not(#\9):disabled {
|
|
181
|
+
background-color: var(--color-background-input-disabled-nj3xj9, #eaeded);
|
|
182
|
+
border: var(--border-field-width-diib1p, 1px) solid var(--color-border-input-disabled-thglff, #eaeded);
|
|
183
|
+
color: var(--color-text-input-disabled-kickvc, #879596);
|
|
184
184
|
cursor: auto;
|
|
185
185
|
cursor: default;
|
|
186
186
|
}
|
|
187
|
-
.
|
|
188
|
-
color: var(--color-text-input-placeholder-disabled-
|
|
187
|
+
.awsui_input_2rhyz_lcj6n_97:not(#\9):disabled::-webkit-input-placeholder {
|
|
188
|
+
color: var(--color-text-input-placeholder-disabled-hwgumg, #687078);
|
|
189
189
|
-webkit-user-select: none;
|
|
190
190
|
user-select: none;
|
|
191
191
|
}
|
|
192
|
-
.
|
|
193
|
-
color: var(--color-text-input-placeholder-disabled-
|
|
192
|
+
.awsui_input_2rhyz_lcj6n_97:not(#\9):disabled::-ms-input-placeholder {
|
|
193
|
+
color: var(--color-text-input-placeholder-disabled-hwgumg, #687078);
|
|
194
194
|
}
|
|
195
|
-
.
|
|
196
|
-
color: var(--color-text-input-placeholder-disabled-
|
|
195
|
+
.awsui_input_2rhyz_lcj6n_97:not(#\9):disabled::-moz-placeholder {
|
|
196
|
+
color: var(--color-text-input-placeholder-disabled-hwgumg, #687078);
|
|
197
197
|
opacity: 1;
|
|
198
198
|
}
|
|
199
|
-
.
|
|
200
|
-
color: var(--color-text-input-placeholder-disabled-
|
|
199
|
+
.awsui_input_2rhyz_lcj6n_97:not(#\9):disabled:-ms-input-placeholder {
|
|
200
|
+
color: var(--color-text-input-placeholder-disabled-hwgumg, #687078);
|
|
201
201
|
}
|
|
202
|
-
.
|
|
203
|
-
color: var(--color-text-input-placeholder-disabled-
|
|
202
|
+
.awsui_input_2rhyz_lcj6n_97:not(#\9):disabled:-moz-placeholder {
|
|
203
|
+
color: var(--color-text-input-placeholder-disabled-hwgumg, #687078);
|
|
204
204
|
opacity: 1;
|
|
205
205
|
}
|
|
206
|
-
.
|
|
206
|
+
.awsui_input_2rhyz_lcj6n_97:not(#\9):invalid {
|
|
207
207
|
box-shadow: none;
|
|
208
208
|
}
|
|
209
|
-
.
|
|
210
|
-
color: var(--color-text-status-error-
|
|
211
|
-
border-color: var(--color-text-status-error-
|
|
209
|
+
.awsui_input_2rhyz_lcj6n_97.awsui_input-invalid_2rhyz_lcj6n_181:not(#\9) {
|
|
210
|
+
color: var(--color-text-status-error-6k1sfe, #d13212);
|
|
211
|
+
border-color: var(--color-text-status-error-6k1sfe, #d13212);
|
|
212
212
|
padding-left: calc(
|
|
213
|
-
var(--space-field-horizontal-
|
|
213
|
+
var(--space-field-horizontal-784ol6, 8px) - (var(--border-invalid-width-rcv6mg, 4px) - var(--border-field-width-diib1p, 1px))
|
|
214
214
|
);
|
|
215
|
-
border-left-width: var(--border-invalid-width-
|
|
215
|
+
border-left-width: var(--border-invalid-width-rcv6mg, 4px);
|
|
216
216
|
}
|
|
217
|
-
.
|
|
218
|
-
box-shadow: 0 0 0 var(--border-control-invalid-focus-ring-shadow-spread-
|
|
217
|
+
.awsui_input_2rhyz_lcj6n_97.awsui_input-invalid_2rhyz_lcj6n_181:not(#\9):focus {
|
|
218
|
+
box-shadow: 0 0 0 var(--border-control-invalid-focus-ring-shadow-spread-eg6q8k, 1px) var(--color-border-item-focused-gjqsnp, #0073bb);
|
|
219
219
|
}
|
|
220
|
-
.
|
|
220
|
+
.awsui_input_2rhyz_lcj6n_97.awsui_input-invalid_2rhyz_lcj6n_181.awsui_input-has-icon-left_2rhyz_lcj6n_192:not(#\9) {
|
|
221
221
|
padding-left: calc(
|
|
222
|
-
var(--space-field-icon-offset-
|
|
222
|
+
var(--space-field-icon-offset-wtnkbx, 32px) - (var(--border-invalid-width-rcv6mg, 4px) - var(--border-field-width-diib1p, 1px))
|
|
223
223
|
);
|
|
224
224
|
}
|
|
225
|
-
.
|
|
225
|
+
.awsui_input_2rhyz_lcj6n_97.awsui_input-type-search_2rhyz_lcj6n_197:not(#\9) {
|
|
226
226
|
box-sizing: border-box;
|
|
227
227
|
-webkit-appearance: none; /* stylelint-disable-line plugin/no-unsupported-browser-features */
|
|
228
228
|
}
|
|
229
|
-
.
|
|
229
|
+
.awsui_input_2rhyz_lcj6n_97.awsui_input-type-search_2rhyz_lcj6n_197:not(#\9)::-ms-clear {
|
|
230
230
|
display: none;
|
|
231
231
|
}
|
|
232
|
-
.
|
|
232
|
+
.awsui_input_2rhyz_lcj6n_97.awsui_input-type-search_2rhyz_lcj6n_197:not(#\9)::-webkit-search-decoration {
|
|
233
233
|
-webkit-appearance: none; /* stylelint-disable-line plugin/no-unsupported-browser-features */
|
|
234
234
|
}
|
|
235
|
-
.
|
|
235
|
+
.awsui_input_2rhyz_lcj6n_97.awsui_input-type-search_2rhyz_lcj6n_197:not(#\9)::-webkit-search-cancel-button {
|
|
236
236
|
display: none;
|
|
237
237
|
}
|
|
238
|
-
.
|
|
239
|
-
padding-left: var(--space-field-icon-offset-
|
|
238
|
+
.awsui_input_2rhyz_lcj6n_97.awsui_input-has-icon-left_2rhyz_lcj6n_192:not(#\9) {
|
|
239
|
+
padding-left: var(--space-field-icon-offset-wtnkbx, 32px);
|
|
240
240
|
}
|
|
241
|
-
.
|
|
242
|
-
padding-right: var(--space-field-icon-offset-
|
|
241
|
+
.awsui_input_2rhyz_lcj6n_97.awsui_input-has-icon-right_2rhyz_lcj6n_213:not(#\9) {
|
|
242
|
+
padding-right: var(--space-field-icon-offset-wtnkbx, 32px);
|
|
243
243
|
}
|
|
244
|
-
.
|
|
245
|
-
border-radius: var(--border-radius-dropdown-
|
|
244
|
+
.awsui_input_2rhyz_lcj6n_97.awsui_input-has-no-border-radius_2rhyz_lcj6n_216:not(#\9) {
|
|
245
|
+
border-radius: var(--border-radius-dropdown-u5jq1e, 0px);
|
|
246
246
|
}
|
|
247
247
|
|
|
248
|
-
.awsui_input-
|
|
248
|
+
.awsui_input-container_2rhyz_lcj6n_220:not(#\9) {
|
|
249
249
|
display: flex;
|
|
250
250
|
position: relative;
|
|
251
251
|
}
|
|
252
252
|
|
|
253
|
-
.awsui_input-icon-
|
|
253
|
+
.awsui_input-icon-left_2rhyz_lcj6n_225:not(#\9) {
|
|
254
254
|
position: absolute;
|
|
255
255
|
pointer-events: none;
|
|
256
|
-
left: var(--space-field-horizontal-
|
|
257
|
-
top: calc(50% - var(--font-body-m-line-height-
|
|
256
|
+
left: var(--space-field-horizontal-784ol6, 8px);
|
|
257
|
+
top: calc(50% - var(--font-body-m-line-height-7pedlt, 22px) / 2);
|
|
258
258
|
}
|
|
259
259
|
|
|
260
|
-
.awsui_input-icon-
|
|
260
|
+
.awsui_input-icon-right_2rhyz_lcj6n_232:not(#\9) {
|
|
261
261
|
position: absolute;
|
|
262
|
-
top: calc(50% - var(--font-body-m-line-height-
|
|
263
|
-
right: calc(var(--space-field-horizontal-
|
|
262
|
+
top: calc(50% - var(--font-body-m-line-height-7pedlt, 22px) / 2);
|
|
263
|
+
right: calc(var(--space-field-horizontal-784ol6, 8px) - var(--space-xxs-1wmjb0, 4px));
|
|
264
264
|
}
|
|
265
265
|
|
|
266
|
-
.awsui_input-button-
|
|
266
|
+
.awsui_input-button-right_2rhyz_lcj6n_238:not(#\9) {
|
|
267
267
|
/* used in test-utils */
|
|
268
268
|
}
|
|
@@ -2,17 +2,17 @@
|
|
|
2
2
|
// es-module interop with Babel and Typescript
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
module.exports.default = {
|
|
5
|
-
"root": "
|
|
6
|
-
"input": "
|
|
7
|
-
"input-readonly": "awsui_input-
|
|
8
|
-
"input-invalid": "awsui_input-
|
|
9
|
-
"input-has-icon-left": "awsui_input-has-icon-
|
|
10
|
-
"input-type-search": "awsui_input-type-
|
|
11
|
-
"input-has-icon-right": "awsui_input-has-icon-
|
|
12
|
-
"input-has-no-border-radius": "awsui_input-has-no-border-
|
|
13
|
-
"input-container": "awsui_input-
|
|
14
|
-
"input-icon-left": "awsui_input-icon-
|
|
15
|
-
"input-icon-right": "awsui_input-icon-
|
|
16
|
-
"input-button-right": "awsui_input-button-
|
|
5
|
+
"root": "awsui_root_2rhyz_lcj6n_93",
|
|
6
|
+
"input": "awsui_input_2rhyz_lcj6n_97",
|
|
7
|
+
"input-readonly": "awsui_input-readonly_2rhyz_lcj6n_120",
|
|
8
|
+
"input-invalid": "awsui_input-invalid_2rhyz_lcj6n_181",
|
|
9
|
+
"input-has-icon-left": "awsui_input-has-icon-left_2rhyz_lcj6n_192",
|
|
10
|
+
"input-type-search": "awsui_input-type-search_2rhyz_lcj6n_197",
|
|
11
|
+
"input-has-icon-right": "awsui_input-has-icon-right_2rhyz_lcj6n_213",
|
|
12
|
+
"input-has-no-border-radius": "awsui_input-has-no-border-radius_2rhyz_lcj6n_216",
|
|
13
|
+
"input-container": "awsui_input-container_2rhyz_lcj6n_220",
|
|
14
|
+
"input-icon-left": "awsui_input-icon-left_2rhyz_lcj6n_225",
|
|
15
|
+
"input-icon-right": "awsui_input-icon-right_2rhyz_lcj6n_232",
|
|
16
|
+
"input-button-right": "awsui_input-button-right_2rhyz_lcj6n_238"
|
|
17
17
|
};
|
|
18
18
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analytics-funnel.d.ts","sourceRoot":"lib/default/","sources":["internal/analytics/components/analytics-funnel.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAEvE,OAAO,EAKL,sBAAsB,EAGvB,MAAM,8BAA8B,CAAC;AAQtC,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAW7D,eAAO,MAAM,cAAc,QAAQ,CAAC;AAEpC,KAAK,oBAAoB,GAAG;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,GAAG,IAAI,CAC/D,WAAW,EACX,YAAY,GAAG,qBAAqB,GAAG,kBAAkB,CAC1D,CAAC;AAEF,eAAO,MAAM,eAAe,2BAA4B,oBAAoB,
|
|
1
|
+
{"version":3,"file":"analytics-funnel.d.ts","sourceRoot":"lib/default/","sources":["internal/analytics/components/analytics-funnel.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAEvE,OAAO,EAKL,sBAAsB,EAGvB,MAAM,8BAA8B,CAAC;AAQtC,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAW7D,eAAO,MAAM,cAAc,QAAQ,CAAC;AAEpC,KAAK,oBAAoB,GAAG;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,GAAG,IAAI,CAC/D,WAAW,EACX,YAAY,GAAG,qBAAqB,GAAG,kBAAkB,CAC1D,CAAC;AAEF,eAAO,MAAM,eAAe,2BAA4B,oBAAoB,gBAoH3E,CAAC;AAEF,KAAK,wBAAwB,GAAG;IAC9B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,KAAK,EAAE,sBAAsB,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC;CACnF,GAAG,IAAI,CAAC,eAAe,EAAE,YAAY,GAAG,kBAAkB,CAAC,CAAC;AAE7D,eAAO,MAAM,mBAAmB,UAAW,wBAAwB,gBAMlE,CAAC;AAmDF,UAAU,2BAA2B;IACnC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,eAAO,MAAM,sBAAsB,iBAAkB,2BAA2B,gBAmF/E,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { __rest } from "tslib";
|
|
1
|
+
import { __awaiter, __rest } from "tslib";
|
|
2
2
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
3
|
// SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
import React, { useContext, useEffect, useRef, useState } from 'react';
|
|
@@ -18,6 +18,7 @@ export const AnalyticsFunnel = (_a) => {
|
|
|
18
18
|
const funnelState = useRef('default');
|
|
19
19
|
const errorCount = useRef(0);
|
|
20
20
|
const loadingButtonCount = useRef(0);
|
|
21
|
+
const latestFocusCleanupFunction = useRef(undefined);
|
|
21
22
|
// This useEffect hook is run once on component mount to initiate the funnel analytics.
|
|
22
23
|
// It first calls the 'funnelStart' method from FunnelMetrics, providing all necessary details
|
|
23
24
|
// about the funnel, and receives a unique interaction id.
|
|
@@ -110,6 +111,7 @@ export const AnalyticsFunnel = (_a) => {
|
|
|
110
111
|
funnelState,
|
|
111
112
|
errorCount,
|
|
112
113
|
loadingButtonCount,
|
|
114
|
+
latestFocusCleanupFunction,
|
|
113
115
|
};
|
|
114
116
|
return React.createElement(FunnelContext.Provider, { value: funnelContextValue }, children);
|
|
115
117
|
};
|
|
@@ -164,11 +166,19 @@ export const AnalyticsFunnelSubStep = ({ children }) => {
|
|
|
164
166
|
const subStepNameSelector = getSubStepNameSelector(subStepId);
|
|
165
167
|
const subStepRef = useRef(null);
|
|
166
168
|
const { subStepCount } = useFunnelStep();
|
|
169
|
+
const mousePressed = useRef(false);
|
|
170
|
+
const isFocusedSubStep = useRef(false);
|
|
171
|
+
const focusCleanupFunction = useRef(undefined);
|
|
172
|
+
const { funnelState, funnelInteractionId } = useFunnel();
|
|
173
|
+
const { stepNumber, stepNameSelector } = useFunnelStep();
|
|
167
174
|
const newContext = {
|
|
168
175
|
subStepSelector,
|
|
169
176
|
subStepNameSelector,
|
|
170
177
|
subStepId,
|
|
171
178
|
subStepRef,
|
|
179
|
+
mousePressed,
|
|
180
|
+
isFocusedSubStep,
|
|
181
|
+
focusCleanupFunction,
|
|
172
182
|
isNestedSubStep: false,
|
|
173
183
|
};
|
|
174
184
|
const inheritedContext = Object.assign(Object.assign({}, useContext(FunnelSubStepContext)), { isNestedSubStep: true });
|
|
@@ -181,6 +191,45 @@ export const AnalyticsFunnelSubStep = ({ children }) => {
|
|
|
181
191
|
}
|
|
182
192
|
}, [isNested, subStepCount]);
|
|
183
193
|
const context = isNested ? inheritedContext : newContext;
|
|
194
|
+
useEffect(() => {
|
|
195
|
+
const onMouseDown = () => (mousePressed.current = true);
|
|
196
|
+
const onMouseUp = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
197
|
+
var _a;
|
|
198
|
+
mousePressed.current = false;
|
|
199
|
+
if (!isFocusedSubStep.current) {
|
|
200
|
+
return;
|
|
201
|
+
}
|
|
202
|
+
/*
|
|
203
|
+
Some mouse events result in an element being focused. However,
|
|
204
|
+
this happens only _after_ the onMouseUp event. We yield the
|
|
205
|
+
event loop here, so that `document.activeElement` has the
|
|
206
|
+
correct new value.
|
|
207
|
+
*/
|
|
208
|
+
yield new Promise(r => setTimeout(r, 1));
|
|
209
|
+
if (!subStepRef.current || !subStepRef.current.contains(document.activeElement)) {
|
|
210
|
+
isFocusedSubStep.current = false;
|
|
211
|
+
/*
|
|
212
|
+
Run this substep's own focus cleanup function if another substep
|
|
213
|
+
hasn't already done it for us.
|
|
214
|
+
*/
|
|
215
|
+
(_a = focusCleanupFunction.current) === null || _a === void 0 ? void 0 : _a.call(focusCleanupFunction);
|
|
216
|
+
}
|
|
217
|
+
});
|
|
218
|
+
window.addEventListener('mousedown', onMouseDown);
|
|
219
|
+
window.addEventListener('mouseup', onMouseUp);
|
|
220
|
+
return () => {
|
|
221
|
+
window.removeEventListener('mousedown', onMouseDown);
|
|
222
|
+
window.removeEventListener('mouseup', onMouseUp);
|
|
223
|
+
};
|
|
224
|
+
}, [
|
|
225
|
+
funnelInteractionId,
|
|
226
|
+
funnelState,
|
|
227
|
+
stepNameSelector,
|
|
228
|
+
stepNumber,
|
|
229
|
+
subStepNameSelector,
|
|
230
|
+
subStepSelector,
|
|
231
|
+
focusCleanupFunction,
|
|
232
|
+
]);
|
|
184
233
|
return React.createElement(FunnelSubStepContext.Provider, { value: context }, children);
|
|
185
234
|
};
|
|
186
235
|
//# sourceMappingURL=analytics-funnel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analytics-funnel.js","sourceRoot":"lib/default/","sources":["internal/analytics/components/analytics-funnel.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, { useContext, useEffect, useRef, useState } from 'react';\n\nimport {\n FunnelStepContext,\n FunnelSubStepContext,\n FunnelContext,\n FunnelContextValue,\n FunnelStepContextValue,\n FunnelState,\n FunnelSubStepContextValue,\n} from '../context/analytics-context';\nimport { useFunnel, useFunnelStep } from '../hooks/use-funnel';\nimport { useUniqueId } from '../../hooks/use-unique-id';\nimport { useVisualRefresh } from '../../hooks/use-visual-mode';\n\nimport { PACKAGE_VERSION } from '../../environment';\n\nimport { FunnelMetrics } from '../';\nimport { FunnelProps, FunnelStepProps } from '../interfaces';\n\nimport {\n DATA_ATTR_FUNNEL_STEP,\n getFunnelNameSelector,\n getNameFromSelector,\n getSubStepAllSelector,\n getSubStepNameSelector,\n getSubStepSelector,\n} from '../selectors';\n\nexport const FUNNEL_VERSION = '1.0';\n\ntype AnalyticsFunnelProps = { children?: React.ReactNode } & Pick<\n FunnelProps,\n 'funnelType' | 'optionalStepNumbers' | 'totalFunnelSteps'\n>;\n\nexport const AnalyticsFunnel = ({ children, ...props }: AnalyticsFunnelProps) => {\n const [funnelInteractionId, setFunnelInteractionId] = useState<string>('');\n const [submissionAttempt, setSubmissionAttempt] = useState(0);\n const isVisualRefresh = useVisualRefresh();\n const funnelState = useRef<FunnelState>('default');\n const errorCount = useRef<number>(0);\n const loadingButtonCount = useRef<number>(0);\n\n // This useEffect hook is run once on component mount to initiate the funnel analytics.\n // It first calls the 'funnelStart' method from FunnelMetrics, providing all necessary details\n // about the funnel, and receives a unique interaction id.\n // This unique interaction id is then stored in the state for further use.\n //\n // On component unmount, it checks whether the funnel was successfully completed.\n // Based on this, it either calls 'funnelComplete' or 'funnelCancelled' method from FunnelMetrics.\n //\n // The eslint-disable is required as we deliberately want this effect to run only once on mount and unmount,\n // hence we do not provide any dependencies.\n useEffect(() => {\n // Reset the state, in case the component was re-mounted.\n funnelState.current = 'default';\n\n const funnelInteractionId = FunnelMetrics.funnelStart({\n funnelNameSelector: getFunnelNameSelector(),\n optionalStepNumbers: props.optionalStepNumbers,\n funnelType: props.funnelType,\n totalFunnelSteps: props.totalFunnelSteps,\n componentVersion: PACKAGE_VERSION,\n theme: isVisualRefresh ? 'vr' : 'classic',\n funnelVersion: FUNNEL_VERSION,\n });\n\n setFunnelInteractionId(funnelInteractionId);\n\n /*\n A funnel counts as \"successful\" if it is unmounted after being \"complete\".\n */\n /* eslint-disable react-hooks/exhaustive-deps */\n return () => {\n if (funnelState.current === 'validating') {\n // Finish the validation phase early.\n FunnelMetrics.funnelComplete({ funnelInteractionId });\n funnelState.current = 'complete';\n }\n\n if (funnelState.current === 'complete') {\n FunnelMetrics.funnelSuccessful({ funnelInteractionId });\n } else {\n FunnelMetrics.funnelCancelled({ funnelInteractionId });\n funnelState.current = 'cancelled';\n }\n };\n }, []);\n /* eslint-enable react-hooks/exhaustive-deps */\n\n const funnelSubmit = () => {\n funnelState.current = 'validating';\n\n /*\n When the user attempts to submit the form, we wait for 50 milliseconds before checking\n if any form validation errors are present. This value was chosen to give enough time\n for validation and rerendering to occur, but be low enough that the user will not\n be able to take further action in the meantime.\n */\n const VALIDATION_WAIT_DELAY = 50;\n /*\n Loading is expected to take longer than validation, so we can keep the pressure on the CPU low.\n */\n const LOADING_WAIT_DELAY = 100;\n\n const checkForCompleteness = () => {\n if (funnelState.current === 'complete') {\n return;\n }\n\n if (loadingButtonCount.current > 0) {\n setTimeout(checkForCompleteness, LOADING_WAIT_DELAY);\n return;\n }\n\n if (errorCount.current === 0) {\n /*\n If no validation errors are rendered, we treat the funnel as complete.\n */\n FunnelMetrics.funnelComplete({ funnelInteractionId });\n funnelState.current = 'complete';\n } else {\n funnelState.current = 'default';\n }\n };\n\n setTimeout(checkForCompleteness, VALIDATION_WAIT_DELAY);\n };\n\n const funnelNextOrSubmitAttempt = () => setSubmissionAttempt(i => i + 1);\n\n const funnelCancel = () => {};\n\n const funnelContextValue: FunnelContextValue = {\n funnelInteractionId,\n setFunnelInteractionId,\n funnelType: props.funnelType,\n optionalStepNumbers: props.optionalStepNumbers,\n totalFunnelSteps: props.totalFunnelSteps,\n funnelSubmit,\n funnelCancel,\n submissionAttempt,\n funnelNextOrSubmitAttempt,\n funnelState,\n errorCount,\n loadingButtonCount,\n };\n\n return <FunnelContext.Provider value={funnelContextValue}>{children}</FunnelContext.Provider>;\n};\n\ntype AnalyticsFunnelStepProps = {\n children?: React.ReactNode | ((props: FunnelStepContextValue) => React.ReactNode);\n} & Pick<FunnelStepProps, 'stepNumber' | 'stepNameSelector'>;\n\nexport const AnalyticsFunnelStep = (props: AnalyticsFunnelStepProps) => (\n /*\n This wrapper is used to apply a `key` property to the actual (inner) AnalyticsFunnelStep\n element. This allows us to keep the state and effects separate per step.\n */\n <InnerAnalyticsFunnelStep {...props} key={props.stepNumber} />\n);\n\nconst InnerAnalyticsFunnelStep = ({ children, stepNumber, stepNameSelector }: AnalyticsFunnelStepProps) => {\n const { funnelInteractionId, funnelState } = useFunnel();\n\n const funnelStepProps = { [DATA_ATTR_FUNNEL_STEP]: stepNumber };\n\n const subStepCount = useRef<number>(0);\n\n // This useEffect hook is used to track the start and completion of interaction with the step.\n // On mount, if there is a valid funnel interaction id, it calls the 'funnelStepStart' method from FunnelMetrics\n // to record the beginning of the interaction with the current step.\n // On unmount, it does a similar thing but this time calling 'funnelStepComplete' to record the completion of the interaction.\n useEffect(() => {\n const stepName = getNameFromSelector(stepNameSelector);\n\n if (funnelInteractionId && funnelState.current === 'default') {\n FunnelMetrics.funnelStepStart({\n funnelInteractionId,\n stepNumber,\n stepName,\n stepNameSelector,\n subStepAllSelector: getSubStepAllSelector(),\n totalSubSteps: subStepCount.current,\n });\n }\n\n return () => {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n if (funnelInteractionId && funnelState.current !== 'cancelled') {\n FunnelMetrics.funnelStepComplete({\n funnelInteractionId,\n stepNumber,\n stepName,\n stepNameSelector,\n subStepAllSelector: getSubStepAllSelector(),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n totalSubSteps: subStepCount.current,\n });\n }\n };\n //eslint-disable-next-line react-hooks/exhaustive-deps\n }, [funnelInteractionId, stepNumber, stepNameSelector]);\n\n const contextValue: FunnelStepContextValue = { stepNumber, stepNameSelector, funnelStepProps, subStepCount };\n return (\n <FunnelStepContext.Provider value={contextValue}>\n {typeof children === 'function' ? children(contextValue) : children}\n </FunnelStepContext.Provider>\n );\n};\ninterface AnalyticsFunnelSubStepProps {\n children?: React.ReactNode;\n}\n\nexport const AnalyticsFunnelSubStep = ({ children }: AnalyticsFunnelSubStepProps) => {\n const subStepId = useUniqueId('substep');\n const subStepSelector = getSubStepSelector(subStepId);\n const subStepNameSelector = getSubStepNameSelector(subStepId);\n const subStepRef = useRef<HTMLDivElement | null>(null);\n const { subStepCount } = useFunnelStep();\n\n const newContext: FunnelSubStepContextValue = {\n subStepSelector,\n subStepNameSelector,\n subStepId,\n subStepRef,\n isNestedSubStep: false,\n };\n\n const inheritedContext = { ...useContext(FunnelSubStepContext), isNestedSubStep: true };\n\n const isNested = Boolean(inheritedContext.subStepId);\n\n useEffect(() => {\n if (!isNested) {\n subStepCount.current++;\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return () => void subStepCount.current--;\n }\n }, [isNested, subStepCount]);\n\n const context = isNested ? inheritedContext : newContext;\n\n return <FunnelSubStepContext.Provider value={context}>{children}</FunnelSubStepContext.Provider>;\n};\n"]}
|
|
1
|
+
{"version":3,"file":"analytics-funnel.js","sourceRoot":"lib/default/","sources":["internal/analytics/components/analytics-funnel.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, { useContext, useEffect, useRef, useState } from 'react';\n\nimport {\n FunnelStepContext,\n FunnelSubStepContext,\n FunnelContext,\n FunnelContextValue,\n FunnelStepContextValue,\n FunnelState,\n FunnelSubStepContextValue,\n} from '../context/analytics-context';\nimport { useFunnel, useFunnelStep } from '../hooks/use-funnel';\nimport { useUniqueId } from '../../hooks/use-unique-id';\nimport { useVisualRefresh } from '../../hooks/use-visual-mode';\n\nimport { PACKAGE_VERSION } from '../../environment';\n\nimport { FunnelMetrics } from '../';\nimport { FunnelProps, FunnelStepProps } from '../interfaces';\n\nimport {\n DATA_ATTR_FUNNEL_STEP,\n getFunnelNameSelector,\n getNameFromSelector,\n getSubStepAllSelector,\n getSubStepNameSelector,\n getSubStepSelector,\n} from '../selectors';\n\nexport const FUNNEL_VERSION = '1.0';\n\ntype AnalyticsFunnelProps = { children?: React.ReactNode } & Pick<\n FunnelProps,\n 'funnelType' | 'optionalStepNumbers' | 'totalFunnelSteps'\n>;\n\nexport const AnalyticsFunnel = ({ children, ...props }: AnalyticsFunnelProps) => {\n const [funnelInteractionId, setFunnelInteractionId] = useState<string>('');\n const [submissionAttempt, setSubmissionAttempt] = useState(0);\n const isVisualRefresh = useVisualRefresh();\n const funnelState = useRef<FunnelState>('default');\n const errorCount = useRef<number>(0);\n const loadingButtonCount = useRef<number>(0);\n const latestFocusCleanupFunction = useRef<undefined | (() => void)>(undefined);\n\n // This useEffect hook is run once on component mount to initiate the funnel analytics.\n // It first calls the 'funnelStart' method from FunnelMetrics, providing all necessary details\n // about the funnel, and receives a unique interaction id.\n // This unique interaction id is then stored in the state for further use.\n //\n // On component unmount, it checks whether the funnel was successfully completed.\n // Based on this, it either calls 'funnelComplete' or 'funnelCancelled' method from FunnelMetrics.\n //\n // The eslint-disable is required as we deliberately want this effect to run only once on mount and unmount,\n // hence we do not provide any dependencies.\n useEffect(() => {\n // Reset the state, in case the component was re-mounted.\n funnelState.current = 'default';\n\n const funnelInteractionId = FunnelMetrics.funnelStart({\n funnelNameSelector: getFunnelNameSelector(),\n optionalStepNumbers: props.optionalStepNumbers,\n funnelType: props.funnelType,\n totalFunnelSteps: props.totalFunnelSteps,\n componentVersion: PACKAGE_VERSION,\n theme: isVisualRefresh ? 'vr' : 'classic',\n funnelVersion: FUNNEL_VERSION,\n });\n\n setFunnelInteractionId(funnelInteractionId);\n\n /*\n A funnel counts as \"successful\" if it is unmounted after being \"complete\".\n */\n /* eslint-disable react-hooks/exhaustive-deps */\n return () => {\n if (funnelState.current === 'validating') {\n // Finish the validation phase early.\n FunnelMetrics.funnelComplete({ funnelInteractionId });\n funnelState.current = 'complete';\n }\n\n if (funnelState.current === 'complete') {\n FunnelMetrics.funnelSuccessful({ funnelInteractionId });\n } else {\n FunnelMetrics.funnelCancelled({ funnelInteractionId });\n funnelState.current = 'cancelled';\n }\n };\n }, []);\n /* eslint-enable react-hooks/exhaustive-deps */\n\n const funnelSubmit = () => {\n funnelState.current = 'validating';\n\n /*\n When the user attempts to submit the form, we wait for 50 milliseconds before checking\n if any form validation errors are present. This value was chosen to give enough time\n for validation and rerendering to occur, but be low enough that the user will not\n be able to take further action in the meantime.\n */\n const VALIDATION_WAIT_DELAY = 50;\n /*\n Loading is expected to take longer than validation, so we can keep the pressure on the CPU low.\n */\n const LOADING_WAIT_DELAY = 100;\n\n const checkForCompleteness = () => {\n if (funnelState.current === 'complete') {\n return;\n }\n\n if (loadingButtonCount.current > 0) {\n setTimeout(checkForCompleteness, LOADING_WAIT_DELAY);\n return;\n }\n\n if (errorCount.current === 0) {\n /*\n If no validation errors are rendered, we treat the funnel as complete.\n */\n FunnelMetrics.funnelComplete({ funnelInteractionId });\n funnelState.current = 'complete';\n } else {\n funnelState.current = 'default';\n }\n };\n\n setTimeout(checkForCompleteness, VALIDATION_WAIT_DELAY);\n };\n\n const funnelNextOrSubmitAttempt = () => setSubmissionAttempt(i => i + 1);\n\n const funnelCancel = () => {};\n\n const funnelContextValue: FunnelContextValue = {\n funnelInteractionId,\n setFunnelInteractionId,\n funnelType: props.funnelType,\n optionalStepNumbers: props.optionalStepNumbers,\n totalFunnelSteps: props.totalFunnelSteps,\n funnelSubmit,\n funnelCancel,\n submissionAttempt,\n funnelNextOrSubmitAttempt,\n funnelState,\n errorCount,\n loadingButtonCount,\n latestFocusCleanupFunction,\n };\n\n return <FunnelContext.Provider value={funnelContextValue}>{children}</FunnelContext.Provider>;\n};\n\ntype AnalyticsFunnelStepProps = {\n children?: React.ReactNode | ((props: FunnelStepContextValue) => React.ReactNode);\n} & Pick<FunnelStepProps, 'stepNumber' | 'stepNameSelector'>;\n\nexport const AnalyticsFunnelStep = (props: AnalyticsFunnelStepProps) => (\n /*\n This wrapper is used to apply a `key` property to the actual (inner) AnalyticsFunnelStep\n element. This allows us to keep the state and effects separate per step.\n */\n <InnerAnalyticsFunnelStep {...props} key={props.stepNumber} />\n);\n\nconst InnerAnalyticsFunnelStep = ({ children, stepNumber, stepNameSelector }: AnalyticsFunnelStepProps) => {\n const { funnelInteractionId, funnelState } = useFunnel();\n\n const funnelStepProps = { [DATA_ATTR_FUNNEL_STEP]: stepNumber };\n\n const subStepCount = useRef<number>(0);\n\n // This useEffect hook is used to track the start and completion of interaction with the step.\n // On mount, if there is a valid funnel interaction id, it calls the 'funnelStepStart' method from FunnelMetrics\n // to record the beginning of the interaction with the current step.\n // On unmount, it does a similar thing but this time calling 'funnelStepComplete' to record the completion of the interaction.\n useEffect(() => {\n const stepName = getNameFromSelector(stepNameSelector);\n\n if (funnelInteractionId && funnelState.current === 'default') {\n FunnelMetrics.funnelStepStart({\n funnelInteractionId,\n stepNumber,\n stepName,\n stepNameSelector,\n subStepAllSelector: getSubStepAllSelector(),\n totalSubSteps: subStepCount.current,\n });\n }\n\n return () => {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n if (funnelInteractionId && funnelState.current !== 'cancelled') {\n FunnelMetrics.funnelStepComplete({\n funnelInteractionId,\n stepNumber,\n stepName,\n stepNameSelector,\n subStepAllSelector: getSubStepAllSelector(),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n totalSubSteps: subStepCount.current,\n });\n }\n };\n //eslint-disable-next-line react-hooks/exhaustive-deps\n }, [funnelInteractionId, stepNumber, stepNameSelector]);\n\n const contextValue: FunnelStepContextValue = { stepNumber, stepNameSelector, funnelStepProps, subStepCount };\n return (\n <FunnelStepContext.Provider value={contextValue}>\n {typeof children === 'function' ? children(contextValue) : children}\n </FunnelStepContext.Provider>\n );\n};\ninterface AnalyticsFunnelSubStepProps {\n children?: React.ReactNode;\n}\n\nexport const AnalyticsFunnelSubStep = ({ children }: AnalyticsFunnelSubStepProps) => {\n const subStepId = useUniqueId('substep');\n const subStepSelector = getSubStepSelector(subStepId);\n const subStepNameSelector = getSubStepNameSelector(subStepId);\n const subStepRef = useRef<HTMLDivElement | null>(null);\n const { subStepCount } = useFunnelStep();\n const mousePressed = useRef<boolean>(false);\n const isFocusedSubStep = useRef<boolean>(false);\n const focusCleanupFunction = useRef<undefined | (() => void)>(undefined);\n const { funnelState, funnelInteractionId } = useFunnel();\n const { stepNumber, stepNameSelector } = useFunnelStep();\n\n const newContext: FunnelSubStepContextValue = {\n subStepSelector,\n subStepNameSelector,\n subStepId,\n subStepRef,\n mousePressed,\n isFocusedSubStep,\n focusCleanupFunction,\n isNestedSubStep: false,\n };\n\n const inheritedContext = { ...useContext(FunnelSubStepContext), isNestedSubStep: true };\n\n const isNested = Boolean(inheritedContext.subStepId);\n\n useEffect(() => {\n if (!isNested) {\n subStepCount.current++;\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return () => void subStepCount.current--;\n }\n }, [isNested, subStepCount]);\n\n const context = isNested ? inheritedContext : newContext;\n\n useEffect(() => {\n const onMouseDown = () => (mousePressed.current = true);\n\n const onMouseUp = async () => {\n mousePressed.current = false;\n\n if (!isFocusedSubStep.current) {\n return;\n }\n\n /*\n Some mouse events result in an element being focused. However,\n this happens only _after_ the onMouseUp event. We yield the\n event loop here, so that `document.activeElement` has the\n correct new value. \n */\n await new Promise(r => setTimeout(r, 1));\n\n if (!subStepRef.current || !subStepRef.current.contains(document.activeElement)) {\n isFocusedSubStep.current = false;\n\n /*\n Run this substep's own focus cleanup function if another substep\n hasn't already done it for us.\n */\n focusCleanupFunction.current?.();\n }\n };\n window.addEventListener('mousedown', onMouseDown);\n window.addEventListener('mouseup', onMouseUp);\n return () => {\n window.removeEventListener('mousedown', onMouseDown);\n window.removeEventListener('mouseup', onMouseUp);\n };\n }, [\n funnelInteractionId,\n funnelState,\n stepNameSelector,\n stepNumber,\n subStepNameSelector,\n subStepSelector,\n focusCleanupFunction,\n ]);\n\n return <FunnelSubStepContext.Provider value={context}>{children}</FunnelSubStepContext.Provider>;\n};\n"]}
|
|
@@ -14,6 +14,7 @@ export interface FunnelContextValue {
|
|
|
14
14
|
funnelState: RefObject<FunnelState>;
|
|
15
15
|
errorCount: MutableRefObject<number>;
|
|
16
16
|
loadingButtonCount: MutableRefObject<number>;
|
|
17
|
+
latestFocusCleanupFunction: MutableRefObject<undefined | (() => void)>;
|
|
17
18
|
}
|
|
18
19
|
export interface FunnelStepContextValue {
|
|
19
20
|
stepNameSelector: string;
|
|
@@ -26,6 +27,18 @@ export interface FunnelSubStepContextValue {
|
|
|
26
27
|
subStepSelector: string;
|
|
27
28
|
subStepNameSelector: string;
|
|
28
29
|
subStepRef: MutableRefObject<HTMLDivElement | null>;
|
|
30
|
+
mousePressed: MutableRefObject<boolean>;
|
|
31
|
+
/**
|
|
32
|
+
* `isFocusedSubStep` is almost the same as checking if document.activeElement
|
|
33
|
+
* is a child of the curren substep. However, `isFocusedSubStep` stays true
|
|
34
|
+
* while the mouse button is pressed down, even though some browsers move the focus
|
|
35
|
+
* to the body element during that time.
|
|
36
|
+
*/
|
|
37
|
+
isFocusedSubStep: MutableRefObject<boolean>;
|
|
38
|
+
/**
|
|
39
|
+
* The focus cleanup function should be run when the user leaves the substep.
|
|
40
|
+
*/
|
|
41
|
+
focusCleanupFunction: MutableRefObject<undefined | (() => void)>;
|
|
29
42
|
isNestedSubStep: boolean;
|
|
30
43
|
funnelSubStepProps?: Record<string, string | number | boolean | undefined>;
|
|
31
44
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analytics-context.d.ts","sourceRoot":"lib/default/","sources":["internal/analytics/context/analytics-context.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAiB,MAAM,OAAO,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,YAAY,GAAG,UAAU,GAAG,WAAW,CAAC;AAE9E,MAAM,WAAW,kBAAkB;IACjC,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,UAAU,EAAE,UAAU,CAAC;IACvB,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,sBAAsB,EAAE,CAAC,mBAAmB,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9D,iBAAiB,EAAE,MAAM,CAAC;IAC1B,yBAAyB,EAAE,MAAM,IAAI,CAAC;IACtC,WAAW,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IACpC,UAAU,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACrC,kBAAkB,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"analytics-context.d.ts","sourceRoot":"lib/default/","sources":["internal/analytics/context/analytics-context.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAiB,MAAM,OAAO,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,YAAY,GAAG,UAAU,GAAG,WAAW,CAAC;AAE9E,MAAM,WAAW,kBAAkB;IACjC,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,UAAU,EAAE,UAAU,CAAC;IACvB,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,sBAAsB,EAAE,CAAC,mBAAmB,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9D,iBAAiB,EAAE,MAAM,CAAC;IAC1B,yBAAyB,EAAE,MAAM,IAAI,CAAC;IACtC,WAAW,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IACpC,UAAU,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACrC,kBAAkB,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC7C,0BAA0B,EAAE,gBAAgB,CAAC,SAAS,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;CACxE;AAED,MAAM,WAAW,sBAAsB;IACrC,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;IACxE,YAAY,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,UAAU,EAAE,gBAAgB,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACpD,YAAY,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACxC;;;;;OAKG;IACH,gBAAgB,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAE5C;;OAEG;IACH,oBAAoB,EAAE,gBAAgB,CAAC,SAAS,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;IACjE,eAAe,EAAE,OAAO,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;CAC5E;AAGD,eAAO,MAAM,aAAa,6CAcxB,CAAC;AAEH,eAAO,MAAM,iBAAiB,iDAI5B,CAAC;AAEH,eAAO,MAAM,oBAAoB,oDAS/B,CAAC"}
|
|
@@ -15,6 +15,7 @@ export const FunnelContext = createContext({
|
|
|
15
15
|
funnelState: { current: 'default' },
|
|
16
16
|
errorCount: { current: 0 },
|
|
17
17
|
loadingButtonCount: { current: 0 },
|
|
18
|
+
latestFocusCleanupFunction: { current: undefined },
|
|
18
19
|
});
|
|
19
20
|
export const FunnelStepContext = createContext({
|
|
20
21
|
stepNameSelector: '',
|
|
@@ -27,5 +28,8 @@ export const FunnelSubStepContext = createContext({
|
|
|
27
28
|
subStepNameSelector: '',
|
|
28
29
|
subStepRef: { current: null },
|
|
29
30
|
isNestedSubStep: false,
|
|
31
|
+
mousePressed: { current: false },
|
|
32
|
+
isFocusedSubStep: { current: false },
|
|
33
|
+
focusCleanupFunction: { current: undefined },
|
|
30
34
|
});
|
|
31
35
|
//# sourceMappingURL=analytics-context.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analytics-context.js","sourceRoot":"lib/default/","sources":["internal/analytics/context/analytics-context.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,EAA+B,aAAa,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"analytics-context.js","sourceRoot":"lib/default/","sources":["internal/analytics/context/analytics-context.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,EAA+B,aAAa,EAAE,MAAM,OAAO,CAAC;AAkDnE,0BAA0B;AAC1B,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAqB;IAC7D,mBAAmB,EAAE,SAAS;IAC9B,sBAAsB,EAAE,GAAG,EAAE,GAAE,CAAC;IAChC,UAAU,EAAE,aAAa;IACzB,mBAAmB,EAAE,EAAE;IACvB,gBAAgB,EAAE,CAAC;IACnB,YAAY,EAAE,GAAG,EAAE,GAAE,CAAC;IACtB,YAAY,EAAE,GAAG,EAAE,GAAE,CAAC;IACtB,iBAAiB,EAAE,CAAC;IACpB,yBAAyB,EAAE,GAAG,EAAE,GAAE,CAAC;IACnC,WAAW,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE;IACnC,UAAU,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE;IAC1B,kBAAkB,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE;IAClC,0BAA0B,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE;CACnD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,aAAa,CAAyB;IACrE,gBAAgB,EAAE,EAAE;IACpB,UAAU,EAAE,CAAC;IACb,YAAY,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE;CAC7B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,aAAa,CAA4B;IAC3E,SAAS,EAAE,EAAE;IACb,eAAe,EAAE,EAAE;IACnB,mBAAmB,EAAE,EAAE;IACvB,UAAU,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;IAC7B,eAAe,EAAE,KAAK;IACtB,YAAY,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;IAChC,gBAAgB,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;IACpC,oBAAoB,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE;CAC7C,CAAC,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { MutableRefObject, RefObject, createContext } from 'react';\nimport { FunnelType } from '../interfaces';\n\nexport type FunnelState = 'default' | 'validating' | 'complete' | 'cancelled';\n\nexport interface FunnelContextValue {\n funnelInteractionId: string | undefined;\n funnelType: FunnelType;\n optionalStepNumbers: number[];\n totalFunnelSteps: number;\n funnelSubmit: () => void;\n funnelCancel: () => void;\n setFunnelInteractionId: (funnelInteractionId: string) => void;\n submissionAttempt: number;\n funnelNextOrSubmitAttempt: () => void;\n funnelState: RefObject<FunnelState>;\n errorCount: MutableRefObject<number>;\n loadingButtonCount: MutableRefObject<number>;\n latestFocusCleanupFunction: MutableRefObject<undefined | (() => void)>;\n}\n\nexport interface FunnelStepContextValue {\n stepNameSelector: string;\n stepNumber: number;\n funnelStepProps?: Record<string, string | number | boolean | undefined>;\n subStepCount: MutableRefObject<number>;\n}\n\nexport interface FunnelSubStepContextValue {\n subStepId: string;\n subStepSelector: string;\n subStepNameSelector: string;\n subStepRef: MutableRefObject<HTMLDivElement | null>;\n mousePressed: MutableRefObject<boolean>;\n /**\n * `isFocusedSubStep` is almost the same as checking if document.activeElement\n * is a child of the curren substep. However, `isFocusedSubStep` stays true\n * while the mouse button is pressed down, even though some browsers move the focus\n * to the body element during that time.\n */\n isFocusedSubStep: MutableRefObject<boolean>;\n\n /**\n * The focus cleanup function should be run when the user leaves the substep.\n */\n focusCleanupFunction: MutableRefObject<undefined | (() => void)>;\n isNestedSubStep: boolean;\n funnelSubStepProps?: Record<string, string | number | boolean | undefined>;\n}\n\n/* istanbul ignore next */\nexport const FunnelContext = createContext<FunnelContextValue>({\n funnelInteractionId: undefined,\n setFunnelInteractionId: () => {},\n funnelType: 'single-page',\n optionalStepNumbers: [],\n totalFunnelSteps: 0,\n funnelSubmit: () => {},\n funnelCancel: () => {},\n submissionAttempt: 0,\n funnelNextOrSubmitAttempt: () => {},\n funnelState: { current: 'default' },\n errorCount: { current: 0 },\n loadingButtonCount: { current: 0 },\n latestFocusCleanupFunction: { current: undefined },\n});\n\nexport const FunnelStepContext = createContext<FunnelStepContextValue>({\n stepNameSelector: '',\n stepNumber: 0,\n subStepCount: { current: 0 },\n});\n\nexport const FunnelSubStepContext = createContext<FunnelSubStepContextValue>({\n subStepId: '',\n subStepSelector: '',\n subStepNameSelector: '',\n subStepRef: { current: null },\n isNestedSubStep: false,\n mousePressed: { current: false },\n isFocusedSubStep: { current: false },\n focusCleanupFunction: { current: undefined },\n});\n"]}
|
|
@@ -14,6 +14,9 @@ export declare const useFunnelSubStep: () => import("../context/analytics-contex
|
|
|
14
14
|
subStepSelector: string;
|
|
15
15
|
subStepNameSelector: string;
|
|
16
16
|
subStepRef: import("react").MutableRefObject<HTMLDivElement | null>;
|
|
17
|
+
mousePressed: import("react").MutableRefObject<boolean>;
|
|
18
|
+
isFocusedSubStep: import("react").MutableRefObject<boolean>;
|
|
19
|
+
focusCleanupFunction: import("react").MutableRefObject<(() => void) | undefined>;
|
|
17
20
|
isNestedSubStep: boolean;
|
|
18
21
|
funnelSubStepProps: Record<string, any>;
|
|
19
22
|
};
|
|
@@ -46,6 +49,7 @@ export declare const useFunnel: () => {
|
|
|
46
49
|
funnelState: import("react").RefObject<import("../context/analytics-context").FunnelState>;
|
|
47
50
|
errorCount: import("react").MutableRefObject<number>;
|
|
48
51
|
loadingButtonCount: import("react").MutableRefObject<number>;
|
|
52
|
+
latestFocusCleanupFunction: import("react").MutableRefObject<(() => void) | undefined>;
|
|
49
53
|
funnelProps: Record<string, string | number | boolean | undefined>;
|
|
50
54
|
};
|
|
51
55
|
//# sourceMappingURL=use-funnel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-funnel.d.ts","sourceRoot":"lib/default/","sources":["internal/analytics/hooks/use-funnel.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"use-funnel.d.ts","sourceRoot":"lib/default/","sources":["internal/analytics/hooks/use-funnel.ts"],"names":[],"mappings":";AAaA;;;;;;;;;GASG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;CAqH5B,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,qEAGzB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;CASrB,CAAC"}
|