@cloudscape-design/components-themeable 3.0.199 → 3.0.201

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 (360) hide show
  1. package/lib/internal/manifest.json +1 -1
  2. package/lib/internal/scss/app-layout/notifications/styles.scss +2 -0
  3. package/lib/internal/scss/app-layout/visual-refresh/notifications.scss +1 -0
  4. package/lib/internal/scss/cards/motion.scss +9 -1
  5. package/lib/internal/scss/cards/styles.scss +2 -10
  6. package/lib/internal/scss/container/styles.scss +41 -21
  7. package/lib/internal/scss/flashbar/collapsible.motion.scss +1 -1
  8. package/lib/internal/scss/flashbar/collapsible.scss +7 -6
  9. package/lib/internal/scss/flashbar/styles.scss +4 -14
  10. package/lib/internal/scss/internal/generated/custom-css-properties/index.scss +28 -27
  11. package/lib/internal/scss/internal/styles/forms/mixins.scss +17 -3
  12. package/lib/internal/scss/internal/styles/utils/mixins.scss +12 -0
  13. package/lib/internal/scss/modal/styles.scss +3 -2
  14. package/lib/internal/scss/wizard/styles.scss +2 -3
  15. package/lib/internal/template/alert/styles.css.js +19 -19
  16. package/lib/internal/template/alert/styles.scoped.css +33 -33
  17. package/lib/internal/template/alert/styles.selectors.js +19 -19
  18. package/lib/internal/template/annotation-context/annotation/styles.css.js +24 -24
  19. package/lib/internal/template/annotation-context/annotation/styles.scoped.css +32 -32
  20. package/lib/internal/template/annotation-context/annotation/styles.selectors.js +24 -24
  21. package/lib/internal/template/app-layout/content-wrapper/styles.css.js +3 -3
  22. package/lib/internal/template/app-layout/content-wrapper/styles.scoped.css +8 -8
  23. package/lib/internal/template/app-layout/content-wrapper/styles.selectors.js +3 -3
  24. package/lib/internal/template/app-layout/mobile-toolbar/styles.css.js +4 -4
  25. package/lib/internal/template/app-layout/mobile-toolbar/styles.scoped.css +9 -9
  26. package/lib/internal/template/app-layout/mobile-toolbar/styles.selectors.js +4 -4
  27. package/lib/internal/template/app-layout/notifications/styles.css.js +1 -1
  28. package/lib/internal/template/app-layout/notifications/styles.scoped.css +2 -1
  29. package/lib/internal/template/app-layout/notifications/styles.selectors.js +1 -1
  30. package/lib/internal/template/app-layout/styles.css.js +26 -26
  31. package/lib/internal/template/app-layout/styles.scoped.css +35 -35
  32. package/lib/internal/template/app-layout/styles.selectors.js +26 -26
  33. package/lib/internal/template/app-layout/toggles/styles.css.js +1 -1
  34. package/lib/internal/template/app-layout/toggles/styles.scoped.css +3 -3
  35. package/lib/internal/template/app-layout/toggles/styles.selectors.js +1 -1
  36. package/lib/internal/template/app-layout/visual-refresh/styles.css.js +60 -60
  37. package/lib/internal/template/app-layout/visual-refresh/styles.scoped.css +225 -224
  38. package/lib/internal/template/app-layout/visual-refresh/styles.selectors.js +60 -60
  39. package/lib/internal/template/area-chart/styles.css.js +13 -13
  40. package/lib/internal/template/area-chart/styles.scoped.css +18 -18
  41. package/lib/internal/template/area-chart/styles.selectors.js +13 -13
  42. package/lib/internal/template/attribute-editor/interfaces.d.ts +1 -0
  43. package/lib/internal/template/attribute-editor/interfaces.d.ts.map +1 -1
  44. package/lib/internal/template/attribute-editor/interfaces.js.map +1 -1
  45. package/lib/internal/template/attribute-editor/internal.d.ts.map +1 -1
  46. package/lib/internal/template/attribute-editor/internal.js +17 -2
  47. package/lib/internal/template/attribute-editor/internal.js.map +1 -1
  48. package/lib/internal/template/attribute-editor/styles.css.js +14 -14
  49. package/lib/internal/template/attribute-editor/styles.scoped.css +26 -26
  50. package/lib/internal/template/attribute-editor/styles.selectors.js +14 -14
  51. package/lib/internal/template/badge/styles.css.js +5 -5
  52. package/lib/internal/template/badge/styles.scoped.css +7 -7
  53. package/lib/internal/template/badge/styles.selectors.js +5 -5
  54. package/lib/internal/template/box/styles.css.js +189 -189
  55. package/lib/internal/template/box/styles.scoped.css +240 -240
  56. package/lib/internal/template/box/styles.selectors.js +189 -189
  57. package/lib/internal/template/breadcrumb-group/item/styles.css.js +9 -9
  58. package/lib/internal/template/breadcrumb-group/item/styles.scoped.css +19 -19
  59. package/lib/internal/template/breadcrumb-group/item/styles.selectors.js +9 -9
  60. package/lib/internal/template/breadcrumb-group/styles.css.js +6 -6
  61. package/lib/internal/template/breadcrumb-group/styles.scoped.css +13 -13
  62. package/lib/internal/template/breadcrumb-group/styles.selectors.js +6 -6
  63. package/lib/internal/template/button/styles.css.js +18 -18
  64. package/lib/internal/template/button/styles.scoped.css +138 -138
  65. package/lib/internal/template/button/styles.selectors.js +18 -18
  66. package/lib/internal/template/button-dropdown/category-elements/styles.css.js +13 -13
  67. package/lib/internal/template/button-dropdown/category-elements/styles.scoped.css +25 -25
  68. package/lib/internal/template/button-dropdown/category-elements/styles.selectors.js +13 -13
  69. package/lib/internal/template/button-dropdown/item-element/styles.css.js +14 -14
  70. package/lib/internal/template/button-dropdown/item-element/styles.scoped.css +20 -20
  71. package/lib/internal/template/button-dropdown/item-element/styles.selectors.js +14 -14
  72. package/lib/internal/template/button-dropdown/mobile-expandable-group/styles.css.js +5 -5
  73. package/lib/internal/template/button-dropdown/mobile-expandable-group/styles.scoped.css +7 -7
  74. package/lib/internal/template/button-dropdown/mobile-expandable-group/styles.selectors.js +5 -5
  75. package/lib/internal/template/button-dropdown/styles.css.js +8 -8
  76. package/lib/internal/template/button-dropdown/styles.scoped.css +16 -16
  77. package/lib/internal/template/button-dropdown/styles.selectors.js +8 -8
  78. package/lib/internal/template/calendar/styles.css.js +18 -18
  79. package/lib/internal/template/calendar/styles.scoped.css +40 -40
  80. package/lib/internal/template/calendar/styles.selectors.js +18 -18
  81. package/lib/internal/template/cards/styles.css.js +37 -37
  82. package/lib/internal/template/cards/styles.scoped.css +122 -57
  83. package/lib/internal/template/cards/styles.selectors.js +37 -37
  84. package/lib/internal/template/checkbox/styles.css.js +3 -3
  85. package/lib/internal/template/checkbox/styles.scoped.css +7 -7
  86. package/lib/internal/template/checkbox/styles.selectors.js +3 -3
  87. package/lib/internal/template/code-editor/styles.css.js +32 -32
  88. package/lib/internal/template/code-editor/styles.scoped.css +159 -159
  89. package/lib/internal/template/code-editor/styles.selectors.js +32 -32
  90. package/lib/internal/template/collection-preferences/styles.css.js +20 -20
  91. package/lib/internal/template/collection-preferences/styles.scoped.css +25 -25
  92. package/lib/internal/template/collection-preferences/styles.selectors.js +20 -20
  93. package/lib/internal/template/column-layout/styles.css.js +13 -13
  94. package/lib/internal/template/column-layout/styles.scoped.css +45 -45
  95. package/lib/internal/template/column-layout/styles.selectors.js +13 -13
  96. package/lib/internal/template/container/internal.d.ts.map +1 -1
  97. package/lib/internal/template/container/internal.js +1 -1
  98. package/lib/internal/template/container/internal.js.map +1 -1
  99. package/lib/internal/template/container/styles.css.js +18 -17
  100. package/lib/internal/template/container/styles.scoped.css +106 -43
  101. package/lib/internal/template/container/styles.selectors.js +18 -17
  102. package/lib/internal/template/container/use-sticky-header.d.ts.map +1 -1
  103. package/lib/internal/template/container/use-sticky-header.js +4 -15
  104. package/lib/internal/template/container/use-sticky-header.js.map +1 -1
  105. package/lib/internal/template/content-layout/styles.css.js +7 -7
  106. package/lib/internal/template/content-layout/styles.scoped.css +13 -13
  107. package/lib/internal/template/content-layout/styles.selectors.js +7 -7
  108. package/lib/internal/template/date-picker/styles.css.js +7 -7
  109. package/lib/internal/template/date-picker/styles.scoped.css +11 -11
  110. package/lib/internal/template/date-picker/styles.selectors.js +7 -7
  111. package/lib/internal/template/date-range-picker/calendar/grids/styles.css.js +25 -25
  112. package/lib/internal/template/date-range-picker/calendar/grids/styles.scoped.css +44 -44
  113. package/lib/internal/template/date-range-picker/calendar/grids/styles.selectors.js +25 -25
  114. package/lib/internal/template/date-range-picker/relative-range/styles.css.js +9 -9
  115. package/lib/internal/template/date-range-picker/relative-range/styles.scoped.css +15 -15
  116. package/lib/internal/template/date-range-picker/relative-range/styles.selectors.js +9 -9
  117. package/lib/internal/template/date-range-picker/styles.css.js +38 -38
  118. package/lib/internal/template/date-range-picker/styles.scoped.css +47 -47
  119. package/lib/internal/template/date-range-picker/styles.selectors.js +38 -38
  120. package/lib/internal/template/expandable-section/styles.css.js +21 -21
  121. package/lib/internal/template/expandable-section/styles.scoped.css +44 -44
  122. package/lib/internal/template/expandable-section/styles.selectors.js +21 -21
  123. package/lib/internal/template/flashbar/collapsible-flashbar.d.ts +2 -2
  124. package/lib/internal/template/flashbar/collapsible-flashbar.d.ts.map +1 -1
  125. package/lib/internal/template/flashbar/collapsible-flashbar.js +19 -9
  126. package/lib/internal/template/flashbar/collapsible-flashbar.js.map +1 -1
  127. package/lib/internal/template/flashbar/common.d.ts +2 -2
  128. package/lib/internal/template/flashbar/common.d.ts.map +1 -1
  129. package/lib/internal/template/flashbar/common.js.map +1 -1
  130. package/lib/internal/template/flashbar/index.d.ts +2 -2
  131. package/lib/internal/template/flashbar/index.d.ts.map +1 -1
  132. package/lib/internal/template/flashbar/index.js +1 -4
  133. package/lib/internal/template/flashbar/index.js.map +1 -1
  134. package/lib/internal/template/flashbar/interfaces.d.ts +30 -17
  135. package/lib/internal/template/flashbar/interfaces.d.ts.map +1 -1
  136. package/lib/internal/template/flashbar/interfaces.js.map +1 -1
  137. package/lib/internal/template/flashbar/non-collapsible-flashbar.d.ts +2 -2
  138. package/lib/internal/template/flashbar/non-collapsible-flashbar.d.ts.map +1 -1
  139. package/lib/internal/template/flashbar/non-collapsible-flashbar.js.map +1 -1
  140. package/lib/internal/template/flashbar/styles.css.js +43 -43
  141. package/lib/internal/template/flashbar/styles.scoped.css +152 -163
  142. package/lib/internal/template/flashbar/styles.selectors.js +43 -43
  143. package/lib/internal/template/flashbar/utils.d.ts +1 -0
  144. package/lib/internal/template/flashbar/utils.d.ts.map +1 -1
  145. package/lib/internal/template/flashbar/utils.js +3 -0
  146. package/lib/internal/template/flashbar/utils.js.map +1 -1
  147. package/lib/internal/template/form/styles.css.js +8 -8
  148. package/lib/internal/template/form/styles.scoped.css +10 -10
  149. package/lib/internal/template/form/styles.selectors.js +8 -8
  150. package/lib/internal/template/form-field/styles.css.js +19 -19
  151. package/lib/internal/template/form-field/styles.scoped.css +31 -31
  152. package/lib/internal/template/form-field/styles.selectors.js +19 -19
  153. package/lib/internal/template/grid/styles.css.js +53 -53
  154. package/lib/internal/template/grid/styles.scoped.css +56 -56
  155. package/lib/internal/template/grid/styles.selectors.js +53 -53
  156. package/lib/internal/template/header/styles.css.js +44 -44
  157. package/lib/internal/template/header/styles.scoped.css +49 -49
  158. package/lib/internal/template/header/styles.selectors.js +44 -44
  159. package/lib/internal/template/help-panel/styles.css.js +4 -4
  160. package/lib/internal/template/help-panel/styles.scoped.css +60 -60
  161. package/lib/internal/template/help-panel/styles.selectors.js +4 -4
  162. package/lib/internal/template/hotspot/styles.css.js +7 -7
  163. package/lib/internal/template/hotspot/styles.scoped.css +9 -9
  164. package/lib/internal/template/hotspot/styles.selectors.js +7 -7
  165. package/lib/internal/template/icon/styles.css.js +21 -21
  166. package/lib/internal/template/icon/styles.scoped.css +50 -50
  167. package/lib/internal/template/icon/styles.selectors.js +21 -21
  168. package/lib/internal/template/input/styles.css.js +12 -12
  169. package/lib/internal/template/input/styles.scoped.css +32 -32
  170. package/lib/internal/template/input/styles.selectors.js +12 -12
  171. package/lib/internal/template/internal/base-component/styles.scoped.css +4 -4
  172. package/lib/internal/template/internal/components/abstract-switch/styles.css.js +12 -12
  173. package/lib/internal/template/internal/components/abstract-switch/styles.scoped.css +21 -21
  174. package/lib/internal/template/internal/components/abstract-switch/styles.selectors.js +12 -12
  175. package/lib/internal/template/internal/components/button-trigger/styles.css.js +9 -9
  176. package/lib/internal/template/internal/components/button-trigger/styles.scoped.css +25 -25
  177. package/lib/internal/template/internal/components/button-trigger/styles.selectors.js +9 -9
  178. package/lib/internal/template/internal/components/chart-filter/styles.css.js +3 -3
  179. package/lib/internal/template/internal/components/chart-filter/styles.scoped.css +5 -5
  180. package/lib/internal/template/internal/components/chart-filter/styles.selectors.js +3 -3
  181. package/lib/internal/template/internal/components/chart-legend/styles.css.js +6 -6
  182. package/lib/internal/template/internal/components/chart-legend/styles.scoped.css +17 -17
  183. package/lib/internal/template/internal/components/chart-legend/styles.selectors.js +6 -6
  184. package/lib/internal/template/internal/components/chart-plot/styles.css.js +5 -5
  185. package/lib/internal/template/internal/components/chart-plot/styles.scoped.css +7 -7
  186. package/lib/internal/template/internal/components/chart-plot/styles.selectors.js +5 -5
  187. package/lib/internal/template/internal/components/chart-popover/styles.css.js +3 -3
  188. package/lib/internal/template/internal/components/chart-popover/styles.scoped.css +5 -5
  189. package/lib/internal/template/internal/components/chart-popover/styles.selectors.js +3 -3
  190. package/lib/internal/template/internal/components/chart-series-details/styles.css.js +5 -5
  191. package/lib/internal/template/internal/components/chart-series-details/styles.scoped.css +10 -10
  192. package/lib/internal/template/internal/components/chart-series-details/styles.selectors.js +5 -5
  193. package/lib/internal/template/internal/components/chart-series-marker/styles.css.js +5 -5
  194. package/lib/internal/template/internal/components/chart-series-marker/styles.scoped.css +9 -9
  195. package/lib/internal/template/internal/components/chart-series-marker/styles.selectors.js +5 -5
  196. package/lib/internal/template/internal/components/checkbox-icon/styles.css.js +7 -7
  197. package/lib/internal/template/internal/components/checkbox-icon/styles.scoped.css +10 -10
  198. package/lib/internal/template/internal/components/checkbox-icon/styles.selectors.js +7 -7
  199. package/lib/internal/template/internal/components/dropdown/styles.css.js +20 -20
  200. package/lib/internal/template/internal/components/dropdown/styles.scoped.css +37 -37
  201. package/lib/internal/template/internal/components/dropdown/styles.selectors.js +20 -20
  202. package/lib/internal/template/internal/components/dropdown-footer/styles.css.js +3 -3
  203. package/lib/internal/template/internal/components/dropdown-footer/styles.scoped.css +5 -5
  204. package/lib/internal/template/internal/components/dropdown-footer/styles.selectors.js +3 -3
  205. package/lib/internal/template/internal/components/dropdown-status/styles.css.js +2 -2
  206. package/lib/internal/template/internal/components/dropdown-status/styles.scoped.css +4 -4
  207. package/lib/internal/template/internal/components/dropdown-status/styles.selectors.js +2 -2
  208. package/lib/internal/template/internal/components/filtering-token/styles.css.js +7 -7
  209. package/lib/internal/template/internal/components/filtering-token/styles.scoped.css +15 -15
  210. package/lib/internal/template/internal/components/filtering-token/styles.selectors.js +7 -7
  211. package/lib/internal/template/internal/components/menu-dropdown/styles.css.js +7 -7
  212. package/lib/internal/template/internal/components/menu-dropdown/styles.scoped.css +15 -15
  213. package/lib/internal/template/internal/components/menu-dropdown/styles.selectors.js +7 -7
  214. package/lib/internal/template/internal/components/option/styles.css.js +17 -17
  215. package/lib/internal/template/internal/components/option/styles.scoped.css +31 -31
  216. package/lib/internal/template/internal/components/option/styles.selectors.js +17 -17
  217. package/lib/internal/template/internal/components/options-list/styles.css.js +2 -2
  218. package/lib/internal/template/internal/components/options-list/styles.scoped.css +4 -4
  219. package/lib/internal/template/internal/components/options-list/styles.selectors.js +2 -2
  220. package/lib/internal/template/internal/components/screenreader-only/styles.css.js +1 -1
  221. package/lib/internal/template/internal/components/screenreader-only/styles.scoped.css +3 -3
  222. package/lib/internal/template/internal/components/screenreader-only/styles.selectors.js +1 -1
  223. package/lib/internal/template/internal/components/selectable-item/styles.css.js +16 -16
  224. package/lib/internal/template/internal/components/selectable-item/styles.scoped.css +29 -29
  225. package/lib/internal/template/internal/components/selectable-item/styles.selectors.js +16 -16
  226. package/lib/internal/template/internal/environment.js +1 -1
  227. package/lib/internal/template/internal/generated/custom-css-properties/index.d.ts.map +1 -1
  228. package/lib/internal/template/internal/generated/custom-css-properties/index.js +28 -27
  229. package/lib/internal/template/internal/generated/custom-css-properties/index.js.map +1 -1
  230. package/lib/internal/template/internal/generated/theming/index.cjs +6 -6
  231. package/lib/internal/template/internal/generated/theming/index.js +6 -6
  232. package/lib/internal/template/link/styles.css.js +20 -20
  233. package/lib/internal/template/link/styles.scoped.css +73 -73
  234. package/lib/internal/template/link/styles.selectors.js +20 -20
  235. package/lib/internal/template/mixed-line-bar-chart/styles.css.js +19 -19
  236. package/lib/internal/template/mixed-line-bar-chart/styles.scoped.css +28 -28
  237. package/lib/internal/template/mixed-line-bar-chart/styles.selectors.js +19 -19
  238. package/lib/internal/template/modal/styles.css.js +22 -22
  239. package/lib/internal/template/modal/styles.scoped.css +40 -47
  240. package/lib/internal/template/modal/styles.selectors.js +22 -22
  241. package/lib/internal/template/multiselect/styles.css.js +1 -1
  242. package/lib/internal/template/multiselect/styles.scoped.css +3 -3
  243. package/lib/internal/template/multiselect/styles.selectors.js +1 -1
  244. package/lib/internal/template/pagination/styles.css.js +9 -9
  245. package/lib/internal/template/pagination/styles.scoped.css +25 -25
  246. package/lib/internal/template/pagination/styles.selectors.js +9 -9
  247. package/lib/internal/template/pie-chart/styles.css.js +27 -27
  248. package/lib/internal/template/pie-chart/styles.scoped.css +45 -45
  249. package/lib/internal/template/pie-chart/styles.selectors.js +27 -27
  250. package/lib/internal/template/popover/styles.css.js +50 -50
  251. package/lib/internal/template/popover/styles.scoped.css +73 -73
  252. package/lib/internal/template/popover/styles.selectors.js +50 -50
  253. package/lib/internal/template/progress-bar/styles.css.js +18 -18
  254. package/lib/internal/template/progress-bar/styles.scoped.css +36 -36
  255. package/lib/internal/template/progress-bar/styles.selectors.js +18 -18
  256. package/lib/internal/template/property-filter/styles.css.js +33 -33
  257. package/lib/internal/template/property-filter/styles.scoped.css +37 -37
  258. package/lib/internal/template/property-filter/styles.selectors.js +33 -33
  259. package/lib/internal/template/radio-group/styles.css.js +9 -9
  260. package/lib/internal/template/radio-group/styles.scoped.css +17 -17
  261. package/lib/internal/template/radio-group/styles.selectors.js +9 -9
  262. package/lib/internal/template/segmented-control/styles.css.js +14 -14
  263. package/lib/internal/template/segmented-control/styles.scoped.css +35 -35
  264. package/lib/internal/template/segmented-control/styles.selectors.js +14 -14
  265. package/lib/internal/template/select/parts/styles.css.js +9 -9
  266. package/lib/internal/template/select/parts/styles.scoped.css +14 -14
  267. package/lib/internal/template/select/parts/styles.selectors.js +9 -9
  268. package/lib/internal/template/select/styles.css.js +1 -1
  269. package/lib/internal/template/select/styles.scoped.css +3 -3
  270. package/lib/internal/template/select/styles.selectors.js +1 -1
  271. package/lib/internal/template/side-navigation/styles.css.js +26 -26
  272. package/lib/internal/template/side-navigation/styles.scoped.css +38 -38
  273. package/lib/internal/template/side-navigation/styles.selectors.js +26 -26
  274. package/lib/internal/template/space-between/styles.css.js +28 -28
  275. package/lib/internal/template/space-between/styles.scoped.css +31 -31
  276. package/lib/internal/template/space-between/styles.selectors.js +28 -28
  277. package/lib/internal/template/spinner/styles.css.js +13 -13
  278. package/lib/internal/template/spinner/styles.scoped.css +20 -20
  279. package/lib/internal/template/spinner/styles.selectors.js +13 -13
  280. package/lib/internal/template/split-panel/styles.css.js +59 -59
  281. package/lib/internal/template/split-panel/styles.scoped.css +85 -85
  282. package/lib/internal/template/split-panel/styles.selectors.js +59 -59
  283. package/lib/internal/template/status-indicator/styles.css.js +20 -20
  284. package/lib/internal/template/status-indicator/styles.scoped.css +28 -28
  285. package/lib/internal/template/status-indicator/styles.selectors.js +20 -20
  286. package/lib/internal/template/table/body-cell/styles.css.js +18 -18
  287. package/lib/internal/template/table/body-cell/styles.scoped.css +52 -52
  288. package/lib/internal/template/table/body-cell/styles.selectors.js +18 -18
  289. package/lib/internal/template/table/header-cell/styles.css.js +19 -19
  290. package/lib/internal/template/table/header-cell/styles.scoped.css +33 -33
  291. package/lib/internal/template/table/header-cell/styles.selectors.js +19 -19
  292. package/lib/internal/template/table/resizer/styles.css.js +6 -6
  293. package/lib/internal/template/table/resizer/styles.scoped.css +13 -13
  294. package/lib/internal/template/table/resizer/styles.selectors.js +6 -6
  295. package/lib/internal/template/table/selection-control/styles.css.js +3 -3
  296. package/lib/internal/template/table/selection-control/styles.scoped.css +5 -5
  297. package/lib/internal/template/table/selection-control/styles.selectors.js +3 -3
  298. package/lib/internal/template/table/styles.css.js +33 -33
  299. package/lib/internal/template/table/styles.scoped.css +41 -41
  300. package/lib/internal/template/table/styles.selectors.js +33 -33
  301. package/lib/internal/template/tabs/styles.css.js +21 -21
  302. package/lib/internal/template/tabs/styles.scoped.css +42 -42
  303. package/lib/internal/template/tabs/styles.selectors.js +21 -21
  304. package/lib/internal/template/tag-editor/interfaces.d.ts +1 -0
  305. package/lib/internal/template/tag-editor/interfaces.d.ts.map +1 -1
  306. package/lib/internal/template/tag-editor/interfaces.js.map +1 -1
  307. package/lib/internal/template/tag-editor/styles.css.js +3 -3
  308. package/lib/internal/template/tag-editor/styles.scoped.css +12 -12
  309. package/lib/internal/template/tag-editor/styles.selectors.js +3 -3
  310. package/lib/internal/template/test-utils/dom/flashbar/index.d.ts +2 -0
  311. package/lib/internal/template/test-utils/dom/flashbar/index.js +2 -0
  312. package/lib/internal/template/test-utils/dom/flashbar/index.js.map +1 -1
  313. package/lib/internal/template/test-utils/selectors/flashbar/index.d.ts +2 -0
  314. package/lib/internal/template/test-utils/selectors/flashbar/index.js +2 -0
  315. package/lib/internal/template/test-utils/selectors/flashbar/index.js.map +1 -1
  316. package/lib/internal/template/test-utils/tsconfig.tsbuildinfo +1 -1
  317. package/lib/internal/template/text-content/styles.css.js +1 -1
  318. package/lib/internal/template/text-content/styles.scoped.css +62 -62
  319. package/lib/internal/template/text-content/styles.selectors.js +1 -1
  320. package/lib/internal/template/text-filter/styles.css.js +4 -4
  321. package/lib/internal/template/text-filter/styles.scoped.css +6 -6
  322. package/lib/internal/template/text-filter/styles.selectors.js +4 -4
  323. package/lib/internal/template/textarea/styles.css.js +4 -4
  324. package/lib/internal/template/textarea/styles.scoped.css +14 -14
  325. package/lib/internal/template/textarea/styles.selectors.js +4 -4
  326. package/lib/internal/template/tiles/styles.css.js +28 -28
  327. package/lib/internal/template/tiles/styles.scoped.css +70 -70
  328. package/lib/internal/template/tiles/styles.selectors.js +28 -28
  329. package/lib/internal/template/toggle/styles.css.js +8 -8
  330. package/lib/internal/template/toggle/styles.scoped.css +15 -15
  331. package/lib/internal/template/toggle/styles.selectors.js +8 -8
  332. package/lib/internal/template/token-group/styles.css.js +7 -7
  333. package/lib/internal/template/token-group/styles.scoped.css +24 -24
  334. package/lib/internal/template/token-group/styles.selectors.js +7 -7
  335. package/lib/internal/template/top-navigation/1.0-beta/styles.css.js +25 -25
  336. package/lib/internal/template/top-navigation/1.0-beta/styles.scoped.css +44 -44
  337. package/lib/internal/template/top-navigation/1.0-beta/styles.selectors.js +25 -25
  338. package/lib/internal/template/top-navigation/styles.css.js +47 -47
  339. package/lib/internal/template/top-navigation/styles.scoped.css +68 -68
  340. package/lib/internal/template/top-navigation/styles.selectors.js +47 -47
  341. package/lib/internal/template/tutorial-panel/components/tutorial-detail-view/styles.css.js +20 -20
  342. package/lib/internal/template/tutorial-panel/components/tutorial-detail-view/styles.scoped.css +23 -23
  343. package/lib/internal/template/tutorial-panel/components/tutorial-detail-view/styles.selectors.js +20 -20
  344. package/lib/internal/template/tutorial-panel/components/tutorial-list/styles.css.js +18 -18
  345. package/lib/internal/template/tutorial-panel/components/tutorial-list/styles.scoped.css +29 -29
  346. package/lib/internal/template/tutorial-panel/components/tutorial-list/styles.selectors.js +18 -18
  347. package/lib/internal/template/tutorial-panel/styles.css.js +1 -1
  348. package/lib/internal/template/tutorial-panel/styles.scoped.css +3 -3
  349. package/lib/internal/template/tutorial-panel/styles.selectors.js +1 -1
  350. package/lib/internal/template/wizard/index.d.ts.map +1 -1
  351. package/lib/internal/template/wizard/index.js +5 -4
  352. package/lib/internal/template/wizard/index.js.map +1 -1
  353. package/lib/internal/template/wizard/internal/analytics.d.ts +3 -3
  354. package/lib/internal/template/wizard/internal/analytics.d.ts.map +1 -1
  355. package/lib/internal/template/wizard/internal/analytics.js +6 -11
  356. package/lib/internal/template/wizard/internal/analytics.js.map +1 -1
  357. package/lib/internal/template/wizard/styles.css.js +32 -32
  358. package/lib/internal/template/wizard/styles.scoped.css +98 -64
  359. package/lib/internal/template/wizard/styles.selectors.js +32 -32
  360. package/package.json +1 -1
@@ -50,8 +50,6 @@
50
50
  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
51
51
  SPDX-License-Identifier: Apache-2.0
52
52
  */
53
- /* stylelint-disable @cloudscape-design/no-motion-outside-of-mixin, selector-combinator-disallowed-list, selector-pseudo-class-no-unknown, selector-class-pattern */
54
- /* stylelint-enable @cloudscape-design/no-motion-outside-of-mixin, selector-combinator-disallowed-list, selector-pseudo-class-no-unknown, selector-class-pattern */
55
53
  /*
56
54
  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
57
55
  SPDX-License-Identifier: Apache-2.0
@@ -64,6 +62,8 @@
64
62
  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
65
63
  SPDX-License-Identifier: Apache-2.0
66
64
  */
65
+ /* stylelint-disable @cloudscape-design/no-motion-outside-of-mixin, selector-combinator-disallowed-list, selector-pseudo-class-no-unknown, selector-class-pattern */
66
+ /* stylelint-enable @cloudscape-design/no-motion-outside-of-mixin, selector-combinator-disallowed-list, selector-pseudo-class-no-unknown, selector-class-pattern */
67
67
  /*
68
68
  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
69
69
  SPDX-License-Identifier: Apache-2.0
@@ -94,10 +94,10 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
94
94
  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
95
95
  SPDX-License-Identifier: Apache-2.0
96
96
  */
97
- .awsui_content-enter_gwq0h_tdpw1_97:not(#\9) {
98
- animation: awsui_awsui-motion-fade-in_gwq0h_tdpw1_1 var(--motion-duration-show-paced-7wspqf, 180ms) var(--motion-easing-show-paced-wj4ybn, ease-out);
97
+ .awsui_content-enter_gwq0h_18ph6_97:not(#\9) {
98
+ animation: awsui_awsui-motion-fade-in_gwq0h_18ph6_1 var(--motion-duration-show-paced-7wspqf, 180ms) var(--motion-easing-show-paced-wj4ybn, ease-out);
99
99
  }
100
- @keyframes awsui_awsui-motion-fade-in_gwq0h_tdpw1_1 {
100
+ @keyframes awsui_awsui-motion-fade-in_gwq0h_18ph6_1 {
101
101
  from {
102
102
  opacity: 0.2;
103
103
  }
@@ -106,40 +106,40 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
106
106
  }
107
107
  }
108
108
  @media (prefers-reduced-motion: reduce) {
109
- .awsui_content-enter_gwq0h_tdpw1_97:not(#\9) {
109
+ .awsui_content-enter_gwq0h_18ph6_97:not(#\9) {
110
110
  animation: none;
111
111
  transition: none;
112
112
  }
113
113
  }
114
- .awsui-motion-disabled .awsui_content-enter_gwq0h_tdpw1_97:not(#\9), .awsui-mode-entering .awsui_content-enter_gwq0h_tdpw1_97:not(#\9) {
114
+ .awsui-motion-disabled .awsui_content-enter_gwq0h_18ph6_97:not(#\9), .awsui-mode-entering .awsui_content-enter_gwq0h_18ph6_97:not(#\9) {
115
115
  animation: none;
116
116
  transition: none;
117
117
  }
118
118
 
119
- .awsui_trigger-expanded_gwq0h_tdpw1_119:not(#\9) {
119
+ .awsui_trigger-expanded_gwq0h_18ph6_119:not(#\9) {
120
120
  transition: border-bottom-color var(--motion-duration-show-paced-7wspqf, 180ms) var(--motion-easing-show-paced-wj4ybn, ease-out);
121
121
  }
122
122
  @media (prefers-reduced-motion: reduce) {
123
- .awsui_trigger-expanded_gwq0h_tdpw1_119:not(#\9) {
123
+ .awsui_trigger-expanded_gwq0h_18ph6_119:not(#\9) {
124
124
  animation: none;
125
125
  transition: none;
126
126
  }
127
127
  }
128
- .awsui-motion-disabled .awsui_trigger-expanded_gwq0h_tdpw1_119:not(#\9), .awsui-mode-entering .awsui_trigger-expanded_gwq0h_tdpw1_119:not(#\9) {
128
+ .awsui-motion-disabled .awsui_trigger-expanded_gwq0h_18ph6_119:not(#\9), .awsui-mode-entering .awsui_trigger-expanded_gwq0h_18ph6_119:not(#\9) {
129
129
  animation: none;
130
130
  transition: none;
131
131
  }
132
132
 
133
- .awsui_icon_gwq0h_tdpw1_133:not(#\9) {
133
+ .awsui_icon_gwq0h_18ph6_133:not(#\9) {
134
134
  transition: transform var(--motion-duration-rotate-90-ux18sr, 135ms) var(--motion-easing-rotate-90-eoew89, cubic-bezier(0.165, 0.84, 0.44, 1));
135
135
  }
136
136
  @media (prefers-reduced-motion: reduce) {
137
- .awsui_icon_gwq0h_tdpw1_133:not(#\9) {
137
+ .awsui_icon_gwq0h_18ph6_133:not(#\9) {
138
138
  animation: none;
139
139
  transition: none;
140
140
  }
141
141
  }
142
- .awsui-motion-disabled .awsui_icon_gwq0h_tdpw1_133:not(#\9), .awsui-mode-entering .awsui_icon_gwq0h_tdpw1_133:not(#\9) {
142
+ .awsui-motion-disabled .awsui_icon_gwq0h_18ph6_133:not(#\9), .awsui-mode-entering .awsui_icon_gwq0h_18ph6_133:not(#\9) {
143
143
  animation: none;
144
144
  transition: none;
145
145
  }
@@ -148,7 +148,7 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
148
148
  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
149
149
  SPDX-License-Identifier: Apache-2.0
150
150
  */
151
- .awsui_root_gwq0h_tdpw1_151:not(#\9) {
151
+ .awsui_root_gwq0h_18ph6_151:not(#\9) {
152
152
  /* stylelint-disable-next-line plugin/no-unsupported-browser-features */
153
153
  border-collapse: separate;
154
154
  border-spacing: 0;
@@ -191,20 +191,20 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
191
191
  display: block;
192
192
  }
193
193
 
194
- .awsui_icon_gwq0h_tdpw1_133:not(#\9) {
194
+ .awsui_icon_gwq0h_18ph6_133:not(#\9) {
195
195
  transform: rotate(-90deg);
196
196
  }
197
- .awsui_icon_gwq0h_tdpw1_133.awsui_expanded_gwq0h_tdpw1_171:not(#\9) {
197
+ .awsui_icon_gwq0h_18ph6_133.awsui_expanded_gwq0h_18ph6_171:not(#\9) {
198
198
  transform: rotate(0deg);
199
199
  }
200
200
 
201
- .awsui_icon-container_gwq0h_tdpw1_175:not(#\9) {
201
+ .awsui_icon-container_gwq0h_18ph6_175:not(#\9) {
202
202
  position: relative;
203
203
  margin-left: calc((var(--font-body-m-line-height-i7xxvv, 22px) - var(--size-icon-normal-j1z5fn, 16px)) / -2);
204
204
  margin-right: calc(var(--space-xxs-ynfts5, 4px) + var(--border-divider-list-width-hacikr, 1px));
205
205
  }
206
206
 
207
- .awsui_trigger_gwq0h_tdpw1_119:not(#\9) {
207
+ .awsui_trigger_gwq0h_18ph6_119:not(#\9) {
208
208
  cursor: pointer;
209
209
  box-sizing: border-box;
210
210
  display: flex;
@@ -213,19 +213,19 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
213
213
  line-height: var(--font-body-m-line-height-i7xxvv, 22px);
214
214
  text-align: left;
215
215
  }
216
- .awsui_trigger-default_gwq0h_tdpw1_190:not(#\9) {
216
+ .awsui_trigger-default_gwq0h_18ph6_190:not(#\9) {
217
217
  padding: var(--space-scaled-xxs-95dhkm, 4px) var(--space-xxs-ynfts5, 4px);
218
218
  }
219
- .awsui_trigger-footer_gwq0h_tdpw1_193:not(#\9) {
219
+ .awsui_trigger-footer_gwq0h_18ph6_193:not(#\9) {
220
220
  padding: var(--space-scaled-xxs-95dhkm, 4px) 0;
221
221
  }
222
- .awsui_trigger-default_gwq0h_tdpw1_190:not(#\9), .awsui_trigger-footer_gwq0h_tdpw1_193:not(#\9) {
222
+ .awsui_trigger-default_gwq0h_18ph6_190:not(#\9), .awsui_trigger-footer_gwq0h_18ph6_193:not(#\9) {
223
223
  border: var(--border-divider-section-width-5a4cv1, 1px) solid transparent;
224
224
  }
225
- .awsui_trigger-navigation_gwq0h_tdpw1_199:not(#\9) {
225
+ .awsui_trigger-navigation_gwq0h_18ph6_199:not(#\9) {
226
226
  border-left: var(--border-divider-section-width-5a4cv1, 1px) solid transparent;
227
227
  }
228
- .awsui_trigger-default_gwq0h_tdpw1_190:not(#\9), .awsui_trigger-navigation_gwq0h_tdpw1_199:not(#\9), .awsui_trigger-footer_gwq0h_tdpw1_193:not(#\9) {
228
+ .awsui_trigger-default_gwq0h_18ph6_190:not(#\9), .awsui_trigger-navigation_gwq0h_18ph6_199:not(#\9), .awsui_trigger-footer_gwq0h_18ph6_193:not(#\9) {
229
229
  color: var(--color-text-expandable-section-default-muap7v, #545b64);
230
230
  font-weight: var(--font-heading-s-weight-1ygwuy, 700);
231
231
  -webkit-font-smoothing: var(--font-smoothing-webkit-aglr0j, auto);
@@ -233,30 +233,30 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
233
233
  font-size: var(--font-expandable-heading-size-6cp6jd, 14px);
234
234
  letter-spacing: var(--font-heading-s-letter-spacing-i014lh, normal);
235
235
  }
236
- .awsui_trigger-default_gwq0h_tdpw1_190:not(#\9):hover, .awsui_trigger-navigation_gwq0h_tdpw1_199:not(#\9):hover, .awsui_trigger-footer_gwq0h_tdpw1_193:not(#\9):hover {
236
+ .awsui_trigger-default_gwq0h_18ph6_190:not(#\9):hover, .awsui_trigger-navigation_gwq0h_18ph6_199:not(#\9):hover, .awsui_trigger-footer_gwq0h_18ph6_193:not(#\9):hover {
237
237
  color: var(--color-text-expandable-section-hover-fhlqd8, #16191f);
238
238
  }
239
- .awsui_trigger-container_gwq0h_tdpw1_213:not(#\9) {
239
+ .awsui_trigger-container_gwq0h_18ph6_213:not(#\9) {
240
240
  padding: var(--space-container-header-vertical-0bd19u, 12px) var(--space-container-horizontal-tlw03i, 20px);
241
241
  }
242
- .awsui_trigger-container_gwq0h_tdpw1_213[data-awsui-focus-visible=true]:not(#\9):focus {
242
+ .awsui_trigger-container_gwq0h_18ph6_213[data-awsui-focus-visible=true]:not(#\9):focus {
243
243
  padding: calc(var(--space-scaled-s-cu1hzn, 12px) - var(--border-divider-section-width-5a4cv1, 1px)) calc(var(--space-l-4vl6xu, 20px) - var(--border-divider-section-width-5a4cv1, 1px));
244
244
  }
245
- .awsui_trigger-default_gwq0h_tdpw1_190.awsui_trigger-expanded_gwq0h_tdpw1_119:not(#\9) {
245
+ .awsui_trigger-default_gwq0h_18ph6_190.awsui_trigger-expanded_gwq0h_18ph6_119:not(#\9) {
246
246
  border-bottom-color: var(--color-border-divider-default-k96bks, #eaeded);
247
247
  }
248
248
 
249
- .awsui_header_gwq0h_tdpw1_223:not(#\9) {
249
+ .awsui_header_gwq0h_18ph6_223:not(#\9) {
250
250
  display: flex;
251
251
  }
252
- .awsui_header-container_gwq0h_tdpw1_226:not(#\9) {
252
+ .awsui_header-container_gwq0h_18ph6_226:not(#\9) {
253
253
  width: 100%;
254
254
  }
255
- .awsui_header-container_gwq0h_tdpw1_226 > .awsui_icon-container_gwq0h_tdpw1_175:not(#\9) {
255
+ .awsui_header-container_gwq0h_18ph6_226 > .awsui_icon-container_gwq0h_18ph6_175:not(#\9) {
256
256
  margin-top: var(--space-expandable-section-icon-offset-top-jo3eu8, 8px);
257
257
  margin-right: var(--space-xs-rsr2qu, 8px);
258
258
  }
259
- .awsui_header-container_gwq0h_tdpw1_226[data-awsui-focus-visible=true]:not(#\9):focus-within {
259
+ .awsui_header-container_gwq0h_18ph6_226[data-awsui-focus-visible=true]:not(#\9):focus-within {
260
260
  outline: none;
261
261
  text-decoration: none;
262
262
  padding: calc(var(--space-scaled-s-cu1hzn, 12px) - var(--border-divider-section-width-5a4cv1, 1px)) calc(var(--space-l-4vl6xu, 20px) - var(--border-divider-section-width-5a4cv1, 1px));
@@ -265,15 +265,15 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
265
265
  border-radius: var(--border-radius-control-default-focus-ring-hekmgc, 2px);
266
266
  box-shadow: 0 0 0 var(--border-control-focus-ring-shadow-spread-glnuoy, 1px) var(--color-border-item-focused-n5kd8g, #0073bb);
267
267
  }
268
- .awsui_header-container-button_gwq0h_tdpw1_242:not(#\9):focus {
268
+ .awsui_header-container-button_gwq0h_18ph6_242:not(#\9):focus {
269
269
  outline: none;
270
270
  text-decoration: none;
271
271
  }
272
- .awsui_header-container-button_gwq0h_tdpw1_242 > .awsui_icon-container_gwq0h_tdpw1_175:not(#\9) {
272
+ .awsui_header-container-button_gwq0h_18ph6_242 > .awsui_icon-container_gwq0h_18ph6_175:not(#\9) {
273
273
  margin-top: var(--space-expandable-section-icon-offset-top-jo3eu8, 8px);
274
274
  margin-right: var(--space-xs-rsr2qu, 8px);
275
275
  }
276
- .awsui_header-navigation_gwq0h_tdpw1_250 > .awsui_icon-container_gwq0h_tdpw1_175:not(#\9) {
276
+ .awsui_header-navigation_gwq0h_18ph6_250 > .awsui_icon-container_gwq0h_18ph6_175:not(#\9) {
277
277
  display: inline-flex;
278
278
  cursor: pointer;
279
279
  color: var(--color-text-expandable-section-navigation-icon-default-xyvmb6, #879596);
@@ -284,17 +284,17 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
284
284
  text-decoration: none;
285
285
  flex-direction: column;
286
286
  }
287
- .awsui_header-navigation_gwq0h_tdpw1_250 > .awsui_icon-container_gwq0h_tdpw1_175:not(#\9):hover {
287
+ .awsui_header-navigation_gwq0h_18ph6_250 > .awsui_icon-container_gwq0h_18ph6_175:not(#\9):hover {
288
288
  color: var(--color-text-expandable-section-hover-fhlqd8, #16191f);
289
289
  }
290
- .awsui_header-navigation_gwq0h_tdpw1_250 > .awsui_icon-container_gwq0h_tdpw1_175[data-awsui-focus-visible=true]:not(#\9):focus {
290
+ .awsui_header-navigation_gwq0h_18ph6_250 > .awsui_icon-container_gwq0h_18ph6_175[data-awsui-focus-visible=true]:not(#\9):focus {
291
291
  position: relative;
292
292
  }
293
- .awsui_header-navigation_gwq0h_tdpw1_250 > .awsui_icon-container_gwq0h_tdpw1_175[data-awsui-focus-visible=true]:not(#\9):focus {
293
+ .awsui_header-navigation_gwq0h_18ph6_250 > .awsui_icon-container_gwq0h_18ph6_175[data-awsui-focus-visible=true]:not(#\9):focus {
294
294
  outline: 2px dotted transparent;
295
295
  outline-offset: calc(2px - 1px);
296
296
  }
297
- .awsui_header-navigation_gwq0h_tdpw1_250 > .awsui_icon-container_gwq0h_tdpw1_175[data-awsui-focus-visible=true]:not(#\9):focus::before {
297
+ .awsui_header-navigation_gwq0h_18ph6_250 > .awsui_icon-container_gwq0h_18ph6_175[data-awsui-focus-visible=true]:not(#\9):focus::before {
298
298
  content: " ";
299
299
  display: block;
300
300
  position: absolute;
@@ -306,24 +306,24 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
306
306
  box-shadow: 0 0 0 2px var(--color-border-item-focused-n5kd8g, #0073bb);
307
307
  }
308
308
 
309
- .awsui_content_gwq0h_tdpw1_97:not(#\9) {
309
+ .awsui_content_gwq0h_18ph6_97:not(#\9) {
310
310
  display: none;
311
311
  }
312
- .awsui_content-default_gwq0h_tdpw1_286:not(#\9) {
312
+ .awsui_content-default_gwq0h_18ph6_286:not(#\9) {
313
313
  padding: var(--space-scaled-xs-6859qs, 8px) 0;
314
314
  }
315
- .awsui_content-footer_gwq0h_tdpw1_289:not(#\9) {
315
+ .awsui_content-footer_gwq0h_18ph6_289:not(#\9) {
316
316
  padding: var(--space-xs-rsr2qu, 8px) 0;
317
317
  }
318
- .awsui_content-expanded_gwq0h_tdpw1_292:not(#\9) {
318
+ .awsui_content-expanded_gwq0h_18ph6_292:not(#\9) {
319
319
  display: block;
320
320
  }
321
321
 
322
- .awsui_focusable_gwq0h_tdpw1_296:not(#\9):focus {
322
+ .awsui_focusable_gwq0h_18ph6_296:not(#\9):focus {
323
323
  outline: none;
324
324
  text-decoration: none;
325
325
  }
326
- .awsui_focusable_gwq0h_tdpw1_296[data-awsui-focus-visible=true]:not(#\9):focus {
326
+ .awsui_focusable_gwq0h_18ph6_296[data-awsui-focus-visible=true]:not(#\9):focus {
327
327
  outline: 2px dotted transparent;
328
328
  border: var(--border-field-width-y6x4sn, 1px) solid var(--color-border-item-focused-n5kd8g, #0073bb);
329
329
  border-radius: var(--border-radius-control-default-focus-ring-hekmgc, 2px);
@@ -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
- "content-enter": "awsui_content-enter_gwq0h_tdpw1_97",
6
- "awsui-motion-fade-in": "awsui_awsui-motion-fade-in_gwq0h_tdpw1_1",
7
- "trigger-expanded": "awsui_trigger-expanded_gwq0h_tdpw1_119",
8
- "icon": "awsui_icon_gwq0h_tdpw1_133",
9
- "root": "awsui_root_gwq0h_tdpw1_151",
10
- "expanded": "awsui_expanded_gwq0h_tdpw1_171",
11
- "icon-container": "awsui_icon-container_gwq0h_tdpw1_175",
12
- "trigger": "awsui_trigger_gwq0h_tdpw1_119",
13
- "trigger-default": "awsui_trigger-default_gwq0h_tdpw1_190",
14
- "trigger-footer": "awsui_trigger-footer_gwq0h_tdpw1_193",
15
- "trigger-navigation": "awsui_trigger-navigation_gwq0h_tdpw1_199",
16
- "trigger-container": "awsui_trigger-container_gwq0h_tdpw1_213",
17
- "header": "awsui_header_gwq0h_tdpw1_223",
18
- "header-container": "awsui_header-container_gwq0h_tdpw1_226",
19
- "header-container-button": "awsui_header-container-button_gwq0h_tdpw1_242",
20
- "header-navigation": "awsui_header-navigation_gwq0h_tdpw1_250",
21
- "content": "awsui_content_gwq0h_tdpw1_97",
22
- "content-default": "awsui_content-default_gwq0h_tdpw1_286",
23
- "content-footer": "awsui_content-footer_gwq0h_tdpw1_289",
24
- "content-expanded": "awsui_content-expanded_gwq0h_tdpw1_292",
25
- "focusable": "awsui_focusable_gwq0h_tdpw1_296"
5
+ "content-enter": "awsui_content-enter_gwq0h_18ph6_97",
6
+ "awsui-motion-fade-in": "awsui_awsui-motion-fade-in_gwq0h_18ph6_1",
7
+ "trigger-expanded": "awsui_trigger-expanded_gwq0h_18ph6_119",
8
+ "icon": "awsui_icon_gwq0h_18ph6_133",
9
+ "root": "awsui_root_gwq0h_18ph6_151",
10
+ "expanded": "awsui_expanded_gwq0h_18ph6_171",
11
+ "icon-container": "awsui_icon-container_gwq0h_18ph6_175",
12
+ "trigger": "awsui_trigger_gwq0h_18ph6_119",
13
+ "trigger-default": "awsui_trigger-default_gwq0h_18ph6_190",
14
+ "trigger-footer": "awsui_trigger-footer_gwq0h_18ph6_193",
15
+ "trigger-navigation": "awsui_trigger-navigation_gwq0h_18ph6_199",
16
+ "trigger-container": "awsui_trigger-container_gwq0h_18ph6_213",
17
+ "header": "awsui_header_gwq0h_18ph6_223",
18
+ "header-container": "awsui_header-container_gwq0h_18ph6_226",
19
+ "header-container-button": "awsui_header-container-button_gwq0h_18ph6_242",
20
+ "header-navigation": "awsui_header-navigation_gwq0h_18ph6_250",
21
+ "content": "awsui_content_gwq0h_18ph6_97",
22
+ "content-default": "awsui_content-default_gwq0h_18ph6_286",
23
+ "content-footer": "awsui_content-footer_gwq0h_18ph6_289",
24
+ "content-expanded": "awsui_content-expanded_gwq0h_18ph6_292",
25
+ "focusable": "awsui_focusable_gwq0h_18ph6_296"
26
26
  };
27
27
 
@@ -1,4 +1,4 @@
1
- import { FlashbarProps, CollapsibleFlashbarProps } from './interfaces';
1
+ import { FlashbarProps } from './interfaces';
2
2
  export { FlashbarProps };
3
- export default function CollapsibleFlashbar({ items, ...restProps }: FlashbarProps & CollapsibleFlashbarProps): JSX.Element;
3
+ export default function CollapsibleFlashbar({ items, ...restProps }: FlashbarProps): JSX.Element;
4
4
  //# sourceMappingURL=collapsible-flashbar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"collapsible-flashbar.d.ts","sourceRoot":"","sources":["../../../src/flashbar/collapsible-flashbar.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAgBvE,OAAO,EAAE,aAAa,EAAE,CAAC;AAQzB,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,EAAE,aAAa,GAAG,wBAAwB,eAuS5G"}
1
+ {"version":3,"file":"collapsible-flashbar.d.ts","sourceRoot":"","sources":["../../../src/flashbar/collapsible-flashbar.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAuB7C,OAAO,EAAE,aAAa,EAAE,CAAC;AAQzB,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,EAAE,aAAa,eAoTjF"}
@@ -11,12 +11,13 @@ import { Transition } from '../internal/components/transition';
11
11
  import useFocusVisible from '../internal/hooks/focus-visible';
12
12
  import { getVisualContextClassname } from '../internal/components/visual-context';
13
13
  import styles from './styles.css.js';
14
- import { counterTypes, getFlashTypeCount, getVisibleCollapsedItems } from './utils';
14
+ import { counterTypes, getFlashTypeCount, getVisibleCollapsedItems, isElementTopBeyondViewport, } from './utils';
15
15
  import { animate, getDOMRects } from '../internal/animate';
16
16
  import { useUniqueId } from '../internal/hooks/use-unique-id';
17
17
  import { sendToggleMetric } from './internal/analytics';
18
18
  import { useFlashbar } from './common';
19
19
  import { throttle } from '../internal/utils/throttle';
20
+ import { scrollElementIntoView } from '../internal/utils/scrollable-containers';
20
21
  // If the number of items is equal or less than this value,
21
22
  // the toggle element will not be displayed and the Flashbar will look like a regular single-item Flashbar.
22
23
  var maxNonCollapsibleItems = 1;
@@ -78,20 +79,22 @@ export default function CollapsibleFlashbar(_a) {
78
79
  }, [isFlashbarStackExpanded]);
79
80
  var updateBottomSpacing = useMemo(function () {
80
81
  return throttle(function () {
82
+ var _a;
81
83
  // Allow vertical space between Flashbar and page bottom only when the Flashbar is reaching the end of the page,
82
84
  // otherwise avoid spacing with eventual sticky elements below.
83
85
  var listElement = listElementRef === null || listElementRef === void 0 ? void 0 : listElementRef.current;
84
86
  var flashbar = listElement === null || listElement === void 0 ? void 0 : listElement.parentElement;
85
87
  if (listElement && flashbar) {
86
- var bottom = listElement.getBoundingClientRect().bottom;
87
- var windowHeight = window.innerHeight;
88
- // Apply the class first (before rendering)
89
- // so that we can make calculations based on the applied padding-bottom;
88
+ // Make sure the bottom padding is present when we make the calculations,
90
89
  // then we might decide to remove it or not.
91
- flashbar.classList.add(styles['spaced-bottom']);
92
- var applySpacing = isFlashbarStackExpanded && bottom + parseInt(getComputedStyle(flashbar).paddingBottom) >= windowHeight;
90
+ flashbar.classList.remove(styles.floating);
91
+ var windowHeight = window.innerHeight;
92
+ // Take the parent region into account if using the App Layout, because it might have additional margins.
93
+ // Otherwise we use the Flashbar component for this calculation.
94
+ var outerElement = ((_a = flashbar.parentElement) === null || _a === void 0 ? void 0 : _a.parentElement) || flashbar;
95
+ var applySpacing = isFlashbarStackExpanded && Math.ceil(outerElement.getBoundingClientRect().bottom) >= windowHeight;
93
96
  if (!applySpacing) {
94
- flashbar.classList.remove(styles['spaced-bottom']);
97
+ flashbar.classList.add(styles.floating);
95
98
  }
96
99
  }
97
100
  }, resizeListenerThrottleDelay);
@@ -111,6 +114,10 @@ export default function CollapsibleFlashbar(_a) {
111
114
  // and the new state can be retrieved from the current DOM elements.
112
115
  if (initialAnimationState) {
113
116
  updateBottomSpacing();
117
+ // When collapsing, scroll up if necessary to avoid losing track of the focused button
118
+ var shouldScrollUp = notificationBarRef.current &&
119
+ !isFlashbarStackExpanded &&
120
+ isElementTopBeyondViewport(notificationBarRef.current);
114
121
  animate({
115
122
  elements: getElementsToAnimate(),
116
123
  oldState: initialAnimationState,
@@ -120,6 +127,9 @@ export default function CollapsibleFlashbar(_a) {
120
127
  },
121
128
  onTransitionsEnd: function () { return setTransitioning(false); }
122
129
  });
130
+ if (notificationBarRef.current && shouldScrollUp) {
131
+ scrollElementIntoView(notificationBarRef.current);
132
+ }
123
133
  setTransitioning(true);
124
134
  setInitialAnimationState(null);
125
135
  }
@@ -184,7 +194,7 @@ export default function CollapsibleFlashbar(_a) {
184
194
  return (React.createElement("div", __assign({}, baseProps, { className: clsx(baseProps.className, styles.flashbar, styles["breakpoint-".concat(breakpoint)], styles.stack, isFlashbarStackExpanded && styles.expanded, getVisualContextClassname('flashbar')), ref: mergedRef }),
185
195
  React.createElement(React.Fragment, null,
186
196
  isFlashbarStackExpanded && renderList(),
187
- isCollapsible && (React.createElement("div", { className: clsx(styles.toggle, isVisualRefresh && styles['visual-refresh'], isFlashbarStackExpanded ? styles.expanded : styles.collapsed, transitioning && styles['animation-running']), onClick: toggleCollapseExpand, ref: notificationBarRef },
197
+ isCollapsible && (React.createElement("div", { className: clsx(styles['notification-bar'], isVisualRefresh && styles['visual-refresh'], isFlashbarStackExpanded ? styles.expanded : styles.collapsed, transitioning && styles['animation-running']), onClick: toggleCollapseExpand, ref: notificationBarRef },
188
198
  React.createElement("span", { "aria-live": "polite", className: styles.status, role: "status", id: itemCountElementId },
189
199
  notificationBarText && React.createElement("h2", { className: styles.header }, notificationBarText),
190
200
  React.createElement("span", { className: styles['item-count'] }, counterTypes.map(function (_a) {
@@ -1 +1 @@
1
- {"version":3,"file":"collapsible-flashbar.js","sourceRoot":"","sources":["../../../src/flashbar/collapsible-flashbar.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 clsx from 'clsx';\nimport React, { useCallback, useLayoutEffect, useMemo, useRef, useState } from 'react';\nimport customCssProps from '../internal/generated/custom-css-properties';\nimport { Flash, focusFlashById } from './flash';\nimport { FlashbarProps, CollapsibleFlashbarProps } from './interfaces';\nimport InternalIcon from '../icon/internal';\nimport { TransitionGroup } from 'react-transition-group';\nimport { Transition } from '../internal/components/transition';\nimport useFocusVisible from '../internal/hooks/focus-visible';\nimport { getVisualContextClassname } from '../internal/components/visual-context';\n\nimport styles from './styles.css.js';\nimport { counterTypes, getFlashTypeCount, getVisibleCollapsedItems, StackableItem } from './utils';\nimport { animate, getDOMRects } from '../internal/animate';\nimport { useUniqueId } from '../internal/hooks/use-unique-id';\nimport { IconProps } from '../icon/interfaces';\nimport { sendToggleMetric } from './internal/analytics';\nimport { useFlashbar } from './common';\nimport { throttle } from '../internal/utils/throttle';\n\nexport { FlashbarProps };\n\n// If the number of items is equal or less than this value,\n// the toggle element will not be displayed and the Flashbar will look like a regular single-item Flashbar.\nconst maxNonCollapsibleItems = 1;\n\nconst resizeListenerThrottleDelay = 100;\n\nexport default function CollapsibleFlashbar({ items, ...restProps }: FlashbarProps & CollapsibleFlashbarProps) {\n const [enteringItems, setEnteringItems] = useState<ReadonlyArray<FlashbarProps.MessageDefinition>>([]);\n const [exitingItems, setExitingItems] = useState<ReadonlyArray<FlashbarProps.MessageDefinition>>([]);\n const [isFlashbarStackExpanded, setIsFlashbarStackExpanded] = useState(false);\n\n const getElementsToAnimate = useCallback(() => {\n const flashElements = isFlashbarStackExpanded ? expandedItemRefs.current : collapsedItemRefs.current;\n return { ...flashElements, notificationBar: notificationBarRef.current };\n }, [isFlashbarStackExpanded]);\n\n const prepareAnimations = useCallback(() => {\n const rects = getDOMRects(getElementsToAnimate());\n setInitialAnimationState(rects);\n }, [getElementsToAnimate]);\n\n const { ariaLabel, baseProps, breakpoint, isReducedMotion, isVisualRefresh, mergedRef, ref } = useFlashbar({\n items,\n ...restProps,\n onItemsAdded: newItems => {\n setEnteringItems([...enteringItems, ...newItems]);\n },\n onItemsChanged: options => {\n // If not all items have ID, we can still animate collapse/expand transitions\n // because we can rely on each item's index in the original array,\n // but we can't do that when elements are added or removed, since the index changes.\n if (options?.allItemsHaveId && !options?.isReducedMotion) {\n prepareAnimations();\n }\n },\n onItemsRemoved: removedItems => {\n setExitingItems([...exitingItems, ...removedItems]);\n },\n });\n\n const isFocusVisible = useFocusVisible();\n const collapsedItemRefs = useRef<Record<string | number, HTMLElement | null>>({});\n const expandedItemRefs = useRef<Record<string | number, HTMLElement | null>>({});\n const [initialAnimationState, setInitialAnimationState] = useState<Record<string | number, DOMRect> | null>(null);\n const listElementRef = useRef<HTMLUListElement | null>(null);\n const notificationBarRef = useRef<HTMLDivElement | null>(null);\n const [transitioning, setTransitioning] = useState(false);\n const flashbarElementId = useUniqueId('flashbar');\n const itemCountElementId = useUniqueId('item-count');\n\n if (items.length <= maxNonCollapsibleItems && isFlashbarStackExpanded) {\n setIsFlashbarStackExpanded(false);\n }\n\n const animateFlash = !isReducedMotion;\n\n function toggleCollapseExpand() {\n sendToggleMetric(items.length, !isFlashbarStackExpanded);\n if (!isReducedMotion) {\n prepareAnimations();\n }\n setIsFlashbarStackExpanded(prev => !prev);\n }\n\n useLayoutEffect(() => {\n if (isFlashbarStackExpanded && items?.length) {\n const mostRecentItem = items[0];\n if (mostRecentItem.id !== undefined) {\n focusFlashById(ref.current, mostRecentItem.id);\n }\n }\n // Run this after expanding, but not every time the items change.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isFlashbarStackExpanded]);\n\n const updateBottomSpacing = useMemo(\n () =>\n throttle(() => {\n // Allow vertical space between Flashbar and page bottom only when the Flashbar is reaching the end of the page,\n // otherwise avoid spacing with eventual sticky elements below.\n const listElement = listElementRef?.current;\n const flashbar = listElement?.parentElement;\n if (listElement && flashbar) {\n const bottom = listElement.getBoundingClientRect().bottom;\n const windowHeight = window.innerHeight;\n // Apply the class first (before rendering)\n // so that we can make calculations based on the applied padding-bottom;\n // then we might decide to remove it or not.\n flashbar.classList.add(styles['spaced-bottom']);\n const applySpacing =\n isFlashbarStackExpanded && bottom + parseInt(getComputedStyle(flashbar).paddingBottom) >= windowHeight;\n if (!applySpacing) {\n flashbar.classList.remove(styles['spaced-bottom']);\n }\n }\n }, resizeListenerThrottleDelay),\n [isFlashbarStackExpanded]\n );\n\n useLayoutEffect(() => {\n window.addEventListener('resize', updateBottomSpacing);\n return () => {\n window.removeEventListener('resize', updateBottomSpacing);\n updateBottomSpacing.cancel();\n };\n }, [updateBottomSpacing]);\n\n const { i18nStrings } = restProps;\n\n useLayoutEffect(() => {\n // When `useLayoutEffect` is called, the DOM is updated but has not been painted yet,\n // so it's a good moment to trigger animations that will make calculations based on old and new DOM state.\n // The old state is kept in `initialAnimationState`\n // and the new state can be retrieved from the current DOM elements.\n\n if (initialAnimationState) {\n updateBottomSpacing();\n animate({\n elements: getElementsToAnimate(),\n oldState: initialAnimationState,\n newElementInitialState: ({ top }) => ({ scale: 0.9, y: -0.2 * top }),\n onTransitionsEnd: () => setTransitioning(false),\n });\n setTransitioning(true);\n setInitialAnimationState(null);\n }\n }, [updateBottomSpacing, getElementsToAnimate, initialAnimationState, isFlashbarStackExpanded]);\n\n const isCollapsible = items.length > maxNonCollapsibleItems;\n\n const countByType = getFlashTypeCount(items);\n\n const stackDepth = Math.min(3, items.length);\n\n const itemsToShow = isFlashbarStackExpanded\n ? items.map((item, index) => ({ ...item, expandedIndex: index }))\n : getVisibleCollapsedItems(items, stackDepth).map((item: StackableItem, index: number) => ({\n ...item,\n collapsedIndex: index,\n }));\n\n const notificationBarText = i18nStrings?.notificationBarText;\n\n const getItemId = (item: StackableItem | FlashbarProps.MessageDefinition) =>\n item.id ?? (item as StackableItem).expandedIndex ?? 0;\n\n // This check allows us to use the standard \"enter\" Transition only when the notification was not existing before.\n // If instead it was moved to the top of the stack but was already present in the array\n // (e.g, after dismissing another notification),\n // we need to use different, more custom and more controlled animations.\n const hasEntered = (item: StackableItem | FlashbarProps.MessageDefinition) =>\n enteringItems.some(_item => _item.id && _item.id === item.id);\n const hasLeft = (item: StackableItem | FlashbarProps.MessageDefinition) => !('expandedIndex' in item);\n const hasEnteredOrLeft = (item: StackableItem | FlashbarProps.MessageDefinition) => hasEntered(item) || hasLeft(item);\n\n const showInnerContent = (item: StackableItem | FlashbarProps.MessageDefinition) =>\n isFlashbarStackExpanded || hasLeft(item) || ('expandedIndex' in item && item.expandedIndex === 0);\n\n const shouldUseStandardAnimation = (item: StackableItem, index: number) => index === 0 && hasEnteredOrLeft(item);\n\n const getAnimationElementId = (item: StackableItem) => `flash-${getItemId(item)}`;\n\n const renderList = () => (\n <ul\n ref={listElementRef}\n className={clsx(\n styles['flash-list'],\n isFlashbarStackExpanded ? styles.expanded : styles.collapsed,\n transitioning && styles['animation-running'],\n initialAnimationState && styles['animation-ready'],\n isVisualRefresh && styles['visual-refresh']\n )}\n id={flashbarElementId}\n aria-label={ariaLabel}\n aria-describedby={isCollapsible ? itemCountElementId : undefined}\n style={\n !isFlashbarStackExpanded || transitioning\n ? {\n [customCssProps.flashbarStackDepth]: stackDepth,\n }\n : undefined\n }\n >\n <TransitionGroup component={null}>\n {itemsToShow.map((item: StackableItem, index: number) => (\n <Transition\n key={getItemId(item)}\n in={!hasLeft(item)}\n onStatusChange={status => {\n if (status === 'entered') {\n setEnteringItems([]);\n } else if (status === 'exited') {\n setExitingItems([]);\n }\n }}\n >\n {(state: string, transitionRootElement: React.Ref<HTMLDivElement> | undefined) => (\n <li\n aria-hidden={!showInnerContent(item)}\n className={\n showInnerContent(item)\n ? clsx(\n styles['flash-list-item'],\n !isFlashbarStackExpanded && styles.item,\n !collapsedItemRefs.current[getAnimationElementId(item)] && styles['expanded-only']\n )\n : clsx(styles.flash, styles[`flash-type-${item.type ?? 'info'}`], styles.item)\n }\n ref={element => {\n if (isFlashbarStackExpanded) {\n expandedItemRefs.current[getAnimationElementId(item)] = element;\n } else {\n collapsedItemRefs.current[getAnimationElementId(item)] = element;\n }\n }}\n style={\n !isFlashbarStackExpanded || transitioning\n ? {\n [customCssProps.flashbarStackIndex]:\n (item as StackableItem).collapsedIndex ?? (item as StackableItem).expandedIndex ?? index,\n }\n : undefined\n }\n key={getItemId(item)}\n >\n {showInnerContent(item) && (\n <Flash\n // eslint-disable-next-line react/forbid-component-props\n className={clsx(\n animateFlash && styles['flash-with-motion'],\n isVisualRefresh && styles['flash-refresh']\n )}\n key={getItemId(item)}\n ref={shouldUseStandardAnimation(item, index) ? transitionRootElement : undefined}\n transitionState={shouldUseStandardAnimation(item, index) ? state : undefined}\n {...item}\n />\n )}\n </li>\n )}\n </Transition>\n ))}\n </TransitionGroup>\n </ul>\n );\n\n return (\n <div\n {...baseProps}\n className={clsx(\n baseProps.className,\n styles.flashbar,\n styles[`breakpoint-${breakpoint}`],\n styles.stack,\n isFlashbarStackExpanded && styles.expanded,\n getVisualContextClassname('flashbar')\n )}\n ref={mergedRef}\n >\n <>\n {isFlashbarStackExpanded && renderList()}\n {isCollapsible && (\n <div\n className={clsx(\n styles.toggle,\n isVisualRefresh && styles['visual-refresh'],\n isFlashbarStackExpanded ? styles.expanded : styles.collapsed,\n transitioning && styles['animation-running']\n )}\n onClick={toggleCollapseExpand}\n ref={notificationBarRef}\n >\n <span aria-live=\"polite\" className={styles.status} role=\"status\" id={itemCountElementId}>\n {notificationBarText && <h2 className={styles.header}>{notificationBarText}</h2>}\n <span className={styles['item-count']}>\n {counterTypes.map(({ type, labelName, iconName }) => (\n <NotificationTypeCount\n key={type}\n iconName={iconName}\n label={i18nStrings ? i18nStrings[labelName] : undefined}\n count={countByType[type]}\n />\n ))}\n </span>\n </span>\n <button\n aria-controls={flashbarElementId}\n aria-describedby={itemCountElementId}\n aria-expanded={isFlashbarStackExpanded}\n aria-label={i18nStrings?.notificationBarAriaLabel}\n className={clsx(styles.button, isFlashbarStackExpanded && styles.expanded)}\n {...isFocusVisible}\n >\n <InternalIcon className={styles.icon} size=\"normal\" name=\"angle-down\" />\n </button>\n </div>\n )}\n {!isFlashbarStackExpanded && renderList()}\n </>\n </div>\n );\n}\n\nconst NotificationTypeCount = ({\n iconName,\n label,\n count,\n}: {\n iconName: IconProps.Name;\n label?: string;\n count: number;\n}) => {\n return (\n <span className={styles['type-count']}>\n <span aria-label={label} role=\"img\">\n <span title={label} aria-hidden=\"true\">\n <InternalIcon name={iconName} />\n </span>\n </span>\n <span className={styles['count-number']}>{count}</span>\n </span>\n );\n};\n"]}
1
+ {"version":3,"file":"collapsible-flashbar.js","sourceRoot":"","sources":["../../../src/flashbar/collapsible-flashbar.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 clsx from 'clsx';\nimport React, { useCallback, useLayoutEffect, useMemo, useRef, useState } from 'react';\nimport customCssProps from '../internal/generated/custom-css-properties';\nimport { Flash, focusFlashById } from './flash';\nimport { FlashbarProps } from './interfaces';\nimport InternalIcon from '../icon/internal';\nimport { TransitionGroup } from 'react-transition-group';\nimport { Transition } from '../internal/components/transition';\nimport useFocusVisible from '../internal/hooks/focus-visible';\nimport { getVisualContextClassname } from '../internal/components/visual-context';\n\nimport styles from './styles.css.js';\nimport {\n counterTypes,\n getFlashTypeCount,\n getVisibleCollapsedItems,\n isElementTopBeyondViewport,\n StackableItem,\n} from './utils';\nimport { animate, getDOMRects } from '../internal/animate';\nimport { useUniqueId } from '../internal/hooks/use-unique-id';\nimport { IconProps } from '../icon/interfaces';\nimport { sendToggleMetric } from './internal/analytics';\nimport { useFlashbar } from './common';\nimport { throttle } from '../internal/utils/throttle';\nimport { scrollElementIntoView } from '../internal/utils/scrollable-containers';\n\nexport { FlashbarProps };\n\n// If the number of items is equal or less than this value,\n// the toggle element will not be displayed and the Flashbar will look like a regular single-item Flashbar.\nconst maxNonCollapsibleItems = 1;\n\nconst resizeListenerThrottleDelay = 100;\n\nexport default function CollapsibleFlashbar({ items, ...restProps }: FlashbarProps) {\n const [enteringItems, setEnteringItems] = useState<ReadonlyArray<FlashbarProps.MessageDefinition>>([]);\n const [exitingItems, setExitingItems] = useState<ReadonlyArray<FlashbarProps.MessageDefinition>>([]);\n const [isFlashbarStackExpanded, setIsFlashbarStackExpanded] = useState(false);\n\n const getElementsToAnimate = useCallback(() => {\n const flashElements = isFlashbarStackExpanded ? expandedItemRefs.current : collapsedItemRefs.current;\n return { ...flashElements, notificationBar: notificationBarRef.current };\n }, [isFlashbarStackExpanded]);\n\n const prepareAnimations = useCallback(() => {\n const rects = getDOMRects(getElementsToAnimate());\n setInitialAnimationState(rects);\n }, [getElementsToAnimate]);\n\n const { ariaLabel, baseProps, breakpoint, isReducedMotion, isVisualRefresh, mergedRef, ref } = useFlashbar({\n items,\n ...restProps,\n onItemsAdded: newItems => {\n setEnteringItems([...enteringItems, ...newItems]);\n },\n onItemsChanged: options => {\n // If not all items have ID, we can still animate collapse/expand transitions\n // because we can rely on each item's index in the original array,\n // but we can't do that when elements are added or removed, since the index changes.\n if (options?.allItemsHaveId && !options?.isReducedMotion) {\n prepareAnimations();\n }\n },\n onItemsRemoved: removedItems => {\n setExitingItems([...exitingItems, ...removedItems]);\n },\n });\n\n const isFocusVisible = useFocusVisible();\n const collapsedItemRefs = useRef<Record<string | number, HTMLElement | null>>({});\n const expandedItemRefs = useRef<Record<string | number, HTMLElement | null>>({});\n const [initialAnimationState, setInitialAnimationState] = useState<Record<string | number, DOMRect> | null>(null);\n const listElementRef = useRef<HTMLUListElement | null>(null);\n const notificationBarRef = useRef<HTMLDivElement | null>(null);\n const [transitioning, setTransitioning] = useState(false);\n const flashbarElementId = useUniqueId('flashbar');\n const itemCountElementId = useUniqueId('item-count');\n\n if (items.length <= maxNonCollapsibleItems && isFlashbarStackExpanded) {\n setIsFlashbarStackExpanded(false);\n }\n\n const animateFlash = !isReducedMotion;\n\n function toggleCollapseExpand() {\n sendToggleMetric(items.length, !isFlashbarStackExpanded);\n if (!isReducedMotion) {\n prepareAnimations();\n }\n setIsFlashbarStackExpanded(prev => !prev);\n }\n\n useLayoutEffect(() => {\n if (isFlashbarStackExpanded && items?.length) {\n const mostRecentItem = items[0];\n if (mostRecentItem.id !== undefined) {\n focusFlashById(ref.current, mostRecentItem.id);\n }\n }\n // Run this after expanding, but not every time the items change.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isFlashbarStackExpanded]);\n\n const updateBottomSpacing = useMemo(\n () =>\n throttle(() => {\n // Allow vertical space between Flashbar and page bottom only when the Flashbar is reaching the end of the page,\n // otherwise avoid spacing with eventual sticky elements below.\n const listElement = listElementRef?.current;\n const flashbar = listElement?.parentElement;\n if (listElement && flashbar) {\n // Make sure the bottom padding is present when we make the calculations,\n // then we might decide to remove it or not.\n flashbar.classList.remove(styles.floating);\n const windowHeight = window.innerHeight;\n // Take the parent region into account if using the App Layout, because it might have additional margins.\n // Otherwise we use the Flashbar component for this calculation.\n const outerElement = flashbar.parentElement?.parentElement || flashbar;\n const applySpacing =\n isFlashbarStackExpanded && Math.ceil(outerElement.getBoundingClientRect().bottom) >= windowHeight;\n if (!applySpacing) {\n flashbar.classList.add(styles.floating);\n }\n }\n }, resizeListenerThrottleDelay),\n [isFlashbarStackExpanded]\n );\n\n useLayoutEffect(() => {\n window.addEventListener('resize', updateBottomSpacing);\n return () => {\n window.removeEventListener('resize', updateBottomSpacing);\n updateBottomSpacing.cancel();\n };\n }, [updateBottomSpacing]);\n\n const { i18nStrings } = restProps;\n\n useLayoutEffect(() => {\n // When `useLayoutEffect` is called, the DOM is updated but has not been painted yet,\n // so it's a good moment to trigger animations that will make calculations based on old and new DOM state.\n // The old state is kept in `initialAnimationState`\n // and the new state can be retrieved from the current DOM elements.\n\n if (initialAnimationState) {\n updateBottomSpacing();\n\n // When collapsing, scroll up if necessary to avoid losing track of the focused button\n const shouldScrollUp =\n notificationBarRef.current &&\n !isFlashbarStackExpanded &&\n isElementTopBeyondViewport(notificationBarRef.current);\n\n animate({\n elements: getElementsToAnimate(),\n oldState: initialAnimationState,\n newElementInitialState: ({ top }) => ({ scale: 0.9, y: -0.2 * top }),\n onTransitionsEnd: () => setTransitioning(false),\n });\n\n if (notificationBarRef.current && shouldScrollUp) {\n scrollElementIntoView(notificationBarRef.current);\n }\n\n setTransitioning(true);\n setInitialAnimationState(null);\n }\n }, [updateBottomSpacing, getElementsToAnimate, initialAnimationState, isFlashbarStackExpanded]);\n\n const isCollapsible = items.length > maxNonCollapsibleItems;\n\n const countByType = getFlashTypeCount(items);\n\n const stackDepth = Math.min(3, items.length);\n\n const itemsToShow = isFlashbarStackExpanded\n ? items.map((item, index) => ({ ...item, expandedIndex: index }))\n : getVisibleCollapsedItems(items, stackDepth).map((item: StackableItem, index: number) => ({\n ...item,\n collapsedIndex: index,\n }));\n\n const notificationBarText = i18nStrings?.notificationBarText;\n\n const getItemId = (item: StackableItem | FlashbarProps.MessageDefinition) =>\n item.id ?? (item as StackableItem).expandedIndex ?? 0;\n\n // This check allows us to use the standard \"enter\" Transition only when the notification was not existing before.\n // If instead it was moved to the top of the stack but was already present in the array\n // (e.g, after dismissing another notification),\n // we need to use different, more custom and more controlled animations.\n const hasEntered = (item: StackableItem | FlashbarProps.MessageDefinition) =>\n enteringItems.some(_item => _item.id && _item.id === item.id);\n const hasLeft = (item: StackableItem | FlashbarProps.MessageDefinition) => !('expandedIndex' in item);\n const hasEnteredOrLeft = (item: StackableItem | FlashbarProps.MessageDefinition) => hasEntered(item) || hasLeft(item);\n\n const showInnerContent = (item: StackableItem | FlashbarProps.MessageDefinition) =>\n isFlashbarStackExpanded || hasLeft(item) || ('expandedIndex' in item && item.expandedIndex === 0);\n\n const shouldUseStandardAnimation = (item: StackableItem, index: number) => index === 0 && hasEnteredOrLeft(item);\n\n const getAnimationElementId = (item: StackableItem) => `flash-${getItemId(item)}`;\n\n const renderList = () => (\n <ul\n ref={listElementRef}\n className={clsx(\n styles['flash-list'],\n isFlashbarStackExpanded ? styles.expanded : styles.collapsed,\n transitioning && styles['animation-running'],\n initialAnimationState && styles['animation-ready'],\n isVisualRefresh && styles['visual-refresh']\n )}\n id={flashbarElementId}\n aria-label={ariaLabel}\n aria-describedby={isCollapsible ? itemCountElementId : undefined}\n style={\n !isFlashbarStackExpanded || transitioning\n ? {\n [customCssProps.flashbarStackDepth]: stackDepth,\n }\n : undefined\n }\n >\n <TransitionGroup component={null}>\n {itemsToShow.map((item: StackableItem, index: number) => (\n <Transition\n key={getItemId(item)}\n in={!hasLeft(item)}\n onStatusChange={status => {\n if (status === 'entered') {\n setEnteringItems([]);\n } else if (status === 'exited') {\n setExitingItems([]);\n }\n }}\n >\n {(state: string, transitionRootElement: React.Ref<HTMLDivElement> | undefined) => (\n <li\n aria-hidden={!showInnerContent(item)}\n className={\n showInnerContent(item)\n ? clsx(\n styles['flash-list-item'],\n !isFlashbarStackExpanded && styles.item,\n !collapsedItemRefs.current[getAnimationElementId(item)] && styles['expanded-only']\n )\n : clsx(styles.flash, styles[`flash-type-${item.type ?? 'info'}`], styles.item)\n }\n ref={element => {\n if (isFlashbarStackExpanded) {\n expandedItemRefs.current[getAnimationElementId(item)] = element;\n } else {\n collapsedItemRefs.current[getAnimationElementId(item)] = element;\n }\n }}\n style={\n !isFlashbarStackExpanded || transitioning\n ? {\n [customCssProps.flashbarStackIndex]:\n (item as StackableItem).collapsedIndex ?? (item as StackableItem).expandedIndex ?? index,\n }\n : undefined\n }\n key={getItemId(item)}\n >\n {showInnerContent(item) && (\n <Flash\n // eslint-disable-next-line react/forbid-component-props\n className={clsx(\n animateFlash && styles['flash-with-motion'],\n isVisualRefresh && styles['flash-refresh']\n )}\n key={getItemId(item)}\n ref={shouldUseStandardAnimation(item, index) ? transitionRootElement : undefined}\n transitionState={shouldUseStandardAnimation(item, index) ? state : undefined}\n {...item}\n />\n )}\n </li>\n )}\n </Transition>\n ))}\n </TransitionGroup>\n </ul>\n );\n\n return (\n <div\n {...baseProps}\n className={clsx(\n baseProps.className,\n styles.flashbar,\n styles[`breakpoint-${breakpoint}`],\n styles.stack,\n isFlashbarStackExpanded && styles.expanded,\n getVisualContextClassname('flashbar')\n )}\n ref={mergedRef}\n >\n <>\n {isFlashbarStackExpanded && renderList()}\n {isCollapsible && (\n <div\n className={clsx(\n styles['notification-bar'],\n isVisualRefresh && styles['visual-refresh'],\n isFlashbarStackExpanded ? styles.expanded : styles.collapsed,\n transitioning && styles['animation-running']\n )}\n onClick={toggleCollapseExpand}\n ref={notificationBarRef}\n >\n <span aria-live=\"polite\" className={styles.status} role=\"status\" id={itemCountElementId}>\n {notificationBarText && <h2 className={styles.header}>{notificationBarText}</h2>}\n <span className={styles['item-count']}>\n {counterTypes.map(({ type, labelName, iconName }) => (\n <NotificationTypeCount\n key={type}\n iconName={iconName}\n label={i18nStrings ? i18nStrings[labelName] : undefined}\n count={countByType[type]}\n />\n ))}\n </span>\n </span>\n <button\n aria-controls={flashbarElementId}\n aria-describedby={itemCountElementId}\n aria-expanded={isFlashbarStackExpanded}\n aria-label={i18nStrings?.notificationBarAriaLabel}\n className={clsx(styles.button, isFlashbarStackExpanded && styles.expanded)}\n {...isFocusVisible}\n >\n <InternalIcon className={styles.icon} size=\"normal\" name=\"angle-down\" />\n </button>\n </div>\n )}\n {!isFlashbarStackExpanded && renderList()}\n </>\n </div>\n );\n}\n\nconst NotificationTypeCount = ({\n iconName,\n label,\n count,\n}: {\n iconName: IconProps.Name;\n label?: string;\n count: number;\n}) => {\n return (\n <span className={styles['type-count']}>\n <span aria-label={label} role=\"img\">\n <span title={label} aria-hidden=\"true\">\n <InternalIcon name={iconName} />\n </span>\n </span>\n <span className={styles['count-number']}>{count}</span>\n </span>\n );\n};\n"]}
@@ -1,6 +1,6 @@
1
- import { CollapsibleFlashbarProps, FlashbarProps } from './interfaces';
1
+ import { FlashbarProps } from './interfaces';
2
2
  export declare const componentName = "Flashbar";
3
- export declare function useFlashbar({ i18nStrings, items, onItemsAdded, onItemsChanged, onItemsRemoved, ...restProps }: CollapsibleFlashbarProps & {
3
+ export declare function useFlashbar({ i18nStrings, items, onItemsAdded, onItemsChanged, onItemsRemoved, ...restProps }: FlashbarProps & {
4
4
  onItemsAdded?: (items: FlashbarProps.MessageDefinition[]) => void;
5
5
  onItemsRemoved?: (items: FlashbarProps.MessageDefinition[]) => void;
6
6
  onItemsChanged?: (options?: {
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/flashbar/common.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,wBAAwB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAGvE,eAAO,MAAM,aAAa,aAAa,CAAC;AAGxC,wBAAgB,WAAW,CAAC,EAC1B,WAAW,EACX,KAAK,EACL,YAAY,EACZ,cAAc,EACd,cAAc,EACd,GAAG,SAAS,EACb,EAAE,wBAAwB,GAAG;IAC5B,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,iBAAiB,EAAE,KAAK,IAAI,CAAC;IAClE,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,iBAAiB,EAAE,KAAK,IAAI,CAAC;IACpE,cAAc,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,OAAO,CAAC;QAAC,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;CAC9F;;;;;;;;;EAmDA"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/flashbar/common.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7C,eAAO,MAAM,aAAa,aAAa,CAAC;AAGxC,wBAAgB,WAAW,CAAC,EAC1B,WAAW,EACX,KAAK,EACL,YAAY,EACZ,cAAc,EACd,cAAc,EACd,GAAG,SAAS,EACb,EAAE,aAAa,GAAG;IACjB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,iBAAiB,EAAE,KAAK,IAAI,CAAC;IAClE,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,iBAAiB,EAAE,KAAK,IAAI,CAAC;IACpE,cAAc,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,OAAO,CAAC;QAAC,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;CAC9F;;;;;;;;;EAmDA"}
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/flashbar/common.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 useBaseComponent from '../internal/hooks/use-base-component';\nimport { useMergeRefs } from '../internal/hooks/use-merge-refs';\nimport { useEffect, useMemo, useRef, useState } from 'react';\nimport { useContainerBreakpoints } from '../internal/hooks/container-queries';\nimport { useReducedMotion, useVisualRefresh } from '../internal/hooks/use-visual-mode';\nimport { getBaseProps } from '../internal/base-component';\nimport { CollapsibleFlashbarProps, FlashbarProps } from './interfaces';\nimport { focusFlashById } from './flash';\n\nexport const componentName = 'Flashbar';\n\n// Common logic for collapsible and non-collapsible Flashbar\nexport function useFlashbar({\n i18nStrings,\n items,\n onItemsAdded,\n onItemsChanged,\n onItemsRemoved,\n ...restProps\n}: CollapsibleFlashbarProps & {\n onItemsAdded?: (items: FlashbarProps.MessageDefinition[]) => void;\n onItemsRemoved?: (items: FlashbarProps.MessageDefinition[]) => void;\n onItemsChanged?: (options?: { allItemsHaveId?: boolean; isReducedMotion?: boolean }) => void;\n}) {\n const { __internalRootRef } = useBaseComponent(componentName);\n const allItemsHaveId = useMemo(() => items.every(item => 'id' in item), [items]);\n const baseProps = getBaseProps(restProps);\n const ref = useRef<HTMLDivElement | null>(null);\n const [breakpoint, breakpointRef] = useContainerBreakpoints(['xs']);\n const mergedRef = useMergeRefs(ref, breakpointRef, __internalRootRef);\n const isReducedMotion = useReducedMotion(breakpointRef as any);\n const isVisualRefresh = useVisualRefresh();\n const [previousItems, setPreviousItems] = useState<ReadonlyArray<FlashbarProps.MessageDefinition>>(items);\n const [nextFocusId, setNextFocusId] = useState<string | null>(null);\n\n // Track new or removed item IDs in state to only trigger focus changes for newly added items.\n // https://reactjs.org/docs/hooks-faq.html#how-do-i-implement-getderivedstatefromprops\n if (items) {\n const newItems = items.filter(({ id }) => id && !previousItems.some(item => item.id === id));\n const removedItems = previousItems.filter(({ id }) => id && !items.some(item => item.id === id));\n if (newItems.length > 0 || removedItems.length > 0) {\n setPreviousItems(items);\n if (onItemsAdded) {\n onItemsAdded(newItems);\n }\n if (onItemsRemoved) {\n onItemsRemoved(removedItems);\n }\n const newFocusItems = newItems.filter(({ ariaRole }) => ariaRole === 'alert');\n if (newFocusItems.length > 0) {\n setNextFocusId(newFocusItems[0].id!);\n }\n if (onItemsChanged) {\n onItemsChanged({ allItemsHaveId, isReducedMotion });\n }\n }\n }\n\n useEffect(() => {\n if (nextFocusId) {\n focusFlashById(ref.current, nextFocusId);\n }\n }, [nextFocusId, ref]);\n\n return {\n allItemsHaveId,\n ariaLabel: i18nStrings?.ariaLabel,\n baseProps,\n breakpoint,\n isReducedMotion,\n isVisualRefresh,\n mergedRef,\n ref,\n };\n}\n"]}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/flashbar/common.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 useBaseComponent from '../internal/hooks/use-base-component';\nimport { useMergeRefs } from '../internal/hooks/use-merge-refs';\nimport { useEffect, useMemo, useRef, useState } from 'react';\nimport { useContainerBreakpoints } from '../internal/hooks/container-queries';\nimport { useReducedMotion, useVisualRefresh } from '../internal/hooks/use-visual-mode';\nimport { getBaseProps } from '../internal/base-component';\nimport { FlashbarProps } from './interfaces';\nimport { focusFlashById } from './flash';\n\nexport const componentName = 'Flashbar';\n\n// Common logic for collapsible and non-collapsible Flashbar\nexport function useFlashbar({\n i18nStrings,\n items,\n onItemsAdded,\n onItemsChanged,\n onItemsRemoved,\n ...restProps\n}: FlashbarProps & {\n onItemsAdded?: (items: FlashbarProps.MessageDefinition[]) => void;\n onItemsRemoved?: (items: FlashbarProps.MessageDefinition[]) => void;\n onItemsChanged?: (options?: { allItemsHaveId?: boolean; isReducedMotion?: boolean }) => void;\n}) {\n const { __internalRootRef } = useBaseComponent(componentName);\n const allItemsHaveId = useMemo(() => items.every(item => 'id' in item), [items]);\n const baseProps = getBaseProps(restProps);\n const ref = useRef<HTMLDivElement | null>(null);\n const [breakpoint, breakpointRef] = useContainerBreakpoints(['xs']);\n const mergedRef = useMergeRefs(ref, breakpointRef, __internalRootRef);\n const isReducedMotion = useReducedMotion(breakpointRef as any);\n const isVisualRefresh = useVisualRefresh();\n const [previousItems, setPreviousItems] = useState<ReadonlyArray<FlashbarProps.MessageDefinition>>(items);\n const [nextFocusId, setNextFocusId] = useState<string | null>(null);\n\n // Track new or removed item IDs in state to only trigger focus changes for newly added items.\n // https://reactjs.org/docs/hooks-faq.html#how-do-i-implement-getderivedstatefromprops\n if (items) {\n const newItems = items.filter(({ id }) => id && !previousItems.some(item => item.id === id));\n const removedItems = previousItems.filter(({ id }) => id && !items.some(item => item.id === id));\n if (newItems.length > 0 || removedItems.length > 0) {\n setPreviousItems(items);\n if (onItemsAdded) {\n onItemsAdded(newItems);\n }\n if (onItemsRemoved) {\n onItemsRemoved(removedItems);\n }\n const newFocusItems = newItems.filter(({ ariaRole }) => ariaRole === 'alert');\n if (newFocusItems.length > 0) {\n setNextFocusId(newFocusItems[0].id!);\n }\n if (onItemsChanged) {\n onItemsChanged({ allItemsHaveId, isReducedMotion });\n }\n }\n }\n\n useEffect(() => {\n if (nextFocusId) {\n focusFlashById(ref.current, nextFocusId);\n }\n }, [nextFocusId, ref]);\n\n return {\n allItemsHaveId,\n ariaLabel: i18nStrings?.ariaLabel,\n baseProps,\n breakpoint,\n isReducedMotion,\n isVisualRefresh,\n mergedRef,\n ref,\n };\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { FlashbarProps, CollapsibleFlashbarProps } from './interfaces';
1
+ import { FlashbarProps } from './interfaces';
2
2
  export { FlashbarProps };
3
- export default function Flashbar(props: FlashbarProps | CollapsibleFlashbarProps): JSX.Element;
3
+ export default function Flashbar(props: FlashbarProps): JSX.Element;
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/flashbar/index.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAMvE,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,wBAAwB,eAY/E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/flashbar/index.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAM7C,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,KAAK,EAAE,aAAa,eAYpD"}
@@ -12,15 +12,12 @@ export default function Flashbar(props) {
12
12
  sendRenderMetric(props.items);
13
13
  }
14
14
  }, [props.items]);
15
- if (isStackedFlashbar(props)) {
15
+ if (props.stackItems) {
16
16
  return React.createElement(CollapsibleFlashbar, __assign({}, props));
17
17
  }
18
18
  else {
19
19
  return React.createElement(NonCollapsibleFlashbar, __assign({}, props));
20
20
  }
21
21
  }
22
- function isStackedFlashbar(props) {
23
- return 'stackItems' in props && props.stackItems;
24
- }
25
22
  applyDisplayName(Flashbar, 'Flashbar');
26
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/flashbar/index.tsx"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAExE,OAAO,mBAAmB,MAAM,wBAAwB,CAAC;AACzD,OAAO,sBAAsB,MAAM,4BAA4B,CAAC;AAEhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAIxD,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,KAA+C;IAC9E,SAAS,CAAC;QACR,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1B,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC/B;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAElB,IAAI,iBAAiB,CAAC,KAAK,CAAC,EAAE;QAC5B,OAAO,oBAAC,mBAAmB,eAAK,KAAK,EAAI,CAAC;KAC3C;SAAM;QACL,OAAO,oBAAC,sBAAsB,eAAK,KAAK,EAAI,CAAC;KAC9C;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAU;IACnC,OAAO,YAAY,IAAI,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC;AACnD,CAAC;AAED,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useEffect } from 'react';\nimport { applyDisplayName } from '../internal/utils/apply-display-name';\nimport { FlashbarProps, CollapsibleFlashbarProps } from './interfaces';\nimport CollapsibleFlashbar from './collapsible-flashbar';\nimport NonCollapsibleFlashbar from './non-collapsible-flashbar';\n\nimport { sendRenderMetric } from './internal/analytics';\n\nexport { FlashbarProps };\n\nexport default function Flashbar(props: FlashbarProps | CollapsibleFlashbarProps) {\n useEffect(() => {\n if (props.items.length > 0) {\n sendRenderMetric(props.items);\n }\n }, [props.items]);\n\n if (isStackedFlashbar(props)) {\n return <CollapsibleFlashbar {...props} />;\n } else {\n return <NonCollapsibleFlashbar {...props} />;\n }\n}\n\nfunction isStackedFlashbar(props: any): props is CollapsibleFlashbarProps {\n return 'stackItems' in props && props.stackItems;\n}\n\napplyDisplayName(Flashbar, 'Flashbar');\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/flashbar/index.tsx"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAExE,OAAO,mBAAmB,MAAM,wBAAwB,CAAC;AACzD,OAAO,sBAAsB,MAAM,4BAA4B,CAAC;AAEhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAIxD,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,KAAoB;IACnD,SAAS,CAAC;QACR,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1B,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC/B;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAElB,IAAI,KAAK,CAAC,UAAU,EAAE;QACpB,OAAO,oBAAC,mBAAmB,eAAK,KAAK,EAAI,CAAC;KAC3C;SAAM;QACL,OAAO,oBAAC,sBAAsB,eAAK,KAAK,EAAI,CAAC;KAC9C;AACH,CAAC;AAED,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useEffect } from 'react';\nimport { applyDisplayName } from '../internal/utils/apply-display-name';\nimport { FlashbarProps } from './interfaces';\nimport CollapsibleFlashbar from './collapsible-flashbar';\nimport NonCollapsibleFlashbar from './non-collapsible-flashbar';\n\nimport { sendRenderMetric } from './internal/analytics';\n\nexport { FlashbarProps };\n\nexport default function Flashbar(props: FlashbarProps) {\n useEffect(() => {\n if (props.items.length > 0) {\n sendRenderMetric(props.items);\n }\n }, [props.items]);\n\n if (props.stackItems) {\n return <CollapsibleFlashbar {...props} />;\n } else {\n return <NonCollapsibleFlashbar {...props} />;\n }\n}\n\napplyDisplayName(Flashbar, 'Flashbar');\n"]}