@workday/canvas-kit-react 6.0.0-beta.0-next.13 → 6.0.0

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 (677) hide show
  1. package/action-bar/lib/ActionBar.tsx +43 -30
  2. package/button/lib/PrimaryButton.tsx +110 -32
  3. package/button/lib/SecondaryButton.tsx +31 -16
  4. package/button/lib/TertiaryButton.tsx +45 -36
  5. package/button/lib/parts/ButtonContainer.tsx +18 -5
  6. package/button/lib/parts/ButtonLabelIcon.tsx +34 -14
  7. package/button/lib/types.ts +11 -0
  8. package/common/index.ts +1 -0
  9. package/common/lib/EllipsisText.tsx +11 -0
  10. package/common/lib/styles/accessibleHide.ts +2 -2
  11. package/common/lib/theming/README.md +189 -25
  12. package/common/lib/theming/breakpoints.ts +296 -16
  13. package/common/lib/theming/types.ts +191 -1
  14. package/common/lib/utils/components.ts +50 -23
  15. package/common/lib/utils/index.ts +1 -0
  16. package/common/lib/utils/mergeProps.ts +4 -0
  17. package/common/lib/utils/useConstant.ts +18 -0
  18. package/common/lib/utils/useResizeObserver.ts +29 -0
  19. package/common/lib/utils/useUniqueId.ts +4 -3
  20. package/cookie-banner/README.md +15 -10
  21. package/cookie-banner/index.ts +3 -3
  22. package/cookie-banner/lib/CookieBanner.tsx +29 -4
  23. package/dist/commonjs/action-bar/lib/ActionBar.d.ts.map +1 -1
  24. package/dist/commonjs/action-bar/lib/ActionBar.js +35 -27
  25. package/dist/commonjs/button/lib/PrimaryButton.d.ts +80 -6
  26. package/dist/commonjs/button/lib/PrimaryButton.d.ts.map +1 -1
  27. package/dist/commonjs/button/lib/PrimaryButton.js +80 -26
  28. package/dist/commonjs/button/lib/SecondaryButton.d.ts +8 -5
  29. package/dist/commonjs/button/lib/SecondaryButton.d.ts.map +1 -1
  30. package/dist/commonjs/button/lib/SecondaryButton.js +22 -12
  31. package/dist/commonjs/button/lib/TertiaryButton.d.ts +8 -4
  32. package/dist/commonjs/button/lib/TertiaryButton.d.ts.map +1 -1
  33. package/dist/commonjs/button/lib/TertiaryButton.js +24 -20
  34. package/dist/commonjs/button/lib/parts/ButtonContainer.d.ts +5 -3
  35. package/dist/commonjs/button/lib/parts/ButtonContainer.d.ts.map +1 -1
  36. package/dist/commonjs/button/lib/parts/ButtonContainer.js +7 -9
  37. package/dist/commonjs/button/lib/parts/ButtonLabel.d.ts +1 -1
  38. package/dist/commonjs/button/lib/parts/ButtonLabel.d.ts.map +1 -1
  39. package/dist/commonjs/button/lib/parts/ButtonLabelIcon.d.ts +7 -4
  40. package/dist/commonjs/button/lib/parts/ButtonLabelIcon.d.ts.map +1 -1
  41. package/dist/commonjs/button/lib/parts/ButtonLabelIcon.js +28 -13
  42. package/dist/commonjs/button/lib/types.d.ts +9 -0
  43. package/dist/commonjs/button/lib/types.d.ts.map +1 -1
  44. package/dist/commonjs/common/index.d.ts +1 -0
  45. package/dist/commonjs/common/index.d.ts.map +1 -1
  46. package/dist/commonjs/common/index.js +1 -0
  47. package/dist/commonjs/common/lib/EllipsisText.d.ts +5 -0
  48. package/dist/commonjs/common/lib/EllipsisText.d.ts.map +1 -0
  49. package/dist/commonjs/common/lib/EllipsisText.js +13 -0
  50. package/dist/commonjs/common/lib/styles/accessibleHide.d.ts +2 -2
  51. package/dist/commonjs/common/lib/styles/accessibleHide.d.ts.map +1 -1
  52. package/dist/commonjs/common/lib/theming/breakpoints.d.ts +287 -6
  53. package/dist/commonjs/common/lib/theming/breakpoints.d.ts.map +1 -1
  54. package/dist/commonjs/common/lib/theming/breakpoints.js +192 -10
  55. package/dist/commonjs/common/lib/theming/types.d.ts +191 -1
  56. package/dist/commonjs/common/lib/theming/types.d.ts.map +1 -1
  57. package/dist/commonjs/common/lib/utils/components.d.ts +19 -9
  58. package/dist/commonjs/common/lib/utils/components.d.ts.map +1 -1
  59. package/dist/commonjs/common/lib/utils/components.js +12 -2
  60. package/dist/commonjs/common/lib/utils/index.d.ts +1 -0
  61. package/dist/commonjs/common/lib/utils/index.d.ts.map +1 -1
  62. package/dist/commonjs/common/lib/utils/index.js +1 -0
  63. package/dist/commonjs/common/lib/utils/mergeProps.d.ts.map +1 -1
  64. package/dist/commonjs/common/lib/utils/mergeProps.js +5 -0
  65. package/dist/commonjs/common/lib/utils/useConstant.d.ts +9 -0
  66. package/dist/commonjs/common/lib/utils/useConstant.d.ts.map +1 -0
  67. package/dist/commonjs/common/lib/utils/useConstant.js +18 -0
  68. package/dist/commonjs/common/lib/utils/useResizeObserver.d.ts +3 -0
  69. package/dist/commonjs/common/lib/utils/useResizeObserver.d.ts.map +1 -0
  70. package/dist/commonjs/common/lib/utils/useResizeObserver.js +42 -0
  71. package/dist/commonjs/common/lib/utils/useUniqueId.d.ts.map +1 -1
  72. package/dist/commonjs/common/lib/utils/useUniqueId.js +3 -10
  73. package/dist/commonjs/cookie-banner/index.d.ts +3 -3
  74. package/dist/commonjs/cookie-banner/index.d.ts.map +1 -1
  75. package/dist/commonjs/cookie-banner/index.js +1 -1
  76. package/dist/commonjs/cookie-banner/lib/CookieBanner.d.ts +19 -2
  77. package/dist/commonjs/cookie-banner/lib/CookieBanner.d.ts.map +1 -1
  78. package/dist/commonjs/cookie-banner/lib/CookieBanner.js +19 -8
  79. package/dist/commonjs/dialog/lib/hooks/useDialogCard.d.ts +4 -16
  80. package/dist/commonjs/dialog/lib/hooks/useDialogCard.d.ts.map +1 -1
  81. package/dist/commonjs/dialog/lib/hooks/useDialogPopper.d.ts +5 -2
  82. package/dist/commonjs/dialog/lib/hooks/useDialogPopper.d.ts.map +1 -1
  83. package/dist/commonjs/modal/lib/ModalOverlay.d.ts +4 -2
  84. package/dist/commonjs/modal/lib/ModalOverlay.d.ts.map +1 -1
  85. package/dist/commonjs/modal/lib/hooks/useModalCard.d.ts +4 -16
  86. package/dist/commonjs/modal/lib/hooks/useModalCard.d.ts.map +1 -1
  87. package/dist/commonjs/modal/lib/hooks/useModalHeading.d.ts +5 -17
  88. package/dist/commonjs/modal/lib/hooks/useModalHeading.d.ts.map +1 -1
  89. package/dist/commonjs/page-header/index.d.ts +3 -3
  90. package/dist/commonjs/page-header/index.d.ts.map +1 -1
  91. package/dist/commonjs/page-header/index.js +1 -1
  92. package/dist/commonjs/page-header/lib/PageHeader.d.ts +19 -2
  93. package/dist/commonjs/page-header/lib/PageHeader.d.ts.map +1 -1
  94. package/dist/commonjs/page-header/lib/PageHeader.js +18 -7
  95. package/dist/commonjs/pagination/lib/Pagination/GoTo/Label.d.ts +3 -0
  96. package/dist/commonjs/pagination/lib/Pagination/GoTo/Label.d.ts.map +1 -1
  97. package/dist/commonjs/pagination/lib/Pagination/PageList.d.ts +1 -1
  98. package/dist/commonjs/pagination/lib/Pagination/PageList.d.ts.map +1 -1
  99. package/dist/commonjs/pagination/lib/Pagination/Pagination.d.ts +5 -5
  100. package/dist/commonjs/pagination/lib/Pagination/common/List.d.ts +1 -1
  101. package/dist/commonjs/pagination/lib/Pagination/common/List.d.ts.map +1 -1
  102. package/dist/commonjs/pagination/lib/Pagination/common/utils/getValidChildren.d.ts +1 -1
  103. package/dist/commonjs/pagination/lib/Pagination/common/utils/getValidChildren.d.ts.map +1 -1
  104. package/dist/commonjs/pagination/lib/Pagination/common/utils/space.d.ts +28 -28
  105. package/dist/commonjs/pagination/lib/Pagination/types.d.ts +39 -0
  106. package/dist/commonjs/pagination/lib/Pagination/types.d.ts.map +1 -1
  107. package/dist/commonjs/pagination/lib/Pagination/usePaginationModel.d.ts +19 -0
  108. package/dist/commonjs/pagination/lib/Pagination/usePaginationModel.d.ts.map +1 -1
  109. package/dist/commonjs/popup/lib/PopupCard.d.ts.map +1 -1
  110. package/dist/commonjs/popup/lib/PopupCard.js +2 -3
  111. package/dist/commonjs/popup/lib/hooks/usePopupCard.d.ts +5 -2
  112. package/dist/commonjs/popup/lib/hooks/usePopupCard.d.ts.map +1 -1
  113. package/dist/commonjs/popup/lib/hooks/usePopupCloseButton.d.ts +4 -2
  114. package/dist/commonjs/popup/lib/hooks/usePopupCloseButton.d.ts.map +1 -1
  115. package/dist/commonjs/popup/lib/hooks/usePopupHeading.d.ts +5 -2
  116. package/dist/commonjs/popup/lib/hooks/usePopupHeading.d.ts.map +1 -1
  117. package/dist/commonjs/popup/lib/hooks/usePopupPopper.d.ts +4 -2
  118. package/dist/commonjs/popup/lib/hooks/usePopupPopper.d.ts.map +1 -1
  119. package/dist/commonjs/popup/lib/hooks/usePopupTarget.d.ts +4 -2
  120. package/dist/commonjs/popup/lib/hooks/usePopupTarget.d.ts.map +1 -1
  121. package/dist/commonjs/tabs/index.d.ts +5 -0
  122. package/dist/commonjs/tabs/index.d.ts.map +1 -1
  123. package/dist/commonjs/tabs/index.js +11 -0
  124. package/dist/commonjs/tabs/lib/Tabs.d.ts +35 -7
  125. package/dist/commonjs/tabs/lib/Tabs.d.ts.map +1 -1
  126. package/dist/commonjs/tabs/lib/Tabs.js +28 -7
  127. package/dist/commonjs/tabs/lib/TabsItem.d.ts +107 -0
  128. package/dist/commonjs/tabs/lib/TabsItem.d.ts.map +1 -0
  129. package/dist/commonjs/tabs/lib/TabsItem.js +140 -0
  130. package/dist/commonjs/tabs/lib/TabsList.d.ts +43 -0
  131. package/dist/commonjs/tabs/lib/TabsList.d.ts.map +1 -0
  132. package/dist/commonjs/tabs/lib/TabsList.js +53 -0
  133. package/dist/commonjs/tabs/lib/TabsMenuPopper.d.ts +21 -0
  134. package/dist/commonjs/tabs/lib/TabsMenuPopper.d.ts.map +1 -0
  135. package/dist/commonjs/tabs/lib/{TabList.js → TabsMenuPopper.js} +7 -19
  136. package/dist/commonjs/tabs/lib/TabsOverflowButton.d.ts +31 -0
  137. package/dist/commonjs/tabs/lib/TabsOverflowButton.d.ts.map +1 -0
  138. package/dist/commonjs/tabs/lib/TabsOverflowButton.js +57 -0
  139. package/{ts3.5/dist/commonjs/tabs/lib/TabPanel.d.ts → dist/commonjs/tabs/lib/TabsPanel.d.ts} +39 -29
  140. package/dist/commonjs/tabs/lib/TabsPanel.d.ts.map +1 -0
  141. package/dist/commonjs/tabs/lib/TabsPanel.js +64 -0
  142. package/dist/{es6/tabs/lib/TabList.d.ts → commonjs/tabs/lib/TabsPanels.d.ts} +5 -5
  143. package/dist/commonjs/tabs/lib/TabsPanels.d.ts.map +1 -0
  144. package/dist/commonjs/tabs/lib/TabsPanels.js +21 -0
  145. package/dist/commonjs/tabs/lib/cursor/index.d.ts +1 -1
  146. package/dist/commonjs/tabs/lib/cursor/index.d.ts.map +1 -1
  147. package/dist/commonjs/tabs/lib/cursor/index.js +1 -1
  148. package/dist/commonjs/tabs/lib/cursor/useCursorModel.d.ts +23 -13
  149. package/dist/commonjs/tabs/lib/cursor/useCursorModel.d.ts.map +1 -1
  150. package/dist/commonjs/tabs/lib/cursor/useCursorModel.js +50 -49
  151. package/dist/commonjs/tabs/lib/cursor/useRovingFocus.d.ts +37 -0
  152. package/dist/commonjs/tabs/lib/cursor/useRovingFocus.d.ts.map +1 -0
  153. package/dist/commonjs/tabs/lib/cursor/{hooks.js → useRovingFocus.js} +26 -50
  154. package/dist/commonjs/tabs/lib/list/index.d.ts +2 -1
  155. package/dist/commonjs/tabs/lib/list/index.d.ts.map +1 -1
  156. package/dist/commonjs/tabs/lib/list/index.js +2 -1
  157. package/dist/commonjs/tabs/lib/list/renderItem.d.ts +4 -0
  158. package/dist/commonjs/tabs/lib/list/renderItem.d.ts.map +1 -0
  159. package/dist/commonjs/tabs/lib/list/renderItem.js +18 -0
  160. package/dist/commonjs/tabs/lib/list/useListModel.d.ts +25 -13
  161. package/dist/commonjs/tabs/lib/list/useListModel.d.ts.map +1 -1
  162. package/dist/commonjs/tabs/lib/list/useListModel.js +20 -7
  163. package/dist/commonjs/tabs/lib/list/useListRegisterItem.d.ts +14 -0
  164. package/dist/commonjs/tabs/lib/list/useListRegisterItem.d.ts.map +1 -0
  165. package/dist/commonjs/tabs/lib/list/useListRegisterItem.js +46 -0
  166. package/dist/commonjs/tabs/lib/menu/Menu.d.ts +80 -0
  167. package/dist/commonjs/tabs/lib/menu/Menu.d.ts.map +1 -0
  168. package/dist/commonjs/tabs/lib/menu/Menu.js +94 -0
  169. package/dist/commonjs/tabs/lib/menu/MenuCard.d.ts +17 -0
  170. package/dist/commonjs/tabs/lib/menu/MenuCard.d.ts.map +1 -0
  171. package/dist/commonjs/tabs/lib/menu/MenuCard.js +82 -0
  172. package/dist/commonjs/tabs/lib/menu/MenuItem.d.ts +62 -0
  173. package/dist/commonjs/tabs/lib/menu/MenuItem.d.ts.map +1 -0
  174. package/dist/commonjs/tabs/lib/menu/MenuItem.js +145 -0
  175. package/dist/commonjs/tabs/lib/menu/MenuList.d.ts +23 -0
  176. package/dist/commonjs/tabs/lib/menu/MenuList.d.ts.map +1 -0
  177. package/dist/commonjs/tabs/lib/menu/MenuList.js +52 -0
  178. package/dist/commonjs/tabs/lib/menu/MenuPopper.d.ts +21 -0
  179. package/dist/commonjs/tabs/lib/menu/MenuPopper.d.ts.map +1 -0
  180. package/dist/commonjs/tabs/lib/menu/MenuPopper.js +45 -0
  181. package/dist/commonjs/tabs/lib/menu/MenuTarget.d.ts +21 -0
  182. package/dist/commonjs/tabs/lib/menu/MenuTarget.d.ts.map +1 -0
  183. package/dist/commonjs/tabs/lib/menu/MenuTarget.js +60 -0
  184. package/dist/commonjs/tabs/lib/menu/index.d.ts +8 -0
  185. package/dist/commonjs/tabs/lib/menu/index.d.ts.map +1 -0
  186. package/dist/commonjs/tabs/lib/menu/index.js +18 -0
  187. package/dist/commonjs/tabs/lib/menu/useMenuModel.d.ts +35 -0
  188. package/dist/commonjs/tabs/lib/menu/useMenuModel.d.ts.map +1 -0
  189. package/dist/commonjs/tabs/lib/menu/useMenuModel.js +33 -0
  190. package/dist/commonjs/tabs/lib/overflow/index.d.ts +5 -0
  191. package/dist/commonjs/tabs/lib/overflow/index.d.ts.map +1 -0
  192. package/dist/commonjs/tabs/lib/overflow/index.js +9 -0
  193. package/dist/commonjs/tabs/lib/overflow/useOverflowMeasureContainer.d.ts +8 -0
  194. package/dist/commonjs/tabs/lib/overflow/useOverflowMeasureContainer.d.ts.map +1 -0
  195. package/dist/commonjs/tabs/lib/overflow/useOverflowMeasureContainer.js +22 -0
  196. package/dist/commonjs/tabs/lib/overflow/useOverflowMeasureItem.d.ts +10 -0
  197. package/dist/commonjs/tabs/lib/overflow/useOverflowMeasureItem.d.ts.map +1 -0
  198. package/dist/commonjs/tabs/lib/overflow/useOverflowMeasureItem.js +32 -0
  199. package/dist/commonjs/tabs/lib/overflow/useOverflowModel.d.ts +69 -0
  200. package/dist/commonjs/tabs/lib/overflow/useOverflowModel.d.ts.map +1 -0
  201. package/dist/commonjs/tabs/lib/overflow/useOverflowModel.js +117 -0
  202. package/dist/commonjs/tabs/lib/overflow/useOverflowTarget.d.ts +11 -0
  203. package/dist/commonjs/tabs/lib/overflow/useOverflowTarget.d.ts.map +1 -0
  204. package/dist/commonjs/tabs/lib/overflow/useOverflowTarget.js +35 -0
  205. package/dist/commonjs/tabs/lib/selection/index.d.ts +4 -0
  206. package/dist/commonjs/tabs/lib/selection/index.d.ts.map +1 -0
  207. package/dist/commonjs/tabs/lib/selection/index.js +8 -0
  208. package/dist/commonjs/tabs/lib/selection/useResetCursorOnBlur.d.ts +13 -0
  209. package/dist/commonjs/tabs/lib/selection/useResetCursorOnBlur.d.ts.map +1 -0
  210. package/dist/commonjs/tabs/lib/{hooks.js → selection/useResetCursorOnBlur.js} +8 -9
  211. package/dist/commonjs/tabs/lib/selection/useSelectionItem.d.ts +8 -0
  212. package/dist/commonjs/tabs/lib/selection/useSelectionItem.d.ts.map +1 -0
  213. package/dist/commonjs/tabs/lib/selection/useSelectionItem.js +16 -0
  214. package/dist/commonjs/tabs/lib/selection/useSelectionModel.d.ts +62 -0
  215. package/dist/commonjs/tabs/lib/selection/useSelectionModel.d.ts.map +1 -0
  216. package/dist/commonjs/tabs/lib/selection/useSelectionModel.js +80 -0
  217. package/dist/commonjs/tabs/lib/useTabsModel.d.ts +39 -38
  218. package/dist/commonjs/tabs/lib/useTabsModel.d.ts.map +1 -1
  219. package/dist/commonjs/tabs/lib/useTabsModel.js +50 -37
  220. package/dist/commonjs/tokens/index.d.ts +3 -20
  221. package/dist/commonjs/tokens/index.d.ts.map +1 -1
  222. package/dist/commonjs/tokens/index.js +3 -6
  223. package/dist/commonjs/tokens/lib/depth.d.ts +109 -3
  224. package/dist/commonjs/tokens/lib/depth.d.ts.map +1 -1
  225. package/dist/commonjs/tokens/lib/depth.js +40 -5
  226. package/dist/commonjs/tooltip/lib/OverflowTooltip.d.ts +10 -0
  227. package/dist/commonjs/tooltip/lib/OverflowTooltip.d.ts.map +1 -1
  228. package/dist/commonjs/tooltip/lib/OverflowTooltip.js +19 -15
  229. package/dist/commonjs/tooltip/lib/useTooltip.d.ts +4 -4
  230. package/dist/commonjs/tooltip/lib/useTooltip.d.ts.map +1 -1
  231. package/dist/es6/action-bar/lib/ActionBar.d.ts.map +1 -1
  232. package/dist/es6/action-bar/lib/ActionBar.js +33 -22
  233. package/dist/es6/button/lib/PrimaryButton.d.ts +80 -6
  234. package/dist/es6/button/lib/PrimaryButton.d.ts.map +1 -1
  235. package/dist/es6/button/lib/PrimaryButton.js +81 -27
  236. package/dist/es6/button/lib/SecondaryButton.d.ts +8 -5
  237. package/dist/es6/button/lib/SecondaryButton.d.ts.map +1 -1
  238. package/dist/es6/button/lib/SecondaryButton.js +22 -12
  239. package/dist/es6/button/lib/TertiaryButton.d.ts +8 -4
  240. package/dist/es6/button/lib/TertiaryButton.d.ts.map +1 -1
  241. package/dist/es6/button/lib/TertiaryButton.js +25 -21
  242. package/dist/es6/button/lib/parts/ButtonContainer.d.ts +5 -3
  243. package/dist/es6/button/lib/parts/ButtonContainer.d.ts.map +1 -1
  244. package/dist/es6/button/lib/parts/ButtonContainer.js +7 -9
  245. package/dist/es6/button/lib/parts/ButtonLabel.d.ts +1 -1
  246. package/dist/es6/button/lib/parts/ButtonLabel.d.ts.map +1 -1
  247. package/dist/es6/button/lib/parts/ButtonLabelIcon.d.ts +7 -4
  248. package/dist/es6/button/lib/parts/ButtonLabelIcon.d.ts.map +1 -1
  249. package/dist/es6/button/lib/parts/ButtonLabelIcon.js +28 -13
  250. package/dist/es6/button/lib/types.d.ts +9 -0
  251. package/dist/es6/button/lib/types.d.ts.map +1 -1
  252. package/dist/es6/common/index.d.ts +1 -0
  253. package/dist/es6/common/index.d.ts.map +1 -1
  254. package/dist/es6/common/index.js +1 -0
  255. package/dist/es6/common/lib/EllipsisText.d.ts +5 -0
  256. package/dist/es6/common/lib/EllipsisText.d.ts.map +1 -0
  257. package/dist/es6/common/lib/EllipsisText.js +8 -0
  258. package/dist/es6/common/lib/styles/accessibleHide.d.ts +2 -2
  259. package/dist/es6/common/lib/styles/accessibleHide.d.ts.map +1 -1
  260. package/dist/es6/common/lib/theming/breakpoints.d.ts +287 -6
  261. package/dist/es6/common/lib/theming/breakpoints.d.ts.map +1 -1
  262. package/dist/es6/common/lib/theming/breakpoints.js +192 -10
  263. package/dist/es6/common/lib/theming/types.d.ts +191 -1
  264. package/dist/es6/common/lib/theming/types.d.ts.map +1 -1
  265. package/dist/es6/common/lib/utils/components.d.ts +19 -9
  266. package/dist/es6/common/lib/utils/components.d.ts.map +1 -1
  267. package/dist/es6/common/lib/utils/components.js +12 -2
  268. package/dist/es6/common/lib/utils/index.d.ts +1 -0
  269. package/dist/es6/common/lib/utils/index.d.ts.map +1 -1
  270. package/dist/es6/common/lib/utils/index.js +1 -0
  271. package/dist/es6/common/lib/utils/mergeProps.d.ts.map +1 -1
  272. package/dist/es6/common/lib/utils/mergeProps.js +5 -0
  273. package/dist/es6/common/lib/utils/useConstant.d.ts +9 -0
  274. package/dist/es6/common/lib/utils/useConstant.d.ts.map +1 -0
  275. package/dist/es6/common/lib/utils/useConstant.js +15 -0
  276. package/dist/es6/common/lib/utils/useResizeObserver.d.ts +3 -0
  277. package/dist/es6/common/lib/utils/useResizeObserver.d.ts.map +1 -0
  278. package/dist/es6/common/lib/utils/useResizeObserver.js +37 -0
  279. package/dist/es6/common/lib/utils/useUniqueId.d.ts.map +1 -1
  280. package/dist/es6/common/lib/utils/useUniqueId.js +3 -3
  281. package/dist/es6/cookie-banner/index.d.ts +3 -3
  282. package/dist/es6/cookie-banner/index.d.ts.map +1 -1
  283. package/dist/es6/cookie-banner/index.js +3 -3
  284. package/dist/es6/cookie-banner/lib/CookieBanner.d.ts +19 -2
  285. package/dist/es6/cookie-banner/lib/CookieBanner.d.ts.map +1 -1
  286. package/dist/es6/cookie-banner/lib/CookieBanner.js +19 -8
  287. package/dist/es6/dialog/lib/hooks/useDialogCard.d.ts +4 -16
  288. package/dist/es6/dialog/lib/hooks/useDialogCard.d.ts.map +1 -1
  289. package/dist/es6/dialog/lib/hooks/useDialogPopper.d.ts +5 -2
  290. package/dist/es6/dialog/lib/hooks/useDialogPopper.d.ts.map +1 -1
  291. package/dist/es6/modal/lib/ModalOverlay.d.ts +4 -2
  292. package/dist/es6/modal/lib/ModalOverlay.d.ts.map +1 -1
  293. package/dist/es6/modal/lib/hooks/useModalCard.d.ts +4 -16
  294. package/dist/es6/modal/lib/hooks/useModalCard.d.ts.map +1 -1
  295. package/dist/es6/modal/lib/hooks/useModalHeading.d.ts +5 -17
  296. package/dist/es6/modal/lib/hooks/useModalHeading.d.ts.map +1 -1
  297. package/dist/es6/page-header/index.d.ts +3 -3
  298. package/dist/es6/page-header/index.d.ts.map +1 -1
  299. package/dist/es6/page-header/index.js +3 -3
  300. package/dist/es6/page-header/lib/PageHeader.d.ts +19 -2
  301. package/dist/es6/page-header/lib/PageHeader.d.ts.map +1 -1
  302. package/dist/es6/page-header/lib/PageHeader.js +18 -7
  303. package/dist/es6/pagination/lib/Pagination/GoTo/Label.d.ts +3 -0
  304. package/dist/es6/pagination/lib/Pagination/GoTo/Label.d.ts.map +1 -1
  305. package/dist/es6/pagination/lib/Pagination/PageList.d.ts +1 -1
  306. package/dist/es6/pagination/lib/Pagination/PageList.d.ts.map +1 -1
  307. package/dist/es6/pagination/lib/Pagination/Pagination.d.ts +5 -5
  308. package/dist/es6/pagination/lib/Pagination/common/List.d.ts +1 -1
  309. package/dist/es6/pagination/lib/Pagination/common/List.d.ts.map +1 -1
  310. package/dist/es6/pagination/lib/Pagination/common/utils/getValidChildren.d.ts +1 -1
  311. package/dist/es6/pagination/lib/Pagination/common/utils/getValidChildren.d.ts.map +1 -1
  312. package/dist/es6/pagination/lib/Pagination/common/utils/space.d.ts +28 -28
  313. package/dist/es6/pagination/lib/Pagination/types.d.ts +39 -0
  314. package/dist/es6/pagination/lib/Pagination/types.d.ts.map +1 -1
  315. package/dist/es6/pagination/lib/Pagination/usePaginationModel.d.ts +19 -0
  316. package/dist/es6/pagination/lib/Pagination/usePaginationModel.d.ts.map +1 -1
  317. package/dist/es6/popup/lib/PopupCard.d.ts.map +1 -1
  318. package/dist/es6/popup/lib/PopupCard.js +3 -4
  319. package/dist/es6/popup/lib/hooks/usePopupCard.d.ts +5 -2
  320. package/dist/es6/popup/lib/hooks/usePopupCard.d.ts.map +1 -1
  321. package/dist/es6/popup/lib/hooks/usePopupCloseButton.d.ts +4 -2
  322. package/dist/es6/popup/lib/hooks/usePopupCloseButton.d.ts.map +1 -1
  323. package/dist/es6/popup/lib/hooks/usePopupHeading.d.ts +5 -2
  324. package/dist/es6/popup/lib/hooks/usePopupHeading.d.ts.map +1 -1
  325. package/dist/es6/popup/lib/hooks/usePopupPopper.d.ts +4 -2
  326. package/dist/es6/popup/lib/hooks/usePopupPopper.d.ts.map +1 -1
  327. package/dist/es6/popup/lib/hooks/usePopupTarget.d.ts +4 -2
  328. package/dist/es6/popup/lib/hooks/usePopupTarget.d.ts.map +1 -1
  329. package/dist/es6/tabs/index.d.ts +5 -0
  330. package/dist/es6/tabs/index.d.ts.map +1 -1
  331. package/dist/es6/tabs/index.js +5 -0
  332. package/dist/es6/tabs/lib/Tabs.d.ts +35 -7
  333. package/dist/es6/tabs/lib/Tabs.d.ts.map +1 -1
  334. package/dist/es6/tabs/lib/Tabs.js +28 -7
  335. package/dist/es6/tabs/lib/TabsItem.d.ts +107 -0
  336. package/dist/es6/tabs/lib/TabsItem.d.ts.map +1 -0
  337. package/dist/es6/tabs/lib/TabsItem.js +131 -0
  338. package/dist/es6/tabs/lib/TabsList.d.ts +43 -0
  339. package/dist/es6/tabs/lib/TabsList.d.ts.map +1 -0
  340. package/dist/es6/tabs/lib/TabsList.js +44 -0
  341. package/dist/es6/tabs/lib/TabsMenuPopper.d.ts +21 -0
  342. package/dist/es6/tabs/lib/TabsMenuPopper.d.ts.map +1 -0
  343. package/dist/es6/tabs/lib/{TabList.js → TabsMenuPopper.js} +8 -20
  344. package/dist/es6/tabs/lib/TabsOverflowButton.d.ts +31 -0
  345. package/dist/es6/tabs/lib/TabsOverflowButton.d.ts.map +1 -0
  346. package/dist/es6/tabs/lib/TabsOverflowButton.js +48 -0
  347. package/dist/{commonjs/tabs/lib/TabPanel.d.ts → es6/tabs/lib/TabsPanel.d.ts} +15 -5
  348. package/dist/es6/tabs/lib/TabsPanel.d.ts.map +1 -0
  349. package/dist/es6/tabs/lib/TabsPanel.js +59 -0
  350. package/{ts3.5/dist/commonjs/tabs/lib/TabList.d.ts → dist/es6/tabs/lib/TabsPanels.d.ts} +15 -15
  351. package/dist/es6/tabs/lib/TabsPanels.d.ts.map +1 -0
  352. package/dist/es6/tabs/lib/TabsPanels.js +12 -0
  353. package/dist/es6/tabs/lib/cursor/index.d.ts +1 -1
  354. package/dist/es6/tabs/lib/cursor/index.d.ts.map +1 -1
  355. package/dist/es6/tabs/lib/cursor/index.js +1 -1
  356. package/dist/es6/tabs/lib/cursor/useCursorModel.d.ts +23 -13
  357. package/dist/es6/tabs/lib/cursor/useCursorModel.d.ts.map +1 -1
  358. package/dist/es6/tabs/lib/cursor/useCursorModel.js +51 -50
  359. package/dist/es6/tabs/lib/cursor/useRovingFocus.d.ts +37 -0
  360. package/dist/es6/tabs/lib/cursor/useRovingFocus.d.ts.map +1 -0
  361. package/dist/es6/tabs/lib/cursor/useRovingFocus.js +84 -0
  362. package/dist/es6/tabs/lib/list/index.d.ts +2 -1
  363. package/dist/es6/tabs/lib/list/index.d.ts.map +1 -1
  364. package/dist/es6/tabs/lib/list/index.js +2 -1
  365. package/dist/es6/tabs/lib/list/renderItem.d.ts +4 -0
  366. package/dist/es6/tabs/lib/list/renderItem.d.ts.map +1 -0
  367. package/dist/es6/tabs/lib/list/renderItem.js +12 -0
  368. package/dist/es6/tabs/lib/list/useListModel.d.ts +25 -13
  369. package/dist/es6/tabs/lib/list/useListModel.d.ts.map +1 -1
  370. package/dist/es6/tabs/lib/list/useListModel.js +21 -8
  371. package/dist/es6/tabs/lib/list/useListRegisterItem.d.ts +14 -0
  372. package/dist/es6/tabs/lib/list/useListRegisterItem.d.ts.map +1 -0
  373. package/dist/es6/tabs/lib/list/useListRegisterItem.js +41 -0
  374. package/dist/es6/tabs/lib/menu/Menu.d.ts +80 -0
  375. package/dist/es6/tabs/lib/menu/Menu.d.ts.map +1 -0
  376. package/dist/es6/tabs/lib/menu/Menu.js +89 -0
  377. package/dist/es6/tabs/lib/menu/MenuCard.d.ts +17 -0
  378. package/dist/es6/tabs/lib/menu/MenuCard.d.ts.map +1 -0
  379. package/dist/es6/tabs/lib/menu/MenuCard.js +73 -0
  380. package/dist/es6/tabs/lib/menu/MenuItem.d.ts +62 -0
  381. package/dist/es6/tabs/lib/menu/MenuItem.d.ts.map +1 -0
  382. package/dist/es6/tabs/lib/menu/MenuItem.js +136 -0
  383. package/dist/es6/tabs/lib/menu/MenuList.d.ts +23 -0
  384. package/dist/es6/tabs/lib/menu/MenuList.d.ts.map +1 -0
  385. package/dist/es6/tabs/lib/menu/MenuList.js +43 -0
  386. package/dist/es6/tabs/lib/menu/MenuPopper.d.ts +21 -0
  387. package/dist/es6/tabs/lib/menu/MenuPopper.d.ts.map +1 -0
  388. package/dist/es6/tabs/lib/menu/MenuPopper.js +36 -0
  389. package/dist/es6/tabs/lib/menu/MenuTarget.d.ts +21 -0
  390. package/dist/es6/tabs/lib/menu/MenuTarget.d.ts.map +1 -0
  391. package/dist/es6/tabs/lib/menu/MenuTarget.js +51 -0
  392. package/dist/es6/tabs/lib/menu/index.d.ts +8 -0
  393. package/dist/es6/tabs/lib/menu/index.d.ts.map +1 -0
  394. package/dist/es6/tabs/lib/menu/index.js +7 -0
  395. package/dist/es6/tabs/lib/menu/useMenuModel.d.ts +35 -0
  396. package/dist/es6/tabs/lib/menu/useMenuModel.d.ts.map +1 -0
  397. package/dist/es6/tabs/lib/menu/useMenuModel.js +31 -0
  398. package/dist/es6/tabs/lib/overflow/index.d.ts +5 -0
  399. package/dist/es6/tabs/lib/overflow/index.d.ts.map +1 -0
  400. package/dist/es6/tabs/lib/overflow/index.js +4 -0
  401. package/dist/es6/tabs/lib/overflow/useOverflowMeasureContainer.d.ts +8 -0
  402. package/dist/es6/tabs/lib/overflow/useOverflowMeasureContainer.d.ts.map +1 -0
  403. package/dist/es6/tabs/lib/overflow/useOverflowMeasureContainer.js +13 -0
  404. package/dist/es6/tabs/lib/overflow/useOverflowMeasureItem.d.ts +10 -0
  405. package/dist/es6/tabs/lib/overflow/useOverflowMeasureItem.d.ts.map +1 -0
  406. package/dist/es6/tabs/lib/overflow/useOverflowMeasureItem.js +30 -0
  407. package/dist/es6/tabs/lib/overflow/useOverflowModel.d.ts +69 -0
  408. package/dist/es6/tabs/lib/overflow/useOverflowModel.d.ts.map +1 -0
  409. package/dist/es6/tabs/lib/overflow/useOverflowModel.js +111 -0
  410. package/dist/es6/tabs/lib/overflow/useOverflowTarget.d.ts +11 -0
  411. package/dist/es6/tabs/lib/overflow/useOverflowTarget.d.ts.map +1 -0
  412. package/dist/es6/tabs/lib/overflow/useOverflowTarget.js +30 -0
  413. package/dist/es6/tabs/lib/selection/index.d.ts +4 -0
  414. package/dist/es6/tabs/lib/selection/index.d.ts.map +1 -0
  415. package/dist/es6/tabs/lib/selection/index.js +3 -0
  416. package/dist/es6/tabs/lib/selection/useResetCursorOnBlur.d.ts +13 -0
  417. package/dist/es6/tabs/lib/selection/useResetCursorOnBlur.d.ts.map +1 -0
  418. package/dist/es6/tabs/lib/{hooks.js → selection/useResetCursorOnBlur.js} +8 -9
  419. package/dist/es6/tabs/lib/selection/useSelectionItem.d.ts +8 -0
  420. package/dist/es6/tabs/lib/selection/useSelectionItem.d.ts.map +1 -0
  421. package/dist/es6/tabs/lib/selection/useSelectionItem.js +14 -0
  422. package/dist/es6/tabs/lib/selection/useSelectionModel.d.ts +62 -0
  423. package/dist/es6/tabs/lib/selection/useSelectionModel.d.ts.map +1 -0
  424. package/dist/es6/tabs/lib/selection/useSelectionModel.js +75 -0
  425. package/dist/es6/tabs/lib/useTabsModel.d.ts +39 -38
  426. package/dist/es6/tabs/lib/useTabsModel.d.ts.map +1 -1
  427. package/dist/es6/tabs/lib/useTabsModel.js +50 -37
  428. package/dist/es6/tokens/index.d.ts +3 -20
  429. package/dist/es6/tokens/index.d.ts.map +1 -1
  430. package/dist/es6/tokens/index.js +1 -1
  431. package/dist/es6/tokens/lib/depth.d.ts +109 -3
  432. package/dist/es6/tokens/lib/depth.d.ts.map +1 -1
  433. package/dist/es6/tokens/lib/depth.js +40 -2
  434. package/dist/es6/tooltip/lib/OverflowTooltip.d.ts +10 -0
  435. package/dist/es6/tooltip/lib/OverflowTooltip.d.ts.map +1 -1
  436. package/dist/es6/tooltip/lib/OverflowTooltip.js +16 -9
  437. package/dist/es6/tooltip/lib/useTooltip.d.ts +4 -4
  438. package/dist/es6/tooltip/lib/useTooltip.d.ts.map +1 -1
  439. package/package.json +7 -6
  440. package/page-header/README.md +11 -6
  441. package/page-header/index.ts +3 -3
  442. package/page-header/lib/PageHeader.tsx +28 -3
  443. package/pagination/lib/Pagination/GoTo/Label.tsx +3 -0
  444. package/pagination/lib/Pagination/types.ts +44 -5
  445. package/pagination/lib/Pagination/usePaginationModel.ts +19 -0
  446. package/popup/lib/PopupCard.tsx +3 -2
  447. package/tabs/README.md +5 -133
  448. package/tabs/index.ts +6 -0
  449. package/tabs/lib/Tabs.tsx +34 -9
  450. package/tabs/lib/TabsItem.tsx +250 -0
  451. package/tabs/lib/TabsList.tsx +67 -0
  452. package/tabs/lib/TabsMenuPopper.tsx +27 -0
  453. package/tabs/lib/TabsOverflowButton.tsx +58 -0
  454. package/tabs/lib/{TabPanel.tsx → TabsPanel.tsx} +33 -31
  455. package/tabs/lib/TabsPanels.tsx +28 -0
  456. package/tabs/lib/cursor/index.ts +1 -1
  457. package/tabs/lib/cursor/useCursorModel.tsx +78 -65
  458. package/tabs/lib/cursor/useRovingFocus.tsx +94 -0
  459. package/tabs/lib/list/index.ts +2 -1
  460. package/tabs/lib/list/renderItem.tsx +19 -0
  461. package/tabs/lib/list/useListModel.tsx +48 -23
  462. package/tabs/lib/list/useListRegisterItem.tsx +53 -0
  463. package/tabs/lib/menu/Menu.tsx +95 -0
  464. package/tabs/lib/menu/MenuCard.tsx +96 -0
  465. package/tabs/lib/menu/MenuItem.tsx +195 -0
  466. package/tabs/lib/menu/MenuList.tsx +59 -0
  467. package/tabs/lib/menu/MenuPopper.tsx +31 -0
  468. package/tabs/lib/menu/MenuTarget.tsx +52 -0
  469. package/tabs/lib/menu/index.ts +8 -0
  470. package/tabs/lib/menu/useMenuModel.tsx +67 -0
  471. package/tabs/lib/overflow/index.ts +4 -0
  472. package/tabs/lib/overflow/spec/tsconfig.json +3 -0
  473. package/tabs/lib/overflow/spec/useOverflowModel.spec.tsx +46 -0
  474. package/tabs/lib/overflow/useOverflowMeasureContainer.ts +20 -0
  475. package/tabs/lib/overflow/useOverflowMeasureItem.tsx +40 -0
  476. package/tabs/lib/overflow/useOverflowModel.tsx +185 -0
  477. package/tabs/lib/overflow/useOverflowTarget.tsx +42 -0
  478. package/tabs/lib/selection/index.ts +3 -0
  479. package/tabs/lib/selection/useResetCursorOnBlur.tsx +29 -0
  480. package/tabs/lib/selection/useSelectionItem.tsx +26 -0
  481. package/tabs/lib/selection/useSelectionModel.tsx +133 -0
  482. package/tabs/lib/useTabsModel.tsx +93 -78
  483. package/tokens/README.md +5 -12
  484. package/tokens/index.ts +2 -2
  485. package/tokens/lib/depth.ts +125 -3
  486. package/tooltip/lib/OverflowTooltip.tsx +23 -16
  487. package/tooltip/lib/useTooltip.tsx +5 -5
  488. package/ts3.5/dist/commonjs/button/lib/PrimaryButton.d.ts +80 -6
  489. package/ts3.5/dist/commonjs/button/lib/SecondaryButton.d.ts +8 -5
  490. package/ts3.5/dist/commonjs/button/lib/TertiaryButton.d.ts +8 -4
  491. package/ts3.5/dist/commonjs/button/lib/parts/ButtonContainer.d.ts +5 -3
  492. package/ts3.5/dist/commonjs/button/lib/parts/ButtonLabel.d.ts +1 -1
  493. package/ts3.5/dist/commonjs/button/lib/parts/ButtonLabelIcon.d.ts +7 -4
  494. package/ts3.5/dist/commonjs/button/lib/types.d.ts +9 -0
  495. package/ts3.5/dist/commonjs/common/index.d.ts +1 -0
  496. package/ts3.5/dist/commonjs/common/lib/EllipsisText.d.ts +5 -0
  497. package/ts3.5/dist/commonjs/common/lib/styles/accessibleHide.d.ts +2 -2
  498. package/ts3.5/dist/commonjs/common/lib/theming/breakpoints.d.ts +287 -6
  499. package/ts3.5/dist/commonjs/common/lib/theming/types.d.ts +191 -1
  500. package/ts3.5/dist/commonjs/common/lib/utils/components.d.ts +19 -9
  501. package/ts3.5/dist/commonjs/common/lib/utils/index.d.ts +1 -0
  502. package/ts3.5/dist/commonjs/common/lib/utils/useConstant.d.ts +9 -0
  503. package/ts3.5/dist/commonjs/common/lib/utils/useResizeObserver.d.ts +3 -0
  504. package/ts3.5/dist/commonjs/cookie-banner/index.d.ts +3 -3
  505. package/ts3.5/dist/commonjs/cookie-banner/lib/CookieBanner.d.ts +19 -2
  506. package/ts3.5/dist/commonjs/dialog/lib/hooks/useDialogCard.d.ts +4 -16
  507. package/ts3.5/dist/commonjs/dialog/lib/hooks/useDialogPopper.d.ts +5 -2
  508. package/ts3.5/dist/commonjs/modal/lib/ModalOverlay.d.ts +4 -2
  509. package/ts3.5/dist/commonjs/modal/lib/hooks/useModalCard.d.ts +4 -16
  510. package/ts3.5/dist/commonjs/modal/lib/hooks/useModalHeading.d.ts +5 -17
  511. package/ts3.5/dist/commonjs/page-header/index.d.ts +3 -3
  512. package/ts3.5/dist/commonjs/page-header/lib/PageHeader.d.ts +19 -2
  513. package/ts3.5/dist/commonjs/pagination/lib/Pagination/GoTo/Label.d.ts +3 -0
  514. package/ts3.5/dist/commonjs/pagination/lib/Pagination/PageList.d.ts +1 -1
  515. package/ts3.5/dist/commonjs/pagination/lib/Pagination/Pagination.d.ts +5 -5
  516. package/ts3.5/dist/commonjs/pagination/lib/Pagination/common/List.d.ts +1 -1
  517. package/ts3.5/dist/commonjs/pagination/lib/Pagination/common/utils/getValidChildren.d.ts +1 -1
  518. package/ts3.5/dist/commonjs/pagination/lib/Pagination/common/utils/space.d.ts +28 -28
  519. package/ts3.5/dist/commonjs/pagination/lib/Pagination/types.d.ts +39 -0
  520. package/ts3.5/dist/commonjs/pagination/lib/Pagination/usePaginationModel.d.ts +19 -0
  521. package/ts3.5/dist/commonjs/popup/lib/hooks/usePopupCard.d.ts +5 -2
  522. package/ts3.5/dist/commonjs/popup/lib/hooks/usePopupCloseButton.d.ts +4 -2
  523. package/ts3.5/dist/commonjs/popup/lib/hooks/usePopupHeading.d.ts +5 -2
  524. package/ts3.5/dist/commonjs/popup/lib/hooks/usePopupPopper.d.ts +4 -2
  525. package/ts3.5/dist/commonjs/popup/lib/hooks/usePopupTarget.d.ts +4 -2
  526. package/ts3.5/dist/commonjs/tabs/index.d.ts +5 -0
  527. package/ts3.5/dist/commonjs/tabs/lib/Tabs.d.ts +35 -7
  528. package/ts3.5/dist/commonjs/tabs/lib/TabsItem.d.ts +107 -0
  529. package/ts3.5/dist/commonjs/tabs/lib/TabsList.d.ts +43 -0
  530. package/ts3.5/dist/commonjs/tabs/lib/TabsMenuPopper.d.ts +21 -0
  531. package/ts3.5/dist/commonjs/tabs/lib/TabsOverflowButton.d.ts +31 -0
  532. package/{dist/es6/tabs/lib/TabPanel.d.ts → ts3.5/dist/commonjs/tabs/lib/TabsPanel.d.ts} +39 -29
  533. package/ts3.5/dist/{es6/tabs/lib/TabList.d.ts → commonjs/tabs/lib/TabsPanels.d.ts} +5 -5
  534. package/ts3.5/dist/commonjs/tabs/lib/cursor/index.d.ts +1 -1
  535. package/ts3.5/dist/commonjs/tabs/lib/cursor/useCursorModel.d.ts +23 -13
  536. package/ts3.5/dist/commonjs/tabs/lib/cursor/useRovingFocus.d.ts +37 -0
  537. package/ts3.5/dist/commonjs/tabs/lib/list/index.d.ts +2 -1
  538. package/ts3.5/dist/commonjs/tabs/lib/list/renderItem.d.ts +4 -0
  539. package/ts3.5/dist/commonjs/tabs/lib/list/useListModel.d.ts +25 -13
  540. package/ts3.5/dist/commonjs/tabs/lib/list/useListRegisterItem.d.ts +14 -0
  541. package/ts3.5/dist/commonjs/tabs/lib/menu/Menu.d.ts +80 -0
  542. package/ts3.5/dist/commonjs/tabs/lib/menu/MenuCard.d.ts +17 -0
  543. package/ts3.5/dist/commonjs/tabs/lib/menu/MenuItem.d.ts +62 -0
  544. package/ts3.5/dist/commonjs/tabs/lib/menu/MenuList.d.ts +23 -0
  545. package/ts3.5/dist/commonjs/tabs/lib/menu/MenuPopper.d.ts +21 -0
  546. package/ts3.5/dist/commonjs/tabs/lib/menu/MenuTarget.d.ts +21 -0
  547. package/ts3.5/dist/commonjs/tabs/lib/menu/index.d.ts +8 -0
  548. package/ts3.5/dist/commonjs/tabs/lib/menu/useMenuModel.d.ts +35 -0
  549. package/ts3.5/dist/commonjs/tabs/lib/overflow/index.d.ts +5 -0
  550. package/ts3.5/dist/commonjs/tabs/lib/overflow/useOverflowMeasureContainer.d.ts +8 -0
  551. package/ts3.5/dist/commonjs/tabs/lib/overflow/useOverflowMeasureItem.d.ts +10 -0
  552. package/ts3.5/dist/commonjs/tabs/lib/overflow/useOverflowModel.d.ts +69 -0
  553. package/ts3.5/dist/commonjs/tabs/lib/overflow/useOverflowTarget.d.ts +11 -0
  554. package/ts3.5/dist/commonjs/tabs/lib/selection/index.d.ts +4 -0
  555. package/ts3.5/dist/commonjs/tabs/lib/selection/useResetCursorOnBlur.d.ts +13 -0
  556. package/ts3.5/dist/commonjs/tabs/lib/selection/useSelectionItem.d.ts +8 -0
  557. package/ts3.5/dist/commonjs/tabs/lib/selection/useSelectionModel.d.ts +62 -0
  558. package/ts3.5/dist/commonjs/tabs/lib/useTabsModel.d.ts +39 -38
  559. package/ts3.5/dist/commonjs/tokens/index.d.ts +3 -20
  560. package/ts3.5/dist/commonjs/tokens/lib/depth.d.ts +109 -3
  561. package/ts3.5/dist/commonjs/tooltip/lib/OverflowTooltip.d.ts +10 -0
  562. package/ts3.5/dist/commonjs/tooltip/lib/useTooltip.d.ts +4 -4
  563. package/ts3.5/dist/es6/button/lib/PrimaryButton.d.ts +80 -6
  564. package/ts3.5/dist/es6/button/lib/SecondaryButton.d.ts +8 -5
  565. package/ts3.5/dist/es6/button/lib/TertiaryButton.d.ts +8 -4
  566. package/ts3.5/dist/es6/button/lib/parts/ButtonContainer.d.ts +5 -3
  567. package/ts3.5/dist/es6/button/lib/parts/ButtonLabel.d.ts +1 -1
  568. package/ts3.5/dist/es6/button/lib/parts/ButtonLabelIcon.d.ts +7 -4
  569. package/ts3.5/dist/es6/button/lib/types.d.ts +9 -0
  570. package/ts3.5/dist/es6/common/index.d.ts +1 -0
  571. package/ts3.5/dist/es6/common/lib/EllipsisText.d.ts +5 -0
  572. package/ts3.5/dist/es6/common/lib/styles/accessibleHide.d.ts +2 -2
  573. package/ts3.5/dist/es6/common/lib/theming/breakpoints.d.ts +287 -6
  574. package/ts3.5/dist/es6/common/lib/theming/types.d.ts +191 -1
  575. package/ts3.5/dist/es6/common/lib/utils/components.d.ts +19 -9
  576. package/ts3.5/dist/es6/common/lib/utils/index.d.ts +1 -0
  577. package/ts3.5/dist/es6/common/lib/utils/useConstant.d.ts +9 -0
  578. package/ts3.5/dist/es6/common/lib/utils/useResizeObserver.d.ts +3 -0
  579. package/ts3.5/dist/es6/cookie-banner/index.d.ts +3 -3
  580. package/ts3.5/dist/es6/cookie-banner/lib/CookieBanner.d.ts +19 -2
  581. package/ts3.5/dist/es6/dialog/lib/hooks/useDialogCard.d.ts +4 -16
  582. package/ts3.5/dist/es6/dialog/lib/hooks/useDialogPopper.d.ts +5 -2
  583. package/ts3.5/dist/es6/modal/lib/ModalOverlay.d.ts +4 -2
  584. package/ts3.5/dist/es6/modal/lib/hooks/useModalCard.d.ts +4 -16
  585. package/ts3.5/dist/es6/modal/lib/hooks/useModalHeading.d.ts +5 -17
  586. package/ts3.5/dist/es6/page-header/index.d.ts +3 -3
  587. package/ts3.5/dist/es6/page-header/lib/PageHeader.d.ts +19 -2
  588. package/ts3.5/dist/es6/pagination/lib/Pagination/GoTo/Label.d.ts +3 -0
  589. package/ts3.5/dist/es6/pagination/lib/Pagination/PageList.d.ts +1 -1
  590. package/ts3.5/dist/es6/pagination/lib/Pagination/Pagination.d.ts +5 -5
  591. package/ts3.5/dist/es6/pagination/lib/Pagination/common/List.d.ts +1 -1
  592. package/ts3.5/dist/es6/pagination/lib/Pagination/common/utils/getValidChildren.d.ts +1 -1
  593. package/ts3.5/dist/es6/pagination/lib/Pagination/common/utils/space.d.ts +28 -28
  594. package/ts3.5/dist/es6/pagination/lib/Pagination/types.d.ts +39 -0
  595. package/ts3.5/dist/es6/pagination/lib/Pagination/usePaginationModel.d.ts +19 -0
  596. package/ts3.5/dist/es6/popup/lib/hooks/usePopupCard.d.ts +5 -2
  597. package/ts3.5/dist/es6/popup/lib/hooks/usePopupCloseButton.d.ts +4 -2
  598. package/ts3.5/dist/es6/popup/lib/hooks/usePopupHeading.d.ts +5 -2
  599. package/ts3.5/dist/es6/popup/lib/hooks/usePopupPopper.d.ts +4 -2
  600. package/ts3.5/dist/es6/popup/lib/hooks/usePopupTarget.d.ts +4 -2
  601. package/ts3.5/dist/es6/tabs/index.d.ts +5 -0
  602. package/ts3.5/dist/es6/tabs/lib/Tabs.d.ts +35 -7
  603. package/ts3.5/dist/es6/tabs/lib/TabsItem.d.ts +107 -0
  604. package/ts3.5/dist/es6/tabs/lib/TabsList.d.ts +43 -0
  605. package/ts3.5/dist/es6/tabs/lib/TabsMenuPopper.d.ts +21 -0
  606. package/ts3.5/dist/es6/tabs/lib/TabsOverflowButton.d.ts +31 -0
  607. package/ts3.5/dist/es6/tabs/lib/{TabPanel.d.ts → TabsPanel.d.ts} +15 -5
  608. package/{dist/commonjs/tabs/lib/TabList.d.ts → ts3.5/dist/es6/tabs/lib/TabsPanels.d.ts} +15 -15
  609. package/ts3.5/dist/es6/tabs/lib/cursor/index.d.ts +1 -1
  610. package/ts3.5/dist/es6/tabs/lib/cursor/useCursorModel.d.ts +23 -13
  611. package/ts3.5/dist/es6/tabs/lib/cursor/useRovingFocus.d.ts +37 -0
  612. package/ts3.5/dist/es6/tabs/lib/list/index.d.ts +2 -1
  613. package/ts3.5/dist/es6/tabs/lib/list/renderItem.d.ts +4 -0
  614. package/ts3.5/dist/es6/tabs/lib/list/useListModel.d.ts +25 -13
  615. package/ts3.5/dist/es6/tabs/lib/list/useListRegisterItem.d.ts +14 -0
  616. package/ts3.5/dist/es6/tabs/lib/menu/Menu.d.ts +80 -0
  617. package/ts3.5/dist/es6/tabs/lib/menu/MenuCard.d.ts +17 -0
  618. package/ts3.5/dist/es6/tabs/lib/menu/MenuItem.d.ts +62 -0
  619. package/ts3.5/dist/es6/tabs/lib/menu/MenuList.d.ts +23 -0
  620. package/ts3.5/dist/es6/tabs/lib/menu/MenuPopper.d.ts +21 -0
  621. package/ts3.5/dist/es6/tabs/lib/menu/MenuTarget.d.ts +21 -0
  622. package/ts3.5/dist/es6/tabs/lib/menu/index.d.ts +8 -0
  623. package/ts3.5/dist/es6/tabs/lib/menu/useMenuModel.d.ts +35 -0
  624. package/ts3.5/dist/es6/tabs/lib/overflow/index.d.ts +5 -0
  625. package/ts3.5/dist/es6/tabs/lib/overflow/useOverflowMeasureContainer.d.ts +8 -0
  626. package/ts3.5/dist/es6/tabs/lib/overflow/useOverflowMeasureItem.d.ts +10 -0
  627. package/ts3.5/dist/es6/tabs/lib/overflow/useOverflowModel.d.ts +69 -0
  628. package/ts3.5/dist/es6/tabs/lib/overflow/useOverflowTarget.d.ts +11 -0
  629. package/ts3.5/dist/es6/tabs/lib/selection/index.d.ts +4 -0
  630. package/ts3.5/dist/es6/tabs/lib/selection/useResetCursorOnBlur.d.ts +13 -0
  631. package/ts3.5/dist/es6/tabs/lib/selection/useSelectionItem.d.ts +8 -0
  632. package/ts3.5/dist/es6/tabs/lib/selection/useSelectionModel.d.ts +62 -0
  633. package/ts3.5/dist/es6/tabs/lib/useTabsModel.d.ts +39 -38
  634. package/ts3.5/dist/es6/tokens/index.d.ts +3 -20
  635. package/ts3.5/dist/es6/tokens/lib/depth.d.ts +109 -3
  636. package/ts3.5/dist/es6/tooltip/lib/OverflowTooltip.d.ts +10 -0
  637. package/ts3.5/dist/es6/tooltip/lib/useTooltip.d.ts +4 -4
  638. package/dist/commonjs/tabs/lib/Tab.d.ts +0 -49
  639. package/dist/commonjs/tabs/lib/Tab.d.ts.map +0 -1
  640. package/dist/commonjs/tabs/lib/Tab.js +0 -101
  641. package/dist/commonjs/tabs/lib/TabList.d.ts.map +0 -1
  642. package/dist/commonjs/tabs/lib/TabPanel.d.ts.map +0 -1
  643. package/dist/commonjs/tabs/lib/TabPanel.js +0 -56
  644. package/dist/commonjs/tabs/lib/cursor/hooks.d.ts +0 -39
  645. package/dist/commonjs/tabs/lib/cursor/hooks.d.ts.map +0 -1
  646. package/dist/commonjs/tabs/lib/hooks.d.ts +0 -10
  647. package/dist/commonjs/tabs/lib/hooks.d.ts.map +0 -1
  648. package/dist/commonjs/tabs/lib/list/hooks.d.ts +0 -11
  649. package/dist/commonjs/tabs/lib/list/hooks.d.ts.map +0 -1
  650. package/dist/commonjs/tabs/lib/list/hooks.js +0 -39
  651. package/dist/es6/tabs/lib/Tab.d.ts +0 -49
  652. package/dist/es6/tabs/lib/Tab.d.ts.map +0 -1
  653. package/dist/es6/tabs/lib/Tab.js +0 -92
  654. package/dist/es6/tabs/lib/TabList.d.ts.map +0 -1
  655. package/dist/es6/tabs/lib/TabPanel.d.ts.map +0 -1
  656. package/dist/es6/tabs/lib/TabPanel.js +0 -51
  657. package/dist/es6/tabs/lib/cursor/hooks.d.ts +0 -39
  658. package/dist/es6/tabs/lib/cursor/hooks.d.ts.map +0 -1
  659. package/dist/es6/tabs/lib/cursor/hooks.js +0 -108
  660. package/dist/es6/tabs/lib/hooks.d.ts +0 -10
  661. package/dist/es6/tabs/lib/hooks.d.ts.map +0 -1
  662. package/dist/es6/tabs/lib/list/hooks.d.ts +0 -11
  663. package/dist/es6/tabs/lib/list/hooks.d.ts.map +0 -1
  664. package/dist/es6/tabs/lib/list/hooks.js +0 -34
  665. package/tabs/lib/Tab.tsx +0 -176
  666. package/tabs/lib/TabList.tsx +0 -59
  667. package/tabs/lib/cursor/hooks.tsx +0 -122
  668. package/tabs/lib/hooks.tsx +0 -31
  669. package/tabs/lib/list/hooks.tsx +0 -45
  670. package/ts3.5/dist/commonjs/tabs/lib/Tab.d.ts +0 -49
  671. package/ts3.5/dist/commonjs/tabs/lib/cursor/hooks.d.ts +0 -39
  672. package/ts3.5/dist/commonjs/tabs/lib/hooks.d.ts +0 -10
  673. package/ts3.5/dist/commonjs/tabs/lib/list/hooks.d.ts +0 -11
  674. package/ts3.5/dist/es6/tabs/lib/Tab.d.ts +0 -49
  675. package/ts3.5/dist/es6/tabs/lib/cursor/hooks.d.ts +0 -39
  676. package/ts3.5/dist/es6/tabs/lib/hooks.d.ts +0 -10
  677. package/ts3.5/dist/es6/tabs/lib/list/hooks.d.ts +0 -11
@@ -1,2 +1,2 @@
1
- export * from './hooks';
1
+ export * from './useRovingFocus';
2
2
  export * from './useCursorModel';
@@ -1,14 +1,14 @@
1
- import { Model, ToModelConfig } from '@workday/canvas-kit-react/common';
2
- import { ListState, ListEvents, BaseListModelConfig, Item } from '../list/useListModel';
1
+ import { ToModelConfig } from '@workday/canvas-kit-react/common';
2
+ import { ListState, ListEvents, BaseListModelConfig, ListModel } from '../list/useListModel';
3
3
  export declare type Orientation = 'horizontal' | 'vertical';
4
- export declare type CursorState = ListState & {
4
+ export declare type CursorState<T = unknown> = ListState<T> & {
5
5
  /** Orientation of the list. This property determines what "next" and "previous" mean. This should
6
6
  * be set to match the layout of UI components */
7
7
  orientation: Orientation;
8
8
  /** The id of the list item the cursor is pointing to */
9
9
  cursorId: string;
10
10
  };
11
- export declare type CursorEvents = ListEvents & {
11
+ export declare type CursorEvents<T = unknown> = ListEvents<T> & {
12
12
  /** Directly sets the cursor to the list item by its identifier. */
13
13
  goTo(data: {
14
14
  id: string;
@@ -24,7 +24,10 @@ export declare type CursorEvents = ListEvents & {
24
24
  /** Set the cursor to the last item in the list */
25
25
  last(): void;
26
26
  };
27
- export declare type CursorModel = Model<CursorState, CursorEvents>;
27
+ export interface CursorModel<T = unknown> extends ListModel<T> {
28
+ state: CursorState<T>;
29
+ events: CursorEvents<T>;
30
+ }
28
31
  export declare const cursorEventMap: {
29
32
  guards: {
30
33
  /** Should a cursor position be set? Use only in advance use-cases */
@@ -45,19 +48,26 @@ export declare const cursorEventMap: {
45
48
  onUpdateItemPosition: "updateItemPosition";
46
49
  };
47
50
  };
48
- export declare type BaseCursorModelConfig = BaseListModelConfig & {
51
+ export declare type BaseCursorModelConfig<T> = BaseListModelConfig<T> & {
49
52
  /**
50
53
  * The orientation of a list of items. Values are either `vertical` or `horizontal`. This value will
51
- * effect which keys activate progression through a list. For example, `horizontal` will activate with
54
+ * effect which ids activate progression through a list. For example, `horizontal` will activate with
52
55
  * left and right arrows while `vertical` will activate with up and down arrows.
53
56
  * @default 'vertical'
54
57
  */
55
58
  orientation?: Orientation;
59
+ /**
60
+ * Initial cursor position. If not provided, the cursor will point to the first item in the list
61
+ */
62
+ initialCursorId?: string;
63
+ };
64
+ export declare type CursorModelConfig<T> = BaseCursorModelConfig<T> & Partial<ToModelConfig<CursorState<T>, CursorEvents<T>, typeof cursorEventMap>>;
65
+ export declare const useCursorNavigation: <T extends unknown>(state: CursorState<T>, getId: (item: T) => string) => {
66
+ getFirst: () => T;
67
+ getLast: () => T;
68
+ getItem: (id: string) => T;
69
+ getNext: (id: string, tries?: number) => T;
70
+ getPrevious: (id: string, tries?: number) => T;
56
71
  };
57
- export declare type CursorModelConfig = BaseCursorModelConfig & Partial<ToModelConfig<CursorState, CursorEvents, typeof cursorEventMap>>;
58
- export declare const getItem: (id: string, items: Item[]) => Item;
59
- export declare const hasItems: (items: Item[]) => boolean;
60
- export declare const getNext: (id: string, items: Item[]) => Item;
61
- export declare const getPrevious: (id: string, items: Item[]) => Item;
62
- export declare const useCursorModel: (config?: CursorModelConfig) => Model<CursorState, CursorEvents>;
72
+ export declare const useCursorModel: <T extends unknown>(config?: CursorModelConfig<T>) => CursorModel<T>;
63
73
  //# sourceMappingURL=useCursorModel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useCursorModel.d.ts","sourceRoot":"","sources":["../../../../../tabs/lib/cursor/useCursorModel.tsx"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,EACL,aAAa,EAGd,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,SAAS,EACT,UAAU,EACV,mBAAmB,EAGnB,IAAI,EAEL,MAAM,sBAAsB,CAAC;AAE9B,oBAAY,WAAW,GAAG,YAAY,GAAG,UAAU,CAAC;AAEpD,oBAAY,WAAW,GAAG,SAAS,GAAG;IACpC;qDACiD;IACjD,WAAW,EAAE,WAAW,CAAC;IACzB,wDAAwD;IACxD,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,oBAAY,YAAY,GAAG,UAAU,GAAG;IACtC,oEAAoE;IACpE,IAAI,CAAC,IAAI,EAAE;QAAC,EAAE,EAAE,MAAM,CAAA;KAAC,GAAG,IAAI,CAAC;IAC/B;gCAC4B;IAC5B,IAAI,IAAI,IAAI,CAAC;IACb;uCACmC;IACnC,QAAQ,IAAI,IAAI,CAAC;IACjB,mDAAmD;IACnD,KAAK,IAAI,IAAI,CAAC;IACd,kDAAkD;IAClD,IAAI,IAAI,IAAI,CAAC;CACd,CAAC;AAEF,oBAAY,WAAW,GAAG,KAAK,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;AAE3D,eAAO,MAAM,cAAc;;QAGvB,qEAAqE;;;;;;;QAKrE;;;;WAIG;;;;;;CAGL,CAAC;AAEH,oBAAY,qBAAqB,GAAG,mBAAmB,GAAG;IACxD;;;;;OAKG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,CAAC;AAEF,oBAAY,iBAAiB,GAAG,qBAAqB,GACnD,OAAO,CAAC,aAAa,CAAC,WAAW,EAAE,YAAY,EAAE,OAAO,cAAc,CAAC,CAAC,CAAC;AAU3E,eAAO,MAAM,OAAO,qCAInB,CAAC;AAqBF,eAAO,MAAM,QAAQ,4BAA0D,CAAC;AAEhF,eAAO,MAAM,OAAO,qCAAmB,CAAC;AACxC,eAAO,MAAM,WAAW,qCAAoB,CAAC;AAE7C,eAAO,MAAM,cAAc,kEA2C1B,CAAC"}
1
+ {"version":3,"file":"useCursorModel.d.ts","sourceRoot":"","sources":["../../../../../tabs/lib/cursor/useCursorModel.tsx"],"names":[],"mappings":"AACA,OAAO,EAAiB,aAAa,EAAsB,MAAM,kCAAkC,CAAC;AAEpG,OAAO,EACL,SAAS,EACT,UAAU,EACV,mBAAmB,EAInB,SAAS,EACV,MAAM,sBAAsB,CAAC;AAE9B,oBAAY,WAAW,GAAG,YAAY,GAAG,UAAU,CAAC;AAEpD,oBAAY,WAAW,CAAC,CAAC,GAAG,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG;IACpD;qDACiD;IACjD,WAAW,EAAE,WAAW,CAAC;IACzB,wDAAwD;IACxD,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,oBAAY,YAAY,CAAC,CAAC,GAAG,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG;IACtD,oEAAoE;IACpE,IAAI,CAAC,IAAI,EAAE;QAAC,EAAE,EAAE,MAAM,CAAA;KAAC,GAAG,IAAI,CAAC;IAC/B;gCAC4B;IAC5B,IAAI,IAAI,IAAI,CAAC;IACb;uCACmC;IACnC,QAAQ,IAAI,IAAI,CAAC;IACjB,mDAAmD;IACnD,KAAK,IAAI,IAAI,CAAC;IACd,kDAAkD;IAClD,IAAI,IAAI,IAAI,CAAC;CACd,CAAC;AAEF,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,SAAS,CAAC,CAAC,CAAC;IAC5D,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IACtB,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;CACzB;AAED,eAAO,MAAM,cAAc;;QAGvB,qEAAqE;;;;;;;QAKrE;;;;WAIG;;;;;;CAGL,CAAC;AAEH,oBAAY,qBAAqB,CAAC,CAAC,IAAI,mBAAmB,CAAC,CAAC,CAAC,GAAG;IAC9D;;;;;OAKG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,oBAAY,iBAAiB,CAAC,CAAC,IAAI,qBAAqB,CAAC,CAAC,CAAC,GACzD,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,OAAO,cAAc,CAAC,CAAC,CAAC;AAEjF,eAAO,MAAM,mBAAmB;;;;;;CAkD/B,CAAC;AAEF,eAAO,MAAM,cAAc,sEAyC1B,CAAC"}
@@ -10,7 +10,7 @@ var __assign = (this && this.__assign) || function () {
10
10
  return __assign.apply(this, arguments);
11
11
  };
12
12
  import React from 'react';
13
- import { createEventMap, useEventMap, assert, } from '@workday/canvas-kit-react/common';
13
+ import { createEventMap, useEventMap, assert } from '@workday/canvas-kit-react/common';
14
14
  import { listEventMap, useListModel, } from '../list/useListModel';
15
15
  export var cursorEventMap = createEventMap()({
16
16
  guards: __assign(__assign({}, listEventMap.guards), {
@@ -24,78 +24,79 @@ export var cursorEventMap = createEventMap()({
24
24
  */
25
25
  onGoTo: 'goTo' }),
26
26
  });
27
- var getFirst = function (items) {
28
- return items[0];
29
- };
30
- var getLast = function (items) {
31
- return items[items.length - 1];
32
- };
33
- export var getItem = function (id, items) {
34
- var item = id ? items.find(function (item) { return item.id === id; }) : getFirst(items); // no id, return first item
35
- assert(item, "Item not found: " + id);
36
- return item;
27
+ export var useCursorNavigation = function (state, getId) {
28
+ // refs for performance so that new functions aren't created every render
29
+ var getIdRef = React.useRef(getId);
30
+ var itemsRef = React.useRef(state.items);
31
+ var nonInteractiveIdsRef = React.useRef(state.nonInteractiveIds);
32
+ itemsRef.current = state.items;
33
+ nonInteractiveIdsRef.current = state.nonInteractiveIds;
34
+ // return a memoized function to prevent recreation of functions every render
35
+ return React.useMemo(function () {
36
+ var getFirst = function () { return itemsRef.current[0]; };
37
+ var getLast = function () { return itemsRef.current[itemsRef.current.length - 1]; };
38
+ var getItem = function (id) {
39
+ var item = id ? itemsRef.current.find(function (item) { return getIdRef.current(item) === id; }) : getFirst(); // no id, return first item
40
+ assert(item, "Item not found: " + id);
41
+ return item;
42
+ };
43
+ var getOffsetItem = function (offset) { return function (id, tries) {
44
+ if (tries === void 0) { tries = itemsRef.current.length; }
45
+ var items = itemsRef.current;
46
+ var item = getItem(id);
47
+ var getId = getIdRef.current;
48
+ var currentIndex = items.findIndex(function (i) { return getId(item) === getId(i); });
49
+ var nextIndex = currentIndex + offset;
50
+ if (nextIndex < 0) {
51
+ nextIndex = items.length - 1;
52
+ }
53
+ else if (nextIndex >= items.length) {
54
+ nextIndex = 0;
55
+ }
56
+ if (nonInteractiveIdsRef.current.includes(getId(items[nextIndex])) && tries > 0) {
57
+ // The next item is disabled, try again, but only if we haven't already tried everything.
58
+ // Avoid an infinite loop with `tries`
59
+ return getOffsetItem(offset)(getId(items[nextIndex]), tries - 1);
60
+ }
61
+ return items[nextIndex];
62
+ }; };
63
+ var getNext = getOffsetItem(1);
64
+ var getPrevious = getOffsetItem(-1);
65
+ return { getFirst: getFirst, getLast: getLast, getItem: getItem, getNext: getNext, getPrevious: getPrevious };
66
+ }, []);
37
67
  };
38
- var getOffsetItem = function (offset) { return function (id, items) {
39
- var _a;
40
- var item = getItem(id, items);
41
- var currentIndex = items.findIndex(function (_a) {
42
- var id = _a.id;
43
- return item.id === id;
44
- });
45
- var nextIndex = currentIndex + offset;
46
- if (nextIndex < 0) {
47
- nextIndex = items.length - 1;
48
- }
49
- else if (nextIndex >= items.length) {
50
- nextIndex = 0;
51
- }
52
- var disabledAttribute = (_a = items[nextIndex].ref.current) === null || _a === void 0 ? void 0 : _a.getAttribute('disabled');
53
- if (disabledAttribute !== null || disabledAttribute === 'false') {
54
- // The next item is disabled, try again
55
- return getOffsetItem(offset)(items[nextIndex].id, items);
56
- }
57
- return items[nextIndex];
58
- }; };
59
- export var hasItems = function (items) { return items.some(function (item) { return item.ref.current; }); };
60
- export var getNext = getOffsetItem(1);
61
- export var getPrevious = getOffsetItem(-1);
62
68
  export var useCursorModel = function (config) {
63
69
  if (config === void 0) { config = {}; }
70
+ var _a;
64
71
  var orientation = React.useState(config.orientation || 'vertical')[0];
65
- var _a = React.useState(''), cursorId = _a[0], setCursorId = _a[1];
66
- var initialCurrentRef = React.useRef('');
72
+ var _b = React.useState(''), cursorId = _b[0], setCursorId = _b[1];
67
73
  var list = useListModel(config);
74
+ var initialCurrentRef = React.useRef(config.initialCursorId || ((_a = config.items) === null || _a === void 0 ? void 0 : _a.length) ? list.getId(config.items[0]) : '');
68
75
  var state = __assign(__assign({}, list.state), { orientation: orientation, cursorId: cursorId });
76
+ var navigation = useCursorNavigation(state, list.getId);
69
77
  var events = useEventMap(cursorEventMap, state, config, __assign(__assign({}, list.events), { registerItem: function (data) {
70
78
  // point the cursor at the first item
71
79
  if (!initialCurrentRef.current) {
72
- initialCurrentRef.current = data.item.id;
80
+ initialCurrentRef.current = list.getId(data.item);
73
81
  setCursorId(initialCurrentRef.current);
74
82
  }
75
83
  list.events.registerItem(data);
76
84
  },
77
- unregisterItem: function (data) {
78
- // move the cursor forward if the the cursor is pointing to an item that is being removed
79
- if (state.cursorId === data.id && state.items.some(function (i) { return i.ref.current !== null; })) {
80
- events.next();
81
- }
82
- list.events.unregisterItem(data);
83
- },
84
85
  goTo: function (_a) {
85
86
  var id = _a.id;
86
87
  setCursorId(id);
87
88
  },
88
89
  next: function () {
89
- setCursorId(getNext(state.cursorId, state.items).id);
90
+ setCursorId(list.getId(navigation.getNext(state.cursorId)));
90
91
  },
91
92
  previous: function () {
92
- setCursorId(getPrevious(state.cursorId, state.items).id);
93
+ setCursorId(list.getId(navigation.getPrevious(state.cursorId)));
93
94
  },
94
95
  first: function () {
95
- setCursorId(getFirst(state.items).id);
96
+ setCursorId(list.getId(navigation.getFirst()));
96
97
  },
97
98
  last: function () {
98
- setCursorId(getLast(state.items).id);
99
+ setCursorId(list.getId(navigation.getLast()));
99
100
  } }));
100
- return { state: state, events: events };
101
+ return { state: state, events: events, getId: list.getId };
101
102
  };
@@ -0,0 +1,37 @@
1
+ import React from 'react';
2
+ import { CursorModel } from './useCursorModel';
3
+ export declare const orientationKeyMap: {
4
+ readonly horizontal: {
5
+ readonly ArrowLeft: "previous";
6
+ readonly Left: "previous";
7
+ readonly ArrowRight: "next";
8
+ readonly Right: "next";
9
+ readonly Home: "first";
10
+ readonly End: "last";
11
+ };
12
+ readonly vertical: {
13
+ readonly ArrowUp: "previous";
14
+ readonly Up: "previous";
15
+ readonly ArrowDown: "next";
16
+ readonly Down: "next";
17
+ readonly Home: "first";
18
+ readonly End: "last";
19
+ };
20
+ };
21
+ /**
22
+ * Handles the roving focus behavior of a Cursor model. It should be added to the element
23
+ * representing a list item.
24
+ *
25
+ * @see https://www.w3.org/TR/wai-aria-practices/#kbd_roving_tabindex
26
+ */
27
+ export declare const useRovingFocus: <P extends {}, R>(model: CursorModel<unknown>, elemProps?: P | undefined, ref?: ((instance: R | null) => void) | React.RefObject<R> | null | undefined) => {
28
+ onKeyDown(event: React.KeyboardEvent<Element>): void;
29
+ onFocus(): void;
30
+ onBlur(): void;
31
+ id: string;
32
+ tabIndex: number;
33
+ ref: ((instance: any) => void) | React.RefObject<any> | null | undefined;
34
+ } & P & (R extends HTMLOrSVGElement ? {
35
+ ref: React.Ref<R>;
36
+ } : {});
37
+ //# sourceMappingURL=useRovingFocus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRovingFocus.d.ts","sourceRoot":"","sources":["../../../../../tabs/lib/cursor/useRovingFocus.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAC,WAAW,EAAsB,MAAM,kBAAkB,CAAC;AAElE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;CAiBpB,CAAC;AAWX;;;;;GAKG;AACH,eAAO,MAAM,cAAc;;;;;;;;;OAsD1B,CAAC"}
@@ -0,0 +1,84 @@
1
+ import React from 'react';
2
+ import { useIsRTL, createHook } from '@workday/canvas-kit-react/common';
3
+ import { useCursorNavigation } from './useCursorModel';
4
+ export var orientationKeyMap = {
5
+ horizontal: {
6
+ ArrowLeft: 'previous',
7
+ Left: 'previous',
8
+ ArrowRight: 'next',
9
+ Right: 'next',
10
+ Home: 'first',
11
+ End: 'last',
12
+ },
13
+ vertical: {
14
+ ArrowUp: 'previous',
15
+ Up: 'previous',
16
+ ArrowDown: 'next',
17
+ Down: 'next',
18
+ Home: 'first',
19
+ End: 'last',
20
+ },
21
+ };
22
+ var rightToLeftMap = {
23
+ ArrowLeft: 'ArrowRight',
24
+ Left: 'Right',
25
+ ArrowRight: 'ArrowLeft',
26
+ Right: 'Left',
27
+ Home: 'End',
28
+ End: 'Home',
29
+ };
30
+ /**
31
+ * Handles the roving focus behavior of a Cursor model. It should be added to the element
32
+ * representing a list item.
33
+ *
34
+ * @see https://www.w3.org/TR/wai-aria-practices/#kbd_roving_tabindex
35
+ */
36
+ export var useRovingFocus = createHook(function (_a, ref, elemProps) {
37
+ var state = _a.state, events = _a.events, getId = _a.getId;
38
+ if (elemProps === void 0) { elemProps = {}; }
39
+ // Tracks when this element has focus. If this item is removed while still focused, we have to
40
+ // inform the model to move the cursor to the next item.
41
+ var focusRef = React.useRef(false);
42
+ var getIdRef = React.useRef(getId);
43
+ // Create a ref out of state. We don't want to watch state on unmount, so we use a ref to get the
44
+ // current value at the time of unmounting. Otherwise, `state.items` would be a cached value of an
45
+ // empty array
46
+ var stateRef = React.useRef(state);
47
+ stateRef.current = state;
48
+ var keyDownRef = React.useRef(false);
49
+ var isRTL = useIsRTL();
50
+ var navigation = useCursorNavigation(state, getId);
51
+ React.useEffect(function () {
52
+ var _a;
53
+ if (keyDownRef.current) {
54
+ var item = navigation.getItem(state.cursorId);
55
+ (_a = document.querySelector("#" + state.id + "-" + getIdRef.current(item))) === null || _a === void 0 ? void 0 : _a.focus();
56
+ keyDownRef.current = false;
57
+ }
58
+ }, [state.cursorId, state.id, navigation]);
59
+ return {
60
+ onKeyDown: function (event) {
61
+ Object.keys(orientationKeyMap[state.orientation]).forEach(function (key) {
62
+ var _a;
63
+ if (isRTL ? event.key === rightToLeftMap[key] : event.key === key) {
64
+ var event_1 = orientationKeyMap[state.orientation][key];
65
+ keyDownRef.current = true;
66
+ (_a = events[event_1]) === null || _a === void 0 ? void 0 : _a.call(events);
67
+ }
68
+ });
69
+ },
70
+ onFocus: function () {
71
+ focusRef.current = true;
72
+ },
73
+ onBlur: function () {
74
+ focusRef.current = false;
75
+ },
76
+ id: state.id + "-" + elemProps.name,
77
+ tabIndex: !state.cursorId
78
+ ? 0 // cursor isn't known yet, be safe and mark this as focusable
79
+ : !!elemProps.name && state.cursorId === elemProps.name
80
+ ? 0 // A name is known and cursor is here
81
+ : -1,
82
+ ref: ref,
83
+ };
84
+ });
@@ -1,3 +1,4 @@
1
- export * from './hooks';
1
+ export * from './useListRegisterItem';
2
2
  export * from './useListModel';
3
+ export * from './renderItem';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../tabs/lib/list/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../tabs/lib/list/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC"}
@@ -1,2 +1,3 @@
1
- export * from './hooks';
1
+ export * from './useListRegisterItem';
2
2
  export * from './useListModel';
3
+ export * from './renderItem';
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { ListModel } from './useListModel';
3
+ export declare function useRenderItems<T>(model: ListModel<T>, children: ((item: T) => React.ReactNode) | React.ReactNode): {} | null | undefined;
4
+ //# sourceMappingURL=renderItem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderItem.d.ts","sourceRoot":"","sources":["../../../../../tabs/lib/list/renderItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAEzC,wBAAgB,cAAc,CAAC,CAAC,EAC9B,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EACnB,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,SAAS,yBAY3D"}
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ export function useRenderItems(model, children) {
3
+ var items = React.useMemo(function () {
4
+ return typeof children === 'function'
5
+ ? model.state.items.map(function (item) { return React.cloneElement(children(item), { key: model.getId(item) }); })
6
+ : null;
7
+ // If we added `children` as a dependency, this memo would be useless. If the user wants the
8
+ // item to rerender, the item and items array needs to be updated.
9
+ // eslint-disable-next-line react-hooks/exhaustive-deps
10
+ }, [model.state.items]);
11
+ return items || children;
12
+ }
@@ -1,22 +1,25 @@
1
1
  import React from 'react';
2
2
  import { Model, ToModelConfig } from '@workday/canvas-kit-react/common';
3
- export declare type Item = {
4
- /** IDREF of the list. Children ids can be derived from this id */
5
- id: string;
6
- ref: React.RefObject<HTMLElement>;
7
- };
8
- export declare type ListState = {
3
+ export declare type ListState<T = unknown> = {
9
4
  /** IDREF of the list. Children ids can be derived from this id */
10
5
  id: string;
11
6
  /** Used as an auto-incrementing ID for accessibility */
12
7
  indexRef: React.RefObject<number>;
13
- items: Item[];
8
+ items: T[];
9
+ /**
10
+ * An array of ids of non-interactive elements. Non-interactive elements usually have `disabled`
11
+ * applied to them and thus are not focusable by the browser. Lists need to know about these so
12
+ * that keyboard navigation properly skips over these items. Interactive elements that are
13
+ * disabled should use `[aria-disabled]` instead and should still receive focus.
14
+ * @see https://www.w3.org/TR/wai-aria-practices-1.1/#kbd_disabled_controls
15
+ */
16
+ nonInteractiveIds: string[];
14
17
  };
15
- export declare type ListEvents = {
18
+ export declare type ListEvents<T = unknown> = {
16
19
  /** Register an item to the list. Takes in an identifier, a React.Ref and an optional index. This should be called on
17
20
  * component mount */
18
21
  registerItem(data: {
19
- item: Item;
22
+ item: T;
20
23
  index?: number;
21
24
  }): void;
22
25
  /** Unregister an item by its identifier. This should be called when the component is unmounted */
@@ -29,7 +32,9 @@ export declare type ListEvents = {
29
32
  index: number;
30
33
  }): void;
31
34
  };
32
- export declare type ListModel = Model<ListState, ListEvents>;
35
+ export interface ListModel<T = unknown> extends Model<ListState<T>, ListEvents<T>> {
36
+ getId: (item: T) => string;
37
+ }
33
38
  export declare const listEventMap: {
34
39
  guards: {
35
40
  /**
@@ -72,10 +77,17 @@ export declare const listEventMap: {
72
77
  onUpdateItemPosition: "updateItemPosition";
73
78
  };
74
79
  };
75
- export declare type BaseListModelConfig = {
80
+ export declare type BaseListModelConfig<T = unknown> = {
76
81
  /** IDREF of the list. Children ids can be derived from this id */
77
82
  id?: string;
83
+ items?: T[];
84
+ getId?: (item: T) => string;
85
+ /**
86
+ * Array of all ids which are currently disabled
87
+ */
88
+ nonInteractiveIds?: string[];
78
89
  };
79
- export declare type ListModelConfig = BaseListModelConfig & Partial<ToModelConfig<ListState, ListEvents, typeof listEventMap>>;
80
- export declare const useListModel: (config?: ListModelConfig) => Model<ListState, ListEvents>;
90
+ export declare type ListModelConfig<T> = BaseListModelConfig<T> & Partial<ToModelConfig<ListState<T>, ListEvents<T>, typeof listEventMap>>;
91
+ export declare const defaultGetId: (item: any) => string;
92
+ export declare const useListModel: <T extends unknown>(config?: ListModelConfig<T>) => ListModel<T>;
81
93
  //# sourceMappingURL=useListModel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useListModel.d.ts","sourceRoot":"","sources":["../../../../../tabs/lib/list/useListModel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAEL,KAAK,EACL,aAAa,EAGd,MAAM,kCAAkC,CAAC;AAE1C,oBAAY,IAAI,GAAG;IACjB,kEAAkE;IAClE,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;CACnC,CAAC;AAEF,oBAAY,SAAS,GAAG;IACtB,kEAAkE;IAClE,EAAE,EAAE,MAAM,CAAC;IACX,wDAAwD;IACxD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAClC,KAAK,EAAE,IAAI,EAAE,CAAC;CACf,CAAC;AAEF,oBAAY,UAAU,GAAG;IACvB;yBACqB;IACrB,YAAY,CAAC,IAAI,EAAE;QAAC,IAAI,EAAE,IAAI,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAC,GAAG,IAAI,CAAC;IACvD,kGAAkG;IAClG,cAAc,CAAC,IAAI,EAAE;QAAC,EAAE,EAAE,MAAM,CAAA;KAAC,GAAG,IAAI,CAAC;IACzC,yGAAyG;IACzG,kBAAkB,CAAC,IAAI,EAAE;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC,GAAG,IAAI,CAAC;CAC7D,CAAC;AAEF,oBAAY,SAAS,GAAG,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;AAErD,eAAO,MAAM,YAAY;;QAErB;;;aAGK;;QAEL;;;WAGG;;QAEH;;;WAGG;;;;QAIH;;;;;WAKG;;QAEH;;;;;WAKG;;QAEH;;;;;WAKG;;;CAGL,CAAC;AAEH,oBAAY,mBAAmB,GAAG;IAChC,kEAAkE;IAClE,EAAE,CAAC,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,oBAAY,eAAe,GAAG,mBAAmB,GAC/C,OAAO,CAAC,aAAa,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,YAAY,CAAC,CAAC,CAAC;AAErE,eAAO,MAAM,YAAY,4DAsCxB,CAAC"}
1
+ {"version":3,"file":"useListModel.d.ts","sourceRoot":"","sources":["../../../../../tabs/lib/list/useListModel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAEL,KAAK,EACL,aAAa,EAId,MAAM,kCAAkC,CAAC;AAE1C,oBAAY,SAAS,CAAC,CAAC,GAAG,OAAO,IAAI;IACnC,kEAAkE;IAClE,EAAE,EAAE,MAAM,CAAC;IACX,wDAAwD;IACxD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAClC,KAAK,EAAE,CAAC,EAAE,CAAC;IACX;;;;;;OAMG;IACH,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B,CAAC;AAEF,oBAAY,UAAU,CAAC,CAAC,GAAG,OAAO,IAAI;IACpC;yBACqB;IACrB,YAAY,CAAC,IAAI,EAAE;QAAC,IAAI,EAAE,CAAC,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAC,GAAG,IAAI,CAAC;IACpD,kGAAkG;IAClG,cAAc,CAAC,IAAI,EAAE;QAAC,EAAE,EAAE,MAAM,CAAA;KAAC,GAAG,IAAI,CAAC;IACzC,yGAAyG;IACzG,kBAAkB,CAAC,IAAI,EAAE;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC,GAAG,IAAI,CAAC;CAC7D,CAAC;AAEF,MAAM,WAAW,SAAS,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IAChF,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;CAC5B;AAKD,eAAO,MAAM,YAAY;;QAErB;;;aAGK;;QAEL;;;WAGG;;QAEH;;;WAGG;;;;QAIH;;;;;WAKG;;QAEH;;;;;WAKG;;QAEH;;;;;WAKG;;;CAGL,CAAC;AAEH,oBAAY,mBAAmB,CAAC,CAAC,GAAG,OAAO,IAAI;IAC7C,kEAAkE;IAClE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;IACZ,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IAC5B;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B,CAAC;AAEF,oBAAY,eAAe,CAAC,CAAC,IAAI,mBAAmB,CAAC,CAAC,CAAC,GACrD,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,YAAY,CAAC,CAAC,CAAC;AAE3E,eAAO,MAAM,YAAY,uBAGxB,CAAC;AAEF,eAAO,MAAM,YAAY,kEA4CxB,CAAC"}
@@ -6,7 +6,10 @@ var __spreadArrays = (this && this.__spreadArrays) || function () {
6
6
  return r;
7
7
  };
8
8
  import React from 'react';
9
- import { createEventMap, useEventMap, useUniqueId, } from '@workday/canvas-kit-react/common';
9
+ import { createEventMap, useEventMap, useUniqueId, assert, } from '@workday/canvas-kit-react/common';
10
+ // We don't have a way of knowing what the generic could be, so we leave it as `unknown`. It will
11
+ // probably need to be cast to the generic in use inside extending models. This will not effect the
12
+ // use of the model in an application, only in models composing this model.
10
13
  export var listEventMap = createEventMap()({
11
14
  guards: {
12
15
  /**
@@ -49,12 +52,22 @@ export var listEventMap = createEventMap()({
49
52
  onUpdateItemPosition: 'updateItemPosition',
50
53
  },
51
54
  });
55
+ export var defaultGetId = function (item) {
56
+ assert(item.id, 'A list item must have an `id` field or a `getId` function defined');
57
+ return item.id;
58
+ };
52
59
  export var useListModel = function (config) {
53
60
  if (config === void 0) { config = {}; }
54
61
  var id = useUniqueId(config.id);
55
62
  var indexRef = React.useRef(0);
56
- var _a = React.useState([]), items = _a[0], setItems = _a[1];
57
- var state = { id: id, items: items, indexRef: indexRef };
63
+ var _a = React.useState(config.items || []), items = _a[0], setItems = _a[1];
64
+ var getId = config.getId || defaultGetId;
65
+ var state = {
66
+ id: id,
67
+ items: config.items || items,
68
+ indexRef: indexRef,
69
+ nonInteractiveIds: config.nonInteractiveIds || [],
70
+ };
58
71
  var events = useEventMap(listEventMap, state, config, {
59
72
  registerItem: function (_a) {
60
73
  var item = _a.item, index = _a.index;
@@ -71,8 +84,8 @@ export var useListModel = function (config) {
71
84
  unregisterItem: function (_a) {
72
85
  var id = _a.id;
73
86
  setItems(function (items) {
74
- if (items.find(function (item) { return item.id === id; })) {
75
- return items.filter(function (item) { return item.id !== id; });
87
+ if (items.find(function (item) { return getId(item) === id; })) {
88
+ return items.filter(function (item) { return getId(item) !== id; });
76
89
  }
77
90
  else {
78
91
  return items;
@@ -82,11 +95,11 @@ export var useListModel = function (config) {
82
95
  updateItemPosition: function (_a) {
83
96
  var id = _a.id, index = _a.index;
84
97
  setItems(function (items) {
85
- var copy = items.filter(function (item) { return item.id !== id; });
86
- copy.splice(index, 0, items.find(function (item) { return item.id === id; }));
98
+ var copy = items.filter(function (item) { return getId(item) !== id; });
99
+ copy.splice(index, 0, items.find(function (item) { return getId(item) === id; }));
87
100
  return copy;
88
101
  });
89
102
  },
90
103
  });
91
- return { state: state, events: events };
104
+ return { state: state, events: events, getId: getId };
92
105
  };
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ import { ListModel } from './useListModel';
3
+ /**
4
+ * Registers an item with a list. It will return elemProps with a `name` which can be used by other
5
+ * hooks to identify the item in the list.
6
+ */
7
+ export declare const useListRegisterItem: <P extends {}, R>(model: ListModel<unknown>, elemProps?: P | undefined, ref?: ((instance: R | null) => void) | React.RefObject<R> | null | undefined) => {
8
+ 'data-name': string;
9
+ name: string;
10
+ disabled: boolean | undefined;
11
+ } & P & (R extends HTMLOrSVGElement ? {
12
+ ref: React.Ref<R>;
13
+ } : {});
14
+ //# sourceMappingURL=useListRegisterItem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useListRegisterItem.d.ts","sourceRoot":"","sources":["../../../../../tabs/lib/list/useListRegisterItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAEzC;;;GAGG;AACH,eAAO,MAAM,mBAAmB;;;;;;OA0C/B,CAAC"}
@@ -0,0 +1,41 @@
1
+ import React from 'react';
2
+ import { useMountLayout, createHook } from '@workday/canvas-kit-react/common';
3
+ /**
4
+ * Registers an item with a list. It will return elemProps with a `name` which can be used by other
5
+ * hooks to identify the item in the list.
6
+ */
7
+ export var useListRegisterItem = createHook(function (_a, _, elemProps) {
8
+ var state = _a.state, events = _a.events, getId = _a.getId;
9
+ if (elemProps === void 0) { elemProps = {}; }
10
+ var _b = React.useState(elemProps.name || ''), localId = _b[0], setLocalId = _b[1];
11
+ var firstRender = React.useRef(true);
12
+ React.useLayoutEffect(function () {
13
+ if (elemProps.index !== undefined && !firstRender.current) {
14
+ events.updateItemPosition({ id: localId, index: elemProps.index });
15
+ }
16
+ // we only care about the index changing
17
+ // eslint-disable-next-line react-hooks/exhaustive-deps
18
+ }, [elemProps.index]);
19
+ useMountLayout(function () {
20
+ var defaultId = state.indexRef.current;
21
+ var itemId = elemProps.name || String(defaultId);
22
+ // bail early if item already exists. This happens if items were already provided.
23
+ if (state.items.find(function (item) { return getId(item) === elemProps.name; })) {
24
+ return;
25
+ }
26
+ events.registerItem({
27
+ item: { id: itemId },
28
+ index: elemProps.index,
29
+ });
30
+ setLocalId(itemId);
31
+ firstRender.current = false;
32
+ return function () {
33
+ events.unregisterItem({ id: itemId });
34
+ };
35
+ });
36
+ return {
37
+ 'data-name': localId,
38
+ name: localId,
39
+ disabled: elemProps.disabled || state.nonInteractiveIds.includes(localId) ? true : undefined,
40
+ };
41
+ });