@itcase/ui 1.0.82 → 1.0.84

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.
Files changed (33) hide show
  1. package/dist/SelectContainer-6GiJFRo0.js +8677 -0
  2. package/dist/components/Accordion.js +22 -6
  3. package/dist/components/Badge.js +3 -3
  4. package/dist/components/Button.js +10 -10
  5. package/dist/components/Card.js +2 -2
  6. package/dist/components/Cell.js +7 -2
  7. package/dist/components/Choice.js +113 -17
  8. package/dist/components/Code.js +13 -3
  9. package/dist/components/DatePicker.js +3 -2
  10. package/dist/components/Dropdown.js +1 -1
  11. package/dist/components/FormField.js +2 -2
  12. package/dist/components/Icon.js +72 -72
  13. package/dist/components/Label.js +26 -3
  14. package/dist/components/Search.js +39 -26
  15. package/dist/components/Select.js +34 -8665
  16. package/dist/components/Swiper.js +6 -4
  17. package/dist/components/Tab.js +14 -8
  18. package/dist/constants/componentProps/textColor.js +1 -1
  19. package/dist/constants/componentProps/textColorActive.js +1 -1
  20. package/dist/constants/componentProps/textColorHover.js +1 -1
  21. package/dist/context/Notifications.js +28 -30
  22. package/dist/css/components/Accordion/Accordion.css +3 -1
  23. package/dist/css/components/DatePicker/DatePicker.css +34 -8
  24. package/dist/css/components/Grid/Grid.css +3 -1
  25. package/dist/css/components/Label/Label.css +37 -1
  26. package/dist/css/components/Select/Select.css +27 -4
  27. package/dist/css/components/Select/css/__menu/select__menu-list-item_size.css +15 -0
  28. package/dist/css/components/Select/css/__menu/select__menu.css +10 -4
  29. package/dist/css/components/Select/css/__placeholder/select__placeholder.css +1 -0
  30. package/dist/css/components/Swiper/Swiper.css +2 -2
  31. package/dist/css/components/Tab/Tab.css +30 -23
  32. package/dist/css/components/Textarea/Textarea.css +2 -2
  33. package/package.json +27 -27
@@ -7,7 +7,8 @@ var castArray = require('lodash/castArray');
7
7
  var fill = require('../constants/componentProps/fill.js');
8
8
  var direction = require('../constants/componentProps/direction.js');
9
9
  var shape = require('../constants/componentProps/shape.js');
10
- var index = require('./Icon.js');
10
+ var index$1 = require('./Icon.js');
11
+ var index = require('./Text.js');
11
12
  var useDeviceTargetClass = require('../hooks/useDeviceTargetClass.js');
12
13
  var useStyles = require('../hooks/useStyles.js');
13
14
  require('react-inlinesvg');
@@ -30,6 +31,8 @@ require('../constants/componentProps/borderColor.js');
30
31
  require('../constants/componentProps/borderType.js');
31
32
  require('../constants/componentProps/iconSize.js');
32
33
  require('../constants/componentProps/strokeColor.js');
34
+ require('../constants/componentProps/textColorActive.js');
35
+ require('../constants/componentProps/textColorHover.js');
33
36
 
34
37
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
35
38
 
@@ -70,6 +73,12 @@ function AccordionItem(props) {
70
73
  beforeContent,
71
74
  afterContent,
72
75
  className,
76
+ titleTextSize,
77
+ titleTextColor,
78
+ titleTextWeight,
79
+ contentTextSize,
80
+ contentTextColor,
81
+ contentTextWeight,
73
82
  isExpanded,
74
83
  onClick
75
84
  } = props;
@@ -97,19 +106,26 @@ function AccordionItem(props) {
97
106
  return /*#__PURE__*/React__default.default.createElement("div", {
98
107
  className: clsx__default.default('accordion-item', className, fillClass, shapeClass, isExpanded && 'accordion-item_state_open'),
99
108
  style: styles
100
- }, /*#__PURE__*/React__default.default.createElement("div", {
109
+ }, /*#__PURE__*/React__default.default.createElement(index.Text, {
101
110
  className: clsx__default.default('accordion-item__title', onClickTitle && 'cursor_type_pointer'),
111
+ size: titleTextSize,
112
+ textColor: titleTextColor,
113
+ textWeight: titleTextWeight,
102
114
  onClick: onClickTitle
103
115
  }, title), /*#__PURE__*/React__default.default.createElement("div", {
104
116
  className: "accordion-item__icon",
105
117
  onClick: onClickTitle
106
- }, icon || /*#__PURE__*/React__default.default.createElement(index.Icon, {
118
+ }, icon || /*#__PURE__*/React__default.default.createElement(index$1.Icon, {
107
119
  iconFill: iconFill,
108
120
  size: "16",
109
121
  SvgImage: icon16.chevron_down
110
122
  })), beforeContent && beforeContent, isExpanded && /*#__PURE__*/React__default.default.createElement("div", {
111
123
  className: "accordion-item__content"
112
- }, children || content), afterContent && afterContent);
124
+ }, children || content && /*#__PURE__*/React__default.default.createElement(index.Text, {
125
+ size: contentTextSize,
126
+ textColor: contentTextColor,
127
+ textWeight: contentTextWeight
128
+ }, content)), afterContent && afterContent);
113
129
  }
114
130
 
115
131
  /* Component default props */
@@ -144,7 +160,7 @@ AccordionItem.propTypes = {
144
160
  shapeDesktop: PropTypes__default.default.oneOf(shape.default),
145
161
  shapeMobile: PropTypes__default.default.oneOf(shape.default),
146
162
  shapeTablet: PropTypes__default.default.oneOf(shape.default),
147
- title: PropTypes__default.default.any,
163
+ title: PropTypes__default.default.string,
148
164
  onClick: PropTypes__default.default.func
149
165
  };
150
166
 
@@ -356,7 +372,7 @@ AccordionItem.__docgenInfo = {
356
372
  "title": {
357
373
  "description": "",
358
374
  "type": {
359
- "name": "any"
375
+ "name": "string"
360
376
  },
361
377
  "required": false
362
378
  },
@@ -80,11 +80,11 @@ function Badge(props) {
80
80
  styles: badgeStyles
81
81
  } = useStyles.useStyles(props);
82
82
  return /*#__PURE__*/React__default.default.createElement("div", {
83
- style: badgeStyles,
84
- className: clsx__default.default(className, 'badge', !value && 'badge_type_status', borderColorClass, borderColorHoverClass, borderWidthClass, borderTypeClass, fillClass || badgeConfig.appearance[appearance] && `fill_${badgeConfig.appearance[appearance].fillClass}`?.replace(/([A-Z])/g, '-$1').toLowerCase(), positionClass, sizeClass, shapeClass)
83
+ className: clsx__default.default(className, 'badge', !value && 'badge_type_status', borderColorClass, borderColorHoverClass, borderWidthClass, borderTypeClass, fillClass || badgeConfig.appearance[appearance] && `fill_${badgeConfig.appearance[appearance].fillClass}`?.replace(/([A-Z])/g, '-$1').toLowerCase(), positionClass, sizeClass, shapeClass),
84
+ style: badgeStyles
85
85
  }, children || value && /*#__PURE__*/React__default.default.createElement(index.Text, {
86
86
  size: textSize,
87
- textColor: textColor || badgeConfig.appearance[appearance] && badgeConfig.appearance[appearance].textColor?.replace(/([A-Z])/g, '-$1').toLowerCase()
87
+ textColor: textColor || badgeConfig.appearance[appearance]?.textColor
88
88
  }, value));
89
89
  }
90
90
  Badge.propTypes = {
@@ -153,15 +153,15 @@ const Button = /*#__PURE__*/React__default.default.forwardRef(function Button(pr
153
153
  set: loaderSet
154
154
  }), before, (iconBefore || iconBeforeSrc) && /*#__PURE__*/React__default.default.createElement(index$2.Icon, {
155
155
  className: "button__icon_before",
156
- iconFill: iconBeforeFill || buttonConfig.appearance[appearance] && buttonConfig.appearance[appearance].iconBeforeFill?.replace(/([A-Z])/g, '-$1').toLowerCase(),
157
- iconStroke: iconBeforeStroke || buttonConfig.appearance[appearance] && buttonConfig.appearance[appearance].iconBeforeStroke?.replace(/([A-Z])/g, '-$1').toLowerCase(),
156
+ iconFill: iconBeforeFill || buttonConfig.appearance[appearance]?.iconBeforeFill,
157
+ iconStroke: iconBeforeStroke || buttonConfig.appearance[appearance]?.iconBeforeStroke,
158
158
  imageSrc: iconBeforeSrc,
159
159
  size: iconBeforeSize,
160
160
  SvgImage: iconBefore
161
161
  }), (icon || iconSrc) && /*#__PURE__*/React__default.default.createElement(index$2.Icon, {
162
162
  className: "button__icon",
163
- iconFill: iconFill || buttonConfig.appearance[appearance] && buttonConfig.appearance[appearance].iconFill?.replace(/([A-Z])/g, '-$1').toLowerCase(),
164
- iconStroke: iconStroke || buttonConfig.appearance[appearance] && buttonConfig.appearance[appearance].iconStroke?.replace(/([A-Z])/g, '-$1').toLowerCase(),
163
+ iconFill: iconFill || buttonConfig.appearance[appearance]?.iconFill,
164
+ iconStroke: iconStroke || buttonConfig.appearance[appearance]?.iconStroke,
165
165
  imageSrc: iconSrc,
166
166
  size: iconSize,
167
167
  SvgImage: icon
@@ -169,13 +169,13 @@ const Button = /*#__PURE__*/React__default.default.forwardRef(function Button(pr
169
169
  className: "button__label",
170
170
  size: labelTextSize,
171
171
  style: labelStyles,
172
- textColor: labelTextColor || buttonConfig.appearance[appearance] && buttonConfig.appearance[appearance].labelTextColor?.replace(/([A-Z])/g, '-$1').toLowerCase(),
173
- textColorHover: labelTextColorHover || buttonConfig.appearance[appearance] && buttonConfig.appearance[appearance].labelTextColorHover?.replace(/([A-Z])/g, '-$1').toLowerCase(),
172
+ textColor: labelTextColor || buttonConfig.appearance[appearance]?.labelTextColor,
173
+ textColorHover: labelTextColorHover || buttonConfig.appearance[appearance]?.labelTextColorHover,
174
174
  textWrap: labelTextWrap
175
175
  }, children || label), (iconAfter || iconAfterSrc) && /*#__PURE__*/React__default.default.createElement(index$2.Icon, {
176
176
  className: "button__icon_after",
177
- iconFill: iconAfterFill || buttonConfig.appearance[appearance] && buttonConfig.appearance[appearance].iconAfterFill?.replace(/([A-Z])/g, '-$1').toLowerCase(),
178
- iconStroke: iconAfterStroke || buttonConfig.appearance[appearance] && buttonConfig.appearance[appearance].iconAfterStroke?.replace(/([A-Z])/g, '-$1').toLowerCase(),
177
+ iconFill: iconAfterFill || buttonConfig.appearance[appearance]?.iconAfterFill,
178
+ iconStroke: iconAfterStroke || buttonConfig.appearance[appearance]?.iconAfterStroke,
179
179
  imageSrc: iconAfterSrc,
180
180
  size: iconAfterSize,
181
181
  SvgImage: iconAfter
@@ -200,7 +200,7 @@ Button.propTypes = {
200
200
  iconFill: PropTypes__default.default.string,
201
201
  iconSize: PropTypes__default.default.string,
202
202
  iconStroke: PropTypes__default.default.string,
203
- isDisabled: PropTypes__default.default.string,
203
+ isDisabled: PropTypes__default.default.bool,
204
204
  label: PropTypes__default.default.string,
205
205
  labelTextColor: PropTypes__default.default.string,
206
206
  labelTextColorHover: PropTypes__default.default.string,
@@ -420,7 +420,7 @@ Button.__docgenInfo = {
420
420
  "isDisabled": {
421
421
  "description": "",
422
422
  "type": {
423
- "name": "string"
423
+ "name": "bool"
424
424
  },
425
425
  "required": false
426
426
  },
@@ -62,8 +62,8 @@ function Card(props) {
62
62
  propsKey: 'width'
63
63
  });
64
64
  return /*#__PURE__*/React__default.default.createElement("div", {
65
- onClick: onClick,
66
- className: clsx__default.default(className, 'card', shapeClass, size && `card_size_${size}`, type && `card_type_${type}`, widthClass)
65
+ className: clsx__default.default(className, 'card', shapeClass, size && `card_size_${size}`, type && `card_type_${type}`, widthClass),
66
+ onClick: onClick
67
67
  }, /*#__PURE__*/React__default.default.createElement("div", {
68
68
  className: "card__wrapper"
69
69
  }, image, src && /*#__PURE__*/React__default.default.createElement(index.Image, {
@@ -185,7 +185,7 @@ Cell.propTypes = {
185
185
  title: PropTypes__default.default.string,
186
186
  titleTextColor: PropTypes__default.default.string,
187
187
  titleTextSize: PropTypes__default.default.oneOf(size.default),
188
- value: PropTypes__default.default.string,
188
+ value: PropTypes__default.default.oneOfType([PropTypes__default.default.element, PropTypes__default.default.string]),
189
189
  valueTextColor: PropTypes__default.default.string,
190
190
  valueTextSize: PropTypes__default.default.oneOf(size.default),
191
191
  onClick: PropTypes__default.default.func,
@@ -349,7 +349,12 @@ Cell.__docgenInfo = {
349
349
  "value": {
350
350
  "description": "",
351
351
  "type": {
352
- "name": "string"
352
+ "name": "union",
353
+ "value": [{
354
+ "name": "element"
355
+ }, {
356
+ "name": "string"
357
+ }]
353
358
  },
354
359
  "required": false
355
360
  },
@@ -28,7 +28,7 @@ var React__default = /*#__PURE__*/_interopDefault(React);
28
28
  var PropTypes__default = /*#__PURE__*/_interopDefault(PropTypes);
29
29
  var clsx__default = /*#__PURE__*/_interopDefault(clsx);
30
30
 
31
- const Choice = /*#__PURE__*/React__default.default.forwardRef((props, ref) => {
31
+ const Choice = /*#__PURE__*/React__default.default.forwardRef(function Choice(props, ref) {
32
32
  const {
33
33
  name,
34
34
  className,
@@ -40,10 +40,17 @@ const Choice = /*#__PURE__*/React__default.default.forwardRef((props, ref) => {
40
40
  size,
41
41
  labelTextColor,
42
42
  labelTextActiveColor,
43
- labelTextSize
43
+ labelTextSize,
44
+ before,
45
+ after,
46
+ isMultiple
44
47
  } = props;
45
48
  const controlRef = React.useRef(null);
46
49
  const optionsRefs = React.useMemo(() => new Map(options.map(item => [item.value, /*#__PURE__*/React.createRef()])), [options]);
50
+ const onChange = React.useCallback((event, item) => {
51
+ const isChecked = isMultiple ? event.target.checked : true;
52
+ setActiveSegment && setActiveSegment(item, isChecked);
53
+ }, [isMultiple, setActiveSegment]);
47
54
  const borderColorClass = useDeviceTargetClass.useDeviceTargetClass(props, {
48
55
  prefix: 'border-color_',
49
56
  propsKey: 'borderColor'
@@ -84,31 +91,44 @@ const Choice = /*#__PURE__*/React__default.default.forwardRef((props, ref) => {
84
91
  }, /*#__PURE__*/React__default.default.createElement("input", {
85
92
  checked: item.value === active.value,
86
93
  className: "choice__item-radio",
87
- id: item.label,
94
+ id: `${name}-${item.value}`,
88
95
  name: name,
89
- type: "radio",
96
+ type: isMultiple ? 'checkbox' : 'radio',
90
97
  value: item.value,
91
- onChange: () => setActiveSegment && setActiveSegment(item)
98
+ onChange: event => onChange(event, item)
92
99
  }), /*#__PURE__*/React__default.default.createElement("label", {
93
100
  className: clsx__default.default('choice__item-label'),
94
- htmlFor: item.label
95
- }, /*#__PURE__*/React__default.default.createElement(index.Text, {
101
+ htmlFor: `${name}-${item.value}`
102
+ }, before, /*#__PURE__*/React__default.default.createElement(index.Text, {
96
103
  size: labelTextSize,
97
104
  textColor: item.value === active.value ? labelTextActiveColor : labelTextColor
98
- }, item.label))))));
105
+ }, item.label), after)))));
99
106
  });
100
- Choice.displayName = 'Choice';
101
107
  Choice.propTypes = {
102
- active: PropTypes__default.default.object,
108
+ active: PropTypes__default.default.shape({
109
+ value: PropTypes__default.default.string,
110
+ label: PropTypes__default.default.string
111
+ }),
112
+ after: PropTypes__default.default.any,
113
+ before: PropTypes__default.default.any,
103
114
  className: PropTypes__default.default.string,
104
- fill: PropTypes__default.default.string,
115
+ isMultiple: PropTypes__default.default.bool,
116
+ labelTextActiveColor: PropTypes__default.default.string,
117
+ labelTextColor: PropTypes__default.default.string,
118
+ labelTextSize: PropTypes__default.default.string,
105
119
  name: PropTypes__default.default.string,
106
- options: PropTypes__default.default.array,
120
+ options: PropTypes__default.default.arrayOf(PropTypes__default.default.shape({
121
+ value: PropTypes__default.default.string,
122
+ label: PropTypes__default.default.string
123
+ })),
124
+ set: PropTypes__default.default.string,
107
125
  setActiveSegment: PropTypes__default.default.func,
126
+ size: PropTypes__default.default.string,
108
127
  type: PropTypes__default.default.string
109
128
  };
110
129
  Choice.defaultProps = {
111
- active: {}
130
+ active: {},
131
+ options: []
112
132
  };
113
133
  Choice.__docgenInfo = {
114
134
  "description": "",
@@ -122,7 +142,55 @@ Choice.__docgenInfo = {
122
142
  },
123
143
  "description": "",
124
144
  "type": {
125
- "name": "object"
145
+ "name": "shape",
146
+ "value": {
147
+ "value": {
148
+ "name": "string",
149
+ "required": false
150
+ },
151
+ "label": {
152
+ "name": "string",
153
+ "required": false
154
+ }
155
+ }
156
+ },
157
+ "required": false
158
+ },
159
+ "options": {
160
+ "defaultValue": {
161
+ "value": "[]",
162
+ "computed": false
163
+ },
164
+ "description": "",
165
+ "type": {
166
+ "name": "arrayOf",
167
+ "value": {
168
+ "name": "shape",
169
+ "value": {
170
+ "value": {
171
+ "name": "string",
172
+ "required": false
173
+ },
174
+ "label": {
175
+ "name": "string",
176
+ "required": false
177
+ }
178
+ }
179
+ }
180
+ },
181
+ "required": false
182
+ },
183
+ "after": {
184
+ "description": "",
185
+ "type": {
186
+ "name": "any"
187
+ },
188
+ "required": false
189
+ },
190
+ "before": {
191
+ "description": "",
192
+ "type": {
193
+ "name": "any"
126
194
  },
127
195
  "required": false
128
196
  },
@@ -133,7 +201,28 @@ Choice.__docgenInfo = {
133
201
  },
134
202
  "required": false
135
203
  },
136
- "fill": {
204
+ "isMultiple": {
205
+ "description": "",
206
+ "type": {
207
+ "name": "bool"
208
+ },
209
+ "required": false
210
+ },
211
+ "labelTextActiveColor": {
212
+ "description": "",
213
+ "type": {
214
+ "name": "string"
215
+ },
216
+ "required": false
217
+ },
218
+ "labelTextColor": {
219
+ "description": "",
220
+ "type": {
221
+ "name": "string"
222
+ },
223
+ "required": false
224
+ },
225
+ "labelTextSize": {
137
226
  "description": "",
138
227
  "type": {
139
228
  "name": "string"
@@ -147,10 +236,10 @@ Choice.__docgenInfo = {
147
236
  },
148
237
  "required": false
149
238
  },
150
- "options": {
239
+ "set": {
151
240
  "description": "",
152
241
  "type": {
153
- "name": "array"
242
+ "name": "string"
154
243
  },
155
244
  "required": false
156
245
  },
@@ -161,6 +250,13 @@ Choice.__docgenInfo = {
161
250
  },
162
251
  "required": false
163
252
  },
253
+ "size": {
254
+ "description": "",
255
+ "type": {
256
+ "name": "string"
257
+ },
258
+ "required": false
259
+ },
164
260
  "type": {
165
261
  "description": "",
166
262
  "type": {
@@ -56,8 +56,19 @@ var OTPInput = function (_a) {
56
56
  };
57
57
  var handleInputChange = function (event) {
58
58
  var nativeEvent = event.nativeEvent;
59
- if (!isInputValueValid(event.target.value)) {
60
- // @ts-expect-error - This was added previosly to handle and edge case
59
+ var value = event.target.value;
60
+ if (!isInputValueValid(value)) {
61
+ // Pasting from the native autofill suggestion on a mobile device can pass
62
+ // the pasted string as one long input to one of the cells. This ensures
63
+ // that we handle the full input and not just the first character.
64
+ if (value.length === numInputs) {
65
+ var hasInvalidInput = value.split('').some(function (cellInput) { return !isInputValueValid(cellInput); });
66
+ if (!hasInvalidInput) {
67
+ handleOTPChange(value.split(''));
68
+ focusInput(numInputs - 1);
69
+ }
70
+ }
71
+ // @ts-expect-error - This was added previously to handle and edge case
61
72
  // for dealing with keyCode "229 Unidentified" on Android. Check if this is
62
73
  // still needed.
63
74
  if (nativeEvent.data === null && nativeEvent.inputType === 'deleteContentBackward') {
@@ -164,7 +175,6 @@ var OTPInput = function (_a) {
164
175
  onKeyDown: handleKeyDown,
165
176
  onPaste: handlePaste,
166
177
  autoComplete: 'off',
167
- maxLength: 1,
168
178
  'aria-label': "Please enter OTP character ".concat(index + 1),
169
179
  style: Object.assign(!skipDefaultStyles ? { width: '1em', textAlign: 'center' } : {}, isStyleObject(inputStyle) ? inputStyle : {}),
170
180
  className: typeof inputStyle === 'string' ? inputStyle : undefined,