@os-design/core 1.0.272 → 1.0.274
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/dist/Drawer/index.d.ts.map +1 -1
- package/dist/Drawer/index.js +19 -3
- package/dist/Modal/index.d.ts.map +1 -1
- package/dist/Modal/index.js +17 -5
- package/package.json +2 -2
- package/src/Drawer/index.tsx +25 -4
- package/src/Modal/index.tsx +22 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Drawer/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,QAAQ,EAId,MAAM,mBAAmB,CAAC;AAG3B,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Drawer/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,QAAQ,EAId,MAAM,mBAAmB,CAAC;AAG3B,OAAO,KAAsD,MAAM,OAAO,CAAC;AAI3E,KAAK,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;AAC7D,MAAM,WAAW,WAAY,SAAQ,WAAW,EAAE,QAAQ;IACxD;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC7B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAmGD,eAAO,MAAM,cAAc,cAF0B,IAEa,CAAC;AAEnE;;GAEG;AACH,QAAA,MAAM,MAAM,oFAwFX,CAAC;AAIF,eAAe,MAAM,CAAC"}
|
package/dist/Drawer/index.js
CHANGED
|
@@ -4,7 +4,7 @@ import Portal from '@os-design/portal';
|
|
|
4
4
|
import { enableScrollingStyles, resetFocusStyles, sizeStyles } from '@os-design/styles';
|
|
5
5
|
import { clr, useTheme } from '@os-design/theming';
|
|
6
6
|
import { omitEmotionProps, useBodyScroll, useClosable } from '@os-design/utils';
|
|
7
|
-
import React, { forwardRef, useCallback, useContext } from 'react';
|
|
7
|
+
import React, { forwardRef, useCallback, useContext, useRef } from 'react';
|
|
8
8
|
import FocusLock from 'react-focus-lock';
|
|
9
9
|
import { ModalMask } from '../Modal/index.js';
|
|
10
10
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
@@ -93,8 +93,21 @@ const Drawer = /*#__PURE__*/forwardRef(({
|
|
|
93
93
|
} = useTheme();
|
|
94
94
|
const mounted = useClosable(visible, theme.transitionDelay);
|
|
95
95
|
useBodyScroll(!visible);
|
|
96
|
+
const closeRef = useRef(false);
|
|
96
97
|
const pointerDownHandler = useCallback(e => {
|
|
97
98
|
e.stopPropagation();
|
|
99
|
+
closeRef.current = true;
|
|
100
|
+
}, []);
|
|
101
|
+
const pointerUpHandler = useCallback(e => {
|
|
102
|
+
e.stopPropagation();
|
|
103
|
+
if (closeRef.current) {
|
|
104
|
+
closeRef.current = false;
|
|
105
|
+
onClose();
|
|
106
|
+
}
|
|
107
|
+
}, [onClose]);
|
|
108
|
+
const stopPointerHandler = useCallback(e => {
|
|
109
|
+
e.stopPropagation();
|
|
110
|
+
closeRef.current = false;
|
|
98
111
|
onPointerDown(e);
|
|
99
112
|
}, [onPointerDown]);
|
|
100
113
|
const keyDownHandler = useCallback(e => {
|
|
@@ -108,7 +121,9 @@ const Drawer = /*#__PURE__*/forwardRef(({
|
|
|
108
121
|
children: [/*#__PURE__*/_jsx(DrawerMask, {
|
|
109
122
|
visible: visible
|
|
110
123
|
}), /*#__PURE__*/_jsx(Container, {
|
|
111
|
-
onPointerDown:
|
|
124
|
+
onPointerDown: pointerDownHandler,
|
|
125
|
+
onPointerUp: pointerUpHandler,
|
|
126
|
+
onClick: e => e.stopPropagation(),
|
|
112
127
|
children: /*#__PURE__*/_jsx(FocusLock, {
|
|
113
128
|
autoFocus: false,
|
|
114
129
|
children: /*#__PURE__*/_jsx(CloseDrawerContext.Provider, {
|
|
@@ -120,7 +135,8 @@ const Drawer = /*#__PURE__*/forwardRef(({
|
|
|
120
135
|
size: size,
|
|
121
136
|
tabIndex: -1,
|
|
122
137
|
onKeyDown: keyDownHandler,
|
|
123
|
-
onPointerDown:
|
|
138
|
+
onPointerDown: stopPointerHandler,
|
|
139
|
+
onPointerUp: stopPointerHandler,
|
|
124
140
|
role: "dialog",
|
|
125
141
|
"aria-modal": true,
|
|
126
142
|
...rest,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Modal/index.tsx"],"names":[],"mappings":"AAKA,OAAO,EACL,KAAK,QAAQ,EAId,MAAM,mBAAmB,CAAC;AAG3B,OAAO,KAQN,MAAM,OAAO,CAAC;AAGf,OAAsB,EAAE,KAAK,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE3E,KAAK,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;AAC7D,MAAM,WAAW,UAAW,SAAQ,WAAW,EAAE,QAAQ;IACvD;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB;;;;OAIG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC;CACnB;AA2BD,KAAK,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;AAC7C,eAAO,MAAM,SAAS;;SAiFW,MAAO,WAEhC;iGAzEP,CAAC;AAsJF,eAAO,MAAM,aAAa,cAF0B,IAEY,CAAC;AAEjE;;GAEG;AACH,QAAA,MAAM,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Modal/index.tsx"],"names":[],"mappings":"AAKA,OAAO,EACL,KAAK,QAAQ,EAId,MAAM,mBAAmB,CAAC;AAG3B,OAAO,KAQN,MAAM,OAAO,CAAC;AAGf,OAAsB,EAAE,KAAK,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE3E,KAAK,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;AAC7D,MAAM,WAAW,UAAW,SAAQ,WAAW,EAAE,QAAQ;IACvD;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB;;;;OAIG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC;CACnB;AA2BD,KAAK,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;AAC7C,eAAO,MAAM,SAAS;;SAiFW,MAAO,WAEhC;iGAzEP,CAAC;AAsJF,eAAO,MAAM,aAAa,cAF0B,IAEY,CAAC;AAEjE;;GAEG;AACH,QAAA,MAAM,KAAK,mFAyJV,CAAC;AAIF,eAAe,KAAK,CAAC"}
|
package/dist/Modal/index.js
CHANGED
|
@@ -188,11 +188,20 @@ const Modal = /*#__PURE__*/forwardRef(({
|
|
|
188
188
|
useBodyScroll(!visible);
|
|
189
189
|
const titleId = useMemo(() => `modal-title-${Math.random().toString(36).slice(2, 11)}`, []);
|
|
190
190
|
const bodyId = useMemo(() => id || `modal-body-${Math.random().toString(36).slice(2, 11)}`, [id]);
|
|
191
|
-
const
|
|
191
|
+
const closeRef = useRef(false);
|
|
192
|
+
const pointerDownHandler = useCallback(e => {
|
|
192
193
|
e.stopPropagation();
|
|
193
|
-
|
|
194
|
+
closeRef.current = true;
|
|
195
|
+
}, []);
|
|
196
|
+
const pointerUpHandler = useCallback(e => {
|
|
197
|
+
e.stopPropagation();
|
|
198
|
+
if (closeRef.current) {
|
|
199
|
+
closeRef.current = false;
|
|
200
|
+
onClose();
|
|
201
|
+
}
|
|
194
202
|
}, [onClose]);
|
|
195
|
-
const
|
|
203
|
+
const stopPointerHandler = useCallback(e => {
|
|
204
|
+
closeRef.current = false;
|
|
196
205
|
e.stopPropagation();
|
|
197
206
|
onPointerDown(e);
|
|
198
207
|
}, [onPointerDown]);
|
|
@@ -208,7 +217,9 @@ const Modal = /*#__PURE__*/forwardRef(({
|
|
|
208
217
|
children: [/*#__PURE__*/_jsx(ModalMask, {
|
|
209
218
|
visible: visible
|
|
210
219
|
}), /*#__PURE__*/_jsx(Container, {
|
|
211
|
-
onPointerDown:
|
|
220
|
+
onPointerDown: pointerDownHandler,
|
|
221
|
+
onPointerUp: pointerUpHandler,
|
|
222
|
+
onClick: e => e.stopPropagation(),
|
|
212
223
|
children: /*#__PURE__*/_jsx(FocusLock, {
|
|
213
224
|
autoFocus: false,
|
|
214
225
|
children: /*#__PURE__*/_jsx(CloseModalContext.Provider, {
|
|
@@ -218,7 +229,8 @@ const Modal = /*#__PURE__*/forwardRef(({
|
|
|
218
229
|
size: size,
|
|
219
230
|
tabIndex: -1,
|
|
220
231
|
onKeyDown: contentKeyDownHandler,
|
|
221
|
-
onPointerDown:
|
|
232
|
+
onPointerDown: stopPointerHandler,
|
|
233
|
+
onPointerUp: stopPointerHandler,
|
|
222
234
|
role: "dialog",
|
|
223
235
|
"aria-modal": true,
|
|
224
236
|
"aria-labelledby": ariaLabelledBy,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@os-design/core",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.274",
|
|
4
4
|
"license": "UNLICENSED",
|
|
5
5
|
"repository": "git@gitlab.com:os-team/libs/os-design.git",
|
|
6
6
|
"type": "module",
|
|
@@ -58,5 +58,5 @@
|
|
|
58
58
|
"react": "18",
|
|
59
59
|
"react-dom": "18"
|
|
60
60
|
},
|
|
61
|
-
"gitHead": "
|
|
61
|
+
"gitHead": "2670f1f372534a39413706dd9af40e6cf0a49b1e"
|
|
62
62
|
}
|
package/src/Drawer/index.tsx
CHANGED
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
} from '@os-design/styles';
|
|
10
10
|
import { clr, useTheme } from '@os-design/theming';
|
|
11
11
|
import { omitEmotionProps, useBodyScroll, useClosable } from '@os-design/utils';
|
|
12
|
-
import React, { forwardRef, useCallback, useContext } from 'react';
|
|
12
|
+
import React, { forwardRef, useCallback, useContext, useRef } from 'react';
|
|
13
13
|
import FocusLock from 'react-focus-lock';
|
|
14
14
|
import { ModalMask } from '../Modal/index.js';
|
|
15
15
|
|
|
@@ -159,9 +159,25 @@ const Drawer = forwardRef<HTMLDivElement, DrawerProps>(
|
|
|
159
159
|
|
|
160
160
|
useBodyScroll(!visible);
|
|
161
161
|
|
|
162
|
-
const
|
|
162
|
+
const closeRef = useRef(false);
|
|
163
|
+
const pointerDownHandler = useCallback((e) => {
|
|
164
|
+
e.stopPropagation();
|
|
165
|
+
closeRef.current = true;
|
|
166
|
+
}, []);
|
|
167
|
+
const pointerUpHandler = useCallback(
|
|
163
168
|
(e) => {
|
|
164
169
|
e.stopPropagation();
|
|
170
|
+
if (closeRef.current) {
|
|
171
|
+
closeRef.current = false;
|
|
172
|
+
onClose();
|
|
173
|
+
}
|
|
174
|
+
},
|
|
175
|
+
[onClose]
|
|
176
|
+
);
|
|
177
|
+
const stopPointerHandler = useCallback(
|
|
178
|
+
(e) => {
|
|
179
|
+
e.stopPropagation();
|
|
180
|
+
closeRef.current = false;
|
|
165
181
|
onPointerDown(e);
|
|
166
182
|
},
|
|
167
183
|
[onPointerDown]
|
|
@@ -182,7 +198,11 @@ const Drawer = forwardRef<HTMLDivElement, DrawerProps>(
|
|
|
182
198
|
return (
|
|
183
199
|
<Portal>
|
|
184
200
|
<DrawerMask visible={visible} />
|
|
185
|
-
<Container
|
|
201
|
+
<Container
|
|
202
|
+
onPointerDown={pointerDownHandler}
|
|
203
|
+
onPointerUp={pointerUpHandler}
|
|
204
|
+
onClick={(e) => e.stopPropagation()}
|
|
205
|
+
>
|
|
186
206
|
{/* @ts-expect-error FocusLock has problems with types */}
|
|
187
207
|
<FocusLock autoFocus={false}>
|
|
188
208
|
<CloseDrawerContext.Provider value={onClose}>
|
|
@@ -193,7 +213,8 @@ const Drawer = forwardRef<HTMLDivElement, DrawerProps>(
|
|
|
193
213
|
size={size}
|
|
194
214
|
tabIndex={-1}
|
|
195
215
|
onKeyDown={keyDownHandler}
|
|
196
|
-
onPointerDown={
|
|
216
|
+
onPointerDown={stopPointerHandler}
|
|
217
|
+
onPointerUp={stopPointerHandler}
|
|
197
218
|
role='dialog'
|
|
198
219
|
aria-modal
|
|
199
220
|
{...rest}
|
package/src/Modal/index.tsx
CHANGED
|
@@ -314,16 +314,27 @@ const Modal = forwardRef<HTMLDivElement, ModalProps>(
|
|
|
314
314
|
[id]
|
|
315
315
|
);
|
|
316
316
|
|
|
317
|
-
const
|
|
317
|
+
const closeRef = useRef(false);
|
|
318
|
+
const pointerDownHandler = useCallback(
|
|
318
319
|
(e: PointerEvent<HTMLDivElement>) => {
|
|
319
320
|
e.stopPropagation();
|
|
320
|
-
|
|
321
|
+
closeRef.current = true;
|
|
322
|
+
},
|
|
323
|
+
[]
|
|
324
|
+
);
|
|
325
|
+
const pointerUpHandler = useCallback(
|
|
326
|
+
(e: PointerEvent<HTMLDivElement>) => {
|
|
327
|
+
e.stopPropagation();
|
|
328
|
+
if (closeRef.current) {
|
|
329
|
+
closeRef.current = false;
|
|
330
|
+
onClose();
|
|
331
|
+
}
|
|
321
332
|
},
|
|
322
333
|
[onClose]
|
|
323
334
|
);
|
|
324
|
-
|
|
325
|
-
const contentPointerDownHandler = useCallback(
|
|
335
|
+
const stopPointerHandler = useCallback(
|
|
326
336
|
(e: PointerEvent<HTMLDivElement>) => {
|
|
337
|
+
closeRef.current = false;
|
|
327
338
|
e.stopPropagation();
|
|
328
339
|
onPointerDown(e);
|
|
329
340
|
},
|
|
@@ -350,7 +361,11 @@ const Modal = forwardRef<HTMLDivElement, ModalProps>(
|
|
|
350
361
|
return (
|
|
351
362
|
<Portal>
|
|
352
363
|
<ModalMask visible={visible} />
|
|
353
|
-
<Container
|
|
364
|
+
<Container
|
|
365
|
+
onPointerDown={pointerDownHandler}
|
|
366
|
+
onPointerUp={pointerUpHandler}
|
|
367
|
+
onClick={(e) => e.stopPropagation()}
|
|
368
|
+
>
|
|
354
369
|
{/* @ts-expect-error FocusLock has problems with types */}
|
|
355
370
|
<FocusLock autoFocus={false}>
|
|
356
371
|
<CloseModalContext.Provider value={onClose}>
|
|
@@ -359,7 +374,8 @@ const Modal = forwardRef<HTMLDivElement, ModalProps>(
|
|
|
359
374
|
size={size}
|
|
360
375
|
tabIndex={-1}
|
|
361
376
|
onKeyDown={contentKeyDownHandler}
|
|
362
|
-
onPointerDown={
|
|
377
|
+
onPointerDown={stopPointerHandler}
|
|
378
|
+
onPointerUp={stopPointerHandler}
|
|
363
379
|
role='dialog'
|
|
364
380
|
aria-modal
|
|
365
381
|
aria-labelledby={ariaLabelledBy}
|