mimir-ui-kit 1.5.1 → 1.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. package/dist/DatePickerModal-CbzwSnA7.js +202 -0
  2. package/dist/assets/Button.css +1 -1
  3. package/dist/assets/DatePickerModal.css +1 -0
  4. package/dist/assets/Drawer.css +1 -0
  5. package/dist/assets/Input.css +1 -1
  6. package/dist/assets/index.css +1 -1
  7. package/dist/components/Button/Button.d.ts +0 -1
  8. package/dist/components/Button/Button.js +24 -24
  9. package/dist/components/DatePicker/DatePicker.d.ts +44 -0
  10. package/dist/components/DatePicker/DatePicker.js +78 -0
  11. package/dist/components/DatePicker/DatePickerModal.d.ts +8 -0
  12. package/dist/components/DatePicker/DatePickerModal.js +8 -0
  13. package/dist/components/DatePicker/constants.d.ts +5 -0
  14. package/dist/components/DatePicker/constants.js +9 -0
  15. package/dist/components/DatePicker/index.d.ts +2 -0
  16. package/dist/components/DatePicker/index.js +4 -0
  17. package/dist/components/Drawer/Drawer.d.ts +38 -0
  18. package/dist/components/Drawer/Drawer.js +144 -0
  19. package/dist/components/Drawer/constants.d.ts +5 -0
  20. package/dist/components/Drawer/constants.js +9 -0
  21. package/dist/components/Drawer/index.d.ts +2 -0
  22. package/dist/components/Drawer/index.js +6 -0
  23. package/dist/components/Input/Input.js +14 -14
  24. package/dist/components/Portal/Portal.d.ts +7 -0
  25. package/dist/components/Portal/Portal.js +10 -0
  26. package/dist/components/Portal/index.d.ts +1 -0
  27. package/dist/components/Portal/index.js +4 -0
  28. package/dist/components/index.d.ts +4 -0
  29. package/dist/components/index.js +6 -0
  30. package/dist/hooks/index.d.ts +1 -0
  31. package/dist/hooks/index.js +2 -0
  32. package/dist/hooks/useLockBodyScroll/index.d.ts +1 -0
  33. package/dist/hooks/useLockBodyScroll/index.js +4 -0
  34. package/dist/hooks/useLockBodyScroll/useLockBodyScroll.d.ts +6 -0
  35. package/dist/hooks/useLockBodyScroll/useLockBodyScroll.js +20 -0
  36. package/dist/index.d.ts +1 -0
  37. package/dist/index.js +10 -0
  38. package/dist/utils/formating/Date.d.ts +1 -0
  39. package/dist/utils/formating/Date.js +27 -0
  40. package/dist/utils/formating/Month.d.ts +8 -0
  41. package/dist/utils/formating/Month.js +80 -0
  42. package/dist/utils/formating/Number.d.ts +6 -0
  43. package/dist/utils/formating/Number.js +8 -0
  44. package/dist/utils/index.d.ts +9 -0
  45. package/dist/utils/index.js +11 -0
  46. package/package.json +1 -1
@@ -0,0 +1,202 @@
1
+ import { jsx, Fragment, jsxs } from "react/jsx-runtime";
2
+ import { useRef, useState, useEffect } from "react";
3
+ import { Button } from "./components/Button/Button.js";
4
+ import { formating } from "./utils/index.js";
5
+ import './assets/DatePickerModal.css';const input = "_input_8eg6j_2";
6
+ const wrapper = "_wrapper_8eg6j_23";
7
+ const active = "_active_8eg6j_29";
8
+ const button = "_button_8eg6j_37";
9
+ const h = "_h_8eg6j_83";
10
+ const b = "_b_8eg6j_37";
11
+ const d = "_d_8eg6j_6";
12
+ const m = "_m_8eg6j_102";
13
+ const a = "_a_8eg6j_29";
14
+ const prev = "_prev_8eg6j_104";
15
+ const orange = "_orange_8eg6j_120";
16
+ const current = "_current_8eg6j_145";
17
+ const cls = {
18
+ input,
19
+ "date-wrapper": "_date-wrapper_8eg6j_6",
20
+ wrapper,
21
+ active,
22
+ "input-wrapper": "_input-wrapper_8eg6j_33",
23
+ "button-wrapper": "_button-wrapper_8eg6j_37",
24
+ button,
25
+ "field-overlow": "_field-overlow_8eg6j_54",
26
+ "calendar-block": "_calendar-block_8eg6j_60",
27
+ h,
28
+ b,
29
+ d,
30
+ m,
31
+ a,
32
+ prev,
33
+ orange,
34
+ current
35
+ };
36
+ function DatePickerModal({
37
+ date,
38
+ onValue,
39
+ setActive,
40
+ before
41
+ }) {
42
+ const field = useRef(null);
43
+ const _current = new Date(date);
44
+ const _selecte = new Date(date);
45
+ const current2 = {
46
+ y: _current.getFullYear(),
47
+ d: _current.getDate(),
48
+ m: _current.getMonth() + 1
49
+ };
50
+ const selecte = {
51
+ y: _selecte.getFullYear(),
52
+ d: _selecte.getDate(),
53
+ m: _selecte.getMonth() + 1
54
+ };
55
+ const [month, setMonth] = useState({ y: selecte.y, m: selecte.m });
56
+ useEffect(() => {
57
+ const windowHeight = window.innerHeight;
58
+ if (field.current !== null) {
59
+ const inputPosition = field.current.getBoundingClientRect();
60
+ const calendarSize = field.current.offsetHeight;
61
+ console.log(windowHeight, inputPosition.y, calendarSize);
62
+ if (windowHeight < inputPosition.y + calendarSize) {
63
+ field.current.style.top = -calendarSize + "px";
64
+ } else {
65
+ field.current.style.top = "65px";
66
+ }
67
+ field.current.style.opacity = "1";
68
+ }
69
+ }, [month]);
70
+ const g = (e) => {
71
+ let da = e.getDay();
72
+ if (da === 0) da = 7;
73
+ return da - 1;
74
+ };
75
+ const week = ["пн", "вт", "ср", "чт", "пт", "сб", "вс"];
76
+ const o = month.m - 1;
77
+ const d2 = new Date(month.y, o);
78
+ const days = [];
79
+ const prevDays = () => {
80
+ const prevMonth = new Date(d2);
81
+ prevMonth.setDate(prevMonth.getDate() - 1);
82
+ const prevList = [];
83
+ for (let i = 0; i < g(d2); i++) {
84
+ prevList.push(prevMonth.getDate() - i);
85
+ }
86
+ prevList.reverse();
87
+ return prevList;
88
+ };
89
+ while (d2.getMonth() === o) {
90
+ days.push(d2.getDate());
91
+ d2.setDate(d2.getDate() + 1);
92
+ }
93
+ const prevM = prevDays();
94
+ const nextDays = () => {
95
+ const daysCount = 42 - (prevM.length + days.length);
96
+ const nextList = [];
97
+ for (let i = 1; i <= daysCount; i++) {
98
+ nextList.push(i);
99
+ }
100
+ return nextList;
101
+ };
102
+ const nextM = nextDays();
103
+ const update = (m2, y) => {
104
+ y = m2 > 12 ? y + 1 : m2 < 1 ? y - 1 : y;
105
+ m2 = m2 > 12 ? 1 : m2 < 1 ? 12 : m2;
106
+ setMonth({ y, m: m2 });
107
+ };
108
+ const onExit = () => {
109
+ setActive(false);
110
+ };
111
+ const next = () => {
112
+ update(month.m + 1, month.y);
113
+ };
114
+ const prev2 = () => {
115
+ update(month.m - 1, month.y);
116
+ };
117
+ const isBefore = (activeDate) => {
118
+ if (before) {
119
+ const beforeDate = before.getTime();
120
+ if (beforeDate > activeDate) return true;
121
+ }
122
+ return false;
123
+ };
124
+ const send = (searchDate) => {
125
+ if (isBefore(
126
+ (/* @__PURE__ */ new Date(
127
+ `${month.y}-${formating.Number(2, month.m)}-${formating.Number(2, searchDate)}`
128
+ )).getTime()
129
+ ))
130
+ return;
131
+ onValue(
132
+ /* @__PURE__ */ new Date(
133
+ `${month.y}-${formating.Number(2, month.m)}-${formating.Number(2, searchDate)}`
134
+ )
135
+ );
136
+ onExit();
137
+ };
138
+ return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs("div", { className: [cls["calendar-block"]].join(" "), ref: field, children: [
139
+ /* @__PURE__ */ jsxs("div", { className: cls["h"], children: [
140
+ /* @__PURE__ */ jsx(
141
+ Button,
142
+ {
143
+ isIconButton: true,
144
+ iconName: "DropdownArrowLeft16px",
145
+ onClick: prev2,
146
+ variant: "secondary-gray",
147
+ size: "l"
148
+ }
149
+ ),
150
+ /* @__PURE__ */ jsxs("div", { className: cls["d"], children: [
151
+ formating.Month(month.m).name,
152
+ "’",
153
+ month.y.toString().slice(-2)
154
+ ] }),
155
+ /* @__PURE__ */ jsx(
156
+ Button,
157
+ {
158
+ isIconButton: true,
159
+ iconName: "DropdownArrowRight16px",
160
+ onClick: next,
161
+ variant: "secondary-gray",
162
+ size: "l"
163
+ }
164
+ )
165
+ ] }),
166
+ /* @__PURE__ */ jsxs("div", { className: cls["b"], children: [
167
+ week.map((i, s) => /* @__PURE__ */ jsx(
168
+ "div",
169
+ {
170
+ className: `${s > 4 ? [cls["m"], cls["orange"]].join(" ") : cls["m"]}`,
171
+ children: i
172
+ },
173
+ `v${s}`
174
+ )),
175
+ prevM.map((el, key) => /* @__PURE__ */ jsx("div", { className: cls["m"], children: el }, key)),
176
+ days.map((i, s) => /* @__PURE__ */ jsx(
177
+ "div",
178
+ {
179
+ className: isBefore(
180
+ (/* @__PURE__ */ new Date(
181
+ `${month.y}-${formating.Number(2, month.m)}-${formating.Number(2, i)}`
182
+ )).getTime()
183
+ ) ? cls["m"] : cls["a"],
184
+ children: i !== 0 ? /* @__PURE__ */ jsx(
185
+ "b",
186
+ {
187
+ className: current2.y === month.y && current2.m === month.m && current2.d === i ? cls["current"] : "",
188
+ onClick: () => send(i),
189
+ children: i
190
+ }
191
+ ) : /* @__PURE__ */ jsx("p", {})
192
+ },
193
+ s
194
+ )),
195
+ nextM.map((el, key) => /* @__PURE__ */ jsx("div", { className: cls["m"], children: el }, key))
196
+ ] })
197
+ ] }) });
198
+ }
199
+ export {
200
+ DatePickerModal as D,
201
+ cls as c
202
+ };
@@ -1 +1 @@
1
- ._button_1hqwa_2{--button-loader-color: var(--button-color);--button-cursor: pointer;position:relative;display:inline-flex;flex-shrink:0;align-items:center;box-sizing:border-box;max-width:100%;height:var(--button-height);padding:0 var(--button-space);overflow:hidden;color:var(--button-color);font-weight:var(--font-weight-text-semibold);font-size:var(--button-font-size);font-family:var(--font-inter);line-height:var(--line-height-text-s1);white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;text-overflow:ellipsis;-moz-column-gap:var(--button-gap);column-gap:var(--button-gap);background:var(--button-bg-color);border:none;border-radius:var(--control-radius);cursor:pointer;cursor:var(--button-cursor);transition:background-color .3s ease,border-color .15s ease,box-shadow .15s ease,color .15s ease,fill .15s ease;-webkit-appearance:none;-moz-appearance:none;appearance:none}._button_1hqwa_2:hover{color:var(--button-color-hover);background:var(--button-bg-color-hover)}._button_1hqwa_2:active{color:var(--button-color-active);background:var(--button-bg-color-active)}._button_1hqwa_2:focus{box-shadow:0 0 2px var(--sapphire-normal)}._button_1hqwa_2._clear_1hqwa_41:focus{box-shadow:none}._button_1hqwa_2 svg{color:currentcolor;fill:currentcolor}._button_1hqwa_2 svg path{color:currentcolor;fill:currentcolor}._xs_1hqwa_53{--button-height: var(--button-height-xs);--button-font-size: var(--control-text-size-xs);--button-space: var(--control-space-xs);--button-gap: 4px;--button-border-radius: var(--button-border-radius-s)}._s_1hqwa_61{--button-height: var(--button-height-s);--button-font-size: var(--control-text-size-s);--button-space: var(--control-space-s);--button-gap: 4px;--button-border-radius: var(--button-border-radius-s)}._m_1hqwa_69{--button-height: var(--button-height-m);--button-font-size: var(--control-text-size-m);--button-space: var(--control-space-m);--button-gap: 8px;--button-border-radius: var(--button-border-radius-m)}._l_1hqwa_77{--button-height: var(--button-height-l);--button-font-size: var(--control-text-size-l);--button-space: var(--control-space-l);--button-gap: 8px;--button-border-radius: var(--button-border-radius-l)}._xl_1hqwa_85{--button-height: var(--button-height-xl);--button-space: var(--control-space-l);--button-gap: 8px;--button-border-radius: var(--button-border-radius-l);font-weight:var(--font-weight-text-medium);font-size:var(--size-text-l)}._xxl_1hqwa_94{--button-height: var(--button-height-xxl);--button-space: var(--control-space-xxl);--button-border-radius: var(--button-border-radius-l);--button-gap: 8px;font-weight:var(--font-weight-text-medium);font-size:var(--size-text-l)}._default-button_1hqwa_103._primary-sapphire_1hqwa_103{--button-bg-color: var(--sapphire-normal);--button-color-hover: var(--light-text);--button-color-active: var(--light-text);--button-bg-color-active: var(--sapphire-active);--button-bg-color-hover: var(--sapphire-hover);--button-color: var(--light-text);--button-border: transparent}._default-button_1hqwa_103._primary-citrine_1hqwa_112{--button-bg-color: var(--citrine-normal);--button-color-hover: var(--light-text);--button-color-active: var(--light-text);--button-bg-color-active: var(--citrine-active);--button-bg-color-hover: var(--citrine-hover);--button-color: var(--light-text);--button-border: transparent}._default-button_1hqwa_103._secondary-asphalt_1hqwa_121{--button-bg-color: var(--asphalt-normal);--button-color-hover: var(--light-text);--button-color-active: var(--light-text);--button-bg-color-active: var(--asphalt-active);--button-bg-color-hover: var(--asphalt-hover);--button-color: var(--light-text);--button-border: transparent}._default-button_1hqwa_103._secondary-gray_1hqwa_130{--button-bg-color: var(--gray-normal);--button-color-hover: var(--counter-text);--button-color-active: var(--light-text);--button-bg-color-active: var(--gray-active);--button-bg-color-hover: var(--gray-hover);--button-color: var(--dark-text);--button-border: transparent}._default-button_1hqwa_103._secondary-white_1hqwa_139{--button-bg-color: var(--white-normal);--button-color-hover: var(--counter-text);--button-color-active: var(--light-text);--button-bg-color-active: var(--white-active);--button-bg-color-hover: var(--white-hover);--button-color: var(--dark-text);--button-border: transparent}._default-button_1hqwa_103._secondary-red_1hqwa_148{--button-bg-color: var(--red-normal);--button-color-hover: var(--light-text);--button-color-active: var(--light-text);--button-bg-color-active: var(--red-active);--button-bg-color-hover: var(--red-hover);--button-color: var(--light-text);--button-border: transparent}._round-button_1hqwa_158{--button-border-radius-l: 24px;--button-border-radius-m: 20px;--button-border-radius-s: 16px;--button-border-radius-xs: 12px;border-radius:var(--button-border-radius)}._round-button_1hqwa_158._black_1hqwa_165{--button-bg-color: var(--asphalt-normal);--button-bg-color-hover: var(--asphalt-hover);--button-bg-color-active: var(--sapphire-normal);--button-bg-color-focus: var(--sapphire-normal);--button-color: var(--light-text);--button-color-hover: var(--light-text);--button-color-active: var(--light-text)}._round-button_1hqwa_158._gray_1hqwa_174{--button-bg-color: var(--gray-normal);--button-bg-color-hover: var(--gray-hover);--button-bg-color-active: var(--sapphire-normal);--button-bg-color-focus: var(--sapphire-normal);--button-color: var(--asphalt-normal);--button-color-hover: var(--asphalt-hover);--button-color-active: var(--light-text)}._round-button_1hqwa_158._white_1hqwa_183{--button-bg-color: var(--white-normal);--button-bg-color-hover: var(--white-hover);--button-bg-color-active: var(--sapphire-normal);--button-bg-color-focus: var(--sapphire-normal);--button-color: var(--asphalt-normal);--button-color-hover: var(--asphalt-hover);--button-color-active: var(--light-text)}._full_1hqwa_193{display:block;width:100%}._disabled_1hqwa_198{--button-cursor: not-allowed;color:var(--light-text);background-color:var(--disabled)}._disabled_1hqwa_198:hover,._disabled_1hqwa_198:active,._disabled_1hqwa_198:focus{color:var(--light-text);background-color:var(--disabled);box-shadow:none}._icon-button_1hqwa_209{justify-content:center;min-width:var(--button-height);padding:0}
1
+ ._button_6nidf_2{--button-loader-color: var(--button-color);--button-cursor: pointer;position:relative;display:inline-flex;flex-shrink:0;align-items:center;box-sizing:border-box;max-width:100%;height:var(--button-height);padding:0 var(--button-space);overflow:hidden;color:var(--button-color);font-weight:var(--font-weight-text-semibold);font-size:var(--button-font-size);font-family:var(--font-inter);line-height:var(--line-height-text-s1);white-space:nowrap;text-transform:uppercase;-webkit-text-decoration:none;text-decoration:none;text-overflow:ellipsis;-moz-column-gap:var(--button-gap);column-gap:var(--button-gap);background:var(--button-bg-color);border:none;border-radius:var(--control-radius);cursor:pointer;cursor:var(--button-cursor);transition:background-color .3s ease,border-color .15s ease,box-shadow .15s ease,color .15s ease,fill .15s ease;-webkit-appearance:none;-moz-appearance:none;appearance:none}._button_6nidf_2:hover{color:var(--button-color-hover);background:var(--button-bg-color-hover)}._button_6nidf_2:active{color:var(--button-color-active);background:var(--button-bg-color-active)}._button_6nidf_2:focus{box-shadow:0 0 2px var(--sapphire-normal)}._button_6nidf_2._clear_6nidf_42:focus{box-shadow:none}._button_6nidf_2 svg{color:currentcolor;fill:currentcolor}._button_6nidf_2 svg path{color:currentcolor;fill:currentcolor}._xs_6nidf_54{--button-height: var(--button-height-xs);--button-font-size: var(--control-text-size-xs);--button-space: var(--control-space-xs);--button-gap: 4px;--button-border-radius: var(--button-border-radius-s)}._s_6nidf_62{--button-height: var(--button-height-s);--button-font-size: var(--control-text-size-s);--button-space: var(--control-space-s);--button-gap: 4px;--button-border-radius: var(--button-border-radius-s)}._m_6nidf_70{--button-height: var(--button-height-m);--button-font-size: var(--size-text-m);--button-space: var(--control-space-m);--button-gap: 8px;--button-border-radius: var(--button-border-radius-m)}._l_6nidf_78{--button-height: var(--button-height-l);--button-font-size: var(--size-text-m);--button-space: var(--control-space-l);--button-gap: 8px;--button-border-radius: var(--button-border-radius-l)}._xl_6nidf_86{--button-height: var(--button-height-xl);--button-space: var(--control-space-l);--button-gap: 8px;--button-border-radius: var(--button-border-radius-l);--button-font-size: var(--size-text-m);font-weight:var(--font-weight-text-medium)}._xxl_6nidf_95{--button-height: var(--button-height-xxl);--button-space: var(--control-space-xxl);--button-border-radius: var(--button-border-radius-l);--button-gap: 8px;font-weight:var(--font-weight-text-medium);--button-font-size: var(--size-text-m)}._default-button_6nidf_104._primary-sapphire_6nidf_104{--button-bg-color: var(--sapphire-normal);--button-color-hover: var(--light-text);--button-color-active: var(--light-text);--button-bg-color-active: var(--sapphire-active);--button-bg-color-hover: var(--sapphire-hover);--button-color: var(--light-text);--button-border: transparent}._default-button_6nidf_104._primary-citrine_6nidf_113{--button-bg-color: var(--citrine-normal);--button-color-hover: var(--light-text);--button-color-active: var(--light-text);--button-bg-color-active: var(--citrine-active);--button-bg-color-hover: var(--citrine-hover);--button-color: var(--light-text);--button-border: transparent}._default-button_6nidf_104._secondary-asphalt_6nidf_122{--button-bg-color: var(--asphalt-normal);--button-color-hover: var(--light-text);--button-color-active: var(--light-text);--button-bg-color-active: var(--asphalt-active);--button-bg-color-hover: var(--asphalt-hover);--button-color: var(--light-text);--button-border: transparent}._default-button_6nidf_104._secondary-gray_6nidf_131{--button-bg-color: var(--gray-normal);--button-color-hover: var(--counter-text);--button-color-active: var(--light-text);--button-bg-color-active: var(--gray-active);--button-bg-color-hover: var(--gray-hover);--button-color: var(--dark-text);--button-border: transparent}._default-button_6nidf_104._secondary-white_6nidf_140{--button-bg-color: var(--white-normal);--button-color-hover: var(--counter-text);--button-color-active: var(--light-text);--button-bg-color-active: var(--white-active);--button-bg-color-hover: var(--white);--button-color: var(--dark-text);--button-border: transparent}._default-button_6nidf_104._secondary-red_6nidf_149{--button-bg-color: var(--red-normal);--button-color-hover: var(--light-text);--button-color-active: var(--light-text);--button-bg-color-active: var(--red-active);--button-bg-color-hover: var(--red-hover);--button-color: var(--light-text);--button-border: transparent}._round-button_6nidf_159{--button-border-radius-l: 24px;--button-border-radius-m: 20px;--button-border-radius-s: 16px;--button-border-radius-xs: 12px;border-radius:var(--button-border-radius)}._round-button_6nidf_159._black_6nidf_166{--button-bg-color: var(--asphalt-normal);--button-bg-color-hover: var(--asphalt-hover);--button-bg-color-active: var(--sapphire-normal);--button-bg-color-focus: var(--sapphire-normal);--button-color: var(--light-text);--button-color-hover: var(--light-text);--button-color-active: var(--light-text)}._round-button_6nidf_159._gray_6nidf_175{--button-bg-color: var(--gray-normal);--button-bg-color-hover: var(--gray-hover);--button-bg-color-active: var(--sapphire-normal);--button-bg-color-focus: var(--sapphire-normal);--button-color: var(--asphalt-normal);--button-color-hover: var(--asphalt-hover);--button-color-active: var(--light-text)}._round-button_6nidf_159._white_6nidf_184{--button-bg-color: var(--white-normal);--button-bg-color-hover: var(--white-hover);--button-bg-color-active: var(--sapphire-normal);--button-bg-color-focus: var(--sapphire-normal);--button-color: var(--asphalt-normal);--button-color-hover: var(--asphalt-hover);--button-color-active: var(--light-text)}._full_6nidf_194{display:flex;justify-content:center;width:100%}._disabled_6nidf_200{--button-cursor: not-allowed;color:var(--light-text);background-color:var(--disabled)}._disabled_6nidf_200:hover,._disabled_6nidf_200:active,._disabled_6nidf_200:focus{color:var(--light-text);background-color:var(--disabled);box-shadow:none}._icon-button_6nidf_211{justify-content:center;min-width:var(--button-height);padding:0}
@@ -0,0 +1 @@
1
+ ._input_8eg6j_2{padding-right:var(--space-3xl)}._date-wrapper_8eg6j_6{position:relative}._date-wrapper_8eg6j_6:hover input{background:var(--input-bg-color-hover)}._date-wrapper_8eg6j_6:before{content:"";position:absolute;z-index:3;top:0;bottom:0;left:0;right:60px;cursor:pointer}._wrapper_8eg6j_23{position:relative;display:flex;align-items:center;border-radius:8px}._wrapper_8eg6j_23._active_8eg6j_29{border-bottom:1px solid var(--citrine-100)}._input-wrapper_8eg6j_33{flex:1}._button-wrapper_8eg6j_37{position:absolute;top:0;right:0;z-index:2;display:flex;width:44px;height:100%;max-height:var(--button-height-xxl)}._button_8eg6j_37{align-self:center;background-color:transparent;border-radius:8px}._field-overlow_8eg6j_54{position:fixed;top:0;right:0;bottom:0;left:0;z-index:3}._calendar-block_8eg6j_60{display:flex;flex-direction:column;padding:16px;border-radius:8px;background:#fff;max-height:none;width:368px;box-shadow:0 0 #16172705,0 2px 4px #16172705,0 6px 6px #16172705,0 15px 9px #16172703;text-align:center;font-feature-settings:"zero";font-variant-numeric:slashed-zero;text-overflow:ellipsis;font-family:var(--font-inter);font-size:var(--size-text-l);font-style:normal;font-weight:var(--font-weight-text-regular);line-height:var(--line-height-text-2xs);position:absolute;z-index:3;transition:height .5s ease-in;opacity:0}._calendar-block_8eg6j_60 ._h_8eg6j_83{display:flex;width:100%;color:var(--black-100)}._calendar-block_8eg6j_60 ._b_8eg6j_37{display:grid;grid-template-columns:repeat(7,1fr)}._calendar-block_8eg6j_60 ._d_8eg6j_6{flex:1;display:flex;align-items:center;justify-content:center;color:var(--black-100)}._calendar-block_8eg6j_60 ._m_8eg6j_102,._calendar-block_8eg6j_60 ._a_8eg6j_29,._calendar-block_8eg6j_60 ._prev_8eg6j_104{overflow:hidden;height:48px;width:48px}._calendar-block_8eg6j_60 ._m_8eg6j_102{color:var(--disabled);display:flex;justify-content:center;align-items:center}._calendar-block_8eg6j_60 ._m_8eg6j_102 b{font-weight:400}._calendar-block_8eg6j_60 ._orange_8eg6j_120{color:var(--citrine-100)}._calendar-block_8eg6j_60 ._a_8eg6j_29{color:var(--black-100);border-radius:4px}._calendar-block_8eg6j_60 ._a_8eg6j_29 b{cursor:pointer;width:100%;height:100%;display:flex;justify-content:center;align-items:center;font-weight:400}._calendar-block_8eg6j_60 ._a_8eg6j_29 b:hover{background:var(--black-10)}._calendar-block_8eg6j_60 ._a_8eg6j_29 b:active{background:var(--sapphire-100);color:var(--white)}._calendar-block_8eg6j_60 ._current_8eg6j_145{border-radius:4px;background:var(--sapphire-10)}
@@ -0,0 +1 @@
1
+ ._drawer_vy4rv_3{--drawer-width: 808px;--drawer-z-index: 1000;position:fixed;z-index:1000;z-index:var(--drawer-z-index);display:flex;flex-direction:column;width:808px;width:var(--drawer-width);height:100%;overflow:auto;background-color:var(--black-5);transition:all .3s ease;pointer-events:none}._drawer_vy4rv_3 ._content_vy4rv_17{position:relative;z-index:var(--modal-z-index);display:flex;flex:1;flex-direction:column;padding:var(--space-m) var(--space-4xl) var(--space-4xl);transition:all .3s ease}@media (max-width: 600px){._drawer_vy4rv_3 ._content_vy4rv_17{--drawer-width: 100%;padding:var(--space-m)}}._drawer_vy4rv_3 ._header_vy4rv_32{display:flex;gap:var(--space-xs);height:68px}._drawer_vy4rv_3 ._header_vy4rv_32:not(:last-child){margin-bottom:var(--space-2xl)}._drawer_vy4rv_3 ._header_vy4rv_32 ._title_vy4rv_40{flex:1;align-self:flex-end;font-weight:var(--font-weight-text-medium);font-size:var(--size-text-xl3);line-height:var(--line-height-text-s1);letter-spacing:.7px}@media (max-width: 600px){._drawer_vy4rv_3 ._header_vy4rv_32 ._title_vy4rv_40{font-size:var(--size-text-xl2);line-height:var(--line-height-text-xs)}}._drawer_vy4rv_3 ._header_vy4rv_32 ._space_vy4rv_54{flex:0 0 var(--button-height-m)}@media (max-width: 600px){._drawer_vy4rv_3 ._header_vy4rv_32{height:55px}._drawer_vy4rv_3 ._header_vy4rv_32:not(:last-child){margin-bottom:var(--space-m)}}._drawer_vy4rv_3 ._inner_vy4rv_65{flex:1}._drawer_vy4rv_3 ._button_vy4rv_68{position:absolute;top:var(--space-m);right:var(--space-m)}._drawer_vy4rv_3 ._footer_vy4rv_73{display:block;padding-top:var(--space-4xl)}@media (max-width: 600px){._drawer_vy4rv_3 ._footer_vy4rv_73{padding-top:var(--space-m)}}._drawer_vy4rv_3 ._footer-button_vy4rv_82{display:block;margin-left:auto}._drawer_vy4rv_3._left_vy4rv_86{top:0;left:-100%}._drawer_vy4rv_3._right_vy4rv_90{top:0;right:-100%}._drawer_vy4rv_3._bottom_vy4rv_94{right:50%;bottom:-100%;left:50%;max-height:80vh;border-top-left-radius:var(--control-radius);border-top-right-radius:var(--control-radius);transform:translate(-50%)}._drawer_vy4rv_3._opened_vy4rv_103{transition:all .3s ease;pointer-events:auto}._drawer_vy4rv_3._opened_vy4rv_103._left_vy4rv_86{left:0%;transition:left .3s ease}._drawer_vy4rv_3._opened_vy4rv_103._right_vy4rv_90{right:0%;transition:right .3s ease}._drawer_vy4rv_3._opened_vy4rv_103._bottom_vy4rv_94{bottom:0%}._drawer_vy4rv_3._is-closing_vy4rv_118._left_vy4rv_86{left:-100%}._drawer_vy4rv_3._is-closing_vy4rv_118._right_vy4rv_90{right:-100%}._drawer_vy4rv_3._is-closing_vy4rv_118._bottom_vy4rv_94{bottom:-100%}@media (max-width: 1440px){._drawer_vy4rv_3{--drawer-width: 608px}}@media (max-width: 1280px){._drawer_vy4rv_3{--drawer-width: 648px}}@media (max-width: 768px){._drawer_vy4rv_3{--drawer-width: 584px}}@media (max-width: 600px){._drawer_vy4rv_3{--drawer-width: 100%}._drawer_vy4rv_3._bottom_vy4rv_94{max-width:359px}}._overlay_vy4rv_151{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#0009;opacity:0;transition:all .3s ease}._overlay_vy4rv_151._opened_vy4rv_103{opacity:1;transition:all .3s ease}._overlay_vy4rv_151._is-closing_vy4rv_118{opacity:0;transition:all .3s ease}
@@ -1 +1 @@
1
- ._input-wrapper_1wv6m_2{position:relative}._input-wrapper_1wv6m_2 ._label_1wv6m_5{position:absolute;top:calc(var(--input-height) / 2 - var(--input-font-size) / 2);left:var(--space-m);z-index:1;display:block;color:var(--label-color);font-size:var(--input-font-size);white-space:nowrap;transform-origin:left center;transition:transform .15s ease-out,color .15s ease-out;pointer-events:none}._input-wrapper_1wv6m_2 ._label_1wv6m_5._active-label_1wv6m_18{transform:scale(var(--label-scaled)) translateY(calc(var(--input-font-size) * -1))}._input-wrapper_1wv6m_2:hover ._label_1wv6m_5,._input-wrapper_1wv6m_2:focus-within ._label_1wv6m_5{color:var(--label-color)}._input_1wv6m_2{--button-border-radius-l: 8px;--button-border-radius-m: 6px;--button-border-radius-s: 6px;position:relative;display:block;width:100%;min-width:0;height:var(--input-height);padding-top:0;color:var(--dark-text);font-size:var(--input-font-size);font-family:var(--font-inter);line-height:var(--input-line-height);letter-spacing:-.42px;background:none;background-color:var(--input-bg-color);border-bottom:1px solid transparent;border-radius:var(--input-border-radius);outline:none;cursor:var(--input-cursor);transition:background-color .2s ease,border-color .15s ease,box-shadow .15s ease,color .15s ease,fill .15s ease;-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-left:var(--input-padding);padding-right:var(--input-padding);font-feature-settings:"zero"}._input_1wv6m_2:hover{color:var(--input-color-hover);background:var(--input-bg-color-hover)}._input_1wv6m_2:focus{color:var(--input-color-active);background-color:var(--input-bg-color-active);border-bottom:1px solid var(--input-bottom-color-active)}._s_1wv6m_61{--input-height: var(--space-xxl);--input-font-size: var(--control-text-size-m);--input-line-height: var(--line-height-text-xs);--input-padding: var(--space-m);--input-padding-position: var(--space-1xs);--input-border-radius: var(--button-border-radius-s);--label-font-size: var(--size-text-xs);--label-scaled: .85;--label-spacing: var(--space-1xs)}._m_1wv6m_73{--input-height: var(--space-4xl);--input-font-size: var(--control-text-size-l);--input-line-height: var(--line-height-text-s1);--input-padding: var(--space-m);--input-padding-position: var(--space-xs);--input-border-radius: var(--button-border-radius-m);--label-font-size: var(--size-text-s);--label-scaled: .75;--label-spacing: var(--space-xs)}._l_1wv6m_5{--input-height: var(--space-4xxl);--input-font-size: var(--control-text-size-2xl);--input-line-height: var(--line-height-text-l);--input-padding: var(--space-m);--input-padding-position: var(--space-s);--input-border-radius: var(--button-border-radius-l);--label-font-size: var(--size-text-s);--label-scaled: .6;--label-spacing: var(--space-s)}._default-gray_1wv6m_97{--input-bg-color: var(--black-5);--input-bg-color-active: var(--black-10);--input-bg-color-hover: var(--black-10);--input-color: var(--dark-text);--input-color-hover: var(--dark-text);--input-color-active: var(--dark-text);--input-border: transparent;--input-bottom-color-active: var(--citrine-normal);--label-color: var(--black-60)}._default-white_1wv6m_109{--input-bg-color: var(--white);--input-bg-color-hover: var(--black-60);--input-bg-color-active: var(--white);--input-color: var(--dark-text);--input-color-hover: var(--dark-text);--input-color-active: var(--dark-text);--input-border: transparent;--input-bottom-color-active: var(--citrine-normal);--label-color: var(--black-60)}._default-white_1wv6m_109:hover{--label-color: var(--dark-text)}._success_1wv6m_124{--input-bg-color: var(--success-normal);--input-bg-color-hover: var(--success-bg-hover);--input-bg-color-active: var(--success-bg-active);--input-color: var(--dark-text);--input-color-hover: var(--dark-text);--input-color-active: var(--dark-text);--input-border: transparent;--input-bottom-color-active: var(--success-normal);--label-color: var(--black-60)}._success_1wv6m_124::-moz-placeholder{color:var(--input-color)}._success_1wv6m_124::placeholder{color:var(--input-color)}._success_1wv6m_124:hover::-moz-placeholder{color:var(--input-color)}._success_1wv6m_124:hover::placeholder{color:var(--input-color)}._alarm_1wv6m_142{--input-bg-color: var(--alarm-normal);--input-bg-color-hover: var(--alarm-bg-hover);--input-bg-color-active: var(--alarm-bg-active);--input-color: var(--dark-text);--input-color-hover: var(--dark-text);--input-color-active: var(--dark-text);--input-border: transparent;--input-bottom-color-active: var(--alarm-normal);--label-color: var(--black-60)}._alarm_1wv6m_142::-moz-placeholder{color:var(--input-color)}._alarm_1wv6m_142::placeholder{color:var(--input-color)}._alarm_1wv6m_142:hover::-moz-placeholder{color:var(--input-color)}._alarm_1wv6m_142:hover::placeholder{color:var(--input-color)}._error_1wv6m_160{--input-bg-color: var(--error-normal);--input-bg-color-hover: var(--error-bg-hover);--input-bg-color-active: var(--error-bg-active);--input-color: var(--dark-text);--input-color-hover: var(--dark-text);--input-color-active: var(--dark-text);--input-border: transparent;--input-bottom-color-active: var(--error-normal);--label-color: var(--black-60)}._error_1wv6m_160::-moz-placeholder{color:var(--input-color)}._error_1wv6m_160::placeholder{color:var(--input-color)}._error_1wv6m_160:hover::-moz-placeholder{color:var(--input-color)}._error_1wv6m_160:hover::placeholder{color:var(--input-color)}._disabled_1wv6m_178{--input-cursor: not-allowed;color:var(--light-text);background-color:var(--black-20)}._disabled_1wv6m_178:hover,._disabled_1wv6m_178:active,._disabled_1wv6m_178:focus{color:var(--light-text);background-color:var(--black-20);border:none;box-shadow:none}._disabled_1wv6m_178::-moz-placeholder{color:var(--light-text)}._disabled_1wv6m_178::placeholder{color:var(--light-text)}._disabled_1wv6m_178:hover::-moz-placeholder{color:var(--light-text)}._disabled_1wv6m_178:hover::placeholder{color:var(--light-text)}._has-label_1wv6m_196{padding-top:var(--input-padding-position)}
1
+ ._input-wrapper_16d1h_2{position:relative}._input-wrapper_16d1h_2 ._label_16d1h_5{position:absolute;top:calc(var(--input-height) / 2 - var(--input-font-size) / 2);left:var(--space-m);z-index:1;display:block;color:var(--label-color);font-size:var(--input-font-size);white-space:nowrap;transform-origin:left center;transition:transform .15s ease-out,color .15s ease-out;pointer-events:none}._input-wrapper_16d1h_2 ._label_16d1h_5._active-label_16d1h_18{transform:scale(var(--label-scaled)) translateY(calc(var(--input-font-size) * -1))}._input-wrapper_16d1h_2:hover ._label_16d1h_5,._input-wrapper_16d1h_2:focus-within ._label_16d1h_5{color:var(--label-color)}._input_16d1h_2{--button-border-radius-l: 8px;--button-border-radius-m: 6px;--button-border-radius-s: 6px;position:relative;display:block;width:100%;min-width:0;height:var(--input-height);padding-top:0;color:var(--dark-text);font-size:var(--input-font-size);font-family:var(--font-inter);line-height:var(--input-line-height);letter-spacing:-.42px;background:none;background-color:var(--input-bg-color);border-bottom:1px solid transparent;border-radius:var(--input-border-radius);outline:none;cursor:var(--input-cursor);transition:background-color .2s ease,border-color .15s ease,box-shadow .15s ease,color .15s ease,fill .15s ease;-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-left:var(--input-padding);padding-right:var(--input-padding);font-feature-settings:"zero"}._input_16d1h_2:hover{color:var(--input-color-hover);background:var(--input-bg-color-hover)}._input_16d1h_2:focus{color:var(--input-color-active);background-color:var(--input-bg-color-active);border-bottom:1px solid var(--input-bottom-color-active)}._s_16d1h_61{--input-height: var(--space-xxl);--input-font-size: var(--control-text-size-m);--input-line-height: var(--line-height-text-xs);--input-padding: var(--space-m);--input-padding-position: var(--space-1xs);--input-border-radius: var(--button-border-radius-s);--label-font-size: var(--size-text-xs);--label-scaled: .85;--label-spacing: var(--space-1xs)}._m_16d1h_73{--input-height: var(--space-4xl);--input-font-size: var(--control-text-size-l);--input-line-height: var(--line-height-text-s1);--input-padding: var(--space-m);--input-padding-position: var(--space-xs);--input-border-radius: var(--button-border-radius-m);--label-font-size: var(--size-text-s);--label-scaled: .75;--label-spacing: var(--space-xs)}._l_16d1h_5{--input-height: var(--space-4xxl);--input-font-size: var(--control-text-size-2xl);--input-line-height: var(--line-height-text-l);--input-padding: var(--space-m);--input-padding-position: var(--space-s);--input-border-radius: var(--button-border-radius-l);--label-font-size: var(--size-text-s);--label-scaled: .6;--label-spacing: var(--space-s)}._default-gray_16d1h_97{--input-bg-color: var(--black-5);--input-bg-color-active: var(--black-10);--input-bg-color-hover: var(--black-10);--input-color: var(--dark-text);--input-color-hover: var(--dark-text);--input-color-active: var(--dark-text);--input-border: transparent;--input-bottom-color-active: var(--citrine-normal);--label-color: var(--black-60)}._default-white_16d1h_109{--input-bg-color: var(--white);--input-bg-color-hover: var(--black-10);--input-bg-color-active: var(--white);--input-color: var(--dark-text);--input-color-hover: var(--dark-text);--input-color-active: var(--dark-text);--input-border: transparent;--input-bottom-color-active: var(--citrine-normal);--label-color: var(--black-60)}._default-white_16d1h_109:hover{--label-color: var(--dark-text)}._success_16d1h_124{--input-bg-color: var(--success-normal);--input-bg-color-hover: var(--success-bg-hover);--input-bg-color-active: var(--success-bg-active);--input-color: var(--dark-text);--input-color-hover: var(--dark-text);--input-color-active: var(--dark-text);--input-border: transparent;--input-bottom-color-active: var(--success-normal);--label-color: var(--black-60)}._success_16d1h_124::-moz-placeholder{color:var(--input-color)}._success_16d1h_124::placeholder{color:var(--input-color)}._success_16d1h_124:hover::-moz-placeholder{color:var(--input-color)}._success_16d1h_124:hover::placeholder{color:var(--input-color)}._alarm_16d1h_142{--input-bg-color: var(--alarm-normal);--input-bg-color-hover: var(--alarm-bg-hover);--input-bg-color-active: var(--alarm-bg-active);--input-color: var(--dark-text);--input-color-hover: var(--dark-text);--input-color-active: var(--dark-text);--input-border: transparent;--input-bottom-color-active: var(--alarm-normal);--label-color: var(--black-60)}._alarm_16d1h_142::-moz-placeholder{color:var(--input-color)}._alarm_16d1h_142::placeholder{color:var(--input-color)}._alarm_16d1h_142:hover::-moz-placeholder{color:var(--input-color)}._alarm_16d1h_142:hover::placeholder{color:var(--input-color)}._error_16d1h_160{--input-bg-color: var(--error-normal);--input-bg-color-hover: var(--error-bg-hover);--input-bg-color-active: var(--error-bg-active);--input-color: var(--dark-text);--input-color-hover: var(--dark-text);--input-color-active: var(--dark-text);--input-border: transparent;--input-bottom-color-active: var(--error-normal);--label-color: var(--black-60)}._error_16d1h_160::-moz-placeholder{color:var(--input-color)}._error_16d1h_160::placeholder{color:var(--input-color)}._error_16d1h_160:hover::-moz-placeholder{color:var(--input-color)}._error_16d1h_160:hover::placeholder{color:var(--input-color)}._disabled_16d1h_178{--input-cursor: not-allowed;color:var(--light-text);background-color:var(--black-20)}._disabled_16d1h_178:hover,._disabled_16d1h_178:active,._disabled_16d1h_178:focus{color:var(--light-text);background-color:var(--black-20);border:none;box-shadow:none}._disabled_16d1h_178::-moz-placeholder{color:var(--light-text)}._disabled_16d1h_178::placeholder{color:var(--light-text)}._disabled_16d1h_178:hover::-moz-placeholder{color:var(--light-text)}._disabled_16d1h_178:hover::placeholder{color:var(--light-text)}._has-label_16d1h_196{padding-top:var(--input-padding-position)}
@@ -1 +1 @@
1
- @font-face{font-weight:400;font-family:Montserrat;font-style:normal;src:url(./fonts/585d10920d676fcd.woff2) format("woff2"),url(./fonts/3b9f59412b17ff93.woff) format("woff")}@font-face{font-weight:700;font-family:Montserrat;font-style:normal;src:url(./fonts/f4d681a788c6d497.woff2) format("woff2"),url(./fonts/43b748f250df0f08.woff) format("woff")}@font-face{font-weight:300;font-family:Montserrat;font-style:normal;src:url(./fonts/ee3db32f0aadef5d.woff2) format("woff2"),url(./fonts/1a738bfdbc1e4d9d.woff) format("woff")}@font-face{font-weight:500;font-family:Montserrat;font-style:normal;src:url(./fonts/e51d2feb30084bc2.woff2) format("woff2"),url(./fonts/badaa6d1837432de.woff) format("woff")}@font-face{font-weight:600;font-family:Montserrat;font-style:normal;src:url(./fonts/63611593e008a77c.woff2) format("woff2"),url(./fonts/3cdd7fabbe89d2b9.woff) format("woff")}@font-face{font-weight:400;font-family:Inter;font-style:normal;src:url(./fonts/d080ae18fd04e52c.woff2) format("woff2");font-variant-numeric:slashed-zero}@font-face{font-weight:700;font-family:Inter;font-style:normal;src:url(./fonts/11d5bc9f0cad36d1.woff2) format("woff2");font-variant-numeric:slashed-zero}@font-face{font-weight:500;font-family:Inter;font-style:normal;src:url(./fonts/242d04bef81519ae.woff2) format("woff2");font-variant-numeric:slashed-zero}@font-face{font-weight:600;font-family:Inter;font-style:normal;src:url(./fonts/cac2ba46e8c8adc9.woff2) format("woff2");font-variant-numeric:slashed-zero}@supports (font-variation-settings: normal){:root{font-family:InterVariable,sans-serif}}:root{font-feature-settings:"zero"}*{margin:0;padding:0;border:0;outline:none}*,:after,:before{box-sizing:border-box}:active,:focus{outline:0}a,a:visited,a:hover{-webkit-text-decoration:none;text-decoration:none}a:active,a:focus{outline:0}aside,footer,header,nav{display:block}body,html{width:100%;height:100%;font-size:100%;line-height:1}button,input,textarea,select{font-family:inherit}input::-ms-clear{display:none}button{background-color:transparent;cursor:pointer}button::-moz-focus-inner{padding:0;border:0}ul li{list-style:none}img{vertical-align:top}h1,h2,h3,h4,h5,h6{font-weight:inherit;font-size:inherit}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,input:-webkit-autofill:active{-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:var(--color-typo-brand);-webkit-transition:background-color 5000s ease-in-out 0s;transition:background-color 5000s ease-in-out 0s}:root{--sapphire-100: #2355d7;--sapphire-90: #3564df;--sapphire-80: #4b75e2;--sapphire-70: #6186e6;--sapphire-60: #7797e9;--sapphire-50: #8da7ed;--sapphire-40: #9fb7f4;--sapphire-30: #b9caf4;--sapphire-20: #cfdaf7;--sapphire-10: #e5ebfb;--citrine-100: #ff7900;--citrine-90: #ff861a;--citrine-80: #ff9433;--citrine-70: #ffa14d;--citrine-60: #ffaf66;--citrine-50: #ffbc80;--citrine-40: #ffc999;--citrine-30: #ffd7b2;--citrine-20: #ffe4cc;--citrine-10: #fff2e5;--magenta-100: #bc2251;--magenta-90: #d8275d;--magenta-80: #dc3d6d;--magenta-70: #e15781;--magenta-60: #e46c91;--magenta-50: #e986a4;--magenta-40: #ed9cb4;--magenta-30: #f2b6c8;--magenta-20: #f6cbd8;--magenta-10: #fae5ec;--black-100: #000;--black-95: #0d0d0d;--black-90: #1a1a1a;--black-85: #262626;--black-80: #333;--black-75: #404040;--black-70: #4d4d4d;--black-65: #595959;--black-60: #666;--black-55: #737373;--black-50: #808080;--black-45: #8c8c8c;--black-40: #999;--black-35: #a6a6a6;--black-30: #b3b3b3;--black-25: #bfbfbf;--black-20: #ccc;--black-15: #d9d9d9;--black-10: #e6e6e6;--black-5: #f2f2f2;--white: #fff;--dark-blue: #0a38af;--blue-40: #a7bbef;--blue-20: #d3ddf7;--green: #1b770c;--red-tag: #f01406;--success-normal: #23b413;--success-bg-hover: #d5fbe2;--success-bg-active: #ebfdf1;--alarm-normal: #fdc023;--alarm-bg-hover: #fff0c7;--alarm-bg-active: #fff6de;--error-normal: #e64646;--error-bg-hover: #fadbdb;--error-bg-active: #fbe3e3;--disabled: #b3b3b3;--disabled-color: #b2b2b2;--light-text: var(--white);--dark-text: var(--black-100);--sapphire-normal: var(--sapphire-100);--sapphire-hover: #1b41a3;--sapphire-active: #122c70;--citrine-normal: var(--citrine-100);--citrine-hover: #e56d00;--citrine-active: #cc6100;--asphalt-border: var(--black-30);--asphalt-normal: var(--black-80);--asphalt-hover: var(--black-90);--asphalt-active: var(--black-100);--gray-normal: var(--black-5);--gray-hover: var(--black-10);--gray-active: var(--black-80);--white-normal: var(--white);--white-hover: var(--black-5);--white-transparent: rgba(255, 255, 255, .4);--white-active: var(--black-80);--red-normal: var(--error-normal);--red-hover: #e33030;--red-active: #dc1e1e;--green-normal: var(--green);--green-hover: #16610a;--green-active: #114a08;--counter-text: #ffa066;--button-height-xs: 24px;--button-height-s: 32px;--button-height-m: 40px;--button-height-l: 48px;--button-height-xl: 56px;--button-height-xxl: 64px;--select-search-height-l: 48px;--select-search-height-xxl: 64px;--select-search-options-height-desktop: 320px;--select-search-options-height-mobile: 264px;--control-default: var(--sapphire-20);--control-hover: var(--sapphire-40);--control-selected: var(--sapphire-100);--control-disabled: var(--black-10);--font-inter: "Inter", sans-serif;--font-montserrat: "Montserrat", sans-serif;--font-weight-text-regular: 400;--font-weight-text-medium: 500;--font-weight-text-semibold: 600;--font-weight-text-bold: 700;--font-weight-text-extrabold: 800;--font-weight-text-black: 900;--size-text-xs2: 8px;--size-text-xs: 10px;--size-text-s: 12px;--size-text-m: 14px;--size-text-l: 16px;--size-text-xl: 20px;--size-text-xl2: 24px;--size-text-2xl: 28px;--size-text-xl3: 32px;--size-text-xl4: 48px;--size-text-xl5: 72px;--size-text-xl6: 96px;--line-height-text-2xs: 1em;--line-height-text-xs: 1.1em;--line-height-text-s: 1.2em;--line-height-text-s1: 1.25em;--line-height-text-m: 1.3em;--line-height-text-m1: 1.35em;--line-height-text-l: 1.4em;--line-height-text-l1: 1.45em;--line-height-text-xl: 1.5em;--line-height-text-xl1: 1.5em;--control-radius-s: 4px;--control-radius: 6px;--control-radius-xs: 8px;--control-radius-m: 20px;--control-radius-l: 24px;--control-input-radius: 12px;--control-border-width: 1px;--control-height-xl: 60px;--control-height-xxl: 60px;--control-height-l: var(--space-4xl);--control-height-m: var(--space-3xl);--control-height-s: var(--space-2xl);--control-height-xs: var(--space-xl);--control-box-size-s: var(--space-s);--control-box-size-m: var(--space-m);--control-box-size-l: var(--space-l);--control-space-xxl: var(--space-xl);--control-space-l: var(--space-xl);--control-space-m: var(--space-l);--control-space-s: var(--space-m);--control-space-xs: var(--space-s);--control-text-size-2xl: var(--size-text-xl);--control-text-size-xl: var(--size-text-xl3);--control-text-size-l: var(--size-text-l);--control-text-size-m: var(--size-text-m);--control-text-size-s: var(--size-text-s);--control-text-size-xs: var(--size-text-xs);--space-3xs: 2px;--space-2xs: 4px;--space-1xs: 6px;--space-xs: 8px;--space-xss: 10px;--space-s: 12px;--space-2s: 14px;--space-m: 16px;--space-2m: 18px;--space-l: 20px;--space-2l: 22px;--space-xl: 24px;--space-2xl: 32px;--space-xxl: 40px;--space-3xl: 44px;--space-4xl: 48px;--space-4xxl: 64px;--space-5xl: 72px;--space-6xl: 96px;--box-shadow-active: 0 0 2px var(--sapphire-normal);--box-shadow-focus: 0px 0px 10px 2px #1389cc;--box-shadow-select-search: 0 3px 15px 0 rgba(31, 32, 35, .15);--select-search-input-top-l: -15%;--select-search-input-top-xxl: -35%}@supports (font-variation-settings: normal){:root{font-family:Inter,sans-serif}}:root{font-feature-settings:"zero";font-variant-numeric:slashed-zero}body{font-family:Inter,sans-serif;font-feature-settings:"zero";font-variant-numeric:slashed-zero;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
1
+ @font-face{font-weight:400;font-family:Montserrat;font-style:normal;src:url(./fonts/585d10920d676fcd.woff2) format("woff2"),url(./fonts/3b9f59412b17ff93.woff) format("woff")}@font-face{font-weight:700;font-family:Montserrat;font-style:normal;src:url(./fonts/f4d681a788c6d497.woff2) format("woff2"),url(./fonts/43b748f250df0f08.woff) format("woff")}@font-face{font-weight:300;font-family:Montserrat;font-style:normal;src:url(./fonts/ee3db32f0aadef5d.woff2) format("woff2"),url(./fonts/1a738bfdbc1e4d9d.woff) format("woff")}@font-face{font-weight:500;font-family:Montserrat;font-style:normal;src:url(./fonts/e51d2feb30084bc2.woff2) format("woff2"),url(./fonts/badaa6d1837432de.woff) format("woff")}@font-face{font-weight:600;font-family:Montserrat;font-style:normal;src:url(./fonts/63611593e008a77c.woff2) format("woff2"),url(./fonts/3cdd7fabbe89d2b9.woff) format("woff")}@font-face{font-weight:400;font-family:Inter;font-style:normal;src:url(./fonts/d080ae18fd04e52c.woff2) format("woff2");font-variant-numeric:slashed-zero}@font-face{font-weight:700;font-family:Inter;font-style:normal;src:url(./fonts/11d5bc9f0cad36d1.woff2) format("woff2");font-variant-numeric:slashed-zero}@font-face{font-weight:500;font-family:Inter;font-style:normal;src:url(./fonts/242d04bef81519ae.woff2) format("woff2");font-variant-numeric:slashed-zero}@font-face{font-weight:600;font-family:Inter;font-style:normal;src:url(./fonts/cac2ba46e8c8adc9.woff2) format("woff2");font-variant-numeric:slashed-zero}@supports (font-variation-settings: normal){:root{font-family:InterVariable,sans-serif}}:root{font-feature-settings:"zero"}*{margin:0;padding:0;border:0;outline:none}*,:after,:before{box-sizing:border-box}:active,:focus{outline:0}a,a:visited,a:hover{-webkit-text-decoration:none;text-decoration:none}a:active,a:focus{outline:0}aside,footer,header,nav{display:block}body,html{width:100%;height:100%;font-size:100%;line-height:1}button,input,textarea,select{font-family:inherit}input::-ms-clear{display:none}button{background-color:transparent;cursor:pointer}button::-moz-focus-inner{padding:0;border:0}ul li{list-style:none}img{vertical-align:top}h1,h2,h3,h4,h5,h6{font-weight:inherit;font-size:inherit}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,input:-webkit-autofill:active{-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:var(--color-typo-brand);-webkit-transition:background-color 5000s ease-in-out 0s;transition:background-color 5000s ease-in-out 0s}:root{--sapphire-100: #2355d7;--sapphire-90: #3564df;--sapphire-80: #4b75e2;--sapphire-70: #6186e6;--sapphire-60: #7797e9;--sapphire-50: #8da7ed;--sapphire-40: #9fb7f4;--sapphire-30: #b9caf4;--sapphire-20: #cfdaf7;--sapphire-10: #e5ebfb;--citrine-100: #ff7900;--citrine-90: #ff861a;--citrine-80: #ff9433;--citrine-70: #ffa14d;--citrine-60: #ffaf66;--citrine-50: #ffbc80;--citrine-40: #ffc999;--citrine-30: #ffd7b2;--citrine-20: #ffe4cc;--citrine-10: #fff2e5;--magenta-100: #bc2251;--magenta-90: #d8275d;--magenta-80: #dc3d6d;--magenta-70: #e15781;--magenta-60: #e46c91;--magenta-50: #e986a4;--magenta-40: #ed9cb4;--magenta-30: #f2b6c8;--magenta-20: #f6cbd8;--magenta-10: #fae5ec;--black-100: #000;--black-95: #0d0d0d;--black-90: #1a1a1a;--black-85: #262626;--black-80: #333;--black-75: #404040;--black-70: #4d4d4d;--black-65: #595959;--black-60: #666;--black-55: #737373;--black-50: #808080;--black-45: #8c8c8c;--black-40: #999;--black-35: #a6a6a6;--black-30: #b3b3b3;--black-25: #bfbfbf;--black-20: #ccc;--black-15: #d9d9d9;--black-10: #e6e6e6;--black-5: #f2f2f2;--white: #fff;--dark-blue: #0a38af;--blue-40: #a7bbef;--blue-20: #d3ddf7;--green: #1b770c;--red-tag: #f01406;--success-normal: #23b413;--success-bg-hover: #d5fbe2;--success-bg-active: #ebfdf1;--alarm-normal: #fdc023;--alarm-bg-hover: #fff0c7;--alarm-bg-active: #fff6de;--error-normal: #e64646;--error-bg-hover: #fadbdb;--error-bg-active: #fbe3e3;--disabled: #b3b3b3;--disabled-color: #b2b2b2;--light-text: var(--white);--dark-text: var(--black-100);--sapphire-normal: var(--sapphire-100);--sapphire-hover: #1b41a3;--sapphire-active: #122c70;--citrine-normal: var(--citrine-100);--citrine-hover: #e56d00;--citrine-active: #cc6100;--asphalt-border: var(--black-30);--asphalt-normal: var(--black-80);--asphalt-hover: var(--black-90);--asphalt-active: var(--black-100);--gray-normal: var(--black-5);--gray-hover: var(--black-10);--gray-active: var(--black-80);--white-normal: var(--white);--white-hover: var(--black-5);--white-transparent: rgba(255, 255, 255, .4);--white-active: var(--black-80);--red-normal: var(--error-normal);--red-hover: #e33030;--red-active: #dc1e1e;--green-normal: var(--green);--green-hover: #16610a;--green-active: #114a08;--counter-text: #ffa066;--button-height-xs: 24px;--button-height-s: 32px;--button-height-m: 40px;--button-height-l: 48px;--button-height-xl: 56px;--button-height-xxl: 64px;--select-search-height-l: 48px;--select-search-height-xxl: 64px;--select-search-options-height-desktop: 320px;--select-search-options-height-mobile: 264px;--control-default: var(--sapphire-20);--control-hover: var(--sapphire-40);--control-selected: var(--sapphire-100);--control-disabled: var(--black-10);--font-inter: "Inter", sans-serif;--font-montserrat: "Montserrat", sans-serif;--font-weight-text-regular: 400;--font-weight-text-medium: 500;--font-weight-text-semibold: 600;--font-weight-text-bold: 700;--font-weight-text-extrabold: 800;--font-weight-text-black: 900;--size-text-xs2: 8px;--size-text-xs: 10px;--size-text-s: 12px;--size-text-m: 14px;--size-text-l: 16px;--size-text-xl: 20px;--size-text-xl2: 24px;--size-text-2xl: 28px;--size-text-xl3: 32px;--size-text-xl4: 48px;--size-text-xl5: 72px;--size-text-xl6: 96px;--line-height-text-2xs: 1em;--line-height-text-xs: 1.1em;--line-height-text-s: 1.2em;--line-height-text-s1: 1.25em;--line-height-text-m: 1.3em;--line-height-text-m1: 1.35em;--line-height-text-l: 1.4em;--line-height-text-l1: 1.45em;--line-height-text-xl: 1.5em;--line-height-text-xl1: 1.5em;--control-radius-s: 4px;--control-radius: 6px;--control-radius-xs: 8px;--control-radius-m: 20px;--control-radius-l: 24px;--control-radius-xl: 32px;--control-radius-xxl: 40px;--control-input-radius: 12px;--control-border-width: 1px;--control-height-xl: 60px;--control-height-xxl: 60px;--control-height-l: var(--space-4xl);--control-height-m: var(--space-3xl);--control-height-s: var(--space-2xl);--control-height-xs: var(--space-xl);--control-box-size-s: var(--space-s);--control-box-size-m: var(--space-m);--control-box-size-l: var(--space-l);--control-space-xxl: var(--space-xl);--control-space-l: var(--space-xl);--control-space-m: var(--space-l);--control-space-s: var(--space-m);--control-space-xs: var(--space-s);--control-text-size-2xl: var(--size-text-xl);--control-text-size-xl: var(--size-text-xl3);--control-text-size-l: var(--size-text-l);--control-text-size-m: var(--size-text-m);--control-text-size-s: var(--size-text-s);--control-text-size-xs: var(--size-text-xs);--space-3xs: 2px;--space-2xs: 4px;--space-1xs: 6px;--space-xs: 8px;--space-xss: 10px;--space-s: 12px;--space-2s: 14px;--space-m: 16px;--space-2m: 18px;--space-l: 20px;--space-2l: 22px;--space-xl: 24px;--space-2xl: 32px;--space-xxl: 40px;--space-3xl: 44px;--space-4xl: 48px;--space-4xxl: 64px;--space-5xl: 72px;--space-6xl: 96px;--box-shadow-active: 0 0 2px var(--sapphire-normal);--box-shadow-focus: 0px 0px 10px 2px #1389cc;--box-shadow-select-search: 0 3px 15px 0 rgba(31, 32, 35, .15);--select-search-input-top-l: -15%;--select-search-input-top-xxl: -35%;--container-width-xs: 375px;--container-width-s: 767px;--container-width-m: 960px;--container-width-l: 1280px;--container-width-xl: 1440px;--container-width-xxl: 1920px;--zindex-fixed: 1030;--sidebar-width-collapsed: 64px;--sidebar-width-expanded: 256px;--header-height: 64px;--sidebar-form-width-tablet: 369px;--sidebar-form-width-mobile: 309px}@supports (font-variation-settings: normal){:root{font-family:Inter,sans-serif}}:root{font-feature-settings:"zero";font-variant-numeric:slashed-zero}body{font-family:Inter,sans-serif;font-feature-settings:"zero";font-variant-numeric:slashed-zero;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
@@ -26,7 +26,6 @@ export type TProps = TCommonButtonProps & ComponentProps<'button'> & {
26
26
  };
27
27
  /**
28
28
  * Компонент кнопки, который можно настраивать с различными темами и размерами.
29
-
30
29
  */
31
30
  export declare const Button: import('react').ForwardRefExoticComponent<(Omit<import('./types').TButtonDefaultFormProps & {
32
31
  isIconButton: true;
@@ -3,19 +3,19 @@ import { c as classNames } from "../../index-CweZ_OcN.js";
3
3
  import { forwardRef } from "react";
4
4
  import { EButtonVariantDefault, EButtonForm } from "./constants.js";
5
5
  import { Icon } from "../../icons/Icon.js";
6
- import '../../assets/Button.css';const button = "_button_1hqwa_2";
7
- const clear = "_clear_1hqwa_41";
8
- const xs = "_xs_1hqwa_53";
9
- const s = "_s_1hqwa_61";
10
- const m = "_m_1hqwa_69";
11
- const l = "_l_1hqwa_77";
12
- const xl = "_xl_1hqwa_85";
13
- const xxl = "_xxl_1hqwa_94";
14
- const black = "_black_1hqwa_165";
15
- const gray = "_gray_1hqwa_174";
16
- const white = "_white_1hqwa_183";
17
- const full = "_full_1hqwa_193";
18
- const disabled = "_disabled_1hqwa_198";
6
+ import '../../assets/Button.css';const button = "_button_6nidf_2";
7
+ const clear = "_clear_6nidf_42";
8
+ const xs = "_xs_6nidf_54";
9
+ const s = "_s_6nidf_62";
10
+ const m = "_m_6nidf_70";
11
+ const l = "_l_6nidf_78";
12
+ const xl = "_xl_6nidf_86";
13
+ const xxl = "_xxl_6nidf_95";
14
+ const black = "_black_6nidf_166";
15
+ const gray = "_gray_6nidf_175";
16
+ const white = "_white_6nidf_184";
17
+ const full = "_full_6nidf_194";
18
+ const disabled = "_disabled_6nidf_200";
19
19
  const cls = {
20
20
  button,
21
21
  clear,
@@ -25,20 +25,20 @@ const cls = {
25
25
  l,
26
26
  xl,
27
27
  xxl,
28
- "default-button": "_default-button_1hqwa_103",
29
- "primary-sapphire": "_primary-sapphire_1hqwa_103",
30
- "primary-citrine": "_primary-citrine_1hqwa_112",
31
- "secondary-asphalt": "_secondary-asphalt_1hqwa_121",
32
- "secondary-gray": "_secondary-gray_1hqwa_130",
33
- "secondary-white": "_secondary-white_1hqwa_139",
34
- "secondary-red": "_secondary-red_1hqwa_148",
35
- "round-button": "_round-button_1hqwa_158",
28
+ "default-button": "_default-button_6nidf_104",
29
+ "primary-sapphire": "_primary-sapphire_6nidf_104",
30
+ "primary-citrine": "_primary-citrine_6nidf_113",
31
+ "secondary-asphalt": "_secondary-asphalt_6nidf_122",
32
+ "secondary-gray": "_secondary-gray_6nidf_131",
33
+ "secondary-white": "_secondary-white_6nidf_140",
34
+ "secondary-red": "_secondary-red_6nidf_149",
35
+ "round-button": "_round-button_6nidf_159",
36
36
  black,
37
37
  gray,
38
38
  white,
39
39
  full,
40
40
  disabled,
41
- "icon-button": "_icon-button_1hqwa_209"
41
+ "icon-button": "_icon-button_6nidf_211"
42
42
  };
43
43
  const Button = forwardRef(
44
44
  (props, ref) => {
@@ -68,9 +68,9 @@ const Button = forwardRef(
68
68
  };
69
69
  const buttonClassNames = classNames(
70
70
  cls.button,
71
+ className,
71
72
  mods,
72
- clear2 ? [] : [cls[form ?? ""], cls[size]],
73
- className
73
+ clear2 ? [] : [cls[form ?? ""], cls[size]]
74
74
  );
75
75
  return /* @__PURE__ */ jsxs(
76
76
  "button",
@@ -0,0 +1,44 @@
1
+ import { TInputProps } from '../Input';
2
+
3
+ export type DatePicker = {
4
+ /**
5
+ * функция=callback, которая вызывается при изменении значения и передает имя и новое значение для обновления стейта (data),
6
+ */
7
+ onValue: (e: onValue) => void;
8
+ /**
9
+ * функция ограничения выбора даты
10
+ (до какой даты выбор не доступен)
11
+ */
12
+ before?: Date | string;
13
+ /**
14
+ * значение из стейта (data)
15
+ */
16
+ value: string;
17
+ } & TInputProps;
18
+ export type onValue = {
19
+ value: Date;
20
+ name?: string;
21
+ };
22
+ export declare const DatePicker: import('react').MemoExoticComponent<import('react').ForwardRefExoticComponent<{
23
+ /**
24
+ * функция=callback, которая вызывается при изменении значения и передает имя и новое значение для обновления стейта (data),
25
+ */
26
+ onValue: (e: onValue) => void;
27
+ /**
28
+ * функция ограничения выбора даты
29
+ (до какой даты выбор не доступен)
30
+ */
31
+ before?: Date | string;
32
+ /**
33
+ * значение из стейта (data)
34
+ */
35
+ value: string;
36
+ } & import('../Input/types').TInputProps & {
37
+ size?: import('../Input').TSize;
38
+ variant?: import('../Input').TVariant;
39
+ className?: string;
40
+ wrapperClassName?: string;
41
+ label?: import('react').ReactNode;
42
+ autofocus?: boolean;
43
+ readonly?: boolean;
44
+ } & import('react').RefAttributes<HTMLInputElement>>>;
@@ -0,0 +1,78 @@
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import { memo, forwardRef, useState, useEffect } from "react";
3
+ import { Input } from "../Input/Input.js";
4
+ import { Button } from "../Button/Button.js";
5
+ import { c as cls, D as DatePickerModal } from "../../DatePickerModal-CbzwSnA7.js";
6
+ import { formating } from "../../utils/index.js";
7
+ import { c as classNames } from "../../index-CweZ_OcN.js";
8
+ const DatePicker = memo(
9
+ forwardRef(
10
+ ({ size, value, onValue, name, before, ...props }, ref) => {
11
+ const [active, setActive] = useState(false);
12
+ const [date, setDate] = useState(
13
+ value ? new Date(value) : /* @__PURE__ */ new Date()
14
+ );
15
+ useEffect(() => {
16
+ const handleClickFunction = (e) => {
17
+ if (e.target) {
18
+ if (!e.target.closest("." + cls["calendar-block"])) {
19
+ setActive(false);
20
+ window.removeEventListener("click", handleClickFunction, true);
21
+ }
22
+ }
23
+ };
24
+ if (active) {
25
+ window.addEventListener("click", handleClickFunction, true);
26
+ } else {
27
+ window.removeEventListener("click", handleClickFunction, true);
28
+ }
29
+ }, [active]);
30
+ const onOpen = () => {
31
+ setActive(true);
32
+ };
33
+ const onDate = (d) => {
34
+ setDate(d);
35
+ if (onValue) onValue({ value: d, name });
36
+ };
37
+ const wrapperClassNames = classNames(cls.wrapper, active && cls.active);
38
+ return /* @__PURE__ */ jsxs("div", { className: wrapperClassNames, children: [
39
+ /* @__PURE__ */ jsx("div", { className: cls["date-wrapper"], onClick: onOpen, children: /* @__PURE__ */ jsx(
40
+ Input,
41
+ {
42
+ ref,
43
+ className: cls.input,
44
+ wrapperClassName: cls["input-wrapper"],
45
+ size,
46
+ type: "text",
47
+ value: formating.Date(date, "dd.mm.yy"),
48
+ ...props
49
+ }
50
+ ) }),
51
+ /* @__PURE__ */ jsx("div", { className: cls["button-wrapper"], children: /* @__PURE__ */ jsx(
52
+ Button,
53
+ {
54
+ isIconButton: true,
55
+ clear: true,
56
+ type: "button",
57
+ className: cls.button,
58
+ onClick: onOpen,
59
+ iconName: active ? "DropdownArrowUp16px" : "DropdownArrowBottom16px"
60
+ }
61
+ ) }),
62
+ active && /* @__PURE__ */ jsx(
63
+ DatePickerModal,
64
+ {
65
+ onValue: onDate,
66
+ date,
67
+ setActive,
68
+ before: typeof before === "string" ? new Date(before) : before
69
+ }
70
+ )
71
+ ] });
72
+ }
73
+ )
74
+ );
75
+ DatePicker.displayName = "DatePicker";
76
+ export {
77
+ DatePicker
78
+ };
@@ -0,0 +1,8 @@
1
+ type DatePickerModal = {
2
+ date: Date;
3
+ onValue: (d: Date) => void;
4
+ setActive: (s: boolean) => void;
5
+ before?: Date;
6
+ };
7
+ export declare function DatePickerModal({ date, onValue, setActive, before }: DatePickerModal): import("react/jsx-runtime").JSX.Element;
8
+ export {};
@@ -0,0 +1,8 @@
1
+ import "react/jsx-runtime";
2
+ import "react";
3
+ import { D } from "../../DatePickerModal-CbzwSnA7.js";
4
+ import "../Button/Button.js";
5
+ import "../../utils/index.js";
6
+ export {
7
+ D as DatePickerModal
8
+ };
@@ -0,0 +1,5 @@
1
+ export declare enum EDatePickerBeforeDate {
2
+ CurrentDate1 = "2024-08-01",
3
+ CurrentDate2 = "2024-07-01",
4
+ CurrentDate3 = "2024-07-11"
5
+ }
@@ -0,0 +1,9 @@
1
+ var EDatePickerBeforeDate = /* @__PURE__ */ ((EDatePickerBeforeDate2) => {
2
+ EDatePickerBeforeDate2["CurrentDate1"] = "2024-08-01";
3
+ EDatePickerBeforeDate2["CurrentDate2"] = "2024-07-01";
4
+ EDatePickerBeforeDate2["CurrentDate3"] = "2024-07-11";
5
+ return EDatePickerBeforeDate2;
6
+ })(EDatePickerBeforeDate || {});
7
+ export {
8
+ EDatePickerBeforeDate
9
+ };
@@ -0,0 +1,2 @@
1
+ export { DatePicker } from './DatePicker';
2
+ export type { DatePicker as TDatePickerProps } from './DatePicker';
@@ -0,0 +1,4 @@
1
+ import { DatePicker } from "./DatePicker.js";
2
+ export {
3
+ DatePicker
4
+ };
@@ -0,0 +1,38 @@
1
+ import { PropsWithChildren, ReactNode } from 'react';
2
+ import { EDrawerPosition } from './constants';
3
+
4
+ type TProps = {
5
+ /**
6
+ * Обязательный заголовок.
7
+ */
8
+ title: string;
9
+ /**
10
+ * Флаг отвечачающий за показ/скрытие.
11
+ */
12
+ isOpen?: boolean;
13
+ /**
14
+ * Настраиваемый паддинг для body, что бы избежать скачка контента при overflow: hidden
15
+ */
16
+ paddingRight?: number;
17
+ /**
18
+ * Функция закрытия шторки
19
+ */
20
+ onClose?: VoidFunction;
21
+ /**
22
+ * Дополнительный класс для родительской обертки.
23
+ */
24
+ className?: string;
25
+ /**
26
+ * Позиция шторки.
27
+ */
28
+ position?: `${EDrawerPosition}` | EDrawerPosition;
29
+ /**
30
+ * Кастомный footer. По дефолту в нем расположена кнопка для закрытия.
31
+ */
32
+ footer?: ReactNode;
33
+ };
34
+ /**
35
+ * Компонент шторки, который может выезжать слева, справа или внизу.
36
+ */
37
+ export declare const Drawer: ({ isOpen, onClose, title, className, position, paddingRight, footer, children }: PropsWithChildren<TProps>) => import("react/jsx-runtime").JSX.Element | null;
38
+ export {};
@@ -0,0 +1,144 @@
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import { c as classNames } from "../../index-CweZ_OcN.js";
3
+ import { useState, useRef, useCallback, useEffect } from "react";
4
+ import { EDrawerPosition } from "./constants.js";
5
+ import { useMediaQuery } from "../../hooks/useMediaQuery/useMediaQuery.js";
6
+ import { EMediaQuery } from "../../hooks/useMediaQuery/constants.js";
7
+ import { useLockBodyScroll } from "../../hooks/useLockBodyScroll/useLockBodyScroll.js";
8
+ import { Button } from "../Button/Button.js";
9
+ import { EButtonVariantDefault, EButtonSize } from "../Button/constants.js";
10
+ import { Portal } from "../Portal/Portal.js";
11
+ import '../../assets/Drawer.css';const drawer = "_drawer_vy4rv_3";
12
+ const content = "_content_vy4rv_17";
13
+ const header = "_header_vy4rv_32";
14
+ const title = "_title_vy4rv_40";
15
+ const space = "_space_vy4rv_54";
16
+ const inner = "_inner_vy4rv_65";
17
+ const button = "_button_vy4rv_68";
18
+ const footer = "_footer_vy4rv_73";
19
+ const left = "_left_vy4rv_86";
20
+ const right = "_right_vy4rv_90";
21
+ const bottom = "_bottom_vy4rv_94";
22
+ const opened = "_opened_vy4rv_103";
23
+ const overlay = "_overlay_vy4rv_151";
24
+ const cls = {
25
+ drawer,
26
+ content,
27
+ header,
28
+ title,
29
+ space,
30
+ inner,
31
+ button,
32
+ footer,
33
+ "footer-button": "_footer-button_vy4rv_82",
34
+ left,
35
+ right,
36
+ bottom,
37
+ opened,
38
+ "is-closing": "_is-closing_vy4rv_118",
39
+ overlay
40
+ };
41
+ const ANIMATION_DELAY = 300;
42
+ const Drawer = ({
43
+ isOpen,
44
+ onClose,
45
+ title: title2,
46
+ className,
47
+ position = EDrawerPosition.RIGHT,
48
+ paddingRight = 8,
49
+ footer: footer2,
50
+ children
51
+ }) => {
52
+ const [isClosing, setIsClosing] = useState(false);
53
+ const [isMounted, setIsMounted] = useState(false);
54
+ const [isBodyScrollLocked, setIsBodyScrollLocked] = useState(false);
55
+ const timerRef = useRef();
56
+ const contentRef = useRef(null);
57
+ const isBottomPosition = position === EDrawerPosition.BOTTOM;
58
+ const isMobile = useMediaQuery(EMediaQuery.XS1);
59
+ useLockBodyScroll({
60
+ on: isBodyScrollLocked,
61
+ paddingRight
62
+ });
63
+ const handleClose = useCallback(() => {
64
+ if (onClose) {
65
+ setIsClosing(true);
66
+ setIsBodyScrollLocked(false);
67
+ timerRef.current = setTimeout(() => {
68
+ onClose();
69
+ setIsClosing(false);
70
+ }, ANIMATION_DELAY);
71
+ }
72
+ }, [onClose]);
73
+ const handleKeyDown = useCallback(
74
+ (event) => {
75
+ if (event.key === "Escape") {
76
+ handleClose();
77
+ }
78
+ },
79
+ [handleClose]
80
+ );
81
+ useEffect(() => {
82
+ if (isOpen) {
83
+ setIsBodyScrollLocked(true);
84
+ setIsMounted(true);
85
+ window.addEventListener("keydown", handleKeyDown);
86
+ }
87
+ return () => {
88
+ setIsMounted(false);
89
+ clearTimeout(timerRef.current);
90
+ window.removeEventListener("keydown", handleKeyDown);
91
+ };
92
+ }, [isOpen, handleKeyDown]);
93
+ const mods = {
94
+ [cls.opened]: isMounted,
95
+ [cls["is-closing"]]: isClosing
96
+ };
97
+ if (!isOpen) {
98
+ return null;
99
+ }
100
+ return /* @__PURE__ */ jsxs(Portal, { children: [
101
+ /* @__PURE__ */ jsx(
102
+ "div",
103
+ {
104
+ "aria-hidden": isOpen,
105
+ role: "dialog",
106
+ style: {
107
+ minHeight: isBottomPosition && contentRef.current ? contentRef.current.offsetHeight : void 0
108
+ },
109
+ className: classNames(cls.drawer, cls[position], mods, className),
110
+ children: /* @__PURE__ */ jsxs("section", { className: classNames(cls.content, cls[position]), children: [
111
+ /* @__PURE__ */ jsxs("header", { className: cls.header, children: [
112
+ /* @__PURE__ */ jsx("h2", { className: cls.title, children: title2 }),
113
+ /* @__PURE__ */ jsx("div", { className: cls.space, children: /* @__PURE__ */ jsx(
114
+ Button,
115
+ {
116
+ variant: EButtonVariantDefault.SecondaryWhite,
117
+ isIconButton: true,
118
+ size: isMobile ? EButtonSize.S : EButtonSize.M,
119
+ iconName: "Close16px",
120
+ onClick: handleClose,
121
+ className: cls.button
122
+ }
123
+ ) })
124
+ ] }),
125
+ /* @__PURE__ */ jsx("div", { ref: contentRef, className: cls.inner, children }),
126
+ /* @__PURE__ */ jsx("footer", { className: cls.footer, children: footer2 || /* @__PURE__ */ jsx(
127
+ Button,
128
+ {
129
+ size: isMobile ? EButtonSize.M : EButtonSize.XXL,
130
+ full: isMobile,
131
+ onClick: handleClose,
132
+ className: cls["footer-button"],
133
+ children: "Закрыть"
134
+ }
135
+ ) })
136
+ ] })
137
+ }
138
+ ),
139
+ /* @__PURE__ */ jsx("div", { className: classNames(cls.overlay, mods), onClick: handleClose })
140
+ ] });
141
+ };
142
+ export {
143
+ Drawer
144
+ };
@@ -0,0 +1,5 @@
1
+ export declare enum EDrawerPosition {
2
+ LEFT = "left",
3
+ RIGHT = "right",
4
+ BOTTOM = "bottom"
5
+ }
@@ -0,0 +1,9 @@
1
+ var EDrawerPosition = /* @__PURE__ */ ((EDrawerPosition2) => {
2
+ EDrawerPosition2["LEFT"] = "left";
3
+ EDrawerPosition2["RIGHT"] = "right";
4
+ EDrawerPosition2["BOTTOM"] = "bottom";
5
+ return EDrawerPosition2;
6
+ })(EDrawerPosition || {});
7
+ export {
8
+ EDrawerPosition
9
+ };
@@ -0,0 +1,2 @@
1
+ export { Drawer } from './Drawer';
2
+ export { EDrawerPosition } from './constants';
@@ -0,0 +1,6 @@
1
+ import { Drawer } from "./Drawer.js";
2
+ import { EDrawerPosition } from "./constants.js";
3
+ export {
4
+ Drawer,
5
+ EDrawerPosition
6
+ };
@@ -2,30 +2,30 @@ import { jsxs, jsx } from "react/jsx-runtime";
2
2
  import { c as classNames } from "../../index-CweZ_OcN.js";
3
3
  import { memo, forwardRef, useState, useEffect } from "react";
4
4
  import { EInputVariant } from "./constants.js";
5
- import '../../assets/Input.css';const label = "_label_1wv6m_5";
6
- const input = "_input_1wv6m_2";
7
- const s = "_s_1wv6m_61";
8
- const m = "_m_1wv6m_73";
9
- const l = "_l_1wv6m_5";
10
- const success = "_success_1wv6m_124";
11
- const alarm = "_alarm_1wv6m_142";
12
- const error = "_error_1wv6m_160";
13
- const disabled = "_disabled_1wv6m_178";
5
+ import '../../assets/Input.css';const label = "_label_16d1h_5";
6
+ const input = "_input_16d1h_2";
7
+ const s = "_s_16d1h_61";
8
+ const m = "_m_16d1h_73";
9
+ const l = "_l_16d1h_5";
10
+ const success = "_success_16d1h_124";
11
+ const alarm = "_alarm_16d1h_142";
12
+ const error = "_error_16d1h_160";
13
+ const disabled = "_disabled_16d1h_178";
14
14
  const cls = {
15
- "input-wrapper": "_input-wrapper_1wv6m_2",
15
+ "input-wrapper": "_input-wrapper_16d1h_2",
16
16
  label,
17
- "active-label": "_active-label_1wv6m_18",
17
+ "active-label": "_active-label_16d1h_18",
18
18
  input,
19
19
  s,
20
20
  m,
21
21
  l,
22
- "default-gray": "_default-gray_1wv6m_97",
23
- "default-white": "_default-white_1wv6m_109",
22
+ "default-gray": "_default-gray_16d1h_97",
23
+ "default-white": "_default-white_16d1h_109",
24
24
  success,
25
25
  alarm,
26
26
  error,
27
27
  disabled,
28
- "has-label": "_has-label_1wv6m_196"
28
+ "has-label": "_has-label_16d1h_196"
29
29
  };
30
30
  const Input = memo(
31
31
  forwardRef(
@@ -0,0 +1,7 @@
1
+ import { PropsWithChildren } from 'react';
2
+
3
+ type TProps = {
4
+ element?: HTMLElement;
5
+ };
6
+ export declare const Portal: ({ element, children }: PropsWithChildren<TProps>) => import('react').ReactPortal;
7
+ export {};
@@ -0,0 +1,10 @@
1
+ import { createPortal } from "react-dom";
2
+ const Portal = ({
3
+ element = document.body,
4
+ children
5
+ }) => {
6
+ return createPortal(children, element);
7
+ };
8
+ export {
9
+ Portal
10
+ };
@@ -0,0 +1 @@
1
+ export { Portal } from './Portal';
@@ -0,0 +1,4 @@
1
+ import { Portal } from "./Portal.js";
2
+ export {
3
+ Portal
4
+ };
@@ -7,12 +7,16 @@ export { InputPhoneNumber, getMaskedInputPhoneValue, getUnmaskedInputValue } fro
7
7
  export { OtpInput } from './OtpInput';
8
8
  export { RadioGroup } from './RadioGroup';
9
9
  export type { TRadioOption } from './RadioGroup';
10
+ export { DatePicker } from './DatePicker';
11
+ export type { TDatePickerProps } from './DatePicker';
10
12
  export { MergedButton } from './MergedButton';
11
13
  export { EMergedButtonVariantRound } from './MergedButton';
12
14
  export type { TButtonPropsWithoutStyles } from './MergedButton';
13
15
  export { Image } from './Image';
14
16
  export { Loader } from './Loader';
15
17
  export { Slider } from './Slider';
18
+ export { Drawer } from './Drawer';
19
+ export { EDrawerPosition } from './Drawer';
16
20
  export { Steps, EStepsPrimaryColor, EStepsSecondaryColor, EStepsSize, type TCommonStepsProps } from './Steps';
17
21
  export { Vote, EVoteSize, type TCommonVoteProps } from './Vote';
18
22
  export { SelectSearch, ESelectSearchSize } from './SelectSearch';
@@ -7,11 +7,14 @@ import { InputPhoneNumber } from "./InputPhoneNumber/InputPhoneNumber.js";
7
7
  import { getMaskedInputPhoneValue, getUnmaskedInputValue } from "./InputPhoneNumber/utils.js";
8
8
  import { OtpInput } from "./OtpInput/OtpInput.js";
9
9
  import { RadioGroup } from "./RadioGroup/RadioGroup.js";
10
+ import { DatePicker } from "./DatePicker/DatePicker.js";
10
11
  import { MergedButton } from "./MergedButton/MergedButton.js";
11
12
  import { EMergedButtonVariantRound } from "./MergedButton/constants.js";
12
13
  import { AppImage } from "./Image/Image.js";
13
14
  import { Loader } from "./Loader/Loader.js";
14
15
  import { Slider } from "./Slider/Slider.js";
16
+ import { Drawer } from "./Drawer/Drawer.js";
17
+ import { EDrawerPosition } from "./Drawer/constants.js";
15
18
  import { Steps } from "./Steps/Steps.js";
16
19
  import { EStepsPrimaryColor, EStepsSecondaryColor, EStepsSize } from "./Steps/constants.js";
17
20
  import { Vote } from "./Vote/Vote.js";
@@ -20,10 +23,13 @@ import { SelectSearch } from "./SelectSearch/SelectSearch.js";
20
23
  import { ESelectSearchSize } from "./SelectSearch/constants.js";
21
24
  export {
22
25
  Button,
26
+ DatePicker,
27
+ Drawer,
23
28
  EButtonForm,
24
29
  EButtonSize,
25
30
  EButtonVariantDefault,
26
31
  EButtonVariantRound,
32
+ EDrawerPosition,
27
33
  EInputSize,
28
34
  EInputVariant,
29
35
  EMergedButtonVariantRound,
@@ -1 +1,2 @@
1
1
  export { useMediaQuery, EMediaQuery } from './useMediaQuery';
2
+ export { useLockBodyScroll } from './useLockBodyScroll';
@@ -1,6 +1,8 @@
1
1
  import { useMediaQuery } from "./useMediaQuery/useMediaQuery.js";
2
2
  import { EMediaQuery } from "./useMediaQuery/constants.js";
3
+ import { useLockBodyScroll } from "./useLockBodyScroll/useLockBodyScroll.js";
3
4
  export {
4
5
  EMediaQuery,
6
+ useLockBodyScroll,
5
7
  useMediaQuery
6
8
  };
@@ -0,0 +1 @@
1
+ export { useLockBodyScroll } from './useLockBodyScroll';
@@ -0,0 +1,4 @@
1
+ import { useLockBodyScroll } from "./useLockBodyScroll.js";
2
+ export {
3
+ useLockBodyScroll
4
+ };
@@ -0,0 +1,6 @@
1
+ type TUseLockBodyScroll = {
2
+ on?: boolean;
3
+ paddingRight?: number;
4
+ };
5
+ export declare function useLockBodyScroll({ on, paddingRight }: TUseLockBodyScroll): void;
6
+ export {};
@@ -0,0 +1,20 @@
1
+ import { useLayoutEffect } from "react";
2
+ function useLockBodyScroll({ on, paddingRight }) {
3
+ useLayoutEffect(() => {
4
+ const hasVerticalScrollbar = document.documentElement.scrollHeight > document.documentElement.clientHeight;
5
+ if (!on || !hasVerticalScrollbar) return;
6
+ const originalStyle = window.getComputedStyle(document.body).overflow;
7
+ const originalPaddingStyle = window.getComputedStyle(
8
+ document.body
9
+ ).paddingRight;
10
+ document.body.style.overflow = "hidden";
11
+ document.body.style.paddingRight = `${paddingRight}px`;
12
+ return () => {
13
+ document.body.style.overflow = originalStyle;
14
+ document.body.style.paddingRight = originalPaddingStyle;
15
+ };
16
+ }, [on, paddingRight]);
17
+ }
18
+ export {
19
+ useLockBodyScroll
20
+ };
package/dist/index.d.ts CHANGED
@@ -2,3 +2,4 @@
2
2
  export * from './components';
3
3
  export * from './hooks';
4
4
  export * from './icons';
5
+ export * from './utils';
package/dist/index.js CHANGED
@@ -7,11 +7,14 @@ import { InputPhoneNumber } from "./components/InputPhoneNumber/InputPhoneNumber
7
7
  import { getMaskedInputPhoneValue, getUnmaskedInputValue } from "./components/InputPhoneNumber/utils.js";
8
8
  import { OtpInput } from "./components/OtpInput/OtpInput.js";
9
9
  import { RadioGroup } from "./components/RadioGroup/RadioGroup.js";
10
+ import { DatePicker } from "./components/DatePicker/DatePicker.js";
10
11
  import { MergedButton } from "./components/MergedButton/MergedButton.js";
11
12
  import { EMergedButtonVariantRound } from "./components/MergedButton/constants.js";
12
13
  import { AppImage } from "./components/Image/Image.js";
13
14
  import { Loader } from "./components/Loader/Loader.js";
14
15
  import { Slider } from "./components/Slider/Slider.js";
16
+ import { Drawer } from "./components/Drawer/Drawer.js";
17
+ import { EDrawerPosition } from "./components/Drawer/constants.js";
15
18
  import { Steps } from "./components/Steps/Steps.js";
16
19
  import { EStepsPrimaryColor, EStepsSecondaryColor, EStepsSize } from "./components/Steps/constants.js";
17
20
  import { Vote } from "./components/Vote/Vote.js";
@@ -20,13 +23,18 @@ import { SelectSearch } from "./components/SelectSearch/SelectSearch.js";
20
23
  import { ESelectSearchSize } from "./components/SelectSearch/constants.js";
21
24
  import { useMediaQuery } from "./hooks/useMediaQuery/useMediaQuery.js";
22
25
  import { EMediaQuery } from "./hooks/useMediaQuery/constants.js";
26
+ import { useLockBodyScroll } from "./hooks/useLockBodyScroll/useLockBodyScroll.js";
23
27
  import { Icon } from "./icons/Icon.js";
28
+ import { formating } from "./utils/index.js";
24
29
  import './assets/index.css';export {
25
30
  Button,
31
+ DatePicker,
32
+ Drawer,
26
33
  EButtonForm,
27
34
  EButtonSize,
28
35
  EButtonVariantDefault,
29
36
  EButtonVariantRound,
37
+ EDrawerPosition,
30
38
  EInputSize,
31
39
  EInputVariant,
32
40
  EMediaQuery,
@@ -49,7 +57,9 @@ import './assets/index.css';export {
49
57
  Slider,
50
58
  Steps,
51
59
  Vote,
60
+ formating,
52
61
  getMaskedInputPhoneValue,
53
62
  getUnmaskedInputValue,
63
+ useLockBodyScroll,
54
64
  useMediaQuery
55
65
  };
@@ -0,0 +1 @@
1
+ export default function _Date(x: Date, y: string | Date): string;
@@ -0,0 +1,27 @@
1
+ function _Date(x, y) {
2
+ if (y === void 0) {
3
+ y = x;
4
+ x = /* @__PURE__ */ new Date();
5
+ } else {
6
+ x = new Date(x);
7
+ }
8
+ const replaces = {
9
+ yyyy: x.getFullYear() + "",
10
+ yy: `${x.getFullYear()}`.slice(-2),
11
+ mm: `0${x.getMonth() + 1}`.slice(-2),
12
+ dd: `0${x.getDate()}`.slice(-2),
13
+ HH: `0${x.getHours()}`.slice(-2),
14
+ MM: `0${x.getMinutes()}`.slice(-2),
15
+ SS: `0${x.getSeconds()}`.slice(-2)
16
+ };
17
+ Object.keys(replaces).forEach((replace) => {
18
+ if (typeof y === "string") {
19
+ y = y.replace(replace, replaces[replace]);
20
+ console.log(y);
21
+ }
22
+ });
23
+ return y;
24
+ }
25
+ export {
26
+ _Date as default
27
+ };
@@ -0,0 +1,8 @@
1
+ type MonthObj = {
2
+ val: string;
3
+ name: string;
4
+ names: string;
5
+ abc: string;
6
+ };
7
+ export default function Month(n: number): MonthObj;
8
+ export {};
@@ -0,0 +1,80 @@
1
+ function Month(n) {
2
+ const obj = {
3
+ 1: {
4
+ val: "01",
5
+ name: "Январь",
6
+ names: "Января",
7
+ abc: "Янв"
8
+ },
9
+ 2: {
10
+ val: "02",
11
+ name: "Февраль",
12
+ names: "Февраля",
13
+ abc: "Февр"
14
+ },
15
+ 3: {
16
+ val: "03",
17
+ name: "Март",
18
+ names: "Марта",
19
+ abc: "Март"
20
+ },
21
+ 4: {
22
+ val: "04",
23
+ name: "Апрель",
24
+ names: "Апреля",
25
+ abc: "Апр"
26
+ },
27
+ 5: {
28
+ val: "05",
29
+ name: "Май",
30
+ names: "Мая",
31
+ abc: "Май"
32
+ },
33
+ 6: {
34
+ val: "06",
35
+ name: "Июнь",
36
+ names: "Июня",
37
+ abc: "Июнь"
38
+ },
39
+ 7: {
40
+ val: "07",
41
+ name: "Июль",
42
+ names: "Июля",
43
+ abc: "Июль"
44
+ },
45
+ 8: {
46
+ val: "08",
47
+ name: "Август",
48
+ names: "Августа",
49
+ abc: "Авг"
50
+ },
51
+ 9: {
52
+ val: "09",
53
+ name: "Сентябрь",
54
+ names: "Сентебря",
55
+ abc: "Сент"
56
+ },
57
+ 10: {
58
+ val: "10",
59
+ name: "Октябрь",
60
+ names: "Октября",
61
+ abc: "Окт"
62
+ },
63
+ 11: {
64
+ val: "11",
65
+ name: "Ноябрь",
66
+ names: "Ноября",
67
+ abc: "Нояб"
68
+ },
69
+ 12: {
70
+ val: "12",
71
+ name: "Декабрь",
72
+ names: "Декабря",
73
+ abc: "Дек"
74
+ }
75
+ };
76
+ return obj[n];
77
+ }
78
+ export {
79
+ Month as default
80
+ };
@@ -0,0 +1,6 @@
1
+ /**
2
+ *l - length
3
+ *n - numder
4
+ *fn(10,123) => 0000000123
5
+ */
6
+ export default function Number(l: number, n: number): string;
@@ -0,0 +1,8 @@
1
+ function Number(l, n) {
2
+ let c = n + "";
3
+ while (c.length < l) c = "0" + c;
4
+ return c;
5
+ }
6
+ export {
7
+ Number as default
8
+ };
@@ -0,0 +1,9 @@
1
+ import { default as Number } from './formating/Number';
2
+ import { default as Month } from './formating/Month';
3
+ import { default as Date } from './formating/Date';
4
+
5
+ export declare const formating: {
6
+ Number: typeof Number;
7
+ Month: typeof Month;
8
+ Date: typeof Date;
9
+ };
@@ -0,0 +1,11 @@
1
+ import Number from "./formating/Number.js";
2
+ import Month from "./formating/Month.js";
3
+ import _Date from "./formating/Date.js";
4
+ const formating = {
5
+ Number,
6
+ Month,
7
+ Date: _Date
8
+ };
9
+ export {
10
+ formating
11
+ };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "mimir-ui-kit",
3
3
  "private": false,
4
- "version": "1.5.1",
4
+ "version": "1.6.0",
5
5
  "type": "module",
6
6
  "exports": {
7
7
  ".": {