@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,205 @@
1
+ import { jsxs as P, jsx as i, Fragment as ae } from "react/jsx-runtime";
2
+ import { forwardRef as L, useState as I, useRef as R, Children as re, isValidElement as ne, useCallback as y, useImperativeHandle as ie, useEffect as ce, cloneElement as ue } from "react";
3
+ const de = "d-carousel", fe = "d-carousel-vertical", me = "d-carousel-item", be = "d-btn", pe = "d-btn-circle", he = "d-btn-sm", T = L(
4
+ ({ children: $, className: b = "", "data-testid": g, ...c }, p) => /* @__PURE__ */ i(
5
+ "div",
6
+ {
7
+ ref: p,
8
+ role: "group",
9
+ "aria-roledescription": "slide",
10
+ className: `${me} w-full flex-shrink-0 ${b}`,
11
+ "data-testid": g,
12
+ ...c,
13
+ children: $
14
+ }
15
+ )
16
+ );
17
+ T.displayName = "Carousel.Item";
18
+ const z = L(
19
+ ({
20
+ children: $,
21
+ activeIndex: b,
22
+ defaultActiveIndex: g = 0,
23
+ autoplay: c = !1,
24
+ autoplaySpeed: p = 3e3,
25
+ speed: h = 500,
26
+ arrows: K = !0,
27
+ dots: d = !0,
28
+ dotPlacement: V = "bottom",
29
+ effect: w = "scrollx",
30
+ infinite: v = !0,
31
+ pauseOnHover: D = !0,
32
+ vertical: a = !1,
33
+ beforeChange: S,
34
+ afterChange: C,
35
+ className: F = "",
36
+ "data-testid": r,
37
+ ...G
38
+ }, U) => {
39
+ const x = b !== void 0, [X, Y] = I(g), o = x ? b : X, [A, E] = I(!1), [M, j] = I(!1), _ = R(null), k = R(null), N = re.toArray($).filter(ne), s = N.length, u = y(
40
+ (e, t = !0) => {
41
+ if (M || s === 0) return;
42
+ let l = e;
43
+ v ? l = (e % s + s) % s : l = Math.max(0, Math.min(e, s - 1)), l !== o && (S?.(o, l), t ? (j(!0), setTimeout(() => {
44
+ j(!1), C?.(l);
45
+ }, h)) : C?.(l), x || Y(l));
46
+ },
47
+ [o, s, v, x, S, C, h, M]
48
+ ), n = y(() => {
49
+ u(o + 1);
50
+ }, [u, o]), f = y(() => {
51
+ u(o - 1);
52
+ }, [u, o]);
53
+ ie(U, () => ({
54
+ goTo: (e, t = !0) => u(e, t),
55
+ next: n,
56
+ prev: f
57
+ })), ce(() => (c && !A && s > 1 && (k.current = setInterval(() => {
58
+ n();
59
+ }, p)), () => {
60
+ k.current && clearInterval(k.current);
61
+ }), [c, A, p, n, s]);
62
+ const q = y(
63
+ (e) => {
64
+ a ? e.key === "ArrowUp" ? (e.preventDefault(), f()) : e.key === "ArrowDown" && (e.preventDefault(), n()) : e.key === "ArrowLeft" ? (e.preventDefault(), f()) : e.key === "ArrowRight" && (e.preventDefault(), n());
65
+ },
66
+ [a, f, n]
67
+ ), H = () => {
68
+ D && c && E(!0);
69
+ }, J = () => {
70
+ D && c && E(!1);
71
+ }, Q = [
72
+ de,
73
+ a ? fe : "",
74
+ F
75
+ ].filter(Boolean).join(" "), W = (e) => w === "fade" ? {
76
+ position: e === 0 ? "relative" : "absolute",
77
+ top: 0,
78
+ left: 0,
79
+ opacity: e === o ? 1 : 0,
80
+ transition: `opacity ${h}ms ease-in-out`,
81
+ zIndex: e === o ? 1 : 0
82
+ } : {}, Z = w === "scrollx" ? {
83
+ display: "flex",
84
+ flexDirection: a ? "column" : "row",
85
+ transform: a ? `translateY(-${o * 100}%)` : `translateX(-${o * 100}%)`,
86
+ transition: `transform ${h}ms ease-in-out`,
87
+ height: a ? "100%" : void 0
88
+ } : {
89
+ position: "relative",
90
+ width: "100%",
91
+ height: "100%"
92
+ }, O = () => a ? { height: "100%", flexShrink: 0 } : {}, ee = {
93
+ top: "top-2 left-1/2 -translate-x-1/2 flex-row",
94
+ bottom: "bottom-2 left-1/2 -translate-x-1/2 flex-row",
95
+ start: "left-2 top-1/2 -translate-y-1/2 flex-col",
96
+ end: "right-2 top-1/2 -translate-y-1/2 flex-col"
97
+ }, te = d === !0 || typeof d == "object" && d !== null, oe = typeof d == "object" ? d.className : "", B = ({
98
+ direction: e,
99
+ onClick: t,
100
+ disabled: l
101
+ }) => {
102
+ const m = e === "prev", se = a ? m ? "top-2 left-1/2 -translate-x-1/2" : "bottom-2 left-1/2 -translate-x-1/2" : m ? "left-2 top-1/2 -translate-y-1/2" : "right-2 top-1/2 -translate-y-1/2", le = a ? m ? "▲" : "▼" : m ? "❮" : "❯";
103
+ return /* @__PURE__ */ i(
104
+ "button",
105
+ {
106
+ type: "button",
107
+ onClick: t,
108
+ disabled: l,
109
+ "aria-label": m ? "Previous slide" : "Next slide",
110
+ className: `absolute ${se} ${be} ${pe} ${he} bg-base-100/80 hover:bg-base-100 border-none shadow-md z-10 disabled:opacity-50 disabled:cursor-not-allowed`,
111
+ "data-testid": r ? `${r}-${e}` : void 0,
112
+ children: le
113
+ }
114
+ );
115
+ };
116
+ return /* @__PURE__ */ P(
117
+ "div",
118
+ {
119
+ ref: _,
120
+ role: "region",
121
+ "aria-roledescription": "carousel",
122
+ "aria-label": "Image carousel",
123
+ tabIndex: 0,
124
+ onKeyDown: q,
125
+ onMouseEnter: H,
126
+ onMouseLeave: J,
127
+ className: `relative overflow-hidden focus:outline-none focus-visible:ring-2 focus-visible:ring-primary ${Q}`,
128
+ "data-testid": r,
129
+ "data-active-index": o,
130
+ ...G,
131
+ children: [
132
+ /* @__PURE__ */ i(
133
+ "div",
134
+ {
135
+ className: w === "fade" ? "relative w-full h-full" : a ? "h-full" : "",
136
+ style: Z,
137
+ "aria-live": "polite",
138
+ children: N.map((e, t) => {
139
+ const l = e;
140
+ return ue(l, {
141
+ key: t,
142
+ "aria-hidden": t !== o,
143
+ "aria-label": `Slide ${t + 1} of ${s}`,
144
+ style: {
145
+ ...l.props.style,
146
+ ...O(),
147
+ ...W(t)
148
+ },
149
+ "data-testid": r ? `${r}-slide-${t}` : void 0
150
+ });
151
+ })
152
+ }
153
+ ),
154
+ K && s > 1 && /* @__PURE__ */ P(ae, { children: [
155
+ /* @__PURE__ */ i(
156
+ B,
157
+ {
158
+ direction: "prev",
159
+ onClick: f,
160
+ disabled: !v && o === 0
161
+ }
162
+ ),
163
+ /* @__PURE__ */ i(
164
+ B,
165
+ {
166
+ direction: "next",
167
+ onClick: n,
168
+ disabled: !v && o === s - 1
169
+ }
170
+ )
171
+ ] }),
172
+ te && s > 1 && /* @__PURE__ */ i(
173
+ "div",
174
+ {
175
+ className: `absolute flex gap-2 ${ee[V]} ${oe || ""}`,
176
+ role: "tablist",
177
+ "aria-label": "Slide indicators",
178
+ "data-testid": r ? `${r}-dots` : void 0,
179
+ children: N.map((e, t) => /* @__PURE__ */ i(
180
+ "button",
181
+ {
182
+ type: "button",
183
+ role: "tab",
184
+ "aria-selected": t === o,
185
+ "aria-label": `Go to slide ${t + 1}`,
186
+ onClick: () => u(t),
187
+ className: `w-2 h-2 rounded-full transition-all ${t === o ? "bg-primary w-4" : "bg-base-content/30 hover:bg-base-content/50"}`,
188
+ "data-testid": r ? `${r}-dot-${t}` : void 0
189
+ },
190
+ t
191
+ ))
192
+ }
193
+ )
194
+ ]
195
+ }
196
+ );
197
+ }
198
+ );
199
+ z.displayName = "Carousel";
200
+ const ve = z;
201
+ ve.Item = T;
202
+ export {
203
+ ve as Carousel
204
+ };
205
+ //# sourceMappingURL=Carousel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Carousel.js","sources":["../../src/components/Carousel.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n Children,\n cloneElement,\n isValidElement,\n} from 'react'\n\n// DaisyUI classes\nconst dCarousel = 'd-carousel'\nconst dCarouselVertical = 'd-carousel-vertical'\nconst dCarouselItem = 'd-carousel-item'\nconst dBtn = 'd-btn'\nconst dBtnCircle = 'd-btn-circle'\nconst dBtnSm = 'd-btn-sm'\n\nexport type CarouselEffect = 'scrollx' | 'fade'\nexport type CarouselDotPlacement = 'top' | 'bottom' | 'start' | 'end'\n\nexport interface CarouselRef {\n goTo: (index: number, animate?: boolean) => void\n next: () => void\n prev: () => void\n}\n\nexport interface CarouselItemProps extends React.HTMLAttributes<HTMLDivElement> {\n 'data-testid'?: string\n children: React.ReactNode\n}\n\nconst CarouselItemComponent = forwardRef<HTMLDivElement, CarouselItemProps>(\n ({ children, className = '', 'data-testid': testId, ...rest }, ref) => {\n return (\n <div\n ref={ref}\n role=\"group\"\n aria-roledescription=\"slide\"\n className={`${dCarouselItem} w-full flex-shrink-0 ${className}`}\n data-testid={testId}\n {...rest}\n >\n {children}\n </div>\n )\n }\n)\n\nCarouselItemComponent.displayName = 'Carousel.Item'\n\nexport interface CarouselProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {\n /** Carousel slides */\n children: React.ReactNode\n /** Current slide index (controlled mode) */\n activeIndex?: number\n /** Default slide index (uncontrolled mode) */\n defaultActiveIndex?: number\n /** Auto-advance slides */\n autoplay?: boolean\n /** Autoplay interval in milliseconds */\n autoplaySpeed?: number\n /** Animation duration in milliseconds */\n speed?: number\n /** Show prev/next navigation arrows */\n arrows?: boolean\n /** Show slide indicator dots */\n dots?: boolean | { className?: string }\n /** Position of indicator dots */\n dotPlacement?: CarouselDotPlacement\n /** Transition effect */\n effect?: CarouselEffect\n /** Enable infinite looping */\n infinite?: boolean\n /** Pause autoplay on hover */\n pauseOnHover?: boolean\n /** Vertical carousel orientation */\n vertical?: boolean\n /** Callback before slide change */\n beforeChange?: (current: number, next: number) => void\n /** Callback after slide change */\n afterChange?: (current: number) => void\n /** Test ID for testing */\n 'data-testid'?: string\n}\n\nconst CarouselComponent = forwardRef<CarouselRef, CarouselProps>(\n (\n {\n children,\n activeIndex: controlledIndex,\n defaultActiveIndex = 0,\n autoplay = false,\n autoplaySpeed = 3000,\n speed = 500,\n arrows = true,\n dots = true,\n dotPlacement = 'bottom',\n effect = 'scrollx',\n infinite = true,\n pauseOnHover = true,\n vertical = false,\n beforeChange,\n afterChange,\n className = '',\n 'data-testid': testId,\n ...rest\n },\n ref\n ) => {\n const isControlled = controlledIndex !== undefined\n const [internalIndex, setInternalIndex] = useState(defaultActiveIndex)\n const currentIndex = isControlled ? controlledIndex : internalIndex\n\n const [isPaused, setIsPaused] = useState(false)\n const [isAnimating, setIsAnimating] = useState(false)\n const containerRef = useRef<HTMLDivElement>(null)\n const autoplayRef = useRef<NodeJS.Timeout | null>(null)\n\n const slides = Children.toArray(children).filter(isValidElement)\n const slideCount = slides.length\n\n const goTo = useCallback(\n (index: number, animate = true) => {\n if (isAnimating || slideCount === 0) return\n\n let targetIndex = index\n if (infinite) {\n targetIndex = ((index % slideCount) + slideCount) % slideCount\n } else {\n targetIndex = Math.max(0, Math.min(index, slideCount - 1))\n }\n\n if (targetIndex === currentIndex) return\n\n beforeChange?.(currentIndex, targetIndex)\n\n if (animate) {\n setIsAnimating(true)\n setTimeout(() => {\n setIsAnimating(false)\n afterChange?.(targetIndex)\n }, speed)\n } else {\n afterChange?.(targetIndex)\n }\n\n if (!isControlled) {\n setInternalIndex(targetIndex)\n }\n },\n [currentIndex, slideCount, infinite, isControlled, beforeChange, afterChange, speed, isAnimating]\n )\n\n const next = useCallback(() => {\n goTo(currentIndex + 1)\n }, [goTo, currentIndex])\n\n const prev = useCallback(() => {\n goTo(currentIndex - 1)\n }, [goTo, currentIndex])\n\n // Expose methods via ref\n useImperativeHandle(ref, () => ({\n goTo: (index: number, animate = true) => goTo(index, animate),\n next,\n prev,\n }))\n\n // Autoplay\n useEffect(() => {\n if (autoplay && !isPaused && slideCount > 1) {\n autoplayRef.current = setInterval(() => {\n next()\n }, autoplaySpeed)\n }\n\n return () => {\n if (autoplayRef.current) {\n clearInterval(autoplayRef.current)\n }\n }\n }, [autoplay, isPaused, autoplaySpeed, next, slideCount])\n\n // Keyboard navigation\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (vertical) {\n if (e.key === 'ArrowUp') {\n e.preventDefault()\n prev()\n } else if (e.key === 'ArrowDown') {\n e.preventDefault()\n next()\n }\n } else {\n if (e.key === 'ArrowLeft') {\n e.preventDefault()\n prev()\n } else if (e.key === 'ArrowRight') {\n e.preventDefault()\n next()\n }\n }\n },\n [vertical, prev, next]\n )\n\n const handleMouseEnter = () => {\n if (pauseOnHover && autoplay) {\n setIsPaused(true)\n }\n }\n\n const handleMouseLeave = () => {\n if (pauseOnHover && autoplay) {\n setIsPaused(false)\n }\n }\n\n // Build carousel classes\n const carouselClasses = [\n dCarousel,\n vertical ? dCarouselVertical : '',\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n // Slide transform/opacity based on effect\n const getSlideStyle = (index: number): React.CSSProperties => {\n if (effect === 'fade') {\n return {\n position: index === 0 ? 'relative' : 'absolute',\n top: 0,\n left: 0,\n opacity: index === currentIndex ? 1 : 0,\n transition: `opacity ${speed}ms ease-in-out`,\n zIndex: index === currentIndex ? 1 : 0,\n }\n }\n return {}\n }\n\n // Container style for scrollx effect\n const trackStyle: React.CSSProperties =\n effect === 'scrollx'\n ? {\n display: 'flex',\n flexDirection: vertical ? 'column' : 'row',\n transform: vertical\n ? `translateY(-${currentIndex * 100}%)`\n : `translateX(-${currentIndex * 100}%)`,\n transition: `transform ${speed}ms ease-in-out`,\n height: vertical ? '100%' : undefined,\n }\n : {\n position: 'relative',\n width: '100%',\n height: '100%',\n }\n\n // Slide style - ensure proper sizing for vertical/horizontal\n const getSlideContainerStyle = (): React.CSSProperties => {\n if (vertical) {\n return { height: '100%', flexShrink: 0 }\n }\n return {}\n }\n\n // Dots placement classes\n const dotsPlacementClasses: Record<CarouselDotPlacement, string> = {\n top: 'top-2 left-1/2 -translate-x-1/2 flex-row',\n bottom: 'bottom-2 left-1/2 -translate-x-1/2 flex-row',\n start: 'left-2 top-1/2 -translate-y-1/2 flex-col',\n end: 'right-2 top-1/2 -translate-y-1/2 flex-col',\n }\n\n const showDots = dots === true || (typeof dots === 'object' && dots !== null)\n const dotsClassName = typeof dots === 'object' ? dots.className : ''\n\n // Arrow buttons\n const ArrowButton = ({\n direction,\n onClick,\n disabled,\n }: {\n direction: 'prev' | 'next'\n onClick: () => void\n disabled: boolean\n }) => {\n const isPrev = direction === 'prev'\n const positionClass = vertical\n ? isPrev\n ? 'top-2 left-1/2 -translate-x-1/2'\n : 'bottom-2 left-1/2 -translate-x-1/2'\n : isPrev\n ? 'left-2 top-1/2 -translate-y-1/2'\n : 'right-2 top-1/2 -translate-y-1/2'\n\n const arrowIcon = vertical\n ? isPrev\n ? '▲'\n : '▼'\n : isPrev\n ? '❮'\n : '❯'\n\n return (\n <button\n type=\"button\"\n onClick={onClick}\n disabled={disabled}\n aria-label={isPrev ? 'Previous slide' : 'Next slide'}\n className={`absolute ${positionClass} ${dBtn} ${dBtnCircle} ${dBtnSm} bg-base-100/80 hover:bg-base-100 border-none shadow-md z-10 disabled:opacity-50 disabled:cursor-not-allowed`}\n data-testid={testId ? `${testId}-${direction}` : undefined}\n >\n {arrowIcon}\n </button>\n )\n }\n\n return (\n <div\n ref={containerRef}\n role=\"region\"\n aria-roledescription=\"carousel\"\n aria-label=\"Image carousel\"\n tabIndex={0}\n onKeyDown={handleKeyDown}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n className={`relative overflow-hidden focus:outline-none focus-visible:ring-2 focus-visible:ring-primary ${carouselClasses}`}\n data-testid={testId}\n data-active-index={currentIndex}\n {...rest}\n >\n {/* Slides track */}\n <div\n className={effect === 'fade' ? 'relative w-full h-full' : vertical ? 'h-full' : ''}\n style={trackStyle}\n aria-live=\"polite\"\n >\n {slides.map((slide, index) => {\n const slideElement = slide as React.ReactElement<CarouselItemProps & { style?: React.CSSProperties }>\n return cloneElement(slideElement, {\n key: index,\n 'aria-hidden': index !== currentIndex,\n 'aria-label': `Slide ${index + 1} of ${slideCount}`,\n style: {\n ...slideElement.props.style,\n ...getSlideContainerStyle(),\n ...getSlideStyle(index),\n },\n 'data-testid': testId ? `${testId}-slide-${index}` : undefined,\n })\n })}\n </div>\n\n {/* Navigation arrows */}\n {arrows && slideCount > 1 && (\n <>\n <ArrowButton\n direction=\"prev\"\n onClick={prev}\n disabled={!infinite && currentIndex === 0}\n />\n <ArrowButton\n direction=\"next\"\n onClick={next}\n disabled={!infinite && currentIndex === slideCount - 1}\n />\n </>\n )}\n\n {/* Dot indicators */}\n {showDots && slideCount > 1 && (\n <div\n className={`absolute flex gap-2 ${dotsPlacementClasses[dotPlacement]} ${dotsClassName || ''}`}\n role=\"tablist\"\n aria-label=\"Slide indicators\"\n data-testid={testId ? `${testId}-dots` : undefined}\n >\n {slides.map((_, index) => (\n <button\n key={index}\n type=\"button\"\n role=\"tab\"\n aria-selected={index === currentIndex}\n aria-label={`Go to slide ${index + 1}`}\n onClick={() => goTo(index)}\n className={`w-2 h-2 rounded-full transition-all ${\n index === currentIndex\n ? 'bg-primary w-4'\n : 'bg-base-content/30 hover:bg-base-content/50'\n }`}\n data-testid={testId ? `${testId}-dot-${index}` : undefined}\n />\n ))}\n </div>\n )}\n </div>\n )\n }\n)\n\nCarouselComponent.displayName = 'Carousel'\n\n// Compound component type\ntype CarouselType = typeof CarouselComponent & {\n Item: typeof CarouselItemComponent\n}\n\nexport const Carousel = CarouselComponent as CarouselType\nCarousel.Item = CarouselItemComponent\n"],"names":["dCarousel","dCarouselVertical","dCarouselItem","dBtn","dBtnCircle","dBtnSm","CarouselItemComponent","forwardRef","children","className","testId","rest","ref","jsx","CarouselComponent","controlledIndex","defaultActiveIndex","autoplay","autoplaySpeed","speed","arrows","dots","dotPlacement","effect","infinite","pauseOnHover","vertical","beforeChange","afterChange","isControlled","internalIndex","setInternalIndex","useState","currentIndex","isPaused","setIsPaused","isAnimating","setIsAnimating","containerRef","useRef","autoplayRef","slides","Children","isValidElement","slideCount","goTo","useCallback","index","animate","targetIndex","next","prev","useImperativeHandle","useEffect","handleKeyDown","handleMouseEnter","handleMouseLeave","carouselClasses","getSlideStyle","trackStyle","getSlideContainerStyle","dotsPlacementClasses","showDots","dotsClassName","ArrowButton","direction","onClick","disabled","isPrev","positionClass","arrowIcon","jsxs","slide","slideElement","cloneElement","Fragment","_","Carousel"],"mappings":"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"}
@@ -0,0 +1,71 @@
1
+ import { default as React } from 'react';
2
+ export interface CascaderOption {
3
+ value: string;
4
+ label: React.ReactNode;
5
+ disabled?: boolean;
6
+ children?: CascaderOption[];
7
+ isLeaf?: boolean;
8
+ }
9
+ export type CascaderColor = 'primary' | 'secondary' | 'accent' | 'info' | 'success' | 'warning' | 'error';
10
+ export type CascaderSize = 'xs' | 'sm' | 'md' | 'lg';
11
+ export interface CascaderProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {
12
+ /** Hierarchical options data */
13
+ options: CascaderOption[];
14
+ /** Controlled selected value path */
15
+ value?: string[];
16
+ /** Default selected value path (uncontrolled) */
17
+ defaultValue?: string[];
18
+ /** Callback when selection changes */
19
+ onChange?: (value: string[], selectedOptions: CascaderOption[]) => void;
20
+ /** Placeholder text */
21
+ placeholder?: string;
22
+ /** Disable the cascader */
23
+ disabled?: boolean;
24
+ /** Show clear button */
25
+ allowClear?: boolean;
26
+ /** How to expand sub-menus */
27
+ expandTrigger?: 'click' | 'hover';
28
+ /** Allow selection of any level, not just leaf nodes */
29
+ changeOnSelect?: boolean;
30
+ /** Custom display render function */
31
+ displayRender?: (labels: React.ReactNode[], selectedOptions: CascaderOption[]) => React.ReactNode;
32
+ /** Input size */
33
+ size?: CascaderSize;
34
+ /** Focus ring color */
35
+ color?: CascaderColor;
36
+ /** Validation status */
37
+ status?: 'error' | 'warning';
38
+ /** Enable search/filter functionality */
39
+ showSearch?: boolean | {
40
+ filter?: (inputValue: string, path: CascaderOption[]) => boolean;
41
+ render?: (inputValue: string, path: CascaderOption[]) => React.ReactNode;
42
+ matchInputWidth?: boolean;
43
+ };
44
+ /** Content when no results found */
45
+ notFoundContent?: React.ReactNode;
46
+ /** Async data loading function */
47
+ loadData?: (selectedOptions: CascaderOption[]) => Promise<void>;
48
+ /** Custom field names for data mapping */
49
+ fieldNames?: {
50
+ label?: string;
51
+ value?: string;
52
+ children?: string;
53
+ };
54
+ /** Controlled open state */
55
+ open?: boolean;
56
+ /** Callback when dropdown visibility changes */
57
+ onDropdownVisibleChange?: (open: boolean) => void;
58
+ /** Class name for dropdown */
59
+ popupClassName?: string;
60
+ /** Custom dropdown render wrapper */
61
+ dropdownRender?: (menu: React.ReactNode) => React.ReactNode;
62
+ /** Multiple selection mode */
63
+ multiple?: boolean;
64
+ /** Max tags to show in multiple mode */
65
+ maxTagCount?: number | 'responsive';
66
+ /** Accessible label */
67
+ 'aria-label'?: string;
68
+ /** Test ID for the component */
69
+ 'data-testid'?: string;
70
+ }
71
+ export declare const Cascader: React.ForwardRefExoticComponent<CascaderProps & React.RefAttributes<HTMLDivElement>>;