@fluentui/react-toast 0.0.0-nightly-20230804-0415.1 → 0.0.0-nightly-20230808-0415.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 +80 -23
- package/CHANGELOG.md +30 -14
- 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/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/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/ToastContainer/renderToastContainer.js +3 -3
- package/lib/components/ToastContainer/renderToastContainer.js.map +1 -1
- package/lib/components/ToastContainer/useToastContainer.js +6 -4
- package/lib/components/ToastContainer/useToastContainer.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/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/Toaster/renderToaster.js +4 -4
- package/lib/components/Toaster/renderToaster.js.map +1 -1
- package/lib/components/Toaster/useToaster.js +9 -6
- package/lib/components/Toaster/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/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/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/ToastContainer/renderToastContainer.js +2 -2
- package/lib-commonjs/components/ToastContainer/renderToastContainer.js.map +1 -1
- package/lib-commonjs/components/ToastContainer/useToastContainer.js +5 -3
- package/lib-commonjs/components/ToastContainer/useToastContainer.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/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/Toaster/renderToaster.js +3 -3
- package/lib-commonjs/components/Toaster/renderToaster.js.map +1 -1
- package/lib-commonjs/components/Toaster/useToaster.js +8 -5
- package/lib-commonjs/components/Toaster/useToaster.js.map +1 -1
- package/package.json +11 -11
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { getNativeElementProps } from '@fluentui/react-utilities';
|
|
2
|
+
import { getNativeElementProps, slot } from '@fluentui/react-utilities';
|
|
3
3
|
/**
|
|
4
4
|
* Create the state required to render ToastFooter.
|
|
5
5
|
*
|
|
@@ -13,9 +13,11 @@ import { getNativeElementProps } from '@fluentui/react-utilities';
|
|
|
13
13
|
components: {
|
|
14
14
|
root: 'div'
|
|
15
15
|
},
|
|
16
|
-
root: getNativeElementProps('div', {
|
|
16
|
+
root: slot.always(getNativeElementProps('div', {
|
|
17
17
|
ref,
|
|
18
18
|
...props
|
|
19
|
+
}), {
|
|
20
|
+
elementType: 'div'
|
|
19
21
|
})
|
|
20
22
|
};
|
|
21
23
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["useToastFooter.ts"],"sourcesContent":["import * as React from 'react';\nimport { getNativeElementProps } from '@fluentui/react-utilities';\nimport type { ToastFooterProps, ToastFooterState } from './ToastFooter.types';\n\n/**\n * Create the state required to render ToastFooter.\n *\n * The returned state can be modified with hooks such as useToastFooterStyles_unstable,\n * before being passed to renderToastFooter_unstable.\n *\n * @param props - props from this instance of ToastFooter\n * @param ref - reference to root HTMLElement of ToastFooter\n */\nexport const useToastFooter_unstable = (props: ToastFooterProps, ref: React.Ref<HTMLElement>): ToastFooterState => {\n return {\n components: {\n root: 'div',\n },\n root: getNativeElementProps('div', {\n
|
|
1
|
+
{"version":3,"sources":["useToastFooter.ts"],"sourcesContent":["import * as React from 'react';\nimport { getNativeElementProps, slot } from '@fluentui/react-utilities';\nimport type { ToastFooterProps, ToastFooterState } from './ToastFooter.types';\n\n/**\n * Create the state required to render ToastFooter.\n *\n * The returned state can be modified with hooks such as useToastFooterStyles_unstable,\n * before being passed to renderToastFooter_unstable.\n *\n * @param props - props from this instance of ToastFooter\n * @param ref - reference to root HTMLElement of ToastFooter\n */\nexport const useToastFooter_unstable = (props: ToastFooterProps, ref: React.Ref<HTMLElement>): ToastFooterState => {\n return {\n components: {\n root: 'div',\n },\n root: slot.always(\n getNativeElementProps('div', {\n ref,\n ...props,\n }),\n { elementType: 'div' },\n ),\n };\n};\n"],"names":["React","getNativeElementProps","slot","useToastFooter_unstable","props","ref","components","root","always","elementType"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,qBAAqB,EAAEC,IAAI,QAAQ,4BAA4B;AAGxE;;;;;;;;CAQC,GACD,OAAO,MAAMC,0BAA0B,CAACC,OAAyBC,MAAkD;IACjH,OAAO;QACLC,YAAY;YACVC,MAAM;QACR;QACAA,MAAML,KAAKM,MAAM,CACfP,sBAAsB,OAAO;YAC3BI;YACA,GAAGD,KAAK;QACV,IACA;YAAEK,aAAa;QAAM;IAEzB;AACF,EAAE"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/** @jsxRuntime classic */ /** @jsxFrag Fragment */ /** @jsx createElement */ import { createElement, Fragment } from '@fluentui/react-jsx-runtime';
|
|
2
|
-
import {
|
|
2
|
+
import { assertSlots } from '@fluentui/react-utilities';
|
|
3
3
|
/**
|
|
4
4
|
* Render the final JSX of ToastTitle
|
|
5
5
|
*/ export const renderToastTitle_unstable = (state)=>{
|
|
6
|
-
|
|
7
|
-
return /*#__PURE__*/ createElement(Fragment, null,
|
|
6
|
+
assertSlots(state);
|
|
7
|
+
return /*#__PURE__*/ createElement(Fragment, null, state.media ? /*#__PURE__*/ createElement(state.media, null) : null, /*#__PURE__*/ createElement(state.root, null), state.action ? /*#__PURE__*/ createElement(state.action, null) : null);
|
|
8
8
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["renderToastTitle.tsx"],"sourcesContent":["/** @jsxRuntime classic */\n/** @jsxFrag Fragment */\n/** @jsx createElement */\n\nimport { createElement, Fragment } from '@fluentui/react-jsx-runtime';\nimport {
|
|
1
|
+
{"version":3,"sources":["renderToastTitle.tsx"],"sourcesContent":["/** @jsxRuntime classic */\n/** @jsxFrag Fragment */\n/** @jsx createElement */\n\nimport { createElement, Fragment } from '@fluentui/react-jsx-runtime';\nimport { assertSlots } from '@fluentui/react-utilities';\nimport type { ToastTitleState, ToastTitleSlots } from './ToastTitle.types';\n\n/**\n * Render the final JSX of ToastTitle\n */\nexport const renderToastTitle_unstable = (state: ToastTitleState) => {\n assertSlots<ToastTitleSlots>(state);\n\n return (\n <>\n {state.media ? <state.media /> : null}\n <state.root />\n {state.action ? <state.action /> : null}\n </>\n );\n};\n"],"names":["createElement","Fragment","assertSlots","renderToastTitle_unstable","state","media","root","action"],"mappings":"AAAA,wBAAwB,GACxB,sBAAsB,GACtB,uBAAuB,GAEvB,SAASA,aAAa,EAAEC,QAAQ,QAAQ,8BAA8B;AACtE,SAASC,WAAW,QAAQ,4BAA4B;AAGxD;;CAEC,GACD,OAAO,MAAMC,4BAA4B,CAACC,QAA2B;IACnEF,YAA6BE;IAE7B,qBACE,AAbJ,cADA,gBAeOA,MAAMC,KAAK,iBAAG,AAdrB,cAcsBD,MAAMC,KAAK,UAAM,IAAI,gBACrC,AAfN,cAeOD,MAAME,IAAI,SACVF,MAAMG,MAAM,iBAAG,AAhBtB,cAgBuBH,MAAMG,MAAM,UAAM,IAAI;AAG7C,EAAE"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { CheckmarkCircleFilled, DismissCircleFilled, InfoFilled, WarningFilled } from '@fluentui/react-icons';
|
|
3
|
-
import { getNativeElementProps,
|
|
3
|
+
import { getNativeElementProps, slot } from '@fluentui/react-utilities';
|
|
4
4
|
import { useBackgroundAppearance } from '@fluentui/react-shared-contexts';
|
|
5
5
|
import { useToastContainerContext } from '../../contexts/toastContainerContext';
|
|
6
6
|
/**
|
|
@@ -30,23 +30,28 @@ import { useToastContainerContext } from '../../contexts/toastContainerContext';
|
|
|
30
30
|
break;
|
|
31
31
|
}
|
|
32
32
|
return {
|
|
33
|
-
action:
|
|
33
|
+
action: slot.optional(props.action, {
|
|
34
|
+
elementType: 'div'
|
|
35
|
+
}),
|
|
34
36
|
components: {
|
|
35
37
|
root: 'div',
|
|
36
38
|
media: 'div',
|
|
37
39
|
action: 'div'
|
|
38
40
|
},
|
|
39
|
-
media:
|
|
40
|
-
|
|
41
|
+
media: slot.optional(props.media, {
|
|
42
|
+
renderByDefault: !!intent,
|
|
41
43
|
defaultProps: {
|
|
42
44
|
children: defaultIcon
|
|
43
|
-
}
|
|
45
|
+
},
|
|
46
|
+
elementType: 'div'
|
|
44
47
|
}),
|
|
45
|
-
root: getNativeElementProps('div', {
|
|
48
|
+
root: slot.always(getNativeElementProps('div', {
|
|
46
49
|
ref,
|
|
47
50
|
children: props.children,
|
|
48
51
|
id: titleId,
|
|
49
52
|
...props
|
|
53
|
+
}), {
|
|
54
|
+
elementType: 'div'
|
|
50
55
|
}),
|
|
51
56
|
intent,
|
|
52
57
|
backgroundAppearance
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["useToastTitle.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { CheckmarkCircleFilled, DismissCircleFilled, InfoFilled, WarningFilled } from '@fluentui/react-icons';\nimport { getNativeElementProps,
|
|
1
|
+
{"version":3,"sources":["useToastTitle.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { CheckmarkCircleFilled, DismissCircleFilled, InfoFilled, WarningFilled } from '@fluentui/react-icons';\nimport { getNativeElementProps, slot } from '@fluentui/react-utilities';\nimport { useBackgroundAppearance } from '@fluentui/react-shared-contexts';\n\nimport type { ToastTitleProps, ToastTitleState } from './ToastTitle.types';\nimport { useToastContainerContext } from '../../contexts/toastContainerContext';\n\n/**\n * Create the state required to render ToastTitle.\n *\n * The returned state can be modified with hooks such as useToastTitleStyles_unstable,\n * before being passed to renderToastTitle_unstable.\n *\n * @param props - props from this instance of ToastTitle\n * @param ref - reference to root HTMLElement of ToastTitle\n */\nexport const useToastTitle_unstable = (props: ToastTitleProps, ref: React.Ref<HTMLElement>): ToastTitleState => {\n const { intent, titleId } = useToastContainerContext();\n const backgroundAppearance = useBackgroundAppearance();\n\n /** Determine the role and media to render based on the intent */\n let defaultIcon;\n switch (intent) {\n case 'success':\n defaultIcon = <CheckmarkCircleFilled />;\n break;\n case 'error':\n defaultIcon = <DismissCircleFilled />;\n break;\n case 'warning':\n defaultIcon = <WarningFilled />;\n break;\n case 'info':\n defaultIcon = <InfoFilled />;\n break;\n }\n\n return {\n action: slot.optional(props.action, { elementType: 'div' }),\n components: { root: 'div', media: 'div', action: 'div' },\n media: slot.optional(props.media, {\n renderByDefault: !!intent,\n defaultProps: { children: defaultIcon },\n elementType: 'div',\n }),\n root: slot.always(\n getNativeElementProps('div', {\n ref,\n children: props.children,\n id: titleId,\n ...props,\n }),\n { elementType: 'div' },\n ),\n intent,\n backgroundAppearance,\n };\n};\n"],"names":["React","CheckmarkCircleFilled","DismissCircleFilled","InfoFilled","WarningFilled","getNativeElementProps","slot","useBackgroundAppearance","useToastContainerContext","useToastTitle_unstable","props","ref","intent","titleId","backgroundAppearance","defaultIcon","action","optional","elementType","components","root","media","renderByDefault","defaultProps","children","always","id"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAE/B,SAASC,qBAAqB,EAAEC,mBAAmB,EAAEC,UAAU,EAAEC,aAAa,QAAQ,wBAAwB;AAC9G,SAASC,qBAAqB,EAAEC,IAAI,QAAQ,4BAA4B;AACxE,SAASC,uBAAuB,QAAQ,kCAAkC;AAG1E,SAASC,wBAAwB,QAAQ,uCAAuC;AAEhF;;;;;;;;CAQC,GACD,OAAO,MAAMC,yBAAyB,CAACC,OAAwBC,MAAiD;IAC9G,MAAM,EAAEC,OAAM,EAAEC,QAAO,EAAE,GAAGL;IAC5B,MAAMM,uBAAuBP;IAE7B,+DAA+D,GAC/D,IAAIQ;IACJ,OAAQH;QACN,KAAK;YACHG,4BAAc,oBAACd;YACf,KAAM;QACR,KAAK;YACHc,4BAAc,oBAACb;YACf,KAAM;QACR,KAAK;YACHa,4BAAc,oBAACX;YACf,KAAM;QACR,KAAK;YACHW,4BAAc,oBAACZ;YACf,KAAM;IACV;IAEA,OAAO;QACLa,QAAQV,KAAKW,QAAQ,CAACP,MAAMM,MAAM,EAAE;YAAEE,aAAa;QAAM;QACzDC,YAAY;YAAEC,MAAM;YAAOC,OAAO;YAAOL,QAAQ;QAAM;QACvDK,OAAOf,KAAKW,QAAQ,CAACP,MAAMW,KAAK,EAAE;YAChCC,iBAAiB,CAAC,CAACV;YACnBW,cAAc;gBAAEC,UAAUT;YAAY;YACtCG,aAAa;QACf;QACAE,MAAMd,KAAKmB,MAAM,CACfpB,sBAAsB,OAAO;YAC3BM;YACAa,UAAUd,MAAMc,QAAQ;YACxBE,IAAIb;YACJ,GAAGH,KAAK;QACV,IACA;YAAEQ,aAAa;QAAM;QAEvBN;QACAE;IACF;AACF,EAAE"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/** @jsxRuntime classic */ /** @jsxFrag Fragment */ /** @jsx createElement */ import { createElement, Fragment } from '@fluentui/react-jsx-runtime';
|
|
2
|
-
import {
|
|
2
|
+
import { assertSlots } from '@fluentui/react-utilities';
|
|
3
3
|
import { Portal } from '@fluentui/react-portal';
|
|
4
4
|
import { AriaLive } from '../AriaLive';
|
|
5
5
|
/**
|
|
6
6
|
* Render the final JSX of Toaster
|
|
7
7
|
*/ export const renderToaster_unstable = (state)=>{
|
|
8
8
|
const { announceRef , renderAriaLive } = state;
|
|
9
|
-
|
|
10
|
-
const hasToasts = !!
|
|
9
|
+
assertSlots(state);
|
|
10
|
+
const hasToasts = !!state.bottomStart || !!state.bottomEnd || !!state.topStart || !!state.topEnd;
|
|
11
11
|
return /*#__PURE__*/ createElement(Fragment, null, renderAriaLive ? /*#__PURE__*/ createElement(AriaLive, {
|
|
12
12
|
announceRef: announceRef
|
|
13
|
-
}) : null, hasToasts ? /*#__PURE__*/ createElement(Portal, null,
|
|
13
|
+
}) : null, hasToasts ? /*#__PURE__*/ createElement(Portal, null, state.bottomStart ? /*#__PURE__*/ createElement(state.bottomStart, null) : null, state.bottomEnd ? /*#__PURE__*/ createElement(state.bottomEnd, null) : null, state.topStart ? /*#__PURE__*/ createElement(state.topStart, null) : null, state.topEnd ? /*#__PURE__*/ createElement(state.topEnd, null) : null) : null);
|
|
14
14
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["renderToaster.tsx"],"sourcesContent":["/** @jsxRuntime classic */\n/** @jsxFrag Fragment */\n/** @jsx createElement */\n\nimport { createElement, Fragment } from '@fluentui/react-jsx-runtime';\nimport {
|
|
1
|
+
{"version":3,"sources":["renderToaster.tsx"],"sourcesContent":["/** @jsxRuntime classic */\n/** @jsxFrag Fragment */\n/** @jsx createElement */\n\nimport { createElement, Fragment } from '@fluentui/react-jsx-runtime';\nimport { assertSlots } from '@fluentui/react-utilities';\nimport { Portal } from '@fluentui/react-portal';\nimport type { ToasterState, ToasterSlotsInternal } from './Toaster.types';\nimport { AriaLive } from '../AriaLive';\n\n/**\n * Render the final JSX of Toaster\n */\nexport const renderToaster_unstable = (state: ToasterState) => {\n const { announceRef, renderAriaLive } = state;\n assertSlots<ToasterSlotsInternal>(state);\n\n const hasToasts = !!state.bottomStart || !!state.bottomEnd || !!state.topStart || !!state.topEnd;\n\n return (\n <>\n {renderAriaLive ? <AriaLive announceRef={announceRef} /> : null}\n {hasToasts ? (\n <Portal>\n {state.bottomStart ? <state.bottomStart /> : null}\n {state.bottomEnd ? <state.bottomEnd /> : null}\n {state.topStart ? <state.topStart /> : null}\n {state.topEnd ? <state.topEnd /> : null}\n </Portal>\n ) : null}\n </>\n );\n};\n"],"names":["createElement","Fragment","assertSlots","Portal","AriaLive","renderToaster_unstable","state","announceRef","renderAriaLive","hasToasts","bottomStart","bottomEnd","topStart","topEnd"],"mappings":"AAAA,wBAAwB,GACxB,sBAAsB,GACtB,uBAAuB,GAEvB,SAASA,aAAa,EAAEC,QAAQ,QAAQ,8BAA8B;AACtE,SAASC,WAAW,QAAQ,4BAA4B;AACxD,SAASC,MAAM,QAAQ,yBAAyB;AAEhD,SAASC,QAAQ,QAAQ,cAAc;AAEvC;;CAEC,GACD,OAAO,MAAMC,yBAAyB,CAACC,QAAwB;IAC7D,MAAM,EAAEC,YAAW,EAAEC,eAAc,EAAE,GAAGF;IACxCJ,YAAkCI;IAElC,MAAMG,YAAY,CAAC,CAACH,MAAMI,WAAW,IAAI,CAAC,CAACJ,MAAMK,SAAS,IAAI,CAAC,CAACL,MAAMM,QAAQ,IAAI,CAAC,CAACN,MAAMO,MAAM;IAEhG,qBACE,AAlBJ,cADA,gBAoBOL,+BAAiB,AAnBxB,cAmByBJ;QAASG,aAAaA;SAAkB,IAAI,EAC9DE,0BACC,AArBR,cAqBSN,cACEG,MAAMI,WAAW,iBAAG,AAtB/B,cAsBgCJ,MAAMI,WAAW,UAAM,IAAI,EAChDJ,MAAMK,SAAS,iBAAG,AAvB7B,cAuB8BL,MAAMK,SAAS,UAAM,IAAI,EAC5CL,MAAMM,QAAQ,iBAAG,AAxB5B,cAwB6BN,MAAMM,QAAQ,UAAM,IAAI,EAC1CN,MAAMO,MAAM,iBAAG,AAzB1B,cAyB2BP,MAAMO,MAAM,UAAM,IAAI,IAEvC,IAAI;AAGd,EAAE"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { getNativeElementProps,
|
|
2
|
+
import { getNativeElementProps, useEventCallback, useMergedRefs, slot } from '@fluentui/react-utilities';
|
|
3
3
|
import { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';
|
|
4
4
|
import { useFocusableGroup } from '@fluentui/react-tabster';
|
|
5
5
|
import { Escape } from '@fluentui/keyboard-keys';
|
|
@@ -17,7 +17,9 @@ import { useToastAnnounce } from './useToastAnnounce';
|
|
|
17
17
|
const { toastsToRender , isToastVisible , pauseAllToasts , playAllToasts , tryRestoreFocus , closeAllToasts } = useToaster(rest);
|
|
18
18
|
const announce = React.useCallback((message, options)=>announceRef.current(message, options), []);
|
|
19
19
|
const { dir } = useFluent();
|
|
20
|
-
const rootProps = getNativeElementProps('div', rest)
|
|
20
|
+
const rootProps = slot.always(getNativeElementProps('div', rest), {
|
|
21
|
+
elementType: 'div'
|
|
22
|
+
});
|
|
21
23
|
const focusableGroupAttr = useFocusableGroup({
|
|
22
24
|
tabBehavior: 'limited-trap-focus',
|
|
23
25
|
ignoreDefaultKeydown: {
|
|
@@ -36,7 +38,7 @@ import { useToastAnnounce } from './useToastAnnounce';
|
|
|
36
38
|
var _toastsToRender_get;
|
|
37
39
|
const focusManagementRef = useToasterFocusManagement_unstable(pauseAllToasts, playAllToasts);
|
|
38
40
|
const { announceToast , toasterRef } = useToastAnnounce(announceProp !== null && announceProp !== void 0 ? announceProp : announce);
|
|
39
|
-
return
|
|
41
|
+
return slot.optional(toastsToRender.has(toastPosition) ? rootProps : null, {
|
|
40
42
|
defaultProps: {
|
|
41
43
|
ref: useMergedRefs(focusManagementRef, toasterRef),
|
|
42
44
|
children: (_toastsToRender_get = toastsToRender.get(toastPosition)) === null || _toastsToRender_get === void 0 ? void 0 : _toastsToRender_get.map((toast)=>/*#__PURE__*/ React.createElement(ToastContainer, {
|
|
@@ -51,7 +53,8 @@ import { useToastAnnounce } from './useToastAnnounce';
|
|
|
51
53
|
...focusableGroupAttr,
|
|
52
54
|
'data-toaster-position': toastPosition,
|
|
53
55
|
role: 'list'
|
|
54
|
-
}
|
|
56
|
+
},
|
|
57
|
+
elementType: 'div'
|
|
55
58
|
});
|
|
56
59
|
};
|
|
57
60
|
return {
|
|
@@ -63,8 +66,8 @@ import { useToastAnnounce } from './useToastAnnounce';
|
|
|
63
66
|
topStart: 'div',
|
|
64
67
|
topEnd: 'div'
|
|
65
68
|
},
|
|
66
|
-
root:
|
|
67
|
-
|
|
69
|
+
root: slot.always(rootProps, {
|
|
70
|
+
elementType: 'div'
|
|
68
71
|
}),
|
|
69
72
|
bottomStart: usePositionSlot(TOAST_POSITIONS.bottomStart),
|
|
70
73
|
bottomEnd: usePositionSlot(TOAST_POSITIONS.bottomEnd),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["useToaster.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n ExtractSlotProps,\n Slot,\n getNativeElementProps,\n
|
|
1
|
+
{"version":3,"sources":["useToaster.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n ExtractSlotProps,\n Slot,\n getNativeElementProps,\n useEventCallback,\n useMergedRefs,\n slot,\n} 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 type { ToasterProps, ToasterState } from './Toaster.types';\nimport { TOAST_POSITIONS, ToastPosition, useToaster } from '../../state';\nimport { Announce } from '../AriaLive';\nimport { ToastContainer } from '../ToastContainer';\nimport { useToasterFocusManagement_unstable } from './useToasterFocusManagement';\nimport { useToastAnnounce } from './useToastAnnounce';\n\n/**\n * Create the state required to render Toaster.\n *\n * @param props - props from this instance of Toaster\n */\nexport const useToaster_unstable = (props: ToasterProps): ToasterState => {\n const { offset, announce: announceProp, ...rest } = props;\n const announceRef = React.useRef<Announce>(() => null);\n const { toastsToRender, isToastVisible, pauseAllToasts, playAllToasts, tryRestoreFocus, closeAllToasts } =\n useToaster<HTMLDivElement>(rest);\n const announce = React.useCallback<Announce>((message, options) => announceRef.current(message, options), []);\n const { dir } = useFluent();\n\n const rootProps = slot.always(getNativeElementProps('div', rest), { elementType: 'div' });\n const focusableGroupAttr = useFocusableGroup({\n tabBehavior: 'limited-trap-focus',\n ignoreDefaultKeydown: { Escape: true },\n });\n const onKeyDown = useEventCallback((e: React.KeyboardEvent<HTMLDivElement>) => {\n if (e.key === Escape) {\n e.preventDefault();\n closeAllToasts();\n }\n props.onKeyDown?.(e);\n });\n const usePositionSlot = (toastPosition: ToastPosition) => {\n const focusManagementRef = useToasterFocusManagement_unstable(pauseAllToasts, playAllToasts);\n const { announceToast, toasterRef } = useToastAnnounce(announceProp ?? announce);\n return slot.optional(toastsToRender.has(toastPosition) ? rootProps : null, {\n defaultProps: {\n ref: useMergedRefs(focusManagementRef, toasterRef),\n children: toastsToRender.get(toastPosition)?.map(toast => (\n <ToastContainer\n {...toast}\n tryRestoreFocus={tryRestoreFocus}\n intent={toast.intent}\n announce={announceToast}\n key={toast.toastId}\n visible={isToastVisible(toast.toastId)}\n >\n {toast.content as React.ReactNode}\n </ToastContainer>\n )),\n onKeyDown,\n ...focusableGroupAttr,\n 'data-toaster-position': toastPosition,\n role: 'list',\n // Explicitly casting because our slot types can't handle data attributes\n } as ExtractSlotProps<Slot<'div'>>,\n elementType: 'div',\n });\n };\n return {\n dir,\n components: { root: 'div', bottomStart: 'div', bottomEnd: 'div', topStart: 'div', topEnd: 'div' },\n root: slot.always(rootProps, { elementType: 'div' }),\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 ?? announce,\n renderAriaLive: !announceProp,\n };\n};\n"],"names":["React","getNativeElementProps","useEventCallback","useMergedRefs","slot","useFluent_unstable","useFluent","useFocusableGroup","Escape","TOAST_POSITIONS","useToaster","ToastContainer","useToasterFocusManagement_unstable","useToastAnnounce","useToaster_unstable","props","offset","announce","announceProp","rest","announceRef","useRef","toastsToRender","isToastVisible","pauseAllToasts","playAllToasts","tryRestoreFocus","closeAllToasts","useCallback","message","options","current","dir","rootProps","always","elementType","focusableGroupAttr","tabBehavior","ignoreDefaultKeydown","onKeyDown","e","key","preventDefault","usePositionSlot","toastPosition","focusManagementRef","announceToast","toasterRef","optional","has","defaultProps","ref","children","get","map","toast","intent","toastId","visible","content","role","components","root","bottomStart","bottomEnd","topStart","topEnd","renderAriaLive"],"mappings":"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"}
|
|
@@ -9,6 +9,6 @@ Object.defineProperty(exports, "renderAriaLive_unstable", {
|
|
|
9
9
|
const _reactJsxRuntime = require("@fluentui/react-jsx-runtime");
|
|
10
10
|
const _reactUtilities = require("@fluentui/react-utilities");
|
|
11
11
|
const renderAriaLive_unstable = (state)=>{
|
|
12
|
-
|
|
13
|
-
return /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(_reactJsxRuntime.Fragment, null, /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(
|
|
12
|
+
(0, _reactUtilities.assertSlots)(state);
|
|
13
|
+
return /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(_reactJsxRuntime.Fragment, null, /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(state.assertive, null), /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(state.polite, null));
|
|
14
14
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["renderAriaLive.js"],"sourcesContent":["/** @jsxRuntime classic */ /** @jsxFrag Fragment */ /** @jsx createElement */ import { createElement, Fragment } from '@fluentui/react-jsx-runtime';\nimport {
|
|
1
|
+
{"version":3,"sources":["renderAriaLive.js"],"sourcesContent":["/** @jsxRuntime classic */ /** @jsxFrag Fragment */ /** @jsx createElement */ import { createElement, Fragment } from '@fluentui/react-jsx-runtime';\nimport { assertSlots } from '@fluentui/react-utilities';\n/**\n * Render the final JSX of AriaLive\n */ export const renderAriaLive_unstable = (state)=>{\n assertSlots(state);\n return /*#__PURE__*/ createElement(Fragment, null, /*#__PURE__*/ createElement(state.assertive, null), /*#__PURE__*/ createElement(state.polite, null));\n};\n"],"names":["renderAriaLive_unstable","state","assertSlots","createElement","Fragment","assertive","polite"],"mappings":"AAAA,wBAAwB,GAAG,sBAAsB,GAAG,uBAAuB;;;;+BAI1DA;;aAAAA;;iCAJqG;gCAC1F;AAGjB,MAAMA,0BAA0B,CAACC,QAAQ;IAChDC,IAAAA,2BAAW,EAACD;IACZ,OAAO,WAAW,GAAGE,IAAAA,8BAAa,EAACC,yBAAQ,EAAE,IAAI,EAAE,WAAW,GAAGD,IAAAA,8BAAa,EAACF,MAAMI,SAAS,EAAE,IAAI,GAAG,WAAW,GAAGF,IAAAA,8BAAa,EAACF,MAAMK,MAAM,EAAE,IAAI;AACzJ"}
|
|
@@ -57,19 +57,19 @@ const useAriaLive_unstable = (props)=>{
|
|
|
57
57
|
assertive: 'div',
|
|
58
58
|
polite: 'div'
|
|
59
59
|
},
|
|
60
|
-
assertive:
|
|
61
|
-
required: true,
|
|
60
|
+
assertive: _reactUtilities.slot.always(props.assertive, {
|
|
62
61
|
defaultProps: {
|
|
63
62
|
'aria-live': 'assertive',
|
|
64
63
|
children: assertiveMessage
|
|
65
|
-
}
|
|
64
|
+
},
|
|
65
|
+
elementType: 'div'
|
|
66
66
|
}),
|
|
67
|
-
polite:
|
|
68
|
-
required: true,
|
|
67
|
+
polite: _reactUtilities.slot.always(props.polite, {
|
|
69
68
|
defaultProps: {
|
|
70
69
|
'aria-live': 'polite',
|
|
71
70
|
children: politeMessage
|
|
72
|
-
}
|
|
71
|
+
},
|
|
72
|
+
elementType: 'div'
|
|
73
73
|
})
|
|
74
74
|
};
|
|
75
75
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["useAriaLive.js"],"sourcesContent":["import * as React from 'react';\nimport {
|
|
1
|
+
{"version":3,"sources":["useAriaLive.js"],"sourcesContent":["import * as React from 'react';\nimport { createPriorityQueue, useEventCallback, slot } from '@fluentui/react-utilities';\n/** The duration the message needs to be in present in DOM for screen readers to register a change and announce */ const MESSAGE_DURATION = 500;\n/**\n * Create the state required to render AriaLive.\n *\n * The returned state can be modified with hooks such as useAriaLiveStyles_unstable,\n * before being passed to renderAriaLive_unstable.\n *\n * @param props - props from this instance of AriaLive\n */ export const useAriaLive_unstable = (props)=>{\n const [currentMessage, setCurrentMessage] = React.useState(undefined);\n // Can't rely on Date.now() if user invokes announce more than once in a code block\n const order = React.useRef(0);\n const [messageQueue] = React.useState(()=>createPriorityQueue((a, b)=>{\n if (a.politeness === b.politeness) {\n return a.createdAt - b.createdAt;\n }\n return a.politeness === 'assertive' ? -1 : 1;\n }));\n const announce = useEventCallback((message, options)=>{\n const { politeness } = options;\n if (message === (currentMessage === null || currentMessage === void 0 ? void 0 : currentMessage.message)) {\n return;\n }\n const liveMessage = {\n message,\n politeness,\n createdAt: order.current++\n };\n if (!currentMessage) {\n setCurrentMessage(liveMessage);\n } else {\n messageQueue.enqueue(liveMessage);\n }\n });\n React.useEffect(()=>{\n const timeout = setTimeout(()=>{\n if (messageQueue.peek()) {\n setCurrentMessage(messageQueue.dequeue());\n } else {\n setCurrentMessage(undefined);\n }\n }, MESSAGE_DURATION);\n return ()=>clearTimeout(timeout);\n }, [\n currentMessage,\n messageQueue\n ]);\n React.useImperativeHandle(props.announceRef, ()=>announce);\n const politeMessage = (currentMessage === null || currentMessage === void 0 ? void 0 : currentMessage.politeness) === 'polite' ? currentMessage.message : undefined;\n const assertiveMessage = (currentMessage === null || currentMessage === void 0 ? void 0 : currentMessage.politeness) === 'assertive' ? currentMessage.message : undefined;\n return {\n components: {\n assertive: 'div',\n polite: 'div'\n },\n assertive: slot.always(props.assertive, {\n defaultProps: {\n 'aria-live': 'assertive',\n children: assertiveMessage\n },\n elementType: 'div'\n }),\n polite: slot.always(props.polite, {\n defaultProps: {\n 'aria-live': 'polite',\n children: politeMessage\n },\n elementType: 'div'\n })\n };\n};\n"],"names":["useAriaLive_unstable","MESSAGE_DURATION","props","currentMessage","setCurrentMessage","React","useState","undefined","order","useRef","messageQueue","createPriorityQueue","a","b","politeness","createdAt","announce","useEventCallback","message","options","liveMessage","current","enqueue","useEffect","timeout","setTimeout","peek","dequeue","clearTimeout","useImperativeHandle","announceRef","politeMessage","assertiveMessage","components","assertive","polite","slot","always","defaultProps","children","elementType"],"mappings":";;;;+BAUiBA;;aAAAA;;;6DAVM;gCACqC;AAC5D,gHAAgH,GAAG,MAAMC,mBAAmB;AAQjI,MAAMD,uBAAuB,CAACE,QAAQ;IAC7C,MAAM,CAACC,gBAAgBC,kBAAkB,GAAGC,OAAMC,QAAQ,CAACC;IAC3D,mFAAmF;IACnF,MAAMC,QAAQH,OAAMI,MAAM,CAAC;IAC3B,MAAM,CAACC,aAAa,GAAGL,OAAMC,QAAQ,CAAC,IAAIK,IAAAA,mCAAmB,EAAC,CAACC,GAAGC,IAAI;YAC9D,IAAID,EAAEE,UAAU,KAAKD,EAAEC,UAAU,EAAE;gBAC/B,OAAOF,EAAEG,SAAS,GAAGF,EAAEE,SAAS;YACpC,CAAC;YACD,OAAOH,EAAEE,UAAU,KAAK,cAAc,CAAC,IAAI,CAAC;QAChD;IACJ,MAAME,WAAWC,IAAAA,gCAAgB,EAAC,CAACC,SAASC,UAAU;QAClD,MAAM,EAAEL,WAAU,EAAG,GAAGK;QACxB,IAAID,YAAaf,CAAAA,mBAAmB,IAAI,IAAIA,mBAAmB,KAAK,IAAI,KAAK,IAAIA,eAAee,OAAO,AAAD,GAAI;YACtG;QACJ,CAAC;QACD,MAAME,cAAc;YAChBF;YACAJ;YACAC,WAAWP,MAAMa,OAAO;QAC5B;QACA,IAAI,CAAClB,gBAAgB;YACjBC,kBAAkBgB;QACtB,OAAO;YACHV,aAAaY,OAAO,CAACF;QACzB,CAAC;IACL;IACAf,OAAMkB,SAAS,CAAC,IAAI;QAChB,MAAMC,UAAUC,WAAW,IAAI;YAC3B,IAAIf,aAAagB,IAAI,IAAI;gBACrBtB,kBAAkBM,aAAaiB,OAAO;YAC1C,OAAO;gBACHvB,kBAAkBG;YACtB,CAAC;QACL,GAAGN;QACH,OAAO,IAAI2B,aAAaJ;IAC5B,GAAG;QACCrB;QACAO;KACH;IACDL,OAAMwB,mBAAmB,CAAC3B,MAAM4B,WAAW,EAAE,IAAId;IACjD,MAAMe,gBAAgB,AAAC5B,CAAAA,mBAAmB,IAAI,IAAIA,mBAAmB,KAAK,IAAI,KAAK,IAAIA,eAAeW,UAAU,AAAD,MAAO,WAAWX,eAAee,OAAO,GAAGX,SAAS;IACnK,MAAMyB,mBAAmB,AAAC7B,CAAAA,mBAAmB,IAAI,IAAIA,mBAAmB,KAAK,IAAI,KAAK,IAAIA,eAAeW,UAAU,AAAD,MAAO,cAAcX,eAAee,OAAO,GAAGX,SAAS;IACzK,OAAO;QACH0B,YAAY;YACRC,WAAW;YACXC,QAAQ;QACZ;QACAD,WAAWE,oBAAI,CAACC,MAAM,CAACnC,MAAMgC,SAAS,EAAE;YACpCI,cAAc;gBACV,aAAa;gBACbC,UAAUP;YACd;YACAQ,aAAa;QACjB;QACAL,QAAQC,oBAAI,CAACC,MAAM,CAACnC,MAAMiC,MAAM,EAAE;YAC9BG,cAAc;gBACV,aAAa;gBACbC,UAAUR;YACd;YACAS,aAAa;QACjB;IACJ;AACJ"}
|
|
@@ -10,8 +10,8 @@ const _reactJsxRuntime = require("@fluentui/react-jsx-runtime");
|
|
|
10
10
|
const _reactUtilities = require("@fluentui/react-utilities");
|
|
11
11
|
const _reactSharedContexts = require("@fluentui/react-shared-contexts");
|
|
12
12
|
const renderToast_unstable = (state, contextValues)=>{
|
|
13
|
-
|
|
13
|
+
(0, _reactUtilities.assertSlots)(state);
|
|
14
14
|
return /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(_reactSharedContexts.BackgroundAppearanceProvider, {
|
|
15
15
|
value: contextValues.backgroundAppearance
|
|
16
|
-
}, /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(
|
|
16
|
+
}, /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(state.root, null));
|
|
17
17
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["renderToast.js"],"sourcesContent":["/** @jsxRuntime classic */ /** @jsx createElement */ import { createElement } from '@fluentui/react-jsx-runtime';\nimport {
|
|
1
|
+
{"version":3,"sources":["renderToast.js"],"sourcesContent":["/** @jsxRuntime classic */ /** @jsx createElement */ import { createElement } from '@fluentui/react-jsx-runtime';\nimport { assertSlots } from '@fluentui/react-utilities';\nimport { BackgroundAppearanceProvider } from '@fluentui/react-shared-contexts';\n/**\n * Render the final JSX of Toast\n */ export const renderToast_unstable = (state, contextValues)=>{\n assertSlots(state);\n return /*#__PURE__*/ createElement(BackgroundAppearanceProvider, {\n value: contextValues.backgroundAppearance\n }, /*#__PURE__*/ createElement(state.root, null));\n};\n"],"names":["renderToast_unstable","state","contextValues","assertSlots","createElement","BackgroundAppearanceProvider","value","backgroundAppearance","root"],"mappings":"AAAA,wBAAwB,GAAG,uBAAuB;;;;+BAKjCA;;aAAAA;;iCALkE;gCACvD;qCACiB;AAGlC,MAAMA,uBAAuB,CAACC,OAAOC,gBAAgB;IAC5DC,IAAAA,2BAAW,EAACF;IACZ,OAAO,WAAW,GAAGG,IAAAA,8BAAa,EAACC,iDAA4B,EAAE;QAC7DC,OAAOJ,cAAcK,oBAAoB;IAC7C,GAAG,WAAW,GAAGH,IAAAA,8BAAa,EAACH,MAAMO,IAAI,EAAE,IAAI;AACnD"}
|
|
@@ -14,9 +14,11 @@ const useToast_unstable = (props, ref)=>{
|
|
|
14
14
|
components: {
|
|
15
15
|
root: 'div'
|
|
16
16
|
},
|
|
17
|
-
root: (0, _reactUtilities.getNativeElementProps)('div', {
|
|
17
|
+
root: _reactUtilities.slot.always((0, _reactUtilities.getNativeElementProps)('div', {
|
|
18
18
|
ref,
|
|
19
19
|
...props
|
|
20
|
+
}), {
|
|
21
|
+
elementType: 'div'
|
|
20
22
|
}),
|
|
21
23
|
backgroundAppearance: props.appearance
|
|
22
24
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["useToast.js"],"sourcesContent":["import * as React from 'react';\nimport { getNativeElementProps } from '@fluentui/react-utilities';\n/**\n * Create the state required to render Toast.\n *\n * The returned state can be modified with hooks such as useToastStyles_unstable,\n * before being passed to renderToast_unstable.\n *\n * @param props - props from this instance of Toast\n * @param ref - reference to root HTMLElement of Toast\n */ export const useToast_unstable = (props, ref)=>{\n return {\n components: {\n root: 'div'\n },\n root: getNativeElementProps('div', {\n ref,\n ...props\n }),\n backgroundAppearance: props.appearance\n };\n};\n"],"names":["useToast_unstable","props","ref","components","root","getNativeElementProps","backgroundAppearance","appearance"],"mappings":";;;;+BAUiBA;;aAAAA;;;6DAVM;
|
|
1
|
+
{"version":3,"sources":["useToast.js"],"sourcesContent":["import * as React from 'react';\nimport { getNativeElementProps, slot } from '@fluentui/react-utilities';\n/**\n * Create the state required to render Toast.\n *\n * The returned state can be modified with hooks such as useToastStyles_unstable,\n * before being passed to renderToast_unstable.\n *\n * @param props - props from this instance of Toast\n * @param ref - reference to root HTMLElement of Toast\n */ export const useToast_unstable = (props, ref)=>{\n return {\n components: {\n root: 'div'\n },\n root: slot.always(getNativeElementProps('div', {\n ref,\n ...props\n }), {\n elementType: 'div'\n }),\n backgroundAppearance: props.appearance\n };\n};\n"],"names":["useToast_unstable","props","ref","components","root","slot","always","getNativeElementProps","elementType","backgroundAppearance","appearance"],"mappings":";;;;+BAUiBA;;aAAAA;;;6DAVM;gCACqB;AASjC,MAAMA,oBAAoB,CAACC,OAAOC,MAAM;IAC/C,OAAO;QACHC,YAAY;YACRC,MAAM;QACV;QACAA,MAAMC,oBAAI,CAACC,MAAM,CAACC,IAAAA,qCAAqB,EAAC,OAAO;YAC3CL;YACA,GAAGD,KAAK;QACZ,IAAI;YACAO,aAAa;QACjB;QACAC,sBAAsBR,MAAMS,UAAU;IAC1C;AACJ"}
|
|
@@ -9,6 +9,6 @@ Object.defineProperty(exports, "renderToastBody_unstable", {
|
|
|
9
9
|
const _reactJsxRuntime = require("@fluentui/react-jsx-runtime");
|
|
10
10
|
const _reactUtilities = require("@fluentui/react-utilities");
|
|
11
11
|
const renderToastBody_unstable = (state)=>{
|
|
12
|
-
|
|
13
|
-
return /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(_reactJsxRuntime.Fragment, null, /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(
|
|
12
|
+
(0, _reactUtilities.assertSlots)(state);
|
|
13
|
+
return /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(_reactJsxRuntime.Fragment, null, /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(state.root, null), state.subtitle ? /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(state.subtitle, null) : null);
|
|
14
14
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["renderToastBody.js"],"sourcesContent":["/** @jsxRuntime classic */ /** @jsxFrag Fragment */ /** @jsx createElement */ import { createElement, Fragment } from '@fluentui/react-jsx-runtime';\nimport {
|
|
1
|
+
{"version":3,"sources":["renderToastBody.js"],"sourcesContent":["/** @jsxRuntime classic */ /** @jsxFrag Fragment */ /** @jsx createElement */ import { createElement, Fragment } from '@fluentui/react-jsx-runtime';\nimport { assertSlots } from '@fluentui/react-utilities';\n/**\n * Render the final JSX of ToastBody\n */ export const renderToastBody_unstable = (state)=>{\n assertSlots(state);\n return /*#__PURE__*/ createElement(Fragment, null, /*#__PURE__*/ createElement(state.root, null), state.subtitle ? /*#__PURE__*/ createElement(state.subtitle, null) : null);\n};\n"],"names":["renderToastBody_unstable","state","assertSlots","createElement","Fragment","root","subtitle"],"mappings":"AAAA,wBAAwB,GAAG,sBAAsB,GAAG,uBAAuB;;;;+BAI1DA;;aAAAA;;iCAJqG;gCAC1F;AAGjB,MAAMA,2BAA2B,CAACC,QAAQ;IACjDC,IAAAA,2BAAW,EAACD;IACZ,OAAO,WAAW,GAAGE,IAAAA,8BAAa,EAACC,yBAAQ,EAAE,IAAI,EAAE,WAAW,GAAGD,IAAAA,8BAAa,EAACF,MAAMI,IAAI,EAAE,IAAI,GAAGJ,MAAMK,QAAQ,GAAG,WAAW,GAAGH,IAAAA,8BAAa,EAACF,MAAMK,QAAQ,EAAE,IAAI,IAAI,IAAI;AAC/K"}
|
|
@@ -19,11 +19,15 @@ const useToastBody_unstable = (props, ref)=>{
|
|
|
19
19
|
root: 'div',
|
|
20
20
|
subtitle: 'div'
|
|
21
21
|
},
|
|
22
|
-
subtitle:
|
|
23
|
-
|
|
22
|
+
subtitle: _reactUtilities.slot.optional(props.subtitle, {
|
|
23
|
+
elementType: 'div'
|
|
24
|
+
}),
|
|
25
|
+
root: _reactUtilities.slot.always((0, _reactUtilities.getNativeElementProps)('div', {
|
|
24
26
|
ref,
|
|
25
27
|
id: bodyId,
|
|
26
28
|
...props
|
|
29
|
+
}), {
|
|
30
|
+
elementType: 'div'
|
|
27
31
|
}),
|
|
28
32
|
backgroundAppearance
|
|
29
33
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["useToastBody.js"],"sourcesContent":["import * as React from 'react';\nimport { getNativeElementProps,
|
|
1
|
+
{"version":3,"sources":["useToastBody.js"],"sourcesContent":["import * as React from 'react';\nimport { getNativeElementProps, slot } from '@fluentui/react-utilities';\nimport { useToastContainerContext } from '../../contexts/toastContainerContext';\nimport { useBackgroundAppearance } from '@fluentui/react-shared-contexts';\n/**\n * Create the state required to render ToastBody.\n *\n * The returned state can be modified with hooks such as useToastBodyStyles_unstable,\n * before being passed to renderToastBody_unstable.\n *\n * @param props - props from this instance of ToastBody\n * @param ref - reference to root HTMLElement of ToastBody\n */ export const useToastBody_unstable = (props, ref)=>{\n const backgroundAppearance = useBackgroundAppearance();\n const { bodyId } = useToastContainerContext();\n return {\n components: {\n root: 'div',\n subtitle: 'div'\n },\n subtitle: slot.optional(props.subtitle, {\n elementType: 'div'\n }),\n root: slot.always(getNativeElementProps('div', {\n ref,\n id: bodyId,\n ...props\n }), {\n elementType: 'div'\n }),\n backgroundAppearance\n };\n};\n"],"names":["useToastBody_unstable","props","ref","backgroundAppearance","useBackgroundAppearance","bodyId","useToastContainerContext","components","root","subtitle","slot","optional","elementType","always","getNativeElementProps","id"],"mappings":";;;;+BAYiBA;;aAAAA;;;6DAZM;gCACqB;uCACH;qCACD;AAS7B,MAAMA,wBAAwB,CAACC,OAAOC,MAAM;IACnD,MAAMC,uBAAuBC,IAAAA,4CAAuB;IACpD,MAAM,EAAEC,OAAM,EAAG,GAAGC,IAAAA,+CAAwB;IAC5C,OAAO;QACHC,YAAY;YACRC,MAAM;YACNC,UAAU;QACd;QACAA,UAAUC,oBAAI,CAACC,QAAQ,CAACV,MAAMQ,QAAQ,EAAE;YACpCG,aAAa;QACjB;QACAJ,MAAME,oBAAI,CAACG,MAAM,CAACC,IAAAA,qCAAqB,EAAC,OAAO;YAC3CZ;YACAa,IAAIV;YACJ,GAAGJ,KAAK;QACZ,IAAI;YACAW,aAAa;QACjB;QACAT;IACJ;AACJ"}
|
|
@@ -12,7 +12,7 @@ const _reactTransitionGroup = require("react-transition-group");
|
|
|
12
12
|
const _toastContainerContext = require("../../contexts/toastContainerContext");
|
|
13
13
|
const renderToastContainer_unstable = (state, contextValues)=>{
|
|
14
14
|
const { onTransitionEntering , visible , transitionTimeout , remove , nodeRef } = state;
|
|
15
|
-
|
|
15
|
+
(0, _reactUtilities.assertSlots)(state);
|
|
16
16
|
return /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(_reactTransitionGroup.Transition, {
|
|
17
17
|
in: visible,
|
|
18
18
|
appear: true,
|
|
@@ -23,5 +23,5 @@ const renderToastContainer_unstable = (state, contextValues)=>{
|
|
|
23
23
|
nodeRef: nodeRef
|
|
24
24
|
}, /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(_toastContainerContext.ToastContainerContextProvider, {
|
|
25
25
|
value: contextValues.toast
|
|
26
|
-
}, /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(
|
|
26
|
+
}, /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(state.root, null), /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(state.timer, null)));
|
|
27
27
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["renderToastContainer.js"],"sourcesContent":["/** @jsxRuntime classic */ /** @jsx createElement */ import { createElement } from '@fluentui/react-jsx-runtime';\nimport {
|
|
1
|
+
{"version":3,"sources":["renderToastContainer.js"],"sourcesContent":["/** @jsxRuntime classic */ /** @jsx createElement */ import { createElement } from '@fluentui/react-jsx-runtime';\nimport { assertSlots } from '@fluentui/react-utilities';\nimport { Transition } from 'react-transition-group';\nimport { ToastContainerContextProvider } from '../../contexts/toastContainerContext';\n/**\n * Render the final JSX of ToastContainer\n */ export const renderToastContainer_unstable = (state, contextValues)=>{\n const { onTransitionEntering , visible , transitionTimeout , remove , nodeRef } = state;\n assertSlots(state);\n return /*#__PURE__*/ createElement(Transition, {\n in: visible,\n appear: true,\n unmountOnExit: true,\n timeout: transitionTimeout,\n onExited: remove,\n onEntering: onTransitionEntering,\n nodeRef: nodeRef\n }, /*#__PURE__*/ createElement(ToastContainerContextProvider, {\n value: contextValues.toast\n }, /*#__PURE__*/ createElement(state.root, null), /*#__PURE__*/ createElement(state.timer, null)));\n};\n"],"names":["renderToastContainer_unstable","state","contextValues","onTransitionEntering","visible","transitionTimeout","remove","nodeRef","assertSlots","createElement","Transition","in","appear","unmountOnExit","timeout","onExited","onEntering","ToastContainerContextProvider","value","toast","root","timer"],"mappings":"AAAA,wBAAwB,GAAG,uBAAuB;;;;+BAMjCA;;aAAAA;;iCANkE;gCACvD;sCACD;uCACmB;AAGnC,MAAMA,gCAAgC,CAACC,OAAOC,gBAAgB;IACrE,MAAM,EAAEC,qBAAoB,EAAGC,QAAO,EAAGC,kBAAiB,EAAGC,OAAM,EAAGC,QAAO,EAAG,GAAGN;IACnFO,IAAAA,2BAAW,EAACP;IACZ,OAAO,WAAW,GAAGQ,IAAAA,8BAAa,EAACC,gCAAU,EAAE;QAC3CC,IAAIP;QACJQ,QAAQ,IAAI;QACZC,eAAe,IAAI;QACnBC,SAAST;QACTU,UAAUT;QACVU,YAAYb;QACZI,SAASA;IACb,GAAG,WAAW,GAAGE,IAAAA,8BAAa,EAACQ,oDAA6B,EAAE;QAC1DC,OAAOhB,cAAciB,KAAK;IAC9B,GAAG,WAAW,GAAGV,IAAAA,8BAAa,EAACR,MAAMmB,IAAI,EAAE,IAAI,GAAG,WAAW,GAAGX,IAAAA,8BAAa,EAACR,MAAMoB,KAAK,EAAE,IAAI;AACnG"}
|
|
@@ -199,15 +199,15 @@ const useToastContainer_unstable = (props, ref)=>{
|
|
|
199
199
|
timer: _timer.Timer,
|
|
200
200
|
root: 'div'
|
|
201
201
|
},
|
|
202
|
-
timer:
|
|
202
|
+
timer: _reactUtilities.slot.always({
|
|
203
203
|
key: updateId,
|
|
204
204
|
onTimeout: close,
|
|
205
205
|
running,
|
|
206
206
|
timeout: timerTimeout !== null && timerTimeout !== void 0 ? timerTimeout : -1
|
|
207
207
|
}, {
|
|
208
|
-
|
|
208
|
+
elementType: _timer.Timer
|
|
209
209
|
}),
|
|
210
|
-
root: (0, _reactUtilities.getNativeElementProps)('div', {
|
|
210
|
+
root: _reactUtilities.slot.always((0, _reactUtilities.getNativeElementProps)('div', {
|
|
211
211
|
ref: (0, _reactUtilities.useMergedRefs)(ref, toastRef, toastAnimationRef),
|
|
212
212
|
children,
|
|
213
213
|
tabIndex: 0,
|
|
@@ -220,6 +220,8 @@ const useToastContainer_unstable = (props, ref)=>{
|
|
|
220
220
|
onMouseEnter,
|
|
221
221
|
onMouseLeave,
|
|
222
222
|
onKeyDown
|
|
223
|
+
}), {
|
|
224
|
+
elementType: 'div'
|
|
223
225
|
}),
|
|
224
226
|
timerTimeout,
|
|
225
227
|
transitionTimeout: 500,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["useToastContainer.js"],"sourcesContent":["import * as React from 'react';\nimport { getNativeElementProps, useMergedRefs, useEventCallback, resolveShorthand, useId } from '@fluentui/react-utilities';\nimport { useFluent_unstable } from '@fluentui/react-shared-contexts';\nimport { Delete, Tab } from '@fluentui/keyboard-keys';\nimport { useFocusableGroup, useFocusFinders } from '@fluentui/react-tabster';\nimport { Timer } from '../Timer/Timer';\nconst intentPolitenessMap = {\n success: 'assertive',\n warning: 'assertive',\n error: 'assertive',\n info: 'polite'\n};\n/**\n * Create the state required to render ToastContainer.\n *\n * The returned state can be modified with hooks such as useToastContainerStyles_unstable,\n * before being passed to renderToastContainer_unstable.\n *\n * @param props - props from this instance of ToastContainer\n * @param ref - reference to root HTMLElement of ToastContainer\n */ export const useToastContainer_unstable = (props, ref)=>{\n const { visible , children , close: closeProp , remove , updateId , announce , data , timeout: timerTimeout , politeness: desiredPoliteness , intent ='info' , pauseOnHover , pauseOnWindowBlur , imperativeRef , tryRestoreFocus , ...rest } = props;\n const titleId = useId('toast-title');\n const bodyId = useId('toast-body');\n const toastRef = React.useRef(null);\n const { targetDocument } = useFluent_unstable();\n const [running, setRunning] = React.useState(false);\n const imperativePauseRef = React.useRef(false);\n const focusedToastBeforeClose = React.useRef(false);\n const focusableGroupAttribute = useFocusableGroup({\n tabBehavior: 'limited-trap-focus',\n // Users should only use Tab to focus into the toast\n // Escape is already reserved to dismiss all toasts\n ignoreDefaultKeydown: {\n Tab: true,\n Escape: true,\n Enter: true\n }\n });\n const close = useEventCallback(()=>{\n var _toastRef_current;\n const activeElement = targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.activeElement;\n if (activeElement && ((_toastRef_current = toastRef.current) === null || _toastRef_current === void 0 ? void 0 : _toastRef_current.contains(activeElement))) {\n focusedToastBeforeClose.current = true;\n }\n closeProp();\n });\n const onStatusChange = useEventCallback((status)=>{\n var _props_onStatusChange;\n return (_props_onStatusChange = props.onStatusChange) === null || _props_onStatusChange === void 0 ? void 0 : _props_onStatusChange.call(props, null, {\n status,\n ...props\n });\n });\n const pause = useEventCallback(()=>setRunning(false));\n const play = useEventCallback(()=>{\n var _toastRef_current;\n if (imperativePauseRef.current) {\n return;\n }\n var _targetDocument_activeElement;\n const containsActive = !!((_toastRef_current = toastRef.current) === null || _toastRef_current === void 0 ? void 0 : _toastRef_current.contains((_targetDocument_activeElement = targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.activeElement) !== null && _targetDocument_activeElement !== void 0 ? _targetDocument_activeElement : null));\n if (timerTimeout < 0) {\n setRunning(true);\n return;\n }\n if (!containsActive) {\n setRunning(true);\n }\n });\n React.useImperativeHandle(imperativeRef, ()=>({\n focus: ()=>{\n if (!toastRef.current) {\n return;\n }\n toastRef.current.focus();\n },\n play: ()=>{\n imperativePauseRef.current = false;\n play();\n },\n pause: ()=>{\n imperativePauseRef.current = true;\n pause();\n }\n }));\n React.useEffect(()=>{\n return ()=>onStatusChange('unmounted');\n }, [\n onStatusChange\n ]);\n React.useEffect(()=>{\n if (!targetDocument) {\n return;\n }\n if (pauseOnWindowBlur) {\n var _targetDocument_defaultView, _targetDocument_defaultView1;\n (_targetDocument_defaultView = targetDocument.defaultView) === null || _targetDocument_defaultView === void 0 ? void 0 : _targetDocument_defaultView.addEventListener('focus', play);\n (_targetDocument_defaultView1 = targetDocument.defaultView) === null || _targetDocument_defaultView1 === void 0 ? void 0 : _targetDocument_defaultView1.addEventListener('blur', pause);\n return ()=>{\n var _targetDocument_defaultView, _targetDocument_defaultView1;\n (_targetDocument_defaultView = targetDocument.defaultView) === null || _targetDocument_defaultView === void 0 ? void 0 : _targetDocument_defaultView.removeEventListener('focus', play);\n (_targetDocument_defaultView1 = targetDocument.defaultView) === null || _targetDocument_defaultView1 === void 0 ? void 0 : _targetDocument_defaultView1.removeEventListener('blur', pause);\n };\n }\n }, [\n targetDocument,\n pause,\n play,\n pauseOnWindowBlur\n ]);\n // It's impossible to animate to height: auto in CSS, the actual pixel value must be known\n // Get the height of the toast before animation styles have been applied and set a CSS\n // variable with its height. The CSS variable will be used by the styles\n const onTransitionEntering = ()=>{\n if (!toastRef.current) {\n return;\n }\n const element = toastRef.current;\n element.style.setProperty('--fui-toast-height', `${element.scrollHeight}px`);\n };\n // Users never actually use ToastContainer as a JSX but imperatively through useToastContainerController\n const userRootSlot = data.root;\n // Using a ref callback here because addEventListener supports `once`\n const toastAnimationRef = React.useCallback((el)=>{\n if (el && toastRef.current) {\n toastRef.current.addEventListener('animationend', ()=>{\n // start toast once it's fully animated in\n play();\n onStatusChange('visible');\n }, {\n once: true\n });\n }\n }, [\n play,\n onStatusChange\n ]);\n const onMouseEnter = useEventCallback((e)=>{\n var _userRootSlot_onMouseEnter;\n pause();\n userRootSlot === null || userRootSlot === void 0 ? void 0 : (_userRootSlot_onMouseEnter = userRootSlot.onMouseEnter) === null || _userRootSlot_onMouseEnter === void 0 ? void 0 : _userRootSlot_onMouseEnter.call(userRootSlot, e);\n });\n const onMouseLeave = useEventCallback((e)=>{\n var _userRootSlot_onMouseEnter;\n play();\n userRootSlot === null || userRootSlot === void 0 ? void 0 : (_userRootSlot_onMouseEnter = userRootSlot.onMouseEnter) === null || _userRootSlot_onMouseEnter === void 0 ? void 0 : _userRootSlot_onMouseEnter.call(userRootSlot, e);\n });\n const { findFirstFocusable , findLastFocusable } = useFocusFinders();\n const onKeyDown = useEventCallback((e)=>{\n var _userRootSlot_onKeyDown;\n if (e.key === Delete) {\n e.preventDefault();\n close();\n }\n if (e.key === Tab && e.currentTarget === e.target) {\n e.preventDefault();\n if (e.shiftKey) {\n var _findLastFocusable;\n (_findLastFocusable = findLastFocusable(e.currentTarget)) === null || _findLastFocusable === void 0 ? void 0 : _findLastFocusable.focus();\n } else {\n var _findFirstFocusable;\n (_findFirstFocusable = findFirstFocusable(e.currentTarget)) === null || _findFirstFocusable === void 0 ? void 0 : _findFirstFocusable.focus();\n }\n }\n userRootSlot === null || userRootSlot === void 0 ? void 0 : (_userRootSlot_onKeyDown = userRootSlot.onKeyDown) === null || _userRootSlot_onKeyDown === void 0 ? void 0 : _userRootSlot_onKeyDown.call(userRootSlot, e);\n });\n React.useEffect(()=>{\n var _toastRef_current;\n if (!visible) {\n return;\n }\n const politeness = desiredPoliteness !== null && desiredPoliteness !== void 0 ? desiredPoliteness : intentPolitenessMap[intent];\n var _toastRef_current_textContent;\n announce((_toastRef_current_textContent = (_toastRef_current = toastRef.current) === null || _toastRef_current === void 0 ? void 0 : _toastRef_current.textContent) !== null && _toastRef_current_textContent !== void 0 ? _toastRef_current_textContent : '', {\n politeness\n });\n }, [\n announce,\n desiredPoliteness,\n toastRef,\n visible,\n updateId,\n intent\n ]);\n React.useEffect(()=>{\n return ()=>{\n if (focusedToastBeforeClose.current) {\n focusedToastBeforeClose.current = false;\n tryRestoreFocus();\n }\n };\n }, [\n tryRestoreFocus\n ]);\n return {\n components: {\n timer: Timer,\n root: 'div'\n },\n timer: resolveShorthand({\n key: updateId,\n onTimeout: close,\n running,\n timeout: timerTimeout !== null && timerTimeout !== void 0 ? timerTimeout : -1\n }, {\n required: true\n }),\n root: getNativeElementProps('div', {\n ref: useMergedRefs(ref, toastRef, toastAnimationRef),\n children,\n tabIndex: 0,\n role: 'listitem',\n 'aria-labelledby': titleId,\n 'aria-describedby': bodyId,\n ...rest,\n ...userRootSlot,\n ...focusableGroupAttribute,\n onMouseEnter,\n onMouseLeave,\n onKeyDown\n }),\n timerTimeout,\n transitionTimeout: 500,\n running,\n visible,\n remove,\n close,\n onTransitionEntering,\n updateId,\n nodeRef: toastRef,\n intent,\n titleId,\n bodyId\n };\n};\n"],"names":["useToastContainer_unstable","intentPolitenessMap","success","warning","error","info","props","ref","visible","children","close","closeProp","remove","updateId","announce","data","timeout","timerTimeout","politeness","desiredPoliteness","intent","pauseOnHover","pauseOnWindowBlur","imperativeRef","tryRestoreFocus","rest","titleId","useId","bodyId","toastRef","React","useRef","targetDocument","useFluent_unstable","running","setRunning","useState","imperativePauseRef","focusedToastBeforeClose","focusableGroupAttribute","useFocusableGroup","tabBehavior","ignoreDefaultKeydown","Tab","Escape","Enter","useEventCallback","_toastRef_current","activeElement","current","contains","onStatusChange","status","_props_onStatusChange","call","pause","play","_targetDocument_activeElement","containsActive","useImperativeHandle","focus","useEffect","_targetDocument_defaultView","_targetDocument_defaultView1","defaultView","addEventListener","removeEventListener","onTransitionEntering","element","style","setProperty","scrollHeight","userRootSlot","root","toastAnimationRef","useCallback","el","once","onMouseEnter","e","_userRootSlot_onMouseEnter","onMouseLeave","findFirstFocusable","findLastFocusable","useFocusFinders","onKeyDown","_userRootSlot_onKeyDown","key","Delete","preventDefault","currentTarget","target","shiftKey","_findLastFocusable","_findFirstFocusable","_toastRef_current_textContent","textContent","components","timer","Timer","resolveShorthand","onTimeout","required","getNativeElementProps","useMergedRefs","tabIndex","role","transitionTimeout","nodeRef"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["useToastContainer.js"],"sourcesContent":["import * as React from 'react';\nimport { getNativeElementProps, useMergedRefs, useEventCallback, useId, slot } from '@fluentui/react-utilities';\nimport { useFluent_unstable } from '@fluentui/react-shared-contexts';\nimport { Delete, Tab } from '@fluentui/keyboard-keys';\nimport { useFocusableGroup, useFocusFinders } from '@fluentui/react-tabster';\nimport { Timer } from '../Timer/Timer';\nconst intentPolitenessMap = {\n success: 'assertive',\n warning: 'assertive',\n error: 'assertive',\n info: 'polite'\n};\n/**\n * Create the state required to render ToastContainer.\n *\n * The returned state can be modified with hooks such as useToastContainerStyles_unstable,\n * before being passed to renderToastContainer_unstable.\n *\n * @param props - props from this instance of ToastContainer\n * @param ref - reference to root HTMLElement of ToastContainer\n */ export const useToastContainer_unstable = (props, ref)=>{\n const { visible , children , close: closeProp , remove , updateId , announce , data , timeout: timerTimeout , politeness: desiredPoliteness , intent ='info' , pauseOnHover , pauseOnWindowBlur , imperativeRef , tryRestoreFocus , ...rest } = props;\n const titleId = useId('toast-title');\n const bodyId = useId('toast-body');\n const toastRef = React.useRef(null);\n const { targetDocument } = useFluent_unstable();\n const [running, setRunning] = React.useState(false);\n const imperativePauseRef = React.useRef(false);\n const focusedToastBeforeClose = React.useRef(false);\n const focusableGroupAttribute = useFocusableGroup({\n tabBehavior: 'limited-trap-focus',\n // Users should only use Tab to focus into the toast\n // Escape is already reserved to dismiss all toasts\n ignoreDefaultKeydown: {\n Tab: true,\n Escape: true,\n Enter: true\n }\n });\n const close = useEventCallback(()=>{\n var _toastRef_current;\n const activeElement = targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.activeElement;\n if (activeElement && ((_toastRef_current = toastRef.current) === null || _toastRef_current === void 0 ? void 0 : _toastRef_current.contains(activeElement))) {\n focusedToastBeforeClose.current = true;\n }\n closeProp();\n });\n const onStatusChange = useEventCallback((status)=>{\n var _props_onStatusChange;\n return (_props_onStatusChange = props.onStatusChange) === null || _props_onStatusChange === void 0 ? void 0 : _props_onStatusChange.call(props, null, {\n status,\n ...props\n });\n });\n const pause = useEventCallback(()=>setRunning(false));\n const play = useEventCallback(()=>{\n var _toastRef_current;\n if (imperativePauseRef.current) {\n return;\n }\n var _targetDocument_activeElement;\n const containsActive = !!((_toastRef_current = toastRef.current) === null || _toastRef_current === void 0 ? void 0 : _toastRef_current.contains((_targetDocument_activeElement = targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.activeElement) !== null && _targetDocument_activeElement !== void 0 ? _targetDocument_activeElement : null));\n if (timerTimeout < 0) {\n setRunning(true);\n return;\n }\n if (!containsActive) {\n setRunning(true);\n }\n });\n React.useImperativeHandle(imperativeRef, ()=>({\n focus: ()=>{\n if (!toastRef.current) {\n return;\n }\n toastRef.current.focus();\n },\n play: ()=>{\n imperativePauseRef.current = false;\n play();\n },\n pause: ()=>{\n imperativePauseRef.current = true;\n pause();\n }\n }));\n React.useEffect(()=>{\n return ()=>onStatusChange('unmounted');\n }, [\n onStatusChange\n ]);\n React.useEffect(()=>{\n if (!targetDocument) {\n return;\n }\n if (pauseOnWindowBlur) {\n var _targetDocument_defaultView, _targetDocument_defaultView1;\n (_targetDocument_defaultView = targetDocument.defaultView) === null || _targetDocument_defaultView === void 0 ? void 0 : _targetDocument_defaultView.addEventListener('focus', play);\n (_targetDocument_defaultView1 = targetDocument.defaultView) === null || _targetDocument_defaultView1 === void 0 ? void 0 : _targetDocument_defaultView1.addEventListener('blur', pause);\n return ()=>{\n var _targetDocument_defaultView, _targetDocument_defaultView1;\n (_targetDocument_defaultView = targetDocument.defaultView) === null || _targetDocument_defaultView === void 0 ? void 0 : _targetDocument_defaultView.removeEventListener('focus', play);\n (_targetDocument_defaultView1 = targetDocument.defaultView) === null || _targetDocument_defaultView1 === void 0 ? void 0 : _targetDocument_defaultView1.removeEventListener('blur', pause);\n };\n }\n }, [\n targetDocument,\n pause,\n play,\n pauseOnWindowBlur\n ]);\n // It's impossible to animate to height: auto in CSS, the actual pixel value must be known\n // Get the height of the toast before animation styles have been applied and set a CSS\n // variable with its height. The CSS variable will be used by the styles\n const onTransitionEntering = ()=>{\n if (!toastRef.current) {\n return;\n }\n const element = toastRef.current;\n element.style.setProperty('--fui-toast-height', `${element.scrollHeight}px`);\n };\n // Users never actually use ToastContainer as a JSX but imperatively through useToastContainerController\n const userRootSlot = data.root;\n // Using a ref callback here because addEventListener supports `once`\n const toastAnimationRef = React.useCallback((el)=>{\n if (el && toastRef.current) {\n toastRef.current.addEventListener('animationend', ()=>{\n // start toast once it's fully animated in\n play();\n onStatusChange('visible');\n }, {\n once: true\n });\n }\n }, [\n play,\n onStatusChange\n ]);\n const onMouseEnter = useEventCallback((e)=>{\n var _userRootSlot_onMouseEnter;\n pause();\n userRootSlot === null || userRootSlot === void 0 ? void 0 : (_userRootSlot_onMouseEnter = userRootSlot.onMouseEnter) === null || _userRootSlot_onMouseEnter === void 0 ? void 0 : _userRootSlot_onMouseEnter.call(userRootSlot, e);\n });\n const onMouseLeave = useEventCallback((e)=>{\n var _userRootSlot_onMouseEnter;\n play();\n userRootSlot === null || userRootSlot === void 0 ? void 0 : (_userRootSlot_onMouseEnter = userRootSlot.onMouseEnter) === null || _userRootSlot_onMouseEnter === void 0 ? void 0 : _userRootSlot_onMouseEnter.call(userRootSlot, e);\n });\n const { findFirstFocusable , findLastFocusable } = useFocusFinders();\n const onKeyDown = useEventCallback((e)=>{\n var _userRootSlot_onKeyDown;\n if (e.key === Delete) {\n e.preventDefault();\n close();\n }\n if (e.key === Tab && e.currentTarget === e.target) {\n e.preventDefault();\n if (e.shiftKey) {\n var _findLastFocusable;\n (_findLastFocusable = findLastFocusable(e.currentTarget)) === null || _findLastFocusable === void 0 ? void 0 : _findLastFocusable.focus();\n } else {\n var _findFirstFocusable;\n (_findFirstFocusable = findFirstFocusable(e.currentTarget)) === null || _findFirstFocusable === void 0 ? void 0 : _findFirstFocusable.focus();\n }\n }\n userRootSlot === null || userRootSlot === void 0 ? void 0 : (_userRootSlot_onKeyDown = userRootSlot.onKeyDown) === null || _userRootSlot_onKeyDown === void 0 ? void 0 : _userRootSlot_onKeyDown.call(userRootSlot, e);\n });\n React.useEffect(()=>{\n var _toastRef_current;\n if (!visible) {\n return;\n }\n const politeness = desiredPoliteness !== null && desiredPoliteness !== void 0 ? desiredPoliteness : intentPolitenessMap[intent];\n var _toastRef_current_textContent;\n announce((_toastRef_current_textContent = (_toastRef_current = toastRef.current) === null || _toastRef_current === void 0 ? void 0 : _toastRef_current.textContent) !== null && _toastRef_current_textContent !== void 0 ? _toastRef_current_textContent : '', {\n politeness\n });\n }, [\n announce,\n desiredPoliteness,\n toastRef,\n visible,\n updateId,\n intent\n ]);\n React.useEffect(()=>{\n return ()=>{\n if (focusedToastBeforeClose.current) {\n focusedToastBeforeClose.current = false;\n tryRestoreFocus();\n }\n };\n }, [\n tryRestoreFocus\n ]);\n return {\n components: {\n timer: Timer,\n root: 'div'\n },\n timer: slot.always({\n key: updateId,\n onTimeout: close,\n running,\n timeout: timerTimeout !== null && timerTimeout !== void 0 ? timerTimeout : -1\n }, {\n elementType: Timer\n }),\n root: slot.always(getNativeElementProps('div', {\n ref: useMergedRefs(ref, toastRef, toastAnimationRef),\n children,\n tabIndex: 0,\n role: 'listitem',\n 'aria-labelledby': titleId,\n 'aria-describedby': bodyId,\n ...rest,\n ...userRootSlot,\n ...focusableGroupAttribute,\n onMouseEnter,\n onMouseLeave,\n onKeyDown\n }), {\n elementType: 'div'\n }),\n timerTimeout,\n transitionTimeout: 500,\n running,\n visible,\n remove,\n close,\n onTransitionEntering,\n updateId,\n nodeRef: toastRef,\n intent,\n titleId,\n bodyId\n };\n};\n"],"names":["useToastContainer_unstable","intentPolitenessMap","success","warning","error","info","props","ref","visible","children","close","closeProp","remove","updateId","announce","data","timeout","timerTimeout","politeness","desiredPoliteness","intent","pauseOnHover","pauseOnWindowBlur","imperativeRef","tryRestoreFocus","rest","titleId","useId","bodyId","toastRef","React","useRef","targetDocument","useFluent_unstable","running","setRunning","useState","imperativePauseRef","focusedToastBeforeClose","focusableGroupAttribute","useFocusableGroup","tabBehavior","ignoreDefaultKeydown","Tab","Escape","Enter","useEventCallback","_toastRef_current","activeElement","current","contains","onStatusChange","status","_props_onStatusChange","call","pause","play","_targetDocument_activeElement","containsActive","useImperativeHandle","focus","useEffect","_targetDocument_defaultView","_targetDocument_defaultView1","defaultView","addEventListener","removeEventListener","onTransitionEntering","element","style","setProperty","scrollHeight","userRootSlot","root","toastAnimationRef","useCallback","el","once","onMouseEnter","e","_userRootSlot_onMouseEnter","onMouseLeave","findFirstFocusable","findLastFocusable","useFocusFinders","onKeyDown","_userRootSlot_onKeyDown","key","Delete","preventDefault","currentTarget","target","shiftKey","_findLastFocusable","_findFirstFocusable","_toastRef_current_textContent","textContent","components","timer","Timer","slot","always","onTimeout","elementType","getNativeElementProps","useMergedRefs","tabIndex","role","transitionTimeout","nodeRef"],"mappings":"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"}
|
|
@@ -9,6 +9,6 @@ Object.defineProperty(exports, "renderToastFooter_unstable", {
|
|
|
9
9
|
const _reactJsxRuntime = require("@fluentui/react-jsx-runtime");
|
|
10
10
|
const _reactUtilities = require("@fluentui/react-utilities");
|
|
11
11
|
const renderToastFooter_unstable = (state)=>{
|
|
12
|
-
|
|
13
|
-
return /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(
|
|
12
|
+
(0, _reactUtilities.assertSlots)(state);
|
|
13
|
+
return /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(state.root, null);
|
|
14
14
|
};
|