@fluentui/react-toast 9.0.6 → 9.1.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 +115 -1
- package/CHANGELOG.md +34 -2
- package/lib/components/AriaLive/renderAriaLive.js +3 -3
- package/lib/components/AriaLive/renderAriaLive.js.map +1 -1
- package/lib/components/AriaLive/useAriaLive.js +7 -7
- package/lib/components/AriaLive/useAriaLive.js.map +1 -1
- package/lib/components/Timer/useTimerStyles.styles.js +1 -1
- package/lib/components/Timer/useTimerStyles.styles.js.map +1 -1
- package/lib/components/Toast/renderToast.js +3 -3
- package/lib/components/Toast/renderToast.js.map +1 -1
- package/lib/components/Toast/useToast.js +4 -2
- package/lib/components/Toast/useToast.js.map +1 -1
- package/lib/components/Toast/useToastStyles.styles.js +1 -1
- package/lib/components/Toast/useToastStyles.styles.js.map +1 -1
- package/lib/components/ToastBody/renderToastBody.js +3 -3
- package/lib/components/ToastBody/renderToastBody.js.map +1 -1
- package/lib/components/ToastBody/useToastBody.js +7 -3
- package/lib/components/ToastBody/useToastBody.js.map +1 -1
- package/lib/components/ToastBody/useToastBodyStyles.styles.js +2 -2
- package/lib/components/ToastBody/useToastBodyStyles.styles.js.map +1 -1
- package/lib/components/ToastContainer/renderToastContainer.js +3 -3
- package/lib/components/ToastContainer/renderToastContainer.js.map +1 -1
- package/lib/components/ToastContainer/useToastContainer.js +34 -15
- package/lib/components/ToastContainer/useToastContainer.js.map +1 -1
- package/lib/components/ToastContainer/useToastContainerStyles.styles.js +4 -4
- package/lib/components/ToastContainer/useToastContainerStyles.styles.js.map +1 -1
- package/lib/components/ToastFooter/renderToastFooter.js +3 -3
- package/lib/components/ToastFooter/renderToastFooter.js.map +1 -1
- package/lib/components/ToastFooter/useToastFooter.js +4 -2
- package/lib/components/ToastFooter/useToastFooter.js.map +1 -1
- package/lib/components/ToastFooter/useToastFooterStyles.styles.js +1 -1
- package/lib/components/ToastFooter/useToastFooterStyles.styles.js.map +1 -1
- package/lib/components/ToastTitle/renderToastTitle.js +3 -3
- package/lib/components/ToastTitle/renderToastTitle.js.map +1 -1
- package/lib/components/ToastTitle/useToastTitle.js +11 -6
- package/lib/components/ToastTitle/useToastTitle.js.map +1 -1
- package/lib/components/ToastTitle/useToastTitleStyles.styles.js +3 -3
- package/lib/components/ToastTitle/useToastTitleStyles.styles.js.map +1 -1
- package/lib/components/Toaster/renderToaster.js +4 -4
- package/lib/components/Toaster/renderToaster.js.map +1 -1
- package/lib/components/Toaster/useToastAnnounce.js +47 -0
- package/lib/components/Toaster/useToastAnnounce.js.map +1 -0
- package/lib/components/Toaster/useToaster.js +40 -35
- package/lib/components/Toaster/useToaster.js.map +1 -1
- package/lib/components/Toaster/useToasterFocusManagement.js +85 -0
- package/lib/components/Toaster/useToasterFocusManagement.js.map +1 -0
- package/lib/state/useToaster.js +24 -6
- package/lib/state/useToaster.js.map +1 -1
- package/lib-commonjs/components/AriaLive/renderAriaLive.js +2 -2
- package/lib-commonjs/components/AriaLive/renderAriaLive.js.map +1 -1
- package/lib-commonjs/components/AriaLive/useAriaLive.js +6 -6
- package/lib-commonjs/components/AriaLive/useAriaLive.js.map +1 -1
- package/lib-commonjs/components/Timer/useTimerStyles.styles.js +3 -5
- package/lib-commonjs/components/Timer/useTimerStyles.styles.js.map +1 -1
- package/lib-commonjs/components/Toast/renderToast.js +2 -2
- package/lib-commonjs/components/Toast/renderToast.js.map +1 -1
- package/lib-commonjs/components/Toast/useToast.js +3 -1
- package/lib-commonjs/components/Toast/useToast.js.map +1 -1
- package/lib-commonjs/components/Toast/useToastStyles.styles.js +2 -2
- package/lib-commonjs/components/Toast/useToastStyles.styles.js.map +1 -1
- package/lib-commonjs/components/ToastBody/renderToastBody.js +2 -2
- package/lib-commonjs/components/ToastBody/renderToastBody.js.map +1 -1
- package/lib-commonjs/components/ToastBody/useToastBody.js +6 -2
- package/lib-commonjs/components/ToastBody/useToastBody.js.map +1 -1
- package/lib-commonjs/components/ToastBody/useToastBodyStyles.styles.js +2 -2
- package/lib-commonjs/components/ToastBody/useToastBodyStyles.styles.js.map +1 -1
- package/lib-commonjs/components/ToastContainer/renderToastContainer.js +2 -2
- package/lib-commonjs/components/ToastContainer/renderToastContainer.js.map +1 -1
- package/lib-commonjs/components/ToastContainer/useToastContainer.js +33 -14
- package/lib-commonjs/components/ToastContainer/useToastContainer.js.map +1 -1
- package/lib-commonjs/components/ToastContainer/useToastContainerStyles.styles.js +9 -13
- package/lib-commonjs/components/ToastContainer/useToastContainerStyles.styles.js.map +1 -1
- package/lib-commonjs/components/ToastFooter/renderToastFooter.js +2 -2
- package/lib-commonjs/components/ToastFooter/renderToastFooter.js.map +1 -1
- package/lib-commonjs/components/ToastFooter/useToastFooter.js +3 -1
- package/lib-commonjs/components/ToastFooter/useToastFooter.js.map +1 -1
- package/lib-commonjs/components/ToastFooter/useToastFooterStyles.styles.js +1 -1
- package/lib-commonjs/components/ToastFooter/useToastFooterStyles.styles.js.map +1 -1
- package/lib-commonjs/components/ToastTitle/renderToastTitle.js +2 -2
- package/lib-commonjs/components/ToastTitle/renderToastTitle.js.map +1 -1
- package/lib-commonjs/components/ToastTitle/useToastTitle.js +10 -5
- package/lib-commonjs/components/ToastTitle/useToastTitle.js.map +1 -1
- package/lib-commonjs/components/ToastTitle/useToastTitleStyles.styles.js +5 -5
- package/lib-commonjs/components/ToastTitle/useToastTitleStyles.styles.js.map +1 -1
- package/lib-commonjs/components/Toaster/renderToaster.js +3 -3
- package/lib-commonjs/components/Toaster/renderToaster.js.map +1 -1
- package/lib-commonjs/components/Toaster/useToastAnnounce.js +50 -0
- package/lib-commonjs/components/Toaster/useToastAnnounce.js.map +1 -0
- package/lib-commonjs/components/Toaster/useToaster.js +39 -34
- package/lib-commonjs/components/Toaster/useToaster.js.map +1 -1
- package/lib-commonjs/components/Toaster/useToasterFocusManagement.js +92 -0
- package/lib-commonjs/components/Toaster/useToasterFocusManagement.js.map +1 -0
- package/lib-commonjs/state/useToaster.js +24 -6
- package/lib-commonjs/state/useToaster.js.map +1 -1
- package/package.json +10 -9
|
@@ -10,51 +10,56 @@ const _interopRequireWildcard = require("@swc/helpers/lib/_interop_require_wildc
|
|
|
10
10
|
const _react = /*#__PURE__*/ _interopRequireWildcard(require("react"));
|
|
11
11
|
const _reactUtilities = require("@fluentui/react-utilities");
|
|
12
12
|
const _reactSharedContexts = require("@fluentui/react-shared-contexts");
|
|
13
|
+
const _reactTabster = require("@fluentui/react-tabster");
|
|
14
|
+
const _keyboardKeys = require("@fluentui/keyboard-keys");
|
|
13
15
|
const _state = require("../../state");
|
|
14
16
|
const _toastContainer = require("../ToastContainer");
|
|
17
|
+
const _useToasterFocusManagement = require("./useToasterFocusManagement");
|
|
18
|
+
const _useToastAnnounce = require("./useToastAnnounce");
|
|
15
19
|
const useToaster_unstable = (props)=>{
|
|
16
20
|
const { offset , announce: announceProp , ...rest } = props;
|
|
17
21
|
const announceRef = _react.useRef(()=>null);
|
|
18
|
-
const { toastsToRender , isToastVisible , pauseAllToasts , playAllToasts , tryRestoreFocus } = (0, _state.useToaster)(rest);
|
|
22
|
+
const { toastsToRender , isToastVisible , pauseAllToasts , playAllToasts , tryRestoreFocus , closeAllToasts } = (0, _state.useToaster)(rest);
|
|
19
23
|
const announce = _react.useCallback((message, options)=>announceRef.current(message, options), []);
|
|
20
24
|
const { dir } = (0, _reactSharedContexts.useFluent_unstable)();
|
|
21
|
-
const rootProps = (0, _reactUtilities.getNativeElementProps)('div', rest)
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
pauseAllToasts();
|
|
29
|
-
}
|
|
30
|
-
});
|
|
31
|
-
el.addEventListener('focusout', (e)=>{
|
|
32
|
-
if ((0, _reactUtilities.isHTMLElement)(e.currentTarget) && !e.currentTarget.contains((0, _reactUtilities.isHTMLElement)(e.relatedTarget) ? e.relatedTarget : null)) {
|
|
33
|
-
playAllToasts();
|
|
34
|
-
tryRestoreFocus();
|
|
35
|
-
}
|
|
36
|
-
});
|
|
25
|
+
const rootProps = _reactUtilities.slot.always((0, _reactUtilities.getNativeElementProps)('div', rest), {
|
|
26
|
+
elementType: 'div'
|
|
27
|
+
});
|
|
28
|
+
const focusableGroupAttr = (0, _reactTabster.useFocusableGroup)({
|
|
29
|
+
tabBehavior: 'limited-trap-focus',
|
|
30
|
+
ignoreDefaultKeydown: {
|
|
31
|
+
Escape: true
|
|
37
32
|
}
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
33
|
+
});
|
|
34
|
+
const onKeyDown = (0, _reactUtilities.useEventCallback)((e)=>{
|
|
35
|
+
var _props_onKeyDown;
|
|
36
|
+
if (e.key === _keyboardKeys.Escape) {
|
|
37
|
+
e.preventDefault();
|
|
38
|
+
closeAllToasts();
|
|
39
|
+
}
|
|
40
|
+
(_props_onKeyDown = props.onKeyDown) === null || _props_onKeyDown === void 0 ? void 0 : _props_onKeyDown.call(props, e);
|
|
41
|
+
});
|
|
42
|
+
const usePositionSlot = (toastPosition)=>{
|
|
44
43
|
var _toastsToRender_get;
|
|
45
|
-
|
|
44
|
+
const focusManagementRef = (0, _useToasterFocusManagement.useToasterFocusManagement_unstable)(pauseAllToasts, playAllToasts);
|
|
45
|
+
const { announceToast , toasterRef } = (0, _useToastAnnounce.useToastAnnounce)(announceProp !== null && announceProp !== void 0 ? announceProp : announce);
|
|
46
|
+
return _reactUtilities.slot.optional(toastsToRender.has(toastPosition) ? rootProps : null, {
|
|
46
47
|
defaultProps: {
|
|
47
|
-
ref:
|
|
48
|
+
ref: (0, _reactUtilities.useMergedRefs)(focusManagementRef, toasterRef),
|
|
48
49
|
children: (_toastsToRender_get = toastsToRender.get(toastPosition)) === null || _toastsToRender_get === void 0 ? void 0 : _toastsToRender_get.map((toast)=>/*#__PURE__*/ _react.createElement(_toastContainer.ToastContainer, {
|
|
49
50
|
...toast,
|
|
50
51
|
tryRestoreFocus: tryRestoreFocus,
|
|
51
52
|
intent: toast.intent,
|
|
52
|
-
announce:
|
|
53
|
+
announce: announceToast,
|
|
53
54
|
key: toast.toastId,
|
|
54
55
|
visible: isToastVisible(toast.toastId)
|
|
55
56
|
}, toast.content)),
|
|
56
|
-
|
|
57
|
-
|
|
57
|
+
onKeyDown,
|
|
58
|
+
...focusableGroupAttr,
|
|
59
|
+
'data-toaster-position': toastPosition,
|
|
60
|
+
role: 'list'
|
|
61
|
+
},
|
|
62
|
+
elementType: 'div'
|
|
58
63
|
});
|
|
59
64
|
};
|
|
60
65
|
return {
|
|
@@ -66,13 +71,13 @@ const useToaster_unstable = (props)=>{
|
|
|
66
71
|
topStart: 'div',
|
|
67
72
|
topEnd: 'div'
|
|
68
73
|
},
|
|
69
|
-
root:
|
|
70
|
-
|
|
74
|
+
root: _reactUtilities.slot.always(rootProps, {
|
|
75
|
+
elementType: 'div'
|
|
71
76
|
}),
|
|
72
|
-
bottomStart:
|
|
73
|
-
bottomEnd:
|
|
74
|
-
topStart:
|
|
75
|
-
topEnd:
|
|
77
|
+
bottomStart: usePositionSlot(_state.TOAST_POSITIONS.bottomStart),
|
|
78
|
+
bottomEnd: usePositionSlot(_state.TOAST_POSITIONS.bottomEnd),
|
|
79
|
+
topStart: usePositionSlot(_state.TOAST_POSITIONS.topStart),
|
|
80
|
+
topEnd: usePositionSlot(_state.TOAST_POSITIONS.topEnd),
|
|
76
81
|
announceRef,
|
|
77
82
|
offset,
|
|
78
83
|
announce: announceProp !== null && announceProp !== void 0 ? announceProp : announce,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["useToaster.js"],"sourcesContent":["import * as React from 'react';\nimport { getNativeElementProps,
|
|
1
|
+
{"version":3,"sources":["useToaster.js"],"sourcesContent":["import * as React from 'react';\nimport { getNativeElementProps, useEventCallback, useMergedRefs, slot } from '@fluentui/react-utilities';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport { useFocusableGroup } from '@fluentui/react-tabster';\nimport { Escape } from '@fluentui/keyboard-keys';\nimport { TOAST_POSITIONS, useToaster } from '../../state';\nimport { ToastContainer } from '../ToastContainer';\nimport { useToasterFocusManagement_unstable } from './useToasterFocusManagement';\nimport { useToastAnnounce } from './useToastAnnounce';\n/**\n * Create the state required to render Toaster.\n *\n * @param props - props from this instance of Toaster\n */ export const useToaster_unstable = (props)=>{\n const { offset , announce: announceProp , ...rest } = props;\n const announceRef = React.useRef(()=>null);\n const { toastsToRender , isToastVisible , pauseAllToasts , playAllToasts , tryRestoreFocus , closeAllToasts } = useToaster(rest);\n const announce = React.useCallback((message, options)=>announceRef.current(message, options), []);\n const { dir } = useFluent();\n const rootProps = slot.always(getNativeElementProps('div', rest), {\n elementType: 'div'\n });\n const focusableGroupAttr = useFocusableGroup({\n tabBehavior: 'limited-trap-focus',\n ignoreDefaultKeydown: {\n Escape: true\n }\n });\n const onKeyDown = useEventCallback((e)=>{\n var _props_onKeyDown;\n if (e.key === Escape) {\n e.preventDefault();\n closeAllToasts();\n }\n (_props_onKeyDown = props.onKeyDown) === null || _props_onKeyDown === void 0 ? void 0 : _props_onKeyDown.call(props, e);\n });\n const usePositionSlot = (toastPosition)=>{\n var _toastsToRender_get;\n const focusManagementRef = useToasterFocusManagement_unstable(pauseAllToasts, playAllToasts);\n const { announceToast , toasterRef } = useToastAnnounce(announceProp !== null && announceProp !== void 0 ? announceProp : announce);\n return slot.optional(toastsToRender.has(toastPosition) ? rootProps : null, {\n defaultProps: {\n ref: useMergedRefs(focusManagementRef, toasterRef),\n children: (_toastsToRender_get = toastsToRender.get(toastPosition)) === null || _toastsToRender_get === void 0 ? void 0 : _toastsToRender_get.map((toast)=>/*#__PURE__*/ React.createElement(ToastContainer, {\n ...toast,\n tryRestoreFocus: tryRestoreFocus,\n intent: toast.intent,\n announce: announceToast,\n key: toast.toastId,\n visible: isToastVisible(toast.toastId)\n }, toast.content)),\n onKeyDown,\n ...focusableGroupAttr,\n 'data-toaster-position': toastPosition,\n role: 'list'\n },\n elementType: 'div'\n });\n };\n return {\n dir,\n components: {\n root: 'div',\n bottomStart: 'div',\n bottomEnd: 'div',\n topStart: 'div',\n topEnd: 'div'\n },\n root: slot.always(rootProps, {\n elementType: 'div'\n }),\n bottomStart: usePositionSlot(TOAST_POSITIONS.bottomStart),\n bottomEnd: usePositionSlot(TOAST_POSITIONS.bottomEnd),\n topStart: usePositionSlot(TOAST_POSITIONS.topStart),\n topEnd: usePositionSlot(TOAST_POSITIONS.topEnd),\n announceRef,\n offset,\n announce: announceProp !== null && announceProp !== void 0 ? announceProp : announce,\n renderAriaLive: !announceProp\n };\n};\n"],"names":["useToaster_unstable","props","offset","announce","announceProp","rest","announceRef","React","useRef","toastsToRender","isToastVisible","pauseAllToasts","playAllToasts","tryRestoreFocus","closeAllToasts","useToaster","useCallback","message","options","current","dir","useFluent","rootProps","slot","always","getNativeElementProps","elementType","focusableGroupAttr","useFocusableGroup","tabBehavior","ignoreDefaultKeydown","Escape","onKeyDown","useEventCallback","e","_props_onKeyDown","key","preventDefault","call","usePositionSlot","toastPosition","_toastsToRender_get","focusManagementRef","useToasterFocusManagement_unstable","announceToast","toasterRef","useToastAnnounce","optional","has","defaultProps","ref","useMergedRefs","children","get","map","toast","createElement","ToastContainer","intent","toastId","visible","content","role","components","root","bottomStart","bottomEnd","topStart","topEnd","TOAST_POSITIONS","renderAriaLive"],"mappings":"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"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "useToasterFocusManagement_unstable", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: ()=>useToasterFocusManagement_unstable
|
|
8
|
+
});
|
|
9
|
+
const _interopRequireWildcard = require("@swc/helpers/lib/_interop_require_wildcard.js").default;
|
|
10
|
+
const _reactUtilities = require("@fluentui/react-utilities");
|
|
11
|
+
const _react = /*#__PURE__*/ _interopRequireWildcard(require("react"));
|
|
12
|
+
const _reactSharedContexts = require("@fluentui/react-shared-contexts");
|
|
13
|
+
const _keyboardKeys = require("@fluentui/keyboard-keys");
|
|
14
|
+
const _toastContainer = require("../ToastContainer");
|
|
15
|
+
const noop = ()=>undefined;
|
|
16
|
+
function useToasterFocusManagement_unstable(pauseAllToasts, playAllToasts) {
|
|
17
|
+
const { targetDocument } = (0, _reactSharedContexts.useFluent_unstable)();
|
|
18
|
+
const cleanupListenersRef = _react.useRef(noop);
|
|
19
|
+
return _react.useCallback((el)=>{
|
|
20
|
+
if (!el || !targetDocument) {
|
|
21
|
+
cleanupListenersRef.current();
|
|
22
|
+
cleanupListenersRef.current = noop;
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
const toastContainerWalker = targetDocument.createTreeWalker(el, NodeFilter.SHOW_ELEMENT, {
|
|
26
|
+
acceptNode (node) {
|
|
27
|
+
if ((0, _reactUtilities.isHTMLElement)(node) && node.classList.contains(_toastContainer.toastContainerClassNames.root)) {
|
|
28
|
+
return NodeFilter.FILTER_ACCEPT;
|
|
29
|
+
}
|
|
30
|
+
return NodeFilter.FILTER_SKIP;
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
/**
|
|
34
|
+
* FIXME: https://github.com/microsoft/tabster/issues/299
|
|
35
|
+
* Toasts should be arrow navigable and focus should be trapped in a stack of tasts
|
|
36
|
+
* This is a temporary measure, Tabster does not have an API yet to enable mover arrow keys from within grouppers
|
|
37
|
+
* Once tabster fully supports this use case, remove this hook
|
|
38
|
+
*/ const keydownListener = (e)=>{
|
|
39
|
+
const { target , key } = e;
|
|
40
|
+
if (!(0, _reactUtilities.isHTMLElement)(target)) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
if (key === _keyboardKeys.ArrowDown) {
|
|
44
|
+
toastContainerWalker.currentNode = target;
|
|
45
|
+
let nextToastContainer = toastContainerWalker.nextNode();
|
|
46
|
+
if (!nextToastContainer) {
|
|
47
|
+
toastContainerWalker.currentNode = el;
|
|
48
|
+
nextToastContainer = toastContainerWalker.nextNode();
|
|
49
|
+
}
|
|
50
|
+
if ((0, _reactUtilities.isHTMLElement)(nextToastContainer)) {
|
|
51
|
+
nextToastContainer.focus();
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
if (key === _keyboardKeys.ArrowUp) {
|
|
55
|
+
toastContainerWalker.currentNode = target;
|
|
56
|
+
let prevToastContainer = toastContainerWalker.previousNode();
|
|
57
|
+
if (prevToastContainer && prevToastContainer.contains(target)) {
|
|
58
|
+
prevToastContainer = toastContainerWalker.previousNode();
|
|
59
|
+
}
|
|
60
|
+
if (!prevToastContainer) {
|
|
61
|
+
toastContainerWalker.currentNode = el;
|
|
62
|
+
prevToastContainer = toastContainerWalker.lastChild();
|
|
63
|
+
}
|
|
64
|
+
if ((0, _reactUtilities.isHTMLElement)(prevToastContainer)) {
|
|
65
|
+
prevToastContainer.focus();
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
const focusInListener = (e)=>{
|
|
70
|
+
if ((0, _reactUtilities.isHTMLElement)(e.currentTarget) && !e.currentTarget.contains((0, _reactUtilities.isHTMLElement)(e.relatedTarget) ? e.relatedTarget : null)) {
|
|
71
|
+
pauseAllToasts();
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
const focusOutListener = (e)=>{
|
|
75
|
+
if ((0, _reactUtilities.isHTMLElement)(e.currentTarget) && !e.currentTarget.contains((0, _reactUtilities.isHTMLElement)(e.relatedTarget) ? e.relatedTarget : null)) {
|
|
76
|
+
playAllToasts();
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
el.addEventListener('keydown', keydownListener);
|
|
80
|
+
el.addEventListener('focusin', focusInListener);
|
|
81
|
+
el.addEventListener('focusout', focusOutListener);
|
|
82
|
+
cleanupListenersRef.current = ()=>{
|
|
83
|
+
el.removeEventListener('keydown', keydownListener);
|
|
84
|
+
el.removeEventListener('focusin', focusInListener);
|
|
85
|
+
el.removeEventListener('focusout', focusOutListener);
|
|
86
|
+
};
|
|
87
|
+
}, [
|
|
88
|
+
targetDocument,
|
|
89
|
+
pauseAllToasts,
|
|
90
|
+
playAllToasts
|
|
91
|
+
]);
|
|
92
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["useToasterFocusManagement.js"],"sourcesContent":["import { isHTMLElement } from '@fluentui/react-utilities';\nimport * as React from 'react';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport { ArrowDown, ArrowUp } from '@fluentui/keyboard-keys';\nimport { toastContainerClassNames } from '../ToastContainer';\nconst noop = ()=>undefined;\n/**\n * @internal\n */ export function useToasterFocusManagement_unstable(pauseAllToasts, playAllToasts) {\n const { targetDocument } = useFluent();\n const cleanupListenersRef = React.useRef(noop);\n return React.useCallback((el)=>{\n if (!el || !targetDocument) {\n cleanupListenersRef.current();\n cleanupListenersRef.current = noop;\n return;\n }\n const toastContainerWalker = targetDocument.createTreeWalker(el, NodeFilter.SHOW_ELEMENT, {\n acceptNode (node) {\n if (isHTMLElement(node) && node.classList.contains(toastContainerClassNames.root)) {\n return NodeFilter.FILTER_ACCEPT;\n }\n return NodeFilter.FILTER_SKIP;\n }\n });\n /**\n * FIXME: https://github.com/microsoft/tabster/issues/299\n * Toasts should be arrow navigable and focus should be trapped in a stack of tasts\n * This is a temporary measure, Tabster does not have an API yet to enable mover arrow keys from within grouppers\n * Once tabster fully supports this use case, remove this hook\n */ const keydownListener = (e)=>{\n const { target , key } = e;\n if (!isHTMLElement(target)) {\n return;\n }\n if (key === ArrowDown) {\n toastContainerWalker.currentNode = target;\n let nextToastContainer = toastContainerWalker.nextNode();\n if (!nextToastContainer) {\n toastContainerWalker.currentNode = el;\n nextToastContainer = toastContainerWalker.nextNode();\n }\n if (isHTMLElement(nextToastContainer)) {\n nextToastContainer.focus();\n }\n }\n if (key === ArrowUp) {\n toastContainerWalker.currentNode = target;\n let prevToastContainer = toastContainerWalker.previousNode();\n if (prevToastContainer && prevToastContainer.contains(target)) {\n prevToastContainer = toastContainerWalker.previousNode();\n }\n if (!prevToastContainer) {\n toastContainerWalker.currentNode = el;\n prevToastContainer = toastContainerWalker.lastChild();\n }\n if (isHTMLElement(prevToastContainer)) {\n prevToastContainer.focus();\n }\n }\n };\n const focusInListener = (e)=>{\n if (isHTMLElement(e.currentTarget) && !e.currentTarget.contains(isHTMLElement(e.relatedTarget) ? e.relatedTarget : null)) {\n pauseAllToasts();\n }\n };\n const focusOutListener = (e)=>{\n if (isHTMLElement(e.currentTarget) && !e.currentTarget.contains(isHTMLElement(e.relatedTarget) ? e.relatedTarget : null)) {\n playAllToasts();\n }\n };\n el.addEventListener('keydown', keydownListener);\n el.addEventListener('focusin', focusInListener);\n el.addEventListener('focusout', focusOutListener);\n cleanupListenersRef.current = ()=>{\n el.removeEventListener('keydown', keydownListener);\n el.removeEventListener('focusin', focusInListener);\n el.removeEventListener('focusout', focusOutListener);\n };\n }, [\n targetDocument,\n pauseAllToasts,\n playAllToasts\n ]);\n}\n"],"names":["useToasterFocusManagement_unstable","noop","undefined","pauseAllToasts","playAllToasts","targetDocument","useFluent","cleanupListenersRef","React","useRef","useCallback","el","current","toastContainerWalker","createTreeWalker","NodeFilter","SHOW_ELEMENT","acceptNode","node","isHTMLElement","classList","contains","toastContainerClassNames","root","FILTER_ACCEPT","FILTER_SKIP","keydownListener","e","target","key","ArrowDown","currentNode","nextToastContainer","nextNode","focus","ArrowUp","prevToastContainer","previousNode","lastChild","focusInListener","currentTarget","relatedTarget","focusOutListener","addEventListener","removeEventListener"],"mappings":"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"}
|
|
@@ -27,11 +27,6 @@ function useToaster(options = {}) {
|
|
|
27
27
|
return shortcuts.focus(e);
|
|
28
28
|
}
|
|
29
29
|
});
|
|
30
|
-
const tryRestoreFocus = _react.useCallback(()=>{
|
|
31
|
-
var _lastActiveElementRef_current;
|
|
32
|
-
(_lastActiveElementRef_current = lastActiveElementRef.current) === null || _lastActiveElementRef_current === void 0 ? void 0 : _lastActiveElementRef_current.focus();
|
|
33
|
-
lastActiveElementRef.current = null;
|
|
34
|
-
}, []);
|
|
35
30
|
const pauseAllToasts = _react.useCallback(()=>{
|
|
36
31
|
toaster.visibleToasts.forEach((toastId)=>{
|
|
37
32
|
var _toast_imperativeRef_current;
|
|
@@ -67,6 +62,28 @@ function useToaster(options = {}) {
|
|
|
67
62
|
}, [
|
|
68
63
|
toaster
|
|
69
64
|
]);
|
|
65
|
+
const tryRestoreFocus = _react.useCallback(()=>{
|
|
66
|
+
const mostRecentToast = getMostRecentVisibleToast();
|
|
67
|
+
if (mostRecentToast === null || mostRecentToast === void 0 ? void 0 : mostRecentToast.imperativeRef.current) {
|
|
68
|
+
mostRecentToast.imperativeRef.current.focus();
|
|
69
|
+
} else {
|
|
70
|
+
var _lastActiveElementRef_current;
|
|
71
|
+
(_lastActiveElementRef_current = lastActiveElementRef.current) === null || _lastActiveElementRef_current === void 0 ? void 0 : _lastActiveElementRef_current.focus();
|
|
72
|
+
lastActiveElementRef.current = null;
|
|
73
|
+
}
|
|
74
|
+
}, [
|
|
75
|
+
getMostRecentVisibleToast
|
|
76
|
+
]);
|
|
77
|
+
const closeAllToasts = _react.useCallback(()=>{
|
|
78
|
+
toaster.visibleToasts.forEach((toastId)=>{
|
|
79
|
+
const toast = toaster.toasts.get(toastId);
|
|
80
|
+
toast === null || toast === void 0 ? void 0 : toast.close();
|
|
81
|
+
});
|
|
82
|
+
tryRestoreFocus();
|
|
83
|
+
}, [
|
|
84
|
+
toaster,
|
|
85
|
+
tryRestoreFocus
|
|
86
|
+
]);
|
|
70
87
|
_react.useEffect(()=>{
|
|
71
88
|
if (!targetDocument) {
|
|
72
89
|
return;
|
|
@@ -166,6 +183,7 @@ function useToaster(options = {}) {
|
|
|
166
183
|
toastsToRender,
|
|
167
184
|
pauseAllToasts,
|
|
168
185
|
playAllToasts,
|
|
169
|
-
tryRestoreFocus
|
|
186
|
+
tryRestoreFocus,
|
|
187
|
+
closeAllToasts
|
|
170
188
|
};
|
|
171
189
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["useToaster.js"],"sourcesContent":["import * as React from 'react';\nimport { isHTMLElement, useEventCallback, useForceUpdate } from '@fluentui/react-utilities';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport { createToaster } from './vanilla';\nimport { EVENTS } from './constants';\nexport function useToaster(options = {}) {\n const forceUpdate = useForceUpdate();\n const { toasterId: userToasterId , shortcuts } = options;\n // Currently the toaster options can never be changed at runtime\n const [toaster] = React.useState(()=>createToaster(options));\n const { targetDocument } = useFluent();\n const lastActiveElementRef = React.useRef(null);\n const isCorrectToaster = useEventCallback((toasterId)=>{\n return toasterId === userToasterId;\n });\n const isFocusShortcut = useEventCallback((e)=>{\n if (shortcuts === null || shortcuts === void 0 ? void 0 : shortcuts.focus) {\n return shortcuts.focus(e);\n }\n });\n const tryRestoreFocus = React.useCallback(()=>{\n var _lastActiveElementRef_current;\n (_lastActiveElementRef_current = lastActiveElementRef.current) === null || _lastActiveElementRef_current === void 0 ? void 0 : _lastActiveElementRef_current.focus();\n lastActiveElementRef.current = null;\n }, []);\n const pauseAllToasts = React.useCallback(()=>{\n toaster.visibleToasts.forEach((toastId)=>{\n var _toast_imperativeRef_current;\n const toast = toaster.toasts.get(toastId);\n (_toast_imperativeRef_current = toast === null || toast === void 0 ? void 0 : toast.imperativeRef.current) === null || _toast_imperativeRef_current === void 0 ? void 0 : _toast_imperativeRef_current.pause();\n });\n }, [\n toaster\n ]);\n const playAllToasts = React.useCallback(()=>{\n toaster.visibleToasts.forEach((toastId)=>{\n var _toast_imperativeRef_current;\n const toast = toaster.toasts.get(toastId);\n (_toast_imperativeRef_current = toast === null || toast === void 0 ? void 0 : toast.imperativeRef.current) === null || _toast_imperativeRef_current === void 0 ? void 0 : _toast_imperativeRef_current.play();\n });\n }, [\n toaster\n ]);\n const getMostRecentVisibleToast = React.useCallback(()=>{\n return Array.from(toaster.visibleToasts).reduce((cur, next)=>{\n const toast = toaster.toasts.get(next);\n if (!toast) {\n return cur;\n }\n if (!cur) {\n return toast;\n }\n if (cur.order < (toast === null || toast === void 0 ? void 0 : toast.order)) {\n return toast;\n }\n return cur;\n }, undefined);\n }, [\n toaster\n ]);\n React.useEffect(()=>{\n if (!targetDocument) {\n return;\n }\n const addToastListener = (eventType, callback)=>{\n const listener = (e)=>{\n if (!isCorrectToaster(e.detail.toasterId)) {\n return;\n }\n callback(e);\n forceUpdate();\n };\n targetDocument.addEventListener(eventType, listener);\n return ()=>targetDocument.removeEventListener(eventType, listener);\n };\n const buildToast = (e)=>{\n toaster.buildToast(e.detail, forceUpdate);\n };\n const dismissToast = (e)=>{\n toaster.dismissToast(e.detail.toastId);\n };\n const updateToast = (e)=>{\n toaster.updateToast(e.detail);\n };\n const dismissAllToasts = (e)=>{\n toaster.dismissAllToasts();\n };\n const pauseToast = (e)=>{\n const toast = toaster.toasts.get(e.detail.toastId);\n if (toast) {\n var _toast_imperativeRef_current;\n (_toast_imperativeRef_current = toast.imperativeRef.current) === null || _toast_imperativeRef_current === void 0 ? void 0 : _toast_imperativeRef_current.pause();\n }\n };\n const playToast = (e)=>{\n const toast = toaster.toasts.get(e.detail.toastId);\n if (toast) {\n var _toast_imperativeRef_current;\n (_toast_imperativeRef_current = toast.imperativeRef.current) === null || _toast_imperativeRef_current === void 0 ? void 0 : _toast_imperativeRef_current.play();\n }\n };\n const cleanupBuildListener = addToastListener(EVENTS.show, buildToast);\n const cleanupUpdateListener = addToastListener(EVENTS.update, updateToast);\n const cleanupDismissListener = addToastListener(EVENTS.dismiss, dismissToast);\n const cleanupDismissAllListener = addToastListener(EVENTS.dismissAll, dismissAllToasts);\n const cleanupPauseListener = addToastListener(EVENTS.pause, pauseToast);\n const cleanupPlayListener = addToastListener(EVENTS.play, playToast);\n const focusShortcutListener = (e)=>{\n if (isFocusShortcut(e)) {\n pauseAllToasts();\n const mostRecentToast = getMostRecentVisibleToast();\n if (mostRecentToast) {\n var _mostRecentToast_imperativeRef_current;\n lastActiveElementRef.current = isHTMLElement(targetDocument.activeElement) ? targetDocument.activeElement : null;\n (_mostRecentToast_imperativeRef_current = mostRecentToast.imperativeRef.current) === null || _mostRecentToast_imperativeRef_current === void 0 ? void 0 : _mostRecentToast_imperativeRef_current.focus();\n }\n }\n };\n targetDocument.addEventListener('keydown', focusShortcutListener);\n return ()=>{\n cleanupBuildListener();\n cleanupDismissAllListener();\n cleanupUpdateListener();\n cleanupDismissListener();\n cleanupPauseListener();\n cleanupPlayListener();\n targetDocument.removeEventListener('keydown', focusShortcutListener);\n };\n }, [\n toaster,\n forceUpdate,\n targetDocument,\n isCorrectToaster,\n pauseAllToasts,\n getMostRecentVisibleToast,\n isFocusShortcut\n ]);\n const toastsToRender = (()=>{\n if (!toaster) {\n return new Map();\n }\n const toRender = new Map();\n const toasts = Array.from(toaster.toasts.values());\n toasts.forEach((toast)=>{\n const { position } = toast;\n toRender.has(position) || toRender.set(position, []);\n if (position.startsWith('bottom')) {\n toRender.get(position).push(toast);\n } else {\n toRender.get(position).unshift(toast);\n }\n });\n return toRender;\n })();\n return {\n isToastVisible: toaster.isToastVisible,\n toastsToRender,\n pauseAllToasts,\n playAllToasts,\n tryRestoreFocus\n };\n}\n"],"names":["useToaster","options","forceUpdate","useForceUpdate","toasterId","userToasterId","shortcuts","toaster","React","useState","createToaster","targetDocument","useFluent","lastActiveElementRef","useRef","isCorrectToaster","useEventCallback","isFocusShortcut","e","focus","tryRestoreFocus","useCallback","_lastActiveElementRef_current","current","pauseAllToasts","visibleToasts","forEach","toastId","_toast_imperativeRef_current","toast","toasts","get","imperativeRef","pause","playAllToasts","play","getMostRecentVisibleToast","Array","from","reduce","cur","next","order","undefined","useEffect","addToastListener","eventType","callback","listener","detail","addEventListener","removeEventListener","buildToast","dismissToast","updateToast","dismissAllToasts","pauseToast","playToast","cleanupBuildListener","EVENTS","show","cleanupUpdateListener","update","cleanupDismissListener","dismiss","cleanupDismissAllListener","dismissAll","cleanupPauseListener","cleanupPlayListener","focusShortcutListener","mostRecentToast","_mostRecentToast_imperativeRef_current","isHTMLElement","activeElement","toastsToRender","Map","toRender","values","position","has","set","startsWith","push","unshift","isToastVisible"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["useToaster.js"],"sourcesContent":["import * as React from 'react';\nimport { isHTMLElement, useEventCallback, useForceUpdate } from '@fluentui/react-utilities';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport { createToaster } from './vanilla';\nimport { EVENTS } from './constants';\nexport function useToaster(options = {}) {\n const forceUpdate = useForceUpdate();\n const { toasterId: userToasterId , shortcuts } = options;\n // Currently the toaster options can never be changed at runtime\n const [toaster] = React.useState(()=>createToaster(options));\n const { targetDocument } = useFluent();\n const lastActiveElementRef = React.useRef(null);\n const isCorrectToaster = useEventCallback((toasterId)=>{\n return toasterId === userToasterId;\n });\n const isFocusShortcut = useEventCallback((e)=>{\n if (shortcuts === null || shortcuts === void 0 ? void 0 : shortcuts.focus) {\n return shortcuts.focus(e);\n }\n });\n const pauseAllToasts = React.useCallback(()=>{\n toaster.visibleToasts.forEach((toastId)=>{\n var _toast_imperativeRef_current;\n const toast = toaster.toasts.get(toastId);\n (_toast_imperativeRef_current = toast === null || toast === void 0 ? void 0 : toast.imperativeRef.current) === null || _toast_imperativeRef_current === void 0 ? void 0 : _toast_imperativeRef_current.pause();\n });\n }, [\n toaster\n ]);\n const playAllToasts = React.useCallback(()=>{\n toaster.visibleToasts.forEach((toastId)=>{\n var _toast_imperativeRef_current;\n const toast = toaster.toasts.get(toastId);\n (_toast_imperativeRef_current = toast === null || toast === void 0 ? void 0 : toast.imperativeRef.current) === null || _toast_imperativeRef_current === void 0 ? void 0 : _toast_imperativeRef_current.play();\n });\n }, [\n toaster\n ]);\n const getMostRecentVisibleToast = React.useCallback(()=>{\n return Array.from(toaster.visibleToasts).reduce((cur, next)=>{\n const toast = toaster.toasts.get(next);\n if (!toast) {\n return cur;\n }\n if (!cur) {\n return toast;\n }\n if (cur.order < (toast === null || toast === void 0 ? void 0 : toast.order)) {\n return toast;\n }\n return cur;\n }, undefined);\n }, [\n toaster\n ]);\n const tryRestoreFocus = React.useCallback(()=>{\n const mostRecentToast = getMostRecentVisibleToast();\n if (mostRecentToast === null || mostRecentToast === void 0 ? void 0 : mostRecentToast.imperativeRef.current) {\n mostRecentToast.imperativeRef.current.focus();\n } else {\n var _lastActiveElementRef_current;\n (_lastActiveElementRef_current = lastActiveElementRef.current) === null || _lastActiveElementRef_current === void 0 ? void 0 : _lastActiveElementRef_current.focus();\n lastActiveElementRef.current = null;\n }\n }, [\n getMostRecentVisibleToast\n ]);\n const closeAllToasts = React.useCallback(()=>{\n toaster.visibleToasts.forEach((toastId)=>{\n const toast = toaster.toasts.get(toastId);\n toast === null || toast === void 0 ? void 0 : toast.close();\n });\n tryRestoreFocus();\n }, [\n toaster,\n tryRestoreFocus\n ]);\n React.useEffect(()=>{\n if (!targetDocument) {\n return;\n }\n const addToastListener = (eventType, callback)=>{\n const listener = (e)=>{\n if (!isCorrectToaster(e.detail.toasterId)) {\n return;\n }\n callback(e);\n forceUpdate();\n };\n targetDocument.addEventListener(eventType, listener);\n return ()=>targetDocument.removeEventListener(eventType, listener);\n };\n const buildToast = (e)=>{\n toaster.buildToast(e.detail, forceUpdate);\n };\n const dismissToast = (e)=>{\n toaster.dismissToast(e.detail.toastId);\n };\n const updateToast = (e)=>{\n toaster.updateToast(e.detail);\n };\n const dismissAllToasts = (e)=>{\n toaster.dismissAllToasts();\n };\n const pauseToast = (e)=>{\n const toast = toaster.toasts.get(e.detail.toastId);\n if (toast) {\n var _toast_imperativeRef_current;\n (_toast_imperativeRef_current = toast.imperativeRef.current) === null || _toast_imperativeRef_current === void 0 ? void 0 : _toast_imperativeRef_current.pause();\n }\n };\n const playToast = (e)=>{\n const toast = toaster.toasts.get(e.detail.toastId);\n if (toast) {\n var _toast_imperativeRef_current;\n (_toast_imperativeRef_current = toast.imperativeRef.current) === null || _toast_imperativeRef_current === void 0 ? void 0 : _toast_imperativeRef_current.play();\n }\n };\n const cleanupBuildListener = addToastListener(EVENTS.show, buildToast);\n const cleanupUpdateListener = addToastListener(EVENTS.update, updateToast);\n const cleanupDismissListener = addToastListener(EVENTS.dismiss, dismissToast);\n const cleanupDismissAllListener = addToastListener(EVENTS.dismissAll, dismissAllToasts);\n const cleanupPauseListener = addToastListener(EVENTS.pause, pauseToast);\n const cleanupPlayListener = addToastListener(EVENTS.play, playToast);\n const focusShortcutListener = (e)=>{\n if (isFocusShortcut(e)) {\n pauseAllToasts();\n const mostRecentToast = getMostRecentVisibleToast();\n if (mostRecentToast) {\n var _mostRecentToast_imperativeRef_current;\n lastActiveElementRef.current = isHTMLElement(targetDocument.activeElement) ? targetDocument.activeElement : null;\n (_mostRecentToast_imperativeRef_current = mostRecentToast.imperativeRef.current) === null || _mostRecentToast_imperativeRef_current === void 0 ? void 0 : _mostRecentToast_imperativeRef_current.focus();\n }\n }\n };\n targetDocument.addEventListener('keydown', focusShortcutListener);\n return ()=>{\n cleanupBuildListener();\n cleanupDismissAllListener();\n cleanupUpdateListener();\n cleanupDismissListener();\n cleanupPauseListener();\n cleanupPlayListener();\n targetDocument.removeEventListener('keydown', focusShortcutListener);\n };\n }, [\n toaster,\n forceUpdate,\n targetDocument,\n isCorrectToaster,\n pauseAllToasts,\n getMostRecentVisibleToast,\n isFocusShortcut\n ]);\n const toastsToRender = (()=>{\n if (!toaster) {\n return new Map();\n }\n const toRender = new Map();\n const toasts = Array.from(toaster.toasts.values());\n toasts.forEach((toast)=>{\n const { position } = toast;\n toRender.has(position) || toRender.set(position, []);\n if (position.startsWith('bottom')) {\n toRender.get(position).push(toast);\n } else {\n toRender.get(position).unshift(toast);\n }\n });\n return toRender;\n })();\n return {\n isToastVisible: toaster.isToastVisible,\n toastsToRender,\n pauseAllToasts,\n playAllToasts,\n tryRestoreFocus,\n closeAllToasts\n };\n}\n"],"names":["useToaster","options","forceUpdate","useForceUpdate","toasterId","userToasterId","shortcuts","toaster","React","useState","createToaster","targetDocument","useFluent","lastActiveElementRef","useRef","isCorrectToaster","useEventCallback","isFocusShortcut","e","focus","pauseAllToasts","useCallback","visibleToasts","forEach","toastId","_toast_imperativeRef_current","toast","toasts","get","imperativeRef","current","pause","playAllToasts","play","getMostRecentVisibleToast","Array","from","reduce","cur","next","order","undefined","tryRestoreFocus","mostRecentToast","_lastActiveElementRef_current","closeAllToasts","close","useEffect","addToastListener","eventType","callback","listener","detail","addEventListener","removeEventListener","buildToast","dismissToast","updateToast","dismissAllToasts","pauseToast","playToast","cleanupBuildListener","EVENTS","show","cleanupUpdateListener","update","cleanupDismissListener","dismiss","cleanupDismissAllListener","dismissAll","cleanupPauseListener","cleanupPlayListener","focusShortcutListener","_mostRecentToast_imperativeRef_current","isHTMLElement","activeElement","toastsToRender","Map","toRender","values","position","has","set","startsWith","push","unshift","isToastVisible"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fluentui/react-toast",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.1.1",
|
|
4
4
|
"description": "Toast component for Fluent UI",
|
|
5
5
|
"main": "lib-commonjs/index.js",
|
|
6
6
|
"module": "lib/index.js",
|
|
@@ -36,15 +36,16 @@
|
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
38
|
"react-transition-group": "^4.4.1",
|
|
39
|
-
"@fluentui/
|
|
39
|
+
"@fluentui/keyboard-keys": "^9.0.3",
|
|
40
|
+
"@fluentui/react-aria": "^9.3.29",
|
|
40
41
|
"@fluentui/react-icons": "^2.0.207",
|
|
41
|
-
"@fluentui/react-jsx-runtime": "9.0.0-alpha.
|
|
42
|
-
"@fluentui/react-portal": "^9.3.
|
|
43
|
-
"@fluentui/react-shared-contexts": "^9.7.
|
|
44
|
-
"@fluentui/react-tabster": "^9.
|
|
45
|
-
"@fluentui/react-theme": "^9.1.
|
|
46
|
-
"@fluentui/react-utilities": "^9.
|
|
47
|
-
"@griffel/react": "^1.5.
|
|
42
|
+
"@fluentui/react-jsx-runtime": "9.0.0-alpha.14",
|
|
43
|
+
"@fluentui/react-portal": "^9.3.6",
|
|
44
|
+
"@fluentui/react-shared-contexts": "^9.7.2",
|
|
45
|
+
"@fluentui/react-tabster": "^9.12.1",
|
|
46
|
+
"@fluentui/react-theme": "^9.1.11",
|
|
47
|
+
"@fluentui/react-utilities": "^9.11.0",
|
|
48
|
+
"@griffel/react": "^1.5.14",
|
|
48
49
|
"@swc/helpers": "^0.4.14"
|
|
49
50
|
},
|
|
50
51
|
"peerDependencies": {
|