@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 @@
1
+ {"version":3,"file":"TextRotate.js","sources":["../../src/components/TextRotate.tsx"],"sourcesContent":["import React from 'react'\n\n// DaisyUI classes\nconst dTextRotate = 'd-text-rotate'\n\nexport type TextRotateDuration = 6000 | 9000 | 12000 | 15000 | 18000\n\nconst durationClasses: Record<TextRotateDuration, string> = {\n 6000: 'duration-6000',\n 9000: 'duration-9000',\n 12000: 'duration-12000',\n 15000: 'duration-15000',\n 18000: 'duration-18000',\n}\n\nexport interface TextRotateProps {\n /** Text items to rotate through (max 6) */\n items: React.ReactNode[]\n /** Animation duration in ms (default 10000) */\n duration?: TextRotateDuration\n /** Center text horizontally */\n centered?: boolean\n /** Additional CSS classes */\n className?: string\n}\n\nexport const TextRotate: React.FC<TextRotateProps> = ({\n items,\n duration,\n centered = false,\n className = '',\n}) => {\n const durationClass = duration ? durationClasses[duration] : ''\n\n return (\n <span\n className={`${dTextRotate} ${durationClass} ${centered ? 'justify-items-center' : ''} ${className}`.trim()}\n >\n <span>\n {items.slice(0, 6).map((item, index) => (\n <span key={index}>{item}</span>\n ))}\n </span>\n </span>\n )\n}\n"],"names":["dTextRotate","durationClasses","TextRotate","items","duration","centered","className","durationClass","jsx","item","index"],"mappings":";AAGA,MAAMA,IAAc,iBAIdC,IAAsD;AAAA,EAC1D,KAAM;AAAA,EACN,KAAM;AAAA,EACN,MAAO;AAAA,EACP,MAAO;AAAA,EACP,MAAO;AACT,GAaaC,IAAwC,CAAC;AAAA,EACpD,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,WAAAC,IAAY;AACd,MAAM;AACJ,QAAMC,IAAgBH,IAAWH,EAAgBG,CAAQ,IAAI;AAE7D,SACE,gBAAAI;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,GAAGR,CAAW,IAAIO,CAAa,IAAIF,IAAW,yBAAyB,EAAE,IAAIC,CAAS,GAAG,KAAA;AAAA,MAEpG,4BAAC,QAAA,EACE,UAAAH,EAAM,MAAM,GAAG,CAAC,EAAE,IAAI,CAACM,GAAMC,MAC5B,gBAAAF,EAAC,QAAA,EAAkB,UAAAC,EAAA,GAARC,CAAa,CACzB,EAAA,CACH;AAAA,IAAA;AAAA,EAAA;AAGN;"}
@@ -0,0 +1,9 @@
1
+ import { default as React } from 'react';
2
+ export interface TextareaProps extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, 'size'> {
3
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
4
+ color?: 'neutral' | 'primary' | 'secondary' | 'accent' | 'info' | 'success' | 'warning' | 'error';
5
+ ghost?: boolean;
6
+ bordered?: boolean;
7
+ className?: string;
8
+ }
9
+ export declare const Textarea: React.ForwardRefExoticComponent<TextareaProps & React.RefAttributes<HTMLTextAreaElement>>;
@@ -0,0 +1,44 @@
1
+ import { jsx as m } from "react/jsx-runtime";
2
+ import { forwardRef as T } from "react";
3
+ import { useConfig as f } from "./ConfigProvider.js";
4
+ const u = "d-textarea", g = "d-textarea-bordered", p = "d-textarea-ghost", y = "d-textarea-xs", S = "d-textarea-sm", w = "d-textarea-md", C = "d-textarea-lg", z = "d-textarea-xl", N = "d-textarea-neutral", h = "d-textarea-primary", j = "d-textarea-secondary", B = "d-textarea-accent", X = "d-textarea-info", b = "d-textarea-success", v = "d-textarea-warning", A = "d-textarea-error", E = T(
5
+ ({
6
+ size: t,
7
+ color: e,
8
+ ghost: r = !1,
9
+ bordered: s = !0,
10
+ className: o = "",
11
+ ...d
12
+ }, n) => {
13
+ const { componentSize: x } = f(), a = t ?? x ?? "md", c = {
14
+ xs: y,
15
+ sm: S,
16
+ md: w,
17
+ lg: C,
18
+ xl: z
19
+ }, i = {
20
+ neutral: N,
21
+ primary: h,
22
+ secondary: j,
23
+ accent: B,
24
+ info: X,
25
+ success: b,
26
+ warning: v,
27
+ error: A
28
+ }, l = [
29
+ u,
30
+ "w-full",
31
+ s && g,
32
+ r && p,
33
+ a && c[a],
34
+ e && i[e],
35
+ o
36
+ ].filter(Boolean).join(" ");
37
+ return /* @__PURE__ */ m("textarea", { ref: n, className: l, ...d });
38
+ }
39
+ );
40
+ E.displayName = "Textarea";
41
+ export {
42
+ E as Textarea
43
+ };
44
+ //# sourceMappingURL=Textarea.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Textarea.js","sources":["../../src/components/Textarea.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\nimport { useConfig } from './ConfigProvider'\n\n// DaisyUI classes\nconst dTextarea = 'd-textarea'\nconst dTextareaBordered = 'd-textarea-bordered'\nconst dTextareaGhost = 'd-textarea-ghost'\nconst dTextareaXs = 'd-textarea-xs'\nconst dTextareaSm = 'd-textarea-sm'\nconst dTextareaMd = 'd-textarea-md'\nconst dTextareaLg = 'd-textarea-lg'\nconst dTextareaXl = 'd-textarea-xl'\nconst dTextareaNeutral = 'd-textarea-neutral'\nconst dTextareaPrimary = 'd-textarea-primary'\nconst dTextareaSecondary = 'd-textarea-secondary'\nconst dTextareaAccent = 'd-textarea-accent'\nconst dTextareaInfo = 'd-textarea-info'\nconst dTextareaSuccess = 'd-textarea-success'\nconst dTextareaWarning = 'd-textarea-warning'\nconst dTextareaError = 'd-textarea-error'\n\nexport interface TextareaProps extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, 'size'> {\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 Textarea = forwardRef<HTMLTextAreaElement, TextareaProps>(\n (\n {\n size,\n color,\n ghost = false,\n bordered = true,\n className = '',\n ...props\n },\n ref\n ) => {\n const { componentSize } = useConfig()\n const effectiveSize = size ?? componentSize ?? 'md'\n\n const sizeClasses = {\n xs: dTextareaXs,\n sm: dTextareaSm,\n md: dTextareaMd,\n lg: dTextareaLg,\n xl: dTextareaXl,\n }\n\n const colorClasses = {\n neutral: dTextareaNeutral,\n primary: dTextareaPrimary,\n secondary: dTextareaSecondary,\n accent: dTextareaAccent,\n info: dTextareaInfo,\n success: dTextareaSuccess,\n warning: dTextareaWarning,\n error: dTextareaError,\n }\n\n const textareaClasses = [\n dTextarea,\n 'w-full',\n bordered && dTextareaBordered,\n ghost && dTextareaGhost,\n effectiveSize && sizeClasses[effectiveSize],\n color && colorClasses[color],\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n return <textarea ref={ref} className={textareaClasses} {...props} />\n }\n)\n\nTextarea.displayName = 'Textarea'\n"],"names":["dTextarea","dTextareaBordered","dTextareaGhost","dTextareaXs","dTextareaSm","dTextareaMd","dTextareaLg","dTextareaXl","dTextareaNeutral","dTextareaPrimary","dTextareaSecondary","dTextareaAccent","dTextareaInfo","dTextareaSuccess","dTextareaWarning","dTextareaError","Textarea","forwardRef","size","color","ghost","bordered","className","props","ref","componentSize","useConfig","effectiveSize","sizeClasses","colorClasses","textareaClasses"],"mappings":";;;AAIA,MAAMA,IAAY,cACZC,IAAoB,uBACpBC,IAAiB,oBACjBC,IAAc,iBACdC,IAAc,iBACdC,IAAc,iBACdC,IAAc,iBACdC,IAAc,iBACdC,IAAmB,sBACnBC,IAAmB,sBACnBC,IAAqB,wBACrBC,IAAkB,qBAClBC,IAAgB,mBAChBC,IAAmB,sBACnBC,IAAmB,sBACnBC,IAAiB,oBAUVC,IAAWC;AAAA,EACtB,CACE;AAAA,IACE,MAAAC;AAAA,IACA,OAAAC;AAAA,IACA,OAAAC,IAAQ;AAAA,IACR,UAAAC,IAAW;AAAA,IACX,WAAAC,IAAY;AAAA,IACZ,GAAGC;AAAA,EAAA,GAELC,MACG;AACH,UAAM,EAAE,eAAAC,EAAA,IAAkBC,EAAA,GACpBC,IAAgBT,KAAQO,KAAiB,MAEzCG,IAAc;AAAA,MAClB,IAAIzB;AAAA,MACJ,IAAIC;AAAA,MACJ,IAAIC;AAAA,MACJ,IAAIC;AAAA,MACJ,IAAIC;AAAA,IAAA,GAGAsB,IAAe;AAAA,MACnB,SAASrB;AAAA,MACT,SAASC;AAAA,MACT,WAAWC;AAAA,MACX,QAAQC;AAAA,MACR,MAAMC;AAAA,MACN,SAASC;AAAA,MACT,SAASC;AAAA,MACT,OAAOC;AAAA,IAAA,GAGHe,IAAkB;AAAA,MACtB9B;AAAA,MACA;AAAA,MACAqB,KAAYpB;AAAA,MACZmB,KAASlB;AAAA,MACTyB,KAAiBC,EAAYD,CAAa;AAAA,MAC1CR,KAASU,EAAaV,CAAK;AAAA,MAC3BG;AAAA,IAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,6BAAQ,YAAA,EAAS,KAAAE,GAAU,WAAWM,GAAkB,GAAGP,GAAO;AAAA,EACpE;AACF;AAEAP,EAAS,cAAc;"}
@@ -0,0 +1,28 @@
1
+ export interface ThemeControllerSwapProps {
2
+ lightTheme?: string;
3
+ darkTheme?: string;
4
+ onChange?: (theme: string) => void;
5
+ className?: string;
6
+ }
7
+ export interface ThemeControllerDropdownProps {
8
+ themes: string[];
9
+ defaultTheme?: string;
10
+ onChange?: (theme: string) => void;
11
+ className?: string;
12
+ }
13
+ export interface ThemeControllerToggleProps {
14
+ lightTheme?: string;
15
+ darkTheme?: string;
16
+ onChange?: (theme: string) => void;
17
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
18
+ className?: string;
19
+ }
20
+ declare function ThemeControllerSwap({ lightTheme, darkTheme, onChange, className, }: ThemeControllerSwapProps): import("react/jsx-runtime").JSX.Element;
21
+ declare function ThemeControllerDropdown({ themes, defaultTheme, onChange, className, }: ThemeControllerDropdownProps): import("react/jsx-runtime").JSX.Element;
22
+ declare function ThemeControllerToggle({ lightTheme, darkTheme, onChange, size, className, }: ThemeControllerToggleProps): import("react/jsx-runtime").JSX.Element;
23
+ export declare const ThemeController: {
24
+ Swap: typeof ThemeControllerSwap;
25
+ Dropdown: typeof ThemeControllerDropdown;
26
+ Toggle: typeof ThemeControllerToggle;
27
+ };
28
+ export {};
@@ -0,0 +1,162 @@
1
+ import { jsx as o, jsxs as m } from "react/jsx-runtime";
2
+ import { useState as h, useEffect as w, useId as x } from "react";
3
+ import { useConfig as A } from "./ConfigProvider.js";
4
+ const $ = "d-swap", k = "d-swap-rotate", C = "d-swap-off", M = "d-swap-on", S = "d-dropdown", T = "d-dropdown-end", Z = "d-dropdown-content", f = "d-btn", N = "d-btn-sm", D = "d-btn-block", B = "d-btn-ghost", E = "d-toggle", y = "d-toggle-xs", O = "d-toggle-sm", z = "d-toggle-md", I = "d-toggle-lg", j = "d-toggle-xl";
5
+ function a() {
6
+ return document.documentElement.getAttribute("data-theme");
7
+ }
8
+ function p(t) {
9
+ document.documentElement.setAttribute("data-theme", t);
10
+ }
11
+ function F({
12
+ lightTheme: t = "light",
13
+ darkTheme: n = "dark",
14
+ onChange: d,
15
+ className: l = ""
16
+ }) {
17
+ const [i, u] = h(() => a() === n);
18
+ w(() => {
19
+ const c = new MutationObserver(() => {
20
+ const e = a();
21
+ u(e === n);
22
+ });
23
+ return c.observe(document.documentElement, { attributes: !0, attributeFilter: ["data-theme"] }), () => c.disconnect();
24
+ }, [n]);
25
+ const s = (c) => {
26
+ const r = c.target.checked ? n : t;
27
+ p(r), d?.(r);
28
+ };
29
+ return /* @__PURE__ */ m("label", { className: `${$} ${k} ${l}`, children: [
30
+ /* @__PURE__ */ o(
31
+ "input",
32
+ {
33
+ type: "checkbox",
34
+ checked: i,
35
+ onChange: s
36
+ }
37
+ ),
38
+ /* @__PURE__ */ o(
39
+ "svg",
40
+ {
41
+ className: `${C} h-8 w-8 fill-current`,
42
+ xmlns: "http://www.w3.org/2000/svg",
43
+ viewBox: "0 0 24 24",
44
+ children: /* @__PURE__ */ o("path", { d: "M5.64,17l-.71.71a1,1,0,0,0,0,1.41,1,1,0,0,0,1.41,0l.71-.71A1,1,0,0,0,5.64,17ZM5,12a1,1,0,0,0-1-1H3a1,1,0,0,0,0,2H4A1,1,0,0,0,5,12Zm7-7a1,1,0,0,0,1-1V3a1,1,0,0,0-2,0V4A1,1,0,0,0,12,5ZM5.64,7.05a1,1,0,0,0,.7.29,1,1,0,0,0,.71-.29,1,1,0,0,0,0-1.41l-.71-.71A1,1,0,0,0,4.93,6.34Zm12,.29a1,1,0,0,0,.7-.29l.71-.71a1,1,0,1,0-1.41-1.41L17,5.64a1,1,0,0,0,0,1.41A1,1,0,0,0,17.66,7.34ZM21,11H20a1,1,0,0,0,0,2h1a1,1,0,0,0,0-2Zm-9,8a1,1,0,0,0-1,1v1a1,1,0,0,0,2,0V20A1,1,0,0,0,12,19ZM18.36,17A1,1,0,0,0,17,18.36l.71.71a1,1,0,0,0,1.41,0,1,1,0,0,0,0-1.41ZM12,6.5A5.5,5.5,0,1,0,17.5,12,5.51,5.51,0,0,0,12,6.5Zm0,9A3.5,3.5,0,1,1,15.5,12,3.5,3.5,0,0,1,12,15.5Z" })
45
+ }
46
+ ),
47
+ /* @__PURE__ */ o(
48
+ "svg",
49
+ {
50
+ className: `${M} h-8 w-8 fill-current`,
51
+ xmlns: "http://www.w3.org/2000/svg",
52
+ viewBox: "0 0 24 24",
53
+ children: /* @__PURE__ */ o("path", { d: "M21.64,13a1,1,0,0,0-1.05-.14,8.05,8.05,0,0,1-3.37.73A8.15,8.15,0,0,1,9.08,5.49a8.59,8.59,0,0,1,.25-2A1,1,0,0,0,8,2.36,10.14,10.14,0,1,0,22,14.05,1,1,0,0,0,21.64,13Zm-9.5,6.69A8.14,8.14,0,0,1,7.08,5.22v.27A10.15,10.15,0,0,0,17.22,15.63a9.79,9.79,0,0,0,2.1-.22A8.11,8.11,0,0,1,12.14,19.73Z" })
54
+ }
55
+ )
56
+ ] });
57
+ }
58
+ function H({
59
+ themes: t,
60
+ defaultTheme: n,
61
+ onChange: d,
62
+ className: l = ""
63
+ }) {
64
+ const i = x(), [u, s] = h(() => {
65
+ const e = a();
66
+ return e && t.includes(e) ? e : n || t[0] || "light";
67
+ });
68
+ w(() => {
69
+ const e = new MutationObserver(() => {
70
+ const r = a();
71
+ r && t.includes(r) && s(r);
72
+ });
73
+ return e.observe(document.documentElement, { attributes: !0, attributeFilter: ["data-theme"] }), () => e.disconnect();
74
+ }, [t]);
75
+ const c = (e) => {
76
+ s(e), p(e), d?.(e);
77
+ };
78
+ return /* @__PURE__ */ m("div", { className: `${S} ${T} ${l}`, children: [
79
+ /* @__PURE__ */ m("div", { tabIndex: 0, role: "button", className: f, children: [
80
+ "Theme",
81
+ /* @__PURE__ */ o(
82
+ "svg",
83
+ {
84
+ width: "12px",
85
+ height: "12px",
86
+ className: "inline-block h-2 w-2 fill-current opacity-60",
87
+ xmlns: "http://www.w3.org/2000/svg",
88
+ viewBox: "0 0 2048 2048",
89
+ children: /* @__PURE__ */ o("path", { d: "M1799 349l242 241-1017 1017L7 590l242-241 775 775 775-775z" })
90
+ }
91
+ )
92
+ ] }),
93
+ /* @__PURE__ */ o(
94
+ "ul",
95
+ {
96
+ tabIndex: 0,
97
+ className: `${Z} bg-base-300 rounded-box z-[1] w-52 p-2 shadow-2xl max-h-96 overflow-y-auto`,
98
+ children: t.map((e) => /* @__PURE__ */ o("li", { children: /* @__PURE__ */ o(
99
+ "input",
100
+ {
101
+ type: "radio",
102
+ name: i,
103
+ className: `${f} ${N} ${D} ${B} justify-start`,
104
+ "aria-label": e,
105
+ value: e,
106
+ checked: u === e,
107
+ onChange: () => c(e)
108
+ }
109
+ ) }, e))
110
+ }
111
+ )
112
+ ] });
113
+ }
114
+ const L = {
115
+ xs: y,
116
+ sm: O,
117
+ md: z,
118
+ lg: I,
119
+ xl: j
120
+ };
121
+ function V({
122
+ lightTheme: t = "light",
123
+ darkTheme: n = "dark",
124
+ onChange: d,
125
+ size: l,
126
+ className: i = ""
127
+ }) {
128
+ const { componentSize: u } = A(), s = l ?? u ?? "md", [c, e] = h(() => a() === n);
129
+ w(() => {
130
+ const g = new MutationObserver(() => {
131
+ const b = a();
132
+ e(b === n);
133
+ });
134
+ return g.observe(document.documentElement, { attributes: !0, attributeFilter: ["data-theme"] }), () => g.disconnect();
135
+ }, [n]);
136
+ const r = (g) => {
137
+ const v = g.target.checked ? n : t;
138
+ p(v), d?.(v);
139
+ };
140
+ return /* @__PURE__ */ o(
141
+ "input",
142
+ {
143
+ type: "checkbox",
144
+ className: `${E} ${L[s]} ${i}`,
145
+ checked: c,
146
+ onChange: r,
147
+ "aria-label": "Toggle theme"
148
+ }
149
+ );
150
+ }
151
+ const q = Object.assign(
152
+ {},
153
+ {
154
+ Swap: F,
155
+ Dropdown: H,
156
+ Toggle: V
157
+ }
158
+ );
159
+ export {
160
+ q as ThemeController
161
+ };
162
+ //# sourceMappingURL=ThemeController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThemeController.js","sources":["../../src/components/ThemeController.tsx"],"sourcesContent":["import React, { useState, useEffect, useId } from 'react'\nimport { useConfig } from './ConfigProvider'\n\n// DaisyUI classes\nconst dSwap = 'd-swap'\nconst dSwapRotate = 'd-swap-rotate'\nconst dSwapOff = 'd-swap-off'\nconst dSwapOn = 'd-swap-on'\nconst dDropdown = 'd-dropdown'\nconst dDropdownEnd = 'd-dropdown-end'\nconst dDropdownContent = 'd-dropdown-content'\nconst dBtn = 'd-btn'\nconst dBtnSm = 'd-btn-sm'\nconst dBtnBlock = 'd-btn-block'\nconst dBtnGhost = 'd-btn-ghost'\nconst dToggle = 'd-toggle'\nconst dToggleXs = 'd-toggle-xs'\nconst dToggleSm = 'd-toggle-sm'\nconst dToggleMd = 'd-toggle-md'\nconst dToggleLg = 'd-toggle-lg'\nconst dToggleXl = 'd-toggle-xl'\n\nexport interface ThemeControllerSwapProps {\n lightTheme?: string\n darkTheme?: string\n onChange?: (theme: string) => void\n className?: string\n}\n\nexport interface ThemeControllerDropdownProps {\n themes: string[]\n defaultTheme?: string\n onChange?: (theme: string) => void\n className?: string\n}\n\nexport interface ThemeControllerToggleProps {\n lightTheme?: string\n darkTheme?: string\n onChange?: (theme: string) => void\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl'\n className?: string\n}\n\n// Get current theme from document\nfunction getCurrentTheme(): string | null {\n return document.documentElement.getAttribute('data-theme')\n}\n\n// Set theme on document\nfunction setTheme(theme: string) {\n document.documentElement.setAttribute('data-theme', theme)\n}\n\nfunction ThemeControllerSwap({\n lightTheme = 'light',\n darkTheme = 'dark',\n onChange,\n className = '',\n}: ThemeControllerSwapProps) {\n const [isDark, setIsDark] = useState(() => {\n const current = getCurrentTheme()\n return current === darkTheme\n })\n\n // Sync with external theme changes\n useEffect(() => {\n const observer = new MutationObserver(() => {\n const current = getCurrentTheme()\n setIsDark(current === darkTheme)\n })\n observer.observe(document.documentElement, { attributes: true, attributeFilter: ['data-theme'] })\n return () => observer.disconnect()\n }, [darkTheme])\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const checked = e.target.checked\n const theme = checked ? darkTheme : lightTheme\n setTheme(theme)\n onChange?.(theme)\n }\n\n return (\n <label className={`${dSwap} ${dSwapRotate} ${className}`}>\n <input\n type=\"checkbox\"\n checked={isDark}\n onChange={handleChange}\n />\n {/* sun icon */}\n <svg\n className={`${dSwapOff} h-8 w-8 fill-current`}\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n >\n <path d=\"M5.64,17l-.71.71a1,1,0,0,0,0,1.41,1,1,0,0,0,1.41,0l.71-.71A1,1,0,0,0,5.64,17ZM5,12a1,1,0,0,0-1-1H3a1,1,0,0,0,0,2H4A1,1,0,0,0,5,12Zm7-7a1,1,0,0,0,1-1V3a1,1,0,0,0-2,0V4A1,1,0,0,0,12,5ZM5.64,7.05a1,1,0,0,0,.7.29,1,1,0,0,0,.71-.29,1,1,0,0,0,0-1.41l-.71-.71A1,1,0,0,0,4.93,6.34Zm12,.29a1,1,0,0,0,.7-.29l.71-.71a1,1,0,1,0-1.41-1.41L17,5.64a1,1,0,0,0,0,1.41A1,1,0,0,0,17.66,7.34ZM21,11H20a1,1,0,0,0,0,2h1a1,1,0,0,0,0-2Zm-9,8a1,1,0,0,0-1,1v1a1,1,0,0,0,2,0V20A1,1,0,0,0,12,19ZM18.36,17A1,1,0,0,0,17,18.36l.71.71a1,1,0,0,0,1.41,0,1,1,0,0,0,0-1.41ZM12,6.5A5.5,5.5,0,1,0,17.5,12,5.51,5.51,0,0,0,12,6.5Zm0,9A3.5,3.5,0,1,1,15.5,12,3.5,3.5,0,0,1,12,15.5Z\" />\n </svg>\n {/* moon icon */}\n <svg\n className={`${dSwapOn} h-8 w-8 fill-current`}\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n >\n <path d=\"M21.64,13a1,1,0,0,0-1.05-.14,8.05,8.05,0,0,1-3.37.73A8.15,8.15,0,0,1,9.08,5.49a8.59,8.59,0,0,1,.25-2A1,1,0,0,0,8,2.36,10.14,10.14,0,1,0,22,14.05,1,1,0,0,0,21.64,13Zm-9.5,6.69A8.14,8.14,0,0,1,7.08,5.22v.27A10.15,10.15,0,0,0,17.22,15.63a9.79,9.79,0,0,0,2.1-.22A8.11,8.11,0,0,1,12.14,19.73Z\" />\n </svg>\n </label>\n )\n}\n\nfunction ThemeControllerDropdown({\n themes,\n defaultTheme,\n onChange,\n className = '',\n}: ThemeControllerDropdownProps) {\n const radioName = useId()\n const [selectedTheme, setSelectedTheme] = useState(() => {\n const current = getCurrentTheme()\n if (current && themes.includes(current)) return current\n return defaultTheme || themes[0] || 'light'\n })\n\n // Sync with external theme changes\n useEffect(() => {\n const observer = new MutationObserver(() => {\n const current = getCurrentTheme()\n if (current && themes.includes(current)) {\n setSelectedTheme(current)\n }\n })\n observer.observe(document.documentElement, { attributes: true, attributeFilter: ['data-theme'] })\n return () => observer.disconnect()\n }, [themes])\n\n const handleChange = (theme: string) => {\n setSelectedTheme(theme)\n setTheme(theme)\n onChange?.(theme)\n }\n\n return (\n <div className={`${dDropdown} ${dDropdownEnd} ${className}`}>\n <div tabIndex={0} role=\"button\" className={dBtn}>\n Theme\n <svg\n width=\"12px\"\n height=\"12px\"\n className=\"inline-block h-2 w-2 fill-current opacity-60\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 2048 2048\"\n >\n <path d=\"M1799 349l242 241-1017 1017L7 590l242-241 775 775 775-775z\"></path>\n </svg>\n </div>\n <ul\n tabIndex={0}\n className={`${dDropdownContent} bg-base-300 rounded-box z-[1] w-52 p-2 shadow-2xl max-h-96 overflow-y-auto`}\n >\n {themes.map((theme) => (\n <li key={theme}>\n <input\n type=\"radio\"\n name={radioName}\n className={`${dBtn} ${dBtnSm} ${dBtnBlock} ${dBtnGhost} justify-start`}\n aria-label={theme}\n value={theme}\n checked={selectedTheme === theme}\n onChange={() => handleChange(theme)}\n />\n </li>\n ))}\n </ul>\n </div>\n )\n}\n\nconst sizeClasses: Record<string, string> = {\n xs: dToggleXs,\n sm: dToggleSm,\n md: dToggleMd,\n lg: dToggleLg,\n xl: dToggleXl,\n}\n\nfunction ThemeControllerToggle({\n lightTheme = 'light',\n darkTheme = 'dark',\n onChange,\n size,\n className = '',\n}: ThemeControllerToggleProps) {\n const { componentSize } = useConfig()\n const effectiveSize = size ?? componentSize ?? 'md'\n\n const [isDark, setIsDark] = useState(() => {\n const current = getCurrentTheme()\n return current === darkTheme\n })\n\n // Sync with external theme changes\n useEffect(() => {\n const observer = new MutationObserver(() => {\n const current = getCurrentTheme()\n setIsDark(current === darkTheme)\n })\n observer.observe(document.documentElement, { attributes: true, attributeFilter: ['data-theme'] })\n return () => observer.disconnect()\n }, [darkTheme])\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const checked = e.target.checked\n const theme = checked ? darkTheme : lightTheme\n setTheme(theme)\n onChange?.(theme)\n }\n\n return (\n <input\n type=\"checkbox\"\n className={`${dToggle} ${sizeClasses[effectiveSize]} ${className}`}\n checked={isDark}\n onChange={handleChange}\n aria-label=\"Toggle theme\"\n />\n )\n}\n\nexport const ThemeController = Object.assign(\n {},\n {\n Swap: ThemeControllerSwap,\n Dropdown: ThemeControllerDropdown,\n Toggle: ThemeControllerToggle,\n }\n)\n"],"names":["dSwap","dSwapRotate","dSwapOff","dSwapOn","dDropdown","dDropdownEnd","dDropdownContent","dBtn","dBtnSm","dBtnBlock","dBtnGhost","dToggle","dToggleXs","dToggleSm","dToggleMd","dToggleLg","dToggleXl","getCurrentTheme","setTheme","theme","ThemeControllerSwap","lightTheme","darkTheme","onChange","className","isDark","setIsDark","useState","useEffect","observer","current","handleChange","e","jsxs","jsx","ThemeControllerDropdown","themes","defaultTheme","radioName","useId","selectedTheme","setSelectedTheme","sizeClasses","ThemeControllerToggle","size","componentSize","useConfig","effectiveSize","ThemeController"],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { default as React } from 'react';
2
+ export interface TimePickerProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'> {
3
+ value?: Date | null;
4
+ defaultValue?: Date | null;
5
+ onChange?: (date: Date | null) => void;
6
+ format?: '12' | '24';
7
+ placeholder?: string;
8
+ disabled?: boolean;
9
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
10
+ showSeconds?: boolean;
11
+ allowClear?: boolean;
12
+ open?: boolean;
13
+ onOpenChange?: (open: boolean) => void;
14
+ hourStep?: number;
15
+ minuteStep?: number;
16
+ secondStep?: number;
17
+ status?: 'error' | 'warning';
18
+ 'data-testid'?: string;
19
+ }
20
+ export declare const TimePicker: React.ForwardRefExoticComponent<TimePickerProps & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,304 @@
1
+ import { jsxs as m, jsx as a } from "react/jsx-runtime";
2
+ import { forwardRef as $e, useState as $, useRef as ne, useId as xe, useEffect as Y, useCallback as oe } from "react";
3
+ import { Input as Me } from "./Input.js";
4
+ import { useConfig as we } from "./ConfigProvider.js";
5
+ const S = "d-btn", D = "d-btn-ghost", J = "d-btn-primary", ke = "d-btn-xs", E = "d-btn-sm", ye = "d-btn-circle", ve = "d-input-error", Ce = "d-input-warning";
6
+ function Ne(s, T = "24", x = !1) {
7
+ if (!s) return "";
8
+ let o = s.getHours();
9
+ const M = String(s.getMinutes()).padStart(2, "0"), w = String(s.getSeconds()).padStart(2, "0");
10
+ if (T === "12") {
11
+ const P = o >= 12 ? "PM" : "AM";
12
+ return o = o % 12 || 12, x ? `${o}:${M}:${w} ${P}` : `${o}:${M} ${P}`;
13
+ }
14
+ const A = String(o).padStart(2, "0");
15
+ return x ? `${A}:${M}:${w}` : `${A}:${M}`;
16
+ }
17
+ const Se = $e(({
18
+ value: s,
19
+ defaultValue: T,
20
+ onChange: x,
21
+ format: o = "24",
22
+ placeholder: M = "Select time",
23
+ disabled: w = !1,
24
+ className: A,
25
+ size: P,
26
+ showSeconds: v = !1,
27
+ allowClear: se = !0,
28
+ open: H,
29
+ onOpenChange: Q,
30
+ hourStep: F = 1,
31
+ minuteStep: R = 1,
32
+ secondStep: z = 1,
33
+ status: V,
34
+ "data-testid": ie,
35
+ ...re
36
+ }, I) => {
37
+ const { componentSize: ae } = we(), de = P ?? ae ?? "md", [c, O] = $(
38
+ s !== void 0 ? s : T || null
39
+ ), [ce, le] = $(!1), l = H !== void 0 ? H : ce, [p, C] = $(c ? c.getHours() : 0), [k, B] = $(c ? c.getMinutes() : 0), [y, L] = $(c ? c.getSeconds() : 0), [g, j] = $(
40
+ c && c.getHours() >= 12 ? "PM" : "AM"
41
+ ), [h, K] = $("hour"), U = ne(null), ue = ne(null), W = xe(), d = ie || "timepicker";
42
+ Y(() => {
43
+ s !== void 0 && (O(s), s && (C(s.getHours()), B(s.getMinutes()), L(s.getSeconds()), j(s.getHours() >= 12 ? "PM" : "AM")));
44
+ }, [s]);
45
+ const b = oe((e) => {
46
+ H === void 0 && le(e), Q?.(e);
47
+ }, [H, Q]);
48
+ Y(() => {
49
+ function e(t) {
50
+ U.current && !U.current.contains(t.target) && b(!1);
51
+ }
52
+ if (l)
53
+ return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
54
+ }, [l, b]), Y(() => {
55
+ if (!l) return;
56
+ const e = (t) => {
57
+ if (t.key === "Escape") {
58
+ b(!1);
59
+ return;
60
+ }
61
+ if (t.key !== "Tab") {
62
+ if (t.key === "ArrowUp" || t.key === "ArrowDown") {
63
+ t.preventDefault();
64
+ const i = t.key === "ArrowUp" ? -1 : 1;
65
+ if (h === "hour") {
66
+ const n = o === "12" ? 12 : 23, u = o === "12" ? 1 : 0;
67
+ let r = p + i * F;
68
+ r > n && (r = u), r < u && (r = n), Z(r);
69
+ } else if (h === "minute") {
70
+ let n = k + i * R;
71
+ n > 59 && (n = 0), n < 0 && (n = 59), _(n);
72
+ } else if (h === "second") {
73
+ let n = y + i * z;
74
+ n > 59 && (n = 0), n < 0 && (n = 59), ee(n);
75
+ } else h === "period" && q(g === "AM" ? "PM" : "AM");
76
+ }
77
+ if (t.key === "ArrowLeft" || t.key === "ArrowRight") {
78
+ t.preventDefault();
79
+ const i = ["hour", "minute"];
80
+ v && i.push("second"), o === "12" && i.push("period");
81
+ const n = i.indexOf(h), u = t.key === "ArrowLeft" ? -1 : 1;
82
+ let r = n + u;
83
+ r < 0 && (r = i.length - 1), r >= i.length && (r = 0), K(i[r]);
84
+ }
85
+ t.key === "Enter" && b(!1);
86
+ }
87
+ };
88
+ return document.addEventListener("keydown", e), () => document.removeEventListener("keydown", e);
89
+ }, [l, h, p, k, y, g, o, v, F, R, z, b]);
90
+ const fe = oe((e) => {
91
+ e.stopPropagation(), O(null), C(0), B(0), L(0), j("AM"), x?.(null);
92
+ }, [x]), N = (e, t, i) => {
93
+ const n = /* @__PURE__ */ new Date(), u = new Date(
94
+ n.getFullYear(),
95
+ n.getMonth(),
96
+ n.getDate(),
97
+ e,
98
+ t,
99
+ i
100
+ );
101
+ O(u), x?.(u);
102
+ }, Z = (e) => {
103
+ let t = e;
104
+ o === "12" && (t = g === "PM" ? e % 12 + 12 : e % 12), C(t), N(t, k, y);
105
+ }, _ = (e) => {
106
+ B(e), N(p, e, y);
107
+ }, ee = (e) => {
108
+ L(e), N(p, k, e);
109
+ }, q = (e) => {
110
+ j(e);
111
+ const t = e === "PM" ? p % 12 + 12 : p % 12;
112
+ C(t), N(t, k, y);
113
+ }, G = (e, t, i, n, u, r = 1, ge = 0) => {
114
+ const te = [];
115
+ for (let f = ge; f <= i; f += r)
116
+ te.push(f);
117
+ const he = `${W}-${e}-listbox`, be = h === e;
118
+ return /* @__PURE__ */ m(
119
+ "div",
120
+ {
121
+ className: "flex flex-col w-16",
122
+ role: "listbox",
123
+ "aria-label": `Select ${t.toLowerCase()}`,
124
+ id: he,
125
+ "data-testid": `${d}-${e}-column`,
126
+ tabIndex: 0,
127
+ onFocus: () => K(e),
128
+ children: [
129
+ /* @__PURE__ */ a("div", { className: "text-xs font-semibold text-center text-base-content/60 py-2", "aria-hidden": "true", children: t }),
130
+ /* @__PURE__ */ a("div", { className: "overflow-y-auto max-h-48", children: te.map((f) => {
131
+ const X = n === f;
132
+ return /* @__PURE__ */ a(
133
+ "button",
134
+ {
135
+ type: "button",
136
+ role: "option",
137
+ "aria-selected": X,
138
+ onClick: () => u(f),
139
+ "data-testid": `${d}-${e}-${f}`,
140
+ className: [
141
+ "w-full px-4 py-2 text-center hover:bg-base-200 transition-colors",
142
+ X ? "bg-primary text-primary-content" : "",
143
+ be && X ? "ring-2 ring-primary ring-offset-1" : ""
144
+ ].filter(Boolean).join(" "),
145
+ children: String(f).padStart(2, "0")
146
+ },
147
+ f
148
+ );
149
+ }) })
150
+ ]
151
+ }
152
+ );
153
+ }, pe = o === "12" ? p % 12 || 12 : p, me = {
154
+ error: ve,
155
+ warning: Ce
156
+ };
157
+ return /* @__PURE__ */ m(
158
+ "div",
159
+ {
160
+ ref: (e) => {
161
+ U.current = e, typeof I == "function" ? I(e) : I && (I.current = e);
162
+ },
163
+ className: ["relative", A].filter(Boolean).join(" "),
164
+ "data-testid": d,
165
+ "data-state": l ? "open" : "closed",
166
+ ...re,
167
+ children: [
168
+ /* @__PURE__ */ m("div", { className: "relative", children: [
169
+ /* @__PURE__ */ a(
170
+ Me,
171
+ {
172
+ value: Ne(c, o, v),
173
+ placeholder: M,
174
+ disabled: w,
175
+ size: de,
176
+ readOnly: !0,
177
+ onClick: () => !w && b(!l),
178
+ className: ["cursor-pointer pr-8", V ? me[V] : ""].filter(Boolean).join(" "),
179
+ "aria-haspopup": "listbox",
180
+ "aria-expanded": l,
181
+ "aria-controls": l ? `${W}-dropdown` : void 0,
182
+ "data-testid": `${d}-input`
183
+ }
184
+ ),
185
+ se && c && !w && /* @__PURE__ */ a(
186
+ "button",
187
+ {
188
+ type: "button",
189
+ onClick: fe,
190
+ className: `absolute right-2 top-1/2 -translate-y-1/2 ${S} ${D} ${ke} ${ye}`,
191
+ "aria-label": "Clear time",
192
+ "data-testid": `${d}-clear`,
193
+ children: /* @__PURE__ */ a("svg", { className: "w-3 h-3", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ a("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) })
194
+ }
195
+ )
196
+ ] }),
197
+ l && /* @__PURE__ */ m(
198
+ "div",
199
+ {
200
+ ref: ue,
201
+ id: `${W}-dropdown`,
202
+ className: "absolute top-full left-0 mt-2 bg-base-100 border border-base-300 rounded-lg shadow-xl z-[9999] w-fit",
203
+ role: "dialog",
204
+ "aria-label": "Time picker",
205
+ "data-testid": `${d}-dropdown`,
206
+ children: [
207
+ /* @__PURE__ */ m("div", { className: "flex divide-x divide-base-300", children: [
208
+ G(
209
+ "hour",
210
+ "Hour",
211
+ o === "12" ? 12 : 23,
212
+ pe,
213
+ Z,
214
+ F,
215
+ o === "12" ? 1 : 0
216
+ ),
217
+ G("minute", "Min", 59, k, _, R),
218
+ v && G("second", "Sec", 59, y, ee, z),
219
+ o === "12" && /* @__PURE__ */ m(
220
+ "div",
221
+ {
222
+ className: "flex flex-col w-16",
223
+ role: "listbox",
224
+ "aria-label": "Select period",
225
+ "data-testid": `${d}-period-column`,
226
+ tabIndex: 0,
227
+ onFocus: () => K("period"),
228
+ children: [
229
+ /* @__PURE__ */ a("div", { className: "text-xs font-semibold text-center text-base-content/60 py-2", "aria-hidden": "true", children: "Period" }),
230
+ /* @__PURE__ */ m("div", { className: "flex flex-col p-2 gap-2", children: [
231
+ /* @__PURE__ */ a(
232
+ "button",
233
+ {
234
+ type: "button",
235
+ role: "option",
236
+ "aria-selected": g === "AM",
237
+ onClick: () => q("AM"),
238
+ "data-testid": `${d}-period-am`,
239
+ className: [
240
+ S,
241
+ E,
242
+ g === "AM" ? J : D
243
+ ].join(" "),
244
+ children: "AM"
245
+ }
246
+ ),
247
+ /* @__PURE__ */ a(
248
+ "button",
249
+ {
250
+ type: "button",
251
+ role: "option",
252
+ "aria-selected": g === "PM",
253
+ onClick: () => q("PM"),
254
+ "data-testid": `${d}-period-pm`,
255
+ className: [
256
+ S,
257
+ E,
258
+ g === "PM" ? J : D
259
+ ].join(" "),
260
+ children: "PM"
261
+ }
262
+ )
263
+ ] })
264
+ ]
265
+ }
266
+ )
267
+ ] }),
268
+ /* @__PURE__ */ m("div", { className: "flex justify-end gap-2 p-3 border-t border-base-300", children: [
269
+ /* @__PURE__ */ a(
270
+ "button",
271
+ {
272
+ type: "button",
273
+ onClick: () => {
274
+ const e = /* @__PURE__ */ new Date();
275
+ C(e.getHours()), B(e.getMinutes()), L(e.getSeconds()), j(e.getHours() >= 12 ? "PM" : "AM"), N(e.getHours(), e.getMinutes(), e.getSeconds());
276
+ },
277
+ className: `${S} ${D} ${E}`,
278
+ "data-testid": `${d}-now`,
279
+ children: "Now"
280
+ }
281
+ ),
282
+ /* @__PURE__ */ a(
283
+ "button",
284
+ {
285
+ type: "button",
286
+ onClick: () => b(!1),
287
+ className: `${S} ${J} ${E}`,
288
+ "data-testid": `${d}-ok`,
289
+ children: "OK"
290
+ }
291
+ )
292
+ ] })
293
+ ]
294
+ }
295
+ )
296
+ ]
297
+ }
298
+ );
299
+ });
300
+ Se.displayName = "TimePicker";
301
+ export {
302
+ Se as TimePicker
303
+ };
304
+ //# sourceMappingURL=TimePicker.js.map