@workday/canvas-kit-react 5.3.0-next.10 → 5.3.0-next.24

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 (652) 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/theming/README.md +189 -25
  11. package/common/lib/theming/breakpoints.ts +296 -16
  12. package/common/lib/theming/types.ts +191 -1
  13. package/common/lib/utils/components.ts +50 -23
  14. package/common/lib/utils/index.ts +1 -0
  15. package/common/lib/utils/mergeProps.ts +4 -0
  16. package/common/lib/utils/useConstant.ts +18 -0
  17. package/common/lib/utils/useResizeObserver.ts +29 -0
  18. package/common/lib/utils/useUniqueId.ts +4 -3
  19. package/dist/commonjs/action-bar/lib/ActionBar.d.ts.map +1 -1
  20. package/dist/commonjs/action-bar/lib/ActionBar.js +35 -27
  21. package/dist/commonjs/button/lib/PrimaryButton.d.ts +80 -6
  22. package/dist/commonjs/button/lib/PrimaryButton.d.ts.map +1 -1
  23. package/dist/commonjs/button/lib/PrimaryButton.js +80 -26
  24. package/dist/commonjs/button/lib/SecondaryButton.d.ts +8 -5
  25. package/dist/commonjs/button/lib/SecondaryButton.d.ts.map +1 -1
  26. package/dist/commonjs/button/lib/SecondaryButton.js +22 -12
  27. package/dist/commonjs/button/lib/TertiaryButton.d.ts +8 -4
  28. package/dist/commonjs/button/lib/TertiaryButton.d.ts.map +1 -1
  29. package/dist/commonjs/button/lib/TertiaryButton.js +24 -20
  30. package/dist/commonjs/button/lib/parts/ButtonContainer.d.ts +5 -3
  31. package/dist/commonjs/button/lib/parts/ButtonContainer.d.ts.map +1 -1
  32. package/dist/commonjs/button/lib/parts/ButtonContainer.js +7 -9
  33. package/dist/commonjs/button/lib/parts/ButtonLabel.d.ts +1 -1
  34. package/dist/commonjs/button/lib/parts/ButtonLabel.d.ts.map +1 -1
  35. package/dist/commonjs/button/lib/parts/ButtonLabelIcon.d.ts +7 -4
  36. package/dist/commonjs/button/lib/parts/ButtonLabelIcon.d.ts.map +1 -1
  37. package/dist/commonjs/button/lib/parts/ButtonLabelIcon.js +28 -13
  38. package/dist/commonjs/button/lib/types.d.ts +9 -0
  39. package/dist/commonjs/button/lib/types.d.ts.map +1 -1
  40. package/dist/commonjs/common/index.d.ts +1 -0
  41. package/dist/commonjs/common/index.d.ts.map +1 -1
  42. package/dist/commonjs/common/index.js +1 -0
  43. package/dist/commonjs/common/lib/EllipsisText.d.ts +5 -0
  44. package/dist/commonjs/common/lib/EllipsisText.d.ts.map +1 -0
  45. package/dist/commonjs/common/lib/EllipsisText.js +13 -0
  46. package/dist/commonjs/common/lib/theming/breakpoints.d.ts +287 -6
  47. package/dist/commonjs/common/lib/theming/breakpoints.d.ts.map +1 -1
  48. package/dist/commonjs/common/lib/theming/breakpoints.js +192 -10
  49. package/dist/commonjs/common/lib/theming/types.d.ts +191 -1
  50. package/dist/commonjs/common/lib/theming/types.d.ts.map +1 -1
  51. package/dist/commonjs/common/lib/utils/components.d.ts +19 -9
  52. package/dist/commonjs/common/lib/utils/components.d.ts.map +1 -1
  53. package/dist/commonjs/common/lib/utils/components.js +12 -2
  54. package/dist/commonjs/common/lib/utils/index.d.ts +1 -0
  55. package/dist/commonjs/common/lib/utils/index.d.ts.map +1 -1
  56. package/dist/commonjs/common/lib/utils/index.js +1 -0
  57. package/dist/commonjs/common/lib/utils/mergeProps.d.ts.map +1 -1
  58. package/dist/commonjs/common/lib/utils/mergeProps.js +5 -0
  59. package/dist/commonjs/common/lib/utils/useConstant.d.ts +9 -0
  60. package/dist/commonjs/common/lib/utils/useConstant.d.ts.map +1 -0
  61. package/dist/commonjs/common/lib/utils/useConstant.js +18 -0
  62. package/dist/commonjs/common/lib/utils/useResizeObserver.d.ts +3 -0
  63. package/dist/commonjs/common/lib/utils/useResizeObserver.d.ts.map +1 -0
  64. package/dist/commonjs/common/lib/utils/useResizeObserver.js +42 -0
  65. package/dist/commonjs/common/lib/utils/useUniqueId.d.ts.map +1 -1
  66. package/dist/commonjs/common/lib/utils/useUniqueId.js +3 -10
  67. package/dist/commonjs/dialog/lib/hooks/useDialogCard.d.ts +4 -16
  68. package/dist/commonjs/dialog/lib/hooks/useDialogCard.d.ts.map +1 -1
  69. package/dist/commonjs/dialog/lib/hooks/useDialogPopper.d.ts +5 -2
  70. package/dist/commonjs/dialog/lib/hooks/useDialogPopper.d.ts.map +1 -1
  71. package/dist/commonjs/loading-animation/lib/LoadingDots.js +3 -6
  72. package/dist/commonjs/modal/lib/ModalOverlay.d.ts +4 -2
  73. package/dist/commonjs/modal/lib/ModalOverlay.d.ts.map +1 -1
  74. package/dist/commonjs/modal/lib/hooks/useModalCard.d.ts +4 -16
  75. package/dist/commonjs/modal/lib/hooks/useModalCard.d.ts.map +1 -1
  76. package/dist/commonjs/modal/lib/hooks/useModalHeading.d.ts +5 -17
  77. package/dist/commonjs/modal/lib/hooks/useModalHeading.d.ts.map +1 -1
  78. package/dist/commonjs/pagination/lib/Pagination/GoTo/Label.d.ts +3 -0
  79. package/dist/commonjs/pagination/lib/Pagination/GoTo/Label.d.ts.map +1 -1
  80. package/dist/commonjs/pagination/lib/Pagination/PageList.d.ts +1 -1
  81. package/dist/commonjs/pagination/lib/Pagination/PageList.d.ts.map +1 -1
  82. package/dist/commonjs/pagination/lib/Pagination/Pagination.d.ts +5 -5
  83. package/dist/commonjs/pagination/lib/Pagination/common/List.d.ts +1 -1
  84. package/dist/commonjs/pagination/lib/Pagination/common/List.d.ts.map +1 -1
  85. package/dist/commonjs/pagination/lib/Pagination/common/utils/getValidChildren.d.ts +1 -1
  86. package/dist/commonjs/pagination/lib/Pagination/common/utils/getValidChildren.d.ts.map +1 -1
  87. package/dist/commonjs/pagination/lib/Pagination/common/utils/space.d.ts +28 -28
  88. package/dist/commonjs/pagination/lib/Pagination/types.d.ts +39 -0
  89. package/dist/commonjs/pagination/lib/Pagination/types.d.ts.map +1 -1
  90. package/dist/commonjs/pagination/lib/Pagination/usePaginationModel.d.ts +19 -0
  91. package/dist/commonjs/pagination/lib/Pagination/usePaginationModel.d.ts.map +1 -1
  92. package/dist/commonjs/popup/lib/PopupCard.d.ts.map +1 -1
  93. package/dist/commonjs/popup/lib/PopupCard.js +3 -10
  94. package/dist/commonjs/popup/lib/hooks/usePopupCard.d.ts +5 -2
  95. package/dist/commonjs/popup/lib/hooks/usePopupCard.d.ts.map +1 -1
  96. package/dist/commonjs/popup/lib/hooks/usePopupCloseButton.d.ts +4 -2
  97. package/dist/commonjs/popup/lib/hooks/usePopupCloseButton.d.ts.map +1 -1
  98. package/dist/commonjs/popup/lib/hooks/usePopupHeading.d.ts +5 -2
  99. package/dist/commonjs/popup/lib/hooks/usePopupHeading.d.ts.map +1 -1
  100. package/dist/commonjs/popup/lib/hooks/usePopupPopper.d.ts +4 -2
  101. package/dist/commonjs/popup/lib/hooks/usePopupPopper.d.ts.map +1 -1
  102. package/dist/commonjs/popup/lib/hooks/usePopupTarget.d.ts +4 -2
  103. package/dist/commonjs/popup/lib/hooks/usePopupTarget.d.ts.map +1 -1
  104. package/dist/commonjs/popup/lib/hooks/useReturnFocus.d.ts +1 -1
  105. package/dist/commonjs/popup/lib/hooks/useReturnFocus.js +1 -1
  106. package/dist/commonjs/tabs/index.d.ts +5 -0
  107. package/dist/commonjs/tabs/index.d.ts.map +1 -1
  108. package/dist/commonjs/tabs/index.js +11 -0
  109. package/dist/commonjs/tabs/lib/Tabs.d.ts +35 -7
  110. package/dist/commonjs/tabs/lib/Tabs.d.ts.map +1 -1
  111. package/dist/commonjs/tabs/lib/Tabs.js +28 -7
  112. package/dist/commonjs/tabs/lib/TabsItem.d.ts +107 -0
  113. package/dist/commonjs/tabs/lib/TabsItem.d.ts.map +1 -0
  114. package/dist/commonjs/tabs/lib/TabsItem.js +140 -0
  115. package/dist/commonjs/tabs/lib/TabsList.d.ts +43 -0
  116. package/dist/commonjs/tabs/lib/TabsList.d.ts.map +1 -0
  117. package/dist/commonjs/tabs/lib/TabsList.js +53 -0
  118. package/dist/commonjs/tabs/lib/TabsMenuPopper.d.ts +21 -0
  119. package/dist/commonjs/tabs/lib/TabsMenuPopper.d.ts.map +1 -0
  120. package/dist/commonjs/tabs/lib/{TabList.js → TabsMenuPopper.js} +7 -19
  121. package/dist/commonjs/tabs/lib/TabsOverflowButton.d.ts +31 -0
  122. package/dist/commonjs/tabs/lib/TabsOverflowButton.d.ts.map +1 -0
  123. package/dist/commonjs/tabs/lib/TabsOverflowButton.js +57 -0
  124. package/{ts3.5/dist/commonjs/tabs/lib/TabPanel.d.ts → dist/commonjs/tabs/lib/TabsPanel.d.ts} +39 -29
  125. package/dist/commonjs/tabs/lib/TabsPanel.d.ts.map +1 -0
  126. package/dist/commonjs/tabs/lib/TabsPanel.js +64 -0
  127. package/dist/{es6/tabs/lib/TabList.d.ts → commonjs/tabs/lib/TabsPanels.d.ts} +5 -5
  128. package/dist/commonjs/tabs/lib/TabsPanels.d.ts.map +1 -0
  129. package/dist/commonjs/tabs/lib/TabsPanels.js +21 -0
  130. package/dist/commonjs/tabs/lib/cursor/index.d.ts +1 -1
  131. package/dist/commonjs/tabs/lib/cursor/index.d.ts.map +1 -1
  132. package/dist/commonjs/tabs/lib/cursor/index.js +1 -1
  133. package/dist/commonjs/tabs/lib/cursor/useCursorModel.d.ts +23 -13
  134. package/dist/commonjs/tabs/lib/cursor/useCursorModel.d.ts.map +1 -1
  135. package/dist/commonjs/tabs/lib/cursor/useCursorModel.js +50 -49
  136. package/dist/commonjs/tabs/lib/cursor/useRovingFocus.d.ts +37 -0
  137. package/dist/commonjs/tabs/lib/cursor/useRovingFocus.d.ts.map +1 -0
  138. package/dist/commonjs/tabs/lib/cursor/{hooks.js → useRovingFocus.js} +26 -50
  139. package/dist/commonjs/tabs/lib/list/index.d.ts +2 -1
  140. package/dist/commonjs/tabs/lib/list/index.d.ts.map +1 -1
  141. package/dist/commonjs/tabs/lib/list/index.js +2 -1
  142. package/dist/commonjs/tabs/lib/list/renderItem.d.ts +4 -0
  143. package/dist/commonjs/tabs/lib/list/renderItem.d.ts.map +1 -0
  144. package/dist/commonjs/tabs/lib/list/renderItem.js +18 -0
  145. package/dist/commonjs/tabs/lib/list/useListModel.d.ts +25 -13
  146. package/dist/commonjs/tabs/lib/list/useListModel.d.ts.map +1 -1
  147. package/dist/commonjs/tabs/lib/list/useListModel.js +20 -7
  148. package/dist/commonjs/tabs/lib/list/useListRegisterItem.d.ts +14 -0
  149. package/dist/commonjs/tabs/lib/list/useListRegisterItem.d.ts.map +1 -0
  150. package/dist/commonjs/tabs/lib/list/useListRegisterItem.js +46 -0
  151. package/dist/commonjs/tabs/lib/menu/Menu.d.ts +80 -0
  152. package/dist/commonjs/tabs/lib/menu/Menu.d.ts.map +1 -0
  153. package/dist/commonjs/tabs/lib/menu/Menu.js +94 -0
  154. package/dist/commonjs/tabs/lib/menu/MenuCard.d.ts +17 -0
  155. package/dist/commonjs/tabs/lib/menu/MenuCard.d.ts.map +1 -0
  156. package/dist/commonjs/tabs/lib/menu/MenuCard.js +82 -0
  157. package/dist/commonjs/tabs/lib/menu/MenuItem.d.ts +62 -0
  158. package/dist/commonjs/tabs/lib/menu/MenuItem.d.ts.map +1 -0
  159. package/dist/commonjs/tabs/lib/menu/MenuItem.js +145 -0
  160. package/dist/commonjs/tabs/lib/menu/MenuList.d.ts +23 -0
  161. package/dist/commonjs/tabs/lib/menu/MenuList.d.ts.map +1 -0
  162. package/dist/commonjs/tabs/lib/menu/MenuList.js +52 -0
  163. package/dist/commonjs/tabs/lib/menu/MenuPopper.d.ts +21 -0
  164. package/dist/commonjs/tabs/lib/menu/MenuPopper.d.ts.map +1 -0
  165. package/dist/commonjs/tabs/lib/menu/MenuPopper.js +45 -0
  166. package/dist/commonjs/tabs/lib/menu/MenuTarget.d.ts +21 -0
  167. package/dist/commonjs/tabs/lib/menu/MenuTarget.d.ts.map +1 -0
  168. package/dist/commonjs/tabs/lib/menu/MenuTarget.js +60 -0
  169. package/dist/commonjs/tabs/lib/menu/index.d.ts +8 -0
  170. package/dist/commonjs/tabs/lib/menu/index.d.ts.map +1 -0
  171. package/dist/commonjs/tabs/lib/menu/index.js +18 -0
  172. package/dist/commonjs/tabs/lib/menu/useMenuModel.d.ts +35 -0
  173. package/dist/commonjs/tabs/lib/menu/useMenuModel.d.ts.map +1 -0
  174. package/dist/commonjs/tabs/lib/menu/useMenuModel.js +33 -0
  175. package/dist/commonjs/tabs/lib/overflow/index.d.ts +5 -0
  176. package/dist/commonjs/tabs/lib/overflow/index.d.ts.map +1 -0
  177. package/dist/commonjs/tabs/lib/overflow/index.js +9 -0
  178. package/dist/commonjs/tabs/lib/overflow/useOverflowMeasureContainer.d.ts +8 -0
  179. package/dist/commonjs/tabs/lib/overflow/useOverflowMeasureContainer.d.ts.map +1 -0
  180. package/dist/commonjs/tabs/lib/overflow/useOverflowMeasureContainer.js +22 -0
  181. package/dist/commonjs/tabs/lib/overflow/useOverflowMeasureItem.d.ts +10 -0
  182. package/dist/commonjs/tabs/lib/overflow/useOverflowMeasureItem.d.ts.map +1 -0
  183. package/dist/commonjs/tabs/lib/overflow/useOverflowMeasureItem.js +32 -0
  184. package/dist/commonjs/tabs/lib/overflow/useOverflowModel.d.ts +69 -0
  185. package/dist/commonjs/tabs/lib/overflow/useOverflowModel.d.ts.map +1 -0
  186. package/dist/commonjs/tabs/lib/overflow/useOverflowModel.js +117 -0
  187. package/dist/commonjs/tabs/lib/overflow/useOverflowTarget.d.ts +11 -0
  188. package/dist/commonjs/tabs/lib/overflow/useOverflowTarget.d.ts.map +1 -0
  189. package/dist/commonjs/tabs/lib/overflow/useOverflowTarget.js +35 -0
  190. package/dist/commonjs/tabs/lib/selection/index.d.ts +4 -0
  191. package/dist/commonjs/tabs/lib/selection/index.d.ts.map +1 -0
  192. package/dist/commonjs/tabs/lib/selection/index.js +8 -0
  193. package/dist/commonjs/tabs/lib/selection/useResetCursorOnBlur.d.ts +13 -0
  194. package/dist/commonjs/tabs/lib/selection/useResetCursorOnBlur.d.ts.map +1 -0
  195. package/dist/commonjs/tabs/lib/{hooks.js → selection/useResetCursorOnBlur.js} +8 -9
  196. package/dist/commonjs/tabs/lib/selection/useSelectionItem.d.ts +8 -0
  197. package/dist/commonjs/tabs/lib/selection/useSelectionItem.d.ts.map +1 -0
  198. package/dist/commonjs/tabs/lib/selection/useSelectionItem.js +16 -0
  199. package/dist/commonjs/tabs/lib/selection/useSelectionModel.d.ts +62 -0
  200. package/dist/commonjs/tabs/lib/selection/useSelectionModel.d.ts.map +1 -0
  201. package/dist/commonjs/tabs/lib/selection/useSelectionModel.js +80 -0
  202. package/dist/commonjs/tabs/lib/useTabsModel.d.ts +39 -38
  203. package/dist/commonjs/tabs/lib/useTabsModel.d.ts.map +1 -1
  204. package/dist/commonjs/tabs/lib/useTabsModel.js +50 -37
  205. package/dist/commonjs/tokens/index.d.ts +3 -20
  206. package/dist/commonjs/tokens/index.d.ts.map +1 -1
  207. package/dist/commonjs/tokens/index.js +3 -6
  208. package/dist/commonjs/tokens/lib/depth.d.ts +109 -3
  209. package/dist/commonjs/tokens/lib/depth.d.ts.map +1 -1
  210. package/dist/commonjs/tokens/lib/depth.js +40 -5
  211. package/dist/commonjs/tooltip/lib/OverflowTooltip.d.ts +10 -0
  212. package/dist/commonjs/tooltip/lib/OverflowTooltip.d.ts.map +1 -1
  213. package/dist/commonjs/tooltip/lib/OverflowTooltip.js +8 -6
  214. package/dist/commonjs/tooltip/lib/Tooltip.d.ts +9 -1
  215. package/dist/commonjs/tooltip/lib/Tooltip.d.ts.map +1 -1
  216. package/dist/commonjs/tooltip/lib/Tooltip.js +7 -2
  217. package/dist/commonjs/tooltip/lib/useTooltip.d.ts +10 -2
  218. package/dist/commonjs/tooltip/lib/useTooltip.d.ts.map +1 -1
  219. package/dist/commonjs/tooltip/lib/useTooltip.js +13 -8
  220. package/dist/es6/action-bar/lib/ActionBar.d.ts.map +1 -1
  221. package/dist/es6/action-bar/lib/ActionBar.js +33 -22
  222. package/dist/es6/button/lib/PrimaryButton.d.ts +80 -6
  223. package/dist/es6/button/lib/PrimaryButton.d.ts.map +1 -1
  224. package/dist/es6/button/lib/PrimaryButton.js +81 -27
  225. package/dist/es6/button/lib/SecondaryButton.d.ts +8 -5
  226. package/dist/es6/button/lib/SecondaryButton.d.ts.map +1 -1
  227. package/dist/es6/button/lib/SecondaryButton.js +22 -12
  228. package/dist/es6/button/lib/TertiaryButton.d.ts +8 -4
  229. package/dist/es6/button/lib/TertiaryButton.d.ts.map +1 -1
  230. package/dist/es6/button/lib/TertiaryButton.js +25 -21
  231. package/dist/es6/button/lib/parts/ButtonContainer.d.ts +5 -3
  232. package/dist/es6/button/lib/parts/ButtonContainer.d.ts.map +1 -1
  233. package/dist/es6/button/lib/parts/ButtonContainer.js +7 -9
  234. package/dist/es6/button/lib/parts/ButtonLabel.d.ts +1 -1
  235. package/dist/es6/button/lib/parts/ButtonLabel.d.ts.map +1 -1
  236. package/dist/es6/button/lib/parts/ButtonLabelIcon.d.ts +7 -4
  237. package/dist/es6/button/lib/parts/ButtonLabelIcon.d.ts.map +1 -1
  238. package/dist/es6/button/lib/parts/ButtonLabelIcon.js +28 -13
  239. package/dist/es6/button/lib/types.d.ts +9 -0
  240. package/dist/es6/button/lib/types.d.ts.map +1 -1
  241. package/dist/es6/common/index.d.ts +1 -0
  242. package/dist/es6/common/index.d.ts.map +1 -1
  243. package/dist/es6/common/index.js +1 -0
  244. package/dist/es6/common/lib/EllipsisText.d.ts +5 -0
  245. package/dist/es6/common/lib/EllipsisText.d.ts.map +1 -0
  246. package/dist/es6/common/lib/EllipsisText.js +8 -0
  247. package/dist/es6/common/lib/theming/breakpoints.d.ts +287 -6
  248. package/dist/es6/common/lib/theming/breakpoints.d.ts.map +1 -1
  249. package/dist/es6/common/lib/theming/breakpoints.js +192 -10
  250. package/dist/es6/common/lib/theming/types.d.ts +191 -1
  251. package/dist/es6/common/lib/theming/types.d.ts.map +1 -1
  252. package/dist/es6/common/lib/utils/components.d.ts +19 -9
  253. package/dist/es6/common/lib/utils/components.d.ts.map +1 -1
  254. package/dist/es6/common/lib/utils/components.js +12 -2
  255. package/dist/es6/common/lib/utils/index.d.ts +1 -0
  256. package/dist/es6/common/lib/utils/index.d.ts.map +1 -1
  257. package/dist/es6/common/lib/utils/index.js +1 -0
  258. package/dist/es6/common/lib/utils/mergeProps.d.ts.map +1 -1
  259. package/dist/es6/common/lib/utils/mergeProps.js +5 -0
  260. package/dist/es6/common/lib/utils/useConstant.d.ts +9 -0
  261. package/dist/es6/common/lib/utils/useConstant.d.ts.map +1 -0
  262. package/dist/es6/common/lib/utils/useConstant.js +15 -0
  263. package/dist/es6/common/lib/utils/useResizeObserver.d.ts +3 -0
  264. package/dist/es6/common/lib/utils/useResizeObserver.d.ts.map +1 -0
  265. package/dist/es6/common/lib/utils/useResizeObserver.js +37 -0
  266. package/dist/es6/common/lib/utils/useUniqueId.d.ts.map +1 -1
  267. package/dist/es6/common/lib/utils/useUniqueId.js +3 -3
  268. package/dist/es6/dialog/lib/hooks/useDialogCard.d.ts +4 -16
  269. package/dist/es6/dialog/lib/hooks/useDialogCard.d.ts.map +1 -1
  270. package/dist/es6/dialog/lib/hooks/useDialogPopper.d.ts +5 -2
  271. package/dist/es6/dialog/lib/hooks/useDialogPopper.d.ts.map +1 -1
  272. package/dist/es6/loading-animation/lib/LoadingDots.js +1 -1
  273. package/dist/es6/modal/lib/ModalOverlay.d.ts +4 -2
  274. package/dist/es6/modal/lib/ModalOverlay.d.ts.map +1 -1
  275. package/dist/es6/modal/lib/hooks/useModalCard.d.ts +4 -16
  276. package/dist/es6/modal/lib/hooks/useModalCard.d.ts.map +1 -1
  277. package/dist/es6/modal/lib/hooks/useModalHeading.d.ts +5 -17
  278. package/dist/es6/modal/lib/hooks/useModalHeading.d.ts.map +1 -1
  279. package/dist/es6/pagination/lib/Pagination/GoTo/Label.d.ts +3 -0
  280. package/dist/es6/pagination/lib/Pagination/GoTo/Label.d.ts.map +1 -1
  281. package/dist/es6/pagination/lib/Pagination/PageList.d.ts +1 -1
  282. package/dist/es6/pagination/lib/Pagination/PageList.d.ts.map +1 -1
  283. package/dist/es6/pagination/lib/Pagination/Pagination.d.ts +5 -5
  284. package/dist/es6/pagination/lib/Pagination/common/List.d.ts +1 -1
  285. package/dist/es6/pagination/lib/Pagination/common/List.d.ts.map +1 -1
  286. package/dist/es6/pagination/lib/Pagination/common/utils/getValidChildren.d.ts +1 -1
  287. package/dist/es6/pagination/lib/Pagination/common/utils/getValidChildren.d.ts.map +1 -1
  288. package/dist/es6/pagination/lib/Pagination/common/utils/space.d.ts +28 -28
  289. package/dist/es6/pagination/lib/Pagination/types.d.ts +39 -0
  290. package/dist/es6/pagination/lib/Pagination/types.d.ts.map +1 -1
  291. package/dist/es6/pagination/lib/Pagination/usePaginationModel.d.ts +19 -0
  292. package/dist/es6/pagination/lib/Pagination/usePaginationModel.d.ts.map +1 -1
  293. package/dist/es6/popup/lib/PopupCard.d.ts.map +1 -1
  294. package/dist/es6/popup/lib/PopupCard.js +4 -11
  295. package/dist/es6/popup/lib/hooks/usePopupCard.d.ts +5 -2
  296. package/dist/es6/popup/lib/hooks/usePopupCard.d.ts.map +1 -1
  297. package/dist/es6/popup/lib/hooks/usePopupCloseButton.d.ts +4 -2
  298. package/dist/es6/popup/lib/hooks/usePopupCloseButton.d.ts.map +1 -1
  299. package/dist/es6/popup/lib/hooks/usePopupHeading.d.ts +5 -2
  300. package/dist/es6/popup/lib/hooks/usePopupHeading.d.ts.map +1 -1
  301. package/dist/es6/popup/lib/hooks/usePopupPopper.d.ts +4 -2
  302. package/dist/es6/popup/lib/hooks/usePopupPopper.d.ts.map +1 -1
  303. package/dist/es6/popup/lib/hooks/usePopupTarget.d.ts +4 -2
  304. package/dist/es6/popup/lib/hooks/usePopupTarget.d.ts.map +1 -1
  305. package/dist/es6/popup/lib/hooks/useReturnFocus.d.ts +1 -1
  306. package/dist/es6/popup/lib/hooks/useReturnFocus.js +1 -1
  307. package/dist/es6/tabs/index.d.ts +5 -0
  308. package/dist/es6/tabs/index.d.ts.map +1 -1
  309. package/dist/es6/tabs/index.js +5 -0
  310. package/dist/es6/tabs/lib/Tabs.d.ts +35 -7
  311. package/dist/es6/tabs/lib/Tabs.d.ts.map +1 -1
  312. package/dist/es6/tabs/lib/Tabs.js +28 -7
  313. package/dist/es6/tabs/lib/TabsItem.d.ts +107 -0
  314. package/dist/es6/tabs/lib/TabsItem.d.ts.map +1 -0
  315. package/dist/es6/tabs/lib/TabsItem.js +131 -0
  316. package/dist/es6/tabs/lib/TabsList.d.ts +43 -0
  317. package/dist/es6/tabs/lib/TabsList.d.ts.map +1 -0
  318. package/dist/es6/tabs/lib/TabsList.js +44 -0
  319. package/dist/es6/tabs/lib/TabsMenuPopper.d.ts +21 -0
  320. package/dist/es6/tabs/lib/TabsMenuPopper.d.ts.map +1 -0
  321. package/dist/es6/tabs/lib/{TabList.js → TabsMenuPopper.js} +8 -20
  322. package/dist/es6/tabs/lib/TabsOverflowButton.d.ts +31 -0
  323. package/dist/es6/tabs/lib/TabsOverflowButton.d.ts.map +1 -0
  324. package/dist/es6/tabs/lib/TabsOverflowButton.js +48 -0
  325. package/dist/{commonjs/tabs/lib/TabPanel.d.ts → es6/tabs/lib/TabsPanel.d.ts} +15 -5
  326. package/dist/es6/tabs/lib/TabsPanel.d.ts.map +1 -0
  327. package/dist/es6/tabs/lib/TabsPanel.js +59 -0
  328. package/{ts3.5/dist/commonjs/tabs/lib/TabList.d.ts → dist/es6/tabs/lib/TabsPanels.d.ts} +15 -15
  329. package/dist/es6/tabs/lib/TabsPanels.d.ts.map +1 -0
  330. package/dist/es6/tabs/lib/TabsPanels.js +12 -0
  331. package/dist/es6/tabs/lib/cursor/index.d.ts +1 -1
  332. package/dist/es6/tabs/lib/cursor/index.d.ts.map +1 -1
  333. package/dist/es6/tabs/lib/cursor/index.js +1 -1
  334. package/dist/es6/tabs/lib/cursor/useCursorModel.d.ts +23 -13
  335. package/dist/es6/tabs/lib/cursor/useCursorModel.d.ts.map +1 -1
  336. package/dist/es6/tabs/lib/cursor/useCursorModel.js +51 -50
  337. package/dist/es6/tabs/lib/cursor/useRovingFocus.d.ts +37 -0
  338. package/dist/es6/tabs/lib/cursor/useRovingFocus.d.ts.map +1 -0
  339. package/dist/es6/tabs/lib/cursor/useRovingFocus.js +84 -0
  340. package/dist/es6/tabs/lib/list/index.d.ts +2 -1
  341. package/dist/es6/tabs/lib/list/index.d.ts.map +1 -1
  342. package/dist/es6/tabs/lib/list/index.js +2 -1
  343. package/dist/es6/tabs/lib/list/renderItem.d.ts +4 -0
  344. package/dist/es6/tabs/lib/list/renderItem.d.ts.map +1 -0
  345. package/dist/es6/tabs/lib/list/renderItem.js +12 -0
  346. package/dist/es6/tabs/lib/list/useListModel.d.ts +25 -13
  347. package/dist/es6/tabs/lib/list/useListModel.d.ts.map +1 -1
  348. package/dist/es6/tabs/lib/list/useListModel.js +21 -8
  349. package/dist/es6/tabs/lib/list/useListRegisterItem.d.ts +14 -0
  350. package/dist/es6/tabs/lib/list/useListRegisterItem.d.ts.map +1 -0
  351. package/dist/es6/tabs/lib/list/useListRegisterItem.js +41 -0
  352. package/dist/es6/tabs/lib/menu/Menu.d.ts +80 -0
  353. package/dist/es6/tabs/lib/menu/Menu.d.ts.map +1 -0
  354. package/dist/es6/tabs/lib/menu/Menu.js +89 -0
  355. package/dist/es6/tabs/lib/menu/MenuCard.d.ts +17 -0
  356. package/dist/es6/tabs/lib/menu/MenuCard.d.ts.map +1 -0
  357. package/dist/es6/tabs/lib/menu/MenuCard.js +73 -0
  358. package/dist/es6/tabs/lib/menu/MenuItem.d.ts +62 -0
  359. package/dist/es6/tabs/lib/menu/MenuItem.d.ts.map +1 -0
  360. package/dist/es6/tabs/lib/menu/MenuItem.js +136 -0
  361. package/dist/es6/tabs/lib/menu/MenuList.d.ts +23 -0
  362. package/dist/es6/tabs/lib/menu/MenuList.d.ts.map +1 -0
  363. package/dist/es6/tabs/lib/menu/MenuList.js +43 -0
  364. package/dist/es6/tabs/lib/menu/MenuPopper.d.ts +21 -0
  365. package/dist/es6/tabs/lib/menu/MenuPopper.d.ts.map +1 -0
  366. package/dist/es6/tabs/lib/menu/MenuPopper.js +36 -0
  367. package/dist/es6/tabs/lib/menu/MenuTarget.d.ts +21 -0
  368. package/dist/es6/tabs/lib/menu/MenuTarget.d.ts.map +1 -0
  369. package/dist/es6/tabs/lib/menu/MenuTarget.js +51 -0
  370. package/dist/es6/tabs/lib/menu/index.d.ts +8 -0
  371. package/dist/es6/tabs/lib/menu/index.d.ts.map +1 -0
  372. package/dist/es6/tabs/lib/menu/index.js +7 -0
  373. package/dist/es6/tabs/lib/menu/useMenuModel.d.ts +35 -0
  374. package/dist/es6/tabs/lib/menu/useMenuModel.d.ts.map +1 -0
  375. package/dist/es6/tabs/lib/menu/useMenuModel.js +31 -0
  376. package/dist/es6/tabs/lib/overflow/index.d.ts +5 -0
  377. package/dist/es6/tabs/lib/overflow/index.d.ts.map +1 -0
  378. package/dist/es6/tabs/lib/overflow/index.js +4 -0
  379. package/dist/es6/tabs/lib/overflow/useOverflowMeasureContainer.d.ts +8 -0
  380. package/dist/es6/tabs/lib/overflow/useOverflowMeasureContainer.d.ts.map +1 -0
  381. package/dist/es6/tabs/lib/overflow/useOverflowMeasureContainer.js +13 -0
  382. package/dist/es6/tabs/lib/overflow/useOverflowMeasureItem.d.ts +10 -0
  383. package/dist/es6/tabs/lib/overflow/useOverflowMeasureItem.d.ts.map +1 -0
  384. package/dist/es6/tabs/lib/overflow/useOverflowMeasureItem.js +30 -0
  385. package/dist/es6/tabs/lib/overflow/useOverflowModel.d.ts +69 -0
  386. package/dist/es6/tabs/lib/overflow/useOverflowModel.d.ts.map +1 -0
  387. package/dist/es6/tabs/lib/overflow/useOverflowModel.js +111 -0
  388. package/dist/es6/tabs/lib/overflow/useOverflowTarget.d.ts +11 -0
  389. package/dist/es6/tabs/lib/overflow/useOverflowTarget.d.ts.map +1 -0
  390. package/dist/es6/tabs/lib/overflow/useOverflowTarget.js +30 -0
  391. package/dist/es6/tabs/lib/selection/index.d.ts +4 -0
  392. package/dist/es6/tabs/lib/selection/index.d.ts.map +1 -0
  393. package/dist/es6/tabs/lib/selection/index.js +3 -0
  394. package/dist/es6/tabs/lib/selection/useResetCursorOnBlur.d.ts +13 -0
  395. package/dist/es6/tabs/lib/selection/useResetCursorOnBlur.d.ts.map +1 -0
  396. package/dist/es6/tabs/lib/{hooks.js → selection/useResetCursorOnBlur.js} +8 -9
  397. package/dist/es6/tabs/lib/selection/useSelectionItem.d.ts +8 -0
  398. package/dist/es6/tabs/lib/selection/useSelectionItem.d.ts.map +1 -0
  399. package/dist/es6/tabs/lib/selection/useSelectionItem.js +14 -0
  400. package/dist/es6/tabs/lib/selection/useSelectionModel.d.ts +62 -0
  401. package/dist/es6/tabs/lib/selection/useSelectionModel.d.ts.map +1 -0
  402. package/dist/es6/tabs/lib/selection/useSelectionModel.js +75 -0
  403. package/dist/es6/tabs/lib/useTabsModel.d.ts +39 -38
  404. package/dist/es6/tabs/lib/useTabsModel.d.ts.map +1 -1
  405. package/dist/es6/tabs/lib/useTabsModel.js +50 -37
  406. package/dist/es6/tokens/index.d.ts +3 -20
  407. package/dist/es6/tokens/index.d.ts.map +1 -1
  408. package/dist/es6/tokens/index.js +1 -1
  409. package/dist/es6/tokens/lib/depth.d.ts +109 -3
  410. package/dist/es6/tokens/lib/depth.d.ts.map +1 -1
  411. package/dist/es6/tokens/lib/depth.js +40 -2
  412. package/dist/es6/tooltip/lib/OverflowTooltip.d.ts +10 -0
  413. package/dist/es6/tooltip/lib/OverflowTooltip.d.ts.map +1 -1
  414. package/dist/es6/tooltip/lib/OverflowTooltip.js +5 -3
  415. package/dist/es6/tooltip/lib/Tooltip.d.ts +9 -1
  416. package/dist/es6/tooltip/lib/Tooltip.d.ts.map +1 -1
  417. package/dist/es6/tooltip/lib/Tooltip.js +7 -2
  418. package/dist/es6/tooltip/lib/useTooltip.d.ts +10 -2
  419. package/dist/es6/tooltip/lib/useTooltip.d.ts.map +1 -1
  420. package/dist/es6/tooltip/lib/useTooltip.js +13 -8
  421. package/loading-animation/lib/LoadingDots.tsx +1 -1
  422. package/package.json +9 -7
  423. package/pagination/lib/Pagination/GoTo/Label.tsx +3 -0
  424. package/pagination/lib/Pagination/types.ts +44 -5
  425. package/pagination/lib/Pagination/usePaginationModel.ts +19 -0
  426. package/popup/lib/PopupCard.tsx +21 -31
  427. package/popup/lib/hooks/useReturnFocus.tsx +1 -1
  428. package/tabs/index.ts +6 -0
  429. package/tabs/lib/Tabs.tsx +34 -9
  430. package/tabs/lib/TabsItem.tsx +250 -0
  431. package/tabs/lib/TabsList.tsx +67 -0
  432. package/tabs/lib/TabsMenuPopper.tsx +27 -0
  433. package/tabs/lib/TabsOverflowButton.tsx +58 -0
  434. package/tabs/lib/{TabPanel.tsx → TabsPanel.tsx} +33 -31
  435. package/tabs/lib/TabsPanels.tsx +28 -0
  436. package/tabs/lib/cursor/index.ts +1 -1
  437. package/tabs/lib/cursor/useCursorModel.tsx +78 -65
  438. package/tabs/lib/cursor/useRovingFocus.tsx +94 -0
  439. package/tabs/lib/list/index.ts +2 -1
  440. package/tabs/lib/list/renderItem.tsx +19 -0
  441. package/tabs/lib/list/useListModel.tsx +48 -23
  442. package/tabs/lib/list/useListRegisterItem.tsx +53 -0
  443. package/tabs/lib/menu/Menu.tsx +95 -0
  444. package/tabs/lib/menu/MenuCard.tsx +96 -0
  445. package/tabs/lib/menu/MenuItem.tsx +195 -0
  446. package/tabs/lib/menu/MenuList.tsx +59 -0
  447. package/tabs/lib/menu/MenuPopper.tsx +31 -0
  448. package/tabs/lib/menu/MenuTarget.tsx +52 -0
  449. package/tabs/lib/menu/index.ts +8 -0
  450. package/tabs/lib/menu/useMenuModel.tsx +67 -0
  451. package/tabs/lib/overflow/index.ts +4 -0
  452. package/tabs/lib/overflow/spec/tsconfig.json +3 -0
  453. package/tabs/lib/overflow/spec/useOverflowModel.spec.tsx +46 -0
  454. package/tabs/lib/overflow/useOverflowMeasureContainer.ts +20 -0
  455. package/tabs/lib/overflow/useOverflowMeasureItem.tsx +40 -0
  456. package/tabs/lib/overflow/useOverflowModel.tsx +185 -0
  457. package/tabs/lib/overflow/useOverflowTarget.tsx +42 -0
  458. package/tabs/lib/selection/index.ts +3 -0
  459. package/tabs/lib/selection/useResetCursorOnBlur.tsx +29 -0
  460. package/tabs/lib/selection/useSelectionItem.tsx +26 -0
  461. package/tabs/lib/selection/useSelectionModel.tsx +133 -0
  462. package/tabs/lib/useTabsModel.tsx +93 -78
  463. package/tokens/README.md +5 -12
  464. package/tokens/index.ts +2 -2
  465. package/tokens/lib/depth.ts +125 -3
  466. package/tooltip/lib/OverflowTooltip.tsx +5 -3
  467. package/tooltip/lib/Tooltip.tsx +16 -1
  468. package/tooltip/lib/useTooltip.tsx +21 -6
  469. package/ts3.5/dist/commonjs/button/lib/PrimaryButton.d.ts +80 -6
  470. package/ts3.5/dist/commonjs/button/lib/SecondaryButton.d.ts +8 -5
  471. package/ts3.5/dist/commonjs/button/lib/TertiaryButton.d.ts +8 -4
  472. package/ts3.5/dist/commonjs/button/lib/parts/ButtonContainer.d.ts +5 -3
  473. package/ts3.5/dist/commonjs/button/lib/parts/ButtonLabel.d.ts +1 -1
  474. package/ts3.5/dist/commonjs/button/lib/parts/ButtonLabelIcon.d.ts +7 -4
  475. package/ts3.5/dist/commonjs/button/lib/types.d.ts +9 -0
  476. package/ts3.5/dist/commonjs/common/index.d.ts +1 -0
  477. package/ts3.5/dist/commonjs/common/lib/EllipsisText.d.ts +5 -0
  478. package/ts3.5/dist/commonjs/common/lib/theming/breakpoints.d.ts +287 -6
  479. package/ts3.5/dist/commonjs/common/lib/theming/types.d.ts +191 -1
  480. package/ts3.5/dist/commonjs/common/lib/utils/components.d.ts +19 -9
  481. package/ts3.5/dist/commonjs/common/lib/utils/index.d.ts +1 -0
  482. package/ts3.5/dist/commonjs/common/lib/utils/useConstant.d.ts +9 -0
  483. package/ts3.5/dist/commonjs/common/lib/utils/useResizeObserver.d.ts +3 -0
  484. package/ts3.5/dist/commonjs/dialog/lib/hooks/useDialogCard.d.ts +4 -16
  485. package/ts3.5/dist/commonjs/dialog/lib/hooks/useDialogPopper.d.ts +5 -2
  486. package/ts3.5/dist/commonjs/modal/lib/ModalOverlay.d.ts +4 -2
  487. package/ts3.5/dist/commonjs/modal/lib/hooks/useModalCard.d.ts +4 -16
  488. package/ts3.5/dist/commonjs/modal/lib/hooks/useModalHeading.d.ts +5 -17
  489. package/ts3.5/dist/commonjs/pagination/lib/Pagination/GoTo/Label.d.ts +3 -0
  490. package/ts3.5/dist/commonjs/pagination/lib/Pagination/PageList.d.ts +1 -1
  491. package/ts3.5/dist/commonjs/pagination/lib/Pagination/Pagination.d.ts +5 -5
  492. package/ts3.5/dist/commonjs/pagination/lib/Pagination/common/List.d.ts +1 -1
  493. package/ts3.5/dist/commonjs/pagination/lib/Pagination/common/utils/getValidChildren.d.ts +1 -1
  494. package/ts3.5/dist/commonjs/pagination/lib/Pagination/common/utils/space.d.ts +28 -28
  495. package/ts3.5/dist/commonjs/pagination/lib/Pagination/types.d.ts +39 -0
  496. package/ts3.5/dist/commonjs/pagination/lib/Pagination/usePaginationModel.d.ts +19 -0
  497. package/ts3.5/dist/commonjs/popup/lib/hooks/usePopupCard.d.ts +5 -2
  498. package/ts3.5/dist/commonjs/popup/lib/hooks/usePopupCloseButton.d.ts +4 -2
  499. package/ts3.5/dist/commonjs/popup/lib/hooks/usePopupHeading.d.ts +5 -2
  500. package/ts3.5/dist/commonjs/popup/lib/hooks/usePopupPopper.d.ts +4 -2
  501. package/ts3.5/dist/commonjs/popup/lib/hooks/usePopupTarget.d.ts +4 -2
  502. package/ts3.5/dist/commonjs/popup/lib/hooks/useReturnFocus.d.ts +1 -1
  503. package/ts3.5/dist/commonjs/tabs/index.d.ts +5 -0
  504. package/ts3.5/dist/commonjs/tabs/lib/Tabs.d.ts +35 -7
  505. package/ts3.5/dist/commonjs/tabs/lib/TabsItem.d.ts +107 -0
  506. package/ts3.5/dist/commonjs/tabs/lib/TabsList.d.ts +43 -0
  507. package/ts3.5/dist/commonjs/tabs/lib/TabsMenuPopper.d.ts +21 -0
  508. package/ts3.5/dist/commonjs/tabs/lib/TabsOverflowButton.d.ts +31 -0
  509. package/{dist/es6/tabs/lib/TabPanel.d.ts → ts3.5/dist/commonjs/tabs/lib/TabsPanel.d.ts} +39 -29
  510. package/ts3.5/dist/{es6/tabs/lib/TabList.d.ts → commonjs/tabs/lib/TabsPanels.d.ts} +5 -5
  511. package/ts3.5/dist/commonjs/tabs/lib/cursor/index.d.ts +1 -1
  512. package/ts3.5/dist/commonjs/tabs/lib/cursor/useCursorModel.d.ts +23 -13
  513. package/ts3.5/dist/commonjs/tabs/lib/cursor/useRovingFocus.d.ts +37 -0
  514. package/ts3.5/dist/commonjs/tabs/lib/list/index.d.ts +2 -1
  515. package/ts3.5/dist/commonjs/tabs/lib/list/renderItem.d.ts +4 -0
  516. package/ts3.5/dist/commonjs/tabs/lib/list/useListModel.d.ts +25 -13
  517. package/ts3.5/dist/commonjs/tabs/lib/list/useListRegisterItem.d.ts +14 -0
  518. package/ts3.5/dist/commonjs/tabs/lib/menu/Menu.d.ts +80 -0
  519. package/ts3.5/dist/commonjs/tabs/lib/menu/MenuCard.d.ts +17 -0
  520. package/ts3.5/dist/commonjs/tabs/lib/menu/MenuItem.d.ts +62 -0
  521. package/ts3.5/dist/commonjs/tabs/lib/menu/MenuList.d.ts +23 -0
  522. package/ts3.5/dist/commonjs/tabs/lib/menu/MenuPopper.d.ts +21 -0
  523. package/ts3.5/dist/commonjs/tabs/lib/menu/MenuTarget.d.ts +21 -0
  524. package/ts3.5/dist/commonjs/tabs/lib/menu/index.d.ts +8 -0
  525. package/ts3.5/dist/commonjs/tabs/lib/menu/useMenuModel.d.ts +35 -0
  526. package/ts3.5/dist/commonjs/tabs/lib/overflow/index.d.ts +5 -0
  527. package/ts3.5/dist/commonjs/tabs/lib/overflow/useOverflowMeasureContainer.d.ts +8 -0
  528. package/ts3.5/dist/commonjs/tabs/lib/overflow/useOverflowMeasureItem.d.ts +10 -0
  529. package/ts3.5/dist/commonjs/tabs/lib/overflow/useOverflowModel.d.ts +69 -0
  530. package/ts3.5/dist/commonjs/tabs/lib/overflow/useOverflowTarget.d.ts +11 -0
  531. package/ts3.5/dist/commonjs/tabs/lib/selection/index.d.ts +4 -0
  532. package/ts3.5/dist/commonjs/tabs/lib/selection/useResetCursorOnBlur.d.ts +13 -0
  533. package/ts3.5/dist/commonjs/tabs/lib/selection/useSelectionItem.d.ts +8 -0
  534. package/ts3.5/dist/commonjs/tabs/lib/selection/useSelectionModel.d.ts +62 -0
  535. package/ts3.5/dist/commonjs/tabs/lib/useTabsModel.d.ts +39 -38
  536. package/ts3.5/dist/commonjs/tokens/index.d.ts +3 -20
  537. package/ts3.5/dist/commonjs/tokens/lib/depth.d.ts +109 -3
  538. package/ts3.5/dist/commonjs/tooltip/lib/OverflowTooltip.d.ts +10 -0
  539. package/ts3.5/dist/commonjs/tooltip/lib/Tooltip.d.ts +9 -1
  540. package/ts3.5/dist/commonjs/tooltip/lib/useTooltip.d.ts +10 -2
  541. package/ts3.5/dist/es6/button/lib/PrimaryButton.d.ts +80 -6
  542. package/ts3.5/dist/es6/button/lib/SecondaryButton.d.ts +8 -5
  543. package/ts3.5/dist/es6/button/lib/TertiaryButton.d.ts +8 -4
  544. package/ts3.5/dist/es6/button/lib/parts/ButtonContainer.d.ts +5 -3
  545. package/ts3.5/dist/es6/button/lib/parts/ButtonLabel.d.ts +1 -1
  546. package/ts3.5/dist/es6/button/lib/parts/ButtonLabelIcon.d.ts +7 -4
  547. package/ts3.5/dist/es6/button/lib/types.d.ts +9 -0
  548. package/ts3.5/dist/es6/common/index.d.ts +1 -0
  549. package/ts3.5/dist/es6/common/lib/EllipsisText.d.ts +5 -0
  550. package/ts3.5/dist/es6/common/lib/theming/breakpoints.d.ts +287 -6
  551. package/ts3.5/dist/es6/common/lib/theming/types.d.ts +191 -1
  552. package/ts3.5/dist/es6/common/lib/utils/components.d.ts +19 -9
  553. package/ts3.5/dist/es6/common/lib/utils/index.d.ts +1 -0
  554. package/ts3.5/dist/es6/common/lib/utils/useConstant.d.ts +9 -0
  555. package/ts3.5/dist/es6/common/lib/utils/useResizeObserver.d.ts +3 -0
  556. package/ts3.5/dist/es6/dialog/lib/hooks/useDialogCard.d.ts +4 -16
  557. package/ts3.5/dist/es6/dialog/lib/hooks/useDialogPopper.d.ts +5 -2
  558. package/ts3.5/dist/es6/modal/lib/ModalOverlay.d.ts +4 -2
  559. package/ts3.5/dist/es6/modal/lib/hooks/useModalCard.d.ts +4 -16
  560. package/ts3.5/dist/es6/modal/lib/hooks/useModalHeading.d.ts +5 -17
  561. package/ts3.5/dist/es6/pagination/lib/Pagination/GoTo/Label.d.ts +3 -0
  562. package/ts3.5/dist/es6/pagination/lib/Pagination/PageList.d.ts +1 -1
  563. package/ts3.5/dist/es6/pagination/lib/Pagination/Pagination.d.ts +5 -5
  564. package/ts3.5/dist/es6/pagination/lib/Pagination/common/List.d.ts +1 -1
  565. package/ts3.5/dist/es6/pagination/lib/Pagination/common/utils/getValidChildren.d.ts +1 -1
  566. package/ts3.5/dist/es6/pagination/lib/Pagination/common/utils/space.d.ts +28 -28
  567. package/ts3.5/dist/es6/pagination/lib/Pagination/types.d.ts +39 -0
  568. package/ts3.5/dist/es6/pagination/lib/Pagination/usePaginationModel.d.ts +19 -0
  569. package/ts3.5/dist/es6/popup/lib/hooks/usePopupCard.d.ts +5 -2
  570. package/ts3.5/dist/es6/popup/lib/hooks/usePopupCloseButton.d.ts +4 -2
  571. package/ts3.5/dist/es6/popup/lib/hooks/usePopupHeading.d.ts +5 -2
  572. package/ts3.5/dist/es6/popup/lib/hooks/usePopupPopper.d.ts +4 -2
  573. package/ts3.5/dist/es6/popup/lib/hooks/usePopupTarget.d.ts +4 -2
  574. package/ts3.5/dist/es6/popup/lib/hooks/useReturnFocus.d.ts +1 -1
  575. package/ts3.5/dist/es6/tabs/index.d.ts +5 -0
  576. package/ts3.5/dist/es6/tabs/lib/Tabs.d.ts +35 -7
  577. package/ts3.5/dist/es6/tabs/lib/TabsItem.d.ts +107 -0
  578. package/ts3.5/dist/es6/tabs/lib/TabsList.d.ts +43 -0
  579. package/ts3.5/dist/es6/tabs/lib/TabsMenuPopper.d.ts +21 -0
  580. package/ts3.5/dist/es6/tabs/lib/TabsOverflowButton.d.ts +31 -0
  581. package/ts3.5/dist/es6/tabs/lib/{TabPanel.d.ts → TabsPanel.d.ts} +15 -5
  582. package/{dist/commonjs/tabs/lib/TabList.d.ts → ts3.5/dist/es6/tabs/lib/TabsPanels.d.ts} +15 -15
  583. package/ts3.5/dist/es6/tabs/lib/cursor/index.d.ts +1 -1
  584. package/ts3.5/dist/es6/tabs/lib/cursor/useCursorModel.d.ts +23 -13
  585. package/ts3.5/dist/es6/tabs/lib/cursor/useRovingFocus.d.ts +37 -0
  586. package/ts3.5/dist/es6/tabs/lib/list/index.d.ts +2 -1
  587. package/ts3.5/dist/es6/tabs/lib/list/renderItem.d.ts +4 -0
  588. package/ts3.5/dist/es6/tabs/lib/list/useListModel.d.ts +25 -13
  589. package/ts3.5/dist/es6/tabs/lib/list/useListRegisterItem.d.ts +14 -0
  590. package/ts3.5/dist/es6/tabs/lib/menu/Menu.d.ts +80 -0
  591. package/ts3.5/dist/es6/tabs/lib/menu/MenuCard.d.ts +17 -0
  592. package/ts3.5/dist/es6/tabs/lib/menu/MenuItem.d.ts +62 -0
  593. package/ts3.5/dist/es6/tabs/lib/menu/MenuList.d.ts +23 -0
  594. package/ts3.5/dist/es6/tabs/lib/menu/MenuPopper.d.ts +21 -0
  595. package/ts3.5/dist/es6/tabs/lib/menu/MenuTarget.d.ts +21 -0
  596. package/ts3.5/dist/es6/tabs/lib/menu/index.d.ts +8 -0
  597. package/ts3.5/dist/es6/tabs/lib/menu/useMenuModel.d.ts +35 -0
  598. package/ts3.5/dist/es6/tabs/lib/overflow/index.d.ts +5 -0
  599. package/ts3.5/dist/es6/tabs/lib/overflow/useOverflowMeasureContainer.d.ts +8 -0
  600. package/ts3.5/dist/es6/tabs/lib/overflow/useOverflowMeasureItem.d.ts +10 -0
  601. package/ts3.5/dist/es6/tabs/lib/overflow/useOverflowModel.d.ts +69 -0
  602. package/ts3.5/dist/es6/tabs/lib/overflow/useOverflowTarget.d.ts +11 -0
  603. package/ts3.5/dist/es6/tabs/lib/selection/index.d.ts +4 -0
  604. package/ts3.5/dist/es6/tabs/lib/selection/useResetCursorOnBlur.d.ts +13 -0
  605. package/ts3.5/dist/es6/tabs/lib/selection/useSelectionItem.d.ts +8 -0
  606. package/ts3.5/dist/es6/tabs/lib/selection/useSelectionModel.d.ts +62 -0
  607. package/ts3.5/dist/es6/tabs/lib/useTabsModel.d.ts +39 -38
  608. package/ts3.5/dist/es6/tokens/index.d.ts +3 -20
  609. package/ts3.5/dist/es6/tokens/lib/depth.d.ts +109 -3
  610. package/ts3.5/dist/es6/tooltip/lib/OverflowTooltip.d.ts +10 -0
  611. package/ts3.5/dist/es6/tooltip/lib/Tooltip.d.ts +9 -1
  612. package/ts3.5/dist/es6/tooltip/lib/useTooltip.d.ts +10 -2
  613. package/dist/commonjs/tabs/lib/Tab.d.ts +0 -49
  614. package/dist/commonjs/tabs/lib/Tab.d.ts.map +0 -1
  615. package/dist/commonjs/tabs/lib/Tab.js +0 -101
  616. package/dist/commonjs/tabs/lib/TabList.d.ts.map +0 -1
  617. package/dist/commonjs/tabs/lib/TabPanel.d.ts.map +0 -1
  618. package/dist/commonjs/tabs/lib/TabPanel.js +0 -56
  619. package/dist/commonjs/tabs/lib/cursor/hooks.d.ts +0 -39
  620. package/dist/commonjs/tabs/lib/cursor/hooks.d.ts.map +0 -1
  621. package/dist/commonjs/tabs/lib/hooks.d.ts +0 -10
  622. package/dist/commonjs/tabs/lib/hooks.d.ts.map +0 -1
  623. package/dist/commonjs/tabs/lib/list/hooks.d.ts +0 -11
  624. package/dist/commonjs/tabs/lib/list/hooks.d.ts.map +0 -1
  625. package/dist/commonjs/tabs/lib/list/hooks.js +0 -39
  626. package/dist/es6/tabs/lib/Tab.d.ts +0 -49
  627. package/dist/es6/tabs/lib/Tab.d.ts.map +0 -1
  628. package/dist/es6/tabs/lib/Tab.js +0 -92
  629. package/dist/es6/tabs/lib/TabList.d.ts.map +0 -1
  630. package/dist/es6/tabs/lib/TabPanel.d.ts.map +0 -1
  631. package/dist/es6/tabs/lib/TabPanel.js +0 -51
  632. package/dist/es6/tabs/lib/cursor/hooks.d.ts +0 -39
  633. package/dist/es6/tabs/lib/cursor/hooks.d.ts.map +0 -1
  634. package/dist/es6/tabs/lib/cursor/hooks.js +0 -108
  635. package/dist/es6/tabs/lib/hooks.d.ts +0 -10
  636. package/dist/es6/tabs/lib/hooks.d.ts.map +0 -1
  637. package/dist/es6/tabs/lib/list/hooks.d.ts +0 -11
  638. package/dist/es6/tabs/lib/list/hooks.d.ts.map +0 -1
  639. package/dist/es6/tabs/lib/list/hooks.js +0 -34
  640. package/tabs/lib/Tab.tsx +0 -176
  641. package/tabs/lib/TabList.tsx +0 -59
  642. package/tabs/lib/cursor/hooks.tsx +0 -122
  643. package/tabs/lib/hooks.tsx +0 -31
  644. package/tabs/lib/list/hooks.tsx +0 -45
  645. package/ts3.5/dist/commonjs/tabs/lib/Tab.d.ts +0 -49
  646. package/ts3.5/dist/commonjs/tabs/lib/cursor/hooks.d.ts +0 -39
  647. package/ts3.5/dist/commonjs/tabs/lib/hooks.d.ts +0 -10
  648. package/ts3.5/dist/commonjs/tabs/lib/list/hooks.d.ts +0 -11
  649. package/ts3.5/dist/es6/tabs/lib/Tab.d.ts +0 -49
  650. package/ts3.5/dist/es6/tabs/lib/cursor/hooks.d.ts +0 -39
  651. package/ts3.5/dist/es6/tabs/lib/hooks.d.ts +0 -10
  652. package/ts3.5/dist/es6/tabs/lib/list/hooks.d.ts +0 -11
@@ -41,15 +41,20 @@ var isInteractiveElement = function (element) {
41
41
  * into a target, popper and tooltip
42
42
  */
43
43
  export function useTooltip(_a) {
44
- var _b = _a === void 0 ? {} : _a, _c = _b.type, type = _c === void 0 ? 'label' : _c, _d = _b.titleText, titleText = _d === void 0 ? '' : _d;
44
+ var _b = _a === void 0 ? {} : _a, _c = _b.type, type = _c === void 0 ? 'label' : _c, _d = _b.titleText, titleText = _d === void 0 ? '' : _d, _e = _b.showDelay, showDelay = _e === void 0 ? 300 : _e, _f = _b.hideDelay, hideDelay = _f === void 0 ? 100 : _f;
45
45
  var mouseDownRef = React.useRef(false); // use to prevent newly focused from making tooltip flash
46
46
  var popupModel = usePopupModel();
47
- var _e = React.useState(null), anchorElement = _e[0], setAnchorElement = _e[1];
47
+ var _g = React.useState(null), anchorElement = _g[0], setAnchorElement = _g[1];
48
48
  var id = React.useState(function () { return uuid(); })[0];
49
- var intentTimer = useIntentTimer(popupModel.events.hide, 100);
49
+ var intentTimerHide = useIntentTimer(popupModel.events.hide, hideDelay);
50
+ var intentTimerShow = useIntentTimer(popupModel.events.show, showDelay);
51
+ var onHide = function () {
52
+ intentTimerHide.start();
53
+ intentTimerShow.clear();
54
+ };
50
55
  var onOpen = function () {
51
- popupModel.events.show();
52
- intentTimer.clear();
56
+ intentTimerShow.start();
57
+ intentTimerHide.clear();
53
58
  };
54
59
  var onOpenFromTarget = function (event) {
55
60
  setAnchorElement(event.currentTarget);
@@ -78,10 +83,10 @@ export function useTooltip(_a) {
78
83
  // This will replace the accessible name of the target element
79
84
  'aria-label': type === 'label' ? titleText : undefined,
80
85
  onMouseEnter: onOpenFromTarget,
81
- onMouseLeave: intentTimer.start,
86
+ onMouseLeave: onHide,
82
87
  onMouseDown: onMouseDown,
83
88
  onFocus: onFocus,
84
- onBlur: intentTimer.start,
89
+ onBlur: onHide,
85
90
  },
86
91
  /** Mix these properties into the `Popper` component */
87
92
  popperProps: {
@@ -94,7 +99,7 @@ export function useTooltip(_a) {
94
99
  id: type === 'describe' && visible ? id : undefined,
95
100
  role: 'tooltip',
96
101
  onMouseEnter: onOpen,
97
- onMouseLeave: intentTimer.start,
102
+ onMouseLeave: onHide,
98
103
  },
99
104
  };
100
105
  }
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import {keyframes} from '@emotion/core';
3
- import styled from '@emotion/styled';
4
3
  import canvas, {borderRadius} from '@workday/canvas-kit-react/tokens';
4
+ import {styled} from '@workday/canvas-kit-react/common';
5
5
 
6
6
  /**
7
7
  * Keyframe for the dots loading animation.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@workday/canvas-kit-react",
3
- "version": "5.3.0-next.10+b216c2fc",
3
+ "version": "5.3.0-next.24+98e275f5",
4
4
  "description": "The parent module that contains all Workday Canvas Kit React components",
5
5
  "author": "Workday, Inc. (https://www.workday.com)",
6
6
  "license": "Apache-2.0",
@@ -38,7 +38,8 @@
38
38
  "build": "npm-run-all --parallel build:cjs build:es6 --sequential build:downlevel-dts",
39
39
  "prepack": "node ../../utils/publish.js pre react",
40
40
  "postpack": "node ../../utils/publish.js post react",
41
- "depcheck": "node ../../utils/check-dependencies-exist.js"
41
+ "depcheck": "node ../../utils/check-dependencies-exist.js",
42
+ "typecheck:src": "tsc -p . --noEmit --incremental false"
42
43
  },
43
44
  "keywords": [
44
45
  "canvas",
@@ -56,10 +57,9 @@
56
57
  "@emotion/styled": "^10.0.27",
57
58
  "@popperjs/core": "^2.5.4",
58
59
  "@workday/canvas-colors-web": "^2.0.0",
59
- "@workday/canvas-depth-web": "^0.16.4",
60
- "@workday/canvas-kit-labs-react": "^5.3.0-next.10+b216c2fc",
61
- "@workday/canvas-kit-popup-stack": "^5.3.0-next.10+b216c2fc",
62
- "@workday/canvas-kit-preview-react": "^5.3.0-next.10+b216c2fc",
60
+ "@workday/canvas-kit-labs-react": "^5.3.0-next.24+98e275f5",
61
+ "@workday/canvas-kit-popup-stack": "^5.3.0-next.24+98e275f5",
62
+ "@workday/canvas-kit-preview-react": "^5.3.0-next.24+98e275f5",
63
63
  "@workday/canvas-system-icons-web": "1.0.41",
64
64
  "@workday/design-assets-types": "^0.2.4",
65
65
  "chroma-js": "^2.1.0",
@@ -68,12 +68,14 @@
68
68
  "lodash": "^4.17.14",
69
69
  "polished": "^4.1.3",
70
70
  "react-innertext": "^1.1.5",
71
+ "resize-observer-polyfill": "^1.5.1",
71
72
  "rtl-css-js": "^1.14.1",
73
+ "use-resize-observer": "~7.0.1",
72
74
  "uuid": "^3.3.3"
73
75
  },
74
76
  "devDependencies": {
75
77
  "@workday/canvas-accent-icons-web": "^1.0.0",
76
78
  "@workday/canvas-applet-icons-web": "^0.17.50"
77
79
  },
78
- "gitHead": "b216c2fce58ac89402ca5b152640ddabdca25596"
80
+ "gitHead": "98e275f55f5fb0abecdc77f1cea1189eb5d6b791"
79
81
  }
@@ -7,6 +7,9 @@ import {PaginationModel} from '../types';
7
7
 
8
8
  export interface GoToLabelProps extends React.LabelHTMLAttributes<HTMLLabelElement> {
9
9
  model: PaginationModel;
10
+ /**
11
+ * Accepts child elements or a render prop.
12
+ */
10
13
  children?: (model: PaginationModel) => React.ReactNode | React.ReactNode;
11
14
  }
12
15
 
@@ -1,17 +1,56 @@
1
1
  export interface PaginationState {
2
- currentPage: number; // current page
3
- firstPage: number; // first page
4
- lastPage: number; // last page
5
- range: number[]; // array of page numbers
6
- rangeSize: number; // size of the range
2
+ /**
3
+ * The page number for the current page
4
+ */
5
+ currentPage: number;
6
+ /**
7
+ * The page number for the first page
8
+ */
9
+ firstPage: number;
10
+ /**
11
+ * The page number for the last page (it can also be used as a total page
12
+ * count)
13
+ */
14
+ lastPage: number;
15
+ /**
16
+ * An array of page numbers included in the pagination range
17
+ */
18
+ range: number[];
19
+ /**
20
+ * The size of the pagination range
21
+ */
22
+ rangeSize: number;
7
23
  }
8
24
 
9
25
  export interface PaginationEvents {
26
+ /**
27
+ * Sets the current page to a given page number (no safeguards)
28
+ */
10
29
  setCurrentPage: (page: number) => void;
30
+ /**
31
+ * Sets the current page to the first page
32
+ */
11
33
  first: () => void;
34
+ /**
35
+ * Sets the current page to the last page
36
+ */
12
37
  last: () => void;
38
+ /**
39
+ * Increments the current page by 1
40
+ */
13
41
  next: () => void;
42
+ /**
43
+ * Decrements the current page by 1
44
+ */
14
45
  previous: () => void;
46
+ /**
47
+ * Sets the current page to a given page number (with safeguards). `goTo`
48
+ * is very similar to `setCurrentPage`, but it has some built-in safeguards.
49
+ * If the page number provided is below the first page (e.g: `0`),
50
+ * `currentPage` will be set to the `firstPage`. Similarly, if the number
51
+ * provided is larger than the `lastPage`, it will set `currentPage` to the
52
+ * `lastPage`.
53
+ */
15
54
  goTo: (page: number) => void;
16
55
  }
17
56
 
@@ -5,10 +5,29 @@ import {getRangeMax, getRangeMin} from './common/utils/helpers';
5
5
  import {PaginationModel} from './types';
6
6
 
7
7
  export type UsePaginationModelConfig = {
8
+ /**
9
+ * The page number for the last page (it can also be used as a total page
10
+ * count)
11
+ */
8
12
  lastPage: number;
13
+ /**
14
+ * The page number for the first page
15
+ * @default 1
16
+ */
9
17
  firstPage?: number;
18
+ /**
19
+ * The initial current page
20
+ * @default 1
21
+ */
10
22
  initialCurrentPage?: number;
23
+ /**
24
+ * The function called when the page changes
25
+ */
11
26
  onPageChange?: (pageNumber: number) => void;
27
+ /**
28
+ * The size of the pagination range
29
+ * @default 5
30
+ */
12
31
  rangeSize?: number;
13
32
  };
14
33
 
@@ -2,7 +2,7 @@ import * as React from 'react';
2
2
  import {keyframes} from '@emotion/core';
3
3
 
4
4
  import {Card} from '@workday/canvas-kit-react/card';
5
- import {space} from '@workday/canvas-kit-react/tokens';
5
+ import {space, type} from '@workday/canvas-kit-react/tokens';
6
6
  import {
7
7
  styled,
8
8
  TransformOrigin,
@@ -42,36 +42,25 @@ const popupAnimation = (transformOrigin: TransformOrigin) => {
42
42
 
43
43
  const StyledPopupCard = styled(Card)<
44
44
  StyledType & {width?: number | string; transformOrigin?: TransformOrigin}
45
- >(
46
- {
47
- position: 'relative',
48
- maxWidth: `calc(100vw - ${space.l})`,
49
- },
50
- ({width}) => width && {width},
51
- ({transformOrigin}) => {
52
- if (transformOrigin == null) {
53
- return {};
54
- }
55
- return {
56
- animation: popupAnimation(transformOrigin),
57
- animationDuration: '150ms',
58
- animationTimingFunction: 'ease-out',
59
- transformOrigin: `${transformOrigin.vertical} ${transformOrigin.horizontal}`,
60
- // Allow overriding of animation in special cases
61
- '.wd-no-animation &': {
62
- animation: 'none',
63
- },
64
- };
45
+ >(type.levels.subtext.large, ({transformOrigin}) => {
46
+ if (transformOrigin == null) {
47
+ return {};
65
48
  }
66
- );
49
+ return {
50
+ animation: popupAnimation(transformOrigin),
51
+ animationDuration: '150ms',
52
+ animationTimingFunction: 'ease-out',
53
+ transformOrigin: `${transformOrigin.vertical} ${transformOrigin.horizontal}`,
54
+ // Allow overriding of animation in special cases
55
+ '.wd-no-animation &': {
56
+ animation: 'none',
57
+ },
58
+ };
59
+ });
67
60
 
68
61
  export const PopupCard = createComponent('div')({
69
62
  displayName: 'Popup.Card',
70
- Component: (
71
- {children, model, padding = 'l', depth = 2, width, ...elemProps}: PopupCardProps,
72
- ref,
73
- Element
74
- ) => {
63
+ Component: ({children, model, ...elemProps}: PopupCardProps, ref, Element) => {
75
64
  const localModel = useModelContext(PopupModelContext, model);
76
65
  const props = usePopupCard(localModel, elemProps, ref);
77
66
  const transformOrigin = React.useMemo(() => {
@@ -82,12 +71,13 @@ export const PopupCard = createComponent('div')({
82
71
  <StyledPopupCard
83
72
  as={Element}
84
73
  transformOrigin={transformOrigin}
85
- depth={depth}
86
- width={width}
87
- padding={padding}
74
+ position="relative"
75
+ padding="l"
76
+ depth={2}
77
+ maxWidth={`calc(100vw - ${space.l})`}
88
78
  {...props}
89
79
  >
90
- <Card.Body>{children}</Card.Body>
80
+ {children}
91
81
  </StyledPopupCard>
92
82
  );
93
83
  },
@@ -8,7 +8,7 @@ import {changeFocus} from '@workday/canvas-kit-react/common';
8
8
  * `useInitialFocus`. This should be used with `useFocusRedirect` or `useFocusTrap` for a complete
9
9
  * focus management solution.
10
10
  *
11
- * This should ble used on popup elements that use `useInitialFocus`.
11
+ * This should be used on popup elements that use `useInitialFocus`.
12
12
  */
13
13
  export const useReturnFocus = (model: PopupModel, elemProps = {}) => {
14
14
  const visible = model.state.visibility !== 'hidden';
package/tabs/index.ts CHANGED
@@ -1,2 +1,8 @@
1
1
  export * from './lib/Tabs';
2
2
  export * from './lib/useTabsModel';
3
+
4
+ export {StyledTabItem, useTabsItem} from './lib/TabsItem';
5
+ export {useTabsList} from './lib/TabsList';
6
+ export {useTabsMenuPopper} from './lib/TabsMenuPopper';
7
+ export {useTabsOverflowButton} from './lib/TabsOverflowButton';
8
+ export {useTabsPanel} from './lib/TabsPanel';
package/tabs/lib/Tabs.tsx CHANGED
@@ -1,15 +1,20 @@
1
1
  import React from 'react';
2
2
 
3
3
  import {createComponent, useDefaultModel} from '@workday/canvas-kit-react/common';
4
+ import {Menu} from './menu';
4
5
 
5
- import {Tab} from './Tab';
6
- import {TabList} from './TabList';
7
- import {TabPanel} from './TabPanel';
6
+ import {TabsItem} from './TabsItem';
7
+ import {TabsList} from './TabsList';
8
+ import {TabsPanel} from './TabsPanel';
8
9
  import {useTabsModel, TabsModel, TabsModelConfig} from './useTabsModel';
10
+ import {TabsOverflowButton} from './TabsOverflowButton';
11
+ import {TabsMenuPopper} from './TabsMenuPopper';
12
+ import {TabsPanels} from './TabsPanels';
9
13
 
10
14
  export const TabsModelContext = React.createContext<TabsModel>({} as any);
11
15
 
12
- export interface TabsProps extends TabsModelConfig {
16
+ // use `T = any` here because there's no way to pass generics to a compound component...
17
+ export interface TabsProps<T = any> extends TabsModelConfig<T> {
13
18
  /**
14
19
  * The contents of the Tabs. Can be `Tabs` children or any valid elements.
15
20
  */
@@ -19,7 +24,7 @@ export interface TabsProps extends TabsModelConfig {
19
24
  * config passed to this component.
20
25
  * @default useTabsModel(config)
21
26
  */
22
- model?: TabsModel;
27
+ model?: TabsModel<T>;
23
28
  }
24
29
 
25
30
  export const Tabs = createComponent()({
@@ -27,11 +32,31 @@ export const Tabs = createComponent()({
27
32
  Component: ({children, model, ...config}: TabsProps) => {
28
33
  const value = useDefaultModel(model, config, useTabsModel);
29
34
 
30
- return <TabsModelContext.Provider value={value}>{children}</TabsModelContext.Provider>;
35
+ return (
36
+ <TabsModelContext.Provider value={value}>
37
+ <Menu model={value.menu}>{children}</Menu>
38
+ </TabsModelContext.Provider>
39
+ );
31
40
  },
32
41
  subComponents: {
33
- List: TabList,
34
- Item: Tab,
35
- Panel: TabPanel,
42
+ List: TabsList,
43
+ Item: TabsItem,
44
+ Panel: TabsPanel,
45
+ Panels: TabsPanels,
46
+ OverflowButton: TabsOverflowButton,
47
+ MenuPopper: TabsMenuPopper,
48
+ /**
49
+ * The overflow menu of the Tabs component. If there isn't enough room to render all the tab
50
+ * items, the extra tabs that don't fit will be overflowed into this menu.
51
+ * @example
52
+ * <Tabs.Menu.Popper>
53
+ * <Tabs.Menu.Card>
54
+ * <Tabs.Menu.List>
55
+ * {(item: MyTabItem) => <Tabs.Menu.Item name={item.id}>{item.text}</Tabs.Menu.Item>}
56
+ * </Tabs.Menu.List>
57
+ * </Tabs.Menu.Card>
58
+ * </Tabs.Menu.Popper>
59
+ */
60
+ Menu,
36
61
  },
37
62
  });
@@ -0,0 +1,250 @@
1
+ import * as React from 'react';
2
+
3
+ import {colors, space, type, borderRadius, iconColors} from '@workday/canvas-kit-react/tokens';
4
+ import {
5
+ createComponent,
6
+ focusRing,
7
+ hideMouseFocus,
8
+ styled,
9
+ StyledType,
10
+ useModelContext,
11
+ createHook,
12
+ composeHooks,
13
+ ExtractProps,
14
+ ellipsisStyles,
15
+ EllipsisText,
16
+ useLocalRef,
17
+ useMount,
18
+ } from '@workday/canvas-kit-react/common';
19
+ import {Box} from '@workday/canvas-kit-labs-react/common';
20
+ import {OverflowTooltip} from '@workday/canvas-kit-react/tooltip';
21
+ import {SystemIcon} from '@workday/canvas-kit-react/icon';
22
+ import {useListRegisterItem} from './list';
23
+ import {useRovingFocus} from './cursor';
24
+ import {isSelected, useSelectionItem} from './selection';
25
+ import {useOverflowMeasureItem} from './overflow';
26
+
27
+ import {TabsModelContext} from './Tabs';
28
+ import {TabsModel} from './useTabsModel';
29
+ import {StackProps} from '@workday/canvas-kit-labs-react/layout';
30
+ export interface TabsItemProps
31
+ extends ExtractProps<typeof Box, never>,
32
+ Partial<Pick<StackProps, 'spacing'>> {
33
+ /**
34
+ * Optionally pass index to tab item. This should be done if `Tabs.Item` components were created
35
+ * via a `Array::map` function. This index will ensure keyboard navigation works even if items are
36
+ * inserted out of order.
37
+ */
38
+ index?: number;
39
+ /**
40
+ * The contents of the tab item. This will be the accessible name of the tab for screen readers.
41
+ * Often, this is text. Icons are also supported. Using `Tabs.Icon` will render an icon that is
42
+ * not visible to screen readers and therefore the icon should not be necessary to understand the
43
+ * tab. In most circumstances, `aria-label` should not be used.
44
+ *
45
+ * ```tsx
46
+ * <Tabs.Item>First Tab</Tabs.Item>
47
+ * <Tabs.Item hasIcon>
48
+ * <Tabs.Icon icon={canvasIcon} />
49
+ * <Tabs.Text>Second Tab</Tabs.Text>
50
+ * </Tabs.Item>
51
+ * ```
52
+ */
53
+ children: React.ReactNode;
54
+ /**
55
+ * The name of the tab. This name will be used in change events and for `initialTab`. Must match
56
+ * the `name` of the associated tab panel. If this property is not provided, it will default to a
57
+ * string representation of the the zero-based index of the Tab when it was initialized.
58
+ */
59
+ name?: string;
60
+ /**
61
+ * Optionally pass a model directly to this component. Default is to implicitly use the same
62
+ * model as the container component which uses React context. Only use this for advanced use-cases
63
+ */
64
+ model?: TabsModel;
65
+ /**
66
+ * Optional id. If not set, it will inherit the ID passed to the `Tabs` component and append the
67
+ * index at the end. Only set this for advanced cases.
68
+ */
69
+ id?: string;
70
+ /**
71
+ * Part of the ARIA specification for tabs. This attributes links a `role=tab` to a
72
+ * `role=tabpanel`. This value must be the same as the associated `id` attribute of the tab panel.
73
+ * This is automatically set by the component and should only be used in advanced cases.
74
+ */
75
+ 'aria-controls'?: string;
76
+ /**
77
+ * Part of the ARIA specification for tabs. Lets screen readers know which tab is active. This
78
+ * should either be `true` or `undefined` and never `false`. This is automatically set by the
79
+ * component and should only be used in advanced cases.
80
+ */
81
+ 'aria-selected'?: boolean;
82
+ /**
83
+ * Part of the ARIA specification for tabs. The currently active tab should not have a `tabIndex`
84
+ * set while all inactive tabs should have a `tabIndex={-1}`
85
+ */
86
+ tabIndex?: number;
87
+ /**
88
+ * Use `hasIcon={true}` when the Tab item contains an icon. This instructs the tab item to render
89
+ * children as a flex container to accommodate icons. You will have to use `Tabs.Item.Text` as a
90
+ * child element if this is set to true.
91
+ *
92
+ * @example
93
+ * <Tabs.Item hasIcon>
94
+ * <Tabs.Item.Icon icon={someIcon} />
95
+ * <Tabs.Item.Text>Tab Text</Tabs.Item.Text>
96
+ * </Tabs.Item>
97
+ */
98
+ hasIcon?: boolean;
99
+ }
100
+
101
+ export const StyledTabItem = styled(Box.as('button'))<
102
+ StyledType & {hasIcon?: boolean} & Pick<TabsItemProps, 'spacing'>
103
+ >(
104
+ ({theme, spacing}) => ({
105
+ ...type.levels.subtext.large,
106
+ '& > *:not(style) ~ *:not(style)': {
107
+ marginLeft: spacing || space.xxs,
108
+ },
109
+ fontWeight: type.properties.fontWeights.medium,
110
+ border: 'none',
111
+ backgroundColor: 'transparent',
112
+ flex: '0 0 auto',
113
+ alignItems: 'center',
114
+ maxWidth: '280px',
115
+ padding: `${space.xs} ${space.s}`,
116
+ height: 52,
117
+ boxSizing: 'border-box',
118
+ cursor: 'pointer',
119
+ color: colors.licorice300,
120
+ position: 'relative',
121
+ borderRadius: `${borderRadius.m} ${borderRadius.m} 0px 0px`,
122
+ transition: 'background 150ms ease, color 150ms ease',
123
+
124
+ ...hideMouseFocus,
125
+
126
+ '.wd-icon-background ~ .wd-icon-accent, .wd-icon-background ~ .wd-icon-accent2': {
127
+ fill: iconColors.active,
128
+ },
129
+
130
+ '&:hover, &:focus': {
131
+ backgroundColor: colors.soap200,
132
+ color: colors.blackPepper400,
133
+ '.wd-icon-fill, .wd-icon-accent, .wd-icon-accent2': {
134
+ fill: iconColors.hover,
135
+ },
136
+ '.wd-icon-background ~ .wd-icon-accent, .wd-icon-background ~ .wd-icon-accent2': {
137
+ fill: iconColors.active,
138
+ },
139
+ },
140
+
141
+ '&:focus': {
142
+ outline: `none`,
143
+ ...focusRing({inset: 'outer', width: 0, separation: 2}, theme),
144
+ },
145
+
146
+ '&:disabled, &[aria-disabled]': {
147
+ color: colors.licorice100,
148
+ '.wd-icon-fill, .wd-icon-accent, .wd-icon-accent2': {
149
+ fill: iconColors.disabled,
150
+ },
151
+ '&:hover': {
152
+ cursor: 'auto',
153
+ backgroundColor: `transparent`,
154
+ '.wd-icon-fill, .wd-icon-accent, .wd-icon-accent2': {
155
+ fill: iconColors.disabled,
156
+ },
157
+ },
158
+ },
159
+
160
+ '&[aria-selected=true]': {
161
+ color: theme.canvas.palette.primary.main,
162
+ cursor: 'default',
163
+ '.wd-icon-fill, .wd-icon-accent, .wd-icon-accent2': {
164
+ fill: theme.canvas.palette.primary.main,
165
+ },
166
+ '&:after': {
167
+ position: 'absolute',
168
+ height: space.xxxs,
169
+ borderRadius: `${borderRadius.m} ${borderRadius.m} 0px 0px`,
170
+ backgroundColor: theme.canvas.palette.primary.main,
171
+ bottom: 0,
172
+ content: `''`,
173
+ left: 0,
174
+ marginTop: '-2px',
175
+ width: '100%',
176
+ },
177
+ '&:hover, &:focus': {
178
+ backgroundColor: `transparent`,
179
+ color: theme.canvas.palette.primary.main,
180
+ },
181
+ },
182
+ }),
183
+ ({hasIcon}) => {
184
+ if (hasIcon) {
185
+ return {
186
+ display: 'flex',
187
+ };
188
+ } else {
189
+ return ellipsisStyles;
190
+ }
191
+ }
192
+ );
193
+
194
+ export const TabsItem = createComponent('button')({
195
+ displayName: 'Tabs.Item',
196
+ Component: ({model, children, ...elemProps}: TabsItemProps, ref, Element) => {
197
+ const localModel = useModelContext(TabsModelContext, model);
198
+
199
+ const props = useTabsItem(localModel, elemProps, ref);
200
+
201
+ if ('production' !== process.env.NODE_ENV) {
202
+ // ensure `hasIcon` is used when a child has an icon
203
+ // eslint-disable-next-line react-hooks/rules-of-hooks
204
+ const {elementRef, localRef} = useLocalRef(props.ref);
205
+ props.ref = elementRef;
206
+ // eslint-disable-next-line react-hooks/rules-of-hooks
207
+ useMount(() => {
208
+ if (localRef.current.querySelector('svg') && !props.hasIcon) {
209
+ console.warn(
210
+ `A Tabs.Item with an icon should have the 'hasIcon' prop set to true. This ensures correct rendering`
211
+ );
212
+ }
213
+ });
214
+ }
215
+
216
+ return (
217
+ <OverflowTooltip>
218
+ <StyledTabItem as={Element} {...props}>
219
+ {children}
220
+ </StyledTabItem>
221
+ </OverflowTooltip>
222
+ );
223
+ },
224
+ subComponents: {
225
+ Icon: SystemIcon,
226
+ Text: EllipsisText,
227
+ },
228
+ });
229
+
230
+ export const useTabsItem = composeHooks(
231
+ createHook(
232
+ (model: TabsModel, _?: React.Ref<HTMLButtonElement>, elemProps: {name?: string} = {}) => {
233
+ const {state} = model;
234
+ const name = elemProps.name || '';
235
+
236
+ const selected = !!elemProps.name && isSelected(name, state);
237
+
238
+ return {
239
+ type: 'button' as 'button', // keep Typescript happy
240
+ role: 'tab',
241
+ 'aria-selected': selected,
242
+ 'aria-controls': `tabpanel-${state.id}-${name}`,
243
+ };
244
+ }
245
+ ),
246
+ useSelectionItem,
247
+ useOverflowMeasureItem,
248
+ useRovingFocus,
249
+ useListRegisterItem
250
+ );