@konopskidev/ui 0.1.2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (339) hide show
  1. package/README.md +102 -13
  2. package/dist/chunks/rolldown-runtime-CmQyd0Gu.cjs +27 -0
  3. package/dist/components/ui/accordion.cjs +62 -0
  4. package/dist/components/ui/accordion.cjs.map +1 -0
  5. package/dist/components/ui/accordion.d.cts +7 -0
  6. package/dist/components/ui/accordion.d.ts.map +1 -1
  7. package/dist/components/ui/accordion.js +9 -8
  8. package/dist/components/ui/accordion.js.map +1 -1
  9. package/dist/components/ui/alert-dialog.cjs +116 -0
  10. package/dist/components/ui/alert-dialog.cjs.map +1 -0
  11. package/dist/components/ui/alert-dialog.d.cts +18 -0
  12. package/dist/components/ui/alert-dialog.d.ts.map +1 -1
  13. package/dist/components/ui/alert-dialog.js +13 -12
  14. package/dist/components/ui/alert-dialog.js.map +1 -1
  15. package/dist/components/ui/alert.cjs +49 -0
  16. package/dist/components/ui/alert.cjs.map +1 -0
  17. package/dist/components/ui/alert.d.cts +10 -0
  18. package/dist/components/ui/aspect-ratio.cjs +14 -0
  19. package/dist/components/ui/aspect-ratio.cjs.map +1 -0
  20. package/dist/components/ui/aspect-ratio.d.cts +3 -0
  21. package/dist/components/ui/aspect-ratio.js +4 -5
  22. package/dist/components/ui/aspect-ratio.js.map +1 -1
  23. package/dist/components/ui/attachment.cjs +113 -0
  24. package/dist/components/ui/attachment.cjs.map +1 -0
  25. package/dist/components/ui/attachment.d.cts +24 -0
  26. package/dist/components/ui/avatar.cjs +60 -0
  27. package/dist/components/ui/avatar.cjs.map +1 -0
  28. package/dist/components/ui/avatar.d.cts +11 -0
  29. package/dist/components/ui/avatar.d.ts.map +1 -1
  30. package/dist/components/ui/avatar.js +7 -6
  31. package/dist/components/ui/avatar.js.map +1 -1
  32. package/dist/components/ui/badge.cjs +33 -0
  33. package/dist/components/ui/badge.cjs.map +1 -0
  34. package/dist/components/ui/badge.d.cts +9 -0
  35. package/dist/components/ui/breadcrumb.cjs +81 -0
  36. package/dist/components/ui/breadcrumb.cjs.map +1 -0
  37. package/dist/components/ui/breadcrumb.d.cts +11 -0
  38. package/dist/components/ui/bubble.cjs +79 -0
  39. package/dist/components/ui/bubble.cjs.map +1 -0
  40. package/dist/components/ui/bubble.d.cts +17 -0
  41. package/dist/components/ui/button-group.cjs +43 -0
  42. package/dist/components/ui/button-group.cjs.map +1 -0
  43. package/dist/components/ui/button-group.d.cts +11 -0
  44. package/dist/components/ui/button.cjs +64 -0
  45. package/dist/components/ui/button.cjs.map +1 -0
  46. package/dist/components/ui/button.d.cts +21 -0
  47. package/dist/components/ui/calendar.cjs +114 -0
  48. package/dist/components/ui/calendar.cjs.map +1 -0
  49. package/dist/components/ui/calendar.d.cts +10 -0
  50. package/dist/components/ui/calendar.js +0 -1
  51. package/dist/components/ui/calendar.js.map +1 -1
  52. package/dist/components/ui/card.cjs +80 -0
  53. package/dist/components/ui/card.cjs.map +1 -0
  54. package/dist/components/ui/card.d.cts +33 -0
  55. package/dist/components/ui/card.d.ts +7 -2
  56. package/dist/components/ui/card.d.ts.map +1 -1
  57. package/dist/components/ui/card.js.map +1 -1
  58. package/dist/components/ui/carousel.cjs +142 -0
  59. package/dist/components/ui/carousel.cjs.map +1 -0
  60. package/dist/components/ui/carousel.d.cts +28 -0
  61. package/dist/components/ui/carousel.d.ts +1 -1
  62. package/dist/components/ui/carousel.d.ts.map +1 -1
  63. package/dist/components/ui/carousel.js +1 -0
  64. package/dist/components/ui/carousel.js.map +1 -1
  65. package/dist/components/ui/chart.cjs +159 -0
  66. package/dist/components/ui/chart.cjs.map +1 -0
  67. package/dist/components/ui/chart.d.cts +44 -0
  68. package/dist/components/ui/chart.js +0 -1
  69. package/dist/components/ui/chart.js.map +1 -1
  70. package/dist/components/ui/checkbox.cjs +25 -0
  71. package/dist/components/ui/checkbox.cjs.map +1 -0
  72. package/dist/components/ui/checkbox.d.cts +4 -0
  73. package/dist/components/ui/checkbox.d.ts.map +1 -1
  74. package/dist/components/ui/checkbox.js +6 -5
  75. package/dist/components/ui/checkbox.js.map +1 -1
  76. package/dist/components/ui/code-block.cjs +134 -0
  77. package/dist/components/ui/code-block.cjs.map +1 -0
  78. package/dist/components/ui/code-block.d.cts +26 -0
  79. package/dist/components/ui/code-block.d.ts.map +1 -1
  80. package/dist/components/ui/code-block.js +1 -0
  81. package/dist/components/ui/code-block.js.map +1 -1
  82. package/dist/components/ui/collapsible.cjs +28 -0
  83. package/dist/components/ui/collapsible.cjs.map +1 -0
  84. package/dist/components/ui/collapsible.d.cts +5 -0
  85. package/dist/components/ui/collapsible.js +6 -7
  86. package/dist/components/ui/collapsible.js.map +1 -1
  87. package/dist/components/ui/combobox.cjs +193 -0
  88. package/dist/components/ui/combobox.cjs.map +1 -0
  89. package/dist/components/ui/combobox.d.cts +24 -0
  90. package/dist/components/ui/combobox.d.ts.map +1 -1
  91. package/dist/components/ui/combobox.js +22 -21
  92. package/dist/components/ui/combobox.js.map +1 -1
  93. package/dist/components/ui/command.cjs +99 -0
  94. package/dist/components/ui/command.cjs.map +1 -0
  95. package/dist/components/ui/command.d.cts +18 -0
  96. package/dist/components/ui/command.d.ts.map +1 -1
  97. package/dist/components/ui/command.js +10 -12
  98. package/dist/components/ui/command.js.map +1 -1
  99. package/dist/components/ui/context-menu.cjs +143 -0
  100. package/dist/components/ui/context-menu.cjs.map +1 -0
  101. package/dist/components/ui/context-menu.d.cts +31 -0
  102. package/dist/components/ui/context-menu.d.ts.map +1 -1
  103. package/dist/components/ui/context-menu.js +20 -19
  104. package/dist/components/ui/context-menu.js.map +1 -1
  105. package/dist/components/ui/dialog.cjs +148 -0
  106. package/dist/components/ui/dialog.cjs.map +1 -0
  107. package/dist/components/ui/dialog.d.cts +55 -0
  108. package/dist/components/ui/dialog.d.ts +41 -3
  109. package/dist/components/ui/dialog.d.ts.map +1 -1
  110. package/dist/components/ui/dialog.js +65 -26
  111. package/dist/components/ui/dialog.js.map +1 -1
  112. package/dist/components/ui/direction.cjs +19 -0
  113. package/dist/components/ui/direction.cjs.map +1 -0
  114. package/dist/components/ui/direction.d.cts +11 -0
  115. package/dist/components/ui/direction.d.ts +1 -1
  116. package/dist/components/ui/direction.d.ts.map +1 -1
  117. package/dist/components/ui/direction.js +0 -1
  118. package/dist/components/ui/direction.js.map +1 -1
  119. package/dist/components/ui/drawer.cjs +90 -0
  120. package/dist/components/ui/drawer.cjs.map +1 -0
  121. package/dist/components/ui/drawer.d.cts +13 -0
  122. package/dist/components/ui/drawer.js +11 -11
  123. package/dist/components/ui/drawer.js.map +1 -1
  124. package/dist/components/ui/dropdown-menu.cjs +146 -0
  125. package/dist/components/ui/dropdown-menu.cjs.map +1 -0
  126. package/dist/components/ui/dropdown-menu.d.cts +29 -0
  127. package/dist/components/ui/dropdown-menu.js +19 -20
  128. package/dist/components/ui/dropdown-menu.js.map +1 -1
  129. package/dist/components/ui/empty.cjs +66 -0
  130. package/dist/components/ui/empty.cjs.map +1 -0
  131. package/dist/components/ui/empty.d.cts +11 -0
  132. package/dist/components/ui/field.cjs +121 -0
  133. package/dist/components/ui/field.cjs.map +1 -0
  134. package/dist/components/ui/field.d.cts +24 -0
  135. package/dist/components/ui/field.js +0 -1
  136. package/dist/components/ui/field.js.map +1 -1
  137. package/dist/components/ui/hover-card.cjs +38 -0
  138. package/dist/components/ui/hover-card.cjs.map +1 -0
  139. package/dist/components/ui/hover-card.d.cts +6 -0
  140. package/dist/components/ui/hover-card.d.ts.map +1 -1
  141. package/dist/components/ui/hover-card.js +8 -7
  142. package/dist/components/ui/hover-card.js.map +1 -1
  143. package/dist/components/ui/input-group.cjs +87 -0
  144. package/dist/components/ui/input-group.cjs.map +1 -0
  145. package/dist/components/ui/input-group.d.cts +16 -0
  146. package/dist/components/ui/input-otp.cjs +54 -0
  147. package/dist/components/ui/input-otp.cjs.map +1 -0
  148. package/dist/components/ui/input-otp.d.cts +11 -0
  149. package/dist/components/ui/input-otp.js +0 -1
  150. package/dist/components/ui/input-otp.js.map +1 -1
  151. package/dist/components/ui/input.cjs +28 -0
  152. package/dist/components/ui/input.cjs.map +1 -0
  153. package/dist/components/ui/input.d.cts +10 -0
  154. package/dist/components/ui/item.cjs +133 -0
  155. package/dist/components/ui/item.cjs.map +1 -0
  156. package/dist/components/ui/item.d.cts +23 -0
  157. package/dist/components/ui/kbd.cjs +22 -0
  158. package/dist/components/ui/kbd.cjs.map +1 -0
  159. package/dist/components/ui/kbd.d.cts +3 -0
  160. package/dist/components/ui/label.cjs +19 -0
  161. package/dist/components/ui/label.cjs.map +1 -0
  162. package/dist/components/ui/label.d.cts +4 -0
  163. package/dist/components/ui/label.d.ts.map +1 -1
  164. package/dist/components/ui/label.js +5 -4
  165. package/dist/components/ui/label.js.map +1 -1
  166. package/dist/components/ui/marker.cjs +46 -0
  167. package/dist/components/ui/marker.cjs.map +1 -0
  168. package/dist/components/ui/marker.d.cts +11 -0
  169. package/dist/components/ui/menubar.cjs +154 -0
  170. package/dist/components/ui/menubar.cjs.map +1 -0
  171. package/dist/components/ui/menubar.d.cts +30 -0
  172. package/dist/components/ui/menubar.js +20 -21
  173. package/dist/components/ui/menubar.js.map +1 -1
  174. package/dist/components/ui/message-scroller.cjs +87 -0
  175. package/dist/components/ui/message-scroller.cjs.map +1 -0
  176. package/dist/components/ui/message-scroller.d.cts +10 -0
  177. package/dist/components/ui/message-scroller.js +9 -9
  178. package/dist/components/ui/message-scroller.js.map +1 -1
  179. package/dist/components/ui/message.cjs +58 -0
  180. package/dist/components/ui/message.cjs.map +1 -0
  181. package/dist/components/ui/message.d.cts +10 -0
  182. package/dist/components/ui/native-select.cjs +44 -0
  183. package/dist/components/ui/native-select.cjs.map +1 -0
  184. package/dist/components/ui/native-select.d.cts +8 -0
  185. package/dist/components/ui/native-select.d.ts +1 -1
  186. package/dist/components/ui/native-select.d.ts.map +1 -1
  187. package/dist/components/ui/native-select.js.map +1 -1
  188. package/dist/components/ui/navigation-menu.cjs +93 -0
  189. package/dist/components/ui/navigation-menu.cjs.map +1 -0
  190. package/dist/components/ui/navigation-menu.d.cts +14 -0
  191. package/dist/components/ui/navigation-menu.d.ts.map +1 -1
  192. package/dist/components/ui/navigation-menu.js +12 -11
  193. package/dist/components/ui/navigation-menu.js.map +1 -1
  194. package/dist/components/ui/pagination.cjs +90 -0
  195. package/dist/components/ui/pagination.cjs.map +1 -0
  196. package/dist/components/ui/pagination.d.cts +17 -0
  197. package/dist/components/ui/pagination.d.ts +1 -1
  198. package/dist/components/ui/pagination.d.ts.map +1 -1
  199. package/dist/components/ui/pagination.js.map +1 -1
  200. package/dist/components/ui/popover.cjs +66 -0
  201. package/dist/components/ui/popover.cjs.map +1 -0
  202. package/dist/components/ui/popover.d.cts +10 -0
  203. package/dist/components/ui/popover.d.ts.map +1 -1
  204. package/dist/components/ui/popover.js +8 -7
  205. package/dist/components/ui/popover.js.map +1 -1
  206. package/dist/components/ui/progress.cjs +25 -0
  207. package/dist/components/ui/progress.cjs.map +1 -0
  208. package/dist/components/ui/progress.d.cts +4 -0
  209. package/dist/components/ui/progress.js +5 -6
  210. package/dist/components/ui/progress.js.map +1 -1
  211. package/dist/components/ui/questionnaire.cjs +187 -0
  212. package/dist/components/ui/questionnaire.cjs.map +1 -0
  213. package/dist/components/ui/questionnaire.d.cts +19 -0
  214. package/dist/components/ui/questionnaire.d.ts.map +1 -1
  215. package/dist/components/ui/questionnaire.js +19 -21
  216. package/dist/components/ui/questionnaire.js.map +1 -1
  217. package/dist/components/ui/radio-group.cjs +32 -0
  218. package/dist/components/ui/radio-group.cjs.map +1 -0
  219. package/dist/components/ui/radio-group.d.cts +5 -0
  220. package/dist/components/ui/radio-group.d.ts.map +1 -1
  221. package/dist/components/ui/radio-group.js +7 -6
  222. package/dist/components/ui/radio-group.js.map +1 -1
  223. package/dist/components/ui/resizable.cjs +33 -0
  224. package/dist/components/ui/resizable.cjs.map +1 -0
  225. package/dist/components/ui/resizable.d.cts +7 -0
  226. package/dist/components/ui/resizable.d.ts.map +1 -1
  227. package/dist/components/ui/resizable.js +0 -2
  228. package/dist/components/ui/resizable.js.map +1 -1
  229. package/dist/components/ui/scroll-area.cjs +43 -0
  230. package/dist/components/ui/scroll-area.cjs.map +1 -0
  231. package/dist/components/ui/scroll-area.d.cts +5 -0
  232. package/dist/components/ui/scroll-area.d.ts.map +1 -1
  233. package/dist/components/ui/scroll-area.js +9 -8
  234. package/dist/components/ui/scroll-area.js.map +1 -1
  235. package/dist/components/ui/select.cjs +113 -0
  236. package/dist/components/ui/select.cjs.map +1 -0
  237. package/dist/components/ui/select.d.cts +15 -0
  238. package/dist/components/ui/select.js +17 -18
  239. package/dist/components/ui/select.js.map +1 -1
  240. package/dist/components/ui/separator.cjs +21 -0
  241. package/dist/components/ui/separator.cjs.map +1 -0
  242. package/dist/components/ui/separator.d.cts +4 -0
  243. package/dist/components/ui/separator.d.ts.map +1 -1
  244. package/dist/components/ui/separator.js +5 -4
  245. package/dist/components/ui/separator.js.map +1 -1
  246. package/dist/components/ui/sheet.cjs +101 -0
  247. package/dist/components/ui/sheet.cjs.map +1 -0
  248. package/dist/components/ui/sheet.d.cts +14 -0
  249. package/dist/components/ui/sheet.d.ts.map +1 -1
  250. package/dist/components/ui/sheet.js +1 -0
  251. package/dist/components/ui/sheet.js.map +1 -1
  252. package/dist/components/ui/sidebar.cjs +405 -0
  253. package/dist/components/ui/sidebar.cjs.map +1 -0
  254. package/dist/components/ui/sidebar.d.cts +69 -0
  255. package/dist/components/ui/sidebar.js +0 -1
  256. package/dist/components/ui/sidebar.js.map +1 -1
  257. package/dist/components/ui/skeleton.cjs +14 -0
  258. package/dist/components/ui/skeleton.cjs.map +1 -0
  259. package/dist/components/ui/skeleton.d.cts +2 -0
  260. package/dist/components/ui/slider.cjs +42 -0
  261. package/dist/components/ui/slider.cjs.map +1 -0
  262. package/dist/components/ui/slider.d.cts +7 -0
  263. package/dist/components/ui/slider.js +7 -8
  264. package/dist/components/ui/slider.js.map +1 -1
  265. package/dist/components/ui/sonner.cjs +36 -0
  266. package/dist/components/ui/sonner.cjs.map +1 -0
  267. package/dist/components/ui/sonner.d.cts +13 -0
  268. package/dist/components/ui/sonner.d.ts.map +1 -1
  269. package/dist/components/ui/sonner.js +4 -6
  270. package/dist/components/ui/sonner.js.map +1 -1
  271. package/dist/components/ui/spinner.cjs +17 -0
  272. package/dist/components/ui/spinner.cjs.map +1 -0
  273. package/dist/components/ui/spinner.d.cts +2 -0
  274. package/dist/components/ui/switch.cjs +24 -0
  275. package/dist/components/ui/switch.cjs.map +1 -0
  276. package/dist/components/ui/switch.d.cts +6 -0
  277. package/dist/components/ui/switch.js +5 -6
  278. package/dist/components/ui/switch.js.map +1 -1
  279. package/dist/components/ui/table.cjs +77 -0
  280. package/dist/components/ui/table.cjs.map +1 -0
  281. package/dist/components/ui/table.d.cts +10 -0
  282. package/dist/components/ui/tabs.cjs +54 -0
  283. package/dist/components/ui/tabs.cjs.map +1 -0
  284. package/dist/components/ui/tabs.d.cts +11 -0
  285. package/dist/components/ui/tabs.js +7 -8
  286. package/dist/components/ui/tabs.js.map +1 -1
  287. package/dist/components/ui/textarea.cjs +39 -0
  288. package/dist/components/ui/textarea.cjs.map +1 -0
  289. package/dist/components/ui/textarea.d.cts +9 -0
  290. package/dist/components/ui/textarea.js +0 -1
  291. package/dist/components/ui/textarea.js.map +1 -1
  292. package/dist/components/ui/toggle-group.cjs +56 -0
  293. package/dist/components/ui/toggle-group.cjs.map +1 -0
  294. package/dist/components/ui/toggle-group.d.cts +10 -0
  295. package/dist/components/ui/toggle-group.js +5 -6
  296. package/dist/components/ui/toggle-group.js.map +1 -1
  297. package/dist/components/ui/toggle.cjs +41 -0
  298. package/dist/components/ui/toggle.cjs.map +1 -0
  299. package/dist/components/ui/toggle.d.cts +9 -0
  300. package/dist/components/ui/toggle.d.ts.map +1 -1
  301. package/dist/components/ui/toggle.js +5 -4
  302. package/dist/components/ui/toggle.js.map +1 -1
  303. package/dist/components/ui/tooltip.cjs +43 -0
  304. package/dist/components/ui/tooltip.cjs.map +1 -0
  305. package/dist/components/ui/tooltip.d.cts +7 -0
  306. package/dist/components/ui/tooltip.js +8 -9
  307. package/dist/components/ui/tooltip.js.map +1 -1
  308. package/dist/components/ui/trace.cjs +86 -0
  309. package/dist/components/ui/trace.cjs.map +1 -0
  310. package/dist/components/ui/trace.d.cts +18 -0
  311. package/dist/hooks/use-highlighted-code.d.ts.map +1 -1
  312. package/dist/hooks/use-highlighted-code.js +56 -0
  313. package/dist/hooks/use-highlighted-code.js.map +1 -0
  314. package/dist/hooks/use-mobile.cjs +26 -0
  315. package/dist/hooks/use-mobile.cjs.map +1 -0
  316. package/dist/hooks/use-mobile.d.cts +1 -0
  317. package/dist/hooks/use-mobile.d.ts.map +1 -1
  318. package/dist/hooks/use-mobile.js +1 -0
  319. package/dist/hooks/use-mobile.js.map +1 -1
  320. package/dist/index.cjs +356 -0
  321. package/dist/index.d.cts +67 -0
  322. package/dist/index.d.ts +5 -11
  323. package/dist/index.d.ts.map +1 -1
  324. package/dist/index.js +3 -14
  325. package/dist/lib/get-placeholder.cjs +13 -0
  326. package/dist/lib/get-placeholder.cjs.map +1 -0
  327. package/dist/lib/get-placeholder.d.cts +5 -0
  328. package/dist/lib/highlighter.js +79 -0
  329. package/dist/lib/highlighter.js.map +1 -0
  330. package/dist/lib/utils.cjs +8 -0
  331. package/dist/lib/utils.d.cts +8 -0
  332. package/{src → dist}/styles/globals.css +11 -0
  333. package/package.json +111 -32
  334. /package/{src → dist}/styles/base.css +0 -0
  335. /package/{src → dist}/styles/prose.css +0 -0
  336. /package/{src → dist}/styles/theme.css +0 -0
  337. /package/{src → dist}/styles/tokens.css +0 -0
  338. /package/{src → dist}/styles/utilities.css +0 -0
  339. /package/{src → dist}/styles/variants.css +0 -0
@@ -0,0 +1,81 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_rolldown_runtime = require("../../chunks/rolldown-runtime-CmQyd0Gu.cjs");
3
+ let cn = require("cn");
4
+ let lucide_react = require("lucide-react");
5
+ let radix_ui = require("radix-ui");
6
+ let react = require("react");
7
+ react = require_rolldown_runtime.__toESM(react, 1);
8
+ let react_jsx_runtime = require("react/jsx-runtime");
9
+ // src/components/ui/breadcrumb.tsx
10
+ function Breadcrumb({ className, ...props }) {
11
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("nav", {
12
+ "aria-label": "breadcrumb",
13
+ "data-slot": "breadcrumb",
14
+ className: (0, cn.cn)(className),
15
+ ...props
16
+ });
17
+ }
18
+ function BreadcrumbList({ className, ...props }) {
19
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("ol", {
20
+ "data-slot": "breadcrumb-list",
21
+ className: (0, cn.cn)("flex flex-wrap items-center gap-1.5 text-sm wrap-break-word text-muted-foreground", className),
22
+ ...props
23
+ });
24
+ }
25
+ function BreadcrumbItem({ className, ...props }) {
26
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("li", {
27
+ "data-slot": "breadcrumb-item",
28
+ className: (0, cn.cn)("inline-flex items-center gap-1", className),
29
+ ...props
30
+ });
31
+ }
32
+ function BreadcrumbLink({ asChild, className, ...props }) {
33
+ const Comp = asChild ? radix_ui.Slot.Root : "a";
34
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Comp, {
35
+ "data-slot": "breadcrumb-link",
36
+ className: (0, cn.cn)("transition-colors hover:text-foreground", className),
37
+ ...props
38
+ });
39
+ }
40
+ function BreadcrumbPage({ className, ...props }) {
41
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
42
+ "data-slot": "breadcrumb-page",
43
+ role: "link",
44
+ "aria-disabled": "true",
45
+ "aria-current": "page",
46
+ className: (0, cn.cn)("font-normal text-foreground", className),
47
+ ...props
48
+ });
49
+ }
50
+ function BreadcrumbSeparator({ children, className, ...props }) {
51
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("li", {
52
+ "data-slot": "breadcrumb-separator",
53
+ role: "presentation",
54
+ "aria-hidden": "true",
55
+ className,
56
+ ...props,
57
+ children: children ?? "/"
58
+ });
59
+ }
60
+ function BreadcrumbEllipsis({ className, ...props }) {
61
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
62
+ "data-slot": "breadcrumb-ellipsis",
63
+ role: "presentation",
64
+ "aria-hidden": "true",
65
+ className: (0, cn.cn)("flex size-5 items-center justify-center [&>svg]:size-4", className),
66
+ ...props,
67
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.MoreHorizontalIcon, {}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
68
+ className: "sr-only",
69
+ children: "More"
70
+ })]
71
+ });
72
+ }
73
+ exports.Breadcrumb = Breadcrumb;
74
+ exports.BreadcrumbEllipsis = BreadcrumbEllipsis;
75
+ exports.BreadcrumbItem = BreadcrumbItem;
76
+ exports.BreadcrumbLink = BreadcrumbLink;
77
+ exports.BreadcrumbList = BreadcrumbList;
78
+ exports.BreadcrumbPage = BreadcrumbPage;
79
+ exports.BreadcrumbSeparator = BreadcrumbSeparator;
80
+
81
+ //# sourceMappingURL=breadcrumb.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breadcrumb.cjs","names":["Slot","MoreHorizontalIcon"],"sources":["../../../src/components/ui/breadcrumb.tsx"],"sourcesContent":["import { cn } from 'cn';\nimport { MoreHorizontalIcon } from 'lucide-react';\nimport { Slot } from 'radix-ui';\nimport * as React from 'react';\n\nfunction Breadcrumb({ className, ...props }: React.ComponentProps<'nav'>) {\n return (\n <nav aria-label=\"breadcrumb\" data-slot=\"breadcrumb\" className={cn(className)} {...props} />\n );\n}\n\nfunction BreadcrumbList({ className, ...props }: React.ComponentProps<'ol'>) {\n return (\n <ol\n data-slot=\"breadcrumb-list\"\n className={cn(\n 'flex flex-wrap items-center gap-1.5 text-sm wrap-break-word text-muted-foreground',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbItem({ className, ...props }: React.ComponentProps<'li'>) {\n return (\n <li\n data-slot=\"breadcrumb-item\"\n className={cn('inline-flex items-center gap-1', className)}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbLink({\n asChild,\n className,\n ...props\n}: React.ComponentProps<'a'> & {\n asChild?: boolean;\n}) {\n const Comp = asChild ? Slot.Root : 'a';\n\n return (\n <Comp\n data-slot=\"breadcrumb-link\"\n className={cn('transition-colors hover:text-foreground', className)}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbPage({ className, ...props }: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"breadcrumb-page\"\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn('font-normal text-foreground', className)}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbSeparator({ children, className, ...props }: React.ComponentProps<'li'>) {\n return (\n <li\n data-slot=\"breadcrumb-separator\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={className}\n {...props}\n >\n {children ?? '/'}\n </li>\n );\n}\n\nfunction BreadcrumbEllipsis({ className, ...props }: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"breadcrumb-ellipsis\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn('flex size-5 items-center justify-center [&>svg]:size-4', className)}\n {...props}\n >\n <MoreHorizontalIcon />\n <span className=\"sr-only\">More</span>\n </span>\n );\n}\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n};\n"],"mappings":";;;;;;;;;AAKA,SAAS,WAAW,EAAE,WAAW,GAAG,SAAsC;CACxE,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EAAK,cAAW;EAAa,aAAU;EAAa,YAAA,GAAW,GAAA,GAAA,CAAG,SAAS;EAAG,GAAI;CAAQ,CAAA;AAE9F;AAEA,SAAS,eAAe,EAAE,WAAW,GAAG,SAAqC;CAC3E,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,MAAD;EACE,aAAU;EACV,YAAA,GAAW,GAAA,GAAA,CACT,qFACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,eAAe,EAAE,WAAW,GAAG,SAAqC;CAC3E,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,MAAD;EACE,aAAU;EACV,YAAA,GAAW,GAAA,GAAA,CAAG,kCAAkC,SAAS;EACzD,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,eAAe,EACtB,SACA,WACA,GAAG,SAGF;CACD,MAAM,OAAO,UAAUA,SAAAA,KAAK,OAAO;CAEnC,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,MAAD;EACE,aAAU;EACV,YAAA,GAAW,GAAA,GAAA,CAAG,2CAA2C,SAAS;EAClE,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,eAAe,EAAE,WAAW,GAAG,SAAuC;CAC7E,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;EACE,aAAU;EACV,MAAK;EACL,iBAAc;EACd,gBAAa;EACb,YAAA,GAAW,GAAA,GAAA,CAAG,+BAA+B,SAAS;EACtD,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,oBAAoB,EAAE,UAAU,WAAW,GAAG,SAAqC;CAC1F,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,MAAD;EACE,aAAU;EACV,MAAK;EACL,eAAY;EACD;EACX,GAAI;EAEH,UAAA,YAAY;CACX,CAAA;AAER;AAEA,SAAS,mBAAmB,EAAE,WAAW,GAAG,SAAuC;CACjF,OACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,QAAD;EACE,aAAU;EACV,MAAK;EACL,eAAY;EACZ,YAAA,GAAW,GAAA,GAAA,CAAG,0DAA0D,SAAS;EACjF,GAAI;EALN,UAAA,CAOE,iBAAA,GAAA,kBAAA,IAAA,CAACC,aAAAA,oBAAD,CAAqB,CAAA,GACrB,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;GAAM,WAAU;GAAU,UAAA;EAAU,CAAA,CAChC;;AAEV"}
@@ -0,0 +1,11 @@
1
+ import * as React from 'react';
2
+ declare function Breadcrumb({ className, ...props }: React.ComponentProps<'nav'>): React.JSX.Element;
3
+ declare function BreadcrumbList({ className, ...props }: React.ComponentProps<'ol'>): React.JSX.Element;
4
+ declare function BreadcrumbItem({ className, ...props }: React.ComponentProps<'li'>): React.JSX.Element;
5
+ declare function BreadcrumbLink({ asChild, className, ...props }: React.ComponentProps<'a'> & {
6
+ asChild?: boolean;
7
+ }): React.JSX.Element;
8
+ declare function BreadcrumbPage({ className, ...props }: React.ComponentProps<'span'>): React.JSX.Element;
9
+ declare function BreadcrumbSeparator({ children, className, ...props }: React.ComponentProps<'li'>): React.JSX.Element;
10
+ declare function BreadcrumbEllipsis({ className, ...props }: React.ComponentProps<'span'>): React.JSX.Element;
11
+ export { Breadcrumb, BreadcrumbList, BreadcrumbItem, BreadcrumbLink, BreadcrumbPage, BreadcrumbSeparator, BreadcrumbEllipsis, };
@@ -0,0 +1,79 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_rolldown_runtime = require("../../chunks/rolldown-runtime-CmQyd0Gu.cjs");
3
+ let cn = require("cn");
4
+ let radix_ui = require("radix-ui");
5
+ let react = require("react");
6
+ react = require_rolldown_runtime.__toESM(react, 1);
7
+ let react_jsx_runtime = require("react/jsx-runtime");
8
+ let class_variance_authority = require("class-variance-authority");
9
+ // src/components/ui/bubble.tsx
10
+ function BubbleGroup({ className, ...props }) {
11
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
12
+ "data-slot": "bubble-group",
13
+ className: (0, cn.cn)("flex min-w-0 flex-col gap-2", className),
14
+ ...props
15
+ });
16
+ }
17
+ var bubbleVariants = (0, class_variance_authority.cva)("group/bubble relative flex w-fit max-w-[80%] min-w-0 flex-col gap-1 group-data-[align=end]/message:self-end data-[align=end]:self-end data-[variant=ghost]:max-w-full", {
18
+ variants: { variant: {
19
+ default: "*:data-[slot=bubble-content]:bg-primary *:data-[slot=bubble-content]:text-primary-foreground [&>[data-slot=bubble-content]:is(button,a):hover]:bg-primary/80",
20
+ secondary: "*:data-[slot=bubble-content]:bg-secondary *:data-[slot=bubble-content]:text-secondary-foreground [&>[data-slot=bubble-content]:is(button,a):hover]:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)]",
21
+ muted: "*:data-[slot=bubble-content]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:bg-[color-mix(in_oklch,var(--muted),var(--foreground)_5%)]",
22
+ tinted: "*:data-[slot=bubble-content]:bg-[oklch(from_var(--primary)_0.93_calc(c*0.4)_h)] *:data-[slot=bubble-content]:text-foreground dark:*:data-[slot=bubble-content]:bg-[oklch(from_var(--primary)_0.3_calc(c*0.4)_h)] [&>[data-slot=bubble-content]:is(button,a):hover]:bg-[oklch(from_var(--primary)_0.88_calc(c*0.5)_h)] dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-[oklch(from_var(--primary)_0.35_calc(c*0.5)_h)]",
23
+ outline: "*:data-[slot=bubble-content]:border-border *:data-[slot=bubble-content]:bg-background [&>[data-slot=bubble-content]:is(button,a):hover]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:text-foreground dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-input/30",
24
+ ghost: "border-none *:data-[slot=bubble-content]:rounded-none *:data-[slot=bubble-content]:bg-transparent *:data-[slot=bubble-content]:p-0 [&>[data-slot=bubble-content]:is(button,a):hover]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:text-foreground dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-muted/50",
25
+ destructive: "*:data-[slot=bubble-content]:bg-destructive/10 *:data-[slot=bubble-content]:text-destructive dark:*:data-[slot=bubble-content]:bg-destructive/20 [&>[data-slot=bubble-content]:is(button,a):hover]:bg-destructive/20 dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-destructive/30"
26
+ } },
27
+ defaultVariants: { variant: "default" }
28
+ });
29
+ function Bubble({ variant = "default", align = "start", className, ...props }) {
30
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
31
+ "data-slot": "bubble",
32
+ "data-variant": variant,
33
+ "data-align": align,
34
+ className: (0, cn.cn)(bubbleVariants({ variant }), className),
35
+ ...props
36
+ });
37
+ }
38
+ function BubbleContent({ asChild = false, className, ...props }) {
39
+ const Comp = asChild ? radix_ui.Slot.Root : "div";
40
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Comp, {
41
+ "data-slot": "bubble-content",
42
+ className: (0, cn.cn)("[button,a]: [button,a]: [button,a]: w-fit max-w-full min-w-0 overflow-hidden rounded-sm border border-transparent px-3 py-2 text-sm leading-relaxed wrap-break-word group-data-[align=end]/bubble:self-end [button]:text-left [button,a]:transition-colors [button,a]:outline-none", className),
43
+ ...props
44
+ });
45
+ }
46
+ var bubbleReactionsVariants = (0, class_variance_authority.cva)("absolute z-10 flex w-fit shrink-0 items-center justify-center gap-1 rounded-full bg-muted px-1.5 py-0.5 text-sm ring-3 ring-card has-[button]:p-0", {
47
+ variants: {
48
+ side: {
49
+ top: "top-0 -translate-y-3/4",
50
+ bottom: "bottom-0 translate-y-3/4"
51
+ },
52
+ align: {
53
+ start: "left-3",
54
+ end: "right-3"
55
+ }
56
+ },
57
+ defaultVariants: {
58
+ side: "bottom",
59
+ align: "end"
60
+ }
61
+ });
62
+ function BubbleReactions({ side = "bottom", align = "end", className, ...props }) {
63
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
64
+ "data-slot": "bubble-reactions",
65
+ "data-align": align,
66
+ "data-side": side,
67
+ className: (0, cn.cn)(bubbleReactionsVariants({
68
+ side,
69
+ align
70
+ }), className),
71
+ ...props
72
+ });
73
+ }
74
+ exports.Bubble = Bubble;
75
+ exports.BubbleContent = BubbleContent;
76
+ exports.BubbleGroup = BubbleGroup;
77
+ exports.BubbleReactions = BubbleReactions;
78
+
79
+ //# sourceMappingURL=bubble.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bubble.cjs","names":["cva","Slot"],"sources":["../../../src/components/ui/bubble.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from 'cn';\nimport { Slot } from 'radix-ui';\nimport * as React from 'react';\n\nfunction BubbleGroup({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"bubble-group\"\n className={cn('flex min-w-0 flex-col gap-2', className)}\n {...props}\n />\n );\n}\n\nconst bubbleVariants = cva(\n 'group/bubble relative flex w-fit max-w-[80%] min-w-0 flex-col gap-1 group-data-[align=end]/message:self-end data-[align=end]:self-end data-[variant=ghost]:max-w-full',\n {\n variants: {\n variant: {\n default:\n '*:data-[slot=bubble-content]:bg-primary *:data-[slot=bubble-content]:text-primary-foreground [&>[data-slot=bubble-content]:is(button,a):hover]:bg-primary/80',\n secondary:\n '*:data-[slot=bubble-content]:bg-secondary *:data-[slot=bubble-content]:text-secondary-foreground [&>[data-slot=bubble-content]:is(button,a):hover]:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)]',\n muted:\n '*:data-[slot=bubble-content]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:bg-[color-mix(in_oklch,var(--muted),var(--foreground)_5%)]',\n tinted:\n '*:data-[slot=bubble-content]:bg-[oklch(from_var(--primary)_0.93_calc(c*0.4)_h)] *:data-[slot=bubble-content]:text-foreground dark:*:data-[slot=bubble-content]:bg-[oklch(from_var(--primary)_0.3_calc(c*0.4)_h)] [&>[data-slot=bubble-content]:is(button,a):hover]:bg-[oklch(from_var(--primary)_0.88_calc(c*0.5)_h)] dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-[oklch(from_var(--primary)_0.35_calc(c*0.5)_h)]',\n outline:\n '*:data-[slot=bubble-content]:border-border *:data-[slot=bubble-content]:bg-background [&>[data-slot=bubble-content]:is(button,a):hover]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:text-foreground dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-input/30',\n ghost:\n 'border-none *:data-[slot=bubble-content]:rounded-none *:data-[slot=bubble-content]:bg-transparent *:data-[slot=bubble-content]:p-0 [&>[data-slot=bubble-content]:is(button,a):hover]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:text-foreground dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-muted/50',\n destructive:\n '*:data-[slot=bubble-content]:bg-destructive/10 *:data-[slot=bubble-content]:text-destructive dark:*:data-[slot=bubble-content]:bg-destructive/20 [&>[data-slot=bubble-content]:is(button,a):hover]:bg-destructive/20 dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-destructive/30',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n);\n\nfunction Bubble({\n variant = 'default',\n align = 'start',\n className,\n ...props\n}: React.ComponentProps<'div'> &\n VariantProps<typeof bubbleVariants> & {\n align?: 'start' | 'end';\n }) {\n return (\n <div\n data-slot=\"bubble\"\n data-variant={variant}\n data-align={align}\n className={cn(bubbleVariants({ variant }), className)}\n {...props}\n />\n );\n}\n\nfunction BubbleContent({\n asChild = false,\n className,\n ...props\n}: React.ComponentProps<'div'> & {\n asChild?: boolean;\n}) {\n const Comp = asChild ? Slot.Root : 'div';\n\n return (\n <Comp\n data-slot=\"bubble-content\"\n className={cn(\n '[button,a]: [button,a]: [button,a]: w-fit max-w-full min-w-0 overflow-hidden rounded-sm border border-transparent px-3 py-2 text-sm leading-relaxed wrap-break-word group-data-[align=end]/bubble:self-end [button]:text-left [button,a]:transition-colors [button,a]:outline-none',\n className,\n )}\n {...props}\n />\n );\n}\n\nconst bubbleReactionsVariants = cva(\n 'absolute z-10 flex w-fit shrink-0 items-center justify-center gap-1 rounded-full bg-muted px-1.5 py-0.5 text-sm ring-3 ring-card has-[button]:p-0',\n {\n variants: {\n side: {\n top: 'top-0 -translate-y-3/4',\n bottom: 'bottom-0 translate-y-3/4',\n },\n align: {\n start: 'left-3',\n end: 'right-3',\n },\n },\n defaultVariants: {\n side: 'bottom',\n align: 'end',\n },\n },\n);\n\nfunction BubbleReactions({\n side = 'bottom',\n align = 'end',\n className,\n ...props\n}: React.ComponentProps<'div'> & {\n align?: 'start' | 'end';\n side?: 'top' | 'bottom';\n}) {\n return (\n <div\n data-slot=\"bubble-reactions\"\n data-align={align}\n data-side={side}\n className={cn(bubbleReactionsVariants({ side, align }), className)}\n {...props}\n />\n );\n}\n\nexport { BubbleGroup, Bubble, BubbleContent, BubbleReactions };\n"],"mappings":";;;;;;;;;AAKA,SAAS,YAAY,EAAE,WAAW,GAAG,SAAsC;CACzE,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EACE,aAAU;EACV,YAAA,GAAW,GAAA,GAAA,CAAG,+BAA+B,SAAS;EACtD,GAAI;CACL,CAAA;AAEL;AAEA,IAAM,kBAAA,GAAiBA,yBAAAA,IAAAA,CACrB,yKACA;CACE,UAAU,EACR,SAAS;EACP,SACE;EACF,WACE;EACF,OACE;EACF,QACE;EACF,SACE;EACF,OACE;EACF,aACE;CACJ,EACF;CACA,iBAAiB,EACf,SAAS,UACX;AACF,CACF;AAEA,SAAS,OAAO,EACd,UAAU,WACV,QAAQ,SACR,WACA,GAAG,SAIA;CACH,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EACE,aAAU;EACV,gBAAc;EACd,cAAY;EACZ,YAAA,GAAW,GAAA,GAAA,CAAG,eAAe,EAAE,QAAQ,CAAC,GAAG,SAAS;EACpD,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,cAAc,EACrB,UAAU,OACV,WACA,GAAG,SAGF;CACD,MAAM,OAAO,UAAUC,SAAAA,KAAK,OAAO;CAEnC,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,MAAD;EACE,aAAU;EACV,YAAA,GAAW,GAAA,GAAA,CACT,sRACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,IAAM,2BAAA,GAA0BD,yBAAAA,IAAAA,CAC9B,qJACA;CACE,UAAU;EACR,MAAM;GACJ,KAAK;GACL,QAAQ;EACV;EACA,OAAO;GACL,OAAO;GACP,KAAK;EACP;CACF;CACA,iBAAiB;EACf,MAAM;EACN,OAAO;CACT;AACF,CACF;AAEA,SAAS,gBAAgB,EACvB,OAAO,UACP,QAAQ,OACR,WACA,GAAG,SAIF;CACD,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EACE,aAAU;EACV,cAAY;EACZ,aAAW;EACX,YAAA,GAAW,GAAA,GAAA,CAAG,wBAAwB;GAAE;GAAM;EAAM,CAAC,GAAG,SAAS;EACjE,GAAI;CACL,CAAA;AAEL"}
@@ -0,0 +1,17 @@
1
+ import { type VariantProps } from 'class-variance-authority';
2
+ import * as React from 'react';
3
+ declare function BubbleGroup({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
4
+ declare const bubbleVariants: (props?: ({
5
+ variant?: "default" | "destructive" | "secondary" | "outline" | "ghost" | "muted" | "tinted" | null | undefined;
6
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
+ declare function Bubble({ variant, align, className, ...props }: React.ComponentProps<'div'> & VariantProps<typeof bubbleVariants> & {
8
+ align?: 'start' | 'end';
9
+ }): React.JSX.Element;
10
+ declare function BubbleContent({ asChild, className, ...props }: React.ComponentProps<'div'> & {
11
+ asChild?: boolean;
12
+ }): React.JSX.Element;
13
+ declare function BubbleReactions({ side, align, className, ...props }: React.ComponentProps<'div'> & {
14
+ align?: 'start' | 'end';
15
+ side?: 'top' | 'bottom';
16
+ }): React.JSX.Element;
17
+ export { BubbleGroup, Bubble, BubbleContent, BubbleReactions };
@@ -0,0 +1,43 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_components_ui_separator = require("./separator.cjs");
3
+ let cn = require("cn");
4
+ let radix_ui = require("radix-ui");
5
+ let react_jsx_runtime = require("react/jsx-runtime");
6
+ // src/components/ui/button-group.tsx
7
+ var buttonGroupVariants = (0, require("class-variance-authority").cva)("group/button-group flex w-fit items-stretch *:focus-visible:relative *:focus-visible:z-10 has-[>[data-slot=button-group]]:gap-2 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-sm [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1", {
8
+ variants: { orientation: {
9
+ horizontal: "[&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none [&>[data-slot]:not(:has(~[data-slot]))]:rounded-r-sm!",
10
+ vertical: "flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none [&>[data-slot]:not(:has(~[data-slot]))]:rounded-b-sm!"
11
+ } },
12
+ defaultVariants: { orientation: "horizontal" }
13
+ });
14
+ function ButtonGroup({ className, orientation, ...props }) {
15
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
16
+ role: "group",
17
+ "data-slot": "button-group",
18
+ "data-orientation": orientation,
19
+ className: (0, cn.cn)(buttonGroupVariants({ orientation }), className),
20
+ ...props
21
+ });
22
+ }
23
+ function ButtonGroupText({ className, asChild = false, ...props }) {
24
+ const Comp = asChild ? radix_ui.Slot.Root : "div";
25
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Comp, {
26
+ className: (0, cn.cn)("flex items-center gap-2 rounded-sm border bg-muted px-2.5 text-sm font-medium [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4", className),
27
+ ...props
28
+ });
29
+ }
30
+ function ButtonGroupSeparator({ className, orientation = "vertical", ...props }) {
31
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_ui_separator.Separator, {
32
+ "data-slot": "button-group-separator",
33
+ orientation,
34
+ className: (0, cn.cn)("relative self-stretch bg-input data-horizontal:mx-px data-horizontal:w-auto data-vertical:my-px data-vertical:h-auto", className),
35
+ ...props
36
+ });
37
+ }
38
+ exports.ButtonGroup = ButtonGroup;
39
+ exports.ButtonGroupSeparator = ButtonGroupSeparator;
40
+ exports.ButtonGroupText = ButtonGroupText;
41
+ exports.buttonGroupVariants = buttonGroupVariants;
42
+
43
+ //# sourceMappingURL=button-group.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button-group.cjs","names":["cva","Slot","Separator"],"sources":["../../../src/components/ui/button-group.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from 'cn';\nimport { Slot } from 'radix-ui';\n\nimport { Separator } from './separator';\n\nconst buttonGroupVariants = cva(\n \"group/button-group flex w-fit items-stretch *:focus-visible:relative *:focus-visible:z-10 has-[>[data-slot=button-group]]:gap-2 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-sm [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1\",\n {\n variants: {\n orientation: {\n horizontal:\n '[&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none [&>[data-slot]:not(:has(~[data-slot]))]:rounded-r-sm!',\n vertical:\n 'flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none [&>[data-slot]:not(:has(~[data-slot]))]:rounded-b-sm!',\n },\n },\n defaultVariants: {\n orientation: 'horizontal',\n },\n },\n);\n\nfunction ButtonGroup({\n className,\n orientation,\n ...props\n}: React.ComponentProps<'div'> & VariantProps<typeof buttonGroupVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"button-group\"\n data-orientation={orientation}\n className={cn(buttonGroupVariants({ orientation }), className)}\n {...props}\n />\n );\n}\n\nfunction ButtonGroupText({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<'div'> & {\n asChild?: boolean;\n}) {\n const Comp = asChild ? Slot.Root : 'div';\n\n return (\n <Comp\n className={cn(\n \"flex items-center gap-2 rounded-sm border bg-muted px-2.5 text-sm font-medium [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ButtonGroupSeparator({\n className,\n orientation = 'vertical',\n ...props\n}: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"button-group-separator\"\n orientation={orientation}\n className={cn(\n 'relative self-stretch bg-input data-horizontal:mx-px data-horizontal:w-auto data-vertical:my-px data-vertical:h-auto',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { ButtonGroup, ButtonGroupSeparator, ButtonGroupText, buttonGroupVariants };\n"],"mappings":";;;;;;AAMA,IAAM,uBAAA,G,kCAAsBA,CAAAA,CAAAA,IAAAA,CAC1B,+SACA;CACE,UAAU,EACR,aAAa;EACX,YACE;EACF,UACE;CACJ,EACF;CACA,iBAAiB,EACf,aAAa,aACf;AACF,CACF;AAEA,SAAS,YAAY,EACnB,WACA,aACA,GAAG,SACsE;CACzE,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EACE,MAAK;EACL,aAAU;EACV,oBAAkB;EAClB,YAAA,GAAW,GAAA,GAAA,CAAG,oBAAoB,EAAE,YAAY,CAAC,GAAG,SAAS;EAC7D,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,gBAAgB,EACvB,WACA,UAAU,OACV,GAAG,SAGF;CACD,MAAM,OAAO,UAAUC,SAAAA,KAAK,OAAO;CAEnC,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,MAAD;EACE,YAAA,GAAW,GAAA,GAAA,CACT,kJACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,qBAAqB,EAC5B,WACA,cAAc,YACd,GAAG,SACsC;CACzC,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,gCAAAA,WAAD;EACE,aAAU;EACG;EACb,YAAA,GAAW,GAAA,GAAA,CACT,wHACA,SACF;EACA,GAAI;CACL,CAAA;AAEL"}
@@ -0,0 +1,11 @@
1
+ import { type VariantProps } from 'class-variance-authority';
2
+ import { Separator } from './separator.cjs';
3
+ declare const buttonGroupVariants: (props?: ({
4
+ orientation?: "vertical" | "horizontal" | null | undefined;
5
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
6
+ declare function ButtonGroup({ className, orientation, ...props }: React.ComponentProps<'div'> & VariantProps<typeof buttonGroupVariants>): import("react").JSX.Element;
7
+ declare function ButtonGroupText({ className, asChild, ...props }: React.ComponentProps<'div'> & {
8
+ asChild?: boolean;
9
+ }): import("react").JSX.Element;
10
+ declare function ButtonGroupSeparator({ className, orientation, ...props }: React.ComponentProps<typeof Separator>): import("react").JSX.Element;
11
+ export { ButtonGroup, ButtonGroupSeparator, ButtonGroupText, buttonGroupVariants };
@@ -0,0 +1,64 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_rolldown_runtime = require("../../chunks/rolldown-runtime-CmQyd0Gu.cjs");
3
+ let cn = require("cn");
4
+ let radix_ui = require("radix-ui");
5
+ let react = require("react");
6
+ react = require_rolldown_runtime.__toESM(react, 1);
7
+ let react_jsx_runtime = require("react/jsx-runtime");
8
+ // src/components/ui/button.tsx
9
+ /**
10
+ * konopskidev's button.
11
+ *
12
+ * The variant and size names are a superset of shadcn/ui's: everything upstream
13
+ * accepts still works, and the site's extras (`primary`, `ghost-primary`,
14
+ * `ghost-destructive`, the `icon-*` sizes) sit alongside them. Sizing is
15
+ * padding-based rather than fixed-height, so a button lines up with the 40px
16
+ * `Input` by using the default size.
17
+ */
18
+ var buttonVariants = (0, require("class-variance-authority").cva)("inline-flex shrink-0 cursor-pointer items-center justify-center gap-2 rounded-sm border border-transparent font-sans text-sm font-medium whitespace-nowrap focus-ring transition-colors disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=size-])]:size-4", {
19
+ variants: {
20
+ variant: {
21
+ default: "bg-primary text-primary-foreground hover:bg-primary/90",
22
+ primary: "bg-primary text-primary-foreground hover:bg-primary/90",
23
+ secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
24
+ destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
25
+ outline: "border-border bg-background hover:bg-accent hover:text-accent-foreground",
26
+ ghost: "bg-transparent hover:bg-accent hover:text-accent-foreground",
27
+ "ghost-primary": "bg-transparent text-primary hover:bg-primary/10",
28
+ "ghost-destructive": "bg-transparent text-destructive hover:bg-destructive/10",
29
+ link: "text-primary underline-offset-4 hover:underline"
30
+ },
31
+ size: {
32
+ default: "px-4 py-2.5",
33
+ xs: "gap-1 px-2 py-1 text-xs [&_svg:not([class*=size-])]:size-3",
34
+ sm: "px-3 py-1.5 text-sm",
35
+ lg: "px-6 py-3",
36
+ "icon-xs": "p-1.5 [&_svg:not([class*=size-])]:size-3",
37
+ "icon-sm": "p-2",
38
+ icon: "p-2.5",
39
+ "icon-lg": "p-3"
40
+ }
41
+ },
42
+ defaultVariants: {
43
+ variant: "default",
44
+ size: "default"
45
+ }
46
+ });
47
+ function Button({ className, variant = "default", size = "default", asChild = false, type = "button", ...props }) {
48
+ const Comp = asChild ? radix_ui.Slot.Root : "button";
49
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Comp, {
50
+ "data-slot": "button",
51
+ "data-variant": variant,
52
+ "data-size": size,
53
+ type,
54
+ className: (0, cn.cn)(buttonVariants({
55
+ variant,
56
+ size
57
+ }), className),
58
+ ...props
59
+ });
60
+ }
61
+ exports.Button = Button;
62
+ exports.buttonVariants = buttonVariants;
63
+
64
+ //# sourceMappingURL=button.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.cjs","names":["cva","Slot"],"sources":["../../../src/components/ui/button.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from 'cn';\nimport { Slot } from 'radix-ui';\nimport * as React from 'react';\n\n/**\n * konopskidev's button.\n *\n * The variant and size names are a superset of shadcn/ui's: everything upstream\n * accepts still works, and the site's extras (`primary`, `ghost-primary`,\n * `ghost-destructive`, the `icon-*` sizes) sit alongside them. Sizing is\n * padding-based rather than fixed-height, so a button lines up with the 40px\n * `Input` by using the default size.\n */\nconst buttonVariants = cva(\n 'inline-flex shrink-0 cursor-pointer items-center justify-center gap-2 rounded-sm border border-transparent font-sans text-sm font-medium whitespace-nowrap focus-ring transition-colors disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=size-])]:size-4',\n {\n variants: {\n variant: {\n default: 'bg-primary text-primary-foreground hover:bg-primary/90',\n primary: 'bg-primary text-primary-foreground hover:bg-primary/90',\n secondary: 'bg-secondary text-secondary-foreground hover:bg-secondary/80',\n destructive: 'bg-destructive text-destructive-foreground hover:bg-destructive/90',\n outline: 'border-border bg-background hover:bg-accent hover:text-accent-foreground',\n ghost: 'bg-transparent hover:bg-accent hover:text-accent-foreground',\n 'ghost-primary': 'bg-transparent text-primary hover:bg-primary/10',\n 'ghost-destructive': 'bg-transparent text-destructive hover:bg-destructive/10',\n link: 'text-primary underline-offset-4 hover:underline',\n },\n size: {\n default: 'px-4 py-2.5',\n xs: 'gap-1 px-2 py-1 text-xs [&_svg:not([class*=size-])]:size-3',\n sm: 'px-3 py-1.5 text-sm',\n lg: 'px-6 py-3',\n 'icon-xs': 'p-1.5 [&_svg:not([class*=size-])]:size-3',\n 'icon-sm': 'p-2',\n icon: 'p-2.5',\n 'icon-lg': 'p-3',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nexport interface ButtonProps\n extends React.ComponentProps<'button'>, VariantProps<typeof buttonVariants> {\n /** Render the single child element instead of a `<button>`. */\n asChild?: boolean;\n}\n\nfunction Button({\n className,\n variant = 'default',\n size = 'default',\n asChild = false,\n type = 'button',\n ...props\n}: ButtonProps) {\n const Comp = asChild ? Slot.Root : 'button';\n\n return (\n <Comp\n data-slot=\"button\"\n data-variant={variant}\n data-size={size}\n type={type}\n className={cn(buttonVariants({ variant, size }), className)}\n {...props}\n />\n );\n}\n\nexport { Button, buttonVariants };\n"],"mappings":";;;;;;;;;;;;;;;;;AAcA,IAAM,kBAAA,G,kCAAiBA,CAAAA,CAAAA,IAAAA,CACrB,wVACA;CACE,UAAU;EACR,SAAS;GACP,SAAS;GACT,SAAS;GACT,WAAW;GACX,aAAa;GACb,SAAS;GACT,OAAO;GACP,iBAAiB;GACjB,qBAAqB;GACrB,MAAM;EACR;EACA,MAAM;GACJ,SAAS;GACT,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,WAAW;GACX,WAAW;GACX,MAAM;GACN,WAAW;EACb;CACF;CACA,iBAAiB;EACf,SAAS;EACT,MAAM;CACR;AACF,CACF;AAQA,SAAS,OAAO,EACd,WACA,UAAU,WACV,OAAO,WACP,UAAU,OACV,OAAO,UACP,GAAG,SACW;CACd,MAAM,OAAO,UAAUC,SAAAA,KAAK,OAAO;CAEnC,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,MAAD;EACE,aAAU;EACV,gBAAc;EACd,aAAW;EACL;EACN,YAAA,GAAW,GAAA,GAAA,CAAG,eAAe;GAAE;GAAS;EAAK,CAAC,GAAG,SAAS;EAC1D,GAAI;CACL,CAAA;AAEL"}
@@ -0,0 +1,21 @@
1
+ import { type VariantProps } from 'class-variance-authority';
2
+ import * as React from 'react';
3
+ /**
4
+ * konopskidev's button.
5
+ *
6
+ * The variant and size names are a superset of shadcn/ui's: everything upstream
7
+ * accepts still works, and the site's extras (`primary`, `ghost-primary`,
8
+ * `ghost-destructive`, the `icon-*` sizes) sit alongside them. Sizing is
9
+ * padding-based rather than fixed-height, so a button lines up with the 40px
10
+ * `Input` by using the default size.
11
+ */
12
+ declare const buttonVariants: (props?: ({
13
+ variant?: "link" | "default" | "destructive" | "primary" | "secondary" | "outline" | "ghost" | "ghost-primary" | "ghost-destructive" | null | undefined;
14
+ size?: "default" | "xs" | "sm" | "lg" | "icon-xs" | "icon-sm" | "icon" | "icon-lg" | null | undefined;
15
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
16
+ export interface ButtonProps extends React.ComponentProps<'button'>, VariantProps<typeof buttonVariants> {
17
+ /** Render the single child element instead of a `<button>`. */
18
+ asChild?: boolean;
19
+ }
20
+ declare function Button({ className, variant, size, asChild, type, ...props }: ButtonProps): React.JSX.Element;
21
+ export { Button, buttonVariants };
@@ -0,0 +1,114 @@
1
+ "use client";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const require_rolldown_runtime = require("../../chunks/rolldown-runtime-CmQyd0Gu.cjs");
4
+ const require_components_ui_button = require("./button.cjs");
5
+ let cn = require("cn");
6
+ let lucide_react = require("lucide-react");
7
+ let react = require("react");
8
+ react = require_rolldown_runtime.__toESM(react, 1);
9
+ let react_jsx_runtime = require("react/jsx-runtime");
10
+ let react_day_picker = require("react-day-picker");
11
+ // src/components/ui/calendar.tsx
12
+ function Calendar({ className, classNames, showOutsideDays = true, captionLayout = "label", buttonVariant = "ghost", locale, formatters, components, ...props }) {
13
+ const defaultClassNames = (0, react_day_picker.getDefaultClassNames)();
14
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_day_picker.DayPicker, {
15
+ showOutsideDays,
16
+ className: (0, cn.cn)("group/calendar bg-background p-2 [--cell-radius:var(--radius-md)] [--cell-size:--spacing(7)] in-data-[slot=card-content]:bg-transparent in-data-[slot=popover-content]:bg-transparent", String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`, String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`, className),
17
+ captionLayout,
18
+ locale,
19
+ formatters: {
20
+ formatMonthDropdown: (date) => date.toLocaleString(locale?.code, { month: "short" }),
21
+ ...formatters
22
+ },
23
+ classNames: {
24
+ root: (0, cn.cn)("w-fit", defaultClassNames.root),
25
+ months: (0, cn.cn)("relative flex flex-col gap-4 md:flex-row", defaultClassNames.months),
26
+ month: (0, cn.cn)("flex w-full flex-col gap-4", defaultClassNames.month),
27
+ nav: (0, cn.cn)("absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1", defaultClassNames.nav),
28
+ button_previous: (0, cn.cn)(require_components_ui_button.buttonVariants({ variant: buttonVariant }), "size-(--cell-size) p-0 select-none aria-disabled:opacity-50", defaultClassNames.button_previous),
29
+ button_next: (0, cn.cn)(require_components_ui_button.buttonVariants({ variant: buttonVariant }), "size-(--cell-size) p-0 select-none aria-disabled:opacity-50", defaultClassNames.button_next),
30
+ month_caption: (0, cn.cn)("flex h-(--cell-size) w-full items-center justify-center px-(--cell-size)", defaultClassNames.month_caption),
31
+ dropdowns: (0, cn.cn)("flex h-(--cell-size) w-full items-center justify-center gap-1.5 text-sm font-medium", defaultClassNames.dropdowns),
32
+ dropdown_root: (0, cn.cn)("relative rounded-(--cell-radius)", defaultClassNames.dropdown_root),
33
+ dropdown: (0, cn.cn)("absolute inset-0 bg-popover opacity-0", defaultClassNames.dropdown),
34
+ caption_label: (0, cn.cn)("font-medium select-none", captionLayout === "label" ? "text-sm" : "flex items-center gap-1 rounded-(--cell-radius) text-sm [&>svg]:size-3.5 [&>svg]:text-muted-foreground", defaultClassNames.caption_label),
35
+ month_grid: (0, cn.cn)("w-full border-collapse", defaultClassNames.month_grid),
36
+ weekdays: (0, cn.cn)("flex", defaultClassNames.weekdays),
37
+ weekday: (0, cn.cn)("flex-1 rounded-(--cell-radius) text-[0.8rem] font-normal text-muted-foreground select-none", defaultClassNames.weekday),
38
+ week: (0, cn.cn)("mt-2 flex w-full", defaultClassNames.week),
39
+ week_number_header: (0, cn.cn)("w-(--cell-size) select-none", defaultClassNames.week_number_header),
40
+ week_number: (0, cn.cn)("text-[0.8rem] text-muted-foreground select-none", defaultClassNames.week_number),
41
+ day: (0, cn.cn)("group/day relative aspect-square h-full w-full rounded-(--cell-radius) p-0 text-center select-none [&:last-child[data-selected=true]_button]:rounded-r-(--cell-radius)", props.showWeekNumber ? "[&:nth-child(2)[data-selected=true]_button]:rounded-l-(--cell-radius)" : "[&:first-child[data-selected=true]_button]:rounded-l-(--cell-radius)", defaultClassNames.day),
42
+ range_start: (0, cn.cn)("relative isolate z-0 rounded-l-(--cell-radius) bg-muted after:absolute after:inset-y-0 after:right-0 after:w-4 after:bg-muted", defaultClassNames.range_start),
43
+ range_middle: (0, cn.cn)("rounded-none", defaultClassNames.range_middle),
44
+ range_end: (0, cn.cn)("relative isolate z-0 rounded-r-(--cell-radius) bg-muted after:absolute after:inset-y-0 after:left-0 after:w-4 after:bg-muted", defaultClassNames.range_end),
45
+ today: (0, cn.cn)("rounded-(--cell-radius) bg-muted text-foreground data-[selected=true]:rounded-none", defaultClassNames.today),
46
+ outside: (0, cn.cn)("text-muted-foreground aria-selected:text-muted-foreground", defaultClassNames.outside),
47
+ disabled: (0, cn.cn)("text-muted-foreground opacity-50", defaultClassNames.disabled),
48
+ hidden: (0, cn.cn)("invisible", defaultClassNames.hidden),
49
+ ...classNames
50
+ },
51
+ components: {
52
+ Root: ({ className, rootRef, ...props }) => {
53
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
54
+ "data-slot": "calendar",
55
+ ref: rootRef,
56
+ className: (0, cn.cn)(className),
57
+ ...props
58
+ });
59
+ },
60
+ Chevron: ({ className, orientation, ...props }) => {
61
+ if (orientation === "left") return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.ChevronLeftIcon, {
62
+ className: (0, cn.cn)("size-4", className),
63
+ ...props
64
+ });
65
+ if (orientation === "right") return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.ChevronRightIcon, {
66
+ className: (0, cn.cn)("size-4", className),
67
+ ...props
68
+ });
69
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.ChevronDownIcon, {
70
+ className: (0, cn.cn)("size-4", className),
71
+ ...props
72
+ });
73
+ },
74
+ DayButton: ({ ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(CalendarDayButton, {
75
+ locale,
76
+ ...props
77
+ }),
78
+ WeekNumber: ({ children, ...props }) => {
79
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("td", {
80
+ ...props,
81
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
82
+ className: "flex size-(--cell-size) items-center justify-center text-center",
83
+ children
84
+ })
85
+ });
86
+ },
87
+ ...components
88
+ },
89
+ ...props
90
+ });
91
+ }
92
+ function CalendarDayButton({ className, day, modifiers, locale, ...props }) {
93
+ const defaultClassNames = (0, react_day_picker.getDefaultClassNames)();
94
+ const ref = react.useRef(null);
95
+ react.useEffect(() => {
96
+ if (modifiers.focused) ref.current?.focus();
97
+ }, [modifiers.focused]);
98
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_ui_button.Button, {
99
+ ref,
100
+ variant: "ghost",
101
+ size: "icon",
102
+ "data-day": day.date.toLocaleDateString(locale?.code),
103
+ "data-selected-single": modifiers.selected && !modifiers.range_start && !modifiers.range_end && !modifiers.range_middle,
104
+ "data-range-start": modifiers.range_start,
105
+ "data-range-end": modifiers.range_end,
106
+ "data-range-middle": modifiers.range_middle,
107
+ className: (0, cn.cn)("relative isolate z-10 flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 border-0 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-[3px] group-data-[focused=true]/day:ring-ring/50 data-[range-end=true]:rounded-(--cell-radius) data-[range-end=true]:rounded-r-(--cell-radius) data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground data-[range-middle=true]:rounded-none data-[range-middle=true]:bg-muted data-[range-middle=true]:text-foreground data-[range-start=true]:rounded-(--cell-radius) data-[range-start=true]:rounded-l-(--cell-radius) data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground dark:hover:text-foreground [&>span]:text-xs [&>span]:opacity-70", defaultClassNames.day, className),
108
+ ...props
109
+ });
110
+ }
111
+ exports.Calendar = Calendar;
112
+ exports.CalendarDayButton = CalendarDayButton;
113
+
114
+ //# sourceMappingURL=calendar.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar.cjs","names":["getDefaultClassNames","DayPicker","buttonVariants","ChevronLeftIcon","ChevronRightIcon","ChevronDownIcon","React","Button"],"sources":["../../../src/components/ui/calendar.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from 'cn';\nimport { ChevronLeftIcon, ChevronRightIcon, ChevronDownIcon } from 'lucide-react';\nimport * as React from 'react';\nimport { DayPicker, getDefaultClassNames, type DayButton, type Locale } from 'react-day-picker';\n\nimport { Button, buttonVariants } from './button';\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = 'label',\n buttonVariant = 'ghost',\n locale,\n formatters,\n components,\n ...props\n}: React.ComponentProps<typeof DayPicker> & {\n buttonVariant?: React.ComponentProps<typeof Button>['variant'];\n}) {\n const defaultClassNames = getDefaultClassNames();\n\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn(\n 'group/calendar bg-background p-2 [--cell-radius:var(--radius-md)] [--cell-size:--spacing(7)] in-data-[slot=card-content]:bg-transparent in-data-[slot=popover-content]:bg-transparent',\n String.raw`rtl:**:[.rdp-button\\_next>svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className,\n )}\n captionLayout={captionLayout}\n locale={locale}\n formatters={{\n formatMonthDropdown: (date) => date.toLocaleString(locale?.code, { month: 'short' }),\n ...formatters,\n }}\n classNames={{\n root: cn('w-fit', defaultClassNames.root),\n months: cn('relative flex flex-col gap-4 md:flex-row', defaultClassNames.months),\n month: cn('flex w-full flex-col gap-4', defaultClassNames.month),\n nav: cn(\n 'absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1',\n defaultClassNames.nav,\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n 'size-(--cell-size) p-0 select-none aria-disabled:opacity-50',\n defaultClassNames.button_previous,\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n 'size-(--cell-size) p-0 select-none aria-disabled:opacity-50',\n defaultClassNames.button_next,\n ),\n month_caption: cn(\n 'flex h-(--cell-size) w-full items-center justify-center px-(--cell-size)',\n defaultClassNames.month_caption,\n ),\n dropdowns: cn(\n 'flex h-(--cell-size) w-full items-center justify-center gap-1.5 text-sm font-medium',\n defaultClassNames.dropdowns,\n ),\n dropdown_root: cn('relative rounded-(--cell-radius)', defaultClassNames.dropdown_root),\n dropdown: cn('absolute inset-0 bg-popover opacity-0', defaultClassNames.dropdown),\n caption_label: cn(\n 'font-medium select-none',\n captionLayout === 'label'\n ? 'text-sm'\n : 'flex items-center gap-1 rounded-(--cell-radius) text-sm [&>svg]:size-3.5 [&>svg]:text-muted-foreground',\n defaultClassNames.caption_label,\n ),\n month_grid: cn('w-full border-collapse', defaultClassNames.month_grid),\n weekdays: cn('flex', defaultClassNames.weekdays),\n weekday: cn(\n 'flex-1 rounded-(--cell-radius) text-[0.8rem] font-normal text-muted-foreground select-none',\n defaultClassNames.weekday,\n ),\n week: cn('mt-2 flex w-full', defaultClassNames.week),\n week_number_header: cn('w-(--cell-size) select-none', defaultClassNames.week_number_header),\n week_number: cn(\n 'text-[0.8rem] text-muted-foreground select-none',\n defaultClassNames.week_number,\n ),\n day: cn(\n 'group/day relative aspect-square h-full w-full rounded-(--cell-radius) p-0 text-center select-none [&:last-child[data-selected=true]_button]:rounded-r-(--cell-radius)',\n props.showWeekNumber\n ? '[&:nth-child(2)[data-selected=true]_button]:rounded-l-(--cell-radius)'\n : '[&:first-child[data-selected=true]_button]:rounded-l-(--cell-radius)',\n defaultClassNames.day,\n ),\n range_start: cn(\n 'relative isolate z-0 rounded-l-(--cell-radius) bg-muted after:absolute after:inset-y-0 after:right-0 after:w-4 after:bg-muted',\n defaultClassNames.range_start,\n ),\n range_middle: cn('rounded-none', defaultClassNames.range_middle),\n range_end: cn(\n 'relative isolate z-0 rounded-r-(--cell-radius) bg-muted after:absolute after:inset-y-0 after:left-0 after:w-4 after:bg-muted',\n defaultClassNames.range_end,\n ),\n today: cn(\n 'rounded-(--cell-radius) bg-muted text-foreground data-[selected=true]:rounded-none',\n defaultClassNames.today,\n ),\n outside: cn(\n 'text-muted-foreground aria-selected:text-muted-foreground',\n defaultClassNames.outside,\n ),\n disabled: cn('text-muted-foreground opacity-50', defaultClassNames.disabled),\n hidden: cn('invisible', defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return <div data-slot=\"calendar\" ref={rootRef} className={cn(className)} {...props} />;\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === 'left') {\n return <ChevronLeftIcon className={cn('size-4', className)} {...props} />;\n }\n\n if (orientation === 'right') {\n return <ChevronRightIcon className={cn('size-4', className)} {...props} />;\n }\n\n return <ChevronDownIcon className={cn('size-4', className)} {...props} />;\n },\n DayButton: ({ ...props }) => <CalendarDayButton locale={locale} {...props} />,\n WeekNumber: ({ children, ...props }) => {\n return (\n <td {...props}>\n <div className=\"flex size-(--cell-size) items-center justify-center text-center\">\n {children}\n </div>\n </td>\n );\n },\n ...components,\n }}\n {...props}\n />\n );\n}\n\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n locale,\n ...props\n}: React.ComponentProps<typeof DayButton> & { locale?: Partial<Locale> }) {\n const defaultClassNames = getDefaultClassNames();\n\n const ref = React.useRef<HTMLButtonElement>(null);\n React.useEffect(() => {\n if (modifiers.focused) ref.current?.focus();\n }, [modifiers.focused]);\n\n return (\n <Button\n ref={ref}\n variant=\"ghost\"\n size=\"icon\"\n data-day={day.date.toLocaleDateString(locale?.code)}\n data-selected-single={\n modifiers.selected &&\n !modifiers.range_start &&\n !modifiers.range_end &&\n !modifiers.range_middle\n }\n data-range-start={modifiers.range_start}\n data-range-end={modifiers.range_end}\n data-range-middle={modifiers.range_middle}\n className={cn(\n 'relative isolate z-10 flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 border-0 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-[3px] group-data-[focused=true]/day:ring-ring/50 data-[range-end=true]:rounded-(--cell-radius) data-[range-end=true]:rounded-r-(--cell-radius) data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground data-[range-middle=true]:rounded-none data-[range-middle=true]:bg-muted data-[range-middle=true]:text-foreground data-[range-start=true]:rounded-(--cell-radius) data-[range-start=true]:rounded-l-(--cell-radius) data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground dark:hover:text-foreground [&>span]:text-xs [&>span]:opacity-70',\n defaultClassNames.day,\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Calendar, CalendarDayButton };\n"],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import * as React from 'react';
2
+ import { DayPicker, type DayButton, type Locale } from 'react-day-picker';
3
+ import { Button } from './button.cjs';
4
+ declare function Calendar({ className, classNames, showOutsideDays, captionLayout, buttonVariant, locale, formatters, components, ...props }: React.ComponentProps<typeof DayPicker> & {
5
+ buttonVariant?: React.ComponentProps<typeof Button>['variant'];
6
+ }): React.JSX.Element;
7
+ declare function CalendarDayButton({ className, day, modifiers, locale, ...props }: React.ComponentProps<typeof DayButton> & {
8
+ locale?: Partial<Locale>;
9
+ }): React.JSX.Element;
10
+ export { Calendar, CalendarDayButton };
@@ -1,5 +1,4 @@
1
1
  "use client";
2
- "use client";
3
2
  import { Button, buttonVariants } from "./button.js";
4
3
  import { cn } from "cn";
5
4
  import { ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon } from "lucide-react";
@@ -1 +1 @@
1
- {"version":3,"file":"calendar.js","names":[],"sources":["../../../src/components/ui/calendar.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from 'cn';\nimport { ChevronLeftIcon, ChevronRightIcon, ChevronDownIcon } from 'lucide-react';\nimport * as React from 'react';\nimport { DayPicker, getDefaultClassNames, type DayButton, type Locale } from 'react-day-picker';\n\nimport { Button, buttonVariants } from './button';\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = 'label',\n buttonVariant = 'ghost',\n locale,\n formatters,\n components,\n ...props\n}: React.ComponentProps<typeof DayPicker> & {\n buttonVariant?: React.ComponentProps<typeof Button>['variant'];\n}) {\n const defaultClassNames = getDefaultClassNames();\n\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn(\n 'group/calendar bg-background p-2 [--cell-radius:var(--radius-md)] [--cell-size:--spacing(7)] in-data-[slot=card-content]:bg-transparent in-data-[slot=popover-content]:bg-transparent',\n String.raw`rtl:**:[.rdp-button\\_next>svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className,\n )}\n captionLayout={captionLayout}\n locale={locale}\n formatters={{\n formatMonthDropdown: (date) => date.toLocaleString(locale?.code, { month: 'short' }),\n ...formatters,\n }}\n classNames={{\n root: cn('w-fit', defaultClassNames.root),\n months: cn('relative flex flex-col gap-4 md:flex-row', defaultClassNames.months),\n month: cn('flex w-full flex-col gap-4', defaultClassNames.month),\n nav: cn(\n 'absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1',\n defaultClassNames.nav,\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n 'size-(--cell-size) p-0 select-none aria-disabled:opacity-50',\n defaultClassNames.button_previous,\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n 'size-(--cell-size) p-0 select-none aria-disabled:opacity-50',\n defaultClassNames.button_next,\n ),\n month_caption: cn(\n 'flex h-(--cell-size) w-full items-center justify-center px-(--cell-size)',\n defaultClassNames.month_caption,\n ),\n dropdowns: cn(\n 'flex h-(--cell-size) w-full items-center justify-center gap-1.5 text-sm font-medium',\n defaultClassNames.dropdowns,\n ),\n dropdown_root: cn('relative rounded-(--cell-radius)', defaultClassNames.dropdown_root),\n dropdown: cn('absolute inset-0 bg-popover opacity-0', defaultClassNames.dropdown),\n caption_label: cn(\n 'font-medium select-none',\n captionLayout === 'label'\n ? 'text-sm'\n : 'flex items-center gap-1 rounded-(--cell-radius) text-sm [&>svg]:size-3.5 [&>svg]:text-muted-foreground',\n defaultClassNames.caption_label,\n ),\n month_grid: cn('w-full border-collapse', defaultClassNames.month_grid),\n weekdays: cn('flex', defaultClassNames.weekdays),\n weekday: cn(\n 'flex-1 rounded-(--cell-radius) text-[0.8rem] font-normal text-muted-foreground select-none',\n defaultClassNames.weekday,\n ),\n week: cn('mt-2 flex w-full', defaultClassNames.week),\n week_number_header: cn('w-(--cell-size) select-none', defaultClassNames.week_number_header),\n week_number: cn(\n 'text-[0.8rem] text-muted-foreground select-none',\n defaultClassNames.week_number,\n ),\n day: cn(\n 'group/day relative aspect-square h-full w-full rounded-(--cell-radius) p-0 text-center select-none [&:last-child[data-selected=true]_button]:rounded-r-(--cell-radius)',\n props.showWeekNumber\n ? '[&:nth-child(2)[data-selected=true]_button]:rounded-l-(--cell-radius)'\n : '[&:first-child[data-selected=true]_button]:rounded-l-(--cell-radius)',\n defaultClassNames.day,\n ),\n range_start: cn(\n 'relative isolate z-0 rounded-l-(--cell-radius) bg-muted after:absolute after:inset-y-0 after:right-0 after:w-4 after:bg-muted',\n defaultClassNames.range_start,\n ),\n range_middle: cn('rounded-none', defaultClassNames.range_middle),\n range_end: cn(\n 'relative isolate z-0 rounded-r-(--cell-radius) bg-muted after:absolute after:inset-y-0 after:left-0 after:w-4 after:bg-muted',\n defaultClassNames.range_end,\n ),\n today: cn(\n 'rounded-(--cell-radius) bg-muted text-foreground data-[selected=true]:rounded-none',\n defaultClassNames.today,\n ),\n outside: cn(\n 'text-muted-foreground aria-selected:text-muted-foreground',\n defaultClassNames.outside,\n ),\n disabled: cn('text-muted-foreground opacity-50', defaultClassNames.disabled),\n hidden: cn('invisible', defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return <div data-slot=\"calendar\" ref={rootRef} className={cn(className)} {...props} />;\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === 'left') {\n return <ChevronLeftIcon className={cn('size-4', className)} {...props} />;\n }\n\n if (orientation === 'right') {\n return <ChevronRightIcon className={cn('size-4', className)} {...props} />;\n }\n\n return <ChevronDownIcon className={cn('size-4', className)} {...props} />;\n },\n DayButton: ({ ...props }) => <CalendarDayButton locale={locale} {...props} />,\n WeekNumber: ({ children, ...props }) => {\n return (\n <td {...props}>\n <div className=\"flex size-(--cell-size) items-center justify-center text-center\">\n {children}\n </div>\n </td>\n );\n },\n ...components,\n }}\n {...props}\n />\n );\n}\n\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n locale,\n ...props\n}: React.ComponentProps<typeof DayButton> & { locale?: Partial<Locale> }) {\n const defaultClassNames = getDefaultClassNames();\n\n const ref = React.useRef<HTMLButtonElement>(null);\n React.useEffect(() => {\n if (modifiers.focused) ref.current?.focus();\n }, [modifiers.focused]);\n\n return (\n <Button\n ref={ref}\n variant=\"ghost\"\n size=\"icon\"\n data-day={day.date.toLocaleDateString(locale?.code)}\n data-selected-single={\n modifiers.selected &&\n !modifiers.range_start &&\n !modifiers.range_end &&\n !modifiers.range_middle\n }\n data-range-start={modifiers.range_start}\n data-range-end={modifiers.range_end}\n data-range-middle={modifiers.range_middle}\n className={cn(\n 'relative isolate z-10 flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 border-0 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-[3px] group-data-[focused=true]/day:ring-ring/50 data-[range-end=true]:rounded-(--cell-radius) data-[range-end=true]:rounded-r-(--cell-radius) data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground data-[range-middle=true]:rounded-none data-[range-middle=true]:bg-muted data-[range-middle=true]:text-foreground data-[range-start=true]:rounded-(--cell-radius) data-[range-start=true]:rounded-l-(--cell-radius) data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground dark:hover:text-foreground [&>span]:text-xs [&>span]:opacity-70',\n defaultClassNames.day,\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Calendar, CalendarDayButton };\n"],"mappings":"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"}
1
+ {"version":3,"file":"calendar.js","names":[],"sources":["../../../src/components/ui/calendar.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from 'cn';\nimport { ChevronLeftIcon, ChevronRightIcon, ChevronDownIcon } from 'lucide-react';\nimport * as React from 'react';\nimport { DayPicker, getDefaultClassNames, type DayButton, type Locale } from 'react-day-picker';\n\nimport { Button, buttonVariants } from './button';\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = 'label',\n buttonVariant = 'ghost',\n locale,\n formatters,\n components,\n ...props\n}: React.ComponentProps<typeof DayPicker> & {\n buttonVariant?: React.ComponentProps<typeof Button>['variant'];\n}) {\n const defaultClassNames = getDefaultClassNames();\n\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn(\n 'group/calendar bg-background p-2 [--cell-radius:var(--radius-md)] [--cell-size:--spacing(7)] in-data-[slot=card-content]:bg-transparent in-data-[slot=popover-content]:bg-transparent',\n String.raw`rtl:**:[.rdp-button\\_next>svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className,\n )}\n captionLayout={captionLayout}\n locale={locale}\n formatters={{\n formatMonthDropdown: (date) => date.toLocaleString(locale?.code, { month: 'short' }),\n ...formatters,\n }}\n classNames={{\n root: cn('w-fit', defaultClassNames.root),\n months: cn('relative flex flex-col gap-4 md:flex-row', defaultClassNames.months),\n month: cn('flex w-full flex-col gap-4', defaultClassNames.month),\n nav: cn(\n 'absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1',\n defaultClassNames.nav,\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n 'size-(--cell-size) p-0 select-none aria-disabled:opacity-50',\n defaultClassNames.button_previous,\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n 'size-(--cell-size) p-0 select-none aria-disabled:opacity-50',\n defaultClassNames.button_next,\n ),\n month_caption: cn(\n 'flex h-(--cell-size) w-full items-center justify-center px-(--cell-size)',\n defaultClassNames.month_caption,\n ),\n dropdowns: cn(\n 'flex h-(--cell-size) w-full items-center justify-center gap-1.5 text-sm font-medium',\n defaultClassNames.dropdowns,\n ),\n dropdown_root: cn('relative rounded-(--cell-radius)', defaultClassNames.dropdown_root),\n dropdown: cn('absolute inset-0 bg-popover opacity-0', defaultClassNames.dropdown),\n caption_label: cn(\n 'font-medium select-none',\n captionLayout === 'label'\n ? 'text-sm'\n : 'flex items-center gap-1 rounded-(--cell-radius) text-sm [&>svg]:size-3.5 [&>svg]:text-muted-foreground',\n defaultClassNames.caption_label,\n ),\n month_grid: cn('w-full border-collapse', defaultClassNames.month_grid),\n weekdays: cn('flex', defaultClassNames.weekdays),\n weekday: cn(\n 'flex-1 rounded-(--cell-radius) text-[0.8rem] font-normal text-muted-foreground select-none',\n defaultClassNames.weekday,\n ),\n week: cn('mt-2 flex w-full', defaultClassNames.week),\n week_number_header: cn('w-(--cell-size) select-none', defaultClassNames.week_number_header),\n week_number: cn(\n 'text-[0.8rem] text-muted-foreground select-none',\n defaultClassNames.week_number,\n ),\n day: cn(\n 'group/day relative aspect-square h-full w-full rounded-(--cell-radius) p-0 text-center select-none [&:last-child[data-selected=true]_button]:rounded-r-(--cell-radius)',\n props.showWeekNumber\n ? '[&:nth-child(2)[data-selected=true]_button]:rounded-l-(--cell-radius)'\n : '[&:first-child[data-selected=true]_button]:rounded-l-(--cell-radius)',\n defaultClassNames.day,\n ),\n range_start: cn(\n 'relative isolate z-0 rounded-l-(--cell-radius) bg-muted after:absolute after:inset-y-0 after:right-0 after:w-4 after:bg-muted',\n defaultClassNames.range_start,\n ),\n range_middle: cn('rounded-none', defaultClassNames.range_middle),\n range_end: cn(\n 'relative isolate z-0 rounded-r-(--cell-radius) bg-muted after:absolute after:inset-y-0 after:left-0 after:w-4 after:bg-muted',\n defaultClassNames.range_end,\n ),\n today: cn(\n 'rounded-(--cell-radius) bg-muted text-foreground data-[selected=true]:rounded-none',\n defaultClassNames.today,\n ),\n outside: cn(\n 'text-muted-foreground aria-selected:text-muted-foreground',\n defaultClassNames.outside,\n ),\n disabled: cn('text-muted-foreground opacity-50', defaultClassNames.disabled),\n hidden: cn('invisible', defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return <div data-slot=\"calendar\" ref={rootRef} className={cn(className)} {...props} />;\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === 'left') {\n return <ChevronLeftIcon className={cn('size-4', className)} {...props} />;\n }\n\n if (orientation === 'right') {\n return <ChevronRightIcon className={cn('size-4', className)} {...props} />;\n }\n\n return <ChevronDownIcon className={cn('size-4', className)} {...props} />;\n },\n DayButton: ({ ...props }) => <CalendarDayButton locale={locale} {...props} />,\n WeekNumber: ({ children, ...props }) => {\n return (\n <td {...props}>\n <div className=\"flex size-(--cell-size) items-center justify-center text-center\">\n {children}\n </div>\n </td>\n );\n },\n ...components,\n }}\n {...props}\n />\n );\n}\n\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n locale,\n ...props\n}: React.ComponentProps<typeof DayButton> & { locale?: Partial<Locale> }) {\n const defaultClassNames = getDefaultClassNames();\n\n const ref = React.useRef<HTMLButtonElement>(null);\n React.useEffect(() => {\n if (modifiers.focused) ref.current?.focus();\n }, [modifiers.focused]);\n\n return (\n <Button\n ref={ref}\n variant=\"ghost\"\n size=\"icon\"\n data-day={day.date.toLocaleDateString(locale?.code)}\n data-selected-single={\n modifiers.selected &&\n !modifiers.range_start &&\n !modifiers.range_end &&\n !modifiers.range_middle\n }\n data-range-start={modifiers.range_start}\n data-range-end={modifiers.range_end}\n data-range-middle={modifiers.range_middle}\n className={cn(\n 'relative isolate z-10 flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 border-0 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-[3px] group-data-[focused=true]/day:ring-ring/50 data-[range-end=true]:rounded-(--cell-radius) data-[range-end=true]:rounded-r-(--cell-radius) data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground data-[range-middle=true]:rounded-none data-[range-middle=true]:bg-muted data-[range-middle=true]:text-foreground data-[range-start=true]:rounded-(--cell-radius) data-[range-start=true]:rounded-l-(--cell-radius) data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground dark:hover:text-foreground [&>span]:text-xs [&>span]:opacity-70',\n defaultClassNames.day,\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Calendar, CalendarDayButton };\n"],"mappings":"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"}