@itcase/ui 1.0.5 → 1.0.7

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 (55) hide show
  1. package/dist/components/Avatar.js +56 -31
  2. package/dist/components/{Counter.js → Badge.js} +7 -7
  3. package/dist/components/Button.js +59 -54
  4. package/dist/components/Cell.js +21 -17
  5. package/dist/components/Checkbox.js +74 -22
  6. package/dist/components/Chips.js +2 -20
  7. package/dist/components/Divider.js +17 -1
  8. package/dist/components/Dropdown.js +195 -66
  9. package/dist/components/Grid.js +70 -33
  10. package/dist/components/Group.js +17 -1
  11. package/dist/components/Icon.js +45 -26
  12. package/dist/components/Image.js +3 -3
  13. package/dist/components/Input.js +19 -2
  14. package/dist/components/Label.js +11 -3
  15. package/dist/components/Logo.js +36 -12
  16. package/dist/components/MenuItem.js +11 -2
  17. package/dist/components/Modal.js +219 -41
  18. package/dist/components/Profile.js +10 -4
  19. package/dist/components/RadioButton.js +78 -26
  20. package/dist/components/Scrollbar.js +4 -4
  21. package/dist/components/Search.js +12 -9
  22. package/dist/components/Segmented.js +5 -3
  23. package/dist/components/Select.js +2 -2
  24. package/dist/components/Switch.js +2 -1
  25. package/dist/components/Tab.js +312 -0
  26. package/dist/components/Text.js +1 -3
  27. package/dist/components/Textarea.js +9 -1
  28. package/dist/components/Tile.js +43 -115
  29. package/dist/css/components/Avatar/Avatar.css +23 -10
  30. package/dist/css/components/Badge/Badge.css +55 -0
  31. package/dist/css/components/Button/Button.css +19 -8
  32. package/dist/css/components/Checkbox/Checkbox.css +60 -63
  33. package/dist/css/components/Chips/Chips.css +25 -7
  34. package/dist/css/components/Dropdown/Dropdown.css +21 -18
  35. package/dist/css/components/Fader/Fader.css +0 -1
  36. package/dist/css/components/Grid/Grid.css +5 -0
  37. package/dist/css/components/Grid/css/__row/grid__row.css +5 -0
  38. package/dist/css/components/Icon/Icon.css +4 -4
  39. package/dist/css/components/Input/Input.css +6 -0
  40. package/dist/css/components/List/List.css +3 -3
  41. package/dist/css/components/Logo/Logo.css +23 -0
  42. package/dist/css/components/{Popup/Popup.css → Modal/Modal.css} +5 -4
  43. package/dist/css/components/RadioButton/RadioButton.css +60 -59
  44. package/dist/css/components/Segmented/Segmented.css +97 -0
  45. package/dist/css/components/Switch/Switch.css +56 -46
  46. package/dist/css/components/Tab/Tab.css +49 -0
  47. package/dist/css/components/Tile/Tile.css +27 -10
  48. package/dist/css/styles/border-color/border-color.css +2 -2
  49. package/dist/css/styles/border-type/border-type.css +13 -0
  50. package/dist/css/styles/border-width/border-width.css +7 -0
  51. package/dist/css/styles/justify-content/justify-content.css +7 -0
  52. package/dist/hooks/styleAttributes.js +1 -1
  53. package/package.json +2 -1
  54. package/dist/components/Popup.js +0 -255
  55. package/dist/css/components/Counter/Counter.css +0 -55
@@ -1,255 +0,0 @@
1
- 'use strict';
2
-
3
- var React = require('react');
4
- var PropTypes = require('prop-types');
5
- var ReactDOM = require('react-dom');
6
- var clsx = require('clsx');
7
- var index = require('./Icon.js');
8
- var index$1 = require('./Text.js');
9
- var index$2 = require('./Fader.js');
10
- require('lodash/camelCase');
11
- require('lodash/maxBy');
12
- require('lodash/upperFirst');
13
- require('../context/UIContext.js');
14
- var useDeviceTargetClass = require('../hooks/useDeviceTargetClass.js');
15
- var index$3 = require('./Loader.js');
16
- require('react-inlinesvg');
17
- require('../constants/componentProps/fill.js');
18
- require('../constants/componentProps/iconSize.js');
19
- require('../constants/componentProps/shape.js');
20
- require('../constants/componentProps/strokeColor.js');
21
- require('./Link.js');
22
- require('../useStyles-e4accb53.js');
23
- require('../hooks/styleAttributes.js');
24
- require('../constants/componentProps/size.js');
25
- require('../constants/componentProps/textColor.js');
26
- require('../constants/componentProps/textGradient.js');
27
- require('../constants/componentProps/textStyle.js');
28
- require('../constants/componentProps/textWeight.js');
29
- require('../constants/componentProps/type.js');
30
- require('../constants/componentProps/underline.js');
31
- require('../hooks/useMediaQueries.js');
32
- require('react-responsive');
33
- require('lodash/castArray');
34
- require('../constants/componentProps/textColorActive.js');
35
- require('../constants/componentProps/textColorHover.js');
36
- require('../constants/componentProps/fillGradient.js');
37
-
38
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
39
-
40
- var React__default = /*#__PURE__*/_interopDefault(React);
41
- var PropTypes__default = /*#__PURE__*/_interopDefault(PropTypes);
42
- var ReactDOM__default = /*#__PURE__*/_interopDefault(ReactDOM);
43
- var clsx__default = /*#__PURE__*/_interopDefault(clsx);
44
-
45
- var getOrCreatePopupElement = function getOrCreatePopupElement(popupQuerySelector, className) {
46
- if (className === void 0) {
47
- className = '';
48
- }
49
- // prettier-ignore
50
- var classList = className && typeof className === 'string' ? className.split(' ').filter(Boolean) : [];
51
- var popupElement = document.querySelector(popupQuerySelector);
52
- if (!popupElement) {
53
- // Add popup element into the DOM on mount.
54
- popupElement = document.createElement('div');
55
- popupElement.setAttribute('id', 'popup-global');
56
- popupElement.classList.add('popup');
57
- if (classList.length) {
58
- var _popupElement$classLi;
59
- (_popupElement$classLi = popupElement.classList).add.apply(_popupElement$classLi, classList);
60
- }
61
- document.body.prepend(popupElement);
62
- }
63
- return popupElement;
64
- };
65
-
66
- // Popup component that is an abstraction around the portal API.
67
- var Popup = /*#__PURE__*/React__default.default.forwardRef(function Popup(props, ref) {
68
- var children = props.children,
69
- className = props.className,
70
- closeIcon = props.closeIcon,
71
- closeIconFill = props.closeIconFill,
72
- closeIconSize = props.closeIconSize,
73
- closeText = props.closeText;
74
- props.contentFill;
75
- var contentClassName = props.contentClassName,
76
- id = props.id,
77
- isFader = props.isFader,
78
- faderFill = props.faderFill,
79
- faderFillGradient = props.faderFillGradient,
80
- faderOpacity = props.faderOpacity,
81
- initialIsOpen = props.isOpen,
82
- isScrollOnOpen = props.isScrollOnOpen,
83
- isSetFocusOnOpen = props.isSetFocusOnOpen,
84
- popupQuerySelector = props.popupQuerySelector,
85
- debug = props.debug,
86
- onClosePopup = props.onClosePopup,
87
- onOpenPopup = props.onOpenPopup;
88
-
89
- // Query DOM element
90
- var _useState = React.useState(null),
91
- popupElement = _useState[0],
92
- setPopupElement = _useState[1];
93
- React.useLayoutEffect(function () {
94
- var element = getOrCreatePopupElement(popupQuerySelector, className);
95
- setPopupElement(element);
96
- if (element) {
97
- addPopupProps(element);
98
- }
99
- }, []);
100
- var popupContentRef = React.useRef(null);
101
- var popupFaderRef = React.useRef(null);
102
- var _useState2 = React.useState(initialIsOpen),
103
- isOpen = _useState2[0],
104
- setIsOpen = _useState2[1];
105
- var addPopupProps = React.useCallback(function (element) {
106
- // Change class need in "useEffect"
107
- if (isOpen) {
108
- // Show popup
109
- element.classList.add('popup_state_visible');
110
- // Scroll to opened popup
111
- if (isScrollOnOpen) {
112
- // popupContentRef.current.style.top = `${window.visualViewport.pageTop}px`
113
- element.scrollIntoView({
114
- block: 'center',
115
- behavior: 'smooth'
116
- });
117
- }
118
-
119
- // "setTimeout" in this implementation is needs for set focus on popup
120
- // after "onMouseDown" event on button
121
- if (isSetFocusOnOpen) {
122
- setTimeout(function () {
123
- return popupContentRef.current.focus();
124
- }, 0);
125
- }
126
- } else if (!element.children.length) {
127
- // Hide popup if has no children
128
- element.classList.remove('popup_state_visible');
129
- }
130
- }, [isOpen, isSetFocusOnOpen]);
131
- React.useEffect(function () {
132
- if (!popupElement) {
133
- return;
134
- }
135
- addPopupProps(popupElement);
136
- }, [isOpen]); // eslint-disable-line
137
-
138
- // Show popup with children content
139
- var openPopup = React.useCallback(function () {
140
- setIsOpen(true);
141
-
142
- // Callback
143
- if (typeof onOpenPopup === 'function') {
144
- onOpenPopup();
145
- }
146
-
147
- /* SHOW TARGET POPUP ABOVE OTHERS POPUPS IF TARGET ALREADY OPENED
148
- // If current popup is already opened
149
- // Move content to end of popup root container. For order in DOM.
150
- const popupContentElement = popupContentRef.current
151
- if (popupContentElement) {
152
- popupContentElement.parentNode.appendChild(popupContentElement)
153
- }
154
- // Also move fader to end of popup root container after container
155
- const popupFaderElement = popupFaderRef.current
156
- if (popupFaderElement) {
157
- popupFaderElement.parentNode.appendChild(popupFaderElement)
158
- }
159
- */
160
- }, [onOpenPopup]);
161
-
162
- // Hide popup and unmount children content
163
- var closePopup = React.useCallback(function (event) {
164
- if (event === void 0) {
165
- event = {};
166
- }
167
- var hasRelatedTarget = event.relatedTarget && popupElement.contains(event.relatedTarget);
168
- if (hasRelatedTarget) {
169
- return event;
170
- }
171
- setIsOpen(false);
172
-
173
- // Callback
174
- if (typeof onClosePopup === 'function') {
175
- onClosePopup();
176
- }
177
- }, [popupElement, onClosePopup]);
178
-
179
- // Save ref things
180
- React.useImperativeHandle(ref, function () {
181
- return {
182
- isOpen: isOpen,
183
- openPopup: openPopup,
184
- closePopup: closePopup,
185
- popupElement: popupElement
186
- };
187
- });
188
- var contentFillClass = useDeviceTargetClass.useDeviceTargetClass(props, {
189
- prefix: 'fill_',
190
- propsKey: 'contentFill'
191
- });
192
-
193
- // Use a portal to render the children into the element
194
- return popupElement && /*#__PURE__*/ReactDOM__default.default.createPortal(
195
- // Any valid React child: JSX, strings, arrays, etc.
196
- isOpen ? /*#__PURE__*/React__default.default.createElement(React__default.default.Fragment, null, /*#__PURE__*/React__default.default.createElement("div", {
197
- ref: popupContentRef,
198
- className: clsx__default.default('popup-content', contentClassName, contentFillClass),
199
- id: id,
200
- tabIndex: 0,
201
- onBlur: debug ? undefined : closePopup
202
- }, closeIcon && /*#__PURE__*/React__default.default.createElement("div", {
203
- className: "popup-content__close",
204
- onClick: closePopup
205
- }, closeIcon && /*#__PURE__*/React__default.default.createElement(index.Icon, {
206
- SvgImage: closeIcon,
207
- size: closeIconSize,
208
- fill: closeIconFill
209
- }), closeText && /*#__PURE__*/React__default.default.createElement(index$1.Text, null, closeText)), children), /*#__PURE__*/React__default.default.createElement(index$2.Fader, {
210
- ref: popupFaderRef,
211
- fill: faderFill,
212
- fillGradient: faderFillGradient,
213
- opacity: faderOpacity,
214
- className: "popup__fader",
215
- isFader: isFader
216
- })) : null,
217
- // A DOM element
218
- popupElement);
219
- });
220
- Popup.propTypes = {
221
- children: PropTypes__default.default.any,
222
- className: PropTypes__default.default.string,
223
- closeIcon: PropTypes__default.default.string,
224
- closeText: PropTypes__default.default.string,
225
- faderFill: PropTypes__default.default.string,
226
- faderFillGradient: PropTypes__default.default.string,
227
- faderOpacity: PropTypes__default.default.string,
228
- contentClassName: PropTypes__default.default.string,
229
- id: PropTypes__default.default.string,
230
- isFader: PropTypes__default.default.bool,
231
- isScrollOnOpen: PropTypes__default.default.bool,
232
- isSetFocusOnOpen: PropTypes__default.default.bool,
233
- popupQuerySelector: PropTypes__default.default.string,
234
- debug: PropTypes__default.default.bool,
235
- onClosePopup: PropTypes__default.default.func,
236
- onOpenPopup: PropTypes__default.default.func
237
- };
238
- Popup.defaultProps = {
239
- isFader: true,
240
- isOpen: false,
241
- isScrollOnOpen: true,
242
- isSetFocusOnOpen: true,
243
- popupQuerySelector: '#popup-global'
244
- };
245
-
246
- function PopupLoader(props) {
247
- return /*#__PURE__*/React__default.default.createElement("div", {
248
- className: "popup-loading"
249
- }, /*#__PURE__*/React__default.default.createElement("div", {
250
- className: "popup-loading__inner"
251
- }, /*#__PURE__*/React__default.default.createElement(index$3.Loader, null)));
252
- }
253
-
254
- exports.Popup = Popup;
255
- exports.PopupLoader = PopupLoader;
@@ -1,55 +0,0 @@
1
- .counter {
2
- display: flex;
3
- justify-content: center;
4
- align-items: center;
5
- border-radius: 50%;
6
- }
7
- .counter {
8
- &_size {
9
- @each $size in xxs, xs, s, m, l, xl, xxl {
10
- &_$(size) {
11
- min-width: var(--counter-width-size-$(size));
12
- min-height: var(--counter-height-size-$(size));
13
- max-height: var(--counter-height-size-$(size));
14
- }
15
- }
16
- }
17
- }
18
- .counter {
19
- &&_type {
20
- &_accent {
21
- background: var(--color-accent-primary);
22
- color: var(--color-accent-text-primary);
23
- }
24
- }
25
- }
26
- .counter {
27
- &&_type {
28
- &_primary {
29
- background: var(--color-primary);
30
- color: var(--color-primary-text-primary);
31
- }
32
- }
33
- }
34
- :root {
35
- --counter-width-size-xxs: 16px;
36
- --counter-height-size-xxs: 16px;
37
-
38
- --counter-width-size-xs: 18px;
39
- --counter-height-size-xs: 18px;
40
-
41
- --counter-width-size-s: 20px;
42
- --counter-height-size-s: 20px;
43
-
44
- --counter-width-size-m: 24px;
45
- --counter-height-size-m: 24px;
46
-
47
- --counter-width-size-l: 32px;
48
- --counter-height-size-l: 32px;
49
-
50
- --counter-width-size-xl: 40px;
51
- --counter-height-size-xl: 40px;
52
-
53
- --counter-width-size-xxl: 48px;
54
- --counter-height-size-xxl: 48px;
55
- }