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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (677) hide show
  1. package/action-bar/lib/ActionBar.tsx +43 -30
  2. package/button/lib/PrimaryButton.tsx +110 -32
  3. package/button/lib/SecondaryButton.tsx +31 -16
  4. package/button/lib/TertiaryButton.tsx +45 -36
  5. package/button/lib/parts/ButtonContainer.tsx +18 -5
  6. package/button/lib/parts/ButtonLabelIcon.tsx +34 -14
  7. package/button/lib/types.ts +11 -0
  8. package/common/index.ts +1 -0
  9. package/common/lib/EllipsisText.tsx +11 -0
  10. package/common/lib/styles/accessibleHide.ts +2 -2
  11. package/common/lib/theming/README.md +189 -25
  12. package/common/lib/theming/breakpoints.ts +296 -16
  13. package/common/lib/theming/types.ts +191 -1
  14. package/common/lib/utils/components.ts +50 -23
  15. package/common/lib/utils/index.ts +1 -0
  16. package/common/lib/utils/mergeProps.ts +4 -0
  17. package/common/lib/utils/useConstant.ts +18 -0
  18. package/common/lib/utils/useResizeObserver.ts +29 -0
  19. package/common/lib/utils/useUniqueId.ts +4 -3
  20. package/cookie-banner/README.md +15 -10
  21. package/cookie-banner/index.ts +3 -3
  22. package/cookie-banner/lib/CookieBanner.tsx +29 -4
  23. package/dist/commonjs/action-bar/lib/ActionBar.d.ts.map +1 -1
  24. package/dist/commonjs/action-bar/lib/ActionBar.js +35 -27
  25. package/dist/commonjs/button/lib/PrimaryButton.d.ts +80 -6
  26. package/dist/commonjs/button/lib/PrimaryButton.d.ts.map +1 -1
  27. package/dist/commonjs/button/lib/PrimaryButton.js +80 -26
  28. package/dist/commonjs/button/lib/SecondaryButton.d.ts +8 -5
  29. package/dist/commonjs/button/lib/SecondaryButton.d.ts.map +1 -1
  30. package/dist/commonjs/button/lib/SecondaryButton.js +22 -12
  31. package/dist/commonjs/button/lib/TertiaryButton.d.ts +8 -4
  32. package/dist/commonjs/button/lib/TertiaryButton.d.ts.map +1 -1
  33. package/dist/commonjs/button/lib/TertiaryButton.js +24 -20
  34. package/dist/commonjs/button/lib/parts/ButtonContainer.d.ts +5 -3
  35. package/dist/commonjs/button/lib/parts/ButtonContainer.d.ts.map +1 -1
  36. package/dist/commonjs/button/lib/parts/ButtonContainer.js +7 -9
  37. package/dist/commonjs/button/lib/parts/ButtonLabel.d.ts +1 -1
  38. package/dist/commonjs/button/lib/parts/ButtonLabel.d.ts.map +1 -1
  39. package/dist/commonjs/button/lib/parts/ButtonLabelIcon.d.ts +7 -4
  40. package/dist/commonjs/button/lib/parts/ButtonLabelIcon.d.ts.map +1 -1
  41. package/dist/commonjs/button/lib/parts/ButtonLabelIcon.js +28 -13
  42. package/dist/commonjs/button/lib/types.d.ts +9 -0
  43. package/dist/commonjs/button/lib/types.d.ts.map +1 -1
  44. package/dist/commonjs/common/index.d.ts +1 -0
  45. package/dist/commonjs/common/index.d.ts.map +1 -1
  46. package/dist/commonjs/common/index.js +1 -0
  47. package/dist/commonjs/common/lib/EllipsisText.d.ts +5 -0
  48. package/dist/commonjs/common/lib/EllipsisText.d.ts.map +1 -0
  49. package/dist/commonjs/common/lib/EllipsisText.js +13 -0
  50. package/dist/commonjs/common/lib/styles/accessibleHide.d.ts +2 -2
  51. package/dist/commonjs/common/lib/styles/accessibleHide.d.ts.map +1 -1
  52. package/dist/commonjs/common/lib/theming/breakpoints.d.ts +287 -6
  53. package/dist/commonjs/common/lib/theming/breakpoints.d.ts.map +1 -1
  54. package/dist/commonjs/common/lib/theming/breakpoints.js +192 -10
  55. package/dist/commonjs/common/lib/theming/types.d.ts +191 -1
  56. package/dist/commonjs/common/lib/theming/types.d.ts.map +1 -1
  57. package/dist/commonjs/common/lib/utils/components.d.ts +19 -9
  58. package/dist/commonjs/common/lib/utils/components.d.ts.map +1 -1
  59. package/dist/commonjs/common/lib/utils/components.js +12 -2
  60. package/dist/commonjs/common/lib/utils/index.d.ts +1 -0
  61. package/dist/commonjs/common/lib/utils/index.d.ts.map +1 -1
  62. package/dist/commonjs/common/lib/utils/index.js +1 -0
  63. package/dist/commonjs/common/lib/utils/mergeProps.d.ts.map +1 -1
  64. package/dist/commonjs/common/lib/utils/mergeProps.js +5 -0
  65. package/dist/commonjs/common/lib/utils/useConstant.d.ts +9 -0
  66. package/dist/commonjs/common/lib/utils/useConstant.d.ts.map +1 -0
  67. package/dist/commonjs/common/lib/utils/useConstant.js +18 -0
  68. package/dist/commonjs/common/lib/utils/useResizeObserver.d.ts +3 -0
  69. package/dist/commonjs/common/lib/utils/useResizeObserver.d.ts.map +1 -0
  70. package/dist/commonjs/common/lib/utils/useResizeObserver.js +42 -0
  71. package/dist/commonjs/common/lib/utils/useUniqueId.d.ts.map +1 -1
  72. package/dist/commonjs/common/lib/utils/useUniqueId.js +3 -10
  73. package/dist/commonjs/cookie-banner/index.d.ts +3 -3
  74. package/dist/commonjs/cookie-banner/index.d.ts.map +1 -1
  75. package/dist/commonjs/cookie-banner/index.js +1 -1
  76. package/dist/commonjs/cookie-banner/lib/CookieBanner.d.ts +19 -2
  77. package/dist/commonjs/cookie-banner/lib/CookieBanner.d.ts.map +1 -1
  78. package/dist/commonjs/cookie-banner/lib/CookieBanner.js +19 -8
  79. package/dist/commonjs/dialog/lib/hooks/useDialogCard.d.ts +4 -16
  80. package/dist/commonjs/dialog/lib/hooks/useDialogCard.d.ts.map +1 -1
  81. package/dist/commonjs/dialog/lib/hooks/useDialogPopper.d.ts +5 -2
  82. package/dist/commonjs/dialog/lib/hooks/useDialogPopper.d.ts.map +1 -1
  83. package/dist/commonjs/modal/lib/ModalOverlay.d.ts +4 -2
  84. package/dist/commonjs/modal/lib/ModalOverlay.d.ts.map +1 -1
  85. package/dist/commonjs/modal/lib/hooks/useModalCard.d.ts +4 -16
  86. package/dist/commonjs/modal/lib/hooks/useModalCard.d.ts.map +1 -1
  87. package/dist/commonjs/modal/lib/hooks/useModalHeading.d.ts +5 -17
  88. package/dist/commonjs/modal/lib/hooks/useModalHeading.d.ts.map +1 -1
  89. package/dist/commonjs/page-header/index.d.ts +3 -3
  90. package/dist/commonjs/page-header/index.d.ts.map +1 -1
  91. package/dist/commonjs/page-header/index.js +1 -1
  92. package/dist/commonjs/page-header/lib/PageHeader.d.ts +19 -2
  93. package/dist/commonjs/page-header/lib/PageHeader.d.ts.map +1 -1
  94. package/dist/commonjs/page-header/lib/PageHeader.js +18 -7
  95. package/dist/commonjs/pagination/lib/Pagination/GoTo/Label.d.ts +3 -0
  96. package/dist/commonjs/pagination/lib/Pagination/GoTo/Label.d.ts.map +1 -1
  97. package/dist/commonjs/pagination/lib/Pagination/PageList.d.ts +1 -1
  98. package/dist/commonjs/pagination/lib/Pagination/PageList.d.ts.map +1 -1
  99. package/dist/commonjs/pagination/lib/Pagination/Pagination.d.ts +5 -5
  100. package/dist/commonjs/pagination/lib/Pagination/common/List.d.ts +1 -1
  101. package/dist/commonjs/pagination/lib/Pagination/common/List.d.ts.map +1 -1
  102. package/dist/commonjs/pagination/lib/Pagination/common/utils/getValidChildren.d.ts +1 -1
  103. package/dist/commonjs/pagination/lib/Pagination/common/utils/getValidChildren.d.ts.map +1 -1
  104. package/dist/commonjs/pagination/lib/Pagination/common/utils/space.d.ts +28 -28
  105. package/dist/commonjs/pagination/lib/Pagination/types.d.ts +39 -0
  106. package/dist/commonjs/pagination/lib/Pagination/types.d.ts.map +1 -1
  107. package/dist/commonjs/pagination/lib/Pagination/usePaginationModel.d.ts +19 -0
  108. package/dist/commonjs/pagination/lib/Pagination/usePaginationModel.d.ts.map +1 -1
  109. package/dist/commonjs/popup/lib/PopupCard.d.ts.map +1 -1
  110. package/dist/commonjs/popup/lib/PopupCard.js +2 -3
  111. package/dist/commonjs/popup/lib/hooks/usePopupCard.d.ts +5 -2
  112. package/dist/commonjs/popup/lib/hooks/usePopupCard.d.ts.map +1 -1
  113. package/dist/commonjs/popup/lib/hooks/usePopupCloseButton.d.ts +4 -2
  114. package/dist/commonjs/popup/lib/hooks/usePopupCloseButton.d.ts.map +1 -1
  115. package/dist/commonjs/popup/lib/hooks/usePopupHeading.d.ts +5 -2
  116. package/dist/commonjs/popup/lib/hooks/usePopupHeading.d.ts.map +1 -1
  117. package/dist/commonjs/popup/lib/hooks/usePopupPopper.d.ts +4 -2
  118. package/dist/commonjs/popup/lib/hooks/usePopupPopper.d.ts.map +1 -1
  119. package/dist/commonjs/popup/lib/hooks/usePopupTarget.d.ts +4 -2
  120. package/dist/commonjs/popup/lib/hooks/usePopupTarget.d.ts.map +1 -1
  121. package/dist/commonjs/tabs/index.d.ts +5 -0
  122. package/dist/commonjs/tabs/index.d.ts.map +1 -1
  123. package/dist/commonjs/tabs/index.js +11 -0
  124. package/dist/commonjs/tabs/lib/Tabs.d.ts +35 -7
  125. package/dist/commonjs/tabs/lib/Tabs.d.ts.map +1 -1
  126. package/dist/commonjs/tabs/lib/Tabs.js +28 -7
  127. package/dist/commonjs/tabs/lib/TabsItem.d.ts +107 -0
  128. package/dist/commonjs/tabs/lib/TabsItem.d.ts.map +1 -0
  129. package/dist/commonjs/tabs/lib/TabsItem.js +140 -0
  130. package/dist/commonjs/tabs/lib/TabsList.d.ts +43 -0
  131. package/dist/commonjs/tabs/lib/TabsList.d.ts.map +1 -0
  132. package/dist/commonjs/tabs/lib/TabsList.js +53 -0
  133. package/dist/commonjs/tabs/lib/TabsMenuPopper.d.ts +21 -0
  134. package/dist/commonjs/tabs/lib/TabsMenuPopper.d.ts.map +1 -0
  135. package/dist/commonjs/tabs/lib/{TabList.js → TabsMenuPopper.js} +7 -19
  136. package/dist/commonjs/tabs/lib/TabsOverflowButton.d.ts +31 -0
  137. package/dist/commonjs/tabs/lib/TabsOverflowButton.d.ts.map +1 -0
  138. package/dist/commonjs/tabs/lib/TabsOverflowButton.js +57 -0
  139. package/{ts3.5/dist/commonjs/tabs/lib/TabPanel.d.ts → dist/commonjs/tabs/lib/TabsPanel.d.ts} +39 -29
  140. package/dist/commonjs/tabs/lib/TabsPanel.d.ts.map +1 -0
  141. package/dist/commonjs/tabs/lib/TabsPanel.js +64 -0
  142. package/dist/{es6/tabs/lib/TabList.d.ts → commonjs/tabs/lib/TabsPanels.d.ts} +5 -5
  143. package/dist/commonjs/tabs/lib/TabsPanels.d.ts.map +1 -0
  144. package/dist/commonjs/tabs/lib/TabsPanels.js +21 -0
  145. package/dist/commonjs/tabs/lib/cursor/index.d.ts +1 -1
  146. package/dist/commonjs/tabs/lib/cursor/index.d.ts.map +1 -1
  147. package/dist/commonjs/tabs/lib/cursor/index.js +1 -1
  148. package/dist/commonjs/tabs/lib/cursor/useCursorModel.d.ts +23 -13
  149. package/dist/commonjs/tabs/lib/cursor/useCursorModel.d.ts.map +1 -1
  150. package/dist/commonjs/tabs/lib/cursor/useCursorModel.js +50 -49
  151. package/dist/commonjs/tabs/lib/cursor/useRovingFocus.d.ts +37 -0
  152. package/dist/commonjs/tabs/lib/cursor/useRovingFocus.d.ts.map +1 -0
  153. package/dist/commonjs/tabs/lib/cursor/{hooks.js → useRovingFocus.js} +26 -50
  154. package/dist/commonjs/tabs/lib/list/index.d.ts +2 -1
  155. package/dist/commonjs/tabs/lib/list/index.d.ts.map +1 -1
  156. package/dist/commonjs/tabs/lib/list/index.js +2 -1
  157. package/dist/commonjs/tabs/lib/list/renderItem.d.ts +4 -0
  158. package/dist/commonjs/tabs/lib/list/renderItem.d.ts.map +1 -0
  159. package/dist/commonjs/tabs/lib/list/renderItem.js +18 -0
  160. package/dist/commonjs/tabs/lib/list/useListModel.d.ts +25 -13
  161. package/dist/commonjs/tabs/lib/list/useListModel.d.ts.map +1 -1
  162. package/dist/commonjs/tabs/lib/list/useListModel.js +20 -7
  163. package/dist/commonjs/tabs/lib/list/useListRegisterItem.d.ts +14 -0
  164. package/dist/commonjs/tabs/lib/list/useListRegisterItem.d.ts.map +1 -0
  165. package/dist/commonjs/tabs/lib/list/useListRegisterItem.js +46 -0
  166. package/dist/commonjs/tabs/lib/menu/Menu.d.ts +80 -0
  167. package/dist/commonjs/tabs/lib/menu/Menu.d.ts.map +1 -0
  168. package/dist/commonjs/tabs/lib/menu/Menu.js +94 -0
  169. package/dist/commonjs/tabs/lib/menu/MenuCard.d.ts +17 -0
  170. package/dist/commonjs/tabs/lib/menu/MenuCard.d.ts.map +1 -0
  171. package/dist/commonjs/tabs/lib/menu/MenuCard.js +82 -0
  172. package/dist/commonjs/tabs/lib/menu/MenuItem.d.ts +62 -0
  173. package/dist/commonjs/tabs/lib/menu/MenuItem.d.ts.map +1 -0
  174. package/dist/commonjs/tabs/lib/menu/MenuItem.js +145 -0
  175. package/dist/commonjs/tabs/lib/menu/MenuList.d.ts +23 -0
  176. package/dist/commonjs/tabs/lib/menu/MenuList.d.ts.map +1 -0
  177. package/dist/commonjs/tabs/lib/menu/MenuList.js +52 -0
  178. package/dist/commonjs/tabs/lib/menu/MenuPopper.d.ts +21 -0
  179. package/dist/commonjs/tabs/lib/menu/MenuPopper.d.ts.map +1 -0
  180. package/dist/commonjs/tabs/lib/menu/MenuPopper.js +45 -0
  181. package/dist/commonjs/tabs/lib/menu/MenuTarget.d.ts +21 -0
  182. package/dist/commonjs/tabs/lib/menu/MenuTarget.d.ts.map +1 -0
  183. package/dist/commonjs/tabs/lib/menu/MenuTarget.js +60 -0
  184. package/dist/commonjs/tabs/lib/menu/index.d.ts +8 -0
  185. package/dist/commonjs/tabs/lib/menu/index.d.ts.map +1 -0
  186. package/dist/commonjs/tabs/lib/menu/index.js +18 -0
  187. package/dist/commonjs/tabs/lib/menu/useMenuModel.d.ts +35 -0
  188. package/dist/commonjs/tabs/lib/menu/useMenuModel.d.ts.map +1 -0
  189. package/dist/commonjs/tabs/lib/menu/useMenuModel.js +33 -0
  190. package/dist/commonjs/tabs/lib/overflow/index.d.ts +5 -0
  191. package/dist/commonjs/tabs/lib/overflow/index.d.ts.map +1 -0
  192. package/dist/commonjs/tabs/lib/overflow/index.js +9 -0
  193. package/dist/commonjs/tabs/lib/overflow/useOverflowMeasureContainer.d.ts +8 -0
  194. package/dist/commonjs/tabs/lib/overflow/useOverflowMeasureContainer.d.ts.map +1 -0
  195. package/dist/commonjs/tabs/lib/overflow/useOverflowMeasureContainer.js +22 -0
  196. package/dist/commonjs/tabs/lib/overflow/useOverflowMeasureItem.d.ts +10 -0
  197. package/dist/commonjs/tabs/lib/overflow/useOverflowMeasureItem.d.ts.map +1 -0
  198. package/dist/commonjs/tabs/lib/overflow/useOverflowMeasureItem.js +32 -0
  199. package/dist/commonjs/tabs/lib/overflow/useOverflowModel.d.ts +69 -0
  200. package/dist/commonjs/tabs/lib/overflow/useOverflowModel.d.ts.map +1 -0
  201. package/dist/commonjs/tabs/lib/overflow/useOverflowModel.js +117 -0
  202. package/dist/commonjs/tabs/lib/overflow/useOverflowTarget.d.ts +11 -0
  203. package/dist/commonjs/tabs/lib/overflow/useOverflowTarget.d.ts.map +1 -0
  204. package/dist/commonjs/tabs/lib/overflow/useOverflowTarget.js +35 -0
  205. package/dist/commonjs/tabs/lib/selection/index.d.ts +4 -0
  206. package/dist/commonjs/tabs/lib/selection/index.d.ts.map +1 -0
  207. package/dist/commonjs/tabs/lib/selection/index.js +8 -0
  208. package/dist/commonjs/tabs/lib/selection/useResetCursorOnBlur.d.ts +13 -0
  209. package/dist/commonjs/tabs/lib/selection/useResetCursorOnBlur.d.ts.map +1 -0
  210. package/dist/commonjs/tabs/lib/{hooks.js → selection/useResetCursorOnBlur.js} +8 -9
  211. package/dist/commonjs/tabs/lib/selection/useSelectionItem.d.ts +8 -0
  212. package/dist/commonjs/tabs/lib/selection/useSelectionItem.d.ts.map +1 -0
  213. package/dist/commonjs/tabs/lib/selection/useSelectionItem.js +16 -0
  214. package/dist/commonjs/tabs/lib/selection/useSelectionModel.d.ts +62 -0
  215. package/dist/commonjs/tabs/lib/selection/useSelectionModel.d.ts.map +1 -0
  216. package/dist/commonjs/tabs/lib/selection/useSelectionModel.js +80 -0
  217. package/dist/commonjs/tabs/lib/useTabsModel.d.ts +39 -38
  218. package/dist/commonjs/tabs/lib/useTabsModel.d.ts.map +1 -1
  219. package/dist/commonjs/tabs/lib/useTabsModel.js +50 -37
  220. package/dist/commonjs/tokens/index.d.ts +3 -20
  221. package/dist/commonjs/tokens/index.d.ts.map +1 -1
  222. package/dist/commonjs/tokens/index.js +3 -6
  223. package/dist/commonjs/tokens/lib/depth.d.ts +109 -3
  224. package/dist/commonjs/tokens/lib/depth.d.ts.map +1 -1
  225. package/dist/commonjs/tokens/lib/depth.js +40 -5
  226. package/dist/commonjs/tooltip/lib/OverflowTooltip.d.ts +10 -0
  227. package/dist/commonjs/tooltip/lib/OverflowTooltip.d.ts.map +1 -1
  228. package/dist/commonjs/tooltip/lib/OverflowTooltip.js +19 -15
  229. package/dist/commonjs/tooltip/lib/useTooltip.d.ts +4 -4
  230. package/dist/commonjs/tooltip/lib/useTooltip.d.ts.map +1 -1
  231. package/dist/es6/action-bar/lib/ActionBar.d.ts.map +1 -1
  232. package/dist/es6/action-bar/lib/ActionBar.js +33 -22
  233. package/dist/es6/button/lib/PrimaryButton.d.ts +80 -6
  234. package/dist/es6/button/lib/PrimaryButton.d.ts.map +1 -1
  235. package/dist/es6/button/lib/PrimaryButton.js +81 -27
  236. package/dist/es6/button/lib/SecondaryButton.d.ts +8 -5
  237. package/dist/es6/button/lib/SecondaryButton.d.ts.map +1 -1
  238. package/dist/es6/button/lib/SecondaryButton.js +22 -12
  239. package/dist/es6/button/lib/TertiaryButton.d.ts +8 -4
  240. package/dist/es6/button/lib/TertiaryButton.d.ts.map +1 -1
  241. package/dist/es6/button/lib/TertiaryButton.js +25 -21
  242. package/dist/es6/button/lib/parts/ButtonContainer.d.ts +5 -3
  243. package/dist/es6/button/lib/parts/ButtonContainer.d.ts.map +1 -1
  244. package/dist/es6/button/lib/parts/ButtonContainer.js +7 -9
  245. package/dist/es6/button/lib/parts/ButtonLabel.d.ts +1 -1
  246. package/dist/es6/button/lib/parts/ButtonLabel.d.ts.map +1 -1
  247. package/dist/es6/button/lib/parts/ButtonLabelIcon.d.ts +7 -4
  248. package/dist/es6/button/lib/parts/ButtonLabelIcon.d.ts.map +1 -1
  249. package/dist/es6/button/lib/parts/ButtonLabelIcon.js +28 -13
  250. package/dist/es6/button/lib/types.d.ts +9 -0
  251. package/dist/es6/button/lib/types.d.ts.map +1 -1
  252. package/dist/es6/common/index.d.ts +1 -0
  253. package/dist/es6/common/index.d.ts.map +1 -1
  254. package/dist/es6/common/index.js +1 -0
  255. package/dist/es6/common/lib/EllipsisText.d.ts +5 -0
  256. package/dist/es6/common/lib/EllipsisText.d.ts.map +1 -0
  257. package/dist/es6/common/lib/EllipsisText.js +8 -0
  258. package/dist/es6/common/lib/styles/accessibleHide.d.ts +2 -2
  259. package/dist/es6/common/lib/styles/accessibleHide.d.ts.map +1 -1
  260. package/dist/es6/common/lib/theming/breakpoints.d.ts +287 -6
  261. package/dist/es6/common/lib/theming/breakpoints.d.ts.map +1 -1
  262. package/dist/es6/common/lib/theming/breakpoints.js +192 -10
  263. package/dist/es6/common/lib/theming/types.d.ts +191 -1
  264. package/dist/es6/common/lib/theming/types.d.ts.map +1 -1
  265. package/dist/es6/common/lib/utils/components.d.ts +19 -9
  266. package/dist/es6/common/lib/utils/components.d.ts.map +1 -1
  267. package/dist/es6/common/lib/utils/components.js +12 -2
  268. package/dist/es6/common/lib/utils/index.d.ts +1 -0
  269. package/dist/es6/common/lib/utils/index.d.ts.map +1 -1
  270. package/dist/es6/common/lib/utils/index.js +1 -0
  271. package/dist/es6/common/lib/utils/mergeProps.d.ts.map +1 -1
  272. package/dist/es6/common/lib/utils/mergeProps.js +5 -0
  273. package/dist/es6/common/lib/utils/useConstant.d.ts +9 -0
  274. package/dist/es6/common/lib/utils/useConstant.d.ts.map +1 -0
  275. package/dist/es6/common/lib/utils/useConstant.js +15 -0
  276. package/dist/es6/common/lib/utils/useResizeObserver.d.ts +3 -0
  277. package/dist/es6/common/lib/utils/useResizeObserver.d.ts.map +1 -0
  278. package/dist/es6/common/lib/utils/useResizeObserver.js +37 -0
  279. package/dist/es6/common/lib/utils/useUniqueId.d.ts.map +1 -1
  280. package/dist/es6/common/lib/utils/useUniqueId.js +3 -3
  281. package/dist/es6/cookie-banner/index.d.ts +3 -3
  282. package/dist/es6/cookie-banner/index.d.ts.map +1 -1
  283. package/dist/es6/cookie-banner/index.js +3 -3
  284. package/dist/es6/cookie-banner/lib/CookieBanner.d.ts +19 -2
  285. package/dist/es6/cookie-banner/lib/CookieBanner.d.ts.map +1 -1
  286. package/dist/es6/cookie-banner/lib/CookieBanner.js +19 -8
  287. package/dist/es6/dialog/lib/hooks/useDialogCard.d.ts +4 -16
  288. package/dist/es6/dialog/lib/hooks/useDialogCard.d.ts.map +1 -1
  289. package/dist/es6/dialog/lib/hooks/useDialogPopper.d.ts +5 -2
  290. package/dist/es6/dialog/lib/hooks/useDialogPopper.d.ts.map +1 -1
  291. package/dist/es6/modal/lib/ModalOverlay.d.ts +4 -2
  292. package/dist/es6/modal/lib/ModalOverlay.d.ts.map +1 -1
  293. package/dist/es6/modal/lib/hooks/useModalCard.d.ts +4 -16
  294. package/dist/es6/modal/lib/hooks/useModalCard.d.ts.map +1 -1
  295. package/dist/es6/modal/lib/hooks/useModalHeading.d.ts +5 -17
  296. package/dist/es6/modal/lib/hooks/useModalHeading.d.ts.map +1 -1
  297. package/dist/es6/page-header/index.d.ts +3 -3
  298. package/dist/es6/page-header/index.d.ts.map +1 -1
  299. package/dist/es6/page-header/index.js +3 -3
  300. package/dist/es6/page-header/lib/PageHeader.d.ts +19 -2
  301. package/dist/es6/page-header/lib/PageHeader.d.ts.map +1 -1
  302. package/dist/es6/page-header/lib/PageHeader.js +18 -7
  303. package/dist/es6/pagination/lib/Pagination/GoTo/Label.d.ts +3 -0
  304. package/dist/es6/pagination/lib/Pagination/GoTo/Label.d.ts.map +1 -1
  305. package/dist/es6/pagination/lib/Pagination/PageList.d.ts +1 -1
  306. package/dist/es6/pagination/lib/Pagination/PageList.d.ts.map +1 -1
  307. package/dist/es6/pagination/lib/Pagination/Pagination.d.ts +5 -5
  308. package/dist/es6/pagination/lib/Pagination/common/List.d.ts +1 -1
  309. package/dist/es6/pagination/lib/Pagination/common/List.d.ts.map +1 -1
  310. package/dist/es6/pagination/lib/Pagination/common/utils/getValidChildren.d.ts +1 -1
  311. package/dist/es6/pagination/lib/Pagination/common/utils/getValidChildren.d.ts.map +1 -1
  312. package/dist/es6/pagination/lib/Pagination/common/utils/space.d.ts +28 -28
  313. package/dist/es6/pagination/lib/Pagination/types.d.ts +39 -0
  314. package/dist/es6/pagination/lib/Pagination/types.d.ts.map +1 -1
  315. package/dist/es6/pagination/lib/Pagination/usePaginationModel.d.ts +19 -0
  316. package/dist/es6/pagination/lib/Pagination/usePaginationModel.d.ts.map +1 -1
  317. package/dist/es6/popup/lib/PopupCard.d.ts.map +1 -1
  318. package/dist/es6/popup/lib/PopupCard.js +3 -4
  319. package/dist/es6/popup/lib/hooks/usePopupCard.d.ts +5 -2
  320. package/dist/es6/popup/lib/hooks/usePopupCard.d.ts.map +1 -1
  321. package/dist/es6/popup/lib/hooks/usePopupCloseButton.d.ts +4 -2
  322. package/dist/es6/popup/lib/hooks/usePopupCloseButton.d.ts.map +1 -1
  323. package/dist/es6/popup/lib/hooks/usePopupHeading.d.ts +5 -2
  324. package/dist/es6/popup/lib/hooks/usePopupHeading.d.ts.map +1 -1
  325. package/dist/es6/popup/lib/hooks/usePopupPopper.d.ts +4 -2
  326. package/dist/es6/popup/lib/hooks/usePopupPopper.d.ts.map +1 -1
  327. package/dist/es6/popup/lib/hooks/usePopupTarget.d.ts +4 -2
  328. package/dist/es6/popup/lib/hooks/usePopupTarget.d.ts.map +1 -1
  329. package/dist/es6/tabs/index.d.ts +5 -0
  330. package/dist/es6/tabs/index.d.ts.map +1 -1
  331. package/dist/es6/tabs/index.js +5 -0
  332. package/dist/es6/tabs/lib/Tabs.d.ts +35 -7
  333. package/dist/es6/tabs/lib/Tabs.d.ts.map +1 -1
  334. package/dist/es6/tabs/lib/Tabs.js +28 -7
  335. package/dist/es6/tabs/lib/TabsItem.d.ts +107 -0
  336. package/dist/es6/tabs/lib/TabsItem.d.ts.map +1 -0
  337. package/dist/es6/tabs/lib/TabsItem.js +131 -0
  338. package/dist/es6/tabs/lib/TabsList.d.ts +43 -0
  339. package/dist/es6/tabs/lib/TabsList.d.ts.map +1 -0
  340. package/dist/es6/tabs/lib/TabsList.js +44 -0
  341. package/dist/es6/tabs/lib/TabsMenuPopper.d.ts +21 -0
  342. package/dist/es6/tabs/lib/TabsMenuPopper.d.ts.map +1 -0
  343. package/dist/es6/tabs/lib/{TabList.js → TabsMenuPopper.js} +8 -20
  344. package/dist/es6/tabs/lib/TabsOverflowButton.d.ts +31 -0
  345. package/dist/es6/tabs/lib/TabsOverflowButton.d.ts.map +1 -0
  346. package/dist/es6/tabs/lib/TabsOverflowButton.js +48 -0
  347. package/dist/{commonjs/tabs/lib/TabPanel.d.ts → es6/tabs/lib/TabsPanel.d.ts} +15 -5
  348. package/dist/es6/tabs/lib/TabsPanel.d.ts.map +1 -0
  349. package/dist/es6/tabs/lib/TabsPanel.js +59 -0
  350. package/{ts3.5/dist/commonjs/tabs/lib/TabList.d.ts → dist/es6/tabs/lib/TabsPanels.d.ts} +15 -15
  351. package/dist/es6/tabs/lib/TabsPanels.d.ts.map +1 -0
  352. package/dist/es6/tabs/lib/TabsPanels.js +12 -0
  353. package/dist/es6/tabs/lib/cursor/index.d.ts +1 -1
  354. package/dist/es6/tabs/lib/cursor/index.d.ts.map +1 -1
  355. package/dist/es6/tabs/lib/cursor/index.js +1 -1
  356. package/dist/es6/tabs/lib/cursor/useCursorModel.d.ts +23 -13
  357. package/dist/es6/tabs/lib/cursor/useCursorModel.d.ts.map +1 -1
  358. package/dist/es6/tabs/lib/cursor/useCursorModel.js +51 -50
  359. package/dist/es6/tabs/lib/cursor/useRovingFocus.d.ts +37 -0
  360. package/dist/es6/tabs/lib/cursor/useRovingFocus.d.ts.map +1 -0
  361. package/dist/es6/tabs/lib/cursor/useRovingFocus.js +84 -0
  362. package/dist/es6/tabs/lib/list/index.d.ts +2 -1
  363. package/dist/es6/tabs/lib/list/index.d.ts.map +1 -1
  364. package/dist/es6/tabs/lib/list/index.js +2 -1
  365. package/dist/es6/tabs/lib/list/renderItem.d.ts +4 -0
  366. package/dist/es6/tabs/lib/list/renderItem.d.ts.map +1 -0
  367. package/dist/es6/tabs/lib/list/renderItem.js +12 -0
  368. package/dist/es6/tabs/lib/list/useListModel.d.ts +25 -13
  369. package/dist/es6/tabs/lib/list/useListModel.d.ts.map +1 -1
  370. package/dist/es6/tabs/lib/list/useListModel.js +21 -8
  371. package/dist/es6/tabs/lib/list/useListRegisterItem.d.ts +14 -0
  372. package/dist/es6/tabs/lib/list/useListRegisterItem.d.ts.map +1 -0
  373. package/dist/es6/tabs/lib/list/useListRegisterItem.js +41 -0
  374. package/dist/es6/tabs/lib/menu/Menu.d.ts +80 -0
  375. package/dist/es6/tabs/lib/menu/Menu.d.ts.map +1 -0
  376. package/dist/es6/tabs/lib/menu/Menu.js +89 -0
  377. package/dist/es6/tabs/lib/menu/MenuCard.d.ts +17 -0
  378. package/dist/es6/tabs/lib/menu/MenuCard.d.ts.map +1 -0
  379. package/dist/es6/tabs/lib/menu/MenuCard.js +73 -0
  380. package/dist/es6/tabs/lib/menu/MenuItem.d.ts +62 -0
  381. package/dist/es6/tabs/lib/menu/MenuItem.d.ts.map +1 -0
  382. package/dist/es6/tabs/lib/menu/MenuItem.js +136 -0
  383. package/dist/es6/tabs/lib/menu/MenuList.d.ts +23 -0
  384. package/dist/es6/tabs/lib/menu/MenuList.d.ts.map +1 -0
  385. package/dist/es6/tabs/lib/menu/MenuList.js +43 -0
  386. package/dist/es6/tabs/lib/menu/MenuPopper.d.ts +21 -0
  387. package/dist/es6/tabs/lib/menu/MenuPopper.d.ts.map +1 -0
  388. package/dist/es6/tabs/lib/menu/MenuPopper.js +36 -0
  389. package/dist/es6/tabs/lib/menu/MenuTarget.d.ts +21 -0
  390. package/dist/es6/tabs/lib/menu/MenuTarget.d.ts.map +1 -0
  391. package/dist/es6/tabs/lib/menu/MenuTarget.js +51 -0
  392. package/dist/es6/tabs/lib/menu/index.d.ts +8 -0
  393. package/dist/es6/tabs/lib/menu/index.d.ts.map +1 -0
  394. package/dist/es6/tabs/lib/menu/index.js +7 -0
  395. package/dist/es6/tabs/lib/menu/useMenuModel.d.ts +35 -0
  396. package/dist/es6/tabs/lib/menu/useMenuModel.d.ts.map +1 -0
  397. package/dist/es6/tabs/lib/menu/useMenuModel.js +31 -0
  398. package/dist/es6/tabs/lib/overflow/index.d.ts +5 -0
  399. package/dist/es6/tabs/lib/overflow/index.d.ts.map +1 -0
  400. package/dist/es6/tabs/lib/overflow/index.js +4 -0
  401. package/dist/es6/tabs/lib/overflow/useOverflowMeasureContainer.d.ts +8 -0
  402. package/dist/es6/tabs/lib/overflow/useOverflowMeasureContainer.d.ts.map +1 -0
  403. package/dist/es6/tabs/lib/overflow/useOverflowMeasureContainer.js +13 -0
  404. package/dist/es6/tabs/lib/overflow/useOverflowMeasureItem.d.ts +10 -0
  405. package/dist/es6/tabs/lib/overflow/useOverflowMeasureItem.d.ts.map +1 -0
  406. package/dist/es6/tabs/lib/overflow/useOverflowMeasureItem.js +30 -0
  407. package/dist/es6/tabs/lib/overflow/useOverflowModel.d.ts +69 -0
  408. package/dist/es6/tabs/lib/overflow/useOverflowModel.d.ts.map +1 -0
  409. package/dist/es6/tabs/lib/overflow/useOverflowModel.js +111 -0
  410. package/dist/es6/tabs/lib/overflow/useOverflowTarget.d.ts +11 -0
  411. package/dist/es6/tabs/lib/overflow/useOverflowTarget.d.ts.map +1 -0
  412. package/dist/es6/tabs/lib/overflow/useOverflowTarget.js +30 -0
  413. package/dist/es6/tabs/lib/selection/index.d.ts +4 -0
  414. package/dist/es6/tabs/lib/selection/index.d.ts.map +1 -0
  415. package/dist/es6/tabs/lib/selection/index.js +3 -0
  416. package/dist/es6/tabs/lib/selection/useResetCursorOnBlur.d.ts +13 -0
  417. package/dist/es6/tabs/lib/selection/useResetCursorOnBlur.d.ts.map +1 -0
  418. package/dist/es6/tabs/lib/{hooks.js → selection/useResetCursorOnBlur.js} +8 -9
  419. package/dist/es6/tabs/lib/selection/useSelectionItem.d.ts +8 -0
  420. package/dist/es6/tabs/lib/selection/useSelectionItem.d.ts.map +1 -0
  421. package/dist/es6/tabs/lib/selection/useSelectionItem.js +14 -0
  422. package/dist/es6/tabs/lib/selection/useSelectionModel.d.ts +62 -0
  423. package/dist/es6/tabs/lib/selection/useSelectionModel.d.ts.map +1 -0
  424. package/dist/es6/tabs/lib/selection/useSelectionModel.js +75 -0
  425. package/dist/es6/tabs/lib/useTabsModel.d.ts +39 -38
  426. package/dist/es6/tabs/lib/useTabsModel.d.ts.map +1 -1
  427. package/dist/es6/tabs/lib/useTabsModel.js +50 -37
  428. package/dist/es6/tokens/index.d.ts +3 -20
  429. package/dist/es6/tokens/index.d.ts.map +1 -1
  430. package/dist/es6/tokens/index.js +1 -1
  431. package/dist/es6/tokens/lib/depth.d.ts +109 -3
  432. package/dist/es6/tokens/lib/depth.d.ts.map +1 -1
  433. package/dist/es6/tokens/lib/depth.js +40 -2
  434. package/dist/es6/tooltip/lib/OverflowTooltip.d.ts +10 -0
  435. package/dist/es6/tooltip/lib/OverflowTooltip.d.ts.map +1 -1
  436. package/dist/es6/tooltip/lib/OverflowTooltip.js +16 -9
  437. package/dist/es6/tooltip/lib/useTooltip.d.ts +4 -4
  438. package/dist/es6/tooltip/lib/useTooltip.d.ts.map +1 -1
  439. package/package.json +7 -6
  440. package/page-header/README.md +11 -6
  441. package/page-header/index.ts +3 -3
  442. package/page-header/lib/PageHeader.tsx +28 -3
  443. package/pagination/lib/Pagination/GoTo/Label.tsx +3 -0
  444. package/pagination/lib/Pagination/types.ts +44 -5
  445. package/pagination/lib/Pagination/usePaginationModel.ts +19 -0
  446. package/popup/lib/PopupCard.tsx +3 -2
  447. package/tabs/README.md +5 -133
  448. package/tabs/index.ts +6 -0
  449. package/tabs/lib/Tabs.tsx +34 -9
  450. package/tabs/lib/TabsItem.tsx +250 -0
  451. package/tabs/lib/TabsList.tsx +67 -0
  452. package/tabs/lib/TabsMenuPopper.tsx +27 -0
  453. package/tabs/lib/TabsOverflowButton.tsx +58 -0
  454. package/tabs/lib/{TabPanel.tsx → TabsPanel.tsx} +33 -31
  455. package/tabs/lib/TabsPanels.tsx +28 -0
  456. package/tabs/lib/cursor/index.ts +1 -1
  457. package/tabs/lib/cursor/useCursorModel.tsx +78 -65
  458. package/tabs/lib/cursor/useRovingFocus.tsx +94 -0
  459. package/tabs/lib/list/index.ts +2 -1
  460. package/tabs/lib/list/renderItem.tsx +19 -0
  461. package/tabs/lib/list/useListModel.tsx +48 -23
  462. package/tabs/lib/list/useListRegisterItem.tsx +53 -0
  463. package/tabs/lib/menu/Menu.tsx +95 -0
  464. package/tabs/lib/menu/MenuCard.tsx +96 -0
  465. package/tabs/lib/menu/MenuItem.tsx +195 -0
  466. package/tabs/lib/menu/MenuList.tsx +59 -0
  467. package/tabs/lib/menu/MenuPopper.tsx +31 -0
  468. package/tabs/lib/menu/MenuTarget.tsx +52 -0
  469. package/tabs/lib/menu/index.ts +8 -0
  470. package/tabs/lib/menu/useMenuModel.tsx +67 -0
  471. package/tabs/lib/overflow/index.ts +4 -0
  472. package/tabs/lib/overflow/spec/tsconfig.json +3 -0
  473. package/tabs/lib/overflow/spec/useOverflowModel.spec.tsx +46 -0
  474. package/tabs/lib/overflow/useOverflowMeasureContainer.ts +20 -0
  475. package/tabs/lib/overflow/useOverflowMeasureItem.tsx +40 -0
  476. package/tabs/lib/overflow/useOverflowModel.tsx +185 -0
  477. package/tabs/lib/overflow/useOverflowTarget.tsx +42 -0
  478. package/tabs/lib/selection/index.ts +3 -0
  479. package/tabs/lib/selection/useResetCursorOnBlur.tsx +29 -0
  480. package/tabs/lib/selection/useSelectionItem.tsx +26 -0
  481. package/tabs/lib/selection/useSelectionModel.tsx +133 -0
  482. package/tabs/lib/useTabsModel.tsx +93 -78
  483. package/tokens/README.md +5 -12
  484. package/tokens/index.ts +2 -2
  485. package/tokens/lib/depth.ts +125 -3
  486. package/tooltip/lib/OverflowTooltip.tsx +23 -16
  487. package/tooltip/lib/useTooltip.tsx +5 -5
  488. package/ts3.5/dist/commonjs/button/lib/PrimaryButton.d.ts +80 -6
  489. package/ts3.5/dist/commonjs/button/lib/SecondaryButton.d.ts +8 -5
  490. package/ts3.5/dist/commonjs/button/lib/TertiaryButton.d.ts +8 -4
  491. package/ts3.5/dist/commonjs/button/lib/parts/ButtonContainer.d.ts +5 -3
  492. package/ts3.5/dist/commonjs/button/lib/parts/ButtonLabel.d.ts +1 -1
  493. package/ts3.5/dist/commonjs/button/lib/parts/ButtonLabelIcon.d.ts +7 -4
  494. package/ts3.5/dist/commonjs/button/lib/types.d.ts +9 -0
  495. package/ts3.5/dist/commonjs/common/index.d.ts +1 -0
  496. package/ts3.5/dist/commonjs/common/lib/EllipsisText.d.ts +5 -0
  497. package/ts3.5/dist/commonjs/common/lib/styles/accessibleHide.d.ts +2 -2
  498. package/ts3.5/dist/commonjs/common/lib/theming/breakpoints.d.ts +287 -6
  499. package/ts3.5/dist/commonjs/common/lib/theming/types.d.ts +191 -1
  500. package/ts3.5/dist/commonjs/common/lib/utils/components.d.ts +19 -9
  501. package/ts3.5/dist/commonjs/common/lib/utils/index.d.ts +1 -0
  502. package/ts3.5/dist/commonjs/common/lib/utils/useConstant.d.ts +9 -0
  503. package/ts3.5/dist/commonjs/common/lib/utils/useResizeObserver.d.ts +3 -0
  504. package/ts3.5/dist/commonjs/cookie-banner/index.d.ts +3 -3
  505. package/ts3.5/dist/commonjs/cookie-banner/lib/CookieBanner.d.ts +19 -2
  506. package/ts3.5/dist/commonjs/dialog/lib/hooks/useDialogCard.d.ts +4 -16
  507. package/ts3.5/dist/commonjs/dialog/lib/hooks/useDialogPopper.d.ts +5 -2
  508. package/ts3.5/dist/commonjs/modal/lib/ModalOverlay.d.ts +4 -2
  509. package/ts3.5/dist/commonjs/modal/lib/hooks/useModalCard.d.ts +4 -16
  510. package/ts3.5/dist/commonjs/modal/lib/hooks/useModalHeading.d.ts +5 -17
  511. package/ts3.5/dist/commonjs/page-header/index.d.ts +3 -3
  512. package/ts3.5/dist/commonjs/page-header/lib/PageHeader.d.ts +19 -2
  513. package/ts3.5/dist/commonjs/pagination/lib/Pagination/GoTo/Label.d.ts +3 -0
  514. package/ts3.5/dist/commonjs/pagination/lib/Pagination/PageList.d.ts +1 -1
  515. package/ts3.5/dist/commonjs/pagination/lib/Pagination/Pagination.d.ts +5 -5
  516. package/ts3.5/dist/commonjs/pagination/lib/Pagination/common/List.d.ts +1 -1
  517. package/ts3.5/dist/commonjs/pagination/lib/Pagination/common/utils/getValidChildren.d.ts +1 -1
  518. package/ts3.5/dist/commonjs/pagination/lib/Pagination/common/utils/space.d.ts +28 -28
  519. package/ts3.5/dist/commonjs/pagination/lib/Pagination/types.d.ts +39 -0
  520. package/ts3.5/dist/commonjs/pagination/lib/Pagination/usePaginationModel.d.ts +19 -0
  521. package/ts3.5/dist/commonjs/popup/lib/hooks/usePopupCard.d.ts +5 -2
  522. package/ts3.5/dist/commonjs/popup/lib/hooks/usePopupCloseButton.d.ts +4 -2
  523. package/ts3.5/dist/commonjs/popup/lib/hooks/usePopupHeading.d.ts +5 -2
  524. package/ts3.5/dist/commonjs/popup/lib/hooks/usePopupPopper.d.ts +4 -2
  525. package/ts3.5/dist/commonjs/popup/lib/hooks/usePopupTarget.d.ts +4 -2
  526. package/ts3.5/dist/commonjs/tabs/index.d.ts +5 -0
  527. package/ts3.5/dist/commonjs/tabs/lib/Tabs.d.ts +35 -7
  528. package/ts3.5/dist/commonjs/tabs/lib/TabsItem.d.ts +107 -0
  529. package/ts3.5/dist/commonjs/tabs/lib/TabsList.d.ts +43 -0
  530. package/ts3.5/dist/commonjs/tabs/lib/TabsMenuPopper.d.ts +21 -0
  531. package/ts3.5/dist/commonjs/tabs/lib/TabsOverflowButton.d.ts +31 -0
  532. package/{dist/es6/tabs/lib/TabPanel.d.ts → ts3.5/dist/commonjs/tabs/lib/TabsPanel.d.ts} +39 -29
  533. package/ts3.5/dist/{es6/tabs/lib/TabList.d.ts → commonjs/tabs/lib/TabsPanels.d.ts} +5 -5
  534. package/ts3.5/dist/commonjs/tabs/lib/cursor/index.d.ts +1 -1
  535. package/ts3.5/dist/commonjs/tabs/lib/cursor/useCursorModel.d.ts +23 -13
  536. package/ts3.5/dist/commonjs/tabs/lib/cursor/useRovingFocus.d.ts +37 -0
  537. package/ts3.5/dist/commonjs/tabs/lib/list/index.d.ts +2 -1
  538. package/ts3.5/dist/commonjs/tabs/lib/list/renderItem.d.ts +4 -0
  539. package/ts3.5/dist/commonjs/tabs/lib/list/useListModel.d.ts +25 -13
  540. package/ts3.5/dist/commonjs/tabs/lib/list/useListRegisterItem.d.ts +14 -0
  541. package/ts3.5/dist/commonjs/tabs/lib/menu/Menu.d.ts +80 -0
  542. package/ts3.5/dist/commonjs/tabs/lib/menu/MenuCard.d.ts +17 -0
  543. package/ts3.5/dist/commonjs/tabs/lib/menu/MenuItem.d.ts +62 -0
  544. package/ts3.5/dist/commonjs/tabs/lib/menu/MenuList.d.ts +23 -0
  545. package/ts3.5/dist/commonjs/tabs/lib/menu/MenuPopper.d.ts +21 -0
  546. package/ts3.5/dist/commonjs/tabs/lib/menu/MenuTarget.d.ts +21 -0
  547. package/ts3.5/dist/commonjs/tabs/lib/menu/index.d.ts +8 -0
  548. package/ts3.5/dist/commonjs/tabs/lib/menu/useMenuModel.d.ts +35 -0
  549. package/ts3.5/dist/commonjs/tabs/lib/overflow/index.d.ts +5 -0
  550. package/ts3.5/dist/commonjs/tabs/lib/overflow/useOverflowMeasureContainer.d.ts +8 -0
  551. package/ts3.5/dist/commonjs/tabs/lib/overflow/useOverflowMeasureItem.d.ts +10 -0
  552. package/ts3.5/dist/commonjs/tabs/lib/overflow/useOverflowModel.d.ts +69 -0
  553. package/ts3.5/dist/commonjs/tabs/lib/overflow/useOverflowTarget.d.ts +11 -0
  554. package/ts3.5/dist/commonjs/tabs/lib/selection/index.d.ts +4 -0
  555. package/ts3.5/dist/commonjs/tabs/lib/selection/useResetCursorOnBlur.d.ts +13 -0
  556. package/ts3.5/dist/commonjs/tabs/lib/selection/useSelectionItem.d.ts +8 -0
  557. package/ts3.5/dist/commonjs/tabs/lib/selection/useSelectionModel.d.ts +62 -0
  558. package/ts3.5/dist/commonjs/tabs/lib/useTabsModel.d.ts +39 -38
  559. package/ts3.5/dist/commonjs/tokens/index.d.ts +3 -20
  560. package/ts3.5/dist/commonjs/tokens/lib/depth.d.ts +109 -3
  561. package/ts3.5/dist/commonjs/tooltip/lib/OverflowTooltip.d.ts +10 -0
  562. package/ts3.5/dist/commonjs/tooltip/lib/useTooltip.d.ts +4 -4
  563. package/ts3.5/dist/es6/button/lib/PrimaryButton.d.ts +80 -6
  564. package/ts3.5/dist/es6/button/lib/SecondaryButton.d.ts +8 -5
  565. package/ts3.5/dist/es6/button/lib/TertiaryButton.d.ts +8 -4
  566. package/ts3.5/dist/es6/button/lib/parts/ButtonContainer.d.ts +5 -3
  567. package/ts3.5/dist/es6/button/lib/parts/ButtonLabel.d.ts +1 -1
  568. package/ts3.5/dist/es6/button/lib/parts/ButtonLabelIcon.d.ts +7 -4
  569. package/ts3.5/dist/es6/button/lib/types.d.ts +9 -0
  570. package/ts3.5/dist/es6/common/index.d.ts +1 -0
  571. package/ts3.5/dist/es6/common/lib/EllipsisText.d.ts +5 -0
  572. package/ts3.5/dist/es6/common/lib/styles/accessibleHide.d.ts +2 -2
  573. package/ts3.5/dist/es6/common/lib/theming/breakpoints.d.ts +287 -6
  574. package/ts3.5/dist/es6/common/lib/theming/types.d.ts +191 -1
  575. package/ts3.5/dist/es6/common/lib/utils/components.d.ts +19 -9
  576. package/ts3.5/dist/es6/common/lib/utils/index.d.ts +1 -0
  577. package/ts3.5/dist/es6/common/lib/utils/useConstant.d.ts +9 -0
  578. package/ts3.5/dist/es6/common/lib/utils/useResizeObserver.d.ts +3 -0
  579. package/ts3.5/dist/es6/cookie-banner/index.d.ts +3 -3
  580. package/ts3.5/dist/es6/cookie-banner/lib/CookieBanner.d.ts +19 -2
  581. package/ts3.5/dist/es6/dialog/lib/hooks/useDialogCard.d.ts +4 -16
  582. package/ts3.5/dist/es6/dialog/lib/hooks/useDialogPopper.d.ts +5 -2
  583. package/ts3.5/dist/es6/modal/lib/ModalOverlay.d.ts +4 -2
  584. package/ts3.5/dist/es6/modal/lib/hooks/useModalCard.d.ts +4 -16
  585. package/ts3.5/dist/es6/modal/lib/hooks/useModalHeading.d.ts +5 -17
  586. package/ts3.5/dist/es6/page-header/index.d.ts +3 -3
  587. package/ts3.5/dist/es6/page-header/lib/PageHeader.d.ts +19 -2
  588. package/ts3.5/dist/es6/pagination/lib/Pagination/GoTo/Label.d.ts +3 -0
  589. package/ts3.5/dist/es6/pagination/lib/Pagination/PageList.d.ts +1 -1
  590. package/ts3.5/dist/es6/pagination/lib/Pagination/Pagination.d.ts +5 -5
  591. package/ts3.5/dist/es6/pagination/lib/Pagination/common/List.d.ts +1 -1
  592. package/ts3.5/dist/es6/pagination/lib/Pagination/common/utils/getValidChildren.d.ts +1 -1
  593. package/ts3.5/dist/es6/pagination/lib/Pagination/common/utils/space.d.ts +28 -28
  594. package/ts3.5/dist/es6/pagination/lib/Pagination/types.d.ts +39 -0
  595. package/ts3.5/dist/es6/pagination/lib/Pagination/usePaginationModel.d.ts +19 -0
  596. package/ts3.5/dist/es6/popup/lib/hooks/usePopupCard.d.ts +5 -2
  597. package/ts3.5/dist/es6/popup/lib/hooks/usePopupCloseButton.d.ts +4 -2
  598. package/ts3.5/dist/es6/popup/lib/hooks/usePopupHeading.d.ts +5 -2
  599. package/ts3.5/dist/es6/popup/lib/hooks/usePopupPopper.d.ts +4 -2
  600. package/ts3.5/dist/es6/popup/lib/hooks/usePopupTarget.d.ts +4 -2
  601. package/ts3.5/dist/es6/tabs/index.d.ts +5 -0
  602. package/ts3.5/dist/es6/tabs/lib/Tabs.d.ts +35 -7
  603. package/ts3.5/dist/es6/tabs/lib/TabsItem.d.ts +107 -0
  604. package/ts3.5/dist/es6/tabs/lib/TabsList.d.ts +43 -0
  605. package/ts3.5/dist/es6/tabs/lib/TabsMenuPopper.d.ts +21 -0
  606. package/ts3.5/dist/es6/tabs/lib/TabsOverflowButton.d.ts +31 -0
  607. package/ts3.5/dist/es6/tabs/lib/{TabPanel.d.ts → TabsPanel.d.ts} +15 -5
  608. package/{dist/commonjs/tabs/lib/TabList.d.ts → ts3.5/dist/es6/tabs/lib/TabsPanels.d.ts} +15 -15
  609. package/ts3.5/dist/es6/tabs/lib/cursor/index.d.ts +1 -1
  610. package/ts3.5/dist/es6/tabs/lib/cursor/useCursorModel.d.ts +23 -13
  611. package/ts3.5/dist/es6/tabs/lib/cursor/useRovingFocus.d.ts +37 -0
  612. package/ts3.5/dist/es6/tabs/lib/list/index.d.ts +2 -1
  613. package/ts3.5/dist/es6/tabs/lib/list/renderItem.d.ts +4 -0
  614. package/ts3.5/dist/es6/tabs/lib/list/useListModel.d.ts +25 -13
  615. package/ts3.5/dist/es6/tabs/lib/list/useListRegisterItem.d.ts +14 -0
  616. package/ts3.5/dist/es6/tabs/lib/menu/Menu.d.ts +80 -0
  617. package/ts3.5/dist/es6/tabs/lib/menu/MenuCard.d.ts +17 -0
  618. package/ts3.5/dist/es6/tabs/lib/menu/MenuItem.d.ts +62 -0
  619. package/ts3.5/dist/es6/tabs/lib/menu/MenuList.d.ts +23 -0
  620. package/ts3.5/dist/es6/tabs/lib/menu/MenuPopper.d.ts +21 -0
  621. package/ts3.5/dist/es6/tabs/lib/menu/MenuTarget.d.ts +21 -0
  622. package/ts3.5/dist/es6/tabs/lib/menu/index.d.ts +8 -0
  623. package/ts3.5/dist/es6/tabs/lib/menu/useMenuModel.d.ts +35 -0
  624. package/ts3.5/dist/es6/tabs/lib/overflow/index.d.ts +5 -0
  625. package/ts3.5/dist/es6/tabs/lib/overflow/useOverflowMeasureContainer.d.ts +8 -0
  626. package/ts3.5/dist/es6/tabs/lib/overflow/useOverflowMeasureItem.d.ts +10 -0
  627. package/ts3.5/dist/es6/tabs/lib/overflow/useOverflowModel.d.ts +69 -0
  628. package/ts3.5/dist/es6/tabs/lib/overflow/useOverflowTarget.d.ts +11 -0
  629. package/ts3.5/dist/es6/tabs/lib/selection/index.d.ts +4 -0
  630. package/ts3.5/dist/es6/tabs/lib/selection/useResetCursorOnBlur.d.ts +13 -0
  631. package/ts3.5/dist/es6/tabs/lib/selection/useSelectionItem.d.ts +8 -0
  632. package/ts3.5/dist/es6/tabs/lib/selection/useSelectionModel.d.ts +62 -0
  633. package/ts3.5/dist/es6/tabs/lib/useTabsModel.d.ts +39 -38
  634. package/ts3.5/dist/es6/tokens/index.d.ts +3 -20
  635. package/ts3.5/dist/es6/tokens/lib/depth.d.ts +109 -3
  636. package/ts3.5/dist/es6/tooltip/lib/OverflowTooltip.d.ts +10 -0
  637. package/ts3.5/dist/es6/tooltip/lib/useTooltip.d.ts +4 -4
  638. package/dist/commonjs/tabs/lib/Tab.d.ts +0 -49
  639. package/dist/commonjs/tabs/lib/Tab.d.ts.map +0 -1
  640. package/dist/commonjs/tabs/lib/Tab.js +0 -101
  641. package/dist/commonjs/tabs/lib/TabList.d.ts.map +0 -1
  642. package/dist/commonjs/tabs/lib/TabPanel.d.ts.map +0 -1
  643. package/dist/commonjs/tabs/lib/TabPanel.js +0 -56
  644. package/dist/commonjs/tabs/lib/cursor/hooks.d.ts +0 -39
  645. package/dist/commonjs/tabs/lib/cursor/hooks.d.ts.map +0 -1
  646. package/dist/commonjs/tabs/lib/hooks.d.ts +0 -10
  647. package/dist/commonjs/tabs/lib/hooks.d.ts.map +0 -1
  648. package/dist/commonjs/tabs/lib/list/hooks.d.ts +0 -11
  649. package/dist/commonjs/tabs/lib/list/hooks.d.ts.map +0 -1
  650. package/dist/commonjs/tabs/lib/list/hooks.js +0 -39
  651. package/dist/es6/tabs/lib/Tab.d.ts +0 -49
  652. package/dist/es6/tabs/lib/Tab.d.ts.map +0 -1
  653. package/dist/es6/tabs/lib/Tab.js +0 -92
  654. package/dist/es6/tabs/lib/TabList.d.ts.map +0 -1
  655. package/dist/es6/tabs/lib/TabPanel.d.ts.map +0 -1
  656. package/dist/es6/tabs/lib/TabPanel.js +0 -51
  657. package/dist/es6/tabs/lib/cursor/hooks.d.ts +0 -39
  658. package/dist/es6/tabs/lib/cursor/hooks.d.ts.map +0 -1
  659. package/dist/es6/tabs/lib/cursor/hooks.js +0 -108
  660. package/dist/es6/tabs/lib/hooks.d.ts +0 -10
  661. package/dist/es6/tabs/lib/hooks.d.ts.map +0 -1
  662. package/dist/es6/tabs/lib/list/hooks.d.ts +0 -11
  663. package/dist/es6/tabs/lib/list/hooks.d.ts.map +0 -1
  664. package/dist/es6/tabs/lib/list/hooks.js +0 -34
  665. package/tabs/lib/Tab.tsx +0 -176
  666. package/tabs/lib/TabList.tsx +0 -59
  667. package/tabs/lib/cursor/hooks.tsx +0 -122
  668. package/tabs/lib/hooks.tsx +0 -31
  669. package/tabs/lib/list/hooks.tsx +0 -45
  670. package/ts3.5/dist/commonjs/tabs/lib/Tab.d.ts +0 -49
  671. package/ts3.5/dist/commonjs/tabs/lib/cursor/hooks.d.ts +0 -39
  672. package/ts3.5/dist/commonjs/tabs/lib/hooks.d.ts +0 -10
  673. package/ts3.5/dist/commonjs/tabs/lib/list/hooks.d.ts +0 -11
  674. package/ts3.5/dist/es6/tabs/lib/Tab.d.ts +0 -49
  675. package/ts3.5/dist/es6/tabs/lib/cursor/hooks.d.ts +0 -39
  676. package/ts3.5/dist/es6/tabs/lib/hooks.d.ts +0 -10
  677. package/ts3.5/dist/es6/tabs/lib/list/hooks.d.ts +0 -11
@@ -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;
@@ -0,0 +1,52 @@
1
+ import * as React from 'react';
2
+
3
+ import {
4
+ composeHooks,
5
+ createComponent,
6
+ createHook,
7
+ useModelContext,
8
+ } from '@workday/canvas-kit-react/common';
9
+ import {SecondaryButton} from '@workday/canvas-kit-react/button';
10
+ import {usePopupTarget} from '@workday/canvas-kit-react/popup';
11
+
12
+ import {MenuModel} from './useMenuModel';
13
+ import {MenuModelContext} from './Menu';
14
+
15
+ export interface MenuTargetProps<T = unknown> {
16
+ /**
17
+ * Optionally pass a model directly to this component. Default is to implicitly use the same
18
+ * model as the container component which uses React context. Only use this for advanced use-cases
19
+ */
20
+ model?: MenuModel<T>;
21
+ children?: React.ReactNode;
22
+ }
23
+
24
+ export const MenuTarget = createComponent(SecondaryButton)({
25
+ displayName: 'Menu.Target',
26
+ Component: ({children, model, ...elemProps}: MenuTargetProps, ref, Element) => {
27
+ const localModel = useModelContext(MenuModelContext, model);
28
+
29
+ const props = useMenuTarget(localModel, elemProps, ref);
30
+
31
+ return <Element {...props}>{children}</Element>;
32
+ },
33
+ });
34
+
35
+ export const useMenuTarget = composeHooks(
36
+ createHook((model: MenuModel) => {
37
+ return {
38
+ id: model.state.id,
39
+ onKeyDown(event: React.KeyboardEvent) {
40
+ // eslint-disable-next-line default-case
41
+ switch (event.key) {
42
+ case 'Down':
43
+ case 'ArrowDown': // IE11
44
+ case 'Up':
45
+ case 'ArrowUp': // IE11
46
+ model.events.show({event});
47
+ }
48
+ },
49
+ };
50
+ }),
51
+ usePopupTarget
52
+ );
@@ -0,0 +1,8 @@
1
+ export * from './useMenuModel';
2
+ export {Menu} from './Menu';
3
+
4
+ export {useMenuCard} from './MenuCard';
5
+ export {useMenuItem} from './MenuItem';
6
+ export {useMenuList} from './MenuList';
7
+ export {useMenuPopper} from './MenuPopper';
8
+ export {useMenuTarget} from './MenuTarget';
@@ -0,0 +1,67 @@
1
+ import {createEventMap, Model, ToModelConfig, useEventMap} from '@workday/canvas-kit-react/common';
2
+ import {
3
+ BasePopupModelConfig,
4
+ popupEventMap,
5
+ PopupEvents,
6
+ PopupModelConfig,
7
+ PopupState,
8
+ useAlwaysCloseOnOutsideClick,
9
+ useCloseOnEscape,
10
+ useFocusRedirect,
11
+ useInitialFocus,
12
+ usePopupModel,
13
+ useReturnFocus,
14
+ } from '@workday/canvas-kit-react/popup';
15
+ import {ListModel} from '../list';
16
+ import {
17
+ SelectionState,
18
+ SelectionEvents,
19
+ selectionEventMap,
20
+ SelectionModelConfig,
21
+ useSelectionModel,
22
+ BaseSelectionModelConfig,
23
+ } from '../selection';
24
+
25
+ export type MenuState<T = unknown> = SelectionState<T> & PopupState & {};
26
+
27
+ export type MenuEvents<T = unknown> = SelectionEvents<T> & PopupEvents & {};
28
+
29
+ export interface MenuModel<T = unknown> extends Model<MenuState<T>, MenuEvents<T>> {
30
+ getId: ListModel<T>['getId'];
31
+ }
32
+
33
+ export const menuEventMap = createEventMap<MenuEvents>()({
34
+ guards: {
35
+ ...selectionEventMap.guards,
36
+ ...popupEventMap.guards,
37
+ },
38
+ callbacks: {
39
+ ...selectionEventMap.callbacks,
40
+ ...popupEventMap.callbacks,
41
+ },
42
+ });
43
+
44
+ export type BaseMenuModelConfig<T> = BaseSelectionModelConfig<T> & BasePopupModelConfig & {};
45
+
46
+ export type MenuModelConfig<T> = BaseMenuModelConfig<T> &
47
+ Partial<ToModelConfig<MenuState<T>, MenuEvents<T>, typeof menuEventMap>>;
48
+
49
+ export const useMenuModel = <T extends unknown>(config: MenuModelConfig<T> = {}): MenuModel<T> => {
50
+ const popup = usePopupModel(config as PopupModelConfig);
51
+ const selection = useSelectionModel(config as SelectionModelConfig<T>);
52
+
53
+ useAlwaysCloseOnOutsideClick(popup);
54
+ useCloseOnEscape(popup);
55
+ useInitialFocus(popup);
56
+ useReturnFocus(popup);
57
+ useFocusRedirect(popup);
58
+
59
+ const state = {...selection.state, ...popup.state};
60
+
61
+ const events = useEventMap(menuEventMap, state, config, {
62
+ ...selection.events,
63
+ ...popup.events,
64
+ } as MenuEvents<T>);
65
+
66
+ return {state, events, getId: selection.getId};
67
+ };
@@ -0,0 +1,4 @@
1
+ export * from './useOverflowModel';
2
+ export * from './useOverflowMeasureItem';
3
+ export * from './useOverflowMeasureContainer';
4
+ export * from './useOverflowTarget';
@@ -0,0 +1,3 @@
1
+ {
2
+ "extends": "../../../../../tsconfig.spec.json"
3
+ }
@@ -0,0 +1,46 @@
1
+ import {getHiddenIds} from '../useOverflowModel';
2
+
3
+ describe('useOverflowModel', () => {
4
+ describe('getHiddenIds', () => {
5
+ const itemWidthCache = {
6
+ first: 100,
7
+ second: 100,
8
+ third: 100,
9
+ fourth: 100,
10
+ };
11
+ const overflowTargetWidth = 100;
12
+
13
+ const io = [
14
+ {
15
+ containerWidth: 100,
16
+ selected: 'first',
17
+ hiddenIds: ['first', 'second', 'third', 'fourth'],
18
+ },
19
+ {
20
+ containerWidth: 199,
21
+ selected: 'first',
22
+ hiddenIds: ['first', 'second', 'third', 'fourth'],
23
+ },
24
+ {
25
+ containerWidth: 200,
26
+ selected: 'first',
27
+ hiddenIds: ['second', 'third', 'fourth'],
28
+ },
29
+ {containerWidth: 400, selected: 'first', hiddenIds: []},
30
+ {containerWidth: 399, selected: 'first', hiddenIds: ['third', 'fourth']},
31
+ {
32
+ containerWidth: 200,
33
+ selected: 'second',
34
+ hiddenIds: ['first', 'third', 'fourth'],
35
+ },
36
+ ].forEach(({containerWidth, hiddenIds, selected}) => {
37
+ it(`when containerWidth is ${containerWidth} and selected is '${selected}' should contain hiddenIds [${hiddenIds.join(
38
+ ', '
39
+ )}] `, () => {
40
+ expect(
41
+ getHiddenIds(containerWidth, overflowTargetWidth, itemWidthCache, [selected])
42
+ ).toEqual(hiddenIds);
43
+ });
44
+ });
45
+ });
46
+ });
@@ -0,0 +1,20 @@
1
+ import * as React from 'react';
2
+
3
+ import {createHook, useForkRef, useResizeObserver} from '@workday/canvas-kit-react/common';
4
+
5
+ import {OverflowModel} from './useOverflowModel';
6
+
7
+ export const useOverflowMeasureContainer = createHook(
8
+ (model: OverflowModel, ref?: React.Ref<HTMLElement>) => {
9
+ const localRef = React.useRef(null);
10
+ const {ref: resizeRef} = useResizeObserver({
11
+ ref: localRef,
12
+ onResize: model.events.setContainerWidth,
13
+ });
14
+ const elementRef = useForkRef(ref, resizeRef);
15
+
16
+ return {
17
+ ref: elementRef,
18
+ };
19
+ }
20
+ );
@@ -0,0 +1,40 @@
1
+ import {createHook, useLocalRef, useMountLayout} from '@workday/canvas-kit-react/common';
2
+
3
+ import {OverflowModel} from './useOverflowModel';
4
+
5
+ const hiddenStyles = {
6
+ position: 'absolute',
7
+ left: -99999,
8
+ } as const;
9
+
10
+ export const useOverflowMeasureItem = createHook(
11
+ (model: OverflowModel, ref?: React.Ref<HTMLElement>, elemProps: {name?: string} = {}) => {
12
+ const {elementRef, localRef} = useLocalRef(ref);
13
+ const name = elemProps.name || '';
14
+
15
+ useMountLayout(() => {
16
+ if (localRef.current) {
17
+ const styles = getComputedStyle(localRef.current);
18
+ model.events.addItemWidth({
19
+ id: name,
20
+ width:
21
+ localRef.current.offsetWidth +
22
+ parseFloat(styles.marginLeft) +
23
+ parseFloat(styles.marginRight),
24
+ });
25
+ }
26
+
27
+ return () => {
28
+ model.events.removeItemWidth({id: name});
29
+ };
30
+ });
31
+
32
+ const hidden = model.state.hiddenIds.includes(name);
33
+
34
+ return {
35
+ ref: elementRef,
36
+ 'aria-hidden': hidden || undefined,
37
+ style: hidden ? hiddenStyles : {},
38
+ };
39
+ }
40
+ );