@itcase/ui 1.0.82 → 1.0.83

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.
@@ -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
  },
@@ -40,7 +40,9 @@ 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
44
46
  } = props;
45
47
  const controlRef = React.useRef(null);
46
48
  const optionsRefs = React.useMemo(() => new Map(options.map(item => [item.value, /*#__PURE__*/React.createRef()])), [options]);
@@ -92,10 +94,10 @@ const Choice = /*#__PURE__*/React__default.default.forwardRef((props, ref) => {
92
94
  }), /*#__PURE__*/React__default.default.createElement("label", {
93
95
  className: clsx__default.default('choice__item-label'),
94
96
  htmlFor: item.label
95
- }, /*#__PURE__*/React__default.default.createElement(index.Text, {
97
+ }, before, /*#__PURE__*/React__default.default.createElement(index.Text, {
96
98
  size: labelTextSize,
97
99
  textColor: item.value === active.value ? labelTextActiveColor : labelTextColor
98
- }, item.label))))));
100
+ }, item.label), after)))));
99
101
  });
100
102
  Choice.displayName = 'Choice';
101
103
  Choice.propTypes = {
@@ -258,7 +258,7 @@ function DropdownItem(props) {
258
258
  styles: dropdownItem
259
259
  } = useStyles.useStyles(props);
260
260
  return /*#__PURE__*/React__default.default.createElement("div", {
261
- className: clsx__default.default('dropdown__item', isActive && 'dropdown__item_state_active', isHover && 'dropdown__item_state_hover', directionClass, className, fillClass, fillHoverClass, fillActiveClass, fillActiveHoverClass, fillDisabledClass, sizeClass, shapeClass, typeClass, widthClass, set && `dropdown__item_set_${set}`, justifyContentClass),
261
+ className: clsx__default.default('dropdown__item', isActive && 'dropdown__item_state_active', isHover && 'dropdown__item_state_hover', directionClass, className, fillClass, fillHoverClass, fillActiveClass, fillActiveHoverClass, fillDisabledClass, sizeClass, shapeClass, typeClass, widthClass, onClick && 'cursor_type_pointer', set && `dropdown__item_set_${set}`, justifyContentClass),
262
262
  style: dropdownItem,
263
263
  onClick: onClick,
264
264
  onMouseEnter: onMouseEnter
@@ -67,6 +67,10 @@ function Label(props) {
67
67
  prefix: 'fill_',
68
68
  propsKey: 'fill'
69
69
  });
70
+ const fillHoverClass = useDeviceTargetClass.useDeviceTargetClass(props, {
71
+ prefix: 'fill_hover_',
72
+ propsKey: 'fillHover'
73
+ });
70
74
  const sizeClass = useDeviceTargetClass.useDeviceTargetClass(props, {
71
75
  prefix: 'label_size_',
72
76
  propsKey: 'size'
@@ -83,6 +87,10 @@ function Label(props) {
83
87
  prefix: 'border_type_',
84
88
  propsKey: 'borderType'
85
89
  });
90
+ const widthClass = useDeviceTargetClass.useDeviceTargetClass(props, {
91
+ prefix: 'width_',
92
+ propsKey: 'width'
93
+ });
86
94
  const wrapClass = useDeviceTargetClass.useDeviceTargetClass(props, {
87
95
  prefix: 'word-wrap_',
88
96
  propsKey: 'labelTextWrap'
@@ -91,7 +99,7 @@ function Label(props) {
91
99
  styles: labelStyles
92
100
  } = useStyles.useStyles(props);
93
101
  return /*#__PURE__*/React__default.default.createElement("div", {
94
- className: clsx__default.default(className, 'label', fillClass || labelConfig.appearance[appearance] && `fill_${labelConfig.appearance[appearance].fillClass}`.replace(/([A-Z])/g, '-$1').toLowerCase(), shapeClass, borderClass, borderTypeClass, sizeClass, wrapClass, alignDirectionClass, alignClass, type && `label_type_${type}`, set && `label_set_${set}`, onClick && (cursor || 'cursor_type_pointer')),
102
+ className: clsx__default.default(className, 'label', fillClass || labelConfig.appearance[appearance] && `fill_${labelConfig.appearance[appearance].fillClass}`.replace(/([A-Z])/g, '-$1').toLowerCase(), fillHoverClass || labelConfig.appearance[appearance] && `fill_hover_${labelConfig.appearance[appearance].fillHoverClass}`.replace(/([A-Z])/g, '-$1').toLowerCase(), shapeClass, borderClass, borderTypeClass, sizeClass, wrapClass, widthClass, alignDirectionClass, alignClass, type && `label_type_${type}`, set && `label_set_${set}`, onClick && (cursor || 'cursor_type_pointer')),
95
103
  "data-tour": dataTour,
96
104
  style: labelStyles,
97
105
  onClick: onClick
@@ -177,7 +177,7 @@ const SearchInput = /*#__PURE__*/React__default.default.forwardRef(function Sear
177
177
  textWeight: placeholderWeightClass,
178
178
  textStyle: placeholderStyleClass,
179
179
  textColor: placeholderColorClass
180
- }, placeholder || 'Search')), (iconClear || iconClearSrc) && /*#__PURE__*/React__default.default.createElement(index.Icon, {
180
+ }, placeholder || 'Search')), value && /*#__PURE__*/React__default.default.createElement(index.Icon, {
181
181
  className: clsx__default.default('search-input__clear', onClickClearIcon && 'cursor_type_pointer'),
182
182
  SvgImage: iconClear,
183
183
  imageSrc: iconClearSrc,
@@ -7996,6 +7996,7 @@ const SelectOption = props => {
7996
7996
  data
7997
7997
  } = props;
7998
7998
  const {
7999
+ menuItemSize,
7999
8000
  optionFill,
8000
8001
  optionFillHover,
8001
8002
  optionBorder,
@@ -8008,7 +8009,7 @@ const SelectOption = props => {
8008
8009
  optionAfter
8009
8010
  } = props.selectProps;
8010
8011
  return /*#__PURE__*/React__namespace.default.createElement(Select$1.components.Option, Object.assign({}, props, {
8011
- className: clsx__default.default('select__menu-list-item', isSelected && 'select__menu-list-item_state_selected', optionFill, optionBorder, optionBorderType, optionFillHover, optionShape)
8012
+ className: clsx__default.default('select__menu-list-item', isSelected && 'select__menu-list-item_state_selected', menuItemSize && `select__menu-list-item_size_${menuItemSize}`, optionFill, optionBorder, optionBorderType, optionFillHover, optionShape)
8012
8013
  }), optionBefore, /*#__PURE__*/React__namespace.default.createElement(index$2.Text, {
8013
8014
  className: "select__menu-list-item_option",
8014
8015
  size: optionTextSize,
@@ -8271,6 +8272,7 @@ const SelectContainer = /*#__PURE__*/React__namespace.default.forwardRef(functio
8271
8272
  isCreatable,
8272
8273
  isMulti,
8273
8274
  isSearchable,
8275
+ menuItemSize,
8274
8276
  noOptionsText,
8275
8277
  openMenuOnClick,
8276
8278
  options,
@@ -8433,6 +8435,7 @@ const SelectContainer = /*#__PURE__*/React__namespace.default.forwardRef(functio
8433
8435
  isSearchable: isSearchable,
8434
8436
  set: set,
8435
8437
  optionFill: optionFillClass,
8438
+ menuItemSize: menuItemSize,
8436
8439
  optionFillHover: optionFillHoverClass,
8437
8440
  optionTextSize: optionTextSizeClass,
8438
8441
  optionTextColor: optionTextColorClass,
@@ -67,6 +67,7 @@ function Tab(props) {
67
67
  labelTextSize,
68
68
  labelTextWrap,
69
69
  labelTextStyle,
70
+ reset,
70
71
  labelTextWeight,
71
72
  dataTour,
72
73
  dividerFill,
@@ -138,7 +139,7 @@ function Tab(props) {
138
139
  styles: tab
139
140
  } = useStyles.useStyles(props);
140
141
  return /*#__PURE__*/React__default.default.createElement("div", {
141
- className: clsx__default.default('tab', isActive && 'tab_state_active', isHover && 'tab_state_hover', fillClass || tabConfig.appearance[appearance] && `fill_${tabConfig.appearance[appearance].fillClass}`.replace(/([A-Z])/g, '-$1').toLowerCase(), fillHoverClass || tabConfig.appearance[appearance] && `fill_hover_${tabConfig.appearance[appearance].fillHoverClass}`.replace(/([A-Z])/g, '-$1').toLowerCase(), className, sizeClass, fillActiveClass, fillActiveHoverClass, fillDisabledClass, shapeClass, typeClass, widthClass, set && `tab_set_${set}`, justifyContentClass, onClick && 'cursor_type_pointer'),
142
+ className: clsx__default.default('tab', isActive && 'tab_state_active', isHover && 'tab_state_hover', fillClass || tabConfig.appearance[appearance] && `fill_${tabConfig.appearance[appearance].fillClass}`.replace(/([A-Z])/g, '-$1').toLowerCase(), fillHoverClass || tabConfig.appearance[appearance] && `fill_hover_${tabConfig.appearance[appearance].fillHoverClass}`.replace(/([A-Z])/g, '-$1').toLowerCase(), className, sizeClass, fillActiveClass, fillActiveHoverClass, fillDisabledClass, shapeClass, typeClass, widthClass, reset && 'tab-reset', set && `tab_set_${set}`, justifyContentClass, onClick && 'cursor_type_pointer'),
142
143
  "data-tour": dataTour,
143
144
  style: tab,
144
145
  onClick: onClick,
@@ -30,13 +30,15 @@
30
30
  }
31
31
  }
32
32
  .accordion-item {
33
+ min-width: 170px;
34
+ padding: 10px 12px;
33
35
  display: flex;
34
36
  flex-flow: row wrap;
37
+ gap: 8px;
35
38
  &__title {
36
39
  flex: 1;
37
40
  }
38
41
  &__icon {
39
- margin: 0 0 0 40px;
40
42
  align-self: center;
41
43
  transform-origin: 50% 50%;
42
44
  transition: all 0.6s cubic-bezier(0.19, 1, 0.22, 1);
@@ -58,6 +58,7 @@
58
58
  .grid {
59
59
  @each $val in 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200 {
60
60
  &_columns_$(val) {
61
+ grid-template-columns: repeat($(val), 1fr);
61
62
  & > ^&__wrapper {
62
63
  & > div {
63
64
  grid-template-columns: repeat($(val), 1fr);
@@ -101,10 +102,11 @@
101
102
  .grid {
102
103
  @each $val in 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200 {
103
104
  &_rows_$(val) {
105
+ grid-template-columns: repeat($(val), 1fr);
104
106
  & > ^&__wrapper {
105
107
  & > div {
106
108
  grid-template-columns: repeat($(val), 1fr);
107
- }
109
+ }
108
110
  }
109
111
  }
110
112
  }
@@ -132,6 +132,7 @@
132
132
  .select {
133
133
  &__placeholder {
134
134
  position: absolute;
135
+ display: flex;
135
136
  }
136
137
  }
137
138
 
@@ -188,23 +189,40 @@
188
189
  }
189
190
  }
190
191
 
192
+ .select {
193
+ &__menu {
194
+ &-list {
195
+ &-item {
196
+ &_size {
197
+ @each $size in xs, s, m, l, xl, xxl {
198
+ &_$(size) {
199
+ padding: var(--select-menu-list-item-size-$(size)-padding, 5px 10px);
200
+ }
201
+ }
202
+ }
203
+ }
204
+ }
205
+ }
206
+ }
207
+
191
208
  .select {
192
209
  &__menu {
193
210
  width: 100%;
211
+ background: var(--color-surface-primary);
212
+ padding: 12px 0;
194
213
  margin: var(--select-menu-margin, 0);
214
+ border-radius: var(--select-menu-border-radius, 0);
195
215
  border-top: none;
196
216
  position: absolute;
197
217
  left: 0;
198
218
  top: 100%;
199
219
  z-index: 100000;
200
- border-radius: var(--select-menu-border-radius, 0);
201
220
  &-group-heading {
202
221
  z-index: 100000;
203
222
  }
204
223
  &-list {
205
224
  overflow-y: auto;
206
225
  max-height: 240px;
207
- border-radius: var(--select-menu-border-radius, 0);
208
226
  &-item {
209
227
  width: 100%;
210
228
  position: relative;
@@ -216,11 +234,11 @@
216
234
  }
217
235
  &_selected {
218
236
  height: 100%;
237
+ position: absolute;
219
238
  display: flex;
220
239
  align-items: center;
221
- position: absolute;
222
- right: 8px;
223
240
  top: 0;
241
+ right: 8px;
224
242
  }
225
243
  }
226
244
 
@@ -0,0 +1,15 @@
1
+ .select {
2
+ &__menu {
3
+ &-list {
4
+ &-item {
5
+ &_size {
6
+ @each $size in xs, s, m, l, xl, xxl {
7
+ &_$(size) {
8
+ padding: var(--select-menu-list-item-size-$(size)-padding, 5px 10px);
9
+ }
10
+ }
11
+ }
12
+ }
13
+ }
14
+ }
15
+ }
@@ -1,20 +1,21 @@
1
1
  .select {
2
2
  &__menu {
3
3
  width: 100%;
4
+ background: var(--color-surface-primary);
5
+ padding: 12px 0;
4
6
  margin: var(--select-menu-margin, 0);
7
+ border-radius: var(--select-menu-border-radius, 0);
5
8
  border-top: none;
6
9
  position: absolute;
7
10
  left: 0;
8
11
  top: 100%;
9
12
  z-index: 100000;
10
- border-radius: var(--select-menu-border-radius, 0);
11
13
  &-group-heading {
12
14
  z-index: 100000;
13
15
  }
14
16
  &-list {
15
17
  overflow-y: auto;
16
18
  max-height: 240px;
17
- border-radius: var(--select-menu-border-radius, 0);
18
19
  &-item {
19
20
  width: 100%;
20
21
  position: relative;
@@ -26,11 +27,11 @@
26
27
  }
27
28
  &_selected {
28
29
  height: 100%;
30
+ position: absolute;
29
31
  display: flex;
30
32
  align-items: center;
31
- position: absolute;
32
- right: 8px;
33
33
  top: 0;
34
+ right: 8px;
34
35
  }
35
36
  }
36
37
 
@@ -1,5 +1,6 @@
1
1
  .select {
2
2
  &__placeholder {
3
3
  position: absolute;
4
+ display: flex;
4
5
  }
5
6
  }
@@ -5,6 +5,35 @@
5
5
  align-content: center;
6
6
  }
7
7
  }
8
+ .tab-group {
9
+ position: relative;
10
+ display: flex;
11
+ flex-flow: row wrap;
12
+ align-items: stretch;
13
+ & .tab {
14
+ display: flex;
15
+ flex-flow: column nowrap;
16
+ justify-content: flex-end;
17
+ &__wrapper {
18
+ display: flex;
19
+ flex: 1;
20
+ justify-content: center;
21
+ align-items: center;
22
+ gap: 4px;
23
+ }
24
+ &__label {
25
+ display: flex;
26
+ flex: 1;
27
+ }
28
+ }
29
+ }
30
+ div.tab-reset {
31
+ & .tab__wrapper {
32
+ padding: 0;
33
+ gap: 0;
34
+ margin: 0;
35
+ }
36
+ }
8
37
  .tab {
9
38
  @each $val in flex-start, flex-end, center, space-between, space-around, space-evenly {
10
39
  &_justify-content_$(val) {
@@ -26,7 +55,7 @@
26
55
  }
27
56
  .tab {
28
57
  &_size {
29
- @each $size in normal, compact {
58
+ @each $size in normal, compact, xxs, xs, s, m, l, xl, xxl, {
30
59
  &_$(size) {
31
60
  ^^&__wrapper {
32
61
  padding: var(--tab-size-$(size)-padding);
@@ -36,28 +65,6 @@
36
65
  }
37
66
  }
38
67
  }
39
- .tab-group {
40
- position: relative;
41
- display: flex;
42
- flex-flow: row wrap;
43
- align-items: stretch;
44
- & .tab {
45
- display: flex;
46
- flex-flow: column nowrap;
47
- justify-content: flex-end;
48
- &__wrapper {
49
- display: flex;
50
- flex: 1;
51
- justify-content: center;
52
- align-items: center;
53
- gap: 4px;
54
- }
55
- &__label {
56
- display: flex;
57
- flex: 1;
58
- }
59
- }
60
- }
61
68
  :root {
62
69
  --tab-size-normal-padding: 10px;
63
70
  --tab-size-normal-gap: 10px;
@@ -1,8 +1,8 @@
1
1
  .textarea {
2
2
  width: 100%;
3
3
  min-width: 100%;
4
- min-height: 160px;
5
- max-height: 160px;
4
+ min-height: var(--textarea-min-height, 160px);
5
+ max-height: var(--textarea-max-height, 160px);
6
6
  padding: var(--textarea-padding, 16px 16px);
7
7
  padding: 0;
8
8
  margin: 0;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@itcase/ui",
3
- "version": "1.0.82",
3
+ "version": "1.0.83",
4
4
  "description": "UI components (Modal, Loader, Popup, etc)",
5
5
  "keywords": [
6
6
  "Modal",