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
@@ -0,0 +1,204 @@
1
+ import { jsxs as d, jsx as i } from "react/jsx-runtime";
2
+ import { forwardRef as L, useRef as M, useEffect as R, useMemo as C } from "react";
3
+ const F = {
4
+ locale: "en",
5
+ daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
6
+ monthsLong: [
7
+ "January",
8
+ "February",
9
+ "March",
10
+ "April",
11
+ "May",
12
+ "June",
13
+ "July",
14
+ "August",
15
+ "September",
16
+ "October",
17
+ "November",
18
+ "December"
19
+ ],
20
+ moreText: "more",
21
+ formatTime: (s) => {
22
+ const t = s.getHours();
23
+ return `${t === 0 ? 12 : t > 12 ? t - 12 : t}:00 ${t < 12 ? "AM" : "PM"}`.replace(" ", "").toLowerCase().replace(":00", "");
24
+ }
25
+ }, $ = (s) => _(s, /* @__PURE__ */ new Date()), _ = (s, t) => {
26
+ const n = new Date(s), c = new Date(t);
27
+ return n.setHours(0, 0, 0, 0), c.setHours(0, 0, 0, 0), c.getTime() === n.getTime();
28
+ }, k = (s) => {
29
+ const t = /* @__PURE__ */ new Date(), n = new Date(s);
30
+ return t.setHours(0, 0, 0, 0), n.setHours(0, 0, 0, 0), n < t;
31
+ }, J = (s) => {
32
+ const t = new Date(s), n = t.getDay(), c = t.getDate() - n;
33
+ return new Date(t.setDate(c));
34
+ }, O = (s, t) => {
35
+ const n = new Date(s);
36
+ return n.setDate(n.getDate() + t), n;
37
+ }, u = (s, t) => {
38
+ const n = s.getDate(), c = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"][s.getDay()];
39
+ return t === "YYYY-MM-DD" ? s.toISOString().split("T")[0] : t === "ddd" ? c : t === "D" ? n.toString() : s.toISOString();
40
+ }, P = L(
41
+ ({
42
+ date: s = /* @__PURE__ */ new Date(),
43
+ events: t = [],
44
+ locale: n = F,
45
+ onEventClick: c,
46
+ onDayClick: N,
47
+ onSelectSlot: x,
48
+ allowPastInteraction: m = !1,
49
+ fitContainer: f = !1,
50
+ startHour: y = 9,
51
+ endHour: Y = 17,
52
+ className: T = "",
53
+ ...S
54
+ }, E) => {
55
+ const g = M(null), D = M(null);
56
+ R(() => {
57
+ const e = () => {
58
+ if (g.current && D.current) {
59
+ const r = g.current, o = D.current, l = r.offsetWidth - r.clientWidth;
60
+ o.style.paddingRight = `${l}px`;
61
+ }
62
+ };
63
+ return e(), window.addEventListener("resize", e), () => window.removeEventListener("resize", e);
64
+ }, []);
65
+ const H = J(s), w = Array.from({ length: 7 }, (e, r) => O(H, r)), W = C(() => {
66
+ const e = {};
67
+ return t.forEach((r) => {
68
+ const o = u(r.date, "YYYY-MM-DD");
69
+ e[o] || (e[o] = []), e[o].push(r);
70
+ }), e;
71
+ }, [t]), v = Array.from({ length: Y - y + 1 }, (e, r) => r + y), A = (e) => n.formatTime ? n.formatTime(new Date(2e3, 0, 1, e, 0)) : `${e === 0 ? 12 : e > 12 ? e - 12 : e}:00 ${e < 12 ? "AM" : "PM"}`, j = (e, r) => (W[e] || []).filter((l) => l.date.getHours() === r);
72
+ return /* @__PURE__ */ d(
73
+ "div",
74
+ {
75
+ ref: E,
76
+ className: `flex h-full flex-col overflow-hidden border-b border-base-200 bg-base-100 ${T}`,
77
+ ...S,
78
+ children: [
79
+ /* @__PURE__ */ d(
80
+ "div",
81
+ {
82
+ ref: D,
83
+ className: "grid grid-cols-[80px_repeat(7,1fr)] border-b border-base-200 bg-base-100",
84
+ children: [
85
+ /* @__PURE__ */ i("div", { className: "week-calendar-time-column" }),
86
+ w.map((e) => {
87
+ const r = k(e), o = $(e);
88
+ return /* @__PURE__ */ d(
89
+ "div",
90
+ {
91
+ className: `
92
+ cursor-pointer px-2 py-0.5 text-center transition-colors hover:bg-primary/5
93
+ ${r && !m ? "cursor-not-allowed" : ""}
94
+ `,
95
+ onClick: () => {
96
+ r && !m || N?.(e);
97
+ },
98
+ children: [
99
+ /* @__PURE__ */ i(
100
+ "div",
101
+ {
102
+ className: `
103
+ text-xs font-medium uppercase
104
+ ${r ? "text-base-content/40" : "text-base-content/60"}
105
+ `,
106
+ children: u(e, "ddd")
107
+ }
108
+ ),
109
+ /* @__PURE__ */ i(
110
+ "div",
111
+ {
112
+ className: `
113
+ mx-auto flex items-center justify-center text-xs font-medium transition-all
114
+ ${o ? "font-bold text-primary" : ""}
115
+ ${r && !o ? "text-base-content/40" : "text-base-content"}
116
+ `,
117
+ children: u(e, "D")
118
+ }
119
+ )
120
+ ]
121
+ },
122
+ u(e, "YYYY-MM-DD")
123
+ );
124
+ })
125
+ ]
126
+ }
127
+ ),
128
+ /* @__PURE__ */ i(
129
+ "div",
130
+ {
131
+ ref: g,
132
+ className: f ? "grid flex-1" : "flex-1 overflow-y-auto",
133
+ style: f ? { gridTemplateRows: `repeat(${v.length}, 1fr)` } : void 0,
134
+ children: v.map((e) => /* @__PURE__ */ d(
135
+ "div",
136
+ {
137
+ className: `grid grid-cols-[80px_repeat(7,1fr)] border-b border-base-200 last:border-b-0 ${f ? "min-h-10" : "h-20"}`,
138
+ children: [
139
+ /* @__PURE__ */ i("div", { className: "flex items-start justify-end border-l border-r border-base-200 bg-base-200/50 p-2 pt-1 text-xs text-base-content/50", children: A(e) }),
140
+ w.map((r) => {
141
+ const o = u(r, "YYYY-MM-DD"), l = j(o, e), h = k(r) && !$(r);
142
+ return /* @__PURE__ */ i(
143
+ "div",
144
+ {
145
+ className: `
146
+ relative flex cursor-pointer flex-col justify-start overflow-y-auto border-r border-base-200 p-1 last:border-r-0
147
+ hover:bg-primary/5
148
+ ${f ? "" : "h-20"}
149
+ ${h && !m ? "cursor-not-allowed hover:cursor-not-allowed" : ""}
150
+ `,
151
+ onClick: (a) => {
152
+ if (!(h && !m) && x && (a.target === a.currentTarget || a.target.classList.contains("week-calendar-time-cell"))) {
153
+ const b = new Date(r);
154
+ b.setHours(e, 0, 0, 0);
155
+ const p = new Date(r);
156
+ p.setHours(e + 1, 0, 0, 0), x({ start: b, end: p });
157
+ }
158
+ },
159
+ children: l.map((a, b) => /* @__PURE__ */ d(
160
+ "div",
161
+ {
162
+ className: `
163
+ mb-px flex shrink-0 cursor-pointer items-center rounded px-1 py-0.5 text-xs leading-none
164
+ text-base-content transition-colors hover:bg-base-content/5 last:mb-0
165
+ ${a.strikethrough ? "line-through" : ""}
166
+ `,
167
+ style: a.style,
168
+ title: a.title,
169
+ onClick: (p) => {
170
+ p.stopPropagation(), c?.(a);
171
+ },
172
+ children: [
173
+ /* @__PURE__ */ i(
174
+ "div",
175
+ {
176
+ className: "mr-1.5 inline-block h-2 w-2 shrink-0 rounded-full",
177
+ style: { backgroundColor: a.color || "#bfbfbf" }
178
+ }
179
+ ),
180
+ /* @__PURE__ */ i("div", { className: "min-w-0 flex-1 overflow-hidden text-ellipsis whitespace-nowrap", children: a.title })
181
+ ]
182
+ },
183
+ b
184
+ ))
185
+ },
186
+ `${o}-${e}`
187
+ );
188
+ })
189
+ ]
190
+ },
191
+ e
192
+ ))
193
+ }
194
+ )
195
+ ]
196
+ }
197
+ );
198
+ }
199
+ );
200
+ P.displayName = "WeekCalendar";
201
+ export {
202
+ P as WeekCalendar
203
+ };
204
+ //# sourceMappingURL=WeekCalendar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WeekCalendar.js","sources":["../../src/components/WeekCalendar.tsx"],"sourcesContent":["import React, { useMemo, useRef, useEffect, forwardRef } from 'react'\n\n// DaisyUI classes\n// (No DaisyUI classes used in this component)\n\n// Types (shared with MonthCalendar)\nexport type CalendarEvent = {\n date: Date\n title: string\n color: string\n strikethrough?: boolean\n style?: React.CSSProperties\n}\n\nexport type CalendarLocale = {\n locale: string\n daysShort: string[]\n monthsLong: string[]\n moreText: string\n formatTime?: (date: Date) => string\n}\n\n// Default English locale\nconst defaultLocale: CalendarLocale = {\n locale: 'en',\n daysShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n monthsLong: [\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 moreText: 'more',\n formatTime: (date: Date): string => {\n const hour = date.getHours()\n const formatted = `${hour === 0 ? 12 : hour > 12 ? hour - 12 : hour}:00 ${hour < 12 ? 'AM' : 'PM'}`\n return formatted.replace(' ', '').toLowerCase().replace(':00', '')\n },\n}\n\n// Utility functions\nconst isToday = (date: Date) => isEqual(date, new Date())\n\nconst isEqual = (a: Date, b: Date) => {\n const acopy = new Date(a)\n const bcopy = new Date(b)\n acopy.setHours(0, 0, 0, 0)\n bcopy.setHours(0, 0, 0, 0)\n return bcopy.getTime() === acopy.getTime()\n}\n\nconst isPastDate = (date: Date) => {\n const today = new Date()\n const checkDate = new Date(date)\n today.setHours(0, 0, 0, 0)\n checkDate.setHours(0, 0, 0, 0)\n return checkDate < today\n}\n\nconst getWeekStart = (date: Date): Date => {\n const d = new Date(date)\n const day = d.getDay()\n const diff = d.getDate() - day\n return new Date(d.setDate(diff))\n}\n\nconst addDays = (date: Date, days: number): Date => {\n const result = new Date(date)\n result.setDate(result.getDate() + days)\n return result\n}\n\nconst formatDate = (date: Date, format: string): string => {\n const day = date.getDate()\n const dayName = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'][date.getDay()]\n\n if (format === 'YYYY-MM-DD') {\n return date.toISOString().split('T')[0]\n }\n if (format === 'ddd') {\n return dayName\n }\n if (format === 'D') {\n return day.toString()\n }\n return date.toISOString()\n}\n\nexport interface WeekCalendarProps<T extends CalendarEvent = CalendarEvent>\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {\n date?: Date\n events?: T[]\n onEventClick?: (event: T) => void\n onDayClick?: (date: Date) => void\n onSelectSlot?: (slotInfo: { start: Date; end: Date }) => void\n locale?: CalendarLocale\n allowPastInteraction?: boolean\n fitContainer?: boolean\n /** Start hour for the time grid (0-23) */\n startHour?: number\n /** End hour for the time grid (0-23) */\n endHour?: number\n}\n\nexport const WeekCalendar = forwardRef<HTMLDivElement, WeekCalendarProps>(\n <T extends CalendarEvent>(\n {\n date = new Date(),\n events = [],\n locale = defaultLocale,\n onEventClick,\n onDayClick,\n onSelectSlot,\n allowPastInteraction = false,\n fitContainer = false,\n startHour = 9,\n endHour = 17,\n className = '',\n ...rest\n }: WeekCalendarProps<T>,\n ref: React.ForwardedRef<HTMLDivElement>\n ) => {\n const bodyRef = useRef<HTMLDivElement>(null)\n const headerRef = useRef<HTMLDivElement>(null)\n\n // Adjust header padding to account for scrollbar\n useEffect(() => {\n const adjustScrollbar = () => {\n if (bodyRef.current && headerRef.current) {\n const bodyElement = bodyRef.current\n const headerElement = headerRef.current\n const scrollbarWidth = bodyElement.offsetWidth - bodyElement.clientWidth\n headerElement.style.paddingRight = `${scrollbarWidth}px`\n }\n }\n\n adjustScrollbar()\n window.addEventListener('resize', adjustScrollbar)\n return () => window.removeEventListener('resize', adjustScrollbar)\n }, [])\n\n\n const weekStart = getWeekStart(date)\n const weekDays = Array.from({ length: 7 }, (_, i) => addDays(weekStart, i))\n\n // Group events by day\n const eventsByDay = useMemo(() => {\n const grouped: Record<string, T[]> = {}\n events.forEach((event) => {\n const eventDate = formatDate(event.date, 'YYYY-MM-DD')\n if (!grouped[eventDate]) {\n grouped[eventDate] = []\n }\n grouped[eventDate].push(event as T)\n })\n return grouped\n }, [events])\n\n // Time slots from startHour to endHour\n const timeSlots = Array.from({ length: endHour - startHour + 1 }, (_, i) => i + startHour)\n\n const formatHour = (hour: number) => {\n if (locale.formatTime) {\n return locale.formatTime(new Date(2000, 0, 1, hour, 0))\n }\n return `${hour === 0 ? 12 : hour > 12 ? hour - 12 : hour}:00 ${hour < 12 ? 'AM' : 'PM'}`\n }\n\n const getEventsForDayAndHour = (dayStr: string, hour: number) => {\n const dayEvents = eventsByDay[dayStr] || []\n return dayEvents.filter((event) => {\n const eventHour = event.date.getHours()\n return eventHour === hour\n })\n }\n\n return (\n <div\n ref={ref}\n className={`flex h-full flex-col overflow-hidden border-b border-base-200 bg-base-100 ${className}`}\n {...rest}\n >\n {/* Header with days */}\n <div\n ref={headerRef}\n className=\"grid grid-cols-[80px_repeat(7,1fr)] border-b border-base-200 bg-base-100\"\n >\n <div className=\"week-calendar-time-column\" />\n {weekDays.map((day) => {\n const isPast = isPastDate(day)\n const isTodayDate = isToday(day)\n\n return (\n <div\n key={formatDate(day, 'YYYY-MM-DD')}\n className={`\n cursor-pointer px-2 py-0.5 text-center transition-colors hover:bg-primary/5\n ${isPast && !allowPastInteraction ? 'cursor-not-allowed' : ''}\n `}\n onClick={() => {\n if (isPast && !allowPastInteraction) {\n return\n }\n onDayClick?.(day)\n }}\n >\n <div\n className={`\n text-xs font-medium uppercase\n ${isPast ? 'text-base-content/40' : 'text-base-content/60'}\n `}\n >\n {formatDate(day, 'ddd')}\n </div>\n <div\n className={`\n mx-auto flex items-center justify-center text-xs font-medium transition-all\n ${isTodayDate ? 'font-bold text-primary' : ''}\n ${isPast && !isTodayDate ? 'text-base-content/40' : 'text-base-content'}\n `}\n >\n {formatDate(day, 'D')}\n </div>\n </div>\n )\n })}\n </div>\n\n {/* Time grid */}\n <div\n ref={bodyRef}\n className={fitContainer ? 'grid flex-1' : 'flex-1 overflow-y-auto'}\n style={fitContainer ? { gridTemplateRows: `repeat(${timeSlots.length}, 1fr)` } : undefined}\n >\n {timeSlots.map((hour) => (\n <div\n key={hour}\n className={`grid grid-cols-[80px_repeat(7,1fr)] border-b border-base-200 last:border-b-0 ${fitContainer ? 'min-h-10' : 'h-20'}`}\n >\n {/* Time label */}\n <div className=\"flex items-start justify-end border-l border-r border-base-200 bg-base-200/50 p-2 pt-1 text-xs text-base-content/50\">\n {formatHour(hour)}\n </div>\n\n {/* Day cells */}\n {weekDays.map((day) => {\n const dayStr = formatDate(day, 'YYYY-MM-DD')\n const hourEvents = getEventsForDayAndHour(dayStr, hour)\n const isPast = isPastDate(day) && !isToday(day)\n\n return (\n <div\n key={`${dayStr}-${hour}`}\n className={`\n relative flex cursor-pointer flex-col justify-start overflow-y-auto border-r border-base-200 p-1 last:border-r-0\n hover:bg-primary/5\n ${fitContainer ? '' : 'h-20'}\n ${isPast && !allowPastInteraction ? 'cursor-not-allowed hover:cursor-not-allowed' : ''}\n `}\n onClick={(e) => {\n if (isPast && !allowPastInteraction) {\n return\n }\n\n if (\n onSelectSlot &&\n (e.target === e.currentTarget ||\n (e.target as HTMLElement).classList.contains('week-calendar-time-cell'))\n ) {\n const start = new Date(day)\n start.setHours(hour, 0, 0, 0)\n\n const end = new Date(day)\n end.setHours(hour + 1, 0, 0, 0)\n\n onSelectSlot({ start, end })\n }\n }}\n >\n {hourEvents.map((event, idx) => (\n <div\n key={idx}\n className={`\n mb-px flex shrink-0 cursor-pointer items-center rounded px-1 py-0.5 text-xs leading-none\n text-base-content transition-colors hover:bg-base-content/5 last:mb-0\n ${event.strikethrough ? 'line-through' : ''}\n `}\n style={event.style}\n title={event.title}\n onClick={(e) => {\n e.stopPropagation()\n onEventClick?.(event)\n }}\n >\n <div\n className=\"mr-1.5 inline-block h-2 w-2 shrink-0 rounded-full\"\n style={{ backgroundColor: event.color || '#bfbfbf' }}\n />\n <div className=\"min-w-0 flex-1 overflow-hidden text-ellipsis whitespace-nowrap\">\n {event.title}\n </div>\n </div>\n ))}\n </div>\n )\n })}\n </div>\n ))}\n </div>\n </div>\n )\n }\n) as <T extends CalendarEvent = CalendarEvent>(\n props: WeekCalendarProps<T> & { ref?: React.ForwardedRef<HTMLDivElement> }\n) => React.ReactElement\n\n;(WeekCalendar as React.FC).displayName = 'WeekCalendar'\n"],"names":["defaultLocale","date","hour","isToday","isEqual","a","b","acopy","bcopy","isPastDate","today","checkDate","getWeekStart","d","day","diff","addDays","days","result","formatDate","format","dayName","WeekCalendar","forwardRef","events","locale","onEventClick","onDayClick","onSelectSlot","allowPastInteraction","fitContainer","startHour","endHour","className","rest","ref","bodyRef","useRef","headerRef","useEffect","adjustScrollbar","bodyElement","headerElement","scrollbarWidth","weekStart","weekDays","_","i","eventsByDay","useMemo","grouped","event","eventDate","timeSlots","formatHour","getEventsForDayAndHour","dayStr","jsxs","jsx","isPast","isTodayDate","hourEvents","e","start","end","idx"],"mappings":"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"}
@@ -1,10 +1,10 @@
1
- import { jsx as r } from "react/jsx-runtime";
2
- const a = ({
3
- children: e,
4
- className: o = "",
5
- contentClassName: d = ""
6
- }) => /* @__PURE__ */ r("div", { className: `mockup-window border border-base-300 ${o}`, children: /* @__PURE__ */ r("div", { className: `border-t border-base-300 ${d}`, children: e }) });
1
+ import { jsx as o } from "react/jsx-runtime";
2
+ const s = "mockup-window", i = ({
3
+ children: r,
4
+ className: d = "",
5
+ contentClassName: e = ""
6
+ }) => /* @__PURE__ */ o("div", { className: `${s} border border-base-300 ${d}`, children: /* @__PURE__ */ o("div", { className: `border-t border-base-300 ${e}`, children: r }) });
7
7
  export {
8
- a as Window
8
+ i as Window
9
9
  };
10
10
  //# sourceMappingURL=Window.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Window.js","sources":["../../src/components/Window.tsx"],"sourcesContent":["import React from 'react'\n\nexport interface WindowProps {\n children: React.ReactNode\n className?: string\n contentClassName?: string\n}\n\nexport const Window: React.FC<WindowProps> = ({\n children,\n className = '',\n contentClassName = '',\n}) => {\n return (\n <div className={`mockup-window border border-base-300 ${className}`}>\n <div className={`border-t border-base-300 ${contentClassName}`}>\n {children}\n </div>\n </div>\n )\n}\n"],"names":["Window","children","className","contentClassName","jsx"],"mappings":";AAQO,MAAMA,IAAgC,CAAC;AAAA,EAC5C,UAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,kBAAAC,IAAmB;AACrB,MAEI,gBAAAC,EAAC,OAAA,EAAI,WAAW,wCAAwCF,CAAS,IAC/D,UAAA,gBAAAE,EAAC,OAAA,EAAI,WAAW,4BAA4BD,CAAgB,IACzD,UAAAF,GACH,GACF;"}
1
+ {"version":3,"file":"Window.js","sources":["../../src/components/Window.tsx"],"sourcesContent":["import React from 'react'\n\n// DaisyUI classes\nconst dMockupWindow = 'mockup-window'\n\nexport interface WindowProps {\n children: React.ReactNode\n className?: string\n contentClassName?: string\n}\n\nexport const Window: React.FC<WindowProps> = ({\n children,\n className = '',\n contentClassName = '',\n}) => {\n return (\n <div className={`${dMockupWindow} border border-base-300 ${className}`}>\n <div className={`border-t border-base-300 ${contentClassName}`}>\n {children}\n </div>\n </div>\n )\n}\n"],"names":["dMockupWindow","Window","children","className","contentClassName","jsx"],"mappings":";AAGA,MAAMA,IAAgB,iBAQTC,IAAgC,CAAC;AAAA,EAC5C,UAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,kBAAAC,IAAmB;AACrB,MAEI,gBAAAC,EAAC,OAAA,EAAI,WAAW,GAAGL,CAAa,2BAA2BG,CAAS,IAClE,UAAA,gBAAAE,EAAC,SAAI,WAAW,4BAA4BD,CAAgB,IACzD,UAAAF,GACH,GACF;"}
@@ -0,0 +1 @@
1
+ export { RichTextEditor, type RichTextEditorProps, type ToolbarItem } from './components/RichTextEditor';
package/dist/editor.js ADDED
@@ -0,0 +1,5 @@
1
+ import { RichTextEditor as t } from "./components/RichTextEditor.js";
2
+ export {
3
+ t as RichTextEditor
4
+ };
5
+ //# sourceMappingURL=editor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
package/dist/index.d.ts CHANGED
@@ -36,6 +36,8 @@ export type { Locale } from './locale';
36
36
  export { enUS, enGB, enCA, zhCN, esES, jaJP, ptBR, deDE, frFR, koKR } from './locale';
37
37
  export { Collapse } from './components/Collapse';
38
38
  export type { CollapseProps, CollapseItemType, CollapseSize, CollapseIconPosition, CollapseCollapsible } from './components/Collapse';
39
+ export { Command } from './components/Command';
40
+ export type { CommandProps, CommandItemConfig } from './components/Command';
39
41
  export { Container } from './components/Container';
40
42
  export type { ContainerProps } from './components/Container';
41
43
  export { ContextMenu } from './components/ContextMenu';
@@ -44,6 +46,10 @@ export { Countdown } from './components/Countdown';
44
46
  export type { CountdownProps } from './components/Countdown';
45
47
  export { DatePicker } from './components/DatePicker';
46
48
  export type { DatePickerProps } from './components/DatePicker';
49
+ export { MonthCalendar } from './components/MonthCalendar';
50
+ export type { MonthCalendarProps, CalendarEvent, CalendarLocale } from './components/MonthCalendar';
51
+ export { WeekCalendar } from './components/WeekCalendar';
52
+ export type { WeekCalendarProps } from './components/WeekCalendar';
47
53
  export { Descriptions } from './components/Descriptions';
48
54
  export type { DescriptionsProps, DescriptionsItemProps, DescriptionsItemConfig, DescriptionsSize, DescriptionsLayout } from './components/Descriptions';
49
55
  export { Diff } from './components/Diff';