@arolariu/components 0.0.40 → 0.1.1

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 (475) hide show
  1. package/DEBUGGING.md +396 -401
  2. package/EXAMPLES.md +1035 -1035
  3. package/{LICENSE → LICENSE.md} +21 -21
  4. package/{readme.md → README.md} +627 -627
  5. package/changelog.md +17 -0
  6. package/dist/components/ui/accordion.d.ts.map +1 -0
  7. package/dist/components/ui/alert-dialog.d.ts.map +1 -0
  8. package/dist/components/ui/alert.d.ts.map +1 -0
  9. package/dist/components/ui/aspect-ratio.d.ts.map +1 -0
  10. package/dist/components/ui/avatar.d.ts.map +1 -0
  11. package/dist/components/ui/background-beams.d.ts.map +1 -0
  12. package/dist/components/ui/badge.d.ts.map +1 -0
  13. package/dist/components/ui/breadcrumb.d.ts.map +1 -0
  14. package/dist/components/ui/bubble-background.d.ts.map +1 -0
  15. package/dist/components/ui/bubble-background.js.map +1 -0
  16. package/dist/components/ui/button.d.ts.map +1 -0
  17. package/dist/components/ui/calendar.d.ts.map +1 -0
  18. package/dist/{esm/components → components}/ui/calendar.js +1 -1
  19. package/dist/components/ui/calendar.js.map +1 -0
  20. package/dist/components/ui/card.d.ts.map +1 -0
  21. package/dist/components/ui/carousel.d.ts.map +1 -0
  22. package/dist/{types/components → components}/ui/chart.d.ts +13 -13
  23. package/dist/components/ui/chart.d.ts.map +1 -0
  24. package/dist/{esm/components → components}/ui/chart.js +4 -1
  25. package/dist/components/ui/chart.js.map +1 -0
  26. package/dist/components/ui/checkbox.d.ts.map +1 -0
  27. package/dist/components/ui/collapsible.d.ts.map +1 -0
  28. package/dist/components/ui/command.d.ts.map +1 -0
  29. package/dist/components/ui/context-menu.d.ts.map +1 -0
  30. package/dist/components/ui/counting-number.d.ts.map +1 -0
  31. package/dist/components/ui/dialog.d.ts.map +1 -0
  32. package/dist/components/ui/dot-background.d.ts.map +1 -0
  33. package/dist/components/ui/drawer.d.ts.map +1 -0
  34. package/dist/components/ui/drawer.js.map +1 -0
  35. package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
  36. package/dist/components/ui/dropdrawer.d.ts.map +1 -0
  37. package/dist/components/ui/dropdrawer.js.map +1 -0
  38. package/dist/components/ui/fireworks-background.d.ts.map +1 -0
  39. package/dist/components/ui/flip-button.d.ts.map +1 -0
  40. package/dist/components/ui/form.d.ts.map +1 -0
  41. package/dist/components/ui/gradient-background.d.ts.map +1 -0
  42. package/dist/components/ui/gradient-text.d.ts.map +1 -0
  43. package/dist/components/ui/highlight-text.d.ts.map +1 -0
  44. package/dist/components/ui/hole-background.d.ts.map +1 -0
  45. package/dist/components/ui/hover-card.d.ts.map +1 -0
  46. package/dist/components/ui/input-otp.d.ts.map +1 -0
  47. package/dist/components/ui/input.d.ts.map +1 -0
  48. package/dist/components/ui/input.js.map +1 -0
  49. package/dist/components/ui/label.d.ts.map +1 -0
  50. package/dist/components/ui/menubar.d.ts.map +1 -0
  51. package/dist/components/ui/navigation-menu.d.ts.map +1 -0
  52. package/dist/components/ui/pagination.d.ts.map +1 -0
  53. package/dist/components/ui/popover.d.ts.map +1 -0
  54. package/dist/components/ui/progress.d.ts.map +1 -0
  55. package/dist/components/ui/radio-group.d.ts.map +1 -0
  56. package/dist/components/ui/resizable.d.ts.map +1 -0
  57. package/dist/components/ui/ripple-button.d.ts.map +1 -0
  58. package/dist/components/ui/ripple-button.js.map +1 -0
  59. package/dist/components/ui/scratcher.d.ts.map +1 -0
  60. package/dist/components/ui/scratcher.js.map +1 -0
  61. package/dist/components/ui/scroll-area.d.ts.map +1 -0
  62. package/dist/components/ui/select.d.ts.map +1 -0
  63. package/dist/components/ui/separator.d.ts.map +1 -0
  64. package/dist/components/ui/sheet.d.ts.map +1 -0
  65. package/dist/components/ui/sidebar.d.ts.map +1 -0
  66. package/dist/components/ui/skeleton.d.ts.map +1 -0
  67. package/dist/components/ui/slider.d.ts.map +1 -0
  68. package/dist/components/ui/sonner.d.ts.map +1 -0
  69. package/dist/components/ui/switch.d.ts.map +1 -0
  70. package/dist/components/ui/table.d.ts.map +1 -0
  71. package/dist/components/ui/tabs.d.ts.map +1 -0
  72. package/dist/components/ui/textarea.d.ts.map +1 -0
  73. package/dist/components/ui/toggle-group.d.ts.map +1 -0
  74. package/dist/components/ui/toggle.d.ts.map +1 -0
  75. package/dist/components/ui/tooltip.d.ts.map +1 -0
  76. package/dist/components/ui/typewriter.d.ts +18 -0
  77. package/dist/components/ui/typewriter.d.ts.map +1 -0
  78. package/dist/components/ui/typewriter.js +128 -0
  79. package/dist/components/ui/typewriter.js.map +1 -0
  80. package/dist/hooks/use-mobile.d.ts.map +1 -0
  81. package/dist/hooks/use-mobile.js.map +1 -0
  82. package/dist/index.css +66 -0
  83. package/dist/index.css.map +1 -0
  84. package/dist/{types/index.d.ts → index.d.ts} +2 -1
  85. package/dist/index.d.ts.map +1 -0
  86. package/dist/index.js +63 -62
  87. package/dist/lib/utils.d.ts.map +1 -0
  88. package/dist/lib/utils.js.map +1 -0
  89. package/package.json +254 -319
  90. package/src/components/ui/bubble-background.tsx +189 -189
  91. package/src/components/ui/calendar.tsx +216 -213
  92. package/src/components/ui/chart.tsx +385 -380
  93. package/src/components/ui/drawer.tsx +141 -141
  94. package/src/components/ui/dropdrawer.tsx +973 -973
  95. package/src/components/ui/input.tsx +22 -22
  96. package/src/components/ui/ripple-button.tsx +111 -111
  97. package/src/components/ui/scratcher.tsx +171 -171
  98. package/src/components/ui/typewriter.tsx +188 -0
  99. package/src/hooks/use-mobile.tsx +44 -44
  100. package/src/index.css +67 -69
  101. package/src/index.ts +407 -400
  102. package/src/lib/utils.ts +10 -10
  103. package/dist/cjs/components/ui/accordion.cjs +0 -92
  104. package/dist/cjs/components/ui/accordion.cjs.map +0 -1
  105. package/dist/cjs/components/ui/alert-dialog.cjs +0 -152
  106. package/dist/cjs/components/ui/alert-dialog.cjs.map +0 -1
  107. package/dist/cjs/components/ui/alert.cjs +0 -83
  108. package/dist/cjs/components/ui/alert.cjs.map +0 -1
  109. package/dist/cjs/components/ui/aspect-ratio.cjs +0 -47
  110. package/dist/cjs/components/ui/aspect-ratio.cjs.map +0 -1
  111. package/dist/cjs/components/ui/avatar.cjs +0 -69
  112. package/dist/cjs/components/ui/avatar.cjs.map +0 -1
  113. package/dist/cjs/components/ui/background-beams.cjs +0 -200
  114. package/dist/cjs/components/ui/background-beams.cjs.map +0 -1
  115. package/dist/cjs/components/ui/badge.cjs +0 -69
  116. package/dist/cjs/components/ui/badge.cjs.map +0 -1
  117. package/dist/cjs/components/ui/breadcrumb.cjs +0 -128
  118. package/dist/cjs/components/ui/breadcrumb.cjs.map +0 -1
  119. package/dist/cjs/components/ui/bubble-background.cjs +0 -213
  120. package/dist/cjs/components/ui/bubble-background.cjs.map +0 -1
  121. package/dist/cjs/components/ui/button.cjs +0 -80
  122. package/dist/cjs/components/ui/button.cjs.map +0 -1
  123. package/dist/cjs/components/ui/calendar.cjs +0 -146
  124. package/dist/cjs/components/ui/calendar.cjs.map +0 -1
  125. package/dist/cjs/components/ui/card.cjs +0 -108
  126. package/dist/cjs/components/ui/card.cjs.map +0 -1
  127. package/dist/cjs/components/ui/carousel.cjs +0 -207
  128. package/dist/cjs/components/ui/carousel.cjs.map +0 -1
  129. package/dist/cjs/components/ui/chart.cjs +0 -221
  130. package/dist/cjs/components/ui/chart.cjs.map +0 -1
  131. package/dist/cjs/components/ui/checkbox.cjs +0 -57
  132. package/dist/cjs/components/ui/checkbox.cjs.map +0 -1
  133. package/dist/cjs/components/ui/collapsible.cjs +0 -65
  134. package/dist/cjs/components/ui/collapsible.cjs.map +0 -1
  135. package/dist/cjs/components/ui/command.cjs +0 -159
  136. package/dist/cjs/components/ui/command.cjs.map +0 -1
  137. package/dist/cjs/components/ui/context-menu.cjs +0 -219
  138. package/dist/cjs/components/ui/context-menu.cjs.map +0 -1
  139. package/dist/cjs/components/ui/counting-number.cjs +0 -95
  140. package/dist/cjs/components/ui/counting-number.cjs.map +0 -1
  141. package/dist/cjs/components/ui/dialog.cjs +0 -156
  142. package/dist/cjs/components/ui/dialog.cjs.map +0 -1
  143. package/dist/cjs/components/ui/dot-background.cjs +0 -131
  144. package/dist/cjs/components/ui/dot-background.cjs.map +0 -1
  145. package/dist/cjs/components/ui/drawer.cjs +0 -147
  146. package/dist/cjs/components/ui/drawer.cjs.map +0 -1
  147. package/dist/cjs/components/ui/dropdown-menu.cjs +0 -220
  148. package/dist/cjs/components/ui/dropdown-menu.cjs.map +0 -1
  149. package/dist/cjs/components/ui/dropdrawer.cjs +0 -627
  150. package/dist/cjs/components/ui/dropdrawer.cjs.map +0 -1
  151. package/dist/cjs/components/ui/fireworks-background.cjs +0 -259
  152. package/dist/cjs/components/ui/fireworks-background.cjs.map +0 -1
  153. package/dist/cjs/components/ui/flip-button.cjs +0 -100
  154. package/dist/cjs/components/ui/flip-button.cjs.map +0 -1
  155. package/dist/cjs/components/ui/form.cjs +0 -149
  156. package/dist/cjs/components/ui/form.cjs.map +0 -1
  157. package/dist/cjs/components/ui/gradient-background.cjs +0 -60
  158. package/dist/cjs/components/ui/gradient-background.cjs.map +0 -1
  159. package/dist/cjs/components/ui/gradient-text.cjs +0 -83
  160. package/dist/cjs/components/ui/gradient-text.cjs.map +0 -1
  161. package/dist/cjs/components/ui/highlight-text.cjs +0 -74
  162. package/dist/cjs/components/ui/highlight-text.cjs.map +0 -1
  163. package/dist/cjs/components/ui/hole-background.cjs +0 -361
  164. package/dist/cjs/components/ui/hole-background.cjs.map +0 -1
  165. package/dist/cjs/components/ui/hover-card.cjs +0 -72
  166. package/dist/cjs/components/ui/hover-card.cjs.map +0 -1
  167. package/dist/cjs/components/ui/input-otp.cjs +0 -94
  168. package/dist/cjs/components/ui/input-otp.cjs.map +0 -1
  169. package/dist/cjs/components/ui/input.cjs +0 -49
  170. package/dist/cjs/components/ui/input.cjs.map +0 -1
  171. package/dist/cjs/components/ui/label.cjs +0 -49
  172. package/dist/cjs/components/ui/label.cjs.map +0 -1
  173. package/dist/cjs/components/ui/menubar.cjs +0 -233
  174. package/dist/cjs/components/ui/menubar.cjs.map +0 -1
  175. package/dist/cjs/components/ui/navigation-menu.cjs +0 -144
  176. package/dist/cjs/components/ui/navigation-menu.cjs.map +0 -1
  177. package/dist/cjs/components/ui/pagination.cjs +0 -142
  178. package/dist/cjs/components/ui/pagination.cjs.map +0 -1
  179. package/dist/cjs/components/ui/popover.cjs +0 -80
  180. package/dist/cjs/components/ui/popover.cjs.map +0 -1
  181. package/dist/cjs/components/ui/progress.cjs +0 -56
  182. package/dist/cjs/components/ui/progress.cjs.map +0 -1
  183. package/dist/cjs/components/ui/radio-group.cjs +0 -67
  184. package/dist/cjs/components/ui/radio-group.cjs.map +0 -1
  185. package/dist/cjs/components/ui/resizable.cjs +0 -75
  186. package/dist/cjs/components/ui/resizable.cjs.map +0 -1
  187. package/dist/cjs/components/ui/ripple-button.cjs +0 -108
  188. package/dist/cjs/components/ui/ripple-button.cjs.map +0 -1
  189. package/dist/cjs/components/ui/scratcher.cjs +0 -179
  190. package/dist/cjs/components/ui/scratcher.cjs.map +0 -1
  191. package/dist/cjs/components/ui/scroll-area.cjs +0 -73
  192. package/dist/cjs/components/ui/scroll-area.cjs.map +0 -1
  193. package/dist/cjs/components/ui/select.cjs +0 -177
  194. package/dist/cjs/components/ui/select.cjs.map +0 -1
  195. package/dist/cjs/components/ui/separator.cjs +0 -51
  196. package/dist/cjs/components/ui/separator.cjs.map +0 -1
  197. package/dist/cjs/components/ui/sheet.cjs +0 -150
  198. package/dist/cjs/components/ui/sheet.cjs.map +0 -1
  199. package/dist/cjs/components/ui/sidebar.cjs +0 -513
  200. package/dist/cjs/components/ui/sidebar.cjs.map +0 -1
  201. package/dist/cjs/components/ui/skeleton.cjs +0 -48
  202. package/dist/cjs/components/ui/skeleton.cjs.map +0 -1
  203. package/dist/cjs/components/ui/slider.cjs +0 -78
  204. package/dist/cjs/components/ui/slider.cjs.map +0 -1
  205. package/dist/cjs/components/ui/sonner.cjs +0 -58
  206. package/dist/cjs/components/ui/sonner.cjs.map +0 -1
  207. package/dist/cjs/components/ui/switch.cjs +0 -53
  208. package/dist/cjs/components/ui/switch.cjs.map +0 -1
  209. package/dist/cjs/components/ui/table.cjs +0 -122
  210. package/dist/cjs/components/ui/table.cjs.map +0 -1
  211. package/dist/cjs/components/ui/tabs.cjs +0 -79
  212. package/dist/cjs/components/ui/tabs.cjs.map +0 -1
  213. package/dist/cjs/components/ui/textarea.cjs +0 -48
  214. package/dist/cjs/components/ui/textarea.cjs.map +0 -1
  215. package/dist/cjs/components/ui/toggle-group.cjs +0 -80
  216. package/dist/cjs/components/ui/toggle-group.cjs.map +0 -1
  217. package/dist/cjs/components/ui/toggle.cjs +0 -74
  218. package/dist/cjs/components/ui/toggle.cjs.map +0 -1
  219. package/dist/cjs/components/ui/tooltip.cjs +0 -88
  220. package/dist/cjs/components/ui/tooltip.cjs.map +0 -1
  221. package/dist/cjs/hooks/use-mobile.cjs +0 -52
  222. package/dist/cjs/hooks/use-mobile.cjs.map +0 -1
  223. package/dist/cjs/index.cjs +0 -905
  224. package/dist/cjs/index.cjs.map +0 -1
  225. package/dist/cjs/index.css +0 -7309
  226. package/dist/cjs/index.css.map +0 -1
  227. package/dist/cjs/lib/utils.cjs +0 -42
  228. package/dist/cjs/lib/utils.cjs.map +0 -1
  229. package/dist/esm/components/ui/bubble-background.js.map +0 -1
  230. package/dist/esm/components/ui/calendar.js.map +0 -1
  231. package/dist/esm/components/ui/chart.js.map +0 -1
  232. package/dist/esm/components/ui/drawer.js.map +0 -1
  233. package/dist/esm/components/ui/dropdrawer.js.map +0 -1
  234. package/dist/esm/components/ui/input.js.map +0 -1
  235. package/dist/esm/components/ui/ripple-button.js.map +0 -1
  236. package/dist/esm/components/ui/scratcher.js.map +0 -1
  237. package/dist/esm/hooks/use-mobile.js.map +0 -1
  238. package/dist/esm/index.css +0 -7309
  239. package/dist/esm/index.css.map +0 -1
  240. package/dist/esm/index.js +0 -62
  241. package/dist/esm/lib/utils.js.map +0 -1
  242. package/dist/types/components/ui/accordion.d.ts.map +0 -1
  243. package/dist/types/components/ui/alert-dialog.d.ts.map +0 -1
  244. package/dist/types/components/ui/alert.d.ts.map +0 -1
  245. package/dist/types/components/ui/aspect-ratio.d.ts.map +0 -1
  246. package/dist/types/components/ui/avatar.d.ts.map +0 -1
  247. package/dist/types/components/ui/background-beams.d.ts.map +0 -1
  248. package/dist/types/components/ui/badge.d.ts.map +0 -1
  249. package/dist/types/components/ui/breadcrumb.d.ts.map +0 -1
  250. package/dist/types/components/ui/bubble-background.d.ts.map +0 -1
  251. package/dist/types/components/ui/button.d.ts.map +0 -1
  252. package/dist/types/components/ui/calendar.d.ts.map +0 -1
  253. package/dist/types/components/ui/card.d.ts.map +0 -1
  254. package/dist/types/components/ui/carousel.d.ts.map +0 -1
  255. package/dist/types/components/ui/chart.d.ts.map +0 -1
  256. package/dist/types/components/ui/checkbox.d.ts.map +0 -1
  257. package/dist/types/components/ui/collapsible.d.ts.map +0 -1
  258. package/dist/types/components/ui/command.d.ts.map +0 -1
  259. package/dist/types/components/ui/context-menu.d.ts.map +0 -1
  260. package/dist/types/components/ui/counting-number.d.ts.map +0 -1
  261. package/dist/types/components/ui/dialog.d.ts.map +0 -1
  262. package/dist/types/components/ui/dot-background.d.ts.map +0 -1
  263. package/dist/types/components/ui/drawer.d.ts.map +0 -1
  264. package/dist/types/components/ui/dropdown-menu.d.ts.map +0 -1
  265. package/dist/types/components/ui/dropdrawer.d.ts.map +0 -1
  266. package/dist/types/components/ui/fireworks-background.d.ts.map +0 -1
  267. package/dist/types/components/ui/flip-button.d.ts.map +0 -1
  268. package/dist/types/components/ui/form.d.ts.map +0 -1
  269. package/dist/types/components/ui/gradient-background.d.ts.map +0 -1
  270. package/dist/types/components/ui/gradient-text.d.ts.map +0 -1
  271. package/dist/types/components/ui/highlight-text.d.ts.map +0 -1
  272. package/dist/types/components/ui/hole-background.d.ts.map +0 -1
  273. package/dist/types/components/ui/hover-card.d.ts.map +0 -1
  274. package/dist/types/components/ui/input-otp.d.ts.map +0 -1
  275. package/dist/types/components/ui/input.d.ts.map +0 -1
  276. package/dist/types/components/ui/label.d.ts.map +0 -1
  277. package/dist/types/components/ui/menubar.d.ts.map +0 -1
  278. package/dist/types/components/ui/navigation-menu.d.ts.map +0 -1
  279. package/dist/types/components/ui/pagination.d.ts.map +0 -1
  280. package/dist/types/components/ui/popover.d.ts.map +0 -1
  281. package/dist/types/components/ui/progress.d.ts.map +0 -1
  282. package/dist/types/components/ui/radio-group.d.ts.map +0 -1
  283. package/dist/types/components/ui/resizable.d.ts.map +0 -1
  284. package/dist/types/components/ui/ripple-button.d.ts.map +0 -1
  285. package/dist/types/components/ui/scratcher.d.ts.map +0 -1
  286. package/dist/types/components/ui/scroll-area.d.ts.map +0 -1
  287. package/dist/types/components/ui/select.d.ts.map +0 -1
  288. package/dist/types/components/ui/separator.d.ts.map +0 -1
  289. package/dist/types/components/ui/sheet.d.ts.map +0 -1
  290. package/dist/types/components/ui/sidebar.d.ts.map +0 -1
  291. package/dist/types/components/ui/skeleton.d.ts.map +0 -1
  292. package/dist/types/components/ui/slider.d.ts.map +0 -1
  293. package/dist/types/components/ui/sonner.d.ts.map +0 -1
  294. package/dist/types/components/ui/switch.d.ts.map +0 -1
  295. package/dist/types/components/ui/table.d.ts.map +0 -1
  296. package/dist/types/components/ui/tabs.d.ts.map +0 -1
  297. package/dist/types/components/ui/textarea.d.ts.map +0 -1
  298. package/dist/types/components/ui/toggle-group.d.ts.map +0 -1
  299. package/dist/types/components/ui/toggle.d.ts.map +0 -1
  300. package/dist/types/components/ui/tooltip.d.ts.map +0 -1
  301. package/dist/types/hooks/use-mobile.d.ts.map +0 -1
  302. package/dist/types/index.d.ts.map +0 -1
  303. package/dist/types/lib/utils.d.ts.map +0 -1
  304. package/tailwind.config.mjs +0 -65
  305. package/tsconfig.json +0 -58
  306. /package/dist/{types/components → components}/ui/accordion.d.ts +0 -0
  307. /package/dist/{esm/components → components}/ui/accordion.js +0 -0
  308. /package/dist/{esm/components → components}/ui/accordion.js.map +0 -0
  309. /package/dist/{types/components → components}/ui/alert-dialog.d.ts +0 -0
  310. /package/dist/{esm/components → components}/ui/alert-dialog.js +0 -0
  311. /package/dist/{esm/components → components}/ui/alert-dialog.js.map +0 -0
  312. /package/dist/{types/components → components}/ui/alert.d.ts +0 -0
  313. /package/dist/{esm/components → components}/ui/alert.js +0 -0
  314. /package/dist/{esm/components → components}/ui/alert.js.map +0 -0
  315. /package/dist/{types/components → components}/ui/aspect-ratio.d.ts +0 -0
  316. /package/dist/{esm/components → components}/ui/aspect-ratio.js +0 -0
  317. /package/dist/{esm/components → components}/ui/aspect-ratio.js.map +0 -0
  318. /package/dist/{types/components → components}/ui/avatar.d.ts +0 -0
  319. /package/dist/{esm/components → components}/ui/avatar.js +0 -0
  320. /package/dist/{esm/components → components}/ui/avatar.js.map +0 -0
  321. /package/dist/{types/components → components}/ui/background-beams.d.ts +0 -0
  322. /package/dist/{esm/components → components}/ui/background-beams.js +0 -0
  323. /package/dist/{esm/components → components}/ui/background-beams.js.map +0 -0
  324. /package/dist/{types/components → components}/ui/badge.d.ts +0 -0
  325. /package/dist/{esm/components → components}/ui/badge.js +0 -0
  326. /package/dist/{esm/components → components}/ui/badge.js.map +0 -0
  327. /package/dist/{types/components → components}/ui/breadcrumb.d.ts +0 -0
  328. /package/dist/{esm/components → components}/ui/breadcrumb.js +0 -0
  329. /package/dist/{esm/components → components}/ui/breadcrumb.js.map +0 -0
  330. /package/dist/{types/components → components}/ui/bubble-background.d.ts +0 -0
  331. /package/dist/{esm/components → components}/ui/bubble-background.js +0 -0
  332. /package/dist/{types/components → components}/ui/button.d.ts +0 -0
  333. /package/dist/{esm/components → components}/ui/button.js +0 -0
  334. /package/dist/{esm/components → components}/ui/button.js.map +0 -0
  335. /package/dist/{types/components → components}/ui/calendar.d.ts +0 -0
  336. /package/dist/{types/components → components}/ui/card.d.ts +0 -0
  337. /package/dist/{esm/components → components}/ui/card.js +0 -0
  338. /package/dist/{esm/components → components}/ui/card.js.map +0 -0
  339. /package/dist/{types/components → components}/ui/carousel.d.ts +0 -0
  340. /package/dist/{esm/components → components}/ui/carousel.js +0 -0
  341. /package/dist/{esm/components → components}/ui/carousel.js.map +0 -0
  342. /package/dist/{types/components → components}/ui/checkbox.d.ts +0 -0
  343. /package/dist/{esm/components → components}/ui/checkbox.js +0 -0
  344. /package/dist/{esm/components → components}/ui/checkbox.js.map +0 -0
  345. /package/dist/{types/components → components}/ui/collapsible.d.ts +0 -0
  346. /package/dist/{esm/components → components}/ui/collapsible.js +0 -0
  347. /package/dist/{esm/components → components}/ui/collapsible.js.map +0 -0
  348. /package/dist/{types/components → components}/ui/command.d.ts +0 -0
  349. /package/dist/{esm/components → components}/ui/command.js +0 -0
  350. /package/dist/{esm/components → components}/ui/command.js.map +0 -0
  351. /package/dist/{types/components → components}/ui/context-menu.d.ts +0 -0
  352. /package/dist/{esm/components → components}/ui/context-menu.js +0 -0
  353. /package/dist/{esm/components → components}/ui/context-menu.js.map +0 -0
  354. /package/dist/{types/components → components}/ui/counting-number.d.ts +0 -0
  355. /package/dist/{esm/components → components}/ui/counting-number.js +0 -0
  356. /package/dist/{esm/components → components}/ui/counting-number.js.map +0 -0
  357. /package/dist/{types/components → components}/ui/dialog.d.ts +0 -0
  358. /package/dist/{esm/components → components}/ui/dialog.js +0 -0
  359. /package/dist/{esm/components → components}/ui/dialog.js.map +0 -0
  360. /package/dist/{types/components → components}/ui/dot-background.d.ts +0 -0
  361. /package/dist/{esm/components → components}/ui/dot-background.js +0 -0
  362. /package/dist/{esm/components → components}/ui/dot-background.js.map +0 -0
  363. /package/dist/{types/components → components}/ui/drawer.d.ts +0 -0
  364. /package/dist/{esm/components → components}/ui/drawer.js +0 -0
  365. /package/dist/{types/components → components}/ui/dropdown-menu.d.ts +0 -0
  366. /package/dist/{esm/components → components}/ui/dropdown-menu.js +0 -0
  367. /package/dist/{esm/components → components}/ui/dropdown-menu.js.map +0 -0
  368. /package/dist/{types/components → components}/ui/dropdrawer.d.ts +0 -0
  369. /package/dist/{esm/components → components}/ui/dropdrawer.js +0 -0
  370. /package/dist/{types/components → components}/ui/fireworks-background.d.ts +0 -0
  371. /package/dist/{esm/components → components}/ui/fireworks-background.js +0 -0
  372. /package/dist/{esm/components → components}/ui/fireworks-background.js.map +0 -0
  373. /package/dist/{types/components → components}/ui/flip-button.d.ts +0 -0
  374. /package/dist/{esm/components → components}/ui/flip-button.js +0 -0
  375. /package/dist/{esm/components → components}/ui/flip-button.js.map +0 -0
  376. /package/dist/{types/components → components}/ui/form.d.ts +0 -0
  377. /package/dist/{esm/components → components}/ui/form.js +0 -0
  378. /package/dist/{esm/components → components}/ui/form.js.map +0 -0
  379. /package/dist/{types/components → components}/ui/gradient-background.d.ts +0 -0
  380. /package/dist/{esm/components → components}/ui/gradient-background.js +0 -0
  381. /package/dist/{esm/components → components}/ui/gradient-background.js.map +0 -0
  382. /package/dist/{types/components → components}/ui/gradient-text.d.ts +0 -0
  383. /package/dist/{esm/components → components}/ui/gradient-text.js +0 -0
  384. /package/dist/{esm/components → components}/ui/gradient-text.js.map +0 -0
  385. /package/dist/{types/components → components}/ui/highlight-text.d.ts +0 -0
  386. /package/dist/{esm/components → components}/ui/highlight-text.js +0 -0
  387. /package/dist/{esm/components → components}/ui/highlight-text.js.map +0 -0
  388. /package/dist/{types/components → components}/ui/hole-background.d.ts +0 -0
  389. /package/dist/{esm/components → components}/ui/hole-background.js +0 -0
  390. /package/dist/{esm/components → components}/ui/hole-background.js.map +0 -0
  391. /package/dist/{types/components → components}/ui/hover-card.d.ts +0 -0
  392. /package/dist/{esm/components → components}/ui/hover-card.js +0 -0
  393. /package/dist/{esm/components → components}/ui/hover-card.js.map +0 -0
  394. /package/dist/{types/components → components}/ui/input-otp.d.ts +0 -0
  395. /package/dist/{esm/components → components}/ui/input-otp.js +0 -0
  396. /package/dist/{esm/components → components}/ui/input-otp.js.map +0 -0
  397. /package/dist/{types/components → components}/ui/input.d.ts +0 -0
  398. /package/dist/{esm/components → components}/ui/input.js +0 -0
  399. /package/dist/{types/components → components}/ui/label.d.ts +0 -0
  400. /package/dist/{esm/components → components}/ui/label.js +0 -0
  401. /package/dist/{esm/components → components}/ui/label.js.map +0 -0
  402. /package/dist/{types/components → components}/ui/menubar.d.ts +0 -0
  403. /package/dist/{esm/components → components}/ui/menubar.js +0 -0
  404. /package/dist/{esm/components → components}/ui/menubar.js.map +0 -0
  405. /package/dist/{types/components → components}/ui/navigation-menu.d.ts +0 -0
  406. /package/dist/{esm/components → components}/ui/navigation-menu.js +0 -0
  407. /package/dist/{esm/components → components}/ui/navigation-menu.js.map +0 -0
  408. /package/dist/{types/components → components}/ui/pagination.d.ts +0 -0
  409. /package/dist/{esm/components → components}/ui/pagination.js +0 -0
  410. /package/dist/{esm/components → components}/ui/pagination.js.map +0 -0
  411. /package/dist/{types/components → components}/ui/popover.d.ts +0 -0
  412. /package/dist/{esm/components → components}/ui/popover.js +0 -0
  413. /package/dist/{esm/components → components}/ui/popover.js.map +0 -0
  414. /package/dist/{types/components → components}/ui/progress.d.ts +0 -0
  415. /package/dist/{esm/components → components}/ui/progress.js +0 -0
  416. /package/dist/{esm/components → components}/ui/progress.js.map +0 -0
  417. /package/dist/{types/components → components}/ui/radio-group.d.ts +0 -0
  418. /package/dist/{esm/components → components}/ui/radio-group.js +0 -0
  419. /package/dist/{esm/components → components}/ui/radio-group.js.map +0 -0
  420. /package/dist/{types/components → components}/ui/resizable.d.ts +0 -0
  421. /package/dist/{esm/components → components}/ui/resizable.js +0 -0
  422. /package/dist/{esm/components → components}/ui/resizable.js.map +0 -0
  423. /package/dist/{types/components → components}/ui/ripple-button.d.ts +0 -0
  424. /package/dist/{esm/components → components}/ui/ripple-button.js +0 -0
  425. /package/dist/{types/components → components}/ui/scratcher.d.ts +0 -0
  426. /package/dist/{esm/components → components}/ui/scratcher.js +0 -0
  427. /package/dist/{types/components → components}/ui/scroll-area.d.ts +0 -0
  428. /package/dist/{esm/components → components}/ui/scroll-area.js +0 -0
  429. /package/dist/{esm/components → components}/ui/scroll-area.js.map +0 -0
  430. /package/dist/{types/components → components}/ui/select.d.ts +0 -0
  431. /package/dist/{esm/components → components}/ui/select.js +0 -0
  432. /package/dist/{esm/components → components}/ui/select.js.map +0 -0
  433. /package/dist/{types/components → components}/ui/separator.d.ts +0 -0
  434. /package/dist/{esm/components → components}/ui/separator.js +0 -0
  435. /package/dist/{esm/components → components}/ui/separator.js.map +0 -0
  436. /package/dist/{types/components → components}/ui/sheet.d.ts +0 -0
  437. /package/dist/{esm/components → components}/ui/sheet.js +0 -0
  438. /package/dist/{esm/components → components}/ui/sheet.js.map +0 -0
  439. /package/dist/{types/components → components}/ui/sidebar.d.ts +0 -0
  440. /package/dist/{esm/components → components}/ui/sidebar.js +0 -0
  441. /package/dist/{esm/components → components}/ui/sidebar.js.map +0 -0
  442. /package/dist/{types/components → components}/ui/skeleton.d.ts +0 -0
  443. /package/dist/{esm/components → components}/ui/skeleton.js +0 -0
  444. /package/dist/{esm/components → components}/ui/skeleton.js.map +0 -0
  445. /package/dist/{types/components → components}/ui/slider.d.ts +0 -0
  446. /package/dist/{esm/components → components}/ui/slider.js +0 -0
  447. /package/dist/{esm/components → components}/ui/slider.js.map +0 -0
  448. /package/dist/{types/components → components}/ui/sonner.d.ts +0 -0
  449. /package/dist/{esm/components → components}/ui/sonner.js +0 -0
  450. /package/dist/{esm/components → components}/ui/sonner.js.map +0 -0
  451. /package/dist/{types/components → components}/ui/switch.d.ts +0 -0
  452. /package/dist/{esm/components → components}/ui/switch.js +0 -0
  453. /package/dist/{esm/components → components}/ui/switch.js.map +0 -0
  454. /package/dist/{types/components → components}/ui/table.d.ts +0 -0
  455. /package/dist/{esm/components → components}/ui/table.js +0 -0
  456. /package/dist/{esm/components → components}/ui/table.js.map +0 -0
  457. /package/dist/{types/components → components}/ui/tabs.d.ts +0 -0
  458. /package/dist/{esm/components → components}/ui/tabs.js +0 -0
  459. /package/dist/{esm/components → components}/ui/tabs.js.map +0 -0
  460. /package/dist/{types/components → components}/ui/textarea.d.ts +0 -0
  461. /package/dist/{esm/components → components}/ui/textarea.js +0 -0
  462. /package/dist/{esm/components → components}/ui/textarea.js.map +0 -0
  463. /package/dist/{types/components → components}/ui/toggle-group.d.ts +0 -0
  464. /package/dist/{esm/components → components}/ui/toggle-group.js +0 -0
  465. /package/dist/{esm/components → components}/ui/toggle-group.js.map +0 -0
  466. /package/dist/{types/components → components}/ui/toggle.d.ts +0 -0
  467. /package/dist/{esm/components → components}/ui/toggle.js +0 -0
  468. /package/dist/{esm/components → components}/ui/toggle.js.map +0 -0
  469. /package/dist/{types/components → components}/ui/tooltip.d.ts +0 -0
  470. /package/dist/{esm/components → components}/ui/tooltip.js +0 -0
  471. /package/dist/{esm/components → components}/ui/tooltip.js.map +0 -0
  472. /package/dist/{types/hooks → hooks}/use-mobile.d.ts +0 -0
  473. /package/dist/{esm/hooks → hooks}/use-mobile.js +0 -0
  474. /package/dist/{types/lib → lib}/utils.d.ts +0 -0
  475. /package/dist/{esm/lib → lib}/utils.js +0 -0
@@ -1,213 +1,216 @@
1
- "use client";
2
-
3
- import * as React from "react";
4
- import {
5
- ChevronDownIcon,
6
- ChevronLeftIcon,
7
- ChevronRightIcon,
8
- } from "lucide-react";
9
- import { DayButton, DayPicker, getDefaultClassNames } from "react-day-picker";
10
-
11
- import { cn } from "@/lib/utils";
12
- import { Button, buttonVariants } from "@/components/ui/button";
13
-
14
- function Calendar({
15
- className,
16
- classNames,
17
- showOutsideDays = true,
18
- captionLayout = "label",
19
- buttonVariant = "ghost",
20
- formatters,
21
- components,
22
- ...props
23
- }: React.ComponentProps<typeof DayPicker> & {
24
- buttonVariant?: React.ComponentProps<typeof Button>["variant"];
25
- }) {
26
- const defaultClassNames = getDefaultClassNames();
27
-
28
- return (
29
- <DayPicker
30
- showOutsideDays={showOutsideDays}
31
- className={cn(
32
- "bg-white group/calendar p-3 [--cell-size:--spacing(8)] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent dark:bg-neutral-950",
33
- String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,
34
- String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,
35
- className,
36
- )}
37
- captionLayout={captionLayout}
38
- formatters={{
39
- formatMonthDropdown: (date) =>
40
- date.toLocaleString("default", { month: "short" }),
41
- ...formatters,
42
- }}
43
- classNames={{
44
- root: cn("w-fit", defaultClassNames.root),
45
- months: cn(
46
- "flex gap-4 flex-col md:flex-row relative",
47
- defaultClassNames.months,
48
- ),
49
- month: cn("flex flex-col w-full gap-4", defaultClassNames.month),
50
- nav: cn(
51
- "flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between",
52
- defaultClassNames.nav,
53
- ),
54
- button_previous: cn(
55
- buttonVariants({ variant: buttonVariant }),
56
- "size-(--cell-size) aria-disabled:opacity-50 p-0 select-none",
57
- defaultClassNames.button_previous,
58
- ),
59
- button_next: cn(
60
- buttonVariants({ variant: buttonVariant }),
61
- "size-(--cell-size) aria-disabled:opacity-50 p-0 select-none",
62
- defaultClassNames.button_next,
63
- ),
64
- month_caption: cn(
65
- "flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)",
66
- defaultClassNames.month_caption,
67
- ),
68
- dropdowns: cn(
69
- "w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5",
70
- defaultClassNames.dropdowns,
71
- ),
72
- dropdown_root: cn(
73
- "relative has-focus:border-neutral-950 border border-neutral-200 shadow-xs has-focus:ring-neutral-950/50 has-focus:ring-[3px] rounded-md dark:has-focus:border-neutral-300 dark:border-neutral-800 dark:has-focus:ring-neutral-300/50",
74
- defaultClassNames.dropdown_root,
75
- ),
76
- dropdown: cn("absolute inset-0 opacity-0", defaultClassNames.dropdown),
77
- caption_label: cn(
78
- "select-none font-medium",
79
- captionLayout === "label"
80
- ? "text-sm"
81
- : "rounded-md pl-2 pr-1 flex items-center gap-1 text-sm h-8 [&>svg]:text-neutral-500 [&>svg]:size-3.5 dark:[&>svg]:text-neutral-400",
82
- defaultClassNames.caption_label,
83
- ),
84
- table: "w-full border-collapse",
85
- weekdays: cn("flex", defaultClassNames.weekdays),
86
- weekday: cn(
87
- "text-neutral-500 rounded-md flex-1 font-normal text-[0.8rem] select-none dark:text-neutral-400",
88
- defaultClassNames.weekday,
89
- ),
90
- week: cn("flex w-full mt-2", defaultClassNames.week),
91
- week_number_header: cn(
92
- "select-none w-(--cell-size)",
93
- defaultClassNames.week_number_header,
94
- ),
95
- week_number: cn(
96
- "text-[0.8rem] select-none text-neutral-500 dark:text-neutral-400",
97
- defaultClassNames.week_number,
98
- ),
99
- day: cn(
100
- "relative w-full h-full p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md group/day aspect-square select-none",
101
- defaultClassNames.day,
102
- ),
103
- range_start: cn(
104
- "rounded-l-md bg-neutral-100 dark:bg-neutral-800",
105
- defaultClassNames.range_start,
106
- ),
107
- range_middle: cn("rounded-none", defaultClassNames.range_middle),
108
- range_end: cn(
109
- "rounded-r-md bg-neutral-100 dark:bg-neutral-800",
110
- defaultClassNames.range_end,
111
- ),
112
- today: cn(
113
- "bg-neutral-100 text-neutral-900 rounded-md data-[selected=true]:rounded-none dark:bg-neutral-800 dark:text-neutral-50",
114
- defaultClassNames.today,
115
- ),
116
- outside: cn(
117
- "text-neutral-500 aria-selected:text-neutral-500 dark:text-neutral-400 dark:aria-selected:text-neutral-400",
118
- defaultClassNames.outside,
119
- ),
120
- disabled: cn(
121
- "text-neutral-500 opacity-50 dark:text-neutral-400",
122
- defaultClassNames.disabled,
123
- ),
124
- hidden: cn("invisible", defaultClassNames.hidden),
125
- ...classNames,
126
- }}
127
- components={{
128
- Root: ({ className, rootRef, ...props }) => {
129
- return (
130
- <div
131
- data-slot="calendar"
132
- ref={rootRef}
133
- className={cn(className)}
134
- {...props}
135
- />
136
- );
137
- },
138
- Chevron: ({ className, orientation, ...props }) => {
139
- if (orientation === "left") {
140
- return (
141
- <ChevronLeftIcon className={cn("size-4", className)} {...props} />
142
- );
143
- }
144
-
145
- if (orientation === "right") {
146
- return (
147
- <ChevronRightIcon
148
- className={cn("size-4", className)}
149
- {...props}
150
- />
151
- );
152
- }
153
-
154
- return (
155
- <ChevronDownIcon className={cn("size-4", className)} {...props} />
156
- );
157
- },
158
- DayButton: CalendarDayButton,
159
- WeekNumber: ({ children, ...props }) => {
160
- return (
161
- <td {...props}>
162
- <div className="flex size-(--cell-size) items-center justify-center text-center">
163
- {children}
164
- </div>
165
- </td>
166
- );
167
- },
168
- ...components,
169
- }}
170
- {...props}
171
- />
172
- );
173
- }
174
-
175
- function CalendarDayButton({
176
- className,
177
- day,
178
- modifiers,
179
- ...props
180
- }: React.ComponentProps<typeof DayButton>) {
181
- const defaultClassNames = getDefaultClassNames();
182
-
183
- const ref = React.useRef<HTMLButtonElement>(null);
184
- React.useEffect(() => {
185
- if (modifiers["focused"]) ref.current?.focus();
186
- }, [modifiers["focused"]]);
187
-
188
- return (
189
- <Button
190
- ref={ref}
191
- variant="ghost"
192
- size="icon"
193
- data-day={day.date.toLocaleDateString()}
194
- data-selected-single={
195
- modifiers["selected"] &&
196
- !modifiers["range_start"] &&
197
- !modifiers["range_end"] &&
198
- !modifiers["range_middle"]
199
- }
200
- data-range-start={modifiers["range_start"]}
201
- data-range-end={modifiers["range_end"]}
202
- data-range-middle={modifiers["range_middle"]}
203
- className={cn(
204
- "data-[selected-single=true]:bg-neutral-900 data-[selected-single=true]:text-neutral-50 data-[range-middle=true]:bg-neutral-100 data-[range-middle=true]:text-neutral-900 data-[range-start=true]:bg-neutral-900 data-[range-start=true]:text-neutral-50 data-[range-end=true]:bg-neutral-900 data-[range-end=true]:text-neutral-50 group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 dark:hover:text-neutral-900 flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] data-[range-end=true]:rounded-md data-[range-end=true]:rounded-r-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md data-[range-start=true]:rounded-l-md [&>span]:text-xs [&>span]:opacity-70 dark:data-[selected-single=true]:bg-neutral-50 dark:data-[selected-single=true]:text-neutral-900 dark:data-[range-middle=true]:bg-neutral-800 dark:data-[range-middle=true]:text-neutral-50 dark:data-[range-start=true]:bg-neutral-50 dark:data-[range-start=true]:text-neutral-900 dark:data-[range-end=true]:bg-neutral-50 dark:data-[range-end=true]:text-neutral-900 dark:dark:hover:text-neutral-50",
205
- defaultClassNames.day,
206
- className,
207
- )}
208
- {...props}
209
- />
210
- );
211
- }
212
-
213
- export { Calendar, CalendarDayButton };
1
+ "use client";
2
+
3
+ import * as React from "react";
4
+ import {
5
+ ChevronDownIcon,
6
+ ChevronLeftIcon,
7
+ ChevronRightIcon,
8
+ } from "lucide-react";
9
+ import { DayButton, DayPicker, getDefaultClassNames } from "react-day-picker";
10
+
11
+ import { cn } from "@/lib/utils";
12
+ import { Button, buttonVariants } from "@/components/ui/button";
13
+
14
+ function Calendar({
15
+ className,
16
+ classNames,
17
+ showOutsideDays = true,
18
+ captionLayout = "label",
19
+ buttonVariant = "ghost",
20
+ formatters,
21
+ components,
22
+ ...props
23
+ }: React.ComponentProps<typeof DayPicker> & {
24
+ buttonVariant?: React.ComponentProps<typeof Button>["variant"];
25
+ }) {
26
+ const defaultClassNames = getDefaultClassNames();
27
+
28
+ return (
29
+ <DayPicker
30
+ showOutsideDays={showOutsideDays}
31
+ className={cn(
32
+ "bg-white group/calendar p-3 [--cell-size:--spacing(8)] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent dark:bg-neutral-950",
33
+ String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,
34
+ String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,
35
+ className,
36
+ )}
37
+ captionLayout={captionLayout}
38
+ formatters={{
39
+ formatMonthDropdown: (date) =>
40
+ date.toLocaleString("default", { month: "short" }),
41
+ ...formatters,
42
+ }}
43
+ classNames={{
44
+ root: cn("w-fit", defaultClassNames.root),
45
+ months: cn(
46
+ "flex gap-4 flex-col md:flex-row relative",
47
+ defaultClassNames.months,
48
+ ),
49
+ month: cn("flex flex-col w-full gap-4", defaultClassNames.month),
50
+ nav: cn(
51
+ "flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between",
52
+ defaultClassNames.nav,
53
+ ),
54
+ button_previous: cn(
55
+ buttonVariants({ variant: buttonVariant }),
56
+ "size-(--cell-size) aria-disabled:opacity-50 p-0 select-none",
57
+ defaultClassNames.button_previous,
58
+ ),
59
+ button_next: cn(
60
+ buttonVariants({ variant: buttonVariant }),
61
+ "size-(--cell-size) aria-disabled:opacity-50 p-0 select-none",
62
+ defaultClassNames.button_next,
63
+ ),
64
+ month_caption: cn(
65
+ "flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)",
66
+ defaultClassNames.month_caption,
67
+ ),
68
+ dropdowns: cn(
69
+ "w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5",
70
+ defaultClassNames.dropdowns,
71
+ ),
72
+ dropdown_root: cn(
73
+ "relative has-focus:border-neutral-950 border border-neutral-200 shadow-xs has-focus:ring-neutral-950/50 has-focus:ring-[3px] rounded-md dark:has-focus:border-neutral-300 dark:border-neutral-800 dark:has-focus:ring-neutral-300/50",
74
+ defaultClassNames.dropdown_root,
75
+ ),
76
+ dropdown: cn(
77
+ "absolute bg-white inset-0 opacity-0 dark:bg-neutral-950",
78
+ defaultClassNames.dropdown,
79
+ ),
80
+ caption_label: cn(
81
+ "select-none font-medium",
82
+ captionLayout === "label"
83
+ ? "text-sm"
84
+ : "rounded-md pl-2 pr-1 flex items-center gap-1 text-sm h-8 [&>svg]:text-neutral-500 [&>svg]:size-3.5 dark:[&>svg]:text-neutral-400",
85
+ defaultClassNames.caption_label,
86
+ ),
87
+ table: "w-full border-collapse",
88
+ weekdays: cn("flex", defaultClassNames.weekdays),
89
+ weekday: cn(
90
+ "text-neutral-500 rounded-md flex-1 font-normal text-[0.8rem] select-none dark:text-neutral-400",
91
+ defaultClassNames.weekday,
92
+ ),
93
+ week: cn("flex w-full mt-2", defaultClassNames.week),
94
+ week_number_header: cn(
95
+ "select-none w-(--cell-size)",
96
+ defaultClassNames.week_number_header,
97
+ ),
98
+ week_number: cn(
99
+ "text-[0.8rem] select-none text-neutral-500 dark:text-neutral-400",
100
+ defaultClassNames.week_number,
101
+ ),
102
+ day: cn(
103
+ "relative w-full h-full p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md group/day aspect-square select-none",
104
+ defaultClassNames.day,
105
+ ),
106
+ range_start: cn(
107
+ "rounded-l-md bg-neutral-100 dark:bg-neutral-800",
108
+ defaultClassNames.range_start,
109
+ ),
110
+ range_middle: cn("rounded-none", defaultClassNames.range_middle),
111
+ range_end: cn(
112
+ "rounded-r-md bg-neutral-100 dark:bg-neutral-800",
113
+ defaultClassNames.range_end,
114
+ ),
115
+ today: cn(
116
+ "bg-neutral-100 text-neutral-900 rounded-md data-[selected=true]:rounded-none dark:bg-neutral-800 dark:text-neutral-50",
117
+ defaultClassNames.today,
118
+ ),
119
+ outside: cn(
120
+ "text-neutral-500 aria-selected:text-neutral-500 dark:text-neutral-400 dark:aria-selected:text-neutral-400",
121
+ defaultClassNames.outside,
122
+ ),
123
+ disabled: cn(
124
+ "text-neutral-500 opacity-50 dark:text-neutral-400",
125
+ defaultClassNames.disabled,
126
+ ),
127
+ hidden: cn("invisible", defaultClassNames.hidden),
128
+ ...classNames,
129
+ }}
130
+ components={{
131
+ Root: ({ className, rootRef, ...props }) => {
132
+ return (
133
+ <div
134
+ data-slot="calendar"
135
+ ref={rootRef}
136
+ className={cn(className)}
137
+ {...props}
138
+ />
139
+ );
140
+ },
141
+ Chevron: ({ className, orientation, ...props }) => {
142
+ if (orientation === "left") {
143
+ return (
144
+ <ChevronLeftIcon className={cn("size-4", className)} {...props} />
145
+ );
146
+ }
147
+
148
+ if (orientation === "right") {
149
+ return (
150
+ <ChevronRightIcon
151
+ className={cn("size-4", className)}
152
+ {...props}
153
+ />
154
+ );
155
+ }
156
+
157
+ return (
158
+ <ChevronDownIcon className={cn("size-4", className)} {...props} />
159
+ );
160
+ },
161
+ DayButton: CalendarDayButton,
162
+ WeekNumber: ({ children, ...props }) => {
163
+ return (
164
+ <td {...props}>
165
+ <div className="flex size-(--cell-size) items-center justify-center text-center">
166
+ {children}
167
+ </div>
168
+ </td>
169
+ );
170
+ },
171
+ ...components,
172
+ }}
173
+ {...props}
174
+ />
175
+ );
176
+ }
177
+
178
+ function CalendarDayButton({
179
+ className,
180
+ day,
181
+ modifiers,
182
+ ...props
183
+ }: React.ComponentProps<typeof DayButton>) {
184
+ const defaultClassNames = getDefaultClassNames();
185
+
186
+ const ref = React.useRef<HTMLButtonElement>(null);
187
+ React.useEffect(() => {
188
+ if (modifiers["focused"]) ref.current?.focus();
189
+ }, [modifiers["focused"]]);
190
+
191
+ return (
192
+ <Button
193
+ ref={ref}
194
+ variant="ghost"
195
+ size="icon"
196
+ data-day={day.date.toLocaleDateString()}
197
+ data-selected-single={
198
+ modifiers["selected"] &&
199
+ !modifiers["range_start"] &&
200
+ !modifiers["range_end"] &&
201
+ !modifiers["range_middle"]
202
+ }
203
+ data-range-start={modifiers["range_start"]}
204
+ data-range-end={modifiers["range_end"]}
205
+ data-range-middle={modifiers["range_middle"]}
206
+ className={cn(
207
+ "data-[selected-single=true]:bg-neutral-900 data-[selected-single=true]:text-neutral-50 data-[range-middle=true]:bg-neutral-100 data-[range-middle=true]:text-neutral-900 data-[range-start=true]:bg-neutral-900 data-[range-start=true]:text-neutral-50 data-[range-end=true]:bg-neutral-900 data-[range-end=true]:text-neutral-50 group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 dark:hover:text-neutral-900 flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] data-[range-end=true]:rounded-md data-[range-end=true]:rounded-r-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md data-[range-start=true]:rounded-l-md [&>span]:text-xs [&>span]:opacity-70 dark:data-[selected-single=true]:bg-neutral-50 dark:data-[selected-single=true]:text-neutral-900 dark:data-[range-middle=true]:bg-neutral-800 dark:data-[range-middle=true]:text-neutral-50 dark:data-[range-start=true]:bg-neutral-50 dark:data-[range-start=true]:text-neutral-900 dark:data-[range-end=true]:bg-neutral-50 dark:data-[range-end=true]:text-neutral-900 dark:dark:hover:text-neutral-50",
208
+ defaultClassNames.day,
209
+ className,
210
+ )}
211
+ {...props}
212
+ />
213
+ );
214
+ }
215
+
216
+ export { Calendar, CalendarDayButton };