@cloudscape-design/components-themeable 3.0.1343 → 3.0.1345

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 (473) hide show
  1. package/lib/internal/manifest.json +1 -1
  2. package/lib/internal/scss/alert/styles.scss +9 -8
  3. package/lib/internal/scss/app-layout/constants.scss +0 -3
  4. package/lib/internal/scss/app-layout/visual-refresh-toolbar/drawer/styles.scss +2 -0
  5. package/lib/internal/scss/app-layout/visual-refresh-toolbar/navigation/styles.scss +1 -1
  6. package/lib/internal/scss/app-layout/visual-refresh-toolbar/skeleton/styles.scss +1 -1
  7. package/lib/internal/scss/expandable-section/styles.scss +102 -14
  8. package/lib/internal/scss/flashbar/collapsible.scss +1 -1
  9. package/lib/internal/scss/flashbar/styles.scss +4 -4
  10. package/lib/internal/scss/internal/generated/custom-css-properties/index.scss +1 -1
  11. package/lib/internal/scss/internal/styles/motion/mixins.scss +9 -0
  12. package/lib/internal/scss/link/styles.scss +2 -2
  13. package/lib/internal/scss/progress-bar/styles.scss +20 -0
  14. package/lib/internal/scss/side-navigation/styles.scss +420 -40
  15. package/lib/internal/template/action-card/styles.css.js +17 -17
  16. package/lib/internal/template/action-card/styles.scoped.css +113 -113
  17. package/lib/internal/template/action-card/styles.selectors.js +17 -17
  18. package/lib/internal/template/alert/styles.css.js +27 -27
  19. package/lib/internal/template/alert/styles.scoped.css +57 -56
  20. package/lib/internal/template/alert/styles.selectors.js +27 -27
  21. package/lib/internal/template/anchor-navigation/styles.css.js +8 -8
  22. package/lib/internal/template/anchor-navigation/styles.scoped.css +28 -28
  23. package/lib/internal/template/anchor-navigation/styles.selectors.js +8 -8
  24. package/lib/internal/template/annotation-context/annotation/styles.css.js +13 -13
  25. package/lib/internal/template/annotation-context/annotation/styles.scoped.css +26 -26
  26. package/lib/internal/template/annotation-context/annotation/styles.selectors.js +13 -13
  27. package/lib/internal/template/app-layout/drawer/styles.css.js +14 -14
  28. package/lib/internal/template/app-layout/drawer/styles.scoped.css +31 -31
  29. package/lib/internal/template/app-layout/drawer/styles.selectors.js +14 -14
  30. package/lib/internal/template/app-layout/mobile-toolbar/styles.css.js +8 -8
  31. package/lib/internal/template/app-layout/mobile-toolbar/styles.scoped.css +12 -12
  32. package/lib/internal/template/app-layout/mobile-toolbar/styles.selectors.js +8 -8
  33. package/lib/internal/template/app-layout/styles.css.js +12 -12
  34. package/lib/internal/template/app-layout/styles.scoped.css +15 -15
  35. package/lib/internal/template/app-layout/styles.selectors.js +12 -12
  36. package/lib/internal/template/app-layout/toggles/styles.css.js +2 -2
  37. package/lib/internal/template/app-layout/toggles/styles.scoped.css +7 -7
  38. package/lib/internal/template/app-layout/toggles/styles.selectors.js +2 -2
  39. package/lib/internal/template/app-layout/visual-refresh/styles.css.js +86 -86
  40. package/lib/internal/template/app-layout/visual-refresh/styles.scoped.css +207 -207
  41. package/lib/internal/template/app-layout/visual-refresh/styles.selectors.js +86 -86
  42. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/styles.css.js +32 -32
  43. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/styles.scoped.css +116 -113
  44. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/styles.selectors.js +32 -32
  45. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/styles.css.js +6 -6
  46. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/styles.scoped.css +12 -12
  47. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/styles.selectors.js +6 -6
  48. package/lib/internal/template/app-layout/visual-refresh-toolbar/notifications/styles.css.js +3 -3
  49. package/lib/internal/template/app-layout/visual-refresh-toolbar/notifications/styles.scoped.css +4 -4
  50. package/lib/internal/template/app-layout/visual-refresh-toolbar/notifications/styles.selectors.js +3 -3
  51. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/styles.css.js +30 -30
  52. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/styles.scoped.css +74 -74
  53. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/styles.selectors.js +30 -30
  54. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/styles.css.js +14 -14
  55. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/styles.scoped.css +45 -45
  56. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/styles.selectors.js +14 -14
  57. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/trigger-button/styles.css.js +6 -6
  58. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/trigger-button/styles.scoped.css +26 -26
  59. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/trigger-button/styles.selectors.js +6 -6
  60. package/lib/internal/template/app-layout-toolbar/index.d.ts.map +1 -1
  61. package/lib/internal/template/app-layout-toolbar/index.js +1 -0
  62. package/lib/internal/template/app-layout-toolbar/index.js.map +1 -1
  63. package/lib/internal/template/area-chart/styles.css.js +6 -6
  64. package/lib/internal/template/area-chart/styles.scoped.css +10 -10
  65. package/lib/internal/template/area-chart/styles.selectors.js +6 -6
  66. package/lib/internal/template/attribute-editor/styles.css.js +15 -15
  67. package/lib/internal/template/attribute-editor/styles.scoped.css +33 -33
  68. package/lib/internal/template/attribute-editor/styles.selectors.js +15 -15
  69. package/lib/internal/template/badge/styles.css.js +10 -10
  70. package/lib/internal/template/badge/styles.scoped.css +17 -17
  71. package/lib/internal/template/badge/styles.selectors.js +10 -10
  72. package/lib/internal/template/box/styles.css.js +220 -220
  73. package/lib/internal/template/box/styles.scoped.css +309 -309
  74. package/lib/internal/template/box/styles.selectors.js +220 -220
  75. package/lib/internal/template/breadcrumb-group/item/styles.css.js +7 -7
  76. package/lib/internal/template/breadcrumb-group/item/styles.scoped.css +34 -34
  77. package/lib/internal/template/breadcrumb-group/item/styles.selectors.js +7 -7
  78. package/lib/internal/template/breadcrumb-group/styles.css.js +14 -14
  79. package/lib/internal/template/breadcrumb-group/styles.scoped.css +33 -33
  80. package/lib/internal/template/breadcrumb-group/styles.selectors.js +14 -14
  81. package/lib/internal/template/button/styles.css.js +23 -23
  82. package/lib/internal/template/button/styles.scoped.css +134 -134
  83. package/lib/internal/template/button/styles.selectors.js +23 -23
  84. package/lib/internal/template/button-dropdown/category-elements/styles.css.js +18 -18
  85. package/lib/internal/template/button-dropdown/category-elements/styles.scoped.css +40 -40
  86. package/lib/internal/template/button-dropdown/category-elements/styles.selectors.js +18 -18
  87. package/lib/internal/template/button-dropdown/item-element/styles.css.js +21 -21
  88. package/lib/internal/template/button-dropdown/item-element/styles.scoped.css +57 -57
  89. package/lib/internal/template/button-dropdown/item-element/styles.selectors.js +21 -21
  90. package/lib/internal/template/button-dropdown/mobile-expandable-group/styles.css.js +5 -5
  91. package/lib/internal/template/button-dropdown/mobile-expandable-group/styles.scoped.css +7 -7
  92. package/lib/internal/template/button-dropdown/mobile-expandable-group/styles.selectors.js +5 -5
  93. package/lib/internal/template/button-dropdown/styles.css.js +23 -23
  94. package/lib/internal/template/button-dropdown/styles.scoped.css +35 -35
  95. package/lib/internal/template/button-dropdown/styles.selectors.js +23 -23
  96. package/lib/internal/template/button-group/styles.css.js +4 -4
  97. package/lib/internal/template/button-group/styles.scoped.css +6 -6
  98. package/lib/internal/template/button-group/styles.selectors.js +4 -4
  99. package/lib/internal/template/calendar/styles.css.js +21 -21
  100. package/lib/internal/template/calendar/styles.scoped.css +64 -64
  101. package/lib/internal/template/calendar/styles.selectors.js +21 -21
  102. package/lib/internal/template/cards/styles.css.js +38 -38
  103. package/lib/internal/template/cards/styles.scoped.css +42 -42
  104. package/lib/internal/template/cards/styles.selectors.js +38 -38
  105. package/lib/internal/template/checkbox/styles.css.js +3 -3
  106. package/lib/internal/template/checkbox/styles.scoped.css +7 -7
  107. package/lib/internal/template/checkbox/styles.selectors.js +3 -3
  108. package/lib/internal/template/code-editor/styles.css.js +33 -33
  109. package/lib/internal/template/code-editor/styles.scoped.css +226 -226
  110. package/lib/internal/template/code-editor/styles.selectors.js +33 -33
  111. package/lib/internal/template/collection-preferences/styles.css.js +38 -38
  112. package/lib/internal/template/collection-preferences/styles.scoped.css +47 -47
  113. package/lib/internal/template/collection-preferences/styles.selectors.js +38 -38
  114. package/lib/internal/template/column-layout/flexible-column-layout/styles.css.js +5 -5
  115. package/lib/internal/template/column-layout/flexible-column-layout/styles.scoped.css +9 -9
  116. package/lib/internal/template/column-layout/flexible-column-layout/styles.selectors.js +5 -5
  117. package/lib/internal/template/column-layout/styles.css.js +13 -13
  118. package/lib/internal/template/column-layout/styles.scoped.css +47 -47
  119. package/lib/internal/template/column-layout/styles.selectors.js +13 -13
  120. package/lib/internal/template/container/styles.css.js +33 -33
  121. package/lib/internal/template/container/styles.scoped.css +69 -69
  122. package/lib/internal/template/container/styles.selectors.js +33 -33
  123. package/lib/internal/template/content-layout/styles.css.js +14 -14
  124. package/lib/internal/template/content-layout/styles.scoped.css +19 -19
  125. package/lib/internal/template/content-layout/styles.selectors.js +14 -14
  126. package/lib/internal/template/date-picker/styles.css.js +7 -7
  127. package/lib/internal/template/date-picker/styles.scoped.css +11 -11
  128. package/lib/internal/template/date-picker/styles.selectors.js +7 -7
  129. package/lib/internal/template/date-range-picker/calendar/grids/styles.css.js +30 -30
  130. package/lib/internal/template/date-range-picker/calendar/grids/styles.scoped.css +79 -79
  131. package/lib/internal/template/date-range-picker/calendar/grids/styles.selectors.js +30 -30
  132. package/lib/internal/template/date-range-picker/styles.css.js +23 -23
  133. package/lib/internal/template/date-range-picker/styles.scoped.css +40 -40
  134. package/lib/internal/template/date-range-picker/styles.selectors.js +23 -23
  135. package/lib/internal/template/divider/styles.css.js +6 -6
  136. package/lib/internal/template/divider/styles.scoped.css +10 -10
  137. package/lib/internal/template/divider/styles.selectors.js +6 -6
  138. package/lib/internal/template/drawer/styles.css.js +29 -29
  139. package/lib/internal/template/drawer/styles.scoped.css +47 -47
  140. package/lib/internal/template/drawer/styles.selectors.js +29 -29
  141. package/lib/internal/template/dropdown/styles.css.js +20 -20
  142. package/lib/internal/template/dropdown/styles.scoped.css +43 -43
  143. package/lib/internal/template/dropdown/styles.selectors.js +20 -20
  144. package/lib/internal/template/expandable-section/expandable-section-container.d.ts +1 -2
  145. package/lib/internal/template/expandable-section/expandable-section-container.d.ts.map +1 -1
  146. package/lib/internal/template/expandable-section/expandable-section-container.js +2 -2
  147. package/lib/internal/template/expandable-section/expandable-section-container.js.map +1 -1
  148. package/lib/internal/template/expandable-section/expandable-section-header.d.ts +2 -1
  149. package/lib/internal/template/expandable-section/expandable-section-header.d.ts.map +1 -1
  150. package/lib/internal/template/expandable-section/expandable-section-header.js +4 -4
  151. package/lib/internal/template/expandable-section/expandable-section-header.js.map +1 -1
  152. package/lib/internal/template/expandable-section/internal.d.ts +8 -3
  153. package/lib/internal/template/expandable-section/internal.d.ts.map +1 -1
  154. package/lib/internal/template/expandable-section/internal.js +24 -10
  155. package/lib/internal/template/expandable-section/internal.js.map +1 -1
  156. package/lib/internal/template/expandable-section/styles.css.js +43 -42
  157. package/lib/internal/template/expandable-section/styles.scoped.css +210 -155
  158. package/lib/internal/template/expandable-section/styles.selectors.js +43 -42
  159. package/lib/internal/template/file-dropzone/styles.css.js +3 -3
  160. package/lib/internal/template/file-dropzone/styles.scoped.css +12 -12
  161. package/lib/internal/template/file-dropzone/styles.selectors.js +3 -3
  162. package/lib/internal/template/file-input/styles.css.js +5 -5
  163. package/lib/internal/template/file-input/styles.scoped.css +10 -10
  164. package/lib/internal/template/file-input/styles.selectors.js +5 -5
  165. package/lib/internal/template/file-token-group/styles.css.js +23 -23
  166. package/lib/internal/template/file-token-group/styles.scoped.css +51 -51
  167. package/lib/internal/template/file-token-group/styles.selectors.js +23 -23
  168. package/lib/internal/template/flashbar/flash.d.ts.map +1 -1
  169. package/lib/internal/template/flashbar/flash.js +6 -1
  170. package/lib/internal/template/flashbar/flash.js.map +1 -1
  171. package/lib/internal/template/flashbar/styles.css.js +50 -50
  172. package/lib/internal/template/flashbar/styles.scoped.css +165 -165
  173. package/lib/internal/template/flashbar/styles.selectors.js +50 -50
  174. package/lib/internal/template/form/styles.css.js +8 -8
  175. package/lib/internal/template/form/styles.scoped.css +9 -9
  176. package/lib/internal/template/form/styles.selectors.js +8 -8
  177. package/lib/internal/template/form-field/styles.css.js +24 -24
  178. package/lib/internal/template/form-field/styles.scoped.css +44 -44
  179. package/lib/internal/template/form-field/styles.selectors.js +24 -24
  180. package/lib/internal/template/grid/styles.css.js +53 -53
  181. package/lib/internal/template/grid/styles.scoped.css +55 -55
  182. package/lib/internal/template/grid/styles.selectors.js +53 -53
  183. package/lib/internal/template/header/styles.css.js +35 -35
  184. package/lib/internal/template/header/styles.scoped.css +59 -59
  185. package/lib/internal/template/header/styles.selectors.js +35 -35
  186. package/lib/internal/template/help-panel/styles.css.js +6 -6
  187. package/lib/internal/template/help-panel/styles.scoped.css +83 -83
  188. package/lib/internal/template/help-panel/styles.selectors.js +6 -6
  189. package/lib/internal/template/icon/styles.css.js +41 -41
  190. package/lib/internal/template/icon/styles.scoped.css +106 -106
  191. package/lib/internal/template/icon/styles.selectors.js +41 -41
  192. package/lib/internal/template/input/styles.css.js +28 -28
  193. package/lib/internal/template/input/styles.scoped.css +120 -120
  194. package/lib/internal/template/input/styles.selectors.js +28 -28
  195. package/lib/internal/template/internal/base-component/styles.scoped.css +2889 -2756
  196. package/lib/internal/template/internal/components/abstract-switch/styles.css.js +13 -13
  197. package/lib/internal/template/internal/components/abstract-switch/styles.scoped.css +23 -23
  198. package/lib/internal/template/internal/components/abstract-switch/styles.selectors.js +13 -13
  199. package/lib/internal/template/internal/components/button-trigger/styles.css.js +14 -14
  200. package/lib/internal/template/internal/components/button-trigger/styles.scoped.css +63 -63
  201. package/lib/internal/template/internal/components/button-trigger/styles.selectors.js +14 -14
  202. package/lib/internal/template/internal/components/cartesian-chart/styles.css.js +28 -28
  203. package/lib/internal/template/internal/components/cartesian-chart/styles.scoped.css +36 -36
  204. package/lib/internal/template/internal/components/cartesian-chart/styles.selectors.js +28 -28
  205. package/lib/internal/template/internal/components/chart-filter/styles.css.js +3 -3
  206. package/lib/internal/template/internal/components/chart-filter/styles.scoped.css +4 -4
  207. package/lib/internal/template/internal/components/chart-filter/styles.selectors.js +3 -3
  208. package/lib/internal/template/internal/components/chart-legend/styles.css.js +6 -6
  209. package/lib/internal/template/internal/components/chart-legend/styles.scoped.css +16 -16
  210. package/lib/internal/template/internal/components/chart-legend/styles.selectors.js +6 -6
  211. package/lib/internal/template/internal/components/chart-plot/styles.css.js +5 -5
  212. package/lib/internal/template/internal/components/chart-plot/styles.scoped.css +6 -6
  213. package/lib/internal/template/internal/components/chart-plot/styles.selectors.js +5 -5
  214. package/lib/internal/template/internal/components/chart-popover/styles.css.js +3 -3
  215. package/lib/internal/template/internal/components/chart-popover/styles.scoped.css +6 -6
  216. package/lib/internal/template/internal/components/chart-popover/styles.selectors.js +3 -3
  217. package/lib/internal/template/internal/components/chart-series-details/styles.css.js +19 -19
  218. package/lib/internal/template/internal/components/chart-series-details/styles.scoped.css +37 -37
  219. package/lib/internal/template/internal/components/chart-series-details/styles.selectors.js +19 -19
  220. package/lib/internal/template/internal/components/chart-series-marker/styles.css.js +5 -5
  221. package/lib/internal/template/internal/components/chart-series-marker/styles.scoped.css +9 -9
  222. package/lib/internal/template/internal/components/chart-series-marker/styles.selectors.js +5 -5
  223. package/lib/internal/template/internal/components/chart-status-container/styles.css.js +2 -2
  224. package/lib/internal/template/internal/components/chart-status-container/styles.scoped.css +3 -3
  225. package/lib/internal/template/internal/components/chart-status-container/styles.selectors.js +2 -2
  226. package/lib/internal/template/internal/components/chart-wrapper/styles.css.js +9 -9
  227. package/lib/internal/template/internal/components/chart-wrapper/styles.scoped.css +10 -10
  228. package/lib/internal/template/internal/components/chart-wrapper/styles.selectors.js +9 -9
  229. package/lib/internal/template/internal/components/checkbox-icon/styles.css.js +9 -9
  230. package/lib/internal/template/internal/components/checkbox-icon/styles.scoped.css +17 -17
  231. package/lib/internal/template/internal/components/checkbox-icon/styles.selectors.js +9 -9
  232. package/lib/internal/template/internal/components/drag-handle/styles.css.js +14 -14
  233. package/lib/internal/template/internal/components/drag-handle/styles.scoped.css +24 -24
  234. package/lib/internal/template/internal/components/drag-handle/styles.selectors.js +14 -14
  235. package/lib/internal/template/internal/components/drag-handle-wrapper/styles.css.js +30 -30
  236. package/lib/internal/template/internal/components/drag-handle-wrapper/styles.scoped.css +50 -50
  237. package/lib/internal/template/internal/components/drag-handle-wrapper/styles.selectors.js +30 -30
  238. package/lib/internal/template/internal/components/dropdown-footer/styles.css.js +3 -3
  239. package/lib/internal/template/internal/components/dropdown-footer/styles.scoped.css +6 -6
  240. package/lib/internal/template/internal/components/dropdown-footer/styles.selectors.js +3 -3
  241. package/lib/internal/template/internal/components/dropdown-status/styles.css.js +2 -2
  242. package/lib/internal/template/internal/components/dropdown-status/styles.scoped.css +4 -4
  243. package/lib/internal/template/internal/components/dropdown-status/styles.selectors.js +2 -2
  244. package/lib/internal/template/internal/components/expand-toggle-button/styles.css.js +4 -4
  245. package/lib/internal/template/internal/components/expand-toggle-button/styles.scoped.css +18 -18
  246. package/lib/internal/template/internal/components/expand-toggle-button/styles.selectors.js +4 -4
  247. package/lib/internal/template/internal/components/menu-dropdown/styles.css.js +7 -7
  248. package/lib/internal/template/internal/components/menu-dropdown/styles.scoped.css +19 -19
  249. package/lib/internal/template/internal/components/menu-dropdown/styles.selectors.js +7 -7
  250. package/lib/internal/template/internal/components/option/styles.css.js +17 -17
  251. package/lib/internal/template/internal/components/option/styles.scoped.css +37 -37
  252. package/lib/internal/template/internal/components/option/styles.selectors.js +17 -17
  253. package/lib/internal/template/internal/components/options-list/styles.css.js +3 -3
  254. package/lib/internal/template/internal/components/options-list/styles.scoped.css +4 -4
  255. package/lib/internal/template/internal/components/options-list/styles.selectors.js +3 -3
  256. package/lib/internal/template/internal/components/panel-resize-handle/styles.css.js +3 -3
  257. package/lib/internal/template/internal/components/panel-resize-handle/styles.scoped.css +8 -8
  258. package/lib/internal/template/internal/components/panel-resize-handle/styles.selectors.js +3 -3
  259. package/lib/internal/template/internal/components/radio-button/styles.css.js +7 -7
  260. package/lib/internal/template/internal/components/radio-button/styles.scoped.css +22 -22
  261. package/lib/internal/template/internal/components/radio-button/styles.selectors.js +7 -7
  262. package/lib/internal/template/internal/components/selectable-item/styles.css.js +22 -22
  263. package/lib/internal/template/internal/components/selectable-item/styles.scoped.css +79 -79
  264. package/lib/internal/template/internal/components/selectable-item/styles.selectors.js +22 -22
  265. package/lib/internal/template/internal/components/sortable-area/styles.css.js +8 -8
  266. package/lib/internal/template/internal/components/sortable-area/styles.scoped.css +20 -20
  267. package/lib/internal/template/internal/components/sortable-area/styles.selectors.js +8 -8
  268. package/lib/internal/template/internal/components/structured-item/styles.css.js +7 -7
  269. package/lib/internal/template/internal/components/structured-item/styles.scoped.css +10 -10
  270. package/lib/internal/template/internal/components/structured-item/styles.selectors.js +7 -7
  271. package/lib/internal/template/internal/components/token-list/styles.css.js +10 -10
  272. package/lib/internal/template/internal/components/token-list/styles.scoped.css +30 -30
  273. package/lib/internal/template/internal/components/token-list/styles.selectors.js +10 -10
  274. package/lib/internal/template/internal/components/transition/index.d.ts +6 -6
  275. package/lib/internal/template/internal/components/transition/index.d.ts.map +1 -1
  276. package/lib/internal/template/internal/components/transition/index.js +4 -4
  277. package/lib/internal/template/internal/components/transition/index.js.map +1 -1
  278. package/lib/internal/template/internal/environment.js +2 -2
  279. package/lib/internal/template/internal/environment.json +2 -2
  280. package/lib/internal/template/internal/generated/styles/tokens.d.ts +28 -0
  281. package/lib/internal/template/internal/generated/styles/tokens.js +351 -323
  282. package/lib/internal/template/internal/generated/theming/index.cjs +1031 -351
  283. package/lib/internal/template/internal/generated/theming/index.cjs.d.ts +23 -5
  284. package/lib/internal/template/internal/generated/theming/index.d.ts +23 -5
  285. package/lib/internal/template/internal/generated/theming/index.js +1031 -351
  286. package/lib/internal/template/item-card/styles.css.js +14 -14
  287. package/lib/internal/template/item-card/styles.scoped.css +58 -58
  288. package/lib/internal/template/item-card/styles.selectors.js +14 -14
  289. package/lib/internal/template/key-value-pairs/styles.css.js +8 -8
  290. package/lib/internal/template/key-value-pairs/styles.scoped.css +14 -14
  291. package/lib/internal/template/key-value-pairs/styles.selectors.js +8 -8
  292. package/lib/internal/template/link/styles.css.js +21 -21
  293. package/lib/internal/template/link/styles.scoped.css +116 -116
  294. package/lib/internal/template/link/styles.selectors.js +21 -21
  295. package/lib/internal/template/list/styles.css.js +5 -5
  296. package/lib/internal/template/list/styles.scoped.css +9 -9
  297. package/lib/internal/template/list/styles.selectors.js +5 -5
  298. package/lib/internal/template/modal/styles.css.js +31 -31
  299. package/lib/internal/template/modal/styles.scoped.css +54 -54
  300. package/lib/internal/template/modal/styles.selectors.js +31 -31
  301. package/lib/internal/template/multiselect/styles.css.js +5 -5
  302. package/lib/internal/template/multiselect/styles.scoped.css +7 -7
  303. package/lib/internal/template/multiselect/styles.selectors.js +5 -5
  304. package/lib/internal/template/pagination/styles.css.js +12 -12
  305. package/lib/internal/template/pagination/styles.scoped.css +47 -47
  306. package/lib/internal/template/pagination/styles.selectors.js +12 -12
  307. package/lib/internal/template/panel-layout/styles.css.js +7 -7
  308. package/lib/internal/template/panel-layout/styles.scoped.css +13 -13
  309. package/lib/internal/template/panel-layout/styles.selectors.js +7 -7
  310. package/lib/internal/template/pie-chart/styles.css.js +27 -27
  311. package/lib/internal/template/pie-chart/styles.scoped.css +53 -53
  312. package/lib/internal/template/pie-chart/styles.selectors.js +27 -27
  313. package/lib/internal/template/popover/styles.css.js +58 -58
  314. package/lib/internal/template/popover/styles.scoped.css +110 -110
  315. package/lib/internal/template/popover/styles.selectors.js +58 -58
  316. package/lib/internal/template/progress-bar/internal.d.ts.map +1 -1
  317. package/lib/internal/template/progress-bar/internal.js +1 -1
  318. package/lib/internal/template/progress-bar/internal.js.map +1 -1
  319. package/lib/internal/template/progress-bar/styles.css.js +19 -18
  320. package/lib/internal/template/progress-bar/styles.scoped.css +44 -32
  321. package/lib/internal/template/progress-bar/styles.selectors.js +19 -18
  322. package/lib/internal/template/prompt-input/styles.css.js +26 -26
  323. package/lib/internal/template/prompt-input/styles.scoped.css +102 -102
  324. package/lib/internal/template/prompt-input/styles.selectors.js +26 -26
  325. package/lib/internal/template/property-filter/filtering-token/styles.css.js +18 -18
  326. package/lib/internal/template/property-filter/filtering-token/styles.scoped.css +55 -55
  327. package/lib/internal/template/property-filter/filtering-token/styles.selectors.js +18 -18
  328. package/lib/internal/template/property-filter/styles.css.js +39 -39
  329. package/lib/internal/template/property-filter/styles.scoped.css +52 -52
  330. package/lib/internal/template/property-filter/styles.selectors.js +39 -39
  331. package/lib/internal/template/radio-button/styles.css.js +1 -1
  332. package/lib/internal/template/radio-button/styles.scoped.css +2 -2
  333. package/lib/internal/template/radio-button/styles.selectors.js +1 -1
  334. package/lib/internal/template/radio-group/styles.css.js +5 -5
  335. package/lib/internal/template/radio-group/styles.scoped.css +7 -7
  336. package/lib/internal/template/radio-group/styles.selectors.js +5 -5
  337. package/lib/internal/template/s3-resource-selector/s3-in-context/styles.css.js +7 -7
  338. package/lib/internal/template/s3-resource-selector/s3-in-context/styles.scoped.css +9 -9
  339. package/lib/internal/template/s3-resource-selector/s3-in-context/styles.selectors.js +7 -7
  340. package/lib/internal/template/s3-resource-selector/s3-modal/styles.css.js +3 -3
  341. package/lib/internal/template/s3-resource-selector/s3-modal/styles.scoped.css +4 -4
  342. package/lib/internal/template/s3-resource-selector/s3-modal/styles.selectors.js +3 -3
  343. package/lib/internal/template/segmented-control/styles.css.js +16 -16
  344. package/lib/internal/template/segmented-control/styles.scoped.css +46 -46
  345. package/lib/internal/template/segmented-control/styles.selectors.js +16 -16
  346. package/lib/internal/template/select/parts/styles.css.js +21 -21
  347. package/lib/internal/template/select/parts/styles.scoped.css +28 -28
  348. package/lib/internal/template/select/parts/styles.selectors.js +21 -21
  349. package/lib/internal/template/select/styles.css.js +3 -3
  350. package/lib/internal/template/select/styles.scoped.css +4 -4
  351. package/lib/internal/template/select/styles.selectors.js +3 -3
  352. package/lib/internal/template/side-navigation/implementation.d.ts.map +1 -1
  353. package/lib/internal/template/side-navigation/implementation.js +6 -3
  354. package/lib/internal/template/side-navigation/implementation.js.map +1 -1
  355. package/lib/internal/template/side-navigation/parts.d.ts +2 -1
  356. package/lib/internal/template/side-navigation/parts.d.ts.map +1 -1
  357. package/lib/internal/template/side-navigation/parts.js +86 -76
  358. package/lib/internal/template/side-navigation/parts.js.map +1 -1
  359. package/lib/internal/template/side-navigation/styles.css.js +64 -50
  360. package/lib/internal/template/side-navigation/styles.scoped.css +562 -118
  361. package/lib/internal/template/side-navigation/styles.selectors.js +64 -50
  362. package/lib/internal/template/side-navigation/util.d.ts +10 -0
  363. package/lib/internal/template/side-navigation/util.d.ts.map +1 -1
  364. package/lib/internal/template/side-navigation/util.js +48 -0
  365. package/lib/internal/template/side-navigation/util.js.map +1 -1
  366. package/lib/internal/template/skeleton/styles.css.js +15 -15
  367. package/lib/internal/template/skeleton/styles.scoped.css +27 -27
  368. package/lib/internal/template/skeleton/styles.selectors.js +15 -15
  369. package/lib/internal/template/slider/styles.css.js +26 -26
  370. package/lib/internal/template/slider/styles.scoped.css +154 -154
  371. package/lib/internal/template/slider/styles.selectors.js +26 -26
  372. package/lib/internal/template/spinner/styles.css.js +13 -13
  373. package/lib/internal/template/spinner/styles.scoped.css +21 -21
  374. package/lib/internal/template/spinner/styles.selectors.js +13 -13
  375. package/lib/internal/template/split-panel/icons/styles.css.js +22 -22
  376. package/lib/internal/template/split-panel/icons/styles.scoped.css +44 -44
  377. package/lib/internal/template/split-panel/icons/styles.selectors.js +22 -22
  378. package/lib/internal/template/split-panel/styles.css.js +38 -38
  379. package/lib/internal/template/split-panel/styles.scoped.css +68 -68
  380. package/lib/internal/template/split-panel/styles.selectors.js +38 -38
  381. package/lib/internal/template/status-indicator/styles.css.js +25 -25
  382. package/lib/internal/template/status-indicator/styles.scoped.css +70 -70
  383. package/lib/internal/template/status-indicator/styles.selectors.js +25 -25
  384. package/lib/internal/template/steps/styles.css.js +17 -17
  385. package/lib/internal/template/steps/styles.scoped.css +37 -37
  386. package/lib/internal/template/steps/styles.selectors.js +17 -17
  387. package/lib/internal/template/table/body-cell/styles.css.js +48 -48
  388. package/lib/internal/template/table/body-cell/styles.scoped.css +405 -405
  389. package/lib/internal/template/table/body-cell/styles.selectors.js +48 -48
  390. package/lib/internal/template/table/header-cell/styles.css.js +38 -38
  391. package/lib/internal/template/table/header-cell/styles.scoped.css +102 -102
  392. package/lib/internal/template/table/header-cell/styles.selectors.js +38 -38
  393. package/lib/internal/template/table/interfaces.d.ts +62 -45
  394. package/lib/internal/template/table/interfaces.d.ts.map +1 -1
  395. package/lib/internal/template/table/interfaces.js.map +1 -1
  396. package/lib/internal/template/table/internal.d.ts.map +1 -1
  397. package/lib/internal/template/table/internal.js +2 -2
  398. package/lib/internal/template/table/internal.js.map +1 -1
  399. package/lib/internal/template/table/resizer/styles.css.js +17 -17
  400. package/lib/internal/template/table/resizer/styles.scoped.css +33 -33
  401. package/lib/internal/template/table/resizer/styles.selectors.js +17 -17
  402. package/lib/internal/template/table/skeleton-rows.d.ts +2 -1
  403. package/lib/internal/template/table/skeleton-rows.d.ts.map +1 -1
  404. package/lib/internal/template/table/skeleton-rows.js +5 -2
  405. package/lib/internal/template/table/skeleton-rows.js.map +1 -1
  406. package/lib/internal/template/table/sticky-scrollbar/styles.css.js +6 -6
  407. package/lib/internal/template/table/sticky-scrollbar/styles.scoped.css +10 -10
  408. package/lib/internal/template/table/sticky-scrollbar/styles.selectors.js +6 -6
  409. package/lib/internal/template/table/styles.css.js +37 -37
  410. package/lib/internal/template/table/styles.scoped.css +52 -52
  411. package/lib/internal/template/table/styles.selectors.js +37 -37
  412. package/lib/internal/template/tabs/styles.css.js +30 -30
  413. package/lib/internal/template/tabs/styles.scoped.css +64 -64
  414. package/lib/internal/template/tabs/styles.selectors.js +30 -30
  415. package/lib/internal/template/tabs/tab-header-bar.d.ts.map +1 -1
  416. package/lib/internal/template/tabs/tab-header-bar.js +5 -0
  417. package/lib/internal/template/tabs/tab-header-bar.js.map +1 -1
  418. package/lib/internal/template/tag-editor/styles.css.js +3 -3
  419. package/lib/internal/template/tag-editor/styles.scoped.css +15 -15
  420. package/lib/internal/template/tag-editor/styles.selectors.js +3 -3
  421. package/lib/internal/template/text-content/styles.css.js +1 -1
  422. package/lib/internal/template/text-content/styles.scoped.css +71 -71
  423. package/lib/internal/template/text-content/styles.selectors.js +1 -1
  424. package/lib/internal/template/text-filter/styles.css.js +3 -3
  425. package/lib/internal/template/text-filter/styles.scoped.css +5 -5
  426. package/lib/internal/template/text-filter/styles.selectors.js +3 -3
  427. package/lib/internal/template/textarea/styles.css.js +9 -9
  428. package/lib/internal/template/textarea/styles.scoped.css +46 -46
  429. package/lib/internal/template/textarea/styles.selectors.js +9 -9
  430. package/lib/internal/template/tiles/styles.css.js +30 -30
  431. package/lib/internal/template/tiles/styles.scoped.css +90 -90
  432. package/lib/internal/template/tiles/styles.selectors.js +30 -30
  433. package/lib/internal/template/toggle/styles.css.js +10 -10
  434. package/lib/internal/template/toggle/styles.scoped.css +27 -27
  435. package/lib/internal/template/toggle/styles.selectors.js +10 -10
  436. package/lib/internal/template/toggle-button/styles.css.js +4 -4
  437. package/lib/internal/template/toggle-button/styles.scoped.css +12 -12
  438. package/lib/internal/template/toggle-button/styles.selectors.js +4 -4
  439. package/lib/internal/template/token/styles.css.js +14 -14
  440. package/lib/internal/template/token/styles.scoped.css +47 -47
  441. package/lib/internal/template/token/styles.selectors.js +14 -14
  442. package/lib/internal/template/token-group/styles.css.js +5 -5
  443. package/lib/internal/template/token-group/styles.scoped.css +5 -5
  444. package/lib/internal/template/token-group/styles.selectors.js +5 -5
  445. package/lib/internal/template/top-navigation/styles.css.js +47 -47
  446. package/lib/internal/template/top-navigation/styles.scoped.css +86 -86
  447. package/lib/internal/template/top-navigation/styles.selectors.js +47 -47
  448. package/lib/internal/template/tree-view/styles.css.js +2 -2
  449. package/lib/internal/template/tree-view/styles.scoped.css +3 -3
  450. package/lib/internal/template/tree-view/styles.selectors.js +2 -2
  451. package/lib/internal/template/tree-view/tree-item/styles.css.js +10 -10
  452. package/lib/internal/template/tree-view/tree-item/styles.scoped.css +17 -17
  453. package/lib/internal/template/tree-view/tree-item/styles.selectors.js +10 -10
  454. package/lib/internal/template/tree-view/vertical-connector/styles.css.js +3 -3
  455. package/lib/internal/template/tree-view/vertical-connector/styles.scoped.css +4 -4
  456. package/lib/internal/template/tree-view/vertical-connector/styles.selectors.js +3 -3
  457. package/lib/internal/template/truncated-text/styles.css.js +1 -1
  458. package/lib/internal/template/truncated-text/styles.scoped.css +6 -6
  459. package/lib/internal/template/truncated-text/styles.selectors.js +1 -1
  460. package/lib/internal/template/tutorial-panel/components/tutorial-detail-view/styles.css.js +20 -20
  461. package/lib/internal/template/tutorial-panel/components/tutorial-detail-view/styles.scoped.css +25 -25
  462. package/lib/internal/template/tutorial-panel/components/tutorial-detail-view/styles.selectors.js +20 -20
  463. package/lib/internal/template/tutorial-panel/components/tutorial-list/styles.css.js +18 -18
  464. package/lib/internal/template/tutorial-panel/components/tutorial-list/styles.scoped.css +35 -35
  465. package/lib/internal/template/tutorial-panel/components/tutorial-list/styles.selectors.js +18 -18
  466. package/lib/internal/template/tutorial-panel/styles.css.js +1 -1
  467. package/lib/internal/template/tutorial-panel/styles.scoped.css +7 -7
  468. package/lib/internal/template/tutorial-panel/styles.selectors.js +1 -1
  469. package/lib/internal/template/wizard/styles.css.js +30 -30
  470. package/lib/internal/template/wizard/styles.scoped.css +84 -84
  471. package/lib/internal/template/wizard/styles.selectors.js +30 -30
  472. package/package.json +1 -1
  473. package/lib/internal/scss/expandable-section/motion.scss +0 -30
@@ -5,6 +5,8 @@
5
5
 
6
6
  @use '../internal/styles' as styles;
7
7
  @use '../internal/styles/tokens' as awsui;
8
+ @use '../internal/generated/custom-css-properties/index.scss' as custom-props;
9
+ @use '../internal/styles/utils/theming';
8
10
  @use '@cloudscape-design/component-toolkit/internal/focus-visible' as focus-visible;
9
11
 
10
12
  // ==========================================================================
@@ -18,6 +20,27 @@ $item-padding-block: calc((#{awsui.$size-side-navigation-item-height} - #{awsui.
18
20
  $item-padding-inline: awsui.$space-xs;
19
21
  $item-indent: calc(awsui.$size-icon-normal + #{$item-icon-text-gap} - #{$item-padding-inline});
20
22
  $expandable-icon-negative-margin: awsui.$space-l;
23
+ $root-collapsed-padding-horizontal: awsui.$space-scaled-l;
24
+ // ==========================================================================
25
+ // Collapsed-rail content motion — composite values keep each interaction's
26
+ // duration, easing, and delay together at its transition call sites.
27
+ // ==========================================================================
28
+ $content-enter-duration: awsui.$motion-duration-expandable-content-enter;
29
+ $content-enter-motion: $content-enter-duration awsui.$motion-easing-expandable-content-enter;
30
+ // Fade follows the first quarter of structural reveal, giving layout a short lead without a noticeable pause.
31
+ $content-enter-fade-delay: calc(#{$content-enter-duration} / 4);
32
+ $content-enter-fade-motion: awsui.$motion-duration-side-navigation-content-enter-fade
33
+ awsui.$motion-easing-expandable-content-enter $content-enter-fade-delay;
34
+
35
+ // Exit is Side Navigation-specific: labels fade quickly while horizontal and vertical
36
+ // layout collapses around icons that remain visible in the collapsed rail.
37
+ $content-exit-duration: awsui.$motion-duration-side-navigation-content-exit;
38
+ $content-exit-motion: $content-exit-duration awsui.$motion-easing-side-navigation-content-exit;
39
+ $content-exit-fade-duration: awsui.$motion-duration-side-navigation-content-exit-fade;
40
+ $content-exit-fade-motion: $content-exit-fade-duration awsui.$motion-easing-side-navigation-content-exit;
41
+
42
+ // Step-function delay for overflow/clip toggles on collapse — activates after spatial motion finishes.
43
+ $content-exit-clip-delay: $content-exit-duration;
21
44
 
22
45
  @mixin item-radius($radius: awsui.$border-radius-side-navigation-item) {
23
46
  border-start-start-radius: $radius;
@@ -46,6 +69,11 @@ $expandable-icon-negative-margin: awsui.$space-l;
46
69
  padding-inline-start: awsui.$space-panel-nav-left;
47
70
  // Additional xl space to prevent text from overlapping the close button.
48
71
  padding-inline-end: calc(#{awsui.$space-scaled-xxl} + #{awsui.$space-xl});
72
+
73
+ // Align header to the collapsed icon column when icons are present.
74
+ .root:has(.list--with-icons) > & {
75
+ padding-inline-start: $root-collapsed-padding-horizontal;
76
+ }
49
77
  }
50
78
 
51
79
  .header-link {
@@ -89,14 +117,17 @@ $expandable-icon-negative-margin: awsui.$space-l;
89
117
  .items-control,
90
118
  .list-container {
91
119
  margin-block-start: calc(#{awsui.$space-panel-content-top} - #{$item-padding-block});
92
- .root--collapsed > & {
93
- margin-block-start: awsui.$space-xs;
94
- }
95
120
 
96
121
  // Toolbar removes margin and item padding for whatever comes first after the header
97
122
  .with-toolbar > .divider-header + & {
98
123
  margin-block-start: calc(-1 * #{$item-padding-block});
99
124
  }
125
+
126
+ // When collapsed, the header and divider are hidden so the adjacent-sibling rule
127
+ // above cannot match. Apply the same reduced margin to keep vertical position stable.
128
+ .with-toolbar.root--collapsed > & {
129
+ margin-block-start: awsui.$space-scaled-xxs;
130
+ }
100
131
  }
101
132
 
102
133
  .list {
@@ -119,12 +150,17 @@ $expandable-icon-negative-margin: awsui.$space-l;
119
150
  }
120
151
 
121
152
  &--collapsed {
122
- padding-inline-start: 0;
123
- padding-inline-end: 0;
153
+ padding-inline: calc(
154
+ (
155
+ var(#{custom-props.$navigationCollapsedWidth}, awsui.$size-side-navigation-collapsed-width) -
156
+ #{awsui.$size-side-navigation-item-collapsed}
157
+ ) /
158
+ 2
159
+ );
124
160
  }
125
161
 
126
162
  &.list--with-icons:not(.list-variant-root--collapsed) {
127
- padding-inline-start: calc(#{awsui.$space-panel-side-right} - #{$item-padding-inline});
163
+ padding-inline: calc(#{$root-collapsed-padding-horizontal} - #{$item-padding-inline});
128
164
  }
129
165
  }
130
166
 
@@ -134,19 +170,89 @@ $expandable-icon-negative-margin: awsui.$space-l;
134
170
  &.list--with-icons {
135
171
  padding-inline-start: $item-indent;
136
172
  }
173
+
174
+ &--collapsed {
175
+ padding-inline-start: 0;
176
+ }
137
177
  }
138
178
 
139
179
  .list-variant-section {
140
180
  padding-inline-start: calc(#{$expandable-icon-negative-margin} - #{$item-padding-inline});
141
181
 
142
- &.list--with-icons {
182
+ &.list--with-icons:not(.list-variant-section--collapsed) {
143
183
  padding-inline-start: 0;
144
184
  margin-inline-start: calc(-1 * #{awsui.$space-xs});
145
185
  }
186
+
187
+ &--collapsed {
188
+ padding-inline-start: 0;
189
+ margin-inline-start: 0;
190
+ }
146
191
  }
147
192
 
148
193
  .list-variant-link-group {
149
194
  padding-inline-start: $item-indent;
195
+
196
+ // ENTER: indent expands to make room for the child list.
197
+ @include styles.one-theme-with-motion {
198
+ transition: padding-inline-start $content-enter-motion;
199
+ }
200
+
201
+ &--collapsed {
202
+ padding-inline-start: 0;
203
+ // EXIT: indent collapses back to zero.
204
+ @include styles.one-theme-with-motion {
205
+ transition: padding-inline-start $content-exit-motion;
206
+ }
207
+ }
208
+ }
209
+
210
+ .link-group-children {
211
+ display: grid;
212
+ grid-template-rows: 1fr;
213
+
214
+ @include styles.one-theme-with-motion {
215
+ // ENTER: grid row expands to fit the children.
216
+ transition: grid-template-rows $content-enter-motion;
217
+ }
218
+
219
+ &--collapsed {
220
+ grid-template-rows: 0fr;
221
+
222
+ @include styles.one-theme-with-motion {
223
+ // EXIT: grid row collapses to zero height.
224
+ transition: grid-template-rows $content-exit-motion;
225
+ }
226
+ }
227
+ }
228
+
229
+ .link-group-children-inner {
230
+ overflow-y: clip;
231
+ overflow-x: visible;
232
+ min-block-size: 0;
233
+ opacity: 0;
234
+
235
+ @include styles.one-theme-with-motion {
236
+ // EXIT: opacity fades out.
237
+ transition: opacity $content-exit-fade-motion;
238
+ }
239
+
240
+ &--expanded {
241
+ opacity: 1;
242
+
243
+ @include styles.one-theme-with-motion {
244
+ // ENTER: opacity fades in, delayed until the grid row has partially opened.
245
+ transition: opacity $content-enter-fade-motion;
246
+ }
247
+ }
248
+
249
+ // Applied once the expand transition genuinely finishes (or immediately under reduced
250
+ // motion, where there's no transition to wait for). overflow-y switches to visible so
251
+ // active/hover/focus states on the last child aren't clipped once the grid track is done
252
+ // animating — same issue and same fix as expandable-section's content-inner-settled.
253
+ &--settled {
254
+ overflow-y: visible;
255
+ }
150
256
  }
151
257
 
152
258
  .list-variant-section-group {
@@ -154,6 +260,10 @@ $expandable-icon-negative-margin: awsui.$space-l;
154
260
  margin-inline: calc(-1 * #{$item-padding-inline});
155
261
  padding-block: 0;
156
262
  padding-inline: 0;
263
+
264
+ &--collapsed {
265
+ margin-inline: 0;
266
+ }
157
267
  }
158
268
 
159
269
  // ==========================================================================
@@ -177,39 +287,23 @@ $expandable-icon-negative-margin: awsui.$space-l;
177
287
  }
178
288
 
179
289
  &--collapsed {
290
+ inline-size: fit-content;
180
291
  margin-block: awsui.$space-side-navigation-item-icon-gap;
181
- display: flex;
182
- justify-content: center;
183
292
  padding-block: 0;
184
293
  padding-inline: 0;
185
294
  }
186
295
 
187
- &--group {
188
- padding-inline: 0;
189
- padding-block: awsui.$space-scaled-s;
190
- list-style: none;
191
-
192
- &-no-padding-start {
193
- padding-block-start: 0;
194
- }
195
-
196
- &-no-padding-end {
197
- padding-block-end: 0;
198
- }
199
- }
200
-
201
296
  &--link-with-info {
202
297
  display: flex;
203
298
  align-items: baseline;
204
299
  }
205
300
  }
206
301
 
207
- .list--collapsed-group {
208
- margin-block: 0;
209
- margin-inline: 0;
210
- padding-block: 0;
211
- padding-inline: 0;
212
- list-style: none;
302
+ // Sections and section-groups retain larger visual separation as structural boundaries
303
+ // between children and other groups when collapsed.
304
+ .list-item--collapsed.list-item--group:not(:first-child):has(> .section),
305
+ .list-item--collapsed.list-item--group:not(:first-child):has(> .section-group) {
306
+ margin-block-start: awsui.$space-scaled-xl;
213
307
  }
214
308
 
215
309
  // ==========================================================================
@@ -223,6 +317,11 @@ $expandable-icon-negative-margin: awsui.$space-l;
223
317
  &--expand-icon-end {
224
318
  margin-inline-start: 0;
225
319
  }
320
+
321
+ // Collapsed state: hide the expand icon.
322
+ &--collapsed {
323
+ margin-inline-start: 0;
324
+ }
226
325
  }
227
326
 
228
327
  // Targets the ExpandableSection header wrapper (first child div of the component root).
@@ -239,8 +338,49 @@ $expandable-icon-negative-margin: awsui.$space-l;
239
338
  background-color: awsui.$color-background-side-navigation-item-active;
240
339
  }
241
340
 
341
+ // Collapsed state: constrain to icon square and clip the expand chevron.
342
+ // Delay overflow/size constraints so the expandable-section grid-template-rows
343
+ // collapse animation (1fr→0fr) can run before the parent clips the children area.
344
+ .expandable-link-group--collapsed {
345
+ // Icon-bearing items: allow inline bleed for active/hover bg (no inline clip).
346
+ // overflow-y: visible so the focus ring (outline-offset: 2–4px) is not clipped;
347
+ &:has(.item-icon) {
348
+ overflow-x: visible;
349
+ overflow-y: visible;
350
+ inline-size: awsui.$size-side-navigation-item-collapsed;
351
+ // EXIT: clip to the icon square only after the content has finished collapsing.
352
+ @include styles.one-theme-with-motion {
353
+ transition: inline-size 0s linear $content-exit-clip-delay;
354
+ }
355
+ }
356
+
357
+ // Collapse to zero; clip is delayed via $content-exit-clip-delay.
358
+ &:not(:has(.item-icon)) {
359
+ overflow: hidden;
360
+ inline-size: 0;
361
+ block-size: 0;
362
+ padding-block: 0;
363
+ margin-block: 0;
364
+ // EXIT: block-size/padding collapse immediately; overflow/inline-size snap
365
+ // to zero only after, so the content has time to finish collapsing first.
366
+ @include styles.one-theme-with-motion {
367
+ transition:
368
+ overflow 0s linear $content-exit-clip-delay,
369
+ inline-size 0s linear $content-exit-clip-delay,
370
+ block-size $content-exit-motion,
371
+ padding-block $content-exit-motion;
372
+ }
373
+ }
374
+
375
+ > :first-child {
376
+ padding-inline: 0;
377
+ margin-inline: 0;
378
+ }
379
+ }
380
+
242
381
  .section {
243
382
  margin-block: calc(#{awsui.$space-scaled-2x-l} - #{awsui.$border-divider-section-width});
383
+ min-block-size: 0;
244
384
  &.refresh {
245
385
  margin-block: calc(#{awsui.$space-scaled-xs} - #{awsui.$border-divider-section-width});
246
386
  }
@@ -248,6 +388,50 @@ $expandable-icon-negative-margin: awsui.$space-l;
248
388
  .list-variant-root--first > .list-item:first-child > & {
249
389
  margin-block-start: 0px;
250
390
  }
391
+
392
+ // One-theme only: nested sections use a grid-based content reveal (see > :first-child
393
+ // below), and CSS grid containers never let a grid item's margin collapse with the
394
+ // container's own box. Without this, a section's trailing margin gets trapped inside
395
+ // its parent section's content instead of collapsing away as the last child — inflating
396
+ // every ancestor level's grid-row height by that amount. Zeroing it here (only for
397
+ // sections nested inside another section) restores the same "last child margin doesn't
398
+ // extend the container" behavior normal block layout gives for free.
399
+ @at-root .list-variant-section > .list-item:last-child > #{&} {
400
+ @include theming.one-theme-only {
401
+ margin-block-end: 0px;
402
+ }
403
+ }
404
+
405
+ > :first-child {
406
+ display: grid;
407
+ grid-template-rows: 1fr;
408
+ opacity: 1;
409
+ @include styles.one-theme-with-motion {
410
+ transition:
411
+ grid-template-rows $content-enter-motion,
412
+ padding-block $content-enter-motion,
413
+ opacity $content-enter-fade-motion;
414
+ }
415
+ }
416
+
417
+ // Collapsed state: children are forced open, this hides header with zero-height collapse.
418
+ &--collapsed {
419
+ margin-block: 0;
420
+
421
+ > :first-child {
422
+ grid-template-rows: 0fr;
423
+ overflow: hidden;
424
+ padding-block: 0;
425
+ opacity: 0;
426
+ @include styles.one-theme-with-motion {
427
+ // EXIT: spatial follows opacity — delay collapse.
428
+ transition:
429
+ grid-template-rows $content-exit-motion,
430
+ padding-block $content-exit-motion,
431
+ opacity $content-exit-fade-motion;
432
+ }
433
+ }
434
+ }
251
435
  }
252
436
 
253
437
  .section-header {
@@ -262,6 +446,7 @@ $expandable-icon-negative-margin: awsui.$space-l;
262
446
  .section-group {
263
447
  margin-block: calc(#{awsui.$space-scaled-xs} - #{awsui.$border-divider-section-width});
264
448
  margin-inline: 0;
449
+ min-block-size: 0;
265
450
 
266
451
  .list-variant-root--first > .list-item:first-child > & {
267
452
  margin-block-start: 0px;
@@ -269,20 +454,55 @@ $expandable-icon-negative-margin: awsui.$space-l;
269
454
  }
270
455
 
271
456
  .section-group-title {
272
- display: flex;
457
+ display: grid;
458
+ grid-template-columns: 1fr;
273
459
  align-items: center;
460
+ overflow: hidden;
461
+ min-inline-size: 0;
274
462
  margin-block: 0;
463
+ @include styles.one-theme-with-motion {
464
+ // ENTER: grid-columns snap to 1fr instantly (0s) — full width before text appears.
465
+ transition:
466
+ grid-template-columns 0s,
467
+ block-size $content-enter-motion,
468
+ padding-block $content-enter-motion;
469
+ }
470
+
471
+ &--collapsed {
472
+ grid-template-columns: 0fr;
473
+ block-size: 0;
474
+ padding-block: 0;
475
+ margin-block: 0;
476
+ @include styles.one-theme-with-motion {
477
+ // EXIT: opacity leads (on .label-text child), grid-columns snap to 0fr AFTER
478
+ // opacity completes (0s duration, delay = exit opacity duration).
479
+ transition:
480
+ grid-template-columns 0s $content-exit-fade-duration,
481
+ block-size $content-exit-motion,
482
+ padding-block $content-exit-motion;
483
+ }
484
+ }
485
+ }
486
+
487
+ // Override InternalBox .box.h3-variant padding (specificity 0,2,0) that otherwise
488
+ // wins over the single-class --collapsed rule and reserves vertical space.
489
+ .section-group-title.section-group-title--collapsed {
490
+ padding-block: 0;
275
491
  }
276
492
 
277
493
  // ==========================================================================
278
- // Links — all links use awsui.$size-side-navigation-item-height for consistent row sizing and collapse icon size.
494
+ // Links — all links use awsui.$size-side-navigation-item-height for consistent row sizing;
495
+ // collapsed icon square uses awsui.$size-side-navigation-item-collapsed.
279
496
  // ==========================================================================
280
497
  .link {
281
498
  @include styles.font-body-m;
282
499
  color: awsui.$color-text-side-navigation-item-default;
283
500
  display: flex;
501
+ overflow: hidden;
502
+ box-sizing: border-box;
503
+ min-block-size: awsui.$size-side-navigation-item-height;
284
504
  padding-block: $item-padding-block;
285
- min-inline-size: awsui.$size-side-navigation-item-height;
505
+ min-inline-size: awsui.$size-side-navigation-item-collapsed;
286
506
  padding-inline: $item-padding-inline;
287
507
  margin-inline: calc(-1 * #{$item-padding-inline});
288
508
  align-items: flex-start;
@@ -290,6 +510,13 @@ $expandable-icon-negative-margin: awsui.$space-l;
290
510
  font-weight: styles.$font-weight-normal;
291
511
  -webkit-font-smoothing: auto;
292
512
  -moz-osx-font-smoothing: auto;
513
+ @include styles.one-theme-with-motion {
514
+ // ENTER: block-size expands back to full row height.
515
+ // background-color: smooth interpolation prevents jarring swap on hover/active.
516
+ transition:
517
+ block-size $content-enter-motion,
518
+ background-color awsui.$motion-duration-responsive ease-in-out;
519
+ }
293
520
 
294
521
  &-active {
295
522
  font-weight: awsui.$font-wayfinding-link-active-weight;
@@ -303,15 +530,89 @@ $expandable-icon-negative-margin: awsui.$space-l;
303
530
  &:hover {
304
531
  color: awsui.$color-text-side-navigation-item-active-collapsed;
305
532
  }
533
+ // Icon-less links collapse to zero size — suppress active background so it
534
+ // doesn't visibly shrink as a colored square/circle during the spatial exit.
535
+ &:not(:has(.item-icon)) {
536
+ background-color: transparent;
537
+ }
538
+ }
539
+ // stylelint-disable-next-line no-duplicate-selectors
540
+ & {
541
+ // ENTER: color/background/block-size all settle back to the active state.
542
+ @include styles.one-theme-with-motion {
543
+ transition:
544
+ color awsui.$motion-duration-responsive ease-in-out,
545
+ background-color $content-enter-duration ease-in-out,
546
+ block-size $content-enter-motion;
547
+ }
548
+ }
549
+
550
+ // Icon-less links: step-function the bg so it snaps AFTER the spatial expand
551
+ // finishes — prevents a growing colored square on enter.
552
+ &:not(:has(.item-icon)) {
553
+ // ENTER: background snaps in only after block-size has finished expanding.
554
+ @include styles.one-theme-with-motion {
555
+ transition:
556
+ color awsui.$motion-duration-responsive ease-in-out,
557
+ background-color 0ms linear $content-enter-duration,
558
+ block-size $content-enter-motion;
559
+ }
560
+
561
+ // Collapsed state: snap bg to transparent immediately (no delay).
562
+ &.link--collapsed {
563
+ // EXIT: background snaps out immediately; block-size collapses after.
564
+ @include styles.one-theme-with-motion {
565
+ transition:
566
+ background-color 0ms linear,
567
+ block-size $content-exit-motion,
568
+ min-block-size $content-exit-motion;
569
+ }
570
+ }
306
571
  }
307
572
  }
308
573
 
309
574
  &--collapsed {
310
- padding-inline: 0;
311
- margin-inline: 0;
312
575
  justify-content: center;
313
576
  align-items: center;
577
+ overflow: hidden;
578
+ margin-inline: 0;
314
579
  @include item-radius(awsui.$border-radius-side-navigation-item-collapsed);
580
+
581
+ // Icon-bearing items: anchor the icon at the horizontal center of the collapsed
582
+ // square ($size-side-navigation-item-collapsed) independent of the text-wrapper width.
583
+ // Using padding-inline-start to fix the icon position decouples it from the
584
+ // text-wrapper's grid-template-columns step-function collapse, so:
585
+ // (1) the text fades out via opacity (compositor-cheap), AND
586
+ // (2) the icon center stays stable (no drift from justify-content re-centering).
587
+ &:has(.item-icon) {
588
+ justify-content: flex-start;
589
+ padding-inline-start: calc((#{awsui.$size-side-navigation-item-collapsed} - #{awsui.$size-icon-normal}) / 2);
590
+ padding-inline-end: 0;
591
+ // Override base item-height floor to enforce icon-sized square.
592
+ min-block-size: awsui.$size-side-navigation-item-collapsed;
593
+ max-block-size: awsui.$size-side-navigation-item-collapsed;
594
+ // Square forms naturally at rest: min-inline-size enforces minimum, text-wrapper at
595
+ // grid-template-columns: 0fr contributes zero width. fit-content prevents transient
596
+ // overflow without a fixed max that would clip the text fade animation.
597
+ max-inline-size: fit-content;
598
+ box-sizing: border-box;
599
+ }
600
+
601
+ &:not(:has(.item-icon)) {
602
+ inline-size: 0;
603
+ min-inline-size: 0;
604
+ padding-inline: 0;
605
+ block-size: 0;
606
+ min-block-size: 0;
607
+ padding-block: 0;
608
+ margin-block: 0;
609
+ @include styles.one-theme-with-motion {
610
+ // EXIT: spatial follows opacity — delay block collapse.
611
+ transition:
612
+ block-size $content-exit-motion,
613
+ min-block-size $content-exit-motion;
614
+ }
615
+ }
315
616
  }
316
617
  }
317
618
 
@@ -335,13 +636,80 @@ $expandable-icon-negative-margin: awsui.$space-l;
335
636
  @include focus-visible.when-visible {
336
637
  @include styles.link-focus;
337
638
  }
639
+
640
+ // Larger gutter for active collapsed items so the focus ring is clearly separated from the background edge.
641
+ // overflow: visible overrides the base .link--collapsed overflow: hidden so the ::before pseudo-element is not clipped.
642
+ // stylelint-disable-next-line no-descending-specificity
643
+ &-active.link--collapsed {
644
+ overflow: visible;
645
+ @include focus-visible.when-visible {
646
+ @include styles.focus-highlight(4px);
647
+ }
648
+ }
338
649
  }
339
650
 
340
651
  // ==========================================================================
341
652
  // Misc
342
653
  // ==========================================================================
654
+
655
+ // Allows text wrapping at rest; parent grid container handles the 0fr clip.
656
+ .link-text-wrapper-content {
657
+ white-space: normal;
658
+ overflow: visible;
659
+ text-overflow: clip;
660
+ min-inline-size: 0;
661
+ }
662
+
343
663
  .link-text-wrapper {
664
+ display: grid;
665
+ grid-template-columns: 1fr;
666
+ overflow: hidden;
667
+ min-inline-size: 0;
668
+ opacity: 1;
669
+
670
+ // ENTER: grid snaps to 1fr instantly; opacity follows with delay.
671
+ @include styles.one-theme-with-motion {
672
+ transition:
673
+ grid-template-columns 0s,
674
+ opacity $content-enter-fade-motion;
675
+ }
676
+
677
+ &--collapsed {
678
+ grid-template-columns: 0fr;
679
+ opacity: 0;
680
+
681
+ // EXIT (collapsed state governs transition INTO collapsed): Opacity leads (no delay).
682
+ // Grid snaps to 0fr AFTER opacity completes (0s duration, delay = exit opacity duration)
683
+ // — holds at 1fr during the fade so text remains full-width + visible while fading.
684
+ @include styles.one-theme-with-motion {
685
+ transition:
686
+ grid-template-columns 0s $content-exit-fade-duration,
687
+ opacity $content-exit-fade-motion;
688
+ }
689
+ }
690
+ }
691
+
692
+ // Shared text-fade for non-link labels (section headers, section-group titles).
693
+ // Uses the same opacity timing as .link-text-wrapper for visual consistency.
694
+ .label-text {
695
+ opacity: 1;
696
+ white-space: normal;
697
+ overflow: visible;
698
+ text-overflow: clip;
344
699
  min-inline-size: 0;
700
+ @include styles.one-theme-with-motion {
701
+ // ENTER: opacity follows spatial — delayed fade-in after height expands.
702
+ transition: opacity $content-enter-fade-motion;
703
+ }
704
+ &--collapsed {
705
+ opacity: 0;
706
+ overflow: hidden;
707
+ white-space: nowrap;
708
+ @include styles.one-theme-with-motion {
709
+ // EXIT: opacity leads — fast fade-out, no delay.
710
+ transition: opacity $content-exit-fade-motion;
711
+ }
712
+ }
345
713
  }
346
714
 
347
715
  .info {
@@ -352,6 +720,12 @@ $expandable-icon-negative-margin: awsui.$space-l;
352
720
  .item-icon {
353
721
  display: inline-flex;
354
722
  flex-shrink: 0;
723
+ // EXIT: text gap margin collapses to zero once the icon is the only remaining content.
724
+ @include styles.one-theme-with-motion {
725
+ transition:
726
+ color awsui.$motion-duration-responsive awsui.$motion-easing-responsive,
727
+ margin-inline-end $content-exit-motion;
728
+ }
355
729
  &:not(.item-icon--collapsed) {
356
730
  margin-inline-end: $item-icon-text-gap;
357
731
  }
@@ -369,7 +743,6 @@ $expandable-icon-negative-margin: awsui.$space-l;
369
743
  border-block-start: awsui.$border-divider-section-width solid awsui.$color-border-divider-default;
370
744
  &.divider--collapsed {
371
745
  margin-block: awsui.$space-scaled-2x-m;
372
- margin-inline: awsui.$space-xs;
373
746
  }
374
747
  }
375
748
  &-header {
@@ -399,16 +772,16 @@ $expandable-icon-negative-margin: awsui.$space-l;
399
772
  @include icon-layout-hover-background;
400
773
  }
401
774
 
402
- // Expandable-link-group header: hover background.
403
- > .list-item > .expandable-link-group > div:first-child:hover {
775
+ // Expandable-link-group header: hover background (expanded only).
776
+ // Collapsed ELGs use .link--collapsed:hover on the inner <a> instead.
777
+ > .list-item > .expandable-link-group:not(.expandable-link-group--collapsed) > div:first-child:hover {
404
778
  @include icon-layout-hover-background;
405
779
  }
406
780
 
407
- // Section (footer-variant expandable) header: full-width hover geometry + background.
408
- // :first-child targets the ExpandableSection header wrapper (positional cross-component coupling).
781
+ // Section (footer-variant expandable) header :first-child targets the ExpandableSection header wrapper.
409
782
  > .list-item > .section > :first-child {
410
783
  @include item-radius;
411
- display: flex;
784
+ display: grid;
412
785
  padding-inline: $item-padding-inline;
413
786
  margin-inline: calc(-1 * #{$item-padding-inline});
414
787
  box-sizing: content-box;
@@ -417,6 +790,13 @@ $expandable-icon-negative-margin: awsui.$space-l;
417
790
  @include icon-layout-hover-background;
418
791
  }
419
792
  }
793
+
794
+ // In collapsed mode, icon-layout section headers are zero-height; zero their inline offsets
795
+ // to prevent influencing the layout of children below.
796
+ > .list-item--collapsed > .section--collapsed > :first-child {
797
+ padding-inline: 0;
798
+ margin-inline: 0;
799
+ }
420
800
  }
421
801
 
422
802
  // --- Collapsed rail items (always have icons; gated by collapsed classes) ---
@@ -1,22 +1,22 @@
1
1
 
2
2
  import './styles.scoped.css';
3
3
  export default {
4
- "root": "awsui_root_16248_sqjmi_161",
5
- "icon": "awsui_icon_16248_sqjmi_193",
6
- "header-inner": "awsui_header-inner_16248_sqjmi_209",
7
- "disabled": "awsui_disabled_16248_sqjmi_218",
8
- "header": "awsui_header_16248_sqjmi_209",
9
- "body": "awsui_body_16248_sqjmi_224",
10
- "header-row": "awsui_header-row_16248_sqjmi_228",
11
- "description": "awsui_description_16248_sqjmi_241",
12
- "has-header": "awsui_has-header_16248_sqjmi_247",
13
- "header-button": "awsui_header-button_16248_sqjmi_261",
14
- "overlay-button": "awsui_overlay-button_16248_sqjmi_262",
15
- "variant-embedded": "awsui_variant-embedded_16248_sqjmi_281",
16
- "variant-default": "awsui_variant-default_16248_sqjmi_293",
17
- "inner-card": "awsui_inner-card_16248_sqjmi_394",
18
- "no-padding": "awsui_no-padding_16248_sqjmi_401",
19
- "icon-vertical-align-center": "awsui_icon-vertical-align-center_16248_sqjmi_412",
20
- "icon-align-end": "awsui_icon-align-end_16248_sqjmi_548"
4
+ "root": "awsui_root_16248_1htwo_161",
5
+ "icon": "awsui_icon_16248_1htwo_193",
6
+ "header-inner": "awsui_header-inner_16248_1htwo_209",
7
+ "disabled": "awsui_disabled_16248_1htwo_218",
8
+ "header": "awsui_header_16248_1htwo_209",
9
+ "body": "awsui_body_16248_1htwo_224",
10
+ "header-row": "awsui_header-row_16248_1htwo_228",
11
+ "description": "awsui_description_16248_1htwo_241",
12
+ "has-header": "awsui_has-header_16248_1htwo_247",
13
+ "header-button": "awsui_header-button_16248_1htwo_261",
14
+ "overlay-button": "awsui_overlay-button_16248_1htwo_262",
15
+ "variant-embedded": "awsui_variant-embedded_16248_1htwo_281",
16
+ "variant-default": "awsui_variant-default_16248_1htwo_293",
17
+ "inner-card": "awsui_inner-card_16248_1htwo_394",
18
+ "no-padding": "awsui_no-padding_16248_1htwo_401",
19
+ "icon-vertical-align-center": "awsui_icon-vertical-align-center_16248_1htwo_412",
20
+ "icon-align-end": "awsui_icon-align-end_16248_1htwo_548"
21
21
  };
22
22