@itcase/ui 1.0.15 → 1.0.16

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.
@@ -10,8 +10,9 @@ var shape = require('../constants/componentProps/shape.js');
10
10
  var size = require('../constants/componentProps/size.js');
11
11
  var type = require('../constants/componentProps/type.js');
12
12
  var width = require('../constants/componentProps/width.js');
13
- var index$1 = require('./Icon.js');
14
- var index$2 = require('./Text.js');
13
+ var index$2 = require('./Icon.js');
14
+ var index$3 = require('./Text.js');
15
+ var index$1 = require('./Loader.js');
15
16
  var index = require('./Link.js');
16
17
  var useDeviceTargetClass = require('../hooks/useDeviceTargetClass.js');
17
18
  var useStyles = require('../useStyles-e4accb53.js');
@@ -59,6 +60,9 @@ function Button(props) {
59
60
  label = props.label,
60
61
  labelTextColor = props.labelTextColor,
61
62
  labelTextSize = props.labelTextSize,
63
+ loaderSet = props.loaderSet,
64
+ loaderFill = props.loaderFill,
65
+ loaderItemFill = props.loaderItemFill,
62
66
  link = props.link,
63
67
  href = props.href,
64
68
  target = props.target,
@@ -73,6 +77,7 @@ function Button(props) {
73
77
  iconAfterFill = props.iconAfterFill,
74
78
  iconAfterStroke = props.iconAfterStroke,
75
79
  type = props.type,
80
+ loading = props.loading,
76
81
  htmlType = props.htmlType,
77
82
  isDisabled = props.isDisabled,
78
83
  onClick = props.onClick,
@@ -116,8 +121,9 @@ function Button(props) {
116
121
  var _useStyles = useStyles.useStyles(props),
117
122
  buttonStyles = _useStyles.styles,
118
123
  labelStyles = _useStyles.label;
124
+ console.log(isDisabled);
119
125
  return /*#__PURE__*/React__default.default.createElement(index.LinkWrapper, {
120
- className: clsx__default.default(className, 'button', type && "button_type_" + type, borderWidthClass, borderColorClass, borderTypeClass, fillClass, fillHoverClass, shapeClass, sizeClass, widthClass, elevationClass, Badge && 'button_type_badge', !label && (iconBefore || iconAfter || icon) && 'button_type_icon', label && (iconBefore || iconAfter || before || after) && "button_type_with-icon button_type_with-icon_" + size),
126
+ className: clsx__default.default(className, 'button', type && "button_type_" + type, borderWidthClass, borderColorClass, borderTypeClass, fillClass, fillHoverClass, shapeClass, sizeClass, widthClass, elevationClass, Badge && 'button_type_badge', loading && 'button_state_loading', !label && (iconBefore || iconAfter || icon) && 'button_type_icon', label && (iconBefore || iconAfter || before || after) && "button_type_with-icon button_type_with-icon_" + size),
121
127
  href: link || href,
122
128
  DefaultComponent: "button",
123
129
  disabled: isDisabled,
@@ -129,24 +135,29 @@ function Button(props) {
129
135
  onMouseDown: onMouseDown
130
136
  }, /*#__PURE__*/React__default.default.createElement("div", {
131
137
  className: "button__wrapper"
132
- }, before, iconBefore && /*#__PURE__*/React__default.default.createElement(index$1.Icon, {
138
+ }, loading && /*#__PURE__*/React__default.default.createElement(index$1.Loader, {
139
+ className: "button__loader",
140
+ set: loaderSet,
141
+ fill: loaderFill,
142
+ itemFill: loaderItemFill
143
+ }), before, iconBefore && /*#__PURE__*/React__default.default.createElement(index$2.Icon, {
133
144
  className: "button__icon_before",
134
145
  SvgImage: iconBefore,
135
146
  size: iconBeforeSize,
136
147
  iconFill: iconBeforeFill,
137
148
  iconStroke: iconBeforeStroke
138
- }), icon && /*#__PURE__*/React__default.default.createElement(index$1.Icon, {
149
+ }), icon && /*#__PURE__*/React__default.default.createElement(index$2.Icon, {
139
150
  className: "button__icon",
140
151
  SvgImage: icon,
141
152
  size: iconSize,
142
153
  iconFill: iconFill,
143
154
  iconStroke: iconStroke
144
- }), (children || label) && /*#__PURE__*/React__default.default.createElement(index$2.Text, {
155
+ }), (children || label) && /*#__PURE__*/React__default.default.createElement(index$3.Text, {
145
156
  className: "button__label",
146
157
  textColor: labelTextColor,
147
158
  size: labelTextSize,
148
159
  style: labelStyles
149
- }, children || label), iconAfter && /*#__PURE__*/React__default.default.createElement(index$1.Icon, {
160
+ }, children || label), iconAfter && /*#__PURE__*/React__default.default.createElement(index$2.Icon, {
150
161
  className: "button__icon_after",
151
162
  SvgImage: iconAfter,
152
163
  size: iconAfterSize,
@@ -221,7 +232,8 @@ Button.defaultProps = {
221
232
  htmlType: 'button',
222
233
  size: 'm',
223
234
  labelSize: 'm',
224
- width: 'hug'
235
+ width: 'hug',
236
+ loaderSet: 'simple'
225
237
  };
226
238
 
227
239
  exports.Button = Button;
@@ -33,6 +33,7 @@ require('../constants/componentProps/strokeColor.js');
33
33
  require('./Link.js');
34
34
  require('../constants/componentProps/textGradient.js');
35
35
  require('../constants/componentProps/underline.js');
36
+ require('./Loader.js');
36
37
  require('../constants/componentProps/direction.js');
37
38
  require('../constants/componentProps/stacking.js');
38
39
  require('../constants/componentProps/wrap.js');
@@ -12,8 +12,8 @@ var index$2 = require('./Icon.js');
12
12
  require('lodash/castArray');
13
13
  require('lodash/camelCase');
14
14
  require('../context/UIContext.js');
15
- var size = require('../constants/componentProps/size.js');
16
- var textColor = require('../constants/componentProps/textColor.js');
15
+ var size$1 = require('../constants/componentProps/size.js');
16
+ var textColor$1 = require('../constants/componentProps/textColor.js');
17
17
  var textWeight = require('../constants/componentProps/textWeight.js');
18
18
  require('../hooks/useDeviceTargetClass.js');
19
19
  require('../hooks/useMediaQueries.js');
@@ -31,6 +31,7 @@ require('../constants/componentProps/horizontalResizeMode.js');
31
31
  require('../constants/componentProps/shape.js');
32
32
  require('../constants/componentProps/type.js');
33
33
  require('../constants/componentProps/width.js');
34
+ require('./Loader.js');
34
35
  require('./Link.js');
35
36
  require('../constants/componentProps/textGradient.js');
36
37
  require('../constants/componentProps/underline.js');
@@ -10174,7 +10175,12 @@ function DatePickerInput(props) {
10174
10175
  return /*#__PURE__*/React__namespace.default.createElement("div", {
10175
10176
  className: clsx__default.default(className, 'datepicker', datePickerProps.monthsShown && 'datepicker_type_multiple-months', (datePickerProps == null ? void 0 : datePickerProps.customTimeInput) && 'datepicker_type_button')
10176
10177
  }, /*#__PURE__*/React__namespace.default.createElement(Xt, Object.assign({
10177
- customInput: /*#__PURE__*/React__namespace.default.createElement(DatePickerСustomInput, inputProps),
10178
+ customInput: /*#__PURE__*/React__namespace.default.createElement(DatePickerСustomInput, Object.assign({}, inputProps, {
10179
+ size: size,
10180
+ textSize: textSize,
10181
+ textColor: textColor,
10182
+ label: label
10183
+ })),
10178
10184
  endDate: (datePickerProps == null ? void 0 : datePickerProps.selectsRange) && endDate,
10179
10185
  locale: ru,
10180
10186
  selected: startDate,
@@ -10193,8 +10199,8 @@ var DatePickerСustomInput = /*#__PURE__*/React.forwardRef(function (props, ref)
10193
10199
  });
10194
10200
  DatePickerСustomInput.displayName = 'DatePickerСustomInput';
10195
10201
  DatePickerInput.propTypes = {
10196
- size: PropTypes__default.default.oneOf(size.default),
10197
- textColor: PropTypes__default.default.oneOf(textColor.default),
10202
+ size: PropTypes__default.default.oneOf(size$1.default),
10203
+ textColor: PropTypes__default.default.oneOf(textColor$1.default),
10198
10204
  textWeight: PropTypes__default.default.oneOf(textWeight.default)
10199
10205
  };
10200
10206
 
@@ -32,6 +32,7 @@ require('../constants/componentProps/textWeight.js');
32
32
  require('../constants/componentProps/underline.js');
33
33
  require('../hooks/useDeviceTargetClass.js');
34
34
  require('lodash/castArray');
35
+ require('./Loader.js');
35
36
  require('../constants/componentProps/textColorActive.js');
36
37
  require('../constants/componentProps/textColorHover.js');
37
38
 
@@ -65,8 +65,12 @@ function Image(props) {
65
65
  prefix: 'height_',
66
66
  propsKey: 'imageHeight'
67
67
  });
68
- var borderColorImageClass = useDeviceTargetClass.useDeviceTargetClass(props, {
68
+ var borderClass = useDeviceTargetClass.useDeviceTargetClass(props, {
69
69
  prefix: 'border-color_',
70
+ propsKey: 'border'
71
+ });
72
+ var borderColorImageClass = useDeviceTargetClass.useDeviceTargetClass(props, {
73
+ prefix: 'border-color-image_',
70
74
  propsKey: 'borderColorImage'
71
75
  });
72
76
  var _useStyles = useStyles.useStyles(props),
@@ -85,7 +89,7 @@ function Image(props) {
85
89
  alt: alt,
86
90
  title: title,
87
91
  style: imageStyles,
88
- className: clsx__default.default('image__item', widthClass, heightClass, imgClassName, borderColorImageClass),
92
+ className: clsx__default.default('image__item', widthClass, heightClass, imgClassName, borderClass, borderColorImageClass),
89
93
  onError: onError
90
94
  }), overlay, caption, children), after);
91
95
  }
@@ -93,6 +97,7 @@ Image.propTypes = {
93
97
  after: PropTypes__default.default.any,
94
98
  alt: PropTypes__default.default.string,
95
99
  before: PropTypes__default.default.any,
100
+ border: PropTypes__default.default.string,
96
101
  borderColorImage: PropTypes__default.default.oneOf(borderColor.default),
97
102
  borderColorImageDesktop: PropTypes__default.default.oneOf(borderColor.default),
98
103
  borderColorImageMobile: PropTypes__default.default.oneOf(borderColor.default),
@@ -34,20 +34,24 @@ function Loader(props) {
34
34
  text = props.text,
35
35
  textSize = props.textSize,
36
36
  textColor = props.textColor;
37
+ var itemFillClass = useDeviceTargetClass.useDeviceTargetClass(props, {
38
+ prefix: 'fill_',
39
+ propsKey: 'itemFill'
40
+ });
37
41
  var fillClass = useDeviceTargetClass.useDeviceTargetClass(props, {
38
42
  prefix: 'fill_',
39
43
  propsKey: 'fill'
40
44
  });
41
45
  return /*#__PURE__*/React__default.default.createElement("div", {
42
- className: clsx__default.default('loader', className, set && "loader_set_" + set)
46
+ className: clsx__default.default('loader', fillClass, className, set && "loader_set_" + set)
43
47
  }, children || /*#__PURE__*/React__default.default.createElement("div", {
44
48
  className: "loader__inner"
45
49
  }, /*#__PURE__*/React__default.default.createElement("span", {
46
- className: clsx__default.default('loader__item', fillClass)
50
+ className: clsx__default.default('loader__item', itemFillClass)
47
51
  }), /*#__PURE__*/React__default.default.createElement("span", {
48
- className: clsx__default.default('loader__item', fillClass)
52
+ className: clsx__default.default('loader__item', itemFillClass)
49
53
  }), /*#__PURE__*/React__default.default.createElement("span", {
50
- className: clsx__default.default('loader__item', fillClass)
54
+ className: clsx__default.default('loader__item', itemFillClass)
51
55
  })), text && /*#__PURE__*/React__default.default.createElement(index.Text, {
52
56
  className: "loader__text",
53
57
  size: textSize,
@@ -3,31 +3,7 @@
3
3
  var React = require('react');
4
4
  var PropTypes = require('prop-types');
5
5
  var clsx = require('clsx');
6
- var index = require('./Title.js');
7
- var index$1 = require('./Text.js');
8
- var useDeviceTargetClass = require('../hooks/useDeviceTargetClass.js');
9
- require('lodash/camelCase');
10
- require('lodash/maxBy');
11
- require('lodash/upperFirst');
12
- require('../context/UIContext.js');
13
6
  var Notifications = require('../context/Notifications.js');
14
- require('../constants/componentProps/fill.js');
15
- require('../constants/componentProps/textAlign.js');
16
- require('../constants/componentProps/textColor.js');
17
- require('../constants/componentProps/textGradient.js');
18
- require('../constants/componentProps/textStyle.js');
19
- require('../constants/componentProps/textWeight.js');
20
- require('../constants/componentProps/titleSize.js');
21
- require('../constants/componentProps/type.js');
22
- require('../constants/componentProps/wrap.js');
23
- require('../useStyles-e4accb53.js');
24
- require('../hooks/styleAttributes.js');
25
- require('lodash/castArray');
26
- require('../hooks/useMediaQueries.js');
27
- require('react-responsive');
28
- require('../constants/componentProps/textColorActive.js');
29
- require('../constants/componentProps/textColorHover.js');
30
- require('../constants/componentProps/size.js');
31
7
  require('uuid');
32
8
 
33
9
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
@@ -39,37 +15,20 @@ var clsx__default = /*#__PURE__*/_interopDefault(clsx);
39
15
  function NotificationItem(props) {
40
16
  var after = props.after,
41
17
  before = props.before,
42
- set = props.set;
43
- props.status;
44
- var size = props.size,
18
+ set = props.set,
19
+ status = props.status,
20
+ size = props.size,
45
21
  text = props.text,
46
- textColor = props.textColor,
47
- textSize = props.textSize,
48
- title = props.title,
49
- titleColor = props.titleColor,
50
- titleSize = props.titleSize,
51
- type = props.type;
52
- var fillClass = useDeviceTargetClass.useDeviceTargetClass(props, {
53
- prefix: 'fill_',
54
- propsKey: 'status'
55
- });
56
- var fillHoverClass = useDeviceTargetClass.useDeviceTargetClass(props, {
57
- prefix: 'fill_hover_',
58
- propsKey: 'fillHover'
59
- });
22
+ title = props.title;
60
23
  return /*#__PURE__*/React__default.default.createElement("div", {
61
- className: clsx__default.default('notification__item', type && "notification_set_" + type, set && "notification_set_" + set, size && "notification_set_" + size, fillClass && fillClass + "-primary", fillHoverClass)
62
- }, /*#__PURE__*/React__default.default.createElement("div", {
63
- className: "notification__item-wrapper"
24
+ className: clsx__default.default('notification__item', status && "notification__item_status_" + status, set && "notification__item_set_" + set, size && "notification__item_set_" + size)
64
25
  }, before, /*#__PURE__*/React__default.default.createElement("div", {
26
+ className: "notification__item-wrapper"
27
+ }, title && /*#__PURE__*/React__default.default.createElement("div", {
28
+ className: "notification__item-title"
29
+ }, title), text && /*#__PURE__*/React__default.default.createElement("div", {
65
30
  className: "notification__item-text"
66
- }, /*#__PURE__*/React__default.default.createElement(index.Title, {
67
- size: titleSize,
68
- textColor: titleColor
69
- }, title), /*#__PURE__*/React__default.default.createElement(index$1.Text, {
70
- size: textSize,
71
- textColor: textColor
72
- }, text)), after));
31
+ }, text)), after);
73
32
  }
74
33
  NotificationItem.propTypes = {
75
34
  className: PropTypes__default.default.string,
@@ -77,11 +36,7 @@ NotificationItem.propTypes = {
77
36
  set: PropTypes__default.default.string,
78
37
  status: PropTypes__default.default.string,
79
38
  text: PropTypes__default.default.string,
80
- textColor: PropTypes__default.default.string,
81
- textSize: PropTypes__default.default.string,
82
39
  title: PropTypes__default.default.string,
83
- titleColor: PropTypes__default.default.string,
84
- titleSize: PropTypes__default.default.string,
85
40
  after: PropTypes__default.default.any,
86
41
  before: PropTypes__default.default.any
87
42
  };
@@ -92,10 +47,7 @@ function NotificationList(props) {
92
47
  hideNotifications = _useNotificationsAPI.hideNotifications;
93
48
  var className = props.className,
94
49
  size = props.size,
95
- textColor = props.textColor,
96
- textSize = props.textSize,
97
- titleColor = props.titleColor,
98
- titleSize = props.titleSize,
50
+ type = props.type,
99
51
  set = props.set;
100
52
  return /*#__PURE__*/React__default.default.createElement("div", {
101
53
  className: clsx__default.default('notification', className)
@@ -104,12 +56,9 @@ function NotificationList(props) {
104
56
  }, notifications.map(function (notification, i) {
105
57
  return /*#__PURE__*/React__default.default.createElement(NotificationItem, {
106
58
  key: i,
107
- textColor: notification.textColor || textColor,
108
- textSize: textSize,
109
- set: set,
110
- size: size,
111
- titleColor: titleColor,
112
- titleSize: titleSize,
59
+ type: notification.type || type,
60
+ set: notification.set || set,
61
+ size: notification.size || size,
113
62
  title: notification.title,
114
63
  text: notification.text,
115
64
  status: notification.status,
@@ -69,9 +69,7 @@
69
69
  &_loading {
70
70
  ^^&__loader {
71
71
  display: flex;
72
- }
73
- ^^&__text {
74
- visibility: hidden;
72
+ position: absolute;
75
73
  }
76
74
  }
77
75
  }
@@ -14,7 +14,7 @@
14
14
  &:hover {
15
15
  background: var(--choice-item-background-hover);
16
16
  }
17
- &last-child {
17
+ &:last-child {
18
18
  border-right: 0;
19
19
  }
20
20
  &_state_active {
@@ -885,6 +885,7 @@
885
885
  }
886
886
  }
887
887
  .datepicker {
888
+ width: 100%;
888
889
  border-radius: var(--date-picker-day-border-radius);
889
890
  ^^^^^& .input {
890
891
  border-radius: var(--date-picker-day-border-radius);
@@ -4,6 +4,8 @@
4
4
  justify-content: center;
5
5
  align-items: center;
6
6
  gap: 32px;
7
+ align-self: center;
8
+ margin-top: 200px;
7
9
  &__message {
8
10
  text-align: center;
9
11
  }
@@ -1,4 +1,5 @@
1
1
  .grid {
2
+ display: grid;
2
3
  width: 100%;
3
4
  position: relative;
4
5
  &__before {
@@ -3,8 +3,10 @@
3
3
  display: flex;
4
4
  flex-flow: column wrap;
5
5
  align-items: center;
6
+ justify-content: center;
6
7
  &__inner {
7
8
  position: relative;
9
+ display: flex;
8
10
  }
9
11
  &__text {
10
12
  }
@@ -1,18 +1,62 @@
1
1
  .notification {
2
- &__item {
3
- padding: 12px;
4
- &-text {
5
- display: flex;
6
- flex-direction: column;
7
- align-items: center;
8
- text-align: center;
9
- }
10
- }
11
2
  }
12
3
  .notification {
13
4
  &&_type_global {
14
- position: absolute;
5
+ width: 100%;
6
+ position: fixed;
15
7
  left: 0;
16
8
  top: 0;
9
+ padding: 0;
10
+ background: none;
11
+ z-index: 1000;
12
+ ^&__wrapper {
13
+ width: 100%;
14
+ align-items: flex-end;
15
+ display: flex;
16
+ }
17
+ }
18
+ }
19
+ .notification__item {
20
+ &_set {
21
+ &_float {
22
+ width: 320px;
23
+ margin: 16px 24px;
24
+ }
25
+ }
26
+ }
27
+ .notification__item {
28
+ &_status {
29
+ &_success {
30
+ ^^&-wrapper {
31
+ border-radius: 8px;
32
+ @mixin elevation-8;
33
+ padding: 12px 16px;
34
+ background: var(--color-success-primary);
35
+ ^^^&-title {
36
+ color: var(--color-success-text-secondary);
37
+ @mixin h5;
38
+ }
39
+ ^^^&-text {
40
+ color: var(--color-success-text-secondary);
41
+ @mixin text-s;
42
+ }
43
+ }
44
+ }
45
+ &_error {
46
+ ^^&-wrapper {
47
+ border-radius: 8px;
48
+ @mixin elevation-8;
49
+ padding: 12px 16px;
50
+ background: var(--color-error-primary);
51
+ ^^^&-title {
52
+ color: var(--color-error-text-secondary);
53
+ @mixin h5;
54
+ }
55
+ ^^^&-text {
56
+ color: var(--color-error-text-secondary);
57
+ @mixin text-s;
58
+ }
59
+ }
60
+ }
17
61
  }
18
62
  }
@@ -35,6 +35,7 @@
35
35
  grid-column: 1/3;
36
36
  grid-row-start: 1;
37
37
  z-index: 2;
38
+ padding: 1.25px 0 !important;
38
39
  &:focus {
39
40
  outline: 0;
40
41
  }
@@ -65,7 +66,7 @@
65
66
  z-index: 2;
66
67
  }
67
68
  &&_state_focus,
68
- &&_state_filled, {
69
+ &&_state_filled {
69
70
  ^&__input {
70
71
  &-wrapper {
71
72
  left: 0;
@@ -24,6 +24,7 @@
24
24
  grid-column: 1/3;
25
25
  grid-row-start: 1;
26
26
  z-index: 2;
27
+ padding: 1.25px 0 !important;
27
28
  &:focus {
28
29
  outline: 0;
29
30
  }
@@ -54,7 +55,7 @@
54
55
  z-index: 2;
55
56
  }
56
57
  &&_state_focus,
57
- &&_state_filled, {
58
+ &&_state_filled {
58
59
  ^&__input {
59
60
  &-wrapper {
60
61
  left: 0;
@@ -24,6 +24,7 @@
24
24
  min-width: 120px;
25
25
  position: relative;
26
26
  display: flex;
27
+ align-items: center;
27
28
  &::after {
28
29
  width: 1px;
29
30
  height: 100%;
@@ -33,7 +34,7 @@
33
34
  top: 0;
34
35
  right: 0;
35
36
  }
36
- &:nth-last-child(-n+2) {
37
+ &:nth-last-child(-n + 2) {
37
38
  &::after {
38
39
  display: none;
39
40
  }
@@ -11,6 +11,18 @@
11
11
  }
12
12
  }
13
13
  }
14
+ &-item {
15
+ @each $color in primary, secondary, tertiary, quaternary, quinary, senary, accent, disabled, hover {
16
+ &-$(color) {
17
+ background: var(--color-$(type)-item-$(color));
18
+ @each $alpha in 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 75, 80, 85, 90, 95 {
19
+ &$(alpha) {
20
+ background: var(--color-$(type)-item-$(color)-$(alpha));
21
+ }
22
+ }
23
+ }
24
+ }
25
+ }
14
26
  }
15
27
  }
16
28
  @each $type in accent, primary, secondary, tertiary, quaternary, quinary, surface, success, error, info, warning {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@itcase/ui",
3
- "version": "1.0.15",
3
+ "version": "1.0.16",
4
4
  "description": "UI components (Modal, Loader, Popup, etc)",
5
5
  "keywords": [
6
6
  "Modal",