@channel.io/bezier-react 1.6.1 → 1.7.0
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/dist/cjs/components/Forms/Slider/Slider.js +73 -51
- package/dist/cjs/components/Forms/Slider/Slider.js.map +1 -1
- package/dist/cjs/components/Forms/Slider/Slider.styled.js +24 -83
- package/dist/cjs/components/Forms/Slider/Slider.styled.js.map +1 -1
- package/dist/cjs/components/Help/Help.js +10 -7
- package/dist/cjs/components/Help/Help.js.map +1 -1
- package/dist/cjs/components/Help/Help.styled.js +4 -5
- package/dist/cjs/components/Help/Help.styled.js.map +1 -1
- package/dist/cjs/components/KeyValueListItem/common/ItemActions/ItemAction.js +2 -9
- package/dist/cjs/components/KeyValueListItem/common/ItemActions/ItemAction.js.map +1 -1
- package/dist/cjs/components/KeyValueListItem/common/ItemActions/ItemAction.styled.js +3 -20
- package/dist/cjs/components/KeyValueListItem/common/ItemActions/ItemAction.styled.js.map +1 -1
- package/dist/cjs/components/LegacyTooltip/LegacyTooltip.js +101 -0
- package/dist/cjs/components/LegacyTooltip/LegacyTooltip.js.map +1 -0
- package/dist/cjs/components/LegacyTooltip/LegacyTooltip.styled.js +41 -0
- package/dist/cjs/components/LegacyTooltip/LegacyTooltip.styled.js.map +1 -0
- package/dist/cjs/components/LegacyTooltip/LegacyTooltip.types.js +20 -0
- package/dist/cjs/components/LegacyTooltip/LegacyTooltip.types.js.map +1 -0
- package/dist/cjs/components/{Tooltip/TooltipContent.js → LegacyTooltip/LegacyTooltipContent.js} +9 -12
- package/dist/cjs/components/LegacyTooltip/LegacyTooltipContent.js.map +1 -0
- package/dist/cjs/components/{Tooltip → LegacyTooltip}/utils.js +33 -33
- package/dist/cjs/components/LegacyTooltip/utils.js.map +1 -0
- package/dist/cjs/components/ListItem/ListItem.styled.js +1 -1
- package/dist/cjs/components/ListMenuTitle/ListMenuTitle.js +11 -10
- package/dist/cjs/components/ListMenuTitle/ListMenuTitle.js.map +1 -1
- package/dist/cjs/components/Modals/Modal/Modal.types.js.map +1 -1
- package/dist/cjs/components/Navigator/NavGroup/NavGroup.js +10 -11
- package/dist/cjs/components/Navigator/NavGroup/NavGroup.js.map +1 -1
- package/dist/cjs/components/Navigator/NavItem/NavItem.js +10 -10
- package/dist/cjs/components/Navigator/NavItem/NavItem.js.map +1 -1
- package/dist/cjs/components/SectionLabel/SectionLabel.js +10 -17
- package/dist/cjs/components/SectionLabel/SectionLabel.js.map +1 -1
- package/dist/cjs/components/SectionLabel/SectionLabel.styled.js +4 -4
- package/dist/cjs/components/SectionLabel/SectionLabel.styled.js.map +1 -1
- package/dist/cjs/components/Spinner/Spinner.js +10 -7
- package/dist/cjs/components/Spinner/Spinner.js.map +1 -1
- package/dist/cjs/components/Spinner/Spinner.styled.js +1 -1
- package/dist/cjs/components/Spinner/Spinner.types.js.map +1 -1
- package/dist/cjs/components/Stack/Stack/Stack.styled.js +1 -1
- package/dist/cjs/components/Status/Status.styled.js +1 -1
- package/dist/cjs/components/TagBadge/Badge/Badge.js +9 -8
- package/dist/cjs/components/TagBadge/Badge/Badge.js.map +1 -1
- package/dist/cjs/components/TagBadge/Tag/Tag.js +4 -3
- package/dist/cjs/components/TagBadge/Tag/Tag.js.map +1 -1
- package/dist/cjs/components/Text/Text.styled.js +1 -1
- package/dist/cjs/components/Toast/Toast.types.js +2 -1
- package/dist/cjs/components/Toast/Toast.types.js.map +1 -1
- package/dist/cjs/components/Toast/ToastElement.js +5 -6
- package/dist/cjs/components/Toast/ToastElement.js.map +1 -1
- package/dist/cjs/components/Toast/ToastProvider.js +2 -2
- package/dist/cjs/components/Toast/ToastProvider.js.map +1 -1
- package/dist/cjs/components/Toast/utils.js +6 -5
- package/dist/cjs/components/Toast/utils.js.map +1 -1
- package/dist/cjs/components/Tooltip/Tooltip.js +211 -83
- package/dist/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/cjs/components/Tooltip/Tooltip.styled.js +96 -25
- package/dist/cjs/components/Tooltip/Tooltip.styled.js.map +1 -1
- package/dist/cjs/components/Tooltip/Tooltip.types.js +3 -0
- package/dist/cjs/components/Tooltip/Tooltip.types.js.map +1 -1
- package/dist/cjs/foundation/FoundationStyledComponent.js +16 -1
- package/dist/cjs/foundation/FoundationStyledComponent.js.map +1 -1
- package/dist/cjs/index.js +15 -10
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/node_modules/@floating-ui/core/dist/floating-ui.core.js +886 -0
- package/dist/cjs/node_modules/@floating-ui/core/dist/floating-ui.core.js.map +1 -0
- package/dist/cjs/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +691 -0
- package/dist/cjs/node_modules/@floating-ui/dom/dist/floating-ui.dom.js.map +1 -0
- package/dist/cjs/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.esm.js +296 -0
- package/dist/cjs/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.esm.js.map +1 -0
- package/dist/cjs/node_modules/@radix-ui/react-popper/dist/index.js +265 -0
- package/dist/cjs/node_modules/@radix-ui/react-popper/dist/index.js.map +1 -0
- package/dist/cjs/node_modules/@radix-ui/react-slider/dist/index.js +21 -21
- package/dist/cjs/node_modules/@radix-ui/react-tooltip/dist/index.js +521 -0
- package/dist/cjs/node_modules/@radix-ui/react-tooltip/dist/index.js.map +1 -0
- package/dist/cjs/providers/BezierProvider.js +3 -2
- package/dist/cjs/providers/BezierProvider.js.map +1 -1
- package/dist/esm/components/Forms/Slider/Slider.mjs +76 -53
- package/dist/esm/components/Forms/Slider/Slider.mjs.map +1 -1
- package/dist/esm/components/Forms/Slider/Slider.styled.mjs +22 -82
- package/dist/esm/components/Forms/Slider/Slider.styled.mjs.map +1 -1
- package/dist/esm/components/Help/Help.mjs +11 -8
- package/dist/esm/components/Help/Help.mjs.map +1 -1
- package/dist/esm/components/Help/Help.styled.mjs +4 -5
- package/dist/esm/components/Help/Help.styled.mjs.map +1 -1
- package/dist/esm/components/KeyValueListItem/common/ItemActions/ItemAction.mjs +3 -10
- package/dist/esm/components/KeyValueListItem/common/ItemActions/ItemAction.mjs.map +1 -1
- package/dist/esm/components/KeyValueListItem/common/ItemActions/ItemAction.styled.mjs +4 -19
- package/dist/esm/components/KeyValueListItem/common/ItemActions/ItemAction.styled.mjs.map +1 -1
- package/dist/esm/components/LegacyTooltip/LegacyTooltip.mjs +97 -0
- package/dist/esm/components/LegacyTooltip/LegacyTooltip.mjs.map +1 -0
- package/dist/esm/components/LegacyTooltip/LegacyTooltip.styled.mjs +36 -0
- package/dist/esm/components/LegacyTooltip/LegacyTooltip.styled.mjs.map +1 -0
- package/dist/esm/components/LegacyTooltip/LegacyTooltip.types.mjs +18 -0
- package/dist/esm/components/LegacyTooltip/LegacyTooltip.types.mjs.map +1 -0
- package/dist/esm/components/{Tooltip/TooltipContent.mjs → LegacyTooltip/LegacyTooltipContent.mjs} +8 -9
- package/dist/esm/components/LegacyTooltip/LegacyTooltipContent.mjs.map +1 -0
- package/dist/esm/components/{Tooltip → LegacyTooltip}/utils.mjs +33 -33
- package/dist/esm/components/LegacyTooltip/utils.mjs.map +1 -0
- package/dist/esm/components/ListItem/ListItem.styled.mjs +1 -1
- package/dist/esm/components/ListMenuTitle/ListMenuTitle.mjs +12 -11
- package/dist/esm/components/ListMenuTitle/ListMenuTitle.mjs.map +1 -1
- package/dist/esm/components/Modals/Modal/Modal.types.mjs.map +1 -1
- package/dist/esm/components/Navigator/NavGroup/NavGroup.mjs +11 -12
- package/dist/esm/components/Navigator/NavGroup/NavGroup.mjs.map +1 -1
- package/dist/esm/components/Navigator/NavItem/NavItem.mjs +11 -11
- package/dist/esm/components/Navigator/NavItem/NavItem.mjs.map +1 -1
- package/dist/esm/components/Overlay/Overlay.mjs +2 -2
- package/dist/esm/components/Overlay/Overlay.mjs.map +1 -1
- package/dist/esm/components/SectionLabel/SectionLabel.mjs +11 -17
- package/dist/esm/components/SectionLabel/SectionLabel.mjs.map +1 -1
- package/dist/esm/components/SectionLabel/SectionLabel.styled.mjs +4 -4
- package/dist/esm/components/SectionLabel/SectionLabel.styled.mjs.map +1 -1
- package/dist/esm/components/Spinner/Spinner.mjs +11 -8
- package/dist/esm/components/Spinner/Spinner.mjs.map +1 -1
- package/dist/esm/components/Spinner/Spinner.styled.mjs +1 -1
- package/dist/esm/components/Spinner/Spinner.types.mjs.map +1 -1
- package/dist/esm/components/Stack/Stack/Stack.styled.mjs +1 -1
- package/dist/esm/components/Status/Status.styled.mjs +1 -1
- package/dist/esm/components/TagBadge/Badge/Badge.mjs +10 -9
- package/dist/esm/components/TagBadge/Badge/Badge.mjs.map +1 -1
- package/dist/esm/components/TagBadge/Tag/Tag.mjs +5 -4
- package/dist/esm/components/TagBadge/Tag/Tag.mjs.map +1 -1
- package/dist/esm/components/Text/Text.styled.mjs +1 -1
- package/dist/esm/components/Toast/Toast.types.mjs +2 -1
- package/dist/esm/components/Toast/Toast.types.mjs.map +1 -1
- package/dist/esm/components/Toast/ToastElement.mjs +5 -6
- package/dist/esm/components/Toast/ToastElement.mjs.map +1 -1
- package/dist/esm/components/Toast/ToastProvider.mjs +2 -2
- package/dist/esm/components/Toast/ToastProvider.mjs.map +1 -1
- package/dist/esm/components/Toast/utils.mjs +6 -5
- package/dist/esm/components/Toast/utils.mjs.map +1 -1
- package/dist/esm/components/Tooltip/Tooltip.mjs +213 -82
- package/dist/esm/components/Tooltip/Tooltip.mjs.map +1 -1
- package/dist/esm/components/Tooltip/Tooltip.styled.mjs +93 -23
- package/dist/esm/components/Tooltip/Tooltip.styled.mjs.map +1 -1
- package/dist/esm/components/Tooltip/Tooltip.types.mjs +3 -0
- package/dist/esm/components/Tooltip/Tooltip.types.mjs.map +1 -1
- package/dist/esm/foundation/FoundationStyledComponent.mjs +16 -1
- package/dist/esm/foundation/FoundationStyledComponent.mjs.map +1 -1
- package/dist/esm/index.mjs +7 -5
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/node_modules/@floating-ui/core/dist/floating-ui.core.mjs +875 -0
- package/dist/esm/node_modules/@floating-ui/core/dist/floating-ui.core.mjs.map +1 -0
- package/dist/esm/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs +679 -0
- package/dist/esm/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs.map +1 -0
- package/dist/esm/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.esm.mjs +265 -0
- package/dist/esm/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.esm.mjs.map +1 -0
- package/dist/esm/node_modules/@radix-ui/react-popper/dist/index.mjs +257 -0
- package/dist/esm/node_modules/@radix-ui/react-popper/dist/index.mjs.map +1 -0
- package/dist/esm/node_modules/@radix-ui/react-portal/dist/index.mjs +2 -2
- package/dist/esm/node_modules/@radix-ui/react-slider/dist/index.mjs +1 -1
- package/dist/esm/node_modules/@radix-ui/react-tooltip/dist/index.mjs +509 -0
- package/dist/esm/node_modules/@radix-ui/react-tooltip/dist/index.mjs.map +1 -0
- package/dist/esm/providers/BezierProvider.mjs +3 -2
- package/dist/esm/providers/BezierProvider.mjs.map +1 -1
- package/dist/types/components/Forms/Slider/Slider.d.ts +18 -2
- package/dist/types/components/Forms/Slider/Slider.d.ts.map +1 -1
- package/dist/types/components/Forms/Slider/Slider.styled.d.ts +14 -24
- package/dist/types/components/Forms/Slider/Slider.styled.d.ts.map +1 -1
- package/dist/types/components/Forms/Slider/Slider.types.d.ts +52 -13
- package/dist/types/components/Forms/Slider/Slider.types.d.ts.map +1 -1
- package/dist/types/components/Help/Help.d.ts +1 -4
- package/dist/types/components/Help/Help.d.ts.map +1 -1
- package/dist/types/components/Help/Help.styled.d.ts +1 -1
- package/dist/types/components/Help/Help.styled.d.ts.map +1 -1
- package/dist/types/components/Help/Help.types.d.ts +1 -1
- package/dist/types/components/Help/Help.types.d.ts.map +1 -1
- package/dist/types/components/KeyValueListItem/common/ItemActions/ItemAction.d.ts.map +1 -1
- package/dist/types/components/KeyValueListItem/common/ItemActions/ItemAction.styled.d.ts +1 -7
- package/dist/types/components/KeyValueListItem/common/ItemActions/ItemAction.styled.d.ts.map +1 -1
- package/dist/types/components/KeyValueListItem/common/ItemActions/ItemAction.types.d.ts +3 -3
- package/dist/types/components/KeyValueListItem/common/ItemActions/ItemAction.types.d.ts.map +1 -1
- package/dist/types/components/KeyValueListItem/common/KeyItem/KeyItem.types.d.ts +2 -2
- package/dist/types/components/KeyValueListItem/common/KeyItem/KeyItem.types.d.ts.map +1 -1
- package/dist/types/components/LegacyTooltip/LegacyTooltip.d.ts +6 -0
- package/dist/types/components/LegacyTooltip/LegacyTooltip.d.ts.map +1 -0
- package/dist/types/components/LegacyTooltip/LegacyTooltip.styled.d.ts +18 -0
- package/dist/types/components/LegacyTooltip/LegacyTooltip.styled.d.ts.map +1 -0
- package/dist/types/components/LegacyTooltip/LegacyTooltip.types.d.ts +40 -0
- package/dist/types/components/LegacyTooltip/LegacyTooltip.types.d.ts.map +1 -0
- package/dist/types/components/LegacyTooltip/LegacyTooltipContent.d.ts +4 -0
- package/dist/types/components/LegacyTooltip/LegacyTooltipContent.d.ts.map +1 -0
- package/dist/types/components/LegacyTooltip/index.d.ts +4 -0
- package/dist/types/components/LegacyTooltip/index.d.ts.map +1 -0
- package/dist/types/components/{Tooltip → LegacyTooltip}/utils.d.ts +2 -2
- package/dist/types/components/LegacyTooltip/utils.d.ts.map +1 -0
- package/dist/types/components/ListMenuTitle/ListMenuTitle.d.ts +1 -1
- package/dist/types/components/ListMenuTitle/ListMenuTitle.d.ts.map +1 -1
- package/dist/types/components/ListMenuTitle/ListMenuTitle.types.d.ts +1 -2
- package/dist/types/components/ListMenuTitle/ListMenuTitle.types.d.ts.map +1 -1
- package/dist/types/components/Modals/Modal/Modal.types.d.ts +2 -2
- package/dist/types/components/Modals/Modal/Modal.types.d.ts.map +1 -1
- package/dist/types/components/Navigator/NavGroup/NavGroup.d.ts +1 -2
- package/dist/types/components/Navigator/NavGroup/NavGroup.d.ts.map +1 -1
- package/dist/types/components/Navigator/NavGroup/NavGroup.types.d.ts +3 -3
- package/dist/types/components/Navigator/NavGroup/NavGroup.types.d.ts.map +1 -1
- package/dist/types/components/Navigator/NavItem/NavItem.d.ts +1 -2
- package/dist/types/components/Navigator/NavItem/NavItem.d.ts.map +1 -1
- package/dist/types/components/Navigator/NavItem/NavItem.types.d.ts +3 -3
- package/dist/types/components/Navigator/NavItem/NavItem.types.d.ts.map +1 -1
- package/dist/types/components/SectionLabel/SectionLabel.d.ts +1 -2
- package/dist/types/components/SectionLabel/SectionLabel.d.ts.map +1 -1
- package/dist/types/components/SectionLabel/SectionLabel.styled.d.ts +1 -1
- package/dist/types/components/SectionLabel/SectionLabel.styled.d.ts.map +1 -1
- package/dist/types/components/SectionLabel/SectionLabel.types.d.ts +2 -7
- package/dist/types/components/SectionLabel/SectionLabel.types.d.ts.map +1 -1
- package/dist/types/components/Spinner/Spinner.d.ts +1 -1
- package/dist/types/components/Spinner/Spinner.d.ts.map +1 -1
- package/dist/types/components/Spinner/Spinner.types.d.ts +2 -1
- package/dist/types/components/Spinner/Spinner.types.d.ts.map +1 -1
- package/dist/types/components/TagBadge/Badge/Badge.d.ts +1 -1
- package/dist/types/components/TagBadge/Badge/Badge.d.ts.map +1 -1
- package/dist/types/components/TagBadge/Badge/Badge.types.d.ts +2 -2
- package/dist/types/components/TagBadge/Badge/Badge.types.d.ts.map +1 -1
- package/dist/types/components/TagBadge/Tag/Tag.d.ts +1 -1
- package/dist/types/components/TagBadge/Tag/Tag.d.ts.map +1 -1
- package/dist/types/components/Toast/Toast.types.d.ts +4 -4
- package/dist/types/components/Toast/Toast.types.d.ts.map +1 -1
- package/dist/types/components/Toast/ToastElement.d.ts.map +1 -1
- package/dist/types/components/Toast/utils.d.ts.map +1 -1
- package/dist/types/components/Tooltip/Tooltip.d.ts +31 -5
- package/dist/types/components/Tooltip/Tooltip.d.ts.map +1 -1
- package/dist/types/components/Tooltip/Tooltip.styled.d.ts +22 -12
- package/dist/types/components/Tooltip/Tooltip.styled.d.ts.map +1 -1
- package/dist/types/components/Tooltip/Tooltip.types.d.ts +105 -24
- package/dist/types/components/Tooltip/Tooltip.types.d.ts.map +1 -1
- package/dist/types/components/Tooltip/index.d.ts +3 -5
- package/dist/types/components/Tooltip/index.d.ts.map +1 -1
- package/dist/types/components/VisuallyHidden/VisuallyHidden.types.d.ts +2 -1
- package/dist/types/components/VisuallyHidden/VisuallyHidden.types.d.ts.map +1 -1
- package/dist/types/foundation/FoundationStyledComponent.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/providers/BezierProvider.d.ts.map +1 -1
- package/package.json +3 -2
- package/src/components/Avatars/AvatarGroup/__snapshots__/AvatarGroup.test.tsx.snap +17 -17
- package/src/components/Button/__snapshots__/Button.test.tsx.snap +15 -15
- package/src/components/Forms/FormControl/__snapshots__/FormControl.test.tsx.snap +119 -119
- package/src/components/Forms/Slider/Slider.stories.tsx +10 -63
- package/src/components/Forms/Slider/Slider.styled.ts +46 -95
- package/src/components/Forms/Slider/Slider.test.tsx +130 -97
- package/src/components/Forms/Slider/Slider.tsx +117 -96
- package/src/components/Forms/Slider/Slider.types.ts +55 -17
- package/src/components/Forms/Slider/__snapshots__/Slider.test.tsx.snap +156 -0
- package/src/components/Help/Help.styled.ts +4 -7
- package/src/components/Help/Help.tsx +19 -12
- package/src/components/Help/Help.types.ts +1 -1
- package/src/components/KeyValueListItem/KeyValueListItem.test.tsx +10 -6
- package/src/components/KeyValueListItem/__snapshots__/KeyValueListItem.test.tsx.snap +13 -13
- package/src/components/KeyValueListItem/common/ItemActions/ItemAction.styled.ts +5 -15
- package/src/components/KeyValueListItem/common/ItemActions/ItemAction.tsx +6 -13
- package/src/components/KeyValueListItem/common/ItemActions/ItemAction.types.ts +3 -6
- package/src/components/KeyValueListItem/common/KeyItem/KeyItem.types.ts +2 -5
- package/src/components/LegacyTooltip/LegacyTooltip.stories.tsx +105 -0
- package/src/components/LegacyTooltip/LegacyTooltip.styled.ts +46 -0
- package/src/components/LegacyTooltip/LegacyTooltip.test.tsx +100 -0
- package/src/components/LegacyTooltip/LegacyTooltip.tsx +152 -0
- package/src/components/LegacyTooltip/LegacyTooltip.types.ts +69 -0
- package/src/components/{Tooltip/TooltipContent.test.tsx → LegacyTooltip/LegacyTooltipContent.test.tsx} +9 -8
- package/src/components/{Tooltip/TooltipContent.tsx → LegacyTooltip/LegacyTooltipContent.tsx} +6 -7
- package/src/components/LegacyTooltip/index.ts +5 -0
- package/src/components/{Tooltip → LegacyTooltip}/utils.ts +35 -35
- package/src/components/ListMenuTitle/ListMenuTitle.tsx +10 -6
- package/src/components/ListMenuTitle/ListMenuTitle.types.ts +1 -1
- package/src/components/Modals/Modal/Modal.types.ts +2 -2
- package/src/components/Navigator/NavGroup/NavGroup.stories.tsx +5 -2
- package/src/components/Navigator/NavGroup/NavGroup.test.tsx +1 -1
- package/src/components/Navigator/NavGroup/NavGroup.tsx +13 -16
- package/src/components/Navigator/NavGroup/NavGroup.types.ts +3 -2
- package/src/components/Navigator/NavItem/NavItem.test.tsx +3 -1
- package/src/components/Navigator/NavItem/NavItem.tsx +13 -12
- package/src/components/Navigator/NavItem/NavItem.types.ts +3 -2
- package/src/components/SectionLabel/SectionLabel.stories.tsx +1 -1
- package/src/components/SectionLabel/SectionLabel.styled.ts +2 -4
- package/src/components/SectionLabel/SectionLabel.test.tsx +5 -25
- package/src/components/SectionLabel/SectionLabel.tsx +11 -17
- package/src/components/SectionLabel/SectionLabel.types.ts +2 -8
- package/src/components/Spinner/Spinner.tsx +7 -4
- package/src/components/Spinner/Spinner.types.ts +2 -1
- package/src/components/TagBadge/Badge/Badge.stories.tsx +2 -1
- package/src/components/TagBadge/Badge/Badge.tsx +15 -10
- package/src/components/TagBadge/Badge/Badge.types.ts +2 -2
- package/src/components/TagBadge/Tag/Tag.tsx +9 -4
- package/src/components/TagBadge/TagBadge.mdx +1 -1
- package/src/components/TagBadge/TagBadge.stories.tsx +48 -33
- package/src/components/Toast/Toast.stories.tsx +9 -8
- package/src/components/Toast/Toast.types.ts +8 -5
- package/src/components/Toast/ToastElement.tsx +4 -5
- package/src/components/Toast/ToastProvider.tsx +2 -2
- package/src/components/Toast/ToastService.test.ts +3 -1
- package/src/components/Toast/useToastContextValues.test.tsx +5 -4
- package/src/components/Toast/utils.ts +13 -5
- package/src/components/Tooltip/Tooltip.stories.tsx +28 -67
- package/src/components/Tooltip/Tooltip.styled.ts +109 -19
- package/src/components/Tooltip/Tooltip.test.tsx +136 -63
- package/src/components/Tooltip/Tooltip.tsx +262 -120
- package/src/components/Tooltip/Tooltip.types.ts +111 -47
- package/src/components/Tooltip/index.ts +8 -8
- package/src/components/VisuallyHidden/VisuallyHidden.types.ts +1 -1
- package/src/foundation/FoundationStyledComponent.tsx +17 -1
- package/src/index.ts +1 -0
- package/src/providers/BezierProvider.tsx +10 -6
- package/dist/cjs/components/Tooltip/TooltipContent.js.map +0 -1
- package/dist/cjs/components/Tooltip/utils.js.map +0 -1
- package/dist/esm/components/Tooltip/TooltipContent.mjs.map +0 -1
- package/dist/esm/components/Tooltip/utils.mjs.map +0 -1
- package/dist/types/components/Tooltip/TooltipContent.d.ts +0 -5
- package/dist/types/components/Tooltip/TooltipContent.d.ts.map +0 -1
- package/dist/types/components/Tooltip/utils.d.ts.map +0 -1
- /package/src/components/{Tooltip/__snapshots__/Tooltip.test.tsx.snap → LegacyTooltip/__snapshots__/LegacyTooltip.test.tsx.snap} +0 -0
|
@@ -1,99 +1,172 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
import {
|
|
4
|
+
isInaccessible,
|
|
5
|
+
waitFor,
|
|
6
|
+
} from '@testing-library/react'
|
|
7
|
+
import userEvent from '@testing-library/user-event'
|
|
7
8
|
|
|
8
9
|
import { render } from '~/src/utils/testUtils'
|
|
9
10
|
|
|
10
|
-
import
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
import {
|
|
12
|
+
Tooltip,
|
|
13
|
+
TooltipProvider,
|
|
13
14
|
} from './Tooltip'
|
|
14
|
-
import
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
15
|
+
import {
|
|
16
|
+
type TooltipProps,
|
|
17
|
+
type TooltipProviderProps,
|
|
18
|
+
} from './Tooltip.types'
|
|
19
|
+
|
|
20
|
+
describe('Tooltip', () => {
|
|
21
|
+
const renderTooltip = ({
|
|
22
|
+
children,
|
|
23
|
+
...rest
|
|
24
|
+
}: TooltipProps = {}) => render(
|
|
25
|
+
<Tooltip {...rest}>
|
|
26
|
+
<button type="button">
|
|
27
|
+
Trigger
|
|
28
|
+
</button>
|
|
29
|
+
</Tooltip>,
|
|
30
|
+
)
|
|
24
31
|
|
|
25
|
-
|
|
32
|
+
let user: ReturnType<typeof userEvent.setup>
|
|
26
33
|
|
|
27
34
|
beforeEach(() => {
|
|
28
|
-
|
|
29
|
-
children: 'Text',
|
|
30
|
-
content,
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
jest.useFakeTimers()
|
|
35
|
+
user = userEvent.setup()
|
|
34
36
|
})
|
|
35
37
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
38
|
+
describe('ARIA', () => {
|
|
39
|
+
it('should be accessible', () => {
|
|
40
|
+
const { container } = renderTooltip({ defaultShow: true })
|
|
41
|
+
expect(isInaccessible(container)).toBe(false)
|
|
42
|
+
})
|
|
39
43
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
44
|
+
it('The element that serves as the tooltip container has role `tooltip`.', () => {
|
|
45
|
+
const { getByRole } = renderTooltip({ defaultShow: true })
|
|
46
|
+
expect(getByRole('tooltip')).toBeInTheDocument()
|
|
47
|
+
})
|
|
43
48
|
|
|
44
|
-
|
|
45
|
-
|
|
49
|
+
it('The element that triggers the tooltip references the tooltip element with `aria-describedby`.', () => {
|
|
50
|
+
const { getByRole } = renderTooltip({ defaultShow: true })
|
|
51
|
+
expect(getByRole('button')).toHaveAttribute('aria-describedby', getByRole('tooltip').id)
|
|
52
|
+
})
|
|
53
|
+
})
|
|
46
54
|
|
|
47
|
-
|
|
48
|
-
|
|
55
|
+
describe('User Interactions', () => {
|
|
56
|
+
it('The tooltip content should be visible when hover over the trigger.', async () => {
|
|
57
|
+
const { getByRole } = renderTooltip()
|
|
58
|
+
await user.hover(getByRole('button'))
|
|
59
|
+
expect(getByRole('tooltip')).toBeInTheDocument()
|
|
60
|
+
})
|
|
49
61
|
|
|
50
|
-
|
|
62
|
+
it('The tooltip content should be visible when the keyboard focuses on the trigger.', async () => {
|
|
63
|
+
const { getByRole } = renderTooltip()
|
|
64
|
+
await user.tab()
|
|
65
|
+
expect(getByRole('tooltip')).toBeInTheDocument()
|
|
51
66
|
})
|
|
52
67
|
|
|
53
|
-
|
|
54
|
-
|
|
68
|
+
it('When the tooltip content is visible, pressing Esc should hide the tooltip content.', async () => {
|
|
69
|
+
const { queryByRole } = renderTooltip({ defaultShow: true })
|
|
70
|
+
await user.keyboard('{Escape}')
|
|
71
|
+
expect(queryByRole('tooltip')).not.toBeInTheDocument()
|
|
72
|
+
})
|
|
55
73
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
74
|
+
it('When the `allowHover` property is true, the tooltip content should be hoverable.', async () => {
|
|
75
|
+
const { getByRole } = renderTooltip({ allowHover: true })
|
|
76
|
+
await user.hover(getByRole('button'))
|
|
77
|
+
await user.hover(getByRole('tooltip'))
|
|
78
|
+
expect(getByRole('tooltip')).toBeInTheDocument()
|
|
59
79
|
})
|
|
60
80
|
|
|
61
|
-
|
|
62
|
-
|
|
81
|
+
it('When the tooltip is visible, the `onShow` handler should be called.', async () => {
|
|
82
|
+
const onShow = jest.fn()
|
|
83
|
+
const { getByRole } = renderTooltip({ onShow })
|
|
84
|
+
await user.hover(getByRole('button'))
|
|
85
|
+
expect(onShow).toHaveBeenCalled()
|
|
86
|
+
})
|
|
63
87
|
|
|
64
|
-
|
|
88
|
+
it('When the tooltip is hidden, the `onHide` handler should be called.', async () => {
|
|
89
|
+
const onHide = jest.fn()
|
|
90
|
+
const { getByRole } = renderTooltip({ onHide })
|
|
91
|
+
await user.hover(getByRole('button'))
|
|
92
|
+
await user.unhover(getByRole('button'))
|
|
93
|
+
expect(onHide).toHaveBeenCalled()
|
|
65
94
|
})
|
|
66
95
|
|
|
67
|
-
|
|
68
|
-
|
|
96
|
+
it('If the `disabled` property is true, the tooltip should not be visible when hovering over it or with keyboard focus.', async () => {
|
|
97
|
+
const { getByRole, queryByRole } = renderTooltip({ disabled: true })
|
|
98
|
+
await user.hover(getByRole('button'))
|
|
99
|
+
expect(queryByRole('tooltip')).not.toBeInTheDocument()
|
|
100
|
+
await user.tab()
|
|
101
|
+
expect(queryByRole('tooltip')).not.toBeInTheDocument()
|
|
102
|
+
})
|
|
69
103
|
|
|
70
|
-
|
|
71
|
-
|
|
104
|
+
it('If the `delayShow` property is greater than 0, the tooltip should be delayed by that number of ms before appearing.', async () => {
|
|
105
|
+
const { getByRole, queryByRole } = renderTooltip({ delayShow: 1000 })
|
|
106
|
+
await user.hover(getByRole('button'))
|
|
107
|
+
expect(queryByRole('tooltip')).not.toBeInTheDocument()
|
|
108
|
+
await waitFor(() => {
|
|
109
|
+
expect(queryByRole('tooltip')).toBeInTheDocument()
|
|
110
|
+
}, { timeout: 1000 })
|
|
111
|
+
})
|
|
72
112
|
|
|
73
|
-
|
|
113
|
+
it('If the `delayHide` property is greater than 0, the tooltip should be delayed by that number of ms before disappearing.', async () => {
|
|
114
|
+
const { getByRole, queryByRole } = renderTooltip({ delayHide: 1000 })
|
|
115
|
+
await user.hover(getByRole('button'))
|
|
116
|
+
await user.unhover(getByRole('button'))
|
|
117
|
+
expect(queryByRole('tooltip')).toBeInTheDocument()
|
|
118
|
+
await waitFor(() => {
|
|
119
|
+
expect(queryByRole('tooltip')).not.toBeInTheDocument()
|
|
120
|
+
}, { timeout: 1000 })
|
|
121
|
+
})
|
|
74
122
|
})
|
|
123
|
+
})
|
|
75
124
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
125
|
+
describe('TooltipProvider', () => {
|
|
126
|
+
const renderTooltipProvider = ({
|
|
127
|
+
children,
|
|
128
|
+
...rest
|
|
129
|
+
}: TooltipProviderProps = {}) => render(
|
|
130
|
+
<TooltipProvider {...rest}>
|
|
131
|
+
<Tooltip>
|
|
132
|
+
<button type="button">
|
|
133
|
+
Trigger
|
|
134
|
+
</button>
|
|
135
|
+
</Tooltip>
|
|
136
|
+
</TooltipProvider>,
|
|
137
|
+
)
|
|
81
138
|
|
|
82
|
-
|
|
83
|
-
})
|
|
139
|
+
let user: ReturnType<typeof userEvent.setup>
|
|
84
140
|
|
|
85
|
-
|
|
141
|
+
beforeEach(() => {
|
|
142
|
+
user = userEvent.setup()
|
|
86
143
|
})
|
|
87
144
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
145
|
+
describe('User Interactions', () => {
|
|
146
|
+
it('If the `allowHover` property is true, the tooltip content should be hoverable.', async () => {
|
|
147
|
+
const { getByRole } = renderTooltipProvider({ allowHover: true })
|
|
148
|
+
await user.hover(getByRole('button'))
|
|
149
|
+
await user.hover(getByRole('tooltip'))
|
|
150
|
+
expect(getByRole('tooltip')).toBeInTheDocument()
|
|
151
|
+
})
|
|
93
152
|
|
|
94
|
-
|
|
153
|
+
it('If the `delayShow` property is greater than 0, the tooltip should be delayed by that number of ms before appearing.', async () => {
|
|
154
|
+
const { getByRole, queryByRole } = renderTooltipProvider({ delayShow: 1000 })
|
|
155
|
+
await user.hover(getByRole('button'))
|
|
156
|
+
expect(queryByRole('tooltip')).not.toBeInTheDocument()
|
|
157
|
+
await waitFor(() => {
|
|
158
|
+
expect(queryByRole('tooltip')).toBeInTheDocument()
|
|
159
|
+
}, { timeout: 1000 })
|
|
95
160
|
})
|
|
96
161
|
|
|
97
|
-
|
|
162
|
+
it('If the `delayHide` property is greater than 0, the tooltip should be delayed by that number of ms before disappearing.', async () => {
|
|
163
|
+
const { getByRole, queryByRole } = renderTooltipProvider({ delayHide: 1000 })
|
|
164
|
+
await user.hover(getByRole('button'))
|
|
165
|
+
await user.unhover(getByRole('button'))
|
|
166
|
+
expect(queryByRole('tooltip')).toBeInTheDocument()
|
|
167
|
+
await waitFor(() => {
|
|
168
|
+
expect(queryByRole('tooltip')).not.toBeInTheDocument()
|
|
169
|
+
}, { timeout: 1000 })
|
|
170
|
+
})
|
|
98
171
|
})
|
|
99
172
|
})
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import React, {
|
|
2
|
-
type Ref,
|
|
3
2
|
forwardRef,
|
|
4
3
|
useCallback,
|
|
5
4
|
useEffect,
|
|
@@ -8,146 +7,289 @@ import React, {
|
|
|
8
7
|
useState,
|
|
9
8
|
} from 'react'
|
|
10
9
|
|
|
11
|
-
import
|
|
12
|
-
|
|
13
|
-
import
|
|
14
|
-
import {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
contentInterpolation,
|
|
30
|
-
contentWrapperStyle,
|
|
31
|
-
content = null,
|
|
32
|
-
lazy = false, // optional prop 에서 추후 default behavior 를 lazy 하게 바꿀 예정
|
|
33
|
-
placement = TooltipPosition.BottomCenter,
|
|
34
|
-
disabled = false,
|
|
35
|
-
offset = 4,
|
|
36
|
-
keepInContainer = false,
|
|
37
|
-
allowHover = false,
|
|
38
|
-
delayShow = 0,
|
|
39
|
-
delayHide = 0,
|
|
40
|
-
children,
|
|
41
|
-
...otherProps
|
|
42
|
-
}: TooltipProps,
|
|
43
|
-
forwardedRef: Ref<any>,
|
|
10
|
+
import * as TooltipPrimitive from '@radix-ui/react-tooltip'
|
|
11
|
+
|
|
12
|
+
import { document } from '~/src/utils/domUtils'
|
|
13
|
+
import { isBoolean } from '~/src/utils/typeUtils'
|
|
14
|
+
|
|
15
|
+
import {
|
|
16
|
+
TooltipPosition,
|
|
17
|
+
type TooltipProps,
|
|
18
|
+
type TooltipProviderProps,
|
|
19
|
+
} from './Tooltip.types'
|
|
20
|
+
|
|
21
|
+
import * as Styled from './Tooltip.styled'
|
|
22
|
+
|
|
23
|
+
// TODO: (@ed) Evolve it into a commonly reusable function
|
|
24
|
+
// FIXME: duplicate
|
|
25
|
+
function createContext<ContextValue>(
|
|
26
|
+
providerName: string,
|
|
27
|
+
defaultValue: ContextValue,
|
|
44
28
|
) {
|
|
45
|
-
const
|
|
46
|
-
const [didMount, setDidMount] = useState(show)
|
|
29
|
+
const Context = React.createContext<ContextValue>(defaultValue)
|
|
47
30
|
|
|
48
|
-
|
|
49
|
-
|
|
31
|
+
function useContext(consumerName: string) {
|
|
32
|
+
const contextValue = React.useContext(Context)
|
|
50
33
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
setShow(false)
|
|
34
|
+
if (!contextValue) {
|
|
35
|
+
throw new Error(`'${consumerName}' must be used within '${providerName}'`)
|
|
54
36
|
}
|
|
55
|
-
}, [disabled])
|
|
56
37
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
38
|
+
return contextValue
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
return [
|
|
42
|
+
Context.Provider,
|
|
43
|
+
useContext,
|
|
44
|
+
] as const
|
|
45
|
+
}
|
|
60
46
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
47
|
+
function getSideAndAlign(
|
|
48
|
+
placement: TooltipPosition,
|
|
49
|
+
): Pick<TooltipPrimitive.TooltipContentProps, 'side' | 'align'> {
|
|
50
|
+
switch (placement) {
|
|
51
|
+
case TooltipPosition.TopCenter:
|
|
52
|
+
return {
|
|
53
|
+
side: 'top',
|
|
54
|
+
align: 'center',
|
|
55
|
+
}
|
|
56
|
+
case TooltipPosition.TopLeft:
|
|
57
|
+
return {
|
|
58
|
+
side: 'top',
|
|
59
|
+
align: 'start',
|
|
60
|
+
}
|
|
61
|
+
case TooltipPosition.TopRight:
|
|
62
|
+
return {
|
|
63
|
+
side: 'top',
|
|
64
|
+
align: 'end',
|
|
65
|
+
}
|
|
66
|
+
case TooltipPosition.RightCenter:
|
|
67
|
+
return {
|
|
68
|
+
side: 'right',
|
|
69
|
+
align: 'center',
|
|
70
|
+
}
|
|
71
|
+
case TooltipPosition.RightTop:
|
|
72
|
+
return {
|
|
73
|
+
side: 'right',
|
|
74
|
+
align: 'start',
|
|
75
|
+
}
|
|
76
|
+
case TooltipPosition.RightBottom:
|
|
77
|
+
return {
|
|
78
|
+
side: 'right',
|
|
79
|
+
align: 'end',
|
|
80
|
+
}
|
|
81
|
+
case TooltipPosition.BottomCenter:
|
|
82
|
+
return {
|
|
83
|
+
side: 'bottom',
|
|
84
|
+
align: 'center',
|
|
85
|
+
}
|
|
86
|
+
case TooltipPosition.BottomLeft:
|
|
87
|
+
return {
|
|
88
|
+
side: 'bottom',
|
|
89
|
+
align: 'start',
|
|
90
|
+
}
|
|
91
|
+
case TooltipPosition.BottomRight:
|
|
92
|
+
return {
|
|
93
|
+
side: 'bottom',
|
|
94
|
+
align: 'end',
|
|
95
|
+
}
|
|
96
|
+
case TooltipPosition.LeftCenter:
|
|
97
|
+
return {
|
|
98
|
+
side: 'left',
|
|
99
|
+
align: 'center',
|
|
100
|
+
}
|
|
101
|
+
case TooltipPosition.LeftTop:
|
|
102
|
+
return {
|
|
103
|
+
side: 'left',
|
|
104
|
+
align: 'start',
|
|
105
|
+
}
|
|
106
|
+
case TooltipPosition.LeftBottom:
|
|
107
|
+
return {
|
|
108
|
+
side: 'left',
|
|
109
|
+
align: 'end',
|
|
110
|
+
}
|
|
111
|
+
default:
|
|
112
|
+
// NOTE: should not reach here
|
|
113
|
+
return {
|
|
114
|
+
side: undefined,
|
|
115
|
+
align: undefined,
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
const [
|
|
121
|
+
/**
|
|
122
|
+
* NOTE: Custom context use because the radix-ui doesn't support `delayHide`.
|
|
123
|
+
*/
|
|
124
|
+
TooltipGlobalContextProvider,
|
|
125
|
+
useTooltipGlobalContext,
|
|
126
|
+
] = createContext<Required<Pick<TooltipProviderProps, 'delayHide'>> | null>('TooltipProvider', null)
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* `TooltipProvider` is used to globally provide props to child tooltips.
|
|
130
|
+
*
|
|
131
|
+
* @example
|
|
132
|
+
*
|
|
133
|
+
* ```tsx
|
|
134
|
+
* <TooltipProvider allowHover delayShow={1000}>
|
|
135
|
+
* <Tooltip />
|
|
136
|
+
* </TooltipProvider>
|
|
137
|
+
* ```
|
|
138
|
+
*/
|
|
139
|
+
export function TooltipProvider({
|
|
140
|
+
children,
|
|
141
|
+
allowHover = false,
|
|
142
|
+
delayShow = 0,
|
|
143
|
+
delayHide = 0,
|
|
144
|
+
skipDelayShow = 0,
|
|
145
|
+
}: TooltipProviderProps) {
|
|
146
|
+
const contextValue = useMemo(() => ({
|
|
147
|
+
delayHide,
|
|
148
|
+
}), [delayHide])
|
|
149
|
+
|
|
150
|
+
return (
|
|
151
|
+
<TooltipPrimitive.Provider
|
|
152
|
+
delayDuration={delayShow}
|
|
153
|
+
skipDelayDuration={skipDelayShow}
|
|
154
|
+
disableHoverableContent={!allowHover}
|
|
155
|
+
>
|
|
156
|
+
<TooltipGlobalContextProvider value={contextValue}>
|
|
157
|
+
{ children }
|
|
158
|
+
</TooltipGlobalContextProvider>
|
|
159
|
+
</TooltipPrimitive.Provider>
|
|
160
|
+
)
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* `Tooltip` is a component that shows additional information when the mouse hovers or the keyboard is focused.
|
|
165
|
+
*
|
|
166
|
+
* @example
|
|
167
|
+
*
|
|
168
|
+
* ```tsx
|
|
169
|
+
* // Anatomy of the Tooltip
|
|
170
|
+
* <TooltipProvider>
|
|
171
|
+
* <Tooltip />
|
|
172
|
+
* </TooltipProvider>
|
|
173
|
+
*
|
|
174
|
+
* // Example of a Tooltip with a button
|
|
175
|
+
* <Tooltip content="Ta-da!">
|
|
176
|
+
* <button>Hover me</button>
|
|
177
|
+
* </Tooltip>
|
|
178
|
+
* ```
|
|
179
|
+
*/
|
|
180
|
+
export const Tooltip = forwardRef<HTMLDivElement, TooltipProps>(function Tooltip({
|
|
181
|
+
as,
|
|
182
|
+
children,
|
|
183
|
+
defaultShow,
|
|
184
|
+
onShow: onShowProp,
|
|
185
|
+
onHide: onHideProp,
|
|
186
|
+
disabled,
|
|
187
|
+
content,
|
|
188
|
+
description,
|
|
189
|
+
icon,
|
|
190
|
+
placement = TooltipPosition.BottomCenter,
|
|
191
|
+
offset = 4,
|
|
192
|
+
container = document.body,
|
|
193
|
+
keepInContainer = true,
|
|
194
|
+
allowHover,
|
|
195
|
+
delayShow,
|
|
196
|
+
delayHide: delayHideProp,
|
|
197
|
+
...rest
|
|
198
|
+
}, forwardedRef) {
|
|
199
|
+
const [show, setShow] = useState<boolean>(defaultShow ?? false)
|
|
200
|
+
const timeoutRef = useRef<NodeJS.Timeout>()
|
|
201
|
+
const { delayHide: globalDelayHide } = useTooltipGlobalContext('Tooltip')
|
|
65
202
|
|
|
66
|
-
|
|
67
|
-
|
|
203
|
+
const delayHide = delayHideProp ?? globalDelayHide
|
|
204
|
+
|
|
205
|
+
useEffect(function cleanUpTimeout() {
|
|
206
|
+
return function cleanUp() {
|
|
207
|
+
if (timeoutRef.current) {
|
|
208
|
+
clearTimeout(timeoutRef.current)
|
|
209
|
+
}
|
|
68
210
|
}
|
|
211
|
+
}, [])
|
|
69
212
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
}, [
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
213
|
+
const onShow = useCallback(() => {
|
|
214
|
+
setShow(true)
|
|
215
|
+
onShowProp?.()
|
|
216
|
+
}, [onShowProp])
|
|
217
|
+
|
|
218
|
+
const onHide = useCallback(() => {
|
|
219
|
+
setShow(false)
|
|
220
|
+
onHideProp?.()
|
|
221
|
+
}, [onHideProp])
|
|
77
222
|
|
|
78
|
-
const
|
|
79
|
-
if (disabled) {
|
|
223
|
+
const onOpenChange = useCallback((open: boolean) => {
|
|
224
|
+
if (disabled) { return }
|
|
225
|
+
|
|
226
|
+
if (open) {
|
|
227
|
+
onShow()
|
|
80
228
|
return
|
|
81
229
|
}
|
|
82
230
|
|
|
83
|
-
if (
|
|
84
|
-
clearTimeout(
|
|
231
|
+
if (timeoutRef.current) {
|
|
232
|
+
clearTimeout(timeoutRef.current)
|
|
233
|
+
timeoutRef.current = undefined
|
|
85
234
|
}
|
|
86
235
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
disabled,
|
|
93
|
-
])
|
|
94
|
-
|
|
95
|
-
const TooltipComponent = useMemo(() => {
|
|
96
|
-
if (!lazy || didMount) {
|
|
97
|
-
return (
|
|
98
|
-
<TooltipContent
|
|
99
|
-
as={as}
|
|
100
|
-
content={content}
|
|
101
|
-
contentClassName={contentClassName}
|
|
102
|
-
contentInterpolation={contentInterpolation}
|
|
103
|
-
contentWrapperStyle={contentWrapperStyle}
|
|
104
|
-
disabled={disabled}
|
|
105
|
-
placement={placement}
|
|
106
|
-
offset={offset}
|
|
107
|
-
allowHover={allowHover}
|
|
108
|
-
keepInContainer={keepInContainer}
|
|
109
|
-
tooltipContainer={tooltipContainerRef.current}
|
|
110
|
-
forwardedRef={forwardedRef}
|
|
111
|
-
testId={contentTestId}
|
|
112
|
-
/>
|
|
113
|
-
)
|
|
236
|
+
if (delayHide > 0) {
|
|
237
|
+
timeoutRef.current = setTimeout(() => {
|
|
238
|
+
onHide()
|
|
239
|
+
}, delayHide)
|
|
240
|
+
return
|
|
114
241
|
}
|
|
115
242
|
|
|
116
|
-
|
|
243
|
+
onHide()
|
|
117
244
|
}, [
|
|
118
|
-
lazy,
|
|
119
|
-
didMount,
|
|
120
|
-
as,
|
|
121
|
-
content,
|
|
122
|
-
contentClassName,
|
|
123
|
-
contentInterpolation,
|
|
124
|
-
contentWrapperStyle,
|
|
125
245
|
disabled,
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
keepInContainer,
|
|
130
|
-
forwardedRef,
|
|
131
|
-
contentTestId,
|
|
246
|
+
delayHide,
|
|
247
|
+
onShow,
|
|
248
|
+
onHide,
|
|
132
249
|
])
|
|
133
250
|
|
|
134
|
-
if (!children) {
|
|
135
|
-
return null
|
|
136
|
-
}
|
|
137
|
-
|
|
138
251
|
return (
|
|
139
|
-
<
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
{...otherProps}
|
|
252
|
+
<TooltipPrimitive.Root
|
|
253
|
+
open={show}
|
|
254
|
+
defaultOpen={defaultShow}
|
|
255
|
+
delayDuration={delayShow}
|
|
256
|
+
disableHoverableContent={isBoolean(allowHover) ? !allowHover : undefined}
|
|
257
|
+
onOpenChange={onOpenChange}
|
|
146
258
|
>
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
}
|
|
259
|
+
<TooltipPrimitive.Trigger asChild>
|
|
260
|
+
{ children }
|
|
261
|
+
</TooltipPrimitive.Trigger>
|
|
262
|
+
|
|
263
|
+
<TooltipPrimitive.Portal container={container}>
|
|
264
|
+
<TooltipPrimitive.Content
|
|
265
|
+
{...rest}
|
|
266
|
+
{...getSideAndAlign(placement)}
|
|
267
|
+
asChild
|
|
268
|
+
ref={forwardedRef}
|
|
269
|
+
sideOffset={offset}
|
|
270
|
+
avoidCollisions={keepInContainer}
|
|
271
|
+
collisionPadding={8}
|
|
272
|
+
hideWhenDetached
|
|
273
|
+
>
|
|
274
|
+
<Styled.TooltipContent forwardedAs={as}>
|
|
275
|
+
<Styled.TextContainer>
|
|
276
|
+
<Styled.Content>
|
|
277
|
+
{ content }
|
|
278
|
+
</Styled.Content>
|
|
152
279
|
|
|
153
|
-
|
|
280
|
+
{ description && (
|
|
281
|
+
<Styled.Description>
|
|
282
|
+
{ description }
|
|
283
|
+
</Styled.Description>
|
|
284
|
+
) }
|
|
285
|
+
</Styled.TextContainer>
|
|
286
|
+
|
|
287
|
+
{ icon && (
|
|
288
|
+
<Styled.Icon source={icon} />
|
|
289
|
+
) }
|
|
290
|
+
</Styled.TooltipContent>
|
|
291
|
+
</TooltipPrimitive.Content>
|
|
292
|
+
</TooltipPrimitive.Portal>
|
|
293
|
+
</TooltipPrimitive.Root>
|
|
294
|
+
)
|
|
295
|
+
})
|