@fluentui/react-tooltip 9.2.3 → 9.2.5
Sign up to get free protection for your applications and to get access to all the features.
- package/.swcrc +30 -0
- package/CHANGELOG.json +91 -1
- package/CHANGELOG.md +30 -2
- package/lib/Tooltip.js.map +1 -1
- package/lib/components/Tooltip/Tooltip.js +1 -0
- package/lib/components/Tooltip/Tooltip.js.map +1 -1
- package/lib/components/Tooltip/Tooltip.types.js +1 -1
- package/lib/components/Tooltip/Tooltip.types.js.map +1 -1
- package/lib/components/Tooltip/index.js.map +1 -1
- package/lib/components/Tooltip/private/constants.js +1 -2
- package/lib/components/Tooltip/private/constants.js.map +1 -1
- package/lib/components/Tooltip/renderTooltip.js +1 -3
- package/lib/components/Tooltip/renderTooltip.js.map +1 -1
- package/lib/components/Tooltip/useTooltip.js +7 -7
- package/lib/components/Tooltip/useTooltip.js.map +1 -1
- package/lib/components/Tooltip/useTooltipStyles.js.map +1 -1
- package/lib/index.js.map +1 -1
- package/lib-commonjs/Tooltip.js +5 -4
- package/lib-commonjs/Tooltip.js.map +1 -1
- package/lib-commonjs/components/Tooltip/Tooltip.js +20 -21
- package/lib-commonjs/components/Tooltip/Tooltip.js.map +1 -1
- package/lib-commonjs/components/Tooltip/Tooltip.types.js +5 -2
- package/lib-commonjs/components/Tooltip/Tooltip.types.js.map +1 -1
- package/lib-commonjs/components/Tooltip/index.js +9 -8
- package/lib-commonjs/components/Tooltip/index.js.map +1 -1
- package/lib-commonjs/components/Tooltip/private/constants.js +17 -16
- package/lib-commonjs/components/Tooltip/private/constants.js.map +1 -1
- package/lib-commonjs/components/Tooltip/renderTooltip.js +19 -24
- package/lib-commonjs/components/Tooltip/renderTooltip.js.map +1 -1
- package/lib-commonjs/components/Tooltip/useTooltip.js +191 -194
- package/lib-commonjs/components/Tooltip/useTooltip.js.map +1 -1
- package/lib-commonjs/components/Tooltip/useTooltipStyles.js +200 -92
- package/lib-commonjs/components/Tooltip/useTooltipStyles.js.map +1 -1
- package/lib-commonjs/index.js +16 -33
- package/lib-commonjs/index.js.map +1 -1
- package/package.json +11 -10
- package/lib-amd/Tooltip.js +0 -6
- package/lib-amd/Tooltip.js.map +0 -1
- package/lib-amd/components/Tooltip/Tooltip.js +0 -20
- package/lib-amd/components/Tooltip/Tooltip.js.map +0 -1
- package/lib-amd/components/Tooltip/Tooltip.types.js +0 -5
- package/lib-amd/components/Tooltip/Tooltip.types.js.map +0 -1
- package/lib-amd/components/Tooltip/index.js +0 -10
- package/lib-amd/components/Tooltip/index.js.map +0 -1
- package/lib-amd/components/Tooltip/private/constants.js +0 -18
- package/lib-amd/components/Tooltip/private/constants.js.map +0 -1
- package/lib-amd/components/Tooltip/renderTooltip.js +0 -19
- package/lib-amd/components/Tooltip/renderTooltip.js.map +0 -1
- package/lib-amd/components/Tooltip/useTooltip.js +0 -158
- package/lib-amd/components/Tooltip/useTooltip.js.map +0 -1
- package/lib-amd/components/Tooltip/useTooltipStyles.js +0 -36
- package/lib-amd/components/Tooltip/useTooltipStyles.js.map +0 -1
- package/lib-amd/index.js +0 -11
- package/lib-amd/index.js.map +0 -1
package/.swcrc
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
{
|
2
|
+
"$schema": "https://json.schemastore.org/swcrc",
|
3
|
+
"exclude": [
|
4
|
+
"/testing",
|
5
|
+
"/**/*.cy.ts",
|
6
|
+
"/**/*.cy.tsx",
|
7
|
+
"/**/*.spec.ts",
|
8
|
+
"/**/*.spec.tsx",
|
9
|
+
"/**/*.test.ts",
|
10
|
+
"/**/*.test.tsx"
|
11
|
+
],
|
12
|
+
"jsc": {
|
13
|
+
"parser": {
|
14
|
+
"syntax": "typescript",
|
15
|
+
"tsx": true,
|
16
|
+
"decorators": false,
|
17
|
+
"dynamicImport": false
|
18
|
+
},
|
19
|
+
"externalHelpers": true,
|
20
|
+
"transform": {
|
21
|
+
"react": {
|
22
|
+
"runtime": "classic",
|
23
|
+
"useSpread": true
|
24
|
+
}
|
25
|
+
},
|
26
|
+
"target": "es2019"
|
27
|
+
},
|
28
|
+
"minify": false,
|
29
|
+
"sourceMaps": true
|
30
|
+
}
|
package/CHANGELOG.json
CHANGED
@@ -2,7 +2,97 @@
|
|
2
2
|
"name": "@fluentui/react-tooltip",
|
3
3
|
"entries": [
|
4
4
|
{
|
5
|
-
"date": "
|
5
|
+
"date": "Tue, 21 Mar 2023 21:18:26 GMT",
|
6
|
+
"tag": "@fluentui/react-tooltip_v9.2.5",
|
7
|
+
"version": "9.2.5",
|
8
|
+
"comments": {
|
9
|
+
"patch": [
|
10
|
+
{
|
11
|
+
"author": "tristan.watanabe@gmail.com",
|
12
|
+
"package": "@fluentui/react-tooltip",
|
13
|
+
"commit": "ead1c6d4c2ac3f3596b62b8cbc07b0a03041f11f",
|
14
|
+
"comment": "fix: add node field to package.json exports map."
|
15
|
+
},
|
16
|
+
{
|
17
|
+
"author": "tristan.watanabe@gmail.com",
|
18
|
+
"package": "@fluentui/react-tooltip",
|
19
|
+
"commit": "2fac1a139149bd13b76b1306207bc988dca9c72c",
|
20
|
+
"comment": "chore: migrate to swc transpilation approach."
|
21
|
+
},
|
22
|
+
{
|
23
|
+
"author": "beachball",
|
24
|
+
"package": "@fluentui/react-tooltip",
|
25
|
+
"comment": "Bump @fluentui/keyboard-keys to v9.0.2",
|
26
|
+
"commit": "b7a26f6263c80e3253c6b8338c33b73bae33e2b5"
|
27
|
+
},
|
28
|
+
{
|
29
|
+
"author": "beachball",
|
30
|
+
"package": "@fluentui/react-tooltip",
|
31
|
+
"comment": "Bump @fluentui/react-portal to v9.2.2",
|
32
|
+
"commit": "b7a26f6263c80e3253c6b8338c33b73bae33e2b5"
|
33
|
+
},
|
34
|
+
{
|
35
|
+
"author": "beachball",
|
36
|
+
"package": "@fluentui/react-tooltip",
|
37
|
+
"comment": "Bump @fluentui/react-positioning to v9.5.6",
|
38
|
+
"commit": "b7a26f6263c80e3253c6b8338c33b73bae33e2b5"
|
39
|
+
},
|
40
|
+
{
|
41
|
+
"author": "beachball",
|
42
|
+
"package": "@fluentui/react-tooltip",
|
43
|
+
"comment": "Bump @fluentui/react-shared-contexts to v9.3.2",
|
44
|
+
"commit": "b7a26f6263c80e3253c6b8338c33b73bae33e2b5"
|
45
|
+
},
|
46
|
+
{
|
47
|
+
"author": "beachball",
|
48
|
+
"package": "@fluentui/react-tooltip",
|
49
|
+
"comment": "Bump @fluentui/react-theme to v9.1.7",
|
50
|
+
"commit": "b7a26f6263c80e3253c6b8338c33b73bae33e2b5"
|
51
|
+
},
|
52
|
+
{
|
53
|
+
"author": "beachball",
|
54
|
+
"package": "@fluentui/react-tooltip",
|
55
|
+
"comment": "Bump @fluentui/react-utilities to v9.7.2",
|
56
|
+
"commit": "b7a26f6263c80e3253c6b8338c33b73bae33e2b5"
|
57
|
+
},
|
58
|
+
{
|
59
|
+
"author": "beachball",
|
60
|
+
"package": "@fluentui/react-tooltip",
|
61
|
+
"comment": "Bump @fluentui/react-conformance-griffel to v9.0.0-beta.20",
|
62
|
+
"commit": "b7a26f6263c80e3253c6b8338c33b73bae33e2b5"
|
63
|
+
}
|
64
|
+
]
|
65
|
+
}
|
66
|
+
},
|
67
|
+
{
|
68
|
+
"date": "Thu, 16 Mar 2023 14:36:59 GMT",
|
69
|
+
"tag": "@fluentui/react-tooltip_v9.2.4",
|
70
|
+
"version": "9.2.4",
|
71
|
+
"comments": {
|
72
|
+
"patch": [
|
73
|
+
{
|
74
|
+
"author": "beachball",
|
75
|
+
"package": "@fluentui/react-tooltip",
|
76
|
+
"comment": "Bump @fluentui/react-portal to v9.2.1",
|
77
|
+
"commit": "e7dcadf7cabae6bc6811ca04a630e7d850388f81"
|
78
|
+
},
|
79
|
+
{
|
80
|
+
"author": "beachball",
|
81
|
+
"package": "@fluentui/react-tooltip",
|
82
|
+
"comment": "Bump @fluentui/react-positioning to v9.5.5",
|
83
|
+
"commit": "e7dcadf7cabae6bc6811ca04a630e7d850388f81"
|
84
|
+
},
|
85
|
+
{
|
86
|
+
"author": "beachball",
|
87
|
+
"package": "@fluentui/react-tooltip",
|
88
|
+
"comment": "Bump @fluentui/react-utilities to v9.7.1",
|
89
|
+
"commit": "e7dcadf7cabae6bc6811ca04a630e7d850388f81"
|
90
|
+
}
|
91
|
+
]
|
92
|
+
}
|
93
|
+
},
|
94
|
+
{
|
95
|
+
"date": "Wed, 15 Mar 2023 10:19:53 GMT",
|
6
96
|
"tag": "@fluentui/react-tooltip_v9.2.3",
|
7
97
|
"version": "9.2.3",
|
8
98
|
"comments": {
|
package/CHANGELOG.md
CHANGED
@@ -1,12 +1,40 @@
|
|
1
1
|
# Change Log - @fluentui/react-tooltip
|
2
2
|
|
3
|
-
This log was last generated on
|
3
|
+
This log was last generated on Tue, 21 Mar 2023 21:18:26 GMT and should not be manually modified.
|
4
4
|
|
5
5
|
<!-- Start content -->
|
6
6
|
|
7
|
+
## [9.2.5](https://github.com/microsoft/fluentui/tree/@fluentui/react-tooltip_v9.2.5)
|
8
|
+
|
9
|
+
Tue, 21 Mar 2023 21:18:26 GMT
|
10
|
+
[Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tooltip_v9.2.4..@fluentui/react-tooltip_v9.2.5)
|
11
|
+
|
12
|
+
### Patches
|
13
|
+
|
14
|
+
- fix: add node field to package.json exports map. ([PR #27154](https://github.com/microsoft/fluentui/pull/27154) by tristan.watanabe@gmail.com)
|
15
|
+
- chore: migrate to swc transpilation approach. ([PR #27250](https://github.com/microsoft/fluentui/pull/27250) by tristan.watanabe@gmail.com)
|
16
|
+
- Bump @fluentui/keyboard-keys to v9.0.2 ([PR #27271](https://github.com/microsoft/fluentui/pull/27271) by beachball)
|
17
|
+
- Bump @fluentui/react-portal to v9.2.2 ([PR #27271](https://github.com/microsoft/fluentui/pull/27271) by beachball)
|
18
|
+
- Bump @fluentui/react-positioning to v9.5.6 ([PR #27271](https://github.com/microsoft/fluentui/pull/27271) by beachball)
|
19
|
+
- Bump @fluentui/react-shared-contexts to v9.3.2 ([PR #27271](https://github.com/microsoft/fluentui/pull/27271) by beachball)
|
20
|
+
- Bump @fluentui/react-theme to v9.1.7 ([PR #27271](https://github.com/microsoft/fluentui/pull/27271) by beachball)
|
21
|
+
- Bump @fluentui/react-utilities to v9.7.2 ([PR #27271](https://github.com/microsoft/fluentui/pull/27271) by beachball)
|
22
|
+
- Bump @fluentui/react-conformance-griffel to v9.0.0-beta.20 ([PR #27271](https://github.com/microsoft/fluentui/pull/27271) by beachball)
|
23
|
+
|
24
|
+
## [9.2.4](https://github.com/microsoft/fluentui/tree/@fluentui/react-tooltip_v9.2.4)
|
25
|
+
|
26
|
+
Thu, 16 Mar 2023 14:36:59 GMT
|
27
|
+
[Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tooltip_v9.2.3..@fluentui/react-tooltip_v9.2.4)
|
28
|
+
|
29
|
+
### Patches
|
30
|
+
|
31
|
+
- Bump @fluentui/react-portal to v9.2.1 ([PR #27229](https://github.com/microsoft/fluentui/pull/27229) by beachball)
|
32
|
+
- Bump @fluentui/react-positioning to v9.5.5 ([PR #27229](https://github.com/microsoft/fluentui/pull/27229) by beachball)
|
33
|
+
- Bump @fluentui/react-utilities to v9.7.1 ([PR #27229](https://github.com/microsoft/fluentui/pull/27229) by beachball)
|
34
|
+
|
7
35
|
## [9.2.3](https://github.com/microsoft/fluentui/tree/@fluentui/react-tooltip_v9.2.3)
|
8
36
|
|
9
|
-
Wed, 15 Mar 2023 10:
|
37
|
+
Wed, 15 Mar 2023 10:19:53 GMT
|
10
38
|
[Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tooltip_v9.2.2..@fluentui/react-tooltip_v9.2.3)
|
11
39
|
|
12
40
|
### Patches
|
package/lib/Tooltip.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"
|
1
|
+
{"version":3,"names":[],"sources":["../src/Tooltip.ts"],"sourcesContent":["export * from './components/Tooltip/index';\n"],"mappings":"AAAA,cAAc"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["useTooltip_unstable","renderTooltip_unstable","useCustomStyleHooks_unstable","useTooltipStyles_unstable","Tooltip","props","state","useCustomStyles","displayName","isFluentTriggerComponent"],"sources":["
|
1
|
+
{"version":3,"names":["React","useTooltip_unstable","renderTooltip_unstable","useCustomStyleHooks_unstable","useTooltipStyles_unstable","Tooltip","props","state","useCustomStyles","displayName","isFluentTriggerComponent"],"sources":["../../../src/components/Tooltip/Tooltip.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useTooltip_unstable } from './useTooltip';\nimport { renderTooltip_unstable } from './renderTooltip';\nimport { useCustomStyleHooks_unstable } from '@fluentui/react-shared-contexts';\nimport { useTooltipStyles_unstable } from './useTooltipStyles';\nimport type { TooltipProps } from './Tooltip.types';\nimport type { FluentTriggerComponent } from '@fluentui/react-utilities';\n\n/**\n * A tooltip provides light weight contextual information on top of its target element.\n */\nexport const Tooltip: React.FC<TooltipProps> = props => {\n const state = useTooltip_unstable(props);\n\n useTooltipStyles_unstable(state);\n\n const { useTooltipStyles_unstable: useCustomStyles } = useCustomStyleHooks_unstable();\n useCustomStyles(state);\n\n return renderTooltip_unstable(state);\n};\n\nTooltip.displayName = 'Tooltip';\n// type casting here is required to ensure internal type FluentTriggerComponent is not leaked\n(Tooltip as FluentTriggerComponent).isFluentTriggerComponent = true;\n"],"mappings":"AAAA,YAAYA,KAAA,MAAW;AACvB,SAASC,mBAAmB,QAAQ;AACpC,SAASC,sBAAsB,QAAQ;AACvC,SAASC,4BAA4B,QAAQ;AAC7C,SAASC,yBAAyB,QAAQ;AAI1C;;;AAGA,OAAO,MAAMC,OAAA,GAAkCC,KAAA,IAAS;EACtD,MAAMC,KAAA,GAAQN,mBAAA,CAAoBK,KAAA;EAElCF,yBAAA,CAA0BG,KAAA;EAE1B,MAAM;IAAEH,yBAAA,EAA2BI;EAAe,CAAE,GAAGL,4BAAA;EACvDK,eAAA,CAAgBD,KAAA;EAEhB,OAAOL,sBAAA,CAAuBK,KAAA;AAChC;AAEAF,OAAA,CAAQI,WAAW,GAAG;AACtB;AACCJ,OAAA,CAAmCK,wBAAwB,GAAG,IAAI"}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
|
1
|
+
import * as React from 'react';
|
2
2
|
//# sourceMappingURL=Tooltip.types.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"
|
1
|
+
{"version":3,"names":["React"],"sources":["../../../src/components/Tooltip/Tooltip.types.ts"],"sourcesContent":["import * as React from 'react';\nimport type { PositioningShorthand } from '@fluentui/react-positioning';\nimport type { ComponentProps, ComponentState, Slot, TriggerProps } from '@fluentui/react-utilities';\nimport type { PortalProps } from '@fluentui/react-portal';\n\n/**\n * Slot properties for Tooltip\n */\nexport type TooltipSlots = {\n /**\n * The text or JSX content of the tooltip.\n */\n content: NonNullable<Slot<'div'>>;\n};\n\n/**\n * The properties that are added to the child of the Tooltip\n */\nexport type TooltipChildProps = {\n ref?: React.Ref<unknown>;\n} & Pick<\n React.HTMLAttributes<HTMLElement>,\n 'aria-describedby' | 'aria-label' | 'aria-labelledby' | 'onBlur' | 'onFocus' | 'onPointerEnter' | 'onPointerLeave'\n>;\n\n/**\n * Data for the Tooltip's onVisibleChange event.\n */\nexport type OnVisibleChangeData = {\n visible: boolean;\n};\n\n/**\n * Properties for Tooltip\n */\nexport type TooltipProps = ComponentProps<TooltipSlots> &\n TriggerProps<TooltipChildProps> &\n Pick<PortalProps, 'mountNode'> & {\n /**\n * The tooltip's visual appearance.\n * * `normal` - Uses the theme's background and text colors.\n * * `inverted` - Higher contrast variant that uses the theme's inverted colors.\n *\n * @default normal\n */\n appearance?: 'normal' | 'inverted';\n /**\n * Delay before the tooltip is hidden, in milliseconds.\n *\n * @default 250\n */\n hideDelay?: number;\n\n /**\n * Notification when the visibility of the tooltip is changing\n */\n onVisibleChange?: (\n event: React.PointerEvent<HTMLElement> | React.FocusEvent<HTMLElement> | undefined,\n data: OnVisibleChangeData,\n ) => void;\n\n /**\n * Configure the positioning of the tooltip\n *\n * @default above\n */\n positioning?: PositioningShorthand;\n\n /**\n * (Required) Specifies whether this tooltip is acting as the description or label of its trigger element.\n *\n * * `label` - The tooltip sets the trigger's aria-label or aria-labelledby attribute. This is useful for buttons\n * displaying only an icon, for example.\n * * `description` - The tooltip sets the trigger's aria-description or aria-describedby attribute.\n * * `inaccessible` - No aria attributes are set on the trigger. This makes the tooltip's content inaccessible to\n * screen readers, and should only be used if the tooltip's text is available by some other means.\n */\n relationship: 'label' | 'description' | 'inaccessible';\n\n /**\n * Delay before the tooltip is shown, in milliseconds.\n *\n * @default 250\n */\n showDelay?: number;\n\n /**\n * Control the tooltip's visibility programatically.\n *\n * This can be used in conjunction with onVisibleChange to modify the tooltip's show and hide behavior.\n *\n * If not provided, the visibility will be controlled by the tooltip itself, based on hover and focus events on the\n * trigger (child) element.\n *\n * @default false\n */\n visible?: boolean;\n\n /**\n * Render an arrow pointing to the target element\n *\n * @default false\n */\n withArrow?: boolean;\n };\n\n/**\n * State used in rendering Tooltip\n */\nexport type TooltipState = ComponentState<TooltipSlots> &\n Pick<TooltipProps, 'mountNode' | 'relationship'> &\n Required<Pick<TooltipProps, 'appearance' | 'hideDelay' | 'positioning' | 'showDelay' | 'visible' | 'withArrow'>> & {\n children?: React.ReactElement | null;\n\n /**\n * Whether the tooltip should be rendered to the DOM.\n */\n shouldRenderTooltip?: boolean;\n\n /**\n * Ref to the arrow element\n */\n arrowRef?: React.Ref<HTMLDivElement>;\n\n /**\n * CSS class for the arrow element\n */\n arrowClassName?: string;\n };\n"],"mappings":"AAAA,YAAYA,KAAA,MAAW"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"
|
1
|
+
{"version":3,"names":[],"sources":["../../../src/components/Tooltip/index.ts"],"sourcesContent":["export * from './Tooltip';\nexport * from './Tooltip.types';\nexport * from './renderTooltip';\nexport * from './useTooltip';\nexport * from './useTooltipStyles';\n"],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"
|
1
|
+
{"version":3,"names":["arrowHeight","tooltipBorderRadius"],"sources":["../../../../src/components/Tooltip/private/constants.ts"],"sourcesContent":["/**\n * The height of the tooltip's arrow in pixels.\n */\nexport const arrowHeight = 6;\n\n/**\n * The default value of the tooltip's border radius (borderRadiusMedium).\n *\n * Unfortunately, Popper requires it to be specified as a variable instead of using CSS.\n * While we could use getComputedStyle, that adds a performance penalty for something that\n * will likely never change.\n */\nexport const tooltipBorderRadius = 4;\n"],"mappings":"AAAA;;GAGA,OAAO,MAAMA,WAAA,GAAc;AAE3B;;;;;;;AAOA,OAAO,MAAMC,mBAAA,GAAsB"}
|
@@ -11,9 +11,7 @@ export const renderTooltip_unstable = state => {
|
|
11
11
|
} = getSlots(state);
|
12
12
|
return /*#__PURE__*/React.createElement(React.Fragment, null, state.children, state.shouldRenderTooltip && /*#__PURE__*/React.createElement(Portal, {
|
13
13
|
mountNode: state.mountNode
|
14
|
-
}, /*#__PURE__*/React.createElement(slots.content, {
|
15
|
-
...slotProps.content
|
16
|
-
}, state.withArrow && /*#__PURE__*/React.createElement("div", {
|
14
|
+
}, /*#__PURE__*/React.createElement(slots.content, slotProps.content, state.withArrow && /*#__PURE__*/React.createElement("div", {
|
17
15
|
ref: state.arrowRef,
|
18
16
|
className: state.arrowClassName
|
19
17
|
}), state.content.children)));
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["React","Portal","getSlots","renderTooltip_unstable","state","slots","slotProps","createElement","Fragment","children","shouldRenderTooltip","mountNode","content","withArrow","ref","arrowRef","className","arrowClassName"],"sources":["
|
1
|
+
{"version":3,"names":["React","Portal","getSlots","renderTooltip_unstable","state","slots","slotProps","createElement","Fragment","children","shouldRenderTooltip","mountNode","content","withArrow","ref","arrowRef","className","arrowClassName"],"sources":["../../../src/components/Tooltip/renderTooltip.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Portal } from '@fluentui/react-portal';\nimport { getSlots } from '@fluentui/react-utilities';\nimport type { TooltipSlots, TooltipState } from './Tooltip.types';\n\n/**\n * Render the final JSX of Tooltip\n */\nexport const renderTooltip_unstable = (state: TooltipState) => {\n const { slots, slotProps } = getSlots<TooltipSlots>(state);\n\n return (\n <>\n {state.children}\n {state.shouldRenderTooltip && (\n <Portal mountNode={state.mountNode}>\n <slots.content {...slotProps.content}>\n {state.withArrow && <div ref={state.arrowRef} className={state.arrowClassName} />}\n {state.content.children}\n </slots.content>\n </Portal>\n )}\n </>\n );\n};\n"],"mappings":"AAAA,YAAYA,KAAA,MAAW;AACvB,SAASC,MAAM,QAAQ;AACvB,SAASC,QAAQ,QAAQ;AAGzB;;;AAGA,OAAO,MAAMC,sBAAA,GAA0BC,KAAA,IAAwB;EAC7D,MAAM;IAAEC,KAAA;IAAOC;EAAS,CAAE,GAAGJ,QAAA,CAAuBE,KAAA;EAEpD,oBACEJ,KAAA,CAAAO,aAAA,CAAAP,KAAA,CAAAQ,QAAA,QACGJ,KAAA,CAAMK,QAAQ,EACdL,KAAA,CAAMM,mBAAmB,iBACxBV,KAAA,CAAAO,aAAA,CAACN,MAAA;IAAOU,SAAA,EAAWP,KAAA,CAAMO;kBACvBX,KAAA,CAAAO,aAAA,CAACF,KAAA,CAAMO,OAAO,EAAKN,SAAA,CAAUM,OAAO,EACjCR,KAAA,CAAMS,SAAS,iBAAIb,KAAA,CAAAO,aAAA,CAAC;IAAIO,GAAA,EAAKV,KAAA,CAAMW,QAAQ;IAAEC,SAAA,EAAWZ,KAAA,CAAMa;MAC9Db,KAAA,CAAMQ,OAAO,CAACH,QAAQ;AAMnC"}
|
@@ -13,7 +13,7 @@ import { Escape } from '@fluentui/keyboard-keys';
|
|
13
13
|
* @param props - props from this instance of Tooltip
|
14
14
|
*/
|
15
15
|
export const useTooltip_unstable = props => {
|
16
|
-
var
|
16
|
+
var _child_props, _child_props1, _child_props2, _child_props3;
|
17
17
|
const context = useTooltipVisibility();
|
18
18
|
const isServerSideRender = useIsSSR();
|
19
19
|
const {
|
@@ -91,12 +91,12 @@ export const useTooltip_unstable = props => {
|
|
91
91
|
// as the visibleTooltip with the TooltipContext.
|
92
92
|
// Also add a listener on document to hide the tooltip if Escape is pressed
|
93
93
|
useIsomorphicLayoutEffect(() => {
|
94
|
-
var _a;
|
95
94
|
if (visible) {
|
95
|
+
var _context_visibleTooltip;
|
96
96
|
const thisTooltip = {
|
97
97
|
hide: () => setVisible(false)
|
98
98
|
};
|
99
|
-
(
|
99
|
+
(_context_visibleTooltip = context.visibleTooltip) === null || _context_visibleTooltip === void 0 ? void 0 : _context_visibleTooltip.hide();
|
100
100
|
context.visibleTooltip = thisTooltip;
|
101
101
|
const onDocumentKeyDown = ev => {
|
102
102
|
if (ev.key === Escape) {
|
@@ -186,10 +186,10 @@ export const useTooltip_unstable = props => {
|
|
186
186
|
...(child === null || child === void 0 ? void 0 : child.props),
|
187
187
|
// If the target prop is not provided, attach targetRef to the trigger element's ref prop
|
188
188
|
ref: positioningOptions.target === undefined ? childTargetRef : child === null || child === void 0 ? void 0 : child.ref,
|
189
|
-
onPointerEnter: useEventCallback(mergeCallbacks(
|
190
|
-
onPointerLeave: useEventCallback(mergeCallbacks(
|
191
|
-
onFocus: useEventCallback(mergeCallbacks(
|
192
|
-
onBlur: useEventCallback(mergeCallbacks(
|
189
|
+
onPointerEnter: useEventCallback(mergeCallbacks(child === null || child === void 0 ? void 0 : (_child_props = child.props) === null || _child_props === void 0 ? void 0 : _child_props.onPointerEnter, onEnterTrigger)),
|
190
|
+
onPointerLeave: useEventCallback(mergeCallbacks(child === null || child === void 0 ? void 0 : (_child_props1 = child.props) === null || _child_props1 === void 0 ? void 0 : _child_props1.onPointerLeave, onLeaveTrigger)),
|
191
|
+
onFocus: useEventCallback(mergeCallbacks(child === null || child === void 0 ? void 0 : (_child_props2 = child.props) === null || _child_props2 === void 0 ? void 0 : _child_props2.onFocus, onEnterTrigger)),
|
192
|
+
onBlur: useEventCallback(mergeCallbacks(child === null || child === void 0 ? void 0 : (_child_props3 = child.props) === null || _child_props3 === void 0 ? void 0 : _child_props3.onBlur, onLeaveTrigger))
|
193
193
|
});
|
194
194
|
return state;
|
195
195
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["React","mergeArrowOffset","resolvePositioningShorthand","usePositioning","useTooltipVisibility_unstable","useTooltipVisibility","useFluent_unstable","useFluent","applyTriggerPropsToChildren","resolveShorthand","useControllableState","useId","useIsomorphicLayoutEffect","useIsSSR","useMergedRefs","useTimeout","getTriggerChild","mergeCallbacks","useEventCallback","arrowHeight","tooltipBorderRadius","Escape","useTooltip_unstable","props","context","isServerSideRender","targetDocument","setDelayTimeout","clearDelayTimeout","appearance","children","content","withArrow","positioning","onVisibleChange","relationship","showDelay","hideDelay","mountNode","visible","setVisibleInternal","state","initialState","setVisible","useCallback","newVisible","ev","oldVisible","shouldRenderTooltip","components","defaultProps","role","required","id","positioningOptions","enabled","arrowPadding","position","align","offset","targetRef","containerRef","arrowRef","ref","thisTooltip","hide","_a","visibleTooltip","onDocumentKeyDown","key","stopPropagation","addEventListener","capture","undefined","removeEventListener","ignoreNextFocusEventRef","useRef","onEnterTrigger","type","current","delay","persist","onLeaveTrigger","activeElement","target","onPointerEnter","onPointerLeave","onFocus","onBlur","child","triggerAriaProps","childTargetRef","_b","_c","_d"],"sources":["../src/packages/react-components/react-tooltip/src/components/Tooltip/useTooltip.tsx"],"sourcesContent":["import * as React from 'react';\nimport { mergeArrowOffset, resolvePositioningShorthand, usePositioning } from '@fluentui/react-positioning';\nimport {\n useTooltipVisibility_unstable as useTooltipVisibility,\n useFluent_unstable as useFluent,\n} from '@fluentui/react-shared-contexts';\nimport {\n applyTriggerPropsToChildren,\n resolveShorthand,\n useControllableState,\n useId,\n useIsomorphicLayoutEffect,\n useIsSSR,\n useMergedRefs,\n useTimeout,\n getTriggerChild,\n mergeCallbacks,\n useEventCallback,\n} from '@fluentui/react-utilities';\nimport type { TooltipProps, TooltipState, TooltipChildProps } from './Tooltip.types';\nimport { arrowHeight, tooltipBorderRadius } from './private/constants';\nimport { Escape } from '@fluentui/keyboard-keys';\n\n/**\n * Create the state required to render Tooltip.\n *\n * The returned state can be modified with hooks such as useTooltipStyles_unstable,\n * before being passed to renderTooltip_unstable.\n *\n * @param props - props from this instance of Tooltip\n */\nexport const useTooltip_unstable = (props: TooltipProps): TooltipState => {\n const context = useTooltipVisibility();\n const isServerSideRender = useIsSSR();\n const { targetDocument } = useFluent();\n const [setDelayTimeout, clearDelayTimeout] = useTimeout();\n\n const {\n appearance = 'normal',\n children,\n content,\n withArrow = false,\n positioning = 'above',\n onVisibleChange,\n relationship,\n showDelay = 250,\n hideDelay = 250,\n mountNode,\n } = props;\n\n const [visible, setVisibleInternal] = useControllableState({ state: props.visible, initialState: false });\n const setVisible = React.useCallback(\n (newVisible: boolean, ev?: React.PointerEvent<HTMLElement> | React.FocusEvent<HTMLElement>) => {\n clearDelayTimeout();\n setVisibleInternal(oldVisible => {\n if (newVisible !== oldVisible) {\n onVisibleChange?.(ev, { visible: newVisible });\n }\n return newVisible;\n });\n },\n [clearDelayTimeout, setVisibleInternal, onVisibleChange],\n );\n\n const state: TooltipState = {\n withArrow,\n positioning,\n showDelay,\n hideDelay,\n relationship,\n visible,\n shouldRenderTooltip: visible,\n appearance,\n mountNode,\n // Slots\n components: {\n content: 'div',\n },\n content: resolveShorthand(content, {\n defaultProps: {\n role: 'tooltip',\n },\n required: true,\n }),\n };\n\n state.content.id = useId('tooltip-', state.content.id);\n\n const positioningOptions = {\n enabled: state.visible,\n arrowPadding: 2 * tooltipBorderRadius,\n position: 'above' as const,\n align: 'center' as const,\n offset: 4,\n ...resolvePositioningShorthand(state.positioning),\n };\n\n if (state.withArrow) {\n positioningOptions.offset = mergeArrowOffset(positioningOptions.offset, arrowHeight);\n }\n\n const {\n targetRef,\n containerRef,\n arrowRef,\n }: {\n targetRef: React.MutableRefObject<unknown>;\n containerRef: React.MutableRefObject<HTMLDivElement>;\n arrowRef: React.MutableRefObject<HTMLDivElement>;\n } = usePositioning(positioningOptions);\n\n state.content.ref = useMergedRefs(state.content.ref, containerRef);\n state.arrowRef = arrowRef;\n\n // When this tooltip is visible, hide any other tooltips, and register it\n // as the visibleTooltip with the TooltipContext.\n // Also add a listener on document to hide the tooltip if Escape is pressed\n useIsomorphicLayoutEffect(() => {\n if (visible) {\n const thisTooltip = { hide: () => setVisible(false) };\n\n context.visibleTooltip?.hide();\n context.visibleTooltip = thisTooltip;\n\n const onDocumentKeyDown = (ev: KeyboardEvent) => {\n if (ev.key === Escape) {\n thisTooltip.hide();\n // stop propagation to avoid conflicting with other elements that listen for `Escape`\n // e,g: Dialog, Popover, Menu\n ev.stopPropagation();\n }\n };\n\n targetDocument?.addEventListener('keydown', onDocumentKeyDown, {\n // As this event is added at targeted document,\n // we need to capture the event to be sure keydown handling from tooltip happens first\n capture: true,\n });\n\n return () => {\n if (context.visibleTooltip === thisTooltip) {\n context.visibleTooltip = undefined;\n }\n\n targetDocument?.removeEventListener('keydown', onDocumentKeyDown, { capture: true });\n };\n }\n }, [context, targetDocument, visible, setVisible]);\n\n // The focused element gets a blur event when the document loses focus\n // (e.g. switching tabs in the browser), but we don't want to show the\n // tooltip again when the document gets focus back. Handle this case by\n // checking if the blurred element is still the document's activeElement.\n // See https://github.com/microsoft/fluentui/issues/13541\n const ignoreNextFocusEventRef = React.useRef(false);\n\n // Listener for onPointerEnter and onFocus on the trigger element\n const onEnterTrigger = React.useCallback(\n (ev: React.PointerEvent<HTMLElement> | React.FocusEvent<HTMLElement>) => {\n if (ev.type === 'focus' && ignoreNextFocusEventRef.current) {\n ignoreNextFocusEventRef.current = false;\n return;\n }\n\n // Show immediately if another tooltip is already visible\n const delay = context.visibleTooltip ? 0 : state.showDelay;\n\n setDelayTimeout(() => {\n setVisible(true, ev);\n }, delay);\n\n ev.persist(); // Persist the event since the setVisible call will happen asynchronously\n },\n [setDelayTimeout, setVisible, state.showDelay, context],\n );\n\n // Listener for onPointerLeave and onBlur on the trigger element\n const onLeaveTrigger = React.useCallback(\n (ev: React.PointerEvent<HTMLElement> | React.FocusEvent<HTMLElement>) => {\n let delay = state.hideDelay;\n\n if (ev.type === 'blur') {\n // Hide immediately when losing focus\n delay = 0;\n\n ignoreNextFocusEventRef.current = targetDocument?.activeElement === ev.target;\n }\n\n setDelayTimeout(() => {\n setVisible(false, ev);\n }, delay);\n\n ev.persist(); // Persist the event since the setVisible call will happen asynchronously\n },\n [setDelayTimeout, setVisible, state.hideDelay, targetDocument],\n );\n\n // Cancel the hide timer when the mouse or focus enters the tooltip, and restart it when the mouse or focus leaves.\n // This keeps the tooltip visible when the mouse is moved over it, or it has focus within.\n state.content.onPointerEnter = mergeCallbacks(state.content.onPointerEnter, clearDelayTimeout);\n state.content.onPointerLeave = mergeCallbacks(state.content.onPointerLeave, onLeaveTrigger);\n state.content.onFocus = mergeCallbacks(state.content.onFocus, clearDelayTimeout);\n state.content.onBlur = mergeCallbacks(state.content.onBlur, onLeaveTrigger);\n\n const child = getTriggerChild(children);\n\n const triggerAriaProps: Pick<TooltipChildProps, 'aria-label' | 'aria-labelledby' | 'aria-describedby'> = {};\n\n if (relationship === 'label') {\n // aria-label only works if the content is a string. Otherwise, need to use aria-labelledby.\n if (typeof state.content.children === 'string') {\n triggerAriaProps['aria-label'] = state.content.children;\n } else {\n triggerAriaProps['aria-labelledby'] = state.content.id;\n // Always render the tooltip even if hidden, so that aria-labelledby refers to a valid element\n state.shouldRenderTooltip = true;\n }\n } else if (relationship === 'description') {\n triggerAriaProps['aria-describedby'] = state.content.id;\n // Always render the tooltip even if hidden, so that aria-describedby refers to a valid element\n state.shouldRenderTooltip = true;\n }\n\n // Don't render the Tooltip in SSR to avoid hydration errors\n if (isServerSideRender) {\n state.shouldRenderTooltip = false;\n }\n\n const childTargetRef = useMergedRefs(child?.ref, targetRef);\n\n // Apply the trigger props to the child, either by calling the render function, or cloning with the new props\n state.children = applyTriggerPropsToChildren(children, {\n ...triggerAriaProps,\n ...child?.props,\n // If the target prop is not provided, attach targetRef to the trigger element's ref prop\n ref: positioningOptions.target === undefined ? childTargetRef : child?.ref,\n onPointerEnter: useEventCallback(mergeCallbacks(child?.props?.onPointerEnter, onEnterTrigger)),\n onPointerLeave: useEventCallback(mergeCallbacks(child?.props?.onPointerLeave, onLeaveTrigger)),\n onFocus: useEventCallback(mergeCallbacks(child?.props?.onFocus, onEnterTrigger)),\n onBlur: useEventCallback(mergeCallbacks(child?.props?.onBlur, onLeaveTrigger)),\n });\n\n return state;\n};\n"],"mappings":"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"}
|
1
|
+
{"version":3,"names":["React","mergeArrowOffset","resolvePositioningShorthand","usePositioning","useTooltipVisibility_unstable","useTooltipVisibility","useFluent_unstable","useFluent","applyTriggerPropsToChildren","resolveShorthand","useControllableState","useId","useIsomorphicLayoutEffect","useIsSSR","useMergedRefs","useTimeout","getTriggerChild","mergeCallbacks","useEventCallback","arrowHeight","tooltipBorderRadius","Escape","useTooltip_unstable","props","_child_props","_child_props1","_child_props2","_child_props3","context","isServerSideRender","targetDocument","setDelayTimeout","clearDelayTimeout","appearance","children","content","withArrow","positioning","onVisibleChange","relationship","showDelay","hideDelay","mountNode","visible","setVisibleInternal","state","initialState","setVisible","useCallback","newVisible","ev","oldVisible","shouldRenderTooltip","components","defaultProps","role","required","id","positioningOptions","enabled","arrowPadding","position","align","offset","targetRef","containerRef","arrowRef","ref","_context_visibleTooltip","thisTooltip","hide","visibleTooltip","onDocumentKeyDown","key","stopPropagation","addEventListener","capture","undefined","removeEventListener","ignoreNextFocusEventRef","useRef","onEnterTrigger","type","current","delay","persist","onLeaveTrigger","activeElement","target","onPointerEnter","onPointerLeave","onFocus","onBlur","child","triggerAriaProps","childTargetRef"],"sources":["../../../src/components/Tooltip/useTooltip.tsx"],"sourcesContent":["import * as React from 'react';\nimport { mergeArrowOffset, resolvePositioningShorthand, usePositioning } from '@fluentui/react-positioning';\nimport {\n useTooltipVisibility_unstable as useTooltipVisibility,\n useFluent_unstable as useFluent,\n} from '@fluentui/react-shared-contexts';\nimport {\n applyTriggerPropsToChildren,\n resolveShorthand,\n useControllableState,\n useId,\n useIsomorphicLayoutEffect,\n useIsSSR,\n useMergedRefs,\n useTimeout,\n getTriggerChild,\n mergeCallbacks,\n useEventCallback,\n} from '@fluentui/react-utilities';\nimport type { TooltipProps, TooltipState, TooltipChildProps } from './Tooltip.types';\nimport { arrowHeight, tooltipBorderRadius } from './private/constants';\nimport { Escape } from '@fluentui/keyboard-keys';\n\n/**\n * Create the state required to render Tooltip.\n *\n * The returned state can be modified with hooks such as useTooltipStyles_unstable,\n * before being passed to renderTooltip_unstable.\n *\n * @param props - props from this instance of Tooltip\n */\nexport const useTooltip_unstable = (props: TooltipProps): TooltipState => {\n const context = useTooltipVisibility();\n const isServerSideRender = useIsSSR();\n const { targetDocument } = useFluent();\n const [setDelayTimeout, clearDelayTimeout] = useTimeout();\n\n const {\n appearance = 'normal',\n children,\n content,\n withArrow = false,\n positioning = 'above',\n onVisibleChange,\n relationship,\n showDelay = 250,\n hideDelay = 250,\n mountNode,\n } = props;\n\n const [visible, setVisibleInternal] = useControllableState({ state: props.visible, initialState: false });\n const setVisible = React.useCallback(\n (newVisible: boolean, ev?: React.PointerEvent<HTMLElement> | React.FocusEvent<HTMLElement>) => {\n clearDelayTimeout();\n setVisibleInternal(oldVisible => {\n if (newVisible !== oldVisible) {\n onVisibleChange?.(ev, { visible: newVisible });\n }\n return newVisible;\n });\n },\n [clearDelayTimeout, setVisibleInternal, onVisibleChange],\n );\n\n const state: TooltipState = {\n withArrow,\n positioning,\n showDelay,\n hideDelay,\n relationship,\n visible,\n shouldRenderTooltip: visible,\n appearance,\n mountNode,\n // Slots\n components: {\n content: 'div',\n },\n content: resolveShorthand(content, {\n defaultProps: {\n role: 'tooltip',\n },\n required: true,\n }),\n };\n\n state.content.id = useId('tooltip-', state.content.id);\n\n const positioningOptions = {\n enabled: state.visible,\n arrowPadding: 2 * tooltipBorderRadius,\n position: 'above' as const,\n align: 'center' as const,\n offset: 4,\n ...resolvePositioningShorthand(state.positioning),\n };\n\n if (state.withArrow) {\n positioningOptions.offset = mergeArrowOffset(positioningOptions.offset, arrowHeight);\n }\n\n const {\n targetRef,\n containerRef,\n arrowRef,\n }: {\n targetRef: React.MutableRefObject<unknown>;\n containerRef: React.MutableRefObject<HTMLDivElement>;\n arrowRef: React.MutableRefObject<HTMLDivElement>;\n } = usePositioning(positioningOptions);\n\n state.content.ref = useMergedRefs(state.content.ref, containerRef);\n state.arrowRef = arrowRef;\n\n // When this tooltip is visible, hide any other tooltips, and register it\n // as the visibleTooltip with the TooltipContext.\n // Also add a listener on document to hide the tooltip if Escape is pressed\n useIsomorphicLayoutEffect(() => {\n if (visible) {\n const thisTooltip = { hide: () => setVisible(false) };\n\n context.visibleTooltip?.hide();\n context.visibleTooltip = thisTooltip;\n\n const onDocumentKeyDown = (ev: KeyboardEvent) => {\n if (ev.key === Escape) {\n thisTooltip.hide();\n // stop propagation to avoid conflicting with other elements that listen for `Escape`\n // e,g: Dialog, Popover, Menu\n ev.stopPropagation();\n }\n };\n\n targetDocument?.addEventListener('keydown', onDocumentKeyDown, {\n // As this event is added at targeted document,\n // we need to capture the event to be sure keydown handling from tooltip happens first\n capture: true,\n });\n\n return () => {\n if (context.visibleTooltip === thisTooltip) {\n context.visibleTooltip = undefined;\n }\n\n targetDocument?.removeEventListener('keydown', onDocumentKeyDown, { capture: true });\n };\n }\n }, [context, targetDocument, visible, setVisible]);\n\n // The focused element gets a blur event when the document loses focus\n // (e.g. switching tabs in the browser), but we don't want to show the\n // tooltip again when the document gets focus back. Handle this case by\n // checking if the blurred element is still the document's activeElement.\n // See https://github.com/microsoft/fluentui/issues/13541\n const ignoreNextFocusEventRef = React.useRef(false);\n\n // Listener for onPointerEnter and onFocus on the trigger element\n const onEnterTrigger = React.useCallback(\n (ev: React.PointerEvent<HTMLElement> | React.FocusEvent<HTMLElement>) => {\n if (ev.type === 'focus' && ignoreNextFocusEventRef.current) {\n ignoreNextFocusEventRef.current = false;\n return;\n }\n\n // Show immediately if another tooltip is already visible\n const delay = context.visibleTooltip ? 0 : state.showDelay;\n\n setDelayTimeout(() => {\n setVisible(true, ev);\n }, delay);\n\n ev.persist(); // Persist the event since the setVisible call will happen asynchronously\n },\n [setDelayTimeout, setVisible, state.showDelay, context],\n );\n\n // Listener for onPointerLeave and onBlur on the trigger element\n const onLeaveTrigger = React.useCallback(\n (ev: React.PointerEvent<HTMLElement> | React.FocusEvent<HTMLElement>) => {\n let delay = state.hideDelay;\n\n if (ev.type === 'blur') {\n // Hide immediately when losing focus\n delay = 0;\n\n ignoreNextFocusEventRef.current = targetDocument?.activeElement === ev.target;\n }\n\n setDelayTimeout(() => {\n setVisible(false, ev);\n }, delay);\n\n ev.persist(); // Persist the event since the setVisible call will happen asynchronously\n },\n [setDelayTimeout, setVisible, state.hideDelay, targetDocument],\n );\n\n // Cancel the hide timer when the mouse or focus enters the tooltip, and restart it when the mouse or focus leaves.\n // This keeps the tooltip visible when the mouse is moved over it, or it has focus within.\n state.content.onPointerEnter = mergeCallbacks(state.content.onPointerEnter, clearDelayTimeout);\n state.content.onPointerLeave = mergeCallbacks(state.content.onPointerLeave, onLeaveTrigger);\n state.content.onFocus = mergeCallbacks(state.content.onFocus, clearDelayTimeout);\n state.content.onBlur = mergeCallbacks(state.content.onBlur, onLeaveTrigger);\n\n const child = getTriggerChild(children);\n\n const triggerAriaProps: Pick<TooltipChildProps, 'aria-label' | 'aria-labelledby' | 'aria-describedby'> = {};\n\n if (relationship === 'label') {\n // aria-label only works if the content is a string. Otherwise, need to use aria-labelledby.\n if (typeof state.content.children === 'string') {\n triggerAriaProps['aria-label'] = state.content.children;\n } else {\n triggerAriaProps['aria-labelledby'] = state.content.id;\n // Always render the tooltip even if hidden, so that aria-labelledby refers to a valid element\n state.shouldRenderTooltip = true;\n }\n } else if (relationship === 'description') {\n triggerAriaProps['aria-describedby'] = state.content.id;\n // Always render the tooltip even if hidden, so that aria-describedby refers to a valid element\n state.shouldRenderTooltip = true;\n }\n\n // Don't render the Tooltip in SSR to avoid hydration errors\n if (isServerSideRender) {\n state.shouldRenderTooltip = false;\n }\n\n const childTargetRef = useMergedRefs(child?.ref, targetRef);\n\n // Apply the trigger props to the child, either by calling the render function, or cloning with the new props\n state.children = applyTriggerPropsToChildren(children, {\n ...triggerAriaProps,\n ...child?.props,\n // If the target prop is not provided, attach targetRef to the trigger element's ref prop\n ref: positioningOptions.target === undefined ? childTargetRef : child?.ref,\n onPointerEnter: useEventCallback(mergeCallbacks(child?.props?.onPointerEnter, onEnterTrigger)),\n onPointerLeave: useEventCallback(mergeCallbacks(child?.props?.onPointerLeave, onLeaveTrigger)),\n onFocus: useEventCallback(mergeCallbacks(child?.props?.onFocus, onEnterTrigger)),\n onBlur: useEventCallback(mergeCallbacks(child?.props?.onBlur, onLeaveTrigger)),\n });\n\n return state;\n};\n"],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["shorthands","__styles","mergeClasses","createArrowStyles","tokens","arrowHeight","tooltipClassNames","content","useStyles","root","mc9l5x","B7ck84d","B2u0y6b","Bceei9c","Bahqtrf","Be2twd7","Bg96gwp","Bbmb7ep","Beyfa6y","B7oj6ja","Btl43ni","B4j52fo","Bekrc4i","Bn0qgzm","ibv6hh","icvyot","vrafjx","oivjwe","wvpqe5","g2u3we","h3c5rm","B9xav0g","zhjwy3","z8tnut","z189sj","Byoj8tv","uwmqm3","De3pzq","sj55zd","Bhu2qc9","visible","inverted","arrow","qhf8xq","Bcdw1i0","Bj3rh1h","a9b677","Bqenvij","Ftih45","B1puzpu","Brfgrao","Bcvre1j","Ccq8qp","Baz25je","cmx5o7","B4f6apu","m598lv","Bk5zm6e","y0oebl","qa3bma","Bqjgrrk","Budzafs","Hv9wc6","hl6cv3","Bh2vraf","yayu3t","wedwtw","rhl9o9","Bu8t5uz","B6q6orb","Bwwlvwl","d","useTooltipStyles_unstable","state","styles","className","appearance","arrowClassName"],"sources":["
|
1
|
+
{"version":3,"names":["shorthands","__styles","mergeClasses","createArrowStyles","tokens","arrowHeight","tooltipClassNames","content","useStyles","root","mc9l5x","B7ck84d","B2u0y6b","Bceei9c","Bahqtrf","Be2twd7","Bg96gwp","Bbmb7ep","Beyfa6y","B7oj6ja","Btl43ni","B4j52fo","Bekrc4i","Bn0qgzm","ibv6hh","icvyot","vrafjx","oivjwe","wvpqe5","g2u3we","h3c5rm","B9xav0g","zhjwy3","z8tnut","z189sj","Byoj8tv","uwmqm3","De3pzq","sj55zd","Bhu2qc9","visible","inverted","arrow","qhf8xq","Bcdw1i0","Bj3rh1h","a9b677","Bqenvij","Ftih45","B1puzpu","Brfgrao","Bcvre1j","Ccq8qp","Baz25je","cmx5o7","B4f6apu","m598lv","Bk5zm6e","y0oebl","qa3bma","Bqjgrrk","Budzafs","Hv9wc6","hl6cv3","Bh2vraf","yayu3t","wedwtw","rhl9o9","Bu8t5uz","B6q6orb","Bwwlvwl","d","useTooltipStyles_unstable","state","styles","className","appearance","arrowClassName"],"sources":["../../../src/components/Tooltip/useTooltipStyles.ts"],"sourcesContent":["import { shorthands, makeStyles, mergeClasses } from '@griffel/react';\nimport { createArrowStyles } from '@fluentui/react-positioning';\nimport { tokens } from '@fluentui/react-theme';\nimport { arrowHeight } from './private/constants';\nimport type { TooltipSlots, TooltipState } from './Tooltip.types';\nimport type { SlotClassNames } from '@fluentui/react-utilities';\n\nexport const tooltipClassNames: SlotClassNames<TooltipSlots> = {\n content: 'fui-Tooltip__content',\n};\n\n/**\n * Styles for the tooltip\n */\nconst useStyles = makeStyles({\n root: {\n display: 'none',\n boxSizing: 'border-box',\n maxWidth: '240px',\n cursor: 'default',\n fontFamily: tokens.fontFamilyBase,\n fontSize: tokens.fontSizeBase200,\n lineHeight: tokens.lineHeightBase200,\n\n ...shorthands.borderRadius(tokens.borderRadiusMedium),\n ...shorthands.border('1px', 'solid', tokens.colorTransparentStroke),\n ...shorthands.padding('4px', '11px', '6px', '11px'), // '5px 12px 7px 12px' minus the border width '1px'\n backgroundColor: tokens.colorNeutralBackground1,\n color: tokens.colorNeutralForeground1,\n\n // TODO need to add versions of tokens.alias.shadow.shadow8, etc. that work with filter\n filter:\n `drop-shadow(0 0 2px ${tokens.colorNeutralShadowAmbient}) ` +\n `drop-shadow(0 4px 8px ${tokens.colorNeutralShadowKey})`,\n },\n\n visible: {\n display: 'block',\n },\n\n inverted: {\n backgroundColor: tokens.colorNeutralBackgroundStatic,\n color: tokens.colorNeutralForegroundStaticInverted,\n },\n\n arrow: createArrowStyles({ arrowHeight }),\n});\n\n/**\n * Apply styling to the Tooltip slots based on the state\n */\nexport const useTooltipStyles_unstable = (state: TooltipState): TooltipState => {\n const styles = useStyles();\n\n state.content.className = mergeClasses(\n tooltipClassNames.content,\n styles.root,\n state.appearance === 'inverted' && styles.inverted,\n state.visible && styles.visible,\n state.content.className,\n );\n\n state.arrowClassName = styles.arrow;\n\n return state;\n};\n"],"mappings":"AAAA,SAASA,UAAU,EAAAC,QAAA,EAAcC,YAAY,QAAQ;AACrD,SAASC,iBAAiB,QAAQ;AAClC,SAASC,MAAM,QAAQ;AACvB,SAASC,WAAW,QAAQ;AAI5B,OAAO,MAAMC,iBAAA,GAAkD;EAC7DC,OAAA,EAAS;AACX;AAEA;;;AAGA,MAAMC,SAAA,gBAAYP,QAAA;EAAAQ,IAAA;IAAAC,MAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,OAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,OAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,OAAA;EAAA;EAAAC,OAAA;IAAA9B,MAAA;EAAA;EAAA+B,QAAA;IAAAJ,MAAA;IAAAC,MAAA;EAAA;EAAAI,KAAA;IAAAC,MAAA;IAAAN,MAAA;IAAAO,OAAA;IAAAC,OAAA;IAAAC,MAAA;IAAAC,OAAA;IAAAC,MAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,MAAA;IAAAC,OAAA;IAAAC,MAAA;IAAAC,OAAA;IAAAC,MAAA;IAAAC,OAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,OAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,OAAA;EAAA;AAAA;EAAAC,CAAA;AAAA,EAgClB;AAEA;;;AAGA,OAAO,MAAMC,yBAAA,GAA6BC,KAAA,IAAsC;EAC9E,MAAMC,MAAA,GAASlE,SAAA;EAEfiE,KAAA,CAAMlE,OAAO,CAACoE,SAAS,GAAGzE,YAAA,CACxBI,iBAAA,CAAkBC,OAAO,EACzBmE,MAAA,CAAOjE,IAAI,EACXgE,KAAA,CAAMG,UAAU,KAAK,cAAcF,MAAA,CAAOjC,QAAQ,EAClDgC,KAAA,CAAMjC,OAAO,IAAIkC,MAAA,CAAOlC,OAAO,EAC/BiC,KAAA,CAAMlE,OAAO,CAACoE,SAAS;EAGzBF,KAAA,CAAMI,cAAc,GAAGH,MAAA,CAAOhC,KAAK;EAEnC,OAAO+B,KAAA;AACT"}
|
package/lib/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["Tooltip","renderTooltip_unstable","tooltipClassNames","useTooltipStyles_unstable","useTooltip_unstable"],"sources":["../src/
|
1
|
+
{"version":3,"names":["Tooltip","renderTooltip_unstable","tooltipClassNames","useTooltipStyles_unstable","useTooltip_unstable"],"sources":["../src/index.ts"],"sourcesContent":["export {\n Tooltip,\n renderTooltip_unstable,\n tooltipClassNames,\n useTooltipStyles_unstable,\n useTooltip_unstable,\n} from './Tooltip';\nexport type {\n OnVisibleChangeData,\n TooltipProps,\n TooltipSlots,\n TooltipState,\n TooltipChildProps as TooltipTriggerProps,\n} from './Tooltip';\n"],"mappings":"AAAA,SACEA,OAAO,EACPC,sBAAsB,EACtBC,iBAAiB,EACjBC,yBAAyB,EACzBC,mBAAmB,QACd"}
|
package/lib-commonjs/Tooltip.js
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
"use strict";
|
2
|
-
|
3
2
|
Object.defineProperty(exports, "__esModule", {
|
4
|
-
|
3
|
+
value: true
|
5
4
|
});
|
6
|
-
const
|
7
|
-
|
5
|
+
const _exportStar = require("@swc/helpers/lib/_export_star.js").default;
|
6
|
+
_exportStar(require("./components/Tooltip/index"), exports);
|
7
|
+
//# sourceMappingURL=Tooltip.js.map
|
8
|
+
|
8
9
|
//# sourceMappingURL=Tooltip.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"
|
1
|
+
{"version":3,"sources":["../lib/Tooltip.js"],"sourcesContent":["export * from './components/Tooltip/index';\n//# sourceMappingURL=Tooltip.js.map"],"names":[],"mappings":";;;;;oBAAc;CACd,mCAAmC"}
|
@@ -1,27 +1,26 @@
|
|
1
1
|
"use strict";
|
2
|
-
|
3
2
|
Object.defineProperty(exports, "__esModule", {
|
4
|
-
|
3
|
+
value: true
|
4
|
+
});
|
5
|
+
Object.defineProperty(exports, "Tooltip", {
|
6
|
+
enumerable: true,
|
7
|
+
get: ()=>Tooltip
|
5
8
|
});
|
6
|
-
|
7
|
-
const
|
8
|
-
const
|
9
|
-
const
|
10
|
-
const
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
useTooltipStyles_unstable: useCustomStyles
|
19
|
-
} = react_shared_contexts_1.useCustomStyleHooks_unstable();
|
20
|
-
useCustomStyles(state);
|
21
|
-
return renderTooltip_1.renderTooltip_unstable(state);
|
9
|
+
const _interopRequireWildcard = require("@swc/helpers/lib/_interop_require_wildcard.js").default;
|
10
|
+
const _react = /*#__PURE__*/ _interopRequireWildcard(require("react"));
|
11
|
+
const _useTooltip = require("./useTooltip");
|
12
|
+
const _renderTooltip = require("./renderTooltip");
|
13
|
+
const _reactSharedContexts = require("@fluentui/react-shared-contexts");
|
14
|
+
const _useTooltipStyles = require("./useTooltipStyles");
|
15
|
+
const Tooltip = (props)=>{
|
16
|
+
const state = (0, _useTooltip.useTooltip_unstable)(props);
|
17
|
+
(0, _useTooltipStyles.useTooltipStyles_unstable)(state);
|
18
|
+
const { useTooltipStyles_unstable: useCustomStyles } = (0, _reactSharedContexts.useCustomStyleHooks_unstable)();
|
19
|
+
useCustomStyles(state);
|
20
|
+
return (0, _renderTooltip.renderTooltip_unstable)(state);
|
22
21
|
};
|
23
|
-
|
24
|
-
exports.Tooltip.displayName = 'Tooltip';
|
22
|
+
Tooltip.displayName = 'Tooltip';
|
25
23
|
// type casting here is required to ensure internal type FluentTriggerComponent is not leaked
|
26
|
-
|
24
|
+
Tooltip.isFluentTriggerComponent = true; //# sourceMappingURL=Tooltip.js.map
|
25
|
+
|
27
26
|
//# sourceMappingURL=Tooltip.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"
|
1
|
+
{"version":3,"sources":["../../../lib/components/Tooltip/Tooltip.js"],"sourcesContent":["import * as React from 'react';\nimport { useTooltip_unstable } from './useTooltip';\nimport { renderTooltip_unstable } from './renderTooltip';\nimport { useCustomStyleHooks_unstable } from '@fluentui/react-shared-contexts';\nimport { useTooltipStyles_unstable } from './useTooltipStyles';\n/**\n * A tooltip provides light weight contextual information on top of its target element.\n */\nexport const Tooltip = props => {\n const state = useTooltip_unstable(props);\n useTooltipStyles_unstable(state);\n const {\n useTooltipStyles_unstable: useCustomStyles\n } = useCustomStyleHooks_unstable();\n useCustomStyles(state);\n return renderTooltip_unstable(state);\n};\nTooltip.displayName = 'Tooltip';\n// type casting here is required to ensure internal type FluentTriggerComponent is not leaked\nTooltip.isFluentTriggerComponent = true;\n//# sourceMappingURL=Tooltip.js.map"],"names":["Tooltip","props","state","useTooltip_unstable","useTooltipStyles_unstable","useCustomStyles","useCustomStyleHooks_unstable","renderTooltip_unstable","displayName","isFluentTriggerComponent"],"mappings":";;;;+BAQaA;;aAAAA;;;6DARU;4BACa;+BACG;qCACM;kCACH;AAInC,MAAMA,UAAUC,CAAAA,QAAS;IAC9B,MAAMC,QAAQC,IAAAA,+BAAmB,EAACF;IAClCG,IAAAA,2CAAyB,EAACF;IAC1B,MAAM,EACJE,2BAA2BC,gBAAe,EAC3C,GAAGC,IAAAA,iDAA4B;IAChCD,gBAAgBH;IAChB,OAAOK,IAAAA,qCAAsB,EAACL;AAChC;AACAF,QAAQQ,WAAW,GAAG;AACtB,6FAA6F;AAC7FR,QAAQS,wBAAwB,GAAG,IAAI,EACvC,mCAAmC"}
|
@@ -1,6 +1,9 @@
|
|
1
1
|
"use strict";
|
2
|
-
|
3
2
|
Object.defineProperty(exports, "__esModule", {
|
4
|
-
|
3
|
+
value: true
|
5
4
|
});
|
5
|
+
const _interopRequireWildcard = require("@swc/helpers/lib/_interop_require_wildcard.js").default;
|
6
|
+
const _react = /*#__PURE__*/ _interopRequireWildcard(require("react"));
|
7
|
+
//# sourceMappingURL=Tooltip.types.js.map
|
8
|
+
|
6
9
|
//# sourceMappingURL=Tooltip.types.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"
|
1
|
+
{"version":3,"sources":["../../../lib/components/Tooltip/Tooltip.types.js"],"sourcesContent":["import * as React from 'react';\n//# sourceMappingURL=Tooltip.types.js.map"],"names":[],"mappings":";;;;;6DAAuB;CACvB,yCAAyC"}
|
@@ -1,12 +1,13 @@
|
|
1
1
|
"use strict";
|
2
|
-
|
3
2
|
Object.defineProperty(exports, "__esModule", {
|
4
|
-
|
3
|
+
value: true
|
5
4
|
});
|
6
|
-
const
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
5
|
+
const _exportStar = require("@swc/helpers/lib/_export_star.js").default;
|
6
|
+
_exportStar(require("./Tooltip"), exports);
|
7
|
+
_exportStar(require("./Tooltip.types"), exports);
|
8
|
+
_exportStar(require("./renderTooltip"), exports);
|
9
|
+
_exportStar(require("./useTooltip"), exports);
|
10
|
+
_exportStar(require("./useTooltipStyles"), exports);
|
11
|
+
//# sourceMappingURL=index.js.map
|
12
|
+
|
12
13
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"
|
1
|
+
{"version":3,"sources":["../../../lib/components/Tooltip/index.js"],"sourcesContent":["export * from './Tooltip';\nexport * from './Tooltip.types';\nexport * from './renderTooltip';\nexport * from './useTooltip';\nexport * from './useTooltipStyles';\n//# sourceMappingURL=index.js.map"],"names":[],"mappings":";;;;;oBAAc;oBACA;oBACA;oBACA;oBACA;CACd,iCAAiC"}
|