@prototyperco/ui 0.5.0-alpha.0 → 0.5.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 (349) hide show
  1. package/dist/components/accordion.cjs +154 -0
  2. package/dist/components/accordion.cjs.map +1 -0
  3. package/dist/components/accordion.d.cts +14 -0
  4. package/dist/components/accordion.d.ts +14 -0
  5. package/dist/components/accordion.js +127 -0
  6. package/dist/components/accordion.js.map +1 -0
  7. package/dist/components/alert-dialog.cjs +324 -0
  8. package/dist/components/alert-dialog.cjs.map +1 -0
  9. package/dist/components/alert-dialog.d.cts +30 -0
  10. package/dist/components/alert-dialog.d.ts +30 -0
  11. package/dist/components/alert-dialog.js +289 -0
  12. package/dist/components/alert-dialog.js.map +1 -0
  13. package/dist/components/alert.cjs +105 -0
  14. package/dist/components/alert.cjs.map +1 -0
  15. package/dist/components/alert.d.cts +17 -0
  16. package/dist/components/alert.d.ts +17 -0
  17. package/dist/components/alert.js +78 -0
  18. package/dist/components/alert.js.map +1 -0
  19. package/dist/components/autocomplete.cjs +512 -0
  20. package/dist/components/autocomplete.cjs.map +1 -0
  21. package/dist/components/autocomplete.d.cts +31 -0
  22. package/dist/components/autocomplete.d.ts +31 -0
  23. package/dist/components/autocomplete.js +472 -0
  24. package/dist/components/autocomplete.js.map +1 -0
  25. package/dist/components/avatar.cjs +144 -0
  26. package/dist/components/avatar.cjs.map +1 -0
  27. package/dist/components/avatar.d.cts +18 -0
  28. package/dist/components/avatar.d.ts +18 -0
  29. package/dist/components/avatar.js +115 -0
  30. package/dist/components/avatar.js.map +1 -0
  31. package/dist/components/badge.cjs +81 -0
  32. package/dist/components/badge.cjs.map +1 -0
  33. package/dist/components/badge.d.cts +13 -0
  34. package/dist/components/badge.d.ts +13 -0
  35. package/dist/components/badge.js +56 -0
  36. package/dist/components/badge.js.map +1 -0
  37. package/dist/components/breadcrumb.cjs +142 -0
  38. package/dist/components/breadcrumb.cjs.map +1 -0
  39. package/dist/components/breadcrumb.d.cts +20 -0
  40. package/dist/components/breadcrumb.d.ts +20 -0
  41. package/dist/components/breadcrumb.js +112 -0
  42. package/dist/components/breadcrumb.js.map +1 -0
  43. package/dist/components/button.cjs +145 -0
  44. package/dist/components/button.cjs.map +1 -0
  45. package/dist/components/button.d.cts +16 -0
  46. package/dist/components/button.d.ts +16 -0
  47. package/dist/components/button.js +120 -0
  48. package/dist/components/button.js.map +1 -0
  49. package/dist/components/card.cjs +141 -0
  50. package/dist/components/card.cjs.map +1 -0
  51. package/dist/components/card.d.cts +23 -0
  52. package/dist/components/card.d.ts +23 -0
  53. package/dist/components/card.js +111 -0
  54. package/dist/components/card.js.map +1 -0
  55. package/dist/components/checkbox-group.cjs +56 -0
  56. package/dist/components/checkbox-group.cjs.map +1 -0
  57. package/dist/components/checkbox-group.d.cts +8 -0
  58. package/dist/components/checkbox-group.d.ts +8 -0
  59. package/dist/components/checkbox-group.js +32 -0
  60. package/dist/components/checkbox-group.js.map +1 -0
  61. package/dist/components/checkbox.cjs +152 -0
  62. package/dist/components/checkbox.cjs.map +1 -0
  63. package/dist/components/checkbox.d.cts +12 -0
  64. package/dist/components/checkbox.d.ts +12 -0
  65. package/dist/components/checkbox.js +126 -0
  66. package/dist/components/checkbox.js.map +1 -0
  67. package/dist/components/collapsible.cjs +89 -0
  68. package/dist/components/collapsible.cjs.map +1 -0
  69. package/dist/components/collapsible.d.cts +12 -0
  70. package/dist/components/collapsible.d.ts +12 -0
  71. package/dist/components/collapsible.js +63 -0
  72. package/dist/components/collapsible.js.map +1 -0
  73. package/dist/components/color-picker.cjs +983 -0
  74. package/dist/components/color-picker.cjs.map +1 -0
  75. package/dist/components/color-picker.d.cts +41 -0
  76. package/dist/components/color-picker.d.ts +41 -0
  77. package/dist/components/color-picker.js +939 -0
  78. package/dist/components/color-picker.js.map +1 -0
  79. package/dist/components/columns.cjs +163 -0
  80. package/dist/components/columns.cjs.map +1 -0
  81. package/dist/components/columns.d.cts +16 -0
  82. package/dist/components/columns.d.ts +16 -0
  83. package/dist/components/columns.js +136 -0
  84. package/dist/components/columns.js.map +1 -0
  85. package/dist/components/combobox.cjs +633 -0
  86. package/dist/components/combobox.cjs.map +1 -0
  87. package/dist/components/combobox.d.cts +40 -0
  88. package/dist/components/combobox.d.ts +40 -0
  89. package/dist/components/combobox.js +576 -0
  90. package/dist/components/combobox.js.map +1 -0
  91. package/dist/components/command-palette.cjs +370 -0
  92. package/dist/components/command-palette.cjs.map +1 -0
  93. package/dist/components/command-palette.d.cts +42 -0
  94. package/dist/components/command-palette.d.ts +42 -0
  95. package/dist/components/command-palette.js +329 -0
  96. package/dist/components/command-palette.js.map +1 -0
  97. package/dist/components/container.cjs +80 -0
  98. package/dist/components/container.cjs.map +1 -0
  99. package/dist/components/container.d.cts +27 -0
  100. package/dist/components/container.d.ts +27 -0
  101. package/dist/components/container.js +54 -0
  102. package/dist/components/container.js.map +1 -0
  103. package/dist/components/context-menu.cjs +309 -0
  104. package/dist/components/context-menu.cjs.map +1 -0
  105. package/dist/components/context-menu.d.cts +37 -0
  106. package/dist/components/context-menu.d.ts +37 -0
  107. package/dist/components/context-menu.js +271 -0
  108. package/dist/components/context-menu.js.map +1 -0
  109. package/dist/components/dialog.cjs +319 -0
  110. package/dist/components/dialog.cjs.map +1 -0
  111. package/dist/components/dialog.d.cts +32 -0
  112. package/dist/components/dialog.d.ts +32 -0
  113. package/dist/components/dialog.js +285 -0
  114. package/dist/components/dialog.js.map +1 -0
  115. package/dist/components/drawer.cjs +185 -0
  116. package/dist/components/drawer.cjs.map +1 -0
  117. package/dist/components/drawer.d.cts +32 -0
  118. package/dist/components/drawer.d.ts +32 -0
  119. package/dist/components/drawer.js +151 -0
  120. package/dist/components/drawer.js.map +1 -0
  121. package/dist/components/field.cjs +334 -0
  122. package/dist/components/field.cjs.map +1 -0
  123. package/dist/components/field.d.cts +39 -0
  124. package/dist/components/field.d.ts +39 -0
  125. package/dist/components/field.js +299 -0
  126. package/dist/components/field.js.map +1 -0
  127. package/dist/components/fieldset.cjs +75 -0
  128. package/dist/components/fieldset.cjs.map +1 -0
  129. package/dist/components/fieldset.d.cts +12 -0
  130. package/dist/components/fieldset.d.ts +12 -0
  131. package/dist/components/fieldset.js +50 -0
  132. package/dist/components/fieldset.js.map +1 -0
  133. package/dist/components/form.cjs +52 -0
  134. package/dist/components/form.cjs.map +1 -0
  135. package/dist/components/form.d.cts +8 -0
  136. package/dist/components/form.d.ts +8 -0
  137. package/dist/components/form.js +28 -0
  138. package/dist/components/form.js.map +1 -0
  139. package/dist/components/input-group.cjs +338 -0
  140. package/dist/components/input-group.cjs.map +1 -0
  141. package/dist/components/input-group.d.cts +27 -0
  142. package/dist/components/input-group.d.ts +27 -0
  143. package/dist/components/input-group.js +307 -0
  144. package/dist/components/input-group.js.map +1 -0
  145. package/dist/components/input.cjs +63 -0
  146. package/dist/components/input.cjs.map +1 -0
  147. package/dist/components/input.d.cts +8 -0
  148. package/dist/components/input.d.ts +8 -0
  149. package/dist/components/input.js +39 -0
  150. package/dist/components/input.js.map +1 -0
  151. package/dist/components/label.cjs +54 -0
  152. package/dist/components/label.cjs.map +1 -0
  153. package/dist/components/label.d.cts +8 -0
  154. package/dist/components/label.d.ts +8 -0
  155. package/dist/components/label.js +28 -0
  156. package/dist/components/label.js.map +1 -0
  157. package/dist/components/menu.cjs +305 -0
  158. package/dist/components/menu.cjs.map +1 -0
  159. package/dist/components/menu.d.cts +37 -0
  160. package/dist/components/menu.d.ts +37 -0
  161. package/dist/components/menu.js +267 -0
  162. package/dist/components/menu.js.map +1 -0
  163. package/dist/components/menubar.cjs +503 -0
  164. package/dist/components/menubar.cjs.map +1 -0
  165. package/dist/components/menubar.d.cts +37 -0
  166. package/dist/components/menubar.d.ts +37 -0
  167. package/dist/components/menubar.js +464 -0
  168. package/dist/components/menubar.js.map +1 -0
  169. package/dist/components/meter.cjs +152 -0
  170. package/dist/components/meter.cjs.map +1 -0
  171. package/dist/components/meter.d.cts +23 -0
  172. package/dist/components/meter.d.ts +23 -0
  173. package/dist/components/meter.js +122 -0
  174. package/dist/components/meter.js.map +1 -0
  175. package/dist/components/navigation-menu.cjs +315 -0
  176. package/dist/components/navigation-menu.cjs.map +1 -0
  177. package/dist/components/navigation-menu.d.cts +22 -0
  178. package/dist/components/navigation-menu.d.ts +22 -0
  179. package/dist/components/navigation-menu.js +283 -0
  180. package/dist/components/navigation-menu.js.map +1 -0
  181. package/dist/components/number-field.cjs +217 -0
  182. package/dist/components/number-field.cjs.map +1 -0
  183. package/dist/components/number-field.d.cts +23 -0
  184. package/dist/components/number-field.d.ts +23 -0
  185. package/dist/components/number-field.js +185 -0
  186. package/dist/components/number-field.js.map +1 -0
  187. package/dist/components/popover.cjs +125 -0
  188. package/dist/components/popover.cjs.map +1 -0
  189. package/dist/components/popover.d.cts +16 -0
  190. package/dist/components/popover.d.ts +16 -0
  191. package/dist/components/popover.js +96 -0
  192. package/dist/components/popover.js.map +1 -0
  193. package/dist/components/preview-card.cjs +86 -0
  194. package/dist/components/preview-card.cjs.map +1 -0
  195. package/dist/components/preview-card.d.cts +12 -0
  196. package/dist/components/preview-card.d.ts +12 -0
  197. package/dist/components/preview-card.js +60 -0
  198. package/dist/components/preview-card.js.map +1 -0
  199. package/dist/components/progress.cjs +167 -0
  200. package/dist/components/progress.cjs.map +1 -0
  201. package/dist/components/progress.d.cts +23 -0
  202. package/dist/components/progress.d.ts +23 -0
  203. package/dist/components/progress.js +137 -0
  204. package/dist/components/progress.js.map +1 -0
  205. package/dist/components/radio-group.cjs +98 -0
  206. package/dist/components/radio-group.cjs.map +1 -0
  207. package/dist/components/radio-group.d.cts +11 -0
  208. package/dist/components/radio-group.d.ts +11 -0
  209. package/dist/components/radio-group.js +73 -0
  210. package/dist/components/radio-group.js.map +1 -0
  211. package/dist/components/resizable-panel.cjs +91 -0
  212. package/dist/components/resizable-panel.cjs.map +1 -0
  213. package/dist/components/resizable-panel.d.cts +14 -0
  214. package/dist/components/resizable-panel.d.ts +14 -0
  215. package/dist/components/resizable-panel.js +69 -0
  216. package/dist/components/resizable-panel.js.map +1 -0
  217. package/dist/components/row.cjs +94 -0
  218. package/dist/components/row.cjs.map +1 -0
  219. package/dist/components/row.d.cts +27 -0
  220. package/dist/components/row.d.ts +27 -0
  221. package/dist/components/row.js +68 -0
  222. package/dist/components/row.js.map +1 -0
  223. package/dist/components/scroll-area.cjs +96 -0
  224. package/dist/components/scroll-area.cjs.map +1 -0
  225. package/dist/components/scroll-area.d.cts +10 -0
  226. package/dist/components/scroll-area.d.ts +10 -0
  227. package/dist/components/scroll-area.js +71 -0
  228. package/dist/components/scroll-area.js.map +1 -0
  229. package/dist/components/section.cjs +104 -0
  230. package/dist/components/section.cjs.map +1 -0
  231. package/dist/components/section.d.cts +26 -0
  232. package/dist/components/section.d.ts +26 -0
  233. package/dist/components/section.js +79 -0
  234. package/dist/components/section.js.map +1 -0
  235. package/dist/components/segmented-control.cjs +117 -0
  236. package/dist/components/segmented-control.cjs.map +1 -0
  237. package/dist/components/segmented-control.d.cts +16 -0
  238. package/dist/components/segmented-control.d.ts +16 -0
  239. package/dist/components/segmented-control.js +91 -0
  240. package/dist/components/segmented-control.js.map +1 -0
  241. package/dist/components/select.cjs +273 -0
  242. package/dist/components/select.cjs.map +1 -0
  243. package/dist/components/select.d.cts +26 -0
  244. package/dist/components/select.d.ts +26 -0
  245. package/dist/components/select.js +239 -0
  246. package/dist/components/select.js.map +1 -0
  247. package/dist/components/separator.cjs +60 -0
  248. package/dist/components/separator.cjs.map +1 -0
  249. package/dist/components/separator.d.cts +8 -0
  250. package/dist/components/separator.d.ts +8 -0
  251. package/dist/components/separator.js +36 -0
  252. package/dist/components/separator.js.map +1 -0
  253. package/dist/components/skeleton.cjs +54 -0
  254. package/dist/components/skeleton.cjs.map +1 -0
  255. package/dist/components/skeleton.d.cts +8 -0
  256. package/dist/components/skeleton.d.ts +8 -0
  257. package/dist/components/skeleton.js +28 -0
  258. package/dist/components/skeleton.js.map +1 -0
  259. package/dist/components/slider.cjs +221 -0
  260. package/dist/components/slider.cjs.map +1 -0
  261. package/dist/components/slider.d.cts +16 -0
  262. package/dist/components/slider.d.ts +16 -0
  263. package/dist/components/slider.js +182 -0
  264. package/dist/components/slider.js.map +1 -0
  265. package/dist/components/spinner.cjs +97 -0
  266. package/dist/components/spinner.cjs.map +1 -0
  267. package/dist/components/spinner.d.cts +13 -0
  268. package/dist/components/spinner.d.ts +13 -0
  269. package/dist/components/spinner.js +72 -0
  270. package/dist/components/spinner.js.map +1 -0
  271. package/dist/components/switch.cjs +177 -0
  272. package/dist/components/switch.cjs.map +1 -0
  273. package/dist/components/switch.d.cts +22 -0
  274. package/dist/components/switch.d.ts +22 -0
  275. package/dist/components/switch.js +139 -0
  276. package/dist/components/switch.js.map +1 -0
  277. package/dist/components/tabs.cjs +123 -0
  278. package/dist/components/tabs.cjs.map +1 -0
  279. package/dist/components/tabs.d.cts +19 -0
  280. package/dist/components/tabs.d.ts +19 -0
  281. package/dist/components/tabs.js +95 -0
  282. package/dist/components/tabs.js.map +1 -0
  283. package/dist/components/text-field.cjs +290 -0
  284. package/dist/components/text-field.cjs.map +1 -0
  285. package/dist/components/text-field.d.cts +27 -0
  286. package/dist/components/text-field.d.ts +27 -0
  287. package/dist/components/text-field.js +262 -0
  288. package/dist/components/text-field.js.map +1 -0
  289. package/dist/components/textarea.cjs +60 -0
  290. package/dist/components/textarea.cjs.map +1 -0
  291. package/dist/components/textarea.d.cts +8 -0
  292. package/dist/components/textarea.d.ts +8 -0
  293. package/dist/components/textarea.js +34 -0
  294. package/dist/components/textarea.js.map +1 -0
  295. package/dist/components/toast.cjs +167 -0
  296. package/dist/components/toast.cjs.map +1 -0
  297. package/dist/components/toast.d.cts +28 -0
  298. package/dist/components/toast.d.ts +28 -0
  299. package/dist/components/toast.js +147 -0
  300. package/dist/components/toast.js.map +1 -0
  301. package/dist/components/toggle-group.cjs +171 -0
  302. package/dist/components/toggle-group.cjs.map +1 -0
  303. package/dist/components/toggle-group.d.cts +18 -0
  304. package/dist/components/toggle-group.d.ts +18 -0
  305. package/dist/components/toggle-group.js +136 -0
  306. package/dist/components/toggle-group.js.map +1 -0
  307. package/dist/components/toggle.cjs +92 -0
  308. package/dist/components/toggle.cjs.map +1 -0
  309. package/dist/components/toggle.d.cts +14 -0
  310. package/dist/components/toggle.d.ts +14 -0
  311. package/dist/components/toggle.js +67 -0
  312. package/dist/components/toggle.js.map +1 -0
  313. package/dist/components/toolbar.cjs +160 -0
  314. package/dist/components/toolbar.cjs.map +1 -0
  315. package/dist/components/toolbar.d.cts +14 -0
  316. package/dist/components/toolbar.d.ts +14 -0
  317. package/dist/components/toolbar.js +131 -0
  318. package/dist/components/toolbar.js.map +1 -0
  319. package/dist/components/tooltip.cjs +116 -0
  320. package/dist/components/tooltip.cjs.map +1 -0
  321. package/dist/components/tooltip.d.cts +13 -0
  322. package/dist/components/tooltip.d.ts +13 -0
  323. package/dist/components/tooltip.js +89 -0
  324. package/dist/components/tooltip.js.map +1 -0
  325. package/dist/components/tree-view.cjs +472 -0
  326. package/dist/components/tree-view.cjs.map +1 -0
  327. package/dist/components/tree-view.d.cts +33 -0
  328. package/dist/components/tree-view.d.ts +33 -0
  329. package/dist/components/tree-view.js +435 -0
  330. package/dist/components/tree-view.js.map +1 -0
  331. package/dist/index.cjs +11 -14
  332. package/dist/index.cjs.map +1 -1
  333. package/dist/index.d.cts +101 -903
  334. package/dist/index.d.ts +101 -903
  335. package/dist/index.js +4 -6
  336. package/dist/index.js.map +1 -1
  337. package/dist/lib/color-utils.cjs +315 -0
  338. package/dist/lib/color-utils.cjs.map +1 -0
  339. package/dist/lib/color-utils.d.cts +24 -0
  340. package/dist/lib/color-utils.d.ts +24 -0
  341. package/dist/lib/color-utils.js +280 -0
  342. package/dist/lib/color-utils.js.map +1 -0
  343. package/dist/lib/utils.cjs +35 -0
  344. package/dist/lib/utils.cjs.map +1 -0
  345. package/dist/lib/utils.d.cts +5 -0
  346. package/dist/lib/utils.d.ts +5 -0
  347. package/dist/lib/utils.js +10 -0
  348. package/dist/lib/utils.js.map +1 -0
  349. package/package.json +24 -5
@@ -0,0 +1,576 @@
1
+ "use client";
2
+
3
+ // src/components/combobox.tsx
4
+ import * as React from "react";
5
+ import { Combobox as ComboboxPrimitive } from "@base-ui/react/combobox";
6
+ import { CheckIcon, ChevronDownIcon, XIcon } from "lucide-react";
7
+
8
+ // src/lib/utils.ts
9
+ import { clsx } from "clsx";
10
+ import { twMerge } from "tailwind-merge";
11
+ function cn(...inputs) {
12
+ return twMerge(clsx(inputs));
13
+ }
14
+
15
+ // src/components/input-group.tsx
16
+ import { cva as cva2 } from "class-variance-authority";
17
+
18
+ // src/components/button.tsx
19
+ import { Button as ButtonPrimitive } from "@base-ui/react/button";
20
+ import { cva } from "class-variance-authority";
21
+ import { jsx } from "react/jsx-runtime";
22
+ var buttonVariants = cva(
23
+ [
24
+ "inline-flex items-center justify-center whitespace-nowrap rounded-lg text-sm font-medium",
25
+ "transform-gpu transition-[color,background-color,border-color,box-shadow,opacity,transform] duration-150 ease-smooth",
26
+ "motion-reduce:transition-none",
27
+ "disabled:status-disabled",
28
+ "focus-visible:focus-ring",
29
+ "[&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0",
30
+ "shrink-0 group/button select-none no-highlight"
31
+ ],
32
+ {
33
+ variants: {
34
+ variant: {
35
+ default: [
36
+ // Base styles
37
+ "relative rounded-lg overflow-visible shadow-surface border border-primary dark:border-primary-dark",
38
+ "isolate text-primary-foreground [text-shadow:_0_1px_2px_oklch(0%_0_0_/_30%)]",
39
+ "[&>*]:relative [&>*]:z-[2]",
40
+ // Combined gradient layer with primary colors
41
+ "before:pointer-events-none before:absolute before:inset-[-0.5px] before:rounded-[inherit]",
42
+ "before:bg-gradient-to-br before:from-primary-light before:via-primary-middle before:to-primary-dark",
43
+ "before:dark:from-primary-light before:dark:via-primary-middle before:dark:to-primary-dark",
44
+ "before:z-[-1]",
45
+ // Additional outer border
46
+ "after:pointer-events-none after:absolute after:inset-[0.5px] after:rounded-[inherit]",
47
+ "after:bg-gradient-to-br after:from-primary after:to-primary-dark",
48
+ "after:z-[-1] after:transition-opacity after:duration-200 after:opacity-40 after:motion-reduce:transition-none",
49
+ // Hover state
50
+ "hover-only:after:opacity-100 hover-only:transition-opacity hover-only:duration-200"
51
+ ].join(" "),
52
+ destructive: "bg-destructive text-destructive-foreground hover-only:hover:bg-destructive-hover",
53
+ outline: [
54
+ // Base styles
55
+ "relative rounded-lg overflow-visible shadow-field border",
56
+ "isolate text-foreground",
57
+ "[&>*]:relative [&>*]:z-[2]",
58
+ // Background layer
59
+ "before:pointer-events-none before:absolute before:inset-[-0.5px] before:rounded-[inherit]",
60
+ "before:bg-gradient-to-br before:from-border-light before:via-border before:to-border-dark/50",
61
+ "before:dark:from-border-light before:dark:to-border-dark",
62
+ "before:z-[-1]",
63
+ // Inner background layer
64
+ "after:pointer-events-none after:absolute after:inset-[0.5px] after:rounded-[inherit]",
65
+ "after:bg-background",
66
+ "after:z-[-1]",
67
+ "after:transition-colors after:duration-200 after:ease-out after:motion-reduce:transition-none",
68
+ // Hover state
69
+ "hover-only:after:bg-muted"
70
+ ].join(" "),
71
+ secondary: "bg-secondary text-secondary-foreground hover-only:hover:bg-accent",
72
+ ghost: "hover-only:bg-accent hover-only:text-accent-foreground motion-safe:active:scale-100",
73
+ "primary-soft": "bg-primary-soft text-primary hover-only:hover:bg-primary-soft-hover",
74
+ "destructive-soft": "bg-destructive-soft text-destructive hover-only:hover:bg-destructive-soft-hover",
75
+ success: "bg-success text-success-foreground hover-only:hover:bg-success-hover",
76
+ warning: "bg-warning text-warning-foreground hover-only:hover:bg-warning-hover",
77
+ link: "dark:text-primary-light text-primary-dark underline-offset-4 hover-only:underline motion-safe:active:scale-100"
78
+ },
79
+ size: {
80
+ default: "h-9 gap-2 px-4 py-1 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 motion-safe:active:scale-[0.97]",
81
+ xs: "h-6 gap-1 rounded-lg px-2 text-xs in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3 motion-safe:active:scale-[0.985]",
82
+ sm: "h-8 gap-1.5 rounded-lg px-3 text-xs in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 motion-safe:active:scale-[0.98]",
83
+ lg: "h-10 gap-2 rounded-lg px-8 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3 motion-safe:active:scale-[0.96]",
84
+ icon: "size-9 motion-safe:active:scale-[0.97]",
85
+ "icon-xs": "size-6 rounded-lg in-data-[slot=button-group]:rounded-md motion-safe:active:scale-[0.985]",
86
+ "icon-sm": "size-8 rounded-lg in-data-[slot=button-group]:rounded-md motion-safe:active:scale-[0.98]",
87
+ "icon-lg": "size-10 motion-safe:active:scale-[0.96]"
88
+ }
89
+ },
90
+ defaultVariants: {
91
+ variant: "default",
92
+ size: "default"
93
+ }
94
+ }
95
+ );
96
+ function Button({
97
+ className,
98
+ variant = "default",
99
+ size = "default",
100
+ isPending,
101
+ nativeButton,
102
+ render,
103
+ ...props
104
+ }) {
105
+ return /* @__PURE__ */ jsx(
106
+ ButtonPrimitive,
107
+ {
108
+ "data-slot": "button",
109
+ "data-pending": isPending || void 0,
110
+ "aria-disabled": isPending || void 0,
111
+ nativeButton: nativeButton ?? (render ? false : void 0),
112
+ render,
113
+ className: cn(
114
+ buttonVariants({ variant, size }),
115
+ isPending && "status-pending",
116
+ className
117
+ ),
118
+ ...props
119
+ }
120
+ );
121
+ }
122
+
123
+ // src/components/input-group.tsx
124
+ import { jsx as jsx2 } from "react/jsx-runtime";
125
+ function InputGroup({ className, ...props }) {
126
+ return /* @__PURE__ */ jsx2(
127
+ "div",
128
+ {
129
+ "data-slot": "input-group",
130
+ role: "group",
131
+ className: cn(
132
+ "border-field-border bg-field-background hover-only:hover:border-field-border-hover has-[[data-slot=input-group-control]:focus-visible]:focus-field-ring has-[[data-slot][aria-invalid=true]]:border-field-border-invalid has-[[data-slot][aria-invalid=true]]:has-[[data-slot=input-group-control]:focus-visible]:invalid-field-ring h-9 rounded-md border shadow-field transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-smooth motion-reduce:transition-none in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 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-[>[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 group/input-group relative flex w-full min-w-0 items-center outline-none has-[>textarea]:h-auto",
133
+ className
134
+ ),
135
+ ...props
136
+ }
137
+ );
138
+ }
139
+ var inputGroupAddonVariants = cva2(
140
+ "text-muted-foreground h-auto gap-2 py-1.5 text-sm font-medium group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4 flex cursor-text items-center justify-center select-none",
141
+ {
142
+ variants: {
143
+ align: {
144
+ "inline-start": "pl-2 has-[>button]:-ml-1 has-[>kbd]:ml-[-0.15rem] order-first",
145
+ "inline-end": "pr-2 has-[>button]:-mr-1 has-[>kbd]:mr-[-0.15rem] order-last",
146
+ "block-start": "px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2 order-first w-full justify-start",
147
+ "block-end": "px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2 order-last w-full justify-start"
148
+ }
149
+ },
150
+ defaultVariants: {
151
+ align: "inline-start"
152
+ }
153
+ }
154
+ );
155
+ function InputGroupAddon({
156
+ className,
157
+ align = "inline-start",
158
+ ...props
159
+ }) {
160
+ return /* @__PURE__ */ jsx2(
161
+ "div",
162
+ {
163
+ role: "group",
164
+ "data-slot": "input-group-addon",
165
+ "data-align": align,
166
+ className: cn(inputGroupAddonVariants({ align }), className),
167
+ onClick: (e) => {
168
+ if (e.target.closest("button")) {
169
+ return;
170
+ }
171
+ e.currentTarget.parentElement?.querySelector("input")?.focus();
172
+ },
173
+ ...props
174
+ }
175
+ );
176
+ }
177
+ var inputGroupButtonVariants = cva2(
178
+ "gap-2 text-sm shadow-none flex items-center",
179
+ {
180
+ variants: {
181
+ size: {
182
+ xs: "h-6 gap-1 rounded-[calc(var(--radius)-5px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5",
183
+ sm: "",
184
+ "icon-xs": "size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0",
185
+ "icon-sm": "size-8 p-0 has-[>svg]:p-0"
186
+ }
187
+ },
188
+ defaultVariants: {
189
+ size: "xs"
190
+ }
191
+ }
192
+ );
193
+ function InputGroupButton({
194
+ className,
195
+ type = "button",
196
+ variant = "ghost",
197
+ size = "xs",
198
+ ...props
199
+ }) {
200
+ return /* @__PURE__ */ jsx2(
201
+ Button,
202
+ {
203
+ type,
204
+ "data-size": size,
205
+ variant,
206
+ className: cn(inputGroupButtonVariants({ size }), className),
207
+ ...props
208
+ }
209
+ );
210
+ }
211
+
212
+ // src/components/combobox.tsx
213
+ import { jsx as jsx3, jsxs } from "react/jsx-runtime";
214
+ function Combobox({ ...props }) {
215
+ return /* @__PURE__ */ jsx3(ComboboxPrimitive.Root, { ...props });
216
+ }
217
+ function ComboboxInput({
218
+ className,
219
+ showTrigger = true,
220
+ showClear = false,
221
+ children,
222
+ ...props
223
+ }) {
224
+ return /* @__PURE__ */ jsxs(InputGroup, { className: "no-highlight transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-smooth motion-reduce:transition-none hover-only:border-field-border-hover data-[invalid]:border-field-border-invalid", children: [
225
+ /* @__PURE__ */ jsx3(
226
+ ComboboxPrimitive.Input,
227
+ {
228
+ "data-slot": "input-group-control",
229
+ className: cn(
230
+ "flex-1 rounded-none border-0 bg-transparent px-3 py-2 text-sm shadow-none outline-none dark:bg-transparent",
231
+ "placeholder:text-muted-foreground",
232
+ "focus-visible:ring-0",
233
+ "data-disabled:status-disabled",
234
+ className
235
+ ),
236
+ ...props
237
+ }
238
+ ),
239
+ (showTrigger || showClear) && /* @__PURE__ */ jsxs(InputGroupAddon, { align: "inline-end", children: [
240
+ showClear && /* @__PURE__ */ jsx3(ComboboxClear, {}),
241
+ showTrigger && /* @__PURE__ */ jsx3(ComboboxTrigger, {})
242
+ ] }),
243
+ children
244
+ ] });
245
+ }
246
+ function ComboboxTrigger({
247
+ className,
248
+ children,
249
+ ...props
250
+ }) {
251
+ return /* @__PURE__ */ jsx3(
252
+ ComboboxPrimitive.Trigger,
253
+ {
254
+ "data-slot": "combobox-trigger",
255
+ "aria-label": "Toggle options",
256
+ ...props,
257
+ render: /* @__PURE__ */ jsx3(
258
+ InputGroupButton,
259
+ {
260
+ variant: "ghost",
261
+ size: "icon-xs",
262
+ className: cn("group", className)
263
+ }
264
+ ),
265
+ children: children ?? /* @__PURE__ */ jsx3(ChevronDownIcon, { className: "size-3.5 transition-transform duration-150 ease-smooth group-data-[open]:rotate-180 motion-reduce:transition-none" })
266
+ }
267
+ );
268
+ }
269
+ function ComboboxClear({
270
+ className,
271
+ children,
272
+ ...props
273
+ }) {
274
+ return /* @__PURE__ */ jsx3(
275
+ ComboboxPrimitive.Clear,
276
+ {
277
+ "data-slot": "combobox-clear",
278
+ "aria-label": "Clear selection",
279
+ ...props,
280
+ render: /* @__PURE__ */ jsx3(
281
+ InputGroupButton,
282
+ {
283
+ variant: "ghost",
284
+ size: "icon-xs",
285
+ className: cn(className)
286
+ }
287
+ ),
288
+ children: children ?? /* @__PURE__ */ jsx3(XIcon, { className: "size-3.5" })
289
+ }
290
+ );
291
+ }
292
+ function ComboboxChipsInput({
293
+ className,
294
+ ...props
295
+ }) {
296
+ return /* @__PURE__ */ jsx3(
297
+ ComboboxPrimitive.Input,
298
+ {
299
+ "data-slot": "combobox-chips-input",
300
+ className: cn(
301
+ "min-w-16 flex-1 bg-transparent text-sm outline-none",
302
+ "placeholder:text-muted-foreground",
303
+ "data-disabled:status-disabled",
304
+ className
305
+ ),
306
+ ...props
307
+ }
308
+ );
309
+ }
310
+ function useComboboxAnchor() {
311
+ return React.useRef(null);
312
+ }
313
+ function ComboboxValue({ ...props }) {
314
+ return /* @__PURE__ */ jsx3(ComboboxPrimitive.Value, { "data-slot": "combobox-value", ...props });
315
+ }
316
+ function ComboboxContent({
317
+ className,
318
+ side = "bottom",
319
+ sideOffset = 4,
320
+ align = "start",
321
+ alignOffset = 0,
322
+ anchor,
323
+ ...props
324
+ }) {
325
+ return /* @__PURE__ */ jsx3(ComboboxPrimitive.Portal, { children: /* @__PURE__ */ jsx3(
326
+ ComboboxPrimitive.Positioner,
327
+ {
328
+ side,
329
+ sideOffset,
330
+ align,
331
+ alignOffset,
332
+ anchor,
333
+ className: "isolate z-50",
334
+ children: /* @__PURE__ */ jsx3(
335
+ ComboboxPrimitive.Popup,
336
+ {
337
+ "data-slot": "combobox-content",
338
+ className: cn(
339
+ "group/combobox-content",
340
+ "min-w-[8rem] overflow-hidden rounded-xl border border-border-light bg-overlay text-overlay-foreground shadow-overlay outline-none",
341
+ "data-open:animate-in data-open:duration-200 data-open:[animation-timing-function:var(--ease-out-fluid)] data-closed:animate-out data-closed:duration-100 data-closed:[animation-timing-function:var(--ease-in-quart)] data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95",
342
+ "data-entering:will-change-[opacity,transform] data-exiting:will-change-[opacity,transform]",
343
+ "data-[side=bottom]:slide-in-from-top-1 data-[side=left]:slide-in-from-right-1 data-[side=right]:slide-in-from-left-1 data-[side=top]:slide-in-from-bottom-1",
344
+ "max-h-(--available-height) w-(--anchor-width) origin-(--transform-origin) overflow-y-auto overscroll-contain",
345
+ "motion-reduce:animate-none motion-reduce:transition-none",
346
+ className
347
+ ),
348
+ ...props
349
+ }
350
+ )
351
+ }
352
+ ) });
353
+ }
354
+ function ComboboxList({ className, ...props }) {
355
+ return /* @__PURE__ */ jsx3(
356
+ ComboboxPrimitive.List,
357
+ {
358
+ "data-slot": "combobox-list",
359
+ className: cn(
360
+ "scroll-py-1 overflow-y-auto overscroll-contain p-1",
361
+ className
362
+ ),
363
+ ...props
364
+ }
365
+ );
366
+ }
367
+ function ComboboxItem({
368
+ className,
369
+ children,
370
+ ...props
371
+ }) {
372
+ return /* @__PURE__ */ jsxs(
373
+ ComboboxPrimitive.Item,
374
+ {
375
+ "data-slot": "combobox-item",
376
+ className: cn(
377
+ "no-highlight relative flex w-full cursor-default select-none items-center gap-2 rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none transition-colors duration-100 ease-smooth motion-reduce:transition-none",
378
+ "data-highlighted:bg-primary-soft data-highlighted:text-foreground",
379
+ "data-disabled:status-disabled",
380
+ className
381
+ ),
382
+ ...props,
383
+ children: [
384
+ children,
385
+ /* @__PURE__ */ jsx3(
386
+ ComboboxPrimitive.ItemIndicator,
387
+ {
388
+ render: /* @__PURE__ */ jsx3("span", { className: "absolute right-2 flex size-3.5 items-center justify-center" }),
389
+ children: /* @__PURE__ */ jsx3(CheckIcon, { className: "size-4" })
390
+ }
391
+ )
392
+ ]
393
+ }
394
+ );
395
+ }
396
+ function ComboboxEmpty({ className, ...props }) {
397
+ return /* @__PURE__ */ jsx3(
398
+ ComboboxPrimitive.Empty,
399
+ {
400
+ "data-slot": "combobox-empty",
401
+ className: cn(
402
+ "empty:hidden py-6 text-center text-sm text-muted-foreground",
403
+ className
404
+ ),
405
+ ...props
406
+ }
407
+ );
408
+ }
409
+ function ComboboxGroup({ className, ...props }) {
410
+ return /* @__PURE__ */ jsx3(
411
+ ComboboxPrimitive.Group,
412
+ {
413
+ "data-slot": "combobox-group",
414
+ className: cn("p-1", className),
415
+ ...props
416
+ }
417
+ );
418
+ }
419
+ function ComboboxGroupLabel({
420
+ className,
421
+ ...props
422
+ }) {
423
+ return /* @__PURE__ */ jsx3(
424
+ ComboboxPrimitive.GroupLabel,
425
+ {
426
+ "data-slot": "combobox-group-label",
427
+ className: cn(
428
+ "px-2 py-1.5 text-xs font-medium text-muted-foreground",
429
+ className
430
+ ),
431
+ ...props
432
+ }
433
+ );
434
+ }
435
+ function ComboboxSeparator({
436
+ className,
437
+ ...props
438
+ }) {
439
+ return /* @__PURE__ */ jsx3(
440
+ ComboboxPrimitive.Separator,
441
+ {
442
+ "data-slot": "combobox-separator",
443
+ className: cn("-mx-1 my-1 h-px bg-border-light", className),
444
+ ...props
445
+ }
446
+ );
447
+ }
448
+ function ComboboxIcon({ className, ...props }) {
449
+ return /* @__PURE__ */ jsx3(
450
+ ComboboxPrimitive.Icon,
451
+ {
452
+ "data-slot": "combobox-icon",
453
+ className: cn("", className),
454
+ ...props
455
+ }
456
+ );
457
+ }
458
+ function ComboboxChips({ className, ...props }) {
459
+ return /* @__PURE__ */ jsx3(
460
+ ComboboxPrimitive.Chips,
461
+ {
462
+ "data-slot": "combobox-chips",
463
+ className: cn(
464
+ "no-highlight flex flex-wrap items-center gap-1 rounded-md border border-field-border bg-field-background px-2 py-1.5 text-sm shadow-field",
465
+ "transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-smooth motion-reduce:transition-none",
466
+ "hover-only:border-field-border-hover",
467
+ "data-[invalid]:border-field-border-invalid",
468
+ "has-[:focus]:focus-field-ring",
469
+ "data-disabled:status-disabled",
470
+ className
471
+ ),
472
+ ...props
473
+ }
474
+ );
475
+ }
476
+ function ComboboxChip({ className, ...props }) {
477
+ return /* @__PURE__ */ jsx3(
478
+ ComboboxPrimitive.Chip,
479
+ {
480
+ "data-slot": "combobox-chip",
481
+ className: cn(
482
+ "inline-flex items-center gap-1 rounded-full bg-primary-soft px-2 py-0.5 font-medium text-xs text-foreground",
483
+ "data-disabled:status-disabled",
484
+ className
485
+ ),
486
+ ...props
487
+ }
488
+ );
489
+ }
490
+ function ComboboxChipRemove({
491
+ className,
492
+ children,
493
+ ...props
494
+ }) {
495
+ return /* @__PURE__ */ jsx3(
496
+ ComboboxPrimitive.ChipRemove,
497
+ {
498
+ "data-slot": "combobox-chip-remove",
499
+ className: cn(
500
+ "rounded-sm text-muted-foreground transition-colors duration-200 ease-smooth motion-reduce:transition-none",
501
+ "hover-only:text-foreground",
502
+ "focus-visible:focus-ring",
503
+ "data-disabled:status-disabled",
504
+ className
505
+ ),
506
+ ...props,
507
+ children: children ?? /* @__PURE__ */ jsx3(XIcon, { className: "size-3" })
508
+ }
509
+ );
510
+ }
511
+ function ComboboxStatus({
512
+ className,
513
+ ...props
514
+ }) {
515
+ return /* @__PURE__ */ jsx3(
516
+ ComboboxPrimitive.Status,
517
+ {
518
+ "data-slot": "combobox-status",
519
+ className: cn("sr-only", className),
520
+ ...props
521
+ }
522
+ );
523
+ }
524
+ function ComboboxArrow({ className, ...props }) {
525
+ return /* @__PURE__ */ jsx3(
526
+ ComboboxPrimitive.Arrow,
527
+ {
528
+ "data-slot": "combobox-arrow",
529
+ className: cn("fill-overlay stroke-border", className),
530
+ ...props
531
+ }
532
+ );
533
+ }
534
+ function ComboboxBackdrop({
535
+ className,
536
+ ...props
537
+ }) {
538
+ return /* @__PURE__ */ jsx3(
539
+ ComboboxPrimitive.Backdrop,
540
+ {
541
+ "data-slot": "combobox-backdrop",
542
+ className: cn("fixed inset-0 z-50", className),
543
+ ...props
544
+ }
545
+ );
546
+ }
547
+ var ComboboxCollection = ComboboxPrimitive.Collection;
548
+ var useComboboxFilter = ComboboxPrimitive.useFilter;
549
+ var ComboboxLabel = ComboboxGroupLabel;
550
+ export {
551
+ Combobox,
552
+ ComboboxArrow,
553
+ ComboboxBackdrop,
554
+ ComboboxChip,
555
+ ComboboxChipRemove,
556
+ ComboboxChips,
557
+ ComboboxChipsInput,
558
+ ComboboxClear,
559
+ ComboboxCollection,
560
+ ComboboxContent,
561
+ ComboboxEmpty,
562
+ ComboboxGroup,
563
+ ComboboxGroupLabel,
564
+ ComboboxIcon,
565
+ ComboboxInput,
566
+ ComboboxItem,
567
+ ComboboxLabel,
568
+ ComboboxList,
569
+ ComboboxSeparator,
570
+ ComboboxStatus,
571
+ ComboboxTrigger,
572
+ ComboboxValue,
573
+ useComboboxAnchor,
574
+ useComboboxFilter
575
+ };
576
+ //# sourceMappingURL=combobox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/combobox.tsx","../../src/lib/utils.ts","../../src/components/input-group.tsx","../../src/components/button.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react/combobox\";\nimport { CheckIcon, ChevronDownIcon, XIcon } from \"lucide-react\";\n\nimport { cn } from \"../lib/utils\";\nimport { InputGroup, InputGroupAddon, InputGroupButton } from \"./input-group\";\n\nfunction Combobox({ ...props }: ComboboxPrimitive.Root.Props<any, any>) {\n return <ComboboxPrimitive.Root {...props} />;\n}\n\nfunction ComboboxInput({\n className,\n showTrigger = true,\n showClear = false,\n children,\n ...props\n}: ComboboxPrimitive.Input.Props & {\n showTrigger?: boolean;\n showClear?: boolean;\n}) {\n return (\n <InputGroup className=\"no-highlight transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-smooth motion-reduce:transition-none hover-only:border-field-border-hover data-[invalid]:border-field-border-invalid\">\n <ComboboxPrimitive.Input\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 rounded-none border-0 bg-transparent px-3 py-2 text-sm shadow-none outline-none dark:bg-transparent\",\n \"placeholder:text-muted-foreground\",\n \"focus-visible:ring-0\",\n \"data-disabled:status-disabled\",\n className,\n )}\n {...props}\n />\n {(showTrigger || showClear) && (\n <InputGroupAddon align=\"inline-end\">\n {showClear && <ComboboxClear />}\n {showTrigger && <ComboboxTrigger />}\n </InputGroupAddon>\n )}\n {children}\n </InputGroup>\n );\n}\n\nfunction ComboboxTrigger({\n className,\n children,\n ...props\n}: ComboboxPrimitive.Trigger.Props) {\n return (\n <ComboboxPrimitive.Trigger\n data-slot=\"combobox-trigger\"\n aria-label=\"Toggle options\"\n {...props}\n render={\n <InputGroupButton\n variant=\"ghost\"\n size=\"icon-xs\"\n className={cn(\"group\", className)}\n />\n }\n >\n {children ?? (\n <ChevronDownIcon className=\"size-3.5 transition-transform duration-150 ease-smooth group-data-[open]:rotate-180 motion-reduce:transition-none\" />\n )}\n </ComboboxPrimitive.Trigger>\n );\n}\n\nfunction ComboboxClear({\n className,\n children,\n ...props\n}: ComboboxPrimitive.Clear.Props) {\n return (\n <ComboboxPrimitive.Clear\n data-slot=\"combobox-clear\"\n aria-label=\"Clear selection\"\n {...props}\n render={\n <InputGroupButton\n variant=\"ghost\"\n size=\"icon-xs\"\n className={cn(className)}\n />\n }\n >\n {children ?? <XIcon className=\"size-3.5\" />}\n </ComboboxPrimitive.Clear>\n );\n}\n\nfunction ComboboxChipsInput({\n className,\n ...props\n}: ComboboxPrimitive.Input.Props) {\n return (\n <ComboboxPrimitive.Input\n data-slot=\"combobox-chips-input\"\n className={cn(\n \"min-w-16 flex-1 bg-transparent text-sm outline-none\",\n \"placeholder:text-muted-foreground\",\n \"data-disabled:status-disabled\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction useComboboxAnchor() {\n return React.useRef<HTMLDivElement | null>(null);\n}\n\nfunction ComboboxValue({ ...props }: ComboboxPrimitive.Value.Props) {\n return <ComboboxPrimitive.Value data-slot=\"combobox-value\" {...props} />;\n}\n\nfunction ComboboxContent({\n className,\n side = \"bottom\",\n sideOffset = 4,\n align = \"start\",\n alignOffset = 0,\n anchor,\n ...props\n}: ComboboxPrimitive.Popup.Props &\n Pick<\n ComboboxPrimitive.Positioner.Props,\n \"side\" | \"align\" | \"sideOffset\" | \"alignOffset\" | \"anchor\"\n >) {\n return (\n <ComboboxPrimitive.Portal>\n <ComboboxPrimitive.Positioner\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n anchor={anchor}\n className=\"isolate z-50\"\n >\n <ComboboxPrimitive.Popup\n data-slot=\"combobox-content\"\n className={cn(\n \"group/combobox-content\",\n \"min-w-[8rem] overflow-hidden rounded-xl border border-border-light bg-overlay text-overlay-foreground shadow-overlay outline-none\",\n \"data-open:animate-in data-open:duration-200 data-open:[animation-timing-function:var(--ease-out-fluid)] data-closed:animate-out data-closed:duration-100 data-closed:[animation-timing-function:var(--ease-in-quart)] data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95\",\n \"data-entering:will-change-[opacity,transform] data-exiting:will-change-[opacity,transform]\",\n \"data-[side=bottom]:slide-in-from-top-1 data-[side=left]:slide-in-from-right-1 data-[side=right]:slide-in-from-left-1 data-[side=top]:slide-in-from-bottom-1\",\n \"max-h-(--available-height) w-(--anchor-width) origin-(--transform-origin) overflow-y-auto overscroll-contain\",\n \"motion-reduce:animate-none motion-reduce:transition-none\",\n className,\n )}\n {...props}\n />\n </ComboboxPrimitive.Positioner>\n </ComboboxPrimitive.Portal>\n );\n}\n\nfunction ComboboxList({ className, ...props }: ComboboxPrimitive.List.Props) {\n return (\n <ComboboxPrimitive.List\n data-slot=\"combobox-list\"\n className={cn(\n \"scroll-py-1 overflow-y-auto overscroll-contain p-1\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ComboboxItem({\n className,\n children,\n ...props\n}: ComboboxPrimitive.Item.Props) {\n return (\n <ComboboxPrimitive.Item\n data-slot=\"combobox-item\"\n className={cn(\n \"no-highlight relative flex w-full cursor-default select-none items-center gap-2 rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none transition-colors duration-100 ease-smooth motion-reduce:transition-none\",\n \"data-highlighted:bg-primary-soft data-highlighted:text-foreground\",\n \"data-disabled:status-disabled\",\n className,\n )}\n {...props}\n >\n {children}\n <ComboboxPrimitive.ItemIndicator\n render={\n <span className=\"absolute right-2 flex size-3.5 items-center justify-center\" />\n }\n >\n <CheckIcon className=\"size-4\" />\n </ComboboxPrimitive.ItemIndicator>\n </ComboboxPrimitive.Item>\n );\n}\n\nfunction ComboboxEmpty({ className, ...props }: ComboboxPrimitive.Empty.Props) {\n return (\n <ComboboxPrimitive.Empty\n data-slot=\"combobox-empty\"\n className={cn(\n \"empty:hidden py-6 text-center text-sm text-muted-foreground\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ComboboxGroup({ className, ...props }: ComboboxPrimitive.Group.Props) {\n return (\n <ComboboxPrimitive.Group\n data-slot=\"combobox-group\"\n className={cn(\"p-1\", className)}\n {...props}\n />\n );\n}\n\nfunction ComboboxGroupLabel({\n className,\n ...props\n}: ComboboxPrimitive.GroupLabel.Props) {\n return (\n <ComboboxPrimitive.GroupLabel\n data-slot=\"combobox-group-label\"\n className={cn(\n \"px-2 py-1.5 text-xs font-medium text-muted-foreground\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ComboboxSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof ComboboxPrimitive.Separator>) {\n return (\n <ComboboxPrimitive.Separator\n data-slot=\"combobox-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border-light\", className)}\n {...props}\n />\n );\n}\n\nfunction ComboboxIcon({ className, ...props }: ComboboxPrimitive.Icon.Props) {\n return (\n <ComboboxPrimitive.Icon\n data-slot=\"combobox-icon\"\n className={cn(\"\", className)}\n {...props}\n />\n );\n}\n\nfunction ComboboxChips({ className, ...props }: ComboboxPrimitive.Chips.Props) {\n return (\n <ComboboxPrimitive.Chips\n data-slot=\"combobox-chips\"\n className={cn(\n \"no-highlight flex flex-wrap items-center gap-1 rounded-md border border-field-border bg-field-background px-2 py-1.5 text-sm shadow-field\",\n \"transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-smooth motion-reduce:transition-none\",\n \"hover-only:border-field-border-hover\",\n \"data-[invalid]:border-field-border-invalid\",\n \"has-[:focus]:focus-field-ring\",\n \"data-disabled:status-disabled\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ComboboxChip({ className, ...props }: ComboboxPrimitive.Chip.Props) {\n return (\n <ComboboxPrimitive.Chip\n data-slot=\"combobox-chip\"\n className={cn(\n \"inline-flex items-center gap-1 rounded-full bg-primary-soft px-2 py-0.5 font-medium text-xs text-foreground\",\n \"data-disabled:status-disabled\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ComboboxChipRemove({\n className,\n children,\n ...props\n}: ComboboxPrimitive.ChipRemove.Props) {\n return (\n <ComboboxPrimitive.ChipRemove\n data-slot=\"combobox-chip-remove\"\n className={cn(\n \"rounded-sm text-muted-foreground transition-colors duration-200 ease-smooth motion-reduce:transition-none\",\n \"hover-only:text-foreground\",\n \"focus-visible:focus-ring\",\n \"data-disabled:status-disabled\",\n className,\n )}\n {...props}\n >\n {children ?? <XIcon className=\"size-3\" />}\n </ComboboxPrimitive.ChipRemove>\n );\n}\n\nfunction ComboboxStatus({\n className,\n ...props\n}: ComboboxPrimitive.Status.Props) {\n return (\n <ComboboxPrimitive.Status\n data-slot=\"combobox-status\"\n className={cn(\"sr-only\", className)}\n {...props}\n />\n );\n}\n\nfunction ComboboxArrow({ className, ...props }: ComboboxPrimitive.Arrow.Props) {\n return (\n <ComboboxPrimitive.Arrow\n data-slot=\"combobox-arrow\"\n className={cn(\"fill-overlay stroke-border\", className)}\n {...props}\n />\n );\n}\n\nfunction ComboboxBackdrop({\n className,\n ...props\n}: ComboboxPrimitive.Backdrop.Props) {\n return (\n <ComboboxPrimitive.Backdrop\n data-slot=\"combobox-backdrop\"\n className={cn(\"fixed inset-0 z-50\", className)}\n {...props}\n />\n );\n}\n\nconst ComboboxCollection = ComboboxPrimitive.Collection;\n\nconst useComboboxFilter = ComboboxPrimitive.useFilter;\n\n/** @deprecated Use `ComboboxGroupLabel` instead. */\nconst ComboboxLabel = ComboboxGroupLabel;\n\nexport {\n Combobox,\n ComboboxCollection,\n ComboboxInput,\n ComboboxChipsInput,\n ComboboxContent,\n ComboboxList,\n ComboboxItem,\n ComboboxEmpty,\n ComboboxGroup,\n ComboboxGroupLabel,\n ComboboxLabel,\n ComboboxSeparator,\n ComboboxTrigger,\n ComboboxClear,\n ComboboxValue,\n ComboboxIcon,\n ComboboxChips,\n ComboboxChip,\n ComboboxChipRemove,\n ComboboxStatus,\n ComboboxArrow,\n ComboboxBackdrop,\n useComboboxAnchor,\n useComboboxFilter,\n};\n\nexport type ComboboxProps = React.ComponentProps<typeof Combobox>;\nexport type ComboboxInputProps = React.ComponentProps<typeof ComboboxInput>;\nexport type ComboboxContentProps = React.ComponentProps<typeof ComboboxContent>;\nexport type ComboboxItemProps = React.ComponentProps<typeof ComboboxItem>;\nexport type ComboboxTriggerProps = React.ComponentProps<typeof ComboboxTrigger>;\n","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 { 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 \"border-field-border bg-field-background hover-only:hover:border-field-border-hover has-[[data-slot=input-group-control]:focus-visible]:focus-field-ring has-[[data-slot][aria-invalid=true]]:border-field-border-invalid has-[[data-slot][aria-invalid=true]]:has-[[data-slot=input-group-control]:focus-visible]:invalid-field-ring h-9 rounded-md border shadow-field transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-smooth motion-reduce:transition-none in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 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-[>[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 group/input-group relative flex w-full min-w-0 items-center outline-none has-[>textarea]:h-auto\",\n className,\n )}\n {...props}\n />\n );\n}\n\nconst inputGroupAddonVariants = cva(\n \"text-muted-foreground h-auto gap-2 py-1.5 text-sm font-medium group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4 flex cursor-text items-center justify-center select-none\",\n {\n variants: {\n align: {\n \"inline-start\":\n \"pl-2 has-[>button]:-ml-1 has-[>kbd]:ml-[-0.15rem] order-first\",\n \"inline-end\":\n \"pr-2 has-[>button]:-mr-1 has-[>kbd]:mr-[-0.15rem] order-last\",\n \"block-start\":\n \"px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2 order-first w-full justify-start\",\n \"block-end\":\n \"px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2 order-last w-full justify-start\",\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 \"gap-2 text-sm shadow-none flex items-center\",\n {\n variants: {\n size: {\n xs: \"h-6 gap-1 rounded-[calc(var(--radius)-5px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5\",\n sm: \"\",\n \"icon-xs\":\n \"size-6 rounded-[calc(var(--radius)-5px)] 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 \"text-muted-foreground gap-2 text-sm [&_svg:not([class*='size-'])]:size-4 flex items-center [&_svg]:pointer-events-none\",\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 \"rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 aria-invalid:ring-0 flex-1\",\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 \"rounded-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 aria-invalid:ring-0 flex-1 resize-none\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupText,\n InputGroupInput,\n InputGroupTextarea,\n inputGroupAddonVariants,\n inputGroupButtonVariants,\n};\n\nexport type InputGroupProps = React.ComponentProps<typeof InputGroup>;\nexport type InputGroupAddonProps = React.ComponentProps<typeof InputGroupAddon>;\nexport type InputGroupButtonProps = React.ComponentProps<\n typeof InputGroupButton\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 [\n \"inline-flex items-center justify-center whitespace-nowrap rounded-lg text-sm font-medium\",\n \"transform-gpu transition-[color,background-color,border-color,box-shadow,opacity,transform] duration-150 ease-smooth\",\n \"motion-reduce:transition-none\",\n \"disabled:status-disabled\",\n \"focus-visible:focus-ring\",\n \"[&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n \"shrink-0 group/button select-none no-highlight\",\n ],\n {\n variants: {\n variant: {\n default: [\n // Base styles\n \"relative rounded-lg overflow-visible shadow-surface border border-primary dark:border-primary-dark\",\n \"isolate text-primary-foreground [text-shadow:_0_1px_2px_oklch(0%_0_0_/_30%)]\",\n \"[&>*]:relative [&>*]:z-[2]\",\n // Combined gradient layer with primary colors\n \"before:pointer-events-none before:absolute before:inset-[-0.5px] before:rounded-[inherit]\",\n \"before:bg-gradient-to-br before:from-primary-light before:via-primary-middle before:to-primary-dark\",\n \"before:dark:from-primary-light before:dark:via-primary-middle before:dark:to-primary-dark\",\n \"before:z-[-1]\",\n // Additional outer border\n \"after:pointer-events-none after:absolute after:inset-[0.5px] after:rounded-[inherit]\",\n \"after:bg-gradient-to-br after:from-primary after:to-primary-dark\",\n \"after:z-[-1] after:transition-opacity after:duration-200 after:opacity-40 after:motion-reduce:transition-none\",\n // Hover state\n \"hover-only:after:opacity-100 hover-only:transition-opacity hover-only:duration-200\",\n ].join(\" \"),\n destructive:\n \"bg-destructive text-destructive-foreground hover-only:hover:bg-destructive-hover\",\n outline: [\n // Base styles\n \"relative rounded-lg overflow-visible shadow-field border\",\n \"isolate text-foreground\",\n \"[&>*]:relative [&>*]:z-[2]\",\n // Background layer\n \"before:pointer-events-none before:absolute before:inset-[-0.5px] before:rounded-[inherit]\",\n \"before:bg-gradient-to-br before:from-border-light before:via-border before:to-border-dark/50\",\n \"before:dark:from-border-light before:dark:to-border-dark\",\n \"before:z-[-1]\",\n // Inner background layer\n \"after:pointer-events-none after:absolute after:inset-[0.5px] after:rounded-[inherit]\",\n \"after:bg-background\",\n \"after:z-[-1]\",\n \"after:transition-colors after:duration-200 after:ease-out after:motion-reduce:transition-none\",\n // Hover state\n \"hover-only:after:bg-muted\",\n ].join(\" \"),\n secondary:\n \"bg-secondary text-secondary-foreground hover-only:hover:bg-accent\",\n ghost:\n \"hover-only:bg-accent hover-only:text-accent-foreground motion-safe:active:scale-100\",\n \"primary-soft\":\n \"bg-primary-soft text-primary hover-only:hover:bg-primary-soft-hover\",\n \"destructive-soft\":\n \"bg-destructive-soft text-destructive hover-only:hover:bg-destructive-soft-hover\",\n success:\n \"bg-success text-success-foreground hover-only:hover:bg-success-hover\",\n warning:\n \"bg-warning text-warning-foreground hover-only:hover:bg-warning-hover\",\n link: \"dark:text-primary-light text-primary-dark underline-offset-4 hover-only:underline motion-safe:active:scale-100\",\n },\n size: {\n default:\n \"h-9 gap-2 px-4 py-1 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 motion-safe:active:scale-[0.97]\",\n xs: \"h-6 gap-1 rounded-lg px-2 text-xs in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3 motion-safe:active:scale-[0.985]\",\n sm: \"h-8 gap-1.5 rounded-lg px-3 text-xs in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 motion-safe:active:scale-[0.98]\",\n lg: \"h-10 gap-2 rounded-lg px-8 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3 motion-safe:active:scale-[0.96]\",\n icon: \"size-9 motion-safe:active:scale-[0.97]\",\n \"icon-xs\":\n \"size-6 rounded-lg in-data-[slot=button-group]:rounded-md motion-safe:active:scale-[0.985]\",\n \"icon-sm\":\n \"size-8 rounded-lg in-data-[slot=button-group]:rounded-md motion-safe:active:scale-[0.98]\",\n \"icon-lg\": \"size-10 motion-safe:active:scale-[0.96]\",\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 isPending,\n nativeButton,\n render,\n ...props\n}: ButtonPrimitive.Props &\n VariantProps<typeof buttonVariants> & { isPending?: boolean }) {\n return (\n <ButtonPrimitive\n data-slot=\"button\"\n data-pending={isPending || undefined}\n aria-disabled={isPending || undefined}\n nativeButton={nativeButton ?? (render ? false : undefined)}\n render={render}\n className={cn(\n buttonVariants({ variant, size }),\n isPending && \"status-pending\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Button, buttonVariants };\n\nexport type ButtonProps = React.ComponentProps<typeof Button>;\n"],"mappings":"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","names":["cva","jsx","cva","jsx"]}