@cloudscape-design/components 3.0.328 → 3.0.330

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 (92) hide show
  1. package/app-layout/runtime-api.d.ts.map +1 -1
  2. package/app-layout/runtime-api.js +5 -4
  3. package/app-layout/runtime-api.js.map +1 -1
  4. package/app-layout/visual-refresh/styles.css.js +69 -69
  5. package/app-layout/visual-refresh/styles.scoped.css +167 -167
  6. package/app-layout/visual-refresh/styles.selectors.js +69 -69
  7. package/area-chart/chart-container.d.ts.map +1 -1
  8. package/area-chart/chart-container.js +8 -15
  9. package/area-chart/chart-container.js.map +1 -1
  10. package/area-chart/internal.d.ts.map +1 -1
  11. package/area-chart/internal.js +2 -16
  12. package/area-chart/internal.js.map +1 -1
  13. package/area-chart/styles.css.js +6 -13
  14. package/area-chart/styles.scoped.css +10 -82
  15. package/area-chart/styles.selectors.js +6 -13
  16. package/expandable-section/styles.css.js +28 -31
  17. package/expandable-section/styles.scoped.css +85 -66
  18. package/expandable-section/styles.selectors.js +28 -31
  19. package/form-field/internal.d.ts.map +1 -1
  20. package/form-field/internal.js +5 -1
  21. package/form-field/internal.js.map +1 -1
  22. package/internal/analytics/components/analytics-funnel.d.ts.map +1 -1
  23. package/internal/analytics/components/analytics-funnel.js +4 -1
  24. package/internal/analytics/components/analytics-funnel.js.map +1 -1
  25. package/internal/analytics/interfaces.d.ts +2 -0
  26. package/internal/analytics/interfaces.d.ts.map +1 -1
  27. package/internal/analytics/interfaces.js.map +1 -1
  28. package/internal/analytics/selectors.d.ts +1 -0
  29. package/internal/analytics/selectors.d.ts.map +1 -1
  30. package/internal/analytics/selectors.js +1 -0
  31. package/internal/analytics/selectors.js.map +1 -1
  32. package/internal/components/cartesian-chart/chart-container.d.ts +11 -0
  33. package/internal/components/cartesian-chart/chart-container.d.ts.map +1 -0
  34. package/internal/components/cartesian-chart/chart-container.js +15 -0
  35. package/internal/components/cartesian-chart/chart-container.js.map +1 -0
  36. package/internal/components/cartesian-chart/styles.css.js +23 -21
  37. package/internal/components/cartesian-chart/styles.scoped.css +37 -25
  38. package/internal/components/cartesian-chart/styles.selectors.js +23 -21
  39. package/internal/components/chart-wrapper/index.d.ts +17 -0
  40. package/internal/components/chart-wrapper/index.d.ts.map +1 -0
  41. package/internal/components/chart-wrapper/index.js +26 -0
  42. package/internal/components/chart-wrapper/index.js.map +1 -0
  43. package/internal/components/chart-wrapper/styles.css.js +11 -0
  44. package/internal/components/chart-wrapper/styles.scoped.css +155 -0
  45. package/internal/components/chart-wrapper/styles.selectors.js +12 -0
  46. package/internal/environment.js +1 -1
  47. package/internal/manifest.json +1 -1
  48. package/internal/plugins/drawers-controller.d.ts +2 -4
  49. package/internal/plugins/drawers-controller.d.ts.map +1 -1
  50. package/internal/plugins/drawers-controller.js.map +1 -1
  51. package/link/internal.d.ts.map +1 -1
  52. package/link/internal.js +9 -1
  53. package/link/internal.js.map +1 -1
  54. package/mixed-line-bar-chart/chart-container.d.ts.map +1 -1
  55. package/mixed-line-bar-chart/chart-container.js +12 -19
  56. package/mixed-line-bar-chart/chart-container.js.map +1 -1
  57. package/mixed-line-bar-chart/internal.d.ts.map +1 -1
  58. package/mixed-line-bar-chart/internal.js +10 -15
  59. package/mixed-line-bar-chart/internal.js.map +1 -1
  60. package/mixed-line-bar-chart/styles.css.js +11 -19
  61. package/mixed-line-bar-chart/styles.scoped.css +18 -94
  62. package/mixed-line-bar-chart/styles.selectors.js +11 -19
  63. package/package.json +1 -1
  64. package/pie-chart/index.d.ts.map +1 -1
  65. package/pie-chart/index.js +26 -14
  66. package/pie-chart/index.js.map +1 -1
  67. package/pie-chart/pie-chart.d.ts +5 -3
  68. package/pie-chart/pie-chart.d.ts.map +1 -1
  69. package/pie-chart/pie-chart.js +14 -40
  70. package/pie-chart/pie-chart.js.map +1 -1
  71. package/pie-chart/styles.css.js +23 -27
  72. package/pie-chart/styles.scoped.css +38 -94
  73. package/pie-chart/styles.selectors.js +23 -27
  74. package/table/body-cell/styles.css.js +28 -28
  75. package/table/body-cell/styles.scoped.css +75 -69
  76. package/table/body-cell/styles.selectors.js +28 -28
  77. package/test-utils/dom/mixed-line-bar-chart/index.js +2 -1
  78. package/test-utils/dom/mixed-line-bar-chart/index.js.map +1 -1
  79. package/test-utils/dom/pie-chart/index.js +2 -1
  80. package/test-utils/dom/pie-chart/index.js.map +1 -1
  81. package/test-utils/selectors/mixed-line-bar-chart/index.js +2 -1
  82. package/test-utils/selectors/mixed-line-bar-chart/index.js.map +1 -1
  83. package/test-utils/selectors/pie-chart/index.js +2 -1
  84. package/test-utils/selectors/pie-chart/index.js.map +1 -1
  85. package/test-utils/tsconfig.tsbuildinfo +1 -1
  86. package/wizard/internal.d.ts.map +1 -1
  87. package/wizard/internal.js +5 -2
  88. package/wizard/internal.js.map +1 -1
  89. package/mixed-line-bar-chart/chart-filters.d.ts +0 -13
  90. package/mixed-line-bar-chart/chart-filters.d.ts.map +0 -1
  91. package/mixed-line-bar-chart/chart-filters.js +0 -22
  92. package/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_xy8yt_97",
5
- "awsui-motion-fade-in": "awsui_awsui-motion-fade-in_gwq0h_xy8yt_1",
6
- "trigger-expanded": "awsui_trigger-expanded_gwq0h_xy8yt_119",
7
- "icon": "awsui_icon_gwq0h_xy8yt_133",
8
- "root": "awsui_root_gwq0h_xy8yt_151",
9
- "expand-button": "awsui_expand-button_gwq0h_xy8yt_168",
10
- "expanded": "awsui_expanded_gwq0h_xy8yt_175",
11
- "icon-container": "awsui_icon-container_gwq0h_xy8yt_179",
12
- "icon-container-container": "awsui_icon-container-container_gwq0h_xy8yt_184",
13
- "wrapper": "awsui_wrapper_gwq0h_xy8yt_188",
14
- "wrapper-default": "awsui_wrapper-default_gwq0h_xy8yt_195",
15
- "wrapper-footer": "awsui_wrapper-footer_gwq0h_xy8yt_198",
16
- "wrapper-navigation": "awsui_wrapper-navigation_gwq0h_xy8yt_204",
17
- "wrapper-container": "awsui_wrapper-container_gwq0h_xy8yt_207",
18
- "wrapper-expanded": "awsui_wrapper-expanded_gwq0h_xy8yt_224",
19
- "header": "awsui_header_gwq0h_xy8yt_228",
20
- "header-wrapper": "awsui_header-wrapper_gwq0h_xy8yt_231",
21
- "header-deprecated": "awsui_header-deprecated_gwq0h_xy8yt_231",
22
- "header-button": "awsui_header-button_gwq0h_xy8yt_241",
23
- "header-container-button": "awsui_header-container-button_gwq0h_xy8yt_245",
24
- "header-container": "awsui_header-container_gwq0h_xy8yt_245",
25
- "header-navigation": "awsui_header-navigation_gwq0h_xy8yt_269",
26
- "content": "awsui_content_gwq0h_xy8yt_97",
27
- "content-default": "awsui_content-default_gwq0h_xy8yt_305",
28
- "content-footer": "awsui_content-footer_gwq0h_xy8yt_308",
29
- "content-expanded": "awsui_content-expanded_gwq0h_xy8yt_311",
30
- "focusable": "awsui_focusable_gwq0h_xy8yt_315",
31
- "click-target": "awsui_click-target_gwq0h_xy8yt_326",
32
- "description-default": "awsui_description-default_gwq0h_xy8yt_333",
33
- "description-footer": "awsui_description-footer_gwq0h_xy8yt_334",
34
- "description-container": "awsui_description-container_gwq0h_xy8yt_338"
4
+ "content-enter": "awsui_content-enter_gwq0h_a11gk_97",
5
+ "awsui-motion-fade-in": "awsui_awsui-motion-fade-in_gwq0h_a11gk_1",
6
+ "trigger-expanded": "awsui_trigger-expanded_gwq0h_a11gk_119",
7
+ "icon": "awsui_icon_gwq0h_a11gk_133",
8
+ "root": "awsui_root_gwq0h_a11gk_151",
9
+ "expand-button": "awsui_expand-button_gwq0h_a11gk_168",
10
+ "expanded": "awsui_expanded_gwq0h_a11gk_175",
11
+ "icon-container": "awsui_icon-container_gwq0h_a11gk_179",
12
+ "icon-container-container": "awsui_icon-container-container_gwq0h_a11gk_184",
13
+ "wrapper": "awsui_wrapper_gwq0h_a11gk_188",
14
+ "wrapper-default": "awsui_wrapper-default_gwq0h_a11gk_195",
15
+ "wrapper-footer": "awsui_wrapper-footer_gwq0h_a11gk_195",
16
+ "wrapper-navigation": "awsui_wrapper-navigation_gwq0h_a11gk_198",
17
+ "wrapper-container": "awsui_wrapper-container_gwq0h_a11gk_201",
18
+ "header-deprecated": "awsui_header-deprecated_gwq0h_a11gk_217",
19
+ "wrapper-expanded": "awsui_wrapper-expanded_gwq0h_a11gk_248",
20
+ "header": "awsui_header_gwq0h_a11gk_217",
21
+ "header-wrapper": "awsui_header-wrapper_gwq0h_a11gk_255",
22
+ "header-button": "awsui_header-button_gwq0h_a11gk_265",
23
+ "header-container-button": "awsui_header-container-button_gwq0h_a11gk_265",
24
+ "header-container": "awsui_header-container_gwq0h_a11gk_265",
25
+ "header-navigation": "awsui_header-navigation_gwq0h_a11gk_297",
26
+ "content": "awsui_content_gwq0h_a11gk_97",
27
+ "content-default": "awsui_content-default_gwq0h_a11gk_333",
28
+ "content-footer": "awsui_content-footer_gwq0h_a11gk_336",
29
+ "content-expanded": "awsui_content-expanded_gwq0h_a11gk_339",
30
+ "focusable": "awsui_focusable_gwq0h_a11gk_343",
31
+ "click-target": "awsui_click-target_gwq0h_a11gk_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_xy8yt_97:not(#\9) {
98
- animation: awsui_awsui-motion-fade-in_gwq0h_xy8yt_1 var(--motion-duration-show-paced-uryptc, 180ms) var(--motion-easing-show-paced-tbgeqx, ease-out);
97
+ .awsui_content-enter_gwq0h_a11gk_97:not(#\9) {
98
+ animation: awsui_awsui-motion-fade-in_gwq0h_a11gk_1 var(--motion-duration-show-paced-uryptc, 180ms) var(--motion-easing-show-paced-tbgeqx, ease-out);
99
99
  }
100
- @keyframes awsui_awsui-motion-fade-in_gwq0h_xy8yt_1 {
100
+ @keyframes awsui_awsui-motion-fade-in_gwq0h_a11gk_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_xy8yt_97:not(#\9) {
109
+ .awsui_content-enter_gwq0h_a11gk_97:not(#\9) {
110
110
  animation: none;
111
111
  transition: none;
112
112
  }
113
113
  }
114
- .awsui-motion-disabled .awsui_content-enter_gwq0h_xy8yt_97:not(#\9), .awsui-mode-entering .awsui_content-enter_gwq0h_xy8yt_97:not(#\9) {
114
+ .awsui-motion-disabled .awsui_content-enter_gwq0h_a11gk_97:not(#\9), .awsui-mode-entering .awsui_content-enter_gwq0h_a11gk_97:not(#\9) {
115
115
  animation: none;
116
116
  transition: none;
117
117
  }
118
118
 
119
- .awsui_trigger-expanded_gwq0h_xy8yt_119:not(#\9) {
119
+ .awsui_trigger-expanded_gwq0h_a11gk_119:not(#\9) {
120
120
  transition: border-bottom-color var(--motion-duration-show-paced-uryptc, 180ms) var(--motion-easing-show-paced-tbgeqx, ease-out);
121
121
  }
122
122
  @media (prefers-reduced-motion: reduce) {
123
- .awsui_trigger-expanded_gwq0h_xy8yt_119:not(#\9) {
123
+ .awsui_trigger-expanded_gwq0h_a11gk_119:not(#\9) {
124
124
  animation: none;
125
125
  transition: none;
126
126
  }
127
127
  }
128
- .awsui-motion-disabled .awsui_trigger-expanded_gwq0h_xy8yt_119:not(#\9), .awsui-mode-entering .awsui_trigger-expanded_gwq0h_xy8yt_119:not(#\9) {
128
+ .awsui-motion-disabled .awsui_trigger-expanded_gwq0h_a11gk_119:not(#\9), .awsui-mode-entering .awsui_trigger-expanded_gwq0h_a11gk_119:not(#\9) {
129
129
  animation: none;
130
130
  transition: none;
131
131
  }
132
132
 
133
- .awsui_icon_gwq0h_xy8yt_133:not(#\9) {
133
+ .awsui_icon_gwq0h_a11gk_133:not(#\9) {
134
134
  transition: transform var(--motion-duration-rotate-90-jfxxiy, 135ms) var(--motion-easing-rotate-90-ax5lt7, cubic-bezier(0.165, 0.84, 0.44, 1));
135
135
  }
136
136
  @media (prefers-reduced-motion: reduce) {
137
- .awsui_icon_gwq0h_xy8yt_133:not(#\9) {
137
+ .awsui_icon_gwq0h_a11gk_133:not(#\9) {
138
138
  animation: none;
139
139
  transition: none;
140
140
  }
141
141
  }
142
- .awsui-motion-disabled .awsui_icon_gwq0h_xy8yt_133:not(#\9), .awsui-mode-entering .awsui_icon_gwq0h_xy8yt_133:not(#\9) {
142
+ .awsui-motion-disabled .awsui_icon_gwq0h_a11gk_133:not(#\9), .awsui-mode-entering .awsui_icon_gwq0h_a11gk_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_xy8yt_151:not(#\9) {
151
+ .awsui_root_gwq0h_a11gk_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_xy8yt_168:not(#\9) {
194
+ .awsui_expand-button_gwq0h_a11gk_168:not(#\9) {
195
195
  /* used in test-utils */
196
196
  }
197
197
 
198
- .awsui_icon_gwq0h_xy8yt_133:not(#\9) {
198
+ .awsui_icon_gwq0h_a11gk_133:not(#\9) {
199
199
  transform: rotate(-90deg);
200
200
  }
201
- .awsui_icon_gwq0h_xy8yt_133.awsui_expanded_gwq0h_xy8yt_175:not(#\9) {
201
+ .awsui_icon_gwq0h_a11gk_133.awsui_expanded_gwq0h_a11gk_175:not(#\9) {
202
202
  transform: rotate(0deg);
203
203
  }
204
204
 
205
- .awsui_icon-container_gwq0h_xy8yt_179:not(#\9) {
205
+ .awsui_icon-container_gwq0h_a11gk_179:not(#\9) {
206
206
  position: relative;
207
207
  margin-left: calc((var(--font-body-m-line-height-rfgrp9, 22px) - var(--size-icon-normal-jq6jat, 16px)) / -2);
208
208
  margin-right: calc(var(--space-xxs-ja5cp8, 4px) + var(--border-divider-list-width-um3zli, 1px));
209
209
  }
210
- .awsui_icon-container-container_gwq0h_xy8yt_184:not(#\9) {
210
+ .awsui_icon-container-container_gwq0h_a11gk_184:not(#\9) {
211
211
  margin-right: var(--space-xs-edba2s, 8px);
212
212
  }
213
213
 
214
- .awsui_wrapper_gwq0h_xy8yt_188:not(#\9) {
214
+ .awsui_wrapper_gwq0h_a11gk_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-rfgrp9, 22px);
219
219
  text-align: left;
220
220
  }
221
- .awsui_wrapper-default_gwq0h_xy8yt_195:not(#\9) {
222
- padding: var(--space-scaled-xxs-t2t62i, 4px) var(--space-xxs-ja5cp8, 4px);
223
- }
224
- .awsui_wrapper-footer_gwq0h_xy8yt_198:not(#\9) {
225
- padding: var(--space-scaled-xxs-t2t62i, 4px) 0;
226
- }
227
- .awsui_wrapper-default_gwq0h_xy8yt_195:not(#\9), .awsui_wrapper-footer_gwq0h_xy8yt_198:not(#\9) {
221
+ .awsui_wrapper-default_gwq0h_a11gk_195:not(#\9), .awsui_wrapper-footer_gwq0h_a11gk_195:not(#\9) {
228
222
  border: var(--border-divider-section-width-orq175, 2px) solid transparent;
229
223
  }
230
- .awsui_wrapper-navigation_gwq0h_xy8yt_204:not(#\9) {
224
+ .awsui_wrapper-navigation_gwq0h_a11gk_198:not(#\9) {
231
225
  border-left: var(--border-divider-section-width-orq175, 2px) solid transparent;
232
226
  }
233
- .awsui_wrapper-navigation_gwq0h_xy8yt_204:not(#\9), .awsui_wrapper-container_gwq0h_xy8yt_207:not(#\9) {
227
+ .awsui_wrapper-navigation_gwq0h_a11gk_198:not(#\9), .awsui_wrapper-container_gwq0h_a11gk_201:not(#\9) {
234
228
  display: flex;
235
229
  font-weight: var(--font-heading-s-weight-5y5giq, 800);
236
230
  }
237
- .awsui_wrapper-default_gwq0h_xy8yt_195:not(#\9), .awsui_wrapper-navigation_gwq0h_xy8yt_204:not(#\9), .awsui_wrapper-footer_gwq0h_xy8yt_198:not(#\9) {
231
+ .awsui_wrapper-default_gwq0h_a11gk_195:not(#\9), .awsui_wrapper-navigation_gwq0h_a11gk_198:not(#\9), .awsui_wrapper-footer_gwq0h_a11gk_195:not(#\9) {
238
232
  color: var(--color-text-expandable-section-default-m3lg7r, #000716);
239
233
  -webkit-font-smoothing: var(--font-smoothing-webkit-fyh4as, antialiased);
240
234
  -moz-osx-font-smoothing: var(--font-smoothing-moz-osx-pa2uqe, grayscale);
241
235
  font-size: var(--font-expandable-heading-size-mkp9vq, 16px);
242
236
  letter-spacing: var(--font-heading-s-letter-spacing-j4vcrt, -0.005em);
243
237
  }
244
- .awsui_wrapper-container_gwq0h_xy8yt_207:not(#\9) {
245
- padding: var(--space-container-header-vertical-di96ce, 12px) var(--space-container-horizontal-jxdgil, 20px);
238
+ .awsui_wrapper-default_gwq0h_a11gk_195:not(#\9) {
239
+ padding-top: var(--space-scaled-xxs-t2t62i, 4px);
240
+ padding-bottom: var(--space-scaled-xxs-t2t62i, 4px);
241
+ padding-right: var(--space-xxs-ja5cp8, 4px);
242
+ }
243
+ .awsui_wrapper-default_gwq0h_a11gk_195.awsui_header-deprecated_gwq0h_a11gk_217:not(#\9) {
244
+ padding-left: var(--space-xxs-ja5cp8, 4px);
245
+ }
246
+ .awsui_wrapper-default_gwq0h_a11gk_195:not(#\9):not(.awsui_header-deprecated_gwq0h_a11gk_217) {
247
+ padding-left: calc(var(--space-xxs-ja5cp8, 4px) + calc(var(--size-icon-normal-jq6jat, 16px) + (var(--font-body-m-line-height-rfgrp9, 22px) - var(--size-icon-normal-jq6jat, 16px)) / -2 + var(--space-xxs-ja5cp8, 4px) + var(--border-divider-list-width-um3zli, 1px)));
248
+ }
249
+ .awsui_wrapper-footer_gwq0h_a11gk_195:not(#\9) {
250
+ padding-top: var(--space-scaled-xxs-t2t62i, 4px);
251
+ padding-bottom: var(--space-scaled-xxs-t2t62i, 4px);
252
+ padding-right: 0;
253
+ }
254
+ .awsui_wrapper-footer_gwq0h_a11gk_195.awsui_header-deprecated_gwq0h_a11gk_217:not(#\9) {
255
+ padding-left: 0;
246
256
  }
247
- body[data-awsui-focus-visible=true] .awsui_wrapper-container_gwq0h_xy8yt_207:not(#\9):focus {
257
+ .awsui_wrapper-footer_gwq0h_a11gk_195:not(#\9):not(.awsui_header-deprecated_gwq0h_a11gk_217) {
258
+ padding-left: calc(var(--size-icon-normal-jq6jat, 16px) + (var(--font-body-m-line-height-rfgrp9, 22px) - var(--size-icon-normal-jq6jat, 16px)) / -2 + var(--space-xxs-ja5cp8, 4px) + var(--border-divider-list-width-um3zli, 1px));
259
+ }
260
+ .awsui_wrapper-container_gwq0h_a11gk_201:not(#\9) {
261
+ padding-top: var(--space-container-header-vertical-di96ce, 12px);
262
+ padding-bottom: var(--space-container-header-vertical-di96ce, 12px);
263
+ padding-right: var(--space-container-horizontal-jxdgil, 20px);
264
+ }
265
+ .awsui_wrapper-container_gwq0h_a11gk_201.awsui_header-deprecated_gwq0h_a11gk_217:not(#\9) {
266
+ padding-left: var(--space-container-horizontal-jxdgil, 20px);
267
+ }
268
+ .awsui_wrapper-container_gwq0h_a11gk_201:not(#\9):not(.awsui_header-deprecated_gwq0h_a11gk_217) {
269
+ padding-left: calc(var(--space-container-horizontal-jxdgil, 20px) + calc(var(--size-icon-medium-x0iee8, 20px) + (var(--font-body-m-line-height-rfgrp9, 22px) - var(--size-icon-normal-jq6jat, 16px)) / -2 + var(--space-xs-edba2s, 8px)));
270
+ }
271
+ body[data-awsui-focus-visible=true] .awsui_wrapper-container_gwq0h_a11gk_201:not(#\9):focus {
248
272
  padding: calc(var(--space-scaled-s-913kwi, 12px) - var(--border-divider-section-width-orq175, 2px)) calc(var(--space-l-f4l5gr, 20px) - var(--border-divider-section-width-orq175, 2px));
249
273
  }
250
- .awsui_wrapper-default_gwq0h_xy8yt_195.awsui_wrapper-expanded_gwq0h_xy8yt_224:not(#\9) {
274
+ .awsui_wrapper-default_gwq0h_a11gk_195.awsui_wrapper-expanded_gwq0h_a11gk_248:not(#\9) {
251
275
  border-bottom-color: var(--color-border-divider-default-9o8zql, #e9ebed);
252
276
  }
253
277
 
254
- .awsui_header_gwq0h_xy8yt_228:not(#\9) {
278
+ .awsui_header_gwq0h_a11gk_217:not(#\9) {
255
279
  /* used in test-utils */
256
280
  }
257
- .awsui_header-wrapper_gwq0h_xy8yt_231:not(#\9), .awsui_header-deprecated_gwq0h_xy8yt_231:not(#\9) {
281
+ .awsui_header-wrapper_gwq0h_a11gk_255:not(#\9), .awsui_header-deprecated_gwq0h_a11gk_217:not(#\9) {
258
282
  display: flex;
259
283
  font-weight: var(--font-heading-s-weight-5y5giq, 800);
260
284
  }
261
- .awsui_header-wrapper_gwq0h_xy8yt_231:not(#\9) {
285
+ .awsui_header-wrapper_gwq0h_a11gk_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_xy8yt_241:not(#\9) {
268
- box-sizing: border-box;
269
- display: flex;
270
- }
271
- body[data-awsui-focus-visible=true] .awsui_header-button_gwq0h_xy8yt_241:not(#\9):focus, body[data-awsui-focus-visible=true] .awsui_header-container-button_gwq0h_xy8yt_245:not(#\9):focus {
291
+ body[data-awsui-focus-visible=true] .awsui_header-button_gwq0h_a11gk_265:not(#\9):focus, body[data-awsui-focus-visible=true] .awsui_header-container-button_gwq0h_a11gk_265:not(#\9):focus {
272
292
  position: relative;
273
293
  }
274
- body[data-awsui-focus-visible=true] .awsui_header-button_gwq0h_xy8yt_241:not(#\9):focus, body[data-awsui-focus-visible=true] .awsui_header-container-button_gwq0h_xy8yt_245:not(#\9):focus {
294
+ body[data-awsui-focus-visible=true] .awsui_header-button_gwq0h_a11gk_265:not(#\9):focus, body[data-awsui-focus-visible=true] .awsui_header-container-button_gwq0h_a11gk_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_xy8yt_241:not(#\9):focus::before, body[data-awsui-focus-visible=true] .awsui_header-container-button_gwq0h_xy8yt_245:not(#\9):focus::before {
298
+ body[data-awsui-focus-visible=true] .awsui_header-button_gwq0h_a11gk_265:not(#\9):focus::before, body[data-awsui-focus-visible=true] .awsui_header-container-button_gwq0h_a11gk_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_xy8yt_241:not(#\9
286
306
  border-radius: var(--border-radius-control-default-focus-ring-muizvi, 4px);
287
307
  box-shadow: 0 0 0 2px var(--color-border-item-focused-4t19h5, #0972d3);
288
308
  }
289
- .awsui_header-container_gwq0h_xy8yt_245:not(#\9) {
309
+ .awsui_header-button_gwq0h_a11gk_265:not(#\9) {
310
+ box-sizing: border-box;
311
+ display: flex;
312
+ margin-left: calc(-1 * calc(var(--size-icon-normal-jq6jat, 16px) + (var(--font-body-m-line-height-rfgrp9, 22px) - var(--size-icon-normal-jq6jat, 16px)) / -2 + var(--space-xxs-ja5cp8, 4px) + var(--border-divider-list-width-um3zli, 1px)));
313
+ }
314
+ .awsui_header-container-button_gwq0h_a11gk_265:not(#\9) {
315
+ margin-left: calc(-1 * calc(var(--size-icon-medium-x0iee8, 20px) + (var(--font-body-m-line-height-rfgrp9, 22px) - var(--size-icon-normal-jq6jat, 16px)) / -2 + var(--space-xs-edba2s, 8px)));
316
+ }
317
+ .awsui_header-container_gwq0h_a11gk_265:not(#\9) {
290
318
  width: 100%;
291
319
  }
292
- .awsui_header-container_gwq0h_xy8yt_245 > .awsui_icon-container_gwq0h_xy8yt_179:not(#\9) {
320
+ .awsui_header-container_gwq0h_a11gk_265 > .awsui_icon-container_gwq0h_a11gk_179:not(#\9) {
293
321
  margin-top: var(--space-expandable-section-icon-offset-top-qfofw6, 4px);
294
322
  }
295
- .awsui_header-navigation_gwq0h_xy8yt_269 > .awsui_icon-container_gwq0h_xy8yt_179:not(#\9) {
323
+ .awsui_header-navigation_gwq0h_a11gk_297 > .awsui_icon-container_gwq0h_a11gk_179:not(#\9) {
296
324
  display: inline-flex;
297
325
  cursor: pointer;
298
326
  color: var(--color-text-expandable-section-navigation-icon-default-lzmj1u, #414d5c);
@@ -303,17 +331,17 @@ body[data-awsui-focus-visible=true] .awsui_header-button_gwq0h_xy8yt_241:not(#\9
303
331
  text-decoration: none;
304
332
  flex-direction: column;
305
333
  }
306
- .awsui_header-navigation_gwq0h_xy8yt_269 > .awsui_icon-container_gwq0h_xy8yt_179:not(#\9):hover {
334
+ .awsui_header-navigation_gwq0h_a11gk_297 > .awsui_icon-container_gwq0h_a11gk_179:not(#\9):hover {
307
335
  color: var(--color-text-expandable-section-hover-pux1oy, #0972d3);
308
336
  }
309
- body[data-awsui-focus-visible=true] .awsui_header-navigation_gwq0h_xy8yt_269 > .awsui_icon-container_gwq0h_xy8yt_179:not(#\9):focus {
337
+ body[data-awsui-focus-visible=true] .awsui_header-navigation_gwq0h_a11gk_297 > .awsui_icon-container_gwq0h_a11gk_179:not(#\9):focus {
310
338
  position: relative;
311
339
  }
312
- body[data-awsui-focus-visible=true] .awsui_header-navigation_gwq0h_xy8yt_269 > .awsui_icon-container_gwq0h_xy8yt_179:not(#\9):focus {
340
+ body[data-awsui-focus-visible=true] .awsui_header-navigation_gwq0h_a11gk_297 > .awsui_icon-container_gwq0h_a11gk_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_xy8yt_269 > .awsui_icon-container_gwq0h_xy8yt_179:not(#\9):focus::before {
344
+ body[data-awsui-focus-visible=true] .awsui_header-navigation_gwq0h_a11gk_297 > .awsui_icon-container_gwq0h_a11gk_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_xy8yt_269 > .
325
353
  box-shadow: 0 0 0 2px var(--color-border-item-focused-4t19h5, #0972d3);
326
354
  }
327
355
 
328
- .awsui_content_gwq0h_xy8yt_97:not(#\9) {
356
+ .awsui_content_gwq0h_a11gk_97:not(#\9) {
329
357
  display: none;
330
358
  }
331
- .awsui_content-default_gwq0h_xy8yt_305:not(#\9) {
359
+ .awsui_content-default_gwq0h_a11gk_333:not(#\9) {
332
360
  padding: var(--space-scaled-xs-wbfgrv, 8px) 0;
333
361
  }
334
- .awsui_content-footer_gwq0h_xy8yt_308:not(#\9) {
362
+ .awsui_content-footer_gwq0h_a11gk_336:not(#\9) {
335
363
  padding: var(--space-xs-edba2s, 8px) 0;
336
364
  }
337
- .awsui_content-expanded_gwq0h_xy8yt_311:not(#\9) {
365
+ .awsui_content-expanded_gwq0h_a11gk_339:not(#\9) {
338
366
  display: block;
339
367
  }
340
368
 
341
- .awsui_focusable_gwq0h_xy8yt_315:not(#\9):focus {
369
+ .awsui_focusable_gwq0h_a11gk_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_xy8yt_315:not(#\9):focus {
373
+ body[data-awsui-focus-visible=true] .awsui_focusable_gwq0h_a11gk_343:not(#\9):focus {
346
374
  outline: 2px dotted transparent;
347
375
  border: var(--border-field-width-riro62, 2px) solid var(--color-border-item-focused-4t19h5, #0972d3);
348
376
  border-radius: var(--border-radius-control-default-focus-ring-muizvi, 4px);
349
377
  box-shadow: 0 0 0 var(--border-control-focus-ring-shadow-spread-cwek11, 0px) var(--color-border-item-focused-4t19h5, #0972d3);
350
378
  }
351
379
 
352
- .awsui_click-target_gwq0h_xy8yt_326:not(#\9) {
380
+ .awsui_click-target_gwq0h_a11gk_354:not(#\9) {
353
381
  cursor: pointer;
354
382
  }
355
- .awsui_click-target_gwq0h_xy8yt_326:not(#\9):not(.awsui_wrapper-container_gwq0h_xy8yt_207):not(.awsui_header-container-button_gwq0h_xy8yt_245):hover {
383
+ .awsui_click-target_gwq0h_a11gk_354:not(#\9):not(.awsui_wrapper-container_gwq0h_a11gk_201):not(.awsui_header-container-button_gwq0h_a11gk_265):hover {
356
384
  color: var(--color-text-expandable-section-hover-pux1oy, #0972d3);
357
- }
358
-
359
- .awsui_description-default_gwq0h_xy8yt_333:not(#\9),
360
- .awsui_description-footer_gwq0h_xy8yt_334:not(#\9) {
361
- padding-left: calc(var(--size-icon-normal-jq6jat, 16px) + (var(--font-body-m-line-height-rfgrp9, 22px) - var(--size-icon-normal-jq6jat, 16px)) / -2 + var(--space-xxs-ja5cp8, 4px) + var(--border-divider-list-width-um3zli, 1px));
362
- }
363
-
364
- .awsui_description-container_gwq0h_xy8yt_338:not(#\9) {
365
- padding-left: calc(var(--size-icon-medium-x0iee8, 20px) + (var(--font-body-m-line-height-rfgrp9, 22px) - var(--size-icon-normal-jq6jat, 16px)) / -2 + var(--space-xs-edba2s, 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_xy8yt_97",
6
- "awsui-motion-fade-in": "awsui_awsui-motion-fade-in_gwq0h_xy8yt_1",
7
- "trigger-expanded": "awsui_trigger-expanded_gwq0h_xy8yt_119",
8
- "icon": "awsui_icon_gwq0h_xy8yt_133",
9
- "root": "awsui_root_gwq0h_xy8yt_151",
10
- "expand-button": "awsui_expand-button_gwq0h_xy8yt_168",
11
- "expanded": "awsui_expanded_gwq0h_xy8yt_175",
12
- "icon-container": "awsui_icon-container_gwq0h_xy8yt_179",
13
- "icon-container-container": "awsui_icon-container-container_gwq0h_xy8yt_184",
14
- "wrapper": "awsui_wrapper_gwq0h_xy8yt_188",
15
- "wrapper-default": "awsui_wrapper-default_gwq0h_xy8yt_195",
16
- "wrapper-footer": "awsui_wrapper-footer_gwq0h_xy8yt_198",
17
- "wrapper-navigation": "awsui_wrapper-navigation_gwq0h_xy8yt_204",
18
- "wrapper-container": "awsui_wrapper-container_gwq0h_xy8yt_207",
19
- "wrapper-expanded": "awsui_wrapper-expanded_gwq0h_xy8yt_224",
20
- "header": "awsui_header_gwq0h_xy8yt_228",
21
- "header-wrapper": "awsui_header-wrapper_gwq0h_xy8yt_231",
22
- "header-deprecated": "awsui_header-deprecated_gwq0h_xy8yt_231",
23
- "header-button": "awsui_header-button_gwq0h_xy8yt_241",
24
- "header-container-button": "awsui_header-container-button_gwq0h_xy8yt_245",
25
- "header-container": "awsui_header-container_gwq0h_xy8yt_245",
26
- "header-navigation": "awsui_header-navigation_gwq0h_xy8yt_269",
27
- "content": "awsui_content_gwq0h_xy8yt_97",
28
- "content-default": "awsui_content-default_gwq0h_xy8yt_305",
29
- "content-footer": "awsui_content-footer_gwq0h_xy8yt_308",
30
- "content-expanded": "awsui_content-expanded_gwq0h_xy8yt_311",
31
- "focusable": "awsui_focusable_gwq0h_xy8yt_315",
32
- "click-target": "awsui_click-target_gwq0h_xy8yt_326",
33
- "description-default": "awsui_description-default_gwq0h_xy8yt_333",
34
- "description-footer": "awsui_description-footer_gwq0h_xy8yt_334",
35
- "description-container": "awsui_description-container_gwq0h_xy8yt_338"
5
+ "content-enter": "awsui_content-enter_gwq0h_a11gk_97",
6
+ "awsui-motion-fade-in": "awsui_awsui-motion-fade-in_gwq0h_a11gk_1",
7
+ "trigger-expanded": "awsui_trigger-expanded_gwq0h_a11gk_119",
8
+ "icon": "awsui_icon_gwq0h_a11gk_133",
9
+ "root": "awsui_root_gwq0h_a11gk_151",
10
+ "expand-button": "awsui_expand-button_gwq0h_a11gk_168",
11
+ "expanded": "awsui_expanded_gwq0h_a11gk_175",
12
+ "icon-container": "awsui_icon-container_gwq0h_a11gk_179",
13
+ "icon-container-container": "awsui_icon-container-container_gwq0h_a11gk_184",
14
+ "wrapper": "awsui_wrapper_gwq0h_a11gk_188",
15
+ "wrapper-default": "awsui_wrapper-default_gwq0h_a11gk_195",
16
+ "wrapper-footer": "awsui_wrapper-footer_gwq0h_a11gk_195",
17
+ "wrapper-navigation": "awsui_wrapper-navigation_gwq0h_a11gk_198",
18
+ "wrapper-container": "awsui_wrapper-container_gwq0h_a11gk_201",
19
+ "header-deprecated": "awsui_header-deprecated_gwq0h_a11gk_217",
20
+ "wrapper-expanded": "awsui_wrapper-expanded_gwq0h_a11gk_248",
21
+ "header": "awsui_header_gwq0h_a11gk_217",
22
+ "header-wrapper": "awsui_header-wrapper_gwq0h_a11gk_255",
23
+ "header-button": "awsui_header-button_gwq0h_a11gk_265",
24
+ "header-container-button": "awsui_header-container-button_gwq0h_a11gk_265",
25
+ "header-container": "awsui_header-container_gwq0h_a11gk_265",
26
+ "header-navigation": "awsui_header-navigation_gwq0h_a11gk_297",
27
+ "content": "awsui_content_gwq0h_a11gk_97",
28
+ "content-default": "awsui_content-default_gwq0h_a11gk_333",
29
+ "content-footer": "awsui_content-footer_gwq0h_a11gk_336",
30
+ "content-expanded": "awsui_content-expanded_gwq0h_a11gk_339",
31
+ "focusable": "awsui_focusable_gwq0h_a11gk_343",
32
+ "click-target": "awsui_click-target_gwq0h_a11gk_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":"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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 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"]}