@work-rjkashyap/unified-ui 0.3.3 → 0.3.5

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 (456) hide show
  1. package/CHANGELOG.md +105 -0
  2. package/LICENSE +21 -0
  3. package/dist/components/accordion.cjs +225 -0
  4. package/dist/components/accordion.d.cts +157 -0
  5. package/dist/components/accordion.d.ts +157 -0
  6. package/dist/components/accordion.mjs +199 -0
  7. package/dist/components/alert-dialog.cjs +246 -0
  8. package/dist/components/alert-dialog.d.cts +61 -0
  9. package/dist/components/alert-dialog.d.ts +61 -0
  10. package/dist/components/alert-dialog.mjs +218 -0
  11. package/dist/components/alert.cjs +401 -0
  12. package/dist/components/alert.d.cts +217 -0
  13. package/dist/components/alert.d.ts +217 -0
  14. package/dist/components/alert.mjs +374 -0
  15. package/dist/components/aspect-ratio.cjs +45 -0
  16. package/dist/components/aspect-ratio.d.cts +10 -0
  17. package/dist/components/aspect-ratio.d.ts +10 -0
  18. package/dist/components/aspect-ratio.mjs +23 -0
  19. package/dist/components/avatar.cjs +348 -0
  20. package/dist/components/avatar.d.cts +198 -0
  21. package/dist/components/avatar.d.ts +198 -0
  22. package/dist/components/avatar.mjs +329 -0
  23. package/dist/components/badge.cjs +325 -0
  24. package/dist/components/badge.d.cts +259 -0
  25. package/dist/components/badge.d.ts +259 -0
  26. package/dist/components/badge.mjs +298 -0
  27. package/dist/components/banner.cjs +147 -0
  28. package/dist/components/banner.d.cts +31 -0
  29. package/dist/components/banner.d.ts +31 -0
  30. package/dist/components/banner.mjs +122 -0
  31. package/dist/components/breadcrumb.cjs +266 -0
  32. package/dist/components/breadcrumb.d.cts +159 -0
  33. package/dist/components/breadcrumb.d.ts +159 -0
  34. package/dist/components/breadcrumb.mjs +235 -0
  35. package/dist/components/button.cjs +254 -0
  36. package/dist/components/button.d.cts +126 -0
  37. package/dist/components/button.d.ts +126 -0
  38. package/dist/components/button.mjs +229 -0
  39. package/dist/components/calendar.cjs +511 -0
  40. package/dist/components/calendar.d.cts +94 -0
  41. package/dist/components/calendar.d.ts +94 -0
  42. package/dist/components/calendar.mjs +492 -0
  43. package/dist/components/card.cjs +234 -0
  44. package/dist/components/card.d.cts +190 -0
  45. package/dist/components/card.d.ts +190 -0
  46. package/dist/components/card.mjs +210 -0
  47. package/dist/components/carousel.cjs +234 -0
  48. package/dist/components/carousel.d.cts +30 -0
  49. package/dist/components/carousel.d.ts +30 -0
  50. package/dist/components/carousel.mjs +217 -0
  51. package/dist/components/chart.cjs +122 -0
  52. package/dist/components/chart.d.cts +103 -0
  53. package/dist/components/chart.d.ts +103 -0
  54. package/dist/components/chart.mjs +96 -0
  55. package/dist/components/checkbox.cjs +318 -0
  56. package/dist/components/checkbox.d.cts +182 -0
  57. package/dist/components/checkbox.d.ts +182 -0
  58. package/dist/components/checkbox.mjs +296 -0
  59. package/dist/components/code-highlight.cjs +335 -0
  60. package/dist/components/code-highlight.d.cts +18 -0
  61. package/dist/components/code-highlight.d.ts +18 -0
  62. package/dist/components/code-highlight.mjs +308 -0
  63. package/dist/components/code.cjs +265 -0
  64. package/dist/components/code.d.cts +40 -0
  65. package/dist/components/code.d.ts +40 -0
  66. package/dist/components/code.mjs +243 -0
  67. package/dist/components/collapsible.cjs +143 -0
  68. package/dist/components/collapsible.d.cts +159 -0
  69. package/dist/components/collapsible.d.ts +159 -0
  70. package/dist/components/collapsible.mjs +123 -0
  71. package/dist/components/color-picker.cjs +348 -0
  72. package/dist/components/color-picker.d.cts +35 -0
  73. package/dist/components/color-picker.d.ts +35 -0
  74. package/dist/components/color-picker.mjs +331 -0
  75. package/dist/components/combobox.cjs +584 -0
  76. package/dist/components/combobox.d.cts +183 -0
  77. package/dist/components/combobox.d.ts +183 -0
  78. package/dist/components/combobox.mjs +571 -0
  79. package/dist/components/command.cjs +329 -0
  80. package/dist/components/command.d.cts +97 -0
  81. package/dist/components/command.d.ts +97 -0
  82. package/dist/components/command.mjs +311 -0
  83. package/dist/components/confirm-dialog.cjs +100 -0
  84. package/dist/components/confirm-dialog.d.cts +25 -0
  85. package/dist/components/confirm-dialog.d.ts +25 -0
  86. package/dist/components/confirm-dialog.mjs +86 -0
  87. package/dist/components/context-menu.cjs +325 -0
  88. package/dist/components/context-menu.d.cts +259 -0
  89. package/dist/components/context-menu.d.ts +259 -0
  90. package/dist/components/context-menu.mjs +290 -0
  91. package/dist/components/copy-button.cjs +203 -0
  92. package/dist/components/copy-button.d.cts +22 -0
  93. package/dist/components/copy-button.d.ts +22 -0
  94. package/dist/components/copy-button.mjs +178 -0
  95. package/dist/components/data-list.cjs +140 -0
  96. package/dist/components/data-list.d.cts +36 -0
  97. package/dist/components/data-list.d.ts +36 -0
  98. package/dist/components/data-list.mjs +113 -0
  99. package/dist/components/data-table-toolbar.cjs +338 -0
  100. package/dist/components/data-table-toolbar.d.cts +84 -0
  101. package/dist/components/data-table-toolbar.d.ts +84 -0
  102. package/dist/components/data-table-toolbar.mjs +320 -0
  103. package/dist/components/data-table.cjs +1324 -0
  104. package/dist/components/data-table.d.cts +349 -0
  105. package/dist/components/data-table.d.ts +349 -0
  106. package/dist/components/data-table.mjs +1323 -0
  107. package/dist/components/date-picker.cjs +282 -0
  108. package/dist/components/date-picker.d.cts +97 -0
  109. package/dist/components/date-picker.d.ts +97 -0
  110. package/dist/components/date-picker.mjs +258 -0
  111. package/dist/components/dialog.cjs +319 -0
  112. package/dist/components/dialog.d.cts +74 -0
  113. package/dist/components/dialog.d.ts +74 -0
  114. package/dist/components/dialog.mjs +292 -0
  115. package/dist/components/drawer.cjs +262 -0
  116. package/dist/components/drawer.d.cts +113 -0
  117. package/dist/components/drawer.d.ts +113 -0
  118. package/dist/components/drawer.mjs +230 -0
  119. package/dist/components/dropdown-menu.cjs +328 -0
  120. package/dist/components/dropdown-menu.d.cts +95 -0
  121. package/dist/components/dropdown-menu.d.ts +95 -0
  122. package/dist/components/dropdown-menu.mjs +293 -0
  123. package/dist/components/empty-state.cjs +123 -0
  124. package/dist/components/empty-state.d.cts +15 -0
  125. package/dist/components/empty-state.d.ts +15 -0
  126. package/dist/components/empty-state.mjs +99 -0
  127. package/dist/components/file-upload.cjs +442 -0
  128. package/dist/components/file-upload.d.cts +35 -0
  129. package/dist/components/file-upload.d.ts +35 -0
  130. package/dist/components/file-upload.mjs +423 -0
  131. package/dist/components/form-field.cjs +191 -0
  132. package/dist/components/form-field.d.cts +163 -0
  133. package/dist/components/form-field.d.ts +163 -0
  134. package/dist/components/form-field.mjs +167 -0
  135. package/dist/components/hover-card.cjs +99 -0
  136. package/dist/components/hover-card.d.cts +28 -0
  137. package/dist/components/hover-card.d.ts +28 -0
  138. package/dist/components/hover-card.mjs +75 -0
  139. package/dist/components/image-gallery.cjs +359 -0
  140. package/dist/components/image-gallery.d.cts +46 -0
  141. package/dist/components/image-gallery.d.ts +46 -0
  142. package/dist/components/image-gallery.mjs +340 -0
  143. package/dist/components/index.cjs +719 -0
  144. package/dist/components/index.d.cts +84 -0
  145. package/dist/components/index.d.ts +84 -0
  146. package/dist/components/index.mjs +771 -0
  147. package/dist/components/infinite-scroll.cjs +95 -0
  148. package/dist/components/infinite-scroll.d.cts +54 -0
  149. package/dist/components/infinite-scroll.d.ts +54 -0
  150. package/dist/components/infinite-scroll.mjs +71 -0
  151. package/dist/components/input-group.cjs +202 -0
  152. package/dist/components/input-group.d.cts +22 -0
  153. package/dist/components/input-group.d.ts +22 -0
  154. package/dist/components/input-group.mjs +178 -0
  155. package/dist/components/input.cjs +318 -0
  156. package/dist/components/input.d.cts +99 -0
  157. package/dist/components/input.d.ts +99 -0
  158. package/dist/components/input.mjs +296 -0
  159. package/dist/components/kbd.cjs +69 -0
  160. package/dist/components/kbd.d.cts +25 -0
  161. package/dist/components/kbd.d.ts +25 -0
  162. package/dist/components/kbd.mjs +44 -0
  163. package/dist/components/label.cjs +138 -0
  164. package/dist/components/label.d.cts +91 -0
  165. package/dist/components/label.d.ts +91 -0
  166. package/dist/components/label.mjs +113 -0
  167. package/dist/components/markdown.cjs +179 -0
  168. package/dist/components/markdown.d.cts +41 -0
  169. package/dist/components/markdown.d.ts +41 -0
  170. package/dist/components/markdown.mjs +155 -0
  171. package/dist/components/menubar.cjs +365 -0
  172. package/dist/components/menubar.d.cts +88 -0
  173. package/dist/components/menubar.d.ts +88 -0
  174. package/dist/components/menubar.mjs +329 -0
  175. package/dist/components/navigation-menu.cjs +280 -0
  176. package/dist/components/navigation-menu.d.cts +123 -0
  177. package/dist/components/navigation-menu.d.ts +123 -0
  178. package/dist/components/navigation-menu.mjs +250 -0
  179. package/dist/components/number-input.cjs +419 -0
  180. package/dist/components/number-input.d.cts +111 -0
  181. package/dist/components/number-input.d.ts +111 -0
  182. package/dist/components/number-input.mjs +400 -0
  183. package/dist/components/pagination.cjs +322 -0
  184. package/dist/components/pagination.d.cts +119 -0
  185. package/dist/components/pagination.d.ts +119 -0
  186. package/dist/components/pagination.mjs +297 -0
  187. package/dist/components/pin-input.cjs +321 -0
  188. package/dist/components/pin-input.d.cts +112 -0
  189. package/dist/components/pin-input.d.ts +112 -0
  190. package/dist/components/pin-input.mjs +303 -0
  191. package/dist/components/popover.cjs +194 -0
  192. package/dist/components/popover.d.cts +108 -0
  193. package/dist/components/popover.d.ts +108 -0
  194. package/dist/components/popover.mjs +168 -0
  195. package/dist/components/progress.cjs +237 -0
  196. package/dist/components/progress.d.cts +137 -0
  197. package/dist/components/progress.d.ts +137 -0
  198. package/dist/components/progress.mjs +211 -0
  199. package/dist/components/radio.cjs +344 -0
  200. package/dist/components/radio.d.cts +145 -0
  201. package/dist/components/radio.d.ts +145 -0
  202. package/dist/components/radio.mjs +320 -0
  203. package/dist/components/resizable.cjs +121 -0
  204. package/dist/components/resizable.d.cts +23 -0
  205. package/dist/components/resizable.d.ts +23 -0
  206. package/dist/components/resizable.mjs +99 -0
  207. package/dist/components/scroll-area.cjs +168 -0
  208. package/dist/components/scroll-area.d.cts +131 -0
  209. package/dist/components/scroll-area.d.ts +131 -0
  210. package/dist/components/scroll-area.mjs +143 -0
  211. package/dist/components/search-input.cjs +261 -0
  212. package/dist/components/search-input.d.cts +26 -0
  213. package/dist/components/search-input.d.ts +26 -0
  214. package/dist/components/search-input.mjs +243 -0
  215. package/dist/components/select.cjs +320 -0
  216. package/dist/components/select.d.cts +55 -0
  217. package/dist/components/select.d.ts +55 -0
  218. package/dist/components/select.mjs +288 -0
  219. package/dist/components/separator.cjs +193 -0
  220. package/dist/components/separator.d.cts +92 -0
  221. package/dist/components/separator.d.ts +92 -0
  222. package/dist/components/separator.mjs +170 -0
  223. package/dist/components/sheet.cjs +399 -0
  224. package/dist/components/sheet.d.cts +219 -0
  225. package/dist/components/sheet.d.ts +219 -0
  226. package/dist/components/sheet.mjs +379 -0
  227. package/dist/components/sidebar.cjs +1077 -0
  228. package/dist/components/sidebar.d.cts +733 -0
  229. package/dist/components/sidebar.d.ts +733 -0
  230. package/dist/components/sidebar.mjs +1033 -0
  231. package/dist/components/skeleton.cjs +210 -0
  232. package/dist/components/skeleton.d.cts +202 -0
  233. package/dist/components/skeleton.d.ts +202 -0
  234. package/dist/components/skeleton.mjs +182 -0
  235. package/dist/components/slider.cjs +319 -0
  236. package/dist/components/slider.d.cts +82 -0
  237. package/dist/components/slider.d.ts +82 -0
  238. package/dist/components/slider.mjs +296 -0
  239. package/dist/components/sonner.cjs +119 -0
  240. package/dist/components/sonner.d.cts +60 -0
  241. package/dist/components/sonner.d.ts +60 -0
  242. package/dist/components/sonner.mjs +94 -0
  243. package/dist/components/spinner.cjs +238 -0
  244. package/dist/components/spinner.d.cts +101 -0
  245. package/dist/components/spinner.d.ts +101 -0
  246. package/dist/components/spinner.mjs +213 -0
  247. package/dist/components/stat.cjs +180 -0
  248. package/dist/components/stat.d.cts +21 -0
  249. package/dist/components/stat.d.ts +21 -0
  250. package/dist/components/stat.mjs +161 -0
  251. package/dist/components/steps.cjs +228 -0
  252. package/dist/components/steps.d.cts +76 -0
  253. package/dist/components/steps.d.ts +76 -0
  254. package/dist/components/steps.mjs +207 -0
  255. package/dist/components/switch.cjs +243 -0
  256. package/dist/components/switch.d.cts +90 -0
  257. package/dist/components/switch.d.ts +90 -0
  258. package/dist/components/switch.mjs +228 -0
  259. package/dist/components/table.cjs +381 -0
  260. package/dist/components/table.d.cts +181 -0
  261. package/dist/components/table.d.ts +181 -0
  262. package/dist/components/table.mjs +349 -0
  263. package/dist/components/tabs.cjs +326 -0
  264. package/dist/components/tabs.d.cts +154 -0
  265. package/dist/components/tabs.d.ts +154 -0
  266. package/dist/components/tabs.mjs +304 -0
  267. package/dist/components/textarea.cjs +258 -0
  268. package/dist/components/textarea.d.cts +112 -0
  269. package/dist/components/textarea.d.ts +112 -0
  270. package/dist/components/textarea.mjs +233 -0
  271. package/dist/components/theme-toggle.cjs +282 -0
  272. package/dist/components/theme-toggle.d.cts +58 -0
  273. package/dist/components/theme-toggle.d.ts +58 -0
  274. package/dist/components/theme-toggle.mjs +258 -0
  275. package/dist/components/timeline.cjs +178 -0
  276. package/dist/components/timeline.d.cts +41 -0
  277. package/dist/components/timeline.d.ts +41 -0
  278. package/dist/components/timeline.mjs +157 -0
  279. package/dist/components/toast.cjs +546 -0
  280. package/dist/components/toast.d.cts +169 -0
  281. package/dist/components/toast.d.ts +169 -0
  282. package/dist/components/toast.mjs +528 -0
  283. package/dist/components/toggle-group.cjs +204 -0
  284. package/dist/components/toggle-group.d.cts +215 -0
  285. package/dist/components/toggle-group.d.ts +215 -0
  286. package/dist/components/toggle-group.mjs +180 -0
  287. package/dist/components/toggle.cjs +155 -0
  288. package/dist/components/toggle.d.cts +100 -0
  289. package/dist/components/toggle.d.ts +100 -0
  290. package/dist/components/toggle.mjs +130 -0
  291. package/dist/components/tooltip.cjs +155 -0
  292. package/dist/components/tooltip.d.cts +129 -0
  293. package/dist/components/tooltip.d.ts +129 -0
  294. package/dist/components/tooltip.mjs +132 -0
  295. package/dist/components/tree-view.cjs +450 -0
  296. package/dist/components/tree-view.d.cts +67 -0
  297. package/dist/components/tree-view.d.ts +67 -0
  298. package/dist/components/tree-view.mjs +433 -0
  299. package/dist/components/video-player.cjs +344 -0
  300. package/dist/components/video-player.d.cts +34 -0
  301. package/dist/components/video-player.d.ts +34 -0
  302. package/dist/components/video-player.mjs +320 -0
  303. package/dist/components/virtual-list.cjs +153 -0
  304. package/dist/components/virtual-list.d.cts +53 -0
  305. package/dist/components/virtual-list.d.ts +53 -0
  306. package/dist/components/virtual-list.mjs +136 -0
  307. package/dist/components/visually-hidden.cjs +43 -0
  308. package/dist/components/visually-hidden.d.cts +9 -0
  309. package/dist/components/visually-hidden.d.ts +9 -0
  310. package/dist/components/visually-hidden.mjs +21 -0
  311. package/dist/index.cjs +1081 -1933
  312. package/dist/index.d.cts +99 -11
  313. package/dist/index.d.ts +99 -11
  314. package/dist/index.mjs +1138 -16
  315. package/dist/motion/hooks.cjs +98 -0
  316. package/dist/motion/hooks.d.cts +32 -0
  317. package/dist/motion/hooks.d.ts +32 -0
  318. package/dist/motion/hooks.mjs +70 -0
  319. package/dist/motion/index.cjs +157 -0
  320. package/dist/motion/index.d.cts +5 -0
  321. package/dist/motion/index.d.ts +5 -0
  322. package/dist/motion/index.mjs +137 -0
  323. package/dist/motion/presets.cjs +609 -0
  324. package/dist/{motion.d.ts → motion/presets.d.cts} +1 -30
  325. package/dist/{motion.d.cts → motion/presets.d.ts} +1 -30
  326. package/dist/{chunk-PLRSH37T.mjs → motion/presets.mjs} +119 -126
  327. package/dist/primitives/container.cjs +88 -0
  328. package/dist/primitives/container.d.cts +82 -0
  329. package/dist/primitives/container.d.ts +82 -0
  330. package/dist/primitives/container.mjs +64 -0
  331. package/dist/primitives/divider.cjs +74 -0
  332. package/dist/primitives/divider.d.cts +30 -0
  333. package/dist/primitives/divider.d.ts +30 -0
  334. package/dist/primitives/divider.mjs +50 -0
  335. package/dist/primitives/index.cjs +54 -0
  336. package/dist/primitives/index.d.cts +6 -0
  337. package/dist/primitives/index.d.ts +6 -0
  338. package/dist/primitives/index.mjs +33 -0
  339. package/dist/primitives/stack.cjs +167 -0
  340. package/dist/primitives/stack.d.cts +132 -0
  341. package/dist/primitives/stack.d.ts +132 -0
  342. package/dist/primitives/stack.mjs +142 -0
  343. package/dist/primitives/typography.cjs +260 -0
  344. package/dist/primitives/typography.d.cts +157 -0
  345. package/dist/primitives/typography.d.ts +157 -0
  346. package/dist/primitives/typography.mjs +229 -0
  347. package/dist/theme/contract.cjs +246 -0
  348. package/dist/theme/contract.d.cts +76 -0
  349. package/dist/theme/contract.d.ts +76 -0
  350. package/dist/theme/contract.mjs +221 -0
  351. package/dist/theme/customizer-store.cjs +266 -0
  352. package/dist/theme/customizer-store.d.cts +76 -0
  353. package/dist/theme/customizer-store.d.ts +76 -0
  354. package/dist/theme/customizer-store.mjs +261 -0
  355. package/dist/theme/customizer.cjs +812 -0
  356. package/dist/theme/customizer.d.cts +13 -0
  357. package/dist/theme/customizer.d.ts +13 -0
  358. package/dist/theme/customizer.mjs +803 -0
  359. package/dist/theme/index.cjs +105 -0
  360. package/dist/theme/index.d.cts +13 -0
  361. package/dist/theme/index.d.ts +13 -0
  362. package/dist/theme/index.mjs +87 -0
  363. package/dist/theme/presets.cjs +1205 -0
  364. package/dist/theme/presets.d.cts +232 -0
  365. package/dist/theme/presets.d.ts +232 -0
  366. package/dist/theme/presets.mjs +1175 -0
  367. package/dist/theme/provider.cjs +122 -0
  368. package/dist/theme/provider.d.cts +57 -0
  369. package/dist/theme/provider.d.ts +57 -0
  370. package/dist/theme/provider.mjs +104 -0
  371. package/dist/{chunk-IVZAB7BV.mjs → tokens/colors.cjs} +212 -86
  372. package/dist/{z-index-Dd8IllRx.d.cts → tokens/colors.d.cts} +235 -72
  373. package/dist/{z-index-Dd8IllRx.d.ts → tokens/colors.d.ts} +235 -72
  374. package/dist/{chunk-ZBGR7MUW.cjs → tokens/colors.mjs} +165 -104
  375. package/dist/tokens/index.cjs +96 -0
  376. package/dist/tokens/index.d.cts +7 -0
  377. package/dist/tokens/index.d.ts +7 -0
  378. package/dist/tokens/index.mjs +71 -0
  379. package/dist/{chunk-XCKK6P46.cjs → tokens/motion.cjs} +46 -18
  380. package/dist/{motion-D9wQbcKL.d.cts → tokens/motion.d.cts} +1 -1
  381. package/dist/{motion-D9wQbcKL.d.ts → tokens/motion.d.ts} +1 -1
  382. package/dist/{chunk-EZ2L3XPS.mjs → tokens/motion.mjs} +16 -10
  383. package/dist/tokens/radius.cjs +41 -0
  384. package/dist/tokens/radius.d.cts +18 -0
  385. package/dist/tokens/radius.d.ts +18 -0
  386. package/dist/tokens/radius.mjs +17 -0
  387. package/dist/tokens/shadows.cjs +57 -0
  388. package/dist/tokens/shadows.d.cts +32 -0
  389. package/dist/tokens/shadows.d.ts +32 -0
  390. package/dist/tokens/shadows.mjs +32 -0
  391. package/dist/tokens/spacing.cjs +51 -0
  392. package/dist/tokens/spacing.d.cts +26 -0
  393. package/dist/tokens/spacing.d.ts +26 -0
  394. package/dist/{chunk-NMPHV6ZD.mjs → tokens/spacing.mjs} +4 -4
  395. package/dist/{chunk-ECIGDEAH.cjs → tokens/typography.cjs} +43 -16
  396. package/dist/{typography-DlvVjEdE.d.ts → tokens/typography.d.cts} +1 -1
  397. package/dist/{typography-DlvVjEdE.d.cts → tokens/typography.d.ts} +1 -1
  398. package/dist/{chunk-ITBG42M5.mjs → tokens/typography.mjs} +14 -9
  399. package/dist/tokens/z-index.cjs +47 -0
  400. package/dist/tokens/z-index.d.cts +24 -0
  401. package/dist/tokens/z-index.d.ts +24 -0
  402. package/dist/tokens/z-index.mjs +23 -0
  403. package/dist/utils/cn.cjs +102 -0
  404. package/dist/utils/cn.d.cts +84 -0
  405. package/dist/utils/cn.d.ts +84 -0
  406. package/dist/{chunk-ZT3PCXDF.mjs → utils/cn.mjs} +14 -7
  407. package/dist/{chunk-33QEKXRQ.cjs → utils/contrast.cjs} +68 -38
  408. package/dist/utils/contrast.d.cts +209 -0
  409. package/dist/utils/contrast.d.ts +209 -0
  410. package/dist/{chunk-5NZDQWRV.mjs → utils/contrast.mjs} +27 -18
  411. package/dist/utils/focus-ring.cjs +81 -0
  412. package/dist/utils/focus-ring.d.cts +80 -0
  413. package/dist/utils/focus-ring.d.ts +80 -0
  414. package/dist/utils/focus-ring.mjs +47 -0
  415. package/dist/utils/index.cjs +107 -0
  416. package/dist/utils/index.d.cts +6 -0
  417. package/dist/utils/index.d.ts +6 -0
  418. package/dist/utils/index.mjs +88 -0
  419. package/dist/utils/types.cjs +38 -0
  420. package/dist/utils/types.d.cts +187 -0
  421. package/dist/utils/types.d.ts +187 -0
  422. package/dist/utils/types.mjs +13 -0
  423. package/package.json +191 -191
  424. package/dist/chunk-2JFREULQ.cjs +0 -29
  425. package/dist/chunk-3EHT6IOA.cjs +0 -49
  426. package/dist/chunk-4ON3M3OM.cjs +0 -73
  427. package/dist/chunk-5TP7J7T4.cjs +0 -1766
  428. package/dist/chunk-A2DGHQL2.cjs +0 -21808
  429. package/dist/chunk-EQWESXRH.mjs +0 -1735
  430. package/dist/chunk-F4JJFWWU.cjs +0 -604
  431. package/dist/chunk-FUWXGHWQ.cjs +0 -468
  432. package/dist/chunk-MBYCK2JJ.mjs +0 -37
  433. package/dist/chunk-OHEH57BV.mjs +0 -455
  434. package/dist/chunk-XAIUX2YS.mjs +0 -21477
  435. package/dist/components.cjs +0 -1247
  436. package/dist/components.d.cts +0 -7881
  437. package/dist/components.d.ts +0 -7881
  438. package/dist/components.mjs +0 -6
  439. package/dist/motion.cjs +0 -264
  440. package/dist/motion.mjs +0 -3
  441. package/dist/primitives.cjs +0 -57
  442. package/dist/primitives.d.cts +0 -390
  443. package/dist/primitives.d.ts +0 -390
  444. package/dist/primitives.mjs +0 -4
  445. package/dist/theme.cjs +0 -131
  446. package/dist/theme.d.cts +0 -414
  447. package/dist/theme.d.ts +0 -414
  448. package/dist/theme.mjs +0 -6
  449. package/dist/tokens.cjs +0 -137
  450. package/dist/tokens.d.cts +0 -30
  451. package/dist/tokens.d.ts +0 -30
  452. package/dist/tokens.mjs +0 -4
  453. package/dist/utils.cjs +0 -164
  454. package/dist/utils.d.cts +0 -525
  455. package/dist/utils.d.ts +0 -525
  456. package/dist/utils.mjs +0 -3
@@ -0,0 +1,511 @@
1
+ "use strict";
2
+ "use client";
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
+ var calendar_exports = {};
21
+ __export(calendar_exports, {
22
+ Calendar: () => Calendar,
23
+ calendarDayVariants: () => calendarDayVariants
24
+ });
25
+ module.exports = __toCommonJS(calendar_exports);
26
+ var import_jsx_runtime = require("react/jsx-runtime");
27
+ var import_cn = require("../utils/cn");
28
+ var import_focus_ring = require("../utils/focus-ring");
29
+ var import_class_variance_authority = require("class-variance-authority");
30
+ var import_framer_motion = require("framer-motion");
31
+ var import_react = require("react");
32
+ const DAYS_OF_WEEK = ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"];
33
+ const MONTHS = [
34
+ "January",
35
+ "February",
36
+ "March",
37
+ "April",
38
+ "May",
39
+ "June",
40
+ "July",
41
+ "August",
42
+ "September",
43
+ "October",
44
+ "November",
45
+ "December"
46
+ ];
47
+ function isSameDay(a, b) {
48
+ return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();
49
+ }
50
+ function isSameMonth(a, b) {
51
+ return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth();
52
+ }
53
+ function startOfMonth(date) {
54
+ return new Date(date.getFullYear(), date.getMonth(), 1);
55
+ }
56
+ function endOfMonth(date) {
57
+ return new Date(date.getFullYear(), date.getMonth() + 1, 0);
58
+ }
59
+ function addMonths(date, delta) {
60
+ const d = new Date(date);
61
+ d.setMonth(d.getMonth() + delta);
62
+ return d;
63
+ }
64
+ function _clampToMonth(date) {
65
+ return new Date(date.getFullYear(), date.getMonth(), date.getDate());
66
+ }
67
+ function buildCalendarGrid(year, month) {
68
+ const firstDay = new Date(year, month, 1);
69
+ const lastDay = new Date(year, month + 1, 0);
70
+ const startDow = firstDay.getDay();
71
+ const totalDays = lastDay.getDate();
72
+ const cells = [];
73
+ for (let i = 0; i < startDow; i++) cells.push(null);
74
+ for (let d = 1; d <= totalDays; d++) {
75
+ cells.push(new Date(year, month, d));
76
+ }
77
+ while (cells.length % 7 !== 0) cells.push(null);
78
+ const weeks = [];
79
+ for (let i = 0; i < cells.length; i += 7) {
80
+ weeks.push(cells.slice(i, i + 7));
81
+ }
82
+ return weeks;
83
+ }
84
+ const calendarDayVariants = (0, import_class_variance_authority.cva)(
85
+ [
86
+ "relative w-9 h-9 p-0 rounded-md",
87
+ "inline-flex items-center justify-center",
88
+ "text-sm font-normal leading-none",
89
+ "transition-colors duration-fast",
90
+ "cursor-pointer select-none",
91
+ import_focus_ring.focusRingClasses,
92
+ "disabled:pointer-events-none disabled:opacity-30 disabled:cursor-not-allowed"
93
+ ],
94
+ {
95
+ variants: {
96
+ state: {
97
+ default: "text-foreground hover:bg-accent hover:text-accent-foreground",
98
+ today: "font-semibold text-primary ring-1 ring-primary hover:bg-primary/10",
99
+ selected: "bg-primary text-primary-foreground hover:bg-primary-hover font-medium",
100
+ rangeStart: "bg-primary text-primary-foreground rounded-r-none hover:bg-primary-hover",
101
+ rangeEnd: "bg-primary text-primary-foreground rounded-l-none hover:bg-primary-hover",
102
+ rangeMiddle: "bg-primary/15 text-foreground rounded-none hover:bg-primary/25",
103
+ outsideMonth: "text-muted-foreground opacity-50",
104
+ disabled: ""
105
+ }
106
+ },
107
+ defaultVariants: {
108
+ state: "default"
109
+ }
110
+ }
111
+ );
112
+ function ChevronLeft({ className }) {
113
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
114
+ "svg",
115
+ {
116
+ className,
117
+ xmlns: "http://www.w3.org/2000/svg",
118
+ viewBox: "0 0 24 24",
119
+ fill: "none",
120
+ stroke: "currentColor",
121
+ strokeWidth: "2",
122
+ strokeLinecap: "round",
123
+ strokeLinejoin: "round",
124
+ "aria-hidden": "true",
125
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "m15 18-6-6 6-6" })
126
+ }
127
+ );
128
+ }
129
+ function ChevronRight({ className }) {
130
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
131
+ "svg",
132
+ {
133
+ className,
134
+ xmlns: "http://www.w3.org/2000/svg",
135
+ viewBox: "0 0 24 24",
136
+ fill: "none",
137
+ stroke: "currentColor",
138
+ strokeWidth: "2",
139
+ strokeLinecap: "round",
140
+ strokeLinejoin: "round",
141
+ "aria-hidden": "true",
142
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "m9 18 6-6-6-6" })
143
+ }
144
+ );
145
+ }
146
+ const Calendar = (0, import_react.forwardRef)(
147
+ function Calendar2({
148
+ mode = "single",
149
+ selected,
150
+ selectedRange,
151
+ onSelect,
152
+ onSelectRange,
153
+ defaultMonth,
154
+ month: controlledMonth,
155
+ onMonthChange,
156
+ disabledDate,
157
+ disabledDates = [],
158
+ minDate,
159
+ maxDate,
160
+ showWeekNumbers = false,
161
+ className,
162
+ ...rest
163
+ }, ref) {
164
+ const shouldReduce = (0, import_framer_motion.useReducedMotion)();
165
+ const id = (0, import_react.useId)();
166
+ const [internalMonth, setInternalMonth] = (0, import_react.useState)(
167
+ () => startOfMonth(defaultMonth ?? controlledMonth ?? /* @__PURE__ */ new Date())
168
+ );
169
+ const currentMonth = controlledMonth ? startOfMonth(controlledMonth) : internalMonth;
170
+ const [direction, setDirection] = (0, import_react.useState)(
171
+ "forward"
172
+ );
173
+ const monthKey = `${currentMonth.getFullYear()}-${currentMonth.getMonth()}`;
174
+ const [rangeAnchor, setRangeAnchor] = (0, import_react.useState)(null);
175
+ const [hoverDate, setHoverDate] = (0, import_react.useState)(null);
176
+ const navigateMonth = (0, import_react.useCallback)(
177
+ (delta) => {
178
+ setDirection(delta > 0 ? "forward" : "backward");
179
+ const next = addMonths(currentMonth, delta);
180
+ if (controlledMonth) {
181
+ onMonthChange?.(next);
182
+ } else {
183
+ setInternalMonth(next);
184
+ onMonthChange?.(next);
185
+ }
186
+ },
187
+ [currentMonth, controlledMonth, onMonthChange]
188
+ );
189
+ const isDisabled = (0, import_react.useCallback)(
190
+ (date) => {
191
+ if (minDate && date < minDate) return true;
192
+ if (maxDate && date > maxDate) return true;
193
+ if (disabledDate?.(date)) return true;
194
+ if (disabledDates.some((d) => isSameDay(d, date))) return true;
195
+ return false;
196
+ },
197
+ [minDate, maxDate, disabledDate, disabledDates]
198
+ );
199
+ const getEffectiveRange = (0, import_react.useCallback)(() => {
200
+ if (mode !== "range") return null;
201
+ if (selectedRange) return selectedRange;
202
+ if (rangeAnchor && hoverDate) {
203
+ const from = rangeAnchor <= hoverDate ? rangeAnchor : hoverDate;
204
+ const to = rangeAnchor <= hoverDate ? hoverDate : rangeAnchor;
205
+ return { from, to };
206
+ }
207
+ return null;
208
+ }, [mode, selectedRange, rangeAnchor, hoverDate]);
209
+ const getDayState = (0, import_react.useCallback)(
210
+ (date) => {
211
+ if (!date) return "default";
212
+ if (isDisabled(date)) return "disabled";
213
+ if (!isSameMonth(date, currentMonth)) return "outsideMonth";
214
+ if (mode === "single" && selected && isSameDay(date, selected)) {
215
+ return "selected";
216
+ }
217
+ if (mode === "range") {
218
+ const range = getEffectiveRange();
219
+ if (range) {
220
+ if (isSameDay(date, range.from)) return "rangeStart";
221
+ if (range.to && isSameDay(date, range.to)) return "rangeEnd";
222
+ if (range.to && date > range.from && date < range.to) {
223
+ return "rangeMiddle";
224
+ }
225
+ }
226
+ }
227
+ if (isSameDay(date, /* @__PURE__ */ new Date())) return "today";
228
+ return "default";
229
+ },
230
+ [mode, selected, currentMonth, isDisabled, getEffectiveRange]
231
+ );
232
+ const handleDayClick = (0, import_react.useCallback)(
233
+ (date) => {
234
+ if (isDisabled(date)) return;
235
+ if (mode === "single") {
236
+ onSelect?.(date);
237
+ } else {
238
+ if (!rangeAnchor) {
239
+ setRangeAnchor(date);
240
+ } else {
241
+ const from = rangeAnchor <= date ? rangeAnchor : date;
242
+ const to = rangeAnchor <= date ? date : rangeAnchor;
243
+ onSelectRange?.({ from, to });
244
+ setRangeAnchor(null);
245
+ setHoverDate(null);
246
+ }
247
+ }
248
+ },
249
+ [mode, rangeAnchor, isDisabled, onSelect, onSelectRange]
250
+ );
251
+ const focusedDateRef = (0, import_react.useRef)(
252
+ selected ?? selectedRange?.from ?? /* @__PURE__ */ new Date()
253
+ );
254
+ const handleKeyDown = (0, import_react.useCallback)(
255
+ (e) => {
256
+ const focused = focusedDateRef.current;
257
+ let next = null;
258
+ switch (e.key) {
259
+ case "ArrowRight":
260
+ next = new Date(focused.getTime() + 864e5);
261
+ break;
262
+ case "ArrowLeft":
263
+ next = new Date(focused.getTime() - 864e5);
264
+ break;
265
+ case "ArrowDown":
266
+ next = new Date(focused.getTime() + 7 * 864e5);
267
+ break;
268
+ case "ArrowUp":
269
+ next = new Date(focused.getTime() - 7 * 864e5);
270
+ break;
271
+ case "Home":
272
+ next = startOfMonth(focused);
273
+ break;
274
+ case "End":
275
+ next = endOfMonth(focused);
276
+ break;
277
+ case "PageUp":
278
+ next = addMonths(focused, -1);
279
+ break;
280
+ case "PageDown":
281
+ next = addMonths(focused, 1);
282
+ break;
283
+ default:
284
+ return;
285
+ }
286
+ if (next) {
287
+ e.preventDefault();
288
+ focusedDateRef.current = next;
289
+ if (!isSameMonth(next, currentMonth)) {
290
+ navigateMonth(next > currentMonth ? 1 : -1);
291
+ }
292
+ const btn = document.getElementById(
293
+ `${id}-day-${next.toISOString().slice(0, 10)}`
294
+ );
295
+ btn?.focus();
296
+ }
297
+ },
298
+ [currentMonth, navigateMonth, id]
299
+ );
300
+ const weeks = buildCalendarGrid(
301
+ currentMonth.getFullYear(),
302
+ currentMonth.getMonth()
303
+ );
304
+ function getWeekNumber(date) {
305
+ const d = new Date(
306
+ Date.UTC(date.getFullYear(), date.getMonth(), date.getDate())
307
+ );
308
+ const dayNum = d.getUTCDay() || 7;
309
+ d.setUTCDate(d.getUTCDate() + 4 - dayNum);
310
+ const yearStart = new Date(Date.UTC(d.getUTCFullYear(), 0, 1));
311
+ return Math.ceil(
312
+ ((d.getTime() - yearStart.getTime()) / 864e5 + 1) / 7
313
+ );
314
+ }
315
+ const motionVariants = {
316
+ initial: shouldReduce ? { opacity: 0 } : { opacity: 0, x: direction === "forward" ? 20 : -20 },
317
+ animate: { opacity: 1, x: 0 },
318
+ exit: shouldReduce ? { opacity: 0 } : { opacity: 0, x: direction === "forward" ? -20 : 20 }
319
+ };
320
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
321
+ "div",
322
+ {
323
+ ref,
324
+ role: "application",
325
+ className: (0, import_cn.cn)(
326
+ "inline-flex flex-col gap-3 p-3 rounded-lg border border-border bg-background select-none",
327
+ className
328
+ ),
329
+ "data-ds": "",
330
+ "data-ds-component": "calendar",
331
+ "data-ds-mode": mode,
332
+ onKeyDown: handleKeyDown,
333
+ ...rest,
334
+ children: [
335
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-center justify-between gap-2 px-1", children: [
336
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
337
+ "button",
338
+ {
339
+ type: "button",
340
+ onClick: () => navigateMonth(-1),
341
+ className: (0, import_cn.cn)(
342
+ "inline-flex items-center justify-center size-7 rounded-md",
343
+ "text-muted-foreground hover:text-foreground hover:bg-accent",
344
+ "transition-colors duration-fast",
345
+ import_focus_ring.focusRingClasses
346
+ ),
347
+ "aria-label": "Previous month",
348
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ChevronLeft, { className: "size-4" })
349
+ }
350
+ ),
351
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex-1 text-center text-sm font-semibold leading-none", children: [
352
+ MONTHS[currentMonth.getMonth()],
353
+ " ",
354
+ currentMonth.getFullYear()
355
+ ] }),
356
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
357
+ "button",
358
+ {
359
+ type: "button",
360
+ onClick: () => navigateMonth(1),
361
+ className: (0, import_cn.cn)(
362
+ "inline-flex items-center justify-center size-7 rounded-md",
363
+ "text-muted-foreground hover:text-foreground hover:bg-accent",
364
+ "transition-colors duration-fast",
365
+ import_focus_ring.focusRingClasses
366
+ ),
367
+ "aria-label": "Next month",
368
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ChevronRight, { className: "size-4" })
369
+ }
370
+ )
371
+ ] }),
372
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "overflow-hidden", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_framer_motion.AnimatePresence, { mode: "wait", initial: false, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
373
+ import_framer_motion.motion.div,
374
+ {
375
+ variants: motionVariants,
376
+ initial: "initial",
377
+ animate: "animate",
378
+ exit: "exit",
379
+ transition: { duration: 0.18, ease: [0.4, 0, 0.2, 1] },
380
+ "data-ds-animated": "",
381
+ children: [
382
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
383
+ "div",
384
+ {
385
+ role: "row",
386
+ className: (0, import_cn.cn)(
387
+ "grid gap-1 mb-1",
388
+ showWeekNumbers ? "grid-cols-8" : "grid-cols-7"
389
+ ),
390
+ children: [
391
+ showWeekNumbers && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
392
+ "div",
393
+ {
394
+ className: "w-9 h-8 flex items-center justify-center text-xs text-muted-foreground font-medium",
395
+ "aria-hidden": "true",
396
+ children: "W"
397
+ }
398
+ ),
399
+ DAYS_OF_WEEK.map((day) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
400
+ "div",
401
+ {
402
+ role: "columnheader",
403
+ "aria-label": day,
404
+ className: "w-9 h-8 flex items-center justify-center text-xs text-muted-foreground font-medium",
405
+ children: day
406
+ },
407
+ day
408
+ ))
409
+ ]
410
+ }
411
+ ),
412
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
413
+ "div",
414
+ {
415
+ role: "grid",
416
+ "aria-label": `${MONTHS[currentMonth.getMonth()]} ${currentMonth.getFullYear()}`,
417
+ children: weeks.map((week, weekIdx) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
418
+ "div",
419
+ {
420
+ role: "row",
421
+ className: (0, import_cn.cn)(
422
+ "grid gap-1",
423
+ showWeekNumbers ? "grid-cols-8" : "grid-cols-7"
424
+ ),
425
+ children: [
426
+ showWeekNumbers && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "w-9 h-9 flex items-center justify-center text-xs text-muted-foreground/60", children: week[0] ? getWeekNumber(week[0]) : "" }),
427
+ week.map((date, dayIdx) => {
428
+ if (!date) {
429
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
430
+ "div",
431
+ {
432
+ role: "gridcell",
433
+ "aria-hidden": "true",
434
+ className: "w-9 h-9"
435
+ },
436
+ `empty-${weekIdx}-${dayIdx}`
437
+ );
438
+ }
439
+ const dayState = getDayState(date);
440
+ const disabled = dayState === "disabled";
441
+ const dateStr = date.toISOString().slice(0, 10);
442
+ const isSelected = dayState === "selected" || dayState === "rangeStart" || dayState === "rangeEnd";
443
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
444
+ "div",
445
+ {
446
+ role: "gridcell",
447
+ "aria-selected": isSelected ? "true" : void 0,
448
+ "aria-disabled": disabled ? "true" : void 0,
449
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
450
+ import_framer_motion.motion.button,
451
+ {
452
+ id: `${id}-day-${dateStr}`,
453
+ type: "button",
454
+ className: (0, import_cn.cn)(
455
+ calendarDayVariants({ state: dayState })
456
+ ),
457
+ onClick: () => handleDayClick(date),
458
+ onMouseEnter: () => mode === "range" && rangeAnchor && setHoverDate(date),
459
+ onMouseLeave: () => mode === "range" && rangeAnchor && setHoverDate(null),
460
+ disabled,
461
+ "aria-label": date.toLocaleDateString("en-US", {
462
+ weekday: "long",
463
+ year: "numeric",
464
+ month: "long",
465
+ day: "numeric"
466
+ }),
467
+ tabIndex: isSameDay(date, focusedDateRef.current ?? date) ? 0 : -1,
468
+ whileHover: !disabled && !shouldReduce ? {
469
+ scale: 1.08,
470
+ transition: {
471
+ type: "spring",
472
+ stiffness: 400,
473
+ damping: 25
474
+ }
475
+ } : void 0,
476
+ whileTap: !disabled && !shouldReduce ? {
477
+ scale: 0.95,
478
+ transition: {
479
+ type: "spring",
480
+ stiffness: 500,
481
+ damping: 30
482
+ }
483
+ } : void 0,
484
+ children: date.getDate()
485
+ }
486
+ )
487
+ },
488
+ dateStr
489
+ );
490
+ })
491
+ ]
492
+ },
493
+ week.find((d) => d !== null)?.toISOString().slice(0, 10) ?? `week-${weekIdx}`
494
+ ))
495
+ }
496
+ )
497
+ ]
498
+ },
499
+ monthKey
500
+ ) }) })
501
+ ]
502
+ }
503
+ );
504
+ }
505
+ );
506
+ Calendar.displayName = "Calendar";
507
+ // Annotate the CommonJS export names for ESM import in node:
508
+ 0 && (module.exports = {
509
+ Calendar,
510
+ calendarDayVariants
511
+ });
@@ -0,0 +1,94 @@
1
+ import * as react from 'react';
2
+ import * as class_variance_authority_types from 'class-variance-authority/types';
3
+
4
+ declare const calendarDayVariants: (props?: ({
5
+ state?: "disabled" | "default" | "selected" | "today" | "rangeStart" | "rangeEnd" | "rangeMiddle" | "outsideMonth" | null | undefined;
6
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
7
+ type CalendarMode = "single" | "range";
8
+ interface DateRange {
9
+ from: Date;
10
+ to?: Date;
11
+ }
12
+ interface CalendarProps {
13
+ /**
14
+ * Selection mode.
15
+ * @default "single"
16
+ */
17
+ mode?: CalendarMode;
18
+ /**
19
+ * The currently selected date (single mode).
20
+ */
21
+ selected?: Date | null;
22
+ /**
23
+ * The currently selected range (range mode).
24
+ */
25
+ selectedRange?: DateRange | null;
26
+ /**
27
+ * Callback for single-date selection.
28
+ */
29
+ onSelect?: (date: Date) => void;
30
+ /**
31
+ * Callback for range selection.
32
+ */
33
+ onSelectRange?: (range: DateRange) => void;
34
+ /**
35
+ * The month/year to display initially.
36
+ * @default current month
37
+ */
38
+ defaultMonth?: Date;
39
+ /**
40
+ * Controlled displayed month.
41
+ */
42
+ month?: Date;
43
+ /**
44
+ * Called when the displayed month changes.
45
+ */
46
+ onMonthChange?: (month: Date) => void;
47
+ /**
48
+ * A function that returns `true` for dates that should be disabled.
49
+ */
50
+ disabledDate?: (date: Date) => boolean;
51
+ /**
52
+ * Array of individually disabled dates.
53
+ */
54
+ disabledDates?: Date[];
55
+ /**
56
+ * Minimum selectable date.
57
+ */
58
+ minDate?: Date;
59
+ /**
60
+ * Maximum selectable date.
61
+ */
62
+ maxDate?: Date;
63
+ /**
64
+ * Show the week number column.
65
+ * @default false
66
+ */
67
+ showWeekNumbers?: boolean;
68
+ /** Additional CSS classes. */
69
+ className?: string;
70
+ }
71
+ /**
72
+ * Calendar — a month/year grid with single or range selection.
73
+ *
74
+ * @example
75
+ * // Uncontrolled single selection
76
+ * <Calendar onSelect={(date) => console.log(date)} />
77
+ *
78
+ * // Controlled with disabled dates
79
+ * <Calendar
80
+ * selected={date}
81
+ * onSelect={setDate}
82
+ * disabledDate={(d) => d < new Date()}
83
+ * />
84
+ *
85
+ * // Range mode
86
+ * <Calendar
87
+ * mode="range"
88
+ * selectedRange={range}
89
+ * onSelectRange={setRange}
90
+ * />
91
+ */
92
+ declare const Calendar: react.ForwardRefExoticComponent<CalendarProps & react.RefAttributes<HTMLDivElement>>;
93
+
94
+ export { Calendar, type CalendarMode, type CalendarProps, type DateRange, calendarDayVariants };
@@ -0,0 +1,94 @@
1
+ import * as react from 'react';
2
+ import * as class_variance_authority_types from 'class-variance-authority/types';
3
+
4
+ declare const calendarDayVariants: (props?: ({
5
+ state?: "disabled" | "default" | "selected" | "today" | "rangeStart" | "rangeEnd" | "rangeMiddle" | "outsideMonth" | null | undefined;
6
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
7
+ type CalendarMode = "single" | "range";
8
+ interface DateRange {
9
+ from: Date;
10
+ to?: Date;
11
+ }
12
+ interface CalendarProps {
13
+ /**
14
+ * Selection mode.
15
+ * @default "single"
16
+ */
17
+ mode?: CalendarMode;
18
+ /**
19
+ * The currently selected date (single mode).
20
+ */
21
+ selected?: Date | null;
22
+ /**
23
+ * The currently selected range (range mode).
24
+ */
25
+ selectedRange?: DateRange | null;
26
+ /**
27
+ * Callback for single-date selection.
28
+ */
29
+ onSelect?: (date: Date) => void;
30
+ /**
31
+ * Callback for range selection.
32
+ */
33
+ onSelectRange?: (range: DateRange) => void;
34
+ /**
35
+ * The month/year to display initially.
36
+ * @default current month
37
+ */
38
+ defaultMonth?: Date;
39
+ /**
40
+ * Controlled displayed month.
41
+ */
42
+ month?: Date;
43
+ /**
44
+ * Called when the displayed month changes.
45
+ */
46
+ onMonthChange?: (month: Date) => void;
47
+ /**
48
+ * A function that returns `true` for dates that should be disabled.
49
+ */
50
+ disabledDate?: (date: Date) => boolean;
51
+ /**
52
+ * Array of individually disabled dates.
53
+ */
54
+ disabledDates?: Date[];
55
+ /**
56
+ * Minimum selectable date.
57
+ */
58
+ minDate?: Date;
59
+ /**
60
+ * Maximum selectable date.
61
+ */
62
+ maxDate?: Date;
63
+ /**
64
+ * Show the week number column.
65
+ * @default false
66
+ */
67
+ showWeekNumbers?: boolean;
68
+ /** Additional CSS classes. */
69
+ className?: string;
70
+ }
71
+ /**
72
+ * Calendar — a month/year grid with single or range selection.
73
+ *
74
+ * @example
75
+ * // Uncontrolled single selection
76
+ * <Calendar onSelect={(date) => console.log(date)} />
77
+ *
78
+ * // Controlled with disabled dates
79
+ * <Calendar
80
+ * selected={date}
81
+ * onSelect={setDate}
82
+ * disabledDate={(d) => d < new Date()}
83
+ * />
84
+ *
85
+ * // Range mode
86
+ * <Calendar
87
+ * mode="range"
88
+ * selectedRange={range}
89
+ * onSelectRange={setRange}
90
+ * />
91
+ */
92
+ declare const Calendar: react.ForwardRefExoticComponent<CalendarProps & react.RefAttributes<HTMLDivElement>>;
93
+
94
+ export { Calendar, type CalendarMode, type CalendarProps, type DateRange, calendarDayVariants };