asterui 0.12.48 → 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.
Files changed (201) hide show
  1. package/dist/components/Alert.js +18 -18
  2. package/dist/components/Alert.js.map +1 -1
  3. package/dist/components/Anchor.js +53 -53
  4. package/dist/components/Anchor.js.map +1 -1
  5. package/dist/components/Autocomplete.js +115 -114
  6. package/dist/components/Autocomplete.js.map +1 -1
  7. package/dist/components/Avatar.js +33 -32
  8. package/dist/components/Avatar.js.map +1 -1
  9. package/dist/components/Badge.js +99 -99
  10. package/dist/components/Badge.js.map +1 -1
  11. package/dist/components/Breadcrumb.js +12 -11
  12. package/dist/components/Breadcrumb.js.map +1 -1
  13. package/dist/components/Browser.js +10 -10
  14. package/dist/components/Browser.js.map +1 -1
  15. package/dist/components/Button.js +80 -79
  16. package/dist/components/Button.js.map +1 -1
  17. package/dist/components/Card.d.ts +2 -0
  18. package/dist/components/Card.js +111 -110
  19. package/dist/components/Card.js.map +1 -1
  20. package/dist/components/Carousel.js +59 -59
  21. package/dist/components/Carousel.js.map +1 -1
  22. package/dist/components/Cascader.js +175 -174
  23. package/dist/components/Cascader.js.map +1 -1
  24. package/dist/components/Chat.js +27 -27
  25. package/dist/components/Chat.js.map +1 -1
  26. package/dist/components/Checkbox.js +98 -97
  27. package/dist/components/Checkbox.js.map +1 -1
  28. package/dist/components/Code.js +11 -11
  29. package/dist/components/Code.js.map +1 -1
  30. package/dist/components/Collapse.js +46 -46
  31. package/dist/components/Collapse.js.map +1 -1
  32. package/dist/components/ColorPicker.d.ts +1 -1
  33. package/dist/components/ColorPicker.js +93 -91
  34. package/dist/components/ColorPicker.js.map +1 -1
  35. package/dist/components/Command.d.ts +65 -0
  36. package/dist/components/Command.js +422 -0
  37. package/dist/components/Command.js.map +1 -0
  38. package/dist/components/ConfigProvider.d.ts +1 -1
  39. package/dist/components/ConfigProvider.js +9 -9
  40. package/dist/components/ConfigProvider.js.map +1 -1
  41. package/dist/components/ContextMenu.js +33 -33
  42. package/dist/components/ContextMenu.js.map +1 -1
  43. package/dist/components/CopyButton.js +74 -73
  44. package/dist/components/CopyButton.js.map +1 -1
  45. package/dist/components/Countdown.js +60 -59
  46. package/dist/components/Countdown.js.map +1 -1
  47. package/dist/components/DatePicker.d.ts +1 -1
  48. package/dist/components/DatePicker.js +54 -53
  49. package/dist/components/DatePicker.js.map +1 -1
  50. package/dist/components/Diff.js +10 -10
  51. package/dist/components/Diff.js.map +1 -1
  52. package/dist/components/Divider.js +21 -20
  53. package/dist/components/Divider.js.map +1 -1
  54. package/dist/components/Dock.js +28 -27
  55. package/dist/components/Dock.js.map +1 -1
  56. package/dist/components/Drawer.js +43 -43
  57. package/dist/components/Drawer.js.map +1 -1
  58. package/dist/components/Dropdown.js +127 -127
  59. package/dist/components/Dropdown.js.map +1 -1
  60. package/dist/components/Empty.js +16 -15
  61. package/dist/components/Empty.js.map +1 -1
  62. package/dist/components/Fieldset.js +11 -10
  63. package/dist/components/Fieldset.js.map +1 -1
  64. package/dist/components/FileInput.js +30 -29
  65. package/dist/components/FileInput.js.map +1 -1
  66. package/dist/components/Filter.d.ts +1 -1
  67. package/dist/components/Filter.js +32 -30
  68. package/dist/components/Filter.js.map +1 -1
  69. package/dist/components/FloatButton.js +83 -83
  70. package/dist/components/FloatButton.js.map +1 -1
  71. package/dist/components/Footer.js +14 -13
  72. package/dist/components/Footer.js.map +1 -1
  73. package/dist/components/Form.js +133 -132
  74. package/dist/components/Form.js.map +1 -1
  75. package/dist/components/Hero.js +12 -11
  76. package/dist/components/Hero.js.map +1 -1
  77. package/dist/components/HoverGallery.js +7 -7
  78. package/dist/components/HoverGallery.js.map +1 -1
  79. package/dist/components/Image.js +40 -40
  80. package/dist/components/Image.js.map +1 -1
  81. package/dist/components/Input.js +171 -169
  82. package/dist/components/Input.js.map +1 -1
  83. package/dist/components/InputNumber.js +84 -83
  84. package/dist/components/InputNumber.js.map +1 -1
  85. package/dist/components/Join.js +11 -10
  86. package/dist/components/Join.js.map +1 -1
  87. package/dist/components/Kbd.js +15 -15
  88. package/dist/components/Kbd.js.map +1 -1
  89. package/dist/components/Layout.js +66 -66
  90. package/dist/components/Layout.js.map +1 -1
  91. package/dist/components/List.d.ts +1 -1
  92. package/dist/components/List.js +75 -72
  93. package/dist/components/List.js.map +1 -1
  94. package/dist/components/Loading.d.ts +1 -1
  95. package/dist/components/Loading.js +31 -29
  96. package/dist/components/Loading.js.map +1 -1
  97. package/dist/components/Mask.js +31 -31
  98. package/dist/components/Mask.js.map +1 -1
  99. package/dist/components/Mention.js +61 -61
  100. package/dist/components/Mention.js.map +1 -1
  101. package/dist/components/Menu.js +84 -84
  102. package/dist/components/Menu.js.map +1 -1
  103. package/dist/components/Message.js +30 -29
  104. package/dist/components/Message.js.map +1 -1
  105. package/dist/components/Modal.js +117 -116
  106. package/dist/components/Modal.js.map +1 -1
  107. package/dist/components/MonthCalendar.d.ts +31 -0
  108. package/dist/components/MonthCalendar.js +205 -0
  109. package/dist/components/MonthCalendar.js.map +1 -0
  110. package/dist/components/Navbar.js +25 -25
  111. package/dist/components/Navbar.js.map +1 -1
  112. package/dist/components/Notification.js +56 -55
  113. package/dist/components/Notification.js.map +1 -1
  114. package/dist/components/OTPInput.js +69 -68
  115. package/dist/components/OTPInput.js.map +1 -1
  116. package/dist/components/Pagination.d.ts +1 -1
  117. package/dist/components/Pagination.js +60 -58
  118. package/dist/components/Pagination.js.map +1 -1
  119. package/dist/components/Phone.js +10 -10
  120. package/dist/components/Phone.js.map +1 -1
  121. package/dist/components/Popconfirm.js +60 -60
  122. package/dist/components/Popconfirm.js.map +1 -1
  123. package/dist/components/Progress.js +17 -17
  124. package/dist/components/Progress.js.map +1 -1
  125. package/dist/components/QRCode.js +23 -23
  126. package/dist/components/QRCode.js.map +1 -1
  127. package/dist/components/RadialProgress.js +17 -17
  128. package/dist/components/RadialProgress.js.map +1 -1
  129. package/dist/components/Radio.js +41 -40
  130. package/dist/components/Radio.js.map +1 -1
  131. package/dist/components/Range.d.ts +1 -1
  132. package/dist/components/Range.js +39 -37
  133. package/dist/components/Range.js.map +1 -1
  134. package/dist/components/Rating.js +79 -78
  135. package/dist/components/Rating.js.map +1 -1
  136. package/dist/components/ResponsiveDrawer.js +27 -27
  137. package/dist/components/ResponsiveDrawer.js.map +1 -1
  138. package/dist/components/RichTextEditor.d.ts +32 -0
  139. package/dist/components/RichTextEditor.js +335 -0
  140. package/dist/components/RichTextEditor.js.map +1 -0
  141. package/dist/components/Segmented.d.ts +1 -1
  142. package/dist/components/Segmented.js +48 -46
  143. package/dist/components/Segmented.js.map +1 -1
  144. package/dist/components/Select.js +55 -54
  145. package/dist/components/Select.js.map +1 -1
  146. package/dist/components/Skeleton.js +9 -9
  147. package/dist/components/Skeleton.js.map +1 -1
  148. package/dist/components/Splitter.js +93 -93
  149. package/dist/components/Splitter.js.map +1 -1
  150. package/dist/components/Stat.js +17 -16
  151. package/dist/components/Stat.js.map +1 -1
  152. package/dist/components/Status.js +29 -29
  153. package/dist/components/Status.js.map +1 -1
  154. package/dist/components/Steps.js +61 -61
  155. package/dist/components/Steps.js.map +1 -1
  156. package/dist/components/Table.js +256 -256
  157. package/dist/components/Table.js.map +1 -1
  158. package/dist/components/Tabs.js +65 -65
  159. package/dist/components/Tabs.js.map +1 -1
  160. package/dist/components/Tag.js +147 -147
  161. package/dist/components/Tag.js.map +1 -1
  162. package/dist/components/TextRotate.js +6 -6
  163. package/dist/components/TextRotate.js.map +1 -1
  164. package/dist/components/Textarea.js +35 -34
  165. package/dist/components/Textarea.js.map +1 -1
  166. package/dist/components/ThemeController.d.ts +1 -1
  167. package/dist/components/ThemeController.js +71 -68
  168. package/dist/components/ThemeController.js.map +1 -1
  169. package/dist/components/TimePicker.d.ts +1 -1
  170. package/dist/components/TimePicker.js +133 -129
  171. package/dist/components/TimePicker.js.map +1 -1
  172. package/dist/components/Timeline.js +79 -79
  173. package/dist/components/Timeline.js.map +1 -1
  174. package/dist/components/Toggle.js +33 -32
  175. package/dist/components/Toggle.js.map +1 -1
  176. package/dist/components/Tooltip.js +25 -25
  177. package/dist/components/Tooltip.js.map +1 -1
  178. package/dist/components/Tour.js +126 -126
  179. package/dist/components/Tour.js.map +1 -1
  180. package/dist/components/Transfer.js +93 -92
  181. package/dist/components/Transfer.js.map +1 -1
  182. package/dist/components/Tree.js +200 -200
  183. package/dist/components/Tree.js.map +1 -1
  184. package/dist/components/TreeSelect.js +255 -254
  185. package/dist/components/TreeSelect.js.map +1 -1
  186. package/dist/components/Typography.js +71 -70
  187. package/dist/components/Typography.js.map +1 -1
  188. package/dist/components/Upload.js +81 -81
  189. package/dist/components/Upload.js.map +1 -1
  190. package/dist/components/WeekCalendar.d.ts +35 -0
  191. package/dist/components/WeekCalendar.js +204 -0
  192. package/dist/components/WeekCalendar.js.map +1 -0
  193. package/dist/components/Window.js +7 -7
  194. package/dist/components/Window.js.map +1 -1
  195. package/dist/editor.d.ts +1 -0
  196. package/dist/editor.js +5 -0
  197. package/dist/editor.js.map +1 -0
  198. package/dist/index.d.ts +6 -0
  199. package/dist/index.js +221 -215
  200. package/dist/index.js.map +1 -1
  201. package/package.json +30 -1
@@ -1,117 +1,118 @@
1
- import { jsxs as c, jsx as t, Fragment as S } from "react/jsx-runtime";
1
+ import { jsxs as c, jsx as s, Fragment as N } from "react/jsx-runtime";
2
2
  import { useState as D, useCallback as k, useEffect as I } from "react";
3
- const T = (s) => {
4
- const e = s - Date.now();
3
+ import { useConfig as E } from "./ConfigProvider.js";
4
+ const F = "countdown", U = "--value", V = "--digits", T = (t) => {
5
+ const e = t - Date.now();
5
6
  return e <= 0 ? { days: 0, hours: 0, minutes: 0, seconds: 0 } : {
6
7
  days: Math.floor(e / (1e3 * 60 * 60 * 24)),
7
8
  hours: Math.floor(e / (1e3 * 60 * 60) % 24),
8
9
  minutes: Math.floor(e / 1e3 / 60 % 60),
9
10
  seconds: Math.floor(e / 1e3 % 60)
10
11
  };
11
- }, h = ({ value: s, label: e, size: r, showLabel: l, boxed: f }) => {
12
- const n = /* @__PURE__ */ t("span", { className: `countdown font-mono ${{
12
+ }, x = ({ value: t, label: e, size: l, showLabel: i, boxed: h }) => {
13
+ const n = /* @__PURE__ */ s("span", { className: `${F} font-mono ${{
13
14
  xs: "text-lg",
14
15
  sm: "text-2xl",
15
16
  md: "text-4xl",
16
17
  lg: "text-5xl",
17
18
  xl: "text-6xl"
18
- }[r || "md"]}`, children: /* @__PURE__ */ t(
19
+ }[l || "md"]}`, children: /* @__PURE__ */ s(
19
20
  "span",
20
21
  {
21
- style: { "--value": s, "--digits": 2 },
22
+ style: { [U]: t, [V]: 2 },
22
23
  "aria-live": "polite",
23
- "aria-label": String(s),
24
- children: String(s).padStart(2, "0")
24
+ "aria-label": String(t),
25
+ children: String(t).padStart(2, "0")
25
26
  }
26
27
  ) });
27
- return f ? /* @__PURE__ */ c("div", { className: "flex flex-col items-center bg-neutral text-neutral-content rounded-box p-2", children: [
28
+ return h ? /* @__PURE__ */ c("div", { className: "flex flex-col items-center bg-neutral text-neutral-content rounded-box p-2", children: [
28
29
  n,
29
- l && e && /* @__PURE__ */ t("span", { className: "text-xs mt-1", children: e })
30
- ] }) : l ? /* @__PURE__ */ c("div", { className: "flex flex-col items-center", children: [
30
+ i && e && /* @__PURE__ */ s("span", { className: "text-xs mt-1", children: e })
31
+ ] }) : i ? /* @__PURE__ */ c("div", { className: "flex flex-col items-center", children: [
31
32
  n,
32
- e && /* @__PURE__ */ t("span", { className: "text-xs text-base-content/70", children: e })
33
+ e && /* @__PURE__ */ s("span", { className: "text-xs text-base-content/70", children: e })
33
34
  ] }) : n;
34
- }, $ = ({
35
- value: s,
35
+ }, q = ({
36
+ value: t,
36
37
  format: e = "HH:MM:SS",
37
- onFinish: r,
38
- onChange: l,
39
- className: f = "",
40
- size: a = "md",
38
+ onFinish: l,
39
+ onChange: i,
40
+ className: h = "",
41
+ size: z,
41
42
  showLabels: n = !1,
42
- labels: i = {},
43
- boxed: o = !1
43
+ labels: r = {},
44
+ boxed: a = !1
44
45
  }) => {
45
- const d = s instanceof Date ? s.getTime() : s, [u, H] = D(() => T(d)), [M, L] = D(!1), m = {
46
- days: i.days || "days",
47
- hours: i.hours || "hours",
48
- minutes: i.minutes || "min",
49
- seconds: i.seconds || "sec"
46
+ const { componentSize: H } = E(), o = z ?? H ?? "md", d = t instanceof Date ? t.getTime() : t, [u, L] = D(() => T(d)), [C, $] = D(!1), m = {
47
+ days: r.days || "days",
48
+ hours: r.hours || "hours",
49
+ minutes: r.minutes || "min",
50
+ seconds: r.seconds || "sec"
50
51
  }, p = k(() => {
51
- const N = T(d);
52
- H(N);
53
- const C = d - Date.now();
54
- l?.(Math.max(0, C)), C <= 0 && !M && (L(!0), r?.());
55
- }, [d, l, r, M]);
52
+ const y = T(d);
53
+ L(y);
54
+ const v = d - Date.now();
55
+ i?.(Math.max(0, v)), v <= 0 && !C && ($(!0), l?.());
56
+ }, [d, i, l, C]);
56
57
  I(() => {
57
- const N = setInterval(p, 1e3);
58
- return p(), () => clearInterval(N);
58
+ const y = setInterval(p, 1e3);
59
+ return p(), () => clearInterval(y);
59
60
  }, [p]);
60
- const j = e.includes("D"), v = e.includes("H"), g = e.includes("M"), x = e.includes("S"), w = a === "lg" || a === "xl" ? "text-3xl" : a === "md" ? "text-2xl" : "text-xl", y = !n && !o;
61
- return /* @__PURE__ */ c("div", { className: `flex gap-4 items-center ${f}`, children: [
62
- j && /* @__PURE__ */ c(S, { children: [
63
- /* @__PURE__ */ t(
64
- h,
61
+ const j = e.includes("D"), M = e.includes("H"), g = e.includes("M"), f = e.includes("S"), w = o === "lg" || o === "xl" ? "text-3xl" : o === "md" ? "text-2xl" : "text-xl", S = !n && !a;
62
+ return /* @__PURE__ */ c("div", { className: `flex gap-4 items-center ${h}`, children: [
63
+ j && /* @__PURE__ */ c(N, { children: [
64
+ /* @__PURE__ */ s(
65
+ x,
65
66
  {
66
67
  value: u.days,
67
68
  label: m.days,
68
- size: a,
69
+ size: o,
69
70
  showLabel: n,
70
- boxed: o
71
+ boxed: a
71
72
  }
72
73
  ),
73
- y && (v || g || x) && /* @__PURE__ */ t("span", { className: w, children: ":" })
74
+ S && (M || g || f) && /* @__PURE__ */ s("span", { className: w, children: ":" })
74
75
  ] }),
75
- v && /* @__PURE__ */ c(S, { children: [
76
- /* @__PURE__ */ t(
77
- h,
76
+ M && /* @__PURE__ */ c(N, { children: [
77
+ /* @__PURE__ */ s(
78
+ x,
78
79
  {
79
80
  value: u.hours,
80
81
  label: m.hours,
81
- size: a,
82
+ size: o,
82
83
  showLabel: n,
83
- boxed: o
84
+ boxed: a
84
85
  }
85
86
  ),
86
- y && (g || x) && /* @__PURE__ */ t("span", { className: w, children: ":" })
87
+ S && (g || f) && /* @__PURE__ */ s("span", { className: w, children: ":" })
87
88
  ] }),
88
- g && /* @__PURE__ */ c(S, { children: [
89
- /* @__PURE__ */ t(
90
- h,
89
+ g && /* @__PURE__ */ c(N, { children: [
90
+ /* @__PURE__ */ s(
91
+ x,
91
92
  {
92
93
  value: u.minutes,
93
94
  label: m.minutes,
94
- size: a,
95
+ size: o,
95
96
  showLabel: n,
96
- boxed: o
97
+ boxed: a
97
98
  }
98
99
  ),
99
- y && x && /* @__PURE__ */ t("span", { className: w, children: ":" })
100
+ S && f && /* @__PURE__ */ s("span", { className: w, children: ":" })
100
101
  ] }),
101
- x && /* @__PURE__ */ t(
102
- h,
102
+ f && /* @__PURE__ */ s(
103
+ x,
103
104
  {
104
105
  value: u.seconds,
105
106
  label: m.seconds,
106
- size: a,
107
+ size: o,
107
108
  showLabel: n,
108
- boxed: o
109
+ boxed: a
109
110
  }
110
111
  )
111
112
  ] });
112
113
  };
113
- $.displayName = "Countdown";
114
+ q.displayName = "Countdown";
114
115
  export {
115
- $ as Countdown
116
+ q as Countdown
116
117
  };
117
118
  //# sourceMappingURL=Countdown.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Countdown.js","sources":["../../src/components/Countdown.tsx"],"sourcesContent":["import React, { useEffect, useState, useCallback } from 'react'\n\nexport interface CountdownProps {\n /** Target timestamp in milliseconds or Date object */\n value: number | Date\n /** Format string: 'D' days, 'H' hours, 'M' minutes, 'S' seconds */\n format?: string\n /** Callback when countdown reaches zero */\n onFinish?: () => void\n /** Callback on each tick with remaining time */\n onChange?: (value: number) => void\n /** Additional CSS classes */\n className?: string\n /** Size variant */\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl'\n /** Show labels under each unit */\n showLabels?: boolean\n /** Custom labels */\n labels?: {\n days?: string\n hours?: string\n minutes?: string\n seconds?: string\n }\n /** Show box style around each unit */\n boxed?: boolean\n}\n\ninterface TimeLeft {\n days: number\n hours: number\n minutes: number\n seconds: number\n}\n\nconst calculateTimeLeft = (targetTime: number): TimeLeft => {\n const difference = targetTime - Date.now()\n\n if (difference <= 0) {\n return { days: 0, hours: 0, minutes: 0, seconds: 0 }\n }\n\n return {\n days: Math.floor(difference / (1000 * 60 * 60 * 24)),\n hours: Math.floor((difference / (1000 * 60 * 60)) % 24),\n minutes: Math.floor((difference / 1000 / 60) % 60),\n seconds: Math.floor((difference / 1000) % 60),\n }\n}\n\nconst CountdownUnit: React.FC<{\n value: number\n label?: string\n size?: CountdownProps['size']\n showLabel?: boolean\n boxed?: boolean\n}> = ({ value, label, size, showLabel, boxed }) => {\n const sizeClasses = {\n xs: 'text-lg',\n sm: 'text-2xl',\n md: 'text-4xl',\n lg: 'text-5xl',\n xl: 'text-6xl',\n }\n\n const content = (\n <span className={`countdown font-mono ${sizeClasses[size || 'md']}`}>\n <span\n style={{ '--value': value, '--digits': 2 } as React.CSSProperties}\n aria-live=\"polite\"\n aria-label={String(value)}\n >\n {String(value).padStart(2, '0')}\n </span>\n </span>\n )\n\n if (boxed) {\n return (\n <div className=\"flex flex-col items-center bg-neutral text-neutral-content rounded-box p-2\">\n {content}\n {showLabel && label && <span className=\"text-xs mt-1\">{label}</span>}\n </div>\n )\n }\n\n if (showLabel) {\n return (\n <div className=\"flex flex-col items-center\">\n {content}\n {label && <span className=\"text-xs text-base-content/70\">{label}</span>}\n </div>\n )\n }\n\n return content\n}\n\nexport const Countdown: React.FC<CountdownProps> = ({\n value,\n format = 'HH:MM:SS',\n onFinish,\n onChange,\n className = '',\n size = 'md',\n showLabels = false,\n labels = {},\n boxed = false,\n}) => {\n const targetTime = value instanceof Date ? value.getTime() : value\n const [timeLeft, setTimeLeft] = useState<TimeLeft>(() => calculateTimeLeft(targetTime))\n const [finished, setFinished] = useState(false)\n\n const defaultLabels = {\n days: labels.days || 'days',\n hours: labels.hours || 'hours',\n minutes: labels.minutes || 'min',\n seconds: labels.seconds || 'sec',\n }\n\n const tick = useCallback(() => {\n const newTimeLeft = calculateTimeLeft(targetTime)\n setTimeLeft(newTimeLeft)\n\n const remaining = targetTime - Date.now()\n onChange?.(Math.max(0, remaining))\n\n if (remaining <= 0 && !finished) {\n setFinished(true)\n onFinish?.()\n }\n }, [targetTime, onChange, onFinish, finished])\n\n useEffect(() => {\n const timer = setInterval(tick, 1000)\n tick() // Initial tick\n\n return () => clearInterval(timer)\n }, [tick])\n\n const showDays = format.includes('D')\n const showHours = format.includes('H')\n const showMinutes = format.includes('M')\n const showSeconds = format.includes('S')\n\n const separatorSize = size === 'lg' || size === 'xl' ? 'text-3xl' : size === 'md' ? 'text-2xl' : 'text-xl'\n const showSeparators = !showLabels && !boxed\n\n return (\n <div className={`flex gap-4 items-center ${className}`}>\n {showDays && (\n <>\n <CountdownUnit\n value={timeLeft.days}\n label={defaultLabels.days}\n size={size}\n showLabel={showLabels}\n boxed={boxed}\n />\n {showSeparators && (showHours || showMinutes || showSeconds) && (\n <span className={separatorSize}>:</span>\n )}\n </>\n )}\n {showHours && (\n <>\n <CountdownUnit\n value={timeLeft.hours}\n label={defaultLabels.hours}\n size={size}\n showLabel={showLabels}\n boxed={boxed}\n />\n {showSeparators && (showMinutes || showSeconds) && (\n <span className={separatorSize}>:</span>\n )}\n </>\n )}\n {showMinutes && (\n <>\n <CountdownUnit\n value={timeLeft.minutes}\n label={defaultLabels.minutes}\n size={size}\n showLabel={showLabels}\n boxed={boxed}\n />\n {showSeparators && showSeconds && <span className={separatorSize}>:</span>}\n </>\n )}\n {showSeconds && (\n <CountdownUnit\n value={timeLeft.seconds}\n label={defaultLabels.seconds}\n size={size}\n showLabel={showLabels}\n boxed={boxed}\n />\n )}\n </div>\n )\n}\n\nCountdown.displayName = 'Countdown'\n"],"names":["calculateTimeLeft","targetTime","difference","CountdownUnit","value","label","size","showLabel","boxed","content","jsx","jsxs","Countdown","format","onFinish","onChange","className","showLabels","labels","timeLeft","setTimeLeft","useState","finished","setFinished","defaultLabels","tick","useCallback","newTimeLeft","remaining","useEffect","timer","showDays","showHours","showMinutes","showSeconds","separatorSize","showSeparators","Fragment"],"mappings":"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"}
1
+ {"version":3,"file":"Countdown.js","sources":["../../src/components/Countdown.tsx"],"sourcesContent":["import React, { useEffect, useState, useCallback } from 'react'\nimport { useConfig } from './ConfigProvider'\n\n// DaisyUI classes\nconst dCountdown = 'countdown'\nconst dCssValue = '--value'\nconst dCssDigits = '--digits'\n\nexport interface CountdownProps {\n /** Target timestamp in milliseconds or Date object */\n value: number | Date\n /** Format string: 'D' days, 'H' hours, 'M' minutes, 'S' seconds */\n format?: string\n /** Callback when countdown reaches zero */\n onFinish?: () => void\n /** Callback on each tick with remaining time */\n onChange?: (value: number) => void\n /** Additional CSS classes */\n className?: string\n /** Size variant */\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl'\n /** Show labels under each unit */\n showLabels?: boolean\n /** Custom labels */\n labels?: {\n days?: string\n hours?: string\n minutes?: string\n seconds?: string\n }\n /** Show box style around each unit */\n boxed?: boolean\n}\n\ninterface TimeLeft {\n days: number\n hours: number\n minutes: number\n seconds: number\n}\n\nconst calculateTimeLeft = (targetTime: number): TimeLeft => {\n const difference = targetTime - Date.now()\n\n if (difference <= 0) {\n return { days: 0, hours: 0, minutes: 0, seconds: 0 }\n }\n\n return {\n days: Math.floor(difference / (1000 * 60 * 60 * 24)),\n hours: Math.floor((difference / (1000 * 60 * 60)) % 24),\n minutes: Math.floor((difference / 1000 / 60) % 60),\n seconds: Math.floor((difference / 1000) % 60),\n }\n}\n\nconst CountdownUnit: React.FC<{\n value: number\n label?: string\n size?: CountdownProps['size']\n showLabel?: boolean\n boxed?: boolean\n}> = ({ value, label, size, showLabel, boxed }) => {\n const sizeClasses = {\n xs: 'text-lg',\n sm: 'text-2xl',\n md: 'text-4xl',\n lg: 'text-5xl',\n xl: 'text-6xl',\n }\n\n const content = (\n <span className={`${dCountdown} font-mono ${sizeClasses[size || 'md']}`}>\n <span\n style={{ [dCssValue]: value, [dCssDigits]: 2 } as React.CSSProperties}\n aria-live=\"polite\"\n aria-label={String(value)}\n >\n {String(value).padStart(2, '0')}\n </span>\n </span>\n )\n\n if (boxed) {\n return (\n <div className=\"flex flex-col items-center bg-neutral text-neutral-content rounded-box p-2\">\n {content}\n {showLabel && label && <span className=\"text-xs mt-1\">{label}</span>}\n </div>\n )\n }\n\n if (showLabel) {\n return (\n <div className=\"flex flex-col items-center\">\n {content}\n {label && <span className=\"text-xs text-base-content/70\">{label}</span>}\n </div>\n )\n }\n\n return content\n}\n\nexport const Countdown: React.FC<CountdownProps> = ({\n value,\n format = 'HH:MM:SS',\n onFinish,\n onChange,\n className = '',\n size,\n showLabels = false,\n labels = {},\n boxed = false,\n}) => {\n const { componentSize } = useConfig()\n const effectiveSize = size ?? componentSize ?? 'md'\n const targetTime = value instanceof Date ? value.getTime() : value\n const [timeLeft, setTimeLeft] = useState<TimeLeft>(() => calculateTimeLeft(targetTime))\n const [finished, setFinished] = useState(false)\n\n const defaultLabels = {\n days: labels.days || 'days',\n hours: labels.hours || 'hours',\n minutes: labels.minutes || 'min',\n seconds: labels.seconds || 'sec',\n }\n\n const tick = useCallback(() => {\n const newTimeLeft = calculateTimeLeft(targetTime)\n setTimeLeft(newTimeLeft)\n\n const remaining = targetTime - Date.now()\n onChange?.(Math.max(0, remaining))\n\n if (remaining <= 0 && !finished) {\n setFinished(true)\n onFinish?.()\n }\n }, [targetTime, onChange, onFinish, finished])\n\n useEffect(() => {\n const timer = setInterval(tick, 1000)\n tick() // Initial tick\n\n return () => clearInterval(timer)\n }, [tick])\n\n const showDays = format.includes('D')\n const showHours = format.includes('H')\n const showMinutes = format.includes('M')\n const showSeconds = format.includes('S')\n\n const separatorSize = effectiveSize === 'lg' || effectiveSize === 'xl' ? 'text-3xl' : effectiveSize === 'md' ? 'text-2xl' : 'text-xl'\n const showSeparators = !showLabels && !boxed\n\n return (\n <div className={`flex gap-4 items-center ${className}`}>\n {showDays && (\n <>\n <CountdownUnit\n value={timeLeft.days}\n label={defaultLabels.days}\n size={effectiveSize}\n showLabel={showLabels}\n boxed={boxed}\n />\n {showSeparators && (showHours || showMinutes || showSeconds) && (\n <span className={separatorSize}>:</span>\n )}\n </>\n )}\n {showHours && (\n <>\n <CountdownUnit\n value={timeLeft.hours}\n label={defaultLabels.hours}\n size={effectiveSize}\n showLabel={showLabels}\n boxed={boxed}\n />\n {showSeparators && (showMinutes || showSeconds) && (\n <span className={separatorSize}>:</span>\n )}\n </>\n )}\n {showMinutes && (\n <>\n <CountdownUnit\n value={timeLeft.minutes}\n label={defaultLabels.minutes}\n size={effectiveSize}\n showLabel={showLabels}\n boxed={boxed}\n />\n {showSeparators && showSeconds && <span className={separatorSize}>:</span>}\n </>\n )}\n {showSeconds && (\n <CountdownUnit\n value={timeLeft.seconds}\n label={defaultLabels.seconds}\n size={effectiveSize}\n showLabel={showLabels}\n boxed={boxed}\n />\n )}\n </div>\n )\n}\n\nCountdown.displayName = 'Countdown'\n"],"names":["dCountdown","dCssValue","dCssDigits","calculateTimeLeft","targetTime","difference","CountdownUnit","value","label","size","showLabel","boxed","content","jsx","jsxs","Countdown","format","onFinish","onChange","className","showLabels","labels","componentSize","useConfig","effectiveSize","timeLeft","setTimeLeft","useState","finished","setFinished","defaultLabels","tick","useCallback","newTimeLeft","remaining","useEffect","timer","showDays","showHours","showMinutes","showSeconds","separatorSize","showSeparators","Fragment"],"mappings":"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"}
@@ -6,6 +6,6 @@ export interface DatePickerProps extends Omit<React.HTMLAttributes<HTMLDivElemen
6
6
  format?: string;
7
7
  placeholder?: string;
8
8
  disabled?: boolean;
9
- size?: 'xs' | 'sm' | 'md' | 'lg';
9
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
10
10
  }
11
11
  export declare const DatePicker: React.FC<DatePickerProps>;
@@ -1,7 +1,8 @@
1
1
  import { jsxs as m, jsx as n } from "react/jsx-runtime";
2
- import { useState as h, useRef as j, useEffect as y } from "react";
3
- import { Input as T } from "./Input.js";
4
- const $ = ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"], I = [
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 L(t, l = "MM/DD/YYYY") {
19
+ function P(t, l = "MM/DD/YYYY") {
19
20
  if (!t) return "";
20
- const u = t.getFullYear(), f = String(t.getMonth() + 1).padStart(2, "0"), g = String(t.getDate()).padStart(2, "0");
21
- return l.replace("YYYY", String(u)).replace("MM", f).replace("DD", g);
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 q(t, l) {
24
+ function V(t, l) {
24
25
  return new Date(t, l + 1, 0).getDate();
25
26
  }
26
- function z(t, l) {
27
+ function G(t, l) {
27
28
  return new Date(t, l, 1).getDay();
28
29
  }
29
- const B = ({
30
+ const U = ({
30
31
  value: t,
31
32
  defaultValue: l,
32
33
  onChange: u,
33
- format: f,
34
+ format: h,
34
35
  placeholder: g = "Select date",
35
- disabled: v = !1,
36
- className: x = "",
37
- size: N = "md",
38
- ...Y
36
+ disabled: S = !1,
37
+ className: $ = "",
38
+ size: F,
39
+ ...C
39
40
  }) => {
40
- const [o, b] = h(
41
+ const { componentSize: O } = A(), k = F ?? O ?? "md", [o, p] = f(
41
42
  t || l || null
42
- ), [c, d] = h(!1), [r, i] = h(
43
+ ), [c, d] = f(!1), [r, i] = f(
43
44
  o ? o.getMonth() : (/* @__PURE__ */ new Date()).getMonth()
44
- ), [a, p] = h(
45
+ ), [a, b] = f(
45
46
  o ? o.getFullYear() : (/* @__PURE__ */ new Date()).getFullYear()
46
- ), w = j(null);
47
- y(() => {
48
- t !== void 0 && b(t);
49
- }, [t]), y(() => {
47
+ ), v = L(null);
48
+ N(() => {
49
+ t !== void 0 && p(t);
50
+ }, [t]), N(() => {
50
51
  function e(s) {
51
- w.current && !w.current.contains(s.target) && d(!1);
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 S = (e) => {
57
+ const z = (e) => {
57
58
  const s = new Date(a, r, e);
58
- b(s), u?.(s), d(!1);
59
- }, F = () => {
60
- r === 0 ? (i(11), p(a - 1)) : i(r - 1);
61
- }, O = () => {
62
- r === 11 ? (i(0), p(a + 1)) : i(r + 1);
63
- }, k = q(a, r), C = z(a, r), D = [];
64
- for (let e = 0; e < C; e++)
65
- D.push(null);
66
- for (let e = 1; e <= k; e++)
67
- D.push(e);
68
- const M = (e) => !e || !o ? !1 : o.getDate() === e && o.getMonth() === r && o.getFullYear() === a, R = (e) => {
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: w, className: `relative ${x}`, "data-state": c ? "open" : "closed", ...Y, children: [
74
+ return /* @__PURE__ */ m("div", { ref: v, className: `relative ${$}`, "data-state": c ? "open" : "closed", ...C, children: [
74
75
  /* @__PURE__ */ n(
75
- T,
76
+ q,
76
77
  {
77
- value: L(o, f),
78
+ value: P(o, h),
78
79
  placeholder: g,
79
- disabled: v,
80
- size: N,
80
+ disabled: S,
81
+ size: k,
81
82
  readOnly: !0,
82
- onClick: () => !v && d(!c),
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: F,
93
- className: "btn btn-ghost btn-sm btn-square",
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
- I[r],
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: O,
123
- className: "btn btn-ghost btn-sm btn-square",
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: $.map((e) => /* @__PURE__ */ n(
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: D.map((e, s) => /* @__PURE__ */ n(
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 && S(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
- ${M(e) ? "bg-primary text-primary-content hover:bg-primary/90" : ""}
162
- ${R(e) && !M(e) ? "border border-primary" : ""}
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
- b(e), i(e.getMonth()), p(e.getFullYear()), u?.(e), d(!1);
176
+ p(e), i(e.getMonth()), b(e.getFullYear()), u?.(e), d(!1);
176
177
  },
177
- className: "btn btn-ghost btn-sm",
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
- B as DatePicker
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":"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"}
@@ -1,22 +1,22 @@
1
- import { jsxs as f, jsx as e } from "react/jsx-runtime";
2
- const m = ({
3
- left: i,
4
- right: r,
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__ */ f(
7
+ }) => /* @__PURE__ */ t(
8
8
  "figure",
9
9
  {
10
- className: `diff ${s} ${d}`.trim(),
10
+ className: `${r} ${s} ${d}`.trim(),
11
11
  tabIndex: 0,
12
12
  children: [
13
- /* @__PURE__ */ e("div", { className: "diff-item-1", role: "img", tabIndex: 0, children: i }),
14
- /* @__PURE__ */ e("div", { className: "diff-item-2", role: "img", children: r }),
15
- /* @__PURE__ */ e("div", { className: "diff-resizer" })
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
- m as Diff
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={`diff ${aspect} ${className}`.trim()}\n tabIndex={0}\n >\n <div className=\"diff-item-1\" role=\"img\" tabIndex={0}>\n {left}\n </div>\n <div className=\"diff-item-2\" role=\"img\">\n {right}\n </div>\n <div className=\"diff-resizer\" />\n </figure>\n )\n}\n"],"names":["Diff","left","right","aspect","className","jsxs","jsx"],"mappings":";AAaO,MAAMA,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,QAAQF,CAAM,IAAIC,CAAS,GAAG,KAAA;AAAA,IACzC,UAAU;AAAA,IAEV,UAAA;AAAA,MAAA,gBAAAE,EAAC,SAAI,WAAU,eAAc,MAAK,OAAM,UAAU,GAC/C,UAAAL,EAAA,CACH;AAAA,wBACC,OAAA,EAAI,WAAU,eAAc,MAAK,OAC/B,UAAAC,GACH;AAAA,MACA,gBAAAI,EAAC,OAAA,EAAI,WAAU,eAAA,CAAe;AAAA,IAAA;AAAA,EAAA;AAAA;"}
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 c } from "react/jsx-runtime";
2
- function l({
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: e = "horizontal",
5
- position: d = "center",
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: "divider-start",
12
+ start: D,
12
13
  center: "",
13
- end: "divider-end"
14
+ end: u
14
15
  }, t = {
15
- neutral: "divider-neutral",
16
- primary: "divider-primary",
17
- secondary: "divider-secondary",
18
- accent: "divider-accent",
19
- success: "divider-success",
20
- warning: "divider-warning",
21
- info: "divider-info",
22
- error: "divider-error"
23
- }, a = [
24
- "divider",
25
- e === "vertical" && "divider-horizontal",
26
- o[d],
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__ */ c("div", { className: a, ...s, children: r });
31
+ return /* @__PURE__ */ a("div", { className: c, ...s, children: r });
31
32
  }
32
33
  export {
33
- l as Divider
34
+ w as Divider
34
35
  };
35
36
  //# sourceMappingURL=Divider.js.map