@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
@@ -9,43 +9,278 @@ export enum BreakpointKey {
9
9
  export type BreakpointFnParam = BreakpointKey | keyof typeof BreakpointKey;
10
10
 
11
11
  export type CanvasBreakpoints = {
12
- zero: number;
13
- s: number;
14
- m: number;
15
- l: number;
16
- xl: number;
12
+ /**
13
+ * ### Zero Breakpoint
14
+ *
15
+ * This breakpoint is useful when you need to set a media query `min-width` below small.
16
+ *
17
+ * @example
18
+ * ```ts
19
+ * import { useTheme } from '@workday/canvas-kit-react/common';
20
+ * import { space } from '@workday/canvas-kit-react/tokens';
21
+ *
22
+ * const theme = useTheme();
23
+ * const { values } = theme.canvas.breakpoints;
24
+ * const styles = {
25
+ * [`@media (min-width: ${values.zero}px)`]: {
26
+ * padding: space.xxs,
27
+ * },
28
+ * }
29
+ * ```
30
+ */
31
+ zero: 0;
32
+ /**
33
+ * ### Small Breakpoint
34
+ *
35
+ * The small breakpoint provides the `min-width` for mobile devices, such as phones and tablets.
36
+ * This size ranges from a min-width of 320px to a max-width of 767px.
37
+ *
38
+ * @example
39
+ * ```ts
40
+ * import { useTheme } from '@workday/canvas-kit-react/common';
41
+ * import { space } from '@workday/canvas-kit-react/tokens';
42
+ *
43
+ * const theme = useTheme();
44
+ * const { values } = theme.canvas.breakpoints;
45
+ * const styles = {
46
+ * [`@media (min-width: ${values.s}px)`]: {
47
+ * padding: space.xs,
48
+ * },
49
+ * }
50
+ * ```
51
+ */
52
+ s: 320;
53
+ /**
54
+ * ### Medium Breakpoint
55
+ *
56
+ * The medium breakpoint is the min-width for intended for medium screens, such as laptops.
57
+ * This size ranges from a min-width of 768px to a max-width of 1023px.
58
+ *
59
+ * @example
60
+ * ```ts
61
+ * import { useTheme } from '@workday/canvas-kit-react/common';
62
+ * import { space } from '@workday/canvas-kit-react/tokens';
63
+ *
64
+ * const theme = useTheme();
65
+ * const { values } = theme.canvas.breakpoints;
66
+ * const styles = {
67
+ * [`@media (min-width: ${values.m}px)`]: {
68
+ * padding: space.s,
69
+ * },
70
+ * }
71
+ * ```
72
+ */
73
+ m: 768;
74
+ /**
75
+ * ### Large Breakpoint
76
+ *
77
+ * The large breakpoint is the min-width for intended for large screens, such as desktops.
78
+ * This size ranges from a min-width of 1024px to a max-width of 1439px.
79
+ *
80
+ * @example
81
+ * ```ts
82
+ * import { useTheme } from '@workday/canvas-kit-react/common';
83
+ * import { space } from '@workday/canvas-kit-react/tokens';
84
+ *
85
+ * const theme = useTheme();
86
+ * const { values } = theme.canvas.breakpoints;
87
+ * const styles = {
88
+ * [`@media (min-width: ${values.m}px)`]: {
89
+ * padding: space.s,
90
+ * },
91
+ * }
92
+ * ```
93
+ */
94
+ l: 1024;
95
+ /**
96
+ * ### Extra-Large Breakpoint
97
+ *
98
+ * The large breakpoint is the min-width for intended for extra-large screens, such as wide monitors and TVs.
99
+ * This size has a min-width of 1440px and no max-width.
100
+ *
101
+ * @example
102
+ * ```ts
103
+ * import { useTheme } from '@workday/canvas-kit-react/common';
104
+ * import { space } from '@workday/canvas-kit-react/tokens';
105
+ *
106
+ * const theme = useTheme();
107
+ * const { values } = theme.canvas.breakpoints;
108
+ * const styles = {
109
+ * [`@media (min-width: ${values.m}px)`]: {
110
+ * padding: space.s
111
+ * },
112
+ * }
113
+ * ```
114
+ */
115
+ xl: 1440;
17
116
  };
18
117
 
19
118
  export const breakpointKeys = ['zero', 's', 'm', 'l', 'xl'] as const;
20
119
 
120
+ /**
121
+ * ### Theme Breakpoint Values
122
+ *
123
+ * Breakpoints are used by media queries to conditionally apply or modify styles based on the viewport width.
124
+ * This allows the UI to be responsive to various screen sizes. This object provides five breakpoint values
125
+ * that correspond to the min-widths of our standard screen sizes.
126
+ *
127
+ * - `zero`: 0
128
+ * - `s`: 320
129
+ * - `m`: 768
130
+ * - `l`: 1024
131
+ * - `xl`: 1440
132
+ *
133
+ * And these are our standard screen size ranges:
134
+ *
135
+ * - `small` (320px - 767px) Used for mobile-sized screens
136
+ * - `medium` (768px - 1023px) Used for tablet-sized screens
137
+ * - `large` - (1024px - 1439px) Used for laptop and small desktop screens
138
+ * - `extra-large` (≥1440px) Used for very large screens
139
+ *
140
+ * Note: Some applications may only require a subset of screen sizes and not use all breakpoints.
141
+ *
142
+ */
21
143
  export const breakpoints: CanvasBreakpoints = {
22
144
  zero: 0,
23
- s: 600,
24
- m: 960,
25
- l: 1280,
26
- xl: 1920,
145
+ s: 320,
146
+ m: 768,
147
+ l: 1024,
148
+ xl: 1440,
27
149
  };
28
150
 
29
151
  const step = 0.5;
30
152
 
153
+ /**
154
+ * ### Up
155
+ *
156
+ * _Returns a media query above the `min-width` for the range of a given breakpoint_
157
+ *
158
+ * Given a `start` breakpoint key ("zero", "s", "m", "l", "xl"),
159
+ * this function returns a media query (string) using a `min-width`.
160
+ *
161
+ * @example
162
+ * ```ts
163
+ * import { useTheme } from '@workday/canvas-kit-react/common';
164
+ * import { space } from '@workday/canvas-kit-react/tokens';
165
+ *
166
+ * const theme = useTheme();
167
+ * const { up } = theme.canvas.breakpoints;
168
+ * const mediaQuery = up('l'); // Returns '@media (min-width: 1024px)'
169
+ * const styles = {
170
+ * [mediaQuery]: {
171
+ * padding: space.m,
172
+ * }
173
+ * };
174
+ * ```
175
+ */
31
176
  export function up(key: BreakpointFnParam) {
32
177
  const value = typeof breakpoints[key as BreakpointKey] === 'number' ? breakpoints[key] : key;
33
- return `@media (min-width:${value}px)`;
178
+ return `@media (min-width: ${value}px)`;
34
179
  }
35
180
 
36
- export function down(key: BreakpointFnParam) {
37
- const endIndex = breakpointKeys.indexOf(key as BreakpointKey) + 1;
181
+ /**
182
+ * ### Down
183
+ *
184
+ * _Returns a media query below the `max-width` for the range of a given breakpoint_
185
+ *
186
+ * Given an `end` breakpoint key ("zero", "s", "m", "l", "xl"),
187
+ * this function returns a media query (string) using a `max-width`.
188
+ *
189
+ * Note: This function subtracts `0.5px` from the next breakpoint value to prevent collisions.
190
+ * For example, `breakpoints.values.s`, has a `min-width` of `320px`, and the `max-width` is `767.5px`).
191
+ *
192
+ * If the `xl` breakpoint is provided, this function returns a media query with only a `min-width` of `0`,
193
+ * as seen in the second example below.
194
+ *
195
+ * @example
196
+ * ```ts
197
+ * import { useTheme } from '@workday/canvas-kit-react/common';
198
+ * import { space } from '@workday/canvas-kit-react/tokens';
199
+ *
200
+ * const theme = useTheme();
201
+ * const { down } = theme.canvas.breakpoints;
202
+ * const mediaQuery = down('m'); // Returns '@media (max-width: 1023.5px)'
203
+ * const styles = {
204
+ * [mediaQuery]: {
205
+ * padding: space.m,
206
+ * }
207
+ * };
208
+ * ```
209
+ *
210
+ * This example uses the `xl` breakpoint and only adds a `min-width` of `0` to the media query.
211
+ * @example
212
+ * ```ts
213
+ * import { useTheme } from '@workday/canvas-kit-react/common';
214
+ * import { space } from '@workday/canvas-kit-react/tokens';
215
+ *
216
+ * const theme = useTheme();
217
+ * const { down } = theme.canvas.breakpoints;
218
+ * const mediaQuery = down('xl'); // Returns '@media (min-width: 0)'
219
+ * const styles = {
220
+ * [mediaQuery]: {
221
+ * padding: space.m,
222
+ * }
223
+ * };
224
+ * ```
225
+ */
226
+ export function down(endKey: BreakpointFnParam) {
227
+ const endIndex = breakpointKeys.indexOf(endKey as BreakpointKey) + 1;
38
228
  const upperbound = breakpoints[breakpointKeys[endIndex]];
39
-
40
229
  if (endIndex === breakpointKeys.length) {
41
230
  // xl down applies to all sizes
42
231
  return up(BreakpointKey.zero);
43
232
  }
44
233
 
45
234
  const value = typeof upperbound === 'number' && endIndex > 0 ? upperbound : 0;
46
- return `@media (max-width:${value - step}px)`;
235
+ return `@media (max-width: ${value - step}px)`;
47
236
  }
48
237
 
238
+ /**
239
+ * ### Between
240
+ *
241
+ * _Returns a media query between two given breakpoints_
242
+ *
243
+ * Given `start` and `end` breakpoint keys ("zero", "s", "m", "l", "xl"),
244
+ * this function returns a media query (string) using a min-width and max-width.
245
+ *
246
+ * Note: This function subtracts `0.5px` from the next breakpoint value to prevent collisions.
247
+ * For example, `breakpoints.values.s`, has a `min-width` of `320px`, and the `max-width` is `767.5px`).
248
+ *
249
+ * If the `xl` breakpoint is provided, this function returns a media query with only a `min-width`,
250
+ * as seen in the second example below.
251
+ *
252
+ * @example
253
+ * ```ts
254
+ * import { useTheme } from '@workday/canvas-kit-react/common';
255
+ * import { space } from '@workday/canvas-kit-react/tokens';
256
+ *
257
+ * const theme = useTheme();
258
+ * const { between } = theme.canvas.breakpoints;
259
+ * // Returns '@media (min-width: 320px) and (max-width: 1023.5px)'
260
+ * const mediaQuery = between('s', 'm');
261
+ * const styles = {
262
+ * [mediaQuery]: {
263
+ * padding: space.s,
264
+ * }
265
+ * };
266
+ * ```
267
+ *
268
+ * This example uses `xl` as the `end` breakpoint and only adds a min-width to the media query.
269
+ * @example
270
+ * ```ts
271
+ * import { useTheme } from '@workday/canvas-kit-react/common';
272
+ * import { space } from '@workday/canvas-kit-react/tokens';
273
+ *
274
+ * const theme = useTheme();
275
+ * const { between } = theme.canvas.breakpoints;
276
+ * const mediaQuery = between('m', 'xl'); // Returns '@media (min-width: 768px)'
277
+ * const styles = {
278
+ * [mediaQuery]: {
279
+ * padding: space.s,
280
+ * }
281
+ * };
282
+ * ```
283
+ */
49
284
  export function between(start: BreakpointFnParam, end: BreakpointFnParam) {
50
285
  const endIndex = breakpointKeys.indexOf(end) + 1;
51
286
 
@@ -54,11 +289,56 @@ export function between(start: BreakpointFnParam, end: BreakpointFnParam) {
54
289
  }
55
290
 
56
291
  return (
57
- `@media (min-width:${breakpoints[start]}px) and ` +
58
- `(max-width:${breakpoints[breakpointKeys[endIndex]] - step}px)`
292
+ `@media (min-width: ${breakpoints[start]}px) and ` +
293
+ `(max-width: ${breakpoints[breakpointKeys[endIndex]] - step}px)`
59
294
  );
60
295
  }
61
296
 
297
+ /**
298
+ * ### Only
299
+ *
300
+ * _Returns a media query with a `min-width` and `max-width` for a given breakpoint_
301
+ *
302
+ * Given a breakpoint key ("zero", "s", "m", "l", "xl"),
303
+ * this function returns a media query (string) using a `min-width` and `max-width`.
304
+ *
305
+ * Note: This function subtracts `0.5px` from the next breakpoint value to prevent collisions.
306
+ * For example, `breakpoints.values.s`, has a `min-width` of `320px`, and the `max-width` is `767.5px`).
307
+ *
308
+ * If the `xl` breakpoint is provided, this function returns a media query with only a `min-width` of `1440px`,
309
+ * as seen in the second example below.
310
+ *
311
+ * @example
312
+ * ```ts
313
+ * import { useTheme } from '@workday/canvas-kit-react/common';
314
+ * import { space } from '@workday/canvas-kit-react/tokens';
315
+ *
316
+ * const theme = useTheme();
317
+ * const { only } = theme.canvas.breakpoints;
318
+ * const mediaQuery = only('s'); // Returns '@media (min-width: 320px) and (max-width: 767.5px)'
319
+ * const styles = {
320
+ * [mediaQuery]: {
321
+ * padding: space.s,
322
+ * }
323
+ * };
324
+ * ```
325
+ *
326
+ * This example uses the `xl` breakpoint and only adds a `min-width` of `1440px` to the media query.
327
+ * @example
328
+ * ```ts
329
+ * import { useTheme } from '@workday/canvas-kit-react/common';
330
+ * import { space } from '@workday/canvas-kit-react/tokens';
331
+ *
332
+ * const theme = useTheme();
333
+ * const { only } = theme.canvas.breakpoints;
334
+ * const mediaQuery = only('xl'); // Returns '@media (min-width: 1440px)'
335
+ * const styles = {
336
+ * [mediaQuery]: {
337
+ * padding: space.s,
338
+ * }
339
+ * };
340
+ * ```
341
+ */
62
342
  export function only(key: BreakpointFnParam) {
63
343
  return between(key, key);
64
344
  }
@@ -36,12 +36,202 @@ export interface CanvasTheme {
36
36
  success: CanvasThemePalette;
37
37
  neutral: CanvasThemePalette;
38
38
  };
39
+ /**
40
+ * ### Theme Breakpoints
41
+ *
42
+ * Breakpoints are used by media queries to conditionally apply or modify styles based on the viewport width.
43
+ * This allows the UI to be responsive to various screen sizes.
44
+ *
45
+ * This breakpoints object contains `values` and several helper functions: `up`, `down`, `between`, and `only`.
46
+ * You can find more detailed information by inspecting individual values and functions.
47
+ */
39
48
  breakpoints: {
49
+ /**
50
+ * ### Breakpoint Values
51
+ *
52
+ * This object provides five breakpoint values
53
+ * that correspond to the min-widths of our standard screen sizes.
54
+ *
55
+ * - `zero`: 0
56
+ * - `s`: 320
57
+ * - `m`: 768
58
+ * - `l`: 1024
59
+ * - `xl`: 1440
60
+ *
61
+ * And these are our standard screen size ranges:
62
+ *
63
+ * - `small` (320px - 767px) Used for mobile-sized screens
64
+ * - `medium` (768px - 1023px) Used for tablet-sized screens
65
+ * - `large` - (1024px - 1439px) Used for laptop and small desktop screens
66
+ * - `extra-large` (≥1440px) Used for very large screens
67
+ *
68
+ * Note: Some applications may only require a subset of screen sizes and not use all breakpoints.
69
+ *
70
+ */
40
71
  values: CanvasBreakpoints;
72
+ /**
73
+ * ### Up
74
+ *
75
+ * _Returns a media query above the `min-width` for the range of a given breakpoint_
76
+ *
77
+ * Given a `start` breakpoint key ("zero", "s", "m", "l", "xl"),
78
+ * this function returns a media query (string) using a `min-width`.
79
+ *
80
+ * @example
81
+ * ```ts
82
+ * import { useTheme } from '@workday/canvas-kit-react/common';
83
+ * import { space } from '@workday/canvas-kit-react/tokens';
84
+ *
85
+ * const theme = useTheme();
86
+ * const { up } = theme.canvas.breakpoints;
87
+ * const mediaQuery = up('l'); // Returns '@media (min-width: 1024px)'
88
+ * const styles = {
89
+ * [mediaQuery]: {
90
+ * padding: space.m,
91
+ * }
92
+ * };
93
+ * ```
94
+ */
41
95
  up: (key: BreakpointFnParam) => string;
96
+ /**
97
+ * ### Down
98
+ *
99
+ * _Returns a media query below the `max-width` for the range of a given breakpoint_
100
+ *
101
+ * Given an `end` breakpoint key ("zero", "s", "m", "l", "xl"),
102
+ * this function returns a media query (string) using a `max-width`.
103
+ *
104
+ * Note: This function subtracts `0.5px` from the next breakpoint value to prevent collisions.
105
+ * For example, `breakpoints.values.s`, has a `min-width` of `320px`, and the `max-width` is `767.5px`).
106
+ *
107
+ * If the `xl` breakpoint is provided, this function returns a media query with only a `min-width` of `0`,
108
+ * as seen in the second example below.
109
+ *
110
+ * @example
111
+ * ```ts
112
+ * import { useTheme } from '@workday/canvas-kit-react/common';
113
+ * import { space } from '@workday/canvas-kit-react/tokens';
114
+ *
115
+ * const theme = useTheme();
116
+ * const { down } = theme.canvas.breakpoints;
117
+ * const mediaQuery = down('m'); // Returns '@media (max-width: 1023.5px)'
118
+ * const styles = {
119
+ * [mediaQuery]: {
120
+ * padding: space.m,
121
+ * }
122
+ * };
123
+ * ```
124
+ *
125
+ * This example uses the `xl` breakpoint and only adds a `min-width` of `0` to the media query.
126
+ * @example
127
+ * ```ts
128
+ * import { useTheme } from '@workday/canvas-kit-react/common';
129
+ * import { space } from '@workday/canvas-kit-react/tokens';
130
+ *
131
+ * const theme = useTheme();
132
+ * const { down } = theme.canvas.breakpoints;
133
+ * const mediaQuery = down('xl'); // Returns '@media (min-width: 0)'
134
+ * const styles = {
135
+ * [mediaQuery]: {
136
+ * padding: space.m,
137
+ * }
138
+ * };
139
+ * ```
140
+ */
42
141
  down: (key: BreakpointFnParam) => string;
43
- only: (key: BreakpointFnParam) => string;
142
+ /**
143
+ * ### Between
144
+ *
145
+ * _Returns a media query between two given breakpoints_
146
+ *
147
+ * Given `start` and `end` breakpoint keys ("zero", "s", "m", "l", "xl"),
148
+ * this function returns a media query (string) using a min-width and max-width.
149
+ *
150
+ * Note: This function subtracts `0.5px` from the next breakpoint value to prevent collisions.
151
+ * For example, `breakpoints.values.s`, has a `min-width` of `320px`, and the `max-width` is `767.5px`).
152
+ *
153
+ * If the `xl` breakpoint is provided, this function returns a media query with only a `min-width`,
154
+ * as seen in the second example below.
155
+ *
156
+ * @example
157
+ * ```ts
158
+ * import { useTheme } from '@workday/canvas-kit-react/common';
159
+ * import { space } from '@workday/canvas-kit-react/tokens';
160
+ *
161
+ * const theme = useTheme();
162
+ * const { between } = theme.canvas.breakpoints;
163
+ * // Returns '@media (min-width: 320px) and (max-width: 1023.5px)'
164
+ * const mediaQuery = between('s', 'm');
165
+ * const styles = {
166
+ * [mediaQuery]: {
167
+ * padding: space.s,
168
+ * }
169
+ * };
170
+ * ```
171
+ *
172
+ * This example uses `xl` as the `end` breakpoint and only adds a min-width to the media query.
173
+ * @example
174
+ * ```ts
175
+ * import { useTheme } from '@workday/canvas-kit-react/common';
176
+ * import { space } from '@workday/canvas-kit-react/tokens';
177
+ *
178
+ * const theme = useTheme();
179
+ * const { between } = theme.canvas.breakpoints;
180
+ * const mediaQuery = between('m', 'xl'); // Returns '@media (min-width: 768px)'
181
+ * const styles = {
182
+ * [mediaQuery]: {
183
+ * padding: space.s,
184
+ * }
185
+ * };
186
+ * ```
187
+ */
44
188
  between: (start: BreakpointFnParam, end: BreakpointFnParam) => string;
189
+ /**
190
+ * ### Only
191
+ *
192
+ * _Returns a media query with a `min-width` and `max-width` for a given breakpoint_
193
+ *
194
+ * Given a breakpoint key ("zero", "s", "m", "l", "xl"),
195
+ * this function returns a media query (string) using a `min-width` and `max-width`.
196
+ *
197
+ * Note: This function subtracts `0.5px` from the next breakpoint value to prevent collisions.
198
+ * For example, `breakpoints.values.s`, has a `min-width` of `320px`, and the `max-width` is `767.5px`).
199
+ *
200
+ * If the `xl` breakpoint is provided, this function returns a media query with only a `min-width` of `1440px`,
201
+ * as seen in the second example below.
202
+ *
203
+ * @example
204
+ * ```ts
205
+ * import { useTheme } from '@workday/canvas-kit-react/common';
206
+ * import { space } from '@workday/canvas-kit-react/tokens';
207
+ *
208
+ * const theme = useTheme();
209
+ * const { only } = theme.canvas.breakpoints;
210
+ * const mediaQuery = only('s'); // Returns '@media (min-width: 320px) and (max-width: 767.5px)'
211
+ * const styles = {
212
+ * [mediaQuery]: {
213
+ * padding: space.s,
214
+ * }
215
+ * };
216
+ * ```
217
+ *
218
+ * This example uses the `xl` breakpoint and only adds a `min-width` of `1440px` to the media query.
219
+ * @example
220
+ * ```ts
221
+ * import { useTheme } from '@workday/canvas-kit-react/common';
222
+ * import { space } from '@workday/canvas-kit-react/tokens';
223
+ *
224
+ * const theme = useTheme();
225
+ * const { only } = theme.canvas.breakpoints;
226
+ * const mediaQuery = only('xl'); // Returns '@media (min-width: 1440px)'
227
+ * const styles = {
228
+ * [mediaQuery]: {
229
+ * padding: space.s,
230
+ * }
231
+ * };
232
+ * ```
233
+ */
234
+ only: (key: BreakpointFnParam) => string;
45
235
  };
46
236
  direction: ContentDirection;
47
237
  }
@@ -132,6 +132,7 @@ export type ElementComponent<T extends React.ElementType, P> = {
132
132
  ): JSX.Element;
133
133
  (props: PropsWithAs<P, T>): JSX.Element;
134
134
  displayName?: string;
135
+ as<E extends React.ElementType>(as: E): ElementComponent<E, P>;
135
136
  };
136
137
 
137
138
  export type Component<P> = {
@@ -233,6 +234,11 @@ export const createComponent = <
233
234
  });
234
235
  ReturnedComponent.displayName = displayName;
235
236
 
237
+ // The `any`s are here because `ElementComponent` takes care of the `as` type and the
238
+ // `ReturnComponent` type is overridden
239
+ (ReturnedComponent as any).as = (as: any) =>
240
+ createComponent(as)({displayName, Component, subComponents});
241
+
236
242
  // Cast as `any`. We have already specified the return type. Be careful making changes to this
237
243
  // file due to this `any` `ReturnedComponent` is a `React.ForwardRefExoticComponent`, but we want
238
244
  // it to be either an `Component` or `ElementComponent`
@@ -278,7 +284,7 @@ export const createHook = <M extends Model<any, any>, PO extends {}, PI extends
278
284
  ): BehaviorHook<M, PO> => {
279
285
  return (model, elemProps, ref) => {
280
286
  const props = mergeProps(fn(model, ref, elemProps || ({} as any)), elemProps || ({} as any));
281
- if (!props.hasOwnProperty('ref')) {
287
+ if (!props.hasOwnProperty('ref') && ref) {
282
288
  // This is the weird "incoming ref isn't in props, but outgoing ref is in props" thing
283
289
  props.ref = ref;
284
290
  }
@@ -286,11 +292,32 @@ export const createHook = <M extends Model<any, any>, PO extends {}, PI extends
286
292
  };
287
293
  };
288
294
 
289
- export type BehaviorHook<M extends Model<any, any>, O extends {}> = <P extends {}, R>(
290
- model: M,
291
- elemProps?: P,
292
- ref?: React.Ref<R>
293
- ) => O & P & (R extends HTMLOrSVGElement ? {ref: React.Ref<R>} : {});
295
+ export const subModelHook = <M extends Model<any, any>, SM extends Model<any, any>, O extends {}>(
296
+ fn: (model: M) => SM,
297
+ hook: BehaviorHook<SM, O>
298
+ ): BehaviorHook<M, O> => {
299
+ return (model: M, props: any, ref: React.Ref<any>) => {
300
+ return hook(fn(model), props, ref);
301
+ };
302
+ };
303
+
304
+ // Typescript function parameters are contravariant while return types are covariant. This is a
305
+ // problem when someone hands us a model that correctly extends `Model<any, any>`, but adds extra
306
+ // properties to the model. So `M extends Model<any, any>`. But the `BehaviorHook` is the return
307
+ // type which will reverse the direction which is no longer true: `Model<any, any> extends M`. In
308
+ // order to avoid this issue, we use the `bivarianceHack` found in ReactJS type definitions. This
309
+ // hack forces Typescript to treat `M` as a bivariant allowing extension to go either direction.
310
+ // Normally this would be less type safe, but we're using a generic `M` as a placeholder so there
311
+ // isn't a real issue. Not 100% this is a bug, but the "hack" is a bit messy.
312
+ // https://www.stephanboyer.com/post/132/what-are-covariance-and-contravariance
313
+ // https://stackoverflow.com/questions/52667959/what-is-the-purpose-of-bivariancehack-in-typescript-types/52668133
314
+ export type BehaviorHook<M extends Model<any, any>, O extends {}> = {
315
+ bivarianceHack<P extends {}, R>(
316
+ model: M,
317
+ elemProps?: P,
318
+ ref?: React.Ref<R>
319
+ ): O & P & (R extends HTMLOrSVGElement ? {ref: React.Ref<R>} : {});
320
+ }['bivarianceHack'];
294
321
 
295
322
  function setRef<T>(ref: React.Ref<T> | undefined, value: T): void {
296
323
  if (ref) {
@@ -327,7 +354,7 @@ function setRef<T>(ref: React.Ref<T> | undefined, value: T): void {
327
354
  * return <div ref={elementRef}/>
328
355
  * })
329
356
  */
330
- export function useForkRef<T>(ref1?: React.Ref<T>, ref2?: React.Ref<T>): (instance: T) => void {
357
+ export function useForkRef<T>(ref1?: React.Ref<T>, ref2?: React.Ref<T>): React.RefCallback<T> {
331
358
  return (value: T) => {
332
359
  setRef(ref1, value);
333
360
  setRef(ref2, value);
@@ -410,9 +437,9 @@ export function useModelContext<T>(context: React.Context<T>, model?: T): T {
410
437
  * return <div id="foo" {...props}>{children}</div>
411
438
  * })
412
439
  */
413
- export function composeHooks<M extends Model<any, any>, O1 extends {}, P extends {}, O2 extends {}>(
414
- hook1: (model: M, props: P, ref: React.Ref<any>) => O1,
415
- hook2: (model: M, props: P, ref: React.Ref<any>) => O2
440
+ export function composeHooks<M extends Model<any, any>, O1 extends {}, O2 extends {}>(
441
+ hook1: BehaviorHook<M, O1>,
442
+ hook2: BehaviorHook<M, O2>
416
443
  ): BehaviorHook<M, O1 & O2>;
417
444
 
418
445
  export function composeHooks<
@@ -423,9 +450,9 @@ export function composeHooks<
423
450
  O2 extends {},
424
451
  O3 extends {}
425
452
  >(
426
- hook1: (model: M, props: P, ref: React.Ref<R>) => O1,
427
- hook2: (model: M, props: P, ref: React.Ref<R>) => O2,
428
- hook3: (model: M, props: P, ref: React.Ref<R>) => O3
453
+ hook1: BehaviorHook<M, O1>,
454
+ hook2: BehaviorHook<M, O2>,
455
+ hook3: BehaviorHook<M, O3>
429
456
  ): BehaviorHook<M, O1 & O2 & O3>;
430
457
  export function composeHooks<
431
458
  M extends Model<any, any>,
@@ -436,10 +463,10 @@ export function composeHooks<
436
463
  O3 extends {},
437
464
  O4 extends {}
438
465
  >(
439
- hook1: (model: M, props: P, ref: React.Ref<R>) => O1,
440
- hook2: (model: M, props: P, ref: React.Ref<R>) => O2,
441
- hook3: (model: M, props: P, ref: React.Ref<R>) => O3,
442
- hook4: (model: M, props: P, ref: React.Ref<R>) => O4
466
+ hook1: BehaviorHook<M, O1>,
467
+ hook2: BehaviorHook<M, O2>,
468
+ hook3: BehaviorHook<M, O3>,
469
+ hook4: BehaviorHook<M, O4>
443
470
  ): BehaviorHook<M, O1 & O2 & O3 & O4>;
444
471
  export function composeHooks<
445
472
  M extends Model<any, any>,
@@ -451,11 +478,11 @@ export function composeHooks<
451
478
  O4 extends {},
452
479
  O5 extends {}
453
480
  >(
454
- hook1: (model: M, props: P, ref: React.Ref<R>) => O1,
455
- hook2: (model: M, props: P, ref: React.Ref<R>) => O2,
456
- hook3: (model: M, props: P, ref: React.Ref<R>) => O3,
457
- hook4: (model: M, props: P, ref: React.Ref<R>) => O4,
458
- hook5: (model: M, props: P, ref: React.Ref<R>) => O5
481
+ hook1: BehaviorHook<M, O1>,
482
+ hook2: BehaviorHook<M, O2>,
483
+ hook3: BehaviorHook<M, O3>,
484
+ hook4: BehaviorHook<M, O4>,
485
+ hook5: BehaviorHook<M, O5>
459
486
  ): BehaviorHook<M, O1 & O2 & O3 & O4 & O5>;
460
487
  export function composeHooks<M extends Model<any, any>, R, P extends {}, O extends {}>(
461
488
  ...hooks: ((model: M, props: P, ref: React.Ref<R>) => O)[]
@@ -465,7 +492,7 @@ export function composeHooks<M extends Model<any, any>, R, P extends {}, O exten
465
492
  return hook(model, props, props.ref || ref);
466
493
  }, props);
467
494
 
468
- if (!returnProps.hasOwnProperty('ref')) {
495
+ if (!returnProps.hasOwnProperty('ref') && ref) {
469
496
  // This is the weird "incoming ref isn't in props, but outgoing ref is in props" thing
470
497
  returnProps.ref = ref;
471
498
  }