@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.
- package/button/lib/SecondaryButton.tsx +31 -16
- package/button/lib/TertiaryButton.tsx +45 -36
- package/button/lib/parts/ButtonContainer.tsx +2 -0
- package/button/lib/types.ts +2 -1
- package/common/index.ts +1 -0
- package/common/lib/EllipsisText.tsx +11 -0
- package/common/lib/utils/components.ts +50 -23
- package/common/lib/utils/index.ts +1 -0
- package/common/lib/utils/mergeProps.ts +4 -0
- package/common/lib/utils/useConstant.ts +18 -0
- package/common/lib/utils/useResizeObserver.ts +29 -0
- package/common/lib/utils/useUniqueId.ts +4 -3
- package/dist/commonjs/button/lib/SecondaryButton.d.ts +8 -5
- package/dist/commonjs/button/lib/SecondaryButton.d.ts.map +1 -1
- package/dist/commonjs/button/lib/SecondaryButton.js +22 -12
- package/dist/commonjs/button/lib/TertiaryButton.d.ts +8 -4
- package/dist/commonjs/button/lib/TertiaryButton.d.ts.map +1 -1
- package/dist/commonjs/button/lib/TertiaryButton.js +24 -20
- package/dist/commonjs/button/lib/parts/ButtonContainer.d.ts.map +1 -1
- package/dist/commonjs/button/lib/parts/ButtonContainer.js +2 -6
- package/dist/commonjs/button/lib/parts/ButtonLabel.d.ts +1 -1
- package/dist/commonjs/button/lib/parts/ButtonLabel.d.ts.map +1 -1
- package/dist/commonjs/button/lib/types.d.ts +1 -0
- package/dist/commonjs/button/lib/types.d.ts.map +1 -1
- package/dist/commonjs/common/index.d.ts +1 -0
- package/dist/commonjs/common/index.d.ts.map +1 -1
- package/dist/commonjs/common/index.js +1 -0
- package/dist/commonjs/common/lib/EllipsisText.d.ts +5 -0
- package/dist/commonjs/common/lib/EllipsisText.d.ts.map +1 -0
- package/dist/commonjs/common/lib/EllipsisText.js +13 -0
- package/dist/commonjs/common/lib/utils/components.d.ts +19 -9
- package/dist/commonjs/common/lib/utils/components.d.ts.map +1 -1
- package/dist/commonjs/common/lib/utils/components.js +12 -2
- package/dist/commonjs/common/lib/utils/index.d.ts +1 -0
- package/dist/commonjs/common/lib/utils/index.d.ts.map +1 -1
- package/dist/commonjs/common/lib/utils/index.js +1 -0
- package/dist/commonjs/common/lib/utils/mergeProps.d.ts.map +1 -1
- package/dist/commonjs/common/lib/utils/mergeProps.js +5 -0
- package/dist/commonjs/common/lib/utils/useConstant.d.ts +9 -0
- package/dist/commonjs/common/lib/utils/useConstant.d.ts.map +1 -0
- package/dist/commonjs/common/lib/utils/useConstant.js +18 -0
- package/dist/commonjs/common/lib/utils/useResizeObserver.d.ts +3 -0
- package/dist/commonjs/common/lib/utils/useResizeObserver.d.ts.map +1 -0
- package/dist/commonjs/common/lib/utils/useResizeObserver.js +42 -0
- package/dist/commonjs/common/lib/utils/useUniqueId.d.ts.map +1 -1
- package/dist/commonjs/common/lib/utils/useUniqueId.js +3 -10
- package/dist/commonjs/dialog/lib/hooks/useDialogCard.d.ts +4 -16
- package/dist/commonjs/dialog/lib/hooks/useDialogCard.d.ts.map +1 -1
- package/dist/commonjs/dialog/lib/hooks/useDialogPopper.d.ts +5 -2
- package/dist/commonjs/dialog/lib/hooks/useDialogPopper.d.ts.map +1 -1
- package/dist/commonjs/modal/lib/ModalOverlay.d.ts +4 -2
- package/dist/commonjs/modal/lib/ModalOverlay.d.ts.map +1 -1
- package/dist/commonjs/modal/lib/hooks/useModalCard.d.ts +4 -16
- package/dist/commonjs/modal/lib/hooks/useModalCard.d.ts.map +1 -1
- package/dist/commonjs/modal/lib/hooks/useModalHeading.d.ts +5 -17
- package/dist/commonjs/modal/lib/hooks/useModalHeading.d.ts.map +1 -1
- package/dist/commonjs/pagination/lib/Pagination/GoTo/Label.d.ts +3 -0
- package/dist/commonjs/pagination/lib/Pagination/GoTo/Label.d.ts.map +1 -1
- package/dist/commonjs/pagination/lib/Pagination/PageList.d.ts +1 -1
- package/dist/commonjs/pagination/lib/Pagination/PageList.d.ts.map +1 -1
- package/dist/commonjs/pagination/lib/Pagination/Pagination.d.ts +5 -5
- package/dist/commonjs/pagination/lib/Pagination/common/List.d.ts +1 -1
- package/dist/commonjs/pagination/lib/Pagination/common/List.d.ts.map +1 -1
- package/dist/commonjs/pagination/lib/Pagination/common/utils/getValidChildren.d.ts +1 -1
- package/dist/commonjs/pagination/lib/Pagination/common/utils/getValidChildren.d.ts.map +1 -1
- package/dist/commonjs/pagination/lib/Pagination/types.d.ts +39 -0
- package/dist/commonjs/pagination/lib/Pagination/types.d.ts.map +1 -1
- package/dist/commonjs/pagination/lib/Pagination/usePaginationModel.d.ts +19 -0
- package/dist/commonjs/pagination/lib/Pagination/usePaginationModel.d.ts.map +1 -1
- package/dist/commonjs/popup/lib/PopupCard.d.ts.map +1 -1
- package/dist/commonjs/popup/lib/PopupCard.js +2 -3
- package/dist/commonjs/popup/lib/hooks/usePopupCard.d.ts +5 -2
- package/dist/commonjs/popup/lib/hooks/usePopupCard.d.ts.map +1 -1
- package/dist/commonjs/popup/lib/hooks/usePopupCloseButton.d.ts +4 -2
- package/dist/commonjs/popup/lib/hooks/usePopupCloseButton.d.ts.map +1 -1
- package/dist/commonjs/popup/lib/hooks/usePopupHeading.d.ts +5 -2
- package/dist/commonjs/popup/lib/hooks/usePopupHeading.d.ts.map +1 -1
- package/dist/commonjs/popup/lib/hooks/usePopupPopper.d.ts +4 -2
- package/dist/commonjs/popup/lib/hooks/usePopupPopper.d.ts.map +1 -1
- package/dist/commonjs/popup/lib/hooks/usePopupTarget.d.ts +4 -2
- package/dist/commonjs/popup/lib/hooks/usePopupTarget.d.ts.map +1 -1
- package/dist/commonjs/tabs/index.d.ts +5 -0
- package/dist/commonjs/tabs/index.d.ts.map +1 -1
- package/dist/commonjs/tabs/index.js +11 -0
- package/dist/commonjs/tabs/lib/Tabs.d.ts +35 -7
- package/dist/commonjs/tabs/lib/Tabs.d.ts.map +1 -1
- package/dist/commonjs/tabs/lib/Tabs.js +28 -7
- package/dist/commonjs/tabs/lib/TabsItem.d.ts +107 -0
- package/dist/commonjs/tabs/lib/TabsItem.d.ts.map +1 -0
- package/dist/commonjs/tabs/lib/TabsItem.js +140 -0
- package/dist/commonjs/tabs/lib/TabsList.d.ts +43 -0
- package/dist/commonjs/tabs/lib/TabsList.d.ts.map +1 -0
- package/dist/commonjs/tabs/lib/TabsList.js +53 -0
- package/dist/commonjs/tabs/lib/TabsMenuPopper.d.ts +21 -0
- package/dist/commonjs/tabs/lib/TabsMenuPopper.d.ts.map +1 -0
- package/dist/commonjs/tabs/lib/{TabList.js → TabsMenuPopper.js} +7 -19
- package/dist/commonjs/tabs/lib/TabsOverflowButton.d.ts +31 -0
- package/dist/commonjs/tabs/lib/TabsOverflowButton.d.ts.map +1 -0
- package/dist/commonjs/tabs/lib/TabsOverflowButton.js +57 -0
- package/{ts3.5/dist/commonjs/tabs/lib/TabPanel.d.ts → dist/commonjs/tabs/lib/TabsPanel.d.ts} +39 -29
- package/dist/commonjs/tabs/lib/TabsPanel.d.ts.map +1 -0
- package/dist/commonjs/tabs/lib/TabsPanel.js +64 -0
- package/dist/{es6/tabs/lib/TabList.d.ts → commonjs/tabs/lib/TabsPanels.d.ts} +5 -5
- package/dist/commonjs/tabs/lib/TabsPanels.d.ts.map +1 -0
- package/dist/commonjs/tabs/lib/TabsPanels.js +21 -0
- package/dist/commonjs/tabs/lib/cursor/index.d.ts +1 -1
- package/dist/commonjs/tabs/lib/cursor/index.d.ts.map +1 -1
- package/dist/commonjs/tabs/lib/cursor/index.js +1 -1
- package/dist/commonjs/tabs/lib/cursor/useCursorModel.d.ts +23 -13
- package/dist/commonjs/tabs/lib/cursor/useCursorModel.d.ts.map +1 -1
- package/dist/commonjs/tabs/lib/cursor/useCursorModel.js +50 -49
- package/dist/commonjs/tabs/lib/cursor/useRovingFocus.d.ts +37 -0
- package/dist/commonjs/tabs/lib/cursor/useRovingFocus.d.ts.map +1 -0
- package/dist/commonjs/tabs/lib/cursor/{hooks.js → useRovingFocus.js} +26 -50
- package/dist/commonjs/tabs/lib/list/index.d.ts +2 -1
- package/dist/commonjs/tabs/lib/list/index.d.ts.map +1 -1
- package/dist/commonjs/tabs/lib/list/index.js +2 -1
- package/dist/commonjs/tabs/lib/list/renderItem.d.ts +4 -0
- package/dist/commonjs/tabs/lib/list/renderItem.d.ts.map +1 -0
- package/dist/commonjs/tabs/lib/list/renderItem.js +18 -0
- package/dist/commonjs/tabs/lib/list/useListModel.d.ts +25 -13
- package/dist/commonjs/tabs/lib/list/useListModel.d.ts.map +1 -1
- package/dist/commonjs/tabs/lib/list/useListModel.js +20 -7
- package/dist/commonjs/tabs/lib/list/useListRegisterItem.d.ts +14 -0
- package/dist/commonjs/tabs/lib/list/useListRegisterItem.d.ts.map +1 -0
- package/dist/commonjs/tabs/lib/list/useListRegisterItem.js +46 -0
- package/dist/commonjs/tabs/lib/menu/Menu.d.ts +80 -0
- package/dist/commonjs/tabs/lib/menu/Menu.d.ts.map +1 -0
- package/dist/commonjs/tabs/lib/menu/Menu.js +94 -0
- package/dist/commonjs/tabs/lib/menu/MenuCard.d.ts +17 -0
- package/dist/commonjs/tabs/lib/menu/MenuCard.d.ts.map +1 -0
- package/dist/commonjs/tabs/lib/menu/MenuCard.js +82 -0
- package/dist/commonjs/tabs/lib/menu/MenuItem.d.ts +62 -0
- package/dist/commonjs/tabs/lib/menu/MenuItem.d.ts.map +1 -0
- package/dist/commonjs/tabs/lib/menu/MenuItem.js +145 -0
- package/dist/commonjs/tabs/lib/menu/MenuList.d.ts +23 -0
- package/dist/commonjs/tabs/lib/menu/MenuList.d.ts.map +1 -0
- package/dist/commonjs/tabs/lib/menu/MenuList.js +52 -0
- package/dist/commonjs/tabs/lib/menu/MenuPopper.d.ts +21 -0
- package/dist/commonjs/tabs/lib/menu/MenuPopper.d.ts.map +1 -0
- package/dist/commonjs/tabs/lib/menu/MenuPopper.js +45 -0
- package/dist/commonjs/tabs/lib/menu/MenuTarget.d.ts +21 -0
- package/dist/commonjs/tabs/lib/menu/MenuTarget.d.ts.map +1 -0
- package/dist/commonjs/tabs/lib/menu/MenuTarget.js +60 -0
- package/dist/commonjs/tabs/lib/menu/index.d.ts +8 -0
- package/dist/commonjs/tabs/lib/menu/index.d.ts.map +1 -0
- package/dist/commonjs/tabs/lib/menu/index.js +18 -0
- package/dist/commonjs/tabs/lib/menu/useMenuModel.d.ts +35 -0
- package/dist/commonjs/tabs/lib/menu/useMenuModel.d.ts.map +1 -0
- package/dist/commonjs/tabs/lib/menu/useMenuModel.js +33 -0
- package/dist/commonjs/tabs/lib/overflow/index.d.ts +5 -0
- package/dist/commonjs/tabs/lib/overflow/index.d.ts.map +1 -0
- package/dist/commonjs/tabs/lib/overflow/index.js +9 -0
- package/dist/commonjs/tabs/lib/overflow/useOverflowMeasureContainer.d.ts +8 -0
- package/dist/commonjs/tabs/lib/overflow/useOverflowMeasureContainer.d.ts.map +1 -0
- package/dist/commonjs/tabs/lib/overflow/useOverflowMeasureContainer.js +22 -0
- package/dist/commonjs/tabs/lib/overflow/useOverflowMeasureItem.d.ts +10 -0
- package/dist/commonjs/tabs/lib/overflow/useOverflowMeasureItem.d.ts.map +1 -0
- package/dist/commonjs/tabs/lib/overflow/useOverflowMeasureItem.js +32 -0
- package/dist/commonjs/tabs/lib/overflow/useOverflowModel.d.ts +69 -0
- package/dist/commonjs/tabs/lib/overflow/useOverflowModel.d.ts.map +1 -0
- package/dist/commonjs/tabs/lib/overflow/useOverflowModel.js +117 -0
- package/dist/commonjs/tabs/lib/overflow/useOverflowTarget.d.ts +11 -0
- package/dist/commonjs/tabs/lib/overflow/useOverflowTarget.d.ts.map +1 -0
- package/dist/commonjs/tabs/lib/overflow/useOverflowTarget.js +35 -0
- package/dist/commonjs/tabs/lib/selection/index.d.ts +4 -0
- package/dist/commonjs/tabs/lib/selection/index.d.ts.map +1 -0
- package/dist/commonjs/tabs/lib/selection/index.js +8 -0
- package/dist/commonjs/tabs/lib/selection/useResetCursorOnBlur.d.ts +13 -0
- package/dist/commonjs/tabs/lib/selection/useResetCursorOnBlur.d.ts.map +1 -0
- package/dist/commonjs/tabs/lib/{hooks.js → selection/useResetCursorOnBlur.js} +8 -9
- package/dist/commonjs/tabs/lib/selection/useSelectionItem.d.ts +8 -0
- package/dist/commonjs/tabs/lib/selection/useSelectionItem.d.ts.map +1 -0
- package/dist/commonjs/tabs/lib/selection/useSelectionItem.js +16 -0
- package/dist/commonjs/tabs/lib/selection/useSelectionModel.d.ts +62 -0
- package/dist/commonjs/tabs/lib/selection/useSelectionModel.d.ts.map +1 -0
- package/dist/commonjs/tabs/lib/selection/useSelectionModel.js +80 -0
- package/dist/commonjs/tabs/lib/useTabsModel.d.ts +39 -38
- package/dist/commonjs/tabs/lib/useTabsModel.d.ts.map +1 -1
- package/dist/commonjs/tabs/lib/useTabsModel.js +50 -37
- package/dist/commonjs/tooltip/lib/OverflowTooltip.d.ts +10 -0
- package/dist/commonjs/tooltip/lib/OverflowTooltip.d.ts.map +1 -1
- package/dist/commonjs/tooltip/lib/OverflowTooltip.js +8 -6
- package/dist/commonjs/tooltip/lib/useTooltip.d.ts +1 -1
- package/dist/es6/button/lib/SecondaryButton.d.ts +8 -5
- package/dist/es6/button/lib/SecondaryButton.d.ts.map +1 -1
- package/dist/es6/button/lib/SecondaryButton.js +22 -12
- package/dist/es6/button/lib/TertiaryButton.d.ts +8 -4
- package/dist/es6/button/lib/TertiaryButton.d.ts.map +1 -1
- package/dist/es6/button/lib/TertiaryButton.js +25 -21
- package/dist/es6/button/lib/parts/ButtonContainer.d.ts.map +1 -1
- package/dist/es6/button/lib/parts/ButtonContainer.js +2 -6
- package/dist/es6/button/lib/parts/ButtonLabel.d.ts +1 -1
- package/dist/es6/button/lib/parts/ButtonLabel.d.ts.map +1 -1
- package/dist/es6/button/lib/types.d.ts +1 -0
- package/dist/es6/button/lib/types.d.ts.map +1 -1
- package/dist/es6/common/index.d.ts +1 -0
- package/dist/es6/common/index.d.ts.map +1 -1
- package/dist/es6/common/index.js +1 -0
- package/dist/es6/common/lib/EllipsisText.d.ts +5 -0
- package/dist/es6/common/lib/EllipsisText.d.ts.map +1 -0
- package/dist/es6/common/lib/EllipsisText.js +8 -0
- package/dist/es6/common/lib/utils/components.d.ts +19 -9
- package/dist/es6/common/lib/utils/components.d.ts.map +1 -1
- package/dist/es6/common/lib/utils/components.js +12 -2
- package/dist/es6/common/lib/utils/index.d.ts +1 -0
- package/dist/es6/common/lib/utils/index.d.ts.map +1 -1
- package/dist/es6/common/lib/utils/index.js +1 -0
- package/dist/es6/common/lib/utils/mergeProps.d.ts.map +1 -1
- package/dist/es6/common/lib/utils/mergeProps.js +5 -0
- package/dist/es6/common/lib/utils/useConstant.d.ts +9 -0
- package/dist/es6/common/lib/utils/useConstant.d.ts.map +1 -0
- package/dist/es6/common/lib/utils/useConstant.js +15 -0
- package/dist/es6/common/lib/utils/useResizeObserver.d.ts +3 -0
- package/dist/es6/common/lib/utils/useResizeObserver.d.ts.map +1 -0
- package/dist/es6/common/lib/utils/useResizeObserver.js +37 -0
- package/dist/es6/common/lib/utils/useUniqueId.d.ts.map +1 -1
- package/dist/es6/common/lib/utils/useUniqueId.js +3 -3
- package/dist/es6/dialog/lib/hooks/useDialogCard.d.ts +4 -16
- package/dist/es6/dialog/lib/hooks/useDialogCard.d.ts.map +1 -1
- package/dist/es6/dialog/lib/hooks/useDialogPopper.d.ts +5 -2
- package/dist/es6/dialog/lib/hooks/useDialogPopper.d.ts.map +1 -1
- package/dist/es6/modal/lib/ModalOverlay.d.ts +4 -2
- package/dist/es6/modal/lib/ModalOverlay.d.ts.map +1 -1
- package/dist/es6/modal/lib/hooks/useModalCard.d.ts +4 -16
- package/dist/es6/modal/lib/hooks/useModalCard.d.ts.map +1 -1
- package/dist/es6/modal/lib/hooks/useModalHeading.d.ts +5 -17
- package/dist/es6/modal/lib/hooks/useModalHeading.d.ts.map +1 -1
- package/dist/es6/pagination/lib/Pagination/GoTo/Label.d.ts +3 -0
- package/dist/es6/pagination/lib/Pagination/GoTo/Label.d.ts.map +1 -1
- package/dist/es6/pagination/lib/Pagination/PageList.d.ts +1 -1
- package/dist/es6/pagination/lib/Pagination/PageList.d.ts.map +1 -1
- package/dist/es6/pagination/lib/Pagination/Pagination.d.ts +5 -5
- package/dist/es6/pagination/lib/Pagination/common/List.d.ts +1 -1
- package/dist/es6/pagination/lib/Pagination/common/List.d.ts.map +1 -1
- package/dist/es6/pagination/lib/Pagination/common/utils/getValidChildren.d.ts +1 -1
- package/dist/es6/pagination/lib/Pagination/common/utils/getValidChildren.d.ts.map +1 -1
- package/dist/es6/pagination/lib/Pagination/types.d.ts +39 -0
- package/dist/es6/pagination/lib/Pagination/types.d.ts.map +1 -1
- package/dist/es6/pagination/lib/Pagination/usePaginationModel.d.ts +19 -0
- package/dist/es6/pagination/lib/Pagination/usePaginationModel.d.ts.map +1 -1
- package/dist/es6/popup/lib/PopupCard.d.ts.map +1 -1
- package/dist/es6/popup/lib/PopupCard.js +3 -4
- package/dist/es6/popup/lib/hooks/usePopupCard.d.ts +5 -2
- package/dist/es6/popup/lib/hooks/usePopupCard.d.ts.map +1 -1
- package/dist/es6/popup/lib/hooks/usePopupCloseButton.d.ts +4 -2
- package/dist/es6/popup/lib/hooks/usePopupCloseButton.d.ts.map +1 -1
- package/dist/es6/popup/lib/hooks/usePopupHeading.d.ts +5 -2
- package/dist/es6/popup/lib/hooks/usePopupHeading.d.ts.map +1 -1
- package/dist/es6/popup/lib/hooks/usePopupPopper.d.ts +4 -2
- package/dist/es6/popup/lib/hooks/usePopupPopper.d.ts.map +1 -1
- package/dist/es6/popup/lib/hooks/usePopupTarget.d.ts +4 -2
- package/dist/es6/popup/lib/hooks/usePopupTarget.d.ts.map +1 -1
- package/dist/es6/tabs/index.d.ts +5 -0
- package/dist/es6/tabs/index.d.ts.map +1 -1
- package/dist/es6/tabs/index.js +5 -0
- package/dist/es6/tabs/lib/Tabs.d.ts +35 -7
- package/dist/es6/tabs/lib/Tabs.d.ts.map +1 -1
- package/dist/es6/tabs/lib/Tabs.js +28 -7
- package/dist/es6/tabs/lib/TabsItem.d.ts +107 -0
- package/dist/es6/tabs/lib/TabsItem.d.ts.map +1 -0
- package/dist/es6/tabs/lib/TabsItem.js +131 -0
- package/dist/es6/tabs/lib/TabsList.d.ts +43 -0
- package/dist/es6/tabs/lib/TabsList.d.ts.map +1 -0
- package/dist/es6/tabs/lib/TabsList.js +44 -0
- package/dist/es6/tabs/lib/TabsMenuPopper.d.ts +21 -0
- package/dist/es6/tabs/lib/TabsMenuPopper.d.ts.map +1 -0
- package/dist/es6/tabs/lib/{TabList.js → TabsMenuPopper.js} +8 -20
- package/dist/es6/tabs/lib/TabsOverflowButton.d.ts +31 -0
- package/dist/es6/tabs/lib/TabsOverflowButton.d.ts.map +1 -0
- package/dist/es6/tabs/lib/TabsOverflowButton.js +48 -0
- package/dist/{commonjs/tabs/lib/TabPanel.d.ts → es6/tabs/lib/TabsPanel.d.ts} +15 -5
- package/dist/es6/tabs/lib/TabsPanel.d.ts.map +1 -0
- package/dist/es6/tabs/lib/TabsPanel.js +59 -0
- package/{ts3.5/dist/commonjs/tabs/lib/TabList.d.ts → dist/es6/tabs/lib/TabsPanels.d.ts} +15 -15
- package/dist/es6/tabs/lib/TabsPanels.d.ts.map +1 -0
- package/dist/es6/tabs/lib/TabsPanels.js +12 -0
- package/dist/es6/tabs/lib/cursor/index.d.ts +1 -1
- package/dist/es6/tabs/lib/cursor/index.d.ts.map +1 -1
- package/dist/es6/tabs/lib/cursor/index.js +1 -1
- package/dist/es6/tabs/lib/cursor/useCursorModel.d.ts +23 -13
- package/dist/es6/tabs/lib/cursor/useCursorModel.d.ts.map +1 -1
- package/dist/es6/tabs/lib/cursor/useCursorModel.js +51 -50
- package/dist/es6/tabs/lib/cursor/useRovingFocus.d.ts +37 -0
- package/dist/es6/tabs/lib/cursor/useRovingFocus.d.ts.map +1 -0
- package/dist/es6/tabs/lib/cursor/useRovingFocus.js +84 -0
- package/dist/es6/tabs/lib/list/index.d.ts +2 -1
- package/dist/es6/tabs/lib/list/index.d.ts.map +1 -1
- package/dist/es6/tabs/lib/list/index.js +2 -1
- package/dist/es6/tabs/lib/list/renderItem.d.ts +4 -0
- package/dist/es6/tabs/lib/list/renderItem.d.ts.map +1 -0
- package/dist/es6/tabs/lib/list/renderItem.js +12 -0
- package/dist/es6/tabs/lib/list/useListModel.d.ts +25 -13
- package/dist/es6/tabs/lib/list/useListModel.d.ts.map +1 -1
- package/dist/es6/tabs/lib/list/useListModel.js +21 -8
- package/dist/es6/tabs/lib/list/useListRegisterItem.d.ts +14 -0
- package/dist/es6/tabs/lib/list/useListRegisterItem.d.ts.map +1 -0
- package/dist/es6/tabs/lib/list/useListRegisterItem.js +41 -0
- package/dist/es6/tabs/lib/menu/Menu.d.ts +80 -0
- package/dist/es6/tabs/lib/menu/Menu.d.ts.map +1 -0
- package/dist/es6/tabs/lib/menu/Menu.js +89 -0
- package/dist/es6/tabs/lib/menu/MenuCard.d.ts +17 -0
- package/dist/es6/tabs/lib/menu/MenuCard.d.ts.map +1 -0
- package/dist/es6/tabs/lib/menu/MenuCard.js +73 -0
- package/dist/es6/tabs/lib/menu/MenuItem.d.ts +62 -0
- package/dist/es6/tabs/lib/menu/MenuItem.d.ts.map +1 -0
- package/dist/es6/tabs/lib/menu/MenuItem.js +136 -0
- package/dist/es6/tabs/lib/menu/MenuList.d.ts +23 -0
- package/dist/es6/tabs/lib/menu/MenuList.d.ts.map +1 -0
- package/dist/es6/tabs/lib/menu/MenuList.js +43 -0
- package/dist/es6/tabs/lib/menu/MenuPopper.d.ts +21 -0
- package/dist/es6/tabs/lib/menu/MenuPopper.d.ts.map +1 -0
- package/dist/es6/tabs/lib/menu/MenuPopper.js +36 -0
- package/dist/es6/tabs/lib/menu/MenuTarget.d.ts +21 -0
- package/dist/es6/tabs/lib/menu/MenuTarget.d.ts.map +1 -0
- package/dist/es6/tabs/lib/menu/MenuTarget.js +51 -0
- package/dist/es6/tabs/lib/menu/index.d.ts +8 -0
- package/dist/es6/tabs/lib/menu/index.d.ts.map +1 -0
- package/dist/es6/tabs/lib/menu/index.js +7 -0
- package/dist/es6/tabs/lib/menu/useMenuModel.d.ts +35 -0
- package/dist/es6/tabs/lib/menu/useMenuModel.d.ts.map +1 -0
- package/dist/es6/tabs/lib/menu/useMenuModel.js +31 -0
- package/dist/es6/tabs/lib/overflow/index.d.ts +5 -0
- package/dist/es6/tabs/lib/overflow/index.d.ts.map +1 -0
- package/dist/es6/tabs/lib/overflow/index.js +4 -0
- package/dist/es6/tabs/lib/overflow/useOverflowMeasureContainer.d.ts +8 -0
- package/dist/es6/tabs/lib/overflow/useOverflowMeasureContainer.d.ts.map +1 -0
- package/dist/es6/tabs/lib/overflow/useOverflowMeasureContainer.js +13 -0
- package/dist/es6/tabs/lib/overflow/useOverflowMeasureItem.d.ts +10 -0
- package/dist/es6/tabs/lib/overflow/useOverflowMeasureItem.d.ts.map +1 -0
- package/dist/es6/tabs/lib/overflow/useOverflowMeasureItem.js +30 -0
- package/dist/es6/tabs/lib/overflow/useOverflowModel.d.ts +69 -0
- package/dist/es6/tabs/lib/overflow/useOverflowModel.d.ts.map +1 -0
- package/dist/es6/tabs/lib/overflow/useOverflowModel.js +111 -0
- package/dist/es6/tabs/lib/overflow/useOverflowTarget.d.ts +11 -0
- package/dist/es6/tabs/lib/overflow/useOverflowTarget.d.ts.map +1 -0
- package/dist/es6/tabs/lib/overflow/useOverflowTarget.js +30 -0
- package/dist/es6/tabs/lib/selection/index.d.ts +4 -0
- package/dist/es6/tabs/lib/selection/index.d.ts.map +1 -0
- package/dist/es6/tabs/lib/selection/index.js +3 -0
- package/dist/es6/tabs/lib/selection/useResetCursorOnBlur.d.ts +13 -0
- package/dist/es6/tabs/lib/selection/useResetCursorOnBlur.d.ts.map +1 -0
- package/dist/es6/tabs/lib/{hooks.js → selection/useResetCursorOnBlur.js} +8 -9
- package/dist/es6/tabs/lib/selection/useSelectionItem.d.ts +8 -0
- package/dist/es6/tabs/lib/selection/useSelectionItem.d.ts.map +1 -0
- package/dist/es6/tabs/lib/selection/useSelectionItem.js +14 -0
- package/dist/es6/tabs/lib/selection/useSelectionModel.d.ts +62 -0
- package/dist/es6/tabs/lib/selection/useSelectionModel.d.ts.map +1 -0
- package/dist/es6/tabs/lib/selection/useSelectionModel.js +75 -0
- package/dist/es6/tabs/lib/useTabsModel.d.ts +39 -38
- package/dist/es6/tabs/lib/useTabsModel.d.ts.map +1 -1
- package/dist/es6/tabs/lib/useTabsModel.js +50 -37
- package/dist/es6/tooltip/lib/OverflowTooltip.d.ts +10 -0
- package/dist/es6/tooltip/lib/OverflowTooltip.d.ts.map +1 -1
- package/dist/es6/tooltip/lib/OverflowTooltip.js +5 -3
- package/dist/es6/tooltip/lib/useTooltip.d.ts +1 -1
- package/package.json +7 -5
- package/pagination/lib/Pagination/GoTo/Label.tsx +3 -0
- package/pagination/lib/Pagination/types.ts +44 -5
- package/pagination/lib/Pagination/usePaginationModel.ts +19 -0
- package/popup/lib/PopupCard.tsx +3 -2
- package/tabs/index.ts +6 -0
- package/tabs/lib/Tabs.tsx +34 -9
- package/tabs/lib/TabsItem.tsx +250 -0
- package/tabs/lib/TabsList.tsx +67 -0
- package/tabs/lib/TabsMenuPopper.tsx +27 -0
- package/tabs/lib/TabsOverflowButton.tsx +58 -0
- package/tabs/lib/{TabPanel.tsx → TabsPanel.tsx} +33 -31
- package/tabs/lib/TabsPanels.tsx +28 -0
- package/tabs/lib/cursor/index.ts +1 -1
- package/tabs/lib/cursor/useCursorModel.tsx +78 -65
- package/tabs/lib/cursor/useRovingFocus.tsx +94 -0
- package/tabs/lib/list/index.ts +2 -1
- package/tabs/lib/list/renderItem.tsx +19 -0
- package/tabs/lib/list/useListModel.tsx +48 -23
- package/tabs/lib/list/useListRegisterItem.tsx +53 -0
- package/tabs/lib/menu/Menu.tsx +95 -0
- package/tabs/lib/menu/MenuCard.tsx +96 -0
- package/tabs/lib/menu/MenuItem.tsx +195 -0
- package/tabs/lib/menu/MenuList.tsx +59 -0
- package/tabs/lib/menu/MenuPopper.tsx +31 -0
- package/tabs/lib/menu/MenuTarget.tsx +52 -0
- package/tabs/lib/menu/index.ts +8 -0
- package/tabs/lib/menu/useMenuModel.tsx +67 -0
- package/tabs/lib/overflow/index.ts +4 -0
- package/tabs/lib/overflow/spec/tsconfig.json +3 -0
- package/tabs/lib/overflow/spec/useOverflowModel.spec.tsx +46 -0
- package/tabs/lib/overflow/useOverflowMeasureContainer.ts +20 -0
- package/tabs/lib/overflow/useOverflowMeasureItem.tsx +40 -0
- package/tabs/lib/overflow/useOverflowModel.tsx +185 -0
- package/tabs/lib/overflow/useOverflowTarget.tsx +42 -0
- package/tabs/lib/selection/index.ts +3 -0
- package/tabs/lib/selection/useResetCursorOnBlur.tsx +29 -0
- package/tabs/lib/selection/useSelectionItem.tsx +26 -0
- package/tabs/lib/selection/useSelectionModel.tsx +133 -0
- package/tabs/lib/useTabsModel.tsx +93 -78
- package/tooltip/lib/OverflowTooltip.tsx +5 -3
- package/ts3.5/dist/commonjs/button/lib/SecondaryButton.d.ts +8 -5
- package/ts3.5/dist/commonjs/button/lib/TertiaryButton.d.ts +8 -4
- package/ts3.5/dist/commonjs/button/lib/parts/ButtonLabel.d.ts +1 -1
- package/ts3.5/dist/commonjs/button/lib/types.d.ts +1 -0
- package/ts3.5/dist/commonjs/common/index.d.ts +1 -0
- package/ts3.5/dist/commonjs/common/lib/EllipsisText.d.ts +5 -0
- package/ts3.5/dist/commonjs/common/lib/utils/components.d.ts +19 -9
- package/ts3.5/dist/commonjs/common/lib/utils/index.d.ts +1 -0
- package/ts3.5/dist/commonjs/common/lib/utils/useConstant.d.ts +9 -0
- package/ts3.5/dist/commonjs/common/lib/utils/useResizeObserver.d.ts +3 -0
- package/ts3.5/dist/commonjs/dialog/lib/hooks/useDialogCard.d.ts +4 -16
- package/ts3.5/dist/commonjs/dialog/lib/hooks/useDialogPopper.d.ts +5 -2
- package/ts3.5/dist/commonjs/modal/lib/ModalOverlay.d.ts +4 -2
- package/ts3.5/dist/commonjs/modal/lib/hooks/useModalCard.d.ts +4 -16
- package/ts3.5/dist/commonjs/modal/lib/hooks/useModalHeading.d.ts +5 -17
- package/ts3.5/dist/commonjs/pagination/lib/Pagination/GoTo/Label.d.ts +3 -0
- package/ts3.5/dist/commonjs/pagination/lib/Pagination/PageList.d.ts +1 -1
- package/ts3.5/dist/commonjs/pagination/lib/Pagination/Pagination.d.ts +5 -5
- package/ts3.5/dist/commonjs/pagination/lib/Pagination/common/List.d.ts +1 -1
- package/ts3.5/dist/commonjs/pagination/lib/Pagination/common/utils/getValidChildren.d.ts +1 -1
- package/ts3.5/dist/commonjs/pagination/lib/Pagination/types.d.ts +39 -0
- package/ts3.5/dist/commonjs/pagination/lib/Pagination/usePaginationModel.d.ts +19 -0
- package/ts3.5/dist/commonjs/popup/lib/hooks/usePopupCard.d.ts +5 -2
- package/ts3.5/dist/commonjs/popup/lib/hooks/usePopupCloseButton.d.ts +4 -2
- package/ts3.5/dist/commonjs/popup/lib/hooks/usePopupHeading.d.ts +5 -2
- package/ts3.5/dist/commonjs/popup/lib/hooks/usePopupPopper.d.ts +4 -2
- package/ts3.5/dist/commonjs/popup/lib/hooks/usePopupTarget.d.ts +4 -2
- package/ts3.5/dist/commonjs/tabs/index.d.ts +5 -0
- package/ts3.5/dist/commonjs/tabs/lib/Tabs.d.ts +35 -7
- package/ts3.5/dist/commonjs/tabs/lib/TabsItem.d.ts +107 -0
- package/ts3.5/dist/commonjs/tabs/lib/TabsList.d.ts +43 -0
- package/ts3.5/dist/commonjs/tabs/lib/TabsMenuPopper.d.ts +21 -0
- package/ts3.5/dist/commonjs/tabs/lib/TabsOverflowButton.d.ts +31 -0
- package/{dist/es6/tabs/lib/TabPanel.d.ts → ts3.5/dist/commonjs/tabs/lib/TabsPanel.d.ts} +39 -29
- package/ts3.5/dist/{es6/tabs/lib/TabList.d.ts → commonjs/tabs/lib/TabsPanels.d.ts} +5 -5
- package/ts3.5/dist/commonjs/tabs/lib/cursor/index.d.ts +1 -1
- package/ts3.5/dist/commonjs/tabs/lib/cursor/useCursorModel.d.ts +23 -13
- package/ts3.5/dist/commonjs/tabs/lib/cursor/useRovingFocus.d.ts +37 -0
- package/ts3.5/dist/commonjs/tabs/lib/list/index.d.ts +2 -1
- package/ts3.5/dist/commonjs/tabs/lib/list/renderItem.d.ts +4 -0
- package/ts3.5/dist/commonjs/tabs/lib/list/useListModel.d.ts +25 -13
- package/ts3.5/dist/commonjs/tabs/lib/list/useListRegisterItem.d.ts +14 -0
- package/ts3.5/dist/commonjs/tabs/lib/menu/Menu.d.ts +80 -0
- package/ts3.5/dist/commonjs/tabs/lib/menu/MenuCard.d.ts +17 -0
- package/ts3.5/dist/commonjs/tabs/lib/menu/MenuItem.d.ts +62 -0
- package/ts3.5/dist/commonjs/tabs/lib/menu/MenuList.d.ts +23 -0
- package/ts3.5/dist/commonjs/tabs/lib/menu/MenuPopper.d.ts +21 -0
- package/ts3.5/dist/commonjs/tabs/lib/menu/MenuTarget.d.ts +21 -0
- package/ts3.5/dist/commonjs/tabs/lib/menu/index.d.ts +8 -0
- package/ts3.5/dist/commonjs/tabs/lib/menu/useMenuModel.d.ts +35 -0
- package/ts3.5/dist/commonjs/tabs/lib/overflow/index.d.ts +5 -0
- package/ts3.5/dist/commonjs/tabs/lib/overflow/useOverflowMeasureContainer.d.ts +8 -0
- package/ts3.5/dist/commonjs/tabs/lib/overflow/useOverflowMeasureItem.d.ts +10 -0
- package/ts3.5/dist/commonjs/tabs/lib/overflow/useOverflowModel.d.ts +69 -0
- package/ts3.5/dist/commonjs/tabs/lib/overflow/useOverflowTarget.d.ts +11 -0
- package/ts3.5/dist/commonjs/tabs/lib/selection/index.d.ts +4 -0
- package/ts3.5/dist/commonjs/tabs/lib/selection/useResetCursorOnBlur.d.ts +13 -0
- package/ts3.5/dist/commonjs/tabs/lib/selection/useSelectionItem.d.ts +8 -0
- package/ts3.5/dist/commonjs/tabs/lib/selection/useSelectionModel.d.ts +62 -0
- package/ts3.5/dist/commonjs/tabs/lib/useTabsModel.d.ts +39 -38
- package/ts3.5/dist/commonjs/tooltip/lib/OverflowTooltip.d.ts +10 -0
- package/ts3.5/dist/commonjs/tooltip/lib/useTooltip.d.ts +1 -1
- package/ts3.5/dist/es6/button/lib/SecondaryButton.d.ts +8 -5
- package/ts3.5/dist/es6/button/lib/TertiaryButton.d.ts +8 -4
- package/ts3.5/dist/es6/button/lib/parts/ButtonLabel.d.ts +1 -1
- package/ts3.5/dist/es6/button/lib/types.d.ts +1 -0
- package/ts3.5/dist/es6/common/index.d.ts +1 -0
- package/ts3.5/dist/es6/common/lib/EllipsisText.d.ts +5 -0
- package/ts3.5/dist/es6/common/lib/utils/components.d.ts +19 -9
- package/ts3.5/dist/es6/common/lib/utils/index.d.ts +1 -0
- package/ts3.5/dist/es6/common/lib/utils/useConstant.d.ts +9 -0
- package/ts3.5/dist/es6/common/lib/utils/useResizeObserver.d.ts +3 -0
- package/ts3.5/dist/es6/dialog/lib/hooks/useDialogCard.d.ts +4 -16
- package/ts3.5/dist/es6/dialog/lib/hooks/useDialogPopper.d.ts +5 -2
- package/ts3.5/dist/es6/modal/lib/ModalOverlay.d.ts +4 -2
- package/ts3.5/dist/es6/modal/lib/hooks/useModalCard.d.ts +4 -16
- package/ts3.5/dist/es6/modal/lib/hooks/useModalHeading.d.ts +5 -17
- package/ts3.5/dist/es6/pagination/lib/Pagination/GoTo/Label.d.ts +3 -0
- package/ts3.5/dist/es6/pagination/lib/Pagination/PageList.d.ts +1 -1
- package/ts3.5/dist/es6/pagination/lib/Pagination/Pagination.d.ts +5 -5
- package/ts3.5/dist/es6/pagination/lib/Pagination/common/List.d.ts +1 -1
- package/ts3.5/dist/es6/pagination/lib/Pagination/common/utils/getValidChildren.d.ts +1 -1
- package/ts3.5/dist/es6/pagination/lib/Pagination/types.d.ts +39 -0
- package/ts3.5/dist/es6/pagination/lib/Pagination/usePaginationModel.d.ts +19 -0
- package/ts3.5/dist/es6/popup/lib/hooks/usePopupCard.d.ts +5 -2
- package/ts3.5/dist/es6/popup/lib/hooks/usePopupCloseButton.d.ts +4 -2
- package/ts3.5/dist/es6/popup/lib/hooks/usePopupHeading.d.ts +5 -2
- package/ts3.5/dist/es6/popup/lib/hooks/usePopupPopper.d.ts +4 -2
- package/ts3.5/dist/es6/popup/lib/hooks/usePopupTarget.d.ts +4 -2
- package/ts3.5/dist/es6/tabs/index.d.ts +5 -0
- package/ts3.5/dist/es6/tabs/lib/Tabs.d.ts +35 -7
- package/ts3.5/dist/es6/tabs/lib/TabsItem.d.ts +107 -0
- package/ts3.5/dist/es6/tabs/lib/TabsList.d.ts +43 -0
- package/ts3.5/dist/es6/tabs/lib/TabsMenuPopper.d.ts +21 -0
- package/ts3.5/dist/es6/tabs/lib/TabsOverflowButton.d.ts +31 -0
- package/ts3.5/dist/es6/tabs/lib/{TabPanel.d.ts → TabsPanel.d.ts} +15 -5
- package/{dist/commonjs/tabs/lib/TabList.d.ts → ts3.5/dist/es6/tabs/lib/TabsPanels.d.ts} +15 -15
- package/ts3.5/dist/es6/tabs/lib/cursor/index.d.ts +1 -1
- package/ts3.5/dist/es6/tabs/lib/cursor/useCursorModel.d.ts +23 -13
- package/ts3.5/dist/es6/tabs/lib/cursor/useRovingFocus.d.ts +37 -0
- package/ts3.5/dist/es6/tabs/lib/list/index.d.ts +2 -1
- package/ts3.5/dist/es6/tabs/lib/list/renderItem.d.ts +4 -0
- package/ts3.5/dist/es6/tabs/lib/list/useListModel.d.ts +25 -13
- package/ts3.5/dist/es6/tabs/lib/list/useListRegisterItem.d.ts +14 -0
- package/ts3.5/dist/es6/tabs/lib/menu/Menu.d.ts +80 -0
- package/ts3.5/dist/es6/tabs/lib/menu/MenuCard.d.ts +17 -0
- package/ts3.5/dist/es6/tabs/lib/menu/MenuItem.d.ts +62 -0
- package/ts3.5/dist/es6/tabs/lib/menu/MenuList.d.ts +23 -0
- package/ts3.5/dist/es6/tabs/lib/menu/MenuPopper.d.ts +21 -0
- package/ts3.5/dist/es6/tabs/lib/menu/MenuTarget.d.ts +21 -0
- package/ts3.5/dist/es6/tabs/lib/menu/index.d.ts +8 -0
- package/ts3.5/dist/es6/tabs/lib/menu/useMenuModel.d.ts +35 -0
- package/ts3.5/dist/es6/tabs/lib/overflow/index.d.ts +5 -0
- package/ts3.5/dist/es6/tabs/lib/overflow/useOverflowMeasureContainer.d.ts +8 -0
- package/ts3.5/dist/es6/tabs/lib/overflow/useOverflowMeasureItem.d.ts +10 -0
- package/ts3.5/dist/es6/tabs/lib/overflow/useOverflowModel.d.ts +69 -0
- package/ts3.5/dist/es6/tabs/lib/overflow/useOverflowTarget.d.ts +11 -0
- package/ts3.5/dist/es6/tabs/lib/selection/index.d.ts +4 -0
- package/ts3.5/dist/es6/tabs/lib/selection/useResetCursorOnBlur.d.ts +13 -0
- package/ts3.5/dist/es6/tabs/lib/selection/useSelectionItem.d.ts +8 -0
- package/ts3.5/dist/es6/tabs/lib/selection/useSelectionModel.d.ts +62 -0
- package/ts3.5/dist/es6/tabs/lib/useTabsModel.d.ts +39 -38
- package/ts3.5/dist/es6/tooltip/lib/OverflowTooltip.d.ts +10 -0
- package/ts3.5/dist/es6/tooltip/lib/useTooltip.d.ts +1 -1
- package/dist/commonjs/tabs/lib/Tab.d.ts +0 -49
- package/dist/commonjs/tabs/lib/Tab.d.ts.map +0 -1
- package/dist/commonjs/tabs/lib/Tab.js +0 -101
- package/dist/commonjs/tabs/lib/TabList.d.ts.map +0 -1
- package/dist/commonjs/tabs/lib/TabPanel.d.ts.map +0 -1
- package/dist/commonjs/tabs/lib/TabPanel.js +0 -56
- package/dist/commonjs/tabs/lib/cursor/hooks.d.ts +0 -39
- package/dist/commonjs/tabs/lib/cursor/hooks.d.ts.map +0 -1
- package/dist/commonjs/tabs/lib/hooks.d.ts +0 -10
- package/dist/commonjs/tabs/lib/hooks.d.ts.map +0 -1
- package/dist/commonjs/tabs/lib/list/hooks.d.ts +0 -11
- package/dist/commonjs/tabs/lib/list/hooks.d.ts.map +0 -1
- package/dist/commonjs/tabs/lib/list/hooks.js +0 -39
- package/dist/es6/tabs/lib/Tab.d.ts +0 -49
- package/dist/es6/tabs/lib/Tab.d.ts.map +0 -1
- package/dist/es6/tabs/lib/Tab.js +0 -92
- package/dist/es6/tabs/lib/TabList.d.ts.map +0 -1
- package/dist/es6/tabs/lib/TabPanel.d.ts.map +0 -1
- package/dist/es6/tabs/lib/TabPanel.js +0 -51
- package/dist/es6/tabs/lib/cursor/hooks.d.ts +0 -39
- package/dist/es6/tabs/lib/cursor/hooks.d.ts.map +0 -1
- package/dist/es6/tabs/lib/cursor/hooks.js +0 -108
- package/dist/es6/tabs/lib/hooks.d.ts +0 -10
- package/dist/es6/tabs/lib/hooks.d.ts.map +0 -1
- package/dist/es6/tabs/lib/list/hooks.d.ts +0 -11
- package/dist/es6/tabs/lib/list/hooks.d.ts.map +0 -1
- package/dist/es6/tabs/lib/list/hooks.js +0 -34
- package/tabs/lib/Tab.tsx +0 -176
- package/tabs/lib/TabList.tsx +0 -59
- package/tabs/lib/cursor/hooks.tsx +0 -122
- package/tabs/lib/hooks.tsx +0 -31
- package/tabs/lib/list/hooks.tsx +0 -45
- package/ts3.5/dist/commonjs/tabs/lib/Tab.d.ts +0 -49
- package/ts3.5/dist/commonjs/tabs/lib/cursor/hooks.d.ts +0 -39
- package/ts3.5/dist/commonjs/tabs/lib/hooks.d.ts +0 -10
- package/ts3.5/dist/commonjs/tabs/lib/list/hooks.d.ts +0 -11
- package/ts3.5/dist/es6/tabs/lib/Tab.d.ts +0 -49
- package/ts3.5/dist/es6/tabs/lib/cursor/hooks.d.ts +0 -39
- package/ts3.5/dist/es6/tabs/lib/hooks.d.ts +0 -10
- 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
|
-
*
|
|
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?:
|
|
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
|
-
*
|
|
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?:
|
|
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 &&
|
|
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
|
|
86
|
-
{icon &&
|
|
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:
|
|
142
|
-
icon:
|
|
143
|
-
label:
|
|
144
|
-
labelData:
|
|
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:
|
|
186
|
-
icon:
|
|
187
|
-
label:
|
|
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,
|
|
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
|
-
*
|
|
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?:
|
|
27
|
+
size?: TertiaryButtonSizes;
|
|
26
28
|
/**
|
|
27
|
-
*
|
|
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?:
|
|
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:
|
|
91
|
-
label:
|
|
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
|
-
|
|
117
|
-
|
|
118
|
-
label: themePrimary.light,
|
|
119
|
+
icon: themePrimary.main,
|
|
120
|
+
label: themePrimary.main,
|
|
119
121
|
},
|
|
120
122
|
};
|
|
121
123
|
}
|
|
122
124
|
};
|
|
123
125
|
|
|
124
|
-
const
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
'
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
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
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
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
|
package/button/lib/types.ts
CHANGED
|
@@ -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
|
@@ -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
|
|
290
|
-
model: M,
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
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>):
|
|
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 {},
|
|
414
|
-
hook1:
|
|
415
|
-
hook2:
|
|
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:
|
|
427
|
-
hook2:
|
|
428
|
-
hook3:
|
|
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:
|
|
440
|
-
hook2:
|
|
441
|
-
hook3:
|
|
442
|
-
hook4:
|
|
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:
|
|
455
|
-
hook2:
|
|
456
|
-
hook3:
|
|
457
|
-
hook4:
|
|
458
|
-
hook5:
|
|
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
|
}
|
|
@@ -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
|
-
|
|
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
|
|
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
|
-
*
|
|
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?:
|
|
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
|
-
*
|
|
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?:
|
|
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;
|
|
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 &&
|
|
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
|
|
50
|
-
icon &&
|
|
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:
|
|
89
|
-
icon:
|
|
90
|
-
label:
|
|
91
|
-
labelData:
|
|
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:
|
|
130
|
-
icon:
|
|
131
|
-
label:
|
|
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
|
}
|