@itcase/ui 1.0.4 → 1.0.6
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/components/Avatar.js +56 -31
- package/dist/components/{Counter.js → Badge.js} +7 -7
- package/dist/components/Button.js +55 -56
- package/dist/components/Cell.js +14 -14
- package/dist/components/Checkbox.js +74 -22
- package/dist/components/Chips.js +2 -20
- package/dist/components/Divider.js +17 -1
- package/dist/components/Group.js +13 -1
- package/dist/components/Icon.js +45 -26
- package/dist/components/Input.js +19 -2
- package/dist/components/Label.js +11 -3
- package/dist/components/Logo.js +24 -12
- package/dist/components/MenuItem.js +11 -2
- package/dist/components/Modal.js +219 -41
- package/dist/components/Profile.js +10 -4
- package/dist/components/RadioButton.js +78 -26
- package/dist/components/Scrollbar.js +4 -4
- package/dist/components/Select.js +2 -2
- package/dist/components/Switch.js +2 -1
- package/dist/components/Tab.js +205 -0
- package/dist/components/Text.js +1 -3
- package/dist/components/Textarea.js +9 -1
- package/dist/components/Tile.js +43 -115
- package/dist/css/components/Avatar/Avatar.css +23 -10
- package/dist/css/components/Badge/Badge.css +55 -0
- package/dist/css/components/Button/Button.css +19 -8
- package/dist/css/components/Checkbox/Checkbox.css +60 -63
- package/dist/css/components/Chips/Chips.css +25 -7
- package/dist/css/components/Fader/Fader.css +0 -1
- package/dist/css/components/Icon/Icon.css +4 -4
- package/dist/css/components/Input/Input.css +6 -0
- package/dist/css/components/List/List.css +3 -3
- package/dist/css/components/Logo/Logo.css +23 -0
- package/dist/css/components/{Popup/Popup.css → Modal/Modal.css} +5 -4
- package/dist/css/components/RadioButton/RadioButton.css +60 -59
- package/dist/css/components/Switch/Switch.css +56 -46
- package/dist/css/components/Tab/Tab.css +46 -0
- package/dist/css/components/Tile/Tile.css +27 -10
- package/dist/css/styles/border-color/border-color.css +2 -2
- package/dist/css/styles/border-type/border-type.css +13 -0
- package/dist/css/styles/border-width/border-width.css +7 -0
- package/package.json +2 -1
- package/dist/components/Popup.js +0 -255
- package/dist/css/components/Counter/Counter.css +0 -55
package/dist/components/Group.js
CHANGED
|
@@ -73,11 +73,23 @@ function Group(props) {
|
|
|
73
73
|
prefix: 'width_',
|
|
74
74
|
propsKey: 'width'
|
|
75
75
|
});
|
|
76
|
+
var borderColorClass = useDeviceTargetClass.useDeviceTargetClass(props, {
|
|
77
|
+
prefix: 'border-color_',
|
|
78
|
+
propsKey: 'borderColor'
|
|
79
|
+
});
|
|
80
|
+
var borderWidthClass = useDeviceTargetClass.useDeviceTargetClass(props, {
|
|
81
|
+
prefix: 'border-width_',
|
|
82
|
+
propsKey: 'borderWidth'
|
|
83
|
+
});
|
|
84
|
+
var borderTypeClass = useDeviceTargetClass.useDeviceTargetClass(props, {
|
|
85
|
+
prefix: 'border-type_',
|
|
86
|
+
propsKey: 'borderType'
|
|
87
|
+
});
|
|
76
88
|
var _useStyles = useStyles.useStyles(props),
|
|
77
89
|
groupStyles = _useStyles.styles,
|
|
78
90
|
groupWrapperStyles = _useStyles.wrapper;
|
|
79
91
|
return /*#__PURE__*/React__default.default.createElement("div", {
|
|
80
|
-
className: clsx__default.default(className, 'group', widthClass, columnsClass, contentAlignClass, alignDirectionClass, directionClass, alignClass, fillClass, set && "group_set_" + set, horizontalScroll && 'group_type_horizontal_scroll', stackingClass, wrapClass, shapeClass),
|
|
92
|
+
className: clsx__default.default(className, 'group', widthClass, columnsClass, contentAlignClass, alignDirectionClass, directionClass, alignClass, fillClass, set && "group_set_" + set, horizontalScroll && 'group_type_horizontal_scroll', stackingClass, wrapClass, shapeClass, borderColorClass, borderWidthClass, borderTypeClass),
|
|
81
93
|
id: id,
|
|
82
94
|
style: Object.assign({}, groupStyles, style)
|
|
83
95
|
}, horizontalScroll ? /*#__PURE__*/React__default.default.createElement("div", {
|
package/dist/components/Icon.js
CHANGED
|
@@ -34,14 +34,20 @@ var PropTypes__default = /*#__PURE__*/_interopDefault(PropTypes);
|
|
|
34
34
|
var clsx__default = /*#__PURE__*/_interopDefault(clsx);
|
|
35
35
|
var SVG__default = /*#__PURE__*/_interopDefault(SVG);
|
|
36
36
|
|
|
37
|
+
var iconConfig = {
|
|
38
|
+
appearance: {},
|
|
39
|
+
setAppearance: function setAppearance(newComponent) {
|
|
40
|
+
iconConfig.appearance = newComponent;
|
|
41
|
+
}
|
|
42
|
+
};
|
|
37
43
|
var Icon = /*#__PURE__*/React__default.default.forwardRef(function Icon(props, ref) {
|
|
38
44
|
var before = props.before,
|
|
39
45
|
after = props.after,
|
|
40
|
-
|
|
46
|
+
Badge = props.Badge,
|
|
41
47
|
SvgImage = props.SvgImage,
|
|
42
|
-
imageSrc = props.imageSrc
|
|
43
|
-
|
|
44
|
-
className = props.className,
|
|
48
|
+
imageSrc = props.imageSrc;
|
|
49
|
+
props.simple;
|
|
50
|
+
var className = props.className,
|
|
45
51
|
href = props.href,
|
|
46
52
|
link = props.link,
|
|
47
53
|
linkTarget = props.linkTarget,
|
|
@@ -59,46 +65,58 @@ var Icon = /*#__PURE__*/React__default.default.forwardRef(function Icon(props, r
|
|
|
59
65
|
}
|
|
60
66
|
return sizes;
|
|
61
67
|
}, []);
|
|
62
|
-
var bgFillClass = useDeviceTargetClass.useDeviceTargetClass(props, {
|
|
63
|
-
prefix: 'fill_',
|
|
64
|
-
propsKey: 'bgFill'
|
|
65
|
-
});
|
|
66
68
|
var fillClass = useDeviceTargetClass.useDeviceTargetClass(props, {
|
|
67
|
-
prefix: '
|
|
69
|
+
prefix: 'fill_',
|
|
68
70
|
propsKey: 'fill'
|
|
69
71
|
});
|
|
70
72
|
var fillHoverClass = useDeviceTargetClass.useDeviceTargetClass(props, {
|
|
71
|
-
prefix: '
|
|
73
|
+
prefix: 'fill_hover_',
|
|
72
74
|
propsKey: 'fillHover'
|
|
73
75
|
});
|
|
74
|
-
var
|
|
76
|
+
var fillSizeClass = useDeviceTargetClass.useDeviceTargetClass(props, {
|
|
75
77
|
prefix: 'icon_fill_size_',
|
|
76
|
-
propsKey: '
|
|
78
|
+
propsKey: 'fillSize'
|
|
77
79
|
});
|
|
78
|
-
var
|
|
80
|
+
var iconFillClass = useDeviceTargetClass.useDeviceTargetClass(props, {
|
|
81
|
+
prefix: 'icon_fill_',
|
|
82
|
+
propsKey: 'iconFill'
|
|
83
|
+
});
|
|
84
|
+
var iconFillHoverClass = useDeviceTargetClass.useDeviceTargetClass(props, {
|
|
85
|
+
prefix: 'icon_fill_hover_',
|
|
86
|
+
propsKey: 'iconFillHover'
|
|
87
|
+
});
|
|
88
|
+
var iconStrokeClass = useDeviceTargetClass.useDeviceTargetClass(props, {
|
|
79
89
|
prefix: 'icon_stroke_',
|
|
80
|
-
propsKey: '
|
|
90
|
+
propsKey: 'iconStroke'
|
|
81
91
|
});
|
|
82
|
-
var
|
|
92
|
+
var iconStrokeHoverClass = useDeviceTargetClass.useDeviceTargetClass(props, {
|
|
83
93
|
prefix: 'icon_stroke_hover_',
|
|
84
|
-
propsKey: '
|
|
94
|
+
propsKey: 'iconStrokeHover'
|
|
85
95
|
});
|
|
86
|
-
var
|
|
96
|
+
var iconSizeClass = useDeviceTargetClass.useDeviceTargetClass(props, {
|
|
87
97
|
prefix: 'icon_size_',
|
|
88
|
-
propsKey: '
|
|
98
|
+
propsKey: 'iconSize'
|
|
89
99
|
});
|
|
90
100
|
var shapeClass = useDeviceTargetClass.useDeviceTargetClass(props, {
|
|
91
101
|
prefix: 'icon_shape_',
|
|
92
102
|
propsKey: 'shape'
|
|
93
103
|
});
|
|
94
|
-
var
|
|
104
|
+
var borderColorClass = useDeviceTargetClass.useDeviceTargetClass(props, {
|
|
95
105
|
prefix: 'border-color_',
|
|
96
|
-
propsKey: '
|
|
106
|
+
propsKey: 'borderColor'
|
|
97
107
|
});
|
|
98
|
-
var
|
|
108
|
+
var borderColorHoverClass = useDeviceTargetClass.useDeviceTargetClass(props, {
|
|
99
109
|
prefix: 'border-color_hover_',
|
|
100
110
|
propsKey: 'borderHover'
|
|
101
111
|
});
|
|
112
|
+
var borderWidthClass = useDeviceTargetClass.useDeviceTargetClass(props, {
|
|
113
|
+
prefix: 'border-width_',
|
|
114
|
+
propsKey: 'borderWidth'
|
|
115
|
+
});
|
|
116
|
+
var borderTypeClass = useDeviceTargetClass.useDeviceTargetClass(props, {
|
|
117
|
+
prefix: 'border-type_',
|
|
118
|
+
propsKey: 'borderType'
|
|
119
|
+
});
|
|
102
120
|
var _useStyles = useStyles.useStyles(props),
|
|
103
121
|
iconStyles = _useStyles.styles;
|
|
104
122
|
var ImageComponent = React.useMemo(function () {
|
|
@@ -119,17 +137,17 @@ var Icon = /*#__PURE__*/React__default.default.forwardRef(function Icon(props, r
|
|
|
119
137
|
return null;
|
|
120
138
|
}, [SvgImage, imageSrc]);
|
|
121
139
|
return /*#__PURE__*/React__default.default.createElement("div", {
|
|
122
|
-
className: clsx__default.default(className, 'icon',
|
|
140
|
+
className: clsx__default.default(className, 'icon', fillClass, fillHoverClass, fillSizeClass, iconFillClass, iconFillHoverClass, shapeClass, iconStrokeClass, iconStrokeHoverClass, borderColorClass, borderColorHoverClass, borderWidthClass, borderTypeClass, Badge && 'icon_type_with-badge', (link || href || onClick) && 'cursor_type_pointer'),
|
|
123
141
|
ref: ref,
|
|
124
142
|
style: iconStyles,
|
|
125
143
|
onClick: onClick
|
|
126
144
|
}, /*#__PURE__*/React__default.default.createElement(index.LinkWrapper, {
|
|
145
|
+
className: clsx__default.default(link || href ? 'icon__link' : 'icon__item', iconSizeClass),
|
|
146
|
+
DefaultComponent: "div",
|
|
127
147
|
href: link || href,
|
|
128
|
-
target: linkTarget,
|
|
129
148
|
rel: linkRel,
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
}, before, ImageComponent, after, Counter));
|
|
149
|
+
target: linkTarget
|
|
150
|
+
}, before, ImageComponent, after, Badge));
|
|
133
151
|
});
|
|
134
152
|
Icon.propTypes = {
|
|
135
153
|
SvgImage: PropTypes__default.default.oneOfType([PropTypes__default.default.element, PropTypes__default.default.func, PropTypes__default.default.object]),
|
|
@@ -182,3 +200,4 @@ function removeFillStroke(code) {
|
|
|
182
200
|
}
|
|
183
201
|
|
|
184
202
|
exports.Icon = Icon;
|
|
203
|
+
exports.iconConfig = iconConfig;
|
package/dist/components/Input.js
CHANGED
|
@@ -16,8 +16,16 @@ var React__default = /*#__PURE__*/_interopDefault(React);
|
|
|
16
16
|
var PropTypes__default = /*#__PURE__*/_interopDefault(PropTypes);
|
|
17
17
|
var clsx__default = /*#__PURE__*/_interopDefault(clsx);
|
|
18
18
|
|
|
19
|
+
var inputConfig = {
|
|
20
|
+
state: {},
|
|
21
|
+
setState: function setState(newComponent) {
|
|
22
|
+
inputConfig.state = newComponent;
|
|
23
|
+
}
|
|
24
|
+
};
|
|
19
25
|
function Input(props) {
|
|
20
|
-
var
|
|
26
|
+
var _inputConfig$state$st, _inputConfig$state$st2, _inputConfig$state$st3;
|
|
27
|
+
var state = props.state,
|
|
28
|
+
id = props.id,
|
|
21
29
|
type = props.type,
|
|
22
30
|
className = props.className,
|
|
23
31
|
placeholder = props.placeholder,
|
|
@@ -58,12 +66,20 @@ function Input(props) {
|
|
|
58
66
|
prefix: 'text-weight_',
|
|
59
67
|
propsKey: 'textWeight'
|
|
60
68
|
});
|
|
69
|
+
var borderWidthClass = useDeviceTargetClass.useDeviceTargetClass(props, {
|
|
70
|
+
prefix: 'border-width_',
|
|
71
|
+
propsKey: 'borderWidth'
|
|
72
|
+
});
|
|
73
|
+
var borderColorClass = useDeviceTargetClass.useDeviceTargetClass(props, {
|
|
74
|
+
prefix: 'border-color_',
|
|
75
|
+
propsKey: 'borderColor'
|
|
76
|
+
});
|
|
61
77
|
var widthClass = useDeviceTargetClass.useDeviceTargetClass(props, {
|
|
62
78
|
prefix: 'width_',
|
|
63
79
|
propsKey: 'width'
|
|
64
80
|
});
|
|
65
81
|
return /*#__PURE__*/React__default.default.createElement("input", {
|
|
66
|
-
className: clsx__default.default(className, 'input', (textSizeClass || textColorClass || weightClass) && 'text', caretClass, fillClass, placeholderClass, shapeClass, textSizeClass, textColorClass, weightClass, widthClass, sizeClass),
|
|
82
|
+
className: clsx__default.default(className, 'input', (textSizeClass || textColorClass || weightClass) && 'text', caretClass, fillClass, placeholderClass, shapeClass, textSizeClass, textColorClass, weightClass, widthClass, borderWidthClass, borderColorClass, sizeClass, ((_inputConfig$state$st = inputConfig.state[state]) == null ? void 0 : _inputConfig$state$st.fillClass) && ("fill_" + inputConfig.state[state].fillClass).replace(/([A-Z])/g, '-$1').toLowerCase(), ((_inputConfig$state$st2 = inputConfig.state[state]) == null ? void 0 : _inputConfig$state$st2.borderColor) && ("border-color_" + inputConfig.state[state].borderColor).replace(/([A-Z])/g, '-$1').toLowerCase(), ((_inputConfig$state$st3 = inputConfig.state[state]) == null ? void 0 : _inputConfig$state$st3.shape) && "shape_" + inputConfig.state[state].shape),
|
|
67
83
|
type: type,
|
|
68
84
|
id: id,
|
|
69
85
|
disabled: disabled,
|
|
@@ -92,3 +108,4 @@ Input.defaultProps = {
|
|
|
92
108
|
};
|
|
93
109
|
|
|
94
110
|
exports.Input = Input;
|
|
111
|
+
exports.inputConfig = inputConfig;
|
package/dist/components/Label.js
CHANGED
|
@@ -31,8 +31,15 @@ var React__default = /*#__PURE__*/_interopDefault(React);
|
|
|
31
31
|
var PropTypes__default = /*#__PURE__*/_interopDefault(PropTypes);
|
|
32
32
|
var clsx__default = /*#__PURE__*/_interopDefault(clsx);
|
|
33
33
|
|
|
34
|
+
var labelConfig = {
|
|
35
|
+
appearance: {},
|
|
36
|
+
setAppearance: function setAppearance(newComponent) {
|
|
37
|
+
labelConfig.appearance = newComponent;
|
|
38
|
+
}
|
|
39
|
+
};
|
|
34
40
|
function Label(props) {
|
|
35
|
-
var
|
|
41
|
+
var appearance = props.appearance,
|
|
42
|
+
children = props.children,
|
|
36
43
|
className = props.className,
|
|
37
44
|
label = props.label,
|
|
38
45
|
labelTextSize = props.labelTextSize,
|
|
@@ -71,13 +78,13 @@ function Label(props) {
|
|
|
71
78
|
var _useStyles = useStyles.useStyles(props),
|
|
72
79
|
labelStyles = _useStyles.styles;
|
|
73
80
|
return /*#__PURE__*/React__default.default.createElement("div", {
|
|
74
|
-
className: clsx__default.default(className, 'label', fillClass, shapeClass, borderClass, borderTypeClass, sizeClass, alignDirectionClass, alignClass, type && "label_type_" + type, set && "label_set_" + set),
|
|
81
|
+
className: clsx__default.default(className, 'label', fillClass || appearance && ("fill_" + labelConfig.appearance[appearance].fillClass).replace(/([A-Z])/g, '-$1').toLowerCase(), shapeClass, borderClass, borderTypeClass, sizeClass, alignDirectionClass, alignClass, type && "label_type_" + type, set && "label_set_" + set),
|
|
75
82
|
style: labelStyles
|
|
76
83
|
}, /*#__PURE__*/React__default.default.createElement("div", {
|
|
77
84
|
className: "label__inner"
|
|
78
85
|
}, typeof label === 'string' ? /*#__PURE__*/React__default.default.createElement(index.Text, {
|
|
79
86
|
className: "label__label",
|
|
80
|
-
textColor: labelTextColor,
|
|
87
|
+
textColor: labelTextColor || appearance && labelConfig.appearance[appearance].labelTextColor.replace(/([A-Z])/g, '-$1').toLowerCase(),
|
|
81
88
|
size: labelTextSize,
|
|
82
89
|
textWrap: labelTextWrap
|
|
83
90
|
}, label) : /*#__PURE__*/React__default.default.createElement("div", {
|
|
@@ -124,3 +131,4 @@ Label.defaultProps = {
|
|
|
124
131
|
};
|
|
125
132
|
|
|
126
133
|
exports.Label = Label;
|
|
134
|
+
exports.labelConfig = labelConfig;
|
package/dist/components/Logo.js
CHANGED
|
@@ -21,24 +21,35 @@ var PropTypes__default = /*#__PURE__*/_interopDefault(PropTypes);
|
|
|
21
21
|
var clsx__default = /*#__PURE__*/_interopDefault(clsx);
|
|
22
22
|
|
|
23
23
|
function Logo(props) {
|
|
24
|
-
var
|
|
25
|
-
|
|
26
|
-
props.
|
|
27
|
-
|
|
24
|
+
var className = props.className,
|
|
25
|
+
LinkComponent = props.LinkComponent,
|
|
26
|
+
size = props.size,
|
|
27
|
+
link = props.link,
|
|
28
|
+
href = props.href,
|
|
29
|
+
target = props.target,
|
|
30
|
+
rel = props.rel,
|
|
31
|
+
source = props.source,
|
|
32
|
+
src = props.src;
|
|
28
33
|
var alignItemsClass = useDeviceTargetClass.useDeviceTargetClass(props, {
|
|
29
34
|
prefix: 'logo_align-items_',
|
|
30
35
|
propsKey: 'alignItems'
|
|
31
36
|
});
|
|
32
37
|
var _useStyles = useStyles.useStyles(props),
|
|
33
|
-
logo = _useStyles.styles
|
|
34
|
-
logoStyles = _useStyles.logo;
|
|
38
|
+
logo = _useStyles.styles;
|
|
35
39
|
return /*#__PURE__*/React__default.default.createElement("div", {
|
|
36
|
-
className: clsx__default.default(className, 'logo', alignItemsClass),
|
|
40
|
+
className: clsx__default.default(className, 'logo', alignItemsClass, size && "logo_size_" + size),
|
|
37
41
|
style: logo
|
|
38
|
-
},
|
|
39
|
-
className:
|
|
40
|
-
|
|
41
|
-
|
|
42
|
+
}, link || href ? /*#__PURE__*/React__default.default.createElement(LinkComponent, {
|
|
43
|
+
className: 'logo__link',
|
|
44
|
+
href: link || href,
|
|
45
|
+
target: target,
|
|
46
|
+
rel: rel
|
|
47
|
+
}, /*#__PURE__*/React__default.default.createElement("img", {
|
|
48
|
+
className: "logo__image",
|
|
49
|
+
src: src || source
|
|
50
|
+
})) : /*#__PURE__*/React__default.default.createElement("img", {
|
|
51
|
+
className: "logo__image",
|
|
52
|
+
src: src || source
|
|
42
53
|
}));
|
|
43
54
|
}
|
|
44
55
|
Logo.propTypes = {
|
|
@@ -46,8 +57,9 @@ Logo.propTypes = {
|
|
|
46
57
|
className: PropTypes__default.default.string,
|
|
47
58
|
isLink: PropTypes__default.default.bool,
|
|
48
59
|
logoSrc: PropTypes__default.default.string,
|
|
49
|
-
LinkComponent: PropTypes__default.default.any,
|
|
50
60
|
href: PropTypes__default.default.string,
|
|
61
|
+
src: PropTypes__default.default.string,
|
|
62
|
+
source: PropTypes__default.default.string,
|
|
51
63
|
link: PropTypes__default.default.string,
|
|
52
64
|
target: PropTypes__default.default.string,
|
|
53
65
|
rel: PropTypes__default.default.string
|
|
@@ -33,8 +33,16 @@ var React__default = /*#__PURE__*/_interopDefault(React);
|
|
|
33
33
|
var PropTypes__default = /*#__PURE__*/_interopDefault(PropTypes);
|
|
34
34
|
var clsx__default = /*#__PURE__*/_interopDefault(clsx);
|
|
35
35
|
|
|
36
|
+
var menuItemConfig = {
|
|
37
|
+
appearance: {},
|
|
38
|
+
setAppearance: function setAppearance(newComponent) {
|
|
39
|
+
menuItemConfig.appearance = newComponent;
|
|
40
|
+
}
|
|
41
|
+
};
|
|
36
42
|
function MenuItem(props) {
|
|
37
43
|
var isActive = props.isActive,
|
|
44
|
+
isHover = props.isHover,
|
|
45
|
+
appearance = props.appearance,
|
|
38
46
|
after = props.after,
|
|
39
47
|
before = props.before,
|
|
40
48
|
children = props.children,
|
|
@@ -122,7 +130,7 @@ function MenuItem(props) {
|
|
|
122
130
|
var _useStyles = useStyles.useStyles(props),
|
|
123
131
|
menuItem = _useStyles.styles;
|
|
124
132
|
return /*#__PURE__*/React__default.default.createElement("div", {
|
|
125
|
-
className: clsx__default.default('menu-item', isActive && 'menu-item_state_active', directionClass, className, sizeClass, fillClass, fillHoverClass, fillActiveClass, fillActiveHoverClass, fillDisabledClass, shapeClass, typeClass, widthClass, set && "menu-item_set_" + set, justifyContentClass),
|
|
133
|
+
className: clsx__default.default('menu-item', isActive && 'menu-item_state_active', isHover && 'menu-item_state_hover', directionClass, className, sizeClass, fillClass || appearance && ("fill_" + menuItemConfig.appearance[appearance].fillClass).replace(/([A-Z])/g, '-$1').toLowerCase(), fillHoverClass, fillActiveClass, fillActiveHoverClass, fillDisabledClass, shapeClass, typeClass, widthClass, set && "menu-item_set_" + set, justifyContentClass),
|
|
126
134
|
style: menuItem,
|
|
127
135
|
onClick: onClick,
|
|
128
136
|
onMouseEnter: onMouseEnter
|
|
@@ -139,7 +147,7 @@ function MenuItem(props) {
|
|
|
139
147
|
textGradient: textGradient,
|
|
140
148
|
size: textSize,
|
|
141
149
|
textWeight: textWeight,
|
|
142
|
-
textColor: textColor,
|
|
150
|
+
textColor: textColor || appearance && menuItemConfig.appearance[appearance].textColor.replace(/([A-Z])/g, '-$1').toLowerCase(),
|
|
143
151
|
textWrap: textWrap,
|
|
144
152
|
textColorHover: textColorHover,
|
|
145
153
|
textStyle: textStyle
|
|
@@ -207,3 +215,4 @@ MenuItem.defaultProps = {
|
|
|
207
215
|
};
|
|
208
216
|
|
|
209
217
|
exports.MenuItem = MenuItem;
|
|
218
|
+
exports.menuItemConfig = menuItemConfig;
|
package/dist/components/Modal.js
CHANGED
|
@@ -2,68 +2,246 @@
|
|
|
2
2
|
|
|
3
3
|
var React = require('react');
|
|
4
4
|
var PropTypes = require('prop-types');
|
|
5
|
-
var
|
|
5
|
+
var require$$2 = require('react-dom');
|
|
6
6
|
var clsx = require('clsx');
|
|
7
|
+
require('./Icon.js');
|
|
8
|
+
require('./Text.js');
|
|
9
|
+
var index = require('./Fader.js');
|
|
10
|
+
require('lodash/camelCase');
|
|
11
|
+
require('lodash/maxBy');
|
|
12
|
+
require('lodash/upperFirst');
|
|
13
|
+
require('../context/UIContext.js');
|
|
14
|
+
var useDeviceTargetClass = require('../hooks/useDeviceTargetClass.js');
|
|
15
|
+
var index$1 = require('./Loader.js');
|
|
16
|
+
require('react-inlinesvg');
|
|
17
|
+
require('../constants/componentProps/fill.js');
|
|
18
|
+
require('../constants/componentProps/iconSize.js');
|
|
19
|
+
require('../constants/componentProps/shape.js');
|
|
20
|
+
require('../constants/componentProps/strokeColor.js');
|
|
21
|
+
require('./Link.js');
|
|
22
|
+
require('../useStyles-e4accb53.js');
|
|
23
|
+
require('../hooks/styleAttributes.js');
|
|
24
|
+
require('../constants/componentProps/size.js');
|
|
25
|
+
require('../constants/componentProps/textColor.js');
|
|
26
|
+
require('../constants/componentProps/textGradient.js');
|
|
27
|
+
require('../constants/componentProps/textStyle.js');
|
|
28
|
+
require('../constants/componentProps/textWeight.js');
|
|
29
|
+
require('../constants/componentProps/type.js');
|
|
30
|
+
require('../constants/componentProps/underline.js');
|
|
31
|
+
require('../hooks/useMediaQueries.js');
|
|
32
|
+
require('react-responsive');
|
|
33
|
+
require('lodash/castArray');
|
|
34
|
+
require('../constants/componentProps/textColorActive.js');
|
|
35
|
+
require('../constants/componentProps/textColorHover.js');
|
|
36
|
+
require('../constants/componentProps/fillGradient.js');
|
|
7
37
|
|
|
8
38
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
39
|
|
|
10
40
|
var React__default = /*#__PURE__*/_interopDefault(React);
|
|
11
41
|
var PropTypes__default = /*#__PURE__*/_interopDefault(PropTypes);
|
|
12
|
-
var
|
|
42
|
+
var require$$2__default = /*#__PURE__*/_interopDefault(require$$2);
|
|
13
43
|
var clsx__default = /*#__PURE__*/_interopDefault(clsx);
|
|
14
44
|
|
|
15
|
-
var
|
|
45
|
+
var getOrCreateModalElement = function getOrCreateModalElement(modalQuerySelector, className) {
|
|
46
|
+
if (className === void 0) {
|
|
47
|
+
className = '';
|
|
48
|
+
}
|
|
49
|
+
// prettier-ignore
|
|
50
|
+
var classList = className && typeof className === 'string' ? className.split(' ').filter(Boolean) : [];
|
|
51
|
+
var modalElement = document.querySelector(modalQuerySelector);
|
|
52
|
+
if (!modalElement) {
|
|
53
|
+
// Add modal element into the DOM on mount.
|
|
54
|
+
modalElement = document.createElement('div');
|
|
55
|
+
modalElement.setAttribute('id', 'modal-global');
|
|
56
|
+
modalElement.classList.add('modal');
|
|
57
|
+
if (classList.length) {
|
|
58
|
+
var _modalElement$classLi;
|
|
59
|
+
(_modalElement$classLi = modalElement.classList).add.apply(_modalElement$classLi, classList);
|
|
60
|
+
}
|
|
61
|
+
document.body.prepend(modalElement);
|
|
62
|
+
}
|
|
63
|
+
return modalElement;
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
// Modal component that is an abstraction around the portal API.
|
|
67
|
+
var Modal = /*#__PURE__*/React__default.default.forwardRef(function Modal(props, ref) {
|
|
16
68
|
var children = props.children,
|
|
17
69
|
className = props.className,
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
70
|
+
closeButton = props.closeButton,
|
|
71
|
+
contentClassName = props.contentClassName,
|
|
72
|
+
id = props.id,
|
|
73
|
+
isFader = props.isFader,
|
|
74
|
+
faderFill = props.faderFill,
|
|
75
|
+
faderFillGradient = props.faderFillGradient,
|
|
76
|
+
faderOpacity = props.faderOpacity,
|
|
77
|
+
initialIsOpen = props.isOpen,
|
|
78
|
+
isScrollOnOpen = props.isScrollOnOpen,
|
|
79
|
+
isSetFocusOnOpen = props.isSetFocusOnOpen,
|
|
80
|
+
modalQuerySelector = props.modalQuerySelector,
|
|
81
|
+
isOutsideClose = props.isOutsideClose,
|
|
82
|
+
onCloseModal = props.onCloseModal,
|
|
83
|
+
onOpenModal = props.onOpenModal;
|
|
84
|
+
|
|
85
|
+
// Query DOM element
|
|
86
|
+
var _useState = React.useState(null),
|
|
87
|
+
modalElement = _useState[0],
|
|
88
|
+
setModalElement = _useState[1];
|
|
89
|
+
React.useLayoutEffect(function () {
|
|
90
|
+
var element = getOrCreateModalElement(modalQuerySelector, className);
|
|
91
|
+
setModalElement(element);
|
|
92
|
+
if (element) {
|
|
93
|
+
addModalProps(element);
|
|
94
|
+
}
|
|
95
|
+
}, []);
|
|
96
|
+
var modalContentRef = React.useRef(null);
|
|
97
|
+
var modalFaderRef = React.useRef(null);
|
|
98
|
+
var _useState2 = React.useState(initialIsOpen),
|
|
99
|
+
isOpen = _useState2[0],
|
|
100
|
+
setIsOpen = _useState2[1];
|
|
101
|
+
var addModalProps = React.useCallback(function (element) {
|
|
102
|
+
// Change class need in "useEffect"
|
|
103
|
+
if (isOpen) {
|
|
104
|
+
// Show modal
|
|
105
|
+
element.classList.add('modal_state_visible');
|
|
106
|
+
// Scroll to opened modal
|
|
107
|
+
if (isScrollOnOpen) {
|
|
108
|
+
// modalContentRef.current.style.top = `${window.visualViewport.pageTop}px`
|
|
109
|
+
element.scrollIntoView({
|
|
110
|
+
block: 'center',
|
|
111
|
+
behavior: 'smooth'
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
// "setTimeout" in this implementation is needs for set focus on modal
|
|
116
|
+
// after "onMouseDown" event on button
|
|
117
|
+
if (isSetFocusOnOpen) {
|
|
118
|
+
setTimeout(function () {
|
|
119
|
+
return modalContentRef.current.focus();
|
|
120
|
+
}, 0);
|
|
121
|
+
}
|
|
122
|
+
} else if (!element.children.length) {
|
|
123
|
+
// Hide modal if has no children
|
|
124
|
+
element.classList.remove('modal_state_visible');
|
|
125
|
+
}
|
|
126
|
+
}, [isOpen, isSetFocusOnOpen]);
|
|
127
|
+
React.useEffect(function () {
|
|
128
|
+
if (!modalElement) {
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
addModalProps(modalElement);
|
|
132
|
+
}, [isOpen]); // eslint-disable-line
|
|
133
|
+
|
|
134
|
+
// Show modal with children content
|
|
135
|
+
var openModal = React.useCallback(function () {
|
|
29
136
|
setIsOpen(true);
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
137
|
+
|
|
138
|
+
// Callback
|
|
139
|
+
if (typeof onOpenModal === 'function') {
|
|
140
|
+
onOpenModal();
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/* SHOW TARGET POPUP ABOVE OTHERS POPUPS IF TARGET ALREADY OPENED
|
|
144
|
+
// If current modal is already opened
|
|
145
|
+
// Move content to end of modal root container. For order in DOM.
|
|
146
|
+
const modalContentElement = modalContentRef.current
|
|
147
|
+
if (modalContentElement) {
|
|
148
|
+
modalContentElement.parentNode.appendChild(modalContentElement)
|
|
149
|
+
}
|
|
150
|
+
// Also move fader to end of modal root container after container
|
|
151
|
+
const modalFaderElement = modalFaderRef.current
|
|
152
|
+
if (modalFaderElement) {
|
|
153
|
+
modalFaderElement.parentNode.appendChild(modalFaderElement)
|
|
154
|
+
}
|
|
155
|
+
*/
|
|
156
|
+
}, [onOpenModal]);
|
|
157
|
+
|
|
158
|
+
// Hide modal and unmount children content
|
|
159
|
+
var closeModal = React.useCallback(function (event) {
|
|
160
|
+
if (event === void 0) {
|
|
161
|
+
event = {};
|
|
162
|
+
}
|
|
163
|
+
var hasRelatedTarget = event.relatedTarget && modalElement.contains(event.relatedTarget);
|
|
164
|
+
if (hasRelatedTarget) {
|
|
165
|
+
return event;
|
|
166
|
+
}
|
|
33
167
|
setIsOpen(false);
|
|
34
|
-
|
|
35
|
-
|
|
168
|
+
|
|
169
|
+
// Callback
|
|
170
|
+
if (typeof onCloseModal === 'function') {
|
|
171
|
+
onCloseModal();
|
|
172
|
+
}
|
|
173
|
+
}, [modalElement, onCloseModal]);
|
|
174
|
+
|
|
175
|
+
// Save ref things
|
|
36
176
|
React.useImperativeHandle(ref, function () {
|
|
37
177
|
return {
|
|
38
178
|
isOpen: isOpen,
|
|
39
|
-
|
|
40
|
-
|
|
179
|
+
openModal: openModal,
|
|
180
|
+
closeModal: closeModal,
|
|
181
|
+
modalElement: modalElement
|
|
41
182
|
};
|
|
42
183
|
});
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
return /*#__PURE__*/
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
},
|
|
184
|
+
var contentFillClass = useDeviceTargetClass.useDeviceTargetClass(props, {
|
|
185
|
+
prefix: 'fill_',
|
|
186
|
+
propsKey: 'contentFill'
|
|
187
|
+
});
|
|
188
|
+
|
|
189
|
+
// Use a portal to render the children into the element
|
|
190
|
+
return modalElement && /*#__PURE__*/require$$2__default.default.createPortal(
|
|
191
|
+
// Any valid React child: JSX, strings, arrays, etc.
|
|
192
|
+
isOpen ? /*#__PURE__*/React__default.default.createElement(React__default.default.Fragment, null, /*#__PURE__*/React__default.default.createElement("div", {
|
|
193
|
+
className: clsx__default.default('modal-content', contentClassName, contentFillClass),
|
|
194
|
+
id: id,
|
|
195
|
+
ref: modalContentRef,
|
|
196
|
+
tabIndex: 0,
|
|
197
|
+
onBlur: isOutsideClose ? undefined : closeModal
|
|
198
|
+
}, closeButton && /*#__PURE__*/React__default.default.createElement("div", {
|
|
199
|
+
className: "modal-content__close",
|
|
200
|
+
onClick: closeModal
|
|
201
|
+
}, closeButton), children), /*#__PURE__*/React__default.default.createElement(index.Fader, {
|
|
202
|
+
ref: modalFaderRef,
|
|
203
|
+
fill: faderFill,
|
|
204
|
+
fillGradient: faderFillGradient,
|
|
205
|
+
opacity: faderOpacity,
|
|
206
|
+
className: "modal__fader",
|
|
207
|
+
isFader: isFader
|
|
208
|
+
})) : null,
|
|
209
|
+
// A DOM element
|
|
210
|
+
modalElement);
|
|
58
211
|
});
|
|
59
212
|
Modal.propTypes = {
|
|
60
213
|
children: PropTypes__default.default.any,
|
|
61
214
|
className: PropTypes__default.default.string,
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
215
|
+
closeIcon: PropTypes__default.default.string,
|
|
216
|
+
closeText: PropTypes__default.default.string,
|
|
217
|
+
faderFill: PropTypes__default.default.string,
|
|
218
|
+
faderFillGradient: PropTypes__default.default.string,
|
|
219
|
+
faderOpacity: PropTypes__default.default.string,
|
|
220
|
+
contentClassName: PropTypes__default.default.string,
|
|
221
|
+
id: PropTypes__default.default.string,
|
|
222
|
+
isFader: PropTypes__default.default.bool,
|
|
223
|
+
isScrollOnOpen: PropTypes__default.default.bool,
|
|
224
|
+
isSetFocusOnOpen: PropTypes__default.default.bool,
|
|
225
|
+
modalQuerySelector: PropTypes__default.default.string,
|
|
226
|
+
isOutsideClose: PropTypes__default.default.bool,
|
|
227
|
+
onCloseModal: PropTypes__default.default.func,
|
|
228
|
+
onOpenModal: PropTypes__default.default.func
|
|
229
|
+
};
|
|
230
|
+
Modal.defaultProps = {
|
|
231
|
+
isFader: true,
|
|
232
|
+
isOpen: false,
|
|
233
|
+
isScrollOnOpen: true,
|
|
234
|
+
isSetFocusOnOpen: true,
|
|
235
|
+
modalQuerySelector: '#modal-global'
|
|
66
236
|
};
|
|
67
|
-
|
|
237
|
+
|
|
238
|
+
function ModalLoader(props) {
|
|
239
|
+
return /*#__PURE__*/React__default.default.createElement("div", {
|
|
240
|
+
className: "modal-loading"
|
|
241
|
+
}, /*#__PURE__*/React__default.default.createElement("div", {
|
|
242
|
+
className: "modal-loading__inner"
|
|
243
|
+
}, /*#__PURE__*/React__default.default.createElement(index$1.Loader, null)));
|
|
244
|
+
}
|
|
68
245
|
|
|
69
246
|
exports.Modal = Modal;
|
|
247
|
+
exports.ModalLoader = ModalLoader;
|
|
@@ -24,16 +24,22 @@ require('../context/UIContext.js');
|
|
|
24
24
|
require('../hooks/useMediaQueries.js');
|
|
25
25
|
require('react-responsive');
|
|
26
26
|
require('lodash/castArray');
|
|
27
|
+
require('./Icon.js');
|
|
28
|
+
require('react-inlinesvg');
|
|
29
|
+
require('../constants/componentProps/iconSize.js');
|
|
30
|
+
require('../constants/componentProps/strokeColor.js');
|
|
31
|
+
require('./Link.js');
|
|
27
32
|
require('../constants/componentProps/size.js');
|
|
28
33
|
require('../constants/componentProps/textColor.js');
|
|
29
|
-
require('../constants/componentProps/
|
|
30
|
-
require('../constants/componentProps/textColorHover.js');
|
|
34
|
+
require('../constants/componentProps/textGradient.js');
|
|
31
35
|
require('../constants/componentProps/textStyle.js');
|
|
32
36
|
require('../constants/componentProps/textWeight.js');
|
|
37
|
+
require('../constants/componentProps/type.js');
|
|
38
|
+
require('../constants/componentProps/underline.js');
|
|
39
|
+
require('../constants/componentProps/textColorActive.js');
|
|
40
|
+
require('../constants/componentProps/textColorHover.js');
|
|
33
41
|
require('../constants/componentProps/textAlign.js');
|
|
34
|
-
require('../constants/componentProps/textGradient.js');
|
|
35
42
|
require('../constants/componentProps/titleSize.js');
|
|
36
|
-
require('../constants/componentProps/type.js');
|
|
37
43
|
require('../constants/componentProps/wrap.js');
|
|
38
44
|
|
|
39
45
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|