snapflow-ui-kit 1.0.0 → 1.0.1

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.
@@ -1,2 +1,3 @@
1
+ import { ElementType } from 'react';
1
2
  import { ButtonProps } from './Button.types';
2
- export declare const Button: (props: ButtonProps) => import("react/jsx-runtime").JSX.Element;
3
+ export declare const Button: <T extends ElementType = "button">(props: ButtonProps<T>) => import("react/jsx-runtime").JSX.Element;
@@ -1,14 +1,10 @@
1
- import { ComponentPropsWithoutRef, ReactNode } from 'react';
1
+ import { ComponentPropsWithoutRef, ElementType, ReactNode } from 'react';
2
2
  export type ButtonVariant = 'primary' | 'secondary' | 'outlined' | 'text';
3
3
  type CommonProps = {
4
4
  variant?: ButtonVariant;
5
5
  icon?: ReactNode;
6
6
  };
7
- type AsButtonProps = {
8
- asLink?: false;
9
- } & CommonProps & ComponentPropsWithoutRef<'button'>;
10
- type AsLinkProps = {
11
- asLink: true;
12
- } & CommonProps & ComponentPropsWithoutRef<'a'>;
13
- export type ButtonProps = AsButtonProps | AsLinkProps;
7
+ export type ButtonProps<T extends ElementType = 'button'> = {
8
+ as?: T;
9
+ } & CommonProps & Omit<ComponentPropsWithoutRef<T>, 'as'>;
14
10
  export {};
@@ -4,4 +4,4 @@ export declare const Textarea: import("react").ForwardRefExoticComponent<{
4
4
  minHeight?: number;
5
5
  value?: string;
6
6
  onChange?: (e: import("react").ChangeEvent<HTMLTextAreaElement>) => void;
7
- } & Omit<Omit<import("react").DetailedHTMLProps<import("react").TextareaHTMLAttributes<HTMLTextAreaElement>, HTMLTextAreaElement>, "ref">, "value" | "defaultValue" | "onChange"> & import("react").RefAttributes<HTMLTextAreaElement>>;
7
+ } & Omit<Omit<import("react").DetailedHTMLProps<import("react").TextareaHTMLAttributes<HTMLTextAreaElement>, HTMLTextAreaElement>, "ref">, "defaultValue" | "value" | "onChange"> & import("react").RefAttributes<HTMLTextAreaElement>>;
package/dist/index.js CHANGED
@@ -1,36 +1,28 @@
1
- import D, { clsx as u } from "clsx";
1
+ import D, { clsx as m } from "clsx";
2
2
  import { clsx as Pn } from "clsx";
3
3
  import nt from "simplebar-react";
4
4
  import { default as zn } from "simplebar-react";
5
- import { jsxs as i, jsx as a, Fragment as ot } from "react/jsx-runtime";
5
+ import { jsxs as d, jsx as a, Fragment as ot } from "react/jsx-runtime";
6
6
  import { E as at, a as st, C as J, A as rt, b as ct } from "./CloseIcon-BASungOx.js";
7
- import { forwardRef as K, useId as Q, useState as L, useEffect as G, useMemo as F, useRef as U } from "react";
7
+ import { forwardRef as K, useId as Q, useState as j, useEffect as G, useMemo as F, useRef as U } from "react";
8
8
  import { DayPicker as H } from "react-day-picker";
9
- import { parse as O, isValid as P, format as R } from "date-fns";
10
- import { toast as j } from "react-hot-toast";
11
- const lt = "_button_dqki1_1", it = "_primary_dqki1_25", dt = "_secondary_dqki1_48", _t = "_outlined_dqki1_71", pt = "_text_dqki1_97", ut = "_icon_dqki1_117", $ = {
9
+ import { parse as q, isValid as O, format as P } from "date-fns";
10
+ import { toast as T } from "react-hot-toast";
11
+ const lt = "_button_dqki1_1", it = "_primary_dqki1_25", dt = "_secondary_dqki1_48", _t = "_outlined_dqki1_71", pt = "_text_dqki1_97", mt = "_icon_dqki1_117", M = {
12
12
  button: lt,
13
13
  primary: it,
14
14
  secondary: dt,
15
15
  outlined: _t,
16
16
  text: pt,
17
- icon: ut
17
+ icon: mt
18
18
  }, xn = (t) => {
19
- const { className: e, variant: n = "primary", asLink: o, icon: s, ...r } = t, c = u($.button, $[n], e);
20
- if (o) {
21
- const { children: m, ...h } = r;
22
- return /* @__PURE__ */ i("a", { className: c, ...h, children: [
23
- s && /* @__PURE__ */ a("span", { className: $.icon, children: s }),
24
- m
25
- ] });
26
- }
27
- const { children: d, ...p } = r;
28
- return /* @__PURE__ */ i("button", { className: c, ...p, children: [
29
- s && /* @__PURE__ */ a("span", { className: $.icon, children: s }),
30
- d
19
+ const { as: e = "button", className: n, variant: o = "primary", icon: s, ...r } = t, l = m(M.button, M[o], n), { children: i, ...p } = r;
20
+ return /* @__PURE__ */ d(e, { className: l, ...p, children: [
21
+ s && /* @__PURE__ */ a("span", { className: M.icon, children: s }),
22
+ i
31
23
  ] });
32
- }, mt = "_wrapper_ck06d_1", ht = "_label_ck06d_7", bt = "_disabled_ck06d_14", ft = "_inputContainer_ck06d_18", yt = "_input_ck06d_18", wt = "_error_ck06d_51", gt = "_withStartIcon_ck06d_64", Nt = "_withEndIcon_ck06d_68", vt = "_startIcon_ck06d_72", xt = "_endIcon_ck06d_73", kt = "_errorMessage_ck06d_115", Ct = "_required_ck06d_122", b = {
33
- wrapper: mt,
24
+ }, ut = "_wrapper_ck06d_1", ht = "_label_ck06d_7", bt = "_disabled_ck06d_14", ft = "_inputContainer_ck06d_18", yt = "_input_ck06d_18", wt = "_error_ck06d_51", gt = "_withStartIcon_ck06d_64", Nt = "_withEndIcon_ck06d_68", vt = "_startIcon_ck06d_72", xt = "_endIcon_ck06d_73", kt = "_errorMessage_ck06d_115", Ct = "_required_ck06d_122", u = {
25
+ wrapper: ut,
34
26
  label: ht,
35
27
  disabled: bt,
36
28
  inputContainer: ft,
@@ -50,53 +42,53 @@ const lt = "_button_dqki1_1", it = "_primary_dqki1_25", dt = "_secondary_dqki1_4
50
42
  endIcon: o,
51
43
  onEndIconClick: s,
52
44
  allowPasswordToggle: r,
53
- disabled: c,
54
- type: d = "text",
45
+ disabled: l,
46
+ type: i = "text",
55
47
  className: p,
56
- required: m,
57
- id: h,
58
- ...y
48
+ required: f,
49
+ id: y,
50
+ ...b
59
51
  }, N) => {
60
- const w = Q(), _ = h ?? w, C = e ? `${_}-error` : void 0, S = !!e, I = d === "password" && r, [x, E] = L(!1);
61
- return /* @__PURE__ */ i("div", { className: u(b.wrapper, p), children: [
62
- t && /* @__PURE__ */ i("label", { htmlFor: _, className: u(b.label, { [b.disabled]: c }), children: [
52
+ const w = Q(), _ = y ?? w, C = e ? `${_}-error` : void 0, S = !!e, I = i === "password" && r, [x, E] = j(!1);
53
+ return /* @__PURE__ */ d("div", { className: m(u.wrapper, p), children: [
54
+ t && /* @__PURE__ */ d("label", { htmlFor: _, className: m(u.label, { [u.disabled]: l }), children: [
63
55
  t,
64
- m && /* @__PURE__ */ a("sup", { className: b.required, children: " *" })
56
+ f && /* @__PURE__ */ a("sup", { className: u.required, children: " *" })
65
57
  ] }),
66
- /* @__PURE__ */ i(
58
+ /* @__PURE__ */ d(
67
59
  "div",
68
60
  {
69
- className: u(b.inputContainer, {
70
- [b.error]: S,
71
- [b.disabled]: c,
72
- [b.withStartIcon]: !!n,
73
- [b.withEndIcon]: !!o || I
61
+ className: m(u.inputContainer, {
62
+ [u.error]: S,
63
+ [u.disabled]: l,
64
+ [u.withStartIcon]: !!n,
65
+ [u.withEndIcon]: !!o || I
74
66
  }),
75
67
  children: [
76
- n && /* @__PURE__ */ a("span", { className: b.startIcon, children: n }),
68
+ n && /* @__PURE__ */ a("span", { className: u.startIcon, children: n }),
77
69
  /* @__PURE__ */ a(
78
70
  "input",
79
71
  {
80
72
  ref: N,
81
73
  id: _,
82
- className: b.input,
83
- type: I && x ? "text" : d,
84
- autoComplete: d === "password" ? "current-password" : "off",
85
- required: m,
86
- disabled: c,
74
+ className: u.input,
75
+ type: I && x ? "text" : i,
76
+ autoComplete: i === "password" ? "current-password" : "off",
77
+ required: f,
78
+ disabled: l,
87
79
  "aria-invalid": S,
88
80
  "aria-describedby": C,
89
- ...y
81
+ ...b
90
82
  }
91
83
  ),
92
84
  I && /* @__PURE__ */ a(
93
85
  "button",
94
86
  {
95
87
  type: "button",
96
- className: b.endIcon,
88
+ className: u.endIcon,
97
89
  onClick: () => E((v) => !v),
98
90
  "aria-label": x ? "Hide password" : "Show password",
99
- disabled: c,
91
+ disabled: l,
100
92
  tabIndex: -1,
101
93
  children: x ? /* @__PURE__ */ a(at, {}) : /* @__PURE__ */ a(st, {})
102
94
  }
@@ -105,17 +97,17 @@ const lt = "_button_dqki1_1", it = "_primary_dqki1_25", dt = "_secondary_dqki1_4
105
97
  "button",
106
98
  {
107
99
  type: "button",
108
- className: b.endIcon,
100
+ className: u.endIcon,
109
101
  onClick: s,
110
102
  "aria-label": "Action",
111
- disabled: c,
103
+ disabled: l,
112
104
  children: o
113
105
  }
114
106
  )
115
107
  ]
116
108
  }
117
109
  ),
118
- S && /* @__PURE__ */ a("span", { id: C, className: b.errorMessage, role: "alert", children: e })
110
+ S && /* @__PURE__ */ a("span", { id: C, className: u.errorMessage, role: "alert", children: e })
119
111
  ] });
120
112
  }
121
113
  );
@@ -129,39 +121,39 @@ const St = "_textareaWrapper_ahoiy_1", Dt = "_label_ahoiy_7", Et = "_disabled_ah
129
121
  errorMessage: qt,
130
122
  required: Ot
131
123
  }, Pt = K(
132
- ({ label: t, errorMessage: e, id: n, className: o, disabled: s, minHeight: r = 84, required: c, ...d }, p) => {
133
- const m = Q(), h = n ?? m, y = e ? `${h}-error` : void 0;
134
- return /* @__PURE__ */ i("div", { className: u(k.textareaWrapper, o), children: [
135
- t && /* @__PURE__ */ i("label", { htmlFor: h, className: u(k.label, { [k.disabled]: s }), children: [
124
+ ({ label: t, errorMessage: e, id: n, className: o, disabled: s, minHeight: r = 84, required: l, ...i }, p) => {
125
+ const f = Q(), y = n ?? f, b = e ? `${y}-error` : void 0;
126
+ return /* @__PURE__ */ d("div", { className: m(k.textareaWrapper, o), children: [
127
+ t && /* @__PURE__ */ d("label", { htmlFor: y, className: m(k.label, { [k.disabled]: s }), children: [
136
128
  t,
137
- c && /* @__PURE__ */ a("sup", { className: k.required, children: " *" })
129
+ l && /* @__PURE__ */ a("sup", { className: k.required, children: " *" })
138
130
  ] }),
139
131
  /* @__PURE__ */ a(
140
132
  "textarea",
141
133
  {
142
134
  ref: p,
143
- id: h,
144
- className: u(k.textarea, { [k.errorState]: !!e }),
135
+ id: y,
136
+ className: m(k.textarea, { [k.errorState]: !!e }),
145
137
  "aria-invalid": !!e,
146
- "aria-describedby": y,
147
- required: c,
138
+ "aria-describedby": b,
139
+ required: l,
148
140
  disabled: s,
149
141
  style: { minHeight: r },
150
- ...d
142
+ ...i
151
143
  }
152
144
  ),
153
- e && /* @__PURE__ */ a("span", { id: y, role: "alert", className: k.errorMessage, children: e })
145
+ e && /* @__PURE__ */ a("span", { id: b, role: "alert", className: k.errorMessage, children: e })
154
146
  ] });
155
147
  }
156
148
  );
157
149
  Pt.displayName = "Textarea";
158
- const Rt = "_alert_5jfpm_1", zt = "_content_5jfpm_15", Tt = "_error_5jfpm_22", jt = "_success_5jfpm_28", Lt = "_closeButton_5jfpm_33", Mt = "_message_5jfpm_39", At = "_title_5jfpm_40", Wt = "_toastEnter_5jfpm_50", Ft = "_toastExit_5jfpm_54", g = {
150
+ const Rt = "_alert_5jfpm_1", zt = "_content_5jfpm_15", Tt = "_error_5jfpm_22", jt = "_success_5jfpm_28", Mt = "_closeButton_5jfpm_33", Lt = "_message_5jfpm_39", At = "_title_5jfpm_40", Wt = "_toastEnter_5jfpm_50", Ft = "_toastExit_5jfpm_54", g = {
159
151
  alert: Rt,
160
152
  content: zt,
161
153
  error: Tt,
162
154
  success: jt,
163
- closeButton: Lt,
164
- message: Mt,
155
+ closeButton: Mt,
156
+ message: Lt,
165
157
  title: At,
166
158
  toastEnter: Wt,
167
159
  "fade-in": "_fade-in_5jfpm_1",
@@ -173,45 +165,45 @@ const Rt = "_alert_5jfpm_1", zt = "_content_5jfpm_15", Tt = "_error_5jfpm_22", j
173
165
  message: n,
174
166
  className: o,
175
167
  onClose: s
176
- }) => /* @__PURE__ */ i("div", { className: D(g.alert, g[t], o), role: "alert", children: [
177
- /* @__PURE__ */ i("div", { className: g.content, children: [
168
+ }) => /* @__PURE__ */ d("div", { className: D(g.alert, g[t], o), role: "alert", children: [
169
+ /* @__PURE__ */ d("div", { className: g.content, children: [
178
170
  e && /* @__PURE__ */ a("div", { className: g.title, children: e }),
179
171
  /* @__PURE__ */ a("div", { className: g.message, children: n })
180
172
  ] }),
181
173
  s && /* @__PURE__ */ a("button", { type: "button", className: g.closeButton, onClick: s, "aria-label": "Close alert", children: /* @__PURE__ */ a(J, {}) })
182
174
  ] }), kn = (t) => {
183
- j.custom((e) => /* @__PURE__ */ a(
175
+ T.custom((e) => /* @__PURE__ */ a(
184
176
  X,
185
177
  {
186
178
  variant: "success",
187
179
  message: t,
188
180
  className: e.visible ? g.toastEnter : g.toastExit,
189
- onClose: () => j.dismiss(e.id)
181
+ onClose: () => T.dismiss(e.id)
190
182
  }
191
183
  ));
192
184
  }, Cn = (t, e = "Error!") => {
193
- j.custom((n) => /* @__PURE__ */ a(
185
+ T.custom((n) => /* @__PURE__ */ a(
194
186
  X,
195
187
  {
196
188
  variant: "error",
197
189
  title: e,
198
190
  message: t,
199
191
  className: n.visible ? g.toastEnter : g.toastExit,
200
- onClose: () => j.dismiss(n.id)
192
+ onClose: () => T.dismiss(n.id)
201
193
  }
202
194
  ));
203
195
  }, Vt = "_card_1ah7i_1", Gt = {
204
196
  card: Vt
205
- }, In = ({ className: t, children: e, ...n }) => /* @__PURE__ */ a("div", { className: u(Gt.card, t), ...n, children: e }), Ht = "_checkbox_1q28z_1", Yt = "_input_1q28z_11", Jt = "_labelSpan_1q28z_16", Kt = "_control_1q28z_23", B = {
197
+ }, In = ({ className: t, children: e, ...n }) => /* @__PURE__ */ a("div", { className: m(Gt.card, t), ...n, children: e }), Ht = "_checkbox_1q28z_1", Yt = "_input_1q28z_11", Jt = "_labelSpan_1q28z_16", Kt = "_control_1q28z_23", $ = {
206
198
  checkbox: Ht,
207
199
  input: Yt,
208
200
  labelSpan: Jt,
209
201
  control: Kt
210
- }, Sn = ({ children: t, className: e, checked: n, onChange: o, ...s }) => /* @__PURE__ */ i("label", { className: u(B.checkbox, e), children: [
211
- /* @__PURE__ */ a("input", { type: "checkbox", className: B.input, checked: n, onChange: o, ...s }),
212
- /* @__PURE__ */ a("span", { className: B.control }),
213
- t && /* @__PURE__ */ a("span", { className: B.labelSpan, children: t })
214
- ] }), Qt = "_label_ndvr9_1", Ut = "_required_ndvr9_5", Xt = "_srOnly_ndvr9_10", M = {
202
+ }, Sn = ({ children: t, className: e, checked: n, onChange: o, ...s }) => /* @__PURE__ */ d("label", { className: m($.checkbox, e), children: [
203
+ /* @__PURE__ */ a("input", { type: "checkbox", className: $.input, checked: n, onChange: o, ...s }),
204
+ /* @__PURE__ */ a("span", { className: $.control }),
205
+ t && /* @__PURE__ */ a("span", { className: $.labelSpan, children: t })
206
+ ] }), Qt = "_label_ndvr9_1", Ut = "_required_ndvr9_5", Xt = "_srOnly_ndvr9_10", L = {
215
207
  label: Qt,
216
208
  required: Ut,
217
209
  srOnly: Xt
@@ -222,21 +214,21 @@ const Rt = "_alert_5jfpm_1", zt = "_content_5jfpm_15", Tt = "_error_5jfpm_22", j
222
214
  color: o,
223
215
  className: s,
224
216
  htmlFor: r,
225
- ...c
226
- }) => /* @__PURE__ */ i(
217
+ ...l
218
+ }) => /* @__PURE__ */ d(
227
219
  V,
228
220
  {
229
221
  as: "label",
230
222
  variant: e,
231
- className: D(M.label, s),
223
+ className: D(L.label, s),
232
224
  htmlFor: r,
233
225
  style: o ? { color: o } : void 0,
234
- ...c,
226
+ ...l,
235
227
  children: [
236
228
  t,
237
- n && /* @__PURE__ */ i(ot, { children: [
238
- /* @__PURE__ */ a("span", { className: M.required, "aria-hidden": "true", children: "*" }),
239
- /* @__PURE__ */ a("span", { className: M.srOnly, children: " (required)" })
229
+ n && /* @__PURE__ */ d(ot, { children: [
230
+ /* @__PURE__ */ a("span", { className: L.required, "aria-hidden": "true", children: "*" }),
231
+ /* @__PURE__ */ a("span", { className: L.srOnly, children: " (required)" })
240
232
  ] })
241
233
  ]
242
234
  }
@@ -244,13 +236,13 @@ const Rt = "_alert_5jfpm_1", zt = "_content_5jfpm_15", Tt = "_error_5jfpm_22", j
244
236
  tab: Zt,
245
237
  selected: te
246
238
  }, En = (t) => {
247
- const { children: e, selected: n = !1, className: o, disabled: s = !1, ...r } = t, c = u(A.tab, n && A.selected, s && A.disabled, o);
239
+ const { children: e, selected: n = !1, className: o, disabled: s = !1, ...r } = t, l = m(A.tab, n && A.selected, s && A.disabled, o);
248
240
  return /* @__PURE__ */ a(
249
241
  "button",
250
242
  {
251
243
  type: "button",
252
244
  role: "tab",
253
- className: c,
245
+ className: l,
254
246
  disabled: s,
255
247
  tabIndex: s ? -1 : 0,
256
248
  "aria-selected": n,
@@ -259,15 +251,15 @@ const Rt = "_alert_5jfpm_1", zt = "_content_5jfpm_15", Tt = "_error_5jfpm_22", j
259
251
  children: e
260
252
  }
261
253
  );
262
- }, ee = "_radio_10hqy_1", ne = "_input_10hqy_12", oe = "_labelSpan_10hqy_18", ae = "_control_10hqy_26", q = {
254
+ }, ee = "_radio_10hqy_1", ne = "_input_10hqy_12", oe = "_labelSpan_10hqy_18", ae = "_control_10hqy_26", B = {
263
255
  radio: ee,
264
256
  input: ne,
265
257
  labelSpan: oe,
266
258
  control: ae
267
- }, $n = ({ children: t, className: e, checked: n, onChange: o, ...s }) => /* @__PURE__ */ i("label", { className: u(q.radio, e), children: [
268
- /* @__PURE__ */ a("input", { type: "radio", className: q.input, checked: n, onChange: o, ...s }),
269
- /* @__PURE__ */ a("span", { className: q.control }),
270
- t && /* @__PURE__ */ a("span", { className: q.labelSpan, children: t })
259
+ }, $n = ({ children: t, className: e, checked: n, onChange: o, ...s }) => /* @__PURE__ */ d("label", { className: m(B.radio, e), children: [
260
+ /* @__PURE__ */ a("input", { type: "radio", className: B.input, checked: n, onChange: o, ...s }),
261
+ /* @__PURE__ */ a("span", { className: B.control }),
262
+ t && /* @__PURE__ */ a("span", { className: B.labelSpan, children: t })
271
263
  ] }), se = "_typography_11tbz_1", re = "_icon_11tbz_8", ce = "_large_11tbz_14", le = "_h1_11tbz_20", ie = "_h2_11tbz_26", de = "_h3_11tbz_32", _e = "_small_11tbz_68", pe = "_link_11tbz_80", W = {
272
264
  typography: se,
273
265
  icon: re,
@@ -285,14 +277,14 @@ const Rt = "_alert_5jfpm_1", zt = "_content_5jfpm_15", Tt = "_error_5jfpm_22", j
285
277
  link: pe,
286
278
  "small-link": "_small-link_11tbz_89"
287
279
  }, V = (t) => {
288
- const { as: e = "span", children: n, className: o, icon: s, variant: r, ...c } = t;
289
- return /* @__PURE__ */ i(e, { className: u(W.typography, W[r], o), ...c, children: [
280
+ const { as: e = "span", children: n, className: o, icon: s, variant: r, ...l } = t;
281
+ return /* @__PURE__ */ d(e, { className: m(W.typography, W[r], o), ...l, children: [
290
282
  s && /* @__PURE__ */ a("span", { className: W.icon, children: s }),
291
283
  n
292
284
  ] });
293
- }, ue = "_wrapper_l023w_1", me = "_inputContainer_l023w_5", he = "_label_l023w_11", be = "_inputWrapper_l023w_15", fe = "_trigger_l023w_22", ye = "_icon_l023w_38", we = "_placeholder_l023w_45", ge = "_clearButton_l023w_49", Ne = "_clearIcon_l023w_89", ve = "_disabledLabel_l023w_101", xe = "_error_l023w_123", ke = "_calendar_l023w_141", Ce = "_open_l023w_160", Ie = "_monthsCaption_l023w_166", Se = "_navButtonPrevious_l023w_172", De = "_navButtonNext_l023w_173", Ee = "_navIcon_l023w_193", $e = "_monthGrid_l023w_199", Be = "_dropdowns_l023w_205", qe = "_weekday_l023w_209", Oe = "_day_l023w_220", Pe = "_dayButton_l023w_227", Re = "_dayOutside_l023w_254", ze = "_dayToday_l023w_258", Te = "_daySelected_l023w_263", je = "_dayRangeStart_l023w_264", Le = "_dayRangeEnd_l023w_265", Me = "_dayRangeMiddle_l023w_266", l = {
294
- wrapper: ue,
295
- inputContainer: me,
285
+ }, me = "_wrapper_l023w_1", ue = "_inputContainer_l023w_5", he = "_label_l023w_11", be = "_inputWrapper_l023w_15", fe = "_trigger_l023w_22", ye = "_icon_l023w_38", we = "_placeholder_l023w_45", ge = "_clearButton_l023w_49", Ne = "_clearIcon_l023w_89", ve = "_disabledLabel_l023w_101", xe = "_error_l023w_123", ke = "_calendar_l023w_141", Ce = "_open_l023w_160", Ie = "_monthsCaption_l023w_166", Se = "_navButtonPrevious_l023w_172", De = "_navButtonNext_l023w_173", Ee = "_navIcon_l023w_193", $e = "_monthGrid_l023w_199", Be = "_dropdowns_l023w_205", qe = "_weekday_l023w_209", Oe = "_day_l023w_220", Pe = "_dayButton_l023w_227", Re = "_dayOutside_l023w_254", ze = "_dayToday_l023w_258", Te = "_daySelected_l023w_263", je = "_dayRangeStart_l023w_264", Me = "_dayRangeEnd_l023w_265", Le = "_dayRangeMiddle_l023w_266", c = {
286
+ wrapper: me,
287
+ inputContainer: ue,
296
288
  label: he,
297
289
  inputWrapper: be,
298
290
  trigger: fe,
@@ -317,8 +309,8 @@ const Rt = "_alert_5jfpm_1", zt = "_content_5jfpm_15", Tt = "_error_5jfpm_22", j
317
309
  dayToday: ze,
318
310
  daySelected: Te,
319
311
  dayRangeStart: je,
320
- dayRangeEnd: Le,
321
- dayRangeMiddle: Me
312
+ dayRangeEnd: Me,
313
+ dayRangeMiddle: Le
322
314
  }, Ae = ({
323
315
  ref: t,
324
316
  isOpen: e,
@@ -335,47 +327,47 @@ const Rt = "_alert_5jfpm_1", zt = "_content_5jfpm_15", Tt = "_error_5jfpm_22", j
335
327
  document.removeEventListener("mousedown", o), document.removeEventListener("touchstart", o), document.removeEventListener("keydown", s);
336
328
  };
337
329
  }, [e, n, t]);
338
- }, z = "dd.MM.yyyy", We = (t) => {
330
+ }, R = "dd.MM.yyyy", We = (t) => {
339
331
  if (!t) return;
340
- const e = O(t, z, /* @__PURE__ */ new Date());
341
- return P(e) ? e : void 0;
332
+ const e = q(t, R, /* @__PURE__ */ new Date());
333
+ return O(e) ? e : void 0;
342
334
  }, Fe = (t) => {
343
335
  if (!t) return;
344
336
  const e = " - ", n = t.indexOf(e);
345
337
  if (n === -1) {
346
- const d = O(t.trim(), z, /* @__PURE__ */ new Date());
347
- return P(d) ? { from: d, to: void 0 } : void 0;
338
+ const i = q(t.trim(), R, /* @__PURE__ */ new Date());
339
+ return O(i) ? { from: i, to: void 0 } : void 0;
348
340
  }
349
341
  const o = t.substring(0, n).trim(), s = t.substring(n + e.length).trim();
350
342
  if (!o || !s) return;
351
- const r = O(o, z, /* @__PURE__ */ new Date()), c = O(s, z, /* @__PURE__ */ new Date());
352
- if (P(r) && P(c))
353
- return { from: r, to: c };
343
+ const r = q(o, R, /* @__PURE__ */ new Date()), l = q(s, R, /* @__PURE__ */ new Date());
344
+ if (O(r) && O(l))
345
+ return { from: r, to: l };
354
346
  }, Z = (t, e) => {
355
347
  if (t)
356
348
  return e === "single" ? We(t) : Fe(t);
357
349
  }, Ve = (t, e) => {
358
- const [n, o] = L(/* @__PURE__ */ new Date());
350
+ const [n, o] = j(/* @__PURE__ */ new Date());
359
351
  return {
360
352
  month: F(() => {
361
- const c = Z(t, e);
362
- if (!c) return n;
363
- if (e === "single" && c instanceof Date)
364
- return c;
365
- if (e === "range" && typeof c == "object" && "from" in c) {
366
- const d = c;
367
- if (d.from)
368
- return d.from;
369
- if (d.to)
370
- return d.to;
353
+ const l = Z(t, e);
354
+ if (!l) return n;
355
+ if (e === "single" && l instanceof Date)
356
+ return l;
357
+ if (e === "range" && typeof l == "object" && "from" in l) {
358
+ const i = l;
359
+ if (i.from)
360
+ return i.from;
361
+ if (i.to)
362
+ return i.to;
371
363
  }
372
364
  return n;
373
365
  }, [t, e, n]),
374
- setMonth: (c) => {
375
- o(c);
366
+ setMonth: (l) => {
367
+ o(l);
376
368
  }
377
369
  };
378
- }, Ge = "_container_15bt3_1", He = "_label_15bt3_7", Ye = "_select_15bt3_14", Je = "_trigger_15bt3_19", Ke = "_triggerOpen_15bt3_46", Qe = "_placeholder_15bt3_67", Ue = "_selectedContent_15bt3_71", Xe = "_optionIcon_15bt3_81", Ze = "_arrow_15bt3_87", tn = "_open_15bt3_98", en = "_dropdown_15bt3_102", nn = "_option_15bt3_81", on = "_selected_15bt3_71", f = {
370
+ }, Ge = "_container_15bt3_1", He = "_label_15bt3_7", Ye = "_select_15bt3_14", Je = "_trigger_15bt3_19", Ke = "_triggerOpen_15bt3_46", Qe = "_placeholder_15bt3_67", Ue = "_selectedContent_15bt3_71", Xe = "_optionIcon_15bt3_81", Ze = "_arrow_15bt3_87", tn = "_open_15bt3_98", en = "_dropdown_15bt3_102", nn = "_option_15bt3_81", on = "_selected_15bt3_71", h = {
379
371
  container: Ge,
380
372
  label: He,
381
373
  select: Ye,
@@ -390,49 +382,49 @@ const Rt = "_alert_5jfpm_1", zt = "_content_5jfpm_15", Tt = "_error_5jfpm_22", j
390
382
  option: nn,
391
383
  selected: on
392
384
  }, an = (t) => {
393
- const { className: e, disabled: n = !1, label: o, onChange: s, options: r, placeholder: c, value: d } = t, [p, m] = L(!1), h = U(null), y = r.find((_) => _.value === d), N = () => {
394
- n || m(!p);
385
+ const { className: e, disabled: n = !1, label: o, onChange: s, options: r, placeholder: l, value: i } = t, [p, f] = j(!1), y = U(null), b = r.find((_) => _.value === i), N = () => {
386
+ n || f(!p);
395
387
  }, w = (_) => {
396
- s?.(_), m(!1);
388
+ s?.(_), f(!1);
397
389
  };
398
390
  return G(() => {
399
391
  const _ = (C) => {
400
- h.current && !h.current.contains(C.target) && m(!1);
392
+ y.current && !y.current.contains(C.target) && f(!1);
401
393
  };
402
394
  return p && document.addEventListener("mousedown", _), () => {
403
395
  document.removeEventListener("mousedown", _);
404
396
  };
405
- }, [p]), /* @__PURE__ */ i("div", { className: u(f.container, e), children: [
406
- o && /* @__PURE__ */ a("label", { className: f.label, children: o }),
407
- /* @__PURE__ */ i("div", { className: f.select, ref: h, children: [
408
- /* @__PURE__ */ i(
397
+ }, [p]), /* @__PURE__ */ d("div", { className: m(h.container, e), children: [
398
+ o && /* @__PURE__ */ a("label", { className: h.label, children: o }),
399
+ /* @__PURE__ */ d("div", { className: h.select, ref: y, children: [
400
+ /* @__PURE__ */ d(
409
401
  "button",
410
402
  {
411
- className: u(f.trigger, p && f.triggerOpen),
403
+ className: m(h.trigger, p && h.triggerOpen),
412
404
  disabled: n,
413
405
  onClick: N,
414
406
  type: "button",
415
407
  "aria-haspopup": "listbox",
416
408
  "aria-expanded": p,
417
409
  children: [
418
- /* @__PURE__ */ i("span", { className: y ? f.selectedContent : f.placeholder, children: [
419
- y?.icon && /* @__PURE__ */ a("span", { className: f.optionIcon, children: y.icon }),
420
- y ? y.label : c || "Select an option"
410
+ /* @__PURE__ */ d("span", { className: b ? h.selectedContent : h.placeholder, children: [
411
+ b?.icon && /* @__PURE__ */ a("span", { className: h.optionIcon, children: b.icon }),
412
+ b ? b.label : l || "Select an option"
421
413
  ] }),
422
- /* @__PURE__ */ a("span", { className: u(f.arrow, p && f.open), children: /* @__PURE__ */ a(rt, {}) })
414
+ /* @__PURE__ */ a("span", { className: m(h.arrow, p && h.open), children: /* @__PURE__ */ a(rt, {}) })
423
415
  ]
424
416
  }
425
417
  ),
426
- p && /* @__PURE__ */ a(nt, { className: f.dropdown, role: "listbox", style: { maxHeight: 191 }, children: r.map((_) => /* @__PURE__ */ i(
418
+ p && /* @__PURE__ */ a(nt, { className: h.dropdown, role: "listbox", style: { maxHeight: 191 }, children: r.map((_) => /* @__PURE__ */ d(
427
419
  "button",
428
420
  {
429
- className: u(f.option, _.value === d && f.selected),
421
+ className: m(h.option, _.value === i && h.selected),
430
422
  onClick: () => w(_.value),
431
423
  type: "button",
432
424
  role: "option",
433
- "aria-selected": _.value === d,
425
+ "aria-selected": _.value === i,
434
426
  children: [
435
- _.icon && /* @__PURE__ */ a("span", { className: f.optionIcon, children: _.icon }),
427
+ _.icon && /* @__PURE__ */ a("span", { className: h.optionIcon, children: _.icon }),
436
428
  _.label
437
429
  ]
438
430
  },
@@ -466,27 +458,27 @@ const Rt = "_alert_5jfpm_1", zt = "_content_5jfpm_15", Tt = "_error_5jfpm_22", j
466
458
  };
467
459
  tt.displayName = "DatePickerDropdown";
468
460
  const sn = {
469
- month_caption: l.monthsCaption,
470
- button_previous: l.navButtonPrevious,
471
- button_next: l.navButtonNext,
472
- chevron: l.navIcon,
473
- caption_label: l.captionLabel,
474
- dropdowns: l.dropdowns,
475
- dropdown_root: l.dropdown_root,
476
- dropdown: l.dropdown,
477
- dropdown_select_option: l.option,
478
- months_dropdown: l.monthsDropdown,
479
- years_dropdown: l.yearsDropdown,
480
- month_grid: l.monthGrid,
481
- weekday: l.weekday,
482
- day_button: l.dayButton,
483
- day: l.day,
484
- outside: l.dayOutside,
485
- selected: l.daySelected,
486
- range_start: l.dayRangeStart,
487
- range_middle: l.dayRangeMiddle,
488
- range_end: l.dayRangeEnd,
489
- today: l.dayToday
461
+ month_caption: c.monthsCaption,
462
+ button_previous: c.navButtonPrevious,
463
+ button_next: c.navButtonNext,
464
+ chevron: c.navIcon,
465
+ caption_label: c.captionLabel,
466
+ dropdowns: c.dropdowns,
467
+ dropdown_root: c.dropdown_root,
468
+ dropdown: c.dropdown,
469
+ dropdown_select_option: c.option,
470
+ months_dropdown: c.monthsDropdown,
471
+ years_dropdown: c.yearsDropdown,
472
+ month_grid: c.monthGrid,
473
+ weekday: c.weekday,
474
+ day_button: c.dayButton,
475
+ day: c.day,
476
+ outside: c.dayOutside,
477
+ selected: c.daySelected,
478
+ range_start: c.dayRangeStart,
479
+ range_middle: c.dayRangeMiddle,
480
+ range_end: c.dayRangeEnd,
481
+ today: c.dayToday
490
482
  }, rn = {
491
483
  Dropdown: tt
492
484
  }, cn = {
@@ -500,10 +492,10 @@ const sn = {
500
492
  }, dn = (t) => ({
501
493
  ...ln,
502
494
  classNames: {
503
- root: D(l.calendar, t && l.open),
495
+ root: D(c.calendar, t && c.open),
504
496
  ...sn
505
497
  }
506
- }), T = "dd.MM.yyyy", _n = (t) => t ? R(t, T) : "", pn = (t) => !t || !t.from ? "" : t.to && t.from.getTime() !== t.to.getTime() ? `${R(t.from, T)} - ${R(t.to, T)}` : R(t.from, T), Y = (t, e) => t ? e === "single" && t instanceof Date ? _n(t) : e === "range" && typeof t == "object" && "from" in t ? pn(t) : "" : "", un = ({
498
+ }), z = "dd.MM.yyyy", _n = (t) => t ? P(t, z) : "", pn = (t) => !t || !t.from ? "" : t.to && t.from.getTime() !== t.to.getTime() ? `${P(t.from, z)} - ${P(t.to, z)}` : P(t.from, z), Y = (t, e) => t ? e === "single" && t instanceof Date ? _n(t) : e === "range" && typeof t == "object" && "from" in t ? pn(t) : "" : "", mn = ({
507
499
  value: t,
508
500
  mode: e,
509
501
  onChange: n,
@@ -521,10 +513,10 @@ const sn = {
521
513
  if (e === "range" && typeof t == "object" && "from" in t) {
522
514
  const r = t;
523
515
  r.from ? o(r.from) : r.to && o(r.to);
524
- const c = Y(r, "range");
525
- n(c), r.from && r.to && r.from.getTime() !== r.to.getTime() && s(!1);
516
+ const l = Y(r, "range");
517
+ n(l), r.from && r.to && r.from.getTime() !== r.to.getTime() && s(!1);
526
518
  }
527
- }, mn = (t, e, n) => {
519
+ }, un = (t, e, n) => {
528
520
  if (t) {
529
521
  if (e === "single" && t instanceof Date) {
530
522
  n(t);
@@ -542,71 +534,71 @@ const sn = {
542
534
  disabled: o,
543
535
  label: s,
544
536
  error: r,
545
- placeholder: c,
546
- ...d
537
+ placeholder: l,
538
+ ...i
547
539
  }) => {
548
- const [p, m] = L(!1), h = U(null), { month: y, setMonth: N } = Ve(e, t), w = F(() => Z(e, t), [e, t]);
540
+ const [p, f] = j(!1), y = U(null), { month: b, setMonth: N } = Ve(e, t), w = F(() => Z(e, t), [e, t]);
549
541
  G(() => {
550
- mn(w, t, N);
551
- }, [w, t, N]), Ae({ ref: h, isOpen: p, onDismiss: () => {
552
- m(!1);
542
+ un(w, t, N);
543
+ }, [w, t, N]), Ae({ ref: y, isOpen: p, onDismiss: () => {
544
+ f(!1);
553
545
  } });
554
546
  const C = (v) => {
555
547
  v.stopPropagation(), x(void 0);
556
548
  }, S = () => {
557
- o || m((v) => !v);
549
+ o || f((v) => !v);
558
550
  }, I = (v) => {
559
551
  const et = v.currentTarget.value;
560
552
  n(et);
561
553
  }, x = (v) => {
562
- un({
554
+ mn({
563
555
  value: v,
564
556
  mode: t,
565
557
  onChange: n,
566
558
  setMonth: N,
567
- setIsOpen: m
559
+ setIsOpen: f
568
560
  });
569
561
  }, E = F(() => dn(p), [p]);
570
- return /* @__PURE__ */ i("div", { ref: h, className: l.wrapper, children: [
571
- /* @__PURE__ */ i("div", { className: l.inputContainer, children: [
572
- s && /* @__PURE__ */ a("span", { className: o ? l.disabledLabel : l.label, children: /* @__PURE__ */ a(V, { variant: "text-14", children: s }) }),
573
- /* @__PURE__ */ i("div", { className: l.inputWrapper, children: [
562
+ return /* @__PURE__ */ d("div", { ref: y, className: c.wrapper, children: [
563
+ /* @__PURE__ */ d("div", { className: c.inputContainer, children: [
564
+ s && /* @__PURE__ */ a("span", { className: o ? c.disabledLabel : c.label, children: /* @__PURE__ */ a(V, { variant: "text-14", children: s }) }),
565
+ /* @__PURE__ */ d("div", { className: c.inputWrapper, children: [
574
566
  /* @__PURE__ */ a(
575
567
  "input",
576
568
  {
577
569
  type: "text",
578
- className: D(l.trigger, r && l.error),
570
+ className: D(c.trigger, r && c.error),
579
571
  onClick: S,
580
572
  value: e,
581
573
  onChange: I,
582
- placeholder: c,
574
+ placeholder: l,
583
575
  disabled: o,
584
576
  "aria-label": s || "Select date",
585
577
  "aria-expanded": p,
586
578
  "aria-haspopup": "dialog",
587
579
  "aria-invalid": r ? "true" : "false",
588
- ...d
580
+ ...i
589
581
  }
590
582
  ),
591
583
  e && !o && /* @__PURE__ */ a(
592
584
  "button",
593
585
  {
594
586
  type: "button",
595
- className: l.clearButton,
587
+ className: c.clearButton,
596
588
  onClick: C,
597
589
  "aria-label": "Clear date",
598
- children: /* @__PURE__ */ a(J, { className: l.clearIcon })
590
+ children: /* @__PURE__ */ a(J, { className: c.clearIcon })
599
591
  }
600
592
  ),
601
- /* @__PURE__ */ a(ct, { className: D(l.icon, !e && l.placeholder) })
593
+ /* @__PURE__ */ a(ct, { className: D(c.icon, !e && c.placeholder) })
602
594
  ] }),
603
- r && /* @__PURE__ */ a(V, { variant: "small", className: l.error, children: r })
595
+ r && /* @__PURE__ */ a(V, { variant: "small", className: c.error, children: r })
604
596
  ] }),
605
597
  t === "single" ? /* @__PURE__ */ a(
606
598
  H,
607
599
  {
608
600
  ...E,
609
- month: y,
601
+ month: b,
610
602
  onMonthChange: N,
611
603
  mode: "single",
612
604
  selected: w instanceof Date ? w : void 0,
@@ -616,7 +608,7 @@ const sn = {
616
608
  H,
617
609
  {
618
610
  ...E,
619
- month: y,
611
+ month: b,
620
612
  onMonthChange: N,
621
613
  mode: "range",
622
614
  selected: w && typeof w == "object" && "from" in w ? w : void 0,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/components/Button/Button.tsx","../src/components/Input/Input.tsx","../src/components/Textarea/Textarea.tsx","../src/components/Alert/Alert.tsx","../src/components/Alert/toast.tsx","../src/components/Card/Card.tsx","../src/components/Checkbox/Checkbox.tsx","../src/components/Label/Label.tsx","../src/components/Tab/Tab.tsx","../src/components/Radio/Radio.tsx","../src/components/Typography/Typography.tsx","../src/components/DatePicker/hooks/useDismiss.ts","../src/components/DatePicker/utils/parseDateValue.ts","../src/components/DatePicker/hooks/useDatePickerState.ts","../src/components/Select/Select.tsx","../src/components/DatePicker/utils/getDayPickerProps.tsx","../src/components/DatePicker/utils/formatDateValue.ts","../src/components/DatePicker/utils/handleDateSelect.ts","../src/components/DatePicker/utils/updateMonthFromDate.ts","../src/components/DatePicker/DatePicker.tsx"],"sourcesContent":["import { clsx } from 'clsx'\n\nimport s from './Button.module.css'\nimport { ButtonProps } from './Button.types'\n\ntype AsButtonProps = ButtonProps & { asLink?: false }\ntype AsLinkProps = ButtonProps & { asLink: true }\n\nexport const Button = (props: ButtonProps) => {\n const { className, variant = 'primary', asLink, icon, ...rest } = props\n const classes = clsx(s.button, s[variant], className)\n\n if (asLink) {\n const { children, ...linkProps } = rest as AsLinkProps\n return (\n <a className={classes} {...linkProps}>\n {icon && <span className={s.icon}>{icon}</span>}\n {children}\n </a>\n )\n }\n\n const { children, ...buttonProps } = rest as AsButtonProps\n return (\n <button className={classes} {...buttonProps}>\n {icon && <span className={s.icon}>{icon}</span>}\n {children}\n </button>\n )\n}\n","import { forwardRef, useId, useState } from 'react'\nimport { clsx } from 'clsx'\n\nimport s from './Input.module.css'\nimport { InputProps } from './Input.types'\nimport { EyeIcon, EyeOffIcon } from '@/icons'\n\nexport const Input = forwardRef<HTMLInputElement, InputProps>(\n (\n {\n label,\n errorMessage,\n startIcon,\n endIcon,\n onEndIconClick,\n allowPasswordToggle,\n disabled,\n type = 'text',\n className,\n required,\n id,\n ...rest\n },\n ref,\n ) => {\n const generatedId = useId()\n const inputId = id ?? generatedId\n const errorId = errorMessage ? `${inputId}-error` : undefined\n\n const isError = Boolean(errorMessage)\n const isPassword = type === 'password' && allowPasswordToggle\n\n const [showPassword, setShowPassword] = useState(false)\n\n return (\n <div className={clsx(s.wrapper, className)}>\n {label && (\n <label htmlFor={inputId} className={clsx(s.label, { [s.disabled]: disabled })}>\n {label}\n {required && <sup className={s.required}> *</sup>}\n </label>\n )}\n\n <div\n className={clsx(s.inputContainer, {\n [s.error]: isError,\n [s.disabled]: disabled,\n [s.withStartIcon]: Boolean(startIcon),\n [s.withEndIcon]: Boolean(endIcon) || isPassword,\n })}\n >\n {startIcon && <span className={s.startIcon}>{startIcon}</span>}\n\n <input\n ref={ref}\n id={inputId}\n className={s.input}\n type={isPassword && showPassword ? 'text' : type}\n autoComplete={type === 'password' ? 'current-password' : 'off'}\n required={required}\n disabled={disabled}\n aria-invalid={isError}\n aria-describedby={errorId}\n {...rest}\n />\n\n {isPassword && (\n <button\n type=\"button\"\n className={s.endIcon}\n onClick={() => setShowPassword((v) => !v)}\n aria-label={showPassword ? 'Hide password' : 'Show password'}\n disabled={disabled}\n tabIndex={-1}\n >\n {showPassword ? <EyeOffIcon /> : <EyeIcon />}\n </button>\n )}\n\n {endIcon && !isPassword && (\n <button\n type=\"button\"\n className={s.endIcon}\n onClick={onEndIconClick}\n aria-label=\"Action\"\n disabled={disabled}\n >\n {endIcon}\n </button>\n )}\n </div>\n\n {isError && (\n <span id={errorId} className={s.errorMessage} role=\"alert\">\n {errorMessage}\n </span>\n )}\n </div>\n )\n },\n)\n\nInput.displayName = 'Input'\n","import { forwardRef, useId } from 'react'\nimport { clsx } from 'clsx'\n\nimport s from './Textarea.module.css'\nimport type { TextareaProps } from './Textarea.types'\n\nexport const Textarea = forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ label, errorMessage, id, className, disabled, minHeight = 84, required, ...rest }, ref) => {\n const generatedId = useId()\n const textareaId = id ?? generatedId\n const errorId = errorMessage ? `${textareaId}-error` : undefined\n\n return (\n <div className={clsx(s.textareaWrapper, className)}>\n {label && (\n <label htmlFor={textareaId} className={clsx(s.label, { [s.disabled]: disabled })}>\n {label}\n {required && <sup className={s.required}> *</sup>}\n </label>\n )}\n\n <textarea\n ref={ref}\n id={textareaId}\n className={clsx(s.textarea, { [s.errorState]: !!errorMessage })}\n aria-invalid={!!errorMessage}\n aria-describedby={errorId}\n required={required}\n disabled={disabled}\n style={{ minHeight }}\n {...rest}\n />\n\n {errorMessage && (\n <span id={errorId} role=\"alert\" className={s.errorMessage}>\n {errorMessage}\n </span>\n )}\n </div>\n )\n },\n)\n\nTextarea.displayName = 'Textarea'\n","import { FC } from 'react'\nimport clsx from 'clsx'\n\nimport s from './Alert.module.css'\nimport { CloseIcon } from '@/icons'\nimport type { AlertProps } from './Alert.types'\n\nexport const Alert: FC<AlertProps> = ({\n variant = 'error',\n title,\n message,\n className,\n onClose,\n}) => {\n return (\n <div className={clsx(s.alert, s[variant], className)} role=\"alert\">\n <div className={s.content}>\n {title && <div className={s.title}>{title}</div>}\n <div className={s.message}>{message}</div>\n </div>\n\n {onClose && (\n <button type=\"button\" className={s.closeButton} onClick={onClose} aria-label=\"Close alert\">\n <CloseIcon />\n </button>\n )}\n </div>\n )\n}\n","import { toast } from 'react-hot-toast'\nimport { Alert } from './Alert'\nimport s from './Alert.module.css'\n\n/**\n * Show a success toast rendered with the shared `Alert` component.\n * @param message - Text to display in the toast body.\n */\nexport const toastSuccess = (message: string) => {\n toast.custom((t) => (\n <Alert\n variant=\"success\"\n message={message}\n className={t.visible ? s.toastEnter : s.toastExit}\n onClose={() => toast.dismiss(t.id)}\n />\n ))\n}\n\n/**\n * Show an error toast rendered with the shared `Alert` component.\n * @param message - Text to display in the toast body.\n * @param title - Optional heading shown above the message. Defaults to `\"Error!\"`.\n */\nexport const toastError = (message: string, title = 'Error!') => {\n toast.custom((t) => (\n <Alert\n variant=\"error\"\n title={title}\n message={message}\n className={t.visible ? s.toastEnter : s.toastExit}\n onClose={() => toast.dismiss(t.id)}\n />\n ))\n}\n","import { clsx } from 'clsx'\n\nimport s from './Card.module.css'\nimport { CardProps } from './Card.types'\n\nexport const Card = ({ className, children, ...rest }: CardProps) => {\n return (\n <div className={clsx(s.card, className)} {...rest}>\n {children}\n </div>\n )\n}\n","import { clsx } from 'clsx'\nimport s from './Checkbox.module.css'\nimport { CheckboxProps } from './Checkbox.types'\n\nexport const Checkbox = ({ children, className, checked, onChange, ...rest }: CheckboxProps) => {\n return (\n <label className={clsx(s.checkbox, className)}>\n <input type=\"checkbox\" className={s.input} checked={checked} onChange={onChange} {...rest} />\n\n <span className={s.control} />\n {children && <span className={s.labelSpan}>{children}</span>}\n </label>\n )\n}\n","import clsx from 'clsx'\nimport { Typography } from '@/components'\nimport s from './Label.module.css'\nimport { LabelProps } from './Label.types'\n\nexport const Label = ({\n text,\n textVariant = 'text-14-medium',\n required = false,\n color,\n className,\n htmlFor,\n ...rest\n}: LabelProps) => {\n return (\n <Typography\n as=\"label\"\n variant={textVariant}\n className={clsx(s.label, className)}\n htmlFor={htmlFor}\n style={color ? { color } : undefined}\n {...rest}\n >\n {text}\n {required && (\n <>\n <span className={s.required} aria-hidden=\"true\">\n *\n </span>\n <span className={s.srOnly}> (required)</span>\n </>\n )}\n </Typography>\n )\n}\n","import { clsx } from 'clsx'\n\nimport s from './Tab.module.css'\nimport type { TabProps } from './Tab.types'\n\nexport const Tab = (props: TabProps) => {\n const { children, selected = false, className, disabled = false, ...rest } = props\n\n const tabClasses = clsx(s.tab, selected && s.selected, disabled && s.disabled, className)\n\n return (\n <button\n type=\"button\"\n role=\"tab\"\n className={tabClasses}\n disabled={disabled}\n tabIndex={disabled ? -1 : 0}\n aria-selected={selected}\n aria-disabled={disabled}\n {...rest}\n >\n {children}\n </button>\n )\n}\n","import { clsx } from 'clsx'\nimport s from './Radio.module.css'\nimport { RadioProps } from './Radio.types'\n\nexport const Radio = ({ children, className, checked, onChange, ...rest }: RadioProps) => {\n return (\n <label className={clsx(s.radio, className)}>\n <input type=\"radio\" className={s.input} checked={checked} onChange={onChange} {...rest} />\n\n <span className={s.control} />\n {children && <span className={s.labelSpan}>{children}</span>}\n </label>\n )\n}\n","import { ElementType } from 'react'\n\nimport { clsx } from 'clsx'\n\nimport s from './Typography.module.css'\nimport { TypographyProps } from './Typography.types'\n\nexport const Typography = <T extends ElementType = 'span'>(props: TypographyProps<T>) => {\n const { as: Component = 'span', children, className, icon, variant, ...rest } = props\n\n return (\n <Component className={clsx(s.typography, s[variant], className)} {...rest}>\n {icon && <span className={s.icon}>{icon}</span>}\n {children}\n </Component>\n )\n}\n","import { useEffect, type RefObject } from 'react'\n\ntype UseDismissParams<T extends HTMLElement = HTMLElement> = {\n ref: RefObject<T | null>\n isOpen: boolean\n onDismiss: () => void\n}\n\nexport const useDismiss = <T extends HTMLElement = HTMLElement>({\n ref,\n isOpen,\n onDismiss,\n}: UseDismissParams<T>) => {\n useEffect(() => {\n if (!isOpen) return\n\n const handleClickOutside = (event: MouseEvent | TouchEvent) => {\n if (ref.current && !ref.current.contains(event.target as Node)) {\n onDismiss()\n }\n }\n\n const handleEscape = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n onDismiss()\n }\n }\n\n document.addEventListener('mousedown', handleClickOutside)\n document.addEventListener('touchstart', handleClickOutside)\n document.addEventListener('keydown', handleEscape)\n\n return () => {\n document.removeEventListener('mousedown', handleClickOutside)\n document.removeEventListener('touchstart', handleClickOutside)\n document.removeEventListener('keydown', handleEscape)\n }\n }, [isOpen, onDismiss, ref])\n}\n","import { isValid, parse } from 'date-fns'\nimport { DateRange } from 'react-day-picker'\n\nconst DATE_FORMAT = 'dd.MM.yyyy'\n\nexport const parseSingleDate = (value: string): Date | undefined => {\n if (!value) return undefined\n\n const parsedDate = parse(value, DATE_FORMAT, new Date())\n return isValid(parsedDate) ? parsedDate : undefined\n}\n\nexport const parseRangeDate = (value: string): DateRange | undefined => {\n if (!value) return undefined\n\n const separator = ' - '\n const separatorIndex = value.indexOf(separator)\n\n if (separatorIndex === -1) {\n const parsedDate = parse(value.trim(), DATE_FORMAT, new Date())\n if (isValid(parsedDate)) {\n return { from: parsedDate, to: undefined }\n }\n return undefined\n }\n\n const fromPart = value.substring(0, separatorIndex).trim()\n const toPart = value.substring(separatorIndex + separator.length).trim()\n\n if (!fromPart || !toPart) return undefined\n\n const fromDate = parse(fromPart, DATE_FORMAT, new Date())\n const toDate = parse(toPart, DATE_FORMAT, new Date())\n\n if (isValid(fromDate) && isValid(toDate)) {\n return { from: fromDate, to: toDate }\n }\n\n return undefined\n}\n\nexport const parseDateValue = (\n value: string,\n mode: 'single' | 'range',\n): Date | DateRange | undefined => {\n if (!value) return undefined\n\n if (mode === 'single') {\n return parseSingleDate(value)\n }\n\n return parseRangeDate(value)\n}\n","import { useState, useMemo } from 'react'\nimport { DateRange } from 'react-day-picker'\nimport { parseDateValue } from '../utils/parseDateValue'\n\nexport const useDatePickerState = (value: string, mode: 'single' | 'range') => {\n const [localMonth, setLocalMonth] = useState(new Date())\n\n const month = useMemo(() => {\n const parsedDate = parseDateValue(value, mode)\n\n if (!parsedDate) return localMonth\n\n if (mode === 'single' && parsedDate instanceof Date) {\n return parsedDate\n }\n\n if (mode === 'range' && typeof parsedDate === 'object' && 'from' in parsedDate) {\n const range = parsedDate as DateRange\n if (range.from) {\n return range.from\n }\n if (range.to) {\n return range.to\n }\n }\n\n return localMonth\n }, [value, mode, localMonth])\n\n const setMonth = (date: Date) => {\n setLocalMonth(date)\n }\n\n return {\n month,\n setMonth,\n }\n}\n","import { useEffect, useRef, useState } from 'react'\n\nimport { clsx } from 'clsx'\n\nimport SimpleBar from 'simplebar-react'\nimport 'simplebar-react/dist/simplebar.min.css'\n\nimport { ArrowDownIcon } from '@/icons'\n\nimport s from './Select.module.css'\nimport { SelectProps } from './'\n\nexport const Select = (props: SelectProps) => {\n const { className, disabled = false, label, onChange, options, placeholder, value } = props\n\n const [isOpen, setIsOpen] = useState(false)\n const selectRef = useRef<HTMLDivElement>(null)\n\n const selectedOption = options.find((option) => option.value === value)\n\n const handleToggle = () => {\n if (!disabled) {\n setIsOpen(!isOpen)\n }\n }\n\n const handleSelect = (optionValue: string) => {\n onChange?.(optionValue)\n setIsOpen(false)\n }\n\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (selectRef.current && !selectRef.current.contains(event.target as Node)) {\n setIsOpen(false)\n }\n }\n\n if (isOpen) {\n document.addEventListener('mousedown', handleClickOutside)\n }\n\n return () => {\n document.removeEventListener('mousedown', handleClickOutside)\n }\n }, [isOpen])\n\n return (\n <div className={clsx(s.container, className)}>\n {label && <label className={s.label}>{label}</label>}\n\n <div className={s.select} ref={selectRef}>\n <button\n className={clsx(s.trigger, isOpen && s.triggerOpen)}\n disabled={disabled}\n onClick={handleToggle}\n type=\"button\"\n aria-haspopup=\"listbox\"\n aria-expanded={isOpen}\n >\n <span className={selectedOption ? s.selectedContent : s.placeholder}>\n {selectedOption?.icon && <span className={s.optionIcon}>{selectedOption.icon}</span>}\n {selectedOption ? selectedOption.label : placeholder || 'Select an option'}\n </span>\n <span className={clsx(s.arrow, isOpen && s.open)}>\n <ArrowDownIcon />\n </span>\n </button>\n\n {isOpen && (\n <SimpleBar className={s.dropdown} role=\"listbox\" style={{ maxHeight: 191 }}>\n {options.map((option) => (\n <button\n key={option.value}\n className={clsx(s.option, option.value === value && s.selected)}\n onClick={() => handleSelect(option.value)}\n type=\"button\"\n role=\"option\"\n aria-selected={option.value === value}\n >\n {option.icon && <span className={s.optionIcon}>{option.icon}</span>}\n {option.label}\n </button>\n ))}\n </SimpleBar>\n )}\n </div>\n </div>\n )\n}\n","import React from 'react'\nimport clsx from 'clsx'\nimport { DropdownProps } from 'react-day-picker'\nimport { Select } from '../../Select'\nimport styles from '../DatePicker.module.css'\nimport { CaptionLayout, WeekStartsOn } from '../DatePicker.types'\n\nconst DropdownComponent = (props: DropdownProps) => {\n const handleDropdownChange = (value: string) => {\n if (props.onChange) {\n const syntheticEvent = {\n target: {\n value,\n },\n } as React.ChangeEvent<HTMLSelectElement>\n\n props.onChange(syntheticEvent)\n }\n }\n\n const selectOptions =\n props.options?.map((option) => ({\n value: option.value.toString(),\n label: option.label,\n })) || []\n\n return (\n <Select\n className={props.className}\n options={selectOptions}\n value={props.value?.toString() || ''}\n onChange={handleDropdownChange}\n />\n )\n}\n\nDropdownComponent.displayName = 'DatePickerDropdown'\n\nconst staticClassNames = {\n month_caption: styles.monthsCaption,\n button_previous: styles.navButtonPrevious,\n button_next: styles.navButtonNext,\n chevron: styles.navIcon,\n caption_label: styles.captionLabel,\n\n dropdowns: styles.dropdowns,\n dropdown_root: styles.dropdown_root,\n dropdown: styles.dropdown,\n dropdown_select_option: styles.option,\n\n months_dropdown: styles.monthsDropdown,\n years_dropdown: styles.yearsDropdown,\n\n month_grid: styles.monthGrid,\n weekday: styles.weekday,\n day_button: styles.dayButton,\n day: styles.day,\n outside: styles.dayOutside,\n selected: styles.daySelected,\n range_start: styles.dayRangeStart,\n range_middle: styles.dayRangeMiddle,\n range_end: styles.dayRangeEnd,\n today: styles.dayToday,\n} as const\n\nconst staticComponents = {\n Dropdown: DropdownComponent,\n} as const\n\nconst staticProps = {\n weekStartsOn: 1 as WeekStartsOn,\n showOutsideDays: true,\n reverseYears: true,\n captionLayout: 'dropdown' as CaptionLayout,\n} as const\n\nconst baseDayPickerProps = {\n components: staticComponents,\n ...staticProps,\n} as const\n\nexport const getDayPickerProps = (isOpen: boolean) => {\n return {\n ...baseDayPickerProps,\n classNames: {\n root: clsx(styles.calendar, isOpen && styles.open),\n ...staticClassNames,\n },\n }\n}\n","import { DateRange } from 'react-day-picker'\nimport { format } from 'date-fns'\n\nconst DATE_FORMAT = 'dd.MM.yyyy'\n\nexport const formatSingleDate = (date: Date | undefined): string => {\n if (!date) return ''\n return format(date, DATE_FORMAT)\n}\n\nexport const formatRangeDate = (range: DateRange | undefined): string => {\n if (!range || !range.from) return ''\n\n if (range.to && range.from.getTime() !== range.to.getTime()) {\n return `${format(range.from, DATE_FORMAT)} - ${format(range.to, DATE_FORMAT)}`\n }\n\n return format(range.from, DATE_FORMAT)\n}\n\nexport const formatDateValue = (\n value: Date | DateRange | undefined,\n mode: 'single' | 'range',\n): string => {\n if (!value) return ''\n\n if (mode === 'single' && value instanceof Date) {\n return formatSingleDate(value)\n }\n\n if (mode === 'range' && typeof value === 'object' && 'from' in value) {\n return formatRangeDate(value as DateRange)\n }\n\n return ''\n}\n","import { DateRange } from 'react-day-picker'\nimport { formatDateValue } from './formatDateValue'\n\ntype HandleDateSelectParams = {\n value: Date | DateRange | undefined\n mode: 'single' | 'range'\n onChange: (value: string) => void\n setMonth: (date: Date) => void\n setIsOpen: (open: boolean) => void\n}\n\nexport const handleDateSelect = ({\n value,\n mode,\n onChange,\n setMonth,\n setIsOpen,\n}: HandleDateSelectParams) => {\n if (!value) {\n onChange('')\n return\n }\n\n if (mode === 'single') {\n if (value instanceof Date) {\n setMonth(value)\n onChange(formatDateValue(value, 'single'))\n setIsOpen(false)\n }\n return\n }\n\n if (mode === 'range' && typeof value === 'object' && 'from' in value) {\n const range = value as DateRange\n\n if (range.from) {\n setMonth(range.from)\n } else if (range.to) {\n setMonth(range.to)\n }\n\n const formattedValue = formatDateValue(range, 'range')\n onChange(formattedValue)\n\n if (range.from && range.to && range.from.getTime() !== range.to.getTime()) {\n setIsOpen(false)\n }\n }\n}\n","import { DateRange } from 'react-day-picker'\n\nexport const updateMonthFromDate = (\n date: Date | DateRange | undefined,\n mode: 'single' | 'range',\n setMonth: (date: Date) => void,\n) => {\n if (!date) return\n\n if (mode === 'single' && date instanceof Date) {\n setMonth(date)\n return\n }\n\n if (mode === 'range' && typeof date === 'object' && 'from' in date) {\n const range = date as DateRange\n if (range.from) {\n setMonth(range.from)\n } else if (range.to) {\n setMonth(range.to)\n }\n }\n}\n","import { Typography } from '@/components/Typography'\nimport { CalendarIcon, CloseIcon } from '@/icons'\nimport clsx from 'clsx'\nimport { ChangeEvent, type MouseEvent, useEffect, useMemo, useRef, useState } from 'react'\nimport { DateRange, DayPicker, type DayPickerProps } from 'react-day-picker'\n\nimport styles from './DatePicker.module.css'\nimport { DatePickerProps } from './DatePicker.types'\nimport { useDismiss } from './hooks/useDismiss'\nimport { useDatePickerState } from './hooks/useDatePickerState'\nimport { getDayPickerProps } from './utils/getDayPickerProps'\nimport { handleDateSelect } from './utils/handleDateSelect'\nimport { parseDateValue } from './utils/parseDateValue'\nimport { updateMonthFromDate } from './utils/updateMonthFromDate'\n\nexport const DatePicker = ({\n mode,\n value,\n onChange,\n disabled,\n label,\n error,\n placeholder,\n ...rest\n}: DatePickerProps) => {\n const [isOpen, setIsOpen] = useState(false)\n const wrapperRef = useRef<HTMLDivElement>(null)\n const { month, setMonth } = useDatePickerState(value, mode)\n\n const parsedDate = useMemo(() => parseDateValue(value, mode), [value, mode])\n\n useEffect(() => {\n updateMonthFromDate(parsedDate, mode, setMonth)\n }, [parsedDate, mode, setMonth])\n\n const closeCalendar = () => {\n setIsOpen(false)\n }\n\n useDismiss({ ref: wrapperRef, isOpen, onDismiss: closeCalendar })\n\n const handleClear = (e: MouseEvent<HTMLButtonElement>) => {\n e.stopPropagation()\n handleSelect(undefined)\n }\n\n const handleToggle = () => {\n if (disabled) return\n setIsOpen((prev) => !prev)\n }\n\n const handleInputChange = (e: ChangeEvent<HTMLInputElement>) => {\n const inputValue = e.currentTarget.value\n onChange(inputValue)\n }\n\n const handleSelect = (selectedValue: Date | DateRange | undefined) => {\n handleDateSelect({\n value: selectedValue,\n mode,\n onChange,\n setMonth,\n setIsOpen,\n })\n }\n\n const commonDayPickerProps = useMemo(() => getDayPickerProps(isOpen), [isOpen])\n\n return (\n <div ref={wrapperRef} className={styles.wrapper}>\n <div className={styles.inputContainer}>\n {label && (\n <span className={disabled ? styles.disabledLabel : styles.label}>\n <Typography variant=\"text-14\">{label}</Typography>\n </span>\n )}\n <div className={styles.inputWrapper}>\n <input\n type=\"text\"\n className={clsx(styles.trigger, error && styles.error)}\n onClick={handleToggle}\n value={value}\n onChange={handleInputChange}\n placeholder={placeholder}\n disabled={disabled}\n aria-label={label || 'Select date'}\n aria-expanded={isOpen}\n aria-haspopup=\"dialog\"\n aria-invalid={error ? 'true' : 'false'}\n {...rest}\n />\n {value && !disabled && (\n <button\n type=\"button\"\n className={styles.clearButton}\n onClick={handleClear}\n aria-label=\"Clear date\"\n >\n <CloseIcon className={styles.clearIcon} />\n </button>\n )}\n <CalendarIcon className={clsx(styles.icon, !value && styles.placeholder)} />\n </div>\n {error && (\n <Typography variant=\"small\" className={styles.error}>\n {error}\n </Typography>\n )}\n </div>\n\n {mode === 'single' ? (\n <DayPicker\n {...(commonDayPickerProps as DayPickerProps)}\n month={month}\n onMonthChange={setMonth}\n mode=\"single\"\n selected={parsedDate instanceof Date ? parsedDate : undefined}\n onSelect={handleSelect}\n />\n ) : (\n <DayPicker\n {...(commonDayPickerProps as DayPickerProps)}\n month={month}\n onMonthChange={setMonth}\n mode=\"range\"\n selected={\n parsedDate && typeof parsedDate === 'object' && 'from' in parsedDate\n ? (parsedDate as DateRange)\n : undefined\n }\n onSelect={handleSelect}\n />\n )}\n </div>\n )\n}\n"],"names":["Button","props","className","variant","asLink","icon","rest","classes","clsx","s","children","linkProps","jsxs","jsx","buttonProps","Input","forwardRef","label","errorMessage","startIcon","endIcon","onEndIconClick","allowPasswordToggle","disabled","type","required","id","ref","generatedId","useId","inputId","errorId","isError","isPassword","showPassword","setShowPassword","useState","EyeOffIcon","EyeIcon","Textarea","minHeight","textareaId","Alert","title","message","onClose","CloseIcon","toastSuccess","toast","t","toastError","Card","Checkbox","checked","onChange","Label","text","textVariant","color","htmlFor","Typography","Fragment","Tab","selected","tabClasses","Radio","Component","useDismiss","isOpen","onDismiss","useEffect","handleClickOutside","event","handleEscape","DATE_FORMAT","parseSingleDate","value","parsedDate","parse","isValid","parseRangeDate","separator","separatorIndex","fromPart","toPart","fromDate","toDate","parseDateValue","mode","useDatePickerState","localMonth","setLocalMonth","useMemo","range","date","Select","options","placeholder","setIsOpen","selectRef","useRef","selectedOption","option","handleToggle","handleSelect","optionValue","ArrowDownIcon","SimpleBar","DropdownComponent","handleDropdownChange","syntheticEvent","selectOptions","staticClassNames","styles","staticComponents","staticProps","baseDayPickerProps","getDayPickerProps","formatSingleDate","format","formatRangeDate","formatDateValue","handleDateSelect","setMonth","formattedValue","updateMonthFromDate","DatePicker","error","wrapperRef","month","handleClear","e","prev","handleInputChange","inputValue","selectedValue","commonDayPickerProps","CalendarIcon","DayPicker"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/components/Button/Button.tsx","../src/components/Input/Input.tsx","../src/components/Textarea/Textarea.tsx","../src/components/Alert/Alert.tsx","../src/components/Alert/toast.tsx","../src/components/Card/Card.tsx","../src/components/Checkbox/Checkbox.tsx","../src/components/Label/Label.tsx","../src/components/Tab/Tab.tsx","../src/components/Radio/Radio.tsx","../src/components/Typography/Typography.tsx","../src/components/DatePicker/hooks/useDismiss.ts","../src/components/DatePicker/utils/parseDateValue.ts","../src/components/DatePicker/hooks/useDatePickerState.ts","../src/components/Select/Select.tsx","../src/components/DatePicker/utils/getDayPickerProps.tsx","../src/components/DatePicker/utils/formatDateValue.ts","../src/components/DatePicker/utils/handleDateSelect.ts","../src/components/DatePicker/utils/updateMonthFromDate.ts","../src/components/DatePicker/DatePicker.tsx"],"sourcesContent":["import { ElementType } from 'react'\n\nimport { clsx } from 'clsx'\n\nimport s from './Button.module.css'\nimport { ButtonProps } from './Button.types'\n\nexport const Button = <T extends ElementType = 'button'>(props: ButtonProps<T>) => {\n const { as: Component = 'button', className, variant = 'primary', icon, ...rest } = props\n const classes = clsx(s.button, s[variant], className)\n const { children, ...componentProps } = rest\n\n return (\n <Component className={classes} {...componentProps}>\n {icon && <span className={s.icon}>{icon}</span>}\n {children}\n </Component>\n )\n}\n","import { forwardRef, useId, useState } from 'react'\nimport { clsx } from 'clsx'\n\nimport s from './Input.module.css'\nimport { InputProps } from './Input.types'\nimport { EyeIcon, EyeOffIcon } from '@/icons'\n\nexport const Input = forwardRef<HTMLInputElement, InputProps>(\n (\n {\n label,\n errorMessage,\n startIcon,\n endIcon,\n onEndIconClick,\n allowPasswordToggle,\n disabled,\n type = 'text',\n className,\n required,\n id,\n ...rest\n },\n ref,\n ) => {\n const generatedId = useId()\n const inputId = id ?? generatedId\n const errorId = errorMessage ? `${inputId}-error` : undefined\n\n const isError = Boolean(errorMessage)\n const isPassword = type === 'password' && allowPasswordToggle\n\n const [showPassword, setShowPassword] = useState(false)\n\n return (\n <div className={clsx(s.wrapper, className)}>\n {label && (\n <label htmlFor={inputId} className={clsx(s.label, { [s.disabled]: disabled })}>\n {label}\n {required && <sup className={s.required}> *</sup>}\n </label>\n )}\n\n <div\n className={clsx(s.inputContainer, {\n [s.error]: isError,\n [s.disabled]: disabled,\n [s.withStartIcon]: Boolean(startIcon),\n [s.withEndIcon]: Boolean(endIcon) || isPassword,\n })}\n >\n {startIcon && <span className={s.startIcon}>{startIcon}</span>}\n\n <input\n ref={ref}\n id={inputId}\n className={s.input}\n type={isPassword && showPassword ? 'text' : type}\n autoComplete={type === 'password' ? 'current-password' : 'off'}\n required={required}\n disabled={disabled}\n aria-invalid={isError}\n aria-describedby={errorId}\n {...rest}\n />\n\n {isPassword && (\n <button\n type=\"button\"\n className={s.endIcon}\n onClick={() => setShowPassword((v) => !v)}\n aria-label={showPassword ? 'Hide password' : 'Show password'}\n disabled={disabled}\n tabIndex={-1}\n >\n {showPassword ? <EyeOffIcon /> : <EyeIcon />}\n </button>\n )}\n\n {endIcon && !isPassword && (\n <button\n type=\"button\"\n className={s.endIcon}\n onClick={onEndIconClick}\n aria-label=\"Action\"\n disabled={disabled}\n >\n {endIcon}\n </button>\n )}\n </div>\n\n {isError && (\n <span id={errorId} className={s.errorMessage} role=\"alert\">\n {errorMessage}\n </span>\n )}\n </div>\n )\n },\n)\n\nInput.displayName = 'Input'\n","import { forwardRef, useId } from 'react'\nimport { clsx } from 'clsx'\n\nimport s from './Textarea.module.css'\nimport type { TextareaProps } from './Textarea.types'\n\nexport const Textarea = forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ label, errorMessage, id, className, disabled, minHeight = 84, required, ...rest }, ref) => {\n const generatedId = useId()\n const textareaId = id ?? generatedId\n const errorId = errorMessage ? `${textareaId}-error` : undefined\n\n return (\n <div className={clsx(s.textareaWrapper, className)}>\n {label && (\n <label htmlFor={textareaId} className={clsx(s.label, { [s.disabled]: disabled })}>\n {label}\n {required && <sup className={s.required}> *</sup>}\n </label>\n )}\n\n <textarea\n ref={ref}\n id={textareaId}\n className={clsx(s.textarea, { [s.errorState]: !!errorMessage })}\n aria-invalid={!!errorMessage}\n aria-describedby={errorId}\n required={required}\n disabled={disabled}\n style={{ minHeight }}\n {...rest}\n />\n\n {errorMessage && (\n <span id={errorId} role=\"alert\" className={s.errorMessage}>\n {errorMessage}\n </span>\n )}\n </div>\n )\n },\n)\n\nTextarea.displayName = 'Textarea'\n","import { FC } from 'react'\nimport clsx from 'clsx'\n\nimport s from './Alert.module.css'\nimport { CloseIcon } from '@/icons'\nimport type { AlertProps } from './Alert.types'\n\nexport const Alert: FC<AlertProps> = ({\n variant = 'error',\n title,\n message,\n className,\n onClose,\n}) => {\n return (\n <div className={clsx(s.alert, s[variant], className)} role=\"alert\">\n <div className={s.content}>\n {title && <div className={s.title}>{title}</div>}\n <div className={s.message}>{message}</div>\n </div>\n\n {onClose && (\n <button type=\"button\" className={s.closeButton} onClick={onClose} aria-label=\"Close alert\">\n <CloseIcon />\n </button>\n )}\n </div>\n )\n}\n","import { toast } from 'react-hot-toast'\nimport { Alert } from './Alert'\nimport s from './Alert.module.css'\n\n/**\n * Show a success toast rendered with the shared `Alert` component.\n * @param message - Text to display in the toast body.\n */\nexport const toastSuccess = (message: string) => {\n toast.custom((t) => (\n <Alert\n variant=\"success\"\n message={message}\n className={t.visible ? s.toastEnter : s.toastExit}\n onClose={() => toast.dismiss(t.id)}\n />\n ))\n}\n\n/**\n * Show an error toast rendered with the shared `Alert` component.\n * @param message - Text to display in the toast body.\n * @param title - Optional heading shown above the message. Defaults to `\"Error!\"`.\n */\nexport const toastError = (message: string, title = 'Error!') => {\n toast.custom((t) => (\n <Alert\n variant=\"error\"\n title={title}\n message={message}\n className={t.visible ? s.toastEnter : s.toastExit}\n onClose={() => toast.dismiss(t.id)}\n />\n ))\n}\n","import { clsx } from 'clsx'\n\nimport s from './Card.module.css'\nimport { CardProps } from './Card.types'\n\nexport const Card = ({ className, children, ...rest }: CardProps) => {\n return (\n <div className={clsx(s.card, className)} {...rest}>\n {children}\n </div>\n )\n}\n","import { clsx } from 'clsx'\nimport s from './Checkbox.module.css'\nimport { CheckboxProps } from './Checkbox.types'\n\nexport const Checkbox = ({ children, className, checked, onChange, ...rest }: CheckboxProps) => {\n return (\n <label className={clsx(s.checkbox, className)}>\n <input type=\"checkbox\" className={s.input} checked={checked} onChange={onChange} {...rest} />\n\n <span className={s.control} />\n {children && <span className={s.labelSpan}>{children}</span>}\n </label>\n )\n}\n","import clsx from 'clsx'\nimport { Typography } from '@/components'\nimport s from './Label.module.css'\nimport { LabelProps } from './Label.types'\n\nexport const Label = ({\n text,\n textVariant = 'text-14-medium',\n required = false,\n color,\n className,\n htmlFor,\n ...rest\n}: LabelProps) => {\n return (\n <Typography\n as=\"label\"\n variant={textVariant}\n className={clsx(s.label, className)}\n htmlFor={htmlFor}\n style={color ? { color } : undefined}\n {...rest}\n >\n {text}\n {required && (\n <>\n <span className={s.required} aria-hidden=\"true\">\n *\n </span>\n <span className={s.srOnly}> (required)</span>\n </>\n )}\n </Typography>\n )\n}\n","import { clsx } from 'clsx'\n\nimport s from './Tab.module.css'\nimport type { TabProps } from './Tab.types'\n\nexport const Tab = (props: TabProps) => {\n const { children, selected = false, className, disabled = false, ...rest } = props\n\n const tabClasses = clsx(s.tab, selected && s.selected, disabled && s.disabled, className)\n\n return (\n <button\n type=\"button\"\n role=\"tab\"\n className={tabClasses}\n disabled={disabled}\n tabIndex={disabled ? -1 : 0}\n aria-selected={selected}\n aria-disabled={disabled}\n {...rest}\n >\n {children}\n </button>\n )\n}\n","import { clsx } from 'clsx'\nimport s from './Radio.module.css'\nimport { RadioProps } from './Radio.types'\n\nexport const Radio = ({ children, className, checked, onChange, ...rest }: RadioProps) => {\n return (\n <label className={clsx(s.radio, className)}>\n <input type=\"radio\" className={s.input} checked={checked} onChange={onChange} {...rest} />\n\n <span className={s.control} />\n {children && <span className={s.labelSpan}>{children}</span>}\n </label>\n )\n}\n","import { ElementType } from 'react'\n\nimport { clsx } from 'clsx'\n\nimport s from './Typography.module.css'\nimport { TypographyProps } from './Typography.types'\n\nexport const Typography = <T extends ElementType = 'span'>(props: TypographyProps<T>) => {\n const { as: Component = 'span', children, className, icon, variant, ...rest } = props\n\n return (\n <Component className={clsx(s.typography, s[variant], className)} {...rest}>\n {icon && <span className={s.icon}>{icon}</span>}\n {children}\n </Component>\n )\n}\n","import { useEffect, type RefObject } from 'react'\n\ntype UseDismissParams<T extends HTMLElement = HTMLElement> = {\n ref: RefObject<T | null>\n isOpen: boolean\n onDismiss: () => void\n}\n\nexport const useDismiss = <T extends HTMLElement = HTMLElement>({\n ref,\n isOpen,\n onDismiss,\n}: UseDismissParams<T>) => {\n useEffect(() => {\n if (!isOpen) return\n\n const handleClickOutside = (event: MouseEvent | TouchEvent) => {\n if (ref.current && !ref.current.contains(event.target as Node)) {\n onDismiss()\n }\n }\n\n const handleEscape = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n onDismiss()\n }\n }\n\n document.addEventListener('mousedown', handleClickOutside)\n document.addEventListener('touchstart', handleClickOutside)\n document.addEventListener('keydown', handleEscape)\n\n return () => {\n document.removeEventListener('mousedown', handleClickOutside)\n document.removeEventListener('touchstart', handleClickOutside)\n document.removeEventListener('keydown', handleEscape)\n }\n }, [isOpen, onDismiss, ref])\n}\n","import { isValid, parse } from 'date-fns'\nimport { DateRange } from 'react-day-picker'\n\nconst DATE_FORMAT = 'dd.MM.yyyy'\n\nexport const parseSingleDate = (value: string): Date | undefined => {\n if (!value) return undefined\n\n const parsedDate = parse(value, DATE_FORMAT, new Date())\n return isValid(parsedDate) ? parsedDate : undefined\n}\n\nexport const parseRangeDate = (value: string): DateRange | undefined => {\n if (!value) return undefined\n\n const separator = ' - '\n const separatorIndex = value.indexOf(separator)\n\n if (separatorIndex === -1) {\n const parsedDate = parse(value.trim(), DATE_FORMAT, new Date())\n if (isValid(parsedDate)) {\n return { from: parsedDate, to: undefined }\n }\n return undefined\n }\n\n const fromPart = value.substring(0, separatorIndex).trim()\n const toPart = value.substring(separatorIndex + separator.length).trim()\n\n if (!fromPart || !toPart) return undefined\n\n const fromDate = parse(fromPart, DATE_FORMAT, new Date())\n const toDate = parse(toPart, DATE_FORMAT, new Date())\n\n if (isValid(fromDate) && isValid(toDate)) {\n return { from: fromDate, to: toDate }\n }\n\n return undefined\n}\n\nexport const parseDateValue = (\n value: string,\n mode: 'single' | 'range',\n): Date | DateRange | undefined => {\n if (!value) return undefined\n\n if (mode === 'single') {\n return parseSingleDate(value)\n }\n\n return parseRangeDate(value)\n}\n","import { useState, useMemo } from 'react'\nimport { DateRange } from 'react-day-picker'\nimport { parseDateValue } from '../utils/parseDateValue'\n\nexport const useDatePickerState = (value: string, mode: 'single' | 'range') => {\n const [localMonth, setLocalMonth] = useState(new Date())\n\n const month = useMemo(() => {\n const parsedDate = parseDateValue(value, mode)\n\n if (!parsedDate) return localMonth\n\n if (mode === 'single' && parsedDate instanceof Date) {\n return parsedDate\n }\n\n if (mode === 'range' && typeof parsedDate === 'object' && 'from' in parsedDate) {\n const range = parsedDate as DateRange\n if (range.from) {\n return range.from\n }\n if (range.to) {\n return range.to\n }\n }\n\n return localMonth\n }, [value, mode, localMonth])\n\n const setMonth = (date: Date) => {\n setLocalMonth(date)\n }\n\n return {\n month,\n setMonth,\n }\n}\n","import { useEffect, useRef, useState } from 'react'\n\nimport { clsx } from 'clsx'\n\nimport SimpleBar from 'simplebar-react'\nimport 'simplebar-react/dist/simplebar.min.css'\n\nimport { ArrowDownIcon } from '@/icons'\n\nimport s from './Select.module.css'\nimport { SelectProps } from './'\n\nexport const Select = (props: SelectProps) => {\n const { className, disabled = false, label, onChange, options, placeholder, value } = props\n\n const [isOpen, setIsOpen] = useState(false)\n const selectRef = useRef<HTMLDivElement>(null)\n\n const selectedOption = options.find((option) => option.value === value)\n\n const handleToggle = () => {\n if (!disabled) {\n setIsOpen(!isOpen)\n }\n }\n\n const handleSelect = (optionValue: string) => {\n onChange?.(optionValue)\n setIsOpen(false)\n }\n\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (selectRef.current && !selectRef.current.contains(event.target as Node)) {\n setIsOpen(false)\n }\n }\n\n if (isOpen) {\n document.addEventListener('mousedown', handleClickOutside)\n }\n\n return () => {\n document.removeEventListener('mousedown', handleClickOutside)\n }\n }, [isOpen])\n\n return (\n <div className={clsx(s.container, className)}>\n {label && <label className={s.label}>{label}</label>}\n\n <div className={s.select} ref={selectRef}>\n <button\n className={clsx(s.trigger, isOpen && s.triggerOpen)}\n disabled={disabled}\n onClick={handleToggle}\n type=\"button\"\n aria-haspopup=\"listbox\"\n aria-expanded={isOpen}\n >\n <span className={selectedOption ? s.selectedContent : s.placeholder}>\n {selectedOption?.icon && <span className={s.optionIcon}>{selectedOption.icon}</span>}\n {selectedOption ? selectedOption.label : placeholder || 'Select an option'}\n </span>\n <span className={clsx(s.arrow, isOpen && s.open)}>\n <ArrowDownIcon />\n </span>\n </button>\n\n {isOpen && (\n <SimpleBar className={s.dropdown} role=\"listbox\" style={{ maxHeight: 191 }}>\n {options.map((option) => (\n <button\n key={option.value}\n className={clsx(s.option, option.value === value && s.selected)}\n onClick={() => handleSelect(option.value)}\n type=\"button\"\n role=\"option\"\n aria-selected={option.value === value}\n >\n {option.icon && <span className={s.optionIcon}>{option.icon}</span>}\n {option.label}\n </button>\n ))}\n </SimpleBar>\n )}\n </div>\n </div>\n )\n}\n","import React from 'react'\nimport clsx from 'clsx'\nimport { DropdownProps } from 'react-day-picker'\nimport { Select } from '../../Select'\nimport styles from '../DatePicker.module.css'\nimport { CaptionLayout, WeekStartsOn } from '../DatePicker.types'\n\nconst DropdownComponent = (props: DropdownProps) => {\n const handleDropdownChange = (value: string) => {\n if (props.onChange) {\n const syntheticEvent = {\n target: {\n value,\n },\n } as React.ChangeEvent<HTMLSelectElement>\n\n props.onChange(syntheticEvent)\n }\n }\n\n const selectOptions =\n props.options?.map((option) => ({\n value: option.value.toString(),\n label: option.label,\n })) || []\n\n return (\n <Select\n className={props.className}\n options={selectOptions}\n value={props.value?.toString() || ''}\n onChange={handleDropdownChange}\n />\n )\n}\n\nDropdownComponent.displayName = 'DatePickerDropdown'\n\nconst staticClassNames = {\n month_caption: styles.monthsCaption,\n button_previous: styles.navButtonPrevious,\n button_next: styles.navButtonNext,\n chevron: styles.navIcon,\n caption_label: styles.captionLabel,\n\n dropdowns: styles.dropdowns,\n dropdown_root: styles.dropdown_root,\n dropdown: styles.dropdown,\n dropdown_select_option: styles.option,\n\n months_dropdown: styles.monthsDropdown,\n years_dropdown: styles.yearsDropdown,\n\n month_grid: styles.monthGrid,\n weekday: styles.weekday,\n day_button: styles.dayButton,\n day: styles.day,\n outside: styles.dayOutside,\n selected: styles.daySelected,\n range_start: styles.dayRangeStart,\n range_middle: styles.dayRangeMiddle,\n range_end: styles.dayRangeEnd,\n today: styles.dayToday,\n} as const\n\nconst staticComponents = {\n Dropdown: DropdownComponent,\n} as const\n\nconst staticProps = {\n weekStartsOn: 1 as WeekStartsOn,\n showOutsideDays: true,\n reverseYears: true,\n captionLayout: 'dropdown' as CaptionLayout,\n} as const\n\nconst baseDayPickerProps = {\n components: staticComponents,\n ...staticProps,\n} as const\n\nexport const getDayPickerProps = (isOpen: boolean) => {\n return {\n ...baseDayPickerProps,\n classNames: {\n root: clsx(styles.calendar, isOpen && styles.open),\n ...staticClassNames,\n },\n }\n}\n","import { DateRange } from 'react-day-picker'\nimport { format } from 'date-fns'\n\nconst DATE_FORMAT = 'dd.MM.yyyy'\n\nexport const formatSingleDate = (date: Date | undefined): string => {\n if (!date) return ''\n return format(date, DATE_FORMAT)\n}\n\nexport const formatRangeDate = (range: DateRange | undefined): string => {\n if (!range || !range.from) return ''\n\n if (range.to && range.from.getTime() !== range.to.getTime()) {\n return `${format(range.from, DATE_FORMAT)} - ${format(range.to, DATE_FORMAT)}`\n }\n\n return format(range.from, DATE_FORMAT)\n}\n\nexport const formatDateValue = (\n value: Date | DateRange | undefined,\n mode: 'single' | 'range',\n): string => {\n if (!value) return ''\n\n if (mode === 'single' && value instanceof Date) {\n return formatSingleDate(value)\n }\n\n if (mode === 'range' && typeof value === 'object' && 'from' in value) {\n return formatRangeDate(value as DateRange)\n }\n\n return ''\n}\n","import { DateRange } from 'react-day-picker'\nimport { formatDateValue } from './formatDateValue'\n\ntype HandleDateSelectParams = {\n value: Date | DateRange | undefined\n mode: 'single' | 'range'\n onChange: (value: string) => void\n setMonth: (date: Date) => void\n setIsOpen: (open: boolean) => void\n}\n\nexport const handleDateSelect = ({\n value,\n mode,\n onChange,\n setMonth,\n setIsOpen,\n}: HandleDateSelectParams) => {\n if (!value) {\n onChange('')\n return\n }\n\n if (mode === 'single') {\n if (value instanceof Date) {\n setMonth(value)\n onChange(formatDateValue(value, 'single'))\n setIsOpen(false)\n }\n return\n }\n\n if (mode === 'range' && typeof value === 'object' && 'from' in value) {\n const range = value as DateRange\n\n if (range.from) {\n setMonth(range.from)\n } else if (range.to) {\n setMonth(range.to)\n }\n\n const formattedValue = formatDateValue(range, 'range')\n onChange(formattedValue)\n\n if (range.from && range.to && range.from.getTime() !== range.to.getTime()) {\n setIsOpen(false)\n }\n }\n}\n","import { DateRange } from 'react-day-picker'\n\nexport const updateMonthFromDate = (\n date: Date | DateRange | undefined,\n mode: 'single' | 'range',\n setMonth: (date: Date) => void,\n) => {\n if (!date) return\n\n if (mode === 'single' && date instanceof Date) {\n setMonth(date)\n return\n }\n\n if (mode === 'range' && typeof date === 'object' && 'from' in date) {\n const range = date as DateRange\n if (range.from) {\n setMonth(range.from)\n } else if (range.to) {\n setMonth(range.to)\n }\n }\n}\n","import { Typography } from '@/components/Typography'\nimport { CalendarIcon, CloseIcon } from '@/icons'\nimport clsx from 'clsx'\nimport { ChangeEvent, type MouseEvent, useEffect, useMemo, useRef, useState } from 'react'\nimport { DateRange, DayPicker, type DayPickerProps } from 'react-day-picker'\n\nimport styles from './DatePicker.module.css'\nimport { DatePickerProps } from './DatePicker.types'\nimport { useDismiss } from './hooks/useDismiss'\nimport { useDatePickerState } from './hooks/useDatePickerState'\nimport { getDayPickerProps } from './utils/getDayPickerProps'\nimport { handleDateSelect } from './utils/handleDateSelect'\nimport { parseDateValue } from './utils/parseDateValue'\nimport { updateMonthFromDate } from './utils/updateMonthFromDate'\n\nexport const DatePicker = ({\n mode,\n value,\n onChange,\n disabled,\n label,\n error,\n placeholder,\n ...rest\n}: DatePickerProps) => {\n const [isOpen, setIsOpen] = useState(false)\n const wrapperRef = useRef<HTMLDivElement>(null)\n const { month, setMonth } = useDatePickerState(value, mode)\n\n const parsedDate = useMemo(() => parseDateValue(value, mode), [value, mode])\n\n useEffect(() => {\n updateMonthFromDate(parsedDate, mode, setMonth)\n }, [parsedDate, mode, setMonth])\n\n const closeCalendar = () => {\n setIsOpen(false)\n }\n\n useDismiss({ ref: wrapperRef, isOpen, onDismiss: closeCalendar })\n\n const handleClear = (e: MouseEvent<HTMLButtonElement>) => {\n e.stopPropagation()\n handleSelect(undefined)\n }\n\n const handleToggle = () => {\n if (disabled) return\n setIsOpen((prev) => !prev)\n }\n\n const handleInputChange = (e: ChangeEvent<HTMLInputElement>) => {\n const inputValue = e.currentTarget.value\n onChange(inputValue)\n }\n\n const handleSelect = (selectedValue: Date | DateRange | undefined) => {\n handleDateSelect({\n value: selectedValue,\n mode,\n onChange,\n setMonth,\n setIsOpen,\n })\n }\n\n const commonDayPickerProps = useMemo(() => getDayPickerProps(isOpen), [isOpen])\n\n return (\n <div ref={wrapperRef} className={styles.wrapper}>\n <div className={styles.inputContainer}>\n {label && (\n <span className={disabled ? styles.disabledLabel : styles.label}>\n <Typography variant=\"text-14\">{label}</Typography>\n </span>\n )}\n <div className={styles.inputWrapper}>\n <input\n type=\"text\"\n className={clsx(styles.trigger, error && styles.error)}\n onClick={handleToggle}\n value={value}\n onChange={handleInputChange}\n placeholder={placeholder}\n disabled={disabled}\n aria-label={label || 'Select date'}\n aria-expanded={isOpen}\n aria-haspopup=\"dialog\"\n aria-invalid={error ? 'true' : 'false'}\n {...rest}\n />\n {value && !disabled && (\n <button\n type=\"button\"\n className={styles.clearButton}\n onClick={handleClear}\n aria-label=\"Clear date\"\n >\n <CloseIcon className={styles.clearIcon} />\n </button>\n )}\n <CalendarIcon className={clsx(styles.icon, !value && styles.placeholder)} />\n </div>\n {error && (\n <Typography variant=\"small\" className={styles.error}>\n {error}\n </Typography>\n )}\n </div>\n\n {mode === 'single' ? (\n <DayPicker\n {...(commonDayPickerProps as DayPickerProps)}\n month={month}\n onMonthChange={setMonth}\n mode=\"single\"\n selected={parsedDate instanceof Date ? parsedDate : undefined}\n onSelect={handleSelect}\n />\n ) : (\n <DayPicker\n {...(commonDayPickerProps as DayPickerProps)}\n month={month}\n onMonthChange={setMonth}\n mode=\"range\"\n selected={\n parsedDate && typeof parsedDate === 'object' && 'from' in parsedDate\n ? (parsedDate as DateRange)\n : undefined\n }\n onSelect={handleSelect}\n />\n )}\n </div>\n )\n}\n"],"names":["Button","props","Component","className","variant","icon","rest","classes","clsx","s","children","componentProps","jsxs","jsx","Input","forwardRef","label","errorMessage","startIcon","endIcon","onEndIconClick","allowPasswordToggle","disabled","type","required","id","ref","generatedId","useId","inputId","errorId","isError","isPassword","showPassword","setShowPassword","useState","EyeOffIcon","EyeIcon","Textarea","minHeight","textareaId","Alert","title","message","onClose","CloseIcon","toastSuccess","toast","t","toastError","Card","Checkbox","checked","onChange","Label","text","textVariant","color","htmlFor","Typography","Fragment","Tab","selected","tabClasses","Radio","useDismiss","isOpen","onDismiss","useEffect","handleClickOutside","event","handleEscape","DATE_FORMAT","parseSingleDate","value","parsedDate","parse","isValid","parseRangeDate","separator","separatorIndex","fromPart","toPart","fromDate","toDate","parseDateValue","mode","useDatePickerState","localMonth","setLocalMonth","useMemo","range","date","Select","options","placeholder","setIsOpen","selectRef","useRef","selectedOption","option","handleToggle","handleSelect","optionValue","ArrowDownIcon","SimpleBar","DropdownComponent","handleDropdownChange","syntheticEvent","selectOptions","staticClassNames","styles","staticComponents","staticProps","baseDayPickerProps","getDayPickerProps","formatSingleDate","format","formatRangeDate","formatDateValue","handleDateSelect","setMonth","formattedValue","updateMonthFromDate","DatePicker","error","wrapperRef","month","handleClear","e","prev","handleInputChange","inputValue","selectedValue","commonDayPickerProps","CalendarIcon","DayPicker"],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "snapflow-ui-kit",
3
3
  "private": false,
4
- "version": "1.0.0",
4
+ "version": "1.0.1",
5
5
  "type": "module",
6
6
  "packageManager": "pnpm@10.28.2",
7
7
  "main": "dist/index.js",