ics-ui-kit 1.0.0-alpha.0 → 1.0.0-alpha.2

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 (134) hide show
  1. package/dist/CalendarPreviousMonthButton-CHMp8bkd.js +2964 -0
  2. package/dist/CalendarPreviousMonthButton-CHMp8bkd.js.map +1 -0
  3. package/dist/{CheckboxField-Ca48ZYoX.js → CheckboxField-xDqHgXHh.js} +2 -2
  4. package/dist/{CheckboxField-Ca48ZYoX.js.map → CheckboxField-xDqHgXHh.js.map} +1 -1
  5. package/dist/{Command-CsW4aK7M.js → Command-WsAKNQrY.js} +2 -2
  6. package/dist/{Command-CsW4aK7M.js.map → Command-WsAKNQrY.js.map} +1 -1
  7. package/dist/{Dialog-BT_775Iz.js → Dialog-i_Y-phdM.js} +42 -43
  8. package/dist/Dialog-i_Y-phdM.js.map +1 -0
  9. package/dist/{Field-BRPdaQ8D.js → Field-BcwUtgGr.js} +2 -2
  10. package/dist/{Field-BRPdaQ8D.js.map → Field-BcwUtgGr.js.map} +1 -1
  11. package/dist/{FieldLabel-ic0eq9Un.js → FieldLabel-DYu1AcGH.js} +2 -2
  12. package/dist/{FieldLabel-ic0eq9Un.js.map → FieldLabel-DYu1AcGH.js.map} +1 -1
  13. package/dist/{FormFooterTemplate-BIwnBQhL.js → FormFooterTemplate-CHlas_Pp.js} +2 -2
  14. package/dist/{FormFooterTemplate-BIwnBQhL.js.map → FormFooterTemplate-CHlas_Pp.js.map} +1 -1
  15. package/dist/FormStack-DfoaOry7.js +1205 -0
  16. package/dist/FormStack-DfoaOry7.js.map +1 -0
  17. package/dist/{IconTooltip-CgbefRXG.js → IconTooltip-R6_6_f40.js} +2 -2
  18. package/dist/{IconTooltip-CgbefRXG.js.map → IconTooltip-R6_6_f40.js.map} +1 -1
  19. package/dist/{Popover-Dz2eNsXh.js → Popover-XrJa7lyb.js} +49 -50
  20. package/dist/Popover-XrJa7lyb.js.map +1 -0
  21. package/dist/{Select-Bfbtj5zt.js → Select-DO02vXt3.js} +185 -186
  22. package/dist/{Select-Bfbtj5zt.js.map → Select-DO02vXt3.js.map} +1 -1
  23. package/dist/{Sheet-aLBPtE1k.js → Sheet-C2UoHLL0.js} +35 -36
  24. package/dist/Sheet-C2UoHLL0.js.map +1 -0
  25. package/dist/{TextOverflowTooltip-BaNPKqnO.js → TextOverflowTooltip-XPDdO9Dz.js} +2 -2
  26. package/dist/{TextOverflowTooltip-BaNPKqnO.js.map → TextOverflowTooltip-XPDdO9Dz.js.map} +1 -1
  27. package/dist/{Tooltip-DOgKy50D.js → Tooltip-D2XvRS0c.js} +63 -64
  28. package/dist/Tooltip-D2XvRS0c.js.map +1 -0
  29. package/dist/blocks/auth/otp-form.js +3240 -204
  30. package/dist/blocks/auth/otp-form.js.map +1 -1
  31. package/dist/components/alert-dialog/AlertDialog.d.ts +2 -4
  32. package/dist/components/alert-dialog.js +70 -71
  33. package/dist/components/alert-dialog.js.map +1 -1
  34. package/dist/components/calendar/components/calendar-dropdown/CalendarDropdown.d.ts +24 -0
  35. package/dist/components/calendar/styles.d.ts +61 -0
  36. package/dist/components/calendar-scroll/CalendarScroll.d.ts +21 -0
  37. package/dist/components/calendar-scroll/CalendarScroll.stories.d.ts +16 -0
  38. package/dist/components/calendar-scroll/index.d.ts +3 -0
  39. package/dist/components/calendar-scroll.d.ts +2 -0
  40. package/dist/components/calendar-scroll.js +181 -0
  41. package/dist/components/calendar-scroll.js.map +1 -0
  42. package/dist/components/calendar.js +51 -147
  43. package/dist/components/calendar.js.map +1 -1
  44. package/dist/components/checkbox.js +1 -1
  45. package/dist/components/command.js +1 -1
  46. package/dist/components/dialog/Dialog.d.ts +2 -4
  47. package/dist/components/dialog.js +3 -3
  48. package/dist/components/drawer/components/drawer-content/DrawerContent.d.ts +1 -2
  49. package/dist/components/drawer.js +96 -97
  50. package/dist/components/drawer.js.map +1 -1
  51. package/dist/components/dropdown/Dropdown.d.ts +2 -4
  52. package/dist/components/dropdown.js +251 -252
  53. package/dist/components/dropdown.js.map +1 -1
  54. package/dist/components/field.js +1 -1
  55. package/dist/components/file-upload.js +1 -1
  56. package/dist/components/form/Form.d.ts +14 -0
  57. package/dist/components/form/components/form-field/FormField.d.ts +4 -0
  58. package/dist/components/form.js +3 -3
  59. package/dist/components/icon-tooltip.js +1 -1
  60. package/dist/components/label.js +1 -1
  61. package/dist/components/overflow-tooltip.js +1 -1
  62. package/dist/components/popover/Popover.d.ts +1 -2
  63. package/dist/components/popover.js +1 -1
  64. package/dist/components/resizable/Resizable.d.ts +1 -1
  65. package/dist/components/scheduler.js +1 -1
  66. package/dist/components/search-select/multi-select/MultiSelect.d.ts +1 -1
  67. package/dist/components/search-select.js +3 -3
  68. package/dist/components/search-select.js.map +1 -1
  69. package/dist/components/select/Select.d.ts +1 -2
  70. package/dist/components/select.js +1 -1
  71. package/dist/components/sheet/Sheet.d.ts +1 -2
  72. package/dist/components/sheet.js +1 -1
  73. package/dist/components/sidebar.js +2 -2
  74. package/dist/components/switch.js +1 -1
  75. package/dist/components/tag-input.js +1 -1
  76. package/dist/components/tooltip/Tooltip.d.ts +2 -4
  77. package/dist/components/tooltip.js +1 -1
  78. package/dist/tailwind.css +406 -361
  79. package/package.json +22 -18
  80. package/dist/DayPicker-4hE1QEvO.js +0 -2452
  81. package/dist/DayPicker-4hE1QEvO.js.map +0 -1
  82. package/dist/Dialog-BT_775Iz.js.map +0 -1
  83. package/dist/FormStack-CxiZhx1n.js +0 -127
  84. package/dist/FormStack-CxiZhx1n.js.map +0 -1
  85. package/dist/Popover-Dz2eNsXh.js.map +0 -1
  86. package/dist/Sheet-aLBPtE1k.js.map +0 -1
  87. package/dist/Tooltip-DOgKy50D.js.map +0 -1
  88. package/dist/buildMatchPatternFn-d7GTeGl_.js +0 -68
  89. package/dist/buildMatchPatternFn-d7GTeGl_.js.map +0 -1
  90. package/dist/components/portal-container/PortalContainer.d.ts +0 -10
  91. package/dist/components/portal-container/index.d.ts +0 -2
  92. package/dist/components/portal-container/portalContainerEvents.d.ts +0 -12
  93. package/dist/components/portal-container/usePortalContainer.d.ts +0 -11
  94. package/dist/components/portal-container.d.ts +0 -2
  95. package/dist/components/portal-container.js +0 -14
  96. package/dist/components/portal-container.js.map +0 -1
  97. package/dist/index.esm-CXA6i4d7.js +0 -1282
  98. package/dist/index.esm-CXA6i4d7.js.map +0 -1
  99. package/dist/normalizeDates-9A3c9WYM.js +0 -32
  100. package/dist/normalizeDates-9A3c9WYM.js.map +0 -1
  101. package/dist/styles.css +0 -9064
  102. package/dist/styles.d.ts +0 -1
  103. package/dist/usePortalContainer-B1xla842.js +0 -33
  104. package/dist/usePortalContainer-B1xla842.js.map +0 -1
  105. package/dist/vendors/date-fns/index.d.ts +0 -12
  106. package/dist/vendors/date-fns/locale/en-US/index.d.ts +0 -5
  107. package/dist/vendors/date-fns/locale/en-US.d.ts +0 -2
  108. package/dist/vendors/date-fns/locale/en-US.js +0 -372
  109. package/dist/vendors/date-fns/locale/en-US.js.map +0 -1
  110. package/dist/vendors/date-fns/locale/ru/index.d.ts +0 -5
  111. package/dist/vendors/date-fns/locale/ru.d.ts +0 -2
  112. package/dist/vendors/date-fns/locale/ru.js +0 -569
  113. package/dist/vendors/date-fns/locale/ru.js.map +0 -1
  114. package/dist/vendors/date-fns.d.ts +0 -2
  115. package/dist/vendors/date-fns.js +0 -2
  116. package/dist/vendors/date-fns.js.map +0 -1
  117. package/dist/vendors/react-day-picker/index.d.ts +0 -13
  118. package/dist/vendors/react-day-picker.d.ts +0 -2
  119. package/dist/vendors/react-day-picker.js +0 -87
  120. package/dist/vendors/react-day-picker.js.map +0 -1
  121. package/dist/vendors/react-hook-form/index.d.ts +0 -14
  122. package/dist/vendors/react-hook-form.d.ts +0 -2
  123. package/dist/vendors/react-hook-form.js +0 -19
  124. package/dist/vendors/react-hook-form.js.map +0 -1
  125. package/dist/vendors/tanstack/react-table/index.d.ts +0 -13
  126. package/dist/vendors/tanstack/react-table.d.ts +0 -2
  127. package/dist/vendors/tanstack/react-table.js +0 -2090
  128. package/dist/vendors/tanstack/react-table.js.map +0 -1
  129. package/dist/vendors/zod/index.d.ts +0 -13
  130. package/dist/vendors/zod.d.ts +0 -2
  131. package/dist/vendors/zod.js +0 -3080
  132. package/dist/vendors/zod.js.map +0 -1
  133. package/dist/zod-BMNoK3aM.js +0 -75
  134. package/dist/zod-BMNoK3aM.js.map +0 -1
@@ -0,0 +1,181 @@
1
+ import { jsx as n, jsxs as E } from "react/jsx-runtime";
2
+ import { useRef as C, useState as A, useCallback as N, useLayoutEffect as ue, useEffect as Z, useMemo as i, Children as he, cloneElement as me, isValidElement as fe } from "react";
3
+ import { T as pe } from "../index-BVqs-uqP.js";
4
+ import { f as H, e as be, s as we, a as xe, C as ye, l as Me, b as P, c as q, d as ve, g as ge, h as De, i as Ee, D as Ne, j as Se, M as Ce } from "../CalendarPreviousMonthButton-CHMp8bkd.js";
5
+ const d = 280, V = 4, G = 1, Fe = 100, ke = 2100, _e = pe({
6
+ slots: {
7
+ root: [
8
+ "flex h-[420px] w-fit flex-col overflow-hidden rounded-md",
9
+ "border border-solid border-secondary-border bg-secondary-bg shadow-soft-sm"
10
+ ],
11
+ header: "flex flex-col gap-2 border-b border-secondary-border p-3 pb-2",
12
+ nav: "flex h-9 items-center justify-between gap-1",
13
+ dropdowns: "flex items-center justify-center gap-1.5 text-sm font-medium capitalize",
14
+ weekdays: "flex",
15
+ weekday: "w-9 shrink-0 text-center text-xs font-medium text-muted-foreground opacity-70",
16
+ scroller: "relative flex-1 overflow-y-auto overscroll-contain px-3",
17
+ window: "absolute inset-x-3 top-0"
18
+ }
19
+ }), B = (o) => o.getFullYear() * 12 + o.getMonth(), f = (o) => new Date(Math.floor(o / 12), o % 12, 1), S = (o, s, a) => Math.min(Math.max(o, s), a), Le = ({ modifiers: o, ...s }) => {
20
+ const a = C(null), h = C(!0);
21
+ return Z(() => {
22
+ const F = h.current;
23
+ if (h.current = !1, !o.focused || F)
24
+ return;
25
+ const u = a.current?.querySelector("button"), M = u?.closest("[data-calendar-scroll-scroller]");
26
+ !u || !M || u === document.activeElement || M.contains(document.activeElement) && (u.focus({ preventScroll: !0 }), u.scrollIntoView({ block: "nearest" }));
27
+ }, [o.focused]), /* @__PURE__ */ n("span", { ref: a, className: "contents", children: /* @__PURE__ */ n(Se, { ...s, modifiers: { ...o, focused: !1 } }) });
28
+ }, Te = ({ children: o, ...s }) => /* @__PURE__ */ n(Ce, { ...s, children: he.toArray(o).map(
29
+ (a) => fe(a) && a.props.calendarMonth ? me(a, { key: a.props.calendarMonth.date.getTime() }) : a
30
+ ) }), Ae = ({
31
+ className: o,
32
+ classNames: s,
33
+ locale: a = be,
34
+ weekStartsOn: h,
35
+ startMonth: F,
36
+ endMonth: u,
37
+ defaultMonth: M,
38
+ components: R,
39
+ ...Y
40
+ }) => {
41
+ const c = _e(), p = C(null), v = C(0), r = B(F ?? new Date((/* @__PURE__ */ new Date()).getFullYear() - Fe, 0, 1)), b = B(u ?? new Date(ke, 11, 1)), l = Math.max(b - r + 1, 1), [J, Q] = A(V), k = Math.min(J, l), w = N(
42
+ (e) => S(e - G, 0, l - k),
43
+ [l, k]
44
+ ), _ = S(B(M ?? /* @__PURE__ */ new Date()) - r, 0, l - 1), [x, z] = A(_), [L, W] = A(() => w(_));
45
+ ue(() => {
46
+ const e = p.current;
47
+ if (!e)
48
+ return;
49
+ const t = Math.ceil(e.clientHeight / d) + 1;
50
+ e.scrollTop = _ * d, Q(Math.max(V, t + G));
51
+ }, []), Z(() => () => cancelAnimationFrame(v.current), []);
52
+ const j = N(() => {
53
+ const e = p.current;
54
+ if (!e)
55
+ return;
56
+ const t = e.scrollTop;
57
+ z(S(Math.round(t / d), 0, l - 1)), W(w(Math.floor(t / d)));
58
+ }, [w, l]), X = N(() => {
59
+ v.current || (v.current = requestAnimationFrame(() => {
60
+ v.current = 0, j();
61
+ }));
62
+ }, [j]), T = N(
63
+ (e) => {
64
+ const t = p.current;
65
+ if (!t)
66
+ return;
67
+ const m = S(e - r, 0, l - 1);
68
+ t.scrollTop = m * d, z(m), W(w(m));
69
+ },
70
+ [w, r, l]
71
+ ), I = (e) => {
72
+ const t = p.current;
73
+ t && T(r + Math.round(t.scrollTop / d) + e);
74
+ }, g = f(r + x), $ = f(r + x - 1), ee = f(r + x + 1), O = x === 0, K = x === l - 1, te = (e) => {
75
+ T(g.getFullYear() * 12 + Number(e.target.value));
76
+ }, oe = (e) => {
77
+ T(Number(e.target.value) * 12 + g.getMonth());
78
+ }, y = a, D = Y.labels, ne = i(
79
+ () => Array.from({ length: 12 }, (e, t) => ({
80
+ value: t,
81
+ label: H(new Date(2e3, t, 1), "LLLL", { locale: y }),
82
+ disabled: !1
83
+ })),
84
+ [y]
85
+ ), re = i(() => {
86
+ const e = we(/* @__PURE__ */ new Date(), { locale: y, weekStartsOn: h });
87
+ return Array.from({ length: 7 }, (t, m) => H(xe(e, m), "EEEEEE", { locale: y }));
88
+ }, [y, h]), ae = i(() => {
89
+ const e = Math.floor(r / 12), t = Math.floor(b / 12);
90
+ return Array.from({ length: t - e + 1 }, (m, U) => ({
91
+ value: e + U,
92
+ label: String(e + U),
93
+ disabled: !1
94
+ }));
95
+ }, [r, b]), le = i(
96
+ () => ({
97
+ months: "flex flex-col",
98
+ month: "flex h-[280px] flex-col gap-1 pb-4",
99
+ month_caption: "flex items-center px-2 capitalize",
100
+ caption_label: "select-none text-sm font-medium",
101
+ month_grid: "w-full border-collapse",
102
+ weekdays: "hidden",
103
+ week: "mt-1 flex h-9",
104
+ day: "size-9 shrink-0 border-0 p-0",
105
+ hidden: "invisible",
106
+ ...s
107
+ }),
108
+ [s]
109
+ ), se = i(
110
+ () => ({ Months: Te, DayButton: Le, ...R }),
111
+ [R]
112
+ ), ce = i(() => f(r), [r]), ie = i(() => f(b), [b]), de = i(() => f(r + L), [r, L]);
113
+ return /* @__PURE__ */ E("div", { className: c.root({ className: o }), children: [
114
+ /* @__PURE__ */ E("div", { className: c.header(), children: [
115
+ /* @__PURE__ */ E("div", { className: c.nav(), children: [
116
+ /* @__PURE__ */ n(
117
+ ye,
118
+ {
119
+ "aria-label": (D?.labelPrevious ?? Me)(O ? void 0 : $),
120
+ disabled: O,
121
+ onClick: () => I(-1),
122
+ children: /* @__PURE__ */ n(P, { orientation: "left" })
123
+ }
124
+ ),
125
+ /* @__PURE__ */ E("div", { className: c.dropdowns(), children: [
126
+ /* @__PURE__ */ n(
127
+ q,
128
+ {
129
+ "aria-label": (D?.labelMonthDropdown ?? ve)(),
130
+ options: ne,
131
+ value: g.getMonth(),
132
+ onChange: te
133
+ }
134
+ ),
135
+ /* @__PURE__ */ n(
136
+ q,
137
+ {
138
+ "aria-label": (D?.labelYearDropdown ?? ge)(),
139
+ options: ae,
140
+ value: g.getFullYear(),
141
+ onChange: oe
142
+ }
143
+ )
144
+ ] }),
145
+ /* @__PURE__ */ n(
146
+ De,
147
+ {
148
+ "aria-label": (D?.labelNext ?? Ee)(K ? void 0 : ee),
149
+ disabled: K,
150
+ onClick: () => I(1),
151
+ children: /* @__PURE__ */ n(P, { orientation: "right" })
152
+ }
153
+ )
154
+ ] }),
155
+ /* @__PURE__ */ n("div", { className: c.weekdays(), "aria-hidden": "true", children: re.map((e, t) => /* @__PURE__ */ n("span", { className: c.weekday(), children: e }, t)) })
156
+ ] }),
157
+ /* @__PURE__ */ n("div", { ref: p, className: c.scroller(), "data-calendar-scroll-scroller": "", onScroll: X, children: /* @__PURE__ */ n("div", { style: { height: l * d }, children: /* @__PURE__ */ n("div", { className: c.window(), style: { top: L * d }, children: /* @__PURE__ */ n(
158
+ Ne,
159
+ {
160
+ ...Y,
161
+ locale: a,
162
+ weekStartsOn: h,
163
+ startMonth: ce,
164
+ endMonth: ie,
165
+ month: de,
166
+ numberOfMonths: k,
167
+ captionLayout: "label",
168
+ fixedWeeks: !0,
169
+ hideNavigation: !0,
170
+ showOutsideDays: !1,
171
+ classNames: le,
172
+ components: se
173
+ }
174
+ ) }) }) })
175
+ ] });
176
+ };
177
+ Ae.displayName = "CalendarScroll";
178
+ export {
179
+ Ae as CalendarScroll
180
+ };
181
+ //# sourceMappingURL=calendar-scroll.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar-scroll.js","sources":["../../src/components/calendar-scroll/CalendarScroll.tsx"],"sourcesContent":["import { addDays, format, Locale, startOfWeek } from \"date-fns\";\r\nimport {\r\n\tChangeEvent,\r\n\tChildren,\r\n\tcloneElement,\r\n\tisValidElement,\r\n\tuseCallback,\r\n\tuseEffect,\r\n\tuseLayoutEffect,\r\n\tuseMemo,\r\n\tuseRef,\r\n\tuseState\r\n} from \"react\";\r\nimport {\r\n\tDayPicker,\r\n\tDayPickerProps,\r\n\tDropdownOption,\r\n\tlabelMonthDropdown,\r\n\tlabelNext,\r\n\tlabelPrevious,\r\n\tlabelYearDropdown,\r\n\tMonthProps,\r\n\tMonths,\r\n\tMonthsProps\r\n} from \"react-day-picker\";\r\nimport { enUS } from \"react-day-picker/locale\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { CalendarChevron } from \"../calendar/components/calendar-chevron/CalendarChevron\";\r\nimport {\r\n\tCalendarDayButton,\r\n\tCalendarDayButtonProps\r\n} from \"../calendar/components/calendar-day-button/CalendarDayButton\";\r\nimport { CalendarNextMonthButton } from \"../calendar/components/calendar-next-month-button/CalendarNextMonthButton\";\r\nimport { CalendarPreviousMonthButton } from \"../calendar/components/calendar-previous-month-button/CalendarPreviousMonthButton\";\r\nimport { CalendarDropdown } from \"../calendar/components/calendar-dropdown/CalendarDropdown\";\r\n\r\n/**\r\n * Высота одного месяца в px. Фиксирована (6 недель всегда), поэтому позицию месяца\r\n * в скролле считаем арифметикой, без измерений DOM:\r\n * подпись 20 (text-sm) + gap 4 + 6 недель × (36 + 4) + нижний отступ 16 = 280.\r\n * Если меняете стили месяца ниже — меняйте и эту константу.\r\n */\r\nconst MONTH_HEIGHT = 280;\r\n/**\r\n * Сколько месяцев лежит в DOM до замера высоты скроллера. После монтирования окно\r\n * подгоняется под реальную высоту: видимые месяцы + 1 снизу + BUFFER_BEFORE сверху.\r\n * Каждый лишний месяц — ~42 дня, которые DayPicker пересчитывает на любом рендере.\r\n */\r\nconst DEFAULT_WINDOW_SIZE = 4;\r\n/** Сколько месяцев держим в DOM выше верхнего видимого */\r\nconst BUFFER_BEFORE = 1;\r\nconst DEFAULT_YEARS_BACK = 100;\r\nconst DEFAULT_END_YEAR = 2100;\r\n\r\nconst calendarScrollStyles = tv({\r\n\tslots: {\r\n\t\troot: [\r\n\t\t\t\"flex h-[420px] w-fit flex-col overflow-hidden rounded-md\",\r\n\t\t\t\"border border-solid border-secondary-border bg-secondary-bg shadow-soft-sm\"\r\n\t\t],\r\n\t\theader: \"flex flex-col gap-2 border-b border-secondary-border p-3 pb-2\",\r\n\t\tnav: \"flex h-9 items-center justify-between gap-1\",\r\n\t\tdropdowns: \"flex items-center justify-center gap-1.5 text-sm font-medium capitalize\",\r\n\t\tweekdays: \"flex\",\r\n\t\tweekday: \"w-9 shrink-0 text-center text-xs font-medium text-muted-foreground opacity-70\",\r\n\t\tscroller: \"relative flex-1 overflow-y-auto overscroll-contain px-3\",\r\n\t\twindow: \"absolute inset-x-3 top-0\"\r\n\t}\r\n});\r\n\r\nconst toKey = (date: Date) => date.getFullYear() * 12 + date.getMonth();\r\nconst fromKey = (key: number) => new Date(Math.floor(key / 12), key % 12, 1);\r\nconst clamp = (value: number, min: number, max: number) => Math.min(Math.max(value, min), max);\r\n\r\n/**\r\n * Кнопка дня для вертикального скролла.\r\n *\r\n * Штатный DayButton из react-day-picker зовёт `focus()` без `preventScroll`, когда день\r\n * получает флаг `focused`. В скролл-списке это ломает прокрутку: окно месяцев сдвигается,\r\n * ранее выбранный день снова попадает в DOM, фокус на него утягивает скролл назад.\r\n * Поэтому программный фокус делаем сами: только при клавиатурной навигации (фокус уже\r\n * внутри скроллера), с `preventScroll`, и скроллим к дню лишь если он вне видимой области.\r\n */\r\nconst CalendarScrollDayButton = ({ modifiers, ...props }: CalendarDayButtonProps) => {\r\n\tconst anchorRef = useRef<HTMLSpanElement>(null);\r\n\tconst isFirstRun = useRef(true);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst isMount = isFirstRun.current;\r\n\t\tisFirstRun.current = false;\r\n\t\tif (!modifiers.focused || isMount) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst button = anchorRef.current?.querySelector(\"button\");\r\n\t\tconst scroller = button?.closest(\"[data-calendar-scroll-scroller]\");\r\n\t\tif (!button || !scroller || button === document.activeElement) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (scroller.contains(document.activeElement)) {\r\n\t\t\tbutton.focus({ preventScroll: true });\r\n\t\t\tbutton.scrollIntoView({ block: \"nearest\" });\r\n\t\t}\r\n\t}, [modifiers.focused]);\r\n\r\n\treturn (\r\n\t\t<span ref={anchorRef} className=\"contents\">\r\n\t\t\t<CalendarDayButton {...props} modifiers={{ ...modifiers, focused: false }} />\r\n\t\t</span>\r\n\t);\r\n};\r\n\r\n/**\r\n * Контейнер месяцев с ключами по самому месяцу.\r\n *\r\n * DayPicker ключует месяцы по позиции (`displayIndex`), а дни — по дате и месяцу показа.\r\n * При сдвиге окна на месяц каждая позиция получает другой месяц, и React пересоздаёт\r\n * все дни всех месяцев окна. Перекладываем ключ на `yyyy-MM`: месяцы, оставшиеся в окне,\r\n * сохраняют свои узлы, монтируется только вошедший месяц. Заодно не теряется фокус\r\n * на только что нажатом дне.\r\n */\r\nconst CalendarScrollMonths = ({ children, ...props }: MonthsProps) => (\r\n\t<Months {...props}>\r\n\t\t{Children.toArray(children).map((child) =>\r\n\t\t\tisValidElement<MonthProps>(child) && child.props.calendarMonth\r\n\t\t\t\t? cloneElement(child, { key: child.props.calendarMonth.date.getTime() })\r\n\t\t\t\t: child\r\n\t\t)}\r\n\t</Months>\r\n);\r\n\r\ntype DistributiveOmit<T, K extends PropertyKey> = T extends unknown ? Omit<T, K> : never;\r\n\r\n/** Пропсы DayPicker, которыми управляет сам CalendarScroll */\r\ntype ManagedProps =\r\n\t| \"month\"\r\n\t| \"onMonthChange\"\r\n\t| \"numberOfMonths\"\r\n\t| \"captionLayout\"\r\n\t| \"fixedWeeks\"\r\n\t| \"hideNavigation\"\r\n\t| \"showOutsideDays\"\r\n\t| \"pagedNavigation\"\r\n\t| \"reverseMonths\";\r\n\r\nexport type CalendarScrollProps = DistributiveOmit<DayPickerProps, ManagedProps>;\r\n\r\n/**\r\n * CalendarScroll — календарь с вертикальным скроллом месяцев (как в мобильных банках).\r\n *\r\n * Месяцы идут друг за другом, сверху общая шапка с селектами месяца и года для быстрого\r\n * прыжка. Селекты синхронизированы со скроллом. В DOM лежит только окно из нескольких\r\n * месяцев, поэтому диапазон может быть широким (по умолчанию ±100 лет). Виртуализацию лучше\r\n * не отключать: без неё DayPicker пересчитывал бы дни всех месяцев диапазона на каждом рендере.\r\n *\r\n * Высота задаётся через `className` (по умолчанию 420px). Выбор дат — те же `mode`,\r\n * `selected`, `onSelect`, что и у Calendar.\r\n */\r\nexport const CalendarScroll = ({\r\n\tclassName,\r\n\tclassNames,\r\n\tlocale = enUS,\r\n\tweekStartsOn,\r\n\tstartMonth,\r\n\tendMonth,\r\n\tdefaultMonth,\r\n\tcomponents,\r\n\t...props\r\n}: CalendarScrollProps) => {\r\n\tconst styles = calendarScrollStyles();\r\n\tconst scrollerRef = useRef<HTMLDivElement>(null);\r\n\tconst frameRef = useRef(0);\r\n\r\n\tconst startKey = toKey(startMonth ?? new Date(new Date().getFullYear() - DEFAULT_YEARS_BACK, 0, 1));\r\n\tconst endKey = toKey(endMonth ?? new Date(DEFAULT_END_YEAR, 11, 1));\r\n\tconst total = Math.max(endKey - startKey + 1, 1);\r\n\tconst [windowSizeLimit, setWindowSizeLimit] = useState(DEFAULT_WINDOW_SIZE);\r\n\tconst windowSize = Math.min(windowSizeLimit, total);\r\n\r\n\tconst getWindowStart = useCallback(\r\n\t\t(index: number) => clamp(index - BUFFER_BEFORE, 0, total - windowSize),\r\n\t\t[total, windowSize]\r\n\t);\r\n\r\n\tconst initialIndex = clamp(toKey(defaultMonth ?? new Date()) - startKey, 0, total - 1);\r\n\tconst [currentIndex, setCurrentIndex] = useState(initialIndex);\r\n\tconst [windowStart, setWindowStart] = useState(() => getWindowStart(initialIndex));\r\n\r\n\t// Первичная позиция и размер окна — до отрисовки, чтобы не было прыжка и пустоты\r\n\tuseLayoutEffect(() => {\r\n\t\tconst scroller = scrollerRef.current;\r\n\t\tif (!scroller) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst visibleMonths = Math.ceil(scroller.clientHeight / MONTH_HEIGHT) + 1;\r\n\t\tscroller.scrollTop = initialIndex * MONTH_HEIGHT;\r\n\t\tsetWindowSizeLimit(Math.max(DEFAULT_WINDOW_SIZE, visibleMonths + BUFFER_BEFORE));\r\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\r\n\t}, []);\r\n\r\n\tuseEffect(() => () => cancelAnimationFrame(frameRef.current), []);\r\n\r\n\tconst syncWithScroll = useCallback(() => {\r\n\t\tconst scroller = scrollerRef.current;\r\n\t\tif (!scroller) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst scrollTop = scroller.scrollTop;\r\n\t\tsetCurrentIndex(clamp(Math.round(scrollTop / MONTH_HEIGHT), 0, total - 1));\r\n\t\tsetWindowStart(getWindowStart(Math.floor(scrollTop / MONTH_HEIGHT)));\r\n\t}, [getWindowStart, total]);\r\n\r\n\tconst onScroll = useCallback(() => {\r\n\t\tif (frameRef.current) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tframeRef.current = requestAnimationFrame(() => {\r\n\t\t\tframeRef.current = 0;\r\n\t\t\tsyncWithScroll();\r\n\t\t});\r\n\t}, [syncWithScroll]);\r\n\r\n\tconst jumpTo = useCallback(\r\n\t\t(key: number) => {\r\n\t\t\tconst scroller = scrollerRef.current;\r\n\t\t\tif (!scroller) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tconst index = clamp(key - startKey, 0, total - 1);\r\n\t\t\tscroller.scrollTop = index * MONTH_HEIGHT;\r\n\t\t\tsetCurrentIndex(index);\r\n\t\t\tsetWindowStart(getWindowStart(index));\r\n\t\t},\r\n\t\t[getWindowStart, startKey, total]\r\n\t);\r\n\r\n\t// Смещение считаем от scrollTop, а не от state: он обновляется синхронно,\r\n\t// поэтому быстрые клики подряд не теряются до перерендера\r\n\tconst jumpBy = (delta: number) => {\r\n\t\tconst scroller = scrollerRef.current;\r\n\t\tif (scroller) {\r\n\t\t\tjumpTo(startKey + Math.round(scroller.scrollTop / MONTH_HEIGHT) + delta);\r\n\t\t}\r\n\t};\r\n\r\n\tconst current = fromKey(startKey + currentIndex);\r\n\tconst previous = fromKey(startKey + currentIndex - 1);\r\n\tconst next = fromKey(startKey + currentIndex + 1);\r\n\tconst isFirst = currentIndex === 0;\r\n\tconst isLast = currentIndex === total - 1;\r\n\r\n\tconst onMonthSelect = (event: ChangeEvent<HTMLSelectElement>) => {\r\n\t\tjumpTo(current.getFullYear() * 12 + Number(event.target.value));\r\n\t};\r\n\r\n\tconst onYearSelect = (event: ChangeEvent<HTMLSelectElement>) => {\r\n\t\tjumpTo(Number(event.target.value) * 12 + current.getMonth());\r\n\t};\r\n\r\n\t// DayPicker типизирует locale как Partial, но на деле это полноценная date-fns Locale\r\n\tconst dateFnsLocale = locale as Locale;\r\n\t// Подписи для a11y берём из тех же labels, что и DayPicker, чтобы переопределялись одним пропсом\r\n\tconst labels = props.labels;\r\n\r\n\tconst monthOptions: DropdownOption[] = useMemo(\r\n\t\t() =>\r\n\t\t\tArray.from({ length: 12 }, (_, month) => ({\r\n\t\t\t\tvalue: month,\r\n\t\t\t\tlabel: format(new Date(2000, month, 1), \"LLLL\", { locale: dateFnsLocale }),\r\n\t\t\t\tdisabled: false\r\n\t\t\t})),\r\n\t\t[dateFnsLocale]\r\n\t);\r\n\r\n\tconst weekdayNames = useMemo(() => {\r\n\t\tconst first = startOfWeek(new Date(), { locale: dateFnsLocale, weekStartsOn });\r\n\t\treturn Array.from({ length: 7 }, (_, day) => format(addDays(first, day), \"EEEEEE\", { locale: dateFnsLocale }));\r\n\t}, [dateFnsLocale, weekStartsOn]);\r\n\r\n\tconst yearOptions: DropdownOption[] = useMemo(() => {\r\n\t\tconst first = Math.floor(startKey / 12);\r\n\t\tconst last = Math.floor(endKey / 12);\r\n\t\treturn Array.from({ length: last - first + 1 }, (_, i) => ({\r\n\t\t\tvalue: first + i,\r\n\t\t\tlabel: String(first + i),\r\n\t\t\tdisabled: false\r\n\t\t}));\r\n\t}, [startKey, endKey]);\r\n\r\n\tconst classNamesMemoized: DayPickerProps[\"classNames\"] = useMemo(\r\n\t\t() => ({\r\n\t\t\tmonths: \"flex flex-col\",\r\n\t\t\tmonth: \"flex h-[280px] flex-col gap-1 pb-4\",\r\n\t\t\tmonth_caption: \"flex items-center px-2 capitalize\",\r\n\t\t\tcaption_label: \"select-none text-sm font-medium\",\r\n\t\t\tmonth_grid: \"w-full border-collapse\",\r\n\t\t\tweekdays: \"hidden\",\r\n\t\t\tweek: \"mt-1 flex h-9\",\r\n\t\t\tday: \"size-9 shrink-0 border-0 p-0\",\r\n\t\t\thidden: \"invisible\",\r\n\t\t\t...classNames\r\n\t\t}),\r\n\t\t[classNames]\r\n\t);\r\n\r\n\tconst componentsMemoized: DayPickerProps[\"components\"] = useMemo(\r\n\t\t() => ({ Months: CalendarScrollMonths, DayButton: CalendarScrollDayButton, ...components }),\r\n\t\t[components]\r\n\t);\r\n\r\n\tconst firstMonth = useMemo(() => fromKey(startKey), [startKey]);\r\n\tconst lastMonth = useMemo(() => fromKey(endKey), [endKey]);\r\n\tconst windowMonth = useMemo(() => fromKey(startKey + windowStart), [startKey, windowStart]);\r\n\r\n\treturn (\r\n\t\t<div className={styles.root({ className })}>\r\n\t\t\t<div className={styles.header()}>\r\n\t\t\t\t<div className={styles.nav()}>\r\n\t\t\t\t\t<CalendarPreviousMonthButton\r\n\t\t\t\t\t\taria-label={(labels?.labelPrevious ?? labelPrevious)(isFirst ? undefined : previous)}\r\n\t\t\t\t\t\tdisabled={isFirst}\r\n\t\t\t\t\t\tonClick={() => jumpBy(-1)}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<CalendarChevron orientation=\"left\" />\r\n\t\t\t\t\t</CalendarPreviousMonthButton>\r\n\t\t\t\t\t<div className={styles.dropdowns()}>\r\n\t\t\t\t\t\t<CalendarDropdown\r\n\t\t\t\t\t\t\taria-label={(labels?.labelMonthDropdown ?? labelMonthDropdown)()}\r\n\t\t\t\t\t\t\toptions={monthOptions}\r\n\t\t\t\t\t\t\tvalue={current.getMonth()}\r\n\t\t\t\t\t\t\tonChange={onMonthSelect}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t<CalendarDropdown\r\n\t\t\t\t\t\t\taria-label={(labels?.labelYearDropdown ?? labelYearDropdown)()}\r\n\t\t\t\t\t\t\toptions={yearOptions}\r\n\t\t\t\t\t\t\tvalue={current.getFullYear()}\r\n\t\t\t\t\t\t\tonChange={onYearSelect}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<CalendarNextMonthButton\r\n\t\t\t\t\t\taria-label={(labels?.labelNext ?? labelNext)(isLast ? undefined : next)}\r\n\t\t\t\t\t\tdisabled={isLast}\r\n\t\t\t\t\t\tonClick={() => jumpBy(1)}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<CalendarChevron orientation=\"right\" />\r\n\t\t\t\t\t</CalendarNextMonthButton>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div className={styles.weekdays()} aria-hidden=\"true\">\r\n\t\t\t\t\t{weekdayNames.map((name, index) => (\r\n\t\t\t\t\t\t<span key={index} className={styles.weekday()}>\r\n\t\t\t\t\t\t\t{name}\r\n\t\t\t\t\t\t</span>\r\n\t\t\t\t\t))}\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t\t<div ref={scrollerRef} className={styles.scroller()} data-calendar-scroll-scroller=\"\" onScroll={onScroll}>\r\n\t\t\t\t<div style={{ height: total * MONTH_HEIGHT }}>\r\n\t\t\t\t\t<div className={styles.window()} style={{ top: windowStart * MONTH_HEIGHT }}>\r\n\t\t\t\t\t\t<DayPicker\r\n\t\t\t\t\t\t\t{...props}\r\n\t\t\t\t\t\t\tlocale={locale}\r\n\t\t\t\t\t\t\tweekStartsOn={weekStartsOn}\r\n\t\t\t\t\t\t\tstartMonth={firstMonth}\r\n\t\t\t\t\t\t\tendMonth={lastMonth}\r\n\t\t\t\t\t\t\tmonth={windowMonth}\r\n\t\t\t\t\t\t\tnumberOfMonths={windowSize}\r\n\t\t\t\t\t\t\tcaptionLayout=\"label\"\r\n\t\t\t\t\t\t\tfixedWeeks\r\n\t\t\t\t\t\t\thideNavigation\r\n\t\t\t\t\t\t\tshowOutsideDays={false}\r\n\t\t\t\t\t\t\tclassNames={classNamesMemoized}\r\n\t\t\t\t\t\t\tcomponents={componentsMemoized}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nCalendarScroll.displayName = \"CalendarScroll\";\r\n"],"names":["MONTH_HEIGHT","DEFAULT_WINDOW_SIZE","BUFFER_BEFORE","DEFAULT_YEARS_BACK","DEFAULT_END_YEAR","calendarScrollStyles","tv","toKey","date","fromKey","key","clamp","value","min","max","CalendarScrollDayButton","modifiers","props","anchorRef","useRef","isFirstRun","useEffect","isMount","button","scroller","jsx","CalendarDayButton","CalendarScrollMonths","children","Months","Children","child","isValidElement","cloneElement","CalendarScroll","className","classNames","locale","enUS","weekStartsOn","startMonth","endMonth","defaultMonth","components","styles","scrollerRef","frameRef","startKey","endKey","total","windowSizeLimit","setWindowSizeLimit","useState","windowSize","getWindowStart","useCallback","index","initialIndex","currentIndex","setCurrentIndex","windowStart","setWindowStart","useLayoutEffect","visibleMonths","syncWithScroll","scrollTop","onScroll","jumpTo","jumpBy","delta","current","previous","next","isFirst","isLast","onMonthSelect","event","onYearSelect","dateFnsLocale","labels","monthOptions","useMemo","_","month","format","weekdayNames","first","startOfWeek","day","addDays","yearOptions","last","i","classNamesMemoized","componentsMemoized","firstMonth","lastMonth","windowMonth","jsxs","CalendarPreviousMonthButton","labelPrevious","CalendarChevron","CalendarDropdown","labelMonthDropdown","labelYearDropdown","CalendarNextMonthButton","labelNext","name","DayPicker"],"mappings":"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"}
@@ -1,96 +1,15 @@
1
- import { jsx as a } from "react/jsx-runtime";
2
- import { useMemo as l } from "react";
1
+ import { jsx as s } from "react/jsx-runtime";
2
+ import { useMemo as r } from "react";
3
3
  import { T as n } from "../index-BVqs-uqP.js";
4
- import { C as w } from "../chevron-left-D6FtXcdU.js";
5
- import { C } from "../chevron-right-D3juAhA-.js";
6
- import { C as N } from "../chevron-up-UDiVTHo0.js";
7
- import { C as k } from "../chevron-down-CAOItu8X.js";
8
- import { i as _, R as B, q as D, w as M } from "../DayPicker-4hE1QEvO.js";
9
- import { B as u } from "../Button-_qdP4hSf.js";
10
- const s = n({
11
- base: "size-4"
12
- }), m = ({ className: e, orientation: t, ...o }) => t === "left" ? /* @__PURE__ */ a(w, { className: s({ className: e }), ...o }) : t === "right" ? /* @__PURE__ */ a(C, { className: s({ className: e }), ...o }) : t === "up" ? /* @__PURE__ */ a(N, { className: s({ className: e }), ...o }) : /* @__PURE__ */ a(k, { className: s({ className: e }), ...o });
13
- m.displayName = "CalendarChevron";
14
- const R = n({
15
- base: [
16
- "inline-flex items-center justify-center gap-2",
17
- "aspect-square h-9 shrink-0 p-2.5",
18
- "text-xs font-medium text-foreground transition-all",
19
- "cursor-pointer select-none",
20
- "disabled:pointer-events-none disabled:text-muted-foreground disabled:opacity-50",
21
- "focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-primary",
22
- "focus-visible:rounded-md"
23
- ],
24
- variants: {
25
- selected: {
26
- true: "bg-primary text-primary-foreground"
27
- },
28
- range_middle: {
29
- true: "bg-secondary-bg-hover text-card-foreground"
30
- },
31
- outside: {
32
- true: "text-muted-foreground"
33
- },
34
- today: {
35
- true: "relative after:absolute after:bottom-1 after:left-1/2 after:h-1 after:w-1 after:-translate-x-1/2 after:rounded-full after:bg-primary"
36
- }
37
- },
38
- compoundVariants: [
39
- {
40
- selected: !1,
41
- className: "hover:bg-secondary-bg-hover"
42
- },
43
- {
44
- selected: !0,
45
- range_start: !1,
46
- range_end: !1,
47
- range_middle: !1,
48
- className: "rounded-md"
49
- },
50
- {
51
- selected: !0,
52
- range_start: !0,
53
- className: "rounded-l-md"
54
- },
55
- {
56
- selected: !0,
57
- range_end: !0,
58
- className: "rounded-r-md"
59
- },
60
- {
61
- today: !0,
62
- selected: !0,
63
- range_middle: !1,
64
- className: "after:bg-primary-foreground"
65
- },
66
- {
67
- outside: !0,
68
- selected: !1,
69
- className: "hover:text-primary-fg"
70
- }
71
- ]
72
- }), c = ({ modifiers: e, className: t, ...o }) => /* @__PURE__ */ a(
73
- _,
74
- {
75
- modifiers: e,
76
- className: R({ ...e, className: t }),
77
- ...o,
78
- disabled: e.disabled
79
- }
80
- );
81
- c.displayName = "CalendarDayButton";
82
- const f = ({ className: e, ...t }) => /* @__PURE__ */ a(u, { ...t, variant: "ghost", className: e });
83
- f.displayName = "CalendarNextMonthButton";
84
- const p = ({ className: e, ...t }) => /* @__PURE__ */ a(u, { ...t, variant: "ghost", className: e });
85
- p.displayName = "CalendarPreviousMonthButton";
86
- const j = n({
4
+ import { R as y, W as w, k as h, h as x, C as k, c as C, j as g, b as D, D as v } from "../CalendarPreviousMonthButton-CHMp8bkd.js";
5
+ const N = n({
87
6
  base: [
88
7
  "w-fit rounded-md border bg-background",
89
8
  "border border-solid border-secondary-border bg-secondary-bg shadow-soft-sm"
90
9
  ]
91
- }), b = ({ className: e, ...t }) => /* @__PURE__ */ a(B, { ...t, className: j({ className: e }) });
92
- b.displayName = "CalendarRoot";
93
- const S = n({
10
+ }), c = ({ className: o, ...t }) => /* @__PURE__ */ s(y, { ...t, className: N({ className: o }) });
11
+ c.displayName = "CalendarRoot";
12
+ const M = n({
94
13
  base: [
95
14
  "inline-flex items-center justify-center gap-2",
96
15
  "transition-all",
@@ -98,9 +17,9 @@ const S = n({
98
17
  "w-9 shrink-0 rounded p-0",
99
18
  "opacity-70"
100
19
  ]
101
- }), g = ({ className: e, ...t }) => /* @__PURE__ */ a(D, { className: S({ className: e }), ...t });
102
- g.displayName = "CalendarWeekDay";
103
- const z = n({
20
+ }), i = ({ className: o, ...t }) => /* @__PURE__ */ s(w, { className: M({ className: o }), ...t });
21
+ i.displayName = "CalendarWeekDay";
22
+ const _ = n({
104
23
  base: [
105
24
  "bg-background p-3 [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent"
106
25
  ],
@@ -110,77 +29,62 @@ const z = n({
110
29
  nav: "absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1",
111
30
  month_caption: "flex h-9 w-full items-center justify-center px-2 capitalize",
112
31
  dropdowns: "flex h-9 w-full items-center justify-center gap-1.5 text-sm font-medium",
113
- dropdown_root: [
114
- "has-focus:border-ring has-focus:ring-ring/50 has-focus:ring-[3px]",
115
- "shadow-xs relative rounded-md border border-input"
116
- ],
117
- dropdown: "absolute inset-0 bg-background opacity-0",
118
32
  table: "w-full border-collapse",
119
33
  weekdays: "flex",
120
34
  week: "mt-1 flex",
121
35
  hidden: "invisible",
122
36
  day: "border-0 p-0"
123
37
  }
124
- }), W = n({
125
- base: "select-none font-medium",
126
- variants: {
127
- layout: {
128
- label: "text-sm",
129
- dropdown: "flex h-8 items-center gap-1 rounded-md pl-2 pr-1 text-sm [&>svg]:size-3.5 [&>svg]:text-muted-foreground"
130
- }
131
- },
132
- defaultVariants: {
133
- layout: "label"
134
- }
135
- }), P = ({
136
- className: e,
38
+ }), j = n({
39
+ base: "select-none text-sm font-medium"
40
+ }), B = ({
41
+ className: o,
137
42
  classNames: t,
138
- showOutsideDays: o = !0,
43
+ showOutsideDays: m = !0,
139
44
  captionLayout: d = "dropdown",
140
- components: i,
141
- ...y
45
+ components: l,
46
+ ...p
142
47
  }) => {
143
- const r = z(), h = l(() => new Date(2100, 11, 31), []), x = l(() => ({
144
- months: r.months(),
145
- month: r.month(),
146
- nav: r.nav(),
147
- month_caption: r.month_caption(),
148
- dropdowns: r.dropdowns(),
149
- dropdown_root: r.dropdown_root(),
150
- dropdown: r.dropdown(),
151
- caption_label: W({
152
- layout: d === "label" ? d : "dropdown"
153
- }),
154
- table: r.table(),
155
- weekdays: r.weekdays(),
156
- week: r.week(),
157
- hidden: r.hidden(),
158
- day: r.day(),
48
+ const e = _(), a = h(), u = r(() => new Date(2100, 11, 31), []), b = r(() => ({
49
+ months: e.months(),
50
+ month: e.month(),
51
+ nav: e.nav(),
52
+ month_caption: e.month_caption(),
53
+ dropdowns: e.dropdowns(),
54
+ dropdown_root: a.root(),
55
+ dropdown: a.select(),
56
+ caption_label: d === "label" ? j() : a.label(),
57
+ table: e.table(),
58
+ weekdays: e.weekdays(),
59
+ week: e.week(),
60
+ hidden: e.hidden(),
61
+ day: e.day(),
159
62
  ...t
160
- }), [t]), v = l(() => ({
161
- Root: b,
162
- Chevron: m,
163
- DayButton: c,
164
- Weekday: g,
165
- PreviousMonthButton: p,
166
- NextMonthButton: f,
167
- ...i
168
- }), [i]);
169
- return /* @__PURE__ */ a(
170
- M,
63
+ }), [t]), f = r(() => ({
64
+ Root: c,
65
+ Chevron: D,
66
+ DayButton: g,
67
+ Dropdown: C,
68
+ Weekday: i,
69
+ PreviousMonthButton: k,
70
+ NextMonthButton: x,
71
+ ...l
72
+ }), [l]);
73
+ return /* @__PURE__ */ s(
74
+ v,
171
75
  {
172
- endMonth: h,
173
- showOutsideDays: o,
174
- className: r.base({ className: e }),
76
+ endMonth: u,
77
+ showOutsideDays: m,
78
+ className: e.base({ className: o }),
175
79
  captionLayout: d,
176
- classNames: x,
177
- components: v,
178
- ...y
80
+ classNames: b,
81
+ components: f,
82
+ ...p
179
83
  }
180
84
  );
181
85
  };
182
- P.displayName = "Calendar";
86
+ B.displayName = "Calendar";
183
87
  export {
184
- P as Calendar
88
+ B as Calendar
185
89
  };
186
90
  //# sourceMappingURL=calendar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"calendar.js","sources":["../../src/components/calendar/components/calendar-chevron/CalendarChevron.tsx","../../src/components/calendar/components/calendar-day-button/CalendarDayButton.tsx","../../src/components/calendar/components/calendar-next-month-button/CalendarNextMonthButton.tsx","../../src/components/calendar/components/calendar-previous-month-button/CalendarPreviousMonthButton.tsx","../../src/components/calendar/components/calendar-root/CalendarRoot.tsx","../../src/components/calendar/components/calendar-week-day/CalendarWeekDay.tsx","../../src/components/calendar/Calendar.tsx"],"sourcesContent":["import { ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon } from \"lucide-react\";\r\nimport { ChevronProps } from \"react-day-picker\";\r\nimport { tv } from \"tailwind-variants\";\r\n\r\nconst calendarChevronStyles = tv({\r\n\tbase: \"size-4\"\r\n});\r\n\r\n/**\r\n * Компонент для отображения стрелок навигации в Calendar\r\n *\r\n * @param className - Дополнительные CSS классы\r\n * @param orientation - Направление стрелки ('left' | 'right' | 'up' | 'down')\r\n * @param props - Остальные пропсы от react-day-picker Chevron\r\n */\r\nexport const CalendarChevron = ({ className, orientation, ...props }: ChevronProps): React.JSX.Element => {\r\n\tif (orientation === \"left\") {\r\n\t\treturn <ChevronLeftIcon className={calendarChevronStyles({ className })} {...props} />;\r\n\t}\r\n\tif (orientation === \"right\") {\r\n\t\treturn <ChevronRightIcon className={calendarChevronStyles({ className })} {...props} />;\r\n\t}\r\n\tif (orientation === \"up\") {\r\n\t\treturn <ChevronUpIcon className={calendarChevronStyles({ className })} {...props} />;\r\n\t}\r\n\treturn <ChevronDownIcon className={calendarChevronStyles({ className })} {...props} />;\r\n};\r\n\r\nCalendarChevron.displayName = \"CalendarChevron\";\r\n","import { tv } from \"tailwind-variants\";\r\nimport { DayButton, DayButtonProps } from \"react-day-picker\";\r\n\r\nconst calendarDayButtonStyles = tv({\r\n\tbase: [\r\n\t\t\"inline-flex items-center justify-center gap-2\",\r\n\t\t\"aspect-square h-9 shrink-0 p-2.5\",\r\n\t\t\"text-xs font-medium text-foreground transition-all\",\r\n\t\t\"cursor-pointer select-none\",\r\n\t\t\"disabled:pointer-events-none disabled:text-muted-foreground disabled:opacity-50\",\r\n\t\t\"focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-primary\",\r\n\t\t\"focus-visible:rounded-md\"\r\n\t],\r\n\tvariants: {\r\n\t\tselected: {\r\n\t\t\ttrue: \"bg-primary text-primary-foreground\"\r\n\t\t},\r\n\t\trange_middle: {\r\n\t\t\ttrue: \"bg-secondary-bg-hover text-card-foreground\"\r\n\t\t},\r\n\t\toutside: {\r\n\t\t\ttrue: \"text-muted-foreground\"\r\n\t\t},\r\n\t\ttoday: {\r\n\t\t\ttrue: \"relative after:absolute after:bottom-1 after:left-1/2 after:h-1 after:w-1 after:-translate-x-1/2 after:rounded-full after:bg-primary\"\r\n\t\t}\r\n\t},\r\n\tcompoundVariants: [\r\n\t\t{\r\n\t\t\tselected: false,\r\n\t\t\tclassName: \"hover:bg-secondary-bg-hover\"\r\n\t\t},\r\n\t\t{\r\n\t\t\tselected: true,\r\n\t\t\trange_start: false,\r\n\t\t\trange_end: false,\r\n\t\t\trange_middle: false,\r\n\t\t\tclassName: \"rounded-md\"\r\n\t\t},\r\n\t\t{\r\n\t\t\tselected: true,\r\n\t\t\trange_start: true,\r\n\t\t\tclassName: \"rounded-l-md\"\r\n\t\t},\r\n\t\t{\r\n\t\t\tselected: true,\r\n\t\t\trange_end: true,\r\n\t\t\tclassName: \"rounded-r-md\"\r\n\t\t},\r\n\t\t{\r\n\t\t\ttoday: true,\r\n\t\t\tselected: true,\r\n\t\t\trange_middle: false,\r\n\t\t\tclassName: \"after:bg-primary-foreground\"\r\n\t\t},\r\n\t\t{\r\n\t\t\toutside: true,\r\n\t\t\tselected: false,\r\n\t\t\tclassName: \"hover:text-primary-fg\"\r\n\t\t}\r\n\t]\r\n});\r\n\r\nexport interface ModifiersRdp {\r\n\tselected?: boolean;\r\n\tdisabled?: boolean;\r\n\thidden?: boolean;\r\n\ttoday?: boolean;\r\n\tfocused?: boolean;\r\n\toutside?: boolean;\r\n\r\n\trange_start?: boolean;\r\n\trange_end?: boolean;\r\n\trange_middle?: boolean;\r\n}\r\n\r\nexport type CalendarDayButtonProps = DayButtonProps & { modifiers: ModifiersRdp };\r\n\r\n/**\r\n * Кнопка для отображения дня в Calendar\r\n *\r\n * @param modifiers - Модификаторы состояния дня (selected, disabled, today, etc.)\r\n * @param className - Дополнительные CSS классы\r\n * @param props - Пропсы от react-day-picker DayButton\r\n */\r\nexport const CalendarDayButton = ({ modifiers, className, ...props }: CalendarDayButtonProps) => {\r\n\treturn (\r\n\t\t<DayButton\r\n\t\t\tmodifiers={modifiers}\r\n\t\t\tclassName={calendarDayButtonStyles({ ...modifiers, className })}\r\n\t\t\t{...props}\r\n\t\t\tdisabled={modifiers.disabled}\r\n\t\t/>\r\n\t);\r\n};\r\n\r\nCalendarDayButton.displayName = \"CalendarDayButton\";\r\n","import { Button } from \"@/components/button\";\r\nimport { NextMonthButtonProps } from \"react-day-picker\";\r\n\r\n/**\r\n * Кнопка для перехода к следующему месяцу в Calendar, оборачивает компонент day-picker-chevron\r\n *\r\n * @param className - Дополнительные CSS классы\r\n * @param props - Пропсы от react-day-picker NextMonthButton\r\n */\r\nexport const CalendarNextMonthButton = ({ className, ...props }: NextMonthButtonProps) => {\r\n\treturn <Button {...props} variant=\"ghost\" className={className} />;\r\n};\r\n\r\nCalendarNextMonthButton.displayName = \"CalendarNextMonthButton\";\r\n","import { Button } from \"@/components/button\";\r\nimport { PreviousMonthButtonProps } from \"react-day-picker\";\r\n\r\n/**\r\n * Кнопка для перехода к предыдущему месяцу в Calendar, оборачивает компонент day-picker-chevron\r\n *\r\n * @param className - Дополнительные CSS классы\r\n * @param props - Пропсы от react-day-picker PreviousMonthButton\r\n */\r\nexport const CalendarPreviousMonthButton = ({ className, ...props }: PreviousMonthButtonProps) => {\r\n\treturn <Button {...props} variant=\"ghost\" className={className} />;\r\n};\r\n\r\nCalendarPreviousMonthButton.displayName = \"CalendarPreviousMonthButton\";\r\n","import { Root, RootProps } from \"react-day-picker\";\r\nimport { tv } from \"tailwind-variants\";\r\n\r\nconst calendarRootStyles = tv({\r\n\tbase: [\r\n\t\t\"w-fit rounded-md border bg-background\",\r\n\t\t\"border border-solid border-secondary-border bg-secondary-bg shadow-soft-sm\"\r\n\t]\r\n});\r\n\r\n/**\r\n * Корневой контейнер для Calendar\r\n *\r\n * @param className - Дополнительные CSS классы\r\n * @param props - Пропсы от react-day-picker Root\r\n */\r\nexport const CalendarRoot = ({ className, ...props }: RootProps) => {\r\n\treturn <Root {...props} className={calendarRootStyles({ className })} />;\r\n};\r\n\r\nCalendarRoot.displayName = \"CalendarRoot\";\r\n","import { tv } from \"tailwind-variants\";\r\nimport { Weekday, WeekdayProps } from \"react-day-picker\";\r\n\r\nconst calendarWeekDayStyles = tv({\r\n\tbase: [\r\n\t\t\"inline-flex items-center justify-center gap-2\",\r\n\t\t\"transition-all\",\r\n\t\t\"text-xs font-medium text-muted-foreground\",\r\n\t\t\"w-9 shrink-0 rounded p-0\",\r\n\t\t\"opacity-70\"\r\n\t]\r\n});\r\n\r\n/**\r\n * Компонент для отображения дня недели в Calendar\r\n *\r\n * @param className - Дополнительные CSS классы\r\n * @param props - Пропсы от react-day-picker Weekday\r\n */\r\nexport const CalendarWeekDay = ({ className, ...props }: WeekdayProps) => {\r\n\treturn <Weekday className={calendarWeekDayStyles({ className })} {...props}></Weekday>;\r\n};\r\n\r\nCalendarWeekDay.displayName = \"CalendarWeekDay\";\r\n","import { useMemo } from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { CalendarChevron } from \"./components/calendar-chevron/CalendarChevron\";\r\nimport { CalendarDayButton } from \"./components/calendar-day-button/CalendarDayButton\";\r\nimport { CalendarNextMonthButton } from \"./components/calendar-next-month-button/CalendarNextMonthButton\";\r\nimport { CalendarPreviousMonthButton } from \"./components/calendar-previous-month-button/CalendarPreviousMonthButton\";\r\nimport { CalendarRoot } from \"./components/calendar-root/CalendarRoot\";\r\nimport { CalendarWeekDay } from \"./components/calendar-week-day/CalendarWeekDay\";\r\nimport { DayPicker, DayPickerProps } from \"react-day-picker\";\r\n\r\nconst CalendarStyles = tv({\r\n\tbase: [\r\n\t\t\"bg-background p-3 [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent\"\r\n\t],\r\n\tslots: {\r\n\t\tmonths: \"relative flex flex-col gap-4 md:flex-row\",\r\n\t\tmonth: \"flex w-full flex-col gap-4\",\r\n\t\tnav: \"absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1\",\r\n\t\tmonth_caption: \"flex h-9 w-full items-center justify-center px-2 capitalize\",\r\n\t\tdropdowns: \"flex h-9 w-full items-center justify-center gap-1.5 text-sm font-medium\",\r\n\t\tdropdown_root: [\r\n\t\t\t\"has-focus:border-ring has-focus:ring-ring/50 has-focus:ring-[3px]\",\r\n\t\t\t\"shadow-xs relative rounded-md border border-input\"\r\n\t\t],\r\n\t\tdropdown: \"absolute inset-0 bg-background opacity-0\",\r\n\t\ttable: \"w-full border-collapse\",\r\n\t\tweekdays: \"flex\",\r\n\t\tweek: \"mt-1 flex\",\r\n\t\thidden: \"invisible\",\r\n\t\tday: \"border-0 p-0\"\r\n\t}\r\n});\r\n\r\nconst captionLabelStyle = tv({\r\n\tbase: \"select-none font-medium\",\r\n\tvariants: {\r\n\t\tlayout: {\r\n\t\t\tlabel: \"text-sm\",\r\n\t\t\tdropdown:\r\n\t\t\t\t\"flex h-8 items-center gap-1 rounded-md pl-2 pr-1 text-sm [&>svg]:size-3.5 [&>svg]:text-muted-foreground\"\r\n\t\t}\r\n\t},\r\n\tdefaultVariants: {\r\n\t\tlayout: \"label\"\r\n\t}\r\n});\r\n\r\nexport type CalendarProps = DayPickerProps;\r\n\r\n/**\r\n * Calendar компонент для выбора дат\r\n *\r\n * Основан на [react-day-picker](https://Calendar.dev/) с кастомной стилизацией.\r\n * Поддерживает выбор одной даты, множественный выбор и выбор диапазона дат.\r\n *\r\n * @see https://ui-kit.ics-it.ru/?path=/docs/components-day-picker-Calendar--docs\r\n */\r\nexport const Calendar = ({\r\n\tclassName,\r\n\tclassNames,\r\n\tshowOutsideDays = true,\r\n\tcaptionLayout = \"dropdown\",\r\n\tcomponents,\r\n\t...props\r\n}: CalendarProps) => {\r\n\tconst styles = CalendarStyles();\r\n\r\n\t/**\r\n\t * По умолчанию react-day-picker ограничивает выбор даты:\r\n\t * - Минимум - текущий год минус 100 лет\r\n\t * - Максимум - последний месяц текущего года\r\n\t * Переопределяем это поведение, чтобы можно было выбирать даты до 2100 года.\r\n\t */\r\n\tconst endMonth = useMemo(() => {\r\n\t\treturn new Date(2100, 11, 31);\r\n\t}, []);\r\n\r\n\tconst classNamesMemoized: CalendarProps[\"classNames\"] = useMemo(() => {\r\n\t\treturn {\r\n\t\t\tmonths: styles.months(),\r\n\t\t\tmonth: styles.month(),\r\n\t\t\tnav: styles.nav(),\r\n\t\t\tmonth_caption: styles.month_caption(),\r\n\t\t\tdropdowns: styles.dropdowns(),\r\n\t\t\tdropdown_root: styles.dropdown_root(),\r\n\t\t\tdropdown: styles.dropdown(),\r\n\t\t\tcaption_label: captionLabelStyle({\r\n\t\t\t\tlayout: captionLayout === \"label\" ? captionLayout : \"dropdown\"\r\n\t\t\t}),\r\n\t\t\ttable: styles.table(),\r\n\t\t\tweekdays: styles.weekdays(),\r\n\t\t\tweek: styles.week(),\r\n\t\t\thidden: styles.hidden(),\r\n\t\t\tday: styles.day(),\r\n\t\t\t...classNames\r\n\t\t};\r\n\t}, [classNames]);\r\n\r\n\tconst componentsMemoized: CalendarProps[\"components\"] = useMemo(() => {\r\n\t\treturn {\r\n\t\t\tRoot: CalendarRoot,\r\n\t\t\tChevron: CalendarChevron,\r\n\t\t\tDayButton: CalendarDayButton,\r\n\t\t\tWeekday: CalendarWeekDay,\r\n\t\t\tPreviousMonthButton: CalendarPreviousMonthButton,\r\n\t\t\tNextMonthButton: CalendarNextMonthButton,\r\n\t\t\t...components\r\n\t\t};\r\n\t}, [components]);\r\n\r\n\treturn (\r\n\t\t<DayPicker\r\n\t\t\tendMonth={endMonth}\r\n\t\t\tshowOutsideDays={showOutsideDays}\r\n\t\t\tclassName={styles.base({ className })}\r\n\t\t\tcaptionLayout={captionLayout}\r\n\t\t\tclassNames={classNamesMemoized}\r\n\t\t\tcomponents={componentsMemoized}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t);\r\n};\r\n\r\nCalendar.displayName = \"Calendar\";\r\n"],"names":["calendarChevronStyles","tv","CalendarChevron","className","orientation","props","jsx","ChevronLeftIcon","ChevronRightIcon","ChevronUpIcon","ChevronDownIcon","calendarDayButtonStyles","CalendarDayButton","modifiers","DayButton","CalendarNextMonthButton","Button","CalendarPreviousMonthButton","calendarRootStyles","CalendarRoot","Root","calendarWeekDayStyles","CalendarWeekDay","Weekday","CalendarStyles","captionLabelStyle","Calendar","classNames","showOutsideDays","captionLayout","components","styles","endMonth","useMemo","classNamesMemoized","componentsMemoized","DayPicker"],"mappings":"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"}
1
+ {"version":3,"file":"calendar.js","sources":["../../src/components/calendar/components/calendar-root/CalendarRoot.tsx","../../src/components/calendar/components/calendar-week-day/CalendarWeekDay.tsx","../../src/components/calendar/Calendar.tsx"],"sourcesContent":["import { Root, RootProps } from \"react-day-picker\";\r\nimport { tv } from \"tailwind-variants\";\r\n\r\nconst calendarRootStyles = tv({\r\n\tbase: [\r\n\t\t\"w-fit rounded-md border bg-background\",\r\n\t\t\"border border-solid border-secondary-border bg-secondary-bg shadow-soft-sm\"\r\n\t]\r\n});\r\n\r\n/**\r\n * Корневой контейнер для Calendar\r\n *\r\n * @param className - Дополнительные CSS классы\r\n * @param props - Пропсы от react-day-picker Root\r\n */\r\nexport const CalendarRoot = ({ className, ...props }: RootProps) => {\r\n\treturn <Root {...props} className={calendarRootStyles({ className })} />;\r\n};\r\n\r\nCalendarRoot.displayName = \"CalendarRoot\";\r\n","import { tv } from \"tailwind-variants\";\r\nimport { Weekday, WeekdayProps } from \"react-day-picker\";\r\n\r\nconst calendarWeekDayStyles = tv({\r\n\tbase: [\r\n\t\t\"inline-flex items-center justify-center gap-2\",\r\n\t\t\"transition-all\",\r\n\t\t\"text-xs font-medium text-muted-foreground\",\r\n\t\t\"w-9 shrink-0 rounded p-0\",\r\n\t\t\"opacity-70\"\r\n\t]\r\n});\r\n\r\n/**\r\n * Компонент для отображения дня недели в Calendar\r\n *\r\n * @param className - Дополнительные CSS классы\r\n * @param props - Пропсы от react-day-picker Weekday\r\n */\r\nexport const CalendarWeekDay = ({ className, ...props }: WeekdayProps) => {\r\n\treturn <Weekday className={calendarWeekDayStyles({ className })} {...props}></Weekday>;\r\n};\r\n\r\nCalendarWeekDay.displayName = \"CalendarWeekDay\";\r\n","import { useMemo } from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { CalendarChevron } from \"./components/calendar-chevron/CalendarChevron\";\r\nimport { CalendarDayButton } from \"./components/calendar-day-button/CalendarDayButton\";\r\nimport { CalendarDropdown } from \"./components/calendar-dropdown/CalendarDropdown\";\r\nimport { CalendarNextMonthButton } from \"./components/calendar-next-month-button/CalendarNextMonthButton\";\r\nimport { CalendarPreviousMonthButton } from \"./components/calendar-previous-month-button/CalendarPreviousMonthButton\";\r\nimport { CalendarRoot } from \"./components/calendar-root/CalendarRoot\";\r\nimport { CalendarWeekDay } from \"./components/calendar-week-day/CalendarWeekDay\";\r\nimport { calendarDropdownStyles } from \"./styles\";\r\nimport { DayPicker, DayPickerProps } from \"react-day-picker\";\r\n\r\nconst CalendarStyles = tv({\r\n\tbase: [\r\n\t\t\"bg-background p-3 [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent\"\r\n\t],\r\n\tslots: {\r\n\t\tmonths: \"relative flex flex-col gap-4 md:flex-row\",\r\n\t\tmonth: \"flex w-full flex-col gap-4\",\r\n\t\tnav: \"absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1\",\r\n\t\tmonth_caption: \"flex h-9 w-full items-center justify-center px-2 capitalize\",\r\n\t\tdropdowns: \"flex h-9 w-full items-center justify-center gap-1.5 text-sm font-medium\",\r\n\t\ttable: \"w-full border-collapse\",\r\n\t\tweekdays: \"flex\",\r\n\t\tweek: \"mt-1 flex\",\r\n\t\thidden: \"invisible\",\r\n\t\tday: \"border-0 p-0\"\r\n\t}\r\n});\r\n\r\nconst captionLabelStyle = tv({\r\n\tbase: \"select-none text-sm font-medium\"\r\n});\r\n\r\nexport type CalendarProps = DayPickerProps;\r\n\r\n/**\r\n * Calendar компонент для выбора дат\r\n *\r\n * Основан на [react-day-picker](https://Calendar.dev/) с кастомной стилизацией.\r\n * Поддерживает выбор одной даты, множественный выбор и выбор диапазона дат.\r\n *\r\n * @see https://ui-kit.ics-it.ru/?path=/docs/components-day-picker-Calendar--docs\r\n */\r\nexport const Calendar = ({\r\n\tclassName,\r\n\tclassNames,\r\n\tshowOutsideDays = true,\r\n\tcaptionLayout = \"dropdown\",\r\n\tcomponents,\r\n\t...props\r\n}: CalendarProps) => {\r\n\tconst styles = CalendarStyles();\r\n\tconst dropdownStyles = calendarDropdownStyles();\r\n\r\n\t/**\r\n\t * По умолчанию react-day-picker ограничивает выбор даты:\r\n\t * - Минимум - текущий год минус 100 лет\r\n\t * - Максимум - последний месяц текущего года\r\n\t * Переопределяем это поведение, чтобы можно было выбирать даты до 2100 года.\r\n\t */\r\n\tconst endMonth = useMemo(() => {\r\n\t\treturn new Date(2100, 11, 31);\r\n\t}, []);\r\n\r\n\tconst classNamesMemoized: CalendarProps[\"classNames\"] = useMemo(() => {\r\n\t\treturn {\r\n\t\t\tmonths: styles.months(),\r\n\t\t\tmonth: styles.month(),\r\n\t\t\tnav: styles.nav(),\r\n\t\t\tmonth_caption: styles.month_caption(),\r\n\t\t\tdropdowns: styles.dropdowns(),\r\n\t\t\tdropdown_root: dropdownStyles.root(),\r\n\t\t\tdropdown: dropdownStyles.select(),\r\n\t\t\tcaption_label: captionLayout === \"label\" ? captionLabelStyle() : dropdownStyles.label(),\r\n\t\t\ttable: styles.table(),\r\n\t\t\tweekdays: styles.weekdays(),\r\n\t\t\tweek: styles.week(),\r\n\t\t\thidden: styles.hidden(),\r\n\t\t\tday: styles.day(),\r\n\t\t\t...classNames\r\n\t\t};\r\n\t}, [classNames]);\r\n\r\n\tconst componentsMemoized: CalendarProps[\"components\"] = useMemo(() => {\r\n\t\treturn {\r\n\t\t\tRoot: CalendarRoot,\r\n\t\t\tChevron: CalendarChevron,\r\n\t\t\tDayButton: CalendarDayButton,\r\n\t\t\tDropdown: CalendarDropdown,\r\n\t\t\tWeekday: CalendarWeekDay,\r\n\t\t\tPreviousMonthButton: CalendarPreviousMonthButton,\r\n\t\t\tNextMonthButton: CalendarNextMonthButton,\r\n\t\t\t...components\r\n\t\t};\r\n\t}, [components]);\r\n\r\n\treturn (\r\n\t\t<DayPicker\r\n\t\t\tendMonth={endMonth}\r\n\t\t\tshowOutsideDays={showOutsideDays}\r\n\t\t\tclassName={styles.base({ className })}\r\n\t\t\tcaptionLayout={captionLayout}\r\n\t\t\tclassNames={classNamesMemoized}\r\n\t\t\tcomponents={componentsMemoized}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t);\r\n};\r\n\r\nCalendar.displayName = \"Calendar\";\r\n"],"names":["calendarRootStyles","tv","CalendarRoot","className","props","jsx","Root","calendarWeekDayStyles","CalendarWeekDay","Weekday","CalendarStyles","captionLabelStyle","Calendar","classNames","showOutsideDays","captionLayout","components","styles","dropdownStyles","calendarDropdownStyles","endMonth","useMemo","classNamesMemoized","componentsMemoized","CalendarChevron","CalendarDayButton","CalendarDropdown","CalendarPreviousMonthButton","CalendarNextMonthButton","DayPicker"],"mappings":";;;;AAGA,MAAMA,IAAqBC,EAAG;AAAA,EAC7B,MAAM;AAAA,IACL;AAAA,IACA;AAAA,EAAA;AAEF,CAAC,GAQYC,IAAe,CAAC,EAAE,WAAAC,GAAW,GAAGC,QACrC,gBAAAC,EAACC,KAAM,GAAGF,GAAO,WAAWJ,EAAmB,EAAE,WAAAG,EAAW,CAAA,GAAG;AAGvED,EAAa,cAAc;ACjB3B,MAAMK,IAAwBN,EAAG;AAAA,EAChC,MAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEF,CAAC,GAQYO,IAAkB,CAAC,EAAE,WAAAL,GAAW,GAAGC,QACxC,gBAAAC,EAACI,KAAQ,WAAWF,EAAsB,EAAE,WAAAJ,EAAW,CAAA,GAAI,GAAGC,GAAO;AAG7EI,EAAgB,cAAc;ACX9B,MAAME,IAAiBT,EAAG;AAAA,EACzB,MAAM;AAAA,IACL;AAAA,EACD;AAAA,EACA,OAAO;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,KAAK;AAAA,IACL,eAAe;AAAA,IACf,WAAW;AAAA,IACX,OAAO;AAAA,IACP,UAAU;AAAA,IACV,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,KAAK;AAAA,EAAA;AAEP,CAAC,GAEKU,IAAoBV,EAAG;AAAA,EAC5B,MAAM;AACP,CAAC,GAYYW,IAAW,CAAC;AAAA,EACxB,WAAAT;AAAA,EACA,YAAAU;AAAA,EACA,iBAAAC,IAAkB;AAAA,EAClB,eAAAC,IAAgB;AAAA,EAChB,YAAAC;AAAA,EACA,GAAGZ;AACJ,MAAqB;AACpB,QAAMa,IAASP,EAAe,GACxBQ,IAAiBC,EAAuB,GAQxCC,IAAWC,EAAQ,MACjB,IAAI,KAAK,MAAM,IAAI,EAAE,GAC1B,EAAE,GAECC,IAAkDD,EAAQ,OACxD;AAAA,IACN,QAAQJ,EAAO,OAAO;AAAA,IACtB,OAAOA,EAAO,MAAM;AAAA,IACpB,KAAKA,EAAO,IAAI;AAAA,IAChB,eAAeA,EAAO,cAAc;AAAA,IACpC,WAAWA,EAAO,UAAU;AAAA,IAC5B,eAAeC,EAAe,KAAK;AAAA,IACnC,UAAUA,EAAe,OAAO;AAAA,IAChC,eAAeH,MAAkB,UAAUJ,EAAkB,IAAIO,EAAe,MAAM;AAAA,IACtF,OAAOD,EAAO,MAAM;AAAA,IACpB,UAAUA,EAAO,SAAS;AAAA,IAC1B,MAAMA,EAAO,KAAK;AAAA,IAClB,QAAQA,EAAO,OAAO;AAAA,IACtB,KAAKA,EAAO,IAAI;AAAA,IAChB,GAAGJ;AAAA,EACJ,IACE,CAACA,CAAU,CAAC,GAETU,IAAkDF,EAAQ,OACxD;AAAA,IACN,MAAMnB;AAAA,IACN,SAASsB;AAAA,IACT,WAAWC;AAAA,IACX,UAAUC;AAAA,IACV,SAASlB;AAAA,IACT,qBAAqBmB;AAAA,IACrB,iBAAiBC;AAAA,IACjB,GAAGZ;AAAA,EACJ,IACE,CAACA,CAAU,CAAC;AAGd,SAAA,gBAAAX;AAAA,IAACwB;AAAA,IAAA;AAAA,MACA,UAAAT;AAAA,MACA,iBAAAN;AAAA,MACA,WAAWG,EAAO,KAAK,EAAE,WAAAd,GAAW;AAAA,MACpC,eAAAY;AAAA,MACA,YAAYO;AAAA,MACZ,YAAYC;AAAA,MACX,GAAGnB;AAAA,IAAA;AAAA,EACL;AAEF;AAEAQ,EAAS,cAAc;"}
@@ -1,4 +1,4 @@
1
- import { C as o, a, c as s } from "../CheckboxField-Ca48ZYoX.js";
1
+ import { C as o, a, c as s } from "../CheckboxField-xDqHgXHh.js";
2
2
  export {
3
3
  o as Checkbox,
4
4
  a as CheckboxField,
@@ -1,4 +1,4 @@
1
- import { C as o, a as n, e as s, j as C, f as d, b as t, g as r, c as e, d as i, i as p, h as u } from "../Command-CsW4aK7M.js";
1
+ import { C as o, a as n, e as s, j as C, f as d, b as t, g as r, c as e, d as i, i as p, h as u } from "../Command-WsAKNQrY.js";
2
2
  export {
3
3
  o as Command,
4
4
  n as CommandDialog,
@@ -19,8 +19,7 @@ declare const DialogContent: React.ForwardRefExoticComponent<Omit<DialogPrimitiv
19
19
  overlayType?: BackgroundProps["type"];
20
20
  showCloseButton?: boolean;
21
21
  /**
22
- * Контейнер для портала. Если не указан, используется хук usePortalContainer
23
- * для поиска PortalContainer
22
+ * Контейнер для портала. Если не указан, портал рендерится в document.body
24
23
  */
25
24
  portalContainer?: HTMLElement;
26
25
  } & React.RefAttributes<HTMLDivElement>>;
@@ -37,8 +36,7 @@ export declare const ModalContent: React.ForwardRefExoticComponent<Omit<DialogPr
37
36
  overlayType?: BackgroundProps["type"];
38
37
  showCloseButton?: boolean;
39
38
  /**
40
- * Контейнер для портала. Если не указан, используется хук usePortalContainer
41
- * для поиска PortalContainer
39
+ * Контейнер для портала. Если не указан, портал рендерится в document.body
42
40
  */
43
41
  portalContainer?: HTMLElement;
44
42
  } & React.RefAttributes<HTMLDivElement>>;
@@ -1,8 +1,8 @@
1
- import { D as s, a as i } from "../Dialog-BT_775Iz.js";
2
- import { b as y, c as B, d as C, e as h, f as x, g as j, h as u, i as v, j as O, M as P, k as R, l as _, m as b, n as k, o as q, p as w, q as N, r as z, s as A, t as E } from "../Dialog-BT_775Iz.js";
1
+ import { D as s, a as i } from "../Dialog-i_Y-phdM.js";
2
+ import { b as y, c as B, d as C, e as h, f as x, g as j, h as u, i as v, j as O, M as P, k as R, l as _, m as b, n as k, o as q, p as w, q as N, r as z, s as A, t as E } from "../Dialog-i_Y-phdM.js";
3
3
  import { jsx as a } from "react/jsx-runtime";
4
4
  import d from "react";
5
- import { F as g, B as m } from "../FormFooterTemplate-BIwnBQhL.js";
5
+ import { F as g, B as m } from "../FormFooterTemplate-CHlas_Pp.js";
6
6
  const o = d.forwardRef(
7
7
  ({ title: e, description: l, ...r }, t) => /* @__PURE__ */ a(
8
8
  m,
@@ -5,8 +5,7 @@ declare const DrawerContent: React.ForwardRefExoticComponent<Omit<Omit< DialogCo
5
5
  overlayBlur?: OverlayProps["blur"];
6
6
  overlayType?: OverlayProps["type"];
7
7
  /**
8
- * Контейнер для портала. Если не указан, используется хук usePortalContainer
9
- * для поиска PortalContainer
8
+ * Контейнер для портала. Если не указан, портал рендерится в document.body
10
9
  */
11
10
  portalContainer?: HTMLElement;
12
11
  /**