@cloudscape-design/components-themeable 3.0.853 → 3.0.855

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 (617) hide show
  1. package/lib/internal/manifest.json +1 -1
  2. package/lib/internal/scss/breadcrumb-group/styles.scss +47 -0
  3. package/lib/internal/scss/button/test-classes/styles.scss +4 -0
  4. package/lib/internal/scss/button-dropdown/item-element/styles.scss +6 -0
  5. package/lib/internal/scss/button-dropdown/styles.scss +27 -12
  6. package/lib/internal/scss/file-input/styles.scss +12 -1
  7. package/lib/internal/scss/internal/styles/motion/animations.scss +11 -0
  8. package/lib/internal/scss/top-navigation/1.0-beta/styles.scss +0 -14
  9. package/lib/internal/scss/top-navigation/styles.scss +1 -7
  10. package/lib/internal/template/alert/styles.css.js +28 -28
  11. package/lib/internal/template/alert/styles.scoped.css +49 -45
  12. package/lib/internal/template/alert/styles.selectors.js +28 -28
  13. package/lib/internal/template/anchor-navigation/styles.css.js +8 -8
  14. package/lib/internal/template/anchor-navigation/styles.scoped.css +24 -20
  15. package/lib/internal/template/anchor-navigation/styles.selectors.js +8 -8
  16. package/lib/internal/template/annotation-context/annotation/styles.css.js +24 -24
  17. package/lib/internal/template/annotation-context/annotation/styles.scoped.css +36 -32
  18. package/lib/internal/template/annotation-context/annotation/styles.selectors.js +24 -24
  19. package/lib/internal/template/app-layout/content-wrapper/styles.css.js +3 -3
  20. package/lib/internal/template/app-layout/content-wrapper/styles.scoped.css +10 -6
  21. package/lib/internal/template/app-layout/content-wrapper/styles.selectors.js +3 -3
  22. package/lib/internal/template/app-layout/drawer/styles.css.js +14 -14
  23. package/lib/internal/template/app-layout/drawer/styles.scoped.css +28 -24
  24. package/lib/internal/template/app-layout/drawer/styles.selectors.js +14 -14
  25. package/lib/internal/template/app-layout/mobile-toolbar/styles.css.js +8 -8
  26. package/lib/internal/template/app-layout/mobile-toolbar/styles.scoped.css +12 -8
  27. package/lib/internal/template/app-layout/mobile-toolbar/styles.selectors.js +8 -8
  28. package/lib/internal/template/app-layout/resize/styles.css.js +5 -5
  29. package/lib/internal/template/app-layout/resize/styles.scoped.css +16 -12
  30. package/lib/internal/template/app-layout/resize/styles.selectors.js +5 -5
  31. package/lib/internal/template/app-layout/split-panel/styles.css.js +2 -2
  32. package/lib/internal/template/app-layout/split-panel/styles.scoped.css +6 -2
  33. package/lib/internal/template/app-layout/split-panel/styles.selectors.js +2 -2
  34. package/lib/internal/template/app-layout/styles.css.js +12 -12
  35. package/lib/internal/template/app-layout/styles.scoped.css +16 -12
  36. package/lib/internal/template/app-layout/styles.selectors.js +12 -12
  37. package/lib/internal/template/app-layout/toggles/styles.css.js +2 -2
  38. package/lib/internal/template/app-layout/toggles/styles.scoped.css +12 -8
  39. package/lib/internal/template/app-layout/toggles/styles.selectors.js +2 -2
  40. package/lib/internal/template/app-layout/visual-refresh/styles.css.js +86 -86
  41. package/lib/internal/template/app-layout/visual-refresh/styles.scoped.css +167 -163
  42. package/lib/internal/template/app-layout/visual-refresh/styles.selectors.js +86 -86
  43. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/styles.css.js +10 -10
  44. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/styles.scoped.css +17 -13
  45. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/styles.selectors.js +10 -10
  46. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/styles.css.js +4 -4
  47. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/styles.scoped.css +9 -5
  48. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/styles.selectors.js +4 -4
  49. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/styles.css.js +19 -19
  50. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/styles.scoped.css +39 -35
  51. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/styles.selectors.js +19 -19
  52. package/lib/internal/template/app-layout/visual-refresh-toolbar/split-panel/styles.css.js +1 -1
  53. package/lib/internal/template/app-layout/visual-refresh-toolbar/split-panel/styles.scoped.css +5 -1
  54. package/lib/internal/template/app-layout/visual-refresh-toolbar/split-panel/styles.selectors.js +1 -1
  55. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/styles.css.js +13 -13
  56. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/styles.scoped.css +19 -15
  57. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/styles.selectors.js +13 -13
  58. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/trigger-button/styles.css.js +7 -7
  59. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/trigger-button/styles.scoped.css +23 -19
  60. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/trigger-button/styles.selectors.js +7 -7
  61. package/lib/internal/template/area-chart/styles.css.js +6 -6
  62. package/lib/internal/template/area-chart/styles.scoped.css +15 -11
  63. package/lib/internal/template/area-chart/styles.selectors.js +6 -6
  64. package/lib/internal/template/attribute-editor/styles.css.js +14 -14
  65. package/lib/internal/template/attribute-editor/styles.scoped.css +28 -24
  66. package/lib/internal/template/attribute-editor/styles.selectors.js +14 -14
  67. package/lib/internal/template/autosuggest/load-more-controller.d.ts.map +1 -1
  68. package/lib/internal/template/autosuggest/load-more-controller.js +1 -1
  69. package/lib/internal/template/autosuggest/load-more-controller.js.map +1 -1
  70. package/lib/internal/template/badge/styles.css.js +10 -10
  71. package/lib/internal/template/badge/styles.scoped.css +14 -10
  72. package/lib/internal/template/badge/styles.selectors.js +10 -10
  73. package/lib/internal/template/box/styles.css.js +191 -191
  74. package/lib/internal/template/box/styles.scoped.css +240 -236
  75. package/lib/internal/template/box/styles.selectors.js +191 -191
  76. package/lib/internal/template/breadcrumb-group/all-items-dropdown.d.ts +15 -0
  77. package/lib/internal/template/breadcrumb-group/all-items-dropdown.d.ts.map +1 -0
  78. package/lib/internal/template/breadcrumb-group/all-items-dropdown.js +47 -0
  79. package/lib/internal/template/breadcrumb-group/all-items-dropdown.js.map +1 -0
  80. package/lib/internal/template/breadcrumb-group/implementation.d.ts.map +1 -1
  81. package/lib/internal/template/breadcrumb-group/implementation.js +9 -6
  82. package/lib/internal/template/breadcrumb-group/implementation.js.map +1 -1
  83. package/lib/internal/template/breadcrumb-group/item/styles.css.js +7 -7
  84. package/lib/internal/template/breadcrumb-group/item/styles.scoped.css +29 -25
  85. package/lib/internal/template/breadcrumb-group/item/styles.selectors.js +7 -7
  86. package/lib/internal/template/breadcrumb-group/styles.css.js +14 -10
  87. package/lib/internal/template/breadcrumb-group/styles.scoped.css +124 -11
  88. package/lib/internal/template/breadcrumb-group/styles.selectors.js +14 -10
  89. package/lib/internal/template/breadcrumb-group/utils.d.ts +0 -2
  90. package/lib/internal/template/breadcrumb-group/utils.d.ts.map +1 -1
  91. package/lib/internal/template/breadcrumb-group/utils.js +17 -46
  92. package/lib/internal/template/breadcrumb-group/utils.js.map +1 -1
  93. package/lib/internal/template/button/index.d.ts.map +1 -1
  94. package/lib/internal/template/button/index.js +3 -3
  95. package/lib/internal/template/button/index.js.map +1 -1
  96. package/lib/internal/template/button/interfaces.d.ts +18 -0
  97. package/lib/internal/template/button/interfaces.d.ts.map +1 -1
  98. package/lib/internal/template/button/interfaces.js.map +1 -1
  99. package/lib/internal/template/button/internal.d.ts.map +1 -1
  100. package/lib/internal/template/button/internal.js +15 -2
  101. package/lib/internal/template/button/internal.js.map +1 -1
  102. package/lib/internal/template/button/styles.css.js +21 -21
  103. package/lib/internal/template/button/styles.scoped.css +158 -154
  104. package/lib/internal/template/button/styles.selectors.js +21 -21
  105. package/lib/internal/template/button/test-classes/styles.css.js +2 -1
  106. package/lib/internal/template/button/test-classes/styles.scoped.css +5 -1
  107. package/lib/internal/template/button/test-classes/styles.selectors.js +2 -1
  108. package/lib/internal/template/button-dropdown/category-elements/styles.css.js +14 -14
  109. package/lib/internal/template/button-dropdown/category-elements/styles.scoped.css +27 -23
  110. package/lib/internal/template/button-dropdown/category-elements/styles.selectors.js +14 -14
  111. package/lib/internal/template/button-dropdown/index.d.ts.map +1 -1
  112. package/lib/internal/template/button-dropdown/index.js +2 -2
  113. package/lib/internal/template/button-dropdown/index.js.map +1 -1
  114. package/lib/internal/template/button-dropdown/interfaces.d.ts +18 -2
  115. package/lib/internal/template/button-dropdown/interfaces.d.ts.map +1 -1
  116. package/lib/internal/template/button-dropdown/interfaces.js.map +1 -1
  117. package/lib/internal/template/button-dropdown/internal.d.ts.map +1 -1
  118. package/lib/internal/template/button-dropdown/internal.js +13 -6
  119. package/lib/internal/template/button-dropdown/internal.js.map +1 -1
  120. package/lib/internal/template/button-dropdown/item-element/index.d.ts.map +1 -1
  121. package/lib/internal/template/button-dropdown/item-element/index.js +3 -2
  122. package/lib/internal/template/button-dropdown/item-element/index.js.map +1 -1
  123. package/lib/internal/template/button-dropdown/item-element/styles.css.js +14 -13
  124. package/lib/internal/template/button-dropdown/item-element/styles.scoped.css +33 -21
  125. package/lib/internal/template/button-dropdown/item-element/styles.selectors.js +14 -13
  126. package/lib/internal/template/button-dropdown/mobile-expandable-group/styles.css.js +5 -5
  127. package/lib/internal/template/button-dropdown/mobile-expandable-group/styles.scoped.css +9 -5
  128. package/lib/internal/template/button-dropdown/mobile-expandable-group/styles.selectors.js +5 -5
  129. package/lib/internal/template/button-dropdown/styles.css.js +21 -17
  130. package/lib/internal/template/button-dropdown/styles.scoped.css +51 -38
  131. package/lib/internal/template/button-dropdown/styles.selectors.js +21 -17
  132. package/lib/internal/template/button-group/file-input-item.d.ts +11 -0
  133. package/lib/internal/template/button-group/file-input-item.d.ts.map +1 -0
  134. package/lib/internal/template/button-group/file-input-item.js +23 -0
  135. package/lib/internal/template/button-group/file-input-item.js.map +1 -0
  136. package/lib/internal/template/button-group/interfaces.d.ts +23 -1
  137. package/lib/internal/template/button-group/interfaces.d.ts.map +1 -1
  138. package/lib/internal/template/button-group/interfaces.js.map +1 -1
  139. package/lib/internal/template/button-group/internal.d.ts.map +1 -1
  140. package/lib/internal/template/button-group/internal.js +2 -2
  141. package/lib/internal/template/button-group/internal.js.map +1 -1
  142. package/lib/internal/template/button-group/item-element.d.ts +1 -0
  143. package/lib/internal/template/button-group/item-element.d.ts.map +1 -1
  144. package/lib/internal/template/button-group/item-element.js +12 -6
  145. package/lib/internal/template/button-group/item-element.js.map +1 -1
  146. package/lib/internal/template/button-group/styles.css.js +4 -4
  147. package/lib/internal/template/button-group/styles.scoped.css +10 -6
  148. package/lib/internal/template/button-group/styles.selectors.js +4 -4
  149. package/lib/internal/template/calendar/grid/index.d.ts +1 -2
  150. package/lib/internal/template/calendar/grid/index.d.ts.map +1 -1
  151. package/lib/internal/template/calendar/grid/index.js.map +1 -1
  152. package/lib/internal/template/calendar/grid/use-calendar-grid-keyboard-navigation.d.ts.map +1 -1
  153. package/lib/internal/template/calendar/grid/use-calendar-grid-keyboard-navigation.js +2 -1
  154. package/lib/internal/template/calendar/grid/use-calendar-grid-keyboard-navigation.js.map +1 -1
  155. package/lib/internal/template/calendar/internal.d.ts.map +1 -1
  156. package/lib/internal/template/calendar/internal.js +2 -1
  157. package/lib/internal/template/calendar/internal.js.map +1 -1
  158. package/lib/internal/template/calendar/styles.css.js +21 -21
  159. package/lib/internal/template/calendar/styles.scoped.css +47 -43
  160. package/lib/internal/template/calendar/styles.selectors.js +21 -21
  161. package/lib/internal/template/calendar/utils/navigation-day.d.ts +8 -0
  162. package/lib/internal/template/calendar/utils/navigation-day.d.ts.map +1 -0
  163. package/lib/internal/template/calendar/utils/navigation-day.js +39 -0
  164. package/lib/internal/template/calendar/utils/navigation-day.js.map +1 -0
  165. package/lib/internal/template/calendar/utils/{navigation.d.ts → navigation-month.d.ts} +2 -6
  166. package/lib/internal/template/calendar/utils/navigation-month.d.ts.map +1 -0
  167. package/lib/internal/template/calendar/utils/navigation-month.js +39 -0
  168. package/lib/internal/template/calendar/utils/navigation-month.js.map +1 -0
  169. package/lib/internal/template/cards/styles.css.js +39 -39
  170. package/lib/internal/template/cards/styles.scoped.css +54 -50
  171. package/lib/internal/template/cards/styles.selectors.js +39 -39
  172. package/lib/internal/template/checkbox/styles.css.js +3 -3
  173. package/lib/internal/template/checkbox/styles.scoped.css +9 -5
  174. package/lib/internal/template/checkbox/styles.selectors.js +3 -3
  175. package/lib/internal/template/code-editor/resizable-box/styles.css.js +3 -3
  176. package/lib/internal/template/code-editor/resizable-box/styles.scoped.css +13 -9
  177. package/lib/internal/template/code-editor/resizable-box/styles.selectors.js +3 -3
  178. package/lib/internal/template/code-editor/styles.css.js +33 -33
  179. package/lib/internal/template/code-editor/styles.scoped.css +187 -183
  180. package/lib/internal/template/code-editor/styles.selectors.js +33 -33
  181. package/lib/internal/template/collection-preferences/content-display/styles.css.js +12 -12
  182. package/lib/internal/template/collection-preferences/content-display/styles.scoped.css +23 -15
  183. package/lib/internal/template/collection-preferences/content-display/styles.selectors.js +12 -12
  184. package/lib/internal/template/collection-preferences/styles.css.js +38 -38
  185. package/lib/internal/template/collection-preferences/styles.scoped.css +58 -42
  186. package/lib/internal/template/collection-preferences/styles.selectors.js +38 -38
  187. package/lib/internal/template/column-layout/flexible-column-layout/styles.css.js +5 -5
  188. package/lib/internal/template/column-layout/flexible-column-layout/styles.scoped.css +14 -10
  189. package/lib/internal/template/column-layout/flexible-column-layout/styles.selectors.js +5 -5
  190. package/lib/internal/template/column-layout/styles.css.js +13 -13
  191. package/lib/internal/template/column-layout/styles.scoped.css +49 -45
  192. package/lib/internal/template/column-layout/styles.selectors.js +13 -13
  193. package/lib/internal/template/container/styles.css.js +31 -31
  194. package/lib/internal/template/container/styles.scoped.css +60 -56
  195. package/lib/internal/template/container/styles.selectors.js +31 -31
  196. package/lib/internal/template/content-layout/styles.css.js +14 -14
  197. package/lib/internal/template/content-layout/styles.scoped.css +20 -16
  198. package/lib/internal/template/content-layout/styles.selectors.js +14 -14
  199. package/lib/internal/template/date-picker/styles.css.js +7 -7
  200. package/lib/internal/template/date-picker/styles.scoped.css +13 -9
  201. package/lib/internal/template/date-picker/styles.selectors.js +7 -7
  202. package/lib/internal/template/date-range-picker/calendar/grids/index.d.ts.map +1 -1
  203. package/lib/internal/template/date-range-picker/calendar/grids/index.js +1 -1
  204. package/lib/internal/template/date-range-picker/calendar/grids/index.js.map +1 -1
  205. package/lib/internal/template/date-range-picker/calendar/grids/styles.css.js +28 -28
  206. package/lib/internal/template/date-range-picker/calendar/grids/styles.scoped.css +47 -43
  207. package/lib/internal/template/date-range-picker/calendar/grids/styles.selectors.js +28 -28
  208. package/lib/internal/template/date-range-picker/calendar/index.js +1 -1
  209. package/lib/internal/template/date-range-picker/calendar/index.js.map +1 -1
  210. package/lib/internal/template/date-range-picker/index.d.ts.map +1 -1
  211. package/lib/internal/template/date-range-picker/index.js +3 -10
  212. package/lib/internal/template/date-range-picker/index.js.map +1 -1
  213. package/lib/internal/template/date-range-picker/relative-range/styles.css.js +9 -9
  214. package/lib/internal/template/date-range-picker/relative-range/styles.scoped.css +17 -13
  215. package/lib/internal/template/date-range-picker/relative-range/styles.selectors.js +9 -9
  216. package/lib/internal/template/date-range-picker/styles.css.js +38 -38
  217. package/lib/internal/template/date-range-picker/styles.scoped.css +51 -47
  218. package/lib/internal/template/date-range-picker/styles.selectors.js +38 -38
  219. package/lib/internal/template/date-range-picker/time-offset.d.ts +2 -1
  220. package/lib/internal/template/date-range-picker/time-offset.d.ts.map +1 -1
  221. package/lib/internal/template/date-range-picker/time-offset.js +1 -1
  222. package/lib/internal/template/date-range-picker/time-offset.js.map +1 -1
  223. package/lib/internal/template/date-range-picker/utils.d.ts +9 -0
  224. package/lib/internal/template/date-range-picker/utils.d.ts.map +1 -1
  225. package/lib/internal/template/date-range-picker/utils.js +19 -2
  226. package/lib/internal/template/date-range-picker/utils.js.map +1 -1
  227. package/lib/internal/template/drawer/styles.css.js +5 -5
  228. package/lib/internal/template/drawer/styles.scoped.css +16 -12
  229. package/lib/internal/template/drawer/styles.selectors.js +5 -5
  230. package/lib/internal/template/expandable-section/styles.css.js +34 -34
  231. package/lib/internal/template/expandable-section/styles.scoped.css +69 -65
  232. package/lib/internal/template/expandable-section/styles.selectors.js +34 -34
  233. package/lib/internal/template/file-dropzone/styles.css.js +3 -3
  234. package/lib/internal/template/file-dropzone/styles.scoped.css +9 -5
  235. package/lib/internal/template/file-dropzone/styles.selectors.js +3 -3
  236. package/lib/internal/template/file-input/internal.d.ts +5 -1
  237. package/lib/internal/template/file-input/internal.d.ts.map +1 -1
  238. package/lib/internal/template/file-input/internal.js +18 -10
  239. package/lib/internal/template/file-input/internal.js.map +1 -1
  240. package/lib/internal/template/file-input/styles.css.js +6 -5
  241. package/lib/internal/template/file-input/styles.scoped.css +33 -8
  242. package/lib/internal/template/file-input/styles.selectors.js +6 -5
  243. package/lib/internal/template/file-token-group/styles.css.js +22 -22
  244. package/lib/internal/template/file-token-group/styles.scoped.css +35 -31
  245. package/lib/internal/template/file-token-group/styles.selectors.js +22 -22
  246. package/lib/internal/template/flashbar/styles.css.js +50 -50
  247. package/lib/internal/template/flashbar/styles.scoped.css +152 -148
  248. package/lib/internal/template/flashbar/styles.selectors.js +50 -50
  249. package/lib/internal/template/form/styles.css.js +8 -8
  250. package/lib/internal/template/form/styles.scoped.css +12 -8
  251. package/lib/internal/template/form/styles.selectors.js +8 -8
  252. package/lib/internal/template/form-field/styles.css.js +24 -24
  253. package/lib/internal/template/form-field/styles.scoped.css +42 -38
  254. package/lib/internal/template/form-field/styles.selectors.js +24 -24
  255. package/lib/internal/template/grid/styles.css.js +53 -53
  256. package/lib/internal/template/grid/styles.scoped.css +58 -54
  257. package/lib/internal/template/grid/styles.selectors.js +53 -53
  258. package/lib/internal/template/header/styles.css.js +34 -34
  259. package/lib/internal/template/header/styles.scoped.css +56 -52
  260. package/lib/internal/template/header/styles.selectors.js +34 -34
  261. package/lib/internal/template/help-panel/styles.css.js +6 -6
  262. package/lib/internal/template/help-panel/styles.scoped.css +73 -69
  263. package/lib/internal/template/help-panel/styles.selectors.js +6 -6
  264. package/lib/internal/template/hotspot/styles.css.js +7 -7
  265. package/lib/internal/template/hotspot/styles.scoped.css +13 -9
  266. package/lib/internal/template/hotspot/styles.selectors.js +7 -7
  267. package/lib/internal/template/i18n/messages/all.all.js +1 -1
  268. package/lib/internal/template/i18n/messages/all.all.json +1 -1
  269. package/lib/internal/template/i18n/messages/all.ar.js +1 -1
  270. package/lib/internal/template/i18n/messages/all.ar.json +1 -1
  271. package/lib/internal/template/i18n/messages/all.de.js +1 -1
  272. package/lib/internal/template/i18n/messages/all.de.json +1 -1
  273. package/lib/internal/template/i18n/messages/all.en-GB.js +1 -1
  274. package/lib/internal/template/i18n/messages/all.en-GB.json +1 -1
  275. package/lib/internal/template/i18n/messages/all.en.js +1 -1
  276. package/lib/internal/template/i18n/messages/all.en.json +1 -1
  277. package/lib/internal/template/i18n/messages/all.es.js +1 -1
  278. package/lib/internal/template/i18n/messages/all.es.json +1 -1
  279. package/lib/internal/template/i18n/messages/all.fr.js +1 -1
  280. package/lib/internal/template/i18n/messages/all.fr.json +1 -1
  281. package/lib/internal/template/i18n/messages/all.id.js +1 -1
  282. package/lib/internal/template/i18n/messages/all.id.json +1 -1
  283. package/lib/internal/template/i18n/messages/all.it.js +1 -1
  284. package/lib/internal/template/i18n/messages/all.it.json +1 -1
  285. package/lib/internal/template/i18n/messages/all.ja.js +1 -1
  286. package/lib/internal/template/i18n/messages/all.ja.json +1 -1
  287. package/lib/internal/template/i18n/messages/all.ko.js +1 -1
  288. package/lib/internal/template/i18n/messages/all.ko.json +1 -1
  289. package/lib/internal/template/i18n/messages/all.pt-BR.js +1 -1
  290. package/lib/internal/template/i18n/messages/all.pt-BR.json +1 -1
  291. package/lib/internal/template/i18n/messages/all.tr.js +1 -1
  292. package/lib/internal/template/i18n/messages/all.tr.json +1 -1
  293. package/lib/internal/template/i18n/messages/all.zh-CN.js +1 -1
  294. package/lib/internal/template/i18n/messages/all.zh-CN.json +1 -1
  295. package/lib/internal/template/i18n/messages/all.zh-TW.js +1 -1
  296. package/lib/internal/template/i18n/messages/all.zh-TW.json +1 -1
  297. package/lib/internal/template/i18n/messages-types.d.ts +3 -0
  298. package/lib/internal/template/i18n/messages-types.d.ts.map +1 -1
  299. package/lib/internal/template/i18n/messages-types.js.map +1 -1
  300. package/lib/internal/template/icon/styles.css.js +38 -38
  301. package/lib/internal/template/icon/styles.scoped.css +89 -85
  302. package/lib/internal/template/icon/styles.selectors.js +38 -38
  303. package/lib/internal/template/input/styles.css.js +13 -13
  304. package/lib/internal/template/input/styles.scoped.css +36 -32
  305. package/lib/internal/template/input/styles.selectors.js +13 -13
  306. package/lib/internal/template/internal/components/abstract-switch/styles.css.js +13 -13
  307. package/lib/internal/template/internal/components/abstract-switch/styles.scoped.css +24 -20
  308. package/lib/internal/template/internal/components/abstract-switch/styles.selectors.js +13 -13
  309. package/lib/internal/template/internal/components/button-trigger/styles.css.js +13 -13
  310. package/lib/internal/template/internal/components/button-trigger/styles.scoped.css +31 -27
  311. package/lib/internal/template/internal/components/button-trigger/styles.selectors.js +13 -13
  312. package/lib/internal/template/internal/components/chart-filter/styles.css.js +3 -3
  313. package/lib/internal/template/internal/components/chart-filter/styles.scoped.css +7 -3
  314. package/lib/internal/template/internal/components/chart-filter/styles.selectors.js +3 -3
  315. package/lib/internal/template/internal/components/chart-legend/styles.css.js +6 -6
  316. package/lib/internal/template/internal/components/chart-legend/styles.scoped.css +19 -15
  317. package/lib/internal/template/internal/components/chart-legend/styles.selectors.js +6 -6
  318. package/lib/internal/template/internal/components/chart-plot/styles.css.js +5 -5
  319. package/lib/internal/template/internal/components/chart-plot/styles.scoped.css +9 -5
  320. package/lib/internal/template/internal/components/chart-plot/styles.selectors.js +5 -5
  321. package/lib/internal/template/internal/components/chart-popover/styles.css.js +3 -3
  322. package/lib/internal/template/internal/components/chart-popover/styles.scoped.css +7 -3
  323. package/lib/internal/template/internal/components/chart-popover/styles.selectors.js +3 -3
  324. package/lib/internal/template/internal/components/chart-series-details/styles.css.js +20 -20
  325. package/lib/internal/template/internal/components/chart-series-details/styles.scoped.css +37 -33
  326. package/lib/internal/template/internal/components/chart-series-details/styles.selectors.js +20 -20
  327. package/lib/internal/template/internal/components/chart-series-marker/styles.css.js +5 -5
  328. package/lib/internal/template/internal/components/chart-series-marker/styles.scoped.css +11 -7
  329. package/lib/internal/template/internal/components/chart-series-marker/styles.selectors.js +5 -5
  330. package/lib/internal/template/internal/components/chart-wrapper/styles.css.js +9 -9
  331. package/lib/internal/template/internal/components/chart-wrapper/styles.scoped.css +15 -11
  332. package/lib/internal/template/internal/components/chart-wrapper/styles.selectors.js +9 -9
  333. package/lib/internal/template/internal/components/checkbox-icon/styles.css.js +9 -9
  334. package/lib/internal/template/internal/components/checkbox-icon/styles.scoped.css +13 -9
  335. package/lib/internal/template/internal/components/checkbox-icon/styles.selectors.js +9 -9
  336. package/lib/internal/template/internal/components/dnd-container/styles.css.js +1 -1
  337. package/lib/internal/template/internal/components/dnd-container/styles.scoped.css +8 -4
  338. package/lib/internal/template/internal/components/dnd-container/styles.selectors.js +1 -1
  339. package/lib/internal/template/internal/components/dropdown/styles.css.js +20 -20
  340. package/lib/internal/template/internal/components/dropdown/styles.scoped.css +41 -37
  341. package/lib/internal/template/internal/components/dropdown/styles.selectors.js +20 -20
  342. package/lib/internal/template/internal/components/dropdown-footer/styles.css.js +3 -3
  343. package/lib/internal/template/internal/components/dropdown-footer/styles.scoped.css +7 -3
  344. package/lib/internal/template/internal/components/dropdown-footer/styles.selectors.js +3 -3
  345. package/lib/internal/template/internal/components/dropdown-status/styles.css.js +2 -2
  346. package/lib/internal/template/internal/components/dropdown-status/styles.scoped.css +6 -2
  347. package/lib/internal/template/internal/components/dropdown-status/styles.selectors.js +2 -2
  348. package/lib/internal/template/internal/components/handle/styles.css.js +2 -2
  349. package/lib/internal/template/internal/components/handle/styles.scoped.css +10 -6
  350. package/lib/internal/template/internal/components/handle/styles.selectors.js +2 -2
  351. package/lib/internal/template/internal/components/menu-dropdown/index.d.ts.map +1 -1
  352. package/lib/internal/template/internal/components/menu-dropdown/index.js +2 -1
  353. package/lib/internal/template/internal/components/menu-dropdown/index.js.map +1 -1
  354. package/lib/internal/template/internal/components/menu-dropdown/styles.css.js +7 -7
  355. package/lib/internal/template/internal/components/menu-dropdown/styles.scoped.css +17 -13
  356. package/lib/internal/template/internal/components/menu-dropdown/styles.selectors.js +7 -7
  357. package/lib/internal/template/internal/components/option/styles.css.js +17 -17
  358. package/lib/internal/template/internal/components/option/styles.scoped.css +33 -29
  359. package/lib/internal/template/internal/components/option/styles.selectors.js +17 -17
  360. package/lib/internal/template/internal/components/options-list/styles.css.js +3 -3
  361. package/lib/internal/template/internal/components/options-list/styles.scoped.css +7 -3
  362. package/lib/internal/template/internal/components/options-list/styles.selectors.js +3 -3
  363. package/lib/internal/template/internal/components/options-list/utils/use-keyboard.d.ts.map +1 -1
  364. package/lib/internal/template/internal/components/options-list/utils/use-keyboard.js +13 -16
  365. package/lib/internal/template/internal/components/options-list/utils/use-keyboard.js.map +1 -1
  366. package/lib/internal/template/internal/components/panel-resize-handle/styles.css.js +5 -5
  367. package/lib/internal/template/internal/components/panel-resize-handle/styles.scoped.css +14 -10
  368. package/lib/internal/template/internal/components/panel-resize-handle/styles.selectors.js +5 -5
  369. package/lib/internal/template/internal/components/screenreader-only/styles.css.js +1 -1
  370. package/lib/internal/template/internal/components/screenreader-only/styles.scoped.css +5 -1
  371. package/lib/internal/template/internal/components/screenreader-only/styles.selectors.js +1 -1
  372. package/lib/internal/template/internal/components/selectable-item/styles.css.js +16 -16
  373. package/lib/internal/template/internal/components/selectable-item/styles.scoped.css +33 -29
  374. package/lib/internal/template/internal/components/selectable-item/styles.selectors.js +16 -16
  375. package/lib/internal/template/internal/components/token-list/styles.css.js +10 -10
  376. package/lib/internal/template/internal/components/token-list/styles.scoped.css +28 -24
  377. package/lib/internal/template/internal/components/token-list/styles.selectors.js +10 -10
  378. package/lib/internal/template/internal/environment.js +1 -1
  379. package/lib/internal/template/internal/environment.json +1 -1
  380. package/lib/internal/template/internal/hooks/use-performance-marks/index.d.ts.map +1 -1
  381. package/lib/internal/template/internal/hooks/use-performance-marks/index.js +23 -2
  382. package/lib/internal/template/internal/hooks/use-performance-marks/index.js.map +1 -1
  383. package/lib/internal/template/internal/styles/motion/utils.d.ts +2 -0
  384. package/lib/internal/template/internal/styles/motion/utils.d.ts.map +1 -0
  385. package/lib/internal/template/internal/styles/motion/utils.js +5 -0
  386. package/lib/internal/template/internal/styles/motion/utils.js.map +1 -0
  387. package/lib/internal/template/internal/utils/date-time/format-date-iso.d.ts +2 -1
  388. package/lib/internal/template/internal/utils/date-time/format-date-iso.d.ts.map +1 -1
  389. package/lib/internal/template/internal/utils/date-time/format-date-iso.js +6 -2
  390. package/lib/internal/template/internal/utils/date-time/format-date-iso.js.map +1 -1
  391. package/lib/internal/template/internal/utils/date-time/format-date-localized.d.ts +2 -1
  392. package/lib/internal/template/internal/utils/date-time/format-date-localized.d.ts.map +1 -1
  393. package/lib/internal/template/internal/utils/date-time/format-date-localized.js +9 -2
  394. package/lib/internal/template/internal/utils/date-time/format-date-localized.js.map +1 -1
  395. package/lib/internal/template/internal/utils/date-time/format-date-time-with-offset.d.ts.map +1 -1
  396. package/lib/internal/template/internal/utils/date-time/format-date-time-with-offset.js +4 -3
  397. package/lib/internal/template/internal/utils/date-time/format-date-time-with-offset.js.map +1 -1
  398. package/lib/internal/template/internal/utils/date-time/index.d.ts +1 -1
  399. package/lib/internal/template/internal/utils/date-time/index.d.ts.map +1 -1
  400. package/lib/internal/template/internal/utils/date-time/index.js +1 -1
  401. package/lib/internal/template/internal/utils/date-time/index.js.map +1 -1
  402. package/lib/internal/template/internal/utils/date-time/is-iso-only.d.ts +9 -0
  403. package/lib/internal/template/internal/utils/date-time/is-iso-only.d.ts.map +1 -0
  404. package/lib/internal/template/internal/utils/date-time/is-iso-only.js +18 -0
  405. package/lib/internal/template/internal/utils/date-time/is-iso-only.js.map +1 -0
  406. package/lib/internal/template/internal/utils/handle-key.d.ts +1 -2
  407. package/lib/internal/template/internal/utils/handle-key.d.ts.map +1 -1
  408. package/lib/internal/template/internal/utils/handle-key.js.map +1 -1
  409. package/lib/internal/template/internal/utils/throttle.d.ts +1 -2
  410. package/lib/internal/template/internal/utils/throttle.d.ts.map +1 -1
  411. package/lib/internal/template/internal/utils/throttle.js.map +1 -1
  412. package/lib/internal/template/key-value-pairs/index.d.ts +1 -1
  413. package/lib/internal/template/key-value-pairs/index.d.ts.map +1 -1
  414. package/lib/internal/template/key-value-pairs/index.js +2 -2
  415. package/lib/internal/template/key-value-pairs/index.js.map +1 -1
  416. package/lib/internal/template/key-value-pairs/interfaces.d.ts +8 -0
  417. package/lib/internal/template/key-value-pairs/interfaces.d.ts.map +1 -1
  418. package/lib/internal/template/key-value-pairs/interfaces.js.map +1 -1
  419. package/lib/internal/template/key-value-pairs/internal.d.ts.map +1 -1
  420. package/lib/internal/template/key-value-pairs/internal.js +2 -2
  421. package/lib/internal/template/key-value-pairs/internal.js.map +1 -1
  422. package/lib/internal/template/key-value-pairs/styles.css.js +8 -8
  423. package/lib/internal/template/key-value-pairs/styles.scoped.css +13 -9
  424. package/lib/internal/template/key-value-pairs/styles.selectors.js +8 -8
  425. package/lib/internal/template/link/styles.css.js +20 -20
  426. package/lib/internal/template/link/styles.scoped.css +75 -71
  427. package/lib/internal/template/link/styles.selectors.js +20 -20
  428. package/lib/internal/template/live-region/styles.css.js +2 -2
  429. package/lib/internal/template/live-region/styles.scoped.css +7 -3
  430. package/lib/internal/template/live-region/styles.selectors.js +2 -2
  431. package/lib/internal/template/mixed-line-bar-chart/styles.css.js +11 -11
  432. package/lib/internal/template/mixed-line-bar-chart/styles.scoped.css +23 -19
  433. package/lib/internal/template/mixed-line-bar-chart/styles.selectors.js +11 -11
  434. package/lib/internal/template/modal/index.js +1 -1
  435. package/lib/internal/template/modal/index.js.map +1 -1
  436. package/lib/internal/template/modal/styles.css.js +23 -23
  437. package/lib/internal/template/modal/styles.scoped.css +42 -38
  438. package/lib/internal/template/modal/styles.selectors.js +23 -23
  439. package/lib/internal/template/multiselect/styles.css.js +3 -3
  440. package/lib/internal/template/multiselect/styles.scoped.css +7 -3
  441. package/lib/internal/template/multiselect/styles.selectors.js +3 -3
  442. package/lib/internal/template/pagination/styles.css.js +9 -9
  443. package/lib/internal/template/pagination/styles.scoped.css +27 -23
  444. package/lib/internal/template/pagination/styles.selectors.js +9 -9
  445. package/lib/internal/template/pie-chart/styles.css.js +27 -27
  446. package/lib/internal/template/pie-chart/styles.scoped.css +52 -48
  447. package/lib/internal/template/pie-chart/styles.selectors.js +27 -27
  448. package/lib/internal/template/popover/styles.css.js +53 -53
  449. package/lib/internal/template/popover/styles.scoped.css +89 -69
  450. package/lib/internal/template/popover/styles.selectors.js +53 -53
  451. package/lib/internal/template/progress-bar/styles.css.js +19 -19
  452. package/lib/internal/template/progress-bar/styles.scoped.css +42 -34
  453. package/lib/internal/template/progress-bar/styles.selectors.js +19 -19
  454. package/lib/internal/template/prompt-input/styles.css.js +14 -14
  455. package/lib/internal/template/prompt-input/styles.scoped.css +43 -39
  456. package/lib/internal/template/prompt-input/styles.selectors.js +14 -14
  457. package/lib/internal/template/property-filter/filtering-token/styles.css.js +18 -18
  458. package/lib/internal/template/property-filter/filtering-token/styles.scoped.css +45 -41
  459. package/lib/internal/template/property-filter/filtering-token/styles.selectors.js +18 -18
  460. package/lib/internal/template/property-filter/styles.css.js +39 -39
  461. package/lib/internal/template/property-filter/styles.scoped.css +45 -41
  462. package/lib/internal/template/property-filter/styles.selectors.js +39 -39
  463. package/lib/internal/template/radio-group/styles.css.js +10 -10
  464. package/lib/internal/template/radio-group/styles.scoped.css +20 -16
  465. package/lib/internal/template/radio-group/styles.selectors.js +10 -10
  466. package/lib/internal/template/s3-resource-selector/s3-modal/basic-table.js +1 -0
  467. package/lib/internal/template/s3-resource-selector/s3-modal/basic-table.js.map +1 -1
  468. package/lib/internal/template/s3-resource-selector/s3-modal/styles.css.js +3 -3
  469. package/lib/internal/template/s3-resource-selector/s3-modal/styles.scoped.css +9 -5
  470. package/lib/internal/template/s3-resource-selector/s3-modal/styles.selectors.js +3 -3
  471. package/lib/internal/template/segmented-control/styles.css.js +15 -15
  472. package/lib/internal/template/segmented-control/styles.scoped.css +38 -34
  473. package/lib/internal/template/segmented-control/styles.selectors.js +15 -15
  474. package/lib/internal/template/select/parts/filter.d.ts +1 -1
  475. package/lib/internal/template/select/parts/styles.css.js +21 -21
  476. package/lib/internal/template/select/parts/styles.scoped.css +26 -22
  477. package/lib/internal/template/select/parts/styles.selectors.js +21 -21
  478. package/lib/internal/template/select/styles.css.js +1 -1
  479. package/lib/internal/template/select/styles.scoped.css +5 -1
  480. package/lib/internal/template/select/styles.selectors.js +1 -1
  481. package/lib/internal/template/select/utils/use-select.js +1 -1
  482. package/lib/internal/template/select/utils/use-select.js.map +1 -1
  483. package/lib/internal/template/side-navigation/styles.css.js +30 -30
  484. package/lib/internal/template/side-navigation/styles.scoped.css +50 -46
  485. package/lib/internal/template/side-navigation/styles.selectors.js +30 -30
  486. package/lib/internal/template/slider/styles.css.js +26 -26
  487. package/lib/internal/template/slider/styles.scoped.css +80 -76
  488. package/lib/internal/template/slider/styles.selectors.js +26 -26
  489. package/lib/internal/template/space-between/styles.css.js +23 -23
  490. package/lib/internal/template/space-between/styles.scoped.css +28 -24
  491. package/lib/internal/template/space-between/styles.selectors.js +23 -23
  492. package/lib/internal/template/spinner/styles.css.js +13 -13
  493. package/lib/internal/template/spinner/styles.scoped.css +23 -19
  494. package/lib/internal/template/spinner/styles.selectors.js +13 -13
  495. package/lib/internal/template/split-panel/icons/styles.css.js +22 -22
  496. package/lib/internal/template/split-panel/icons/styles.scoped.css +28 -24
  497. package/lib/internal/template/split-panel/icons/styles.selectors.js +22 -22
  498. package/lib/internal/template/split-panel/styles.css.js +26 -26
  499. package/lib/internal/template/split-panel/styles.scoped.css +47 -43
  500. package/lib/internal/template/split-panel/styles.selectors.js +26 -26
  501. package/lib/internal/template/status-indicator/styles.css.js +23 -23
  502. package/lib/internal/template/status-indicator/styles.scoped.css +33 -29
  503. package/lib/internal/template/status-indicator/styles.selectors.js +23 -23
  504. package/lib/internal/template/steps/styles.css.js +6 -6
  505. package/lib/internal/template/steps/styles.scoped.css +13 -9
  506. package/lib/internal/template/steps/styles.selectors.js +6 -6
  507. package/lib/internal/template/table/body-cell/styles.css.js +46 -46
  508. package/lib/internal/template/table/body-cell/styles.scoped.css +296 -292
  509. package/lib/internal/template/table/body-cell/styles.selectors.js +46 -46
  510. package/lib/internal/template/table/expandable-rows/styles.css.js +3 -3
  511. package/lib/internal/template/table/expandable-rows/styles.scoped.css +17 -13
  512. package/lib/internal/template/table/expandable-rows/styles.selectors.js +3 -3
  513. package/lib/internal/template/table/header-cell/styles.css.js +26 -26
  514. package/lib/internal/template/table/header-cell/styles.scoped.css +69 -65
  515. package/lib/internal/template/table/header-cell/styles.selectors.js +26 -26
  516. package/lib/internal/template/table/header-cell/th-element.d.ts +2 -1
  517. package/lib/internal/template/table/header-cell/th-element.d.ts.map +1 -1
  518. package/lib/internal/template/table/header-cell/th-element.js +2 -2
  519. package/lib/internal/template/table/header-cell/th-element.js.map +1 -1
  520. package/lib/internal/template/table/interfaces.d.ts +14 -3
  521. package/lib/internal/template/table/interfaces.d.ts.map +1 -1
  522. package/lib/internal/template/table/interfaces.js.map +1 -1
  523. package/lib/internal/template/table/internal.d.ts.map +1 -1
  524. package/lib/internal/template/table/internal.js +13 -4
  525. package/lib/internal/template/table/internal.js.map +1 -1
  526. package/lib/internal/template/table/progressive-loading/items-loader.d.ts +8 -2
  527. package/lib/internal/template/table/progressive-loading/items-loader.d.ts.map +1 -1
  528. package/lib/internal/template/table/progressive-loading/items-loader.js +11 -5
  529. package/lib/internal/template/table/progressive-loading/items-loader.js.map +1 -1
  530. package/lib/internal/template/table/progressive-loading/loader-cell.d.ts +2 -3
  531. package/lib/internal/template/table/progressive-loading/loader-cell.d.ts.map +1 -1
  532. package/lib/internal/template/table/progressive-loading/loader-cell.js +2 -2
  533. package/lib/internal/template/table/progressive-loading/loader-cell.js.map +1 -1
  534. package/lib/internal/template/table/progressive-loading/progressive-loading-utils.d.ts.map +1 -1
  535. package/lib/internal/template/table/progressive-loading/progressive-loading-utils.js +2 -2
  536. package/lib/internal/template/table/progressive-loading/progressive-loading-utils.js.map +1 -1
  537. package/lib/internal/template/table/resizer/styles.css.js +8 -8
  538. package/lib/internal/template/table/resizer/styles.scoped.css +19 -15
  539. package/lib/internal/template/table/resizer/styles.selectors.js +8 -8
  540. package/lib/internal/template/table/selection/interfaces.d.ts +1 -0
  541. package/lib/internal/template/table/selection/interfaces.d.ts.map +1 -1
  542. package/lib/internal/template/table/selection/interfaces.js.map +1 -1
  543. package/lib/internal/template/table/selection/selection-cell.d.ts.map +1 -1
  544. package/lib/internal/template/table/selection/selection-cell.js +4 -3
  545. package/lib/internal/template/table/selection/selection-cell.js.map +1 -1
  546. package/lib/internal/template/table/selection/styles.css.js +3 -3
  547. package/lib/internal/template/table/selection/styles.scoped.css +7 -3
  548. package/lib/internal/template/table/selection/styles.selectors.js +3 -3
  549. package/lib/internal/template/table/selection/use-selection.js +1 -0
  550. package/lib/internal/template/table/selection/use-selection.js.map +1 -1
  551. package/lib/internal/template/table/sticky-scrollbar/styles.css.js +6 -6
  552. package/lib/internal/template/table/sticky-scrollbar/styles.scoped.css +14 -10
  553. package/lib/internal/template/table/sticky-scrollbar/styles.selectors.js +6 -6
  554. package/lib/internal/template/table/styles.css.js +34 -34
  555. package/lib/internal/template/table/styles.scoped.css +45 -41
  556. package/lib/internal/template/table/styles.selectors.js +34 -34
  557. package/lib/internal/template/tabs/styles.css.js +28 -28
  558. package/lib/internal/template/tabs/styles.scoped.css +57 -49
  559. package/lib/internal/template/tabs/styles.selectors.js +28 -28
  560. package/lib/internal/template/tag-editor/styles.css.js +3 -3
  561. package/lib/internal/template/tag-editor/styles.scoped.css +14 -10
  562. package/lib/internal/template/tag-editor/styles.selectors.js +3 -3
  563. package/lib/internal/template/test-utils/dom/button-group/index.d.ts +5 -0
  564. package/lib/internal/template/test-utils/dom/button-group/index.js +16 -7
  565. package/lib/internal/template/test-utils/dom/button-group/index.js.map +1 -1
  566. package/lib/internal/template/test-utils/selectors/button-group/index.d.ts +5 -0
  567. package/lib/internal/template/test-utils/selectors/button-group/index.js +16 -7
  568. package/lib/internal/template/test-utils/selectors/button-group/index.js.map +1 -1
  569. package/lib/internal/template/test-utils/tsconfig.tsbuildinfo +1 -1
  570. package/lib/internal/template/text-content/styles.css.js +1 -1
  571. package/lib/internal/template/text-content/styles.scoped.css +64 -60
  572. package/lib/internal/template/text-content/styles.selectors.js +1 -1
  573. package/lib/internal/template/text-filter/styles.css.js +3 -3
  574. package/lib/internal/template/text-filter/styles.scoped.css +7 -3
  575. package/lib/internal/template/text-filter/styles.selectors.js +3 -3
  576. package/lib/internal/template/textarea/styles.css.js +5 -5
  577. package/lib/internal/template/textarea/styles.scoped.css +18 -14
  578. package/lib/internal/template/textarea/styles.selectors.js +5 -5
  579. package/lib/internal/template/tiles/styles.css.js +30 -30
  580. package/lib/internal/template/tiles/styles.scoped.css +77 -73
  581. package/lib/internal/template/tiles/styles.selectors.js +30 -30
  582. package/lib/internal/template/toggle/styles.css.js +10 -10
  583. package/lib/internal/template/toggle/styles.scoped.css +21 -17
  584. package/lib/internal/template/toggle/styles.selectors.js +10 -10
  585. package/lib/internal/template/token-group/styles.css.js +8 -8
  586. package/lib/internal/template/token-group/styles.scoped.css +20 -16
  587. package/lib/internal/template/token-group/styles.selectors.js +8 -8
  588. package/lib/internal/template/top-navigation/1.0-beta/styles.css.js +23 -25
  589. package/lib/internal/template/top-navigation/1.0-beta/styles.scoped.css +40 -66
  590. package/lib/internal/template/top-navigation/1.0-beta/styles.selectors.js +23 -25
  591. package/lib/internal/template/top-navigation/parts/overflow-menu/menu-item.d.ts.map +1 -1
  592. package/lib/internal/template/top-navigation/parts/overflow-menu/menu-item.js +3 -2
  593. package/lib/internal/template/top-navigation/parts/overflow-menu/menu-item.js.map +1 -1
  594. package/lib/internal/template/top-navigation/styles.css.js +47 -47
  595. package/lib/internal/template/top-navigation/styles.scoped.css +78 -85
  596. package/lib/internal/template/top-navigation/styles.selectors.js +47 -47
  597. package/lib/internal/template/tutorial-panel/components/tutorial-detail-view/styles.css.js +20 -20
  598. package/lib/internal/template/tutorial-panel/components/tutorial-detail-view/styles.scoped.css +27 -23
  599. package/lib/internal/template/tutorial-panel/components/tutorial-detail-view/styles.selectors.js +20 -20
  600. package/lib/internal/template/tutorial-panel/components/tutorial-list/styles.css.js +18 -18
  601. package/lib/internal/template/tutorial-panel/components/tutorial-list/styles.scoped.css +33 -29
  602. package/lib/internal/template/tutorial-panel/components/tutorial-list/styles.selectors.js +18 -18
  603. package/lib/internal/template/tutorial-panel/styles.css.js +1 -1
  604. package/lib/internal/template/tutorial-panel/styles.scoped.css +7 -3
  605. package/lib/internal/template/tutorial-panel/styles.selectors.js +1 -1
  606. package/lib/internal/template/wizard/styles.css.js +30 -30
  607. package/lib/internal/template/wizard/styles.scoped.css +62 -58
  608. package/lib/internal/template/wizard/styles.selectors.js +30 -30
  609. package/package.json +1 -1
  610. package/lib/internal/scss/top-navigation/motion.scss +0 -13
  611. package/lib/internal/template/calendar/utils/navigation.d.ts.map +0 -1
  612. package/lib/internal/template/calendar/utils/navigation.js +0 -73
  613. package/lib/internal/template/calendar/utils/navigation.js.map +0 -1
  614. package/lib/internal/template/internal/utils/date-time/is-iso-date-only.d.ts +0 -5
  615. package/lib/internal/template/internal/utils/date-time/is-iso-date-only.d.ts.map +0 -1
  616. package/lib/internal/template/internal/utils/date-time/is-iso-date-only.js +0 -10
  617. package/lib/internal/template/internal/utils/date-time/is-iso-date-only.js.map +0 -1
@@ -7,13 +7,13 @@ import useBaseComponent from '../internal/hooks/use-base-component';
7
7
  import { applyDisplayName } from '../internal/utils/apply-display-name';
8
8
  import { InternalButton } from './internal';
9
9
  const Button = React.forwardRef((_a, ref) => {
10
- var { children, iconName, iconAlign = 'left', iconUrl, iconSvg, iconAlt, variant = 'normal', loading = false, loadingText, disabled = false, disabledReason, wrapText = true, href, target, rel, download, formAction = 'submit', ariaLabel, ariaDescribedby, onClick, onFollow, ariaExpanded, ariaControls, fullWidth, form } = _a, props = __rest(_a, ["children", "iconName", "iconAlign", "iconUrl", "iconSvg", "iconAlt", "variant", "loading", "loadingText", "disabled", "disabledReason", "wrapText", "href", "target", "rel", "download", "formAction", "ariaLabel", "ariaDescribedby", "onClick", "onFollow", "ariaExpanded", "ariaControls", "fullWidth", "form"]);
10
+ var { children, iconName, iconAlign = 'left', iconUrl, iconSvg, iconAlt, variant = 'normal', loading = false, loadingText, disabled = false, disabledReason, wrapText = true, href, target, rel, external = false, download, formAction = 'submit', ariaLabel, ariaDescribedby, onClick, onFollow, ariaExpanded, ariaControls, fullWidth, form, i18nStrings } = _a, props = __rest(_a, ["children", "iconName", "iconAlign", "iconUrl", "iconSvg", "iconAlt", "variant", "loading", "loadingText", "disabled", "disabledReason", "wrapText", "href", "target", "rel", "external", "download", "formAction", "ariaLabel", "ariaDescribedby", "onClick", "onFollow", "ariaExpanded", "ariaControls", "fullWidth", "form", "i18nStrings"]);
11
11
  const baseComponentProps = useBaseComponent('Button', {
12
- props: { formAction, fullWidth, iconAlign, iconName, rel, target, variant, wrapText },
12
+ props: { formAction, fullWidth, iconAlign, iconName, rel, target, external, variant, wrapText },
13
13
  metadata: { hasDisabledReason: Boolean(disabledReason) },
14
14
  });
15
15
  const baseProps = getBaseProps(props);
16
- return (React.createElement(InternalButton, Object.assign({}, baseProps, baseComponentProps, { ref: ref, iconName: iconName, iconAlign: iconAlign, iconUrl: iconUrl, iconSvg: iconSvg, iconAlt: iconAlt, variant: variant, loading: loading, loadingText: loadingText, disabled: disabled, disabledReason: disabledReason, wrapText: wrapText, href: href, target: target, rel: rel, download: download, formAction: formAction, ariaLabel: ariaLabel, ariaDescribedby: ariaDescribedby, onClick: onClick, onFollow: onFollow, ariaExpanded: ariaExpanded, ariaControls: ariaControls, fullWidth: fullWidth, form: form, __injectAnalyticsComponentMetadata: true }), children));
16
+ return (React.createElement(InternalButton, Object.assign({}, baseProps, baseComponentProps, { ref: ref, iconName: iconName, iconAlign: iconAlign, iconUrl: iconUrl, iconSvg: iconSvg, iconAlt: iconAlt, variant: variant, loading: loading, loadingText: loadingText, disabled: disabled, disabledReason: disabledReason, wrapText: wrapText, href: href, target: target, rel: rel, external: external, download: download, formAction: formAction, ariaLabel: ariaLabel, ariaDescribedby: ariaDescribedby, onClick: onClick, onFollow: onFollow, ariaExpanded: ariaExpanded, ariaControls: ariaControls, fullWidth: fullWidth, form: form, i18nStrings: i18nStrings, __injectAnalyticsComponentMetadata: true }), children));
17
17
  });
18
18
  applyDisplayName(Button, 'Button');
19
19
  export default Button;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/button/index.tsx"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,gBAAgB,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAExE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAI5C,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAC7B,CACE,EA2Bc,EACd,GAA+B,EAC/B,EAAE;QA7BF,EACE,QAAQ,EACR,QAAQ,EACR,SAAS,GAAG,MAAM,EAClB,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,GAAG,QAAQ,EAClB,OAAO,GAAG,KAAK,EACf,WAAW,EACX,QAAQ,GAAG,KAAK,EAChB,cAAc,EACd,QAAQ,GAAG,IAAI,EACf,IAAI,EACJ,MAAM,EACN,GAAG,EACH,QAAQ,EACR,UAAU,GAAG,QAAQ,EACrB,SAAS,EACT,eAAe,EACf,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,IAAI,OAEQ,EADT,KAAK,cA1BV,oTA2BC,CADS;IAIV,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,QAAQ,EAAE;QACpD,KAAK,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE;QACrF,QAAQ,EAAE,EAAE,iBAAiB,EAAE,OAAO,CAAC,cAAc,CAAC,EAAE;KACzD,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACtC,OAAO,CACL,oBAAC,cAAc,oBACT,SAAS,EACT,kBAAkB,IACtB,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,EACpB,eAAe,EAAE,eAAe,EAChC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,EACV,kCAAkC,EAAE,IAAI,KAEvC,QAAQ,CACM,CAClB,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AACnC,eAAe,MAAM,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React from 'react';\n\nimport { getBaseProps } from '../internal/base-component';\nimport useBaseComponent from '../internal/hooks/use-base-component';\nimport { applyDisplayName } from '../internal/utils/apply-display-name';\nimport { ButtonProps } from './interfaces';\nimport { InternalButton } from './internal';\n\nexport { ButtonProps };\n\nconst Button = React.forwardRef(\n (\n {\n children,\n iconName,\n iconAlign = 'left',\n iconUrl,\n iconSvg,\n iconAlt,\n variant = 'normal',\n loading = false,\n loadingText,\n disabled = false,\n disabledReason,\n wrapText = true,\n href,\n target,\n rel,\n download,\n formAction = 'submit',\n ariaLabel,\n ariaDescribedby,\n onClick,\n onFollow,\n ariaExpanded,\n ariaControls,\n fullWidth,\n form,\n ...props\n }: ButtonProps,\n ref: React.Ref<ButtonProps.Ref>\n ) => {\n const baseComponentProps = useBaseComponent('Button', {\n props: { formAction, fullWidth, iconAlign, iconName, rel, target, variant, wrapText },\n metadata: { hasDisabledReason: Boolean(disabledReason) },\n });\n const baseProps = getBaseProps(props);\n return (\n <InternalButton\n {...baseProps}\n {...baseComponentProps}\n ref={ref}\n iconName={iconName}\n iconAlign={iconAlign}\n iconUrl={iconUrl}\n iconSvg={iconSvg}\n iconAlt={iconAlt}\n variant={variant}\n loading={loading}\n loadingText={loadingText}\n disabled={disabled}\n disabledReason={disabledReason}\n wrapText={wrapText}\n href={href}\n target={target}\n rel={rel}\n download={download}\n formAction={formAction}\n ariaLabel={ariaLabel}\n ariaDescribedby={ariaDescribedby}\n onClick={onClick}\n onFollow={onFollow}\n ariaExpanded={ariaExpanded}\n ariaControls={ariaControls}\n fullWidth={fullWidth}\n form={form}\n __injectAnalyticsComponentMetadata={true}\n >\n {children}\n </InternalButton>\n );\n }\n);\n\napplyDisplayName(Button, 'Button');\nexport default Button;\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/button/index.tsx"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,gBAAgB,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAExE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAI5C,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAC7B,CACE,EA6Bc,EACd,GAA+B,EAC/B,EAAE;QA/BF,EACE,QAAQ,EACR,QAAQ,EACR,SAAS,GAAG,MAAM,EAClB,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,GAAG,QAAQ,EAClB,OAAO,GAAG,KAAK,EACf,WAAW,EACX,QAAQ,GAAG,KAAK,EAChB,cAAc,EACd,QAAQ,GAAG,IAAI,EACf,IAAI,EACJ,MAAM,EACN,GAAG,EACH,QAAQ,GAAG,KAAK,EAChB,QAAQ,EACR,UAAU,GAAG,QAAQ,EACrB,SAAS,EACT,eAAe,EACf,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,IAAI,EACJ,WAAW,OAEC,EADT,KAAK,cA5BV,+UA6BC,CADS;IAIV,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,QAAQ,EAAE;QACpD,KAAK,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE;QAC/F,QAAQ,EAAE,EAAE,iBAAiB,EAAE,OAAO,CAAC,cAAc,CAAC,EAAE;KACzD,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACtC,OAAO,CACL,oBAAC,cAAc,oBACT,SAAS,EACT,kBAAkB,IACtB,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,EACpB,eAAe,EAAE,eAAe,EAChC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,WAAW,EACxB,kCAAkC,EAAE,IAAI,KAEvC,QAAQ,CACM,CAClB,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AACnC,eAAe,MAAM,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React from 'react';\n\nimport { getBaseProps } from '../internal/base-component';\nimport useBaseComponent from '../internal/hooks/use-base-component';\nimport { applyDisplayName } from '../internal/utils/apply-display-name';\nimport { ButtonProps } from './interfaces';\nimport { InternalButton } from './internal';\n\nexport { ButtonProps };\n\nconst Button = React.forwardRef(\n (\n {\n children,\n iconName,\n iconAlign = 'left',\n iconUrl,\n iconSvg,\n iconAlt,\n variant = 'normal',\n loading = false,\n loadingText,\n disabled = false,\n disabledReason,\n wrapText = true,\n href,\n target,\n rel,\n external = false,\n download,\n formAction = 'submit',\n ariaLabel,\n ariaDescribedby,\n onClick,\n onFollow,\n ariaExpanded,\n ariaControls,\n fullWidth,\n form,\n i18nStrings,\n ...props\n }: ButtonProps,\n ref: React.Ref<ButtonProps.Ref>\n ) => {\n const baseComponentProps = useBaseComponent('Button', {\n props: { formAction, fullWidth, iconAlign, iconName, rel, target, external, variant, wrapText },\n metadata: { hasDisabledReason: Boolean(disabledReason) },\n });\n const baseProps = getBaseProps(props);\n return (\n <InternalButton\n {...baseProps}\n {...baseComponentProps}\n ref={ref}\n iconName={iconName}\n iconAlign={iconAlign}\n iconUrl={iconUrl}\n iconSvg={iconSvg}\n iconAlt={iconAlt}\n variant={variant}\n loading={loading}\n loadingText={loadingText}\n disabled={disabled}\n disabledReason={disabledReason}\n wrapText={wrapText}\n href={href}\n target={target}\n rel={rel}\n external={external}\n download={download}\n formAction={formAction}\n ariaLabel={ariaLabel}\n ariaDescribedby={ariaDescribedby}\n onClick={onClick}\n onFollow={onFollow}\n ariaExpanded={ariaExpanded}\n ariaControls={ariaControls}\n fullWidth={fullWidth}\n form={form}\n i18nStrings={i18nStrings}\n __injectAnalyticsComponentMetadata={true}\n >\n {children}\n </InternalButton>\n );\n }\n);\n\napplyDisplayName(Button, 'Button');\nexport default Button;\n"]}
@@ -77,6 +77,18 @@ export interface BaseButtonProps {
77
77
  * Adds `aria-controls` to the button. Use when the button controls the contents or presence of an element.
78
78
  */
79
79
  ariaControls?: string;
80
+ /**
81
+ * Adds an external icon after the button label text.
82
+ * If an href is provided, it opens the link in a new tab.
83
+ */
84
+ external?: boolean;
85
+ /**
86
+ * An object containing all the necessary localized strings required by the component. The object should contain:
87
+ *
88
+ * * `externalIconAriaLabel` - (optional) Specifies the aria-label for the external icon when `external` is set to `true`.
89
+ * @i18n
90
+ */
91
+ i18nStrings?: ButtonProps.I18nStrings;
80
92
  }
81
93
  export interface ButtonProps extends BaseComponentProps, BaseButtonProps {
82
94
  /**
@@ -150,6 +162,12 @@ export declare namespace ButtonProps {
150
162
  type FollowDetail = BaseNavigationDetail;
151
163
  type FormAction = 'submit' | 'none';
152
164
  type IconAlign = 'left' | 'right';
165
+ interface I18nStrings {
166
+ /**
167
+ * Specifies the aria-label for the external icon when `external` is set to `true`.
168
+ */
169
+ externalIconAriaLabel?: string;
170
+ }
153
171
  interface Ref {
154
172
  /**
155
173
  * Focuses the underlying native button.
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/button/interfaces.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,WAAW,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAE/G,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC;IAC1B;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE1B;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE3B;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,WAAY,SAAQ,kBAAkB,EAAE,eAAe;IACtE;;OAEG;IACH,SAAS,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC;IAElC;;OAEG;IACH,UAAU,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC;IAEpC;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;;QAII;IACJ,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAE5B;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,OAAO,CAAC,EAAE,sBAAsB,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAE1D;;;OAGG;IACH,QAAQ,CAAC,EAAE,sBAAsB,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IAE5D;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC;IAE9B;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,yBAAiB,WAAW,CAAC;IAC3B,KAAY,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,aAAa,GAAG,aAAa,CAAC;IAC7F,KAAY,WAAW,GAAG,YAAY,CAAC;IACvC,KAAY,YAAY,GAAG,oBAAoB,CAAC;IAEhD,KAAY,UAAU,GAAG,QAAQ,GAAG,MAAM,CAAC;IAE3C,KAAY,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;IAEzC,UAAiB,GAAG;QAClB;;WAEG;QACH,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;KACrC;CACF"}
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/button/interfaces.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,WAAW,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAE/G,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC;IAC1B;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE1B;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE3B;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC;CACvC;AAED,MAAM,WAAW,WAAY,SAAQ,kBAAkB,EAAE,eAAe;IACtE;;OAEG;IACH,SAAS,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC;IAElC;;OAEG;IACH,UAAU,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC;IAEpC;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;;QAII;IACJ,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAE5B;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,OAAO,CAAC,EAAE,sBAAsB,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAE1D;;;OAGG;IACH,QAAQ,CAAC,EAAE,sBAAsB,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IAE5D;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC;IAE9B;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,yBAAiB,WAAW,CAAC;IAC3B,KAAY,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,aAAa,GAAG,aAAa,CAAC;IAC7F,KAAY,WAAW,GAAG,YAAY,CAAC;IACvC,KAAY,YAAY,GAAG,oBAAoB,CAAC;IAEhD,KAAY,UAAU,GAAG,QAAQ,GAAG,MAAM,CAAC;IAE3C,KAAY,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;IAEzC,UAAiB,WAAW;QAC1B;;WAEG;QACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;KAChC;IAED,UAAiB,GAAG;QAClB;;WAEG;QACH,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;KACrC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/button/interfaces.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React from 'react';\n\nimport { IconProps } from '../icon/interfaces';\nimport { BaseComponentProps } from '../internal/base-component';\nimport { BaseNavigationDetail, CancelableEventHandler, ClickDetail as _ClickDetail } from '../internal/events';\n\nexport interface BaseButtonProps {\n /**\n * Renders the button as disabled and prevents clicks.\n */\n disabled?: boolean;\n /**\n * Provides a reason why the button is disabled (only when `disabled` is `true`).\n * If provided, the button becomes focusable.\n * Applicable for all button variants, except link and icon.\n */\n disabledReason?: string;\n /**\n * Renders the button as being in a loading state. It takes precedence over the `disabled` if both are set to `true`.\n * It prevents users from clicking the button, but it can still be focused.\n */\n loading?: boolean;\n /**\n * Specifies the text that screen reader announces when the button is in a loading state.\n */\n loadingText?: string;\n /**\n * Displays an icon next to the text. You can use the `iconAlign` property to position the icon.\n */\n iconName?: IconProps.Name;\n /**\n * Specifies the URL of a custom icon. Use this property if the icon you want isn't available.\n *\n * If you set both `iconUrl` and `iconSvg`, `iconSvg` will take precedence.\n */\n iconUrl?: string;\n /**\n * Specifies the SVG of a custom icon.\n *\n * Use this property if you want your custom icon to inherit colors dictated by variant or hover states.\n * When this property is set, the component will be decorated with `aria-hidden=\"true\"`. Ensure that the `svg` element:\n * - has attribute `focusable=\"false\"`.\n * - has `viewBox=\"0 0 16 16\"`.\n *\n * If you set the `svg` element as the root node of the slot, the component will automatically\n * - set `stroke=\"currentColor\"`, `fill=\"none\"`, and `vertical-align=\"top\"`.\n * - set the stroke width based on the size of the icon.\n * - set the width and height of the SVG element based on the size of the icon.\n *\n * If you don't want these styles to be automatically set, wrap the `svg` element into a `span`.\n * You can still set the stroke to `currentColor` to inherit the color of the surrounding elements.\n *\n * If you set both `iconUrl` and `iconSvg`, `iconSvg` will take precedence.\n *\n * *Note:* Remember to remove any additional elements (for example: `defs`) and related CSS classes from SVG files exported from design software.\n * In most cases, they aren't needed, as the `svg` element inherits styles from the icon component.\n */\n iconSvg?: React.ReactNode;\n\n /**\n * Adds `aria-label` to the button element. Use this to provide an accessible name for buttons\n * that don't have visible text, and to distinguish between multiple buttons with identical visible text.\n * The text will also be added to the `title` attribute of the button.\n */\n ariaLabel?: string;\n\n /**\n * Adds `aria-describedby` to the button.\n */\n ariaDescribedby?: string;\n\n /**\n * Specifies if the `text` content wraps. If you set it to `false`, it prevents the text from wrapping.\n */\n wrapText?: boolean;\n\n /**\n * Text displayed in the button element.\n * @displayname text\n */\n children?: React.ReactNode;\n\n /**\n * Adds `aria-controls` to the button. Use when the button controls the contents or presence of an element.\n */\n ariaControls?: string;\n}\n\nexport interface ButtonProps extends BaseComponentProps, BaseButtonProps {\n /**\n * Specifies the alignment of the icon.\n */\n iconAlign?: ButtonProps.IconAlign;\n\n /**\n * The form action that is performed by a button click.\n */\n formAction?: ButtonProps.FormAction;\n\n /**\n * Applies button styling to a link. Use this property if you need a link styled as a button (`variant=link`).\n * For example, if you have a 'help' button that links to a documentation page.\n */\n href?: string;\n\n /**\n * Specifies where to open the linked URL (for example, to open in a new browser window or tab use `_blank`).\n * This property only applies when an `href` is provided.\n */\n target?: string;\n\n /**\n * Adds a `rel` attribute to the link. By default, the component sets the `rel` attribute to \"noopener noreferrer\" when `target` is `\"_blank\"`.\n * If the `rel` property is provided, it overrides the default behavior.\n */\n rel?: string;\n\n /**\n * Specifies whether the linked URL, when selected, will prompt the user to download instead of navigate.\n * You can specify a string value that will be suggested as the name of the downloaded file.\n * This property only applies when an `href` is provided.\n **/\n download?: boolean | string;\n\n /** The id of the <form> element to associate with the button. The value of this attribute must be the id of a <form> in the same document.\n * Use when a button is not the ancestor of a form element, such as when used in a modal.\n */\n form?: string;\n\n /**\n * Adds aria-expanded to the button element. Use when the button controls an expandable element.\n */\n ariaExpanded?: boolean;\n\n /**\n * Called when the user clicks on the button and the button is not disabled or in loading state.\n */\n onClick?: CancelableEventHandler<ButtonProps.ClickDetail>;\n\n /**\n * Called when the user clicks on the button with the left mouse button without pressing\n * modifier keys (that is, CTRL, ALT, SHIFT, META), and the button has an `href` set.\n */\n onFollow?: CancelableEventHandler<ButtonProps.FollowDetail>;\n\n /**\n * Sets the button width to be 100% of the parent container width. Button content is centered.\n */\n fullWidth?: boolean;\n\n /** Determines the general styling of the button as follows:\n * * `primary` for primary buttons.\n * * `normal` for secondary buttons.\n * * `link` for tertiary buttons.\n * * `icon` to display an icon only (no text).\n * * `inline-icon` to display an icon-only (no text) button within a text context.\n * * `inline-link` to display a tertiary button with no outer padding.\n */\n variant?: ButtonProps.Variant;\n\n /**\n * Specifies alternate text for a custom icon. We recommend that you provide this for accessibility.\n * This property is ignored if you use a predefined icon or if you set your custom icon using the `iconSvg` slot.\n */\n iconAlt?: string;\n}\n\nexport namespace ButtonProps {\n export type Variant = 'normal' | 'primary' | 'link' | 'icon' | 'inline-icon' | 'inline-link';\n export type ClickDetail = _ClickDetail;\n export type FollowDetail = BaseNavigationDetail;\n\n export type FormAction = 'submit' | 'none';\n\n export type IconAlign = 'left' | 'right';\n\n export interface Ref {\n /**\n * Focuses the underlying native button.\n */\n focus(options?: FocusOptions): void;\n }\n}\n"]}
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/button/interfaces.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React from 'react';\n\nimport { IconProps } from '../icon/interfaces';\nimport { BaseComponentProps } from '../internal/base-component';\nimport { BaseNavigationDetail, CancelableEventHandler, ClickDetail as _ClickDetail } from '../internal/events';\n\nexport interface BaseButtonProps {\n /**\n * Renders the button as disabled and prevents clicks.\n */\n disabled?: boolean;\n /**\n * Provides a reason why the button is disabled (only when `disabled` is `true`).\n * If provided, the button becomes focusable.\n * Applicable for all button variants, except link and icon.\n */\n disabledReason?: string;\n /**\n * Renders the button as being in a loading state. It takes precedence over the `disabled` if both are set to `true`.\n * It prevents users from clicking the button, but it can still be focused.\n */\n loading?: boolean;\n /**\n * Specifies the text that screen reader announces when the button is in a loading state.\n */\n loadingText?: string;\n /**\n * Displays an icon next to the text. You can use the `iconAlign` property to position the icon.\n */\n iconName?: IconProps.Name;\n /**\n * Specifies the URL of a custom icon. Use this property if the icon you want isn't available.\n *\n * If you set both `iconUrl` and `iconSvg`, `iconSvg` will take precedence.\n */\n iconUrl?: string;\n /**\n * Specifies the SVG of a custom icon.\n *\n * Use this property if you want your custom icon to inherit colors dictated by variant or hover states.\n * When this property is set, the component will be decorated with `aria-hidden=\"true\"`. Ensure that the `svg` element:\n * - has attribute `focusable=\"false\"`.\n * - has `viewBox=\"0 0 16 16\"`.\n *\n * If you set the `svg` element as the root node of the slot, the component will automatically\n * - set `stroke=\"currentColor\"`, `fill=\"none\"`, and `vertical-align=\"top\"`.\n * - set the stroke width based on the size of the icon.\n * - set the width and height of the SVG element based on the size of the icon.\n *\n * If you don't want these styles to be automatically set, wrap the `svg` element into a `span`.\n * You can still set the stroke to `currentColor` to inherit the color of the surrounding elements.\n *\n * If you set both `iconUrl` and `iconSvg`, `iconSvg` will take precedence.\n *\n * *Note:* Remember to remove any additional elements (for example: `defs`) and related CSS classes from SVG files exported from design software.\n * In most cases, they aren't needed, as the `svg` element inherits styles from the icon component.\n */\n iconSvg?: React.ReactNode;\n\n /**\n * Adds `aria-label` to the button element. Use this to provide an accessible name for buttons\n * that don't have visible text, and to distinguish between multiple buttons with identical visible text.\n * The text will also be added to the `title` attribute of the button.\n */\n ariaLabel?: string;\n\n /**\n * Adds `aria-describedby` to the button.\n */\n ariaDescribedby?: string;\n\n /**\n * Specifies if the `text` content wraps. If you set it to `false`, it prevents the text from wrapping.\n */\n wrapText?: boolean;\n\n /**\n * Text displayed in the button element.\n * @displayname text\n */\n children?: React.ReactNode;\n\n /**\n * Adds `aria-controls` to the button. Use when the button controls the contents or presence of an element.\n */\n ariaControls?: string;\n\n /**\n * Adds an external icon after the button label text.\n * If an href is provided, it opens the link in a new tab.\n */\n external?: boolean;\n\n /**\n * An object containing all the necessary localized strings required by the component. The object should contain:\n *\n * * `externalIconAriaLabel` - (optional) Specifies the aria-label for the external icon when `external` is set to `true`.\n * @i18n\n */\n i18nStrings?: ButtonProps.I18nStrings;\n}\n\nexport interface ButtonProps extends BaseComponentProps, BaseButtonProps {\n /**\n * Specifies the alignment of the icon.\n */\n iconAlign?: ButtonProps.IconAlign;\n\n /**\n * The form action that is performed by a button click.\n */\n formAction?: ButtonProps.FormAction;\n\n /**\n * Applies button styling to a link. Use this property if you need a link styled as a button (`variant=link`).\n * For example, if you have a 'help' button that links to a documentation page.\n */\n href?: string;\n\n /**\n * Specifies where to open the linked URL (for example, to open in a new browser window or tab use `_blank`).\n * This property only applies when an `href` is provided.\n */\n target?: string;\n\n /**\n * Adds a `rel` attribute to the link. By default, the component sets the `rel` attribute to \"noopener noreferrer\" when `target` is `\"_blank\"`.\n * If the `rel` property is provided, it overrides the default behavior.\n */\n rel?: string;\n\n /**\n * Specifies whether the linked URL, when selected, will prompt the user to download instead of navigate.\n * You can specify a string value that will be suggested as the name of the downloaded file.\n * This property only applies when an `href` is provided.\n **/\n download?: boolean | string;\n\n /** The id of the <form> element to associate with the button. The value of this attribute must be the id of a <form> in the same document.\n * Use when a button is not the ancestor of a form element, such as when used in a modal.\n */\n form?: string;\n\n /**\n * Adds aria-expanded to the button element. Use when the button controls an expandable element.\n */\n ariaExpanded?: boolean;\n\n /**\n * Called when the user clicks on the button and the button is not disabled or in loading state.\n */\n onClick?: CancelableEventHandler<ButtonProps.ClickDetail>;\n\n /**\n * Called when the user clicks on the button with the left mouse button without pressing\n * modifier keys (that is, CTRL, ALT, SHIFT, META), and the button has an `href` set.\n */\n onFollow?: CancelableEventHandler<ButtonProps.FollowDetail>;\n\n /**\n * Sets the button width to be 100% of the parent container width. Button content is centered.\n */\n fullWidth?: boolean;\n\n /** Determines the general styling of the button as follows:\n * * `primary` for primary buttons.\n * * `normal` for secondary buttons.\n * * `link` for tertiary buttons.\n * * `icon` to display an icon only (no text).\n * * `inline-icon` to display an icon-only (no text) button within a text context.\n * * `inline-link` to display a tertiary button with no outer padding.\n */\n variant?: ButtonProps.Variant;\n\n /**\n * Specifies alternate text for a custom icon. We recommend that you provide this for accessibility.\n * This property is ignored if you use a predefined icon or if you set your custom icon using the `iconSvg` slot.\n */\n iconAlt?: string;\n}\n\nexport namespace ButtonProps {\n export type Variant = 'normal' | 'primary' | 'link' | 'icon' | 'inline-icon' | 'inline-link';\n export type ClickDetail = _ClickDetail;\n export type FollowDetail = BaseNavigationDetail;\n\n export type FormAction = 'submit' | 'none';\n\n export type IconAlign = 'left' | 'right';\n\n export interface I18nStrings {\n /**\n * Specifies the aria-label for the external icon when `external` is set to `true`.\n */\n externalIconAriaLabel?: string;\n }\n\n export interface Ref {\n /**\n * Focuses the underlying native button.\n */\n focus(options?: FocusOptions): void;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../src/button/internal.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAqB3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAUlF,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAM3C,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,GAAG;IAC/D,OAAO,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,eAAe,GAAG,kBAAkB,GAAG,cAAc,GAAG,eAAe,CAAC;IAC3G,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EACf,CAAC,KAAK,CAAC,cAAc,CAAC,iBAAiB,CAAC,GAAG,KAAK,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,GACnF,MAAM,CAAC,QAAQ,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kCAAkC,CAAC,EAAE,OAAO,CAAC;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC,GAAG,0BAA0B,CAAC,iBAAiB,GAAG,iBAAiB,CAAC,CAAC;AAEtE,eAAO,MAAM,cAAc;cAbf,WAAW,CAAC,SAAS,CAAC,GAAG,eAAe,GAAG,kBAAkB,GAAG,cAAc,GAAG,eAAe;;;;;;;;;6GAsQ3G,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../src/button/internal.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAwB3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAUlF,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAM3C,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,GAAG;IAC/D,OAAO,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,eAAe,GAAG,kBAAkB,GAAG,cAAc,GAAG,eAAe,CAAC;IAC3G,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EACf,CAAC,KAAK,CAAC,cAAc,CAAC,iBAAiB,CAAC,GAAG,KAAK,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,GACnF,MAAM,CAAC,QAAQ,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kCAAkC,CAAC,EAAE,OAAO,CAAC;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC,GAAG,0BAA0B,CAAC,iBAAiB,GAAG,iBAAiB,CAAC,CAAC;AAEtE,eAAO,MAAM,cAAc;cAbf,WAAW,CAAC,SAAS,CAAC,GAAG,eAAe,GAAG,kBAAkB,GAAG,cAAc,GAAG,eAAe;;;;;;;;;6GA6R3G,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -3,7 +3,10 @@ import { __rest } from "tslib";
3
3
  // SPDX-License-Identifier: Apache-2.0
4
4
  import React, { useEffect, useRef, useState } from 'react';
5
5
  import clsx from 'clsx';
6
+ import { warnOnce } from '@cloudscape-design/component-toolkit/internal';
6
7
  import { getAnalyticsLabelAttribute, getAnalyticsMetadataAttribute, } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';
8
+ import { useInternalI18n } from '../i18n/context';
9
+ import Icon from '../icon/internal';
7
10
  import { FunnelMetrics } from '../internal/analytics';
8
11
  import { useFunnel, useFunnelStep, useFunnelSubStep } from '../internal/analytics/hooks/use-funnel';
9
12
  import { DATA_ATTR_FUNNEL_VALUE, getFunnelValueSelector, getSubStepAllSelector, getTextFromSelector, } from '../internal/analytics/selectors';
@@ -24,17 +27,22 @@ import analyticsSelectors from './analytics-metadata/styles.css.js';
24
27
  import styles from './styles.css.js';
25
28
  import testUtilStyles from './test-classes/styles.css.js';
26
29
  export const InternalButton = React.forwardRef((_a, ref) => {
27
- var { children, iconName, __iconClass, onClick, onFollow, iconAlign = 'left', iconUrl, iconSvg, iconAlt, variant = 'normal', loading = false, loadingText, disabled = false, disabledReason, wrapText = true, href, target, rel, download, formAction = 'submit', ariaLabel, ariaDescribedby, ariaExpanded, ariaControls, fullWidth, badge, __nativeAttributes, __internalRootRef = null, __focusable = false, __injectAnalyticsComponentMetadata = false, __title, __emitPerformanceMarks = true, analyticsAction = 'click' } = _a, props = __rest(_a, ["children", "iconName", "__iconClass", "onClick", "onFollow", "iconAlign", "iconUrl", "iconSvg", "iconAlt", "variant", "loading", "loadingText", "disabled", "disabledReason", "wrapText", "href", "target", "rel", "download", "formAction", "ariaLabel", "ariaDescribedby", "ariaExpanded", "ariaControls", "fullWidth", "badge", "__nativeAttributes", "__internalRootRef", "__focusable", "__injectAnalyticsComponentMetadata", "__title", "__emitPerformanceMarks", "analyticsAction"]);
30
+ var { children, iconName, __iconClass, onClick, onFollow, iconAlign = 'left', iconUrl, iconSvg, iconAlt, variant = 'normal', loading = false, loadingText, disabled = false, disabledReason, wrapText = true, href, external, target: targetOverride, rel, download, formAction = 'submit', ariaLabel, ariaDescribedby, ariaExpanded, ariaControls, fullWidth, badge, i18nStrings, __nativeAttributes, __internalRootRef = null, __focusable = false, __injectAnalyticsComponentMetadata = false, __title, __emitPerformanceMarks = true, analyticsAction = 'click' } = _a, props = __rest(_a, ["children", "iconName", "__iconClass", "onClick", "onFollow", "iconAlign", "iconUrl", "iconSvg", "iconAlt", "variant", "loading", "loadingText", "disabled", "disabledReason", "wrapText", "href", "external", "target", "rel", "download", "formAction", "ariaLabel", "ariaDescribedby", "ariaExpanded", "ariaControls", "fullWidth", "badge", "i18nStrings", "__nativeAttributes", "__internalRootRef", "__focusable", "__injectAnalyticsComponentMetadata", "__title", "__emitPerformanceMarks", "analyticsAction"]);
28
31
  const [showTooltip, setShowTooltip] = useState(false);
29
32
  checkSafeUrl('Button', href);
30
33
  const isAnchor = Boolean(href);
34
+ const target = targetOverride !== null && targetOverride !== void 0 ? targetOverride : (external ? '_blank' : undefined);
31
35
  const isNotInteractive = loading || disabled;
32
36
  const isDisabledWithReason = (variant === 'normal' || variant === 'primary') && !!disabledReason && disabled;
33
37
  const hasAriaDisabled = (loading && !disabled) || (disabled && __focusable) || isDisabledWithReason;
34
38
  const shouldHaveContent = children && ['icon', 'inline-icon', 'flashbar-icon', 'modal-dismiss'].indexOf(variant) === -1;
39
+ if ((iconName || iconUrl || iconSvg) && iconAlign === 'right' && external) {
40
+ warnOnce('Button', 'A right-aligned icon should not be combined with an external icon.');
41
+ }
35
42
  const buttonRef = useRef(null);
36
43
  useForwardFocus(ref, buttonRef);
37
44
  const buttonContext = useButtonContext();
45
+ const i18n = useInternalI18n('button');
38
46
  const uniqueId = useUniqueId('button');
39
47
  const { funnelInteractionId } = useFunnel();
40
48
  const { stepNumber, stepNameSelector } = useFunnelStep();
@@ -119,7 +127,12 @@ export const InternalButton = React.forwardRef((_a, ref) => {
119
127
  };
120
128
  const buttonContent = (React.createElement(React.Fragment, null,
121
129
  React.createElement(LeftIcon, Object.assign({}, iconProps)),
122
- shouldHaveContent && React.createElement("span", { className: clsx(styles.content, analyticsSelectors.label) }, children),
130
+ shouldHaveContent && (React.createElement(React.Fragment, null,
131
+ React.createElement("span", { className: clsx(styles.content, analyticsSelectors.label) }, children),
132
+ external && (React.createElement(React.Fragment, null,
133
+ "\u00A0",
134
+ React.createElement("span", { role: "img", "aria-label": i18n('i18nStrings.externalIconAriaLabel', i18nStrings === null || i18nStrings === void 0 ? void 0 : i18nStrings.externalIconAriaLabel) },
135
+ React.createElement(Icon, { name: "external", className: testUtilStyles['external-icon'] })))))),
123
136
  React.createElement(RightIcon, Object.assign({}, iconProps))));
124
137
  const { loadingButtonCount } = useFunnel();
125
138
  useEffect(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/button/internal.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useEffect, useRef, useState } from 'react';\nimport clsx from 'clsx';\n\nimport {\n getAnalyticsLabelAttribute,\n getAnalyticsMetadataAttribute,\n} from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport { FunnelMetrics } from '../internal/analytics';\nimport { useFunnel, useFunnelStep, useFunnelSubStep } from '../internal/analytics/hooks/use-funnel';\nimport {\n DATA_ATTR_FUNNEL_VALUE,\n getFunnelValueSelector,\n getSubStepAllSelector,\n getTextFromSelector,\n} from '../internal/analytics/selectors';\nimport Tooltip from '../internal/components/tooltip/index.js';\nimport { useButtonContext } from '../internal/context/button-context';\nimport { useSingleTabStopNavigation } from '../internal/context/single-tab-stop-navigation-context';\nimport { fireCancelableEvent, isPlainLeftClick } from '../internal/events';\nimport useForwardFocus from '../internal/hooks/forward-focus';\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component';\nimport useHiddenDescription from '../internal/hooks/use-hidden-description';\nimport { useMergeRefs } from '../internal/hooks/use-merge-refs';\nimport { useModalContextLoadingButtonComponent } from '../internal/hooks/use-modal-component-analytics';\nimport { usePerformanceMarks } from '../internal/hooks/use-performance-marks';\nimport { useUniqueId } from '../internal/hooks/use-unique-id';\nimport { checkSafeUrl } from '../internal/utils/check-safe-url';\nimport InternalLiveRegion from '../live-region/internal';\nimport { GeneratedAnalyticsMetadataButtonFragment } from './analytics-metadata/interfaces';\nimport { ButtonIconProps, LeftIcon, RightIcon } from './icon-helper';\nimport { ButtonProps } from './interfaces';\n\nimport analyticsSelectors from './analytics-metadata/styles.css.js';\nimport styles from './styles.css.js';\nimport testUtilStyles from './test-classes/styles.css.js';\n\nexport type InternalButtonProps = Omit<ButtonProps, 'variant'> & {\n variant?: ButtonProps['variant'] | 'flashbar-icon' | 'breadcrumb-group' | 'menu-trigger' | 'modal-dismiss';\n badge?: boolean;\n analyticsAction?: string;\n __nativeAttributes?:\n | (React.HTMLAttributes<HTMLAnchorElement> & React.HTMLAttributes<HTMLButtonElement>)\n | Record<`data-${string}`, string>;\n __iconClass?: string;\n __focusable?: boolean;\n __injectAnalyticsComponentMetadata?: boolean;\n __title?: string;\n __emitPerformanceMarks?: boolean;\n} & InternalBaseComponentProps<HTMLAnchorElement | HTMLButtonElement>;\n\nexport const InternalButton = React.forwardRef(\n (\n {\n children,\n iconName,\n __iconClass,\n onClick,\n onFollow,\n iconAlign = 'left',\n iconUrl,\n iconSvg,\n iconAlt,\n variant = 'normal',\n loading = false,\n loadingText,\n disabled = false,\n disabledReason,\n wrapText = true,\n href,\n target,\n rel,\n download,\n formAction = 'submit',\n ariaLabel,\n ariaDescribedby,\n ariaExpanded,\n ariaControls,\n fullWidth,\n badge,\n __nativeAttributes,\n __internalRootRef = null,\n __focusable = false,\n __injectAnalyticsComponentMetadata = false,\n __title,\n __emitPerformanceMarks = true,\n analyticsAction = 'click',\n ...props\n }: InternalButtonProps,\n ref: React.Ref<ButtonProps.Ref>\n ) => {\n const [showTooltip, setShowTooltip] = useState(false);\n\n checkSafeUrl('Button', href);\n const isAnchor = Boolean(href);\n const isNotInteractive = loading || disabled;\n const isDisabledWithReason = (variant === 'normal' || variant === 'primary') && !!disabledReason && disabled;\n const hasAriaDisabled = (loading && !disabled) || (disabled && __focusable) || isDisabledWithReason;\n const shouldHaveContent =\n children && ['icon', 'inline-icon', 'flashbar-icon', 'modal-dismiss'].indexOf(variant) === -1;\n\n const buttonRef = useRef<HTMLElement>(null);\n useForwardFocus(ref, buttonRef);\n\n const buttonContext = useButtonContext();\n\n const uniqueId = useUniqueId('button');\n const { funnelInteractionId } = useFunnel();\n const { stepNumber, stepNameSelector } = useFunnelStep();\n const { subStepSelector, subStepNameSelector } = useFunnelSubStep();\n\n const performanceMarkAttributes = usePerformanceMarks(\n 'primaryButton',\n variant === 'primary' && __emitPerformanceMarks,\n buttonRef,\n () => ({\n loading,\n disabled,\n text: buttonRef.current?.innerText,\n }),\n [loading, disabled]\n );\n useModalContextLoadingButtonComponent(variant === 'primary', loading);\n\n const { targetProps, descriptionEl } = useHiddenDescription(disabledReason);\n\n const handleClick = (event: React.MouseEvent) => {\n if (isNotInteractive) {\n return event.preventDefault();\n }\n\n if (isAnchor && isPlainLeftClick(event)) {\n fireCancelableEvent(onFollow, { href, target }, event);\n\n if ((iconName === 'external' || target === '_blank') && funnelInteractionId) {\n const stepName = getTextFromSelector(stepNameSelector);\n const subStepName = getTextFromSelector(subStepNameSelector);\n\n FunnelMetrics.externalLinkInteracted({\n funnelInteractionId,\n stepNumber,\n stepName,\n stepNameSelector,\n subStepSelector,\n subStepName,\n subStepNameSelector,\n elementSelector: getFunnelValueSelector(uniqueId),\n subStepAllSelector: getSubStepAllSelector(),\n });\n }\n }\n\n const { altKey, button, ctrlKey, metaKey, shiftKey } = event;\n fireCancelableEvent(onClick, { altKey, button, ctrlKey, metaKey, shiftKey }, event);\n buttonContext.onClick({ variant });\n };\n\n const buttonClass = clsx(props.className, styles.button, styles[`variant-${variant}`], {\n [styles.disabled]: isNotInteractive,\n [styles['disabled-with-reason']]: isDisabledWithReason,\n [styles['button-no-wrap']]: !wrapText,\n [styles['button-no-text']]: !shouldHaveContent,\n [styles['full-width']]: shouldHaveContent && fullWidth,\n [styles.link]: isAnchor,\n });\n\n const explicitTabIndex =\n __nativeAttributes && 'tabIndex' in __nativeAttributes ? __nativeAttributes.tabIndex : undefined;\n const { tabIndex } = useSingleTabStopNavigation(buttonRef, {\n tabIndex: isAnchor && isNotInteractive && !isDisabledWithReason ? -1 : explicitTabIndex,\n });\n\n const analyticsMetadata: GeneratedAnalyticsMetadataButtonFragment = disabled\n ? {}\n : {\n action: analyticsAction,\n detail: { label: { root: 'self' } },\n };\n if (__injectAnalyticsComponentMetadata) {\n analyticsMetadata.component = {\n name: 'awsui.Button',\n label: { root: 'self' },\n properties: { variant, disabled: `${disabled}` },\n };\n }\n\n const buttonProps = {\n ...props,\n ...__nativeAttributes,\n ...performanceMarkAttributes,\n tabIndex,\n // https://github.com/microsoft/TypeScript/issues/36659\n ref: useMergeRefs(buttonRef, __internalRootRef),\n 'aria-label': ariaLabel,\n 'aria-describedby': ariaDescribedby,\n 'aria-expanded': ariaExpanded,\n 'aria-controls': ariaControls,\n // add ariaLabel as `title` as visible hint text\n title: __title ?? ariaLabel,\n className: buttonClass,\n onClick: handleClick,\n [DATA_ATTR_FUNNEL_VALUE]: uniqueId,\n ...getAnalyticsMetadataAttribute(analyticsMetadata),\n ...getAnalyticsLabelAttribute(children ? `.${analyticsSelectors.label}` : ''),\n } as const;\n\n const iconProps: ButtonIconProps = {\n loading,\n iconName,\n iconAlign,\n iconUrl,\n iconSvg,\n iconAlt,\n variant,\n badge,\n iconClass: __iconClass,\n iconSize: variant === 'modal-dismiss' ? 'medium' : 'normal',\n };\n const buttonContent = (\n <>\n <LeftIcon {...iconProps} />\n {shouldHaveContent && <span className={clsx(styles.content, analyticsSelectors.label)}>{children}</span>}\n <RightIcon {...iconProps} />\n </>\n );\n\n const { loadingButtonCount } = useFunnel();\n useEffect(() => {\n if (loading) {\n loadingButtonCount.current++;\n return () => {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n loadingButtonCount.current--;\n };\n }\n }, [loading, loadingButtonCount]);\n\n const disabledReasonProps = {\n onFocus: isDisabledWithReason ? () => setShowTooltip(true) : undefined,\n onBlur: isDisabledWithReason ? () => setShowTooltip(false) : undefined,\n onMouseEnter: isDisabledWithReason ? () => setShowTooltip(true) : undefined,\n onMouseLeave: isDisabledWithReason ? () => setShowTooltip(false) : undefined,\n ...(isDisabledWithReason ? targetProps : {}),\n };\n const disabledReasonContent = (\n <>\n {descriptionEl}\n {showTooltip && (\n <Tooltip className={testUtilStyles['disabled-reason-tooltip']} trackRef={buttonRef} value={disabledReason!} />\n )}\n </>\n );\n\n if (isAnchor) {\n return (\n // https://github.com/yannickcr/eslint-plugin-react/issues/2962\n // eslint-disable-next-line react/jsx-no-target-blank\n <>\n <a\n {...buttonProps}\n href={href}\n target={target}\n // security recommendation: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#target\n rel={rel ?? (target === '_blank' ? 'noopener noreferrer' : undefined)}\n aria-disabled={isNotInteractive ? true : undefined}\n download={download}\n {...disabledReasonProps}\n >\n {buttonContent}\n {isDisabledWithReason && disabledReasonContent}\n </a>\n {loading && loadingText && (\n <InternalLiveRegion tagName=\"span\" hidden={true}>\n {loadingText}\n </InternalLiveRegion>\n )}\n </>\n );\n }\n\n return (\n <>\n <button\n {...buttonProps}\n type={formAction === 'none' ? 'button' : 'submit'}\n disabled={disabled && !__focusable && !isDisabledWithReason}\n aria-disabled={hasAriaDisabled ? true : undefined}\n {...disabledReasonProps}\n >\n {buttonContent}\n {isDisabledWithReason && disabledReasonContent}\n </button>\n {loading && loadingText && (\n <InternalLiveRegion tagName=\"span\" hidden={true}>\n {loadingText}\n </InternalLiveRegion>\n )}\n </>\n );\n }\n);\n\nexport default InternalButton;\n"]}
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/button/internal.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useEffect, useRef, useState } from 'react';\nimport clsx from 'clsx';\n\nimport { warnOnce } from '@cloudscape-design/component-toolkit/internal';\nimport {\n getAnalyticsLabelAttribute,\n getAnalyticsMetadataAttribute,\n} from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport { useInternalI18n } from '../i18n/context';\nimport Icon from '../icon/internal';\nimport { FunnelMetrics } from '../internal/analytics';\nimport { useFunnel, useFunnelStep, useFunnelSubStep } from '../internal/analytics/hooks/use-funnel';\nimport {\n DATA_ATTR_FUNNEL_VALUE,\n getFunnelValueSelector,\n getSubStepAllSelector,\n getTextFromSelector,\n} from '../internal/analytics/selectors';\nimport Tooltip from '../internal/components/tooltip/index.js';\nimport { useButtonContext } from '../internal/context/button-context';\nimport { useSingleTabStopNavigation } from '../internal/context/single-tab-stop-navigation-context';\nimport { fireCancelableEvent, isPlainLeftClick } from '../internal/events';\nimport useForwardFocus from '../internal/hooks/forward-focus';\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component';\nimport useHiddenDescription from '../internal/hooks/use-hidden-description';\nimport { useMergeRefs } from '../internal/hooks/use-merge-refs';\nimport { useModalContextLoadingButtonComponent } from '../internal/hooks/use-modal-component-analytics';\nimport { usePerformanceMarks } from '../internal/hooks/use-performance-marks';\nimport { useUniqueId } from '../internal/hooks/use-unique-id';\nimport { checkSafeUrl } from '../internal/utils/check-safe-url';\nimport InternalLiveRegion from '../live-region/internal';\nimport { GeneratedAnalyticsMetadataButtonFragment } from './analytics-metadata/interfaces';\nimport { ButtonIconProps, LeftIcon, RightIcon } from './icon-helper';\nimport { ButtonProps } from './interfaces';\n\nimport analyticsSelectors from './analytics-metadata/styles.css.js';\nimport styles from './styles.css.js';\nimport testUtilStyles from './test-classes/styles.css.js';\n\nexport type InternalButtonProps = Omit<ButtonProps, 'variant'> & {\n variant?: ButtonProps['variant'] | 'flashbar-icon' | 'breadcrumb-group' | 'menu-trigger' | 'modal-dismiss';\n badge?: boolean;\n analyticsAction?: string;\n __nativeAttributes?:\n | (React.HTMLAttributes<HTMLAnchorElement> & React.HTMLAttributes<HTMLButtonElement>)\n | Record<`data-${string}`, string>;\n __iconClass?: string;\n __focusable?: boolean;\n __injectAnalyticsComponentMetadata?: boolean;\n __title?: string;\n __emitPerformanceMarks?: boolean;\n} & InternalBaseComponentProps<HTMLAnchorElement | HTMLButtonElement>;\n\nexport const InternalButton = React.forwardRef(\n (\n {\n children,\n iconName,\n __iconClass,\n onClick,\n onFollow,\n iconAlign = 'left',\n iconUrl,\n iconSvg,\n iconAlt,\n variant = 'normal',\n loading = false,\n loadingText,\n disabled = false,\n disabledReason,\n wrapText = true,\n href,\n external,\n target: targetOverride,\n rel,\n download,\n formAction = 'submit',\n ariaLabel,\n ariaDescribedby,\n ariaExpanded,\n ariaControls,\n fullWidth,\n badge,\n i18nStrings,\n __nativeAttributes,\n __internalRootRef = null,\n __focusable = false,\n __injectAnalyticsComponentMetadata = false,\n __title,\n __emitPerformanceMarks = true,\n analyticsAction = 'click',\n ...props\n }: InternalButtonProps,\n ref: React.Ref<ButtonProps.Ref>\n ) => {\n const [showTooltip, setShowTooltip] = useState(false);\n\n checkSafeUrl('Button', href);\n const isAnchor = Boolean(href);\n const target = targetOverride ?? (external ? '_blank' : undefined);\n const isNotInteractive = loading || disabled;\n const isDisabledWithReason = (variant === 'normal' || variant === 'primary') && !!disabledReason && disabled;\n const hasAriaDisabled = (loading && !disabled) || (disabled && __focusable) || isDisabledWithReason;\n const shouldHaveContent =\n children && ['icon', 'inline-icon', 'flashbar-icon', 'modal-dismiss'].indexOf(variant) === -1;\n\n if ((iconName || iconUrl || iconSvg) && iconAlign === 'right' && external) {\n warnOnce('Button', 'A right-aligned icon should not be combined with an external icon.');\n }\n\n const buttonRef = useRef<HTMLElement>(null);\n useForwardFocus(ref, buttonRef);\n\n const buttonContext = useButtonContext();\n const i18n = useInternalI18n('button');\n\n const uniqueId = useUniqueId('button');\n const { funnelInteractionId } = useFunnel();\n const { stepNumber, stepNameSelector } = useFunnelStep();\n const { subStepSelector, subStepNameSelector } = useFunnelSubStep();\n\n const performanceMarkAttributes = usePerformanceMarks(\n 'primaryButton',\n variant === 'primary' && __emitPerformanceMarks,\n buttonRef,\n () => ({\n loading,\n disabled,\n text: buttonRef.current?.innerText,\n }),\n [loading, disabled]\n );\n useModalContextLoadingButtonComponent(variant === 'primary', loading);\n\n const { targetProps, descriptionEl } = useHiddenDescription(disabledReason);\n\n const handleClick = (event: React.MouseEvent) => {\n if (isNotInteractive) {\n return event.preventDefault();\n }\n\n if (isAnchor && isPlainLeftClick(event)) {\n fireCancelableEvent(onFollow, { href, target }, event);\n\n if ((iconName === 'external' || target === '_blank') && funnelInteractionId) {\n const stepName = getTextFromSelector(stepNameSelector);\n const subStepName = getTextFromSelector(subStepNameSelector);\n\n FunnelMetrics.externalLinkInteracted({\n funnelInteractionId,\n stepNumber,\n stepName,\n stepNameSelector,\n subStepSelector,\n subStepName,\n subStepNameSelector,\n elementSelector: getFunnelValueSelector(uniqueId),\n subStepAllSelector: getSubStepAllSelector(),\n });\n }\n }\n\n const { altKey, button, ctrlKey, metaKey, shiftKey } = event;\n fireCancelableEvent(onClick, { altKey, button, ctrlKey, metaKey, shiftKey }, event);\n buttonContext.onClick({ variant });\n };\n\n const buttonClass = clsx(props.className, styles.button, styles[`variant-${variant}`], {\n [styles.disabled]: isNotInteractive,\n [styles['disabled-with-reason']]: isDisabledWithReason,\n [styles['button-no-wrap']]: !wrapText,\n [styles['button-no-text']]: !shouldHaveContent,\n [styles['full-width']]: shouldHaveContent && fullWidth,\n [styles.link]: isAnchor,\n });\n\n const explicitTabIndex =\n __nativeAttributes && 'tabIndex' in __nativeAttributes ? __nativeAttributes.tabIndex : undefined;\n const { tabIndex } = useSingleTabStopNavigation(buttonRef, {\n tabIndex: isAnchor && isNotInteractive && !isDisabledWithReason ? -1 : explicitTabIndex,\n });\n\n const analyticsMetadata: GeneratedAnalyticsMetadataButtonFragment = disabled\n ? {}\n : {\n action: analyticsAction,\n detail: { label: { root: 'self' } },\n };\n if (__injectAnalyticsComponentMetadata) {\n analyticsMetadata.component = {\n name: 'awsui.Button',\n label: { root: 'self' },\n properties: { variant, disabled: `${disabled}` },\n };\n }\n\n const buttonProps = {\n ...props,\n ...__nativeAttributes,\n ...performanceMarkAttributes,\n tabIndex,\n // https://github.com/microsoft/TypeScript/issues/36659\n ref: useMergeRefs(buttonRef, __internalRootRef),\n 'aria-label': ariaLabel,\n 'aria-describedby': ariaDescribedby,\n 'aria-expanded': ariaExpanded,\n 'aria-controls': ariaControls,\n // add ariaLabel as `title` as visible hint text\n title: __title ?? ariaLabel,\n className: buttonClass,\n onClick: handleClick,\n [DATA_ATTR_FUNNEL_VALUE]: uniqueId,\n ...getAnalyticsMetadataAttribute(analyticsMetadata),\n ...getAnalyticsLabelAttribute(children ? `.${analyticsSelectors.label}` : ''),\n } as const;\n\n const iconProps: ButtonIconProps = {\n loading,\n iconName,\n iconAlign,\n iconUrl,\n iconSvg,\n iconAlt,\n variant,\n badge,\n iconClass: __iconClass,\n iconSize: variant === 'modal-dismiss' ? 'medium' : 'normal',\n };\n const buttonContent = (\n <>\n <LeftIcon {...iconProps} />\n {shouldHaveContent && (\n <>\n <span className={clsx(styles.content, analyticsSelectors.label)}>{children}</span>\n {external && (\n <>\n &nbsp;\n <span\n role=\"img\"\n aria-label={i18n('i18nStrings.externalIconAriaLabel', i18nStrings?.externalIconAriaLabel)}\n >\n <Icon name=\"external\" className={testUtilStyles['external-icon']} />\n </span>\n </>\n )}\n </>\n )}\n <RightIcon {...iconProps} />\n </>\n );\n\n const { loadingButtonCount } = useFunnel();\n useEffect(() => {\n if (loading) {\n loadingButtonCount.current++;\n return () => {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n loadingButtonCount.current--;\n };\n }\n }, [loading, loadingButtonCount]);\n\n const disabledReasonProps = {\n onFocus: isDisabledWithReason ? () => setShowTooltip(true) : undefined,\n onBlur: isDisabledWithReason ? () => setShowTooltip(false) : undefined,\n onMouseEnter: isDisabledWithReason ? () => setShowTooltip(true) : undefined,\n onMouseLeave: isDisabledWithReason ? () => setShowTooltip(false) : undefined,\n ...(isDisabledWithReason ? targetProps : {}),\n };\n const disabledReasonContent = (\n <>\n {descriptionEl}\n {showTooltip && (\n <Tooltip className={testUtilStyles['disabled-reason-tooltip']} trackRef={buttonRef} value={disabledReason!} />\n )}\n </>\n );\n\n if (isAnchor) {\n return (\n // https://github.com/yannickcr/eslint-plugin-react/issues/2962\n // eslint-disable-next-line react/jsx-no-target-blank\n <>\n <a\n {...buttonProps}\n href={href}\n target={target}\n // security recommendation: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#target\n rel={rel ?? (target === '_blank' ? 'noopener noreferrer' : undefined)}\n aria-disabled={isNotInteractive ? true : undefined}\n download={download}\n {...disabledReasonProps}\n >\n {buttonContent}\n {isDisabledWithReason && disabledReasonContent}\n </a>\n {loading && loadingText && (\n <InternalLiveRegion tagName=\"span\" hidden={true}>\n {loadingText}\n </InternalLiveRegion>\n )}\n </>\n );\n }\n\n return (\n <>\n <button\n {...buttonProps}\n type={formAction === 'none' ? 'button' : 'submit'}\n disabled={disabled && !__focusable && !isDisabledWithReason}\n aria-disabled={hasAriaDisabled ? true : undefined}\n {...disabledReasonProps}\n >\n {buttonContent}\n {isDisabledWithReason && disabledReasonContent}\n </button>\n {loading && loadingText && (\n <InternalLiveRegion tagName=\"span\" hidden={true}>\n {loadingText}\n </InternalLiveRegion>\n )}\n </>\n );\n }\n);\n\nexport default InternalButton;\n"]}
@@ -1,26 +1,26 @@
1
1
 
2
2
  import './styles.scoped.css';
3
3
  export default {
4
- "content": "awsui_content_vjswe_1eep2_149",
5
- "button": "awsui_button_vjswe_1eep2_153",
6
- "variant-normal": "awsui_variant-normal_vjswe_1eep2_201",
7
- "variant-icon": "awsui_variant-icon_vjswe_1eep2_244",
8
- "variant-modal-dismiss": "awsui_variant-modal-dismiss_vjswe_1eep2_244",
9
- "variant-flashbar-icon": "awsui_variant-flashbar-icon_vjswe_1eep2_244",
10
- "variant-inline-icon": "awsui_variant-inline-icon_vjswe_1eep2_265",
11
- "disabled": "awsui_disabled_vjswe_1eep2_286",
12
- "variant-primary": "awsui_variant-primary_vjswe_1eep2_293",
13
- "variant-link": "awsui_variant-link_vjswe_1eep2_385",
14
- "variant-inline-link": "awsui_variant-inline-link_vjswe_1eep2_661",
15
- "variant-breadcrumb-group": "awsui_variant-breadcrumb-group_vjswe_1eep2_941",
16
- "variant-menu-trigger": "awsui_variant-menu-trigger_vjswe_1eep2_1038",
17
- "button-no-text": "awsui_button-no-text_vjswe_1eep2_1130",
18
- "button-no-wrap": "awsui_button-no-wrap_vjswe_1eep2_1134",
19
- "full-width": "awsui_full-width_vjswe_1eep2_1137",
20
- "icon-left": "awsui_icon-left_vjswe_1eep2_1156",
21
- "icon-right": "awsui_icon-right_vjswe_1eep2_1161",
22
- "icon": "awsui_icon_vjswe_1eep2_1156",
23
- "link": "awsui_link_vjswe_1eep2_1180",
24
- "disabled-with-reason": "awsui_disabled-with-reason_vjswe_1eep2_1180"
4
+ "content": "awsui_content_vjswe_q5yvi_153",
5
+ "button": "awsui_button_vjswe_q5yvi_157",
6
+ "variant-normal": "awsui_variant-normal_vjswe_q5yvi_205",
7
+ "variant-icon": "awsui_variant-icon_vjswe_q5yvi_248",
8
+ "variant-modal-dismiss": "awsui_variant-modal-dismiss_vjswe_q5yvi_248",
9
+ "variant-flashbar-icon": "awsui_variant-flashbar-icon_vjswe_q5yvi_248",
10
+ "variant-inline-icon": "awsui_variant-inline-icon_vjswe_q5yvi_269",
11
+ "disabled": "awsui_disabled_vjswe_q5yvi_290",
12
+ "variant-primary": "awsui_variant-primary_vjswe_q5yvi_297",
13
+ "variant-link": "awsui_variant-link_vjswe_q5yvi_389",
14
+ "variant-inline-link": "awsui_variant-inline-link_vjswe_q5yvi_665",
15
+ "variant-breadcrumb-group": "awsui_variant-breadcrumb-group_vjswe_q5yvi_945",
16
+ "variant-menu-trigger": "awsui_variant-menu-trigger_vjswe_q5yvi_1042",
17
+ "button-no-text": "awsui_button-no-text_vjswe_q5yvi_1134",
18
+ "button-no-wrap": "awsui_button-no-wrap_vjswe_q5yvi_1138",
19
+ "full-width": "awsui_full-width_vjswe_q5yvi_1141",
20
+ "icon-left": "awsui_icon-left_vjswe_q5yvi_1160",
21
+ "icon-right": "awsui_icon-right_vjswe_q5yvi_1165",
22
+ "icon": "awsui_icon_vjswe_q5yvi_1160",
23
+ "link": "awsui_link_vjswe_q5yvi_1184",
24
+ "disabled-with-reason": "awsui_disabled-with-reason_vjswe_q5yvi_1184"
25
25
  };
26
26