@workday/canvas-kit-react 5.3.0-next.3 → 5.3.0-next.32

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 (777) 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/checkbox/lib/Checkbox.tsx +1 -1
  9. package/common/README.md +78 -0
  10. package/common/index.ts +1 -0
  11. package/common/lib/EllipsisText.tsx +11 -0
  12. package/common/lib/styles/accessibleHide.ts +2 -2
  13. package/common/lib/theming/README.md +189 -25
  14. package/common/lib/theming/breakpoints.ts +296 -16
  15. package/common/lib/theming/types.ts +191 -1
  16. package/common/lib/utils/components.ts +50 -23
  17. package/common/lib/utils/index.ts +2 -0
  18. package/common/lib/utils/mergeProps.ts +4 -0
  19. package/common/lib/utils/useConstant.ts +18 -0
  20. package/common/lib/utils/useIsFullscreen.ts +20 -0
  21. package/common/lib/utils/useResizeObserver.ts +29 -0
  22. package/common/lib/utils/useUniqueId.ts +46 -4
  23. package/cookie-banner/README.md +15 -10
  24. package/cookie-banner/index.ts +3 -3
  25. package/cookie-banner/lib/CookieBanner.tsx +29 -4
  26. package/dist/commonjs/action-bar/lib/ActionBar.d.ts.map +1 -1
  27. package/dist/commonjs/action-bar/lib/ActionBar.js +35 -27
  28. package/dist/commonjs/button/lib/PrimaryButton.d.ts +80 -6
  29. package/dist/commonjs/button/lib/PrimaryButton.d.ts.map +1 -1
  30. package/dist/commonjs/button/lib/PrimaryButton.js +80 -26
  31. package/dist/commonjs/button/lib/SecondaryButton.d.ts +8 -5
  32. package/dist/commonjs/button/lib/SecondaryButton.d.ts.map +1 -1
  33. package/dist/commonjs/button/lib/SecondaryButton.js +22 -12
  34. package/dist/commonjs/button/lib/TertiaryButton.d.ts +8 -4
  35. package/dist/commonjs/button/lib/TertiaryButton.d.ts.map +1 -1
  36. package/dist/commonjs/button/lib/TertiaryButton.js +24 -20
  37. package/dist/commonjs/button/lib/parts/ButtonContainer.d.ts +5 -3
  38. package/dist/commonjs/button/lib/parts/ButtonContainer.d.ts.map +1 -1
  39. package/dist/commonjs/button/lib/parts/ButtonContainer.js +7 -9
  40. package/dist/commonjs/button/lib/parts/ButtonLabel.d.ts +1 -1
  41. package/dist/commonjs/button/lib/parts/ButtonLabel.d.ts.map +1 -1
  42. package/dist/commonjs/button/lib/parts/ButtonLabelIcon.d.ts +7 -4
  43. package/dist/commonjs/button/lib/parts/ButtonLabelIcon.d.ts.map +1 -1
  44. package/dist/commonjs/button/lib/parts/ButtonLabelIcon.js +28 -13
  45. package/dist/commonjs/button/lib/types.d.ts +9 -0
  46. package/dist/commonjs/button/lib/types.d.ts.map +1 -1
  47. package/dist/commonjs/checkbox/lib/Checkbox.d.ts +1 -1
  48. package/dist/commonjs/common/index.d.ts +1 -0
  49. package/dist/commonjs/common/index.d.ts.map +1 -1
  50. package/dist/commonjs/common/index.js +1 -0
  51. package/dist/commonjs/common/lib/EllipsisText.d.ts +5 -0
  52. package/dist/commonjs/common/lib/EllipsisText.d.ts.map +1 -0
  53. package/dist/commonjs/common/lib/EllipsisText.js +13 -0
  54. package/dist/commonjs/common/lib/styles/accessibleHide.d.ts +2 -2
  55. package/dist/commonjs/common/lib/styles/accessibleHide.d.ts.map +1 -1
  56. package/dist/commonjs/common/lib/theming/breakpoints.d.ts +287 -6
  57. package/dist/commonjs/common/lib/theming/breakpoints.d.ts.map +1 -1
  58. package/dist/commonjs/common/lib/theming/breakpoints.js +192 -10
  59. package/dist/commonjs/common/lib/theming/types.d.ts +191 -1
  60. package/dist/commonjs/common/lib/theming/types.d.ts.map +1 -1
  61. package/dist/commonjs/common/lib/utils/components.d.ts +19 -9
  62. package/dist/commonjs/common/lib/utils/components.d.ts.map +1 -1
  63. package/dist/commonjs/common/lib/utils/components.js +12 -2
  64. package/dist/commonjs/common/lib/utils/index.d.ts +2 -0
  65. package/dist/commonjs/common/lib/utils/index.d.ts.map +1 -1
  66. package/dist/commonjs/common/lib/utils/index.js +2 -0
  67. package/dist/commonjs/common/lib/utils/mergeProps.d.ts.map +1 -1
  68. package/dist/commonjs/common/lib/utils/mergeProps.js +5 -0
  69. package/dist/commonjs/common/lib/utils/useConstant.d.ts +9 -0
  70. package/dist/commonjs/common/lib/utils/useConstant.d.ts.map +1 -0
  71. package/dist/commonjs/common/lib/utils/useConstant.js +18 -0
  72. package/dist/commonjs/common/lib/utils/useIsFullscreen.d.ts +2 -0
  73. package/dist/commonjs/common/lib/utils/useIsFullscreen.d.ts.map +1 -0
  74. package/dist/commonjs/common/lib/utils/useIsFullscreen.js +20 -0
  75. package/dist/commonjs/common/lib/utils/useResizeObserver.d.ts +3 -0
  76. package/dist/commonjs/common/lib/utils/useResizeObserver.d.ts.map +1 -0
  77. package/dist/commonjs/common/lib/utils/useResizeObserver.js +42 -0
  78. package/dist/commonjs/common/lib/utils/useUniqueId.d.ts +28 -0
  79. package/dist/commonjs/common/lib/utils/useUniqueId.d.ts.map +1 -1
  80. package/dist/commonjs/common/lib/utils/useUniqueId.js +42 -14
  81. package/dist/commonjs/cookie-banner/index.d.ts +3 -3
  82. package/dist/commonjs/cookie-banner/index.d.ts.map +1 -1
  83. package/dist/commonjs/cookie-banner/index.js +1 -1
  84. package/dist/commonjs/cookie-banner/lib/CookieBanner.d.ts +19 -2
  85. package/dist/commonjs/cookie-banner/lib/CookieBanner.d.ts.map +1 -1
  86. package/dist/commonjs/cookie-banner/lib/CookieBanner.js +19 -8
  87. package/dist/commonjs/dialog/lib/hooks/useDialogCard.d.ts +4 -16
  88. package/dist/commonjs/dialog/lib/hooks/useDialogCard.d.ts.map +1 -1
  89. package/dist/commonjs/dialog/lib/hooks/useDialogPopper.d.ts +5 -2
  90. package/dist/commonjs/dialog/lib/hooks/useDialogPopper.d.ts.map +1 -1
  91. package/dist/commonjs/form-field/lib/FormField.d.ts.map +1 -1
  92. package/dist/commonjs/form-field/lib/FormField.js +1 -2
  93. package/dist/commonjs/loading-animation/lib/LoadingDots.js +3 -6
  94. package/dist/commonjs/modal/lib/ModalOverlay.d.ts +4 -2
  95. package/dist/commonjs/modal/lib/ModalOverlay.d.ts.map +1 -1
  96. package/dist/commonjs/modal/lib/hooks/useModalCard.d.ts +4 -16
  97. package/dist/commonjs/modal/lib/hooks/useModalCard.d.ts.map +1 -1
  98. package/dist/commonjs/modal/lib/hooks/useModalHeading.d.ts +5 -17
  99. package/dist/commonjs/modal/lib/hooks/useModalHeading.d.ts.map +1 -1
  100. package/dist/commonjs/page-header/index.d.ts +3 -3
  101. package/dist/commonjs/page-header/index.d.ts.map +1 -1
  102. package/dist/commonjs/page-header/index.js +1 -1
  103. package/dist/commonjs/page-header/lib/PageHeader.d.ts +19 -2
  104. package/dist/commonjs/page-header/lib/PageHeader.d.ts.map +1 -1
  105. package/dist/commonjs/page-header/lib/PageHeader.js +18 -7
  106. package/dist/commonjs/pagination/lib/Pagination/GoTo/Label.d.ts +3 -0
  107. package/dist/commonjs/pagination/lib/Pagination/GoTo/Label.d.ts.map +1 -1
  108. package/dist/commonjs/pagination/lib/Pagination/PageList.d.ts +1 -1
  109. package/dist/commonjs/pagination/lib/Pagination/PageList.d.ts.map +1 -1
  110. package/dist/commonjs/pagination/lib/Pagination/Pagination.d.ts +5 -5
  111. package/dist/commonjs/pagination/lib/Pagination/common/List.d.ts +1 -1
  112. package/dist/commonjs/pagination/lib/Pagination/common/List.d.ts.map +1 -1
  113. package/dist/commonjs/pagination/lib/Pagination/common/utils/getValidChildren.d.ts +1 -1
  114. package/dist/commonjs/pagination/lib/Pagination/common/utils/getValidChildren.d.ts.map +1 -1
  115. package/dist/commonjs/pagination/lib/Pagination/common/utils/space.d.ts +28 -28
  116. package/dist/commonjs/pagination/lib/Pagination/types.d.ts +39 -0
  117. package/dist/commonjs/pagination/lib/Pagination/types.d.ts.map +1 -1
  118. package/dist/commonjs/pagination/lib/Pagination/usePaginationModel.d.ts +19 -0
  119. package/dist/commonjs/pagination/lib/Pagination/usePaginationModel.d.ts.map +1 -1
  120. package/dist/commonjs/popup/lib/PopupCard.d.ts.map +1 -1
  121. package/dist/commonjs/popup/lib/PopupCard.js +3 -10
  122. package/dist/commonjs/popup/lib/hooks/focus-trap-js.d.ts.map +1 -1
  123. package/dist/commonjs/popup/lib/hooks/focus-trap-js.js +1 -0
  124. package/dist/commonjs/popup/lib/hooks/index.d.ts +3 -0
  125. package/dist/commonjs/popup/lib/hooks/index.d.ts.map +1 -1
  126. package/dist/commonjs/popup/lib/hooks/index.js +3 -0
  127. package/dist/commonjs/popup/lib/hooks/useCloseOnFullscreenExit.d.ts +7 -0
  128. package/dist/commonjs/popup/lib/hooks/useCloseOnFullscreenExit.d.ts.map +1 -0
  129. package/dist/commonjs/popup/lib/hooks/useCloseOnFullscreenExit.js +34 -0
  130. package/dist/commonjs/popup/lib/hooks/usePopupCard.d.ts +5 -2
  131. package/dist/commonjs/popup/lib/hooks/usePopupCard.d.ts.map +1 -1
  132. package/dist/commonjs/popup/lib/hooks/usePopupCloseButton.d.ts +4 -2
  133. package/dist/commonjs/popup/lib/hooks/usePopupCloseButton.d.ts.map +1 -1
  134. package/dist/commonjs/popup/lib/hooks/usePopupHeading.d.ts +5 -2
  135. package/dist/commonjs/popup/lib/hooks/usePopupHeading.d.ts.map +1 -1
  136. package/dist/commonjs/popup/lib/hooks/usePopupPopper.d.ts +4 -2
  137. package/dist/commonjs/popup/lib/hooks/usePopupPopper.d.ts.map +1 -1
  138. package/dist/commonjs/popup/lib/hooks/usePopupStack.d.ts.map +1 -1
  139. package/dist/commonjs/popup/lib/hooks/usePopupStack.js +1 -1
  140. package/dist/commonjs/popup/lib/hooks/usePopupTarget.d.ts +4 -2
  141. package/dist/commonjs/popup/lib/hooks/usePopupTarget.d.ts.map +1 -1
  142. package/dist/commonjs/popup/lib/hooks/useReturnFocus.d.ts +1 -1
  143. package/dist/commonjs/popup/lib/hooks/useReturnFocus.js +1 -1
  144. package/dist/commonjs/popup/lib/hooks/useTransferOnFullscreenEnter.d.ts +10 -0
  145. package/dist/commonjs/popup/lib/hooks/useTransferOnFullscreenEnter.d.ts.map +1 -0
  146. package/dist/commonjs/popup/lib/hooks/useTransferOnFullscreenEnter.js +41 -0
  147. package/dist/commonjs/popup/lib/hooks/useTransferOnFullscreenExit.d.ts +9 -0
  148. package/dist/commonjs/popup/lib/hooks/useTransferOnFullscreenExit.d.ts.map +1 -0
  149. package/dist/commonjs/popup/lib/hooks/useTransferOnFullscreenExit.js +40 -0
  150. package/dist/commonjs/radio/lib/Radio.d.ts +1 -1
  151. package/dist/commonjs/switch/lib/Switch.d.ts +1 -1
  152. package/dist/commonjs/tabs/index.d.ts +5 -0
  153. package/dist/commonjs/tabs/index.d.ts.map +1 -1
  154. package/dist/commonjs/tabs/index.js +11 -0
  155. package/dist/commonjs/tabs/lib/Tabs.d.ts +35 -7
  156. package/dist/commonjs/tabs/lib/Tabs.d.ts.map +1 -1
  157. package/dist/commonjs/tabs/lib/Tabs.js +28 -7
  158. package/dist/commonjs/tabs/lib/TabsItem.d.ts +107 -0
  159. package/dist/commonjs/tabs/lib/TabsItem.d.ts.map +1 -0
  160. package/dist/commonjs/tabs/lib/TabsItem.js +140 -0
  161. package/dist/commonjs/tabs/lib/TabsList.d.ts +43 -0
  162. package/dist/commonjs/tabs/lib/TabsList.d.ts.map +1 -0
  163. package/dist/commonjs/tabs/lib/TabsList.js +53 -0
  164. package/dist/commonjs/tabs/lib/TabsMenuPopper.d.ts +21 -0
  165. package/dist/commonjs/tabs/lib/TabsMenuPopper.d.ts.map +1 -0
  166. package/dist/commonjs/tabs/lib/{TabList.js → TabsMenuPopper.js} +7 -19
  167. package/dist/commonjs/tabs/lib/TabsOverflowButton.d.ts +31 -0
  168. package/dist/commonjs/tabs/lib/TabsOverflowButton.d.ts.map +1 -0
  169. package/dist/commonjs/tabs/lib/TabsOverflowButton.js +57 -0
  170. package/{ts3.5/dist/commonjs/tabs/lib/TabPanel.d.ts → dist/commonjs/tabs/lib/TabsPanel.d.ts} +39 -29
  171. package/dist/commonjs/tabs/lib/TabsPanel.d.ts.map +1 -0
  172. package/dist/commonjs/tabs/lib/TabsPanel.js +64 -0
  173. package/dist/{es6/tabs/lib/TabList.d.ts → commonjs/tabs/lib/TabsPanels.d.ts} +5 -5
  174. package/dist/commonjs/tabs/lib/TabsPanels.d.ts.map +1 -0
  175. package/dist/commonjs/tabs/lib/TabsPanels.js +21 -0
  176. package/dist/commonjs/tabs/lib/cursor/index.d.ts +1 -1
  177. package/dist/commonjs/tabs/lib/cursor/index.d.ts.map +1 -1
  178. package/dist/commonjs/tabs/lib/cursor/index.js +1 -1
  179. package/dist/commonjs/tabs/lib/cursor/useCursorModel.d.ts +23 -13
  180. package/dist/commonjs/tabs/lib/cursor/useCursorModel.d.ts.map +1 -1
  181. package/dist/commonjs/tabs/lib/cursor/useCursorModel.js +50 -49
  182. package/dist/commonjs/tabs/lib/cursor/useRovingFocus.d.ts +37 -0
  183. package/dist/commonjs/tabs/lib/cursor/useRovingFocus.d.ts.map +1 -0
  184. package/dist/commonjs/tabs/lib/cursor/{hooks.js → useRovingFocus.js} +26 -50
  185. package/dist/commonjs/tabs/lib/list/index.d.ts +2 -1
  186. package/dist/commonjs/tabs/lib/list/index.d.ts.map +1 -1
  187. package/dist/commonjs/tabs/lib/list/index.js +2 -1
  188. package/dist/commonjs/tabs/lib/list/renderItem.d.ts +4 -0
  189. package/dist/commonjs/tabs/lib/list/renderItem.d.ts.map +1 -0
  190. package/dist/commonjs/tabs/lib/list/renderItem.js +18 -0
  191. package/dist/commonjs/tabs/lib/list/useListModel.d.ts +25 -13
  192. package/dist/commonjs/tabs/lib/list/useListModel.d.ts.map +1 -1
  193. package/dist/commonjs/tabs/lib/list/useListModel.js +20 -7
  194. package/dist/commonjs/tabs/lib/list/useListRegisterItem.d.ts +14 -0
  195. package/dist/commonjs/tabs/lib/list/useListRegisterItem.d.ts.map +1 -0
  196. package/dist/commonjs/tabs/lib/list/useListRegisterItem.js +46 -0
  197. package/dist/commonjs/tabs/lib/menu/Menu.d.ts +80 -0
  198. package/dist/commonjs/tabs/lib/menu/Menu.d.ts.map +1 -0
  199. package/dist/commonjs/tabs/lib/menu/Menu.js +94 -0
  200. package/dist/commonjs/tabs/lib/menu/MenuCard.d.ts +17 -0
  201. package/dist/commonjs/tabs/lib/menu/MenuCard.d.ts.map +1 -0
  202. package/dist/commonjs/tabs/lib/menu/MenuCard.js +82 -0
  203. package/dist/commonjs/tabs/lib/menu/MenuItem.d.ts +62 -0
  204. package/dist/commonjs/tabs/lib/menu/MenuItem.d.ts.map +1 -0
  205. package/dist/commonjs/tabs/lib/menu/MenuItem.js +145 -0
  206. package/dist/commonjs/tabs/lib/menu/MenuList.d.ts +23 -0
  207. package/dist/commonjs/tabs/lib/menu/MenuList.d.ts.map +1 -0
  208. package/dist/commonjs/tabs/lib/menu/MenuList.js +52 -0
  209. package/dist/commonjs/tabs/lib/menu/MenuPopper.d.ts +21 -0
  210. package/dist/commonjs/tabs/lib/menu/MenuPopper.d.ts.map +1 -0
  211. package/dist/commonjs/tabs/lib/menu/MenuPopper.js +45 -0
  212. package/dist/commonjs/tabs/lib/menu/MenuTarget.d.ts +21 -0
  213. package/dist/commonjs/tabs/lib/menu/MenuTarget.d.ts.map +1 -0
  214. package/dist/commonjs/tabs/lib/menu/MenuTarget.js +60 -0
  215. package/dist/commonjs/tabs/lib/menu/index.d.ts +8 -0
  216. package/dist/commonjs/tabs/lib/menu/index.d.ts.map +1 -0
  217. package/dist/commonjs/tabs/lib/menu/index.js +18 -0
  218. package/dist/commonjs/tabs/lib/menu/useMenuModel.d.ts +35 -0
  219. package/dist/commonjs/tabs/lib/menu/useMenuModel.d.ts.map +1 -0
  220. package/dist/commonjs/tabs/lib/menu/useMenuModel.js +33 -0
  221. package/dist/commonjs/tabs/lib/overflow/index.d.ts +5 -0
  222. package/dist/commonjs/tabs/lib/overflow/index.d.ts.map +1 -0
  223. package/dist/commonjs/tabs/lib/overflow/index.js +9 -0
  224. package/dist/commonjs/tabs/lib/overflow/useOverflowMeasureContainer.d.ts +8 -0
  225. package/dist/commonjs/tabs/lib/overflow/useOverflowMeasureContainer.d.ts.map +1 -0
  226. package/dist/commonjs/tabs/lib/overflow/useOverflowMeasureContainer.js +22 -0
  227. package/dist/commonjs/tabs/lib/overflow/useOverflowMeasureItem.d.ts +10 -0
  228. package/dist/commonjs/tabs/lib/overflow/useOverflowMeasureItem.d.ts.map +1 -0
  229. package/dist/commonjs/tabs/lib/overflow/useOverflowMeasureItem.js +32 -0
  230. package/dist/commonjs/tabs/lib/overflow/useOverflowModel.d.ts +69 -0
  231. package/dist/commonjs/tabs/lib/overflow/useOverflowModel.d.ts.map +1 -0
  232. package/dist/commonjs/tabs/lib/overflow/useOverflowModel.js +126 -0
  233. package/dist/commonjs/tabs/lib/overflow/useOverflowTarget.d.ts +11 -0
  234. package/dist/commonjs/tabs/lib/overflow/useOverflowTarget.d.ts.map +1 -0
  235. package/dist/commonjs/tabs/lib/overflow/useOverflowTarget.js +35 -0
  236. package/dist/commonjs/tabs/lib/selection/index.d.ts +4 -0
  237. package/dist/commonjs/tabs/lib/selection/index.d.ts.map +1 -0
  238. package/dist/commonjs/tabs/lib/selection/index.js +8 -0
  239. package/dist/commonjs/tabs/lib/selection/useResetCursorOnBlur.d.ts +13 -0
  240. package/dist/commonjs/tabs/lib/selection/useResetCursorOnBlur.d.ts.map +1 -0
  241. package/dist/commonjs/tabs/lib/{hooks.js → selection/useResetCursorOnBlur.js} +8 -9
  242. package/dist/commonjs/tabs/lib/selection/useSelectionItem.d.ts +8 -0
  243. package/dist/commonjs/tabs/lib/selection/useSelectionItem.d.ts.map +1 -0
  244. package/dist/commonjs/tabs/lib/selection/useSelectionItem.js +16 -0
  245. package/dist/commonjs/tabs/lib/selection/useSelectionModel.d.ts +62 -0
  246. package/dist/commonjs/tabs/lib/selection/useSelectionModel.d.ts.map +1 -0
  247. package/dist/commonjs/tabs/lib/selection/useSelectionModel.js +80 -0
  248. package/dist/commonjs/tabs/lib/useTabsModel.d.ts +39 -38
  249. package/dist/commonjs/tabs/lib/useTabsModel.d.ts.map +1 -1
  250. package/dist/commonjs/tabs/lib/useTabsModel.js +50 -37
  251. package/dist/commonjs/tokens/index.d.ts +3 -20
  252. package/dist/commonjs/tokens/index.d.ts.map +1 -1
  253. package/dist/commonjs/tokens/index.js +3 -6
  254. package/dist/commonjs/tokens/lib/depth.d.ts +109 -3
  255. package/dist/commonjs/tokens/lib/depth.d.ts.map +1 -1
  256. package/dist/commonjs/tokens/lib/depth.js +40 -5
  257. package/dist/commonjs/tooltip/lib/OverflowTooltip.d.ts +10 -0
  258. package/dist/commonjs/tooltip/lib/OverflowTooltip.d.ts.map +1 -1
  259. package/dist/commonjs/tooltip/lib/OverflowTooltip.js +8 -6
  260. package/dist/commonjs/tooltip/lib/Tooltip.d.ts +9 -1
  261. package/dist/commonjs/tooltip/lib/Tooltip.d.ts.map +1 -1
  262. package/dist/commonjs/tooltip/lib/Tooltip.js +7 -2
  263. package/dist/commonjs/tooltip/lib/useTooltip.d.ts +10 -2
  264. package/dist/commonjs/tooltip/lib/useTooltip.d.ts.map +1 -1
  265. package/dist/commonjs/tooltip/lib/useTooltip.js +16 -13
  266. package/dist/es6/action-bar/lib/ActionBar.d.ts.map +1 -1
  267. package/dist/es6/action-bar/lib/ActionBar.js +33 -22
  268. package/dist/es6/button/lib/PrimaryButton.d.ts +80 -6
  269. package/dist/es6/button/lib/PrimaryButton.d.ts.map +1 -1
  270. package/dist/es6/button/lib/PrimaryButton.js +81 -27
  271. package/dist/es6/button/lib/SecondaryButton.d.ts +8 -5
  272. package/dist/es6/button/lib/SecondaryButton.d.ts.map +1 -1
  273. package/dist/es6/button/lib/SecondaryButton.js +22 -12
  274. package/dist/es6/button/lib/TertiaryButton.d.ts +8 -4
  275. package/dist/es6/button/lib/TertiaryButton.d.ts.map +1 -1
  276. package/dist/es6/button/lib/TertiaryButton.js +25 -21
  277. package/dist/es6/button/lib/parts/ButtonContainer.d.ts +5 -3
  278. package/dist/es6/button/lib/parts/ButtonContainer.d.ts.map +1 -1
  279. package/dist/es6/button/lib/parts/ButtonContainer.js +7 -9
  280. package/dist/es6/button/lib/parts/ButtonLabel.d.ts +1 -1
  281. package/dist/es6/button/lib/parts/ButtonLabel.d.ts.map +1 -1
  282. package/dist/es6/button/lib/parts/ButtonLabelIcon.d.ts +7 -4
  283. package/dist/es6/button/lib/parts/ButtonLabelIcon.d.ts.map +1 -1
  284. package/dist/es6/button/lib/parts/ButtonLabelIcon.js +28 -13
  285. package/dist/es6/button/lib/types.d.ts +9 -0
  286. package/dist/es6/button/lib/types.d.ts.map +1 -1
  287. package/dist/es6/checkbox/lib/Checkbox.d.ts +1 -1
  288. package/dist/es6/common/index.d.ts +1 -0
  289. package/dist/es6/common/index.d.ts.map +1 -1
  290. package/dist/es6/common/index.js +1 -0
  291. package/dist/es6/common/lib/EllipsisText.d.ts +5 -0
  292. package/dist/es6/common/lib/EllipsisText.d.ts.map +1 -0
  293. package/dist/es6/common/lib/EllipsisText.js +8 -0
  294. package/dist/es6/common/lib/styles/accessibleHide.d.ts +2 -2
  295. package/dist/es6/common/lib/styles/accessibleHide.d.ts.map +1 -1
  296. package/dist/es6/common/lib/theming/breakpoints.d.ts +287 -6
  297. package/dist/es6/common/lib/theming/breakpoints.d.ts.map +1 -1
  298. package/dist/es6/common/lib/theming/breakpoints.js +192 -10
  299. package/dist/es6/common/lib/theming/types.d.ts +191 -1
  300. package/dist/es6/common/lib/theming/types.d.ts.map +1 -1
  301. package/dist/es6/common/lib/utils/components.d.ts +19 -9
  302. package/dist/es6/common/lib/utils/components.d.ts.map +1 -1
  303. package/dist/es6/common/lib/utils/components.js +12 -2
  304. package/dist/es6/common/lib/utils/index.d.ts +2 -0
  305. package/dist/es6/common/lib/utils/index.d.ts.map +1 -1
  306. package/dist/es6/common/lib/utils/index.js +2 -0
  307. package/dist/es6/common/lib/utils/mergeProps.d.ts.map +1 -1
  308. package/dist/es6/common/lib/utils/mergeProps.js +5 -0
  309. package/dist/es6/common/lib/utils/useConstant.d.ts +9 -0
  310. package/dist/es6/common/lib/utils/useConstant.d.ts.map +1 -0
  311. package/dist/es6/common/lib/utils/useConstant.js +15 -0
  312. package/dist/es6/common/lib/utils/useIsFullscreen.d.ts +2 -0
  313. package/dist/es6/common/lib/utils/useIsFullscreen.d.ts.map +1 -0
  314. package/dist/es6/common/lib/utils/useIsFullscreen.js +15 -0
  315. package/dist/es6/common/lib/utils/useResizeObserver.d.ts +3 -0
  316. package/dist/es6/common/lib/utils/useResizeObserver.d.ts.map +1 -0
  317. package/dist/es6/common/lib/utils/useResizeObserver.js +37 -0
  318. package/dist/es6/common/lib/utils/useUniqueId.d.ts +28 -0
  319. package/dist/es6/common/lib/utils/useUniqueId.d.ts.map +1 -1
  320. package/dist/es6/common/lib/utils/useUniqueId.js +42 -4
  321. package/dist/es6/cookie-banner/index.d.ts +3 -3
  322. package/dist/es6/cookie-banner/index.d.ts.map +1 -1
  323. package/dist/es6/cookie-banner/index.js +3 -3
  324. package/dist/es6/cookie-banner/lib/CookieBanner.d.ts +19 -2
  325. package/dist/es6/cookie-banner/lib/CookieBanner.d.ts.map +1 -1
  326. package/dist/es6/cookie-banner/lib/CookieBanner.js +19 -8
  327. package/dist/es6/dialog/lib/hooks/useDialogCard.d.ts +4 -16
  328. package/dist/es6/dialog/lib/hooks/useDialogCard.d.ts.map +1 -1
  329. package/dist/es6/dialog/lib/hooks/useDialogPopper.d.ts +5 -2
  330. package/dist/es6/dialog/lib/hooks/useDialogPopper.d.ts.map +1 -1
  331. package/dist/es6/form-field/lib/FormField.d.ts.map +1 -1
  332. package/dist/es6/form-field/lib/FormField.js +2 -3
  333. package/dist/es6/loading-animation/lib/LoadingDots.js +1 -1
  334. package/dist/es6/modal/lib/ModalOverlay.d.ts +4 -2
  335. package/dist/es6/modal/lib/ModalOverlay.d.ts.map +1 -1
  336. package/dist/es6/modal/lib/hooks/useModalCard.d.ts +4 -16
  337. package/dist/es6/modal/lib/hooks/useModalCard.d.ts.map +1 -1
  338. package/dist/es6/modal/lib/hooks/useModalHeading.d.ts +5 -17
  339. package/dist/es6/modal/lib/hooks/useModalHeading.d.ts.map +1 -1
  340. package/dist/es6/page-header/index.d.ts +3 -3
  341. package/dist/es6/page-header/index.d.ts.map +1 -1
  342. package/dist/es6/page-header/index.js +3 -3
  343. package/dist/es6/page-header/lib/PageHeader.d.ts +19 -2
  344. package/dist/es6/page-header/lib/PageHeader.d.ts.map +1 -1
  345. package/dist/es6/page-header/lib/PageHeader.js +18 -7
  346. package/dist/es6/pagination/lib/Pagination/GoTo/Label.d.ts +3 -0
  347. package/dist/es6/pagination/lib/Pagination/GoTo/Label.d.ts.map +1 -1
  348. package/dist/es6/pagination/lib/Pagination/PageList.d.ts +1 -1
  349. package/dist/es6/pagination/lib/Pagination/PageList.d.ts.map +1 -1
  350. package/dist/es6/pagination/lib/Pagination/Pagination.d.ts +5 -5
  351. package/dist/es6/pagination/lib/Pagination/common/List.d.ts +1 -1
  352. package/dist/es6/pagination/lib/Pagination/common/List.d.ts.map +1 -1
  353. package/dist/es6/pagination/lib/Pagination/common/utils/getValidChildren.d.ts +1 -1
  354. package/dist/es6/pagination/lib/Pagination/common/utils/getValidChildren.d.ts.map +1 -1
  355. package/dist/es6/pagination/lib/Pagination/common/utils/space.d.ts +28 -28
  356. package/dist/es6/pagination/lib/Pagination/types.d.ts +39 -0
  357. package/dist/es6/pagination/lib/Pagination/types.d.ts.map +1 -1
  358. package/dist/es6/pagination/lib/Pagination/usePaginationModel.d.ts +19 -0
  359. package/dist/es6/pagination/lib/Pagination/usePaginationModel.d.ts.map +1 -1
  360. package/dist/es6/popup/lib/PopupCard.d.ts.map +1 -1
  361. package/dist/es6/popup/lib/PopupCard.js +4 -11
  362. package/dist/es6/popup/lib/hooks/focus-trap-js.d.ts.map +1 -1
  363. package/dist/es6/popup/lib/hooks/focus-trap-js.js +1 -0
  364. package/dist/es6/popup/lib/hooks/index.d.ts +3 -0
  365. package/dist/es6/popup/lib/hooks/index.d.ts.map +1 -1
  366. package/dist/es6/popup/lib/hooks/index.js +3 -0
  367. package/dist/es6/popup/lib/hooks/useCloseOnFullscreenExit.d.ts +7 -0
  368. package/dist/es6/popup/lib/hooks/useCloseOnFullscreenExit.d.ts.map +1 -0
  369. package/dist/es6/popup/lib/hooks/useCloseOnFullscreenExit.js +29 -0
  370. package/dist/es6/popup/lib/hooks/usePopupCard.d.ts +5 -2
  371. package/dist/es6/popup/lib/hooks/usePopupCard.d.ts.map +1 -1
  372. package/dist/es6/popup/lib/hooks/usePopupCloseButton.d.ts +4 -2
  373. package/dist/es6/popup/lib/hooks/usePopupCloseButton.d.ts.map +1 -1
  374. package/dist/es6/popup/lib/hooks/usePopupHeading.d.ts +5 -2
  375. package/dist/es6/popup/lib/hooks/usePopupHeading.d.ts.map +1 -1
  376. package/dist/es6/popup/lib/hooks/usePopupPopper.d.ts +4 -2
  377. package/dist/es6/popup/lib/hooks/usePopupPopper.d.ts.map +1 -1
  378. package/dist/es6/popup/lib/hooks/usePopupStack.d.ts.map +1 -1
  379. package/dist/es6/popup/lib/hooks/usePopupStack.js +1 -1
  380. package/dist/es6/popup/lib/hooks/usePopupTarget.d.ts +4 -2
  381. package/dist/es6/popup/lib/hooks/usePopupTarget.d.ts.map +1 -1
  382. package/dist/es6/popup/lib/hooks/useReturnFocus.d.ts +1 -1
  383. package/dist/es6/popup/lib/hooks/useReturnFocus.js +1 -1
  384. package/dist/es6/popup/lib/hooks/useTransferOnFullscreenEnter.d.ts +10 -0
  385. package/dist/es6/popup/lib/hooks/useTransferOnFullscreenEnter.d.ts.map +1 -0
  386. package/dist/es6/popup/lib/hooks/useTransferOnFullscreenEnter.js +36 -0
  387. package/dist/es6/popup/lib/hooks/useTransferOnFullscreenExit.d.ts +9 -0
  388. package/dist/es6/popup/lib/hooks/useTransferOnFullscreenExit.d.ts.map +1 -0
  389. package/dist/es6/popup/lib/hooks/useTransferOnFullscreenExit.js +35 -0
  390. package/dist/es6/radio/lib/Radio.d.ts +1 -1
  391. package/dist/es6/switch/lib/Switch.d.ts +1 -1
  392. package/dist/es6/tabs/index.d.ts +5 -0
  393. package/dist/es6/tabs/index.d.ts.map +1 -1
  394. package/dist/es6/tabs/index.js +5 -0
  395. package/dist/es6/tabs/lib/Tabs.d.ts +35 -7
  396. package/dist/es6/tabs/lib/Tabs.d.ts.map +1 -1
  397. package/dist/es6/tabs/lib/Tabs.js +28 -7
  398. package/dist/es6/tabs/lib/TabsItem.d.ts +107 -0
  399. package/dist/es6/tabs/lib/TabsItem.d.ts.map +1 -0
  400. package/dist/es6/tabs/lib/TabsItem.js +131 -0
  401. package/dist/es6/tabs/lib/TabsList.d.ts +43 -0
  402. package/dist/es6/tabs/lib/TabsList.d.ts.map +1 -0
  403. package/dist/es6/tabs/lib/TabsList.js +44 -0
  404. package/dist/es6/tabs/lib/TabsMenuPopper.d.ts +21 -0
  405. package/dist/es6/tabs/lib/TabsMenuPopper.d.ts.map +1 -0
  406. package/dist/es6/tabs/lib/{TabList.js → TabsMenuPopper.js} +8 -20
  407. package/dist/es6/tabs/lib/TabsOverflowButton.d.ts +31 -0
  408. package/dist/es6/tabs/lib/TabsOverflowButton.d.ts.map +1 -0
  409. package/dist/es6/tabs/lib/TabsOverflowButton.js +48 -0
  410. package/dist/{commonjs/tabs/lib/TabPanel.d.ts → es6/tabs/lib/TabsPanel.d.ts} +15 -5
  411. package/dist/es6/tabs/lib/TabsPanel.d.ts.map +1 -0
  412. package/dist/es6/tabs/lib/TabsPanel.js +59 -0
  413. package/{ts3.5/dist/commonjs/tabs/lib/TabList.d.ts → dist/es6/tabs/lib/TabsPanels.d.ts} +15 -15
  414. package/dist/es6/tabs/lib/TabsPanels.d.ts.map +1 -0
  415. package/dist/es6/tabs/lib/TabsPanels.js +12 -0
  416. package/dist/es6/tabs/lib/cursor/index.d.ts +1 -1
  417. package/dist/es6/tabs/lib/cursor/index.d.ts.map +1 -1
  418. package/dist/es6/tabs/lib/cursor/index.js +1 -1
  419. package/dist/es6/tabs/lib/cursor/useCursorModel.d.ts +23 -13
  420. package/dist/es6/tabs/lib/cursor/useCursorModel.d.ts.map +1 -1
  421. package/dist/es6/tabs/lib/cursor/useCursorModel.js +51 -50
  422. package/dist/es6/tabs/lib/cursor/useRovingFocus.d.ts +37 -0
  423. package/dist/es6/tabs/lib/cursor/useRovingFocus.d.ts.map +1 -0
  424. package/dist/es6/tabs/lib/cursor/useRovingFocus.js +84 -0
  425. package/dist/es6/tabs/lib/list/index.d.ts +2 -1
  426. package/dist/es6/tabs/lib/list/index.d.ts.map +1 -1
  427. package/dist/es6/tabs/lib/list/index.js +2 -1
  428. package/dist/es6/tabs/lib/list/renderItem.d.ts +4 -0
  429. package/dist/es6/tabs/lib/list/renderItem.d.ts.map +1 -0
  430. package/dist/es6/tabs/lib/list/renderItem.js +12 -0
  431. package/dist/es6/tabs/lib/list/useListModel.d.ts +25 -13
  432. package/dist/es6/tabs/lib/list/useListModel.d.ts.map +1 -1
  433. package/dist/es6/tabs/lib/list/useListModel.js +21 -8
  434. package/dist/es6/tabs/lib/list/useListRegisterItem.d.ts +14 -0
  435. package/dist/es6/tabs/lib/list/useListRegisterItem.d.ts.map +1 -0
  436. package/dist/es6/tabs/lib/list/useListRegisterItem.js +41 -0
  437. package/dist/es6/tabs/lib/menu/Menu.d.ts +80 -0
  438. package/dist/es6/tabs/lib/menu/Menu.d.ts.map +1 -0
  439. package/dist/es6/tabs/lib/menu/Menu.js +89 -0
  440. package/dist/es6/tabs/lib/menu/MenuCard.d.ts +17 -0
  441. package/dist/es6/tabs/lib/menu/MenuCard.d.ts.map +1 -0
  442. package/dist/es6/tabs/lib/menu/MenuCard.js +73 -0
  443. package/dist/es6/tabs/lib/menu/MenuItem.d.ts +62 -0
  444. package/dist/es6/tabs/lib/menu/MenuItem.d.ts.map +1 -0
  445. package/dist/es6/tabs/lib/menu/MenuItem.js +136 -0
  446. package/dist/es6/tabs/lib/menu/MenuList.d.ts +23 -0
  447. package/dist/es6/tabs/lib/menu/MenuList.d.ts.map +1 -0
  448. package/dist/es6/tabs/lib/menu/MenuList.js +43 -0
  449. package/dist/es6/tabs/lib/menu/MenuPopper.d.ts +21 -0
  450. package/dist/es6/tabs/lib/menu/MenuPopper.d.ts.map +1 -0
  451. package/dist/es6/tabs/lib/menu/MenuPopper.js +36 -0
  452. package/dist/es6/tabs/lib/menu/MenuTarget.d.ts +21 -0
  453. package/dist/es6/tabs/lib/menu/MenuTarget.d.ts.map +1 -0
  454. package/dist/es6/tabs/lib/menu/MenuTarget.js +51 -0
  455. package/dist/es6/tabs/lib/menu/index.d.ts +8 -0
  456. package/dist/es6/tabs/lib/menu/index.d.ts.map +1 -0
  457. package/dist/es6/tabs/lib/menu/index.js +7 -0
  458. package/dist/es6/tabs/lib/menu/useMenuModel.d.ts +35 -0
  459. package/dist/es6/tabs/lib/menu/useMenuModel.d.ts.map +1 -0
  460. package/dist/es6/tabs/lib/menu/useMenuModel.js +31 -0
  461. package/dist/es6/tabs/lib/overflow/index.d.ts +5 -0
  462. package/dist/es6/tabs/lib/overflow/index.d.ts.map +1 -0
  463. package/dist/es6/tabs/lib/overflow/index.js +4 -0
  464. package/dist/es6/tabs/lib/overflow/useOverflowMeasureContainer.d.ts +8 -0
  465. package/dist/es6/tabs/lib/overflow/useOverflowMeasureContainer.d.ts.map +1 -0
  466. package/dist/es6/tabs/lib/overflow/useOverflowMeasureContainer.js +13 -0
  467. package/dist/es6/tabs/lib/overflow/useOverflowMeasureItem.d.ts +10 -0
  468. package/dist/es6/tabs/lib/overflow/useOverflowMeasureItem.d.ts.map +1 -0
  469. package/dist/es6/tabs/lib/overflow/useOverflowMeasureItem.js +30 -0
  470. package/dist/es6/tabs/lib/overflow/useOverflowModel.d.ts +69 -0
  471. package/dist/es6/tabs/lib/overflow/useOverflowModel.d.ts.map +1 -0
  472. package/dist/es6/tabs/lib/overflow/useOverflowModel.js +120 -0
  473. package/dist/es6/tabs/lib/overflow/useOverflowTarget.d.ts +11 -0
  474. package/dist/es6/tabs/lib/overflow/useOverflowTarget.d.ts.map +1 -0
  475. package/dist/es6/tabs/lib/overflow/useOverflowTarget.js +30 -0
  476. package/dist/es6/tabs/lib/selection/index.d.ts +4 -0
  477. package/dist/es6/tabs/lib/selection/index.d.ts.map +1 -0
  478. package/dist/es6/tabs/lib/selection/index.js +3 -0
  479. package/dist/es6/tabs/lib/selection/useResetCursorOnBlur.d.ts +13 -0
  480. package/dist/es6/tabs/lib/selection/useResetCursorOnBlur.d.ts.map +1 -0
  481. package/dist/es6/tabs/lib/{hooks.js → selection/useResetCursorOnBlur.js} +8 -9
  482. package/dist/es6/tabs/lib/selection/useSelectionItem.d.ts +8 -0
  483. package/dist/es6/tabs/lib/selection/useSelectionItem.d.ts.map +1 -0
  484. package/dist/es6/tabs/lib/selection/useSelectionItem.js +14 -0
  485. package/dist/es6/tabs/lib/selection/useSelectionModel.d.ts +62 -0
  486. package/dist/es6/tabs/lib/selection/useSelectionModel.d.ts.map +1 -0
  487. package/dist/es6/tabs/lib/selection/useSelectionModel.js +75 -0
  488. package/dist/es6/tabs/lib/useTabsModel.d.ts +39 -38
  489. package/dist/es6/tabs/lib/useTabsModel.d.ts.map +1 -1
  490. package/dist/es6/tabs/lib/useTabsModel.js +50 -37
  491. package/dist/es6/tokens/index.d.ts +3 -20
  492. package/dist/es6/tokens/index.d.ts.map +1 -1
  493. package/dist/es6/tokens/index.js +1 -1
  494. package/dist/es6/tokens/lib/depth.d.ts +109 -3
  495. package/dist/es6/tokens/lib/depth.d.ts.map +1 -1
  496. package/dist/es6/tokens/lib/depth.js +40 -2
  497. package/dist/es6/tooltip/lib/OverflowTooltip.d.ts +10 -0
  498. package/dist/es6/tooltip/lib/OverflowTooltip.d.ts.map +1 -1
  499. package/dist/es6/tooltip/lib/OverflowTooltip.js +5 -3
  500. package/dist/es6/tooltip/lib/Tooltip.d.ts +9 -1
  501. package/dist/es6/tooltip/lib/Tooltip.d.ts.map +1 -1
  502. package/dist/es6/tooltip/lib/Tooltip.js +7 -2
  503. package/dist/es6/tooltip/lib/useTooltip.d.ts +10 -2
  504. package/dist/es6/tooltip/lib/useTooltip.d.ts.map +1 -1
  505. package/dist/es6/tooltip/lib/useTooltip.js +17 -11
  506. package/form-field/lib/FormField.tsx +8 -3
  507. package/loading-animation/lib/LoadingDots.tsx +1 -1
  508. package/package.json +10 -8
  509. package/page-header/README.md +11 -6
  510. package/page-header/index.ts +3 -3
  511. package/page-header/lib/PageHeader.tsx +28 -3
  512. package/pagination/lib/Pagination/GoTo/Label.tsx +3 -0
  513. package/pagination/lib/Pagination/types.ts +44 -5
  514. package/pagination/lib/Pagination/usePaginationModel.ts +19 -0
  515. package/popup/lib/PopupCard.tsx +21 -31
  516. package/popup/lib/hooks/focus-trap-js.ts +1 -0
  517. package/popup/lib/hooks/index.ts +3 -0
  518. package/popup/lib/hooks/useCloseOnFullscreenExit.ts +37 -0
  519. package/popup/lib/hooks/usePopupStack.ts +2 -1
  520. package/popup/lib/hooks/useReturnFocus.tsx +1 -1
  521. package/popup/lib/hooks/useTransferOnFullscreenEnter.ts +44 -0
  522. package/popup/lib/hooks/useTransferOnFullscreenExit.ts +43 -0
  523. package/radio/lib/Radio.tsx +1 -1
  524. package/switch/lib/Switch.tsx +1 -1
  525. package/tabs/index.ts +6 -0
  526. package/tabs/lib/Tabs.tsx +34 -9
  527. package/tabs/lib/TabsItem.tsx +250 -0
  528. package/tabs/lib/TabsList.tsx +67 -0
  529. package/tabs/lib/TabsMenuPopper.tsx +27 -0
  530. package/tabs/lib/TabsOverflowButton.tsx +58 -0
  531. package/tabs/lib/{TabPanel.tsx → TabsPanel.tsx} +33 -31
  532. package/tabs/lib/TabsPanels.tsx +28 -0
  533. package/tabs/lib/cursor/index.ts +1 -1
  534. package/tabs/lib/cursor/useCursorModel.tsx +78 -65
  535. package/tabs/lib/cursor/useRovingFocus.tsx +94 -0
  536. package/tabs/lib/list/index.ts +2 -1
  537. package/tabs/lib/list/renderItem.tsx +19 -0
  538. package/tabs/lib/list/useListModel.tsx +48 -23
  539. package/tabs/lib/list/useListRegisterItem.tsx +53 -0
  540. package/tabs/lib/menu/Menu.tsx +95 -0
  541. package/tabs/lib/menu/MenuCard.tsx +96 -0
  542. package/tabs/lib/menu/MenuItem.tsx +195 -0
  543. package/tabs/lib/menu/MenuList.tsx +58 -0
  544. package/tabs/lib/menu/MenuPopper.tsx +31 -0
  545. package/tabs/lib/menu/MenuTarget.tsx +52 -0
  546. package/tabs/lib/menu/index.ts +8 -0
  547. package/tabs/lib/menu/useMenuModel.tsx +67 -0
  548. package/tabs/lib/overflow/index.ts +4 -0
  549. package/tabs/lib/overflow/spec/tsconfig.json +3 -0
  550. package/tabs/lib/overflow/spec/useOverflowModel.spec.tsx +46 -0
  551. package/tabs/lib/overflow/useOverflowMeasureContainer.ts +20 -0
  552. package/tabs/lib/overflow/useOverflowMeasureItem.tsx +40 -0
  553. package/tabs/lib/overflow/useOverflowModel.tsx +207 -0
  554. package/tabs/lib/overflow/useOverflowTarget.tsx +42 -0
  555. package/tabs/lib/selection/index.ts +3 -0
  556. package/tabs/lib/selection/useResetCursorOnBlur.tsx +29 -0
  557. package/tabs/lib/selection/useSelectionItem.tsx +26 -0
  558. package/tabs/lib/selection/useSelectionModel.tsx +133 -0
  559. package/tabs/lib/useTabsModel.tsx +93 -78
  560. package/tokens/README.md +5 -12
  561. package/tokens/index.ts +2 -2
  562. package/tokens/lib/depth.ts +125 -3
  563. package/tooltip/lib/OverflowTooltip.tsx +5 -3
  564. package/tooltip/lib/Tooltip.tsx +16 -1
  565. package/tooltip/lib/useTooltip.tsx +25 -8
  566. package/ts3.5/dist/commonjs/button/lib/PrimaryButton.d.ts +80 -6
  567. package/ts3.5/dist/commonjs/button/lib/SecondaryButton.d.ts +8 -5
  568. package/ts3.5/dist/commonjs/button/lib/TertiaryButton.d.ts +8 -4
  569. package/ts3.5/dist/commonjs/button/lib/parts/ButtonContainer.d.ts +5 -3
  570. package/ts3.5/dist/commonjs/button/lib/parts/ButtonLabel.d.ts +1 -1
  571. package/ts3.5/dist/commonjs/button/lib/parts/ButtonLabelIcon.d.ts +7 -4
  572. package/ts3.5/dist/commonjs/button/lib/types.d.ts +9 -0
  573. package/ts3.5/dist/commonjs/checkbox/lib/Checkbox.d.ts +1 -1
  574. package/ts3.5/dist/commonjs/common/index.d.ts +1 -0
  575. package/ts3.5/dist/commonjs/common/lib/EllipsisText.d.ts +5 -0
  576. package/ts3.5/dist/commonjs/common/lib/styles/accessibleHide.d.ts +2 -2
  577. package/ts3.5/dist/commonjs/common/lib/theming/breakpoints.d.ts +287 -6
  578. package/ts3.5/dist/commonjs/common/lib/theming/types.d.ts +191 -1
  579. package/ts3.5/dist/commonjs/common/lib/utils/components.d.ts +19 -9
  580. package/ts3.5/dist/commonjs/common/lib/utils/index.d.ts +2 -0
  581. package/ts3.5/dist/commonjs/common/lib/utils/useConstant.d.ts +9 -0
  582. package/ts3.5/dist/commonjs/common/lib/utils/useIsFullscreen.d.ts +2 -0
  583. package/ts3.5/dist/commonjs/common/lib/utils/useResizeObserver.d.ts +3 -0
  584. package/ts3.5/dist/commonjs/common/lib/utils/useUniqueId.d.ts +28 -0
  585. package/ts3.5/dist/commonjs/cookie-banner/index.d.ts +3 -3
  586. package/ts3.5/dist/commonjs/cookie-banner/lib/CookieBanner.d.ts +19 -2
  587. package/ts3.5/dist/commonjs/dialog/lib/hooks/useDialogCard.d.ts +4 -16
  588. package/ts3.5/dist/commonjs/dialog/lib/hooks/useDialogPopper.d.ts +5 -2
  589. package/ts3.5/dist/commonjs/modal/lib/ModalOverlay.d.ts +4 -2
  590. package/ts3.5/dist/commonjs/modal/lib/hooks/useModalCard.d.ts +4 -16
  591. package/ts3.5/dist/commonjs/modal/lib/hooks/useModalHeading.d.ts +5 -17
  592. package/ts3.5/dist/commonjs/page-header/index.d.ts +3 -3
  593. package/ts3.5/dist/commonjs/page-header/lib/PageHeader.d.ts +19 -2
  594. package/ts3.5/dist/commonjs/pagination/lib/Pagination/GoTo/Label.d.ts +3 -0
  595. package/ts3.5/dist/commonjs/pagination/lib/Pagination/PageList.d.ts +1 -1
  596. package/ts3.5/dist/commonjs/pagination/lib/Pagination/Pagination.d.ts +5 -5
  597. package/ts3.5/dist/commonjs/pagination/lib/Pagination/common/List.d.ts +1 -1
  598. package/ts3.5/dist/commonjs/pagination/lib/Pagination/common/utils/getValidChildren.d.ts +1 -1
  599. package/ts3.5/dist/commonjs/pagination/lib/Pagination/common/utils/space.d.ts +28 -28
  600. package/ts3.5/dist/commonjs/pagination/lib/Pagination/types.d.ts +39 -0
  601. package/ts3.5/dist/commonjs/pagination/lib/Pagination/usePaginationModel.d.ts +19 -0
  602. package/ts3.5/dist/commonjs/popup/lib/hooks/index.d.ts +3 -0
  603. package/ts3.5/dist/commonjs/popup/lib/hooks/useCloseOnFullscreenExit.d.ts +7 -0
  604. package/ts3.5/dist/commonjs/popup/lib/hooks/usePopupCard.d.ts +5 -2
  605. package/ts3.5/dist/commonjs/popup/lib/hooks/usePopupCloseButton.d.ts +4 -2
  606. package/ts3.5/dist/commonjs/popup/lib/hooks/usePopupHeading.d.ts +5 -2
  607. package/ts3.5/dist/commonjs/popup/lib/hooks/usePopupPopper.d.ts +4 -2
  608. package/ts3.5/dist/commonjs/popup/lib/hooks/usePopupTarget.d.ts +4 -2
  609. package/ts3.5/dist/commonjs/popup/lib/hooks/useReturnFocus.d.ts +1 -1
  610. package/ts3.5/dist/commonjs/popup/lib/hooks/useTransferOnFullscreenEnter.d.ts +10 -0
  611. package/ts3.5/dist/commonjs/popup/lib/hooks/useTransferOnFullscreenExit.d.ts +9 -0
  612. package/ts3.5/dist/commonjs/radio/lib/Radio.d.ts +1 -1
  613. package/ts3.5/dist/commonjs/switch/lib/Switch.d.ts +1 -1
  614. package/ts3.5/dist/commonjs/tabs/index.d.ts +5 -0
  615. package/ts3.5/dist/commonjs/tabs/lib/Tabs.d.ts +35 -7
  616. package/ts3.5/dist/commonjs/tabs/lib/TabsItem.d.ts +107 -0
  617. package/ts3.5/dist/commonjs/tabs/lib/TabsList.d.ts +43 -0
  618. package/ts3.5/dist/commonjs/tabs/lib/TabsMenuPopper.d.ts +21 -0
  619. package/ts3.5/dist/commonjs/tabs/lib/TabsOverflowButton.d.ts +31 -0
  620. package/{dist/es6/tabs/lib/TabPanel.d.ts → ts3.5/dist/commonjs/tabs/lib/TabsPanel.d.ts} +39 -29
  621. package/ts3.5/dist/{es6/tabs/lib/TabList.d.ts → commonjs/tabs/lib/TabsPanels.d.ts} +5 -5
  622. package/ts3.5/dist/commonjs/tabs/lib/cursor/index.d.ts +1 -1
  623. package/ts3.5/dist/commonjs/tabs/lib/cursor/useCursorModel.d.ts +23 -13
  624. package/ts3.5/dist/commonjs/tabs/lib/cursor/useRovingFocus.d.ts +37 -0
  625. package/ts3.5/dist/commonjs/tabs/lib/list/index.d.ts +2 -1
  626. package/ts3.5/dist/commonjs/tabs/lib/list/renderItem.d.ts +4 -0
  627. package/ts3.5/dist/commonjs/tabs/lib/list/useListModel.d.ts +25 -13
  628. package/ts3.5/dist/commonjs/tabs/lib/list/useListRegisterItem.d.ts +14 -0
  629. package/ts3.5/dist/commonjs/tabs/lib/menu/Menu.d.ts +80 -0
  630. package/ts3.5/dist/commonjs/tabs/lib/menu/MenuCard.d.ts +17 -0
  631. package/ts3.5/dist/commonjs/tabs/lib/menu/MenuItem.d.ts +62 -0
  632. package/ts3.5/dist/commonjs/tabs/lib/menu/MenuList.d.ts +23 -0
  633. package/ts3.5/dist/commonjs/tabs/lib/menu/MenuPopper.d.ts +21 -0
  634. package/ts3.5/dist/commonjs/tabs/lib/menu/MenuTarget.d.ts +21 -0
  635. package/ts3.5/dist/commonjs/tabs/lib/menu/index.d.ts +8 -0
  636. package/ts3.5/dist/commonjs/tabs/lib/menu/useMenuModel.d.ts +35 -0
  637. package/ts3.5/dist/commonjs/tabs/lib/overflow/index.d.ts +5 -0
  638. package/ts3.5/dist/commonjs/tabs/lib/overflow/useOverflowMeasureContainer.d.ts +8 -0
  639. package/ts3.5/dist/commonjs/tabs/lib/overflow/useOverflowMeasureItem.d.ts +10 -0
  640. package/ts3.5/dist/commonjs/tabs/lib/overflow/useOverflowModel.d.ts +69 -0
  641. package/ts3.5/dist/commonjs/tabs/lib/overflow/useOverflowTarget.d.ts +11 -0
  642. package/ts3.5/dist/commonjs/tabs/lib/selection/index.d.ts +4 -0
  643. package/ts3.5/dist/commonjs/tabs/lib/selection/useResetCursorOnBlur.d.ts +13 -0
  644. package/ts3.5/dist/commonjs/tabs/lib/selection/useSelectionItem.d.ts +8 -0
  645. package/ts3.5/dist/commonjs/tabs/lib/selection/useSelectionModel.d.ts +62 -0
  646. package/ts3.5/dist/commonjs/tabs/lib/useTabsModel.d.ts +39 -38
  647. package/ts3.5/dist/commonjs/tokens/index.d.ts +3 -20
  648. package/ts3.5/dist/commonjs/tokens/lib/depth.d.ts +109 -3
  649. package/ts3.5/dist/commonjs/tooltip/lib/OverflowTooltip.d.ts +10 -0
  650. package/ts3.5/dist/commonjs/tooltip/lib/Tooltip.d.ts +9 -1
  651. package/ts3.5/dist/commonjs/tooltip/lib/useTooltip.d.ts +10 -2
  652. package/ts3.5/dist/es6/button/lib/PrimaryButton.d.ts +80 -6
  653. package/ts3.5/dist/es6/button/lib/SecondaryButton.d.ts +8 -5
  654. package/ts3.5/dist/es6/button/lib/TertiaryButton.d.ts +8 -4
  655. package/ts3.5/dist/es6/button/lib/parts/ButtonContainer.d.ts +5 -3
  656. package/ts3.5/dist/es6/button/lib/parts/ButtonLabel.d.ts +1 -1
  657. package/ts3.5/dist/es6/button/lib/parts/ButtonLabelIcon.d.ts +7 -4
  658. package/ts3.5/dist/es6/button/lib/types.d.ts +9 -0
  659. package/ts3.5/dist/es6/checkbox/lib/Checkbox.d.ts +1 -1
  660. package/ts3.5/dist/es6/common/index.d.ts +1 -0
  661. package/ts3.5/dist/es6/common/lib/EllipsisText.d.ts +5 -0
  662. package/ts3.5/dist/es6/common/lib/styles/accessibleHide.d.ts +2 -2
  663. package/ts3.5/dist/es6/common/lib/theming/breakpoints.d.ts +287 -6
  664. package/ts3.5/dist/es6/common/lib/theming/types.d.ts +191 -1
  665. package/ts3.5/dist/es6/common/lib/utils/components.d.ts +19 -9
  666. package/ts3.5/dist/es6/common/lib/utils/index.d.ts +2 -0
  667. package/ts3.5/dist/es6/common/lib/utils/useConstant.d.ts +9 -0
  668. package/ts3.5/dist/es6/common/lib/utils/useIsFullscreen.d.ts +2 -0
  669. package/ts3.5/dist/es6/common/lib/utils/useResizeObserver.d.ts +3 -0
  670. package/ts3.5/dist/es6/common/lib/utils/useUniqueId.d.ts +28 -0
  671. package/ts3.5/dist/es6/cookie-banner/index.d.ts +3 -3
  672. package/ts3.5/dist/es6/cookie-banner/lib/CookieBanner.d.ts +19 -2
  673. package/ts3.5/dist/es6/dialog/lib/hooks/useDialogCard.d.ts +4 -16
  674. package/ts3.5/dist/es6/dialog/lib/hooks/useDialogPopper.d.ts +5 -2
  675. package/ts3.5/dist/es6/modal/lib/ModalOverlay.d.ts +4 -2
  676. package/ts3.5/dist/es6/modal/lib/hooks/useModalCard.d.ts +4 -16
  677. package/ts3.5/dist/es6/modal/lib/hooks/useModalHeading.d.ts +5 -17
  678. package/ts3.5/dist/es6/page-header/index.d.ts +3 -3
  679. package/ts3.5/dist/es6/page-header/lib/PageHeader.d.ts +19 -2
  680. package/ts3.5/dist/es6/pagination/lib/Pagination/GoTo/Label.d.ts +3 -0
  681. package/ts3.5/dist/es6/pagination/lib/Pagination/PageList.d.ts +1 -1
  682. package/ts3.5/dist/es6/pagination/lib/Pagination/Pagination.d.ts +5 -5
  683. package/ts3.5/dist/es6/pagination/lib/Pagination/common/List.d.ts +1 -1
  684. package/ts3.5/dist/es6/pagination/lib/Pagination/common/utils/getValidChildren.d.ts +1 -1
  685. package/ts3.5/dist/es6/pagination/lib/Pagination/common/utils/space.d.ts +28 -28
  686. package/ts3.5/dist/es6/pagination/lib/Pagination/types.d.ts +39 -0
  687. package/ts3.5/dist/es6/pagination/lib/Pagination/usePaginationModel.d.ts +19 -0
  688. package/ts3.5/dist/es6/popup/lib/hooks/index.d.ts +3 -0
  689. package/ts3.5/dist/es6/popup/lib/hooks/useCloseOnFullscreenExit.d.ts +7 -0
  690. package/ts3.5/dist/es6/popup/lib/hooks/usePopupCard.d.ts +5 -2
  691. package/ts3.5/dist/es6/popup/lib/hooks/usePopupCloseButton.d.ts +4 -2
  692. package/ts3.5/dist/es6/popup/lib/hooks/usePopupHeading.d.ts +5 -2
  693. package/ts3.5/dist/es6/popup/lib/hooks/usePopupPopper.d.ts +4 -2
  694. package/ts3.5/dist/es6/popup/lib/hooks/usePopupTarget.d.ts +4 -2
  695. package/ts3.5/dist/es6/popup/lib/hooks/useReturnFocus.d.ts +1 -1
  696. package/ts3.5/dist/es6/popup/lib/hooks/useTransferOnFullscreenEnter.d.ts +10 -0
  697. package/ts3.5/dist/es6/popup/lib/hooks/useTransferOnFullscreenExit.d.ts +9 -0
  698. package/ts3.5/dist/es6/radio/lib/Radio.d.ts +1 -1
  699. package/ts3.5/dist/es6/switch/lib/Switch.d.ts +1 -1
  700. package/ts3.5/dist/es6/tabs/index.d.ts +5 -0
  701. package/ts3.5/dist/es6/tabs/lib/Tabs.d.ts +35 -7
  702. package/ts3.5/dist/es6/tabs/lib/TabsItem.d.ts +107 -0
  703. package/ts3.5/dist/es6/tabs/lib/TabsList.d.ts +43 -0
  704. package/ts3.5/dist/es6/tabs/lib/TabsMenuPopper.d.ts +21 -0
  705. package/ts3.5/dist/es6/tabs/lib/TabsOverflowButton.d.ts +31 -0
  706. package/ts3.5/dist/es6/tabs/lib/{TabPanel.d.ts → TabsPanel.d.ts} +15 -5
  707. package/{dist/commonjs/tabs/lib/TabList.d.ts → ts3.5/dist/es6/tabs/lib/TabsPanels.d.ts} +15 -15
  708. package/ts3.5/dist/es6/tabs/lib/cursor/index.d.ts +1 -1
  709. package/ts3.5/dist/es6/tabs/lib/cursor/useCursorModel.d.ts +23 -13
  710. package/ts3.5/dist/es6/tabs/lib/cursor/useRovingFocus.d.ts +37 -0
  711. package/ts3.5/dist/es6/tabs/lib/list/index.d.ts +2 -1
  712. package/ts3.5/dist/es6/tabs/lib/list/renderItem.d.ts +4 -0
  713. package/ts3.5/dist/es6/tabs/lib/list/useListModel.d.ts +25 -13
  714. package/ts3.5/dist/es6/tabs/lib/list/useListRegisterItem.d.ts +14 -0
  715. package/ts3.5/dist/es6/tabs/lib/menu/Menu.d.ts +80 -0
  716. package/ts3.5/dist/es6/tabs/lib/menu/MenuCard.d.ts +17 -0
  717. package/ts3.5/dist/es6/tabs/lib/menu/MenuItem.d.ts +62 -0
  718. package/ts3.5/dist/es6/tabs/lib/menu/MenuList.d.ts +23 -0
  719. package/ts3.5/dist/es6/tabs/lib/menu/MenuPopper.d.ts +21 -0
  720. package/ts3.5/dist/es6/tabs/lib/menu/MenuTarget.d.ts +21 -0
  721. package/ts3.5/dist/es6/tabs/lib/menu/index.d.ts +8 -0
  722. package/ts3.5/dist/es6/tabs/lib/menu/useMenuModel.d.ts +35 -0
  723. package/ts3.5/dist/es6/tabs/lib/overflow/index.d.ts +5 -0
  724. package/ts3.5/dist/es6/tabs/lib/overflow/useOverflowMeasureContainer.d.ts +8 -0
  725. package/ts3.5/dist/es6/tabs/lib/overflow/useOverflowMeasureItem.d.ts +10 -0
  726. package/ts3.5/dist/es6/tabs/lib/overflow/useOverflowModel.d.ts +69 -0
  727. package/ts3.5/dist/es6/tabs/lib/overflow/useOverflowTarget.d.ts +11 -0
  728. package/ts3.5/dist/es6/tabs/lib/selection/index.d.ts +4 -0
  729. package/ts3.5/dist/es6/tabs/lib/selection/useResetCursorOnBlur.d.ts +13 -0
  730. package/ts3.5/dist/es6/tabs/lib/selection/useSelectionItem.d.ts +8 -0
  731. package/ts3.5/dist/es6/tabs/lib/selection/useSelectionModel.d.ts +62 -0
  732. package/ts3.5/dist/es6/tabs/lib/useTabsModel.d.ts +39 -38
  733. package/ts3.5/dist/es6/tokens/index.d.ts +3 -20
  734. package/ts3.5/dist/es6/tokens/lib/depth.d.ts +109 -3
  735. package/ts3.5/dist/es6/tooltip/lib/OverflowTooltip.d.ts +10 -0
  736. package/ts3.5/dist/es6/tooltip/lib/Tooltip.d.ts +9 -1
  737. package/ts3.5/dist/es6/tooltip/lib/useTooltip.d.ts +10 -2
  738. package/dist/commonjs/tabs/lib/Tab.d.ts +0 -49
  739. package/dist/commonjs/tabs/lib/Tab.d.ts.map +0 -1
  740. package/dist/commonjs/tabs/lib/Tab.js +0 -101
  741. package/dist/commonjs/tabs/lib/TabList.d.ts.map +0 -1
  742. package/dist/commonjs/tabs/lib/TabPanel.d.ts.map +0 -1
  743. package/dist/commonjs/tabs/lib/TabPanel.js +0 -56
  744. package/dist/commonjs/tabs/lib/cursor/hooks.d.ts +0 -39
  745. package/dist/commonjs/tabs/lib/cursor/hooks.d.ts.map +0 -1
  746. package/dist/commonjs/tabs/lib/hooks.d.ts +0 -10
  747. package/dist/commonjs/tabs/lib/hooks.d.ts.map +0 -1
  748. package/dist/commonjs/tabs/lib/list/hooks.d.ts +0 -11
  749. package/dist/commonjs/tabs/lib/list/hooks.d.ts.map +0 -1
  750. package/dist/commonjs/tabs/lib/list/hooks.js +0 -39
  751. package/dist/es6/tabs/lib/Tab.d.ts +0 -49
  752. package/dist/es6/tabs/lib/Tab.d.ts.map +0 -1
  753. package/dist/es6/tabs/lib/Tab.js +0 -92
  754. package/dist/es6/tabs/lib/TabList.d.ts.map +0 -1
  755. package/dist/es6/tabs/lib/TabPanel.d.ts.map +0 -1
  756. package/dist/es6/tabs/lib/TabPanel.js +0 -51
  757. package/dist/es6/tabs/lib/cursor/hooks.d.ts +0 -39
  758. package/dist/es6/tabs/lib/cursor/hooks.d.ts.map +0 -1
  759. package/dist/es6/tabs/lib/cursor/hooks.js +0 -108
  760. package/dist/es6/tabs/lib/hooks.d.ts +0 -10
  761. package/dist/es6/tabs/lib/hooks.d.ts.map +0 -1
  762. package/dist/es6/tabs/lib/list/hooks.d.ts +0 -11
  763. package/dist/es6/tabs/lib/list/hooks.d.ts.map +0 -1
  764. package/dist/es6/tabs/lib/list/hooks.js +0 -34
  765. package/tabs/lib/Tab.tsx +0 -176
  766. package/tabs/lib/TabList.tsx +0 -59
  767. package/tabs/lib/cursor/hooks.tsx +0 -122
  768. package/tabs/lib/hooks.tsx +0 -31
  769. package/tabs/lib/list/hooks.tsx +0 -45
  770. package/ts3.5/dist/commonjs/tabs/lib/Tab.d.ts +0 -49
  771. package/ts3.5/dist/commonjs/tabs/lib/cursor/hooks.d.ts +0 -39
  772. package/ts3.5/dist/commonjs/tabs/lib/hooks.d.ts +0 -10
  773. package/ts3.5/dist/commonjs/tabs/lib/list/hooks.d.ts +0 -11
  774. package/ts3.5/dist/es6/tabs/lib/Tab.d.ts +0 -49
  775. package/ts3.5/dist/es6/tabs/lib/cursor/hooks.d.ts +0 -39
  776. package/ts3.5/dist/es6/tabs/lib/hooks.d.ts +0 -10
  777. package/ts3.5/dist/es6/tabs/lib/list/hooks.d.ts +0 -11
@@ -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
+ });
@@ -0,0 +1,80 @@
1
+ import React from 'react';
2
+ import { MenuModel, MenuModelConfig } from './useMenuModel';
3
+ export declare const MenuModelContext: React.Context<MenuModel<unknown>>;
4
+ export interface MenuProps<T> extends MenuModelConfig<T> {
5
+ /**
6
+ * The contents of the Menu. Can be `Menu` children or any valid elements.
7
+ */
8
+ children: React.ReactNode;
9
+ /**
10
+ * Optionally pass a model directly to this component. Default is to create a model out of model
11
+ * config passed to this component.
12
+ * @default useMenuModel(config)
13
+ */
14
+ model?: MenuModel<T>;
15
+ }
16
+ /**
17
+ * An accessible dropdown menu component. A dropdown menu usually contains a target element that
18
+ * opens to a menu.
19
+ * @example
20
+ * <Menu>
21
+ * <Menu.Target>Open</Menu.Target>
22
+ * <Menu.Popper>
23
+ * <Menu.Card>
24
+ * <Menu.List>
25
+ * <Menu.Item name="first">First Item</Menu.Item>
26
+ * <Menu.Item name="second">Second Item</Menu.Item>
27
+ * </Menu.List>
28
+ * </Menu.Card>
29
+ * </Menu.Popper>
30
+ * </Menu>
31
+ */
32
+ export declare const Menu: import("../../../common").Component<MenuProps<any>> & {
33
+ /**
34
+ * The menu card is a non-semantic element used to give the dropdown menu its distinct visual
35
+ * cue that the dropdown menu is floating above other content. A menu card usually contains a
36
+ * menu list, but can also contain other elements like a header or footer.
37
+ */
38
+ Card: import("../../../common").ElementComponent<"div", import("./MenuCard").MenuCardProps<unknown>>;
39
+ /**
40
+ * The menu list follows the Collections API. A list can either contain static items
41
+ * or a render prop and `items` to the model.
42
+ *
43
+ * @example
44
+ * const MyComponent = () => {
45
+ * const model = useMenuModel({
46
+ * items: [
47
+ * { id: 'first', text: 'First Item' },
48
+ * { id: 'second', text: 'Second Item' },
49
+ * ]
50
+ * })
51
+ *
52
+ * return (
53
+ * <Menu model={model}>
54
+ * <Menu.List>
55
+ * {(item) => <Menu.Item name={item.id}>{item.text}</Menu.Item>}
56
+ * </Menu.List>
57
+ * </Menu>
58
+ * )
59
+ * }
60
+ */
61
+ List: import("../../../common").ElementComponent<"div", import("./MenuList").MenuListProps<unknown>>;
62
+ /**
63
+ * A menu item has an optional `name` prop that identifies the item in the menu list and will be
64
+ * passed to the optional `onSelect` callback of the menu model. A menu item can contain any
65
+ * HTML. If more complex HTML is provided, consider
66
+ */
67
+ Item: import("../../../common").ElementComponent<"button", import("./MenuItem").MenuItemProps<unknown>> & {
68
+ Icon: typeof import("../../..").SystemIcon;
69
+ Text: import("@emotion/styled-base").StyledComponent<React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "hidden" | "color" | "style" | "translate" | "prefix" | "slot" | "title" | "children" | "className" | "id" | "lang" | "role" | "tabIndex" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "css" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "placeholder" | "spellCheck" | "radioGroup" | "about" | "datatype" | "inlist" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is">, import("../../../common").EmotionCanvasTheme>;
70
+ };
71
+ Target: import("../../../common").ElementComponent<import("../../../common").ElementComponent<"button", import("../../..").SecondaryButtonProps>, import("./MenuTarget").MenuTargetProps<unknown>>;
72
+ /**
73
+ * The "Popper" of a menu. The popper will appear around the `Menu.Target`. It renders a `div`
74
+ * element that is portalled to the `document.body` which is controlled by the `PopupStack. The
75
+ * `PopupStack` is not part of React. This means no extra props given to this component will be
76
+ * forwarded to the `div` element, but the `ref` will be forwarded.
77
+ */
78
+ Popper: import("../../../common").ElementComponent<"div", import("./MenuPopper").MenuPopperProps<unknown>>;
79
+ };
80
+ //# sourceMappingURL=Menu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Menu.d.ts","sourceRoot":"","sources":["../../../../../tabs/lib/menu/Menu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAAC,SAAS,EAAE,eAAe,EAAe,MAAM,gBAAgB,CAAC;AAOxE,eAAO,MAAM,gBAAgB,mCAA4C,CAAC;AAE1E,MAAM,WAAW,SAAS,CAAC,CAAC,CAAE,SAAQ,eAAe,CAAC,CAAC,CAAC;IACtD;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B;;;;OAIG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;CACtB;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,IAAI;IAQb;;;;OAIG;;IAEH;;;;;;;;;;;;;;;;;;;;;OAqBG;;IAEH;;;;OAIG;;;;;;IAGH;;;;;OAKG;;CAGL,CAAC"}