@itcase/ui 1.0.16 → 1.0.17

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.
@@ -62,8 +62,8 @@ function Avatar(props) {
62
62
  iconFill = props.iconFill,
63
63
  iconFillHover = props.iconFillHover,
64
64
  iconFillSize = props.iconFillSize,
65
- firstname = props.firstname,
66
- secondname = props.secondname;
65
+ firstName = props.firstName,
66
+ secondName = props.secondName;
67
67
  var fillClass = useDeviceTargetClass.useDeviceTargetClass(props, {
68
68
  prefix: 'fill_',
69
69
  propsKey: 'fill'
@@ -76,6 +76,11 @@ function Avatar(props) {
76
76
  prefix: 'avatar_shape_',
77
77
  propsKey: 'shape'
78
78
  });
79
+ var avatarChars = React.useMemo(function () {
80
+ var firstChar = (firstName[0] || '').toUpperCase();
81
+ var secondChar = (secondName[0] || '').toUpperCase();
82
+ return "" + firstChar + secondChar;
83
+ }, [firstName, secondName]);
79
84
  return /*#__PURE__*/React__default.default.createElement("div", {
80
85
  className: clsx__default.default(className, 'avatar', shapeClass, size && "avatar_size_" + size, type && "avatar_type_" + type),
81
86
  onClick: onClick
@@ -85,12 +90,12 @@ function Avatar(props) {
85
90
  className: "avatar__image",
86
91
  shape: "circular",
87
92
  src: src
88
- }) : /*#__PURE__*/React__default.default.createElement(index$1.Text, {
93
+ }) : avatarChars ? /*#__PURE__*/React__default.default.createElement(index$1.Text, {
89
94
  className: "avatar__name",
90
95
  size: textSize,
91
96
  textColor: textColor,
92
97
  textWeight: textWeight
93
- }, firstname[0].toUpperCase() + secondname[0].toUpperCase()), icon && /*#__PURE__*/React__default.default.createElement(index$2.Icon, {
98
+ }, avatarChars) : null, icon && /*#__PURE__*/React__default.default.createElement(index$2.Icon, {
94
99
  className: "avatar__icon",
95
100
  fill: iconFill,
96
101
  fillHover: iconFillHover,
@@ -47,7 +47,7 @@ var buttonConfig = {
47
47
  buttonConfig.appearance = newComponent;
48
48
  }
49
49
  };
50
- function Button(props) {
50
+ var Button = /*#__PURE__*/React__default.default.forwardRef(function Button(props, ref) {
51
51
  var before = props.before,
52
52
  after = props.after,
53
53
  className = props.className,
@@ -124,9 +124,9 @@ function Button(props) {
124
124
  console.log(isDisabled);
125
125
  return /*#__PURE__*/React__default.default.createElement(index.LinkWrapper, {
126
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),
127
- href: link || href,
128
127
  DefaultComponent: "button",
129
128
  disabled: isDisabled,
129
+ href: link || href,
130
130
  rel: rel,
131
131
  style: buttonStyles,
132
132
  target: target,
@@ -134,41 +134,41 @@ function Button(props) {
134
134
  onClick: onClick,
135
135
  onMouseDown: onMouseDown
136
136
  }, /*#__PURE__*/React__default.default.createElement("div", {
137
- className: "button__wrapper"
137
+ className: "button__wrapper",
138
+ ref: ref
138
139
  }, loading && /*#__PURE__*/React__default.default.createElement(index$1.Loader, {
139
140
  className: "button__loader",
140
- set: loaderSet,
141
141
  fill: loaderFill,
142
- itemFill: loaderItemFill
142
+ itemFill: loaderItemFill,
143
+ set: loaderSet
143
144
  }), before, iconBefore && /*#__PURE__*/React__default.default.createElement(index$2.Icon, {
144
145
  className: "button__icon_before",
145
- SvgImage: iconBefore,
146
- size: iconBeforeSize,
147
146
  iconFill: iconBeforeFill,
148
- iconStroke: iconBeforeStroke
147
+ iconStroke: iconBeforeStroke,
148
+ size: iconBeforeSize,
149
+ SvgImage: iconBefore
149
150
  }), icon && /*#__PURE__*/React__default.default.createElement(index$2.Icon, {
150
151
  className: "button__icon",
151
- SvgImage: icon,
152
- size: iconSize,
153
152
  iconFill: iconFill,
154
- iconStroke: iconStroke
153
+ iconStroke: iconStroke,
154
+ size: iconSize,
155
+ SvgImage: icon
155
156
  }), (children || label) && /*#__PURE__*/React__default.default.createElement(index$3.Text, {
156
157
  className: "button__label",
157
- textColor: labelTextColor,
158
158
  size: labelTextSize,
159
- style: labelStyles
159
+ style: labelStyles,
160
+ textColor: labelTextColor
160
161
  }, children || label), iconAfter && /*#__PURE__*/React__default.default.createElement(index$2.Icon, {
161
162
  className: "button__icon_after",
162
- SvgImage: iconAfter,
163
- size: iconAfterSize,
164
163
  iconFill: iconAfterFill,
165
- iconStroke: iconAfterStroke
164
+ iconStroke: iconAfterStroke,
165
+ size: iconAfterSize,
166
+ SvgImage: iconAfter
166
167
  }), Badge, after));
167
- }
168
+ });
168
169
  Button.propTypes = {
169
- Badge: PropTypes__default.default.element,
170
- LinkComponent: PropTypes__default.default.any,
171
170
  after: PropTypes__default.default.any,
171
+ Badge: PropTypes__default.default.element,
172
172
  before: PropTypes__default.default.any,
173
173
  border: PropTypes__default.default.string,
174
174
  borderDesktop: PropTypes__default.default.string,
@@ -203,6 +203,7 @@ Button.propTypes = {
203
203
  labelSizeMobile: PropTypes__default.default.oneOf(size.default),
204
204
  labelSizeTablet: PropTypes__default.default.oneOf(size.default),
205
205
  link: PropTypes__default.default.string,
206
+ LinkComponent: PropTypes__default.default.any,
206
207
  rel: PropTypes__default.default.string,
207
208
  shape: PropTypes__default.default.oneOf(shape.default),
208
209
  shapeDesktop: PropTypes__default.default.oneOf(shape.default),
@@ -0,0 +1,150 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var PropTypes = require('prop-types');
5
+ var clsx = require('clsx');
6
+ var useDeviceTargetClass = require('../hooks/useDeviceTargetClass.js');
7
+ var index = require('./Text.js');
8
+ var index$1 = require('./Input.js');
9
+ require('lodash/castArray');
10
+ require('lodash/camelCase');
11
+ require('../context/UIContext.js');
12
+ require('../hooks/useMediaQueries.js');
13
+ require('react-responsive');
14
+ require('../constants/componentProps/textColor.js');
15
+ require('../constants/componentProps/textColorActive.js');
16
+ require('../constants/componentProps/textColorHover.js');
17
+ require('../constants/componentProps/size.js');
18
+ require('../constants/componentProps/textStyle.js');
19
+ require('../constants/componentProps/textWeight.js');
20
+ require('../useStyles-e4accb53.js');
21
+ require('lodash/maxBy');
22
+ require('lodash/upperFirst');
23
+ require('../hooks/styleAttributes.js');
24
+
25
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
26
+
27
+ var React__default = /*#__PURE__*/_interopDefault(React);
28
+ var PropTypes__default = /*#__PURE__*/_interopDefault(PropTypes);
29
+ var clsx__default = /*#__PURE__*/_interopDefault(clsx);
30
+
31
+ var currentOtpIndex = 0;
32
+ function Code(props) {
33
+ var widthClass = useDeviceTargetClass.useDeviceTargetClass(props, {
34
+ prefix: 'width_',
35
+ propsKey: 'width'
36
+ });
37
+ var className = props.className,
38
+ fields = props.fields,
39
+ before = props.before,
40
+ errorText = props.errorText,
41
+ errorTextSize = props.errorTextSize,
42
+ errorTextColor = props.errorTextColor,
43
+ errorTextWeight = props.errorTextWeight,
44
+ inputSize = props.inputSize,
45
+ inputFill = props.inputFill,
46
+ inputPlaceholder = props.inputPlaceholder,
47
+ inputPlaceholderColor = props.inputPlaceholderColor,
48
+ inputTextSize = props.inputTextSize,
49
+ inputTextColor = props.inputTextColor,
50
+ inputTextWeight = props.inputTextWeight,
51
+ inputBorderColor = props.inputBorderColor,
52
+ inputBorderWidth = props.inputBorderWidth,
53
+ inputShape = props.inputShape,
54
+ onBlur = props.onBlur,
55
+ onChange = props.onChange,
56
+ helpText = props.helpText,
57
+ helpTextSize = props.helpTextSize,
58
+ helpTextColor = props.helpTextColor,
59
+ helpTextWeight = props.helpTextWeight,
60
+ after = props.after;
61
+ var _useState = React.useState(new Array(fields).fill('')),
62
+ otp = _useState[0],
63
+ setOtp = _useState[1];
64
+ var _useState2 = React.useState(0),
65
+ activeOtpIndex = _useState2[0],
66
+ setActiveOtpIndex = _useState2[1];
67
+ var inputRef = React.useRef(null);
68
+ var formattedHelpText = React.useMemo(function () {
69
+ return helpText.replace('{fields}', fields);
70
+ }, []);
71
+ var handleChange = function handleChange(e) {
72
+ var value = e.target.value;
73
+ var newOtp = [].concat(otp);
74
+ newOtp[currentOtpIndex] = value.substring(value.length - 1);
75
+ if (!value) {
76
+ setActiveOtpIndex(currentOtpIndex - 1);
77
+ } else {
78
+ setActiveOtpIndex(currentOtpIndex + 1);
79
+ }
80
+ setOtp(newOtp);
81
+ onChange && onChange(newOtp);
82
+ };
83
+ var handleOnKeyDown = function handleOnKeyDown(e) {
84
+ var index = +e.target.getAttribute('index');
85
+ currentOtpIndex = index;
86
+ if (e.key === 'Backspace') {
87
+ setActiveOtpIndex(currentOtpIndex - 1);
88
+ }
89
+ };
90
+ React.useEffect(function () {
91
+ var _inputRef$current;
92
+ (_inputRef$current = inputRef.current) == null ? void 0 : _inputRef$current.focus();
93
+ }, [activeOtpIndex]);
94
+ return /*#__PURE__*/React__default.default.createElement("div", {
95
+ className: clsx__default.default(className, 'code', widthClass)
96
+ }, before, errorText && /*#__PURE__*/React__default.default.createElement(index.Text, {
97
+ className: "code__error",
98
+ size: errorTextSize,
99
+ textColor: errorTextColor,
100
+ textWeight: errorTextWeight
101
+ }, errorText), /*#__PURE__*/React__default.default.createElement("div", {
102
+ className: "code__group"
103
+ }, otp.map(function (value, index) {
104
+ return /*#__PURE__*/React__default.default.createElement(index$1.Input, {
105
+ className: "code__input",
106
+ key: index,
107
+ index: index,
108
+ size: inputSize,
109
+ fill: inputFill,
110
+ placeholder: inputPlaceholder,
111
+ placeholderTextColor: inputPlaceholderColor,
112
+ textSize: inputTextSize,
113
+ textColor: inputTextColor,
114
+ textWeight: inputTextWeight,
115
+ value: value,
116
+ borderColor: inputBorderColor,
117
+ borderWidth: inputBorderWidth,
118
+ shape: inputShape,
119
+ onBlur: onBlur,
120
+ onChange: handleChange,
121
+ onKeyDown: function onKeyDown(e) {
122
+ return handleOnKeyDown(e);
123
+ },
124
+ inputRef: index === activeOtpIndex ? inputRef : null
125
+ });
126
+ })), helpText && /*#__PURE__*/React__default.default.createElement(index.Text, {
127
+ className: "code__help",
128
+ size: helpTextSize,
129
+ textColor: helpTextColor,
130
+ textWeight: helpTextWeight
131
+ }, formattedHelpText), after);
132
+ }
133
+ Code.propTypes = {
134
+ value: PropTypes__default.default.number
135
+ };
136
+ Code.defaultProps = {
137
+ inputBorderColor: 'surfaceBorderQuaternary',
138
+ inputFill: 'surfacePrimary',
139
+ inputPlaceholder: '0',
140
+ inputPlaceholderTextColor: 'surfaceTextQuaternary',
141
+ inputShape: 'rounded',
142
+ inputTextColor: 'surfaceTextPrimary',
143
+ inputTextSize: 'xxl',
144
+ helpText: 'Введите {fields} значный код',
145
+ helpTextSize: 's',
146
+ helpTextColor: 'surfaceTextTertiary',
147
+ helpTextWeight: 400
148
+ };
149
+
150
+ exports.Code = Code;
@@ -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$1 = require('../constants/componentProps/size.js');
16
- var textColor$1 = require('../constants/componentProps/textColor.js');
15
+ var size = require('../constants/componentProps/size.js');
16
+ var textColor = 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');
@@ -10118,6 +10118,7 @@ function DatePickerInput(props) {
10118
10118
  };
10119
10119
  var renderDayContents = function renderDayContents(day, date) {
10120
10120
  return /*#__PURE__*/React__namespace.default.createElement(index$1.Button, {
10121
+ className: "react-datepicker__day-button",
10121
10122
  size: datePickerProps.daySize,
10122
10123
  label: date.getDate(),
10123
10124
  labelTextColor: datePickerProps.dayTextColor,
@@ -10171,16 +10172,10 @@ function DatePickerInput(props) {
10171
10172
  onClick: increaseMonth
10172
10173
  }));
10173
10174
  };
10174
- console.log('datePickerProps', datePickerProps);
10175
10175
  return /*#__PURE__*/React__namespace.default.createElement("div", {
10176
- className: clsx__default.default(className, 'datepicker', datePickerProps.monthsShown && 'datepicker_type_multiple-months', (datePickerProps == null ? void 0 : datePickerProps.customTimeInput) && 'datepicker_type_button')
10176
+ className: clsx__default.default(className, 'datepicker', (datePickerProps == null ? void 0 : datePickerProps.monthsShown) && 'datepicker_type_multiple-months', (datePickerProps == null ? void 0 : datePickerProps.customTimeInput) && 'datepicker_type_button')
10177
10177
  }, /*#__PURE__*/React__namespace.default.createElement(Xt, Object.assign({
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
+ customInput: /*#__PURE__*/React__namespace.default.createElement(DatePickerСustomInput, inputProps),
10184
10179
  endDate: (datePickerProps == null ? void 0 : datePickerProps.selectsRange) && endDate,
10185
10180
  locale: ru,
10186
10181
  selected: startDate,
@@ -10199,8 +10194,8 @@ var DatePickerСustomInput = /*#__PURE__*/React.forwardRef(function (props, ref)
10199
10194
  });
10200
10195
  DatePickerСustomInput.displayName = 'DatePickerСustomInput';
10201
10196
  DatePickerInput.propTypes = {
10202
- size: PropTypes__default.default.oneOf(size$1.default),
10203
- textColor: PropTypes__default.default.oneOf(textColor$1.default),
10197
+ size: PropTypes__default.default.oneOf(size.default),
10198
+ textColor: PropTypes__default.default.oneOf(textColor.default),
10204
10199
  textWeight: PropTypes__default.default.oneOf(textWeight.default)
10205
10200
  };
10206
10201
 
@@ -62,12 +62,12 @@ function Dropdown(props) {
62
62
  var onAnimationEnd = React.useCallback(function (event) {
63
63
  // When component is change his visibility(display) in DOM,
64
64
  // animation of close can run unnecessary on showing element.
65
- console.info('------ onAnimationEnd -------------');
66
- console.log('event: ', event);
67
- console.log('event.target: ', event.target);
68
- console.log('isOpen: ', isOpen);
69
- console.log('animationOpen: ', animationOpen);
70
- console.log('animationClose: ', animationClose);
65
+ // console.info('------ onAnimationEnd -------------')
66
+ // console.log('event: ', event)
67
+ // console.log('event.target: ', event.target)
68
+ // console.log('isOpen: ', isOpen)
69
+ // console.log('animationOpen: ', animationOpen)
70
+ // console.log('animationClose: ', animationClose)
71
71
  // const dropdownElement = dropdownRef.current
72
72
  // console.log('dropdownElement', dropdownElement)
73
73
  // console.log('dropdownElement hasClass', dropdownElement.hasClass(animationClose))
@@ -80,7 +80,7 @@ function Dropdown(props) {
80
80
 
81
81
  // Close dropdown by click outside
82
82
  React.useEffect(function () {
83
- console.info('--------- useEffect Dropdown -------');
83
+ // console.info('--------- useEffect Dropdown -------')
84
84
  // Add a handler to keep track of the click target.
85
85
  function onClickWindow(event) {
86
86
  var dropdownElement = dropdownRef.current;
@@ -99,7 +99,7 @@ function Dropdown(props) {
99
99
  // Add event listener for current dropdown on first render
100
100
  window.addEventListener('click', onClickWindow);
101
101
  return function () {
102
- console.info('--------- UNMOUNT useEffect Dropdown -------');
102
+ // console.info('--------- UNMOUNT useEffect Dropdown -------')
103
103
  // Remove event listener for current dropdown on unmount
104
104
  window.removeEventListener('click', onClickWindow);
105
105
  };
@@ -123,10 +123,12 @@ function Dropdown(props) {
123
123
  });
124
124
  var _useStyles = useStyles.useStyles(props),
125
125
  styles = _useStyles.styles;
126
- console.warn('====== Dropdown ========');
127
- console.log('props: ', props);
128
- console.log('isOpen: ', isOpen);
129
- console.log('animationState: ', animationState);
126
+
127
+ // console.warn('====== Dropdown ========')
128
+ // console.log('props: ', props)
129
+ // console.log('isOpen: ', isOpen)
130
+ // console.log('animationState: ', animationState)
131
+
130
132
  return /*#__PURE__*/React__default.default.createElement("div", {
131
133
  className: clsx__default.default(className, 'dropdown', set && "dropdown_set_" + set, shapeClass, fillClass, fillHoverClass, elevationClass, isOpen ? 'dropdown_state_open' : 'dropdown_state_close', animationState.className),
132
134
  ref: dropdownRef,
@@ -16,6 +16,8 @@ require('lodash/camelCase');
16
16
  require('../context/UIContext.js');
17
17
  var index$4 = require('./Switch.js');
18
18
  var index$5 = require('./Select.js');
19
+ require('react-select');
20
+ require('./Group.js');
19
21
  require('../constants/componentProps/fill.js');
20
22
  require('../constants/componentProps/width.js');
21
23
  require('lodash/maxBy');
@@ -36,9 +38,10 @@ require('./Link.js');
36
38
  require('../constants/componentProps/textGradient.js');
37
39
  require('../constants/componentProps/type.js');
38
40
  require('../constants/componentProps/underline.js');
39
- require('react-select');
40
41
  require('../defineProperty-f9e5e1f3.js');
41
42
  require('react-dom');
43
+ require('../constants/componentProps/stacking.js');
44
+ require('../constants/componentProps/wrap.js');
42
45
 
43
46
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
44
47
 
@@ -65,6 +65,10 @@ function Group(props) {
65
65
  prefix: 'fill_',
66
66
  propsKey: 'fill'
67
67
  });
68
+ var fillHoverClass = useDeviceTargetClass.useDeviceTargetClass(props, {
69
+ prefix: 'fill_hover_',
70
+ propsKey: 'fillHover'
71
+ });
68
72
  var shapeClass = useDeviceTargetClass.useDeviceTargetClass(props, {
69
73
  prefix: 'group_shape_',
70
74
  propsKey: 'shape'
@@ -101,7 +105,7 @@ function Group(props) {
101
105
  groupStyles = _useStyles.styles,
102
106
  groupWrapperStyles = _useStyles.wrapper;
103
107
  return /*#__PURE__*/React__default.default.createElement("div", {
104
- className: clsx__default.default(className, 'group', widthClass, columnsClass, contentAlignClass, alignDirectionClass, directionClass, alignClass, fillClass, set && "group_set_" + set, horizontalScroll && 'group_type_horizontal_scroll', stackingClass, wrapClass, growClass, shapeClass, borderColorClass, borderWidthClass, borderTypeClass, elevationClass, justifyContentClass),
108
+ className: clsx__default.default(className, 'group', widthClass, columnsClass, contentAlignClass, alignDirectionClass, directionClass, alignClass, fillClass, fillHoverClass, set && "group_set_" + set, horizontalScroll && 'group_type_horizontal_scroll', stackingClass, wrapClass, growClass, shapeClass, borderColorClass, borderWidthClass, borderTypeClass, elevationClass, justifyContentClass),
105
109
  id: id,
106
110
  style: Object.assign({}, groupStyles, style)
107
111
  }, horizontalScroll ? /*#__PURE__*/React__default.default.createElement("div", {
@@ -26,11 +26,13 @@ function Input(props) {
26
26
  var _inputConfig$state$st, _inputConfig$state$st2, _inputConfig$state$st3;
27
27
  var state = props.state,
28
28
  id = props.id,
29
+ index = props.index,
29
30
  type = props.type,
30
31
  className = props.className,
31
32
  placeholder = props.placeholder,
32
33
  disabled = props.disabled,
33
34
  value = props.value,
35
+ inputRef = props.inputRef,
34
36
  onBlur = props.onBlur,
35
37
  onChange = props.onChange,
36
38
  onFocus = props.onFocus,
@@ -83,6 +85,8 @@ function Input(props) {
83
85
  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),
84
86
  type: type,
85
87
  id: id,
88
+ index: index,
89
+ ref: inputRef,
86
90
  disabled: disabled,
87
91
  placeholder: placeholder,
88
92
  value: value,