@aster-ui/prefixed 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 (388) hide show
  1. package/LICENSE +15 -0
  2. package/README.md +40 -0
  3. package/dist/chart.d.ts +2 -0
  4. package/dist/chart.js +5 -0
  5. package/dist/chart.js.map +1 -0
  6. package/dist/components/Affix.d.ts +14 -0
  7. package/dist/components/Affix.js +57 -0
  8. package/dist/components/Affix.js.map +1 -0
  9. package/dist/components/Alert.d.ts +10 -0
  10. package/dist/components/Alert.js +31 -0
  11. package/dist/components/Alert.js.map +1 -0
  12. package/dist/components/Anchor.d.ts +55 -0
  13. package/dist/components/Anchor.js +116 -0
  14. package/dist/components/Anchor.js.map +1 -0
  15. package/dist/components/Autocomplete.d.ts +38 -0
  16. package/dist/components/Autocomplete.js +186 -0
  17. package/dist/components/Autocomplete.js.map +1 -0
  18. package/dist/components/Avatar.d.ts +28 -0
  19. package/dist/components/Avatar.js +65 -0
  20. package/dist/components/Avatar.js.map +1 -0
  21. package/dist/components/Badge.d.ts +39 -0
  22. package/dist/components/Badge.js +220 -0
  23. package/dist/components/Badge.js.map +1 -0
  24. package/dist/components/Breadcrumb.d.ts +32 -0
  25. package/dist/components/Breadcrumb.js +39 -0
  26. package/dist/components/Breadcrumb.js.map +1 -0
  27. package/dist/components/Browser.d.ts +7 -0
  28. package/dist/components/Browser.js +15 -0
  29. package/dist/components/Browser.js.map +1 -0
  30. package/dist/components/Button.d.ts +38 -0
  31. package/dist/components/Button.js +114 -0
  32. package/dist/components/Button.js.map +1 -0
  33. package/dist/components/Card.d.ts +57 -0
  34. package/dist/components/Card.js +202 -0
  35. package/dist/components/Card.js.map +1 -0
  36. package/dist/components/Carousel.d.ts +55 -0
  37. package/dist/components/Carousel.js +205 -0
  38. package/dist/components/Carousel.js.map +1 -0
  39. package/dist/components/Cascader.d.ts +71 -0
  40. package/dist/components/Cascader.js +416 -0
  41. package/dist/components/Cascader.js.map +1 -0
  42. package/dist/components/Chart.d.ts +19 -0
  43. package/dist/components/Chart.js +153 -0
  44. package/dist/components/Chart.js.map +1 -0
  45. package/dist/components/Chat.d.ts +11 -0
  46. package/dist/components/Chat.js +33 -0
  47. package/dist/components/Chat.js.map +1 -0
  48. package/dist/components/Checkbox.d.ts +42 -0
  49. package/dist/components/Checkbox.js +156 -0
  50. package/dist/components/Checkbox.js.map +1 -0
  51. package/dist/components/Code.d.ts +16 -0
  52. package/dist/components/Code.js +60 -0
  53. package/dist/components/Code.js.map +1 -0
  54. package/dist/components/Collapse.d.ts +45 -0
  55. package/dist/components/Collapse.js +115 -0
  56. package/dist/components/Collapse.js.map +1 -0
  57. package/dist/components/ColorPicker.d.ts +16 -0
  58. package/dist/components/ColorPicker.js +368 -0
  59. package/dist/components/ColorPicker.js.map +1 -0
  60. package/dist/components/Command.d.ts +65 -0
  61. package/dist/components/Command.js +422 -0
  62. package/dist/components/Command.js.map +1 -0
  63. package/dist/components/ConfigProvider.d.ts +59 -0
  64. package/dist/components/ConfigProvider.js +46 -0
  65. package/dist/components/ConfigProvider.js.map +1 -0
  66. package/dist/components/Container.d.ts +12 -0
  67. package/dist/components/Container.js +28 -0
  68. package/dist/components/Container.js.map +1 -0
  69. package/dist/components/ContextMenu.d.ts +59 -0
  70. package/dist/components/ContextMenu.js +206 -0
  71. package/dist/components/ContextMenu.js.map +1 -0
  72. package/dist/components/CopyButton.d.ts +37 -0
  73. package/dist/components/CopyButton.js +123 -0
  74. package/dist/components/CopyButton.js.map +1 -0
  75. package/dist/components/Countdown.d.ts +27 -0
  76. package/dist/components/Countdown.js +118 -0
  77. package/dist/components/Countdown.js.map +1 -0
  78. package/dist/components/DatePicker.d.ts +11 -0
  79. package/dist/components/DatePicker.js +188 -0
  80. package/dist/components/DatePicker.js.map +1 -0
  81. package/dist/components/Descriptions.d.ts +84 -0
  82. package/dist/components/Descriptions.js +234 -0
  83. package/dist/components/Descriptions.js.map +1 -0
  84. package/dist/components/Diff.d.ts +12 -0
  85. package/dist/components/Diff.js +22 -0
  86. package/dist/components/Diff.js.map +1 -0
  87. package/dist/components/Divider.d.ts +8 -0
  88. package/dist/components/Divider.js +36 -0
  89. package/dist/components/Divider.js.map +1 -0
  90. package/dist/components/Dock.d.ts +38 -0
  91. package/dist/components/Dock.js +47 -0
  92. package/dist/components/Dock.js.map +1 -0
  93. package/dist/components/Drawer.d.ts +81 -0
  94. package/dist/components/Drawer.js +246 -0
  95. package/dist/components/Drawer.js.map +1 -0
  96. package/dist/components/Dropdown.d.ts +104 -0
  97. package/dist/components/Dropdown.js +407 -0
  98. package/dist/components/Dropdown.js.map +1 -0
  99. package/dist/components/Empty.d.ts +17 -0
  100. package/dist/components/Empty.js +145 -0
  101. package/dist/components/Empty.js.map +1 -0
  102. package/dist/components/Fieldset.d.ts +21 -0
  103. package/dist/components/Fieldset.js +21 -0
  104. package/dist/components/Fieldset.js.map +1 -0
  105. package/dist/components/FileInput.d.ts +9 -0
  106. package/dist/components/FileInput.js +38 -0
  107. package/dist/components/FileInput.js.map +1 -0
  108. package/dist/components/Filter.d.ts +27 -0
  109. package/dist/components/Filter.js +57 -0
  110. package/dist/components/Filter.js.map +1 -0
  111. package/dist/components/Flex.d.ts +14 -0
  112. package/dist/components/Flex.js +66 -0
  113. package/dist/components/Flex.js.map +1 -0
  114. package/dist/components/FloatButton.d.ts +73 -0
  115. package/dist/components/FloatButton.js +187 -0
  116. package/dist/components/FloatButton.js.map +1 -0
  117. package/dist/components/Footer.d.ts +16 -0
  118. package/dist/components/Footer.js +22 -0
  119. package/dist/components/Footer.js.map +1 -0
  120. package/dist/components/Form.d.ts +107 -0
  121. package/dist/components/Form.js +277 -0
  122. package/dist/components/Form.js.map +1 -0
  123. package/dist/components/Grid.d.ts +26 -0
  124. package/dist/components/Grid.js +1090 -0
  125. package/dist/components/Grid.js.map +1 -0
  126. package/dist/components/Hero.d.ts +11 -0
  127. package/dist/components/Hero.js +21 -0
  128. package/dist/components/Hero.js.map +1 -0
  129. package/dist/components/HoverGallery.d.ts +10 -0
  130. package/dist/components/HoverGallery.js +20 -0
  131. package/dist/components/HoverGallery.js.map +1 -0
  132. package/dist/components/Image.d.ts +26 -0
  133. package/dist/components/Image.js +172 -0
  134. package/dist/components/Image.js.map +1 -0
  135. package/dist/components/Input.d.ts +36 -0
  136. package/dist/components/Input.js +263 -0
  137. package/dist/components/Input.js.map +1 -0
  138. package/dist/components/InputNumber.d.ts +19 -0
  139. package/dist/components/InputNumber.js +158 -0
  140. package/dist/components/InputNumber.js.map +1 -0
  141. package/dist/components/Join.d.ts +6 -0
  142. package/dist/components/Join.js +19 -0
  143. package/dist/components/Join.js.map +1 -0
  144. package/dist/components/Kbd.d.ts +9 -0
  145. package/dist/components/Kbd.js +20 -0
  146. package/dist/components/Kbd.js.map +1 -0
  147. package/dist/components/Layout.d.ts +67 -0
  148. package/dist/components/Layout.js +188 -0
  149. package/dist/components/Layout.js.map +1 -0
  150. package/dist/components/List.d.ts +79 -0
  151. package/dist/components/List.js +128 -0
  152. package/dist/components/List.js.map +1 -0
  153. package/dist/components/Loading.d.ts +9 -0
  154. package/dist/components/Loading.js +40 -0
  155. package/dist/components/Loading.js.map +1 -0
  156. package/dist/components/Mask.d.ts +14 -0
  157. package/dist/components/Mask.js +37 -0
  158. package/dist/components/Mask.js.map +1 -0
  159. package/dist/components/Masonry.d.ts +15 -0
  160. package/dist/components/Masonry.js +84 -0
  161. package/dist/components/Masonry.js.map +1 -0
  162. package/dist/components/Mention.d.ts +30 -0
  163. package/dist/components/Mention.js +179 -0
  164. package/dist/components/Mention.js.map +1 -0
  165. package/dist/components/Menu.d.ts +72 -0
  166. package/dist/components/Menu.js +163 -0
  167. package/dist/components/Menu.js.map +1 -0
  168. package/dist/components/Message.d.ts +20 -0
  169. package/dist/components/Message.js +57 -0
  170. package/dist/components/Message.js.map +1 -0
  171. package/dist/components/Modal.d.ts +57 -0
  172. package/dist/components/Modal.js +338 -0
  173. package/dist/components/Modal.js.map +1 -0
  174. package/dist/components/MonthCalendar.d.ts +31 -0
  175. package/dist/components/MonthCalendar.js +205 -0
  176. package/dist/components/MonthCalendar.js.map +1 -0
  177. package/dist/components/Navbar.d.ts +22 -0
  178. package/dist/components/Navbar.js +50 -0
  179. package/dist/components/Navbar.js.map +1 -0
  180. package/dist/components/Notification.d.ts +50 -0
  181. package/dist/components/Notification.js +150 -0
  182. package/dist/components/Notification.js.map +1 -0
  183. package/dist/components/OTPInput.d.ts +32 -0
  184. package/dist/components/OTPInput.js +114 -0
  185. package/dist/components/OTPInput.js.map +1 -0
  186. package/dist/components/Pagination.d.ts +18 -0
  187. package/dist/components/Pagination.js +175 -0
  188. package/dist/components/Pagination.js.map +1 -0
  189. package/dist/components/Phone.d.ts +8 -0
  190. package/dist/components/Phone.js +17 -0
  191. package/dist/components/Phone.js.map +1 -0
  192. package/dist/components/Popconfirm.d.ts +17 -0
  193. package/dist/components/Popconfirm.js +125 -0
  194. package/dist/components/Popconfirm.js.map +1 -0
  195. package/dist/components/Popover.d.ts +15 -0
  196. package/dist/components/Popover.js +89 -0
  197. package/dist/components/Popover.js.map +1 -0
  198. package/dist/components/Progress.d.ts +5 -0
  199. package/dist/components/Progress.js +23 -0
  200. package/dist/components/Progress.js.map +1 -0
  201. package/dist/components/QRCode.d.ts +19 -0
  202. package/dist/components/QRCode.js +75 -0
  203. package/dist/components/QRCode.js.map +1 -0
  204. package/dist/components/RadialProgress.d.ts +10 -0
  205. package/dist/components/RadialProgress.js +48 -0
  206. package/dist/components/RadialProgress.js.map +1 -0
  207. package/dist/components/Radio.d.ts +26 -0
  208. package/dist/components/Radio.js +61 -0
  209. package/dist/components/Radio.js.map +1 -0
  210. package/dist/components/Range.d.ts +16 -0
  211. package/dist/components/Range.js +57 -0
  212. package/dist/components/Range.js.map +1 -0
  213. package/dist/components/Rating.d.ts +30 -0
  214. package/dist/components/Rating.js +127 -0
  215. package/dist/components/Rating.js.map +1 -0
  216. package/dist/components/Responsive.d.ts +18 -0
  217. package/dist/components/Responsive.js +17 -0
  218. package/dist/components/Responsive.js.map +1 -0
  219. package/dist/components/ResponsiveDrawer.d.ts +34 -0
  220. package/dist/components/ResponsiveDrawer.js +75 -0
  221. package/dist/components/ResponsiveDrawer.js.map +1 -0
  222. package/dist/components/Result.d.ts +12 -0
  223. package/dist/components/Result.js +110 -0
  224. package/dist/components/Result.js.map +1 -0
  225. package/dist/components/RichTextEditor.d.ts +32 -0
  226. package/dist/components/RichTextEditor.js +335 -0
  227. package/dist/components/RichTextEditor.js.map +1 -0
  228. package/dist/components/Segmented.d.ts +37 -0
  229. package/dist/components/Segmented.js +73 -0
  230. package/dist/components/Segmented.js.map +1 -0
  231. package/dist/components/Select.d.ts +18 -0
  232. package/dist/components/Select.js +78 -0
  233. package/dist/components/Select.js.map +1 -0
  234. package/dist/components/Skeleton.d.ts +9 -0
  235. package/dist/components/Skeleton.js +24 -0
  236. package/dist/components/Skeleton.js.map +1 -0
  237. package/dist/components/Space.d.ts +11 -0
  238. package/dist/components/Space.js +61 -0
  239. package/dist/components/Space.js.map +1 -0
  240. package/dist/components/Splitter.d.ts +29 -0
  241. package/dist/components/Splitter.js +257 -0
  242. package/dist/components/Splitter.js.map +1 -0
  243. package/dist/components/Stat.d.ts +18 -0
  244. package/dist/components/Stat.js +26 -0
  245. package/dist/components/Stat.js.map +1 -0
  246. package/dist/components/Status.d.ts +18 -0
  247. package/dist/components/Status.js +34 -0
  248. package/dist/components/Status.js.map +1 -0
  249. package/dist/components/Steps.d.ts +52 -0
  250. package/dist/components/Steps.js +97 -0
  251. package/dist/components/Steps.js.map +1 -0
  252. package/dist/components/Table.d.ts +105 -0
  253. package/dist/components/Table.js +637 -0
  254. package/dist/components/Table.js.map +1 -0
  255. package/dist/components/Tabs.d.ts +45 -0
  256. package/dist/components/Tabs.js +86 -0
  257. package/dist/components/Tabs.js.map +1 -0
  258. package/dist/components/Tag.d.ts +34 -0
  259. package/dist/components/Tag.js +210 -0
  260. package/dist/components/Tag.js.map +1 -0
  261. package/dist/components/TextRotate.d.ts +13 -0
  262. package/dist/components/TextRotate.js +26 -0
  263. package/dist/components/TextRotate.js.map +1 -0
  264. package/dist/components/Textarea.d.ts +9 -0
  265. package/dist/components/Textarea.js +44 -0
  266. package/dist/components/Textarea.js.map +1 -0
  267. package/dist/components/ThemeController.d.ts +28 -0
  268. package/dist/components/ThemeController.js +162 -0
  269. package/dist/components/ThemeController.js.map +1 -0
  270. package/dist/components/TimePicker.d.ts +20 -0
  271. package/dist/components/TimePicker.js +304 -0
  272. package/dist/components/TimePicker.js.map +1 -0
  273. package/dist/components/Timeline.d.ts +79 -0
  274. package/dist/components/Timeline.js +151 -0
  275. package/dist/components/Timeline.js.map +1 -0
  276. package/dist/components/Toggle.d.ts +7 -0
  277. package/dist/components/Toggle.js +39 -0
  278. package/dist/components/Toggle.js.map +1 -0
  279. package/dist/components/Tooltip.d.ts +9 -0
  280. package/dist/components/Tooltip.js +37 -0
  281. package/dist/components/Tooltip.js.map +1 -0
  282. package/dist/components/Tour.d.ts +123 -0
  283. package/dist/components/Tour.js +400 -0
  284. package/dist/components/Tour.js.map +1 -0
  285. package/dist/components/Transfer.d.ts +22 -0
  286. package/dist/components/Transfer.js +214 -0
  287. package/dist/components/Transfer.js.map +1 -0
  288. package/dist/components/Tree.d.ts +118 -0
  289. package/dist/components/Tree.js +444 -0
  290. package/dist/components/Tree.js.map +1 -0
  291. package/dist/components/TreeSelect.d.ts +84 -0
  292. package/dist/components/TreeSelect.js +755 -0
  293. package/dist/components/TreeSelect.js.map +1 -0
  294. package/dist/components/Typography.d.ts +53 -0
  295. package/dist/components/Typography.js +182 -0
  296. package/dist/components/Typography.js.map +1 -0
  297. package/dist/components/Upload.d.ts +38 -0
  298. package/dist/components/Upload.js +261 -0
  299. package/dist/components/Upload.js.map +1 -0
  300. package/dist/components/VirtualList.d.ts +29 -0
  301. package/dist/components/VirtualList.js +69 -0
  302. package/dist/components/VirtualList.js.map +1 -0
  303. package/dist/components/Watermark.d.ts +40 -0
  304. package/dist/components/Watermark.js +129 -0
  305. package/dist/components/Watermark.js.map +1 -0
  306. package/dist/components/WeekCalendar.d.ts +35 -0
  307. package/dist/components/WeekCalendar.js +204 -0
  308. package/dist/components/WeekCalendar.js.map +1 -0
  309. package/dist/components/Window.d.ts +7 -0
  310. package/dist/components/Window.js +10 -0
  311. package/dist/components/Window.js.map +1 -0
  312. package/dist/contexts/IconSizeContext.d.ts +2 -0
  313. package/dist/contexts/IconSizeContext.js +6 -0
  314. package/dist/contexts/IconSizeContext.js.map +1 -0
  315. package/dist/editor.d.ts +1 -0
  316. package/dist/editor.js +5 -0
  317. package/dist/editor.js.map +1 -0
  318. package/dist/hooks/useBreakpoint.d.ts +10 -0
  319. package/dist/hooks/useBreakpoint.js +36 -0
  320. package/dist/hooks/useBreakpoint.js.map +1 -0
  321. package/dist/hooks/useClickOutside.d.ts +17 -0
  322. package/dist/hooks/useClickOutside.js +18 -0
  323. package/dist/hooks/useClickOutside.js.map +1 -0
  324. package/dist/hooks/useClipboard.d.ts +20 -0
  325. package/dist/hooks/useClipboard.js +17 -0
  326. package/dist/hooks/useClipboard.js.map +1 -0
  327. package/dist/hooks/useDebounce.d.ts +18 -0
  328. package/dist/hooks/useDebounce.js +16 -0
  329. package/dist/hooks/useDebounce.js.map +1 -0
  330. package/dist/hooks/useDisclosure.d.ts +20 -0
  331. package/dist/hooks/useDisclosure.js +9 -0
  332. package/dist/hooks/useDisclosure.js.map +1 -0
  333. package/dist/hooks/useHover.d.ts +18 -0
  334. package/dist/hooks/useHover.js +16 -0
  335. package/dist/hooks/useHover.js.map +1 -0
  336. package/dist/hooks/useKeyPress.d.ts +40 -0
  337. package/dist/hooks/useKeyPress.js +34 -0
  338. package/dist/hooks/useKeyPress.js.map +1 -0
  339. package/dist/hooks/useLocalStorage.d.ts +12 -0
  340. package/dist/hooks/useLocalStorage.js +49 -0
  341. package/dist/hooks/useLocalStorage.js.map +1 -0
  342. package/dist/hooks/usePrevious.d.ts +15 -0
  343. package/dist/hooks/usePrevious.js +11 -0
  344. package/dist/hooks/usePrevious.js.map +1 -0
  345. package/dist/hooks/useWindowSize.d.ts +21 -0
  346. package/dist/hooks/useWindowSize.js +21 -0
  347. package/dist/hooks/useWindowSize.js.map +1 -0
  348. package/dist/index.d.ts +216 -0
  349. package/dist/index.js +256 -0
  350. package/dist/index.js.map +1 -0
  351. package/dist/locale/de-DE.d.ts +3 -0
  352. package/dist/locale/de-DE.js +100 -0
  353. package/dist/locale/de-DE.js.map +1 -0
  354. package/dist/locale/en-CA.d.ts +3 -0
  355. package/dist/locale/en-CA.js +11 -0
  356. package/dist/locale/en-CA.js.map +1 -0
  357. package/dist/locale/en-GB.d.ts +3 -0
  358. package/dist/locale/en-GB.js +11 -0
  359. package/dist/locale/en-GB.js.map +1 -0
  360. package/dist/locale/en-US.d.ts +3 -0
  361. package/dist/locale/en-US.js +100 -0
  362. package/dist/locale/en-US.js.map +1 -0
  363. package/dist/locale/es-ES.d.ts +3 -0
  364. package/dist/locale/es-ES.js +100 -0
  365. package/dist/locale/es-ES.js.map +1 -0
  366. package/dist/locale/fr-FR.d.ts +3 -0
  367. package/dist/locale/fr-FR.js +100 -0
  368. package/dist/locale/fr-FR.js.map +1 -0
  369. package/dist/locale/index.d.ts +107 -0
  370. package/dist/locale/ja-JP.d.ts +3 -0
  371. package/dist/locale/ja-JP.js +100 -0
  372. package/dist/locale/ja-JP.js.map +1 -0
  373. package/dist/locale/ko-KR.d.ts +3 -0
  374. package/dist/locale/ko-KR.js +100 -0
  375. package/dist/locale/ko-KR.js.map +1 -0
  376. package/dist/locale/pt-BR.d.ts +3 -0
  377. package/dist/locale/pt-BR.js +100 -0
  378. package/dist/locale/pt-BR.js.map +1 -0
  379. package/dist/locale/zh-CN.d.ts +3 -0
  380. package/dist/locale/zh-CN.js +100 -0
  381. package/dist/locale/zh-CN.js.map +1 -0
  382. package/dist/qrcode.d.ts +2 -0
  383. package/dist/qrcode.js +5 -0
  384. package/dist/qrcode.js.map +1 -0
  385. package/dist/virtuallist.d.ts +2 -0
  386. package/dist/virtuallist.js +5 -0
  387. package/dist/virtuallist.js.map +1 -0
  388. package/package.json +130 -0
@@ -0,0 +1,127 @@
1
+ import { jsxs as I, Fragment as F, jsx as a } from "react/jsx-runtime";
2
+ import L, { useState as y, useId as X, createContext as _, useContext as O } from "react";
3
+ import { useConfig as P } from "./ConfigProvider.js";
4
+ const q = "d-rating", D = "d-rating-xs", J = "d-rating-sm", K = "d-rating-md", Q = "d-rating-lg", T = "d-rating-xl", U = "d-rating-half", W = "d-rating-hidden", Y = "d-mask", Z = "d-mask-star", w = "d-mask-star-2", nn = "d-mask-heart", tn = "d-mask-half-1", an = "d-mask-half-2", z = _(null);
5
+ function sn({
6
+ children: t,
7
+ value: i,
8
+ defaultValue: p = 0,
9
+ onChange: v,
10
+ onHoverChange: l,
11
+ count: m = 5,
12
+ size: f,
13
+ gap: d = "md",
14
+ color: r = "bg-warning",
15
+ mask: u = "star-2",
16
+ allowClear: h = !0,
17
+ allowHalf: s = !1,
18
+ disabled: c = !1,
19
+ className: k = "",
20
+ ...C
21
+ }) {
22
+ const { componentSize: b } = P(), o = f ?? b ?? "md", [R, x] = y(p), [G, S] = y(0), M = i !== void 0 ? i : R, $ = X(), N = (e) => {
23
+ if (c) return;
24
+ const n = h && e === M ? 0 : e;
25
+ i === void 0 && x(n), S(0), v?.(n);
26
+ }, j = (e) => {
27
+ c || (S(e), l?.(e));
28
+ }, H = {
29
+ xs: D,
30
+ sm: J,
31
+ md: K,
32
+ lg: Q,
33
+ xl: T
34
+ }, A = {
35
+ none: "gap-0",
36
+ xs: "gap-0.5",
37
+ sm: "gap-1",
38
+ md: "gap-2",
39
+ lg: "gap-3"
40
+ }, B = [
41
+ q,
42
+ // Half-star mode requires a size class to render correctly, default to md
43
+ (s || o) && H[o],
44
+ s ? U : d && A[d],
45
+ k
46
+ ].filter(Boolean).join(" "), V = s ? "star-2" : u, E = t || /* @__PURE__ */ I(F, { children: [
47
+ h && /* @__PURE__ */ a(g, { value: 0, hidden: !0 }),
48
+ s ? (
49
+ // Half-star mode: each star is two inputs
50
+ Array.from({ length: m }, (e, n) => /* @__PURE__ */ I(L.Fragment, { children: [
51
+ /* @__PURE__ */ a(g, { value: n + 0.5, mask: V, color: r, half: "first" }),
52
+ /* @__PURE__ */ a(g, { value: n + 1, mask: V, color: r, half: "second" })
53
+ ] }, n + 1))
54
+ ) : (
55
+ // Standard mode: one input per star
56
+ Array.from({ length: m }, (e, n) => /* @__PURE__ */ a(g, { value: n + 1, mask: V, color: r }, n + 1))
57
+ )
58
+ ] });
59
+ return /* @__PURE__ */ a(z.Provider, { value: { name: $, currentValue: M, hoverValue: G, onChange: N, onHover: j, size: o, disabled: c, halfGap: s ? d : void 0 }, children: /* @__PURE__ */ a(
60
+ "div",
61
+ {
62
+ role: "radiogroup",
63
+ "aria-label": "Rating",
64
+ className: B,
65
+ "data-value": M,
66
+ onMouseLeave: () => j(0),
67
+ ...C,
68
+ children: E
69
+ }
70
+ ) });
71
+ }
72
+ function g({ value: t, mask: i = "star-2", color: p = "bg-warning", hidden: v = !1, half: l, className: m = "" }) {
73
+ const f = O(z);
74
+ if (!f)
75
+ throw new Error("Rating.Item must be used within Rating");
76
+ const { name: d, currentValue: r, hoverValue: u, onChange: h, onHover: s, disabled: c, halfGap: k } = f, C = {
77
+ star: Z,
78
+ "star-2": w,
79
+ heart: nn
80
+ }, o = {
81
+ first: tn,
82
+ second: `${an} ${k ? {
83
+ none: "",
84
+ xs: "mr-0.5",
85
+ sm: "mr-1",
86
+ md: "mr-2",
87
+ lg: "mr-3"
88
+ }[k] : ""}`.trim()
89
+ }, R = v ? W : [
90
+ Y,
91
+ C[i],
92
+ l && o[l],
93
+ p,
94
+ m
95
+ ].filter(Boolean).join(" ");
96
+ if (c)
97
+ return /* @__PURE__ */ a(
98
+ "div",
99
+ {
100
+ className: R,
101
+ "aria-current": r === t ? "true" : void 0,
102
+ "aria-label": `Rating ${t}`
103
+ }
104
+ );
105
+ const x = u > 0 ? u : r;
106
+ return /* @__PURE__ */ a(
107
+ "input",
108
+ {
109
+ type: "radio",
110
+ name: d,
111
+ className: R,
112
+ checked: x === t,
113
+ onChange: () => {
114
+ },
115
+ onClick: () => h(t),
116
+ onMouseEnter: () => s(t),
117
+ "aria-label": `Rating ${t}`
118
+ }
119
+ );
120
+ }
121
+ const dn = Object.assign(sn, {
122
+ Item: g
123
+ });
124
+ export {
125
+ dn as Rating
126
+ };
127
+ //# sourceMappingURL=Rating.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Rating.js","sources":["../../src/components/Rating.tsx"],"sourcesContent":["import React, { createContext, useContext, useId, useState } from 'react'\nimport { useConfig } from './ConfigProvider'\n\n// DaisyUI classes\nconst dRating = 'd-rating'\nconst dRatingXs = 'd-rating-xs'\nconst dRatingSm = 'd-rating-sm'\nconst dRatingMd = 'd-rating-md'\nconst dRatingLg = 'd-rating-lg'\nconst dRatingXl = 'd-rating-xl'\nconst dRatingHalf = 'd-rating-half'\nconst dRatingHidden = 'd-rating-hidden'\nconst dMask = 'd-mask'\nconst dMaskStar = 'd-mask-star'\nconst dMaskStar2 = 'd-mask-star-2'\nconst dMaskHeart = 'd-mask-heart'\nconst dMaskHalf1 = 'd-mask-half-1'\nconst dMaskHalf2 = 'd-mask-half-2'\n\nexport interface RatingProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'> {\n children?: React.ReactNode\n value?: number\n defaultValue?: number\n onChange?: (value: number) => void\n onHoverChange?: (value: number) => void\n count?: number\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl'\n gap?: 'none' | 'xs' | 'sm' | 'md' | 'lg'\n color?: string\n mask?: 'star' | 'star-2' | 'heart'\n allowClear?: boolean\n allowHalf?: boolean\n disabled?: boolean\n}\n\nexport interface RatingItemProps {\n value: number\n mask?: 'star' | 'star-2' | 'heart'\n color?: string\n hidden?: boolean\n half?: 'first' | 'second'\n className?: string\n}\n\ninterface RatingContextValue {\n name: string\n currentValue: number\n hoverValue: number\n onChange: (value: number) => void\n onHover: (value: number) => void\n size?: string\n disabled?: boolean\n halfGap?: 'none' | 'xs' | 'sm' | 'md' | 'lg'\n}\n\nconst RatingContext = createContext<RatingContextValue | null>(null)\n\nfunction RatingRoot({\n children,\n value,\n defaultValue = 0,\n onChange,\n onHoverChange,\n count = 5,\n size,\n gap = 'md',\n color = 'bg-warning',\n mask = 'star-2',\n allowClear = true,\n allowHalf = false,\n disabled = false,\n className = '',\n ...rest\n}: RatingProps) {\n const { componentSize } = useConfig()\n const effectiveSize = size ?? componentSize ?? 'md'\n const [internalValue, setInternalValue] = useState(defaultValue)\n const [hoverValue, setHoverValue] = useState(0)\n const currentValue = value !== undefined ? value : internalValue\n const name = useId()\n\n const handleChange = (newValue: number) => {\n if (disabled) return\n // Allow clearing if clicking the same value and allowClear is true\n const finalValue = allowClear && newValue === currentValue ? 0 : newValue\n if (value === undefined) {\n setInternalValue(finalValue)\n }\n // Clear hover state so the clicked value shows immediately\n setHoverValue(0)\n onChange?.(finalValue)\n }\n\n const handleHover = (hoverVal: number) => {\n if (disabled) return\n setHoverValue(hoverVal)\n onHoverChange?.(hoverVal)\n }\n\n const sizeClasses = {\n xs: dRatingXs,\n sm: dRatingSm,\n md: dRatingMd,\n lg: dRatingLg,\n xl: dRatingXl,\n }\n\n const gapClasses = {\n none: 'gap-0',\n xs: 'gap-0.5',\n sm: 'gap-1',\n md: 'gap-2',\n lg: 'gap-3',\n }\n\n const classes = [\n dRating,\n // Half-star mode requires a size class to render correctly, default to md\n allowHalf ? sizeClasses[effectiveSize] : (effectiveSize && sizeClasses[effectiveSize]),\n allowHalf ? dRatingHalf : (gap && gapClasses[gap]),\n className,\n ].filter(Boolean).join(' ')\n\n // Auto-generate items if no children provided\n // Note: half-star mode requires mask-star-2 per DaisyUI\n const effectiveMask = allowHalf ? 'star-2' : mask\n const items = children || (\n <>\n {allowClear && <RatingItem value={0} hidden />}\n {allowHalf ? (\n // Half-star mode: each star is two inputs\n Array.from({ length: count }, (_, i) => (\n <React.Fragment key={i + 1}>\n <RatingItem value={i + 0.5} mask={effectiveMask} color={color} half=\"first\" />\n <RatingItem value={i + 1} mask={effectiveMask} color={color} half=\"second\" />\n </React.Fragment>\n ))\n ) : (\n // Standard mode: one input per star\n Array.from({ length: count }, (_, i) => (\n <RatingItem key={i + 1} value={i + 1} mask={effectiveMask} color={color} />\n ))\n )}\n </>\n )\n\n return (\n <RatingContext.Provider value={{ name, currentValue, hoverValue, onChange: handleChange, onHover: handleHover, size: effectiveSize, disabled, halfGap: allowHalf ? gap : undefined }}>\n <div\n role=\"radiogroup\"\n aria-label=\"Rating\"\n className={classes}\n data-value={currentValue}\n onMouseLeave={() => handleHover(0)}\n {...rest}\n >\n {items}\n </div>\n </RatingContext.Provider>\n )\n}\n\nfunction RatingItem({ value, mask = 'star-2', color = 'bg-warning', hidden = false, half, className = '' }: RatingItemProps) {\n const context = useContext(RatingContext)\n if (!context) {\n throw new Error('Rating.Item must be used within Rating')\n }\n\n const { name, currentValue, hoverValue, onChange, onHover, disabled, halfGap } = context\n\n const maskClasses = {\n star: dMaskStar,\n 'star-2': dMaskStar2,\n heart: dMaskHeart,\n }\n\n const halfGapClasses = {\n none: '',\n xs: 'mr-0.5',\n sm: 'mr-1',\n md: 'mr-2',\n lg: 'mr-3',\n }\n\n const halfClasses = {\n first: dMaskHalf1,\n second: `${dMaskHalf2} ${halfGap ? halfGapClasses[halfGap] : ''}`.trim(),\n }\n\n // Hidden items only get rating-hidden class (no mask)\n // Visible items get mask classes - DaisyUI CSS handles filled/unfilled state\n const classes = hidden\n ? dRatingHidden\n : [\n dMask,\n maskClasses[mask],\n half && halfClasses[half],\n color,\n className,\n ].filter(Boolean).join(' ')\n\n if (disabled) {\n return (\n <div\n className={classes}\n aria-current={currentValue === value ? 'true' : undefined}\n aria-label={`Rating ${value}`}\n />\n )\n }\n\n // Use hoverValue for checked state when hovering (for visual preview)\n // DaisyUI CSS fills all stars up to the checked one\n const displayValue = hoverValue > 0 ? hoverValue : currentValue\n\n return (\n <input\n type=\"radio\"\n name={name}\n className={classes}\n checked={displayValue === value}\n onChange={() => {}} // Controlled by onClick\n onClick={() => onChange(value)}\n onMouseEnter={() => onHover(value)}\n aria-label={`Rating ${value}`}\n />\n )\n}\n\nexport const Rating = Object.assign(RatingRoot, {\n Item: RatingItem,\n})\n"],"names":["dRating","dRatingXs","dRatingSm","dRatingMd","dRatingLg","dRatingXl","dRatingHalf","dRatingHidden","dMask","dMaskStar","dMaskStar2","dMaskHeart","dMaskHalf1","dMaskHalf2","RatingContext","createContext","RatingRoot","children","value","defaultValue","onChange","onHoverChange","count","size","gap","color","mask","allowClear","allowHalf","disabled","className","rest","componentSize","useConfig","effectiveSize","internalValue","setInternalValue","useState","hoverValue","setHoverValue","currentValue","name","useId","handleChange","newValue","finalValue","handleHover","hoverVal","sizeClasses","gapClasses","classes","effectiveMask","items","jsxs","Fragment","jsx","RatingItem","_","i","React","hidden","half","context","useContext","onHover","halfGap","maskClasses","halfClasses","displayValue","Rating"],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { default as React, ReactNode } from 'react';
2
+ import { Breakpoint } from '../hooks/useBreakpoint';
3
+ export interface ShowProps {
4
+ children: ReactNode;
5
+ above?: Breakpoint;
6
+ below?: Breakpoint;
7
+ at?: Breakpoint | Breakpoint[];
8
+ between?: [Breakpoint, Breakpoint];
9
+ }
10
+ export declare function Show({ children, above, below, at, between }: ShowProps): React.ReactElement | null;
11
+ export interface HideProps {
12
+ children: ReactNode;
13
+ above?: Breakpoint;
14
+ below?: Breakpoint;
15
+ at?: Breakpoint | Breakpoint[];
16
+ between?: [Breakpoint, Breakpoint];
17
+ }
18
+ export declare function Hide({ children, above, below, at, between }: HideProps): React.ReactElement | null;
@@ -0,0 +1,17 @@
1
+ import { jsx as v, Fragment as A } from "react/jsx-runtime";
2
+ import { useBreakpoint as m } from "../hooks/useBreakpoint.js";
3
+ function h({ children: f, above: o, below: r, at: s, between: e }) {
4
+ const { isAbove: d, isBelow: n, isAt: l, isBetween: u } = m();
5
+ let i = !1;
6
+ return o !== void 0 ? i = d(o) : r !== void 0 ? i = n(r) : s !== void 0 ? Array.isArray(s) ? i = s.some((t) => l(t)) : i = l(s) : e !== void 0 ? i = u(e[0], e[1]) : i = !0, i ? /* @__PURE__ */ v(A, { children: f }) : null;
7
+ }
8
+ function p({ children: f, above: o, below: r, at: s, between: e }) {
9
+ const { isAbove: d, isBelow: n, isAt: l, isBetween: u } = m();
10
+ let i = !1;
11
+ return o !== void 0 ? i = d(o) : r !== void 0 ? i = n(r) : s !== void 0 ? Array.isArray(s) ? i = s.some((t) => l(t)) : i = l(s) : e !== void 0 && (i = u(e[0], e[1])), i ? null : /* @__PURE__ */ v(A, { children: f });
12
+ }
13
+ export {
14
+ p as Hide,
15
+ h as Show
16
+ };
17
+ //# sourceMappingURL=Responsive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Responsive.js","sources":["../../src/components/Responsive.tsx"],"sourcesContent":["import React, { ReactNode } from 'react'\nimport { useBreakpoint, Breakpoint } from '../hooks/useBreakpoint'\n\nexport interface ShowProps {\n children: ReactNode\n above?: Breakpoint\n below?: Breakpoint\n at?: Breakpoint | Breakpoint[]\n between?: [Breakpoint, Breakpoint]\n}\n\nexport function Show({ children, above, below, at, between }: ShowProps): React.ReactElement | null {\n const { isAbove, isBelow, isAt, isBetween } = useBreakpoint()\n\n let shouldShow = false\n\n if (above !== undefined) {\n shouldShow = isAbove(above)\n } else if (below !== undefined) {\n shouldShow = isBelow(below)\n } else if (at !== undefined) {\n if (Array.isArray(at)) {\n shouldShow = at.some((bp) => isAt(bp))\n } else {\n shouldShow = isAt(at)\n }\n } else if (between !== undefined) {\n shouldShow = isBetween(between[0], between[1])\n } else {\n shouldShow = true\n }\n\n return shouldShow ? <>{children}</> : null\n}\n\nexport interface HideProps {\n children: ReactNode\n above?: Breakpoint\n below?: Breakpoint\n at?: Breakpoint | Breakpoint[]\n between?: [Breakpoint, Breakpoint]\n}\n\nexport function Hide({ children, above, below, at, between }: HideProps): React.ReactElement | null {\n const { isAbove, isBelow, isAt, isBetween } = useBreakpoint()\n\n let shouldHide = false\n\n if (above !== undefined) {\n shouldHide = isAbove(above)\n } else if (below !== undefined) {\n shouldHide = isBelow(below)\n } else if (at !== undefined) {\n if (Array.isArray(at)) {\n shouldHide = at.some((bp) => isAt(bp))\n } else {\n shouldHide = isAt(at)\n }\n } else if (between !== undefined) {\n shouldHide = isBetween(between[0], between[1])\n }\n\n return shouldHide ? null : <>{children}</>\n}\n"],"names":["Show","children","above","below","at","between","isAbove","isBelow","isAt","isBetween","useBreakpoint","shouldShow","bp","jsx","Fragment","Hide","shouldHide"],"mappings":";;AAWO,SAASA,EAAK,EAAE,UAAAC,GAAU,OAAAC,GAAO,OAAAC,GAAO,IAAAC,GAAI,SAAAC,KAAiD;AAClG,QAAM,EAAE,SAAAC,GAAS,SAAAC,GAAS,MAAAC,GAAM,WAAAC,EAAA,IAAcC,EAAA;AAE9C,MAAIC,IAAa;AAEjB,SAAIT,MAAU,SACZS,IAAaL,EAAQJ,CAAK,IACjBC,MAAU,SACnBQ,IAAaJ,EAAQJ,CAAK,IACjBC,MAAO,SACZ,MAAM,QAAQA,CAAE,IAClBO,IAAaP,EAAG,KAAK,CAACQ,MAAOJ,EAAKI,CAAE,CAAC,IAErCD,IAAaH,EAAKJ,CAAE,IAEbC,MAAY,SACrBM,IAAaF,EAAUJ,EAAQ,CAAC,GAAGA,EAAQ,CAAC,CAAC,IAE7CM,IAAa,IAGRA,IAAa,gBAAAE,EAAAC,GAAA,EAAG,UAAAb,EAAA,CAAS,IAAM;AACxC;AAUO,SAASc,EAAK,EAAE,UAAAd,GAAU,OAAAC,GAAO,OAAAC,GAAO,IAAAC,GAAI,SAAAC,KAAiD;AAClG,QAAM,EAAE,SAAAC,GAAS,SAAAC,GAAS,MAAAC,GAAM,WAAAC,EAAA,IAAcC,EAAA;AAE9C,MAAIM,IAAa;AAEjB,SAAId,MAAU,SACZc,IAAaV,EAAQJ,CAAK,IACjBC,MAAU,SACnBa,IAAaT,EAAQJ,CAAK,IACjBC,MAAO,SACZ,MAAM,QAAQA,CAAE,IAClBY,IAAaZ,EAAG,KAAK,CAACQ,MAAOJ,EAAKI,CAAE,CAAC,IAErCI,IAAaR,EAAKJ,CAAE,IAEbC,MAAY,WACrBW,IAAaP,EAAUJ,EAAQ,CAAC,GAAGA,EAAQ,CAAC,CAAC,IAGxCW,IAAa,OAAO,gBAAAH,EAAAC,GAAA,EAAG,UAAAb,EAAA,CAAS;AACzC;"}
@@ -0,0 +1,34 @@
1
+ import { default as React } from 'react';
2
+ export type ResponsiveDrawerBreakpoint = 'sm' | 'md' | 'lg' | 'xl' | '2xl';
3
+ export interface ResponsiveDrawerProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> {
4
+ /** Main content area */
5
+ children: React.ReactNode;
6
+ /** Sidebar content */
7
+ sidebar: React.ReactNode;
8
+ /** Controlled open state */
9
+ open?: boolean;
10
+ /** Callback when open state changes */
11
+ onOpenChange?: (open: boolean) => void;
12
+ /** Position sidebar on the right side */
13
+ end?: boolean;
14
+ /** Width of the sidebar */
15
+ width?: number | string;
16
+ /** Breakpoint at which sidebar becomes always visible (e.g., 'lg' for lg:drawer-open) */
17
+ responsive?: ResponsiveDrawerBreakpoint;
18
+ /** Additional classes for sidebar container */
19
+ sidebarClassName?: string;
20
+ /** Additional classes for content area */
21
+ contentClassName?: string;
22
+ /** Additional classes for the overlay */
23
+ overlayClassName?: string;
24
+ /** Unique ID for the drawer (auto-generated if not provided) */
25
+ id?: string;
26
+ /** Test ID for testing */
27
+ 'data-testid'?: string;
28
+ }
29
+ /**
30
+ * ResponsiveDrawer - A responsive sidebar layout using DaisyUI's drawer.
31
+ * Use for navigation sidebars that toggle on mobile but can be always visible on larger screens.
32
+ * For overlay panel drawers (forms, details), use the Drawer component instead.
33
+ */
34
+ export declare const ResponsiveDrawer: React.ForwardRefExoticComponent<ResponsiveDrawerProps & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,75 @@
1
+ import { jsxs as t, jsx as e } from "react/jsx-runtime";
2
+ import B, { forwardRef as R } from "react";
3
+ const T = "d-drawer", k = "d-drawer-end", I = "d-drawer-toggle", S = "d-drawer-content", E = "d-drawer-side", F = "d-drawer-overlay", O = R(
4
+ ({
5
+ children: n,
6
+ sidebar: i,
7
+ open: r = !1,
8
+ onOpenChange: c,
9
+ end: s = !1,
10
+ width: a = 320,
11
+ responsive: o,
12
+ className: w = "",
13
+ sidebarClassName: m = "",
14
+ contentClassName: p = "",
15
+ overlayClassName: g = "",
16
+ id: f,
17
+ "data-testid": h,
18
+ ...b
19
+ }, v) => {
20
+ const x = B.useId(), d = f || x, y = (u) => {
21
+ c?.(u.target.checked);
22
+ }, C = [
23
+ T,
24
+ s && k,
25
+ o && {
26
+ sm: "sm:drawer-open",
27
+ md: "md:drawer-open",
28
+ lg: "lg:drawer-open",
29
+ xl: "xl:drawer-open",
30
+ "2xl": "2xl:drawer-open"
31
+ }[o],
32
+ w
33
+ ].filter(Boolean).join(" "), D = ["bg-base-200 min-h-full p-4", m].filter(Boolean).join(" "), N = [S, p].filter(Boolean).join(" "), j = [F, g].filter(Boolean).join(" "), l = typeof a == "number" ? `${a}px` : a;
34
+ return /* @__PURE__ */ t(
35
+ "div",
36
+ {
37
+ ref: v,
38
+ className: C,
39
+ "data-state": r ? "open" : "closed",
40
+ "data-testid": h,
41
+ ...b,
42
+ children: [
43
+ /* @__PURE__ */ e(
44
+ "input",
45
+ {
46
+ id: d,
47
+ type: "checkbox",
48
+ className: I,
49
+ checked: r,
50
+ onChange: y,
51
+ "aria-label": s ? "Toggle right sidebar" : "Toggle sidebar"
52
+ }
53
+ ),
54
+ /* @__PURE__ */ e("div", { className: N, children: n }),
55
+ /* @__PURE__ */ t("div", { className: E, style: { "--drawer-width": l }, children: [
56
+ /* @__PURE__ */ e(
57
+ "label",
58
+ {
59
+ htmlFor: d,
60
+ "aria-label": "Close sidebar",
61
+ className: j
62
+ }
63
+ ),
64
+ /* @__PURE__ */ e("div", { className: D, style: { width: l }, children: i })
65
+ ] })
66
+ ]
67
+ }
68
+ );
69
+ }
70
+ );
71
+ O.displayName = "ResponsiveDrawer";
72
+ export {
73
+ O as ResponsiveDrawer
74
+ };
75
+ //# sourceMappingURL=ResponsiveDrawer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResponsiveDrawer.js","sources":["../../src/components/ResponsiveDrawer.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\n\n// DaisyUI classes\nconst dDrawer = 'd-drawer'\nconst dDrawerEnd = 'd-drawer-end'\nconst dDrawerToggle = 'd-drawer-toggle'\nconst dDrawerContent = 'd-drawer-content'\nconst dDrawerSide = 'd-drawer-side'\nconst dDrawerOverlay = 'd-drawer-overlay'\n\nexport type ResponsiveDrawerBreakpoint = 'sm' | 'md' | 'lg' | 'xl' | '2xl'\n\nexport interface ResponsiveDrawerProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> {\n /** Main content area */\n children: React.ReactNode\n /** Sidebar content */\n sidebar: React.ReactNode\n /** Controlled open state */\n open?: boolean\n /** Callback when open state changes */\n onOpenChange?: (open: boolean) => void\n /** Position sidebar on the right side */\n end?: boolean\n /** Width of the sidebar */\n width?: number | string\n /** Breakpoint at which sidebar becomes always visible (e.g., 'lg' for lg:drawer-open) */\n responsive?: ResponsiveDrawerBreakpoint\n /** Additional classes for sidebar container */\n sidebarClassName?: string\n /** Additional classes for content area */\n contentClassName?: string\n /** Additional classes for the overlay */\n overlayClassName?: string\n /** Unique ID for the drawer (auto-generated if not provided) */\n id?: string\n /** Test ID for testing */\n 'data-testid'?: string\n}\n\n/**\n * ResponsiveDrawer - A responsive sidebar layout using DaisyUI's drawer.\n * Use for navigation sidebars that toggle on mobile but can be always visible on larger screens.\n * For overlay panel drawers (forms, details), use the Drawer component instead.\n */\nexport const ResponsiveDrawer = forwardRef<HTMLDivElement, ResponsiveDrawerProps>(\n (\n {\n children,\n sidebar,\n open = false,\n onOpenChange,\n end = false,\n width = 320,\n responsive,\n className = '',\n sidebarClassName = '',\n contentClassName = '',\n overlayClassName = '',\n id,\n 'data-testid': testId,\n ...rest\n },\n ref\n ) => {\n const autoId = React.useId()\n const drawerId = id || autoId\n\n const handleToggle = (e: React.ChangeEvent<HTMLInputElement>) => {\n onOpenChange?.(e.target.checked)\n }\n\n // Build responsive class if specified\n const responsiveClasses: Record<ResponsiveDrawerBreakpoint, string> = {\n sm: 'sm:drawer-open',\n md: 'md:drawer-open',\n lg: 'lg:drawer-open',\n xl: 'xl:drawer-open',\n '2xl': '2xl:drawer-open',\n }\n\n const drawerClasses = [\n dDrawer,\n end && dDrawerEnd,\n responsive && responsiveClasses[responsive],\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n const sidebarClasses = ['bg-base-200 min-h-full p-4', sidebarClassName]\n .filter(Boolean)\n .join(' ')\n\n const contentClasses = [dDrawerContent, contentClassName]\n .filter(Boolean)\n .join(' ')\n\n const overlayClasses = [dDrawerOverlay, overlayClassName]\n .filter(Boolean)\n .join(' ')\n\n // Calculate width style\n const widthStyle = typeof width === 'number' ? `${width}px` : width\n\n return (\n <div\n ref={ref}\n className={drawerClasses}\n data-state={open ? 'open' : 'closed'}\n data-testid={testId}\n {...rest}\n >\n <input\n id={drawerId}\n type=\"checkbox\"\n className={dDrawerToggle}\n checked={open}\n onChange={handleToggle}\n aria-label={end ? 'Toggle right sidebar' : 'Toggle sidebar'}\n />\n <div className={contentClasses}>{children}</div>\n <div className={dDrawerSide} style={{ '--drawer-width': widthStyle } as React.CSSProperties}>\n <label\n htmlFor={drawerId}\n aria-label=\"Close sidebar\"\n className={overlayClasses}\n />\n <div className={sidebarClasses} style={{ width: widthStyle }}>\n {sidebar}\n </div>\n </div>\n </div>\n )\n }\n)\n\nResponsiveDrawer.displayName = 'ResponsiveDrawer'\n"],"names":["dDrawer","dDrawerEnd","dDrawerToggle","dDrawerContent","dDrawerSide","dDrawerOverlay","ResponsiveDrawer","forwardRef","children","sidebar","open","onOpenChange","end","width","responsive","className","sidebarClassName","contentClassName","overlayClassName","id","testId","rest","ref","autoId","React","drawerId","handleToggle","e","drawerClasses","sidebarClasses","contentClasses","overlayClasses","widthStyle","jsxs","jsx"],"mappings":";;AAGA,MAAMA,IAAU,YACVC,IAAa,gBACbC,IAAgB,mBAChBC,IAAiB,oBACjBC,IAAc,iBACdC,IAAiB,oBAoCVC,IAAmBC;AAAA,EAC9B,CACE;AAAA,IACE,UAAAC;AAAA,IACA,SAAAC;AAAA,IACA,MAAAC,IAAO;AAAA,IACP,cAAAC;AAAA,IACA,KAAAC,IAAM;AAAA,IACN,OAAAC,IAAQ;AAAA,IACR,YAAAC;AAAA,IACA,WAAAC,IAAY;AAAA,IACZ,kBAAAC,IAAmB;AAAA,IACnB,kBAAAC,IAAmB;AAAA,IACnB,kBAAAC,IAAmB;AAAA,IACnB,IAAAC;AAAA,IACA,eAAeC;AAAA,IACf,GAAGC;AAAA,EAAA,GAELC,MACG;AACH,UAAMC,IAASC,EAAM,MAAA,GACfC,IAAWN,KAAMI,GAEjBG,IAAe,CAACC,MAA2C;AAC/D,MAAAhB,IAAegB,EAAE,OAAO,OAAO;AAAA,IACjC,GAWMC,IAAgB;AAAA,MACpB5B;AAAA,MACAY,KAAOX;AAAA,MACPa,KAXoE;AAAA,QACpE,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,OAAO;AAAA,MAAA,EAMyBA,CAAU;AAAA,MAC1CC;AAAA,IAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG,GAELc,IAAiB,CAAC,8BAA8Bb,CAAgB,EACnE,OAAO,OAAO,EACd,KAAK,GAAG,GAELc,IAAiB,CAAC3B,GAAgBc,CAAgB,EACrD,OAAO,OAAO,EACd,KAAK,GAAG,GAELc,IAAiB,CAAC1B,GAAgBa,CAAgB,EACrD,OAAO,OAAO,EACd,KAAK,GAAG,GAGLc,IAAa,OAAOnB,KAAU,WAAW,GAAGA,CAAK,OAAOA;AAE9D,WACE,gBAAAoB;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAAX;AAAA,QACA,WAAWM;AAAA,QACX,cAAYlB,IAAO,SAAS;AAAA,QAC5B,eAAaU;AAAA,QACZ,GAAGC;AAAA,QAEJ,UAAA;AAAA,UAAA,gBAAAa;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,IAAIT;AAAA,cACJ,MAAK;AAAA,cACL,WAAWvB;AAAA,cACX,SAASQ;AAAA,cACT,UAAUgB;AAAA,cACV,cAAYd,IAAM,yBAAyB;AAAA,YAAA;AAAA,UAAA;AAAA,UAE7C,gBAAAsB,EAAC,OAAA,EAAI,WAAWJ,GAAiB,UAAAtB,EAAA,CAAS;AAAA,UAC1C,gBAAAyB,EAAC,SAAI,WAAW7B,GAAa,OAAO,EAAE,kBAAkB4B,KACtD,UAAA;AAAA,YAAA,gBAAAE;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,SAAST;AAAA,gBACT,cAAW;AAAA,gBACX,WAAWM;AAAA,cAAA;AAAA,YAAA;AAAA,YAEb,gBAAAG,EAAC,SAAI,WAAWL,GAAgB,OAAO,EAAE,OAAOG,EAAA,GAC7C,UAAAvB,EAAA,CACH;AAAA,UAAA,EAAA,CACF;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AACF;AAEAH,EAAiB,cAAc;"}
@@ -0,0 +1,12 @@
1
+ import { default as React } from 'react';
2
+ export type ResultStatus = 'success' | 'error' | 'info' | 'warning' | '404' | '403' | '500';
3
+ export interface ResultProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {
4
+ status?: ResultStatus;
5
+ title?: React.ReactNode;
6
+ subTitle?: React.ReactNode;
7
+ icon?: React.ReactNode;
8
+ extra?: React.ReactNode;
9
+ children?: React.ReactNode;
10
+ }
11
+ export declare const Result: React.FC<ResultProps>;
12
+ export default Result;
@@ -0,0 +1,110 @@
1
+ import { jsxs as d, jsx as e } from "react/jsx-runtime";
2
+ const m = {
3
+ success: /* @__PURE__ */ e(
4
+ "svg",
5
+ {
6
+ className: "w-16 h-16 text-success",
7
+ fill: "none",
8
+ viewBox: "0 0 24 24",
9
+ stroke: "currentColor",
10
+ children: /* @__PURE__ */ e(
11
+ "path",
12
+ {
13
+ strokeLinecap: "round",
14
+ strokeLinejoin: "round",
15
+ strokeWidth: 2,
16
+ d: "M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"
17
+ }
18
+ )
19
+ }
20
+ ),
21
+ error: /* @__PURE__ */ e(
22
+ "svg",
23
+ {
24
+ className: "w-16 h-16 text-error",
25
+ fill: "none",
26
+ viewBox: "0 0 24 24",
27
+ stroke: "currentColor",
28
+ children: /* @__PURE__ */ e(
29
+ "path",
30
+ {
31
+ strokeLinecap: "round",
32
+ strokeLinejoin: "round",
33
+ strokeWidth: 2,
34
+ d: "M10 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2m7-2a9 9 0 11-18 0 9 9 0 0118 0z"
35
+ }
36
+ )
37
+ }
38
+ ),
39
+ info: /* @__PURE__ */ e(
40
+ "svg",
41
+ {
42
+ className: "w-16 h-16 text-info",
43
+ fill: "none",
44
+ viewBox: "0 0 24 24",
45
+ stroke: "currentColor",
46
+ children: /* @__PURE__ */ e(
47
+ "path",
48
+ {
49
+ strokeLinecap: "round",
50
+ strokeLinejoin: "round",
51
+ strokeWidth: 2,
52
+ d: "M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"
53
+ }
54
+ )
55
+ }
56
+ ),
57
+ warning: /* @__PURE__ */ e(
58
+ "svg",
59
+ {
60
+ className: "w-16 h-16 text-warning",
61
+ fill: "none",
62
+ viewBox: "0 0 24 24",
63
+ stroke: "currentColor",
64
+ children: /* @__PURE__ */ e(
65
+ "path",
66
+ {
67
+ strokeLinecap: "round",
68
+ strokeLinejoin: "round",
69
+ strokeWidth: 2,
70
+ d: "M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"
71
+ }
72
+ )
73
+ }
74
+ ),
75
+ 404: /* @__PURE__ */ e("div", { className: "text-6xl font-bold text-base-content/40", children: "404" }),
76
+ 403: /* @__PURE__ */ e("div", { className: "text-6xl font-bold text-base-content/40", children: "403" }),
77
+ 500: /* @__PURE__ */ e("div", { className: "text-6xl font-bold text-base-content/40", children: "500" })
78
+ }, x = ({
79
+ status: t = "info",
80
+ title: n,
81
+ subTitle: s,
82
+ icon: o,
83
+ extra: r,
84
+ children: l,
85
+ className: i = "",
86
+ ...c
87
+ }) => {
88
+ const a = o !== void 0 ? o : m[t];
89
+ return /* @__PURE__ */ d(
90
+ "div",
91
+ {
92
+ className: `w-full flex flex-col items-center justify-center text-center p-8 ${i}`,
93
+ "data-status": t,
94
+ ...c,
95
+ children: [
96
+ a && /* @__PURE__ */ e("div", { className: "mb-6", children: a }),
97
+ n && /* @__PURE__ */ e("div", { className: "text-2xl font-semibold mb-2 text-base-content", children: n }),
98
+ s && /* @__PURE__ */ e("div", { className: "text-base text-base-content/70 mb-6 max-w-md", children: s }),
99
+ l && /* @__PURE__ */ e("div", { className: "mb-6 max-w-2xl", children: l }),
100
+ r && /* @__PURE__ */ e("div", { className: "flex gap-2", children: r })
101
+ ]
102
+ }
103
+ );
104
+ };
105
+ x.displayName = "Result";
106
+ export {
107
+ x as Result,
108
+ x as default
109
+ };
110
+ //# sourceMappingURL=Result.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Result.js","sources":["../../src/components/Result.tsx"],"sourcesContent":["import React from 'react'\n\nexport type ResultStatus = 'success' | 'error' | 'info' | 'warning' | '404' | '403' | '500'\n\nexport interface ResultProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {\n status?: ResultStatus\n title?: React.ReactNode\n subTitle?: React.ReactNode\n icon?: React.ReactNode\n extra?: React.ReactNode\n children?: React.ReactNode\n}\n\nconst defaultIcons: Record<ResultStatus, React.ReactNode> = {\n success: (\n <svg\n className=\"w-16 h-16 text-success\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z\"\n />\n </svg>\n ),\n error: (\n <svg\n className=\"w-16 h-16 text-error\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M10 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2m7-2a9 9 0 11-18 0 9 9 0 0118 0z\"\n />\n </svg>\n ),\n info: (\n <svg\n className=\"w-16 h-16 text-info\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"\n />\n </svg>\n ),\n warning: (\n <svg\n className=\"w-16 h-16 text-warning\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z\"\n />\n </svg>\n ),\n '404': (\n <div className=\"text-6xl font-bold text-base-content/40\">404</div>\n ),\n '403': (\n <div className=\"text-6xl font-bold text-base-content/40\">403</div>\n ),\n '500': (\n <div className=\"text-6xl font-bold text-base-content/40\">500</div>\n ),\n}\n\nexport const Result: React.FC<ResultProps> = ({\n status = 'info',\n title,\n subTitle,\n icon,\n extra,\n children,\n className = '',\n ...rest\n}) => {\n const displayIcon = icon !== undefined ? icon : defaultIcons[status]\n\n return (\n <div\n className={`w-full flex flex-col items-center justify-center text-center p-8 ${className}`}\n data-status={status}\n {...rest}\n >\n {displayIcon && <div className=\"mb-6\">{displayIcon}</div>}\n\n {title && (\n <div className=\"text-2xl font-semibold mb-2 text-base-content\">\n {title}\n </div>\n )}\n\n {subTitle && (\n <div className=\"text-base text-base-content/70 mb-6 max-w-md\">\n {subTitle}\n </div>\n )}\n\n {children && <div className=\"mb-6 max-w-2xl\">{children}</div>}\n\n {extra && <div className=\"flex gap-2\">{extra}</div>}\n </div>\n )\n}\n\nResult.displayName = 'Result'\n\nexport default Result\n"],"names":["defaultIcons","jsx","Result","status","title","subTitle","icon","extra","children","className","rest","displayIcon","jsxs"],"mappings":";AAaA,MAAMA,IAAsD;AAAA,EAC1D,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,MAAK;AAAA,MACL,SAAQ;AAAA,MACR,QAAO;AAAA,MAEP,UAAA,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,eAAc;AAAA,UACd,gBAAe;AAAA,UACf,aAAa;AAAA,UACb,GAAE;AAAA,QAAA;AAAA,MAAA;AAAA,IACJ;AAAA,EAAA;AAAA,EAGJ,OACE,gBAAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,MAAK;AAAA,MACL,SAAQ;AAAA,MACR,QAAO;AAAA,MAEP,UAAA,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,eAAc;AAAA,UACd,gBAAe;AAAA,UACf,aAAa;AAAA,UACb,GAAE;AAAA,QAAA;AAAA,MAAA;AAAA,IACJ;AAAA,EAAA;AAAA,EAGJ,MACE,gBAAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,MAAK;AAAA,MACL,SAAQ;AAAA,MACR,QAAO;AAAA,MAEP,UAAA,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,eAAc;AAAA,UACd,gBAAe;AAAA,UACf,aAAa;AAAA,UACb,GAAE;AAAA,QAAA;AAAA,MAAA;AAAA,IACJ;AAAA,EAAA;AAAA,EAGJ,SACE,gBAAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,MAAK;AAAA,MACL,SAAQ;AAAA,MACR,QAAO;AAAA,MAEP,UAAA,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,eAAc;AAAA,UACd,gBAAe;AAAA,UACf,aAAa;AAAA,UACb,GAAE;AAAA,QAAA;AAAA,MAAA;AAAA,IACJ;AAAA,EAAA;AAAA,EAGJ,KACE,gBAAAA,EAAC,OAAA,EAAI,WAAU,2CAA0C,UAAA,OAAG;AAAA,EAE9D,KACE,gBAAAA,EAAC,OAAA,EAAI,WAAU,2CAA0C,UAAA,OAAG;AAAA,EAE9D,KACE,gBAAAA,EAAC,OAAA,EAAI,WAAU,2CAA0C,UAAA,MAAA,CAAG;AAEhE,GAEaC,IAAgC,CAAC;AAAA,EAC5C,QAAAC,IAAS;AAAA,EACT,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,MAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,GAAGC;AACL,MAAM;AACJ,QAAMC,IAAcL,MAAS,SAAYA,IAAON,EAAaG,CAAM;AAEnE,SACE,gBAAAS;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,oEAAoEH,CAAS;AAAA,MACxF,eAAaN;AAAA,MACZ,GAAGO;AAAA,MAEH,UAAA;AAAA,QAAAC,KAAe,gBAAAV,EAAC,OAAA,EAAI,WAAU,QAAQ,UAAAU,GAAY;AAAA,QAElDP,KACC,gBAAAH,EAAC,OAAA,EAAI,WAAU,iDACZ,UAAAG,GACH;AAAA,QAGDC,KACC,gBAAAJ,EAAC,OAAA,EAAI,WAAU,gDACZ,UAAAI,GACH;AAAA,QAGDG,KAAY,gBAAAP,EAAC,OAAA,EAAI,WAAU,kBAAkB,UAAAO,GAAS;AAAA,QAEtDD,KAAS,gBAAAN,EAAC,OAAA,EAAI,WAAU,cAAc,UAAAM,EAAA,CAAM;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGnD;AAEAL,EAAO,cAAc;"}
@@ -0,0 +1,32 @@
1
+ import { default as React } from 'react';
2
+ import { Editor } from '@tiptap/react';
3
+ export type ToolbarItem = 'bold' | 'italic' | 'underline' | 'strikethrough' | 'code' | 'heading1' | 'heading2' | 'heading3' | 'bulletList' | 'orderedList' | 'blockquote' | 'codeBlock' | 'horizontalRule' | 'link' | 'undo' | 'redo' | '|';
4
+ export interface RichTextEditorProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {
5
+ /** Initial HTML content */
6
+ value?: string;
7
+ /** Callback when content changes */
8
+ onChange?: (html: string) => void;
9
+ /** Placeholder text */
10
+ placeholder?: string;
11
+ /** Toolbar items to display */
12
+ toolbar?: ToolbarItem[];
13
+ /** Hide the toolbar */
14
+ hideToolbar?: boolean;
15
+ /** Make editor read-only */
16
+ readOnly?: boolean;
17
+ /** Auto focus on mount */
18
+ autoFocus?: boolean;
19
+ /** Minimum height of the editor */
20
+ minHeight?: string | number;
21
+ /** Maximum height of the editor (enables scrolling) */
22
+ maxHeight?: string | number;
23
+ /** Editor size variant */
24
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
25
+ /** Show border around editor */
26
+ bordered?: boolean;
27
+ /** Callback with editor instance */
28
+ onEditorReady?: (editor: Editor) => void;
29
+ 'data-testid'?: string;
30
+ }
31
+ export declare const RichTextEditor: React.ForwardRefExoticComponent<RichTextEditorProps & React.RefAttributes<HTMLDivElement>>;
32
+ export default RichTextEditor;