@fluentui/react-tooltip 0.0.0-nightly-20230823-0414.1 → 0.0.0-nightly-20230825-0413.1

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/CHANGELOG.json CHANGED
@@ -2,9 +2,9 @@
2
2
  "name": "@fluentui/react-tooltip",
3
3
  "entries": [
4
4
  {
5
- "date": "Wed, 23 Aug 2023 04:21:28 GMT",
6
- "tag": "@fluentui/react-tooltip_v0.0.0-nightly-20230823-0414.1",
7
- "version": "0.0.0-nightly-20230823-0414.1",
5
+ "date": "Fri, 25 Aug 2023 04:20:20 GMT",
6
+ "tag": "@fluentui/react-tooltip_v0.0.0-nightly-20230825-0413.1",
7
+ "version": "0.0.0-nightly-20230825-0413.1",
8
8
  "comments": {
9
9
  "prerelease": [
10
10
  {
@@ -16,56 +16,128 @@
16
16
  {
17
17
  "author": "beachball",
18
18
  "package": "@fluentui/react-tooltip",
19
- "comment": "Bump @fluentui/keyboard-keys to v0.0.0-nightly-20230823-0414.1",
20
- "commit": "c9933c3b7d556cf7d9267463865463585ab1e148"
19
+ "comment": "Bump @fluentui/keyboard-keys to v0.0.0-nightly-20230825-0413.1",
20
+ "commit": "e56d6f4060253d0076ffd31d26875d8c2359396b"
21
21
  },
22
22
  {
23
23
  "author": "beachball",
24
24
  "package": "@fluentui/react-tooltip",
25
- "comment": "Bump @fluentui/react-jsx-runtime to v0.0.0-nightly-20230823-0414.1",
26
- "commit": "c9933c3b7d556cf7d9267463865463585ab1e148"
25
+ "comment": "Bump @fluentui/react-jsx-runtime to v0.0.0-nightly-20230825-0413.1",
26
+ "commit": "e56d6f4060253d0076ffd31d26875d8c2359396b"
27
27
  },
28
28
  {
29
29
  "author": "beachball",
30
30
  "package": "@fluentui/react-tooltip",
31
- "comment": "Bump @fluentui/react-portal to v0.0.0-nightly-20230823-0414.1",
32
- "commit": "c9933c3b7d556cf7d9267463865463585ab1e148"
31
+ "comment": "Bump @fluentui/react-portal to v0.0.0-nightly-20230825-0413.1",
32
+ "commit": "e56d6f4060253d0076ffd31d26875d8c2359396b"
33
33
  },
34
34
  {
35
35
  "author": "beachball",
36
36
  "package": "@fluentui/react-tooltip",
37
- "comment": "Bump @fluentui/react-positioning to v0.0.0-nightly-20230823-0414.1",
38
- "commit": "c9933c3b7d556cf7d9267463865463585ab1e148"
37
+ "comment": "Bump @fluentui/react-positioning to v0.0.0-nightly-20230825-0413.1",
38
+ "commit": "e56d6f4060253d0076ffd31d26875d8c2359396b"
39
39
  },
40
40
  {
41
41
  "author": "beachball",
42
42
  "package": "@fluentui/react-tooltip",
43
- "comment": "Bump @fluentui/react-shared-contexts to v0.0.0-nightly-20230823-0414.1",
44
- "commit": "c9933c3b7d556cf7d9267463865463585ab1e148"
43
+ "comment": "Bump @fluentui/react-shared-contexts to v0.0.0-nightly-20230825-0413.1",
44
+ "commit": "e56d6f4060253d0076ffd31d26875d8c2359396b"
45
45
  },
46
46
  {
47
47
  "author": "beachball",
48
48
  "package": "@fluentui/react-tooltip",
49
- "comment": "Bump @fluentui/react-theme to v0.0.0-nightly-20230823-0414.1",
50
- "commit": "c9933c3b7d556cf7d9267463865463585ab1e148"
49
+ "comment": "Bump @fluentui/react-theme to v0.0.0-nightly-20230825-0413.1",
50
+ "commit": "e56d6f4060253d0076ffd31d26875d8c2359396b"
51
51
  },
52
52
  {
53
53
  "author": "beachball",
54
54
  "package": "@fluentui/react-tooltip",
55
- "comment": "Bump @fluentui/react-utilities to v0.0.0-nightly-20230823-0414.1",
56
- "commit": "c9933c3b7d556cf7d9267463865463585ab1e148"
55
+ "comment": "Bump @fluentui/react-utilities to v0.0.0-nightly-20230825-0413.1",
56
+ "commit": "e56d6f4060253d0076ffd31d26875d8c2359396b"
57
57
  },
58
58
  {
59
59
  "author": "beachball",
60
60
  "package": "@fluentui/react-tooltip",
61
- "comment": "Bump @fluentui/react-conformance to v0.0.0-nightly-20230823-0414.1",
62
- "commit": "c9933c3b7d556cf7d9267463865463585ab1e148"
61
+ "comment": "Bump @fluentui/react-conformance to v0.0.0-nightly-20230825-0413.1",
62
+ "commit": "e56d6f4060253d0076ffd31d26875d8c2359396b"
63
63
  },
64
64
  {
65
65
  "author": "beachball",
66
66
  "package": "@fluentui/react-tooltip",
67
- "comment": "Bump @fluentui/react-conformance-griffel to v0.0.0-nightly-20230823-0414.1",
68
- "commit": "c9933c3b7d556cf7d9267463865463585ab1e148"
67
+ "comment": "Bump @fluentui/react-conformance-griffel to v0.0.0-nightly-20230825-0413.1",
68
+ "commit": "e56d6f4060253d0076ffd31d26875d8c2359396b"
69
+ }
70
+ ]
71
+ }
72
+ },
73
+ {
74
+ "date": "Thu, 24 Aug 2023 10:26:34 GMT",
75
+ "tag": "@fluentui/react-tooltip_v9.3.0",
76
+ "version": "9.3.0",
77
+ "comments": {
78
+ "minor": [
79
+ {
80
+ "author": "behowell@microsoft.com",
81
+ "package": "@fluentui/react-tooltip",
82
+ "commit": "45b2bea5f7bd1c8a453ce37726818f572afe0ab0",
83
+ "comment": "feat: Add documentKeyboardEvent to OnVisibleChangeData when Tooltip is hidden via Escape"
84
+ },
85
+ {
86
+ "author": "beachball",
87
+ "package": "@fluentui/react-tooltip",
88
+ "comment": "Bump @fluentui/react-jsx-runtime to v9.0.2",
89
+ "commit": "3f6c5a749ef403c06b9c9e753df9afbb84a2ecb5"
90
+ },
91
+ {
92
+ "author": "beachball",
93
+ "package": "@fluentui/react-tooltip",
94
+ "comment": "Bump @fluentui/react-portal to v9.3.9",
95
+ "commit": "3f6c5a749ef403c06b9c9e753df9afbb84a2ecb5"
96
+ },
97
+ {
98
+ "author": "beachball",
99
+ "package": "@fluentui/react-tooltip",
100
+ "comment": "Bump @fluentui/react-positioning to v9.9.7",
101
+ "commit": "3f6c5a749ef403c06b9c9e753df9afbb84a2ecb5"
102
+ },
103
+ {
104
+ "author": "beachball",
105
+ "package": "@fluentui/react-tooltip",
106
+ "comment": "Bump @fluentui/react-utilities to v9.12.0",
107
+ "commit": "3f6c5a749ef403c06b9c9e753df9afbb84a2ecb5"
108
+ }
109
+ ]
110
+ }
111
+ },
112
+ {
113
+ "date": "Wed, 23 Aug 2023 12:01:49 GMT",
114
+ "tag": "@fluentui/react-tooltip_v9.2.34",
115
+ "version": "9.2.34",
116
+ "comments": {
117
+ "patch": [
118
+ {
119
+ "author": "beachball",
120
+ "package": "@fluentui/react-tooltip",
121
+ "comment": "Bump @fluentui/react-jsx-runtime to v9.0.1",
122
+ "commit": "f94b6d05d7642563cb96e2718402fbbbab65cbbc"
123
+ },
124
+ {
125
+ "author": "beachball",
126
+ "package": "@fluentui/react-tooltip",
127
+ "comment": "Bump @fluentui/react-portal to v9.3.8",
128
+ "commit": "f94b6d05d7642563cb96e2718402fbbbab65cbbc"
129
+ },
130
+ {
131
+ "author": "beachball",
132
+ "package": "@fluentui/react-tooltip",
133
+ "comment": "Bump @fluentui/react-positioning to v9.9.6",
134
+ "commit": "f94b6d05d7642563cb96e2718402fbbbab65cbbc"
135
+ },
136
+ {
137
+ "author": "beachball",
138
+ "package": "@fluentui/react-tooltip",
139
+ "comment": "Bump @fluentui/react-utilities to v9.11.2",
140
+ "commit": "f94b6d05d7642563cb96e2718402fbbbab65cbbc"
69
141
  }
70
142
  ]
71
143
  }
package/CHANGELOG.md CHANGED
@@ -1,26 +1,51 @@
1
1
  # Change Log - @fluentui/react-tooltip
2
2
 
3
- This log was last generated on Wed, 23 Aug 2023 04:21:28 GMT and should not be manually modified.
3
+ This log was last generated on Fri, 25 Aug 2023 04:20:20 GMT and should not be manually modified.
4
4
 
5
5
  <!-- Start content -->
6
6
 
7
- ## [0.0.0-nightly-20230823-0414.1](https://github.com/microsoft/fluentui/tree/@fluentui/react-tooltip_v0.0.0-nightly-20230823-0414.1)
7
+ ## [0.0.0-nightly-20230825-0413.1](https://github.com/microsoft/fluentui/tree/@fluentui/react-tooltip_v0.0.0-nightly-20230825-0413.1)
8
8
 
9
- Wed, 23 Aug 2023 04:21:28 GMT
10
- [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tooltip_v9.2.33..@fluentui/react-tooltip_v0.0.0-nightly-20230823-0414.1)
9
+ Fri, 25 Aug 2023 04:20:20 GMT
10
+ [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tooltip_v9.3.0..@fluentui/react-tooltip_v0.0.0-nightly-20230825-0413.1)
11
11
 
12
12
  ### Changes
13
13
 
14
14
  - Release nightly v9 ([commit](https://github.com/microsoft/fluentui/commit/not available) by fluentui-internal@service.microsoft.com)
15
- - Bump @fluentui/keyboard-keys to v0.0.0-nightly-20230823-0414.1 ([commit](https://github.com/microsoft/fluentui/commit/c9933c3b7d556cf7d9267463865463585ab1e148) by beachball)
16
- - Bump @fluentui/react-jsx-runtime to v0.0.0-nightly-20230823-0414.1 ([commit](https://github.com/microsoft/fluentui/commit/c9933c3b7d556cf7d9267463865463585ab1e148) by beachball)
17
- - Bump @fluentui/react-portal to v0.0.0-nightly-20230823-0414.1 ([commit](https://github.com/microsoft/fluentui/commit/c9933c3b7d556cf7d9267463865463585ab1e148) by beachball)
18
- - Bump @fluentui/react-positioning to v0.0.0-nightly-20230823-0414.1 ([commit](https://github.com/microsoft/fluentui/commit/c9933c3b7d556cf7d9267463865463585ab1e148) by beachball)
19
- - Bump @fluentui/react-shared-contexts to v0.0.0-nightly-20230823-0414.1 ([commit](https://github.com/microsoft/fluentui/commit/c9933c3b7d556cf7d9267463865463585ab1e148) by beachball)
20
- - Bump @fluentui/react-theme to v0.0.0-nightly-20230823-0414.1 ([commit](https://github.com/microsoft/fluentui/commit/c9933c3b7d556cf7d9267463865463585ab1e148) by beachball)
21
- - Bump @fluentui/react-utilities to v0.0.0-nightly-20230823-0414.1 ([commit](https://github.com/microsoft/fluentui/commit/c9933c3b7d556cf7d9267463865463585ab1e148) by beachball)
22
- - Bump @fluentui/react-conformance to v0.0.0-nightly-20230823-0414.1 ([commit](https://github.com/microsoft/fluentui/commit/c9933c3b7d556cf7d9267463865463585ab1e148) by beachball)
23
- - Bump @fluentui/react-conformance-griffel to v0.0.0-nightly-20230823-0414.1 ([commit](https://github.com/microsoft/fluentui/commit/c9933c3b7d556cf7d9267463865463585ab1e148) by beachball)
15
+ - Bump @fluentui/keyboard-keys to v0.0.0-nightly-20230825-0413.1 ([commit](https://github.com/microsoft/fluentui/commit/e56d6f4060253d0076ffd31d26875d8c2359396b) by beachball)
16
+ - Bump @fluentui/react-jsx-runtime to v0.0.0-nightly-20230825-0413.1 ([commit](https://github.com/microsoft/fluentui/commit/e56d6f4060253d0076ffd31d26875d8c2359396b) by beachball)
17
+ - Bump @fluentui/react-portal to v0.0.0-nightly-20230825-0413.1 ([commit](https://github.com/microsoft/fluentui/commit/e56d6f4060253d0076ffd31d26875d8c2359396b) by beachball)
18
+ - Bump @fluentui/react-positioning to v0.0.0-nightly-20230825-0413.1 ([commit](https://github.com/microsoft/fluentui/commit/e56d6f4060253d0076ffd31d26875d8c2359396b) by beachball)
19
+ - Bump @fluentui/react-shared-contexts to v0.0.0-nightly-20230825-0413.1 ([commit](https://github.com/microsoft/fluentui/commit/e56d6f4060253d0076ffd31d26875d8c2359396b) by beachball)
20
+ - Bump @fluentui/react-theme to v0.0.0-nightly-20230825-0413.1 ([commit](https://github.com/microsoft/fluentui/commit/e56d6f4060253d0076ffd31d26875d8c2359396b) by beachball)
21
+ - Bump @fluentui/react-utilities to v0.0.0-nightly-20230825-0413.1 ([commit](https://github.com/microsoft/fluentui/commit/e56d6f4060253d0076ffd31d26875d8c2359396b) by beachball)
22
+ - Bump @fluentui/react-conformance to v0.0.0-nightly-20230825-0413.1 ([commit](https://github.com/microsoft/fluentui/commit/e56d6f4060253d0076ffd31d26875d8c2359396b) by beachball)
23
+ - Bump @fluentui/react-conformance-griffel to v0.0.0-nightly-20230825-0413.1 ([commit](https://github.com/microsoft/fluentui/commit/e56d6f4060253d0076ffd31d26875d8c2359396b) by beachball)
24
+
25
+ ## [9.3.0](https://github.com/microsoft/fluentui/tree/@fluentui/react-tooltip_v9.3.0)
26
+
27
+ Thu, 24 Aug 2023 10:26:34 GMT
28
+ [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tooltip_v9.2.34..@fluentui/react-tooltip_v9.3.0)
29
+
30
+ ### Minor changes
31
+
32
+ - feat: Add documentKeyboardEvent to OnVisibleChangeData when Tooltip is hidden via Escape ([PR #28951](https://github.com/microsoft/fluentui/pull/28951) by behowell@microsoft.com)
33
+ - Bump @fluentui/react-jsx-runtime to v9.0.2 ([PR #28973](https://github.com/microsoft/fluentui/pull/28973) by beachball)
34
+ - Bump @fluentui/react-portal to v9.3.9 ([PR #28973](https://github.com/microsoft/fluentui/pull/28973) by beachball)
35
+ - Bump @fluentui/react-positioning to v9.9.7 ([PR #28973](https://github.com/microsoft/fluentui/pull/28973) by beachball)
36
+ - Bump @fluentui/react-utilities to v9.12.0 ([PR #28973](https://github.com/microsoft/fluentui/pull/28973) by beachball)
37
+
38
+ ## [9.2.34](https://github.com/microsoft/fluentui/tree/@fluentui/react-tooltip_v9.2.34)
39
+
40
+ Wed, 23 Aug 2023 12:01:49 GMT
41
+ [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tooltip_v9.2.33..@fluentui/react-tooltip_v9.2.34)
42
+
43
+ ### Patches
44
+
45
+ - Bump @fluentui/react-jsx-runtime to v9.0.1 ([PR #28957](https://github.com/microsoft/fluentui/pull/28957) by beachball)
46
+ - Bump @fluentui/react-portal to v9.3.8 ([PR #28957](https://github.com/microsoft/fluentui/pull/28957) by beachball)
47
+ - Bump @fluentui/react-positioning to v9.9.6 ([PR #28957](https://github.com/microsoft/fluentui/pull/28957) by beachball)
48
+ - Bump @fluentui/react-utilities to v9.11.2 ([PR #28957](https://github.com/microsoft/fluentui/pull/28957) by beachball)
24
49
 
25
50
  ## [9.2.33](https://github.com/microsoft/fluentui/tree/@fluentui/react-tooltip_v9.2.33)
26
51
 
package/dist/index.d.ts CHANGED
@@ -12,6 +12,11 @@ import type { TriggerProps } from '@fluentui/react-utilities';
12
12
  */
13
13
  export declare type OnVisibleChangeData = {
14
14
  visible: boolean;
15
+ /**
16
+ * The event object, if this visibility change was triggered by a keyboard event on the document element
17
+ * (such as Escape to hide the visible tooltip). Otherwise undefined.
18
+ */
19
+ documentKeyboardEvent?: KeyboardEvent;
15
20
  };
16
21
 
17
22
  /**
@@ -45,7 +50,10 @@ export declare type TooltipProps = ComponentProps<TooltipSlots> & TriggerProps<T
45
50
  */
46
51
  hideDelay?: number;
47
52
  /**
48
- * Notification when the visibility of the tooltip is changing
53
+ * Notification when the visibility of the tooltip is changing.
54
+ *
55
+ * **Note**: for backwards compatibility, `event` will be undefined if this was triggered by a keyboard event on
56
+ * the document element. Use `data.documentKeyboardEvent` if the keyboard event object is needed.
49
57
  */
50
58
  onVisibleChange?: (event: React_2.PointerEvent<HTMLElement> | React_2.FocusEvent<HTMLElement> | undefined, data: OnVisibleChangeData) => void;
51
59
  /**
@@ -1 +1 @@
1
- {"version":3,"sources":["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"],"names":["React"],"mappings":"AAAA,YAAYA,WAAW,QAAQ"}
1
+ {"version":3,"sources":["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 * The event object, if this visibility change was triggered by a keyboard event on the document element\n * (such as Escape to hide the visible tooltip). Otherwise undefined.\n */\n documentKeyboardEvent?: KeyboardEvent;\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 * **Note**: for backwards compatibility, `event` will be undefined if this was triggered by a keyboard event on\n * the document element. Use `data.documentKeyboardEvent` if the keyboard event object is needed.\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"],"names":["React"],"mappings":"AAAA,YAAYA,WAAW,QAAQ"}
@@ -22,15 +22,13 @@ import { Escape } from '@fluentui/keyboard-keys';
22
22
  state: props.visible,
23
23
  initialState: false
24
24
  });
25
- const setVisible = React.useCallback((newVisible, ev)=>{
25
+ const setVisible = React.useCallback((ev, data)=>{
26
26
  clearDelayTimeout();
27
27
  setVisibleInternal((oldVisible)=>{
28
- if (newVisible !== oldVisible) {
29
- onVisibleChange === null || onVisibleChange === void 0 ? void 0 : onVisibleChange(ev, {
30
- visible: newVisible
31
- });
28
+ if (data.visible !== oldVisible) {
29
+ onVisibleChange === null || onVisibleChange === void 0 ? void 0 : onVisibleChange(ev, data);
32
30
  }
33
- return newVisible;
31
+ return data.visible;
34
32
  });
35
33
  }, [
36
34
  clearDelayTimeout,
@@ -80,13 +78,16 @@ import { Escape } from '@fluentui/keyboard-keys';
80
78
  if (visible) {
81
79
  var _context_visibleTooltip;
82
80
  const thisTooltip = {
83
- hide: ()=>setVisible(false)
81
+ hide: (ev)=>setVisible(undefined, {
82
+ visible: false,
83
+ documentKeyboardEvent: ev
84
+ })
84
85
  };
85
86
  (_context_visibleTooltip = context.visibleTooltip) === null || _context_visibleTooltip === void 0 ? void 0 : _context_visibleTooltip.hide();
86
87
  context.visibleTooltip = thisTooltip;
87
88
  const onDocumentKeyDown = (ev)=>{
88
89
  if (ev.key === Escape) {
89
- thisTooltip.hide();
90
+ thisTooltip.hide(ev);
90
91
  // stop propagation to avoid conflicting with other elements that listen for `Escape`
91
92
  // e,g: Dialog, Popover, Menu
92
93
  ev.stopPropagation();
@@ -127,7 +128,9 @@ import { Escape } from '@fluentui/keyboard-keys';
127
128
  // Show immediately if another tooltip is already visible
128
129
  const delay = context.visibleTooltip ? 0 : state.showDelay;
129
130
  setDelayTimeout(()=>{
130
- setVisible(true, ev);
131
+ setVisible(ev, {
132
+ visible: true
133
+ });
131
134
  }, delay);
132
135
  ev.persist(); // Persist the event since the setVisible call will happen asynchronously
133
136
  }, [
@@ -145,7 +148,9 @@ import { Escape } from '@fluentui/keyboard-keys';
145
148
  ignoreNextFocusEventRef.current = (targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.activeElement) === ev.target;
146
149
  }
147
150
  setDelayTimeout(()=>{
148
- setVisible(false, ev);
151
+ setVisible(ev, {
152
+ visible: false
153
+ });
149
154
  }, delay);
150
155
  ev.persist(); // Persist the event since the setVisible call will happen asynchronously
151
156
  }, [
@@ -1 +1 @@
1
- {"version":3,"sources":["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 useControllableState,\n useId,\n useIsomorphicLayoutEffect,\n useIsSSR,\n useMergedRefs,\n useTimeout,\n getTriggerChild,\n mergeCallbacks,\n useEventCallback,\n slot,\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: slot.always(content, {\n defaultProps: {\n role: 'tooltip',\n },\n elementType: 'div',\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"],"names":["React","mergeArrowOffset","resolvePositioningShorthand","usePositioning","useTooltipVisibility_unstable","useTooltipVisibility","useFluent_unstable","useFluent","applyTriggerPropsToChildren","useControllableState","useId","useIsomorphicLayoutEffect","useIsSSR","useMergedRefs","useTimeout","getTriggerChild","mergeCallbacks","useEventCallback","slot","arrowHeight","tooltipBorderRadius","Escape","useTooltip_unstable","props","child","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","always","defaultProps","role","elementType","id","positioningOptions","enabled","arrowPadding","position","align","offset","targetRef","containerRef","arrowRef","ref","thisTooltip","hide","visibleTooltip","onDocumentKeyDown","key","stopPropagation","addEventListener","capture","undefined","removeEventListener","ignoreNextFocusEventRef","useRef","onEnterTrigger","type","current","delay","persist","onLeaveTrigger","activeElement","target","onPointerEnter","onPointerLeave","onFocus","onBlur","triggerAriaProps","childTargetRef"],"mappings":"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"}
1
+ {"version":3,"sources":["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 useControllableState,\n useId,\n useIsomorphicLayoutEffect,\n useIsSSR,\n useMergedRefs,\n useTimeout,\n getTriggerChild,\n mergeCallbacks,\n useEventCallback,\n slot,\n} from '@fluentui/react-utilities';\nimport type { TooltipProps, TooltipState, TooltipChildProps, OnVisibleChangeData } 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 (ev: React.PointerEvent<HTMLElement> | React.FocusEvent<HTMLElement> | undefined, data: OnVisibleChangeData) => {\n clearDelayTimeout();\n setVisibleInternal(oldVisible => {\n if (data.visible !== oldVisible) {\n onVisibleChange?.(ev, data);\n }\n return data.visible;\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: slot.always(content, {\n defaultProps: {\n role: 'tooltip',\n },\n elementType: 'div',\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 = {\n hide: (ev?: KeyboardEvent) => setVisible(undefined, { visible: false, documentKeyboardEvent: ev }),\n };\n\n context.visibleTooltip?.hide();\n context.visibleTooltip = thisTooltip;\n\n const onDocumentKeyDown = (ev: KeyboardEvent) => {\n if (ev.key === Escape) {\n thisTooltip.hide(ev);\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(ev, { visible: true });\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(ev, { visible: false });\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"],"names":["React","mergeArrowOffset","resolvePositioningShorthand","usePositioning","useTooltipVisibility_unstable","useTooltipVisibility","useFluent_unstable","useFluent","applyTriggerPropsToChildren","useControllableState","useId","useIsomorphicLayoutEffect","useIsSSR","useMergedRefs","useTimeout","getTriggerChild","mergeCallbacks","useEventCallback","slot","arrowHeight","tooltipBorderRadius","Escape","useTooltip_unstable","props","child","context","isServerSideRender","targetDocument","setDelayTimeout","clearDelayTimeout","appearance","children","content","withArrow","positioning","onVisibleChange","relationship","showDelay","hideDelay","mountNode","visible","setVisibleInternal","state","initialState","setVisible","useCallback","ev","data","oldVisible","shouldRenderTooltip","components","always","defaultProps","role","elementType","id","positioningOptions","enabled","arrowPadding","position","align","offset","targetRef","containerRef","arrowRef","ref","thisTooltip","hide","undefined","documentKeyboardEvent","visibleTooltip","onDocumentKeyDown","key","stopPropagation","addEventListener","capture","removeEventListener","ignoreNextFocusEventRef","useRef","onEnterTrigger","type","current","delay","persist","onLeaveTrigger","activeElement","target","onPointerEnter","onPointerLeave","onFocus","onBlur","triggerAriaProps","childTargetRef"],"mappings":"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"}
@@ -24,15 +24,13 @@ const useTooltip_unstable = (props)=>{
24
24
  state: props.visible,
25
25
  initialState: false
26
26
  });
27
- const setVisible = _react.useCallback((newVisible, ev)=>{
27
+ const setVisible = _react.useCallback((ev, data)=>{
28
28
  clearDelayTimeout();
29
29
  setVisibleInternal((oldVisible)=>{
30
- if (newVisible !== oldVisible) {
31
- onVisibleChange === null || onVisibleChange === void 0 ? void 0 : onVisibleChange(ev, {
32
- visible: newVisible
33
- });
30
+ if (data.visible !== oldVisible) {
31
+ onVisibleChange === null || onVisibleChange === void 0 ? void 0 : onVisibleChange(ev, data);
34
32
  }
35
- return newVisible;
33
+ return data.visible;
36
34
  });
37
35
  }, [
38
36
  clearDelayTimeout,
@@ -82,13 +80,16 @@ const useTooltip_unstable = (props)=>{
82
80
  if (visible) {
83
81
  var _context_visibleTooltip;
84
82
  const thisTooltip = {
85
- hide: ()=>setVisible(false)
83
+ hide: (ev)=>setVisible(undefined, {
84
+ visible: false,
85
+ documentKeyboardEvent: ev
86
+ })
86
87
  };
87
88
  (_context_visibleTooltip = context.visibleTooltip) === null || _context_visibleTooltip === void 0 ? void 0 : _context_visibleTooltip.hide();
88
89
  context.visibleTooltip = thisTooltip;
89
90
  const onDocumentKeyDown = (ev)=>{
90
91
  if (ev.key === _keyboardKeys.Escape) {
91
- thisTooltip.hide();
92
+ thisTooltip.hide(ev);
92
93
  // stop propagation to avoid conflicting with other elements that listen for `Escape`
93
94
  // e,g: Dialog, Popover, Menu
94
95
  ev.stopPropagation();
@@ -129,7 +130,9 @@ const useTooltip_unstable = (props)=>{
129
130
  // Show immediately if another tooltip is already visible
130
131
  const delay = context.visibleTooltip ? 0 : state.showDelay;
131
132
  setDelayTimeout(()=>{
132
- setVisible(true, ev);
133
+ setVisible(ev, {
134
+ visible: true
135
+ });
133
136
  }, delay);
134
137
  ev.persist(); // Persist the event since the setVisible call will happen asynchronously
135
138
  }, [
@@ -147,7 +150,9 @@ const useTooltip_unstable = (props)=>{
147
150
  ignoreNextFocusEventRef.current = (targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.activeElement) === ev.target;
148
151
  }
149
152
  setDelayTimeout(()=>{
150
- setVisible(false, ev);
153
+ setVisible(ev, {
154
+ visible: false
155
+ });
151
156
  }, delay);
152
157
  ev.persist(); // Persist the event since the setVisible call will happen asynchronously
153
158
  }, [
@@ -1 +1 @@
1
- {"version":3,"sources":["useTooltip.js"],"sourcesContent":["import * as React from 'react';\nimport { mergeArrowOffset, resolvePositioningShorthand, usePositioning } from '@fluentui/react-positioning';\nimport { useTooltipVisibility_unstable as useTooltipVisibility, useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport { applyTriggerPropsToChildren, useControllableState, useId, useIsomorphicLayoutEffect, useIsSSR, useMergedRefs, useTimeout, getTriggerChild, mergeCallbacks, useEventCallback, slot } from '@fluentui/react-utilities';\nimport { arrowHeight, tooltipBorderRadius } from './private/constants';\nimport { Escape } from '@fluentui/keyboard-keys';\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 */ export const useTooltip_unstable = (props)=>{\n var _child_props, _child_props1, _child_props2, _child_props3;\n const context = useTooltipVisibility();\n const isServerSideRender = useIsSSR();\n const { targetDocument } = useFluent();\n const [setDelayTimeout, clearDelayTimeout] = useTimeout();\n const { appearance ='normal' , children , content , withArrow =false , positioning ='above' , onVisibleChange , relationship , showDelay =250 , hideDelay =250 , mountNode } = props;\n const [visible, setVisibleInternal] = useControllableState({\n state: props.visible,\n initialState: false\n });\n const setVisible = React.useCallback((newVisible, ev)=>{\n clearDelayTimeout();\n setVisibleInternal((oldVisible)=>{\n if (newVisible !== oldVisible) {\n onVisibleChange === null || onVisibleChange === void 0 ? void 0 : onVisibleChange(ev, {\n visible: newVisible\n });\n }\n return newVisible;\n });\n }, [\n clearDelayTimeout,\n setVisibleInternal,\n onVisibleChange\n ]);\n const state = {\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: slot.always(content, {\n defaultProps: {\n role: 'tooltip'\n },\n elementType: 'div'\n })\n };\n state.content.id = useId('tooltip-', state.content.id);\n const positioningOptions = {\n enabled: state.visible,\n arrowPadding: 2 * tooltipBorderRadius,\n position: 'above',\n align: 'center',\n offset: 4,\n ...resolvePositioningShorthand(state.positioning)\n };\n if (state.withArrow) {\n positioningOptions.offset = mergeArrowOffset(positioningOptions.offset, arrowHeight);\n }\n const { targetRef , containerRef , arrowRef } = usePositioning(positioningOptions);\n state.content.ref = useMergedRefs(state.content.ref, containerRef);\n state.arrowRef = arrowRef;\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 var _context_visibleTooltip;\n const thisTooltip = {\n hide: ()=>setVisible(false)\n };\n (_context_visibleTooltip = context.visibleTooltip) === null || _context_visibleTooltip === void 0 ? void 0 : _context_visibleTooltip.hide();\n context.visibleTooltip = thisTooltip;\n const onDocumentKeyDown = (ev)=>{\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 targetDocument === null || targetDocument === void 0 ? void 0 : 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 return ()=>{\n if (context.visibleTooltip === thisTooltip) {\n context.visibleTooltip = undefined;\n }\n targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.removeEventListener('keydown', onDocumentKeyDown, {\n capture: true\n });\n };\n }\n }, [\n context,\n targetDocument,\n visible,\n 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 // Listener for onPointerEnter and onFocus on the trigger element\n const onEnterTrigger = React.useCallback((ev)=>{\n if (ev.type === 'focus' && ignoreNextFocusEventRef.current) {\n ignoreNextFocusEventRef.current = false;\n return;\n }\n // Show immediately if another tooltip is already visible\n const delay = context.visibleTooltip ? 0 : state.showDelay;\n setDelayTimeout(()=>{\n setVisible(true, ev);\n }, delay);\n ev.persist(); // Persist the event since the setVisible call will happen asynchronously\n }, [\n setDelayTimeout,\n setVisible,\n state.showDelay,\n context\n ]);\n // Listener for onPointerLeave and onBlur on the trigger element\n const onLeaveTrigger = React.useCallback((ev)=>{\n let delay = state.hideDelay;\n if (ev.type === 'blur') {\n // Hide immediately when losing focus\n delay = 0;\n ignoreNextFocusEventRef.current = (targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.activeElement) === ev.target;\n }\n setDelayTimeout(()=>{\n setVisible(false, ev);\n }, delay);\n ev.persist(); // Persist the event since the setVisible call will happen asynchronously\n }, [\n setDelayTimeout,\n setVisible,\n state.hideDelay,\n targetDocument\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 const child = getTriggerChild(children);\n const triggerAriaProps = {};\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 // Don't render the Tooltip in SSR to avoid hydration errors\n if (isServerSideRender) {\n state.shouldRenderTooltip = false;\n }\n const childTargetRef = useMergedRefs(child === null || child === void 0 ? void 0 : child.ref, targetRef);\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 === null || child === void 0 ? void 0 : 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 === null || child === void 0 ? void 0 : child.ref,\n 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)),\n 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)),\n 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)),\n 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))\n });\n return state;\n};\n"],"names":["useTooltip_unstable","props","_child_props","_child_props1","_child_props2","_child_props3","context","useTooltipVisibility","isServerSideRender","useIsSSR","targetDocument","useFluent","setDelayTimeout","clearDelayTimeout","useTimeout","appearance","children","content","withArrow","positioning","onVisibleChange","relationship","showDelay","hideDelay","mountNode","visible","setVisibleInternal","useControllableState","state","initialState","setVisible","React","useCallback","newVisible","ev","oldVisible","shouldRenderTooltip","components","slot","always","defaultProps","role","elementType","id","useId","positioningOptions","enabled","arrowPadding","tooltipBorderRadius","position","align","offset","resolvePositioningShorthand","mergeArrowOffset","arrowHeight","targetRef","containerRef","arrowRef","usePositioning","ref","useMergedRefs","useIsomorphicLayoutEffect","_context_visibleTooltip","thisTooltip","hide","visibleTooltip","onDocumentKeyDown","key","Escape","stopPropagation","addEventListener","capture","undefined","removeEventListener","ignoreNextFocusEventRef","useRef","onEnterTrigger","type","current","delay","persist","onLeaveTrigger","activeElement","target","onPointerEnter","mergeCallbacks","onPointerLeave","onFocus","onBlur","child","getTriggerChild","triggerAriaProps","childTargetRef","applyTriggerPropsToChildren","useEventCallback"],"mappings":"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"}
1
+ {"version":3,"sources":["useTooltip.js"],"sourcesContent":["import * as React from 'react';\nimport { mergeArrowOffset, resolvePositioningShorthand, usePositioning } from '@fluentui/react-positioning';\nimport { useTooltipVisibility_unstable as useTooltipVisibility, useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport { applyTriggerPropsToChildren, useControllableState, useId, useIsomorphicLayoutEffect, useIsSSR, useMergedRefs, useTimeout, getTriggerChild, mergeCallbacks, useEventCallback, slot } from '@fluentui/react-utilities';\nimport { arrowHeight, tooltipBorderRadius } from './private/constants';\nimport { Escape } from '@fluentui/keyboard-keys';\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 */ export const useTooltip_unstable = (props)=>{\n var _child_props, _child_props1, _child_props2, _child_props3;\n const context = useTooltipVisibility();\n const isServerSideRender = useIsSSR();\n const { targetDocument } = useFluent();\n const [setDelayTimeout, clearDelayTimeout] = useTimeout();\n const { appearance ='normal' , children , content , withArrow =false , positioning ='above' , onVisibleChange , relationship , showDelay =250 , hideDelay =250 , mountNode } = props;\n const [visible, setVisibleInternal] = useControllableState({\n state: props.visible,\n initialState: false\n });\n const setVisible = React.useCallback((ev, data)=>{\n clearDelayTimeout();\n setVisibleInternal((oldVisible)=>{\n if (data.visible !== oldVisible) {\n onVisibleChange === null || onVisibleChange === void 0 ? void 0 : onVisibleChange(ev, data);\n }\n return data.visible;\n });\n }, [\n clearDelayTimeout,\n setVisibleInternal,\n onVisibleChange\n ]);\n const state = {\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: slot.always(content, {\n defaultProps: {\n role: 'tooltip'\n },\n elementType: 'div'\n })\n };\n state.content.id = useId('tooltip-', state.content.id);\n const positioningOptions = {\n enabled: state.visible,\n arrowPadding: 2 * tooltipBorderRadius,\n position: 'above',\n align: 'center',\n offset: 4,\n ...resolvePositioningShorthand(state.positioning)\n };\n if (state.withArrow) {\n positioningOptions.offset = mergeArrowOffset(positioningOptions.offset, arrowHeight);\n }\n const { targetRef , containerRef , arrowRef } = usePositioning(positioningOptions);\n state.content.ref = useMergedRefs(state.content.ref, containerRef);\n state.arrowRef = arrowRef;\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 var _context_visibleTooltip;\n const thisTooltip = {\n hide: (ev)=>setVisible(undefined, {\n visible: false,\n documentKeyboardEvent: ev\n })\n };\n (_context_visibleTooltip = context.visibleTooltip) === null || _context_visibleTooltip === void 0 ? void 0 : _context_visibleTooltip.hide();\n context.visibleTooltip = thisTooltip;\n const onDocumentKeyDown = (ev)=>{\n if (ev.key === Escape) {\n thisTooltip.hide(ev);\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 targetDocument === null || targetDocument === void 0 ? void 0 : 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 return ()=>{\n if (context.visibleTooltip === thisTooltip) {\n context.visibleTooltip = undefined;\n }\n targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.removeEventListener('keydown', onDocumentKeyDown, {\n capture: true\n });\n };\n }\n }, [\n context,\n targetDocument,\n visible,\n 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 // Listener for onPointerEnter and onFocus on the trigger element\n const onEnterTrigger = React.useCallback((ev)=>{\n if (ev.type === 'focus' && ignoreNextFocusEventRef.current) {\n ignoreNextFocusEventRef.current = false;\n return;\n }\n // Show immediately if another tooltip is already visible\n const delay = context.visibleTooltip ? 0 : state.showDelay;\n setDelayTimeout(()=>{\n setVisible(ev, {\n visible: true\n });\n }, delay);\n ev.persist(); // Persist the event since the setVisible call will happen asynchronously\n }, [\n setDelayTimeout,\n setVisible,\n state.showDelay,\n context\n ]);\n // Listener for onPointerLeave and onBlur on the trigger element\n const onLeaveTrigger = React.useCallback((ev)=>{\n let delay = state.hideDelay;\n if (ev.type === 'blur') {\n // Hide immediately when losing focus\n delay = 0;\n ignoreNextFocusEventRef.current = (targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.activeElement) === ev.target;\n }\n setDelayTimeout(()=>{\n setVisible(ev, {\n visible: false\n });\n }, delay);\n ev.persist(); // Persist the event since the setVisible call will happen asynchronously\n }, [\n setDelayTimeout,\n setVisible,\n state.hideDelay,\n targetDocument\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 const child = getTriggerChild(children);\n const triggerAriaProps = {};\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 // Don't render the Tooltip in SSR to avoid hydration errors\n if (isServerSideRender) {\n state.shouldRenderTooltip = false;\n }\n const childTargetRef = useMergedRefs(child === null || child === void 0 ? void 0 : child.ref, targetRef);\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 === null || child === void 0 ? void 0 : 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 === null || child === void 0 ? void 0 : child.ref,\n 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)),\n 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)),\n 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)),\n 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))\n });\n return state;\n};\n"],"names":["useTooltip_unstable","props","_child_props","_child_props1","_child_props2","_child_props3","context","useTooltipVisibility","isServerSideRender","useIsSSR","targetDocument","useFluent","setDelayTimeout","clearDelayTimeout","useTimeout","appearance","children","content","withArrow","positioning","onVisibleChange","relationship","showDelay","hideDelay","mountNode","visible","setVisibleInternal","useControllableState","state","initialState","setVisible","React","useCallback","ev","data","oldVisible","shouldRenderTooltip","components","slot","always","defaultProps","role","elementType","id","useId","positioningOptions","enabled","arrowPadding","tooltipBorderRadius","position","align","offset","resolvePositioningShorthand","mergeArrowOffset","arrowHeight","targetRef","containerRef","arrowRef","usePositioning","ref","useMergedRefs","useIsomorphicLayoutEffect","_context_visibleTooltip","thisTooltip","hide","undefined","documentKeyboardEvent","visibleTooltip","onDocumentKeyDown","key","Escape","stopPropagation","addEventListener","capture","removeEventListener","ignoreNextFocusEventRef","useRef","onEnterTrigger","type","current","delay","persist","onLeaveTrigger","activeElement","target","onPointerEnter","mergeCallbacks","onPointerLeave","onFocus","onBlur","child","getTriggerChild","triggerAriaProps","childTargetRef","applyTriggerPropsToChildren","useEventCallback"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluentui/react-tooltip",
3
- "version": "0.0.0-nightly-20230823-0414.1",
3
+ "version": "0.0.0-nightly-20230825-0413.1",
4
4
  "description": "React components for building web experiences",
5
5
  "main": "lib-commonjs/index.js",
6
6
  "module": "lib/index.js",
@@ -27,19 +27,19 @@
27
27
  },
28
28
  "devDependencies": {
29
29
  "@fluentui/eslint-plugin": "*",
30
- "@fluentui/react-conformance": "0.0.0-nightly-20230823-0414.1",
31
- "@fluentui/react-conformance-griffel": "0.0.0-nightly-20230823-0414.1",
30
+ "@fluentui/react-conformance": "0.0.0-nightly-20230825-0413.1",
31
+ "@fluentui/react-conformance-griffel": "0.0.0-nightly-20230825-0413.1",
32
32
  "@fluentui/scripts-api-extractor": "*",
33
33
  "@fluentui/scripts-tasks": "*"
34
34
  },
35
35
  "dependencies": {
36
- "@fluentui/keyboard-keys": "0.0.0-nightly-20230823-0414.1",
37
- "@fluentui/react-jsx-runtime": "0.0.0-nightly-20230823-0414.1",
38
- "@fluentui/react-portal": "0.0.0-nightly-20230823-0414.1",
39
- "@fluentui/react-positioning": "0.0.0-nightly-20230823-0414.1",
40
- "@fluentui/react-shared-contexts": "0.0.0-nightly-20230823-0414.1",
41
- "@fluentui/react-theme": "0.0.0-nightly-20230823-0414.1",
42
- "@fluentui/react-utilities": "0.0.0-nightly-20230823-0414.1",
36
+ "@fluentui/keyboard-keys": "0.0.0-nightly-20230825-0413.1",
37
+ "@fluentui/react-jsx-runtime": "0.0.0-nightly-20230825-0413.1",
38
+ "@fluentui/react-portal": "0.0.0-nightly-20230825-0413.1",
39
+ "@fluentui/react-positioning": "0.0.0-nightly-20230825-0413.1",
40
+ "@fluentui/react-shared-contexts": "0.0.0-nightly-20230825-0413.1",
41
+ "@fluentui/react-theme": "0.0.0-nightly-20230825-0413.1",
42
+ "@fluentui/react-utilities": "0.0.0-nightly-20230825-0413.1",
43
43
  "@griffel/react": "^1.5.14",
44
44
  "@swc/helpers": "^0.4.14"
45
45
  },