@popsure/dirty-swan 0.55.3 → 0.56.0
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/cjs/index.d.ts +2 -2
- package/dist/cjs/index.js +2688 -882
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lib/components/modal/fullScreenModal/index.d.ts +3 -0
- package/dist/cjs/lib/components/modal/index.d.ts +2 -1
- package/dist/cjs/lib/components/modal/index.stories.d.ts +4 -0
- package/dist/cjs/lib/hooks/useEscapeKey.d.ts +1 -0
- package/dist/cjs/lib/hooks/useFocusWithin.d.ts +1 -0
- package/dist/cjs/lib/index.d.ts +4 -2
- package/dist/esm/{Calendar-3239814b.js → Calendar-d39056f4.js} +9 -9
- package/dist/esm/{Calendar-3239814b.js.map → Calendar-d39056f4.js.map} +1 -1
- package/dist/esm/{TableSection-a1be2bd3.js → TableSection-24337bc7.js} +1 -1
- package/dist/esm/{TableSection-a1be2bd3.js.map → TableSection-24337bc7.js.map} +1 -1
- package/dist/esm/components/accordion/index.js +1 -1
- package/dist/esm/components/accordion/index.stories.js +1 -1
- package/dist/esm/components/autocompleteAddress/index.test.js +1 -1
- package/dist/esm/components/badge/index.test.js +1 -1
- package/dist/esm/components/button/index.js +4 -4
- package/dist/esm/components/button/index.js.map +1 -1
- package/dist/esm/components/button/index.test.js +1 -1
- package/dist/esm/components/comparisonTable/components/AccordionItem/AccordionItem.js +1 -1
- package/dist/esm/components/comparisonTable/components/AccordionItem/index.js +1 -1
- package/dist/esm/components/comparisonTable/components/Row/index.js +2 -2
- package/dist/esm/components/comparisonTable/components/Row/index.js.map +1 -1
- package/dist/esm/components/comparisonTable/components/TableButton/index.test.js +2 -2
- package/dist/esm/components/comparisonTable/components/TableRowHeader/index.test.js +2 -2
- package/dist/esm/components/comparisonTable/index.js +2 -2
- package/dist/esm/components/comparisonTable/index.stories.js +2 -2
- package/dist/esm/components/dateSelector/components/Calendar.js +1 -1
- package/dist/esm/components/dateSelector/index.js +1 -1
- package/dist/esm/components/dateSelector/index.stories.js +1 -1
- package/dist/esm/components/dateSelector/index.test.js +2 -2
- package/dist/esm/components/informationBox/index.test.js +1 -1
- package/dist/esm/components/input/autoSuggestInput/index.js +8 -998
- package/dist/esm/components/input/autoSuggestInput/index.js.map +1 -1
- package/dist/esm/components/input/autoSuggestInput/index.stories.js +1 -0
- package/dist/esm/components/input/autoSuggestInput/index.stories.js.map +1 -1
- package/dist/esm/components/input/autoSuggestMultiSelect/index.js +1 -0
- package/dist/esm/components/input/autoSuggestMultiSelect/index.js.map +1 -1
- package/dist/esm/components/input/autoSuggestMultiSelect/index.stories.js +1 -0
- package/dist/esm/components/input/autoSuggestMultiSelect/index.stories.js.map +1 -1
- package/dist/esm/components/input/checkbox/index.test.js +1 -1
- package/dist/esm/components/input/currency/index.test.js +1 -1
- package/dist/esm/components/input/index.js +2 -2
- package/dist/esm/components/input/index.js.map +1 -1
- package/dist/esm/components/input/radio/index.test.js +1 -1
- package/dist/esm/components/input/toggle/index.test.js +1 -1
- package/dist/esm/components/modal/bottomModal/index.js +2 -0
- package/dist/esm/components/modal/bottomModal/index.js.map +1 -1
- package/dist/esm/components/modal/bottomOrRegularModal/index.js +2 -0
- package/dist/esm/components/modal/bottomOrRegularModal/index.js.map +1 -1
- package/dist/esm/components/modal/fullScreenModal/index.js +33 -0
- package/dist/esm/components/modal/fullScreenModal/index.js.map +1 -0
- package/dist/esm/components/modal/genericModal/index.js +1751 -13
- package/dist/esm/components/modal/genericModal/index.js.map +1 -1
- package/dist/esm/components/modal/index.stories.js +20 -7
- package/dist/esm/components/modal/index.stories.js.map +1 -1
- package/dist/esm/components/modal/regularModal/index.js +2 -0
- package/dist/esm/components/modal/regularModal/index.js.map +1 -1
- package/dist/esm/components/multiDropzone/index.js +3 -3
- package/dist/esm/components/multiDropzone/index.js.map +1 -1
- package/dist/esm/components/multiDropzone/index.stories.js +1 -1
- package/dist/esm/components/multiDropzone/index.test.js +3 -3
- package/dist/esm/components/segmentedControl/index.test.js +1 -1
- package/dist/esm/components/signaturePad/index.js +2 -2
- package/dist/esm/components/signaturePad/index.js.map +1 -1
- package/dist/esm/components/spinner/index.test.js +1 -1
- package/dist/esm/components/table/Table.js +4 -2
- package/dist/esm/components/table/Table.js.map +1 -1
- package/dist/esm/components/table/Table.stories.js +4 -2
- package/dist/esm/components/table/Table.stories.js.map +1 -1
- package/dist/esm/components/table/Table.test.js +5 -3
- package/dist/esm/components/table/Table.test.js.map +1 -1
- package/dist/esm/components/table/components/TableCell/BaseCell/BaseCell.js +1 -1
- package/dist/esm/components/table/components/TableCell/BaseCell/BaseCell.stories.js +1 -1
- package/dist/esm/components/table/components/TableCell/TableCell.js +3 -3
- package/dist/esm/components/table/components/TableCell/TableCell.js.map +1 -1
- package/dist/esm/components/table/components/TableCell/TableCell.test.js +2 -2
- package/dist/esm/components/table/components/TableContents/TableContents.js +2 -2
- package/dist/esm/components/table/components/TableContents/TableContents.test.js +3 -3
- package/dist/esm/components/table/components/TableControls/TableControls.test.js +1 -1
- package/dist/esm/components/table/components/TableSection/TableSection.js +2 -2
- package/dist/esm/components/table/components/TableSection/TableSection.test.js +3 -3
- package/dist/esm/components/toast/index.js +1 -1
- package/dist/esm/components/toast/index.stories.js +1 -1
- package/dist/esm/components/toast/index.test.js +2 -2
- package/dist/esm/{customRender-d03c10b6.js → customRender-be47569b.js} +4 -4
- package/dist/esm/{customRender-d03c10b6.js.map → customRender-be47569b.js.map} +1 -1
- package/dist/esm/index-171a0108.js +997 -0
- package/dist/esm/index-171a0108.js.map +1 -0
- package/dist/esm/{index-3aa7e697.js → index-4b19aafb.js} +4 -4
- package/dist/esm/{index-3aa7e697.js.map → index-4b19aafb.js.map} +1 -1
- package/dist/esm/{index-6f567b0b.js → index-86558de6.js} +2 -2
- package/dist/esm/{index-6f567b0b.js.map → index-86558de6.js.map} +1 -1
- package/dist/esm/{index-3d286178.js → index-af1860d8.js} +3 -3
- package/dist/esm/{index-3d286178.js.map → index-af1860d8.js.map} +1 -1
- package/dist/esm/{index-a0ef2ab4.js → index-e27b50cf.js} +4 -4
- package/dist/esm/{index-a0ef2ab4.js.map → index-e27b50cf.js.map} +1 -1
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.js +36 -6
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/components/modal/fullScreenModal/index.d.ts +3 -0
- package/dist/esm/lib/components/modal/index.d.ts +2 -1
- package/dist/esm/lib/components/modal/index.stories.d.ts +4 -0
- package/dist/esm/lib/hooks/useEscapeKey.d.ts +1 -0
- package/dist/esm/lib/hooks/useFocusWithin.d.ts +1 -0
- package/dist/esm/lib/index.d.ts +4 -2
- package/dist/esm/util/testUtils/customRender.js +1 -1
- package/package.json +2 -1
- package/src/index.tsx +4 -1
- package/src/lib/components/modal/fullScreenModal/index.tsx +24 -0
- package/src/lib/components/modal/fullScreenModal/style.module.scss +49 -0
- package/src/lib/components/modal/genericModal/index.tsx +71 -78
- package/src/lib/components/modal/hooks/useOnClose.ts +10 -8
- package/src/lib/components/modal/index.stories.tsx +54 -6
- package/src/lib/components/modal/index.ts +2 -1
- package/src/lib/hooks/useEscapeKey.ts +18 -0
- package/src/lib/hooks/useFocusWithin.ts +22 -0
- package/src/lib/index.tsx +6 -0
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { useState } from 'react';
|
|
3
3
|
import { BottomModal, BottomOrRegularModal, Props, RegularModal } from '.';
|
|
4
4
|
import { Button } from '../button';
|
|
5
|
+
import { FullScreenModal } from './fullScreenModal';
|
|
5
6
|
|
|
6
7
|
const story = {
|
|
7
8
|
title: 'JSX/Modals',
|
|
@@ -88,7 +89,7 @@ export const BottomOrRegularModalStory = ({
|
|
|
88
89
|
return (
|
|
89
90
|
<>
|
|
90
91
|
<button
|
|
91
|
-
className="p-btn--primary wmn2"
|
|
92
|
+
className="d-flex p-btn--primary wmn2"
|
|
92
93
|
onClick={() => setDisplay(true)}
|
|
93
94
|
>
|
|
94
95
|
Click to open modal
|
|
@@ -140,7 +141,7 @@ export const RegularModalStory = ({
|
|
|
140
141
|
Want to use either Regular Modal or Bottom Modal based on the screen width? You can use Bottom or Regular modal.
|
|
141
142
|
|
|
142
143
|
<button
|
|
143
|
-
className="p-btn--primary wmn2 mt24"
|
|
144
|
+
className="d-flex p-btn--primary wmn2 mt24"
|
|
144
145
|
onClick={() => setDisplay(true)}
|
|
145
146
|
>
|
|
146
147
|
Click to open modal
|
|
@@ -188,7 +189,7 @@ export const BottomModalStory = ({
|
|
|
188
189
|
Want to use either Regular Modal or Bottom Modal based on the screen width? You can use Bottom or Regular modal.
|
|
189
190
|
|
|
190
191
|
<button
|
|
191
|
-
className="p-btn--primary wmn2 mt24"
|
|
192
|
+
className="d-flex p-btn--primary wmn2 mt24"
|
|
192
193
|
onClick={() => setDisplay(true)}
|
|
193
194
|
>
|
|
194
195
|
Click to open modal
|
|
@@ -217,6 +218,53 @@ export const BottomModalStory = ({
|
|
|
217
218
|
|
|
218
219
|
BottomModalStory.storyName = 'BottomModal';
|
|
219
220
|
|
|
221
|
+
export const FullScreenModalStory = ({
|
|
222
|
+
children,
|
|
223
|
+
isOpen,
|
|
224
|
+
onClose,
|
|
225
|
+
title,
|
|
226
|
+
}: Props) => {
|
|
227
|
+
const [display, setDisplay] = useState(isOpen);
|
|
228
|
+
const handleOnClose = () => {
|
|
229
|
+
onClose();
|
|
230
|
+
setDisplay(false);
|
|
231
|
+
};
|
|
232
|
+
|
|
233
|
+
return (
|
|
234
|
+
<>
|
|
235
|
+
Full screen modals are primary meant to be used as blocker screens. The modal will cover the entire screen and the user will be able to dismiss them using the top left "X" icon.
|
|
236
|
+
|
|
237
|
+
<button
|
|
238
|
+
className="d-flex p-btn--primary wmn2 mt24"
|
|
239
|
+
onClick={() => setDisplay(true)}
|
|
240
|
+
>
|
|
241
|
+
Click to open modal
|
|
242
|
+
</button>
|
|
243
|
+
|
|
244
|
+
<FullScreenModal
|
|
245
|
+
title={title}
|
|
246
|
+
isOpen={display}
|
|
247
|
+
onClose={handleOnClose}
|
|
248
|
+
>
|
|
249
|
+
<div style={{ padding: '0 24px 24px 24px' }}>
|
|
250
|
+
<div>
|
|
251
|
+
{children}
|
|
252
|
+
</div>
|
|
253
|
+
|
|
254
|
+
<button
|
|
255
|
+
className="p-btn--primary mt24 wmn3"
|
|
256
|
+
onClick={() => setDisplay(false)}
|
|
257
|
+
>
|
|
258
|
+
Continue
|
|
259
|
+
</button>
|
|
260
|
+
</div>
|
|
261
|
+
</FullScreenModal>
|
|
262
|
+
</>
|
|
263
|
+
);
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
FullScreenModalStory.storyName = 'FullScreenModal';
|
|
267
|
+
|
|
220
268
|
export const NonDismissibleModal = ({
|
|
221
269
|
children,
|
|
222
270
|
isOpen,
|
|
@@ -237,7 +285,7 @@ export const NonDismissibleModal = ({
|
|
|
237
285
|
<strong>Warning:</strong> a modal with the dismissible prop can only be closed by changing the isOpen prop to false.
|
|
238
286
|
|
|
239
287
|
<button
|
|
240
|
-
className="p-btn--primary wmn2 mt24"
|
|
288
|
+
className="d-flex p-btn--primary wmn2 mt24"
|
|
241
289
|
onClick={() => setDisplay(true)}
|
|
242
290
|
>
|
|
243
291
|
Click to open modal
|
|
@@ -280,7 +328,7 @@ export const ModalWithFooter = ({
|
|
|
280
328
|
return (
|
|
281
329
|
<>
|
|
282
330
|
<button
|
|
283
|
-
className="p-btn--primary wmn2"
|
|
331
|
+
className="d-flex p-btn--primary wmn2"
|
|
284
332
|
onClick={() => setDisplay(true)}
|
|
285
333
|
>
|
|
286
334
|
Click to open modal
|
|
@@ -326,7 +374,7 @@ export const ModalWithFooterAndScroll = ({
|
|
|
326
374
|
return (
|
|
327
375
|
<>
|
|
328
376
|
<button
|
|
329
|
-
className="p-btn--primary wmn2"
|
|
377
|
+
className="d-flex p-btn--primary wmn2"
|
|
330
378
|
onClick={() => setDisplay(true)}
|
|
331
379
|
>
|
|
332
380
|
Click to open modal
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { BottomModal } from './bottomModal';
|
|
2
2
|
import { RegularModal } from './regularModal';
|
|
3
3
|
import { BottomOrRegularModal } from './bottomOrRegularModal';
|
|
4
|
+
import { FullScreenModal } from './fullScreenModal';
|
|
4
5
|
import { ReactNode } from 'react';
|
|
5
6
|
|
|
6
7
|
export interface Props {
|
|
@@ -15,4 +16,4 @@ export interface Props {
|
|
|
15
16
|
footer?: ReactNode;
|
|
16
17
|
}
|
|
17
18
|
|
|
18
|
-
export { BottomModal, RegularModal, BottomOrRegularModal };
|
|
19
|
+
export { BottomModal, RegularModal, BottomOrRegularModal, FullScreenModal };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { useCallback, useEffect } from 'react';
|
|
2
|
+
|
|
3
|
+
export const useEscapeKey = (callback: () => void) => {
|
|
4
|
+
const handleOnEscape = useCallback(
|
|
5
|
+
(e: KeyboardEvent) => {
|
|
6
|
+
if (e.key === 'Escape') {
|
|
7
|
+
callback();
|
|
8
|
+
}
|
|
9
|
+
},
|
|
10
|
+
[callback]
|
|
11
|
+
);
|
|
12
|
+
|
|
13
|
+
useEffect(() => {
|
|
14
|
+
window.addEventListener('keydown', handleOnEscape);
|
|
15
|
+
|
|
16
|
+
return () => window.removeEventListener('keydown', handleOnEscape);
|
|
17
|
+
}, [handleOnEscape]);
|
|
18
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { useEffect } from 'react';
|
|
2
|
+
|
|
3
|
+
export const useFocusWithin = (
|
|
4
|
+
ref: HTMLElement | null,
|
|
5
|
+
callback: (isFocusWithin: boolean) => void
|
|
6
|
+
) => {
|
|
7
|
+
useEffect(() => {
|
|
8
|
+
const handleOnFocusIn = () => {
|
|
9
|
+
if (!ref) {
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const hasFocus = ref?.contains(document.activeElement);
|
|
14
|
+
|
|
15
|
+
callback(Boolean(hasFocus));
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
document.addEventListener('focusin', handleOnFocusIn);
|
|
19
|
+
|
|
20
|
+
return () => document?.removeEventListener('focusin', handleOnFocusIn);
|
|
21
|
+
}, [callback, ref]);
|
|
22
|
+
};
|
package/src/lib/index.tsx
CHANGED
|
@@ -23,6 +23,7 @@ import {
|
|
|
23
23
|
BottomModal,
|
|
24
24
|
RegularModal,
|
|
25
25
|
BottomOrRegularModal,
|
|
26
|
+
FullScreenModal,
|
|
26
27
|
} from './components/modal';
|
|
27
28
|
import { InfoCard, CardButton } from './components/cards';
|
|
28
29
|
import { Card, CardProps } from './components/cards/card';
|
|
@@ -48,6 +49,8 @@ import { Toaster, toast } from './components/toast';
|
|
|
48
49
|
import { IconWrapperProps } from './components/icon/IconWrapper';
|
|
49
50
|
import { Accordion, AccordionProps } from './components/accordion';
|
|
50
51
|
import { Table, TableData, TableProps } from './components/table/Table';
|
|
52
|
+
import { useEscapeKey } from './hooks/useEscapeKey';
|
|
53
|
+
import { useFocusWithin } from './hooks/useFocusWithin';
|
|
51
54
|
|
|
52
55
|
export * from './components/icon';
|
|
53
56
|
|
|
@@ -63,6 +66,7 @@ export {
|
|
|
63
66
|
BottomModal,
|
|
64
67
|
RegularModal,
|
|
65
68
|
BottomOrRegularModal,
|
|
69
|
+
FullScreenModal,
|
|
66
70
|
InfoCard,
|
|
67
71
|
Card,
|
|
68
72
|
CardButton,
|
|
@@ -90,6 +94,8 @@ export {
|
|
|
90
94
|
Toggle,
|
|
91
95
|
Toaster,
|
|
92
96
|
toast,
|
|
97
|
+
useEscapeKey,
|
|
98
|
+
useFocusWithin,
|
|
93
99
|
};
|
|
94
100
|
|
|
95
101
|
export type {
|