@cloudscape-design/components 3.0.28 → 3.0.31

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 (279) hide show
  1. package/app-layout/visual-refresh/styles.css.js +59 -59
  2. package/app-layout/visual-refresh/styles.scoped.css +146 -146
  3. package/app-layout/visual-refresh/styles.selectors.js +59 -59
  4. package/autosuggest/autosuggest-option.d.ts +1 -0
  5. package/autosuggest/autosuggest-option.d.ts.map +1 -1
  6. package/autosuggest/autosuggest-option.js +2 -2
  7. package/autosuggest/autosuggest-option.js.map +1 -1
  8. package/autosuggest/controller.d.ts +2 -5
  9. package/autosuggest/controller.d.ts.map +1 -1
  10. package/autosuggest/controller.js +5 -49
  11. package/autosuggest/controller.js.map +1 -1
  12. package/autosuggest/internal.d.ts.map +1 -1
  13. package/autosuggest/internal.js +19 -25
  14. package/autosuggest/internal.js.map +1 -1
  15. package/autosuggest/options-controller.d.ts +25 -0
  16. package/autosuggest/options-controller.d.ts.map +1 -0
  17. package/autosuggest/options-controller.js +64 -0
  18. package/autosuggest/options-controller.js.map +1 -0
  19. package/autosuggest/options-list.d.ts +3 -2
  20. package/autosuggest/options-list.d.ts.map +1 -1
  21. package/autosuggest/options-list.js +8 -7
  22. package/autosuggest/options-list.js.map +1 -1
  23. package/autosuggest/plain-list.d.ts +2 -2
  24. package/autosuggest/plain-list.d.ts.map +1 -1
  25. package/autosuggest/plain-list.js +4 -4
  26. package/autosuggest/plain-list.js.map +1 -1
  27. package/autosuggest/virtual-list.d.ts +1 -1
  28. package/autosuggest/virtual-list.d.ts.map +1 -1
  29. package/autosuggest/virtual-list.js +4 -4
  30. package/autosuggest/virtual-list.js.map +1 -1
  31. package/breadcrumb-group/internal.d.ts.map +1 -1
  32. package/breadcrumb-group/internal.js +4 -4
  33. package/breadcrumb-group/internal.js.map +1 -1
  34. package/button-dropdown/category-elements/category-element.d.ts +1 -1
  35. package/button-dropdown/category-elements/category-element.d.ts.map +1 -1
  36. package/button-dropdown/category-elements/category-element.js +2 -2
  37. package/button-dropdown/category-elements/category-element.js.map +1 -1
  38. package/button-dropdown/category-elements/expandable-category-element.d.ts +1 -1
  39. package/button-dropdown/category-elements/expandable-category-element.d.ts.map +1 -1
  40. package/button-dropdown/category-elements/expandable-category-element.js +4 -2
  41. package/button-dropdown/category-elements/expandable-category-element.js.map +1 -1
  42. package/button-dropdown/category-elements/mobile-expandable-category-element.d.ts +1 -1
  43. package/button-dropdown/category-elements/mobile-expandable-category-element.d.ts.map +1 -1
  44. package/button-dropdown/category-elements/mobile-expandable-category-element.js +4 -2
  45. package/button-dropdown/category-elements/mobile-expandable-category-element.js.map +1 -1
  46. package/button-dropdown/category-elements/styles.css.js +13 -12
  47. package/button-dropdown/category-elements/styles.scoped.css +26 -22
  48. package/button-dropdown/category-elements/styles.selectors.js +13 -12
  49. package/button-dropdown/interfaces.d.ts +3 -1
  50. package/button-dropdown/interfaces.d.ts.map +1 -1
  51. package/button-dropdown/interfaces.js.map +1 -1
  52. package/button-dropdown/internal.d.ts.map +1 -1
  53. package/button-dropdown/internal.js +6 -11
  54. package/button-dropdown/internal.js.map +1 -1
  55. package/button-dropdown/item-element/index.d.ts +1 -1
  56. package/button-dropdown/item-element/index.d.ts.map +1 -1
  57. package/button-dropdown/item-element/index.js +2 -1
  58. package/button-dropdown/item-element/index.js.map +1 -1
  59. package/button-dropdown/item-element/styles.css.js +14 -13
  60. package/button-dropdown/item-element/styles.scoped.css +21 -17
  61. package/button-dropdown/item-element/styles.selectors.js +14 -13
  62. package/button-dropdown/items-list.d.ts +1 -1
  63. package/button-dropdown/items-list.d.ts.map +1 -1
  64. package/button-dropdown/items-list.js +4 -4
  65. package/button-dropdown/items-list.js.map +1 -1
  66. package/button-dropdown/utils/use-button-dropdown.d.ts +2 -2
  67. package/button-dropdown/utils/use-button-dropdown.d.ts.map +1 -1
  68. package/button-dropdown/utils/use-button-dropdown.js +7 -5
  69. package/button-dropdown/utils/use-button-dropdown.js.map +1 -1
  70. package/button-dropdown/utils/use-highlighted-menu.d.ts +1 -0
  71. package/button-dropdown/utils/use-highlighted-menu.d.ts.map +1 -1
  72. package/button-dropdown/utils/use-highlighted-menu.js +11 -3
  73. package/button-dropdown/utils/use-highlighted-menu.js.map +1 -1
  74. package/checkbox/styles.css.js +3 -3
  75. package/checkbox/styles.scoped.css +6 -6
  76. package/checkbox/styles.selectors.js +3 -3
  77. package/date-picker/calendar/index.d.ts.map +1 -1
  78. package/date-picker/calendar/index.js +2 -1
  79. package/date-picker/calendar/index.js.map +1 -1
  80. package/date-picker/calendar/utils/memoized-date.d.ts +2 -0
  81. package/date-picker/calendar/utils/memoized-date.d.ts.map +1 -0
  82. package/date-picker/calendar/utils/memoized-date.js +13 -0
  83. package/date-picker/calendar/utils/memoized-date.js.map +1 -0
  84. package/date-picker/embedded.js +1 -1
  85. package/date-picker/embedded.js.map +1 -1
  86. package/date-picker/index.js +1 -1
  87. package/date-picker/index.js.map +1 -1
  88. package/date-picker/use-date-picker.d.ts.map +1 -1
  89. package/date-picker/use-date-picker.js +1 -1
  90. package/date-picker/use-date-picker.js.map +1 -1
  91. package/date-range-picker/calendar/grids/day/index.js +1 -1
  92. package/date-range-picker/calendar/grids/day/index.js.map +1 -1
  93. package/date-range-picker/calendar/index.d.ts.map +1 -1
  94. package/date-range-picker/calendar/index.js +3 -3
  95. package/date-range-picker/calendar/index.js.map +1 -1
  96. package/date-range-picker/dropdown.d.ts +1 -0
  97. package/date-range-picker/dropdown.d.ts.map +1 -1
  98. package/date-range-picker/dropdown.js +18 -30
  99. package/date-range-picker/dropdown.js.map +1 -1
  100. package/date-range-picker/embedded.d.ts +7 -0
  101. package/date-range-picker/embedded.d.ts.map +1 -0
  102. package/date-range-picker/embedded.js +46 -0
  103. package/date-range-picker/embedded.js.map +1 -0
  104. package/date-range-picker/index.d.ts.map +1 -1
  105. package/date-range-picker/index.js +5 -18
  106. package/date-range-picker/index.js.map +1 -1
  107. package/date-range-picker/interfaces.d.ts +46 -44
  108. package/date-range-picker/interfaces.d.ts.map +1 -1
  109. package/date-range-picker/interfaces.js.map +1 -1
  110. package/date-range-picker/time-offset.d.ts +0 -7
  111. package/date-range-picker/time-offset.d.ts.map +1 -1
  112. package/date-range-picker/time-offset.js +4 -60
  113. package/date-range-picker/time-offset.js.map +1 -1
  114. package/date-range-picker/use-date-range-picker.d.ts +29 -0
  115. package/date-range-picker/use-date-range-picker.d.ts.map +1 -0
  116. package/date-range-picker/use-date-range-picker.js +58 -0
  117. package/date-range-picker/use-date-range-picker.js.map +1 -0
  118. package/icon/icons.js +1 -1
  119. package/icon/interfaces.d.ts +1 -1
  120. package/icon/interfaces.d.ts.map +1 -1
  121. package/icon/interfaces.js.map +1 -1
  122. package/input/styles.css.js +13 -13
  123. package/input/styles.scoped.css +35 -37
  124. package/input/styles.selectors.js +13 -13
  125. package/internal/components/abstract-switch/index.d.ts.map +1 -1
  126. package/internal/components/abstract-switch/index.js +5 -5
  127. package/internal/components/abstract-switch/index.js.map +1 -1
  128. package/internal/components/abstract-switch/styles.css.js +11 -11
  129. package/internal/components/abstract-switch/styles.scoped.css +20 -13
  130. package/internal/components/abstract-switch/styles.selectors.js +11 -11
  131. package/internal/components/date-input/index.d.ts.map +1 -1
  132. package/internal/components/date-input/index.js +3 -2
  133. package/internal/components/date-input/index.js.map +1 -1
  134. package/internal/components/masked-input/utils/mask-format.d.ts.map +1 -1
  135. package/internal/components/masked-input/utils/mask-format.js +2 -1
  136. package/internal/components/masked-input/utils/mask-format.js.map +1 -1
  137. package/internal/components/masked-input/utils/strings.d.ts +0 -1
  138. package/internal/components/masked-input/utils/strings.d.ts.map +1 -1
  139. package/internal/components/masked-input/utils/strings.js +0 -6
  140. package/internal/components/masked-input/utils/strings.js.map +1 -1
  141. package/internal/components/options-list/utils/use-highlight-option.d.ts +7 -2
  142. package/internal/components/options-list/utils/use-highlight-option.d.ts.map +1 -1
  143. package/internal/components/options-list/utils/use-highlight-option.js +10 -3
  144. package/internal/components/options-list/utils/use-highlight-option.js.map +1 -1
  145. package/internal/components/selectable-item/index.d.ts +1 -1
  146. package/internal/components/selectable-item/index.d.ts.map +1 -1
  147. package/internal/components/selectable-item/index.js +2 -2
  148. package/internal/components/selectable-item/index.js.map +1 -1
  149. package/internal/components/selectable-item/styles.css.js +16 -16
  150. package/internal/components/selectable-item/styles.scoped.css +29 -30
  151. package/internal/components/selectable-item/styles.selectors.js +16 -16
  152. package/internal/environment.js +1 -1
  153. package/internal/utils/date-time/display-format.d.ts +9 -0
  154. package/internal/utils/date-time/display-format.d.ts.map +1 -0
  155. package/internal/utils/date-time/display-format.js +15 -0
  156. package/internal/utils/date-time/display-format.js.map +1 -0
  157. package/internal/utils/date-time/format-date.d.ts +7 -0
  158. package/internal/utils/date-time/format-date.d.ts.map +1 -0
  159. package/internal/utils/date-time/format-date.js +15 -0
  160. package/internal/utils/date-time/format-date.js.map +1 -0
  161. package/internal/utils/date-time/format-time.d.ts +5 -0
  162. package/internal/utils/date-time/format-time.d.ts.map +1 -0
  163. package/internal/utils/date-time/format-time.js +13 -0
  164. package/internal/utils/date-time/format-time.js.map +1 -0
  165. package/internal/utils/date-time/format-timezone-offset.d.ts +2 -0
  166. package/internal/utils/date-time/format-timezone-offset.d.ts.map +1 -0
  167. package/internal/utils/date-time/format-timezone-offset.js +11 -0
  168. package/internal/utils/date-time/format-timezone-offset.js.map +1 -0
  169. package/internal/utils/date-time/get-browser-timezone-offset.d.ts +7 -0
  170. package/internal/utils/date-time/get-browser-timezone-offset.d.ts.map +1 -0
  171. package/internal/utils/date-time/get-browser-timezone-offset.js +11 -0
  172. package/internal/utils/date-time/get-browser-timezone-offset.js.map +1 -0
  173. package/internal/utils/date-time/index.d.ts +11 -0
  174. package/internal/utils/date-time/index.d.ts.map +1 -0
  175. package/internal/utils/date-time/index.js +13 -0
  176. package/internal/utils/date-time/index.js.map +1 -0
  177. package/internal/utils/date-time/is-iso-date-only.d.ts +5 -0
  178. package/internal/utils/date-time/is-iso-date-only.d.ts.map +1 -0
  179. package/internal/utils/date-time/is-iso-date-only.js +10 -0
  180. package/internal/utils/date-time/is-iso-date-only.js.map +1 -0
  181. package/internal/utils/date-time/join-date-time.d.ts +2 -0
  182. package/internal/utils/date-time/join-date-time.d.ts.map +1 -0
  183. package/internal/utils/date-time/join-date-time.js +6 -0
  184. package/internal/utils/date-time/join-date-time.js.map +1 -0
  185. package/internal/utils/date-time/parse-date.d.ts +8 -0
  186. package/internal/utils/date-time/parse-date.d.ts.map +1 -0
  187. package/internal/utils/date-time/parse-date.js +16 -0
  188. package/internal/utils/date-time/parse-date.js.map +1 -0
  189. package/internal/utils/date-time/parse-timezone-offset.d.ts +5 -0
  190. package/internal/utils/date-time/parse-timezone-offset.d.ts.map +1 -0
  191. package/internal/utils/date-time/parse-timezone-offset.js +20 -0
  192. package/internal/utils/date-time/parse-timezone-offset.js.map +1 -0
  193. package/internal/utils/date-time/shift-timezone-offset.d.ts +12 -0
  194. package/internal/utils/date-time/shift-timezone-offset.d.ts.map +1 -0
  195. package/internal/utils/date-time/shift-timezone-offset.js +27 -0
  196. package/internal/utils/date-time/shift-timezone-offset.js.map +1 -0
  197. package/internal/utils/strings/index.d.ts +3 -0
  198. package/internal/utils/strings/index.d.ts.map +1 -0
  199. package/internal/utils/strings/index.js +5 -0
  200. package/internal/utils/strings/index.js.map +1 -0
  201. package/internal/utils/strings/join-strings.d.ts +5 -0
  202. package/internal/utils/strings/join-strings.d.ts.map +1 -0
  203. package/internal/utils/{strings.js → strings/join-strings.js} +7 -6
  204. package/internal/utils/strings/join-strings.js.map +1 -0
  205. package/internal/utils/strings/pad-left-zeros.d.ts +5 -0
  206. package/internal/utils/strings/pad-left-zeros.d.ts.map +1 -0
  207. package/internal/utils/strings/pad-left-zeros.js +12 -0
  208. package/internal/utils/strings/pad-left-zeros.js.map +1 -0
  209. package/multiselect/internal.d.ts.map +1 -1
  210. package/multiselect/internal.js +2 -2
  211. package/multiselect/internal.js.map +1 -1
  212. package/package.json +1 -1
  213. package/popover/styles.css.js +48 -48
  214. package/popover/styles.scoped.css +65 -60
  215. package/popover/styles.selectors.js +48 -48
  216. package/radio-group/styles.css.js +9 -9
  217. package/radio-group/styles.scoped.css +16 -16
  218. package/radio-group/styles.selectors.js +9 -9
  219. package/select/internal.d.ts.map +1 -1
  220. package/select/internal.js +2 -2
  221. package/select/internal.js.map +1 -1
  222. package/select/parts/item.d.ts +1 -1
  223. package/select/parts/item.d.ts.map +1 -1
  224. package/select/parts/item.js +6 -3
  225. package/select/parts/item.js.map +1 -1
  226. package/select/parts/multiselect-item.d.ts +1 -1
  227. package/select/parts/multiselect-item.d.ts.map +1 -1
  228. package/select/parts/multiselect-item.js +2 -2
  229. package/select/parts/multiselect-item.js.map +1 -1
  230. package/select/parts/plain-list.d.ts +1 -1
  231. package/select/parts/plain-list.d.ts.map +1 -1
  232. package/select/parts/plain-list.js +4 -4
  233. package/select/parts/plain-list.js.map +1 -1
  234. package/select/parts/styles.css.js +8 -7
  235. package/select/parts/styles.scoped.css +12 -7
  236. package/select/parts/styles.selectors.js +8 -7
  237. package/select/parts/virtual-list.js +4 -4
  238. package/select/parts/virtual-list.js.map +1 -1
  239. package/select/utils/get-item-props.d.ts +1 -2
  240. package/select/utils/get-item-props.d.ts.map +1 -1
  241. package/select/utils/get-item-props.js +3 -3
  242. package/select/utils/get-item-props.js.map +1 -1
  243. package/select/utils/render-options.d.ts +2 -2
  244. package/select/utils/render-options.d.ts.map +1 -1
  245. package/select/utils/render-options.js +2 -3
  246. package/select/utils/render-options.js.map +1 -1
  247. package/select/utils/use-select.d.ts +1 -0
  248. package/select/utils/use-select.d.ts.map +1 -1
  249. package/select/utils/use-select.js +2 -1
  250. package/select/utils/use-select.js.map +1 -1
  251. package/split-panel/index.d.ts.map +1 -1
  252. package/split-panel/index.js +2 -2
  253. package/split-panel/index.js.map +1 -1
  254. package/table/styles.css.js +32 -32
  255. package/table/styles.scoped.css +40 -43
  256. package/table/styles.selectors.js +32 -32
  257. package/tabs/styles.css.js +21 -21
  258. package/tabs/styles.scoped.css +40 -43
  259. package/tabs/styles.selectors.js +21 -21
  260. package/textarea/styles.css.js +4 -4
  261. package/textarea/styles.scoped.css +13 -14
  262. package/textarea/styles.selectors.js +4 -4
  263. package/toggle/internal.d.ts.map +1 -1
  264. package/toggle/internal.js +3 -1
  265. package/toggle/internal.js.map +1 -1
  266. package/toggle/styles.css.js +8 -8
  267. package/toggle/styles.scoped.css +15 -14
  268. package/toggle/styles.selectors.js +8 -8
  269. package/date-picker/calendar/utils/date.d.ts +0 -10
  270. package/date-picker/calendar/utils/date.d.ts.map +0 -1
  271. package/date-picker/calendar/utils/date.js +0 -50
  272. package/date-picker/calendar/utils/date.js.map +0 -1
  273. package/internal/components/date-input/utils/date.d.ts +0 -5
  274. package/internal/components/date-input/utils/date.d.ts.map +0 -1
  275. package/internal/components/date-input/utils/date.js +0 -11
  276. package/internal/components/date-input/utils/date.js.map +0 -1
  277. package/internal/utils/strings.d.ts +0 -2
  278. package/internal/utils/strings.d.ts.map +0 -1
  279. package/internal/utils/strings.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"join-strings.d.ts","sourceRoot":"","sources":["../../../../../src/internal/utils/strings/join-strings.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,OAAO,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM,GAAG,SAAS,CAErF"}
@@ -1,12 +1,13 @@
1
1
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
2
  // SPDX-License-Identifier: Apache-2.0
3
- // Joins strings with a whitespace, discarding empty strings. Useful to combine multiple aria-labels.
4
- export var joinStrings = function () {
3
+ /**
4
+ * Joins strings with a whitespace, discarding empty strings. Useful to combine multiple aria-labels.
5
+ */
6
+ export function joinStrings() {
5
7
  var strings = [];
6
8
  for (var _i = 0; _i < arguments.length; _i++) {
7
9
  strings[_i] = arguments[_i];
8
10
  }
9
- var result = strings.filter(function (val) { return val; }).join(' ');
10
- return result || undefined;
11
- };
12
- //# sourceMappingURL=strings.js.map
11
+ return strings.filter(Boolean).join(' ') || undefined;
12
+ }
13
+ //# sourceMappingURL=join-strings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"join-strings.js","sourceRoot":"","sources":["../../../../../src/internal/utils/strings/join-strings.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAEtC;;GAEG;AACH,MAAM,UAAU,WAAW;IAAC,iBAAqC;SAArC,UAAqC,EAArC,qBAAqC,EAArC,IAAqC;QAArC,4BAAqC;;IAC/D,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC;AACxD,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * Joins strings with a whitespace, discarding empty strings. Useful to combine multiple aria-labels.\n */\nexport function joinStrings(...strings: Array<string | undefined>): string | undefined {\n return strings.filter(Boolean).join(' ') || undefined;\n}\n"]}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Prefixes given text with zeros until it reaches the target length.
3
+ */
4
+ export declare function padLeftZeros(text: string, length: number): string;
5
+ //# sourceMappingURL=pad-left-zeros.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pad-left-zeros.d.ts","sourceRoot":"","sources":["../../../../../src/internal/utils/strings/pad-left-zeros.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAKjE"}
@@ -0,0 +1,12 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ /**
4
+ * Prefixes given text with zeros until it reaches the target length.
5
+ */
6
+ export function padLeftZeros(text, length) {
7
+ while (text.length < length) {
8
+ text = "0".concat(text);
9
+ }
10
+ return text;
11
+ }
12
+ //# sourceMappingURL=pad-left-zeros.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pad-left-zeros.js","sourceRoot":"","sources":["../../../../../src/internal/utils/strings/pad-left-zeros.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAEtC;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,MAAc;IACvD,OAAO,IAAI,CAAC,MAAM,GAAG,MAAM,EAAE;QAC3B,IAAI,GAAG,WAAI,IAAI,CAAE,CAAC;KACnB;IACD,OAAO,IAAI,CAAC;AACd,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * Prefixes given text with zeros until it reaches the target length.\n */\nexport function padLeftZeros(text: string, length: number): string {\n while (text.length < length) {\n text = `0${text}`;\n }\n return text;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../src/multiselect/internal.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAIxE,OAAO,EAAE,0BAA0B,EAAE,MAAM,+CAA+C,CAAC;AA0B3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAKhD,QAAA,MAAM,mBAAmB,4HA2QxB,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../src/multiselect/internal.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAIxE,OAAO,EAAE,0BAA0B,EAAE,MAAM,+CAA+C,CAAC;AA0B3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAKhD,QAAA,MAAM,mBAAmB,4HA4QxB,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
@@ -90,7 +90,7 @@ var InternalMultiselect = React.forwardRef(function (_a, externalRef) {
90
90
  fireLoadItems: fireLoadItems,
91
91
  setFilteringValue: setFilteringValue,
92
92
  useInteractiveGroups: useInteractiveGroups
93
- }), isOpen = _o.isOpen, highlightedOption = _o.highlightedOption, highlightedIndex = _o.highlightedIndex, getTriggerProps = _o.getTriggerProps, getFilterProps = _o.getFilterProps, getMenuProps = _o.getMenuProps, getOptionProps = _o.getOptionProps, isKeyboard = _o.isKeyboard, highlightOption = _o.highlightOption, announceSelected = _o.announceSelected;
93
+ }), isOpen = _o.isOpen, highlightedOption = _o.highlightedOption, highlightedIndex = _o.highlightedIndex, highlightedType = _o.highlightedType, getTriggerProps = _o.getTriggerProps, getFilterProps = _o.getFilterProps, getMenuProps = _o.getMenuProps, getOptionProps = _o.getOptionProps, isKeyboard = _o.isKeyboard, highlightOption = _o.highlightOption, announceSelected = _o.announceSelected;
94
94
  var handleNativeSearch = useNativeSearch({
95
95
  isEnabled: filteringType === 'none' && isOpen,
96
96
  options: filteredOptions,
@@ -164,7 +164,7 @@ var InternalMultiselect = React.forwardRef(function (_a, externalRef) {
164
164
  var mergedRef = useMergeRefs(rootRef, __internalRootRef);
165
165
  return (React.createElement("div", __assign({}, baseProps, { ref: mergedRef, className: clsx(styles.root, baseProps.className), onKeyPress: handleNativeSearch }),
166
166
  React.createElement(Dropdown, { open: isOpen, trigger: trigger, header: filter, onMouseDown: handleMouseDown, footer: dropdownStatus.isSticky ? React.createElement(DropdownFooter, { content: dropdownStatus.content }) : null, expandToViewport: expandToViewport },
167
- React.createElement(ListComponent, { listBottom: !dropdownStatus.isSticky ? React.createElement(DropdownFooter, { content: dropdownStatus.content }) : null, menuProps: menuProps, getOptionProps: getOptionProps, filteredOptions: filteredOptions, filteringValue: filteringValue, isKeyboard: isKeyboard.current, ref: scrollToIndex, hasDropdownStatus: dropdownStatus.content !== null, checkboxes: true, useInteractiveGroups: useInteractiveGroups, screenReaderContent: announcement })),
167
+ React.createElement(ListComponent, { listBottom: !dropdownStatus.isSticky ? React.createElement(DropdownFooter, { content: dropdownStatus.content }) : null, menuProps: menuProps, getOptionProps: getOptionProps, filteredOptions: filteredOptions, filteringValue: filteringValue, ref: scrollToIndex, hasDropdownStatus: dropdownStatus.content !== null, checkboxes: true, useInteractiveGroups: useInteractiveGroups, screenReaderContent: announcement, highlightedType: highlightedType })),
168
168
  showTokens && (React.createElement(TokenGroup, { limit: tokenLimit, items: tokens, onDismiss: handleTokenDismiss, i18nStrings: tokenGroupI18nStrings }))));
169
169
  });
170
170
  export default InternalMultiselect;
@@ -1 +1 @@
1
- {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/multiselect/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, { useCallback, useEffect, useRef, useState } from 'react';\nimport clsx from 'clsx';\nimport { useMergeRefs } from '../internal/hooks/use-merge-refs';\n\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component/index.js';\nimport { useFormFieldContext } from '../internal/context/form-field-context';\nimport { getBaseProps } from '../internal/base-component';\nimport { fireNonCancelableEvent } from '../internal/events';\nimport { useUniqueId } from '../internal/hooks/use-unique-id';\nimport { isGroup } from '../internal/components/option/utils/filter-options';\n\nimport DropdownFooter from '../internal/components/dropdown-footer/index.js';\nimport { prepareOptions } from '../internal/components/option/utils/prepare-options';\nimport { OptionDefinition, OptionGroup } from '../internal/components/option/interfaces';\nimport Dropdown from '../internal/components/dropdown';\nimport { useDropdownStatus } from '../internal/components/dropdown-status';\n\nimport { useSelect, MenuProps } from '../select/utils/use-select';\nimport { useNativeSearch } from '../select/utils/use-native-search';\nimport { useLoadItems } from '../select/utils/use-load-items';\nimport { useAnnouncement } from '../select/utils/use-announcement';\nimport { findOptionIndex } from '../select/utils/connect-options';\nimport PlainList, { SelectListProps } from '../select/parts/plain-list';\nimport VirtualList from '../select/parts/virtual-list';\nimport { checkOptionValueField } from '../select/utils/check-option-value-field.js';\nimport Filter from '../select/parts/filter';\nimport Trigger from '../select/parts/trigger';\n\nimport TokenGroup, { TokenGroupProps } from '../token-group/index.js';\n\nimport { MultiselectProps } from './interfaces';\nimport styles from './styles.css.js';\n\ntype InternalMultiselectProps = MultiselectProps & InternalBaseComponentProps;\n\nconst InternalMultiselect = React.forwardRef(\n (\n {\n options = [],\n filteringType = 'none',\n filteringPlaceholder,\n filteringAriaLabel,\n ariaRequired,\n placeholder,\n disabled,\n ariaLabel,\n statusType = 'finished',\n empty,\n loadingText,\n finishedText,\n errorText,\n recoveryText,\n noMatch,\n selectedAriaLabel,\n renderHighlightedAriaLive,\n selectedOptions = [],\n deselectAriaLabel,\n keepOpen = true,\n tokenLimit,\n i18nStrings,\n onBlur,\n onFocus,\n onLoadItems,\n onChange,\n virtualScroll,\n hideTokens = false,\n expandToViewport,\n __internalRootRef = null,\n ...restProps\n }: InternalMultiselectProps,\n externalRef: React.Ref<MultiselectProps.Ref>\n ) => {\n checkOptionValueField('Multiselect', 'options', options);\n\n const baseProps = getBaseProps(restProps);\n const formFieldContext = useFormFieldContext(restProps);\n\n const { handleLoadMore, handleRecoveryClick, fireLoadItems } = useLoadItems({\n onLoadItems,\n options,\n statusType,\n });\n const useInteractiveGroups = true;\n const [filteringValue, setFilteringValue] = useState('');\n const { filteredOptions, parentMap } = prepareOptions(options, filteringType, filteringValue);\n\n const updateSelectedOption = useCallback(\n (option: OptionDefinition | OptionGroup) => {\n const filtered = filteredOptions.filter(item => item.type !== 'parent').map(item => item.option);\n\n // switch between selection and deselection behavior, ignores disabled options to prevent\n // getting stuck on one behavior when an option is disabled and its state cannot be changed\n const isAllChildrenSelected = (optionsArray: OptionDefinition[]) =>\n optionsArray.every(item => findOptionIndex(selectedOptions, item) > -1 || item.disabled);\n const intersection = (visibleOptions: OptionDefinition[], options: OptionDefinition[]) =>\n visibleOptions.filter(item => findOptionIndex(options, item) > -1 && !item.disabled);\n const union = (visibleOptions: OptionDefinition[], options: OptionDefinition[]) =>\n visibleOptions.filter(item => findOptionIndex(options, item) === -1).concat(options);\n const select = (options: OptionDefinition[], selectedOptions: OptionDefinition[]) => {\n return union(selectedOptions, options);\n };\n const unselect = (options: OptionDefinition[], selectedOptions: OptionDefinition[]) => {\n return selectedOptions.filter(option => findOptionIndex(options, option) === -1);\n };\n let newSelectedOptions = [...selectedOptions];\n\n if (isGroup(option)) {\n const visibleOptions = intersection([...option.options], filtered);\n newSelectedOptions = isAllChildrenSelected(visibleOptions)\n ? unselect(visibleOptions, newSelectedOptions)\n : select(visibleOptions, newSelectedOptions);\n } else {\n newSelectedOptions = isAllChildrenSelected([option])\n ? unselect([option], newSelectedOptions)\n : select([option], newSelectedOptions);\n }\n\n fireNonCancelableEvent(onChange, {\n selectedOptions: newSelectedOptions,\n });\n },\n [onChange, selectedOptions, filteredOptions]\n );\n\n const rootRef = useRef<HTMLDivElement>(null);\n\n const selfControlId = useUniqueId('trigger');\n const controlId = formFieldContext.controlId ?? selfControlId;\n\n const scrollToIndex = useRef<SelectListProps.SelectListRef>(null);\n const {\n isOpen,\n highlightedOption,\n highlightedIndex,\n getTriggerProps,\n getFilterProps,\n getMenuProps,\n getOptionProps,\n isKeyboard,\n highlightOption,\n announceSelected,\n } = useSelect({\n selectedOptions,\n updateSelectedOption,\n options: filteredOptions,\n filteringType,\n onFocus,\n onBlur,\n externalRef,\n keepOpen,\n fireLoadItems,\n setFilteringValue,\n useInteractiveGroups,\n });\n\n const handleNativeSearch = useNativeSearch({\n isEnabled: filteringType === 'none' && isOpen,\n options: filteredOptions,\n highlightOption: highlightOption,\n highlightedOption: highlightedOption?.option,\n isKeyboard,\n useInteractiveGroups,\n });\n\n const isEmpty = !options || options.length === 0;\n const isNoMatch = filteredOptions && filteredOptions.length === 0;\n const dropdownStatus = useDropdownStatus({\n statusType,\n empty,\n loadingText,\n finishedText,\n errorText,\n recoveryText,\n isEmpty,\n isNoMatch,\n noMatch,\n onRecoveryClick: handleRecoveryClick,\n });\n\n const filter = (\n <Filter\n filteringType={filteringType}\n placeholder={filteringPlaceholder}\n ariaLabel={filteringAriaLabel}\n ariaRequired={ariaRequired}\n value={filteringValue}\n {...getFilterProps()}\n />\n );\n\n const trigger = (\n <Trigger\n placeholder={placeholder}\n disabled={disabled}\n ariaLabel={ariaLabel}\n triggerProps={getTriggerProps(disabled)}\n selectedOption={null}\n isOpen={isOpen}\n {...formFieldContext}\n controlId={controlId}\n />\n );\n\n const menuProps: MenuProps = {\n ...getMenuProps(),\n onLoadMore: handleLoadMore,\n ariaLabelledby: controlId,\n };\n\n const announcement = useAnnouncement({\n announceSelected,\n highlightedOption,\n getParent: option => parentMap.get(option)?.option as undefined | OptionGroup,\n selectedAriaLabel,\n renderHighlightedAriaLive,\n });\n\n const tokens: TokenGroupProps['items'] = selectedOptions.map(option => ({\n label: option.label,\n disabled: disabled || option.disabled,\n labelTag: option.labelTag,\n description: option.description,\n iconAlt: option.iconAlt,\n iconName: option.iconName,\n iconUrl: option.iconUrl,\n iconSvg: option.iconSvg,\n tags: option.tags,\n dismissLabel: deselectAriaLabel ? deselectAriaLabel(option) : undefined,\n }));\n\n useEffect(() => {\n scrollToIndex.current?.(highlightedIndex);\n }, [highlightedIndex]);\n\n const ListComponent = virtualScroll ? VirtualList : PlainList;\n\n const handleMouseDown = (event: React.MouseEvent) => {\n const target = event.target as HTMLElement;\n\n if (target !== document.activeElement) {\n // prevent currently focused element from losing it\n event.preventDefault();\n }\n };\n\n const showTokens = !hideTokens && tokens.length > 0;\n const handleTokenDismiss: TokenGroupProps['onDismiss'] = ({ detail }) => {\n const optionToDeselect = selectedOptions[detail.itemIndex];\n updateSelectedOption(optionToDeselect);\n const targetRef = getTriggerProps().ref;\n if (targetRef.current) {\n targetRef.current.focus();\n }\n };\n\n const tokenGroupI18nStrings: TokenGroupProps.I18nStrings = {\n limitShowFewer: i18nStrings?.tokenLimitShowFewer,\n limitShowMore: i18nStrings?.tokenLimitShowMore,\n };\n\n const mergedRef = useMergeRefs(rootRef, __internalRootRef);\n\n return (\n <div\n {...baseProps}\n ref={mergedRef}\n className={clsx(styles.root, baseProps.className)}\n onKeyPress={handleNativeSearch}\n >\n <Dropdown\n open={isOpen}\n trigger={trigger}\n header={filter}\n onMouseDown={handleMouseDown}\n footer={dropdownStatus.isSticky ? <DropdownFooter content={dropdownStatus.content} /> : null}\n expandToViewport={expandToViewport}\n >\n <ListComponent\n listBottom={!dropdownStatus.isSticky ? <DropdownFooter content={dropdownStatus.content} /> : null}\n menuProps={menuProps}\n getOptionProps={getOptionProps}\n filteredOptions={filteredOptions}\n filteringValue={filteringValue}\n isKeyboard={isKeyboard.current}\n ref={scrollToIndex}\n hasDropdownStatus={dropdownStatus.content !== null}\n checkboxes={true}\n useInteractiveGroups={useInteractiveGroups}\n screenReaderContent={announcement}\n />\n </Dropdown>\n {showTokens && (\n <TokenGroup\n limit={tokenLimit}\n items={tokens}\n onDismiss={handleTokenDismiss}\n i18nStrings={tokenGroupI18nStrings}\n />\n )}\n </div>\n );\n }\n);\n\nexport default InternalMultiselect;\n"]}
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/multiselect/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, { useCallback, useEffect, useRef, useState } from 'react';\nimport clsx from 'clsx';\nimport { useMergeRefs } from '../internal/hooks/use-merge-refs';\n\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component/index.js';\nimport { useFormFieldContext } from '../internal/context/form-field-context';\nimport { getBaseProps } from '../internal/base-component';\nimport { fireNonCancelableEvent } from '../internal/events';\nimport { useUniqueId } from '../internal/hooks/use-unique-id';\nimport { isGroup } from '../internal/components/option/utils/filter-options';\n\nimport DropdownFooter from '../internal/components/dropdown-footer/index.js';\nimport { prepareOptions } from '../internal/components/option/utils/prepare-options';\nimport { OptionDefinition, OptionGroup } from '../internal/components/option/interfaces';\nimport Dropdown from '../internal/components/dropdown';\nimport { useDropdownStatus } from '../internal/components/dropdown-status';\n\nimport { useSelect, MenuProps } from '../select/utils/use-select';\nimport { useNativeSearch } from '../select/utils/use-native-search';\nimport { useLoadItems } from '../select/utils/use-load-items';\nimport { useAnnouncement } from '../select/utils/use-announcement';\nimport { findOptionIndex } from '../select/utils/connect-options';\nimport PlainList, { SelectListProps } from '../select/parts/plain-list';\nimport VirtualList from '../select/parts/virtual-list';\nimport { checkOptionValueField } from '../select/utils/check-option-value-field.js';\nimport Filter from '../select/parts/filter';\nimport Trigger from '../select/parts/trigger';\n\nimport TokenGroup, { TokenGroupProps } from '../token-group/index.js';\n\nimport { MultiselectProps } from './interfaces';\nimport styles from './styles.css.js';\n\ntype InternalMultiselectProps = MultiselectProps & InternalBaseComponentProps;\n\nconst InternalMultiselect = React.forwardRef(\n (\n {\n options = [],\n filteringType = 'none',\n filteringPlaceholder,\n filteringAriaLabel,\n ariaRequired,\n placeholder,\n disabled,\n ariaLabel,\n statusType = 'finished',\n empty,\n loadingText,\n finishedText,\n errorText,\n recoveryText,\n noMatch,\n selectedAriaLabel,\n renderHighlightedAriaLive,\n selectedOptions = [],\n deselectAriaLabel,\n keepOpen = true,\n tokenLimit,\n i18nStrings,\n onBlur,\n onFocus,\n onLoadItems,\n onChange,\n virtualScroll,\n hideTokens = false,\n expandToViewport,\n __internalRootRef = null,\n ...restProps\n }: InternalMultiselectProps,\n externalRef: React.Ref<MultiselectProps.Ref>\n ) => {\n checkOptionValueField('Multiselect', 'options', options);\n\n const baseProps = getBaseProps(restProps);\n const formFieldContext = useFormFieldContext(restProps);\n\n const { handleLoadMore, handleRecoveryClick, fireLoadItems } = useLoadItems({\n onLoadItems,\n options,\n statusType,\n });\n const useInteractiveGroups = true;\n const [filteringValue, setFilteringValue] = useState('');\n const { filteredOptions, parentMap } = prepareOptions(options, filteringType, filteringValue);\n\n const updateSelectedOption = useCallback(\n (option: OptionDefinition | OptionGroup) => {\n const filtered = filteredOptions.filter(item => item.type !== 'parent').map(item => item.option);\n\n // switch between selection and deselection behavior, ignores disabled options to prevent\n // getting stuck on one behavior when an option is disabled and its state cannot be changed\n const isAllChildrenSelected = (optionsArray: OptionDefinition[]) =>\n optionsArray.every(item => findOptionIndex(selectedOptions, item) > -1 || item.disabled);\n const intersection = (visibleOptions: OptionDefinition[], options: OptionDefinition[]) =>\n visibleOptions.filter(item => findOptionIndex(options, item) > -1 && !item.disabled);\n const union = (visibleOptions: OptionDefinition[], options: OptionDefinition[]) =>\n visibleOptions.filter(item => findOptionIndex(options, item) === -1).concat(options);\n const select = (options: OptionDefinition[], selectedOptions: OptionDefinition[]) => {\n return union(selectedOptions, options);\n };\n const unselect = (options: OptionDefinition[], selectedOptions: OptionDefinition[]) => {\n return selectedOptions.filter(option => findOptionIndex(options, option) === -1);\n };\n let newSelectedOptions = [...selectedOptions];\n\n if (isGroup(option)) {\n const visibleOptions = intersection([...option.options], filtered);\n newSelectedOptions = isAllChildrenSelected(visibleOptions)\n ? unselect(visibleOptions, newSelectedOptions)\n : select(visibleOptions, newSelectedOptions);\n } else {\n newSelectedOptions = isAllChildrenSelected([option])\n ? unselect([option], newSelectedOptions)\n : select([option], newSelectedOptions);\n }\n\n fireNonCancelableEvent(onChange, {\n selectedOptions: newSelectedOptions,\n });\n },\n [onChange, selectedOptions, filteredOptions]\n );\n\n const rootRef = useRef<HTMLDivElement>(null);\n\n const selfControlId = useUniqueId('trigger');\n const controlId = formFieldContext.controlId ?? selfControlId;\n\n const scrollToIndex = useRef<SelectListProps.SelectListRef>(null);\n const {\n isOpen,\n highlightedOption,\n highlightedIndex,\n highlightedType,\n getTriggerProps,\n getFilterProps,\n getMenuProps,\n getOptionProps,\n isKeyboard,\n highlightOption,\n announceSelected,\n } = useSelect({\n selectedOptions,\n updateSelectedOption,\n options: filteredOptions,\n filteringType,\n onFocus,\n onBlur,\n externalRef,\n keepOpen,\n fireLoadItems,\n setFilteringValue,\n useInteractiveGroups,\n });\n\n const handleNativeSearch = useNativeSearch({\n isEnabled: filteringType === 'none' && isOpen,\n options: filteredOptions,\n highlightOption: highlightOption,\n highlightedOption: highlightedOption?.option,\n isKeyboard,\n useInteractiveGroups,\n });\n\n const isEmpty = !options || options.length === 0;\n const isNoMatch = filteredOptions && filteredOptions.length === 0;\n const dropdownStatus = useDropdownStatus({\n statusType,\n empty,\n loadingText,\n finishedText,\n errorText,\n recoveryText,\n isEmpty,\n isNoMatch,\n noMatch,\n onRecoveryClick: handleRecoveryClick,\n });\n\n const filter = (\n <Filter\n filteringType={filteringType}\n placeholder={filteringPlaceholder}\n ariaLabel={filteringAriaLabel}\n ariaRequired={ariaRequired}\n value={filteringValue}\n {...getFilterProps()}\n />\n );\n\n const trigger = (\n <Trigger\n placeholder={placeholder}\n disabled={disabled}\n ariaLabel={ariaLabel}\n triggerProps={getTriggerProps(disabled)}\n selectedOption={null}\n isOpen={isOpen}\n {...formFieldContext}\n controlId={controlId}\n />\n );\n\n const menuProps: MenuProps = {\n ...getMenuProps(),\n onLoadMore: handleLoadMore,\n ariaLabelledby: controlId,\n };\n\n const announcement = useAnnouncement({\n announceSelected,\n highlightedOption,\n getParent: option => parentMap.get(option)?.option as undefined | OptionGroup,\n selectedAriaLabel,\n renderHighlightedAriaLive,\n });\n\n const tokens: TokenGroupProps['items'] = selectedOptions.map(option => ({\n label: option.label,\n disabled: disabled || option.disabled,\n labelTag: option.labelTag,\n description: option.description,\n iconAlt: option.iconAlt,\n iconName: option.iconName,\n iconUrl: option.iconUrl,\n iconSvg: option.iconSvg,\n tags: option.tags,\n dismissLabel: deselectAriaLabel ? deselectAriaLabel(option) : undefined,\n }));\n\n useEffect(() => {\n scrollToIndex.current?.(highlightedIndex);\n }, [highlightedIndex]);\n\n const ListComponent = virtualScroll ? VirtualList : PlainList;\n\n const handleMouseDown = (event: React.MouseEvent) => {\n const target = event.target as HTMLElement;\n\n if (target !== document.activeElement) {\n // prevent currently focused element from losing it\n event.preventDefault();\n }\n };\n\n const showTokens = !hideTokens && tokens.length > 0;\n const handleTokenDismiss: TokenGroupProps['onDismiss'] = ({ detail }) => {\n const optionToDeselect = selectedOptions[detail.itemIndex];\n updateSelectedOption(optionToDeselect);\n const targetRef = getTriggerProps().ref;\n if (targetRef.current) {\n targetRef.current.focus();\n }\n };\n\n const tokenGroupI18nStrings: TokenGroupProps.I18nStrings = {\n limitShowFewer: i18nStrings?.tokenLimitShowFewer,\n limitShowMore: i18nStrings?.tokenLimitShowMore,\n };\n\n const mergedRef = useMergeRefs(rootRef, __internalRootRef);\n\n return (\n <div\n {...baseProps}\n ref={mergedRef}\n className={clsx(styles.root, baseProps.className)}\n onKeyPress={handleNativeSearch}\n >\n <Dropdown\n open={isOpen}\n trigger={trigger}\n header={filter}\n onMouseDown={handleMouseDown}\n footer={dropdownStatus.isSticky ? <DropdownFooter content={dropdownStatus.content} /> : null}\n expandToViewport={expandToViewport}\n >\n <ListComponent\n listBottom={!dropdownStatus.isSticky ? <DropdownFooter content={dropdownStatus.content} /> : null}\n menuProps={menuProps}\n getOptionProps={getOptionProps}\n filteredOptions={filteredOptions}\n filteringValue={filteringValue}\n ref={scrollToIndex}\n hasDropdownStatus={dropdownStatus.content !== null}\n checkboxes={true}\n useInteractiveGroups={useInteractiveGroups}\n screenReaderContent={announcement}\n highlightedType={highlightedType}\n />\n </Dropdown>\n {showTokens && (\n <TokenGroup\n limit={tokenLimit}\n items={tokens}\n onDismiss={handleTokenDismiss}\n i18nStrings={tokenGroupI18nStrings}\n />\n )}\n </div>\n );\n }\n);\n\nexport default InternalMultiselect;\n"]}
package/package.json CHANGED
@@ -110,6 +110,6 @@
110
110
  "./internal/base-component/index.js",
111
111
  "./internal/base-component/styles.css.js"
112
112
  ],
113
- "version": "3.0.28",
113
+ "version": "3.0.31",
114
114
  "license": "Apache-2.0"
115
115
  }
@@ -1,53 +1,53 @@
1
1
 
2
2
  import './styles.scoped.css';
3
3
  export default {
4
- "arrow": "awsui_arrow_xjuzf_jcb5h_185",
5
- "arrow-outer": "awsui_arrow-outer_xjuzf_jcb5h_189",
6
- "arrow-inner": "awsui_arrow-inner_xjuzf_jcb5h_189",
7
- "arrow-position-right-top": "awsui_arrow-position-right-top_xjuzf_jcb5h_220",
8
- "arrow-position-right-bottom": "awsui_arrow-position-right-bottom_xjuzf_jcb5h_220",
9
- "arrow-position-left-top": "awsui_arrow-position-left-top_xjuzf_jcb5h_223",
10
- "arrow-position-left-bottom": "awsui_arrow-position-left-bottom_xjuzf_jcb5h_223",
11
- "arrow-position-top-center": "awsui_arrow-position-top-center_xjuzf_jcb5h_226",
12
- "arrow-position-top-right": "awsui_arrow-position-top-right_xjuzf_jcb5h_226",
13
- "arrow-position-top-left": "awsui_arrow-position-top-left_xjuzf_jcb5h_226",
14
- "arrow-position-top-responsive": "awsui_arrow-position-top-responsive_xjuzf_jcb5h_226",
15
- "arrow-position-bottom-center": "awsui_arrow-position-bottom-center_xjuzf_jcb5h_229",
16
- "arrow-position-bottom-right": "awsui_arrow-position-bottom-right_xjuzf_jcb5h_229",
17
- "arrow-position-bottom-left": "awsui_arrow-position-bottom-left_xjuzf_jcb5h_229",
18
- "arrow-position-bottom-responsive": "awsui_arrow-position-bottom-responsive_xjuzf_jcb5h_229",
19
- "body": "awsui_body_xjuzf_jcb5h_325",
20
- "body-overflow-visible": "awsui_body-overflow-visible_xjuzf_jcb5h_344",
21
- "variant-annotation": "awsui_variant-annotation_xjuzf_jcb5h_348",
22
- "body-size-small": "awsui_body-size-small_xjuzf_jcb5h_353",
23
- "fixed-width": "awsui_fixed-width_xjuzf_jcb5h_356",
24
- "body-size-medium": "awsui_body-size-medium_xjuzf_jcb5h_360",
25
- "body-size-large": "awsui_body-size-large_xjuzf_jcb5h_367",
26
- "has-dismiss": "awsui_has-dismiss_xjuzf_jcb5h_374",
27
- "dismiss": "awsui_dismiss_xjuzf_jcb5h_379",
28
- "dismiss-control": "awsui_dismiss-control_xjuzf_jcb5h_386",
29
- "header-row": "awsui_header-row_xjuzf_jcb5h_390",
30
- "header": "awsui_header_xjuzf_jcb5h_390",
31
- "content": "awsui_content_xjuzf_jcb5h_412",
32
- "content-overflow-visible": "awsui_content-overflow-visible_xjuzf_jcb5h_419",
33
- "container": "awsui_container_xjuzf_jcb5h_431",
34
- "container-arrow": "awsui_container-arrow_xjuzf_jcb5h_439",
35
- "container-arrow-position-right-top": "awsui_container-arrow-position-right-top_xjuzf_jcb5h_443",
36
- "container-arrow-position-right-bottom": "awsui_container-arrow-position-right-bottom_xjuzf_jcb5h_443",
37
- "container-arrow-position-left-top": "awsui_container-arrow-position-left-top_xjuzf_jcb5h_455",
38
- "container-arrow-position-left-bottom": "awsui_container-arrow-position-left-bottom_xjuzf_jcb5h_455",
39
- "container-arrow-position-top-center": "awsui_container-arrow-position-top-center_xjuzf_jcb5h_467",
40
- "container-arrow-position-top-right": "awsui_container-arrow-position-top-right_xjuzf_jcb5h_467",
41
- "container-arrow-position-top-left": "awsui_container-arrow-position-top-left_xjuzf_jcb5h_467",
42
- "container-arrow-position-top-responsive": "awsui_container-arrow-position-top-responsive_xjuzf_jcb5h_467",
43
- "container-arrow-position-bottom-center": "awsui_container-arrow-position-bottom-center_xjuzf_jcb5h_483",
44
- "container-arrow-position-bottom-right": "awsui_container-arrow-position-bottom-right_xjuzf_jcb5h_487",
45
- "container-arrow-position-bottom-left": "awsui_container-arrow-position-bottom-left_xjuzf_jcb5h_491",
46
- "awsui-motion-fade-in": "awsui_awsui-motion-fade-in_xjuzf_jcb5h_1",
47
- "refresh": "awsui_refresh_xjuzf_jcb5h_609",
48
- "root": "awsui_root_xjuzf_jcb5h_631",
49
- "trigger": "awsui_trigger_xjuzf_jcb5h_643",
50
- "trigger-type-text": "awsui_trigger-type-text_xjuzf_jcb5h_650",
51
- "trigger-inner-text": "awsui_trigger-inner-text_xjuzf_jcb5h_679"
4
+ "arrow": "awsui_arrow_xjuzf_1bftv_185",
5
+ "arrow-outer": "awsui_arrow-outer_xjuzf_1bftv_189",
6
+ "arrow-inner": "awsui_arrow-inner_xjuzf_1bftv_189",
7
+ "arrow-position-right-top": "awsui_arrow-position-right-top_xjuzf_1bftv_220",
8
+ "arrow-position-right-bottom": "awsui_arrow-position-right-bottom_xjuzf_1bftv_220",
9
+ "arrow-position-left-top": "awsui_arrow-position-left-top_xjuzf_1bftv_223",
10
+ "arrow-position-left-bottom": "awsui_arrow-position-left-bottom_xjuzf_1bftv_223",
11
+ "arrow-position-top-center": "awsui_arrow-position-top-center_xjuzf_1bftv_226",
12
+ "arrow-position-top-right": "awsui_arrow-position-top-right_xjuzf_1bftv_226",
13
+ "arrow-position-top-left": "awsui_arrow-position-top-left_xjuzf_1bftv_226",
14
+ "arrow-position-top-responsive": "awsui_arrow-position-top-responsive_xjuzf_1bftv_226",
15
+ "arrow-position-bottom-center": "awsui_arrow-position-bottom-center_xjuzf_1bftv_229",
16
+ "arrow-position-bottom-right": "awsui_arrow-position-bottom-right_xjuzf_1bftv_229",
17
+ "arrow-position-bottom-left": "awsui_arrow-position-bottom-left_xjuzf_1bftv_229",
18
+ "arrow-position-bottom-responsive": "awsui_arrow-position-bottom-responsive_xjuzf_1bftv_229",
19
+ "body": "awsui_body_xjuzf_1bftv_325",
20
+ "body-overflow-visible": "awsui_body-overflow-visible_xjuzf_1bftv_344",
21
+ "variant-annotation": "awsui_variant-annotation_xjuzf_1bftv_348",
22
+ "body-size-small": "awsui_body-size-small_xjuzf_1bftv_353",
23
+ "fixed-width": "awsui_fixed-width_xjuzf_1bftv_356",
24
+ "body-size-medium": "awsui_body-size-medium_xjuzf_1bftv_360",
25
+ "body-size-large": "awsui_body-size-large_xjuzf_1bftv_367",
26
+ "has-dismiss": "awsui_has-dismiss_xjuzf_1bftv_379",
27
+ "dismiss": "awsui_dismiss_xjuzf_1bftv_384",
28
+ "dismiss-control": "awsui_dismiss-control_xjuzf_1bftv_391",
29
+ "header-row": "awsui_header-row_xjuzf_1bftv_395",
30
+ "header": "awsui_header_xjuzf_1bftv_395",
31
+ "content": "awsui_content_xjuzf_1bftv_417",
32
+ "content-overflow-visible": "awsui_content-overflow-visible_xjuzf_1bftv_424",
33
+ "container": "awsui_container_xjuzf_1bftv_436",
34
+ "container-arrow": "awsui_container-arrow_xjuzf_1bftv_444",
35
+ "container-arrow-position-right-top": "awsui_container-arrow-position-right-top_xjuzf_1bftv_448",
36
+ "container-arrow-position-right-bottom": "awsui_container-arrow-position-right-bottom_xjuzf_1bftv_448",
37
+ "container-arrow-position-left-top": "awsui_container-arrow-position-left-top_xjuzf_1bftv_460",
38
+ "container-arrow-position-left-bottom": "awsui_container-arrow-position-left-bottom_xjuzf_1bftv_460",
39
+ "container-arrow-position-top-center": "awsui_container-arrow-position-top-center_xjuzf_1bftv_472",
40
+ "container-arrow-position-top-right": "awsui_container-arrow-position-top-right_xjuzf_1bftv_472",
41
+ "container-arrow-position-top-left": "awsui_container-arrow-position-top-left_xjuzf_1bftv_472",
42
+ "container-arrow-position-top-responsive": "awsui_container-arrow-position-top-responsive_xjuzf_1bftv_472",
43
+ "container-arrow-position-bottom-center": "awsui_container-arrow-position-bottom-center_xjuzf_1bftv_488",
44
+ "container-arrow-position-bottom-right": "awsui_container-arrow-position-bottom-right_xjuzf_1bftv_492",
45
+ "container-arrow-position-bottom-left": "awsui_container-arrow-position-bottom-left_xjuzf_1bftv_496",
46
+ "awsui-motion-fade-in": "awsui_awsui-motion-fade-in_xjuzf_1bftv_1",
47
+ "refresh": "awsui_refresh_xjuzf_1bftv_614",
48
+ "root": "awsui_root_xjuzf_1bftv_636",
49
+ "trigger": "awsui_trigger_xjuzf_1bftv_648",
50
+ "trigger-type-text": "awsui_trigger-type-text_xjuzf_1bftv_655",
51
+ "trigger-inner-text": "awsui_trigger-inner-text_xjuzf_1bftv_684"
52
52
  };
53
53