@workday/canvas-kit-react 9.0.0-alpha.368-next.6 → 9.0.0-alpha.384-next.3
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/action-bar/lib/ActionBarList.tsx +2 -2
- package/banner/lib/hooks/index.ts +2 -0
- package/banner/lib/hooks/useThemedPalette.ts +3 -3
- package/common/lib/theming/README.md +97 -0
- package/common/lib/theming/index.ts +1 -1
- package/common/lib/theming/useTheme.ts +79 -22
- package/common/lib/theming/useThemedRing.ts +114 -0
- package/common/lib/utils/colorUtils.ts +20 -7
- package/common/lib/utils/components.ts +4 -0
- package/common/lib/utils/memoize.ts +1 -1
- package/dist/commonjs/action-bar/lib/ActionBar.js +8 -9
- package/dist/commonjs/action-bar/lib/ActionBarItem.js +7 -18
- package/dist/commonjs/action-bar/lib/ActionBarList.js +13 -38
- package/dist/commonjs/action-bar/lib/ActionBarOverflowButton.js +13 -24
- package/dist/commonjs/action-bar/lib/useActionBarModel.js +39 -38
- package/dist/commonjs/avatar/lib/Avatar.js +52 -74
- package/dist/commonjs/badge/lib/CountBadge.js +23 -43
- package/dist/commonjs/banner/lib/Banner.js +32 -48
- package/dist/commonjs/banner/lib/BannerActionText.js +7 -30
- package/dist/commonjs/banner/lib/BannerIcon.js +9 -31
- package/dist/commonjs/banner/lib/BannerLabel.js +6 -29
- package/dist/commonjs/banner/lib/hooks/index.d.ts +2 -0
- package/dist/commonjs/banner/lib/hooks/index.d.ts.map +1 -1
- package/dist/commonjs/banner/lib/hooks/index.js +3 -0
- package/dist/commonjs/banner/lib/hooks/useBanner.js +5 -6
- package/dist/commonjs/banner/lib/hooks/useBannerActionText.js +4 -5
- package/dist/commonjs/banner/lib/hooks/useBannerIcon.js +6 -7
- package/dist/commonjs/banner/lib/hooks/useBannerLabel.js +4 -5
- package/dist/commonjs/banner/lib/hooks/useBannerModel.js +8 -16
- package/dist/commonjs/banner/lib/hooks/useThemedPalette.d.ts +1 -1
- package/dist/commonjs/banner/lib/hooks/useThemedPalette.d.ts.map +1 -1
- package/dist/commonjs/banner/lib/hooks/useThemedPalette.js +11 -11
- package/dist/commonjs/breadcrumbs/lib/Breadcrumbs.js +12 -35
- package/dist/commonjs/breadcrumbs/lib/BreadcrumbsCurrentItem.js +14 -37
- package/dist/commonjs/breadcrumbs/lib/BreadcrumbsItem.js +14 -39
- package/dist/commonjs/breadcrumbs/lib/BreadcrumbsLink.js +15 -36
- package/dist/commonjs/breadcrumbs/lib/BreadcrumbsList.js +10 -33
- package/dist/commonjs/breadcrumbs/lib/BreadcrumbsMenu.js +7 -19
- package/dist/commonjs/breadcrumbs/lib/BreadcrumbsOverflowButton.js +15 -38
- package/dist/commonjs/breadcrumbs/lib/hooks/useBreadcrumbsModel.js +38 -37
- package/dist/commonjs/breadcrumbs/lib/hooks/utils/index.js +4 -4
- package/dist/commonjs/button/lib/BaseButton.js +128 -78
- package/dist/commonjs/button/lib/DeleteButton.js +27 -58
- package/dist/commonjs/button/lib/ExternalHyperlink.js +25 -39
- package/dist/commonjs/button/lib/Hyperlink.js +9 -34
- package/dist/commonjs/button/lib/PrimaryButton.js +9 -32
- package/dist/commonjs/button/lib/SecondaryButton.js +9 -32
- package/dist/commonjs/button/lib/TertiaryButton.js +23 -49
- package/dist/commonjs/button/lib/ToolbarDropdownButton.js +13 -39
- package/dist/commonjs/button/lib/ToolbarIconButton.js +16 -43
- package/dist/commonjs/button/lib/deprecated_Button.js +51 -54
- package/dist/commonjs/button/lib/parts/ButtonLabel.js +6 -29
- package/dist/commonjs/button/lib/parts/ButtonLabelIcon.js +7 -30
- package/dist/commonjs/card/lib/Card.js +8 -31
- package/dist/commonjs/card/lib/CardBody.js +6 -29
- package/dist/commonjs/card/lib/CardHeading.js +5 -28
- package/dist/commonjs/checkbox/lib/Checkbox.js +120 -129
- package/dist/commonjs/collection/lib/ListBox.js +11 -34
- package/dist/commonjs/collection/lib/react-virtual.js +2 -2
- package/dist/commonjs/collection/lib/useBaseListModel.js +57 -61
- package/dist/commonjs/collection/lib/useCursorListModel.js +98 -130
- package/dist/commonjs/collection/lib/useGridModel.js +14 -32
- package/dist/commonjs/collection/lib/useListItemRegister.js +16 -18
- package/dist/commonjs/collection/lib/useListItemRovingFocus.js +35 -40
- package/dist/commonjs/collection/lib/useListItemSelect.js +6 -8
- package/dist/commonjs/collection/lib/useListModel.js +2 -2
- package/dist/commonjs/collection/lib/useListRenderItem.js +9 -9
- package/dist/commonjs/collection/lib/useListResetCursorOnBlur.js +9 -10
- package/dist/commonjs/collection/lib/useOverflowListItemMeasure.js +10 -11
- package/dist/commonjs/collection/lib/useOverflowListMeasure.js +8 -8
- package/dist/commonjs/collection/lib/useOverflowListModel.js +61 -56
- package/dist/commonjs/collection/lib/useOverflowListTarget.js +10 -10
- package/dist/commonjs/collection/lib/useSelectionListModel.js +31 -37
- package/dist/commonjs/color-picker/lib/ColorInput.js +45 -81
- package/dist/commonjs/color-picker/lib/ColorPreview.js +7 -32
- package/dist/commonjs/color-picker/lib/parts/ColorSwatch.js +15 -43
- package/dist/commonjs/common/lib/CanvasProvider.js +15 -57
- package/dist/commonjs/common/lib/EllipsisText.js +6 -18
- package/dist/commonjs/common/lib/InputProvider.js +73 -93
- package/dist/commonjs/common/lib/parts/_brand-assets.js +6 -6
- package/dist/commonjs/common/lib/responsive/useResponsiveContainerStyles.js +22 -49
- package/dist/commonjs/common/lib/styles/errorRing.js +11 -10
- package/dist/commonjs/common/lib/styles/focusRing.js +19 -21
- package/dist/commonjs/common/lib/styles/hideMouseFocus.js +13 -9
- package/dist/commonjs/common/lib/theming/breakpoints.js +10 -10
- package/dist/commonjs/common/lib/theming/createCanvasTheme.js +36 -65
- package/dist/commonjs/common/lib/theming/getObjectProxy.js +3 -3
- package/dist/commonjs/common/lib/theming/index.d.ts +1 -1
- package/dist/commonjs/common/lib/theming/index.d.ts.map +1 -1
- package/dist/commonjs/common/lib/theming/index.js +1 -1
- package/dist/commonjs/common/lib/theming/styled.js +10 -14
- package/dist/commonjs/common/lib/theming/theme.js +3 -3
- package/dist/commonjs/common/lib/theming/useIsRTL.js +5 -5
- package/dist/commonjs/common/lib/theming/useTheme.d.ts +49 -5
- package/dist/commonjs/common/lib/theming/useTheme.d.ts.map +1 -1
- package/dist/commonjs/common/lib/theming/useTheme.js +82 -37
- package/dist/commonjs/common/lib/theming/useThemedRing.d.ts +43 -0
- package/dist/commonjs/common/lib/theming/useThemedRing.d.ts.map +1 -0
- package/dist/commonjs/common/lib/theming/useThemedRing.js +100 -0
- package/dist/commonjs/common/lib/utils/changeFocus.js +3 -3
- package/dist/commonjs/common/lib/utils/colorUtils.d.ts +7 -0
- package/dist/commonjs/common/lib/utils/colorUtils.d.ts.map +1 -1
- package/dist/commonjs/common/lib/utils/colorUtils.js +28 -15
- package/dist/commonjs/common/lib/utils/components.d.ts +3 -1
- package/dist/commonjs/common/lib/utils/components.d.ts.map +1 -1
- package/dist/commonjs/common/lib/utils/components.js +46 -89
- package/dist/commonjs/common/lib/utils/deepMerge.js +4 -4
- package/dist/commonjs/common/lib/utils/elements.js +16 -16
- package/dist/commonjs/common/lib/utils/getTranslateFromOrigin.js +2 -2
- package/dist/commonjs/common/lib/utils/isWithinBreakpoint.js +1 -1
- package/dist/commonjs/common/lib/utils/makeMq.js +4 -4
- package/dist/commonjs/common/lib/utils/memoize.d.ts +1 -1
- package/dist/commonjs/common/lib/utils/memoize.d.ts.map +1 -1
- package/dist/commonjs/common/lib/utils/memoize.js +4 -8
- package/dist/commonjs/common/lib/utils/mergeCallback.js +1 -5
- package/dist/commonjs/common/lib/utils/mergeProps.js +5 -16
- package/dist/commonjs/common/lib/utils/models.js +48 -70
- package/dist/commonjs/common/lib/utils/useConstant.js +2 -2
- package/dist/commonjs/common/lib/utils/useIsFullscreen.js +7 -7
- package/dist/commonjs/common/lib/utils/useModalityType.js +9 -9
- package/dist/commonjs/common/lib/utils/useMount.js +3 -3
- package/dist/commonjs/common/lib/utils/useResizeObserver.js +9 -21
- package/dist/commonjs/common/lib/utils/useUniqueId.js +8 -8
- package/dist/commonjs/common/lib/utils/useWindowSize.js +10 -10
- package/dist/commonjs/dialog/lib/Dialog.js +7 -8
- package/dist/commonjs/dialog/lib/DialogCard.js +6 -17
- package/dist/commonjs/dialog/lib/DialogPopper.js +9 -32
- package/dist/commonjs/dialog/lib/hooks/useDialogCard.js +4 -5
- package/dist/commonjs/dialog/lib/hooks/useDialogModel.js +4 -4
- package/dist/commonjs/dialog/lib/hooks/useDialogPopper.js +4 -5
- package/dist/commonjs/disclosure/lib/useDisclosureModel.js +12 -12
- package/dist/commonjs/form-field/lib/FormField.js +41 -84
- package/dist/commonjs/form-field/lib/Hint.js +13 -47
- package/dist/commonjs/form-field/lib/Label.js +43 -86
- package/dist/commonjs/icon/lib/AccentIcon.d.ts +3 -2
- package/dist/commonjs/icon/lib/AccentIcon.d.ts.map +1 -1
- package/dist/commonjs/icon/lib/AccentIcon.js +15 -41
- package/dist/commonjs/icon/lib/AppletIcon.js +16 -40
- package/dist/commonjs/icon/lib/Graphic.js +9 -33
- package/dist/commonjs/icon/lib/Icon.js +12 -31
- package/dist/commonjs/icon/lib/Svg.js +11 -34
- package/dist/commonjs/icon/lib/SystemIcon.d.ts.map +1 -1
- package/dist/commonjs/icon/lib/SystemIcon.js +36 -63
- package/dist/commonjs/icon/lib/SystemIconCircle.d.ts +2 -1
- package/dist/commonjs/icon/lib/SystemIconCircle.d.ts.map +1 -1
- package/dist/commonjs/icon/lib/SystemIconCircle.js +18 -47
- package/dist/commonjs/icon/lib/utils.d.ts +0 -2
- package/dist/commonjs/icon/lib/utils.d.ts.map +1 -1
- package/dist/commonjs/icon/lib/utils.js +2 -10
- package/dist/commonjs/layout/lib/Box.js +26 -51
- package/dist/commonjs/layout/lib/Flex.js +8 -31
- package/dist/commonjs/layout/lib/Grid.js +11 -35
- package/dist/commonjs/layout/lib/utils/background.js +1 -1
- package/dist/commonjs/layout/lib/utils/border/color.js +1 -1
- package/dist/commonjs/layout/lib/utils/border/index.js +20 -24
- package/dist/commonjs/layout/lib/utils/border/lineStyle.js +1 -1
- package/dist/commonjs/layout/lib/utils/border/radius.js +1 -1
- package/dist/commonjs/layout/lib/utils/border/shorthand.js +1 -1
- package/dist/commonjs/layout/lib/utils/border/width.js +1 -1
- package/dist/commonjs/layout/lib/utils/buildStyleFns.js +40 -43
- package/dist/commonjs/layout/lib/utils/color.js +1 -1
- package/dist/commonjs/layout/lib/utils/depth.js +1 -1
- package/dist/commonjs/layout/lib/utils/flex.js +1 -1
- package/dist/commonjs/layout/lib/utils/flexItem.js +1 -1
- package/dist/commonjs/layout/lib/utils/getValidChildren.js +2 -4
- package/dist/commonjs/layout/lib/utils/grid.js +1 -1
- package/dist/commonjs/layout/lib/utils/gridItem.js +1 -1
- package/dist/commonjs/layout/lib/utils/layout.js +1 -1
- package/dist/commonjs/layout/lib/utils/other.js +1 -1
- package/dist/commonjs/layout/lib/utils/position.d.ts +4 -0
- package/dist/commonjs/layout/lib/utils/position.d.ts.map +1 -1
- package/dist/commonjs/layout/lib/utils/position.js +6 -1
- package/dist/commonjs/layout/lib/utils/space.js +1 -1
- package/dist/commonjs/layout/lib/utils/text.js +1 -1
- package/dist/commonjs/loading-dots/lib/LoadingDots.js +20 -42
- package/dist/commonjs/menu/lib/Menu.js +10 -11
- package/dist/commonjs/menu/lib/MenuCard.js +14 -26
- package/dist/commonjs/menu/lib/MenuContextTarget.js +9 -32
- package/dist/commonjs/menu/lib/MenuDivider.js +9 -20
- package/dist/commonjs/menu/lib/MenuItem.js +77 -86
- package/dist/commonjs/menu/lib/MenuList.js +8 -31
- package/dist/commonjs/menu/lib/MenuPopper.js +6 -29
- package/dist/commonjs/menu/lib/MenuTarget.js +11 -35
- package/dist/commonjs/menu/lib/useMenuModel.js +22 -24
- package/dist/commonjs/modal/lib/Modal.js +10 -10
- package/dist/commonjs/modal/lib/ModalBody.js +13 -26
- package/dist/commonjs/modal/lib/ModalCard.js +13 -27
- package/dist/commonjs/modal/lib/ModalHeading.js +13 -26
- package/dist/commonjs/modal/lib/ModalOverflowOverlay.js +8 -19
- package/dist/commonjs/modal/lib/ModalOverlay.js +39 -52
- package/dist/commonjs/modal/lib/hooks/useCloseOnOverlayClick.js +17 -17
- package/dist/commonjs/modal/lib/hooks/useModalCard.js +3 -3
- package/dist/commonjs/modal/lib/hooks/useModalHeading.js +7 -7
- package/dist/commonjs/modal/lib/hooks/useModalModel.js +5 -5
- package/dist/commonjs/pagination/lib/Pagination/AdditionalDetails.js +15 -36
- package/dist/commonjs/pagination/lib/Pagination/Controls.js +37 -63
- package/dist/commonjs/pagination/lib/Pagination/GoTo/Form.js +11 -34
- package/dist/commonjs/pagination/lib/Pagination/GoTo/Label.js +7 -30
- package/dist/commonjs/pagination/lib/Pagination/GoTo/TextInput.js +7 -18
- package/dist/commonjs/pagination/lib/Pagination/GoTo/useGoToForm.js +12 -13
- package/dist/commonjs/pagination/lib/Pagination/Nav.js +4 -15
- package/dist/commonjs/pagination/lib/Pagination/PageButton.js +15 -39
- package/dist/commonjs/pagination/lib/Pagination/PageList.js +10 -34
- package/dist/commonjs/pagination/lib/Pagination/Pagination.js +15 -37
- package/dist/commonjs/pagination/lib/Pagination/buildPageRange.js +9 -15
- package/dist/commonjs/pagination/lib/Pagination/common/List.js +8 -32
- package/dist/commonjs/pagination/lib/Pagination/common/useLiveRegion.js +8 -26
- package/dist/commonjs/pagination/lib/Pagination/common/utils/getValidChildren.js +2 -4
- package/dist/commonjs/pagination/lib/Pagination/common/utils/useRTL.js +5 -5
- package/dist/commonjs/pagination/lib/Pagination/usePaginationModel.js +31 -31
- package/dist/commonjs/popup/lib/Popper.js +34 -56
- package/dist/commonjs/popup/lib/Popup.js +11 -12
- package/dist/commonjs/popup/lib/PopupBody.js +6 -17
- package/dist/commonjs/popup/lib/PopupCard.js +33 -55
- package/dist/commonjs/popup/lib/PopupCloseButton.js +6 -29
- package/dist/commonjs/popup/lib/PopupCloseIcon.js +8 -31
- package/dist/commonjs/popup/lib/PopupHeading.js +6 -29
- package/dist/commonjs/popup/lib/PopupPopper.js +6 -29
- package/dist/commonjs/popup/lib/PopupTarget.js +6 -17
- package/dist/commonjs/popup/lib/getTransformFromPlacement.js +6 -6
- package/dist/commonjs/popup/lib/hooks/focus-trap-js.js +23 -27
- package/dist/commonjs/popup/lib/hooks/useAlwaysCloseOnOutsideClick.js +9 -9
- package/dist/commonjs/popup/lib/hooks/useAssistiveHideSiblings.js +14 -17
- package/dist/commonjs/popup/lib/hooks/useBringToTopOnClick.js +11 -11
- package/dist/commonjs/popup/lib/hooks/useCloseOnEscape.js +9 -9
- package/dist/commonjs/popup/lib/hooks/useCloseOnFullscreenExit.js +9 -9
- package/dist/commonjs/popup/lib/hooks/useCloseOnOutsideClick.js +12 -12
- package/dist/commonjs/popup/lib/hooks/useCloseOnTargetHidden.js +12 -12
- package/dist/commonjs/popup/lib/hooks/useDisableBodyScroll.js +10 -10
- package/dist/commonjs/popup/lib/hooks/useFocusRedirect.js +10 -10
- package/dist/commonjs/popup/lib/hooks/useFocusTrap.js +9 -9
- package/dist/commonjs/popup/lib/hooks/useInitialFocus.js +10 -10
- package/dist/commonjs/popup/lib/hooks/usePopupCard.js +3 -4
- package/dist/commonjs/popup/lib/hooks/usePopupCloseButton.js +3 -4
- package/dist/commonjs/popup/lib/hooks/usePopupHeading.js +3 -4
- package/dist/commonjs/popup/lib/hooks/usePopupModel.js +29 -34
- package/dist/commonjs/popup/lib/hooks/usePopupPopper.js +8 -9
- package/dist/commonjs/popup/lib/hooks/usePopupStack.js +15 -15
- package/dist/commonjs/popup/lib/hooks/usePopupTarget.js +5 -6
- package/dist/commonjs/popup/lib/hooks/usePopupTargetContext.js +5 -6
- package/dist/commonjs/popup/lib/hooks/useReturnFocus.js +19 -19
- package/dist/commonjs/popup/lib/hooks/useTransferOnFullscreenEnter.js +10 -10
- package/dist/commonjs/popup/lib/hooks/useTransferOnFullscreenExit.js +10 -10
- package/dist/commonjs/radio/lib/Radio.js +113 -133
- package/dist/commonjs/radio/lib/RadioGroup.js +33 -78
- package/dist/commonjs/segmented-control/lib/SegmentedControl.js +7 -30
- package/dist/commonjs/segmented-control/lib/SegmentedControlButton.js +40 -61
- package/dist/commonjs/select/lib/Select.js +47 -64
- package/dist/commonjs/select/lib/SelectOption.js +6 -48
- package/dist/commonjs/side-panel/lib/SidePanel.js +60 -122
- package/dist/commonjs/skeleton/lib/parts/skeletonHeader.js +5 -30
- package/dist/commonjs/skeleton/lib/parts/skeletonShape.js +12 -40
- package/dist/commonjs/skeleton/lib/parts/skeletonText.js +12 -38
- package/dist/commonjs/skeleton/lib/skeleton.js +15 -40
- package/dist/commonjs/status-indicator/lib/StatusIndicator.js +28 -61
- package/dist/commonjs/switch/lib/Switch.js +55 -65
- package/dist/commonjs/table/lib/Table.js +10 -52
- package/dist/commonjs/table/lib/TableRow.js +40 -67
- package/dist/commonjs/tabs/lib/Tabs.js +11 -12
- package/dist/commonjs/tabs/lib/TabsItem.d.ts +1 -1
- package/dist/commonjs/tabs/lib/TabsItem.js +81 -86
- package/dist/commonjs/tabs/lib/TabsList.js +25 -51
- package/dist/commonjs/tabs/lib/TabsMenuPopper.js +6 -29
- package/dist/commonjs/tabs/lib/TabsOverflowButton.js +12 -35
- package/dist/commonjs/tabs/lib/TabsPanel.js +17 -42
- package/dist/commonjs/tabs/lib/TabsPanels.js +5 -6
- package/dist/commonjs/tabs/lib/useTabsModel.js +44 -43
- package/dist/commonjs/testing/lib/ComponentStatesTable.js +11 -20
- package/dist/commonjs/testing/lib/StaticStates.js +10 -34
- package/dist/commonjs/testing/lib/permutateProps.js +13 -26
- package/dist/commonjs/text/lib/LabelText.js +6 -29
- package/dist/commonjs/text/lib/Text.js +13 -39
- package/dist/commonjs/text/lib/TypeLevelComponents.js +15 -41
- package/dist/commonjs/text-area/lib/TextArea.js +42 -55
- package/dist/commonjs/text-input/lib/InputIconContainer.js +11 -17
- package/dist/commonjs/text-input/lib/TextInput.js +38 -51
- package/dist/commonjs/toast/lib/Toast.js +13 -36
- package/dist/commonjs/toast/lib/ToastBody.js +5 -28
- package/dist/commonjs/toast/lib/ToastCloseIcon.js +5 -16
- package/dist/commonjs/toast/lib/ToastIcon.js +5 -16
- package/dist/commonjs/toast/lib/ToastLink.js +5 -28
- package/dist/commonjs/toast/lib/ToastMessage.js +6 -29
- package/dist/commonjs/toast/lib/hooks/useToastModel.js +8 -16
- package/dist/commonjs/tokens/index.d.ts +2 -2
- package/dist/commonjs/tokens/index.d.ts.map +1 -1
- package/dist/commonjs/tokens/index.js +6 -6
- package/dist/commonjs/tokens/lib/type/fontFamilies.js +3 -3
- package/dist/commonjs/tokens/lib/type/index.js +7 -7
- package/dist/commonjs/tokens/lib/type/levels.js +4 -4
- package/dist/commonjs/tokens/lib/type/variants.js +1 -1
- package/dist/commonjs/tooltip/lib/OverflowTooltip.js +34 -54
- package/dist/commonjs/tooltip/lib/Tooltip.js +26 -47
- package/dist/commonjs/tooltip/lib/TooltipContainer.js +37 -35
- package/dist/commonjs/tooltip/lib/useTooltip.js +32 -34
- package/dist/es6/action-bar/lib/ActionBar.js +3 -4
- package/dist/es6/action-bar/lib/ActionBarItem.js +4 -15
- package/dist/es6/action-bar/lib/ActionBarList.js +10 -35
- package/dist/es6/action-bar/lib/ActionBarOverflowButton.js +6 -17
- package/dist/es6/action-bar/lib/useActionBarModel.js +36 -35
- package/dist/es6/avatar/lib/Avatar.js +46 -68
- package/dist/es6/badge/lib/CountBadge.js +20 -40
- package/dist/es6/banner/lib/Banner.js +25 -41
- package/dist/es6/banner/lib/BannerActionText.js +4 -27
- package/dist/es6/banner/lib/BannerIcon.js +5 -27
- package/dist/es6/banner/lib/BannerLabel.js +3 -26
- package/dist/es6/banner/lib/hooks/index.d.ts +2 -0
- package/dist/es6/banner/lib/hooks/index.d.ts.map +1 -1
- package/dist/es6/banner/lib/hooks/index.js +2 -0
- package/dist/es6/banner/lib/hooks/useBanner.js +3 -4
- package/dist/es6/banner/lib/hooks/useBannerActionText.js +2 -3
- package/dist/es6/banner/lib/hooks/useBannerIcon.js +2 -3
- package/dist/es6/banner/lib/hooks/useBannerLabel.js +2 -3
- package/dist/es6/banner/lib/hooks/useBannerModel.js +8 -16
- package/dist/es6/banner/lib/hooks/useThemedPalette.d.ts +1 -1
- package/dist/es6/banner/lib/hooks/useThemedPalette.d.ts.map +1 -1
- package/dist/es6/banner/lib/hooks/useThemedPalette.js +7 -7
- package/dist/es6/breadcrumbs/lib/Breadcrumbs.js +3 -26
- package/dist/es6/breadcrumbs/lib/BreadcrumbsCurrentItem.js +9 -32
- package/dist/es6/breadcrumbs/lib/BreadcrumbsItem.js +6 -31
- package/dist/es6/breadcrumbs/lib/BreadcrumbsLink.js +11 -32
- package/dist/es6/breadcrumbs/lib/BreadcrumbsList.js +5 -28
- package/dist/es6/breadcrumbs/lib/BreadcrumbsMenu.js +6 -18
- package/dist/es6/breadcrumbs/lib/BreadcrumbsOverflowButton.js +6 -29
- package/dist/es6/breadcrumbs/lib/hooks/useBreadcrumbsModel.js +34 -33
- package/dist/es6/breadcrumbs/lib/hooks/utils/index.js +4 -4
- package/dist/es6/button/lib/BaseButton.js +123 -73
- package/dist/es6/button/lib/DeleteButton.js +25 -56
- package/dist/es6/button/lib/ExternalHyperlink.js +21 -35
- package/dist/es6/button/lib/Hyperlink.js +7 -32
- package/dist/es6/button/lib/PrimaryButton.js +6 -29
- package/dist/es6/button/lib/SecondaryButton.js +6 -29
- package/dist/es6/button/lib/TertiaryButton.js +20 -46
- package/dist/es6/button/lib/ToolbarDropdownButton.js +9 -35
- package/dist/es6/button/lib/ToolbarIconButton.js +13 -40
- package/dist/es6/button/lib/deprecated_Button.js +48 -51
- package/dist/es6/button/lib/parts/ButtonLabel.js +4 -27
- package/dist/es6/button/lib/parts/ButtonLabelIcon.js +5 -28
- package/dist/es6/card/lib/Card.js +3 -26
- package/dist/es6/card/lib/CardBody.js +3 -26
- package/dist/es6/card/lib/CardHeading.js +3 -26
- package/dist/es6/checkbox/lib/Checkbox.js +116 -125
- package/dist/es6/collection/lib/ListBox.js +7 -30
- package/dist/es6/collection/lib/react-virtual.js +1 -1
- package/dist/es6/collection/lib/useBaseListModel.js +55 -59
- package/dist/es6/collection/lib/useCursorListModel.js +110 -142
- package/dist/es6/collection/lib/useGridModel.js +12 -30
- package/dist/es6/collection/lib/useListItemRegister.js +13 -15
- package/dist/es6/collection/lib/useListItemRovingFocus.js +33 -38
- package/dist/es6/collection/lib/useListItemSelect.js +4 -6
- package/dist/es6/collection/lib/useListModel.js +1 -1
- package/dist/es6/collection/lib/useListRenderItem.js +8 -8
- package/dist/es6/collection/lib/useListResetCursorOnBlur.js +5 -6
- package/dist/es6/collection/lib/useOverflowListItemMeasure.js +8 -9
- package/dist/es6/collection/lib/useOverflowListMeasure.js +5 -5
- package/dist/es6/collection/lib/useOverflowListModel.js +59 -54
- package/dist/es6/collection/lib/useOverflowListTarget.js +7 -7
- package/dist/es6/collection/lib/useSelectionListModel.js +31 -37
- package/dist/es6/color-picker/lib/ColorInput.js +41 -77
- package/dist/es6/color-picker/lib/ColorPreview.js +3 -28
- package/dist/es6/color-picker/lib/parts/ColorSwatch.js +8 -36
- package/dist/es6/common/lib/CanvasProvider.js +11 -54
- package/dist/es6/common/lib/EllipsisText.js +5 -17
- package/dist/es6/common/lib/InputProvider.js +72 -93
- package/dist/es6/common/lib/parts/_brand-assets.js +6 -6
- package/dist/es6/common/lib/responsive/useResponsiveContainerStyles.js +20 -47
- package/dist/es6/common/lib/styles/accessibleHide.js +1 -1
- package/dist/es6/common/lib/styles/errorRing.js +8 -7
- package/dist/es6/common/lib/styles/focusRing.js +16 -18
- package/dist/es6/common/lib/styles/hideMouseFocus.js +13 -9
- package/dist/es6/common/lib/theming/breakpoints.js +12 -12
- package/dist/es6/common/lib/theming/createCanvasTheme.js +29 -58
- package/dist/es6/common/lib/theming/getObjectProxy.js +3 -3
- package/dist/es6/common/lib/theming/index.d.ts +1 -1
- package/dist/es6/common/lib/theming/index.d.ts.map +1 -1
- package/dist/es6/common/lib/theming/index.js +1 -1
- package/dist/es6/common/lib/theming/styled.js +7 -11
- package/dist/es6/common/lib/theming/theme.js +5 -5
- package/dist/es6/common/lib/theming/useIsRTL.js +2 -2
- package/dist/es6/common/lib/theming/useTheme.d.ts +49 -5
- package/dist/es6/common/lib/theming/useTheme.d.ts.map +1 -1
- package/dist/es6/common/lib/theming/useTheme.js +78 -34
- package/dist/es6/common/lib/theming/useThemedRing.d.ts +43 -0
- package/dist/es6/common/lib/theming/useThemedRing.d.ts.map +1 -0
- package/dist/es6/common/lib/theming/useThemedRing.js +92 -0
- package/dist/es6/common/lib/utils/changeFocus.js +3 -3
- package/dist/es6/common/lib/utils/colorUtils.d.ts +7 -0
- package/dist/es6/common/lib/utils/colorUtils.d.ts.map +1 -1
- package/dist/es6/common/lib/utils/colorUtils.js +24 -12
- package/dist/es6/common/lib/utils/components.d.ts +3 -1
- package/dist/es6/common/lib/utils/components.d.ts.map +1 -1
- package/dist/es6/common/lib/utils/components.js +43 -86
- package/dist/es6/common/lib/utils/deepMerge.js +4 -4
- package/dist/es6/common/lib/utils/elements.js +16 -16
- package/dist/es6/common/lib/utils/getTranslateFromOrigin.js +2 -2
- package/dist/es6/common/lib/utils/isWithinBreakpoint.js +1 -1
- package/dist/es6/common/lib/utils/makeMq.js +4 -4
- package/dist/es6/common/lib/utils/memoize.d.ts +1 -1
- package/dist/es6/common/lib/utils/memoize.d.ts.map +1 -1
- package/dist/es6/common/lib/utils/memoize.js +4 -8
- package/dist/es6/common/lib/utils/mergeCallback.js +1 -5
- package/dist/es6/common/lib/utils/mergeProps.js +4 -15
- package/dist/es6/common/lib/utils/models.js +47 -69
- package/dist/es6/common/lib/utils/useConstant.js +1 -1
- package/dist/es6/common/lib/utils/useIsFullscreen.js +5 -5
- package/dist/es6/common/lib/utils/useModalityType.js +8 -8
- package/dist/es6/common/lib/utils/useMount.js +2 -2
- package/dist/es6/common/lib/utils/useResizeObserver.js +6 -18
- package/dist/es6/common/lib/utils/useUniqueId.js +8 -8
- package/dist/es6/common/lib/utils/useWindowSize.js +8 -8
- package/dist/es6/dialog/lib/Dialog.js +2 -3
- package/dist/es6/dialog/lib/DialogCard.js +3 -14
- package/dist/es6/dialog/lib/DialogPopper.js +6 -29
- package/dist/es6/dialog/lib/hooks/useDialogCard.js +2 -3
- package/dist/es6/dialog/lib/hooks/useDialogModel.js +3 -3
- package/dist/es6/dialog/lib/hooks/useDialogPopper.js +2 -3
- package/dist/es6/disclosure/lib/useDisclosureModel.js +11 -11
- package/dist/es6/form-field/lib/FormField.js +35 -79
- package/dist/es6/form-field/lib/Hint.js +9 -43
- package/dist/es6/form-field/lib/Label.js +39 -82
- package/dist/es6/icon/lib/AccentIcon.d.ts +3 -2
- package/dist/es6/icon/lib/AccentIcon.d.ts.map +1 -1
- package/dist/es6/icon/lib/AccentIcon.js +12 -38
- package/dist/es6/icon/lib/AppletIcon.js +12 -36
- package/dist/es6/icon/lib/Graphic.js +6 -30
- package/dist/es6/icon/lib/Icon.js +10 -29
- package/dist/es6/icon/lib/Svg.js +8 -31
- package/dist/es6/icon/lib/SystemIcon.d.ts.map +1 -1
- package/dist/es6/icon/lib/SystemIcon.js +33 -60
- package/dist/es6/icon/lib/SystemIconCircle.d.ts +2 -1
- package/dist/es6/icon/lib/SystemIconCircle.d.ts.map +1 -1
- package/dist/es6/icon/lib/SystemIconCircle.js +14 -43
- package/dist/es6/icon/lib/utils.d.ts +0 -2
- package/dist/es6/icon/lib/utils.d.ts.map +1 -1
- package/dist/es6/icon/lib/utils.js +1 -8
- package/dist/es6/layout/lib/Box.js +12 -37
- package/dist/es6/layout/lib/Flex.js +4 -27
- package/dist/es6/layout/lib/Grid.js +7 -31
- package/dist/es6/layout/lib/utils/background.js +3 -3
- package/dist/es6/layout/lib/utils/border/color.js +2 -2
- package/dist/es6/layout/lib/utils/border/index.js +14 -18
- package/dist/es6/layout/lib/utils/border/lineStyle.js +2 -2
- package/dist/es6/layout/lib/utils/border/radius.js +2 -2
- package/dist/es6/layout/lib/utils/border/shorthand.js +2 -2
- package/dist/es6/layout/lib/utils/border/width.js +2 -2
- package/dist/es6/layout/lib/utils/buildStyleFns.js +39 -42
- package/dist/es6/layout/lib/utils/color.js +3 -3
- package/dist/es6/layout/lib/utils/depth.js +3 -3
- package/dist/es6/layout/lib/utils/flex.js +3 -3
- package/dist/es6/layout/lib/utils/flexItem.js +3 -3
- package/dist/es6/layout/lib/utils/getValidChildren.js +1 -3
- package/dist/es6/layout/lib/utils/grid.js +3 -3
- package/dist/es6/layout/lib/utils/gridItem.js +3 -3
- package/dist/es6/layout/lib/utils/layout.js +3 -3
- package/dist/es6/layout/lib/utils/other.js +3 -3
- package/dist/es6/layout/lib/utils/position.d.ts +4 -0
- package/dist/es6/layout/lib/utils/position.d.ts.map +1 -1
- package/dist/es6/layout/lib/utils/position.js +8 -3
- package/dist/es6/layout/lib/utils/space.js +3 -3
- package/dist/es6/layout/lib/utils/text.js +3 -3
- package/dist/es6/loading-dots/lib/LoadingDots.js +16 -38
- package/dist/es6/menu/lib/Menu.js +2 -3
- package/dist/es6/menu/lib/MenuCard.js +9 -21
- package/dist/es6/menu/lib/MenuContextTarget.js +7 -30
- package/dist/es6/menu/lib/MenuDivider.js +6 -17
- package/dist/es6/menu/lib/MenuItem.js +70 -79
- package/dist/es6/menu/lib/MenuList.js +4 -27
- package/dist/es6/menu/lib/MenuPopper.js +4 -27
- package/dist/es6/menu/lib/MenuTarget.js +10 -34
- package/dist/es6/menu/lib/useMenuModel.js +20 -22
- package/dist/es6/modal/lib/Modal.js +2 -2
- package/dist/es6/modal/lib/ModalBody.js +10 -23
- package/dist/es6/modal/lib/ModalCard.js +10 -24
- package/dist/es6/modal/lib/ModalHeading.js +10 -23
- package/dist/es6/modal/lib/ModalOverflowOverlay.js +4 -15
- package/dist/es6/modal/lib/ModalOverlay.js +33 -46
- package/dist/es6/modal/lib/hooks/useCloseOnOverlayClick.js +13 -13
- package/dist/es6/modal/lib/hooks/useModalCard.js +1 -1
- package/dist/es6/modal/lib/hooks/useModalHeading.js +5 -5
- package/dist/es6/modal/lib/hooks/useModalModel.js +3 -3
- package/dist/es6/pagination/lib/Pagination/AdditionalDetails.js +10 -31
- package/dist/es6/pagination/lib/Pagination/Controls.js +35 -61
- package/dist/es6/pagination/lib/Pagination/GoTo/Form.js +7 -30
- package/dist/es6/pagination/lib/Pagination/GoTo/Label.js +4 -27
- package/dist/es6/pagination/lib/Pagination/GoTo/TextInput.js +4 -15
- package/dist/es6/pagination/lib/Pagination/GoTo/useGoToForm.js +12 -13
- package/dist/es6/pagination/lib/Pagination/Nav.js +2 -13
- package/dist/es6/pagination/lib/Pagination/PageButton.js +11 -35
- package/dist/es6/pagination/lib/Pagination/PageList.js +7 -31
- package/dist/es6/pagination/lib/Pagination/Pagination.js +16 -38
- package/dist/es6/pagination/lib/Pagination/buildPageRange.js +9 -15
- package/dist/es6/pagination/lib/Pagination/common/List.js +7 -31
- package/dist/es6/pagination/lib/Pagination/common/useLiveRegion.js +8 -26
- package/dist/es6/pagination/lib/Pagination/common/utils/getValidChildren.js +1 -3
- package/dist/es6/pagination/lib/Pagination/common/utils/useRTL.js +4 -4
- package/dist/es6/pagination/lib/Pagination/usePaginationModel.js +29 -29
- package/dist/es6/popup/lib/Popper.js +29 -51
- package/dist/es6/popup/lib/Popup.js +2 -3
- package/dist/es6/popup/lib/PopupBody.js +3 -14
- package/dist/es6/popup/lib/PopupCard.js +26 -48
- package/dist/es6/popup/lib/PopupCloseButton.js +3 -26
- package/dist/es6/popup/lib/PopupCloseIcon.js +3 -26
- package/dist/es6/popup/lib/PopupHeading.js +3 -26
- package/dist/es6/popup/lib/PopupPopper.js +3 -26
- package/dist/es6/popup/lib/PopupTarget.js +3 -14
- package/dist/es6/popup/lib/getTransformFromPlacement.js +6 -6
- package/dist/es6/popup/lib/hooks/focus-trap-js.js +23 -27
- package/dist/es6/popup/lib/hooks/useAlwaysCloseOnOutsideClick.js +5 -5
- package/dist/es6/popup/lib/hooks/useAssistiveHideSiblings.js +11 -14
- package/dist/es6/popup/lib/hooks/useBringToTopOnClick.js +7 -7
- package/dist/es6/popup/lib/hooks/useCloseOnEscape.js +5 -5
- package/dist/es6/popup/lib/hooks/useCloseOnFullscreenExit.js +5 -5
- package/dist/es6/popup/lib/hooks/useCloseOnOutsideClick.js +8 -8
- package/dist/es6/popup/lib/hooks/useCloseOnTargetHidden.js +9 -9
- package/dist/es6/popup/lib/hooks/useDisableBodyScroll.js +7 -7
- package/dist/es6/popup/lib/hooks/useFocusRedirect.js +7 -7
- package/dist/es6/popup/lib/hooks/useFocusTrap.js +5 -5
- package/dist/es6/popup/lib/hooks/useInitialFocus.js +7 -7
- package/dist/es6/popup/lib/hooks/usePopupCard.js +1 -2
- package/dist/es6/popup/lib/hooks/usePopupCloseButton.js +1 -2
- package/dist/es6/popup/lib/hooks/usePopupHeading.js +1 -2
- package/dist/es6/popup/lib/hooks/usePopupModel.js +28 -33
- package/dist/es6/popup/lib/hooks/usePopupPopper.js +5 -6
- package/dist/es6/popup/lib/hooks/usePopupStack.js +12 -12
- package/dist/es6/popup/lib/hooks/usePopupTarget.js +3 -4
- package/dist/es6/popup/lib/hooks/usePopupTargetContext.js +3 -4
- package/dist/es6/popup/lib/hooks/useReturnFocus.js +15 -15
- package/dist/es6/popup/lib/hooks/useTransferOnFullscreenEnter.js +5 -5
- package/dist/es6/popup/lib/hooks/useTransferOnFullscreenExit.js +5 -5
- package/dist/es6/radio/lib/Radio.js +110 -130
- package/dist/es6/radio/lib/RadioGroup.js +29 -75
- package/dist/es6/segmented-control/lib/SegmentedControl.js +5 -28
- package/dist/es6/segmented-control/lib/SegmentedControlButton.js +37 -58
- package/dist/es6/select/lib/Select.js +44 -61
- package/dist/es6/select/lib/SelectOption.js +5 -48
- package/dist/es6/side-panel/lib/SidePanel.js +54 -117
- package/dist/es6/skeleton/lib/parts/skeletonHeader.js +2 -27
- package/dist/es6/skeleton/lib/parts/skeletonShape.js +9 -37
- package/dist/es6/skeleton/lib/parts/skeletonText.js +9 -35
- package/dist/es6/skeleton/lib/skeleton.js +9 -34
- package/dist/es6/status-indicator/lib/StatusIndicator.js +25 -59
- package/dist/es6/switch/lib/Switch.js +54 -64
- package/dist/es6/table/lib/Table.js +9 -52
- package/dist/es6/table/lib/TableRow.js +35 -62
- package/dist/es6/tabs/lib/Tabs.js +2 -3
- package/dist/es6/tabs/lib/TabsItem.d.ts +1 -1
- package/dist/es6/tabs/lib/TabsItem.js +74 -79
- package/dist/es6/tabs/lib/TabsList.js +20 -46
- package/dist/es6/tabs/lib/TabsMenuPopper.js +4 -27
- package/dist/es6/tabs/lib/TabsOverflowButton.js +5 -28
- package/dist/es6/tabs/lib/TabsPanel.js +13 -38
- package/dist/es6/tabs/lib/TabsPanels.js +2 -3
- package/dist/es6/tabs/lib/useTabsModel.js +41 -40
- package/dist/es6/testing/lib/ComponentStatesTable.js +9 -18
- package/dist/es6/testing/lib/StaticStates.js +8 -32
- package/dist/es6/testing/lib/permutateProps.js +13 -26
- package/dist/es6/text/lib/LabelText.js +3 -26
- package/dist/es6/text/lib/Text.js +10 -36
- package/dist/es6/text/lib/TypeLevelComponents.js +16 -42
- package/dist/es6/text-area/lib/TextArea.js +41 -54
- package/dist/es6/text-input/lib/InputIconContainer.js +8 -14
- package/dist/es6/text-input/lib/TextInput.js +37 -50
- package/dist/es6/toast/lib/Toast.js +4 -27
- package/dist/es6/toast/lib/ToastBody.js +3 -26
- package/dist/es6/toast/lib/ToastCloseIcon.js +3 -14
- package/dist/es6/toast/lib/ToastIcon.js +3 -14
- package/dist/es6/toast/lib/ToastLink.js +3 -26
- package/dist/es6/toast/lib/ToastMessage.js +3 -26
- package/dist/es6/toast/lib/hooks/useToastModel.js +8 -16
- package/dist/es6/tokens/index.d.ts +2 -2
- package/dist/es6/tokens/index.d.ts.map +1 -1
- package/dist/es6/tokens/index.js +16 -16
- package/dist/es6/tokens/lib/depth.js +1 -1
- package/dist/es6/tokens/lib/radius.js +1 -1
- package/dist/es6/tokens/lib/space.js +2 -2
- package/dist/es6/tokens/lib/type/fontFamilies.js +6 -6
- package/dist/es6/tokens/lib/type/fontSizes.js +1 -1
- package/dist/es6/tokens/lib/type/fontWeights.js +1 -1
- package/dist/es6/tokens/lib/type/index.js +8 -8
- package/dist/es6/tokens/lib/type/levels.js +1 -1
- package/dist/es6/tokens/lib/type/variants.js +1 -1
- package/dist/es6/tooltip/lib/OverflowTooltip.js +29 -49
- package/dist/es6/tooltip/lib/Tooltip.js +21 -42
- package/dist/es6/tooltip/lib/TooltipContainer.js +33 -31
- package/dist/es6/tooltip/lib/useTooltip.js +29 -31
- package/icon/lib/AccentIcon.tsx +5 -6
- package/icon/lib/SystemIcon.tsx +1 -2
- package/icon/lib/SystemIconCircle.tsx +4 -3
- package/icon/lib/utils.ts +0 -8
- package/layout/lib/utils/position.ts +9 -0
- package/modal/lib/ModalBody.tsx +2 -2
- package/modal/lib/ModalCard.tsx +2 -2
- package/modal/lib/ModalHeading.tsx +2 -2
- package/modal/lib/ModalOverlay.tsx +2 -2
- package/package.json +3 -3
- package/tokens/index.ts +3 -3
- package/common/lib/theming/getCanvasTheme.ts +0 -40
- package/dist/commonjs/common/lib/theming/getCanvasTheme.d.ts +0 -28
- package/dist/commonjs/common/lib/theming/getCanvasTheme.d.ts.map +0 -1
- package/dist/commonjs/common/lib/theming/getCanvasTheme.js +0 -42
- package/dist/es6/common/lib/theming/getCanvasTheme.d.ts +0 -28
- package/dist/es6/common/lib/theming/getCanvasTheme.d.ts.map +0 -1
- package/dist/es6/common/lib/theming/getCanvasTheme.js +0 -37
|
@@ -4,9 +4,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.useFocusRedirect = void 0;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
const react_1 = __importDefault(require("react"));
|
|
8
|
+
const common_1 = require("@workday/canvas-kit-react/common");
|
|
9
|
+
const usePopupModel_1 = require("./usePopupModel");
|
|
10
10
|
/**
|
|
11
11
|
* Manages focus around a popup, treating the popup as if it was part of the DOM where it appears.
|
|
12
12
|
* Popups are typically "portalled" (inserted at the end of `document.body`) to ensure proper
|
|
@@ -19,11 +19,11 @@ var usePopupModel_1 = require("./usePopupModel");
|
|
|
19
19
|
*
|
|
20
20
|
* This should be used with non-modal dialogs.
|
|
21
21
|
*/
|
|
22
|
-
exports.useFocusRedirect = common_1.createElemPropsHook(usePopupModel_1.usePopupModel)(
|
|
23
|
-
|
|
22
|
+
exports.useFocusRedirect = common_1.createElemPropsHook(usePopupModel_1.usePopupModel)(model => {
|
|
23
|
+
const onKeyDown = react_1.default.useCallback((event) => {
|
|
24
24
|
if (model.state.stackRef.current && event.key === 'Tab') {
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
const firstFocusableElement = common_1.getFirstFocusableElement(model.state.stackRef.current);
|
|
26
|
+
const lastFocusableElement = common_1.getLastFocusableElement(model.state.stackRef.current);
|
|
27
27
|
if (event.getModifierState('Shift') && document.activeElement === firstFocusableElement) {
|
|
28
28
|
event.preventDefault();
|
|
29
29
|
model.events.hide(event);
|
|
@@ -34,14 +34,14 @@ exports.useFocusRedirect = common_1.createElemPropsHook(usePopupModel_1.usePopup
|
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
}, [model.events, model.state.stackRef]);
|
|
37
|
-
|
|
37
|
+
const visible = model.state.visibility !== 'hidden';
|
|
38
38
|
// `useLayoutEffect` for automation
|
|
39
|
-
react_1.default.useLayoutEffect(
|
|
39
|
+
react_1.default.useLayoutEffect(() => {
|
|
40
40
|
if (!visible) {
|
|
41
41
|
return;
|
|
42
42
|
}
|
|
43
43
|
document.addEventListener('keydown', onKeyDown);
|
|
44
|
-
return
|
|
44
|
+
return () => {
|
|
45
45
|
document.removeEventListener('keydown', onKeyDown);
|
|
46
46
|
};
|
|
47
47
|
}, [visible, onKeyDown]);
|
|
@@ -4,10 +4,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.useFocusTrap = void 0;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
const react_1 = __importDefault(require("react"));
|
|
8
|
+
const focus_trap_js_1 = require("./focus-trap-js");
|
|
9
|
+
const common_1 = require("@workday/canvas-kit-react/common");
|
|
10
|
+
const usePopupModel_1 = require("./usePopupModel");
|
|
11
11
|
/**
|
|
12
12
|
* "Trap" or "loop" focus within a provided `stackRef` element. This is required for accessibility
|
|
13
13
|
* on modals. If a keyboard users hits the Tab or Shift + Tab, this will force "looping" of focus.
|
|
@@ -17,20 +17,20 @@ var usePopupModel_1 = require("./usePopupModel");
|
|
|
17
17
|
*
|
|
18
18
|
* This should be used on popup elements that need to hide content (i.e. Modals).
|
|
19
19
|
*/
|
|
20
|
-
exports.useFocusTrap = common_1.createElemPropsHook(usePopupModel_1.usePopupModel)(
|
|
21
|
-
|
|
20
|
+
exports.useFocusTrap = common_1.createElemPropsHook(usePopupModel_1.usePopupModel)(model => {
|
|
21
|
+
const onKeyDown = react_1.default.useCallback((event) => {
|
|
22
22
|
if (model.state.stackRef.current) {
|
|
23
23
|
focus_trap_js_1.tabTrappingKey(event, model.state.stackRef.current);
|
|
24
24
|
}
|
|
25
25
|
}, [model.state.stackRef]);
|
|
26
|
-
|
|
26
|
+
const visible = model.state.visibility !== 'hidden';
|
|
27
27
|
// `useLayoutEffect` for automation
|
|
28
|
-
react_1.default.useLayoutEffect(
|
|
28
|
+
react_1.default.useLayoutEffect(() => {
|
|
29
29
|
if (!visible) {
|
|
30
30
|
return;
|
|
31
31
|
}
|
|
32
32
|
document.addEventListener('keydown', onKeyDown);
|
|
33
|
-
return
|
|
33
|
+
return () => {
|
|
34
34
|
document.removeEventListener('keydown', onKeyDown);
|
|
35
35
|
};
|
|
36
36
|
}, [visible, onKeyDown]);
|
|
@@ -4,9 +4,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.useInitialFocus = void 0;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
const react_1 = __importDefault(require("react"));
|
|
8
|
+
const common_1 = require("@workday/canvas-kit-react/common");
|
|
9
|
+
const usePopupModel_1 = require("./usePopupModel");
|
|
10
10
|
/**
|
|
11
11
|
* Moves focus within the popup when the popup becomes visible. This is useful for keyboard and
|
|
12
12
|
* screen reader users alike. This should be used with {@link useFocusRedirect} or
|
|
@@ -15,19 +15,19 @@ var usePopupModel_1 = require("./usePopupModel");
|
|
|
15
15
|
* This should be used for popups that have focusable elements inside, like Modals, non-modal
|
|
16
16
|
* dialogs, menus, etc.
|
|
17
17
|
*/
|
|
18
|
-
exports.useInitialFocus = common_1.createElemPropsHook(usePopupModel_1.usePopupModel)(
|
|
19
|
-
|
|
18
|
+
exports.useInitialFocus = common_1.createElemPropsHook(usePopupModel_1.usePopupModel)(model => {
|
|
19
|
+
const visible = model.state.visibility !== 'hidden';
|
|
20
20
|
// Using `useEffect` instead of `useLayoutEffect` so that focus doesn't change _before_ PopperJS
|
|
21
21
|
// has positioned the Popup. If we change focus before positioning, the browser will scroll to the
|
|
22
22
|
// top of the page.
|
|
23
|
-
react_1.default.useEffect(
|
|
23
|
+
react_1.default.useEffect(() => {
|
|
24
24
|
var _a;
|
|
25
25
|
if (visible && model.state.stackRef.current) {
|
|
26
|
-
|
|
26
|
+
const element = ((_a = model.state.initialFocusRef) === null || _a === void 0 ? void 0 : _a.current) ||
|
|
27
27
|
common_1.getFirstFocusableElement(model.state.stackRef.current);
|
|
28
|
-
common_1.assert(
|
|
29
|
-
requestAnimationFrame(
|
|
30
|
-
common_1.changeFocus(
|
|
28
|
+
common_1.assert(element, 'No focusable element was found. Please ensure popup has at least one focusable element');
|
|
29
|
+
requestAnimationFrame(() => {
|
|
30
|
+
common_1.changeFocus(element);
|
|
31
31
|
});
|
|
32
32
|
}
|
|
33
33
|
}, [model.state.initialFocusRef, model.state.stackRef, visible]);
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.usePopupCard = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
const common_1 = require("@workday/canvas-kit-react/common");
|
|
5
|
+
const usePopupModel_1 = require("./usePopupModel");
|
|
6
6
|
/**
|
|
7
7
|
* Adds the necessary props to a {@link PopupCard Popup.Card} subcomponent.
|
|
8
8
|
*/
|
|
9
|
-
exports.usePopupCard = common_1.createElemPropsHook(usePopupModel_1.usePopupModel)(
|
|
10
|
-
var state = _a.state;
|
|
9
|
+
exports.usePopupCard = common_1.createElemPropsHook(usePopupModel_1.usePopupModel)(({ state }) => {
|
|
11
10
|
return {
|
|
12
11
|
role: 'dialog',
|
|
13
12
|
'aria-labelledby': state.id,
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.usePopupCloseButton = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
const common_1 = require("@workday/canvas-kit-react/common");
|
|
5
|
+
const usePopupModel_1 = require("./usePopupModel");
|
|
6
6
|
/**
|
|
7
7
|
* Adds the necessary props to a close button component. Used by the
|
|
8
8
|
* {@link PopupCloseButton Popup.CloseButton} subcomponent and
|
|
9
9
|
* {@link PopupCloseIcon Popup.CloseIcon} subcomponent.
|
|
10
10
|
*/
|
|
11
|
-
exports.usePopupCloseButton = common_1.createElemPropsHook(usePopupModel_1.usePopupModel)(
|
|
12
|
-
var events = _a.events;
|
|
11
|
+
exports.usePopupCloseButton = common_1.createElemPropsHook(usePopupModel_1.usePopupModel)(({ events }) => {
|
|
13
12
|
return {
|
|
14
13
|
onClick: events.hide,
|
|
15
14
|
};
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.usePopupHeading = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
const common_1 = require("@workday/canvas-kit-react/common");
|
|
5
|
+
const usePopupModel_1 = require("./usePopupModel");
|
|
6
6
|
/**
|
|
7
7
|
* Adds the necessary props to the {@link PopupHeading Popup.Heading} subcomponent.
|
|
8
8
|
*/
|
|
9
|
-
exports.usePopupHeading = common_1.createElemPropsHook(usePopupModel_1.usePopupModel)(
|
|
10
|
-
var state = _a.state;
|
|
9
|
+
exports.usePopupHeading = common_1.createElemPropsHook(usePopupModel_1.usePopupModel)(({ state }) => {
|
|
11
10
|
return {
|
|
12
11
|
id: state.id,
|
|
13
12
|
};
|
|
@@ -1,15 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
3
|
if (k2 === undefined) k2 = k;
|
|
15
4
|
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
@@ -31,69 +20,75 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
31
20
|
};
|
|
32
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
33
22
|
exports.PopupModelContext = exports.usePopupModel = void 0;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
23
|
+
const React = __importStar(require("react"));
|
|
24
|
+
const common_1 = require("@workday/canvas-kit-react/common");
|
|
25
|
+
const disclosure_1 = require("@workday/canvas-kit-react/disclosure");
|
|
37
26
|
// eslint-disable-next-line no-empty-function
|
|
38
|
-
|
|
27
|
+
const noop = () => { };
|
|
39
28
|
exports.usePopupModel = common_1.createModelHook({
|
|
40
29
|
// create enough of a model to use `Popup.Card` without a `Popup` container component.
|
|
41
30
|
defaultContext: { state: {}, events: { show: noop, hide: noop } },
|
|
42
|
-
defaultConfig:
|
|
31
|
+
defaultConfig: {
|
|
32
|
+
...disclosure_1.useDisclosureModel.defaultConfig,
|
|
43
33
|
/**
|
|
44
34
|
* Optional reference to an element that should receive focus when a popup is hidden. If left
|
|
45
35
|
* blank, focus will return to the `targetRef`
|
|
46
36
|
*/
|
|
47
|
-
returnFocusRef: undefined,
|
|
37
|
+
returnFocusRef: undefined,
|
|
48
38
|
/**
|
|
49
39
|
* Optional reference to an element that should receive focus when a popup is shown. If left blank,
|
|
50
40
|
* focus will be moved to the first focusable element inside the popup.
|
|
51
41
|
*/
|
|
52
|
-
initialFocusRef: undefined
|
|
42
|
+
initialFocusRef: undefined,
|
|
43
|
+
},
|
|
53
44
|
requiredConfig: disclosure_1.useDisclosureModel.requiredConfig,
|
|
54
|
-
})(
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
45
|
+
})(config => {
|
|
46
|
+
const stackRef = React.useRef(null);
|
|
47
|
+
const targetRef = React.useRef(null);
|
|
48
|
+
const [placement, setPlacement] = React.useState('bottom');
|
|
49
|
+
const disclosure = disclosure_1.useDisclosureModel(config);
|
|
50
|
+
const state = {
|
|
51
|
+
...disclosure.state,
|
|
60
52
|
/**
|
|
61
53
|
* Reference of the stack item used in the PopupStack. This value will be used in all
|
|
62
54
|
* Popup-related behaviors.
|
|
63
55
|
*/
|
|
64
|
-
stackRef
|
|
56
|
+
stackRef,
|
|
65
57
|
/**
|
|
66
58
|
* Reference of the target element. This will point to the element that triggered the showing of a
|
|
67
59
|
* Popup and is used in Popup-related behaviors.
|
|
68
60
|
*/
|
|
69
|
-
targetRef
|
|
61
|
+
targetRef,
|
|
70
62
|
/**
|
|
71
63
|
* Optional reference to an element that should receive focus when a popup is shown. If left blank,
|
|
72
64
|
* focus will be moved to the first focusable element inside the popup.
|
|
73
65
|
*/
|
|
74
|
-
initialFocusRef: config.initialFocusRef,
|
|
66
|
+
initialFocusRef: config.initialFocusRef,
|
|
75
67
|
/**
|
|
76
68
|
* Optional reference to an element that should receive focus when a popup is hidden. If left
|
|
77
69
|
* blank, focus will return to the `targetRef`
|
|
78
70
|
*/
|
|
79
|
-
returnFocusRef: config.returnFocusRef,
|
|
71
|
+
returnFocusRef: config.returnFocusRef,
|
|
80
72
|
/**
|
|
81
73
|
* The placement chosen by the positioning Popper. This should get set prior to showing the popup
|
|
82
74
|
* content.
|
|
83
75
|
* @default 'bottom'
|
|
84
76
|
*/
|
|
85
|
-
placement
|
|
86
|
-
|
|
77
|
+
placement,
|
|
78
|
+
};
|
|
79
|
+
const events = {
|
|
80
|
+
...disclosure.events,
|
|
87
81
|
/**
|
|
88
82
|
* Called whenever a popup placement changes around a target. This is useful for animations that
|
|
89
83
|
* depend on the placement chosen.
|
|
90
84
|
*/
|
|
91
|
-
updatePlacement
|
|
85
|
+
updatePlacement(data) {
|
|
92
86
|
setPlacement(data.placement);
|
|
93
|
-
}
|
|
87
|
+
},
|
|
88
|
+
};
|
|
94
89
|
return {
|
|
95
|
-
state
|
|
96
|
-
events
|
|
90
|
+
state,
|
|
91
|
+
events,
|
|
97
92
|
};
|
|
98
93
|
});
|
|
99
94
|
// create enough of a model to use `Popup.Card` without a `Popup` container component.
|
|
@@ -4,26 +4,25 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.usePopupPopper = void 0;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
const common_1 = require("@workday/canvas-kit-react/common");
|
|
8
|
+
const usePopupModel_1 = require("./usePopupModel");
|
|
9
|
+
const react_1 = __importDefault(require("react"));
|
|
10
10
|
/**
|
|
11
11
|
* Adds the necessary props to a {@link Popper} component. Used by the
|
|
12
12
|
* {@link PopupPopper Popup.Popper} subcomponent.
|
|
13
13
|
*/
|
|
14
|
-
exports.usePopupPopper = common_1.createElemPropsHook(usePopupModel_1.usePopupModel)(
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
var onPlacementChange = react_1.default.useCallback(function (placement) {
|
|
14
|
+
exports.usePopupPopper = common_1.createElemPropsHook(usePopupModel_1.usePopupModel)(({ state, events }, ref) => {
|
|
15
|
+
const elementRef = common_1.useForkRef(ref, state.stackRef);
|
|
16
|
+
const onPlacementChange = react_1.default.useCallback((placement) => {
|
|
18
17
|
if (placement !== state.placement) {
|
|
19
18
|
// only update if the placement has changed
|
|
20
|
-
events.updatePlacement({ placement
|
|
19
|
+
events.updatePlacement({ placement });
|
|
21
20
|
}
|
|
22
21
|
}, [events, state.placement]);
|
|
23
22
|
return {
|
|
24
23
|
open: state.visibility !== 'hidden',
|
|
25
24
|
anchorElement: state.targetRef,
|
|
26
25
|
ref: elementRef,
|
|
27
|
-
onPlacementChange
|
|
26
|
+
onPlacementChange,
|
|
28
27
|
};
|
|
29
28
|
});
|
|
@@ -4,9 +4,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.usePopupStack = void 0;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
const react_1 = __importDefault(require("react"));
|
|
8
|
+
const canvas_kit_popup_stack_1 = require("@workday/canvas-kit-popup-stack");
|
|
9
|
+
const common_1 = require("@workday/canvas-kit-react/common");
|
|
10
10
|
/**
|
|
11
11
|
* **Note:** If you're using {@link Popper}, you do not need to use this hook directly.
|
|
12
12
|
*
|
|
@@ -49,36 +49,36 @@ var common_1 = require("@workday/canvas-kit-react/common");
|
|
|
49
49
|
* by all ephemeral-type popups (like Tooltips, Select menus, etc). It will also add in clickOutside
|
|
50
50
|
* detection.
|
|
51
51
|
*/
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
52
|
+
const usePopupStack = (ref, target) => {
|
|
53
|
+
const { elementRef, localRef } = common_1.useLocalRef(ref);
|
|
54
|
+
const isRTL = common_1.useIsRTL();
|
|
55
55
|
// useState function input ensures we only create a container once.
|
|
56
|
-
|
|
57
|
-
|
|
56
|
+
const [popupRef] = react_1.default.useState(() => {
|
|
57
|
+
const container = canvas_kit_popup_stack_1.PopupStack.createContainer();
|
|
58
58
|
elementRef(container);
|
|
59
59
|
return container;
|
|
60
|
-
})
|
|
60
|
+
});
|
|
61
61
|
// We useLayoutEffect to ensure proper timing of registration of the element to the popup stack.
|
|
62
62
|
// Without this, the timing is unpredictable when mixed with other frameworks. Other frameworks
|
|
63
63
|
// should also register as soon as the element is available
|
|
64
|
-
react_1.default.useLayoutEffect(
|
|
64
|
+
react_1.default.useLayoutEffect(() => {
|
|
65
65
|
if (popupRef !== localRef.current) {
|
|
66
|
-
throw Error(
|
|
66
|
+
throw Error(`The 'ref' passed to usePopupStack should not be applied to a React element. This will cause a runtime error where the PopupStack and React compete for the element. Instead use ReactDOM.createPortal(<YourComponent />, ref.current)`);
|
|
67
67
|
}
|
|
68
|
-
|
|
68
|
+
const targetEl = target
|
|
69
69
|
? 'current' in target
|
|
70
70
|
? target.current || undefined
|
|
71
71
|
: target
|
|
72
72
|
: undefined;
|
|
73
|
-
|
|
73
|
+
const element = localRef.current;
|
|
74
74
|
canvas_kit_popup_stack_1.PopupStack.add({ element: element, owner: targetEl });
|
|
75
|
-
return
|
|
75
|
+
return () => {
|
|
76
76
|
canvas_kit_popup_stack_1.PopupStack.remove(element);
|
|
77
77
|
};
|
|
78
78
|
}, [localRef, target, popupRef]);
|
|
79
79
|
// The direction will properly follow the theme via React context, but portals lose the `dir`
|
|
80
80
|
// hierarchy, so we'll add it back here.
|
|
81
|
-
react_1.default.useLayoutEffect(
|
|
81
|
+
react_1.default.useLayoutEffect(() => {
|
|
82
82
|
var _a, _b;
|
|
83
83
|
if (isRTL) {
|
|
84
84
|
(_a = localRef.current) === null || _a === void 0 ? void 0 : _a.setAttribute('dir', 'rtl');
|
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.usePopupTarget = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
const common_1 = require("@workday/canvas-kit-react/common");
|
|
5
|
+
const usePopupModel_1 = require("./usePopupModel");
|
|
6
6
|
/**
|
|
7
7
|
* Adds the necessary props to a {@link PopupTarget Popup.Target} subcomponent.
|
|
8
8
|
*/
|
|
9
|
-
exports.usePopupTarget = common_1.createElemPropsHook(usePopupModel_1.usePopupModel)(
|
|
10
|
-
|
|
11
|
-
var elementRef = common_1.useForkRef(ref, state.targetRef);
|
|
9
|
+
exports.usePopupTarget = common_1.createElemPropsHook(usePopupModel_1.usePopupModel)(({ events, state }, ref) => {
|
|
10
|
+
const elementRef = common_1.useForkRef(ref, state.targetRef);
|
|
12
11
|
return {
|
|
13
12
|
ref: elementRef,
|
|
14
|
-
onClick:
|
|
13
|
+
onClick: (event) => {
|
|
15
14
|
// If we're wrapping a target component that doesn't handle ref forwarding, update the
|
|
16
15
|
// `state.targetRef` manually. This ensures that custom target components don't need to handle
|
|
17
16
|
// ref forwarding since ref forwarding is only really needed to programmatically open popups
|
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.usePopupTargetContext = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
const common_1 = require("@workday/canvas-kit-react/common");
|
|
5
|
+
const usePopupModel_1 = require("./usePopupModel");
|
|
6
6
|
/**
|
|
7
7
|
* Adds the necessary props to a `Target` component. Used by the Popup.Target subcomponent.
|
|
8
8
|
*/
|
|
9
|
-
exports.usePopupTargetContext = common_1.createElemPropsHook(usePopupModel_1.usePopupModel)(
|
|
10
|
-
|
|
11
|
-
var elementRef = common_1.useForkRef(ref, state.targetRef);
|
|
9
|
+
exports.usePopupTargetContext = common_1.createElemPropsHook(usePopupModel_1.usePopupModel)(({ events, state }, ref) => {
|
|
10
|
+
const elementRef = common_1.useForkRef(ref, state.targetRef);
|
|
12
11
|
return {
|
|
13
12
|
ref: elementRef,
|
|
14
|
-
onContextMenu:
|
|
13
|
+
onContextMenu: (event) => {
|
|
15
14
|
// If we're wrapping a target component that doesn't handle ref forwarding, update the
|
|
16
15
|
// `state.targetRef` manually. This ensures that custom target components don't need to handle
|
|
17
16
|
// ref forwarding since ref forwarding is only really needed to programmatically open popups
|
|
@@ -4,15 +4,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.useReturnFocus = void 0;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
const react_1 = __importDefault(require("react"));
|
|
8
|
+
const common_1 = require("@workday/canvas-kit-react/common");
|
|
9
|
+
const usePopupModel_1 = require("./usePopupModel");
|
|
10
|
+
const canvas_kit_popup_stack_1 = require("@workday/canvas-kit-popup-stack");
|
|
11
11
|
function getScrollParent(element) {
|
|
12
12
|
if (element === document.body || !element.parentElement) {
|
|
13
13
|
return element;
|
|
14
14
|
}
|
|
15
|
-
|
|
15
|
+
const styles = getComputedStyle(element);
|
|
16
16
|
if (styles.overflowY === 'scroll' || styles.overflowY === 'auto') {
|
|
17
17
|
return element;
|
|
18
18
|
}
|
|
@@ -37,14 +37,14 @@ function getFocusableElement(element) {
|
|
|
37
37
|
*
|
|
38
38
|
* This should be used on popup elements that use `useInitialFocus`.
|
|
39
39
|
*/
|
|
40
|
-
exports.useReturnFocus = common_1.createElemPropsHook(usePopupModel_1.usePopupModel)(
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
exports.useReturnFocus = common_1.createElemPropsHook(usePopupModel_1.usePopupModel)(model => {
|
|
41
|
+
const visible = model.state.visibility !== 'hidden';
|
|
42
|
+
const elementRef = react_1.default.useRef(null);
|
|
43
43
|
// This boolean tracks keyboard-driven focus changes. This is required for `useFocusRedirect` as
|
|
44
44
|
// focus redirection needs synchronous focus management and everything else needs asynchronous
|
|
45
45
|
// focus management.
|
|
46
|
-
|
|
47
|
-
|
|
46
|
+
const requiresFocusChangeRef = react_1.default.useRef(false);
|
|
47
|
+
const onKeyDown = react_1.default.useCallback((event) => {
|
|
48
48
|
// The tab key changes focus
|
|
49
49
|
if (event.key === 'Tab') {
|
|
50
50
|
requiresFocusChangeRef.current = true;
|
|
@@ -52,7 +52,7 @@ exports.useReturnFocus = common_1.createElemPropsHook(usePopupModel_1.usePopupMo
|
|
|
52
52
|
}, []);
|
|
53
53
|
// track mousedown events to determine if the mouse target is a focusable element. If it is, we
|
|
54
54
|
// should not return focus
|
|
55
|
-
|
|
55
|
+
const onMouseDown = react_1.default.useCallback((event) => {
|
|
56
56
|
if (model.state.stackRef.current && event.target instanceof HTMLElement) {
|
|
57
57
|
if (!canvas_kit_popup_stack_1.PopupStack.contains(model.state.stackRef.current, event.target)) {
|
|
58
58
|
elementRef.current = event.target;
|
|
@@ -74,24 +74,24 @@ exports.useReturnFocus = common_1.createElemPropsHook(usePopupModel_1.usePopupMo
|
|
|
74
74
|
// focus itself. If we don't short-circuit return focus, the user will intend to click on an
|
|
75
75
|
// `input` element only to get focus changed back. This is annoying to users and unintuitive. Instead,
|
|
76
76
|
// we'll use `mousedown` and `mouseup` to determine if we're closing because of a mouse click.
|
|
77
|
-
react_1.default.useLayoutEffect(
|
|
77
|
+
react_1.default.useLayoutEffect(() => {
|
|
78
78
|
if (!visible) {
|
|
79
79
|
return;
|
|
80
80
|
}
|
|
81
81
|
// capture the element here. The refs will be null by the time the cleanup function is called
|
|
82
|
-
|
|
82
|
+
const element = (model.state.returnFocusRef || model.state.targetRef)
|
|
83
83
|
.current;
|
|
84
84
|
document.addEventListener('mousedown', onMouseDown, true);
|
|
85
85
|
document.addEventListener('keydown', onKeyDown, true);
|
|
86
|
-
return
|
|
86
|
+
return () => {
|
|
87
87
|
document.removeEventListener('mousedown', onMouseDown, true);
|
|
88
88
|
document.removeEventListener('keydown', onKeyDown, true);
|
|
89
89
|
if (!element) {
|
|
90
90
|
return;
|
|
91
91
|
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
92
|
+
const scrollParent = getScrollParent(element);
|
|
93
|
+
const scrollParentRect = scrollParent.getBoundingClientRect();
|
|
94
|
+
const elementRect = element.getBoundingClientRect();
|
|
95
95
|
// Don't change focus if user focused on a different element like a `input` or the target
|
|
96
96
|
// element isn't on at least halfway rendered on the screen.
|
|
97
97
|
if ((elementRef.current && getFocusableElement(elementRef.current)) || // did the user click on a focusable element?
|
|
@@ -104,7 +104,7 @@ exports.useReturnFocus = common_1.createElemPropsHook(usePopupModel_1.usePopupMo
|
|
|
104
104
|
elementRef.current = null;
|
|
105
105
|
return;
|
|
106
106
|
}
|
|
107
|
-
|
|
107
|
+
const activeElementOutsidePopupStack = document.activeElement !== document.body &&
|
|
108
108
|
model.state.stackRef.current &&
|
|
109
109
|
document.activeElement instanceof HTMLElement &&
|
|
110
110
|
!canvas_kit_popup_stack_1.PopupStack.contains(model.state.stackRef.current, document.activeElement);
|
|
@@ -117,7 +117,7 @@ exports.useReturnFocus = common_1.createElemPropsHook(usePopupModel_1.usePopupMo
|
|
|
117
117
|
else {
|
|
118
118
|
// We wait a frame for the current event to process, allowing the browser to fire default
|
|
119
119
|
// actions. This delay allows the focus change to trigger a `focus` event on `element`.
|
|
120
|
-
requestAnimationFrame(
|
|
120
|
+
requestAnimationFrame(() => {
|
|
121
121
|
common_1.changeFocus(element);
|
|
122
122
|
});
|
|
123
123
|
}
|
|
@@ -4,11 +4,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.useTransferOnFullscreenEnter = void 0;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
const react_1 = __importDefault(require("react"));
|
|
8
|
+
const screenfull_1 = __importDefault(require("screenfull"));
|
|
9
|
+
const canvas_kit_popup_stack_1 = require("@workday/canvas-kit-popup-stack");
|
|
10
|
+
const common_1 = require("@workday/canvas-kit-react/common");
|
|
11
|
+
const usePopupModel_1 = require("./usePopupModel");
|
|
12
12
|
/**
|
|
13
13
|
* Makes the popup transfer to the fullscreen element when fullscreen is entered. Without this, the
|
|
14
14
|
* popup would seem to disappear because the popup container element is not a child of the
|
|
@@ -17,8 +17,8 @@ var usePopupModel_1 = require("./usePopupModel");
|
|
|
17
17
|
* Don't use this in conjunction with a hook that will close the popup when entering fullscreen.
|
|
18
18
|
* Doing so would open the popup when the intention was to close it.
|
|
19
19
|
*/
|
|
20
|
-
exports.useTransferOnFullscreenEnter = common_1.createElemPropsHook(usePopupModel_1.usePopupModel)(
|
|
21
|
-
|
|
20
|
+
exports.useTransferOnFullscreenEnter = common_1.createElemPropsHook(usePopupModel_1.usePopupModel)(model => {
|
|
21
|
+
const handler = react_1.default.useCallback((event) => {
|
|
22
22
|
if (screenfull_1.default.isFullscreen && model.state.stackRef.current) {
|
|
23
23
|
canvas_kit_popup_stack_1.PopupStack.transferToCurrentContext({
|
|
24
24
|
element: model.state.stackRef.current,
|
|
@@ -26,14 +26,14 @@ exports.useTransferOnFullscreenEnter = common_1.createElemPropsHook(usePopupMode
|
|
|
26
26
|
});
|
|
27
27
|
}
|
|
28
28
|
}, [model.state.stackRef, model.state.targetRef]);
|
|
29
|
-
|
|
30
|
-
react_1.default.useEffect(
|
|
29
|
+
const visible = model.state.visibility !== 'hidden';
|
|
30
|
+
react_1.default.useEffect(() => {
|
|
31
31
|
if (!visible) {
|
|
32
32
|
return;
|
|
33
33
|
}
|
|
34
34
|
if (screenfull_1.default.isEnabled) {
|
|
35
35
|
screenfull_1.default.on('change', handler);
|
|
36
|
-
return
|
|
36
|
+
return () => {
|
|
37
37
|
screenfull_1.default.off('change', handler);
|
|
38
38
|
};
|
|
39
39
|
}
|