@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
@@ -5,34 +5,42 @@ import {
5
5
  ToModelConfig,
6
6
  useEventMap,
7
7
  useUniqueId,
8
+ assert,
8
9
  } from '@workday/canvas-kit-react/common';
9
10
 
10
- export type Item = {
11
- /** IDREF of the list. Children ids can be derived from this id */
12
- id: string;
13
- ref: React.RefObject<HTMLElement>;
14
- };
15
-
16
- export type ListState = {
11
+ export type ListState<T = unknown> = {
17
12
  /** IDREF of the list. Children ids can be derived from this id */
18
13
  id: string;
19
14
  /** Used as an auto-incrementing ID for accessibility */
20
15
  indexRef: React.RefObject<number>;
21
- items: Item[];
16
+ items: T[];
17
+ /**
18
+ * An array of ids of non-interactive elements. Non-interactive elements usually have `disabled`
19
+ * applied to them and thus are not focusable by the browser. Lists need to know about these so
20
+ * that keyboard navigation properly skips over these items. Interactive elements that are
21
+ * disabled should use `[aria-disabled]` instead and should still receive focus.
22
+ * @see https://www.w3.org/TR/wai-aria-practices-1.1/#kbd_disabled_controls
23
+ */
24
+ nonInteractiveIds: string[];
22
25
  };
23
26
 
24
- export type ListEvents = {
27
+ export type ListEvents<T = unknown> = {
25
28
  /** Register an item to the list. Takes in an identifier, a React.Ref and an optional index. This should be called on
26
29
  * component mount */
27
- registerItem(data: {item: Item; index?: number}): void;
30
+ registerItem(data: {item: T; index?: number}): void;
28
31
  /** Unregister an item by its identifier. This should be called when the component is unmounted */
29
32
  unregisterItem(data: {id: string}): void;
30
33
  /** Updates the position of a tab within the list. This should be called when a tab's index is updated */
31
34
  updateItemPosition(data: {id: string; index: number}): void;
32
35
  };
33
36
 
34
- export type ListModel = Model<ListState, ListEvents>;
37
+ export interface ListModel<T = unknown> extends Model<ListState<T>, ListEvents<T>> {
38
+ getId: (item: T) => string;
39
+ }
35
40
 
41
+ // We don't have a way of knowing what the generic could be, so we leave it as `unknown`. It will
42
+ // probably need to be cast to the generic in use inside extending models. This will not effect the
43
+ // use of the model in an application, only in models composing this model.
36
44
  export const listEventMap = createEventMap<ListEvents>()({
37
45
  guards: {
38
46
  /**
@@ -76,20 +84,37 @@ export const listEventMap = createEventMap<ListEvents>()({
76
84
  },
77
85
  });
78
86
 
79
- export type BaseListModelConfig = {
87
+ export type BaseListModelConfig<T = unknown> = {
80
88
  /** IDREF of the list. Children ids can be derived from this id */
81
89
  id?: string;
90
+ items?: T[];
91
+ getId?: (item: T) => string;
92
+ /**
93
+ * Array of all ids which are currently disabled
94
+ */
95
+ nonInteractiveIds?: string[];
82
96
  };
83
97
 
84
- export type ListModelConfig = BaseListModelConfig &
85
- Partial<ToModelConfig<ListState, ListEvents, typeof listEventMap>>;
98
+ export type ListModelConfig<T> = BaseListModelConfig<T> &
99
+ Partial<ToModelConfig<ListState<T>, ListEvents<T>, typeof listEventMap>>;
100
+
101
+ export const defaultGetId = (item: any): string => {
102
+ assert(item.id, 'A list item must have an `id` field or a `getId` function defined');
103
+ return item.id;
104
+ };
86
105
 
87
- export const useListModel = (config: ListModelConfig = {}): ListModel => {
106
+ export const useListModel = <T extends unknown>(config: ListModelConfig<T> = {}): ListModel<T> => {
88
107
  const id = useUniqueId(config.id);
89
108
  const indexRef = React.useRef(0);
90
- const [items, setItems] = React.useState([] as Item[]);
109
+ const [items, setItems] = React.useState(config.items || []);
110
+ const getId = config.getId || defaultGetId;
91
111
 
92
- const state = {id, items, indexRef};
112
+ const state = {
113
+ id,
114
+ items: config.items || items,
115
+ indexRef,
116
+ nonInteractiveIds: config.nonInteractiveIds || [],
117
+ };
93
118
 
94
119
  const events = useEventMap(listEventMap, state, config, {
95
120
  registerItem({item, index}) {
@@ -105,8 +130,8 @@ export const useListModel = (config: ListModelConfig = {}): ListModel => {
105
130
  },
106
131
  unregisterItem({id}) {
107
132
  setItems(items => {
108
- if (items.find(item => item.id === id)) {
109
- return items.filter(item => item.id !== id);
133
+ if (items.find(item => getId(item) === id)) {
134
+ return items.filter(item => getId(item) !== id);
110
135
  } else {
111
136
  return items;
112
137
  }
@@ -114,12 +139,12 @@ export const useListModel = (config: ListModelConfig = {}): ListModel => {
114
139
  },
115
140
  updateItemPosition({id, index}) {
116
141
  setItems(items => {
117
- const copy = items.filter(item => item.id !== id);
118
- copy.splice(index, 0, items.find(item => item.id === id)!);
142
+ const copy = items.filter(item => getId(item) !== id);
143
+ copy.splice(index, 0, items.find(item => getId(item) === id)!);
119
144
  return copy;
120
145
  });
121
146
  },
122
- });
147
+ } as ListEvents<T>);
123
148
 
124
- return {state, events};
149
+ return {state, events, getId};
125
150
  };
@@ -0,0 +1,53 @@
1
+ import React from 'react';
2
+
3
+ import {useMountLayout, createHook} from '@workday/canvas-kit-react/common';
4
+
5
+ import {ListModel} from './useListModel';
6
+
7
+ /**
8
+ * Registers an item with a list. It will return elemProps with a `name` which can be used by other
9
+ * hooks to identify the item in the list.
10
+ */
11
+ export const useListRegisterItem = createHook(
12
+ (
13
+ {state, events, getId}: ListModel,
14
+ _?: React.Ref<HTMLElement>,
15
+ elemProps: {name?: string; index?: number; disabled?: boolean} = {}
16
+ ) => {
17
+ const [localId, setLocalId] = React.useState(elemProps.name || '');
18
+ const firstRender = React.useRef(true);
19
+
20
+ React.useLayoutEffect(() => {
21
+ if (elemProps.index !== undefined && !firstRender.current) {
22
+ events.updateItemPosition({id: localId, index: elemProps.index});
23
+ }
24
+ // we only care about the index changing
25
+ // eslint-disable-next-line react-hooks/exhaustive-deps
26
+ }, [elemProps.index]);
27
+
28
+ useMountLayout(() => {
29
+ const defaultId = state.indexRef.current;
30
+ const itemId = elemProps.name || String(defaultId);
31
+ // bail early if item already exists. This happens if items were already provided.
32
+ if (state.items.find(item => getId(item) === elemProps.name)) {
33
+ return;
34
+ }
35
+ events.registerItem({
36
+ item: {id: itemId},
37
+ index: elemProps.index,
38
+ });
39
+ setLocalId(itemId);
40
+ firstRender.current = false;
41
+
42
+ return () => {
43
+ events.unregisterItem({id: itemId});
44
+ };
45
+ });
46
+
47
+ return {
48
+ 'data-name': localId,
49
+ name: localId,
50
+ disabled: elemProps.disabled || state.nonInteractiveIds.includes(localId) ? true : undefined,
51
+ };
52
+ }
53
+ );
@@ -0,0 +1,95 @@
1
+ import React from 'react';
2
+
3
+ import {createComponent, useDefaultModel} from '@workday/canvas-kit-react/common';
4
+
5
+ import {MenuModel, MenuModelConfig, useMenuModel} from './useMenuModel';
6
+ import {MenuPopper} from './MenuPopper';
7
+ import {MenuTarget} from './MenuTarget';
8
+ import {MenuItem} from './MenuItem';
9
+ import {MenuCard} from './MenuCard';
10
+ import {MenuList} from './MenuList';
11
+
12
+ export const MenuModelContext = React.createContext<MenuModel>({} as any);
13
+
14
+ export interface MenuProps<T> extends MenuModelConfig<T> {
15
+ /**
16
+ * The contents of the Menu. Can be `Menu` children or any valid elements.
17
+ */
18
+ children: React.ReactNode;
19
+ /**
20
+ * Optionally pass a model directly to this component. Default is to create a model out of model
21
+ * config passed to this component.
22
+ * @default useMenuModel(config)
23
+ */
24
+ model?: MenuModel<T>;
25
+ }
26
+
27
+ /**
28
+ * An accessible dropdown menu component. A dropdown menu usually contains a target element that
29
+ * opens to a menu.
30
+ * @example
31
+ * <Menu>
32
+ * <Menu.Target>Open</Menu.Target>
33
+ * <Menu.Popper>
34
+ * <Menu.Card>
35
+ * <Menu.List>
36
+ * <Menu.Item name="first">First Item</Menu.Item>
37
+ * <Menu.Item name="second">Second Item</Menu.Item>
38
+ * </Menu.List>
39
+ * </Menu.Card>
40
+ * </Menu.Popper>
41
+ * </Menu>
42
+ */
43
+ export const Menu = createComponent()({
44
+ displayName: 'Menu',
45
+ Component: ({children, model, ...config}: MenuProps<any>) => {
46
+ const value = useDefaultModel(model, config, useMenuModel);
47
+
48
+ return <MenuModelContext.Provider value={value}>{children}</MenuModelContext.Provider>;
49
+ },
50
+ subComponents: {
51
+ /**
52
+ * The menu card is a non-semantic element used to give the dropdown menu its distinct visual
53
+ * cue that the dropdown menu is floating above other content. A menu card usually contains a
54
+ * menu list, but can also contain other elements like a header or footer.
55
+ */
56
+ Card: MenuCard,
57
+ /**
58
+ * The menu list follows the Collections API. A list can either contain static items
59
+ * or a render prop and `items` to the model.
60
+ *
61
+ * @example
62
+ * const MyComponent = () => {
63
+ * const model = useMenuModel({
64
+ * items: [
65
+ * { id: 'first', text: 'First Item' },
66
+ * { id: 'second', text: 'Second Item' },
67
+ * ]
68
+ * })
69
+ *
70
+ * return (
71
+ * <Menu model={model}>
72
+ * <Menu.List>
73
+ * {(item) => <Menu.Item name={item.id}>{item.text}</Menu.Item>}
74
+ * </Menu.List>
75
+ * </Menu>
76
+ * )
77
+ * }
78
+ */
79
+ List: MenuList,
80
+ /**
81
+ * A menu item has an optional `name` prop that identifies the item in the menu list and will be
82
+ * passed to the optional `onSelect` callback of the menu model. A menu item can contain any
83
+ * HTML. If more complex HTML is provided, consider
84
+ */
85
+ Item: MenuItem,
86
+ Target: MenuTarget,
87
+ /**
88
+ * The "Popper" of a menu. The popper will appear around the `Menu.Target`. It renders a `div`
89
+ * element that is portalled to the `document.body` which is controlled by the `PopupStack. The
90
+ * `PopupStack` is not part of React. This means no extra props given to this component will be
91
+ * forwarded to the `div` element, but the `ref` will be forwarded.
92
+ */
93
+ Popper: MenuPopper,
94
+ },
95
+ });
@@ -0,0 +1,96 @@
1
+ import * as React from 'react';
2
+ import {keyframes} from '@emotion/core';
3
+
4
+ import {Card} from '@workday/canvas-kit-react/card';
5
+ import {space, type} from '@workday/canvas-kit-react/tokens';
6
+ import {
7
+ styled,
8
+ TransformOrigin,
9
+ getTranslateFromOrigin,
10
+ createComponent,
11
+ StyledType,
12
+ useModelContext,
13
+ ExtractProps,
14
+ createHook,
15
+ } from '@workday/canvas-kit-react/common';
16
+ import {getTransformFromPlacement} from '@workday/canvas-kit-react/popup';
17
+
18
+ import {MenuModel} from './useMenuModel';
19
+ import {MenuModelContext} from './Menu';
20
+
21
+ export interface MenuCardProps<T = unknown> extends ExtractProps<typeof Card, never> {
22
+ /**
23
+ * Optionally pass a model directly to this component. Default is to implicitly use the same
24
+ * model as the container component which uses React context. Only use this for advanced use-cases
25
+ */
26
+ model?: MenuModel<T>;
27
+ children?: React.ReactNode;
28
+ }
29
+
30
+ const popupAnimation = (transformOrigin: TransformOrigin) => {
31
+ const translate = getTranslateFromOrigin(transformOrigin, space.xxs);
32
+
33
+ return keyframes`
34
+ 0% {
35
+ opacity: 0;
36
+ transform: translate(${translate.x}px, ${translate.y}px);
37
+ }
38
+ 100% {
39
+ opacity: 1;
40
+ transform: translate(0);
41
+ }
42
+ `;
43
+ };
44
+
45
+ const StyledCard = styled(Card)<
46
+ StyledType & {width?: number | string; transformOrigin?: TransformOrigin}
47
+ >(
48
+ type.levels.subtext.large,
49
+ {
50
+ position: 'relative',
51
+ display: 'flex',
52
+ flexDirection: 'column',
53
+ },
54
+ ({transformOrigin}) => {
55
+ if (transformOrigin == null) {
56
+ return {};
57
+ }
58
+ return {
59
+ animation: popupAnimation(transformOrigin),
60
+ animationDuration: '150ms',
61
+ animationTimingFunction: 'ease-out',
62
+ transformOrigin: `${transformOrigin.vertical} ${transformOrigin.horizontal}`,
63
+ // Allow overriding of animation in special cases
64
+ '.wd-no-animation &': {
65
+ animation: 'none',
66
+ },
67
+ };
68
+ }
69
+ );
70
+
71
+ export const MenuCard = createComponent('div')({
72
+ displayName: 'Menu.Card',
73
+ Component: ({children, model, padding = 'zero', ...elemProps}: MenuCardProps, ref, Element) => {
74
+ const localModel = useModelContext(MenuModelContext, model);
75
+ const props = useMenuCard(localModel, elemProps, ref);
76
+ const transformOrigin = React.useMemo(() => {
77
+ return getTransformFromPlacement(localModel.state.placement || 'bottom');
78
+ }, [localModel.state.placement]);
79
+
80
+ return (
81
+ <StyledCard
82
+ maxWidth={`calc(100vw - ${space.l})`}
83
+ as={Element}
84
+ transformOrigin={transformOrigin}
85
+ padding={padding}
86
+ {...props}
87
+ >
88
+ {children}
89
+ </StyledCard>
90
+ );
91
+ },
92
+ });
93
+
94
+ export const useMenuCard = createHook((_: MenuModel) => {
95
+ return {};
96
+ });
@@ -0,0 +1,195 @@
1
+ import * as React from 'react';
2
+
3
+ import {colors, iconColors, typeColors, space, type} from '@workday/canvas-kit-react/tokens';
4
+ import {
5
+ createComponent,
6
+ styled,
7
+ StyledType,
8
+ useModelContext,
9
+ composeHooks,
10
+ createHook,
11
+ useLocalRef,
12
+ useMount,
13
+ } from '@workday/canvas-kit-react/common';
14
+ import {SystemIcon} from '@workday/canvas-kit-react/icon';
15
+ import {OverflowTooltip} from '@workday/canvas-kit-react/tooltip';
16
+ import {Box} from '@workday/canvas-kit-labs-react/common';
17
+
18
+ import {useListRegisterItem} from '../list';
19
+ import {useRovingFocus} from '../cursor';
20
+ import {MenuModel} from './useMenuModel';
21
+ import {MenuModelContext} from './Menu';
22
+ import {useSelectionItem} from '../selection';
23
+
24
+ export interface MenuItemProps<T = unknown> {
25
+ /**
26
+ * Optionally pass index to menu item. This should be done if `Menu.Item` components were created
27
+ * via a `Array::map` function. This index will ensure keyboard navigation works even if items are
28
+ * inserted out of order.
29
+ */
30
+ index?: number;
31
+ /**
32
+ * The label text of the MenuItem.
33
+ */
34
+ children: React.ReactNode;
35
+ /**
36
+ * The name of the menu item. This name will be used in the `onSelect` callback in the model. If
37
+ * this property is not provided, it will default to a string representation of the the zero-based
38
+ * index of the Tab when it was initialized.
39
+ */
40
+ name?: string;
41
+ /**
42
+ * Optionally pass a model directly to this component. Default is to implicitly use the same
43
+ * model as the container component which uses React context. Only use this for advanced use-cases
44
+ */
45
+ model?: MenuModel<T>;
46
+ 'aria-disabled'?: boolean;
47
+ /**
48
+ * Use `hasIcon={true}` when the Tab item contains an icon. This instructs the tab item to render
49
+ * children as a flex container to accommodate icons. You will have to use `Tabs.Item.Text` as a
50
+ * child element if this is set to true.
51
+ *
52
+ * @example
53
+ * <Menu.Item hasIcon>
54
+ * <Menu.Item.Icon icon={someIcon} />
55
+ * <Menu.Item.Text>Tab Text</Menu.Item.Text>
56
+ * </Menu.Item>
57
+ */
58
+ hasIcon?: boolean;
59
+ }
60
+
61
+ const StyledItem = styled(Box.as('li'))<StyledType & {hasIcon?: boolean}>(
62
+ ({theme}) => {
63
+ return {
64
+ ...type.levels.subtext.large,
65
+ '& > *:not(style) ~ *:not(style)': {
66
+ marginLeft: space.xxs,
67
+ },
68
+ padding: `${space.xxs} ${space.s}`,
69
+ boxSizing: 'border-box',
70
+ cursor: 'pointer',
71
+ color: colors.blackPepper300,
72
+ borderWidth: 0,
73
+ textAlign: 'left',
74
+ transition: 'background-color 80ms, color 80ms',
75
+ '.wd-icon-background ~ .wd-icon-accent, .wd-icon-background ~ .wd-icon-accent2': {
76
+ fill: iconColors.active,
77
+ },
78
+ '&:hover, &[aria-selected=true]': {
79
+ backgroundColor: theme.canvas.palette.primary.lightest,
80
+ color: colors.blackPepper300,
81
+ '.wd-icon-fill, .wd-icon-accent, .wd-icon-accent2': {
82
+ fill: iconColors.hover,
83
+ },
84
+ '.wd-icon-background ~ .wd-icon-accent, .wd-icon-background ~ .wd-icon-accent2': {
85
+ fill: iconColors.active,
86
+ },
87
+ },
88
+ '&:focus': {
89
+ outline: 'none',
90
+ backgroundColor: theme.canvas.palette.primary.main,
91
+ color: typeColors.inverse,
92
+ '.wd-icon-fill, .wd-icon-accent, .wd-icon-accent2': {
93
+ fill: iconColors.inverse,
94
+ },
95
+ '.wd-icon-background ~ .wd-icon-accent, .wd-icon-background ~ .wd-icon-accent2': {
96
+ fill: iconColors.inverse,
97
+ },
98
+ },
99
+ // We want the focus styles no matter what
100
+ [`[data-whatinput]`]: {
101
+ backgroundColor: 'inherit',
102
+ color: colors.blackPepper300,
103
+ '.wd-icon-background ~ .wd-icon-accent, .wd-icon-background ~ .wd-icon-accent2': {
104
+ fill: iconColors.active,
105
+ },
106
+ '&:hover, &[aria-selected=true]': {
107
+ backgroundColor: theme.canvas.palette.primary.lightest,
108
+ '.wd-icon-fill, .wd-icon-accent, .wd-icon-accent2': {
109
+ fill: iconColors.hover,
110
+ },
111
+ },
112
+ '&:focus': {
113
+ '.wd-icon-background ~ .wd-icon-accent, .wd-icon-background ~ .wd-icon-accent2': {
114
+ fill: iconColors.active,
115
+ },
116
+ },
117
+ },
118
+ backgroundColor: 'inherit',
119
+ '&:disabled, &[aria-disabled]': {
120
+ color: colors.licorice100,
121
+ cursor: 'default',
122
+ '.wd-icon-fill, .wd-icon-accent, .wd-icon-accent2': {
123
+ fill: iconColors.disabled,
124
+ },
125
+ '&:focus': {
126
+ backgroundColor: colors.blueberry200,
127
+ '.wd-icon-background ~ .wd-icon-accent, .wd-icon-background ~ .wd-icon-accent2': {
128
+ fill: iconColors.disabled,
129
+ },
130
+ '&:hover, &[aria-selected=true]': {
131
+ '.wd-icon-background ~ .wd-icon-accent, .wd-icon-background ~ .wd-icon-accent2': {
132
+ fill: iconColors.disabled,
133
+ },
134
+ },
135
+ },
136
+ },
137
+ };
138
+ },
139
+ ({hasIcon}) => {
140
+ if (hasIcon) {
141
+ return {
142
+ display: 'flex',
143
+ };
144
+ } else {
145
+ return {};
146
+ }
147
+ }
148
+ );
149
+
150
+ export const MenuItem = createComponent('button')({
151
+ displayName: 'Menu.Item',
152
+ Component: ({model, children, ...elemProps}: MenuItemProps, ref, Element) => {
153
+ const localModel = useModelContext(MenuModelContext, model);
154
+
155
+ const props = useMenuItem(localModel, elemProps, ref);
156
+
157
+ if ('production' !== process.env.NODE_ENV) {
158
+ // ensure `hasIcon` is used when a child has an icon
159
+ // eslint-disable-next-line react-hooks/rules-of-hooks
160
+ const {elementRef, localRef} = useLocalRef(props.ref);
161
+ props.ref = elementRef;
162
+ // eslint-disable-next-line react-hooks/rules-of-hooks
163
+ useMount(() => {
164
+ if (localRef.current.querySelector('svg') && !props.hasIcon) {
165
+ console.warn(
166
+ `A Menu.Item with an icon should have the 'hasIcon' prop set to true. This ensures correct rendering`
167
+ );
168
+ }
169
+ });
170
+ }
171
+
172
+ return (
173
+ <OverflowTooltip placement="left">
174
+ <StyledItem minHeight={space.xl} as={Element} {...props}>
175
+ {children}
176
+ </StyledItem>
177
+ </OverflowTooltip>
178
+ );
179
+ },
180
+ subComponents: {
181
+ Icon: SystemIcon,
182
+ Text: styled('span')({}),
183
+ },
184
+ });
185
+
186
+ export const useMenuItem = composeHooks(
187
+ createHook((model: MenuModel, _?: React.Ref<any>, elemProps: {name?: string} = {}) => {
188
+ return {
189
+ role: 'menuitem',
190
+ };
191
+ }),
192
+ useSelectionItem,
193
+ useRovingFocus,
194
+ useListRegisterItem
195
+ );
@@ -0,0 +1,59 @@
1
+ import * as React from 'react';
2
+
3
+ import {commonColors} from '@workday/canvas-kit-react/tokens';
4
+ import {
5
+ createComponent,
6
+ useModelContext,
7
+ createHook,
8
+ ExtractProps,
9
+ } from '@workday/canvas-kit-react/common';
10
+ import {Stack} from '@workday/canvas-kit-labs-react/layout';
11
+
12
+ import {MenuModel} from './useMenuModel';
13
+ import {MenuModelContext} from './Menu';
14
+ import {useRenderItems} from '../list';
15
+
16
+ export interface MenuListProps<T = unknown> extends Partial<ExtractProps<typeof Stack, never>> {
17
+ /**
18
+ * The label text of the MenuList.
19
+ */
20
+ children: React.ReactNode;
21
+ /**
22
+ * Optionally pass a model directly to this component. Default is to implicitly use the same
23
+ * model as the container component which uses React context. Only use this for advanced use-cases
24
+ */
25
+ model?: MenuModel<T>;
26
+ }
27
+
28
+ export const MenuList = createComponent('div')({
29
+ displayName: 'Menu.List',
30
+ Component: ({model, children, ...elemProps}: MenuListProps, ref, Element) => {
31
+ const localModel = useModelContext(MenuModelContext, model);
32
+
33
+ const props = useMenuList(localModel, elemProps, ref);
34
+
35
+ return (
36
+ <Stack
37
+ as={Element}
38
+ background={commonColors.background}
39
+ borderRadius="m"
40
+ padding="zero"
41
+ marginY="zero"
42
+ marginX="xxs"
43
+ spacing="zero"
44
+ overflowY="auto"
45
+ flexDirection={localModel.state.orientation === 'vertical' ? 'column' : 'row'}
46
+ {...props}
47
+ >
48
+ {useRenderItems(localModel, children)}
49
+ </Stack>
50
+ );
51
+ },
52
+ });
53
+
54
+ export const useMenuList = createHook((model: MenuModel) => {
55
+ return {
56
+ role: 'menu',
57
+ 'aria-labelledby': model.state.id,
58
+ };
59
+ });
@@ -0,0 +1,31 @@
1
+ import * as React from 'react';
2
+
3
+ import {createComponent, ExtractProps, useModelContext} from '@workday/canvas-kit-react/common';
4
+ import {usePopupPopper, Popper} from '@workday/canvas-kit-react/popup';
5
+
6
+ import {MenuModel} from './useMenuModel';
7
+ import {MenuModelContext} from './Menu';
8
+
9
+ export interface MenuPopperProps<T = unknown> extends ExtractProps<typeof Popper> {
10
+ /**
11
+ * Optionally pass a model directly to this component. Default is to implicitly use the same
12
+ * model as the container component which uses React context. Only use this for advanced use-cases
13
+ */
14
+ model?: MenuModel<T>;
15
+ }
16
+
17
+ export const MenuPopper = createComponent('div')({
18
+ displayName: 'Menu.Popper',
19
+ Component: ({children, model, ...elemProps}: MenuPopperProps, ref) => {
20
+ const localModel = useModelContext(MenuModelContext, model);
21
+
22
+ const props = useMenuPopper(localModel, elemProps, ref);
23
+ return (
24
+ <Popper placement="bottom-start" {...props}>
25
+ {children}
26
+ </Popper>
27
+ );
28
+ },
29
+ });
30
+
31
+ export const useMenuPopper = usePopupPopper;