diff --git a/components/Tooltip/Tooltip.stories.tsx b/components/Tooltip/Tooltip.stories.tsx index a22f4229..d5566da0 100644 --- a/components/Tooltip/Tooltip.stories.tsx +++ b/components/Tooltip/Tooltip.stories.tsx @@ -3,6 +3,7 @@ import { Meta, StoryFn } from '@storybook/react'; import React from 'react'; import { modifyVariantsForStory } from '../../utils/modifyVariantsForStory'; +import { Bubble as BubbleComponent } from '../Bubble'; import { Container } from '../Container'; import { Flex } from '../Flex'; import { Text } from '../Text'; @@ -75,4 +76,10 @@ NodeContent.argTypes = { }, }; +export const Bubble: StoryFn = (args) => ( + + + +); + export default Component; diff --git a/components/Tooltip/Tooltip.tsx b/components/Tooltip/Tooltip.tsx index c62fda1b..d7676da3 100644 --- a/components/Tooltip/Tooltip.tsx +++ b/components/Tooltip/Tooltip.tsx @@ -33,10 +33,21 @@ const ArrowBox = styled(Box, { color: '$tooltipContentBg', }); -export const TooltipContent = ({ css, multiline, children, ...props }: Partial) => { +export const TooltipContent = React.forwardRef< + React.ElementRef, + Partial +>(({ css, multiline, children, ...props }, forwardedRef) => { const isContentString = React.useMemo(() => typeof children === 'string', [children]); return ( - + {isContentString ? ( ); -}; +}); -export function Tooltip({ - children, - content, - open, - defaultOpen, - onOpenChange, - multiline, - css, - ...props -}: TooltipProps) { - return ( +export const Tooltip = React.forwardRef, TooltipProps>( + ( + { children, content, open, defaultOpen, onOpenChange, multiline, css, ...props }, + forwardedRef, + ) => ( {children} - + {content} - ); -} + ), +); export const TooltipRoot = TooltipPrimitive.Root; export const TooltipTrigger = TooltipPrimitive.Trigger; diff --git a/package.json b/package.json index ef8d1e78..20af68d2 100644 --- a/package.json +++ b/package.json @@ -81,7 +81,7 @@ "@radix-ui/react-tabs": "^1.0.1", "@radix-ui/react-toggle": "^1.0.1", "@radix-ui/react-toggle-group": "^1.0.1", - "@radix-ui/react-tooltip": "^1.0.7", + "@radix-ui/react-tooltip": "^1.1.6", "@radix-ui/react-use-layout-effect": "^1.0.0", "@radix-ui/react-visually-hidden": "^1.0.1", "@rehookify/datepicker": "^6.6.7", diff --git a/yarn.lock b/yarn.lock index 8bbe7576..d1de5b4e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3998,6 +3998,13 @@ __metadata: languageName: node linkType: hard +"@radix-ui/primitive@npm:1.1.1": + version: 1.1.1 + resolution: "@radix-ui/primitive@npm:1.1.1" + checksum: 10c0/6457bd8d1aa4ecb948e5d2a2484fc570698b2ab472db6d915a8f1eec04823f80423efa60b5ba840f0693bec2ca380333cc5f3b52586b40f407d9f572f9261f8d + languageName: node + linkType: hard + "@radix-ui/react-accessible-icon@npm:^1.0.3": version: 1.0.3 resolution: "@radix-ui/react-accessible-icon@npm:1.0.3" @@ -4109,6 +4116,25 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-arrow@npm:1.1.1": + version: 1.1.1 + resolution: "@radix-ui/react-arrow@npm:1.1.1" + dependencies: + "@radix-ui/react-primitive": "npm:2.0.1" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/714c8420ee4497775a1119ceba1391a9e4fed07185ba903ade571251400fd25cedb7bebf2292ce778e74956dfa079078b2afbb67d12001c6ea5080997bcf3612 + languageName: node + linkType: hard + "@radix-ui/react-aspect-ratio@npm:^1.0.1": version: 1.0.3 resolution: "@radix-ui/react-aspect-ratio@npm:1.0.3" @@ -4278,6 +4304,19 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-compose-refs@npm:1.1.1": + version: 1.1.1 + resolution: "@radix-ui/react-compose-refs@npm:1.1.1" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/3e84580024e66e3cc5b9ae79355e787815c1d2a3c7d46e7f47900a29c33751ca24cf4ac8903314957ab1f7788aebe1687e2258641c188cf94653f7ddf8f70627 + languageName: node + linkType: hard + "@radix-ui/react-context-menu@npm:^2.0.1": version: 2.1.5 resolution: "@radix-ui/react-context-menu@npm:2.1.5" @@ -4475,6 +4514,29 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-dismissable-layer@npm:1.1.3": + version: 1.1.3 + resolution: "@radix-ui/react-dismissable-layer@npm:1.1.3" + dependencies: + "@radix-ui/primitive": "npm:1.1.1" + "@radix-ui/react-compose-refs": "npm:1.1.1" + "@radix-ui/react-primitive": "npm:2.0.1" + "@radix-ui/react-use-callback-ref": "npm:1.1.0" + "@radix-ui/react-use-escape-keydown": "npm:1.1.0" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/1ab2ebddf3d450bf4efb1e846894824a0056d3fa3deec0858206bc7547857fe5fe37e42f0a34918072702ead6dedc388a5770c060b2596cd408e20db86c54253 + languageName: node + linkType: hard + "@radix-ui/react-dropdown-menu@npm:^2.0.1": version: 2.0.6 resolution: "@radix-ui/react-dropdown-menu@npm:2.0.6" @@ -4791,6 +4853,34 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-popper@npm:1.2.1": + version: 1.2.1 + resolution: "@radix-ui/react-popper@npm:1.2.1" + dependencies: + "@floating-ui/react-dom": "npm:^2.0.0" + "@radix-ui/react-arrow": "npm:1.1.1" + "@radix-ui/react-compose-refs": "npm:1.1.1" + "@radix-ui/react-context": "npm:1.1.1" + "@radix-ui/react-primitive": "npm:2.0.1" + "@radix-ui/react-use-callback-ref": "npm:1.1.0" + "@radix-ui/react-use-layout-effect": "npm:1.1.0" + "@radix-ui/react-use-rect": "npm:1.1.0" + "@radix-ui/react-use-size": "npm:1.1.0" + "@radix-ui/rect": "npm:1.1.0" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/514468b51e66ff2da3400fa782f4b52f9bad60517e3047cccf56488aa17a3c3f62ff2650b0216be31345dc3be6035999c7160788c92e35c7f8d53ddde2fb92f1 + languageName: node + linkType: hard + "@radix-ui/react-portal@npm:1.0.4, @radix-ui/react-portal@npm:^1.0.1": version: 1.0.4 resolution: "@radix-ui/react-portal@npm:1.0.4" @@ -4831,6 +4921,26 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-portal@npm:1.1.3": + version: 1.1.3 + resolution: "@radix-ui/react-portal@npm:1.1.3" + dependencies: + "@radix-ui/react-primitive": "npm:2.0.1" + "@radix-ui/react-use-layout-effect": "npm:1.1.0" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/b3cd1a81513e528d261599cffda8d7d6094a8598750eaa32bac0d64dbc9a3b4d4e1c10f5bdadf7051b5fd77033b759dbeb4838dae325b94bf8251804c61508c5 + languageName: node + linkType: hard + "@radix-ui/react-presence@npm:1.0.1": version: 1.0.1 resolution: "@radix-ui/react-presence@npm:1.0.1" @@ -4892,6 +5002,26 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-presence@npm:1.1.2": + version: 1.1.2 + resolution: "@radix-ui/react-presence@npm:1.1.2" + dependencies: + "@radix-ui/react-compose-refs": "npm:1.1.1" + "@radix-ui/react-use-layout-effect": "npm:1.1.0" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/0c6fa281368636308044df3be4c1f02733094b5e35ba04f26e610dd1c4315a245ffc758e0e176c444742a7a46f4328af1a9d8181e860175ec39338d06525a78d + languageName: node + linkType: hard + "@radix-ui/react-primitive@npm:1.0.3": version: 1.0.3 resolution: "@radix-ui/react-primitive@npm:1.0.3" @@ -4931,6 +5061,25 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-primitive@npm:2.0.1": + version: 2.0.1 + resolution: "@radix-ui/react-primitive@npm:2.0.1" + dependencies: + "@radix-ui/react-slot": "npm:1.1.1" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/6a562bec14f8e9fbfe0012d6c2932b0e54518fed898fa0622300c463611e77a4ca28a969f0cd484efd6570c01c5665dd6151f736262317d01715bc4da1a7dea6 + languageName: node + linkType: hard + "@radix-ui/react-progress@npm:^1.0.1": version: 1.0.3 resolution: "@radix-ui/react-progress@npm:1.0.3" @@ -5090,6 +5239,21 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-slot@npm:1.1.1": + version: 1.1.1 + resolution: "@radix-ui/react-slot@npm:1.1.1" + dependencies: + "@radix-ui/react-compose-refs": "npm:1.1.1" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/f3cc71c16529c67a8407a89e0ac13a868cafa0cd05ca185b464db609aa5996a3f00588695518e420bd47ffdb4cc2f76c14cc12ea5a38fc2ca3578a30d2ca58b9 + languageName: node + linkType: hard + "@radix-ui/react-switch@npm:^1.0.1": version: 1.0.3 resolution: "@radix-ui/react-switch@npm:1.0.3" @@ -5191,34 +5355,33 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-tooltip@npm:^1.0.7": - version: 1.0.7 - resolution: "@radix-ui/react-tooltip@npm:1.0.7" +"@radix-ui/react-tooltip@npm:^1.1.6": + version: 1.1.6 + resolution: "@radix-ui/react-tooltip@npm:1.1.6" dependencies: - "@babel/runtime": "npm:^7.13.10" - "@radix-ui/primitive": "npm:1.0.1" - "@radix-ui/react-compose-refs": "npm:1.0.1" - "@radix-ui/react-context": "npm:1.0.1" - "@radix-ui/react-dismissable-layer": "npm:1.0.5" - "@radix-ui/react-id": "npm:1.0.1" - "@radix-ui/react-popper": "npm:1.1.3" - "@radix-ui/react-portal": "npm:1.0.4" - "@radix-ui/react-presence": "npm:1.0.1" - "@radix-ui/react-primitive": "npm:1.0.3" - "@radix-ui/react-slot": "npm:1.0.2" - "@radix-ui/react-use-controllable-state": "npm:1.0.1" - "@radix-ui/react-visually-hidden": "npm:1.0.3" + "@radix-ui/primitive": "npm:1.1.1" + "@radix-ui/react-compose-refs": "npm:1.1.1" + "@radix-ui/react-context": "npm:1.1.1" + "@radix-ui/react-dismissable-layer": "npm:1.1.3" + "@radix-ui/react-id": "npm:1.1.0" + "@radix-ui/react-popper": "npm:1.2.1" + "@radix-ui/react-portal": "npm:1.1.3" + "@radix-ui/react-presence": "npm:1.1.2" + "@radix-ui/react-primitive": "npm:2.0.1" + "@radix-ui/react-slot": "npm:1.1.1" + "@radix-ui/react-use-controllable-state": "npm:1.1.0" + "@radix-ui/react-visually-hidden": "npm:1.1.1" peerDependencies: "@types/react": "*" "@types/react-dom": "*" - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: "@types/react": optional: true "@types/react-dom": optional: true - checksum: 10c0/915524ea9d102eb26e656c550a084ca460219041c0e7cec0e72b522ee52a43b4d725f4ad3352212f4ae88b3672ef7b23bad07844275cafea075ada590678d873 + checksum: 10c0/6e2e83b2ef448bcc486e8f73bfd303b18b723f86239f40f5e06cf930f074494f6fefb1a48bcaf24b215ec7bd7f87f6884d1ef9394cddcf50d1b30e26f9e15093 languageName: node linkType: hard @@ -5469,6 +5632,25 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-visually-hidden@npm:1.1.1": + version: 1.1.1 + resolution: "@radix-ui/react-visually-hidden@npm:1.1.1" + dependencies: + "@radix-ui/react-primitive": "npm:2.0.1" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/9a34b8e09dc79983626194fdfb4bd24c79060034a226153a2bd9f726f056139316e7a6360583567c6ccd5d9589e6d230fe2c436abea455f73e2d27b73412c412 + languageName: node + linkType: hard + "@radix-ui/rect@npm:1.0.1": version: 1.0.1 resolution: "@radix-ui/rect@npm:1.0.1" @@ -6411,7 +6593,7 @@ __metadata: "@radix-ui/react-tabs": "npm:^1.0.1" "@radix-ui/react-toggle": "npm:^1.0.1" "@radix-ui/react-toggle-group": "npm:^1.0.1" - "@radix-ui/react-tooltip": "npm:^1.0.7" + "@radix-ui/react-tooltip": "npm:^1.1.6" "@radix-ui/react-use-layout-effect": "npm:^1.0.0" "@radix-ui/react-visually-hidden": "npm:^1.0.1" "@rehookify/datepicker": "npm:^6.6.7"