kui-complex 0.0.44 → 0.0.47

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 (169) hide show
  1. package/Avatar/cjs/index.js +3 -3
  2. package/Avatar/cjs/index.js.map +1 -1
  3. package/Avatar/index.d.ts +1 -1
  4. package/Avatar/index.js +4 -4
  5. package/Avatar/index.js.map +1 -1
  6. package/ButtonSelect/cjs/index.js +12 -3
  7. package/ButtonSelect/cjs/index.js.map +1 -1
  8. package/ButtonSelect/index.js +12 -3
  9. package/ButtonSelect/index.js.map +1 -1
  10. package/ButtonTab/cjs/index.js +6 -5
  11. package/ButtonTab/cjs/index.js.map +1 -1
  12. package/ButtonTab/cjs/package.json +4 -1
  13. package/ButtonTab/index.d.ts +4 -2
  14. package/ButtonTab/index.js +4 -3
  15. package/ButtonTab/index.js.map +1 -1
  16. package/ButtonTab/package.json +4 -1
  17. package/ButtonsPanel/cjs/index.js +6 -6
  18. package/ButtonsPanel/cjs/index.js.map +1 -1
  19. package/ButtonsPanel/index.d.ts +3 -7
  20. package/ButtonsPanel/index.js +7 -7
  21. package/ButtonsPanel/index.js.map +1 -1
  22. package/CalendarHeaderWithSelect/cjs/index.js +36 -21
  23. package/CalendarHeaderWithSelect/cjs/index.js.map +1 -1
  24. package/CalendarHeaderWithSelect/cjs/package.json +1 -0
  25. package/CalendarHeaderWithSelect/index.d.ts +11 -6
  26. package/CalendarHeaderWithSelect/index.js +36 -21
  27. package/CalendarHeaderWithSelect/index.js.map +1 -1
  28. package/CalendarHeaderWithSelect/package.json +1 -0
  29. package/CalendarStandardContainer/cjs/index.js +4 -3
  30. package/CalendarStandardContainer/cjs/index.js.map +1 -1
  31. package/CalendarStandardContainer/index.d.ts +4 -3
  32. package/CalendarStandardContainer/index.js +4 -3
  33. package/CalendarStandardContainer/index.js.map +1 -1
  34. package/CalendarStandardHeader/cjs/index.js +4 -3
  35. package/CalendarStandardHeader/cjs/index.js.map +1 -1
  36. package/CalendarStandardHeader/index.d.ts +3 -1
  37. package/CalendarStandardHeader/index.js +4 -3
  38. package/CalendarStandardHeader/index.js.map +1 -1
  39. package/DesktopInputWithMonthPicker/cjs/index.js +14 -13
  40. package/DesktopInputWithMonthPicker/cjs/index.js.map +1 -1
  41. package/DesktopInputWithMonthPicker/index.d.ts +3 -1
  42. package/DesktopInputWithMonthPicker/index.js +15 -14
  43. package/DesktopInputWithMonthPicker/index.js.map +1 -1
  44. package/DesktopMenuPanel/cjs/index.js +10 -10
  45. package/DesktopMenuPanel/cjs/index.js.map +1 -1
  46. package/DesktopMenuPanel/index.d.ts +4 -2
  47. package/DesktopMenuPanel/index.js +8 -8
  48. package/DesktopMenuPanel/index.js.map +1 -1
  49. package/InputForDatepicker/cjs/index.js +3 -2
  50. package/InputForDatepicker/cjs/index.js.map +1 -1
  51. package/InputForDatepicker/index.js +3 -2
  52. package/InputForDatepicker/index.js.map +1 -1
  53. package/InputPassword/cjs/index.js +8 -8
  54. package/InputPassword/cjs/index.js.map +1 -1
  55. package/InputPassword/index.d.ts +6 -5
  56. package/InputPassword/index.js +9 -9
  57. package/InputPassword/index.js.map +1 -1
  58. package/InputSelect/cjs/index.js +12 -3
  59. package/InputSelect/cjs/index.js.map +1 -1
  60. package/InputSelect/index.js +12 -3
  61. package/InputSelect/index.js.map +1 -1
  62. package/InputSelectDropdown/cjs/index.js +12 -3
  63. package/InputSelectDropdown/cjs/index.js.map +1 -1
  64. package/InputSelectDropdown/index.d.ts +4 -2
  65. package/InputSelectDropdown/index.js +12 -3
  66. package/InputSelectDropdown/index.js.map +1 -1
  67. package/InputTextAreaMobile/cjs/index.js +3 -3
  68. package/InputTextAreaMobile/cjs/index.js.map +1 -1
  69. package/InputTextAreaMobile/index.d.ts +3 -1
  70. package/InputTextAreaMobile/index.js +3 -3
  71. package/InputTextAreaMobile/index.js.map +1 -1
  72. package/InputWithController/cjs/index.js +2 -2
  73. package/InputWithController/cjs/index.js.map +1 -1
  74. package/InputWithController/index.d.ts +5 -5
  75. package/InputWithController/index.js +2 -2
  76. package/InputWithController/index.js.map +1 -1
  77. package/InputWithDatePicker/cjs/index.js +94 -45
  78. package/InputWithDatePicker/cjs/index.js.map +1 -1
  79. package/InputWithDatePicker/index.d.ts +7 -1
  80. package/InputWithDatePicker/index.js +96 -46
  81. package/InputWithDatePicker/index.js.map +1 -1
  82. package/InputWithMonthPicker/cjs/index.js +20 -19
  83. package/InputWithMonthPicker/cjs/index.js.map +1 -1
  84. package/InputWithMonthPicker/index.js +21 -20
  85. package/InputWithMonthPicker/index.js.map +1 -1
  86. package/MenuItem/cjs/index.js +7 -7
  87. package/MenuItem/cjs/index.js.map +1 -1
  88. package/MenuItem/index.d.ts +4 -2
  89. package/MenuItem/index.js +5 -5
  90. package/MenuItem/index.js.map +1 -1
  91. package/MenuPanel/cjs/index.js +13 -13
  92. package/MenuPanel/cjs/index.js.map +1 -1
  93. package/MenuPanel/index.d.ts +4 -7
  94. package/MenuPanel/index.js +15 -15
  95. package/MenuPanel/index.js.map +1 -1
  96. package/MobileInputWithMonthPicker/cjs/index.js +16 -15
  97. package/MobileInputWithMonthPicker/cjs/index.js.map +1 -1
  98. package/MobileInputWithMonthPicker/index.d.ts +3 -1
  99. package/MobileInputWithMonthPicker/index.js +17 -16
  100. package/MobileInputWithMonthPicker/index.js.map +1 -1
  101. package/MobileMenuPanel/cjs/index.js +11 -11
  102. package/MobileMenuPanel/cjs/index.js.map +1 -1
  103. package/MobileMenuPanel/index.d.ts +4 -2
  104. package/MobileMenuPanel/index.js +8 -8
  105. package/MobileMenuPanel/index.js.map +1 -1
  106. package/ModalFooter/cjs/index.js +4 -3
  107. package/ModalFooter/cjs/index.js.map +1 -1
  108. package/ModalFooter/index.d.ts +6 -8
  109. package/ModalFooter/index.js +5 -4
  110. package/ModalFooter/index.js.map +1 -1
  111. package/MonthPickerContainer/cjs/index.js +5 -4
  112. package/MonthPickerContainer/cjs/index.js.map +1 -1
  113. package/MonthPickerContainer/index.d.ts +1 -1
  114. package/MonthPickerContainer/index.js +5 -4
  115. package/MonthPickerContainer/index.js.map +1 -1
  116. package/MonthPickerHeader/cjs/index.js +4 -3
  117. package/MonthPickerHeader/cjs/index.js.map +1 -1
  118. package/MonthPickerHeader/index.d.ts +3 -1
  119. package/MonthPickerHeader/index.js +5 -4
  120. package/MonthPickerHeader/index.js.map +1 -1
  121. package/PassportStrengthBar/cjs/index.js +4 -3
  122. package/PassportStrengthBar/cjs/index.js.map +1 -1
  123. package/PassportStrengthBar/cjs/package.json +4 -1
  124. package/PassportStrengthBar/index.d.ts +4 -2
  125. package/PassportStrengthBar/index.js +5 -4
  126. package/PassportStrengthBar/index.js.map +1 -1
  127. package/PassportStrengthBar/package.json +4 -1
  128. package/SelectMonth/cjs/index.js +19 -10
  129. package/SelectMonth/cjs/index.js.map +1 -1
  130. package/SelectMonth/index.d.ts +6 -2
  131. package/SelectMonth/index.js +19 -10
  132. package/SelectMonth/index.js.map +1 -1
  133. package/SelectYear/cjs/index.js +21 -10
  134. package/SelectYear/cjs/index.js.map +1 -1
  135. package/SelectYear/index.d.ts +6 -5
  136. package/SelectYear/index.js +21 -10
  137. package/SelectYear/index.js.map +1 -1
  138. package/Switch/cjs/index.js +4 -3
  139. package/Switch/cjs/index.js.map +1 -1
  140. package/Switch/cjs/package.json +1 -0
  141. package/Switch/index.d.ts +8 -6
  142. package/Switch/index.js +4 -3
  143. package/Switch/index.js.map +1 -1
  144. package/Switch/package.json +1 -0
  145. package/Table/cjs/index.js +2 -1
  146. package/Table/cjs/index.js.map +1 -1
  147. package/Table/index.d.ts +1 -1
  148. package/Table/index.js +2 -1
  149. package/Table/index.js.map +1 -1
  150. package/TableRow/cjs/index.js +14 -4
  151. package/TableRow/cjs/index.js.map +1 -1
  152. package/TableRow/index.d.ts +1 -1
  153. package/TableRow/index.js +15 -4
  154. package/TableRow/index.js.map +1 -1
  155. package/TestForm/cjs/index.js +121 -70
  156. package/TestForm/cjs/index.js.map +1 -1
  157. package/TestForm/index.js +122 -71
  158. package/TestForm/index.js.map +1 -1
  159. package/UndefinedAvatar/cjs/index.js +4 -3
  160. package/UndefinedAvatar/cjs/index.js.map +1 -1
  161. package/UndefinedAvatar/index.d.ts +5 -6
  162. package/UndefinedAvatar/index.js +5 -4
  163. package/UndefinedAvatar/index.js.map +1 -1
  164. package/cjs/index.js +154 -104
  165. package/cjs/index.js.map +1 -1
  166. package/index.d.ts +76 -60
  167. package/index.js +156 -106
  168. package/index.js.map +1 -1
  169. package/package.json +1 -1
package/cjs/index.js CHANGED
@@ -11,6 +11,7 @@ var React = require('react');
11
11
  var jsxRuntime = require('react/jsx-runtime');
12
12
  var kuiBasic = require('kui-basic');
13
13
  var reactRouterDom = require('react-router-dom');
14
+ var luxon = require('luxon');
14
15
  var kuiIcon = require('kui-icon');
15
16
  var _ = require('lodash');
16
17
  var DatePicker = require('react-datepicker');
@@ -18,9 +19,8 @@ var reactHookForm = require('react-hook-form');
18
19
  var InputMask = require('react-input-mask');
19
20
  var reactScroll = require('react-scroll');
20
21
  var ru = require('date-fns/locale/ru');
21
- var luxon = require('luxon');
22
- var Swiper = require('react-id-swiper');
23
22
  var reactRouter = require('react-router');
23
+ var Swiper = require('react-id-swiper');
24
24
  var ReactDOM = require('react-dom');
25
25
  var classNames = require('classnames');
26
26
 
@@ -97,7 +97,7 @@ function __makeTemplateObject(cooked, raw) {
97
97
  return cooked;
98
98
  }
99
99
 
100
- var UndefinedAvatar = function (_a) {
100
+ var UndefinedAvatar = React.forwardRef(function (_a, ref) {
101
101
  var label = _a.label, otherProps = __rest(_a, ["label"]);
102
102
  if (!label) {
103
103
  return jsxRuntime.jsx("div", {});
@@ -107,8 +107,8 @@ var UndefinedAvatar = function (_a) {
107
107
  .map(function (el) { return el[0]; })
108
108
  .slice(0, 3)
109
109
  .join("");
110
- return (jsxRuntime.jsx(Wrapper$8, __assign({ "data-testid": "undefined_avatar" }, { children: jsxRuntime.jsx(kuiBasic.Caption, __assign({ size: "xs", weight: 600, colorGroup: "brand", color: "main" }, otherProps, { children: formattedLabel })) })));
111
- };
110
+ return (jsxRuntime.jsx(Wrapper$8, __assign({ "data-testid": "undefined_avatar", ref: ref }, { children: jsxRuntime.jsx(kuiBasic.Caption, __assign({ size: "xs", weight: 600, colorGroup: "brand", color: "main" }, otherProps, { children: formattedLabel })) })));
111
+ });
112
112
  var Wrapper$8 = styled__default["default"].div(templateObject_1$u || (templateObject_1$u = __makeTemplateObject(["\n width: 100%;\n height: 100%;\n border-radius: 50%;\n background-color: ", ";\n display: flex;\n justify-content: center;\n align-items: center;\n &,\n p {\n transition: all ease-out 0.3s;\n }\n @media (min-width: 900px) {\n &:hover {\n background-color: ", ";\n p {\n color: white;\n }\n }\n }\n"], ["\n width: 100%;\n height: 100%;\n border-radius: 50%;\n background-color: ", ";\n display: flex;\n justify-content: center;\n align-items: center;\n &,\n p {\n transition: all ease-out 0.3s;\n }\n @media (min-width: 900px) {\n &:hover {\n background-color: ", ";\n p {\n color: white;\n }\n }\n }\n"])), kuiBasic.theme.palette.brand.light, kuiBasic.theme.palette.brand.main);
113
113
  var templateObject_1$u;
114
114
 
@@ -124,25 +124,25 @@ var largeAvatarCSS = function (_a) {
124
124
  };
125
125
  var StyledUndefinedAvatar = styled__default["default"](UndefinedAvatar, {
126
126
  shouldForwardProp: function (prop) { return prop !== "size"; },
127
- })(templateObject_4$2 || (templateObject_4$2 = __makeTemplateObject(["\n ", ";\n"], ["\n ", ";\n"])), largeAvatarCSS);
127
+ })(templateObject_4$3 || (templateObject_4$3 = __makeTemplateObject(["\n ", ";\n"], ["\n ", ";\n"])), largeAvatarCSS);
128
128
  var sizeStyles = {
129
129
  s: react.css(templateObject_5$1 || (templateObject_5$1 = __makeTemplateObject(["\n width: 40px;\n height: 40px;\n @media (max-width: 600px) {\n width: 32px;\n height: 32px;\n }\n "], ["\n width: 40px;\n height: 40px;\n @media (max-width: 600px) {\n width: 32px;\n height: 32px;\n }\n "]))),
130
130
  lg: react.css(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n width: 80px;\n height: 80px;\n "], ["\n width: 80px;\n height: 80px;\n "]))),
131
131
  };
132
- var templateObject_1$t, templateObject_2$f, templateObject_3$7, templateObject_4$2, templateObject_5$1, templateObject_6;
132
+ var templateObject_1$t, templateObject_2$f, templateObject_3$7, templateObject_4$3, templateObject_5$1, templateObject_6;
133
133
 
134
- var ButtonTab = function (_a) {
134
+ var ButtonTab = React.forwardRef(function (_a, ref) {
135
135
  var index = _a.index, onClick = _a.onClick, isActive = _a.isActive, label = _a.label;
136
136
  var handleClick = function () {
137
137
  onClick(index);
138
138
  };
139
- return (jsxRuntime$1.jsx(StyledButton, __assign({ variant: isActive ? "orange" : "white", captionWeight: isActive ? 600 : 400, onClick: handleClick, css: !isActive && inactiveStyles, size: "s" }, { children: label })));
140
- };
139
+ return (jsxRuntime$1.jsx(StyledButton, __assign({ variant: isActive ? "orange" : "white", captionWeight: isActive ? 600 : 400, onClick: handleClick, css: !isActive && inactiveStyles, size: "s", ref: ref }, { children: label })));
140
+ });
141
141
  var StyledButton = styled__default["default"](kuiBasic.Button)(templateObject_1$s || (templateObject_1$s = __makeTemplateObject(["\n margin-right: 24px;\n &:last-of-type {\n margin-right: 0;\n }\n"], ["\n margin-right: 24px;\n &:last-of-type {\n margin-right: 0;\n }\n"])));
142
142
  var inactiveStyles = react.css(templateObject_2$e || (templateObject_2$e = __makeTemplateObject(["\n p {\n color: ", ";\n }\n"], ["\n p {\n color: ", ";\n }\n"])), kuiBasic.theme.palette.grey.seventy);
143
143
  var templateObject_1$s, templateObject_2$e;
144
144
 
145
- var ButtonsPanel = function (_a) {
145
+ var ButtonsPanel = React.forwardRef(function (_a, ref) {
146
146
  var tabs = _a.tabs, tabPanels = _a.tabPanels, paths = _a.paths, activeTab = _a.activeTab, isSticky = _a.isSticky, onChange = _a.onChange, otherProps = __rest(_a, ["tabs", "tabPanels", "paths", "activeTab", "isSticky", "onChange"]);
147
147
  var _b = React__namespace.useState(Number(activeTab)), value = _b[0], setValue = _b[1];
148
148
  var navigate = reactRouterDom.useNavigate();
@@ -158,8 +158,8 @@ var ButtonsPanel = function (_a) {
158
158
  React.useEffect(function () {
159
159
  setValue(Number(activeTab));
160
160
  }, [activeTab]);
161
- return (jsxRuntime$1.jsxs(jsxRuntime$1.Fragment, { children: [jsxRuntime$1.jsx(StyledContainer$1, __assign({ css: isSticky && { position: "sticky" } }, otherProps, { children: jsxRuntime$1.jsx(kuiBasic.Container, { children: tabs.map(function (item, index) { return (jsxRuntime$1.jsx(ButtonTab, { index: index, onClick: handleChange, isActive: index === value, label: item.label }, item.label)); }) }) })), tabPanels.map(function (item, index) { return (jsxRuntime$1.jsx(Content, __assign({ role: "tabpanel", hidden: value !== index }, { children: value === index && jsxRuntime$1.jsx(jsxRuntime$1.Fragment, { children: item }) }), index)); })] }));
162
- };
161
+ return (jsxRuntime$1.jsxs(jsxRuntime$1.Fragment, { children: [jsxRuntime$1.jsx(StyledContainer$1, __assign({ css: isSticky && { position: "sticky" }, ref: ref }, otherProps, { children: jsxRuntime$1.jsx(kuiBasic.Container, { children: tabs.map(function (item, index) { return (jsxRuntime$1.jsx(ButtonTab, { index: index, onClick: handleChange, isActive: index === value, label: item.label }, item.label)); }) }) })), tabPanels.map(function (item, index) { return (jsxRuntime$1.jsx(Content, __assign({ role: "tabpanel", hidden: value !== index }, { children: value === index && jsxRuntime$1.jsx(jsxRuntime$1.Fragment, { children: item }) }), index)); })] }));
162
+ });
163
163
  ButtonsPanel.defaultProps = {
164
164
  isSticky: false,
165
165
  };
@@ -202,7 +202,7 @@ var InputDropdown = React.forwardRef(function (_a, ref) {
202
202
  });
203
203
  var templateObject_1$q;
204
204
 
205
- var InputSelectDropdown = function (_a) {
205
+ var InputSelectDropdown = React.forwardRef(function (_a, ref) {
206
206
  var options = _a.options, inputRef = _a.inputRef, isOpenDropdown = _a.isOpenDropdown, handleCloseDropdown = _a.handleCloseDropdown, handleSelect = _a.handleSelect, selectedValue = _a.selectedValue;
207
207
  var dropdownRef = React.useRef(null);
208
208
  React.useEffect(function () {
@@ -219,11 +219,20 @@ var InputSelectDropdown = function (_a) {
219
219
  }
220
220
  }
221
221
  }, [isOpenDropdown]);
222
- return (jsxRuntime$1.jsx(InputDropdown, __assign({ ref: dropdownRef, buttonRef: inputRef, isOpen: isOpenDropdown, handleClose: handleCloseDropdown, css: {
222
+ var forwardedRef = function (elem) {
223
+ if (ref) {
224
+ if (typeof ref === "function")
225
+ ref(elem);
226
+ else
227
+ ref.current = elem;
228
+ }
229
+ dropdownRef.current = elem;
230
+ };
231
+ return (jsxRuntime$1.jsx(InputDropdown, __assign({ ref: forwardedRef, buttonRef: inputRef, isOpen: isOpenDropdown, handleClose: handleCloseDropdown, css: {
223
232
  maxHeight: "142px",
224
233
  padding: "4px",
225
234
  } }, { children: options.map(function (option, key) { return (jsxRuntime$1.jsx(OptionWrapper, __assign({ onClick: function () { return handleSelect(option); }, "data-value": "autocomplete_option_".concat(option.value), "data-testid": "autocomplete_option_".concat(key) }, { children: jsxRuntime$1.jsx(StyledOption, __assign({ css: selectedValue === option.value && selectedStyles }, { children: jsxRuntime$1.jsx(kuiBasic.Caption, __assign({ size: "sm", weight: 500 }, { children: option.label })) })) }), option.label)); }) })));
226
- };
235
+ });
227
236
  var OptionWrapper = styled__default["default"].div(templateObject_1$p || (templateObject_1$p = __makeTemplateObject(["\n width: 100%;\n padding: 2px 0;\n cursor: pointer;\n"], ["\n width: 100%;\n padding: 2px 0;\n cursor: pointer;\n"])));
228
237
  var StyledOption = styled__default["default"].div(templateObject_2$c || (templateObject_2$c = __makeTemplateObject(["\n padding: 8px;\n transition: all ease-out 0.3s;\n border-radius: 4px;\n &:hover {\n background-color: ", ";\n }\n"], ["\n padding: 8px;\n transition: all ease-out 0.3s;\n border-radius: 4px;\n &:hover {\n background-color: ", ";\n }\n"])), kuiBasic.theme.palette.background.light1);
229
238
  var selectedStyles = react.css(templateObject_3$6 || (templateObject_3$6 = __makeTemplateObject(["\n background-color: ", ";\n"], ["\n background-color: ", ";\n"])), kuiBasic.theme.palette.background.light1);
@@ -305,13 +314,16 @@ var StyledInput = styled__default["default"](kuiBasic.InputWithAdornments)(templ
305
314
  var StyledIconWrapper = styled__default["default"].div(templateObject_3$5 || (templateObject_3$5 = __makeTemplateObject(["\n padding-right: 8px;\n padding-bottom: 4px;\n"], ["\n padding-right: 8px;\n padding-bottom: 4px;\n"])));
306
315
  var templateObject_1$o, templateObject_2$b, templateObject_3$5;
307
316
 
308
- var SelectYear = function (_a) {
309
- var yearOptions = _a.yearOptions; _a.options; var props = __rest(_a, ["yearOptions", "options"]);
310
- return (
311
- // @ts-ignore
312
- jsxRuntime.jsx(InputSelect, __assign({ label: "Year", options: yearOptions }, props)));
313
- };
317
+ var checkDisabled$1 = function (year, min, max) {
318
+ return (min && year <= min) || (max && year >= max);
319
+ };
320
+ var SelectYear = React.forwardRef(function (_a, ref) {
321
+ var yearOptions = _a.yearOptions; _a.options; var min = _a.min, max = _a.max, props = __rest(_a, ["yearOptions", "options", "min", "max"]);
322
+ var formattedYearOptions = yearOptions.map(function (year) { return (__assign(__assign({}, year), { disabled: checkDisabled$1(Number(year.value), min, max) })); });
323
+ return (jsxRuntime.jsx(InputSelect, __assign({ ref: ref, label: "Year", options: formattedYearOptions }, props)));
324
+ });
314
325
 
326
+ var checkDisabled = function (month, min, max) { return (min && month <= min) || (max && month >= max); };
315
327
  var monthValues = [
316
328
  { value: 0, label: "January" },
317
329
  { value: 1, label: "February" },
@@ -326,34 +338,36 @@ var monthValues = [
326
338
  { value: 10, label: "November" },
327
339
  { value: 11, label: "December" },
328
340
  ];
329
- var SelectMonth = function (_a) {
330
- _a.options; var props = __rest(_a, ["options"]);
331
- return (
332
- // @ts-ignore
333
- jsxRuntime.jsx(InputSelect, __assign({ label: "Month", options: monthValues }, props)));
334
- };
341
+ var SelectMonth = React.forwardRef(function (props, ref) {
342
+ var min = props.min, max = props.max; props.options; var other = __rest(props, ["min", "max", "options"]);
343
+ var formattedMonths = monthValues.map(function (month) { return (__assign(__assign({}, month), { disabled: checkDisabled(month.value, min, max) })); });
344
+ return (jsxRuntime.jsx(InputSelect, __assign({ ref: ref, label: "Month", options: formattedMonths }, other)));
345
+ });
335
346
 
336
- var CalendarHeaderWithSelect = function (_a) {
337
- var changeMonth = _a.changeMonth, changeYear = _a.changeYear, date = _a.date, yearOptions = _a.yearOptions;
347
+ var CalendarHeaderWithSelect = React.forwardRef(function (_a, ref) {
348
+ var changeMonth = _a.changeMonth, changeYear = _a.changeYear, date = _a.date, yearOptions = _a.yearOptions, max = _a.max, min = _a.min;
338
349
  var year = date.getFullYear();
339
- var month = date.getMonth() + 1;
340
- return (jsxRuntime.jsx(Wrapper$5, { children: jsxRuntime.jsxs(kuiBasic.Grid, __assign({ container: true, spacing: 2 }, { children: [jsxRuntime.jsx(kuiBasic.Grid, __assign({ item: true, xs: 6 }, { children: jsxRuntime.jsx(SelectYear, { yearOptions: yearOptions, value: year, handleChange: changeYear }) })), jsxRuntime.jsx(kuiBasic.Grid, __assign({ item: true, xs: 6 }, { children: jsxRuntime.jsx(SelectMonth, { value: month, handleChange: changeMonth }) }))] })) }));
341
- };
350
+ var month = date.getMonth();
351
+ var currentYear = luxon.DateTime.now().year;
352
+ var minMonth = (min === null || min === void 0 ? void 0 : min.year) === currentYear ? min === null || min === void 0 ? void 0 : min.month : 0;
353
+ var maxMonth = (max === null || max === void 0 ? void 0 : max.year) === currentYear ? max === null || max === void 0 ? void 0 : max.month : 11;
354
+ return (jsxRuntime.jsx(Wrapper$5, __assign({ ref: ref }, { children: jsxRuntime.jsxs(kuiBasic.Grid, __assign({ container: true, spacing: 2 }, { children: [jsxRuntime.jsx(kuiBasic.Grid, __assign({ item: true, xs: 6 }, { children: jsxRuntime.jsx(SelectYear, { min: min === null || min === void 0 ? void 0 : min.year, max: max === null || max === void 0 ? void 0 : max.year, yearOptions: yearOptions, value: year, handleChange: changeYear }) })), jsxRuntime.jsx(kuiBasic.Grid, __assign({ item: true, xs: 6 }, { children: jsxRuntime.jsx(SelectMonth, { min: (Number(min === null || min === void 0 ? void 0 : min.year) >= currentYear && minMonth), max: (Number(max === null || max === void 0 ? void 0 : max.year) <= currentYear && maxMonth), value: month, handleChange: changeMonth }) }))] })) })));
355
+ });
342
356
  var Wrapper$5 = styled__default["default"].div(templateObject_1$n || (templateObject_1$n = __makeTemplateObject(["\n margin-bottom: 24px;\n @media (max-width: 900px) {\n padding: 0 18px;\n margin-bottom: 20px;\n }\n"], ["\n margin-bottom: 24px;\n @media (max-width: 900px) {\n padding: 0 18px;\n margin-bottom: 20px;\n }\n"])));
343
357
  var templateObject_1$n;
344
358
 
345
- var CalendarStandardContainer = function (_a) {
359
+ var CalendarStandardContainer = React.forwardRef(function (_a, ref) {
346
360
  _a.arrowProps; _a.showPopperArrow; var props = __rest(_a, ["arrowProps", "showPopperArrow"]);
347
- return jsxRuntime.jsx(DatePickerContainer, __assign({}, props));
348
- };
361
+ return jsxRuntime.jsx(DatePickerContainer, __assign({ ref: ref }, props));
362
+ });
349
363
  var DatePickerContainer = styled__default["default"].div(templateObject_1$m || (templateObject_1$m = __makeTemplateObject(["\n padding: 0;\n border: none !important;\n border-radius: 0 !important;\n background: transparent !important;\n overflow: hidden;\n width: 100%;\n height: 100%;\n .react-datepicker__header {\n background-color: transparent !important;\n }\n .react-datepicker__month-container {\n width: 100%;\n height: 100%;\n }\n .react-datepicker__day-names {\n display: flex;\n justify-content: space-between;\n .react-datepicker__day-name {\n font-family: \"Inter\", sans-serif;\n font-weight: 600;\n font-size: 14px;\n color: ", ";\n text-transform: uppercase;\n margin: 0;\n width: 33px;\n line-height: normal;\n }\n }\n .react-datepicker__month {\n padding: 0;\n margin: 20px 0 0 !important;\n border: none;\n width: 100%;\n height: calc(100% - 85px);\n .react-datepicker__week {\n display: flex;\n justify-content: space-between;\n }\n }\n .react-datepicker__week {\n margin-bottom: 10px;\n &:last-of-type {\n margin-bottom: 0;\n }\n }\n .react-datepicker__day {\n width: 33px;\n height: 33px;\n user-select: none;\n border-radius: 50% !important;\n transition: background ease-out 0.3s;\n border: 1px solid transparent;\n margin: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n font-weight: 500;\n font-size: 16px;\n &:hover {\n background: ", ";\n }\n &:active {\n background: ", ";\n }\n }\n .react-datepicker__day--outside-month,\n .react-datepicker__day--disabled {\n color: #a6aebc;\n p {\n color: #a6aebc;\n }\n }\n .react-datepicker__day--keyboard-selected {\n background: transparent;\n color: inherit;\n }\n .react-datepicker__day--selected {\n background: white;\n border: 1px solid #e1e4e8;\n color: ", ";\n p {\n color: ", ";\n }\n }\n .react-datepicker__day--selected.warning_day {\n border-color: ", ";\n background-color: ", ";\n color: ", ";\n }\n @media (max-width: 600px) {\n .react-datepicker__day {\n max-width: 48px;\n max-height: 48px;\n width: calc((100vw - (18px * 7)) / 7);\n height: calc((100vw - (18px * 7)) / 7);\n }\n .react-datepicker__day-names {\n .react-datepicker__day-name {\n max-width: 48px;\n width: calc((100vw - (18px * 7)) / 7);\n }\n }\n }\n @media (max-width: 350px) {\n .react-datepicker__day {\n width: calc((100vw - (6px * 7)) / 7);\n height: calc((100vw - (6px * 7)) / 7);\n }\n .react-datepicker__day-names {\n .react-datepicker__day-name {\n width: calc((100vw - (6px * 7)) / 7);\n }\n }\n }\n"], ["\n padding: 0;\n border: none !important;\n border-radius: 0 !important;\n background: transparent !important;\n overflow: hidden;\n width: 100%;\n height: 100%;\n .react-datepicker__header {\n background-color: transparent !important;\n }\n .react-datepicker__month-container {\n width: 100%;\n height: 100%;\n }\n .react-datepicker__day-names {\n display: flex;\n justify-content: space-between;\n .react-datepicker__day-name {\n font-family: \"Inter\", sans-serif;\n font-weight: 600;\n font-size: 14px;\n color: ", ";\n text-transform: uppercase;\n margin: 0;\n width: 33px;\n line-height: normal;\n }\n }\n .react-datepicker__month {\n padding: 0;\n margin: 20px 0 0 !important;\n border: none;\n width: 100%;\n height: calc(100% - 85px);\n .react-datepicker__week {\n display: flex;\n justify-content: space-between;\n }\n }\n .react-datepicker__week {\n margin-bottom: 10px;\n &:last-of-type {\n margin-bottom: 0;\n }\n }\n .react-datepicker__day {\n width: 33px;\n height: 33px;\n user-select: none;\n border-radius: 50% !important;\n transition: background ease-out 0.3s;\n border: 1px solid transparent;\n margin: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n font-weight: 500;\n font-size: 16px;\n &:hover {\n background: ", ";\n }\n &:active {\n background: ", ";\n }\n }\n .react-datepicker__day--outside-month,\n .react-datepicker__day--disabled {\n color: #a6aebc;\n p {\n color: #a6aebc;\n }\n }\n .react-datepicker__day--keyboard-selected {\n background: transparent;\n color: inherit;\n }\n .react-datepicker__day--selected {\n background: white;\n border: 1px solid #e1e4e8;\n color: ", ";\n p {\n color: ", ";\n }\n }\n .react-datepicker__day--selected.warning_day {\n border-color: ", ";\n background-color: ", ";\n color: ", ";\n }\n @media (max-width: 600px) {\n .react-datepicker__day {\n max-width: 48px;\n max-height: 48px;\n width: calc((100vw - (18px * 7)) / 7);\n height: calc((100vw - (18px * 7)) / 7);\n }\n .react-datepicker__day-names {\n .react-datepicker__day-name {\n max-width: 48px;\n width: calc((100vw - (18px * 7)) / 7);\n }\n }\n }\n @media (max-width: 350px) {\n .react-datepicker__day {\n width: calc((100vw - (6px * 7)) / 7);\n height: calc((100vw - (6px * 7)) / 7);\n }\n .react-datepicker__day-names {\n .react-datepicker__day-name {\n width: calc((100vw - (6px * 7)) / 7);\n }\n }\n }\n"])), kuiBasic.theme.palette.grey.fiftyP, kuiBasic.theme.palette.background.light3, kuiBasic.theme.palette.background.light3, kuiBasic.theme.palette.brand.main, kuiBasic.theme.palette.brand.main, kuiBasic.theme.palette.grey.fifteenB, kuiBasic.theme.palette.red.seventy, kuiBasic.theme.palette.grey.zero);
350
364
  var templateObject_1$m;
351
365
 
352
- var CalendarStandardHeader = function (_a) {
366
+ var CalendarStandardHeader = React.forwardRef(function (_a, ref) {
353
367
  var decreaseMonth = _a.decreaseMonth, increaseMonth = _a.increaseMonth, nextMonthButtonDisabled = _a.nextMonthButtonDisabled, prevMonthButtonDisabled = _a.prevMonthButtonDisabled, date = _a.date;
354
368
  var title = ___default["default"].capitalize(date.toLocaleString("ru", { month: "long", year: "numeric" })).slice(0, -3);
355
- return (jsxRuntime.jsxs(HeaderWrapper, __assign({ container: true, alignItems: "center", justify: "space-between" }, { children: [jsxRuntime.jsx(kuiBasic.Grid, __assign({ item: true }, { children: jsxRuntime.jsx(StyledHeading, __assign({ size: "h4" }, { children: title })) })), jsxRuntime.jsx(kuiBasic.Grid, __assign({ item: true }, { children: jsxRuntime.jsxs(kuiBasic.Grid, __assign({ container: true, spacing: 2 }, { children: [jsxRuntime.jsx(kuiBasic.Grid, __assign({ item: true }, { children: jsxRuntime.jsx(CircleButtonStyled, __assign({ isCircle: true, size: "xs", "data-testid": "prev_month_button", variant: "white", disabled: prevMonthButtonDisabled, onClick: decreaseMonth }, { children: jsxRuntime.jsx(kuiIcon.PrevArrowIcon, { width: 10, height: 10 }) })) })), jsxRuntime.jsx(kuiBasic.Grid, __assign({ item: true }, { children: jsxRuntime.jsx(CircleButtonStyled, __assign({ isCircle: true, size: "xs", variant: "white", disabled: nextMonthButtonDisabled, onClick: increaseMonth }, { children: jsxRuntime.jsx(kuiIcon.NextArrowIcon, { width: 10, height: 10 }) })) }))] })) }))] })));
356
- };
369
+ return (jsxRuntime.jsxs(HeaderWrapper, __assign({ container: true, alignItems: "center", justify: "space-between", ref: ref }, { children: [jsxRuntime.jsx(kuiBasic.Grid, __assign({ item: true }, { children: jsxRuntime.jsx(StyledHeading, __assign({ size: "h4" }, { children: title })) })), jsxRuntime.jsx(kuiBasic.Grid, __assign({ item: true }, { children: jsxRuntime.jsxs(kuiBasic.Grid, __assign({ container: true, spacing: 2 }, { children: [jsxRuntime.jsx(kuiBasic.Grid, __assign({ item: true }, { children: jsxRuntime.jsx(CircleButtonStyled, __assign({ isCircle: true, size: "xs", "data-testid": "prev_month_button", variant: "white", disabled: prevMonthButtonDisabled, onClick: decreaseMonth }, { children: jsxRuntime.jsx(kuiIcon.PrevArrowIcon, { width: 10, height: 10 }) })) })), jsxRuntime.jsx(kuiBasic.Grid, __assign({ item: true }, { children: jsxRuntime.jsx(CircleButtonStyled, __assign({ isCircle: true, size: "xs", variant: "white", disabled: nextMonthButtonDisabled, onClick: increaseMonth }, { children: jsxRuntime.jsx(kuiIcon.NextArrowIcon, { width: 10, height: 10 }) })) }))] })) }))] })));
370
+ });
357
371
  var HeaderWrapper = styled__default["default"](kuiBasic.Grid)(templateObject_1$l || (templateObject_1$l = __makeTemplateObject(["\n padding: 0 6px 34px;\n @media (max-width: 600px) {\n h2 {\n font-size: 16px;\n }\n }\n"], ["\n padding: 0 6px 34px;\n @media (max-width: 600px) {\n h2 {\n font-size: 16px;\n }\n }\n"])));
358
372
  var StyledHeading = styled__default["default"](kuiBasic.Heading)(templateObject_2$a || (templateObject_2$a = __makeTemplateObject(["\n @media (max-width: 600px) {\n font-weight: 700;\n }\n"], ["\n @media (max-width: 600px) {\n font-weight: 700;\n }\n"])));
359
373
  var CircleButtonStyled = styled__default["default"](kuiBasic.Button)(templateObject_3$4 || (templateObject_3$4 = __makeTemplateObject(["\n border-color: transparent !important;\n &:disabled {\n background-color: white !important;\n }\n"], ["\n border-color: transparent !important;\n &:disabled {\n background-color: white !important;\n }\n"])));
@@ -361,7 +375,7 @@ var templateObject_1$l, templateObject_2$a, templateObject_3$4;
361
375
 
362
376
  var InputForDatepicker = React.forwardRef(function (_a, ref) {
363
377
  var onClick = _a.onClick, onBlur = _a.onBlur, onFocus = _a.onFocus, props = __rest(_a, ["onClick", "onBlur", "onFocus"]);
364
- var onChange = props.onChange, readOnly = props.readOnly, disabled = props.disabled, mask = props.mask, handleCLick = props.handleCLick, other = __rest(props, ["onChange", "readOnly", "disabled", "mask", "handleCLick"]);
378
+ var onChange = props.onChange, readOnly = props.readOnly, disabled = props.disabled, mask = props.mask, handleCLick = props.handleCLick, startIcon = props.startIcon, other = __rest(props, ["onChange", "readOnly", "disabled", "mask", "handleCLick", "startIcon"]);
365
379
  var handleIconClick = function () {
366
380
  if (handleCLick) {
367
381
  handleCLick();
@@ -370,38 +384,39 @@ var InputForDatepicker = React.forwardRef(function (_a, ref) {
370
384
  onClick();
371
385
  }
372
386
  };
373
- return (jsxRuntime.jsx(InputMask__default["default"], __assign({ mask: mask, onChange: onChange, value: props.value, maskPlaceholder: null, alwaysShowMask: false, disabled: disabled, readOnly: readOnly, onFocus: onFocus, onBlur: onBlur }, { children: function () { return (jsxRuntime.jsx(kuiBasic.InputWithAdornments, __assign({ onChange: onChange, disabled: disabled, value: props.value, endIcon: jsxRuntime.jsx(IconWrapper, __assign({ onClick: handleIconClick }, { children: jsxRuntime.jsx(kuiIcon.CalendarIcon, { width: 19, height: 21 }) })) }, other, { ref: ref }))); } })));
387
+ var Icon = function () { return (jsxRuntime.jsx(IconWrapper, __assign({ disabled: disabled, onClick: handleIconClick }, { children: startIcon || jsxRuntime.jsx(kuiIcon.CalendarIcon, { width: 19, height: 21 }) }))); };
388
+ return (jsxRuntime.jsx(InputMask__default["default"], __assign({ mask: mask, onChange: onChange, value: props.value, maskPlaceholder: null, alwaysShowMask: false, disabled: disabled, readOnly: readOnly, onFocus: onFocus, onBlur: onBlur }, { children: function () { return (jsxRuntime.jsx(kuiBasic.InputWithAdornments, __assign({ onChange: onChange, disabled: disabled, value: props.value, endIcon: !startIcon && jsxRuntime.jsx(Icon, {}), startIcon: startIcon && jsxRuntime.jsx(Icon, {}) }, other, { ref: ref }))); } })));
374
389
  });
375
390
  var IconWrapper = styled__default["default"].div(templateObject_1$k || (templateObject_1$k = __makeTemplateObject(["\n display: flex;\n align-items: center;\n cursor: pointer;\n z-index: 1;\n"], ["\n display: flex;\n align-items: center;\n cursor: pointer;\n z-index: 1;\n"])));
376
391
  var templateObject_1$k;
377
392
 
378
- var MonthPickerContainer = function (_a) {
393
+ var MonthPickerContainer = React.forwardRef(function (_a, ref) {
379
394
  _a.arrowProps; _a.showPopperArrow; var props = __rest(_a, ["arrowProps", "showPopperArrow"]);
380
- return jsxRuntime.jsx(StyledContainer, __assign({}, props));
381
- };
382
- var StyledContainer = styled__default["default"].div(templateObject_1$j || (templateObject_1$j = __makeTemplateObject(["\n box-shadow: 0px 26px 34px rgba(0, 0, 0, 0.1);\n border-radius: 12px !important;\n border: 1px solid ", " !important;\n background: #fff;\n overflow: hidden;\n z-index: 5;\n .react-datepicker-wrapper,\n .react-datepicker__input-container {\n display: block;\n width: 100%;\n }\n .react-datepicker__header,\n .react-datepicker__header:not(.react-datepicker__header--has-time-select) {\n padding: 0;\n border: none;\n background-color: #fff;\n }\n .react-datepicker__month {\n margin: 0px 8px 8px !important;\n border-radius: 12px;\n border: 1px solid ", ";\n width: 238px;\n height: 169px;\n display: flex;\n flex-direction: column;\n }\n .react-datepicker__month-text {\n margin: 4px !important;\n /*width: auto !important;*/\n width: calc(100% / 3) !important;\n position: relative;\n display: flex !important;\n justify-content: center;\n align-items: center;\n }\n\n .react-datepicker__month-wrapper {\n height: calc(100% / 4);\n display: flex;\n }\n\n .react-datepicker__month-text:after {\n content: \"\";\n display: block;\n height: calc(100% + 8px);\n width: 1px;\n position: absolute;\n top: -4px;\n right: -4px;\n background: ", ";\n }\n\n .react-datepicker__month-text:nth-child(3n):after {\n content: none;\n }\n\n .react-datepicker__month--selected,\n .react-datepicker__month-text--keyboard-selected {\n background-color: ", " !important;\n border-radius: 8px !important;\n color: white;\n }\n .react-datepicker__month-wrapper {\n border-bottom: 1px solid ", ";\n }\n\n .react-datepicker__month-wrapper:last-child {\n border-bottom: none;\n }\n\n @media (max-width: 600px) {\n .react-datepicker__month-container {\n width: 100%;\n height: 100%;\n }\n .react-datepicker__month {\n margin: 0px 16px 16px !important;\n height: calc(100% - 58px);\n text-align: center;\n width: auto;\n }\n .react-datepicker__month-text {\n margin: 8px !important;\n }\n .react-datepicker__month-text:after {\n height: calc(100% + 16px);\n top: -8px;\n right: -8px;\n }\n .react-datepicker__month-text:nth-child(3n):after {\n content: none;\n }\n }\n @media (max-width: 600px) {\n width: 100%;\n height: 262px;\n box-shadow: 0px 5px 16px rgba(0, 0, 0, 0.1);\n }\n"], ["\n box-shadow: 0px 26px 34px rgba(0, 0, 0, 0.1);\n border-radius: 12px !important;\n border: 1px solid ", " !important;\n background: #fff;\n overflow: hidden;\n z-index: 5;\n .react-datepicker-wrapper,\n .react-datepicker__input-container {\n display: block;\n width: 100%;\n }\n .react-datepicker__header,\n .react-datepicker__header:not(.react-datepicker__header--has-time-select) {\n padding: 0;\n border: none;\n background-color: #fff;\n }\n .react-datepicker__month {\n margin: 0px 8px 8px !important;\n border-radius: 12px;\n border: 1px solid ", ";\n width: 238px;\n height: 169px;\n display: flex;\n flex-direction: column;\n }\n .react-datepicker__month-text {\n margin: 4px !important;\n /*width: auto !important;*/\n width: calc(100% / 3) !important;\n position: relative;\n display: flex !important;\n justify-content: center;\n align-items: center;\n }\n\n .react-datepicker__month-wrapper {\n height: calc(100% / 4);\n display: flex;\n }\n\n .react-datepicker__month-text:after {\n content: \"\";\n display: block;\n height: calc(100% + 8px);\n width: 1px;\n position: absolute;\n top: -4px;\n right: -4px;\n background: ", ";\n }\n\n .react-datepicker__month-text:nth-child(3n):after {\n content: none;\n }\n\n .react-datepicker__month--selected,\n .react-datepicker__month-text--keyboard-selected {\n background-color: ", " !important;\n border-radius: 8px !important;\n color: white;\n }\n .react-datepicker__month-wrapper {\n border-bottom: 1px solid ", ";\n }\n\n .react-datepicker__month-wrapper:last-child {\n border-bottom: none;\n }\n\n @media (max-width: 600px) {\n .react-datepicker__month-container {\n width: 100%;\n height: 100%;\n }\n .react-datepicker__month {\n margin: 0px 16px 16px !important;\n height: calc(100% - 58px);\n text-align: center;\n width: auto;\n }\n .react-datepicker__month-text {\n margin: 8px !important;\n }\n .react-datepicker__month-text:after {\n height: calc(100% + 16px);\n top: -8px;\n right: -8px;\n }\n .react-datepicker__month-text:nth-child(3n):after {\n content: none;\n }\n }\n @media (max-width: 600px) {\n width: 100%;\n height: 262px;\n box-shadow: 0px 5px 16px rgba(0, 0, 0, 0.1);\n }\n"])), kuiBasic.theme.palette.background.light1, kuiBasic.theme.palette.grey.fifteenB, kuiBasic.theme.palette.grey.fifteenB, kuiBasic.theme.palette.brand.main, kuiBasic.theme.palette.grey.fifteenB);
395
+ return jsxRuntime.jsx(StyledContainer, __assign({ ref: ref }, props));
396
+ });
397
+ var StyledContainer = styled__default["default"].div(templateObject_1$j || (templateObject_1$j = __makeTemplateObject(["\n box-shadow: 0px 26px 34px rgba(0, 0, 0, 0.1);\n border-radius: 12px !important;\n border: 1px solid ", " !important;\n background: #fff;\n overflow: hidden;\n z-index: 5;\n .react-datepicker-wrapper,\n .react-datepicker__input-container {\n display: block;\n width: 100%;\n }\n .react-datepicker__header,\n .react-datepicker__header:not(.react-datepicker__header--has-time-select) {\n padding: 0;\n border: none;\n background-color: #fff;\n }\n .react-datepicker__month {\n margin: 0px 8px 8px !important;\n border-radius: 12px;\n border: 1px solid ", ";\n width: 238px;\n height: 169px;\n display: flex;\n flex-direction: column;\n }\n .react-datepicker__month-text {\n margin: 4px !important;\n /*width: auto !important;*/\n width: calc(100% / 3) !important;\n position: relative;\n display: flex !important;\n justify-content: center;\n align-items: center;\n }\n\n .react-datepicker__month-wrapper {\n height: calc(100% / 4);\n display: flex;\n }\n\n .react-datepicker__month-text:after {\n content: \"\";\n display: block;\n height: calc(100% + 8px);\n width: 1px;\n position: absolute;\n top: -4px;\n right: -4px;\n background: ", ";\n }\n\n .react-datepicker__month-text:nth-child(3n):after {\n content: none;\n }\n\n .react-datepicker__month--selected,\n .react-datepicker__month-text--keyboard-selected {\n background-color: ", " !important;\n border-radius: 8px !important;\n color: white !important;\n }\n .react-datepicker__month-wrapper {\n border-bottom: 1px solid ", ";\n }\n\n .react-datepicker__month-wrapper:last-child {\n border-bottom: none;\n }\n\n @media (max-width: 600px) {\n .react-datepicker__month-container {\n width: 100%;\n height: 100%;\n }\n .react-datepicker__month {\n margin: 0px 16px 16px !important;\n height: calc(100% - 58px);\n text-align: center;\n width: auto;\n }\n .react-datepicker__month-text {\n margin: 8px !important;\n }\n .react-datepicker__month-text:after {\n height: calc(100% + 16px);\n top: -8px;\n right: -8px;\n }\n .react-datepicker__month-text:nth-child(3n):after {\n content: none;\n }\n }\n @media (max-width: 600px) {\n width: 100%;\n height: 262px;\n box-shadow: 0px 5px 16px rgba(0, 0, 0, 0.1);\n }\n"], ["\n box-shadow: 0px 26px 34px rgba(0, 0, 0, 0.1);\n border-radius: 12px !important;\n border: 1px solid ", " !important;\n background: #fff;\n overflow: hidden;\n z-index: 5;\n .react-datepicker-wrapper,\n .react-datepicker__input-container {\n display: block;\n width: 100%;\n }\n .react-datepicker__header,\n .react-datepicker__header:not(.react-datepicker__header--has-time-select) {\n padding: 0;\n border: none;\n background-color: #fff;\n }\n .react-datepicker__month {\n margin: 0px 8px 8px !important;\n border-radius: 12px;\n border: 1px solid ", ";\n width: 238px;\n height: 169px;\n display: flex;\n flex-direction: column;\n }\n .react-datepicker__month-text {\n margin: 4px !important;\n /*width: auto !important;*/\n width: calc(100% / 3) !important;\n position: relative;\n display: flex !important;\n justify-content: center;\n align-items: center;\n }\n\n .react-datepicker__month-wrapper {\n height: calc(100% / 4);\n display: flex;\n }\n\n .react-datepicker__month-text:after {\n content: \"\";\n display: block;\n height: calc(100% + 8px);\n width: 1px;\n position: absolute;\n top: -4px;\n right: -4px;\n background: ", ";\n }\n\n .react-datepicker__month-text:nth-child(3n):after {\n content: none;\n }\n\n .react-datepicker__month--selected,\n .react-datepicker__month-text--keyboard-selected {\n background-color: ", " !important;\n border-radius: 8px !important;\n color: white !important;\n }\n .react-datepicker__month-wrapper {\n border-bottom: 1px solid ", ";\n }\n\n .react-datepicker__month-wrapper:last-child {\n border-bottom: none;\n }\n\n @media (max-width: 600px) {\n .react-datepicker__month-container {\n width: 100%;\n height: 100%;\n }\n .react-datepicker__month {\n margin: 0px 16px 16px !important;\n height: calc(100% - 58px);\n text-align: center;\n width: auto;\n }\n .react-datepicker__month-text {\n margin: 8px !important;\n }\n .react-datepicker__month-text:after {\n height: calc(100% + 16px);\n top: -8px;\n right: -8px;\n }\n .react-datepicker__month-text:nth-child(3n):after {\n content: none;\n }\n }\n @media (max-width: 600px) {\n width: 100%;\n height: 262px;\n box-shadow: 0px 5px 16px rgba(0, 0, 0, 0.1);\n }\n"])), kuiBasic.theme.palette.background.light1, kuiBasic.theme.palette.grey.fifteenB, kuiBasic.theme.palette.grey.fifteenB, kuiBasic.theme.palette.brand.main, kuiBasic.theme.palette.grey.fifteenB);
383
398
  var templateObject_1$j;
384
399
 
385
- var MonthPickerHeader = function (_a) {
400
+ var MonthPickerHeader = React.forwardRef(function (_a, ref) {
386
401
  var decreaseYear = _a.decreaseYear, increaseYear = _a.increaseYear, nextYearButtonDisabled = _a.nextYearButtonDisabled, prevYearButtonDisabled = _a.prevYearButtonDisabled, date = _a.date;
387
- return (jsxRuntime.jsxs(StyledHeader, __assign({ container: true, alignItems: "center", justify: "space-between" }, { children: [jsxRuntime.jsx(kuiBasic.Grid, __assign({ item: true }, { children: jsxRuntime.jsx(StyledIconButton, __assign({ disabled: prevYearButtonDisabled, onClick: decreaseYear }, { children: jsxRuntime.jsx(kuiIcon.ArrowBackIcon, { width: 14, height: 12 }) })) })), jsxRuntime.jsx(kuiBasic.Grid, __assign({ item: true }, { children: jsxRuntime.jsx(kuiBasic.Caption, __assign({ size: "sm", weight: 600 }, { children: date.getFullYear() })) })), jsxRuntime.jsx(kuiBasic.Grid, __assign({ item: true }, { children: jsxRuntime.jsx(StyledIconButton, __assign({ disabled: nextYearButtonDisabled, onClick: increaseYear }, { children: jsxRuntime.jsx(kuiIcon.ArrowNextIcon, { width: 14, height: 12 }) })) }))] })));
388
- };
402
+ return (jsxRuntime.jsxs(StyledHeader, __assign({ container: true, alignItems: "center", justify: "space-between", ref: ref }, { children: [jsxRuntime.jsx(kuiBasic.Grid, __assign({ item: true }, { children: jsxRuntime.jsx(StyledIconButton, __assign({ disabled: prevYearButtonDisabled, onClick: decreaseYear }, { children: jsxRuntime.jsx(kuiIcon.ArrowBackIcon, { width: 14, height: 12 }) })) })), jsxRuntime.jsx(kuiBasic.Grid, __assign({ item: true }, { children: jsxRuntime.jsx(kuiBasic.Caption, __assign({ size: "sm", weight: 600 }, { children: date.getFullYear() })) })), jsxRuntime.jsx(kuiBasic.Grid, __assign({ item: true }, { children: jsxRuntime.jsx(StyledIconButton, __assign({ disabled: nextYearButtonDisabled, onClick: increaseYear }, { children: jsxRuntime.jsx(kuiIcon.ArrowNextIcon, { width: 14, height: 12 }) })) }))] })));
403
+ });
389
404
  var StyledIconButton = styled__default["default"](kuiBasic.IconButton)(templateObject_1$i || (templateObject_1$i = __makeTemplateObject(["\n height: 36px;\n &:disabled {\n opacity: 0;\n }\n"], ["\n height: 36px;\n &:disabled {\n opacity: 0;\n }\n"])));
390
405
  var StyledHeader = styled__default["default"](kuiBasic.Grid)(templateObject_2$9 || (templateObject_2$9 = __makeTemplateObject(["\n background: #fff;\n padding: 4px 16px;\n border-radius: 12px 12px 0 0;\n"], ["\n background: #fff;\n padding: 4px 16px;\n border-radius: 12px 12px 0 0;\n"])));
391
406
  var templateObject_1$i, templateObject_2$9;
392
407
 
393
- var DesktopInputWithMonthPicker = function (_a) {
408
+ var DesktopInputWithMonthPicker = React.forwardRef(function (_a, ref) {
394
409
  var name = _a.name, form = _a.form, disabled = _a.disabled, datePickerProps = _a.datePickerProps, otherProps = __rest(_a, ["name", "form", "disabled", "datePickerProps"]);
395
- return (jsxRuntime.jsx(Wrapper$4, { children: jsxRuntime.jsx(reactHookForm.Controller, { name: name, control: form.control, render: function (_a) {
410
+ return (jsxRuntime.jsx(Wrapper$4, __assign({ ref: ref }, { children: jsxRuntime.jsx(reactHookForm.Controller, { name: name, control: form.control, render: function (_a) {
396
411
  var _b;
397
412
  var field = _a.field, fieldState = _a.fieldState;
398
413
  return (jsxRuntime.jsx(DatePicker__default["default"], __assign({ selected: field.value, onChange: field.onChange, disabled: disabled, customInput: jsxRuntime.jsx(InputForDatepicker, __assign({ mask: "99.9999", name: name, disabled: disabled, message: (_b = fieldState.error) === null || _b === void 0 ? void 0 : _b.message }, otherProps)), showMonthYearPicker: true, dateFormat: "MM.yyyy", popperPlacement: "bottom-end", calendarContainer: MonthPickerContainer, renderCustomHeader: function (props) { return (jsxRuntime.jsx(MonthPickerHeader, __assign({}, props))); } }, datePickerProps)));
399
- } }) }));
400
- };
414
+ } }) })));
415
+ });
401
416
  var Wrapper$4 = styled__default["default"].div(templateObject_1$h || (templateObject_1$h = __makeTemplateObject(["\n @media (max-width: 600px) {\n display: none;\n }\n"], ["\n @media (max-width: 600px) {\n display: none;\n }\n"])));
402
417
  var templateObject_1$h;
403
418
 
404
- var MenuItem = function (_a) {
419
+ var MenuItem = React.forwardRef(function (_a, ref) {
405
420
  var tab = _a.tab, active = _a.active, index = _a.index, handleClick = _a.handleClick, offset = _a.offset, isScrolling = _a.isScrolling, setIsScrolling = _a.setIsScrolling;
406
421
  var startScrolling = function () {
407
422
  setIsScrolling(true);
@@ -432,16 +447,16 @@ var MenuItem = function (_a) {
432
447
  reactScroll.Events.scrollEvent.remove("end");
433
448
  };
434
449
  }, []);
435
- return (jsxRuntime$1.jsx(reactScroll.Link, __assign({ to: tab.label, spy: true, smooth: true, duration: 500, offset: offset, onSetActive: handleSelect }, { children: jsxRuntime$1.jsx(ButtonWrapper$1, { children: jsxRuntime$1.jsx(kuiBasic.Button, __assign({ variant: Number(active) === index ? "orange" : "transparentWithBorder", size: "xs", css: Number(active) !== index && disabledStyles }, { children: tab.label })) }) })));
436
- };
450
+ return (jsxRuntime$1.jsx(reactScroll.Link, __assign({ to: tab.label, spy: true, smooth: true, duration: 500, offset: offset, onSetActive: handleSelect }, { children: jsxRuntime$1.jsx(ButtonWrapper$1, __assign({ ref: ref }, { children: jsxRuntime$1.jsx(kuiBasic.Button, __assign({ variant: Number(active) === index ? "orange" : "transparentWithBorder", size: "xs", css: Number(active) !== index && disabledStyles }, { children: tab.label })) })) })));
451
+ });
437
452
  var ButtonWrapper$1 = styled__default["default"].div(templateObject_1$g || (templateObject_1$g = __makeTemplateObject(["\n margin-right: 8px;\n width: max-content;\n max-width: 150px;\n @media (max-width: 900px) {\n max-width: unset;\n }\n"], ["\n margin-right: 8px;\n width: max-content;\n max-width: 150px;\n @media (max-width: 900px) {\n max-width: unset;\n }\n"])));
438
453
  var disabledStyles = react.css(templateObject_2$8 || (templateObject_2$8 = __makeTemplateObject(["\n p {\n color: ", ";\n font-weight: 400;\n },\n"], ["\n p {\n color: ", ";\n font-weight: 400;\n },\n"])), kuiBasic.theme.palette.grey.seventy);
439
454
  var templateObject_1$g, templateObject_2$8;
440
455
 
441
- var DesktopMenuPanel = function (_a) {
456
+ var DesktopMenuPanel = React.forwardRef(function (_a, ref) {
442
457
  var tabs = _a.tabs, variant = _a.variant, other = __rest(_a, ["tabs", "variant"]);
443
- return (jsxRuntime$1.jsx(Wrapper$3, __assign({ container: true, css: variant === "white" && { background: "white" } }, { children: tabs.map(function (tab, index) { return (jsxRuntime$1.jsx(kuiBasic.Grid, __assign({ item: true }, { children: jsxRuntime$1.jsx(MenuItem, __assign({ tab: tab, index: index, offset: -121 }, other), tab.label) }), index)); }) })));
444
- };
458
+ return (jsxRuntime$1.jsx(Wrapper$3, __assign({ container: true, css: variant === "white" && { background: "white" }, ref: ref }, { children: tabs.map(function (tab, index) { return (jsxRuntime$1.jsx(kuiBasic.Grid, __assign({ item: true }, { children: jsxRuntime$1.jsx(MenuItem, __assign({ tab: tab, index: index, offset: -121 }, other), tab.label) }), index)); }) })));
459
+ });
445
460
  var Wrapper$3 = styled__default["default"](kuiBasic.Grid)(templateObject_1$f || (templateObject_1$f = __makeTemplateObject(["\n position: sticky;\n top: 49px;\n left: 0;\n z-index: 11;\n background-color: ", ";\n padding: 16px 16px 24px;\n @media (max-width: 900px) {\n justify-content: space-between;\n }\n @media (max-width: 765px) {\n display: none;\n }\n"], ["\n position: sticky;\n top: 49px;\n left: 0;\n z-index: 11;\n background-color: ", ";\n padding: 16px 16px 24px;\n @media (max-width: 900px) {\n justify-content: space-between;\n }\n @media (max-width: 765px) {\n display: none;\n }\n"])), kuiBasic.theme.palette.background.light1);
446
461
  var templateObject_1$f;
447
462
 
@@ -476,7 +491,7 @@ var InputWithMask = React.forwardRef(function (_a, ref) {
476
491
  });
477
492
 
478
493
  var InputWithController = React.forwardRef(function (_a, ref) {
479
- var form = _a.form, name = _a.name, error = _a.error, inputProps = __rest(_a, ["form", "name", "error"]);
494
+ var form = _a.form, name = _a.name, error = _a.error, value = _a.value, inputProps = __rest(_a, ["form", "name", "error", "value"]);
480
495
  var handleChange = function (e, field) {
481
496
  field.onChange(e);
482
497
  if (inputProps.onChange) {
@@ -501,7 +516,7 @@ var InputWithController = React.forwardRef(function (_a, ref) {
501
516
  var field = _a.field, fieldState = _a.fieldState;
502
517
  return (jsxRuntime.jsx(kuiBasic.InputWithAdornments, __assign({ message: getError(fieldState) }, field, inputProps, { onChange: function (e) {
503
518
  return handleChange(e, field);
504
- }, value: field.value || "", ref: function (e) { return forwardedRef(e, field); } })));
519
+ }, value: typeof value !== "undefined" ? value : field.value || "", ref: function (e) { return forwardedRef(e, field); } })));
505
520
  } }));
506
521
  });
507
522
 
@@ -523,7 +538,7 @@ var strengthTexts = {
523
538
  medium: "Средний",
524
539
  hard: "Сложный",
525
540
  };
526
- var PassportStrengthBar = function (_a) {
541
+ var PassportStrengthBar = React.forwardRef(function (_a, ref) {
527
542
  var strength = _a.strength;
528
543
  var color = strength
529
544
  ? strengthColors[strength]
@@ -531,24 +546,24 @@ var PassportStrengthBar = function (_a) {
531
546
  var strengthKey = strength
532
547
  ? strengthCoefficients[strength]
533
548
  : -1;
534
- return (jsxRuntime$1.jsxs(Wrapper$2, __assign({ "data-testid": "strength_bar", className: String(!strength && "hidden") }, { children: [jsxRuntime$1.jsx(ReliabilityLevelWrapper, { children: Object.keys(strengthCoefficients).map(function (item, key) { return (jsxRuntime$1.jsx(ReliabilityLevel, { children: jsxRuntime$1.jsx(StyledLinearProgress, { "data-testid": "progress_item_".concat(item), value: strengthKey >= key ? 100 : 0, color: color }) }, item)); }) }), jsxRuntime$1.jsx(kuiBasic.Caption, __assign({ "data-testid": "strength_bar_explanation", size: "s", css: { color: color } }, { children: strength && strengthTexts[strength] })), jsxRuntime$1.jsx(Description, __assign({ size: "s", color: "fiftyP" }, { children: "\u041F\u0430\u0440\u043E\u043B\u044C \u0434\u043E\u043B\u0436\u0435\u043D \u0441\u043E\u0441\u0442\u043E\u044F\u0442\u044C \u0438\u0437 10 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432, \u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0442\u044C \u0446\u0438\u0444\u0440\u044B, \u0431\u043E\u043B\u044C\u0448\u0438\u0435 \u0438 \u0441\u0442\u0440\u043E\u0447\u043D\u044B\u0435 \u043B\u0430\u0442\u0438\u043D\u0441\u043A\u0438\u0435 \u0431\u0443\u0432\u044B" }))] })));
535
- };
549
+ return (jsxRuntime$1.jsxs(Wrapper$2, __assign({ "data-testid": "strength_bar", className: String(!strength && "hidden"), ref: ref }, { children: [jsxRuntime$1.jsx(ReliabilityLevelWrapper, { children: Object.keys(strengthCoefficients).map(function (item, key) { return (jsxRuntime$1.jsx(ReliabilityLevel, { children: jsxRuntime$1.jsx(StyledLinearProgress, { "data-testid": "progress_item_".concat(item), value: strengthKey >= key ? 100 : 0, color: color }) }, item)); }) }), jsxRuntime$1.jsx(kuiBasic.Caption, __assign({ "data-testid": "strength_bar_explanation", size: "s", css: { color: color } }, { children: strength && strengthTexts[strength] })), jsxRuntime$1.jsx(Description, __assign({ size: "s", color: "fiftyP" }, { children: "\u041F\u0430\u0440\u043E\u043B\u044C \u0434\u043E\u043B\u0436\u0435\u043D \u0441\u043E\u0441\u0442\u043E\u044F\u0442\u044C \u0438\u0437 10 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432, \u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0442\u044C \u0446\u0438\u0444\u0440\u044B, \u0431\u043E\u043B\u044C\u0448\u0438\u0435 \u0438 \u0441\u0442\u0440\u043E\u0447\u043D\u044B\u0435 \u043B\u0430\u0442\u0438\u043D\u0441\u043A\u0438\u0435 \u0431\u0443\u0432\u044B" }))] })));
550
+ });
536
551
  var Wrapper$2 = styled__default["default"].div(templateObject_1$e || (templateObject_1$e = __makeTemplateObject(["\n margin-top: 16px;\n min-height: 86px;\n @media (max-width: 900px) {\n min-height: unset;\n }\n &.hidden {\n opacity: 0;\n @media (max-width: 900px) {\n display: none;\n }\n }\n"], ["\n margin-top: 16px;\n min-height: 86px;\n @media (max-width: 900px) {\n min-height: unset;\n }\n &.hidden {\n opacity: 0;\n @media (max-width: 900px) {\n display: none;\n }\n }\n"])));
537
552
  var ReliabilityLevelWrapper = styled__default["default"].div(templateObject_2$7 || (templateObject_2$7 = __makeTemplateObject(["\n display: flex;\n margin-bottom: 8px;\n"], ["\n display: flex;\n margin-bottom: 8px;\n"])));
538
553
  var ReliabilityLevel = styled__default["default"].div(templateObject_3$3 || (templateObject_3$3 = __makeTemplateObject(["\n width: calc(100% / 4);\n margin-right: 16px;\n &:last-of-type {\n margin-right: 0;\n }\n"], ["\n width: calc(100% / 4);\n margin-right: 16px;\n &:last-of-type {\n margin-right: 0;\n }\n"])));
539
- var StyledLinearProgress = styled__default["default"](kuiBasic.LinearProgress)(templateObject_4$1 || (templateObject_4$1 = __makeTemplateObject(["\n height: 8px;\n border-radius: 8px;\n background-color: ", ";\n & .KUI-LinearProgress_bar {\n background-color: ", ";\n width: 102%;\n }\n"], ["\n height: 8px;\n border-radius: 8px;\n background-color: ", ";\n & .KUI-LinearProgress_bar {\n background-color: ", ";\n width: 102%;\n }\n"])), kuiBasic.theme.palette.grey.fifteenB, function (_a) {
554
+ var StyledLinearProgress = styled__default["default"](kuiBasic.LinearProgress)(templateObject_4$2 || (templateObject_4$2 = __makeTemplateObject(["\n height: 8px;\n border-radius: 8px;\n background-color: ", ";\n & .KUI-LinearProgress_bar {\n background-color: ", ";\n width: 102%;\n }\n"], ["\n height: 8px;\n border-radius: 8px;\n background-color: ", ";\n & .KUI-LinearProgress_bar {\n background-color: ", ";\n width: 102%;\n }\n"])), kuiBasic.theme.palette.grey.fifteenB, function (_a) {
540
555
  var color = _a.color;
541
556
  return color;
542
557
  });
543
558
  var Description = styled__default["default"](kuiBasic.Caption)(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n margin-top: 16px;\n @media (max-width: 900px) {\n margin-top: 8px;\n font-size: 12px;\n }\n"], ["\n margin-top: 16px;\n @media (max-width: 900px) {\n margin-top: 8px;\n font-size: 12px;\n }\n"])));
544
- var templateObject_1$e, templateObject_2$7, templateObject_3$3, templateObject_4$1, templateObject_5;
559
+ var templateObject_1$e, templateObject_2$7, templateObject_3$3, templateObject_4$2, templateObject_5;
545
560
 
546
561
  var isValidWithMaskExp = /^[^_]+$/;
547
562
  var simplePasswordRegExp = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*]).{10,}$/;
548
563
  var mediumPasswordRegExp = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*]).{12,}$/;
549
564
  var strongPasswordRegExp = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*]).{14,}$/;
550
565
 
551
- var InputPassword = function (props) {
566
+ var InputPassword = React.forwardRef(function (props, ref) {
552
567
  var _a = React.useState(false), showPassword = _a[0], setShowPassword = _a[1];
553
568
  var _b = React.useState(null), strength = _b[0], setStrength = _b[1];
554
569
  var handleShowChange = function () {
@@ -583,12 +598,12 @@ var InputPassword = function (props) {
583
598
  checkPasswordStrength(fieldValue);
584
599
  }
585
600
  }, []);
586
- return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(InputWithController, __assign({ type: showPassword ? "text" : "password", autoComplete: "new_password", onChange: handleChange, "data-testid": "input_password", endIcon: jsxRuntime.jsx(EyeIconWrapper, __assign({ "data-testid": "show_value_btn", onClick: handleShowChange }, { children: showPassword ? jsxRuntime.jsx(kuiIcon.ClosedEyeIcon, {}) : jsxRuntime.jsx(kuiIcon.OpenEyeIcon, {}) })) }, props)), jsxRuntime.jsx(PassportStrengthBar, { strength: strength })] }));
587
- };
601
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(InputWithController, __assign({ type: showPassword ? "text" : "password", autoComplete: "new_password", onChange: handleChange, "data-testid": "input_password", ref: ref, endIcon: jsxRuntime.jsx(EyeIconWrapper, __assign({ "data-testid": "show_value_btn", onClick: handleShowChange }, { children: showPassword ? jsxRuntime.jsx(kuiIcon.ClosedEyeIcon, {}) : jsxRuntime.jsx(kuiIcon.OpenEyeIcon, {}) })) }, props)), jsxRuntime.jsx(PassportStrengthBar, { strength: strength })] }));
602
+ });
588
603
  var EyeIconWrapper = styled__default["default"].div(templateObject_1$d || (templateObject_1$d = __makeTemplateObject(["\n height: 18px;\n display: flex;\n align-items: center;\n cursor: pointer;\n"], ["\n height: 18px;\n display: flex;\n align-items: center;\n cursor: pointer;\n"])));
589
604
  var templateObject_1$d;
590
605
 
591
- var InputTextAreaMobile = function (props) { return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(InputWrapper, { children: jsxRuntime.jsx(InputWithController, __assign({}, props)) }), jsxRuntime.jsx(TextAreaWrapper, { children: jsxRuntime.jsx(InputWithController, __assign({ isTextArea: true }, props)) })] })); };
606
+ var InputTextAreaMobile = React.forwardRef(function (props) { return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(InputWrapper, { children: jsxRuntime.jsx(InputWithController, __assign({}, props)) }), jsxRuntime.jsx(TextAreaWrapper, { children: jsxRuntime.jsx(InputWithController, __assign({ isTextArea: true }, props)) })] })); });
592
607
  var InputWrapper = styled__default["default"].div(templateObject_1$c || (templateObject_1$c = __makeTemplateObject(["\n @media (max-width: 900px) {\n display: none;\n }\n"], ["\n @media (max-width: 900px) {\n display: none;\n }\n"])));
593
608
  var TextAreaWrapper = styled__default["default"].div(templateObject_2$6 || (templateObject_2$6 = __makeTemplateObject(["\n @media (min-width: 901px) {\n display: none;\n }\n"], ["\n @media (min-width: 901px) {\n display: none;\n }\n"])));
594
609
  var templateObject_1$c, templateObject_2$6;
@@ -605,17 +620,18 @@ var useToggle = function (isModalOpen) {
605
620
  return [isOpen, handleOpen, handleClose];
606
621
  };
607
622
 
608
- var ModalFooter = function (_a) {
623
+ var ModalFooter = React.forwardRef(function (_a, ref) {
609
624
  var label = _a.label, button = _a.button, otherProps = __rest(_a, ["label", "button"]);
610
- return (jsxRuntime.jsxs(StyledFooter, { children: [jsxRuntime.jsx(kuiBasic.Divider, {}), jsxRuntime.jsx(ButtonWrapper, { children: button || (jsxRuntime.jsx(ButtonStyled, __assign({ fullWidth: true, size: "s", endIcon: jsxRuntime.jsx(kuiIcon.CheckIcon, {}) }, otherProps, { children: label }))) })] }));
611
- };
625
+ return (jsxRuntime.jsxs(StyledFooter, __assign({ ref: ref }, { children: [jsxRuntime.jsx(kuiBasic.Divider, {}), jsxRuntime.jsx(ButtonWrapper, { children: button || (jsxRuntime.jsx(ButtonStyled, __assign({ fullWidth: true, size: "s", endIcon: jsxRuntime.jsx(kuiIcon.CheckIcon, {}) }, otherProps, { children: label }))) })] })));
626
+ });
612
627
  var StyledFooter = styled__default["default"].div(templateObject_1$b || (templateObject_1$b = __makeTemplateObject(["\n background: ", ";\n border-radius: 0 0 12px 12px;\n z-index: 10;\n position: sticky;\n bottom: 0;\n left: 0;\n"], ["\n background: ", ";\n border-radius: 0 0 12px 12px;\n z-index: 10;\n position: sticky;\n bottom: 0;\n left: 0;\n"])), kuiBasic.theme.palette.grey.zero);
613
628
  var ButtonWrapper = styled__default["default"].div(templateObject_2$5 || (templateObject_2$5 = __makeTemplateObject(["\n display: flex;\n justify-content: flex-end;\n padding: 24px 40px;\n @media (max-width: 600px) {\n padding: 24px 16px;\n }\n"], ["\n display: flex;\n justify-content: flex-end;\n padding: 24px 40px;\n @media (max-width: 600px) {\n padding: 24px 16px;\n }\n"])));
614
629
  var ButtonStyled = styled__default["default"](kuiBasic.Button)(templateObject_3$2 || (templateObject_3$2 = __makeTemplateObject(["\n @media (max-width: 600px) {\n width: 100%;\n }\n"], ["\n @media (max-width: 600px) {\n width: 100%;\n }\n"])));
615
630
  var templateObject_1$b, templateObject_2$5, templateObject_3$2;
616
631
 
617
- DatePicker.registerLocale("ru", ru__default["default"]);
618
632
  var generateYearRange = function (offsetFromCurrent, maxYearCount) {
633
+ if (!offsetFromCurrent || !maxYearCount)
634
+ return [];
619
635
  var endYear = luxon.DateTime.now().year - offsetFromCurrent;
620
636
  return ___default["default"].range(maxYearCount).map(function (elem) {
621
637
  var fullYear = endYear - elem;
@@ -627,49 +643,84 @@ var generateYearRange = function (offsetFromCurrent, maxYearCount) {
627
643
  };
628
644
  var InputWithDatePicker = React.forwardRef(function (_a, ref) {
629
645
  var _b;
630
- var title = _a.title, description = _a.description, name = _a.name, form = _a.form, disabled = _a.disabled, yearParams = _a.yearParams, props = __rest(_a, ["title", "description", "name", "form", "disabled", "yearParams"]);
646
+ var title = _a.title, description = _a.description, name = _a.name, form = _a.form, disabled = _a.disabled, yearParams = _a.yearParams, onChange = _a.onChange, max = _a.max, min = _a.min, footerLabel = _a.footerLabel, datePickerProps = _a.datePickerProps, alignTitle = _a.alignTitle, props = __rest(_a, ["title", "description", "name", "form", "disabled", "yearParams", "onChange", "max", "min", "footerLabel", "datePickerProps", "alignTitle"]);
631
647
  var _c = reactHookForm.useController({
632
648
  name: name,
633
649
  control: form.control,
634
650
  }), field = _c.field, fieldState = _c.fieldState;
635
651
  var error = (_b = fieldState.error) === null || _b === void 0 ? void 0 : _b.message;
652
+ var formattedValue = field.value ? field.value.toFormat("dd.MM.yyyy") : "";
653
+ var formattedDate = field.value ? field.value.toJSDate() : null;
636
654
  var _d = useToggle(), isModalOpen = _d[0], handleModalOpen = _d[1], handleModalClose = _d[2];
637
- var _e = React.useState(field.value
638
- ? luxon.DateTime.fromJSDate(new Date(String(field.value))).toFormat("dd.MM.yyyy")
639
- : null), value = _e[0], setValue = _e[1];
640
- var _f = React.useState(value ? luxon.DateTime.fromFormat(value, "dd.MM.yyyy").toJSDate() : null), date = _f[0], setDate = _f[1];
641
- var yearList = generateYearRange(yearParams.min, yearParams.max);
655
+ var _e = React.useState(formattedDate), date = _e[0], setDate = _e[1];
656
+ var _f = React.useState(formattedValue), value = _f[0], setValue = _f[1];
657
+ var yearList = generateYearRange(yearParams === null || yearParams === void 0 ? void 0 : yearParams.min, yearParams === null || yearParams === void 0 ? void 0 : yearParams.max);
658
+ React.useEffect(function () {
659
+ if (!isModalOpen) {
660
+ setDate(null);
661
+ }
662
+ else {
663
+ setDate(formattedDate);
664
+ }
665
+ }, [isModalOpen]);
642
666
  var handleChange = function (e) {
643
667
  var targetValue = e.target.value;
644
668
  setValue(targetValue);
645
669
  if (targetValue.length !== 0 && isValidWithMaskExp.test(targetValue)) {
646
- var jsDate = luxon.DateTime.fromFormat(targetValue, "dd.MM.yyyy").toJSDate();
647
- setDate(jsDate);
648
- field === null || field === void 0 ? void 0 : field.onChange({ target: { value: jsDate, name: name }, type: "change" });
670
+ var targetDate = luxon.DateTime.fromFormat(targetValue, "dd.MM.yyyy");
671
+ setDate(targetDate.toJSDate());
672
+ field === null || field === void 0 ? void 0 : field.onChange({ target: { value: targetDate, name: name }, type: "change" });
673
+ if (onChange) {
674
+ onChange(targetDate);
675
+ }
649
676
  }
650
677
  else {
651
678
  setDate(null);
652
679
  field === null || field === void 0 ? void 0 : field.onChange({ target: { value: null, name: name }, type: "change" });
680
+ if (onChange) {
681
+ onChange(null);
682
+ }
653
683
  }
654
684
  };
655
685
  var acceptWithDateSelected = function () {
656
686
  if (date) {
657
- setValue(luxon.DateTime.fromJSDate(date).toFormat("dd.MM.yyyy"));
658
- field === null || field === void 0 ? void 0 : field.onChange({ target: { value: date, name: name }, type: "change" });
687
+ var dateObj = luxon.DateTime.fromJSDate(date);
688
+ setValue(dateObj.toFormat("dd.MM.yyyy"));
689
+ field === null || field === void 0 ? void 0 : field.onChange({ target: { value: dateObj, name: name }, type: "change" });
690
+ if (onChange) {
691
+ onChange(dateObj);
692
+ }
659
693
  handleModalClose();
660
694
  }
661
695
  };
662
- return (jsxRuntime$1.jsxs(jsxRuntime$1.Fragment, { children: [jsxRuntime$1.jsx(InputForDatepicker, __assign({ mask: "99.99.9999", name: name, handleCLick: handleModalOpen, value: value, onChange: handleChange, disabled: disabled, message: error, ref: ref }, props)), jsxRuntime$1.jsxs(kuiBasic.Modal, __assign({ title: title, description: description, isOpen: isModalOpen, handleClose: handleModalClose }, { children: [jsxRuntime$1.jsx(ContentWrapper$1, { children: jsxRuntime$1.jsx(DatePicker__default["default"], { inline: true, selected: date, onChange: function (newDate) { return setDate(newDate); }, locale: "ru", calendarContainer: StyledCalendarStandardContainer, renderCustomHeader: function (headProps) { return (jsxRuntime$1.jsx(CalendarHeaderWithSelect, __assign({ yearOptions: yearList }, headProps))); }, renderDayContents: function (day) { return (jsxRuntime$1.jsx(DayContent, { children: day })); } }) }), jsxRuntime$1.jsx(ModalFooter, { fullWidth: true, disabled: !date, onClick: acceptWithDateSelected, label: "\u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044C" })] }))] }));
696
+ var handleDateChange = function (newDate) {
697
+ setDate(newDate);
698
+ };
699
+ var forwardedRef = function (elem) {
700
+ if (ref) {
701
+ // eslint-disable-next-line no-param-reassign
702
+ // @ts-ignore
703
+ ref.current = elem;
704
+ }
705
+ field.ref(elem);
706
+ };
707
+ return (jsxRuntime$1.jsxs(jsxRuntime$1.Fragment, { children: [jsxRuntime$1.jsx(InputForDatepicker, __assign({ mask: "99.99.9999", name: name, handleCLick: handleModalOpen, value: formattedValue || value, onChange: handleChange, disabled: disabled, message: error, ref: forwardedRef }, props)), jsxRuntime$1.jsxs(StyledModal, __assign({ title: title, description: description, isOpen: isModalOpen, handleClose: handleModalClose, alignTitle: alignTitle }, { children: [jsxRuntime$1.jsx(ContentWrapper$1, { children: jsxRuntime$1.jsx(DatePicker__default["default"], __assign({ inline: true, selected: date || formattedDate, onChange: handleDateChange, calendarContainer: StyledCalendarStandardContainer, renderCustomHeader: function (headProps) { return (jsxRuntime$1.jsx(CalendarHeaderWithSelect, __assign({ yearOptions: yearList, max: max, min: min }, headProps))); }, renderDayContents: function (day) { return (jsxRuntime$1.jsx(DayContent, { children: day })); }, maxDate: max === null || max === void 0 ? void 0 : max.toJSDate(), minDate: min === null || min === void 0 ? void 0 : min.toJSDate() }, datePickerProps)) }), jsxRuntime$1.jsx(ModalFooter, { fullWidth: true, disabled: !formattedDate && !date, onClick: acceptWithDateSelected, label: footerLabel })] }))] }));
663
708
  });
664
709
  InputWithDatePicker.defaultProps = {
665
710
  title: "Дата рождения",
666
711
  description: "Выберите год, месяц и число вашего рождения",
667
712
  yearParams: { min: 18, max: 120 },
713
+ footerLabel: "Подтвердить",
714
+ alignTitle: "center",
668
715
  };
669
716
  var ContentWrapper$1 = styled__default["default"].div(templateObject_1$a || (templateObject_1$a = __makeTemplateObject(["\n padding: 36px 40px 24px;\n @media (max-width: 600px) {\n padding: 20px 0 0;\n }\n"], ["\n padding: 36px 40px 24px;\n @media (max-width: 600px) {\n padding: 20px 0 0;\n }\n"])));
670
717
  var StyledCalendarStandardContainer = styled__default["default"](CalendarStandardContainer)(templateObject_2$4 || (templateObject_2$4 = __makeTemplateObject(["\n height: 410px;\n .react-datepicker__header {\n padding: 0 !important;\n }\n .react-datepicker__day-names {\n padding: 35px 22px 0;\n background-color: ", ";\n border-radius: 16px 16px 0 0;\n @media (max-width: 900px) {\n padding: 24px 16px 0;\n }\n }\n .react-datepicker__month {\n justify-content: space-between;\n height: calc(100% - 124px);\n background-color: ", ";\n border-radius: 0 0 16px 16px;\n padding: 20px 22px 24px;\n margin: 0 !important;\n box-sizing: border-box;\n @media (max-width: 900px) {\n padding: 20px 16px 24px;\n }\n }\n @media (max-width: 600px) {\n height: auto;\n margin-bottom: -4px;\n }\n"], ["\n height: 410px;\n .react-datepicker__header {\n padding: 0 !important;\n }\n .react-datepicker__day-names {\n padding: 35px 22px 0;\n background-color: ", ";\n border-radius: 16px 16px 0 0;\n @media (max-width: 900px) {\n padding: 24px 16px 0;\n }\n }\n .react-datepicker__month {\n justify-content: space-between;\n height: calc(100% - 124px);\n background-color: ", ";\n border-radius: 0 0 16px 16px;\n padding: 20px 22px 24px;\n margin: 0 !important;\n box-sizing: border-box;\n @media (max-width: 900px) {\n padding: 20px 16px 24px;\n }\n }\n @media (max-width: 600px) {\n height: auto;\n margin-bottom: -4px;\n }\n"])), kuiBasic.theme.palette.background.light1, kuiBasic.theme.palette.background.light1);
671
- var DayContent = styled__default["default"].span(templateObject_3$1 || (templateObject_3$1 = __makeTemplateObject(["\n padding-top: 1px;\n @media (max-width: 600px) {\n font-weight: 400;\n }\n"], ["\n padding-top: 1px;\n @media (max-width: 600px) {\n font-weight: 400;\n }\n"])));
672
- var templateObject_1$a, templateObject_2$4, templateObject_3$1;
718
+ var DayContent = styled__default["default"].span(templateObject_3$1 || (templateObject_3$1 = __makeTemplateObject(["\n padding-top: 1px;\n font-family: Inter, sans-serif;\n @media (max-width: 600px) {\n font-weight: 400;\n }\n"], ["\n padding-top: 1px;\n font-family: Inter, sans-serif;\n @media (max-width: 600px) {\n font-weight: 400;\n }\n"])));
719
+ var StyledModal = styled__default["default"](kuiBasic.Modal)(templateObject_4$1 || (templateObject_4$1 = __makeTemplateObject(["\n .KUI-Modal_title {\n font-size: 24px;\n line-height: 32px;\n text-align: ", ";\n }\n"], ["\n .KUI-Modal_title {\n font-size: 24px;\n line-height: 32px;\n text-align: ", ";\n }\n"])), function (_a) {
720
+ var alignTitle = _a.alignTitle;
721
+ return alignTitle || "center";
722
+ });
723
+ var templateObject_1$a, templateObject_2$4, templateObject_3$1, templateObject_4$1;
673
724
 
674
725
  var shortMonths = [
675
726
  "ЯНВ",
@@ -694,7 +745,7 @@ var ruCustom = __assign(__assign({}, ru__default["default"]), { localize: {
694
745
  dayPeriod: function () { return ""; },
695
746
  day: function () { return ""; },
696
747
  } });
697
- var MobileInputWithMonthPicker = function (_a) {
748
+ var MobileInputWithMonthPicker = React.forwardRef(function (_a, ref) {
698
749
  var _b;
699
750
  var title = _a.title, name = _a.name, form = _a.form, disabled = _a.disabled, datePickerProps = _a.datePickerProps, props = __rest(_a, ["title", "name", "form", "disabled", "datePickerProps"]);
700
751
  var _c = reactHookForm.useController({
@@ -730,15 +781,15 @@ var MobileInputWithMonthPicker = function (_a) {
730
781
  field === null || field === void 0 ? void 0 : field.onChange({ target: { value: date, name: name }, type: "change" });
731
782
  handleModalClose();
732
783
  };
733
- return (jsxRuntime.jsxs(Wrapper$1, { children: [jsxRuntime.jsx(InputForDatepicker, __assign({ mask: "99.9999", name: name, handleCLick: handleModalOpen, value: value, onChange: handleChange, disabled: disabled, message: error, isLabelShrink: Boolean(field.value) }, props)), jsxRuntime.jsxs(kuiBasic.Modal, __assign({ title: title, isOpen: isModalOpen, handleClose: handleModalClose }, { children: [jsxRuntime.jsx(ContentWrapper, { children: jsxRuntime.jsx(DatePicker__default["default"], __assign({ inline: true, showMonthYearPicker: true, dateFormat: "MM.yyyy", selected: date, onChange: function (newDate) { return setDate(newDate); }, locale: ruCustom, calendarContainer: MonthPickerContainer, renderCustomHeader: function (headProps) { return (jsxRuntime.jsx(MonthPickerHeader, __assign({}, headProps))); } }, datePickerProps)) }), jsxRuntime.jsx(ModalFooter, { fullWidth: true, disabled: !date, onClick: acceptWithDateSelected, label: "\u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044C" })] }))] }));
734
- };
784
+ return (jsxRuntime.jsxs(Wrapper$1, __assign({ ref: ref }, { children: [jsxRuntime.jsx(InputForDatepicker, __assign({ mask: "99.9999", name: name, handleCLick: handleModalOpen, value: value, onChange: handleChange, disabled: disabled, message: error, isLabelShrink: Boolean(field.value) }, props)), jsxRuntime.jsxs(kuiBasic.Modal, __assign({ title: title, isOpen: isModalOpen, handleClose: handleModalClose }, { children: [jsxRuntime.jsx(ContentWrapper, { children: jsxRuntime.jsx(DatePicker__default["default"], __assign({ inline: true, showMonthYearPicker: true, dateFormat: "MM.yyyy", selected: date, onChange: function (newDate) { return setDate(newDate); }, locale: ruCustom, calendarContainer: MonthPickerContainer, renderCustomHeader: function (headProps) { return (jsxRuntime.jsx(MonthPickerHeader, __assign({}, headProps))); } }, datePickerProps)) }), jsxRuntime.jsx(ModalFooter, { fullWidth: true, disabled: !date, onClick: acceptWithDateSelected, label: "\u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044C" })] }))] })));
785
+ });
735
786
  var Wrapper$1 = styled__default["default"].div(templateObject_1$9 || (templateObject_1$9 = __makeTemplateObject(["\n @media (min-width: 601px) {\n display: none;\n }\n"], ["\n @media (min-width: 601px) {\n display: none;\n }\n"])));
736
787
  var ContentWrapper = styled__default["default"].div(templateObject_2$3 || (templateObject_2$3 = __makeTemplateObject(["\n @media (max-width: 600px) {\n padding: 16px 16px 8px;\n }\n"], ["\n @media (max-width: 600px) {\n padding: 16px 16px 8px;\n }\n"])));
737
788
  var templateObject_1$9, templateObject_2$3;
738
789
 
739
790
  var InputWithMonthPicker = function (props) { return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(DesktopInputWithMonthPicker, __assign({}, props)), jsxRuntime.jsx(MobileInputWithMonthPicker, __assign({}, props))] })); };
740
791
 
741
- var MobileMenuPanel = function (_a) {
792
+ var MobileMenuPanel = React.forwardRef(function (_a, ref) {
742
793
  var tabs = _a.tabs, handleClick = _a.handleClick, variant = _a.variant, other = __rest(_a, ["tabs", "handleClick", "variant"]);
743
794
  var swiperRef = React.useRef(null);
744
795
  var slideTo = function (index) {
@@ -748,8 +799,8 @@ var MobileMenuPanel = function (_a) {
748
799
  }, 16);
749
800
  handleClick(index);
750
801
  };
751
- return (jsxRuntime$1.jsx(Wrapper, __assign({ css: variant === "white" && { background: "white" } }, { children: jsxRuntime$1.jsx(Swiper__default["default"], __assign({ spaceBetween: 8, slidesPerView: "auto", slideToClickedSlide: true, ref: swiperRef }, { children: tabs.map(function (tab, index) { return (jsxRuntime$1.jsx(SlideWrapper, { children: jsxRuntime$1.jsx(MenuItem, __assign({ tab: tab, index: index, handleClick: slideTo, offset: -121 }, other), tab.label) }, index)); }) })) })));
752
- };
802
+ return (jsxRuntime$1.jsx(Wrapper, __assign({ css: variant === "white" && { background: "white" }, ref: ref }, { children: jsxRuntime$1.jsx(Swiper__default["default"], __assign({ spaceBetween: 8, slidesPerView: "auto", slideToClickedSlide: true, ref: swiperRef }, { children: tabs.map(function (tab, index) { return (jsxRuntime$1.jsx(SlideWrapper, { children: jsxRuntime$1.jsx(MenuItem, __assign({ tab: tab, index: index, handleClick: slideTo, offset: -121 }, other), tab.label) }, index)); }) })) })));
803
+ });
753
804
  var Wrapper = styled__default["default"].div(templateObject_1$8 || (templateObject_1$8 = __makeTemplateObject(["\n position: sticky;\n top: 49px;\n left: 0;\n z-index: 11;\n background: ", ";\n padding: 16px 0 24px;\n @media (min-width: 766px) {\n display: none;\n }\n"], ["\n position: sticky;\n top: 49px;\n left: 0;\n z-index: 11;\n background: ", ";\n padding: 16px 0 24px;\n @media (min-width: 766px) {\n display: none;\n }\n"])), kuiBasic.theme.palette.background.light1);
754
805
  var SlideWrapper = styled__default["default"].div(templateObject_2$2 || (templateObject_2$2 = __makeTemplateObject(["\n width: max-content !important;\n &:first-of-type {\n padding-left: 16px;\n }\n"], ["\n width: max-content !important;\n &:first-of-type {\n padding-left: 16px;\n }\n"])));
755
806
  var templateObject_1$8, templateObject_2$2;
@@ -768,7 +819,7 @@ var useWindowWidth = function (time) {
768
819
  return width;
769
820
  };
770
821
 
771
- var MenuPanel = function (_a) {
822
+ var MenuPanel = React.forwardRef(function (_a, ref) {
772
823
  var tabs = _a.tabs, tabPanels = _a.tabPanels, paths = _a.paths, activeTab = _a.activeTab, variant = _a.variant;
773
824
  var width = useWindowWidth();
774
825
  var _b = React__namespace.useState(activeTab), value = _b[0], setValue = _b[1];
@@ -797,21 +848,21 @@ var MenuPanel = function (_a) {
797
848
  if (width === 0) {
798
849
  return null;
799
850
  }
800
- return (jsxRuntime$1.jsxs("div", { children: [width > 765 ? (jsxRuntime$1.jsx(DesktopMenuPanel, { tabs: tabs, active: value, handleClick: handleClick, variant: variant, isScrolling: isScrolling, setIsScrolling: setIsScrolling })) : (jsxRuntime$1.jsx(MobileMenuPanel, { tabs: tabs, active: value, handleClick: handleClick, variant: variant, isScrolling: isScrolling, setIsScrolling: setIsScrolling })), tabPanels.map(function (item, index) { return (jsxRuntime$1.jsx("div", __assign({ css: index === tabPanels.length - 1 && fullHeightStyles }, { children: jsxRuntime$1.jsx(reactScroll.Element, __assign({ name: tabs[index].label, "data-index": index }, { children: item }), index) }), index)); })] }));
801
- };
851
+ return (jsxRuntime$1.jsxs("div", __assign({ ref: ref }, { children: [width > 765 ? (jsxRuntime$1.jsx(DesktopMenuPanel, { tabs: tabs, active: value, handleClick: handleClick, variant: variant, isScrolling: isScrolling, setIsScrolling: setIsScrolling })) : (jsxRuntime$1.jsx(MobileMenuPanel, { tabs: tabs, active: value, handleClick: handleClick, variant: variant, isScrolling: isScrolling, setIsScrolling: setIsScrolling })), tabPanels.map(function (item, index) { return (jsxRuntime$1.jsx("div", __assign({ css: index === tabPanels.length - 1 && fullHeightStyles }, { children: jsxRuntime$1.jsx(reactScroll.Element, __assign({ name: tabs[index].label, "data-index": index }, { children: item }), index) }), index)); })] })));
852
+ });
802
853
  MenuPanel.defaultProps = {
803
854
  variant: "grey",
804
855
  };
805
856
  var fullHeightStyles = react.css(templateObject_1$7 || (templateObject_1$7 = __makeTemplateObject(["\n height: calc(100vh - 121px);\n"], ["\n height: calc(100vh - 121px);\n"])));
806
857
  var templateObject_1$7;
807
858
 
808
- var Switch = function (_a) {
859
+ var Switch = React.forwardRef(function (_a, ref) {
809
860
  var form = _a.form, name = _a.name, props = __rest(_a, ["form", "name"]);
810
861
  return (jsxRuntime$1.jsx(reactHookForm.Controller, { control: form === null || form === void 0 ? void 0 : form.control, name: name, render: function (_a) {
811
862
  var field = _a.field;
812
- return (jsxRuntime$1.jsx(kuiBasic.Switch, __assign({ checked: Boolean(field.value), onChange: field.onChange, "data-testid": name }, props)));
863
+ return (jsxRuntime$1.jsx(kuiBasic.Switch, __assign({ checked: Boolean(field.value), onChange: field.onChange, "data-testid": name, ref: ref }, props)));
813
864
  } }));
814
- };
865
+ });
815
866
 
816
867
  var InputPhoneWithForm = React.forwardRef(function (props, ref) {
817
868
  var _a;
@@ -856,7 +907,7 @@ InputPhoneWithForm.defaultProps = {
856
907
  name: "phone",
857
908
  };
858
909
 
859
- var Table = function (props) { return jsxRuntime.jsx(StyledTable, __assign({ cellSpacing: "0" }, props)); };
910
+ var Table = React.forwardRef(function (props, ref) { return jsxRuntime.jsx(StyledTable, __assign({ cellSpacing: "0", ref: ref }, props)); });
860
911
  var StyledTable = styled__default["default"].table(templateObject_1$6 || (templateObject_1$6 = __makeTemplateObject(["\n width: 100%;\n border-spacing: 0;\n"], ["\n width: 100%;\n border-spacing: 0;\n"])));
861
912
  var templateObject_1$6;
862
913
 
@@ -866,12 +917,11 @@ var templateObject_1$5;
866
917
  var TableCell = styled__default["default"].td(templateObject_1$4 || (templateObject_1$4 = __makeTemplateObject(["\n padding: 0;\n"], ["\n padding: 0;\n"])));
867
918
  var templateObject_1$4;
868
919
 
869
- var TableRow = function (_a) {
920
+ var TableRow = React.forwardRef(function (_a, ref) {
870
921
  var children = _a.children, other = __rest(_a, ["children"]);
871
922
  var childrenArr = React__namespace.Children.toArray(children);
872
- // @ts-ignore
873
- return jsxRuntime.jsx("tr", { children: childrenArr.map(function (child) { return React__namespace.cloneElement(child, other); }) });
874
- };
923
+ return (jsxRuntime.jsx("tr", __assign({ ref: ref }, { children: childrenArr.map(function (child) { return React__namespace.cloneElement(child, other); }) })));
924
+ });
875
925
 
876
926
  var placementsPositions = {
877
927
  bottomStart: {