@kadoui/react 1.0.0

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 (470) hide show
  1. package/dist/components/AccessNavigation/AccessNavigation.d.ts +6 -0
  2. package/dist/components/AccessNavigation/AccessNavigation.d.ts.map +1 -0
  3. package/dist/components/AccessNavigation/AccessNavigation.jsx +26 -0
  4. package/dist/components/Accordion/Accordion.d.ts +8 -0
  5. package/dist/components/Accordion/Accordion.d.ts.map +1 -0
  6. package/dist/components/Accordion/Accordion.js +7 -0
  7. package/dist/components/Accordion/AccordionBody.d.ts +4 -0
  8. package/dist/components/Accordion/AccordionBody.d.ts.map +1 -0
  9. package/dist/components/Accordion/AccordionBody.jsx +17 -0
  10. package/dist/components/Accordion/AccordionContext.d.ts +7 -0
  11. package/dist/components/Accordion/AccordionContext.d.ts.map +1 -0
  12. package/dist/components/Accordion/AccordionContext.js +2 -0
  13. package/dist/components/Accordion/AccordionRoot.d.ts +4 -0
  14. package/dist/components/Accordion/AccordionRoot.d.ts.map +1 -0
  15. package/dist/components/Accordion/AccordionRoot.jsx +9 -0
  16. package/dist/components/Accordion/AccordionToggle.d.ts +6 -0
  17. package/dist/components/Accordion/AccordionToggle.d.ts.map +1 -0
  18. package/dist/components/Accordion/AccordionToggle.jsx +16 -0
  19. package/dist/components/Affix/Affix.d.ts +4 -0
  20. package/dist/components/Affix/Affix.d.ts.map +1 -0
  21. package/dist/components/Affix/Affix.jsx +38 -0
  22. package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +6 -0
  23. package/dist/components/Breadcrumbs/Breadcrumbs.d.ts.map +1 -0
  24. package/dist/components/Breadcrumbs/Breadcrumbs.js +5 -0
  25. package/dist/components/Breadcrumbs/BreadcrumbsContext.d.ts +6 -0
  26. package/dist/components/Breadcrumbs/BreadcrumbsContext.d.ts.map +1 -0
  27. package/dist/components/Breadcrumbs/BreadcrumbsContext.js +2 -0
  28. package/dist/components/Breadcrumbs/BreadcrumbsItem.d.ts +6 -0
  29. package/dist/components/Breadcrumbs/BreadcrumbsItem.d.ts.map +1 -0
  30. package/dist/components/Breadcrumbs/BreadcrumbsItem.jsx +11 -0
  31. package/dist/components/Breadcrumbs/BreadcrumbsRoot.d.ts +6 -0
  32. package/dist/components/Breadcrumbs/BreadcrumbsRoot.d.ts.map +1 -0
  33. package/dist/components/Breadcrumbs/BreadcrumbsRoot.jsx +8 -0
  34. package/dist/components/Carousel/Carousel.d.ts +6 -0
  35. package/dist/components/Carousel/Carousel.d.ts.map +1 -0
  36. package/dist/components/Carousel/Carousel.js +5 -0
  37. package/dist/components/Carousel/CarouselContainer.d.ts +4 -0
  38. package/dist/components/Carousel/CarouselContainer.d.ts.map +1 -0
  39. package/dist/components/Carousel/CarouselContainer.jsx +10 -0
  40. package/dist/components/Carousel/CarouselContext.d.ts +6 -0
  41. package/dist/components/Carousel/CarouselContext.d.ts.map +1 -0
  42. package/dist/components/Carousel/CarouselContext.js +2 -0
  43. package/dist/components/Carousel/CarouselRoot.d.ts +4 -0
  44. package/dist/components/Carousel/CarouselRoot.d.ts.map +1 -0
  45. package/dist/components/Carousel/CarouselRoot.jsx +53 -0
  46. package/dist/components/ClientOnly/ClientOnly.d.ts +4 -0
  47. package/dist/components/ClientOnly/ClientOnly.d.ts.map +1 -0
  48. package/dist/components/ClientOnly/ClientOnly.jsx +6 -0
  49. package/dist/components/Clipboard/Clipboard.d.ts +7 -0
  50. package/dist/components/Clipboard/Clipboard.d.ts.map +1 -0
  51. package/dist/components/Clipboard/Clipboard.jsx +15 -0
  52. package/dist/components/ContextMenu/ContextMenu.d.ts +6 -0
  53. package/dist/components/ContextMenu/ContextMenu.d.ts.map +1 -0
  54. package/dist/components/ContextMenu/ContextMenu.js +5 -0
  55. package/dist/components/ContextMenu/ContextMenuContent.d.ts +4 -0
  56. package/dist/components/ContextMenu/ContextMenuContent.d.ts.map +1 -0
  57. package/dist/components/ContextMenu/ContextMenuContent.jsx +28 -0
  58. package/dist/components/ContextMenu/ContextMenuContext.d.ts +11 -0
  59. package/dist/components/ContextMenu/ContextMenuContext.d.ts.map +1 -0
  60. package/dist/components/ContextMenu/ContextMenuContext.js +2 -0
  61. package/dist/components/ContextMenu/ContextMenuRoot.d.ts +4 -0
  62. package/dist/components/ContextMenu/ContextMenuRoot.d.ts.map +1 -0
  63. package/dist/components/ContextMenu/ContextMenuRoot.jsx +56 -0
  64. package/dist/components/Drawer/Drawer.d.ts +10 -0
  65. package/dist/components/Drawer/Drawer.d.ts.map +1 -0
  66. package/dist/components/Drawer/Drawer.js +9 -0
  67. package/dist/components/Drawer/DrawerBody.d.ts +6 -0
  68. package/dist/components/Drawer/DrawerBody.d.ts.map +1 -0
  69. package/dist/components/Drawer/DrawerBody.jsx +39 -0
  70. package/dist/components/Drawer/DrawerContext.d.ts +7 -0
  71. package/dist/components/Drawer/DrawerContext.d.ts.map +1 -0
  72. package/dist/components/Drawer/DrawerContext.js +2 -0
  73. package/dist/components/Drawer/DrawerPortal.d.ts +4 -0
  74. package/dist/components/Drawer/DrawerPortal.d.ts.map +1 -0
  75. package/dist/components/Drawer/DrawerPortal.jsx +20 -0
  76. package/dist/components/Drawer/DrawerRoot.d.ts +4 -0
  77. package/dist/components/Drawer/DrawerRoot.d.ts.map +1 -0
  78. package/dist/components/Drawer/DrawerRoot.jsx +35 -0
  79. package/dist/components/Drawer/DrawerToggle.d.ts +4 -0
  80. package/dist/components/Drawer/DrawerToggle.d.ts.map +1 -0
  81. package/dist/components/Drawer/DrawerToggle.jsx +10 -0
  82. package/dist/components/Dropdown/Dropdown.d.ts +8 -0
  83. package/dist/components/Dropdown/Dropdown.d.ts.map +1 -0
  84. package/dist/components/Dropdown/Dropdown.js +7 -0
  85. package/dist/components/Dropdown/DropdownContext.d.ts +9 -0
  86. package/dist/components/Dropdown/DropdownContext.d.ts.map +1 -0
  87. package/dist/components/Dropdown/DropdownContext.js +2 -0
  88. package/dist/components/Dropdown/DropdownMenu.d.ts +6 -0
  89. package/dist/components/Dropdown/DropdownMenu.d.ts.map +1 -0
  90. package/dist/components/Dropdown/DropdownMenu.jsx +13 -0
  91. package/dist/components/Dropdown/DropdownRoot.d.ts +6 -0
  92. package/dist/components/Dropdown/DropdownRoot.d.ts.map +1 -0
  93. package/dist/components/Dropdown/DropdownRoot.jsx +65 -0
  94. package/dist/components/Dropdown/DropdownToggle.d.ts +4 -0
  95. package/dist/components/Dropdown/DropdownToggle.d.ts.map +1 -0
  96. package/dist/components/Dropdown/DropdownToggle.jsx +11 -0
  97. package/dist/components/LinkLoader/LinkLoader.d.ts +6 -0
  98. package/dist/components/LinkLoader/LinkLoader.d.ts.map +1 -0
  99. package/dist/components/LinkLoader/LinkLoader.jsx +8 -0
  100. package/dist/components/Modal/Modal.d.ts +14 -0
  101. package/dist/components/Modal/Modal.d.ts.map +1 -0
  102. package/dist/components/Modal/Modal.js +13 -0
  103. package/dist/components/Modal/ModalBody.d.ts +4 -0
  104. package/dist/components/Modal/ModalBody.d.ts.map +1 -0
  105. package/dist/components/Modal/ModalBody.jsx +6 -0
  106. package/dist/components/Modal/ModalContent.d.ts +4 -0
  107. package/dist/components/Modal/ModalContent.d.ts.map +1 -0
  108. package/dist/components/Modal/ModalContent.jsx +22 -0
  109. package/dist/components/Modal/ModalContext.d.ts +7 -0
  110. package/dist/components/Modal/ModalContext.d.ts.map +1 -0
  111. package/dist/components/Modal/ModalContext.js +2 -0
  112. package/dist/components/Modal/ModalHeader.d.ts +4 -0
  113. package/dist/components/Modal/ModalHeader.d.ts.map +1 -0
  114. package/dist/components/Modal/ModalHeader.jsx +4 -0
  115. package/dist/components/Modal/ModalPortal.d.ts +4 -0
  116. package/dist/components/Modal/ModalPortal.d.ts.map +1 -0
  117. package/dist/components/Modal/ModalPortal.jsx +20 -0
  118. package/dist/components/Modal/ModalRoot.d.ts +6 -0
  119. package/dist/components/Modal/ModalRoot.d.ts.map +1 -0
  120. package/dist/components/Modal/ModalRoot.jsx +35 -0
  121. package/dist/components/Modal/ModalTrigger.d.ts +4 -0
  122. package/dist/components/Modal/ModalTrigger.d.ts.map +1 -0
  123. package/dist/components/Modal/ModalTrigger.jsx +10 -0
  124. package/dist/components/Otp/Otp.d.ts +8 -0
  125. package/dist/components/Otp/Otp.d.ts.map +1 -0
  126. package/dist/components/Otp/Otp.js +7 -0
  127. package/dist/components/Otp/OtpContext.d.ts +7 -0
  128. package/dist/components/Otp/OtpContext.d.ts.map +1 -0
  129. package/dist/components/Otp/OtpContext.js +4 -0
  130. package/dist/components/Otp/OtpHiddenInput.d.ts +4 -0
  131. package/dist/components/Otp/OtpHiddenInput.d.ts.map +1 -0
  132. package/dist/components/Otp/OtpHiddenInput.jsx +7 -0
  133. package/dist/components/Otp/OtpInputs.d.ts +7 -0
  134. package/dist/components/Otp/OtpInputs.d.ts.map +1 -0
  135. package/dist/components/Otp/OtpInputs.jsx +55 -0
  136. package/dist/components/Otp/OtpRoot.d.ts +4 -0
  137. package/dist/components/Otp/OtpRoot.d.ts.map +1 -0
  138. package/dist/components/Otp/OtpRoot.jsx +16 -0
  139. package/dist/components/Pagination/Pagination.d.ts +16 -0
  140. package/dist/components/Pagination/Pagination.d.ts.map +1 -0
  141. package/dist/components/Pagination/Pagination.js +12 -0
  142. package/dist/components/Pagination/PaginationContext.d.ts +8 -0
  143. package/dist/components/Pagination/PaginationContext.d.ts.map +1 -0
  144. package/dist/components/Pagination/PaginationContext.jsx +2 -0
  145. package/dist/components/Pagination/PaginationCounts.d.ts +4 -0
  146. package/dist/components/Pagination/PaginationCounts.d.ts.map +1 -0
  147. package/dist/components/Pagination/PaginationCounts.jsx +9 -0
  148. package/dist/components/Pagination/PaginationNextBtn.d.ts +6 -0
  149. package/dist/components/Pagination/PaginationNextBtn.d.ts.map +1 -0
  150. package/dist/components/Pagination/PaginationNextBtn.jsx +13 -0
  151. package/dist/components/Pagination/PaginationPrevBtn.d.ts +6 -0
  152. package/dist/components/Pagination/PaginationPrevBtn.d.ts.map +1 -0
  153. package/dist/components/Pagination/PaginationPrevBtn.jsx +13 -0
  154. package/dist/components/Pagination/PaginationSearchParamsRoot.d.ts +7 -0
  155. package/dist/components/Pagination/PaginationSearchParamsRoot.d.ts.map +1 -0
  156. package/dist/components/Pagination/PaginationSearchParamsRoot.jsx +30 -0
  157. package/dist/components/Pagination/PaginationStateRoot.d.ts +6 -0
  158. package/dist/components/Pagination/PaginationStateRoot.d.ts.map +1 -0
  159. package/dist/components/Pagination/PaginationStateRoot.jsx +11 -0
  160. package/dist/components/PasswordInput/PasswordInput.d.ts +8 -0
  161. package/dist/components/PasswordInput/PasswordInput.d.ts.map +1 -0
  162. package/dist/components/PasswordInput/PasswordInput.js +7 -0
  163. package/dist/components/PasswordInput/PasswordInputContext.d.ts +7 -0
  164. package/dist/components/PasswordInput/PasswordInputContext.d.ts.map +1 -0
  165. package/dist/components/PasswordInput/PasswordInputContext.jsx +2 -0
  166. package/dist/components/PasswordInput/PasswordInputField.d.ts +4 -0
  167. package/dist/components/PasswordInput/PasswordInputField.d.ts.map +1 -0
  168. package/dist/components/PasswordInput/PasswordInputField.jsx +7 -0
  169. package/dist/components/PasswordInput/PasswordInputRoot.d.ts +4 -0
  170. package/dist/components/PasswordInput/PasswordInputRoot.d.ts.map +1 -0
  171. package/dist/components/PasswordInput/PasswordInputRoot.jsx +9 -0
  172. package/dist/components/PasswordInput/PasswordInputToggle.d.ts +4 -0
  173. package/dist/components/PasswordInput/PasswordInputToggle.d.ts.map +1 -0
  174. package/dist/components/PasswordInput/PasswordInputToggle.jsx +20 -0
  175. package/dist/components/Portal/Portal.d.ts +6 -0
  176. package/dist/components/Portal/Portal.d.ts.map +1 -0
  177. package/dist/components/Portal/Portal.jsx +7 -0
  178. package/dist/components/Progress/Progress.d.ts +6 -0
  179. package/dist/components/Progress/Progress.d.ts.map +1 -0
  180. package/dist/components/Progress/Progress.js +5 -0
  181. package/dist/components/Progress/ProgressBar.d.ts +6 -0
  182. package/dist/components/Progress/ProgressBar.d.ts.map +1 -0
  183. package/dist/components/Progress/ProgressBar.jsx +12 -0
  184. package/dist/components/Progress/ProgressContext.d.ts +6 -0
  185. package/dist/components/Progress/ProgressContext.d.ts.map +1 -0
  186. package/dist/components/Progress/ProgressContext.js +2 -0
  187. package/dist/components/Progress/ProgressRoot.d.ts +7 -0
  188. package/dist/components/Progress/ProgressRoot.d.ts.map +1 -0
  189. package/dist/components/Progress/ProgressRoot.jsx +8 -0
  190. package/dist/components/QrCode/QrCode.d.ts +8 -0
  191. package/dist/components/QrCode/QrCode.d.ts.map +1 -0
  192. package/dist/components/QrCode/QrCode.jsx +14 -0
  193. package/dist/components/Rating/Rating.d.ts +5 -0
  194. package/dist/components/Rating/Rating.d.ts.map +1 -0
  195. package/dist/components/Rating/Rating.js +5 -0
  196. package/dist/components/Rating/RatingContext.d.ts +7 -0
  197. package/dist/components/Rating/RatingContext.d.ts.map +1 -0
  198. package/dist/components/Rating/RatingContext.js +2 -0
  199. package/dist/components/Rating/RatingItems.d.ts +10 -0
  200. package/dist/components/Rating/RatingItems.d.ts.map +1 -0
  201. package/dist/components/Rating/RatingItems.jsx +18 -0
  202. package/dist/components/Rating/RatingRoot.d.ts +4 -0
  203. package/dist/components/Rating/RatingRoot.d.ts.map +1 -0
  204. package/dist/components/Rating/RatingRoot.jsx +10 -0
  205. package/dist/components/Sheet/Sheet.d.ts +14 -0
  206. package/dist/components/Sheet/Sheet.d.ts.map +1 -0
  207. package/dist/components/Sheet/Sheet.jsx +13 -0
  208. package/dist/components/Sheet/SheetBody.d.ts +4 -0
  209. package/dist/components/Sheet/SheetBody.d.ts.map +1 -0
  210. package/dist/components/Sheet/SheetBody.jsx +21 -0
  211. package/dist/components/Sheet/SheetContent.d.ts +4 -0
  212. package/dist/components/Sheet/SheetContent.d.ts.map +1 -0
  213. package/dist/components/Sheet/SheetContent.jsx +4 -0
  214. package/dist/components/Sheet/SheetContext.d.ts +13 -0
  215. package/dist/components/Sheet/SheetContext.d.ts.map +1 -0
  216. package/dist/components/Sheet/SheetContext.js +2 -0
  217. package/dist/components/Sheet/SheetHeader.d.ts +4 -0
  218. package/dist/components/Sheet/SheetHeader.d.ts.map +1 -0
  219. package/dist/components/Sheet/SheetHeader.jsx +10 -0
  220. package/dist/components/Sheet/SheetPortal.d.ts +4 -0
  221. package/dist/components/Sheet/SheetPortal.d.ts.map +1 -0
  222. package/dist/components/Sheet/SheetPortal.jsx +17 -0
  223. package/dist/components/Sheet/SheetRoot.d.ts +4 -0
  224. package/dist/components/Sheet/SheetRoot.d.ts.map +1 -0
  225. package/dist/components/Sheet/SheetRoot.jsx +37 -0
  226. package/dist/components/Sheet/SheetToggle.d.ts +4 -0
  227. package/dist/components/Sheet/SheetToggle.d.ts.map +1 -0
  228. package/dist/components/Sheet/SheetToggle.jsx +10 -0
  229. package/dist/components/ShowMore/ShowMore.d.ts +10 -0
  230. package/dist/components/ShowMore/ShowMore.d.ts.map +1 -0
  231. package/dist/components/ShowMore/ShowMore.js +9 -0
  232. package/dist/components/ShowMore/ShowMoreContent.d.ts +4 -0
  233. package/dist/components/ShowMore/ShowMoreContent.d.ts.map +1 -0
  234. package/dist/components/ShowMore/ShowMoreContent.jsx +18 -0
  235. package/dist/components/ShowMore/ShowMoreContext.d.ts +10 -0
  236. package/dist/components/ShowMore/ShowMoreContext.d.ts.map +1 -0
  237. package/dist/components/ShowMore/ShowMoreContext.js +2 -0
  238. package/dist/components/ShowMore/ShowMoreFade.d.ts +4 -0
  239. package/dist/components/ShowMore/ShowMoreFade.d.ts.map +1 -0
  240. package/dist/components/ShowMore/ShowMoreFade.jsx +8 -0
  241. package/dist/components/ShowMore/ShowMoreRoot.d.ts +7 -0
  242. package/dist/components/ShowMore/ShowMoreRoot.d.ts.map +1 -0
  243. package/dist/components/ShowMore/ShowMoreRoot.jsx +23 -0
  244. package/dist/components/ShowMore/ShowMoreTrigger.d.ts +4 -0
  245. package/dist/components/ShowMore/ShowMoreTrigger.d.ts.map +1 -0
  246. package/dist/components/ShowMore/ShowMoreTrigger.jsx +11 -0
  247. package/dist/components/Slide/Slide.d.ts +12 -0
  248. package/dist/components/Slide/Slide.d.ts.map +1 -0
  249. package/dist/components/Slide/Slide.js +11 -0
  250. package/dist/components/Slide/SlideContent.d.ts +4 -0
  251. package/dist/components/Slide/SlideContent.d.ts.map +1 -0
  252. package/dist/components/Slide/SlideContent.jsx +4 -0
  253. package/dist/components/Slide/SlideContext.d.ts +7 -0
  254. package/dist/components/Slide/SlideContext.d.ts.map +1 -0
  255. package/dist/components/Slide/SlideContext.js +5 -0
  256. package/dist/components/Slide/SlideHeader.d.ts +4 -0
  257. package/dist/components/Slide/SlideHeader.d.ts.map +1 -0
  258. package/dist/components/Slide/SlideHeader.jsx +4 -0
  259. package/dist/components/Slide/SlidePortal.d.ts +4 -0
  260. package/dist/components/Slide/SlidePortal.d.ts.map +1 -0
  261. package/dist/components/Slide/SlidePortal.jsx +11 -0
  262. package/dist/components/Slide/SlideRoot.d.ts +4 -0
  263. package/dist/components/Slide/SlideRoot.d.ts.map +1 -0
  264. package/dist/components/Slide/SlideRoot.jsx +30 -0
  265. package/dist/components/Slide/SlideToggle.d.ts +4 -0
  266. package/dist/components/Slide/SlideToggle.d.ts.map +1 -0
  267. package/dist/components/Slide/SlideToggle.jsx +10 -0
  268. package/dist/components/Spoiler/Spoiler.d.ts +6 -0
  269. package/dist/components/Spoiler/Spoiler.d.ts.map +1 -0
  270. package/dist/components/Spoiler/Spoiler.jsx +11 -0
  271. package/dist/components/Steps/Steps.d.ts +16 -0
  272. package/dist/components/Steps/Steps.d.ts.map +1 -0
  273. package/dist/components/Steps/Steps.js +12 -0
  274. package/dist/components/Steps/StepsContext.d.ts +14 -0
  275. package/dist/components/Steps/StepsContext.d.ts.map +1 -0
  276. package/dist/components/Steps/StepsContext.jsx +2 -0
  277. package/dist/components/Steps/StepsControls.d.ts +4 -0
  278. package/dist/components/Steps/StepsControls.d.ts.map +1 -0
  279. package/dist/components/Steps/StepsControls.jsx +34 -0
  280. package/dist/components/Steps/StepsNextBtn.d.ts +6 -0
  281. package/dist/components/Steps/StepsNextBtn.d.ts.map +1 -0
  282. package/dist/components/Steps/StepsNextBtn.jsx +13 -0
  283. package/dist/components/Steps/StepsPrevBtn.d.ts +6 -0
  284. package/dist/components/Steps/StepsPrevBtn.d.ts.map +1 -0
  285. package/dist/components/Steps/StepsPrevBtn.jsx +13 -0
  286. package/dist/components/Steps/StepsSearchParamsRoot.d.ts +8 -0
  287. package/dist/components/Steps/StepsSearchParamsRoot.d.ts.map +1 -0
  288. package/dist/components/Steps/StepsSearchParamsRoot.jsx +30 -0
  289. package/dist/components/Steps/StepsStateRoot.d.ts +7 -0
  290. package/dist/components/Steps/StepsStateRoot.d.ts.map +1 -0
  291. package/dist/components/Steps/StepsStateRoot.jsx +11 -0
  292. package/dist/components/Swap/Swap.d.ts +8 -0
  293. package/dist/components/Swap/Swap.d.ts.map +1 -0
  294. package/dist/components/Swap/Swap.js +7 -0
  295. package/dist/components/Swap/SwapContext.d.ts +7 -0
  296. package/dist/components/Swap/SwapContext.d.ts.map +1 -0
  297. package/dist/components/Swap/SwapContext.js +2 -0
  298. package/dist/components/Swap/SwapItem.d.ts +4 -0
  299. package/dist/components/Swap/SwapItem.d.ts.map +1 -0
  300. package/dist/components/Swap/SwapItem.jsx +5 -0
  301. package/dist/components/Swap/SwapRoot.d.ts +8 -0
  302. package/dist/components/Swap/SwapRoot.d.ts.map +1 -0
  303. package/dist/components/Swap/SwapRoot.jsx +16 -0
  304. package/dist/components/Swap/SwapTrigger.d.ts +6 -0
  305. package/dist/components/Swap/SwapTrigger.d.ts.map +1 -0
  306. package/dist/components/Swap/SwapTrigger.jsx +16 -0
  307. package/dist/components/Tabs/Tabs.d.ts +10 -0
  308. package/dist/components/Tabs/Tabs.d.ts.map +1 -0
  309. package/dist/components/Tabs/Tabs.js +9 -0
  310. package/dist/components/Tabs/TabsContext.d.ts +7 -0
  311. package/dist/components/Tabs/TabsContext.d.ts.map +1 -0
  312. package/dist/components/Tabs/TabsContext.js +5 -0
  313. package/dist/components/Tabs/TabsList.d.ts +4 -0
  314. package/dist/components/Tabs/TabsList.d.ts.map +1 -0
  315. package/dist/components/Tabs/TabsList.jsx +5 -0
  316. package/dist/components/Tabs/TabsPanel.d.ts +6 -0
  317. package/dist/components/Tabs/TabsPanel.d.ts.map +1 -0
  318. package/dist/components/Tabs/TabsPanel.jsx +9 -0
  319. package/dist/components/Tabs/TabsRoot.d.ts +7 -0
  320. package/dist/components/Tabs/TabsRoot.d.ts.map +1 -0
  321. package/dist/components/Tabs/TabsRoot.jsx +7 -0
  322. package/dist/components/Tabs/TabsTab.d.ts +6 -0
  323. package/dist/components/Tabs/TabsTab.d.ts.map +1 -0
  324. package/dist/components/Tabs/TabsTab.jsx +10 -0
  325. package/dist/components/Toast/Toast.d.ts +4 -0
  326. package/dist/components/Toast/Toast.d.ts.map +1 -0
  327. package/dist/components/Toast/Toast.js +3 -0
  328. package/dist/components/Toast/ToastBox.d.ts +6 -0
  329. package/dist/components/Toast/ToastBox.d.ts.map +1 -0
  330. package/dist/components/Toast/ToastBox.jsx +32 -0
  331. package/dist/components/Toast/ToastRoot.d.ts +15 -0
  332. package/dist/components/Toast/ToastRoot.d.ts.map +1 -0
  333. package/dist/components/Toast/ToastRoot.jsx +38 -0
  334. package/dist/components/Toast/toastStore.d.ts +11 -0
  335. package/dist/components/Toast/toastStore.d.ts.map +1 -0
  336. package/dist/components/Toast/toastStore.js +10 -0
  337. package/dist/components/Toggle/Toggle.d.ts +6 -0
  338. package/dist/components/Toggle/Toggle.d.ts.map +1 -0
  339. package/dist/components/Toggle/Toggle.js +5 -0
  340. package/dist/components/Toggle/ToggleContext.d.ts +8 -0
  341. package/dist/components/Toggle/ToggleContext.d.ts.map +1 -0
  342. package/dist/components/Toggle/ToggleContext.js +2 -0
  343. package/dist/components/Toggle/ToggleRoot.d.ts +8 -0
  344. package/dist/components/Toggle/ToggleRoot.d.ts.map +1 -0
  345. package/dist/components/Toggle/ToggleRoot.jsx +13 -0
  346. package/dist/components/Toggle/ToggleSwitch.d.ts +4 -0
  347. package/dist/components/Toggle/ToggleSwitch.d.ts.map +1 -0
  348. package/dist/components/Toggle/ToggleSwitch.jsx +23 -0
  349. package/dist/index.d.ts +29 -0
  350. package/dist/index.d.ts.map +1 -0
  351. package/dist/index.js +28 -0
  352. package/package.json +43 -0
  353. package/src/components/AccessNavigation/AccessNavigation.tsx +46 -0
  354. package/src/components/Accordion/Accordion.ts +8 -0
  355. package/src/components/Accordion/AccordionBody.tsx +31 -0
  356. package/src/components/Accordion/AccordionContext.ts +8 -0
  357. package/src/components/Accordion/AccordionRoot.tsx +17 -0
  358. package/src/components/Accordion/AccordionToggle.tsx +29 -0
  359. package/src/components/Affix/Affix.tsx +59 -0
  360. package/src/components/Breadcrumbs/Breadcrumbs.ts +6 -0
  361. package/src/components/Breadcrumbs/BreadcrumbsContext.ts +7 -0
  362. package/src/components/Breadcrumbs/BreadcrumbsItem.tsx +24 -0
  363. package/src/components/Breadcrumbs/BreadcrumbsRoot.tsx +21 -0
  364. package/src/components/Carousel/Carousel.ts +6 -0
  365. package/src/components/Carousel/CarouselContainer.tsx +18 -0
  366. package/src/components/Carousel/CarouselContext.ts +7 -0
  367. package/src/components/Carousel/CarouselRoot.tsx +75 -0
  368. package/src/components/ClientOnly/ClientOnly.tsx +12 -0
  369. package/src/components/Clipboard/Clipboard.tsx +36 -0
  370. package/src/components/ContextMenu/ContextMenu.ts +6 -0
  371. package/src/components/ContextMenu/ContextMenuContent.tsx +51 -0
  372. package/src/components/ContextMenu/ContextMenuContext.ts +9 -0
  373. package/src/components/ContextMenu/ContextMenuRoot.tsx +79 -0
  374. package/src/components/Drawer/Drawer.ts +10 -0
  375. package/src/components/Drawer/DrawerBody.tsx +67 -0
  376. package/src/components/Drawer/DrawerContext.ts +8 -0
  377. package/src/components/Drawer/DrawerPortal.tsx +40 -0
  378. package/src/components/Drawer/DrawerRoot.tsx +45 -0
  379. package/src/components/Drawer/DrawerToggle.tsx +21 -0
  380. package/src/components/Dropdown/Dropdown.ts +8 -0
  381. package/src/components/Dropdown/DropdownContext.ts +10 -0
  382. package/src/components/Dropdown/DropdownMenu.tsx +34 -0
  383. package/src/components/Dropdown/DropdownRoot.tsx +90 -0
  384. package/src/components/Dropdown/DropdownToggle.tsx +23 -0
  385. package/src/components/LinkLoader/LinkLoader.tsx +16 -0
  386. package/src/components/Modal/Modal.ts +14 -0
  387. package/src/components/Modal/ModalBody.tsx +12 -0
  388. package/src/components/Modal/ModalContent.tsx +44 -0
  389. package/src/components/Modal/ModalContext.ts +8 -0
  390. package/src/components/Modal/ModalHeader.tsx +10 -0
  391. package/src/components/Modal/ModalPortal.tsx +40 -0
  392. package/src/components/Modal/ModalRoot.tsx +47 -0
  393. package/src/components/Modal/ModalTrigger.tsx +21 -0
  394. package/src/components/Otp/Otp.ts +8 -0
  395. package/src/components/Otp/OtpContext.ts +10 -0
  396. package/src/components/Otp/OtpHiddenInput.tsx +15 -0
  397. package/src/components/Otp/OtpInputs.tsx +86 -0
  398. package/src/components/Otp/OtpRoot.tsx +26 -0
  399. package/src/components/Pagination/Pagination.ts +15 -0
  400. package/src/components/Pagination/PaginationContext.tsx +10 -0
  401. package/src/components/Pagination/PaginationCounts.tsx +17 -0
  402. package/src/components/Pagination/PaginationNextBtn.tsx +27 -0
  403. package/src/components/Pagination/PaginationPrevBtn.tsx +27 -0
  404. package/src/components/Pagination/PaginationSearchParamsRoot.tsx +45 -0
  405. package/src/components/Pagination/PaginationStateRoot.tsx +23 -0
  406. package/src/components/PasswordInput/PasswordInput.ts +8 -0
  407. package/src/components/PasswordInput/PasswordInputContext.tsx +8 -0
  408. package/src/components/PasswordInput/PasswordInputField.tsx +15 -0
  409. package/src/components/PasswordInput/PasswordInputRoot.tsx +17 -0
  410. package/src/components/PasswordInput/PasswordInputToggle.tsx +52 -0
  411. package/src/components/Portal/Portal.tsx +17 -0
  412. package/src/components/Progress/Progress.ts +6 -0
  413. package/src/components/Progress/ProgressBar.tsx +29 -0
  414. package/src/components/Progress/ProgressContext.ts +8 -0
  415. package/src/components/Progress/ProgressRoot.tsx +22 -0
  416. package/src/components/QrCode/QrCode.tsx +22 -0
  417. package/src/components/Rating/Rating.ts +6 -0
  418. package/src/components/Rating/RatingContext.ts +8 -0
  419. package/src/components/Rating/RatingItems.tsx +50 -0
  420. package/src/components/Rating/RatingRoot.tsx +22 -0
  421. package/src/components/Sheet/Sheet.tsx +14 -0
  422. package/src/components/Sheet/SheetBody.tsx +49 -0
  423. package/src/components/Sheet/SheetContent.tsx +8 -0
  424. package/src/components/Sheet/SheetContext.ts +14 -0
  425. package/src/components/Sheet/SheetHeader.tsx +24 -0
  426. package/src/components/Sheet/SheetPortal.tsx +35 -0
  427. package/src/components/Sheet/SheetRoot.tsx +56 -0
  428. package/src/components/Sheet/SheetToggle.tsx +21 -0
  429. package/src/components/ShowMore/ShowMore.ts +10 -0
  430. package/src/components/ShowMore/ShowMoreContent.tsx +31 -0
  431. package/src/components/ShowMore/ShowMoreContext.ts +11 -0
  432. package/src/components/ShowMore/ShowMoreFade.tsx +18 -0
  433. package/src/components/ShowMore/ShowMoreRoot.tsx +37 -0
  434. package/src/components/ShowMore/ShowMoreTrigger.tsx +23 -0
  435. package/src/components/Slide/Slide.ts +12 -0
  436. package/src/components/Slide/SlideContent.tsx +8 -0
  437. package/src/components/Slide/SlideContext.ts +11 -0
  438. package/src/components/Slide/SlideHeader.tsx +10 -0
  439. package/src/components/Slide/SlidePortal.tsx +26 -0
  440. package/src/components/Slide/SlideRoot.tsx +39 -0
  441. package/src/components/Slide/SlideToggle.tsx +21 -0
  442. package/src/components/Spoiler/Spoiler.tsx +28 -0
  443. package/src/components/Steps/Steps.ts +15 -0
  444. package/src/components/Steps/StepsContext.tsx +16 -0
  445. package/src/components/Steps/StepsControls.tsx +56 -0
  446. package/src/components/Steps/StepsNextBtn.tsx +27 -0
  447. package/src/components/Steps/StepsPrevBtn.tsx +27 -0
  448. package/src/components/Steps/StepsSearchParamsRoot.tsx +45 -0
  449. package/src/components/Steps/StepsStateRoot.tsx +23 -0
  450. package/src/components/Swap/Swap.ts +8 -0
  451. package/src/components/Swap/SwapContext.ts +9 -0
  452. package/src/components/Swap/SwapItem.tsx +16 -0
  453. package/src/components/Swap/SwapRoot.tsx +29 -0
  454. package/src/components/Swap/SwapTrigger.tsx +31 -0
  455. package/src/components/Tabs/Tabs.ts +10 -0
  456. package/src/components/Tabs/TabsContext.ts +11 -0
  457. package/src/components/Tabs/TabsList.tsx +12 -0
  458. package/src/components/Tabs/TabsPanel.tsx +23 -0
  459. package/src/components/Tabs/TabsRoot.tsx +18 -0
  460. package/src/components/Tabs/TabsTab.tsx +23 -0
  461. package/src/components/Toast/Toast.ts +3 -0
  462. package/src/components/Toast/ToastBox.tsx +50 -0
  463. package/src/components/Toast/ToastRoot.tsx +71 -0
  464. package/src/components/Toast/toastStore.ts +22 -0
  465. package/src/components/Toggle/Toggle.ts +6 -0
  466. package/src/components/Toggle/ToggleContext.ts +9 -0
  467. package/src/components/Toggle/ToggleRoot.tsx +26 -0
  468. package/src/components/Toggle/ToggleSwitch.tsx +41 -0
  469. package/src/index.ts +28 -0
  470. package/tsconfig.json +17 -0
@@ -0,0 +1,50 @@
1
+ "use client";
2
+
3
+ import { cn } from "@kadoui/utils";
4
+ import { StarIcon } from "lucide-react";
5
+ import { ButtonHTMLAttributes, ReactNode, use } from "react";
6
+
7
+ import { RatingContext } from "./RatingContext";
8
+
9
+ export type RatingItemsPropsT = ButtonHTMLAttributes<HTMLButtonElement> & {
10
+ count: number;
11
+ value: number;
12
+ onValueChange: (newValue: number) => void;
13
+ element?: ReactNode;
14
+ activeElement?: ReactNode;
15
+ }
16
+
17
+ export function RatingItems({ count, value, onValueChange, element, activeElement, className, ...p }: RatingItemsPropsT) {
18
+ const { hoverValue, setHoverValue } = use(RatingContext);
19
+
20
+ const defaultElement = element || <StarIcon className="icon-size-3 text-palette" />;
21
+ const defaultActiveElement = activeElement || <StarIcon className="icon-size-3 text-palette fill-palette" />;
22
+
23
+ const displayValue = hoverValue !== null ? hoverValue : value;
24
+
25
+ return (
26
+ Array.from({ length: count }).map((_, index) => {
27
+ const itemValue = index + 1;
28
+ const isActive = itemValue <= displayValue;
29
+
30
+ return (
31
+ <button
32
+ key={index}
33
+ role="radio"
34
+ type="button"
35
+ className={cn(
36
+ "transition-all px-0.5 not-active:hover:-translate-y-0.5",
37
+ className
38
+ )}
39
+ aria-checked={itemValue === value}
40
+ onClick={() => onValueChange(itemValue)}
41
+ onMouseEnter={() => setHoverValue(itemValue)}
42
+ aria-label={`${itemValue} out of ${count} stars`}
43
+ {...p}
44
+ >
45
+ {isActive ? defaultActiveElement : defaultElement}
46
+ </button>
47
+ )
48
+ })
49
+ )
50
+ }
@@ -0,0 +1,22 @@
1
+ "use client"
2
+
3
+ import { cn } from "@kadoui/utils";
4
+ import { HTMLAttributes, useState } from "react";
5
+
6
+ import { RatingContext, RatingContextT } from "./RatingContext";
7
+
8
+ export type RatingRootPropsT = HTMLAttributes<HTMLDivElement>
9
+
10
+ export const RatingRoot = ({ className, ...p }: RatingRootPropsT) => {
11
+ const [hoverValue, setHoverValue] = useState<RatingContextT["hoverValue"]>(null);
12
+
13
+ return (
14
+ <RatingContext value={{ hoverValue, setHoverValue }}>
15
+ <div
16
+ className={cn("f-align w-fit max-w-full", className)}
17
+ onMouseLeave={() => setHoverValue(null)}
18
+ {...p}
19
+ />
20
+ </RatingContext>
21
+ )
22
+ }
@@ -0,0 +1,14 @@
1
+ import { SheetBody } from "./SheetBody";
2
+ import { SheetRoot } from "./SheetRoot";
3
+ import { SheetHeader } from "./SheetHeader";
4
+ import { SheetPortal } from "./SheetPortal";
5
+ import { SheetToggle } from "./SheetToggle";
6
+ import { SheetContent } from "./SheetContent";
7
+
8
+ export const Sheet = Object.assign(SheetRoot, {
9
+ Portal: SheetPortal,
10
+ Body: SheetBody,
11
+ Header: SheetHeader,
12
+ Content: SheetContent,
13
+ Toggle: SheetToggle
14
+ });
@@ -0,0 +1,49 @@
1
+ "use client";
2
+
3
+ import { use } from "react";
4
+ import { cn } from "@kadoui/utils";
5
+ import { HTMLMotionProps, motion } from "framer-motion";
6
+
7
+ import { SheetContext } from "./SheetContext";
8
+
9
+ export type SheetBodyPropsT = HTMLMotionProps<"div">;
10
+
11
+ export function SheetBody({ className, ...props }: SheetBodyPropsT) {
12
+ const { drawerRef, controls, y, closeHandler: handleClose } = use(SheetContext);
13
+
14
+ return (
15
+ <motion.div
16
+ id="drawer"
17
+ ref={drawerRef}
18
+ onClick={(ev) => ev.stopPropagation()}
19
+ initial={{ y: "100%" }}
20
+ animate={{ y: "0%" }}
21
+ exit={{ y: "100%" }}
22
+ style={{ y }}
23
+ drag="y"
24
+ dragControls={controls}
25
+ dragListener={false}
26
+ transition={{
27
+ ease: "easeInOut",
28
+ }}
29
+ className={cn(
30
+ "absolute bottom-0 h-[75%] w-full overflow-hidden bg-background",
31
+ className
32
+ )}
33
+ onDragEnd={() => {
34
+ if ((y?.get() || 0) >= 100) {
35
+ handleClose();
36
+ }
37
+ }}
38
+ dragConstraints={{
39
+ top: 0,
40
+ bottom: 0,
41
+ }}
42
+ dragElastic={{
43
+ top: 0,
44
+ bottom: 0.5,
45
+ }}
46
+ {...props}
47
+ />
48
+ );
49
+ }
@@ -0,0 +1,8 @@
1
+ import { cn } from "@kadoui/utils";
2
+ import { HTMLAttributes } from "react";
3
+
4
+ export type SheetContentPropsT = HTMLAttributes<HTMLDivElement>;
5
+
6
+ export function SheetContent({ className, ...props }: SheetContentPropsT) {
7
+ return <div className={cn("overflow-y-auto h-[calc(100%-1.75rem)] px-3 pb-3", className)} {...props} />;
8
+ }
@@ -0,0 +1,14 @@
1
+ import { AnimationScope, DragControls, MotionValue } from "framer-motion";
2
+ import { createContext, Dispatch, RefObject, SetStateAction } from "react";
3
+
4
+ export type SheetContextT = {
5
+ isOpen: boolean;
6
+ setOpen: Dispatch<SetStateAction<boolean>>;
7
+ closeHandler: () => void;
8
+ drawerRef?: RefObject<HTMLDivElement>;
9
+ scope?: AnimationScope<any>;
10
+ controls?: DragControls;
11
+ y?: MotionValue<number>;
12
+ }
13
+
14
+ export const SheetContext = createContext<SheetContextT>({} as SheetContextT);
@@ -0,0 +1,24 @@
1
+ "use client";
2
+
3
+ import { cn } from "@kadoui/utils";
4
+ import { HTMLAttributes, use } from "react";
5
+
6
+ import { SheetContext } from "./SheetContext";
7
+
8
+ export type SheetHeaderPropsT = HTMLAttributes<HTMLDivElement>;
9
+
10
+ export function SheetHeader({ className, children, ...props }: SheetHeaderPropsT) {
11
+ const { controls } = use(SheetContext);
12
+
13
+ return (
14
+ <div
15
+ className={cn("h-7 f-center", className)}
16
+ onPointerDown={(ev) => controls?.start(ev)}
17
+ {...props}
18
+ >
19
+ {children || (
20
+ <span className="h-1 w-1/3 rounded-full bg-foreground/10" />
21
+ )}
22
+ </div>
23
+ );
24
+ }
@@ -0,0 +1,35 @@
1
+ "use client";
2
+
3
+ import { use } from "react";
4
+ import { cn } from "@kadoui/utils";
5
+ import { AnimatePresence, HTMLMotionProps, motion } from "framer-motion";
6
+
7
+ import { Portal } from "../Portal/Portal";
8
+ import { SheetContext } from "./SheetContext";
9
+ import { ClientOnly } from "../ClientOnly/ClientOnly";
10
+
11
+ export type SheetPortalPropsT = HTMLMotionProps<"div">;
12
+
13
+ export function SheetPortal({ className, ...props }: SheetPortalPropsT) {
14
+ const { isOpen, closeHandler: handleClose, scope } = use(SheetContext);
15
+
16
+ return (
17
+ <ClientOnly>
18
+ <Portal>
19
+ <AnimatePresence>
20
+ {isOpen ? (
21
+ <motion.div
22
+ ref={scope}
23
+ onClick={handleClose}
24
+ initial={{ opacity: 0 }}
25
+ animate={{ opacity: 1 }}
26
+ exit={{ opacity: 0 }}
27
+ className={cn("fixed inset-0 z-50 bg-foreground/10", className)}
28
+ {...props}
29
+ />
30
+ ) : null}
31
+ </AnimatePresence>
32
+ </Portal>
33
+ </ClientOnly>
34
+ )
35
+ }
@@ -0,0 +1,56 @@
1
+ "use client";
2
+
3
+ import { useElementSize } from "@mantine/hooks";
4
+ import { PropsWithChildren, useEffect, useState } from "react";
5
+ import {
6
+ useDragControls,
7
+ useMotionValue,
8
+ useAnimate,
9
+ } from "framer-motion";
10
+
11
+ import { SheetContext } from "./SheetContext";
12
+
13
+ export type SheetRootPropsT = PropsWithChildren;
14
+
15
+ export function SheetRoot({ children }: SheetRootPropsT) {
16
+ const { ref: drawerRef, height } = useElementSize();
17
+
18
+ const y = useMotionValue(0);
19
+ const controls = useDragControls();
20
+ const [scope, animate] = useAnimate();
21
+
22
+ const [isOpen, setOpen] = useState(false);
23
+
24
+ useEffect(() => {
25
+ const removeOverflow = () => {
26
+ document.body.classList.remove("overflow-hidden");
27
+ };
28
+
29
+ if (isOpen) {
30
+ document.body.classList.add("overflow-hidden");
31
+ } else {
32
+ removeOverflow();
33
+ }
34
+
35
+ return () => removeOverflow();
36
+ }, [isOpen]);
37
+
38
+ const closeHandler = async () => {
39
+ animate(scope.current, {
40
+ opacity: [1, 0],
41
+ });
42
+
43
+ const yStart = typeof y.get() === "number" ? y.get() : 0;
44
+ await animate("#drawer", {
45
+ y: [yStart, height],
46
+ });
47
+
48
+ setOpen(false);
49
+ };
50
+
51
+ return (
52
+ <SheetContext value={{ isOpen, setOpen, closeHandler, drawerRef, scope, controls, y }}>
53
+ {children}
54
+ </SheetContext>
55
+ );
56
+ }
@@ -0,0 +1,21 @@
1
+ "use client";
2
+
3
+ import { HTMLAttributes, use } from "react";
4
+
5
+ import { SheetContext } from "./SheetContext";
6
+
7
+ export type SheetTogglePropsT = HTMLAttributes<HTMLButtonElement>;
8
+
9
+ export function SheetToggle({ onClick, ...props }: SheetTogglePropsT) {
10
+ const { setOpen } = use(SheetContext);
11
+
12
+ return (
13
+ <button
14
+ onClick={ev => {
15
+ onClick?.(ev)
16
+ setOpen(prev => !prev)
17
+ }}
18
+ {...props}
19
+ />
20
+ )
21
+ }
@@ -0,0 +1,10 @@
1
+ import { ShowMoreRoot } from "./ShowMoreRoot";
2
+ import { ShowMoreFade } from "./ShowMoreFade";
3
+ import { ShowMoreContent } from "./ShowMoreContent";
4
+ import { ShowMoreTrigger } from "./ShowMoreTrigger";
5
+
6
+ export const ShowMore = Object.assign(ShowMoreRoot, {
7
+ Content: ShowMoreContent,
8
+ Trigger: ShowMoreTrigger,
9
+ Fade: ShowMoreFade
10
+ });
@@ -0,0 +1,31 @@
1
+ "use client"
2
+
3
+ import { cn } from "@kadoui/utils";
4
+ import { HTMLAttributes, use } from "react";
5
+
6
+ import { ShowMoreContext } from "./ShowMoreContext";
7
+
8
+ export type ShowMoreContentPropsT = HTMLAttributes<HTMLDivElement>;
9
+
10
+ export function ShowMoreContent({ children, className, ...props }: ShowMoreContentPropsT) {
11
+ const { contentRef, shouldShowMore, isShowMore, maxHeight } = use(ShowMoreContext);
12
+
13
+ return (
14
+ <div
15
+ ref={contentRef}
16
+ className={cn("overflow-hidden transition-all", className)}
17
+ style={{
18
+ height: shouldShowMore
19
+ ? isShowMore
20
+ ? contentRef.current?.scrollHeight
21
+ ? `${contentRef.current.scrollHeight}px`
22
+ : "auto"
23
+ : maxHeight
24
+ : "auto"
25
+ }}
26
+ {...props}
27
+ >
28
+ {children}
29
+ </div>
30
+ )
31
+ }
@@ -0,0 +1,11 @@
1
+ import { createContext, Dispatch, RefObject, SetStateAction } from "react";
2
+
3
+ export type ShowMoreContextT = {
4
+ contentRef: RefObject<HTMLDivElement | null>;
5
+ shouldShowMore: boolean;
6
+ isShowMore: boolean;
7
+ setIsShowMore: Dispatch<SetStateAction<boolean>>;
8
+ maxHeight: number;
9
+ }
10
+
11
+ export const ShowMoreContext = createContext<ShowMoreContextT>({} as ShowMoreContextT);
@@ -0,0 +1,18 @@
1
+ "use client";
2
+
3
+ import { cn } from "@kadoui/utils";
4
+ import { HTMLAttributes, use } from "react";
5
+
6
+ import { ShowMoreContext } from "./ShowMoreContext";
7
+
8
+ export type ShowMoreFadePropsT = HTMLAttributes<HTMLDivElement>;
9
+
10
+ export function ShowMoreFade({ className, ...p }: ShowMoreFadePropsT) {
11
+ const { shouldShowMore, isShowMore } = use(ShowMoreContext);
12
+
13
+ return (
14
+ shouldShowMore && !isShowMore ? (
15
+ <div className={cn("absolute inset-0 bg-gradient-to-t from-background from-35% to-transparent", className)} {...p} />
16
+ ) : null
17
+ )
18
+ }
@@ -0,0 +1,37 @@
1
+ "use client"
2
+
3
+ import { cn } from "@kadoui/utils";
4
+ import { HTMLAttributes, useEffect, useRef, useState } from "react";
5
+
6
+ import { ShowMoreContext } from "./ShowMoreContext";
7
+
8
+ export type ShowMoreRootPropsT = HTMLAttributes<HTMLDivElement> & {
9
+ maxLines: number;
10
+ defaultExpanded?: boolean;
11
+ }
12
+
13
+ export function ShowMoreRoot({ maxLines, defaultExpanded = false, className, ...p }: ShowMoreRootPropsT) {
14
+ const [shouldShowMore, setShouldShowMore] = useState(false);
15
+ const [isShowMore, setIsShowMore] = useState(defaultExpanded);
16
+ const [maxHeight, setMaxHeight] = useState(0);
17
+
18
+ const contentRef = useRef<HTMLDivElement>(null);
19
+
20
+ useEffect(() => {
21
+ if (contentRef.current) {
22
+ const element = contentRef.current;
23
+ const lineHeight = Number.parseInt(window.getComputedStyle(element).lineHeight);
24
+ const maxHeight = lineHeight * (maxLines || 3);
25
+ const actualHeight = element.scrollHeight;
26
+
27
+ setMaxHeight(maxHeight);
28
+ setShouldShowMore(actualHeight > maxHeight);
29
+ }
30
+ }, [maxLines])
31
+
32
+ return (
33
+ <ShowMoreContext value={{ contentRef, isShowMore, setIsShowMore, maxHeight, shouldShowMore }}>
34
+ <div className={cn("relative", className)} {...p}></div>
35
+ </ShowMoreContext>
36
+ )
37
+ }
@@ -0,0 +1,23 @@
1
+ "use client";
2
+
3
+ import { cn } from "@kadoui/utils";
4
+ import { ButtonHTMLAttributes, use } from "react";
5
+
6
+ import { ShowMoreContext } from "./ShowMoreContext";
7
+
8
+ export type ShowMoreTriggerPropsT = ButtonHTMLAttributes<HTMLButtonElement>;
9
+
10
+ export function ShowMoreTrigger({ onClick, className, ...p }: ShowMoreTriggerPropsT) {
11
+ const { setIsShowMore } = use(ShowMoreContext);
12
+
13
+ return (
14
+ <button
15
+ className={cn("relative", className)}
16
+ onClick={ev => {
17
+ onClick?.(ev);
18
+ setIsShowMore(prev => !prev);
19
+ }}
20
+ {...p}
21
+ />
22
+ )
23
+ }
@@ -0,0 +1,12 @@
1
+ import { SlideRoot } from "./SlideRoot";
2
+ import { SlideHeader } from "./SlideHeader";
3
+ import { SlidePortal } from "./SlidePortal";
4
+ import { SlideToggle } from "./SlideToggle";
5
+ import { SlideContent } from "./SlideContent";
6
+
7
+ export const Slide = Object.assign(SlideRoot, {
8
+ Portal: SlidePortal,
9
+ Toggle: SlideToggle,
10
+ Header: SlideHeader,
11
+ Content: SlideContent
12
+ });
@@ -0,0 +1,8 @@
1
+ import { cn } from "@kadoui/utils";
2
+ import { HTMLAttributes } from "react";
3
+
4
+ export type SlideContentPropsT = HTMLAttributes<HTMLDivElement>;
5
+
6
+ export function SlideContent({ className, ...props }: SlideContentPropsT) {
7
+ return <div className={cn("h-[calc(100dvh-5rem)] py-3 overflow-y-auto", className)} {...props} />;
8
+ }
@@ -0,0 +1,11 @@
1
+ import { createContext, Dispatch, SetStateAction } from "react";
2
+
3
+ export type SlideContextT = {
4
+ isOpen: boolean;
5
+ setOpen: Dispatch<SetStateAction<boolean>>;
6
+ }
7
+
8
+ export const SlideContext = createContext<SlideContextT>({
9
+ isOpen: false,
10
+ setOpen: () => { }
11
+ });
@@ -0,0 +1,10 @@
1
+ import { cn } from "@kadoui/utils";
2
+ import { HTMLAttributes } from "react";
3
+
4
+ export type SlideHeaderPropsT = HTMLAttributes<HTMLHeadingElement>
5
+
6
+ export function SlideHeader({ className, ...props }: SlideHeaderPropsT) {
7
+ return (
8
+ <header className={cn("h-20 f-align border-b border-foreground/10", className)} {...props} />
9
+ );
10
+ }
@@ -0,0 +1,26 @@
1
+ "use client";
2
+
3
+ import { cn } from "@kadoui/utils";
4
+ import { HTMLAttributes, use } from "react";
5
+
6
+ import { Portal } from "../Portal/Portal";
7
+ import { SlideContext } from "./SlideContext";
8
+
9
+ export type SlidePortalPropsT = HTMLAttributes<HTMLDivElement>;
10
+
11
+ export function SlidePortal({ className, ...props }: SlidePortalPropsT) {
12
+ const { isOpen } = use(SlideContext);
13
+
14
+ return (
15
+ <Portal>
16
+ <div
17
+ className={cn(
18
+ "w-screen h-dvh bg-background fixed top-0 left-0 transition-all duration-700",
19
+ isOpen ? "" : "faint -translate-x-full",
20
+ className
21
+ )}
22
+ {...props}
23
+ />
24
+ </Portal>
25
+ );
26
+ }
@@ -0,0 +1,39 @@
1
+ "use client";
2
+
3
+ import { PropsWithChildren, useEffect, useState } from "react";
4
+
5
+ import { SlideContext } from "./SlideContext";
6
+
7
+ export type SlideRootPropsT = PropsWithChildren;
8
+
9
+ export function SlideRoot({ children }: SlideRootPropsT) {
10
+ const [isOpen, setOpen] = useState(false);
11
+
12
+ useEffect(() => {
13
+ const rootElem = document.getElementById("root");
14
+ if (!rootElem) {
15
+ return;
16
+ };
17
+
18
+ const bodyElem = document.body;
19
+
20
+ if (isOpen) {
21
+ bodyElem.classList.add("overflow-hidden");
22
+ rootElem.classList.add("translate-x-full");
23
+ } else {
24
+ bodyElem.classList.remove("overflow-hidden");
25
+ rootElem.classList.remove("translate-x-full");
26
+ };
27
+
28
+ return () => {
29
+ bodyElem.classList.remove("overflow-hidden");
30
+ rootElem.classList.remove("translate-x-full");
31
+ };
32
+ }, [isOpen]);
33
+
34
+ return (
35
+ <SlideContext value={{ isOpen, setOpen }}>
36
+ {children}
37
+ </SlideContext>
38
+ )
39
+ }
@@ -0,0 +1,21 @@
1
+ "use client";
2
+
3
+ import React, { HTMLAttributes, use } from "react";
4
+
5
+ import { SlideContext } from "./SlideContext";
6
+
7
+ export type SlideTogglePropsT = HTMLAttributes<HTMLButtonElement>;
8
+
9
+ export function SlideToggle({ onClick, ...props }: SlideTogglePropsT) {
10
+ const { setOpen } = use(SlideContext);
11
+
12
+ return (
13
+ <button
14
+ onClick={ev => {
15
+ onClick?.(ev);
16
+ setOpen(prev => !prev);
17
+ }}
18
+ {...props}
19
+ />
20
+ );
21
+ }
@@ -0,0 +1,28 @@
1
+ "use client";
2
+
3
+ import { cn } from "@kadoui/utils";
4
+ import { useState } from "react";
5
+
6
+ export type SpoilerProps = {
7
+ children: React.ReactNode;
8
+ className?: string;
9
+ }
10
+
11
+ export function Spoiler({ children, className }: SpoilerProps) {
12
+ const [revealed, setRevealed] = useState(false);
13
+
14
+ return (
15
+ <span
16
+ onClick={() => setRevealed(true)}
17
+ className={cn(
18
+ "transition-all",
19
+ revealed ? "" : "inline cursor-pointer rounded overflow-hidden px-1",
20
+ className
21
+ )}
22
+ >
23
+ <span className={`transition-all ${revealed ? "" : "select-none blur-[3px]"}`}>
24
+ {children}
25
+ </span>
26
+ </span>
27
+ );
28
+ }
@@ -0,0 +1,15 @@
1
+ import { StepsPrevBtn } from "./StepsPrevBtn";
2
+ import { StepsNextBtn } from "./StepsNextBtn";
3
+ import { StepsControls } from "./StepsControls";
4
+ import { StepsStateRoot } from "./StepsStateRoot";
5
+ import { StepsSearchParamsRoot } from "./StepsSearchParamsRoot";
6
+
7
+ const baseComponents = {
8
+ Controls: StepsControls,
9
+ PrevBtn: StepsPrevBtn,
10
+ NextBtn: StepsNextBtn
11
+ }
12
+
13
+ export const StepsWithState = Object.assign(StepsStateRoot, baseComponents);
14
+
15
+ export const StepsWithSearchParams = Object.assign(StepsSearchParamsRoot, baseComponents);
@@ -0,0 +1,16 @@
1
+ import { createContext, Dispatch, ReactNode, SetStateAction } from "react";
2
+
3
+ export type StepsT = {
4
+ name: string;
5
+ component: ReactNode;
6
+ }
7
+
8
+ export type StepsContextT = {
9
+ step: number;
10
+ steps: StepsT[];
11
+ setStep: Dispatch<SetStateAction<number>>;
12
+ nextStep: () => void;
13
+ prevStep: () => void;
14
+ }
15
+
16
+ export const StepsContext = createContext<StepsContextT>({} as StepsContextT);