@workday/canvas-kit-react 6.0.0-alpha.0-next.30 → 6.0.0-alpha.0-next.36
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/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/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/loading-animation/lib/LoadingDots.js +3 -6
- 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 +3 -10
- 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/popup/lib/hooks/useReturnFocus.d.ts +1 -1
- package/dist/commonjs/popup/lib/hooks/useReturnFocus.js +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/Tooltip.d.ts +9 -1
- package/dist/commonjs/tooltip/lib/Tooltip.d.ts.map +1 -1
- package/dist/commonjs/tooltip/lib/Tooltip.js +7 -2
- package/dist/commonjs/tooltip/lib/useTooltip.d.ts +10 -2
- package/dist/commonjs/tooltip/lib/useTooltip.d.ts.map +1 -1
- package/dist/commonjs/tooltip/lib/useTooltip.js +13 -8
- 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/loading-animation/lib/LoadingDots.js +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 +4 -11
- 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/popup/lib/hooks/useReturnFocus.d.ts +1 -1
- package/dist/es6/popup/lib/hooks/useReturnFocus.js +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/Tooltip.d.ts +9 -1
- package/dist/es6/tooltip/lib/Tooltip.d.ts.map +1 -1
- package/dist/es6/tooltip/lib/Tooltip.js +7 -2
- package/dist/es6/tooltip/lib/useTooltip.d.ts +10 -2
- package/dist/es6/tooltip/lib/useTooltip.d.ts.map +1 -1
- package/dist/es6/tooltip/lib/useTooltip.js +13 -8
- package/loading-animation/lib/LoadingDots.tsx +1 -1
- package/package.json +9 -6
- 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 +21 -31
- package/popup/lib/hooks/useReturnFocus.tsx +1 -1
- 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/tooltip/lib/Tooltip.tsx +16 -1
- package/tooltip/lib/useTooltip.tsx +21 -6
- 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/popup/lib/hooks/useReturnFocus.d.ts +1 -1
- 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/Tooltip.d.ts +9 -1
- package/ts3.5/dist/commonjs/tooltip/lib/useTooltip.d.ts +10 -2
- 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/popup/lib/hooks/useReturnFocus.d.ts +1 -1
- 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/Tooltip.d.ts +9 -1
- package/ts3.5/dist/es6/tooltip/lib/useTooltip.d.ts +10 -2
- 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
|
@@ -5,34 +5,42 @@ import {
|
|
|
5
5
|
ToModelConfig,
|
|
6
6
|
useEventMap,
|
|
7
7
|
useUniqueId,
|
|
8
|
+
assert,
|
|
8
9
|
} from '@workday/canvas-kit-react/common';
|
|
9
10
|
|
|
10
|
-
export type
|
|
11
|
-
/** IDREF of the list. Children ids can be derived from this id */
|
|
12
|
-
id: string;
|
|
13
|
-
ref: React.RefObject<HTMLElement>;
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
export type ListState = {
|
|
11
|
+
export type ListState<T = unknown> = {
|
|
17
12
|
/** IDREF of the list. Children ids can be derived from this id */
|
|
18
13
|
id: string;
|
|
19
14
|
/** Used as an auto-incrementing ID for accessibility */
|
|
20
15
|
indexRef: React.RefObject<number>;
|
|
21
|
-
items:
|
|
16
|
+
items: T[];
|
|
17
|
+
/**
|
|
18
|
+
* An array of ids of non-interactive elements. Non-interactive elements usually have `disabled`
|
|
19
|
+
* applied to them and thus are not focusable by the browser. Lists need to know about these so
|
|
20
|
+
* that keyboard navigation properly skips over these items. Interactive elements that are
|
|
21
|
+
* disabled should use `[aria-disabled]` instead and should still receive focus.
|
|
22
|
+
* @see https://www.w3.org/TR/wai-aria-practices-1.1/#kbd_disabled_controls
|
|
23
|
+
*/
|
|
24
|
+
nonInteractiveIds: string[];
|
|
22
25
|
};
|
|
23
26
|
|
|
24
|
-
export type ListEvents = {
|
|
27
|
+
export type ListEvents<T = unknown> = {
|
|
25
28
|
/** Register an item to the list. Takes in an identifier, a React.Ref and an optional index. This should be called on
|
|
26
29
|
* component mount */
|
|
27
|
-
registerItem(data: {item:
|
|
30
|
+
registerItem(data: {item: T; index?: number}): void;
|
|
28
31
|
/** Unregister an item by its identifier. This should be called when the component is unmounted */
|
|
29
32
|
unregisterItem(data: {id: string}): void;
|
|
30
33
|
/** Updates the position of a tab within the list. This should be called when a tab's index is updated */
|
|
31
34
|
updateItemPosition(data: {id: string; index: number}): void;
|
|
32
35
|
};
|
|
33
36
|
|
|
34
|
-
export
|
|
37
|
+
export interface ListModel<T = unknown> extends Model<ListState<T>, ListEvents<T>> {
|
|
38
|
+
getId: (item: T) => string;
|
|
39
|
+
}
|
|
35
40
|
|
|
41
|
+
// We don't have a way of knowing what the generic could be, so we leave it as `unknown`. It will
|
|
42
|
+
// probably need to be cast to the generic in use inside extending models. This will not effect the
|
|
43
|
+
// use of the model in an application, only in models composing this model.
|
|
36
44
|
export const listEventMap = createEventMap<ListEvents>()({
|
|
37
45
|
guards: {
|
|
38
46
|
/**
|
|
@@ -76,20 +84,37 @@ export const listEventMap = createEventMap<ListEvents>()({
|
|
|
76
84
|
},
|
|
77
85
|
});
|
|
78
86
|
|
|
79
|
-
export type BaseListModelConfig = {
|
|
87
|
+
export type BaseListModelConfig<T = unknown> = {
|
|
80
88
|
/** IDREF of the list. Children ids can be derived from this id */
|
|
81
89
|
id?: string;
|
|
90
|
+
items?: T[];
|
|
91
|
+
getId?: (item: T) => string;
|
|
92
|
+
/**
|
|
93
|
+
* Array of all ids which are currently disabled
|
|
94
|
+
*/
|
|
95
|
+
nonInteractiveIds?: string[];
|
|
82
96
|
};
|
|
83
97
|
|
|
84
|
-
export type ListModelConfig = BaseListModelConfig &
|
|
85
|
-
Partial<ToModelConfig<ListState
|
|
98
|
+
export type ListModelConfig<T> = BaseListModelConfig<T> &
|
|
99
|
+
Partial<ToModelConfig<ListState<T>, ListEvents<T>, typeof listEventMap>>;
|
|
100
|
+
|
|
101
|
+
export const defaultGetId = (item: any): string => {
|
|
102
|
+
assert(item.id, 'A list item must have an `id` field or a `getId` function defined');
|
|
103
|
+
return item.id;
|
|
104
|
+
};
|
|
86
105
|
|
|
87
|
-
export const useListModel = (config: ListModelConfig = {}): ListModel => {
|
|
106
|
+
export const useListModel = <T extends unknown>(config: ListModelConfig<T> = {}): ListModel<T> => {
|
|
88
107
|
const id = useUniqueId(config.id);
|
|
89
108
|
const indexRef = React.useRef(0);
|
|
90
|
-
const [items, setItems] = React.useState(
|
|
109
|
+
const [items, setItems] = React.useState(config.items || []);
|
|
110
|
+
const getId = config.getId || defaultGetId;
|
|
91
111
|
|
|
92
|
-
const state = {
|
|
112
|
+
const state = {
|
|
113
|
+
id,
|
|
114
|
+
items: config.items || items,
|
|
115
|
+
indexRef,
|
|
116
|
+
nonInteractiveIds: config.nonInteractiveIds || [],
|
|
117
|
+
};
|
|
93
118
|
|
|
94
119
|
const events = useEventMap(listEventMap, state, config, {
|
|
95
120
|
registerItem({item, index}) {
|
|
@@ -105,8 +130,8 @@ export const useListModel = (config: ListModelConfig = {}): ListModel => {
|
|
|
105
130
|
},
|
|
106
131
|
unregisterItem({id}) {
|
|
107
132
|
setItems(items => {
|
|
108
|
-
if (items.find(item => item
|
|
109
|
-
return items.filter(item => item
|
|
133
|
+
if (items.find(item => getId(item) === id)) {
|
|
134
|
+
return items.filter(item => getId(item) !== id);
|
|
110
135
|
} else {
|
|
111
136
|
return items;
|
|
112
137
|
}
|
|
@@ -114,12 +139,12 @@ export const useListModel = (config: ListModelConfig = {}): ListModel => {
|
|
|
114
139
|
},
|
|
115
140
|
updateItemPosition({id, index}) {
|
|
116
141
|
setItems(items => {
|
|
117
|
-
const copy = items.filter(item => item
|
|
118
|
-
copy.splice(index, 0, items.find(item => item
|
|
142
|
+
const copy = items.filter(item => getId(item) !== id);
|
|
143
|
+
copy.splice(index, 0, items.find(item => getId(item) === id)!);
|
|
119
144
|
return copy;
|
|
120
145
|
});
|
|
121
146
|
},
|
|
122
|
-
});
|
|
147
|
+
} as ListEvents<T>);
|
|
123
148
|
|
|
124
|
-
return {state, events};
|
|
149
|
+
return {state, events, getId};
|
|
125
150
|
};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
import {useMountLayout, createHook} from '@workday/canvas-kit-react/common';
|
|
4
|
+
|
|
5
|
+
import {ListModel} from './useListModel';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Registers an item with a list. It will return elemProps with a `name` which can be used by other
|
|
9
|
+
* hooks to identify the item in the list.
|
|
10
|
+
*/
|
|
11
|
+
export const useListRegisterItem = createHook(
|
|
12
|
+
(
|
|
13
|
+
{state, events, getId}: ListModel,
|
|
14
|
+
_?: React.Ref<HTMLElement>,
|
|
15
|
+
elemProps: {name?: string; index?: number; disabled?: boolean} = {}
|
|
16
|
+
) => {
|
|
17
|
+
const [localId, setLocalId] = React.useState(elemProps.name || '');
|
|
18
|
+
const firstRender = React.useRef(true);
|
|
19
|
+
|
|
20
|
+
React.useLayoutEffect(() => {
|
|
21
|
+
if (elemProps.index !== undefined && !firstRender.current) {
|
|
22
|
+
events.updateItemPosition({id: localId, index: elemProps.index});
|
|
23
|
+
}
|
|
24
|
+
// we only care about the index changing
|
|
25
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
26
|
+
}, [elemProps.index]);
|
|
27
|
+
|
|
28
|
+
useMountLayout(() => {
|
|
29
|
+
const defaultId = state.indexRef.current;
|
|
30
|
+
const itemId = elemProps.name || String(defaultId);
|
|
31
|
+
// bail early if item already exists. This happens if items were already provided.
|
|
32
|
+
if (state.items.find(item => getId(item) === elemProps.name)) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
events.registerItem({
|
|
36
|
+
item: {id: itemId},
|
|
37
|
+
index: elemProps.index,
|
|
38
|
+
});
|
|
39
|
+
setLocalId(itemId);
|
|
40
|
+
firstRender.current = false;
|
|
41
|
+
|
|
42
|
+
return () => {
|
|
43
|
+
events.unregisterItem({id: itemId});
|
|
44
|
+
};
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
return {
|
|
48
|
+
'data-name': localId,
|
|
49
|
+
name: localId,
|
|
50
|
+
disabled: elemProps.disabled || state.nonInteractiveIds.includes(localId) ? true : undefined,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
);
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
import {createComponent, useDefaultModel} from '@workday/canvas-kit-react/common';
|
|
4
|
+
|
|
5
|
+
import {MenuModel, MenuModelConfig, useMenuModel} from './useMenuModel';
|
|
6
|
+
import {MenuPopper} from './MenuPopper';
|
|
7
|
+
import {MenuTarget} from './MenuTarget';
|
|
8
|
+
import {MenuItem} from './MenuItem';
|
|
9
|
+
import {MenuCard} from './MenuCard';
|
|
10
|
+
import {MenuList} from './MenuList';
|
|
11
|
+
|
|
12
|
+
export const MenuModelContext = React.createContext<MenuModel>({} as any);
|
|
13
|
+
|
|
14
|
+
export interface MenuProps<T> extends MenuModelConfig<T> {
|
|
15
|
+
/**
|
|
16
|
+
* The contents of the Menu. Can be `Menu` children or any valid elements.
|
|
17
|
+
*/
|
|
18
|
+
children: React.ReactNode;
|
|
19
|
+
/**
|
|
20
|
+
* Optionally pass a model directly to this component. Default is to create a model out of model
|
|
21
|
+
* config passed to this component.
|
|
22
|
+
* @default useMenuModel(config)
|
|
23
|
+
*/
|
|
24
|
+
model?: MenuModel<T>;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* An accessible dropdown menu component. A dropdown menu usually contains a target element that
|
|
29
|
+
* opens to a menu.
|
|
30
|
+
* @example
|
|
31
|
+
* <Menu>
|
|
32
|
+
* <Menu.Target>Open</Menu.Target>
|
|
33
|
+
* <Menu.Popper>
|
|
34
|
+
* <Menu.Card>
|
|
35
|
+
* <Menu.List>
|
|
36
|
+
* <Menu.Item name="first">First Item</Menu.Item>
|
|
37
|
+
* <Menu.Item name="second">Second Item</Menu.Item>
|
|
38
|
+
* </Menu.List>
|
|
39
|
+
* </Menu.Card>
|
|
40
|
+
* </Menu.Popper>
|
|
41
|
+
* </Menu>
|
|
42
|
+
*/
|
|
43
|
+
export const Menu = createComponent()({
|
|
44
|
+
displayName: 'Menu',
|
|
45
|
+
Component: ({children, model, ...config}: MenuProps<any>) => {
|
|
46
|
+
const value = useDefaultModel(model, config, useMenuModel);
|
|
47
|
+
|
|
48
|
+
return <MenuModelContext.Provider value={value}>{children}</MenuModelContext.Provider>;
|
|
49
|
+
},
|
|
50
|
+
subComponents: {
|
|
51
|
+
/**
|
|
52
|
+
* The menu card is a non-semantic element used to give the dropdown menu its distinct visual
|
|
53
|
+
* cue that the dropdown menu is floating above other content. A menu card usually contains a
|
|
54
|
+
* menu list, but can also contain other elements like a header or footer.
|
|
55
|
+
*/
|
|
56
|
+
Card: MenuCard,
|
|
57
|
+
/**
|
|
58
|
+
* The menu list follows the Collections API. A list can either contain static items
|
|
59
|
+
* or a render prop and `items` to the model.
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* const MyComponent = () => {
|
|
63
|
+
* const model = useMenuModel({
|
|
64
|
+
* items: [
|
|
65
|
+
* { id: 'first', text: 'First Item' },
|
|
66
|
+
* { id: 'second', text: 'Second Item' },
|
|
67
|
+
* ]
|
|
68
|
+
* })
|
|
69
|
+
*
|
|
70
|
+
* return (
|
|
71
|
+
* <Menu model={model}>
|
|
72
|
+
* <Menu.List>
|
|
73
|
+
* {(item) => <Menu.Item name={item.id}>{item.text}</Menu.Item>}
|
|
74
|
+
* </Menu.List>
|
|
75
|
+
* </Menu>
|
|
76
|
+
* )
|
|
77
|
+
* }
|
|
78
|
+
*/
|
|
79
|
+
List: MenuList,
|
|
80
|
+
/**
|
|
81
|
+
* A menu item has an optional `name` prop that identifies the item in the menu list and will be
|
|
82
|
+
* passed to the optional `onSelect` callback of the menu model. A menu item can contain any
|
|
83
|
+
* HTML. If more complex HTML is provided, consider
|
|
84
|
+
*/
|
|
85
|
+
Item: MenuItem,
|
|
86
|
+
Target: MenuTarget,
|
|
87
|
+
/**
|
|
88
|
+
* The "Popper" of a menu. The popper will appear around the `Menu.Target`. It renders a `div`
|
|
89
|
+
* element that is portalled to the `document.body` which is controlled by the `PopupStack. The
|
|
90
|
+
* `PopupStack` is not part of React. This means no extra props given to this component will be
|
|
91
|
+
* forwarded to the `div` element, but the `ref` will be forwarded.
|
|
92
|
+
*/
|
|
93
|
+
Popper: MenuPopper,
|
|
94
|
+
},
|
|
95
|
+
});
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import {keyframes} from '@emotion/core';
|
|
3
|
+
|
|
4
|
+
import {Card} from '@workday/canvas-kit-react/card';
|
|
5
|
+
import {space, type} from '@workday/canvas-kit-react/tokens';
|
|
6
|
+
import {
|
|
7
|
+
styled,
|
|
8
|
+
TransformOrigin,
|
|
9
|
+
getTranslateFromOrigin,
|
|
10
|
+
createComponent,
|
|
11
|
+
StyledType,
|
|
12
|
+
useModelContext,
|
|
13
|
+
ExtractProps,
|
|
14
|
+
createHook,
|
|
15
|
+
} from '@workday/canvas-kit-react/common';
|
|
16
|
+
import {getTransformFromPlacement} from '@workday/canvas-kit-react/popup';
|
|
17
|
+
|
|
18
|
+
import {MenuModel} from './useMenuModel';
|
|
19
|
+
import {MenuModelContext} from './Menu';
|
|
20
|
+
|
|
21
|
+
export interface MenuCardProps<T = unknown> extends ExtractProps<typeof Card, never> {
|
|
22
|
+
/**
|
|
23
|
+
* Optionally pass a model directly to this component. Default is to implicitly use the same
|
|
24
|
+
* model as the container component which uses React context. Only use this for advanced use-cases
|
|
25
|
+
*/
|
|
26
|
+
model?: MenuModel<T>;
|
|
27
|
+
children?: React.ReactNode;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
const popupAnimation = (transformOrigin: TransformOrigin) => {
|
|
31
|
+
const translate = getTranslateFromOrigin(transformOrigin, space.xxs);
|
|
32
|
+
|
|
33
|
+
return keyframes`
|
|
34
|
+
0% {
|
|
35
|
+
opacity: 0;
|
|
36
|
+
transform: translate(${translate.x}px, ${translate.y}px);
|
|
37
|
+
}
|
|
38
|
+
100% {
|
|
39
|
+
opacity: 1;
|
|
40
|
+
transform: translate(0);
|
|
41
|
+
}
|
|
42
|
+
`;
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
const StyledCard = styled(Card)<
|
|
46
|
+
StyledType & {width?: number | string; transformOrigin?: TransformOrigin}
|
|
47
|
+
>(
|
|
48
|
+
type.levels.subtext.large,
|
|
49
|
+
{
|
|
50
|
+
position: 'relative',
|
|
51
|
+
display: 'flex',
|
|
52
|
+
flexDirection: 'column',
|
|
53
|
+
},
|
|
54
|
+
({transformOrigin}) => {
|
|
55
|
+
if (transformOrigin == null) {
|
|
56
|
+
return {};
|
|
57
|
+
}
|
|
58
|
+
return {
|
|
59
|
+
animation: popupAnimation(transformOrigin),
|
|
60
|
+
animationDuration: '150ms',
|
|
61
|
+
animationTimingFunction: 'ease-out',
|
|
62
|
+
transformOrigin: `${transformOrigin.vertical} ${transformOrigin.horizontal}`,
|
|
63
|
+
// Allow overriding of animation in special cases
|
|
64
|
+
'.wd-no-animation &': {
|
|
65
|
+
animation: 'none',
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
);
|
|
70
|
+
|
|
71
|
+
export const MenuCard = createComponent('div')({
|
|
72
|
+
displayName: 'Menu.Card',
|
|
73
|
+
Component: ({children, model, padding = 'zero', ...elemProps}: MenuCardProps, ref, Element) => {
|
|
74
|
+
const localModel = useModelContext(MenuModelContext, model);
|
|
75
|
+
const props = useMenuCard(localModel, elemProps, ref);
|
|
76
|
+
const transformOrigin = React.useMemo(() => {
|
|
77
|
+
return getTransformFromPlacement(localModel.state.placement || 'bottom');
|
|
78
|
+
}, [localModel.state.placement]);
|
|
79
|
+
|
|
80
|
+
return (
|
|
81
|
+
<StyledCard
|
|
82
|
+
maxWidth={`calc(100vw - ${space.l})`}
|
|
83
|
+
as={Element}
|
|
84
|
+
transformOrigin={transformOrigin}
|
|
85
|
+
padding={padding}
|
|
86
|
+
{...props}
|
|
87
|
+
>
|
|
88
|
+
{children}
|
|
89
|
+
</StyledCard>
|
|
90
|
+
);
|
|
91
|
+
},
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
export const useMenuCard = createHook((_: MenuModel) => {
|
|
95
|
+
return {};
|
|
96
|
+
});
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
import {colors, iconColors, typeColors, space, type} from '@workday/canvas-kit-react/tokens';
|
|
4
|
+
import {
|
|
5
|
+
createComponent,
|
|
6
|
+
styled,
|
|
7
|
+
StyledType,
|
|
8
|
+
useModelContext,
|
|
9
|
+
composeHooks,
|
|
10
|
+
createHook,
|
|
11
|
+
useLocalRef,
|
|
12
|
+
useMount,
|
|
13
|
+
} from '@workday/canvas-kit-react/common';
|
|
14
|
+
import {SystemIcon} from '@workday/canvas-kit-react/icon';
|
|
15
|
+
import {OverflowTooltip} from '@workday/canvas-kit-react/tooltip';
|
|
16
|
+
import {Box} from '@workday/canvas-kit-labs-react/common';
|
|
17
|
+
|
|
18
|
+
import {useListRegisterItem} from '../list';
|
|
19
|
+
import {useRovingFocus} from '../cursor';
|
|
20
|
+
import {MenuModel} from './useMenuModel';
|
|
21
|
+
import {MenuModelContext} from './Menu';
|
|
22
|
+
import {useSelectionItem} from '../selection';
|
|
23
|
+
|
|
24
|
+
export interface MenuItemProps<T = unknown> {
|
|
25
|
+
/**
|
|
26
|
+
* Optionally pass index to menu item. This should be done if `Menu.Item` components were created
|
|
27
|
+
* via a `Array::map` function. This index will ensure keyboard navigation works even if items are
|
|
28
|
+
* inserted out of order.
|
|
29
|
+
*/
|
|
30
|
+
index?: number;
|
|
31
|
+
/**
|
|
32
|
+
* The label text of the MenuItem.
|
|
33
|
+
*/
|
|
34
|
+
children: React.ReactNode;
|
|
35
|
+
/**
|
|
36
|
+
* The name of the menu item. This name will be used in the `onSelect` callback in the model. If
|
|
37
|
+
* this property is not provided, it will default to a string representation of the the zero-based
|
|
38
|
+
* index of the Tab when it was initialized.
|
|
39
|
+
*/
|
|
40
|
+
name?: string;
|
|
41
|
+
/**
|
|
42
|
+
* Optionally pass a model directly to this component. Default is to implicitly use the same
|
|
43
|
+
* model as the container component which uses React context. Only use this for advanced use-cases
|
|
44
|
+
*/
|
|
45
|
+
model?: MenuModel<T>;
|
|
46
|
+
'aria-disabled'?: boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Use `hasIcon={true}` when the Tab item contains an icon. This instructs the tab item to render
|
|
49
|
+
* children as a flex container to accommodate icons. You will have to use `Tabs.Item.Text` as a
|
|
50
|
+
* child element if this is set to true.
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* <Menu.Item hasIcon>
|
|
54
|
+
* <Menu.Item.Icon icon={someIcon} />
|
|
55
|
+
* <Menu.Item.Text>Tab Text</Menu.Item.Text>
|
|
56
|
+
* </Menu.Item>
|
|
57
|
+
*/
|
|
58
|
+
hasIcon?: boolean;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
const StyledItem = styled(Box.as('li'))<StyledType & {hasIcon?: boolean}>(
|
|
62
|
+
({theme}) => {
|
|
63
|
+
return {
|
|
64
|
+
...type.levels.subtext.large,
|
|
65
|
+
'& > *:not(style) ~ *:not(style)': {
|
|
66
|
+
marginLeft: space.xxs,
|
|
67
|
+
},
|
|
68
|
+
padding: `${space.xxs} ${space.s}`,
|
|
69
|
+
boxSizing: 'border-box',
|
|
70
|
+
cursor: 'pointer',
|
|
71
|
+
color: colors.blackPepper300,
|
|
72
|
+
borderWidth: 0,
|
|
73
|
+
textAlign: 'left',
|
|
74
|
+
transition: 'background-color 80ms, color 80ms',
|
|
75
|
+
'.wd-icon-background ~ .wd-icon-accent, .wd-icon-background ~ .wd-icon-accent2': {
|
|
76
|
+
fill: iconColors.active,
|
|
77
|
+
},
|
|
78
|
+
'&:hover, &[aria-selected=true]': {
|
|
79
|
+
backgroundColor: theme.canvas.palette.primary.lightest,
|
|
80
|
+
color: colors.blackPepper300,
|
|
81
|
+
'.wd-icon-fill, .wd-icon-accent, .wd-icon-accent2': {
|
|
82
|
+
fill: iconColors.hover,
|
|
83
|
+
},
|
|
84
|
+
'.wd-icon-background ~ .wd-icon-accent, .wd-icon-background ~ .wd-icon-accent2': {
|
|
85
|
+
fill: iconColors.active,
|
|
86
|
+
},
|
|
87
|
+
},
|
|
88
|
+
'&:focus': {
|
|
89
|
+
outline: 'none',
|
|
90
|
+
backgroundColor: theme.canvas.palette.primary.main,
|
|
91
|
+
color: typeColors.inverse,
|
|
92
|
+
'.wd-icon-fill, .wd-icon-accent, .wd-icon-accent2': {
|
|
93
|
+
fill: iconColors.inverse,
|
|
94
|
+
},
|
|
95
|
+
'.wd-icon-background ~ .wd-icon-accent, .wd-icon-background ~ .wd-icon-accent2': {
|
|
96
|
+
fill: iconColors.inverse,
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
// We want the focus styles no matter what
|
|
100
|
+
[`[data-whatinput]`]: {
|
|
101
|
+
backgroundColor: 'inherit',
|
|
102
|
+
color: colors.blackPepper300,
|
|
103
|
+
'.wd-icon-background ~ .wd-icon-accent, .wd-icon-background ~ .wd-icon-accent2': {
|
|
104
|
+
fill: iconColors.active,
|
|
105
|
+
},
|
|
106
|
+
'&:hover, &[aria-selected=true]': {
|
|
107
|
+
backgroundColor: theme.canvas.palette.primary.lightest,
|
|
108
|
+
'.wd-icon-fill, .wd-icon-accent, .wd-icon-accent2': {
|
|
109
|
+
fill: iconColors.hover,
|
|
110
|
+
},
|
|
111
|
+
},
|
|
112
|
+
'&:focus': {
|
|
113
|
+
'.wd-icon-background ~ .wd-icon-accent, .wd-icon-background ~ .wd-icon-accent2': {
|
|
114
|
+
fill: iconColors.active,
|
|
115
|
+
},
|
|
116
|
+
},
|
|
117
|
+
},
|
|
118
|
+
backgroundColor: 'inherit',
|
|
119
|
+
'&:disabled, &[aria-disabled]': {
|
|
120
|
+
color: colors.licorice100,
|
|
121
|
+
cursor: 'default',
|
|
122
|
+
'.wd-icon-fill, .wd-icon-accent, .wd-icon-accent2': {
|
|
123
|
+
fill: iconColors.disabled,
|
|
124
|
+
},
|
|
125
|
+
'&:focus': {
|
|
126
|
+
backgroundColor: colors.blueberry200,
|
|
127
|
+
'.wd-icon-background ~ .wd-icon-accent, .wd-icon-background ~ .wd-icon-accent2': {
|
|
128
|
+
fill: iconColors.disabled,
|
|
129
|
+
},
|
|
130
|
+
'&:hover, &[aria-selected=true]': {
|
|
131
|
+
'.wd-icon-background ~ .wd-icon-accent, .wd-icon-background ~ .wd-icon-accent2': {
|
|
132
|
+
fill: iconColors.disabled,
|
|
133
|
+
},
|
|
134
|
+
},
|
|
135
|
+
},
|
|
136
|
+
},
|
|
137
|
+
};
|
|
138
|
+
},
|
|
139
|
+
({hasIcon}) => {
|
|
140
|
+
if (hasIcon) {
|
|
141
|
+
return {
|
|
142
|
+
display: 'flex',
|
|
143
|
+
};
|
|
144
|
+
} else {
|
|
145
|
+
return {};
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
);
|
|
149
|
+
|
|
150
|
+
export const MenuItem = createComponent('button')({
|
|
151
|
+
displayName: 'Menu.Item',
|
|
152
|
+
Component: ({model, children, ...elemProps}: MenuItemProps, ref, Element) => {
|
|
153
|
+
const localModel = useModelContext(MenuModelContext, model);
|
|
154
|
+
|
|
155
|
+
const props = useMenuItem(localModel, elemProps, ref);
|
|
156
|
+
|
|
157
|
+
if ('production' !== process.env.NODE_ENV) {
|
|
158
|
+
// ensure `hasIcon` is used when a child has an icon
|
|
159
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
160
|
+
const {elementRef, localRef} = useLocalRef(props.ref);
|
|
161
|
+
props.ref = elementRef;
|
|
162
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
163
|
+
useMount(() => {
|
|
164
|
+
if (localRef.current.querySelector('svg') && !props.hasIcon) {
|
|
165
|
+
console.warn(
|
|
166
|
+
`A Menu.Item with an icon should have the 'hasIcon' prop set to true. This ensures correct rendering`
|
|
167
|
+
);
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
return (
|
|
173
|
+
<OverflowTooltip placement="left">
|
|
174
|
+
<StyledItem minHeight={space.xl} as={Element} {...props}>
|
|
175
|
+
{children}
|
|
176
|
+
</StyledItem>
|
|
177
|
+
</OverflowTooltip>
|
|
178
|
+
);
|
|
179
|
+
},
|
|
180
|
+
subComponents: {
|
|
181
|
+
Icon: SystemIcon,
|
|
182
|
+
Text: styled('span')({}),
|
|
183
|
+
},
|
|
184
|
+
});
|
|
185
|
+
|
|
186
|
+
export const useMenuItem = composeHooks(
|
|
187
|
+
createHook((model: MenuModel, _?: React.Ref<any>, elemProps: {name?: string} = {}) => {
|
|
188
|
+
return {
|
|
189
|
+
role: 'menuitem',
|
|
190
|
+
};
|
|
191
|
+
}),
|
|
192
|
+
useSelectionItem,
|
|
193
|
+
useRovingFocus,
|
|
194
|
+
useListRegisterItem
|
|
195
|
+
);
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
import {commonColors} from '@workday/canvas-kit-react/tokens';
|
|
4
|
+
import {
|
|
5
|
+
createComponent,
|
|
6
|
+
useModelContext,
|
|
7
|
+
createHook,
|
|
8
|
+
ExtractProps,
|
|
9
|
+
} from '@workday/canvas-kit-react/common';
|
|
10
|
+
import {Stack} from '@workday/canvas-kit-labs-react/layout';
|
|
11
|
+
|
|
12
|
+
import {MenuModel} from './useMenuModel';
|
|
13
|
+
import {MenuModelContext} from './Menu';
|
|
14
|
+
import {useRenderItems} from '../list';
|
|
15
|
+
|
|
16
|
+
export interface MenuListProps<T = unknown> extends Partial<ExtractProps<typeof Stack, never>> {
|
|
17
|
+
/**
|
|
18
|
+
* The label text of the MenuList.
|
|
19
|
+
*/
|
|
20
|
+
children: React.ReactNode;
|
|
21
|
+
/**
|
|
22
|
+
* Optionally pass a model directly to this component. Default is to implicitly use the same
|
|
23
|
+
* model as the container component which uses React context. Only use this for advanced use-cases
|
|
24
|
+
*/
|
|
25
|
+
model?: MenuModel<T>;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export const MenuList = createComponent('div')({
|
|
29
|
+
displayName: 'Menu.List',
|
|
30
|
+
Component: ({model, children, ...elemProps}: MenuListProps, ref, Element) => {
|
|
31
|
+
const localModel = useModelContext(MenuModelContext, model);
|
|
32
|
+
|
|
33
|
+
const props = useMenuList(localModel, elemProps, ref);
|
|
34
|
+
|
|
35
|
+
return (
|
|
36
|
+
<Stack
|
|
37
|
+
as={Element}
|
|
38
|
+
background={commonColors.background}
|
|
39
|
+
borderRadius="m"
|
|
40
|
+
padding="zero"
|
|
41
|
+
marginY="zero"
|
|
42
|
+
marginX="xxs"
|
|
43
|
+
spacing="zero"
|
|
44
|
+
overflowY="auto"
|
|
45
|
+
flexDirection={localModel.state.orientation === 'vertical' ? 'column' : 'row'}
|
|
46
|
+
{...props}
|
|
47
|
+
>
|
|
48
|
+
{useRenderItems(localModel, children)}
|
|
49
|
+
</Stack>
|
|
50
|
+
);
|
|
51
|
+
},
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
export const useMenuList = createHook((model: MenuModel) => {
|
|
55
|
+
return {
|
|
56
|
+
role: 'menu',
|
|
57
|
+
'aria-labelledby': model.state.id,
|
|
58
|
+
};
|
|
59
|
+
});
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
import {createComponent, ExtractProps, useModelContext} from '@workday/canvas-kit-react/common';
|
|
4
|
+
import {usePopupPopper, Popper} from '@workday/canvas-kit-react/popup';
|
|
5
|
+
|
|
6
|
+
import {MenuModel} from './useMenuModel';
|
|
7
|
+
import {MenuModelContext} from './Menu';
|
|
8
|
+
|
|
9
|
+
export interface MenuPopperProps<T = unknown> extends ExtractProps<typeof Popper> {
|
|
10
|
+
/**
|
|
11
|
+
* Optionally pass a model directly to this component. Default is to implicitly use the same
|
|
12
|
+
* model as the container component which uses React context. Only use this for advanced use-cases
|
|
13
|
+
*/
|
|
14
|
+
model?: MenuModel<T>;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export const MenuPopper = createComponent('div')({
|
|
18
|
+
displayName: 'Menu.Popper',
|
|
19
|
+
Component: ({children, model, ...elemProps}: MenuPopperProps, ref) => {
|
|
20
|
+
const localModel = useModelContext(MenuModelContext, model);
|
|
21
|
+
|
|
22
|
+
const props = useMenuPopper(localModel, elemProps, ref);
|
|
23
|
+
return (
|
|
24
|
+
<Popper placement="bottom-start" {...props}>
|
|
25
|
+
{children}
|
|
26
|
+
</Popper>
|
|
27
|
+
);
|
|
28
|
+
},
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
export const useMenuPopper = usePopupPopper;
|