@cloudscape-design/components 3.0.1365 → 3.0.1367

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 (500) hide show
  1. package/action-card/internal.d.ts.map +1 -1
  2. package/action-card/internal.js +5 -2
  3. package/action-card/internal.js.map +1 -1
  4. package/action-card/styles.css.js +17 -17
  5. package/action-card/styles.scoped.css +117 -117
  6. package/action-card/styles.selectors.js +17 -17
  7. package/alert/actions-wrapper/styles.css.js +1 -1
  8. package/alert/actions-wrapper/styles.scoped.css +3 -3
  9. package/alert/actions-wrapper/styles.selectors.js +1 -1
  10. package/alert/styles.css.js +27 -27
  11. package/alert/styles.scoped.css +67 -67
  12. package/alert/styles.selectors.js +27 -27
  13. package/anchor-navigation/styles.css.js +8 -8
  14. package/anchor-navigation/styles.scoped.css +22 -22
  15. package/anchor-navigation/styles.selectors.js +8 -8
  16. package/annotation-context/annotation/styles.css.js +13 -13
  17. package/annotation-context/annotation/styles.scoped.css +23 -23
  18. package/annotation-context/annotation/styles.selectors.js +13 -13
  19. package/app-layout/content-wrapper/styles.css.js +3 -3
  20. package/app-layout/content-wrapper/styles.scoped.css +10 -10
  21. package/app-layout/content-wrapper/styles.selectors.js +3 -3
  22. package/app-layout/drawer/styles.css.js +14 -14
  23. package/app-layout/drawer/styles.scoped.css +25 -25
  24. package/app-layout/drawer/styles.selectors.js +14 -14
  25. package/app-layout/mobile-toolbar/styles.css.js +8 -8
  26. package/app-layout/mobile-toolbar/styles.scoped.css +13 -13
  27. package/app-layout/mobile-toolbar/styles.selectors.js +8 -8
  28. package/app-layout/notifications/styles.css.js +3 -3
  29. package/app-layout/notifications/styles.scoped.css +7 -7
  30. package/app-layout/notifications/styles.selectors.js +3 -3
  31. package/app-layout/resize/styles.css.js +5 -5
  32. package/app-layout/resize/styles.scoped.css +14 -14
  33. package/app-layout/resize/styles.selectors.js +5 -5
  34. package/app-layout/styles.css.js +12 -12
  35. package/app-layout/styles.scoped.css +18 -18
  36. package/app-layout/styles.selectors.js +12 -12
  37. package/app-layout/toggles/index.d.ts.map +1 -1
  38. package/app-layout/toggles/index.js +1 -1
  39. package/app-layout/toggles/index.js.map +1 -1
  40. package/app-layout/toggles/styles.css.js +2 -2
  41. package/app-layout/toggles/styles.scoped.css +15 -15
  42. package/app-layout/toggles/styles.selectors.js +2 -2
  43. package/app-layout/visual-refresh/styles.css.js +86 -86
  44. package/app-layout/visual-refresh/styles.scoped.css +288 -288
  45. package/app-layout/visual-refresh/styles.selectors.js +86 -86
  46. package/app-layout/visual-refresh/trigger-button.d.ts.map +1 -1
  47. package/app-layout/visual-refresh/trigger-button.js +1 -1
  48. package/app-layout/visual-refresh/trigger-button.js.map +1 -1
  49. package/app-layout/visual-refresh-toolbar/drawer/styles.css.js +32 -32
  50. package/app-layout/visual-refresh-toolbar/drawer/styles.scoped.css +112 -112
  51. package/app-layout/visual-refresh-toolbar/drawer/styles.selectors.js +32 -32
  52. package/app-layout/visual-refresh-toolbar/navigation/styles.css.js +6 -6
  53. package/app-layout/visual-refresh-toolbar/navigation/styles.scoped.css +15 -15
  54. package/app-layout/visual-refresh-toolbar/navigation/styles.selectors.js +6 -6
  55. package/app-layout/visual-refresh-toolbar/notifications/styles.css.js +3 -3
  56. package/app-layout/visual-refresh-toolbar/notifications/styles.scoped.css +4 -4
  57. package/app-layout/visual-refresh-toolbar/notifications/styles.selectors.js +3 -3
  58. package/app-layout/visual-refresh-toolbar/skeleton/styles.css.js +30 -30
  59. package/app-layout/visual-refresh-toolbar/skeleton/styles.scoped.css +74 -74
  60. package/app-layout/visual-refresh-toolbar/skeleton/styles.selectors.js +30 -30
  61. package/app-layout/visual-refresh-toolbar/toolbar/styles.css.js +14 -14
  62. package/app-layout/visual-refresh-toolbar/toolbar/styles.scoped.css +44 -44
  63. package/app-layout/visual-refresh-toolbar/toolbar/styles.selectors.js +14 -14
  64. package/app-layout/visual-refresh-toolbar/toolbar/trigger-button/index.d.ts.map +1 -1
  65. package/app-layout/visual-refresh-toolbar/toolbar/trigger-button/index.js +1 -1
  66. package/app-layout/visual-refresh-toolbar/toolbar/trigger-button/index.js.map +1 -1
  67. package/area-chart/styles.css.js +6 -6
  68. package/area-chart/styles.scoped.css +11 -11
  69. package/area-chart/styles.selectors.js +6 -6
  70. package/attribute-editor/styles.css.js +15 -15
  71. package/attribute-editor/styles.scoped.css +32 -32
  72. package/attribute-editor/styles.selectors.js +15 -15
  73. package/badge/styles.css.js +10 -10
  74. package/badge/styles.scoped.css +11 -11
  75. package/badge/styles.selectors.js +10 -10
  76. package/box/styles.css.js +220 -220
  77. package/box/styles.scoped.css +433 -433
  78. package/box/styles.selectors.js +220 -220
  79. package/breadcrumb-group/all-items-dropdown.js +2 -2
  80. package/breadcrumb-group/all-items-dropdown.js.map +1 -1
  81. package/breadcrumb-group/item/styles.css.js +7 -7
  82. package/breadcrumb-group/item/styles.scoped.css +30 -30
  83. package/breadcrumb-group/item/styles.selectors.js +7 -7
  84. package/breadcrumb-group/styles.css.js +14 -14
  85. package/breadcrumb-group/styles.scoped.css +32 -32
  86. package/breadcrumb-group/styles.selectors.js +14 -14
  87. package/button/internal.d.ts.map +1 -1
  88. package/button/internal.js +2 -0
  89. package/button/internal.js.map +1 -1
  90. package/button/styles.css.js +23 -23
  91. package/button/styles.scoped.css +295 -295
  92. package/button/styles.selectors.js +23 -23
  93. package/button-dropdown/category-elements/expandable-category-element.d.ts.map +1 -1
  94. package/button-dropdown/category-elements/expandable-category-element.js +2 -2
  95. package/button-dropdown/category-elements/expandable-category-element.js.map +1 -1
  96. package/button-dropdown/category-elements/styles.css.js +18 -18
  97. package/button-dropdown/category-elements/styles.scoped.css +37 -37
  98. package/button-dropdown/category-elements/styles.selectors.js +18 -18
  99. package/button-dropdown/filter.d.ts +1 -1
  100. package/button-dropdown/filter.d.ts.map +1 -1
  101. package/button-dropdown/internal.d.ts.map +1 -1
  102. package/button-dropdown/internal.js +9 -3
  103. package/button-dropdown/internal.js.map +1 -1
  104. package/button-dropdown/item-element/index.d.ts.map +1 -1
  105. package/button-dropdown/item-element/index.js +2 -2
  106. package/button-dropdown/item-element/index.js.map +1 -1
  107. package/button-dropdown/item-element/styles.css.js +21 -21
  108. package/button-dropdown/item-element/styles.scoped.css +45 -45
  109. package/button-dropdown/item-element/styles.selectors.js +21 -21
  110. package/button-dropdown/styles.css.js +23 -23
  111. package/button-dropdown/styles.scoped.css +40 -40
  112. package/button-dropdown/styles.selectors.js +23 -23
  113. package/button-dropdown/utils/use-button-dropdown.d.ts +5 -2
  114. package/button-dropdown/utils/use-button-dropdown.d.ts.map +1 -1
  115. package/button-dropdown/utils/use-button-dropdown.js +14 -2
  116. package/button-dropdown/utils/use-button-dropdown.js.map +1 -1
  117. package/button-group/styles.css.js +4 -4
  118. package/button-group/styles.scoped.css +6 -6
  119. package/button-group/styles.selectors.js +4 -4
  120. package/calendar/styles.css.js +21 -21
  121. package/calendar/styles.scoped.css +62 -62
  122. package/calendar/styles.selectors.js +21 -21
  123. package/cards/styles.css.js +39 -38
  124. package/cards/styles.scoped.css +54 -51
  125. package/cards/styles.selectors.js +39 -38
  126. package/checkbox/styles.css.js +3 -3
  127. package/checkbox/styles.scoped.css +16 -16
  128. package/checkbox/styles.selectors.js +3 -3
  129. package/code-editor/resizable-box/styles.css.js +4 -4
  130. package/code-editor/resizable-box/styles.scoped.css +9 -9
  131. package/code-editor/resizable-box/styles.selectors.js +4 -4
  132. package/code-editor/styles.css.js +33 -33
  133. package/code-editor/styles.scoped.css +159 -159
  134. package/code-editor/styles.selectors.js +33 -33
  135. package/code-editor/tab-button.d.ts.map +1 -1
  136. package/code-editor/tab-button.js +1 -1
  137. package/code-editor/tab-button.js.map +1 -1
  138. package/collection-preferences/styles.css.js +38 -38
  139. package/collection-preferences/styles.scoped.css +52 -52
  140. package/collection-preferences/styles.selectors.js +38 -38
  141. package/column-layout/flexible-column-layout/styles.css.js +5 -5
  142. package/column-layout/flexible-column-layout/styles.scoped.css +12 -12
  143. package/column-layout/flexible-column-layout/styles.selectors.js +5 -5
  144. package/column-layout/styles.css.js +13 -13
  145. package/column-layout/styles.scoped.css +51 -51
  146. package/column-layout/styles.selectors.js +13 -13
  147. package/container/styles.css.js +33 -33
  148. package/container/styles.scoped.css +73 -72
  149. package/container/styles.selectors.js +33 -33
  150. package/content-layout/styles.css.js +14 -14
  151. package/content-layout/styles.scoped.css +30 -30
  152. package/content-layout/styles.selectors.js +14 -14
  153. package/copy-to-clipboard/styles.css.js +5 -5
  154. package/copy-to-clipboard/styles.scoped.css +7 -7
  155. package/copy-to-clipboard/styles.selectors.js +5 -5
  156. package/date-picker/styles.css.js +7 -7
  157. package/date-picker/styles.scoped.css +10 -10
  158. package/date-picker/styles.selectors.js +7 -7
  159. package/date-range-picker/calendar/grids/styles.css.js +30 -30
  160. package/date-range-picker/calendar/grids/styles.scoped.css +69 -69
  161. package/date-range-picker/calendar/grids/styles.selectors.js +30 -30
  162. package/date-range-picker/relative-range/styles.css.js +6 -6
  163. package/date-range-picker/relative-range/styles.scoped.css +13 -13
  164. package/date-range-picker/relative-range/styles.selectors.js +6 -6
  165. package/date-range-picker/styles.css.js +23 -23
  166. package/date-range-picker/styles.scoped.css +46 -46
  167. package/date-range-picker/styles.selectors.js +23 -23
  168. package/divider/styles.css.js +6 -6
  169. package/divider/styles.scoped.css +8 -8
  170. package/divider/styles.selectors.js +6 -6
  171. package/drawer/styles.css.js +29 -29
  172. package/drawer/styles.scoped.css +47 -47
  173. package/drawer/styles.selectors.js +29 -29
  174. package/dropdown/styles.css.js +20 -20
  175. package/dropdown/styles.scoped.css +54 -54
  176. package/dropdown/styles.selectors.js +20 -20
  177. package/expandable-section/expandable-section-header.d.ts.map +1 -1
  178. package/expandable-section/expandable-section-header.js +13 -7
  179. package/expandable-section/expandable-section-header.js.map +1 -1
  180. package/expandable-section/styles.css.js +43 -43
  181. package/expandable-section/styles.scoped.css +129 -129
  182. package/expandable-section/styles.selectors.js +43 -43
  183. package/file-dropzone/styles.css.js +3 -3
  184. package/file-dropzone/styles.scoped.css +6 -6
  185. package/file-dropzone/styles.selectors.js +3 -3
  186. package/file-input/styles.css.js +5 -5
  187. package/file-input/styles.scoped.css +18 -18
  188. package/file-input/styles.selectors.js +5 -5
  189. package/file-token-group/styles.css.js +23 -23
  190. package/file-token-group/styles.scoped.css +52 -52
  191. package/file-token-group/styles.selectors.js +23 -23
  192. package/file-upload/styles.css.js +2 -2
  193. package/file-upload/styles.scoped.css +4 -4
  194. package/file-upload/styles.selectors.js +2 -2
  195. package/flashbar/collapsible-flashbar.d.ts.map +1 -1
  196. package/flashbar/collapsible-flashbar.js +3 -3
  197. package/flashbar/collapsible-flashbar.js.map +1 -1
  198. package/flashbar/styles.css.js +50 -50
  199. package/flashbar/styles.scoped.css +249 -249
  200. package/flashbar/styles.selectors.js +50 -50
  201. package/form/styles.css.js +8 -8
  202. package/form/styles.scoped.css +16 -16
  203. package/form/styles.selectors.js +8 -8
  204. package/form-field/styles.css.js +24 -24
  205. package/form-field/styles.scoped.css +44 -44
  206. package/form-field/styles.selectors.js +24 -24
  207. package/grid/styles.css.js +53 -53
  208. package/grid/styles.scoped.css +58 -58
  209. package/grid/styles.selectors.js +53 -53
  210. package/header/styles.css.js +35 -35
  211. package/header/styles.scoped.css +83 -83
  212. package/header/styles.selectors.js +35 -35
  213. package/help-panel/styles.css.js +6 -6
  214. package/help-panel/styles.scoped.css +100 -100
  215. package/help-panel/styles.selectors.js +6 -6
  216. package/hotspot/styles.css.js +7 -7
  217. package/hotspot/styles.scoped.css +10 -10
  218. package/hotspot/styles.selectors.js +7 -7
  219. package/icon/styles.css.js +42 -42
  220. package/icon/styles.scoped.css +118 -118
  221. package/icon/styles.selectors.js +42 -42
  222. package/input/index.d.ts.map +1 -1
  223. package/input/index.js +3 -2
  224. package/input/index.js.map +1 -1
  225. package/input/interfaces.d.ts +6 -0
  226. package/input/interfaces.d.ts.map +1 -1
  227. package/input/interfaces.js.map +1 -1
  228. package/input/internal.d.ts +0 -1
  229. package/input/internal.d.ts.map +1 -1
  230. package/input/internal.js +26 -12
  231. package/input/internal.js.map +1 -1
  232. package/input/styles.css.js +29 -28
  233. package/input/styles.scoped.css +159 -156
  234. package/input/styles.selectors.js +29 -28
  235. package/internal/base-component/styles.scoped.css +2 -2
  236. package/internal/base-theme/styles.scoped.css +319 -319
  237. package/internal/components/abstract-switch/styles.css.js +13 -13
  238. package/internal/components/abstract-switch/styles.scoped.css +22 -22
  239. package/internal/components/abstract-switch/styles.selectors.js +13 -13
  240. package/internal/components/button-trigger/index.d.ts.map +1 -1
  241. package/internal/components/button-trigger/index.js +2 -2
  242. package/internal/components/button-trigger/index.js.map +1 -1
  243. package/internal/components/button-trigger/styles.css.js +14 -14
  244. package/internal/components/button-trigger/styles.scoped.css +43 -43
  245. package/internal/components/button-trigger/styles.selectors.js +14 -14
  246. package/internal/components/chart-legend/styles.css.js +6 -6
  247. package/internal/components/chart-legend/styles.scoped.css +16 -16
  248. package/internal/components/chart-legend/styles.selectors.js +6 -6
  249. package/internal/components/chart-popover/styles.css.js +3 -3
  250. package/internal/components/chart-popover/styles.scoped.css +6 -6
  251. package/internal/components/chart-popover/styles.selectors.js +3 -3
  252. package/internal/components/chart-series-details/styles.css.js +19 -19
  253. package/internal/components/chart-series-details/styles.scoped.css +39 -39
  254. package/internal/components/chart-series-details/styles.selectors.js +19 -19
  255. package/internal/components/chart-series-marker/styles.css.js +5 -5
  256. package/internal/components/chart-series-marker/styles.scoped.css +9 -9
  257. package/internal/components/chart-series-marker/styles.selectors.js +5 -5
  258. package/internal/components/checkbox-icon/styles.css.js +9 -9
  259. package/internal/components/checkbox-icon/styles.scoped.css +10 -10
  260. package/internal/components/checkbox-icon/styles.selectors.js +9 -9
  261. package/internal/components/drag-handle/button.d.ts.map +1 -1
  262. package/internal/components/drag-handle/button.js +3 -1
  263. package/internal/components/drag-handle/button.js.map +1 -1
  264. package/internal/components/drag-handle/styles.css.js +14 -14
  265. package/internal/components/drag-handle/styles.scoped.css +21 -21
  266. package/internal/components/drag-handle/styles.selectors.js +14 -14
  267. package/internal/components/drag-handle-wrapper/index.d.ts.map +1 -1
  268. package/internal/components/drag-handle-wrapper/index.js +2 -1
  269. package/internal/components/drag-handle-wrapper/index.js.map +1 -1
  270. package/internal/components/drag-handle-wrapper/styles.css.js +30 -30
  271. package/internal/components/drag-handle-wrapper/styles.scoped.css +84 -84
  272. package/internal/components/drag-handle-wrapper/styles.selectors.js +30 -30
  273. package/internal/components/dropdown-status/styles.css.js +2 -2
  274. package/internal/components/dropdown-status/styles.scoped.css +5 -5
  275. package/internal/components/dropdown-status/styles.selectors.js +2 -2
  276. package/internal/components/expand-toggle-button/index.d.ts.map +1 -1
  277. package/internal/components/expand-toggle-button/index.js +1 -1
  278. package/internal/components/expand-toggle-button/index.js.map +1 -1
  279. package/internal/components/expand-toggle-button/styles.css.js +4 -4
  280. package/internal/components/expand-toggle-button/styles.scoped.css +21 -21
  281. package/internal/components/expand-toggle-button/styles.selectors.js +4 -4
  282. package/internal/components/menu-dropdown/index.d.ts.map +1 -1
  283. package/internal/components/menu-dropdown/index.js +1 -1
  284. package/internal/components/menu-dropdown/index.js.map +1 -1
  285. package/internal/components/menu-dropdown/styles.css.js +7 -7
  286. package/internal/components/menu-dropdown/styles.scoped.css +18 -18
  287. package/internal/components/menu-dropdown/styles.selectors.js +7 -7
  288. package/internal/components/option/styles.css.js +17 -17
  289. package/internal/components/option/styles.scoped.css +34 -34
  290. package/internal/components/option/styles.selectors.js +17 -17
  291. package/internal/components/radio-button/styles.css.js +7 -7
  292. package/internal/components/radio-button/styles.scoped.css +24 -24
  293. package/internal/components/radio-button/styles.selectors.js +7 -7
  294. package/internal/components/selectable-item/styles.css.js +22 -22
  295. package/internal/components/selectable-item/styles.scoped.css +66 -66
  296. package/internal/components/selectable-item/styles.selectors.js +22 -22
  297. package/internal/components/sortable-area/styles.css.js +8 -8
  298. package/internal/components/sortable-area/styles.scoped.css +17 -17
  299. package/internal/components/sortable-area/styles.selectors.js +8 -8
  300. package/internal/components/structured-item/styles.css.js +7 -7
  301. package/internal/components/structured-item/styles.scoped.css +11 -11
  302. package/internal/components/structured-item/styles.selectors.js +7 -7
  303. package/internal/components/token-list/styles.css.js +10 -10
  304. package/internal/components/token-list/styles.scoped.css +33 -33
  305. package/internal/components/token-list/styles.selectors.js +10 -10
  306. package/internal/components/token-list/token-limit-toggle.d.ts.map +1 -1
  307. package/internal/components/token-list/token-limit-toggle.js +2 -2
  308. package/internal/components/token-list/token-limit-toggle.js.map +1 -1
  309. package/internal/environment.js +2 -2
  310. package/internal/environment.json +2 -2
  311. package/internal/generated/custom-css-properties/index.d.ts +1 -0
  312. package/internal/generated/custom-css-properties/index.d.ts.map +1 -1
  313. package/internal/generated/custom-css-properties/index.js +174 -173
  314. package/internal/generated/custom-css-properties/index.js.map +1 -1
  315. package/internal/generated/styles/tokens.js +200 -200
  316. package/internal/generated/theming/index.cjs +200 -200
  317. package/internal/generated/theming/index.js +200 -200
  318. package/internal/manifest.json +1 -1
  319. package/internal/utils/focus-visible.d.ts +14 -0
  320. package/internal/utils/focus-visible.d.ts.map +1 -0
  321. package/internal/utils/focus-visible.js +21 -0
  322. package/internal/utils/focus-visible.js.map +1 -0
  323. package/item-card/styles.css.js +14 -14
  324. package/item-card/styles.scoped.css +94 -94
  325. package/item-card/styles.selectors.js +14 -14
  326. package/key-value-pairs/styles.css.js +8 -8
  327. package/key-value-pairs/styles.scoped.css +14 -14
  328. package/key-value-pairs/styles.selectors.js +8 -8
  329. package/link/internal.d.ts.map +1 -1
  330. package/link/internal.js +2 -0
  331. package/link/internal.js.map +1 -1
  332. package/link/styles.css.js +21 -21
  333. package/link/styles.scoped.css +112 -112
  334. package/link/styles.selectors.js +21 -21
  335. package/list/styles.css.js +5 -5
  336. package/list/styles.scoped.css +9 -9
  337. package/list/styles.selectors.js +5 -5
  338. package/manifest.json +2 -2
  339. package/mixed-line-bar-chart/styles.css.js +11 -11
  340. package/mixed-line-bar-chart/styles.scoped.css +18 -18
  341. package/mixed-line-bar-chart/styles.selectors.js +11 -11
  342. package/modal/styles.css.js +31 -31
  343. package/modal/styles.scoped.css +65 -65
  344. package/modal/styles.selectors.js +31 -31
  345. package/multiselect/styles.css.js +5 -5
  346. package/multiselect/styles.scoped.css +6 -6
  347. package/multiselect/styles.selectors.js +5 -5
  348. package/package.json +1 -1
  349. package/pagination/internal.d.ts.map +1 -1
  350. package/pagination/internal.js +4 -4
  351. package/pagination/internal.js.map +1 -1
  352. package/pagination/styles.css.js +12 -12
  353. package/pagination/styles.scoped.css +36 -36
  354. package/pagination/styles.selectors.js +12 -12
  355. package/pie-chart/styles.css.js +27 -27
  356. package/pie-chart/styles.scoped.css +58 -58
  357. package/pie-chart/styles.selectors.js +27 -27
  358. package/popover/styles.css.js +58 -58
  359. package/popover/styles.scoped.css +102 -102
  360. package/popover/styles.selectors.js +58 -58
  361. package/progress-bar/styles.css.js +19 -19
  362. package/progress-bar/styles.scoped.css +64 -64
  363. package/progress-bar/styles.selectors.js +19 -19
  364. package/prompt-input/styles.css.js +26 -26
  365. package/prompt-input/styles.scoped.css +127 -127
  366. package/prompt-input/styles.selectors.js +26 -26
  367. package/property-filter/filtering-token/index.js +4 -4
  368. package/property-filter/filtering-token/index.js.map +1 -1
  369. package/property-filter/filtering-token/styles.css.js +18 -18
  370. package/property-filter/filtering-token/styles.scoped.css +54 -54
  371. package/property-filter/filtering-token/styles.selectors.js +18 -18
  372. package/property-filter/styles.css.js +39 -39
  373. package/property-filter/styles.scoped.css +75 -75
  374. package/property-filter/styles.selectors.js +39 -39
  375. package/radio-group/styles.css.js +5 -5
  376. package/radio-group/styles.scoped.css +10 -10
  377. package/radio-group/styles.selectors.js +5 -5
  378. package/s3-resource-selector/s3-in-context/styles.css.js +7 -7
  379. package/s3-resource-selector/s3-in-context/styles.scoped.css +13 -13
  380. package/s3-resource-selector/s3-in-context/styles.selectors.js +7 -7
  381. package/segmented-control/segment.d.ts.map +1 -1
  382. package/segmented-control/segment.js +1 -1
  383. package/segmented-control/segment.js.map +1 -1
  384. package/segmented-control/styles.css.js +16 -16
  385. package/segmented-control/styles.scoped.css +67 -67
  386. package/segmented-control/styles.selectors.js +16 -16
  387. package/select/parts/filter.d.ts +1 -1
  388. package/select/parts/filter.d.ts.map +1 -1
  389. package/select/parts/styles.css.js +21 -21
  390. package/select/parts/styles.scoped.css +38 -38
  391. package/select/parts/styles.selectors.js +21 -21
  392. package/side-navigation/parts.js +3 -3
  393. package/side-navigation/parts.js.map +1 -1
  394. package/side-navigation/styles.css.js +64 -64
  395. package/side-navigation/styles.scoped.css +162 -162
  396. package/side-navigation/styles.selectors.js +64 -64
  397. package/slider/styles.css.js +26 -26
  398. package/slider/styles.scoped.css +205 -205
  399. package/slider/styles.selectors.js +26 -26
  400. package/space-between/styles.css.js +23 -23
  401. package/space-between/styles.scoped.css +40 -40
  402. package/space-between/styles.selectors.js +23 -23
  403. package/spinner/styles.css.js +14 -14
  404. package/spinner/styles.scoped.css +55 -55
  405. package/spinner/styles.selectors.js +14 -14
  406. package/split-panel/styles.css.js +38 -38
  407. package/split-panel/styles.scoped.css +84 -84
  408. package/split-panel/styles.selectors.js +38 -38
  409. package/status-indicator/styles.css.js +25 -25
  410. package/status-indicator/styles.scoped.css +50 -50
  411. package/status-indicator/styles.selectors.js +25 -25
  412. package/steps/styles.css.js +17 -17
  413. package/steps/styles.scoped.css +51 -51
  414. package/steps/styles.selectors.js +17 -17
  415. package/table/body-cell/styles.css.js +48 -48
  416. package/table/body-cell/styles.scoped.css +816 -816
  417. package/table/body-cell/styles.selectors.js +48 -48
  418. package/table/header-cell/index.d.ts.map +1 -1
  419. package/table/header-cell/index.js +2 -1
  420. package/table/header-cell/index.js.map +1 -1
  421. package/table/header-cell/styles.css.js +38 -38
  422. package/table/header-cell/styles.scoped.css +156 -156
  423. package/table/header-cell/styles.selectors.js +38 -38
  424. package/table/resizer/styles.css.js +17 -17
  425. package/table/resizer/styles.scoped.css +39 -39
  426. package/table/resizer/styles.selectors.js +17 -17
  427. package/table/selection/styles.css.js +4 -4
  428. package/table/selection/styles.scoped.css +6 -6
  429. package/table/selection/styles.selectors.js +4 -4
  430. package/table/styles.css.js +37 -37
  431. package/table/styles.scoped.css +73 -70
  432. package/table/styles.selectors.js +37 -37
  433. package/tabs/styles.css.js +30 -30
  434. package/tabs/styles.scoped.css +105 -105
  435. package/tabs/styles.selectors.js +30 -30
  436. package/tabs/tab-header-bar.d.ts.map +1 -1
  437. package/tabs/tab-header-bar.js +1 -1
  438. package/tabs/tab-header-bar.js.map +1 -1
  439. package/tag-editor/styles.css.js +3 -3
  440. package/tag-editor/styles.scoped.css +14 -14
  441. package/tag-editor/styles.selectors.js +3 -3
  442. package/test-utils/dom/input/index.d.ts +1 -0
  443. package/test-utils/dom/input/index.js +3 -0
  444. package/test-utils/dom/input/index.js.map +1 -1
  445. package/test-utils/selectors/input/index.d.ts +1 -0
  446. package/test-utils/selectors/input/index.js +3 -0
  447. package/test-utils/selectors/input/index.js.map +1 -1
  448. package/text-content/styles.css.js +1 -1
  449. package/text-content/styles.scoped.css +73 -73
  450. package/text-content/styles.selectors.js +1 -1
  451. package/text-filter/styles.css.js +3 -3
  452. package/text-filter/styles.scoped.css +5 -5
  453. package/text-filter/styles.selectors.js +3 -3
  454. package/textarea/styles.css.js +9 -9
  455. package/textarea/styles.scoped.css +55 -55
  456. package/textarea/styles.selectors.js +9 -9
  457. package/tiles/styles.css.js +30 -30
  458. package/tiles/styles.scoped.css +123 -123
  459. package/tiles/styles.selectors.js +30 -30
  460. package/toggle/styles.css.js +10 -10
  461. package/toggle/styles.scoped.css +24 -24
  462. package/toggle/styles.selectors.js +10 -10
  463. package/token/dismiss-button.js +2 -2
  464. package/token/dismiss-button.js.map +1 -1
  465. package/token/styles.css.js +14 -14
  466. package/token/styles.scoped.css +58 -58
  467. package/token/styles.selectors.js +14 -14
  468. package/token-group/styles.css.js +5 -5
  469. package/token-group/styles.scoped.css +5 -5
  470. package/token-group/styles.selectors.js +5 -5
  471. package/tooltip/styles.css.js +2 -2
  472. package/tooltip/styles.scoped.css +5 -5
  473. package/tooltip/styles.selectors.js +2 -2
  474. package/top-navigation/parts/overflow-menu/menu-item.d.ts.map +1 -1
  475. package/top-navigation/parts/overflow-menu/menu-item.js +5 -5
  476. package/top-navigation/parts/overflow-menu/menu-item.js.map +1 -1
  477. package/top-navigation/styles.css.js +47 -47
  478. package/top-navigation/styles.scoped.css +97 -97
  479. package/top-navigation/styles.selectors.js +47 -47
  480. package/tree-view/styles.css.js +2 -2
  481. package/tree-view/styles.scoped.css +4 -4
  482. package/tree-view/styles.selectors.js +2 -2
  483. package/tree-view/tree-item/styles.css.js +10 -10
  484. package/tree-view/tree-item/styles.scoped.css +15 -15
  485. package/tree-view/tree-item/styles.selectors.js +10 -10
  486. package/tree-view/vertical-connector/styles.css.js +3 -3
  487. package/tree-view/vertical-connector/styles.scoped.css +4 -4
  488. package/tree-view/vertical-connector/styles.selectors.js +3 -3
  489. package/tutorial-panel/components/tutorial-detail-view/styles.css.js +20 -20
  490. package/tutorial-panel/components/tutorial-detail-view/styles.scoped.css +26 -26
  491. package/tutorial-panel/components/tutorial-detail-view/styles.selectors.js +20 -20
  492. package/tutorial-panel/components/tutorial-list/styles.css.js +18 -18
  493. package/tutorial-panel/components/tutorial-list/styles.scoped.css +33 -33
  494. package/tutorial-panel/components/tutorial-list/styles.selectors.js +18 -18
  495. package/tutorial-panel/styles.css.js +1 -1
  496. package/tutorial-panel/styles.scoped.css +7 -7
  497. package/tutorial-panel/styles.selectors.js +1 -1
  498. package/wizard/styles.css.js +30 -30
  499. package/wizard/styles.scoped.css +79 -79
  500. package/wizard/styles.selectors.js +30 -30
@@ -161,7 +161,7 @@ const ItemIcon = React.forwardRef(function ItemIcon({ icon, collapsed, className
161
161
  if (!icon) {
162
162
  return null;
163
163
  }
164
- return (React.createElement("span", { ref: ref, className: clsx(styles['item-icon'], testUtilStyles['item-icon'], collapsed && styles['item-icon--collapsed'], className), ...rest }, icon));
164
+ return (React.createElement("span", { ref: ref, className: clsx(styles['item-icon'], testUtilStyles['item-icon'], collapsed && styles['item-icon--collapsed'], className), "data-awsui-motion-target": "", ...rest }, icon));
165
165
  });
166
166
  // Manages a tooltip that shows the item's text label on focus or hover.
167
167
  // Used in the collapsed state, where the visible labels are hidden, to give
@@ -231,13 +231,13 @@ function Link({ definition, activeHref, fireFollow, position, collapsed, activeT
231
231
  const internalLink = (React.createElement("a", { ref: mergedRef, href: definition.href, className: clsx(styles.link, {
232
232
  [styles['link-active']]: isActive,
233
233
  [styles['link--collapsed']]: collapsed,
234
- }), target: definition.external ? '_blank' : undefined, rel: definition.external ? 'noopener noreferrer' : undefined, "aria-current": definition.href === activeHref ? 'page' : undefined, "aria-label": collapsed ? definition.text : undefined, onClick: onClick, ...(collapsed ? collapsedTooltip.triggerProps : {}), ...getAnalyticsMetadataAttribute(clickActionAnalyticsMetadata) },
234
+ }), target: definition.external ? '_blank' : undefined, rel: definition.external ? 'noopener noreferrer' : undefined, "aria-current": definition.href === activeHref ? 'page' : undefined, "aria-label": collapsed ? definition.text : undefined, ...(definition.external || definition.icon ? { 'data-awsui-motion-trigger': 'hover' } : {}), onClick: onClick, ...(collapsed ? collapsedTooltip.triggerProps : {}), ...getAnalyticsMetadataAttribute(clickActionAnalyticsMetadata) },
235
235
  React.createElement(ItemIcon, { icon: definition.icon, collapsed: collapsed, "aria-hidden": collapsed ? true : undefined }),
236
236
  React.createElement("span", { className: clsx(styles['link-text-wrapper'], collapsed && styles['link-text-wrapper--collapsed']), "aria-hidden": collapsed ? true : undefined },
237
237
  React.createElement("span", { className: clsx(styles['link-text-wrapper-content']) },
238
238
  React.createElement("span", { className: analyticsSelectors['link-text'] }, definition.text),
239
239
  definition.external && (React.createElement("span", { "aria-label": renderedExternalIconAriaLabel, role: renderedExternalIconAriaLabel ? 'img' : undefined },
240
- React.createElement(InternalIcon, { name: "external", className: styles['external-icon'] }))))),
240
+ React.createElement(InternalIcon, { name: "external", className: styles['external-icon'], nativeAttributes: { 'data-awsui-motion-target': '' } }))))),
241
241
  collapsed && collapsedTooltip.tooltip));
242
242
  return showInfo ? (React.createElement("div", { className: styles['list-item--link-with-info'] },
243
243
  internalLink,
@@ -1 +1 @@
1
- {"version":3,"file":"parts.js","sourceRoot":"","sources":["../../../src/side-navigation/parts.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, { ReactNode, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport clsx from 'clsx';\n\nimport { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport InternalBox from '../box/internal';\nimport { ExpandableSectionProps } from '../expandable-section/interfaces';\nimport InternalExpandableSection from '../expandable-section/internal';\nimport { useInternalI18n } from '../i18n/context';\nimport InternalIcon from '../icon/internal';\nimport { Transition } from '../internal/components/transition';\nimport { isPlainLeftClick } from '../internal/events';\nimport { useOneTheme, useVisualRefresh } from '../internal/hooks/use-visual-mode';\nimport { checkSafeUrl } from '../internal/utils/check-safe-url';\nimport Tooltip from '../tooltip/internal';\nimport { NonCancelableCustomEvent } from '../types/events';\nimport { GeneratedAnalyticsMetadataSideNavigationClick } from './analytics-metadata/interfaces';\nimport { SideNavigationProps } from './interfaces';\nimport { hasActiveLink } from './util';\n\nimport analyticsSelectors from './analytics-metadata/styles.css.js';\nimport styles from './styles.css.js';\nimport testUtilStyles from './test-classes/styles.css.js';\n\ninterface BaseItemComponentProps {\n activeHref?: string;\n fireChange: (item: SideNavigationProps.Section | SideNavigationProps.ExpandableLinkGroup, expanded: boolean) => void;\n fireFollow: (\n item:\n | SideNavigationProps.Link\n | SideNavigationProps.Header\n | SideNavigationProps.LinkGroup\n | SideNavigationProps.ExpandableLinkGroup,\n event: React.SyntheticEvent | Event\n ) => void;\n position?: string;\n collapsed?: boolean;\n activeTooltip?: string | null;\n setActiveTooltip?: (position: string | null) => void;\n}\n\ninterface HeaderProps extends BaseItemComponentProps {\n definition: SideNavigationProps.Header;\n}\n\nexport function Header({ definition, activeHref, fireFollow, collapsed }: HeaderProps) {\n checkSafeUrl('SideNavigation', definition.href);\n const onClick = useCallback(\n (event: React.MouseEvent) => {\n if (isPlainLeftClick(event)) {\n fireFollow(definition, event);\n }\n },\n [fireFollow, definition]\n );\n\n const clickActionAnalyticsMetadata: GeneratedAnalyticsMetadataSideNavigationClick = {\n action: 'click',\n detail: {\n label: `.${analyticsSelectors['header-link-text']}`,\n external: 'false',\n href: definition.href,\n position: 'header',\n },\n };\n\n return (\n <>\n {!collapsed && (\n <h2 className={styles.header}>\n <a\n href={definition.href}\n className={clsx(styles['header-link'], { [styles['header-link--has-logo']]: !!definition.logo })}\n aria-current={definition.href === activeHref ? 'page' : undefined}\n onClick={onClick}\n {...getAnalyticsMetadataAttribute(clickActionAnalyticsMetadata)}\n >\n {definition.logo &&\n (definition.logo.svg ? (\n <span\n className={clsx(styles['header-logo'], {\n [styles['header-logo--stretched']]: !definition.text,\n })}\n >\n {definition.logo.svg}\n </span>\n ) : (\n <img\n className={clsx(styles['header-logo'], {\n [styles['header-logo--stretched']]: !definition.text,\n })}\n src={definition.logo.src}\n alt={definition.logo.alt}\n />\n ))}\n <span className={clsx(styles['header-link-text'], analyticsSelectors['header-link-text'])}>\n {definition.text}\n </span>\n </a>\n </h2>\n )}\n {!collapsed && <Divider isPresentational={true} variant=\"header\" />}\n </>\n );\n}\n\ninterface NavigationItemsListProps extends BaseItemComponentProps {\n items: ReadonlyArray<SideNavigationProps.Item>;\n variant: 'section' | 'section-group' | 'link-group' | 'expandable-link-group' | 'root';\n withIcons?: boolean;\n ariaLabel?: string;\n}\n\ninterface Item {\n element?: ReactNode;\n listVariant?: 'section' | 'section-group' | 'link-group' | 'expandable-link-group' | 'root';\n items?: Array<Item>;\n}\n\nexport function NavigationItemsList({\n items,\n variant,\n activeHref,\n fireChange,\n fireFollow,\n position = '',\n collapsed,\n withIcons,\n ariaLabel,\n activeTooltip,\n setActiveTooltip,\n}: NavigationItemsListProps) {\n const lists: Array<Item> = [];\n let currentListIndex = 0;\n lists[currentListIndex] = {\n listVariant: variant,\n items: [],\n };\n\n items.forEach((item, index) => {\n const itemid = index + 1;\n const itemPosition = `${position ? `${position},` : ''}${itemid}`;\n\n // Emits a divider as its own list segment (dividers break the <ul> grouping).\n function pushDivider() {\n lists.push({\n listVariant: variant,\n element: (\n <div data-itemid={`item-${itemid}`} className={clsx(collapsed && styles['list-item--group'])}>\n <Divider variant=\"default\" collapsed={collapsed} />\n </div>\n ),\n });\n currentListIndex =\n lists.push({\n listVariant: variant,\n items: [],\n }) - 1;\n }\n\n // In collapsed mode, hide plain links without icons (they have no visual representation).\n // Exception: link-group / expandable-link-group children must stay rendered so\n // the grid-template-rows collapse animation has content to transition.\n if (\n collapsed &&\n item.type === 'link' &&\n !(item as SideNavigationProps.Link).icon &&\n variant !== 'link-group' &&\n variant !== 'expandable-link-group'\n ) {\n return;\n }\n switch (item.type) {\n case 'divider': {\n pushDivider();\n return;\n }\n case 'link': {\n lists[currentListIndex].items?.push({\n element: (\n <li\n key={index}\n data-itemid={`item-${itemid}`}\n className={clsx(styles['list-item'], collapsed && styles['list-item--collapsed'])}\n >\n <Link\n definition={item}\n activeHref={activeHref}\n fireChange={fireChange}\n fireFollow={fireFollow}\n position={itemPosition}\n collapsed={collapsed}\n activeTooltip={activeTooltip}\n setActiveTooltip={setActiveTooltip}\n />\n </li>\n ),\n });\n return;\n }\n case 'section': {\n lists[currentListIndex].items?.push({\n element: (\n <li\n key={index}\n data-itemid={`item-${itemid}`}\n className={clsx(\n styles['list-item'],\n collapsed && styles['list-item--collapsed'],\n collapsed && styles['list-item--group']\n )}\n >\n <Section\n definition={item}\n activeHref={activeHref}\n variant={variant}\n fireChange={fireChange}\n fireFollow={fireFollow}\n position={itemPosition}\n collapsed={collapsed}\n withIcons={withIcons}\n activeTooltip={activeTooltip}\n setActiveTooltip={setActiveTooltip}\n />\n </li>\n ),\n });\n return;\n }\n case 'section-group': {\n lists[currentListIndex].items?.push({\n element: (\n <li\n key={index}\n data-itemid={`item-${itemid}`}\n className={clsx(\n styles['list-item'],\n collapsed && styles['list-item--collapsed'],\n collapsed && styles['list-item--group']\n )}\n >\n <SectionGroup\n definition={item}\n activeHref={activeHref}\n fireChange={fireChange}\n fireFollow={fireFollow}\n position={itemPosition}\n collapsed={collapsed}\n withIcons={withIcons}\n activeTooltip={activeTooltip}\n setActiveTooltip={setActiveTooltip}\n />\n </li>\n ),\n });\n return;\n }\n case 'link-group': {\n lists[currentListIndex].items?.push({\n element: (\n <li\n key={index}\n data-itemid={`item-${itemid}`}\n className={clsx(\n styles['list-item'],\n collapsed && styles['list-item--collapsed'],\n collapsed && styles['list-item--group']\n )}\n >\n <LinkGroup\n definition={item}\n activeHref={activeHref}\n fireChange={fireChange}\n fireFollow={fireFollow}\n position={itemPosition}\n collapsed={collapsed}\n withIcons={withIcons}\n activeTooltip={activeTooltip}\n setActiveTooltip={setActiveTooltip}\n />\n </li>\n ),\n });\n return;\n }\n case 'expandable-link-group': {\n lists[currentListIndex].items?.push({\n element: (\n <li\n key={index}\n data-itemid={`item-${itemid}`}\n className={clsx(\n styles['list-item'],\n collapsed && styles['list-item--collapsed'],\n collapsed && styles['list-item--group']\n )}\n >\n <ExpandableLinkGroup\n definition={item}\n activeHref={activeHref}\n fireChange={fireChange}\n fireFollow={fireFollow}\n variant={variant}\n position={itemPosition}\n collapsed={collapsed}\n withIcons={withIcons}\n activeTooltip={activeTooltip}\n setActiveTooltip={setActiveTooltip}\n />\n </li>\n ),\n });\n return;\n }\n }\n });\n\n // In collapsed mode, skip empty item segments and deduplicate consecutive dividers.\n const filteredLists = collapsed\n ? lists.filter((list, index) => {\n if (list.items) {\n return list.items.length > 0;\n }\n // Divider — skip if preceded by another divider or empty segment, or followed by nothing.\n const prevVisible = lists\n .slice(0, index)\n .reverse()\n .find(l => !l.items || l.items.length > 0);\n const nextVisible = lists.slice(index + 1).find(l => !l.items || l.items.length > 0);\n return (\n (!prevVisible || (prevVisible.items !== undefined && prevVisible.items.length > 0)) &&\n nextVisible !== undefined &&\n (nextVisible.items === undefined || nextVisible.items.length > 0)\n );\n })\n : lists;\n\n return (\n <>\n {filteredLists.map((list, index) => {\n if (!list.items || list.items.length === 0) {\n return (\n <div\n key={`hr-${index}`}\n className={clsx(styles.list, styles[`list-variant-${variant}`], {\n [styles['list-variant-root--first']]: list.listVariant === 'root' && index === 0,\n [styles[`list-variant-${list.listVariant}--collapsed`]]: collapsed,\n [styles['list--with-icons']]: withIcons,\n })}\n >\n {list.element}\n </div>\n );\n } else {\n return (\n <ul\n key={`list-${index}`}\n className={clsx(styles.list, styles[`list-variant-${list.listVariant}`], {\n [styles['list-variant-root--first']]: list.listVariant === 'root' && index === 0,\n [styles[`list-variant-${list.listVariant}--collapsed`]]: collapsed,\n [styles['list--with-icons']]: withIcons,\n })}\n aria-label={ariaLabel}\n >\n {list.items.map(item => item.element)}\n </ul>\n );\n }\n })}\n </>\n );\n}\n\ninterface DividerProps {\n variant: 'default' | 'header';\n isPresentational?: boolean;\n collapsed?: boolean;\n}\n\nfunction Divider({ variant = 'default', isPresentational = false, collapsed }: DividerProps) {\n return (\n <hr\n className={clsx(styles.divider, styles[`divider-${variant}`], collapsed && styles['divider--collapsed'])}\n role={isPresentational ? 'presentation' : undefined}\n />\n );\n}\n\ninterface LinkProps extends BaseItemComponentProps {\n definition: SideNavigationProps.Link;\n}\n\ninterface ItemIconProps extends React.HTMLAttributes<HTMLSpanElement> {\n icon: React.ReactNode;\n collapsed?: boolean;\n}\n\nconst ItemIcon = React.forwardRef<HTMLSpanElement, ItemIconProps>(function ItemIcon(\n { icon, collapsed, className, ...rest },\n ref\n) {\n if (!icon) {\n return null;\n }\n return (\n <span\n ref={ref}\n className={clsx(\n styles['item-icon'],\n testUtilStyles['item-icon'],\n collapsed && styles['item-icon--collapsed'],\n className\n )}\n {...rest}\n >\n {icon}\n </span>\n );\n});\n\n// Manages a tooltip that shows the item's text label on focus or hover.\n// Used in the collapsed state, where the visible labels are hidden, to give\n// pointer and keyboard users a way to identify each item without relying on\n// their browser's native title popup.\nfunction useCollapsedTooltip<T extends HTMLElement>({\n label,\n position,\n activeTooltip,\n setActiveTooltip,\n}: {\n label: React.ReactNode;\n position?: string;\n activeTooltip?: string | null;\n setActiveTooltip?: (position: string | null) => void;\n}) {\n const triggerRef = useRef<T | null>(null);\n const id = position ?? '';\n const show = activeTooltip === id;\n\n const claim = () => setActiveTooltip?.(id);\n const release = () => {\n if (activeTooltip === id) {\n setActiveTooltip?.(null);\n }\n };\n\n const triggerProps = {\n onFocus: claim,\n onBlur: release,\n onMouseEnter: claim,\n onMouseLeave: release,\n };\n\n const tooltip = show ? (\n <Tooltip getTrack={() => triggerRef.current} content={label} position=\"right\" onEscape={release} />\n ) : null;\n\n return { triggerRef, triggerProps, tooltip };\n}\n\nfunction Link({ definition, activeHref, fireFollow, position, collapsed, activeTooltip, setActiveTooltip }: LinkProps) {\n checkSafeUrl('SideNavigation', definition.href);\n const isActive = definition.href === activeHref;\n const i18n = useInternalI18n('link');\n const linkRef = useRef<HTMLAnchorElement>(null);\n const collapsedTooltip = useCollapsedTooltip<HTMLAnchorElement>({\n label: definition.text,\n position,\n activeTooltip,\n setActiveTooltip,\n });\n\n // Make icon-less collapsed links inert (they collapse to 0×0 and must\n // not be focusable or visible to assistive technology).\n const isIconLess = !definition.icon;\n useEffect(() => {\n if (linkRef.current) {\n linkRef.current.inert = !!(collapsed && isIconLess);\n }\n }, [collapsed, isIconLess]);\n\n // Merge linkRef with collapsedTooltip.triggerRef so both can track the <a>.\n const mergedRef = useCallback(\n (node: HTMLAnchorElement | null) => {\n (linkRef as React.MutableRefObject<HTMLAnchorElement | null>).current = node;\n if (collapsed) {\n (collapsedTooltip.triggerRef as React.MutableRefObject<HTMLAnchorElement | null>).current = node;\n }\n },\n [collapsed, collapsedTooltip.triggerRef]\n );\n\n const onClick = useCallback(\n (event: React.MouseEvent) => {\n if (isPlainLeftClick(event)) {\n fireFollow(definition, event);\n }\n },\n [fireFollow, definition]\n );\n\n const clickActionAnalyticsMetadata: GeneratedAnalyticsMetadataSideNavigationClick = {\n action: 'click',\n detail: {\n label: `.${analyticsSelectors['link-text']}`,\n external: `${!!definition.external}`,\n href: definition.href,\n position,\n },\n };\n\n const renderedExternalIconAriaLabel = i18n('externalIconAriaLabel', definition.externalIconAriaLabel);\n\n const showInfo = !collapsed && definition.info;\n\n const internalLink = (\n <a\n ref={mergedRef}\n href={definition.href}\n className={clsx(styles.link, {\n [styles['link-active']]: isActive,\n [styles['link--collapsed']]: collapsed,\n })}\n target={definition.external ? '_blank' : undefined}\n rel={definition.external ? 'noopener noreferrer' : undefined}\n aria-current={definition.href === activeHref ? 'page' : undefined}\n aria-label={collapsed ? definition.text : undefined}\n onClick={onClick}\n {...(collapsed ? collapsedTooltip.triggerProps : {})}\n {...getAnalyticsMetadataAttribute(clickActionAnalyticsMetadata)}\n >\n <ItemIcon icon={definition.icon} collapsed={collapsed} aria-hidden={collapsed ? true : undefined} />\n <span\n className={clsx(styles['link-text-wrapper'], collapsed && styles['link-text-wrapper--collapsed'])}\n aria-hidden={collapsed ? true : undefined}\n >\n <span className={clsx(styles['link-text-wrapper-content'])}>\n <span className={analyticsSelectors['link-text']}>{definition.text}</span>\n {definition.external && (\n <span aria-label={renderedExternalIconAriaLabel} role={renderedExternalIconAriaLabel ? 'img' : undefined}>\n <InternalIcon name=\"external\" className={styles['external-icon']} />\n </span>\n )}\n </span>\n </span>\n {collapsed && collapsedTooltip.tooltip}\n </a>\n );\n return showInfo ? (\n <div className={styles['list-item--link-with-info']}>\n {internalLink}\n <span className={clsx(styles.info, testUtilStyles.info)}>{definition.info}</span>\n </div>\n ) : (\n internalLink\n );\n}\n\ninterface SectionProps extends BaseItemComponentProps {\n definition: SideNavigationProps.Section;\n variant: 'section' | 'section-group' | 'link-group' | 'expandable-link-group' | 'root';\n withIcons?: boolean;\n}\n\nfunction Section({\n definition,\n activeHref,\n fireFollow,\n fireChange,\n variant,\n position,\n collapsed,\n withIcons,\n activeTooltip,\n setActiveTooltip,\n}: SectionProps) {\n const [expanded, setExpanded] = useState<boolean>(definition.defaultExpanded ?? true);\n const isVisualRefresh = useVisualRefresh();\n const sectionRef = useRef<HTMLDivElement>(null);\n\n const onExpandedChange = useCallback(\n (e: NonCancelableCustomEvent<ExpandableSectionProps.ChangeDetail>) => {\n fireChange(definition, e.detail.expanded);\n setExpanded(e.detail.expanded);\n },\n [definition, fireChange]\n );\n\n useEffect(() => {\n setExpanded(definition.defaultExpanded ?? true);\n }, [definition]);\n\n // Sections are transparent in the collapsed rail — only the header is made inert\n // so child links remain focusable. The header hosts the expand toggle that must\n // leave the tab order when collapsed.\n useEffect(() => {\n const el = sectionRef.current as HTMLElement | null;\n if (el) {\n el.inert = false;\n const header = el.firstElementChild as HTMLElement | null;\n if (header) {\n header.inert = !!collapsed;\n }\n }\n }, [collapsed]);\n\n const isInSectionGroup = variant === 'section-group';\n\n return (\n <InternalExpandableSection\n variant=\"footer\"\n expanded={collapsed ? true : expanded}\n onChange={onExpandedChange}\n disableContentPaddings={true}\n __internalRootRef={sectionRef}\n className={clsx(\n styles.section,\n isInSectionGroup && styles['section--no-ident'],\n withIcons && styles['section--expand-icon-end'],\n isVisualRefresh && styles.refresh,\n collapsed && styles['section--collapsed']\n )}\n headerText={\n <span\n className={clsx(styles['section-header'], styles['label-text'], collapsed && styles['label-text--collapsed'])}\n aria-hidden={collapsed ? true : undefined}\n >\n {definition.text}\n </span>\n }\n __expandIconPosition={withIcons ? 'end' : 'start'}\n >\n <NavigationItemsList\n variant=\"section\"\n items={definition.items}\n fireFollow={fireFollow}\n fireChange={fireChange}\n activeHref={activeHref}\n position={position}\n collapsed={collapsed}\n withIcons={withIcons}\n ariaLabel={collapsed ? definition.text : undefined}\n activeTooltip={activeTooltip}\n setActiveTooltip={setActiveTooltip}\n />\n </InternalExpandableSection>\n );\n}\n\ninterface SectionGroupProps extends BaseItemComponentProps {\n definition: SideNavigationProps.SectionGroup;\n withIcons?: boolean;\n}\n\nfunction SectionGroup({\n definition,\n activeHref,\n fireFollow,\n fireChange,\n position,\n collapsed,\n withIcons,\n activeTooltip,\n setActiveTooltip,\n}: SectionGroupProps) {\n const isOneTheme = useOneTheme();\n const sectionGroupRef = useRef<HTMLDivElement>(null);\n\n // Section-groups are transparent — children are always promoted in the collapsed rail.\n useEffect(() => {\n if (sectionGroupRef.current) {\n sectionGroupRef.current.inert = false;\n }\n }, [collapsed]);\n\n return (\n <div ref={sectionGroupRef} className={styles['section-group']}>\n <InternalBox\n className={clsx(styles['section-group-title'], collapsed && styles['section-group-title--collapsed'])}\n variant=\"h3\"\n fontSize={isOneTheme ? 'heading-s' : undefined}\n >\n <span\n className={clsx(styles['label-text'], collapsed && styles['label-text--collapsed'])}\n aria-hidden={collapsed ? true : undefined}\n >\n {definition.title}\n </span>\n </InternalBox>\n <NavigationItemsList\n variant=\"section-group\"\n items={definition.items}\n fireFollow={fireFollow}\n fireChange={fireChange}\n activeHref={activeHref}\n position={position}\n collapsed={collapsed}\n withIcons={withIcons}\n ariaLabel={collapsed ? definition.title : undefined}\n activeTooltip={activeTooltip}\n setActiveTooltip={setActiveTooltip}\n />\n </div>\n );\n}\n\ninterface LinkGroupProps extends BaseItemComponentProps {\n definition: SideNavigationProps.LinkGroup;\n withIcons?: boolean;\n}\n\nfunction LinkGroup({\n definition,\n activeHref,\n fireFollow,\n fireChange,\n position,\n collapsed,\n withIcons,\n activeTooltip,\n setActiveTooltip,\n}: LinkGroupProps) {\n checkSafeUrl('SideNavigation', definition.href);\n const childrenRef = useRef<HTMLDivElement>(null);\n const isOneTheme = useOneTheme();\n\n // Set inert on the children container when collapsed so they leave\n // the tab order and assistive technology.\n useEffect(() => {\n if (childrenRef.current) {\n childrenRef.current.inert = !!collapsed;\n }\n }, [collapsed]);\n\n return (\n <>\n <Link\n definition={{\n type: 'link',\n href: definition.href,\n text: definition.text,\n info: definition.info,\n icon: definition.icon,\n }}\n fireFollow={(_, event) => fireFollow(definition, event)}\n fireChange={fireChange}\n activeHref={activeHref}\n position={position}\n collapsed={collapsed}\n activeTooltip={activeTooltip}\n setActiveTooltip={setActiveTooltip}\n />\n <Transition<HTMLDivElement> in={!collapsed} disabled={!isOneTheme}>\n {(transitionState, transitionEventsRef, motionDisabled) => {\n const childrenSettled = !collapsed && (motionDisabled || transitionState === 'entered');\n\n return (\n <div\n ref={transitionEventsRef}\n className={clsx(styles['link-group-children'], collapsed && styles['link-group-children--collapsed'])}\n >\n <div\n ref={childrenRef}\n className={clsx(\n styles['link-group-children-inner'],\n !collapsed && styles['link-group-children-inner--expanded'],\n childrenSettled && styles['link-group-children-inner--settled']\n )}\n >\n <NavigationItemsList\n variant=\"link-group\"\n items={definition.items}\n fireFollow={fireFollow}\n fireChange={fireChange}\n activeHref={activeHref}\n position={position}\n collapsed={collapsed}\n withIcons={withIcons}\n ariaLabel={collapsed ? definition.text : undefined}\n activeTooltip={activeTooltip}\n setActiveTooltip={setActiveTooltip}\n />\n </div>\n </div>\n );\n }}\n </Transition>\n </>\n );\n}\n\ninterface ExpandableLinkGroupProps extends BaseItemComponentProps {\n definition: SideNavigationProps.ExpandableLinkGroup;\n variant: 'section' | 'section-group' | 'link-group' | 'expandable-link-group' | 'root';\n withIcons?: boolean;\n}\n\nfunction ExpandableLinkGroup({\n definition,\n fireFollow,\n fireChange,\n activeHref,\n variant,\n position,\n collapsed,\n withIcons,\n activeTooltip,\n setActiveTooltip,\n}: ExpandableLinkGroupProps) {\n // Check whether the definition contains an active link and memoize it to avoid\n // rechecking every time.\n const containsActiveLink = useMemo(() => {\n return activeHref ? hasActiveLink(definition.items, activeHref) : false;\n }, [activeHref, definition.items]);\n\n const [expanded, setExpanded] = useState<boolean>(() => {\n return definition.defaultExpanded ?? (definition.href === activeHref || containsActiveLink);\n });\n\n const [userExpanded, setUserExpanded] = useState<boolean | undefined>();\n\n // Reset user expansion status when the items property is updated.\n useEffect(() => setUserExpanded(undefined), [definition]);\n\n // By default, the expandable section is open when there's an active link inside.\n useEffect(() => {\n setExpanded(definition.href === activeHref || containsActiveLink);\n }, [definition.href, containsActiveLink, activeHref]);\n\n // If the definition object itself is updated, reset the expansion state to default.\n useEffect(() => {\n if (definition.defaultExpanded !== undefined) {\n setExpanded(definition.defaultExpanded);\n }\n }, [definition]);\n\n const onExpandedChange = useCallback(\n (e: NonCancelableCustomEvent<ExpandableSectionProps.ChangeDetail>) => {\n fireChange(definition, e.detail.expanded);\n setUserExpanded(e.detail.expanded);\n },\n [definition, fireChange]\n );\n\n const onHeaderFollow: LinkProps['fireFollow'] = (_, event) => {\n fireFollow(definition, event);\n setUserExpanded(true);\n if (!expanded) {\n fireChange(definition, true);\n }\n };\n\n return (\n <InternalExpandableSection\n className={clsx(\n styles['expandable-link-group'],\n variant === 'section-group' && styles['expandable-link-group--no-ident'],\n withIcons && styles['expandable-link-group--expand-icon-end'],\n definition.href === activeHref && styles['expandable-link-group--active'],\n collapsed && styles['expandable-link-group--collapsed']\n )}\n variant=\"navigation\"\n expanded={collapsed ? false : (userExpanded ?? expanded)}\n onChange={onExpandedChange}\n disableContentPaddings={true}\n __disableHeaderPaddings={true}\n __expandIconPosition={withIcons ? 'end' : 'start'}\n __hideExpandIcon={!!collapsed}\n headerText={\n <Link\n definition={{ type: 'link', href: definition.href, text: definition.text, icon: definition.icon }}\n fireFollow={onHeaderFollow}\n fireChange={fireChange}\n activeHref={activeHref}\n position={position}\n collapsed={collapsed}\n activeTooltip={activeTooltip}\n setActiveTooltip={setActiveTooltip}\n />\n }\n >\n <NavigationItemsList\n variant=\"expandable-link-group\"\n items={definition.items}\n fireFollow={fireFollow}\n fireChange={fireChange}\n activeHref={activeHref}\n position={position}\n collapsed={collapsed}\n withIcons={withIcons}\n activeTooltip={activeTooltip}\n setActiveTooltip={setActiveTooltip}\n />\n </InternalExpandableSection>\n );\n}\n"]}
1
+ {"version":3,"file":"parts.js","sourceRoot":"","sources":["../../../src/side-navigation/parts.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, { ReactNode, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport clsx from 'clsx';\n\nimport { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport InternalBox from '../box/internal';\nimport { ExpandableSectionProps } from '../expandable-section/interfaces';\nimport InternalExpandableSection from '../expandable-section/internal';\nimport { useInternalI18n } from '../i18n/context';\nimport InternalIcon from '../icon/internal';\nimport { Transition } from '../internal/components/transition';\nimport { isPlainLeftClick } from '../internal/events';\nimport { useOneTheme, useVisualRefresh } from '../internal/hooks/use-visual-mode';\nimport { checkSafeUrl } from '../internal/utils/check-safe-url';\nimport Tooltip from '../tooltip/internal';\nimport { NonCancelableCustomEvent } from '../types/events';\nimport { GeneratedAnalyticsMetadataSideNavigationClick } from './analytics-metadata/interfaces';\nimport { SideNavigationProps } from './interfaces';\nimport { hasActiveLink } from './util';\n\nimport analyticsSelectors from './analytics-metadata/styles.css.js';\nimport styles from './styles.css.js';\nimport testUtilStyles from './test-classes/styles.css.js';\n\ninterface BaseItemComponentProps {\n activeHref?: string;\n fireChange: (item: SideNavigationProps.Section | SideNavigationProps.ExpandableLinkGroup, expanded: boolean) => void;\n fireFollow: (\n item:\n | SideNavigationProps.Link\n | SideNavigationProps.Header\n | SideNavigationProps.LinkGroup\n | SideNavigationProps.ExpandableLinkGroup,\n event: React.SyntheticEvent | Event\n ) => void;\n position?: string;\n collapsed?: boolean;\n activeTooltip?: string | null;\n setActiveTooltip?: (position: string | null) => void;\n}\n\ninterface HeaderProps extends BaseItemComponentProps {\n definition: SideNavigationProps.Header;\n}\n\nexport function Header({ definition, activeHref, fireFollow, collapsed }: HeaderProps) {\n checkSafeUrl('SideNavigation', definition.href);\n const onClick = useCallback(\n (event: React.MouseEvent) => {\n if (isPlainLeftClick(event)) {\n fireFollow(definition, event);\n }\n },\n [fireFollow, definition]\n );\n\n const clickActionAnalyticsMetadata: GeneratedAnalyticsMetadataSideNavigationClick = {\n action: 'click',\n detail: {\n label: `.${analyticsSelectors['header-link-text']}`,\n external: 'false',\n href: definition.href,\n position: 'header',\n },\n };\n\n return (\n <>\n {!collapsed && (\n <h2 className={styles.header}>\n <a\n href={definition.href}\n className={clsx(styles['header-link'], { [styles['header-link--has-logo']]: !!definition.logo })}\n aria-current={definition.href === activeHref ? 'page' : undefined}\n onClick={onClick}\n {...getAnalyticsMetadataAttribute(clickActionAnalyticsMetadata)}\n >\n {definition.logo &&\n (definition.logo.svg ? (\n <span\n className={clsx(styles['header-logo'], {\n [styles['header-logo--stretched']]: !definition.text,\n })}\n >\n {definition.logo.svg}\n </span>\n ) : (\n <img\n className={clsx(styles['header-logo'], {\n [styles['header-logo--stretched']]: !definition.text,\n })}\n src={definition.logo.src}\n alt={definition.logo.alt}\n />\n ))}\n <span className={clsx(styles['header-link-text'], analyticsSelectors['header-link-text'])}>\n {definition.text}\n </span>\n </a>\n </h2>\n )}\n {!collapsed && <Divider isPresentational={true} variant=\"header\" />}\n </>\n );\n}\n\ninterface NavigationItemsListProps extends BaseItemComponentProps {\n items: ReadonlyArray<SideNavigationProps.Item>;\n variant: 'section' | 'section-group' | 'link-group' | 'expandable-link-group' | 'root';\n withIcons?: boolean;\n ariaLabel?: string;\n}\n\ninterface Item {\n element?: ReactNode;\n listVariant?: 'section' | 'section-group' | 'link-group' | 'expandable-link-group' | 'root';\n items?: Array<Item>;\n}\n\nexport function NavigationItemsList({\n items,\n variant,\n activeHref,\n fireChange,\n fireFollow,\n position = '',\n collapsed,\n withIcons,\n ariaLabel,\n activeTooltip,\n setActiveTooltip,\n}: NavigationItemsListProps) {\n const lists: Array<Item> = [];\n let currentListIndex = 0;\n lists[currentListIndex] = {\n listVariant: variant,\n items: [],\n };\n\n items.forEach((item, index) => {\n const itemid = index + 1;\n const itemPosition = `${position ? `${position},` : ''}${itemid}`;\n\n // Emits a divider as its own list segment (dividers break the <ul> grouping).\n function pushDivider() {\n lists.push({\n listVariant: variant,\n element: (\n <div data-itemid={`item-${itemid}`} className={clsx(collapsed && styles['list-item--group'])}>\n <Divider variant=\"default\" collapsed={collapsed} />\n </div>\n ),\n });\n currentListIndex =\n lists.push({\n listVariant: variant,\n items: [],\n }) - 1;\n }\n\n // In collapsed mode, hide plain links without icons (they have no visual representation).\n // Exception: link-group / expandable-link-group children must stay rendered so\n // the grid-template-rows collapse animation has content to transition.\n if (\n collapsed &&\n item.type === 'link' &&\n !(item as SideNavigationProps.Link).icon &&\n variant !== 'link-group' &&\n variant !== 'expandable-link-group'\n ) {\n return;\n }\n switch (item.type) {\n case 'divider': {\n pushDivider();\n return;\n }\n case 'link': {\n lists[currentListIndex].items?.push({\n element: (\n <li\n key={index}\n data-itemid={`item-${itemid}`}\n className={clsx(styles['list-item'], collapsed && styles['list-item--collapsed'])}\n >\n <Link\n definition={item}\n activeHref={activeHref}\n fireChange={fireChange}\n fireFollow={fireFollow}\n position={itemPosition}\n collapsed={collapsed}\n activeTooltip={activeTooltip}\n setActiveTooltip={setActiveTooltip}\n />\n </li>\n ),\n });\n return;\n }\n case 'section': {\n lists[currentListIndex].items?.push({\n element: (\n <li\n key={index}\n data-itemid={`item-${itemid}`}\n className={clsx(\n styles['list-item'],\n collapsed && styles['list-item--collapsed'],\n collapsed && styles['list-item--group']\n )}\n >\n <Section\n definition={item}\n activeHref={activeHref}\n variant={variant}\n fireChange={fireChange}\n fireFollow={fireFollow}\n position={itemPosition}\n collapsed={collapsed}\n withIcons={withIcons}\n activeTooltip={activeTooltip}\n setActiveTooltip={setActiveTooltip}\n />\n </li>\n ),\n });\n return;\n }\n case 'section-group': {\n lists[currentListIndex].items?.push({\n element: (\n <li\n key={index}\n data-itemid={`item-${itemid}`}\n className={clsx(\n styles['list-item'],\n collapsed && styles['list-item--collapsed'],\n collapsed && styles['list-item--group']\n )}\n >\n <SectionGroup\n definition={item}\n activeHref={activeHref}\n fireChange={fireChange}\n fireFollow={fireFollow}\n position={itemPosition}\n collapsed={collapsed}\n withIcons={withIcons}\n activeTooltip={activeTooltip}\n setActiveTooltip={setActiveTooltip}\n />\n </li>\n ),\n });\n return;\n }\n case 'link-group': {\n lists[currentListIndex].items?.push({\n element: (\n <li\n key={index}\n data-itemid={`item-${itemid}`}\n className={clsx(\n styles['list-item'],\n collapsed && styles['list-item--collapsed'],\n collapsed && styles['list-item--group']\n )}\n >\n <LinkGroup\n definition={item}\n activeHref={activeHref}\n fireChange={fireChange}\n fireFollow={fireFollow}\n position={itemPosition}\n collapsed={collapsed}\n withIcons={withIcons}\n activeTooltip={activeTooltip}\n setActiveTooltip={setActiveTooltip}\n />\n </li>\n ),\n });\n return;\n }\n case 'expandable-link-group': {\n lists[currentListIndex].items?.push({\n element: (\n <li\n key={index}\n data-itemid={`item-${itemid}`}\n className={clsx(\n styles['list-item'],\n collapsed && styles['list-item--collapsed'],\n collapsed && styles['list-item--group']\n )}\n >\n <ExpandableLinkGroup\n definition={item}\n activeHref={activeHref}\n fireChange={fireChange}\n fireFollow={fireFollow}\n variant={variant}\n position={itemPosition}\n collapsed={collapsed}\n withIcons={withIcons}\n activeTooltip={activeTooltip}\n setActiveTooltip={setActiveTooltip}\n />\n </li>\n ),\n });\n return;\n }\n }\n });\n\n // In collapsed mode, skip empty item segments and deduplicate consecutive dividers.\n const filteredLists = collapsed\n ? lists.filter((list, index) => {\n if (list.items) {\n return list.items.length > 0;\n }\n // Divider — skip if preceded by another divider or empty segment, or followed by nothing.\n const prevVisible = lists\n .slice(0, index)\n .reverse()\n .find(l => !l.items || l.items.length > 0);\n const nextVisible = lists.slice(index + 1).find(l => !l.items || l.items.length > 0);\n return (\n (!prevVisible || (prevVisible.items !== undefined && prevVisible.items.length > 0)) &&\n nextVisible !== undefined &&\n (nextVisible.items === undefined || nextVisible.items.length > 0)\n );\n })\n : lists;\n\n return (\n <>\n {filteredLists.map((list, index) => {\n if (!list.items || list.items.length === 0) {\n return (\n <div\n key={`hr-${index}`}\n className={clsx(styles.list, styles[`list-variant-${variant}`], {\n [styles['list-variant-root--first']]: list.listVariant === 'root' && index === 0,\n [styles[`list-variant-${list.listVariant}--collapsed`]]: collapsed,\n [styles['list--with-icons']]: withIcons,\n })}\n >\n {list.element}\n </div>\n );\n } else {\n return (\n <ul\n key={`list-${index}`}\n className={clsx(styles.list, styles[`list-variant-${list.listVariant}`], {\n [styles['list-variant-root--first']]: list.listVariant === 'root' && index === 0,\n [styles[`list-variant-${list.listVariant}--collapsed`]]: collapsed,\n [styles['list--with-icons']]: withIcons,\n })}\n aria-label={ariaLabel}\n >\n {list.items.map(item => item.element)}\n </ul>\n );\n }\n })}\n </>\n );\n}\n\ninterface DividerProps {\n variant: 'default' | 'header';\n isPresentational?: boolean;\n collapsed?: boolean;\n}\n\nfunction Divider({ variant = 'default', isPresentational = false, collapsed }: DividerProps) {\n return (\n <hr\n className={clsx(styles.divider, styles[`divider-${variant}`], collapsed && styles['divider--collapsed'])}\n role={isPresentational ? 'presentation' : undefined}\n />\n );\n}\n\ninterface LinkProps extends BaseItemComponentProps {\n definition: SideNavigationProps.Link;\n}\n\ninterface ItemIconProps extends React.HTMLAttributes<HTMLSpanElement> {\n icon: React.ReactNode;\n collapsed?: boolean;\n}\n\nconst ItemIcon = React.forwardRef<HTMLSpanElement, ItemIconProps>(function ItemIcon(\n { icon, collapsed, className, ...rest },\n ref\n) {\n if (!icon) {\n return null;\n }\n return (\n <span\n ref={ref}\n className={clsx(\n styles['item-icon'],\n testUtilStyles['item-icon'],\n collapsed && styles['item-icon--collapsed'],\n className\n )}\n data-awsui-motion-target=\"\"\n {...rest}\n >\n {icon}\n </span>\n );\n});\n\n// Manages a tooltip that shows the item's text label on focus or hover.\n// Used in the collapsed state, where the visible labels are hidden, to give\n// pointer and keyboard users a way to identify each item without relying on\n// their browser's native title popup.\nfunction useCollapsedTooltip<T extends HTMLElement>({\n label,\n position,\n activeTooltip,\n setActiveTooltip,\n}: {\n label: React.ReactNode;\n position?: string;\n activeTooltip?: string | null;\n setActiveTooltip?: (position: string | null) => void;\n}) {\n const triggerRef = useRef<T | null>(null);\n const id = position ?? '';\n const show = activeTooltip === id;\n\n const claim = () => setActiveTooltip?.(id);\n const release = () => {\n if (activeTooltip === id) {\n setActiveTooltip?.(null);\n }\n };\n\n const triggerProps = {\n onFocus: claim,\n onBlur: release,\n onMouseEnter: claim,\n onMouseLeave: release,\n };\n\n const tooltip = show ? (\n <Tooltip getTrack={() => triggerRef.current} content={label} position=\"right\" onEscape={release} />\n ) : null;\n\n return { triggerRef, triggerProps, tooltip };\n}\n\nfunction Link({ definition, activeHref, fireFollow, position, collapsed, activeTooltip, setActiveTooltip }: LinkProps) {\n checkSafeUrl('SideNavigation', definition.href);\n const isActive = definition.href === activeHref;\n const i18n = useInternalI18n('link');\n const linkRef = useRef<HTMLAnchorElement>(null);\n const collapsedTooltip = useCollapsedTooltip<HTMLAnchorElement>({\n label: definition.text,\n position,\n activeTooltip,\n setActiveTooltip,\n });\n\n // Make icon-less collapsed links inert (they collapse to 0×0 and must\n // not be focusable or visible to assistive technology).\n const isIconLess = !definition.icon;\n useEffect(() => {\n if (linkRef.current) {\n linkRef.current.inert = !!(collapsed && isIconLess);\n }\n }, [collapsed, isIconLess]);\n\n // Merge linkRef with collapsedTooltip.triggerRef so both can track the <a>.\n const mergedRef = useCallback(\n (node: HTMLAnchorElement | null) => {\n (linkRef as React.MutableRefObject<HTMLAnchorElement | null>).current = node;\n if (collapsed) {\n (collapsedTooltip.triggerRef as React.MutableRefObject<HTMLAnchorElement | null>).current = node;\n }\n },\n [collapsed, collapsedTooltip.triggerRef]\n );\n\n const onClick = useCallback(\n (event: React.MouseEvent) => {\n if (isPlainLeftClick(event)) {\n fireFollow(definition, event);\n }\n },\n [fireFollow, definition]\n );\n\n const clickActionAnalyticsMetadata: GeneratedAnalyticsMetadataSideNavigationClick = {\n action: 'click',\n detail: {\n label: `.${analyticsSelectors['link-text']}`,\n external: `${!!definition.external}`,\n href: definition.href,\n position,\n },\n };\n\n const renderedExternalIconAriaLabel = i18n('externalIconAriaLabel', definition.externalIconAriaLabel);\n\n const showInfo = !collapsed && definition.info;\n\n const internalLink = (\n <a\n ref={mergedRef}\n href={definition.href}\n className={clsx(styles.link, {\n [styles['link-active']]: isActive,\n [styles['link--collapsed']]: collapsed,\n })}\n target={definition.external ? '_blank' : undefined}\n rel={definition.external ? 'noopener noreferrer' : undefined}\n aria-current={definition.href === activeHref ? 'page' : undefined}\n aria-label={collapsed ? definition.text : undefined}\n {...(definition.external || definition.icon ? { 'data-awsui-motion-trigger': 'hover' } : {})}\n onClick={onClick}\n {...(collapsed ? collapsedTooltip.triggerProps : {})}\n {...getAnalyticsMetadataAttribute(clickActionAnalyticsMetadata)}\n >\n <ItemIcon icon={definition.icon} collapsed={collapsed} aria-hidden={collapsed ? true : undefined} />\n <span\n className={clsx(styles['link-text-wrapper'], collapsed && styles['link-text-wrapper--collapsed'])}\n aria-hidden={collapsed ? true : undefined}\n >\n <span className={clsx(styles['link-text-wrapper-content'])}>\n <span className={analyticsSelectors['link-text']}>{definition.text}</span>\n {definition.external && (\n <span aria-label={renderedExternalIconAriaLabel} role={renderedExternalIconAriaLabel ? 'img' : undefined}>\n <InternalIcon\n name=\"external\"\n className={styles['external-icon']}\n nativeAttributes={{ 'data-awsui-motion-target': '' }}\n />\n </span>\n )}\n </span>\n </span>\n {collapsed && collapsedTooltip.tooltip}\n </a>\n );\n return showInfo ? (\n <div className={styles['list-item--link-with-info']}>\n {internalLink}\n <span className={clsx(styles.info, testUtilStyles.info)}>{definition.info}</span>\n </div>\n ) : (\n internalLink\n );\n}\n\ninterface SectionProps extends BaseItemComponentProps {\n definition: SideNavigationProps.Section;\n variant: 'section' | 'section-group' | 'link-group' | 'expandable-link-group' | 'root';\n withIcons?: boolean;\n}\n\nfunction Section({\n definition,\n activeHref,\n fireFollow,\n fireChange,\n variant,\n position,\n collapsed,\n withIcons,\n activeTooltip,\n setActiveTooltip,\n}: SectionProps) {\n const [expanded, setExpanded] = useState<boolean>(definition.defaultExpanded ?? true);\n const isVisualRefresh = useVisualRefresh();\n const sectionRef = useRef<HTMLDivElement>(null);\n\n const onExpandedChange = useCallback(\n (e: NonCancelableCustomEvent<ExpandableSectionProps.ChangeDetail>) => {\n fireChange(definition, e.detail.expanded);\n setExpanded(e.detail.expanded);\n },\n [definition, fireChange]\n );\n\n useEffect(() => {\n setExpanded(definition.defaultExpanded ?? true);\n }, [definition]);\n\n // Sections are transparent in the collapsed rail — only the header is made inert\n // so child links remain focusable. The header hosts the expand toggle that must\n // leave the tab order when collapsed.\n useEffect(() => {\n const el = sectionRef.current as HTMLElement | null;\n if (el) {\n el.inert = false;\n const header = el.firstElementChild as HTMLElement | null;\n if (header) {\n header.inert = !!collapsed;\n }\n }\n }, [collapsed]);\n\n const isInSectionGroup = variant === 'section-group';\n\n return (\n <InternalExpandableSection\n variant=\"footer\"\n expanded={collapsed ? true : expanded}\n onChange={onExpandedChange}\n disableContentPaddings={true}\n __internalRootRef={sectionRef}\n className={clsx(\n styles.section,\n isInSectionGroup && styles['section--no-ident'],\n withIcons && styles['section--expand-icon-end'],\n isVisualRefresh && styles.refresh,\n collapsed && styles['section--collapsed']\n )}\n headerText={\n <span\n className={clsx(styles['section-header'], styles['label-text'], collapsed && styles['label-text--collapsed'])}\n aria-hidden={collapsed ? true : undefined}\n >\n {definition.text}\n </span>\n }\n __expandIconPosition={withIcons ? 'end' : 'start'}\n >\n <NavigationItemsList\n variant=\"section\"\n items={definition.items}\n fireFollow={fireFollow}\n fireChange={fireChange}\n activeHref={activeHref}\n position={position}\n collapsed={collapsed}\n withIcons={withIcons}\n ariaLabel={collapsed ? definition.text : undefined}\n activeTooltip={activeTooltip}\n setActiveTooltip={setActiveTooltip}\n />\n </InternalExpandableSection>\n );\n}\n\ninterface SectionGroupProps extends BaseItemComponentProps {\n definition: SideNavigationProps.SectionGroup;\n withIcons?: boolean;\n}\n\nfunction SectionGroup({\n definition,\n activeHref,\n fireFollow,\n fireChange,\n position,\n collapsed,\n withIcons,\n activeTooltip,\n setActiveTooltip,\n}: SectionGroupProps) {\n const isOneTheme = useOneTheme();\n const sectionGroupRef = useRef<HTMLDivElement>(null);\n\n // Section-groups are transparent — children are always promoted in the collapsed rail.\n useEffect(() => {\n if (sectionGroupRef.current) {\n sectionGroupRef.current.inert = false;\n }\n }, [collapsed]);\n\n return (\n <div ref={sectionGroupRef} className={styles['section-group']}>\n <InternalBox\n className={clsx(styles['section-group-title'], collapsed && styles['section-group-title--collapsed'])}\n variant=\"h3\"\n fontSize={isOneTheme ? 'heading-s' : undefined}\n >\n <span\n className={clsx(styles['label-text'], collapsed && styles['label-text--collapsed'])}\n aria-hidden={collapsed ? true : undefined}\n >\n {definition.title}\n </span>\n </InternalBox>\n <NavigationItemsList\n variant=\"section-group\"\n items={definition.items}\n fireFollow={fireFollow}\n fireChange={fireChange}\n activeHref={activeHref}\n position={position}\n collapsed={collapsed}\n withIcons={withIcons}\n ariaLabel={collapsed ? definition.title : undefined}\n activeTooltip={activeTooltip}\n setActiveTooltip={setActiveTooltip}\n />\n </div>\n );\n}\n\ninterface LinkGroupProps extends BaseItemComponentProps {\n definition: SideNavigationProps.LinkGroup;\n withIcons?: boolean;\n}\n\nfunction LinkGroup({\n definition,\n activeHref,\n fireFollow,\n fireChange,\n position,\n collapsed,\n withIcons,\n activeTooltip,\n setActiveTooltip,\n}: LinkGroupProps) {\n checkSafeUrl('SideNavigation', definition.href);\n const childrenRef = useRef<HTMLDivElement>(null);\n const isOneTheme = useOneTheme();\n\n // Set inert on the children container when collapsed so they leave\n // the tab order and assistive technology.\n useEffect(() => {\n if (childrenRef.current) {\n childrenRef.current.inert = !!collapsed;\n }\n }, [collapsed]);\n\n return (\n <>\n <Link\n definition={{\n type: 'link',\n href: definition.href,\n text: definition.text,\n info: definition.info,\n icon: definition.icon,\n }}\n fireFollow={(_, event) => fireFollow(definition, event)}\n fireChange={fireChange}\n activeHref={activeHref}\n position={position}\n collapsed={collapsed}\n activeTooltip={activeTooltip}\n setActiveTooltip={setActiveTooltip}\n />\n <Transition<HTMLDivElement> in={!collapsed} disabled={!isOneTheme}>\n {(transitionState, transitionEventsRef, motionDisabled) => {\n const childrenSettled = !collapsed && (motionDisabled || transitionState === 'entered');\n\n return (\n <div\n ref={transitionEventsRef}\n className={clsx(styles['link-group-children'], collapsed && styles['link-group-children--collapsed'])}\n >\n <div\n ref={childrenRef}\n className={clsx(\n styles['link-group-children-inner'],\n !collapsed && styles['link-group-children-inner--expanded'],\n childrenSettled && styles['link-group-children-inner--settled']\n )}\n >\n <NavigationItemsList\n variant=\"link-group\"\n items={definition.items}\n fireFollow={fireFollow}\n fireChange={fireChange}\n activeHref={activeHref}\n position={position}\n collapsed={collapsed}\n withIcons={withIcons}\n ariaLabel={collapsed ? definition.text : undefined}\n activeTooltip={activeTooltip}\n setActiveTooltip={setActiveTooltip}\n />\n </div>\n </div>\n );\n }}\n </Transition>\n </>\n );\n}\n\ninterface ExpandableLinkGroupProps extends BaseItemComponentProps {\n definition: SideNavigationProps.ExpandableLinkGroup;\n variant: 'section' | 'section-group' | 'link-group' | 'expandable-link-group' | 'root';\n withIcons?: boolean;\n}\n\nfunction ExpandableLinkGroup({\n definition,\n fireFollow,\n fireChange,\n activeHref,\n variant,\n position,\n collapsed,\n withIcons,\n activeTooltip,\n setActiveTooltip,\n}: ExpandableLinkGroupProps) {\n // Check whether the definition contains an active link and memoize it to avoid\n // rechecking every time.\n const containsActiveLink = useMemo(() => {\n return activeHref ? hasActiveLink(definition.items, activeHref) : false;\n }, [activeHref, definition.items]);\n\n const [expanded, setExpanded] = useState<boolean>(() => {\n return definition.defaultExpanded ?? (definition.href === activeHref || containsActiveLink);\n });\n\n const [userExpanded, setUserExpanded] = useState<boolean | undefined>();\n\n // Reset user expansion status when the items property is updated.\n useEffect(() => setUserExpanded(undefined), [definition]);\n\n // By default, the expandable section is open when there's an active link inside.\n useEffect(() => {\n setExpanded(definition.href === activeHref || containsActiveLink);\n }, [definition.href, containsActiveLink, activeHref]);\n\n // If the definition object itself is updated, reset the expansion state to default.\n useEffect(() => {\n if (definition.defaultExpanded !== undefined) {\n setExpanded(definition.defaultExpanded);\n }\n }, [definition]);\n\n const onExpandedChange = useCallback(\n (e: NonCancelableCustomEvent<ExpandableSectionProps.ChangeDetail>) => {\n fireChange(definition, e.detail.expanded);\n setUserExpanded(e.detail.expanded);\n },\n [definition, fireChange]\n );\n\n const onHeaderFollow: LinkProps['fireFollow'] = (_, event) => {\n fireFollow(definition, event);\n setUserExpanded(true);\n if (!expanded) {\n fireChange(definition, true);\n }\n };\n\n return (\n <InternalExpandableSection\n className={clsx(\n styles['expandable-link-group'],\n variant === 'section-group' && styles['expandable-link-group--no-ident'],\n withIcons && styles['expandable-link-group--expand-icon-end'],\n definition.href === activeHref && styles['expandable-link-group--active'],\n collapsed && styles['expandable-link-group--collapsed']\n )}\n variant=\"navigation\"\n expanded={collapsed ? false : (userExpanded ?? expanded)}\n onChange={onExpandedChange}\n disableContentPaddings={true}\n __disableHeaderPaddings={true}\n __expandIconPosition={withIcons ? 'end' : 'start'}\n __hideExpandIcon={!!collapsed}\n headerText={\n <Link\n definition={{ type: 'link', href: definition.href, text: definition.text, icon: definition.icon }}\n fireFollow={onHeaderFollow}\n fireChange={fireChange}\n activeHref={activeHref}\n position={position}\n collapsed={collapsed}\n activeTooltip={activeTooltip}\n setActiveTooltip={setActiveTooltip}\n />\n }\n >\n <NavigationItemsList\n variant=\"expandable-link-group\"\n items={definition.items}\n fireFollow={fireFollow}\n fireChange={fireChange}\n activeHref={activeHref}\n position={position}\n collapsed={collapsed}\n withIcons={withIcons}\n activeTooltip={activeTooltip}\n setActiveTooltip={setActiveTooltip}\n />\n </InternalExpandableSection>\n );\n}\n"]}
@@ -1,69 +1,69 @@
1
1
 
2
2
  import './styles.scoped.css';
3
3
  export default {
4
- "root": "awsui_root_l0dv0_msrtz_10",
5
- "with-toolbar": "awsui_with-toolbar_l0dv0_msrtz_44",
6
- "header": "awsui_header_l0dv0_msrtz_48",
7
- "list--with-icons": "awsui_list--with-icons_l0dv0_msrtz_61",
8
- "header-link": "awsui_header-link_l0dv0_msrtz_65",
9
- "header-link--has-logo": "awsui_header-link--has-logo_l0dv0_msrtz_76",
10
- "header-link-text": "awsui_header-link-text_l0dv0_msrtz_76",
11
- "header-logo": "awsui_header-logo_l0dv0_msrtz_81",
12
- "header-logo--stretched": "awsui_header-logo--stretched_l0dv0_msrtz_87",
13
- "items-control": "awsui_items-control_l0dv0_msrtz_92",
14
- "list-container": "awsui_list-container_l0dv0_msrtz_97",
15
- "divider-header": "awsui_divider-header_l0dv0_msrtz_105",
16
- "root--collapsed": "awsui_root--collapsed_l0dv0_msrtz_109",
17
- "list": "awsui_list_l0dv0_msrtz_61",
18
- "list-variant-root": "awsui_list-variant-root_l0dv0_msrtz_122",
19
- "list-variant-root--first": "awsui_list-variant-root--first_l0dv0_msrtz_129",
20
- "list-variant-root--collapsed": "awsui_list-variant-root--collapsed_l0dv0_msrtz_132",
21
- "list-variant-expandable-link-group": "awsui_list-variant-expandable-link-group_l0dv0_msrtz_139",
22
- "list-variant-expandable-link-group--collapsed": "awsui_list-variant-expandable-link-group--collapsed_l0dv0_msrtz_145",
23
- "list-variant-section": "awsui_list-variant-section_l0dv0_msrtz_149",
24
- "list-variant-section--collapsed": "awsui_list-variant-section--collapsed_l0dv0_msrtz_152",
25
- "list-variant-link-group": "awsui_list-variant-link-group_l0dv0_msrtz_161",
26
- "list-variant-link-group--collapsed": "awsui_list-variant-link-group--collapsed_l0dv0_msrtz_164",
27
- "link-group-children": "awsui_link-group-children_l0dv0_msrtz_168",
28
- "link-group-children--collapsed": "awsui_link-group-children--collapsed_l0dv0_msrtz_172",
29
- "link-group-children-inner": "awsui_link-group-children-inner_l0dv0_msrtz_176",
30
- "link-group-children-inner--expanded": "awsui_link-group-children-inner--expanded_l0dv0_msrtz_182",
31
- "link-group-children-inner--settled": "awsui_link-group-children-inner--settled_l0dv0_msrtz_185",
32
- "list-variant-section-group": "awsui_list-variant-section-group_l0dv0_msrtz_189",
33
- "list-variant-section-group--collapsed": "awsui_list-variant-section-group--collapsed_l0dv0_msrtz_195",
34
- "list-item": "awsui_list-item_l0dv0_msrtz_199",
35
- "list-item--collapsed": "awsui_list-item--collapsed_l0dv0_msrtz_212",
36
- "list-item--link-with-info": "awsui_list-item--link-with-info_l0dv0_msrtz_218",
37
- "list-item--group": "awsui_list-item--group_l0dv0_msrtz_223",
38
- "section": "awsui_section_l0dv0_msrtz_223",
39
- "section-group": "awsui_section-group_l0dv0_msrtz_224",
40
- "expandable-link-group": "awsui_expandable-link-group_l0dv0_msrtz_229",
41
- "section--no-ident": "awsui_section--no-ident_l0dv0_msrtz_232",
42
- "section--expand-icon-end": "awsui_section--expand-icon-end_l0dv0_msrtz_232",
43
- "expandable-link-group--no-ident": "awsui_expandable-link-group--no-ident_l0dv0_msrtz_233",
44
- "expandable-link-group--expand-icon-end": "awsui_expandable-link-group--expand-icon-end_l0dv0_msrtz_234",
45
- "section--collapsed": "awsui_section--collapsed_l0dv0_msrtz_237",
46
- "expandable-link-group--collapsed": "awsui_expandable-link-group--collapsed_l0dv0_msrtz_238",
47
- "expandable-link-group--active": "awsui_expandable-link-group--active_l0dv0_msrtz_253",
48
- "item-icon": "awsui_item-icon_l0dv0_msrtz_257",
49
- "refresh": "awsui_refresh_l0dv0_msrtz_278",
50
- "section-header": "awsui_section-header_l0dv0_msrtz_299",
51
- "section-group-title": "awsui_section-group-title_l0dv0_msrtz_314",
52
- "section-group-title--collapsed": "awsui_section-group-title--collapsed_l0dv0_msrtz_322",
53
- "link": "awsui_link_l0dv0_msrtz_168",
54
- "link-active": "awsui_link-active_l0dv0_msrtz_354",
55
- "link--collapsed": "awsui_link--collapsed_l0dv0_msrtz_361",
56
- "header-link-active": "awsui_header-link-active_l0dv0_msrtz_429",
57
- "link-text-wrapper-content": "awsui_link-text-wrapper-content_l0dv0_msrtz_458",
58
- "link-text-wrapper": "awsui_link-text-wrapper_l0dv0_msrtz_458",
59
- "link-text-wrapper--collapsed": "awsui_link-text-wrapper--collapsed_l0dv0_msrtz_472",
60
- "label-text": "awsui_label-text_l0dv0_msrtz_477",
61
- "label-text--collapsed": "awsui_label-text--collapsed_l0dv0_msrtz_484",
62
- "info": "awsui_info_l0dv0_msrtz_490",
63
- "item-icon--collapsed": "awsui_item-icon--collapsed_l0dv0_msrtz_499",
64
- "external-icon": "awsui_external-icon_l0dv0_msrtz_503",
65
- "divider": "awsui_divider_l0dv0_msrtz_105",
66
- "divider-default": "awsui_divider-default_l0dv0_msrtz_511",
67
- "divider--collapsed": "awsui_divider--collapsed_l0dv0_msrtz_515"
4
+ "root": "awsui_root_l0dv0_1ytza_10",
5
+ "with-toolbar": "awsui_with-toolbar_l0dv0_1ytza_44",
6
+ "header": "awsui_header_l0dv0_1ytza_48",
7
+ "list--with-icons": "awsui_list--with-icons_l0dv0_1ytza_61",
8
+ "header-link": "awsui_header-link_l0dv0_1ytza_65",
9
+ "header-link--has-logo": "awsui_header-link--has-logo_l0dv0_1ytza_76",
10
+ "header-link-text": "awsui_header-link-text_l0dv0_1ytza_76",
11
+ "header-logo": "awsui_header-logo_l0dv0_1ytza_81",
12
+ "header-logo--stretched": "awsui_header-logo--stretched_l0dv0_1ytza_87",
13
+ "items-control": "awsui_items-control_l0dv0_1ytza_92",
14
+ "list-container": "awsui_list-container_l0dv0_1ytza_97",
15
+ "divider-header": "awsui_divider-header_l0dv0_1ytza_105",
16
+ "root--collapsed": "awsui_root--collapsed_l0dv0_1ytza_109",
17
+ "list": "awsui_list_l0dv0_1ytza_61",
18
+ "list-variant-root": "awsui_list-variant-root_l0dv0_1ytza_122",
19
+ "list-variant-root--first": "awsui_list-variant-root--first_l0dv0_1ytza_129",
20
+ "list-variant-root--collapsed": "awsui_list-variant-root--collapsed_l0dv0_1ytza_132",
21
+ "list-variant-expandable-link-group": "awsui_list-variant-expandable-link-group_l0dv0_1ytza_139",
22
+ "list-variant-expandable-link-group--collapsed": "awsui_list-variant-expandable-link-group--collapsed_l0dv0_1ytza_145",
23
+ "list-variant-section": "awsui_list-variant-section_l0dv0_1ytza_149",
24
+ "list-variant-section--collapsed": "awsui_list-variant-section--collapsed_l0dv0_1ytza_152",
25
+ "list-variant-link-group": "awsui_list-variant-link-group_l0dv0_1ytza_161",
26
+ "list-variant-link-group--collapsed": "awsui_list-variant-link-group--collapsed_l0dv0_1ytza_164",
27
+ "link-group-children": "awsui_link-group-children_l0dv0_1ytza_168",
28
+ "link-group-children--collapsed": "awsui_link-group-children--collapsed_l0dv0_1ytza_172",
29
+ "link-group-children-inner": "awsui_link-group-children-inner_l0dv0_1ytza_176",
30
+ "link-group-children-inner--expanded": "awsui_link-group-children-inner--expanded_l0dv0_1ytza_182",
31
+ "link-group-children-inner--settled": "awsui_link-group-children-inner--settled_l0dv0_1ytza_185",
32
+ "list-variant-section-group": "awsui_list-variant-section-group_l0dv0_1ytza_189",
33
+ "list-variant-section-group--collapsed": "awsui_list-variant-section-group--collapsed_l0dv0_1ytza_195",
34
+ "list-item": "awsui_list-item_l0dv0_1ytza_199",
35
+ "list-item--collapsed": "awsui_list-item--collapsed_l0dv0_1ytza_212",
36
+ "list-item--link-with-info": "awsui_list-item--link-with-info_l0dv0_1ytza_218",
37
+ "list-item--group": "awsui_list-item--group_l0dv0_1ytza_223",
38
+ "section": "awsui_section_l0dv0_1ytza_223",
39
+ "section-group": "awsui_section-group_l0dv0_1ytza_224",
40
+ "expandable-link-group": "awsui_expandable-link-group_l0dv0_1ytza_229",
41
+ "section--no-ident": "awsui_section--no-ident_l0dv0_1ytza_232",
42
+ "section--expand-icon-end": "awsui_section--expand-icon-end_l0dv0_1ytza_232",
43
+ "expandable-link-group--no-ident": "awsui_expandable-link-group--no-ident_l0dv0_1ytza_233",
44
+ "expandable-link-group--expand-icon-end": "awsui_expandable-link-group--expand-icon-end_l0dv0_1ytza_234",
45
+ "section--collapsed": "awsui_section--collapsed_l0dv0_1ytza_237",
46
+ "expandable-link-group--collapsed": "awsui_expandable-link-group--collapsed_l0dv0_1ytza_238",
47
+ "expandable-link-group--active": "awsui_expandable-link-group--active_l0dv0_1ytza_253",
48
+ "item-icon": "awsui_item-icon_l0dv0_1ytza_257",
49
+ "refresh": "awsui_refresh_l0dv0_1ytza_278",
50
+ "section-header": "awsui_section-header_l0dv0_1ytza_299",
51
+ "section-group-title": "awsui_section-group-title_l0dv0_1ytza_314",
52
+ "section-group-title--collapsed": "awsui_section-group-title--collapsed_l0dv0_1ytza_322",
53
+ "link": "awsui_link_l0dv0_1ytza_168",
54
+ "link-active": "awsui_link-active_l0dv0_1ytza_354",
55
+ "link--collapsed": "awsui_link--collapsed_l0dv0_1ytza_361",
56
+ "header-link-active": "awsui_header-link-active_l0dv0_1ytza_429",
57
+ "link-text-wrapper-content": "awsui_link-text-wrapper-content_l0dv0_1ytza_458",
58
+ "link-text-wrapper": "awsui_link-text-wrapper_l0dv0_1ytza_458",
59
+ "link-text-wrapper--collapsed": "awsui_link-text-wrapper--collapsed_l0dv0_1ytza_472",
60
+ "label-text": "awsui_label-text_l0dv0_1ytza_477",
61
+ "label-text--collapsed": "awsui_label-text--collapsed_l0dv0_1ytza_484",
62
+ "info": "awsui_info_l0dv0_1ytza_490",
63
+ "item-icon--collapsed": "awsui_item-icon--collapsed_l0dv0_1ytza_499",
64
+ "external-icon": "awsui_external-icon_l0dv0_1ytza_503",
65
+ "divider": "awsui_divider_l0dv0_1ytza_105",
66
+ "divider-default": "awsui_divider-default_l0dv0_1ytza_511",
67
+ "divider--collapsed": "awsui_divider--collapsed_l0dv0_1ytza_515"
68
68
  };
69
69