@px-ui/ui 0.1.4 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (316) hide show
  1. package/dist/avatar-C-yFMpI5.d.ts +41 -0
  2. package/dist/avatar-C-yFMpI5.d.ts.map +1 -0
  3. package/dist/avatar-DDdL9xDH.js +119 -0
  4. package/dist/avatar-DDdL9xDH.js.map +1 -0
  5. package/dist/button-KTVkwZNA.d.ts +19 -0
  6. package/dist/button-KTVkwZNA.d.ts.map +1 -0
  7. package/dist/button-hBUFMmsZ.js +47 -0
  8. package/dist/button-hBUFMmsZ.js.map +1 -0
  9. package/dist/combobox-CnpyzZ7B.js +334 -0
  10. package/dist/combobox-CnpyzZ7B.js.map +1 -0
  11. package/dist/combobox-GYXOAPSk.d.ts +109 -0
  12. package/dist/combobox-GYXOAPSk.d.ts.map +1 -0
  13. package/dist/components/accordion.d.ts +25 -0
  14. package/dist/components/accordion.d.ts.map +1 -0
  15. package/dist/components/accordion.js +56 -0
  16. package/dist/components/accordion.js.map +1 -0
  17. package/dist/components/alert-dialog.d.ts +59 -0
  18. package/dist/components/alert-dialog.d.ts.map +1 -0
  19. package/dist/components/alert-dialog.js +99 -0
  20. package/dist/components/alert-dialog.js.map +1 -0
  21. package/dist/components/alert.d.ts +29 -0
  22. package/dist/components/alert.d.ts.map +1 -0
  23. package/dist/components/alert.js +47 -0
  24. package/dist/components/alert.js.map +1 -0
  25. package/dist/components/aspect-ratio.d.ts +13 -0
  26. package/dist/components/aspect-ratio.d.ts.map +1 -0
  27. package/dist/components/aspect-ratio.js +16 -0
  28. package/dist/components/aspect-ratio.js.map +1 -0
  29. package/dist/components/avatar-group.d.ts +30 -0
  30. package/dist/components/avatar-group.d.ts.map +1 -0
  31. package/dist/components/avatar-group.js +69 -0
  32. package/dist/components/avatar-group.js.map +1 -0
  33. package/dist/components/avatar.d.ts +2 -0
  34. package/dist/components/avatar.js +5 -0
  35. package/dist/components/badge.d.ts +18 -0
  36. package/dist/components/badge.d.ts.map +1 -0
  37. package/dist/components/badge.js +31 -0
  38. package/dist/components/badge.js.map +1 -0
  39. package/dist/components/breadcrumb.d.ts +38 -0
  40. package/dist/components/breadcrumb.d.ts.map +1 -0
  41. package/dist/components/breadcrumb.js +75 -0
  42. package/dist/components/breadcrumb.js.map +1 -0
  43. package/dist/components/button-group.d.ts +29 -0
  44. package/dist/components/button-group.d.ts.map +1 -0
  45. package/dist/components/button-group.js +44 -0
  46. package/dist/components/button-group.js.map +1 -0
  47. package/dist/components/button.d.ts +2 -0
  48. package/dist/components/button.js +4 -0
  49. package/dist/components/calendar.d.ts +32 -0
  50. package/dist/components/calendar.d.ts.map +1 -0
  51. package/dist/components/calendar.js +119 -0
  52. package/dist/components/calendar.js.map +1 -0
  53. package/dist/components/card.d.ts +38 -0
  54. package/dist/components/card.d.ts.map +1 -0
  55. package/dist/components/card.js +59 -0
  56. package/dist/components/card.js.map +1 -0
  57. package/dist/components/carousel.d.ts +57 -0
  58. package/dist/components/carousel.d.ts.map +1 -0
  59. package/dist/components/carousel.js +136 -0
  60. package/dist/components/carousel.js.map +1 -0
  61. package/dist/components/chart.d.ts +79 -0
  62. package/dist/components/chart.d.ts.map +1 -0
  63. package/dist/components/chart.js +148 -0
  64. package/dist/components/chart.js.map +1 -0
  65. package/dist/components/checkbox.d.ts +11 -0
  66. package/dist/components/checkbox.d.ts.map +1 -0
  67. package/dist/components/checkbox.js +24 -0
  68. package/dist/components/checkbox.js.map +1 -0
  69. package/dist/components/collapsible.d.ts +25 -0
  70. package/dist/components/collapsible.d.ts.map +1 -0
  71. package/dist/components/collapsible.js +28 -0
  72. package/dist/components/collapsible.js.map +1 -0
  73. package/dist/components/combobox.d.ts +3 -0
  74. package/dist/components/combobox.js +13 -0
  75. package/dist/components/command.d.ts +78 -0
  76. package/dist/components/command.d.ts.map +1 -0
  77. package/dist/components/command.js +125 -0
  78. package/dist/components/command.js.map +1 -0
  79. package/dist/components/context-menu.d.ts +87 -0
  80. package/dist/components/context-menu.d.ts.map +1 -0
  81. package/dist/components/context-menu.js +137 -0
  82. package/dist/components/context-menu.js.map +1 -0
  83. package/dist/components/currency-select-field.d.ts +105 -0
  84. package/dist/components/currency-select-field.d.ts.map +1 -0
  85. package/dist/components/currency-select-field.js +266 -0
  86. package/dist/components/currency-select-field.js.map +1 -0
  87. package/dist/components/dialog.d.ts +61 -0
  88. package/dist/components/dialog.d.ts.map +1 -0
  89. package/dist/components/dialog.js +5 -0
  90. package/dist/components/direction.d.ts +2 -0
  91. package/dist/components/direction.js +3 -0
  92. package/dist/components/drawer.d.ts +45 -0
  93. package/dist/components/drawer.d.ts.map +1 -0
  94. package/dist/components/drawer.js +86 -0
  95. package/dist/components/drawer.js.map +1 -0
  96. package/dist/components/dropdown-menu.d.ts +2 -0
  97. package/dist/components/dropdown-menu.js +4 -0
  98. package/dist/components/empty.d.ts +36 -0
  99. package/dist/components/empty.d.ts.map +1 -0
  100. package/dist/components/empty.js +62 -0
  101. package/dist/components/empty.js.map +1 -0
  102. package/dist/components/field.d.ts +72 -0
  103. package/dist/components/field.d.ts.map +1 -0
  104. package/dist/components/field.js +122 -0
  105. package/dist/components/field.js.map +1 -0
  106. package/dist/components/file-upload-field.d.ts +58 -0
  107. package/dist/components/file-upload-field.d.ts.map +1 -0
  108. package/dist/components/file-upload-field.js +90 -0
  109. package/dist/components/file-upload-field.js.map +1 -0
  110. package/dist/components/file-upload.d.ts +4 -0
  111. package/dist/components/file-upload.js +6 -0
  112. package/dist/components/hover-card.d.ts +21 -0
  113. package/dist/components/hover-card.d.ts.map +1 -0
  114. package/dist/components/hover-card.js +40 -0
  115. package/dist/components/hover-card.js.map +1 -0
  116. package/dist/components/input-group.d.ts +46 -0
  117. package/dist/components/input-group.d.ts.map +1 -0
  118. package/dist/components/input-group.js +9 -0
  119. package/dist/components/input-otp.d.ts +24 -0
  120. package/dist/components/input-otp.d.ts.map +1 -0
  121. package/dist/components/input-otp.js +40 -0
  122. package/dist/components/input-otp.js.map +1 -0
  123. package/dist/components/input.d.ts +2 -0
  124. package/dist/components/input.js +4 -0
  125. package/dist/components/item.d.ts +62 -0
  126. package/dist/components/item.d.ts.map +1 -0
  127. package/dist/components/item.js +124 -0
  128. package/dist/components/item.js.map +1 -0
  129. package/dist/components/kbd.d.ts +14 -0
  130. package/dist/components/kbd.d.ts.map +1 -0
  131. package/dist/components/kbd.js +22 -0
  132. package/dist/components/kbd.js.map +1 -0
  133. package/dist/components/label.d.ts +2 -0
  134. package/dist/components/label.js +6 -0
  135. package/dist/components/menubar.d.ts +89 -0
  136. package/dist/components/menubar.d.ts.map +1 -0
  137. package/dist/components/menubar.js +140 -0
  138. package/dist/components/menubar.js.map +1 -0
  139. package/dist/components/native-select.d.ts +23 -0
  140. package/dist/components/native-select.d.ts.map +1 -0
  141. package/dist/components/native-select.js +41 -0
  142. package/dist/components/native-select.js.map +1 -0
  143. package/dist/components/navigation-menu.d.ts +48 -0
  144. package/dist/components/navigation-menu.d.ts.map +1 -0
  145. package/dist/components/navigation-menu.js +85 -0
  146. package/dist/components/navigation-menu.js.map +1 -0
  147. package/dist/components/pagination.d.ts +46 -0
  148. package/dist/components/pagination.d.ts.map +1 -0
  149. package/dist/components/pagination.js +89 -0
  150. package/dist/components/pagination.js.map +1 -0
  151. package/dist/components/phone-input.d.ts +28 -0
  152. package/dist/components/phone-input.d.ts.map +1 -0
  153. package/dist/components/phone-input.js +60 -0
  154. package/dist/components/phone-input.js.map +1 -0
  155. package/dist/components/popover.d.ts +34 -0
  156. package/dist/components/popover.d.ts.map +1 -0
  157. package/dist/components/popover.js +4 -0
  158. package/dist/components/progress.d.ts +29 -0
  159. package/dist/components/progress.d.ts.map +1 -0
  160. package/dist/components/progress.js +48 -0
  161. package/dist/components/progress.js.map +1 -0
  162. package/dist/components/radio-group.d.ts +16 -0
  163. package/dist/components/radio-group.d.ts.map +1 -0
  164. package/dist/components/radio-group.js +29 -0
  165. package/dist/components/radio-group.js.map +1 -0
  166. package/dist/components/resizable.d.ts +21 -0
  167. package/dist/components/resizable.d.ts.map +1 -0
  168. package/dist/components/resizable.js +32 -0
  169. package/dist/components/resizable.js.map +1 -0
  170. package/dist/components/scroll-area.d.ts +17 -0
  171. package/dist/components/scroll-area.d.ts.map +1 -0
  172. package/dist/components/scroll-area.js +39 -0
  173. package/dist/components/scroll-area.js.map +1 -0
  174. package/dist/components/select.d.ts +56 -0
  175. package/dist/components/select.d.ts.map +1 -0
  176. package/dist/components/select.js +102 -0
  177. package/dist/components/select.js.map +1 -0
  178. package/dist/components/separator.d.ts +2 -0
  179. package/dist/components/separator.js +4 -0
  180. package/dist/components/sheet.d.ts +43 -0
  181. package/dist/components/sheet.d.ts.map +1 -0
  182. package/dist/components/sheet.js +7 -0
  183. package/dist/components/sidebar.d.ts +162 -0
  184. package/dist/components/sidebar.d.ts.map +1 -0
  185. package/dist/components/sidebar.js +390 -0
  186. package/dist/components/sidebar.js.map +1 -0
  187. package/dist/components/skeleton.d.ts +10 -0
  188. package/dist/components/skeleton.d.ts.map +1 -0
  189. package/dist/components/skeleton.js +4 -0
  190. package/dist/components/slider.d.ts +15 -0
  191. package/dist/components/slider.d.ts.map +1 -0
  192. package/dist/components/slider.js +36 -0
  193. package/dist/components/slider.js.map +1 -0
  194. package/dist/components/spinner.d.ts +11 -0
  195. package/dist/components/spinner.d.ts.map +1 -0
  196. package/dist/components/spinner.js +4 -0
  197. package/dist/components/switch.d.ts +14 -0
  198. package/dist/components/switch.d.ts.map +1 -0
  199. package/dist/components/switch.js +21 -0
  200. package/dist/components/switch.js.map +1 -0
  201. package/dist/components/table.d.ts +39 -0
  202. package/dist/components/table.d.ts.map +1 -0
  203. package/dist/components/table.js +71 -0
  204. package/dist/components/table.js.map +1 -0
  205. package/dist/components/tabs.d.ts +31 -0
  206. package/dist/components/tabs.d.ts.map +1 -0
  207. package/dist/components/tabs.js +55 -0
  208. package/dist/components/tabs.js.map +1 -0
  209. package/dist/components/textarea.d.ts +11 -0
  210. package/dist/components/textarea.d.ts.map +1 -0
  211. package/dist/components/textarea.js +4 -0
  212. package/dist/components/toast.d.ts +2 -0
  213. package/dist/components/toast.js +6 -0
  214. package/dist/components/toggle-group.d.ts +29 -0
  215. package/dist/components/toggle-group.d.ts.map +1 -0
  216. package/dist/components/toggle-group.js +55 -0
  217. package/dist/components/toggle-group.js.map +1 -0
  218. package/dist/components/toggle.d.ts +2 -0
  219. package/dist/components/toggle.js +6 -0
  220. package/dist/components/tooltip.d.ts +2 -0
  221. package/dist/components/tooltip.js +4 -0
  222. package/dist/dialog-CTqRrytc.js +103 -0
  223. package/dist/dialog-CTqRrytc.js.map +1 -0
  224. package/dist/direction-BKSh6e6q.js +3 -0
  225. package/dist/dropdown-menu-CcumvwhM.js +139 -0
  226. package/dist/dropdown-menu-CcumvwhM.js.map +1 -0
  227. package/dist/dropdown-menu-tIPvwiCD.d.ts +91 -0
  228. package/dist/dropdown-menu-tIPvwiCD.d.ts.map +1 -0
  229. package/dist/file-upload-CmWvJwwY.d.ts +145 -0
  230. package/dist/file-upload-CmWvJwwY.d.ts.map +1 -0
  231. package/dist/file-upload-DeCIv13t.js +434 -0
  232. package/dist/file-upload-DeCIv13t.js.map +1 -0
  233. package/dist/hooks/use-async-options.d.ts +2 -0
  234. package/dist/hooks/use-async-options.js +3 -0
  235. package/dist/hooks/use-debounce.d.ts +5 -0
  236. package/dist/hooks/use-debounce.d.ts.map +1 -0
  237. package/dist/hooks/use-debounce.js +3 -0
  238. package/dist/hooks/use-file-upload.d.ts +2 -0
  239. package/dist/hooks/use-file-upload.js +3 -0
  240. package/dist/hooks/use-infinite-scroll.d.ts +21 -0
  241. package/dist/hooks/use-infinite-scroll.d.ts.map +1 -0
  242. package/dist/hooks/use-infinite-scroll.js +4 -0
  243. package/dist/hooks/use-intersection-observer.d.ts +2 -0
  244. package/dist/hooks/use-intersection-observer.js +3 -0
  245. package/dist/hooks/use-mobile.d.ts +5 -0
  246. package/dist/hooks/use-mobile.d.ts.map +1 -0
  247. package/dist/hooks/use-mobile.js +3 -0
  248. package/dist/input-8jqdnUZl.js +18 -0
  249. package/dist/input-8jqdnUZl.js.map +1 -0
  250. package/dist/input-CvG-4ebq.d.ts +12 -0
  251. package/dist/input-CvG-4ebq.d.ts.map +1 -0
  252. package/dist/input-group-DqEkmpXW.js +81 -0
  253. package/dist/input-group-DqEkmpXW.js.map +1 -0
  254. package/dist/label-AaH9ZYCZ.js +16 -0
  255. package/dist/label-AaH9ZYCZ.js.map +1 -0
  256. package/dist/label-CCHCFJeS.d.ts +11 -0
  257. package/dist/label-CCHCFJeS.d.ts.map +1 -0
  258. package/dist/lib/utils.d.ts +7 -0
  259. package/dist/lib/utils.d.ts.map +1 -0
  260. package/dist/lib/utils.js +3 -0
  261. package/dist/popover-C9D43EuT.js +57 -0
  262. package/dist/popover-C9D43EuT.js.map +1 -0
  263. package/dist/providers/px-ui-provider.d.ts +36 -0
  264. package/dist/providers/px-ui-provider.d.ts.map +1 -0
  265. package/dist/providers/px-ui-provider.js +26 -0
  266. package/dist/providers/px-ui-provider.js.map +1 -0
  267. package/dist/separator-BS3ilczC.js +17 -0
  268. package/dist/separator-BS3ilczC.js.map +1 -0
  269. package/dist/separator-CmcC4YJr.d.ts +12 -0
  270. package/dist/separator-CmcC4YJr.d.ts.map +1 -0
  271. package/dist/sheet-CLjNDrfL.js +91 -0
  272. package/dist/sheet-CLjNDrfL.js.map +1 -0
  273. package/dist/skeleton-BcIxI5Wq.js +15 -0
  274. package/dist/skeleton-BcIxI5Wq.js.map +1 -0
  275. package/dist/spinner-Bo0sUZEg.js +17 -0
  276. package/dist/spinner-Bo0sUZEg.js.map +1 -0
  277. package/dist/styles.css +196 -0
  278. package/dist/textarea-Cq0o323P.js +16 -0
  279. package/dist/textarea-Cq0o323P.js.map +1 -0
  280. package/dist/toast-COWAQbIk.js +211 -0
  281. package/dist/toast-COWAQbIk.js.map +1 -0
  282. package/dist/toast-FlYtbGl-.d.ts +74 -0
  283. package/dist/toast-FlYtbGl-.d.ts.map +1 -0
  284. package/dist/toggle-Bln33AlY.d.ts +19 -0
  285. package/dist/toggle-Bln33AlY.d.ts.map +1 -0
  286. package/dist/toggle-DhJ_qwgw.js +38 -0
  287. package/dist/toggle-DhJ_qwgw.js.map +1 -0
  288. package/dist/tooltip-D7qJywrH.d.ts +26 -0
  289. package/dist/tooltip-D7qJywrH.d.ts.map +1 -0
  290. package/dist/tooltip-DkPxCJIL.js +43 -0
  291. package/dist/tooltip-DkPxCJIL.js.map +1 -0
  292. package/dist/use-async-options-DHR8q5qX.d.ts +45 -0
  293. package/dist/use-async-options-DHR8q5qX.d.ts.map +1 -0
  294. package/dist/use-async-options-wZ9LJ2BJ.js +46 -0
  295. package/dist/use-async-options-wZ9LJ2BJ.js.map +1 -0
  296. package/dist/use-debounce-_qaEZqtt.js +24 -0
  297. package/dist/use-debounce-_qaEZqtt.js.map +1 -0
  298. package/dist/{index.js → use-file-upload-Dxrej28u.js} +3 -204
  299. package/dist/use-file-upload-Dxrej28u.js.map +1 -0
  300. package/dist/use-file-upload-yy-xLBtn.d.ts +133 -0
  301. package/dist/use-file-upload-yy-xLBtn.d.ts.map +1 -0
  302. package/dist/use-infinite-scroll-CpbhGGT5.js +38 -0
  303. package/dist/use-infinite-scroll-CpbhGGT5.js.map +1 -0
  304. package/dist/use-intersection-observer-C2xDq2SW.d.ts +11 -0
  305. package/dist/use-intersection-observer-C2xDq2SW.d.ts.map +1 -0
  306. package/dist/use-intersection-observer-CZfnep4z.js +33 -0
  307. package/dist/use-intersection-observer-CZfnep4z.js.map +1 -0
  308. package/dist/use-mobile-l5ebOdQl.js +21 -0
  309. package/dist/use-mobile-l5ebOdQl.js.map +1 -0
  310. package/dist/utils-mWJR2N24.js +28 -0
  311. package/dist/utils-mWJR2N24.js.map +1 -0
  312. package/package.json +289 -26
  313. package/dist/index.css +0 -143
  314. package/dist/index.d.ts +0 -229
  315. package/dist/index.d.ts.map +0 -1
  316. package/dist/index.js.map +0 -1
@@ -0,0 +1,69 @@
1
+ import { t as cn } from "../utils-mWJR2N24.js";
2
+ import { r as TooltipProvider } from "../tooltip-DkPxCJIL.js";
3
+ import { i as AvatarImage, r as AvatarFallback, t as Avatar } from "../avatar-DDdL9xDH.js";
4
+ import { n as PopoverContent, o as PopoverTrigger, t as Popover } from "../popover-C9D43EuT.js";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ import "react";
7
+
8
+ //#region src/components/avatar-group.tsx
9
+ function AvatarGroup({ avatars, max, className, ...props }) {
10
+ const overflow = typeof max === "number" && avatars.length > max;
11
+ const visible = overflow ? avatars.slice(0, max) : avatars;
12
+ const hidden = overflow ? avatars.slice(max) : [];
13
+ return /* @__PURE__ */ jsx(TooltipProvider, { children: /* @__PURE__ */ jsxs("div", {
14
+ "data-slot": "avatar-group",
15
+ className: cn("group/avatar-group *:data-[slot=avatar]:ring-background flex -space-x-2 *:data-[slot=avatar]:ring-2", className),
16
+ ...props,
17
+ children: [visible.map((avatar, i) => /* @__PURE__ */ jsx(AvatarGroupItem, { ...avatar }, i)), hidden.length > 0 && /* @__PURE__ */ jsxs(Popover, { children: [/* @__PURE__ */ jsx(PopoverTrigger, {
18
+ openOnHover: true,
19
+ render: /* @__PURE__ */ jsx(AvatarGroupCount, { children: `+${hidden.length}` })
20
+ }), /* @__PURE__ */ jsx(PopoverContent, {
21
+ className: "w-64 p-2",
22
+ align: "end",
23
+ side: "bottom",
24
+ children: /* @__PURE__ */ jsx("div", {
25
+ className: "max-h-64 space-y-1 overflow-y-auto",
26
+ children: hidden.map((avatar, i) => {
27
+ const label = getAvatarItemLabel(avatar);
28
+ return /* @__PURE__ */ jsxs("div", {
29
+ className: "flex items-center gap-3 rounded-md px-2 py-1.5",
30
+ children: [/* @__PURE__ */ jsx(AvatarGroupItem, {
31
+ ...avatar,
32
+ size: "sm",
33
+ tooltip: false
34
+ }), label != null && label !== "" && /* @__PURE__ */ jsx("span", {
35
+ className: "text-foreground text-sm font-medium",
36
+ children: label
37
+ })]
38
+ }, i);
39
+ })
40
+ })
41
+ })] })]
42
+ }) });
43
+ }
44
+ function AvatarGroupItem({ src, alt, name, size, tooltip, className }) {
45
+ return /* @__PURE__ */ jsxs(Avatar, {
46
+ size,
47
+ tooltip,
48
+ className,
49
+ children: [src ? /* @__PURE__ */ jsx(AvatarImage, {
50
+ src,
51
+ alt
52
+ }) : null, /* @__PURE__ */ jsx(AvatarFallback, { name })]
53
+ });
54
+ }
55
+ function getAvatarItemLabel(avatar) {
56
+ if (avatar.tooltip !== void 0 && avatar.tooltip !== false) return avatar.tooltip;
57
+ return avatar.name || avatar.alt || void 0;
58
+ }
59
+ function AvatarGroupCount({ className, ...props }) {
60
+ return /* @__PURE__ */ jsx("div", {
61
+ "data-slot": "avatar-group-count",
62
+ className: cn("bg-muted text-muted-foreground ring-background group-has-data-[size=lg]/avatar-group:size-10 group-has-data-[size=sm]/avatar-group:size-6 group-has-data-[size=lg]/avatar-group:[&>svg]:size-5 group-has-data-[size=sm]/avatar-group:[&>svg]:size-3 relative flex size-8 shrink-0 cursor-pointer items-center justify-center rounded-full text-sm font-medium ring-2 transition-colors [&>svg]:size-4", className),
63
+ ...props
64
+ });
65
+ }
66
+
67
+ //#endregion
68
+ export { AvatarGroup, AvatarGroupCount };
69
+ //# sourceMappingURL=avatar-group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"avatar-group.js","names":[],"sources":["../../src/components/avatar-group.tsx"],"sourcesContent":["import * as React from \"react\";\n\nimport {\n Avatar,\n AvatarFallback,\n AvatarImage,\n type AvatarProps,\n} from \"@px-ui/ui/components/avatar\";\nimport { cn } from \"@px-ui/ui/lib/utils\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"@px-ui/ui/components/popover\";\nimport { TooltipProvider } from \"@px-ui/ui/components/tooltip\";\n\ntype AvatarItem = {\n src?: string | null;\n alt?: string;\n name?: string | null;\n size?: AvatarProps[\"size\"];\n tooltip?: AvatarProps[\"tooltip\"];\n className?: string;\n};\n\ntype AvatarGroupProps = Omit<React.ComponentProps<\"div\">, \"children\"> & {\n avatars: AvatarItem[];\n max?: number;\n};\n\nfunction AvatarGroup({ avatars, max, className, ...props }: AvatarGroupProps) {\n const overflow = typeof max === \"number\" && avatars.length > max;\n const visible = overflow ? avatars.slice(0, max) : avatars;\n const hidden = overflow ? avatars.slice(max) : [];\n\n return (\n <TooltipProvider>\n <div\n data-slot=\"avatar-group\"\n className={cn(\n \"group/avatar-group *:data-[slot=avatar]:ring-background flex -space-x-2 *:data-[slot=avatar]:ring-2\",\n className,\n )}\n {...props}\n >\n {visible.map((avatar, i) => (\n <AvatarGroupItem key={i} {...avatar} />\n ))}\n {hidden.length > 0 && (\n <Popover>\n <PopoverTrigger\n openOnHover\n render={\n <AvatarGroupCount>{`+${hidden.length}`}</AvatarGroupCount>\n }\n />\n <PopoverContent className=\"w-64 p-2\" align=\"end\" side=\"bottom\">\n <div className=\"max-h-64 space-y-1 overflow-y-auto\">\n {hidden.map((avatar, i) => {\n const label = getAvatarItemLabel(avatar);\n return (\n <div\n key={i}\n className=\"flex items-center gap-3 rounded-md px-2 py-1.5\"\n >\n <AvatarGroupItem {...avatar} size=\"sm\" tooltip={false} />\n {label != null && label !== \"\" && (\n <span className=\"text-foreground text-sm font-medium\">\n {label}\n </span>\n )}\n </div>\n );\n })}\n </div>\n </PopoverContent>\n </Popover>\n )}\n </div>\n </TooltipProvider>\n );\n}\n\nfunction AvatarGroupItem({\n src,\n alt,\n name,\n size,\n tooltip,\n className,\n}: AvatarItem) {\n return (\n <Avatar size={size} tooltip={tooltip} className={className}>\n {src ? <AvatarImage src={src} alt={alt} /> : null}\n <AvatarFallback name={name} />\n </Avatar>\n );\n}\n\nfunction getAvatarItemLabel(avatar: AvatarItem): React.ReactNode | undefined {\n if (avatar.tooltip !== undefined && avatar.tooltip !== false) {\n return avatar.tooltip;\n }\n return avatar.name || avatar.alt || undefined;\n}\n\nfunction AvatarGroupCount({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"avatar-group-count\"\n className={cn(\n \"bg-muted text-muted-foreground ring-background group-has-data-[size=lg]/avatar-group:size-10 group-has-data-[size=sm]/avatar-group:size-6 group-has-data-[size=lg]/avatar-group:[&>svg]:size-5 group-has-data-[size=sm]/avatar-group:[&>svg]:size-3 relative flex size-8 shrink-0 cursor-pointer items-center justify-center rounded-full text-sm font-medium ring-2 transition-colors [&>svg]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { AvatarGroup, AvatarGroupCount };\nexport type { AvatarGroupProps, AvatarItem };\n"],"mappings":";;;;;;;;AA0BA,SAAS,YAAY,EAAE,SAAS,KAAK,WAAW,GAAG,SAA2B;CAC5E,MAAM,WAAW,OAAO,QAAQ,YAAY,QAAQ,SAAS;CAC7D,MAAM,UAAU,WAAW,QAAQ,MAAM,GAAG,IAAI,GAAG;CACnD,MAAM,SAAS,WAAW,QAAQ,MAAM,IAAI,GAAG,EAAE;AAEjD,QACE,oBAAC,6BACC,qBAAC;EACC,aAAU;EACV,WAAW,GACT,uGACA,UACD;EACD,GAAI;aAEH,QAAQ,KAAK,QAAQ,MACpB,oBAAC,mBAAwB,GAAI,UAAP,EAAiB,CACvC,EACD,OAAO,SAAS,KACf,qBAAC,sBACC,oBAAC;GACC;GACA,QACE,oBAAC,8BAAkB,IAAI,OAAO,WAA4B;IAE5D,EACF,oBAAC;GAAe,WAAU;GAAW,OAAM;GAAM,MAAK;aACpD,oBAAC;IAAI,WAAU;cACZ,OAAO,KAAK,QAAQ,MAAM;KACzB,MAAM,QAAQ,mBAAmB,OAAO;AACxC,YACE,qBAAC;MAEC,WAAU;iBAEV,oBAAC;OAAgB,GAAI;OAAQ,MAAK;OAAK,SAAS;QAAS,EACxD,SAAS,QAAQ,UAAU,MAC1B,oBAAC;OAAK,WAAU;iBACb;QACI;QAPJ,EASD;MAER;KACE;IACS,IACT;GAER,GACU;;AAItB,SAAS,gBAAgB,EACvB,KACA,KACA,MACA,MACA,SACA,aACa;AACb,QACE,qBAAC;EAAa;EAAe;EAAoB;aAC9C,MAAM,oBAAC;GAAiB;GAAU;IAAO,GAAG,MAC7C,oBAAC,kBAAqB,OAAQ;GACvB;;AAIb,SAAS,mBAAmB,QAAiD;AAC3E,KAAI,OAAO,YAAY,UAAa,OAAO,YAAY,MACrD,QAAO,OAAO;AAEhB,QAAO,OAAO,QAAQ,OAAO,OAAO;;AAGtC,SAAS,iBAAiB,EACxB,WACA,GAAG,SAC2B;AAC9B,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,yYACA,UACD;EACD,GAAI;GACJ"}
@@ -0,0 +1,2 @@
1
+ import { a as AvatarImage, c as getAvatarLabelFromChildren, i as AvatarFallbackProps, l as getInitialsFromName, n as AvatarBadge, o as AvatarProps, r as AvatarFallback, s as getAvatarColorByName, t as Avatar } from "../avatar-C-yFMpI5.js";
2
+ export { Avatar, AvatarBadge, AvatarFallback, AvatarFallbackProps, AvatarImage, AvatarProps, getAvatarColorByName, getAvatarLabelFromChildren, getInitialsFromName };
@@ -0,0 +1,5 @@
1
+ import "../utils-mWJR2N24.js";
2
+ import "../tooltip-DkPxCJIL.js";
3
+ import { a as getAvatarColorByName, i as AvatarImage, n as AvatarBadge, o as getAvatarLabelFromChildren, r as AvatarFallback, s as getInitialsFromName, t as Avatar } from "../avatar-DDdL9xDH.js";
4
+
5
+ export { Avatar, AvatarBadge, AvatarFallback, AvatarImage, getAvatarColorByName, getAvatarLabelFromChildren, getInitialsFromName };
@@ -0,0 +1,18 @@
1
+ import * as react0 from "react";
2
+ import { VariantProps } from "class-variance-authority";
3
+ import { useRender } from "@base-ui/react/use-render";
4
+ import * as class_variance_authority_types6 from "class-variance-authority/types";
5
+
6
+ //#region src/components/badge.d.ts
7
+ declare const badgeVariants: (props?: ({
8
+ variant?: "default" | "destructive" | "outline" | "secondary" | "ghost" | null | undefined;
9
+ } & class_variance_authority_types6.ClassProp) | undefined) => string;
10
+ declare function Badge({
11
+ className,
12
+ variant,
13
+ render,
14
+ ...props
15
+ }: useRender.ComponentProps<"span"> & VariantProps<typeof badgeVariants>): react0.ReactElement<unknown, string | react0.JSXElementConstructor<any>>;
16
+ //#endregion
17
+ export { Badge, badgeVariants };
18
+ //# sourceMappingURL=badge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"badge.d.ts","names":[],"sources":["../../src/components/badge.tsx"],"sourcesContent":[],"mappings":";;;;;;cAMM;;IAoBL,+BAAA,CAAA;iBAEQ,KAAA;;;;;GAKN,SAAA,CAAU,yBAAyB,oBAAoB,iBAAc,MAAA,CAAA,+BAAtB,MAAA,CAAsB"}
@@ -0,0 +1,31 @@
1
+ import { t as cn } from "../utils-mWJR2N24.js";
2
+ import { cva } from "class-variance-authority";
3
+ import { mergeProps } from "@base-ui/react/merge-props";
4
+ import { useRender } from "@base-ui/react/use-render";
5
+
6
+ //#region src/components/badge.tsx
7
+ const badgeVariants = cva("group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 has-data-[icon=inline-end]:pe-1.5 has-data-[icon=inline-start]:ps-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3!", {
8
+ variants: { variant: {
9
+ default: "bg-primary text-primary-foreground [a]:hover:bg-primary/80",
10
+ secondary: "bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80",
11
+ destructive: "bg-destructive/10 text-destructive focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40 [a]:hover:bg-destructive/20",
12
+ outline: "border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground",
13
+ ghost: "hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50"
14
+ } },
15
+ defaultVariants: { variant: "default" }
16
+ });
17
+ function Badge({ className, variant = "default", render, ...props }) {
18
+ return useRender({
19
+ defaultTagName: "span",
20
+ props: mergeProps({ className: cn(badgeVariants({ variant }), className) }, props),
21
+ render,
22
+ state: {
23
+ slot: "badge",
24
+ variant
25
+ }
26
+ });
27
+ }
28
+
29
+ //#endregion
30
+ export { Badge, badgeVariants };
31
+ //# sourceMappingURL=badge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"badge.js","names":[],"sources":["../../src/components/badge.tsx"],"sourcesContent":["import { mergeProps } from \"@base-ui/react/merge-props\"\nimport { useRender } from \"@base-ui/react/use-render\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@px-ui/ui/lib/utils\"\n\nconst badgeVariants = cva(\n \"group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 has-data-[icon=inline-end]:pe-1.5 has-data-[icon=inline-start]:ps-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3!\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground [a]:hover:bg-primary/80\",\n secondary:\n \"bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80\",\n destructive:\n \"bg-destructive/10 text-destructive focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40 [a]:hover:bg-destructive/20\",\n outline:\n \"border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground\",\n ghost:\n \"hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nfunction Badge({\n className,\n variant = \"default\",\n render,\n ...props\n}: useRender.ComponentProps<\"span\"> & VariantProps<typeof badgeVariants>) {\n return useRender({\n defaultTagName: \"span\",\n props: mergeProps<\"span\">(\n {\n className: cn(badgeVariants({ variant }), className),\n },\n props\n ),\n render,\n state: {\n slot: \"badge\",\n variant,\n },\n })\n}\n\nexport { Badge, badgeVariants }\n"],"mappings":";;;;;;AAMA,MAAM,gBAAgB,IACpB,8eACA;CACE,UAAU,EACR,SAAS;EACP,SAAS;EACT,WACE;EACF,aACE;EACF,SACE;EACF,OACE;EACH,EACF;CACD,iBAAiB,EACf,SAAS,WACV;CACF,CACF;AAED,SAAS,MAAM,EACb,WACA,UAAU,WACV,QACA,GAAG,SACqE;AACxE,QAAO,UAAU;EACf,gBAAgB;EAChB,OAAO,WACL,EACE,WAAW,GAAG,cAAc,EAAE,SAAS,CAAC,EAAE,UAAU,EACrD,EACD,MACD;EACD;EACA,OAAO;GACL,MAAM;GACN;GACD;EACF,CAAC"}
@@ -0,0 +1,38 @@
1
+ import * as react_jsx_runtime108 from "react/jsx-runtime";
2
+ import * as React$1 from "react";
3
+ import { useRender } from "@base-ui/react/use-render";
4
+
5
+ //#region src/components/breadcrumb.d.ts
6
+ declare function Breadcrumb({
7
+ className,
8
+ ...props
9
+ }: React$1.ComponentProps<"nav">): react_jsx_runtime108.JSX.Element;
10
+ declare function BreadcrumbList({
11
+ className,
12
+ ...props
13
+ }: React$1.ComponentProps<"ol">): react_jsx_runtime108.JSX.Element;
14
+ declare function BreadcrumbItem({
15
+ className,
16
+ ...props
17
+ }: React$1.ComponentProps<"li">): react_jsx_runtime108.JSX.Element;
18
+ declare function BreadcrumbLink({
19
+ className,
20
+ render,
21
+ ...props
22
+ }: useRender.ComponentProps<"a">): React$1.ReactElement<unknown, string | React$1.JSXElementConstructor<any>>;
23
+ declare function BreadcrumbPage({
24
+ className,
25
+ ...props
26
+ }: React$1.ComponentProps<"span">): react_jsx_runtime108.JSX.Element;
27
+ declare function BreadcrumbSeparator({
28
+ children,
29
+ className,
30
+ ...props
31
+ }: React$1.ComponentProps<"li">): react_jsx_runtime108.JSX.Element;
32
+ declare function BreadcrumbEllipsis({
33
+ className,
34
+ ...props
35
+ }: React$1.ComponentProps<"span">): react_jsx_runtime108.JSX.Element;
36
+ //#endregion
37
+ export { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator };
38
+ //# sourceMappingURL=breadcrumb.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breadcrumb.d.ts","names":[],"sources":["../../src/components/breadcrumb.tsx"],"sourcesContent":[],"mappings":";;;;;iBAOS,UAAA;;;GAAoC,OAAA,CAAM,wBAAqB,oBAAA,CAAA,GAAA,CAAA;iBAW/D,cAAA;;;GAAwC,OAAA,CAAM,uBAAoB,oBAAA,CAAA,GAAA,CAAA;iBAalE,cAAA;;;GAAwC,OAAA,CAAM,uBAAoB,oBAAA,CAAA,GAAA,CAAA;AA7BtB,iBAuC5C,cAAA,CAlCU;EAAA,SAAA;EAAA,MAAA;EAAA,GAAA;AAAA,CAAA,EAsChB,SAAA,CAAU,cAtCM,CAAA,GAAA,CAAA,CAAA,EAsCa,OAAA,CAAA,YAtCb,CAAA,OAAA,EAAA,MAAA,GAsCa,OAAA,CAAA,qBAtCb,CAAA,GAAA,CAAA,CAAA;iBAsDV,cAAA,CAtDa;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAsD2B,OAAA,CAAM,cAtDjC,CAAA,MAAA,CAAA,CAAA,EAsDuD,oBAAA,CAAA,GAAA,CAAA,OAtDvD;iBAmEb,mBAAA,CAnE0C;EAAA,QAAA;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAuEhD,OAAA,CAAM,cAvE0C,CAAA,IAAA,CAAA,CAAA,EAuEtB,oBAAA,CAAA,GAAA,CAAA,OAvEsB;iBAuF1C,kBAAA,CAvF+D;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA0FrE,OAAA,CAAM,cA1F+D,CAAA,MAAA,CAAA,CAAA,EA0FzC,oBAAA,CAAA,GAAA,CAAA,OA1FyC"}
@@ -0,0 +1,75 @@
1
+ import { t as cn } from "../utils-mWJR2N24.js";
2
+ import { ChevronRightIcon, MoreHorizontalIcon } from "lucide-react";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
+ import "react";
5
+ import { mergeProps } from "@base-ui/react/merge-props";
6
+ import { useRender } from "@base-ui/react/use-render";
7
+
8
+ //#region src/components/breadcrumb.tsx
9
+ function Breadcrumb({ className, ...props }) {
10
+ return /* @__PURE__ */ jsx("nav", {
11
+ "aria-label": "breadcrumb",
12
+ "data-slot": "breadcrumb",
13
+ className: cn(className),
14
+ ...props
15
+ });
16
+ }
17
+ function BreadcrumbList({ className, ...props }) {
18
+ return /* @__PURE__ */ jsx("ol", {
19
+ "data-slot": "breadcrumb-list",
20
+ className: cn("flex flex-wrap items-center gap-1.5 text-sm wrap-break-word text-muted-foreground ppx-sm:gap-2.5", className),
21
+ ...props
22
+ });
23
+ }
24
+ function BreadcrumbItem({ className, ...props }) {
25
+ return /* @__PURE__ */ jsx("li", {
26
+ "data-slot": "breadcrumb-item",
27
+ className: cn("inline-flex items-center gap-1.5", className),
28
+ ...props
29
+ });
30
+ }
31
+ function BreadcrumbLink({ className, render, ...props }) {
32
+ return useRender({
33
+ defaultTagName: "a",
34
+ props: mergeProps({ className: cn("transition-colors hover:text-foreground", className) }, props),
35
+ render,
36
+ state: { slot: "breadcrumb-link" }
37
+ });
38
+ }
39
+ function BreadcrumbPage({ className, ...props }) {
40
+ return /* @__PURE__ */ jsx("span", {
41
+ "data-slot": "breadcrumb-page",
42
+ role: "link",
43
+ "aria-disabled": "true",
44
+ "aria-current": "page",
45
+ className: cn("font-normal text-foreground", className),
46
+ ...props
47
+ });
48
+ }
49
+ function BreadcrumbSeparator({ children, className, ...props }) {
50
+ return /* @__PURE__ */ jsx("li", {
51
+ "data-slot": "breadcrumb-separator",
52
+ role: "presentation",
53
+ "aria-hidden": "true",
54
+ className: cn("[&>svg]:size-3.5", className),
55
+ ...props,
56
+ children: children ?? /* @__PURE__ */ jsx(ChevronRightIcon, { className: "rtl:rotate-180" })
57
+ });
58
+ }
59
+ function BreadcrumbEllipsis({ className, ...props }) {
60
+ return /* @__PURE__ */ jsxs("span", {
61
+ "data-slot": "breadcrumb-ellipsis",
62
+ role: "presentation",
63
+ "aria-hidden": "true",
64
+ className: cn("flex size-5 items-center justify-center [&>svg]:size-4", className),
65
+ ...props,
66
+ children: [/* @__PURE__ */ jsx(MoreHorizontalIcon, {}), /* @__PURE__ */ jsx("span", {
67
+ className: "sr-only",
68
+ children: "More"
69
+ })]
70
+ });
71
+ }
72
+
73
+ //#endregion
74
+ export { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator };
75
+ //# sourceMappingURL=breadcrumb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breadcrumb.js","names":[],"sources":["../../src/components/breadcrumb.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { mergeProps } from \"@base-ui/react/merge-props\"\nimport { useRender } from \"@base-ui/react/use-render\"\n\nimport { cn } from \"@px-ui/ui/lib/utils\"\nimport { ChevronRightIcon, MoreHorizontalIcon } from \"lucide-react\"\n\nfunction Breadcrumb({ className, ...props }: React.ComponentProps<\"nav\">) {\n return (\n <nav\n aria-label=\"breadcrumb\"\n data-slot=\"breadcrumb\"\n className={cn(className)}\n {...props}\n />\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 ppx-sm:gap-2.5\",\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.5\", className)}\n {...props}\n />\n )\n}\n\nfunction BreadcrumbLink({\n className,\n render,\n ...props\n}: useRender.ComponentProps<\"a\">) {\n return useRender({\n defaultTagName: \"a\",\n props: mergeProps<\"a\">(\n {\n className: cn(\"transition-colors hover:text-foreground\", className),\n },\n props\n ),\n render,\n state: {\n slot: \"breadcrumb-link\",\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({\n children,\n className,\n ...props\n}: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"breadcrumb-separator\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"[&>svg]:size-3.5\", className)}\n {...props}\n >\n {children ?? (\n <ChevronRightIcon className=\"rtl:rotate-180\" />\n )}\n </li>\n )\n}\n\nfunction BreadcrumbEllipsis({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"breadcrumb-ellipsis\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\n \"flex size-5 items-center justify-center [&>svg]:size-4\",\n className\n )}\n {...props}\n >\n <MoreHorizontalIcon\n />\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":";;;;;;;;AAOA,SAAS,WAAW,EAAE,WAAW,GAAG,SAAsC;AACxE,QACE,oBAAC;EACC,cAAW;EACX,aAAU;EACV,WAAW,GAAG,UAAU;EACxB,GAAI;GACJ;;AAIN,SAAS,eAAe,EAAE,WAAW,GAAG,SAAqC;AAC3E,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,oGACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,eAAe,EAAE,WAAW,GAAG,SAAqC;AAC3E,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GAAG,oCAAoC,UAAU;EAC5D,GAAI;GACJ;;AAIN,SAAS,eAAe,EACtB,WACA,QACA,GAAG,SAC6B;AAChC,QAAO,UAAU;EACf,gBAAgB;EAChB,OAAO,WACL,EACE,WAAW,GAAG,2CAA2C,UAAU,EACpE,EACD,MACD;EACD;EACA,OAAO,EACL,MAAM,mBACP;EACF,CAAC;;AAGJ,SAAS,eAAe,EAAE,WAAW,GAAG,SAAuC;AAC7E,QACE,oBAAC;EACC,aAAU;EACV,MAAK;EACL,iBAAc;EACd,gBAAa;EACb,WAAW,GAAG,+BAA+B,UAAU;EACvD,GAAI;GACJ;;AAIN,SAAS,oBAAoB,EAC3B,UACA,WACA,GAAG,SAC0B;AAC7B,QACE,oBAAC;EACC,aAAU;EACV,MAAK;EACL,eAAY;EACZ,WAAW,GAAG,oBAAoB,UAAU;EAC5C,GAAI;YAEH,YACC,oBAAC,oBAAiB,WAAU,mBAAmB;GAE9C;;AAIT,SAAS,mBAAmB,EAC1B,WACA,GAAG,SAC4B;AAC/B,QACE,qBAAC;EACC,aAAU;EACV,MAAK;EACL,eAAY;EACZ,WAAW,GACT,0DACA,UACD;EACD,GAAI;aAEJ,oBAAC,uBACC,EACF,oBAAC;GAAK,WAAU;aAAU;IAAW;GAChC"}
@@ -0,0 +1,29 @@
1
+ import { t as Separator } from "../separator-CmcC4YJr.js";
2
+ import * as react_jsx_runtime114 from "react/jsx-runtime";
3
+ import * as react1 from "react";
4
+ import { VariantProps } from "class-variance-authority";
5
+ import { useRender } from "@base-ui/react/use-render";
6
+ import * as class_variance_authority_types7 from "class-variance-authority/types";
7
+
8
+ //#region src/components/button-group.d.ts
9
+ declare const buttonGroupVariants: (props?: ({
10
+ orientation?: "horizontal" | "vertical" | null | undefined;
11
+ } & class_variance_authority_types7.ClassProp) | undefined) => string;
12
+ declare function ButtonGroup({
13
+ className,
14
+ orientation,
15
+ ...props
16
+ }: React.ComponentProps<"div"> & VariantProps<typeof buttonGroupVariants>): react_jsx_runtime114.JSX.Element;
17
+ declare function ButtonGroupText({
18
+ className,
19
+ render,
20
+ ...props
21
+ }: useRender.ComponentProps<"div">): react1.ReactElement<unknown, string | react1.JSXElementConstructor<any>>;
22
+ declare function ButtonGroupSeparator({
23
+ className,
24
+ orientation,
25
+ ...props
26
+ }: React.ComponentProps<typeof Separator>): react_jsx_runtime114.JSX.Element;
27
+ //#endregion
28
+ export { ButtonGroup, ButtonGroupSeparator, ButtonGroupText, buttonGroupVariants };
29
+ //# sourceMappingURL=button-group.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button-group.d.ts","names":[],"sources":["../../src/components/button-group.tsx"],"sourcesContent":[],"mappings":";;;;;;;;cAOM;;IAeL,+BAAA,CAAA;iBAEQ,WAAA;;;;GAIN,KAAA,CAAM,wBAAwB,oBAAoB,uBAAoB,oBAAA,CAAA,GAAA,CAAA;iBAYhE,eAAA;;;;GAIN,SAAA,CAAU,wBAAqB,MAAA,CAAA,+BAAP,MAAA,CAAO;AAvCwB,iBA0DjD,oBAAA,CAzCR;EAAA,SAAA;EAAA,WAAA;EAAA,GAAA;AAAA,CAAA,EA6CE,KAAA,CAAM,cA7CR,CAAA,OA6C8B,SA7C9B,CAAA,CAAA,EA6CwC,oBAAA,CAAA,GAAA,CAAA,OA7CxC"}
@@ -0,0 +1,44 @@
1
+ import { t as cn } from "../utils-mWJR2N24.js";
2
+ import { t as Separator } from "../separator-BS3ilczC.js";
3
+ import { jsx } from "react/jsx-runtime";
4
+ import { cva } from "class-variance-authority";
5
+ import { mergeProps } from "@base-ui/react/merge-props";
6
+ import { useRender } from "@base-ui/react/use-render";
7
+
8
+ //#region src/components/button-group.tsx
9
+ const buttonGroupVariants = cva("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-e-md [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1", {
10
+ variants: { orientation: {
11
+ horizontal: "*:data-slot:rounded-e-none [&>[data-slot]:not(:has(~[data-slot]))]:rounded-e-md! [&>[data-slot]~[data-slot]]:rounded-s-none [&>[data-slot]~[data-slot]]:border-s-0",
12
+ vertical: "flex-col *:data-slot:rounded-b-none [&>[data-slot]:not(:has(~[data-slot]))]:rounded-b-md! [&>[data-slot]~[data-slot]]:rounded-t-none [&>[data-slot]~[data-slot]]:border-t-0"
13
+ } },
14
+ defaultVariants: { orientation: "horizontal" }
15
+ });
16
+ function ButtonGroup({ className, orientation, ...props }) {
17
+ return /* @__PURE__ */ jsx("div", {
18
+ role: "group",
19
+ "data-slot": "button-group",
20
+ "data-orientation": orientation,
21
+ className: cn(buttonGroupVariants({ orientation }), className),
22
+ ...props
23
+ });
24
+ }
25
+ function ButtonGroupText({ className, render, ...props }) {
26
+ return useRender({
27
+ defaultTagName: "div",
28
+ props: mergeProps({ className: cn("flex items-center gap-2 rounded-md border bg-muted px-2.5 text-sm font-medium shadow-xs [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4", className) }, props),
29
+ render,
30
+ state: { slot: "button-group-text" }
31
+ });
32
+ }
33
+ function ButtonGroupSeparator({ className, orientation = "vertical", ...props }) {
34
+ return /* @__PURE__ */ jsx(Separator, {
35
+ "data-slot": "button-group-separator",
36
+ orientation,
37
+ className: cn("relative self-stretch bg-input data-horizontal:mx-px data-horizontal:w-auto data-vertical:my-px data-vertical:h-auto", className),
38
+ ...props
39
+ });
40
+ }
41
+
42
+ //#endregion
43
+ export { ButtonGroup, ButtonGroupSeparator, ButtonGroupText, buttonGroupVariants };
44
+ //# sourceMappingURL=button-group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button-group.js","names":[],"sources":["../../src/components/button-group.tsx"],"sourcesContent":["import { mergeProps } from \"@base-ui/react/merge-props\"\nimport { useRender } from \"@base-ui/react/use-render\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@px-ui/ui/lib/utils\"\nimport { Separator } from \"@px-ui/ui/components/separator\"\n\nconst buttonGroupVariants = cva(\n \"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-e-md [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1\",\n {\n variants: {\n orientation: {\n horizontal:\n \"*:data-slot:rounded-e-none [&>[data-slot]:not(:has(~[data-slot]))]:rounded-e-md! [&>[data-slot]~[data-slot]]:rounded-s-none [&>[data-slot]~[data-slot]]:border-s-0\",\n vertical:\n \"flex-col *:data-slot:rounded-b-none [&>[data-slot]:not(:has(~[data-slot]))]:rounded-b-md! [&>[data-slot]~[data-slot]]:rounded-t-none [&>[data-slot]~[data-slot]]:border-t-0\",\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 render,\n ...props\n}: useRender.ComponentProps<\"div\">) {\n return useRender({\n defaultTagName: \"div\",\n props: mergeProps<\"div\">(\n {\n className: cn(\n \"flex items-center gap-2 rounded-md border bg-muted px-2.5 text-sm font-medium shadow-xs [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4\",\n className\n ),\n },\n props\n ),\n render,\n state: {\n slot: \"button-group-text\",\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 {\n ButtonGroup,\n ButtonGroupSeparator,\n ButtonGroupText,\n buttonGroupVariants,\n}\n"],"mappings":";;;;;;;;AAOA,MAAM,sBAAsB,IAC1B,4RACA;CACE,UAAU,EACR,aAAa;EACX,YACE;EACF,UACE;EACH,EACF;CACD,iBAAiB,EACf,aAAa,cACd;CACF,CACF;AAED,SAAS,YAAY,EACnB,WACA,aACA,GAAG,SACsE;AACzE,QACE,oBAAC;EACC,MAAK;EACL,aAAU;EACV,oBAAkB;EAClB,WAAW,GAAG,oBAAoB,EAAE,aAAa,CAAC,EAAE,UAAU;EAC9D,GAAI;GACJ;;AAIN,SAAS,gBAAgB,EACvB,WACA,QACA,GAAG,SAC+B;AAClC,QAAO,UAAU;EACf,gBAAgB;EAChB,OAAO,WACL,EACE,WAAW,GACT,4JACA,UACD,EACF,EACD,MACD;EACD;EACA,OAAO,EACL,MAAM,qBACP;EACF,CAAC;;AAGJ,SAAS,qBAAqB,EAC5B,WACA,cAAc,YACd,GAAG,SACsC;AACzC,QACE,oBAAC;EACC,aAAU;EACG;EACb,WAAW,GACT,wHACA,UACD;EACD,GAAI;GACJ"}
@@ -0,0 +1,2 @@
1
+ import { n as buttonVariants, t as Button } from "../button-KTVkwZNA.js";
2
+ export { Button, buttonVariants };
@@ -0,0 +1,4 @@
1
+ import "../utils-mWJR2N24.js";
2
+ import { n as buttonVariants, t as Button } from "../button-hBUFMmsZ.js";
3
+
4
+ export { Button, buttonVariants };
@@ -0,0 +1,32 @@
1
+ import { t as Button } from "../button-KTVkwZNA.js";
2
+ import * as react_jsx_runtime102 from "react/jsx-runtime";
3
+ import * as React$1 from "react";
4
+ import { DayButton, DayPicker, Locale } from "react-day-picker";
5
+
6
+ //#region src/components/calendar.d.ts
7
+ declare function Calendar({
8
+ className,
9
+ classNames,
10
+ showOutsideDays,
11
+ captionLayout,
12
+ buttonVariant,
13
+ locale,
14
+ formatters,
15
+ components,
16
+ timeZone,
17
+ ...props
18
+ }: React$1.ComponentProps<typeof DayPicker> & {
19
+ buttonVariant?: React$1.ComponentProps<typeof Button>["variant"];
20
+ }): react_jsx_runtime102.JSX.Element;
21
+ declare function CalendarDayButton({
22
+ className,
23
+ day,
24
+ modifiers,
25
+ locale,
26
+ ...props
27
+ }: React$1.ComponentProps<typeof DayButton> & {
28
+ locale?: Partial<Locale>;
29
+ }): react_jsx_runtime102.JSX.Element;
30
+ //#endregion
31
+ export { Calendar, CalendarDayButton };
32
+ //# sourceMappingURL=calendar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar.d.ts","names":[],"sources":["../../src/components/calendar.tsx"],"sourcesContent":[],"mappings":";;;;;;iBAoBS,QAAA;;;;;;;;;;;GAWN,OAAA,CAAM,sBAAsB;kBACb,OAAA,CAAM,sBAAsB;IAC7C,oBAAA,CAAA,GAAA,CAAA;AAxBmE,iBAuL3D,iBAAA,CA5KQ;EAAA,SAAA;EAAA,GAAA;EAAA,SAAA;EAAA,MAAA;EAAA,GAAA;CAAA,EAkLd,OAAA,CAAM,cAlLQ,CAAA,OAkLc,SAlLd,CAAA,GAAA;EACf,MAAA,CAAA,EAiLqD,OAjLrD,CAiL6D,MAjL7D,CAAA;CACA,CAAA,EAgLsE,oBAAA,CAAA,GAAA,CAAA,OAhLtE"}
@@ -0,0 +1,119 @@
1
+ import { t as cn } from "../utils-mWJR2N24.js";
2
+ import { n as buttonVariants, t as Button } from "../button-hBUFMmsZ.js";
3
+ import { ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon } from "lucide-react";
4
+ import { jsx } from "react/jsx-runtime";
5
+ import * as React$1 from "react";
6
+ import { DayPicker, getDefaultClassNames } from "react-day-picker";
7
+
8
+ //#region src/components/calendar.tsx
9
+ function useAutoTimeZone() {
10
+ const [tz, setTz] = React$1.useState(void 0);
11
+ React$1.useEffect(() => {
12
+ setTz(Intl.DateTimeFormat().resolvedOptions().timeZone);
13
+ }, []);
14
+ return tz;
15
+ }
16
+ function Calendar({ className, classNames, showOutsideDays = true, captionLayout = "label", buttonVariant = "ghost", locale, formatters, components, timeZone, ...props }) {
17
+ const defaultClassNames = getDefaultClassNames();
18
+ const autoTimeZone = useAutoTimeZone();
19
+ return /* @__PURE__ */ jsx(DayPicker, {
20
+ showOutsideDays,
21
+ timeZone: timeZone ?? autoTimeZone,
22
+ className: cn("group/calendar bg-background p-3 [--cell-radius:var(--radius-md)] [--cell-size:--spacing(8)] 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),
23
+ captionLayout,
24
+ locale,
25
+ formatters: {
26
+ formatMonthDropdown: (date) => date.toLocaleString(locale?.code, { month: "short" }),
27
+ ...formatters
28
+ },
29
+ classNames: {
30
+ root: cn("w-fit", defaultClassNames.root),
31
+ months: cn("relative flex flex-col gap-4 ppx-md:flex-row", defaultClassNames.months),
32
+ month: cn("flex w-full flex-col gap-4", defaultClassNames.month),
33
+ nav: cn("absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1", defaultClassNames.nav),
34
+ button_previous: cn(buttonVariants({ variant: buttonVariant }), "size-(--cell-size) p-0 select-none aria-disabled:opacity-50", defaultClassNames.button_previous),
35
+ button_next: cn(buttonVariants({ variant: buttonVariant }), "size-(--cell-size) p-0 select-none aria-disabled:opacity-50", defaultClassNames.button_next),
36
+ month_caption: cn("flex h-(--cell-size) w-full items-center justify-center px-(--cell-size)", defaultClassNames.month_caption),
37
+ dropdowns: cn("flex h-(--cell-size) w-full items-center justify-center gap-1.5 text-sm font-medium", defaultClassNames.dropdowns),
38
+ dropdown_root: cn("relative rounded-(--cell-radius)", defaultClassNames.dropdown_root),
39
+ dropdown: cn("absolute inset-0 bg-popover opacity-0", defaultClassNames.dropdown),
40
+ caption_label: 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),
41
+ month_grid: "w-full border-collapse",
42
+ weekdays: cn("flex", defaultClassNames.weekdays),
43
+ weekday: cn("flex-1 rounded-(--cell-radius) text-[0.8rem] font-normal text-muted-foreground select-none", defaultClassNames.weekday),
44
+ week: cn("mt-2 flex w-full", defaultClassNames.week),
45
+ week_number_header: cn("w-(--cell-size) select-none", defaultClassNames.week_number_header),
46
+ week_number: cn("text-[0.8rem] text-muted-foreground select-none", defaultClassNames.week_number),
47
+ day: 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-e-(--cell-radius)", props.showWeekNumber ? "[&:nth-child(2)[data-selected=true]_button]:rounded-s-(--cell-radius)" : "[&:first-child[data-selected=true]_button]:rounded-s-(--cell-radius)", defaultClassNames.day),
48
+ range_start: cn("relative isolate z-0 rounded-s-(--cell-radius) bg-muted after:absolute after:inset-y-0 after:end-0 after:w-4 after:bg-muted", defaultClassNames.range_start),
49
+ range_middle: cn("rounded-none", defaultClassNames.range_middle),
50
+ range_end: cn("relative isolate z-0 rounded-e-(--cell-radius) bg-muted after:absolute after:inset-y-0 after:start-0 after:w-4 after:bg-muted", defaultClassNames.range_end),
51
+ today: cn("rounded-(--cell-radius) bg-muted text-foreground data-[selected=true]:rounded-none", defaultClassNames.today),
52
+ outside: cn("text-muted-foreground aria-selected:text-muted-foreground", defaultClassNames.outside),
53
+ disabled: cn("text-muted-foreground opacity-50", defaultClassNames.disabled),
54
+ hidden: cn("invisible", defaultClassNames.hidden),
55
+ ...classNames
56
+ },
57
+ components: {
58
+ Root: ({ className: className$1, rootRef, ...props$1 }) => {
59
+ return /* @__PURE__ */ jsx("div", {
60
+ "data-slot": "calendar",
61
+ ref: rootRef,
62
+ className: cn(className$1),
63
+ ...props$1
64
+ });
65
+ },
66
+ Chevron: ({ className: className$1, orientation, ...props$1 }) => {
67
+ if (orientation === "left") return /* @__PURE__ */ jsx(ChevronLeftIcon, {
68
+ className: cn("rtl:rotate-180 size-4", className$1),
69
+ ...props$1
70
+ });
71
+ if (orientation === "right") return /* @__PURE__ */ jsx(ChevronRightIcon, {
72
+ className: cn("rtl:rotate-180 size-4", className$1),
73
+ ...props$1
74
+ });
75
+ return /* @__PURE__ */ jsx(ChevronDownIcon, {
76
+ className: cn("size-4", className$1),
77
+ ...props$1
78
+ });
79
+ },
80
+ DayButton: ({ ...props$1 }) => /* @__PURE__ */ jsx(CalendarDayButton, {
81
+ locale,
82
+ ...props$1
83
+ }),
84
+ WeekNumber: ({ children, ...props$1 }) => {
85
+ return /* @__PURE__ */ jsx("td", {
86
+ ...props$1,
87
+ children: /* @__PURE__ */ jsx("div", {
88
+ className: "flex size-(--cell-size) items-center justify-center text-center",
89
+ children
90
+ })
91
+ });
92
+ },
93
+ ...components
94
+ },
95
+ ...props
96
+ });
97
+ }
98
+ function CalendarDayButton({ className, day, modifiers, locale, ...props }) {
99
+ const defaultClassNames = getDefaultClassNames();
100
+ const ref = React$1.useRef(null);
101
+ React$1.useEffect(() => {
102
+ if (modifiers.focused) ref.current?.focus();
103
+ }, [modifiers.focused]);
104
+ return /* @__PURE__ */ jsx(Button, {
105
+ variant: "ghost",
106
+ size: "icon",
107
+ "data-day": day.date.toLocaleDateString(locale?.code),
108
+ "data-selected-single": modifiers.selected && !modifiers.range_start && !modifiers.range_end && !modifiers.range_middle,
109
+ "data-range-start": modifiers.range_start,
110
+ "data-range-end": modifiers.range_end,
111
+ "data-range-middle": modifiers.range_middle,
112
+ className: 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-e-(--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-s-(--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),
113
+ ...props
114
+ });
115
+ }
116
+
117
+ //#endregion
118
+ export { Calendar, CalendarDayButton };
119
+ //# sourceMappingURL=calendar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar.js","names":["React","props","className"],"sources":["../../src/components/calendar.tsx"],"sourcesContent":["import * as React from \"react\"\nimport {\n DayPicker,\n getDefaultClassNames,\n type DayButton,\n type Locale,\n} from \"react-day-picker\"\n\nimport { cn } from \"@px-ui/ui/lib/utils\"\nimport { Button, buttonVariants } from \"@px-ui/ui/components/button\"\nimport { ChevronLeftIcon, ChevronRightIcon, ChevronDownIcon } from \"lucide-react\"\n\nfunction useAutoTimeZone() {\n const [tz, setTz] = React.useState<string | undefined>(undefined)\n React.useEffect(() => {\n setTz(Intl.DateTimeFormat().resolvedOptions().timeZone)\n }, [])\n return tz\n}\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = \"label\",\n buttonVariant = \"ghost\",\n locale,\n formatters,\n components,\n timeZone,\n ...props\n}: React.ComponentProps<typeof DayPicker> & {\n buttonVariant?: React.ComponentProps<typeof Button>[\"variant\"]\n}) {\n const defaultClassNames = getDefaultClassNames()\n const autoTimeZone = useAutoTimeZone()\n const effectiveTimeZone = timeZone ?? autoTimeZone\n\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n timeZone={effectiveTimeZone}\n className={cn(\n \"group/calendar bg-background p-3 [--cell-radius:var(--radius-md)] [--cell-size:--spacing(8)] 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) =>\n date.toLocaleString(locale?.code, { month: \"short\" }),\n ...formatters,\n }}\n classNames={{\n root: cn(\"w-fit\", defaultClassNames.root),\n months: cn(\n \"relative flex flex-col gap-4 ppx-md:flex-row\",\n defaultClassNames.months\n ),\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(\n \"relative rounded-(--cell-radius)\",\n defaultClassNames.dropdown_root\n ),\n dropdown: cn(\n \"absolute inset-0 bg-popover opacity-0\",\n defaultClassNames.dropdown\n ),\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: \"w-full border-collapse\",\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(\n \"w-(--cell-size) select-none\",\n defaultClassNames.week_number_header\n ),\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-e-(--cell-radius)\",\n props.showWeekNumber\n ? \"[&:nth-child(2)[data-selected=true]_button]:rounded-s-(--cell-radius)\"\n : \"[&:first-child[data-selected=true]_button]:rounded-s-(--cell-radius)\",\n defaultClassNames.day\n ),\n range_start: cn(\n \"relative isolate z-0 rounded-s-(--cell-radius) bg-muted after:absolute after:inset-y-0 after:end-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-e-(--cell-radius) bg-muted after:absolute after:inset-y-0 after:start-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(\n \"text-muted-foreground opacity-50\",\n defaultClassNames.disabled\n ),\n hidden: cn(\"invisible\", defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return (\n <div\n data-slot=\"calendar\"\n ref={rootRef}\n className={cn(className)}\n {...props}\n />\n )\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === \"left\") {\n return (\n <ChevronLeftIcon className={cn(\"rtl:rotate-180 size-4\", className)} {...props} />\n )\n }\n\n if (orientation === \"right\") {\n return (\n <ChevronRightIcon className={cn(\"rtl:rotate-180 size-4\", className)} {...props} />\n )\n }\n\n return (\n <ChevronDownIcon className={cn(\"size-4\", className)} {...props} />\n )\n },\n DayButton: ({ ...props }) => (\n <CalendarDayButton locale={locale} {...props} />\n ),\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 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-e-(--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-s-(--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":";;;;;;;;AAYA,SAAS,kBAAkB;CACzB,MAAM,CAAC,IAAI,SAASA,QAAM,SAA6B,OAAU;AACjE,SAAM,gBAAgB;AACpB,QAAM,KAAK,gBAAgB,CAAC,iBAAiB,CAAC,SAAS;IACtD,EAAE,CAAC;AACN,QAAO;;AAGT,SAAS,SAAS,EAChB,WACA,YACA,kBAAkB,MAClB,gBAAgB,SAChB,gBAAgB,SAChB,QACA,YACA,YACA,UACA,GAAG,SAGF;CACD,MAAM,oBAAoB,sBAAsB;CAChD,MAAM,eAAe,iBAAiB;AAGtC,QACE,oBAAC;EACkB;EACjB,UALsB,YAAY;EAMlC,WAAW,GACT,yLACA,OAAO,GAAG,6CACV,OAAO,GAAG,iDACV,UACD;EACc;EACP;EACR,YAAY;GACV,sBAAsB,SACpB,KAAK,eAAe,QAAQ,MAAM,EAAE,OAAO,SAAS,CAAC;GACvD,GAAG;GACJ;EACD,YAAY;GACV,MAAM,GAAG,SAAS,kBAAkB,KAAK;GACzC,QAAQ,GACN,gDACA,kBAAkB,OACnB;GACD,OAAO,GAAG,8BAA8B,kBAAkB,MAAM;GAChE,KAAK,GACH,2EACA,kBAAkB,IACnB;GACD,iBAAiB,GACf,eAAe,EAAE,SAAS,eAAe,CAAC,EAC1C,+DACA,kBAAkB,gBACnB;GACD,aAAa,GACX,eAAe,EAAE,SAAS,eAAe,CAAC,EAC1C,+DACA,kBAAkB,YACnB;GACD,eAAe,GACb,4EACA,kBAAkB,cACnB;GACD,WAAW,GACT,uFACA,kBAAkB,UACnB;GACD,eAAe,GACb,oCACA,kBAAkB,cACnB;GACD,UAAU,GACR,yCACA,kBAAkB,SACnB;GACD,eAAe,GACb,2BACA,kBAAkB,UACd,YACA,0GACJ,kBAAkB,cACnB;GACD,YAAY;GACZ,UAAU,GAAG,QAAQ,kBAAkB,SAAS;GAChD,SAAS,GACP,8FACA,kBAAkB,QACnB;GACD,MAAM,GAAG,oBAAoB,kBAAkB,KAAK;GACpD,oBAAoB,GAClB,+BACA,kBAAkB,mBACnB;GACD,aAAa,GACX,mDACA,kBAAkB,YACnB;GACD,KAAK,GACH,0KACA,MAAM,iBACF,0EACA,wEACJ,kBAAkB,IACnB;GACD,aAAa,GACX,+HACA,kBAAkB,YACnB;GACD,cAAc,GAAG,gBAAgB,kBAAkB,aAAa;GAChE,WAAW,GACT,iIACA,kBAAkB,UACnB;GACD,OAAO,GACL,sFACA,kBAAkB,MACnB;GACD,SAAS,GACP,6DACA,kBAAkB,QACnB;GACD,UAAU,GACR,oCACA,kBAAkB,SACnB;GACD,QAAQ,GAAG,aAAa,kBAAkB,OAAO;GACjD,GAAG;GACJ;EACD,YAAY;GACV,OAAO,EAAE,wBAAW,SAAS,GAAGC,cAAY;AAC1C,WACE,oBAAC;KACC,aAAU;KACV,KAAK;KACL,WAAW,GAAGC,YAAU;KACxB,GAAID;MACJ;;GAGN,UAAU,EAAE,wBAAW,aAAa,GAAGA,cAAY;AACjD,QAAI,gBAAgB,OAClB,QACE,oBAAC;KAAgB,WAAW,GAAG,yBAAyBC,YAAU;KAAE,GAAID;MAAS;AAIrF,QAAI,gBAAgB,QAClB,QACE,oBAAC;KAAiB,WAAW,GAAG,yBAAyBC,YAAU;KAAE,GAAID;MAAS;AAItF,WACE,oBAAC;KAAgB,WAAW,GAAG,UAAUC,YAAU;KAAE,GAAID;MAAS;;GAGtE,YAAY,EAAE,GAAGA,cACf,oBAAC;IAA0B;IAAQ,GAAIA;KAAS;GAElD,aAAa,EAAE,UAAU,GAAGA,cAAY;AACtC,WACE,oBAAC;KAAG,GAAIA;eACN,oBAAC;MAAI,WAAU;MACZ;OACG;MACH;;GAGT,GAAG;GACJ;EACD,GAAI;GACJ;;AAIN,SAAS,kBAAkB,EACzB,WACA,KACA,WACA,QACA,GAAG,SACqE;CACxE,MAAM,oBAAoB,sBAAsB;CAEhD,MAAM,MAAMD,QAAM,OAA0B,KAAK;AACjD,SAAM,gBAAgB;AACpB,MAAI,UAAU,QAAS,KAAI,SAAS,OAAO;IAC1C,CAAC,UAAU,QAAQ,CAAC;AAEvB,QACE,oBAAC;EACC,SAAQ;EACR,MAAK;EACL,YAAU,IAAI,KAAK,mBAAmB,QAAQ,KAAK;EACnD,wBACE,UAAU,YACV,CAAC,UAAU,eACX,CAAC,UAAU,aACX,CAAC,UAAU;EAEb,oBAAkB,UAAU;EAC5B,kBAAgB,UAAU;EAC1B,qBAAmB,UAAU;EAC7B,WAAW,GACT,w7BACA,kBAAkB,KAClB,UACD;EACD,GAAI;GACJ"}
@@ -0,0 +1,38 @@
1
+ import * as react_jsx_runtime142 from "react/jsx-runtime";
2
+ import * as React$1 from "react";
3
+
4
+ //#region src/components/card.d.ts
5
+ declare function Card({
6
+ className,
7
+ size,
8
+ ...props
9
+ }: React$1.ComponentProps<"div"> & {
10
+ size?: "default" | "sm";
11
+ }): react_jsx_runtime142.JSX.Element;
12
+ declare function CardHeader({
13
+ className,
14
+ ...props
15
+ }: React$1.ComponentProps<"div">): react_jsx_runtime142.JSX.Element;
16
+ declare function CardTitle({
17
+ className,
18
+ ...props
19
+ }: React$1.ComponentProps<"div">): react_jsx_runtime142.JSX.Element;
20
+ declare function CardDescription({
21
+ className,
22
+ ...props
23
+ }: React$1.ComponentProps<"div">): react_jsx_runtime142.JSX.Element;
24
+ declare function CardAction({
25
+ className,
26
+ ...props
27
+ }: React$1.ComponentProps<"div">): react_jsx_runtime142.JSX.Element;
28
+ declare function CardContent({
29
+ className,
30
+ ...props
31
+ }: React$1.ComponentProps<"div">): react_jsx_runtime142.JSX.Element;
32
+ declare function CardFooter({
33
+ className,
34
+ ...props
35
+ }: React$1.ComponentProps<"div">): react_jsx_runtime142.JSX.Element;
36
+ //#endregion
37
+ export { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle };
38
+ //# sourceMappingURL=card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card.d.ts","names":[],"sources":["../../src/components/card.tsx"],"sourcesContent":[],"mappings":";;;;iBAIS,IAAA;;;;GAIN,OAAA,CAAM;;IAAmD,oBAAA,CAAA,GAAA,CAAA;AAR9B,iBAsBrB,UAAA,CAlBI;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAkBgC,OAAA,CAAM,cAlBtC,CAAA,KAAA,CAAA,CAAA,EAkB2D,oBAAA,CAAA,GAAA,CAAA,OAlB3D;iBA+BJ,SAAA,CA9BP;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA8B0C,OAAA,CAAM,cA9BhD,CAAA,KAAA,CAAA,CAAA,EA8BqE,oBAAA,CAAA,GAAA,CAAA,OA9BrE;iBA2CO,eAAA,CA1CP;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA0CgD,OAAA,CAAM,cA1CtD,CAAA,KAAA,CAAA,CAAA,EA0C2E,oBAAA,CAAA,GAAA,CAAA,OA1C3E;iBAoDO,UAAA,CAlDA;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAkDoC,OAAA,CAAM,cAlD1C,CAAA,KAAA,CAAA,CAAA,EAkD+D,oBAAA,CAAA,GAAA,CAAA,OAlD/D;iBA+DA,WAAA,CA/DmD;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA+Dd,OAAA,CAAM,cA/DQ,CAAA,KAAA,CAAA,CAAA,EA+Da,oBAAA,CAAA,GAAA,CAAA,OA/Db;iBAyEnD,UAAA,CAzEmD;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAyEf,OAAA,CAAM,cAzES,CAAA,KAAA,CAAA,CAAA,EAyEY,oBAAA,CAAA,GAAA,CAAA,OAzEZ"}