meticulous-ui 3.6.1 → 3.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,65 +1,86 @@
1
- import { jsxs as D, jsx as o } from "react/jsx-runtime";
2
- import { useRef as v } from "react";
3
- import L from "../Spinner/Spinner.js";
4
- import I from "../../colors/colorMap.js";
5
- import { blue as f } from "../../colors/blue.js";
6
- import { ButtonWrapper as K, SpinnerWrapper as R, Content as B, ButtonContainer as E } from "./styles.js";
7
- import S from "../Ripple/Ripple.js";
8
- import j from "../../colors/white.js";
9
- import k from "../../colors/grey.js";
10
- import { MEDIUM as z, SIZE as M } from "./constants.js";
11
- const P = ({ theme: t, children: i }) => /* @__PURE__ */ o(S, { rippleColor: t.m100, children: i }), T = (t) => {
1
+ import { jsxs as I, jsx as e } from "react/jsx-runtime";
2
+ import { useRef as L } from "react";
3
+ import v from "../Spinner/Spinner.js";
4
+ import T from "../../colors/colorMap.js";
5
+ import { blue as g } from "../../colors/blue.js";
6
+ import { ButtonWrapper as K, SpinnerWrapper as R, Content as z, ButtonContainer as B } from "./styles.js";
7
+ import E from "../Ripple/Ripple.js";
8
+ import P from "../../colors/white.js";
9
+ import S from "../../colors/grey.js";
10
+ import { MEDIUM as j, SIZE as k } from "./constants.js";
11
+ import o from "../../_virtual/index.js";
12
+ const M = ({ theme: t, children: n }) => /* @__PURE__ */ e(E, { rippleColor: t.m100, children: n }), W = (t) => {
12
13
  const {
13
- children: i,
14
- theme: n = f,
15
- size: u = z,
16
- width: l,
17
- leftIcon: W,
14
+ children: n,
15
+ theme: l = g,
16
+ size: u = j,
17
+ width: s,
18
+ leftIcon: O,
18
19
  rightIcon: U,
19
- isLoading: e,
20
- textColor: s,
20
+ isLoading: r,
21
+ textColor: d,
21
22
  onKeyDown: w,
22
- ...C
23
- } = t || {}, d = v(0), $ = (r) => {
24
- if (r.key === "Enter" || r.key === " ") {
25
- const h = Date.now();
26
- if (h - d.current < 500) {
27
- r.preventDefault(), r.stopPropagation();
23
+ ...y
24
+ } = t || {}, m = L(0), C = (i) => {
25
+ if (i.key === "Enter" || i.key === " ") {
26
+ const f = Date.now();
27
+ if (f - m.current < 500) {
28
+ i.preventDefault(), i.stopPropagation();
28
29
  return;
29
30
  }
30
- d.current = h;
31
+ m.current = f;
31
32
  }
32
- w?.(r);
33
- }, { m400: g, m500: y, m600: b } = I[n] ?? f, { height: m, width: c, font: x } = M[u] || {}, a = ["white", "yellow"].includes(n) ? k.m600 : j, p = /* @__PURE__ */ D(
33
+ w?.(i);
34
+ }, { m400: $, m500: b, m600: x } = T[l] ?? g, { height: p, width: c, font: D } = k[u] || {}, h = ["white", "yellow"].includes(l) ? S.m600 : P, a = /* @__PURE__ */ I(
34
35
  K,
35
36
  {
36
37
  type: "button",
37
- ...C,
38
- onKeyDown: $,
39
- $hoverColor: y,
40
- $activeColor: b,
41
- $selectedColor: g,
42
- $height: m,
43
- $width: l || c,
38
+ ...y,
39
+ onKeyDown: C,
40
+ $hoverColor: b,
41
+ $activeColor: x,
42
+ $selectedColor: $,
43
+ $height: p,
44
+ $width: s || c,
44
45
  disabled: t.disabled,
45
- $isLoading: e,
46
+ $isLoading: r,
46
47
  children: [
47
- /* @__PURE__ */ o(R, { $isLoading: e, children: /* @__PURE__ */ o(L, { size: "small", color: s || a }) }),
48
- /* @__PURE__ */ o(B, { $isLoading: e, $textColor: s || a, $font: x, children: i })
48
+ /* @__PURE__ */ e(R, { $isLoading: r, children: /* @__PURE__ */ e(v, { size: "small", color: d || h }) }),
49
+ /* @__PURE__ */ e(z, { $isLoading: r, $textColor: d || h, $font: D, children: n })
49
50
  ]
50
51
  }
51
52
  );
52
- return /* @__PURE__ */ o(
53
- E,
53
+ return /* @__PURE__ */ e(
54
+ B,
54
55
  {
55
- $height: m,
56
- $width: l || c,
56
+ $height: p,
57
+ $width: s || c,
57
58
  disabled: t.disabled,
58
- $isLoading: e,
59
- children: e ? p : /* @__PURE__ */ o(P, { theme: n, children: p })
59
+ $isLoading: r,
60
+ children: r ? a : /* @__PURE__ */ e(M, { theme: l, children: a })
60
61
  }
61
62
  );
62
63
  };
64
+ W.propTypes = {
65
+ /** Button label or content */
66
+ children: o.node,
67
+ /** Color theme key from the meticulous-ui color map. Defaults to `'blue'` */
68
+ theme: o.string,
69
+ /** Button size variant: `'small'`, `'medium'`, `'large'`, or `'ex-large'` */
70
+ size: o.string,
71
+ /** Override the button width */
72
+ width: o.oneOfType([o.string, o.number]),
73
+ /** Icon component rendered to the left of the label */
74
+ leftIcon: o.elementType,
75
+ /** Icon component rendered to the right of the label */
76
+ rightIcon: o.elementType,
77
+ /** Shows a spinner and disables interaction while true */
78
+ isLoading: o.bool,
79
+ /** Override the label and icon color */
80
+ textColor: o.string,
81
+ /** Disables the button */
82
+ disabled: o.bool
83
+ };
63
84
  export {
64
- T as default
85
+ W as default
65
86
  };
@@ -1,11 +1,12 @@
1
- import { jsxs as c, jsx as n, Fragment as ve } from "react/jsx-runtime";
2
- import { useMemo as Ce, useState as a, useCallback as Le } from "react";
3
- import ye from "../../colors/colorMap.js";
4
- import { blue as De } from "../../colors/blue.js";
5
- import { MODE as l, MONTHS as Q, DAYS_SHORT as Ge } from "./constants.js";
6
- import { buildCalendarGrid as Me, formatDate as H, isToday as $e, isSameDay as U, isRangeStart as Ye, isRangeEnd as be, isInRange as we } from "./utils.js";
7
- import { Wrapper as Ie, SelectedDisplay as Pe, DateChip as x, RangeArrow as Te, ModeToggle as _e, ModeBtn as X, Nav as He, NavBtn as Z, MonthLabel as ee, Footer as xe, ActionBtn as ne, Grid as Oe, DayHeader as Be, DayCell as je, DayBtn as Fe, PickerGrid as We, PickerItem as re, YearScroll as Ve } from "./styles.js";
8
- const qe = () => /* @__PURE__ */ n(
1
+ import { jsxs as s, jsx as n, Fragment as ye } from "react/jsx-runtime";
2
+ import { useMemo as Ce, useState as d, useCallback as Le, useEffect as Ge } from "react";
3
+ import c from "../../_virtual/index.js";
4
+ import Me from "../../colors/colorMap.js";
5
+ import { blue as $e } from "../../colors/blue.js";
6
+ import { MODE as t, MONTHS as U, DAYS_SHORT as be } from "./constants.js";
7
+ import { buildCalendarGrid as we, formatDate as H, isToday as Te, isSameDay as X, isRangeStart as Ye, isRangeEnd as Oe, isInRange as Ie } from "./utils.js";
8
+ import { Wrapper as Pe, SelectedDisplay as _e, DateChip as B, RangeArrow as xe, ModeToggle as He, ModeBtn as Z, Nav as Be, NavBtn as ee, MonthLabel as ne, Footer as je, ActionBtn as re, Grid as Fe, DayHeader as We, DayCell as Ve, DayBtn as qe, PickerGrid as ze, PickerItem as te, YearScroll as Je } from "./styles.js";
9
+ const Ke = () => /* @__PURE__ */ n(
9
10
  "svg",
10
11
  {
11
12
  width: "16",
@@ -18,7 +19,7 @@ const qe = () => /* @__PURE__ */ n(
18
19
  strokeLinejoin: "round",
19
20
  children: /* @__PURE__ */ n("polyline", { points: "15 18 9 12 15 6" })
20
21
  }
21
- ), ze = () => /* @__PURE__ */ n(
22
+ ), Qe = () => /* @__PURE__ */ n(
22
23
  "svg",
23
24
  {
24
25
  width: "16",
@@ -31,193 +32,218 @@ const qe = () => /* @__PURE__ */ n(
31
32
  strokeLinejoin: "round",
32
33
  children: /* @__PURE__ */ n("polyline", { points: "9 18 15 12 9 6" })
33
34
  }
34
- ), i = { CALENDAR: "calendar", MONTH: "month", YEAR: "year" }, Je = /* @__PURE__ */ new Date(), le = 1924, Ke = Je.getFullYear() + 20, Qe = Array.from(
35
- { length: Ke - le + 1 },
36
- (L, y) => le + y
37
- ), tn = ({
35
+ ), o = { CALENDAR: "calendar", MONTH: "month", YEAR: "year" }, Ue = /* @__PURE__ */ new Date(), le = 1924, Xe = Ue.getFullYear() + 20, Ze = Array.from(
36
+ { length: Xe - le + 1 },
37
+ (L, f) => le + f
38
+ ), en = ({
38
39
  theme: L = "blue",
39
- mode: y = l.SINGLE,
40
- value: te,
41
- rangeValue: O,
42
- onChange: E,
43
- minDate: D,
44
- maxDate: G,
40
+ mode: f = t.SINGLE,
41
+ value: oe,
42
+ rangeValue: j,
43
+ onChange: m,
44
+ minDate: G,
45
+ maxDate: M,
45
46
  showModeToggle: ie = !0,
46
- showFooter: M = !0
47
+ showFooter: $ = !0,
48
+ ...se
47
49
  }) => {
48
- const $ = Ce(() => ye[L] ?? De, [L]), o = $.m500, Y = $.m700, f = $.m100, b = { $primary: o, $primaryDark: Y, $primaryLight: f }, B = /* @__PURE__ */ new Date(), [t, oe] = a(y), [w, I] = a(B.getFullYear()), [A, R] = a(B.getMonth()), [u, m] = a(i.CALENDAR), [N, P] = a(te ?? null), [r, T] = a(O?.[0] ?? null), [d, g] = a(O?.[1] ?? null), [S, k] = a(null), [v, C] = a(!1), ce = Me(w, A), j = Le(
49
- (e) => !!(!e || D && e < D || G && e > G),
50
- [D, G]
51
- ), se = () => {
52
- A === 0 ? (R(11), I((e) => e - 1)) : R((e) => e - 1);
53
- }, ae = () => {
54
- A === 11 ? (R(0), I((e) => e + 1)) : R((e) => e + 1);
55
- }, de = (e) => {
56
- if (!(!e || j(e))) {
57
- if (t === l.SINGLE) {
58
- P(e), M || E?.(e);
50
+ const b = Ce(() => Me[L] ?? $e, [L]), i = b.m500, w = b.m700, N = b.m100, T = { $primary: i, $primaryDark: w, $primaryLight: N }, F = /* @__PURE__ */ new Date(), [l, ce] = d(f), [Y, O] = d(F.getFullYear()), [g, A] = d(F.getMonth()), [p, S] = d(o.CALENDAR), [R, I] = d(oe ?? null), [r, P] = d(j?.[0] ?? null), [h, k] = d(j?.[1] ?? null), [D, v] = d(null), [y, C] = d(!1), ae = we(Y, g), W = Le(
51
+ (e) => !!(!e || G && e < G || M && e > M),
52
+ [G, M]
53
+ ), de = () => {
54
+ g === 0 ? (A(11), O((e) => e - 1)) : A((e) => e - 1);
55
+ }, he = () => {
56
+ g === 11 ? (A(0), O((e) => e + 1)) : A((e) => e + 1);
57
+ }, ue = (e) => {
58
+ if (!(!e || W(e))) {
59
+ if (l === t.SINGLE) {
60
+ I(e), $ || m?.(e);
59
61
  return;
60
62
  }
61
- !v || !r ? (T(e), g(null), C(!0)) : (g(e), C(!1), M || E?.([
63
+ !y || !r ? (P(e), k(null), C(!0)) : (k(e), C(!1), $ || m?.([
62
64
  e <= r ? e : r,
63
65
  e <= r ? r : e
64
66
  ]));
65
67
  }
66
- }, F = (e) => {
67
- oe(e), P(null), T(null), g(null), C(!1), k(null);
68
- }, he = () => {
69
- if (t === l.SINGLE)
70
- E?.(N);
71
- else if (r && d) {
72
- const [e, p] = r <= d ? [r, d] : [d, r];
73
- E?.([e, p]);
68
+ }, _ = (e) => {
69
+ ce(e), I(null), P(null), k(null), C(!1), v(null);
70
+ };
71
+ Ge(() => {
72
+ _(f);
73
+ }, [f]);
74
+ const pe = () => {
75
+ if (l === t.SINGLE)
76
+ m?.(R);
77
+ else if (r && h) {
78
+ const [e, E] = r <= h ? [r, h] : [h, r];
79
+ m?.([e, E]);
74
80
  }
75
- }, ue = () => {
76
- P(null), T(null), g(null), C(!1), k(null), E?.(t === l.SINGLE ? null : [null, null]);
77
- }, h = v && S ? S : d, W = (e) => t === l.RANGE && Ye(e, r, h), V = (e) => t === l.RANGE && be(e, r, h), pe = (e) => t === l.RANGE && we(e, r, h), Ee = (e) => t === l.SINGLE ? U(e, N) : W(e) || V(e), q = t === l.SINGLE ? H(N) : H(
78
- r ? r <= (h ?? r) ? r : h : null
79
- ), Ae = t === l.RANGE ? H(h ? h >= r ? h : r : null) : null, Re = t === l.SINGLE ? !N : !r || !d, Ne = () => /* @__PURE__ */ n(We, { children: Q.map((e, p) => /* @__PURE__ */ n(
80
- re,
81
+ }, Ee = () => {
82
+ I(null), P(null), k(null), C(!1), v(null), m?.(l === t.SINGLE ? null : [null, null]);
83
+ }, u = y && D ? D : h, V = (e) => l === t.RANGE && Ye(e, r, u), q = (e) => l === t.RANGE && Oe(e, r, u), fe = (e) => l === t.RANGE && Ie(e, r, u), me = (e) => l === t.SINGLE ? X(e, R) : V(e) || q(e), z = l === t.SINGLE ? H(R) : H(
84
+ r ? r <= (u ?? r) ? r : u : null
85
+ ), ge = l === t.RANGE ? H(u ? u >= r ? u : r : null) : null, Ae = l === t.SINGLE ? !R : !r || !h, Re = () => /* @__PURE__ */ n(ze, { children: U.map((e, E) => /* @__PURE__ */ n(
86
+ te,
81
87
  {
82
- $active: p === A,
83
- ...b,
88
+ $active: E === g,
89
+ ...T,
84
90
  onClick: () => {
85
- R(p), m(i.CALENDAR);
91
+ A(E), S(o.CALENDAR);
86
92
  },
87
93
  children: e.slice(0, 3)
88
94
  },
89
95
  e
90
- )) }), fe = () => /* @__PURE__ */ n(Ve, { children: Qe.map((e) => /* @__PURE__ */ n(
91
- re,
96
+ )) }), Ne = () => /* @__PURE__ */ n(Je, { children: Ze.map((e) => /* @__PURE__ */ n(
97
+ te,
92
98
  {
93
- $active: e === w,
94
- ...b,
99
+ $active: e === Y,
100
+ ...T,
95
101
  onClick: () => {
96
- I(e), m(i.CALENDAR);
102
+ O(e), S(o.CALENDAR);
97
103
  },
98
104
  children: e
99
105
  },
100
106
  e
101
- )) }), me = () => /* @__PURE__ */ c(Oe, { children: [
102
- Ge.map((e) => /* @__PURE__ */ n(Be, { children: e }, e)),
103
- ce.map((e, p) => {
104
- const s = !e, z = j(e), _ = !s && Ee(e), ge = !s && $e(e), J = !s && W(e), K = !s && V(e), Se = !s && pe(e), ke = !s && S && U(e, S);
107
+ )) }), Se = () => /* @__PURE__ */ s(Fe, { children: [
108
+ be.map((e) => /* @__PURE__ */ n(We, { children: e }, e)),
109
+ ae.map((e, E) => {
110
+ const a = !e, J = W(e), x = !a && me(e), ke = !a && Te(e), K = !a && V(e), Q = !a && q(e), De = !a && fe(e), ve = !a && D && X(e, D);
105
111
  return /* @__PURE__ */ n(
106
- je,
112
+ Ve,
107
113
  {
108
- $inRange: Se || J || K,
109
- $rangeStart: J,
110
- $rangeEnd: K,
111
- $primaryLight: f,
114
+ $inRange: De || K || Q,
115
+ $rangeStart: K,
116
+ $rangeEnd: Q,
117
+ $primaryLight: N,
112
118
  children: /* @__PURE__ */ n(
113
- Fe,
119
+ qe,
114
120
  {
115
- $empty: s,
116
- $selected: _,
117
- $today: ge,
118
- $hovered: ke && !_,
119
- disabled: z,
120
- ...b,
121
- onClick: () => de(e),
122
- onMouseEnter: () => !s && k(e),
123
- onMouseLeave: () => k(null),
121
+ $empty: a,
122
+ $selected: x,
123
+ $today: ke,
124
+ $hovered: ve && !x,
125
+ disabled: J,
126
+ ...T,
127
+ onClick: () => ue(e),
128
+ onMouseEnter: () => !a && v(e),
129
+ onMouseLeave: () => v(null),
124
130
  "aria-label": e ? e.toDateString() : void 0,
125
- "aria-pressed": _,
126
- tabIndex: s || z ? -1 : 0,
131
+ "aria-pressed": x,
132
+ tabIndex: a || J ? -1 : 0,
127
133
  children: e?.getDate()
128
134
  }
129
135
  )
130
136
  },
131
- p
137
+ E
132
138
  );
133
139
  })
134
140
  ] });
135
- return /* @__PURE__ */ c(Ie, { children: [
136
- /* @__PURE__ */ n(Pe, { children: t === l.RANGE ? /* @__PURE__ */ c(ve, { children: [
137
- /* @__PURE__ */ c(x, { $active: v || !r && !d, $primary: o, children: [
141
+ return /* @__PURE__ */ s(Pe, { ...se, children: [
142
+ /* @__PURE__ */ n(_e, { children: l === t.RANGE ? /* @__PURE__ */ s(ye, { children: [
143
+ /* @__PURE__ */ s(B, { $active: y || !r && !h, $primary: i, children: [
138
144
  /* @__PURE__ */ n("span", { children: "From" }),
139
- q
145
+ z
140
146
  ] }),
141
- /* @__PURE__ */ n(Te, { children: "→" }),
142
- /* @__PURE__ */ c(x, { $active: !v && !!d, $primary: o, children: [
147
+ /* @__PURE__ */ n(xe, { children: "→" }),
148
+ /* @__PURE__ */ s(B, { $active: !y && !!h, $primary: i, children: [
143
149
  /* @__PURE__ */ n("span", { children: "To" }),
144
- Ae
150
+ ge
145
151
  ] })
146
- ] }) : /* @__PURE__ */ c(x, { $active: !!N, $primary: o, style: { flex: "none", width: "100%" }, children: [
152
+ ] }) : /* @__PURE__ */ s(B, { $active: !!R, $primary: i, style: { flex: "none", width: "100%" }, children: [
147
153
  /* @__PURE__ */ n("span", { children: "Selected" }),
148
- q
154
+ z
149
155
  ] }) }),
150
- ie && /* @__PURE__ */ c(_e, { children: [
156
+ ie && /* @__PURE__ */ s(He, { children: [
151
157
  /* @__PURE__ */ n(
152
- X,
158
+ Z,
153
159
  {
154
- $active: t === l.SINGLE,
155
- $primary: o,
156
- onClick: () => F(l.SINGLE),
160
+ $active: l === t.SINGLE,
161
+ $primary: i,
162
+ onClick: () => _(t.SINGLE),
157
163
  children: "Single"
158
164
  }
159
165
  ),
160
166
  /* @__PURE__ */ n(
161
- X,
167
+ Z,
162
168
  {
163
- $active: t === l.RANGE,
164
- $primary: o,
165
- onClick: () => F(l.RANGE),
169
+ $active: l === t.RANGE,
170
+ $primary: i,
171
+ onClick: () => _(t.RANGE),
166
172
  children: "Range"
167
173
  }
168
174
  )
169
175
  ] }),
170
- /* @__PURE__ */ c(He, { children: [
171
- /* @__PURE__ */ n(Z, { $primary: o, onClick: se, "aria-label": "Previous month", children: /* @__PURE__ */ n(qe, {}) }),
172
- /* @__PURE__ */ c("div", { style: { display: "flex", gap: 4 }, children: [
176
+ /* @__PURE__ */ s(Be, { children: [
177
+ /* @__PURE__ */ n(ee, { $primary: i, onClick: de, "aria-label": "Previous month", children: /* @__PURE__ */ n(Ke, {}) }),
178
+ /* @__PURE__ */ s("div", { style: { display: "flex", gap: 4 }, children: [
173
179
  /* @__PURE__ */ n(
174
- ee,
180
+ ne,
175
181
  {
176
- $primary: o,
177
- onClick: () => m(u === i.MONTH ? i.CALENDAR : i.MONTH),
178
- children: Q[A]
182
+ $primary: i,
183
+ onClick: () => S(p === o.MONTH ? o.CALENDAR : o.MONTH),
184
+ children: U[g]
179
185
  }
180
186
  ),
181
187
  /* @__PURE__ */ n(
182
- ee,
188
+ ne,
183
189
  {
184
- $primary: o,
185
- onClick: () => m(u === i.YEAR ? i.CALENDAR : i.YEAR),
186
- children: w
190
+ $primary: i,
191
+ onClick: () => S(p === o.YEAR ? o.CALENDAR : o.YEAR),
192
+ children: Y
187
193
  }
188
194
  )
189
195
  ] }),
190
- /* @__PURE__ */ n(Z, { $primary: o, onClick: ae, "aria-label": "Next month", children: /* @__PURE__ */ n(ze, {}) })
196
+ /* @__PURE__ */ n(ee, { $primary: i, onClick: he, "aria-label": "Next month", children: /* @__PURE__ */ n(Qe, {}) })
191
197
  ] }),
192
- u === i.CALENDAR && me(),
193
- u === i.MONTH && Ne(),
194
- u === i.YEAR && fe(),
195
- M && u === i.CALENDAR && /* @__PURE__ */ c(xe, { children: [
198
+ p === o.CALENDAR && Se(),
199
+ p === o.MONTH && Re(),
200
+ p === o.YEAR && Ne(),
201
+ $ && p === o.CALENDAR && /* @__PURE__ */ s(je, { children: [
196
202
  /* @__PURE__ */ n(
197
- ne,
203
+ re,
198
204
  {
199
- $primary: o,
200
- $primaryDark: Y,
201
- $primaryLight: f,
202
- onClick: ue,
205
+ $primary: i,
206
+ $primaryDark: w,
207
+ $primaryLight: N,
208
+ onClick: Ee,
203
209
  children: "Clear"
204
210
  }
205
211
  ),
206
212
  /* @__PURE__ */ n(
207
- ne,
213
+ re,
208
214
  {
209
215
  $isPrimary: !0,
210
- $primary: o,
211
- $primaryDark: Y,
212
- $primaryLight: f,
213
- disabled: Re,
214
- onClick: he,
216
+ $primary: i,
217
+ $primaryDark: w,
218
+ $primaryLight: N,
219
+ disabled: Ae,
220
+ onClick: pe,
215
221
  children: "Apply"
216
222
  }
217
223
  )
218
224
  ] })
219
225
  ] });
220
226
  };
227
+ en.propTypes = {
228
+ /** Color theme key from the meticulous-ui color map */
229
+ theme: c.string,
230
+ /** Initial selection mode. Can be switched via the built-in toggle unless `showModeToggle` is false. */
231
+ mode: c.oneOf(["single", "range"]),
232
+ /** Controlled selected date for single mode */
233
+ value: c.instanceOf(Date),
234
+ /** Controlled selected range for range mode — `[start, end]` */
235
+ rangeValue: c.arrayOf(c.instanceOf(Date)),
236
+ /** Called with a `Date` in single mode or `[Date, Date]` tuple in range mode */
237
+ onChange: c.func,
238
+ /** Dates before this value are disabled */
239
+ minDate: c.instanceOf(Date),
240
+ /** Dates after this value are disabled */
241
+ maxDate: c.instanceOf(Date),
242
+ /** Shows or hides the Single / Range mode toggle pill */
243
+ showModeToggle: c.bool,
244
+ /** Shows or hides the Clear / Apply footer. When false, `onChange` fires immediately on each click. */
245
+ showFooter: c.bool
246
+ };
221
247
  export {
222
- tn as default
248
+ en as default
223
249
  };