@cloudscape-design/components 3.0.176 → 3.0.178

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 (285) hide show
  1. package/alert/styles.css.js +19 -19
  2. package/alert/styles.scoped.css +35 -31
  3. package/alert/styles.selectors.js +19 -19
  4. package/annotation-context/annotation/styles.css.js +24 -24
  5. package/annotation-context/annotation/styles.scoped.css +31 -29
  6. package/annotation-context/annotation/styles.selectors.js +24 -24
  7. package/area-chart/styles.css.js +13 -13
  8. package/area-chart/styles.scoped.css +18 -16
  9. package/area-chart/styles.selectors.js +13 -13
  10. package/attribute-editor/styles.css.js +14 -14
  11. package/attribute-editor/styles.scoped.css +26 -24
  12. package/attribute-editor/styles.selectors.js +14 -14
  13. package/autosuggest/internal.d.ts.map +1 -1
  14. package/autosuggest/internal.js +2 -2
  15. package/autosuggest/internal.js.map +1 -1
  16. package/badge/styles.css.js +5 -5
  17. package/badge/styles.scoped.css +7 -5
  18. package/badge/styles.selectors.js +5 -5
  19. package/box/styles.css.js +189 -189
  20. package/box/styles.scoped.css +236 -234
  21. package/box/styles.selectors.js +189 -189
  22. package/breadcrumb-group/styles.css.js +6 -6
  23. package/breadcrumb-group/styles.scoped.css +15 -11
  24. package/breadcrumb-group/styles.selectors.js +6 -6
  25. package/button/styles.css.js +18 -18
  26. package/button/styles.scoped.css +138 -136
  27. package/button/styles.selectors.js +18 -18
  28. package/button-dropdown/mobile-expandable-group/styles.css.js +5 -5
  29. package/button-dropdown/mobile-expandable-group/styles.scoped.css +7 -5
  30. package/button-dropdown/mobile-expandable-group/styles.selectors.js +5 -5
  31. package/calendar/styles.css.js +18 -18
  32. package/calendar/styles.scoped.css +40 -38
  33. package/calendar/styles.selectors.js +18 -18
  34. package/cards/styles.css.js +37 -37
  35. package/cards/styles.scoped.css +48 -44
  36. package/cards/styles.selectors.js +37 -37
  37. package/checkbox/styles.css.js +3 -3
  38. package/checkbox/styles.scoped.css +7 -5
  39. package/checkbox/styles.selectors.js +3 -3
  40. package/code-editor/styles.css.js +32 -32
  41. package/code-editor/styles.scoped.css +111 -109
  42. package/code-editor/styles.selectors.js +32 -32
  43. package/column-layout/styles.css.js +13 -13
  44. package/column-layout/styles.scoped.css +45 -43
  45. package/column-layout/styles.selectors.js +13 -13
  46. package/container/index.d.ts.map +1 -1
  47. package/container/index.js +1 -1
  48. package/container/index.js.map +1 -1
  49. package/container/styles.css.js +17 -17
  50. package/container/styles.scoped.css +29 -27
  51. package/container/styles.selectors.js +17 -17
  52. package/date-picker/styles.css.js +7 -7
  53. package/date-picker/styles.scoped.css +11 -9
  54. package/date-picker/styles.selectors.js +7 -7
  55. package/date-range-picker/styles.css.js +38 -38
  56. package/date-range-picker/styles.scoped.css +47 -45
  57. package/date-range-picker/styles.selectors.js +38 -38
  58. package/expandable-section/styles.css.js +21 -21
  59. package/expandable-section/styles.scoped.css +44 -42
  60. package/expandable-section/styles.selectors.js +21 -21
  61. package/flashbar/styles.css.js +33 -33
  62. package/flashbar/styles.scoped.css +117 -115
  63. package/flashbar/styles.selectors.js +33 -33
  64. package/form/styles.css.js +8 -8
  65. package/form/styles.scoped.css +10 -8
  66. package/form/styles.selectors.js +8 -8
  67. package/form-field/styles.css.js +19 -19
  68. package/form-field/styles.scoped.css +31 -29
  69. package/form-field/styles.selectors.js +19 -19
  70. package/grid/styles.css.js +53 -53
  71. package/grid/styles.scoped.css +56 -54
  72. package/grid/styles.selectors.js +53 -53
  73. package/header/styles.css.js +44 -44
  74. package/header/styles.scoped.css +49 -47
  75. package/header/styles.selectors.js +44 -44
  76. package/help-panel/styles.css.js +4 -4
  77. package/help-panel/styles.scoped.css +60 -58
  78. package/help-panel/styles.selectors.js +4 -4
  79. package/icon/icons.js +1 -1
  80. package/input/index.d.ts.map +1 -1
  81. package/input/index.js +2 -2
  82. package/input/index.js.map +1 -1
  83. package/input/interfaces.d.ts +4 -0
  84. package/input/interfaces.d.ts.map +1 -1
  85. package/input/interfaces.js.map +1 -1
  86. package/input/internal.d.ts +0 -1
  87. package/input/internal.d.ts.map +1 -1
  88. package/input/internal.js +16 -14
  89. package/input/internal.js.map +1 -1
  90. package/input/styles.css.js +12 -13
  91. package/input/styles.scoped.css +35 -41
  92. package/input/styles.selectors.js +12 -13
  93. package/internal/components/autosuggest-input/index.d.ts +1 -0
  94. package/internal/components/autosuggest-input/index.d.ts.map +1 -1
  95. package/internal/components/autosuggest-input/index.js +2 -2
  96. package/internal/components/autosuggest-input/index.js.map +1 -1
  97. package/internal/components/button-trigger/styles.css.js +9 -9
  98. package/internal/components/button-trigger/styles.scoped.css +25 -23
  99. package/internal/components/button-trigger/styles.selectors.js +9 -9
  100. package/internal/components/chart-filter/styles.css.js +3 -3
  101. package/internal/components/chart-filter/styles.scoped.css +5 -3
  102. package/internal/components/chart-filter/styles.selectors.js +3 -3
  103. package/internal/components/chart-legend/styles.css.js +6 -6
  104. package/internal/components/chart-legend/styles.scoped.css +17 -15
  105. package/internal/components/chart-legend/styles.selectors.js +6 -6
  106. package/internal/components/chart-popover/styles.css.js +3 -3
  107. package/internal/components/chart-popover/styles.scoped.css +5 -3
  108. package/internal/components/chart-popover/styles.selectors.js +3 -3
  109. package/internal/components/chart-series-details/styles.css.js +5 -5
  110. package/internal/components/chart-series-details/styles.scoped.css +12 -8
  111. package/internal/components/chart-series-details/styles.selectors.js +5 -5
  112. package/internal/components/chart-series-marker/styles.css.js +5 -5
  113. package/internal/components/chart-series-marker/styles.scoped.css +9 -7
  114. package/internal/components/chart-series-marker/styles.selectors.js +5 -5
  115. package/internal/components/dropdown/styles.css.js +20 -20
  116. package/internal/components/dropdown/styles.scoped.css +37 -35
  117. package/internal/components/dropdown/styles.selectors.js +20 -20
  118. package/internal/components/dropdown-footer/styles.css.js +3 -3
  119. package/internal/components/dropdown-footer/styles.scoped.css +5 -3
  120. package/internal/components/dropdown-footer/styles.selectors.js +3 -3
  121. package/internal/components/dropdown-status/styles.css.js +2 -2
  122. package/internal/components/dropdown-status/styles.scoped.css +4 -2
  123. package/internal/components/dropdown-status/styles.selectors.js +2 -2
  124. package/internal/components/focus-lock/index.d.ts +2 -1
  125. package/internal/components/focus-lock/index.d.ts.map +1 -1
  126. package/internal/components/focus-lock/index.js +28 -5
  127. package/internal/components/focus-lock/index.js.map +1 -1
  128. package/internal/components/menu-dropdown/styles.css.js +7 -7
  129. package/internal/components/menu-dropdown/styles.scoped.css +15 -13
  130. package/internal/components/menu-dropdown/styles.selectors.js +7 -7
  131. package/internal/components/option/styles.css.js +15 -15
  132. package/internal/components/option/styles.scoped.css +27 -25
  133. package/internal/components/option/styles.selectors.js +15 -15
  134. package/internal/components/options-list/styles.css.js +2 -2
  135. package/internal/components/options-list/styles.scoped.css +4 -2
  136. package/internal/components/options-list/styles.selectors.js +2 -2
  137. package/internal/components/selectable-item/styles.css.js +16 -16
  138. package/internal/components/selectable-item/styles.scoped.css +29 -27
  139. package/internal/components/selectable-item/styles.selectors.js +16 -16
  140. package/internal/components/tab-trap/index.d.ts +7 -4
  141. package/internal/components/tab-trap/index.d.ts.map +1 -1
  142. package/internal/components/tab-trap/index.js +5 -3
  143. package/internal/components/tab-trap/index.js.map +1 -1
  144. package/internal/environment.js +1 -1
  145. package/internal/hooks/use-merge-refs/index.d.ts +1 -1
  146. package/internal/hooks/use-merge-refs/index.d.ts.map +1 -1
  147. package/internal/hooks/use-merge-refs/index.js.map +1 -1
  148. package/internal/manifest.json +1 -1
  149. package/link/styles.css.js +20 -20
  150. package/link/styles.scoped.css +75 -71
  151. package/link/styles.selectors.js +20 -20
  152. package/mixed-line-bar-chart/styles.css.js +19 -19
  153. package/mixed-line-bar-chart/styles.scoped.css +28 -26
  154. package/mixed-line-bar-chart/styles.selectors.js +19 -19
  155. package/modal/internal.d.ts.map +1 -1
  156. package/modal/internal.js +2 -9
  157. package/modal/internal.js.map +1 -1
  158. package/modal/styles.css.js +22 -22
  159. package/modal/styles.scoped.css +42 -38
  160. package/modal/styles.selectors.js +22 -22
  161. package/multiselect/internal.d.ts.map +1 -1
  162. package/multiselect/internal.js +2 -2
  163. package/multiselect/internal.js.map +1 -1
  164. package/multiselect/styles.css.js +1 -1
  165. package/multiselect/styles.scoped.css +3 -1
  166. package/multiselect/styles.selectors.js +1 -1
  167. package/package.json +1 -1
  168. package/pagination/styles.css.js +9 -9
  169. package/pagination/styles.scoped.css +25 -23
  170. package/pagination/styles.selectors.js +9 -9
  171. package/pie-chart/styles.css.js +27 -27
  172. package/pie-chart/styles.scoped.css +45 -43
  173. package/pie-chart/styles.selectors.js +27 -27
  174. package/popover/styles.css.js +50 -50
  175. package/popover/styles.scoped.css +69 -63
  176. package/popover/styles.selectors.js +50 -50
  177. package/progress-bar/styles.css.js +18 -18
  178. package/progress-bar/styles.scoped.css +34 -32
  179. package/progress-bar/styles.selectors.js +18 -18
  180. package/property-filter/interfaces.d.ts +1 -0
  181. package/property-filter/interfaces.d.ts.map +1 -1
  182. package/property-filter/interfaces.js.map +1 -1
  183. package/property-filter/styles.css.js +33 -33
  184. package/property-filter/styles.scoped.css +37 -35
  185. package/property-filter/styles.selectors.js +33 -33
  186. package/property-filter/token-editor.d.ts.map +1 -1
  187. package/property-filter/token-editor.js +1 -1
  188. package/property-filter/token-editor.js.map +1 -1
  189. package/radio-group/styles.css.js +9 -9
  190. package/radio-group/styles.scoped.css +17 -15
  191. package/radio-group/styles.selectors.js +9 -9
  192. package/s3-resource-selector/interfaces.d.ts +1 -0
  193. package/s3-resource-selector/interfaces.d.ts.map +1 -1
  194. package/s3-resource-selector/interfaces.js.map +1 -1
  195. package/s3-resource-selector/s3-in-context/index.d.ts.map +1 -1
  196. package/s3-resource-selector/s3-in-context/index.js +1 -1
  197. package/s3-resource-selector/s3-in-context/index.js.map +1 -1
  198. package/segmented-control/styles.css.js +14 -14
  199. package/segmented-control/styles.scoped.css +35 -33
  200. package/segmented-control/styles.selectors.js +14 -14
  201. package/select/interfaces.d.ts +4 -0
  202. package/select/interfaces.d.ts.map +1 -1
  203. package/select/interfaces.js.map +1 -1
  204. package/select/internal.d.ts.map +1 -1
  205. package/select/internal.js +2 -2
  206. package/select/internal.js.map +1 -1
  207. package/select/parts/filter.d.ts +1 -1
  208. package/select/parts/filter.d.ts.map +1 -1
  209. package/select/styles.css.js +1 -1
  210. package/select/styles.scoped.css +3 -1
  211. package/select/styles.selectors.js +1 -1
  212. package/side-navigation/internal.js +1 -1
  213. package/side-navigation/internal.js.map +1 -1
  214. package/side-navigation/styles.css.js +22 -22
  215. package/side-navigation/styles.scoped.css +37 -32
  216. package/side-navigation/styles.selectors.js +22 -22
  217. package/split-panel/styles.css.js +59 -59
  218. package/split-panel/styles.scoped.css +83 -81
  219. package/split-panel/styles.selectors.js +59 -59
  220. package/status-indicator/styles.css.js +20 -20
  221. package/status-indicator/styles.scoped.css +28 -26
  222. package/status-indicator/styles.selectors.js +20 -20
  223. package/table/styles.css.js +33 -33
  224. package/table/styles.scoped.css +41 -39
  225. package/table/styles.selectors.js +33 -33
  226. package/tabs/styles.css.js +21 -21
  227. package/tabs/styles.scoped.css +40 -38
  228. package/tabs/styles.selectors.js +21 -21
  229. package/tag-editor/index.d.ts.map +1 -1
  230. package/tag-editor/index.js +2 -2
  231. package/tag-editor/index.js.map +1 -1
  232. package/tag-editor/interfaces.d.ts +1 -0
  233. package/tag-editor/interfaces.d.ts.map +1 -1
  234. package/tag-editor/interfaces.js.map +1 -1
  235. package/tag-editor/internal.d.ts +1 -0
  236. package/tag-editor/internal.d.ts.map +1 -1
  237. package/tag-editor/internal.js +2 -2
  238. package/tag-editor/internal.js.map +1 -1
  239. package/test-utils/dom/input/index.js +1 -1
  240. package/test-utils/dom/input/index.js.map +1 -1
  241. package/test-utils/selectors/input/index.js +1 -1
  242. package/test-utils/selectors/input/index.js.map +1 -1
  243. package/test-utils/tsconfig.tsbuildinfo +1 -1
  244. package/text-content/styles.css.js +1 -1
  245. package/text-content/styles.scoped.css +62 -60
  246. package/text-content/styles.selectors.js +1 -1
  247. package/text-filter/interfaces.d.ts +4 -0
  248. package/text-filter/interfaces.d.ts.map +1 -1
  249. package/text-filter/interfaces.js.map +1 -1
  250. package/text-filter/internal.d.ts.map +1 -1
  251. package/text-filter/internal.js +2 -2
  252. package/text-filter/internal.js.map +1 -1
  253. package/text-filter/styles.css.js +4 -4
  254. package/text-filter/styles.scoped.css +6 -4
  255. package/text-filter/styles.selectors.js +4 -4
  256. package/textarea/styles.css.js +4 -4
  257. package/textarea/styles.scoped.css +14 -12
  258. package/textarea/styles.selectors.js +4 -4
  259. package/tiles/styles.css.js +28 -28
  260. package/tiles/styles.scoped.css +72 -68
  261. package/tiles/styles.selectors.js +28 -28
  262. package/toggle/styles.css.js +8 -8
  263. package/toggle/styles.scoped.css +15 -13
  264. package/toggle/styles.selectors.js +8 -8
  265. package/token-group/styles.css.js +7 -7
  266. package/token-group/styles.scoped.css +26 -22
  267. package/token-group/styles.selectors.js +7 -7
  268. package/top-navigation/1.0-beta/styles.css.js +25 -25
  269. package/top-navigation/1.0-beta/styles.scoped.css +44 -42
  270. package/top-navigation/1.0-beta/styles.selectors.js +25 -25
  271. package/top-navigation/styles.css.js +47 -47
  272. package/top-navigation/styles.scoped.css +72 -66
  273. package/top-navigation/styles.selectors.js +47 -47
  274. package/tutorial-panel/components/tutorial-detail-view/styles.css.js +20 -20
  275. package/tutorial-panel/components/tutorial-detail-view/styles.scoped.css +23 -21
  276. package/tutorial-panel/components/tutorial-detail-view/styles.selectors.js +20 -20
  277. package/tutorial-panel/components/tutorial-list/styles.css.js +18 -18
  278. package/tutorial-panel/components/tutorial-list/styles.scoped.css +33 -27
  279. package/tutorial-panel/components/tutorial-list/styles.selectors.js +18 -18
  280. package/tutorial-panel/styles.css.js +1 -1
  281. package/tutorial-panel/styles.scoped.css +3 -1
  282. package/tutorial-panel/styles.selectors.js +1 -1
  283. package/wizard/styles.css.js +32 -32
  284. package/wizard/styles.scoped.css +62 -60
  285. package/wizard/styles.selectors.js +32 -32
@@ -183,13 +183,13 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
183
183
  SPDX-License-Identifier: Apache-2.0
184
184
  */
185
185
  /* stylelint-disable selector-max-type */
186
- .awsui_tabs-header_14rmt_a6mqv_186:not(#\9) {
186
+ .awsui_tabs-header_14rmt_q1sb0_186:not(#\9) {
187
187
  margin: 0;
188
188
  padding: 0;
189
189
  display: flex;
190
190
  }
191
191
 
192
- .awsui_tabs-header-list_14rmt_a6mqv_192:not(#\9) {
192
+ .awsui_tabs-header-list_14rmt_q1sb0_192:not(#\9) {
193
193
  margin: 0;
194
194
  padding: 0;
195
195
  display: flex;
@@ -200,42 +200,42 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
200
200
  -ms-overflow-style: none; /* Internet Explorer 10+ */
201
201
  scrollbar-width: none; /* Firefox */
202
202
  }
203
- .awsui_tabs-header-list_14rmt_a6mqv_192:not(#\9)::-webkit-scrollbar {
203
+ .awsui_tabs-header-list_14rmt_q1sb0_192:not(#\9)::-webkit-scrollbar {
204
204
  display: none; /* Safari and Chrome */
205
205
  }
206
206
 
207
- .awsui_pagination-button_14rmt_a6mqv_207:not(#\9) {
207
+ .awsui_pagination-button_14rmt_q1sb0_207:not(#\9) {
208
208
  margin: var(--space-scaled-s-cu1hzn, 12px) 0;
209
209
  padding: 0 var(--space-xxs-ynfts5, 4px);
210
210
  display: flex;
211
211
  }
212
- .awsui_pagination-button-left_14rmt_a6mqv_212:not(#\9) {
212
+ .awsui_pagination-button-left_14rmt_q1sb0_212:not(#\9) {
213
213
  border-right: var(--border-divider-section-width-4wm2it, 2px) solid var(--color-border-control-disabled-vx8bco, #d1d5db);
214
214
  }
215
- .awsui_pagination-button-left-scrollable_14rmt_a6mqv_215:not(#\9) {
215
+ .awsui_pagination-button-left-scrollable_14rmt_q1sb0_215:not(#\9) {
216
216
  z-index: 1;
217
217
  box-shadow: 5px 0px 4px -3px var(--color-border-tabs-shadow-4lmh2z, rgba(0, 7, 22, 0.12)), 1px 0px 0px 0px var(--color-border-tabs-shadow-4lmh2z, rgba(0, 7, 22, 0.12));
218
218
  }
219
- .awsui_pagination-button-right_14rmt_a6mqv_219:not(#\9) {
219
+ .awsui_pagination-button-right_14rmt_q1sb0_219:not(#\9) {
220
220
  border-left: var(--border-divider-section-width-4wm2it, 2px) solid var(--color-border-control-disabled-vx8bco, #d1d5db);
221
221
  }
222
- .awsui_pagination-button-right-scrollable_14rmt_a6mqv_222:not(#\9) {
222
+ .awsui_pagination-button-right-scrollable_14rmt_q1sb0_222:not(#\9) {
223
223
  z-index: 1;
224
224
  box-shadow: -5px 0px 4px -3px var(--color-border-tabs-shadow-4lmh2z, rgba(0, 7, 22, 0.12)), -1px 0px 0px 0 var(--color-border-tabs-shadow-4lmh2z, rgba(0, 7, 22, 0.12));
225
225
  }
226
226
 
227
- .awsui_tabs-tab_14rmt_a6mqv_227:not(#\9) {
227
+ .awsui_tabs-tab_14rmt_q1sb0_227:not(#\9) {
228
228
  list-style: none;
229
229
  padding: 0;
230
230
  flex-shrink: 0;
231
231
  display: flex;
232
232
  max-width: calc(90% - var(--space-l-4vl6xu, 20px));
233
233
  }
234
- .awsui_tabs-tab_14rmt_a6mqv_227 > button:not(#\9) {
234
+ .awsui_tabs-tab_14rmt_q1sb0_227 > button:not(#\9) {
235
235
  background-color: transparent;
236
236
  }
237
237
 
238
- .awsui_tabs-tab-label_14rmt_a6mqv_238:not(#\9) {
238
+ .awsui_tabs-tab-label_14rmt_q1sb0_238:not(#\9) {
239
239
  display: flex;
240
240
  align-items: center;
241
241
  padding: var(--space-scaled-2x-xxs-t5qzmf, 4px) var(--space-l-4vl6xu, 20px);
@@ -246,12 +246,12 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
246
246
  word-break: break-word;
247
247
  }
248
248
 
249
- .awsui_tabs-tab_14rmt_a6mqv_227:not(#\9):not(:last-child) > a > .awsui_tabs-tab-label_14rmt_a6mqv_238, .awsui_tabs-tab_14rmt_a6mqv_227:not(#\9):not(:last-child) > button > .awsui_tabs-tab-label_14rmt_a6mqv_238 {
249
+ .awsui_tabs-tab_14rmt_q1sb0_227:not(#\9):not(:last-child) > a > .awsui_tabs-tab-label_14rmt_q1sb0_238, .awsui_tabs-tab_14rmt_q1sb0_227:not(#\9):not(:last-child) > button > .awsui_tabs-tab-label_14rmt_q1sb0_238 {
250
250
  margin-right: calc(-1 * var(--border-divider-section-width-4wm2it, 2px));
251
251
  border-right: var(--border-divider-section-width-4wm2it, 2px) solid var(--color-border-tabs-divider-69fx5i, #e9ebed);
252
252
  }
253
253
 
254
- .awsui_tabs-tab-link_14rmt_a6mqv_254:not(#\9) {
254
+ .awsui_tabs-tab-link_14rmt_q1sb0_254:not(#\9) {
255
255
  position: relative;
256
256
  display: flex;
257
257
  align-items: stretch;
@@ -267,21 +267,21 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
267
267
  -moz-osx-font-smoothing: var(--font-smoothing-moz-osx-nkh1jb, grayscale);
268
268
  color: var(--color-text-interactive-default-eg5fsa, #414d5c);
269
269
  }
270
- .awsui_tabs-tab-link_14rmt_a6mqv_254:not(#\9):hover {
270
+ .awsui_tabs-tab-link_14rmt_q1sb0_254:not(#\9):hover {
271
271
  color: var(--color-text-accent-s1eqko, #0972d3);
272
272
  }
273
- .awsui_tabs-tab-link_14rmt_a6mqv_254:not(#\9):focus {
273
+ .awsui_tabs-tab-link_14rmt_q1sb0_254:not(#\9):focus {
274
274
  outline: none;
275
275
  }
276
- .awsui_tabs-tab-link_14rmt_a6mqv_254[data-awsui-focus-visible=true]:not(#\9):focus {
276
+ .awsui_tabs-tab-link_14rmt_q1sb0_254[data-awsui-focus-visible=true]:not(#\9):focus {
277
277
  z-index: 1;
278
278
  position: relative;
279
279
  }
280
- .awsui_tabs-tab-link_14rmt_a6mqv_254[data-awsui-focus-visible=true]:not(#\9):focus {
280
+ .awsui_tabs-tab-link_14rmt_q1sb0_254[data-awsui-focus-visible=true]:not(#\9):focus {
281
281
  outline: 2px dotted transparent;
282
282
  outline-offset: calc(var(--space-tabs-focus-outline-gutter-64zu5e, -8px) - 1px);
283
283
  }
284
- .awsui_tabs-tab-link_14rmt_a6mqv_254[data-awsui-focus-visible=true]:not(#\9):focus::before {
284
+ .awsui_tabs-tab-link_14rmt_q1sb0_254[data-awsui-focus-visible=true]:not(#\9):focus::before {
285
285
  content: " ";
286
286
  display: block;
287
287
  position: absolute;
@@ -292,32 +292,32 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
292
292
  border-radius: var(--border-radius-control-default-focus-ring-7661kz, 4px);
293
293
  box-shadow: 0 0 0 2px var(--color-border-item-focused-ap3b6s, #0972d3);
294
294
  }
295
- .awsui_tabs-tab-link_14rmt_a6mqv_254[data-awsui-focus-visible=true]:not(#\9):focus > a > .awsui_tabs-tab-label_14rmt_a6mqv_238, .awsui_tabs-tab-link_14rmt_a6mqv_254[data-awsui-focus-visible=true]:not(#\9):focus > button > .awsui_tabs-tab-label_14rmt_a6mqv_238 {
295
+ .awsui_tabs-tab-link_14rmt_q1sb0_254[data-awsui-focus-visible=true]:not(#\9):focus > a > .awsui_tabs-tab-label_14rmt_q1sb0_238, .awsui_tabs-tab-link_14rmt_q1sb0_254[data-awsui-focus-visible=true]:not(#\9):focus > button > .awsui_tabs-tab-label_14rmt_q1sb0_238 {
296
296
  border-right-color: transparent;
297
297
  }
298
298
 
299
- .awsui_tabs-tab_14rmt_a6mqv_227:not(#\9):first-child {
299
+ .awsui_tabs-tab_14rmt_q1sb0_227:not(#\9):first-child {
300
300
  margin-left: 1px;
301
301
  }
302
- .awsui_tabs-tab_14rmt_a6mqv_227:not(#\9):first-child > a > .awsui_tabs-tab-label_14rmt_a6mqv_238, .awsui_tabs-tab_14rmt_a6mqv_227:not(#\9):first-child > button > .awsui_tabs-tab-label_14rmt_a6mqv_238 {
302
+ .awsui_tabs-tab_14rmt_q1sb0_227:not(#\9):first-child > a > .awsui_tabs-tab-label_14rmt_q1sb0_238, .awsui_tabs-tab_14rmt_q1sb0_227:not(#\9):first-child > button > .awsui_tabs-tab-label_14rmt_q1sb0_238 {
303
303
  padding-left: calc(var(--space-l-4vl6xu, 20px) - 1px);
304
304
  }
305
305
 
306
- .awsui_tabs-tab_14rmt_a6mqv_227:not(#\9):last-child {
306
+ .awsui_tabs-tab_14rmt_q1sb0_227:not(#\9):last-child {
307
307
  margin-right: 1px;
308
308
  }
309
- .awsui_tabs-tab_14rmt_a6mqv_227:not(#\9):last-child > a > .awsui_tabs-tab-label_14rmt_a6mqv_238, .awsui_tabs-tab_14rmt_a6mqv_227:not(#\9):last-child > button > .awsui_tabs-tab-label_14rmt_a6mqv_238 {
309
+ .awsui_tabs-tab_14rmt_q1sb0_227:not(#\9):last-child > a > .awsui_tabs-tab-label_14rmt_q1sb0_238, .awsui_tabs-tab_14rmt_q1sb0_227:not(#\9):last-child > button > .awsui_tabs-tab-label_14rmt_q1sb0_238 {
310
310
  padding-right: calc(var(--space-l-4vl6xu, 20px) - 1px);
311
311
  }
312
312
 
313
- .awsui_tabs-tab-disabled_14rmt_a6mqv_313:not(#\9), .awsui_tabs-tab-disabled_14rmt_a6mqv_313:not(#\9):hover {
313
+ .awsui_tabs-tab-disabled_14rmt_q1sb0_313:not(#\9), .awsui_tabs-tab-disabled_14rmt_q1sb0_313:not(#\9):hover {
314
314
  pointer-events: none;
315
315
  cursor: default;
316
316
  color: var(--color-text-interactive-disabled-3pbb07, #9ba7b6);
317
317
  font-weight: var(--font-tabs-disabled-weight-imwq16, 800);
318
318
  }
319
319
 
320
- .awsui_tabs-tab-link_14rmt_a6mqv_254:not(#\9):not(.awsui_tabs-tab-disabled_14rmt_a6mqv_313):after {
320
+ .awsui_tabs-tab-link_14rmt_q1sb0_254:not(#\9):not(.awsui_tabs-tab-disabled_14rmt_q1sb0_313):after {
321
321
  content: "";
322
322
  position: absolute;
323
323
  left: 0;
@@ -328,36 +328,36 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
328
328
  background: var(--color-border-tabs-underline-9bcfzu, #0972d3);
329
329
  opacity: 0;
330
330
  }
331
- .awsui_tabs-tab-link_14rmt_a6mqv_254:not(#\9):not(.awsui_tabs-tab-disabled_14rmt_a6mqv_313).awsui_refresh_14rmt_a6mqv_331:after {
331
+ .awsui_tabs-tab-link_14rmt_q1sb0_254:not(#\9):not(.awsui_tabs-tab-disabled_14rmt_q1sb0_313).awsui_refresh_14rmt_q1sb0_331:after {
332
332
  transition: opacity var(--motion-duration-refresh-only-medium-5flen2, 165ms) var(--motion-easing-refresh-only-c-ic6jr0, cubic-bezier(0.84, 0, 0.16, 1));
333
333
  }
334
334
  @media (prefers-reduced-motion: reduce) {
335
- .awsui_tabs-tab-link_14rmt_a6mqv_254:not(#\9):not(.awsui_tabs-tab-disabled_14rmt_a6mqv_313).awsui_refresh_14rmt_a6mqv_331:after {
335
+ .awsui_tabs-tab-link_14rmt_q1sb0_254:not(#\9):not(.awsui_tabs-tab-disabled_14rmt_q1sb0_313).awsui_refresh_14rmt_q1sb0_331:after {
336
336
  animation: none;
337
337
  transition: none;
338
338
  }
339
339
  }
340
- .awsui-motion-disabled .awsui_tabs-tab-link_14rmt_a6mqv_254:not(#\9):not(.awsui_tabs-tab-disabled_14rmt_a6mqv_313).awsui_refresh_14rmt_a6mqv_331:after, .awsui-mode-entering .awsui_tabs-tab-link_14rmt_a6mqv_254:not(#\9):not(.awsui_tabs-tab-disabled_14rmt_a6mqv_313).awsui_refresh_14rmt_a6mqv_331:after {
340
+ .awsui-motion-disabled .awsui_tabs-tab-link_14rmt_q1sb0_254:not(#\9):not(.awsui_tabs-tab-disabled_14rmt_q1sb0_313).awsui_refresh_14rmt_q1sb0_331:after, .awsui-mode-entering .awsui_tabs-tab-link_14rmt_q1sb0_254:not(#\9):not(.awsui_tabs-tab-disabled_14rmt_q1sb0_313).awsui_refresh_14rmt_q1sb0_331:after {
341
341
  animation: none;
342
342
  transition: none;
343
343
  }
344
344
 
345
- .awsui_tabs-tab-active_14rmt_a6mqv_345:not(#\9):not(.awsui_tabs-tab-disabled_14rmt_a6mqv_313) {
345
+ .awsui_tabs-tab-active_14rmt_q1sb0_345:not(#\9):not(.awsui_tabs-tab-disabled_14rmt_q1sb0_313) {
346
346
  color: var(--color-text-accent-s1eqko, #0972d3);
347
347
  }
348
- .awsui_tabs-tab-active_14rmt_a6mqv_345:not(#\9):not(.awsui_tabs-tab-disabled_14rmt_a6mqv_313):after {
348
+ .awsui_tabs-tab-active_14rmt_q1sb0_345:not(#\9):not(.awsui_tabs-tab-disabled_14rmt_q1sb0_313):after {
349
349
  opacity: 1;
350
350
  }
351
351
 
352
- .awsui_tabs-header-with-divider_14rmt_a6mqv_352:not(#\9) {
352
+ .awsui_tabs-header-with-divider_14rmt_q1sb0_352:not(#\9) {
353
353
  border-bottom: var(--border-divider-section-width-4wm2it, 2px) solid var(--color-border-tabs-divider-69fx5i, #e9ebed);
354
354
  }
355
355
 
356
- .awsui_root_14rmt_a6mqv_356:not(#\9) {
356
+ .awsui_root_14rmt_q1sb0_356:not(#\9) {
357
357
  /* used in test-utils or tests */
358
358
  }
359
359
 
360
- .awsui_tabs_14rmt_a6mqv_186:not(#\9) {
360
+ .awsui_tabs_14rmt_q1sb0_186:not(#\9) {
361
361
  /* stylelint-disable-next-line plugin/no-unsupported-browser-features */
362
362
  border-collapse: separate;
363
363
  border-spacing: 0;
@@ -392,28 +392,30 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
392
392
  color: var(--color-text-body-default-ajf1h5, #000716);
393
393
  font-weight: 400;
394
394
  font-family: var(--font-family-base-qnistn, "Open Sans", "Helvetica Neue", Roboto, Arial, sans-serif);
395
+ -webkit-font-smoothing: auto;
396
+ -moz-osx-font-smoothing: auto;
395
397
  display: block;
396
398
  width: 100%;
397
399
  }
398
400
 
399
- .awsui_tabs-content_14rmt_a6mqv_373:not(#\9) {
401
+ .awsui_tabs-content_14rmt_q1sb0_375:not(#\9) {
400
402
  display: none;
401
403
  }
402
404
 
403
- .awsui_tabs-content-active_14rmt_a6mqv_377:not(#\9) {
405
+ .awsui_tabs-content-active_14rmt_q1sb0_379:not(#\9) {
404
406
  display: block;
405
407
  }
406
- .awsui_tabs-content-active_14rmt_a6mqv_377[data-awsui-focus-visible=true]:not(#\9):focus {
408
+ .awsui_tabs-content-active_14rmt_q1sb0_379[data-awsui-focus-visible=true]:not(#\9):focus {
407
409
  outline: 2px dotted transparent;
408
410
  outline-offset: 2px;
409
411
  border-radius: var(--border-radius-container-gh9ysk, 16px);
410
412
  box-shadow: 0 0 0 2px var(--color-border-item-focused-ap3b6s, #0972d3);
411
413
  }
412
414
 
413
- .awsui_tabs-content-wrapper_14rmt_a6mqv_387.awsui_with-paddings_14rmt_a6mqv_387 > .awsui_tabs-content_14rmt_a6mqv_373:not(#\9) {
415
+ .awsui_tabs-content-wrapper_14rmt_q1sb0_389.awsui_with-paddings_14rmt_q1sb0_389 > .awsui_tabs-content_14rmt_q1sb0_375:not(#\9) {
414
416
  padding: var(--space-scaled-m-pv0fmt, 16px) 0;
415
417
  }
416
418
 
417
- .awsui_tabs-container-content-wrapper_14rmt_a6mqv_391.awsui_with-paddings_14rmt_a6mqv_387 > .awsui_tabs-content_14rmt_a6mqv_373:not(#\9) {
419
+ .awsui_tabs-container-content-wrapper_14rmt_q1sb0_393.awsui_with-paddings_14rmt_q1sb0_389 > .awsui_tabs-content_14rmt_q1sb0_375:not(#\9) {
418
420
  padding: var(--space-tabs-content-top-mn4c9x, 12px) var(--space-container-horizontal-tlw03i, 20px) var(--space-scaled-l-t03y3z, 20px);
419
421
  }
@@ -2,26 +2,26 @@
2
2
  // es-module interop with Babel and Typescript
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  module.exports.default = {
5
- "tabs-header": "awsui_tabs-header_14rmt_a6mqv_186",
6
- "tabs-header-list": "awsui_tabs-header-list_14rmt_a6mqv_192",
7
- "pagination-button": "awsui_pagination-button_14rmt_a6mqv_207",
8
- "pagination-button-left": "awsui_pagination-button-left_14rmt_a6mqv_212",
9
- "pagination-button-left-scrollable": "awsui_pagination-button-left-scrollable_14rmt_a6mqv_215",
10
- "pagination-button-right": "awsui_pagination-button-right_14rmt_a6mqv_219",
11
- "pagination-button-right-scrollable": "awsui_pagination-button-right-scrollable_14rmt_a6mqv_222",
12
- "tabs-tab": "awsui_tabs-tab_14rmt_a6mqv_227",
13
- "tabs-tab-label": "awsui_tabs-tab-label_14rmt_a6mqv_238",
14
- "tabs-tab-link": "awsui_tabs-tab-link_14rmt_a6mqv_254",
15
- "tabs-tab-disabled": "awsui_tabs-tab-disabled_14rmt_a6mqv_313",
16
- "refresh": "awsui_refresh_14rmt_a6mqv_331",
17
- "tabs-tab-active": "awsui_tabs-tab-active_14rmt_a6mqv_345",
18
- "tabs-header-with-divider": "awsui_tabs-header-with-divider_14rmt_a6mqv_352",
19
- "root": "awsui_root_14rmt_a6mqv_356",
20
- "tabs": "awsui_tabs_14rmt_a6mqv_186",
21
- "tabs-content": "awsui_tabs-content_14rmt_a6mqv_373",
22
- "tabs-content-active": "awsui_tabs-content-active_14rmt_a6mqv_377",
23
- "tabs-content-wrapper": "awsui_tabs-content-wrapper_14rmt_a6mqv_387",
24
- "with-paddings": "awsui_with-paddings_14rmt_a6mqv_387",
25
- "tabs-container-content-wrapper": "awsui_tabs-container-content-wrapper_14rmt_a6mqv_391"
5
+ "tabs-header": "awsui_tabs-header_14rmt_q1sb0_186",
6
+ "tabs-header-list": "awsui_tabs-header-list_14rmt_q1sb0_192",
7
+ "pagination-button": "awsui_pagination-button_14rmt_q1sb0_207",
8
+ "pagination-button-left": "awsui_pagination-button-left_14rmt_q1sb0_212",
9
+ "pagination-button-left-scrollable": "awsui_pagination-button-left-scrollable_14rmt_q1sb0_215",
10
+ "pagination-button-right": "awsui_pagination-button-right_14rmt_q1sb0_219",
11
+ "pagination-button-right-scrollable": "awsui_pagination-button-right-scrollable_14rmt_q1sb0_222",
12
+ "tabs-tab": "awsui_tabs-tab_14rmt_q1sb0_227",
13
+ "tabs-tab-label": "awsui_tabs-tab-label_14rmt_q1sb0_238",
14
+ "tabs-tab-link": "awsui_tabs-tab-link_14rmt_q1sb0_254",
15
+ "tabs-tab-disabled": "awsui_tabs-tab-disabled_14rmt_q1sb0_313",
16
+ "refresh": "awsui_refresh_14rmt_q1sb0_331",
17
+ "tabs-tab-active": "awsui_tabs-tab-active_14rmt_q1sb0_345",
18
+ "tabs-header-with-divider": "awsui_tabs-header-with-divider_14rmt_q1sb0_352",
19
+ "root": "awsui_root_14rmt_q1sb0_356",
20
+ "tabs": "awsui_tabs_14rmt_q1sb0_186",
21
+ "tabs-content": "awsui_tabs-content_14rmt_q1sb0_375",
22
+ "tabs-content-active": "awsui_tabs-content-active_14rmt_q1sb0_379",
23
+ "tabs-content-wrapper": "awsui_tabs-content-wrapper_14rmt_q1sb0_389",
24
+ "with-paddings": "awsui_with-paddings_14rmt_q1sb0_389",
25
+ "tabs-container-content-wrapper": "awsui_tabs-container-content-wrapper_14rmt_q1sb0_393"
26
26
  };
27
27
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tag-editor/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA6E,MAAM,OAAO,CAAC;AAgBlG,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAS9C,OAAO,EAAE,cAAc,EAAE,CAAC;AAS1B,QAAA,MAAM,SAAS,2FAiPd,CAAC;AAGF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tag-editor/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA6E,MAAM,OAAO,CAAC;AAgBlG,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAS9C,OAAO,EAAE,cAAc,EAAE,CAAC;AAS1B,QAAA,MAAM,SAAS,2FAmPd,CAAC;AAGF,eAAe,SAAS,CAAC"}
@@ -109,7 +109,7 @@ var TagEditor = React.forwardRef(function (_a, ref) {
109
109
  label: i18nStrings.keyHeader,
110
110
  control: function (_a, row) {
111
111
  var tag = _a.tag;
112
- return (React.createElement(TagControl, { row: row, value: tag.key, readOnly: tag.existing, limit: 200, defaultOptions: [], placeholder: i18nStrings.keyPlaceholder, errorText: i18nStrings.keysSuggestionError, loadingText: i18nStrings.keysSuggestionLoading, suggestionText: i18nStrings.keySuggestion, tooManySuggestionText: i18nStrings.tooManyKeysSuggestion, enteredTextLabel: i18nStrings.enteredKeyLabel, onRequest: keysRequest, onChange: onKeyChange, onBlur: onKeyBlur, initialOptionsRef: initialKeyOptionsRef, ref: function (ref) {
112
+ return (React.createElement(TagControl, { row: row, value: tag.key, readOnly: tag.existing, limit: 200, defaultOptions: [], placeholder: i18nStrings.keyPlaceholder, errorText: i18nStrings.keysSuggestionError, loadingText: i18nStrings.keysSuggestionLoading, suggestionText: i18nStrings.keySuggestion, tooManySuggestionText: i18nStrings.tooManyKeysSuggestion, enteredTextLabel: i18nStrings.enteredKeyLabel, clearAriaLabel: i18nStrings.clearAriaLabel, onRequest: keysRequest, onChange: onKeyChange, onBlur: onKeyBlur, initialOptionsRef: initialKeyOptionsRef, ref: function (ref) {
113
113
  keyInputRefs.current[row] = ref;
114
114
  } }));
115
115
  },
@@ -132,7 +132,7 @@ var TagEditor = React.forwardRef(function (_a, ref) {
132
132
  ' ',
133
133
  React.createElement(UndoButton, { onClick: function () { return onUndoRemoval(row); }, ref: function (elem) {
134
134
  undoButtonRefs.current[row] = elem;
135
- } }, i18nStrings.undoButton)))) : (React.createElement(TagControl, { row: row, value: tag.value, readOnly: false, limit: 200, defaultOptions: (_b = tag.valueSuggestionOptions) !== null && _b !== void 0 ? _b : [], placeholder: i18nStrings.valuePlaceholder, errorText: i18nStrings.valuesSuggestionError, loadingText: i18nStrings.valuesSuggestionLoading, suggestionText: i18nStrings.valueSuggestion, tooManySuggestionText: i18nStrings.tooManyValuesSuggestion, enteredTextLabel: i18nStrings.enteredValueLabel, filteringKey: tag.key, onRequest: valuesRequest && (function (value) { return valuesRequest(tag.key, value); }), onChange: onValueChange, ref: function (ref) {
135
+ } }, i18nStrings.undoButton)))) : (React.createElement(TagControl, { row: row, value: tag.value, readOnly: false, limit: 200, defaultOptions: (_b = tag.valueSuggestionOptions) !== null && _b !== void 0 ? _b : [], placeholder: i18nStrings.valuePlaceholder, errorText: i18nStrings.valuesSuggestionError, loadingText: i18nStrings.valuesSuggestionLoading, suggestionText: i18nStrings.valueSuggestion, tooManySuggestionText: i18nStrings.tooManyValuesSuggestion, enteredTextLabel: i18nStrings.enteredValueLabel, clearAriaLabel: i18nStrings.clearAriaLabel, filteringKey: tag.key, onRequest: valuesRequest && (function (value) { return valuesRequest(tag.key, value); }), onChange: onValueChange, ref: function (ref) {
136
136
  valueInputRefs.current[row] = ref;
137
137
  } }));
138
138
  },
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tag-editor/index.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useCallback, useImperativeHandle, useLayoutEffect, useMemo, useRef } from 'react';\nimport clsx from 'clsx';\n\nimport { getBaseProps } from '../internal/base-component';\nimport { fireNonCancelableEvent, NonCancelableCustomEvent } from '../internal/events';\nimport { useStableEventHandler } from '../internal/hooks/use-stable-event-handler';\n\nimport { InputProps } from '../input/interfaces';\nimport { AutosuggestProps } from '../autosuggest/interfaces';\nimport { AttributeEditorProps } from '../attribute-editor/interfaces';\nimport InternalAttributeEditor from '../attribute-editor/internal';\nimport InternalStatusIndicator from '../status-indicator/internal';\nimport InternalBox from '../box/internal';\nimport { FormFieldError } from '../form-field/internal';\n\nimport { TagControl, UndoButton } from './internal';\nimport { TagEditorProps } from './interfaces';\nimport { validate, ValidationError } from './validation';\nimport { findIndex, useMemoizedArray } from './utils';\n\nimport styles from './styles.css.js';\nimport { applyDisplayName } from '../internal/utils/apply-display-name';\nimport useBaseComponent from '../internal/hooks/use-base-component';\nimport LiveRegion from '../internal/components/live-region';\n\nexport { TagEditorProps };\n\ninterface InternalTag {\n tag: TagEditorProps.Tag;\n error?: ValidationError;\n}\n\nconst isItemRemovable = ({ tag }: InternalTag) => !tag.markedForRemoval;\n\nconst TagEditor = React.forwardRef(\n (\n {\n tags = [],\n i18nStrings,\n loading = false,\n tagLimit = 50,\n allowedCharacterPattern,\n keysRequest,\n valuesRequest,\n onChange,\n ...restProps\n }: TagEditorProps,\n ref: React.Ref<TagEditorProps.Ref>\n ) => {\n const baseComponentProps = useBaseComponent('TagEditor');\n\n const remainingTags = tagLimit - tags.filter(tag => !tag.markedForRemoval).length;\n\n const attributeEditorRef = useRef<AttributeEditorProps.Ref>(null);\n const keyInputRefs = useRef<(InputProps.Ref | undefined | null)[]>([]);\n const valueInputRefs = useRef<(InputProps.Ref | undefined | null)[]>([]);\n const undoButtonRefs = useRef<(HTMLAnchorElement | undefined | null)[]>([]);\n\n const initialKeyOptionsRef = useRef<AutosuggestProps.Options>([]);\n const keyDirtyStateRef = useRef<boolean[]>([]);\n const focusEventRef = useRef<() => void>();\n\n useLayoutEffect(() => {\n focusEventRef.current?.apply(undefined);\n focusEventRef.current = undefined;\n });\n\n const errors = validate(\n tags,\n keyDirtyStateRef.current,\n i18nStrings,\n allowedCharacterPattern ? new RegExp(allowedCharacterPattern) : undefined\n );\n\n const internalTags = useMemoizedArray(\n tags.map((tag, i) => ({ tag, error: errors[i] })),\n (prev, next) => {\n return prev.tag === next.tag && prev.error?.key === next.error?.key && prev.error?.value === next.error?.value;\n }\n );\n\n useImperativeHandle(\n ref,\n () => ({\n focus() {\n const errorIndex = findIndex(internalTags, ({ error }) => error?.key || error?.value);\n if (errorIndex !== -1) {\n const refArray = internalTags[errorIndex].error?.key ? keyInputRefs : valueInputRefs;\n refArray.current[errorIndex]?.focus();\n }\n },\n }),\n [internalTags]\n );\n\n const validateAndFire = useCallback(\n (newTags: ReadonlyArray<TagEditorProps.Tag>) => {\n fireNonCancelableEvent(onChange, {\n tags: newTags,\n valid: !validate(\n newTags,\n keyDirtyStateRef.current,\n i18nStrings,\n allowedCharacterPattern ? new RegExp(allowedCharacterPattern) : undefined\n ).some(error => error),\n });\n },\n [onChange, i18nStrings, allowedCharacterPattern]\n );\n\n const onAddButtonClick = () => {\n validateAndFire([...tags, { key: '', value: '', existing: false }]);\n focusEventRef.current = () => {\n keyInputRefs.current[tags.length]?.focus();\n };\n };\n\n const onRemoveButtonClick = useStableEventHandler(\n ({ detail }: NonCancelableCustomEvent<AttributeEditorProps.RemoveButtonClickDetail>) => {\n const existing = tags[detail.itemIndex].existing;\n validateAndFire([\n ...tags.slice(0, detail.itemIndex),\n ...(existing ? [{ ...tags[detail.itemIndex], markedForRemoval: true }] : []),\n ...tags.slice(detail.itemIndex + 1),\n ]);\n if (existing) {\n focusEventRef.current = () => {\n undoButtonRefs.current[detail.itemIndex]?.focus();\n };\n } else {\n keyDirtyStateRef.current.splice(detail.itemIndex, 1);\n keyInputRefs.current[detail.itemIndex]?.focus();\n }\n }\n );\n\n const onKeyChange = useStableEventHandler((value: string, row: number) => {\n keyDirtyStateRef.current[row] = true;\n validateAndFire([...tags.slice(0, row), { ...tags[row], key: value }, ...tags.slice(row + 1)]);\n });\n\n const onKeyBlur = useStableEventHandler((row: number) => {\n keyDirtyStateRef.current[row] = true;\n // Force re-render by providing a new array reference\n validateAndFire([...tags]);\n });\n\n const onValueChange = useStableEventHandler((value: string, row: number) => {\n validateAndFire([...tags.slice(0, row), { ...tags[row], value }, ...tags.slice(row + 1)]);\n });\n\n const onUndoRemoval = useStableEventHandler((row: number) => {\n validateAndFire([...tags.slice(0, row), { ...tags[row], markedForRemoval: false }, ...tags.slice(row + 1)]);\n focusEventRef.current = () => {\n attributeEditorRef.current?.focusRemoveButton(row);\n };\n });\n\n const definition = useMemo(\n () => [\n {\n label: i18nStrings.keyHeader,\n control: ({ tag }: InternalTag, row: number) => (\n <TagControl\n row={row}\n value={tag.key}\n readOnly={tag.existing}\n limit={200}\n defaultOptions={[]}\n placeholder={i18nStrings.keyPlaceholder}\n errorText={i18nStrings.keysSuggestionError}\n loadingText={i18nStrings.keysSuggestionLoading}\n suggestionText={i18nStrings.keySuggestion}\n tooManySuggestionText={i18nStrings.tooManyKeysSuggestion}\n enteredTextLabel={i18nStrings.enteredKeyLabel}\n onRequest={keysRequest}\n onChange={onKeyChange}\n onBlur={onKeyBlur}\n initialOptionsRef={initialKeyOptionsRef}\n ref={ref => {\n keyInputRefs.current[row] = ref;\n }}\n />\n ),\n errorText: ({ error }: InternalTag) => error?.key,\n },\n {\n label: (\n <>\n {i18nStrings.valueHeader} - <i>{i18nStrings.optional}</i>\n </>\n ),\n control: ({ tag }: InternalTag, row: number) =>\n tag.markedForRemoval ? (\n <div role=\"alert\">\n <InternalBox margin={{ top: 'xxs' }}>\n {i18nStrings.undoPrompt}{' '}\n <UndoButton\n onClick={() => onUndoRemoval(row)}\n ref={elem => {\n undoButtonRefs.current[row] = elem;\n }}\n >\n {i18nStrings.undoButton}\n </UndoButton>\n </InternalBox>\n </div>\n ) : (\n <TagControl\n row={row}\n value={tag.value}\n readOnly={false}\n limit={200}\n defaultOptions={tag.valueSuggestionOptions ?? []}\n placeholder={i18nStrings.valuePlaceholder}\n errorText={i18nStrings.valuesSuggestionError}\n loadingText={i18nStrings.valuesSuggestionLoading}\n suggestionText={i18nStrings.valueSuggestion}\n tooManySuggestionText={i18nStrings.tooManyValuesSuggestion}\n enteredTextLabel={i18nStrings.enteredValueLabel}\n filteringKey={tag.key}\n onRequest={valuesRequest && (value => valuesRequest(tag.key, value))}\n onChange={onValueChange}\n ref={ref => {\n valueInputRefs.current[row] = ref;\n }}\n />\n ),\n errorText: ({ error }: InternalTag) => error?.value,\n },\n ],\n [i18nStrings, keysRequest, onKeyChange, onKeyBlur, valuesRequest, onValueChange, onUndoRemoval]\n );\n\n if (loading) {\n return (\n <div className={styles.root} ref={baseComponentProps.__internalRootRef}>\n <InternalStatusIndicator className={styles.loading} type=\"loading\">\n <LiveRegion visible={true}>{i18nStrings.loading}</LiveRegion>\n </InternalStatusIndicator>\n </div>\n );\n }\n\n const baseProps = getBaseProps(restProps);\n return (\n <InternalAttributeEditor<InternalTag>\n {...baseProps}\n {...baseComponentProps}\n ref={attributeEditorRef}\n className={clsx(styles.root, baseProps.className)}\n items={internalTags}\n isItemRemovable={isItemRemovable}\n onAddButtonClick={onAddButtonClick}\n onRemoveButtonClick={onRemoveButtonClick}\n addButtonText={i18nStrings.addButton}\n removeButtonText={i18nStrings.removeButton}\n disableAddButton={remainingTags <= 0}\n empty={i18nStrings.emptyTags}\n additionalInfo={\n remainingTags < 0 ? (\n <FormFieldError errorIconAriaLabel={i18nStrings.errorIconAriaLabel}>\n {i18nStrings.tagLimitExceeded(tagLimit) ?? ''}\n </FormFieldError>\n ) : remainingTags === 0 ? (\n i18nStrings.tagLimitReached(tagLimit) ?? ''\n ) : (\n i18nStrings.tagLimit(remainingTags, tagLimit)\n )\n }\n definition={definition}\n i18nStrings={i18nStrings}\n />\n );\n }\n);\n\napplyDisplayName(TagEditor, 'TagEditor');\nexport default TagEditor;\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tag-editor/index.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useCallback, useImperativeHandle, useLayoutEffect, useMemo, useRef } from 'react';\nimport clsx from 'clsx';\n\nimport { getBaseProps } from '../internal/base-component';\nimport { fireNonCancelableEvent, NonCancelableCustomEvent } from '../internal/events';\nimport { useStableEventHandler } from '../internal/hooks/use-stable-event-handler';\n\nimport { InputProps } from '../input/interfaces';\nimport { AutosuggestProps } from '../autosuggest/interfaces';\nimport { AttributeEditorProps } from '../attribute-editor/interfaces';\nimport InternalAttributeEditor from '../attribute-editor/internal';\nimport InternalStatusIndicator from '../status-indicator/internal';\nimport InternalBox from '../box/internal';\nimport { FormFieldError } from '../form-field/internal';\n\nimport { TagControl, UndoButton } from './internal';\nimport { TagEditorProps } from './interfaces';\nimport { validate, ValidationError } from './validation';\nimport { findIndex, useMemoizedArray } from './utils';\n\nimport styles from './styles.css.js';\nimport { applyDisplayName } from '../internal/utils/apply-display-name';\nimport useBaseComponent from '../internal/hooks/use-base-component';\nimport LiveRegion from '../internal/components/live-region';\n\nexport { TagEditorProps };\n\ninterface InternalTag {\n tag: TagEditorProps.Tag;\n error?: ValidationError;\n}\n\nconst isItemRemovable = ({ tag }: InternalTag) => !tag.markedForRemoval;\n\nconst TagEditor = React.forwardRef(\n (\n {\n tags = [],\n i18nStrings,\n loading = false,\n tagLimit = 50,\n allowedCharacterPattern,\n keysRequest,\n valuesRequest,\n onChange,\n ...restProps\n }: TagEditorProps,\n ref: React.Ref<TagEditorProps.Ref>\n ) => {\n const baseComponentProps = useBaseComponent('TagEditor');\n\n const remainingTags = tagLimit - tags.filter(tag => !tag.markedForRemoval).length;\n\n const attributeEditorRef = useRef<AttributeEditorProps.Ref>(null);\n const keyInputRefs = useRef<(InputProps.Ref | undefined | null)[]>([]);\n const valueInputRefs = useRef<(InputProps.Ref | undefined | null)[]>([]);\n const undoButtonRefs = useRef<(HTMLAnchorElement | undefined | null)[]>([]);\n\n const initialKeyOptionsRef = useRef<AutosuggestProps.Options>([]);\n const keyDirtyStateRef = useRef<boolean[]>([]);\n const focusEventRef = useRef<() => void>();\n\n useLayoutEffect(() => {\n focusEventRef.current?.apply(undefined);\n focusEventRef.current = undefined;\n });\n\n const errors = validate(\n tags,\n keyDirtyStateRef.current,\n i18nStrings,\n allowedCharacterPattern ? new RegExp(allowedCharacterPattern) : undefined\n );\n\n const internalTags = useMemoizedArray(\n tags.map((tag, i) => ({ tag, error: errors[i] })),\n (prev, next) => {\n return prev.tag === next.tag && prev.error?.key === next.error?.key && prev.error?.value === next.error?.value;\n }\n );\n\n useImperativeHandle(\n ref,\n () => ({\n focus() {\n const errorIndex = findIndex(internalTags, ({ error }) => error?.key || error?.value);\n if (errorIndex !== -1) {\n const refArray = internalTags[errorIndex].error?.key ? keyInputRefs : valueInputRefs;\n refArray.current[errorIndex]?.focus();\n }\n },\n }),\n [internalTags]\n );\n\n const validateAndFire = useCallback(\n (newTags: ReadonlyArray<TagEditorProps.Tag>) => {\n fireNonCancelableEvent(onChange, {\n tags: newTags,\n valid: !validate(\n newTags,\n keyDirtyStateRef.current,\n i18nStrings,\n allowedCharacterPattern ? new RegExp(allowedCharacterPattern) : undefined\n ).some(error => error),\n });\n },\n [onChange, i18nStrings, allowedCharacterPattern]\n );\n\n const onAddButtonClick = () => {\n validateAndFire([...tags, { key: '', value: '', existing: false }]);\n focusEventRef.current = () => {\n keyInputRefs.current[tags.length]?.focus();\n };\n };\n\n const onRemoveButtonClick = useStableEventHandler(\n ({ detail }: NonCancelableCustomEvent<AttributeEditorProps.RemoveButtonClickDetail>) => {\n const existing = tags[detail.itemIndex].existing;\n validateAndFire([\n ...tags.slice(0, detail.itemIndex),\n ...(existing ? [{ ...tags[detail.itemIndex], markedForRemoval: true }] : []),\n ...tags.slice(detail.itemIndex + 1),\n ]);\n if (existing) {\n focusEventRef.current = () => {\n undoButtonRefs.current[detail.itemIndex]?.focus();\n };\n } else {\n keyDirtyStateRef.current.splice(detail.itemIndex, 1);\n keyInputRefs.current[detail.itemIndex]?.focus();\n }\n }\n );\n\n const onKeyChange = useStableEventHandler((value: string, row: number) => {\n keyDirtyStateRef.current[row] = true;\n validateAndFire([...tags.slice(0, row), { ...tags[row], key: value }, ...tags.slice(row + 1)]);\n });\n\n const onKeyBlur = useStableEventHandler((row: number) => {\n keyDirtyStateRef.current[row] = true;\n // Force re-render by providing a new array reference\n validateAndFire([...tags]);\n });\n\n const onValueChange = useStableEventHandler((value: string, row: number) => {\n validateAndFire([...tags.slice(0, row), { ...tags[row], value }, ...tags.slice(row + 1)]);\n });\n\n const onUndoRemoval = useStableEventHandler((row: number) => {\n validateAndFire([...tags.slice(0, row), { ...tags[row], markedForRemoval: false }, ...tags.slice(row + 1)]);\n focusEventRef.current = () => {\n attributeEditorRef.current?.focusRemoveButton(row);\n };\n });\n\n const definition = useMemo(\n () => [\n {\n label: i18nStrings.keyHeader,\n control: ({ tag }: InternalTag, row: number) => (\n <TagControl\n row={row}\n value={tag.key}\n readOnly={tag.existing}\n limit={200}\n defaultOptions={[]}\n placeholder={i18nStrings.keyPlaceholder}\n errorText={i18nStrings.keysSuggestionError}\n loadingText={i18nStrings.keysSuggestionLoading}\n suggestionText={i18nStrings.keySuggestion}\n tooManySuggestionText={i18nStrings.tooManyKeysSuggestion}\n enteredTextLabel={i18nStrings.enteredKeyLabel}\n clearAriaLabel={i18nStrings.clearAriaLabel}\n onRequest={keysRequest}\n onChange={onKeyChange}\n onBlur={onKeyBlur}\n initialOptionsRef={initialKeyOptionsRef}\n ref={ref => {\n keyInputRefs.current[row] = ref;\n }}\n />\n ),\n errorText: ({ error }: InternalTag) => error?.key,\n },\n {\n label: (\n <>\n {i18nStrings.valueHeader} - <i>{i18nStrings.optional}</i>\n </>\n ),\n control: ({ tag }: InternalTag, row: number) =>\n tag.markedForRemoval ? (\n <div role=\"alert\">\n <InternalBox margin={{ top: 'xxs' }}>\n {i18nStrings.undoPrompt}{' '}\n <UndoButton\n onClick={() => onUndoRemoval(row)}\n ref={elem => {\n undoButtonRefs.current[row] = elem;\n }}\n >\n {i18nStrings.undoButton}\n </UndoButton>\n </InternalBox>\n </div>\n ) : (\n <TagControl\n row={row}\n value={tag.value}\n readOnly={false}\n limit={200}\n defaultOptions={tag.valueSuggestionOptions ?? []}\n placeholder={i18nStrings.valuePlaceholder}\n errorText={i18nStrings.valuesSuggestionError}\n loadingText={i18nStrings.valuesSuggestionLoading}\n suggestionText={i18nStrings.valueSuggestion}\n tooManySuggestionText={i18nStrings.tooManyValuesSuggestion}\n enteredTextLabel={i18nStrings.enteredValueLabel}\n clearAriaLabel={i18nStrings.clearAriaLabel}\n filteringKey={tag.key}\n onRequest={valuesRequest && (value => valuesRequest(tag.key, value))}\n onChange={onValueChange}\n ref={ref => {\n valueInputRefs.current[row] = ref;\n }}\n />\n ),\n errorText: ({ error }: InternalTag) => error?.value,\n },\n ],\n [i18nStrings, keysRequest, onKeyChange, onKeyBlur, valuesRequest, onValueChange, onUndoRemoval]\n );\n\n if (loading) {\n return (\n <div className={styles.root} ref={baseComponentProps.__internalRootRef}>\n <InternalStatusIndicator className={styles.loading} type=\"loading\">\n <LiveRegion visible={true}>{i18nStrings.loading}</LiveRegion>\n </InternalStatusIndicator>\n </div>\n );\n }\n\n const baseProps = getBaseProps(restProps);\n return (\n <InternalAttributeEditor<InternalTag>\n {...baseProps}\n {...baseComponentProps}\n ref={attributeEditorRef}\n className={clsx(styles.root, baseProps.className)}\n items={internalTags}\n isItemRemovable={isItemRemovable}\n onAddButtonClick={onAddButtonClick}\n onRemoveButtonClick={onRemoveButtonClick}\n addButtonText={i18nStrings.addButton}\n removeButtonText={i18nStrings.removeButton}\n disableAddButton={remainingTags <= 0}\n empty={i18nStrings.emptyTags}\n additionalInfo={\n remainingTags < 0 ? (\n <FormFieldError errorIconAriaLabel={i18nStrings.errorIconAriaLabel}>\n {i18nStrings.tagLimitExceeded(tagLimit) ?? ''}\n </FormFieldError>\n ) : remainingTags === 0 ? (\n i18nStrings.tagLimitReached(tagLimit) ?? ''\n ) : (\n i18nStrings.tagLimit(remainingTags, tagLimit)\n )\n }\n definition={definition}\n i18nStrings={i18nStrings}\n />\n );\n }\n);\n\napplyDisplayName(TagEditor, 'TagEditor');\nexport default TagEditor;\n"]}
@@ -104,6 +104,7 @@ export declare namespace TagEditorProps {
104
104
  invalidKeyError: string;
105
105
  invalidValueError: string;
106
106
  awsPrefixError: string;
107
+ clearAriaLabel?: string;
107
108
  tagLimit: (availableTags: number, tagLimit: number) => string;
108
109
  tagLimitReached: (tagLimit: number) => string;
109
110
  tagLimitExceeded: (tagLimit: number) => string;
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/tag-editor/interfaces.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/tag-editor/interfaces.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/tag-editor/interfaces.tsx"],"names":[],"mappings":"","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { BaseComponentProps } from '../internal/base-component';\nimport { AutosuggestProps } from '../autosuggest/interfaces';\nimport { NonCancelableEventHandler } from '../internal/events';\n\nexport interface TagEditorProps extends BaseComponentProps {\n /**\n * Specifies an array of tags that are displayed to the user. Each tag item has the following properties:\n * - `key` (string) - The key of the tag that's displayed in the corresponding key field.\n * - `value` (string) - The value of the tag that's displayed in the corresponding value field.\n * - `existing` (boolean) - Specifies if this is an existing tag for the resource.\n * When set to `true`, if the tag is deleted its `markedForRemoval` property is to `true`.\n * When set to `false`, deletion of the tag removes the tag from the `tags` list.\n * - `markedForRemoval` (boolean) - Specifies if this tag has been marked for removal.\n * This property is set to `true` by the component when a user removes an existing tag.\n * The item will remain in the `tags` list. When set to `true`, the user is presented with the option to undo the removal operation.\n * - `valueSuggestionOptions` (Array<AutosuggestProps.Option>) - An array of autosuggest suggestion options associated with the specified tag key.\n */\n tags?: ReadonlyArray<TagEditorProps.Tag>;\n\n /**\n * An object containing all the necessary localized strings required by the component.\n */\n i18nStrings: TagEditorProps.I18nStrings;\n\n /**\n * Renders the component in a loading state.\n */\n loading?: boolean;\n\n /**\n * Specifies the maximum number of tags that a customer can add.\n */\n tagLimit?: number;\n\n /**\n * Specifies a regular expression string that overrides the default acceptable\n * character validation. You should use this property only when absolutely necessary.\n */\n allowedCharacterPattern?: string;\n\n /**\n * Specifies a function that returns all the keys for a resource.\n * The expected return type of the function should be a promise that\n * resolves to a list of strings of all the keys (for example, `['key1', 'key2']`).\n */\n keysRequest?: (key: string) => Promise<ReadonlyArray<string>>;\n\n /**\n * Specifies a function that returns all the values for a specified key\n * of a resource. The expected return type of the function should be a promise\n * that resolves to a list of strings of all the values (for example, `['value1', 'value2']`).\n *\n * You should return a rejected promise when the `key` parameter is an empty string.\n */\n valuesRequest?: (key: string, value: string) => Promise<ReadonlyArray<string>>;\n\n /**\n * Called when any tag operation occurs.\n * The event `detail` object contains the full updated state of `tags`,\n * and whether the component is in a `valid` state.\n */\n onChange?: NonCancelableEventHandler<TagEditorProps.ChangeDetail>;\n}\n\nexport namespace TagEditorProps {\n export interface Tag {\n /**\n * The key of the tag that will be displayed in the corresponding key field.\n */\n key: string;\n\n /**\n * The value of the tag that will be displayed in the corresponding value field.\n */\n value: string;\n\n /**\n * Whether this is an existing tag for the resource. If set to `true`, deletion of the tag will set the `markedForRemoval` property to `true`. If set to `false`, deletion of the tag will remove the tag from the `tags` list.\n */\n existing: boolean;\n\n /**\n * Whether this tag has been marked for removal. This property will be set to `true` by the component when a user tries to remove an existing tag. The item will remain in the `tags` list. When set to `true`, the user will be presented with the option to undo the removal operation.\n */\n markedForRemoval?: boolean;\n\n /**\n * An array of suggested values for the specified tag key.\n */\n valueSuggestionOptions?: ReadonlyArray<AutosuggestProps.Option>;\n }\n\n export interface I18nStrings {\n keyPlaceholder: string;\n valuePlaceholder: string;\n addButton: string;\n removeButton: string;\n undoButton: string;\n undoPrompt: string;\n loading: string;\n keyHeader: string;\n valueHeader: string;\n optional: string;\n keySuggestion: string;\n valueSuggestion: string;\n tooManyKeysSuggestion: string;\n tooManyValuesSuggestion: string;\n emptyTags: string;\n errorIconAriaLabel?: string;\n keysSuggestionLoading: string;\n keysSuggestionError: string;\n valuesSuggestionError: string;\n valuesSuggestionLoading: string;\n emptyKeyError: string;\n maxKeyCharLengthError: string;\n maxValueCharLengthError: string;\n duplicateKeyError: string;\n invalidKeyError: string;\n invalidValueError: string;\n awsPrefixError: string;\n tagLimit: (availableTags: number, tagLimit: number) => string;\n tagLimitReached: (tagLimit: number) => string;\n tagLimitExceeded: (tagLimit: number) => string;\n enteredKeyLabel: (enteredText: string) => string;\n enteredValueLabel: (enteredText: string) => string;\n }\n\n export interface ChangeDetail {\n tags: ReadonlyArray<TagEditorProps.Tag>;\n valid: boolean;\n }\n\n export interface Ref {\n /**\n * Focuses the first error within the component.\n * If no error is present, no element is focused.\n */\n focus(): void;\n }\n}\n"]}
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/tag-editor/interfaces.tsx"],"names":[],"mappings":"","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { BaseComponentProps } from '../internal/base-component';\nimport { AutosuggestProps } from '../autosuggest/interfaces';\nimport { NonCancelableEventHandler } from '../internal/events';\n\nexport interface TagEditorProps extends BaseComponentProps {\n /**\n * Specifies an array of tags that are displayed to the user. Each tag item has the following properties:\n * - `key` (string) - The key of the tag that's displayed in the corresponding key field.\n * - `value` (string) - The value of the tag that's displayed in the corresponding value field.\n * - `existing` (boolean) - Specifies if this is an existing tag for the resource.\n * When set to `true`, if the tag is deleted its `markedForRemoval` property is to `true`.\n * When set to `false`, deletion of the tag removes the tag from the `tags` list.\n * - `markedForRemoval` (boolean) - Specifies if this tag has been marked for removal.\n * This property is set to `true` by the component when a user removes an existing tag.\n * The item will remain in the `tags` list. When set to `true`, the user is presented with the option to undo the removal operation.\n * - `valueSuggestionOptions` (Array<AutosuggestProps.Option>) - An array of autosuggest suggestion options associated with the specified tag key.\n */\n tags?: ReadonlyArray<TagEditorProps.Tag>;\n\n /**\n * An object containing all the necessary localized strings required by the component.\n */\n i18nStrings: TagEditorProps.I18nStrings;\n\n /**\n * Renders the component in a loading state.\n */\n loading?: boolean;\n\n /**\n * Specifies the maximum number of tags that a customer can add.\n */\n tagLimit?: number;\n\n /**\n * Specifies a regular expression string that overrides the default acceptable\n * character validation. You should use this property only when absolutely necessary.\n */\n allowedCharacterPattern?: string;\n\n /**\n * Specifies a function that returns all the keys for a resource.\n * The expected return type of the function should be a promise that\n * resolves to a list of strings of all the keys (for example, `['key1', 'key2']`).\n */\n keysRequest?: (key: string) => Promise<ReadonlyArray<string>>;\n\n /**\n * Specifies a function that returns all the values for a specified key\n * of a resource. The expected return type of the function should be a promise\n * that resolves to a list of strings of all the values (for example, `['value1', 'value2']`).\n *\n * You should return a rejected promise when the `key` parameter is an empty string.\n */\n valuesRequest?: (key: string, value: string) => Promise<ReadonlyArray<string>>;\n\n /**\n * Called when any tag operation occurs.\n * The event `detail` object contains the full updated state of `tags`,\n * and whether the component is in a `valid` state.\n */\n onChange?: NonCancelableEventHandler<TagEditorProps.ChangeDetail>;\n}\n\nexport namespace TagEditorProps {\n export interface Tag {\n /**\n * The key of the tag that will be displayed in the corresponding key field.\n */\n key: string;\n\n /**\n * The value of the tag that will be displayed in the corresponding value field.\n */\n value: string;\n\n /**\n * Whether this is an existing tag for the resource. If set to `true`, deletion of the tag will set the `markedForRemoval` property to `true`. If set to `false`, deletion of the tag will remove the tag from the `tags` list.\n */\n existing: boolean;\n\n /**\n * Whether this tag has been marked for removal. This property will be set to `true` by the component when a user tries to remove an existing tag. The item will remain in the `tags` list. When set to `true`, the user will be presented with the option to undo the removal operation.\n */\n markedForRemoval?: boolean;\n\n /**\n * An array of suggested values for the specified tag key.\n */\n valueSuggestionOptions?: ReadonlyArray<AutosuggestProps.Option>;\n }\n\n export interface I18nStrings {\n keyPlaceholder: string;\n valuePlaceholder: string;\n addButton: string;\n removeButton: string;\n undoButton: string;\n undoPrompt: string;\n loading: string;\n keyHeader: string;\n valueHeader: string;\n optional: string;\n keySuggestion: string;\n valueSuggestion: string;\n tooManyKeysSuggestion: string;\n tooManyValuesSuggestion: string;\n emptyTags: string;\n errorIconAriaLabel?: string;\n keysSuggestionLoading: string;\n keysSuggestionError: string;\n valuesSuggestionError: string;\n valuesSuggestionLoading: string;\n emptyKeyError: string;\n maxKeyCharLengthError: string;\n maxValueCharLengthError: string;\n duplicateKeyError: string;\n invalidKeyError: string;\n invalidValueError: string;\n awsPrefixError: string;\n clearAriaLabel?: string;\n tagLimit: (availableTags: number, tagLimit: number) => string;\n tagLimitReached: (tagLimit: number) => string;\n tagLimitExceeded: (tagLimit: number) => string;\n enteredKeyLabel: (enteredText: string) => string;\n enteredValueLabel: (enteredText: string) => string;\n }\n\n export interface ChangeDetail {\n tags: ReadonlyArray<TagEditorProps.Tag>;\n valid: boolean;\n }\n\n export interface Ref {\n /**\n * Focuses the first error within the component.\n * If no error is present, no element is focused.\n */\n focus(): void;\n }\n}\n"]}
@@ -13,6 +13,7 @@ export interface TagControlProps {
13
13
  tooManySuggestionText: string;
14
14
  limit: number;
15
15
  filteringKey?: string;
16
+ clearAriaLabel?: string;
16
17
  enteredTextLabel: (value: string) => string;
17
18
  onChange: (value: string, row: number) => void;
18
19
  onBlur?: (row: number) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../src/tag-editor/internal.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAEhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAajD,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,gBAAgB,CAAC,OAAO,CAAC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC5C,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;IAE1D,iBAAiB,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;CACtE;AAED,eAAO,MAAM,UAAU,wFA2FtB,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,eAAO,MAAM,UAAU,2FAgCtB,CAAC"}
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../src/tag-editor/internal.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAEhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAajD,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,gBAAgB,CAAC,OAAO,CAAC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC5C,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;IAE1D,iBAAiB,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;CACtE;AAED,eAAO,MAAM,UAAU,wFA6FtB,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,eAAO,MAAM,UAAU,2FAgCtB,CAAC"}
@@ -8,7 +8,7 @@ import { KeyCode } from '../internal/keycode';
8
8
  import { makeCancellable, PromiseCancelledSignal } from '../internal/utils/promises';
9
9
  import styles from './styles.css.js';
10
10
  export var TagControl = React.forwardRef(function (_a, ref) {
11
- var row = _a.row, value = _a.value, readOnly = _a.readOnly, defaultOptions = _a.defaultOptions, placeholder = _a.placeholder, errorText = _a.errorText, loadingText = _a.loadingText, suggestionText = _a.suggestionText, tooManySuggestionText = _a.tooManySuggestionText, limit = _a.limit, filteringKey = _a.filteringKey, enteredTextLabel = _a.enteredTextLabel, onChange = _a.onChange, onBlur = _a.onBlur, onRequest = _a.onRequest, initialOptionsRef = _a.initialOptionsRef;
11
+ var row = _a.row, value = _a.value, readOnly = _a.readOnly, defaultOptions = _a.defaultOptions, placeholder = _a.placeholder, errorText = _a.errorText, loadingText = _a.loadingText, suggestionText = _a.suggestionText, tooManySuggestionText = _a.tooManySuggestionText, limit = _a.limit, filteringKey = _a.filteringKey, enteredTextLabel = _a.enteredTextLabel, clearAriaLabel = _a.clearAriaLabel, onChange = _a.onChange, onBlur = _a.onBlur, onRequest = _a.onRequest, initialOptionsRef = _a.initialOptionsRef;
12
12
  var _b = useState(defaultOptions), options = _b[0], setOptions = _b[1];
13
13
  var _c = useState(), statusType = _c[0], setStatusType = _c[1];
14
14
  var requestCancelFnRef = useRef({
@@ -50,7 +50,7 @@ export var TagControl = React.forwardRef(function (_a, ref) {
50
50
  });
51
51
  requestCancelFnRef.current = { cancel: cancel, isCancelled: isCancelled };
52
52
  };
53
- return (React.createElement(InternalAutosuggest, { ref: ref, value: value, readOnly: readOnly, statusType: statusType, options: options.length < limit ? options : [], empty: options.length < limit ? suggestionText : tooManySuggestionText, placeholder: placeholder, errorText: errorText, loadingText: loadingText, enteredTextLabel: enteredTextLabel, onChange: function (_a) {
53
+ return (React.createElement(InternalAutosuggest, { ref: ref, value: value, readOnly: readOnly, statusType: statusType, options: options.length < limit ? options : [], empty: options.length < limit ? suggestionText : tooManySuggestionText, placeholder: placeholder, errorText: errorText, loadingText: loadingText, enteredTextLabel: enteredTextLabel, clearAriaLabel: clearAriaLabel, onChange: function (_a) {
54
54
  var detail = _a.detail;
55
55
  return onChange(detail.value, row);
56
56
  }, onBlur: function () { return onBlur === null || onBlur === void 0 ? void 0 : onBlur(row); }, onFocus: function () {
@@ -1 +1 @@
1
- {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/tag-editor/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, { useRef, useState } from 'react';\n\nimport { AutosuggestProps } from '../autosuggest/interfaces';\nimport InternalAutosuggest from '../autosuggest/internal';\nimport { InputProps } from '../input/interfaces';\nimport { DropdownStatusProps } from '../internal/components/dropdown-status';\n\nimport useFocusVisible from '../internal/hooks/focus-visible';\nimport { KeyCode } from '../internal/keycode';\nimport { makeCancellable, PromiseCancelledSignal } from '../internal/utils/promises';\n\nimport styles from './styles.css.js';\n\ninterface FilteringParams {\n key?: string;\n value?: string;\n}\nexport interface TagControlProps {\n row: number;\n value: string;\n readOnly: boolean;\n defaultOptions: AutosuggestProps.Options;\n placeholder: string;\n errorText: string;\n loadingText: string;\n suggestionText: string;\n tooManySuggestionText: string;\n limit: number;\n filteringKey?: string;\n enteredTextLabel: (value: string) => string;\n onChange: (value: string, row: number) => void;\n onBlur?: (row: number) => void;\n onRequest?: (value: string) => Promise<readonly string[]>;\n\n initialOptionsRef?: React.MutableRefObject<AutosuggestProps.Options>;\n}\n\nexport const TagControl = React.forwardRef(\n (\n {\n row,\n value,\n readOnly,\n defaultOptions,\n placeholder,\n errorText,\n loadingText,\n suggestionText,\n tooManySuggestionText,\n limit,\n filteringKey,\n enteredTextLabel,\n onChange,\n onBlur,\n onRequest,\n initialOptionsRef,\n }: TagControlProps,\n ref: React.Ref<InputProps.Ref>\n ) => {\n const [options, setOptions] = useState<AutosuggestProps.Options>(defaultOptions);\n const [statusType, setStatusType] = useState<DropdownStatusProps.StatusType>();\n const requestCancelFnRef = useRef<{ cancel: () => void; isCancelled: () => boolean }>({\n cancel: () => {},\n isCancelled: () => false,\n });\n\n const latestFilteringQuery = useRef<FilteringParams>({ key: undefined, value: undefined });\n const isSameQuery = (key: string | undefined, value: string) =>\n latestFilteringQuery.current.key === key && latestFilteringQuery.current.value === value;\n\n const onLoadItems = (filteringText: string) => {\n if (!onRequest || isSameQuery(filteringKey, filteringText) || requestCancelFnRef.current.isCancelled()) {\n return;\n }\n requestCancelFnRef.current.cancel();\n\n if (latestFilteringQuery.current.key !== filteringKey) {\n // Reset suggestions for values if the key is different.\n setOptions([]);\n } else if (filteringText === '' && initialOptionsRef?.current && initialOptionsRef.current.length > 0) {\n // Load in the background, if the value is empty and we already have suggestions.\n setOptions(initialOptionsRef.current);\n }\n\n setStatusType('loading');\n latestFilteringQuery.current = { key: filteringKey, value: filteringText };\n\n const { promise, cancel, isCancelled } = makeCancellable(onRequest(filteringText));\n promise\n .then(newValues => {\n const newOptions = newValues.map(value => ({ value }));\n setStatusType(undefined);\n setOptions(newOptions);\n if (initialOptionsRef) {\n initialOptionsRef.current = newOptions;\n }\n })\n .catch(err => {\n if (!(err instanceof PromiseCancelledSignal)) {\n setStatusType('error');\n }\n });\n requestCancelFnRef.current = { cancel, isCancelled };\n };\n\n return (\n <InternalAutosuggest\n ref={ref}\n value={value}\n readOnly={readOnly}\n statusType={statusType}\n options={options.length < limit ? options : []}\n empty={options.length < limit ? suggestionText : tooManySuggestionText}\n placeholder={placeholder}\n errorText={errorText}\n loadingText={loadingText}\n enteredTextLabel={enteredTextLabel}\n onChange={({ detail }) => onChange(detail.value, row)}\n onBlur={() => onBlur?.(row)}\n onFocus={() => {\n onLoadItems('');\n }}\n onLoadItems={({ detail }) => {\n onLoadItems(detail.filteringText);\n }}\n />\n );\n }\n);\n\nexport interface UndoButtonProps {\n children: React.ReactNode;\n onClick: () => void;\n}\n\nexport const UndoButton = React.forwardRef(\n ({ children, onClick }: UndoButtonProps, ref: React.Ref<HTMLAnchorElement>) => {\n const focusVisible = useFocusVisible();\n\n return (\n <a\n {...focusVisible}\n ref={ref}\n role=\"button\"\n tabIndex={0}\n className={styles['undo-button']}\n onClick={onClick}\n onKeyDown={event => {\n if (event.keyCode === KeyCode.space || event.keyCode === KeyCode.enter) {\n event.preventDefault();\n }\n // Enter activates the button on key down instead of key up.\n if (event.keyCode === KeyCode.enter) {\n onClick();\n }\n }}\n onKeyUp={event => {\n // Emulate button behavior, which also fires on space.\n if (event.keyCode === KeyCode.space) {\n onClick();\n }\n }}\n >\n {children}\n </a>\n );\n }\n);\n"]}
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/tag-editor/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, { useRef, useState } from 'react';\n\nimport { AutosuggestProps } from '../autosuggest/interfaces';\nimport InternalAutosuggest from '../autosuggest/internal';\nimport { InputProps } from '../input/interfaces';\nimport { DropdownStatusProps } from '../internal/components/dropdown-status';\n\nimport useFocusVisible from '../internal/hooks/focus-visible';\nimport { KeyCode } from '../internal/keycode';\nimport { makeCancellable, PromiseCancelledSignal } from '../internal/utils/promises';\n\nimport styles from './styles.css.js';\n\ninterface FilteringParams {\n key?: string;\n value?: string;\n}\nexport interface TagControlProps {\n row: number;\n value: string;\n readOnly: boolean;\n defaultOptions: AutosuggestProps.Options;\n placeholder: string;\n errorText: string;\n loadingText: string;\n suggestionText: string;\n tooManySuggestionText: string;\n limit: number;\n filteringKey?: string;\n clearAriaLabel?: string;\n enteredTextLabel: (value: string) => string;\n onChange: (value: string, row: number) => void;\n onBlur?: (row: number) => void;\n onRequest?: (value: string) => Promise<readonly string[]>;\n\n initialOptionsRef?: React.MutableRefObject<AutosuggestProps.Options>;\n}\n\nexport const TagControl = React.forwardRef(\n (\n {\n row,\n value,\n readOnly,\n defaultOptions,\n placeholder,\n errorText,\n loadingText,\n suggestionText,\n tooManySuggestionText,\n limit,\n filteringKey,\n enteredTextLabel,\n clearAriaLabel,\n onChange,\n onBlur,\n onRequest,\n initialOptionsRef,\n }: TagControlProps,\n ref: React.Ref<InputProps.Ref>\n ) => {\n const [options, setOptions] = useState<AutosuggestProps.Options>(defaultOptions);\n const [statusType, setStatusType] = useState<DropdownStatusProps.StatusType>();\n const requestCancelFnRef = useRef<{ cancel: () => void; isCancelled: () => boolean }>({\n cancel: () => {},\n isCancelled: () => false,\n });\n\n const latestFilteringQuery = useRef<FilteringParams>({ key: undefined, value: undefined });\n const isSameQuery = (key: string | undefined, value: string) =>\n latestFilteringQuery.current.key === key && latestFilteringQuery.current.value === value;\n\n const onLoadItems = (filteringText: string) => {\n if (!onRequest || isSameQuery(filteringKey, filteringText) || requestCancelFnRef.current.isCancelled()) {\n return;\n }\n requestCancelFnRef.current.cancel();\n\n if (latestFilteringQuery.current.key !== filteringKey) {\n // Reset suggestions for values if the key is different.\n setOptions([]);\n } else if (filteringText === '' && initialOptionsRef?.current && initialOptionsRef.current.length > 0) {\n // Load in the background, if the value is empty and we already have suggestions.\n setOptions(initialOptionsRef.current);\n }\n\n setStatusType('loading');\n latestFilteringQuery.current = { key: filteringKey, value: filteringText };\n\n const { promise, cancel, isCancelled } = makeCancellable(onRequest(filteringText));\n promise\n .then(newValues => {\n const newOptions = newValues.map(value => ({ value }));\n setStatusType(undefined);\n setOptions(newOptions);\n if (initialOptionsRef) {\n initialOptionsRef.current = newOptions;\n }\n })\n .catch(err => {\n if (!(err instanceof PromiseCancelledSignal)) {\n setStatusType('error');\n }\n });\n requestCancelFnRef.current = { cancel, isCancelled };\n };\n\n return (\n <InternalAutosuggest\n ref={ref}\n value={value}\n readOnly={readOnly}\n statusType={statusType}\n options={options.length < limit ? options : []}\n empty={options.length < limit ? suggestionText : tooManySuggestionText}\n placeholder={placeholder}\n errorText={errorText}\n loadingText={loadingText}\n enteredTextLabel={enteredTextLabel}\n clearAriaLabel={clearAriaLabel}\n onChange={({ detail }) => onChange(detail.value, row)}\n onBlur={() => onBlur?.(row)}\n onFocus={() => {\n onLoadItems('');\n }}\n onLoadItems={({ detail }) => {\n onLoadItems(detail.filteringText);\n }}\n />\n );\n }\n);\n\nexport interface UndoButtonProps {\n children: React.ReactNode;\n onClick: () => void;\n}\n\nexport const UndoButton = React.forwardRef(\n ({ children, onClick }: UndoButtonProps, ref: React.Ref<HTMLAnchorElement>) => {\n const focusVisible = useFocusVisible();\n\n return (\n <a\n {...focusVisible}\n ref={ref}\n role=\"button\"\n tabIndex={0}\n className={styles['undo-button']}\n onClick={onClick}\n onKeyDown={event => {\n if (event.keyCode === KeyCode.space || event.keyCode === KeyCode.enter) {\n event.preventDefault();\n }\n // Enter activates the button on key down instead of key up.\n if (event.keyCode === KeyCode.enter) {\n onClick();\n }\n }}\n onKeyUp={event => {\n // Emulate button behavior, which also fires on space.\n if (event.keyCode === KeyCode.space) {\n onClick();\n }\n }}\n >\n {children}\n </a>\n );\n }\n);\n"]}
@@ -23,7 +23,7 @@ var InputWrapper = /** @class */ (function (_super) {
23
23
  return _super !== null && _super.apply(this, arguments) || this;
24
24
  }
25
25
  InputWrapper.prototype.findClearButton = function () {
26
- return this.find(".".concat(styles_selectors_js_1.default['input-icon-right']));
26
+ return this.find(".".concat(styles_selectors_js_1.default['input-button-right']));
27
27
  };
28
28
  InputWrapper.rootSelector = styles_selectors_js_1.default.root;
29
29
  return InputWrapper;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/test-utils/dom/input/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAGA,2CAA4C;AAC5C,0EAAgE;AAEhE;IAA0C,gCAAgB;IAA1D;;IAMA,CAAC;IAHC,sCAAe,GAAf;QACE,OAAO,IAAI,CAAC,IAAI,CAAC,WAAI,6BAAc,CAAC,kBAAkB,CAAC,CAAE,CAAC,CAAC;IAC7D,CAAC;IAJM,yBAAY,GAAW,6BAAc,CAAC,IAAI,CAAC;IAKpD,mBAAC;CAAA,AAND,CAA0C,oBAAgB,GAMzD;kBANoB,YAAY"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/test-utils/dom/input/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAGA,2CAA4C;AAC5C,0EAAgE;AAEhE;IAA0C,gCAAgB;IAA1D;;IAMA,CAAC;IAHC,sCAAe,GAAf;QACE,OAAO,IAAI,CAAC,IAAI,CAAC,WAAI,6BAAc,CAAC,oBAAoB,CAAC,CAAE,CAAC,CAAC;IAC/D,CAAC;IAJM,yBAAY,GAAW,6BAAc,CAAC,IAAI,CAAC;IAKpD,mBAAC;CAAA,AAND,CAA0C,oBAAgB,GAMzD;kBANoB,YAAY"}
@@ -23,7 +23,7 @@ var InputWrapper = /** @class */ (function (_super) {
23
23
  return _super !== null && _super.apply(this, arguments) || this;
24
24
  }
25
25
  InputWrapper.prototype.findClearButton = function () {
26
- return this.find(".".concat(styles_selectors_js_1.default['input-icon-right']));
26
+ return this.find(".".concat(styles_selectors_js_1.default['input-button-right']));
27
27
  };
28
28
  InputWrapper.rootSelector = styles_selectors_js_1.default.root;
29
29
  return InputWrapper;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/test-utils/selectors/input/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAGA,2CAA4C;AAC5C,0EAAgE;AAChE;IAA0C,gCAAgB;IAA1D;;IAKA,CAAC;IAHC,sCAAe,GAAf;QACE,OAAO,IAAI,CAAC,IAAI,CAAC,WAAI,6BAAc,CAAC,kBAAkB,CAAC,CAAE,CAAC,CAAC;IAC7D,CAAC;IAHM,yBAAY,GAAW,6BAAc,CAAC,IAAI,CAAC;IAIpD,mBAAC;CAAA,AALD,CAA0C,oBAAgB,GAKzD;kBALoB,YAAY"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/test-utils/selectors/input/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAGA,2CAA4C;AAC5C,0EAAgE;AAChE;IAA0C,gCAAgB;IAA1D;;IAKA,CAAC;IAHC,sCAAe,GAAf;QACE,OAAO,IAAI,CAAC,IAAI,CAAC,WAAI,6BAAc,CAAC,oBAAoB,CAAC,CAAE,CAAC,CAAC;IAC/D,CAAC;IAHM,yBAAY,GAAW,6BAAc,CAAC,IAAI,CAAC;IAIpD,mBAAC;CAAA,AALD,CAA0C,oBAAgB,GAKzD;kBALoB,YAAY"}