@cloudscape-design/components 3.0.693 → 3.0.695

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 (344) hide show
  1. package/app-layout/visual-refresh-toolbar/compute-layout.d.ts +2 -2
  2. package/app-layout/visual-refresh-toolbar/compute-layout.d.ts.map +1 -1
  3. package/app-layout/visual-refresh-toolbar/compute-layout.js +2 -2
  4. package/app-layout/visual-refresh-toolbar/compute-layout.js.map +1 -1
  5. package/app-layout/visual-refresh-toolbar/drawer/styles.css.js +6 -6
  6. package/app-layout/visual-refresh-toolbar/drawer/styles.scoped.css +7 -7
  7. package/app-layout/visual-refresh-toolbar/drawer/styles.selectors.js +6 -6
  8. package/app-layout/visual-refresh-toolbar/index.d.ts.map +1 -1
  9. package/app-layout/visual-refresh-toolbar/index.js +35 -16
  10. package/app-layout/visual-refresh-toolbar/index.js.map +1 -1
  11. package/app-layout/visual-refresh-toolbar/multi-layout.d.ts +27 -0
  12. package/app-layout/visual-refresh-toolbar/multi-layout.d.ts.map +1 -0
  13. package/app-layout/visual-refresh-toolbar/multi-layout.js +55 -0
  14. package/app-layout/visual-refresh-toolbar/multi-layout.js.map +1 -0
  15. package/app-layout/visual-refresh-toolbar/navigation/index.d.ts.map +1 -1
  16. package/app-layout/visual-refresh-toolbar/navigation/index.js +1 -0
  17. package/app-layout/visual-refresh-toolbar/navigation/index.js.map +1 -1
  18. package/app-layout/visual-refresh-toolbar/navigation/styles.css.js +6 -6
  19. package/app-layout/visual-refresh-toolbar/navigation/styles.scoped.css +15 -11
  20. package/app-layout/visual-refresh-toolbar/navigation/styles.selectors.js +6 -6
  21. package/app-layout/visual-refresh-toolbar/skeleton/styles.css.js +16 -16
  22. package/app-layout/visual-refresh-toolbar/skeleton/styles.scoped.css +28 -28
  23. package/app-layout/visual-refresh-toolbar/skeleton/styles.selectors.js +16 -16
  24. package/app-layout/visual-refresh-toolbar/toolbar/drawer-triggers.d.ts +12 -10
  25. package/app-layout/visual-refresh-toolbar/toolbar/drawer-triggers.d.ts.map +1 -1
  26. package/app-layout/visual-refresh-toolbar/toolbar/drawer-triggers.js +3 -3
  27. package/app-layout/visual-refresh-toolbar/toolbar/drawer-triggers.js.map +1 -1
  28. package/app-layout/visual-refresh-toolbar/toolbar/index.d.ts +23 -3
  29. package/app-layout/visual-refresh-toolbar/toolbar/index.d.ts.map +1 -1
  30. package/app-layout/visual-refresh-toolbar/toolbar/index.js +8 -8
  31. package/app-layout/visual-refresh-toolbar/toolbar/index.js.map +1 -1
  32. package/app-layout/visual-refresh-toolbar/toolbar/trigger-button/styles.css.js +6 -6
  33. package/app-layout/visual-refresh-toolbar/toolbar/trigger-button/styles.scoped.css +30 -44
  34. package/app-layout/visual-refresh-toolbar/toolbar/trigger-button/styles.selectors.js +6 -6
  35. package/button-dropdown/analytics-metadata/interfaces.d.ts +26 -0
  36. package/button-dropdown/analytics-metadata/interfaces.d.ts.map +1 -0
  37. package/button-dropdown/analytics-metadata/interfaces.js +4 -0
  38. package/button-dropdown/analytics-metadata/interfaces.js.map +1 -0
  39. package/button-dropdown/analytics-metadata/styles.css.js +8 -0
  40. package/button-dropdown/analytics-metadata/styles.scoped.css +9 -0
  41. package/button-dropdown/analytics-metadata/styles.selectors.js +9 -0
  42. package/button-dropdown/category-elements/category-element.d.ts +1 -1
  43. package/button-dropdown/category-elements/category-element.d.ts.map +1 -1
  44. package/button-dropdown/category-elements/category-element.js +2 -2
  45. package/button-dropdown/category-elements/category-element.js.map +1 -1
  46. package/button-dropdown/category-elements/expandable-category-element.d.ts +1 -1
  47. package/button-dropdown/category-elements/expandable-category-element.d.ts.map +1 -1
  48. package/button-dropdown/category-elements/expandable-category-element.js +14 -3
  49. package/button-dropdown/category-elements/expandable-category-element.js.map +1 -1
  50. package/button-dropdown/category-elements/mobile-expandable-category-element.d.ts +1 -1
  51. package/button-dropdown/category-elements/mobile-expandable-category-element.d.ts.map +1 -1
  52. package/button-dropdown/category-elements/mobile-expandable-category-element.js +14 -3
  53. package/button-dropdown/category-elements/mobile-expandable-category-element.js.map +1 -1
  54. package/button-dropdown/index.d.ts.map +1 -1
  55. package/button-dropdown/index.js +10 -1
  56. package/button-dropdown/index.js.map +1 -1
  57. package/button-dropdown/interfaces.d.ts +3 -0
  58. package/button-dropdown/interfaces.d.ts.map +1 -1
  59. package/button-dropdown/interfaces.js.map +1 -1
  60. package/button-dropdown/internal.d.ts.map +1 -1
  61. package/button-dropdown/internal.js +22 -6
  62. package/button-dropdown/internal.js.map +1 -1
  63. package/button-dropdown/item-element/index.d.ts +1 -1
  64. package/button-dropdown/item-element/index.d.ts.map +1 -1
  65. package/button-dropdown/item-element/index.js +15 -4
  66. package/button-dropdown/item-element/index.js.map +1 -1
  67. package/button-dropdown/items-list.d.ts +1 -1
  68. package/button-dropdown/items-list.d.ts.map +1 -1
  69. package/button-dropdown/items-list.js +4 -4
  70. package/button-dropdown/items-list.js.map +1 -1
  71. package/button-dropdown/styles.css.js +18 -15
  72. package/button-dropdown/styles.scoped.css +31 -22
  73. package/button-dropdown/styles.selectors.js +18 -15
  74. package/checkbox/analytics-metadata/interfaces.d.ts +13 -0
  75. package/checkbox/analytics-metadata/interfaces.d.ts.map +1 -0
  76. package/checkbox/analytics-metadata/interfaces.js +4 -0
  77. package/checkbox/analytics-metadata/interfaces.js.map +1 -0
  78. package/checkbox/index.js +1 -1
  79. package/checkbox/index.js.map +1 -1
  80. package/checkbox/internal.d.ts +1 -0
  81. package/checkbox/internal.d.ts.map +1 -1
  82. package/checkbox/internal.js +16 -2
  83. package/checkbox/internal.js.map +1 -1
  84. package/container/analytics-metadata/interfaces.d.ts +5 -0
  85. package/container/analytics-metadata/interfaces.d.ts.map +1 -0
  86. package/container/analytics-metadata/interfaces.js +4 -0
  87. package/container/analytics-metadata/interfaces.js.map +1 -0
  88. package/container/analytics-metadata/styles.css.js +6 -0
  89. package/container/analytics-metadata/styles.scoped.css +7 -0
  90. package/container/analytics-metadata/styles.selectors.js +7 -0
  91. package/container/index.d.ts.map +1 -1
  92. package/container/index.js +6 -1
  93. package/container/index.js.map +1 -1
  94. package/container/internal.d.ts.map +1 -1
  95. package/container/internal.js +4 -2
  96. package/container/internal.js.map +1 -1
  97. package/drawer/implementation.d.ts.map +1 -1
  98. package/drawer/implementation.js +3 -1
  99. package/drawer/implementation.js.map +1 -1
  100. package/drawer/styles.css.js +4 -3
  101. package/drawer/styles.scoped.css +16 -8
  102. package/drawer/styles.selectors.js +4 -3
  103. package/form/analytics-metadata/interfaces.d.ts +13 -0
  104. package/form/analytics-metadata/interfaces.d.ts.map +1 -0
  105. package/form/analytics-metadata/interfaces.js +4 -0
  106. package/form/analytics-metadata/interfaces.js.map +1 -0
  107. package/form/analytics-metadata/styles.css.js +6 -0
  108. package/form/analytics-metadata/styles.scoped.css +7 -0
  109. package/form/analytics-metadata/styles.selectors.js +7 -0
  110. package/form/index.d.ts.map +1 -1
  111. package/form/index.js +1 -1
  112. package/form/index.js.map +1 -1
  113. package/form/internal.d.ts +4 -2
  114. package/form/internal.d.ts.map +1 -1
  115. package/form/internal.js +13 -3
  116. package/form/internal.js.map +1 -1
  117. package/form-field/analytics-metadata/interfaces.d.ts +5 -0
  118. package/form-field/analytics-metadata/interfaces.d.ts.map +1 -0
  119. package/form-field/analytics-metadata/interfaces.js +4 -0
  120. package/form-field/analytics-metadata/interfaces.js.map +1 -0
  121. package/form-field/analytics-metadata/styles.css.js +6 -0
  122. package/form-field/analytics-metadata/styles.scoped.css +7 -0
  123. package/form-field/analytics-metadata/styles.selectors.js +7 -0
  124. package/form-field/index.d.ts.map +1 -1
  125. package/form-field/index.js +8 -1
  126. package/form-field/index.js.map +1 -1
  127. package/form-field/internal.d.ts.map +1 -1
  128. package/form-field/internal.js +4 -2
  129. package/form-field/internal.js.map +1 -1
  130. package/header/analytics-metadata/styles.css.js +6 -0
  131. package/header/analytics-metadata/styles.scoped.css +7 -0
  132. package/header/analytics-metadata/styles.selectors.js +7 -0
  133. package/header/internal.d.ts.map +1 -1
  134. package/header/internal.js +4 -2
  135. package/header/internal.js.map +1 -1
  136. package/help-panel/implementation.d.ts.map +1 -1
  137. package/help-panel/implementation.js +4 -2
  138. package/help-panel/implementation.js.map +1 -1
  139. package/help-panel/styles.css.js +5 -4
  140. package/help-panel/styles.scoped.css +74 -65
  141. package/help-panel/styles.selectors.js +5 -4
  142. package/i18n/messages/all.all.js +1 -1
  143. package/i18n/messages/all.all.json +1 -1
  144. package/i18n/messages/all.ar.js +1 -1
  145. package/i18n/messages/all.ar.json +1 -1
  146. package/i18n/messages/all.de.js +1 -1
  147. package/i18n/messages/all.de.json +1 -1
  148. package/i18n/messages/all.en-GB.js +1 -1
  149. package/i18n/messages/all.en-GB.json +1 -1
  150. package/i18n/messages/all.en.js +1 -1
  151. package/i18n/messages/all.en.json +1 -1
  152. package/i18n/messages/all.es.js +1 -1
  153. package/i18n/messages/all.es.json +1 -1
  154. package/i18n/messages/all.fr.js +1 -1
  155. package/i18n/messages/all.fr.json +1 -1
  156. package/i18n/messages/all.id.js +1 -1
  157. package/i18n/messages/all.id.json +1 -1
  158. package/i18n/messages/all.it.js +1 -1
  159. package/i18n/messages/all.it.json +1 -1
  160. package/i18n/messages/all.ja.js +1 -1
  161. package/i18n/messages/all.ja.json +1 -1
  162. package/i18n/messages/all.ko.js +1 -1
  163. package/i18n/messages/all.ko.json +1 -1
  164. package/i18n/messages/all.pt-BR.js +1 -1
  165. package/i18n/messages/all.pt-BR.json +1 -1
  166. package/i18n/messages/all.tr.js +1 -1
  167. package/i18n/messages/all.tr.json +1 -1
  168. package/i18n/messages/all.zh-CN.js +1 -1
  169. package/i18n/messages/all.zh-CN.json +1 -1
  170. package/i18n/messages/all.zh-TW.js +1 -1
  171. package/i18n/messages/all.zh-TW.json +1 -1
  172. package/i18n/messages-types.d.ts +1 -0
  173. package/i18n/messages-types.d.ts.map +1 -1
  174. package/i18n/messages-types.js.map +1 -1
  175. package/internal/components/abstract-switch/analytics-metadata/styles.css.js +7 -0
  176. package/internal/components/abstract-switch/analytics-metadata/styles.scoped.css +8 -0
  177. package/internal/components/abstract-switch/analytics-metadata/styles.selectors.js +8 -0
  178. package/internal/components/abstract-switch/index.d.ts.map +1 -1
  179. package/internal/components/abstract-switch/index.js +13 -4
  180. package/internal/components/abstract-switch/index.js.map +1 -1
  181. package/internal/components/button-trigger/styles.css.js +11 -11
  182. package/internal/components/button-trigger/styles.scoped.css +52 -49
  183. package/internal/components/button-trigger/styles.selectors.js +11 -11
  184. package/internal/components/token-list/index.d.ts +1 -0
  185. package/internal/components/token-list/index.d.ts.map +1 -1
  186. package/internal/components/token-list/index.js.map +1 -1
  187. package/internal/components/tooltip/index.d.ts.map +1 -1
  188. package/internal/components/tooltip/index.js +1 -1
  189. package/internal/components/tooltip/index.js.map +1 -1
  190. package/internal/environment.js +1 -1
  191. package/internal/environment.json +1 -1
  192. package/internal/manifest.json +1 -1
  193. package/internal/plugins/api.d.ts +3 -0
  194. package/internal/plugins/api.d.ts.map +1 -1
  195. package/internal/plugins/api.js +3 -0
  196. package/internal/plugins/api.js.map +1 -1
  197. package/internal/plugins/controllers/app-layout-widget.d.ts +33 -0
  198. package/internal/plugins/controllers/app-layout-widget.d.ts.map +1 -0
  199. package/internal/plugins/controllers/app-layout-widget.js +77 -0
  200. package/internal/plugins/controllers/app-layout-widget.js.map +1 -0
  201. package/internal/plugins/helpers/use-global-breadcrumbs.d.ts +1 -1
  202. package/internal/plugins/helpers/use-global-breadcrumbs.d.ts.map +1 -1
  203. package/internal/plugins/helpers/use-global-breadcrumbs.js +5 -2
  204. package/internal/plugins/helpers/use-global-breadcrumbs.js.map +1 -1
  205. package/link/analytics-metadata/interfaces.d.ts +21 -0
  206. package/link/analytics-metadata/interfaces.d.ts.map +1 -0
  207. package/link/analytics-metadata/interfaces.js +4 -0
  208. package/link/analytics-metadata/interfaces.js.map +1 -0
  209. package/link/index.d.ts.map +1 -1
  210. package/link/index.js +17 -1
  211. package/link/index.js.map +1 -1
  212. package/package.json +1 -1
  213. package/pagination/analytics-metadata/interfaces.d.ts +17 -0
  214. package/pagination/analytics-metadata/interfaces.d.ts.map +1 -0
  215. package/pagination/analytics-metadata/interfaces.js +4 -0
  216. package/pagination/analytics-metadata/interfaces.js.map +1 -0
  217. package/pagination/index.d.ts.map +1 -1
  218. package/pagination/index.js +12 -1
  219. package/pagination/index.js.map +1 -1
  220. package/pagination/internal.d.ts.map +1 -1
  221. package/pagination/internal.js +35 -6
  222. package/pagination/internal.js.map +1 -1
  223. package/popover/internal.d.ts +2 -1
  224. package/popover/internal.d.ts.map +1 -1
  225. package/popover/internal.js +1 -1
  226. package/popover/internal.js.map +1 -1
  227. package/popover/styles.css.js +52 -50
  228. package/popover/styles.scoped.css +75 -67
  229. package/popover/styles.selectors.js +52 -50
  230. package/property-filter/filtering-token/index.d.ts +25 -8
  231. package/property-filter/filtering-token/index.d.ts.map +1 -1
  232. package/property-filter/filtering-token/index.js +51 -11
  233. package/property-filter/filtering-token/index.js.map +1 -1
  234. package/property-filter/filtering-token/styles.css.js +18 -7
  235. package/property-filter/filtering-token/styles.scoped.css +100 -17
  236. package/property-filter/filtering-token/styles.selectors.js +18 -7
  237. package/property-filter/styles.css.js +31 -32
  238. package/property-filter/styles.scoped.css +33 -34
  239. package/property-filter/styles.selectors.js +31 -32
  240. package/property-filter/test-classes/styles.css.js +14 -9
  241. package/property-filter/test-classes/styles.scoped.css +29 -9
  242. package/property-filter/test-classes/styles.selectors.js +14 -9
  243. package/property-filter/token-editor.d.ts +5 -5
  244. package/property-filter/token-editor.d.ts.map +1 -1
  245. package/property-filter/token-editor.js +19 -25
  246. package/property-filter/token-editor.js.map +1 -1
  247. package/property-filter/token.d.ts.map +1 -1
  248. package/property-filter/token.js +15 -5
  249. package/property-filter/token.js.map +1 -1
  250. package/radio-group/analytics-metadata/interfaces.d.ts +14 -0
  251. package/radio-group/analytics-metadata/interfaces.d.ts.map +1 -0
  252. package/radio-group/analytics-metadata/interfaces.js +4 -0
  253. package/radio-group/analytics-metadata/interfaces.js.map +1 -0
  254. package/radio-group/index.d.ts.map +1 -1
  255. package/radio-group/index.js +7 -1
  256. package/radio-group/index.js.map +1 -1
  257. package/radio-group/internal.d.ts.map +1 -1
  258. package/radio-group/internal.js +9 -1
  259. package/radio-group/internal.js.map +1 -1
  260. package/radio-group/radio-button.d.ts.map +1 -1
  261. package/radio-group/radio-button.js +6 -3
  262. package/radio-group/radio-button.js.map +1 -1
  263. package/select/interfaces.d.ts +15 -0
  264. package/select/interfaces.d.ts.map +1 -1
  265. package/select/interfaces.js.map +1 -1
  266. package/select/internal.d.ts.map +1 -1
  267. package/select/internal.js +3 -4
  268. package/select/internal.js.map +1 -1
  269. package/select/parts/styles.css.js +21 -17
  270. package/select/parts/styles.scoped.css +52 -18
  271. package/select/parts/styles.selectors.js +21 -17
  272. package/select/parts/trigger.d.ts +1 -0
  273. package/select/parts/trigger.d.ts.map +1 -1
  274. package/select/parts/trigger.js +5 -2
  275. package/select/parts/trigger.js.map +1 -1
  276. package/side-navigation/implementation.d.ts.map +1 -1
  277. package/side-navigation/implementation.js +3 -1
  278. package/side-navigation/implementation.js.map +1 -1
  279. package/side-navigation/styles.css.js +29 -28
  280. package/side-navigation/styles.scoped.css +47 -38
  281. package/side-navigation/styles.selectors.js +29 -28
  282. package/split-panel/implementation.d.ts.map +1 -1
  283. package/split-panel/implementation.js +3 -1
  284. package/split-panel/implementation.js.map +1 -1
  285. package/split-panel/side.d.ts.map +1 -1
  286. package/split-panel/side.js +4 -1
  287. package/split-panel/side.js.map +1 -1
  288. package/split-panel/styles.css.js +27 -27
  289. package/split-panel/styles.scoped.css +62 -44
  290. package/split-panel/styles.selectors.js +27 -27
  291. package/table/analytics-metadata/interfaces.d.ts +45 -0
  292. package/table/analytics-metadata/interfaces.d.ts.map +1 -0
  293. package/table/analytics-metadata/interfaces.js +4 -0
  294. package/table/analytics-metadata/interfaces.js.map +1 -0
  295. package/table/analytics-metadata/styles.css.js +6 -0
  296. package/table/analytics-metadata/styles.scoped.css +7 -0
  297. package/table/analytics-metadata/styles.selectors.js +7 -0
  298. package/table/body-cell/styles.css.js +47 -46
  299. package/table/body-cell/styles.scoped.css +276 -273
  300. package/table/body-cell/styles.selectors.js +47 -46
  301. package/table/body-cell/td-element.d.ts +2 -0
  302. package/table/body-cell/td-element.d.ts.map +1 -1
  303. package/table/body-cell/td-element.js +5 -2
  304. package/table/body-cell/td-element.js.map +1 -1
  305. package/table/header-cell/index.d.ts.map +1 -1
  306. package/table/header-cell/index.js +14 -2
  307. package/table/header-cell/index.js.map +1 -1
  308. package/table/header-cell/th-element.d.ts +1 -1
  309. package/table/header-cell/th-element.d.ts.map +1 -1
  310. package/table/header-cell/th-element.js +5 -2
  311. package/table/header-cell/th-element.js.map +1 -1
  312. package/table/header-cell/utils.d.ts +1 -0
  313. package/table/header-cell/utils.d.ts.map +1 -1
  314. package/table/header-cell/utils.js +11 -0
  315. package/table/header-cell/utils.js.map +1 -1
  316. package/table/index.d.ts.map +1 -1
  317. package/table/index.js +19 -2
  318. package/table/index.js.map +1 -1
  319. package/table/interfaces.d.ts +3 -0
  320. package/table/interfaces.d.ts.map +1 -1
  321. package/table/interfaces.js.map +1 -1
  322. package/table/internal.d.ts.map +1 -1
  323. package/table/internal.js +16 -2
  324. package/table/internal.js.map +1 -1
  325. package/table/selection/selection-control.d.ts +3 -1
  326. package/table/selection/selection-control.d.ts.map +1 -1
  327. package/table/selection/selection-control.js +10 -2
  328. package/table/selection/selection-control.js.map +1 -1
  329. package/table/thead.d.ts.map +1 -1
  330. package/table/thead.js +4 -1
  331. package/table/thead.js.map +1 -1
  332. package/test-utils/dom/property-filter/index.d.ts +10 -0
  333. package/test-utils/dom/property-filter/index.js +25 -1
  334. package/test-utils/dom/property-filter/index.js.map +1 -1
  335. package/test-utils/dom/select/index.d.ts +1 -0
  336. package/test-utils/dom/select/index.js +3 -0
  337. package/test-utils/dom/select/index.js.map +1 -1
  338. package/test-utils/selectors/property-filter/index.d.ts +10 -0
  339. package/test-utils/selectors/property-filter/index.js +25 -1
  340. package/test-utils/selectors/property-filter/index.js.map +1 -1
  341. package/test-utils/selectors/select/index.d.ts +1 -0
  342. package/test-utils/selectors/select/index.js +3 -0
  343. package/test-utils/selectors/select/index.js.map +1 -1
  344. package/test-utils/tsconfig.tsbuildinfo +1 -1
@@ -94,17 +94,15 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
94
94
  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
95
95
  SPDX-License-Identifier: Apache-2.0
96
96
  */
97
- .awsui_trigger-badge-wrapper_lpshu_1878d_97:not(#\9) {
97
+ .awsui_trigger-badge-wrapper_lpshu_14eln_97:not(#\9) {
98
98
  background: transparent;
99
99
  color: var(--color-text-interactive-default-lnx6lk, #414d5c);
100
- border-block: var(--border-field-width-09w7vk, 2px) solid transparent;
101
- border-inline: var(--border-field-width-09w7vk, 2px) solid transparent;
102
100
  border-start-start-radius: 50%;
103
101
  border-start-end-radius: 50%;
104
102
  border-end-start-radius: 50%;
105
103
  border-end-end-radius: 50%;
106
- block-size: var(--space-layout-toggle-diameter-hb85rk, 36px);
107
- inline-size: var(--space-layout-toggle-diameter-hb85rk, 36px);
104
+ block-size: 34px;
105
+ inline-size: 34px;
108
106
  display: flex;
109
107
  align-items: center;
110
108
  justify-content: center;
@@ -115,21 +113,19 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
115
113
  display: flex;
116
114
  justify-content: center;
117
115
  align-items: center;
118
- clip-path: path("M34.2193 10.1845C33.3961 10.579 32.4739 10.8 31.5 10.8C28.0206 10.8 25.2 7.97939 25.2 4.5C25.2 3.52614 25.421 2.6039 25.8155 1.78066C23.4518 0.639587 20.8006 0 18 0C8.05887 0 0 8.05887 0 18C0 27.9411 8.05887 36 18 36C27.9411 36 36 27.9411 36 18C36 15.1994 35.3604 12.5482 34.2193 10.1845Z");
116
+ clip-path: path("M32.185 9.34876C31.1913 10.1916 29.905 10.7 28.4999 10.7C25.3519 10.7 22.7999 8.14803 22.7999 5C22.7999 3.68192 23.2473 2.46833 23.9985 1.50281C21.8642 0.537421 19.4948 0 17 0C7.61116 0 0 7.61116 0 17C0 26.3888 7.61116 34 17 34C26.3888 34 34 26.3888 34 17C34 14.2479 33.346 11.6485 32.185 9.34876Z");
119
117
  /* stylelint-disable-next-line plugin/no-unsupported-browser-features */
120
118
  }
121
- .awsui_trigger-badge-wrapper_lpshu_1878d_97:not(#\9):hover {
119
+ .awsui_trigger-badge-wrapper_lpshu_14eln_97:not(#\9):hover {
122
120
  background: var(--color-background-input-disabled-ab59a3, #e9ebed);
123
121
  color: var(--color-text-interactive-hover-mj8add, #000716);
124
- border-color: var(--color-background-input-disabled-ab59a3, #e9ebed);
125
122
  }
126
- .awsui_trigger-badge-wrapper_lpshu_1878d_97:not(#\9):active {
123
+ .awsui_trigger-badge-wrapper_lpshu_14eln_97:not(#\9):active {
127
124
  background: var(--color-background-control-disabled-pwkvgd, #d1d5db);
128
125
  color: var(--color-text-interactive-hover-mj8add, #000716);
129
- border-color: var(--color-background-control-disabled-pwkvgd, #d1d5db);
130
126
  }
131
- .awsui_trigger-badge-wrapper_lpshu_1878d_97:not(#\9):dir(rtl) {
132
- clip-path: path("M1.78066 10.1845C2.6039 10.579 3.52615 10.8 4.5 10.8C7.97939 10.8 10.8 7.97939 10.8 4.5C10.8 3.52614 10.579 2.6039 10.1845 1.78066C12.5482 0.639587 15.1994 0 18 0C27.9411 0 36 8.05887 36 18C36 27.9411 27.9411 36 18 36C8.05887 36 0 27.9411 0 18C0 15.1994 0.639587 12.5482 1.78066 10.1845Z");
127
+ .awsui_trigger-badge-wrapper_lpshu_14eln_97:not(#\9):dir(rtl) {
128
+ clip-path: path("M1.81502 9.34876C2.80869 10.1916 4.09501 10.7 5.50007 10.7C8.6481 10.7 11.2001 8.14803 11.2001 5C11.2001 3.68192 10.7527 2.46833 10.0015 1.50281C12.1358 0.537421 14.5052 0 17 0C26.3888 0 34 7.61116 34 17C34 26.3888 26.3888 34 17 34C7.61116 34 0 26.3888 0 17C0 14.2479 0.653984 11.6485 1.81502 9.34876Z");
133
129
  }
134
130
 
135
131
  /*
@@ -137,42 +133,40 @@ Warning! If these design tokens for width change it will adversely impact
137
133
  the calculation used to determine the Split Panel maximum width in the
138
134
  handleSplitPanelMaxWidth function in the context.
139
135
  */
140
- .awsui_trigger_lpshu_1878d_97:not(#\9) {
136
+ .awsui_trigger_lpshu_14eln_97:not(#\9) {
141
137
  background: transparent;
142
138
  color: var(--color-text-interactive-default-lnx6lk, #414d5c);
143
- border-block: var(--border-field-width-09w7vk, 2px) solid transparent;
144
- border-inline: var(--border-field-width-09w7vk, 2px) solid transparent;
145
139
  border-start-start-radius: 50%;
146
140
  border-start-end-radius: 50%;
147
141
  border-end-start-radius: 50%;
148
142
  border-end-end-radius: 50%;
149
- block-size: var(--space-layout-toggle-diameter-hb85rk, 36px);
150
- inline-size: var(--space-layout-toggle-diameter-hb85rk, 36px);
143
+ block-size: 34px;
144
+ inline-size: 34px;
151
145
  display: flex;
152
146
  align-items: center;
153
147
  justify-content: center;
154
148
  box-sizing: border-box;
149
+ border-block: none;
150
+ border-inline: none;
155
151
  cursor: pointer;
156
152
  pointer-events: auto;
157
153
  }
158
- .awsui_trigger_lpshu_1878d_97:not(#\9):hover {
154
+ .awsui_trigger_lpshu_14eln_97:not(#\9):hover {
159
155
  background: var(--color-background-input-disabled-ab59a3, #e9ebed);
160
156
  color: var(--color-text-interactive-hover-mj8add, #000716);
161
- border-color: var(--color-background-input-disabled-ab59a3, #e9ebed);
162
157
  }
163
- .awsui_trigger_lpshu_1878d_97:not(#\9):active {
158
+ .awsui_trigger_lpshu_14eln_97:not(#\9):active {
164
159
  background: var(--color-background-control-disabled-pwkvgd, #d1d5db);
165
160
  color: var(--color-text-interactive-hover-mj8add, #000716);
166
- border-color: var(--color-background-control-disabled-pwkvgd, #d1d5db);
167
161
  }
168
- body[data-awsui-focus-visible=true] .awsui_trigger_lpshu_1878d_97:not(#\9):focus {
162
+ body[data-awsui-focus-visible=true] .awsui_trigger_lpshu_14eln_97:not(#\9):focus {
169
163
  position: relative;
170
164
  }
171
- body[data-awsui-focus-visible=true] .awsui_trigger_lpshu_1878d_97:not(#\9):focus {
165
+ body[data-awsui-focus-visible=true] .awsui_trigger_lpshu_14eln_97:not(#\9):focus {
172
166
  outline: 2px dotted transparent;
173
167
  outline-offset: calc(3px - 1px);
174
168
  }
175
- body[data-awsui-focus-visible=true] .awsui_trigger_lpshu_1878d_97:not(#\9):focus::before {
169
+ body[data-awsui-focus-visible=true] .awsui_trigger_lpshu_14eln_97:not(#\9):focus::before {
176
170
  content: " ";
177
171
  display: block;
178
172
  position: absolute;
@@ -186,42 +180,34 @@ body[data-awsui-focus-visible=true] .awsui_trigger_lpshu_1878d_97:not(#\9):focus
186
180
  border-end-end-radius: var(--border-radius-control-default-focus-ring-u8zbsz, 4px);
187
181
  box-shadow: 0 0 0 2px var(--color-border-item-focused-b2ntyl, #0972d3);
188
182
  }
189
- .awsui_trigger_lpshu_1878d_97:not(#\9):focus {
183
+ .awsui_trigger_lpshu_14eln_97:not(#\9):focus {
190
184
  outline: none;
191
185
  }
192
- .awsui_trigger_lpshu_1878d_97.awsui_selected_lpshu_1878d_192:not(#\9) {
186
+ .awsui_trigger_lpshu_14eln_97.awsui_selected_lpshu_14eln_186:not(#\9) {
193
187
  background: var(--color-background-layout-toggle-selected-default-caco0q, #0972d3);
194
188
  color: var(--color-text-layout-toggle-selected-b93usl, #ffffff);
195
- border-block: var(--border-field-width-09w7vk, 2px) solid var(--color-background-layout-toggle-selected-default-caco0q, #0972d3);
196
- border-inline: var(--border-field-width-09w7vk, 2px) solid var(--color-background-layout-toggle-selected-default-caco0q, #0972d3);
197
189
  }
198
- .awsui_trigger_lpshu_1878d_97.awsui_selected_lpshu_1878d_192:not(#\9):hover {
190
+ .awsui_trigger_lpshu_14eln_97.awsui_selected_lpshu_14eln_186:not(#\9):hover {
199
191
  background: var(--color-background-layout-toggle-selected-hover-kjak2q, #065299);
200
- border-color: var(--color-background-layout-toggle-selected-hover-kjak2q, #065299);
201
192
  }
202
- .awsui_trigger_lpshu_1878d_97.awsui_selected_lpshu_1878d_192:not(#\9):active {
193
+ .awsui_trigger_lpshu_14eln_97.awsui_selected_lpshu_14eln_186:not(#\9):active {
203
194
  background: var(--color-background-layout-toggle-selected-active-xfk480, #0972d3);
204
- border-color: var(--color-background-layout-toggle-selected-active-xfk480, #0972d3);
205
195
  }
206
- .awsui_trigger_lpshu_1878d_97.awsui_selected_lpshu_1878d_192 > .awsui_trigger-badge-wrapper_lpshu_1878d_97:not(#\9) {
196
+ .awsui_trigger_lpshu_14eln_97.awsui_selected_lpshu_14eln_186 > .awsui_trigger-badge-wrapper_lpshu_14eln_97:not(#\9) {
207
197
  background: var(--color-background-layout-toggle-selected-default-caco0q, #0972d3);
208
198
  color: var(--color-text-layout-toggle-selected-b93usl, #ffffff);
209
- border-block: var(--border-field-width-09w7vk, 2px) solid var(--color-background-layout-toggle-selected-default-caco0q, #0972d3);
210
- border-inline: var(--border-field-width-09w7vk, 2px) solid var(--color-background-layout-toggle-selected-default-caco0q, #0972d3);
211
199
  }
212
- .awsui_trigger_lpshu_1878d_97.awsui_selected_lpshu_1878d_192 > .awsui_trigger-badge-wrapper_lpshu_1878d_97:not(#\9):hover {
200
+ .awsui_trigger_lpshu_14eln_97.awsui_selected_lpshu_14eln_186 > .awsui_trigger-badge-wrapper_lpshu_14eln_97:not(#\9):hover {
213
201
  background: var(--color-background-layout-toggle-selected-hover-kjak2q, #065299);
214
- border-color: var(--color-background-layout-toggle-selected-hover-kjak2q, #065299);
215
202
  }
216
- .awsui_trigger_lpshu_1878d_97.awsui_selected_lpshu_1878d_192 > .awsui_trigger-badge-wrapper_lpshu_1878d_97:not(#\9):active {
203
+ .awsui_trigger_lpshu_14eln_97.awsui_selected_lpshu_14eln_186 > .awsui_trigger-badge-wrapper_lpshu_14eln_97:not(#\9):active {
217
204
  background: var(--color-background-layout-toggle-selected-active-xfk480, #0972d3);
218
- border-color: var(--color-background-layout-toggle-selected-active-xfk480, #0972d3);
219
205
  }
220
- .awsui_trigger_lpshu_1878d_97.awsui_badge_lpshu_1878d_220:not(#\9), .awsui_trigger_lpshu_1878d_97.awsui_badge_lpshu_1878d_220:not(#\9):hover, .awsui_trigger_lpshu_1878d_97.awsui_badge_lpshu_1878d_220:not(#\9):active {
206
+ .awsui_trigger_lpshu_14eln_97.awsui_badge_lpshu_14eln_206:not(#\9), .awsui_trigger_lpshu_14eln_97.awsui_badge_lpshu_14eln_206:not(#\9):hover, .awsui_trigger_lpshu_14eln_97.awsui_badge_lpshu_14eln_206:not(#\9):active {
221
207
  background: transparent;
222
208
  }
223
209
 
224
- .awsui_trigger-wrapper_lpshu_1878d_224:not(#\9) {
210
+ .awsui_trigger-wrapper_lpshu_14eln_210:not(#\9) {
225
211
  position: relative;
226
212
  border-start-start-radius: 50%;
227
213
  border-start-end-radius: 50%;
@@ -229,10 +215,10 @@ body[data-awsui-focus-visible=true] .awsui_trigger_lpshu_1878d_97:not(#\9):focus
229
215
  border-end-end-radius: 50%;
230
216
  }
231
217
 
232
- .awsui_dot_lpshu_1878d_232:not(#\9) {
218
+ .awsui_dot_lpshu_14eln_218:not(#\9) {
233
219
  position: absolute;
234
- inline-size: 9px;
235
- block-size: 9px;
220
+ inline-size: 8px;
221
+ block-size: 8px;
236
222
  border-start-start-radius: 8px;
237
223
  border-start-end-radius: 8px;
238
224
  border-end-start-radius: 8px;
@@ -2,11 +2,11 @@
2
2
  // es-module interop with Babel and Typescript
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  module.exports.default = {
5
- "trigger-badge-wrapper": "awsui_trigger-badge-wrapper_lpshu_1878d_97",
6
- "trigger": "awsui_trigger_lpshu_1878d_97",
7
- "selected": "awsui_selected_lpshu_1878d_192",
8
- "badge": "awsui_badge_lpshu_1878d_220",
9
- "trigger-wrapper": "awsui_trigger-wrapper_lpshu_1878d_224",
10
- "dot": "awsui_dot_lpshu_1878d_232"
5
+ "trigger-badge-wrapper": "awsui_trigger-badge-wrapper_lpshu_14eln_97",
6
+ "trigger": "awsui_trigger_lpshu_14eln_97",
7
+ "selected": "awsui_selected_lpshu_14eln_186",
8
+ "badge": "awsui_badge_lpshu_14eln_206",
9
+ "trigger-wrapper": "awsui_trigger-wrapper_lpshu_14eln_210",
10
+ "dot": "awsui_dot_lpshu_14eln_218"
11
11
  };
12
12
 
@@ -0,0 +1,26 @@
1
+ export interface GeneratedAnalyticsMetadataButtonDropdownClick {
2
+ action: 'click';
3
+ detail: {
4
+ label: string;
5
+ position?: string;
6
+ id?: string;
7
+ };
8
+ }
9
+ export interface GeneratedAnalyticsMetadataButtonDropdownExpand {
10
+ action: 'expand';
11
+ detail: {
12
+ label: string;
13
+ expanded: string;
14
+ position?: string;
15
+ id?: string;
16
+ };
17
+ }
18
+ export interface GeneratedAnalyticsMetadataButtonDropdownComponent {
19
+ name: 'awsui.ButtonDropdown';
20
+ label: string;
21
+ properties: {
22
+ variant: string;
23
+ disabled: string;
24
+ };
25
+ }
26
+ //# sourceMappingURL=interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../../src/button-dropdown/analytics-metadata/interfaces.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,6CAA6C;IAC5D,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,EAAE,CAAC,EAAE,MAAM,CAAC;KACb,CAAC;CACH;AAED,MAAM,WAAW,8CAA8C;IAC7D,MAAM,EAAE,QAAQ,CAAC;IACjB,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,EAAE,CAAC,EAAE,MAAM,CAAC;KACb,CAAC;CACH;AAED,MAAM,WAAW,iDAAiD;IAChE,IAAI,EAAE,sBAAsB,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE;QACV,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH"}
@@ -0,0 +1,4 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ export {};
4
+ //# sourceMappingURL=interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../../src/button-dropdown/analytics-metadata/interfaces.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport interface GeneratedAnalyticsMetadataButtonDropdownClick {\n action: 'click';\n detail: {\n label: string;\n position?: string;\n id?: string;\n };\n}\n\nexport interface GeneratedAnalyticsMetadataButtonDropdownExpand {\n action: 'expand';\n detail: {\n label: string;\n expanded: string;\n position?: string;\n id?: string;\n };\n}\n\nexport interface GeneratedAnalyticsMetadataButtonDropdownComponent {\n name: 'awsui.ButtonDropdown';\n label: string;\n properties: {\n variant: string;\n disabled: string;\n };\n}\n"]}
@@ -0,0 +1,8 @@
1
+
2
+ import './styles.scoped.css';
3
+ export default {
4
+ "trigger-label": "awsui_trigger-label_q2oen_w271r_5",
5
+ "menu-item": "awsui_menu-item_q2oen_w271r_6",
6
+ "main-action-label": "awsui_main-action-label_q2oen_w271r_7"
7
+ };
8
+
@@ -0,0 +1,9 @@
1
+ /*
2
+ Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ .awsui_trigger-label_q2oen_w271r_5:not(#\9),
6
+ .awsui_menu-item_q2oen_w271r_6:not(#\9),
7
+ .awsui_main-action-label_q2oen_w271r_7:not(#\9) {
8
+ /* used in analytics metadata */
9
+ }
@@ -0,0 +1,9 @@
1
+
2
+ // es-module interop with Babel and Typescript
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ module.exports.default = {
5
+ "trigger-label": "awsui_trigger-label_q2oen_w271r_5",
6
+ "menu-item": "awsui_menu-item_q2oen_w271r_6",
7
+ "main-action-label": "awsui_main-action-label_q2oen_w271r_7"
8
+ };
9
+
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
2
  import { CategoryProps } from '../interfaces';
3
- declare const CategoryElement: ({ item, onItemActivate, onGroupToggle, targetItem, isHighlighted, isKeyboardHighlight, isExpanded, lastInDropdown, highlightItem, disabled, variant, }: CategoryProps) => JSX.Element;
3
+ declare const CategoryElement: ({ item, onItemActivate, onGroupToggle, targetItem, isHighlighted, isKeyboardHighlight, isExpanded, lastInDropdown, highlightItem, disabled, variant, position, }: CategoryProps) => JSX.Element;
4
4
  export default CategoryElement;
5
5
  //# sourceMappingURL=category-element.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"category-element.d.ts","sourceRoot":"","sources":["../../../../src/button-dropdown/category-elements/category-element.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAK9C,QAAA,MAAM,eAAe,2JAYlB,aAAa,gBAkCf,CAAC;AAEF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"category-element.d.ts","sourceRoot":"","sources":["../../../../src/button-dropdown/category-elements/category-element.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAK9C,QAAA,MAAM,eAAe,qKAalB,aAAa,gBAmCf,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -4,12 +4,12 @@ import React from 'react';
4
4
  import clsx from 'clsx';
5
5
  import ItemsList from '../items-list';
6
6
  import styles from './styles.css.js';
7
- const CategoryElement = ({ item, onItemActivate, onGroupToggle, targetItem, isHighlighted, isKeyboardHighlight, isExpanded, lastInDropdown, highlightItem, disabled, variant, }) => {
7
+ const CategoryElement = ({ item, onItemActivate, onGroupToggle, targetItem, isHighlighted, isKeyboardHighlight, isExpanded, lastInDropdown, highlightItem, disabled, variant, position, }) => {
8
8
  // Hide the category title element from screen readers because it will be
9
9
  // provided as an ARIA label.
10
10
  return (React.createElement("li", { className: clsx(styles.category, styles[`variant-${variant}`], disabled && styles.disabled), role: "presentation", "aria-disabled": disabled ? 'true' : undefined },
11
11
  item.text && (React.createElement("p", { className: clsx(styles.header, { [styles.disabled]: disabled }), "aria-hidden": "true" }, item.text)),
12
- React.createElement("ul", { className: styles['items-list-container'], role: "group", "aria-label": item.text }, item.items && (React.createElement(ItemsList, { items: item.items, onItemActivate: onItemActivate, onGroupToggle: onGroupToggle, targetItem: targetItem, isHighlighted: isHighlighted, isKeyboardHighlight: isKeyboardHighlight, isExpanded: isExpanded, lastInDropdown: lastInDropdown, highlightItem: highlightItem, categoryDisabled: disabled, hasCategoryHeader: !!item.text, variant: variant })))));
12
+ React.createElement("ul", { className: styles['items-list-container'], role: "group", "aria-label": item.text }, item.items && (React.createElement(ItemsList, { items: item.items, onItemActivate: onItemActivate, onGroupToggle: onGroupToggle, targetItem: targetItem, isHighlighted: isHighlighted, isKeyboardHighlight: isKeyboardHighlight, isExpanded: isExpanded, lastInDropdown: lastInDropdown, highlightItem: highlightItem, categoryDisabled: disabled, hasCategoryHeader: !!item.text, variant: variant, position: position })))));
13
13
  };
14
14
  export default CategoryElement;
15
15
  //# sourceMappingURL=category-element.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"category-element.js","sourceRoot":"","sources":["../../../../src/button-dropdown/category-elements/category-element.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,OAAO,SAAS,MAAM,eAAe,CAAC;AAEtC,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAErC,MAAM,eAAe,GAAG,CAAC,EACvB,IAAI,EACJ,cAAc,EACd,aAAa,EACb,UAAU,EACV,aAAa,EACb,mBAAmB,EACnB,UAAU,EACV,cAAc,EACd,aAAa,EACb,QAAQ,EACR,OAAO,GACO,EAAE,EAAE;IAClB,yEAAyE;IACzE,6BAA6B;IAC7B,OAAO,CACL,4BACE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,WAAW,OAAO,EAAE,CAAC,EAAE,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,EAC3F,IAAI,EAAC,cAAc,mBACJ,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QAE3C,IAAI,CAAC,IAAI,IAAI,CACZ,2BAAG,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC,iBAAc,MAAM,IACnF,IAAI,CAAC,IAAI,CACR,CACL;QACD,4BAAI,SAAS,EAAE,MAAM,CAAC,sBAAsB,CAAC,EAAE,IAAI,EAAC,OAAO,gBAAa,IAAI,CAAC,IAAI,IAC9E,IAAI,CAAC,KAAK,IAAI,CACb,oBAAC,SAAS,IACR,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,aAAa,EAC5B,mBAAmB,EAAE,mBAAmB,EACxC,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,aAAa,EAC5B,gBAAgB,EAAE,QAAQ,EAC1B,iBAAiB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAC9B,OAAO,EAAE,OAAO,GAChB,CACH,CACE,CACF,CACN,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,eAAe,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React from 'react';\nimport clsx from 'clsx';\n\nimport { CategoryProps } from '../interfaces';\nimport ItemsList from '../items-list';\n\nimport styles from './styles.css.js';\n\nconst CategoryElement = ({\n item,\n onItemActivate,\n onGroupToggle,\n targetItem,\n isHighlighted,\n isKeyboardHighlight,\n isExpanded,\n lastInDropdown,\n highlightItem,\n disabled,\n variant,\n}: CategoryProps) => {\n // Hide the category title element from screen readers because it will be\n // provided as an ARIA label.\n return (\n <li\n className={clsx(styles.category, styles[`variant-${variant}`], disabled && styles.disabled)}\n role=\"presentation\"\n aria-disabled={disabled ? 'true' : undefined}\n >\n {item.text && (\n <p className={clsx(styles.header, { [styles.disabled]: disabled })} aria-hidden=\"true\">\n {item.text}\n </p>\n )}\n <ul className={styles['items-list-container']} role=\"group\" aria-label={item.text}>\n {item.items && (\n <ItemsList\n items={item.items}\n onItemActivate={onItemActivate}\n onGroupToggle={onGroupToggle}\n targetItem={targetItem}\n isHighlighted={isHighlighted}\n isKeyboardHighlight={isKeyboardHighlight}\n isExpanded={isExpanded}\n lastInDropdown={lastInDropdown}\n highlightItem={highlightItem}\n categoryDisabled={disabled}\n hasCategoryHeader={!!item.text}\n variant={variant}\n />\n )}\n </ul>\n </li>\n );\n};\n\nexport default CategoryElement;\n"]}
1
+ {"version":3,"file":"category-element.js","sourceRoot":"","sources":["../../../../src/button-dropdown/category-elements/category-element.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,OAAO,SAAS,MAAM,eAAe,CAAC;AAEtC,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAErC,MAAM,eAAe,GAAG,CAAC,EACvB,IAAI,EACJ,cAAc,EACd,aAAa,EACb,UAAU,EACV,aAAa,EACb,mBAAmB,EACnB,UAAU,EACV,cAAc,EACd,aAAa,EACb,QAAQ,EACR,OAAO,EACP,QAAQ,GACM,EAAE,EAAE;IAClB,yEAAyE;IACzE,6BAA6B;IAC7B,OAAO,CACL,4BACE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,WAAW,OAAO,EAAE,CAAC,EAAE,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,EAC3F,IAAI,EAAC,cAAc,mBACJ,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QAE3C,IAAI,CAAC,IAAI,IAAI,CACZ,2BAAG,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC,iBAAc,MAAM,IACnF,IAAI,CAAC,IAAI,CACR,CACL;QACD,4BAAI,SAAS,EAAE,MAAM,CAAC,sBAAsB,CAAC,EAAE,IAAI,EAAC,OAAO,gBAAa,IAAI,CAAC,IAAI,IAC9E,IAAI,CAAC,KAAK,IAAI,CACb,oBAAC,SAAS,IACR,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,aAAa,EAC5B,mBAAmB,EAAE,mBAAmB,EACxC,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,aAAa,EAC5B,gBAAgB,EAAE,QAAQ,EAC1B,iBAAiB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAC9B,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,GAClB,CACH,CACE,CACF,CACN,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,eAAe,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React from 'react';\nimport clsx from 'clsx';\n\nimport { CategoryProps } from '../interfaces';\nimport ItemsList from '../items-list';\n\nimport styles from './styles.css.js';\n\nconst CategoryElement = ({\n item,\n onItemActivate,\n onGroupToggle,\n targetItem,\n isHighlighted,\n isKeyboardHighlight,\n isExpanded,\n lastInDropdown,\n highlightItem,\n disabled,\n variant,\n position,\n}: CategoryProps) => {\n // Hide the category title element from screen readers because it will be\n // provided as an ARIA label.\n return (\n <li\n className={clsx(styles.category, styles[`variant-${variant}`], disabled && styles.disabled)}\n role=\"presentation\"\n aria-disabled={disabled ? 'true' : undefined}\n >\n {item.text && (\n <p className={clsx(styles.header, { [styles.disabled]: disabled })} aria-hidden=\"true\">\n {item.text}\n </p>\n )}\n <ul className={styles['items-list-container']} role=\"group\" aria-label={item.text}>\n {item.items && (\n <ItemsList\n items={item.items}\n onItemActivate={onItemActivate}\n onGroupToggle={onGroupToggle}\n targetItem={targetItem}\n isHighlighted={isHighlighted}\n isKeyboardHighlight={isKeyboardHighlight}\n isExpanded={isExpanded}\n lastInDropdown={lastInDropdown}\n highlightItem={highlightItem}\n categoryDisabled={disabled}\n hasCategoryHeader={!!item.text}\n variant={variant}\n position={position}\n />\n )}\n </ul>\n </li>\n );\n};\n\nexport default CategoryElement;\n"]}
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
2
  import { CategoryProps } from '../interfaces';
3
- declare const ExpandableCategoryElement: ({ item, onItemActivate, onGroupToggle, targetItem, isHighlighted, isKeyboardHighlight, isExpanded, lastInDropdown, highlightItem, disabled, expandToViewport, variant, }: CategoryProps) => JSX.Element;
3
+ declare const ExpandableCategoryElement: ({ item, onItemActivate, onGroupToggle, targetItem, isHighlighted, isKeyboardHighlight, isExpanded, lastInDropdown, highlightItem, disabled, expandToViewport, variant, position, }: CategoryProps) => JSX.Element;
4
4
  export default ExpandableCategoryElement;
5
5
  //# sourceMappingURL=expandable-category-element.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"expandable-category-element.d.ts","sourceRoot":"","sources":["../../../../src/button-dropdown/category-elements/expandable-category-element.tsx"],"names":[],"mappings":";AAQA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAO9C,QAAA,MAAM,yBAAyB,6KAa5B,aAAa,gBA+Gf,CAAC;AAEF,eAAe,yBAAyB,CAAC"}
1
+ {"version":3,"file":"expandable-category-element.d.ts","sourceRoot":"","sources":["../../../../src/button-dropdown/category-elements/expandable-category-element.tsx"],"names":[],"mappings":";AAWA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAO9C,QAAA,MAAM,yBAAyB,uLAc5B,aAAa,gBA6Hf,CAAC;AAEF,eAAe,yBAAyB,CAAC"}
@@ -2,6 +2,7 @@
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
  import React, { useEffect, useRef } from 'react';
4
4
  import clsx from 'clsx';
5
+ import { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';
5
6
  import InternalIcon from '../../icon/internal';
6
7
  import Dropdown from '../../internal/components/dropdown';
7
8
  import useHiddenDescription from '../../internal/hooks/use-hidden-description';
@@ -9,7 +10,7 @@ import ItemsList from '../items-list';
9
10
  import Tooltip from '../tooltip.js';
10
11
  import { getMenuItemProps } from '../utils/menu-item';
11
12
  import styles from './styles.css.js';
12
- const ExpandableCategoryElement = ({ item, onItemActivate, onGroupToggle, targetItem, isHighlighted, isKeyboardHighlight, isExpanded, lastInDropdown, highlightItem, disabled, expandToViewport, variant, }) => {
13
+ const ExpandableCategoryElement = ({ item, onItemActivate, onGroupToggle, targetItem, isHighlighted, isKeyboardHighlight, isExpanded, lastInDropdown, highlightItem, disabled, expandToViewport, variant, position, }) => {
13
14
  const highlighted = isHighlighted(item);
14
15
  const expanded = isExpanded(item);
15
16
  const isKeyboardHighlighted = isKeyboardHighlight(item);
@@ -41,7 +42,17 @@ const ExpandableCategoryElement = ({ item, onItemActivate, onGroupToggle, target
41
42
  // We are using the roving tabindex technique to manage the focus state of the dropdown.
42
43
  // The current element will always have tabindex=0 which means that it can be tabbed to,
43
44
  // while all other items have tabindex=-1 so we can focus them when necessary.
44
- tabIndex: highlighted ? 0 : -1, ref: triggerRef }, getMenuItemProps({ parent: true, expanded, disabled }), (isDisabledWithReason ? targetProps : {})),
45
+ tabIndex: highlighted ? 0 : -1, ref: triggerRef }, getMenuItemProps({ parent: true, expanded, disabled }), (isDisabledWithReason ? targetProps : {}), getAnalyticsMetadataAttribute(disabled
46
+ ? {}
47
+ : {
48
+ action: 'expand',
49
+ detail: {
50
+ position: position || '0',
51
+ label: '',
52
+ id: item.id || '',
53
+ expanded: `${!expanded}`,
54
+ },
55
+ })),
45
56
  item.text,
46
57
  React.createElement("span", { className: clsx(styles['expand-icon'], styles['expand-icon-right']) },
47
58
  React.createElement(InternalIcon, { name: "caret-down-filled" }))));
@@ -58,7 +69,7 @@ const ExpandableCategoryElement = ({ item, onItemActivate, onGroupToggle, target
58
69
  }
59
70
  else {
60
71
  content = (React.createElement(Dropdown, { open: expanded, stretchWidth: false, interior: true, expandToViewport: expandToViewport, trigger: trigger }, item.items && expanded && (React.createElement("ul", { role: "menu", "aria-label": item.text, className: clsx(styles['items-list-container'], styles['in-dropdown']) },
61
- React.createElement(ItemsList, { items: item.items, onItemActivate: onItemActivate, onGroupToggle: onGroupToggle, targetItem: targetItem, isHighlighted: isHighlighted, isKeyboardHighlight: isKeyboardHighlight, isExpanded: isExpanded, lastInDropdown: lastInDropdown, highlightItem: highlightItem, variant: variant })))));
72
+ React.createElement(ItemsList, { items: item.items, onItemActivate: onItemActivate, onGroupToggle: onGroupToggle, targetItem: targetItem, isHighlighted: isHighlighted, isKeyboardHighlight: isKeyboardHighlight, isExpanded: isExpanded, lastInDropdown: lastInDropdown, highlightItem: highlightItem, variant: variant, position: position })))));
62
73
  }
63
74
  return (React.createElement("li", { className: clsx(styles.category, styles[`variant-${variant}`], styles.expandable, {
64
75
  [styles.expanded]: expanded,
@@ -1 +1 @@
1
- {"version":3,"file":"expandable-category-element.js","sourceRoot":"","sources":["../../../../src/button-dropdown/category-elements/expandable-category-element.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 } from 'react';\nimport clsx from 'clsx';\n\nimport InternalIcon from '../../icon/internal';\nimport Dropdown from '../../internal/components/dropdown';\nimport useHiddenDescription from '../../internal/hooks/use-hidden-description';\nimport { CategoryProps } from '../interfaces';\nimport ItemsList from '../items-list';\nimport Tooltip from '../tooltip.js';\nimport { getMenuItemProps } from '../utils/menu-item';\n\nimport styles from './styles.css.js';\n\nconst ExpandableCategoryElement = ({\n item,\n onItemActivate,\n onGroupToggle,\n targetItem,\n isHighlighted,\n isKeyboardHighlight,\n isExpanded,\n lastInDropdown,\n highlightItem,\n disabled,\n expandToViewport,\n variant,\n}: CategoryProps) => {\n const highlighted = isHighlighted(item);\n const expanded = isExpanded(item);\n const isKeyboardHighlighted = isKeyboardHighlight(item);\n const triggerRef = React.useRef<HTMLSpanElement>(null);\n const ref = useRef<HTMLLIElement>(null);\n\n useEffect(() => {\n if (triggerRef.current && highlighted && !expanded) {\n triggerRef.current.focus();\n }\n }, [expanded, highlighted]);\n\n const onClick: React.MouseEventHandler = event => {\n if (!disabled) {\n event.preventDefault();\n onGroupToggle(item, event);\n triggerRef.current?.focus();\n }\n };\n\n const onHover = () => {\n highlightItem(item);\n };\n\n const isDisabledWithReason = !!item.disabledReason && item.disabled;\n const { targetProps, descriptionEl } = useHiddenDescription(item.disabledReason);\n const trigger = item.text && (\n <span\n className={clsx(styles.header, styles['expandable-header'], styles[`variant-${variant}`], {\n [styles.disabled]: disabled,\n [styles.highlighted]: highlighted,\n [styles['is-focused']]: isKeyboardHighlighted,\n })}\n // We are using the roving tabindex technique to manage the focus state of the dropdown.\n // The current element will always have tabindex=0 which means that it can be tabbed to,\n // while all other items have tabindex=-1 so we can focus them when necessary.\n tabIndex={highlighted ? 0 : -1}\n ref={triggerRef}\n {...getMenuItemProps({ parent: true, expanded, disabled })}\n {...(isDisabledWithReason ? targetProps : {})}\n >\n {item.text}\n <span className={clsx(styles['expand-icon'], styles['expand-icon-right'])}>\n <InternalIcon name=\"caret-down-filled\" />\n </span>\n </span>\n );\n\n let content: React.ReactNode;\n // If the category element is disabled, we do not render a dropdown.\n // Screenreaders are confused by additional sections\n if (isDisabledWithReason) {\n content = (\n <Tooltip content={item.disabledReason}>\n {trigger}\n {descriptionEl}\n </Tooltip>\n );\n } else if (disabled) {\n content = trigger;\n } else {\n content = (\n <Dropdown\n open={expanded}\n stretchWidth={false}\n interior={true}\n expandToViewport={expandToViewport}\n trigger={trigger}\n >\n {item.items && expanded && (\n <ul\n role=\"menu\"\n aria-label={item.text}\n className={clsx(styles['items-list-container'], styles['in-dropdown'])}\n >\n <ItemsList\n items={item.items}\n onItemActivate={onItemActivate}\n onGroupToggle={onGroupToggle}\n targetItem={targetItem}\n isHighlighted={isHighlighted}\n isKeyboardHighlight={isKeyboardHighlight}\n isExpanded={isExpanded}\n lastInDropdown={lastInDropdown}\n highlightItem={highlightItem}\n variant={variant}\n />\n </ul>\n )}\n </Dropdown>\n );\n }\n\n return (\n <li\n className={clsx(styles.category, styles[`variant-${variant}`], styles.expandable, {\n [styles.expanded]: expanded,\n [styles.disabled]: disabled,\n [styles.highlighted]: highlighted,\n })}\n role=\"presentation\"\n data-testid={item.id}\n ref={ref}\n onClick={onClick}\n onMouseEnter={onHover}\n onTouchStart={onHover}\n >\n {content}\n </li>\n );\n};\n\nexport default ExpandableCategoryElement;\n"]}
1
+ {"version":3,"file":"expandable-category-element.js","sourceRoot":"","sources":["../../../../src/button-dropdown/category-elements/expandable-category-element.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,6BAA6B,EAAE,MAAM,kEAAkE,CAAC;AAEjH,OAAO,YAAY,MAAM,qBAAqB,CAAC;AAC/C,OAAO,QAAQ,MAAM,oCAAoC,CAAC;AAC1D,OAAO,oBAAoB,MAAM,6CAA6C,CAAC;AAG/E,OAAO,SAAS,MAAM,eAAe,CAAC;AACtC,OAAO,OAAO,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAErC,MAAM,yBAAyB,GAAG,CAAC,EACjC,IAAI,EACJ,cAAc,EACd,aAAa,EACb,UAAU,EACV,aAAa,EACb,mBAAmB,EACnB,UAAU,EACV,cAAc,EACd,aAAa,EACb,QAAQ,EACR,gBAAgB,EAChB,OAAO,EACP,QAAQ,GACM,EAAE,EAAE;IAClB,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,qBAAqB,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACxD,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAkB,IAAI,CAAC,CAAC;IACvD,MAAM,GAAG,GAAG,MAAM,CAAgB,IAAI,CAAC,CAAC;IAExC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,UAAU,CAAC,OAAO,IAAI,WAAW,IAAI,CAAC,QAAQ,EAAE;YAClD,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;SAC5B;IACH,CAAC,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;IAE5B,MAAM,OAAO,GAA4B,KAAK,CAAC,EAAE;;QAC/C,IAAI,CAAC,QAAQ,EAAE;YACb,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC3B,MAAA,UAAU,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAC;SAC7B;IACH,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,aAAa,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC,CAAC;IAEF,MAAM,oBAAoB,GAAG,CAAC,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,QAAQ,CAAC;IACpE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACjF,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,CAC3B,4CACE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC,WAAW,OAAO,EAAE,CAAC,EAAE;YACxF,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ;YAC3B,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,WAAW;YACjC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,qBAAqB;SAC9C,CAAC;QACF,wFAAwF;QACxF,wFAAwF;QACxF,8EAA8E;QAC9E,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC9B,GAAG,EAAE,UAAU,IACX,gBAAgB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EACtD,CAAC,oBAAoB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EACzC,6BAA6B,CAC/B,QAAQ;QACN,CAAC,CAAC,EAAE;QACJ,CAAC,CAAE;YACC,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE;gBACN,QAAQ,EAAE,QAAQ,IAAI,GAAG;gBACzB,KAAK,EAAE,EAAE;gBACT,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE;gBACjB,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE;aACzB;SACiD,CACzD;QAEA,IAAI,CAAC,IAAI;QACV,8BAAM,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC,mBAAmB,CAAC,CAAC;YACvE,oBAAC,YAAY,IAAC,IAAI,EAAC,mBAAmB,GAAG,CACpC,CACF,CACR,CAAC;IAEF,IAAI,OAAwB,CAAC;IAC7B,oEAAoE;IACpE,oDAAoD;IACpD,IAAI,oBAAoB,EAAE;QACxB,OAAO,GAAG,CACR,oBAAC,OAAO,IAAC,OAAO,EAAE,IAAI,CAAC,cAAc;YAClC,OAAO;YACP,aAAa,CACN,CACX,CAAC;KACH;SAAM,IAAI,QAAQ,EAAE;QACnB,OAAO,GAAG,OAAO,CAAC;KACnB;SAAM;QACL,OAAO,GAAG,CACR,oBAAC,QAAQ,IACP,IAAI,EAAE,QAAQ,EACd,YAAY,EAAE,KAAK,EACnB,QAAQ,EAAE,IAAI,EACd,gBAAgB,EAAE,gBAAgB,EAClC,OAAO,EAAE,OAAO,IAEf,IAAI,CAAC,KAAK,IAAI,QAAQ,IAAI,CACzB,4BACE,IAAI,EAAC,MAAM,gBACC,IAAI,CAAC,IAAI,EACrB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;YAEtE,oBAAC,SAAS,IACR,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,aAAa,EAC5B,mBAAmB,EAAE,mBAAmB,EACxC,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,GAClB,CACC,CACN,CACQ,CACZ,CAAC;KACH;IAED,OAAO,CACL,4BACE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,WAAW,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC,UAAU,EAAE;YAChF,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ;YAC3B,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ;YAC3B,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,WAAW;SAClC,CAAC,EACF,IAAI,EAAC,cAAc,iBACN,IAAI,CAAC,EAAE,EACpB,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,OAAO,EACrB,YAAY,EAAE,OAAO,IAEpB,OAAO,CACL,CACN,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,yBAAyB,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useEffect, useRef } from 'react';\nimport clsx from 'clsx';\n\nimport { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport InternalIcon from '../../icon/internal';\nimport Dropdown from '../../internal/components/dropdown';\nimport useHiddenDescription from '../../internal/hooks/use-hidden-description';\nimport { GeneratedAnalyticsMetadataButtonDropdownExpand } from '../analytics-metadata/interfaces.js';\nimport { CategoryProps } from '../interfaces';\nimport ItemsList from '../items-list';\nimport Tooltip from '../tooltip.js';\nimport { getMenuItemProps } from '../utils/menu-item';\n\nimport styles from './styles.css.js';\n\nconst ExpandableCategoryElement = ({\n item,\n onItemActivate,\n onGroupToggle,\n targetItem,\n isHighlighted,\n isKeyboardHighlight,\n isExpanded,\n lastInDropdown,\n highlightItem,\n disabled,\n expandToViewport,\n variant,\n position,\n}: CategoryProps) => {\n const highlighted = isHighlighted(item);\n const expanded = isExpanded(item);\n const isKeyboardHighlighted = isKeyboardHighlight(item);\n const triggerRef = React.useRef<HTMLSpanElement>(null);\n const ref = useRef<HTMLLIElement>(null);\n\n useEffect(() => {\n if (triggerRef.current && highlighted && !expanded) {\n triggerRef.current.focus();\n }\n }, [expanded, highlighted]);\n\n const onClick: React.MouseEventHandler = event => {\n if (!disabled) {\n event.preventDefault();\n onGroupToggle(item, event);\n triggerRef.current?.focus();\n }\n };\n\n const onHover = () => {\n highlightItem(item);\n };\n\n const isDisabledWithReason = !!item.disabledReason && item.disabled;\n const { targetProps, descriptionEl } = useHiddenDescription(item.disabledReason);\n const trigger = item.text && (\n <span\n className={clsx(styles.header, styles['expandable-header'], styles[`variant-${variant}`], {\n [styles.disabled]: disabled,\n [styles.highlighted]: highlighted,\n [styles['is-focused']]: isKeyboardHighlighted,\n })}\n // We are using the roving tabindex technique to manage the focus state of the dropdown.\n // The current element will always have tabindex=0 which means that it can be tabbed to,\n // while all other items have tabindex=-1 so we can focus them when necessary.\n tabIndex={highlighted ? 0 : -1}\n ref={triggerRef}\n {...getMenuItemProps({ parent: true, expanded, disabled })}\n {...(isDisabledWithReason ? targetProps : {})}\n {...getAnalyticsMetadataAttribute(\n disabled\n ? {}\n : ({\n action: 'expand',\n detail: {\n position: position || '0',\n label: '',\n id: item.id || '',\n expanded: `${!expanded}`,\n },\n } as GeneratedAnalyticsMetadataButtonDropdownExpand)\n )}\n >\n {item.text}\n <span className={clsx(styles['expand-icon'], styles['expand-icon-right'])}>\n <InternalIcon name=\"caret-down-filled\" />\n </span>\n </span>\n );\n\n let content: React.ReactNode;\n // If the category element is disabled, we do not render a dropdown.\n // Screenreaders are confused by additional sections\n if (isDisabledWithReason) {\n content = (\n <Tooltip content={item.disabledReason}>\n {trigger}\n {descriptionEl}\n </Tooltip>\n );\n } else if (disabled) {\n content = trigger;\n } else {\n content = (\n <Dropdown\n open={expanded}\n stretchWidth={false}\n interior={true}\n expandToViewport={expandToViewport}\n trigger={trigger}\n >\n {item.items && expanded && (\n <ul\n role=\"menu\"\n aria-label={item.text}\n className={clsx(styles['items-list-container'], styles['in-dropdown'])}\n >\n <ItemsList\n items={item.items}\n onItemActivate={onItemActivate}\n onGroupToggle={onGroupToggle}\n targetItem={targetItem}\n isHighlighted={isHighlighted}\n isKeyboardHighlight={isKeyboardHighlight}\n isExpanded={isExpanded}\n lastInDropdown={lastInDropdown}\n highlightItem={highlightItem}\n variant={variant}\n position={position}\n />\n </ul>\n )}\n </Dropdown>\n );\n }\n\n return (\n <li\n className={clsx(styles.category, styles[`variant-${variant}`], styles.expandable, {\n [styles.expanded]: expanded,\n [styles.disabled]: disabled,\n [styles.highlighted]: highlighted,\n })}\n role=\"presentation\"\n data-testid={item.id}\n ref={ref}\n onClick={onClick}\n onMouseEnter={onHover}\n onTouchStart={onHover}\n >\n {content}\n </li>\n );\n};\n\nexport default ExpandableCategoryElement;\n"]}
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
2
  import { CategoryProps } from '../interfaces';
3
- declare const MobileExpandableCategoryElement: ({ item, onItemActivate, onGroupToggle, targetItem, isHighlighted, isKeyboardHighlight, isExpanded, lastInDropdown, highlightItem, disabled, variant, }: CategoryProps) => JSX.Element;
3
+ declare const MobileExpandableCategoryElement: ({ item, onItemActivate, onGroupToggle, targetItem, isHighlighted, isKeyboardHighlight, isExpanded, lastInDropdown, highlightItem, disabled, variant, position, }: CategoryProps) => JSX.Element;
4
4
  export default MobileExpandableCategoryElement;
5
5
  //# sourceMappingURL=mobile-expandable-category-element.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mobile-expandable-category-element.d.ts","sourceRoot":"","sources":["../../../../src/button-dropdown/category-elements/mobile-expandable-category-element.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAQ9C,QAAA,MAAM,+BAA+B,2JAYlC,aAAa,gBAwGf,CAAC;AAEF,eAAe,+BAA+B,CAAC"}
1
+ {"version":3,"file":"mobile-expandable-category-element.d.ts","sourceRoot":"","sources":["../../../../src/button-dropdown/category-elements/mobile-expandable-category-element.tsx"],"names":[],"mappings":";AAUA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAQ9C,QAAA,MAAM,+BAA+B,qKAalC,aAAa,gBAsHf,CAAC;AAEF,eAAe,+BAA+B,CAAC"}
@@ -2,6 +2,7 @@
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
  import React, { useEffect } from 'react';
4
4
  import clsx from 'clsx';
5
+ import { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';
5
6
  import InternalIcon from '../../icon/internal';
6
7
  import useHiddenDescription from '../../internal/hooks/use-hidden-description';
7
8
  import ItemsList from '../items-list';
@@ -9,7 +10,7 @@ import MobileExpandableGroup from '../mobile-expandable-group/mobile-expandable-
9
10
  import Tooltip from '../tooltip.js';
10
11
  import { getMenuItemProps } from '../utils/menu-item.js';
11
12
  import styles from './styles.css.js';
12
- const MobileExpandableCategoryElement = ({ item, onItemActivate, onGroupToggle, targetItem, isHighlighted, isKeyboardHighlight, isExpanded, lastInDropdown, highlightItem, disabled, variant, }) => {
13
+ const MobileExpandableCategoryElement = ({ item, onItemActivate, onGroupToggle, targetItem, isHighlighted, isKeyboardHighlight, isExpanded, lastInDropdown, highlightItem, disabled, variant, position, }) => {
13
14
  const highlighted = isHighlighted(item);
14
15
  const expanded = isExpanded(item);
15
16
  const isKeyboardHighlighted = isKeyboardHighlight(item);
@@ -39,7 +40,17 @@ const MobileExpandableCategoryElement = ({ item, onItemActivate, onGroupToggle,
39
40
  // We are using the roving tabindex technique to manage the focus state of the dropdown.
40
41
  // The current element will always have tabindex=0 which means that it can be tabbed to,
41
42
  // while all other items have tabindex=-1 so we can focus them when necessary.
42
- tabIndex: highlighted ? 0 : -1, ref: triggerRef }, getMenuItemProps({ parent: true, disabled, expanded }), (isDisabledWithReason ? targetProps : {})),
43
+ tabIndex: highlighted ? 0 : -1, ref: triggerRef }, getMenuItemProps({ parent: true, disabled, expanded }), (isDisabledWithReason ? targetProps : {}), getAnalyticsMetadataAttribute(disabled
44
+ ? {}
45
+ : {
46
+ action: 'expand',
47
+ detail: {
48
+ position: position || '0',
49
+ label: '',
50
+ id: item.id || '',
51
+ expanded: `${!expanded}`,
52
+ },
53
+ })),
43
54
  item.text,
44
55
  React.createElement("span", { className: clsx(styles['expand-icon'], {
45
56
  [styles['expand-icon-up']]: expanded,
@@ -56,7 +67,7 @@ const MobileExpandableCategoryElement = ({ item, onItemActivate, onGroupToggle,
56
67
  }
57
68
  else {
58
69
  content = (React.createElement(MobileExpandableGroup, { open: expanded, trigger: trigger }, item.items && expanded && (React.createElement("ul", { role: "menu", "aria-label": item.text, className: styles['items-list-container'] },
59
- React.createElement(ItemsList, { items: item.items, onItemActivate: onItemActivate, onGroupToggle: onGroupToggle, targetItem: targetItem, isHighlighted: isHighlighted, isKeyboardHighlight: isKeyboardHighlight, isExpanded: isExpanded, lastInDropdown: lastInDropdown, highlightItem: highlightItem, hasCategoryHeader: true, variant: variant })))));
70
+ React.createElement(ItemsList, { items: item.items, onItemActivate: onItemActivate, onGroupToggle: onGroupToggle, targetItem: targetItem, isHighlighted: isHighlighted, isKeyboardHighlight: isKeyboardHighlight, isExpanded: isExpanded, lastInDropdown: lastInDropdown, highlightItem: highlightItem, hasCategoryHeader: true, variant: variant, position: position })))));
60
71
  }
61
72
  return (React.createElement("li", { className: clsx(styles.category, styles[`variant-${variant}`], styles.expandable, {
62
73
  [styles.expanded]: expanded,
@@ -1 +1 @@
1
- {"version":3,"file":"mobile-expandable-category-element.js","sourceRoot":"","sources":["../../../../src/button-dropdown/category-elements/mobile-expandable-category-element.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useEffect } from 'react';\nimport clsx from 'clsx';\n\nimport InternalIcon from '../../icon/internal';\nimport useHiddenDescription from '../../internal/hooks/use-hidden-description';\nimport { CategoryProps } from '../interfaces';\nimport ItemsList from '../items-list';\nimport MobileExpandableGroup from '../mobile-expandable-group/mobile-expandable-group';\nimport Tooltip from '../tooltip.js';\nimport { getMenuItemProps } from '../utils/menu-item.js';\n\nimport styles from './styles.css.js';\n\nconst MobileExpandableCategoryElement = ({\n item,\n onItemActivate,\n onGroupToggle,\n targetItem,\n isHighlighted,\n isKeyboardHighlight,\n isExpanded,\n lastInDropdown,\n highlightItem,\n disabled,\n variant,\n}: CategoryProps) => {\n const highlighted = isHighlighted(item);\n const expanded = isExpanded(item);\n const isKeyboardHighlighted = isKeyboardHighlight(item);\n const triggerRef = React.useRef<HTMLSpanElement>(null);\n\n useEffect(() => {\n if (triggerRef.current && highlighted && !expanded) {\n triggerRef.current.focus();\n }\n }, [expanded, highlighted]);\n\n const onClick = (e: React.MouseEvent) => {\n if (!disabled) {\n e.preventDefault();\n onGroupToggle(item, e);\n }\n };\n\n const onHover = () => {\n highlightItem(item);\n };\n\n const isDisabledWithReason = !!item.disabledReason && item.disabled;\n const { targetProps, descriptionEl } = useHiddenDescription(item.disabledReason);\n const trigger = item.text && (\n <span\n className={clsx(styles.header, styles['expandable-header'], styles[`variant-${variant}`], {\n [styles.highlighted]: highlighted,\n [styles['rolled-down']]: expanded,\n [styles.disabled]: disabled,\n [styles['is-focused']]: isKeyboardHighlighted,\n })}\n // We are using the roving tabindex technique to manage the focus state of the dropdown.\n // The current element will always have tabindex=0 which means that it can be tabbed to,\n // while all other items have tabindex=-1 so we can focus them when necessary.\n tabIndex={highlighted ? 0 : -1}\n ref={triggerRef}\n {...getMenuItemProps({ parent: true, disabled, expanded })}\n {...(isDisabledWithReason ? targetProps : {})}\n >\n {item.text}\n <span\n className={clsx(styles['expand-icon'], {\n [styles['expand-icon-up']]: expanded,\n })}\n >\n <InternalIcon name=\"caret-down-filled\" />\n </span>\n </span>\n );\n\n let content: React.ReactNode;\n\n if (isDisabledWithReason) {\n content = (\n <>\n {descriptionEl}\n <Tooltip content={item.disabledReason}>{trigger}</Tooltip>\n </>\n );\n } else if (disabled) {\n content = trigger;\n } else {\n content = (\n <MobileExpandableGroup open={expanded} trigger={trigger}>\n {item.items && expanded && (\n <ul role=\"menu\" aria-label={item.text} className={styles['items-list-container']}>\n <ItemsList\n items={item.items}\n onItemActivate={onItemActivate}\n onGroupToggle={onGroupToggle}\n targetItem={targetItem}\n isHighlighted={isHighlighted}\n isKeyboardHighlight={isKeyboardHighlight}\n isExpanded={isExpanded}\n lastInDropdown={lastInDropdown}\n highlightItem={highlightItem}\n hasCategoryHeader={true}\n variant={variant}\n />\n </ul>\n )}\n </MobileExpandableGroup>\n );\n }\n\n return (\n <li\n className={clsx(styles.category, styles[`variant-${variant}`], styles.expandable, {\n [styles.expanded]: expanded,\n [styles.disabled]: disabled,\n [styles.highlighted]: highlighted || expanded,\n [styles.expandable]: true,\n })}\n role=\"presentation\"\n onClick={onClick}\n onMouseEnter={onHover}\n onTouchStart={onHover}\n data-testid={item.id}\n >\n {content}\n </li>\n );\n};\n\nexport default MobileExpandableCategoryElement;\n"]}
1
+ {"version":3,"file":"mobile-expandable-category-element.js","sourceRoot":"","sources":["../../../../src/button-dropdown/category-elements/mobile-expandable-category-element.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useEffect } from 'react';\nimport clsx from 'clsx';\n\nimport { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport InternalIcon from '../../icon/internal';\nimport useHiddenDescription from '../../internal/hooks/use-hidden-description';\nimport { GeneratedAnalyticsMetadataButtonDropdownExpand } from '../analytics-metadata/interfaces.js';\nimport { CategoryProps } from '../interfaces';\nimport ItemsList from '../items-list';\nimport MobileExpandableGroup from '../mobile-expandable-group/mobile-expandable-group';\nimport Tooltip from '../tooltip.js';\nimport { getMenuItemProps } from '../utils/menu-item.js';\n\nimport styles from './styles.css.js';\n\nconst MobileExpandableCategoryElement = ({\n item,\n onItemActivate,\n onGroupToggle,\n targetItem,\n isHighlighted,\n isKeyboardHighlight,\n isExpanded,\n lastInDropdown,\n highlightItem,\n disabled,\n variant,\n position,\n}: CategoryProps) => {\n const highlighted = isHighlighted(item);\n const expanded = isExpanded(item);\n const isKeyboardHighlighted = isKeyboardHighlight(item);\n const triggerRef = React.useRef<HTMLSpanElement>(null);\n\n useEffect(() => {\n if (triggerRef.current && highlighted && !expanded) {\n triggerRef.current.focus();\n }\n }, [expanded, highlighted]);\n\n const onClick = (e: React.MouseEvent) => {\n if (!disabled) {\n e.preventDefault();\n onGroupToggle(item, e);\n }\n };\n\n const onHover = () => {\n highlightItem(item);\n };\n\n const isDisabledWithReason = !!item.disabledReason && item.disabled;\n const { targetProps, descriptionEl } = useHiddenDescription(item.disabledReason);\n const trigger = item.text && (\n <span\n className={clsx(styles.header, styles['expandable-header'], styles[`variant-${variant}`], {\n [styles.highlighted]: highlighted,\n [styles['rolled-down']]: expanded,\n [styles.disabled]: disabled,\n [styles['is-focused']]: isKeyboardHighlighted,\n })}\n // We are using the roving tabindex technique to manage the focus state of the dropdown.\n // The current element will always have tabindex=0 which means that it can be tabbed to,\n // while all other items have tabindex=-1 so we can focus them when necessary.\n tabIndex={highlighted ? 0 : -1}\n ref={triggerRef}\n {...getMenuItemProps({ parent: true, disabled, expanded })}\n {...(isDisabledWithReason ? targetProps : {})}\n {...getAnalyticsMetadataAttribute(\n disabled\n ? {}\n : ({\n action: 'expand',\n detail: {\n position: position || '0',\n label: '',\n id: item.id || '',\n expanded: `${!expanded}`,\n },\n } as GeneratedAnalyticsMetadataButtonDropdownExpand)\n )}\n >\n {item.text}\n <span\n className={clsx(styles['expand-icon'], {\n [styles['expand-icon-up']]: expanded,\n })}\n >\n <InternalIcon name=\"caret-down-filled\" />\n </span>\n </span>\n );\n\n let content: React.ReactNode;\n\n if (isDisabledWithReason) {\n content = (\n <>\n {descriptionEl}\n <Tooltip content={item.disabledReason}>{trigger}</Tooltip>\n </>\n );\n } else if (disabled) {\n content = trigger;\n } else {\n content = (\n <MobileExpandableGroup open={expanded} trigger={trigger}>\n {item.items && expanded && (\n <ul role=\"menu\" aria-label={item.text} className={styles['items-list-container']}>\n <ItemsList\n items={item.items}\n onItemActivate={onItemActivate}\n onGroupToggle={onGroupToggle}\n targetItem={targetItem}\n isHighlighted={isHighlighted}\n isKeyboardHighlight={isKeyboardHighlight}\n isExpanded={isExpanded}\n lastInDropdown={lastInDropdown}\n highlightItem={highlightItem}\n hasCategoryHeader={true}\n variant={variant}\n position={position}\n />\n </ul>\n )}\n </MobileExpandableGroup>\n );\n }\n\n return (\n <li\n className={clsx(styles.category, styles[`variant-${variant}`], styles.expandable, {\n [styles.expanded]: expanded,\n [styles.disabled]: disabled,\n [styles.highlighted]: highlighted || expanded,\n [styles.expandable]: true,\n })}\n role=\"presentation\"\n onClick={onClick}\n onMouseEnter={onHover}\n onTouchStart={onHover}\n data-testid={item.id}\n >\n {content}\n </li>\n );\n};\n\nexport default MobileExpandableCategoryElement;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/button-dropdown/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAInD,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAE/B,QAAA,MAAM,cAAc,qGAkDnB,CAAC;AAGF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/button-dropdown/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAMnD,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAE/B,QAAA,MAAM,cAAc,qGA4DnB,CAAC;AAGF,eAAe,cAAc,CAAC"}
@@ -2,11 +2,13 @@ import { __rest } from "tslib";
2
2
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
3
  // SPDX-License-Identifier: Apache-2.0
4
4
  import React from 'react';
5
+ import { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';
5
6
  import { getBaseProps } from '../internal/base-component';
6
7
  import useBaseComponent from '../internal/hooks/use-base-component';
7
8
  import { applyDisplayName } from '../internal/utils/apply-display-name';
8
9
  import InternalButtonDropdown from './internal';
9
10
  import { hasCheckboxItems } from './utils/utils';
11
+ import analyticsSelectors from './analytics-metadata/styles.css.js';
10
12
  const ButtonDropdown = React.forwardRef((_a, ref) => {
11
13
  var { items, variant = 'normal', loading = false, loadingText, disabled = false, disabledReason, expandableGroups = false, expandToViewport = false, ariaLabel, children, onItemClick, onItemFollow, mainAction } = _a, props = __rest(_a, ["items", "variant", "loading", "loadingText", "disabled", "disabledReason", "expandableGroups", "expandToViewport", "ariaLabel", "children", "onItemClick", "onItemFollow", "mainAction"]);
12
14
  const baseComponentProps = useBaseComponent('ButtonDropdown', {
@@ -17,7 +19,14 @@ const ButtonDropdown = React.forwardRef((_a, ref) => {
17
19
  },
18
20
  });
19
21
  const baseProps = getBaseProps(props);
20
- return (React.createElement(InternalButtonDropdown, Object.assign({}, baseProps, baseComponentProps, { ref: ref, items: items, variant: variant, loading: loading, loadingText: loadingText, disabled: disabled, disabledReason: disabledReason, expandableGroups: expandableGroups, expandToViewport: expandToViewport, ariaLabel: ariaLabel, onItemClick: onItemClick, onItemFollow: onItemFollow, mainAction: mainAction }), children));
22
+ const analyticsComponentMetadata = {
23
+ name: 'awsui.ButtonDropdown',
24
+ label: `.${analyticsSelectors['trigger-label']}`,
25
+ properties: { variant, disabled: `${disabled}` },
26
+ };
27
+ return (React.createElement(InternalButtonDropdown, Object.assign({}, baseProps, baseComponentProps, { ref: ref, items: items, variant: variant, loading: loading, loadingText: loadingText, disabled: disabled, disabledReason: disabledReason, expandableGroups: expandableGroups, expandToViewport: expandToViewport, ariaLabel: ariaLabel, onItemClick: onItemClick, onItemFollow: onItemFollow, mainAction: mainAction }, getAnalyticsMetadataAttribute({
28
+ component: analyticsComponentMetadata,
29
+ })), children));
21
30
  });
22
31
  applyDisplayName(ButtonDropdown, 'ButtonDropdown');
23
32
  export default ButtonDropdown;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/button-dropdown/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,sBAAsB,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAIjD,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CACrC,CACE,EAesB,EACtB,GAAuC,EACvC,EAAE;QAjBF,EACE,KAAK,EACL,OAAO,GAAG,QAAQ,EAClB,OAAO,GAAG,KAAK,EACf,WAAW,EACX,QAAQ,GAAG,KAAK,EAChB,cAAc,EACd,gBAAgB,GAAG,KAAK,EACxB,gBAAgB,GAAG,KAAK,EACxB,SAAS,EACT,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,UAAU,OAEU,EADjB,KAAK,cAdV,0LAeC,CADS;IAIV,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,gBAAgB,EAAE;QAC5D,KAAK,EAAE,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,OAAO,EAAE;QACtD,QAAQ,EAAE;YACR,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,aAAa,EAAE,gBAAgB,CAAC,KAAK,CAAC;SACvC;KACF,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACtC,OAAO,CACL,oBAAC,sBAAsB,oBACjB,SAAS,EACT,kBAAkB,IACtB,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,EAC9B,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,UAAU,KAErB,QAAQ,CACc,CAC1B,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,gBAAgB,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;AACnD,eAAe,cAAc,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 { ButtonDropdownProps } from './interfaces';\nimport InternalButtonDropdown from './internal';\nimport { hasCheckboxItems } from './utils/utils';\n\nexport { ButtonDropdownProps };\n\nconst ButtonDropdown = React.forwardRef(\n (\n {\n items,\n variant = 'normal',\n loading = false,\n loadingText,\n disabled = false,\n disabledReason,\n expandableGroups = false,\n expandToViewport = false,\n ariaLabel,\n children,\n onItemClick,\n onItemFollow,\n mainAction,\n ...props\n }: ButtonDropdownProps,\n ref: React.Ref<ButtonDropdownProps.Ref>\n ) => {\n const baseComponentProps = useBaseComponent('ButtonDropdown', {\n props: { expandToViewport, expandableGroups, variant },\n metadata: {\n mainAction: !!mainAction,\n checkboxItems: hasCheckboxItems(items),\n },\n });\n const baseProps = getBaseProps(props);\n return (\n <InternalButtonDropdown\n {...baseProps}\n {...baseComponentProps}\n ref={ref}\n items={items}\n variant={variant}\n loading={loading}\n loadingText={loadingText}\n disabled={disabled}\n disabledReason={disabledReason}\n expandableGroups={expandableGroups}\n expandToViewport={expandToViewport}\n ariaLabel={ariaLabel}\n onItemClick={onItemClick}\n onItemFollow={onItemFollow}\n mainAction={mainAction}\n >\n {children}\n </InternalButtonDropdown>\n );\n }\n);\n\napplyDisplayName(ButtonDropdown, 'ButtonDropdown');\nexport default ButtonDropdown;\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/button-dropdown/index.tsx"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,6BAA6B,EAAE,MAAM,kEAAkE,CAAC;AAEjH,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,gBAAgB,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAGxE,OAAO,sBAAsB,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,kBAAkB,MAAM,oCAAoC,CAAC;AAIpE,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CACrC,CACE,EAesB,EACtB,GAAuC,EACvC,EAAE;QAjBF,EACE,KAAK,EACL,OAAO,GAAG,QAAQ,EAClB,OAAO,GAAG,KAAK,EACf,WAAW,EACX,QAAQ,GAAG,KAAK,EAChB,cAAc,EACd,gBAAgB,GAAG,KAAK,EACxB,gBAAgB,GAAG,KAAK,EACxB,SAAS,EACT,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,UAAU,OAEU,EADjB,KAAK,cAdV,0LAeC,CADS;IAIV,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,gBAAgB,EAAE;QAC5D,KAAK,EAAE,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,OAAO,EAAE;QACtD,QAAQ,EAAE;YACR,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,aAAa,EAAE,gBAAgB,CAAC,KAAK,CAAC;SACvC;KACF,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAEtC,MAAM,0BAA0B,GAAsD;QACpF,IAAI,EAAE,sBAAsB;QAC5B,KAAK,EAAE,IAAI,kBAAkB,CAAC,eAAe,CAAC,EAAE;QAChD,UAAU,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE,EAAE;KACjD,CAAC;IAEF,OAAO,CACL,oBAAC,sBAAsB,oBACjB,SAAS,EACT,kBAAkB,IACtB,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,EAC9B,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,UAAU,IAClB,6BAA6B,CAAC;QAChC,SAAS,EAAE,0BAA0B;KACtC,CAAC,GAED,QAAQ,CACc,CAC1B,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,gBAAgB,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;AACnD,eAAe,cAAc,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 { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport { getBaseProps } from '../internal/base-component';\nimport useBaseComponent from '../internal/hooks/use-base-component';\nimport { applyDisplayName } from '../internal/utils/apply-display-name';\nimport { GeneratedAnalyticsMetadataButtonDropdownComponent } from './analytics-metadata/interfaces';\nimport { ButtonDropdownProps } from './interfaces';\nimport InternalButtonDropdown from './internal';\nimport { hasCheckboxItems } from './utils/utils';\n\nimport analyticsSelectors from './analytics-metadata/styles.css.js';\n\nexport { ButtonDropdownProps };\n\nconst ButtonDropdown = React.forwardRef(\n (\n {\n items,\n variant = 'normal',\n loading = false,\n loadingText,\n disabled = false,\n disabledReason,\n expandableGroups = false,\n expandToViewport = false,\n ariaLabel,\n children,\n onItemClick,\n onItemFollow,\n mainAction,\n ...props\n }: ButtonDropdownProps,\n ref: React.Ref<ButtonDropdownProps.Ref>\n ) => {\n const baseComponentProps = useBaseComponent('ButtonDropdown', {\n props: { expandToViewport, expandableGroups, variant },\n metadata: {\n mainAction: !!mainAction,\n checkboxItems: hasCheckboxItems(items),\n },\n });\n const baseProps = getBaseProps(props);\n\n const analyticsComponentMetadata: GeneratedAnalyticsMetadataButtonDropdownComponent = {\n name: 'awsui.ButtonDropdown',\n label: `.${analyticsSelectors['trigger-label']}`,\n properties: { variant, disabled: `${disabled}` },\n };\n\n return (\n <InternalButtonDropdown\n {...baseProps}\n {...baseComponentProps}\n ref={ref}\n items={items}\n variant={variant}\n loading={loading}\n loadingText={loadingText}\n disabled={disabled}\n disabledReason={disabledReason}\n expandableGroups={expandableGroups}\n expandToViewport={expandToViewport}\n ariaLabel={ariaLabel}\n onItemClick={onItemClick}\n onItemFollow={onItemFollow}\n mainAction={mainAction}\n {...getAnalyticsMetadataAttribute({\n component: analyticsComponentMetadata,\n })}\n >\n {children}\n </InternalButtonDropdown>\n );\n }\n);\n\napplyDisplayName(ButtonDropdown, 'ButtonDropdown');\nexport default ButtonDropdown;\n"]}