@simplybusiness/mobius 4.4.6 → 4.5.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.md +12 -0
- package/dist/cjs/components/Drawer/Content.js +2 -9
- package/dist/cjs/components/Drawer/Content.js.map +1 -1
- package/dist/cjs/components/Drawer/Drawer.js +28 -134
- package/dist/cjs/components/Drawer/Drawer.js.map +1 -1
- package/dist/cjs/components/Drawer/DrawerContext.js +2 -2
- package/dist/cjs/components/Drawer/DrawerContext.js.map +1 -1
- package/dist/cjs/components/Drawer/Header.js +6 -2
- package/dist/cjs/components/Drawer/Header.js.map +1 -1
- package/dist/cjs/components/Drawer/index.js +12 -3
- package/dist/cjs/components/Drawer/index.js.map +1 -1
- package/dist/cjs/components/Drawer/useDrawer.js +2 -2
- package/dist/cjs/components/Drawer/useDrawer.js.map +1 -1
- package/dist/cjs/components/Modal/Content.js +2 -9
- package/dist/cjs/components/Modal/Content.js.map +1 -1
- package/dist/cjs/components/Modal/Header.js +6 -2
- package/dist/cjs/components/Modal/Header.js.map +1 -1
- package/dist/cjs/components/Modal/Modal.js +27 -133
- package/dist/cjs/components/Modal/Modal.js.map +1 -1
- package/dist/cjs/components/Modal/ModalContext.js +17 -0
- package/dist/cjs/components/Modal/ModalContext.js.map +1 -0
- package/dist/cjs/components/Modal/index.js +12 -3
- package/dist/cjs/components/Modal/index.js.map +1 -1
- package/dist/cjs/components/Modal/useModal.js +21 -0
- package/dist/cjs/components/Modal/useModal.js.map +1 -0
- package/dist/cjs/hooks/index.js +1 -0
- package/dist/cjs/hooks/index.js.map +1 -1
- package/dist/cjs/hooks/useDialog/index.js +20 -0
- package/dist/cjs/hooks/useDialog/index.js.map +1 -0
- package/dist/cjs/hooks/useDialog/useDialog.js +94 -0
- package/dist/cjs/hooks/useDialog/useDialog.js.map +1 -0
- package/dist/cjs/hooks/useDialogPolyfill/index.js +20 -0
- package/dist/cjs/hooks/useDialogPolyfill/index.js.map +1 -0
- package/dist/cjs/hooks/useDialogPolyfill/useDialogPolyfill.js +77 -0
- package/dist/cjs/hooks/useDialogPolyfill/useDialogPolyfill.js.map +1 -0
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/components/Drawer/Content.js +3 -10
- package/dist/esm/components/Drawer/Content.js.map +1 -1
- package/dist/esm/components/Drawer/Drawer.js +30 -95
- package/dist/esm/components/Drawer/Drawer.js.map +1 -1
- package/dist/esm/components/Drawer/DrawerContext.js +2 -2
- package/dist/esm/components/Drawer/DrawerContext.js.map +1 -1
- package/dist/esm/components/Drawer/Header.js +6 -2
- package/dist/esm/components/Drawer/Header.js.map +1 -1
- package/dist/esm/components/Drawer/index.js +2 -1
- package/dist/esm/components/Drawer/index.js.map +1 -1
- package/dist/esm/components/Drawer/types.js.map +1 -1
- package/dist/esm/components/Drawer/useDrawer.js +2 -2
- package/dist/esm/components/Drawer/useDrawer.js.map +1 -1
- package/dist/esm/components/Modal/Content.js +3 -10
- package/dist/esm/components/Modal/Content.js.map +1 -1
- package/dist/esm/components/Modal/Header.js +6 -2
- package/dist/esm/components/Modal/Header.js.map +1 -1
- package/dist/esm/components/Modal/Modal.js +28 -93
- package/dist/esm/components/Modal/Modal.js.map +1 -1
- package/dist/esm/components/Modal/ModalContext.js +7 -0
- package/dist/esm/components/Modal/ModalContext.js.map +1 -0
- package/dist/esm/components/Modal/index.js +2 -1
- package/dist/esm/components/Modal/index.js.map +1 -1
- package/dist/esm/components/Modal/types.js.map +1 -1
- package/dist/esm/components/Modal/useModal.js +11 -0
- package/dist/esm/components/Modal/useModal.js.map +1 -0
- package/dist/esm/hooks/index.js +1 -0
- package/dist/esm/hooks/index.js.map +1 -1
- package/dist/esm/hooks/useDialog/index.js +3 -0
- package/dist/esm/hooks/useDialog/index.js.map +1 -0
- package/dist/esm/hooks/useDialog/useDialog.js +84 -0
- package/dist/esm/hooks/useDialog/useDialog.js.map +1 -0
- package/dist/esm/hooks/useDialogPolyfill/index.js +3 -0
- package/dist/esm/hooks/useDialogPolyfill/index.js.map +1 -0
- package/dist/esm/hooks/useDialogPolyfill/useDialogPolyfill.js +27 -0
- package/dist/esm/hooks/useDialogPolyfill/useDialogPolyfill.js.map +1 -0
- package/dist/types/components/Drawer/Content.d.ts +0 -2
- package/dist/types/components/Drawer/DrawerContext.d.ts +2 -0
- package/dist/types/components/Drawer/Header.d.ts +0 -2
- package/dist/types/components/Drawer/index.d.ts +4 -3
- package/dist/types/components/Drawer/types.d.ts +5 -1
- package/dist/types/components/Drawer/useDrawer.d.ts +4 -0
- package/dist/types/components/Modal/Content.d.ts +0 -2
- package/dist/types/components/Modal/Header.d.ts +0 -2
- package/dist/types/components/Modal/ModalContext.d.ts +2 -0
- package/dist/types/components/Modal/index.d.ts +4 -3
- package/dist/types/components/Modal/types.d.ts +5 -1
- package/dist/types/components/Modal/useModal.d.ts +4 -0
- package/dist/types/hooks/index.d.ts +1 -0
- package/dist/types/hooks/useDialog/index.d.ts +1 -0
- package/dist/types/hooks/useDialog/useDialog.d.ts +16 -0
- package/dist/types/hooks/useDialogPolyfill/index.d.ts +1 -0
- package/dist/types/hooks/useDialogPolyfill/useDialogPolyfill.d.ts +2 -0
- package/package.json +2 -1
- package/src/components/Drawer/Content.tsx +4 -26
- package/src/components/Drawer/Drawer.mdx +62 -0
- package/src/components/Drawer/Drawer.stories.tsx +1 -1
- package/src/components/Drawer/Drawer.tsx +31 -113
- package/src/components/Drawer/DrawerContext.tsx +7 -0
- package/src/components/Drawer/Header.tsx +19 -20
- package/src/components/Drawer/index.tsx +4 -2
- package/src/components/Drawer/types.ts +6 -1
- package/src/components/Drawer/useDrawer.ts +8 -0
- package/src/components/Modal/Content.tsx +4 -26
- package/src/components/Modal/Header.tsx +19 -20
- package/src/components/Modal/Modal.mdx +57 -0
- package/src/components/Modal/Modal.tsx +29 -111
- package/src/components/Modal/ModalContext.tsx +7 -0
- package/src/components/Modal/index.tsx +4 -2
- package/src/components/Modal/types.ts +6 -1
- package/src/components/Modal/useModal.ts +8 -0
- package/src/hooks/index.tsx +1 -0
- package/src/hooks/useDialog/index.ts +1 -0
- package/src/hooks/useDialog/useDialog.ts +98 -0
- package/src/hooks/useDialogPolyfill/index.ts +1 -0
- package/src/hooks/useDialogPolyfill/useDialogPolyfill.ts +32 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 4.5.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 8a50b45: Fix `<Drawer>`, `<Modal>` transition-in not working in Safari
|
|
8
|
+
|
|
9
|
+
## 4.5.0
|
|
10
|
+
|
|
11
|
+
### Minor Changes
|
|
12
|
+
|
|
13
|
+
- d1ba747: Refactor `onClose`, `closeLabel` child props in `<Drawer>` / `<Modal>`
|
|
14
|
+
|
|
3
15
|
## 4.4.6
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
|
@@ -10,18 +10,11 @@ Object.defineProperty(exports, "Content", {
|
|
|
10
10
|
});
|
|
11
11
|
const _jsxruntime = require("react/jsx-runtime");
|
|
12
12
|
const _react = require("react");
|
|
13
|
-
const Content = /*#__PURE__*/ (0, _react.forwardRef)(({ children,
|
|
13
|
+
const Content = /*#__PURE__*/ (0, _react.forwardRef)(({ children, ...otherProps }, ref)=>/*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
|
|
14
14
|
ref: ref,
|
|
15
15
|
...otherProps,
|
|
16
16
|
className: "mobius/DrawerContent",
|
|
17
|
-
children:
|
|
18
|
-
if (/*#__PURE__*/ (0, _react.isValidElement)(child)) {
|
|
19
|
-
return /*#__PURE__*/ (0, _react.cloneElement)(child, {
|
|
20
|
-
onClose
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
return child;
|
|
24
|
-
})
|
|
17
|
+
children: children
|
|
25
18
|
}));
|
|
26
19
|
Content.displayName = "Content";
|
|
27
20
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Drawer/Content.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Drawer/Content.tsx"],"sourcesContent":["import { PropsWithChildren, Ref, RefAttributes, forwardRef } from \"react\";\nimport { DOMProps } from \"../../types/dom\";\n\nexport type DivRef = Ref<HTMLDivElement>;\nexport type DivElementType = HTMLDivElement;\nexport interface ContentProps\n extends DOMProps,\n RefAttributes<DivElementType>,\n PropsWithChildren {}\n\nconst Content = forwardRef(\n ({ children, ...otherProps }: ContentProps, ref: DivRef) => (\n <div ref={ref} {...otherProps} className=\"mobius/DrawerContent\">\n {children}\n </div>\n ),\n);\n\nContent.displayName = \"Content\";\nexport { Content };\n"],"names":["Content","forwardRef","children","otherProps","ref","div","className","displayName"],"mappings":";;;;+BAmBSA;;;eAAAA;;;;uBAnByD;AAUlE,MAAMA,wBAAUC,IAAAA,iBAAU,EACxB,CAAC,EAAEC,QAAQ,EAAE,GAAGC,YAA0B,EAAEC,oBAC1C,qBAACC;QAAID,KAAKA;QAAM,GAAGD,UAAU;QAAEG,WAAU;kBACtCJ;;AAKPF,QAAQO,WAAW,GAAG"}
|
|
@@ -12,148 +12,47 @@ Object.defineProperty(exports, "Drawer", {
|
|
|
12
12
|
const _jsxruntime = require("react/jsx-runtime");
|
|
13
13
|
const _dedupe = /*#__PURE__*/ _interop_require_default(require("classnames/dedupe"));
|
|
14
14
|
const _react = require("react");
|
|
15
|
-
const _useBodyScrollLock = require("../../hooks/useBodyScrollLock");
|
|
16
|
-
const _polyfilltests = require("../../utils/polyfill-tests");
|
|
17
15
|
const _VisuallyHidden = require("../VisuallyHidden");
|
|
18
16
|
const _utils = require("../../utils");
|
|
17
|
+
const _DrawerContext = require("./DrawerContext");
|
|
18
|
+
const _hooks = require("../../hooks");
|
|
19
19
|
function _interop_require_default(obj) {
|
|
20
20
|
return obj && obj.__esModule ? obj : {
|
|
21
21
|
default: obj
|
|
22
22
|
};
|
|
23
23
|
}
|
|
24
|
-
|
|
25
|
-
if (typeof WeakMap !== "function") return null;
|
|
26
|
-
var cacheBabelInterop = new WeakMap();
|
|
27
|
-
var cacheNodeInterop = new WeakMap();
|
|
28
|
-
return (_getRequireWildcardCache = function(nodeInterop) {
|
|
29
|
-
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
30
|
-
})(nodeInterop);
|
|
31
|
-
}
|
|
32
|
-
function _interop_require_wildcard(obj, nodeInterop) {
|
|
33
|
-
if (!nodeInterop && obj && obj.__esModule) {
|
|
34
|
-
return obj;
|
|
35
|
-
}
|
|
36
|
-
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
37
|
-
return {
|
|
38
|
-
default: obj
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
var cache = _getRequireWildcardCache(nodeInterop);
|
|
42
|
-
if (cache && cache.has(obj)) {
|
|
43
|
-
return cache.get(obj);
|
|
44
|
-
}
|
|
45
|
-
var newObj = {
|
|
46
|
-
__proto__: null
|
|
47
|
-
};
|
|
48
|
-
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
49
|
-
for(var key in obj){
|
|
50
|
-
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
51
|
-
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
52
|
-
if (desc && (desc.get || desc.set)) {
|
|
53
|
-
Object.defineProperty(newObj, key, desc);
|
|
54
|
-
} else {
|
|
55
|
-
newObj[key] = obj[key];
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
newObj.default = obj;
|
|
60
|
-
if (cache) {
|
|
61
|
-
cache.set(obj, newObj);
|
|
62
|
-
}
|
|
63
|
-
return newObj;
|
|
64
|
-
}
|
|
65
|
-
const TRANSITION_CLASS_NAME = "--transition";
|
|
24
|
+
const TRANSITION_CSS_VARIABLE = "--drawer-transition-duration";
|
|
66
25
|
const Drawer = /*#__PURE__*/ (0, _react.forwardRef)((props, ref)=>{
|
|
67
26
|
const { isOpen, className, closeLabel, direction, announce = "Drawer opened on screen", onOpen, onClose, children } = props;
|
|
68
|
-
const
|
|
69
|
-
const
|
|
70
|
-
const
|
|
71
|
-
|
|
72
|
-
if (onOpen && !hasOpened.current) {
|
|
73
|
-
onOpen();
|
|
74
|
-
hasOpened.current = true;
|
|
75
|
-
}
|
|
76
|
-
(0, _useBodyScrollLock.useBodyScrollLock)({
|
|
77
|
-
enabled: isOpen
|
|
78
|
-
});
|
|
79
|
-
// Add close handler, to enable closing transitions
|
|
80
|
-
const handleClose = (0, _react.useCallback)((event)=>{
|
|
81
|
-
// `transitionend` may be called from another component but `event` may be undefined.
|
|
82
|
-
// This fixes an issue where closing `<Accordion>` inside `<Drawer>` will close both
|
|
83
|
-
if (!event) return;
|
|
84
|
-
if (event) {
|
|
85
|
-
event.preventDefault();
|
|
86
|
-
event.stopPropagation();
|
|
87
|
-
}
|
|
88
|
-
// Name the callback function, so we can add and remove event listener
|
|
89
|
-
const transitionCallback = (e)=>{
|
|
90
|
-
// Close drawer only if the transition is on the dialog element
|
|
91
|
-
// As it can be on a child element (ie `<Button>` inside the drawer)
|
|
92
|
-
if (e.target === modalRef.current) {
|
|
93
|
-
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
94
|
-
doClose();
|
|
95
|
-
}
|
|
96
|
-
};
|
|
97
|
-
const doClose = ()=>{
|
|
98
|
-
var _modalRef_current, _modalRef_current1;
|
|
99
|
-
(_modalRef_current = modalRef.current) === null || _modalRef_current === void 0 ? void 0 : _modalRef_current.close();
|
|
100
|
-
onClose === null || onClose === void 0 ? void 0 : onClose();
|
|
101
|
-
(_modalRef_current1 = modalRef.current) === null || _modalRef_current1 === void 0 ? void 0 : _modalRef_current1.removeEventListener("transitionend", transitionCallback);
|
|
102
|
-
};
|
|
103
|
-
// Delay close to allow backdrop exit transition
|
|
104
|
-
if (hasDialogSupport) {
|
|
105
|
-
var _modalRef_current, _modalRef_current1;
|
|
106
|
-
(_modalRef_current = modalRef.current) === null || _modalRef_current === void 0 ? void 0 : _modalRef_current.classList.remove(TRANSITION_CLASS_NAME);
|
|
107
|
-
(_modalRef_current1 = modalRef.current) === null || _modalRef_current1 === void 0 ? void 0 : _modalRef_current1.addEventListener("transitionend", transitionCallback);
|
|
108
|
-
} else {
|
|
109
|
-
doClose();
|
|
110
|
-
}
|
|
111
|
-
}, [
|
|
112
|
-
onClose,
|
|
113
|
-
hasDialogSupport
|
|
114
|
-
]);
|
|
115
|
-
const modalClasses = (0, _dedupe.default)("mobius", "mobius/Drawer", `--${direction}`, className, {
|
|
116
|
-
"--should-transition": hasDialogSupport
|
|
117
|
-
});
|
|
118
|
-
// Add polyfill for HTML Dialog in old browsers
|
|
119
|
-
(0, _react.useEffect)(()=>{
|
|
120
|
-
async function toggleModal() {
|
|
121
|
-
var _modalRef_current, _modalRef_current1;
|
|
122
|
-
if (!hasDialogSupport && typeof window !== "undefined" && modalRef.current !== null) {
|
|
123
|
-
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
124
|
-
const { default: dialogPolyfill } = await Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("dialog-polyfill")));
|
|
125
|
-
try {
|
|
126
|
-
dialogPolyfill.registerDialog(modalRef.current);
|
|
127
|
-
} catch (error) {
|
|
128
|
-
// In iOS 15 <= 15.2 this intermittently fails with
|
|
129
|
-
// TypeError: null is not an object (evaluating 'element.showModal')
|
|
130
|
-
// Checking showModal presence through hasOwnProperty is falsy natively, truthy with polyfill 🤷🏼♂️
|
|
131
|
-
console.error("Failed to load dialog-polyfill", error);
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
if (isOpen && !((_modalRef_current = modalRef.current) === null || _modalRef_current === void 0 ? void 0 : _modalRef_current.open)) {
|
|
135
|
-
var _modalRef_current2, _modalRef_current3;
|
|
136
|
-
(_modalRef_current2 = modalRef.current) === null || _modalRef_current2 === void 0 ? void 0 : _modalRef_current2.showModal();
|
|
137
|
-
(_modalRef_current3 = modalRef.current) === null || _modalRef_current3 === void 0 ? void 0 : _modalRef_current3.classList.add(TRANSITION_CLASS_NAME);
|
|
138
|
-
onOpen === null || onOpen === void 0 ? void 0 : onOpen();
|
|
139
|
-
} else if (!isOpen && ((_modalRef_current1 = modalRef.current) === null || _modalRef_current1 === void 0 ? void 0 : _modalRef_current1.open)) {
|
|
140
|
-
handleClose();
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
toggleModal();
|
|
144
|
-
}, [
|
|
27
|
+
const shouldTransition = (0, _utils.supportsDialog)();
|
|
28
|
+
const dialogRef = (0, _react.useRef)(null);
|
|
29
|
+
const { close } = (0, _hooks.useDialog)({
|
|
30
|
+
ref: dialogRef,
|
|
145
31
|
isOpen,
|
|
146
32
|
onOpen,
|
|
147
|
-
|
|
148
|
-
|
|
33
|
+
onClose,
|
|
34
|
+
transition: {
|
|
35
|
+
isEnabled: true,
|
|
36
|
+
CSSVariable: TRANSITION_CSS_VARIABLE
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
const dialogClasses = (0, _dedupe.default)("mobius", "mobius/Drawer", `--${direction}`, className, {
|
|
40
|
+
"--should-transition": shouldTransition
|
|
41
|
+
});
|
|
42
|
+
const contextValue = (0, _react.useMemo)(()=>({
|
|
43
|
+
onClose: close,
|
|
44
|
+
closeLabel
|
|
45
|
+
}), [
|
|
46
|
+
close,
|
|
47
|
+
closeLabel
|
|
149
48
|
]);
|
|
150
49
|
return /*#__PURE__*/ (0, _jsxruntime.jsxs)("dialog", {
|
|
151
50
|
ref: (0, _utils.mergeRefs)([
|
|
152
|
-
|
|
51
|
+
dialogRef,
|
|
153
52
|
ref
|
|
154
53
|
]),
|
|
155
|
-
onCancel:
|
|
156
|
-
className:
|
|
54
|
+
onCancel: close,
|
|
55
|
+
className: dialogClasses,
|
|
157
56
|
"aria-describedby": "screen-reader-announce",
|
|
158
57
|
children: [
|
|
159
58
|
/*#__PURE__*/ (0, _jsxruntime.jsx)(_VisuallyHidden.VisuallyHidden, {
|
|
@@ -162,14 +61,9 @@ const Drawer = /*#__PURE__*/ (0, _react.forwardRef)((props, ref)=>{
|
|
|
162
61
|
children: announce
|
|
163
62
|
})
|
|
164
63
|
}),
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
onClose: handleClose,
|
|
169
|
-
closeLabel
|
|
170
|
-
});
|
|
171
|
-
}
|
|
172
|
-
return child;
|
|
64
|
+
/*#__PURE__*/ (0, _jsxruntime.jsx)(_DrawerContext.DrawerContext.Provider, {
|
|
65
|
+
value: contextValue,
|
|
66
|
+
children: children
|
|
173
67
|
})
|
|
174
68
|
]
|
|
175
69
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Drawer/Drawer.tsx"],"sourcesContent":["\"use client\";\n\nimport classNames from \"classnames/dedupe\";\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Drawer/Drawer.tsx"],"sourcesContent":["\"use client\";\n\nimport classNames from \"classnames/dedupe\";\nimport { Ref, forwardRef, useMemo, useRef } from \"react\";\nimport { VisuallyHidden } from \"../VisuallyHidden\";\nimport { DrawerProps } from \"./types\";\nimport { mergeRefs, supportsDialog } from \"../../utils\";\nimport { DrawerContext } from \"./DrawerContext\";\nimport { useDialog } from \"../../hooks\";\n\nexport type DialogElementType = HTMLDialogElement;\nexport type DialogRef = Ref<DialogElementType>;\n\nconst TRANSITION_CSS_VARIABLE = \"--drawer-transition-duration\";\n\nconst Drawer = forwardRef((props: DrawerProps, ref: DialogRef) => {\n const {\n isOpen,\n className,\n closeLabel,\n direction,\n announce = \"Drawer opened on screen\",\n onOpen,\n onClose,\n children,\n } = props;\n const shouldTransition = supportsDialog();\n const dialogRef = useRef<HTMLDialogElement | null>(null);\n const { close } = useDialog({\n ref: dialogRef,\n isOpen,\n onOpen,\n onClose,\n transition: {\n isEnabled: true,\n CSSVariable: TRANSITION_CSS_VARIABLE,\n },\n });\n\n const dialogClasses = classNames(\n \"mobius\",\n \"mobius/Drawer\",\n `--${direction}`,\n className,\n {\n \"--should-transition\": shouldTransition,\n },\n );\n\n const contextValue = useMemo(\n () => ({\n onClose: close,\n closeLabel,\n }),\n [close, closeLabel],\n );\n\n return (\n <dialog\n ref={mergeRefs([dialogRef, ref])}\n onCancel={close}\n className={dialogClasses}\n aria-describedby=\"screen-reader-announce\"\n >\n <VisuallyHidden>\n <div id=\"screen-reader-announce\">{announce}</div>\n </VisuallyHidden>\n <DrawerContext.Provider value={contextValue}>\n {children}\n </DrawerContext.Provider>\n </dialog>\n );\n});\n\nDrawer.displayName = \"Drawer\";\nexport { Drawer };\n"],"names":["Drawer","TRANSITION_CSS_VARIABLE","forwardRef","props","ref","isOpen","className","closeLabel","direction","announce","onOpen","onClose","children","shouldTransition","supportsDialog","dialogRef","useRef","close","useDialog","transition","isEnabled","CSSVariable","dialogClasses","classNames","contextValue","useMemo","dialog","mergeRefs","onCancel","aria-describedby","VisuallyHidden","div","id","DrawerContext","Provider","value","displayName"],"mappings":"AAAA;;;;;+BA2ESA;;;eAAAA;;;;+DAzEc;uBAC0B;gCAClB;uBAEW;+BACZ;uBACJ;;;;;;AAK1B,MAAMC,0BAA0B;AAEhC,MAAMD,uBAASE,IAAAA,iBAAU,EAAC,CAACC,OAAoBC;IAC7C,MAAM,EACJC,MAAM,EACNC,SAAS,EACTC,UAAU,EACVC,SAAS,EACTC,WAAW,yBAAyB,EACpCC,MAAM,EACNC,OAAO,EACPC,QAAQ,EACT,GAAGT;IACJ,MAAMU,mBAAmBC,IAAAA,qBAAc;IACvC,MAAMC,YAAYC,IAAAA,aAAM,EAA2B;IACnD,MAAM,EAAEC,KAAK,EAAE,GAAGC,IAAAA,gBAAS,EAAC;QAC1Bd,KAAKW;QACLV;QACAK;QACAC;QACAQ,YAAY;YACVC,WAAW;YACXC,aAAapB;QACf;IACF;IAEA,MAAMqB,gBAAgBC,IAAAA,eAAU,EAC9B,UACA,iBACA,CAAC,EAAE,EAAEf,UAAU,CAAC,EAChBF,WACA;QACE,uBAAuBO;IACzB;IAGF,MAAMW,eAAeC,IAAAA,cAAO,EAC1B,IAAO,CAAA;YACLd,SAASM;YACTV;QACF,CAAA,GACA;QAACU;QAAOV;KAAW;IAGrB,qBACE,sBAACmB;QACCtB,KAAKuB,IAAAA,gBAAS,EAAC;YAACZ;YAAWX;SAAI;QAC/BwB,UAAUX;QACVX,WAAWgB;QACXO,oBAAiB;;0BAEjB,qBAACC,8BAAc;0BACb,cAAA,qBAACC;oBAAIC,IAAG;8BAA0BvB;;;0BAEpC,qBAACwB,4BAAa,CAACC,QAAQ;gBAACC,OAAOX;0BAC5BZ;;;;AAIT;AAEAZ,OAAOoC,WAAW,GAAG"}
|
|
@@ -10,8 +10,8 @@ Object.defineProperty(exports, "DrawerContext", {
|
|
|
10
10
|
});
|
|
11
11
|
const _react = require("react");
|
|
12
12
|
const DrawerContext = /*#__PURE__*/ (0, _react.createContext)({
|
|
13
|
-
|
|
14
|
-
closeLabel:
|
|
13
|
+
onClose: ()=>{},
|
|
14
|
+
closeLabel: undefined
|
|
15
15
|
});
|
|
16
16
|
|
|
17
17
|
//# sourceMappingURL=DrawerContext.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Drawer/DrawerContext.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Drawer/DrawerContext.tsx"],"sourcesContent":["import { createContext } from \"react\";\nimport { DrawerContextProps } from \"./types\";\n\nexport const DrawerContext = createContext<DrawerContextProps>({\n onClose: () => {},\n closeLabel: undefined,\n});\n"],"names":["DrawerContext","createContext","onClose","closeLabel","undefined"],"mappings":";;;;+BAGaA;;;eAAAA;;;uBAHiB;AAGvB,MAAMA,8BAAgBC,IAAAA,oBAAa,EAAqB;IAC7DC,SAAS,KAAO;IAChBC,YAAYC;AACd"}
|
|
@@ -13,7 +13,10 @@ const _react = require("react");
|
|
|
13
13
|
const _icons = require("@simplybusiness/icons");
|
|
14
14
|
const _Button = require("../Button");
|
|
15
15
|
const _Icon = require("../Icon");
|
|
16
|
-
const
|
|
16
|
+
const _useDrawer = require("./useDrawer");
|
|
17
|
+
const Header = /*#__PURE__*/ (0, _react.forwardRef)(({ children, ...otherProps }, ref)=>{
|
|
18
|
+
const { onClose, closeLabel } = (0, _useDrawer.useDrawer)();
|
|
19
|
+
return /*#__PURE__*/ (0, _jsxruntime.jsxs)("header", {
|
|
17
20
|
ref: ref,
|
|
18
21
|
...otherProps,
|
|
19
22
|
className: "mobius/DrawerHeader",
|
|
@@ -33,7 +36,8 @@ const Header = /*#__PURE__*/ (0, _react.forwardRef)(({ children, onClose, closeL
|
|
|
33
36
|
]
|
|
34
37
|
})
|
|
35
38
|
]
|
|
36
|
-
})
|
|
39
|
+
});
|
|
40
|
+
});
|
|
37
41
|
Header.displayName = "Header";
|
|
38
42
|
|
|
39
43
|
//# sourceMappingURL=Header.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Drawer/Header.tsx"],"sourcesContent":["import { PropsWithChildren, Ref, RefAttributes, forwardRef } from \"react\";\n\nimport { cross } from \"@simplybusiness/icons\";\nimport { DOMProps } from \"../../types/dom\";\nimport { Button } from \"../Button\";\nimport { Icon } from \"../Icon\";\n\nexport type HeaderElementType = HTMLDivElement;\nexport type HeaderRef = Ref<HTMLElement>;\n\nexport interface HeaderProps\n extends DOMProps,\n RefAttributes<HeaderElementType>,\n PropsWithChildren {
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Drawer/Header.tsx"],"sourcesContent":["import { PropsWithChildren, Ref, RefAttributes, forwardRef } from \"react\";\n\nimport { cross } from \"@simplybusiness/icons\";\nimport { DOMProps } from \"../../types/dom\";\nimport { Button } from \"../Button\";\nimport { Icon } from \"../Icon\";\nimport { useDrawer } from \"./useDrawer\";\n\nexport type HeaderElementType = HTMLDivElement;\nexport type HeaderRef = Ref<HTMLElement>;\n\nexport interface HeaderProps\n extends DOMProps,\n RefAttributes<HeaderElementType>,\n PropsWithChildren {}\n\nconst Header = forwardRef(\n ({ children, ...otherProps }: HeaderProps, ref: HeaderRef) => {\n const { onClose, closeLabel } = useDrawer();\n\n return (\n <header ref={ref} {...otherProps} className=\"mobius/DrawerHeader\">\n {children}\n <Button\n aria-label=\"Close\"\n variant=\"basic\"\n onPress={onClose}\n className=\"mobius/DrawerClose\"\n >\n <Icon icon={cross} /> {closeLabel}\n </Button>\n </header>\n );\n },\n);\n\nHeader.displayName = \"Header\";\nexport { Header };\n"],"names":["Header","forwardRef","children","otherProps","ref","onClose","closeLabel","useDrawer","header","className","Button","aria-label","variant","onPress","Icon","icon","cross","displayName"],"mappings":";;;;+BAqCSA;;;eAAAA;;;;uBArCyD;uBAE5C;wBAEC;sBACF;2BACK;AAU1B,MAAMA,uBAASC,IAAAA,iBAAU,EACvB,CAAC,EAAEC,QAAQ,EAAE,GAAGC,YAAyB,EAAEC;IACzC,MAAM,EAAEC,OAAO,EAAEC,UAAU,EAAE,GAAGC,IAAAA,oBAAS;IAEzC,qBACE,sBAACC;QAAOJ,KAAKA;QAAM,GAAGD,UAAU;QAAEM,WAAU;;YACzCP;0BACD,sBAACQ,cAAM;gBACLC,cAAW;gBACXC,SAAQ;gBACRC,SAASR;gBACTI,WAAU;;kCAEV,qBAACK,UAAI;wBAACC,MAAMC,YAAK;;oBAAI;oBAAEV;;;;;AAI/B;AAGFN,OAAOiB,WAAW,GAAG"}
|
|
@@ -2,14 +2,23 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: all[name]
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
Drawer: function() {
|
|
8
13
|
return Drawer;
|
|
14
|
+
},
|
|
15
|
+
useDrawer: function() {
|
|
16
|
+
return _useDrawer.useDrawer;
|
|
9
17
|
}
|
|
10
18
|
});
|
|
11
19
|
const _Content = require("./Content");
|
|
12
20
|
const _Drawer = require("./Drawer");
|
|
21
|
+
const _useDrawer = require("./useDrawer");
|
|
13
22
|
const _Header = require("./Header");
|
|
14
23
|
const Drawer = Object.assign(_Drawer.Drawer, {
|
|
15
24
|
Header: _Header.Header,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Drawer/index.tsx"],"sourcesContent":["import {\n Content,\n DivElementType as DrawerContentDivElementType,\n ContentProps as DrawerContentProps,\n} from \"./Content\";\nimport { Drawer as DrawerComponent } from \"./Drawer\";\nimport { DrawerProps } from \"./types\";\nimport {\n HeaderElementType as DrawerHeaderElementType,\n HeaderProps as DrawerHeaderProps,\n Header,\n} from \"./Header\";\n\nconst Drawer = Object.assign(DrawerComponent, {\n Header,\n Content,\n});\n\nDrawer.displayName = \"Drawer\";\nexport { Drawer };\n\nexport type {\n DrawerContentDivElementType,\n DrawerContentProps,\n DrawerHeaderElementType,\n DrawerHeaderProps,\n DrawerProps,\n};\n"],"names":["Drawer","Object","assign","DrawerComponent","Header","Content","displayName"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Drawer/index.tsx"],"sourcesContent":["import {\n Content,\n DivElementType as DrawerContentDivElementType,\n ContentProps as DrawerContentProps,\n} from \"./Content\";\nimport { Drawer as DrawerComponent } from \"./Drawer\";\nimport { DrawerProps, DrawerContextProps } from \"./types\";\nimport { useDrawer } from \"./useDrawer\";\nimport {\n HeaderElementType as DrawerHeaderElementType,\n HeaderProps as DrawerHeaderProps,\n Header,\n} from \"./Header\";\n\nconst Drawer = Object.assign(DrawerComponent, {\n Header,\n Content,\n});\n\nDrawer.displayName = \"Drawer\";\nexport { Drawer, useDrawer };\n\nexport type {\n DrawerContextProps,\n DrawerContentDivElementType,\n DrawerContentProps,\n DrawerHeaderElementType,\n DrawerHeaderProps,\n DrawerProps,\n};\n"],"names":["Drawer","useDrawer","Object","assign","DrawerComponent","Header","Content","displayName"],"mappings":";;;;;;;;;;;IAoBSA,MAAM;eAANA;;IAAQC,SAAS;eAATA,oBAAS;;;yBAhBnB;wBACmC;2BAEhB;wBAKnB;AAEP,MAAMD,SAASE,OAAOC,MAAM,CAACC,cAAe,EAAE;IAC5CC,QAAAA,cAAM;IACNC,SAAAA,gBAAO;AACT;AAEAN,OAAOO,WAAW,GAAG"}
|
|
@@ -11,9 +11,9 @@ Object.defineProperty(exports, "useDrawer", {
|
|
|
11
11
|
const _react = require("react");
|
|
12
12
|
const _DrawerContext = require("./DrawerContext");
|
|
13
13
|
const useDrawer = ()=>{
|
|
14
|
-
const {
|
|
14
|
+
const { onClose, closeLabel } = (0, _react.useContext)(_DrawerContext.DrawerContext);
|
|
15
15
|
return {
|
|
16
|
-
|
|
16
|
+
onClose,
|
|
17
17
|
closeLabel
|
|
18
18
|
};
|
|
19
19
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Drawer/useDrawer.ts"],"sourcesContent":["import { useContext } from \"react\";\nimport { DrawerContext } from \"./DrawerContext\";\n\nexport const useDrawer = () => {\n const {
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Drawer/useDrawer.ts"],"sourcesContent":["import { useContext } from \"react\";\nimport { DrawerContext } from \"./DrawerContext\";\n\nexport const useDrawer = () => {\n const { onClose, closeLabel } = useContext(DrawerContext);\n\n return { onClose, closeLabel };\n};\n"],"names":["useDrawer","onClose","closeLabel","useContext","DrawerContext"],"mappings":";;;;+BAGaA;;;eAAAA;;;uBAHc;+BACG;AAEvB,MAAMA,YAAY;IACvB,MAAM,EAAEC,OAAO,EAAEC,UAAU,EAAE,GAAGC,IAAAA,iBAAU,EAACC,4BAAa;IAExD,OAAO;QAAEH;QAASC;IAAW;AAC/B"}
|
|
@@ -10,18 +10,11 @@ Object.defineProperty(exports, "Content", {
|
|
|
10
10
|
});
|
|
11
11
|
const _jsxruntime = require("react/jsx-runtime");
|
|
12
12
|
const _react = require("react");
|
|
13
|
-
const Content = /*#__PURE__*/ (0, _react.forwardRef)(({ children,
|
|
13
|
+
const Content = /*#__PURE__*/ (0, _react.forwardRef)(({ children, ...otherProps }, ref)=>/*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
|
|
14
14
|
ref: ref,
|
|
15
15
|
...otherProps,
|
|
16
16
|
className: "mobius/ModalContent",
|
|
17
|
-
children:
|
|
18
|
-
if (/*#__PURE__*/ (0, _react.isValidElement)(child)) {
|
|
19
|
-
return /*#__PURE__*/ (0, _react.cloneElement)(child, {
|
|
20
|
-
onClose
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
return child;
|
|
24
|
-
})
|
|
17
|
+
children: children
|
|
25
18
|
}));
|
|
26
19
|
Content.displayName = "Content";
|
|
27
20
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Modal/Content.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Modal/Content.tsx"],"sourcesContent":["import { PropsWithChildren, Ref, RefAttributes, forwardRef } from \"react\";\nimport { DOMProps } from \"../../types/dom\";\n\nexport type DivRef = Ref<HTMLDivElement>;\nexport type DivElementType = HTMLDivElement;\nexport interface ContentProps\n extends DOMProps,\n RefAttributes<DivElementType>,\n PropsWithChildren {}\n\nconst Content = forwardRef(\n ({ children, ...otherProps }: ContentProps, ref: DivRef) => (\n <div ref={ref} {...otherProps} className=\"mobius/ModalContent\">\n {children}\n </div>\n ),\n);\n\nContent.displayName = \"Content\";\nexport { Content };\n"],"names":["Content","forwardRef","children","otherProps","ref","div","className","displayName"],"mappings":";;;;+BAmBSA;;;eAAAA;;;;uBAnByD;AAUlE,MAAMA,wBAAUC,IAAAA,iBAAU,EACxB,CAAC,EAAEC,QAAQ,EAAE,GAAGC,YAA0B,EAAEC,oBAC1C,qBAACC;QAAID,KAAKA;QAAM,GAAGD,UAAU;QAAEG,WAAU;kBACtCJ;;AAKPF,QAAQO,WAAW,GAAG"}
|
|
@@ -13,7 +13,10 @@ const _react = require("react");
|
|
|
13
13
|
const _icons = require("@simplybusiness/icons");
|
|
14
14
|
const _Button = require("../Button");
|
|
15
15
|
const _Icon = require("../Icon");
|
|
16
|
-
const
|
|
16
|
+
const _useModal = require("./useModal");
|
|
17
|
+
const Header = /*#__PURE__*/ (0, _react.forwardRef)(({ children, ...otherProps }, ref)=>{
|
|
18
|
+
const { onClose, closeLabel } = (0, _useModal.useModal)();
|
|
19
|
+
return /*#__PURE__*/ (0, _jsxruntime.jsxs)("header", {
|
|
17
20
|
ref: ref,
|
|
18
21
|
...otherProps,
|
|
19
22
|
className: "mobius/ModalHeader",
|
|
@@ -33,7 +36,8 @@ const Header = /*#__PURE__*/ (0, _react.forwardRef)(({ children, onClose, closeL
|
|
|
33
36
|
]
|
|
34
37
|
})
|
|
35
38
|
]
|
|
36
|
-
})
|
|
39
|
+
});
|
|
40
|
+
});
|
|
37
41
|
Header.displayName = "Header";
|
|
38
42
|
|
|
39
43
|
//# sourceMappingURL=Header.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Modal/Header.tsx"],"sourcesContent":["import { PropsWithChildren, Ref, RefAttributes, forwardRef } from \"react\";\n\nimport { cross } from \"@simplybusiness/icons\";\nimport { DOMProps } from \"../../types/dom\";\nimport { Button } from \"../Button\";\nimport { Icon } from \"../Icon\";\n\nexport type HeaderElementType = HTMLDivElement;\nexport type HeaderRef = Ref<HTMLElement>;\n\nexport interface HeaderProps\n extends DOMProps,\n RefAttributes<HeaderElementType>,\n PropsWithChildren {
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Modal/Header.tsx"],"sourcesContent":["import { PropsWithChildren, Ref, RefAttributes, forwardRef } from \"react\";\n\nimport { cross } from \"@simplybusiness/icons\";\nimport { DOMProps } from \"../../types/dom\";\nimport { Button } from \"../Button\";\nimport { Icon } from \"../Icon\";\nimport { useModal } from \"./useModal\";\n\nexport type HeaderElementType = HTMLDivElement;\nexport type HeaderRef = Ref<HTMLElement>;\n\nexport interface HeaderProps\n extends DOMProps,\n RefAttributes<HeaderElementType>,\n PropsWithChildren {}\n\nconst Header = forwardRef(\n ({ children, ...otherProps }: HeaderProps, ref: HeaderRef) => {\n const { onClose, closeLabel } = useModal();\n\n return (\n <header ref={ref} {...otherProps} className=\"mobius/ModalHeader\">\n {children}\n <Button\n aria-label=\"Close\"\n variant=\"basic\"\n onPress={onClose}\n className=\"mobius/ModalClose\"\n >\n <Icon icon={cross} /> {closeLabel}\n </Button>\n </header>\n );\n },\n);\n\nHeader.displayName = \"Header\";\nexport { Header };\n"],"names":["Header","forwardRef","children","otherProps","ref","onClose","closeLabel","useModal","header","className","Button","aria-label","variant","onPress","Icon","icon","cross","displayName"],"mappings":";;;;+BAqCSA;;;eAAAA;;;;uBArCyD;uBAE5C;wBAEC;sBACF;0BACI;AAUzB,MAAMA,uBAASC,IAAAA,iBAAU,EACvB,CAAC,EAAEC,QAAQ,EAAE,GAAGC,YAAyB,EAAEC;IACzC,MAAM,EAAEC,OAAO,EAAEC,UAAU,EAAE,GAAGC,IAAAA,kBAAQ;IAExC,qBACE,sBAACC;QAAOJ,KAAKA;QAAM,GAAGD,UAAU;QAAEM,WAAU;;YACzCP;0BACD,sBAACQ,cAAM;gBACLC,cAAW;gBACXC,SAAQ;gBACRC,SAASR;gBACTI,WAAU;;kCAEV,qBAACK,UAAI;wBAACC,MAAMC,YAAK;;oBAAI;oBAAEV;;;;;AAI/B;AAGFN,OAAOiB,WAAW,GAAG"}
|