@workday/canvas-kit-react 6.0.0-alpha.0-next.28 → 6.0.0-alpha.0-next.33

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 (561) hide show
  1. package/button/lib/SecondaryButton.tsx +31 -16
  2. package/button/lib/TertiaryButton.tsx +45 -36
  3. package/button/lib/parts/ButtonContainer.tsx +2 -0
  4. package/button/lib/types.ts +2 -1
  5. package/common/index.ts +1 -0
  6. package/common/lib/EllipsisText.tsx +11 -0
  7. package/common/lib/utils/components.ts +50 -23
  8. package/common/lib/utils/index.ts +1 -0
  9. package/common/lib/utils/mergeProps.ts +4 -0
  10. package/common/lib/utils/useConstant.ts +18 -0
  11. package/common/lib/utils/useResizeObserver.ts +29 -0
  12. package/common/lib/utils/useUniqueId.ts +4 -3
  13. package/dist/commonjs/button/lib/SecondaryButton.d.ts +8 -5
  14. package/dist/commonjs/button/lib/SecondaryButton.d.ts.map +1 -1
  15. package/dist/commonjs/button/lib/SecondaryButton.js +22 -12
  16. package/dist/commonjs/button/lib/TertiaryButton.d.ts +8 -4
  17. package/dist/commonjs/button/lib/TertiaryButton.d.ts.map +1 -1
  18. package/dist/commonjs/button/lib/TertiaryButton.js +24 -20
  19. package/dist/commonjs/button/lib/parts/ButtonContainer.d.ts.map +1 -1
  20. package/dist/commonjs/button/lib/parts/ButtonContainer.js +2 -6
  21. package/dist/commonjs/button/lib/parts/ButtonLabel.d.ts +1 -1
  22. package/dist/commonjs/button/lib/parts/ButtonLabel.d.ts.map +1 -1
  23. package/dist/commonjs/button/lib/types.d.ts +1 -0
  24. package/dist/commonjs/button/lib/types.d.ts.map +1 -1
  25. package/dist/commonjs/common/index.d.ts +1 -0
  26. package/dist/commonjs/common/index.d.ts.map +1 -1
  27. package/dist/commonjs/common/index.js +1 -0
  28. package/dist/commonjs/common/lib/EllipsisText.d.ts +5 -0
  29. package/dist/commonjs/common/lib/EllipsisText.d.ts.map +1 -0
  30. package/dist/commonjs/common/lib/EllipsisText.js +13 -0
  31. package/dist/commonjs/common/lib/utils/components.d.ts +19 -9
  32. package/dist/commonjs/common/lib/utils/components.d.ts.map +1 -1
  33. package/dist/commonjs/common/lib/utils/components.js +12 -2
  34. package/dist/commonjs/common/lib/utils/index.d.ts +1 -0
  35. package/dist/commonjs/common/lib/utils/index.d.ts.map +1 -1
  36. package/dist/commonjs/common/lib/utils/index.js +1 -0
  37. package/dist/commonjs/common/lib/utils/mergeProps.d.ts.map +1 -1
  38. package/dist/commonjs/common/lib/utils/mergeProps.js +5 -0
  39. package/dist/commonjs/common/lib/utils/useConstant.d.ts +9 -0
  40. package/dist/commonjs/common/lib/utils/useConstant.d.ts.map +1 -0
  41. package/dist/commonjs/common/lib/utils/useConstant.js +18 -0
  42. package/dist/commonjs/common/lib/utils/useResizeObserver.d.ts +3 -0
  43. package/dist/commonjs/common/lib/utils/useResizeObserver.d.ts.map +1 -0
  44. package/dist/commonjs/common/lib/utils/useResizeObserver.js +42 -0
  45. package/dist/commonjs/common/lib/utils/useUniqueId.d.ts.map +1 -1
  46. package/dist/commonjs/common/lib/utils/useUniqueId.js +3 -10
  47. package/dist/commonjs/dialog/lib/hooks/useDialogCard.d.ts +4 -16
  48. package/dist/commonjs/dialog/lib/hooks/useDialogCard.d.ts.map +1 -1
  49. package/dist/commonjs/dialog/lib/hooks/useDialogPopper.d.ts +5 -2
  50. package/dist/commonjs/dialog/lib/hooks/useDialogPopper.d.ts.map +1 -1
  51. package/dist/commonjs/modal/lib/ModalOverlay.d.ts +4 -2
  52. package/dist/commonjs/modal/lib/ModalOverlay.d.ts.map +1 -1
  53. package/dist/commonjs/modal/lib/hooks/useModalCard.d.ts +4 -16
  54. package/dist/commonjs/modal/lib/hooks/useModalCard.d.ts.map +1 -1
  55. package/dist/commonjs/modal/lib/hooks/useModalHeading.d.ts +5 -17
  56. package/dist/commonjs/modal/lib/hooks/useModalHeading.d.ts.map +1 -1
  57. package/dist/commonjs/pagination/lib/Pagination/GoTo/Label.d.ts +3 -0
  58. package/dist/commonjs/pagination/lib/Pagination/GoTo/Label.d.ts.map +1 -1
  59. package/dist/commonjs/pagination/lib/Pagination/PageList.d.ts +1 -1
  60. package/dist/commonjs/pagination/lib/Pagination/PageList.d.ts.map +1 -1
  61. package/dist/commonjs/pagination/lib/Pagination/Pagination.d.ts +5 -5
  62. package/dist/commonjs/pagination/lib/Pagination/common/List.d.ts +1 -1
  63. package/dist/commonjs/pagination/lib/Pagination/common/List.d.ts.map +1 -1
  64. package/dist/commonjs/pagination/lib/Pagination/common/utils/getValidChildren.d.ts +1 -1
  65. package/dist/commonjs/pagination/lib/Pagination/common/utils/getValidChildren.d.ts.map +1 -1
  66. package/dist/commonjs/pagination/lib/Pagination/types.d.ts +39 -0
  67. package/dist/commonjs/pagination/lib/Pagination/types.d.ts.map +1 -1
  68. package/dist/commonjs/pagination/lib/Pagination/usePaginationModel.d.ts +19 -0
  69. package/dist/commonjs/pagination/lib/Pagination/usePaginationModel.d.ts.map +1 -1
  70. package/dist/commonjs/popup/lib/PopupCard.d.ts.map +1 -1
  71. package/dist/commonjs/popup/lib/PopupCard.js +2 -3
  72. package/dist/commonjs/popup/lib/hooks/usePopupCard.d.ts +5 -2
  73. package/dist/commonjs/popup/lib/hooks/usePopupCard.d.ts.map +1 -1
  74. package/dist/commonjs/popup/lib/hooks/usePopupCloseButton.d.ts +4 -2
  75. package/dist/commonjs/popup/lib/hooks/usePopupCloseButton.d.ts.map +1 -1
  76. package/dist/commonjs/popup/lib/hooks/usePopupHeading.d.ts +5 -2
  77. package/dist/commonjs/popup/lib/hooks/usePopupHeading.d.ts.map +1 -1
  78. package/dist/commonjs/popup/lib/hooks/usePopupPopper.d.ts +4 -2
  79. package/dist/commonjs/popup/lib/hooks/usePopupPopper.d.ts.map +1 -1
  80. package/dist/commonjs/popup/lib/hooks/usePopupTarget.d.ts +4 -2
  81. package/dist/commonjs/popup/lib/hooks/usePopupTarget.d.ts.map +1 -1
  82. package/dist/commonjs/tabs/index.d.ts +5 -0
  83. package/dist/commonjs/tabs/index.d.ts.map +1 -1
  84. package/dist/commonjs/tabs/index.js +11 -0
  85. package/dist/commonjs/tabs/lib/Tabs.d.ts +35 -7
  86. package/dist/commonjs/tabs/lib/Tabs.d.ts.map +1 -1
  87. package/dist/commonjs/tabs/lib/Tabs.js +28 -7
  88. package/dist/commonjs/tabs/lib/TabsItem.d.ts +107 -0
  89. package/dist/commonjs/tabs/lib/TabsItem.d.ts.map +1 -0
  90. package/dist/commonjs/tabs/lib/TabsItem.js +140 -0
  91. package/dist/commonjs/tabs/lib/TabsList.d.ts +43 -0
  92. package/dist/commonjs/tabs/lib/TabsList.d.ts.map +1 -0
  93. package/dist/commonjs/tabs/lib/TabsList.js +53 -0
  94. package/dist/commonjs/tabs/lib/TabsMenuPopper.d.ts +21 -0
  95. package/dist/commonjs/tabs/lib/TabsMenuPopper.d.ts.map +1 -0
  96. package/dist/commonjs/tabs/lib/{TabList.js → TabsMenuPopper.js} +7 -19
  97. package/dist/commonjs/tabs/lib/TabsOverflowButton.d.ts +31 -0
  98. package/dist/commonjs/tabs/lib/TabsOverflowButton.d.ts.map +1 -0
  99. package/dist/commonjs/tabs/lib/TabsOverflowButton.js +57 -0
  100. package/{ts3.5/dist/commonjs/tabs/lib/TabPanel.d.ts → dist/commonjs/tabs/lib/TabsPanel.d.ts} +39 -29
  101. package/dist/commonjs/tabs/lib/TabsPanel.d.ts.map +1 -0
  102. package/dist/commonjs/tabs/lib/TabsPanel.js +64 -0
  103. package/dist/{es6/tabs/lib/TabList.d.ts → commonjs/tabs/lib/TabsPanels.d.ts} +5 -5
  104. package/dist/commonjs/tabs/lib/TabsPanels.d.ts.map +1 -0
  105. package/dist/commonjs/tabs/lib/TabsPanels.js +21 -0
  106. package/dist/commonjs/tabs/lib/cursor/index.d.ts +1 -1
  107. package/dist/commonjs/tabs/lib/cursor/index.d.ts.map +1 -1
  108. package/dist/commonjs/tabs/lib/cursor/index.js +1 -1
  109. package/dist/commonjs/tabs/lib/cursor/useCursorModel.d.ts +23 -13
  110. package/dist/commonjs/tabs/lib/cursor/useCursorModel.d.ts.map +1 -1
  111. package/dist/commonjs/tabs/lib/cursor/useCursorModel.js +50 -49
  112. package/dist/commonjs/tabs/lib/cursor/useRovingFocus.d.ts +37 -0
  113. package/dist/commonjs/tabs/lib/cursor/useRovingFocus.d.ts.map +1 -0
  114. package/dist/commonjs/tabs/lib/cursor/{hooks.js → useRovingFocus.js} +26 -50
  115. package/dist/commonjs/tabs/lib/list/index.d.ts +2 -1
  116. package/dist/commonjs/tabs/lib/list/index.d.ts.map +1 -1
  117. package/dist/commonjs/tabs/lib/list/index.js +2 -1
  118. package/dist/commonjs/tabs/lib/list/renderItem.d.ts +4 -0
  119. package/dist/commonjs/tabs/lib/list/renderItem.d.ts.map +1 -0
  120. package/dist/commonjs/tabs/lib/list/renderItem.js +18 -0
  121. package/dist/commonjs/tabs/lib/list/useListModel.d.ts +25 -13
  122. package/dist/commonjs/tabs/lib/list/useListModel.d.ts.map +1 -1
  123. package/dist/commonjs/tabs/lib/list/useListModel.js +20 -7
  124. package/dist/commonjs/tabs/lib/list/useListRegisterItem.d.ts +14 -0
  125. package/dist/commonjs/tabs/lib/list/useListRegisterItem.d.ts.map +1 -0
  126. package/dist/commonjs/tabs/lib/list/useListRegisterItem.js +46 -0
  127. package/dist/commonjs/tabs/lib/menu/Menu.d.ts +80 -0
  128. package/dist/commonjs/tabs/lib/menu/Menu.d.ts.map +1 -0
  129. package/dist/commonjs/tabs/lib/menu/Menu.js +94 -0
  130. package/dist/commonjs/tabs/lib/menu/MenuCard.d.ts +17 -0
  131. package/dist/commonjs/tabs/lib/menu/MenuCard.d.ts.map +1 -0
  132. package/dist/commonjs/tabs/lib/menu/MenuCard.js +82 -0
  133. package/dist/commonjs/tabs/lib/menu/MenuItem.d.ts +62 -0
  134. package/dist/commonjs/tabs/lib/menu/MenuItem.d.ts.map +1 -0
  135. package/dist/commonjs/tabs/lib/menu/MenuItem.js +145 -0
  136. package/dist/commonjs/tabs/lib/menu/MenuList.d.ts +23 -0
  137. package/dist/commonjs/tabs/lib/menu/MenuList.d.ts.map +1 -0
  138. package/dist/commonjs/tabs/lib/menu/MenuList.js +52 -0
  139. package/dist/commonjs/tabs/lib/menu/MenuPopper.d.ts +21 -0
  140. package/dist/commonjs/tabs/lib/menu/MenuPopper.d.ts.map +1 -0
  141. package/dist/commonjs/tabs/lib/menu/MenuPopper.js +45 -0
  142. package/dist/commonjs/tabs/lib/menu/MenuTarget.d.ts +21 -0
  143. package/dist/commonjs/tabs/lib/menu/MenuTarget.d.ts.map +1 -0
  144. package/dist/commonjs/tabs/lib/menu/MenuTarget.js +60 -0
  145. package/dist/commonjs/tabs/lib/menu/index.d.ts +8 -0
  146. package/dist/commonjs/tabs/lib/menu/index.d.ts.map +1 -0
  147. package/dist/commonjs/tabs/lib/menu/index.js +18 -0
  148. package/dist/commonjs/tabs/lib/menu/useMenuModel.d.ts +35 -0
  149. package/dist/commonjs/tabs/lib/menu/useMenuModel.d.ts.map +1 -0
  150. package/dist/commonjs/tabs/lib/menu/useMenuModel.js +33 -0
  151. package/dist/commonjs/tabs/lib/overflow/index.d.ts +5 -0
  152. package/dist/commonjs/tabs/lib/overflow/index.d.ts.map +1 -0
  153. package/dist/commonjs/tabs/lib/overflow/index.js +9 -0
  154. package/dist/commonjs/tabs/lib/overflow/useOverflowMeasureContainer.d.ts +8 -0
  155. package/dist/commonjs/tabs/lib/overflow/useOverflowMeasureContainer.d.ts.map +1 -0
  156. package/dist/commonjs/tabs/lib/overflow/useOverflowMeasureContainer.js +22 -0
  157. package/dist/commonjs/tabs/lib/overflow/useOverflowMeasureItem.d.ts +10 -0
  158. package/dist/commonjs/tabs/lib/overflow/useOverflowMeasureItem.d.ts.map +1 -0
  159. package/dist/commonjs/tabs/lib/overflow/useOverflowMeasureItem.js +32 -0
  160. package/dist/commonjs/tabs/lib/overflow/useOverflowModel.d.ts +69 -0
  161. package/dist/commonjs/tabs/lib/overflow/useOverflowModel.d.ts.map +1 -0
  162. package/dist/commonjs/tabs/lib/overflow/useOverflowModel.js +117 -0
  163. package/dist/commonjs/tabs/lib/overflow/useOverflowTarget.d.ts +11 -0
  164. package/dist/commonjs/tabs/lib/overflow/useOverflowTarget.d.ts.map +1 -0
  165. package/dist/commonjs/tabs/lib/overflow/useOverflowTarget.js +35 -0
  166. package/dist/commonjs/tabs/lib/selection/index.d.ts +4 -0
  167. package/dist/commonjs/tabs/lib/selection/index.d.ts.map +1 -0
  168. package/dist/commonjs/tabs/lib/selection/index.js +8 -0
  169. package/dist/commonjs/tabs/lib/selection/useResetCursorOnBlur.d.ts +13 -0
  170. package/dist/commonjs/tabs/lib/selection/useResetCursorOnBlur.d.ts.map +1 -0
  171. package/dist/commonjs/tabs/lib/{hooks.js → selection/useResetCursorOnBlur.js} +8 -9
  172. package/dist/commonjs/tabs/lib/selection/useSelectionItem.d.ts +8 -0
  173. package/dist/commonjs/tabs/lib/selection/useSelectionItem.d.ts.map +1 -0
  174. package/dist/commonjs/tabs/lib/selection/useSelectionItem.js +16 -0
  175. package/dist/commonjs/tabs/lib/selection/useSelectionModel.d.ts +62 -0
  176. package/dist/commonjs/tabs/lib/selection/useSelectionModel.d.ts.map +1 -0
  177. package/dist/commonjs/tabs/lib/selection/useSelectionModel.js +80 -0
  178. package/dist/commonjs/tabs/lib/useTabsModel.d.ts +39 -38
  179. package/dist/commonjs/tabs/lib/useTabsModel.d.ts.map +1 -1
  180. package/dist/commonjs/tabs/lib/useTabsModel.js +50 -37
  181. package/dist/commonjs/tooltip/lib/OverflowTooltip.d.ts +10 -0
  182. package/dist/commonjs/tooltip/lib/OverflowTooltip.d.ts.map +1 -1
  183. package/dist/commonjs/tooltip/lib/OverflowTooltip.js +8 -6
  184. package/dist/commonjs/tooltip/lib/useTooltip.d.ts +1 -1
  185. package/dist/es6/button/lib/SecondaryButton.d.ts +8 -5
  186. package/dist/es6/button/lib/SecondaryButton.d.ts.map +1 -1
  187. package/dist/es6/button/lib/SecondaryButton.js +22 -12
  188. package/dist/es6/button/lib/TertiaryButton.d.ts +8 -4
  189. package/dist/es6/button/lib/TertiaryButton.d.ts.map +1 -1
  190. package/dist/es6/button/lib/TertiaryButton.js +25 -21
  191. package/dist/es6/button/lib/parts/ButtonContainer.d.ts.map +1 -1
  192. package/dist/es6/button/lib/parts/ButtonContainer.js +2 -6
  193. package/dist/es6/button/lib/parts/ButtonLabel.d.ts +1 -1
  194. package/dist/es6/button/lib/parts/ButtonLabel.d.ts.map +1 -1
  195. package/dist/es6/button/lib/types.d.ts +1 -0
  196. package/dist/es6/button/lib/types.d.ts.map +1 -1
  197. package/dist/es6/common/index.d.ts +1 -0
  198. package/dist/es6/common/index.d.ts.map +1 -1
  199. package/dist/es6/common/index.js +1 -0
  200. package/dist/es6/common/lib/EllipsisText.d.ts +5 -0
  201. package/dist/es6/common/lib/EllipsisText.d.ts.map +1 -0
  202. package/dist/es6/common/lib/EllipsisText.js +8 -0
  203. package/dist/es6/common/lib/utils/components.d.ts +19 -9
  204. package/dist/es6/common/lib/utils/components.d.ts.map +1 -1
  205. package/dist/es6/common/lib/utils/components.js +12 -2
  206. package/dist/es6/common/lib/utils/index.d.ts +1 -0
  207. package/dist/es6/common/lib/utils/index.d.ts.map +1 -1
  208. package/dist/es6/common/lib/utils/index.js +1 -0
  209. package/dist/es6/common/lib/utils/mergeProps.d.ts.map +1 -1
  210. package/dist/es6/common/lib/utils/mergeProps.js +5 -0
  211. package/dist/es6/common/lib/utils/useConstant.d.ts +9 -0
  212. package/dist/es6/common/lib/utils/useConstant.d.ts.map +1 -0
  213. package/dist/es6/common/lib/utils/useConstant.js +15 -0
  214. package/dist/es6/common/lib/utils/useResizeObserver.d.ts +3 -0
  215. package/dist/es6/common/lib/utils/useResizeObserver.d.ts.map +1 -0
  216. package/dist/es6/common/lib/utils/useResizeObserver.js +37 -0
  217. package/dist/es6/common/lib/utils/useUniqueId.d.ts.map +1 -1
  218. package/dist/es6/common/lib/utils/useUniqueId.js +3 -3
  219. package/dist/es6/dialog/lib/hooks/useDialogCard.d.ts +4 -16
  220. package/dist/es6/dialog/lib/hooks/useDialogCard.d.ts.map +1 -1
  221. package/dist/es6/dialog/lib/hooks/useDialogPopper.d.ts +5 -2
  222. package/dist/es6/dialog/lib/hooks/useDialogPopper.d.ts.map +1 -1
  223. package/dist/es6/modal/lib/ModalOverlay.d.ts +4 -2
  224. package/dist/es6/modal/lib/ModalOverlay.d.ts.map +1 -1
  225. package/dist/es6/modal/lib/hooks/useModalCard.d.ts +4 -16
  226. package/dist/es6/modal/lib/hooks/useModalCard.d.ts.map +1 -1
  227. package/dist/es6/modal/lib/hooks/useModalHeading.d.ts +5 -17
  228. package/dist/es6/modal/lib/hooks/useModalHeading.d.ts.map +1 -1
  229. package/dist/es6/pagination/lib/Pagination/GoTo/Label.d.ts +3 -0
  230. package/dist/es6/pagination/lib/Pagination/GoTo/Label.d.ts.map +1 -1
  231. package/dist/es6/pagination/lib/Pagination/PageList.d.ts +1 -1
  232. package/dist/es6/pagination/lib/Pagination/PageList.d.ts.map +1 -1
  233. package/dist/es6/pagination/lib/Pagination/Pagination.d.ts +5 -5
  234. package/dist/es6/pagination/lib/Pagination/common/List.d.ts +1 -1
  235. package/dist/es6/pagination/lib/Pagination/common/List.d.ts.map +1 -1
  236. package/dist/es6/pagination/lib/Pagination/common/utils/getValidChildren.d.ts +1 -1
  237. package/dist/es6/pagination/lib/Pagination/common/utils/getValidChildren.d.ts.map +1 -1
  238. package/dist/es6/pagination/lib/Pagination/types.d.ts +39 -0
  239. package/dist/es6/pagination/lib/Pagination/types.d.ts.map +1 -1
  240. package/dist/es6/pagination/lib/Pagination/usePaginationModel.d.ts +19 -0
  241. package/dist/es6/pagination/lib/Pagination/usePaginationModel.d.ts.map +1 -1
  242. package/dist/es6/popup/lib/PopupCard.d.ts.map +1 -1
  243. package/dist/es6/popup/lib/PopupCard.js +3 -4
  244. package/dist/es6/popup/lib/hooks/usePopupCard.d.ts +5 -2
  245. package/dist/es6/popup/lib/hooks/usePopupCard.d.ts.map +1 -1
  246. package/dist/es6/popup/lib/hooks/usePopupCloseButton.d.ts +4 -2
  247. package/dist/es6/popup/lib/hooks/usePopupCloseButton.d.ts.map +1 -1
  248. package/dist/es6/popup/lib/hooks/usePopupHeading.d.ts +5 -2
  249. package/dist/es6/popup/lib/hooks/usePopupHeading.d.ts.map +1 -1
  250. package/dist/es6/popup/lib/hooks/usePopupPopper.d.ts +4 -2
  251. package/dist/es6/popup/lib/hooks/usePopupPopper.d.ts.map +1 -1
  252. package/dist/es6/popup/lib/hooks/usePopupTarget.d.ts +4 -2
  253. package/dist/es6/popup/lib/hooks/usePopupTarget.d.ts.map +1 -1
  254. package/dist/es6/tabs/index.d.ts +5 -0
  255. package/dist/es6/tabs/index.d.ts.map +1 -1
  256. package/dist/es6/tabs/index.js +5 -0
  257. package/dist/es6/tabs/lib/Tabs.d.ts +35 -7
  258. package/dist/es6/tabs/lib/Tabs.d.ts.map +1 -1
  259. package/dist/es6/tabs/lib/Tabs.js +28 -7
  260. package/dist/es6/tabs/lib/TabsItem.d.ts +107 -0
  261. package/dist/es6/tabs/lib/TabsItem.d.ts.map +1 -0
  262. package/dist/es6/tabs/lib/TabsItem.js +131 -0
  263. package/dist/es6/tabs/lib/TabsList.d.ts +43 -0
  264. package/dist/es6/tabs/lib/TabsList.d.ts.map +1 -0
  265. package/dist/es6/tabs/lib/TabsList.js +44 -0
  266. package/dist/es6/tabs/lib/TabsMenuPopper.d.ts +21 -0
  267. package/dist/es6/tabs/lib/TabsMenuPopper.d.ts.map +1 -0
  268. package/dist/es6/tabs/lib/{TabList.js → TabsMenuPopper.js} +8 -20
  269. package/dist/es6/tabs/lib/TabsOverflowButton.d.ts +31 -0
  270. package/dist/es6/tabs/lib/TabsOverflowButton.d.ts.map +1 -0
  271. package/dist/es6/tabs/lib/TabsOverflowButton.js +48 -0
  272. package/dist/{commonjs/tabs/lib/TabPanel.d.ts → es6/tabs/lib/TabsPanel.d.ts} +15 -5
  273. package/dist/es6/tabs/lib/TabsPanel.d.ts.map +1 -0
  274. package/dist/es6/tabs/lib/TabsPanel.js +59 -0
  275. package/{ts3.5/dist/commonjs/tabs/lib/TabList.d.ts → dist/es6/tabs/lib/TabsPanels.d.ts} +15 -15
  276. package/dist/es6/tabs/lib/TabsPanels.d.ts.map +1 -0
  277. package/dist/es6/tabs/lib/TabsPanels.js +12 -0
  278. package/dist/es6/tabs/lib/cursor/index.d.ts +1 -1
  279. package/dist/es6/tabs/lib/cursor/index.d.ts.map +1 -1
  280. package/dist/es6/tabs/lib/cursor/index.js +1 -1
  281. package/dist/es6/tabs/lib/cursor/useCursorModel.d.ts +23 -13
  282. package/dist/es6/tabs/lib/cursor/useCursorModel.d.ts.map +1 -1
  283. package/dist/es6/tabs/lib/cursor/useCursorModel.js +51 -50
  284. package/dist/es6/tabs/lib/cursor/useRovingFocus.d.ts +37 -0
  285. package/dist/es6/tabs/lib/cursor/useRovingFocus.d.ts.map +1 -0
  286. package/dist/es6/tabs/lib/cursor/useRovingFocus.js +84 -0
  287. package/dist/es6/tabs/lib/list/index.d.ts +2 -1
  288. package/dist/es6/tabs/lib/list/index.d.ts.map +1 -1
  289. package/dist/es6/tabs/lib/list/index.js +2 -1
  290. package/dist/es6/tabs/lib/list/renderItem.d.ts +4 -0
  291. package/dist/es6/tabs/lib/list/renderItem.d.ts.map +1 -0
  292. package/dist/es6/tabs/lib/list/renderItem.js +12 -0
  293. package/dist/es6/tabs/lib/list/useListModel.d.ts +25 -13
  294. package/dist/es6/tabs/lib/list/useListModel.d.ts.map +1 -1
  295. package/dist/es6/tabs/lib/list/useListModel.js +21 -8
  296. package/dist/es6/tabs/lib/list/useListRegisterItem.d.ts +14 -0
  297. package/dist/es6/tabs/lib/list/useListRegisterItem.d.ts.map +1 -0
  298. package/dist/es6/tabs/lib/list/useListRegisterItem.js +41 -0
  299. package/dist/es6/tabs/lib/menu/Menu.d.ts +80 -0
  300. package/dist/es6/tabs/lib/menu/Menu.d.ts.map +1 -0
  301. package/dist/es6/tabs/lib/menu/Menu.js +89 -0
  302. package/dist/es6/tabs/lib/menu/MenuCard.d.ts +17 -0
  303. package/dist/es6/tabs/lib/menu/MenuCard.d.ts.map +1 -0
  304. package/dist/es6/tabs/lib/menu/MenuCard.js +73 -0
  305. package/dist/es6/tabs/lib/menu/MenuItem.d.ts +62 -0
  306. package/dist/es6/tabs/lib/menu/MenuItem.d.ts.map +1 -0
  307. package/dist/es6/tabs/lib/menu/MenuItem.js +136 -0
  308. package/dist/es6/tabs/lib/menu/MenuList.d.ts +23 -0
  309. package/dist/es6/tabs/lib/menu/MenuList.d.ts.map +1 -0
  310. package/dist/es6/tabs/lib/menu/MenuList.js +43 -0
  311. package/dist/es6/tabs/lib/menu/MenuPopper.d.ts +21 -0
  312. package/dist/es6/tabs/lib/menu/MenuPopper.d.ts.map +1 -0
  313. package/dist/es6/tabs/lib/menu/MenuPopper.js +36 -0
  314. package/dist/es6/tabs/lib/menu/MenuTarget.d.ts +21 -0
  315. package/dist/es6/tabs/lib/menu/MenuTarget.d.ts.map +1 -0
  316. package/dist/es6/tabs/lib/menu/MenuTarget.js +51 -0
  317. package/dist/es6/tabs/lib/menu/index.d.ts +8 -0
  318. package/dist/es6/tabs/lib/menu/index.d.ts.map +1 -0
  319. package/dist/es6/tabs/lib/menu/index.js +7 -0
  320. package/dist/es6/tabs/lib/menu/useMenuModel.d.ts +35 -0
  321. package/dist/es6/tabs/lib/menu/useMenuModel.d.ts.map +1 -0
  322. package/dist/es6/tabs/lib/menu/useMenuModel.js +31 -0
  323. package/dist/es6/tabs/lib/overflow/index.d.ts +5 -0
  324. package/dist/es6/tabs/lib/overflow/index.d.ts.map +1 -0
  325. package/dist/es6/tabs/lib/overflow/index.js +4 -0
  326. package/dist/es6/tabs/lib/overflow/useOverflowMeasureContainer.d.ts +8 -0
  327. package/dist/es6/tabs/lib/overflow/useOverflowMeasureContainer.d.ts.map +1 -0
  328. package/dist/es6/tabs/lib/overflow/useOverflowMeasureContainer.js +13 -0
  329. package/dist/es6/tabs/lib/overflow/useOverflowMeasureItem.d.ts +10 -0
  330. package/dist/es6/tabs/lib/overflow/useOverflowMeasureItem.d.ts.map +1 -0
  331. package/dist/es6/tabs/lib/overflow/useOverflowMeasureItem.js +30 -0
  332. package/dist/es6/tabs/lib/overflow/useOverflowModel.d.ts +69 -0
  333. package/dist/es6/tabs/lib/overflow/useOverflowModel.d.ts.map +1 -0
  334. package/dist/es6/tabs/lib/overflow/useOverflowModel.js +111 -0
  335. package/dist/es6/tabs/lib/overflow/useOverflowTarget.d.ts +11 -0
  336. package/dist/es6/tabs/lib/overflow/useOverflowTarget.d.ts.map +1 -0
  337. package/dist/es6/tabs/lib/overflow/useOverflowTarget.js +30 -0
  338. package/dist/es6/tabs/lib/selection/index.d.ts +4 -0
  339. package/dist/es6/tabs/lib/selection/index.d.ts.map +1 -0
  340. package/dist/es6/tabs/lib/selection/index.js +3 -0
  341. package/dist/es6/tabs/lib/selection/useResetCursorOnBlur.d.ts +13 -0
  342. package/dist/es6/tabs/lib/selection/useResetCursorOnBlur.d.ts.map +1 -0
  343. package/dist/es6/tabs/lib/{hooks.js → selection/useResetCursorOnBlur.js} +8 -9
  344. package/dist/es6/tabs/lib/selection/useSelectionItem.d.ts +8 -0
  345. package/dist/es6/tabs/lib/selection/useSelectionItem.d.ts.map +1 -0
  346. package/dist/es6/tabs/lib/selection/useSelectionItem.js +14 -0
  347. package/dist/es6/tabs/lib/selection/useSelectionModel.d.ts +62 -0
  348. package/dist/es6/tabs/lib/selection/useSelectionModel.d.ts.map +1 -0
  349. package/dist/es6/tabs/lib/selection/useSelectionModel.js +75 -0
  350. package/dist/es6/tabs/lib/useTabsModel.d.ts +39 -38
  351. package/dist/es6/tabs/lib/useTabsModel.d.ts.map +1 -1
  352. package/dist/es6/tabs/lib/useTabsModel.js +50 -37
  353. package/dist/es6/tooltip/lib/OverflowTooltip.d.ts +10 -0
  354. package/dist/es6/tooltip/lib/OverflowTooltip.d.ts.map +1 -1
  355. package/dist/es6/tooltip/lib/OverflowTooltip.js +5 -3
  356. package/dist/es6/tooltip/lib/useTooltip.d.ts +1 -1
  357. package/package.json +7 -5
  358. package/pagination/lib/Pagination/GoTo/Label.tsx +3 -0
  359. package/pagination/lib/Pagination/types.ts +44 -5
  360. package/pagination/lib/Pagination/usePaginationModel.ts +19 -0
  361. package/popup/lib/PopupCard.tsx +3 -2
  362. package/tabs/index.ts +6 -0
  363. package/tabs/lib/Tabs.tsx +34 -9
  364. package/tabs/lib/TabsItem.tsx +250 -0
  365. package/tabs/lib/TabsList.tsx +67 -0
  366. package/tabs/lib/TabsMenuPopper.tsx +27 -0
  367. package/tabs/lib/TabsOverflowButton.tsx +58 -0
  368. package/tabs/lib/{TabPanel.tsx → TabsPanel.tsx} +33 -31
  369. package/tabs/lib/TabsPanels.tsx +28 -0
  370. package/tabs/lib/cursor/index.ts +1 -1
  371. package/tabs/lib/cursor/useCursorModel.tsx +78 -65
  372. package/tabs/lib/cursor/useRovingFocus.tsx +94 -0
  373. package/tabs/lib/list/index.ts +2 -1
  374. package/tabs/lib/list/renderItem.tsx +19 -0
  375. package/tabs/lib/list/useListModel.tsx +48 -23
  376. package/tabs/lib/list/useListRegisterItem.tsx +53 -0
  377. package/tabs/lib/menu/Menu.tsx +95 -0
  378. package/tabs/lib/menu/MenuCard.tsx +96 -0
  379. package/tabs/lib/menu/MenuItem.tsx +195 -0
  380. package/tabs/lib/menu/MenuList.tsx +59 -0
  381. package/tabs/lib/menu/MenuPopper.tsx +31 -0
  382. package/tabs/lib/menu/MenuTarget.tsx +52 -0
  383. package/tabs/lib/menu/index.ts +8 -0
  384. package/tabs/lib/menu/useMenuModel.tsx +67 -0
  385. package/tabs/lib/overflow/index.ts +4 -0
  386. package/tabs/lib/overflow/spec/tsconfig.json +3 -0
  387. package/tabs/lib/overflow/spec/useOverflowModel.spec.tsx +46 -0
  388. package/tabs/lib/overflow/useOverflowMeasureContainer.ts +20 -0
  389. package/tabs/lib/overflow/useOverflowMeasureItem.tsx +40 -0
  390. package/tabs/lib/overflow/useOverflowModel.tsx +185 -0
  391. package/tabs/lib/overflow/useOverflowTarget.tsx +42 -0
  392. package/tabs/lib/selection/index.ts +3 -0
  393. package/tabs/lib/selection/useResetCursorOnBlur.tsx +29 -0
  394. package/tabs/lib/selection/useSelectionItem.tsx +26 -0
  395. package/tabs/lib/selection/useSelectionModel.tsx +133 -0
  396. package/tabs/lib/useTabsModel.tsx +93 -78
  397. package/tooltip/lib/OverflowTooltip.tsx +5 -3
  398. package/ts3.5/dist/commonjs/button/lib/SecondaryButton.d.ts +8 -5
  399. package/ts3.5/dist/commonjs/button/lib/TertiaryButton.d.ts +8 -4
  400. package/ts3.5/dist/commonjs/button/lib/parts/ButtonLabel.d.ts +1 -1
  401. package/ts3.5/dist/commonjs/button/lib/types.d.ts +1 -0
  402. package/ts3.5/dist/commonjs/common/index.d.ts +1 -0
  403. package/ts3.5/dist/commonjs/common/lib/EllipsisText.d.ts +5 -0
  404. package/ts3.5/dist/commonjs/common/lib/utils/components.d.ts +19 -9
  405. package/ts3.5/dist/commonjs/common/lib/utils/index.d.ts +1 -0
  406. package/ts3.5/dist/commonjs/common/lib/utils/useConstant.d.ts +9 -0
  407. package/ts3.5/dist/commonjs/common/lib/utils/useResizeObserver.d.ts +3 -0
  408. package/ts3.5/dist/commonjs/dialog/lib/hooks/useDialogCard.d.ts +4 -16
  409. package/ts3.5/dist/commonjs/dialog/lib/hooks/useDialogPopper.d.ts +5 -2
  410. package/ts3.5/dist/commonjs/modal/lib/ModalOverlay.d.ts +4 -2
  411. package/ts3.5/dist/commonjs/modal/lib/hooks/useModalCard.d.ts +4 -16
  412. package/ts3.5/dist/commonjs/modal/lib/hooks/useModalHeading.d.ts +5 -17
  413. package/ts3.5/dist/commonjs/pagination/lib/Pagination/GoTo/Label.d.ts +3 -0
  414. package/ts3.5/dist/commonjs/pagination/lib/Pagination/PageList.d.ts +1 -1
  415. package/ts3.5/dist/commonjs/pagination/lib/Pagination/Pagination.d.ts +5 -5
  416. package/ts3.5/dist/commonjs/pagination/lib/Pagination/common/List.d.ts +1 -1
  417. package/ts3.5/dist/commonjs/pagination/lib/Pagination/common/utils/getValidChildren.d.ts +1 -1
  418. package/ts3.5/dist/commonjs/pagination/lib/Pagination/types.d.ts +39 -0
  419. package/ts3.5/dist/commonjs/pagination/lib/Pagination/usePaginationModel.d.ts +19 -0
  420. package/ts3.5/dist/commonjs/popup/lib/hooks/usePopupCard.d.ts +5 -2
  421. package/ts3.5/dist/commonjs/popup/lib/hooks/usePopupCloseButton.d.ts +4 -2
  422. package/ts3.5/dist/commonjs/popup/lib/hooks/usePopupHeading.d.ts +5 -2
  423. package/ts3.5/dist/commonjs/popup/lib/hooks/usePopupPopper.d.ts +4 -2
  424. package/ts3.5/dist/commonjs/popup/lib/hooks/usePopupTarget.d.ts +4 -2
  425. package/ts3.5/dist/commonjs/tabs/index.d.ts +5 -0
  426. package/ts3.5/dist/commonjs/tabs/lib/Tabs.d.ts +35 -7
  427. package/ts3.5/dist/commonjs/tabs/lib/TabsItem.d.ts +107 -0
  428. package/ts3.5/dist/commonjs/tabs/lib/TabsList.d.ts +43 -0
  429. package/ts3.5/dist/commonjs/tabs/lib/TabsMenuPopper.d.ts +21 -0
  430. package/ts3.5/dist/commonjs/tabs/lib/TabsOverflowButton.d.ts +31 -0
  431. package/{dist/es6/tabs/lib/TabPanel.d.ts → ts3.5/dist/commonjs/tabs/lib/TabsPanel.d.ts} +39 -29
  432. package/ts3.5/dist/{es6/tabs/lib/TabList.d.ts → commonjs/tabs/lib/TabsPanels.d.ts} +5 -5
  433. package/ts3.5/dist/commonjs/tabs/lib/cursor/index.d.ts +1 -1
  434. package/ts3.5/dist/commonjs/tabs/lib/cursor/useCursorModel.d.ts +23 -13
  435. package/ts3.5/dist/commonjs/tabs/lib/cursor/useRovingFocus.d.ts +37 -0
  436. package/ts3.5/dist/commonjs/tabs/lib/list/index.d.ts +2 -1
  437. package/ts3.5/dist/commonjs/tabs/lib/list/renderItem.d.ts +4 -0
  438. package/ts3.5/dist/commonjs/tabs/lib/list/useListModel.d.ts +25 -13
  439. package/ts3.5/dist/commonjs/tabs/lib/list/useListRegisterItem.d.ts +14 -0
  440. package/ts3.5/dist/commonjs/tabs/lib/menu/Menu.d.ts +80 -0
  441. package/ts3.5/dist/commonjs/tabs/lib/menu/MenuCard.d.ts +17 -0
  442. package/ts3.5/dist/commonjs/tabs/lib/menu/MenuItem.d.ts +62 -0
  443. package/ts3.5/dist/commonjs/tabs/lib/menu/MenuList.d.ts +23 -0
  444. package/ts3.5/dist/commonjs/tabs/lib/menu/MenuPopper.d.ts +21 -0
  445. package/ts3.5/dist/commonjs/tabs/lib/menu/MenuTarget.d.ts +21 -0
  446. package/ts3.5/dist/commonjs/tabs/lib/menu/index.d.ts +8 -0
  447. package/ts3.5/dist/commonjs/tabs/lib/menu/useMenuModel.d.ts +35 -0
  448. package/ts3.5/dist/commonjs/tabs/lib/overflow/index.d.ts +5 -0
  449. package/ts3.5/dist/commonjs/tabs/lib/overflow/useOverflowMeasureContainer.d.ts +8 -0
  450. package/ts3.5/dist/commonjs/tabs/lib/overflow/useOverflowMeasureItem.d.ts +10 -0
  451. package/ts3.5/dist/commonjs/tabs/lib/overflow/useOverflowModel.d.ts +69 -0
  452. package/ts3.5/dist/commonjs/tabs/lib/overflow/useOverflowTarget.d.ts +11 -0
  453. package/ts3.5/dist/commonjs/tabs/lib/selection/index.d.ts +4 -0
  454. package/ts3.5/dist/commonjs/tabs/lib/selection/useResetCursorOnBlur.d.ts +13 -0
  455. package/ts3.5/dist/commonjs/tabs/lib/selection/useSelectionItem.d.ts +8 -0
  456. package/ts3.5/dist/commonjs/tabs/lib/selection/useSelectionModel.d.ts +62 -0
  457. package/ts3.5/dist/commonjs/tabs/lib/useTabsModel.d.ts +39 -38
  458. package/ts3.5/dist/commonjs/tooltip/lib/OverflowTooltip.d.ts +10 -0
  459. package/ts3.5/dist/commonjs/tooltip/lib/useTooltip.d.ts +1 -1
  460. package/ts3.5/dist/es6/button/lib/SecondaryButton.d.ts +8 -5
  461. package/ts3.5/dist/es6/button/lib/TertiaryButton.d.ts +8 -4
  462. package/ts3.5/dist/es6/button/lib/parts/ButtonLabel.d.ts +1 -1
  463. package/ts3.5/dist/es6/button/lib/types.d.ts +1 -0
  464. package/ts3.5/dist/es6/common/index.d.ts +1 -0
  465. package/ts3.5/dist/es6/common/lib/EllipsisText.d.ts +5 -0
  466. package/ts3.5/dist/es6/common/lib/utils/components.d.ts +19 -9
  467. package/ts3.5/dist/es6/common/lib/utils/index.d.ts +1 -0
  468. package/ts3.5/dist/es6/common/lib/utils/useConstant.d.ts +9 -0
  469. package/ts3.5/dist/es6/common/lib/utils/useResizeObserver.d.ts +3 -0
  470. package/ts3.5/dist/es6/dialog/lib/hooks/useDialogCard.d.ts +4 -16
  471. package/ts3.5/dist/es6/dialog/lib/hooks/useDialogPopper.d.ts +5 -2
  472. package/ts3.5/dist/es6/modal/lib/ModalOverlay.d.ts +4 -2
  473. package/ts3.5/dist/es6/modal/lib/hooks/useModalCard.d.ts +4 -16
  474. package/ts3.5/dist/es6/modal/lib/hooks/useModalHeading.d.ts +5 -17
  475. package/ts3.5/dist/es6/pagination/lib/Pagination/GoTo/Label.d.ts +3 -0
  476. package/ts3.5/dist/es6/pagination/lib/Pagination/PageList.d.ts +1 -1
  477. package/ts3.5/dist/es6/pagination/lib/Pagination/Pagination.d.ts +5 -5
  478. package/ts3.5/dist/es6/pagination/lib/Pagination/common/List.d.ts +1 -1
  479. package/ts3.5/dist/es6/pagination/lib/Pagination/common/utils/getValidChildren.d.ts +1 -1
  480. package/ts3.5/dist/es6/pagination/lib/Pagination/types.d.ts +39 -0
  481. package/ts3.5/dist/es6/pagination/lib/Pagination/usePaginationModel.d.ts +19 -0
  482. package/ts3.5/dist/es6/popup/lib/hooks/usePopupCard.d.ts +5 -2
  483. package/ts3.5/dist/es6/popup/lib/hooks/usePopupCloseButton.d.ts +4 -2
  484. package/ts3.5/dist/es6/popup/lib/hooks/usePopupHeading.d.ts +5 -2
  485. package/ts3.5/dist/es6/popup/lib/hooks/usePopupPopper.d.ts +4 -2
  486. package/ts3.5/dist/es6/popup/lib/hooks/usePopupTarget.d.ts +4 -2
  487. package/ts3.5/dist/es6/tabs/index.d.ts +5 -0
  488. package/ts3.5/dist/es6/tabs/lib/Tabs.d.ts +35 -7
  489. package/ts3.5/dist/es6/tabs/lib/TabsItem.d.ts +107 -0
  490. package/ts3.5/dist/es6/tabs/lib/TabsList.d.ts +43 -0
  491. package/ts3.5/dist/es6/tabs/lib/TabsMenuPopper.d.ts +21 -0
  492. package/ts3.5/dist/es6/tabs/lib/TabsOverflowButton.d.ts +31 -0
  493. package/ts3.5/dist/es6/tabs/lib/{TabPanel.d.ts → TabsPanel.d.ts} +15 -5
  494. package/{dist/commonjs/tabs/lib/TabList.d.ts → ts3.5/dist/es6/tabs/lib/TabsPanels.d.ts} +15 -15
  495. package/ts3.5/dist/es6/tabs/lib/cursor/index.d.ts +1 -1
  496. package/ts3.5/dist/es6/tabs/lib/cursor/useCursorModel.d.ts +23 -13
  497. package/ts3.5/dist/es6/tabs/lib/cursor/useRovingFocus.d.ts +37 -0
  498. package/ts3.5/dist/es6/tabs/lib/list/index.d.ts +2 -1
  499. package/ts3.5/dist/es6/tabs/lib/list/renderItem.d.ts +4 -0
  500. package/ts3.5/dist/es6/tabs/lib/list/useListModel.d.ts +25 -13
  501. package/ts3.5/dist/es6/tabs/lib/list/useListRegisterItem.d.ts +14 -0
  502. package/ts3.5/dist/es6/tabs/lib/menu/Menu.d.ts +80 -0
  503. package/ts3.5/dist/es6/tabs/lib/menu/MenuCard.d.ts +17 -0
  504. package/ts3.5/dist/es6/tabs/lib/menu/MenuItem.d.ts +62 -0
  505. package/ts3.5/dist/es6/tabs/lib/menu/MenuList.d.ts +23 -0
  506. package/ts3.5/dist/es6/tabs/lib/menu/MenuPopper.d.ts +21 -0
  507. package/ts3.5/dist/es6/tabs/lib/menu/MenuTarget.d.ts +21 -0
  508. package/ts3.5/dist/es6/tabs/lib/menu/index.d.ts +8 -0
  509. package/ts3.5/dist/es6/tabs/lib/menu/useMenuModel.d.ts +35 -0
  510. package/ts3.5/dist/es6/tabs/lib/overflow/index.d.ts +5 -0
  511. package/ts3.5/dist/es6/tabs/lib/overflow/useOverflowMeasureContainer.d.ts +8 -0
  512. package/ts3.5/dist/es6/tabs/lib/overflow/useOverflowMeasureItem.d.ts +10 -0
  513. package/ts3.5/dist/es6/tabs/lib/overflow/useOverflowModel.d.ts +69 -0
  514. package/ts3.5/dist/es6/tabs/lib/overflow/useOverflowTarget.d.ts +11 -0
  515. package/ts3.5/dist/es6/tabs/lib/selection/index.d.ts +4 -0
  516. package/ts3.5/dist/es6/tabs/lib/selection/useResetCursorOnBlur.d.ts +13 -0
  517. package/ts3.5/dist/es6/tabs/lib/selection/useSelectionItem.d.ts +8 -0
  518. package/ts3.5/dist/es6/tabs/lib/selection/useSelectionModel.d.ts +62 -0
  519. package/ts3.5/dist/es6/tabs/lib/useTabsModel.d.ts +39 -38
  520. package/ts3.5/dist/es6/tooltip/lib/OverflowTooltip.d.ts +10 -0
  521. package/ts3.5/dist/es6/tooltip/lib/useTooltip.d.ts +1 -1
  522. package/dist/commonjs/tabs/lib/Tab.d.ts +0 -49
  523. package/dist/commonjs/tabs/lib/Tab.d.ts.map +0 -1
  524. package/dist/commonjs/tabs/lib/Tab.js +0 -101
  525. package/dist/commonjs/tabs/lib/TabList.d.ts.map +0 -1
  526. package/dist/commonjs/tabs/lib/TabPanel.d.ts.map +0 -1
  527. package/dist/commonjs/tabs/lib/TabPanel.js +0 -56
  528. package/dist/commonjs/tabs/lib/cursor/hooks.d.ts +0 -39
  529. package/dist/commonjs/tabs/lib/cursor/hooks.d.ts.map +0 -1
  530. package/dist/commonjs/tabs/lib/hooks.d.ts +0 -10
  531. package/dist/commonjs/tabs/lib/hooks.d.ts.map +0 -1
  532. package/dist/commonjs/tabs/lib/list/hooks.d.ts +0 -11
  533. package/dist/commonjs/tabs/lib/list/hooks.d.ts.map +0 -1
  534. package/dist/commonjs/tabs/lib/list/hooks.js +0 -39
  535. package/dist/es6/tabs/lib/Tab.d.ts +0 -49
  536. package/dist/es6/tabs/lib/Tab.d.ts.map +0 -1
  537. package/dist/es6/tabs/lib/Tab.js +0 -92
  538. package/dist/es6/tabs/lib/TabList.d.ts.map +0 -1
  539. package/dist/es6/tabs/lib/TabPanel.d.ts.map +0 -1
  540. package/dist/es6/tabs/lib/TabPanel.js +0 -51
  541. package/dist/es6/tabs/lib/cursor/hooks.d.ts +0 -39
  542. package/dist/es6/tabs/lib/cursor/hooks.d.ts.map +0 -1
  543. package/dist/es6/tabs/lib/cursor/hooks.js +0 -108
  544. package/dist/es6/tabs/lib/hooks.d.ts +0 -10
  545. package/dist/es6/tabs/lib/hooks.d.ts.map +0 -1
  546. package/dist/es6/tabs/lib/list/hooks.d.ts +0 -11
  547. package/dist/es6/tabs/lib/list/hooks.d.ts.map +0 -1
  548. package/dist/es6/tabs/lib/list/hooks.js +0 -34
  549. package/tabs/lib/Tab.tsx +0 -176
  550. package/tabs/lib/TabList.tsx +0 -59
  551. package/tabs/lib/cursor/hooks.tsx +0 -122
  552. package/tabs/lib/hooks.tsx +0 -31
  553. package/tabs/lib/list/hooks.tsx +0 -45
  554. package/ts3.5/dist/commonjs/tabs/lib/Tab.d.ts +0 -49
  555. package/ts3.5/dist/commonjs/tabs/lib/cursor/hooks.d.ts +0 -39
  556. package/ts3.5/dist/commonjs/tabs/lib/hooks.d.ts +0 -10
  557. package/ts3.5/dist/commonjs/tabs/lib/list/hooks.d.ts +0 -11
  558. package/ts3.5/dist/es6/tabs/lib/Tab.d.ts +0 -49
  559. package/ts3.5/dist/es6/tabs/lib/cursor/hooks.d.ts +0 -39
  560. package/ts3.5/dist/es6/tabs/lib/hooks.d.ts +0 -10
  561. package/ts3.5/dist/es6/tabs/lib/list/hooks.d.ts +0 -11
@@ -10,7 +10,7 @@ import {
10
10
  focusRing,
11
11
  } from '@workday/canvas-kit-react/common';
12
12
  import {CanvasSystemIcon} from '@workday/design-assets-types';
13
- import {ButtonColors} from './types';
13
+ import {ButtonColors, ButtonSizes, IconPositions} from './types';
14
14
  import {ButtonContainer, ButtonLabel, ButtonLabelData, ButtonLabelIcon} from './parts';
15
15
 
16
16
  export interface SecondaryButtonProps extends Themeable, GrowthBehavior {
@@ -20,10 +20,12 @@ export interface SecondaryButtonProps extends Themeable, GrowthBehavior {
20
20
  */
21
21
  variant?: 'inverse' | undefined;
22
22
  /**
23
- * The size of the Button.
23
+ * There are four button sizes: `extraSmall`, `small`, `medium`, and `large`.
24
+ * If no size is provided, it will default to `medium`.
25
+ *
24
26
  * @default 'medium'
25
27
  */
26
- size?: 'small' | 'medium' | 'large';
28
+ size?: ButtonSizes;
27
29
  /**
28
30
  * The data label of the Button.
29
31
  * Note: not displayed at `small` size
@@ -35,10 +37,11 @@ export interface SecondaryButtonProps extends Themeable, GrowthBehavior {
35
37
  */
36
38
  icon?: CanvasSystemIcon;
37
39
  /**
38
- * The position of the TertiaryButton icon.
40
+ * Button icon positions can either be `left` or `right`.
41
+ * If no value is provided, it defaults to `left`.
39
42
  * @default 'left'
40
43
  */
41
- iconPosition?: 'left' | 'right';
44
+ iconPosition?: IconPositions;
42
45
  /**
43
46
  * If set to `true`, transform the icon's x-axis to mirror the graphic
44
47
  * @default false
@@ -47,6 +50,16 @@ export interface SecondaryButtonProps extends Themeable, GrowthBehavior {
47
50
  children?: React.ReactNode;
48
51
  }
49
52
 
53
+ // Button sizes where data labels are enabled
54
+ const dataLabelSizes = ['medium', 'large'];
55
+ // All disabled buttons are set to 40% opacity.
56
+ // This will eventually live in the ButtonContainer styles, but for now we're scoping it to Primary, Secondary, and Tertiary buttons.
57
+ const disabledButtonOpacity = {
58
+ '&:disabled, &:disabled:active': {
59
+ opacity: 0.4,
60
+ },
61
+ };
62
+
50
63
  export const SecondaryButton = createComponent('button')({
51
64
  displayName: 'SecondaryButton',
52
65
  Component: (
@@ -71,9 +84,10 @@ export const SecondaryButton = createComponent('button')({
71
84
  as={Element}
72
85
  colors={getSecondaryButtonColors(variant, theme)}
73
86
  size={size}
87
+ extraStyles={disabledButtonOpacity}
74
88
  {...elemProps}
75
89
  >
76
- {icon && size !== 'small' && iconPosition === 'left' && (
90
+ {icon && iconPosition === 'left' && (
77
91
  <ButtonLabelIcon
78
92
  size={size}
79
93
  iconPosition={iconPosition}
@@ -82,8 +96,8 @@ export const SecondaryButton = createComponent('button')({
82
96
  />
83
97
  )}
84
98
  <ButtonLabel>{children}</ButtonLabel>
85
- {dataLabel && size !== 'small' && <ButtonLabelData>{dataLabel}</ButtonLabelData>}
86
- {icon && size !== 'small' && iconPosition === 'right' && (
99
+ {dataLabel && dataLabelSizes.includes(size) && <ButtonLabelData>{dataLabel}</ButtonLabelData>}
100
+ {icon && iconPosition === 'right' && (
87
101
  <ButtonLabelIcon
88
102
  size={size}
89
103
  iconPosition={iconPosition}
@@ -136,12 +150,13 @@ export const getSecondaryButtonColors = (
136
150
  label: colors.blackPepper400,
137
151
  labelData: colors.blackPepper400,
138
152
  },
153
+ // Identical to 'default' styles. ButtonContainer will set opacity to 40%
139
154
  disabled: {
140
155
  background: 'transparent',
141
- border: 'rgba(30, 30, 30, 0.4)', // Black Pepper 400 @ 40%
142
- icon: 'rgba(30, 30, 30, 0.4)', // Black Pepper 400 @ 40%
143
- label: 'rgba(30, 30, 30, 0.4)', // Black Pepper 400 @ 40%
144
- labelData: 'rgba(30, 30, 30, 0.4)', // Black Pepper 400 @ 40%
156
+ border: colors.blackPepper400,
157
+ icon: colors.blackPepper400,
158
+ label: colors.blackPepper400,
159
+ labelData: colors.blackPepper400,
145
160
  },
146
161
  };
147
162
  case 'inverse':
@@ -180,12 +195,12 @@ export const getSecondaryButtonColors = (
180
195
  theme
181
196
  ),
182
197
  },
198
+ // Identical to inverse 'default' styles. ButtonContainer will set opacity to 40%
183
199
  disabled: {
184
200
  background: 'transparent',
185
- border: 'rgba(255, 255, 255, 0.4)', // French Vanilla 400 @ 40%
186
- icon: 'rgba(255, 255, 255, 0.4)', // French Vanilla 400 @ 40%
187
- label: 'rgba(255, 255, 255, 0.4)', // French Vanilla 400 @ 40%
188
- labelData: 'rgba(255, 255, 255, 0.4)', // French Vanilla 400 @ 40%
201
+ border: colors.frenchVanilla100,
202
+ icon: colors.frenchVanilla100,
203
+ label: colors.frenchVanilla100,
189
204
  },
190
205
  };
191
206
  }
@@ -7,9 +7,9 @@ import {
7
7
  EmotionCanvasTheme,
8
8
  createComponent,
9
9
  } from '@workday/canvas-kit-react/common';
10
- import {colors, space, type, borderRadius} from '@workday/canvas-kit-react/tokens';
10
+ import {colors, space, borderRadius} from '@workday/canvas-kit-react/tokens';
11
11
  import {CanvasSystemIcon} from '@workday/design-assets-types';
12
- import {ButtonColors} from './types';
12
+ import {ButtonColors, TertiaryButtonSizes, IconPositions} from './types';
13
13
  import {ButtonContainer, ButtonLabelIcon, ButtonLabel} from './parts';
14
14
 
15
15
  export interface TertiaryButtonProps extends Themeable {
@@ -19,15 +19,18 @@ export interface TertiaryButtonProps extends Themeable {
19
19
  */
20
20
  variant?: 'inverse' | undefined;
21
21
  /**
22
- * The size of the TertiaryButton.
22
+ * There are three button sizes: `extraSmall`, `small`, and `medium`.
23
+ * If no size is provided, it will default to `medium`.
24
+ *
23
25
  * @default 'medium'
24
26
  */
25
- size?: 'small' | 'medium';
27
+ size?: TertiaryButtonSizes;
26
28
  /**
27
- * The position of the TertiaryButton icon.
29
+ * Button icon positions can either be `left` or `right`.
30
+ * If no value is provided, it defaults to `left`.
28
31
  * @default 'left'
29
32
  */
30
- iconPosition?: 'left' | 'right';
33
+ iconPosition?: IconPositions;
31
34
  /**
32
35
  * The icon of the TertiaryButton.
33
36
  */
@@ -87,8 +90,8 @@ const getTertiaryButtonColors = (
87
90
  },
88
91
  disabled: {
89
92
  background: 'transparent',
90
- icon: 'rgba(255, 255, 255, 0.5)',
91
- label: 'rgba(255, 255, 255, 0.5)',
93
+ icon: colors.frenchVanilla100,
94
+ label: colors.frenchVanilla100,
92
95
  },
93
96
  };
94
97
  } else {
@@ -113,26 +116,34 @@ const getTertiaryButtonColors = (
113
116
  focusRing: focusRing({}, theme),
114
117
  },
115
118
  disabled: {
116
- background: 'transparent',
117
- icon: themePrimary.light,
118
- label: themePrimary.light,
119
+ icon: themePrimary.main,
120
+ label: themePrimary.main,
119
121
  },
120
122
  };
121
123
  }
122
124
  };
123
125
 
124
- const containerStyles = {
125
- borderRadius: borderRadius.m,
126
- border: '0',
127
- padding: `0 ${space.xxs}`,
128
- minWidth: 'auto',
129
- '.wdc-text-button-label': {
130
- borderBottom: '2px solid transparent',
131
- paddingTop: '2px',
132
- transition: 'border-color 0.3s',
133
- },
134
- '&:hover:not([disabled]) .wdc-text-button-label': {
135
- borderBottomColor: 'currentColor',
126
+ const getPaddingStyles = (
127
+ icon: CanvasSystemIcon | undefined,
128
+ iconPosition: 'left' | 'right'
129
+ ): string => {
130
+ // if there is an icon on the left, add 4px extra padding to the right for visual balance
131
+ if (icon && iconPosition === 'left') {
132
+ return `0 ${space.xs} 0 ${space.xxs}`;
133
+ }
134
+ // if there is an icon on the right, add 4px extra padding to the left for visual balance
135
+ if (icon && iconPosition === 'right') {
136
+ return `0 ${space.xxs} 0 ${space.xs}`;
137
+ }
138
+ // if there is no icon, return the default padding
139
+ return `0 ${space.xxs}`;
140
+ };
141
+
142
+ // All disabled buttons are set to 40% opacity.
143
+ // This will eventually live in the ButtonContainer styles, but for now we're scoping it to Primary, Secondary, and Tertiary buttons.
144
+ const disabledButtonOpacity = {
145
+ '&:disabled, &:disabled:active': {
146
+ opacity: 0.4,
136
147
  },
137
148
  };
138
149
 
@@ -155,19 +166,17 @@ export const TertiaryButton = createComponent('button')({
155
166
  ref,
156
167
  Element
157
168
  ) => {
158
- // Note: We don't use ButtonLabel because the label styles differ from other button types
159
- const allContainerStyles: CSSObject = allCaps
160
- ? {
161
- ...containerStyles,
162
- textTransform: 'uppercase',
163
- fontWeight: type.properties.fontWeights.bold,
164
- fontSize: size === 'medium' ? type.properties.fontSizes[16] : undefined,
165
- letterSpacing: '.5px',
166
- }
167
- : {
168
- ...containerStyles,
169
- fontSize: size === 'medium' ? type.properties.fontSizes[14] : undefined,
170
- };
169
+ const allContainerStyles: CSSObject = {
170
+ borderRadius: borderRadius.m,
171
+ border: '0',
172
+ padding: getPaddingStyles(icon, iconPosition),
173
+ minWidth: 'auto',
174
+ textTransform: allCaps ? 'uppercase' : undefined,
175
+ '.wdc-text-button-label': {
176
+ textDecoration: 'underline',
177
+ },
178
+ ...disabledButtonOpacity,
179
+ };
171
180
 
172
181
  return (
173
182
  <ButtonContainer
@@ -142,6 +142,8 @@ export const ButtonContainer = styled('button', {
142
142
  };
143
143
  case 'extraSmall':
144
144
  return {
145
+ ...type.levels.subtext.medium,
146
+ fontWeight: type.properties.fontWeights.bold,
145
147
  height: space.m,
146
148
  padding: `0 ${space.xs}`,
147
149
  '& > * ': {
@@ -28,5 +28,6 @@ export interface ButtonColors {
28
28
  * @default 'medium'
29
29
  */
30
30
  export type ButtonSizes = 'extraSmall' | 'small' | 'medium' | 'large';
31
-
31
+ // TODO: Remove TertiaryButtonSizes in favor of button sizes when we add Tertiary large
32
+ export type TertiaryButtonSizes = 'extraSmall' | 'small' | 'medium';
32
33
  export type IconPositions = 'left' | 'right';
package/common/index.ts CHANGED
@@ -6,3 +6,4 @@ export * from './lib/styles';
6
6
  export * from './lib/utils';
7
7
  export * from './lib/CanvasProvider';
8
8
  export * from './lib/InputProvider';
9
+ export * from './lib/EllipsisText';
@@ -0,0 +1,11 @@
1
+ import styled, {CSSObject} from '@emotion/styled';
2
+ import {ElementComponent} from '..';
3
+
4
+ export const ellipsisStyles: CSSObject = {
5
+ whiteSpace: 'nowrap',
6
+ textOverflow: 'ellipsis',
7
+ overflow: 'hidden',
8
+ };
9
+
10
+ // Recast as an `ElementComponent` due to better type support for `as` and `ref`
11
+ export const EllipsisText = (styled('span')(ellipsisStyles) as any) as ElementComponent<'span', {}>;
@@ -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
  }
@@ -11,4 +11,5 @@ export * from './components';
11
11
  export * from './models';
12
12
  export * from './elements';
13
13
  export * from './useWindowSize';
14
+ export * from './useResizeObserver';
14
15
  export * from './StaticStates';
@@ -39,6 +39,10 @@ export function mergeProps<T extends object, S extends object>(
39
39
  typeof targetProps[key] === 'function'
40
40
  ) {
41
41
  // we don't support removing callbacks via `undefined`, so do nothing here
42
+ } else if (key === 'ref' && sourceProps.hasOwnProperty('ref')) {
43
+ // refs should never be overridden. This doesn't happen normally, but happens with hook
44
+ // composition
45
+ (returnProps as any).ref = (returnProps as any).ref || (sourceProps as any).ref;
42
46
  } else {
43
47
  // @ts-ignore TS has more object constraint complaints that aren't useful here
44
48
  returnProps[key] = sourceProps[key];
@@ -0,0 +1,18 @@
1
+ import {useRef} from 'react';
2
+
3
+ /**
4
+ * Get a constant value in React, only running the callback function once. `React.useMemo` does not
5
+ * guarantee that a function will only be run once.
6
+ *
7
+ * @example
8
+ * const value = useConstant(generateUniqueId)
9
+ */
10
+ export function useConstant<T>(fn: () => T): T {
11
+ const ref = useRef<T>();
12
+
13
+ if (!ref.current) {
14
+ ref.current = fn();
15
+ }
16
+
17
+ return ref.current;
18
+ }
@@ -0,0 +1,29 @@
1
+ import React from 'react';
2
+
3
+ import useResizeObserverOriginal from 'use-resize-observer';
4
+ import ResizeObserver from 'resize-observer-polyfill';
5
+
6
+ if (typeof window !== 'undefined' && !(window as any).ResizeObserver) {
7
+ (window as any).ResizeObserver = ResizeObserver;
8
+ }
9
+
10
+ // `useResizeObserver` contains this fix in 8.0.0:
11
+ // https://github.com/ZeeCoder/use-resize-observer/commit/bd0f3c8597bac0d853b88cf585256aac1bd4f554
12
+ // v8.0.0 requires TS4.2. So we'll manually patch until we're ready for TS4.2+
13
+ export const useResizeObserver: typeof useResizeObserverOriginal = (params = {}) => {
14
+ const widthRef = React.useRef<number | undefined>();
15
+ const heightRef = React.useRef<number | undefined>();
16
+ const onResize = params.onResize
17
+ ? (data: {width: number | undefined; height: number | undefined}) => {
18
+ if (widthRef.current !== data.width || heightRef.current !== data.height) {
19
+ widthRef.current = data.width;
20
+ heightRef.current = data.height;
21
+ params.onResize!(data);
22
+ }
23
+ }
24
+ : undefined;
25
+ return useResizeObserverOriginal({...params, onResize});
26
+ };
27
+
28
+ // When the dependency is moved up to v8.0.0, remove the above function and export below instead
29
+ // export {useResizeObserver};
@@ -1,7 +1,8 @@
1
- import * as React from 'react';
2
1
  import uuid from 'uuid/v4';
3
2
 
4
- export const generateUniqueId = () => uuid().replace(/^[0-9]*/gi, '');
3
+ import {useConstant} from './useConstant';
4
+
5
+ export const generateUniqueId = () => uuid().replace(/^[0-9\-]*/gi, '');
5
6
 
6
7
  /**
7
8
  * Generate a unique ID if one is not provided. The generated ID will be stable across renders
@@ -9,7 +10,7 @@ export const generateUniqueId = () => uuid().replace(/^[0-9]*/gi, '');
9
10
  */
10
11
  export const useUniqueId = (id?: string) => {
11
12
  // https://codesandbox.io/s/react-functional-component-ids-p2ndq
12
- const [generatedId] = React.useState(generateUniqueId);
13
+ const generatedId = useConstant(generateUniqueId);
13
14
  return id || generatedId;
14
15
  };
15
16
 
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { GrowthBehavior, Themeable, EmotionCanvasTheme } from '@workday/canvas-kit-react/common';
3
3
  import { CanvasSystemIcon } from '@workday/design-assets-types';
4
- import { ButtonColors } from './types';
4
+ import { ButtonColors, ButtonSizes, IconPositions } from './types';
5
5
  export interface SecondaryButtonProps extends Themeable, GrowthBehavior {
6
6
  /**
7
7
  * The variant of the SecondaryButton.
@@ -9,10 +9,12 @@ export interface SecondaryButtonProps extends Themeable, GrowthBehavior {
9
9
  */
10
10
  variant?: 'inverse' | undefined;
11
11
  /**
12
- * The size of the Button.
12
+ * There are four button sizes: `extraSmall`, `small`, `medium`, and `large`.
13
+ * If no size is provided, it will default to `medium`.
14
+ *
13
15
  * @default 'medium'
14
16
  */
15
- size?: 'small' | 'medium' | 'large';
17
+ size?: ButtonSizes;
16
18
  /**
17
19
  * The data label of the Button.
18
20
  * Note: not displayed at `small` size
@@ -24,10 +26,11 @@ export interface SecondaryButtonProps extends Themeable, GrowthBehavior {
24
26
  */
25
27
  icon?: CanvasSystemIcon;
26
28
  /**
27
- * The position of the TertiaryButton icon.
29
+ * Button icon positions can either be `left` or `right`.
30
+ * If no value is provided, it defaults to `left`.
28
31
  * @default 'left'
29
32
  */
30
- iconPosition?: 'left' | 'right';
33
+ iconPosition?: IconPositions;
31
34
  /**
32
35
  * If set to `true`, transform the icon's x-axis to mirror the graphic
33
36
  * @default false
@@ -1 +1 @@
1
- {"version":3,"file":"SecondaryButton.d.ts","sourceRoot":"","sources":["../../../../button/lib/SecondaryButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EACL,cAAc,EAEd,SAAS,EACT,kBAAkB,EAGnB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAC,gBAAgB,EAAC,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAC,YAAY,EAAC,MAAM,SAAS,CAAC;AAGrC,MAAM,WAAW,oBAAqB,SAAQ,SAAS,EAAE,cAAc;IACrE;;;OAGG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAChC;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,eAAO,MAAM,eAAe,yEA8C1B,CAAC;AAEH,eAAO,MAAM,wBAAwB,6EA8FpC,CAAC"}
1
+ {"version":3,"file":"SecondaryButton.d.ts","sourceRoot":"","sources":["../../../../button/lib/SecondaryButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EACL,cAAc,EAEd,SAAS,EACT,kBAAkB,EAGnB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAC,gBAAgB,EAAC,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAC,YAAY,EAAE,WAAW,EAAE,aAAa,EAAC,MAAM,SAAS,CAAC;AAGjE,MAAM,WAAW,oBAAqB,SAAQ,SAAS,EAAE,cAAc;IACrE;;;OAGG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAChC;;;;;OAKG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB;;;;OAIG;IACH,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAYD,eAAO,MAAM,eAAe,yEA+C1B,CAAC;AAEH,eAAO,MAAM,wBAAwB,6EA+FpC,CAAC"}
@@ -33,6 +33,15 @@ var React = __importStar(require("react"));
33
33
  var tokens_1 = require("@workday/canvas-kit-react/tokens");
34
34
  var common_1 = require("@workday/canvas-kit-react/common");
35
35
  var parts_1 = require("./parts");
36
+ // Button sizes where data labels are enabled
37
+ var dataLabelSizes = ['medium', 'large'];
38
+ // All disabled buttons are set to 40% opacity.
39
+ // This will eventually live in the ButtonContainer styles, but for now we're scoping it to Primary, Secondary, and Tertiary buttons.
40
+ var disabledButtonOpacity = {
41
+ '&:disabled, &:disabled:active': {
42
+ opacity: 0.4,
43
+ },
44
+ };
36
45
  exports.SecondaryButton = common_1.createComponent('button')({
37
46
  displayName: 'SecondaryButton',
38
47
  Component: function (_a, ref, Element) {
@@ -43,11 +52,11 @@ exports.SecondaryButton = common_1.createComponent('button')({
43
52
  // TODO: Fix useTheme and make it a real hook
44
53
  // eslint-disable-next-line react-hooks/rules-of-hooks
45
54
  theme = _b === void 0 ? common_1.useTheme() : _b, _c = _a.size, size = _c === void 0 ? 'medium' : _c, _d = _a.iconPosition, iconPosition = _d === void 0 ? 'left' : _d, variant = _a.variant, dataLabel = _a.dataLabel, icon = _a.icon, _e = _a.shouldMirrorIcon, shouldMirrorIcon = _e === void 0 ? false : _e, children = _a.children, elemProps = __rest(_a, ["theme", "size", "iconPosition", "variant", "dataLabel", "icon", "shouldMirrorIcon", "children"]);
46
- return (React.createElement(parts_1.ButtonContainer, __assign({ ref: ref, as: Element, colors: exports.getSecondaryButtonColors(variant, theme), size: size }, elemProps),
47
- icon && size !== 'small' && iconPosition === 'left' && (React.createElement(parts_1.ButtonLabelIcon, { size: size, iconPosition: iconPosition, icon: icon, shouldMirrorIcon: shouldMirrorIcon })),
55
+ return (React.createElement(parts_1.ButtonContainer, __assign({ ref: ref, as: Element, colors: exports.getSecondaryButtonColors(variant, theme), size: size, extraStyles: disabledButtonOpacity }, elemProps),
56
+ icon && iconPosition === 'left' && (React.createElement(parts_1.ButtonLabelIcon, { size: size, iconPosition: iconPosition, icon: icon, shouldMirrorIcon: shouldMirrorIcon })),
48
57
  React.createElement(parts_1.ButtonLabel, null, children),
49
- dataLabel && size !== 'small' && React.createElement(parts_1.ButtonLabelData, null, dataLabel),
50
- icon && size !== 'small' && iconPosition === 'right' && (React.createElement(parts_1.ButtonLabelIcon, { size: size, iconPosition: iconPosition, icon: icon, shouldMirrorIcon: shouldMirrorIcon }))));
58
+ dataLabel && dataLabelSizes.includes(size) && React.createElement(parts_1.ButtonLabelData, null, dataLabel),
59
+ icon && iconPosition === 'right' && (React.createElement(parts_1.ButtonLabelIcon, { size: size, iconPosition: iconPosition, icon: icon, shouldMirrorIcon: shouldMirrorIcon }))));
51
60
  },
52
61
  });
53
62
  exports.getSecondaryButtonColors = function (variant, theme) {
@@ -83,12 +92,13 @@ exports.getSecondaryButtonColors = function (variant, theme) {
83
92
  label: tokens_1.colors.blackPepper400,
84
93
  labelData: tokens_1.colors.blackPepper400,
85
94
  },
95
+ // Identical to 'default' styles. ButtonContainer will set opacity to 40%
86
96
  disabled: {
87
97
  background: 'transparent',
88
- border: 'rgba(30, 30, 30, 0.4)',
89
- icon: 'rgba(30, 30, 30, 0.4)',
90
- label: 'rgba(30, 30, 30, 0.4)',
91
- labelData: 'rgba(30, 30, 30, 0.4)',
98
+ border: tokens_1.colors.blackPepper400,
99
+ icon: tokens_1.colors.blackPepper400,
100
+ label: tokens_1.colors.blackPepper400,
101
+ labelData: tokens_1.colors.blackPepper400,
92
102
  },
93
103
  };
94
104
  case 'inverse':
@@ -124,12 +134,12 @@ exports.getSecondaryButtonColors = function (variant, theme) {
124
134
  outerColor: tokens_1.colors.frenchVanilla100,
125
135
  }, theme),
126
136
  },
137
+ // Identical to inverse 'default' styles. ButtonContainer will set opacity to 40%
127
138
  disabled: {
128
139
  background: 'transparent',
129
- border: 'rgba(255, 255, 255, 0.4)',
130
- icon: 'rgba(255, 255, 255, 0.4)',
131
- label: 'rgba(255, 255, 255, 0.4)',
132
- labelData: 'rgba(255, 255, 255, 0.4)',
140
+ border: tokens_1.colors.frenchVanilla100,
141
+ icon: tokens_1.colors.frenchVanilla100,
142
+ label: tokens_1.colors.frenchVanilla100,
133
143
  },
134
144
  };
135
145
  }