@snow-labs/brutal-ui 0.1.0 → 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 (282) hide show
  1. package/dist/components/brutal/cta-section.d.ts +7 -2
  2. package/dist/components/brutal/cta-section.js +253 -4
  3. package/dist/components/brutal/cta-section.js.map +1 -1
  4. package/dist/components/brutal/faq.d.ts +16 -0
  5. package/dist/components/brutal/faq.js +166 -0
  6. package/dist/components/brutal/faq.js.map +1 -0
  7. package/dist/components/brutal/feature-grid.d.ts +5 -1
  8. package/dist/components/brutal/feature-grid.js +238 -4
  9. package/dist/components/brutal/feature-grid.js.map +1 -1
  10. package/dist/components/brutal/footer.d.ts +14 -1
  11. package/dist/components/brutal/footer.js +215 -2
  12. package/dist/components/brutal/footer.js.map +1 -1
  13. package/dist/components/brutal/hero.d.ts +8 -1
  14. package/dist/components/brutal/hero.js +197 -4
  15. package/dist/components/brutal/hero.js.map +1 -1
  16. package/dist/components/brutal/index.d.ts +7 -2
  17. package/dist/components/brutal/index.js +1393 -12
  18. package/dist/components/brutal/index.js.map +1 -1
  19. package/dist/components/brutal/integration-grid.js +105 -3
  20. package/dist/components/brutal/integration-grid.js.map +1 -1
  21. package/dist/components/brutal/logo-cloud.d.ts +17 -0
  22. package/dist/components/brutal/logo-cloud.js +96 -0
  23. package/dist/components/brutal/logo-cloud.js.map +1 -0
  24. package/dist/components/brutal/nav.d.ts +3 -1
  25. package/dist/components/brutal/nav.js +258 -3
  26. package/dist/components/brutal/nav.js.map +1 -1
  27. package/dist/components/brutal/newsletter.d.ts +14 -0
  28. package/dist/components/brutal/newsletter.js +172 -0
  29. package/dist/components/brutal/newsletter.js.map +1 -0
  30. package/dist/components/brutal/pricing-table.d.ts +27 -0
  31. package/dist/components/brutal/pricing-table.js +254 -0
  32. package/dist/components/brutal/pricing-table.js.map +1 -0
  33. package/dist/components/brutal/section-divider.d.ts +14 -0
  34. package/dist/components/brutal/section-divider.js +70 -0
  35. package/dist/components/brutal/section-divider.js.map +1 -0
  36. package/dist/components/brutal/section.d.ts +6 -2
  37. package/dist/components/brutal/section.js +67 -2
  38. package/dist/components/brutal/section.js.map +1 -1
  39. package/dist/components/brutal/stats-bar.d.ts +16 -0
  40. package/dist/components/brutal/stats-bar.js +130 -0
  41. package/dist/components/brutal/stats-bar.js.map +1 -0
  42. package/dist/components/brutal/testimonials.d.ts +11 -3
  43. package/dist/components/brutal/testimonials.js +192 -3
  44. package/dist/components/brutal/testimonials.js.map +1 -1
  45. package/dist/components/brutal/wave-divider.d.ts +2 -12
  46. package/dist/components/brutal/wave-divider.js +68 -1
  47. package/dist/components/brutal/wave-divider.js.map +1 -1
  48. package/dist/components/dashboard/activity-feed.d.ts +18 -0
  49. package/dist/components/dashboard/activity-feed.js +105 -0
  50. package/dist/components/dashboard/activity-feed.js.map +1 -0
  51. package/dist/components/dashboard/app-shell.d.ts +19 -0
  52. package/dist/components/dashboard/app-shell.js +206 -0
  53. package/dist/components/dashboard/app-shell.js.map +1 -0
  54. package/dist/components/dashboard/empty-state.d.ts +14 -0
  55. package/dist/{chunk-CY2FOBOD.js → components/dashboard/empty-state.js} +36 -5
  56. package/dist/components/dashboard/empty-state.js.map +1 -0
  57. package/dist/components/dashboard/file-upload.d.ts +12 -0
  58. package/dist/components/dashboard/file-upload.js +86 -0
  59. package/dist/components/dashboard/file-upload.js.map +1 -0
  60. package/dist/components/dashboard/index.d.ts +10 -0
  61. package/dist/components/dashboard/index.js +755 -0
  62. package/dist/components/dashboard/index.js.map +1 -0
  63. package/dist/components/dashboard/search-bar.d.ts +12 -0
  64. package/dist/components/dashboard/search-bar.js +49 -0
  65. package/dist/components/dashboard/search-bar.js.map +1 -0
  66. package/dist/components/dashboard/sidebar.d.ts +23 -0
  67. package/dist/components/dashboard/sidebar.js +113 -0
  68. package/dist/components/dashboard/sidebar.js.map +1 -0
  69. package/dist/components/dashboard/stat-card.d.ts +13 -0
  70. package/dist/components/dashboard/stat-card.js +55 -0
  71. package/dist/components/dashboard/stat-card.js.map +1 -0
  72. package/dist/components/dashboard/user-menu.d.ts +16 -0
  73. package/dist/components/dashboard/user-menu.js +179 -0
  74. package/dist/components/dashboard/user-menu.js.map +1 -0
  75. package/dist/components/dashboard/view-switcher.d.ts +12 -0
  76. package/dist/{chunk-OCSYB6YE.js → components/dashboard/view-switcher.js} +57 -5
  77. package/dist/components/dashboard/view-switcher.js.map +1 -0
  78. package/dist/components/ui/accordion.js +78 -2
  79. package/dist/components/ui/accordion.js.map +1 -1
  80. package/dist/components/ui/alert.js +80 -2
  81. package/dist/components/ui/alert.js.map +1 -1
  82. package/dist/components/ui/avatar.js +103 -2
  83. package/dist/components/ui/avatar.js.map +1 -1
  84. package/dist/components/ui/badge.d.ts +1 -1
  85. package/dist/components/ui/badge.js +55 -2
  86. package/dist/components/ui/badge.js.map +1 -1
  87. package/dist/components/ui/breadcrumb.js +122 -2
  88. package/dist/components/ui/breadcrumb.js.map +1 -1
  89. package/dist/components/ui/button.d.ts +1 -1
  90. package/dist/components/ui/button.js +68 -2
  91. package/dist/components/ui/button.js.map +1 -1
  92. package/dist/components/ui/card.js +90 -2
  93. package/dist/components/ui/card.js.map +1 -1
  94. package/dist/components/ui/checkbox.js +36 -2
  95. package/dist/components/ui/checkbox.js.map +1 -1
  96. package/dist/components/ui/collapsible.js +15 -1
  97. package/dist/components/ui/collapsible.js.map +1 -1
  98. package/dist/components/ui/command.js +399 -7
  99. package/dist/components/ui/command.js.map +1 -1
  100. package/dist/components/ui/context-menu.js +232 -2
  101. package/dist/components/ui/context-menu.js.map +1 -1
  102. package/dist/components/ui/dialog.js +201 -3
  103. package/dist/components/ui/dialog.js.map +1 -1
  104. package/dist/components/ui/drawer.js +118 -2
  105. package/dist/components/ui/drawer.js.map +1 -1
  106. package/dist/components/ui/dropdown-menu.js +242 -2
  107. package/dist/components/ui/dropdown-menu.js.map +1 -1
  108. package/dist/components/ui/hover-card.js +47 -2
  109. package/dist/components/ui/hover-card.js.map +1 -1
  110. package/dist/components/ui/input-group.js +226 -5
  111. package/dist/components/ui/input-group.js.map +1 -1
  112. package/dist/components/ui/input.js +26 -2
  113. package/dist/components/ui/input.js.map +1 -1
  114. package/dist/components/ui/label.js +23 -2
  115. package/dist/components/ui/label.js.map +1 -1
  116. package/dist/components/ui/menubar.js +398 -3
  117. package/dist/components/ui/menubar.js.map +1 -1
  118. package/dist/components/ui/navigation-menu.js +160 -2
  119. package/dist/components/ui/navigation-menu.js.map +1 -1
  120. package/dist/components/ui/pagination.js +185 -3
  121. package/dist/components/ui/pagination.js.map +1 -1
  122. package/dist/components/ui/popover.js +80 -2
  123. package/dist/components/ui/popover.js.map +1 -1
  124. package/dist/components/ui/progress.js +80 -2
  125. package/dist/components/ui/progress.js.map +1 -1
  126. package/dist/components/ui/radio-group.js +43 -2
  127. package/dist/components/ui/radio-group.js.map +1 -1
  128. package/dist/components/ui/scroll-area.js +63 -2
  129. package/dist/components/ui/scroll-area.js.map +1 -1
  130. package/dist/components/ui/select.js +190 -2
  131. package/dist/components/ui/select.js.map +1 -1
  132. package/dist/components/ui/separator.js +29 -2
  133. package/dist/components/ui/separator.js.map +1 -1
  134. package/dist/components/ui/sheet.js +185 -3
  135. package/dist/components/ui/sheet.js.map +1 -1
  136. package/dist/components/ui/skeleton.js +21 -2
  137. package/dist/components/ui/skeleton.js.map +1 -1
  138. package/dist/components/ui/slider.js +62 -2
  139. package/dist/components/ui/slider.js.map +1 -1
  140. package/dist/components/ui/switch.js +36 -2
  141. package/dist/components/ui/switch.js.map +1 -1
  142. package/dist/components/ui/tabs.d.ts +1 -1
  143. package/dist/components/ui/tabs.js +85 -2
  144. package/dist/components/ui/tabs.js.map +1 -1
  145. package/dist/components/ui/textarea.js +24 -2
  146. package/dist/components/ui/textarea.js.map +1 -1
  147. package/dist/components/ui/toggle-group.js +101 -3
  148. package/dist/components/ui/toggle-group.js.map +1 -1
  149. package/dist/components/ui/toggle.js +47 -2
  150. package/dist/components/ui/toggle.js.map +1 -1
  151. package/dist/components/ui/tooltip.js +65 -2
  152. package/dist/components/ui/tooltip.js.map +1 -1
  153. package/dist/components/views/calendar-view.d.ts +17 -0
  154. package/dist/components/views/calendar-view.js +182 -0
  155. package/dist/components/views/calendar-view.js.map +1 -0
  156. package/dist/components/views/data-table.d.ts +15 -0
  157. package/dist/components/views/data-table.js +204 -0
  158. package/dist/components/views/data-table.js.map +1 -0
  159. package/dist/components/views/grid-view.d.ts +11 -0
  160. package/dist/components/views/grid-view.js +31 -0
  161. package/dist/components/views/grid-view.js.map +1 -0
  162. package/dist/components/views/index.d.ts +7 -0
  163. package/dist/components/views/index.js +542 -0
  164. package/dist/components/views/index.js.map +1 -0
  165. package/dist/components/views/kanban-board.d.ts +21 -0
  166. package/dist/components/views/kanban-board.js +153 -0
  167. package/dist/components/views/kanban-board.js.map +1 -0
  168. package/dist/components/views/list-view.d.ts +19 -0
  169. package/dist/components/views/list-view.js +96 -0
  170. package/dist/components/views/list-view.js.map +1 -0
  171. package/dist/index.d.ts +27 -3
  172. package/dist/index.js +4957 -46
  173. package/dist/index.js.map +1 -1
  174. package/dist/lib/animations.d.ts +68 -0
  175. package/dist/lib/animations.js +44 -0
  176. package/dist/lib/animations.js.map +1 -0
  177. package/dist/lib/utils.js +10 -1
  178. package/dist/lib/utils.js.map +1 -1
  179. package/dist/templates/dashboard.d.ts +40 -0
  180. package/dist/templates/dashboard.js +658 -0
  181. package/dist/templates/dashboard.js.map +1 -0
  182. package/dist/templates/index.d.ts +4 -0
  183. package/dist/templates/index.js +2031 -0
  184. package/dist/templates/index.js.map +1 -0
  185. package/dist/templates/saas-launch.d.ts +113 -0
  186. package/dist/templates/saas-launch.js +1424 -0
  187. package/dist/templates/saas-launch.js.map +1 -0
  188. package/dist/templates/studio.d.ts +72 -0
  189. package/dist/templates/studio.js +1129 -0
  190. package/dist/templates/studio.js.map +1 -0
  191. package/dist/theme.css +53 -0
  192. package/package.json +48 -2
  193. package/dist/chunk-3HN3QP23.js +0 -44
  194. package/dist/chunk-3HN3QP23.js.map +0 -1
  195. package/dist/chunk-4A3EQV6F.js +0 -76
  196. package/dist/chunk-4A3EQV6F.js.map +0 -1
  197. package/dist/chunk-53KZXLG4.js +0 -100
  198. package/dist/chunk-53KZXLG4.js.map +0 -1
  199. package/dist/chunk-5JCN6EQG.js +0 -60
  200. package/dist/chunk-5JCN6EQG.js.map +0 -1
  201. package/dist/chunk-5JEBZUEI.js +0 -20
  202. package/dist/chunk-5JEBZUEI.js.map +0 -1
  203. package/dist/chunk-6APJMAO7.js +0 -44
  204. package/dist/chunk-6APJMAO7.js.map +0 -1
  205. package/dist/chunk-6UKMYVHC.js +0 -187
  206. package/dist/chunk-6UKMYVHC.js.map +0 -1
  207. package/dist/chunk-7FVJ36BQ.js +0 -239
  208. package/dist/chunk-7FVJ36BQ.js.map +0 -1
  209. package/dist/chunk-7I7XYB7H.js +0 -44
  210. package/dist/chunk-7I7XYB7H.js.map +0 -1
  211. package/dist/chunk-A5KONGTJ.js +0 -49
  212. package/dist/chunk-A5KONGTJ.js.map +0 -1
  213. package/dist/chunk-AHUC5AID.js +0 -40
  214. package/dist/chunk-AHUC5AID.js.map +0 -1
  215. package/dist/chunk-B6UM5GHF.js +0 -20
  216. package/dist/chunk-B6UM5GHF.js.map +0 -1
  217. package/dist/chunk-BAUUM52T.js +0 -234
  218. package/dist/chunk-BAUUM52T.js.map +0 -1
  219. package/dist/chunk-BDWCMMEI.js +0 -82
  220. package/dist/chunk-BDWCMMEI.js.map +0 -1
  221. package/dist/chunk-BSVJVM2L.js +0 -52
  222. package/dist/chunk-BSVJVM2L.js.map +0 -1
  223. package/dist/chunk-CPVH3LD5.js +0 -86
  224. package/dist/chunk-CPVH3LD5.js.map +0 -1
  225. package/dist/chunk-CY2FOBOD.js.map +0 -1
  226. package/dist/chunk-DJTTNICL.js +0 -40
  227. package/dist/chunk-DJTTNICL.js.map +0 -1
  228. package/dist/chunk-F2E32OOJ.js +0 -38
  229. package/dist/chunk-F2E32OOJ.js.map +0 -1
  230. package/dist/chunk-F7YWBVP6.js +0 -141
  231. package/dist/chunk-F7YWBVP6.js.map +0 -1
  232. package/dist/chunk-G7JMADLU.js +0 -167
  233. package/dist/chunk-G7JMADLU.js.map +0 -1
  234. package/dist/chunk-GKCLNHVQ.js +0 -124
  235. package/dist/chunk-GKCLNHVQ.js.map +0 -1
  236. package/dist/chunk-GQBWKH72.js +0 -33
  237. package/dist/chunk-GQBWKH72.js.map +0 -1
  238. package/dist/chunk-H6SOU4UG.js +0 -10
  239. package/dist/chunk-H6SOU4UG.js.map +0 -1
  240. package/dist/chunk-HKJJHYFX.js +0 -115
  241. package/dist/chunk-HKJJHYFX.js.map +0 -1
  242. package/dist/chunk-IQ5WXHRB.js +0 -16
  243. package/dist/chunk-IQ5WXHRB.js.map +0 -1
  244. package/dist/chunk-ISZQ5TSG.js +0 -26
  245. package/dist/chunk-ISZQ5TSG.js.map +0 -1
  246. package/dist/chunk-JSYGVDO6.js +0 -41
  247. package/dist/chunk-JSYGVDO6.js.map +0 -1
  248. package/dist/chunk-KY6GKED2.js +0 -229
  249. package/dist/chunk-KY6GKED2.js.map +0 -1
  250. package/dist/chunk-L5OPCX6F.js +0 -33
  251. package/dist/chunk-L5OPCX6F.js.map +0 -1
  252. package/dist/chunk-LLMBKOKT.js +0 -44
  253. package/dist/chunk-LLMBKOKT.js.map +0 -1
  254. package/dist/chunk-MKBO4S2O.js +0 -48
  255. package/dist/chunk-MKBO4S2O.js.map +0 -1
  256. package/dist/chunk-NMQRI5G5.js +0 -48
  257. package/dist/chunk-NMQRI5G5.js.map +0 -1
  258. package/dist/chunk-OCSYB6YE.js.map +0 -1
  259. package/dist/chunk-OILW3ESA.js +0 -62
  260. package/dist/chunk-OILW3ESA.js.map +0 -1
  261. package/dist/chunk-PCVJLIUU.js +0 -125
  262. package/dist/chunk-PCVJLIUU.js.map +0 -1
  263. package/dist/chunk-RXSDAOF7.js +0 -45
  264. package/dist/chunk-RXSDAOF7.js.map +0 -1
  265. package/dist/chunk-RZD2P2BD.js +0 -77
  266. package/dist/chunk-RZD2P2BD.js.map +0 -1
  267. package/dist/chunk-UL52C2UU.js +0 -22
  268. package/dist/chunk-UL52C2UU.js.map +0 -1
  269. package/dist/chunk-USFQYYSE.js +0 -118
  270. package/dist/chunk-USFQYYSE.js.map +0 -1
  271. package/dist/chunk-UW3CSNPH.js +0 -77
  272. package/dist/chunk-UW3CSNPH.js.map +0 -1
  273. package/dist/chunk-V2ORCFEN.js +0 -156
  274. package/dist/chunk-V2ORCFEN.js.map +0 -1
  275. package/dist/chunk-WQO7NSII.js +0 -141
  276. package/dist/chunk-WQO7NSII.js.map +0 -1
  277. package/dist/chunk-WXHK2EIV.js +0 -75
  278. package/dist/chunk-WXHK2EIV.js.map +0 -1
  279. package/dist/chunk-Y6W3YC3K.js +0 -17
  280. package/dist/chunk-Y6W3YC3K.js.map +0 -1
  281. package/dist/chunk-ZRVEDPQA.js +0 -59
  282. package/dist/chunk-ZRVEDPQA.js.map +0 -1
@@ -1,4 +1,244 @@
1
- export { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger } from '../../chunk-7FVJ36BQ.js';
2
- import '../../chunk-H6SOU4UG.js';
1
+ "use client";
2
+ import { Menu } from '@base-ui/react/menu';
3
+ import { clsx } from 'clsx';
4
+ import { twMerge } from 'tailwind-merge';
5
+ import { ChevronRightIcon, CheckIcon } from 'lucide-react';
6
+ import { jsx, jsxs } from 'react/jsx-runtime';
7
+
8
+ function cn(...inputs) {
9
+ return twMerge(clsx(inputs));
10
+ }
11
+ function DropdownMenu({ ...props }) {
12
+ return /* @__PURE__ */ jsx(Menu.Root, { "data-slot": "dropdown-menu", ...props });
13
+ }
14
+ function DropdownMenuPortal({ ...props }) {
15
+ return /* @__PURE__ */ jsx(Menu.Portal, { "data-slot": "dropdown-menu-portal", ...props });
16
+ }
17
+ function DropdownMenuTrigger({ ...props }) {
18
+ return /* @__PURE__ */ jsx(Menu.Trigger, { "data-slot": "dropdown-menu-trigger", ...props });
19
+ }
20
+ function DropdownMenuContent({
21
+ align = "start",
22
+ alignOffset = 0,
23
+ side = "bottom",
24
+ sideOffset = 4,
25
+ className,
26
+ ...props
27
+ }) {
28
+ return /* @__PURE__ */ jsx(Menu.Portal, { children: /* @__PURE__ */ jsx(
29
+ Menu.Positioner,
30
+ {
31
+ className: "isolate z-50 outline-none",
32
+ align,
33
+ alignOffset,
34
+ side,
35
+ sideOffset,
36
+ children: /* @__PURE__ */ jsx(
37
+ Menu.Popup,
38
+ {
39
+ "data-slot": "dropdown-menu-content",
40
+ className: cn("z-50 max-h-(--available-height) w-(--anchor-width) min-w-32 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-lg border-brutal border-foreground bg-popover p-1 text-popover-foreground shadow-brutal duration-100 outline-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:overflow-hidden data-closed:fade-out-0 data-closed:zoom-out-95", className),
41
+ ...props
42
+ }
43
+ )
44
+ }
45
+ ) });
46
+ }
47
+ function DropdownMenuGroup({ ...props }) {
48
+ return /* @__PURE__ */ jsx(Menu.Group, { "data-slot": "dropdown-menu-group", ...props });
49
+ }
50
+ function DropdownMenuLabel({
51
+ className,
52
+ inset,
53
+ ...props
54
+ }) {
55
+ return /* @__PURE__ */ jsx(
56
+ Menu.GroupLabel,
57
+ {
58
+ "data-slot": "dropdown-menu-label",
59
+ "data-inset": inset,
60
+ className: cn(
61
+ "px-1.5 py-1 text-xs font-medium text-muted-foreground data-inset:pl-7",
62
+ className
63
+ ),
64
+ ...props
65
+ }
66
+ );
67
+ }
68
+ function DropdownMenuItem({
69
+ className,
70
+ inset,
71
+ variant = "default",
72
+ ...props
73
+ }) {
74
+ return /* @__PURE__ */ jsx(
75
+ Menu.Item,
76
+ {
77
+ "data-slot": "dropdown-menu-item",
78
+ "data-inset": inset,
79
+ "data-variant": variant,
80
+ className: cn(
81
+ "group/dropdown-menu-item relative flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-7 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive",
82
+ className
83
+ ),
84
+ ...props
85
+ }
86
+ );
87
+ }
88
+ function DropdownMenuSub({ ...props }) {
89
+ return /* @__PURE__ */ jsx(Menu.SubmenuRoot, { "data-slot": "dropdown-menu-sub", ...props });
90
+ }
91
+ function DropdownMenuSubTrigger({
92
+ className,
93
+ inset,
94
+ children,
95
+ ...props
96
+ }) {
97
+ return /* @__PURE__ */ jsxs(
98
+ Menu.SubmenuTrigger,
99
+ {
100
+ "data-slot": "dropdown-menu-sub-trigger",
101
+ "data-inset": inset,
102
+ className: cn(
103
+ "flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-7 data-popup-open:bg-accent data-popup-open:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
104
+ className
105
+ ),
106
+ ...props,
107
+ children: [
108
+ children,
109
+ /* @__PURE__ */ jsx(ChevronRightIcon, { className: "ml-auto" })
110
+ ]
111
+ }
112
+ );
113
+ }
114
+ function DropdownMenuSubContent({
115
+ align = "start",
116
+ alignOffset = -3,
117
+ side = "right",
118
+ sideOffset = 0,
119
+ className,
120
+ ...props
121
+ }) {
122
+ return /* @__PURE__ */ jsx(
123
+ DropdownMenuContent,
124
+ {
125
+ "data-slot": "dropdown-menu-sub-content",
126
+ className: cn("w-auto min-w-[96px] rounded-lg border-brutal border-foreground bg-popover p-1 text-popover-foreground shadow-brutal duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", className),
127
+ align,
128
+ alignOffset,
129
+ side,
130
+ sideOffset,
131
+ ...props
132
+ }
133
+ );
134
+ }
135
+ function DropdownMenuCheckboxItem({
136
+ className,
137
+ children,
138
+ checked,
139
+ inset,
140
+ ...props
141
+ }) {
142
+ return /* @__PURE__ */ jsxs(
143
+ Menu.CheckboxItem,
144
+ {
145
+ "data-slot": "dropdown-menu-checkbox-item",
146
+ "data-inset": inset,
147
+ className: cn(
148
+ "relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
149
+ className
150
+ ),
151
+ checked,
152
+ ...props,
153
+ children: [
154
+ /* @__PURE__ */ jsx(
155
+ "span",
156
+ {
157
+ className: "pointer-events-none absolute right-2 flex items-center justify-center",
158
+ "data-slot": "dropdown-menu-checkbox-item-indicator",
159
+ children: /* @__PURE__ */ jsx(Menu.CheckboxItemIndicator, { children: /* @__PURE__ */ jsx(
160
+ CheckIcon,
161
+ {}
162
+ ) })
163
+ }
164
+ ),
165
+ children
166
+ ]
167
+ }
168
+ );
169
+ }
170
+ function DropdownMenuRadioGroup({ ...props }) {
171
+ return /* @__PURE__ */ jsx(
172
+ Menu.RadioGroup,
173
+ {
174
+ "data-slot": "dropdown-menu-radio-group",
175
+ ...props
176
+ }
177
+ );
178
+ }
179
+ function DropdownMenuRadioItem({
180
+ className,
181
+ children,
182
+ inset,
183
+ ...props
184
+ }) {
185
+ return /* @__PURE__ */ jsxs(
186
+ Menu.RadioItem,
187
+ {
188
+ "data-slot": "dropdown-menu-radio-item",
189
+ "data-inset": inset,
190
+ className: cn(
191
+ "relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
192
+ className
193
+ ),
194
+ ...props,
195
+ children: [
196
+ /* @__PURE__ */ jsx(
197
+ "span",
198
+ {
199
+ className: "pointer-events-none absolute right-2 flex items-center justify-center",
200
+ "data-slot": "dropdown-menu-radio-item-indicator",
201
+ children: /* @__PURE__ */ jsx(Menu.RadioItemIndicator, { children: /* @__PURE__ */ jsx(
202
+ CheckIcon,
203
+ {}
204
+ ) })
205
+ }
206
+ ),
207
+ children
208
+ ]
209
+ }
210
+ );
211
+ }
212
+ function DropdownMenuSeparator({
213
+ className,
214
+ ...props
215
+ }) {
216
+ return /* @__PURE__ */ jsx(
217
+ Menu.Separator,
218
+ {
219
+ "data-slot": "dropdown-menu-separator",
220
+ className: cn("-mx-1 my-1 h-px bg-border", className),
221
+ ...props
222
+ }
223
+ );
224
+ }
225
+ function DropdownMenuShortcut({
226
+ className,
227
+ ...props
228
+ }) {
229
+ return /* @__PURE__ */ jsx(
230
+ "span",
231
+ {
232
+ "data-slot": "dropdown-menu-shortcut",
233
+ className: cn(
234
+ "ml-auto text-xs tracking-widest text-muted-foreground group-focus/dropdown-menu-item:text-accent-foreground",
235
+ className
236
+ ),
237
+ ...props
238
+ }
239
+ );
240
+ }
241
+
242
+ export { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger };
3
243
  //# sourceMappingURL=dropdown-menu.js.map
4
244
  //# sourceMappingURL=dropdown-menu.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"dropdown-menu.js"}
1
+ {"version":3,"sources":["../../../src/lib/utils.ts","../../../src/components/ui/dropdown-menu.tsx"],"names":["MenuPrimitive"],"mappings":"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","file":"dropdown-menu.js","sourcesContent":["import { clsx, type ClassValue } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Menu as MenuPrimitive } from \"@base-ui/react/menu\"\n\nimport { cn } from \"../../lib/utils\"\nimport { ChevronRightIcon, CheckIcon } from \"lucide-react\"\n\nfunction DropdownMenu({ ...props }: MenuPrimitive.Root.Props) {\n return <MenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />\n}\n\nfunction DropdownMenuPortal({ ...props }: MenuPrimitive.Portal.Props) {\n return <MenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" {...props} />\n}\n\nfunction DropdownMenuTrigger({ ...props }: MenuPrimitive.Trigger.Props) {\n return <MenuPrimitive.Trigger data-slot=\"dropdown-menu-trigger\" {...props} />\n}\n\nfunction DropdownMenuContent({\n align = \"start\",\n alignOffset = 0,\n side = \"bottom\",\n sideOffset = 4,\n className,\n ...props\n}: MenuPrimitive.Popup.Props &\n Pick<\n MenuPrimitive.Positioner.Props,\n \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\"\n >) {\n return (\n <MenuPrimitive.Portal>\n <MenuPrimitive.Positioner\n className=\"isolate z-50 outline-none\"\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n >\n <MenuPrimitive.Popup\n data-slot=\"dropdown-menu-content\"\n className={cn(\"z-50 max-h-(--available-height) w-(--anchor-width) min-w-32 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-lg border-brutal border-foreground bg-popover p-1 text-popover-foreground shadow-brutal duration-100 outline-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:overflow-hidden data-closed:fade-out-0 data-closed:zoom-out-95\", className )}\n {...props}\n />\n </MenuPrimitive.Positioner>\n </MenuPrimitive.Portal>\n )\n}\n\nfunction DropdownMenuGroup({ ...props }: MenuPrimitive.Group.Props) {\n return <MenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />\n}\n\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: MenuPrimitive.GroupLabel.Props & {\n inset?: boolean\n}) {\n return (\n <MenuPrimitive.GroupLabel\n data-slot=\"dropdown-menu-label\"\n data-inset={inset}\n className={cn(\n \"px-1.5 py-1 text-xs font-medium text-muted-foreground data-inset:pl-7\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: MenuPrimitive.Item.Props & {\n inset?: boolean\n variant?: \"default\" | \"destructive\"\n}) {\n return (\n <MenuPrimitive.Item\n data-slot=\"dropdown-menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"group/dropdown-menu-item relative flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-7 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction DropdownMenuSub({ ...props }: MenuPrimitive.SubmenuRoot.Props) {\n return <MenuPrimitive.SubmenuRoot data-slot=\"dropdown-menu-sub\" {...props} />\n}\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: MenuPrimitive.SubmenuTrigger.Props & {\n inset?: boolean\n}) {\n return (\n <MenuPrimitive.SubmenuTrigger\n data-slot=\"dropdown-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-7 data-popup-open:bg-accent data-popup-open:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto\" />\n </MenuPrimitive.SubmenuTrigger>\n )\n}\n\nfunction DropdownMenuSubContent({\n align = \"start\",\n alignOffset = -3,\n side = \"right\",\n sideOffset = 0,\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuContent>) {\n return (\n <DropdownMenuContent\n data-slot=\"dropdown-menu-sub-content\"\n className={cn(\"w-auto min-w-[96px] rounded-lg border-brutal border-foreground bg-popover p-1 text-popover-foreground shadow-brutal duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\", className )}\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n {...props}\n />\n )\n}\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n inset,\n ...props\n}: MenuPrimitive.CheckboxItem.Props & {\n inset?: boolean\n}) {\n return (\n <MenuPrimitive.CheckboxItem\n data-slot=\"dropdown-menu-checkbox-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span\n className=\"pointer-events-none absolute right-2 flex items-center justify-center\"\n data-slot=\"dropdown-menu-checkbox-item-indicator\"\n >\n <MenuPrimitive.CheckboxItemIndicator>\n <CheckIcon\n />\n </MenuPrimitive.CheckboxItemIndicator>\n </span>\n {children}\n </MenuPrimitive.CheckboxItem>\n )\n}\n\nfunction DropdownMenuRadioGroup({ ...props }: MenuPrimitive.RadioGroup.Props) {\n return (\n <MenuPrimitive.RadioGroup\n data-slot=\"dropdown-menu-radio-group\"\n {...props}\n />\n )\n}\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n inset,\n ...props\n}: MenuPrimitive.RadioItem.Props & {\n inset?: boolean\n}) {\n return (\n <MenuPrimitive.RadioItem\n data-slot=\"dropdown-menu-radio-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n <span\n className=\"pointer-events-none absolute right-2 flex items-center justify-center\"\n data-slot=\"dropdown-menu-radio-item-indicator\"\n >\n <MenuPrimitive.RadioItemIndicator>\n <CheckIcon\n />\n </MenuPrimitive.RadioItemIndicator>\n </span>\n {children}\n </MenuPrimitive.RadioItem>\n )\n}\n\nfunction DropdownMenuSeparator({\n className,\n ...props\n}: MenuPrimitive.Separator.Props) {\n return (\n <MenuPrimitive.Separator\n data-slot=\"dropdown-menu-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\nfunction DropdownMenuShortcut({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"dropdown-menu-shortcut\"\n className={cn(\n \"ml-auto text-xs tracking-widest text-muted-foreground group-focus/dropdown-menu-item:text-accent-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n DropdownMenu,\n DropdownMenuPortal,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuLabel,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n}\n"]}
@@ -1,4 +1,49 @@
1
- export { HoverCard, HoverCardContent, HoverCardTrigger } from '../../chunk-7I7XYB7H.js';
2
- import '../../chunk-H6SOU4UG.js';
1
+ "use client";
2
+ import { PreviewCard } from '@base-ui/react/preview-card';
3
+ import { clsx } from 'clsx';
4
+ import { twMerge } from 'tailwind-merge';
5
+ import { jsx } from 'react/jsx-runtime';
6
+
7
+ function cn(...inputs) {
8
+ return twMerge(clsx(inputs));
9
+ }
10
+ function HoverCard({ ...props }) {
11
+ return /* @__PURE__ */ jsx(PreviewCard.Root, { "data-slot": "hover-card", ...props });
12
+ }
13
+ function HoverCardTrigger({ ...props }) {
14
+ return /* @__PURE__ */ jsx(PreviewCard.Trigger, { "data-slot": "hover-card-trigger", ...props });
15
+ }
16
+ function HoverCardContent({
17
+ className,
18
+ side = "bottom",
19
+ sideOffset = 4,
20
+ align = "center",
21
+ alignOffset = 4,
22
+ ...props
23
+ }) {
24
+ return /* @__PURE__ */ jsx(PreviewCard.Portal, { "data-slot": "hover-card-portal", children: /* @__PURE__ */ jsx(
25
+ PreviewCard.Positioner,
26
+ {
27
+ align,
28
+ alignOffset,
29
+ side,
30
+ sideOffset,
31
+ className: "isolate z-50",
32
+ children: /* @__PURE__ */ jsx(
33
+ PreviewCard.Popup,
34
+ {
35
+ "data-slot": "hover-card-content",
36
+ className: cn(
37
+ "z-50 w-64 origin-(--transform-origin) rounded-lg border-brutal border-foreground bg-popover p-2.5 text-sm text-popover-foreground shadow-brutal outline-hidden duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
38
+ className
39
+ ),
40
+ ...props
41
+ }
42
+ )
43
+ }
44
+ ) });
45
+ }
46
+
47
+ export { HoverCard, HoverCardContent, HoverCardTrigger };
3
48
  //# sourceMappingURL=hover-card.js.map
4
49
  //# sourceMappingURL=hover-card.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"hover-card.js"}
1
+ {"version":3,"sources":["../../../src/lib/utils.ts","../../../src/components/ui/hover-card.tsx"],"names":["PreviewCardPrimitive"],"mappings":";;;;;AAGO,SAAS,MAAM,MAAA,EAAsB;AAC1C,EAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAC,CAAA;AAC7B;ACCA,SAAS,SAAA,CAAU,EAAE,GAAG,KAAA,EAAM,EAAoC;AAChE,EAAA,2BAAQA,WAAA,CAAqB,IAAA,EAArB,EAA0B,WAAA,EAAU,YAAA,EAAc,GAAG,KAAA,EAAO,CAAA;AACtE;AAEA,SAAS,gBAAA,CAAiB,EAAE,GAAG,KAAA,EAAM,EAAuC;AAC1E,EAAA,2BACGA,WAAA,CAAqB,OAAA,EAArB,EAA6B,WAAA,EAAU,oBAAA,EAAsB,GAAG,KAAA,EAAO,CAAA;AAE5E;AAEA,SAAS,gBAAA,CAAiB;AAAA,EACxB,SAAA;AAAA,EACA,IAAA,GAAO,QAAA;AAAA,EACP,UAAA,GAAa,CAAA;AAAA,EACb,KAAA,GAAQ,QAAA;AAAA,EACR,WAAA,GAAc,CAAA;AAAA,EACd,GAAG;AACL,CAAA,EAIK;AACH,EAAA,uBACE,GAAA,CAACA,WAAA,CAAqB,MAAA,EAArB,EAA4B,aAAU,mBAAA,EACrC,QAAA,kBAAA,GAAA;AAAA,IAACA,WAAA,CAAqB,UAAA;AAAA,IAArB;AAAA,MACC,KAAA;AAAA,MACA,WAAA;AAAA,MACA,IAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA,EAAU,cAAA;AAAA,MAEV,QAAA,kBAAA,GAAA;AAAA,QAACA,WAAA,CAAqB,KAAA;AAAA,QAArB;AAAA,UACC,WAAA,EAAU,oBAAA;AAAA,UACV,SAAA,EAAW,EAAA;AAAA,YACT,yiBAAA;AAAA,YACA;AAAA,WACF;AAAA,UACC,GAAG;AAAA;AAAA;AACN;AAAA,GACF,EACF,CAAA;AAEJ","file":"hover-card.js","sourcesContent":["import { clsx, type ClassValue } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","\"use client\"\n\nimport { PreviewCard as PreviewCardPrimitive } from \"@base-ui/react/preview-card\"\n\nimport { cn } from \"../../lib/utils\"\n\nfunction HoverCard({ ...props }: PreviewCardPrimitive.Root.Props) {\n return <PreviewCardPrimitive.Root data-slot=\"hover-card\" {...props} />\n}\n\nfunction HoverCardTrigger({ ...props }: PreviewCardPrimitive.Trigger.Props) {\n return (\n <PreviewCardPrimitive.Trigger data-slot=\"hover-card-trigger\" {...props} />\n )\n}\n\nfunction HoverCardContent({\n className,\n side = \"bottom\",\n sideOffset = 4,\n align = \"center\",\n alignOffset = 4,\n ...props\n}: PreviewCardPrimitive.Popup.Props &\n Pick<\n PreviewCardPrimitive.Positioner.Props,\n \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\"\n >) {\n return (\n <PreviewCardPrimitive.Portal data-slot=\"hover-card-portal\">\n <PreviewCardPrimitive.Positioner\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n className=\"isolate z-50\"\n >\n <PreviewCardPrimitive.Popup\n data-slot=\"hover-card-content\"\n className={cn(\n \"z-50 w-64 origin-(--transform-origin) rounded-lg border-brutal border-foreground bg-popover p-2.5 text-sm text-popover-foreground shadow-brutal outline-hidden duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\",\n className\n )}\n {...props}\n />\n </PreviewCardPrimitive.Positioner>\n </PreviewCardPrimitive.Portal>\n )\n}\n\nexport { HoverCard, HoverCardTrigger, HoverCardContent }\n"]}
@@ -1,7 +1,228 @@
1
- export { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea } from '../../chunk-F7YWBVP6.js';
2
- import '../../chunk-B6UM5GHF.js';
3
- import '../../chunk-UL52C2UU.js';
4
- import '../../chunk-CY2FOBOD.js';
5
- import '../../chunk-H6SOU4UG.js';
1
+ "use client";
2
+ import { cva } from 'class-variance-authority';
3
+ import { clsx } from 'clsx';
4
+ import { twMerge } from 'tailwind-merge';
5
+ import { Button as Button$1 } from '@base-ui/react/button';
6
+ import { jsx } from 'react/jsx-runtime';
7
+ import { Input as Input$1 } from '@base-ui/react/input';
8
+
9
+ function cn(...inputs) {
10
+ return twMerge(clsx(inputs));
11
+ }
12
+ var buttonVariants = cva(
13
+ "group/button inline-flex shrink-0 items-center justify-center rounded-lg whitespace-nowrap font-bold transition-all duration-150 select-none outline-none disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
14
+ {
15
+ variants: {
16
+ variant: {
17
+ // Primary: Black bg, white text, offset shadow
18
+ default: "border-brutal border-foreground bg-primary text-primary-foreground shadow-brutal hover:-translate-x-0.5 hover:-translate-y-0.5 hover:shadow-brutal-lg active:translate-x-px active:translate-y-px active:shadow-brutal-sm",
19
+ // CTA: Mint green bg — the Bannerbear signature
20
+ cta: "border-brutal border-foreground bg-cta text-cta-foreground shadow-brutal hover:-translate-x-0.5 hover:-translate-y-0.5 hover:shadow-brutal-lg active:translate-x-px active:translate-y-px active:shadow-brutal-sm",
21
+ // Brand: Dynamic brand color bg
22
+ brand: "border-brutal border-foreground bg-brand text-brand-foreground shadow-brutal hover:-translate-x-0.5 hover:-translate-y-0.5 hover:shadow-brutal-lg active:translate-x-px active:translate-y-px active:shadow-brutal-sm",
23
+ // Outline: White bg, black border, offset shadow
24
+ outline: "border-brutal border-foreground bg-background text-foreground shadow-brutal hover:-translate-x-0.5 hover:-translate-y-0.5 hover:shadow-brutal-lg active:translate-x-px active:translate-y-px active:shadow-brutal-sm",
25
+ // Secondary: Light bg, border, smaller shadow
26
+ secondary: "border-brutal border-foreground bg-secondary text-secondary-foreground shadow-brutal-sm hover:-translate-x-0.5 hover:-translate-y-0.5 hover:shadow-brutal active:translate-x-px active:translate-y-px active:shadow-none",
27
+ // Ghost: No border/shadow, subtle hover
28
+ ghost: "hover:bg-secondary hover:text-foreground",
29
+ // Link: Text only
30
+ link: "text-foreground underline-offset-4 hover:underline",
31
+ // Destructive
32
+ destructive: "border-brutal border-destructive bg-destructive text-destructive-foreground shadow-brutal hover:-translate-x-0.5 hover:-translate-y-0.5 hover:shadow-brutal-lg active:translate-x-px active:translate-y-px active:shadow-brutal-sm",
33
+ // Nav: Thin border, no shadow (for nav Sign In buttons)
34
+ nav: "border border-foreground bg-background text-foreground hover:bg-foreground hover:text-background"
35
+ },
36
+ size: {
37
+ xs: "h-7 gap-1 px-2.5 text-xs",
38
+ sm: "h-8 gap-1.5 px-3 text-sm",
39
+ default: "h-10 gap-2 px-5 text-sm",
40
+ lg: "h-12 gap-2 px-7 text-base",
41
+ xl: "h-14 gap-2.5 px-9 text-lg",
42
+ icon: "size-10",
43
+ "icon-sm": "size-8",
44
+ "icon-lg": "size-12"
45
+ }
46
+ },
47
+ defaultVariants: {
48
+ variant: "default",
49
+ size: "default"
50
+ }
51
+ }
52
+ );
53
+ function Button({
54
+ className,
55
+ variant = "default",
56
+ size = "default",
57
+ ...props
58
+ }) {
59
+ return /* @__PURE__ */ jsx(
60
+ Button$1,
61
+ {
62
+ "data-slot": "button",
63
+ className: cn(buttonVariants({ variant, size, className })),
64
+ ...props
65
+ }
66
+ );
67
+ }
68
+ function Input({ className, type, ...props }) {
69
+ return /* @__PURE__ */ jsx(
70
+ Input$1,
71
+ {
72
+ type,
73
+ "data-slot": "input",
74
+ className: cn(
75
+ "h-10 w-full min-w-0 rounded-lg border-brutal border-foreground bg-background px-3 py-2 text-base font-medium shadow-brutal-sm transition-all outline-none placeholder:text-muted-foreground focus:shadow-brutal focus:-translate-x-0.5 focus:-translate-y-0.5 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive md:text-sm",
76
+ className
77
+ ),
78
+ ...props
79
+ }
80
+ );
81
+ }
82
+ function Textarea({ className, ...props }) {
83
+ return /* @__PURE__ */ jsx(
84
+ "textarea",
85
+ {
86
+ "data-slot": "textarea",
87
+ className: cn(
88
+ "flex field-sizing-content min-h-16 w-full rounded-lg border-brutal border-foreground bg-background px-2.5 py-2 text-base shadow-brutal-sm transition-all outline-none placeholder:text-muted-foreground hover:-translate-x-0.5 hover:-translate-y-0.5 hover:shadow-brutal focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:-translate-x-0.5 focus-visible:-translate-y-0.5 focus-visible:shadow-brutal disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm",
89
+ className
90
+ ),
91
+ ...props
92
+ }
93
+ );
94
+ }
95
+ function InputGroup({ className, ...props }) {
96
+ return /* @__PURE__ */ jsx(
97
+ "div",
98
+ {
99
+ "data-slot": "input-group",
100
+ role: "group",
101
+ className: cn(
102
+ "group/input-group relative flex h-8 w-full min-w-0 items-center rounded-lg border border-input transition-colors outline-none in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-disabled:bg-input/50 has-disabled:opacity-50 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-3 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>textarea]:h-auto dark:bg-input/30 dark:has-disabled:bg-input/80 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5",
103
+ className
104
+ ),
105
+ ...props
106
+ }
107
+ );
108
+ }
109
+ var inputGroupAddonVariants = cva(
110
+ "flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4",
111
+ {
112
+ variants: {
113
+ align: {
114
+ "inline-start": "order-first pl-2 has-[>button]:ml-[-0.3rem] has-[>kbd]:ml-[-0.15rem]",
115
+ "inline-end": "order-last pr-2 has-[>button]:mr-[-0.3rem] has-[>kbd]:mr-[-0.15rem]",
116
+ "block-start": "order-first w-full justify-start px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2",
117
+ "block-end": "order-last w-full justify-start px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2"
118
+ }
119
+ },
120
+ defaultVariants: {
121
+ align: "inline-start"
122
+ }
123
+ }
124
+ );
125
+ function InputGroupAddon({
126
+ className,
127
+ align = "inline-start",
128
+ ...props
129
+ }) {
130
+ return /* @__PURE__ */ jsx(
131
+ "div",
132
+ {
133
+ role: "group",
134
+ "data-slot": "input-group-addon",
135
+ "data-align": align,
136
+ className: cn(inputGroupAddonVariants({ align }), className),
137
+ onClick: (e) => {
138
+ if (e.target.closest("button")) {
139
+ return;
140
+ }
141
+ e.currentTarget.parentElement?.querySelector("input")?.focus();
142
+ },
143
+ ...props
144
+ }
145
+ );
146
+ }
147
+ var inputGroupButtonVariants = cva(
148
+ "flex items-center gap-2 text-sm shadow-none",
149
+ {
150
+ variants: {
151
+ size: {
152
+ xs: "h-6 gap-1 rounded-[calc(var(--radius)-3px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5",
153
+ sm: "",
154
+ "icon-xs": "size-6 rounded-[calc(var(--radius)-3px)] p-0 has-[>svg]:p-0",
155
+ "icon-sm": "size-8 p-0 has-[>svg]:p-0"
156
+ }
157
+ },
158
+ defaultVariants: {
159
+ size: "xs"
160
+ }
161
+ }
162
+ );
163
+ function InputGroupButton({
164
+ className,
165
+ type = "button",
166
+ variant = "ghost",
167
+ size = "xs",
168
+ ...props
169
+ }) {
170
+ return /* @__PURE__ */ jsx(
171
+ Button,
172
+ {
173
+ type,
174
+ "data-size": size,
175
+ variant,
176
+ className: cn(inputGroupButtonVariants({ size }), className),
177
+ ...props
178
+ }
179
+ );
180
+ }
181
+ function InputGroupText({ className, ...props }) {
182
+ return /* @__PURE__ */ jsx(
183
+ "span",
184
+ {
185
+ className: cn(
186
+ "flex items-center gap-2 text-sm text-muted-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4",
187
+ className
188
+ ),
189
+ ...props
190
+ }
191
+ );
192
+ }
193
+ function InputGroupInput({
194
+ className,
195
+ ...props
196
+ }) {
197
+ return /* @__PURE__ */ jsx(
198
+ Input,
199
+ {
200
+ "data-slot": "input-group-control",
201
+ className: cn(
202
+ "flex-1 rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent",
203
+ className
204
+ ),
205
+ ...props
206
+ }
207
+ );
208
+ }
209
+ function InputGroupTextarea({
210
+ className,
211
+ ...props
212
+ }) {
213
+ return /* @__PURE__ */ jsx(
214
+ Textarea,
215
+ {
216
+ "data-slot": "input-group-control",
217
+ className: cn(
218
+ "flex-1 resize-none rounded-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent",
219
+ className
220
+ ),
221
+ ...props
222
+ }
223
+ );
224
+ }
225
+
226
+ export { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea };
6
227
  //# sourceMappingURL=input-group.js.map
7
228
  //# sourceMappingURL=input-group.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"input-group.js"}
1
+ {"version":3,"sources":["../../../src/lib/utils.ts","../../../src/components/ui/button.tsx","../../../src/components/ui/input.tsx","../../../src/components/ui/textarea.tsx","../../../src/components/ui/input-group.tsx"],"names":["ButtonPrimitive","jsx","InputPrimitive","cva"],"mappings":"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","file":"input-group.js","sourcesContent":["import { clsx, type ClassValue } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","\"use client\";\n\nimport { Button as ButtonPrimitive } from \"@base-ui/react/button\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst buttonVariants = cva(\n \"group/button inline-flex shrink-0 items-center justify-center rounded-lg whitespace-nowrap font-bold transition-all duration-150 select-none outline-none disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n variant: {\n // Primary: Black bg, white text, offset shadow\n default:\n \"border-brutal border-foreground bg-primary text-primary-foreground shadow-brutal hover:-translate-x-0.5 hover:-translate-y-0.5 hover:shadow-brutal-lg active:translate-x-px active:translate-y-px active:shadow-brutal-sm\",\n // CTA: Mint green bg — the Bannerbear signature\n cta: \"border-brutal border-foreground bg-cta text-cta-foreground shadow-brutal hover:-translate-x-0.5 hover:-translate-y-0.5 hover:shadow-brutal-lg active:translate-x-px active:translate-y-px active:shadow-brutal-sm\",\n // Brand: Dynamic brand color bg\n brand:\n \"border-brutal border-foreground bg-brand text-brand-foreground shadow-brutal hover:-translate-x-0.5 hover:-translate-y-0.5 hover:shadow-brutal-lg active:translate-x-px active:translate-y-px active:shadow-brutal-sm\",\n // Outline: White bg, black border, offset shadow\n outline:\n \"border-brutal border-foreground bg-background text-foreground shadow-brutal hover:-translate-x-0.5 hover:-translate-y-0.5 hover:shadow-brutal-lg active:translate-x-px active:translate-y-px active:shadow-brutal-sm\",\n // Secondary: Light bg, border, smaller shadow\n secondary:\n \"border-brutal border-foreground bg-secondary text-secondary-foreground shadow-brutal-sm hover:-translate-x-0.5 hover:-translate-y-0.5 hover:shadow-brutal active:translate-x-px active:translate-y-px active:shadow-none\",\n // Ghost: No border/shadow, subtle hover\n ghost: \"hover:bg-secondary hover:text-foreground\",\n // Link: Text only\n link: \"text-foreground underline-offset-4 hover:underline\",\n // Destructive\n destructive:\n \"border-brutal border-destructive bg-destructive text-destructive-foreground shadow-brutal hover:-translate-x-0.5 hover:-translate-y-0.5 hover:shadow-brutal-lg active:translate-x-px active:translate-y-px active:shadow-brutal-sm\",\n // Nav: Thin border, no shadow (for nav Sign In buttons)\n nav: \"border border-foreground bg-background text-foreground hover:bg-foreground hover:text-background\",\n },\n size: {\n xs: \"h-7 gap-1 px-2.5 text-xs\",\n sm: \"h-8 gap-1.5 px-3 text-sm\",\n default: \"h-10 gap-2 px-5 text-sm\",\n lg: \"h-12 gap-2 px-7 text-base\",\n xl: \"h-14 gap-2.5 px-9 text-lg\",\n icon: \"size-10\",\n \"icon-sm\": \"size-8\",\n \"icon-lg\": \"size-12\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n);\n\nfunction Button({\n className,\n variant = \"default\",\n size = \"default\",\n ...props\n}: ButtonPrimitive.Props & VariantProps<typeof buttonVariants>) {\n return (\n <ButtonPrimitive\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n );\n}\n\nexport { Button, buttonVariants };\n","import * as React from \"react\";\nimport { Input as InputPrimitive } from \"@base-ui/react/input\";\n\nimport { cn } from \"../../lib/utils\";\n\nfunction Input({ className, type, ...props }: React.ComponentProps<\"input\">) {\n return (\n <InputPrimitive\n type={type}\n data-slot=\"input\"\n className={cn(\n \"h-10 w-full min-w-0 rounded-lg border-brutal border-foreground bg-background px-3 py-2 text-base font-medium shadow-brutal-sm transition-all outline-none placeholder:text-muted-foreground focus:shadow-brutal focus:-translate-x-0.5 focus:-translate-y-0.5 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive md:text-sm\",\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n","import * as React from \"react\"\n\nimport { cn } from \"../../lib/utils\"\n\nfunction Textarea({ className, ...props }: React.ComponentProps<\"textarea\">) {\n return (\n <textarea\n data-slot=\"textarea\"\n className={cn(\n \"flex field-sizing-content min-h-16 w-full rounded-lg border-brutal border-foreground bg-background px-2.5 py-2 text-base shadow-brutal-sm transition-all outline-none placeholder:text-muted-foreground hover:-translate-x-0.5 hover:-translate-y-0.5 hover:shadow-brutal focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:-translate-x-0.5 focus-visible:-translate-y-0.5 focus-visible:shadow-brutal disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Textarea }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../../lib/utils\"\nimport { Button } from \"./button\"\nimport { Input } from \"./input\"\nimport { Textarea } from \"./textarea\"\n\nfunction InputGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"input-group\"\n role=\"group\"\n className={cn(\n \"group/input-group relative flex h-8 w-full min-w-0 items-center rounded-lg border border-input transition-colors outline-none in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-disabled:bg-input/50 has-disabled:opacity-50 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-3 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>textarea]:h-auto dark:bg-input/30 dark:has-disabled:bg-input/80 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5\",\n className\n )}\n {...props}\n />\n )\n}\n\nconst inputGroupAddonVariants = cva(\n \"flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n align: {\n \"inline-start\":\n \"order-first pl-2 has-[>button]:ml-[-0.3rem] has-[>kbd]:ml-[-0.15rem]\",\n \"inline-end\":\n \"order-last pr-2 has-[>button]:mr-[-0.3rem] has-[>kbd]:mr-[-0.15rem]\",\n \"block-start\":\n \"order-first w-full justify-start px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2\",\n \"block-end\":\n \"order-last w-full justify-start px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2\",\n },\n },\n defaultVariants: {\n align: \"inline-start\",\n },\n }\n)\n\nfunction InputGroupAddon({\n className,\n align = \"inline-start\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof inputGroupAddonVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"input-group-addon\"\n data-align={align}\n className={cn(inputGroupAddonVariants({ align }), className)}\n onClick={(e) => {\n if ((e.target as HTMLElement).closest(\"button\")) {\n return\n }\n e.currentTarget.parentElement?.querySelector(\"input\")?.focus()\n }}\n {...props}\n />\n )\n}\n\nconst inputGroupButtonVariants = cva(\n \"flex items-center gap-2 text-sm shadow-none\",\n {\n variants: {\n size: {\n xs: \"h-6 gap-1 rounded-[calc(var(--radius)-3px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5\",\n sm: \"\",\n \"icon-xs\":\n \"size-6 rounded-[calc(var(--radius)-3px)] p-0 has-[>svg]:p-0\",\n \"icon-sm\": \"size-8 p-0 has-[>svg]:p-0\",\n },\n },\n defaultVariants: {\n size: \"xs\",\n },\n }\n)\n\nfunction InputGroupButton({\n className,\n type = \"button\",\n variant = \"ghost\",\n size = \"xs\",\n ...props\n}: Omit<React.ComponentProps<typeof Button>, \"size\" | \"type\"> &\n VariantProps<typeof inputGroupButtonVariants> & {\n type?: \"button\" | \"submit\" | \"reset\"\n }) {\n return (\n <Button\n type={type}\n data-size={size}\n variant={variant}\n className={cn(inputGroupButtonVariants({ size }), className)}\n {...props}\n />\n )\n}\n\nfunction InputGroupText({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n className={cn(\n \"flex items-center gap-2 text-sm text-muted-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction InputGroupInput({\n className,\n ...props\n}: React.ComponentProps<\"input\">) {\n return (\n <Input\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction InputGroupTextarea({\n className,\n ...props\n}: React.ComponentProps<\"textarea\">) {\n return (\n <Textarea\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 resize-none rounded-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupText,\n InputGroupInput,\n InputGroupTextarea,\n}\n"]}
@@ -1,4 +1,28 @@
1
- export { Input } from '../../chunk-UL52C2UU.js';
2
- import '../../chunk-H6SOU4UG.js';
1
+ "use client";
2
+ import { Input as Input$1 } from '@base-ui/react/input';
3
+ import { clsx } from 'clsx';
4
+ import { twMerge } from 'tailwind-merge';
5
+ import { jsx } from 'react/jsx-runtime';
6
+
7
+ // src/components/ui/input.tsx
8
+ function cn(...inputs) {
9
+ return twMerge(clsx(inputs));
10
+ }
11
+ function Input({ className, type, ...props }) {
12
+ return /* @__PURE__ */ jsx(
13
+ Input$1,
14
+ {
15
+ type,
16
+ "data-slot": "input",
17
+ className: cn(
18
+ "h-10 w-full min-w-0 rounded-lg border-brutal border-foreground bg-background px-3 py-2 text-base font-medium shadow-brutal-sm transition-all outline-none placeholder:text-muted-foreground focus:shadow-brutal focus:-translate-x-0.5 focus:-translate-y-0.5 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive md:text-sm",
19
+ className
20
+ ),
21
+ ...props
22
+ }
23
+ );
24
+ }
25
+
26
+ export { Input };
3
27
  //# sourceMappingURL=input.js.map
4
28
  //# sourceMappingURL=input.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"input.js"}
1
+ {"version":3,"sources":["../../../src/lib/utils.ts","../../../src/components/ui/input.tsx"],"names":["InputPrimitive"],"mappings":";;;;;;AAGO,SAAS,MAAM,MAAA,EAAsB;AAC1C,EAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAC,CAAA;AAC7B;ACAA,SAAS,MAAM,EAAE,SAAA,EAAW,IAAA,EAAM,GAAG,OAAM,EAAkC;AAC3E,EAAA,uBACE,GAAA;AAAA,IAACA,OAAA;AAAA,IAAA;AAAA,MACC,IAAA;AAAA,MACA,WAAA,EAAU,OAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,2VAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ","file":"input.js","sourcesContent":["import { clsx, type ClassValue } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","import * as React from \"react\";\nimport { Input as InputPrimitive } from \"@base-ui/react/input\";\n\nimport { cn } from \"../../lib/utils\";\n\nfunction Input({ className, type, ...props }: React.ComponentProps<\"input\">) {\n return (\n <InputPrimitive\n type={type}\n data-slot=\"input\"\n className={cn(\n \"h-10 w-full min-w-0 rounded-lg border-brutal border-foreground bg-background px-3 py-2 text-base font-medium shadow-brutal-sm transition-all outline-none placeholder:text-muted-foreground focus:shadow-brutal focus:-translate-x-0.5 focus:-translate-y-0.5 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive md:text-sm\",\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n"]}