@cloudscape-design/components 3.0.220 → 3.0.222

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 (1000) hide show
  1. package/alert/index.js +4 -4
  2. package/alert/index.js.map +1 -1
  3. package/alert/internal.js +14 -15
  4. package/alert/internal.js.map +1 -1
  5. package/annotation-context/annotation/annotation-icon.js +1 -2
  6. package/annotation-context/annotation/annotation-icon.js.map +1 -1
  7. package/annotation-context/annotation/annotation-popover.js +6 -7
  8. package/annotation-context/annotation/annotation-popover.js.map +1 -1
  9. package/annotation-context/annotation/annotation-trigger.js +4 -6
  10. package/annotation-context/annotation/annotation-trigger.js.map +1 -1
  11. package/annotation-context/annotation/closed-annotation.js +4 -5
  12. package/annotation-context/annotation/closed-annotation.js.map +1 -1
  13. package/annotation-context/annotation/open-annotation.js +2 -3
  14. package/annotation-context/annotation/open-annotation.js.map +1 -1
  15. package/annotation-context/context.js +7 -7
  16. package/annotation-context/context.js.map +1 -1
  17. package/annotation-context/index.js +62 -69
  18. package/annotation-context/index.js.map +1 -1
  19. package/app-layout/content-wrapper/index.js +2 -3
  20. package/app-layout/content-wrapper/index.js.map +1 -1
  21. package/app-layout/defaults.js +13 -14
  22. package/app-layout/defaults.js.map +1 -1
  23. package/app-layout/drawer.js +16 -18
  24. package/app-layout/drawer.js.map +1 -1
  25. package/app-layout/index.js +111 -113
  26. package/app-layout/index.js.map +1 -1
  27. package/app-layout/mobile-toolbar/index.js +7 -9
  28. package/app-layout/mobile-toolbar/index.js.map +1 -1
  29. package/app-layout/navigation-panel.js +5 -8
  30. package/app-layout/navigation-panel.js.map +1 -1
  31. package/app-layout/notifications/index.js +2 -2
  32. package/app-layout/notifications/index.js.map +1 -1
  33. package/app-layout/toggles/index.js +14 -22
  34. package/app-layout/toggles/index.js.map +1 -1
  35. package/app-layout/tools-and-split-panel.js +6 -9
  36. package/app-layout/tools-and-split-panel.js.map +1 -1
  37. package/app-layout/utils/use-content-height.js +14 -15
  38. package/app-layout/utils/use-content-height.js.map +1 -1
  39. package/app-layout/utils/use-content-width.js +8 -8
  40. package/app-layout/utils/use-content-width.js.map +1 -1
  41. package/app-layout/utils/use-focus-control.js +7 -8
  42. package/app-layout/utils/use-focus-control.js.map +1 -1
  43. package/app-layout/utils/use-observed-element.js +3 -3
  44. package/app-layout/utils/use-observed-element.js.map +1 -1
  45. package/app-layout/utils/use-window-width.js +4 -4
  46. package/app-layout/utils/use-window-width.js.map +1 -1
  47. package/app-layout/visual-refresh/app-bar.js +19 -20
  48. package/app-layout/visual-refresh/app-bar.js.map +1 -1
  49. package/app-layout/visual-refresh/background.js +9 -10
  50. package/app-layout/visual-refresh/background.js.map +1 -1
  51. package/app-layout/visual-refresh/context.js +101 -59
  52. package/app-layout/visual-refresh/context.js.map +1 -1
  53. package/app-layout/visual-refresh/header.js +6 -7
  54. package/app-layout/visual-refresh/header.js.map +1 -1
  55. package/app-layout/visual-refresh/index.js +3 -4
  56. package/app-layout/visual-refresh/index.js.map +1 -1
  57. package/app-layout/visual-refresh/layout.js +18 -21
  58. package/app-layout/visual-refresh/layout.js.map +1 -1
  59. package/app-layout/visual-refresh/main.js +17 -18
  60. package/app-layout/visual-refresh/main.js.map +1 -1
  61. package/app-layout/visual-refresh/navigation.js +22 -24
  62. package/app-layout/visual-refresh/navigation.js.map +1 -1
  63. package/app-layout/visual-refresh/notifications.js +6 -7
  64. package/app-layout/visual-refresh/notifications.js.map +1 -1
  65. package/app-layout/visual-refresh/split-panel.js +36 -43
  66. package/app-layout/visual-refresh/split-panel.js.map +1 -1
  67. package/app-layout/visual-refresh/tools.js +32 -34
  68. package/app-layout/visual-refresh/tools.js.map +1 -1
  69. package/app-layout/visual-refresh/trigger-button.js +5 -8
  70. package/app-layout/visual-refresh/trigger-button.js.map +1 -1
  71. package/area-chart/chart-container.js +18 -19
  72. package/area-chart/chart-container.js.map +1 -1
  73. package/area-chart/elements/area-chart-filter.js +7 -8
  74. package/area-chart/elements/area-chart-filter.js.map +1 -1
  75. package/area-chart/elements/area-chart-legend.js +6 -9
  76. package/area-chart/elements/area-chart-legend.js.map +1 -1
  77. package/area-chart/elements/area-series.js +12 -13
  78. package/area-chart/elements/area-series.js.map +1 -1
  79. package/area-chart/elements/chart-popover.js +4 -6
  80. package/area-chart/elements/chart-popover.js.map +1 -1
  81. package/area-chart/elements/data-series.js +14 -17
  82. package/area-chart/elements/data-series.js.map +1 -1
  83. package/area-chart/elements/highlighted-point.js +6 -7
  84. package/area-chart/elements/highlighted-point.js.map +1 -1
  85. package/area-chart/elements/threshold-series.js +5 -7
  86. package/area-chart/elements/threshold-series.js.map +1 -1
  87. package/area-chart/elements/use-highlight-details.js +28 -30
  88. package/area-chart/elements/use-highlight-details.js.map +1 -1
  89. package/area-chart/elements/vertical-marker.js +6 -7
  90. package/area-chart/elements/vertical-marker.js.map +1 -1
  91. package/area-chart/index.js +4 -4
  92. package/area-chart/index.js.map +1 -1
  93. package/area-chart/internal.js +40 -41
  94. package/area-chart/internal.js.map +1 -1
  95. package/area-chart/model/async-store.js +23 -30
  96. package/area-chart/model/async-store.js.map +1 -1
  97. package/area-chart/model/compute-chart-props.js +11 -12
  98. package/area-chart/model/compute-chart-props.js.map +1 -1
  99. package/area-chart/model/create-series-decorator.js +11 -13
  100. package/area-chart/model/create-series-decorator.js.map +1 -1
  101. package/area-chart/model/interactions-store.js +47 -54
  102. package/area-chart/model/interactions-store.js.map +1 -1
  103. package/area-chart/model/use-chart-model.js +85 -89
  104. package/area-chart/model/use-chart-model.js.map +1 -1
  105. package/area-chart/model/use-filter-props.js +6 -6
  106. package/area-chart/model/use-filter-props.js.map +1 -1
  107. package/area-chart/model/use-highlight-props.js +6 -6
  108. package/area-chart/model/use-highlight-props.js.map +1 -1
  109. package/area-chart/model/utils.js +46 -59
  110. package/area-chart/model/utils.js.map +1 -1
  111. package/attribute-editor/additional-info.js +2 -5
  112. package/attribute-editor/additional-info.js.map +1 -1
  113. package/attribute-editor/index.js +5 -5
  114. package/attribute-editor/index.js.map +1 -1
  115. package/attribute-editor/internal.js +20 -20
  116. package/attribute-editor/internal.js.map +1 -1
  117. package/attribute-editor/row.js +17 -25
  118. package/attribute-editor/row.js.map +1 -1
  119. package/autosuggest/autosuggest-option.js +12 -12
  120. package/autosuggest/autosuggest-option.js.map +1 -1
  121. package/autosuggest/index.js +6 -6
  122. package/autosuggest/index.js.map +1 -1
  123. package/autosuggest/internal.js +39 -39
  124. package/autosuggest/internal.js.map +1 -1
  125. package/autosuggest/load-more-controller.js +10 -14
  126. package/autosuggest/load-more-controller.js.map +1 -1
  127. package/autosuggest/options-controller.js +31 -32
  128. package/autosuggest/options-controller.js.map +1 -1
  129. package/autosuggest/options-list.js +12 -13
  130. package/autosuggest/options-list.js.map +1 -1
  131. package/autosuggest/plain-list.js +15 -17
  132. package/autosuggest/plain-list.js.map +1 -1
  133. package/autosuggest/utils/utils.js +12 -12
  134. package/autosuggest/utils/utils.js.map +1 -1
  135. package/autosuggest/virtual-list.js +14 -16
  136. package/autosuggest/virtual-list.js.map +1 -1
  137. package/badge/index.js +6 -6
  138. package/badge/index.js.map +1 -1
  139. package/bar-chart/index.js +6 -6
  140. package/bar-chart/index.js.map +1 -1
  141. package/box/index.js +4 -4
  142. package/box/index.js.map +1 -1
  143. package/box/internal.js +12 -12
  144. package/box/internal.js.map +1 -1
  145. package/breadcrumb-group/index.js +4 -4
  146. package/breadcrumb-group/index.js.map +1 -1
  147. package/breadcrumb-group/internal.js +24 -25
  148. package/breadcrumb-group/internal.js.map +1 -1
  149. package/breadcrumb-group/item/item.js +32 -34
  150. package/breadcrumb-group/item/item.js.map +1 -1
  151. package/button/icon-helper.js +6 -6
  152. package/button/icon-helper.js.map +1 -1
  153. package/button/index.js +6 -6
  154. package/button/index.js.map +1 -1
  155. package/button/internal.js +32 -33
  156. package/button/internal.js.map +1 -1
  157. package/button-dropdown/category-elements/category-element.js +3 -5
  158. package/button-dropdown/category-elements/category-element.js.map +1 -1
  159. package/button-dropdown/category-elements/expandable-category-element.js +23 -26
  160. package/button-dropdown/category-elements/expandable-category-element.js.map +1 -1
  161. package/button-dropdown/category-elements/mobile-expandable-category-element.js +27 -30
  162. package/button-dropdown/category-elements/mobile-expandable-category-element.js.map +1 -1
  163. package/button-dropdown/index.js +6 -6
  164. package/button-dropdown/index.js.map +1 -1
  165. package/button-dropdown/internal.js +28 -29
  166. package/button-dropdown/internal.js.map +1 -1
  167. package/button-dropdown/item-element/index.js +30 -36
  168. package/button-dropdown/item-element/index.js.map +1 -1
  169. package/button-dropdown/items-list.js +3 -4
  170. package/button-dropdown/items-list.js.map +1 -1
  171. package/button-dropdown/mobile-expandable-group/mobile-expandable-group.js +2 -4
  172. package/button-dropdown/mobile-expandable-group/mobile-expandable-group.js.map +1 -1
  173. package/button-dropdown/tooltip.js +22 -24
  174. package/button-dropdown/tooltip.js.map +1 -1
  175. package/button-dropdown/utils/create-items-tree.js +21 -23
  176. package/button-dropdown/utils/create-items-tree.js.map +1 -1
  177. package/button-dropdown/utils/menu-item.js +6 -9
  178. package/button-dropdown/utils/menu-item.js.map +1 -1
  179. package/button-dropdown/utils/move-highlight.js +3 -4
  180. package/button-dropdown/utils/move-highlight.js.map +1 -1
  181. package/button-dropdown/utils/use-button-dropdown.js +31 -33
  182. package/button-dropdown/utils/use-button-dropdown.js.map +1 -1
  183. package/button-dropdown/utils/use-hidden-description.js +3 -3
  184. package/button-dropdown/utils/use-hidden-description.js.map +1 -1
  185. package/button-dropdown/utils/use-highlighted-menu.js +40 -42
  186. package/button-dropdown/utils/use-highlighted-menu.js.map +1 -1
  187. package/button-dropdown/utils/utils.js +5 -9
  188. package/button-dropdown/utils/utils.js.map +1 -1
  189. package/calendar/grid/index.js +25 -28
  190. package/calendar/grid/index.js.map +1 -1
  191. package/calendar/header/header-button.js +4 -6
  192. package/calendar/header/header-button.js.map +1 -1
  193. package/calendar/header/index.js +1 -2
  194. package/calendar/header/index.js.map +1 -1
  195. package/calendar/index.js +4 -4
  196. package/calendar/index.js.map +1 -1
  197. package/calendar/internal.js +27 -27
  198. package/calendar/internal.js.map +1 -1
  199. package/calendar/utils/intl.js +12 -13
  200. package/calendar/utils/intl.js.map +1 -1
  201. package/calendar/utils/navigation.js +3 -3
  202. package/calendar/utils/navigation.js.map +1 -1
  203. package/cards/cards-layout-helper.js +12 -12
  204. package/cards/cards-layout-helper.js.map +1 -1
  205. package/cards/index.js +53 -63
  206. package/cards/index.js.map +1 -1
  207. package/checkbox/index.js +4 -4
  208. package/checkbox/index.js.map +1 -1
  209. package/checkbox/internal.d.ts +1 -0
  210. package/checkbox/internal.d.ts.map +1 -1
  211. package/checkbox/internal.js +9 -9
  212. package/checkbox/internal.js.map +1 -1
  213. package/code-editor/ace-modes.js +1 -1
  214. package/code-editor/ace-modes.js.map +1 -1
  215. package/code-editor/ace-themes.js +2 -2
  216. package/code-editor/ace-themes.js.map +1 -1
  217. package/code-editor/error-screen.js +3 -4
  218. package/code-editor/error-screen.js.map +1 -1
  219. package/code-editor/index.js +61 -65
  220. package/code-editor/index.js.map +1 -1
  221. package/code-editor/listeners.js +5 -5
  222. package/code-editor/listeners.js.map +1 -1
  223. package/code-editor/loading-screen.js +2 -2
  224. package/code-editor/loading-screen.js.map +1 -1
  225. package/code-editor/pane.js +21 -25
  226. package/code-editor/pane.js.map +1 -1
  227. package/code-editor/preferences-modal.js +12 -13
  228. package/code-editor/preferences-modal.js.map +1 -1
  229. package/code-editor/resizable-box/index.js +14 -15
  230. package/code-editor/resizable-box/index.js.map +1 -1
  231. package/code-editor/setup-editor.js +20 -20
  232. package/code-editor/setup-editor.js.map +1 -1
  233. package/code-editor/status-bar.js +19 -22
  234. package/code-editor/status-bar.js.map +1 -1
  235. package/code-editor/tab-button.js +7 -10
  236. package/code-editor/tab-button.js.map +1 -1
  237. package/code-editor/util.js +6 -6
  238. package/code-editor/util.js.map +1 -1
  239. package/collection-preferences/index.js +21 -23
  240. package/collection-preferences/index.js.map +1 -1
  241. package/collection-preferences/utils.js +25 -57
  242. package/collection-preferences/utils.js.map +1 -1
  243. package/collection-preferences/visible-content.js +23 -27
  244. package/collection-preferences/visible-content.js.map +1 -1
  245. package/column-layout/index.js +6 -6
  246. package/column-layout/index.js.map +1 -1
  247. package/column-layout/internal.js +20 -21
  248. package/column-layout/internal.js.map +1 -1
  249. package/column-layout/util.js +2 -2
  250. package/column-layout/util.js.map +1 -1
  251. package/container/index.js +5 -5
  252. package/container/index.js.map +1 -1
  253. package/container/internal.js +30 -31
  254. package/container/internal.js.map +1 -1
  255. package/container/use-sticky-header.js +25 -25
  256. package/container/use-sticky-header.js.map +1 -1
  257. package/content-layout/index.js +2 -3
  258. package/content-layout/index.js.map +1 -1
  259. package/content-layout/internal.js +15 -16
  260. package/content-layout/internal.js.map +1 -1
  261. package/date-input/index.js +3 -4
  262. package/date-input/index.js.map +1 -1
  263. package/date-input/internal.js +8 -8
  264. package/date-input/internal.js.map +1 -1
  265. package/date-picker/index.js +28 -28
  266. package/date-picker/index.js.map +1 -1
  267. package/date-range-picker/calendar/grids/grid.js +54 -57
  268. package/date-range-picker/calendar/grids/grid.js.map +1 -1
  269. package/date-range-picker/calendar/grids/index.js +27 -28
  270. package/date-range-picker/calendar/grids/index.js.map +1 -1
  271. package/date-range-picker/calendar/header/header-button.js +4 -6
  272. package/date-range-picker/calendar/header/header-button.js.map +1 -1
  273. package/date-range-picker/calendar/header/index.js +6 -7
  274. package/date-range-picker/calendar/header/index.js.map +1 -1
  275. package/date-range-picker/calendar/index.js +40 -45
  276. package/date-range-picker/calendar/index.js.map +1 -1
  277. package/date-range-picker/calendar/range-inputs.js +5 -6
  278. package/date-range-picker/calendar/range-inputs.js.map +1 -1
  279. package/date-range-picker/calendar/utils.js +2 -2
  280. package/date-range-picker/calendar/utils.js.map +1 -1
  281. package/date-range-picker/dropdown.js +29 -34
  282. package/date-range-picker/dropdown.js.map +1 -1
  283. package/date-range-picker/index.js +40 -43
  284. package/date-range-picker/index.js.map +1 -1
  285. package/date-range-picker/mode-switcher.js +2 -3
  286. package/date-range-picker/mode-switcher.js.map +1 -1
  287. package/date-range-picker/relative-range/index.js +36 -40
  288. package/date-range-picker/relative-range/index.js.map +1 -1
  289. package/date-range-picker/time-offset.js +5 -5
  290. package/date-range-picker/time-offset.js.map +1 -1
  291. package/date-range-picker/utils.js +4 -5
  292. package/date-range-picker/utils.js.map +1 -1
  293. package/expandable-section/expandable-section-container.js +5 -5
  294. package/expandable-section/expandable-section-container.js.map +1 -1
  295. package/expandable-section/expandable-section-header.js +18 -23
  296. package/expandable-section/expandable-section-header.js.map +1 -1
  297. package/expandable-section/index.js +4 -4
  298. package/expandable-section/index.js.map +1 -1
  299. package/expandable-section/internal.js +22 -22
  300. package/expandable-section/internal.js.map +1 -1
  301. package/flashbar/collapsible-flashbar.js +103 -118
  302. package/flashbar/collapsible-flashbar.js.map +1 -1
  303. package/flashbar/common.js +26 -35
  304. package/flashbar/common.js.map +1 -1
  305. package/flashbar/constant.js +1 -1
  306. package/flashbar/constant.js.map +1 -1
  307. package/flashbar/flash.js +23 -26
  308. package/flashbar/flash.js.map +1 -1
  309. package/flashbar/index.js +3 -4
  310. package/flashbar/index.js.map +1 -1
  311. package/flashbar/internal/analytics.js +12 -12
  312. package/flashbar/internal/analytics.js.map +1 -1
  313. package/flashbar/non-collapsible-flashbar.js +10 -10
  314. package/flashbar/non-collapsible-flashbar.js.map +1 -1
  315. package/flashbar/utils.js +25 -27
  316. package/flashbar/utils.js.map +1 -1
  317. package/form/index.js +4 -4
  318. package/form/index.js.map +1 -1
  319. package/form/internal.js +5 -6
  320. package/form/internal.js.map +1 -1
  321. package/form-field/index.js +4 -4
  322. package/form-field/index.js.map +1 -1
  323. package/form-field/internal.js +20 -23
  324. package/form-field/internal.js.map +1 -1
  325. package/form-field/util.js +9 -10
  326. package/form-field/util.js.map +1 -1
  327. package/grid/index.js +6 -6
  328. package/grid/index.js.map +1 -1
  329. package/grid/internal.js +14 -15
  330. package/grid/internal.js.map +1 -1
  331. package/header/index.js +4 -4
  332. package/header/index.js.map +1 -1
  333. package/header/internal.js +15 -15
  334. package/header/internal.js.map +1 -1
  335. package/help-panel/index.js +7 -7
  336. package/help-panel/index.js.map +1 -1
  337. package/hotspot/index.js +12 -12
  338. package/hotspot/index.js.map +1 -1
  339. package/icon/icons.js +1 -1
  340. package/icon/index.js +4 -4
  341. package/icon/index.js.map +1 -1
  342. package/icon/internal.js +18 -18
  343. package/icon/internal.js.map +1 -1
  344. package/input/index.js +36 -17
  345. package/input/index.js.map +1 -1
  346. package/input/internal.js +30 -25
  347. package/input/internal.js.map +1 -1
  348. package/input/utils.js +4 -5
  349. package/input/utils.js.map +1 -1
  350. package/internal/animate.js +27 -32
  351. package/internal/animate.js.map +1 -1
  352. package/internal/base-component/index.js +2 -2
  353. package/internal/base-component/index.js.map +1 -1
  354. package/internal/breakpoints.js +7 -12
  355. package/internal/breakpoints.js.map +1 -1
  356. package/internal/components/abstract-switch/index.d.ts +2 -1
  357. package/internal/components/abstract-switch/index.d.ts.map +1 -1
  358. package/internal/components/abstract-switch/index.js +19 -19
  359. package/internal/components/abstract-switch/index.js.map +1 -1
  360. package/internal/components/abstract-switch/styles.css.js +13 -12
  361. package/internal/components/abstract-switch/styles.scoped.css +21 -21
  362. package/internal/components/abstract-switch/styles.selectors.js +13 -12
  363. package/internal/components/autosuggest-input/index.js +38 -38
  364. package/internal/components/autosuggest-input/index.js.map +1 -1
  365. package/internal/components/button-trigger/index.js +7 -7
  366. package/internal/components/button-trigger/index.js.map +1 -1
  367. package/internal/components/cartesian-chart/axis-label.js +1 -2
  368. package/internal/components/cartesian-chart/axis-label.js.map +1 -1
  369. package/internal/components/cartesian-chart/bottom-labels.js +20 -26
  370. package/internal/components/cartesian-chart/bottom-labels.js.map +1 -1
  371. package/internal/components/cartesian-chart/constants.js +5 -5
  372. package/internal/components/cartesian-chart/constants.js.map +1 -1
  373. package/internal/components/cartesian-chart/emphasized-baseline.js +4 -5
  374. package/internal/components/cartesian-chart/emphasized-baseline.js.map +1 -1
  375. package/internal/components/cartesian-chart/highlighted-point.js +1 -2
  376. package/internal/components/cartesian-chart/highlighted-point.js.map +1 -1
  377. package/internal/components/cartesian-chart/label-utils.js +20 -24
  378. package/internal/components/cartesian-chart/label-utils.js.map +1 -1
  379. package/internal/components/cartesian-chart/labels-measure.js +6 -7
  380. package/internal/components/cartesian-chart/labels-measure.js.map +1 -1
  381. package/internal/components/cartesian-chart/left-labels.js +13 -17
  382. package/internal/components/cartesian-chart/left-labels.js.map +1 -1
  383. package/internal/components/cartesian-chart/scales.js +21 -26
  384. package/internal/components/cartesian-chart/scales.js.map +1 -1
  385. package/internal/components/cartesian-chart/ticks.js +9 -10
  386. package/internal/components/cartesian-chart/ticks.js.map +1 -1
  387. package/internal/components/cartesian-chart/vertical-grid-lines.js +3 -4
  388. package/internal/components/cartesian-chart/vertical-grid-lines.js.map +1 -1
  389. package/internal/components/cartesian-chart/vertical-marker.js +3 -4
  390. package/internal/components/cartesian-chart/vertical-marker.js.map +1 -1
  391. package/internal/components/chart-filter/index.js +13 -14
  392. package/internal/components/chart-filter/index.js.map +1 -1
  393. package/internal/components/chart-legend/index.js +26 -29
  394. package/internal/components/chart-legend/index.js.map +1 -1
  395. package/internal/components/chart-plot/application-controller.js +21 -25
  396. package/internal/components/chart-plot/application-controller.js.map +1 -1
  397. package/internal/components/chart-plot/focus-outline.js +7 -8
  398. package/internal/components/chart-plot/focus-outline.js.map +1 -1
  399. package/internal/components/chart-plot/index.js +33 -34
  400. package/internal/components/chart-plot/index.js.map +1 -1
  401. package/internal/components/chart-popover/index.js +11 -12
  402. package/internal/components/chart-popover/index.js.map +1 -1
  403. package/internal/components/chart-series-details/index.js +13 -17
  404. package/internal/components/chart-series-details/index.js.map +1 -1
  405. package/internal/components/chart-series-marker/index.js +2 -3
  406. package/internal/components/chart-series-marker/index.js.map +1 -1
  407. package/internal/components/chart-status-container/index.js +8 -10
  408. package/internal/components/chart-status-container/index.js.map +1 -1
  409. package/internal/components/checkbox-icon/index.js +18 -19
  410. package/internal/components/checkbox-icon/index.js.map +1 -1
  411. package/internal/components/dark-ribbon/index.js +13 -14
  412. package/internal/components/dark-ribbon/index.js.map +1 -1
  413. package/internal/components/dropdown/context.js +4 -5
  414. package/internal/components/dropdown/context.js.map +1 -1
  415. package/internal/components/dropdown/dropdown-fit-handler.js +74 -81
  416. package/internal/components/dropdown/dropdown-fit-handler.js.map +1 -1
  417. package/internal/components/dropdown/index.js +57 -65
  418. package/internal/components/dropdown/index.js.map +1 -1
  419. package/internal/components/dropdown-footer/index.js +2 -6
  420. package/internal/components/dropdown-footer/index.js.map +1 -1
  421. package/internal/components/dropdown-status/index.js +5 -7
  422. package/internal/components/dropdown-status/index.js.map +1 -1
  423. package/internal/components/filtering-token/index.js +4 -6
  424. package/internal/components/filtering-token/index.js.map +1 -1
  425. package/internal/components/focus-lock/index.js +10 -11
  426. package/internal/components/focus-lock/index.js.map +1 -1
  427. package/internal/components/focus-lock/utils.js +4 -4
  428. package/internal/components/focus-lock/utils.js.map +1 -1
  429. package/internal/components/live-region/index.js +10 -10
  430. package/internal/components/live-region/index.js.map +1 -1
  431. package/internal/components/masked-input/index.js +22 -24
  432. package/internal/components/masked-input/index.js.map +1 -1
  433. package/internal/components/masked-input/keyboard-handler.js +18 -18
  434. package/internal/components/masked-input/keyboard-handler.js.map +1 -1
  435. package/internal/components/masked-input/use-mask.js +24 -28
  436. package/internal/components/masked-input/use-mask.js.map +1 -1
  437. package/internal/components/masked-input/utils/keys.js +4 -6
  438. package/internal/components/masked-input/utils/keys.js.map +1 -1
  439. package/internal/components/masked-input/utils/mask-format.js +103 -113
  440. package/internal/components/masked-input/utils/mask-format.js.map +1 -1
  441. package/internal/components/masked-input/utils/strings.js +1 -4
  442. package/internal/components/masked-input/utils/strings.js.map +1 -1
  443. package/internal/components/menu-dropdown/index.js +10 -12
  444. package/internal/components/menu-dropdown/index.js.map +1 -1
  445. package/internal/components/option/highlight-match.js +14 -18
  446. package/internal/components/option/highlight-match.js.map +1 -1
  447. package/internal/components/option/index.js +13 -13
  448. package/internal/components/option/index.js.map +1 -1
  449. package/internal/components/option/option-announcer.js +1 -1
  450. package/internal/components/option/option-announcer.js.map +1 -1
  451. package/internal/components/option/option-parts.js +28 -45
  452. package/internal/components/option/option-parts.js.map +1 -1
  453. package/internal/components/option/utils/filter-options.js +16 -19
  454. package/internal/components/option/utils/filter-options.js.map +1 -1
  455. package/internal/components/option/utils/flatten-options.js +15 -15
  456. package/internal/components/option/utils/flatten-options.js.map +1 -1
  457. package/internal/components/option/utils/prepare-options.js +3 -3
  458. package/internal/components/option/utils/prepare-options.js.map +1 -1
  459. package/internal/components/options-list/index.js +19 -20
  460. package/internal/components/options-list/index.js.map +1 -1
  461. package/internal/components/options-list/utils/test-indexes.js +11 -11
  462. package/internal/components/options-list/utils/test-indexes.js.map +1 -1
  463. package/internal/components/options-list/utils/use-highlight-option.js +17 -21
  464. package/internal/components/options-list/utils/use-highlight-option.js.map +1 -1
  465. package/internal/components/options-list/utils/use-ids.js +2 -2
  466. package/internal/components/options-list/utils/use-ids.js.map +1 -1
  467. package/internal/components/options-list/utils/use-keyboard.js +6 -8
  468. package/internal/components/options-list/utils/use-keyboard.js.map +1 -1
  469. package/internal/components/options-list/utils/use-open-state.js +6 -7
  470. package/internal/components/options-list/utils/use-open-state.js.map +1 -1
  471. package/internal/components/portal/index.js +5 -6
  472. package/internal/components/portal/index.js.map +1 -1
  473. package/internal/components/screenreader-only/index.js +1 -2
  474. package/internal/components/screenreader-only/index.js.map +1 -1
  475. package/internal/components/selectable-item/index.js +25 -26
  476. package/internal/components/selectable-item/index.js.map +1 -1
  477. package/internal/components/tab-trap/index.js +1 -2
  478. package/internal/components/tab-trap/index.js.map +1 -1
  479. package/internal/components/transition/index.js +16 -16
  480. package/internal/components/transition/index.js.map +1 -1
  481. package/internal/components/visual-context/index.js +6 -7
  482. package/internal/components/visual-context/index.js.map +1 -1
  483. package/internal/context/app-layout-context.js +2 -2
  484. package/internal/context/app-layout-context.js.map +1 -1
  485. package/internal/context/form-field-context.js +4 -4
  486. package/internal/context/form-field-context.js.map +1 -1
  487. package/internal/context/split-panel-context.js +3 -3
  488. package/internal/context/split-panel-context.js.map +1 -1
  489. package/internal/debounce.js +6 -11
  490. package/internal/debounce.js.map +1 -1
  491. package/internal/environment.js +1 -1
  492. package/internal/events/index.js +12 -16
  493. package/internal/events/index.js.map +1 -1
  494. package/internal/focus-tracker.js +22 -27
  495. package/internal/focus-tracker.js.map +1 -1
  496. package/internal/generated/custom-css-properties/index.js +2 -2
  497. package/internal/generated/custom-css-properties/index.js.map +1 -1
  498. package/internal/hooks/check-controlled/index.js +1 -1
  499. package/internal/hooks/check-controlled/index.js.map +1 -1
  500. package/internal/hooks/container-queries/use-container-breakpoints.js +2 -2
  501. package/internal/hooks/container-queries/use-container-breakpoints.js.map +1 -1
  502. package/internal/hooks/container-queries/use-container-query.js +5 -6
  503. package/internal/hooks/container-queries/use-container-query.js.map +1 -1
  504. package/internal/hooks/container-queries/use-resize-observer.js +13 -13
  505. package/internal/hooks/container-queries/use-resize-observer.js.map +1 -1
  506. package/internal/hooks/focus-visible/index.js +8 -8
  507. package/internal/hooks/focus-visible/index.js.map +1 -1
  508. package/internal/hooks/forward-focus/index.js +5 -9
  509. package/internal/hooks/forward-focus/index.js.map +1 -1
  510. package/internal/hooks/forward-focus/radio-group.js +7 -7
  511. package/internal/hooks/forward-focus/radio-group.js.map +1 -1
  512. package/internal/hooks/use-base-component/component-metadata.js +5 -5
  513. package/internal/hooks/use-base-component/component-metadata.js.map +1 -1
  514. package/internal/hooks/use-base-component/index.js +1 -1
  515. package/internal/hooks/use-base-component/index.js.map +1 -1
  516. package/internal/hooks/use-controllable/index.js +16 -17
  517. package/internal/hooks/use-controllable/index.js.map +1 -1
  518. package/internal/hooks/use-date-cache/index.js +2 -2
  519. package/internal/hooks/use-date-cache/index.js.map +1 -1
  520. package/internal/hooks/use-debounce-callback/index.js +3 -7
  521. package/internal/hooks/use-debounce-callback/index.js.map +1 -1
  522. package/internal/hooks/use-dynamic-overlap/index.js +4 -4
  523. package/internal/hooks/use-dynamic-overlap/index.js.map +1 -1
  524. package/internal/hooks/use-effect-on-update.js +2 -2
  525. package/internal/hooks/use-effect-on-update.js.map +1 -1
  526. package/internal/hooks/use-focus-tracker.js +7 -8
  527. package/internal/hooks/use-focus-tracker.js.map +1 -1
  528. package/internal/hooks/use-has-rendered/index.js +6 -6
  529. package/internal/hooks/use-has-rendered/index.js.map +1 -1
  530. package/internal/hooks/use-merge-refs/index.js +5 -9
  531. package/internal/hooks/use-merge-refs/index.js.map +1 -1
  532. package/internal/hooks/use-mobile/index.js +7 -7
  533. package/internal/hooks/use-mobile/index.js.map +1 -1
  534. package/internal/hooks/use-mouse-down-target.js +5 -5
  535. package/internal/hooks/use-mouse-down-target.js.map +1 -1
  536. package/internal/hooks/use-mutation-observer/index.js +5 -5
  537. package/internal/hooks/use-mutation-observer/index.js.map +1 -1
  538. package/internal/hooks/use-portal-mode-classes/index.js +10 -12
  539. package/internal/hooks/use-portal-mode-classes/index.js.map +1 -1
  540. package/internal/hooks/use-previous/index.js +3 -3
  541. package/internal/hooks/use-previous/index.js.map +1 -1
  542. package/internal/hooks/use-scroll-sync/index.js +8 -9
  543. package/internal/hooks/use-scroll-sync/index.js.map +1 -1
  544. package/internal/hooks/use-singleton-handler/index.js +12 -14
  545. package/internal/hooks/use-singleton-handler/index.js.map +1 -1
  546. package/internal/hooks/use-stable-event-handler/index.js +3 -10
  547. package/internal/hooks/use-stable-event-handler/index.js.map +1 -1
  548. package/internal/hooks/use-telemetry/index.js +2 -2
  549. package/internal/hooks/use-telemetry/index.js.map +1 -1
  550. package/internal/hooks/use-telemetry/telemetry.js +3 -4
  551. package/internal/hooks/use-telemetry/telemetry.js.map +1 -1
  552. package/internal/hooks/use-unique-id/index.js +3 -3
  553. package/internal/hooks/use-unique-id/index.js.map +1 -1
  554. package/internal/hooks/use-visual-mode/index.js +11 -11
  555. package/internal/hooks/use-visual-mode/index.js.map +1 -1
  556. package/internal/is-development.js +1 -1
  557. package/internal/is-development.js.map +1 -1
  558. package/internal/logging.js +2 -2
  559. package/internal/logging.js.map +1 -1
  560. package/internal/manifest.json +1 -1
  561. package/internal/metrics/log-clients.js +18 -27
  562. package/internal/metrics/log-clients.js.map +1 -1
  563. package/internal/metrics/metrics-formatters.js +11 -14
  564. package/internal/metrics/metrics-formatters.js.map +1 -1
  565. package/internal/metrics/metrics.js +27 -33
  566. package/internal/metrics/metrics.js.map +1 -1
  567. package/internal/motion.js +2 -2
  568. package/internal/motion.js.map +1 -1
  569. package/internal/styles/colors.js +1 -1
  570. package/internal/styles/colors.js.map +1 -1
  571. package/internal/utils/browser-scrollbar-size.js +5 -5
  572. package/internal/utils/browser-scrollbar-size.js.map +1 -1
  573. package/internal/utils/calculate-once.js +2 -2
  574. package/internal/utils/calculate-once.js.map +1 -1
  575. package/internal/utils/check-safe-url.js +4 -4
  576. package/internal/utils/check-safe-url.js.map +1 -1
  577. package/internal/utils/create-category-color-scale.js +6 -9
  578. package/internal/utils/create-category-color-scale.js.map +1 -1
  579. package/internal/utils/date-time/format-date-range.js +3 -3
  580. package/internal/utils/date-time/format-date-range.js.map +1 -1
  581. package/internal/utils/date-time/format-date.js +4 -4
  582. package/internal/utils/date-time/format-date.js.map +1 -1
  583. package/internal/utils/date-time/format-time.js +5 -5
  584. package/internal/utils/date-time/format-time.js.map +1 -1
  585. package/internal/utils/date-time/format-timezone-offset.js +4 -4
  586. package/internal/utils/date-time/format-timezone-offset.js.map +1 -1
  587. package/internal/utils/date-time/is-iso-date-only.js +1 -1
  588. package/internal/utils/date-time/is-iso-date-only.js.map +1 -1
  589. package/internal/utils/date-time/join-date-time.js +3 -3
  590. package/internal/utils/date-time/join-date-time.js.map +1 -1
  591. package/internal/utils/date-time/parse-date.js +5 -6
  592. package/internal/utils/date-time/parse-date.js.map +1 -1
  593. package/internal/utils/date-time/parse-timezone-offset.js +5 -5
  594. package/internal/utils/date-time/parse-timezone-offset.js.map +1 -1
  595. package/internal/utils/date-time/shift-timezone-offset.js +6 -6
  596. package/internal/utils/date-time/shift-timezone-offset.js.map +1 -1
  597. package/internal/utils/dom.js +12 -12
  598. package/internal/utils/dom.js.map +1 -1
  599. package/internal/utils/external-props.js +3 -3
  600. package/internal/utils/external-props.js.map +1 -1
  601. package/internal/utils/focus-svg-element.js +1 -1
  602. package/internal/utils/focus-svg-element.js.map +1 -1
  603. package/internal/utils/locale/merge-locales.js +1 -1
  604. package/internal/utils/locale/merge-locales.js.map +1 -1
  605. package/internal/utils/locale/normalize-locale.js +3 -3
  606. package/internal/utils/locale/normalize-locale.js.map +1 -1
  607. package/internal/utils/promises.js +7 -11
  608. package/internal/utils/promises.js.map +1 -1
  609. package/internal/utils/scrollable-containers.js +14 -18
  610. package/internal/utils/scrollable-containers.js.map +1 -1
  611. package/internal/utils/strings/join-strings.js +1 -5
  612. package/internal/utils/strings/join-strings.js.map +1 -1
  613. package/internal/utils/strings/pad-left-zeros.js +1 -1
  614. package/internal/utils/strings/pad-left-zeros.js.map +1 -1
  615. package/internal/utils/throttle.js +10 -15
  616. package/internal/utils/throttle.js.map +1 -1
  617. package/internal/utils/use-container-width.js +3 -5
  618. package/internal/utils/use-container-width.js.map +1 -1
  619. package/line-chart/index.js +6 -6
  620. package/line-chart/index.js.map +1 -1
  621. package/link/index.js +5 -5
  622. package/link/index.js.map +1 -1
  623. package/link/internal.js +25 -25
  624. package/link/internal.js.map +1 -1
  625. package/mixed-line-bar-chart/bar-groups.js +3 -4
  626. package/mixed-line-bar-chart/bar-groups.js.map +1 -1
  627. package/mixed-line-bar-chart/bar-series.js +24 -33
  628. package/mixed-line-bar-chart/bar-series.js.map +1 -1
  629. package/mixed-line-bar-chart/chart-container.js +123 -138
  630. package/mixed-line-bar-chart/chart-container.js.map +1 -1
  631. package/mixed-line-bar-chart/chart-filters.js +10 -17
  632. package/mixed-line-bar-chart/chart-filters.js.map +1 -1
  633. package/mixed-line-bar-chart/chart-legend.js +9 -13
  634. package/mixed-line-bar-chart/chart-legend.js.map +1 -1
  635. package/mixed-line-bar-chart/chart-popover.js +3 -4
  636. package/mixed-line-bar-chart/chart-popover.js.map +1 -1
  637. package/mixed-line-bar-chart/data-series.js +13 -17
  638. package/mixed-line-bar-chart/data-series.js.map +1 -1
  639. package/mixed-line-bar-chart/domain.js +32 -39
  640. package/mixed-line-bar-chart/domain.js.map +1 -1
  641. package/mixed-line-bar-chart/format-highlighted.js +13 -14
  642. package/mixed-line-bar-chart/format-highlighted.js.map +1 -1
  643. package/mixed-line-bar-chart/hooks/use-mouse-hover.js +32 -34
  644. package/mixed-line-bar-chart/hooks/use-mouse-hover.js.map +1 -1
  645. package/mixed-line-bar-chart/hooks/use-navigation.js +48 -57
  646. package/mixed-line-bar-chart/hooks/use-navigation.js.map +1 -1
  647. package/mixed-line-bar-chart/hooks/use-popover.js +7 -7
  648. package/mixed-line-bar-chart/hooks/use-popover.js.map +1 -1
  649. package/mixed-line-bar-chart/index.js +4 -4
  650. package/mixed-line-bar-chart/index.js.map +1 -1
  651. package/mixed-line-bar-chart/internal.js +47 -49
  652. package/mixed-line-bar-chart/internal.js.map +1 -1
  653. package/mixed-line-bar-chart/line-series.js +19 -24
  654. package/mixed-line-bar-chart/line-series.js.map +1 -1
  655. package/mixed-line-bar-chart/make-scaled-bar-groups.js +10 -11
  656. package/mixed-line-bar-chart/make-scaled-bar-groups.js.map +1 -1
  657. package/mixed-line-bar-chart/make-scaled-series.js +30 -38
  658. package/mixed-line-bar-chart/make-scaled-series.js.map +1 -1
  659. package/mixed-line-bar-chart/utils.js +18 -21
  660. package/mixed-line-bar-chart/utils.js.map +1 -1
  661. package/modal/body-scroll.js +4 -4
  662. package/modal/body-scroll.js.map +1 -1
  663. package/modal/index.js +4 -4
  664. package/modal/index.js.map +1 -1
  665. package/modal/internal.js +24 -25
  666. package/modal/internal.js.map +1 -1
  667. package/multiselect/index.js +5 -5
  668. package/multiselect/index.js.map +1 -1
  669. package/multiselect/internal.js +81 -88
  670. package/multiselect/internal.js.map +1 -1
  671. package/package.json +1 -1
  672. package/pagination/index.js +2 -3
  673. package/pagination/index.js.map +1 -1
  674. package/pagination/internal.js +16 -17
  675. package/pagination/internal.js.map +1 -1
  676. package/pagination/utils.js +12 -12
  677. package/pagination/utils.js.map +1 -1
  678. package/pie-chart/index.js +38 -39
  679. package/pie-chart/index.js.map +1 -1
  680. package/pie-chart/labels.js +38 -42
  681. package/pie-chart/labels.js.map +1 -1
  682. package/pie-chart/pie-chart.js +65 -67
  683. package/pie-chart/pie-chart.js.map +1 -1
  684. package/pie-chart/responsive-text.js +9 -10
  685. package/pie-chart/responsive-text.js.map +1 -1
  686. package/pie-chart/segments.js +27 -31
  687. package/pie-chart/segments.js.map +1 -1
  688. package/pie-chart/utils.js +32 -35
  689. package/pie-chart/utils.js.map +1 -1
  690. package/popover/arrow.js +2 -2
  691. package/popover/arrow.js.map +1 -1
  692. package/popover/body.js +16 -19
  693. package/popover/body.js.map +1 -1
  694. package/popover/container.js +52 -55
  695. package/popover/container.js.map +1 -1
  696. package/popover/index.js +6 -6
  697. package/popover/index.js.map +1 -1
  698. package/popover/internal.js +28 -28
  699. package/popover/internal.js.map +1 -1
  700. package/popover/utils/positions.js +54 -66
  701. package/popover/utils/positions.js.map +1 -1
  702. package/progress-bar/index.js +17 -17
  703. package/progress-bar/index.js.map +1 -1
  704. package/progress-bar/internal.js +12 -16
  705. package/progress-bar/internal.js.map +1 -1
  706. package/property-filter/controller.js +117 -125
  707. package/property-filter/controller.js.map +1 -1
  708. package/property-filter/filter-options.js +8 -11
  709. package/property-filter/filter-options.js.map +1 -1
  710. package/property-filter/index.js +50 -50
  711. package/property-filter/index.js.map +1 -1
  712. package/property-filter/property-editor.js +4 -5
  713. package/property-filter/property-editor.js.map +1 -1
  714. package/property-filter/property-filter-autosuggest.js +39 -39
  715. package/property-filter/property-filter-autosuggest.js.map +1 -1
  716. package/property-filter/token-editor.js +55 -66
  717. package/property-filter/token-editor.js.map +1 -1
  718. package/property-filter/token.js +9 -11
  719. package/property-filter/token.js.map +1 -1
  720. package/property-filter/use-load-items.js +8 -12
  721. package/property-filter/use-load-items.js.map +1 -1
  722. package/property-filter/utils.js +13 -18
  723. package/property-filter/utils.js.map +1 -1
  724. package/radio-group/index.js +3 -4
  725. package/radio-group/index.js.map +1 -1
  726. package/radio-group/internal.js +9 -9
  727. package/radio-group/internal.js.map +1 -1
  728. package/radio-group/radio-button.js +12 -15
  729. package/radio-group/radio-button.js.map +1 -1
  730. package/s3-resource-selector/index.js +29 -29
  731. package/s3-resource-selector/index.js.map +1 -1
  732. package/s3-resource-selector/s3-in-context/index.js +16 -18
  733. package/s3-resource-selector/s3-in-context/index.js.map +1 -1
  734. package/s3-resource-selector/s3-in-context/search-input.js +3 -4
  735. package/s3-resource-selector/s3-in-context/search-input.js.map +1 -1
  736. package/s3-resource-selector/s3-in-context/use-versions-fetch.js +16 -16
  737. package/s3-resource-selector/s3-in-context/use-versions-fetch.js.map +1 -1
  738. package/s3-resource-selector/s3-in-context/validation.js +6 -6
  739. package/s3-resource-selector/s3-in-context/validation.js.map +1 -1
  740. package/s3-resource-selector/s3-modal/basic-table.js +19 -20
  741. package/s3-resource-selector/s3-modal/basic-table.js.map +1 -1
  742. package/s3-resource-selector/s3-modal/buckets-table.js +11 -13
  743. package/s3-resource-selector/s3-modal/buckets-table.js.map +1 -1
  744. package/s3-resource-selector/s3-modal/column-formats.js +5 -5
  745. package/s3-resource-selector/s3-modal/column-formats.js.map +1 -1
  746. package/s3-resource-selector/s3-modal/empty-state.js +1 -2
  747. package/s3-resource-selector/s3-modal/empty-state.js.map +1 -1
  748. package/s3-resource-selector/s3-modal/index.js +37 -43
  749. package/s3-resource-selector/s3-modal/index.js.map +1 -1
  750. package/s3-resource-selector/s3-modal/objects-table.js +12 -14
  751. package/s3-resource-selector/s3-modal/objects-table.js.map +1 -1
  752. package/s3-resource-selector/s3-modal/table-utils.js +9 -12
  753. package/s3-resource-selector/s3-modal/table-utils.js.map +1 -1
  754. package/s3-resource-selector/s3-modal/versions-table.js +10 -12
  755. package/s3-resource-selector/s3-modal/versions-table.js.map +1 -1
  756. package/s3-resource-selector/utils.js +1 -1
  757. package/s3-resource-selector/utils.js.map +1 -1
  758. package/segmented-control/index.js +2 -3
  759. package/segmented-control/index.js.map +1 -1
  760. package/segmented-control/internal-segmented-control.js +16 -17
  761. package/segmented-control/internal-segmented-control.js.map +1 -1
  762. package/segmented-control/internal.js +14 -14
  763. package/segmented-control/internal.js.map +1 -1
  764. package/segmented-control/segment.js +3 -6
  765. package/segmented-control/segment.js.map +1 -1
  766. package/select/index.js +6 -6
  767. package/select/index.js.map +1 -1
  768. package/select/internal.js +58 -58
  769. package/select/internal.js.map +1 -1
  770. package/select/parts/filter.js +4 -4
  771. package/select/parts/filter.js.map +1 -1
  772. package/select/parts/item.js +10 -10
  773. package/select/parts/item.js.map +1 -1
  774. package/select/parts/multiselect-item.js +13 -14
  775. package/select/parts/multiselect-item.js.map +1 -1
  776. package/select/parts/plain-list.js +13 -15
  777. package/select/parts/plain-list.js.map +1 -1
  778. package/select/parts/trigger.js +7 -9
  779. package/select/parts/trigger.js.map +1 -1
  780. package/select/parts/virtual-list.js +27 -33
  781. package/select/parts/virtual-list.js.map +1 -1
  782. package/select/utils/check-option-value-field.js +2 -2
  783. package/select/utils/check-option-value-field.js.map +1 -1
  784. package/select/utils/connect-options.js +6 -7
  785. package/select/utils/connect-options.js.map +1 -1
  786. package/select/utils/get-item-props.js +4 -7
  787. package/select/utils/get-item-props.js.map +1 -1
  788. package/select/utils/render-options.js +13 -15
  789. package/select/utils/render-options.js.map +1 -1
  790. package/select/utils/use-announcement.js +10 -11
  791. package/select/utils/use-announcement.js.map +1 -1
  792. package/select/utils/use-load-items.js +16 -19
  793. package/select/utils/use-load-items.js.map +1 -1
  794. package/select/utils/use-native-search.js +20 -29
  795. package/select/utils/use-native-search.js.map +1 -1
  796. package/select/utils/use-select.js +89 -96
  797. package/select/utils/use-select.js.map +1 -1
  798. package/side-navigation/index.js +10 -10
  799. package/side-navigation/index.js.map +1 -1
  800. package/side-navigation/internal.js +35 -46
  801. package/side-navigation/internal.js.map +1 -1
  802. package/side-navigation/util.js +9 -12
  803. package/side-navigation/util.js.map +1 -1
  804. package/space-between/index.js +4 -4
  805. package/space-between/index.js.map +1 -1
  806. package/space-between/internal.js +7 -7
  807. package/space-between/internal.js.map +1 -1
  808. package/spinner/index.js +4 -4
  809. package/spinner/index.js.map +1 -1
  810. package/spinner/internal.js +4 -4
  811. package/spinner/internal.js.map +1 -1
  812. package/split-panel/bottom.js +22 -25
  813. package/split-panel/bottom.js.map +1 -1
  814. package/split-panel/icons/bottom-icon-refresh.js +11 -13
  815. package/split-panel/icons/bottom-icon-refresh.js.map +1 -1
  816. package/split-panel/icons/bottom-icon.js +1 -1
  817. package/split-panel/icons/bottom-icon.js.map +1 -1
  818. package/split-panel/icons/resize-handler.js +3 -6
  819. package/split-panel/icons/resize-handler.js.map +1 -1
  820. package/split-panel/icons/side-position-refresh.js +12 -14
  821. package/split-panel/icons/side-position-refresh.js.map +1 -1
  822. package/split-panel/icons/side-position.js +1 -1
  823. package/split-panel/icons/side-position.js.map +1 -1
  824. package/split-panel/index.js +65 -65
  825. package/split-panel/index.js.map +1 -1
  826. package/split-panel/preferences-modal.js +9 -9
  827. package/split-panel/preferences-modal.js.map +1 -1
  828. package/split-panel/side.js +12 -15
  829. package/split-panel/side.js.map +1 -1
  830. package/split-panel/utils/size-utils.js +3 -3
  831. package/split-panel/utils/size-utils.js.map +1 -1
  832. package/split-panel/utils/use-keyboard-events.js +13 -17
  833. package/split-panel/utils/use-keyboard-events.js.map +1 -1
  834. package/split-panel/utils/use-pointer-events.js +12 -13
  835. package/split-panel/utils/use-pointer-events.js.map +1 -1
  836. package/status-indicator/index.js +4 -4
  837. package/status-indicator/index.js.map +1 -1
  838. package/status-indicator/internal.js +9 -10
  839. package/status-indicator/internal.js.map +1 -1
  840. package/table/body-cell/click-away.js +9 -10
  841. package/table/body-cell/click-away.js.map +1 -1
  842. package/table/body-cell/index.js +18 -18
  843. package/table/body-cell/index.js.map +1 -1
  844. package/table/body-cell/inline-editor.js +32 -46
  845. package/table/body-cell/inline-editor.js.map +1 -1
  846. package/table/body-cell/td-element.js +2 -4
  847. package/table/body-cell/td-element.js.map +1 -1
  848. package/table/body-cell/use-stable-scroll-position.js +10 -13
  849. package/table/body-cell/use-stable-scroll-position.js.map +1 -1
  850. package/table/header-cell/index.d.ts +4 -2
  851. package/table/header-cell/index.d.ts.map +1 -1
  852. package/table/header-cell/index.js +33 -34
  853. package/table/header-cell/index.js.map +1 -1
  854. package/table/header-cell/utils.js +10 -12
  855. package/table/header-cell/utils.js.map +1 -1
  856. package/table/index.js +5 -5
  857. package/table/index.js.map +1 -1
  858. package/table/internal.d.ts.map +1 -1
  859. package/table/internal.js +94 -118
  860. package/table/internal.js.map +1 -1
  861. package/table/resizer/index.d.ts +5 -1
  862. package/table/resizer/index.d.ts.map +1 -1
  863. package/table/resizer/index.js +40 -39
  864. package/table/resizer/index.js.map +1 -1
  865. package/table/selection-control/index.d.ts +4 -1
  866. package/table/selection-control/index.d.ts.map +1 -1
  867. package/table/selection-control/index.js +11 -11
  868. package/table/selection-control/index.js.map +1 -1
  869. package/table/sticky-header.d.ts +2 -2
  870. package/table/sticky-header.d.ts.map +1 -1
  871. package/table/sticky-header.js +16 -15
  872. package/table/sticky-header.js.map +1 -1
  873. package/table/sticky-scrollbar.js +5 -6
  874. package/table/sticky-scrollbar.js.map +1 -1
  875. package/table/sticky-scrolling.js +10 -10
  876. package/table/sticky-scrolling.js.map +1 -1
  877. package/table/thead.d.ts +11 -3
  878. package/table/thead.d.ts.map +1 -1
  879. package/table/thead.js +13 -13
  880. package/table/thead.js.map +1 -1
  881. package/table/tools-header.js +4 -5
  882. package/table/tools-header.js.map +1 -1
  883. package/table/use-column-widths.js +34 -44
  884. package/table/use-column-widths.js.map +1 -1
  885. package/table/use-row-events.js +10 -11
  886. package/table/use-row-events.js.map +1 -1
  887. package/table/use-selection.js +75 -81
  888. package/table/use-selection.js.map +1 -1
  889. package/table/use-sticky-header.js +16 -16
  890. package/table/use-sticky-header.js.map +1 -1
  891. package/table/use-sticky-scrollbar.js +42 -42
  892. package/table/use-sticky-scrollbar.js.map +1 -1
  893. package/table/use-table-focus-navigation.js +27 -28
  894. package/table/use-table-focus-navigation.js.map +1 -1
  895. package/table/utils.js +7 -7
  896. package/table/utils.js.map +1 -1
  897. package/tabs/index.js +30 -33
  898. package/tabs/index.js.map +1 -1
  899. package/tabs/scroll-utils.js +12 -13
  900. package/tabs/scroll-utils.js.map +1 -1
  901. package/tabs/smooth-scroll.js +17 -17
  902. package/tabs/smooth-scroll.js.map +1 -1
  903. package/tabs/tab-header-bar.js +61 -66
  904. package/tabs/tab-header-bar.js.map +1 -1
  905. package/tag-editor/index.js +59 -72
  906. package/tag-editor/index.js.map +1 -1
  907. package/tag-editor/internal.js +21 -29
  908. package/tag-editor/internal.js.map +1 -1
  909. package/tag-editor/utils.js +7 -8
  910. package/tag-editor/utils.js.map +1 -1
  911. package/tag-editor/validation.js +16 -18
  912. package/tag-editor/validation.js.map +1 -1
  913. package/text-content/index.js +6 -6
  914. package/text-content/index.js.map +1 -1
  915. package/text-filter/index.js +3 -4
  916. package/text-filter/index.js.map +1 -1
  917. package/text-filter/internal.js +10 -10
  918. package/text-filter/internal.js.map +1 -1
  919. package/textarea/index.js +23 -24
  920. package/textarea/index.js.map +1 -1
  921. package/theming/index.js +2 -3
  922. package/theming/index.js.map +1 -1
  923. package/tiles/index.js +3 -4
  924. package/tiles/index.js.map +1 -1
  925. package/tiles/internal.js +17 -17
  926. package/tiles/internal.js.map +1 -1
  927. package/tiles/tile.js +7 -9
  928. package/tiles/tile.js.map +1 -1
  929. package/time-input/index.js +5 -5
  930. package/time-input/index.js.map +1 -1
  931. package/time-input/internal.js +9 -9
  932. package/time-input/internal.js.map +1 -1
  933. package/toggle/index.js +3 -4
  934. package/toggle/index.js.map +1 -1
  935. package/toggle/internal.js +15 -16
  936. package/toggle/internal.js.map +1 -1
  937. package/token-group/dismiss-button.js +5 -7
  938. package/token-group/dismiss-button.js.map +1 -1
  939. package/token-group/index.js +4 -4
  940. package/token-group/index.js.map +1 -1
  941. package/token-group/internal.js +14 -14
  942. package/token-group/internal.js.map +1 -1
  943. package/token-group/toggle.js +7 -9
  944. package/token-group/toggle.js.map +1 -1
  945. package/top-navigation/1.0-beta/index.js +4 -4
  946. package/top-navigation/1.0-beta/index.js.map +1 -1
  947. package/top-navigation/1.0-beta/internal.js +43 -46
  948. package/top-navigation/1.0-beta/internal.js.map +1 -1
  949. package/top-navigation/1.0-beta/parts/overflow-menu.js +16 -17
  950. package/top-navigation/1.0-beta/parts/overflow-menu.js.map +1 -1
  951. package/top-navigation/1.0-beta/parts/utility.js +9 -12
  952. package/top-navigation/1.0-beta/parts/utility.js.map +1 -1
  953. package/top-navigation/1.0-beta/use-top-navigation.js +46 -54
  954. package/top-navigation/1.0-beta/use-top-navigation.js.map +1 -1
  955. package/top-navigation/index.js +4 -4
  956. package/top-navigation/index.js.map +1 -1
  957. package/top-navigation/internal.js +64 -71
  958. package/top-navigation/internal.js.map +1 -1
  959. package/top-navigation/parts/overflow-menu/header.js +3 -4
  960. package/top-navigation/parts/overflow-menu/header.js.map +1 -1
  961. package/top-navigation/parts/overflow-menu/index.js +4 -5
  962. package/top-navigation/parts/overflow-menu/index.js.map +1 -1
  963. package/top-navigation/parts/overflow-menu/menu-item.js +56 -61
  964. package/top-navigation/parts/overflow-menu/menu-item.js.map +1 -1
  965. package/top-navigation/parts/overflow-menu/router.js +11 -13
  966. package/top-navigation/parts/overflow-menu/router.js.map +1 -1
  967. package/top-navigation/parts/overflow-menu/views/submenu.js +6 -8
  968. package/top-navigation/parts/overflow-menu/views/submenu.js.map +1 -1
  969. package/top-navigation/parts/overflow-menu/views/utilities.js +5 -7
  970. package/top-navigation/parts/overflow-menu/views/utilities.js.map +1 -1
  971. package/top-navigation/parts/utility.js +12 -15
  972. package/top-navigation/parts/utility.js.map +1 -1
  973. package/top-navigation/use-top-navigation.js +52 -59
  974. package/top-navigation/use-top-navigation.js.map +1 -1
  975. package/tutorial-panel/components/tutorial-detail-view/congratulation-screen.js +5 -7
  976. package/tutorial-panel/components/tutorial-detail-view/congratulation-screen.js.map +1 -1
  977. package/tutorial-panel/components/tutorial-detail-view/index.js +6 -7
  978. package/tutorial-panel/components/tutorial-detail-view/index.js.map +1 -1
  979. package/tutorial-panel/components/tutorial-detail-view/task-list.js +8 -15
  980. package/tutorial-panel/components/tutorial-detail-view/task-list.js.map +1 -1
  981. package/tutorial-panel/components/tutorial-detail-view/task.js +5 -6
  982. package/tutorial-panel/components/tutorial-detail-view/task.js.map +1 -1
  983. package/tutorial-panel/components/tutorial-list/index.js +19 -22
  984. package/tutorial-panel/components/tutorial-list/index.js.map +1 -1
  985. package/tutorial-panel/index.js +8 -8
  986. package/tutorial-panel/index.js.map +1 -1
  987. package/wizard/index.js +28 -28
  988. package/wizard/index.js.map +1 -1
  989. package/wizard/internal/analytics.js +32 -42
  990. package/wizard/internal/analytics.js.map +1 -1
  991. package/wizard/unmount.js +6 -13
  992. package/wizard/unmount.js.map +1 -1
  993. package/wizard/wizard-actions.js +7 -8
  994. package/wizard/wizard-actions.js.map +1 -1
  995. package/wizard/wizard-form-header.js +2 -3
  996. package/wizard/wizard-form-header.js.map +1 -1
  997. package/wizard/wizard-form.js +14 -16
  998. package/wizard/wizard-form.js.map +1 -1
  999. package/wizard/wizard-navigation.js +19 -25
  1000. package/wizard/wizard-navigation.js.map +1 -1
@@ -1,5 +1,3 @@
1
- var _a, _b, _c;
2
- import { __spreadArray } from "tslib";
3
1
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
4
2
  // SPDX-License-Identifier: Apache-2.0
5
3
  import { useState } from 'react';
@@ -9,85 +7,81 @@ import { findUpUntil } from '../internal/utils/dom';
9
7
  import { getTrackableValue } from './utils';
10
8
  import selectionStyles from './selection-control/styles.css.js';
11
9
  import { joinStrings } from '../internal/utils/strings';
12
- var SELECTION_ITEM = 'selection-item';
13
- var SELECTION_ROOT = 'selection-root';
10
+ const SELECTION_ITEM = 'selection-item';
11
+ const SELECTION_ROOT = 'selection-root';
14
12
  function findSelectionControlByIndex(rootContainer, index) {
15
13
  if (index === -1) {
16
14
  // find "select all" checkbox
17
- return rootContainer.querySelector("[data-".concat(SELECTION_ITEM, "=\"all\"] .").concat(selectionStyles.root, " input"));
15
+ return rootContainer.querySelector(`[data-${SELECTION_ITEM}="all"] .${selectionStyles.root} input`);
18
16
  }
19
- return rootContainer.querySelectorAll("[data-".concat(SELECTION_ITEM, "=\"item\"] .").concat(selectionStyles.root, " input"))[index];
17
+ return rootContainer.querySelectorAll(`[data-${SELECTION_ITEM}="item"] .${selectionStyles.root} input`)[index];
20
18
  }
21
19
  function findRootContainer(element) {
22
- return findUpUntil(element, function (node) { return node.dataset.selectionRoot === 'true'; });
20
+ return findUpUntil(element, node => node.dataset.selectionRoot === 'true');
23
21
  }
24
22
  export function useFocusMove(selectionType, totalItems) {
25
23
  if (selectionType !== 'multi') {
26
24
  return {};
27
25
  }
28
26
  function moveFocus(sourceElement, fromIndex, direction) {
29
- var index = fromIndex;
30
- var rootContainer = findRootContainer(sourceElement);
27
+ let index = fromIndex;
28
+ const rootContainer = findRootContainer(sourceElement);
31
29
  while (index >= -1 && index < totalItems) {
32
30
  index += direction;
33
- var control = findSelectionControlByIndex(rootContainer, index);
31
+ const control = findSelectionControlByIndex(rootContainer, index);
34
32
  if (control && !control.disabled) {
35
33
  control.focus();
36
34
  break;
37
35
  }
38
36
  }
39
37
  }
40
- var _a = [1, -1].map(function (direction) {
41
- return function (event) {
42
- var target = event.currentTarget;
43
- var itemNode = findUpUntil(target, function (node) { return node.dataset.selectionItem === 'item'; });
44
- var fromIndex = Array.prototype.indexOf.call(itemNode.parentElement.children, itemNode);
38
+ const [moveFocusDown, moveFocusUp] = [1, -1].map(direction => {
39
+ return (event) => {
40
+ const target = event.currentTarget;
41
+ const itemNode = findUpUntil(target, node => node.dataset.selectionItem === 'item');
42
+ const fromIndex = Array.prototype.indexOf.call(itemNode.parentElement.children, itemNode);
45
43
  moveFocus(target, fromIndex, direction);
46
44
  };
47
- }), moveFocusDown = _a[0], moveFocusUp = _a[1];
45
+ });
48
46
  return {
49
- moveFocusDown: moveFocusDown,
50
- moveFocusUp: moveFocusUp,
51
- moveFocus: moveFocus
47
+ moveFocusDown,
48
+ moveFocusUp,
49
+ moveFocus,
52
50
  };
53
51
  }
54
52
  // A set, that compares items by their "trackables" (the results of applying `trackBy` to them)
55
- var ItemSet = /** @class */ (function () {
56
- function ItemSet(trackBy, items) {
57
- var _this = this;
53
+ class ItemSet {
54
+ constructor(trackBy, items) {
58
55
  this.map = new Map();
59
- this.put = function (item) { return _this.map.set.call(_this.map, getTrackableValue(_this.trackBy, item), item); };
60
- this.has = function (item) { return _this.map.has.call(_this.map, getTrackableValue(_this.trackBy, item)); };
56
+ this.put = (item) => this.map.set.call(this.map, getTrackableValue(this.trackBy, item), item);
57
+ this.has = (item) => this.map.has.call(this.map, getTrackableValue(this.trackBy, item));
61
58
  this.forEach = this.map.forEach.bind(this.map);
62
59
  this.trackBy = trackBy;
63
60
  items.forEach(this.put);
64
61
  }
65
- return ItemSet;
66
- }());
67
- export var focusMarkers = {
68
- item: (_a = {}, _a['data-' + SELECTION_ITEM] = 'item', _a),
69
- all: (_b = {}, _b['data-' + SELECTION_ITEM] = 'all', _b),
70
- root: (_c = {}, _c['data-' + SELECTION_ROOT] = 'true', _c)
62
+ }
63
+ export const focusMarkers = {
64
+ item: { ['data-' + SELECTION_ITEM]: 'item' },
65
+ all: { ['data-' + SELECTION_ITEM]: 'all' },
66
+ root: { ['data-' + SELECTION_ROOT]: 'true' },
71
67
  };
72
- export function useSelection(_a) {
73
- var _b;
74
- var items = _a.items, _c = _a.selectedItems, selectedItems = _c === void 0 ? [] : _c, selectionType = _a.selectionType, _d = _a.isItemDisabled, isItemDisabled = _d === void 0 ? function () { return false; } : _d, trackBy = _a.trackBy, onSelectionChange = _a.onSelectionChange, ariaLabels = _a.ariaLabels;
75
- var _e = useState(false), shiftPressed = _e[0], setShiftPressed = _e[1];
76
- var _f = useState(null), lastClickedItem = _f[0], setLastClickedItem = _f[1];
77
- var selectionName = useUniqueId();
78
- var finalSelectedItems = selectionType === 'single' ? selectedItems.slice(0, 1) : selectedItems;
79
- var selectedSet = new ItemSet(trackBy, finalSelectedItems);
80
- var itemIndexesMap = new Map();
81
- items.forEach(function (item, i) { return itemIndexesMap.set(getTrackableValue(trackBy, item), i); });
82
- var isItemSelected = selectedSet.has.bind(selectedSet);
83
- var getItemState = function (item) { return ({
68
+ export function useSelection({ items, selectedItems = [], selectionType, isItemDisabled = () => false, trackBy, onSelectionChange, ariaLabels, }) {
69
+ var _a;
70
+ const [shiftPressed, setShiftPressed] = useState(false);
71
+ const [lastClickedItem, setLastClickedItem] = useState(null);
72
+ const selectionName = useUniqueId();
73
+ const finalSelectedItems = selectionType === 'single' ? selectedItems.slice(0, 1) : selectedItems;
74
+ const selectedSet = new ItemSet(trackBy, finalSelectedItems);
75
+ const itemIndexesMap = new Map();
76
+ items.forEach((item, i) => itemIndexesMap.set(getTrackableValue(trackBy, item), i));
77
+ const isItemSelected = selectedSet.has.bind(selectedSet);
78
+ const getItemState = (item) => ({
84
79
  disabled: isItemDisabled(item),
85
- selected: isItemSelected(item)
86
- }); };
87
- var _g = selectionType
88
- ? items.reduce(function (_a, item) {
89
- var allDisabled = _a[0], allEnabledSelected = _a[1];
90
- var _b = getItemState(item), disabled = _b.disabled, selected = _b.selected;
80
+ selected: isItemSelected(item),
81
+ });
82
+ const [allDisabled, allEnabledSelected] = selectionType
83
+ ? items.reduce(([allDisabled, allEnabledSelected], item) => {
84
+ const { disabled, selected } = getItemState(item);
91
85
  return [
92
86
  // all items are disabled (or none are present)
93
87
  allDisabled && disabled,
@@ -95,17 +89,17 @@ export function useSelection(_a) {
95
89
  allEnabledSelected && (selected || disabled),
96
90
  ];
97
91
  }, [true, true])
98
- : [true, true], allDisabled = _g[0], allEnabledSelected = _g[1];
92
+ : [true, true];
99
93
  // the page has at least one selected item
100
- var hasSelected = finalSelectedItems.length > 0;
101
- var handleToggleAll = function () {
102
- var requestedItems = new ItemSet(trackBy, items);
103
- var newSelectedItems = allEnabledSelected ? deselectItems(requestedItems) : selectItems(requestedItems);
94
+ const hasSelected = finalSelectedItems.length > 0;
95
+ const handleToggleAll = () => {
96
+ const requestedItems = new ItemSet(trackBy, items);
97
+ const newSelectedItems = allEnabledSelected ? deselectItems(requestedItems) : selectItems(requestedItems);
104
98
  fireNonCancelableEvent(onSelectionChange, { selectedItems: newSelectedItems });
105
99
  };
106
- var getRequestedItems = function (item) {
107
- var requestedItems = new ItemSet(trackBy, [item]);
108
- var lastClickedItemIndex = lastClickedItem ? itemIndexesMap.get(getTrackableValue(trackBy, lastClickedItem)) : -1;
100
+ const getRequestedItems = (item) => {
101
+ const requestedItems = new ItemSet(trackBy, [item]);
102
+ let lastClickedItemIndex = lastClickedItem ? itemIndexesMap.get(getTrackableValue(trackBy, lastClickedItem)) : -1;
109
103
  if (lastClickedItemIndex === undefined) {
110
104
  lastClickedItemIndex = -1;
111
105
  }
@@ -113,35 +107,35 @@ export function useSelection(_a) {
113
107
  // made previously selected item invisible, therefore we reset state for shift-select
114
108
  if (shiftPressed && lastClickedItemIndex !== -1) {
115
109
  // item is always in items
116
- var currentItemIndex = itemIndexesMap.get(getTrackableValue(trackBy, item));
117
- var start = Math.min(currentItemIndex, lastClickedItemIndex);
118
- var end = Math.max(currentItemIndex, lastClickedItemIndex);
119
- items.slice(start, end + 1).forEach(function (item) { return requestedItems.put(item); });
110
+ const currentItemIndex = itemIndexesMap.get(getTrackableValue(trackBy, item));
111
+ const start = Math.min(currentItemIndex, lastClickedItemIndex);
112
+ const end = Math.max(currentItemIndex, lastClickedItemIndex);
113
+ items.slice(start, end + 1).forEach(item => requestedItems.put(item));
120
114
  }
121
115
  return requestedItems;
122
116
  };
123
- var deselectItems = function (requestedItems) {
124
- var newSelectedItems = [];
125
- selectedItems.forEach(function (selectedItem) {
126
- var toUnselect = requestedItems.has(selectedItem);
117
+ const deselectItems = (requestedItems) => {
118
+ const newSelectedItems = [];
119
+ selectedItems.forEach(selectedItem => {
120
+ const toUnselect = requestedItems.has(selectedItem);
127
121
  if (!toUnselect || isItemDisabled(selectedItem)) {
128
122
  newSelectedItems.push(selectedItem);
129
123
  }
130
124
  });
131
125
  return newSelectedItems;
132
126
  };
133
- var selectItems = function (requestedItems) {
134
- var newSelectedItems = __spreadArray([], selectedItems, true);
135
- requestedItems.forEach(function (newItem) {
136
- var _a = getItemState(newItem), selected = _a.selected, disabled = _a.disabled;
127
+ const selectItems = (requestedItems) => {
128
+ const newSelectedItems = [...selectedItems];
129
+ requestedItems.forEach(newItem => {
130
+ const { selected, disabled } = getItemState(newItem);
137
131
  if (!selected && !disabled) {
138
132
  newSelectedItems.push(newItem);
139
133
  }
140
134
  });
141
135
  return newSelectedItems;
142
136
  };
143
- var handleToggleItem = function (item) { return function () {
144
- var _a = getItemState(item), disabled = _a.disabled, selected = _a.selected;
137
+ const handleToggleItem = (item) => () => {
138
+ const { disabled, selected } = getItemState(item);
145
139
  if (disabled || (selectionType === 'single' && selected)) {
146
140
  return;
147
141
  }
@@ -149,14 +143,14 @@ export function useSelection(_a) {
149
143
  fireNonCancelableEvent(onSelectionChange, { selectedItems: [item] });
150
144
  }
151
145
  else {
152
- var requestedItems = getRequestedItems(item);
153
- var selectedItems_1 = selected ? deselectItems(requestedItems) : selectItems(requestedItems);
154
- fireNonCancelableEvent(onSelectionChange, { selectedItems: selectedItems_1 });
146
+ const requestedItems = getRequestedItems(item);
147
+ const selectedItems = selected ? deselectItems(requestedItems) : selectItems(requestedItems);
148
+ fireNonCancelableEvent(onSelectionChange, { selectedItems });
155
149
  setLastClickedItem(item);
156
150
  }
157
- }; };
151
+ };
158
152
  return {
159
- isItemSelected: isItemSelected,
153
+ isItemSelected,
160
154
  selectAllProps: {
161
155
  name: selectionName,
162
156
  disabled: allDisabled,
@@ -164,22 +158,22 @@ export function useSelection(_a) {
164
158
  indeterminate: hasSelected && !allEnabledSelected,
165
159
  checked: hasSelected && allEnabledSelected,
166
160
  onChange: handleToggleAll,
167
- ariaLabel: joinStrings(ariaLabels === null || ariaLabels === void 0 ? void 0 : ariaLabels.selectionGroupLabel, (_b = ariaLabels === null || ariaLabels === void 0 ? void 0 : ariaLabels.allItemsSelectionLabel) === null || _b === void 0 ? void 0 : _b.call(ariaLabels, { selectedItems: selectedItems }))
161
+ ariaLabel: joinStrings(ariaLabels === null || ariaLabels === void 0 ? void 0 : ariaLabels.selectionGroupLabel, (_a = ariaLabels === null || ariaLabels === void 0 ? void 0 : ariaLabels.allItemsSelectionLabel) === null || _a === void 0 ? void 0 : _a.call(ariaLabels, { selectedItems })),
168
162
  },
169
- getItemSelectionProps: function (item) {
163
+ getItemSelectionProps: (item) => {
170
164
  var _a;
171
165
  return ({
172
166
  name: selectionName,
173
167
  selectionType: selectionType,
174
- ariaLabel: joinStrings(ariaLabels === null || ariaLabels === void 0 ? void 0 : ariaLabels.selectionGroupLabel, (_a = ariaLabels === null || ariaLabels === void 0 ? void 0 : ariaLabels.itemSelectionLabel) === null || _a === void 0 ? void 0 : _a.call(ariaLabels, { selectedItems: selectedItems }, item)),
168
+ ariaLabel: joinStrings(ariaLabels === null || ariaLabels === void 0 ? void 0 : ariaLabels.selectionGroupLabel, (_a = ariaLabels === null || ariaLabels === void 0 ? void 0 : ariaLabels.itemSelectionLabel) === null || _a === void 0 ? void 0 : _a.call(ariaLabels, { selectedItems }, item)),
175
169
  onChange: handleToggleItem(item),
176
170
  checked: isItemSelected(item),
177
- disabled: isItemDisabled(item)
171
+ disabled: isItemDisabled(item),
178
172
  });
179
173
  },
180
- updateShiftToggle: function (value) {
174
+ updateShiftToggle: (value) => {
181
175
  setShiftPressed(value);
182
- }
176
+ },
183
177
  };
184
178
  }
185
179
  //# sourceMappingURL=use-selection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-selection.js","sourceRoot":"","sources":["../../../src/table/use-selection.ts"],"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 { KeyboardEvent, useState } from 'react';\nimport { fireNonCancelableEvent } from '../internal/events';\nimport { useUniqueId } from '../internal/hooks/use-unique-id';\nimport { findUpUntil } from '../internal/utils/dom';\nimport { TableProps } from './interfaces';\nimport { getTrackableValue } from './utils';\nimport selectionStyles from './selection-control/styles.css.js';\nimport { joinStrings } from '../internal/utils/strings';\n\nconst SELECTION_ITEM = 'selection-item';\nconst SELECTION_ROOT = 'selection-root';\n\nfunction findSelectionControlByIndex(rootContainer: HTMLElement, index: number) {\n if (index === -1) {\n // find \"select all\" checkbox\n return rootContainer.querySelector<HTMLInputElement>(\n `[data-${SELECTION_ITEM}=\"all\"] .${selectionStyles.root} input`\n );\n }\n return rootContainer.querySelectorAll<HTMLInputElement>(\n `[data-${SELECTION_ITEM}=\"item\"] .${selectionStyles.root} input`\n )[index];\n}\n\nfunction findRootContainer(element: HTMLElement) {\n return findUpUntil(element, node => node.dataset.selectionRoot === 'true')!;\n}\n\nexport function useFocusMove(selectionType: TableProps['selectionType'], totalItems: number) {\n if (selectionType !== 'multi') {\n return {};\n }\n function moveFocus(sourceElement: HTMLElement, fromIndex: number, direction: -1 | 1) {\n let index = fromIndex;\n const rootContainer = findRootContainer(sourceElement);\n\n while (index >= -1 && index < totalItems) {\n index += direction;\n const control = findSelectionControlByIndex(rootContainer, index);\n if (control && !control.disabled) {\n control.focus();\n break;\n }\n }\n }\n const [moveFocusDown, moveFocusUp] = ([1, -1] as const).map(direction => {\n return (event: KeyboardEvent) => {\n const target = event.currentTarget as HTMLElement;\n const itemNode = findUpUntil(target, node => node.dataset.selectionItem === 'item')!;\n const fromIndex = Array.prototype.indexOf.call(itemNode.parentElement!.children, itemNode);\n moveFocus(target, fromIndex, direction);\n };\n });\n return {\n moveFocusDown,\n moveFocusUp,\n moveFocus,\n };\n}\n\n// A set, that compares items by their \"trackables\" (the results of applying `trackBy` to them)\nclass ItemSet<T> {\n constructor(trackBy: TableProps.TrackBy<T> | undefined, items: ReadonlyArray<T>) {\n this.trackBy = trackBy;\n items.forEach(this.put);\n }\n private trackBy: TableProps.TrackBy<T> | undefined;\n private map: Map<unknown, T> = new Map();\n put = (item: T) => this.map.set.call(this.map, getTrackableValue(this.trackBy, item), item);\n has = (item: T) => this.map.has.call(this.map, getTrackableValue(this.trackBy, item));\n forEach = this.map.forEach.bind(this.map);\n}\n\nexport const focusMarkers = {\n item: { ['data-' + SELECTION_ITEM]: 'item' },\n all: { ['data-' + SELECTION_ITEM]: 'all' },\n root: { ['data-' + SELECTION_ROOT]: 'true' },\n};\n\nexport function useSelection<T>({\n items,\n selectedItems = [],\n selectionType,\n isItemDisabled = () => false,\n trackBy,\n onSelectionChange,\n ariaLabels,\n}: Pick<\n TableProps<T>,\n 'ariaLabels' | 'items' | 'selectedItems' | 'selectionType' | 'isItemDisabled' | 'trackBy' | 'onSelectionChange'\n>) {\n const [shiftPressed, setShiftPressed] = useState(false);\n const [lastClickedItem, setLastClickedItem] = useState<T | null>(null);\n const selectionName = useUniqueId();\n const finalSelectedItems = selectionType === 'single' ? selectedItems.slice(0, 1) : selectedItems;\n const selectedSet = new ItemSet(trackBy, finalSelectedItems);\n const itemIndexesMap = new Map();\n items.forEach((item, i) => itemIndexesMap.set(getTrackableValue(trackBy, item), i));\n const isItemSelected = selectedSet.has.bind(selectedSet);\n const getItemState = (item: T) => ({\n disabled: isItemDisabled(item),\n selected: isItemSelected(item),\n });\n const [allDisabled, allEnabledSelected] = selectionType\n ? items.reduce(\n ([allDisabled, allEnabledSelected], item) => {\n const { disabled, selected } = getItemState(item);\n return [\n // all items are disabled (or none are present)\n allDisabled && disabled,\n // all enabled items are selected (or none are present)\n allEnabledSelected && (selected || disabled),\n ];\n },\n [true, true]\n )\n : [true, true];\n\n // the page has at least one selected item\n const hasSelected = finalSelectedItems.length > 0;\n\n const handleToggleAll = () => {\n const requestedItems = new ItemSet(trackBy, items);\n const newSelectedItems = allEnabledSelected ? deselectItems(requestedItems) : selectItems(requestedItems);\n fireNonCancelableEvent(onSelectionChange, { selectedItems: newSelectedItems });\n };\n\n const getRequestedItems = (item: T) => {\n const requestedItems = new ItemSet(trackBy, [item]);\n let lastClickedItemIndex = lastClickedItem ? itemIndexesMap.get(getTrackableValue(trackBy, lastClickedItem)) : -1;\n if (lastClickedItemIndex === undefined) {\n lastClickedItemIndex = -1;\n }\n // we use lastClickedItemIndex to determine if filtering/sorting/pagination\n // made previously selected item invisible, therefore we reset state for shift-select\n if (shiftPressed && lastClickedItemIndex !== -1) {\n // item is always in items\n const currentItemIndex = itemIndexesMap.get(getTrackableValue(trackBy, item)) as number;\n const start = Math.min(currentItemIndex, lastClickedItemIndex);\n const end = Math.max(currentItemIndex, lastClickedItemIndex);\n items.slice(start, end + 1).forEach(item => requestedItems.put(item));\n }\n return requestedItems;\n };\n\n const deselectItems = (requestedItems: ItemSet<T>) => {\n const newSelectedItems: Array<T> = [];\n selectedItems.forEach(selectedItem => {\n const toUnselect = requestedItems.has(selectedItem);\n if (!toUnselect || isItemDisabled(selectedItem)) {\n newSelectedItems.push(selectedItem);\n }\n });\n return newSelectedItems;\n };\n\n const selectItems = (requestedItems: ItemSet<T>) => {\n const newSelectedItems = [...selectedItems];\n requestedItems.forEach(newItem => {\n const { selected, disabled } = getItemState(newItem);\n if (!selected && !disabled) {\n newSelectedItems.push(newItem);\n }\n });\n return newSelectedItems;\n };\n\n const handleToggleItem = (item: T) => () => {\n const { disabled, selected } = getItemState(item);\n if (disabled || (selectionType === 'single' && selected)) {\n return;\n }\n if (selectionType === 'single') {\n fireNonCancelableEvent(onSelectionChange, { selectedItems: [item] });\n } else {\n const requestedItems = getRequestedItems(item);\n const selectedItems = selected ? deselectItems(requestedItems) : selectItems(requestedItems);\n fireNonCancelableEvent(onSelectionChange, { selectedItems });\n setLastClickedItem(item);\n }\n };\n return {\n isItemSelected,\n selectAllProps: {\n name: selectionName,\n disabled: allDisabled,\n selectionType: selectionType,\n indeterminate: hasSelected && !allEnabledSelected,\n checked: hasSelected && allEnabledSelected,\n onChange: handleToggleAll,\n ariaLabel: joinStrings(ariaLabels?.selectionGroupLabel, ariaLabels?.allItemsSelectionLabel?.({ selectedItems })),\n },\n getItemSelectionProps: (item: T) => ({\n name: selectionName,\n selectionType: selectionType,\n ariaLabel: joinStrings(\n ariaLabels?.selectionGroupLabel,\n ariaLabels?.itemSelectionLabel?.({ selectedItems }, item)\n ),\n onChange: handleToggleItem(item),\n checked: isItemSelected(item),\n disabled: isItemDisabled(item),\n }),\n updateShiftToggle: (value: boolean) => {\n setShiftPressed(value);\n },\n };\n}\n"]}
1
+ {"version":3,"file":"use-selection.js","sourceRoot":"","sources":["../../../src/table/use-selection.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,EAAiB,QAAQ,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,eAAe,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,cAAc,GAAG,gBAAgB,CAAC;AACxC,MAAM,cAAc,GAAG,gBAAgB,CAAC;AAExC,SAAS,2BAA2B,CAAC,aAA0B,EAAE,KAAa;IAC5E,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;QAChB,6BAA6B;QAC7B,OAAO,aAAa,CAAC,aAAa,CAChC,SAAS,cAAc,YAAY,eAAe,CAAC,IAAI,QAAQ,CAChE,CAAC;KACH;IACD,OAAO,aAAa,CAAC,gBAAgB,CACnC,SAAS,cAAc,aAAa,eAAe,CAAC,IAAI,QAAQ,CACjE,CAAC,KAAK,CAAC,CAAC;AACX,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAoB;IAC7C,OAAO,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,KAAK,MAAM,CAAE,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,aAA0C,EAAE,UAAkB;IACzF,IAAI,aAAa,KAAK,OAAO,EAAE;QAC7B,OAAO,EAAE,CAAC;KACX;IACD,SAAS,SAAS,CAAC,aAA0B,EAAE,SAAiB,EAAE,SAAiB;QACjF,IAAI,KAAK,GAAG,SAAS,CAAC;QACtB,MAAM,aAAa,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;QAEvD,OAAO,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,GAAG,UAAU,EAAE;YACxC,KAAK,IAAI,SAAS,CAAC;YACnB,MAAM,OAAO,GAAG,2BAA2B,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;YAClE,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;gBAChC,OAAO,CAAC,KAAK,EAAE,CAAC;gBAChB,MAAM;aACP;SACF;IACH,CAAC;IACD,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC,GAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAW,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;QACtE,OAAO,CAAC,KAAoB,EAAE,EAAE;YAC9B,MAAM,MAAM,GAAG,KAAK,CAAC,aAA4B,CAAC;YAClD,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,KAAK,MAAM,CAAE,CAAC;YACrF,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAC3F,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAC1C,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO;QACL,aAAa;QACb,WAAW;QACX,SAAS;KACV,CAAC;AACJ,CAAC;AAED,+FAA+F;AAC/F,MAAM,OAAO;IACX,YAAY,OAA0C,EAAE,KAAuB;QAKvE,QAAG,GAAoB,IAAI,GAAG,EAAE,CAAC;QACzC,QAAG,GAAG,CAAC,IAAO,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;QAC5F,QAAG,GAAG,CAAC,IAAO,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QACtF,YAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAPxC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;CAMF;AAED,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,EAAE,CAAC,OAAO,GAAG,cAAc,CAAC,EAAE,MAAM,EAAE;IAC5C,GAAG,EAAE,EAAE,CAAC,OAAO,GAAG,cAAc,CAAC,EAAE,KAAK,EAAE;IAC1C,IAAI,EAAE,EAAE,CAAC,OAAO,GAAG,cAAc,CAAC,EAAE,MAAM,EAAE;CAC7C,CAAC;AAEF,MAAM,UAAU,YAAY,CAAI,EAC9B,KAAK,EACL,aAAa,GAAG,EAAE,EAClB,aAAa,EACb,cAAc,GAAG,GAAG,EAAE,CAAC,KAAK,EAC5B,OAAO,EACP,iBAAiB,EACjB,UAAU,GAIX;;IACC,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAW,IAAI,CAAC,CAAC;IACvE,MAAM,aAAa,GAAG,WAAW,EAAE,CAAC;IACpC,MAAM,kBAAkB,GAAG,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;IAClG,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;IAC7D,MAAM,cAAc,GAAG,IAAI,GAAG,EAAE,CAAC;IACjC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACpF,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzD,MAAM,YAAY,GAAG,CAAC,IAAO,EAAE,EAAE,CAAC,CAAC;QACjC,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC;QAC9B,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC;KAC/B,CAAC,CAAC;IACH,MAAM,CAAC,WAAW,EAAE,kBAAkB,CAAC,GAAG,aAAa;QACrD,CAAC,CAAC,KAAK,CAAC,MAAM,CACV,CAAC,CAAC,WAAW,EAAE,kBAAkB,CAAC,EAAE,IAAI,EAAE,EAAE;YAC1C,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;YAClD,OAAO;gBACL,+CAA+C;gBAC/C,WAAW,IAAI,QAAQ;gBACvB,uDAAuD;gBACvD,kBAAkB,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC;aAC7C,CAAC;QACJ,CAAC,EACD,CAAC,IAAI,EAAE,IAAI,CAAC,CACb;QACH,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAEjB,0CAA0C;IAC1C,MAAM,WAAW,GAAG,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC;IAElD,MAAM,eAAe,GAAG,GAAG,EAAE;QAC3B,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACnD,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,CAAC,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QAC1G,sBAAsB,CAAC,iBAAiB,EAAE,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAC,CAAC;IACjF,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,CAAC,IAAO,EAAE,EAAE;QACpC,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QACpD,IAAI,oBAAoB,GAAG,eAAe,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,iBAAiB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClH,IAAI,oBAAoB,KAAK,SAAS,EAAE;YACtC,oBAAoB,GAAG,CAAC,CAAC,CAAC;SAC3B;QACD,2EAA2E;QAC3E,qFAAqF;QACrF,IAAI,YAAY,IAAI,oBAAoB,KAAK,CAAC,CAAC,EAAE;YAC/C,0BAA0B;YAC1B,MAAM,gBAAgB,GAAG,cAAc,CAAC,GAAG,CAAC,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAW,CAAC;YACxF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,oBAAoB,CAAC,CAAC;YAC/D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,oBAAoB,CAAC,CAAC;YAC7D,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;SACvE;QACD,OAAO,cAAc,CAAC;IACxB,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,CAAC,cAA0B,EAAE,EAAE;QACnD,MAAM,gBAAgB,GAAa,EAAE,CAAC;QACtC,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;YACnC,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACpD,IAAI,CAAC,UAAU,IAAI,cAAc,CAAC,YAAY,CAAC,EAAE;gBAC/C,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;aACrC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,gBAAgB,CAAC;IAC1B,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,CAAC,cAA0B,EAAE,EAAE;QACjD,MAAM,gBAAgB,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC;QAC5C,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YAC/B,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;YACrD,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE;gBAC1B,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAChC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,gBAAgB,CAAC;IAC1B,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,CAAC,IAAO,EAAE,EAAE,CAAC,GAAG,EAAE;QACzC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,QAAQ,IAAI,CAAC,aAAa,KAAK,QAAQ,IAAI,QAAQ,CAAC,EAAE;YACxD,OAAO;SACR;QACD,IAAI,aAAa,KAAK,QAAQ,EAAE;YAC9B,sBAAsB,CAAC,iBAAiB,EAAE,EAAE,aAAa,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACtE;aAAM;YACL,MAAM,cAAc,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;YAC7F,sBAAsB,CAAC,iBAAiB,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;YAC7D,kBAAkB,CAAC,IAAI,CAAC,CAAC;SAC1B;IACH,CAAC,CAAC;IACF,OAAO;QACL,cAAc;QACd,cAAc,EAAE;YACd,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE,WAAW;YACrB,aAAa,EAAE,aAAa;YAC5B,aAAa,EAAE,WAAW,IAAI,CAAC,kBAAkB;YACjD,OAAO,EAAE,WAAW,IAAI,kBAAkB;YAC1C,QAAQ,EAAE,eAAe;YACzB,SAAS,EAAE,WAAW,CAAC,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,mBAAmB,EAAE,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,sBAAsB,2DAAG,EAAE,aAAa,EAAE,CAAC,CAAC;SACjH;QACD,qBAAqB,EAAE,CAAC,IAAO,EAAE,EAAE;;YAAC,OAAA,CAAC;gBACnC,IAAI,EAAE,aAAa;gBACnB,aAAa,EAAE,aAAa;gBAC5B,SAAS,EAAE,WAAW,CACpB,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,mBAAmB,EAC/B,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,kBAAkB,2DAAG,EAAE,aAAa,EAAE,EAAE,IAAI,CAAC,CAC1D;gBACD,QAAQ,EAAE,gBAAgB,CAAC,IAAI,CAAC;gBAChC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC;gBAC7B,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC;aAC/B,CAAC,CAAA;SAAA;QACF,iBAAiB,EAAE,CAAC,KAAc,EAAE,EAAE;YACpC,eAAe,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;KACF,CAAC;AACJ,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { KeyboardEvent, useState } from 'react';\nimport { fireNonCancelableEvent } from '../internal/events';\nimport { useUniqueId } from '../internal/hooks/use-unique-id';\nimport { findUpUntil } from '../internal/utils/dom';\nimport { TableProps } from './interfaces';\nimport { getTrackableValue } from './utils';\nimport selectionStyles from './selection-control/styles.css.js';\nimport { joinStrings } from '../internal/utils/strings';\n\nconst SELECTION_ITEM = 'selection-item';\nconst SELECTION_ROOT = 'selection-root';\n\nfunction findSelectionControlByIndex(rootContainer: HTMLElement, index: number) {\n if (index === -1) {\n // find \"select all\" checkbox\n return rootContainer.querySelector<HTMLInputElement>(\n `[data-${SELECTION_ITEM}=\"all\"] .${selectionStyles.root} input`\n );\n }\n return rootContainer.querySelectorAll<HTMLInputElement>(\n `[data-${SELECTION_ITEM}=\"item\"] .${selectionStyles.root} input`\n )[index];\n}\n\nfunction findRootContainer(element: HTMLElement) {\n return findUpUntil(element, node => node.dataset.selectionRoot === 'true')!;\n}\n\nexport function useFocusMove(selectionType: TableProps['selectionType'], totalItems: number) {\n if (selectionType !== 'multi') {\n return {};\n }\n function moveFocus(sourceElement: HTMLElement, fromIndex: number, direction: -1 | 1) {\n let index = fromIndex;\n const rootContainer = findRootContainer(sourceElement);\n\n while (index >= -1 && index < totalItems) {\n index += direction;\n const control = findSelectionControlByIndex(rootContainer, index);\n if (control && !control.disabled) {\n control.focus();\n break;\n }\n }\n }\n const [moveFocusDown, moveFocusUp] = ([1, -1] as const).map(direction => {\n return (event: KeyboardEvent) => {\n const target = event.currentTarget as HTMLElement;\n const itemNode = findUpUntil(target, node => node.dataset.selectionItem === 'item')!;\n const fromIndex = Array.prototype.indexOf.call(itemNode.parentElement!.children, itemNode);\n moveFocus(target, fromIndex, direction);\n };\n });\n return {\n moveFocusDown,\n moveFocusUp,\n moveFocus,\n };\n}\n\n// A set, that compares items by their \"trackables\" (the results of applying `trackBy` to them)\nclass ItemSet<T> {\n constructor(trackBy: TableProps.TrackBy<T> | undefined, items: ReadonlyArray<T>) {\n this.trackBy = trackBy;\n items.forEach(this.put);\n }\n private trackBy: TableProps.TrackBy<T> | undefined;\n private map: Map<unknown, T> = new Map();\n put = (item: T) => this.map.set.call(this.map, getTrackableValue(this.trackBy, item), item);\n has = (item: T) => this.map.has.call(this.map, getTrackableValue(this.trackBy, item));\n forEach = this.map.forEach.bind(this.map);\n}\n\nexport const focusMarkers = {\n item: { ['data-' + SELECTION_ITEM]: 'item' },\n all: { ['data-' + SELECTION_ITEM]: 'all' },\n root: { ['data-' + SELECTION_ROOT]: 'true' },\n};\n\nexport function useSelection<T>({\n items,\n selectedItems = [],\n selectionType,\n isItemDisabled = () => false,\n trackBy,\n onSelectionChange,\n ariaLabels,\n}: Pick<\n TableProps<T>,\n 'ariaLabels' | 'items' | 'selectedItems' | 'selectionType' | 'isItemDisabled' | 'trackBy' | 'onSelectionChange'\n>) {\n const [shiftPressed, setShiftPressed] = useState(false);\n const [lastClickedItem, setLastClickedItem] = useState<T | null>(null);\n const selectionName = useUniqueId();\n const finalSelectedItems = selectionType === 'single' ? selectedItems.slice(0, 1) : selectedItems;\n const selectedSet = new ItemSet(trackBy, finalSelectedItems);\n const itemIndexesMap = new Map();\n items.forEach((item, i) => itemIndexesMap.set(getTrackableValue(trackBy, item), i));\n const isItemSelected = selectedSet.has.bind(selectedSet);\n const getItemState = (item: T) => ({\n disabled: isItemDisabled(item),\n selected: isItemSelected(item),\n });\n const [allDisabled, allEnabledSelected] = selectionType\n ? items.reduce(\n ([allDisabled, allEnabledSelected], item) => {\n const { disabled, selected } = getItemState(item);\n return [\n // all items are disabled (or none are present)\n allDisabled && disabled,\n // all enabled items are selected (or none are present)\n allEnabledSelected && (selected || disabled),\n ];\n },\n [true, true]\n )\n : [true, true];\n\n // the page has at least one selected item\n const hasSelected = finalSelectedItems.length > 0;\n\n const handleToggleAll = () => {\n const requestedItems = new ItemSet(trackBy, items);\n const newSelectedItems = allEnabledSelected ? deselectItems(requestedItems) : selectItems(requestedItems);\n fireNonCancelableEvent(onSelectionChange, { selectedItems: newSelectedItems });\n };\n\n const getRequestedItems = (item: T) => {\n const requestedItems = new ItemSet(trackBy, [item]);\n let lastClickedItemIndex = lastClickedItem ? itemIndexesMap.get(getTrackableValue(trackBy, lastClickedItem)) : -1;\n if (lastClickedItemIndex === undefined) {\n lastClickedItemIndex = -1;\n }\n // we use lastClickedItemIndex to determine if filtering/sorting/pagination\n // made previously selected item invisible, therefore we reset state for shift-select\n if (shiftPressed && lastClickedItemIndex !== -1) {\n // item is always in items\n const currentItemIndex = itemIndexesMap.get(getTrackableValue(trackBy, item)) as number;\n const start = Math.min(currentItemIndex, lastClickedItemIndex);\n const end = Math.max(currentItemIndex, lastClickedItemIndex);\n items.slice(start, end + 1).forEach(item => requestedItems.put(item));\n }\n return requestedItems;\n };\n\n const deselectItems = (requestedItems: ItemSet<T>) => {\n const newSelectedItems: Array<T> = [];\n selectedItems.forEach(selectedItem => {\n const toUnselect = requestedItems.has(selectedItem);\n if (!toUnselect || isItemDisabled(selectedItem)) {\n newSelectedItems.push(selectedItem);\n }\n });\n return newSelectedItems;\n };\n\n const selectItems = (requestedItems: ItemSet<T>) => {\n const newSelectedItems = [...selectedItems];\n requestedItems.forEach(newItem => {\n const { selected, disabled } = getItemState(newItem);\n if (!selected && !disabled) {\n newSelectedItems.push(newItem);\n }\n });\n return newSelectedItems;\n };\n\n const handleToggleItem = (item: T) => () => {\n const { disabled, selected } = getItemState(item);\n if (disabled || (selectionType === 'single' && selected)) {\n return;\n }\n if (selectionType === 'single') {\n fireNonCancelableEvent(onSelectionChange, { selectedItems: [item] });\n } else {\n const requestedItems = getRequestedItems(item);\n const selectedItems = selected ? deselectItems(requestedItems) : selectItems(requestedItems);\n fireNonCancelableEvent(onSelectionChange, { selectedItems });\n setLastClickedItem(item);\n }\n };\n return {\n isItemSelected,\n selectAllProps: {\n name: selectionName,\n disabled: allDisabled,\n selectionType: selectionType,\n indeterminate: hasSelected && !allEnabledSelected,\n checked: hasSelected && allEnabledSelected,\n onChange: handleToggleAll,\n ariaLabel: joinStrings(ariaLabels?.selectionGroupLabel, ariaLabels?.allItemsSelectionLabel?.({ selectedItems })),\n },\n getItemSelectionProps: (item: T) => ({\n name: selectionName,\n selectionType: selectionType,\n ariaLabel: joinStrings(\n ariaLabels?.selectionGroupLabel,\n ariaLabels?.itemSelectionLabel?.({ selectedItems }, item)\n ),\n onChange: handleToggleItem(item),\n checked: isItemSelected(item),\n disabled: isItemDisabled(item),\n }),\n updateShiftToggle: (value: boolean) => {\n setShiftPressed(value);\n },\n };\n}\n"]}
@@ -5,21 +5,21 @@ import { useResizeObserver } from '../internal/hooks/container-queries/use-resiz
5
5
  import stickyScrolling, { calculateScrollingOffset, scrollUpBy } from './sticky-scrolling';
6
6
  import { useMobile } from '../internal/hooks/use-mobile';
7
7
  function syncSizes(from, to) {
8
- var fromCells = Array.prototype.slice.apply(from.children);
9
- var toCells = Array.prototype.slice.apply(to.children);
10
- for (var i = 0; i < fromCells.length; i++) {
11
- var width = fromCells[i].style.width;
8
+ const fromCells = Array.prototype.slice.apply(from.children);
9
+ const toCells = Array.prototype.slice.apply(to.children);
10
+ for (let i = 0; i < fromCells.length; i++) {
11
+ let width = fromCells[i].style.width;
12
12
  // use auto if it is set by resizable columns or real size otherwise
13
13
  if (width !== 'auto') {
14
- width = "".concat(fromCells[i].offsetWidth, "px");
14
+ width = `${fromCells[i].offsetWidth}px`;
15
15
  }
16
16
  toCells[i].style.width = width;
17
17
  }
18
18
  }
19
- export var useStickyHeader = function (tableRef, theadRef, secondaryTheadRef, secondaryTableRef, tableWrapperRef) {
20
- var isMobile = useMobile();
19
+ export const useStickyHeader = (tableRef, theadRef, secondaryTheadRef, secondaryTableRef, tableWrapperRef) => {
20
+ const isMobile = useMobile();
21
21
  // Sync the sizes of the column header copies in the sticky header with the originals
22
- var syncColumnHeaderWidths = useCallback(function () {
22
+ const syncColumnHeaderWidths = useCallback(() => {
23
23
  if (tableRef.current &&
24
24
  theadRef.current &&
25
25
  secondaryTheadRef.current &&
@@ -29,28 +29,28 @@ export var useStickyHeader = function (tableRef, theadRef, secondaryTheadRef, se
29
29
  // Using the tableRef offsetWidth instead of the theadRef because in VR
30
30
  // the tableRef adds extra padding to the table and by default the theadRef will have a width
31
31
  // without the padding and will make the sticky header width incorrect.
32
- secondaryTableRef.current.style.width = "".concat(tableRef.current.offsetWidth, "px");
33
- tableWrapperRef.current.style.marginTop = "-".concat(theadRef.current.offsetHeight, "px");
32
+ secondaryTableRef.current.style.width = `${tableRef.current.offsetWidth}px`;
33
+ tableWrapperRef.current.style.marginTop = `-${theadRef.current.offsetHeight}px`;
34
34
  }
35
35
  }, [theadRef, secondaryTheadRef, secondaryTableRef, tableWrapperRef, tableRef]);
36
- useLayoutEffect(function () {
36
+ useLayoutEffect(() => {
37
37
  syncColumnHeaderWidths();
38
38
  });
39
39
  useResizeObserver(theadRef, syncColumnHeaderWidths);
40
- var scrollToTop = function () {
40
+ const scrollToTop = () => {
41
41
  if (!isMobile && theadRef.current && secondaryTheadRef.current && tableWrapperRef.current) {
42
- var scrollDist = calculateScrollingOffset(theadRef.current, secondaryTheadRef.current);
42
+ const scrollDist = calculateScrollingOffset(theadRef.current, secondaryTheadRef.current);
43
43
  if (scrollDist > 0) {
44
44
  scrollUpBy(scrollDist, tableWrapperRef.current);
45
45
  }
46
46
  }
47
47
  };
48
- var scrollToItem = stickyScrolling(tableWrapperRef, secondaryTheadRef).scrollToItem;
49
- var scrollToRow = function (itemNode) {
48
+ const { scrollToItem } = stickyScrolling(tableWrapperRef, secondaryTheadRef);
49
+ const scrollToRow = (itemNode) => {
50
50
  if (!isMobile) {
51
51
  scrollToItem(itemNode);
52
52
  }
53
53
  };
54
- return { scrollToRow: scrollToRow, scrollToTop: scrollToTop };
54
+ return { scrollToRow, scrollToTop };
55
55
  };
56
56
  //# sourceMappingURL=use-sticky-header.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-sticky-header.js","sourceRoot":"","sources":["../../../src/table/use-sticky-header.ts"],"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 { useLayoutEffect, RefObject, useCallback } from 'react';\nimport { useResizeObserver } from '../internal/hooks/container-queries/use-resize-observer';\nimport stickyScrolling, { calculateScrollingOffset, scrollUpBy } from './sticky-scrolling';\nimport { useMobile } from '../internal/hooks/use-mobile';\n\nfunction syncSizes(from: HTMLElement, to: HTMLElement) {\n const fromCells = Array.prototype.slice.apply(from.children);\n const toCells = Array.prototype.slice.apply(to.children);\n for (let i = 0; i < fromCells.length; i++) {\n let width = fromCells[i].style.width;\n // use auto if it is set by resizable columns or real size otherwise\n if (width !== 'auto') {\n width = `${fromCells[i].offsetWidth}px`;\n }\n toCells[i].style.width = width;\n }\n}\n\nexport const useStickyHeader = (\n tableRef: RefObject<HTMLElement>,\n theadRef: RefObject<HTMLElement>,\n secondaryTheadRef: RefObject<HTMLElement>,\n secondaryTableRef: RefObject<HTMLElement>,\n tableWrapperRef: RefObject<HTMLElement>\n) => {\n const isMobile = useMobile();\n // Sync the sizes of the column header copies in the sticky header with the originals\n const syncColumnHeaderWidths = useCallback(() => {\n if (\n tableRef.current &&\n theadRef.current &&\n secondaryTheadRef.current &&\n secondaryTableRef.current &&\n tableWrapperRef.current\n ) {\n syncSizes(theadRef.current, secondaryTheadRef.current);\n\n // Using the tableRef offsetWidth instead of the theadRef because in VR\n // the tableRef adds extra padding to the table and by default the theadRef will have a width\n // without the padding and will make the sticky header width incorrect.\n secondaryTableRef.current.style.width = `${tableRef.current.offsetWidth}px`;\n\n tableWrapperRef.current.style.marginTop = `-${theadRef.current.offsetHeight}px`;\n }\n }, [theadRef, secondaryTheadRef, secondaryTableRef, tableWrapperRef, tableRef]);\n useLayoutEffect(() => {\n syncColumnHeaderWidths();\n });\n useResizeObserver(theadRef, syncColumnHeaderWidths);\n const scrollToTop = () => {\n if (!isMobile && theadRef.current && secondaryTheadRef.current && tableWrapperRef.current) {\n const scrollDist = calculateScrollingOffset(theadRef.current, secondaryTheadRef.current);\n if (scrollDist > 0) {\n scrollUpBy(scrollDist, tableWrapperRef.current);\n }\n }\n };\n const { scrollToItem } = stickyScrolling(tableWrapperRef, secondaryTheadRef);\n const scrollToRow = (itemNode: HTMLElement | null) => {\n if (!isMobile) {\n scrollToItem(itemNode);\n }\n };\n return { scrollToRow, scrollToTop };\n};\n"]}
1
+ {"version":3,"file":"use-sticky-header.js","sourceRoot":"","sources":["../../../src/table/use-sticky-header.ts"],"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 { useLayoutEffect, RefObject, useCallback } from 'react';\nimport { useResizeObserver } from '../internal/hooks/container-queries/use-resize-observer';\nimport stickyScrolling, { calculateScrollingOffset, scrollUpBy } from './sticky-scrolling';\nimport { useMobile } from '../internal/hooks/use-mobile';\n\nfunction syncSizes(from: HTMLElement, to: HTMLElement) {\n const fromCells = Array.prototype.slice.apply(from.children);\n const toCells = Array.prototype.slice.apply(to.children);\n for (let i = 0; i < fromCells.length; i++) {\n let width = fromCells[i].style.width;\n // use auto if it is set by resizable columns or real size otherwise\n if (width !== 'auto') {\n width = `${fromCells[i].offsetWidth}px`;\n }\n toCells[i].style.width = width;\n }\n}\n\nexport const useStickyHeader = (\n tableRef: RefObject<HTMLElement>,\n theadRef: RefObject<HTMLElement>,\n secondaryTheadRef: RefObject<HTMLElement>,\n secondaryTableRef: RefObject<HTMLElement>,\n tableWrapperRef: RefObject<HTMLElement>\n) => {\n const isMobile = useMobile();\n // Sync the sizes of the column header copies in the sticky header with the originals\n const syncColumnHeaderWidths = useCallback(() => {\n if (\n tableRef.current &&\n theadRef.current &&\n secondaryTheadRef.current &&\n secondaryTableRef.current &&\n tableWrapperRef.current\n ) {\n syncSizes(theadRef.current, secondaryTheadRef.current);\n\n // Using the tableRef offsetWidth instead of the theadRef because in VR\n // the tableRef adds extra padding to the table and by default the theadRef will have a width\n // without the padding and will make the sticky header width incorrect.\n secondaryTableRef.current.style.width = `${tableRef.current.offsetWidth}px`;\n\n tableWrapperRef.current.style.marginTop = `-${theadRef.current.offsetHeight}px`;\n }\n }, [theadRef, secondaryTheadRef, secondaryTableRef, tableWrapperRef, tableRef]);\n useLayoutEffect(() => {\n syncColumnHeaderWidths();\n });\n useResizeObserver(theadRef, syncColumnHeaderWidths);\n const scrollToTop = () => {\n if (!isMobile && theadRef.current && secondaryTheadRef.current && tableWrapperRef.current) {\n const scrollDist = calculateScrollingOffset(theadRef.current, secondaryTheadRef.current);\n if (scrollDist > 0) {\n scrollUpBy(scrollDist, tableWrapperRef.current);\n }\n }\n };\n const { scrollToItem } = stickyScrolling(tableWrapperRef, secondaryTheadRef);\n const scrollToRow = (itemNode: HTMLElement | null) => {\n if (!isMobile) {\n scrollToItem(itemNode);\n }\n };\n return { scrollToRow, scrollToTop };\n};\n"]}
@@ -6,29 +6,29 @@ import styles from './styles.css.js';
6
6
  import { getOverflowParentDimensions, getOverflowParents } from '../internal/utils/scrollable-containers';
7
7
  import { browserScrollbarSize } from '../internal/utils/browser-scrollbar-size';
8
8
  import { supportsStickyPosition, getContainingBlock } from '../internal/utils/dom';
9
- var updatePosition = function (tableEl, wrapperEl, scrollbarEl, scrollbarContentEl, hasContainingBlock, consideredFooterHeight) {
9
+ const updatePosition = (tableEl, wrapperEl, scrollbarEl, scrollbarContentEl, hasContainingBlock, consideredFooterHeight) => {
10
10
  if (!tableEl || !scrollbarEl || !wrapperEl) {
11
11
  return;
12
12
  }
13
13
  // parent is either some container or document itself
14
- var parent = getOverflowParentDimensions(wrapperEl)[0];
15
- var parentBottom = parent.top + parent.height;
14
+ const parent = getOverflowParentDimensions(wrapperEl)[0];
15
+ const parentBottom = parent.top + parent.height;
16
16
  // table bottom is visible when
17
17
  // 1. table bottom reached end of the window
18
18
  // 2. table bottom is not overlapped by footer
19
- var _a = tableEl.getBoundingClientRect(), tableTop = _a.top, tableBottom = _a.bottom, tableWidth = _a.width;
20
- var wrapperWidth = wrapperEl.getBoundingClientRect().width;
19
+ const { top: tableTop, bottom: tableBottom, width: tableWidth } = tableEl.getBoundingClientRect();
20
+ const { width: wrapperWidth } = wrapperEl.getBoundingClientRect();
21
21
  //scrollbar correction is needed for
22
22
  // #1 when scrollbars are constantly visible,
23
23
  // we want no visible break when switching between fake and real scrollbars
24
24
  // #2 when scrollbars are visible only on scrolling and half transparent (on mac)
25
25
  // we want to avoid any overlap between fake and real scrollbar
26
26
  // using 15 px as a height of transparent scrollbar on mac
27
- var scrollbarHeight = browserScrollbarSize().height;
28
- var scrollBarCorrection = scrollbarHeight > 0 ? scrollbarHeight : -15 / 2;
29
- var tableBottomIsVisible = parentBottom - consideredFooterHeight >= tableBottom + scrollBarCorrection;
30
- var tableTopIsHidden = tableTop >= parentBottom - consideredFooterHeight - scrollBarCorrection;
31
- var areaIsScrollable = tableWidth > wrapperWidth;
27
+ const scrollbarHeight = browserScrollbarSize().height;
28
+ const scrollBarCorrection = scrollbarHeight > 0 ? scrollbarHeight : -15 / 2;
29
+ const tableBottomIsVisible = parentBottom - consideredFooterHeight >= tableBottom + scrollBarCorrection;
30
+ const tableTopIsHidden = tableTop >= parentBottom - consideredFooterHeight - scrollBarCorrection;
31
+ const areaIsScrollable = tableWidth > wrapperWidth;
32
32
  if (tableBottomIsVisible || tableTopIsHidden || !areaIsScrollable) {
33
33
  scrollbarEl.classList.remove(styles['sticky-scrollbar-visible']);
34
34
  }
@@ -36,28 +36,28 @@ var updatePosition = function (tableEl, wrapperEl, scrollbarEl, scrollbarContent
36
36
  // when scrollbar is not displayed scrollLeft property cannot be set by useScrollSync
37
37
  // that's why syncing it separately
38
38
  if (!scrollbarEl.classList.contains(styles['sticky-scrollbar-visible'])) {
39
- requestAnimationFrame(function () {
39
+ requestAnimationFrame(() => {
40
40
  scrollbarEl.scrollLeft = wrapperEl.scrollLeft;
41
41
  });
42
42
  }
43
43
  scrollbarEl.classList.add(styles['sticky-scrollbar-visible']);
44
44
  }
45
45
  if (scrollbarHeight && scrollbarEl && scrollbarContentEl) {
46
- scrollbarEl.style.height = "".concat(scrollbarHeight, "px");
47
- scrollbarContentEl.style.height = "".concat(scrollbarHeight, "px");
46
+ scrollbarEl.style.height = `${scrollbarHeight}px`;
47
+ scrollbarContentEl.style.height = `${scrollbarHeight}px`;
48
48
  }
49
49
  if (tableEl && wrapperEl && scrollbarContentEl && scrollbarEl) {
50
- var parent_1 = getOverflowParentDimensions(wrapperEl)[0];
51
- var wrapperElRect = wrapperEl.getBoundingClientRect();
52
- var tableElRect = tableEl.getBoundingClientRect();
53
- scrollbarEl.style.width = "".concat(wrapperElRect.width, "px");
54
- scrollbarContentEl.style.width = "".concat(tableElRect.width, "px");
50
+ const parent = getOverflowParentDimensions(wrapperEl)[0];
51
+ const wrapperElRect = wrapperEl.getBoundingClientRect();
52
+ const tableElRect = tableEl.getBoundingClientRect();
53
+ scrollbarEl.style.width = `${wrapperElRect.width}px`;
54
+ scrollbarContentEl.style.width = `${tableElRect.width}px`;
55
55
  // when using sticky scrollbars in containers
56
56
  // we agreed to ignore dynamic bottom calculations for footer overlap
57
- scrollbarEl.style.left = hasContainingBlock ? '0px' : "".concat(wrapperElRect.left, "px");
57
+ scrollbarEl.style.left = hasContainingBlock ? '0px' : `${wrapperElRect.left}px`;
58
58
  scrollbarEl.style.top = hasContainingBlock
59
59
  ? '0px'
60
- : "".concat(Math.min(parent_1.top + parent_1.height, window.innerHeight - consideredFooterHeight), "px");
60
+ : `${Math.min(parent.top + parent.height, window.innerHeight - consideredFooterHeight)}px`;
61
61
  }
62
62
  };
63
63
  export function useStickyScrollbar(scrollbarRef, scrollbarContentRef, tableRef, wrapperRef, footerHeight) {
@@ -65,52 +65,52 @@ export function useStickyScrollbar(scrollbarRef, scrollbarContentRef, tableRef,
65
65
  // unnecessarily overcomplicate the position logic. For now, we assume that a
66
66
  // containing block, if present, is below the app layout and above the overflow
67
67
  // parent, which is a pretty safe assumption.
68
- var _a = useState(false), hasContainingBlock = _a[0], setHasContainingBlock = _a[1];
68
+ const [hasContainingBlock, setHasContainingBlock] = useState(false);
69
69
  // We don't take into account footer height when the overflow parent is child of document body.
70
70
  // Because in this case, we think the footer is outside the overflow parent.
71
- var _b = useState(false), hasOverflowParent = _b[0], setHasOverflowParent = _b[1];
72
- var consideredFooterHeight = hasContainingBlock || hasOverflowParent ? 0 : footerHeight;
73
- useEffect(function () {
71
+ const [hasOverflowParent, setHasOverflowParent] = useState(false);
72
+ const consideredFooterHeight = hasContainingBlock || hasOverflowParent ? 0 : footerHeight;
73
+ useEffect(() => {
74
74
  if (supportsStickyPosition()) {
75
- var scrollHandler_1 = function () {
75
+ const scrollHandler = () => {
76
76
  updatePosition(tableRef.current, wrapperRef.current, scrollbarRef.current, scrollbarContentRef.current, hasContainingBlock, consideredFooterHeight);
77
77
  };
78
- scrollHandler_1();
79
- window.addEventListener('scroll', scrollHandler_1, true);
80
- return function () {
81
- window.removeEventListener('scroll', scrollHandler_1, true);
78
+ scrollHandler();
79
+ window.addEventListener('scroll', scrollHandler, true);
80
+ return () => {
81
+ window.removeEventListener('scroll', scrollHandler, true);
82
82
  };
83
83
  }
84
84
  }, [scrollbarRef, tableRef, wrapperRef, consideredFooterHeight, scrollbarContentRef, hasContainingBlock]);
85
- var wrapperEl = wrapperRef.current;
86
- useEffect(function () {
85
+ const wrapperEl = wrapperRef.current;
86
+ useEffect(() => {
87
87
  if (wrapperEl && supportsStickyPosition()) {
88
88
  setHasContainingBlock(!!getContainingBlock(wrapperEl));
89
89
  setHasOverflowParent(!!getOverflowParents(wrapperEl)[0]);
90
90
  }
91
91
  }, [wrapperEl]);
92
- useEffect(function () {
92
+ useEffect(() => {
93
93
  if (supportsStickyPosition() && tableRef.current) {
94
- var observer_1 = new ResizeObserver(function (entries) {
94
+ const observer = new ResizeObserver(entries => {
95
95
  if (scrollbarContentRef.current) {
96
- scrollbarContentRef.current.style.width = "".concat(entries[0].borderBoxSize[0].inlineSize, "px");
96
+ scrollbarContentRef.current.style.width = `${entries[0].borderBoxSize[0].inlineSize}px`;
97
97
  updatePosition(tableRef.current, wrapperRef.current, scrollbarRef.current, scrollbarContentRef.current, hasContainingBlock, consideredFooterHeight);
98
98
  }
99
99
  });
100
- observer_1.observe(tableRef.current);
101
- return function () {
102
- observer_1.disconnect();
100
+ observer.observe(tableRef.current);
101
+ return () => {
102
+ observer.disconnect();
103
103
  };
104
104
  }
105
105
  }, [scrollbarContentRef, scrollbarRef, tableRef, wrapperRef, consideredFooterHeight, hasContainingBlock]);
106
- useEffect(function () {
106
+ useEffect(() => {
107
107
  if (supportsStickyPosition()) {
108
- var resizeHandler_1 = function () {
108
+ const resizeHandler = () => {
109
109
  updatePosition(tableRef.current, wrapperRef.current, scrollbarRef.current, scrollbarContentRef.current, hasContainingBlock, consideredFooterHeight);
110
110
  };
111
- window.addEventListener('resize', resizeHandler_1);
112
- return function () {
113
- window.removeEventListener('resize', resizeHandler_1);
111
+ window.addEventListener('resize', resizeHandler);
112
+ return () => {
113
+ window.removeEventListener('resize', resizeHandler);
114
114
  };
115
115
  }
116
116
  }, [tableRef, wrapperRef, scrollbarRef, scrollbarContentRef, hasContainingBlock, consideredFooterHeight]);