@cloudscape-design/components 3.0.757 → 3.0.759

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 (449) hide show
  1. package/alert/styles.css.js +27 -27
  2. package/alert/styles.scoped.css +43 -43
  3. package/alert/styles.selectors.js +27 -27
  4. package/anchor-navigation/styles.css.js +8 -8
  5. package/anchor-navigation/styles.scoped.css +23 -23
  6. package/anchor-navigation/styles.selectors.js +8 -8
  7. package/annotation-context/annotation/styles.css.js +24 -24
  8. package/annotation-context/annotation/styles.scoped.css +31 -31
  9. package/annotation-context/annotation/styles.selectors.js +24 -24
  10. package/app-layout/content-wrapper/styles.css.js +3 -3
  11. package/app-layout/content-wrapper/styles.scoped.css +7 -7
  12. package/app-layout/content-wrapper/styles.selectors.js +3 -3
  13. package/app-layout/drawer/styles.css.js +13 -13
  14. package/app-layout/drawer/styles.scoped.css +22 -22
  15. package/app-layout/drawer/styles.selectors.js +13 -13
  16. package/app-layout/interfaces.d.ts +1 -1
  17. package/app-layout/interfaces.js.map +1 -1
  18. package/app-layout/mobile-toolbar/styles.css.js +8 -8
  19. package/app-layout/mobile-toolbar/styles.scoped.css +9 -9
  20. package/app-layout/mobile-toolbar/styles.selectors.js +8 -8
  21. package/app-layout/resize/styles.css.js +4 -4
  22. package/app-layout/resize/styles.scoped.css +9 -9
  23. package/app-layout/resize/styles.selectors.js +4 -4
  24. package/app-layout/split-panel/styles.css.js +2 -2
  25. package/app-layout/split-panel/styles.scoped.css +3 -3
  26. package/app-layout/split-panel/styles.selectors.js +2 -2
  27. package/app-layout/styles.css.js +12 -12
  28. package/app-layout/styles.scoped.css +13 -13
  29. package/app-layout/styles.selectors.js +12 -12
  30. package/app-layout/toggles/styles.css.js +2 -2
  31. package/app-layout/toggles/styles.scoped.css +7 -7
  32. package/app-layout/toggles/styles.selectors.js +2 -2
  33. package/app-layout/visual-refresh/drawers.d.ts.map +1 -1
  34. package/app-layout/visual-refresh/drawers.js +4 -2
  35. package/app-layout/visual-refresh/drawers.js.map +1 -1
  36. package/app-layout/visual-refresh/mobile-toolbar.d.ts.map +1 -1
  37. package/app-layout/visual-refresh/mobile-toolbar.js +1 -1
  38. package/app-layout/visual-refresh/mobile-toolbar.js.map +1 -1
  39. package/app-layout/visual-refresh/styles.css.js +85 -82
  40. package/app-layout/visual-refresh/styles.scoped.css +177 -179
  41. package/app-layout/visual-refresh/styles.selectors.js +85 -82
  42. package/app-layout/visual-refresh/trigger-button.d.ts.map +1 -1
  43. package/app-layout/visual-refresh/trigger-button.js +2 -2
  44. package/app-layout/visual-refresh/trigger-button.js.map +1 -1
  45. package/app-layout/visual-refresh-toolbar/drawer/styles.css.js +6 -6
  46. package/app-layout/visual-refresh-toolbar/drawer/styles.scoped.css +7 -7
  47. package/app-layout/visual-refresh-toolbar/drawer/styles.selectors.js +6 -6
  48. package/app-layout/visual-refresh-toolbar/navigation/styles.css.js +4 -4
  49. package/app-layout/visual-refresh-toolbar/navigation/styles.scoped.css +6 -6
  50. package/app-layout/visual-refresh-toolbar/navigation/styles.selectors.js +4 -4
  51. package/app-layout/visual-refresh-toolbar/skeleton/styles.css.js +16 -16
  52. package/app-layout/visual-refresh-toolbar/skeleton/styles.scoped.css +31 -31
  53. package/app-layout/visual-refresh-toolbar/skeleton/styles.selectors.js +16 -16
  54. package/app-layout/visual-refresh-toolbar/split-panel/styles.css.js +1 -1
  55. package/app-layout/visual-refresh-toolbar/split-panel/styles.scoped.css +2 -2
  56. package/app-layout/visual-refresh-toolbar/split-panel/styles.selectors.js +1 -1
  57. package/app-layout/visual-refresh-toolbar/toolbar/drawer-triggers.d.ts +3 -1
  58. package/app-layout/visual-refresh-toolbar/toolbar/drawer-triggers.d.ts.map +1 -1
  59. package/app-layout/visual-refresh-toolbar/toolbar/drawer-triggers.js +7 -5
  60. package/app-layout/visual-refresh-toolbar/toolbar/drawer-triggers.js.map +1 -1
  61. package/app-layout/visual-refresh-toolbar/toolbar/index.js +1 -1
  62. package/app-layout/visual-refresh-toolbar/toolbar/index.js.map +1 -1
  63. package/app-layout/visual-refresh-toolbar/toolbar/styles.css.js +12 -12
  64. package/app-layout/visual-refresh-toolbar/toolbar/styles.scoped.css +15 -15
  65. package/app-layout/visual-refresh-toolbar/toolbar/styles.selectors.js +12 -12
  66. package/app-layout/visual-refresh-toolbar/toolbar/trigger-button/index.d.ts +29 -0
  67. package/app-layout/visual-refresh-toolbar/toolbar/trigger-button/index.d.ts.map +1 -1
  68. package/app-layout/visual-refresh-toolbar/toolbar/trigger-button/index.js +109 -7
  69. package/app-layout/visual-refresh-toolbar/toolbar/trigger-button/index.js.map +1 -1
  70. package/app-layout/visual-refresh-toolbar/toolbar/trigger-button/styles.css.js +9 -6
  71. package/app-layout/visual-refresh-toolbar/toolbar/trigger-button/styles.scoped.css +36 -50
  72. package/app-layout/visual-refresh-toolbar/toolbar/trigger-button/styles.selectors.js +9 -6
  73. package/area-chart/styles.css.js +6 -6
  74. package/area-chart/styles.scoped.css +10 -10
  75. package/area-chart/styles.selectors.js +6 -6
  76. package/attribute-editor/styles.css.js +14 -14
  77. package/attribute-editor/styles.scoped.css +27 -27
  78. package/attribute-editor/styles.selectors.js +14 -14
  79. package/badge/styles.css.js +10 -10
  80. package/badge/styles.scoped.css +11 -11
  81. package/badge/styles.selectors.js +10 -10
  82. package/box/styles.css.js +191 -191
  83. package/box/styles.scoped.css +237 -237
  84. package/box/styles.selectors.js +191 -191
  85. package/breadcrumb-group/implementation.d.ts.map +1 -1
  86. package/breadcrumb-group/implementation.js +61 -12
  87. package/breadcrumb-group/implementation.js.map +1 -1
  88. package/breadcrumb-group/interfaces.d.ts +3 -2
  89. package/breadcrumb-group/interfaces.d.ts.map +1 -1
  90. package/breadcrumb-group/interfaces.js.map +1 -1
  91. package/breadcrumb-group/item/funnel.d.ts +1 -0
  92. package/breadcrumb-group/item/funnel.d.ts.map +1 -1
  93. package/breadcrumb-group/item/funnel.js +3 -3
  94. package/breadcrumb-group/item/funnel.js.map +1 -1
  95. package/breadcrumb-group/item/item.d.ts +1 -1
  96. package/breadcrumb-group/item/item.d.ts.map +1 -1
  97. package/breadcrumb-group/item/item.js +19 -38
  98. package/breadcrumb-group/item/item.js.map +1 -1
  99. package/breadcrumb-group/item/styles.css.js +8 -9
  100. package/breadcrumb-group/item/styles.scoped.css +36 -35
  101. package/breadcrumb-group/item/styles.selectors.js +8 -9
  102. package/breadcrumb-group/styles.css.js +8 -7
  103. package/breadcrumb-group/styles.scoped.css +18 -58
  104. package/breadcrumb-group/styles.selectors.js +8 -7
  105. package/breadcrumb-group/utils.d.ts +5 -0
  106. package/breadcrumb-group/utils.d.ts.map +1 -1
  107. package/breadcrumb-group/utils.js +56 -0
  108. package/breadcrumb-group/utils.js.map +1 -1
  109. package/button/styles.css.js +20 -20
  110. package/button/styles.scoped.css +155 -155
  111. package/button/styles.selectors.js +20 -20
  112. package/button-dropdown/category-elements/styles.css.js +14 -14
  113. package/button-dropdown/category-elements/styles.scoped.css +31 -31
  114. package/button-dropdown/category-elements/styles.selectors.js +14 -14
  115. package/button-dropdown/item-element/styles.css.js +13 -13
  116. package/button-dropdown/item-element/styles.scoped.css +25 -25
  117. package/button-dropdown/item-element/styles.selectors.js +13 -13
  118. package/button-dropdown/mobile-expandable-group/styles.css.js +5 -5
  119. package/button-dropdown/mobile-expandable-group/styles.scoped.css +6 -6
  120. package/button-dropdown/mobile-expandable-group/styles.selectors.js +5 -5
  121. package/button-dropdown/styles.css.js +17 -17
  122. package/button-dropdown/styles.scoped.css +27 -27
  123. package/button-dropdown/styles.selectors.js +17 -17
  124. package/button-group/styles.css.js +4 -4
  125. package/button-group/styles.scoped.css +5 -5
  126. package/button-group/styles.selectors.js +4 -4
  127. package/calendar/styles.css.js +21 -21
  128. package/calendar/styles.scoped.css +47 -47
  129. package/calendar/styles.selectors.js +21 -21
  130. package/cards/styles.css.js +39 -39
  131. package/cards/styles.scoped.css +51 -51
  132. package/cards/styles.selectors.js +39 -39
  133. package/checkbox/styles.css.js +3 -3
  134. package/checkbox/styles.scoped.css +6 -6
  135. package/checkbox/styles.selectors.js +3 -3
  136. package/code-editor/resizable-box/styles.css.js +3 -3
  137. package/code-editor/resizable-box/styles.scoped.css +8 -8
  138. package/code-editor/resizable-box/styles.selectors.js +3 -3
  139. package/code-editor/styles.css.js +33 -33
  140. package/code-editor/styles.scoped.css +137 -137
  141. package/code-editor/styles.selectors.js +33 -33
  142. package/collection-preferences/content-display/styles.css.js +11 -11
  143. package/collection-preferences/content-display/styles.scoped.css +19 -19
  144. package/collection-preferences/content-display/styles.selectors.js +11 -11
  145. package/collection-preferences/styles.css.js +37 -37
  146. package/collection-preferences/styles.scoped.css +48 -48
  147. package/collection-preferences/styles.selectors.js +37 -37
  148. package/column-layout/flexible-column-layout/styles.css.js +5 -5
  149. package/column-layout/flexible-column-layout/styles.scoped.css +6 -6
  150. package/column-layout/flexible-column-layout/styles.selectors.js +5 -5
  151. package/column-layout/styles.css.js +13 -13
  152. package/column-layout/styles.scoped.css +45 -45
  153. package/column-layout/styles.selectors.js +13 -13
  154. package/container/styles.css.js +30 -30
  155. package/container/styles.scoped.css +55 -55
  156. package/container/styles.selectors.js +30 -30
  157. package/content-layout/styles.css.js +14 -14
  158. package/content-layout/styles.scoped.css +17 -17
  159. package/content-layout/styles.selectors.js +14 -14
  160. package/date-picker/styles.css.js +7 -7
  161. package/date-picker/styles.scoped.css +10 -10
  162. package/date-picker/styles.selectors.js +7 -7
  163. package/date-range-picker/calendar/grids/styles.css.js +28 -28
  164. package/date-range-picker/calendar/grids/styles.scoped.css +44 -44
  165. package/date-range-picker/calendar/grids/styles.selectors.js +28 -28
  166. package/date-range-picker/relative-range/styles.css.js +9 -9
  167. package/date-range-picker/relative-range/styles.scoped.css +14 -14
  168. package/date-range-picker/relative-range/styles.selectors.js +9 -9
  169. package/date-range-picker/styles.css.js +39 -39
  170. package/date-range-picker/styles.scoped.css +49 -49
  171. package/date-range-picker/styles.selectors.js +39 -39
  172. package/drawer/styles.css.js +4 -4
  173. package/drawer/styles.scoped.css +11 -11
  174. package/drawer/styles.selectors.js +4 -4
  175. package/expandable-section/styles.css.js +34 -34
  176. package/expandable-section/styles.scoped.css +66 -66
  177. package/expandable-section/styles.selectors.js +34 -34
  178. package/file-upload/dropzone/styles.css.js +2 -2
  179. package/file-upload/dropzone/styles.scoped.css +3 -3
  180. package/file-upload/dropzone/styles.selectors.js +2 -2
  181. package/file-upload/file-input/styles.css.js +4 -4
  182. package/file-upload/file-input/styles.scoped.css +8 -8
  183. package/file-upload/file-input/styles.selectors.js +4 -4
  184. package/flashbar/styles.css.js +50 -50
  185. package/flashbar/styles.scoped.css +150 -150
  186. package/flashbar/styles.selectors.js +50 -50
  187. package/form/styles.css.js +8 -8
  188. package/form/styles.scoped.css +9 -9
  189. package/form/styles.selectors.js +8 -8
  190. package/form-field/styles.css.js +24 -24
  191. package/form-field/styles.scoped.css +43 -39
  192. package/form-field/styles.selectors.js +24 -24
  193. package/grid/styles.css.js +53 -53
  194. package/grid/styles.scoped.css +55 -55
  195. package/grid/styles.selectors.js +53 -53
  196. package/header/styles.css.js +34 -34
  197. package/header/styles.scoped.css +51 -51
  198. package/header/styles.selectors.js +34 -34
  199. package/help-panel/styles.css.js +5 -5
  200. package/help-panel/styles.scoped.css +72 -72
  201. package/help-panel/styles.selectors.js +5 -5
  202. package/hotspot/styles.css.js +7 -7
  203. package/hotspot/styles.scoped.css +8 -8
  204. package/hotspot/styles.selectors.js +7 -7
  205. package/icon/styles.css.js +38 -38
  206. package/icon/styles.scoped.css +83 -83
  207. package/icon/styles.selectors.js +38 -38
  208. package/input/styles.css.js +13 -13
  209. package/input/styles.scoped.css +33 -33
  210. package/input/styles.selectors.js +13 -13
  211. package/internal/analytics/index.d.ts +3 -1
  212. package/internal/analytics/index.d.ts.map +1 -1
  213. package/internal/analytics/index.js +8 -0
  214. package/internal/analytics/index.js.map +1 -1
  215. package/internal/analytics/interfaces.d.ts +9 -1
  216. package/internal/analytics/interfaces.d.ts.map +1 -1
  217. package/internal/analytics/interfaces.js.map +1 -1
  218. package/internal/components/abstract-switch/styles.css.js +13 -13
  219. package/internal/components/abstract-switch/styles.scoped.css +21 -21
  220. package/internal/components/abstract-switch/styles.selectors.js +13 -13
  221. package/internal/components/button-trigger/index.d.ts.map +1 -1
  222. package/internal/components/button-trigger/index.js +1 -1
  223. package/internal/components/button-trigger/index.js.map +1 -1
  224. package/internal/components/button-trigger/styles.css.js +13 -13
  225. package/internal/components/button-trigger/styles.scoped.css +28 -28
  226. package/internal/components/button-trigger/styles.selectors.js +13 -13
  227. package/internal/components/chart-filter/styles.css.js +3 -3
  228. package/internal/components/chart-filter/styles.scoped.css +4 -4
  229. package/internal/components/chart-filter/styles.selectors.js +3 -3
  230. package/internal/components/chart-legend/styles.css.js +6 -6
  231. package/internal/components/chart-legend/styles.scoped.css +16 -16
  232. package/internal/components/chart-legend/styles.selectors.js +6 -6
  233. package/internal/components/chart-plot/styles.css.js +5 -5
  234. package/internal/components/chart-plot/styles.scoped.css +6 -6
  235. package/internal/components/chart-plot/styles.selectors.js +5 -5
  236. package/internal/components/chart-popover/styles.css.js +3 -3
  237. package/internal/components/chart-popover/styles.scoped.css +4 -4
  238. package/internal/components/chart-popover/styles.selectors.js +3 -3
  239. package/internal/components/chart-series-details/styles.css.js +20 -20
  240. package/internal/components/chart-series-details/styles.scoped.css +36 -36
  241. package/internal/components/chart-series-details/styles.selectors.js +20 -20
  242. package/internal/components/chart-series-marker/styles.css.js +5 -5
  243. package/internal/components/chart-series-marker/styles.scoped.css +8 -8
  244. package/internal/components/chart-series-marker/styles.selectors.js +5 -5
  245. package/internal/components/chart-wrapper/styles.css.js +9 -9
  246. package/internal/components/chart-wrapper/styles.scoped.css +10 -10
  247. package/internal/components/chart-wrapper/styles.selectors.js +9 -9
  248. package/internal/components/checkbox-icon/styles.css.js +9 -9
  249. package/internal/components/checkbox-icon/styles.scoped.css +16 -16
  250. package/internal/components/checkbox-icon/styles.selectors.js +9 -9
  251. package/internal/components/dropdown/index.d.ts.map +1 -1
  252. package/internal/components/dropdown/index.js +5 -2
  253. package/internal/components/dropdown/index.js.map +1 -1
  254. package/internal/components/dropdown/styles.css.js +20 -20
  255. package/internal/components/dropdown/styles.scoped.css +38 -38
  256. package/internal/components/dropdown/styles.selectors.js +20 -20
  257. package/internal/components/dropdown-footer/styles.css.js +3 -3
  258. package/internal/components/dropdown-footer/styles.scoped.css +4 -4
  259. package/internal/components/dropdown-footer/styles.selectors.js +3 -3
  260. package/internal/components/dropdown-status/styles.css.js +2 -2
  261. package/internal/components/dropdown-status/styles.scoped.css +3 -3
  262. package/internal/components/dropdown-status/styles.selectors.js +2 -2
  263. package/internal/components/handle/styles.css.js +2 -2
  264. package/internal/components/handle/styles.scoped.css +7 -7
  265. package/internal/components/handle/styles.selectors.js +2 -2
  266. package/internal/components/menu-dropdown/styles.css.js +7 -7
  267. package/internal/components/menu-dropdown/styles.scoped.css +14 -14
  268. package/internal/components/menu-dropdown/styles.selectors.js +7 -7
  269. package/internal/components/option/styles.css.js +17 -17
  270. package/internal/components/option/styles.scoped.css +30 -30
  271. package/internal/components/option/styles.selectors.js +17 -17
  272. package/internal/components/options-list/styles.css.js +2 -2
  273. package/internal/components/options-list/styles.scoped.css +3 -3
  274. package/internal/components/options-list/styles.selectors.js +2 -2
  275. package/internal/components/panel-resize-handle/styles.css.js +5 -5
  276. package/internal/components/panel-resize-handle/styles.scoped.css +11 -11
  277. package/internal/components/panel-resize-handle/styles.selectors.js +5 -5
  278. package/internal/components/screenreader-only/styles.css.js +1 -1
  279. package/internal/components/screenreader-only/styles.scoped.css +2 -2
  280. package/internal/components/screenreader-only/styles.selectors.js +1 -1
  281. package/internal/components/selectable-item/styles.css.js +16 -16
  282. package/internal/components/selectable-item/styles.scoped.css +30 -30
  283. package/internal/components/selectable-item/styles.selectors.js +16 -16
  284. package/internal/components/token-list/styles.css.js +9 -9
  285. package/internal/components/token-list/styles.scoped.css +31 -31
  286. package/internal/components/token-list/styles.selectors.js +9 -9
  287. package/internal/environment.js +1 -1
  288. package/internal/environment.json +1 -1
  289. package/internal/hooks/use-component-analytics/index.d.ts +2 -0
  290. package/internal/hooks/use-component-analytics/index.d.ts.map +1 -0
  291. package/internal/hooks/use-component-analytics/index.js +11 -0
  292. package/internal/hooks/use-component-analytics/index.js.map +1 -0
  293. package/internal/manifest.json +1 -1
  294. package/key-value-pairs/styles.css.js +8 -8
  295. package/key-value-pairs/styles.scoped.css +10 -10
  296. package/key-value-pairs/styles.selectors.js +8 -8
  297. package/link/styles.css.js +20 -20
  298. package/link/styles.scoped.css +74 -74
  299. package/link/styles.selectors.js +20 -20
  300. package/mixed-line-bar-chart/styles.css.js +11 -11
  301. package/mixed-line-bar-chart/styles.scoped.css +18 -18
  302. package/mixed-line-bar-chart/styles.selectors.js +11 -11
  303. package/modal/styles.css.js +23 -23
  304. package/modal/styles.scoped.css +39 -39
  305. package/modal/styles.selectors.js +23 -23
  306. package/multiselect/styles.css.js +2 -2
  307. package/multiselect/styles.scoped.css +3 -3
  308. package/multiselect/styles.selectors.js +2 -2
  309. package/package.json +1 -1
  310. package/pagination/styles.css.js +9 -9
  311. package/pagination/styles.scoped.css +24 -24
  312. package/pagination/styles.selectors.js +9 -9
  313. package/pie-chart/styles.css.js +27 -27
  314. package/pie-chart/styles.scoped.css +49 -49
  315. package/pie-chart/styles.selectors.js +27 -27
  316. package/popover/styles.css.js +52 -52
  317. package/popover/styles.scoped.css +74 -74
  318. package/popover/styles.selectors.js +52 -52
  319. package/progress-bar/styles.css.js +19 -19
  320. package/progress-bar/styles.scoped.css +32 -32
  321. package/progress-bar/styles.selectors.js +19 -19
  322. package/prompt-input/styles.css.js +8 -8
  323. package/prompt-input/styles.scoped.css +20 -20
  324. package/prompt-input/styles.selectors.js +8 -8
  325. package/property-filter/filtering-token/styles.css.js +18 -18
  326. package/property-filter/filtering-token/styles.scoped.css +42 -42
  327. package/property-filter/filtering-token/styles.selectors.js +18 -18
  328. package/property-filter/styles.css.js +38 -38
  329. package/property-filter/styles.scoped.css +41 -41
  330. package/property-filter/styles.selectors.js +38 -38
  331. package/radio-group/styles.css.js +10 -10
  332. package/radio-group/styles.scoped.css +25 -25
  333. package/radio-group/styles.selectors.js +10 -10
  334. package/s3-resource-selector/s3-modal/styles.css.js +3 -3
  335. package/s3-resource-selector/s3-modal/styles.scoped.css +4 -4
  336. package/s3-resource-selector/s3-modal/styles.selectors.js +3 -3
  337. package/segmented-control/styles.css.js +15 -15
  338. package/segmented-control/styles.scoped.css +35 -35
  339. package/segmented-control/styles.selectors.js +15 -15
  340. package/select/parts/styles.css.js +21 -21
  341. package/select/parts/styles.scoped.css +23 -23
  342. package/select/parts/styles.selectors.js +21 -21
  343. package/select/styles.css.js +1 -1
  344. package/select/styles.scoped.css +2 -2
  345. package/select/styles.selectors.js +1 -1
  346. package/side-navigation/analytics-metadata/interfaces.d.ts +19 -0
  347. package/side-navigation/analytics-metadata/interfaces.d.ts.map +1 -0
  348. package/side-navigation/analytics-metadata/interfaces.js +4 -0
  349. package/side-navigation/analytics-metadata/interfaces.js.map +1 -0
  350. package/side-navigation/analytics-metadata/styles.css.js +7 -0
  351. package/side-navigation/analytics-metadata/styles.scoped.css +8 -0
  352. package/side-navigation/analytics-metadata/styles.selectors.js +8 -0
  353. package/side-navigation/index.d.ts.map +1 -1
  354. package/side-navigation/index.js +10 -1
  355. package/side-navigation/index.js.map +1 -1
  356. package/side-navigation/parts.d.ts +2 -1
  357. package/side-navigation/parts.d.ts.map +1 -1
  358. package/side-navigation/parts.js +42 -21
  359. package/side-navigation/parts.js.map +1 -1
  360. package/side-navigation/styles.css.js +30 -30
  361. package/side-navigation/styles.scoped.css +43 -43
  362. package/side-navigation/styles.selectors.js +30 -30
  363. package/slider/styles.css.js +26 -26
  364. package/slider/styles.scoped.css +77 -77
  365. package/slider/styles.selectors.js +26 -26
  366. package/space-between/styles.css.js +23 -23
  367. package/space-between/styles.scoped.css +25 -25
  368. package/space-between/styles.selectors.js +23 -23
  369. package/spinner/styles.css.js +13 -13
  370. package/spinner/styles.scoped.css +20 -20
  371. package/spinner/styles.selectors.js +13 -13
  372. package/split-panel/icons/styles.css.js +22 -22
  373. package/split-panel/icons/styles.scoped.css +25 -25
  374. package/split-panel/icons/styles.selectors.js +22 -22
  375. package/split-panel/styles.css.js +26 -26
  376. package/split-panel/styles.scoped.css +44 -44
  377. package/split-panel/styles.selectors.js +26 -26
  378. package/status-indicator/styles.css.js +23 -23
  379. package/status-indicator/styles.scoped.css +34 -30
  380. package/status-indicator/styles.selectors.js +23 -23
  381. package/table/body-cell/styles.css.js +47 -47
  382. package/table/body-cell/styles.scoped.css +307 -307
  383. package/table/body-cell/styles.selectors.js +47 -47
  384. package/table/expandable-rows/styles.css.js +3 -3
  385. package/table/expandable-rows/styles.scoped.css +14 -14
  386. package/table/expandable-rows/styles.selectors.js +3 -3
  387. package/table/header-cell/styles.css.js +26 -26
  388. package/table/header-cell/styles.scoped.css +75 -75
  389. package/table/header-cell/styles.selectors.js +26 -26
  390. package/table/interfaces.d.ts +1 -0
  391. package/table/interfaces.d.ts.map +1 -1
  392. package/table/interfaces.js.map +1 -1
  393. package/table/internal.d.ts.map +1 -1
  394. package/table/internal.js +20 -0
  395. package/table/internal.js.map +1 -1
  396. package/table/resizer/styles.css.js +8 -8
  397. package/table/resizer/styles.scoped.css +16 -16
  398. package/table/resizer/styles.selectors.js +8 -8
  399. package/table/selection/styles.css.js +3 -3
  400. package/table/selection/styles.scoped.css +4 -4
  401. package/table/selection/styles.selectors.js +3 -3
  402. package/table/sticky-scrollbar/styles.css.js +6 -6
  403. package/table/sticky-scrollbar/styles.scoped.css +8 -8
  404. package/table/sticky-scrollbar/styles.selectors.js +6 -6
  405. package/table/styles.css.js +34 -34
  406. package/table/styles.scoped.css +44 -44
  407. package/table/styles.selectors.js +34 -34
  408. package/tabs/styles.css.js +28 -28
  409. package/tabs/styles.scoped.css +52 -52
  410. package/tabs/styles.selectors.js +28 -28
  411. package/tag-editor/styles.css.js +3 -3
  412. package/tag-editor/styles.scoped.css +13 -13
  413. package/tag-editor/styles.selectors.js +3 -3
  414. package/text-content/styles.css.js +1 -1
  415. package/text-content/styles.scoped.css +65 -65
  416. package/text-content/styles.selectors.js +1 -1
  417. package/text-filter/styles.css.js +3 -3
  418. package/text-filter/styles.scoped.css +4 -4
  419. package/text-filter/styles.selectors.js +3 -3
  420. package/textarea/styles.css.js +5 -5
  421. package/textarea/styles.scoped.css +15 -15
  422. package/textarea/styles.selectors.js +5 -5
  423. package/tiles/styles.css.js +30 -30
  424. package/tiles/styles.scoped.css +81 -81
  425. package/tiles/styles.selectors.js +30 -30
  426. package/toggle/styles.css.js +10 -10
  427. package/toggle/styles.scoped.css +26 -26
  428. package/toggle/styles.selectors.js +10 -10
  429. package/token-group/styles.css.js +10 -10
  430. package/token-group/styles.scoped.css +23 -23
  431. package/token-group/styles.selectors.js +10 -10
  432. package/top-navigation/1.0-beta/styles.css.js +25 -25
  433. package/top-navigation/1.0-beta/styles.scoped.css +43 -43
  434. package/top-navigation/1.0-beta/styles.selectors.js +25 -25
  435. package/top-navigation/styles.css.js +47 -47
  436. package/top-navigation/styles.scoped.css +67 -67
  437. package/top-navigation/styles.selectors.js +47 -47
  438. package/tutorial-panel/components/tutorial-detail-view/styles.css.js +20 -20
  439. package/tutorial-panel/components/tutorial-detail-view/styles.scoped.css +22 -22
  440. package/tutorial-panel/components/tutorial-detail-view/styles.selectors.js +20 -20
  441. package/tutorial-panel/components/tutorial-list/styles.css.js +18 -18
  442. package/tutorial-panel/components/tutorial-list/styles.scoped.css +28 -28
  443. package/tutorial-panel/components/tutorial-list/styles.selectors.js +18 -18
  444. package/tutorial-panel/styles.css.js +1 -1
  445. package/tutorial-panel/styles.scoped.css +2 -2
  446. package/tutorial-panel/styles.selectors.js +1 -1
  447. package/wizard/styles.css.js +30 -30
  448. package/wizard/styles.scoped.css +59 -59
  449. package/wizard/styles.selectors.js +30 -30
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/side-navigation/index.tsx"],"names":[],"mappings":";AAMA,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAGnD,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAE/B,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EAAE,KAAU,EAAE,GAAG,KAAK,EAAE,EAAE,mBAAmB,eAGnF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/side-navigation/index.tsx"],"names":[],"mappings":";AASA,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAKnD,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAE/B,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EAAE,KAAU,EAAE,GAAG,KAAK,EAAE,EAAE,mBAAmB,eAkBnF"}
@@ -2,13 +2,22 @@ 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 useBaseComponent from '../internal/hooks/use-base-component';
6
7
  import { applyDisplayName } from '../internal/utils/apply-display-name';
7
8
  import { InternalSideNavigation } from './internal';
9
+ import analyticsSelectors from './analytics-metadata/styles.css.js';
8
10
  export default function SideNavigation(_a) {
9
11
  var { items = [] } = _a, props = __rest(_a, ["items"]);
10
12
  const internalProps = useBaseComponent('SideNavigation');
11
- return React.createElement(InternalSideNavigation, Object.assign({}, props, internalProps, { items: items }));
13
+ const componentAnalyticMetadata = {
14
+ name: 'awsui.SideNavigation',
15
+ label: `.${analyticsSelectors['header-link-text']}`,
16
+ properties: {
17
+ activeHref: props.activeHref || '',
18
+ },
19
+ };
20
+ return (React.createElement(InternalSideNavigation, Object.assign({}, props, internalProps, { items: items }, getAnalyticsMetadataAttribute({ component: componentAnalyticMetadata }))));
12
21
  }
13
22
  applyDisplayName(SideNavigation, 'SideNavigation');
14
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/side-navigation/index.tsx"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,gBAAgB,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAExE,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAIpD,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EAA6C;QAA7C,EAAE,KAAK,GAAG,EAAE,OAAiC,EAA5B,KAAK,cAAtB,SAAwB,CAAF;IAC3D,MAAM,aAAa,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IACzD,OAAO,oBAAC,sBAAsB,oBAAK,KAAK,EAAM,aAAa,IAAE,KAAK,EAAE,KAAK,IAAI,CAAC;AAChF,CAAC;AAED,gBAAgB,CAAC,cAAc,EAAE,gBAAgB,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 useBaseComponent from '../internal/hooks/use-base-component';\nimport { applyDisplayName } from '../internal/utils/apply-display-name';\nimport { SideNavigationProps } from './interfaces';\nimport { InternalSideNavigation } from './internal';\n\nexport { SideNavigationProps };\n\nexport default function SideNavigation({ items = [], ...props }: SideNavigationProps) {\n const internalProps = useBaseComponent('SideNavigation');\n return <InternalSideNavigation {...props} {...internalProps} items={items} />;\n}\n\napplyDisplayName(SideNavigation, 'SideNavigation');\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/side-navigation/index.tsx"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,6BAA6B,EAAE,MAAM,kEAAkE,CAAC;AAEjH,OAAO,gBAAgB,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAGxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEpD,OAAO,kBAAkB,MAAM,oCAAoC,CAAC;AAIpE,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EAA6C;QAA7C,EAAE,KAAK,GAAG,EAAE,OAAiC,EAA5B,KAAK,cAAtB,SAAwB,CAAF;IAC3D,MAAM,aAAa,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IAEzD,MAAM,yBAAyB,GAAsD;QACnF,IAAI,EAAE,sBAAsB;QAC5B,KAAK,EAAE,IAAI,kBAAkB,CAAC,kBAAkB,CAAC,EAAE;QACnD,UAAU,EAAE;YACV,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,EAAE;SACnC;KACF,CAAC;IACF,OAAO,CACL,oBAAC,sBAAsB,oBACjB,KAAK,EACL,aAAa,IACjB,KAAK,EAAE,KAAK,IACR,6BAA6B,CAAC,EAAE,SAAS,EAAE,yBAAyB,EAAE,CAAC,EAC3E,CACH,CAAC;AACJ,CAAC;AAED,gBAAgB,CAAC,cAAc,EAAE,gBAAgB,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 useBaseComponent from '../internal/hooks/use-base-component';\nimport { applyDisplayName } from '../internal/utils/apply-display-name';\nimport { GeneratedAnalyticsMetadataSideNavigationComponent } from './analytics-metadata/interfaces';\nimport { SideNavigationProps } from './interfaces';\nimport { InternalSideNavigation } from './internal';\n\nimport analyticsSelectors from './analytics-metadata/styles.css.js';\n\nexport { SideNavigationProps };\n\nexport default function SideNavigation({ items = [], ...props }: SideNavigationProps) {\n const internalProps = useBaseComponent('SideNavigation');\n\n const componentAnalyticMetadata: GeneratedAnalyticsMetadataSideNavigationComponent = {\n name: 'awsui.SideNavigation',\n label: `.${analyticsSelectors['header-link-text']}`,\n properties: {\n activeHref: props.activeHref || '',\n },\n };\n return (\n <InternalSideNavigation\n {...props}\n {...internalProps}\n items={items}\n {...getAnalyticsMetadataAttribute({ component: componentAnalyticMetadata })}\n />\n );\n}\n\napplyDisplayName(SideNavigation, 'SideNavigation');\n"]}
@@ -4,6 +4,7 @@ interface BaseItemComponentProps {
4
4
  activeHref?: string;
5
5
  fireChange: (item: SideNavigationProps.Section | SideNavigationProps.ExpandableLinkGroup, expanded: boolean) => void;
6
6
  fireFollow: (item: SideNavigationProps.Link | SideNavigationProps.Header | SideNavigationProps.LinkGroup | SideNavigationProps.ExpandableLinkGroup, event: React.SyntheticEvent | Event) => void;
7
+ position?: string;
7
8
  }
8
9
  export interface HeaderProps extends BaseItemComponentProps {
9
10
  definition: SideNavigationProps.Header;
@@ -13,6 +14,6 @@ export interface NavigationItemsListProps extends BaseItemComponentProps {
13
14
  items: ReadonlyArray<SideNavigationProps.Item>;
14
15
  variant: 'section' | 'section-group' | 'link-group' | 'expandable-link-group' | 'root';
15
16
  }
16
- export declare function NavigationItemsList({ items, variant, activeHref, fireChange, fireFollow }: NavigationItemsListProps): JSX.Element;
17
+ export declare function NavigationItemsList({ items, variant, activeHref, fireChange, fireFollow, position, }: NavigationItemsListProps): JSX.Element;
17
18
  export {};
18
19
  //# sourceMappingURL=parts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parts.d.ts","sourceRoot":"","sources":["../../../src/side-navigation/parts.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA+D,MAAM,OAAO,CAAC;AAUpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAKnD,UAAU,sBAAsB;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,CAAC,IAAI,EAAE,mBAAmB,CAAC,OAAO,GAAG,mBAAmB,CAAC,mBAAmB,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACrH,UAAU,EAAE,CACV,IAAI,EACA,mBAAmB,CAAC,IAAI,GACxB,mBAAmB,CAAC,MAAM,GAC1B,mBAAmB,CAAC,SAAS,GAC7B,mBAAmB,CAAC,mBAAmB,EAC3C,KAAK,EAAE,KAAK,CAAC,cAAc,GAAG,KAAK,KAChC,IAAI,CAAC;CACX;AAED,MAAM,WAAW,WAAY,SAAQ,sBAAsB;IACzD,UAAU,EAAE,mBAAmB,CAAC,MAAM,CAAC;CACxC;AAED,wBAAgB,MAAM,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,WAAW,eAkCzE;AAED,MAAM,WAAW,wBAAyB,SAAQ,sBAAsB;IACtE,KAAK,EAAE,aAAa,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC/C,OAAO,EAAE,SAAS,GAAG,eAAe,GAAG,YAAY,GAAG,uBAAuB,GAAG,MAAM,CAAC;CACxF;AAQD,wBAAgB,mBAAmB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,wBAAwB,eA2HnH"}
1
+ {"version":3,"file":"parts.d.ts","sourceRoot":"","sources":["../../../src/side-navigation/parts.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA+D,MAAM,OAAO,CAAC;AAapF,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAMnD,UAAU,sBAAsB;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,CAAC,IAAI,EAAE,mBAAmB,CAAC,OAAO,GAAG,mBAAmB,CAAC,mBAAmB,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACrH,UAAU,EAAE,CACV,IAAI,EACA,mBAAmB,CAAC,IAAI,GACxB,mBAAmB,CAAC,MAAM,GAC1B,mBAAmB,CAAC,SAAS,GAC7B,mBAAmB,CAAC,mBAAmB,EAC3C,KAAK,EAAE,KAAK,CAAC,cAAc,GAAG,KAAK,KAChC,IAAI,CAAC;IACV,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAY,SAAQ,sBAAsB;IACzD,UAAU,EAAE,mBAAmB,CAAC,MAAM,CAAC;CACxC;AAED,wBAAgB,MAAM,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,WAAW,eA+CzE;AAED,MAAM,WAAW,wBAAyB,SAAQ,sBAAsB;IACtE,KAAK,EAAE,aAAa,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC/C,OAAO,EAAE,SAAS,GAAG,eAAe,GAAG,YAAY,GAAG,uBAAuB,GAAG,MAAM,CAAC;CACxF;AAQD,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,OAAO,EACP,UAAU,EACV,UAAU,EACV,UAAU,EACV,QAAa,GACd,EAAE,wBAAwB,eAgJ1B"}
@@ -2,6 +2,7 @@
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
  import React, { useCallback, useEffect, useMemo, useState } from 'react';
4
4
  import clsx from 'clsx';
5
+ import { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';
5
6
  import InternalBox from '../box/internal';
6
7
  import InternalExpandableSection from '../expandable-section/internal';
7
8
  import InternalIcon from '../icon/internal';
@@ -9,6 +10,7 @@ import { isPlainLeftClick } from '../internal/events';
9
10
  import { useVisualRefresh } from '../internal/hooks/use-visual-mode';
10
11
  import { checkSafeUrl } from '../internal/utils/check-safe-url';
11
12
  import { hasActiveLink } from './util';
13
+ import analyticsSelectors from './analytics-metadata/styles.css.js';
12
14
  import styles from './styles.css.js';
13
15
  export function Header({ definition, activeHref, fireFollow }) {
14
16
  checkSafeUrl('SideNavigation', definition.href);
@@ -17,16 +19,25 @@ export function Header({ definition, activeHref, fireFollow }) {
17
19
  fireFollow(definition, event);
18
20
  }
19
21
  }, [fireFollow, definition]);
22
+ const clickActionAnalyticsMetadata = {
23
+ action: 'click',
24
+ detail: {
25
+ label: `.${analyticsSelectors['header-link-text']}`,
26
+ external: 'false',
27
+ href: definition.href,
28
+ position: 'header',
29
+ },
30
+ };
20
31
  return (React.createElement(React.Fragment, null,
21
32
  React.createElement("h2", { className: styles.header },
22
- React.createElement("a", { href: definition.href, className: clsx(styles['header-link'], { [styles['header-link--has-logo']]: !!definition.logo }), "aria-current": definition.href === activeHref ? 'page' : undefined, onClick: onClick },
33
+ React.createElement("a", Object.assign({ href: definition.href, className: clsx(styles['header-link'], { [styles['header-link--has-logo']]: !!definition.logo }), "aria-current": definition.href === activeHref ? 'page' : undefined, onClick: onClick }, getAnalyticsMetadataAttribute(clickActionAnalyticsMetadata)),
23
34
  definition.logo && (React.createElement("img", Object.assign({ className: clsx(styles['header-logo'], {
24
35
  [styles['header-logo--stretched']]: !definition.text,
25
36
  }) }, definition.logo))),
26
- React.createElement("span", { className: styles['header-link-text'] }, definition.text))),
37
+ React.createElement("span", { className: clsx(styles['header-link-text'], analyticsSelectors['header-link-text']) }, definition.text))),
27
38
  React.createElement(Divider, { isPresentational: true, variant: "header" })));
28
39
  }
29
- export function NavigationItemsList({ items, variant, activeHref, fireChange, fireFollow }) {
40
+ export function NavigationItemsList({ items, variant, activeHref, fireChange, fireFollow, position = '', }) {
30
41
  const lists = [];
31
42
  let currentListIndex = 0;
32
43
  lists[currentListIndex] = {
@@ -36,6 +47,7 @@ export function NavigationItemsList({ items, variant, activeHref, fireChange, fi
36
47
  items.forEach((item, index) => {
37
48
  var _a, _b, _c, _d, _e;
38
49
  const itemid = index + 1;
50
+ const itemPosition = `${position ? `${position},` : ''}${itemid}`;
39
51
  switch (item.type) {
40
52
  case 'divider': {
41
53
  const dividerIndex = lists.length;
@@ -53,35 +65,35 @@ export function NavigationItemsList({ items, variant, activeHref, fireChange, fi
53
65
  case 'link': {
54
66
  (_a = lists[currentListIndex].items) === null || _a === void 0 ? void 0 : _a.push({
55
67
  element: (React.createElement("li", { key: index, "data-itemid": `item-${itemid}`, className: styles['list-item'] },
56
- React.createElement(Link, { definition: item, activeHref: activeHref, fireChange: fireChange, fireFollow: fireFollow }))),
68
+ React.createElement(Link, { definition: item, activeHref: activeHref, fireChange: fireChange, fireFollow: fireFollow, position: itemPosition }))),
57
69
  });
58
70
  return;
59
71
  }
60
72
  case 'section': {
61
73
  (_b = lists[currentListIndex].items) === null || _b === void 0 ? void 0 : _b.push({
62
74
  element: (React.createElement("li", { key: index, "data-itemid": `item-${itemid}`, className: styles['list-item'] },
63
- React.createElement(Section, { definition: item, activeHref: activeHref, variant: variant, fireChange: fireChange, fireFollow: fireFollow }))),
75
+ React.createElement(Section, { definition: item, activeHref: activeHref, variant: variant, fireChange: fireChange, fireFollow: fireFollow, position: itemPosition }))),
64
76
  });
65
77
  return;
66
78
  }
67
79
  case 'section-group': {
68
80
  (_c = lists[currentListIndex].items) === null || _c === void 0 ? void 0 : _c.push({
69
81
  element: (React.createElement("li", { key: index, "data-itemid": `item-${itemid}`, className: styles['list-item'] },
70
- React.createElement(SectionGroup, { definition: item, activeHref: activeHref, fireChange: fireChange, fireFollow: fireFollow }))),
82
+ React.createElement(SectionGroup, { definition: item, activeHref: activeHref, fireChange: fireChange, fireFollow: fireFollow, position: itemPosition }))),
71
83
  });
72
84
  return;
73
85
  }
74
86
  case 'link-group': {
75
87
  (_d = lists[currentListIndex].items) === null || _d === void 0 ? void 0 : _d.push({
76
88
  element: (React.createElement("li", { key: index, "data-itemid": `item-${itemid}`, className: styles['list-item'] },
77
- React.createElement(LinkGroup, { definition: item, activeHref: activeHref, fireChange: fireChange, fireFollow: fireFollow }))),
89
+ React.createElement(LinkGroup, { definition: item, activeHref: activeHref, fireChange: fireChange, fireFollow: fireFollow, position: itemPosition }))),
78
90
  });
79
91
  return;
80
92
  }
81
93
  case 'expandable-link-group': {
82
94
  (_e = lists[currentListIndex].items) === null || _e === void 0 ? void 0 : _e.push({
83
95
  element: (React.createElement("li", { key: index, "data-itemid": `item-${itemid}`, className: styles['list-item'] },
84
- React.createElement(ExpandableLinkGroup, { definition: item, activeHref: activeHref, fireChange: fireChange, fireFollow: fireFollow, variant: variant }))),
96
+ React.createElement(ExpandableLinkGroup, { definition: item, activeHref: activeHref, fireChange: fireChange, fireFollow: fireFollow, variant: variant, position: itemPosition }))),
85
97
  });
86
98
  return;
87
99
  }
@@ -104,7 +116,7 @@ export function NavigationItemsList({ items, variant, activeHref, fireChange, fi
104
116
  function Divider({ variant = 'default', isPresentational = false }) {
105
117
  return (React.createElement("hr", { className: clsx(styles.divider, styles[`divider-${variant}`]), role: isPresentational ? 'presentation' : undefined }));
106
118
  }
107
- function Link({ definition, expanded, activeHref, fireFollow }) {
119
+ function Link({ definition, expanded, activeHref, fireFollow, position }) {
108
120
  checkSafeUrl('SideNavigation', definition.href);
109
121
  const isActive = definition.href === activeHref;
110
122
  const onClick = useCallback((event) => {
@@ -112,14 +124,23 @@ function Link({ definition, expanded, activeHref, fireFollow }) {
112
124
  fireFollow(definition, event);
113
125
  }
114
126
  }, [fireFollow, definition]);
127
+ const clickActionAnalyticsMetadata = {
128
+ action: 'click',
129
+ detail: {
130
+ label: `.${analyticsSelectors['link-text']}`,
131
+ external: `${!!definition.external}`,
132
+ href: definition.href,
133
+ position,
134
+ },
135
+ };
115
136
  return (React.createElement(React.Fragment, null,
116
- React.createElement("a", { href: definition.href, className: clsx(styles.link, { [styles['link-active']]: isActive }), target: definition.external ? '_blank' : undefined, rel: definition.external ? 'noopener noreferrer' : undefined, "aria-expanded": expanded, "aria-current": definition.href === activeHref ? 'page' : undefined, onClick: onClick },
117
- definition.text,
137
+ React.createElement("a", Object.assign({ href: definition.href, className: clsx(styles.link, { [styles['link-active']]: isActive }), target: definition.external ? '_blank' : undefined, rel: definition.external ? 'noopener noreferrer' : undefined, "aria-expanded": expanded, "aria-current": definition.href === activeHref ? 'page' : undefined, onClick: onClick }, getAnalyticsMetadataAttribute(clickActionAnalyticsMetadata)),
138
+ React.createElement("span", { className: analyticsSelectors['link-text'] }, definition.text),
118
139
  definition.external && (React.createElement("span", { "aria-label": definition.externalIconAriaLabel, role: definition.externalIconAriaLabel ? 'img' : undefined },
119
140
  React.createElement(InternalIcon, { name: "external", className: styles['external-icon'] })))),
120
141
  definition.info && React.createElement("span", { className: styles.info }, definition.info)));
121
142
  }
122
- function Section({ definition, activeHref, fireFollow, fireChange, variant }) {
143
+ function Section({ definition, activeHref, fireFollow, fireChange, variant, position }) {
123
144
  var _a;
124
145
  const [expanded, setExpanded] = useState((_a = definition.defaultExpanded) !== null && _a !== void 0 ? _a : true);
125
146
  const isVisualRefresh = useVisualRefresh();
@@ -132,20 +153,20 @@ function Section({ definition, activeHref, fireFollow, fireChange, variant }) {
132
153
  setExpanded((_a = definition.defaultExpanded) !== null && _a !== void 0 ? _a : true);
133
154
  }, [definition]);
134
155
  return (React.createElement(InternalExpandableSection, { variant: "footer", expanded: expanded, onChange: onExpandedChange, className: clsx(styles.section, variant === 'section-group' && styles['section--no-ident'], isVisualRefresh && styles.refresh), headerText: definition.text },
135
- React.createElement(NavigationItemsList, { variant: "section", items: definition.items, fireFollow: fireFollow, fireChange: fireChange, activeHref: activeHref })));
156
+ React.createElement(NavigationItemsList, { variant: "section", items: definition.items, fireFollow: fireFollow, fireChange: fireChange, activeHref: activeHref, position: position })));
136
157
  }
137
- function SectionGroup({ definition, activeHref, fireFollow, fireChange }) {
158
+ function SectionGroup({ definition, activeHref, fireFollow, fireChange, position }) {
138
159
  return (React.createElement("div", { className: styles['section-group'] },
139
160
  React.createElement(InternalBox, { className: styles['section-group-title'], variant: "h3" }, definition.title),
140
- React.createElement(NavigationItemsList, { variant: "section-group", items: definition.items, fireFollow: fireFollow, fireChange: fireChange, activeHref: activeHref })));
161
+ React.createElement(NavigationItemsList, { variant: "section-group", items: definition.items, fireFollow: fireFollow, fireChange: fireChange, activeHref: activeHref, position: position })));
141
162
  }
142
- function LinkGroup({ definition, activeHref, fireFollow, fireChange }) {
163
+ function LinkGroup({ definition, activeHref, fireFollow, fireChange, position }) {
143
164
  checkSafeUrl('SideNavigation', definition.href);
144
165
  return (React.createElement(React.Fragment, null,
145
- React.createElement(Link, { definition: { type: 'link', href: definition.href, text: definition.text, info: definition.info }, fireFollow: (_, event) => fireFollow(definition, event), fireChange: fireChange, activeHref: activeHref }),
146
- React.createElement(NavigationItemsList, { variant: "link-group", items: definition.items, fireFollow: fireFollow, fireChange: fireChange, activeHref: activeHref })));
166
+ React.createElement(Link, { definition: { type: 'link', href: definition.href, text: definition.text, info: definition.info }, fireFollow: (_, event) => fireFollow(definition, event), fireChange: fireChange, activeHref: activeHref, position: position }),
167
+ React.createElement(NavigationItemsList, { variant: "link-group", items: definition.items, fireFollow: fireFollow, fireChange: fireChange, activeHref: activeHref, position: position })));
147
168
  }
148
- function ExpandableLinkGroup({ definition, fireFollow, fireChange, activeHref, variant }) {
169
+ function ExpandableLinkGroup({ definition, fireFollow, fireChange, activeHref, variant, position, }) {
149
170
  // Check whether the definition contains an active link and memoize it to avoid
150
171
  // rechecking every time.
151
172
  const containsActiveLink = useMemo(() => {
@@ -179,7 +200,7 @@ function ExpandableLinkGroup({ definition, fireFollow, fireChange, activeHref, v
179
200
  fireChange(definition, true);
180
201
  }
181
202
  };
182
- return (React.createElement(InternalExpandableSection, { className: clsx(styles['expandable-link-group'], variant === 'section-group' && styles['expandable-link-group--no-ident']), variant: "navigation", expanded: userExpanded !== null && userExpanded !== void 0 ? userExpanded : expanded, onChange: onExpandedChange, headerText: React.createElement(Link, { definition: { type: 'link', href: definition.href, text: definition.text }, expanded: userExpanded !== null && userExpanded !== void 0 ? userExpanded : expanded, fireFollow: onHeaderFollow, fireChange: fireChange, activeHref: activeHref }) },
183
- React.createElement(NavigationItemsList, { variant: "expandable-link-group", items: definition.items, fireFollow: fireFollow, fireChange: fireChange, activeHref: activeHref })));
203
+ return (React.createElement(InternalExpandableSection, { className: clsx(styles['expandable-link-group'], variant === 'section-group' && styles['expandable-link-group--no-ident']), variant: "navigation", expanded: userExpanded !== null && userExpanded !== void 0 ? userExpanded : expanded, onChange: onExpandedChange, headerText: React.createElement(Link, { definition: { type: 'link', href: definition.href, text: definition.text }, expanded: userExpanded !== null && userExpanded !== void 0 ? userExpanded : expanded, fireFollow: onHeaderFollow, fireChange: fireChange, activeHref: activeHref, position: position }) },
204
+ React.createElement(NavigationItemsList, { variant: "expandable-link-group", items: definition.items, fireFollow: fireFollow, fireChange: fireChange, activeHref: activeHref, position: position })));
184
205
  }
185
206
  //# sourceMappingURL=parts.js.map
@@ -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, useState } from 'react';\nimport clsx from 'clsx';\n\nimport InternalBox from '../box/internal';\nimport { ExpandableSectionProps } from '../expandable-section/interfaces';\nimport InternalExpandableSection from '../expandable-section/internal';\nimport InternalIcon from '../icon/internal';\nimport { isPlainLeftClick, NonCancelableCustomEvent } from '../internal/events';\nimport { useVisualRefresh } from '../internal/hooks/use-visual-mode';\nimport { checkSafeUrl } from '../internal/utils/check-safe-url';\nimport { SideNavigationProps } from './interfaces';\nimport { hasActiveLink } from './util';\n\nimport styles from './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}\n\nexport interface HeaderProps extends BaseItemComponentProps {\n definition: SideNavigationProps.Header;\n}\n\nexport function Header({ definition, activeHref, fireFollow }: 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 return (\n <>\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 >\n {definition.logo && (\n <img\n className={clsx(styles['header-logo'], {\n [styles['header-logo--stretched']]: !definition.text,\n })}\n {...definition.logo}\n />\n )}\n <span className={styles['header-link-text']}>{definition.text}</span>\n </a>\n </h2>\n <Divider isPresentational={true} variant=\"header\" />\n </>\n );\n}\n\nexport interface NavigationItemsListProps extends BaseItemComponentProps {\n items: ReadonlyArray<SideNavigationProps.Item>;\n variant: 'section' | 'section-group' | 'link-group' | 'expandable-link-group' | 'root';\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({ items, variant, activeHref, fireChange, fireFollow }: 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 switch (item.type) {\n case 'divider': {\n const dividerIndex = lists.length;\n lists[dividerIndex] = {\n element: (\n <div data-itemid={`item-${itemid}`}>\n <Divider variant=\"default\" />\n </div>\n ),\n };\n currentListIndex = lists.length;\n lists[currentListIndex] = {\n listVariant: variant,\n items: [],\n };\n return;\n }\n case 'link': {\n lists[currentListIndex].items?.push({\n element: (\n <li key={index} data-itemid={`item-${itemid}`} className={styles['list-item']}>\n <Link definition={item} activeHref={activeHref} fireChange={fireChange} fireFollow={fireFollow} />\n </li>\n ),\n });\n return;\n }\n case 'section': {\n lists[currentListIndex].items?.push({\n element: (\n <li key={index} data-itemid={`item-${itemid}`} className={styles['list-item']}>\n <Section\n definition={item}\n activeHref={activeHref}\n variant={variant}\n fireChange={fireChange}\n fireFollow={fireFollow}\n />\n </li>\n ),\n });\n return;\n }\n case 'section-group': {\n lists[currentListIndex].items?.push({\n element: (\n <li key={index} data-itemid={`item-${itemid}`} className={styles['list-item']}>\n <SectionGroup definition={item} activeHref={activeHref} fireChange={fireChange} fireFollow={fireFollow} />\n </li>\n ),\n });\n return;\n }\n case 'link-group': {\n lists[currentListIndex].items?.push({\n element: (\n <li key={index} data-itemid={`item-${itemid}`} className={styles['list-item']}>\n <LinkGroup definition={item} activeHref={activeHref} fireChange={fireChange} fireFollow={fireFollow} />\n </li>\n ),\n });\n return;\n }\n case 'expandable-link-group': {\n lists[currentListIndex].items?.push({\n element: (\n <li key={index} data-itemid={`item-${itemid}`} className={styles['list-item']}>\n <ExpandableLinkGroup\n definition={item}\n activeHref={activeHref}\n fireChange={fireChange}\n fireFollow={fireFollow}\n variant={variant}\n />\n </li>\n ),\n });\n return;\n }\n }\n });\n\n const lastListIndex = lists.length - 1;\n\n return (\n <>\n {lists.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--last']]: list.listVariant === 'root' && index === lastListIndex,\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--last']]: list.listVariant === 'root' && index === lastListIndex,\n })}\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}\n\nfunction Divider({ variant = 'default', isPresentational = false }: DividerProps) {\n return (\n <hr\n className={clsx(styles.divider, styles[`divider-${variant}`])}\n role={isPresentational ? 'presentation' : undefined}\n />\n );\n}\n\ninterface LinkProps extends BaseItemComponentProps {\n definition: SideNavigationProps.Link;\n expanded?: boolean;\n}\n\nfunction Link({ definition, expanded, activeHref, fireFollow }: LinkProps) {\n checkSafeUrl('SideNavigation', definition.href);\n const isActive = definition.href === activeHref;\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 return (\n <>\n <a\n href={definition.href}\n className={clsx(styles.link, { [styles['link-active']]: isActive })}\n target={definition.external ? '_blank' : undefined}\n rel={definition.external ? 'noopener noreferrer' : undefined}\n aria-expanded={expanded}\n aria-current={definition.href === activeHref ? 'page' : undefined}\n onClick={onClick}\n >\n {definition.text}\n {definition.external && (\n <span\n aria-label={definition.externalIconAriaLabel}\n role={definition.externalIconAriaLabel ? 'img' : undefined}\n >\n <InternalIcon name=\"external\" className={styles['external-icon']} />\n </span>\n )}\n </a>\n {definition.info && <span className={styles.info}>{definition.info}</span>}\n </>\n );\n}\n\ninterface SectionProps extends BaseItemComponentProps {\n definition: SideNavigationProps.Section;\n variant: 'section' | 'section-group' | 'link-group' | 'expandable-link-group' | 'root';\n}\n\nfunction Section({ definition, activeHref, fireFollow, fireChange, variant }: SectionProps) {\n const [expanded, setExpanded] = useState<boolean>(definition.defaultExpanded ?? true);\n const isVisualRefresh = useVisualRefresh();\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 return (\n <InternalExpandableSection\n variant=\"footer\"\n expanded={expanded}\n onChange={onExpandedChange}\n className={clsx(\n styles.section,\n variant === 'section-group' && styles['section--no-ident'],\n isVisualRefresh && styles.refresh\n )}\n headerText={definition.text}\n >\n <NavigationItemsList\n variant=\"section\"\n items={definition.items}\n fireFollow={fireFollow}\n fireChange={fireChange}\n activeHref={activeHref}\n />\n </InternalExpandableSection>\n );\n}\n\ninterface SectionGroupProps extends BaseItemComponentProps {\n definition: SideNavigationProps.SectionGroup;\n}\n\nfunction SectionGroup({ definition, activeHref, fireFollow, fireChange }: SectionGroupProps) {\n return (\n <div className={styles['section-group']}>\n <InternalBox className={styles['section-group-title']} variant=\"h3\">\n {definition.title}\n </InternalBox>\n <NavigationItemsList\n variant=\"section-group\"\n items={definition.items}\n fireFollow={fireFollow}\n fireChange={fireChange}\n activeHref={activeHref}\n />\n </div>\n );\n}\n\ninterface LinkGroupProps extends BaseItemComponentProps {\n definition: SideNavigationProps.LinkGroup;\n}\n\nfunction LinkGroup({ definition, activeHref, fireFollow, fireChange }: LinkGroupProps) {\n checkSafeUrl('SideNavigation', definition.href);\n\n return (\n <>\n <Link\n definition={{ type: 'link', href: definition.href, text: definition.text, info: definition.info }}\n fireFollow={(_, event) => fireFollow(definition, event)}\n fireChange={fireChange}\n activeHref={activeHref}\n />\n <NavigationItemsList\n variant=\"link-group\"\n items={definition.items}\n fireFollow={fireFollow}\n fireChange={fireChange}\n activeHref={activeHref}\n />\n </>\n );\n}\n\ninterface ExpandableLinkGroupProps extends BaseItemComponentProps {\n definition: SideNavigationProps.ExpandableLinkGroup;\n variant: 'section' | 'section-group' | 'link-group' | 'expandable-link-group' | 'root';\n}\n\nfunction ExpandableLinkGroup({ definition, fireFollow, fireChange, activeHref, variant }: 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 )}\n variant=\"navigation\"\n expanded={userExpanded ?? expanded}\n onChange={onExpandedChange}\n headerText={\n <Link\n definition={{ type: 'link', href: definition.href, text: definition.text }}\n expanded={userExpanded ?? expanded}\n fireFollow={onHeaderFollow}\n fireChange={fireChange}\n activeHref={activeHref}\n />\n }\n >\n <NavigationItemsList\n variant=\"expandable-link-group\"\n items={definition.items}\n fireFollow={fireFollow}\n fireChange={fireChange}\n activeHref={activeHref}\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, 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 InternalIcon from '../icon/internal';\nimport { isPlainLeftClick, NonCancelableCustomEvent } from '../internal/events';\nimport { useVisualRefresh } from '../internal/hooks/use-visual-mode';\nimport { checkSafeUrl } from '../internal/utils/check-safe-url';\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';\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}\n\nexport interface HeaderProps extends BaseItemComponentProps {\n definition: SideNavigationProps.Header;\n}\n\nexport function Header({ definition, activeHref, fireFollow }: 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 <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 <img\n className={clsx(styles['header-logo'], {\n [styles['header-logo--stretched']]: !definition.text,\n })}\n {...definition.logo}\n />\n )}\n <span className={clsx(styles['header-link-text'], analyticsSelectors['header-link-text'])}>\n {definition.text}\n </span>\n </a>\n </h2>\n <Divider isPresentational={true} variant=\"header\" />\n </>\n );\n}\n\nexport interface NavigationItemsListProps extends BaseItemComponentProps {\n items: ReadonlyArray<SideNavigationProps.Item>;\n variant: 'section' | 'section-group' | 'link-group' | 'expandable-link-group' | 'root';\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}: 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 switch (item.type) {\n case 'divider': {\n const dividerIndex = lists.length;\n lists[dividerIndex] = {\n element: (\n <div data-itemid={`item-${itemid}`}>\n <Divider variant=\"default\" />\n </div>\n ),\n };\n currentListIndex = lists.length;\n lists[currentListIndex] = {\n listVariant: variant,\n items: [],\n };\n return;\n }\n case 'link': {\n lists[currentListIndex].items?.push({\n element: (\n <li key={index} data-itemid={`item-${itemid}`} className={styles['list-item']}>\n <Link\n definition={item}\n activeHref={activeHref}\n fireChange={fireChange}\n fireFollow={fireFollow}\n position={itemPosition}\n />\n </li>\n ),\n });\n return;\n }\n case 'section': {\n lists[currentListIndex].items?.push({\n element: (\n <li key={index} data-itemid={`item-${itemid}`} className={styles['list-item']}>\n <Section\n definition={item}\n activeHref={activeHref}\n variant={variant}\n fireChange={fireChange}\n fireFollow={fireFollow}\n position={itemPosition}\n />\n </li>\n ),\n });\n return;\n }\n case 'section-group': {\n lists[currentListIndex].items?.push({\n element: (\n <li key={index} data-itemid={`item-${itemid}`} className={styles['list-item']}>\n <SectionGroup\n definition={item}\n activeHref={activeHref}\n fireChange={fireChange}\n fireFollow={fireFollow}\n position={itemPosition}\n />\n </li>\n ),\n });\n return;\n }\n case 'link-group': {\n lists[currentListIndex].items?.push({\n element: (\n <li key={index} data-itemid={`item-${itemid}`} className={styles['list-item']}>\n <LinkGroup\n definition={item}\n activeHref={activeHref}\n fireChange={fireChange}\n fireFollow={fireFollow}\n position={itemPosition}\n />\n </li>\n ),\n });\n return;\n }\n case 'expandable-link-group': {\n lists[currentListIndex].items?.push({\n element: (\n <li key={index} data-itemid={`item-${itemid}`} className={styles['list-item']}>\n <ExpandableLinkGroup\n definition={item}\n activeHref={activeHref}\n fireChange={fireChange}\n fireFollow={fireFollow}\n variant={variant}\n position={itemPosition}\n />\n </li>\n ),\n });\n return;\n }\n }\n });\n\n const lastListIndex = lists.length - 1;\n\n return (\n <>\n {lists.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--last']]: list.listVariant === 'root' && index === lastListIndex,\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--last']]: list.listVariant === 'root' && index === lastListIndex,\n })}\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}\n\nfunction Divider({ variant = 'default', isPresentational = false }: DividerProps) {\n return (\n <hr\n className={clsx(styles.divider, styles[`divider-${variant}`])}\n role={isPresentational ? 'presentation' : undefined}\n />\n );\n}\n\ninterface LinkProps extends BaseItemComponentProps {\n definition: SideNavigationProps.Link;\n expanded?: boolean;\n}\n\nfunction Link({ definition, expanded, activeHref, fireFollow, position }: LinkProps) {\n checkSafeUrl('SideNavigation', definition.href);\n const isActive = definition.href === activeHref;\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 return (\n <>\n <a\n href={definition.href}\n className={clsx(styles.link, { [styles['link-active']]: isActive })}\n target={definition.external ? '_blank' : undefined}\n rel={definition.external ? 'noopener noreferrer' : undefined}\n aria-expanded={expanded}\n aria-current={definition.href === activeHref ? 'page' : undefined}\n onClick={onClick}\n {...getAnalyticsMetadataAttribute(clickActionAnalyticsMetadata)}\n >\n <span className={analyticsSelectors['link-text']}>{definition.text}</span>\n {definition.external && (\n <span\n aria-label={definition.externalIconAriaLabel}\n role={definition.externalIconAriaLabel ? 'img' : undefined}\n >\n <InternalIcon name=\"external\" className={styles['external-icon']} />\n </span>\n )}\n </a>\n {definition.info && <span className={styles.info}>{definition.info}</span>}\n </>\n );\n}\n\ninterface SectionProps extends BaseItemComponentProps {\n definition: SideNavigationProps.Section;\n variant: 'section' | 'section-group' | 'link-group' | 'expandable-link-group' | 'root';\n}\n\nfunction Section({ definition, activeHref, fireFollow, fireChange, variant, position }: SectionProps) {\n const [expanded, setExpanded] = useState<boolean>(definition.defaultExpanded ?? true);\n const isVisualRefresh = useVisualRefresh();\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 return (\n <InternalExpandableSection\n variant=\"footer\"\n expanded={expanded}\n onChange={onExpandedChange}\n className={clsx(\n styles.section,\n variant === 'section-group' && styles['section--no-ident'],\n isVisualRefresh && styles.refresh\n )}\n headerText={definition.text}\n >\n <NavigationItemsList\n variant=\"section\"\n items={definition.items}\n fireFollow={fireFollow}\n fireChange={fireChange}\n activeHref={activeHref}\n position={position}\n />\n </InternalExpandableSection>\n );\n}\n\ninterface SectionGroupProps extends BaseItemComponentProps {\n definition: SideNavigationProps.SectionGroup;\n}\n\nfunction SectionGroup({ definition, activeHref, fireFollow, fireChange, position }: SectionGroupProps) {\n return (\n <div className={styles['section-group']}>\n <InternalBox className={styles['section-group-title']} variant=\"h3\">\n {definition.title}\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 />\n </div>\n );\n}\n\ninterface LinkGroupProps extends BaseItemComponentProps {\n definition: SideNavigationProps.LinkGroup;\n}\n\nfunction LinkGroup({ definition, activeHref, fireFollow, fireChange, position }: LinkGroupProps) {\n checkSafeUrl('SideNavigation', definition.href);\n\n return (\n <>\n <Link\n definition={{ type: 'link', href: definition.href, text: definition.text, info: definition.info }}\n fireFollow={(_, event) => fireFollow(definition, event)}\n fireChange={fireChange}\n activeHref={activeHref}\n position={position}\n />\n <NavigationItemsList\n variant=\"link-group\"\n items={definition.items}\n fireFollow={fireFollow}\n fireChange={fireChange}\n activeHref={activeHref}\n position={position}\n />\n </>\n );\n}\n\ninterface ExpandableLinkGroupProps extends BaseItemComponentProps {\n definition: SideNavigationProps.ExpandableLinkGroup;\n variant: 'section' | 'section-group' | 'link-group' | 'expandable-link-group' | 'root';\n}\n\nfunction ExpandableLinkGroup({\n definition,\n fireFollow,\n fireChange,\n activeHref,\n variant,\n position,\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 )}\n variant=\"navigation\"\n expanded={userExpanded ?? expanded}\n onChange={onExpandedChange}\n headerText={\n <Link\n definition={{ type: 'link', href: definition.href, text: definition.text }}\n expanded={userExpanded ?? expanded}\n fireFollow={onHeaderFollow}\n fireChange={fireChange}\n activeHref={activeHref}\n position={position}\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 />\n </InternalExpandableSection>\n );\n}\n"]}
@@ -1,35 +1,35 @@
1
1
 
2
2
  import './styles.scoped.css';
3
3
  export default {
4
- "root": "awsui_root_l0dv0_474b6_141",
5
- "header": "awsui_header_l0dv0_474b6_178",
6
- "with-toolbar": "awsui_with-toolbar_l0dv0_474b6_190",
7
- "header-link": "awsui_header-link_l0dv0_474b6_194",
8
- "header-link--has-logo": "awsui_header-link--has-logo_l0dv0_474b6_204",
9
- "header-link-text": "awsui_header-link-text_l0dv0_474b6_204",
10
- "header-logo": "awsui_header-logo_l0dv0_474b6_209",
11
- "header-logo--stretched": "awsui_header-logo--stretched_l0dv0_474b6_215",
12
- "items-control": "awsui_items-control_l0dv0_474b6_220",
13
- "list-container": "awsui_list-container_l0dv0_474b6_225",
14
- "list": "awsui_list_l0dv0_474b6_225",
15
- "list-variant-root": "awsui_list-variant-root_l0dv0_474b6_240",
16
- "list-variant-root--last": "awsui_list-variant-root--last_l0dv0_474b6_247",
17
- "list-variant-expandable-link-group": "awsui_list-variant-expandable-link-group_l0dv0_474b6_251",
18
- "list-item": "awsui_list-item_l0dv0_474b6_255",
19
- "section": "awsui_section_l0dv0_474b6_263",
20
- "expandable-link-group": "awsui_expandable-link-group_l0dv0_474b6_264",
21
- "section--no-ident": "awsui_section--no-ident_l0dv0_474b6_267",
22
- "expandable-link-group--no-ident": "awsui_expandable-link-group--no-ident_l0dv0_474b6_268",
23
- "refresh": "awsui_refresh_l0dv0_474b6_276",
24
- "list-variant-section-group": "awsui_list-variant-section-group_l0dv0_474b6_284",
25
- "section-group": "awsui_section-group_l0dv0_474b6_291",
26
- "section-group-title": "awsui_section-group-title_l0dv0_474b6_302",
27
- "link": "awsui_link_l0dv0_474b6_306",
28
- "link-active": "awsui_link-active_l0dv0_474b6_315",
29
- "info": "awsui_info_l0dv0_474b6_352",
30
- "external-icon": "awsui_external-icon_l0dv0_474b6_356",
31
- "divider": "awsui_divider_l0dv0_474b6_360",
32
- "divider-default": "awsui_divider-default_l0dv0_474b6_365",
33
- "divider-header": "awsui_divider-header_l0dv0_474b6_371"
4
+ "root": "awsui_root_l0dv0_12t64_141",
5
+ "header": "awsui_header_l0dv0_12t64_178",
6
+ "with-toolbar": "awsui_with-toolbar_l0dv0_12t64_190",
7
+ "header-link": "awsui_header-link_l0dv0_12t64_194",
8
+ "header-link--has-logo": "awsui_header-link--has-logo_l0dv0_12t64_204",
9
+ "header-link-text": "awsui_header-link-text_l0dv0_12t64_204",
10
+ "header-logo": "awsui_header-logo_l0dv0_12t64_209",
11
+ "header-logo--stretched": "awsui_header-logo--stretched_l0dv0_12t64_215",
12
+ "items-control": "awsui_items-control_l0dv0_12t64_220",
13
+ "list-container": "awsui_list-container_l0dv0_12t64_225",
14
+ "list": "awsui_list_l0dv0_12t64_225",
15
+ "list-variant-root": "awsui_list-variant-root_l0dv0_12t64_240",
16
+ "list-variant-root--last": "awsui_list-variant-root--last_l0dv0_12t64_247",
17
+ "list-variant-expandable-link-group": "awsui_list-variant-expandable-link-group_l0dv0_12t64_251",
18
+ "list-item": "awsui_list-item_l0dv0_12t64_255",
19
+ "section": "awsui_section_l0dv0_12t64_263",
20
+ "expandable-link-group": "awsui_expandable-link-group_l0dv0_12t64_264",
21
+ "section--no-ident": "awsui_section--no-ident_l0dv0_12t64_267",
22
+ "expandable-link-group--no-ident": "awsui_expandable-link-group--no-ident_l0dv0_12t64_268",
23
+ "refresh": "awsui_refresh_l0dv0_12t64_276",
24
+ "list-variant-section-group": "awsui_list-variant-section-group_l0dv0_12t64_284",
25
+ "section-group": "awsui_section-group_l0dv0_12t64_291",
26
+ "section-group-title": "awsui_section-group-title_l0dv0_12t64_302",
27
+ "link": "awsui_link_l0dv0_12t64_306",
28
+ "link-active": "awsui_link-active_l0dv0_12t64_315",
29
+ "info": "awsui_info_l0dv0_12t64_352",
30
+ "external-icon": "awsui_external-icon_l0dv0_12t64_356",
31
+ "divider": "awsui_divider_l0dv0_12t64_360",
32
+ "divider-default": "awsui_divider-default_l0dv0_12t64_365",
33
+ "divider-header": "awsui_divider-header_l0dv0_12t64_371"
34
34
  };
35
35