@cloudscape-design/components-themeable 3.0.339 → 3.0.341

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/lib/internal/manifest.json +1 -1
  2. package/lib/internal/scss/app-layout/visual-refresh/background.scss +1 -1
  3. package/lib/internal/scss/area-chart/styles.scss +1 -43
  4. package/lib/internal/scss/container/shared.scss +3 -1
  5. package/lib/internal/scss/expandable-section/styles.scss +49 -23
  6. package/lib/internal/scss/internal/components/cartesian-chart/styles.scss +14 -2
  7. package/lib/internal/scss/internal/components/chart-wrapper/styles.scss +38 -0
  8. package/lib/internal/scss/mixed-line-bar-chart/styles.scss +0 -44
  9. package/lib/internal/scss/pie-chart/styles.scss +0 -24
  10. package/lib/internal/scss/table/body-cell/styles.scss +6 -0
  11. package/lib/internal/template/app-layout/runtime-api.d.ts.map +1 -1
  12. package/lib/internal/template/app-layout/runtime-api.js +5 -4
  13. package/lib/internal/template/app-layout/runtime-api.js.map +1 -1
  14. package/lib/internal/template/app-layout/visual-refresh/styles.css.js +69 -69
  15. package/lib/internal/template/app-layout/visual-refresh/styles.scoped.css +167 -167
  16. package/lib/internal/template/app-layout/visual-refresh/styles.selectors.js +69 -69
  17. package/lib/internal/template/area-chart/chart-container.d.ts.map +1 -1
  18. package/lib/internal/template/area-chart/chart-container.js +8 -15
  19. package/lib/internal/template/area-chart/chart-container.js.map +1 -1
  20. package/lib/internal/template/area-chart/internal.d.ts.map +1 -1
  21. package/lib/internal/template/area-chart/internal.js +2 -16
  22. package/lib/internal/template/area-chart/internal.js.map +1 -1
  23. package/lib/internal/template/area-chart/styles.css.js +6 -13
  24. package/lib/internal/template/area-chart/styles.scoped.css +10 -82
  25. package/lib/internal/template/area-chart/styles.selectors.js +6 -13
  26. package/lib/internal/template/expandable-section/styles.css.js +28 -31
  27. package/lib/internal/template/expandable-section/styles.scoped.css +85 -66
  28. package/lib/internal/template/expandable-section/styles.selectors.js +28 -31
  29. package/lib/internal/template/form-field/internal.d.ts.map +1 -1
  30. package/lib/internal/template/form-field/internal.js +5 -1
  31. package/lib/internal/template/form-field/internal.js.map +1 -1
  32. package/lib/internal/template/internal/analytics/components/analytics-funnel.d.ts.map +1 -1
  33. package/lib/internal/template/internal/analytics/components/analytics-funnel.js +4 -1
  34. package/lib/internal/template/internal/analytics/components/analytics-funnel.js.map +1 -1
  35. package/lib/internal/template/internal/analytics/interfaces.d.ts +2 -0
  36. package/lib/internal/template/internal/analytics/interfaces.d.ts.map +1 -1
  37. package/lib/internal/template/internal/analytics/interfaces.js.map +1 -1
  38. package/lib/internal/template/internal/analytics/selectors.d.ts +1 -0
  39. package/lib/internal/template/internal/analytics/selectors.d.ts.map +1 -1
  40. package/lib/internal/template/internal/analytics/selectors.js +1 -0
  41. package/lib/internal/template/internal/analytics/selectors.js.map +1 -1
  42. package/lib/internal/template/internal/components/cartesian-chart/chart-container.d.ts +11 -0
  43. package/lib/internal/template/internal/components/cartesian-chart/chart-container.d.ts.map +1 -0
  44. package/lib/internal/template/internal/components/cartesian-chart/chart-container.js +15 -0
  45. package/lib/internal/template/internal/components/cartesian-chart/chart-container.js.map +1 -0
  46. package/lib/internal/template/internal/components/cartesian-chart/styles.css.js +23 -21
  47. package/lib/internal/template/internal/components/cartesian-chart/styles.scoped.css +37 -25
  48. package/lib/internal/template/internal/components/cartesian-chart/styles.selectors.js +23 -21
  49. package/lib/internal/template/internal/components/chart-wrapper/index.d.ts +17 -0
  50. package/lib/internal/template/internal/components/chart-wrapper/index.d.ts.map +1 -0
  51. package/lib/internal/template/internal/components/chart-wrapper/index.js +26 -0
  52. package/lib/internal/template/internal/components/chart-wrapper/index.js.map +1 -0
  53. package/lib/internal/template/internal/components/chart-wrapper/styles.css.js +11 -0
  54. package/lib/internal/template/internal/components/chart-wrapper/styles.scoped.css +155 -0
  55. package/lib/internal/template/internal/components/chart-wrapper/styles.selectors.js +12 -0
  56. package/lib/internal/template/internal/environment.js +1 -1
  57. package/lib/internal/template/internal/plugins/drawers-controller.d.ts +2 -4
  58. package/lib/internal/template/internal/plugins/drawers-controller.d.ts.map +1 -1
  59. package/lib/internal/template/internal/plugins/drawers-controller.js.map +1 -1
  60. package/lib/internal/template/link/internal.d.ts.map +1 -1
  61. package/lib/internal/template/link/internal.js +9 -1
  62. package/lib/internal/template/link/internal.js.map +1 -1
  63. package/lib/internal/template/mixed-line-bar-chart/chart-container.d.ts.map +1 -1
  64. package/lib/internal/template/mixed-line-bar-chart/chart-container.js +12 -19
  65. package/lib/internal/template/mixed-line-bar-chart/chart-container.js.map +1 -1
  66. package/lib/internal/template/mixed-line-bar-chart/internal.d.ts.map +1 -1
  67. package/lib/internal/template/mixed-line-bar-chart/internal.js +10 -15
  68. package/lib/internal/template/mixed-line-bar-chart/internal.js.map +1 -1
  69. package/lib/internal/template/mixed-line-bar-chart/styles.css.js +11 -19
  70. package/lib/internal/template/mixed-line-bar-chart/styles.scoped.css +18 -94
  71. package/lib/internal/template/mixed-line-bar-chart/styles.selectors.js +11 -19
  72. package/lib/internal/template/pie-chart/index.d.ts.map +1 -1
  73. package/lib/internal/template/pie-chart/index.js +26 -14
  74. package/lib/internal/template/pie-chart/index.js.map +1 -1
  75. package/lib/internal/template/pie-chart/pie-chart.d.ts +5 -3
  76. package/lib/internal/template/pie-chart/pie-chart.d.ts.map +1 -1
  77. package/lib/internal/template/pie-chart/pie-chart.js +14 -40
  78. package/lib/internal/template/pie-chart/pie-chart.js.map +1 -1
  79. package/lib/internal/template/pie-chart/styles.css.js +23 -27
  80. package/lib/internal/template/pie-chart/styles.scoped.css +38 -94
  81. package/lib/internal/template/pie-chart/styles.selectors.js +23 -27
  82. package/lib/internal/template/table/body-cell/styles.css.js +28 -28
  83. package/lib/internal/template/table/body-cell/styles.scoped.css +75 -69
  84. package/lib/internal/template/table/body-cell/styles.selectors.js +28 -28
  85. package/lib/internal/template/test-utils/dom/mixed-line-bar-chart/index.js +2 -1
  86. package/lib/internal/template/test-utils/dom/mixed-line-bar-chart/index.js.map +1 -1
  87. package/lib/internal/template/test-utils/dom/pie-chart/index.js +2 -1
  88. package/lib/internal/template/test-utils/dom/pie-chart/index.js.map +1 -1
  89. package/lib/internal/template/test-utils/selectors/mixed-line-bar-chart/index.js +2 -1
  90. package/lib/internal/template/test-utils/selectors/mixed-line-bar-chart/index.js.map +1 -1
  91. package/lib/internal/template/test-utils/selectors/pie-chart/index.js +2 -1
  92. package/lib/internal/template/test-utils/selectors/pie-chart/index.js.map +1 -1
  93. package/lib/internal/template/test-utils/tsconfig.tsbuildinfo +1 -1
  94. package/lib/internal/template/wizard/internal.d.ts.map +1 -1
  95. package/lib/internal/template/wizard/internal.js +5 -2
  96. package/lib/internal/template/wizard/internal.js.map +1 -1
  97. package/package.json +1 -1
  98. package/lib/internal/template/mixed-line-bar-chart/chart-filters.d.ts +0 -13
  99. package/lib/internal/template/mixed-line-bar-chart/chart-filters.d.ts.map +0 -1
  100. package/lib/internal/template/mixed-line-bar-chart/chart-filters.js +0 -22
  101. package/lib/internal/template/mixed-line-bar-chart/chart-filters.js.map +0 -1
@@ -1,36 +1,33 @@
1
1
 
2
2
  import './styles.scoped.css';
3
3
  export default {
4
- "content-enter": "awsui_content-enter_gwq0h_mn3pm_97",
5
- "awsui-motion-fade-in": "awsui_awsui-motion-fade-in_gwq0h_mn3pm_1",
6
- "trigger-expanded": "awsui_trigger-expanded_gwq0h_mn3pm_119",
7
- "icon": "awsui_icon_gwq0h_mn3pm_133",
8
- "root": "awsui_root_gwq0h_mn3pm_151",
9
- "expand-button": "awsui_expand-button_gwq0h_mn3pm_168",
10
- "expanded": "awsui_expanded_gwq0h_mn3pm_175",
11
- "icon-container": "awsui_icon-container_gwq0h_mn3pm_179",
12
- "icon-container-container": "awsui_icon-container-container_gwq0h_mn3pm_184",
13
- "wrapper": "awsui_wrapper_gwq0h_mn3pm_188",
14
- "wrapper-default": "awsui_wrapper-default_gwq0h_mn3pm_195",
15
- "wrapper-footer": "awsui_wrapper-footer_gwq0h_mn3pm_198",
16
- "wrapper-navigation": "awsui_wrapper-navigation_gwq0h_mn3pm_204",
17
- "wrapper-container": "awsui_wrapper-container_gwq0h_mn3pm_207",
18
- "wrapper-expanded": "awsui_wrapper-expanded_gwq0h_mn3pm_224",
19
- "header": "awsui_header_gwq0h_mn3pm_228",
20
- "header-wrapper": "awsui_header-wrapper_gwq0h_mn3pm_231",
21
- "header-deprecated": "awsui_header-deprecated_gwq0h_mn3pm_231",
22
- "header-button": "awsui_header-button_gwq0h_mn3pm_241",
23
- "header-container-button": "awsui_header-container-button_gwq0h_mn3pm_245",
24
- "header-container": "awsui_header-container_gwq0h_mn3pm_245",
25
- "header-navigation": "awsui_header-navigation_gwq0h_mn3pm_269",
26
- "content": "awsui_content_gwq0h_mn3pm_97",
27
- "content-default": "awsui_content-default_gwq0h_mn3pm_305",
28
- "content-footer": "awsui_content-footer_gwq0h_mn3pm_308",
29
- "content-expanded": "awsui_content-expanded_gwq0h_mn3pm_311",
30
- "focusable": "awsui_focusable_gwq0h_mn3pm_315",
31
- "click-target": "awsui_click-target_gwq0h_mn3pm_326",
32
- "description-default": "awsui_description-default_gwq0h_mn3pm_333",
33
- "description-footer": "awsui_description-footer_gwq0h_mn3pm_334",
34
- "description-container": "awsui_description-container_gwq0h_mn3pm_338"
4
+ "content-enter": "awsui_content-enter_gwq0h_1hnxv_97",
5
+ "awsui-motion-fade-in": "awsui_awsui-motion-fade-in_gwq0h_1hnxv_1",
6
+ "trigger-expanded": "awsui_trigger-expanded_gwq0h_1hnxv_119",
7
+ "icon": "awsui_icon_gwq0h_1hnxv_133",
8
+ "root": "awsui_root_gwq0h_1hnxv_151",
9
+ "expand-button": "awsui_expand-button_gwq0h_1hnxv_168",
10
+ "expanded": "awsui_expanded_gwq0h_1hnxv_175",
11
+ "icon-container": "awsui_icon-container_gwq0h_1hnxv_179",
12
+ "icon-container-container": "awsui_icon-container-container_gwq0h_1hnxv_184",
13
+ "wrapper": "awsui_wrapper_gwq0h_1hnxv_188",
14
+ "wrapper-default": "awsui_wrapper-default_gwq0h_1hnxv_195",
15
+ "wrapper-footer": "awsui_wrapper-footer_gwq0h_1hnxv_195",
16
+ "wrapper-navigation": "awsui_wrapper-navigation_gwq0h_1hnxv_198",
17
+ "wrapper-container": "awsui_wrapper-container_gwq0h_1hnxv_201",
18
+ "header-deprecated": "awsui_header-deprecated_gwq0h_1hnxv_217",
19
+ "wrapper-expanded": "awsui_wrapper-expanded_gwq0h_1hnxv_248",
20
+ "header": "awsui_header_gwq0h_1hnxv_217",
21
+ "header-wrapper": "awsui_header-wrapper_gwq0h_1hnxv_255",
22
+ "header-button": "awsui_header-button_gwq0h_1hnxv_265",
23
+ "header-container-button": "awsui_header-container-button_gwq0h_1hnxv_265",
24
+ "header-container": "awsui_header-container_gwq0h_1hnxv_265",
25
+ "header-navigation": "awsui_header-navigation_gwq0h_1hnxv_297",
26
+ "content": "awsui_content_gwq0h_1hnxv_97",
27
+ "content-default": "awsui_content-default_gwq0h_1hnxv_333",
28
+ "content-footer": "awsui_content-footer_gwq0h_1hnxv_336",
29
+ "content-expanded": "awsui_content-expanded_gwq0h_1hnxv_339",
30
+ "focusable": "awsui_focusable_gwq0h_1hnxv_343",
31
+ "click-target": "awsui_click-target_gwq0h_1hnxv_354"
35
32
  };
36
33
 
@@ -94,10 +94,10 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
94
94
  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
95
95
  SPDX-License-Identifier: Apache-2.0
96
96
  */
97
- .awsui_content-enter_gwq0h_mn3pm_97:not(#\9) {
98
- animation: awsui_awsui-motion-fade-in_gwq0h_mn3pm_1 var(--motion-duration-show-paced-et23hs, 180ms) var(--motion-easing-show-paced-ddbkug, ease-out);
97
+ .awsui_content-enter_gwq0h_1hnxv_97:not(#\9) {
98
+ animation: awsui_awsui-motion-fade-in_gwq0h_1hnxv_1 var(--motion-duration-show-paced-et23hs, 180ms) var(--motion-easing-show-paced-ddbkug, ease-out);
99
99
  }
100
- @keyframes awsui_awsui-motion-fade-in_gwq0h_mn3pm_1 {
100
+ @keyframes awsui_awsui-motion-fade-in_gwq0h_1hnxv_1 {
101
101
  from {
102
102
  opacity: 0.2;
103
103
  }
@@ -106,40 +106,40 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
106
106
  }
107
107
  }
108
108
  @media (prefers-reduced-motion: reduce) {
109
- .awsui_content-enter_gwq0h_mn3pm_97:not(#\9) {
109
+ .awsui_content-enter_gwq0h_1hnxv_97:not(#\9) {
110
110
  animation: none;
111
111
  transition: none;
112
112
  }
113
113
  }
114
- .awsui-motion-disabled .awsui_content-enter_gwq0h_mn3pm_97:not(#\9), .awsui-mode-entering .awsui_content-enter_gwq0h_mn3pm_97:not(#\9) {
114
+ .awsui-motion-disabled .awsui_content-enter_gwq0h_1hnxv_97:not(#\9), .awsui-mode-entering .awsui_content-enter_gwq0h_1hnxv_97:not(#\9) {
115
115
  animation: none;
116
116
  transition: none;
117
117
  }
118
118
 
119
- .awsui_trigger-expanded_gwq0h_mn3pm_119:not(#\9) {
119
+ .awsui_trigger-expanded_gwq0h_1hnxv_119:not(#\9) {
120
120
  transition: border-bottom-color var(--motion-duration-show-paced-et23hs, 180ms) var(--motion-easing-show-paced-ddbkug, ease-out);
121
121
  }
122
122
  @media (prefers-reduced-motion: reduce) {
123
- .awsui_trigger-expanded_gwq0h_mn3pm_119:not(#\9) {
123
+ .awsui_trigger-expanded_gwq0h_1hnxv_119:not(#\9) {
124
124
  animation: none;
125
125
  transition: none;
126
126
  }
127
127
  }
128
- .awsui-motion-disabled .awsui_trigger-expanded_gwq0h_mn3pm_119:not(#\9), .awsui-mode-entering .awsui_trigger-expanded_gwq0h_mn3pm_119:not(#\9) {
128
+ .awsui-motion-disabled .awsui_trigger-expanded_gwq0h_1hnxv_119:not(#\9), .awsui-mode-entering .awsui_trigger-expanded_gwq0h_1hnxv_119:not(#\9) {
129
129
  animation: none;
130
130
  transition: none;
131
131
  }
132
132
 
133
- .awsui_icon_gwq0h_mn3pm_133:not(#\9) {
133
+ .awsui_icon_gwq0h_1hnxv_133:not(#\9) {
134
134
  transition: transform var(--motion-duration-rotate-90-l1syz5, 135ms) var(--motion-easing-rotate-90-8xzw2x, cubic-bezier(0.165, 0.84, 0.44, 1));
135
135
  }
136
136
  @media (prefers-reduced-motion: reduce) {
137
- .awsui_icon_gwq0h_mn3pm_133:not(#\9) {
137
+ .awsui_icon_gwq0h_1hnxv_133:not(#\9) {
138
138
  animation: none;
139
139
  transition: none;
140
140
  }
141
141
  }
142
- .awsui-motion-disabled .awsui_icon_gwq0h_mn3pm_133:not(#\9), .awsui-mode-entering .awsui_icon_gwq0h_mn3pm_133:not(#\9) {
142
+ .awsui-motion-disabled .awsui_icon_gwq0h_1hnxv_133:not(#\9), .awsui-mode-entering .awsui_icon_gwq0h_1hnxv_133:not(#\9) {
143
143
  animation: none;
144
144
  transition: none;
145
145
  }
@@ -148,7 +148,7 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
148
148
  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
149
149
  SPDX-License-Identifier: Apache-2.0
150
150
  */
151
- .awsui_root_gwq0h_mn3pm_151:not(#\9) {
151
+ .awsui_root_gwq0h_1hnxv_151:not(#\9) {
152
152
  /* stylelint-disable-next-line plugin/no-unsupported-browser-features */
153
153
  border-collapse: separate;
154
154
  border-spacing: 0;
@@ -191,91 +191,111 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
191
191
  display: block;
192
192
  }
193
193
 
194
- .awsui_expand-button_gwq0h_mn3pm_168:not(#\9) {
194
+ .awsui_expand-button_gwq0h_1hnxv_168:not(#\9) {
195
195
  /* used in test-utils */
196
196
  }
197
197
 
198
- .awsui_icon_gwq0h_mn3pm_133:not(#\9) {
198
+ .awsui_icon_gwq0h_1hnxv_133:not(#\9) {
199
199
  transform: rotate(-90deg);
200
200
  }
201
- .awsui_icon_gwq0h_mn3pm_133.awsui_expanded_gwq0h_mn3pm_175:not(#\9) {
201
+ .awsui_icon_gwq0h_1hnxv_133.awsui_expanded_gwq0h_1hnxv_175:not(#\9) {
202
202
  transform: rotate(0deg);
203
203
  }
204
204
 
205
- .awsui_icon-container_gwq0h_mn3pm_179:not(#\9) {
205
+ .awsui_icon-container_gwq0h_1hnxv_179:not(#\9) {
206
206
  position: relative;
207
207
  margin-left: calc((var(--font-body-m-line-height-9vkzhc, 22px) - var(--size-icon-normal-sz51st, 16px)) / -2);
208
208
  margin-right: calc(var(--space-xxs-xx079q, 4px) + var(--border-divider-list-width-iu80dg, 1px));
209
209
  }
210
- .awsui_icon-container-container_gwq0h_mn3pm_184:not(#\9) {
210
+ .awsui_icon-container-container_gwq0h_1hnxv_184:not(#\9) {
211
211
  margin-right: var(--space-xs-7veqkr, 8px);
212
212
  }
213
213
 
214
- .awsui_wrapper_gwq0h_mn3pm_188:not(#\9) {
214
+ .awsui_wrapper_gwq0h_1hnxv_188:not(#\9) {
215
215
  box-sizing: border-box;
216
216
  border: none;
217
217
  width: 100%;
218
218
  line-height: var(--font-body-m-line-height-9vkzhc, 22px);
219
219
  text-align: left;
220
220
  }
221
- .awsui_wrapper-default_gwq0h_mn3pm_195:not(#\9) {
222
- padding: var(--space-scaled-xxs-gmgwxk, 4px) var(--space-xxs-xx079q, 4px);
223
- }
224
- .awsui_wrapper-footer_gwq0h_mn3pm_198:not(#\9) {
225
- padding: var(--space-scaled-xxs-gmgwxk, 4px) 0;
226
- }
227
- .awsui_wrapper-default_gwq0h_mn3pm_195:not(#\9), .awsui_wrapper-footer_gwq0h_mn3pm_198:not(#\9) {
221
+ .awsui_wrapper-default_gwq0h_1hnxv_195:not(#\9), .awsui_wrapper-footer_gwq0h_1hnxv_195:not(#\9) {
228
222
  border: var(--border-divider-section-width-p0xg84, 1px) solid transparent;
229
223
  }
230
- .awsui_wrapper-navigation_gwq0h_mn3pm_204:not(#\9) {
224
+ .awsui_wrapper-navigation_gwq0h_1hnxv_198:not(#\9) {
231
225
  border-left: var(--border-divider-section-width-p0xg84, 1px) solid transparent;
232
226
  }
233
- .awsui_wrapper-navigation_gwq0h_mn3pm_204:not(#\9), .awsui_wrapper-container_gwq0h_mn3pm_207:not(#\9) {
227
+ .awsui_wrapper-navigation_gwq0h_1hnxv_198:not(#\9), .awsui_wrapper-container_gwq0h_1hnxv_201:not(#\9) {
234
228
  display: flex;
235
229
  font-weight: var(--font-heading-s-weight-rxw9ij, 700);
236
230
  }
237
- .awsui_wrapper-default_gwq0h_mn3pm_195:not(#\9), .awsui_wrapper-navigation_gwq0h_mn3pm_204:not(#\9), .awsui_wrapper-footer_gwq0h_mn3pm_198:not(#\9) {
231
+ .awsui_wrapper-default_gwq0h_1hnxv_195:not(#\9), .awsui_wrapper-navigation_gwq0h_1hnxv_198:not(#\9), .awsui_wrapper-footer_gwq0h_1hnxv_195:not(#\9) {
238
232
  color: var(--color-text-expandable-section-default-egmtdl, #545b64);
239
233
  -webkit-font-smoothing: var(--font-smoothing-webkit-teqshp, auto);
240
234
  -moz-osx-font-smoothing: var(--font-smoothing-moz-osx-apq2ca, auto);
241
235
  font-size: var(--font-expandable-heading-size-x20mdp, 14px);
242
236
  letter-spacing: var(--font-heading-s-letter-spacing-jp7jyt, normal);
243
237
  }
244
- .awsui_wrapper-container_gwq0h_mn3pm_207:not(#\9) {
245
- padding: var(--space-container-header-vertical-ezarcz, 12px) var(--space-container-horizontal-7bp7wa, 20px);
238
+ .awsui_wrapper-default_gwq0h_1hnxv_195:not(#\9) {
239
+ padding-top: var(--space-scaled-xxs-gmgwxk, 4px);
240
+ padding-bottom: var(--space-scaled-xxs-gmgwxk, 4px);
241
+ padding-right: var(--space-xxs-xx079q, 4px);
242
+ }
243
+ .awsui_wrapper-default_gwq0h_1hnxv_195.awsui_header-deprecated_gwq0h_1hnxv_217:not(#\9) {
244
+ padding-left: var(--space-xxs-xx079q, 4px);
245
+ }
246
+ .awsui_wrapper-default_gwq0h_1hnxv_195:not(#\9):not(.awsui_header-deprecated_gwq0h_1hnxv_217) {
247
+ padding-left: calc(var(--space-xxs-xx079q, 4px) + calc(var(--size-icon-normal-sz51st, 16px) + (var(--font-body-m-line-height-9vkzhc, 22px) - var(--size-icon-normal-sz51st, 16px)) / -2 + var(--space-xxs-xx079q, 4px) + var(--border-divider-list-width-iu80dg, 1px)));
248
+ }
249
+ .awsui_wrapper-footer_gwq0h_1hnxv_195:not(#\9) {
250
+ padding-top: var(--space-scaled-xxs-gmgwxk, 4px);
251
+ padding-bottom: var(--space-scaled-xxs-gmgwxk, 4px);
252
+ padding-right: 0;
253
+ }
254
+ .awsui_wrapper-footer_gwq0h_1hnxv_195.awsui_header-deprecated_gwq0h_1hnxv_217:not(#\9) {
255
+ padding-left: 0;
246
256
  }
247
- body[data-awsui-focus-visible=true] .awsui_wrapper-container_gwq0h_mn3pm_207:not(#\9):focus {
257
+ .awsui_wrapper-footer_gwq0h_1hnxv_195:not(#\9):not(.awsui_header-deprecated_gwq0h_1hnxv_217) {
258
+ padding-left: calc(var(--size-icon-normal-sz51st, 16px) + (var(--font-body-m-line-height-9vkzhc, 22px) - var(--size-icon-normal-sz51st, 16px)) / -2 + var(--space-xxs-xx079q, 4px) + var(--border-divider-list-width-iu80dg, 1px));
259
+ }
260
+ .awsui_wrapper-container_gwq0h_1hnxv_201:not(#\9) {
261
+ padding-top: var(--space-container-header-vertical-ezarcz, 12px);
262
+ padding-bottom: var(--space-container-header-vertical-ezarcz, 12px);
263
+ padding-right: var(--space-container-horizontal-7bp7wa, 20px);
264
+ }
265
+ .awsui_wrapper-container_gwq0h_1hnxv_201.awsui_header-deprecated_gwq0h_1hnxv_217:not(#\9) {
266
+ padding-left: var(--space-container-horizontal-7bp7wa, 20px);
267
+ }
268
+ .awsui_wrapper-container_gwq0h_1hnxv_201:not(#\9):not(.awsui_header-deprecated_gwq0h_1hnxv_217) {
269
+ padding-left: calc(var(--space-container-horizontal-7bp7wa, 20px) + calc(var(--size-icon-medium-9v2l3x, 16px) + (var(--font-body-m-line-height-9vkzhc, 22px) - var(--size-icon-normal-sz51st, 16px)) / -2 + var(--space-xs-7veqkr, 8px)));
270
+ }
271
+ body[data-awsui-focus-visible=true] .awsui_wrapper-container_gwq0h_1hnxv_201:not(#\9):focus {
248
272
  padding: calc(var(--space-scaled-s-73r995, 12px) - var(--border-divider-section-width-p0xg84, 1px)) calc(var(--space-l-z6h7qi, 20px) - var(--border-divider-section-width-p0xg84, 1px));
249
273
  }
250
- .awsui_wrapper-default_gwq0h_mn3pm_195.awsui_wrapper-expanded_gwq0h_mn3pm_224:not(#\9) {
274
+ .awsui_wrapper-default_gwq0h_1hnxv_195.awsui_wrapper-expanded_gwq0h_1hnxv_248:not(#\9) {
251
275
  border-bottom-color: var(--color-border-divider-default-uqjcpn, #eaeded);
252
276
  }
253
277
 
254
- .awsui_header_gwq0h_mn3pm_228:not(#\9) {
278
+ .awsui_header_gwq0h_1hnxv_217:not(#\9) {
255
279
  /* used in test-utils */
256
280
  }
257
- .awsui_header-wrapper_gwq0h_mn3pm_231:not(#\9), .awsui_header-deprecated_gwq0h_mn3pm_231:not(#\9) {
281
+ .awsui_header-wrapper_gwq0h_1hnxv_255:not(#\9), .awsui_header-deprecated_gwq0h_1hnxv_217:not(#\9) {
258
282
  display: flex;
259
283
  font-weight: var(--font-heading-s-weight-rxw9ij, 700);
260
284
  }
261
- .awsui_header-wrapper_gwq0h_mn3pm_231:not(#\9) {
285
+ .awsui_header-wrapper_gwq0h_1hnxv_255:not(#\9) {
262
286
  font-size: inherit;
263
287
  letter-spacing: inherit;
264
288
  margin: 0;
265
289
  padding: 0;
266
290
  }
267
- .awsui_header-button_gwq0h_mn3pm_241:not(#\9) {
268
- box-sizing: border-box;
269
- display: flex;
270
- }
271
- body[data-awsui-focus-visible=true] .awsui_header-button_gwq0h_mn3pm_241:not(#\9):focus, body[data-awsui-focus-visible=true] .awsui_header-container-button_gwq0h_mn3pm_245:not(#\9):focus {
291
+ body[data-awsui-focus-visible=true] .awsui_header-button_gwq0h_1hnxv_265:not(#\9):focus, body[data-awsui-focus-visible=true] .awsui_header-container-button_gwq0h_1hnxv_265:not(#\9):focus {
272
292
  position: relative;
273
293
  }
274
- body[data-awsui-focus-visible=true] .awsui_header-button_gwq0h_mn3pm_241:not(#\9):focus, body[data-awsui-focus-visible=true] .awsui_header-container-button_gwq0h_mn3pm_245:not(#\9):focus {
294
+ body[data-awsui-focus-visible=true] .awsui_header-button_gwq0h_1hnxv_265:not(#\9):focus, body[data-awsui-focus-visible=true] .awsui_header-container-button_gwq0h_1hnxv_265:not(#\9):focus {
275
295
  outline: 2px dotted transparent;
276
296
  outline-offset: calc(0px - 1px);
277
297
  }
278
- body[data-awsui-focus-visible=true] .awsui_header-button_gwq0h_mn3pm_241:not(#\9):focus::before, body[data-awsui-focus-visible=true] .awsui_header-container-button_gwq0h_mn3pm_245:not(#\9):focus::before {
298
+ body[data-awsui-focus-visible=true] .awsui_header-button_gwq0h_1hnxv_265:not(#\9):focus::before, body[data-awsui-focus-visible=true] .awsui_header-container-button_gwq0h_1hnxv_265:not(#\9):focus::before {
279
299
  content: " ";
280
300
  display: block;
281
301
  position: absolute;
@@ -286,13 +306,21 @@ body[data-awsui-focus-visible=true] .awsui_header-button_gwq0h_mn3pm_241:not(#\9
286
306
  border-radius: var(--border-radius-control-default-focus-ring-uu8qi4, 2px);
287
307
  box-shadow: 0 0 0 2px var(--color-border-item-focused-4clyb1, #0073bb);
288
308
  }
289
- .awsui_header-container_gwq0h_mn3pm_245:not(#\9) {
309
+ .awsui_header-button_gwq0h_1hnxv_265:not(#\9) {
310
+ box-sizing: border-box;
311
+ display: flex;
312
+ margin-left: calc(-1 * calc(var(--size-icon-normal-sz51st, 16px) + (var(--font-body-m-line-height-9vkzhc, 22px) - var(--size-icon-normal-sz51st, 16px)) / -2 + var(--space-xxs-xx079q, 4px) + var(--border-divider-list-width-iu80dg, 1px)));
313
+ }
314
+ .awsui_header-container-button_gwq0h_1hnxv_265:not(#\9) {
315
+ margin-left: calc(-1 * calc(var(--size-icon-medium-9v2l3x, 16px) + (var(--font-body-m-line-height-9vkzhc, 22px) - var(--size-icon-normal-sz51st, 16px)) / -2 + var(--space-xs-7veqkr, 8px)));
316
+ }
317
+ .awsui_header-container_gwq0h_1hnxv_265:not(#\9) {
290
318
  width: 100%;
291
319
  }
292
- .awsui_header-container_gwq0h_mn3pm_245 > .awsui_icon-container_gwq0h_mn3pm_179:not(#\9) {
320
+ .awsui_header-container_gwq0h_1hnxv_265 > .awsui_icon-container_gwq0h_1hnxv_179:not(#\9) {
293
321
  margin-top: var(--space-expandable-section-icon-offset-top-4ysrlk, 8px);
294
322
  }
295
- .awsui_header-navigation_gwq0h_mn3pm_269 > .awsui_icon-container_gwq0h_mn3pm_179:not(#\9) {
323
+ .awsui_header-navigation_gwq0h_1hnxv_297 > .awsui_icon-container_gwq0h_1hnxv_179:not(#\9) {
296
324
  display: inline-flex;
297
325
  cursor: pointer;
298
326
  color: var(--color-text-expandable-section-navigation-icon-default-7jwgwp, #879596);
@@ -303,17 +331,17 @@ body[data-awsui-focus-visible=true] .awsui_header-button_gwq0h_mn3pm_241:not(#\9
303
331
  text-decoration: none;
304
332
  flex-direction: column;
305
333
  }
306
- .awsui_header-navigation_gwq0h_mn3pm_269 > .awsui_icon-container_gwq0h_mn3pm_179:not(#\9):hover {
334
+ .awsui_header-navigation_gwq0h_1hnxv_297 > .awsui_icon-container_gwq0h_1hnxv_179:not(#\9):hover {
307
335
  color: var(--color-text-expandable-section-hover-tt7c4n, #16191f);
308
336
  }
309
- body[data-awsui-focus-visible=true] .awsui_header-navigation_gwq0h_mn3pm_269 > .awsui_icon-container_gwq0h_mn3pm_179:not(#\9):focus {
337
+ body[data-awsui-focus-visible=true] .awsui_header-navigation_gwq0h_1hnxv_297 > .awsui_icon-container_gwq0h_1hnxv_179:not(#\9):focus {
310
338
  position: relative;
311
339
  }
312
- body[data-awsui-focus-visible=true] .awsui_header-navigation_gwq0h_mn3pm_269 > .awsui_icon-container_gwq0h_mn3pm_179:not(#\9):focus {
340
+ body[data-awsui-focus-visible=true] .awsui_header-navigation_gwq0h_1hnxv_297 > .awsui_icon-container_gwq0h_1hnxv_179:not(#\9):focus {
313
341
  outline: 2px dotted transparent;
314
342
  outline-offset: calc(2px - 1px);
315
343
  }
316
- body[data-awsui-focus-visible=true] .awsui_header-navigation_gwq0h_mn3pm_269 > .awsui_icon-container_gwq0h_mn3pm_179:not(#\9):focus::before {
344
+ body[data-awsui-focus-visible=true] .awsui_header-navigation_gwq0h_1hnxv_297 > .awsui_icon-container_gwq0h_1hnxv_179:not(#\9):focus::before {
317
345
  content: " ";
318
346
  display: block;
319
347
  position: absolute;
@@ -325,42 +353,33 @@ body[data-awsui-focus-visible=true] .awsui_header-navigation_gwq0h_mn3pm_269 > .
325
353
  box-shadow: 0 0 0 2px var(--color-border-item-focused-4clyb1, #0073bb);
326
354
  }
327
355
 
328
- .awsui_content_gwq0h_mn3pm_97:not(#\9) {
356
+ .awsui_content_gwq0h_1hnxv_97:not(#\9) {
329
357
  display: none;
330
358
  }
331
- .awsui_content-default_gwq0h_mn3pm_305:not(#\9) {
359
+ .awsui_content-default_gwq0h_1hnxv_333:not(#\9) {
332
360
  padding: var(--space-scaled-xs-sg3tfb, 8px) 0;
333
361
  }
334
- .awsui_content-footer_gwq0h_mn3pm_308:not(#\9) {
362
+ .awsui_content-footer_gwq0h_1hnxv_336:not(#\9) {
335
363
  padding: var(--space-xs-7veqkr, 8px) 0;
336
364
  }
337
- .awsui_content-expanded_gwq0h_mn3pm_311:not(#\9) {
365
+ .awsui_content-expanded_gwq0h_1hnxv_339:not(#\9) {
338
366
  display: block;
339
367
  }
340
368
 
341
- .awsui_focusable_gwq0h_mn3pm_315:not(#\9):focus {
369
+ .awsui_focusable_gwq0h_1hnxv_343:not(#\9):focus {
342
370
  outline: none;
343
371
  text-decoration: none;
344
372
  }
345
- body[data-awsui-focus-visible=true] .awsui_focusable_gwq0h_mn3pm_315:not(#\9):focus {
373
+ body[data-awsui-focus-visible=true] .awsui_focusable_gwq0h_1hnxv_343:not(#\9):focus {
346
374
  outline: 2px dotted transparent;
347
375
  border: var(--border-field-width-gmdyxy, 1px) solid var(--color-border-item-focused-4clyb1, #0073bb);
348
376
  border-radius: var(--border-radius-control-default-focus-ring-uu8qi4, 2px);
349
377
  box-shadow: 0 0 0 var(--border-control-focus-ring-shadow-spread-qycpr2, 1px) var(--color-border-item-focused-4clyb1, #0073bb);
350
378
  }
351
379
 
352
- .awsui_click-target_gwq0h_mn3pm_326:not(#\9) {
380
+ .awsui_click-target_gwq0h_1hnxv_354:not(#\9) {
353
381
  cursor: pointer;
354
382
  }
355
- .awsui_click-target_gwq0h_mn3pm_326:not(#\9):not(.awsui_wrapper-container_gwq0h_mn3pm_207):not(.awsui_header-container-button_gwq0h_mn3pm_245):hover {
383
+ .awsui_click-target_gwq0h_1hnxv_354:not(#\9):not(.awsui_wrapper-container_gwq0h_1hnxv_201):not(.awsui_header-container-button_gwq0h_1hnxv_265):hover {
356
384
  color: var(--color-text-expandable-section-hover-tt7c4n, #16191f);
357
- }
358
-
359
- .awsui_description-default_gwq0h_mn3pm_333:not(#\9),
360
- .awsui_description-footer_gwq0h_mn3pm_334:not(#\9) {
361
- padding-left: calc(var(--size-icon-normal-sz51st, 16px) + (var(--font-body-m-line-height-9vkzhc, 22px) - var(--size-icon-normal-sz51st, 16px)) / -2 + var(--space-xxs-xx079q, 4px) + var(--border-divider-list-width-iu80dg, 1px));
362
- }
363
-
364
- .awsui_description-container_gwq0h_mn3pm_338:not(#\9) {
365
- padding-left: calc(var(--size-icon-medium-9v2l3x, 16px) + (var(--font-body-m-line-height-9vkzhc, 22px) - var(--size-icon-normal-sz51st, 16px)) / -2 + var(--space-xs-7veqkr, 8px));
366
385
  }
@@ -2,36 +2,33 @@
2
2
  // es-module interop with Babel and Typescript
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  module.exports.default = {
5
- "content-enter": "awsui_content-enter_gwq0h_mn3pm_97",
6
- "awsui-motion-fade-in": "awsui_awsui-motion-fade-in_gwq0h_mn3pm_1",
7
- "trigger-expanded": "awsui_trigger-expanded_gwq0h_mn3pm_119",
8
- "icon": "awsui_icon_gwq0h_mn3pm_133",
9
- "root": "awsui_root_gwq0h_mn3pm_151",
10
- "expand-button": "awsui_expand-button_gwq0h_mn3pm_168",
11
- "expanded": "awsui_expanded_gwq0h_mn3pm_175",
12
- "icon-container": "awsui_icon-container_gwq0h_mn3pm_179",
13
- "icon-container-container": "awsui_icon-container-container_gwq0h_mn3pm_184",
14
- "wrapper": "awsui_wrapper_gwq0h_mn3pm_188",
15
- "wrapper-default": "awsui_wrapper-default_gwq0h_mn3pm_195",
16
- "wrapper-footer": "awsui_wrapper-footer_gwq0h_mn3pm_198",
17
- "wrapper-navigation": "awsui_wrapper-navigation_gwq0h_mn3pm_204",
18
- "wrapper-container": "awsui_wrapper-container_gwq0h_mn3pm_207",
19
- "wrapper-expanded": "awsui_wrapper-expanded_gwq0h_mn3pm_224",
20
- "header": "awsui_header_gwq0h_mn3pm_228",
21
- "header-wrapper": "awsui_header-wrapper_gwq0h_mn3pm_231",
22
- "header-deprecated": "awsui_header-deprecated_gwq0h_mn3pm_231",
23
- "header-button": "awsui_header-button_gwq0h_mn3pm_241",
24
- "header-container-button": "awsui_header-container-button_gwq0h_mn3pm_245",
25
- "header-container": "awsui_header-container_gwq0h_mn3pm_245",
26
- "header-navigation": "awsui_header-navigation_gwq0h_mn3pm_269",
27
- "content": "awsui_content_gwq0h_mn3pm_97",
28
- "content-default": "awsui_content-default_gwq0h_mn3pm_305",
29
- "content-footer": "awsui_content-footer_gwq0h_mn3pm_308",
30
- "content-expanded": "awsui_content-expanded_gwq0h_mn3pm_311",
31
- "focusable": "awsui_focusable_gwq0h_mn3pm_315",
32
- "click-target": "awsui_click-target_gwq0h_mn3pm_326",
33
- "description-default": "awsui_description-default_gwq0h_mn3pm_333",
34
- "description-footer": "awsui_description-footer_gwq0h_mn3pm_334",
35
- "description-container": "awsui_description-container_gwq0h_mn3pm_338"
5
+ "content-enter": "awsui_content-enter_gwq0h_1hnxv_97",
6
+ "awsui-motion-fade-in": "awsui_awsui-motion-fade-in_gwq0h_1hnxv_1",
7
+ "trigger-expanded": "awsui_trigger-expanded_gwq0h_1hnxv_119",
8
+ "icon": "awsui_icon_gwq0h_1hnxv_133",
9
+ "root": "awsui_root_gwq0h_1hnxv_151",
10
+ "expand-button": "awsui_expand-button_gwq0h_1hnxv_168",
11
+ "expanded": "awsui_expanded_gwq0h_1hnxv_175",
12
+ "icon-container": "awsui_icon-container_gwq0h_1hnxv_179",
13
+ "icon-container-container": "awsui_icon-container-container_gwq0h_1hnxv_184",
14
+ "wrapper": "awsui_wrapper_gwq0h_1hnxv_188",
15
+ "wrapper-default": "awsui_wrapper-default_gwq0h_1hnxv_195",
16
+ "wrapper-footer": "awsui_wrapper-footer_gwq0h_1hnxv_195",
17
+ "wrapper-navigation": "awsui_wrapper-navigation_gwq0h_1hnxv_198",
18
+ "wrapper-container": "awsui_wrapper-container_gwq0h_1hnxv_201",
19
+ "header-deprecated": "awsui_header-deprecated_gwq0h_1hnxv_217",
20
+ "wrapper-expanded": "awsui_wrapper-expanded_gwq0h_1hnxv_248",
21
+ "header": "awsui_header_gwq0h_1hnxv_217",
22
+ "header-wrapper": "awsui_header-wrapper_gwq0h_1hnxv_255",
23
+ "header-button": "awsui_header-button_gwq0h_1hnxv_265",
24
+ "header-container-button": "awsui_header-container-button_gwq0h_1hnxv_265",
25
+ "header-container": "awsui_header-container_gwq0h_1hnxv_265",
26
+ "header-navigation": "awsui_header-navigation_gwq0h_1hnxv_297",
27
+ "content": "awsui_content_gwq0h_1hnxv_97",
28
+ "content-default": "awsui_content-default_gwq0h_1hnxv_333",
29
+ "content-footer": "awsui_content-footer_gwq0h_1hnxv_336",
30
+ "content-expanded": "awsui_content-expanded_gwq0h_1hnxv_339",
31
+ "focusable": "awsui_focusable_gwq0h_1hnxv_343",
32
+ "click-target": "awsui_click-target_gwq0h_1hnxv_354"
36
33
  };
37
34
 
@@ -1 +1 @@
1
- {"version":3,"file":"internal.d.ts","sourceRoot":"lib/default/","sources":["form-field/internal.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAoB,MAAM,OAAO,CAAC;AAazC,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AActD,UAAU,mBAAmB;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,kBAAkB,EAAE,EAAE,mBAAmB,eAiBvF;AAED,wBAAgB,cAAc,CAAC,EAC7B,EAAE,EACF,QAAQ,EACR,QAAQ,GACT,EAAE;IACD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,eAMA;AAED,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EACxC,SAAS,EACT,OAAe,EACf,KAAK,EACL,IAAI,EACJ,WAAW,EACX,QAAQ,EACR,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,SAAS,EACT,WAAW,EACX,iBAAwB,EACxB,gBAAwB,EACxB,GAAG,IAAI,EACR,EAAE,sBAAsB,eA8GxB"}
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"lib/default/","sources":["form-field/internal.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAoB,MAAM,OAAO,CAAC;AAazC,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAetD,UAAU,mBAAmB;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,kBAAkB,EAAE,EAAE,mBAAmB,eAiBvF;AAED,wBAAgB,cAAc,CAAC,EAC7B,EAAE,EACF,QAAQ,EACR,QAAQ,GACT,EAAE;IACD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,eAMA;AAED,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EACxC,SAAS,EACT,OAAe,EACf,KAAK,EACL,IAAI,EACJ,WAAW,EACX,QAAQ,EACR,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,SAAS,EACT,WAAW,EACX,iBAAwB,EACxB,gBAAwB,EACxB,GAAG,IAAI,EACR,EAAE,sBAAsB,eAmHxB"}
@@ -16,7 +16,7 @@ import { useInternalI18n } from '../internal/i18n/context';
16
16
  import { InfoLinkLabelContext } from '../internal/context/info-link-label-context';
17
17
  import { FunnelMetrics } from '../internal/analytics';
18
18
  import { useFunnelSubStep } from '../internal/analytics/hooks/use-funnel';
19
- import { DATA_ATTR_FIELD_ERROR, DATA_ATTR_FIELD_LABEL, getFieldSlotSeletor, getSubStepAllSelector, } from '../internal/analytics/selectors';
19
+ import { DATA_ATTR_FIELD_ERROR, DATA_ATTR_FIELD_LABEL, getFieldSlotSeletor, getNameFromSelector, getSubStepAllSelector, } from '../internal/analytics/selectors';
20
20
  export function FormFieldError({ id, children, errorIconAriaLabel }) {
21
21
  const i18n = useInternalI18n('form-field');
22
22
  return (React.createElement("div", { id: id, className: styles.error },
@@ -51,11 +51,15 @@ export default function InternalFormField(_a) {
51
51
  };
52
52
  useEffect(() => {
53
53
  if (funnelInteractionId && errorText) {
54
+ const stepName = getNameFromSelector(stepNameSelector);
55
+ const subStepName = getNameFromSelector(subStepNameSelector);
54
56
  FunnelMetrics.funnelSubStepError({
55
57
  funnelInteractionId,
56
58
  subStepSelector,
59
+ subStepName,
57
60
  subStepNameSelector,
58
61
  stepNumber,
62
+ stepName,
59
63
  stepNameSelector,
60
64
  fieldErrorSelector: getFieldSlotSeletor(slotIds.error),
61
65
  fieldLabelSelector: getFieldSlotSeletor(slotIds.label),
@@ -1 +1 @@
1
- {"version":3,"file":"internal.js","sourceRoot":"lib/default/","sources":["form-field/internal.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, { useEffect } from 'react';\nimport clsx from 'clsx';\n\nimport { getBaseProps } from '../internal/base-component';\nimport { FormFieldContext, useFormFieldContext } from '../internal/context/form-field-context';\nimport { useUniqueId } from '../internal/hooks/use-unique-id';\nimport { useVisualRefresh } from '../internal/hooks/use-visual-mode';\n\nimport InternalGrid from '../grid/internal';\nimport InternalIcon from '../icon/internal';\nimport { getAriaDescribedBy, getGridDefinition, getSlotIds } from './util';\n\nimport styles from './styles.css.js';\nimport { InternalFormFieldProps } from './interfaces';\nimport { joinStrings } from '../internal/utils/strings';\nimport { useInternalI18n } from '../internal/i18n/context';\nimport { InfoLinkLabelContext } from '../internal/context/info-link-label-context';\n\nimport { FunnelMetrics } from '../internal/analytics';\nimport { useFunnelSubStep } from '../internal/analytics/hooks/use-funnel';\nimport {\n DATA_ATTR_FIELD_ERROR,\n DATA_ATTR_FIELD_LABEL,\n getFieldSlotSeletor,\n getSubStepAllSelector,\n} from '../internal/analytics/selectors';\n\ninterface FormFieldErrorProps {\n id?: string;\n children?: React.ReactNode;\n errorIconAriaLabel?: string;\n}\n\nexport function FormFieldError({ id, children, errorIconAriaLabel }: FormFieldErrorProps) {\n const i18n = useInternalI18n('form-field');\n\n return (\n <div id={id} className={styles.error}>\n <div className={styles['error-icon-shake-wrapper']}>\n <div\n role=\"img\"\n aria-label={i18n('i18nStrings.errorIconAriaLabel', errorIconAriaLabel)}\n className={styles['error-icon-scale-wrapper']}\n >\n <InternalIcon name=\"status-warning\" size=\"small\" />\n </div>\n </div>\n <span className={styles.error__message}>{children}</span>\n </div>\n );\n}\n\nexport function ConstraintText({\n id,\n hasError,\n children,\n}: {\n id?: string;\n hasError: boolean;\n children: React.ReactNode;\n}) {\n return (\n <div id={id} className={clsx(styles.constraint, hasError && styles['constraint-has-error'])}>\n {children}\n </div>\n );\n}\n\nexport default function InternalFormField({\n controlId,\n stretch = false,\n label,\n info,\n i18nStrings,\n children,\n secondaryControl,\n description,\n constraintText,\n errorText,\n __hideLabel,\n __internalRootRef = null,\n __disableGutters = false,\n ...rest\n}: InternalFormFieldProps) {\n const baseProps = getBaseProps(rest);\n const isRefresh = useVisualRefresh();\n\n const instanceUniqueId = useUniqueId('formField');\n const generatedControlId = controlId || instanceUniqueId;\n const formFieldId = controlId || generatedControlId;\n\n const { funnelInteractionId, stepNumber, stepNameSelector, subStepSelector, subStepNameSelector } =\n useFunnelSubStep();\n\n const slotIds = getSlotIds(formFieldId, label, description, constraintText, errorText);\n\n const ariaDescribedBy = getAriaDescribedBy(slotIds);\n\n const gridDefinition = getGridDefinition(stretch, !!secondaryControl, isRefresh);\n\n const {\n ariaLabelledby: parentAriaLabelledby,\n ariaDescribedby: parentAriaDescribedby,\n invalid: parentInvalid,\n } = useFormFieldContext({});\n\n const contextValuesWithoutControlId = {\n ariaLabelledby: joinStrings(parentAriaLabelledby, slotIds.label) || undefined,\n ariaDescribedby: joinStrings(parentAriaDescribedby, ariaDescribedBy) || undefined,\n invalid: !!errorText || !!parentInvalid,\n };\n\n const analyticsAttributes = {\n [DATA_ATTR_FIELD_LABEL]: slotIds.label ? getFieldSlotSeletor(slotIds.label) : undefined,\n [DATA_ATTR_FIELD_ERROR]: slotIds.error ? getFieldSlotSeletor(slotIds.error) : undefined,\n };\n\n useEffect(() => {\n if (funnelInteractionId && errorText) {\n FunnelMetrics.funnelSubStepError({\n funnelInteractionId,\n subStepSelector,\n subStepNameSelector,\n stepNumber,\n stepNameSelector,\n fieldErrorSelector: getFieldSlotSeletor(slotIds.error),\n fieldLabelSelector: getFieldSlotSeletor(slotIds.label),\n subStepAllSelector: getSubStepAllSelector(),\n });\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [funnelInteractionId, errorText]);\n\n return (\n <div\n {...baseProps}\n className={clsx(baseProps.className, styles.root)}\n ref={__internalRootRef}\n {...analyticsAttributes}\n >\n <div className={clsx(__hideLabel && styles['visually-hidden'])}>\n {label && (\n <label className={styles.label} id={slotIds.label} htmlFor={generatedControlId}>\n {label}\n </label>\n )}\n <InfoLinkLabelContext.Provider value={slotIds.label}>\n {!__hideLabel && info && <span className={styles.info}>{info}</span>}\n </InfoLinkLabelContext.Provider>\n </div>\n\n {description && (\n <div className={styles.description} id={slotIds.description}>\n {description}\n </div>\n )}\n\n <div className={clsx(styles.controls, __hideLabel && styles['label-hidden'])}>\n <InternalGrid gridDefinition={gridDefinition} disableGutters={__disableGutters}>\n <FormFieldContext.Provider\n value={{\n controlId: generatedControlId,\n ...contextValuesWithoutControlId,\n }}\n >\n {children && <div className={styles.control}>{children}</div>}\n </FormFieldContext.Provider>\n\n {secondaryControl && (\n <FormFieldContext.Provider value={contextValuesWithoutControlId}>\n <div className={styles['secondary-control']}>{secondaryControl}</div>\n </FormFieldContext.Provider>\n )}\n </InternalGrid>\n </div>\n\n {(constraintText || errorText) && (\n <div className={styles.hints}>\n {errorText && (\n <FormFieldError id={slotIds.error} errorIconAriaLabel={i18nStrings?.errorIconAriaLabel}>\n {errorText}\n </FormFieldError>\n )}\n {constraintText && (\n <ConstraintText id={slotIds.constraint} hasError={!!errorText}>\n {constraintText}\n </ConstraintText>\n )}\n </div>\n )}\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"internal.js","sourceRoot":"lib/default/","sources":["form-field/internal.tsx"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC/F,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAErE,OAAO,YAAY,MAAM,kBAAkB,CAAC;AAC5C,OAAO,YAAY,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAE3E,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAErC,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AAEnF,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,iCAAiC,CAAC;AAQzC,MAAM,UAAU,cAAc,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,kBAAkB,EAAuB;IACtF,MAAM,IAAI,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;IAE3C,OAAO,CACL,6BAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK;QAClC,6BAAK,SAAS,EAAE,MAAM,CAAC,0BAA0B,CAAC;YAChD,6BACE,IAAI,EAAC,KAAK,gBACE,IAAI,CAAC,gCAAgC,EAAE,kBAAkB,CAAC,EACtE,SAAS,EAAE,MAAM,CAAC,0BAA0B,CAAC;gBAE7C,oBAAC,YAAY,IAAC,IAAI,EAAC,gBAAgB,EAAC,IAAI,EAAC,OAAO,GAAG,CAC/C,CACF;QACN,8BAAM,SAAS,EAAE,MAAM,CAAC,cAAc,IAAG,QAAQ,CAAQ,CACrD,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,EAC7B,EAAE,EACF,QAAQ,EACR,QAAQ,GAKT;IACC,OAAO,CACL,6BAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,IAAI,MAAM,CAAC,sBAAsB,CAAC,CAAC,IACxF,QAAQ,CACL,CACP,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EAejB;QAfiB,EACxC,SAAS,EACT,OAAO,GAAG,KAAK,EACf,KAAK,EACL,IAAI,EACJ,WAAW,EACX,QAAQ,EACR,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,SAAS,EACT,WAAW,EACX,iBAAiB,GAAG,IAAI,EACxB,gBAAgB,GAAG,KAAK,OAED,EADpB,IAAI,cAdiC,8LAezC,CADQ;IAEP,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,gBAAgB,EAAE,CAAC;IAErC,MAAM,gBAAgB,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;IAClD,MAAM,kBAAkB,GAAG,SAAS,IAAI,gBAAgB,CAAC;IACzD,MAAM,WAAW,GAAG,SAAS,IAAI,kBAAkB,CAAC;IAEpD,MAAM,EAAE,mBAAmB,EAAE,UAAU,EAAE,gBAAgB,EAAE,eAAe,EAAE,mBAAmB,EAAE,GAC/F,gBAAgB,EAAE,CAAC;IAErB,MAAM,OAAO,GAAG,UAAU,CAAC,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC;IAEvF,MAAM,eAAe,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAEpD,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;IAEjF,MAAM,EACJ,cAAc,EAAE,oBAAoB,EACpC,eAAe,EAAE,qBAAqB,EACtC,OAAO,EAAE,aAAa,GACvB,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAC;IAE5B,MAAM,6BAA6B,GAAG;QACpC,cAAc,EAAE,WAAW,CAAC,oBAAoB,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,SAAS;QAC7E,eAAe,EAAE,WAAW,CAAC,qBAAqB,EAAE,eAAe,CAAC,IAAI,SAAS;QACjF,OAAO,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,aAAa;KACxC,CAAC;IAEF,MAAM,mBAAmB,GAAG;QAC1B,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;QACvF,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;KACxF,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,mBAAmB,IAAI,SAAS,EAAE;YACpC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;YACvD,MAAM,WAAW,GAAG,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;YAE7D,aAAa,CAAC,kBAAkB,CAAC;gBAC/B,mBAAmB;gBACnB,eAAe;gBACf,WAAW;gBACX,mBAAmB;gBACnB,UAAU;gBACV,QAAQ;gBACR,gBAAgB;gBAChB,kBAAkB,EAAE,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC;gBACtD,kBAAkB,EAAE,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC;gBACtD,kBAAkB,EAAE,qBAAqB,EAAE;aAC5C,CAAC,CAAC;SACJ;QAED,uDAAuD;IACzD,CAAC,EAAE,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC,CAAC;IAErC,OAAO,CACL,6CACM,SAAS,IACb,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,EACjD,GAAG,EAAE,iBAAiB,IAClB,mBAAmB;QAEvB,6BAAK,SAAS,EAAE,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC,iBAAiB,CAAC,CAAC;YAC3D,KAAK,IAAI,CACR,+BAAO,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,kBAAkB,IAC3E,KAAK,CACA,CACT;YACD,oBAAC,oBAAoB,CAAC,QAAQ,IAAC,KAAK,EAAE,OAAO,CAAC,KAAK,IAChD,CAAC,WAAW,IAAI,IAAI,IAAI,8BAAM,SAAS,EAAE,MAAM,CAAC,IAAI,IAAG,IAAI,CAAQ,CACtC,CAC5B;QAEL,WAAW,IAAI,CACd,6BAAK,SAAS,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE,EAAE,OAAO,CAAC,WAAW,IACxD,WAAW,CACR,CACP;QAED,6BAAK,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,WAAW,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC;YAC1E,oBAAC,YAAY,IAAC,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,gBAAgB;gBAC5E,oBAAC,gBAAgB,CAAC,QAAQ,IACxB,KAAK,kBACH,SAAS,EAAE,kBAAkB,IAC1B,6BAA6B,KAGjC,QAAQ,IAAI,6BAAK,SAAS,EAAE,MAAM,CAAC,OAAO,IAAG,QAAQ,CAAO,CACnC;gBAE3B,gBAAgB,IAAI,CACnB,oBAAC,gBAAgB,CAAC,QAAQ,IAAC,KAAK,EAAE,6BAA6B;oBAC7D,6BAAK,SAAS,EAAE,MAAM,CAAC,mBAAmB,CAAC,IAAG,gBAAgB,CAAO,CAC3C,CAC7B,CACY,CACX;QAEL,CAAC,cAAc,IAAI,SAAS,CAAC,IAAI,CAChC,6BAAK,SAAS,EAAE,MAAM,CAAC,KAAK;YACzB,SAAS,IAAI,CACZ,oBAAC,cAAc,IAAC,EAAE,EAAE,OAAO,CAAC,KAAK,EAAE,kBAAkB,EAAE,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,kBAAkB,IACnF,SAAS,CACK,CAClB;YACA,cAAc,IAAI,CACjB,oBAAC,cAAc,IAAC,EAAE,EAAE,OAAO,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC,SAAS,IAC1D,cAAc,CACA,CAClB,CACG,CACP,CACG,CACP,CAAC;AACJ,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useEffect } from 'react';\nimport clsx from 'clsx';\n\nimport { getBaseProps } from '../internal/base-component';\nimport { FormFieldContext, useFormFieldContext } from '../internal/context/form-field-context';\nimport { useUniqueId } from '../internal/hooks/use-unique-id';\nimport { useVisualRefresh } from '../internal/hooks/use-visual-mode';\n\nimport InternalGrid from '../grid/internal';\nimport InternalIcon from '../icon/internal';\nimport { getAriaDescribedBy, getGridDefinition, getSlotIds } from './util';\n\nimport styles from './styles.css.js';\nimport { InternalFormFieldProps } from './interfaces';\nimport { joinStrings } from '../internal/utils/strings';\nimport { useInternalI18n } from '../internal/i18n/context';\nimport { InfoLinkLabelContext } from '../internal/context/info-link-label-context';\n\nimport { FunnelMetrics } from '../internal/analytics';\nimport { useFunnelSubStep } from '../internal/analytics/hooks/use-funnel';\nimport {\n DATA_ATTR_FIELD_ERROR,\n DATA_ATTR_FIELD_LABEL,\n getFieldSlotSeletor,\n getNameFromSelector,\n getSubStepAllSelector,\n} from '../internal/analytics/selectors';\n\ninterface FormFieldErrorProps {\n id?: string;\n children?: React.ReactNode;\n errorIconAriaLabel?: string;\n}\n\nexport function FormFieldError({ id, children, errorIconAriaLabel }: FormFieldErrorProps) {\n const i18n = useInternalI18n('form-field');\n\n return (\n <div id={id} className={styles.error}>\n <div className={styles['error-icon-shake-wrapper']}>\n <div\n role=\"img\"\n aria-label={i18n('i18nStrings.errorIconAriaLabel', errorIconAriaLabel)}\n className={styles['error-icon-scale-wrapper']}\n >\n <InternalIcon name=\"status-warning\" size=\"small\" />\n </div>\n </div>\n <span className={styles.error__message}>{children}</span>\n </div>\n );\n}\n\nexport function ConstraintText({\n id,\n hasError,\n children,\n}: {\n id?: string;\n hasError: boolean;\n children: React.ReactNode;\n}) {\n return (\n <div id={id} className={clsx(styles.constraint, hasError && styles['constraint-has-error'])}>\n {children}\n </div>\n );\n}\n\nexport default function InternalFormField({\n controlId,\n stretch = false,\n label,\n info,\n i18nStrings,\n children,\n secondaryControl,\n description,\n constraintText,\n errorText,\n __hideLabel,\n __internalRootRef = null,\n __disableGutters = false,\n ...rest\n}: InternalFormFieldProps) {\n const baseProps = getBaseProps(rest);\n const isRefresh = useVisualRefresh();\n\n const instanceUniqueId = useUniqueId('formField');\n const generatedControlId = controlId || instanceUniqueId;\n const formFieldId = controlId || generatedControlId;\n\n const { funnelInteractionId, stepNumber, stepNameSelector, subStepSelector, subStepNameSelector } =\n useFunnelSubStep();\n\n const slotIds = getSlotIds(formFieldId, label, description, constraintText, errorText);\n\n const ariaDescribedBy = getAriaDescribedBy(slotIds);\n\n const gridDefinition = getGridDefinition(stretch, !!secondaryControl, isRefresh);\n\n const {\n ariaLabelledby: parentAriaLabelledby,\n ariaDescribedby: parentAriaDescribedby,\n invalid: parentInvalid,\n } = useFormFieldContext({});\n\n const contextValuesWithoutControlId = {\n ariaLabelledby: joinStrings(parentAriaLabelledby, slotIds.label) || undefined,\n ariaDescribedby: joinStrings(parentAriaDescribedby, ariaDescribedBy) || undefined,\n invalid: !!errorText || !!parentInvalid,\n };\n\n const analyticsAttributes = {\n [DATA_ATTR_FIELD_LABEL]: slotIds.label ? getFieldSlotSeletor(slotIds.label) : undefined,\n [DATA_ATTR_FIELD_ERROR]: slotIds.error ? getFieldSlotSeletor(slotIds.error) : undefined,\n };\n\n useEffect(() => {\n if (funnelInteractionId && errorText) {\n const stepName = getNameFromSelector(stepNameSelector);\n const subStepName = getNameFromSelector(subStepNameSelector);\n\n FunnelMetrics.funnelSubStepError({\n funnelInteractionId,\n subStepSelector,\n subStepName,\n subStepNameSelector,\n stepNumber,\n stepName,\n stepNameSelector,\n fieldErrorSelector: getFieldSlotSeletor(slotIds.error),\n fieldLabelSelector: getFieldSlotSeletor(slotIds.label),\n subStepAllSelector: getSubStepAllSelector(),\n });\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [funnelInteractionId, errorText]);\n\n return (\n <div\n {...baseProps}\n className={clsx(baseProps.className, styles.root)}\n ref={__internalRootRef}\n {...analyticsAttributes}\n >\n <div className={clsx(__hideLabel && styles['visually-hidden'])}>\n {label && (\n <label className={styles.label} id={slotIds.label} htmlFor={generatedControlId}>\n {label}\n </label>\n )}\n <InfoLinkLabelContext.Provider value={slotIds.label}>\n {!__hideLabel && info && <span className={styles.info}>{info}</span>}\n </InfoLinkLabelContext.Provider>\n </div>\n\n {description && (\n <div className={styles.description} id={slotIds.description}>\n {description}\n </div>\n )}\n\n <div className={clsx(styles.controls, __hideLabel && styles['label-hidden'])}>\n <InternalGrid gridDefinition={gridDefinition} disableGutters={__disableGutters}>\n <FormFieldContext.Provider\n value={{\n controlId: generatedControlId,\n ...contextValuesWithoutControlId,\n }}\n >\n {children && <div className={styles.control}>{children}</div>}\n </FormFieldContext.Provider>\n\n {secondaryControl && (\n <FormFieldContext.Provider value={contextValuesWithoutControlId}>\n <div className={styles['secondary-control']}>{secondaryControl}</div>\n </FormFieldContext.Provider>\n )}\n </InternalGrid>\n </div>\n\n {(constraintText || errorText) && (\n <div className={styles.hints}>\n {errorText && (\n <FormFieldError id={slotIds.error} errorIconAriaLabel={i18nStrings?.errorIconAriaLabel}>\n {errorText}\n </FormFieldError>\n )}\n {constraintText && (\n <ConstraintText id={slotIds.constraint} hasError={!!errorText}>\n {constraintText}\n </ConstraintText>\n )}\n </div>\n )}\n </div>\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"analytics-funnel.d.ts","sourceRoot":"lib/default/","sources":["internal/analytics/components/analytics-funnel.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAE3D,OAAO,EAKL,sBAAsB,EACvB,MAAM,8BAA8B,CAAC;AAQtC,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAU7D,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,gBA2D3E,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,+CAAgD,wBAAwB,gBAqCvG,CAAC;AACF,UAAU,2BAA2B;IACnC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,eAAO,MAAM,sBAAsB,iBAAkB,2BAA2B,gBAsB/E,CAAC"}
1
+ {"version":3,"file":"analytics-funnel.d.ts","sourceRoot":"lib/default/","sources":["internal/analytics/components/analytics-funnel.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAE3D,OAAO,EAKL,sBAAsB,EACvB,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,gBA2D3E,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,+CAAgD,wBAAwB,gBAyCvG,CAAC;AACF,UAAU,2BAA2B;IACnC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,eAAO,MAAM,sBAAsB,iBAAkB,2BAA2B,gBAsB/E,CAAC"}
@@ -8,7 +8,7 @@ import { useUniqueId } from '../../hooks/use-unique-id';
8
8
  import { useVisualRefresh } from '../../hooks/use-visual-mode';
9
9
  import { PACKAGE_VERSION } from '../../environment';
10
10
  import { FunnelMetrics } from '../';
11
- import { DATA_ATTR_FUNNEL_STEP, getFunnelNameSelector, getSubStepAllSelector, getSubStepNameSelector, getSubStepSelector, } from '../selectors';
11
+ import { DATA_ATTR_FUNNEL_STEP, getFunnelNameSelector, getNameFromSelector, getSubStepAllSelector, getSubStepNameSelector, getSubStepSelector, } from '../selectors';
12
12
  export const FUNNEL_VERSION = '1.0';
13
13
  export const AnalyticsFunnel = (_a) => {
14
14
  var { children } = _a, props = __rest(_a, ["children"]);
@@ -72,10 +72,12 @@ export const AnalyticsFunnelStep = ({ children, stepNumber, stepNameSelector })
72
72
  // to record the beginning of the interaction with the current step.
73
73
  // On unmount, it does a similar thing but this time calling 'funnelStepComplete' to record the completion of the interaction.
74
74
  useEffect(() => {
75
+ const stepName = getNameFromSelector(stepNameSelector);
75
76
  if (funnelInteractionId) {
76
77
  FunnelMetrics.funnelStepStart({
77
78
  funnelInteractionId,
78
79
  stepNumber,
80
+ stepName,
79
81
  stepNameSelector,
80
82
  subStepAllSelector: getSubStepAllSelector(),
81
83
  });
@@ -85,6 +87,7 @@ export const AnalyticsFunnelStep = ({ children, stepNumber, stepNameSelector })
85
87
  FunnelMetrics.funnelStepComplete({
86
88
  funnelInteractionId,
87
89
  stepNumber,
90
+ stepName,
88
91
  stepNameSelector,
89
92
  subStepAllSelector: getSubStepAllSelector(),
90
93
  });
@@ -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, { useEffect, useRef, useState } from 'react';\n\nimport {\n FunnelStepContext,\n FunnelSubStepContext,\n FunnelContext,\n FunnelContextValue,\n FunnelStepContextValue,\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 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 funnelResultRef = useRef<boolean>(false);\n const isVisualRefresh = useVisualRefresh();\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 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 return () => {\n if (funnelResultRef.current === true) {\n FunnelMetrics.funnelSuccessful({ funnelInteractionId });\n } else {\n FunnelMetrics.funnelCancelled({ funnelInteractionId });\n }\n };\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const funnelSubmit = () => {\n FunnelMetrics.funnelComplete({ funnelInteractionId });\n funnelResultRef.current = true;\n };\n\n const funnelCancel = () => {\n funnelResultRef.current = false;\n };\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 };\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 = ({ children, stepNumber, stepNameSelector }: AnalyticsFunnelStepProps) => {\n const { funnelInteractionId } = useFunnel();\n\n const funnelStepProps = { [DATA_ATTR_FUNNEL_STEP]: stepNumber };\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 if (funnelInteractionId) {\n FunnelMetrics.funnelStepStart({\n funnelInteractionId,\n stepNumber,\n stepNameSelector,\n subStepAllSelector: getSubStepAllSelector(),\n });\n }\n\n return () => {\n if (funnelInteractionId) {\n FunnelMetrics.funnelStepComplete({\n funnelInteractionId,\n stepNumber,\n stepNameSelector,\n subStepAllSelector: getSubStepAllSelector(),\n });\n }\n };\n }, [funnelInteractionId, stepNumber, stepNameSelector]);\n\n const contextValue: FunnelStepContextValue = { funnelInteractionId, stepNumber, stepNameSelector, funnelStepProps };\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 { funnelInteractionId } = useFunnel();\n const { stepNumber, stepNameSelector } = useFunnelStep();\n\n const subStepId = useUniqueId('substep');\n const subStepSelector = getSubStepSelector(subStepId);\n const subStepNameSelector = getSubStepNameSelector(subStepId);\n\n return (\n <FunnelSubStepContext.Provider\n value={{\n funnelInteractionId,\n stepNumber,\n stepNameSelector,\n subStepSelector,\n subStepNameSelector,\n subStepId,\n }}\n >\n {children}\n </FunnelSubStepContext.Provider>\n );\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, { useEffect, useRef, useState } from 'react';\n\nimport {\n FunnelStepContext,\n FunnelSubStepContext,\n FunnelContext,\n FunnelContextValue,\n FunnelStepContextValue,\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 funnelResultRef = useRef<boolean>(false);\n const isVisualRefresh = useVisualRefresh();\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 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 return () => {\n if (funnelResultRef.current === true) {\n FunnelMetrics.funnelSuccessful({ funnelInteractionId });\n } else {\n FunnelMetrics.funnelCancelled({ funnelInteractionId });\n }\n };\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const funnelSubmit = () => {\n FunnelMetrics.funnelComplete({ funnelInteractionId });\n funnelResultRef.current = true;\n };\n\n const funnelCancel = () => {\n funnelResultRef.current = false;\n };\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 };\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 = ({ children, stepNumber, stepNameSelector }: AnalyticsFunnelStepProps) => {\n const { funnelInteractionId } = useFunnel();\n\n const funnelStepProps = { [DATA_ATTR_FUNNEL_STEP]: stepNumber };\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) {\n FunnelMetrics.funnelStepStart({\n funnelInteractionId,\n stepNumber,\n stepName,\n stepNameSelector,\n subStepAllSelector: getSubStepAllSelector(),\n });\n }\n\n return () => {\n if (funnelInteractionId) {\n FunnelMetrics.funnelStepComplete({\n funnelInteractionId,\n stepNumber,\n stepName,\n stepNameSelector,\n subStepAllSelector: getSubStepAllSelector(),\n });\n }\n };\n }, [funnelInteractionId, stepNumber, stepNameSelector]);\n\n const contextValue: FunnelStepContextValue = { funnelInteractionId, stepNumber, stepNameSelector, funnelStepProps };\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 { funnelInteractionId } = useFunnel();\n const { stepNumber, stepNameSelector } = useFunnelStep();\n\n const subStepId = useUniqueId('substep');\n const subStepSelector = getSubStepSelector(subStepId);\n const subStepNameSelector = getSubStepNameSelector(subStepId);\n\n return (\n <FunnelSubStepContext.Provider\n value={{\n funnelInteractionId,\n stepNumber,\n stepNameSelector,\n subStepSelector,\n subStepNameSelector,\n subStepId,\n }}\n >\n {children}\n </FunnelSubStepContext.Provider>\n );\n};\n"]}