@itcase/ui 1.0.30 → 1.0.32

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.
@@ -39,48 +39,37 @@ function Dropdown(props) {
39
39
  children = props.children,
40
40
  className = props.className;
41
41
  props.id;
42
- var set = props.set;
42
+ var set = props.set,
43
+ isOpen = props.isOpen,
44
+ setIsOpen = props.setIsOpen;
43
45
  var dropdownRef = React.useRef(null);
44
- var _useState = React.useState(false),
45
- isOpen = _useState[0],
46
- setIsOpen = _useState[1];
47
- var _useState2 = React.useState({
46
+
47
+ // const [isOpen, setIsOpen] = useState(false)
48
+ var _useState = React.useState({
48
49
  className: ''
49
50
  }),
50
- animationState = _useState2[0],
51
- setAnimationState = _useState2[1];
52
- var onClick = React.useCallback(function () {
53
- setIsOpen(function (prevState) {
54
- return !prevState;
55
- });
56
- setAnimationState(function (prevState) {
57
- return {
58
- className: prevState.className === animationOpen ? animationClose : animationOpen
59
- };
60
- });
61
- }, []);
51
+ animationState = _useState[0],
52
+ setAnimationState = _useState[1];
62
53
  var onAnimationEnd = React.useCallback(function (event) {
63
54
  // When component is change his visibility(display) in DOM,
64
55
  // 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)
71
56
  // const dropdownElement = dropdownRef.current
72
- // console.log('dropdownElement', dropdownElement)
73
- // console.log('dropdownElement hasClass', dropdownElement.hasClass(animationClose))
74
57
  setAnimationState(function (prevState) {
75
58
  return {
76
59
  className: isOpen ? prevState.className : ''
77
60
  };
78
61
  });
79
62
  }, [isOpen]);
63
+ React.useEffect(function () {
64
+ setAnimationState(function (prevState) {
65
+ return {
66
+ className: isOpen ? animationOpen : animationClose
67
+ };
68
+ });
69
+ }, [isOpen]);
80
70
 
81
71
  // Close dropdown by click outside
82
72
  React.useEffect(function () {
83
- // console.info('--------- useEffect Dropdown -------')
84
73
  // Add a handler to keep track of the click target.
85
74
  function onClickWindow(event) {
86
75
  var dropdownElement = dropdownRef.current;
@@ -92,14 +81,13 @@ function Dropdown(props) {
92
81
  if (!isContainsTarget && hasOpenClass) {
93
82
  // Trigger close event with animation
94
83
  // dropdownElement.click() - trigger "onClickWindow" again
95
- onClick();
84
+ setIsOpen(false);
96
85
  }
97
86
  }
98
87
  }
99
88
  // Add event listener for current dropdown on first render
100
89
  window.addEventListener('click', onClickWindow);
101
90
  return function () {
102
- // console.info('--------- UNMOUNT useEffect Dropdown -------')
103
91
  // Remove event listener for current dropdown on unmount
104
92
  window.removeEventListener('click', onClickWindow);
105
93
  };
@@ -123,17 +111,10 @@ function Dropdown(props) {
123
111
  });
124
112
  var _useStyles = useStyles.useStyles(props),
125
113
  styles = _useStyles.styles;
126
-
127
- // console.warn('====== Dropdown ========')
128
- // console.log('props: ', props)
129
- // console.log('isOpen: ', isOpen)
130
- // console.log('animationState: ', animationState)
131
-
132
114
  return /*#__PURE__*/React__default.default.createElement("div", {
133
115
  className: clsx__default.default(className, 'dropdown', set && "dropdown_set_" + set, shapeClass, fillClass, fillHoverClass, elevationClass, isOpen ? 'dropdown_state_open' : 'dropdown_state_close', animationState.className),
134
116
  ref: dropdownRef,
135
- style: styles,
136
- onClick: onClick
117
+ style: styles
137
118
  }, children &&
138
119
  /*#__PURE__*/
139
120
  // Add "onAnimationEnd" only for wrapper for ignore dropdown button
@@ -230,6 +230,18 @@ function GridItem(props) {
230
230
  prefix: 'fill_',
231
231
  propsKey: 'fill'
232
232
  });
233
+ var gapClass = useDeviceTargetClass.useDeviceTargetClass(props, {
234
+ prefix: 'gap_',
235
+ propsKey: 'gap'
236
+ });
237
+ var rowGapClass = useDeviceTargetClass.useDeviceTargetClass(props, {
238
+ prefix: 'row-gap_',
239
+ propsKey: 'rowGap'
240
+ });
241
+ var columnGapClass = useDeviceTargetClass.useDeviceTargetClass(props, {
242
+ prefix: 'column-gap_',
243
+ propsKey: 'columnGap'
244
+ });
233
245
  var directionClass = useDeviceTargetClass.useDeviceTargetClass(props, {
234
246
  prefix: 'direction_',
235
247
  propsKey: 'direction'
@@ -237,7 +249,7 @@ function GridItem(props) {
237
249
  var _useStyles = useStyles.useStyles(props),
238
250
  gridItemStyles = _useStyles.styles;
239
251
  return /*#__PURE__*/React__default.default.createElement("div", {
240
- className: clsx__default.default(className, 'grid__item', orderClass, fillClass, alignSelfClass, justifySelfClass, columnStartClass, columnEndClass, columnSpanClass, rowStartClass, rowEndClass, rowSpanClass, directionClass),
252
+ className: clsx__default.default(className, 'grid__item', orderClass, fillClass, alignSelfClass, justifySelfClass, columnStartClass, columnEndClass, columnSpanClass, rowStartClass, rowEndClass, rowSpanClass, directionClass, gapClass, rowGapClass, columnGapClass),
241
253
  id: id,
242
254
  "data-tour": dataTour,
243
255
  style: gridItemStyles
@@ -75,10 +75,14 @@ function Label(props) {
75
75
  prefix: 'border_',
76
76
  propsKey: 'borderType'
77
77
  });
78
+ var wrapClass = useDeviceTargetClass.useDeviceTargetClass(props, {
79
+ prefix: 'word-wrap_',
80
+ propsKey: 'labelTextWrap'
81
+ });
78
82
  var _useStyles = useStyles.useStyles(props),
79
83
  labelStyles = _useStyles.styles;
80
84
  return /*#__PURE__*/React__default.default.createElement("div", {
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),
85
+ className: clsx__default.default(className, 'label', fillClass || 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),
82
86
  "data-tour": dataTour,
83
87
  style: labelStyles
84
88
  }, /*#__PURE__*/React__default.default.createElement("div", {
@@ -53,7 +53,8 @@ var Segmented = /*#__PURE__*/React__default.default.forwardRef(function (props,
53
53
  offsetLeft = activeSegmentRef.current.offsetLeft;
54
54
  }
55
55
  controlRef.current.style.setProperty('--segmented-active-width', offsetWidth + "px");
56
- controlRef.current.style.setProperty('--segmented-active-x-pos', offsetLeft - 2 + "px");
56
+ // controlRef.current.style.setProperty('--segmented-active-x-pos', `${offsetLeft - 2}px`)
57
+ controlRef.current.style.setProperty('--segmented-active-x-pos', offsetLeft + "px");
57
58
  }, [activeSegment, segmentsRefs]);
58
59
  var indicatorFillClass = useDeviceTargetClass.useDeviceTargetClass(props, {
59
60
  prefix: 'fill_',
@@ -7669,23 +7669,28 @@ SelectNoOptions.propTypes = {
7669
7669
 
7670
7670
  var SelectOption = function SelectOption(props) {
7671
7671
  var label = props.label,
7672
- isSelected = props.isSelected,
7673
- data = props.data;
7672
+ isSelected = props.isSelected;
7673
+ props.data;
7674
7674
  var _props$selectProps = props.selectProps,
7675
7675
  optionFill = _props$selectProps.optionFill,
7676
7676
  optionFillHover = _props$selectProps.optionFillHover,
7677
7677
  optionBorder = _props$selectProps.optionBorder,
7678
7678
  optionBorderType = _props$selectProps.optionBorderType,
7679
+ optionSelected = _props$selectProps.optionSelected,
7679
7680
  optionTextSize = _props$selectProps.optionTextSize,
7680
7681
  optionShape = _props$selectProps.optionShape,
7681
- optionTextColor = _props$selectProps.optionTextColor;
7682
+ optionTextColor = _props$selectProps.optionTextColor,
7683
+ optionBefore = _props$selectProps.optionBefore,
7684
+ optionAfter = _props$selectProps.optionAfter;
7682
7685
  return /*#__PURE__*/React__namespace.default.createElement(Select$1.components.Option, Object.assign({}, props, {
7683
7686
  className: clsx__default.default('select__menu-list-item', isSelected && 'select__menu-list-item_state_selected', optionFill, optionBorder, optionBorderType, optionFillHover, optionShape)
7684
- }), data.optionBefore, /*#__PURE__*/React__namespace.default.createElement(index$2.Text, {
7687
+ }), optionBefore, /*#__PURE__*/React__namespace.default.createElement(index$2.Text, {
7685
7688
  className: "select__menu-list-item_option",
7686
7689
  size: optionTextSize,
7687
7690
  textColor: optionTextColor
7688
- }, label), data.optionAfter);
7691
+ }, label), isSelected && /*#__PURE__*/React__namespace.default.createElement("div", {
7692
+ className: "select__menu-list-item_selected"
7693
+ }, optionSelected), optionAfter);
7689
7694
  };
7690
7695
  SelectOption.propTypes = {
7691
7696
  selectProps: PropTypes__default.default.shape({
@@ -7697,8 +7702,7 @@ SelectOption.propTypes = {
7697
7702
  optionAfter: PropTypes__default.default.any
7698
7703
  }),
7699
7704
  label: PropTypes__default.default.string,
7700
- isSelected: PropTypes__default.default.any,
7701
- data: PropTypes__default.default.object
7705
+ isSelected: PropTypes__default.default.any
7702
7706
  };
7703
7707
 
7704
7708
  var SelectPlaceholder = function SelectPlaceholder(props) {
@@ -7784,6 +7788,9 @@ var SelectContainer = /*#__PURE__*/React__namespace.default.forwardRef(function
7784
7788
  noOptionsText = props.noOptionsText,
7785
7789
  openMenuOnClick = props.openMenuOnClick,
7786
7790
  options = props.options,
7791
+ optionBefore = props.optionBefore,
7792
+ optionAfter = props.optionAfter,
7793
+ optionSelected = props.optionSelected,
7787
7794
  elevation = props.elevation,
7788
7795
  placeholder = props.placeholder,
7789
7796
  set = props.set,
@@ -7923,6 +7930,9 @@ var SelectContainer = /*#__PURE__*/React__namespace.default.forwardRef(function
7923
7930
  optionShape: optionShapeClass,
7924
7931
  optionBorder: optionBorderClass,
7925
7932
  optionBorderType: optionBorderTypeClass,
7933
+ optionSelected: optionSelected,
7934
+ optionBefore: optionBefore,
7935
+ optionAfter: optionAfter,
7926
7936
  inputBefore: inputBefore,
7927
7937
  inputAfter: inputAfter,
7928
7938
  inputFill: inputFillClass,
@@ -727,14 +727,18 @@
727
727
  box-shadow: var(--date-picker-box-shadow);
728
728
  font-size: inherit;
729
729
  display: flex;
730
- &-popper {
731
- z-index: 10;
732
- }
733
730
  &__triangle {
734
731
  display: none;
735
732
  }
736
733
  &-wrapper {
737
734
  width: 100%;
735
+ ^&__input-container {
736
+ & .input {
737
+ cursor: pointer;
738
+ }
739
+ }
740
+ }
741
+ &__tab-loop {
738
742
  ^&-popper {
739
743
  z-index: 1000 !important;
740
744
  }
@@ -42,6 +42,7 @@
42
42
  }
43
43
  .dropdown {
44
44
  &__item {
45
+ cursor: pointer;
45
46
  min-width: 240px;
46
47
  &-label {
47
48
  display: block;
@@ -14,11 +14,15 @@
14
14
  position: absolute;
15
15
  content: '';
16
16
  display: block;
17
- box-shadow: 0 3px 8px rgba(0, 0, 0, 0.12), 0 3px 1px rgba(0, 0, 0, 0.04);
17
+ box-shadow:
18
+ 0 3px 8px rgba(0, 0, 0, 0.12),
19
+ 0 3px 1px rgba(0, 0, 0, 0.04);
18
20
  left: var(--segmented-active-x-pos);
19
21
  top: 0;
20
22
  z-index: 1;
21
- transition: left 0.3s ease, width 0.3s ease;
23
+ transition:
24
+ left 0.3s ease,
25
+ width 0.3s ease;
22
26
  }
23
27
  ^^&__item {
24
28
  border-radius: 6px;
@@ -26,7 +30,7 @@
26
30
  position: relative;
27
31
  display: flex;
28
32
  align-items: center;
29
- &::after {
33
+ /* &::after {
30
34
  width: 1px;
31
35
  height: 100%;
32
36
  background: var(--color-surface-border-tertiary);
@@ -39,7 +43,7 @@
39
43
  &::after {
40
44
  display: none;
41
45
  }
42
- }
46
+ } */
43
47
  &_state_active {
44
48
  & label {
45
49
  color: #fff;
@@ -68,7 +72,7 @@
68
72
  transition: color 0.5s ease;
69
73
  cursor: pointer;
70
74
  &-text {
71
- @mixin word-wrap;
75
+ @mixin word-wrap;
72
76
  }
73
77
  }
74
78
  }
@@ -170,9 +170,21 @@
170
170
  border-radius: var(--select-menu-border-radius, 0);
171
171
  &-item {
172
172
  width: 100%;
173
+ position: relative;
174
+ &_state_selected {
175
+
176
+ }
173
177
  &_option {
174
178
  z-index: 100000;
175
179
  }
180
+ &_selected {
181
+ height: 100%;
182
+ display: flex;
183
+ align-items: center;
184
+ position: absolute;
185
+ right: 8px;
186
+ top: 0;
187
+ }
176
188
  }
177
189
 
178
190
  &--is-multi {
@@ -274,13 +286,11 @@
274
286
  flex-wrap: nowrap;
275
287
  align-items: center;
276
288
  &--is-multi {
289
+ flex-wrap: wrap;
277
290
  gap: 8px;
278
291
  & .select__placeholder {
279
292
  position: relative;
280
293
  }
281
- & .select__input-container {
282
- display: none;
283
- }
284
294
  }
285
295
  }
286
296
  }
@@ -17,9 +17,21 @@
17
17
  border-radius: var(--select-menu-border-radius, 0);
18
18
  &-item {
19
19
  width: 100%;
20
+ position: relative;
21
+ &_state_selected {
22
+
23
+ }
20
24
  &_option {
21
25
  z-index: 100000;
22
26
  }
27
+ &_selected {
28
+ height: 100%;
29
+ display: flex;
30
+ align-items: center;
31
+ position: absolute;
32
+ right: 8px;
33
+ top: 0;
34
+ }
23
35
  }
24
36
 
25
37
  &--is-multi {
@@ -7,13 +7,11 @@
7
7
  flex-wrap: nowrap;
8
8
  align-items: center;
9
9
  &--is-multi {
10
+ flex-wrap: wrap;
10
11
  gap: 8px;
11
12
  & .select__placeholder {
12
13
  position: relative;
13
14
  }
14
- & .select__input-container {
15
- display: none;
16
- }
17
15
  }
18
16
  }
19
17
  }
@@ -44,6 +44,7 @@
44
44
  display: flex;
45
45
  flex-flow: column nowrap;
46
46
  justify-content: flex-end;
47
+ cursor: pointer;
47
48
  &__wrapper {
48
49
  display: flex;
49
50
  flex: 1;
@@ -0,0 +1,5 @@
1
+ .column-gap {
2
+ @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 {
3
+ column-gap: $(val)px;
4
+ }
5
+ }
@@ -0,0 +1,5 @@
1
+ .gap {
2
+ @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 {
3
+ gap: $(val)px;
4
+ }
5
+ }
@@ -0,0 +1,5 @@
1
+ .row-gap {
2
+ @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 {
3
+ row-gap: $(val)px;
4
+ }
5
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@itcase/ui",
3
- "version": "1.0.30",
3
+ "version": "1.0.32",
4
4
  "description": "UI components (Modal, Loader, Popup, etc)",
5
5
  "keywords": [
6
6
  "Modal",