@workday/canvas-kit-react 9.0.0-alpha.368-next.6 → 9.0.0-alpha.382-next.2

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 (602) hide show
  1. package/action-bar/lib/ActionBarList.tsx +2 -2
  2. package/banner/lib/hooks/index.ts +2 -0
  3. package/banner/lib/hooks/useThemedPalette.ts +3 -3
  4. package/common/lib/theming/README.md +97 -0
  5. package/common/lib/theming/index.ts +1 -1
  6. package/common/lib/theming/useTheme.ts +79 -22
  7. package/common/lib/theming/useThemedRing.ts +114 -0
  8. package/common/lib/utils/colorUtils.ts +20 -7
  9. package/common/lib/utils/components.ts +4 -0
  10. package/common/lib/utils/memoize.ts +1 -1
  11. package/dist/commonjs/action-bar/lib/ActionBar.js +8 -9
  12. package/dist/commonjs/action-bar/lib/ActionBarItem.js +7 -18
  13. package/dist/commonjs/action-bar/lib/ActionBarList.js +13 -38
  14. package/dist/commonjs/action-bar/lib/ActionBarOverflowButton.js +13 -24
  15. package/dist/commonjs/action-bar/lib/useActionBarModel.js +39 -38
  16. package/dist/commonjs/avatar/lib/Avatar.js +52 -74
  17. package/dist/commonjs/badge/lib/CountBadge.js +23 -43
  18. package/dist/commonjs/banner/lib/Banner.js +32 -48
  19. package/dist/commonjs/banner/lib/BannerActionText.js +7 -30
  20. package/dist/commonjs/banner/lib/BannerIcon.js +9 -31
  21. package/dist/commonjs/banner/lib/BannerLabel.js +6 -29
  22. package/dist/commonjs/banner/lib/hooks/index.d.ts +2 -0
  23. package/dist/commonjs/banner/lib/hooks/index.d.ts.map +1 -1
  24. package/dist/commonjs/banner/lib/hooks/index.js +3 -0
  25. package/dist/commonjs/banner/lib/hooks/useBanner.js +5 -6
  26. package/dist/commonjs/banner/lib/hooks/useBannerActionText.js +4 -5
  27. package/dist/commonjs/banner/lib/hooks/useBannerIcon.js +6 -7
  28. package/dist/commonjs/banner/lib/hooks/useBannerLabel.js +4 -5
  29. package/dist/commonjs/banner/lib/hooks/useBannerModel.js +8 -16
  30. package/dist/commonjs/banner/lib/hooks/useThemedPalette.d.ts +1 -1
  31. package/dist/commonjs/banner/lib/hooks/useThemedPalette.d.ts.map +1 -1
  32. package/dist/commonjs/banner/lib/hooks/useThemedPalette.js +11 -11
  33. package/dist/commonjs/breadcrumbs/lib/Breadcrumbs.js +12 -35
  34. package/dist/commonjs/breadcrumbs/lib/BreadcrumbsCurrentItem.js +14 -37
  35. package/dist/commonjs/breadcrumbs/lib/BreadcrumbsItem.js +14 -39
  36. package/dist/commonjs/breadcrumbs/lib/BreadcrumbsLink.js +15 -36
  37. package/dist/commonjs/breadcrumbs/lib/BreadcrumbsList.js +10 -33
  38. package/dist/commonjs/breadcrumbs/lib/BreadcrumbsMenu.js +7 -19
  39. package/dist/commonjs/breadcrumbs/lib/BreadcrumbsOverflowButton.js +15 -38
  40. package/dist/commonjs/breadcrumbs/lib/hooks/useBreadcrumbsModel.js +38 -37
  41. package/dist/commonjs/breadcrumbs/lib/hooks/utils/index.js +4 -4
  42. package/dist/commonjs/button/lib/BaseButton.js +128 -78
  43. package/dist/commonjs/button/lib/DeleteButton.js +27 -58
  44. package/dist/commonjs/button/lib/ExternalHyperlink.js +25 -39
  45. package/dist/commonjs/button/lib/Hyperlink.js +9 -34
  46. package/dist/commonjs/button/lib/PrimaryButton.js +9 -32
  47. package/dist/commonjs/button/lib/SecondaryButton.js +9 -32
  48. package/dist/commonjs/button/lib/TertiaryButton.js +23 -49
  49. package/dist/commonjs/button/lib/ToolbarDropdownButton.js +13 -39
  50. package/dist/commonjs/button/lib/ToolbarIconButton.js +16 -43
  51. package/dist/commonjs/button/lib/deprecated_Button.js +51 -54
  52. package/dist/commonjs/button/lib/parts/ButtonLabel.js +6 -29
  53. package/dist/commonjs/button/lib/parts/ButtonLabelIcon.js +7 -30
  54. package/dist/commonjs/card/lib/Card.js +8 -31
  55. package/dist/commonjs/card/lib/CardBody.js +6 -29
  56. package/dist/commonjs/card/lib/CardHeading.js +5 -28
  57. package/dist/commonjs/checkbox/lib/Checkbox.js +120 -129
  58. package/dist/commonjs/collection/lib/ListBox.js +11 -34
  59. package/dist/commonjs/collection/lib/react-virtual.js +2 -2
  60. package/dist/commonjs/collection/lib/useBaseListModel.js +57 -61
  61. package/dist/commonjs/collection/lib/useCursorListModel.js +98 -130
  62. package/dist/commonjs/collection/lib/useGridModel.js +14 -32
  63. package/dist/commonjs/collection/lib/useListItemRegister.js +16 -18
  64. package/dist/commonjs/collection/lib/useListItemRovingFocus.js +35 -40
  65. package/dist/commonjs/collection/lib/useListItemSelect.js +6 -8
  66. package/dist/commonjs/collection/lib/useListModel.js +2 -2
  67. package/dist/commonjs/collection/lib/useListRenderItem.js +9 -9
  68. package/dist/commonjs/collection/lib/useListResetCursorOnBlur.js +9 -10
  69. package/dist/commonjs/collection/lib/useOverflowListItemMeasure.js +10 -11
  70. package/dist/commonjs/collection/lib/useOverflowListMeasure.js +8 -8
  71. package/dist/commonjs/collection/lib/useOverflowListModel.js +61 -56
  72. package/dist/commonjs/collection/lib/useOverflowListTarget.js +10 -10
  73. package/dist/commonjs/collection/lib/useSelectionListModel.js +31 -37
  74. package/dist/commonjs/color-picker/lib/ColorInput.js +45 -81
  75. package/dist/commonjs/color-picker/lib/ColorPreview.js +7 -32
  76. package/dist/commonjs/color-picker/lib/parts/ColorSwatch.js +15 -43
  77. package/dist/commonjs/common/lib/CanvasProvider.js +15 -57
  78. package/dist/commonjs/common/lib/EllipsisText.js +6 -18
  79. package/dist/commonjs/common/lib/InputProvider.js +73 -93
  80. package/dist/commonjs/common/lib/parts/_brand-assets.js +6 -6
  81. package/dist/commonjs/common/lib/responsive/useResponsiveContainerStyles.js +22 -49
  82. package/dist/commonjs/common/lib/styles/errorRing.js +11 -10
  83. package/dist/commonjs/common/lib/styles/focusRing.js +19 -21
  84. package/dist/commonjs/common/lib/styles/hideMouseFocus.js +13 -9
  85. package/dist/commonjs/common/lib/theming/breakpoints.js +10 -10
  86. package/dist/commonjs/common/lib/theming/createCanvasTheme.js +36 -65
  87. package/dist/commonjs/common/lib/theming/getObjectProxy.js +3 -3
  88. package/dist/commonjs/common/lib/theming/index.d.ts +1 -1
  89. package/dist/commonjs/common/lib/theming/index.d.ts.map +1 -1
  90. package/dist/commonjs/common/lib/theming/index.js +1 -1
  91. package/dist/commonjs/common/lib/theming/styled.js +10 -14
  92. package/dist/commonjs/common/lib/theming/theme.js +3 -3
  93. package/dist/commonjs/common/lib/theming/useIsRTL.js +5 -5
  94. package/dist/commonjs/common/lib/theming/useTheme.d.ts +49 -5
  95. package/dist/commonjs/common/lib/theming/useTheme.d.ts.map +1 -1
  96. package/dist/commonjs/common/lib/theming/useTheme.js +82 -37
  97. package/dist/commonjs/common/lib/theming/useThemedRing.d.ts +43 -0
  98. package/dist/commonjs/common/lib/theming/useThemedRing.d.ts.map +1 -0
  99. package/dist/commonjs/common/lib/theming/useThemedRing.js +100 -0
  100. package/dist/commonjs/common/lib/utils/changeFocus.js +3 -3
  101. package/dist/commonjs/common/lib/utils/colorUtils.d.ts +7 -0
  102. package/dist/commonjs/common/lib/utils/colorUtils.d.ts.map +1 -1
  103. package/dist/commonjs/common/lib/utils/colorUtils.js +28 -15
  104. package/dist/commonjs/common/lib/utils/components.d.ts +3 -1
  105. package/dist/commonjs/common/lib/utils/components.d.ts.map +1 -1
  106. package/dist/commonjs/common/lib/utils/components.js +46 -89
  107. package/dist/commonjs/common/lib/utils/deepMerge.js +4 -4
  108. package/dist/commonjs/common/lib/utils/elements.js +16 -16
  109. package/dist/commonjs/common/lib/utils/getTranslateFromOrigin.js +2 -2
  110. package/dist/commonjs/common/lib/utils/isWithinBreakpoint.js +1 -1
  111. package/dist/commonjs/common/lib/utils/makeMq.js +4 -4
  112. package/dist/commonjs/common/lib/utils/memoize.d.ts +1 -1
  113. package/dist/commonjs/common/lib/utils/memoize.d.ts.map +1 -1
  114. package/dist/commonjs/common/lib/utils/memoize.js +4 -8
  115. package/dist/commonjs/common/lib/utils/mergeCallback.js +1 -5
  116. package/dist/commonjs/common/lib/utils/mergeProps.js +5 -16
  117. package/dist/commonjs/common/lib/utils/models.js +48 -70
  118. package/dist/commonjs/common/lib/utils/useConstant.js +2 -2
  119. package/dist/commonjs/common/lib/utils/useIsFullscreen.js +7 -7
  120. package/dist/commonjs/common/lib/utils/useModalityType.js +9 -9
  121. package/dist/commonjs/common/lib/utils/useMount.js +3 -3
  122. package/dist/commonjs/common/lib/utils/useResizeObserver.js +9 -21
  123. package/dist/commonjs/common/lib/utils/useUniqueId.js +8 -8
  124. package/dist/commonjs/common/lib/utils/useWindowSize.js +10 -10
  125. package/dist/commonjs/dialog/lib/Dialog.js +7 -8
  126. package/dist/commonjs/dialog/lib/DialogCard.js +6 -17
  127. package/dist/commonjs/dialog/lib/DialogPopper.js +9 -32
  128. package/dist/commonjs/dialog/lib/hooks/useDialogCard.js +4 -5
  129. package/dist/commonjs/dialog/lib/hooks/useDialogModel.js +4 -4
  130. package/dist/commonjs/dialog/lib/hooks/useDialogPopper.js +4 -5
  131. package/dist/commonjs/disclosure/lib/useDisclosureModel.js +12 -12
  132. package/dist/commonjs/form-field/lib/FormField.js +41 -84
  133. package/dist/commonjs/form-field/lib/Hint.js +13 -47
  134. package/dist/commonjs/form-field/lib/Label.js +43 -86
  135. package/dist/commonjs/icon/lib/AccentIcon.d.ts +3 -2
  136. package/dist/commonjs/icon/lib/AccentIcon.d.ts.map +1 -1
  137. package/dist/commonjs/icon/lib/AccentIcon.js +15 -41
  138. package/dist/commonjs/icon/lib/AppletIcon.js +16 -40
  139. package/dist/commonjs/icon/lib/Graphic.js +9 -33
  140. package/dist/commonjs/icon/lib/Icon.js +12 -31
  141. package/dist/commonjs/icon/lib/Svg.js +11 -34
  142. package/dist/commonjs/icon/lib/SystemIcon.d.ts.map +1 -1
  143. package/dist/commonjs/icon/lib/SystemIcon.js +36 -63
  144. package/dist/commonjs/icon/lib/SystemIconCircle.d.ts +2 -1
  145. package/dist/commonjs/icon/lib/SystemIconCircle.d.ts.map +1 -1
  146. package/dist/commonjs/icon/lib/SystemIconCircle.js +18 -47
  147. package/dist/commonjs/icon/lib/utils.d.ts +0 -2
  148. package/dist/commonjs/icon/lib/utils.d.ts.map +1 -1
  149. package/dist/commonjs/icon/lib/utils.js +2 -10
  150. package/dist/commonjs/layout/lib/Box.js +26 -51
  151. package/dist/commonjs/layout/lib/Flex.js +8 -31
  152. package/dist/commonjs/layout/lib/Grid.js +11 -35
  153. package/dist/commonjs/layout/lib/utils/background.js +1 -1
  154. package/dist/commonjs/layout/lib/utils/border/color.js +1 -1
  155. package/dist/commonjs/layout/lib/utils/border/index.js +20 -24
  156. package/dist/commonjs/layout/lib/utils/border/lineStyle.js +1 -1
  157. package/dist/commonjs/layout/lib/utils/border/radius.js +1 -1
  158. package/dist/commonjs/layout/lib/utils/border/shorthand.js +1 -1
  159. package/dist/commonjs/layout/lib/utils/border/width.js +1 -1
  160. package/dist/commonjs/layout/lib/utils/buildStyleFns.js +40 -43
  161. package/dist/commonjs/layout/lib/utils/color.js +1 -1
  162. package/dist/commonjs/layout/lib/utils/depth.js +1 -1
  163. package/dist/commonjs/layout/lib/utils/flex.js +1 -1
  164. package/dist/commonjs/layout/lib/utils/flexItem.js +1 -1
  165. package/dist/commonjs/layout/lib/utils/getValidChildren.js +2 -4
  166. package/dist/commonjs/layout/lib/utils/grid.js +1 -1
  167. package/dist/commonjs/layout/lib/utils/gridItem.js +1 -1
  168. package/dist/commonjs/layout/lib/utils/layout.js +1 -1
  169. package/dist/commonjs/layout/lib/utils/other.js +1 -1
  170. package/dist/commonjs/layout/lib/utils/position.d.ts +4 -0
  171. package/dist/commonjs/layout/lib/utils/position.d.ts.map +1 -1
  172. package/dist/commonjs/layout/lib/utils/position.js +6 -1
  173. package/dist/commonjs/layout/lib/utils/space.js +1 -1
  174. package/dist/commonjs/layout/lib/utils/text.js +1 -1
  175. package/dist/commonjs/loading-dots/lib/LoadingDots.js +20 -42
  176. package/dist/commonjs/menu/lib/Menu.js +10 -11
  177. package/dist/commonjs/menu/lib/MenuCard.js +14 -26
  178. package/dist/commonjs/menu/lib/MenuContextTarget.js +9 -32
  179. package/dist/commonjs/menu/lib/MenuDivider.js +9 -20
  180. package/dist/commonjs/menu/lib/MenuItem.js +77 -86
  181. package/dist/commonjs/menu/lib/MenuList.js +8 -31
  182. package/dist/commonjs/menu/lib/MenuPopper.js +6 -29
  183. package/dist/commonjs/menu/lib/MenuTarget.js +11 -35
  184. package/dist/commonjs/menu/lib/useMenuModel.js +22 -24
  185. package/dist/commonjs/modal/lib/Modal.js +10 -10
  186. package/dist/commonjs/modal/lib/ModalBody.js +13 -26
  187. package/dist/commonjs/modal/lib/ModalCard.js +13 -27
  188. package/dist/commonjs/modal/lib/ModalHeading.js +13 -26
  189. package/dist/commonjs/modal/lib/ModalOverflowOverlay.js +8 -19
  190. package/dist/commonjs/modal/lib/ModalOverlay.js +39 -52
  191. package/dist/commonjs/modal/lib/hooks/useCloseOnOverlayClick.js +17 -17
  192. package/dist/commonjs/modal/lib/hooks/useModalCard.js +3 -3
  193. package/dist/commonjs/modal/lib/hooks/useModalHeading.js +7 -7
  194. package/dist/commonjs/modal/lib/hooks/useModalModel.js +5 -5
  195. package/dist/commonjs/pagination/lib/Pagination/AdditionalDetails.js +15 -36
  196. package/dist/commonjs/pagination/lib/Pagination/Controls.js +37 -63
  197. package/dist/commonjs/pagination/lib/Pagination/GoTo/Form.js +11 -34
  198. package/dist/commonjs/pagination/lib/Pagination/GoTo/Label.js +7 -30
  199. package/dist/commonjs/pagination/lib/Pagination/GoTo/TextInput.js +7 -18
  200. package/dist/commonjs/pagination/lib/Pagination/GoTo/useGoToForm.js +12 -13
  201. package/dist/commonjs/pagination/lib/Pagination/Nav.js +4 -15
  202. package/dist/commonjs/pagination/lib/Pagination/PageButton.js +15 -39
  203. package/dist/commonjs/pagination/lib/Pagination/PageList.js +10 -34
  204. package/dist/commonjs/pagination/lib/Pagination/Pagination.js +15 -37
  205. package/dist/commonjs/pagination/lib/Pagination/buildPageRange.js +9 -15
  206. package/dist/commonjs/pagination/lib/Pagination/common/List.js +8 -32
  207. package/dist/commonjs/pagination/lib/Pagination/common/useLiveRegion.js +8 -26
  208. package/dist/commonjs/pagination/lib/Pagination/common/utils/getValidChildren.js +2 -4
  209. package/dist/commonjs/pagination/lib/Pagination/common/utils/useRTL.js +5 -5
  210. package/dist/commonjs/pagination/lib/Pagination/usePaginationModel.js +31 -31
  211. package/dist/commonjs/popup/lib/Popper.js +34 -56
  212. package/dist/commonjs/popup/lib/Popup.js +11 -12
  213. package/dist/commonjs/popup/lib/PopupBody.js +6 -17
  214. package/dist/commonjs/popup/lib/PopupCard.js +33 -55
  215. package/dist/commonjs/popup/lib/PopupCloseButton.js +6 -29
  216. package/dist/commonjs/popup/lib/PopupCloseIcon.js +8 -31
  217. package/dist/commonjs/popup/lib/PopupHeading.js +6 -29
  218. package/dist/commonjs/popup/lib/PopupPopper.js +6 -29
  219. package/dist/commonjs/popup/lib/PopupTarget.js +6 -17
  220. package/dist/commonjs/popup/lib/getTransformFromPlacement.js +6 -6
  221. package/dist/commonjs/popup/lib/hooks/focus-trap-js.js +23 -27
  222. package/dist/commonjs/popup/lib/hooks/useAlwaysCloseOnOutsideClick.js +9 -9
  223. package/dist/commonjs/popup/lib/hooks/useAssistiveHideSiblings.js +14 -17
  224. package/dist/commonjs/popup/lib/hooks/useBringToTopOnClick.js +11 -11
  225. package/dist/commonjs/popup/lib/hooks/useCloseOnEscape.js +9 -9
  226. package/dist/commonjs/popup/lib/hooks/useCloseOnFullscreenExit.js +9 -9
  227. package/dist/commonjs/popup/lib/hooks/useCloseOnOutsideClick.js +12 -12
  228. package/dist/commonjs/popup/lib/hooks/useCloseOnTargetHidden.js +12 -12
  229. package/dist/commonjs/popup/lib/hooks/useDisableBodyScroll.js +10 -10
  230. package/dist/commonjs/popup/lib/hooks/useFocusRedirect.js +10 -10
  231. package/dist/commonjs/popup/lib/hooks/useFocusTrap.js +9 -9
  232. package/dist/commonjs/popup/lib/hooks/useInitialFocus.js +10 -10
  233. package/dist/commonjs/popup/lib/hooks/usePopupCard.js +3 -4
  234. package/dist/commonjs/popup/lib/hooks/usePopupCloseButton.js +3 -4
  235. package/dist/commonjs/popup/lib/hooks/usePopupHeading.js +3 -4
  236. package/dist/commonjs/popup/lib/hooks/usePopupModel.js +29 -34
  237. package/dist/commonjs/popup/lib/hooks/usePopupPopper.js +8 -9
  238. package/dist/commonjs/popup/lib/hooks/usePopupStack.js +15 -15
  239. package/dist/commonjs/popup/lib/hooks/usePopupTarget.js +5 -6
  240. package/dist/commonjs/popup/lib/hooks/usePopupTargetContext.js +5 -6
  241. package/dist/commonjs/popup/lib/hooks/useReturnFocus.js +19 -19
  242. package/dist/commonjs/popup/lib/hooks/useTransferOnFullscreenEnter.js +10 -10
  243. package/dist/commonjs/popup/lib/hooks/useTransferOnFullscreenExit.js +10 -10
  244. package/dist/commonjs/radio/lib/Radio.js +113 -133
  245. package/dist/commonjs/radio/lib/RadioGroup.js +33 -78
  246. package/dist/commonjs/segmented-control/lib/SegmentedControl.js +7 -30
  247. package/dist/commonjs/segmented-control/lib/SegmentedControlButton.js +40 -61
  248. package/dist/commonjs/select/lib/Select.js +47 -64
  249. package/dist/commonjs/select/lib/SelectOption.js +6 -48
  250. package/dist/commonjs/side-panel/lib/SidePanel.js +60 -122
  251. package/dist/commonjs/skeleton/lib/parts/skeletonHeader.js +5 -30
  252. package/dist/commonjs/skeleton/lib/parts/skeletonShape.js +12 -40
  253. package/dist/commonjs/skeleton/lib/parts/skeletonText.js +12 -38
  254. package/dist/commonjs/skeleton/lib/skeleton.js +15 -40
  255. package/dist/commonjs/status-indicator/lib/StatusIndicator.js +28 -61
  256. package/dist/commonjs/switch/lib/Switch.js +55 -65
  257. package/dist/commonjs/table/lib/Table.js +10 -52
  258. package/dist/commonjs/table/lib/TableRow.js +40 -67
  259. package/dist/commonjs/tabs/lib/Tabs.js +11 -12
  260. package/dist/commonjs/tabs/lib/TabsItem.d.ts +1 -1
  261. package/dist/commonjs/tabs/lib/TabsItem.js +81 -86
  262. package/dist/commonjs/tabs/lib/TabsList.js +25 -51
  263. package/dist/commonjs/tabs/lib/TabsMenuPopper.js +6 -29
  264. package/dist/commonjs/tabs/lib/TabsOverflowButton.js +12 -35
  265. package/dist/commonjs/tabs/lib/TabsPanel.js +17 -42
  266. package/dist/commonjs/tabs/lib/TabsPanels.js +5 -6
  267. package/dist/commonjs/tabs/lib/useTabsModel.js +44 -43
  268. package/dist/commonjs/testing/lib/ComponentStatesTable.js +11 -20
  269. package/dist/commonjs/testing/lib/StaticStates.js +10 -34
  270. package/dist/commonjs/testing/lib/permutateProps.js +13 -26
  271. package/dist/commonjs/text/lib/LabelText.js +6 -29
  272. package/dist/commonjs/text/lib/Text.js +13 -39
  273. package/dist/commonjs/text/lib/TypeLevelComponents.js +15 -41
  274. package/dist/commonjs/text-area/lib/TextArea.js +42 -55
  275. package/dist/commonjs/text-input/lib/InputIconContainer.js +11 -17
  276. package/dist/commonjs/text-input/lib/TextInput.js +38 -51
  277. package/dist/commonjs/toast/lib/Toast.js +13 -36
  278. package/dist/commonjs/toast/lib/ToastBody.js +5 -28
  279. package/dist/commonjs/toast/lib/ToastCloseIcon.js +5 -16
  280. package/dist/commonjs/toast/lib/ToastIcon.js +5 -16
  281. package/dist/commonjs/toast/lib/ToastLink.js +5 -28
  282. package/dist/commonjs/toast/lib/ToastMessage.js +6 -29
  283. package/dist/commonjs/toast/lib/hooks/useToastModel.js +8 -16
  284. package/dist/commonjs/tokens/index.d.ts +2 -2
  285. package/dist/commonjs/tokens/index.d.ts.map +1 -1
  286. package/dist/commonjs/tokens/index.js +6 -6
  287. package/dist/commonjs/tokens/lib/type/fontFamilies.js +3 -3
  288. package/dist/commonjs/tokens/lib/type/index.js +7 -7
  289. package/dist/commonjs/tokens/lib/type/levels.js +4 -4
  290. package/dist/commonjs/tokens/lib/type/variants.js +1 -1
  291. package/dist/commonjs/tooltip/lib/OverflowTooltip.js +34 -54
  292. package/dist/commonjs/tooltip/lib/Tooltip.js +26 -47
  293. package/dist/commonjs/tooltip/lib/TooltipContainer.js +37 -35
  294. package/dist/commonjs/tooltip/lib/useTooltip.js +32 -34
  295. package/dist/es6/action-bar/lib/ActionBar.js +3 -4
  296. package/dist/es6/action-bar/lib/ActionBarItem.js +4 -15
  297. package/dist/es6/action-bar/lib/ActionBarList.js +10 -35
  298. package/dist/es6/action-bar/lib/ActionBarOverflowButton.js +6 -17
  299. package/dist/es6/action-bar/lib/useActionBarModel.js +36 -35
  300. package/dist/es6/avatar/lib/Avatar.js +46 -68
  301. package/dist/es6/badge/lib/CountBadge.js +20 -40
  302. package/dist/es6/banner/lib/Banner.js +25 -41
  303. package/dist/es6/banner/lib/BannerActionText.js +4 -27
  304. package/dist/es6/banner/lib/BannerIcon.js +5 -27
  305. package/dist/es6/banner/lib/BannerLabel.js +3 -26
  306. package/dist/es6/banner/lib/hooks/index.d.ts +2 -0
  307. package/dist/es6/banner/lib/hooks/index.d.ts.map +1 -1
  308. package/dist/es6/banner/lib/hooks/index.js +2 -0
  309. package/dist/es6/banner/lib/hooks/useBanner.js +3 -4
  310. package/dist/es6/banner/lib/hooks/useBannerActionText.js +2 -3
  311. package/dist/es6/banner/lib/hooks/useBannerIcon.js +2 -3
  312. package/dist/es6/banner/lib/hooks/useBannerLabel.js +2 -3
  313. package/dist/es6/banner/lib/hooks/useBannerModel.js +8 -16
  314. package/dist/es6/banner/lib/hooks/useThemedPalette.d.ts +1 -1
  315. package/dist/es6/banner/lib/hooks/useThemedPalette.d.ts.map +1 -1
  316. package/dist/es6/banner/lib/hooks/useThemedPalette.js +7 -7
  317. package/dist/es6/breadcrumbs/lib/Breadcrumbs.js +3 -26
  318. package/dist/es6/breadcrumbs/lib/BreadcrumbsCurrentItem.js +9 -32
  319. package/dist/es6/breadcrumbs/lib/BreadcrumbsItem.js +6 -31
  320. package/dist/es6/breadcrumbs/lib/BreadcrumbsLink.js +11 -32
  321. package/dist/es6/breadcrumbs/lib/BreadcrumbsList.js +5 -28
  322. package/dist/es6/breadcrumbs/lib/BreadcrumbsMenu.js +6 -18
  323. package/dist/es6/breadcrumbs/lib/BreadcrumbsOverflowButton.js +6 -29
  324. package/dist/es6/breadcrumbs/lib/hooks/useBreadcrumbsModel.js +34 -33
  325. package/dist/es6/breadcrumbs/lib/hooks/utils/index.js +4 -4
  326. package/dist/es6/button/lib/BaseButton.js +123 -73
  327. package/dist/es6/button/lib/DeleteButton.js +25 -56
  328. package/dist/es6/button/lib/ExternalHyperlink.js +21 -35
  329. package/dist/es6/button/lib/Hyperlink.js +7 -32
  330. package/dist/es6/button/lib/PrimaryButton.js +6 -29
  331. package/dist/es6/button/lib/SecondaryButton.js +6 -29
  332. package/dist/es6/button/lib/TertiaryButton.js +20 -46
  333. package/dist/es6/button/lib/ToolbarDropdownButton.js +9 -35
  334. package/dist/es6/button/lib/ToolbarIconButton.js +13 -40
  335. package/dist/es6/button/lib/deprecated_Button.js +48 -51
  336. package/dist/es6/button/lib/parts/ButtonLabel.js +4 -27
  337. package/dist/es6/button/lib/parts/ButtonLabelIcon.js +5 -28
  338. package/dist/es6/card/lib/Card.js +3 -26
  339. package/dist/es6/card/lib/CardBody.js +3 -26
  340. package/dist/es6/card/lib/CardHeading.js +3 -26
  341. package/dist/es6/checkbox/lib/Checkbox.js +116 -125
  342. package/dist/es6/collection/lib/ListBox.js +7 -30
  343. package/dist/es6/collection/lib/react-virtual.js +1 -1
  344. package/dist/es6/collection/lib/useBaseListModel.js +55 -59
  345. package/dist/es6/collection/lib/useCursorListModel.js +110 -142
  346. package/dist/es6/collection/lib/useGridModel.js +12 -30
  347. package/dist/es6/collection/lib/useListItemRegister.js +13 -15
  348. package/dist/es6/collection/lib/useListItemRovingFocus.js +33 -38
  349. package/dist/es6/collection/lib/useListItemSelect.js +4 -6
  350. package/dist/es6/collection/lib/useListModel.js +1 -1
  351. package/dist/es6/collection/lib/useListRenderItem.js +8 -8
  352. package/dist/es6/collection/lib/useListResetCursorOnBlur.js +5 -6
  353. package/dist/es6/collection/lib/useOverflowListItemMeasure.js +8 -9
  354. package/dist/es6/collection/lib/useOverflowListMeasure.js +5 -5
  355. package/dist/es6/collection/lib/useOverflowListModel.js +59 -54
  356. package/dist/es6/collection/lib/useOverflowListTarget.js +7 -7
  357. package/dist/es6/collection/lib/useSelectionListModel.js +31 -37
  358. package/dist/es6/color-picker/lib/ColorInput.js +41 -77
  359. package/dist/es6/color-picker/lib/ColorPreview.js +3 -28
  360. package/dist/es6/color-picker/lib/parts/ColorSwatch.js +8 -36
  361. package/dist/es6/common/lib/CanvasProvider.js +11 -54
  362. package/dist/es6/common/lib/EllipsisText.js +5 -17
  363. package/dist/es6/common/lib/InputProvider.js +72 -93
  364. package/dist/es6/common/lib/parts/_brand-assets.js +6 -6
  365. package/dist/es6/common/lib/responsive/useResponsiveContainerStyles.js +20 -47
  366. package/dist/es6/common/lib/styles/accessibleHide.js +1 -1
  367. package/dist/es6/common/lib/styles/errorRing.js +8 -7
  368. package/dist/es6/common/lib/styles/focusRing.js +16 -18
  369. package/dist/es6/common/lib/styles/hideMouseFocus.js +13 -9
  370. package/dist/es6/common/lib/theming/breakpoints.js +12 -12
  371. package/dist/es6/common/lib/theming/createCanvasTheme.js +29 -58
  372. package/dist/es6/common/lib/theming/getObjectProxy.js +3 -3
  373. package/dist/es6/common/lib/theming/index.d.ts +1 -1
  374. package/dist/es6/common/lib/theming/index.d.ts.map +1 -1
  375. package/dist/es6/common/lib/theming/index.js +1 -1
  376. package/dist/es6/common/lib/theming/styled.js +7 -11
  377. package/dist/es6/common/lib/theming/theme.js +5 -5
  378. package/dist/es6/common/lib/theming/useIsRTL.js +2 -2
  379. package/dist/es6/common/lib/theming/useTheme.d.ts +49 -5
  380. package/dist/es6/common/lib/theming/useTheme.d.ts.map +1 -1
  381. package/dist/es6/common/lib/theming/useTheme.js +78 -34
  382. package/dist/es6/common/lib/theming/useThemedRing.d.ts +43 -0
  383. package/dist/es6/common/lib/theming/useThemedRing.d.ts.map +1 -0
  384. package/dist/es6/common/lib/theming/useThemedRing.js +92 -0
  385. package/dist/es6/common/lib/utils/changeFocus.js +3 -3
  386. package/dist/es6/common/lib/utils/colorUtils.d.ts +7 -0
  387. package/dist/es6/common/lib/utils/colorUtils.d.ts.map +1 -1
  388. package/dist/es6/common/lib/utils/colorUtils.js +24 -12
  389. package/dist/es6/common/lib/utils/components.d.ts +3 -1
  390. package/dist/es6/common/lib/utils/components.d.ts.map +1 -1
  391. package/dist/es6/common/lib/utils/components.js +43 -86
  392. package/dist/es6/common/lib/utils/deepMerge.js +4 -4
  393. package/dist/es6/common/lib/utils/elements.js +16 -16
  394. package/dist/es6/common/lib/utils/getTranslateFromOrigin.js +2 -2
  395. package/dist/es6/common/lib/utils/isWithinBreakpoint.js +1 -1
  396. package/dist/es6/common/lib/utils/makeMq.js +4 -4
  397. package/dist/es6/common/lib/utils/memoize.d.ts +1 -1
  398. package/dist/es6/common/lib/utils/memoize.d.ts.map +1 -1
  399. package/dist/es6/common/lib/utils/memoize.js +4 -8
  400. package/dist/es6/common/lib/utils/mergeCallback.js +1 -5
  401. package/dist/es6/common/lib/utils/mergeProps.js +4 -15
  402. package/dist/es6/common/lib/utils/models.js +47 -69
  403. package/dist/es6/common/lib/utils/useConstant.js +1 -1
  404. package/dist/es6/common/lib/utils/useIsFullscreen.js +5 -5
  405. package/dist/es6/common/lib/utils/useModalityType.js +8 -8
  406. package/dist/es6/common/lib/utils/useMount.js +2 -2
  407. package/dist/es6/common/lib/utils/useResizeObserver.js +6 -18
  408. package/dist/es6/common/lib/utils/useUniqueId.js +8 -8
  409. package/dist/es6/common/lib/utils/useWindowSize.js +8 -8
  410. package/dist/es6/dialog/lib/Dialog.js +2 -3
  411. package/dist/es6/dialog/lib/DialogCard.js +3 -14
  412. package/dist/es6/dialog/lib/DialogPopper.js +6 -29
  413. package/dist/es6/dialog/lib/hooks/useDialogCard.js +2 -3
  414. package/dist/es6/dialog/lib/hooks/useDialogModel.js +3 -3
  415. package/dist/es6/dialog/lib/hooks/useDialogPopper.js +2 -3
  416. package/dist/es6/disclosure/lib/useDisclosureModel.js +11 -11
  417. package/dist/es6/form-field/lib/FormField.js +35 -79
  418. package/dist/es6/form-field/lib/Hint.js +9 -43
  419. package/dist/es6/form-field/lib/Label.js +39 -82
  420. package/dist/es6/icon/lib/AccentIcon.d.ts +3 -2
  421. package/dist/es6/icon/lib/AccentIcon.d.ts.map +1 -1
  422. package/dist/es6/icon/lib/AccentIcon.js +12 -38
  423. package/dist/es6/icon/lib/AppletIcon.js +12 -36
  424. package/dist/es6/icon/lib/Graphic.js +6 -30
  425. package/dist/es6/icon/lib/Icon.js +10 -29
  426. package/dist/es6/icon/lib/Svg.js +8 -31
  427. package/dist/es6/icon/lib/SystemIcon.d.ts.map +1 -1
  428. package/dist/es6/icon/lib/SystemIcon.js +33 -60
  429. package/dist/es6/icon/lib/SystemIconCircle.d.ts +2 -1
  430. package/dist/es6/icon/lib/SystemIconCircle.d.ts.map +1 -1
  431. package/dist/es6/icon/lib/SystemIconCircle.js +14 -43
  432. package/dist/es6/icon/lib/utils.d.ts +0 -2
  433. package/dist/es6/icon/lib/utils.d.ts.map +1 -1
  434. package/dist/es6/icon/lib/utils.js +1 -8
  435. package/dist/es6/layout/lib/Box.js +12 -37
  436. package/dist/es6/layout/lib/Flex.js +4 -27
  437. package/dist/es6/layout/lib/Grid.js +7 -31
  438. package/dist/es6/layout/lib/utils/background.js +3 -3
  439. package/dist/es6/layout/lib/utils/border/color.js +2 -2
  440. package/dist/es6/layout/lib/utils/border/index.js +14 -18
  441. package/dist/es6/layout/lib/utils/border/lineStyle.js +2 -2
  442. package/dist/es6/layout/lib/utils/border/radius.js +2 -2
  443. package/dist/es6/layout/lib/utils/border/shorthand.js +2 -2
  444. package/dist/es6/layout/lib/utils/border/width.js +2 -2
  445. package/dist/es6/layout/lib/utils/buildStyleFns.js +39 -42
  446. package/dist/es6/layout/lib/utils/color.js +3 -3
  447. package/dist/es6/layout/lib/utils/depth.js +3 -3
  448. package/dist/es6/layout/lib/utils/flex.js +3 -3
  449. package/dist/es6/layout/lib/utils/flexItem.js +3 -3
  450. package/dist/es6/layout/lib/utils/getValidChildren.js +1 -3
  451. package/dist/es6/layout/lib/utils/grid.js +3 -3
  452. package/dist/es6/layout/lib/utils/gridItem.js +3 -3
  453. package/dist/es6/layout/lib/utils/layout.js +3 -3
  454. package/dist/es6/layout/lib/utils/other.js +3 -3
  455. package/dist/es6/layout/lib/utils/position.d.ts +4 -0
  456. package/dist/es6/layout/lib/utils/position.d.ts.map +1 -1
  457. package/dist/es6/layout/lib/utils/position.js +8 -3
  458. package/dist/es6/layout/lib/utils/space.js +3 -3
  459. package/dist/es6/layout/lib/utils/text.js +3 -3
  460. package/dist/es6/loading-dots/lib/LoadingDots.js +16 -38
  461. package/dist/es6/menu/lib/Menu.js +2 -3
  462. package/dist/es6/menu/lib/MenuCard.js +9 -21
  463. package/dist/es6/menu/lib/MenuContextTarget.js +7 -30
  464. package/dist/es6/menu/lib/MenuDivider.js +6 -17
  465. package/dist/es6/menu/lib/MenuItem.js +70 -79
  466. package/dist/es6/menu/lib/MenuList.js +4 -27
  467. package/dist/es6/menu/lib/MenuPopper.js +4 -27
  468. package/dist/es6/menu/lib/MenuTarget.js +10 -34
  469. package/dist/es6/menu/lib/useMenuModel.js +20 -22
  470. package/dist/es6/modal/lib/Modal.js +2 -2
  471. package/dist/es6/modal/lib/ModalBody.js +10 -23
  472. package/dist/es6/modal/lib/ModalCard.js +10 -24
  473. package/dist/es6/modal/lib/ModalHeading.js +10 -23
  474. package/dist/es6/modal/lib/ModalOverflowOverlay.js +4 -15
  475. package/dist/es6/modal/lib/ModalOverlay.js +33 -46
  476. package/dist/es6/modal/lib/hooks/useCloseOnOverlayClick.js +13 -13
  477. package/dist/es6/modal/lib/hooks/useModalCard.js +1 -1
  478. package/dist/es6/modal/lib/hooks/useModalHeading.js +5 -5
  479. package/dist/es6/modal/lib/hooks/useModalModel.js +3 -3
  480. package/dist/es6/pagination/lib/Pagination/AdditionalDetails.js +10 -31
  481. package/dist/es6/pagination/lib/Pagination/Controls.js +35 -61
  482. package/dist/es6/pagination/lib/Pagination/GoTo/Form.js +7 -30
  483. package/dist/es6/pagination/lib/Pagination/GoTo/Label.js +4 -27
  484. package/dist/es6/pagination/lib/Pagination/GoTo/TextInput.js +4 -15
  485. package/dist/es6/pagination/lib/Pagination/GoTo/useGoToForm.js +12 -13
  486. package/dist/es6/pagination/lib/Pagination/Nav.js +2 -13
  487. package/dist/es6/pagination/lib/Pagination/PageButton.js +11 -35
  488. package/dist/es6/pagination/lib/Pagination/PageList.js +7 -31
  489. package/dist/es6/pagination/lib/Pagination/Pagination.js +16 -38
  490. package/dist/es6/pagination/lib/Pagination/buildPageRange.js +9 -15
  491. package/dist/es6/pagination/lib/Pagination/common/List.js +7 -31
  492. package/dist/es6/pagination/lib/Pagination/common/useLiveRegion.js +8 -26
  493. package/dist/es6/pagination/lib/Pagination/common/utils/getValidChildren.js +1 -3
  494. package/dist/es6/pagination/lib/Pagination/common/utils/useRTL.js +4 -4
  495. package/dist/es6/pagination/lib/Pagination/usePaginationModel.js +29 -29
  496. package/dist/es6/popup/lib/Popper.js +29 -51
  497. package/dist/es6/popup/lib/Popup.js +2 -3
  498. package/dist/es6/popup/lib/PopupBody.js +3 -14
  499. package/dist/es6/popup/lib/PopupCard.js +26 -48
  500. package/dist/es6/popup/lib/PopupCloseButton.js +3 -26
  501. package/dist/es6/popup/lib/PopupCloseIcon.js +3 -26
  502. package/dist/es6/popup/lib/PopupHeading.js +3 -26
  503. package/dist/es6/popup/lib/PopupPopper.js +3 -26
  504. package/dist/es6/popup/lib/PopupTarget.js +3 -14
  505. package/dist/es6/popup/lib/getTransformFromPlacement.js +6 -6
  506. package/dist/es6/popup/lib/hooks/focus-trap-js.js +23 -27
  507. package/dist/es6/popup/lib/hooks/useAlwaysCloseOnOutsideClick.js +5 -5
  508. package/dist/es6/popup/lib/hooks/useAssistiveHideSiblings.js +11 -14
  509. package/dist/es6/popup/lib/hooks/useBringToTopOnClick.js +7 -7
  510. package/dist/es6/popup/lib/hooks/useCloseOnEscape.js +5 -5
  511. package/dist/es6/popup/lib/hooks/useCloseOnFullscreenExit.js +5 -5
  512. package/dist/es6/popup/lib/hooks/useCloseOnOutsideClick.js +8 -8
  513. package/dist/es6/popup/lib/hooks/useCloseOnTargetHidden.js +9 -9
  514. package/dist/es6/popup/lib/hooks/useDisableBodyScroll.js +7 -7
  515. package/dist/es6/popup/lib/hooks/useFocusRedirect.js +7 -7
  516. package/dist/es6/popup/lib/hooks/useFocusTrap.js +5 -5
  517. package/dist/es6/popup/lib/hooks/useInitialFocus.js +7 -7
  518. package/dist/es6/popup/lib/hooks/usePopupCard.js +1 -2
  519. package/dist/es6/popup/lib/hooks/usePopupCloseButton.js +1 -2
  520. package/dist/es6/popup/lib/hooks/usePopupHeading.js +1 -2
  521. package/dist/es6/popup/lib/hooks/usePopupModel.js +28 -33
  522. package/dist/es6/popup/lib/hooks/usePopupPopper.js +5 -6
  523. package/dist/es6/popup/lib/hooks/usePopupStack.js +12 -12
  524. package/dist/es6/popup/lib/hooks/usePopupTarget.js +3 -4
  525. package/dist/es6/popup/lib/hooks/usePopupTargetContext.js +3 -4
  526. package/dist/es6/popup/lib/hooks/useReturnFocus.js +15 -15
  527. package/dist/es6/popup/lib/hooks/useTransferOnFullscreenEnter.js +5 -5
  528. package/dist/es6/popup/lib/hooks/useTransferOnFullscreenExit.js +5 -5
  529. package/dist/es6/radio/lib/Radio.js +110 -130
  530. package/dist/es6/radio/lib/RadioGroup.js +29 -75
  531. package/dist/es6/segmented-control/lib/SegmentedControl.js +5 -28
  532. package/dist/es6/segmented-control/lib/SegmentedControlButton.js +37 -58
  533. package/dist/es6/select/lib/Select.js +44 -61
  534. package/dist/es6/select/lib/SelectOption.js +5 -48
  535. package/dist/es6/side-panel/lib/SidePanel.js +54 -117
  536. package/dist/es6/skeleton/lib/parts/skeletonHeader.js +2 -27
  537. package/dist/es6/skeleton/lib/parts/skeletonShape.js +9 -37
  538. package/dist/es6/skeleton/lib/parts/skeletonText.js +9 -35
  539. package/dist/es6/skeleton/lib/skeleton.js +9 -34
  540. package/dist/es6/status-indicator/lib/StatusIndicator.js +25 -59
  541. package/dist/es6/switch/lib/Switch.js +54 -64
  542. package/dist/es6/table/lib/Table.js +9 -52
  543. package/dist/es6/table/lib/TableRow.js +35 -62
  544. package/dist/es6/tabs/lib/Tabs.js +2 -3
  545. package/dist/es6/tabs/lib/TabsItem.d.ts +1 -1
  546. package/dist/es6/tabs/lib/TabsItem.js +74 -79
  547. package/dist/es6/tabs/lib/TabsList.js +20 -46
  548. package/dist/es6/tabs/lib/TabsMenuPopper.js +4 -27
  549. package/dist/es6/tabs/lib/TabsOverflowButton.js +5 -28
  550. package/dist/es6/tabs/lib/TabsPanel.js +13 -38
  551. package/dist/es6/tabs/lib/TabsPanels.js +2 -3
  552. package/dist/es6/tabs/lib/useTabsModel.js +41 -40
  553. package/dist/es6/testing/lib/ComponentStatesTable.js +9 -18
  554. package/dist/es6/testing/lib/StaticStates.js +8 -32
  555. package/dist/es6/testing/lib/permutateProps.js +13 -26
  556. package/dist/es6/text/lib/LabelText.js +3 -26
  557. package/dist/es6/text/lib/Text.js +10 -36
  558. package/dist/es6/text/lib/TypeLevelComponents.js +16 -42
  559. package/dist/es6/text-area/lib/TextArea.js +41 -54
  560. package/dist/es6/text-input/lib/InputIconContainer.js +8 -14
  561. package/dist/es6/text-input/lib/TextInput.js +37 -50
  562. package/dist/es6/toast/lib/Toast.js +4 -27
  563. package/dist/es6/toast/lib/ToastBody.js +3 -26
  564. package/dist/es6/toast/lib/ToastCloseIcon.js +3 -14
  565. package/dist/es6/toast/lib/ToastIcon.js +3 -14
  566. package/dist/es6/toast/lib/ToastLink.js +3 -26
  567. package/dist/es6/toast/lib/ToastMessage.js +3 -26
  568. package/dist/es6/toast/lib/hooks/useToastModel.js +8 -16
  569. package/dist/es6/tokens/index.d.ts +2 -2
  570. package/dist/es6/tokens/index.d.ts.map +1 -1
  571. package/dist/es6/tokens/index.js +16 -16
  572. package/dist/es6/tokens/lib/depth.js +1 -1
  573. package/dist/es6/tokens/lib/radius.js +1 -1
  574. package/dist/es6/tokens/lib/space.js +2 -2
  575. package/dist/es6/tokens/lib/type/fontFamilies.js +6 -6
  576. package/dist/es6/tokens/lib/type/fontSizes.js +1 -1
  577. package/dist/es6/tokens/lib/type/fontWeights.js +1 -1
  578. package/dist/es6/tokens/lib/type/index.js +8 -8
  579. package/dist/es6/tokens/lib/type/levels.js +1 -1
  580. package/dist/es6/tokens/lib/type/variants.js +1 -1
  581. package/dist/es6/tooltip/lib/OverflowTooltip.js +29 -49
  582. package/dist/es6/tooltip/lib/Tooltip.js +21 -42
  583. package/dist/es6/tooltip/lib/TooltipContainer.js +33 -31
  584. package/dist/es6/tooltip/lib/useTooltip.js +29 -31
  585. package/icon/lib/AccentIcon.tsx +5 -6
  586. package/icon/lib/SystemIcon.tsx +1 -2
  587. package/icon/lib/SystemIconCircle.tsx +4 -3
  588. package/icon/lib/utils.ts +0 -8
  589. package/layout/lib/utils/position.ts +9 -0
  590. package/modal/lib/ModalBody.tsx +2 -2
  591. package/modal/lib/ModalCard.tsx +2 -2
  592. package/modal/lib/ModalHeading.tsx +2 -2
  593. package/modal/lib/ModalOverlay.tsx +2 -2
  594. package/package.json +3 -3
  595. package/tokens/index.ts +3 -3
  596. package/common/lib/theming/getCanvasTheme.ts +0 -40
  597. package/dist/commonjs/common/lib/theming/getCanvasTheme.d.ts +0 -28
  598. package/dist/commonjs/common/lib/theming/getCanvasTheme.d.ts.map +0 -1
  599. package/dist/commonjs/common/lib/theming/getCanvasTheme.js +0 -42
  600. package/dist/es6/common/lib/theming/getCanvasTheme.d.ts +0 -28
  601. package/dist/es6/common/lib/theming/getCanvasTheme.d.ts.map +0 -1
  602. package/dist/es6/common/lib/theming/getCanvasTheme.js +0 -37
@@ -40,7 +40,7 @@ exports.breakpoints = {
40
40
  l: 1024,
41
41
  xl: 1440,
42
42
  };
43
- var step = 0.5;
43
+ const step = 0.5;
44
44
  /**
45
45
  * ### Up
46
46
  *
@@ -65,8 +65,8 @@ var step = 0.5;
65
65
  * ```
66
66
  */
67
67
  function up(key) {
68
- var value = typeof exports.breakpoints[key] === 'number' ? exports.breakpoints[key] : key;
69
- return "@media (min-width: " + value + "px)";
68
+ const value = typeof exports.breakpoints[key] === 'number' ? exports.breakpoints[key] : key;
69
+ return `@media (min-width: ${value}px)`;
70
70
  }
71
71
  exports.up = up;
72
72
  /**
@@ -115,14 +115,14 @@ exports.up = up;
115
115
  * ```
116
116
  */
117
117
  function down(endKey) {
118
- var endIndex = exports.breakpointKeys.indexOf(endKey) + 1;
119
- var upperbound = exports.breakpoints[exports.breakpointKeys[endIndex]];
118
+ const endIndex = exports.breakpointKeys.indexOf(endKey) + 1;
119
+ const upperbound = exports.breakpoints[exports.breakpointKeys[endIndex]];
120
120
  if (endIndex === exports.breakpointKeys.length) {
121
121
  // xl down applies to all sizes
122
122
  return up(BreakpointKey.zero);
123
123
  }
124
- var value = typeof upperbound === 'number' && endIndex > 0 ? upperbound : 0;
125
- return "@media (max-width: " + (value - step) + "px)";
124
+ const value = typeof upperbound === 'number' && endIndex > 0 ? upperbound : 0;
125
+ return `@media (max-width: ${value - step}px)`;
126
126
  }
127
127
  exports.down = down;
128
128
  /**
@@ -172,12 +172,12 @@ exports.down = down;
172
172
  * ```
173
173
  */
174
174
  function between(start, end) {
175
- var endIndex = exports.breakpointKeys.indexOf(end) + 1;
175
+ const endIndex = exports.breakpointKeys.indexOf(end) + 1;
176
176
  if (endIndex === exports.breakpointKeys.length) {
177
177
  return up(start);
178
178
  }
179
- return ("@media (min-width: " + exports.breakpoints[start] + "px) and " +
180
- ("(max-width: " + (exports.breakpoints[exports.breakpointKeys[endIndex]] - step) + "px)"));
179
+ return (`@media (min-width: ${exports.breakpoints[start]}px) and ` +
180
+ `(max-width: ${exports.breakpoints[exports.breakpointKeys[endIndex]] - step}px)`);
181
181
  }
182
182
  exports.between = between;
183
183
  /**
@@ -1,110 +1,81 @@
1
1
  "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __rest = (this && this.__rest) || function (s, e) {
14
- var t = {};
15
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
16
- t[p] = s[p];
17
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
18
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
19
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
20
- t[p[i]] = s[p[i]];
21
- }
22
- return t;
23
- };
24
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
25
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
26
4
  };
27
5
  Object.defineProperty(exports, "__esModule", { value: true });
28
6
  exports.createCanvasTheme = exports.shiftColor = void 0;
29
- var chroma_js_1 = __importDefault(require("chroma-js"));
30
- var canvas_colors_web_1 = __importDefault(require("@workday/canvas-colors-web"));
31
- var theme_1 = require("./theme");
32
- var types_1 = require("./types");
33
- var utils_1 = require("../utils");
7
+ const chroma_js_1 = __importDefault(require("chroma-js"));
8
+ const canvas_colors_web_1 = __importDefault(require("@workday/canvas-colors-web"));
9
+ const theme_1 = require("./theme");
10
+ const types_1 = require("./types");
11
+ const utils_1 = require("../utils");
34
12
  // Should these be exported?
35
- var deepMerge_1 = require("../utils/deepMerge");
36
- var memoize_1 = require("../utils/memoize");
37
- exports.shiftColor = memoize_1.memoize(function (hexColor, amount) {
38
- if (amount === void 0) { amount = 100; }
39
- var canvasColor = Object.keys(canvas_colors_web_1.default).find(function (color) { return canvas_colors_web_1.default[color] === hexColor; });
13
+ const deepMerge_1 = require("../utils/deepMerge");
14
+ const memoize_1 = require("../utils/memoize");
15
+ exports.shiftColor = memoize_1.memoize((hexColor, amount = 100) => {
16
+ const canvasColor = Object.keys(canvas_colors_web_1.default).find(color => canvas_colors_web_1.default[color] === hexColor);
40
17
  if (canvasColor) {
41
- var colorRegex = /([a-zAz]*)(\d{3})/g;
42
- var match = colorRegex.exec(canvasColor);
18
+ const colorRegex = /([a-zAz]*)(\d{3})/g;
19
+ const match = colorRegex.exec(canvasColor);
43
20
  if (match) {
44
- var baseColor = match[1];
45
- var shadeNumber = parseInt(match[2], 10);
46
- var newShade = shadeNumber + amount;
21
+ const baseColor = match[1];
22
+ const shadeNumber = parseInt(match[2], 10);
23
+ const newShade = shadeNumber + amount;
47
24
  if (newShade >= 100 && newShade <= 600) {
48
25
  return canvas_colors_web_1.default[(baseColor + newShade)];
49
26
  }
50
27
  }
51
28
  }
52
29
  try {
53
- var newColor = amount > 0
30
+ const newColor = amount > 0
54
31
  ? chroma_js_1.default(hexColor).darken(amount / 100)
55
32
  : chroma_js_1.default(hexColor).brighten(-amount / 100);
56
33
  return newColor.hex();
57
34
  }
58
35
  catch (e) {
59
- console.warn("Invalid color '" + hexColor + "' used in theme");
36
+ console.warn(`Invalid color '${hexColor}' used in theme`);
60
37
  return hexColor;
61
38
  }
62
- }, function (color, value) { return color + "." + value; });
39
+ }, (color, value) => `${color}.${value}`);
63
40
  function fillPalette(defaultPalette, palette) {
64
41
  if (!palette) {
65
42
  return {};
66
43
  }
67
- var main = palette.main || defaultPalette.main;
68
- var dark = palette.dark || (palette.main && exports.shiftColor(palette.main, 100)) || defaultPalette.dark;
69
- var darkest = palette.darkest || (palette.main && exports.shiftColor(palette.main, 200)) || defaultPalette.darkest;
70
- var light = palette.light || (palette.main && exports.shiftColor(palette.main, -100)) || defaultPalette.light;
71
- var lightest = palette.lightest || (palette.main && exports.shiftColor(palette.main, -200)) || defaultPalette.lightest;
72
- var contrast = palette.contrast || utils_1.pickForegroundColor(main) || defaultPalette.contrast;
44
+ const main = palette.main || defaultPalette.main;
45
+ const dark = palette.dark || (palette.main && exports.shiftColor(palette.main, 100)) || defaultPalette.dark;
46
+ const darkest = palette.darkest || (palette.main && exports.shiftColor(palette.main, 200)) || defaultPalette.darkest;
47
+ const light = palette.light || (palette.main && exports.shiftColor(palette.main, -100)) || defaultPalette.light;
48
+ const lightest = palette.lightest || (palette.main && exports.shiftColor(palette.main, -200)) || defaultPalette.lightest;
49
+ const contrast = palette.contrast || utils_1.pickForegroundColor(main) || defaultPalette.contrast;
73
50
  return {
74
- lightest: lightest,
75
- light: light,
76
- main: main,
77
- dark: dark,
78
- darkest: darkest,
79
- contrast: contrast,
51
+ lightest,
52
+ light,
53
+ main,
54
+ dark,
55
+ darkest,
56
+ contrast,
80
57
  };
81
58
  }
82
59
  function calculateCanvasTheme(partialTheme) {
83
- var _a = partialTheme.palette, palette = _a === void 0 ? {} : _a, _b = partialTheme.breakpoints, breakpoints = _b === void 0 ? {} : _b, direction = partialTheme.direction, extraFields = __rest(partialTheme, ["palette", "breakpoints", "direction"]);
84
- var _c = palette, primary = _c.primary, alert = _c.alert, error = _c.error, success = _c.success, neutral = _c.neutral, _d = _c.common, common = _d === void 0 ? {} : _d;
85
- var mergeable = {
60
+ const { palette = {}, breakpoints = {}, direction, ...extraFields } = partialTheme;
61
+ const { primary, alert, error, success, neutral, common = {} } = palette;
62
+ const mergeable = {
86
63
  palette: {
87
- common: common,
64
+ common,
88
65
  primary: fillPalette(theme_1.defaultCanvasTheme.palette.primary, primary),
89
66
  alert: fillPalette(theme_1.defaultCanvasTheme.palette.alert, alert),
90
67
  error: fillPalette(theme_1.defaultCanvasTheme.palette.error, error),
91
68
  success: fillPalette(theme_1.defaultCanvasTheme.palette.success, success),
92
69
  neutral: fillPalette(theme_1.defaultCanvasTheme.palette.neutral, neutral),
93
70
  },
94
- breakpoints: breakpoints,
71
+ breakpoints,
95
72
  direction: direction === types_1.ContentDirection.RTL ? direction : types_1.ContentDirection.LTR,
96
73
  };
97
- return deepMerge_1.deepMerge(deepMerge_1.deepMerge({}, theme_1.defaultCanvasTheme), __assign(__assign({}, mergeable), extraFields));
74
+ return deepMerge_1.deepMerge(deepMerge_1.deepMerge({}, theme_1.defaultCanvasTheme), { ...mergeable, ...extraFields });
98
75
  }
99
76
  /**
100
77
  * Creates a full {@link CanvasTheme} from any partial theme by deeply merging with the
101
78
  * `defaultCanvasTheme` object. The function is memoized, but it is best to run this function
102
79
  * only once and save the result.
103
80
  */
104
- exports.createCanvasTheme = memoize_1.memoize(calculateCanvasTheme, function () {
105
- var args = [];
106
- for (var _i = 0; _i < arguments.length; _i++) {
107
- args[_i] = arguments[_i];
108
- }
109
- return JSON.stringify(args);
110
- });
81
+ exports.createCanvasTheme = memoize_1.memoize(calculateCanvasTheme, (...args) => JSON.stringify(args));
@@ -11,17 +11,17 @@ exports.getObjectProxy = void 0;
11
11
  function getObjectProxy(target, fallback) {
12
12
  if (target) {
13
13
  return new Proxy(target, {
14
- get: function (target, prop, receiver) {
14
+ get(target, prop, receiver) {
15
15
  if (typeof fallback[prop] === 'object') {
16
16
  return getObjectProxy(target[prop], fallback[prop]);
17
17
  }
18
- var targetProp = target[prop];
18
+ const targetProp = target[prop];
19
19
  if (targetProp !== undefined) {
20
20
  return targetProp;
21
21
  }
22
22
  return Reflect.get(fallback, prop, receiver);
23
23
  },
24
- ownKeys: function () {
24
+ ownKeys() {
25
25
  return Reflect.ownKeys(fallback);
26
26
  },
27
27
  });
@@ -4,7 +4,7 @@ export * from './types';
4
4
  export { default as styled, StyleRewriteFn } from './styled';
5
5
  export * from './theme';
6
6
  export * from './useTheme';
7
+ export * from './useThemedRing';
7
8
  export * from './useIsRTL';
8
- export * from './getCanvasTheme';
9
9
  export * from './getObjectProxy';
10
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../common/lib/theming/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AACtD,cAAc,SAAS,CAAC;AACxB,OAAO,EAAC,OAAO,IAAI,MAAM,EAAE,cAAc,EAAC,MAAM,UAAU,CAAC;AAC3D,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../common/lib/theming/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AACtD,cAAc,SAAS,CAAC;AACxB,OAAO,EAAC,OAAO,IAAI,MAAM,EAAE,cAAc,EAAC,MAAM,UAAU,CAAC;AAC3D,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC"}
@@ -22,6 +22,6 @@ var styled_1 = require("./styled");
22
22
  Object.defineProperty(exports, "styled", { enumerable: true, get: function () { return __importDefault(styled_1).default; } });
23
23
  __exportStar(require("./theme"), exports);
24
24
  __exportStar(require("./useTheme"), exports);
25
+ __exportStar(require("./useThemedRing"), exports);
25
26
  __exportStar(require("./useIsRTL"), exports);
26
- __exportStar(require("./getCanvasTheme"), exports);
27
27
  __exportStar(require("./getObjectProxy"), exports);
@@ -3,21 +3,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- var styled_1 = __importDefault(require("@emotion/styled"));
7
- var index_1 = require("./index");
8
- var rtl_css_js_1 = __importDefault(require("rtl-css-js"));
9
- var noop = function (styles) { return styles; };
6
+ const styled_1 = __importDefault(require("@emotion/styled"));
7
+ const index_1 = require("./index");
8
+ const rtl_css_js_1 = __importDefault(require("rtl-css-js"));
9
+ const noop = (styles) => styles;
10
10
  function styled(node) {
11
- return function () {
12
- var args = [];
13
- for (var _i = 0; _i < arguments.length; _i++) {
14
- args[_i] = arguments[_i];
15
- }
16
- var newArgs = args.map(function (interpolation) { return function (props) {
11
+ return (...args) => {
12
+ const newArgs = args.map(interpolation => (props) => {
17
13
  props.theme = index_1.useTheme(props.theme);
18
- var direction = props.theme.canvas.direction;
19
- var maybeFlip = direction === index_1.ContentDirection.RTL ? rtl_css_js_1.default : noop;
20
- var maybeConvert = props.theme._styleRewriteFn || noop;
14
+ const direction = props.theme.canvas.direction;
15
+ const maybeFlip = direction === index_1.ContentDirection.RTL ? rtl_css_js_1.default : noop;
16
+ const maybeConvert = props.theme._styleRewriteFn || noop;
21
17
  try {
22
18
  if (typeof interpolation === 'function') {
23
19
  return maybeFlip(maybeConvert(interpolation(props)));
@@ -27,7 +23,7 @@ function styled(node) {
27
23
  catch (e) {
28
24
  return maybeConvert(interpolation);
29
25
  }
30
- }; });
26
+ });
31
27
  return styled_1.default(node)(newArgs);
32
28
  };
33
29
  }
@@ -4,9 +4,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.defaultCanvasTheme = void 0;
7
- var canvas_colors_web_1 = __importDefault(require("@workday/canvas-colors-web"));
8
- var types_1 = require("./types");
9
- var breakpoints_1 = require("./breakpoints");
7
+ const canvas_colors_web_1 = __importDefault(require("@workday/canvas-colors-web"));
8
+ const types_1 = require("./types");
9
+ const breakpoints_1 = require("./breakpoints");
10
10
  exports.defaultCanvasTheme = {
11
11
  palette: {
12
12
  primary: {
@@ -20,9 +20,9 @@ var __importStar = (this && this.__importStar) || function (mod) {
20
20
  };
21
21
  Object.defineProperty(exports, "__esModule", { value: true });
22
22
  exports.useIsRTL = void 0;
23
- var React = __importStar(require("react"));
24
- var react_1 = require("@emotion/react");
25
- var types_1 = require("./types");
23
+ const React = __importStar(require("react"));
24
+ const react_1 = require("@emotion/react");
25
+ const types_1 = require("./types");
26
26
  function useDefaultTheme(theme, config, fn) {
27
27
  return theme || fn(config);
28
28
  }
@@ -32,8 +32,8 @@ function useDefaultTheme(theme, config, fn) {
32
32
  * @example
33
33
  * const isRTL = useIsRTL();
34
34
  */
35
- var useIsRTL = function (partialTheme) {
36
- var theme = useDefaultTheme(partialTheme, react_1.ThemeContext, React.useContext);
35
+ const useIsRTL = (partialTheme) => {
36
+ const theme = useDefaultTheme(partialTheme, react_1.ThemeContext, React.useContext);
37
37
  return (theme && theme.canvas && theme.canvas.direction) === types_1.ContentDirection.RTL;
38
38
  };
39
39
  exports.useIsRTL = useIsRTL;
@@ -1,11 +1,47 @@
1
1
  import { EmotionCanvasTheme, PartialEmotionCanvasTheme } from './index';
2
2
  /**
3
- * Hook function to get the correct theme object.
4
- * @param {Object=} theme - The theme object returned from the emotion ThemeContext
5
- * (through ThemeProvider). The Canvas Kit theme is namespaced within this variable under the `canvas` key.
3
+ * Function to get the correct theme object for `styled` and class components
4
+ * or to be used outside component.
5
+ * @param {Object=} theme - The theme object with the Canvas Kit theme.
6
+ * It should be namespaced within this variable under the `canvas` key.
7
+ * Value of `canvas` property is any partial or full theme object to overwtite default theme.
6
8
  *
7
- * NOTE: If you are using a class component, you MUST pass the theme.
8
- * If not passed, the function will try to pull the theme from ThemeContext.
9
+ * @returns An object containing updated or default Canvas Kit theme under `canvas` key.
10
+ *
11
+ * The passed partial theme object will be merged with the default Canvas theme
12
+ * (using memoized createCanvasTheme()) to establish any missing fields that have
13
+ * not been defined by the consumer's theme object.
14
+ *
15
+ * If theme is not passed, the function will try to retrieve it from the window object.
16
+ * If window theme is not found, it will return the default Canvas theme.
17
+ *
18
+ * @example
19
+ * import {getTheme} from '@workday/canvas-kit-react/common';
20
+ *
21
+ * const theme = getTheme();
22
+ * const {up, down} = theme.canvas.breakpoints;
23
+ * const small = down('m'); // Returns '@media (max-width: 768px)'
24
+ * const medium = up('m'); // Returns '@media (min-width: 768px)'
25
+ *
26
+ * const styles = {
27
+ * [small]: {
28
+ * margin: space.m
29
+ * },
30
+ * [medium]: {
31
+ * margin: space.l
32
+ * }
33
+ * }
34
+ */
35
+ export declare function getTheme(theme?: PartialEmotionCanvasTheme): EmotionCanvasTheme;
36
+ /**
37
+ * Hook function to get the correct theme object for functional components.
38
+ * @param {Object=} theme - The theme object with the Canvas Kit theme.
39
+ * It should be namespaced within this variable under the `canvas` key.
40
+ * Value of `canvas` property is any partial or full theme object to overwtite default theme.
41
+ *
42
+ * @returns An object containing updated or default Canvas Kit theme under `canvas` key.
43
+ *
44
+ * NOTE: If theme is not passed, the function will try to pull the theme from ThemeContext.
9
45
  * If that does not work, it will try to retrieve it from the window object.
10
46
  * As a last resort, it will return the default Canvas theme.
11
47
  *
@@ -16,6 +52,14 @@ import { EmotionCanvasTheme, PartialEmotionCanvasTheme } from './index';
16
52
  * Providing the default theme here is currently a work around for when no
17
53
  * ThemeProvider or context exists.
18
54
  * Tracked on https://github.com/emotion-js/emotion/issues/1193.
55
+ *
56
+ * @example
57
+ * export const ErrorMessage = () => {
58
+ * const theme = useTheme();
59
+ * return (
60
+ * <Subtext size="large" color={theme.canvas.palette.error.main}>
61
+ * );
62
+ * }
19
63
  */
20
64
  export declare function useTheme(theme?: PartialEmotionCanvasTheme): EmotionCanvasTheme;
21
65
  //# sourceMappingURL=useTheme.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useTheme.d.ts","sourceRoot":"","sources":["../../../../../common/lib/theming/useTheme.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,kBAAkB,EAClB,yBAAyB,EAC1B,MAAM,SAAS,CAAC;AAOjB;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,QAAQ,CAAC,KAAK,CAAC,EAAE,yBAAyB,GAAG,kBAAkB,CAqB9E"}
1
+ {"version":3,"file":"useTheme.d.ts","sourceRoot":"","sources":["../../../../../common/lib/theming/useTheme.ts"],"names":[],"mappings":"AAIA,OAAO,EAGL,kBAAkB,EAClB,yBAAyB,EAC1B,MAAM,SAAS,CAAC;AAOjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,QAAQ,CAAC,KAAK,CAAC,EAAE,yBAAyB,GAAG,kBAAkB,CAY9E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,QAAQ,CAAC,KAAK,CAAC,EAAE,yBAAyB,GAAG,kBAAkB,CAkB9E"}
@@ -1,27 +1,68 @@
1
1
  "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
2
+ // refactor for v5
3
+ /// <reference types="@types/node" />
13
4
  Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.useTheme = void 0;
15
- var react_1 = require("@emotion/react");
16
- var index_1 = require("./index");
17
- var getFilledTheme = function (theme) { return (__assign(__assign({}, theme), { canvas: index_1.createCanvasTheme(theme.canvas) })); };
5
+ exports.useTheme = exports.getTheme = void 0;
6
+ const react_1 = require("@emotion/react");
7
+ const index_1 = require("./index");
8
+ const getFilledTheme = (theme) => ({
9
+ ...theme,
10
+ canvas: index_1.createCanvasTheme(theme.canvas),
11
+ });
12
+ /**
13
+ * Function to get the correct theme object for `styled` and class components
14
+ * or to be used outside component.
15
+ * @param {Object=} theme - The theme object with the Canvas Kit theme.
16
+ * It should be namespaced within this variable under the `canvas` key.
17
+ * Value of `canvas` property is any partial or full theme object to overwtite default theme.
18
+ *
19
+ * @returns An object containing updated or default Canvas Kit theme under `canvas` key.
20
+ *
21
+ * The passed partial theme object will be merged with the default Canvas theme
22
+ * (using memoized createCanvasTheme()) to establish any missing fields that have
23
+ * not been defined by the consumer's theme object.
24
+ *
25
+ * If theme is not passed, the function will try to retrieve it from the window object.
26
+ * If window theme is not found, it will return the default Canvas theme.
27
+ *
28
+ * @example
29
+ * import {getTheme} from '@workday/canvas-kit-react/common';
30
+ *
31
+ * const theme = getTheme();
32
+ * const {up, down} = theme.canvas.breakpoints;
33
+ * const small = down('m'); // Returns '@media (max-width: 768px)'
34
+ * const medium = up('m'); // Returns '@media (min-width: 768px)'
35
+ *
36
+ * const styles = {
37
+ * [small]: {
38
+ * margin: space.m
39
+ * },
40
+ * [medium]: {
41
+ * margin: space.l
42
+ * }
43
+ * }
44
+ */
45
+ function getTheme(theme) {
46
+ var _a, _b, _c;
47
+ if (theme === null || theme === void 0 ? void 0 : theme.canvas) {
48
+ return getFilledTheme(theme);
49
+ }
50
+ const windowTheme = typeof window !== 'undefined' && ((_c = (_b = (_a = window) === null || _a === void 0 ? void 0 : _a.workday) === null || _b === void 0 ? void 0 : _b.canvas) === null || _c === void 0 ? void 0 : _c.theme);
51
+ if (windowTheme) {
52
+ return getFilledTheme({ canvas: windowTheme });
53
+ }
54
+ return { canvas: index_1.defaultCanvasTheme };
55
+ }
56
+ exports.getTheme = getTheme;
18
57
  /**
19
- * Hook function to get the correct theme object.
20
- * @param {Object=} theme - The theme object returned from the emotion ThemeContext
21
- * (through ThemeProvider). The Canvas Kit theme is namespaced within this variable under the `canvas` key.
58
+ * Hook function to get the correct theme object for functional components.
59
+ * @param {Object=} theme - The theme object with the Canvas Kit theme.
60
+ * It should be namespaced within this variable under the `canvas` key.
61
+ * Value of `canvas` property is any partial or full theme object to overwtite default theme.
22
62
  *
23
- * NOTE: If you are using a class component, you MUST pass the theme.
24
- * If not passed, the function will try to pull the theme from ThemeContext.
63
+ * @returns An object containing updated or default Canvas Kit theme under `canvas` key.
64
+ *
65
+ * NOTE: If theme is not passed, the function will try to pull the theme from ThemeContext.
25
66
  * If that does not work, it will try to retrieve it from the window object.
26
67
  * As a last resort, it will return the default Canvas theme.
27
68
  *
@@ -32,26 +73,30 @@ var getFilledTheme = function (theme) { return (__assign(__assign({}, theme), {
32
73
  * Providing the default theme here is currently a work around for when no
33
74
  * ThemeProvider or context exists.
34
75
  * Tracked on https://github.com/emotion-js/emotion/issues/1193.
76
+ *
77
+ * @example
78
+ * export const ErrorMessage = () => {
79
+ * const theme = useTheme();
80
+ * return (
81
+ * <Subtext size="large" color={theme.canvas.palette.error.main}>
82
+ * );
83
+ * }
35
84
  */
36
85
  function useTheme(theme) {
37
- var _a, _b, _c;
38
- if (theme && theme.canvas) {
39
- return getFilledTheme(theme);
40
- }
41
- try {
42
- // eslint-disable-next-line react-hooks/rules-of-hooks
43
- var contextTheme = react_1.useTheme();
44
- if (contextTheme && contextTheme.canvas) {
45
- return getFilledTheme(contextTheme);
86
+ if (!theme) {
87
+ try {
88
+ // eslint-disable-next-line react-hooks/rules-of-hooks
89
+ const contextTheme = react_1.useTheme();
90
+ if (contextTheme === null || contextTheme === void 0 ? void 0 : contextTheme.canvas) {
91
+ return getFilledTheme(contextTheme);
92
+ }
93
+ }
94
+ catch (e) {
95
+ if (process && process.env.NODE_ENV === 'development') {
96
+ console.warn('useTheme: Context not supported or invalid. Please consider using `getTheme` function instead for `styled` or class components.');
97
+ }
46
98
  }
47
99
  }
48
- catch (e) {
49
- // Context not supported or invalid (probably called from within a class component)
50
- }
51
- var windowTheme = typeof window !== 'undefined' && ((_c = (_b = (_a = window) === null || _a === void 0 ? void 0 : _a.workday) === null || _b === void 0 ? void 0 : _b.canvas) === null || _c === void 0 ? void 0 : _c.theme);
52
- if (windowTheme) {
53
- return getFilledTheme({ canvas: windowTheme });
54
- }
55
- return { canvas: index_1.defaultCanvasTheme };
100
+ return getTheme(theme);
56
101
  }
57
102
  exports.useTheme = useTheme;
@@ -0,0 +1,43 @@
1
+ import { EmotionCanvasTheme } from '@workday/canvas-kit-react/common';
2
+ import { CSSProperties } from '@workday/canvas-kit-react/tokens';
3
+ declare type paletteSelection = Exclude<keyof EmotionCanvasTheme['canvas']['palette'], 'common'>;
4
+ interface ContrastColors {
5
+ outer?: string;
6
+ inner?: string;
7
+ }
8
+ export declare function getPaletteColorsForFocusRing(type: paletteSelection, theme: EmotionCanvasTheme): ContrastColors;
9
+ /**
10
+ * This is a way to automatically add themed colors to your input and is helpful when showing alerts, success or errors to users.
11
+ * It supports `error`, `alert`, and `success` states. It will try and use the corresponding
12
+ * `main` colors from your `CanvasThemePalette` unless they do not meet accessibility contrast, in
13
+ * which case the outer ring will use the `darkest` color. This hook will also show a `focusOutline`
14
+ * ring when the input is focused. Note: You should not rely on these colors alone to differentiate
15
+ * alerts, but use them in combination with icons or hint text.
16
+ * ```tsx
17
+ * // Add here jsx pragma to use css
18
+ * import {jsx} from '@emotion/core';
19
+ * import React from 'react';
20
+ * import {TextInput} from '@workday/canvas-kit-preview-react/text-input';
21
+ * import {useThemedRing} from '@workday/canvas-kit-react/common';
22
+ *
23
+ * export const MyInput = ({handleChange}) => {
24
+ * const [value, setValue] = React.useState('invalid@email');
25
+ * const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {
26
+ * setValue(event.target.value);
27
+ * };
28
+ *
29
+ * const alertStyles = useThemedRing('alert');
30
+ *
31
+ * return (
32
+ * <TextInput>
33
+ * <TextInput.Label>Email</TextInput.Label>
34
+ * <TextInput.Field css={alertStyles} onChange={handleChange} value={value} />
35
+ * <TextInput.Hint>Please enter a valid email.</TextInput.Hint>
36
+ * </TextInput>
37
+ * );
38
+ * };
39
+ *```
40
+ */
41
+ export declare const useThemedRing: (type: paletteSelection) => CSSProperties;
42
+ export {};
43
+ //# sourceMappingURL=useThemedRing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useThemedRing.d.ts","sourceRoot":"","sources":["../../../../../common/lib/theming/useThemedRing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,kBAAkB,EAAW,MAAM,kCAAkC,CAAC;AAClG,OAAO,EAAS,aAAa,EAA4B,MAAM,kCAAkC,CAAC;AAIlG,aAAK,gBAAgB,GAAG,OAAO,CAAC,MAAM,kBAAkB,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,CAAC;AACzF,UAAU,cAAc;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAoBD,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,gBAAgB,EACtB,KAAK,EAAE,kBAAkB,GACxB,cAAc,CAsBhB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,aAAa,SAAU,gBAAgB,KAAG,aAyBtD,CAAC"}