@via-profit/ui-kit 0.1.8 → 0.2.1-alpha.3

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 (157) hide show
  1. package/Accordion/index.d.ts +4 -4
  2. package/Autocomplete/AutocompleteContainer.d.ts +34 -7
  3. package/Autocomplete/AutocompleteContainer.js +28 -24
  4. package/Autocomplete/AutocompleteItem.d.ts +1 -1
  5. package/Autocomplete/AutocompleteTextField.d.ts +3 -0
  6. package/Autocomplete/AutocompleteTextField.js +63 -1
  7. package/Autocomplete/OverrideMenuList.d.ts +4 -0
  8. package/Autocomplete/OverrideMenuList.js +39 -0
  9. package/Autocomplete/context.d.ts +9 -1
  10. package/Autocomplete/context.js +15 -1
  11. package/Autocomplete/index.js +9 -10
  12. package/Autocomplete2/Autocomplete2.d.ts +12 -0
  13. package/Autocomplete2/Autocomplete2.js +83 -0
  14. package/Autocomplete2/Autocomplete2TextField.d.ts +7 -0
  15. package/Autocomplete2/Autocomplete2TextField.js +39 -0
  16. package/Autocomplete2/index.d.ts +2 -0
  17. package/Autocomplete2/index.js +7 -0
  18. package/Avatar/AvatarBase.d.ts +4 -4
  19. package/Avatar/index.js +1 -1
  20. package/Badge/BadgeBase.d.ts +4 -4
  21. package/Badge/BadgeDeleteButton.js +6 -6
  22. package/Badge/BadgeOutlined.js +2 -2
  23. package/Badge/BadgeStandard.js +1 -1
  24. package/Button/ButtonBase.d.ts +3 -3
  25. package/Button/ButtonOutlined.js +1 -1
  26. package/Button/ButtonPlain.js +1 -1
  27. package/Button/ButtonStandard.js +4 -11
  28. package/Calendar/CalendarCell.js +22 -4
  29. package/Calendar/CalendarComponent.d.ts +226 -0
  30. package/Calendar/CalendarComponent.js +572 -0
  31. package/Calendar/CalendarControlButton.js +16 -9
  32. package/Calendar/CalendarDayBadge.js +1 -1
  33. package/Calendar/CalendarEmptyCell.d.ts +2 -2
  34. package/Calendar/CalendarEmptyCell.js +8 -3
  35. package/Calendar/CalendarHeading.js +2 -1
  36. package/Calendar/CalendarMonthCell.js +0 -5
  37. package/Calendar/CalendarSubheading.js +3 -2
  38. package/Calendar/CalendarWeekDayCell.d.ts +10 -0
  39. package/Calendar/CalendarWeekDayCell.js +32 -0
  40. package/Calendar/CalendarWeekDayWeekNumber.d.ts +7 -0
  41. package/Calendar/CalendarWeekDayWeekNumber.js +38 -0
  42. package/Calendar/CalendarWeekRow.d.ts +2 -2
  43. package/Calendar/CalendarWeekRow.js +2 -1
  44. package/Calendar/CalendarWeekRowButton.d.ts +13 -0
  45. package/Calendar/CalendarWeekRowButton.js +31 -0
  46. package/Calendar/CalendarYearCell.js +5 -5
  47. package/Calendar/CalendarYearsSelector.d.ts +39 -1
  48. package/Calendar/CalendarYearsSelector.js +52 -16
  49. package/Calendar/IconChevronDown.d.ts +3 -0
  50. package/Calendar/IconChevronDown.js +31 -0
  51. package/Calendar/index.d.ts +7 -220
  52. package/Calendar/index.js +19 -274
  53. package/Calendar/use-calendar.d.ts +1 -1
  54. package/Calendar/use-calendar.js +102 -155
  55. package/Color/Color.d.ts +138 -0
  56. package/Color/Color.js +324 -0
  57. package/Color/ColorGenerator.d.ts +29 -0
  58. package/Color/ColorGenerator.js +141 -0
  59. package/Color/ColorParser.d.ts +20 -0
  60. package/Color/ColorParser.js +284 -0
  61. package/Color/index.d.ts +4 -122
  62. package/Color/index.js +18 -473
  63. package/DatePicker/index.d.ts +2 -17
  64. package/DatePicker/index.js +47 -61
  65. package/DatePicker/useDatePickerFormat.js +5 -5
  66. package/ErrorBoundary/Fallback.d.ts +3 -0
  67. package/ErrorBoundary/Fallback.js +51 -0
  68. package/ErrorBoundary/RenderError.d.ts +6 -0
  69. package/ErrorBoundary/RenderError.js +80 -0
  70. package/ErrorBoundary/index.d.ts +7 -11
  71. package/ErrorBoundary/index.js +4 -51
  72. package/Highlighted/index.d.ts +3 -3
  73. package/LoadingIndicator/Spinner.d.ts +5 -3
  74. package/LoadingIndicator/Spinner.js +61 -32
  75. package/LoadingIndicator/index.d.ts +3 -3
  76. package/LoadingIndicator/index.js +15 -2
  77. package/MaskedField/index.d.ts +1 -1
  78. package/MaskedField/index.js +11 -10
  79. package/Menu/AutoHeightWrapper.d.ts +6 -0
  80. package/Menu/AutoHeightWrapper.js +43 -0
  81. package/Menu/MeasuredItem.d.ts +10 -0
  82. package/Menu/MeasuredItem.js +51 -0
  83. package/Menu/MenuContainer.d.ts +53 -20
  84. package/Menu/MenuContainer.js +18 -11
  85. package/Menu/MenuItem.d.ts +24 -7
  86. package/Menu/MenuItem.js +13 -6
  87. package/Menu/MenuList.d.ts +4 -2
  88. package/Menu/MenuList.js +26 -6
  89. package/Menu/VirtualizedItem.d.ts +22 -0
  90. package/Menu/VirtualizedItem.js +69 -0
  91. package/Menu/VirtualizedList.d.ts +18 -0
  92. package/Menu/VirtualizedList.js +28 -0
  93. package/Menu/VirtualizedListComponent.d.ts +20 -0
  94. package/Menu/VirtualizedListComponent.js +305 -0
  95. package/Menu/index.d.ts +3 -1
  96. package/Menu/index.js +4 -7
  97. package/Modal/BaseModal/RenderModal.d.ts +3 -3
  98. package/Modal/BaseModal/index.d.ts +3 -3
  99. package/Modal/ConfirmBox/index.d.ts +5 -5
  100. package/Modal/Drawer/index.d.ts +5 -5
  101. package/Modal/MessageBox/index.d.ts +5 -5
  102. package/Popper/Popper.d.ts +148 -0
  103. package/Popper/Popper.js +113 -0
  104. package/Popper/PopperContainer.d.ts +2 -0
  105. package/Popper/PopperContainer.js +3 -6
  106. package/Popper/index.d.ts +5 -22
  107. package/Popper/index.js +18 -264
  108. package/Popper/usePopprer.d.ts +110 -0
  109. package/Popper/usePopprer.js +505 -0
  110. package/Selectbox/SelectboxButton.d.ts +5 -0
  111. package/Selectbox/SelectboxButton.js +48 -8
  112. package/Selectbox/SelectboxButtonWrapper.d.ts +2 -0
  113. package/Selectbox/SelectboxButtonWrapper.js +1 -17
  114. package/Selectbox/SelectboxMenu.d.ts +12 -0
  115. package/Selectbox/SelectboxMenu.js +50 -0
  116. package/Selectbox/index.d.ts +13 -13
  117. package/Selectbox/index.js +115 -97
  118. package/Surface/index.d.ts +5 -5
  119. package/Surface/index.js +1 -1
  120. package/Swiper/Swiper.d.ts +44 -0
  121. package/Swiper/Swiper.js +139 -0
  122. package/Swiper/SwiperContainer.d.ts +7 -0
  123. package/Swiper/SwiperContainer.js +14 -0
  124. package/Swiper/SwiperSlide.d.ts +7 -0
  125. package/Swiper/SwiperSlide.js +55 -0
  126. package/Swiper/SwiperTrack.d.ts +14 -0
  127. package/Swiper/SwiperTrack.js +58 -0
  128. package/Swiper/SwiperWrapper.d.ts +14 -0
  129. package/Swiper/SwiperWrapper.js +60 -0
  130. package/Swiper/index.d.ts +7 -0
  131. package/Swiper/index.js +26 -0
  132. package/Switch/SwitchDot.js +1 -1
  133. package/Switch/SwitchTrack.js +1 -1
  134. package/Switch/index.d.ts +8 -8
  135. package/TextArea/index.d.ts +7 -7
  136. package/TextField/TextFieldContainer.d.ts +2 -2
  137. package/TextField/TextFieldContainer.js +5 -3
  138. package/TextField/TextFieldErrorText.d.ts +2 -2
  139. package/TextField/TextFieldErrorText.js +5 -4
  140. package/TextField/TextFieldIconWrapper.d.ts +3 -3
  141. package/TextField/TextFieldIconWrapper.js +5 -3
  142. package/TextField/TextFieldInput.d.ts +2 -2
  143. package/TextField/TextFieldInput.js +6 -4
  144. package/TextField/TextFieldInputWrapper.d.ts +2 -2
  145. package/TextField/TextFieldInputWrapper.js +5 -3
  146. package/TextField/TextFieldLabel.d.ts +2 -2
  147. package/TextField/TextFieldLabel.js +5 -3
  148. package/TextField/TextFieldLabelAsterisk.d.ts +2 -2
  149. package/TextField/TextFieldLabelAsterisk.js +5 -3
  150. package/TextField/index.d.ts +15 -8
  151. package/TextField/index.js +49 -22
  152. package/ThemeProvider/createTheme.js +2 -2
  153. package/package.json +1 -1
  154. package/Calendar/reducer.d.ts +0 -14
  155. package/Calendar/reducer.js +0 -26
  156. /package/Calendar/{IconChevronRight.d.ts → CalendarIconNext.d.ts} +0 -0
  157. /package/Calendar/{IconChevronRight.js → CalendarIconNext.js} +0 -0
@@ -6,6 +6,13 @@ import { TextFieldInputWrapperProps } from './TextFieldInputWrapper';
6
6
  import { TextFieldInputProps } from './TextFieldInput';
7
7
  import { TextFieldErrorTextProps } from './TextFieldErrorText';
8
8
  import { TextFieldIconWrapperProps } from './TextFieldIconWrapper';
9
+ export * from './TextFieldContainer';
10
+ export * from './TextFieldLabel';
11
+ export * from './TextFieldLabelAsterisk';
12
+ export * from './TextFieldInputWrapper';
13
+ export * from './TextFieldInput';
14
+ export * from './TextFieldErrorText';
15
+ export * from './TextFieldIconWrapper';
9
16
  export interface TextFieldProps extends React.InputHTMLAttributes<HTMLInputElement> {
10
17
  /**
11
18
  * If true then `errorText` value will be displayed under the TextField element
@@ -50,31 +57,31 @@ export interface TextFieldOverrides {
50
57
  /**
51
58
  * Native `input` component
52
59
  */
53
- readonly Input?: React.ForwardRefExoticComponent<TextFieldInputProps & React.RefAttributes<HTMLInputElement>>;
60
+ readonly Input?: React.ComponentType<TextFieldInputProps & React.RefAttributes<HTMLInputElement>>;
54
61
  /**
55
62
  * Component for display error text
56
63
  */
57
- readonly ErrorText?: React.ForwardRefExoticComponent<TextFieldErrorTextProps & React.RefAttributes<HTMLDivElement>>;
64
+ readonly ErrorText?: React.ComponentType<TextFieldErrorTextProps & React.RefAttributes<HTMLDivElement>>;
58
65
  /**
59
66
  * Icons wrapper component
60
67
  */
61
- readonly IconWrapper?: React.ForwardRefExoticComponent<TextFieldIconWrapperProps & React.RefAttributes<HTMLDivElement>>;
68
+ readonly IconWrapper?: React.ComponentType<TextFieldIconWrapperProps & React.RefAttributes<HTMLDivElement>>;
62
69
  /**
63
70
  * input field wrapper component
64
71
  */
65
- readonly InputWrapper?: React.ForwardRefExoticComponent<TextFieldInputWrapperProps & React.RefAttributes<HTMLDivElement>>;
72
+ readonly InputWrapper?: React.ComponentType<TextFieldInputWrapperProps & React.RefAttributes<HTMLDivElement>>;
66
73
  /**
67
74
  * label component
68
75
  */
69
- readonly Label?: React.ForwardRefExoticComponent<TextFieldLabelProps & React.RefAttributes<HTMLLabelElement>>;
76
+ readonly Label?: React.ComponentType<TextFieldLabelProps & React.RefAttributes<HTMLLabelElement>>;
70
77
  /**
71
78
  * label asterisk component
72
79
  */
73
- readonly Asterisk?: React.ForwardRefExoticComponent<TextFieldLabelAsteriskProps & React.RefAttributes<HTMLSpanElement>>;
80
+ readonly Asterisk?: React.ComponentType<TextFieldLabelAsteriskProps & React.RefAttributes<HTMLSpanElement>>;
74
81
  /**
75
82
  * label component
76
83
  */
77
- readonly Container?: React.ForwardRefExoticComponent<TextFieldContainerProps & React.RefAttributes<HTMLDivElement>>;
84
+ readonly Container?: React.ComponentType<TextFieldContainerProps & React.RefAttributes<HTMLDivElement>>;
78
85
  }
79
- declare const _default: React.ForwardRefExoticComponent<TextFieldProps & React.RefAttributes<HTMLDivElement>>;
86
+ declare const _default: React.MemoExoticComponent<React.ForwardRefExoticComponent<TextFieldProps & React.RefAttributes<HTMLDivElement>>>;
80
87
  export default _default;
@@ -22,6 +22,9 @@ var __importStar = (this && this.__importStar) || function (mod) {
22
22
  __setModuleDefault(result, mod);
23
23
  return result;
24
24
  };
25
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
26
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
27
+ };
25
28
  var __rest = (this && this.__rest) || function (s, e) {
26
29
  var t = {};
27
30
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
@@ -45,7 +48,23 @@ const TextFieldInputWrapper_1 = __importDefault(require("./TextFieldInputWrapper
45
48
  const TextFieldInput_1 = __importDefault(require("./TextFieldInput"));
46
49
  const TextFieldErrorText_1 = __importDefault(require("./TextFieldErrorText"));
47
50
  const TextFieldIconWrapper_1 = __importDefault(require("./TextFieldIconWrapper"));
48
- const TextField = (props, ref) => {
51
+ __exportStar(require("./TextFieldContainer"), exports);
52
+ __exportStar(require("./TextFieldLabel"), exports);
53
+ __exportStar(require("./TextFieldLabelAsterisk"), exports);
54
+ __exportStar(require("./TextFieldInputWrapper"), exports);
55
+ __exportStar(require("./TextFieldInput"), exports);
56
+ __exportStar(require("./TextFieldErrorText"), exports);
57
+ __exportStar(require("./TextFieldIconWrapper"), exports);
58
+ const defailtOverrides = {
59
+ Label: TextFieldLabel_1.default,
60
+ Input: TextFieldInput_1.default,
61
+ Asterisk: TextFieldLabelAsterisk_1.default,
62
+ Container: TextFieldContainer_1.default,
63
+ ErrorText: TextFieldErrorText_1.default,
64
+ IconWrapper: TextFieldIconWrapper_1.default,
65
+ InputWrapper: TextFieldInputWrapper_1.default,
66
+ };
67
+ const TextField = React.forwardRef((props, ref) => {
49
68
  const { error, fullWidth, inputRef, label, id, errorText, className, style, endIcon, startIcon, requiredAsterisk, overrides, onChange, onFocus, onBlur } = props, nativeInputProps = __rest(props, ["error", "fullWidth", "inputRef", "label", "id", "errorText", "className", "style", "endIcon", "startIcon", "requiredAsterisk", "overrides", "onChange", "onFocus", "onBlur"]);
50
69
  const [focused, setFocused] = React.useState(false);
51
70
  const inputID = React.useMemo(() => {
@@ -53,19 +72,21 @@ const TextField = (props, ref) => {
53
72
  return id;
54
73
  }
55
74
  const u = Date.now().toString(16) + Math.random().toString(16) + '0'.repeat(16);
56
- const guid = [
75
+ return [
57
76
  u.substring(0, 8),
58
77
  u.substring(8, 12),
59
78
  '4000-8' + u.substring(13, 16),
60
79
  u.substring(16, 28),
61
80
  ].join('-');
62
- return guid;
63
81
  }, [id]);
82
+ const stableOnChange = React.useCallback(onChange ? onChange : () => undefined, [onChange]); // уже есть
83
+ // const stableOnFocus = React.useCallback(onFocus, [onFocus]); // уже есть
84
+ // const stableOnBlur = React.useCallback(onBlur, [onBlur]); // уже есть
64
85
  const inputChange = React.useCallback(event => {
65
- if (onChange) {
66
- onChange(event);
86
+ if (stableOnChange) {
87
+ stableOnChange(event);
67
88
  }
68
- }, [onChange]);
89
+ }, [stableOnChange]);
69
90
  const inputFocus = React.useCallback(event => {
70
91
  setFocused(true);
71
92
  if (typeof onFocus === 'function') {
@@ -80,23 +101,29 @@ const TextField = (props, ref) => {
80
101
  }, [onBlur]);
81
102
  const hasStartIcon = React.useMemo(() => typeof startIcon !== 'undefined' && startIcon !== null, [startIcon]);
82
103
  const hasEndIcon = React.useMemo(() => typeof endIcon !== 'undefined' && endIcon !== null, [endIcon]);
83
- const overridesMap = React.useMemo(() => ({
84
- Label: (overrides === null || overrides === void 0 ? void 0 : overrides.Label) || TextFieldLabel_1.default,
85
- Input: (overrides === null || overrides === void 0 ? void 0 : overrides.Input) || TextFieldInput_1.default,
86
- Asterisk: (overrides === null || overrides === void 0 ? void 0 : overrides.Asterisk) || TextFieldLabelAsterisk_1.default,
87
- Container: (overrides === null || overrides === void 0 ? void 0 : overrides.Container) || TextFieldContainer_1.default,
88
- ErrorText: (overrides === null || overrides === void 0 ? void 0 : overrides.ErrorText) || TextFieldErrorText_1.default,
89
- IconWrapper: (overrides === null || overrides === void 0 ? void 0 : overrides.IconWrapper) || TextFieldIconWrapper_1.default,
90
- InputWrapper: (overrides === null || overrides === void 0 ? void 0 : overrides.InputWrapper) || TextFieldInputWrapper_1.default,
91
- }), [overrides]);
92
- return (React.createElement(overridesMap.Container, { ref: ref, fullWidth: fullWidth, className: className, style: style, focused: focused },
93
- typeof label !== 'undefined' && label !== null && (React.createElement(overridesMap.Label, { htmlFor: inputID, error: error },
104
+ const overridesMap = React.useMemo(() => (Object.assign(Object.assign({}, defailtOverrides), overrides)), [overrides]);
105
+ const renderAsterisk = React.useCallback(() => {
106
+ if (!requiredAsterisk) {
107
+ return null;
108
+ }
109
+ return (React.createElement(overridesMap.Asterisk, null, typeof requiredAsterisk === 'boolean' ? '*' : requiredAsterisk));
110
+ }, [overridesMap, requiredAsterisk]);
111
+ const renderLabel = React.useCallback(() => {
112
+ if (!label) {
113
+ return null;
114
+ }
115
+ return (React.createElement(overridesMap.Label, { htmlFor: inputID, error: error },
94
116
  label,
95
- typeof requiredAsterisk !== 'undefined' && requiredAsterisk !== null && (React.createElement(overridesMap.Asterisk, null, typeof requiredAsterisk === 'boolean' ? '*' : requiredAsterisk)))),
117
+ renderAsterisk()));
118
+ }, [error, inputID, label, overridesMap, renderAsterisk]);
119
+ const renderIcon = React.useCallback((position, icon) => (React.createElement(overridesMap.IconWrapper, { position: position }, icon)), [overridesMap]);
120
+ return (React.createElement(overridesMap.Container, { ref: ref, fullWidth: fullWidth, className: className, style: style, focused: focused },
121
+ renderLabel(),
96
122
  React.createElement(overridesMap.InputWrapper, { error: error, focused: focused, fullWidth: fullWidth },
97
- hasStartIcon && (React.createElement(overridesMap.IconWrapper, { position: "start" }, startIcon)),
123
+ hasStartIcon && renderIcon('start', startIcon),
98
124
  React.createElement(overridesMap.Input, Object.assign({}, nativeInputProps, { hasStartIcon: hasStartIcon, hasEndIcon: hasEndIcon, ref: inputRef, id: inputID, onChange: inputChange, onFocus: inputFocus, onBlur: inputBlur })),
99
- hasEndIcon && (React.createElement(overridesMap.IconWrapper, { position: "end" }, endIcon))),
125
+ hasEndIcon && renderIcon('end', endIcon)),
100
126
  React.createElement(overridesMap.ErrorText, { error: error }, errorText)));
101
- };
102
- exports.default = React.forwardRef(TextField);
127
+ });
128
+ TextField.displayName = 'TextField';
129
+ exports.default = React.memo(TextField);
@@ -39,9 +39,9 @@ const createTheme = overrides => {
39
39
  successContrast: '#ffffff',
40
40
  };
41
41
  Object.entries(Object.assign(Object.assign({}, defaultColors), color)).forEach(([colorName, colorValue]) => {
42
- theme.color[colorName] = new Color_1.default(colorValue);
42
+ theme.color[colorName] = Color_1.default.fromString(colorValue);
43
43
  });
44
- theme.color.test = new Color_1.default('red');
44
+ theme.color.test = Color_1.default.fromString('red');
45
45
  return theme;
46
46
  };
47
47
  exports.createTheme = createTheme;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@via-profit/ui-kit",
3
- "version": "0.1.8",
3
+ "version": "0.2.1-alpha.3",
4
4
  "description": "UI Kit",
5
5
  "repository": {
6
6
  "type": "git",
@@ -1,14 +0,0 @@
1
- import { CalendarValue } from './use-calendar';
2
- export type State<Range extends boolean | undefined = undefined> = {
3
- readonly calendarDate: Date;
4
- readonly calendarValue: CalendarValue<Range>;
5
- readonly calendarCurrentView: CalendarView;
6
- readonly calendarViewVariants: readonly CalendarView[];
7
- };
8
- export type CalendarView = 'days' | 'months' | 'years';
9
- export declare const createDefaultState: <Range_1 extends boolean | undefined = undefined>(range?: Range_1 | undefined) => State<Range_1>;
10
- export type Action<Range extends boolean | undefined = undefined> = {
11
- readonly type: 'setPartial';
12
- readonly payload: Partial<State<Range>>;
13
- };
14
- export declare const reducer: <Range_1 extends boolean | undefined = undefined>(state: State<Range_1>, action: Action<Range_1>) => State<Range_1>;
@@ -1,26 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.reducer = exports.createDefaultState = void 0;
4
- const createDefaultState = (range) => {
5
- const currentDate = new Date();
6
- const nextDate = new Date();
7
- nextDate.setDate(nextDate.getDate() + 3);
8
- return {
9
- calendarValue: range
10
- ? [currentDate, nextDate]
11
- : new Date(),
12
- calendarDate: range ? currentDate : new Date(),
13
- calendarCurrentView: 'days',
14
- calendarViewVariants: ['years', 'months', 'days'],
15
- };
16
- };
17
- exports.createDefaultState = createDefaultState;
18
- const reducer = (state, action) => {
19
- switch (action.type) {
20
- case 'setPartial':
21
- return Object.assign(Object.assign({}, state), action.payload);
22
- default:
23
- return state;
24
- }
25
- };
26
- exports.reducer = reducer;