no-frills-ui 0.0.14-alpha.1 → 0.0.14-alpha.3
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/README.md +28 -22
- package/dist/index.js +920 -537
- package/dist/index.js.map +1 -1
- package/lib-esm/components/Accordion/Accordion.d.ts +3 -3
- package/lib-esm/components/Accordion/Accordion.d.ts.map +1 -0
- package/lib-esm/components/Accordion/Accordion.js +6 -3
- package/lib-esm/components/Accordion/Accordion.js.map +1 -1
- package/lib-esm/components/Accordion/AccordionStep.d.ts +3 -2
- package/lib-esm/components/Accordion/AccordionStep.d.ts.map +1 -0
- package/lib-esm/components/Accordion/AccordionStep.js +31 -22
- package/lib-esm/components/Accordion/AccordionStep.js.map +1 -1
- package/lib-esm/components/Accordion/index.d.ts +1 -0
- package/lib-esm/components/Accordion/index.d.ts.map +1 -0
- package/lib-esm/components/Accordion/index.js.map +1 -1
- package/lib-esm/components/Badge/Badge.d.ts +1 -0
- package/lib-esm/components/Badge/Badge.d.ts.map +1 -0
- package/lib-esm/components/Badge/Badge.js +5 -6
- package/lib-esm/components/Badge/Badge.js.map +1 -1
- package/lib-esm/components/Badge/index.d.ts +1 -0
- package/lib-esm/components/Badge/index.d.ts.map +1 -0
- package/lib-esm/components/Badge/index.js.map +1 -1
- package/lib-esm/components/Button/ActionButton.d.ts +1 -0
- package/lib-esm/components/Button/ActionButton.d.ts.map +1 -0
- package/lib-esm/components/Button/ActionButton.js.map +1 -1
- package/lib-esm/components/Button/Button.d.ts +1 -0
- package/lib-esm/components/Button/Button.d.ts.map +1 -0
- package/lib-esm/components/Button/Button.js.map +1 -1
- package/lib-esm/components/Button/IconButton.d.ts +1 -0
- package/lib-esm/components/Button/IconButton.d.ts.map +1 -0
- package/lib-esm/components/Button/IconButton.js.map +1 -1
- package/lib-esm/components/Button/LinkButton.d.ts +1 -0
- package/lib-esm/components/Button/LinkButton.d.ts.map +1 -0
- package/lib-esm/components/Button/LinkButton.js +2 -1
- package/lib-esm/components/Button/LinkButton.js.map +1 -1
- package/lib-esm/components/Button/RaisedButton.d.ts +1 -0
- package/lib-esm/components/Button/RaisedButton.d.ts.map +1 -0
- package/lib-esm/components/Button/RaisedButton.js.map +1 -1
- package/lib-esm/components/Button/index.d.ts +1 -0
- package/lib-esm/components/Button/index.d.ts.map +1 -0
- package/lib-esm/components/Button/index.js.map +1 -1
- package/lib-esm/components/Card/Card.d.ts +1 -0
- package/lib-esm/components/Card/Card.d.ts.map +1 -0
- package/lib-esm/components/Card/Card.js +1 -1
- package/lib-esm/components/Card/Card.js.map +1 -1
- package/lib-esm/components/Card/index.d.ts +1 -0
- package/lib-esm/components/Card/index.d.ts.map +1 -0
- package/lib-esm/components/Card/index.js.map +1 -1
- package/lib-esm/components/Chip/Chip.d.ts +1 -0
- package/lib-esm/components/Chip/Chip.d.ts.map +1 -0
- package/lib-esm/components/Chip/Chip.js +1 -1
- package/lib-esm/components/Chip/Chip.js.map +1 -1
- package/lib-esm/components/Chip/index.d.ts +1 -0
- package/lib-esm/components/Chip/index.d.ts.map +1 -0
- package/lib-esm/components/Chip/index.js.map +1 -1
- package/lib-esm/components/ChipInput/ChipInput.d.ts +1 -0
- package/lib-esm/components/ChipInput/ChipInput.d.ts.map +1 -0
- package/lib-esm/components/ChipInput/ChipInput.js +21 -12
- package/lib-esm/components/ChipInput/ChipInput.js.map +1 -1
- package/lib-esm/components/ChipInput/index.d.ts +1 -0
- package/lib-esm/components/ChipInput/index.d.ts.map +1 -0
- package/lib-esm/components/ChipInput/index.js.map +1 -1
- package/lib-esm/components/Dialog/AlertDialog.d.ts +1 -0
- package/lib-esm/components/Dialog/AlertDialog.d.ts.map +1 -0
- package/lib-esm/components/Dialog/AlertDialog.js +4 -4
- package/lib-esm/components/Dialog/AlertDialog.js.map +1 -1
- package/lib-esm/components/Dialog/ConfirmDialog.d.ts +1 -0
- package/lib-esm/components/Dialog/ConfirmDialog.d.ts.map +1 -0
- package/lib-esm/components/Dialog/ConfirmDialog.js +8 -3
- package/lib-esm/components/Dialog/ConfirmDialog.js.map +1 -1
- package/lib-esm/components/Dialog/Dialog.d.ts +5 -5
- package/lib-esm/components/Dialog/Dialog.d.ts.map +1 -0
- package/lib-esm/components/Dialog/Dialog.js +22 -16
- package/lib-esm/components/Dialog/Dialog.js.map +1 -1
- package/lib-esm/components/Dialog/PromptDialog.d.ts +1 -0
- package/lib-esm/components/Dialog/PromptDialog.d.ts.map +1 -0
- package/lib-esm/components/Dialog/PromptDialog.js +2 -2
- package/lib-esm/components/Dialog/PromptDialog.js.map +1 -1
- package/lib-esm/components/Dialog/index.d.ts +1 -0
- package/lib-esm/components/Dialog/index.d.ts.map +1 -0
- package/lib-esm/components/Dialog/index.js.map +1 -1
- package/lib-esm/components/DragAndDrop/DragAndDrop.d.ts +2 -1
- package/lib-esm/components/DragAndDrop/DragAndDrop.d.ts.map +1 -0
- package/lib-esm/components/DragAndDrop/DragAndDrop.js +4 -2
- package/lib-esm/components/DragAndDrop/DragAndDrop.js.map +1 -1
- package/lib-esm/components/DragAndDrop/DragItem.d.ts +1 -0
- package/lib-esm/components/DragAndDrop/DragItem.d.ts.map +1 -0
- package/lib-esm/components/DragAndDrop/DragItem.js +25 -17
- package/lib-esm/components/DragAndDrop/DragItem.js.map +1 -1
- package/lib-esm/components/DragAndDrop/index.d.ts +1 -0
- package/lib-esm/components/DragAndDrop/index.d.ts.map +1 -0
- package/lib-esm/components/DragAndDrop/index.js.map +1 -1
- package/lib-esm/components/DragAndDrop/types.d.ts +1 -0
- package/lib-esm/components/DragAndDrop/types.d.ts.map +1 -0
- package/lib-esm/components/DragAndDrop/types.js +1 -1
- package/lib-esm/components/DragAndDrop/types.js.map +1 -1
- package/lib-esm/components/Drawer/Drawer.d.ts +1 -0
- package/lib-esm/components/Drawer/Drawer.d.ts.map +1 -0
- package/lib-esm/components/Drawer/Drawer.js +10 -8
- package/lib-esm/components/Drawer/Drawer.js.map +1 -1
- package/lib-esm/components/Drawer/index.d.ts +2 -1
- package/lib-esm/components/Drawer/index.d.ts.map +1 -0
- package/lib-esm/components/Drawer/index.js +1 -1
- package/lib-esm/components/Drawer/index.js.map +1 -1
- package/lib-esm/components/Groups/Group.d.ts +1 -0
- package/lib-esm/components/Groups/Group.d.ts.map +1 -0
- package/lib-esm/components/Groups/Group.js +26 -14
- package/lib-esm/components/Groups/Group.js.map +1 -1
- package/lib-esm/components/Groups/GroupLabel.d.ts +1 -0
- package/lib-esm/components/Groups/GroupLabel.d.ts.map +1 -0
- package/lib-esm/components/Groups/GroupLabel.js.map +1 -1
- package/lib-esm/components/Groups/index.d.ts +1 -0
- package/lib-esm/components/Groups/index.d.ts.map +1 -0
- package/lib-esm/components/Groups/index.js.map +1 -1
- package/lib-esm/components/Input/Checkbox.d.ts +1 -0
- package/lib-esm/components/Input/Checkbox.d.ts.map +1 -0
- package/lib-esm/components/Input/Checkbox.js +11 -8
- package/lib-esm/components/Input/Checkbox.js.map +1 -1
- package/lib-esm/components/Input/Dropdown.d.ts +3 -2
- package/lib-esm/components/Input/Dropdown.d.ts.map +1 -0
- package/lib-esm/components/Input/Dropdown.js +22 -22
- package/lib-esm/components/Input/Dropdown.js.map +1 -1
- package/lib-esm/components/Input/Input.d.ts +1 -0
- package/lib-esm/components/Input/Input.d.ts.map +1 -0
- package/lib-esm/components/Input/Input.js +19 -10
- package/lib-esm/components/Input/Input.js.map +1 -1
- package/lib-esm/components/Input/Radio.d.ts +1 -0
- package/lib-esm/components/Input/Radio.d.ts.map +1 -0
- package/lib-esm/components/Input/Radio.js +4 -3
- package/lib-esm/components/Input/Radio.js.map +1 -1
- package/lib-esm/components/Input/RadioButton.d.ts +1 -0
- package/lib-esm/components/Input/RadioButton.d.ts.map +1 -0
- package/lib-esm/components/Input/RadioButton.js +1 -1
- package/lib-esm/components/Input/RadioButton.js.map +1 -1
- package/lib-esm/components/Input/Select.d.ts +1 -0
- package/lib-esm/components/Input/Select.d.ts.map +1 -0
- package/lib-esm/components/Input/Select.js +17 -9
- package/lib-esm/components/Input/Select.js.map +1 -1
- package/lib-esm/components/Input/TextArea.d.ts +1 -0
- package/lib-esm/components/Input/TextArea.d.ts.map +1 -0
- package/lib-esm/components/Input/TextArea.js +17 -9
- package/lib-esm/components/Input/TextArea.js.map +1 -1
- package/lib-esm/components/Input/Toggle.d.ts +1 -0
- package/lib-esm/components/Input/Toggle.d.ts.map +1 -0
- package/lib-esm/components/Input/Toggle.js +5 -5
- package/lib-esm/components/Input/Toggle.js.map +1 -1
- package/lib-esm/components/Input/index.d.ts +1 -0
- package/lib-esm/components/Input/index.d.ts.map +1 -0
- package/lib-esm/components/Input/index.js.map +1 -1
- package/lib-esm/components/Menu/Menu.d.ts +2 -1
- package/lib-esm/components/Menu/Menu.d.ts.map +1 -0
- package/lib-esm/components/Menu/Menu.js +3 -2
- package/lib-esm/components/Menu/Menu.js.map +1 -1
- package/lib-esm/components/Menu/MenuContext.d.ts +12 -5
- package/lib-esm/components/Menu/MenuContext.d.ts.map +1 -0
- package/lib-esm/components/Menu/MenuContext.js.map +1 -1
- package/lib-esm/components/Menu/MenuItem.d.ts +3 -2
- package/lib-esm/components/Menu/MenuItem.d.ts.map +1 -0
- package/lib-esm/components/Menu/MenuItem.js +9 -5
- package/lib-esm/components/Menu/MenuItem.js.map +1 -1
- package/lib-esm/components/Menu/index.d.ts +1 -0
- package/lib-esm/components/Menu/index.d.ts.map +1 -0
- package/lib-esm/components/Menu/index.js.map +1 -1
- package/lib-esm/components/Modal/Modal.d.ts +1 -0
- package/lib-esm/components/Modal/Modal.d.ts.map +1 -0
- package/lib-esm/components/Modal/Modal.js +6 -4
- package/lib-esm/components/Modal/Modal.js.map +1 -1
- package/lib-esm/components/Modal/index.d.ts +1 -0
- package/lib-esm/components/Modal/index.d.ts.map +1 -0
- package/lib-esm/components/Modal/index.js.map +1 -1
- package/lib-esm/components/Notification/Notification.d.ts +1 -0
- package/lib-esm/components/Notification/Notification.d.ts.map +1 -0
- package/lib-esm/components/Notification/Notification.js +8 -4
- package/lib-esm/components/Notification/Notification.js.map +1 -1
- package/lib-esm/components/Notification/NotificationManager.d.ts +1 -0
- package/lib-esm/components/Notification/NotificationManager.d.ts.map +1 -0
- package/lib-esm/components/Notification/NotificationManager.js +11 -9
- package/lib-esm/components/Notification/NotificationManager.js.map +1 -1
- package/lib-esm/components/Notification/index.d.ts +1 -0
- package/lib-esm/components/Notification/index.d.ts.map +1 -0
- package/lib-esm/components/Notification/index.js.map +1 -1
- package/lib-esm/components/Notification/style.d.ts +1 -0
- package/lib-esm/components/Notification/style.d.ts.map +1 -0
- package/lib-esm/components/Notification/style.js +10 -8
- package/lib-esm/components/Notification/style.js.map +1 -1
- package/lib-esm/components/Notification/types.d.ts +1 -0
- package/lib-esm/components/Notification/types.d.ts.map +1 -0
- package/lib-esm/components/Notification/types.js +0 -1
- package/lib-esm/components/Notification/types.js.map +1 -1
- package/lib-esm/components/Popover/Popover.d.ts +1 -0
- package/lib-esm/components/Popover/Popover.d.ts.map +1 -0
- package/lib-esm/components/Popover/Popover.js +20 -17
- package/lib-esm/components/Popover/Popover.js.map +1 -1
- package/lib-esm/components/Popover/index.d.ts +1 -0
- package/lib-esm/components/Popover/index.d.ts.map +1 -0
- package/lib-esm/components/Popover/index.js.map +1 -1
- package/lib-esm/components/Spinner/Spinner.d.ts +1 -0
- package/lib-esm/components/Spinner/Spinner.d.ts.map +1 -0
- package/lib-esm/components/Spinner/Spinner.js +10 -6
- package/lib-esm/components/Spinner/Spinner.js.map +1 -1
- package/lib-esm/components/Spinner/index.d.ts +1 -0
- package/lib-esm/components/Spinner/index.d.ts.map +1 -0
- package/lib-esm/components/Spinner/index.js.map +1 -1
- package/lib-esm/components/Stepper/Step.d.ts +1 -0
- package/lib-esm/components/Stepper/Step.d.ts.map +1 -0
- package/lib-esm/components/Stepper/Step.js +1 -0
- package/lib-esm/components/Stepper/Step.js.map +1 -1
- package/lib-esm/components/Stepper/Stepper.d.ts +4 -3
- package/lib-esm/components/Stepper/Stepper.d.ts.map +1 -0
- package/lib-esm/components/Stepper/Stepper.js +17 -9
- package/lib-esm/components/Stepper/Stepper.js.map +1 -1
- package/lib-esm/components/Stepper/index.d.ts +1 -0
- package/lib-esm/components/Stepper/index.d.ts.map +1 -0
- package/lib-esm/components/Stepper/index.js.map +1 -1
- package/lib-esm/components/Tabs/Tab.d.ts +1 -0
- package/lib-esm/components/Tabs/Tab.d.ts.map +1 -0
- package/lib-esm/components/Tabs/Tab.js.map +1 -1
- package/lib-esm/components/Tabs/Tabs.d.ts +6 -5
- package/lib-esm/components/Tabs/Tabs.d.ts.map +1 -0
- package/lib-esm/components/Tabs/Tabs.js +12 -9
- package/lib-esm/components/Tabs/Tabs.js.map +1 -1
- package/lib-esm/components/Tabs/index.d.ts +1 -0
- package/lib-esm/components/Tabs/index.d.ts.map +1 -0
- package/lib-esm/components/Tabs/index.js.map +1 -1
- package/lib-esm/components/Toast/Toast.d.ts +2 -0
- package/lib-esm/components/Toast/Toast.d.ts.map +1 -0
- package/lib-esm/components/Toast/Toast.js +9 -8
- package/lib-esm/components/Toast/Toast.js.map +1 -1
- package/lib-esm/components/Toast/ToastStory.d.ts +1 -0
- package/lib-esm/components/Toast/ToastStory.d.ts.map +1 -0
- package/lib-esm/components/Toast/ToastStory.js +1 -1
- package/lib-esm/components/Toast/ToastStory.js.map +1 -1
- package/lib-esm/components/Toast/index.d.ts +1 -0
- package/lib-esm/components/Toast/index.d.ts.map +1 -0
- package/lib-esm/components/Toast/index.js.map +1 -1
- package/lib-esm/components/Tooltip/Tooltip.d.ts +1 -0
- package/lib-esm/components/Tooltip/Tooltip.d.ts.map +1 -0
- package/lib-esm/components/Tooltip/Tooltip.js +5 -6
- package/lib-esm/components/Tooltip/Tooltip.js.map +1 -1
- package/lib-esm/components/Tooltip/index.d.ts +1 -0
- package/lib-esm/components/Tooltip/index.d.ts.map +1 -0
- package/lib-esm/components/Tooltip/index.js.map +1 -1
- package/lib-esm/components/index.d.ts +2 -0
- package/lib-esm/components/index.d.ts.map +1 -0
- package/lib-esm/components/index.js +1 -0
- package/lib-esm/components/index.js.map +1 -1
- package/lib-esm/icons/CheckCircle.d.ts +2 -1
- package/lib-esm/icons/CheckCircle.d.ts.map +1 -0
- package/lib-esm/icons/CheckCircle.js +1 -1
- package/lib-esm/icons/CheckCircle.js.map +1 -1
- package/lib-esm/icons/Close.d.ts +2 -1
- package/lib-esm/icons/Close.d.ts.map +1 -0
- package/lib-esm/icons/Close.js +1 -1
- package/lib-esm/icons/Close.js.map +1 -1
- package/lib-esm/icons/DragIndicator.d.ts +2 -1
- package/lib-esm/icons/DragIndicator.d.ts.map +1 -0
- package/lib-esm/icons/DragIndicator.js +1 -1
- package/lib-esm/icons/DragIndicator.js.map +1 -1
- package/lib-esm/icons/ErrorOutline.d.ts +2 -1
- package/lib-esm/icons/ErrorOutline.d.ts.map +1 -0
- package/lib-esm/icons/ErrorOutline.js +1 -1
- package/lib-esm/icons/ErrorOutline.js.map +1 -1
- package/lib-esm/icons/ExpandMore.d.ts +2 -1
- package/lib-esm/icons/ExpandMore.d.ts.map +1 -0
- package/lib-esm/icons/ExpandMore.js +1 -1
- package/lib-esm/icons/ExpandMore.js.map +1 -1
- package/lib-esm/icons/FiberManualRecord.d.ts +2 -1
- package/lib-esm/icons/FiberManualRecord.d.ts.map +1 -0
- package/lib-esm/icons/FiberManualRecord.js +1 -1
- package/lib-esm/icons/FiberManualRecord.js.map +1 -1
- package/lib-esm/icons/Info.d.ts +2 -1
- package/lib-esm/icons/Info.d.ts.map +1 -0
- package/lib-esm/icons/Info.js +1 -1
- package/lib-esm/icons/Info.js.map +1 -1
- package/lib-esm/icons/ReportProblem.d.ts +2 -1
- package/lib-esm/icons/ReportProblem.d.ts.map +1 -0
- package/lib-esm/icons/ReportProblem.js +1 -1
- package/lib-esm/icons/ReportProblem.js.map +1 -1
- package/lib-esm/icons/index.d.ts +1 -0
- package/lib-esm/icons/index.d.ts.map +1 -0
- package/lib-esm/icons/index.js.map +1 -1
- package/lib-esm/index.d.ts +1 -0
- package/lib-esm/index.d.ts.map +1 -0
- package/lib-esm/index.js.map +1 -1
- package/lib-esm/shared/LayerManager.d.ts +29 -2
- package/lib-esm/shared/LayerManager.d.ts.map +1 -0
- package/lib-esm/shared/LayerManager.js +95 -45
- package/lib-esm/shared/LayerManager.js.map +1 -1
- package/lib-esm/shared/constants.d.ts +1 -0
- package/lib-esm/shared/constants.d.ts.map +1 -0
- package/lib-esm/shared/constants.js.map +1 -1
- package/lib-esm/shared/styles.d.ts +1 -0
- package/lib-esm/shared/styles.d.ts.map +1 -0
- package/lib-esm/shared/styles.js.map +1 -1
- package/package.json +93 -74
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx } from "@emotion/react/jsx-runtime";
|
|
2
|
-
import { useEffect } from 'react';
|
|
3
|
-
import styled from '@emotion/styled';
|
|
2
|
+
import React, { useEffect } from 'react';
|
|
4
3
|
import ReactDOM from 'react-dom';
|
|
4
|
+
import styled from '@emotion/styled';
|
|
5
5
|
/** Enums for layer position on screen. */
|
|
6
6
|
export var LAYER_POSITION;
|
|
7
7
|
(function (LAYER_POSITION) {
|
|
@@ -13,7 +13,6 @@ export var LAYER_POSITION;
|
|
|
13
13
|
LAYER_POSITION[LAYER_POSITION["BOTTOM_RIGHT"] = 5] = "BOTTOM_RIGHT";
|
|
14
14
|
LAYER_POSITION[LAYER_POSITION["DIALOG"] = 6] = "DIALOG";
|
|
15
15
|
})(LAYER_POSITION || (LAYER_POSITION = {}));
|
|
16
|
-
;
|
|
17
16
|
/** Default value of config */
|
|
18
17
|
const defaultConfig = {
|
|
19
18
|
closeOnEsc: true,
|
|
@@ -39,27 +38,29 @@ const Container = styled.div `
|
|
|
39
38
|
position: fixed;
|
|
40
39
|
display: flex;
|
|
41
40
|
opacity: 0;
|
|
42
|
-
transition: opacity .3s ease;
|
|
43
|
-
${props => POSITION_STYLE[props.position]}
|
|
44
|
-
${props => props.overlay &&
|
|
41
|
+
transition: opacity 0.3s ease;
|
|
42
|
+
${(props) => POSITION_STYLE[props.position]}
|
|
43
|
+
${(props) => props.overlay &&
|
|
44
|
+
`
|
|
45
45
|
width: 100%;
|
|
46
46
|
height: 100vh;
|
|
47
47
|
background-color: var(--backdrop-color, #2681da80);
|
|
48
48
|
backdrop-filter: blur(0px);
|
|
49
49
|
pointer-events: all;
|
|
50
50
|
`}
|
|
51
|
-
z-index: ${props => props.zIndex};
|
|
51
|
+
z-index: ${(props) => props.zIndex};
|
|
52
52
|
|
|
53
53
|
.nf-layer-enter & {
|
|
54
54
|
opacity: 1;
|
|
55
|
-
${props => props.overlay &&
|
|
55
|
+
${(props) => props.overlay &&
|
|
56
|
+
`
|
|
56
57
|
backdrop-filter: blur(3px);
|
|
57
58
|
`}
|
|
58
59
|
}
|
|
59
60
|
`;
|
|
60
61
|
/** Key code for different keys. */
|
|
61
62
|
const KEY_CODES = {
|
|
62
|
-
ESC: 27
|
|
63
|
+
ESC: 27,
|
|
63
64
|
};
|
|
64
65
|
/**
|
|
65
66
|
* This is a shared helper class which manages the z-index of each layer.
|
|
@@ -70,6 +71,32 @@ const KEY_CODES = {
|
|
|
70
71
|
* This way we need not worry about the z-index and can freely keep on creating
|
|
71
72
|
* new layers. The staring layer z-index is 10000. Leaving enough z-index for the
|
|
72
73
|
* user if they desires so.
|
|
74
|
+
*
|
|
75
|
+
* @important Usage Pattern
|
|
76
|
+
* To avoid creating duplicate layers (especially in React Strict Mode or Next.js),
|
|
77
|
+
* always call `renderLayer` only once - either in a lifecycle method (like `componentDidUpdate`)
|
|
78
|
+
* or in an imperative method (like `open()`).
|
|
79
|
+
*
|
|
80
|
+
* @example
|
|
81
|
+
* // ❌ Don't call renderLayer in render() method
|
|
82
|
+
* render() {
|
|
83
|
+
* if (this.state.show) {
|
|
84
|
+
* const [Component, closeFn] = LayerManager.renderLayer({ ... }); // Creates new layer on every render
|
|
85
|
+
* return <Component />;
|
|
86
|
+
* }
|
|
87
|
+
* }
|
|
88
|
+
*
|
|
89
|
+
* @example
|
|
90
|
+
* // ✅ Do call renderLayer once in a method and store the component
|
|
91
|
+
* open() {
|
|
92
|
+
* const [Component, closeFn] = LayerManager.renderLayer({ ... });
|
|
93
|
+
* this.setState({ LayerComponent: Component });
|
|
94
|
+
* }
|
|
95
|
+
*
|
|
96
|
+
* render() {
|
|
97
|
+
* const { LayerComponent } = this.state;
|
|
98
|
+
* return LayerComponent ? <LayerComponent /> : null;
|
|
99
|
+
* }
|
|
73
100
|
*/
|
|
74
101
|
class LayerManager {
|
|
75
102
|
/**
|
|
@@ -92,10 +119,11 @@ class LayerManager {
|
|
|
92
119
|
*/
|
|
93
120
|
this.unmount = (layer, resp) => {
|
|
94
121
|
layer.element.setAttribute('class', 'nf-layer-exit');
|
|
95
|
-
this.layers.splice(this.layers.findIndex(item => item === layer), 1);
|
|
122
|
+
this.layers.splice(this.layers.findIndex((item) => item === layer), 1);
|
|
96
123
|
setTimeout(() => {
|
|
124
|
+
var _a, _b;
|
|
97
125
|
try {
|
|
98
|
-
layer.config.closeCallback
|
|
126
|
+
(_b = (_a = layer.config).closeCallback) === null || _b === void 0 ? void 0 : _b.call(_a, resp);
|
|
99
127
|
}
|
|
100
128
|
catch (e) {
|
|
101
129
|
// Error in callback function. Ignore and proceed.
|
|
@@ -108,57 +136,79 @@ class LayerManager {
|
|
|
108
136
|
* @param config
|
|
109
137
|
*/
|
|
110
138
|
this.renderLayer = (config) => {
|
|
139
|
+
// SSR guard
|
|
140
|
+
if (typeof document === 'undefined') {
|
|
141
|
+
return [() => null, () => { }];
|
|
142
|
+
}
|
|
111
143
|
// Merge default config with the provided config.
|
|
112
144
|
const layerConfig = Object.assign(Object.assign({}, defaultConfig), config);
|
|
113
145
|
// Get the z-index for the new layer
|
|
114
146
|
const currentIndex = layerConfig.alwaysOnTop ? 2147483647 : this.nextIndex++;
|
|
115
|
-
//
|
|
116
|
-
const
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
config: layerConfig,
|
|
123
|
-
element: divElement
|
|
147
|
+
// Create a unique ID for tracking this layer
|
|
148
|
+
const layerId = `nf-layer-manager-${currentIndex}`;
|
|
149
|
+
const overlayClickHandler = () => {
|
|
150
|
+
const layer = this.layers.find((l) => l.id === layerId);
|
|
151
|
+
if (layer && layer.config.closeOnOverlayClick !== false) {
|
|
152
|
+
this.unmount(layer);
|
|
153
|
+
}
|
|
124
154
|
};
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
155
|
+
const closeFn = (resp) => {
|
|
156
|
+
const layer = this.layers.find((l) => l.id === layerId);
|
|
157
|
+
if (layer) {
|
|
158
|
+
this.unmount(layer, resp);
|
|
159
|
+
}
|
|
128
160
|
};
|
|
129
161
|
// Return callback which will trigger the un-mount.
|
|
130
162
|
return [
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
// This class will help component in triggering the entry animation.
|
|
134
|
-
function TestLayer() {
|
|
163
|
+
() => {
|
|
164
|
+
const [divElement, setDivElement] = React.useState(null);
|
|
135
165
|
useEffect(() => {
|
|
136
|
-
//
|
|
137
|
-
|
|
138
|
-
|
|
166
|
+
// Create the div element only once when component mounts
|
|
167
|
+
const div = document.createElement('div');
|
|
168
|
+
div.setAttribute('id', layerId);
|
|
169
|
+
document.body.appendChild(div);
|
|
170
|
+
// Add layer to stack
|
|
171
|
+
const currentLayer = {
|
|
172
|
+
id: layerId,
|
|
173
|
+
config: layerConfig,
|
|
174
|
+
element: div,
|
|
175
|
+
};
|
|
176
|
+
this.layers.push(currentLayer);
|
|
177
|
+
setDivElement(div);
|
|
178
|
+
// Add entry animation class after a short delay
|
|
139
179
|
setTimeout(() => {
|
|
140
|
-
|
|
180
|
+
div.setAttribute('class', 'nf-layer-enter');
|
|
141
181
|
}, 10);
|
|
142
|
-
// Cleanup function
|
|
182
|
+
// Cleanup function - remove div when component unmounts
|
|
143
183
|
return () => {
|
|
144
|
-
document.body.
|
|
184
|
+
if (document.body.contains(div)) {
|
|
185
|
+
document.body.removeChild(div);
|
|
186
|
+
}
|
|
187
|
+
// Remove from layers array
|
|
188
|
+
const index = this.layers.findIndex((layer) => layer.id === layerId);
|
|
189
|
+
if (index !== -1) {
|
|
190
|
+
this.layers.splice(index, 1);
|
|
191
|
+
}
|
|
145
192
|
};
|
|
146
|
-
}, []);
|
|
147
|
-
|
|
193
|
+
}, []); // Empty dependency array - run only once
|
|
194
|
+
if (!divElement) {
|
|
195
|
+
return null;
|
|
196
|
+
}
|
|
197
|
+
return ReactDOM.createPortal(_jsx(Container, Object.assign({ onClick: overlayClickHandler, zIndex: currentIndex }, layerConfig, { children: layerConfig.component })), divElement);
|
|
148
198
|
},
|
|
149
|
-
|
|
150
|
-
this.unmount(currentLayer, resp);
|
|
151
|
-
}
|
|
199
|
+
closeFn,
|
|
152
200
|
];
|
|
153
201
|
};
|
|
154
|
-
document
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
202
|
+
if (typeof document !== 'undefined') {
|
|
203
|
+
document.body.addEventListener('keyup', (e) => {
|
|
204
|
+
if (this.layers.length && e.keyCode === KEY_CODES.ESC) {
|
|
205
|
+
const lastLayer = this.layers.slice(-1)[0];
|
|
206
|
+
if (lastLayer.config.closeOnEsc !== false) {
|
|
207
|
+
this.unmount(lastLayer);
|
|
208
|
+
}
|
|
159
209
|
}
|
|
160
|
-
}
|
|
161
|
-
}
|
|
210
|
+
});
|
|
211
|
+
}
|
|
162
212
|
}
|
|
163
213
|
}
|
|
164
214
|
// Return the instance of the class to create a Singleton.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LayerManager.js","sourceRoot":"","sources":["../../src/shared/LayerManager.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LayerManager.js","sourceRoot":"","sources":["../../src/shared/LayerManager.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { ReactPortal, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport styled from '@emotion/styled';\n\n/** Enums for layer position on screen. */\nexport enum LAYER_POSITION {\n TOP_LEFT,\n TOP_CENTER,\n TOP_RIGHT,\n BOTTOM_LEFT,\n BOTTOM_CENTER,\n BOTTOM_RIGHT,\n DIALOG,\n}\n\ninterface LayerConfig {\n /** Show an overlay */\n overlay?: boolean;\n /** Element to render inside the layer. */\n component: JSX.Element;\n /** Position of the layer */\n position?: LAYER_POSITION;\n /** Delay for exit */\n exitDelay?: number;\n /** Close layer on `esc` key press. */\n closeOnEsc?: boolean;\n /** Close layer overlay is clicked. */\n closeOnOverlayClick?: boolean;\n /** Callback called when modal closes */\n closeCallback?: <T>(resp: T) => void;\n /** Layer is created with max z-index */\n alwaysOnTop?: boolean;\n}\n\n/** Default value of config */\nconst defaultConfig: LayerConfig = {\n closeOnEsc: true,\n overlay: false,\n position: LAYER_POSITION.TOP_LEFT,\n component: null,\n exitDelay: 0,\n closeOnOverlayClick: true,\n alwaysOnTop: false,\n};\n\n/** Metadata of each layer */\ninterface Layer {\n id: string;\n config: LayerConfig;\n element: HTMLDivElement;\n}\n\n/** Styles for each position */\nconst POSITION_STYLE = {\n [LAYER_POSITION.TOP_LEFT]: 'top: 0; left: 0;',\n [LAYER_POSITION.TOP_CENTER]: 'top: 0; left: 50%; justify-content: center;',\n [LAYER_POSITION.TOP_RIGHT]: 'top: 0; right: 0; justify-content: flex-end;',\n [LAYER_POSITION.BOTTOM_LEFT]: 'bottom: 0; left: 0;',\n [LAYER_POSITION.BOTTOM_CENTER]: 'bottom: 0; left: 50%; justify-content: center;',\n [LAYER_POSITION.BOTTOM_RIGHT]: 'bottom: 0; right: 0; justify-content: flex-end;',\n [LAYER_POSITION.DIALOG]: 'top: 0; left: 0; justify-content: center; align-items: center;',\n};\n\n/** Layer container component. */\nconst Container = styled.div<LayerConfig & { zIndex: number }>`\n position: fixed;\n display: flex;\n opacity: 0;\n transition: opacity 0.3s ease;\n ${(props) => POSITION_STYLE[props.position]}\n ${(props) =>\n props.overlay &&\n `\n width: 100%;\n height: 100vh;\n background-color: var(--backdrop-color, #2681da80);\n backdrop-filter: blur(0px);\n pointer-events: all;\n `}\n z-index: ${(props) => props.zIndex};\n\n .nf-layer-enter & {\n opacity: 1;\n ${(props) =>\n props.overlay &&\n `\n backdrop-filter: blur(3px);\n `}\n }\n`;\n\n/** Key code for different keys. */\nconst KEY_CODES = {\n ESC: 27,\n};\n\n/**\n * This is a shared helper class which manages the z-index of each layer.\n * If a component needs to be rendered in a different layer then this class\n * should be used. It internally maintains the stack of opened layer and each\n * `renderLayer` call will push a new layer in stack.\n *\n * This way we need not worry about the z-index and can freely keep on creating\n * new layers. The staring layer z-index is 10000. Leaving enough z-index for the\n * user if they desires so.\n *\n * @important Usage Pattern\n * To avoid creating duplicate layers (especially in React Strict Mode or Next.js),\n * always call `renderLayer` only once - either in a lifecycle method (like `componentDidUpdate`)\n * or in an imperative method (like `open()`).\n *\n * @example\n * // ❌ Don't call renderLayer in render() method\n * render() {\n * if (this.state.show) {\n * const [Component, closeFn] = LayerManager.renderLayer({ ... }); // Creates new layer on every render\n * return <Component />;\n * }\n * }\n *\n * @example\n * // ✅ Do call renderLayer once in a method and store the component\n * open() {\n * const [Component, closeFn] = LayerManager.renderLayer({ ... });\n * this.setState({ LayerComponent: Component });\n * }\n *\n * render() {\n * const { LayerComponent } = this.state;\n * return LayerComponent ? <LayerComponent /> : null;\n * }\n */\nclass LayerManager {\n /** Layer stack */\n private layers: Layer[] = [];\n /** z-index of the next layer */\n private nextIndex = 10000;\n\n /**\n * Constructor simply registers a event listener on body to\n * react to esc key press.\n */\n constructor() {\n if (typeof document !== 'undefined') {\n document.body.addEventListener('keyup', (e) => {\n if (this.layers.length && e.keyCode === KEY_CODES.ESC) {\n const lastLayer = this.layers.slice(-1)[0];\n if (lastLayer.config.closeOnEsc !== false) {\n this.unmount(lastLayer);\n }\n }\n });\n }\n }\n\n /**\n * Un-mounts a layer.\n *\n * It first adds a class 'nf-layer-exit' and then un-mounts the\n * layer after the `exitDelay` mentioned in the layer config.\n * This class will help component in triggering the entry animation.\n *\n * @param layer\n */\n private unmount = (layer: Layer, resp?: unknown) => {\n layer.element.setAttribute('class', 'nf-layer-exit');\n this.layers.splice(\n this.layers.findIndex((item) => item === layer),\n 1,\n );\n\n setTimeout(() => {\n try {\n layer.config.closeCallback?.(resp);\n } catch (e) {\n // Error in callback function. Ignore and proceed.\n console.warn(e.message);\n }\n }, layer.config.exitDelay);\n };\n\n /**\n * Renders a layer.\n * @param config\n */\n public renderLayer = (\n config: LayerConfig,\n ): [() => React.ReactPortal | null, (resp?: unknown) => void] => {\n // SSR guard\n if (typeof document === 'undefined') {\n return [() => null, () => {}];\n }\n\n // Merge default config with the provided config.\n const layerConfig = {\n ...defaultConfig,\n ...config,\n };\n\n // Get the z-index for the new layer\n const currentIndex = layerConfig.alwaysOnTop ? 2147483647 : this.nextIndex++;\n\n // Create a unique ID for tracking this layer\n const layerId = `nf-layer-manager-${currentIndex}`;\n\n const overlayClickHandler = () => {\n const layer = this.layers.find((l) => l.id === layerId);\n if (layer && layer.config.closeOnOverlayClick !== false) {\n this.unmount(layer);\n }\n };\n\n const closeFn = (resp?: unknown) => {\n const layer = this.layers.find((l) => l.id === layerId);\n if (layer) {\n this.unmount(layer, resp);\n }\n };\n\n // Return callback which will trigger the un-mount.\n return [\n (): ReactPortal | null => {\n const [divElement, setDivElement] = React.useState<HTMLDivElement | null>(null);\n\n useEffect(() => {\n // Create the div element only once when component mounts\n const div = document.createElement('div');\n div.setAttribute('id', layerId);\n document.body.appendChild(div);\n\n // Add layer to stack\n const currentLayer = {\n id: layerId,\n config: layerConfig,\n element: div,\n };\n this.layers.push(currentLayer);\n\n setDivElement(div);\n // Add entry animation class after a short delay\n setTimeout(() => {\n div.setAttribute('class', 'nf-layer-enter');\n }, 10);\n\n // Cleanup function - remove div when component unmounts\n return () => {\n if (document.body.contains(div)) {\n document.body.removeChild(div);\n }\n // Remove from layers array\n const index = this.layers.findIndex((layer) => layer.id === layerId);\n if (index !== -1) {\n this.layers.splice(index, 1);\n }\n };\n }, []); // Empty dependency array - run only once\n\n if (!divElement) {\n return null;\n }\n\n return ReactDOM.createPortal(\n <Container onClick={overlayClickHandler} zIndex={currentIndex} {...layerConfig}>\n {layerConfig.component}\n </Container>,\n divElement,\n );\n },\n closeFn,\n ];\n };\n}\n\n// Return the instance of the class to create a Singleton.\nexport default new LayerManager();\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/shared/constants.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wBA0BE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/shared/constants.ts"],"names":[],"mappings":"AAAA,eAAe;IACX,OAAO,EAAE,SAAS;IAClB,aAAa,EAAE,SAAS;IACxB,eAAe,EAAE,SAAS;IAC1B,cAAc,EAAE,WAAW;IAC3B,IAAI,EAAE,SAAS;IACf,UAAU,EAAE,SAAS;IACrB,OAAO,EAAE,SAAS;IAClB,aAAa,EAAE,SAAS;IACxB,OAAO,EAAE,SAAS;IAClB,aAAa,EAAE,SAAS;IACxB,KAAK,EAAE,SAAS;IAChB,WAAW,EAAE,SAAS;IACtB,YAAY,EAAE,SAAS;IACvB,KAAK,EAAE,SAAS;IAChB,aAAa,EAAE,iBAAiB;IAChC,kBAAkB,EAAE,SAAS;IAC7B,UAAU,EAAE,SAAS;IACrB,mBAAmB,EAAE,SAAS;IAC9B,eAAe,EAAE,MAAM;IACvB,UAAU,EAAE,MAAM;IAClB,QAAQ,EAAE,MAAM;IAChB,MAAM,EAAE,mEAAmE;IAC3E,YAAY,EAAE,uEAAuE;IACrF,YAAY,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/shared/constants.ts"],"names":[],"mappings":"AAAA,eAAe;IACX,OAAO,EAAE,SAAS;IAClB,aAAa,EAAE,SAAS;IACxB,eAAe,EAAE,SAAS;IAC1B,cAAc,EAAE,WAAW;IAC3B,IAAI,EAAE,SAAS;IACf,UAAU,EAAE,SAAS;IACrB,OAAO,EAAE,SAAS;IAClB,aAAa,EAAE,SAAS;IACxB,OAAO,EAAE,SAAS;IAClB,aAAa,EAAE,SAAS;IACxB,KAAK,EAAE,SAAS;IAChB,WAAW,EAAE,SAAS;IACtB,YAAY,EAAE,SAAS;IACvB,KAAK,EAAE,SAAS;IAChB,aAAa,EAAE,iBAAiB;IAChC,kBAAkB,EAAE,SAAS;IAC7B,UAAU,EAAE,SAAS;IACrB,mBAAmB,EAAE,SAAS;IAC9B,eAAe,EAAE,MAAM;IACvB,UAAU,EAAE,MAAM;IAClB,QAAQ,EAAE,MAAM;IAChB,MAAM,EAAE,mEAAmE;IAC3E,YAAY,EAAE,uEAAuE;IACrF,YAAY,EACR,wGAAwG;CAC/G,CAAC","sourcesContent":["export default {\n PRIMARY: '#2283d2',\n PRIMARY_LIGHT: '#64baff',\n PRIMARY_LIGHTER: '#cfe9ff',\n BACKDROP_COLOR: '#2681da80',\n INFO: '#2283d2',\n INFO_LIGHT: '#64baff',\n SUCCESS: '#22d295',\n SUCCESS_LIGHT: '#80eac6',\n WARNING: '#cc9500',\n WARNING_LIGHT: '#ffba00',\n ERROR: '#d63b3b',\n ERROR_LIGHT: '#f1a5a5',\n BORDER_COLOR: '#555555',\n TOAST: '#5f5f5f',\n TOOLTIP_COLOR: 'rgba(0,0,0,0.5)',\n BORDER_LIGHT_COLOR: '#eeeeee',\n BACKGROUND: '#ffffff',\n DISABLED_BACKGROUND: '#fafafa',\n DISABLED_BORDER: '#aaa',\n LIGHT_GREY: '#ccc',\n DISABLED: '#777',\n SHADOW: '0px 1px 3px 0px rgba(0,0,0,0.1), 0px 1px 2px 0px rgba(0,0,0,0.06)',\n HOVER_SHADOW: '0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)',\n MODAL_SHADOW:\n '0px 8px 17px 2px rgba(0,0,0,0.14), 0px 3px 14px 2px rgba(0,0,0,0.12), 0px 5px 5px -3px rgba(0,0,0,0.2)',\n};\n"]}
|
|
@@ -14,3 +14,4 @@ export declare const Footer: import("@emotion/styled").StyledComponent<{
|
|
|
14
14
|
theme?: import("@emotion/react").Theme;
|
|
15
15
|
as?: React.ElementType;
|
|
16
16
|
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
17
|
+
//# sourceMappingURL=styles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/shared/styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ;;SA0BrB,MAAO,WAAW;2GAtBjB,CAAC;AAEF,eAAO,MAAM,MAAM;;SAoBnB,MAAO,WAAW;yGAdjB,CAAC;AAEF,eAAO,MAAM,IAAI;;SAYjB,MAAO,WAAW;yGARjB,CAAC;AAEF,eAAO,MAAM,MAAM;;SAMnB,MAAO,WAAW;yGADjB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/shared/styles.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAErC,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAA;;;;CAIlC,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;CAM/B,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAA;;;;CAI7B,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;CAK/B,CAAC"}
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/shared/styles.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAErC,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAA;;;;CAIlC,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;CAM/B,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAA;;;;CAI7B,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;CAK/B,CAAC","sourcesContent":["import styled from '@emotion/styled';\n\nexport const Ellipsis = styled.span`\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n`;\n\nexport const Header = styled.div`\n padding: 10px 15px;\n line-height: 26px;\n border-bottom: 1px solid var(--border-light-color, #eeeeee);\n font-size: 16px;\n font-weight: bold;\n`;\n\nexport const Body = styled.div`\n padding: 20px 15px;\n flex: 1;\n overflow: auto;\n`;\n\nexport const Footer = styled.div`\n padding: 10px 15px;\n border-top: 1px solid var(--border-light-color, #eeeeee);\n display: flex;\n justify-content: flex-end;\n`;\n"]}
|
package/package.json
CHANGED
|
@@ -1,77 +1,96 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
},
|
|
26
|
-
"keywords": [
|
|
27
|
-
"React"
|
|
28
|
-
],
|
|
29
|
-
"author": "pushkar8723@gmail.com",
|
|
30
|
-
"license": "MIT",
|
|
31
|
-
"bugs": {
|
|
32
|
-
"url": "https://github.com/pushkar8723/no-frills-ui/issues"
|
|
33
|
-
},
|
|
34
|
-
"homepage": "https://github.com/pushkar8723/no-frills-ui#readme",
|
|
35
|
-
"peerDependencies": {
|
|
36
|
-
"react": "^16.13.1 || ^17.0.0 || ^18.0.0",
|
|
37
|
-
"react-dom": "^16.13.1 || ^17.0.0 || ^18.0.0",
|
|
38
|
-
"@emotion/react": "^11.0.0",
|
|
39
|
-
"@emotion/styled": "^11.0.0"
|
|
40
|
-
},
|
|
41
|
-
"devDependencies": {
|
|
42
|
-
"@rollup/plugin-node-resolve": "^8.0.1",
|
|
43
|
-
"@storybook/addon-docs": "^10.0.2",
|
|
44
|
-
"@storybook/addon-links": "^10.0.2",
|
|
45
|
-
"@storybook/addon-webpack5-compiler-swc": "^4.0.1",
|
|
46
|
-
"@storybook/cli": "^10.0.2",
|
|
47
|
-
"@storybook/react-webpack5": "^10.0.2",
|
|
48
|
-
"@swc/plugin-emotion": "^12.0.0",
|
|
49
|
-
"@types/react": "^18.3.12",
|
|
50
|
-
"@types/react-dom": "^18.3.1",
|
|
51
|
-
"react": "^18.3.1",
|
|
52
|
-
"react-dom": "^18.3.1",
|
|
53
|
-
"remark-gfm": "^4.0.1",
|
|
54
|
-
"rollup": "^4.52.5",
|
|
55
|
-
"rollup-plugin-commonjs": "^10.1.0",
|
|
56
|
-
"rollup-plugin-node-resolve": "^5.2.0",
|
|
57
|
-
"rollup-plugin-peer-deps-external": "^2.2.4",
|
|
58
|
-
"rollup-plugin-typescript2": "^0.36.0",
|
|
59
|
-
"shx": "^0.3.2",
|
|
60
|
-
"storybook": "^10.0.2",
|
|
61
|
-
"tslib": "^2.0.0",
|
|
62
|
-
"typescript": "^5.7.2"
|
|
63
|
-
},
|
|
64
|
-
"dependencies": {
|
|
65
|
-
"@emotion/react": "^11.13.5",
|
|
66
|
-
"@emotion/styled": "^11.13.5",
|
|
67
|
-
"prop-types": "^15.7.2"
|
|
68
|
-
},
|
|
69
|
-
"bit": {
|
|
70
|
-
"env": {
|
|
71
|
-
"compiler": "bit.envs/compilers/react-typescript@3.1.53"
|
|
2
|
+
"name": "no-frills-ui",
|
|
3
|
+
"version": "0.0.14-alpha.3",
|
|
4
|
+
"description": "React components that are made of styled native components. Mostly!",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"module": "lib-esm/index.js",
|
|
7
|
+
"jsnext:main": "lib-esm/index.js",
|
|
8
|
+
"types": "lib-esm/index.d.ts",
|
|
9
|
+
"sideEffects": false,
|
|
10
|
+
"files": [
|
|
11
|
+
"dist",
|
|
12
|
+
"lib-esm"
|
|
13
|
+
],
|
|
14
|
+
"scripts": {
|
|
15
|
+
"clean": "shx rm -rf dist lib-esm",
|
|
16
|
+
"build": "tsc && rollup -c",
|
|
17
|
+
"test": "echo \"Warning: No tests implemented yet\" && exit 0",
|
|
18
|
+
"lint": "eslint . --ext .js,.jsx,.mjs,.ts,.tsx",
|
|
19
|
+
"lint:fix": "eslint . --ext .js,.jsx,.mjs,.ts,.tsx --fix",
|
|
20
|
+
"format": "prettier --write \"**/*.{js,jsx,mjs,ts,tsx,html,json,md,mdx,yml,yaml}\"",
|
|
21
|
+
"format:check": "prettier --check \"**/*.{js,jsx,mjs,ts,tsx,html,json,md,mdx,yml,yaml}\"",
|
|
22
|
+
"storybook": "storybook dev -p 6006",
|
|
23
|
+
"build-storybook": "storybook build",
|
|
24
|
+
"prepare": "husky && npm run clean && npm run build"
|
|
72
25
|
},
|
|
73
|
-
"
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
26
|
+
"repository": {
|
|
27
|
+
"type": "git",
|
|
28
|
+
"url": "git+https://github.com/pushkar8723/no-frills-ui.git"
|
|
29
|
+
},
|
|
30
|
+
"keywords": [
|
|
31
|
+
"React"
|
|
32
|
+
],
|
|
33
|
+
"author": "pushkar8723@gmail.com",
|
|
34
|
+
"license": "MIT",
|
|
35
|
+
"bugs": {
|
|
36
|
+
"url": "https://github.com/pushkar8723/no-frills-ui/issues"
|
|
37
|
+
},
|
|
38
|
+
"homepage": "https://github.com/pushkar8723/no-frills-ui#readme",
|
|
39
|
+
"engines": {
|
|
40
|
+
"node": ">=20.0.0"
|
|
41
|
+
},
|
|
42
|
+
"peerDependencies": {
|
|
43
|
+
"@emotion/react": "^11.0.0",
|
|
44
|
+
"@emotion/styled": "^11.0.0",
|
|
45
|
+
"react": "^18.0.0 || ^19.0.0",
|
|
46
|
+
"react-dom": "^18.0.0 || ^19.0.0"
|
|
47
|
+
},
|
|
48
|
+
"devDependencies": {
|
|
49
|
+
"@rollup/plugin-node-resolve": "^8.0.1",
|
|
50
|
+
"@storybook/addon-docs": "^10.0.2",
|
|
51
|
+
"@storybook/addon-links": "^10.0.2",
|
|
52
|
+
"@storybook/addon-webpack5-compiler-swc": "^4.0.1",
|
|
53
|
+
"@storybook/cli": "^10.0.2",
|
|
54
|
+
"@storybook/react-webpack5": "^10.0.2",
|
|
55
|
+
"@swc/plugin-emotion": "^12.0.0",
|
|
56
|
+
"@types/react": "^18.3.12",
|
|
57
|
+
"@types/react-dom": "^18.3.1",
|
|
58
|
+
"@typescript-eslint/eslint-plugin": "^8",
|
|
59
|
+
"@typescript-eslint/parser": "^8",
|
|
60
|
+
"eslint": "^8",
|
|
61
|
+
"eslint-config-prettier": "^9",
|
|
62
|
+
"eslint-plugin-import": "^2",
|
|
63
|
+
"eslint-plugin-jsx-a11y": "^6",
|
|
64
|
+
"eslint-plugin-prettier": "^5",
|
|
65
|
+
"eslint-plugin-react": "^7",
|
|
66
|
+
"eslint-plugin-react-hooks": "^4",
|
|
67
|
+
"husky": "^9",
|
|
68
|
+
"lint-staged": "^15",
|
|
69
|
+
"prettier": "^3",
|
|
70
|
+
"react": "^18.3.1",
|
|
71
|
+
"react-dom": "^18.3.1",
|
|
72
|
+
"remark-gfm": "^4.0.1",
|
|
73
|
+
"rollup": "^4.52.5",
|
|
74
|
+
"rollup-plugin-commonjs": "^10.1.0",
|
|
75
|
+
"rollup-plugin-node-resolve": "^5.2.0",
|
|
76
|
+
"rollup-plugin-peer-deps-external": "^2.2.4",
|
|
77
|
+
"rollup-plugin-typescript2": "^0.36.0",
|
|
78
|
+
"shx": "^0.3.2",
|
|
79
|
+
"storybook": "^10.0.2",
|
|
80
|
+
"tslib": "^2.0.0",
|
|
81
|
+
"typescript": "^5.7.2"
|
|
82
|
+
},
|
|
83
|
+
"dependencies": {
|
|
84
|
+
"@emotion/react": "^11.13.5",
|
|
85
|
+
"@emotion/styled": "^11.13.5",
|
|
86
|
+
"prop-types": "^15.7.2"
|
|
87
|
+
},
|
|
88
|
+
"bit": {
|
|
89
|
+
"env": {
|
|
90
|
+
"compiler": "bit.envs/compilers/react-typescript@3.1.53"
|
|
91
|
+
},
|
|
92
|
+
"componentsDefaultDirectory": "components/{name}",
|
|
93
|
+
"packageManager": "npm"
|
|
94
|
+
},
|
|
95
|
+
"packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e"
|
|
77
96
|
}
|