asterui 0.10.2

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 (366) hide show
  1. package/LICENSE +15 -0
  2. package/README.md +214 -0
  3. package/dist/components/Affix.d.ts +14 -0
  4. package/dist/components/Alert.d.ts +10 -0
  5. package/dist/components/Autocomplete.d.ts +18 -0
  6. package/dist/components/Avatar.d.ts +28 -0
  7. package/dist/components/Badge.d.ts +20 -0
  8. package/dist/components/Breadcrumb.d.ts +15 -0
  9. package/dist/components/Browser.d.ts +7 -0
  10. package/dist/components/Button.d.ts +23 -0
  11. package/dist/components/Card.d.ts +26 -0
  12. package/dist/components/Carousel.d.ts +14 -0
  13. package/dist/components/Cascader.d.ts +19 -0
  14. package/dist/components/Chart.d.ts +19 -0
  15. package/dist/components/Chat.d.ts +11 -0
  16. package/dist/components/Checkbox.d.ts +27 -0
  17. package/dist/components/Code.d.ts +14 -0
  18. package/dist/components/Collapse.d.ts +25 -0
  19. package/dist/components/ColorPicker.d.ts +10 -0
  20. package/dist/components/Container.d.ts +6 -0
  21. package/dist/components/ContextMenu.d.ts +23 -0
  22. package/dist/components/Countdown.d.ts +27 -0
  23. package/dist/components/DatePicker.d.ts +11 -0
  24. package/dist/components/Descriptions.d.ts +34 -0
  25. package/dist/components/Divider.d.ts +8 -0
  26. package/dist/components/Drawer.d.ts +10 -0
  27. package/dist/components/Dropdown.d.ts +39 -0
  28. package/dist/components/Empty.d.ts +8 -0
  29. package/dist/components/Fieldset.d.ts +15 -0
  30. package/dist/components/FileInput.d.ts +9 -0
  31. package/dist/components/Flex.d.ts +14 -0
  32. package/dist/components/FloatButton.d.ts +34 -0
  33. package/dist/components/Footer.d.ts +16 -0
  34. package/dist/components/Form.d.ts +66 -0
  35. package/dist/components/Grid.d.ts +26 -0
  36. package/dist/components/Hero.d.ts +9 -0
  37. package/dist/components/Image.d.ts +14 -0
  38. package/dist/components/Indicator.d.ts +7 -0
  39. package/dist/components/Input.d.ts +14 -0
  40. package/dist/components/InputNumber.d.ts +19 -0
  41. package/dist/components/Join.d.ts +6 -0
  42. package/dist/components/Label.d.ts +15 -0
  43. package/dist/components/Layout.d.ts +59 -0
  44. package/dist/components/List.d.ts +13 -0
  45. package/dist/components/Loading.d.ts +9 -0
  46. package/dist/components/Masonry.d.ts +15 -0
  47. package/dist/components/Mention.d.ts +30 -0
  48. package/dist/components/Menu.d.ts +45 -0
  49. package/dist/components/Modal.d.ts +42 -0
  50. package/dist/components/Navbar.d.ts +8 -0
  51. package/dist/components/Notification.d.ts +43 -0
  52. package/dist/components/OTPInput.d.ts +32 -0
  53. package/dist/components/PageLayout.d.ts +9 -0
  54. package/dist/components/Pagination.d.ts +18 -0
  55. package/dist/components/Phone.d.ts +8 -0
  56. package/dist/components/Popconfirm.d.ts +17 -0
  57. package/dist/components/Popover.d.ts +15 -0
  58. package/dist/components/Progress.d.ts +5 -0
  59. package/dist/components/QRCode.d.ts +19 -0
  60. package/dist/components/RadialProgress.d.ts +10 -0
  61. package/dist/components/Radio.d.ts +20 -0
  62. package/dist/components/Range.d.ts +16 -0
  63. package/dist/components/Rating.d.ts +22 -0
  64. package/dist/components/Responsive.d.ts +18 -0
  65. package/dist/components/Result.d.ts +12 -0
  66. package/dist/components/Select.d.ts +10 -0
  67. package/dist/components/Skeleton.d.ts +9 -0
  68. package/dist/components/Space.d.ts +10 -0
  69. package/dist/components/Splitter.d.ts +27 -0
  70. package/dist/components/Stack.d.ts +10 -0
  71. package/dist/components/Stat.d.ts +18 -0
  72. package/dist/components/Steps.d.ts +16 -0
  73. package/dist/components/Table.d.ts +51 -0
  74. package/dist/components/Tabs.d.ts +21 -0
  75. package/dist/components/Tag.d.ts +18 -0
  76. package/dist/components/Textarea.d.ts +9 -0
  77. package/dist/components/ThemeController.d.ts +20 -0
  78. package/dist/components/TimePicker.d.ts +12 -0
  79. package/dist/components/Timeline.d.ts +24 -0
  80. package/dist/components/Toggle.d.ts +7 -0
  81. package/dist/components/Tooltip.d.ts +9 -0
  82. package/dist/components/Transfer.d.ts +22 -0
  83. package/dist/components/Tree.d.ts +40 -0
  84. package/dist/components/TreeSelect.d.ts +20 -0
  85. package/dist/components/Typography.d.ts +53 -0
  86. package/dist/components/Upload.d.ts +38 -0
  87. package/dist/components/Window.d.ts +7 -0
  88. package/dist/hooks/useBreakpoint.d.ts +10 -0
  89. package/dist/index.d.ts +172 -0
  90. package/dist/index.js +182 -0
  91. package/dist/index.js.map +1 -0
  92. package/dist/index10.js +33 -0
  93. package/dist/index10.js.map +1 -0
  94. package/dist/index100.js +24 -0
  95. package/dist/index100.js.map +1 -0
  96. package/dist/index101.js +27 -0
  97. package/dist/index101.js.map +1 -0
  98. package/dist/index102.js +23 -0
  99. package/dist/index102.js.map +1 -0
  100. package/dist/index103.js +103 -0
  101. package/dist/index103.js.map +1 -0
  102. package/dist/index104.js +363 -0
  103. package/dist/index104.js.map +1 -0
  104. package/dist/index105.js +28 -0
  105. package/dist/index105.js.map +1 -0
  106. package/dist/index106.js +76 -0
  107. package/dist/index106.js.map +1 -0
  108. package/dist/index107.js +19 -0
  109. package/dist/index107.js.map +1 -0
  110. package/dist/index108.js +69 -0
  111. package/dist/index108.js.map +1 -0
  112. package/dist/index109.js +147 -0
  113. package/dist/index109.js.map +1 -0
  114. package/dist/index11.js +268 -0
  115. package/dist/index11.js.map +1 -0
  116. package/dist/index110.js +5 -0
  117. package/dist/index110.js.map +1 -0
  118. package/dist/index111.js +59 -0
  119. package/dist/index111.js.map +1 -0
  120. package/dist/index112.js +5 -0
  121. package/dist/index112.js.map +1 -0
  122. package/dist/index113.js +5 -0
  123. package/dist/index113.js.map +1 -0
  124. package/dist/index114.js +5 -0
  125. package/dist/index114.js.map +1 -0
  126. package/dist/index115.js +5 -0
  127. package/dist/index115.js.map +1 -0
  128. package/dist/index116.js +5 -0
  129. package/dist/index116.js.map +1 -0
  130. package/dist/index117.js +5 -0
  131. package/dist/index117.js.map +1 -0
  132. package/dist/index118.js +5 -0
  133. package/dist/index118.js.map +1 -0
  134. package/dist/index119.js +5 -0
  135. package/dist/index119.js.map +1 -0
  136. package/dist/index12.js +98 -0
  137. package/dist/index12.js.map +1 -0
  138. package/dist/index120.js +35 -0
  139. package/dist/index120.js.map +1 -0
  140. package/dist/index121.js +5 -0
  141. package/dist/index121.js.map +1 -0
  142. package/dist/index122.js +11 -0
  143. package/dist/index122.js.map +1 -0
  144. package/dist/index123.js +5 -0
  145. package/dist/index123.js.map +1 -0
  146. package/dist/index124.js +5 -0
  147. package/dist/index124.js.map +1 -0
  148. package/dist/index125.js +24 -0
  149. package/dist/index125.js.map +1 -0
  150. package/dist/index126.js +5 -0
  151. package/dist/index126.js.map +1 -0
  152. package/dist/index127.js +27 -0
  153. package/dist/index127.js.map +1 -0
  154. package/dist/index128.js +74 -0
  155. package/dist/index128.js.map +1 -0
  156. package/dist/index129.js +24 -0
  157. package/dist/index129.js.map +1 -0
  158. package/dist/index13.js +161 -0
  159. package/dist/index13.js.map +1 -0
  160. package/dist/index130.js +37 -0
  161. package/dist/index130.js.map +1 -0
  162. package/dist/index131.js +73 -0
  163. package/dist/index131.js.map +1 -0
  164. package/dist/index132.js +5 -0
  165. package/dist/index132.js.map +1 -0
  166. package/dist/index133.js +25 -0
  167. package/dist/index133.js.map +1 -0
  168. package/dist/index134.js +5 -0
  169. package/dist/index134.js.map +1 -0
  170. package/dist/index135.js +5 -0
  171. package/dist/index135.js.map +1 -0
  172. package/dist/index136.js +5 -0
  173. package/dist/index136.js.map +1 -0
  174. package/dist/index137.js +5 -0
  175. package/dist/index137.js.map +1 -0
  176. package/dist/index138.js +7 -0
  177. package/dist/index138.js.map +1 -0
  178. package/dist/index14.js +153 -0
  179. package/dist/index14.js.map +1 -0
  180. package/dist/index15.js +8 -0
  181. package/dist/index15.js.map +1 -0
  182. package/dist/index16.js +74 -0
  183. package/dist/index16.js.map +1 -0
  184. package/dist/index17.js +20 -0
  185. package/dist/index17.js.map +1 -0
  186. package/dist/index18.js +101 -0
  187. package/dist/index18.js.map +1 -0
  188. package/dist/index19.js +117 -0
  189. package/dist/index19.js.map +1 -0
  190. package/dist/index2.js +50 -0
  191. package/dist/index2.js.map +1 -0
  192. package/dist/index20.js +187 -0
  193. package/dist/index20.js.map +1 -0
  194. package/dist/index21.js +113 -0
  195. package/dist/index21.js.map +1 -0
  196. package/dist/index22.js +35 -0
  197. package/dist/index22.js.map +1 -0
  198. package/dist/index23.js +44 -0
  199. package/dist/index23.js.map +1 -0
  200. package/dist/index24.js +15 -0
  201. package/dist/index24.js.map +1 -0
  202. package/dist/index25.js +36 -0
  203. package/dist/index25.js.map +1 -0
  204. package/dist/index26.js +66 -0
  205. package/dist/index26.js.map +1 -0
  206. package/dist/index27.js +83 -0
  207. package/dist/index27.js.map +1 -0
  208. package/dist/index28.js +21 -0
  209. package/dist/index28.js.map +1 -0
  210. package/dist/index29.js +164 -0
  211. package/dist/index29.js.map +1 -0
  212. package/dist/index3.js +31 -0
  213. package/dist/index3.js.map +1 -0
  214. package/dist/index30.js +1085 -0
  215. package/dist/index30.js.map +1 -0
  216. package/dist/index31.js +21 -0
  217. package/dist/index31.js.map +1 -0
  218. package/dist/index32.js +125 -0
  219. package/dist/index32.js.map +1 -0
  220. package/dist/index33.js +43 -0
  221. package/dist/index33.js.map +1 -0
  222. package/dist/index34.js +194 -0
  223. package/dist/index34.js.map +1 -0
  224. package/dist/index35.js +100 -0
  225. package/dist/index35.js.map +1 -0
  226. package/dist/index36.js +165 -0
  227. package/dist/index36.js.map +1 -0
  228. package/dist/index37.js +149 -0
  229. package/dist/index37.js.map +1 -0
  230. package/dist/index38.js +18 -0
  231. package/dist/index38.js.map +1 -0
  232. package/dist/index39.js +24 -0
  233. package/dist/index39.js.map +1 -0
  234. package/dist/index4.js +104 -0
  235. package/dist/index4.js.map +1 -0
  236. package/dist/index40.js +122 -0
  237. package/dist/index40.js.map +1 -0
  238. package/dist/index41.js +16 -0
  239. package/dist/index41.js.map +1 -0
  240. package/dist/index42.js +38 -0
  241. package/dist/index42.js.map +1 -0
  242. package/dist/index43.js +119 -0
  243. package/dist/index43.js.map +1 -0
  244. package/dist/index44.js +179 -0
  245. package/dist/index44.js.map +1 -0
  246. package/dist/index45.js +150 -0
  247. package/dist/index45.js.map +1 -0
  248. package/dist/index46.js +15 -0
  249. package/dist/index46.js.map +1 -0
  250. package/dist/index47.js +25 -0
  251. package/dist/index47.js.map +1 -0
  252. package/dist/index48.js +17 -0
  253. package/dist/index48.js.map +1 -0
  254. package/dist/index49.js +10 -0
  255. package/dist/index49.js.map +1 -0
  256. package/dist/index5.js +64 -0
  257. package/dist/index5.js.map +1 -0
  258. package/dist/index50.js +269 -0
  259. package/dist/index50.js.map +1 -0
  260. package/dist/index51.js +20 -0
  261. package/dist/index51.js.map +1 -0
  262. package/dist/index52.js +125 -0
  263. package/dist/index52.js.map +1 -0
  264. package/dist/index53.js +113 -0
  265. package/dist/index53.js.map +1 -0
  266. package/dist/index54.js +173 -0
  267. package/dist/index54.js.map +1 -0
  268. package/dist/index55.js +35 -0
  269. package/dist/index55.js.map +1 -0
  270. package/dist/index56.js +125 -0
  271. package/dist/index56.js.map +1 -0
  272. package/dist/index57.js +89 -0
  273. package/dist/index57.js.map +1 -0
  274. package/dist/index58.js +23 -0
  275. package/dist/index58.js.map +1 -0
  276. package/dist/index59.js +77 -0
  277. package/dist/index59.js.map +1 -0
  278. package/dist/index6.js +133 -0
  279. package/dist/index6.js.map +1 -0
  280. package/dist/index60.js +60 -0
  281. package/dist/index60.js.map +1 -0
  282. package/dist/index61.js +48 -0
  283. package/dist/index61.js.map +1 -0
  284. package/dist/index62.js +55 -0
  285. package/dist/index62.js.map +1 -0
  286. package/dist/index63.js +65 -0
  287. package/dist/index63.js.map +1 -0
  288. package/dist/index64.js +110 -0
  289. package/dist/index64.js.map +1 -0
  290. package/dist/index65.js +44 -0
  291. package/dist/index65.js.map +1 -0
  292. package/dist/index66.js +24 -0
  293. package/dist/index66.js.map +1 -0
  294. package/dist/index67.js +49 -0
  295. package/dist/index67.js.map +1 -0
  296. package/dist/index68.js +137 -0
  297. package/dist/index68.js.map +1 -0
  298. package/dist/index69.js +55 -0
  299. package/dist/index69.js.map +1 -0
  300. package/dist/index7.js +14 -0
  301. package/dist/index7.js.map +1 -0
  302. package/dist/index70.js +25 -0
  303. package/dist/index70.js.map +1 -0
  304. package/dist/index71.js +25 -0
  305. package/dist/index71.js.map +1 -0
  306. package/dist/index72.js +332 -0
  307. package/dist/index72.js.map +1 -0
  308. package/dist/index73.js +59 -0
  309. package/dist/index73.js.map +1 -0
  310. package/dist/index74.js +43 -0
  311. package/dist/index74.js.map +1 -0
  312. package/dist/index75.js +98 -0
  313. package/dist/index75.js.map +1 -0
  314. package/dist/index76.js +133 -0
  315. package/dist/index76.js.map +1 -0
  316. package/dist/index77.js +164 -0
  317. package/dist/index77.js.map +1 -0
  318. package/dist/index78.js +68 -0
  319. package/dist/index78.js.map +1 -0
  320. package/dist/index79.js +38 -0
  321. package/dist/index79.js.map +1 -0
  322. package/dist/index8.js +73 -0
  323. package/dist/index8.js.map +1 -0
  324. package/dist/index80.js +37 -0
  325. package/dist/index80.js.map +1 -0
  326. package/dist/index81.js +213 -0
  327. package/dist/index81.js.map +1 -0
  328. package/dist/index82.js +216 -0
  329. package/dist/index82.js.map +1 -0
  330. package/dist/index83.js +298 -0
  331. package/dist/index83.js.map +1 -0
  332. package/dist/index84.js +181 -0
  333. package/dist/index84.js.map +1 -0
  334. package/dist/index85.js +261 -0
  335. package/dist/index85.js.map +1 -0
  336. package/dist/index86.js +17 -0
  337. package/dist/index86.js.map +1 -0
  338. package/dist/index87.js +36 -0
  339. package/dist/index87.js.map +1 -0
  340. package/dist/index88.js +10796 -0
  341. package/dist/index88.js.map +1 -0
  342. package/dist/index89.js +8 -0
  343. package/dist/index89.js.map +1 -0
  344. package/dist/index9.js +95 -0
  345. package/dist/index9.js.map +1 -0
  346. package/dist/index90.js +45 -0
  347. package/dist/index90.js.map +1 -0
  348. package/dist/index91.js +5 -0
  349. package/dist/index91.js.map +1 -0
  350. package/dist/index92.js +10 -0
  351. package/dist/index92.js.map +1 -0
  352. package/dist/index93.js +155 -0
  353. package/dist/index93.js.map +1 -0
  354. package/dist/index94.js +33 -0
  355. package/dist/index94.js.map +1 -0
  356. package/dist/index95.js +33 -0
  357. package/dist/index95.js.map +1 -0
  358. package/dist/index96.js +5 -0
  359. package/dist/index96.js.map +1 -0
  360. package/dist/index97.js +75 -0
  361. package/dist/index97.js.map +1 -0
  362. package/dist/index98.js +42 -0
  363. package/dist/index98.js.map +1 -0
  364. package/dist/index99.js +29 -0
  365. package/dist/index99.js.map +1 -0
  366. package/package.json +71 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index20.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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"}
@@ -0,0 +1,113 @@
1
+ import { jsxs as h, jsx as s, Fragment as L } from "react/jsx-runtime";
2
+ import m from "react";
3
+ function _(d) {
4
+ return null;
5
+ }
6
+ function B({
7
+ title: d,
8
+ bordered: a = !1,
9
+ column: l = 3,
10
+ size: v = "default",
11
+ layout: w = "horizontal",
12
+ colon: x = !0,
13
+ labelStyle: N,
14
+ contentStyle: $,
15
+ className: j = "",
16
+ style: F,
17
+ children: M,
18
+ ...D
19
+ }) {
20
+ const R = {
21
+ small: "text-sm",
22
+ default: "text-base",
23
+ large: "text-lg"
24
+ }, y = m.Children.toArray(M).filter(
25
+ (p) => m.isValidElement(p)
26
+ ), e = typeof l == "number" ? l : l.md || l.sm || l.xs || 3, z = () => {
27
+ if (w === "vertical")
28
+ return y.map((r, t) => {
29
+ const o = r.props.span || 1, b = Math.min(o, e), f = r.props.labelStyle || N;
30
+ return /* @__PURE__ */ h(m.Fragment, { children: [
31
+ /* @__PURE__ */ h(
32
+ "th",
33
+ {
34
+ className: `${a ? "border border-base-content/10" : ""} bg-base-200/50 font-semibold text-left px-4 py-2`,
35
+ style: f,
36
+ colSpan: b,
37
+ children: [
38
+ r.props.label,
39
+ x && r.props.label && ":"
40
+ ]
41
+ }
42
+ ),
43
+ t % e === e - 1 && /* @__PURE__ */ s(L, { children: Array.from({ length: e - ((t + 1) % e || e) }).map((n, i) => /* @__PURE__ */ s("th", { className: `${a ? "border border-base-content/10" : ""}` }, `empty-${i}`)) }),
44
+ (t + 1) % e === 0 && /* @__PURE__ */ s("tr", { children: y.slice(t - e + 1, t + 1).map((n, i) => {
45
+ const g = n.props.span || 1, u = Math.min(g, e), C = n.props.contentStyle || $;
46
+ return /* @__PURE__ */ s(
47
+ "td",
48
+ {
49
+ className: `${a ? "border border-base-content/10" : ""} px-4 py-2`,
50
+ style: C,
51
+ colSpan: u,
52
+ children: n.props.children
53
+ },
54
+ i
55
+ );
56
+ }) }, `content-row-${t}`)
57
+ ] }, t);
58
+ });
59
+ const p = [];
60
+ let c = [], S = 0;
61
+ return y.forEach((r) => {
62
+ const t = r.props.span || 1, o = Math.min(t, e);
63
+ S + o > e ? (p.push(c), c = [r], S = o) : (c.push(r), S += o);
64
+ }), c.length > 0 && p.push(c), p.map((r, t) => {
65
+ let o = 0;
66
+ const b = r.map((n, i) => {
67
+ const g = n.props.span || 1, u = Math.min(g, e), C = n.props.labelStyle || N, E = n.props.contentStyle || $;
68
+ return o += u, /* @__PURE__ */ h(m.Fragment, { children: [
69
+ /* @__PURE__ */ h(
70
+ "th",
71
+ {
72
+ className: `${a ? "border border-base-content/10" : ""} bg-base-200/50 font-semibold text-left px-4 py-2 whitespace-nowrap`,
73
+ style: C,
74
+ children: [
75
+ n.props.label,
76
+ x && n.props.label && ":"
77
+ ]
78
+ }
79
+ ),
80
+ /* @__PURE__ */ s(
81
+ "td",
82
+ {
83
+ className: `${a ? "border border-base-content/10" : ""} px-4 py-2`,
84
+ style: E,
85
+ colSpan: u * 2 - 1,
86
+ children: n.props.children
87
+ }
88
+ )
89
+ ] }, i);
90
+ }), f = e - o;
91
+ return f > 0 && b.push(
92
+ /* @__PURE__ */ s(m.Fragment, { children: /* @__PURE__ */ s("th", { className: `${a ? "border border-base-content/10" : ""}`, colSpan: f * 2 }) }, "empty")
93
+ ), /* @__PURE__ */ s("tr", { children: b }, t);
94
+ });
95
+ }, A = [
96
+ "w-full",
97
+ a && "border-collapse",
98
+ R[v],
99
+ j
100
+ ].filter(Boolean).join(" ");
101
+ return /* @__PURE__ */ h("div", { style: F, ...D, children: [
102
+ d && /* @__PURE__ */ s("div", { className: "text-lg font-semibold mb-4", children: d }),
103
+ /* @__PURE__ */ s("table", { className: A, children: /* @__PURE__ */ s("tbody", { children: z() }) })
104
+ ] });
105
+ }
106
+ const k = Object.assign(B, {
107
+ Item: _
108
+ });
109
+ export {
110
+ k as Descriptions,
111
+ k as default
112
+ };
113
+ //# sourceMappingURL=index21.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index21.js","sources":["../src/components/Descriptions.tsx"],"sourcesContent":["import React from 'react'\n\nexport type DescriptionsSize = 'small' | 'default' | 'large'\nexport type DescriptionsLayout = 'horizontal' | 'vertical'\n\nexport interface DescriptionsItemProps {\n label?: React.ReactNode\n span?: number\n children?: React.ReactNode\n labelStyle?: React.CSSProperties\n contentStyle?: React.CSSProperties\n}\n\nexport interface DescriptionsProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {\n title?: React.ReactNode\n bordered?: boolean\n column?: number | {\n xs?: number\n sm?: number\n md?: number\n lg?: number\n xl?: number\n '2xl'?: number\n }\n size?: DescriptionsSize\n layout?: DescriptionsLayout\n colon?: boolean\n labelStyle?: React.CSSProperties\n contentStyle?: React.CSSProperties\n children?: React.ReactNode\n}\n\nfunction DescriptionsItem(_props: DescriptionsItemProps) {\n return null\n}\n\nfunction DescriptionsRoot({\n title,\n bordered = false,\n column = 3,\n size = 'default',\n layout = 'horizontal',\n colon = true,\n labelStyle,\n contentStyle,\n className = '',\n style,\n children,\n ...rest\n}: DescriptionsProps) {\n const sizeClasses: Record<DescriptionsSize, string> = {\n small: 'text-sm',\n default: 'text-base',\n large: 'text-lg',\n }\n\n const items = React.Children.toArray(children).filter(\n (child): child is React.ReactElement<DescriptionsItemProps> =>\n React.isValidElement(child)\n )\n\n const getColumnCount = () => {\n if (typeof column === 'number') {\n return column\n }\n // For responsive columns, default to md value or 3\n return column.md || column.sm || column.xs || 3\n }\n\n const columnCount = getColumnCount()\n\n const renderItems = () => {\n if (layout === 'vertical') {\n return items.map((item, index) => {\n const span = item.props.span || 1\n const effectiveSpan = Math.min(span, columnCount)\n const itemLabelStyle = item.props.labelStyle || labelStyle\n\n return (\n <React.Fragment key={index}>\n <th\n className={`${bordered ? 'border border-base-content/10' : ''} bg-base-200/50 font-semibold text-left px-4 py-2`}\n style={itemLabelStyle}\n colSpan={effectiveSpan}\n >\n {item.props.label}\n {colon && item.props.label && ':'}\n </th>\n {index % columnCount === columnCount - 1 && (\n <>\n {Array.from({ length: columnCount - ((index + 1) % columnCount || columnCount) }).map((_, i) => (\n <th key={`empty-${i}`} className={`${bordered ? 'border border-base-content/10' : ''}`} />\n ))}\n </>\n )}\n {(index + 1) % columnCount === 0 && (\n <tr key={`content-row-${index}`}>\n {items.slice(index - columnCount + 1, index + 1).map((contentItem, ci) => {\n const contentSpan = contentItem.props.span || 1\n const effectiveContentSpan = Math.min(contentSpan, columnCount)\n const itemContentStyle2 = contentItem.props.contentStyle || contentStyle\n\n return (\n <td\n key={ci}\n className={`${bordered ? 'border border-base-content/10' : ''} px-4 py-2`}\n style={itemContentStyle2}\n colSpan={effectiveContentSpan}\n >\n {contentItem.props.children}\n </td>\n )\n })}\n </tr>\n )}\n </React.Fragment>\n )\n })\n }\n\n // Horizontal layout\n const rows: React.ReactElement<DescriptionsItemProps>[][] = []\n let currentRow: React.ReactElement<DescriptionsItemProps>[] = []\n let currentSpan = 0\n\n items.forEach((item) => {\n const span = item.props.span || 1\n const effectiveSpan = Math.min(span, columnCount)\n\n if (currentSpan + effectiveSpan > columnCount) {\n rows.push(currentRow)\n currentRow = [item]\n currentSpan = effectiveSpan\n } else {\n currentRow.push(item)\n currentSpan += effectiveSpan\n }\n })\n\n if (currentRow.length > 0) {\n rows.push(currentRow)\n }\n\n return rows.map((row, rowIndex) => {\n let usedSpan = 0\n const cells = row.map((item, cellIndex) => {\n const span = item.props.span || 1\n const effectiveSpan = Math.min(span, columnCount)\n const itemLabelStyle = item.props.labelStyle || labelStyle\n const itemContentStyle = item.props.contentStyle || contentStyle\n usedSpan += effectiveSpan\n\n return (\n <React.Fragment key={cellIndex}>\n <th\n className={`${bordered ? 'border border-base-content/10' : ''} bg-base-200/50 font-semibold text-left px-4 py-2 whitespace-nowrap`}\n style={itemLabelStyle}\n >\n {item.props.label}\n {colon && item.props.label && ':'}\n </th>\n <td\n className={`${bordered ? 'border border-base-content/10' : ''} px-4 py-2`}\n style={itemContentStyle}\n colSpan={effectiveSpan * 2 - 1}\n >\n {item.props.children}\n </td>\n </React.Fragment>\n )\n })\n\n // Fill remaining columns\n const remainingSpan = columnCount - usedSpan\n if (remainingSpan > 0) {\n cells.push(\n <React.Fragment key=\"empty\">\n <th className={`${bordered ? 'border border-base-content/10' : ''}`} colSpan={remainingSpan * 2} />\n </React.Fragment>\n )\n }\n\n return <tr key={rowIndex}>{cells}</tr>\n })\n }\n\n const containerClasses = [\n 'w-full',\n bordered && 'border-collapse',\n sizeClasses[size],\n className,\n ].filter(Boolean).join(' ')\n\n return (\n <div style={style} {...rest}>\n {title && (\n <div className=\"text-lg font-semibold mb-4\">\n {title}\n </div>\n )}\n <table className={containerClasses}>\n <tbody>\n {renderItems()}\n </tbody>\n </table>\n </div>\n )\n}\n\nexport const Descriptions = Object.assign(DescriptionsRoot, {\n Item: DescriptionsItem,\n})\n\nexport default Descriptions\n"],"names":["DescriptionsItem","_props","DescriptionsRoot","title","bordered","column","size","layout","colon","labelStyle","contentStyle","className","style","children","rest","sizeClasses","items","React","child","columnCount","renderItems","item","index","span","effectiveSpan","itemLabelStyle","jsxs","_","jsx","contentItem","ci","contentSpan","effectiveContentSpan","itemContentStyle2","rows","currentRow","currentSpan","row","rowIndex","usedSpan","cells","cellIndex","itemContentStyle","remainingSpan","containerClasses","Descriptions"],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import { jsx as o } from "react/jsx-runtime";
2
+ function l({
3
+ children: r,
4
+ orientation: e = "horizontal",
5
+ position: d = "center",
6
+ type: i,
7
+ className: n = "",
8
+ ...s
9
+ }) {
10
+ const t = {
11
+ start: "divider-start",
12
+ center: "",
13
+ end: "divider-end"
14
+ }, a = {
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
+ }, c = [
24
+ "divider",
25
+ e === "vertical" && "divider-vertical",
26
+ t[d],
27
+ i && a[i],
28
+ n
29
+ ].filter(Boolean).join(" ");
30
+ return /* @__PURE__ */ o("div", { className: c, ...s, children: r });
31
+ }
32
+ export {
33
+ l as Divider
34
+ };
35
+ //# sourceMappingURL=index22.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index22.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: 'divider-start',\n center: '',\n end: 'divider-end',\n }\n\n const typeClasses: Record<string, string> = {\n neutral: 'divider-neutral',\n primary: 'divider-primary',\n secondary: 'divider-secondary',\n accent: 'divider-accent',\n success: 'divider-success',\n warning: 'divider-warning',\n info: 'divider-info',\n error: 'divider-error',\n }\n\n const classes = [\n 'divider',\n orientation === 'vertical' && 'divider-vertical',\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":["Divider","children","orientation","position","type","className","rest","positionClasses","typeClasses","classes"],"mappings":";AASO,SAASA,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,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,KAAK;AAAA,EAAA,GAGDC,IAAsC;AAAA,IAC1C,SAAS;AAAA,IACT,SAAS;AAAA,IACT,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,EAAA,GAGHC,IAAU;AAAA,IACd;AAAA,IACAP,MAAgB,cAAc;AAAA,IAC9BK,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;"}
@@ -0,0 +1,44 @@
1
+ import { jsxs as s, jsx as e } from "react/jsx-runtime";
2
+ import f from "react";
3
+ const N = ({
4
+ children: l,
5
+ sidebar: d,
6
+ open: a = !1,
7
+ onOpenChange: o,
8
+ end: c = !1,
9
+ className: t = "",
10
+ sidebarClassName: n = "",
11
+ ...i
12
+ }) => {
13
+ const r = f.useId(), m = (b) => {
14
+ o?.(b.target.checked);
15
+ }, h = ["drawer", c && "drawer-end", t].filter(Boolean).join(" "), w = ["menu bg-base-200 min-h-full w-80 p-4", n].filter(Boolean).join(" ");
16
+ return /* @__PURE__ */ s("div", { className: h, "data-state": a ? "open" : "closed", ...i, children: [
17
+ /* @__PURE__ */ e(
18
+ "input",
19
+ {
20
+ id: r,
21
+ type: "checkbox",
22
+ className: "drawer-toggle",
23
+ checked: a,
24
+ onChange: m
25
+ }
26
+ ),
27
+ /* @__PURE__ */ e("div", { className: "drawer-content", children: l }),
28
+ /* @__PURE__ */ s("div", { className: "drawer-side", children: [
29
+ /* @__PURE__ */ e(
30
+ "label",
31
+ {
32
+ htmlFor: r,
33
+ "aria-label": "close sidebar",
34
+ className: "drawer-overlay"
35
+ }
36
+ ),
37
+ /* @__PURE__ */ e("div", { className: w, children: d })
38
+ ] })
39
+ ] });
40
+ };
41
+ export {
42
+ N as Drawer
43
+ };
44
+ //# sourceMappingURL=index23.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index23.js","sources":["../src/components/Drawer.tsx"],"sourcesContent":["import React from 'react'\n\nexport interface DrawerProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> {\n children: React.ReactNode\n sidebar: React.ReactNode\n open?: boolean\n onOpenChange?: (open: boolean) => void\n end?: boolean\n sidebarClassName?: string\n}\n\nexport const Drawer: React.FC<DrawerProps> = ({\n children,\n sidebar,\n open = false,\n onOpenChange,\n end = false,\n className = '',\n sidebarClassName = '',\n ...rest\n}) => {\n const drawerId = React.useId()\n\n const handleToggle = (e: React.ChangeEvent<HTMLInputElement>) => {\n onOpenChange?.(e.target.checked)\n }\n\n const drawerClasses = ['drawer', end && 'drawer-end', className]\n .filter(Boolean)\n .join(' ')\n\n const sidebarClasses = ['menu bg-base-200 min-h-full w-80 p-4', sidebarClassName]\n .filter(Boolean)\n .join(' ')\n\n return (\n <div className={drawerClasses} data-state={open ? 'open' : 'closed'} {...rest}>\n <input\n id={drawerId}\n type=\"checkbox\"\n className=\"drawer-toggle\"\n checked={open}\n onChange={handleToggle}\n />\n <div className=\"drawer-content\">{children}</div>\n <div className=\"drawer-side\">\n <label\n htmlFor={drawerId}\n aria-label=\"close sidebar\"\n className=\"drawer-overlay\"\n />\n <div className={sidebarClasses}>{sidebar}</div>\n </div>\n </div>\n )\n}\n"],"names":["Drawer","children","sidebar","open","onOpenChange","end","className","sidebarClassName","rest","drawerId","React","handleToggle","e","drawerClasses","sidebarClasses","jsxs","jsx"],"mappings":";;AAWO,MAAMA,IAAgC,CAAC;AAAA,EAC5C,UAAAC;AAAA,EACA,SAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,cAAAC;AAAA,EACA,KAAAC,IAAM;AAAA,EACN,WAAAC,IAAY;AAAA,EACZ,kBAAAC,IAAmB;AAAA,EACnB,GAAGC;AACL,MAAM;AACJ,QAAMC,IAAWC,EAAM,MAAA,GAEjBC,IAAe,CAACC,MAA2C;AAC/D,IAAAR,IAAeQ,EAAE,OAAO,OAAO;AAAA,EACjC,GAEMC,IAAgB,CAAC,UAAUR,KAAO,cAAcC,CAAS,EAC5D,OAAO,OAAO,EACd,KAAK,GAAG,GAELQ,IAAiB,CAAC,wCAAwCP,CAAgB,EAC7E,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,SACE,gBAAAQ,EAAC,SAAI,WAAWF,GAAe,cAAYV,IAAO,SAAS,UAAW,GAAGK,GACvE,UAAA;AAAA,IAAA,gBAAAQ;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,IAAIP;AAAA,QACJ,MAAK;AAAA,QACL,WAAU;AAAA,QACV,SAASN;AAAA,QACT,UAAUQ;AAAA,MAAA;AAAA,IAAA;AAAA,IAEZ,gBAAAK,EAAC,OAAA,EAAI,WAAU,kBAAkB,UAAAf,EAAA,CAAS;AAAA,IAC1C,gBAAAc,EAAC,OAAA,EAAI,WAAU,eACb,UAAA;AAAA,MAAA,gBAAAC;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,SAASP;AAAA,UACT,cAAW;AAAA,UACX,WAAU;AAAA,QAAA;AAAA,MAAA;AAAA,MAEZ,gBAAAO,EAAC,OAAA,EAAI,WAAWF,GAAiB,UAAAZ,EAAA,CAAQ;AAAA,IAAA,EAAA,CAC3C;AAAA,EAAA,GACF;AAEJ;"}
@@ -0,0 +1,15 @@
1
+ import { jsx as t } from "react/jsx-runtime";
2
+ function i({ children: e, className: s = "", ...n }) {
3
+ const l = ["fieldset", s].filter(Boolean).join(" ");
4
+ return /* @__PURE__ */ t("fieldset", { className: l, ...n, children: e });
5
+ }
6
+ function o({ children: e, className: s = "" }) {
7
+ return /* @__PURE__ */ t("legend", { className: `fieldset-legend ${s}`, children: e });
8
+ }
9
+ const c = Object.assign(i, {
10
+ Legend: o
11
+ });
12
+ export {
13
+ c as Fieldset
14
+ };
15
+ //# sourceMappingURL=index24.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index24.js","sources":["../src/components/Fieldset.tsx"],"sourcesContent":["import React from 'react'\n\nexport interface FieldsetProps extends React.FieldsetHTMLAttributes<HTMLFieldSetElement> {\n children: React.ReactNode\n className?: string\n}\n\nexport interface FieldsetLegendProps {\n children: React.ReactNode\n className?: string\n}\n\nfunction FieldsetRoot({ children, className = '', ...props }: FieldsetProps) {\n const classes = ['fieldset', className].filter(Boolean).join(' ')\n\n return (\n <fieldset className={classes} {...props}>\n {children}\n </fieldset>\n )\n}\n\nfunction FieldsetLegend({ children, className = '' }: FieldsetLegendProps) {\n return <legend className={`fieldset-legend ${className}`}>{children}</legend>\n}\n\nexport const Fieldset = Object.assign(FieldsetRoot, {\n Legend: FieldsetLegend,\n})\n"],"names":["FieldsetRoot","children","className","props","classes","FieldsetLegend","Fieldset"],"mappings":";AAYA,SAASA,EAAa,EAAE,UAAAC,GAAU,WAAAC,IAAY,IAAI,GAAGC,KAAwB;AAC3E,QAAMC,IAAU,CAAC,YAAYF,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAEhE,2BACG,YAAA,EAAS,WAAWE,GAAU,GAAGD,GAC/B,UAAAF,GACH;AAEJ;AAEA,SAASI,EAAe,EAAE,UAAAJ,GAAU,WAAAC,IAAY,MAA2B;AACzE,2BAAQ,UAAA,EAAO,WAAW,mBAAmBA,CAAS,IAAK,UAAAD,GAAS;AACtE;AAEO,MAAMK,IAAW,OAAO,OAAON,GAAc;AAAA,EAClD,QAAQK;AACV,CAAC;"}
@@ -0,0 +1,36 @@
1
+ import { jsx as o } from "react/jsx-runtime";
2
+ import { forwardRef as a } from "react";
3
+ const c = a(
4
+ ({ size: i, color: e, ghost: n = !1, bordered: l = !0, className: t = "", ...s }, r) => {
5
+ const f = {
6
+ xs: "file-input-xs",
7
+ sm: "file-input-sm",
8
+ md: "file-input-md",
9
+ lg: "file-input-lg",
10
+ xl: "file-input-xl"
11
+ }, p = {
12
+ neutral: "file-input-neutral",
13
+ primary: "file-input-primary",
14
+ secondary: "file-input-secondary",
15
+ accent: "file-input-accent",
16
+ info: "file-input-info",
17
+ success: "file-input-success",
18
+ warning: "file-input-warning",
19
+ error: "file-input-error"
20
+ }, u = [
21
+ "file-input",
22
+ "w-full",
23
+ l && "file-input-bordered",
24
+ n && "file-input-ghost",
25
+ i && f[i],
26
+ e && p[e],
27
+ t
28
+ ].filter(Boolean).join(" ");
29
+ return /* @__PURE__ */ o("input", { ref: r, type: "file", className: u, ...s });
30
+ }
31
+ );
32
+ c.displayName = "FileInput";
33
+ export {
34
+ c as FileInput
35
+ };
36
+ //# sourceMappingURL=index25.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index25.js","sources":["../src/components/FileInput.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\n\nexport interface FileInputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'type'> {\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl'\n color?: 'neutral' | 'primary' | 'secondary' | 'accent' | 'info' | 'success' | 'warning' | 'error'\n ghost?: boolean\n bordered?: boolean\n className?: string\n}\n\nexport const FileInput = forwardRef<HTMLInputElement, FileInputProps>(\n ({ size, color, ghost = false, bordered = true, className = '', ...props }, ref) => {\n const sizeClasses = {\n xs: 'file-input-xs',\n sm: 'file-input-sm',\n md: 'file-input-md',\n lg: 'file-input-lg',\n xl: 'file-input-xl',\n }\n\n const colorClasses = {\n neutral: 'file-input-neutral',\n primary: 'file-input-primary',\n secondary: 'file-input-secondary',\n accent: 'file-input-accent',\n info: 'file-input-info',\n success: 'file-input-success',\n warning: 'file-input-warning',\n error: 'file-input-error',\n }\n\n const fileInputClasses = [\n 'file-input',\n 'w-full',\n bordered && 'file-input-bordered',\n ghost && 'file-input-ghost',\n size && sizeClasses[size],\n color && colorClasses[color],\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n return <input ref={ref} type=\"file\" className={fileInputClasses} {...props} />\n }\n)\n\nFileInput.displayName = 'FileInput'\n"],"names":["FileInput","forwardRef","size","color","ghost","bordered","className","props","ref","sizeClasses","colorClasses","fileInputClasses","jsx"],"mappings":";;AAUO,MAAMA,IAAYC;AAAA,EACvB,CAAC,EAAE,MAAAC,GAAM,OAAAC,GAAO,OAAAC,IAAQ,IAAO,UAAAC,IAAW,IAAM,WAAAC,IAAY,IAAI,GAAGC,EAAA,GAASC,MAAQ;AAClF,UAAMC,IAAc;AAAA,MAClB,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA,GAGAC,IAAe;AAAA,MACnB,SAAS;AAAA,MACT,SAAS;AAAA,MACT,WAAW;AAAA,MACX,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,SAAS;AAAA,MACT,OAAO;AAAA,IAAA,GAGHC,IAAmB;AAAA,MACvB;AAAA,MACA;AAAA,MACAN,KAAY;AAAA,MACZD,KAAS;AAAA,MACTF,KAAQO,EAAYP,CAAI;AAAA,MACxBC,KAASO,EAAaP,CAAK;AAAA,MAC3BG;AAAA,IAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,WAAO,gBAAAM,EAAC,WAAM,KAAAJ,GAAU,MAAK,QAAO,WAAWG,GAAmB,GAAGJ,GAAO;AAAA,EAC9E;AACF;AAEAP,EAAU,cAAc;"}
@@ -0,0 +1,66 @@
1
+ import { jsx as v } from "react/jsx-runtime";
2
+ const y = ({
3
+ direction: t,
4
+ justify: r,
5
+ align: s,
6
+ wrap: m,
7
+ gap: e,
8
+ flex: o,
9
+ inline: a = !1,
10
+ minHeight: l,
11
+ minWidth: f,
12
+ className: x = "",
13
+ style: c,
14
+ children: i,
15
+ ...u
16
+ }) => {
17
+ const n = typeof e == "number", w = [
18
+ a ? "inline-flex" : "flex",
19
+ t === "row" && "flex-row",
20
+ t === "column" && "flex-col",
21
+ t === "row-reverse" && "flex-row-reverse",
22
+ t === "column-reverse" && "flex-col-reverse",
23
+ r === "start" && "justify-start",
24
+ r === "end" && "justify-end",
25
+ r === "center" && "justify-center",
26
+ r === "between" && "justify-between",
27
+ r === "around" && "justify-around",
28
+ r === "evenly" && "justify-evenly",
29
+ s === "start" && "items-start",
30
+ s === "end" && "items-end",
31
+ s === "center" && "items-center",
32
+ s === "baseline" && "items-baseline",
33
+ s === "stretch" && "items-stretch",
34
+ m === !0 && "flex-wrap",
35
+ m === "wrap" && "flex-wrap",
36
+ m === "nowrap" && "flex-nowrap",
37
+ m === "wrap-reverse" && "flex-wrap-reverse",
38
+ !n && e === "xs" && "gap-1",
39
+ !n && e === "sm" && "gap-2",
40
+ !n && e === "md" && "gap-4",
41
+ !n && e === "lg" && "gap-6",
42
+ !n && e === "xl" && "gap-8",
43
+ o === "1" && "flex-1",
44
+ o === "auto" && "flex-auto",
45
+ o === "initial" && "flex-initial",
46
+ o === "none" && "flex-none",
47
+ l === "screen" && "min-h-screen",
48
+ l === "full" && "min-h-full",
49
+ l === "fit" && "min-h-fit",
50
+ l === "min" && "min-h-min",
51
+ l === "max" && "min-h-max",
52
+ f === "full" && "min-w-full",
53
+ f === "fit" && "min-w-fit",
54
+ f === "min" && "min-w-min",
55
+ f === "max" && "min-w-max",
56
+ x
57
+ ].filter(Boolean).join(" "), p = {
58
+ ...c,
59
+ ...n ? { gap: `${e}px` } : {}
60
+ };
61
+ return /* @__PURE__ */ v("div", { className: w, style: p, ...u, children: i });
62
+ };
63
+ export {
64
+ y as Flex
65
+ };
66
+ //# sourceMappingURL=index26.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index26.js","sources":["../src/components/Flex.tsx"],"sourcesContent":["import React from 'react'\n\nexport interface FlexProps extends React.HTMLAttributes<HTMLDivElement> {\n direction?: 'row' | 'column' | 'row-reverse' | 'column-reverse'\n justify?: 'start' | 'end' | 'center' | 'between' | 'around' | 'evenly'\n align?: 'start' | 'end' | 'center' | 'baseline' | 'stretch'\n wrap?: boolean | 'wrap' | 'nowrap' | 'wrap-reverse'\n gap?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | number\n flex?: '1' | 'auto' | 'initial' | 'none'\n inline?: boolean\n minHeight?: 'screen' | 'full' | 'fit' | 'min' | 'max'\n minWidth?: 'full' | 'fit' | 'min' | 'max'\n children?: React.ReactNode\n}\n\nexport const Flex: React.FC<FlexProps> = ({\n direction,\n justify,\n align,\n wrap,\n gap,\n flex,\n inline = false,\n minHeight,\n minWidth,\n className = '',\n style,\n children,\n ...rest\n}) => {\n const isNumericGap = typeof gap === 'number'\n\n const classes = [\n inline ? 'inline-flex' : 'flex',\n direction === 'row' && 'flex-row',\n direction === 'column' && 'flex-col',\n direction === 'row-reverse' && 'flex-row-reverse',\n direction === 'column-reverse' && 'flex-col-reverse',\n justify === 'start' && 'justify-start',\n justify === 'end' && 'justify-end',\n justify === 'center' && 'justify-center',\n justify === 'between' && 'justify-between',\n justify === 'around' && 'justify-around',\n justify === 'evenly' && 'justify-evenly',\n align === 'start' && 'items-start',\n align === 'end' && 'items-end',\n align === 'center' && 'items-center',\n align === 'baseline' && 'items-baseline',\n align === 'stretch' && 'items-stretch',\n wrap === true && 'flex-wrap',\n wrap === 'wrap' && 'flex-wrap',\n wrap === 'nowrap' && 'flex-nowrap',\n wrap === 'wrap-reverse' && 'flex-wrap-reverse',\n !isNumericGap && gap === 'xs' && 'gap-1',\n !isNumericGap && gap === 'sm' && 'gap-2',\n !isNumericGap && gap === 'md' && 'gap-4',\n !isNumericGap && gap === 'lg' && 'gap-6',\n !isNumericGap && gap === 'xl' && 'gap-8',\n flex === '1' && 'flex-1',\n flex === 'auto' && 'flex-auto',\n flex === 'initial' && 'flex-initial',\n flex === 'none' && 'flex-none',\n minHeight === 'screen' && 'min-h-screen',\n minHeight === 'full' && 'min-h-full',\n minHeight === 'fit' && 'min-h-fit',\n minHeight === 'min' && 'min-h-min',\n minHeight === 'max' && 'min-h-max',\n minWidth === 'full' && 'min-w-full',\n minWidth === 'fit' && 'min-w-fit',\n minWidth === 'min' && 'min-w-min',\n minWidth === 'max' && 'min-w-max',\n className,\n ].filter(Boolean).join(' ')\n\n const combinedStyle: React.CSSProperties = {\n ...style,\n ...(isNumericGap ? { gap: `${gap}px` } : {}),\n }\n\n return (\n <div className={classes} style={combinedStyle} {...rest}>\n {children}\n </div>\n )\n}\n"],"names":["Flex","direction","justify","align","wrap","gap","flex","inline","minHeight","minWidth","className","style","children","rest","isNumericGap","classes","combinedStyle","jsx"],"mappings":";AAeO,MAAMA,IAA4B,CAAC;AAAA,EACxC,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA,OAAAC;AAAA,EACA,MAAAC;AAAA,EACA,KAAAC;AAAA,EACA,MAAAC;AAAA,EACA,QAAAC,IAAS;AAAA,EACT,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,GAAGC;AACL,MAAM;AACJ,QAAMC,IAAe,OAAOT,KAAQ,UAE9BU,IAAU;AAAA,IACdR,IAAS,gBAAgB;AAAA,IACzBN,MAAc,SAAS;AAAA,IACvBA,MAAc,YAAY;AAAA,IAC1BA,MAAc,iBAAiB;AAAA,IAC/BA,MAAc,oBAAoB;AAAA,IAClCC,MAAY,WAAW;AAAA,IACvBA,MAAY,SAAS;AAAA,IACrBA,MAAY,YAAY;AAAA,IACxBA,MAAY,aAAa;AAAA,IACzBA,MAAY,YAAY;AAAA,IACxBA,MAAY,YAAY;AAAA,IACxBC,MAAU,WAAW;AAAA,IACrBA,MAAU,SAAS;AAAA,IACnBA,MAAU,YAAY;AAAA,IACtBA,MAAU,cAAc;AAAA,IACxBA,MAAU,aAAa;AAAA,IACvBC,MAAS,MAAQ;AAAA,IACjBA,MAAS,UAAU;AAAA,IACnBA,MAAS,YAAY;AAAA,IACrBA,MAAS,kBAAkB;AAAA,IAC3B,CAACU,KAAgBT,MAAQ,QAAQ;AAAA,IACjC,CAACS,KAAgBT,MAAQ,QAAQ;AAAA,IACjC,CAACS,KAAgBT,MAAQ,QAAQ;AAAA,IACjC,CAACS,KAAgBT,MAAQ,QAAQ;AAAA,IACjC,CAACS,KAAgBT,MAAQ,QAAQ;AAAA,IACjCC,MAAS,OAAO;AAAA,IAChBA,MAAS,UAAU;AAAA,IACnBA,MAAS,aAAa;AAAA,IACtBA,MAAS,UAAU;AAAA,IACnBE,MAAc,YAAY;AAAA,IAC1BA,MAAc,UAAU;AAAA,IACxBA,MAAc,SAAS;AAAA,IACvBA,MAAc,SAAS;AAAA,IACvBA,MAAc,SAAS;AAAA,IACvBC,MAAa,UAAU;AAAA,IACvBA,MAAa,SAAS;AAAA,IACtBA,MAAa,SAAS;AAAA,IACtBA,MAAa,SAAS;AAAA,IACtBC;AAAA,EAAA,EACA,OAAO,OAAO,EAAE,KAAK,GAAG,GAEpBM,IAAqC;AAAA,IACzC,GAAGL;AAAA,IACH,GAAIG,IAAe,EAAE,KAAK,GAAGT,CAAG,SAAS,CAAA;AAAA,EAAC;AAG5C,SACE,gBAAAY,EAAC,SAAI,WAAWF,GAAS,OAAOC,GAAgB,GAAGH,GAChD,UAAAD,GACH;AAEJ;"}
@@ -0,0 +1,83 @@
1
+ import { jsx as t } from "react/jsx-runtime";
2
+ import { useState as g, useEffect as v } from "react";
3
+ const k = {
4
+ left: "tooltip-left",
5
+ right: "tooltip-right",
6
+ top: "tooltip-top",
7
+ bottom: "tooltip-bottom"
8
+ }, f = ({
9
+ children: s,
10
+ onClick: n,
11
+ type: d = "default",
12
+ shape: p = "circle",
13
+ position: l = "bottom-right",
14
+ offset: e = 24,
15
+ className: h = "",
16
+ tooltip: r,
17
+ tooltipPlacement: u = "left",
18
+ ...i
19
+ }) => {
20
+ const c = [
21
+ "btn",
22
+ "btn-lg",
23
+ "shadow-lg",
24
+ p === "circle" ? "btn-circle" : "btn-square",
25
+ {
26
+ default: "btn-neutral",
27
+ primary: "btn-primary",
28
+ secondary: "btn-secondary",
29
+ accent: "btn-accent"
30
+ }[d],
31
+ h
32
+ ].filter(Boolean).join(" "), a = {
33
+ position: "fixed",
34
+ zIndex: 1e3,
35
+ ...l.includes("bottom") ? { bottom: e } : { top: e },
36
+ ...l.includes("right") ? { right: e } : { left: e }
37
+ }, o = /* @__PURE__ */ t("button", { className: c, onClick: n, style: a, ...i, children: s || /* @__PURE__ */ t("svg", { xmlns: "http://www.w3.org/2000/svg", className: "h-6 w-6", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ t("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 4v16m8-8H4" }) }) });
38
+ return r ? /* @__PURE__ */ t("div", { className: `tooltip ${k[u]}`, "data-tip": r, style: a, children: /* @__PURE__ */ t("button", { className: c, onClick: n, style: { position: "static" }, ...i, children: s || /* @__PURE__ */ t("svg", { xmlns: "http://www.w3.org/2000/svg", className: "h-6 w-6", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ t("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 4v16m8-8H4" }) }) }) }) : o;
39
+ }, x = ({
40
+ visibilityHeight: s = 400,
41
+ target: n,
42
+ onClick: d,
43
+ children: p,
44
+ position: l = "bottom-right",
45
+ offset: e = 24,
46
+ className: h = "",
47
+ ...r
48
+ }) => {
49
+ const [u, i] = g(!1);
50
+ v(() => {
51
+ const o = n ? n() : window, m = () => {
52
+ const b = o instanceof Window ? window.scrollY : o.scrollTop;
53
+ i(b >= s);
54
+ };
55
+ return o.addEventListener("scroll", m), m(), () => o.removeEventListener("scroll", m);
56
+ }, [n, s]);
57
+ const w = () => {
58
+ d?.();
59
+ const o = n ? n() : window;
60
+ o instanceof Window ? window.scrollTo({ top: 0, behavior: "smooth" }) : o.scrollTo({ top: 0, behavior: "smooth" });
61
+ };
62
+ if (!u) return null;
63
+ const c = [
64
+ "btn",
65
+ "btn-lg",
66
+ "btn-circle",
67
+ "btn-neutral",
68
+ "shadow-lg",
69
+ "transition-opacity",
70
+ h
71
+ ].filter(Boolean).join(" "), a = {
72
+ position: "fixed",
73
+ zIndex: 1e3,
74
+ bottom: e,
75
+ ...l.includes("right") ? { right: e } : { left: e }
76
+ };
77
+ return /* @__PURE__ */ t("button", { className: c, onClick: w, style: a, ...r, children: p || /* @__PURE__ */ t("svg", { xmlns: "http://www.w3.org/2000/svg", className: "h-6 w-6", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ t("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M5 10l7-7m0 0l7 7m-7-7v18" }) }) });
78
+ };
79
+ f.BackTop = x;
80
+ export {
81
+ f as FloatButton
82
+ };
83
+ //# sourceMappingURL=index27.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index27.js","sources":["../src/components/FloatButton.tsx"],"sourcesContent":["import React, { useState, useEffect } from 'react'\n\nexport interface FloatButtonProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'type'> {\n /** Button content (icon or text) */\n children?: React.ReactNode\n /** Button type/color */\n type?: 'default' | 'primary' | 'secondary' | 'accent'\n /** Button shape */\n shape?: 'circle' | 'square'\n /** Position on screen */\n position?: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left'\n /** Distance from edge in pixels */\n offset?: number\n /** Tooltip text */\n tooltip?: string\n /** Tooltip placement */\n tooltipPlacement?: 'left' | 'right' | 'top' | 'bottom'\n}\n\nexport interface BackTopProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'type' | 'onClick'> {\n /** Scroll threshold to show button (pixels) */\n visibilityHeight?: number\n /** Scroll target (default: window) */\n target?: () => HTMLElement | Window\n /** Click handler (called before scrolling) */\n onClick?: () => void\n /** Custom content */\n children?: React.ReactNode\n /** Position on screen */\n position?: 'bottom-right' | 'bottom-left'\n /** Distance from edge in pixels */\n offset?: number\n}\n\nconst tooltipPlacementClasses = {\n left: 'tooltip-left',\n right: 'tooltip-right',\n top: 'tooltip-top',\n bottom: 'tooltip-bottom',\n}\n\nexport const FloatButton: React.FC<FloatButtonProps> & { BackTop: React.FC<BackTopProps> } = ({\n children,\n onClick,\n type = 'default',\n shape = 'circle',\n position = 'bottom-right',\n offset = 24,\n className = '',\n tooltip,\n tooltipPlacement = 'left',\n ...rest\n}) => {\n const typeClasses = {\n default: 'btn-neutral',\n primary: 'btn-primary',\n secondary: 'btn-secondary',\n accent: 'btn-accent',\n }\n\n const buttonClasses = [\n 'btn',\n 'btn-lg',\n 'shadow-lg',\n shape === 'circle' ? 'btn-circle' : 'btn-square',\n typeClasses[type],\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n const style: React.CSSProperties = {\n position: 'fixed',\n zIndex: 1000,\n ...(position.includes('bottom') ? { bottom: offset } : { top: offset }),\n ...(position.includes('right') ? { right: offset } : { left: offset }),\n }\n\n const button = (\n <button className={buttonClasses} onClick={onClick} style={style} {...rest}>\n {children || (\n <svg xmlns=\"http://www.w3.org/2000/svg\" className=\"h-6 w-6\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M12 4v16m8-8H4\" />\n </svg>\n )}\n </button>\n )\n\n if (tooltip) {\n return (\n <div className={`tooltip ${tooltipPlacementClasses[tooltipPlacement]}`} data-tip={tooltip} style={style}>\n <button className={buttonClasses} onClick={onClick} style={{ position: 'static' }} {...rest}>\n {children || (\n <svg xmlns=\"http://www.w3.org/2000/svg\" className=\"h-6 w-6\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M12 4v16m8-8H4\" />\n </svg>\n )}\n </button>\n </div>\n )\n }\n\n return button\n}\n\nconst BackTop: React.FC<BackTopProps> = ({\n visibilityHeight = 400,\n target,\n onClick,\n children,\n position = 'bottom-right',\n offset = 24,\n className = '',\n ...rest\n}) => {\n const [visible, setVisible] = useState(false)\n\n useEffect(() => {\n const scrollTarget = target ? target() : window\n\n const handleScroll = () => {\n const scrollTop =\n scrollTarget instanceof Window\n ? window.scrollY\n : (scrollTarget as HTMLElement).scrollTop\n\n setVisible(scrollTop >= visibilityHeight)\n }\n\n scrollTarget.addEventListener('scroll', handleScroll)\n handleScroll()\n\n return () => scrollTarget.removeEventListener('scroll', handleScroll)\n }, [target, visibilityHeight])\n\n const handleClick = () => {\n onClick?.()\n const scrollTarget = target ? target() : window\n if (scrollTarget instanceof Window) {\n window.scrollTo({ top: 0, behavior: 'smooth' })\n } else {\n (scrollTarget as HTMLElement).scrollTo({ top: 0, behavior: 'smooth' })\n }\n }\n\n if (!visible) return null\n\n const buttonClasses = [\n 'btn',\n 'btn-lg',\n 'btn-circle',\n 'btn-neutral',\n 'shadow-lg',\n 'transition-opacity',\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n const style: React.CSSProperties = {\n position: 'fixed',\n zIndex: 1000,\n bottom: offset,\n ...(position.includes('right') ? { right: offset } : { left: offset }),\n }\n\n return (\n <button className={buttonClasses} onClick={handleClick} style={style} {...rest}>\n {children || (\n <svg xmlns=\"http://www.w3.org/2000/svg\" className=\"h-6 w-6\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M5 10l7-7m0 0l7 7m-7-7v18\" />\n </svg>\n )}\n </button>\n )\n}\n\nFloatButton.BackTop = BackTop\n"],"names":["tooltipPlacementClasses","FloatButton","children","onClick","type","shape","position","offset","className","tooltip","tooltipPlacement","rest","buttonClasses","style","button","jsx","BackTop","visibilityHeight","target","visible","setVisible","useState","useEffect","scrollTarget","handleScroll","scrollTop","handleClick"],"mappings":";;AAkCA,MAAMA,IAA0B;AAAA,EAC9B,MAAM;AAAA,EACN,OAAO;AAAA,EACP,KAAK;AAAA,EACL,QAAQ;AACV,GAEaC,IAAgF,CAAC;AAAA,EAC5F,UAAAC;AAAA,EACA,SAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,OAAAC,IAAQ;AAAA,EACR,UAAAC,IAAW;AAAA,EACX,QAAAC,IAAS;AAAA,EACT,WAAAC,IAAY;AAAA,EACZ,SAAAC;AAAA,EACA,kBAAAC,IAAmB;AAAA,EACnB,GAAGC;AACL,MAAM;AAQJ,QAAMC,IAAgB;AAAA,IACpB;AAAA,IACA;AAAA,IACA;AAAA,IACAP,MAAU,WAAW,eAAe;AAAA,IAXlB;AAAA,MAClB,SAAS;AAAA,MACT,SAAS;AAAA,MACT,WAAW;AAAA,MACX,QAAQ;AAAA,IAAA,EAQID,CAAI;AAAA,IAChBI;AAAA,EAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG,GAELK,IAA6B;AAAA,IACjC,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,GAAIP,EAAS,SAAS,QAAQ,IAAI,EAAE,QAAQC,EAAA,IAAW,EAAE,KAAKA,EAAA;AAAA,IAC9D,GAAID,EAAS,SAAS,OAAO,IAAI,EAAE,OAAOC,EAAA,IAAW,EAAE,MAAMA,EAAA;AAAA,EAAO,GAGhEO,IACJ,gBAAAC,EAAC,UAAA,EAAO,WAAWH,GAAe,SAAAT,GAAkB,OAAAU,GAAe,GAAGF,GACnE,UAAAT,KACC,gBAAAa,EAAC,OAAA,EAAI,OAAM,8BAA6B,WAAU,WAAU,MAAK,QAAO,SAAQ,aAAY,QAAO,gBACjG,4BAAC,QAAA,EAAK,eAAc,SAAQ,gBAAe,SAAQ,aAAa,GAAG,GAAE,iBAAA,CAAiB,GACxF,GAEJ;AAGF,SAAIN,IAEA,gBAAAM,EAAC,SAAI,WAAW,WAAWf,EAAwBU,CAAgB,CAAC,IAAI,YAAUD,GAAS,OAAAI,GACzF,4BAAC,UAAA,EAAO,WAAWD,GAAe,SAAAT,GAAkB,OAAO,EAAE,UAAU,SAAA,GAAa,GAAGQ,GACpF,UAAAT,uBACE,OAAA,EAAI,OAAM,8BAA6B,WAAU,WAAU,MAAK,QAAO,SAAQ,aAAY,QAAO,gBACjG,UAAA,gBAAAa,EAAC,UAAK,eAAc,SAAQ,gBAAe,SAAQ,aAAa,GAAG,GAAE,iBAAA,CAAiB,GACxF,EAAA,CAEJ,EAAA,CACF,IAIGD;AACT,GAEME,IAAkC,CAAC;AAAA,EACvC,kBAAAC,IAAmB;AAAA,EACnB,QAAAC;AAAA,EACA,SAAAf;AAAA,EACA,UAAAD;AAAA,EACA,UAAAI,IAAW;AAAA,EACX,QAAAC,IAAS;AAAA,EACT,WAAAC,IAAY;AAAA,EACZ,GAAGG;AACL,MAAM;AACJ,QAAM,CAACQ,GAASC,CAAU,IAAIC,EAAS,EAAK;AAE5C,EAAAC,EAAU,MAAM;AACd,UAAMC,IAAeL,IAASA,EAAA,IAAW,QAEnCM,IAAe,MAAM;AACzB,YAAMC,IACJF,aAAwB,SACpB,OAAO,UACNA,EAA6B;AAEpC,MAAAH,EAAWK,KAAaR,CAAgB;AAAA,IAC1C;AAEA,WAAAM,EAAa,iBAAiB,UAAUC,CAAY,GACpDA,EAAA,GAEO,MAAMD,EAAa,oBAAoB,UAAUC,CAAY;AAAA,EACtE,GAAG,CAACN,GAAQD,CAAgB,CAAC;AAE7B,QAAMS,IAAc,MAAM;AACxB,IAAAvB,IAAA;AACA,UAAMoB,IAAeL,IAASA,EAAA,IAAW;AACzC,IAAIK,aAAwB,SAC1B,OAAO,SAAS,EAAE,KAAK,GAAG,UAAU,UAAU,IAE7CA,EAA6B,SAAS,EAAE,KAAK,GAAG,UAAU,UAAU;AAAA,EAEzE;AAEA,MAAI,CAACJ,EAAS,QAAO;AAErB,QAAMP,IAAgB;AAAA,IACpB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACAJ;AAAA,EAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG,GAELK,IAA6B;AAAA,IACjC,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,QAAQN;AAAA,IACR,GAAID,EAAS,SAAS,OAAO,IAAI,EAAE,OAAOC,EAAA,IAAW,EAAE,MAAMA,EAAA;AAAA,EAAO;AAGtE,SACE,gBAAAQ,EAAC,UAAA,EAAO,WAAWH,GAAe,SAASc,GAAa,OAAAb,GAAe,GAAGF,GACvE,UAAAT,KACC,gBAAAa,EAAC,OAAA,EAAI,OAAM,8BAA6B,WAAU,WAAU,MAAK,QAAO,SAAQ,aAAY,QAAO,gBACjG,4BAAC,QAAA,EAAK,eAAc,SAAQ,gBAAe,SAAQ,aAAa,GAAG,GAAE,4BAAA,CAA4B,GACnG,GAEJ;AAEJ;AAEAd,EAAY,UAAUe;"}
@@ -0,0 +1,21 @@
1
+ import { jsx as r } from "react/jsx-runtime";
2
+ function a({ children: o, className: e = "", center: t = !1, horizontal: s = !1, vertical: f = !1, ...l }) {
3
+ const n = [
4
+ "footer",
5
+ t && "footer-center",
6
+ s && "footer-horizontal",
7
+ f && "footer-vertical",
8
+ e
9
+ ].filter(Boolean).join(" ");
10
+ return /* @__PURE__ */ r("footer", { className: n, ...l, children: o });
11
+ }
12
+ function i({ children: o, className: e = "", ...t }) {
13
+ return /* @__PURE__ */ r("h6", { className: `footer-title ${e}`, ...t, children: o });
14
+ }
15
+ const m = Object.assign(a, {
16
+ Title: i
17
+ });
18
+ export {
19
+ m as Footer
20
+ };
21
+ //# sourceMappingURL=index28.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index28.js","sources":["../src/components/Footer.tsx"],"sourcesContent":["import React from 'react'\n\nexport interface FooterProps extends React.HTMLAttributes<HTMLElement> {\n children: React.ReactNode\n center?: boolean\n horizontal?: boolean\n vertical?: boolean\n}\n\nexport interface FooterTitleProps extends React.HTMLAttributes<HTMLHeadingElement> {\n children: React.ReactNode\n}\n\nfunction FooterRoot({ children, className = '', center = false, horizontal = false, vertical = false, ...rest }: FooterProps) {\n const classes = [\n 'footer',\n center && 'footer-center',\n horizontal && 'footer-horizontal',\n vertical && 'footer-vertical',\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n return <footer className={classes} {...rest}>{children}</footer>\n}\n\nfunction FooterTitle({ children, className = '', ...rest }: FooterTitleProps) {\n return <h6 className={`footer-title ${className}`} {...rest}>{children}</h6>\n}\n\nexport const Footer = Object.assign(FooterRoot, {\n Title: FooterTitle,\n})\n"],"names":["FooterRoot","children","className","center","horizontal","vertical","rest","classes","FooterTitle","jsx","Footer"],"mappings":";AAaA,SAASA,EAAW,EAAE,UAAAC,GAAU,WAAAC,IAAY,IAAI,QAAAC,IAAS,IAAO,YAAAC,IAAa,IAAO,UAAAC,IAAW,IAAO,GAAGC,KAAqB;AAC5H,QAAMC,IAAU;AAAA,IACd;AAAA,IACAJ,KAAU;AAAA,IACVC,KAAc;AAAA,IACdC,KAAY;AAAA,IACZH;AAAA,EAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,2BAAQ,UAAA,EAAO,WAAWK,GAAU,GAAGD,GAAO,UAAAL,GAAS;AACzD;AAEA,SAASO,EAAY,EAAE,UAAAP,GAAU,WAAAC,IAAY,IAAI,GAAGI,KAA0B;AAC5E,SAAO,gBAAAG,EAAC,QAAG,WAAW,gBAAgBP,CAAS,IAAK,GAAGI,GAAO,UAAAL,GAAS;AACzE;AAEO,MAAMS,IAAS,OAAO,OAAOV,GAAY;AAAA,EAC9C,OAAOQ;AACT,CAAC;"}