asterui 0.12.49 → 0.12.50
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.
- package/dist/components/Alert.js +18 -18
- package/dist/components/Alert.js.map +1 -1
- package/dist/components/Anchor.js +53 -53
- package/dist/components/Anchor.js.map +1 -1
- package/dist/components/Autocomplete.js +115 -114
- package/dist/components/Autocomplete.js.map +1 -1
- package/dist/components/Avatar.js +33 -32
- package/dist/components/Avatar.js.map +1 -1
- package/dist/components/Badge.js +99 -99
- package/dist/components/Badge.js.map +1 -1
- package/dist/components/Breadcrumb.js +12 -11
- package/dist/components/Breadcrumb.js.map +1 -1
- package/dist/components/Browser.js +10 -10
- package/dist/components/Browser.js.map +1 -1
- package/dist/components/Button.js +80 -79
- package/dist/components/Button.js.map +1 -1
- package/dist/components/Card.d.ts +2 -0
- package/dist/components/Card.js +111 -110
- package/dist/components/Card.js.map +1 -1
- package/dist/components/Carousel.js +59 -59
- package/dist/components/Carousel.js.map +1 -1
- package/dist/components/Cascader.js +175 -174
- package/dist/components/Cascader.js.map +1 -1
- package/dist/components/Chat.js +27 -27
- package/dist/components/Chat.js.map +1 -1
- package/dist/components/Checkbox.js +98 -97
- package/dist/components/Checkbox.js.map +1 -1
- package/dist/components/Code.js +11 -11
- package/dist/components/Code.js.map +1 -1
- package/dist/components/Collapse.js +46 -46
- package/dist/components/Collapse.js.map +1 -1
- package/dist/components/ColorPicker.d.ts +1 -1
- package/dist/components/ColorPicker.js +93 -91
- package/dist/components/ColorPicker.js.map +1 -1
- package/dist/components/Command.js +120 -120
- package/dist/components/Command.js.map +1 -1
- package/dist/components/ConfigProvider.d.ts +1 -1
- package/dist/components/ConfigProvider.js +9 -9
- package/dist/components/ConfigProvider.js.map +1 -1
- package/dist/components/ContextMenu.js +33 -33
- package/dist/components/ContextMenu.js.map +1 -1
- package/dist/components/CopyButton.js +74 -73
- package/dist/components/CopyButton.js.map +1 -1
- package/dist/components/Countdown.js +60 -59
- package/dist/components/Countdown.js.map +1 -1
- package/dist/components/DatePicker.d.ts +1 -1
- package/dist/components/DatePicker.js +54 -53
- package/dist/components/DatePicker.js.map +1 -1
- package/dist/components/Diff.js +10 -10
- package/dist/components/Diff.js.map +1 -1
- package/dist/components/Divider.js +21 -20
- package/dist/components/Divider.js.map +1 -1
- package/dist/components/Dock.js +28 -27
- package/dist/components/Dock.js.map +1 -1
- package/dist/components/Drawer.js +43 -43
- package/dist/components/Drawer.js.map +1 -1
- package/dist/components/Dropdown.js +127 -127
- package/dist/components/Dropdown.js.map +1 -1
- package/dist/components/Empty.js +16 -15
- package/dist/components/Empty.js.map +1 -1
- package/dist/components/Fieldset.js +11 -10
- package/dist/components/Fieldset.js.map +1 -1
- package/dist/components/FileInput.js +30 -29
- package/dist/components/FileInput.js.map +1 -1
- package/dist/components/Filter.d.ts +1 -1
- package/dist/components/Filter.js +32 -30
- package/dist/components/Filter.js.map +1 -1
- package/dist/components/FloatButton.js +83 -83
- package/dist/components/FloatButton.js.map +1 -1
- package/dist/components/Footer.js +14 -13
- package/dist/components/Footer.js.map +1 -1
- package/dist/components/Form.js +133 -132
- package/dist/components/Form.js.map +1 -1
- package/dist/components/Hero.js +12 -11
- package/dist/components/Hero.js.map +1 -1
- package/dist/components/HoverGallery.js +7 -7
- package/dist/components/HoverGallery.js.map +1 -1
- package/dist/components/Image.js +40 -40
- package/dist/components/Image.js.map +1 -1
- package/dist/components/Input.js +171 -169
- package/dist/components/Input.js.map +1 -1
- package/dist/components/InputNumber.js +84 -83
- package/dist/components/InputNumber.js.map +1 -1
- package/dist/components/Join.js +11 -10
- package/dist/components/Join.js.map +1 -1
- package/dist/components/Kbd.js +15 -15
- package/dist/components/Kbd.js.map +1 -1
- package/dist/components/Layout.js +66 -66
- package/dist/components/Layout.js.map +1 -1
- package/dist/components/List.d.ts +1 -1
- package/dist/components/List.js +75 -72
- package/dist/components/List.js.map +1 -1
- package/dist/components/Loading.d.ts +1 -1
- package/dist/components/Loading.js +31 -29
- package/dist/components/Loading.js.map +1 -1
- package/dist/components/Mask.js +31 -31
- package/dist/components/Mask.js.map +1 -1
- package/dist/components/Mention.js +61 -61
- package/dist/components/Mention.js.map +1 -1
- package/dist/components/Menu.js +84 -84
- package/dist/components/Menu.js.map +1 -1
- package/dist/components/Message.js +30 -29
- package/dist/components/Message.js.map +1 -1
- package/dist/components/Modal.js +117 -116
- package/dist/components/Modal.js.map +1 -1
- package/dist/components/MonthCalendar.d.ts +31 -0
- package/dist/components/MonthCalendar.js +205 -0
- package/dist/components/MonthCalendar.js.map +1 -0
- package/dist/components/Navbar.js +25 -25
- package/dist/components/Navbar.js.map +1 -1
- package/dist/components/Notification.js +56 -55
- package/dist/components/Notification.js.map +1 -1
- package/dist/components/OTPInput.js +69 -68
- package/dist/components/OTPInput.js.map +1 -1
- package/dist/components/Pagination.d.ts +1 -1
- package/dist/components/Pagination.js +60 -58
- package/dist/components/Pagination.js.map +1 -1
- package/dist/components/Phone.js +10 -10
- package/dist/components/Phone.js.map +1 -1
- package/dist/components/Popconfirm.js +60 -60
- package/dist/components/Popconfirm.js.map +1 -1
- package/dist/components/Progress.js +17 -17
- package/dist/components/Progress.js.map +1 -1
- package/dist/components/QRCode.js +23 -23
- package/dist/components/QRCode.js.map +1 -1
- package/dist/components/RadialProgress.js +17 -17
- package/dist/components/RadialProgress.js.map +1 -1
- package/dist/components/Radio.js +41 -40
- package/dist/components/Radio.js.map +1 -1
- package/dist/components/Range.d.ts +1 -1
- package/dist/components/Range.js +39 -37
- package/dist/components/Range.js.map +1 -1
- package/dist/components/Rating.js +79 -78
- package/dist/components/Rating.js.map +1 -1
- package/dist/components/ResponsiveDrawer.js +27 -27
- package/dist/components/ResponsiveDrawer.js.map +1 -1
- package/dist/components/RichTextEditor.d.ts +32 -0
- package/dist/components/RichTextEditor.js +335 -0
- package/dist/components/RichTextEditor.js.map +1 -0
- package/dist/components/Segmented.d.ts +1 -1
- package/dist/components/Segmented.js +48 -46
- package/dist/components/Segmented.js.map +1 -1
- package/dist/components/Select.js +55 -54
- package/dist/components/Select.js.map +1 -1
- package/dist/components/Skeleton.js +9 -9
- package/dist/components/Skeleton.js.map +1 -1
- package/dist/components/Splitter.js +93 -93
- package/dist/components/Splitter.js.map +1 -1
- package/dist/components/Stat.js +17 -16
- package/dist/components/Stat.js.map +1 -1
- package/dist/components/Status.js +29 -29
- package/dist/components/Status.js.map +1 -1
- package/dist/components/Steps.js +61 -61
- package/dist/components/Steps.js.map +1 -1
- package/dist/components/Table.js +256 -256
- package/dist/components/Table.js.map +1 -1
- package/dist/components/Tabs.js +65 -65
- package/dist/components/Tabs.js.map +1 -1
- package/dist/components/Tag.js +147 -147
- package/dist/components/Tag.js.map +1 -1
- package/dist/components/TextRotate.js +6 -6
- package/dist/components/TextRotate.js.map +1 -1
- package/dist/components/Textarea.js +35 -34
- package/dist/components/Textarea.js.map +1 -1
- package/dist/components/ThemeController.d.ts +1 -1
- package/dist/components/ThemeController.js +71 -68
- package/dist/components/ThemeController.js.map +1 -1
- package/dist/components/TimePicker.d.ts +1 -1
- package/dist/components/TimePicker.js +133 -129
- package/dist/components/TimePicker.js.map +1 -1
- package/dist/components/Timeline.js +79 -79
- package/dist/components/Timeline.js.map +1 -1
- package/dist/components/Toggle.js +33 -32
- package/dist/components/Toggle.js.map +1 -1
- package/dist/components/Tooltip.js +25 -25
- package/dist/components/Tooltip.js.map +1 -1
- package/dist/components/Tour.js +126 -126
- package/dist/components/Tour.js.map +1 -1
- package/dist/components/Transfer.js +93 -92
- package/dist/components/Transfer.js.map +1 -1
- package/dist/components/Tree.js +200 -200
- package/dist/components/Tree.js.map +1 -1
- package/dist/components/TreeSelect.js +255 -254
- package/dist/components/TreeSelect.js.map +1 -1
- package/dist/components/Typography.js +71 -70
- package/dist/components/Typography.js.map +1 -1
- package/dist/components/Upload.js +81 -81
- package/dist/components/Upload.js.map +1 -1
- package/dist/components/WeekCalendar.d.ts +35 -0
- package/dist/components/WeekCalendar.js +204 -0
- package/dist/components/WeekCalendar.js.map +1 -0
- package/dist/components/Window.js +7 -7
- package/dist/components/Window.js.map +1 -1
- package/dist/editor.d.ts +1 -0
- package/dist/editor.js +5 -0
- package/dist/editor.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +211 -207
- package/dist/index.js.map +1 -1
- package/package.json +30 -1
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { jsxs as m, jsx as n } from "react/jsx-runtime";
|
|
2
|
-
import { useState as
|
|
3
|
-
import { Input as
|
|
4
|
-
|
|
2
|
+
import { useState as f, useRef as L, useEffect as N } from "react";
|
|
3
|
+
import { Input as q } from "./Input.js";
|
|
4
|
+
import { useConfig as A } from "./ConfigProvider.js";
|
|
5
|
+
const D = "btn", M = "btn-ghost", y = "btn-sm", Y = "btn-square", E = ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"], J = [
|
|
5
6
|
"January",
|
|
6
7
|
"February",
|
|
7
8
|
"March",
|
|
@@ -15,71 +16,71 @@ const $ = ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"], I = [
|
|
|
15
16
|
"November",
|
|
16
17
|
"December"
|
|
17
18
|
];
|
|
18
|
-
function
|
|
19
|
+
function P(t, l = "MM/DD/YYYY") {
|
|
19
20
|
if (!t) return "";
|
|
20
|
-
const u = t.getFullYear(),
|
|
21
|
-
return l.replace("YYYY", String(u)).replace("MM",
|
|
21
|
+
const u = t.getFullYear(), h = String(t.getMonth() + 1).padStart(2, "0"), g = String(t.getDate()).padStart(2, "0");
|
|
22
|
+
return l.replace("YYYY", String(u)).replace("MM", h).replace("DD", g);
|
|
22
23
|
}
|
|
23
|
-
function
|
|
24
|
+
function V(t, l) {
|
|
24
25
|
return new Date(t, l + 1, 0).getDate();
|
|
25
26
|
}
|
|
26
|
-
function
|
|
27
|
+
function G(t, l) {
|
|
27
28
|
return new Date(t, l, 1).getDay();
|
|
28
29
|
}
|
|
29
|
-
const
|
|
30
|
+
const U = ({
|
|
30
31
|
value: t,
|
|
31
32
|
defaultValue: l,
|
|
32
33
|
onChange: u,
|
|
33
|
-
format:
|
|
34
|
+
format: h,
|
|
34
35
|
placeholder: g = "Select date",
|
|
35
|
-
disabled:
|
|
36
|
-
className:
|
|
37
|
-
size:
|
|
38
|
-
...
|
|
36
|
+
disabled: S = !1,
|
|
37
|
+
className: $ = "",
|
|
38
|
+
size: F,
|
|
39
|
+
...C
|
|
39
40
|
}) => {
|
|
40
|
-
const [o,
|
|
41
|
+
const { componentSize: O } = A(), k = F ?? O ?? "md", [o, p] = f(
|
|
41
42
|
t || l || null
|
|
42
|
-
), [c, d] =
|
|
43
|
+
), [c, d] = f(!1), [r, i] = f(
|
|
43
44
|
o ? o.getMonth() : (/* @__PURE__ */ new Date()).getMonth()
|
|
44
|
-
), [a,
|
|
45
|
+
), [a, b] = f(
|
|
45
46
|
o ? o.getFullYear() : (/* @__PURE__ */ new Date()).getFullYear()
|
|
46
|
-
),
|
|
47
|
-
|
|
48
|
-
t !== void 0 &&
|
|
49
|
-
}, [t]),
|
|
47
|
+
), v = L(null);
|
|
48
|
+
N(() => {
|
|
49
|
+
t !== void 0 && p(t);
|
|
50
|
+
}, [t]), N(() => {
|
|
50
51
|
function e(s) {
|
|
51
|
-
|
|
52
|
+
v.current && !v.current.contains(s.target) && d(!1);
|
|
52
53
|
}
|
|
53
54
|
if (c)
|
|
54
55
|
return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
|
|
55
56
|
}, [c]);
|
|
56
|
-
const
|
|
57
|
+
const z = (e) => {
|
|
57
58
|
const s = new Date(a, r, e);
|
|
58
|
-
|
|
59
|
-
},
|
|
60
|
-
r === 0 ? (i(11),
|
|
61
|
-
},
|
|
62
|
-
r === 11 ? (i(0),
|
|
63
|
-
},
|
|
64
|
-
for (let e = 0; e <
|
|
65
|
-
|
|
66
|
-
for (let e = 1; e <=
|
|
67
|
-
|
|
68
|
-
const
|
|
59
|
+
p(s), u?.(s), d(!1);
|
|
60
|
+
}, B = () => {
|
|
61
|
+
r === 0 ? (i(11), b(a - 1)) : i(r - 1);
|
|
62
|
+
}, R = () => {
|
|
63
|
+
r === 11 ? (i(0), b(a + 1)) : i(r + 1);
|
|
64
|
+
}, j = V(a, r), T = G(a, r), w = [];
|
|
65
|
+
for (let e = 0; e < T; e++)
|
|
66
|
+
w.push(null);
|
|
67
|
+
for (let e = 1; e <= j; e++)
|
|
68
|
+
w.push(e);
|
|
69
|
+
const x = (e) => !e || !o ? !1 : o.getDate() === e && o.getMonth() === r && o.getFullYear() === a, I = (e) => {
|
|
69
70
|
if (!e) return !1;
|
|
70
71
|
const s = /* @__PURE__ */ new Date();
|
|
71
72
|
return s.getDate() === e && s.getMonth() === r && s.getFullYear() === a;
|
|
72
73
|
};
|
|
73
|
-
return /* @__PURE__ */ m("div", { ref:
|
|
74
|
+
return /* @__PURE__ */ m("div", { ref: v, className: `relative ${$}`, "data-state": c ? "open" : "closed", ...C, children: [
|
|
74
75
|
/* @__PURE__ */ n(
|
|
75
|
-
|
|
76
|
+
q,
|
|
76
77
|
{
|
|
77
|
-
value:
|
|
78
|
+
value: P(o, h),
|
|
78
79
|
placeholder: g,
|
|
79
|
-
disabled:
|
|
80
|
-
size:
|
|
80
|
+
disabled: S,
|
|
81
|
+
size: k,
|
|
81
82
|
readOnly: !0,
|
|
82
|
-
onClick: () => !
|
|
83
|
+
onClick: () => !S && d(!c),
|
|
83
84
|
className: "cursor-pointer"
|
|
84
85
|
}
|
|
85
86
|
),
|
|
@@ -89,8 +90,8 @@ const B = ({
|
|
|
89
90
|
"button",
|
|
90
91
|
{
|
|
91
92
|
type: "button",
|
|
92
|
-
onClick:
|
|
93
|
-
className:
|
|
93
|
+
onClick: B,
|
|
94
|
+
className: `${D} ${M} ${y} ${Y}`,
|
|
94
95
|
children: /* @__PURE__ */ n(
|
|
95
96
|
"svg",
|
|
96
97
|
{
|
|
@@ -111,7 +112,7 @@ const B = ({
|
|
|
111
112
|
}
|
|
112
113
|
),
|
|
113
114
|
/* @__PURE__ */ m("div", { className: "text-base font-semibold", children: [
|
|
114
|
-
|
|
115
|
+
J[r],
|
|
115
116
|
" ",
|
|
116
117
|
a
|
|
117
118
|
] }),
|
|
@@ -119,8 +120,8 @@ const B = ({
|
|
|
119
120
|
"button",
|
|
120
121
|
{
|
|
121
122
|
type: "button",
|
|
122
|
-
onClick:
|
|
123
|
-
className:
|
|
123
|
+
onClick: R,
|
|
124
|
+
className: `${D} ${M} ${y} ${Y}`,
|
|
124
125
|
children: /* @__PURE__ */ n(
|
|
125
126
|
"svg",
|
|
126
127
|
{
|
|
@@ -141,7 +142,7 @@ const B = ({
|
|
|
141
142
|
}
|
|
142
143
|
)
|
|
143
144
|
] }),
|
|
144
|
-
/* @__PURE__ */ n("div", { className: "grid grid-cols-7 gap-1 mb-2", children:
|
|
145
|
+
/* @__PURE__ */ n("div", { className: "grid grid-cols-7 gap-1 mb-2", children: E.map((e) => /* @__PURE__ */ n(
|
|
145
146
|
"div",
|
|
146
147
|
{
|
|
147
148
|
className: "text-center text-xs font-semibold text-base-content/60 py-2",
|
|
@@ -149,17 +150,17 @@ const B = ({
|
|
|
149
150
|
},
|
|
150
151
|
e
|
|
151
152
|
)) }),
|
|
152
|
-
/* @__PURE__ */ n("div", { className: "grid grid-cols-7 gap-1", children:
|
|
153
|
+
/* @__PURE__ */ n("div", { className: "grid grid-cols-7 gap-1", children: w.map((e, s) => /* @__PURE__ */ n(
|
|
153
154
|
"button",
|
|
154
155
|
{
|
|
155
156
|
type: "button",
|
|
156
157
|
disabled: !e,
|
|
157
|
-
onClick: () => e &&
|
|
158
|
+
onClick: () => e && z(e),
|
|
158
159
|
className: `
|
|
159
160
|
aspect-square flex items-center justify-center text-sm rounded-lg
|
|
160
161
|
${e ? "hover:bg-base-200" : "invisible"}
|
|
161
|
-
${
|
|
162
|
-
${
|
|
162
|
+
${x(e) ? "bg-primary text-primary-content hover:bg-primary/90" : ""}
|
|
163
|
+
${I(e) && !x(e) ? "border border-primary" : ""}
|
|
163
164
|
${e ? "cursor-pointer" : ""}
|
|
164
165
|
`,
|
|
165
166
|
children: e
|
|
@@ -172,9 +173,9 @@ const B = ({
|
|
|
172
173
|
type: "button",
|
|
173
174
|
onClick: () => {
|
|
174
175
|
const e = /* @__PURE__ */ new Date();
|
|
175
|
-
|
|
176
|
+
p(e), i(e.getMonth()), b(e.getFullYear()), u?.(e), d(!1);
|
|
176
177
|
},
|
|
177
|
-
className:
|
|
178
|
+
className: `${D} ${M} ${y}`,
|
|
178
179
|
children: "Today"
|
|
179
180
|
}
|
|
180
181
|
) })
|
|
@@ -182,6 +183,6 @@ const B = ({
|
|
|
182
183
|
] });
|
|
183
184
|
};
|
|
184
185
|
export {
|
|
185
|
-
|
|
186
|
+
U as DatePicker
|
|
186
187
|
};
|
|
187
188
|
//# sourceMappingURL=DatePicker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePicker.js","sources":["../../src/components/DatePicker.tsx"],"sourcesContent":["import React, { useState, useRef, useEffect } from 'react'\nimport { Input } from './Input'\n\nexport interface DatePickerProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'> {\n value?: Date | null\n defaultValue?: Date | null\n onChange?: (date: Date | null) => void\n format?: string\n placeholder?: string\n disabled?: boolean\n size?: 'xs' | 'sm' | 'md' | 'lg'\n}\n\nconst DAYS = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa']\nconst MONTHS = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n]\n\nfunction formatDate(date: Date | null, format: string = 'MM/DD/YYYY'): string {\n if (!date) return ''\n\n const year = date.getFullYear()\n const month = String(date.getMonth() + 1).padStart(2, '0')\n const day = String(date.getDate()).padStart(2, '0')\n\n return format\n .replace('YYYY', String(year))\n .replace('MM', month)\n .replace('DD', day)\n}\n\nfunction getDaysInMonth(year: number, month: number): number {\n return new Date(year, month + 1, 0).getDate()\n}\n\nfunction getFirstDayOfMonth(year: number, month: number): number {\n return new Date(year, month, 1).getDay()\n}\n\nexport const DatePicker: React.FC<DatePickerProps> = ({\n value,\n defaultValue,\n onChange,\n format,\n placeholder = 'Select date',\n disabled = false,\n className = '',\n size = 'md',\n ...rest\n}) => {\n const [selectedDate, setSelectedDate] = useState<Date | null>(\n value || defaultValue || null\n )\n const [isOpen, setIsOpen] = useState(false)\n const [viewMonth, setViewMonth] = useState(\n selectedDate ? selectedDate.getMonth() : new Date().getMonth()\n )\n const [viewYear, setViewYear] = useState(\n selectedDate ? selectedDate.getFullYear() : new Date().getFullYear()\n )\n\n const containerRef = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n if (value !== undefined) {\n setSelectedDate(value)\n }\n }, [value])\n\n useEffect(() => {\n function handleClickOutside(event: MouseEvent) {\n if (containerRef.current && !containerRef.current.contains(event.target as Node)) {\n setIsOpen(false)\n }\n }\n\n if (isOpen) {\n document.addEventListener('mousedown', handleClickOutside)\n return () => document.removeEventListener('mousedown', handleClickOutside)\n }\n }, [isOpen])\n\n const handleDateSelect = (day: number) => {\n const newDate = new Date(viewYear, viewMonth, day)\n setSelectedDate(newDate)\n onChange?.(newDate)\n setIsOpen(false)\n }\n\n const handlePrevMonth = () => {\n if (viewMonth === 0) {\n setViewMonth(11)\n setViewYear(viewYear - 1)\n } else {\n setViewMonth(viewMonth - 1)\n }\n }\n\n const handleNextMonth = () => {\n if (viewMonth === 11) {\n setViewMonth(0)\n setViewYear(viewYear + 1)\n } else {\n setViewMonth(viewMonth + 1)\n }\n }\n\n const daysInMonth = getDaysInMonth(viewYear, viewMonth)\n const firstDayOfMonth = getFirstDayOfMonth(viewYear, viewMonth)\n\n const calendarDays: (number | null)[] = []\n for (let i = 0; i < firstDayOfMonth; i++) {\n calendarDays.push(null)\n }\n for (let i = 1; i <= daysInMonth; i++) {\n calendarDays.push(i)\n }\n\n const isSelectedDay = (day: number | null): boolean => {\n if (!day || !selectedDate) return false\n return (\n selectedDate.getDate() === day &&\n selectedDate.getMonth() === viewMonth &&\n selectedDate.getFullYear() === viewYear\n )\n }\n\n const isToday = (day: number | null): boolean => {\n if (!day) return false\n const today = new Date()\n return (\n today.getDate() === day &&\n today.getMonth() === viewMonth &&\n today.getFullYear() === viewYear\n )\n }\n\n return (\n <div ref={containerRef} className={`relative ${className}`} data-state={isOpen ? 'open' : 'closed'} {...rest}>\n <Input\n value={formatDate(selectedDate, format)}\n placeholder={placeholder}\n disabled={disabled}\n size={size}\n readOnly\n onClick={() => !disabled && setIsOpen(!isOpen)}\n className=\"cursor-pointer\"\n />\n\n {isOpen && (\n <div className=\"absolute top-full left-0 mt-2 bg-base-100 border border-base-300 rounded-lg shadow-lg p-4 z-50 w-80\">\n {/* Header */}\n <div className=\"flex items-center justify-between mb-4\">\n <button\n type=\"button\"\n onClick={handlePrevMonth}\n className=\"btn btn-ghost btn-sm btn-square\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"h-5 w-5\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z\"\n clipRule=\"evenodd\"\n />\n </svg>\n </button>\n\n <div className=\"text-base font-semibold\">\n {MONTHS[viewMonth]} {viewYear}\n </div>\n\n <button\n type=\"button\"\n onClick={handleNextMonth}\n className=\"btn btn-ghost btn-sm btn-square\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"h-5 w-5\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z\"\n clipRule=\"evenodd\"\n />\n </svg>\n </button>\n </div>\n\n {/* Days of week */}\n <div className=\"grid grid-cols-7 gap-1 mb-2\">\n {DAYS.map((day) => (\n <div\n key={day}\n className=\"text-center text-xs font-semibold text-base-content/60 py-2\"\n >\n {day}\n </div>\n ))}\n </div>\n\n {/* Calendar grid */}\n <div className=\"grid grid-cols-7 gap-1\">\n {calendarDays.map((day, index) => (\n <button\n key={index}\n type=\"button\"\n disabled={!day}\n onClick={() => day && handleDateSelect(day)}\n className={`\n aspect-square flex items-center justify-center text-sm rounded-lg\n ${!day ? 'invisible' : 'hover:bg-base-200'}\n ${isSelectedDay(day) ? 'bg-primary text-primary-content hover:bg-primary/90' : ''}\n ${isToday(day) && !isSelectedDay(day) ? 'border border-primary' : ''}\n ${day ? 'cursor-pointer' : ''}\n `}\n >\n {day}\n </button>\n ))}\n </div>\n\n {/* Today button */}\n <div className=\"mt-4 flex justify-end\">\n <button\n type=\"button\"\n onClick={() => {\n const today = new Date()\n setSelectedDate(today)\n setViewMonth(today.getMonth())\n setViewYear(today.getFullYear())\n onChange?.(today)\n setIsOpen(false)\n }}\n className=\"btn btn-ghost btn-sm\"\n >\n Today\n </button>\n </div>\n </div>\n )}\n </div>\n )\n}\n"],"names":["DAYS","MONTHS","formatDate","date","format","year","month","day","getDaysInMonth","getFirstDayOfMonth","DatePicker","value","defaultValue","onChange","placeholder","disabled","className","size","rest","selectedDate","setSelectedDate","useState","isOpen","setIsOpen","viewMonth","setViewMonth","viewYear","setViewYear","containerRef","useRef","useEffect","handleClickOutside","event","handleDateSelect","newDate","handlePrevMonth","handleNextMonth","daysInMonth","firstDayOfMonth","calendarDays","i","isSelectedDay","isToday","today","jsxs","jsx","Input","index"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DatePicker.js","sources":["../../src/components/DatePicker.tsx"],"sourcesContent":["import React, { useState, useRef, useEffect } from 'react'\nimport { Input } from './Input'\nimport { useConfig } from './ConfigProvider'\n\n// DaisyUI classes\nconst dBtn = 'btn'\nconst dBtnGhost = 'btn-ghost'\nconst dBtnSm = 'btn-sm'\nconst dBtnSquare = 'btn-square'\n\nexport interface DatePickerProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'> {\n value?: Date | null\n defaultValue?: Date | null\n onChange?: (date: Date | null) => void\n format?: string\n placeholder?: string\n disabled?: boolean\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl'\n}\n\nconst DAYS = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa']\nconst MONTHS = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n]\n\nfunction formatDate(date: Date | null, format: string = 'MM/DD/YYYY'): string {\n if (!date) return ''\n\n const year = date.getFullYear()\n const month = String(date.getMonth() + 1).padStart(2, '0')\n const day = String(date.getDate()).padStart(2, '0')\n\n return format\n .replace('YYYY', String(year))\n .replace('MM', month)\n .replace('DD', day)\n}\n\nfunction getDaysInMonth(year: number, month: number): number {\n return new Date(year, month + 1, 0).getDate()\n}\n\nfunction getFirstDayOfMonth(year: number, month: number): number {\n return new Date(year, month, 1).getDay()\n}\n\nexport const DatePicker: React.FC<DatePickerProps> = ({\n value,\n defaultValue,\n onChange,\n format,\n placeholder = 'Select date',\n disabled = false,\n className = '',\n size,\n ...rest\n}) => {\n const { componentSize } = useConfig()\n const effectiveSize = size ?? componentSize ?? 'md'\n const [selectedDate, setSelectedDate] = useState<Date | null>(\n value || defaultValue || null\n )\n const [isOpen, setIsOpen] = useState(false)\n const [viewMonth, setViewMonth] = useState(\n selectedDate ? selectedDate.getMonth() : new Date().getMonth()\n )\n const [viewYear, setViewYear] = useState(\n selectedDate ? selectedDate.getFullYear() : new Date().getFullYear()\n )\n\n const containerRef = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n if (value !== undefined) {\n setSelectedDate(value)\n }\n }, [value])\n\n useEffect(() => {\n function handleClickOutside(event: MouseEvent) {\n if (containerRef.current && !containerRef.current.contains(event.target as Node)) {\n setIsOpen(false)\n }\n }\n\n if (isOpen) {\n document.addEventListener('mousedown', handleClickOutside)\n return () => document.removeEventListener('mousedown', handleClickOutside)\n }\n }, [isOpen])\n\n const handleDateSelect = (day: number) => {\n const newDate = new Date(viewYear, viewMonth, day)\n setSelectedDate(newDate)\n onChange?.(newDate)\n setIsOpen(false)\n }\n\n const handlePrevMonth = () => {\n if (viewMonth === 0) {\n setViewMonth(11)\n setViewYear(viewYear - 1)\n } else {\n setViewMonth(viewMonth - 1)\n }\n }\n\n const handleNextMonth = () => {\n if (viewMonth === 11) {\n setViewMonth(0)\n setViewYear(viewYear + 1)\n } else {\n setViewMonth(viewMonth + 1)\n }\n }\n\n const daysInMonth = getDaysInMonth(viewYear, viewMonth)\n const firstDayOfMonth = getFirstDayOfMonth(viewYear, viewMonth)\n\n const calendarDays: (number | null)[] = []\n for (let i = 0; i < firstDayOfMonth; i++) {\n calendarDays.push(null)\n }\n for (let i = 1; i <= daysInMonth; i++) {\n calendarDays.push(i)\n }\n\n const isSelectedDay = (day: number | null): boolean => {\n if (!day || !selectedDate) return false\n return (\n selectedDate.getDate() === day &&\n selectedDate.getMonth() === viewMonth &&\n selectedDate.getFullYear() === viewYear\n )\n }\n\n const isToday = (day: number | null): boolean => {\n if (!day) return false\n const today = new Date()\n return (\n today.getDate() === day &&\n today.getMonth() === viewMonth &&\n today.getFullYear() === viewYear\n )\n }\n\n return (\n <div ref={containerRef} className={`relative ${className}`} data-state={isOpen ? 'open' : 'closed'} {...rest}>\n <Input\n value={formatDate(selectedDate, format)}\n placeholder={placeholder}\n disabled={disabled}\n size={effectiveSize}\n readOnly\n onClick={() => !disabled && setIsOpen(!isOpen)}\n className=\"cursor-pointer\"\n />\n\n {isOpen && (\n <div className=\"absolute top-full left-0 mt-2 bg-base-100 border border-base-300 rounded-lg shadow-lg p-4 z-50 w-80\">\n {/* Header */}\n <div className=\"flex items-center justify-between mb-4\">\n <button\n type=\"button\"\n onClick={handlePrevMonth}\n className={`${dBtn} ${dBtnGhost} ${dBtnSm} ${dBtnSquare}`}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"h-5 w-5\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z\"\n clipRule=\"evenodd\"\n />\n </svg>\n </button>\n\n <div className=\"text-base font-semibold\">\n {MONTHS[viewMonth]} {viewYear}\n </div>\n\n <button\n type=\"button\"\n onClick={handleNextMonth}\n className={`${dBtn} ${dBtnGhost} ${dBtnSm} ${dBtnSquare}`}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"h-5 w-5\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z\"\n clipRule=\"evenodd\"\n />\n </svg>\n </button>\n </div>\n\n {/* Days of week */}\n <div className=\"grid grid-cols-7 gap-1 mb-2\">\n {DAYS.map((day) => (\n <div\n key={day}\n className=\"text-center text-xs font-semibold text-base-content/60 py-2\"\n >\n {day}\n </div>\n ))}\n </div>\n\n {/* Calendar grid */}\n <div className=\"grid grid-cols-7 gap-1\">\n {calendarDays.map((day, index) => (\n <button\n key={index}\n type=\"button\"\n disabled={!day}\n onClick={() => day && handleDateSelect(day)}\n className={`\n aspect-square flex items-center justify-center text-sm rounded-lg\n ${!day ? 'invisible' : 'hover:bg-base-200'}\n ${isSelectedDay(day) ? 'bg-primary text-primary-content hover:bg-primary/90' : ''}\n ${isToday(day) && !isSelectedDay(day) ? 'border border-primary' : ''}\n ${day ? 'cursor-pointer' : ''}\n `}\n >\n {day}\n </button>\n ))}\n </div>\n\n {/* Today button */}\n <div className=\"mt-4 flex justify-end\">\n <button\n type=\"button\"\n onClick={() => {\n const today = new Date()\n setSelectedDate(today)\n setViewMonth(today.getMonth())\n setViewYear(today.getFullYear())\n onChange?.(today)\n setIsOpen(false)\n }}\n className={`${dBtn} ${dBtnGhost} ${dBtnSm}`}\n >\n Today\n </button>\n </div>\n </div>\n )}\n </div>\n )\n}\n"],"names":["dBtn","dBtnGhost","dBtnSm","dBtnSquare","DAYS","MONTHS","formatDate","date","format","year","month","day","getDaysInMonth","getFirstDayOfMonth","DatePicker","value","defaultValue","onChange","placeholder","disabled","className","size","rest","componentSize","useConfig","effectiveSize","selectedDate","setSelectedDate","useState","isOpen","setIsOpen","viewMonth","setViewMonth","viewYear","setViewYear","containerRef","useRef","useEffect","handleClickOutside","event","handleDateSelect","newDate","handlePrevMonth","handleNextMonth","daysInMonth","firstDayOfMonth","calendarDays","i","isSelectedDay","isToday","today","jsxs","jsx","Input","index"],"mappings":";;;;AAKA,MAAMA,IAAO,OACPC,IAAY,aACZC,IAAS,UACTC,IAAa,cAYbC,IAAO,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,GAChDC,IAAS;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,SAASC,EAAWC,GAAmBC,IAAiB,cAAsB;AAC5E,MAAI,CAACD,EAAM,QAAO;AAElB,QAAME,IAAOF,EAAK,YAAA,GACZG,IAAQ,OAAOH,EAAK,SAAA,IAAa,CAAC,EAAE,SAAS,GAAG,GAAG,GACnDI,IAAM,OAAOJ,EAAK,QAAA,CAAS,EAAE,SAAS,GAAG,GAAG;AAElD,SAAOC,EACJ,QAAQ,QAAQ,OAAOC,CAAI,CAAC,EAC5B,QAAQ,MAAMC,CAAK,EACnB,QAAQ,MAAMC,CAAG;AACtB;AAEA,SAASC,EAAeH,GAAcC,GAAuB;AAC3D,SAAO,IAAI,KAAKD,GAAMC,IAAQ,GAAG,CAAC,EAAE,QAAA;AACtC;AAEA,SAASG,EAAmBJ,GAAcC,GAAuB;AAC/D,SAAO,IAAI,KAAKD,GAAMC,GAAO,CAAC,EAAE,OAAA;AAClC;AAEO,MAAMI,IAAwC,CAAC;AAAA,EACpD,OAAAC;AAAA,EACA,cAAAC;AAAA,EACA,UAAAC;AAAA,EACA,QAAAT;AAAA,EACA,aAAAU,IAAc;AAAA,EACd,UAAAC,IAAW;AAAA,EACX,WAAAC,IAAY;AAAA,EACZ,MAAAC;AAAA,EACA,GAAGC;AACL,MAAM;AACJ,QAAM,EAAE,eAAAC,EAAA,IAAkBC,EAAA,GACpBC,IAAgBJ,KAAQE,KAAiB,MACzC,CAACG,GAAcC,CAAe,IAAIC;AAAA,IACtCb,KAASC,KAAgB;AAAA,EAAA,GAErB,CAACa,GAAQC,CAAS,IAAIF,EAAS,EAAK,GACpC,CAACG,GAAWC,CAAY,IAAIJ;AAAA,IAChCF,IAAeA,EAAa,SAAA,KAAa,oBAAI,KAAA,GAAO,SAAA;AAAA,EAAS,GAEzD,CAACO,GAAUC,CAAW,IAAIN;AAAA,IAC9BF,IAAeA,EAAa,YAAA,KAAgB,oBAAI,KAAA,GAAO,YAAA;AAAA,EAAY,GAG/DS,IAAeC,EAAuB,IAAI;AAEhD,EAAAC,EAAU,MAAM;AACd,IAAItB,MAAU,UACZY,EAAgBZ,CAAK;AAAA,EAEzB,GAAG,CAACA,CAAK,CAAC,GAEVsB,EAAU,MAAM;AACd,aAASC,EAAmBC,GAAmB;AAC7C,MAAIJ,EAAa,WAAW,CAACA,EAAa,QAAQ,SAASI,EAAM,MAAc,KAC7ET,EAAU,EAAK;AAAA,IAEnB;AAEA,QAAID;AACF,sBAAS,iBAAiB,aAAaS,CAAkB,GAClD,MAAM,SAAS,oBAAoB,aAAaA,CAAkB;AAAA,EAE7E,GAAG,CAACT,CAAM,CAAC;AAEX,QAAMW,IAAmB,CAAC7B,MAAgB;AACxC,UAAM8B,IAAU,IAAI,KAAKR,GAAUF,GAAWpB,CAAG;AACjD,IAAAgB,EAAgBc,CAAO,GACvBxB,IAAWwB,CAAO,GAClBX,EAAU,EAAK;AAAA,EACjB,GAEMY,IAAkB,MAAM;AAC5B,IAAIX,MAAc,KAChBC,EAAa,EAAE,GACfE,EAAYD,IAAW,CAAC,KAExBD,EAAaD,IAAY,CAAC;AAAA,EAE9B,GAEMY,IAAkB,MAAM;AAC5B,IAAIZ,MAAc,MAChBC,EAAa,CAAC,GACdE,EAAYD,IAAW,CAAC,KAExBD,EAAaD,IAAY,CAAC;AAAA,EAE9B,GAEMa,IAAchC,EAAeqB,GAAUF,CAAS,GAChDc,IAAkBhC,EAAmBoB,GAAUF,CAAS,GAExDe,IAAkC,CAAA;AACxC,WAASC,IAAI,GAAGA,IAAIF,GAAiBE;AACnC,IAAAD,EAAa,KAAK,IAAI;AAExB,WAASC,IAAI,GAAGA,KAAKH,GAAaG;AAChC,IAAAD,EAAa,KAAKC,CAAC;AAGrB,QAAMC,IAAgB,CAACrC,MACjB,CAACA,KAAO,CAACe,IAAqB,KAEhCA,EAAa,cAAcf,KAC3Be,EAAa,eAAeK,KAC5BL,EAAa,YAAA,MAAkBO,GAI7BgB,IAAU,CAACtC,MAAgC;AAC/C,QAAI,CAACA,EAAK,QAAO;AACjB,UAAMuC,wBAAY,KAAA;AAClB,WACEA,EAAM,cAAcvC,KACpBuC,EAAM,eAAenB,KACrBmB,EAAM,YAAA,MAAkBjB;AAAA,EAE5B;AAEA,SACE,gBAAAkB,EAAC,OAAA,EAAI,KAAKhB,GAAc,WAAW,YAAYf,CAAS,IAAI,cAAYS,IAAS,SAAS,UAAW,GAAGP,GACtG,UAAA;AAAA,IAAA,gBAAA8B;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,OAAO/C,EAAWoB,GAAclB,CAAM;AAAA,QACtC,aAAAU;AAAA,QACA,UAAAC;AAAA,QACA,MAAMM;AAAA,QACN,UAAQ;AAAA,QACR,SAAS,MAAM,CAACN,KAAYW,EAAU,CAACD,CAAM;AAAA,QAC7C,WAAU;AAAA,MAAA;AAAA,IAAA;AAAA,IAGXA,KACC,gBAAAsB,EAAC,OAAA,EAAI,WAAU,uGAEb,UAAA;AAAA,MAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,0CACb,UAAA;AAAA,QAAA,gBAAAC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,SAASV;AAAA,YACT,WAAW,GAAG1C,CAAI,IAAIC,CAAS,IAAIC,CAAM,IAAIC,CAAU;AAAA,YAEvD,UAAA,gBAAAiD;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,OAAM;AAAA,gBACN,WAAU;AAAA,gBACV,SAAQ;AAAA,gBACR,MAAK;AAAA,gBAEL,UAAA,gBAAAA;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,UAAS;AAAA,oBACT,GAAE;AAAA,oBACF,UAAS;AAAA,kBAAA;AAAA,gBAAA;AAAA,cACX;AAAA,YAAA;AAAA,UACF;AAAA,QAAA;AAAA,QAGF,gBAAAD,EAAC,OAAA,EAAI,WAAU,2BACZ,UAAA;AAAA,UAAA9C,EAAO0B,CAAS;AAAA,UAAE;AAAA,UAAEE;AAAA,QAAA,GACvB;AAAA,QAEA,gBAAAmB;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,SAAST;AAAA,YACT,WAAW,GAAG3C,CAAI,IAAIC,CAAS,IAAIC,CAAM,IAAIC,CAAU;AAAA,YAEvD,UAAA,gBAAAiD;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,OAAM;AAAA,gBACN,WAAU;AAAA,gBACV,SAAQ;AAAA,gBACR,MAAK;AAAA,gBAEL,UAAA,gBAAAA;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,UAAS;AAAA,oBACT,GAAE;AAAA,oBACF,UAAS;AAAA,kBAAA;AAAA,gBAAA;AAAA,cACX;AAAA,YAAA;AAAA,UACF;AAAA,QAAA;AAAA,MACF,GACF;AAAA,wBAGC,OAAA,EAAI,WAAU,+BACZ,UAAAhD,EAAK,IAAI,CAACO,MACT,gBAAAyC;AAAA,QAAC;AAAA,QAAA;AAAA,UAEC,WAAU;AAAA,UAET,UAAAzC;AAAA,QAAA;AAAA,QAHIA;AAAA,MAAA,CAKR,GACH;AAAA,MAGA,gBAAAyC,EAAC,SAAI,WAAU,0BACZ,YAAa,IAAI,CAACzC,GAAK2C,MACtB,gBAAAF;AAAA,QAAC;AAAA,QAAA;AAAA,UAEC,MAAK;AAAA,UACL,UAAU,CAACzC;AAAA,UACX,SAAS,MAAMA,KAAO6B,EAAiB7B,CAAG;AAAA,UAC1C,WAAW;AAAA;AAAA,oBAENA,IAAoB,sBAAd,WAAiC;AAAA,oBACxCqC,EAAcrC,CAAG,IAAI,wDAAwD,EAAE;AAAA,oBAC/EsC,EAAQtC,CAAG,KAAK,CAACqC,EAAcrC,CAAG,IAAI,0BAA0B,EAAE;AAAA,oBAClEA,IAAM,mBAAmB,EAAE;AAAA;AAAA,UAG9B,UAAAA;AAAA,QAAA;AAAA,QAZI2C;AAAA,MAAA,CAcR,GACH;AAAA,MAGA,gBAAAF,EAAC,OAAA,EAAI,WAAU,yBACb,UAAA,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,SAAS,MAAM;AACb,kBAAMF,wBAAY,KAAA;AAClB,YAAAvB,EAAgBuB,CAAK,GACrBlB,EAAakB,EAAM,UAAU,GAC7BhB,EAAYgB,EAAM,aAAa,GAC/BjC,IAAWiC,CAAK,GAChBpB,EAAU,EAAK;AAAA,UACjB;AAAA,UACA,WAAW,GAAG9B,CAAI,IAAIC,CAAS,IAAIC,CAAM;AAAA,UAC1C,UAAA;AAAA,QAAA;AAAA,MAAA,EAED,CACF;AAAA,IAAA,EAAA,CACF;AAAA,EAAA,GAEJ;AAEJ;"}
|
package/dist/components/Diff.js
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
const m = ({
|
|
3
|
-
left:
|
|
4
|
-
right:
|
|
1
|
+
import { jsxs as t, jsx as i } from "react/jsx-runtime";
|
|
2
|
+
const r = "diff", c = "diff-item-1", m = "diff-item-2", a = "diff-resizer", o = ({
|
|
3
|
+
left: e,
|
|
4
|
+
right: f,
|
|
5
5
|
aspect: s = "aspect-16/9",
|
|
6
6
|
className: d = ""
|
|
7
|
-
}) => /* @__PURE__ */
|
|
7
|
+
}) => /* @__PURE__ */ t(
|
|
8
8
|
"figure",
|
|
9
9
|
{
|
|
10
|
-
className:
|
|
10
|
+
className: `${r} ${s} ${d}`.trim(),
|
|
11
11
|
tabIndex: 0,
|
|
12
12
|
children: [
|
|
13
|
-
/* @__PURE__ */
|
|
14
|
-
/* @__PURE__ */
|
|
15
|
-
/* @__PURE__ */
|
|
13
|
+
/* @__PURE__ */ i("div", { className: c, role: "img", tabIndex: 0, children: e }),
|
|
14
|
+
/* @__PURE__ */ i("div", { className: m, role: "img", children: f }),
|
|
15
|
+
/* @__PURE__ */ i("div", { className: a })
|
|
16
16
|
]
|
|
17
17
|
}
|
|
18
18
|
);
|
|
19
19
|
export {
|
|
20
|
-
|
|
20
|
+
o as Diff
|
|
21
21
|
};
|
|
22
22
|
//# sourceMappingURL=Diff.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Diff.js","sources":["../../src/components/Diff.tsx"],"sourcesContent":["import React from 'react'\n\nexport interface DiffProps {\n /** Left side content (revealed when dragging) */\n left: React.ReactNode\n /** Right side content (hidden when dragging) */\n right: React.ReactNode\n /** Aspect ratio class (e.g., \"aspect-16/9\", \"aspect-4/3\", \"aspect-square\") */\n aspect?: string\n /** Additional CSS classes */\n className?: string\n}\n\nexport const Diff: React.FC<DiffProps> = ({\n left,\n right,\n aspect = 'aspect-16/9',\n className = '',\n}) => {\n return (\n <figure\n className={
|
|
1
|
+
{"version":3,"file":"Diff.js","sources":["../../src/components/Diff.tsx"],"sourcesContent":["import React from 'react'\n\n// DaisyUI classes\nconst dDiff = 'diff'\nconst dDiffItem1 = 'diff-item-1'\nconst dDiffItem2 = 'diff-item-2'\nconst dDiffResizer = 'diff-resizer'\n\nexport interface DiffProps {\n /** Left side content (revealed when dragging) */\n left: React.ReactNode\n /** Right side content (hidden when dragging) */\n right: React.ReactNode\n /** Aspect ratio class (e.g., \"aspect-16/9\", \"aspect-4/3\", \"aspect-square\") */\n aspect?: string\n /** Additional CSS classes */\n className?: string\n}\n\nexport const Diff: React.FC<DiffProps> = ({\n left,\n right,\n aspect = 'aspect-16/9',\n className = '',\n}) => {\n return (\n <figure\n className={`${dDiff} ${aspect} ${className}`.trim()}\n tabIndex={0}\n >\n <div className={dDiffItem1} role=\"img\" tabIndex={0}>\n {left}\n </div>\n <div className={dDiffItem2} role=\"img\">\n {right}\n </div>\n <div className={dDiffResizer} />\n </figure>\n )\n}\n"],"names":["dDiff","dDiffItem1","dDiffItem2","dDiffResizer","Diff","left","right","aspect","className","jsxs","jsx"],"mappings":";AAGA,MAAMA,IAAQ,QACRC,IAAa,eACbC,IAAa,eACbC,IAAe,gBAaRC,IAA4B,CAAC;AAAA,EACxC,MAAAC;AAAA,EACA,OAAAC;AAAA,EACA,QAAAC,IAAS;AAAA,EACT,WAAAC,IAAY;AACd,MAEI,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAW,GAAGT,CAAK,IAAIO,CAAM,IAAIC,CAAS,GAAG,KAAA;AAAA,IAC7C,UAAU;AAAA,IAEV,UAAA;AAAA,MAAA,gBAAAE,EAAC,SAAI,WAAWT,GAAY,MAAK,OAAM,UAAU,GAC9C,UAAAI,EAAA,CACH;AAAA,wBACC,OAAA,EAAI,WAAWH,GAAY,MAAK,OAC9B,UAAAI,GACH;AAAA,MACA,gBAAAI,EAAC,OAAA,EAAI,WAAWP,EAAA,CAAc;AAAA,IAAA;AAAA,EAAA;AAAA;"}
|
|
@@ -1,35 +1,36 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
|
|
1
|
+
import { jsx as a } from "react/jsx-runtime";
|
|
2
|
+
const v = "divider", l = "divider-horizontal", D = "divider-start", u = "divider-end", f = "divider-neutral", m = "divider-primary", y = "divider-secondary", p = "divider-accent", g = "divider-success", z = "divider-warning", S = "divider-info", h = "divider-error";
|
|
3
|
+
function w({
|
|
3
4
|
children: r,
|
|
4
|
-
orientation:
|
|
5
|
-
position:
|
|
5
|
+
orientation: d = "horizontal",
|
|
6
|
+
position: e = "center",
|
|
6
7
|
type: i,
|
|
7
8
|
className: n = "",
|
|
8
9
|
...s
|
|
9
10
|
}) {
|
|
10
11
|
const o = {
|
|
11
|
-
start:
|
|
12
|
+
start: D,
|
|
12
13
|
center: "",
|
|
13
|
-
end:
|
|
14
|
+
end: u
|
|
14
15
|
}, t = {
|
|
15
|
-
neutral:
|
|
16
|
-
primary:
|
|
17
|
-
secondary:
|
|
18
|
-
accent:
|
|
19
|
-
success:
|
|
20
|
-
warning:
|
|
21
|
-
info:
|
|
22
|
-
error:
|
|
23
|
-
},
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
o[
|
|
16
|
+
neutral: f,
|
|
17
|
+
primary: m,
|
|
18
|
+
secondary: y,
|
|
19
|
+
accent: p,
|
|
20
|
+
success: g,
|
|
21
|
+
warning: z,
|
|
22
|
+
info: S,
|
|
23
|
+
error: h
|
|
24
|
+
}, c = [
|
|
25
|
+
v,
|
|
26
|
+
d === "vertical" && l,
|
|
27
|
+
o[e],
|
|
27
28
|
i && t[i],
|
|
28
29
|
n
|
|
29
30
|
].filter(Boolean).join(" ");
|
|
30
|
-
return /* @__PURE__ */
|
|
31
|
+
return /* @__PURE__ */ a("div", { className: c, ...s, children: r });
|
|
31
32
|
}
|
|
32
33
|
export {
|
|
33
|
-
|
|
34
|
+
w as Divider
|
|
34
35
|
};
|
|
35
36
|
//# sourceMappingURL=Divider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Divider.js","sources":["../../src/components/Divider.tsx"],"sourcesContent":["import React from 'react'\n\nexport interface DividerProps extends React.HTMLAttributes<HTMLDivElement> {\n children?: React.ReactNode\n orientation?: 'horizontal' | 'vertical'\n position?: 'start' | 'center' | 'end'\n type?: 'neutral' | 'primary' | 'secondary' | 'accent' | 'success' | 'warning' | 'info' | 'error'\n}\n\nexport function Divider({\n children,\n orientation = 'horizontal',\n position = 'center',\n type,\n className = '',\n ...rest\n}: DividerProps) {\n const positionClasses: Record<string, string> = {\n start:
|
|
1
|
+
{"version":3,"file":"Divider.js","sources":["../../src/components/Divider.tsx"],"sourcesContent":["import React from 'react'\n\n// DaisyUI classes\nconst dDivider = 'divider'\nconst dDividerHorizontal = 'divider-horizontal'\nconst dDividerStart = 'divider-start'\nconst dDividerEnd = 'divider-end'\nconst dDividerNeutral = 'divider-neutral'\nconst dDividerPrimary = 'divider-primary'\nconst dDividerSecondary = 'divider-secondary'\nconst dDividerAccent = 'divider-accent'\nconst dDividerSuccess = 'divider-success'\nconst dDividerWarning = 'divider-warning'\nconst dDividerInfo = 'divider-info'\nconst dDividerError = 'divider-error'\n\nexport interface DividerProps extends React.HTMLAttributes<HTMLDivElement> {\n children?: React.ReactNode\n orientation?: 'horizontal' | 'vertical'\n position?: 'start' | 'center' | 'end'\n type?: 'neutral' | 'primary' | 'secondary' | 'accent' | 'success' | 'warning' | 'info' | 'error'\n}\n\nexport function Divider({\n children,\n orientation = 'horizontal',\n position = 'center',\n type,\n className = '',\n ...rest\n}: DividerProps) {\n const positionClasses: Record<string, string> = {\n start: dDividerStart,\n center: '',\n end: dDividerEnd,\n }\n\n const typeClasses: Record<string, string> = {\n neutral: dDividerNeutral,\n primary: dDividerPrimary,\n secondary: dDividerSecondary,\n accent: dDividerAccent,\n success: dDividerSuccess,\n warning: dDividerWarning,\n info: dDividerInfo,\n error: dDividerError,\n }\n\n const classes = [\n dDivider,\n orientation === 'vertical' && dDividerHorizontal,\n positionClasses[position],\n type && typeClasses[type],\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n return <div className={classes} {...rest}>{children}</div>\n}\n"],"names":["dDivider","dDividerHorizontal","dDividerStart","dDividerEnd","dDividerNeutral","dDividerPrimary","dDividerSecondary","dDividerAccent","dDividerSuccess","dDividerWarning","dDividerInfo","dDividerError","Divider","children","orientation","position","type","className","rest","positionClasses","typeClasses","classes"],"mappings":";AAGA,MAAMA,IAAW,WACXC,IAAqB,sBACrBC,IAAgB,iBAChBC,IAAc,eACdC,IAAkB,mBAClBC,IAAkB,mBAClBC,IAAoB,qBACpBC,IAAiB,kBACjBC,IAAkB,mBAClBC,IAAkB,mBAClBC,IAAe,gBACfC,IAAgB;AASf,SAASC,EAAQ;AAAA,EACtB,UAAAC;AAAA,EACA,aAAAC,IAAc;AAAA,EACd,UAAAC,IAAW;AAAA,EACX,MAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,GAAGC;AACL,GAAiB;AACf,QAAMC,IAA0C;AAAA,IAC9C,OAAOjB;AAAA,IACP,QAAQ;AAAA,IACR,KAAKC;AAAA,EAAA,GAGDiB,IAAsC;AAAA,IAC1C,SAAShB;AAAA,IACT,SAASC;AAAA,IACT,WAAWC;AAAA,IACX,QAAQC;AAAA,IACR,SAASC;AAAA,IACT,SAASC;AAAA,IACT,MAAMC;AAAA,IACN,OAAOC;AAAA,EAAA,GAGHU,IAAU;AAAA,IACdrB;AAAA,IACAc,MAAgB,cAAcb;AAAA,IAC9BkB,EAAgBJ,CAAQ;AAAA,IACxBC,KAAQI,EAAYJ,CAAI;AAAA,IACxBC;AAAA,EAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,2BAAQ,OAAA,EAAI,WAAWI,GAAU,GAAGH,GAAO,UAAAL,GAAS;AACtD;"}
|
package/dist/components/Dock.js
CHANGED
|
@@ -1,46 +1,47 @@
|
|
|
1
|
-
import { jsx as
|
|
1
|
+
import { jsx as e, jsxs as u } from "react/jsx-runtime";
|
|
2
2
|
import { forwardRef as m } from "react";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
import { useConfig as N } from "./ConfigProvider.js";
|
|
4
|
+
const g = "dock", j = "dock-xs", z = "dock-sm", C = "dock-md", x = "dock-lg", S = "dock-xl", D = "dock-active", h = "dock-label", f = m(
|
|
5
|
+
({ active: c, children: t, className: s = "", ...n }, l) => {
|
|
6
|
+
const d = [c && D, s].filter(Boolean).join(" ");
|
|
7
|
+
return /* @__PURE__ */ e("button", { ref: l, className: d || void 0, ...n, children: t });
|
|
7
8
|
}
|
|
8
9
|
);
|
|
9
|
-
|
|
10
|
+
f.displayName = "Dock.Item";
|
|
10
11
|
const v = m(
|
|
11
|
-
({ items:
|
|
12
|
-
const
|
|
13
|
-
xs:
|
|
14
|
-
sm:
|
|
15
|
-
md:
|
|
16
|
-
lg:
|
|
17
|
-
xl:
|
|
18
|
-
}[
|
|
19
|
-
return
|
|
20
|
-
const
|
|
21
|
-
return /* @__PURE__ */
|
|
12
|
+
({ items: c, size: t, activeIndex: s, onChange: n, children: l, className: d = "", ...i }, k) => {
|
|
13
|
+
const { componentSize: b } = N(), r = [g, {
|
|
14
|
+
xs: j,
|
|
15
|
+
sm: z,
|
|
16
|
+
md: C,
|
|
17
|
+
lg: x,
|
|
18
|
+
xl: S
|
|
19
|
+
}[t ?? b ?? "md"], d].filter(Boolean).join(" ");
|
|
20
|
+
return c ? /* @__PURE__ */ e("div", { ref: k, className: r, ...i, children: c.map((o, a) => {
|
|
21
|
+
const p = s !== void 0 ? s === a : o.active;
|
|
22
|
+
return /* @__PURE__ */ u(
|
|
22
23
|
"button",
|
|
23
24
|
{
|
|
24
|
-
className:
|
|
25
|
-
disabled:
|
|
25
|
+
className: p ? D : void 0,
|
|
26
|
+
disabled: o.disabled,
|
|
26
27
|
onClick: () => {
|
|
27
|
-
|
|
28
|
+
o.onClick?.(), n?.(a);
|
|
28
29
|
},
|
|
29
30
|
children: [
|
|
30
|
-
|
|
31
|
-
|
|
31
|
+
o.icon,
|
|
32
|
+
o.label && /* @__PURE__ */ e("span", { className: h, children: o.label })
|
|
32
33
|
]
|
|
33
34
|
},
|
|
34
|
-
|
|
35
|
+
a
|
|
35
36
|
);
|
|
36
|
-
}) }) : /* @__PURE__ */
|
|
37
|
+
}) }) : /* @__PURE__ */ e("div", { ref: k, className: r, ...i, children: l });
|
|
37
38
|
}
|
|
38
39
|
);
|
|
39
40
|
v.displayName = "Dock";
|
|
40
|
-
const
|
|
41
|
-
Item:
|
|
41
|
+
const R = Object.assign(v, {
|
|
42
|
+
Item: f
|
|
42
43
|
});
|
|
43
44
|
export {
|
|
44
|
-
|
|
45
|
+
R as Dock
|
|
45
46
|
};
|
|
46
47
|
//# sourceMappingURL=Dock.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dock.js","sources":["../../src/components/Dock.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\n\nexport interface DockItemConfig {\n /** Icon element */\n icon: React.ReactNode\n /** Label text */\n label?: string\n /** Whether this item is active */\n active?: boolean\n /** Whether this item is disabled */\n disabled?: boolean\n /** Click handler for this item */\n onClick?: () => void\n}\n\nexport interface DockProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {\n /** Dock items configuration */\n items?: DockItemConfig[]\n /** Size variant */\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl'\n /** Controlled active index */\n activeIndex?: number\n /** Callback when an item is clicked */\n onChange?: (index: number) => void\n /** Children (alternative to items prop) */\n children?: React.ReactNode\n /** Additional CSS classes */\n className?: string\n}\n\nexport interface DockItemProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n /** Whether this item is active */\n active?: boolean\n /** Children (icon and optional label) */\n children: React.ReactNode\n /** Additional CSS classes */\n className?: string\n}\n\nconst DockItem = forwardRef<HTMLButtonElement, DockItemProps>(\n ({ active, children, className = '', ...props }, ref) => {\n const classes = [active &&
|
|
1
|
+
{"version":3,"file":"Dock.js","sources":["../../src/components/Dock.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\nimport { useConfig } from './ConfigProvider'\n\n// DaisyUI classes\nconst dDock = 'dock'\nconst dDockXs = 'dock-xs'\nconst dDockSm = 'dock-sm'\nconst dDockMd = 'dock-md'\nconst dDockLg = 'dock-lg'\nconst dDockXl = 'dock-xl'\nconst dDockActive = 'dock-active'\nconst dDockLabel = 'dock-label'\n\nexport interface DockItemConfig {\n /** Icon element */\n icon: React.ReactNode\n /** Label text */\n label?: string\n /** Whether this item is active */\n active?: boolean\n /** Whether this item is disabled */\n disabled?: boolean\n /** Click handler for this item */\n onClick?: () => void\n}\n\nexport interface DockProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {\n /** Dock items configuration */\n items?: DockItemConfig[]\n /** Size variant */\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl'\n /** Controlled active index */\n activeIndex?: number\n /** Callback when an item is clicked */\n onChange?: (index: number) => void\n /** Children (alternative to items prop) */\n children?: React.ReactNode\n /** Additional CSS classes */\n className?: string\n}\n\nexport interface DockItemProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n /** Whether this item is active */\n active?: boolean\n /** Children (icon and optional label) */\n children: React.ReactNode\n /** Additional CSS classes */\n className?: string\n}\n\nconst DockItem = forwardRef<HTMLButtonElement, DockItemProps>(\n ({ active, children, className = '', ...props }, ref) => {\n const classes = [active && dDockActive, className].filter(Boolean).join(' ')\n\n return (\n <button ref={ref} className={classes || undefined} {...props}>\n {children}\n </button>\n )\n }\n)\n\nDockItem.displayName = 'Dock.Item'\n\nconst DockRoot = forwardRef<HTMLDivElement, DockProps>(\n ({ items, size, activeIndex, onChange, children, className = '', ...props }, ref) => {\n const { componentSize } = useConfig()\n const effectiveSize = size ?? componentSize ?? 'md'\n\n const sizeClasses = {\n xs: dDockXs,\n sm: dDockSm,\n md: dDockMd,\n lg: dDockLg,\n xl: dDockXl,\n }\n\n const classes = [dDock, sizeClasses[effectiveSize], className].filter(Boolean).join(' ')\n\n // If items array is provided, render from config\n if (items) {\n return (\n <div ref={ref} className={classes} {...props}>\n {items.map((item, index) => {\n const isActive = activeIndex !== undefined ? activeIndex === index : item.active\n\n return (\n <button\n key={index}\n className={isActive ? dDockActive : undefined}\n disabled={item.disabled}\n onClick={() => {\n item.onClick?.()\n onChange?.(index)\n }}\n >\n {item.icon}\n {item.label && <span className={dDockLabel}>{item.label}</span>}\n </button>\n )\n })}\n </div>\n )\n }\n\n // Otherwise render children\n return (\n <div ref={ref} className={classes} {...props}>\n {children}\n </div>\n )\n }\n)\n\nDockRoot.displayName = 'Dock'\n\nexport const Dock = Object.assign(DockRoot, {\n Item: DockItem,\n})\n"],"names":["dDock","dDockXs","dDockSm","dDockMd","dDockLg","dDockXl","dDockActive","dDockLabel","DockItem","forwardRef","active","children","className","props","ref","classes","jsx","DockRoot","items","size","activeIndex","onChange","componentSize","useConfig","item","index","isActive","jsxs","Dock"],"mappings":";;;AAIA,MAAMA,IAAQ,QACRC,IAAU,WACVC,IAAU,WACVC,IAAU,WACVC,IAAU,WACVC,IAAU,WACVC,IAAc,eACdC,IAAa,cAuCbC,IAAWC;AAAA,EACf,CAAC,EAAE,QAAAC,GAAQ,UAAAC,GAAU,WAAAC,IAAY,IAAI,GAAGC,EAAA,GAASC,MAAQ;AACvD,UAAMC,IAAU,CAACL,KAAUJ,GAAaM,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAE3E,WACE,gBAAAI,EAAC,YAAO,KAAAF,GAAU,WAAWC,KAAW,QAAY,GAAGF,GACpD,UAAAF,GACH;AAAA,EAEJ;AACF;AAEAH,EAAS,cAAc;AAEvB,MAAMS,IAAWR;AAAA,EACf,CAAC,EAAE,OAAAS,GAAO,MAAAC,GAAM,aAAAC,GAAa,UAAAC,GAAU,UAAAV,GAAU,WAAAC,IAAY,IAAI,GAAGC,EAAA,GAASC,MAAQ;AACnF,UAAM,EAAE,eAAAQ,EAAA,IAAkBC,EAAA,GAWpBR,IAAU,CAACf,GARG;AAAA,MAClB,IAAIC;AAAA,MACJ,IAAIC;AAAA,MACJ,IAAIC;AAAA,MACJ,IAAIC;AAAA,MACJ,IAAIC;AAAA,IAAA,EAPgBc,KAAQG,KAAiB,IAUE,GAAGV,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAGvF,WAAIM,IAEA,gBAAAF,EAAC,OAAA,EAAI,KAAAF,GAAU,WAAWC,GAAU,GAAGF,GACpC,UAAAK,EAAM,IAAI,CAACM,GAAMC,MAAU;AAC1B,YAAMC,IAAWN,MAAgB,SAAYA,MAAgBK,IAAQD,EAAK;AAE1E,aACE,gBAAAG;AAAA,QAAC;AAAA,QAAA;AAAA,UAEC,WAAWD,IAAWpB,IAAc;AAAA,UACpC,UAAUkB,EAAK;AAAA,UACf,SAAS,MAAM;AACb,YAAAA,EAAK,UAAA,GACLH,IAAWI,CAAK;AAAA,UAClB;AAAA,UAEC,UAAA;AAAA,YAAAD,EAAK;AAAA,YACLA,EAAK,SAAS,gBAAAR,EAAC,UAAK,WAAWT,GAAa,YAAK,MAAA,CAAM;AAAA,UAAA;AAAA,QAAA;AAAA,QATnDkB;AAAA,MAAA;AAAA,IAYX,CAAC,EAAA,CACH,sBAMD,OAAA,EAAI,KAAAX,GAAU,WAAWC,GAAU,GAAGF,GACpC,UAAAF,GACH;AAAA,EAEJ;AACF;AAEAM,EAAS,cAAc;AAEhB,MAAMW,IAAO,OAAO,OAAOX,GAAU;AAAA,EAC1C,MAAMT;AACR,CAAC;"}
|