@fluentui/react-dialog 9.0.0-beta.7 → 9.0.0-beta.9
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 +189 -5
- package/CHANGELOG.md +44 -6
- package/Spec.md +44 -25
- package/dist/index.d.ts +99 -55
- package/lib/Dialog.js.map +1 -1
- package/lib/DialogActions.js.map +1 -1
- package/lib/DialogBody.js.map +1 -1
- package/lib/DialogContent.js +2 -0
- package/lib/DialogContent.js.map +1 -0
- package/lib/DialogSurface.js.map +1 -1
- package/lib/DialogTitle.js.map +1 -1
- package/lib/DialogTrigger.js.map +1 -1
- package/lib/components/Dialog/Dialog.js +0 -2
- package/lib/components/Dialog/Dialog.js.map +1 -1
- package/lib/components/Dialog/Dialog.types.js.map +1 -1
- package/lib/components/Dialog/index.js +0 -1
- package/lib/components/Dialog/index.js.map +1 -1
- package/lib/components/Dialog/renderDialog.js +2 -10
- package/lib/components/Dialog/renderDialog.js.map +1 -1
- package/lib/components/Dialog/useDialog.js +19 -129
- package/lib/components/Dialog/useDialog.js.map +1 -1
- package/lib/components/Dialog/useDialogContextValues.js +4 -4
- package/lib/components/Dialog/useDialogContextValues.js.map +1 -1
- package/lib/components/DialogActions/DialogActions.js.map +1 -1
- package/lib/components/DialogActions/DialogActions.types.js.map +1 -1
- package/lib/components/DialogActions/index.js.map +1 -1
- package/lib/components/DialogActions/renderDialogActions.js.map +1 -1
- package/lib/components/DialogActions/useDialogActions.js.map +1 -1
- package/lib/components/DialogActions/useDialogActionsStyles.js +3 -5
- package/lib/components/DialogActions/useDialogActionsStyles.js.map +1 -1
- package/lib/components/DialogBody/DialogBody.js.map +1 -1
- package/lib/components/DialogBody/DialogBody.types.js.map +1 -1
- package/lib/components/DialogBody/index.js.map +1 -1
- package/lib/components/DialogBody/renderDialogBody.js.map +1 -1
- package/lib/components/DialogBody/useDialogBody.js.map +1 -1
- package/lib/components/DialogBody/useDialogBodyStyles.js +5 -5
- package/lib/components/DialogBody/useDialogBodyStyles.js.map +1 -1
- package/lib/components/DialogContent/DialogContent.js +15 -0
- package/lib/components/DialogContent/DialogContent.js.map +1 -0
- package/lib/components/DialogContent/DialogContent.types.js +2 -0
- package/lib/components/DialogContent/DialogContent.types.js.map +1 -0
- package/lib/components/DialogContent/index.js +6 -0
- package/lib/components/DialogContent/index.js.map +1 -0
- package/lib/components/DialogContent/renderDialogContent.js +16 -0
- package/lib/components/DialogContent/renderDialogContent.js.map +1 -0
- package/lib/components/DialogContent/useDialogContent.js +27 -0
- package/lib/components/DialogContent/useDialogContent.js.map +1 -0
- package/lib/components/DialogContent/useDialogContentStyles.js +26 -0
- package/lib/components/DialogContent/useDialogContentStyles.js.map +1 -0
- package/lib/components/DialogSurface/DialogSurface.js.map +1 -1
- package/lib/components/DialogSurface/DialogSurface.types.js.map +1 -1
- package/lib/components/DialogSurface/index.js.map +1 -1
- package/lib/components/DialogSurface/renderDialogSurface.js +4 -2
- package/lib/components/DialogSurface/renderDialogSurface.js.map +1 -1
- package/lib/components/DialogSurface/useDialogSurface.js +120 -21
- package/lib/components/DialogSurface/useDialogSurface.js.map +1 -1
- package/lib/components/DialogSurface/useDialogSurfaceContextValues.js.map +1 -1
- package/lib/components/DialogSurface/useDialogSurfaceStyles.js +57 -7
- package/lib/components/DialogSurface/useDialogSurfaceStyles.js.map +1 -1
- package/lib/components/DialogTitle/DialogTitle.js +2 -3
- package/lib/components/DialogTitle/DialogTitle.js.map +1 -1
- package/lib/components/DialogTitle/DialogTitle.types.js.map +1 -1
- package/lib/components/DialogTitle/index.js.map +1 -1
- package/lib/components/DialogTitle/renderDialogTitle.js +2 -5
- package/lib/components/DialogTitle/renderDialogTitle.js.map +1 -1
- package/lib/components/DialogTitle/useDialogTitle.js +15 -9
- package/lib/components/DialogTitle/useDialogTitle.js.map +1 -1
- package/lib/components/DialogTitle/useDialogTitleStyles.js +61 -54
- package/lib/components/DialogTitle/useDialogTitleStyles.js.map +1 -1
- package/lib/components/DialogTrigger/DialogTrigger.js.map +1 -1
- package/lib/components/DialogTrigger/DialogTrigger.types.js.map +1 -1
- package/lib/components/DialogTrigger/index.js.map +1 -1
- package/lib/components/DialogTrigger/renderDialogTrigger.js.map +1 -1
- package/lib/components/DialogTrigger/useDialogTrigger.js +3 -22
- package/lib/components/DialogTrigger/useDialogTrigger.js.map +1 -1
- package/lib/contexts/constants.js +1 -1
- package/lib/contexts/constants.js.map +1 -1
- package/lib/contexts/dialogContext.js +2 -4
- package/lib/contexts/dialogContext.js.map +1 -1
- package/lib/contexts/dialogSurfaceContext.js.map +1 -1
- package/lib/contexts/index.js.map +1 -1
- package/lib/index.js +2 -1
- package/lib/index.js.map +1 -1
- package/lib/utils/index.js +4 -3
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/isEscapeKeyDown.js +5 -4
- package/lib/utils/isEscapeKeyDown.js.map +1 -1
- package/lib/utils/isHTMLDialogElement.js +4 -0
- package/lib/utils/isHTMLDialogElement.js.map +1 -0
- package/lib/utils/useControlNativeDialogOpenState.js +20 -0
- package/lib/utils/useControlNativeDialogOpenState.js.map +1 -0
- package/lib/utils/useDisableBodyScroll.js +60 -0
- package/lib/utils/useDisableBodyScroll.js.map +1 -0
- package/lib/utils/useFocusFirstElement.js +41 -0
- package/lib/utils/useFocusFirstElement.js.map +1 -0
- package/lib-commonjs/Dialog.js.map +1 -1
- package/lib-commonjs/DialogActions.js.map +1 -1
- package/lib-commonjs/DialogBody.js.map +1 -1
- package/lib-commonjs/DialogContent.js +10 -0
- package/lib-commonjs/DialogContent.js.map +1 -0
- package/lib-commonjs/DialogSurface.js.map +1 -1
- package/lib-commonjs/DialogTitle.js.map +1 -1
- package/lib-commonjs/DialogTrigger.js.map +1 -1
- package/lib-commonjs/components/Dialog/Dialog.js +0 -3
- package/lib-commonjs/components/Dialog/Dialog.js.map +1 -1
- package/lib-commonjs/components/Dialog/index.js +0 -2
- package/lib-commonjs/components/Dialog/index.js.map +1 -1
- package/lib-commonjs/components/Dialog/renderDialog.js +2 -12
- package/lib-commonjs/components/Dialog/renderDialog.js.map +1 -1
- package/lib-commonjs/components/Dialog/useDialog.js +18 -128
- package/lib-commonjs/components/Dialog/useDialog.js.map +1 -1
- package/lib-commonjs/components/Dialog/useDialogContextValues.js +4 -4
- package/lib-commonjs/components/Dialog/useDialogContextValues.js.map +1 -1
- package/lib-commonjs/components/DialogActions/DialogActions.js.map +1 -1
- package/lib-commonjs/components/DialogActions/index.js.map +1 -1
- package/lib-commonjs/components/DialogActions/renderDialogActions.js.map +1 -1
- package/lib-commonjs/components/DialogActions/useDialogActions.js.map +1 -1
- package/lib-commonjs/components/DialogActions/useDialogActionsStyles.js +3 -6
- package/lib-commonjs/components/DialogActions/useDialogActionsStyles.js.map +1 -1
- package/lib-commonjs/components/DialogBody/DialogBody.js.map +1 -1
- package/lib-commonjs/components/DialogBody/index.js.map +1 -1
- package/lib-commonjs/components/DialogBody/renderDialogBody.js.map +1 -1
- package/lib-commonjs/components/DialogBody/useDialogBody.js.map +1 -1
- package/lib-commonjs/components/DialogBody/useDialogBodyStyles.js +4 -5
- package/lib-commonjs/components/DialogBody/useDialogBodyStyles.js.map +1 -1
- package/lib-commonjs/components/DialogContent/DialogContent.js +26 -0
- package/lib-commonjs/components/DialogContent/DialogContent.js.map +1 -0
- package/lib-commonjs/components/DialogContent/DialogContent.types.js +6 -0
- package/lib-commonjs/components/DialogContent/DialogContent.types.js.map +1 -0
- package/lib-commonjs/components/DialogContent/index.js +18 -0
- package/lib-commonjs/components/DialogContent/index.js.map +1 -0
- package/lib-commonjs/components/DialogContent/renderDialogContent.js +27 -0
- package/lib-commonjs/components/DialogContent/renderDialogContent.js.map +1 -0
- package/lib-commonjs/components/DialogContent/useDialogContent.js +37 -0
- package/lib-commonjs/components/DialogContent/useDialogContent.js.map +1 -0
- package/lib-commonjs/components/DialogContent/useDialogContentStyles.js +36 -0
- package/lib-commonjs/components/DialogContent/useDialogContentStyles.js.map +1 -0
- package/lib-commonjs/components/DialogSurface/DialogSurface.js.map +1 -1
- package/lib-commonjs/components/DialogSurface/index.js.map +1 -1
- package/lib-commonjs/components/DialogSurface/renderDialogSurface.js +5 -2
- package/lib-commonjs/components/DialogSurface/renderDialogSurface.js.map +1 -1
- package/lib-commonjs/components/DialogSurface/useDialogSurface.js +120 -21
- package/lib-commonjs/components/DialogSurface/useDialogSurface.js.map +1 -1
- package/lib-commonjs/components/DialogSurface/useDialogSurfaceContextValues.js.map +1 -1
- package/lib-commonjs/components/DialogSurface/useDialogSurfaceStyles.js +57 -6
- package/lib-commonjs/components/DialogSurface/useDialogSurfaceStyles.js.map +1 -1
- package/lib-commonjs/components/DialogTitle/DialogTitle.js +2 -3
- package/lib-commonjs/components/DialogTitle/DialogTitle.js.map +1 -1
- package/lib-commonjs/components/DialogTitle/index.js.map +1 -1
- package/lib-commonjs/components/DialogTitle/renderDialogTitle.js +2 -6
- package/lib-commonjs/components/DialogTitle/renderDialogTitle.js.map +1 -1
- package/lib-commonjs/components/DialogTitle/useDialogTitle.js +18 -10
- package/lib-commonjs/components/DialogTitle/useDialogTitle.js.map +1 -1
- package/lib-commonjs/components/DialogTitle/useDialogTitleStyles.js +62 -56
- package/lib-commonjs/components/DialogTitle/useDialogTitleStyles.js.map +1 -1
- package/lib-commonjs/components/DialogTrigger/DialogTrigger.js.map +1 -1
- package/lib-commonjs/components/DialogTrigger/index.js.map +1 -1
- package/lib-commonjs/components/DialogTrigger/renderDialogTrigger.js.map +1 -1
- package/lib-commonjs/components/DialogTrigger/useDialogTrigger.js +4 -24
- package/lib-commonjs/components/DialogTrigger/useDialogTrigger.js.map +1 -1
- package/lib-commonjs/contexts/constants.js +2 -2
- package/lib-commonjs/contexts/constants.js.map +1 -1
- package/lib-commonjs/contexts/dialogContext.js +2 -4
- package/lib-commonjs/contexts/dialogContext.js.map +1 -1
- package/lib-commonjs/contexts/dialogSurfaceContext.js.map +1 -1
- package/lib-commonjs/contexts/index.js.map +1 -1
- package/lib-commonjs/index.js +34 -13
- package/lib-commonjs/index.js.map +1 -1
- package/lib-commonjs/utils/index.js +5 -3
- package/lib-commonjs/utils/index.js.map +1 -1
- package/lib-commonjs/utils/isEscapeKeyDown.js +5 -4
- package/lib-commonjs/utils/isEscapeKeyDown.js.map +1 -1
- package/lib-commonjs/utils/isHTMLDialogElement.js +13 -0
- package/lib-commonjs/utils/isHTMLDialogElement.js.map +1 -0
- package/lib-commonjs/utils/useControlNativeDialogOpenState.js +31 -0
- package/lib-commonjs/utils/useControlNativeDialogOpenState.js.map +1 -0
- package/lib-commonjs/utils/useDisableBodyScroll.js +73 -0
- package/lib-commonjs/utils/useDisableBodyScroll.js.map +1 -0
- package/lib-commonjs/utils/useFocusFirstElement.js +54 -0
- package/lib-commonjs/utils/useFocusFirstElement.js.map +1 -0
- package/package.json +15 -16
- package/dist/tsdoc-metadata.json +0 -11
- package/lib/components/Dialog/useDialogStyles.js +0 -41
- package/lib/components/Dialog/useDialogStyles.js.map +0 -1
- package/lib/utils/isTargetDisabled.js +0 -14
- package/lib/utils/isTargetDisabled.js.map +0 -1
- package/lib/utils/localShorthands.js +0 -9
- package/lib/utils/localShorthands.js.map +0 -1
- package/lib/utils/normalizeDefaultPrevented.js +0 -11
- package/lib/utils/normalizeDefaultPrevented.js.map +0 -1
- package/lib-commonjs/components/Dialog/useDialogStyles.js +0 -53
- package/lib-commonjs/components/Dialog/useDialogStyles.js.map +0 -1
- package/lib-commonjs/utils/isTargetDisabled.js +0 -23
- package/lib-commonjs/utils/isTargetDisabled.js.map +0 -1
- package/lib-commonjs/utils/localShorthands.js +0 -18
- package/lib-commonjs/utils/localShorthands.js.map +0 -1
- package/lib-commonjs/utils/normalizeDefaultPrevented.js +0 -20
- package/lib-commonjs/utils/normalizeDefaultPrevented.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["packages/react-components/react-dialog/src/utils/useControlNativeDialogOpenState.ts"],"names":[],"mappings":";;;;;;;AAAA,MAAA,KAAA,gBAAA,OAAA,CAAA,OAAA,CAAA;;AACA,MAAA,qBAAA,gBAAA,OAAA,CAAA,uBAAA,CAAA;;AAIA,SAAgB,+BAAhB,CAAgD,IAAhD,EAA+D,SAA/D,EAAyF;EACvF,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAN,CAAmC,IAAnC,CAAzB;EAEA,KAAK,CAAC,SAAN,CAAgB,MAAK;IACnB,IAAI,qBAAA,CAAA,mBAAA,CAAoB,gBAAgB,CAAC,OAArC,KAAiD,gBAAgB,CAAC,OAAjB,CAAyB,IAAzB,KAAkC,IAAvF,EAA6F;MAC3F,IAAI,IAAJ,EAAU;QACR,IAAI,SAAS,KAAK,WAAlB,EAA+B;UAC7B,gBAAgB,CAAC,OAAjB,CAAyB,IAAzB;QACD,CAFD,MAEO;UACL,gBAAgB,CAAC,OAAjB,CAAyB,SAAzB;QACD;MACF,CAND,MAMO;QACL,gBAAgB,CAAC,OAAjB,CAAyB,KAAzB;MACD;IACF;EACF,CAZD,EAYG,CAAC,IAAD,EAAO,SAAP,CAZH;EAcA,OAAO,gBAAP;AACD;;AAlBD,OAAA,CAAA,+BAAA,GAAA,+BAAA","sourcesContent":["import * as React from 'react';\nimport { isHTMLDialogElement } from './isHTMLDialogElement';\nimport type { DialogModalType } from '../Dialog';\nimport type { DialogSurfaceElement } from '../DialogSurface';\n\nexport function useControlNativeDialogOpenState(open: boolean, modalType: DialogModalType) {\n const dialogSurfaceRef = React.useRef<DialogSurfaceElement>(null);\n\n React.useEffect(() => {\n if (isHTMLDialogElement(dialogSurfaceRef.current) && dialogSurfaceRef.current.open !== open) {\n if (open) {\n if (modalType === 'non-modal') {\n dialogSurfaceRef.current.show();\n } else {\n dialogSurfaceRef.current.showModal();\n }\n } else {\n dialogSurfaceRef.current.close();\n }\n }\n }, [open, modalType]);\n\n return dialogSurfaceRef;\n}\n"],"sourceRoot":"../src/"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.disableScroll = exports.useDisableBodyScroll = void 0;
|
|
7
|
+
|
|
8
|
+
const react_shared_contexts_1 = /*#__PURE__*/require("@fluentui/react-shared-contexts");
|
|
9
|
+
|
|
10
|
+
const react_1 = /*#__PURE__*/require("react");
|
|
11
|
+
|
|
12
|
+
const disableScrollElementProp = '__fluentDisableScrollElement';
|
|
13
|
+
/**
|
|
14
|
+
* hook that disables body scrolling through `overflow: hidden` CSS property
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
function useDisableBodyScroll() {
|
|
18
|
+
const {
|
|
19
|
+
targetDocument
|
|
20
|
+
} = react_shared_contexts_1.useFluent_unstable();
|
|
21
|
+
return react_1.useCallback(() => {
|
|
22
|
+
if (targetDocument) {
|
|
23
|
+
return disableScroll(targetDocument.body);
|
|
24
|
+
}
|
|
25
|
+
}, [targetDocument]);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
exports.useDisableBodyScroll = useDisableBodyScroll;
|
|
29
|
+
/**
|
|
30
|
+
* disables scrolling from a given element through `overflow: hidden` CSS property
|
|
31
|
+
* @param target - element to disable scrolling from
|
|
32
|
+
* @returns a method for enabling scrolling again
|
|
33
|
+
*/
|
|
34
|
+
|
|
35
|
+
function disableScroll(target) {
|
|
36
|
+
var _a, _b;
|
|
37
|
+
|
|
38
|
+
const {
|
|
39
|
+
clientWidth
|
|
40
|
+
} = target.ownerDocument.documentElement;
|
|
41
|
+
const innerWidth = (_b = (_a = target.ownerDocument.defaultView) === null || _a === void 0 ? void 0 : _a.innerWidth) !== null && _b !== void 0 ? _b : 0;
|
|
42
|
+
assertIsDisableScrollElement(target);
|
|
43
|
+
|
|
44
|
+
if (target[disableScrollElementProp].count === 0) {
|
|
45
|
+
target.style.overflow = 'hidden';
|
|
46
|
+
target.style.paddingRight = `${innerWidth - clientWidth}px`;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
target[disableScrollElementProp].count++;
|
|
50
|
+
return () => {
|
|
51
|
+
target[disableScrollElementProp].count--;
|
|
52
|
+
|
|
53
|
+
if (target[disableScrollElementProp].count === 0) {
|
|
54
|
+
target.style.overflow = target[disableScrollElementProp].previousOverflowStyle;
|
|
55
|
+
target.style.paddingRight = target[disableScrollElementProp].previousPaddingRightStyle;
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
exports.disableScroll = disableScroll;
|
|
61
|
+
|
|
62
|
+
function assertIsDisableScrollElement(element) {
|
|
63
|
+
var _a;
|
|
64
|
+
|
|
65
|
+
var _b;
|
|
66
|
+
|
|
67
|
+
(_a = (_b = element)[disableScrollElementProp]) !== null && _a !== void 0 ? _a : _b[disableScrollElementProp] = {
|
|
68
|
+
count: 0,
|
|
69
|
+
previousOverflowStyle: element.style.overflow,
|
|
70
|
+
previousPaddingRightStyle: element.style.paddingRight
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=useDisableBodyScroll.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["packages/react-components/react-dialog/src/utils/useDisableBodyScroll.ts"],"names":[],"mappings":";;;;;;;AAAA,MAAA,uBAAA,gBAAA,OAAA,CAAA,iCAAA,CAAA;;AACA,MAAA,OAAA,gBAAA,OAAA,CAAA,OAAA,CAAA;;AAEA,MAAM,wBAAwB,GAAG,8BAAjC;AAUA;;AAEG;;AACH,SAAgB,oBAAhB,GAAoC;EAClC,MAAM;IAAE;EAAF,IAAqB,uBAAA,CAAA,kBAAA,EAA3B;EACA,OAAO,OAAA,CAAA,WAAA,CAAY,MAAK;IACtB,IAAI,cAAJ,EAAoB;MAClB,OAAO,aAAa,CAAC,cAAc,CAAC,IAAhB,CAApB;IACD;EACF,CAJM,EAIJ,CAAC,cAAD,CAJI,CAAP;AAKD;;AAPD,OAAA,CAAA,oBAAA,GAAA,oBAAA;AASA;;;;AAIG;;AACH,SAAgB,aAAhB,CAA8B,MAA9B,EAAiD;;;EAC/C,MAAM;IAAE;EAAF,IAAkB,MAAM,CAAC,aAAP,CAAqB,eAA7C;EACA,MAAM,UAAU,GAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,MAAM,CAAC,aAAP,CAAqB,WAArB,MAAgC,IAAhC,IAAgC,EAAA,KAAA,KAAA,CAAhC,GAAgC,KAAA,CAAhC,GAAgC,EAAA,CAAE,UAAlC,MAA4C,IAA5C,IAA4C,EAAA,KAAA,KAAA,CAA5C,GAA4C,EAA5C,GAAgD,CAAnE;EACA,4BAA4B,CAAC,MAAD,CAA5B;;EACA,IAAI,MAAM,CAAC,wBAAD,CAAN,CAAiC,KAAjC,KAA2C,CAA/C,EAAkD;IAChD,MAAM,CAAC,KAAP,CAAa,QAAb,GAAwB,QAAxB;IACA,MAAM,CAAC,KAAP,CAAa,YAAb,GAA4B,GAAG,UAAU,GAAG,WAAW,IAAvD;EACD;;EACD,MAAM,CAAC,wBAAD,CAAN,CAAiC,KAAjC;EACA,OAAO,MAAK;IACV,MAAM,CAAC,wBAAD,CAAN,CAAiC,KAAjC;;IACA,IAAI,MAAM,CAAC,wBAAD,CAAN,CAAiC,KAAjC,KAA2C,CAA/C,EAAkD;MAChD,MAAM,CAAC,KAAP,CAAa,QAAb,GAAwB,MAAM,CAAC,wBAAD,CAAN,CAAiC,qBAAzD;MACA,MAAM,CAAC,KAAP,CAAa,YAAb,GAA4B,MAAM,CAAC,wBAAD,CAAN,CAAiC,yBAA7D;IACD;EACF,CAND;AAOD;;AAhBD,OAAA,CAAA,aAAA,GAAA,aAAA;;AAkBA,SAAS,4BAAT,CAAsC,OAAtC,EAA0D;;;;;EACxD,CAAA,EAAA,GAAA,CAAA,EAAA,GAAC,OAAD,EAAwC,wBAAxC,CAAA,MAAgE,IAAhE,IAAgE,EAAA,KAAA,KAAA,CAAhE,GAAgE,EAAhE,GAAgE,EAAA,CAAxB,wBAAwB,CAAA,GAAM;IACpE,KAAK,EAAE,CAD6D;IAEpE,qBAAqB,EAAE,OAAO,CAAC,KAAR,CAAc,QAF+B;IAGpE,yBAAyB,EAAE,OAAO,CAAC,KAAR,CAAc;EAH2B,CAAtE;AAKD","sourcesContent":["import { useFluent_unstable } from '@fluentui/react-shared-contexts';\nimport { useCallback } from 'react';\n\nconst disableScrollElementProp = '__fluentDisableScrollElement' as const;\n\ntype FluentDisableScrollElement = HTMLElement & {\n [disableScrollElementProp]: {\n count: number;\n previousOverflowStyle: string;\n previousPaddingRightStyle: string;\n };\n};\n\n/**\n * hook that disables body scrolling through `overflow: hidden` CSS property\n */\nexport function useDisableBodyScroll() {\n const { targetDocument } = useFluent_unstable();\n return useCallback(() => {\n if (targetDocument) {\n return disableScroll(targetDocument.body);\n }\n }, [targetDocument]);\n}\n\n/**\n * disables scrolling from a given element through `overflow: hidden` CSS property\n * @param target - element to disable scrolling from\n * @returns a method for enabling scrolling again\n */\nexport function disableScroll(target: HTMLElement) {\n const { clientWidth } = target.ownerDocument.documentElement;\n const innerWidth = target.ownerDocument.defaultView?.innerWidth ?? 0;\n assertIsDisableScrollElement(target);\n if (target[disableScrollElementProp].count === 0) {\n target.style.overflow = 'hidden';\n target.style.paddingRight = `${innerWidth - clientWidth}px`;\n }\n target[disableScrollElementProp].count++;\n return () => {\n target[disableScrollElementProp].count--;\n if (target[disableScrollElementProp].count === 0) {\n target.style.overflow = target[disableScrollElementProp].previousOverflowStyle;\n target.style.paddingRight = target[disableScrollElementProp].previousPaddingRightStyle;\n }\n };\n}\n\nfunction assertIsDisableScrollElement(element: HTMLElement): asserts element is FluentDisableScrollElement {\n (element as FluentDisableScrollElement)[disableScrollElementProp] ??= {\n count: 0,\n previousOverflowStyle: element.style.overflow,\n previousPaddingRightStyle: element.style.paddingRight,\n };\n}\n"],"sourceRoot":"../src/"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useFocusFirstElement = void 0;
|
|
7
|
+
|
|
8
|
+
const React = /*#__PURE__*/require("react");
|
|
9
|
+
|
|
10
|
+
const react_tabster_1 = /*#__PURE__*/require("@fluentui/react-tabster");
|
|
11
|
+
|
|
12
|
+
const react_shared_contexts_1 = /*#__PURE__*/require("@fluentui/react-shared-contexts");
|
|
13
|
+
|
|
14
|
+
const isHTMLDialogElement_1 = /*#__PURE__*/require("./isHTMLDialogElement");
|
|
15
|
+
/**
|
|
16
|
+
* Focus first element on content when dialog is opened,
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
function useFocusFirstElement(open, modalType) {
|
|
21
|
+
const {
|
|
22
|
+
findFirstFocusable
|
|
23
|
+
} = react_tabster_1.useFocusFinders();
|
|
24
|
+
const {
|
|
25
|
+
targetDocument
|
|
26
|
+
} = react_shared_contexts_1.useFluent_unstable();
|
|
27
|
+
const dialogRef = React.useRef(null);
|
|
28
|
+
const triggerRef = React.useRef();
|
|
29
|
+
React.useEffect(() => {
|
|
30
|
+
var _a, _b;
|
|
31
|
+
|
|
32
|
+
if (!open) {
|
|
33
|
+
return (_a = triggerRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
triggerRef.current = targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.activeElement;
|
|
37
|
+
const element = dialogRef.current && findFirstFocusable(dialogRef.current);
|
|
38
|
+
|
|
39
|
+
if (element) {
|
|
40
|
+
// this is only required for non native dialogs
|
|
41
|
+
if (!isHTMLDialogElement_1.isHTMLDialogElement(dialogRef.current)) {
|
|
42
|
+
element.focus();
|
|
43
|
+
}
|
|
44
|
+
} else if (process.env.NODE_ENV !== 'production') {
|
|
45
|
+
(_b = triggerRef.current) === null || _b === void 0 ? void 0 : _b.blur(); // eslint-disable-next-line no-console
|
|
46
|
+
|
|
47
|
+
console.warn('A Dialog should have at least one focusable element inside DialogSurface');
|
|
48
|
+
}
|
|
49
|
+
}, [findFirstFocusable, open, modalType, targetDocument]);
|
|
50
|
+
return dialogRef;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
exports.useFocusFirstElement = useFocusFirstElement;
|
|
54
|
+
//# sourceMappingURL=useFocusFirstElement.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["packages/react-components/react-dialog/src/utils/useFocusFirstElement.ts"],"names":[],"mappings":";;;;;;;AAAA,MAAA,KAAA,gBAAA,OAAA,CAAA,OAAA,CAAA;;AACA,MAAA,eAAA,gBAAA,OAAA,CAAA,yBAAA,CAAA;;AACA,MAAA,uBAAA,gBAAA,OAAA,CAAA,iCAAA,CAAA;;AAGA,MAAA,qBAAA,gBAAA,OAAA,CAAA,uBAAA,CAAA;AAEA;;AAEG;;;AACH,SAAgB,oBAAhB,CAAqC,IAArC,EAAoD,SAApD,EAA8E;EAC5E,MAAM;IAAE;EAAF,IAAyB,eAAA,CAAA,eAAA,EAA/B;EACA,MAAM;IAAE;EAAF,IAAqB,uBAAA,CAAA,kBAAA,EAA3B;EACA,MAAM,SAAS,GAAG,KAAK,CAAC,MAAN,CAAmC,IAAnC,CAAlB;EACA,MAAM,UAAU,GAAG,KAAK,CAAC,MAAN,EAAnB;EAEA,KAAK,CAAC,SAAN,CAAgB,MAAK;;;IACnB,IAAI,CAAC,IAAL,EAAW;MACT,OAAO,CAAA,EAAA,GAAA,UAAU,CAAC,OAAX,MAAkB,IAAlB,IAAkB,EAAA,KAAA,KAAA,CAAlB,GAAkB,KAAA,CAAlB,GAAkB,EAAA,CAAE,KAAF,EAAzB;IACD;;IACD,UAAU,CAAC,OAAX,GAAqB,cAAc,KAAA,IAAd,IAAA,cAAc,KAAA,KAAA,CAAd,GAAc,KAAA,CAAd,GAAA,cAAc,CAAE,aAArC;IACA,MAAM,OAAO,GAAG,SAAS,CAAC,OAAV,IAAqB,kBAAkB,CAAC,SAAS,CAAC,OAAX,CAAvD;;IACA,IAAI,OAAJ,EAAa;MACX;MACA,IAAI,CAAC,qBAAA,CAAA,mBAAA,CAAoB,SAAS,CAAC,OAA9B,CAAL,EAA6C;QAC3C,OAAO,CAAC,KAAR;MACD;IACF,CALD,MAKO,IAAI,OAAO,CAAC,GAAR,CAAY,QAAZ,KAAyB,YAA7B,EAA2C;MAChD,CAAA,EAAA,GAAA,UAAU,CAAC,OAAX,MAAkB,IAAlB,IAAkB,EAAA,KAAA,KAAA,CAAlB,GAAkB,KAAA,CAAlB,GAAkB,EAAA,CAAE,IAAF,EAAlB,CADgD,CAEhD;;MACA,OAAO,CAAC,IAAR,CAAa,0EAAb;IACD;EACF,CAhBD,EAgBG,CAAC,kBAAD,EAAqB,IAArB,EAA2B,SAA3B,EAAsC,cAAtC,CAhBH;EAkBA,OAAO,SAAP;AACD;;AAzBD,OAAA,CAAA,oBAAA,GAAA,oBAAA","sourcesContent":["import * as React from 'react';\nimport { useFocusFinders } from '@fluentui/react-tabster';\nimport { useFluent_unstable } from '@fluentui/react-shared-contexts';\nimport type { DialogSurfaceElement } from '../DialogSurface';\nimport type { DialogModalType } from '../Dialog';\nimport { isHTMLDialogElement } from './isHTMLDialogElement';\n\n/**\n * Focus first element on content when dialog is opened,\n */\nexport function useFocusFirstElement(open: boolean, modalType: DialogModalType) {\n const { findFirstFocusable } = useFocusFinders();\n const { targetDocument } = useFluent_unstable();\n const dialogRef = React.useRef<DialogSurfaceElement>(null);\n const triggerRef = React.useRef<HTMLElement>();\n\n React.useEffect(() => {\n if (!open) {\n return triggerRef.current?.focus();\n }\n triggerRef.current = targetDocument?.activeElement as HTMLElement | undefined;\n const element = dialogRef.current && findFirstFocusable(dialogRef.current);\n if (element) {\n // this is only required for non native dialogs\n if (!isHTMLDialogElement(dialogRef.current)) {\n element.focus();\n }\n } else if (process.env.NODE_ENV !== 'production') {\n triggerRef.current?.blur();\n // eslint-disable-next-line no-console\n console.warn('A Dialog should have at least one focusable element inside DialogSurface');\n }\n }, [findFirstFocusable, open, modalType, targetDocument]);\n\n return dialogRef;\n}\n"],"sourceRoot":"../src/"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fluentui/react-dialog",
|
|
3
|
-
"version": "9.0.0-beta.
|
|
3
|
+
"version": "9.0.0-beta.9",
|
|
4
4
|
"description": "Dialog component for Fluent UI React",
|
|
5
5
|
"main": "lib-commonjs/index.js",
|
|
6
6
|
"module": "lib/index.js",
|
|
@@ -20,30 +20,29 @@
|
|
|
20
20
|
"lint": "just-scripts lint",
|
|
21
21
|
"start": "yarn storybook",
|
|
22
22
|
"test": "jest --passWithNoTests",
|
|
23
|
-
"e2e": "
|
|
24
|
-
"e2e:local": "
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"type-check": "tsc -b tsconfig.json"
|
|
23
|
+
"e2e": "cypress run --component",
|
|
24
|
+
"e2e:local": "cypress open --component",
|
|
25
|
+
"storybook": "start-storybook",
|
|
26
|
+
"type-check": "tsc -b tsconfig.json",
|
|
27
|
+
"generate-api": "tsc -p ./tsconfig.lib.json --emitDeclarationOnly && just-scripts api-extractor"
|
|
29
28
|
},
|
|
30
29
|
"devDependencies": {
|
|
31
30
|
"@fluentui/eslint-plugin": "*",
|
|
32
31
|
"@fluentui/react-conformance": "*",
|
|
33
|
-
"@fluentui/react-conformance-griffel": "9.0.0-beta.
|
|
32
|
+
"@fluentui/react-conformance-griffel": "9.0.0-beta.14",
|
|
34
33
|
"@fluentui/scripts": "^1.0.0"
|
|
35
34
|
},
|
|
36
35
|
"dependencies": {
|
|
37
|
-
"@griffel/react": "^1.
|
|
38
|
-
"@fluentui/react-utilities": "^9.0
|
|
36
|
+
"@griffel/react": "^1.3.0",
|
|
37
|
+
"@fluentui/react-utilities": "^9.1.0",
|
|
39
38
|
"@fluentui/keyboard-keys": "^9.0.0",
|
|
40
|
-
"@fluentui/react-context-selector": "^9.0.
|
|
41
|
-
"@fluentui/react-shared-contexts": "^9.0.
|
|
42
|
-
"@fluentui/react-aria": "^9.
|
|
39
|
+
"@fluentui/react-context-selector": "^9.0.3",
|
|
40
|
+
"@fluentui/react-shared-contexts": "^9.0.1",
|
|
41
|
+
"@fluentui/react-aria": "^9.2.0",
|
|
43
42
|
"@fluentui/react-icons": "^2.0.175",
|
|
44
|
-
"@fluentui/react-tabster": "^9.1.
|
|
45
|
-
"@fluentui/react-theme": "^9.
|
|
46
|
-
"@fluentui/react-portal": "^9.0.
|
|
43
|
+
"@fluentui/react-tabster": "^9.1.1",
|
|
44
|
+
"@fluentui/react-theme": "^9.1.0",
|
|
45
|
+
"@fluentui/react-portal": "^9.0.5",
|
|
47
46
|
"tslib": "^2.1.0"
|
|
48
47
|
},
|
|
49
48
|
"peerDependencies": {
|
package/dist/tsdoc-metadata.json
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
// This file is read by tools that parse documentation comments conforming to the TSDoc standard.
|
|
2
|
-
// It should be published with your NPM package. It should not be tracked by Git.
|
|
3
|
-
{
|
|
4
|
-
"tsdocVersion": "0.12",
|
|
5
|
-
"toolPackages": [
|
|
6
|
-
{
|
|
7
|
-
"packageName": "@microsoft/api-extractor",
|
|
8
|
-
"packageVersion": "7.18.1"
|
|
9
|
-
}
|
|
10
|
-
]
|
|
11
|
-
}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { __styles, mergeClasses, shorthands } from '@griffel/react';
|
|
2
|
-
import { useHasParentContext } from '@fluentui/react-context-selector';
|
|
3
|
-
import { DialogContext } from '../../contexts/dialogContext';
|
|
4
|
-
export const dialogClassNames = {
|
|
5
|
-
overlay: 'fui-Dialog__overlay'
|
|
6
|
-
};
|
|
7
|
-
/**
|
|
8
|
-
* Styles for the root slot
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
const useStyles = /*#__PURE__*/__styles({
|
|
12
|
-
"overlay": {
|
|
13
|
-
"qhf8xq": "f19dog8a",
|
|
14
|
-
"De3pzq": "fju19wo",
|
|
15
|
-
"Bhzewxz": "f113wtx2",
|
|
16
|
-
"j35jbq": ["f10k790i", "f1xynx9j"],
|
|
17
|
-
"B5kzvoi": "f5gq2j6",
|
|
18
|
-
"oyh7mz": ["f1xynx9j", "f10k790i"]
|
|
19
|
-
},
|
|
20
|
-
"nestedDialogOverlay": {
|
|
21
|
-
"De3pzq": "f3rmtva"
|
|
22
|
-
}
|
|
23
|
-
}, {
|
|
24
|
-
"d": [".f19dog8a{position:fixed;}", ".fju19wo{background-color:rgba(0, 0, 0, 0.4);}", ".f113wtx2{top:0px;}", ".f10k790i{right:0px;}", ".f1xynx9j{left:0px;}", ".f5gq2j6{bottom:0px;}", ".f3rmtva{background-color:transparent;}"]
|
|
25
|
-
});
|
|
26
|
-
/**
|
|
27
|
-
* Apply styling to the Dialog slots based on the state
|
|
28
|
-
*/
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
export const useDialogStyles_unstable = state => {
|
|
32
|
-
const styles = useStyles();
|
|
33
|
-
const isNestedDialog = useHasParentContext(DialogContext);
|
|
34
|
-
|
|
35
|
-
if (state.overlay) {
|
|
36
|
-
state.overlay.className = mergeClasses(dialogClassNames.overlay, styles.overlay, isNestedDialog && styles.nestedDialogOverlay, state.overlay.className);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
return state;
|
|
40
|
-
};
|
|
41
|
-
//# sourceMappingURL=useDialogStyles.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["components/Dialog/useDialogStyles.ts"],"names":[],"mappings":"AACA,mBAAqB,YAArB,EAAmC,UAAnC,QAAqD,gBAArD;AACA,SAAS,mBAAT,QAAoC,kCAApC;AACA,SAAS,aAAT,QAA8B,8BAA9B;AAGA,OAAO,MAAM,gBAAgB,GAAgC;EAC3D,OAAO,EAAE;AADkD,CAAtD;AAGP;;AAEG;;AACH,MAAM,SAAS,gBAAG;EAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;EAAA;EAAA;IAAA;EAAA;AAAA;EAAA;AAAA,EAAlB;AAWA;;AAEG;;;AACH,OAAO,MAAM,wBAAwB,GAAI,KAAD,IAAoC;EAC1E,MAAM,MAAM,GAAG,SAAS,EAAxB;EACA,MAAM,cAAc,GAAG,mBAAmB,CAAC,aAAD,CAA1C;;EAEA,IAAI,KAAK,CAAC,OAAV,EAAmB;IACjB,KAAK,CAAC,OAAN,CAAc,SAAd,GAA0B,YAAY,CACpC,gBAAgB,CAAC,OADmB,EAEpC,MAAM,CAAC,OAF6B,EAGpC,cAAc,IAAI,MAAM,CAAC,mBAHW,EAIpC,KAAK,CAAC,OAAN,CAAc,SAJsB,CAAtC;EAMD;;EAED,OAAO,KAAP;AACD,CAdM","sourcesContent":["import type { SlotClassNames } from '@fluentui/react-utilities';\nimport { makeStyles, mergeClasses, shorthands } from '@griffel/react';\nimport { useHasParentContext } from '@fluentui/react-context-selector';\nimport { DialogContext } from '../../contexts/dialogContext';\nimport type { DialogSlots, DialogState } from './Dialog.types';\n\nexport const dialogClassNames: SlotClassNames<DialogSlots> = {\n overlay: 'fui-Dialog__overlay',\n};\n/**\n * Styles for the root slot\n */\nconst useStyles = makeStyles({\n overlay: {\n position: 'fixed',\n backgroundColor: 'rgba(0, 0, 0, 0.4)',\n ...shorthands.inset('0px'),\n },\n nestedDialogOverlay: {\n backgroundColor: 'transparent',\n },\n});\n\n/**\n * Apply styling to the Dialog slots based on the state\n */\nexport const useDialogStyles_unstable = (state: DialogState): DialogState => {\n const styles = useStyles();\n const isNestedDialog = useHasParentContext(DialogContext);\n\n if (state.overlay) {\n state.overlay.className = mergeClasses(\n dialogClassNames.overlay,\n styles.overlay,\n isNestedDialog && styles.nestedDialogOverlay,\n state.overlay.className,\n );\n }\n\n return state;\n};\n"],"sourceRoot":"../src/"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export function isTargetDisabled(event) {
|
|
2
|
-
const isDisabled = el => el.hasAttribute('disabled') || el.hasAttribute('aria-disabled') && el.getAttribute('aria-disabled') === 'true';
|
|
3
|
-
|
|
4
|
-
if (isHTMLElement(event.target) && isDisabled(event.target)) {
|
|
5
|
-
return true;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
return isHTMLElement(event.currentTarget) && isDisabled(event.currentTarget);
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
function isHTMLElement(element) {
|
|
12
|
-
return Boolean(element && typeof element === 'object' && 'hasAttribute' in element && 'getAttribute' in element);
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=isTargetDisabled.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["utils/isTargetDisabled.ts"],"names":[],"mappings":"AAEA,OAAM,SAAU,gBAAV,CAA2B,KAA3B,EAA8D;EAClE,MAAM,UAAU,GAAI,EAAD,IACjB,EAAE,CAAC,YAAH,CAAgB,UAAhB,KAAgC,EAAE,CAAC,YAAH,CAAgB,eAAhB,KAAoC,EAAE,CAAC,YAAH,CAAgB,eAAhB,MAAqC,MAD3G;;EAEA,IAAI,aAAa,CAAC,KAAK,CAAC,MAAP,CAAb,IAA+B,UAAU,CAAC,KAAK,CAAC,MAAP,CAA7C,EAA4E;IAC1E,OAAO,IAAP;EACD;;EAED,OAAO,aAAa,CAAC,KAAK,CAAC,aAAP,CAAb,IAAsC,UAAU,CAAC,KAAK,CAAC,aAAP,CAAvD;AACD;;AAED,SAAS,aAAT,CAAuB,OAAvB,EAA6C;EAC3C,OAAO,OAAO,CAAC,OAAO,IAAI,OAAO,OAAP,KAAmB,QAA9B,IAA0C,kBAAkB,OAA5D,IAAuE,kBAAkB,OAA1F,CAAd;AACD","sourcesContent":["import * as React from 'react';\n\nexport function isTargetDisabled(event: React.SyntheticEvent | Event) {\n const isDisabled = (el: HTMLElement) =>\n el.hasAttribute('disabled') || (el.hasAttribute('aria-disabled') && el.getAttribute('aria-disabled') === 'true');\n if (isHTMLElement(event.target) && isDisabled(event.target as HTMLElement)) {\n return true;\n }\n\n return isHTMLElement(event.currentTarget) && isDisabled(event.currentTarget);\n}\n\nfunction isHTMLElement(element: object | null): element is HTMLElement {\n return Boolean(element && typeof element === 'object' && 'hasAttribute' in element && 'getAttribute' in element);\n}\n"],"sourceRoot":"../src/"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["utils/localShorthands.ts"],"names":[],"mappings":"AAAA,OAAM,SAAU,QAAV,CAAmB,IAAnB,EAA+B;EACnC,OAAO;IACL,YAAY,EAAE,IADT;IAEL,UAAU,EAAE,IAFP;IAGL,eAAe,EAAE,IAHZ;IAIL,aAAa,EAAE;EAJV,CAAP;AAMD","sourcesContent":["export function gridArea(name: string) {\n return {\n gridRowStart: name,\n gridRowEnd: name,\n gridColumnStart: name,\n gridColumnEnd: name,\n };\n}\n"],"sourceRoot":"../src/"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* normalizes defaultPrevented to work the same way between synthetic events and regular event
|
|
3
|
-
*/
|
|
4
|
-
export function normalizeDefaultPrevented(event) {
|
|
5
|
-
if (event instanceof Event) {
|
|
6
|
-
return () => event.defaultPrevented;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
return event.isDefaultPrevented;
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=normalizeDefaultPrevented.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["utils/normalizeDefaultPrevented.ts"],"names":[],"mappings":"AAEA;;AAEG;AACH,OAAM,SAAU,yBAAV,CAAoC,KAApC,EAAuE;EAC3E,IAAI,KAAK,YAAY,KAArB,EAA4B;IAC1B,OAAO,MAAM,KAAK,CAAC,gBAAnB;EACD;;EACD,OAAO,KAAK,CAAC,kBAAb;AACD","sourcesContent":["import * as React from 'react';\n\n/**\n * normalizes defaultPrevented to work the same way between synthetic events and regular event\n */\nexport function normalizeDefaultPrevented(event: React.SyntheticEvent | Event) {\n if (event instanceof Event) {\n return () => event.defaultPrevented;\n }\n return event.isDefaultPrevented;\n}\n"],"sourceRoot":"../src/"}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.useDialogStyles_unstable = exports.dialogClassNames = void 0;
|
|
7
|
-
|
|
8
|
-
const react_1 = /*#__PURE__*/require("@griffel/react");
|
|
9
|
-
|
|
10
|
-
const react_context_selector_1 = /*#__PURE__*/require("@fluentui/react-context-selector");
|
|
11
|
-
|
|
12
|
-
const dialogContext_1 = /*#__PURE__*/require("../../contexts/dialogContext");
|
|
13
|
-
|
|
14
|
-
exports.dialogClassNames = {
|
|
15
|
-
overlay: 'fui-Dialog__overlay'
|
|
16
|
-
};
|
|
17
|
-
/**
|
|
18
|
-
* Styles for the root slot
|
|
19
|
-
*/
|
|
20
|
-
|
|
21
|
-
const useStyles = /*#__PURE__*/react_1.__styles({
|
|
22
|
-
"overlay": {
|
|
23
|
-
"qhf8xq": "f19dog8a",
|
|
24
|
-
"De3pzq": "fju19wo",
|
|
25
|
-
"Bhzewxz": "f113wtx2",
|
|
26
|
-
"j35jbq": ["f10k790i", "f1xynx9j"],
|
|
27
|
-
"B5kzvoi": "f5gq2j6",
|
|
28
|
-
"oyh7mz": ["f1xynx9j", "f10k790i"]
|
|
29
|
-
},
|
|
30
|
-
"nestedDialogOverlay": {
|
|
31
|
-
"De3pzq": "f3rmtva"
|
|
32
|
-
}
|
|
33
|
-
}, {
|
|
34
|
-
"d": [".f19dog8a{position:fixed;}", ".fju19wo{background-color:rgba(0, 0, 0, 0.4);}", ".f113wtx2{top:0px;}", ".f10k790i{right:0px;}", ".f1xynx9j{left:0px;}", ".f5gq2j6{bottom:0px;}", ".f3rmtva{background-color:transparent;}"]
|
|
35
|
-
});
|
|
36
|
-
/**
|
|
37
|
-
* Apply styling to the Dialog slots based on the state
|
|
38
|
-
*/
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
const useDialogStyles_unstable = state => {
|
|
42
|
-
const styles = useStyles();
|
|
43
|
-
const isNestedDialog = react_context_selector_1.useHasParentContext(dialogContext_1.DialogContext);
|
|
44
|
-
|
|
45
|
-
if (state.overlay) {
|
|
46
|
-
state.overlay.className = react_1.mergeClasses(exports.dialogClassNames.overlay, styles.overlay, isNestedDialog && styles.nestedDialogOverlay, state.overlay.className);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
return state;
|
|
50
|
-
};
|
|
51
|
-
|
|
52
|
-
exports.useDialogStyles_unstable = useDialogStyles_unstable;
|
|
53
|
-
//# sourceMappingURL=useDialogStyles.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["components/Dialog/useDialogStyles.ts"],"names":[],"mappings":";;;;;;;AACA,MAAA,OAAA,gBAAA,OAAA,CAAA,gBAAA,CAAA;;AACA,MAAA,wBAAA,gBAAA,OAAA,CAAA,kCAAA,CAAA;;AACA,MAAA,eAAA,gBAAA,OAAA,CAAA,8BAAA,CAAA;;AAGa,OAAA,CAAA,gBAAA,GAAgD;EAC3D,OAAO,EAAE;AADkD,CAAhD;AAGb;;AAEG;;AACH,MAAM,SAAS,gBAAG,OAAA,SAAA;EAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;EAAA;EAAA;IAAA;EAAA;AAAA;EAAA;AAAA,EAAlB;AAWA;;AAEG;;;AACI,MAAM,wBAAwB,GAAI,KAAD,IAAoC;EAC1E,MAAM,MAAM,GAAG,SAAS,EAAxB;EACA,MAAM,cAAc,GAAG,wBAAA,CAAA,mBAAA,CAAoB,eAAA,CAAA,aAApB,CAAvB;;EAEA,IAAI,KAAK,CAAC,OAAV,EAAmB;IACjB,KAAK,CAAC,OAAN,CAAc,SAAd,GAA0B,OAAA,CAAA,YAAA,CACxB,OAAA,CAAA,gBAAA,CAAiB,OADO,EAExB,MAAM,CAAC,OAFiB,EAGxB,cAAc,IAAI,MAAM,CAAC,mBAHD,EAIxB,KAAK,CAAC,OAAN,CAAc,SAJU,CAA1B;EAMD;;EAED,OAAO,KAAP;AACD,CAdM;;AAAM,OAAA,CAAA,wBAAA,GAAwB,wBAAxB","sourcesContent":["import type { SlotClassNames } from '@fluentui/react-utilities';\nimport { makeStyles, mergeClasses, shorthands } from '@griffel/react';\nimport { useHasParentContext } from '@fluentui/react-context-selector';\nimport { DialogContext } from '../../contexts/dialogContext';\nimport type { DialogSlots, DialogState } from './Dialog.types';\n\nexport const dialogClassNames: SlotClassNames<DialogSlots> = {\n overlay: 'fui-Dialog__overlay',\n};\n/**\n * Styles for the root slot\n */\nconst useStyles = makeStyles({\n overlay: {\n position: 'fixed',\n backgroundColor: 'rgba(0, 0, 0, 0.4)',\n ...shorthands.inset('0px'),\n },\n nestedDialogOverlay: {\n backgroundColor: 'transparent',\n },\n});\n\n/**\n * Apply styling to the Dialog slots based on the state\n */\nexport const useDialogStyles_unstable = (state: DialogState): DialogState => {\n const styles = useStyles();\n const isNestedDialog = useHasParentContext(DialogContext);\n\n if (state.overlay) {\n state.overlay.className = mergeClasses(\n dialogClassNames.overlay,\n styles.overlay,\n isNestedDialog && styles.nestedDialogOverlay,\n state.overlay.className,\n );\n }\n\n return state;\n};\n"],"sourceRoot":"../src/"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.isTargetDisabled = void 0;
|
|
7
|
-
|
|
8
|
-
function isTargetDisabled(event) {
|
|
9
|
-
const isDisabled = el => el.hasAttribute('disabled') || el.hasAttribute('aria-disabled') && el.getAttribute('aria-disabled') === 'true';
|
|
10
|
-
|
|
11
|
-
if (isHTMLElement(event.target) && isDisabled(event.target)) {
|
|
12
|
-
return true;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
return isHTMLElement(event.currentTarget) && isDisabled(event.currentTarget);
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
exports.isTargetDisabled = isTargetDisabled;
|
|
19
|
-
|
|
20
|
-
function isHTMLElement(element) {
|
|
21
|
-
return Boolean(element && typeof element === 'object' && 'hasAttribute' in element && 'getAttribute' in element);
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=isTargetDisabled.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["utils/isTargetDisabled.ts"],"names":[],"mappings":";;;;;;;AAEA,SAAgB,gBAAhB,CAAiC,KAAjC,EAAoE;EAClE,MAAM,UAAU,GAAI,EAAD,IACjB,EAAE,CAAC,YAAH,CAAgB,UAAhB,KAAgC,EAAE,CAAC,YAAH,CAAgB,eAAhB,KAAoC,EAAE,CAAC,YAAH,CAAgB,eAAhB,MAAqC,MAD3G;;EAEA,IAAI,aAAa,CAAC,KAAK,CAAC,MAAP,CAAb,IAA+B,UAAU,CAAC,KAAK,CAAC,MAAP,CAA7C,EAA4E;IAC1E,OAAO,IAAP;EACD;;EAED,OAAO,aAAa,CAAC,KAAK,CAAC,aAAP,CAAb,IAAsC,UAAU,CAAC,KAAK,CAAC,aAAP,CAAvD;AACD;;AARD,OAAA,CAAA,gBAAA,GAAA,gBAAA;;AAUA,SAAS,aAAT,CAAuB,OAAvB,EAA6C;EAC3C,OAAO,OAAO,CAAC,OAAO,IAAI,OAAO,OAAP,KAAmB,QAA9B,IAA0C,kBAAkB,OAA5D,IAAuE,kBAAkB,OAA1F,CAAd;AACD","sourcesContent":["import * as React from 'react';\n\nexport function isTargetDisabled(event: React.SyntheticEvent | Event) {\n const isDisabled = (el: HTMLElement) =>\n el.hasAttribute('disabled') || (el.hasAttribute('aria-disabled') && el.getAttribute('aria-disabled') === 'true');\n if (isHTMLElement(event.target) && isDisabled(event.target as HTMLElement)) {\n return true;\n }\n\n return isHTMLElement(event.currentTarget) && isDisabled(event.currentTarget);\n}\n\nfunction isHTMLElement(element: object | null): element is HTMLElement {\n return Boolean(element && typeof element === 'object' && 'hasAttribute' in element && 'getAttribute' in element);\n}\n"],"sourceRoot":"../src/"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.gridArea = void 0;
|
|
7
|
-
|
|
8
|
-
function gridArea(name) {
|
|
9
|
-
return {
|
|
10
|
-
gridRowStart: name,
|
|
11
|
-
gridRowEnd: name,
|
|
12
|
-
gridColumnStart: name,
|
|
13
|
-
gridColumnEnd: name
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
exports.gridArea = gridArea;
|
|
18
|
-
//# sourceMappingURL=localShorthands.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["utils/localShorthands.ts"],"names":[],"mappings":";;;;;;;AAAA,SAAgB,QAAhB,CAAyB,IAAzB,EAAqC;EACnC,OAAO;IACL,YAAY,EAAE,IADT;IAEL,UAAU,EAAE,IAFP;IAGL,eAAe,EAAE,IAHZ;IAIL,aAAa,EAAE;EAJV,CAAP;AAMD;;AAPD,OAAA,CAAA,QAAA,GAAA,QAAA","sourcesContent":["export function gridArea(name: string) {\n return {\n gridRowStart: name,\n gridRowEnd: name,\n gridColumnStart: name,\n gridColumnEnd: name,\n };\n}\n"],"sourceRoot":"../src/"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.normalizeDefaultPrevented = void 0;
|
|
7
|
-
/**
|
|
8
|
-
* normalizes defaultPrevented to work the same way between synthetic events and regular event
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
function normalizeDefaultPrevented(event) {
|
|
12
|
-
if (event instanceof Event) {
|
|
13
|
-
return () => event.defaultPrevented;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
return event.isDefaultPrevented;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
exports.normalizeDefaultPrevented = normalizeDefaultPrevented;
|
|
20
|
-
//# sourceMappingURL=normalizeDefaultPrevented.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["utils/normalizeDefaultPrevented.ts"],"names":[],"mappings":";;;;;;AAEA;;AAEG;;AACH,SAAgB,yBAAhB,CAA0C,KAA1C,EAA6E;EAC3E,IAAI,KAAK,YAAY,KAArB,EAA4B;IAC1B,OAAO,MAAM,KAAK,CAAC,gBAAnB;EACD;;EACD,OAAO,KAAK,CAAC,kBAAb;AACD;;AALD,OAAA,CAAA,yBAAA,GAAA,yBAAA","sourcesContent":["import * as React from 'react';\n\n/**\n * normalizes defaultPrevented to work the same way between synthetic events and regular event\n */\nexport function normalizeDefaultPrevented(event: React.SyntheticEvent | Event) {\n if (event instanceof Event) {\n return () => event.defaultPrevented;\n }\n return event.isDefaultPrevented;\n}\n"],"sourceRoot":"../src/"}
|