@cloudscape-design/components-themeable 3.0.1332 → 3.0.1334

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 (375) hide show
  1. package/lib/internal/manifest.json +1 -1
  2. package/lib/internal/scss/app-layout/constants.scss +4 -0
  3. package/lib/internal/scss/app-layout/visual-refresh-toolbar/navigation/styles.scss +43 -13
  4. package/lib/internal/scss/app-layout/visual-refresh-toolbar/skeleton/styles.scss +7 -1
  5. package/lib/internal/scss/app-layout/visual-refresh-toolbar/toolbar/styles.scss +2 -2
  6. package/lib/internal/scss/box/visual-accent.scss +61 -25
  7. package/lib/internal/scss/button/styles.scss +6 -0
  8. package/lib/internal/scss/code-editor/ace-editor.scss +1 -1
  9. package/lib/internal/scss/internal/generated/custom-css-properties/index.scss +174 -173
  10. package/lib/internal/scss/side-navigation/styles.scss +14 -10
  11. package/lib/internal/scss/status-indicator/styles.scss +4 -2
  12. package/lib/internal/scss/steps/styles.scss +113 -31
  13. package/lib/internal/scss/table/header-cell/styles.scss +42 -14
  14. package/lib/internal/scss/table/styles.scss +6 -0
  15. package/lib/internal/scss/tooltip/styles.scss +22 -0
  16. package/lib/internal/template/alert/styles.css.js +27 -27
  17. package/lib/internal/template/alert/styles.scoped.css +50 -50
  18. package/lib/internal/template/alert/styles.selectors.js +27 -27
  19. package/lib/internal/template/annotation-context/annotation/styles.css.js +13 -13
  20. package/lib/internal/template/annotation-context/annotation/styles.scoped.css +21 -21
  21. package/lib/internal/template/annotation-context/annotation/styles.selectors.js +13 -13
  22. package/lib/internal/template/app-layout/classic.d.ts +1 -0
  23. package/lib/internal/template/app-layout/classic.d.ts.map +1 -1
  24. package/lib/internal/template/app-layout/index.d.ts.map +1 -1
  25. package/lib/internal/template/app-layout/index.js +2 -1
  26. package/lib/internal/template/app-layout/index.js.map +1 -1
  27. package/lib/internal/template/app-layout/interfaces.d.ts +16 -1
  28. package/lib/internal/template/app-layout/interfaces.d.ts.map +1 -1
  29. package/lib/internal/template/app-layout/interfaces.js.map +1 -1
  30. package/lib/internal/template/app-layout/internal.d.ts +1 -0
  31. package/lib/internal/template/app-layout/internal.d.ts.map +1 -1
  32. package/lib/internal/template/app-layout/notifications/styles.css.js +3 -3
  33. package/lib/internal/template/app-layout/notifications/styles.scoped.css +7 -7
  34. package/lib/internal/template/app-layout/notifications/styles.selectors.js +3 -3
  35. package/lib/internal/template/app-layout/visual-refresh/index.d.ts +1 -0
  36. package/lib/internal/template/app-layout/visual-refresh/index.d.ts.map +1 -1
  37. package/lib/internal/template/app-layout/visual-refresh/styles.css.js +86 -86
  38. package/lib/internal/template/app-layout/visual-refresh/styles.scoped.css +262 -262
  39. package/lib/internal/template/app-layout/visual-refresh/styles.selectors.js +86 -86
  40. package/lib/internal/template/app-layout/visual-refresh-toolbar/compute-layout.d.ts +3 -1
  41. package/lib/internal/template/app-layout/visual-refresh-toolbar/compute-layout.d.ts.map +1 -1
  42. package/lib/internal/template/app-layout/visual-refresh-toolbar/compute-layout.js +2 -2
  43. package/lib/internal/template/app-layout/visual-refresh-toolbar/compute-layout.js.map +1 -1
  44. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/styles.css.js +32 -32
  45. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/styles.scoped.css +93 -93
  46. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/styles.selectors.js +32 -32
  47. package/lib/internal/template/app-layout/visual-refresh-toolbar/interfaces.d.ts +2 -0
  48. package/lib/internal/template/app-layout/visual-refresh-toolbar/interfaces.d.ts.map +1 -1
  49. package/lib/internal/template/app-layout/visual-refresh-toolbar/interfaces.js.map +1 -1
  50. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/index.d.ts +2 -1
  51. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/index.d.ts.map +1 -1
  52. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/index.js +11 -5
  53. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/index.js.map +1 -1
  54. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/styles.css.js +6 -4
  55. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/styles.scoped.css +34 -15
  56. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/styles.selectors.js +6 -4
  57. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/skeleton-parts.d.ts.map +1 -1
  58. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/skeleton-parts.js +4 -2
  59. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/skeleton-parts.js.map +1 -1
  60. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/styles.css.js +30 -29
  61. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/styles.scoped.css +72 -67
  62. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/styles.selectors.js +30 -29
  63. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/interfaces.d.ts +1 -0
  64. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/interfaces.d.ts.map +1 -1
  65. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/interfaces.js.map +1 -1
  66. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/props-merger.d.ts.map +1 -1
  67. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/props-merger.js +2 -0
  68. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/props-merger.js.map +1 -1
  69. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-app-layout.d.ts +1 -1
  70. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-app-layout.d.ts.map +1 -1
  71. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-app-layout.js +26 -3
  72. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-app-layout.js.map +1 -1
  73. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-skeleton-slots-attributes.d.ts.map +1 -1
  74. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-skeleton-slots-attributes.js +2 -1
  75. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-skeleton-slots-attributes.js.map +1 -1
  76. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/index.d.ts +1 -0
  77. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/index.d.ts.map +1 -1
  78. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/index.js.map +1 -1
  79. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/styles.css.js +14 -14
  80. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/styles.scoped.css +36 -36
  81. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/styles.selectors.js +14 -14
  82. package/lib/internal/template/app-layout/visual-refresh-toolbar/widget-areas/before-main-slot.d.ts.map +1 -1
  83. package/lib/internal/template/app-layout/visual-refresh-toolbar/widget-areas/before-main-slot.js +3 -3
  84. package/lib/internal/template/app-layout/visual-refresh-toolbar/widget-areas/before-main-slot.js.map +1 -1
  85. package/lib/internal/template/app-layout-toolbar/index.d.ts.map +1 -1
  86. package/lib/internal/template/app-layout-toolbar/index.js +2 -1
  87. package/lib/internal/template/app-layout-toolbar/index.js.map +1 -1
  88. package/lib/internal/template/attribute-editor/styles.css.js +15 -15
  89. package/lib/internal/template/attribute-editor/styles.scoped.css +29 -29
  90. package/lib/internal/template/attribute-editor/styles.selectors.js +15 -15
  91. package/lib/internal/template/box/interfaces.d.ts +1 -1
  92. package/lib/internal/template/box/interfaces.d.ts.map +1 -1
  93. package/lib/internal/template/box/interfaces.js.map +1 -1
  94. package/lib/internal/template/box/styles.css.js +220 -224
  95. package/lib/internal/template/box/styles.scoped.css +293 -313
  96. package/lib/internal/template/box/styles.selectors.js +220 -224
  97. package/lib/internal/template/breadcrumb-group/item/styles.css.js +7 -7
  98. package/lib/internal/template/breadcrumb-group/item/styles.scoped.css +30 -30
  99. package/lib/internal/template/breadcrumb-group/item/styles.selectors.js +7 -7
  100. package/lib/internal/template/button/internal.d.ts +2 -0
  101. package/lib/internal/template/button/internal.d.ts.map +1 -1
  102. package/lib/internal/template/button/internal.js +2 -1
  103. package/lib/internal/template/button/internal.js.map +1 -1
  104. package/lib/internal/template/button/styles.css.js +23 -22
  105. package/lib/internal/template/button/styles.scoped.css +261 -256
  106. package/lib/internal/template/button/styles.selectors.js +23 -22
  107. package/lib/internal/template/button-dropdown/internal-interfaces.d.ts +11 -0
  108. package/lib/internal/template/button-dropdown/internal-interfaces.d.ts.map +1 -1
  109. package/lib/internal/template/button-dropdown/internal-interfaces.js.map +1 -1
  110. package/lib/internal/template/button-dropdown/internal.d.ts.map +1 -1
  111. package/lib/internal/template/button-dropdown/internal.js +3 -2
  112. package/lib/internal/template/button-dropdown/internal.js.map +1 -1
  113. package/lib/internal/template/button-dropdown/item-element/styles.css.js +21 -21
  114. package/lib/internal/template/button-dropdown/item-element/styles.scoped.css +37 -37
  115. package/lib/internal/template/button-dropdown/item-element/styles.selectors.js +21 -21
  116. package/lib/internal/template/button-group/copy-to-clipboard-item.d.ts +16 -0
  117. package/lib/internal/template/button-group/copy-to-clipboard-item.d.ts.map +1 -0
  118. package/lib/internal/template/button-group/copy-to-clipboard-item.js +38 -0
  119. package/lib/internal/template/button-group/copy-to-clipboard-item.js.map +1 -0
  120. package/lib/internal/template/button-group/index.d.ts.map +1 -1
  121. package/lib/internal/template/button-group/index.js +9 -1
  122. package/lib/internal/template/button-group/index.js.map +1 -1
  123. package/lib/internal/template/button-group/interfaces.d.ts +38 -2
  124. package/lib/internal/template/button-group/interfaces.d.ts.map +1 -1
  125. package/lib/internal/template/button-group/interfaces.js.map +1 -1
  126. package/lib/internal/template/button-group/internal-interfaces.d.ts +1 -1
  127. package/lib/internal/template/button-group/internal-interfaces.d.ts.map +1 -1
  128. package/lib/internal/template/button-group/internal-interfaces.js.map +1 -1
  129. package/lib/internal/template/button-group/internal.d.ts.map +1 -1
  130. package/lib/internal/template/button-group/internal.js +2 -2
  131. package/lib/internal/template/button-group/internal.js.map +1 -1
  132. package/lib/internal/template/button-group/item-element.d.ts +2 -0
  133. package/lib/internal/template/button-group/item-element.d.ts.map +1 -1
  134. package/lib/internal/template/button-group/item-element.js +13 -3
  135. package/lib/internal/template/button-group/item-element.js.map +1 -1
  136. package/lib/internal/template/checkbox/styles.css.js +3 -3
  137. package/lib/internal/template/checkbox/styles.scoped.css +11 -11
  138. package/lib/internal/template/checkbox/styles.selectors.js +3 -3
  139. package/lib/internal/template/code-editor/styles.css.js +33 -33
  140. package/lib/internal/template/code-editor/styles.scoped.css +187 -187
  141. package/lib/internal/template/code-editor/styles.selectors.js +33 -33
  142. package/lib/internal/template/content-layout/styles.css.js +14 -14
  143. package/lib/internal/template/content-layout/styles.scoped.css +27 -27
  144. package/lib/internal/template/content-layout/styles.selectors.js +14 -14
  145. package/lib/internal/template/dropdown/styles.css.js +20 -20
  146. package/lib/internal/template/dropdown/styles.scoped.css +49 -49
  147. package/lib/internal/template/dropdown/styles.selectors.js +20 -20
  148. package/lib/internal/template/file-token-group/styles.css.js +23 -23
  149. package/lib/internal/template/file-token-group/styles.scoped.css +36 -36
  150. package/lib/internal/template/file-token-group/styles.selectors.js +23 -23
  151. package/lib/internal/template/flashbar/styles.css.js +50 -50
  152. package/lib/internal/template/flashbar/styles.scoped.css +192 -192
  153. package/lib/internal/template/flashbar/styles.selectors.js +50 -50
  154. package/lib/internal/template/help-panel/styles.css.js +6 -6
  155. package/lib/internal/template/help-panel/styles.scoped.css +72 -72
  156. package/lib/internal/template/help-panel/styles.selectors.js +6 -6
  157. package/lib/internal/template/i18n/messages/all.all.js +1 -1
  158. package/lib/internal/template/i18n/messages/all.all.json +1 -1
  159. package/lib/internal/template/i18n/messages/all.ar.js +1 -1
  160. package/lib/internal/template/i18n/messages/all.ar.json +1 -1
  161. package/lib/internal/template/i18n/messages/all.de.js +1 -1
  162. package/lib/internal/template/i18n/messages/all.de.json +1 -1
  163. package/lib/internal/template/i18n/messages/all.en-GB.js +1 -1
  164. package/lib/internal/template/i18n/messages/all.en-GB.json +1 -1
  165. package/lib/internal/template/i18n/messages/all.en.js +1 -1
  166. package/lib/internal/template/i18n/messages/all.en.json +1 -1
  167. package/lib/internal/template/i18n/messages/all.es.js +1 -1
  168. package/lib/internal/template/i18n/messages/all.es.json +1 -1
  169. package/lib/internal/template/i18n/messages/all.fr.js +1 -1
  170. package/lib/internal/template/i18n/messages/all.fr.json +1 -1
  171. package/lib/internal/template/i18n/messages/all.id.js +1 -1
  172. package/lib/internal/template/i18n/messages/all.id.json +1 -1
  173. package/lib/internal/template/i18n/messages/all.it.js +1 -1
  174. package/lib/internal/template/i18n/messages/all.it.json +1 -1
  175. package/lib/internal/template/i18n/messages/all.ja.js +1 -1
  176. package/lib/internal/template/i18n/messages/all.ja.json +1 -1
  177. package/lib/internal/template/i18n/messages/all.ko.js +1 -1
  178. package/lib/internal/template/i18n/messages/all.ko.json +1 -1
  179. package/lib/internal/template/i18n/messages/all.pt-BR.js +1 -1
  180. package/lib/internal/template/i18n/messages/all.pt-BR.json +1 -1
  181. package/lib/internal/template/i18n/messages/all.tr.js +1 -1
  182. package/lib/internal/template/i18n/messages/all.tr.json +1 -1
  183. package/lib/internal/template/i18n/messages/all.zh-CN.js +1 -1
  184. package/lib/internal/template/i18n/messages/all.zh-CN.json +1 -1
  185. package/lib/internal/template/i18n/messages/all.zh-TW.js +1 -1
  186. package/lib/internal/template/i18n/messages/all.zh-TW.json +1 -1
  187. package/lib/internal/template/i18n/messages-types.d.ts +19 -0
  188. package/lib/internal/template/i18n/messages-types.d.ts.map +1 -1
  189. package/lib/internal/template/i18n/messages-types.js.map +1 -1
  190. package/lib/internal/template/input/styles.css.js +18 -18
  191. package/lib/internal/template/input/styles.scoped.css +82 -82
  192. package/lib/internal/template/input/styles.selectors.js +18 -18
  193. package/lib/internal/template/internal/base-component/styles.scoped.css +171 -3
  194. package/lib/internal/template/internal/components/abstract-switch/index.d.ts.map +1 -1
  195. package/lib/internal/template/internal/components/abstract-switch/index.js +7 -1
  196. package/lib/internal/template/internal/components/abstract-switch/index.js.map +1 -1
  197. package/lib/internal/template/internal/components/drag-handle-wrapper/styles.css.js +30 -30
  198. package/lib/internal/template/internal/components/drag-handle-wrapper/styles.scoped.css +58 -58
  199. package/lib/internal/template/internal/components/drag-handle-wrapper/styles.selectors.js +30 -30
  200. package/lib/internal/template/internal/components/option/styles.css.js +17 -17
  201. package/lib/internal/template/internal/components/option/styles.scoped.css +31 -31
  202. package/lib/internal/template/internal/components/option/styles.selectors.js +17 -17
  203. package/lib/internal/template/internal/components/radio-button/styles.css.js +7 -7
  204. package/lib/internal/template/internal/components/radio-button/styles.scoped.css +18 -18
  205. package/lib/internal/template/internal/components/radio-button/styles.selectors.js +7 -7
  206. package/lib/internal/template/internal/components/selectable-item/styles.css.js +22 -22
  207. package/lib/internal/template/internal/components/selectable-item/styles.scoped.css +57 -57
  208. package/lib/internal/template/internal/components/selectable-item/styles.selectors.js +22 -22
  209. package/lib/internal/template/internal/components/token-list/styles.css.js +10 -10
  210. package/lib/internal/template/internal/components/token-list/styles.scoped.css +25 -25
  211. package/lib/internal/template/internal/components/token-list/styles.selectors.js +10 -10
  212. package/lib/internal/template/internal/environment.js +2 -2
  213. package/lib/internal/template/internal/environment.json +2 -2
  214. package/lib/internal/template/internal/generated/custom-css-properties/index.d.ts +1 -0
  215. package/lib/internal/template/internal/generated/custom-css-properties/index.d.ts.map +1 -1
  216. package/lib/internal/template/internal/generated/custom-css-properties/index.js +173 -172
  217. package/lib/internal/template/internal/generated/custom-css-properties/index.js.map +1 -1
  218. package/lib/internal/template/internal/generated/styles/tokens.d.ts +37 -38
  219. package/lib/internal/template/internal/generated/styles/tokens.js +37 -38
  220. package/lib/internal/template/internal/generated/theming/index.cjs +625 -774
  221. package/lib/internal/template/internal/generated/theming/index.cjs.d.ts +63 -9
  222. package/lib/internal/template/internal/generated/theming/index.d.ts +63 -9
  223. package/lib/internal/template/internal/generated/theming/index.js +625 -774
  224. package/lib/internal/template/item-card/styles.css.js +14 -14
  225. package/lib/internal/template/item-card/styles.scoped.css +63 -63
  226. package/lib/internal/template/item-card/styles.selectors.js +14 -14
  227. package/lib/internal/template/link/styles.css.js +21 -21
  228. package/lib/internal/template/link/styles.scoped.css +117 -117
  229. package/lib/internal/template/link/styles.selectors.js +21 -21
  230. package/lib/internal/template/modal/styles.css.js +31 -31
  231. package/lib/internal/template/modal/styles.scoped.css +48 -48
  232. package/lib/internal/template/modal/styles.selectors.js +31 -31
  233. package/lib/internal/template/package.json +94 -0
  234. package/lib/internal/template/progress-bar/styles.css.js +18 -18
  235. package/lib/internal/template/progress-bar/styles.scoped.css +48 -48
  236. package/lib/internal/template/progress-bar/styles.selectors.js +18 -18
  237. package/lib/internal/template/prompt-input/styles.css.js +26 -26
  238. package/lib/internal/template/prompt-input/styles.scoped.css +105 -105
  239. package/lib/internal/template/prompt-input/styles.selectors.js +26 -26
  240. package/lib/internal/template/segmented-control/styles.css.js +16 -16
  241. package/lib/internal/template/segmented-control/styles.scoped.css +46 -46
  242. package/lib/internal/template/segmented-control/styles.selectors.js +16 -16
  243. package/lib/internal/template/side-navigation/implementation.d.ts.map +1 -1
  244. package/lib/internal/template/side-navigation/implementation.js +6 -4
  245. package/lib/internal/template/side-navigation/implementation.js.map +1 -1
  246. package/lib/internal/template/side-navigation/parts.d.ts +4 -1
  247. package/lib/internal/template/side-navigation/parts.d.ts.map +1 -1
  248. package/lib/internal/template/side-navigation/parts.js +45 -32
  249. package/lib/internal/template/side-navigation/parts.js.map +1 -1
  250. package/lib/internal/template/side-navigation/styles.css.js +48 -47
  251. package/lib/internal/template/side-navigation/styles.scoped.css +79 -78
  252. package/lib/internal/template/side-navigation/styles.selectors.js +48 -47
  253. package/lib/internal/template/side-navigation/util.d.ts +1 -0
  254. package/lib/internal/template/side-navigation/util.d.ts.map +1 -1
  255. package/lib/internal/template/side-navigation/util.js +5 -0
  256. package/lib/internal/template/side-navigation/util.js.map +1 -1
  257. package/lib/internal/template/slider/styles.css.js +26 -26
  258. package/lib/internal/template/slider/styles.scoped.css +165 -165
  259. package/lib/internal/template/slider/styles.selectors.js +26 -26
  260. package/lib/internal/template/spinner/styles.css.js +13 -13
  261. package/lib/internal/template/spinner/styles.scoped.css +39 -39
  262. package/lib/internal/template/spinner/styles.selectors.js +13 -13
  263. package/lib/internal/template/status-indicator/internal-interfaces.d.ts +3 -0
  264. package/lib/internal/template/status-indicator/internal-interfaces.d.ts.map +1 -0
  265. package/lib/internal/template/status-indicator/internal-interfaces.js +2 -0
  266. package/lib/internal/template/status-indicator/internal-interfaces.js.map +1 -0
  267. package/lib/internal/template/status-indicator/internal.d.ts +6 -2
  268. package/lib/internal/template/status-indicator/internal.d.ts.map +1 -1
  269. package/lib/internal/template/status-indicator/internal.js +1 -0
  270. package/lib/internal/template/status-indicator/internal.js.map +1 -1
  271. package/lib/internal/template/status-indicator/styles.css.js +25 -24
  272. package/lib/internal/template/status-indicator/styles.scoped.css +59 -53
  273. package/lib/internal/template/status-indicator/styles.selectors.js +25 -24
  274. package/lib/internal/template/steps/interfaces.d.ts +4 -2
  275. package/lib/internal/template/steps/interfaces.d.ts.map +1 -1
  276. package/lib/internal/template/steps/interfaces.js.map +1 -1
  277. package/lib/internal/template/steps/internal.d.ts.map +1 -1
  278. package/lib/internal/template/steps/internal.js +36 -12
  279. package/lib/internal/template/steps/internal.js.map +1 -1
  280. package/lib/internal/template/steps/styles.css.js +17 -13
  281. package/lib/internal/template/steps/styles.scoped.css +99 -42
  282. package/lib/internal/template/steps/styles.selectors.js +17 -13
  283. package/lib/internal/template/table/clear-sort.d.ts +9 -0
  284. package/lib/internal/template/table/clear-sort.d.ts.map +1 -0
  285. package/lib/internal/template/table/clear-sort.js +15 -0
  286. package/lib/internal/template/table/clear-sort.js.map +1 -0
  287. package/lib/internal/template/table/header-cell/index.d.ts +4 -1
  288. package/lib/internal/template/table/header-cell/index.d.ts.map +1 -1
  289. package/lib/internal/template/table/header-cell/index.js +122 -33
  290. package/lib/internal/template/table/header-cell/index.js.map +1 -1
  291. package/lib/internal/template/table/header-cell/sort-menu.d.ts +14 -0
  292. package/lib/internal/template/table/header-cell/sort-menu.d.ts.map +1 -0
  293. package/lib/internal/template/table/header-cell/sort-menu.js +50 -0
  294. package/lib/internal/template/table/header-cell/sort-menu.js.map +1 -0
  295. package/lib/internal/template/table/header-cell/styles.css.js +38 -33
  296. package/lib/internal/template/table/header-cell/styles.scoped.css +101 -76
  297. package/lib/internal/template/table/header-cell/styles.selectors.js +38 -33
  298. package/lib/internal/template/table/header-cell/th-element.d.ts +8 -1
  299. package/lib/internal/template/table/header-cell/th-element.d.ts.map +1 -1
  300. package/lib/internal/template/table/header-cell/th-element.js +6 -2
  301. package/lib/internal/template/table/header-cell/th-element.js.map +1 -1
  302. package/lib/internal/template/table/index.d.ts.map +1 -1
  303. package/lib/internal/template/table/index.js +1 -0
  304. package/lib/internal/template/table/index.js.map +1 -1
  305. package/lib/internal/template/table/interfaces.d.ts +67 -1
  306. package/lib/internal/template/table/interfaces.d.ts.map +1 -1
  307. package/lib/internal/template/table/interfaces.js.map +1 -1
  308. package/lib/internal/template/table/internal.d.ts.map +1 -1
  309. package/lib/internal/template/table/internal.js +21 -3
  310. package/lib/internal/template/table/internal.js.map +1 -1
  311. package/lib/internal/template/table/multi-column-sort/live-announcement.d.ts +16 -0
  312. package/lib/internal/template/table/multi-column-sort/live-announcement.d.ts.map +1 -0
  313. package/lib/internal/template/table/multi-column-sort/live-announcement.js +68 -0
  314. package/lib/internal/template/table/multi-column-sort/live-announcement.js.map +1 -0
  315. package/lib/internal/template/table/multi-column-sort/utils.d.ts +45 -0
  316. package/lib/internal/template/table/multi-column-sort/utils.d.ts.map +1 -0
  317. package/lib/internal/template/table/multi-column-sort/utils.js +76 -0
  318. package/lib/internal/template/table/multi-column-sort/utils.js.map +1 -0
  319. package/lib/internal/template/table/styles.css.js +37 -36
  320. package/lib/internal/template/table/styles.scoped.css +46 -43
  321. package/lib/internal/template/table/styles.selectors.js +37 -36
  322. package/lib/internal/template/table/thead.d.ts +3 -0
  323. package/lib/internal/template/table/thead.d.ts.map +1 -1
  324. package/lib/internal/template/table/thead.js +3 -3
  325. package/lib/internal/template/table/thead.js.map +1 -1
  326. package/lib/internal/template/table/tools-header.d.ts +2 -1
  327. package/lib/internal/template/table/tools-header.d.ts.map +1 -1
  328. package/lib/internal/template/table/tools-header.js +4 -3
  329. package/lib/internal/template/table/tools-header.js.map +1 -1
  330. package/lib/internal/template/tabs/styles.css.js +30 -30
  331. package/lib/internal/template/tabs/styles.scoped.css +76 -76
  332. package/lib/internal/template/tabs/styles.selectors.js +30 -30
  333. package/lib/internal/template/tag-editor/styles.css.js +3 -3
  334. package/lib/internal/template/tag-editor/styles.scoped.css +13 -13
  335. package/lib/internal/template/tag-editor/styles.selectors.js +3 -3
  336. package/lib/internal/template/test-utils/dom/button-group/index.d.ts +4 -0
  337. package/lib/internal/template/test-utils/dom/button-group/index.js +8 -0
  338. package/lib/internal/template/test-utils/dom/button-group/index.js.map +1 -1
  339. package/lib/internal/template/test-utils/dom/steps/index.d.ts +4 -0
  340. package/lib/internal/template/test-utils/dom/steps/index.js +6 -0
  341. package/lib/internal/template/test-utils/dom/steps/index.js.map +1 -1
  342. package/lib/internal/template/test-utils/dom/table/index.d.ts +77 -0
  343. package/lib/internal/template/test-utils/dom/table/index.js +87 -2
  344. package/lib/internal/template/test-utils/dom/table/index.js.map +1 -1
  345. package/lib/internal/template/test-utils/selectors/button-group/index.d.ts +4 -0
  346. package/lib/internal/template/test-utils/selectors/button-group/index.js +8 -0
  347. package/lib/internal/template/test-utils/selectors/button-group/index.js.map +1 -1
  348. package/lib/internal/template/test-utils/selectors/steps/index.d.ts +4 -0
  349. package/lib/internal/template/test-utils/selectors/steps/index.js +6 -0
  350. package/lib/internal/template/test-utils/selectors/steps/index.js.map +1 -1
  351. package/lib/internal/template/test-utils/selectors/table/index.d.ts +77 -0
  352. package/lib/internal/template/test-utils/selectors/table/index.js +87 -2
  353. package/lib/internal/template/test-utils/selectors/table/index.js.map +1 -1
  354. package/lib/internal/template/text-content/styles.css.js +1 -1
  355. package/lib/internal/template/text-content/styles.scoped.css +66 -66
  356. package/lib/internal/template/text-content/styles.selectors.js +1 -1
  357. package/lib/internal/template/textarea/styles.css.js +5 -5
  358. package/lib/internal/template/textarea/styles.scoped.css +45 -45
  359. package/lib/internal/template/textarea/styles.selectors.js +5 -5
  360. package/lib/internal/template/toggle/styles.css.js +10 -10
  361. package/lib/internal/template/toggle/styles.scoped.css +23 -23
  362. package/lib/internal/template/toggle/styles.selectors.js +10 -10
  363. package/lib/internal/template/token/styles.css.js +14 -14
  364. package/lib/internal/template/token/styles.scoped.css +47 -47
  365. package/lib/internal/template/token/styles.selectors.js +14 -14
  366. package/lib/internal/template/tooltip/internal.d.ts.map +1 -1
  367. package/lib/internal/template/tooltip/internal.js +2 -1
  368. package/lib/internal/template/tooltip/internal.js.map +1 -1
  369. package/lib/internal/template/tooltip/styles.css.js +7 -0
  370. package/lib/internal/template/tooltip/styles.scoped.css +165 -0
  371. package/lib/internal/template/tooltip/styles.selectors.js +8 -0
  372. package/lib/internal/template/top-navigation/use-top-navigation.d.ts.map +1 -1
  373. package/lib/internal/template/top-navigation/use-top-navigation.js +2 -5
  374. package/lib/internal/template/top-navigation/use-top-navigation.js.map +1 -1
  375. package/package.json +1 -1
@@ -178,15 +178,19 @@
178
178
  */
179
179
  /* Style used for links in slots/components that are text heavy, to help links stand out among
180
180
  surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F73#description */
181
- .awsui_connector_gxp9y_m67w6_181:not(#\9) {
181
+ .awsui_connector_gxp9y_166tz_181:not(#\9) {
182
182
  background-color: var(--color-border-divider-default-ipvpev, #eaeded);
183
183
  }
184
184
 
185
- .awsui_connector_gxp9y_m67w6_181.awsui_connector-hidden_gxp9y_m67w6_185:not(#\9) {
185
+ .awsui_connector_gxp9y_166tz_181.awsui_connector-hidden_gxp9y_166tz_185:not(#\9) {
186
186
  background-color: transparent;
187
187
  }
188
188
 
189
- .awsui_root_gxp9y_m67w6_189:not(#\9) {
189
+ .awsui_header_gxp9y_166tz_189:not(#\9) {
190
+ /* used in test-utils */
191
+ }
192
+
193
+ .awsui_root_gxp9y_166tz_193:not(#\9) {
190
194
  border-collapse: separate;
191
195
  border-spacing: 0;
192
196
  box-sizing: border-box;
@@ -219,66 +223,61 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
219
223
  min-inline-size: 0;
220
224
  word-break: break-word;
221
225
  }
222
- .awsui_root_gxp9y_m67w6_189 > .awsui_list_gxp9y_m67w6_222:not(#\9) {
226
+ .awsui_root_gxp9y_166tz_193 > .awsui_list_gxp9y_166tz_226:not(#\9) {
223
227
  list-style: none;
224
228
  padding-inline-start: 0;
225
229
  margin-block: 0;
226
230
  }
227
- .awsui_root_gxp9y_m67w6_189 > .awsui_list_gxp9y_m67w6_222 > .awsui_container_gxp9y_m67w6_227:not(#\9) {
231
+ .awsui_root_gxp9y_166tz_193 > .awsui_list_gxp9y_166tz_226 > .awsui_container_gxp9y_166tz_231:not(#\9) {
228
232
  display: grid;
229
233
  grid-template-columns: var(--space-static-l-ig026c, 20px) 1fr;
230
234
  grid-template-rows: minmax(var(--space-static-l-ig026c, 20px), auto);
231
235
  }
232
- .awsui_root_gxp9y_m67w6_189 > .awsui_list_gxp9y_m67w6_222 > .awsui_container_gxp9y_m67w6_227 > .awsui_header_gxp9y_m67w6_232:not(#\9) {
236
+ .awsui_root_gxp9y_166tz_193 > .awsui_list_gxp9y_166tz_226 > .awsui_container_gxp9y_166tz_231 > .awsui_annotation_gxp9y_166tz_236:not(#\9) {
237
+ justify-self: flex-end;
238
+ min-inline-size: 0;
239
+ color: var(--color-text-status-inactive-n7p1uq, #687078);
240
+ }
241
+ .awsui_root_gxp9y_166tz_193 > .awsui_list_gxp9y_166tz_226 > .awsui_container_gxp9y_166tz_231 > .awsui_step-layout_gxp9y_166tz_241:not(#\9) {
233
242
  display: flex;
234
243
  gap: var(--space-xxs-jnczic, 4px);
235
244
  grid-row: 1;
236
245
  grid-column: 1/span 2;
237
246
  }
238
- .awsui_root_gxp9y_m67w6_189 > .awsui_list_gxp9y_m67w6_222 > .awsui_container_gxp9y_m67w6_227 > .awsui_details_gxp9y_m67w6_238:not(#\9) {
247
+ .awsui_root_gxp9y_166tz_193 > .awsui_list_gxp9y_166tz_226 > .awsui_container_gxp9y_166tz_231 > .awsui_details_gxp9y_166tz_247:not(#\9) {
239
248
  align-items: center;
240
249
  grid-row: 2;
241
250
  grid-column: 2;
242
251
  margin-block-end: var(--space-static-xs-4gq40t, 8px);
243
252
  }
244
- .awsui_root_gxp9y_m67w6_189 > .awsui_list_gxp9y_m67w6_222 > .awsui_container_gxp9y_m67w6_227 > .awsui_connector_gxp9y_m67w6_181:not(#\9) {
245
- grid-row: 2;
246
- grid-column: 1;
247
- margin-block: 0;
248
- border-block: 0;
249
- border-inline: 0;
250
- inline-size: var(--border-divider-list-width-2qbfmz, 1px);
251
- block-size: auto;
252
- min-block-size: var(--space-static-xs-4gq40t, 8px);
253
- position: relative;
254
- inset-inline-end: var(--space-static-xxxs-zckw10, 2px);
255
- }
256
- .awsui_root_gxp9y_m67w6_189 > .awsui_list_gxp9y_m67w6_222 > :not(#\9):last-of-type > .awsui_connector_gxp9y_m67w6_181 {
257
- display: none;
258
- }
259
- .awsui_root_gxp9y_m67w6_189 > .awsui_list_gxp9y_m67w6_222.awsui_custom_gxp9y_m67w6_259 > .awsui_details_gxp9y_m67w6_238:not(#\9) {
253
+ .awsui_root_gxp9y_166tz_193 > .awsui_list_gxp9y_166tz_226.awsui_custom_gxp9y_166tz_253 > .awsui_details_gxp9y_166tz_247:not(#\9) {
260
254
  margin-block-end: 0;
261
255
  }
262
256
 
263
- .awsui_horizontal_gxp9y_m67w6_263 > .awsui_list_gxp9y_m67w6_222:not(#\9) {
257
+ .awsui_horizontal_gxp9y_166tz_257 > .awsui_list_gxp9y_166tz_226:not(#\9) {
264
258
  display: grid;
265
259
  align-items: flex-start;
266
260
  grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
261
+ grid-template-rows: auto minmax(var(--space-static-l-ig026c, 20px), auto) auto;
267
262
  grid-auto-flow: column;
268
263
  }
269
- .awsui_horizontal_gxp9y_m67w6_263 > .awsui_list_gxp9y_m67w6_222 > .awsui_container_gxp9y_m67w6_227:not(#\9) {
270
- display: grid;
271
- grid-template-columns: var(--space-static-l-ig026c, 20px) 1fr;
272
- grid-template-rows: minmax(var(--space-static-l-ig026c, 20px), auto);
264
+ .awsui_horizontal_gxp9y_166tz_257 > .awsui_list_gxp9y_166tz_226 > .awsui_container_gxp9y_166tz_231:not(#\9) {
265
+ grid-row: 1/-1;
266
+ grid-template-rows: subgrid;
273
267
  align-items: center;
274
268
  }
275
- .awsui_horizontal_gxp9y_m67w6_263 > .awsui_list_gxp9y_m67w6_222 > .awsui_container_gxp9y_m67w6_227 > .awsui_header_gxp9y_m67w6_232:not(#\9) {
276
- display: flex;
269
+ .awsui_horizontal_gxp9y_166tz_257 > .awsui_list_gxp9y_166tz_226 > .awsui_container_gxp9y_166tz_231 > .awsui_annotation_gxp9y_166tz_236:not(#\9) {
270
+ justify-self: flex-start;
271
+ align-self: flex-end;
277
272
  grid-row: 1;
278
273
  grid-column: 1/span 2;
274
+ padding-inline-end: var(--space-xs-kw7k3v, 8px);
275
+ }
276
+ .awsui_horizontal_gxp9y_166tz_257 > .awsui_list_gxp9y_166tz_226 > .awsui_container_gxp9y_166tz_231 > .awsui_step-layout_gxp9y_166tz_241:not(#\9) {
277
+ grid-row: 2;
279
278
  align-items: center;
280
279
  }
281
- .awsui_horizontal_gxp9y_m67w6_263 > .awsui_list_gxp9y_m67w6_222 > .awsui_container_gxp9y_m67w6_227 > .awsui_header_gxp9y_m67w6_232 > .awsui_connector_gxp9y_m67w6_181:not(#\9) {
280
+ .awsui_horizontal_gxp9y_166tz_257 > .awsui_list_gxp9y_166tz_226 > .awsui_container_gxp9y_166tz_231 > .awsui_step-layout_gxp9y_166tz_241 > .awsui_connector_gxp9y_166tz_181:not(#\9) {
282
281
  display: block;
283
282
  flex: 1;
284
283
  margin-block: 0;
@@ -291,27 +290,59 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
291
290
  min-inline-size: var(--space-static-xs-4gq40t, 8px);
292
291
  margin-inline-end: var(--space-static-xxs-0cgyf1, 4px);
293
292
  }
294
- .awsui_horizontal_gxp9y_m67w6_263 > .awsui_list_gxp9y_m67w6_222 > .awsui_container_gxp9y_m67w6_227 > .awsui_horizontal-header_gxp9y_m67w6_294:not(#\9) {
295
- grid-row: 2;
296
- grid-column: 1/span 3;
297
- padding-inline-end: var(--space-xs-kw7k3v, 8px);
298
- }
299
- .awsui_horizontal_gxp9y_m67w6_263 > .awsui_list_gxp9y_m67w6_222 > .awsui_container_gxp9y_m67w6_227 > .awsui_details_gxp9y_m67w6_238:not(#\9) {
293
+ .awsui_horizontal_gxp9y_166tz_257 > .awsui_list_gxp9y_166tz_226 > .awsui_container_gxp9y_166tz_231 > .awsui_content_gxp9y_166tz_293:not(#\9) {
294
+ align-self: flex-start;
300
295
  grid-row: 3;
301
296
  grid-column: 1/span 3;
297
+ min-inline-size: 0;
302
298
  padding-inline-end: var(--space-xs-kw7k3v, 8px);
303
299
  }
304
- .awsui_horizontal_gxp9y_m67w6_263 > .awsui_list_gxp9y_m67w6_222 > .awsui_container_gxp9y_m67w6_227:not(#\9):last-child > .awsui_header_gxp9y_m67w6_232 > .awsui_connector_gxp9y_m67w6_181 {
300
+ .awsui_horizontal_gxp9y_166tz_257 > .awsui_list_gxp9y_166tz_226 > .awsui_container_gxp9y_166tz_231 > .awsui_content_gxp9y_166tz_293 > .awsui_details_gxp9y_166tz_247:not(#\9) {
301
+ margin-block-end: var(--space-static-xs-4gq40t, 8px);
302
+ }
303
+ .awsui_horizontal_gxp9y_166tz_257 > .awsui_list_gxp9y_166tz_226 > .awsui_container_gxp9y_166tz_231:not(#\9):last-child > .awsui_step-layout_gxp9y_166tz_241 > .awsui_connector_gxp9y_166tz_181 {
304
+ display: none;
305
+ }
306
+
307
+ .awsui_vertical_gxp9y_166tz_307 > .awsui_list_gxp9y_166tz_226 > .awsui_container_gxp9y_166tz_231 > .awsui_step-layout_gxp9y_166tz_241:not(#\9) {
308
+ display: grid;
309
+ grid-template-columns: subgrid;
310
+ grid-template-rows: auto 1fr;
311
+ gap: 0;
312
+ }
313
+ .awsui_vertical_gxp9y_166tz_307 > .awsui_list_gxp9y_166tz_226 > .awsui_container_gxp9y_166tz_231 > .awsui_step-layout_gxp9y_166tz_241 > :not(#\9):first-child {
314
+ grid-column: 1/-1;
315
+ }
316
+ .awsui_vertical_gxp9y_166tz_307 > .awsui_list_gxp9y_166tz_226 > .awsui_container_gxp9y_166tz_231 > .awsui_step-layout_gxp9y_166tz_241 > .awsui_details_gxp9y_166tz_247:not(#\9) {
317
+ grid-row: 2;
318
+ grid-column: 2;
319
+ margin-block-end: var(--space-static-xs-4gq40t, 8px);
320
+ }
321
+ .awsui_vertical_gxp9y_166tz_307 > .awsui_list_gxp9y_166tz_226 > .awsui_container_gxp9y_166tz_231 > .awsui_step-layout_gxp9y_166tz_241 > .awsui_connector-continuation_gxp9y_166tz_321:not(#\9) {
322
+ grid-row: 2;
323
+ grid-column: 1;
324
+ justify-self: center;
325
+ margin-block: 0;
326
+ margin-inline: 0;
327
+ border-block: 0;
328
+ border-inline: 0;
329
+ inline-size: var(--border-divider-list-width-2qbfmz, 1px);
330
+ block-size: auto;
331
+ min-block-size: var(--space-static-xs-4gq40t, 8px);
332
+ position: relative;
333
+ inset-inline-end: var(--space-static-xxxs-zckw10, 2px);
334
+ }
335
+ .awsui_vertical_gxp9y_166tz_307 > .awsui_list_gxp9y_166tz_226 > :not(#\9):last-of-type > .awsui_step-layout_gxp9y_166tz_241 > .awsui_connector-continuation_gxp9y_166tz_321 {
305
336
  display: none;
306
337
  }
307
338
 
308
- .awsui_root_gxp9y_m67w6_189 > .awsui_list_gxp9y_m67w6_222 > .awsui_container_gxp9y_m67w6_227.awsui_custom-vertical_gxp9y_m67w6_308 > .awsui_rail_gxp9y_m67w6_308:not(#\9) {
339
+ .awsui_root_gxp9y_166tz_193 > .awsui_list_gxp9y_166tz_226 > .awsui_container_gxp9y_166tz_231.awsui_custom-vertical_gxp9y_166tz_339 > .awsui_rail_gxp9y_166tz_339:not(#\9) {
309
340
  grid-column: 1;
310
341
  display: flex;
311
342
  flex-direction: column;
312
343
  align-items: center;
313
344
  }
314
- .awsui_root_gxp9y_m67w6_189 > .awsui_list_gxp9y_m67w6_222 > .awsui_container_gxp9y_m67w6_227.awsui_custom-vertical_gxp9y_m67w6_308 > .awsui_rail_gxp9y_m67w6_308 > .awsui_connector_gxp9y_m67w6_181:not(#\9) {
345
+ .awsui_root_gxp9y_166tz_193 > .awsui_list_gxp9y_166tz_226 > .awsui_container_gxp9y_166tz_231.awsui_custom-vertical_gxp9y_166tz_339 > .awsui_rail_gxp9y_166tz_339 > .awsui_connector_gxp9y_166tz_181:not(#\9) {
315
346
  grid-row: auto;
316
347
  grid-column: auto;
317
348
  flex: 1 1 auto;
@@ -323,11 +354,37 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
323
354
  inset-inline-end: 0;
324
355
  margin-block: var(--space-static-xxs-0cgyf1, 4px) 0;
325
356
  }
326
- .awsui_root_gxp9y_m67w6_189 > .awsui_list_gxp9y_m67w6_222 > .awsui_container_gxp9y_m67w6_227.awsui_custom-vertical_gxp9y_m67w6_308 > .awsui_content_gxp9y_m67w6_326:not(#\9) {
357
+ .awsui_root_gxp9y_166tz_193 > .awsui_list_gxp9y_166tz_226 > .awsui_container_gxp9y_166tz_231.awsui_custom-vertical_gxp9y_166tz_339 > .awsui_content_gxp9y_166tz_293:not(#\9) {
327
358
  grid-column: 2;
328
359
  min-inline-size: 0;
329
360
  }
330
361
 
331
- .awsui_root_gxp9y_m67w6_189 > .awsui_list_gxp9y_m67w6_222 > .awsui_container_gxp9y_m67w6_227.awsui_custom-vertical_gxp9y_m67w6_308:not(#\9):last-of-type > .awsui_rail_gxp9y_m67w6_308 > .awsui_connector_gxp9y_m67w6_181 {
362
+ .awsui_root_gxp9y_166tz_193 > .awsui_list_gxp9y_166tz_226.awsui_with-annotation_gxp9y_166tz_362:not(#\9) {
363
+ display: grid;
364
+ grid-template-columns: fit-content(50%) var(--space-static-l-ig026c, 20px) 1fr;
365
+ }
366
+ .awsui_root_gxp9y_166tz_193 > .awsui_list_gxp9y_166tz_226.awsui_with-annotation_gxp9y_166tz_362 > .awsui_container_gxp9y_166tz_231:not(#\9) {
367
+ grid-column: 1/-1;
368
+ grid-template-columns: subgrid;
369
+ }
370
+ .awsui_root_gxp9y_166tz_193 > .awsui_list_gxp9y_166tz_226.awsui_with-annotation_gxp9y_166tz_362 > .awsui_container_gxp9y_166tz_231 > .awsui_annotation_gxp9y_166tz_236:not(#\9) {
371
+ grid-row: 1;
372
+ grid-column: 1;
373
+ padding-inline-end: var(--space-xxs-jnczic, 4px);
374
+ }
375
+ .awsui_root_gxp9y_166tz_193 > .awsui_list_gxp9y_166tz_226.awsui_with-annotation_gxp9y_166tz_362 > .awsui_container_gxp9y_166tz_231:not(#\9):not(.awsui_custom-vertical_gxp9y_166tz_339) > .awsui_step-layout_gxp9y_166tz_241 {
376
+ grid-column: 2/span 2;
377
+ }
378
+ .awsui_root_gxp9y_166tz_193 > .awsui_list_gxp9y_166tz_226.awsui_with-annotation_gxp9y_166tz_362 > .awsui_container_gxp9y_166tz_231:not(#\9):not(.awsui_custom-vertical_gxp9y_166tz_339) > .awsui_details_gxp9y_166tz_247 {
379
+ grid-column: 3;
380
+ }
381
+ .awsui_root_gxp9y_166tz_193 > .awsui_list_gxp9y_166tz_226.awsui_with-annotation_gxp9y_166tz_362 > .awsui_container_gxp9y_166tz_231.awsui_custom-vertical_gxp9y_166tz_339 > .awsui_rail_gxp9y_166tz_339:not(#\9) {
382
+ grid-column: 2;
383
+ }
384
+ .awsui_root_gxp9y_166tz_193 > .awsui_list_gxp9y_166tz_226.awsui_with-annotation_gxp9y_166tz_362 > .awsui_container_gxp9y_166tz_231.awsui_custom-vertical_gxp9y_166tz_339 > .awsui_content_gxp9y_166tz_293:not(#\9) {
385
+ grid-column: 3;
386
+ }
387
+
388
+ .awsui_root_gxp9y_166tz_193 > .awsui_list_gxp9y_166tz_226 > .awsui_container_gxp9y_166tz_231.awsui_custom-vertical_gxp9y_166tz_339:not(#\9):last-of-type > .awsui_rail_gxp9y_166tz_339 > .awsui_connector_gxp9y_166tz_181 {
332
389
  display: none;
333
390
  }
@@ -2,18 +2,22 @@
2
2
  // es-module interop with Babel and Typescript
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  module.exports.default = {
5
- "connector": "awsui_connector_gxp9y_m67w6_181",
6
- "connector-hidden": "awsui_connector-hidden_gxp9y_m67w6_185",
7
- "root": "awsui_root_gxp9y_m67w6_189",
8
- "list": "awsui_list_gxp9y_m67w6_222",
9
- "container": "awsui_container_gxp9y_m67w6_227",
10
- "header": "awsui_header_gxp9y_m67w6_232",
11
- "details": "awsui_details_gxp9y_m67w6_238",
12
- "custom": "awsui_custom_gxp9y_m67w6_259",
13
- "horizontal": "awsui_horizontal_gxp9y_m67w6_263",
14
- "horizontal-header": "awsui_horizontal-header_gxp9y_m67w6_294",
15
- "custom-vertical": "awsui_custom-vertical_gxp9y_m67w6_308",
16
- "rail": "awsui_rail_gxp9y_m67w6_308",
17
- "content": "awsui_content_gxp9y_m67w6_326"
5
+ "connector": "awsui_connector_gxp9y_166tz_181",
6
+ "connector-hidden": "awsui_connector-hidden_gxp9y_166tz_185",
7
+ "header": "awsui_header_gxp9y_166tz_189",
8
+ "root": "awsui_root_gxp9y_166tz_193",
9
+ "list": "awsui_list_gxp9y_166tz_226",
10
+ "container": "awsui_container_gxp9y_166tz_231",
11
+ "annotation": "awsui_annotation_gxp9y_166tz_236",
12
+ "step-layout": "awsui_step-layout_gxp9y_166tz_241",
13
+ "details": "awsui_details_gxp9y_166tz_247",
14
+ "custom": "awsui_custom_gxp9y_166tz_253",
15
+ "horizontal": "awsui_horizontal_gxp9y_166tz_257",
16
+ "content": "awsui_content_gxp9y_166tz_293",
17
+ "vertical": "awsui_vertical_gxp9y_166tz_307",
18
+ "connector-continuation": "awsui_connector-continuation_gxp9y_166tz_321",
19
+ "custom-vertical": "awsui_custom-vertical_gxp9y_166tz_339",
20
+ "rail": "awsui_rail_gxp9y_166tz_339",
21
+ "with-annotation": "awsui_with-annotation_gxp9y_166tz_362"
18
22
  };
19
23
 
@@ -0,0 +1,9 @@
1
+ import { TableProps } from './interfaces';
2
+ interface ClearSortButtonProps<T> {
3
+ multiColumnSort: TableProps.MultiColumnSort<T>;
4
+ i18nStrings?: TableProps.I18nStrings;
5
+ onClearSort?: () => void;
6
+ }
7
+ export declare function ClearSortButton<T>({ multiColumnSort, i18nStrings, onClearSort }: ClearSortButtonProps<T>): JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=clear-sort.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clear-sort.d.ts","sourceRoot":"","sources":["../../../src/table/clear-sort.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,UAAU,oBAAoB,CAAC,CAAC;IAC9B,eAAe,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAC/C,WAAW,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC;IACrC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,oBAAoB,CAAC,CAAC,CAAC,eAcxG"}
@@ -0,0 +1,15 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ import React from 'react';
4
+ import InternalButton from '../button/internal';
5
+ import { useInternalI18n } from '../i18n/context';
6
+ import { fireNonCancelableEvent } from '../internal/events';
7
+ export function ClearSortButton({ multiColumnSort, i18nStrings, onClearSort }) {
8
+ var _a;
9
+ const i18n = useInternalI18n('table');
10
+ return (React.createElement(InternalButton, { variant: "inline-link", formAction: "none", onClick: () => {
11
+ fireNonCancelableEvent(multiColumnSort.onChange, { sortingColumns: [] });
12
+ onClearSort === null || onClearSort === void 0 ? void 0 : onClearSort();
13
+ } }, (_a = i18n('i18nStrings.clearSort', i18nStrings === null || i18nStrings === void 0 ? void 0 : i18nStrings.clearSort)) !== null && _a !== void 0 ? _a : ''));
14
+ }
15
+ //# sourceMappingURL=clear-sort.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clear-sort.js","sourceRoot":"","sources":["../../../src/table/clear-sort.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,cAAc,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAS5D,MAAM,UAAU,eAAe,CAAI,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAA2B;;IACvG,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACtC,OAAO,CACL,oBAAC,cAAc,IACb,OAAO,EAAC,aAAa,EACrB,UAAU,EAAC,MAAM,EACjB,OAAO,EAAE,GAAG,EAAE;YACZ,sBAAsB,CAAC,eAAe,CAAC,QAAQ,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,CAAC;YACzE,WAAW,aAAX,WAAW,uBAAX,WAAW,EAAI,CAAC;QAClB,CAAC,IAEA,MAAA,IAAI,CAAC,uBAAuB,EAAE,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,SAAS,CAAC,mCAAI,EAAE,CAC7C,CAClB,CAAC;AACJ,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 InternalButton from '../button/internal';\nimport { useInternalI18n } from '../i18n/context';\nimport { fireNonCancelableEvent } from '../internal/events';\nimport { TableProps } from './interfaces';\n\ninterface ClearSortButtonProps<T> {\n multiColumnSort: TableProps.MultiColumnSort<T>;\n i18nStrings?: TableProps.I18nStrings;\n onClearSort?: () => void;\n}\n\nexport function ClearSortButton<T>({ multiColumnSort, i18nStrings, onClearSort }: ClearSortButtonProps<T>) {\n const i18n = useInternalI18n('table');\n return (\n <InternalButton\n variant=\"inline-link\"\n formAction=\"none\"\n onClick={() => {\n fireNonCancelableEvent(multiColumnSort.onChange, { sortingColumns: [] });\n onClearSort?.();\n }}\n >\n {i18n('i18nStrings.clearSort', i18nStrings?.clearSort) ?? ''}\n </InternalButton>\n );\n}\n"]}
@@ -7,6 +7,9 @@ export interface TableHeaderCellProps<ItemType> extends BaseHeaderCellProps {
7
7
  sortingDisabled?: boolean;
8
8
  stuck?: boolean;
9
9
  onClick(detail: TableProps.SortingState<any>): void;
10
+ multiColumnSort?: TableProps.MultiColumnSort<ItemType>;
11
+ i18nStrings?: TableProps.I18nStrings;
12
+ ariaLabels?: TableProps.AriaLabels<ItemType>;
10
13
  updateColumn: (columnId: PropertyKey, newWidth: number) => void;
11
14
  isEditable?: boolean;
12
15
  columnId: PropertyKey;
@@ -18,5 +21,5 @@ export interface TableHeaderCellProps<ItemType> extends BaseHeaderCellProps {
18
21
  isLastChildOfGroup?: boolean;
19
22
  isLast?: boolean;
20
23
  }
21
- export declare function TableHeaderCell<ItemType>({ tabIndex, column, activeSortingColumn, sortingDescending, sortingDisabled, wrapLines, focusedComponent, stuck, sticky, hidden, stripedRows, onClick, colIndex, updateColumn, resizableColumns, resizableStyle, onResizeFinish, isEditable, columnId, stickyState, cellRef, tableRole, resizerRoleDescription, resizerTooltipText, isExpandable, hasDynamicContent, variant, colSpan, rowSpan, columnGroupId, isLastChildOfGroup, isLast, tableVariant, }: TableHeaderCellProps<ItemType>): JSX.Element;
24
+ export declare function TableHeaderCell<ItemType>({ tabIndex, column, activeSortingColumn, sortingDescending, sortingDisabled, wrapLines, focusedComponent, stuck, sticky, hidden, stripedRows, onClick, colIndex, updateColumn, resizableColumns, resizableStyle, onResizeFinish, isEditable, columnId, stickyState, cellRef, tableRole, resizerRoleDescription, resizerTooltipText, isExpandable, hasDynamicContent, variant, colSpan, rowSpan, columnGroupId, isLastChildOfGroup, isLast, tableVariant, multiColumnSort, i18nStrings, ariaLabels, }: TableHeaderCellProps<ItemType>): JSX.Element;
22
25
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/table/header-cell/index.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAOrD,MAAM,WAAW,oBAAoB,CAAC,QAAQ,CAAE,SAAQ,mBAAmB;IACzE,MAAM,EAAE,UAAU,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC9C,mBAAmB,CAAC,EAAE,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACzD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IACpD,YAAY,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAChE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,WAAW,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,EACxC,QAAQ,EACR,MAAM,EACN,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,SAAS,EACT,gBAAgB,EAChB,KAAK,EACL,MAAM,EACN,MAAM,EACN,WAAW,EACX,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,UAAU,EACV,QAAQ,EACR,WAAW,EACX,OAAO,EACP,SAAS,EACT,sBAAsB,EACtB,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EACjB,OAAO,EACP,OAAO,EACP,OAAO,EACP,aAAa,EACb,kBAAkB,EAClB,MAAM,EACN,YAAY,GACb,EAAE,oBAAoB,CAAC,QAAQ,CAAC,eAsJhC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/table/header-cell/index.tsx"],"names":[],"mappings":"AAeA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAU3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAQrD,MAAM,WAAW,oBAAoB,CAAC,QAAQ,CAAE,SAAQ,mBAAmB;IACzE,MAAM,EAAE,UAAU,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC9C,mBAAmB,CAAC,EAAE,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACzD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IACpD,eAAe,CAAC,EAAE,UAAU,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;IACvD,WAAW,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC;IACrC,UAAU,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC7C,YAAY,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAChE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,WAAW,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,EACxC,QAAQ,EACR,MAAM,EACN,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,SAAS,EACT,gBAAgB,EAChB,KAAK,EACL,MAAM,EACN,MAAM,EACN,WAAW,EACX,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,UAAU,EACV,QAAQ,EACR,WAAW,EACX,OAAO,EACP,SAAS,EACT,sBAAsB,EACtB,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EACjB,OAAO,EACP,OAAO,EACP,OAAO,EACP,aAAa,EACb,kBAAkB,EAClB,MAAM,EACN,YAAY,EACZ,eAAe,EACf,WAAW,EACX,UAAU,GACX,EAAE,oBAAoB,CAAC,QAAQ,CAAC,eAuQhC"}
@@ -7,23 +7,99 @@ import { useSingleTabStopNavigation } from '@cloudscape-design/component-toolkit
7
7
  import { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';
8
8
  import { useInternalI18n } from '../../i18n/context';
9
9
  import InternalIcon from '../../icon/internal';
10
+ import ScreenreaderOnly from '../../internal/components/screenreader-only';
11
+ import { fireNonCancelableEvent } from '../../internal/events';
10
12
  import { KeyCode } from '../../internal/keycode';
13
+ import { appendSort, getSortIndex, removeSort, replaceSort, setDirection, toggleDirection, } from '../multi-column-sort/utils';
11
14
  import { Divider, Resizer } from '../resizer';
15
+ import { SortMenu } from './sort-menu';
12
16
  import { TableThElement } from './th-element';
13
17
  import { getSortingIconName, getSortingStatus, isSorted } from './utils';
14
18
  import analyticsSelectors from '../analytics-metadata/styles.css.js';
15
19
  import styles from './styles.css.js';
16
- export function TableHeaderCell({ tabIndex, column, activeSortingColumn, sortingDescending, sortingDisabled, wrapLines, focusedComponent, stuck, sticky, hidden, stripedRows, onClick, colIndex, updateColumn, resizableColumns, resizableStyle, onResizeFinish, isEditable, columnId, stickyState, cellRef, tableRole, resizerRoleDescription, resizerTooltipText, isExpandable, hasDynamicContent, variant, colSpan, rowSpan, columnGroupId, isLastChildOfGroup, isLast, tableVariant, }) {
20
+ export function TableHeaderCell({ tabIndex, column, activeSortingColumn, sortingDescending, sortingDisabled, wrapLines, focusedComponent, stuck, sticky, hidden, stripedRows, onClick, colIndex, updateColumn, resizableColumns, resizableStyle, onResizeFinish, isEditable, columnId, stickyState, cellRef, tableRole, resizerRoleDescription, resizerTooltipText, isExpandable, hasDynamicContent, variant, colSpan, rowSpan, columnGroupId, isLastChildOfGroup, isLast, tableVariant, multiColumnSort, i18nStrings, ariaLabels, }) {
17
21
  var _a;
18
22
  const i18n = useInternalI18n('table');
19
23
  const sortable = !!column.sortingComparator || !!column.sortingField;
20
- const sorted = !!activeSortingColumn && isSorted(column, activeSortingColumn);
21
- const sortingStatus = getSortingStatus(sortable, sorted, !!sortingDescending, !!sortingDisabled);
22
24
  const isGrouped = !!columnGroupId || (rowSpan !== null && rowSpan !== void 0 ? rowSpan : 1) > 1;
23
- const handleClick = () => onClick({
24
- sortingColumn: column,
25
- isDescending: sorted ? !sortingDescending : false,
26
- });
25
+ // The sort menu only renders for a sortable, enabled column under multi-column sort.
26
+ const hasSortMenu = !!multiColumnSort && sortable && !sortingDisabled;
27
+ // Multi-column sort context derived from `multiColumnSort.sortingColumns` when present.
28
+ const multiSortIndex = multiColumnSort ? getSortIndex(multiColumnSort.sortingColumns, column) : null;
29
+ const multiSortEntry = multiSortIndex !== null && multiColumnSort ? multiColumnSort.sortingColumns[multiSortIndex - 1] : undefined;
30
+ const inMultiSort = multiSortIndex !== null;
31
+ const isPrimaryMultiSort = multiSortIndex === 1;
32
+ // Priority badges are only meaningful when 2+ columns are sorted; with a single column, the position number adds no information.
33
+ const showPriorityBadge = !!multiColumnSort && multiColumnSort.sortingColumns.length >= 2 && multiSortIndex !== null;
34
+ // For multi-sort, derive sorted/descending from the matching entry; otherwise fall back to single-sort props.
35
+ const sorted = multiColumnSort ? inMultiSort : !!activeSortingColumn && isSorted(column, activeSortingColumn);
36
+ const descending = multiColumnSort ? !!(multiSortEntry === null || multiSortEntry === void 0 ? void 0 : multiSortEntry.isDescending) : !!sortingDescending;
37
+ const sortingStatus = getSortingStatus(sortable, sorted, descending, !!sortingDisabled);
38
+ // In multi-sort, only the primary column declares aria-sort (ARIA only allows one column sorted at a time).
39
+ const suppressAriaSort = !!multiColumnSort && inMultiSort && !isPrimaryMultiSort;
40
+ // Screen-reader-only text appended to a sorted column header. The visible header text supplies the column name;
41
+ // this adds the sort direction (only when `aria-sort` is suppressed, i.e. secondary columns) and the sort priority.
42
+ const sortDirectionLabel = descending
43
+ ? i18n('ariaLabels.sortDescending', ariaLabels === null || ariaLabels === void 0 ? void 0 : ariaLabels.sortDescending)
44
+ : i18n('ariaLabels.sortAscending', ariaLabels === null || ariaLabels === void 0 ? void 0 : ariaLabels.sortAscending);
45
+ const sortPriorityLabel = i18n('ariaLabels.sortPriority', ariaLabels === null || ariaLabels === void 0 ? void 0 : ariaLabels.sortPriority, format => ({ priority }) => format({ priority }));
46
+ const sortAccessibleText = inMultiSort
47
+ ? [
48
+ suppressAriaSort ? sortDirectionLabel : undefined,
49
+ showPriorityBadge ? sortPriorityLabel === null || sortPriorityLabel === void 0 ? void 0 : sortPriorityLabel({ priority: multiSortIndex !== null && multiSortIndex !== void 0 ? multiSortIndex : 0 }) : undefined,
50
+ ]
51
+ .filter(Boolean)
52
+ .join(' ')
53
+ : '';
54
+ const handleClick = (shiftKey = false) => {
55
+ if (multiColumnSort) {
56
+ const current = multiColumnSort.sortingColumns;
57
+ let next;
58
+ if (shiftKey && !inMultiSort) {
59
+ next = appendSort(current, column, false);
60
+ }
61
+ else if (inMultiSort) {
62
+ next = toggleDirection(current, column);
63
+ }
64
+ else {
65
+ next = replaceSort(column, false);
66
+ }
67
+ fireNonCancelableEvent(multiColumnSort.onChange, { sortingColumns: next });
68
+ return;
69
+ }
70
+ onClick({
71
+ sortingColumn: column,
72
+ isDescending: sorted ? !sortingDescending : false,
73
+ });
74
+ };
75
+ const handleSortMenuAction = (action) => {
76
+ // The sort menu is only rendered when `multiColumnSort` is set (see render below), so this guard
77
+ // exists purely to narrow the type for the accesses that follow and is unreachable at runtime.
78
+ /* istanbul ignore next */
79
+ if (!multiColumnSort) {
80
+ return;
81
+ }
82
+ const current = multiColumnSort.sortingColumns;
83
+ let next;
84
+ switch (action) {
85
+ case 'sort-ascending':
86
+ next = inMultiSort ? setDirection(current, column, false) : replaceSort(column, false);
87
+ break;
88
+ case 'sort-descending':
89
+ next = inMultiSort ? setDirection(current, column, true) : replaceSort(column, true);
90
+ break;
91
+ case 'add-to-sort-ascending':
92
+ next = appendSort(current, column, false);
93
+ break;
94
+ case 'add-to-sort-descending':
95
+ next = appendSort(current, column, true);
96
+ break;
97
+ case 'remove-from-sort':
98
+ next = removeSort(current, column);
99
+ break;
100
+ }
101
+ fireNonCancelableEvent(multiColumnSort.onChange, { sortingColumns: next });
102
+ };
27
103
  // Elements with role="button" do not have the default behavior of <button>, where pressing
28
104
  // Enter or Space will trigger a click event. Therefore we need to add this ourselves.
29
105
  // The native <button> element cannot be used due to a misaligned implementation in Firefox:
@@ -31,7 +107,7 @@ export function TableHeaderCell({ tabIndex, column, activeSortingColumn, sorting
31
107
  const handleKeyPress = ({ nativeEvent: e }) => {
32
108
  if (e.keyCode === KeyCode.enter || e.keyCode === KeyCode.space) {
33
109
  e.preventDefault();
34
- handleClick();
110
+ handleClick(e.shiftKey);
35
111
  }
36
112
  };
37
113
  const headerId = useUniqueId('table-header-');
@@ -47,7 +123,7 @@ export function TableHeaderCell({ tabIndex, column, activeSortingColumn, sorting
47
123
  useResizeObserver(hasDynamicContent ? cellRefObject : () => null, entry => {
48
124
  updateColumn(columnId, entry.borderBoxWidth);
49
125
  });
50
- return (React.createElement(TableThElement, { resizableStyle: resizableStyle, cellRef: cellRefCombined, sortingStatus: sortingStatus, sortingDisabled: sortingDisabled, focusedComponent: focusedComponent, stuck: stuck, sticky: sticky, resizable: resizableColumns, hidden: hidden, stripedRows: stripedRows, colIndex: colIndex, columnId: columnId, stickyState: stickyState, tableRole: tableRole, variant: variant, tableVariant: tableVariant, colSpan: colSpan, rowSpan: rowSpan, columnGroupId: columnGroupId, isLast: isLast, ...(sortingDisabled
126
+ return (React.createElement(TableThElement, { resizableStyle: resizableStyle, cellRef: cellRefCombined, sortingStatus: sortingStatus, sortingDisabled: sortingDisabled, suppressAriaSort: suppressAriaSort, focusedComponent: focusedComponent, stuck: stuck, sticky: sticky, resizable: resizableColumns, hidden: hidden, stripedRows: stripedRows, colIndex: colIndex, columnId: columnId, stickyState: stickyState, tableRole: tableRole, variant: variant, tableVariant: tableVariant, colSpan: colSpan, rowSpan: rowSpan, columnGroupId: columnGroupId, isLast: isLast, ...(sortingDisabled
51
127
  ? {}
52
128
  : getAnalyticsMetadataAttribute({
53
129
  action: 'sort',
@@ -55,32 +131,45 @@ export function TableHeaderCell({ tabIndex, column, activeSortingColumn, sorting
55
131
  position: `${colIndex + 1}`,
56
132
  columnId: column.id ? `${column.id}` : '',
57
133
  label: `.${analyticsSelectors['header-cell-text']}`,
58
- sortingDescending: `${!sortingDescending}`,
134
+ sortingDescending: `${!descending}`,
59
135
  },
60
136
  })) },
61
- React.createElement("div", { ref: clickableHeaderRef, "data-focus-id": `sorting-control-${String(columnId)}`, className: clsx(styles['header-cell-content'], {
62
- [styles['header-cell-fake-focus']]: focusedComponent === `sorting-control-${String(columnId)}`,
63
- [styles['header-cell-content-expandable']]: isExpandable,
64
- }), "aria-label": column.ariaLabel
65
- ? column.ariaLabel({
66
- sorted: sorted,
67
- descending: sorted && !!sortingDescending,
68
- disabled: !!sortingDisabled,
69
- })
70
- : undefined, ...(sortingStatus && !sortingDisabled
71
- ? {
72
- onKeyPress: handleKeyPress,
73
- tabIndex: clickableHeaderTabIndex,
74
- role: 'button',
75
- onClick: handleClick,
76
- }
77
- : {}) },
78
- React.createElement("div", { className: clsx(styles['header-cell-text'], analyticsSelectors['header-cell-text'], wrapLines && styles['header-cell-text-wrap']), id: headerId },
79
- column.header,
80
- isEditable ? (React.createElement("span", { className: styles['edit-icon'] },
81
- React.createElement(InternalIcon, { name: "edit", ariaLabel: i18n('columnDefinitions.editConfig.editIconAriaLabel', (_a = column.editConfig) === null || _a === void 0 ? void 0 : _a.editIconAriaLabel) }))) : null),
82
- sortingStatus && (React.createElement("span", { className: styles['sorting-icon'] },
83
- React.createElement(InternalIcon, { name: getSortingIconName(sortingStatus) })))),
137
+ React.createElement("div", { className: clsx(styles['header-cell-main'], hasSortMenu && styles['header-cell-main-with-menu']) },
138
+ React.createElement("div", { ref: clickableHeaderRef, "data-focus-id": `sorting-control-${String(columnId)}`, className: clsx(styles['header-cell-content'], {
139
+ [styles['header-cell-fake-focus']]: focusedComponent === `sorting-control-${String(columnId)}`,
140
+ [styles['header-cell-content-expandable']]: isExpandable,
141
+ [styles['header-cell-content-multi-sorted']]: showPriorityBadge,
142
+ [styles['header-cell-content-with-menu']]: hasSortMenu,
143
+ }), "aria-label": column.ariaLabel
144
+ ? column.ariaLabel({
145
+ sorted: sorted,
146
+ descending: sorted && descending,
147
+ disabled: !!sortingDisabled,
148
+ sortIndex: multiSortIndex !== null && multiSortIndex !== void 0 ? multiSortIndex : undefined,
149
+ })
150
+ : undefined, ...(sortingStatus && !sortingDisabled
151
+ ? {
152
+ onKeyPress: handleKeyPress,
153
+ tabIndex: clickableHeaderTabIndex,
154
+ role: 'button',
155
+ onClick: event => handleClick(event.shiftKey),
156
+ // Prevent the browser from extending the text selection on Shift+click.
157
+ onMouseDown: (event) => {
158
+ if (event.shiftKey) {
159
+ event.preventDefault();
160
+ }
161
+ },
162
+ }
163
+ : {}) },
164
+ React.createElement("div", { className: clsx(styles['header-cell-text'], analyticsSelectors['header-cell-text'], wrapLines && styles['header-cell-text-wrap']), id: headerId },
165
+ column.header,
166
+ isEditable ? (React.createElement("span", { className: styles['edit-icon'] },
167
+ React.createElement(InternalIcon, { name: "edit", ariaLabel: i18n('columnDefinitions.editConfig.editIconAriaLabel', (_a = column.editConfig) === null || _a === void 0 ? void 0 : _a.editIconAriaLabel) }))) : null),
168
+ sortAccessibleText && React.createElement(ScreenreaderOnly, null, sortAccessibleText),
169
+ sortingStatus && (React.createElement("span", { className: styles['sorting-icon'] },
170
+ showPriorityBadge && (React.createElement("span", { className: styles['sort-priority-badge'], "aria-hidden": "true" }, multiSortIndex)),
171
+ React.createElement(InternalIcon, { name: getSortingIconName(sortingStatus) })))),
172
+ hasSortMenu && (React.createElement(SortMenu, { column: column, inSort: inMultiSort, isSortedAscending: inMultiSort && !descending, isSortedDescending: inMultiSort && descending, i18nStrings: i18nStrings, ariaLabel: ariaLabels === null || ariaLabels === void 0 ? void 0 : ariaLabels.sortMenuTriggerLabel, ariaDescribedby: headerId, onAction: handleSortMenuAction }))),
84
173
  resizableColumns ? (React.createElement(Resizer, { tabIndex: tabIndex, focusId: `resize-control-${String(columnId)}`, showFocusRing: focusedComponent === `resize-control-${String(columnId)}`, onWidthUpdate: newWidth => updateColumn(columnId, newWidth), onWidthUpdateCommit: onResizeFinish, ariaLabelledby: headerId, minWidth: typeof column.minWidth === 'string' ? parseInt(column.minWidth) : column.minWidth, roleDescription: i18n('ariaLabels.resizerRoleDescription', resizerRoleDescription),
85
174
  // TODO: Replace with this when strings are available
86
175
  // tooltipText={i18n('ariaLabels.resizerTooltipText', resizerTooltipText)}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/table/header-cell/index.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, { useRef } from 'react';\nimport clsx from 'clsx';\n\nimport { useMergeRefs, useResizeObserver, useUniqueId } from '@cloudscape-design/component-toolkit/internal';\nimport { useSingleTabStopNavigation } from '@cloudscape-design/component-toolkit/internal';\nimport { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport { useInternalI18n } from '../../i18n/context';\nimport InternalIcon from '../../icon/internal';\nimport { KeyCode } from '../../internal/keycode';\nimport { GeneratedAnalyticsMetadataTableSort } from '../analytics-metadata/interfaces';\nimport { TableProps } from '../interfaces';\nimport { Divider, Resizer } from '../resizer';\nimport { BaseHeaderCellProps } from './common-props';\nimport { TableThElement } from './th-element';\nimport { getSortingIconName, getSortingStatus, isSorted } from './utils';\n\nimport analyticsSelectors from '../analytics-metadata/styles.css.js';\nimport styles from './styles.css.js';\n\nexport interface TableHeaderCellProps<ItemType> extends BaseHeaderCellProps {\n column: TableProps.ColumnDefinition<ItemType>;\n activeSortingColumn?: TableProps.SortingColumn<ItemType>;\n sortingDescending?: boolean;\n sortingDisabled?: boolean;\n stuck?: boolean;\n onClick(detail: TableProps.SortingState<any>): void;\n updateColumn: (columnId: PropertyKey, newWidth: number) => void;\n isEditable?: boolean;\n columnId: PropertyKey;\n isExpandable?: boolean;\n hasDynamicContent?: boolean;\n colSpan?: number;\n rowSpan?: number;\n columnGroupId?: string;\n isLastChildOfGroup?: boolean;\n isLast?: boolean;\n}\n\nexport function TableHeaderCell<ItemType>({\n tabIndex,\n column,\n activeSortingColumn,\n sortingDescending,\n sortingDisabled,\n wrapLines,\n focusedComponent,\n stuck,\n sticky,\n hidden,\n stripedRows,\n onClick,\n colIndex,\n updateColumn,\n resizableColumns,\n resizableStyle,\n onResizeFinish,\n isEditable,\n columnId,\n stickyState,\n cellRef,\n tableRole,\n resizerRoleDescription,\n resizerTooltipText,\n isExpandable,\n hasDynamicContent,\n variant,\n colSpan,\n rowSpan,\n columnGroupId,\n isLastChildOfGroup,\n isLast,\n tableVariant,\n}: TableHeaderCellProps<ItemType>) {\n const i18n = useInternalI18n('table');\n const sortable = !!column.sortingComparator || !!column.sortingField;\n const sorted = !!activeSortingColumn && isSorted(column, activeSortingColumn);\n const sortingStatus = getSortingStatus(sortable, sorted, !!sortingDescending, !!sortingDisabled);\n const isGrouped = !!columnGroupId || (rowSpan ?? 1) > 1;\n const handleClick = () =>\n onClick({\n sortingColumn: column,\n isDescending: sorted ? !sortingDescending : false,\n });\n\n // Elements with role=\"button\" do not have the default behavior of <button>, where pressing\n // Enter or Space will trigger a click event. Therefore we need to add this ourselves.\n // The native <button> element cannot be used due to a misaligned implementation in Firefox:\n // https://bugzilla.mozilla.org/show_bug.cgi?id=843003\n const handleKeyPress = ({ nativeEvent: e }: React.KeyboardEvent) => {\n if (e.keyCode === KeyCode.enter || e.keyCode === KeyCode.space) {\n e.preventDefault();\n handleClick();\n }\n };\n\n const headerId = useUniqueId('table-header-');\n\n const clickableHeaderRef = useRef<HTMLDivElement>(null);\n const { tabIndex: clickableHeaderTabIndex } = useSingleTabStopNavigation(clickableHeaderRef, { tabIndex });\n\n const cellRefObject = useRef<HTMLElement>(null);\n const cellRefCombined = useMergeRefs(cellRef, cellRefObject);\n\n // Keep sticky and non-sticky headers in sync for dynamic cell\n // content changes. This is only needed when:\n // - Column has dynamic content\n // - This is the non-sticky version of a sticky header (hidden === true)\n // - Columns are not resizable\n useResizeObserver(hasDynamicContent ? cellRefObject : () => null, entry => {\n updateColumn(columnId, entry.borderBoxWidth);\n });\n\n return (\n <TableThElement\n resizableStyle={resizableStyle}\n cellRef={cellRefCombined}\n sortingStatus={sortingStatus}\n sortingDisabled={sortingDisabled}\n focusedComponent={focusedComponent}\n stuck={stuck}\n sticky={sticky}\n resizable={resizableColumns}\n hidden={hidden}\n stripedRows={stripedRows}\n colIndex={colIndex}\n columnId={columnId}\n stickyState={stickyState}\n tableRole={tableRole}\n variant={variant}\n tableVariant={tableVariant}\n colSpan={colSpan}\n rowSpan={rowSpan}\n columnGroupId={columnGroupId}\n isLast={isLast}\n {...(sortingDisabled\n ? {}\n : getAnalyticsMetadataAttribute({\n action: 'sort',\n detail: {\n position: `${colIndex + 1}`,\n columnId: column.id ? `${column.id}` : '',\n label: `.${analyticsSelectors['header-cell-text']}`,\n sortingDescending: `${!sortingDescending}`,\n },\n } as GeneratedAnalyticsMetadataTableSort))}\n >\n <div\n ref={clickableHeaderRef}\n data-focus-id={`sorting-control-${String(columnId)}`}\n className={clsx(styles['header-cell-content'], {\n [styles['header-cell-fake-focus']]: focusedComponent === `sorting-control-${String(columnId)}`,\n [styles['header-cell-content-expandable']]: isExpandable,\n })}\n aria-label={\n column.ariaLabel\n ? column.ariaLabel({\n sorted: sorted,\n descending: sorted && !!sortingDescending,\n disabled: !!sortingDisabled,\n })\n : undefined\n }\n {...(sortingStatus && !sortingDisabled\n ? {\n onKeyPress: handleKeyPress,\n tabIndex: clickableHeaderTabIndex,\n role: 'button',\n onClick: handleClick,\n }\n : {})}\n >\n <div\n className={clsx(\n styles['header-cell-text'],\n analyticsSelectors['header-cell-text'],\n wrapLines && styles['header-cell-text-wrap']\n )}\n id={headerId}\n >\n {column.header}\n {isEditable ? (\n <span className={styles['edit-icon']}>\n <InternalIcon\n name=\"edit\"\n ariaLabel={i18n('columnDefinitions.editConfig.editIconAriaLabel', column.editConfig?.editIconAriaLabel)}\n />\n </span>\n ) : null}\n </div>\n {sortingStatus && (\n <span className={styles['sorting-icon']}>\n <InternalIcon name={getSortingIconName(sortingStatus)} />\n </span>\n )}\n </div>\n {resizableColumns ? (\n <Resizer\n tabIndex={tabIndex}\n focusId={`resize-control-${String(columnId)}`}\n showFocusRing={focusedComponent === `resize-control-${String(columnId)}`}\n onWidthUpdate={newWidth => updateColumn(columnId, newWidth)}\n onWidthUpdateCommit={onResizeFinish}\n ariaLabelledby={headerId}\n minWidth={typeof column.minWidth === 'string' ? parseInt(column.minWidth) : column.minWidth}\n roleDescription={i18n('ariaLabels.resizerRoleDescription', resizerRoleDescription)}\n // TODO: Replace with this when strings are available\n // tooltipText={i18n('ariaLabels.resizerTooltipText', resizerTooltipText)}\n tooltipText={resizerTooltipText}\n isBorderless={variant === 'full-page' || variant === 'embedded' || variant === 'borderless'}\n isLast={isLast}\n isGrouped={isGrouped}\n dividerPosition={isLastChildOfGroup ? 'top' : undefined}\n />\n ) : (\n <Divider\n className={styles['resize-divider']}\n position={isLastChildOfGroup ? 'top' : undefined}\n isGrouped={isGrouped}\n />\n )}\n </TableThElement>\n );\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/table/header-cell/index.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, { useRef } from 'react';\nimport clsx from 'clsx';\n\nimport { useMergeRefs, useResizeObserver, useUniqueId } from '@cloudscape-design/component-toolkit/internal';\nimport { useSingleTabStopNavigation } from '@cloudscape-design/component-toolkit/internal';\nimport { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport { useInternalI18n } from '../../i18n/context';\nimport InternalIcon from '../../icon/internal';\nimport ScreenreaderOnly from '../../internal/components/screenreader-only';\nimport { fireNonCancelableEvent } from '../../internal/events';\nimport { KeyCode } from '../../internal/keycode';\nimport { GeneratedAnalyticsMetadataTableSort } from '../analytics-metadata/interfaces';\nimport { TableProps } from '../interfaces';\nimport {\n appendSort,\n getSortIndex,\n removeSort,\n replaceSort,\n setDirection,\n toggleDirection,\n} from '../multi-column-sort/utils';\nimport { Divider, Resizer } from '../resizer';\nimport { BaseHeaderCellProps } from './common-props';\nimport { SortMenu, SortMenuAction } from './sort-menu';\nimport { TableThElement } from './th-element';\nimport { getSortingIconName, getSortingStatus, isSorted } from './utils';\n\nimport analyticsSelectors from '../analytics-metadata/styles.css.js';\nimport styles from './styles.css.js';\n\nexport interface TableHeaderCellProps<ItemType> extends BaseHeaderCellProps {\n column: TableProps.ColumnDefinition<ItemType>;\n activeSortingColumn?: TableProps.SortingColumn<ItemType>;\n sortingDescending?: boolean;\n sortingDisabled?: boolean;\n stuck?: boolean;\n onClick(detail: TableProps.SortingState<any>): void;\n multiColumnSort?: TableProps.MultiColumnSort<ItemType>;\n i18nStrings?: TableProps.I18nStrings;\n ariaLabels?: TableProps.AriaLabels<ItemType>;\n updateColumn: (columnId: PropertyKey, newWidth: number) => void;\n isEditable?: boolean;\n columnId: PropertyKey;\n isExpandable?: boolean;\n hasDynamicContent?: boolean;\n colSpan?: number;\n rowSpan?: number;\n columnGroupId?: string;\n isLastChildOfGroup?: boolean;\n isLast?: boolean;\n}\n\nexport function TableHeaderCell<ItemType>({\n tabIndex,\n column,\n activeSortingColumn,\n sortingDescending,\n sortingDisabled,\n wrapLines,\n focusedComponent,\n stuck,\n sticky,\n hidden,\n stripedRows,\n onClick,\n colIndex,\n updateColumn,\n resizableColumns,\n resizableStyle,\n onResizeFinish,\n isEditable,\n columnId,\n stickyState,\n cellRef,\n tableRole,\n resizerRoleDescription,\n resizerTooltipText,\n isExpandable,\n hasDynamicContent,\n variant,\n colSpan,\n rowSpan,\n columnGroupId,\n isLastChildOfGroup,\n isLast,\n tableVariant,\n multiColumnSort,\n i18nStrings,\n ariaLabels,\n}: TableHeaderCellProps<ItemType>) {\n const i18n = useInternalI18n('table');\n const sortable = !!column.sortingComparator || !!column.sortingField;\n const isGrouped = !!columnGroupId || (rowSpan ?? 1) > 1;\n // The sort menu only renders for a sortable, enabled column under multi-column sort.\n const hasSortMenu = !!multiColumnSort && sortable && !sortingDisabled;\n\n // Multi-column sort context — derived from `multiColumnSort.sortingColumns` when present.\n const multiSortIndex = multiColumnSort ? getSortIndex(multiColumnSort.sortingColumns, column) : null;\n const multiSortEntry =\n multiSortIndex !== null && multiColumnSort ? multiColumnSort.sortingColumns[multiSortIndex - 1] : undefined;\n const inMultiSort = multiSortIndex !== null;\n const isPrimaryMultiSort = multiSortIndex === 1;\n // Priority badges are only meaningful when 2+ columns are sorted; with a single column, the position number adds no information.\n const showPriorityBadge = !!multiColumnSort && multiColumnSort.sortingColumns.length >= 2 && multiSortIndex !== null;\n\n // For multi-sort, derive sorted/descending from the matching entry; otherwise fall back to single-sort props.\n const sorted = multiColumnSort ? inMultiSort : !!activeSortingColumn && isSorted(column, activeSortingColumn);\n const descending = multiColumnSort ? !!multiSortEntry?.isDescending : !!sortingDescending;\n const sortingStatus = getSortingStatus(sortable, sorted, descending, !!sortingDisabled);\n // In multi-sort, only the primary column declares aria-sort (ARIA only allows one column sorted at a time).\n const suppressAriaSort = !!multiColumnSort && inMultiSort && !isPrimaryMultiSort;\n\n // Screen-reader-only text appended to a sorted column header. The visible header text supplies the column name;\n // this adds the sort direction (only when `aria-sort` is suppressed, i.e. secondary columns) and the sort priority.\n const sortDirectionLabel = descending\n ? i18n('ariaLabels.sortDescending', ariaLabels?.sortDescending)\n : i18n('ariaLabels.sortAscending', ariaLabels?.sortAscending);\n const sortPriorityLabel = i18n(\n 'ariaLabels.sortPriority',\n ariaLabels?.sortPriority,\n format =>\n ({ priority }) =>\n format({ priority })\n );\n const sortAccessibleText = inMultiSort\n ? [\n suppressAriaSort ? sortDirectionLabel : undefined,\n showPriorityBadge ? sortPriorityLabel?.({ priority: multiSortIndex ?? 0 }) : undefined,\n ]\n .filter(Boolean)\n .join(' ')\n : '';\n const handleClick = (shiftKey = false) => {\n if (multiColumnSort) {\n const current = multiColumnSort.sortingColumns;\n let next: ReadonlyArray<TableProps.SortingState<ItemType>>;\n if (shiftKey && !inMultiSort) {\n next = appendSort(current, column, false);\n } else if (inMultiSort) {\n next = toggleDirection(current, column);\n } else {\n next = replaceSort(column, false);\n }\n fireNonCancelableEvent(multiColumnSort.onChange, { sortingColumns: next });\n return;\n }\n onClick({\n sortingColumn: column,\n isDescending: sorted ? !sortingDescending : false,\n });\n };\n\n const handleSortMenuAction = (action: SortMenuAction) => {\n // The sort menu is only rendered when `multiColumnSort` is set (see render below), so this guard\n // exists purely to narrow the type for the accesses that follow and is unreachable at runtime.\n /* istanbul ignore next */\n if (!multiColumnSort) {\n return;\n }\n const current = multiColumnSort.sortingColumns;\n let next: ReadonlyArray<TableProps.SortingState<ItemType>>;\n switch (action) {\n case 'sort-ascending':\n next = inMultiSort ? setDirection(current, column, false) : replaceSort(column, false);\n break;\n case 'sort-descending':\n next = inMultiSort ? setDirection(current, column, true) : replaceSort(column, true);\n break;\n case 'add-to-sort-ascending':\n next = appendSort(current, column, false);\n break;\n case 'add-to-sort-descending':\n next = appendSort(current, column, true);\n break;\n case 'remove-from-sort':\n next = removeSort(current, column);\n break;\n }\n fireNonCancelableEvent(multiColumnSort.onChange, { sortingColumns: next });\n };\n\n // Elements with role=\"button\" do not have the default behavior of <button>, where pressing\n // Enter or Space will trigger a click event. Therefore we need to add this ourselves.\n // The native <button> element cannot be used due to a misaligned implementation in Firefox:\n // https://bugzilla.mozilla.org/show_bug.cgi?id=843003\n const handleKeyPress = ({ nativeEvent: e }: React.KeyboardEvent) => {\n if (e.keyCode === KeyCode.enter || e.keyCode === KeyCode.space) {\n e.preventDefault();\n handleClick(e.shiftKey);\n }\n };\n\n const headerId = useUniqueId('table-header-');\n\n const clickableHeaderRef = useRef<HTMLDivElement>(null);\n const { tabIndex: clickableHeaderTabIndex } = useSingleTabStopNavigation(clickableHeaderRef, { tabIndex });\n\n const cellRefObject = useRef<HTMLElement>(null);\n const cellRefCombined = useMergeRefs(cellRef, cellRefObject);\n\n // Keep sticky and non-sticky headers in sync for dynamic cell\n // content changes. This is only needed when:\n // - Column has dynamic content\n // - This is the non-sticky version of a sticky header (hidden === true)\n // - Columns are not resizable\n useResizeObserver(hasDynamicContent ? cellRefObject : () => null, entry => {\n updateColumn(columnId, entry.borderBoxWidth);\n });\n\n return (\n <TableThElement\n resizableStyle={resizableStyle}\n cellRef={cellRefCombined}\n sortingStatus={sortingStatus}\n sortingDisabled={sortingDisabled}\n suppressAriaSort={suppressAriaSort}\n focusedComponent={focusedComponent}\n stuck={stuck}\n sticky={sticky}\n resizable={resizableColumns}\n hidden={hidden}\n stripedRows={stripedRows}\n colIndex={colIndex}\n columnId={columnId}\n stickyState={stickyState}\n tableRole={tableRole}\n variant={variant}\n tableVariant={tableVariant}\n colSpan={colSpan}\n rowSpan={rowSpan}\n columnGroupId={columnGroupId}\n isLast={isLast}\n {...(sortingDisabled\n ? {}\n : getAnalyticsMetadataAttribute({\n action: 'sort',\n detail: {\n position: `${colIndex + 1}`,\n columnId: column.id ? `${column.id}` : '',\n label: `.${analyticsSelectors['header-cell-text']}`,\n sortingDescending: `${!descending}`,\n },\n } as GeneratedAnalyticsMetadataTableSort))}\n >\n <div className={clsx(styles['header-cell-main'], hasSortMenu && styles['header-cell-main-with-menu'])}>\n <div\n ref={clickableHeaderRef}\n data-focus-id={`sorting-control-${String(columnId)}`}\n className={clsx(styles['header-cell-content'], {\n [styles['header-cell-fake-focus']]: focusedComponent === `sorting-control-${String(columnId)}`,\n [styles['header-cell-content-expandable']]: isExpandable,\n [styles['header-cell-content-multi-sorted']]: showPriorityBadge,\n [styles['header-cell-content-with-menu']]: hasSortMenu,\n })}\n aria-label={\n column.ariaLabel\n ? column.ariaLabel({\n sorted: sorted,\n descending: sorted && descending,\n disabled: !!sortingDisabled,\n sortIndex: multiSortIndex ?? undefined,\n })\n : undefined\n }\n {...(sortingStatus && !sortingDisabled\n ? {\n onKeyPress: handleKeyPress,\n tabIndex: clickableHeaderTabIndex,\n role: 'button',\n onClick: event => handleClick(event.shiftKey),\n // Prevent the browser from extending the text selection on Shift+click.\n onMouseDown: (event: React.MouseEvent) => {\n if (event.shiftKey) {\n event.preventDefault();\n }\n },\n }\n : {})}\n >\n <div\n className={clsx(\n styles['header-cell-text'],\n analyticsSelectors['header-cell-text'],\n wrapLines && styles['header-cell-text-wrap']\n )}\n id={headerId}\n >\n {column.header}\n {isEditable ? (\n <span className={styles['edit-icon']}>\n <InternalIcon\n name=\"edit\"\n ariaLabel={i18n(\n 'columnDefinitions.editConfig.editIconAriaLabel',\n column.editConfig?.editIconAriaLabel\n )}\n />\n </span>\n ) : null}\n </div>\n {sortAccessibleText && <ScreenreaderOnly>{sortAccessibleText}</ScreenreaderOnly>}\n {sortingStatus && (\n <span className={styles['sorting-icon']}>\n {showPriorityBadge && (\n <span className={styles['sort-priority-badge']} aria-hidden=\"true\">\n {multiSortIndex}\n </span>\n )}\n <InternalIcon name={getSortingIconName(sortingStatus)} />\n </span>\n )}\n </div>\n {hasSortMenu && (\n <SortMenu<ItemType>\n column={column}\n inSort={inMultiSort}\n isSortedAscending={inMultiSort && !descending}\n isSortedDescending={inMultiSort && descending}\n i18nStrings={i18nStrings}\n ariaLabel={ariaLabels?.sortMenuTriggerLabel}\n ariaDescribedby={headerId}\n onAction={handleSortMenuAction}\n />\n )}\n </div>\n {resizableColumns ? (\n <Resizer\n tabIndex={tabIndex}\n focusId={`resize-control-${String(columnId)}`}\n showFocusRing={focusedComponent === `resize-control-${String(columnId)}`}\n onWidthUpdate={newWidth => updateColumn(columnId, newWidth)}\n onWidthUpdateCommit={onResizeFinish}\n ariaLabelledby={headerId}\n minWidth={typeof column.minWidth === 'string' ? parseInt(column.minWidth) : column.minWidth}\n roleDescription={i18n('ariaLabels.resizerRoleDescription', resizerRoleDescription)}\n // TODO: Replace with this when strings are available\n // tooltipText={i18n('ariaLabels.resizerTooltipText', resizerTooltipText)}\n tooltipText={resizerTooltipText}\n isBorderless={variant === 'full-page' || variant === 'embedded' || variant === 'borderless'}\n isLast={isLast}\n isGrouped={isGrouped}\n dividerPosition={isLastChildOfGroup ? 'top' : undefined}\n />\n ) : (\n <Divider\n className={styles['resize-divider']}\n position={isLastChildOfGroup ? 'top' : undefined}\n isGrouped={isGrouped}\n />\n )}\n </TableThElement>\n );\n}\n"]}